summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/abraces/README.md4
-rw-r--r--macros/latex/contrib/abraces/abraces-doc.pdfbin245502 -> 245461 bytes
-rw-r--r--macros/latex/contrib/abraces/abraces-doc.tex13
-rw-r--r--macros/latex/contrib/abraces/abraces.sty7
-rw-r--r--macros/latex/contrib/acmart/Makefile26
-rw-r--r--macros/latex/contrib/acmart/README3
-rw-r--r--macros/latex/contrib/acmart/acmart.dtx180
-rw-r--r--macros/latex/contrib/acmart/acmart.ins1
-rw-r--r--macros/latex/contrib/acmart/acmart.pdfbin949483 -> 943219 bytes
-rw-r--r--macros/latex/contrib/acmart/acmguide.pdfbin439879 -> 441394 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmcp.pdfbin214844 -> 214844 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmengage.pdfbin399476 -> 399476 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmlarge.pdfbin613884 -> 613884 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdfbin636571 -> 636571 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdfbin1059143 -> 1059177 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdfbin626360 -> 626360 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-tagged.pdfbin0 -> 480489 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall.pdfbin623848 -> 623848 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdfbin571812 -> 571812 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmtog.pdfbin571575 -> 571575 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-manuscript.pdfbin625334 -> 625334 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdfbin1051244 -> 1051239 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdfbin624415 -> 624415 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdfbin1062362 -> 1062362 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf.pdfbin1047421 -> 1047421 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigplan.pdfbin1053423 -> 1053423 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/samples.dtx20
-rw-r--r--macros/latex/contrib/acmart/samples/samples.ins1
-rw-r--r--macros/latex/contrib/acronym/CHANGES12
-rw-r--r--macros/latex/contrib/acronym/acronym.dtx155
-rw-r--r--macros/latex/contrib/acronym/acronym.ins4
-rw-r--r--macros/latex/contrib/acronym/acronym.pdfbin275707 -> 299705 bytes
-rw-r--r--macros/latex/contrib/animate/ChangeLog20
-rw-r--r--macros/latex/contrib/animate/README.md8
-rw-r--r--macros/latex/contrib/animate/animate.pdfbin3781023 -> 3797724 bytes
-rw-r--r--macros/latex/contrib/animate/animate.sty9
-rw-r--r--macros/latex/contrib/animate/animate.tex55
-rw-r--r--macros/latex/contrib/animate/files/pstmetronome.tex233
-rw-r--r--macros/latex/contrib/asmeconf/README.md30
-rw-r--r--macros/latex/contrib/asmeconf/asmeconf-sample.bib14
-rw-r--r--macros/latex/contrib/asmeconf/asmeconf-template.pdfbin706754 -> 705662 bytes
-rw-r--r--macros/latex/contrib/asmeconf/asmeconf-template.tex142
-rw-r--r--macros/latex/contrib/asmeconf/asmeconf.cls462
-rw-r--r--macros/latex/contrib/asmeconf/examples/asmeconf-fontspec.pdfbin369381 -> 39914315 bytes
-rw-r--r--macros/latex/contrib/asmeconf/examples/asmeconf-fontspec.tex75
-rw-r--r--macros/latex/contrib/asmejour/README.md10
-rw-r--r--macros/latex/contrib/asmejour/asmejour-sample.bib17
-rw-r--r--macros/latex/contrib/asmejour/asmejour-template.pdfbin729589 -> 728579 bytes
-rw-r--r--macros/latex/contrib/asmejour/asmejour-template.tex89
-rw-r--r--macros/latex/contrib/asmejour/asmejour.cls458
-rw-r--r--macros/latex/contrib/asmejour/asmewide_example/asmejour-wide-equation-examples.pdfbin2983602 -> 2982565 bytes
-rw-r--r--macros/latex/contrib/asmejour/asmewide_example/asmejour-wide-equation-examples.tex8
-rw-r--r--macros/latex/contrib/babel-contrib/french/frenchb-doc.pdfbin208890 -> 208887 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/french/frenchb-doc.tex2
-rw-r--r--macros/latex/contrib/babel-contrib/french/frenchb.dtx12
-rw-r--r--macros/latex/contrib/babel-contrib/french/frenchb.pdfbin345846 -> 346426 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/LICENSE.txt416
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/README.md5
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/beamerthemeedmaths.sty167
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.pdfbin0 -> 292120 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.tex231
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/pdfpc-screenshot.pngbin0 -> 142119 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-presentation.tex82
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-references.bib10
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/LICENSE.md5
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.pdfbin0 -> 40807 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.svg8
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.pdfbin0 -> 47320 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.svg8
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md301
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md127
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann11
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.note3
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdfbin0 -> 1355 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdfbin0 -> 656010 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdfbin0 -> 463334 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex1094
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdfbin0 -> 280401 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex65
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdfbin0 -> 282846 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex66
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdfbin0 -> 30349 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.tex8
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdfbin0 -> 7446 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdfbin0 -> 1455 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-safetybox.pdf70
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdfbin0 -> 229912 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx8842
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.ins75
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdfbin0 -> 1055055 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Beamer.tex379
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex37
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex398
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/README.md8
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamerinnerthemetcolorbox.sty12
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc-settings.sty7
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.pdfbin178055 -> 178136 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.tex8
-rw-r--r--macros/latex/contrib/bib2qr/README.md88
-rw-r--r--macros/latex/contrib/bib2qr/bib2qr.dtx594
-rw-r--r--macros/latex/contrib/bib2qr/bib2qr.ins85
-rw-r--r--macros/latex/contrib/bib2qr/bib2qr.pdfbin0 -> 508752 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee-alphabetic.pdfbin306393 -> 305632 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee-alphabetic.tex14
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.bib12
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.pdfbin402568 -> 404215 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.tex37
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee-alphabetic.bbx8
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee-alphabetic.cbx8
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.bbx24
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.cbx12
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ieee/magyar-ieee.lbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/Makefile4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md5
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdfbin465495 -> 465824 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdfbin473027 -> 473527 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdfbin469483 -> 470053 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx1023
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdfbin597953 -> 637441 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdfbin469617 -> 469903 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.bib6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.pdfbin448675 -> 482865 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.tex34
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx25
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.cbx8
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.dbx8
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/README7
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdfbin419434 -> 428272 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex116
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/UKenglish-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/USenglish-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/american-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/australian-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/austrian-publist.lbx11
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/british-publist.lbx9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/canadian-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/english-publist.lbx9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/french-publist.lbx9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/german-publist.lbx9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/naustrian-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/newzealand-publist.lbx9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/ngerman-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/nswissgerman-publist.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/swissgerman-publist.lbx9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx169
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx4
-rw-r--r--macros/latex/contrib/bmstu-iu8/README.md2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-example.pdfbin177036 -> 177191 bytes
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls46
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/DEPENDS.txt38
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/16-IU8-references.sty18
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-01-base.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/01-IU8-base.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-02-construction.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/02-IU8-construction.sty)13
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-03-numbering.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/03-IU8-numbering.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-04-section-numbering.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/04-IU8-section-numbering.sty)4
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-05-figures.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/05-IU8-figures.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-06-tables.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/06-IU8-tables.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-07-footnotes.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/07-IU8-footnotes.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-08-formulas.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/08-IU8-formulas.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-09-cites.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/09-IU8-cites.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-10-titlepage.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/10-IU8-titlepage.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-11-performers.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/11-IU8-performers.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-12-abstract.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/12-IU8-abstract.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-13-contents.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/13-IU8-contents.sty)9
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-14-terms-and-definitions.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-15-list-of-abbreviations.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-16-references.sty39
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-17-appendices.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/17-IU8-appendices.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-18-extra.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/18-IU8-extra.sty)17
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-19-counters.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/19-IU8-counters.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-20-listing.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/20-IU8-listing.sty)26
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-21-math.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/21-IU8-math.sty)2
-rw-r--r--macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-22-algorithms.sty (renamed from macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/22-IU8-algorithms.sty)2
-rw-r--r--macros/latex/contrib/bxpdfver/LICENSE2
-rw-r--r--macros/latex/contrib/bxpdfver/README-ja.md60
-rw-r--r--macros/latex/contrib/bxpdfver/README.md48
-rw-r--r--macros/latex/contrib/bxpdfver/bxpdfver.sty206
-rw-r--r--macros/latex/contrib/catppuccinpalette/README.md79
-rw-r--r--macros/latex/contrib/catppuccinpalette/catppuccinpalette.dtx430
-rw-r--r--macros/latex/contrib/catppuccinpalette/catppuccinpalette.ins66
-rw-r--r--macros/latex/contrib/catppuccinpalette/catppuccinpalette.pdfbin212270 -> 224058 bytes
-rw-r--r--macros/latex/contrib/changelog/README.md13
-rw-r--r--macros/latex/contrib/changelog/changelog.pdfbin54725 -> 55176 bytes
-rw-r--r--macros/latex/contrib/changelog/changelog.sty32
-rw-r--r--macros/latex/contrib/changelog/changelog.tex24
-rw-r--r--macros/latex/contrib/changelog/example.pdfbin17624 -> 17536 bytes
-rw-r--r--macros/latex/contrib/changelog/example.tex35
-rw-r--r--macros/latex/contrib/circledtext/README.md4
-rw-r--r--macros/latex/contrib/circledtext/circledtext.pdfbin214742 -> 216253 bytes
-rw-r--r--macros/latex/contrib/circledtext/circledtext.sty324
-rw-r--r--macros/latex/contrib/circledtext/circledtext.tex4
-rw-r--r--macros/latex/contrib/cjs-rcs-article/README.md4
-rw-r--r--macros/latex/contrib/cjs-rcs-article/cjs-rcs-article-fr.pdfbin120472 -> 120466 bytes
-rw-r--r--macros/latex/contrib/cjs-rcs-article/cjs-rcs-article.dtx61
-rw-r--r--macros/latex/contrib/cjs-rcs-article/cjs-rcs-article.pdfbin190173 -> 190899 bytes
-rw-r--r--macros/latex/contrib/cjs-rcs-article/cjs-rcs-english.mbs6
-rw-r--r--macros/latex/contrib/cjs-rcs-article/cjs-rcs-french.mbs6
-rw-r--r--macros/latex/contrib/cjs-rcs-article/cjs-rcs-merlin.mbs5
-rw-r--r--macros/latex/contrib/cjs-rcs-article/cjs-rcs-merlin.pdfbin38874 -> 38794 bytes
-rw-r--r--macros/latex/contrib/coloredtheorem/coloredtheorem-doc.pdfbin214341 -> 215171 bytes
-rw-r--r--macros/latex/contrib/coloredtheorem/coloredtheorem-doc.tex4
-rw-r--r--macros/latex/contrib/coloredtheorem/coloredtheorem.sty10
-rw-r--r--macros/latex/contrib/commalists-tools/README.md6
-rw-r--r--macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.pdfbin0 -> 61757 bytes
-rw-r--r--macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.tex415
-rw-r--r--macros/latex/contrib/commalists-tools/tex/commalists-tools.sty188
-rw-r--r--macros/latex/contrib/cs-techrep/README2
-rw-r--r--macros/latex/contrib/cs-techrep/cs-techrep.dtx93
-rw-r--r--macros/latex/contrib/cs-techrep/cs-techrep.ins2
-rw-r--r--macros/latex/contrib/cs-techrep/cs-techrep.pdfbin187505 -> 190900 bytes
-rw-r--r--macros/latex/contrib/cs-techrep/template/cpn_all_all.bib226
-rw-r--r--macros/latex/contrib/cs-techrep/template/cpn_supervised_all.bib1
-rw-r--r--macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.pdfbin145442 -> 155959 bytes
-rw-r--r--macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.tex75
-rw-r--r--macros/latex/contrib/cs-techrep/template/selfref.bib4
-rw-r--r--macros/latex/contrib/cs-techrep/template/webdev_commons.bib1550
-rw-r--r--macros/latex/contrib/csthm/README.md89
-rw-r--r--macros/latex/contrib/csthm/csthm-example.pdfbin0 -> 410446 bytes
-rw-r--r--macros/latex/contrib/csthm/csthm-example.tex407
-rw-r--r--macros/latex/contrib/csthm/csthm.dtx238
-rw-r--r--macros/latex/contrib/csthm/csthm.ins (renamed from macros/latex/contrib/isosafety/isosafety.ins)57
-rw-r--r--macros/latex/contrib/csvsimple/CHANGES.md14
-rw-r--r--macros/latex/contrib/csvsimple/README.md2
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-doc.sty9
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-example.pdfbin72044 -> 72044 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-example.tex2
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-l3.pdfbin951198 -> 951769 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-l3.sty36
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-l3.tex9
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-legacy.pdfbin690985 -> 691190 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-legacy.sty4
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-legacy.tex2
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple.pdfbin295659 -> 295267 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple.sty4
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple.tex2
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdfbin191562 -> 213959 bytes
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex162
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdfbin1472616 -> 1568902 bytes
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex490
-rw-r--r--macros/latex/contrib/customenvs/doc/envtexo_exemples.pdfbin177853 -> 149933 bytes
-rw-r--r--macros/latex/contrib/customenvs/doc/envtexo_exemples.tex24
-rw-r--r--macros/latex/contrib/customenvs/tex/customenvs.sty987
-rw-r--r--macros/latex/contrib/dccpaper/README.md2
-rw-r--r--macros/latex/contrib/dccpaper/dccpaper.dtx24
-rw-r--r--macros/latex/contrib/dccpaper/dccpaper.pdfbin344973 -> 350338 bytes
-rw-r--r--macros/latex/contrib/doibanner/README.md91
-rw-r--r--macros/latex/contrib/doibanner/doibanner.dtx412
-rw-r--r--macros/latex/contrib/doibanner/doibanner.ins85
-rw-r--r--macros/latex/contrib/doibanner/doibanner.pdfbin0 -> 297278 bytes
-rw-r--r--macros/latex/contrib/easybook/README.md2
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx511
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin626756 -> 646152 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex264
-rw-r--r--macros/latex/contrib/edmaths/LICENSE.txt416
-rw-r--r--macros/latex/contrib/edmaths/README.md5
-rw-r--r--macros/latex/contrib/edmaths/docs/edmaths-docs.pdfbin0 -> 146357 bytes
-rw-r--r--macros/latex/contrib/edmaths/docs/edmaths-docs.tex282
-rw-r--r--macros/latex/contrib/edmaths/edmaths.sty258
-rw-r--r--macros/latex/contrib/edmaths/example-references.bib10
-rw-r--r--macros/latex/contrib/edmaths/example-report.tex79
-rw-r--r--macros/latex/contrib/enverb/README.md34
-rw-r--r--macros/latex/contrib/enverb/doc-enverb.tex47
-rw-r--r--macros/latex/contrib/enverb/doc-examples.tex178
-rw-r--r--macros/latex/contrib/enverb/doc-keys.tex111
-rw-r--r--macros/latex/contrib/enverb/doc-using-contents.tex40
-rw-r--r--macros/latex/contrib/enverb/enverb-doc.pdfbin0 -> 346942 bytes
-rw-r--r--macros/latex/contrib/enverb/enverb-doc.tex87
-rw-r--r--macros/latex/contrib/enverb/enverb.dtx720
-rw-r--r--macros/latex/contrib/enverb/preamble-examples.tex199
-rw-r--r--macros/latex/contrib/enverb/preamble-logo.tex25
-rw-r--r--macros/latex/contrib/euromoney/README.md6
-rw-r--r--macros/latex/contrib/euromoney/doc/euromoney-doc.pdfbin0 -> 2409702 bytes
-rw-r--r--macros/latex/contrib/euromoney/doc/euromoney-doc.tex461
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-100euro.pdfbin0 -> 955673 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-100eurosimple.pdfbin0 -> 62058 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-100eurosimplebw.pdfbin0 -> 62345 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-10cent.pdfbin0 -> 27497 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-10centsimple.pdfbin0 -> 11617 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-10centsimplebw.pdfbin0 -> 11163 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-10euro.pdfbin0 -> 160214 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-10eurosimple.pdfbin0 -> 22792 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-10eurosimplebw.pdfbin0 -> 22996 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-1cent.pdfbin0 -> 46257 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-1centsimple.pdfbin0 -> 2172 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-1centsimplebw.pdfbin0 -> 2164 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-1euro.pdfbin0 -> 19980 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-1eurosimple.pdfbin0 -> 5894 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-1eurosimplebw.pdfbin0 -> 5910 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-200euro.pdfbin0 -> 354898 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-200eurosimple.pdfbin0 -> 22825 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-200eurosimplebw.pdfbin0 -> 23006 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-20cent.pdfbin0 -> 26569 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-20centsimple.pdfbin0 -> 10164 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-20centsimplebw.pdfbin0 -> 9960 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-20euro.pdfbin0 -> 78801 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-20eurosimple.pdfbin0 -> 22382 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-20eurosimplebw.pdfbin0 -> 22394 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-2cent.pdfbin0 -> 45967 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-2centsimple.pdfbin0 -> 2130 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-2centsimplebw.pdfbin0 -> 2122 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-2euro.pdfbin0 -> 23244 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-2eurosimple.pdfbin0 -> 5941 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-2eurosimplebw.pdfbin0 -> 5897 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-500euro.pdfbin0 -> 231203 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-500eurosimple.pdfbin0 -> 22885 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-500eurosimplebw.pdfbin0 -> 23168 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-50cent.pdfbin0 -> 27558 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-50centsimple.pdfbin0 -> 11748 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-50centsimplebw.pdfbin0 -> 11303 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-50euro.pdfbin0 -> 235259 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-50eurosimple.pdfbin0 -> 17891 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-50eurosimplebw.pdfbin0 -> 18128 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-5cent.pdfbin0 -> 45981 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-5centsimple.pdfbin0 -> 2200 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-5centsimplebw.pdfbin0 -> 2181 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-5euro.pdfbin0 -> 424391 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-5eurosimple.pdfbin0 -> 60083 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney-5eurosimplebw.pdfbin0 -> 60042 bytes
-rw-r--r--macros/latex/contrib/euromoney/tex/euromoney.sty549
-rw-r--r--macros/latex/contrib/ezedits/README.md47
-rw-r--r--macros/latex/contrib/ezedits/ezedits.sty221
-rw-r--r--macros/latex/contrib/ezedits/ezedits_docs.pdfbin0 -> 143133 bytes
-rw-r--r--macros/latex/contrib/ezedits/ezedits_docs.tex171
-rw-r--r--macros/latex/contrib/fancyhdr/README2
-rw-r--r--macros/latex/contrib/fancyhdr/fancyhdr.dtx32
-rw-r--r--macros/latex/contrib/fancyhdr/fancyhdr.pdfbin880397 -> 880898 bytes
-rw-r--r--macros/latex/contrib/fillwith/MANIFEST.md54
-rw-r--r--macros/latex/contrib/fillwith/README.md32
-rw-r--r--macros/latex/contrib/fillwith/fillwith-example.pdfbin0 -> 116008 bytes
-rw-r--r--macros/latex/contrib/fillwith/fillwith.dtx747
-rw-r--r--macros/latex/contrib/fillwith/fillwith.ins68
-rw-r--r--macros/latex/contrib/fillwith/fillwith.pdfbin0 -> 513081 bytes
-rw-r--r--macros/latex/contrib/fmtcount/CHANGES8
-rw-r--r--macros/latex/contrib/fmtcount/README9
-rw-r--r--macros/latex/contrib/fmtcount/fmtcount.dtx746
-rw-r--r--macros/latex/contrib/fmtcount/fmtcount.ins10
-rw-r--r--macros/latex/contrib/fmtcount/fmtcount.pdfbin563008 -> 629876 bytes
-rw-r--r--macros/latex/contrib/fmtcount/fmtcount.perl227
-rw-r--r--macros/latex/contrib/fontscale/CHANGELOG.md75
-rw-r--r--macros/latex/contrib/fontscale/README.txt2
-rw-r--r--macros/latex/contrib/fontscale/beery.cls153
-rw-r--r--macros/latex/contrib/fontscale/fontscale-manual-table-classic.tex39
-rw-r--r--macros/latex/contrib/fontscale/fontscale-manual-table-font-steps.tex38
-rw-r--r--macros/latex/contrib/fontscale/fontscale-manual-table-modular-musical.tex38
-rw-r--r--macros/latex/contrib/fontscale/fontscale-manual.pdfbin117192 -> 0 bytes
-rw-r--r--macros/latex/contrib/fontscale/fontscale-manual.tex390
-rw-r--r--macros/latex/contrib/fontscale/fontscale-table-classic.tex41
-rw-r--r--macros/latex/contrib/fontscale/fontscale-table-font-steps.tex39
-rw-r--r--macros/latex/contrib/fontscale/fontscale-table-musical.tex39
-rw-r--r--macros/latex/contrib/fontscale/fontscale.pdfbin0 -> 106313 bytes
-rw-r--r--macros/latex/contrib/fontscale/fontscale.sty1273
-rw-r--r--macros/latex/contrib/fontscale/fontscale.tex420
-rw-r--r--macros/latex/contrib/framedsyntax/FramedSyntax.dtx930
-rw-r--r--macros/latex/contrib/framedsyntax/FramedSyntax.pdfbin0 -> 460751 bytes
-rw-r--r--macros/latex/contrib/framedsyntax/README.txt12
-rw-r--r--macros/latex/contrib/fvextra/CHANGELOG.md46
-rw-r--r--macros/latex/contrib/fvextra/fvextra.dtx715
-rw-r--r--macros/latex/contrib/fvextra/fvextra.pdfbin895911 -> 916979 bytes
-rw-r--r--macros/latex/contrib/gridset/LICENSE.md2
-rw-r--r--macros/latex/contrib/gridset/README.md51
-rw-r--r--macros/latex/contrib/gridset/gridset.dtx61
-rw-r--r--macros/latex/contrib/gridset/gridset.pdfbin223385 -> 244186 bytes
-rw-r--r--macros/latex/contrib/harmony/README27
-rw-r--r--macros/latex/contrib/harmony/harmony.pdfbin150295 -> 177261 bytes
-rw-r--r--macros/latex/contrib/harmony/harmony.sty186
-rw-r--r--macros/latex/contrib/harmony/harmony.tex111
-rw-r--r--macros/latex/contrib/hebdomon/README.md18
-rw-r--r--macros/latex/contrib/hebdomon/doc/HebdomonGuide.pdfbin0 -> 544450 bytes
-rw-r--r--macros/latex/contrib/hebdomon/doc/HebdomonGuide.tex461
-rw-r--r--macros/latex/contrib/hebdomon/doc/figures/innsbruck.jpgbin0 -> 421584 bytes
-rw-r--r--macros/latex/contrib/hebdomon/tex/hebdomon.cls412
-rw-r--r--macros/latex/contrib/heria/heria-proposal.pdfbin311049 -> 311062 bytes
-rw-r--r--macros/latex/contrib/heria/heria.dtx33
-rw-r--r--macros/latex/contrib/heria/heria.pdfbin301201 -> 305232 bytes
-rw-r--r--macros/latex/contrib/homework/README.md30
-rw-r--r--macros/latex/contrib/homework/homework.cls35
-rw-r--r--macros/latex/contrib/hypcap/README.md20
-rw-r--r--macros/latex/contrib/hypcap/hypcap.dtx (renamed from macros/latex/contrib/oberdiek/hypcap.dtx)73
-rw-r--r--macros/latex/contrib/hypcap/hypcap.pdf (renamed from macros/latex/contrib/oberdiek/hypcap.pdf)bin310655 -> 300905 bytes
-rw-r--r--macros/latex/contrib/hypdestopt/README.md4
-rw-r--r--macros/latex/contrib/hypdestopt/hypdestopt.dtx57
-rw-r--r--macros/latex/contrib/hypdestopt/hypdestopt.pdfbin323028 -> 347012 bytes
-rw-r--r--macros/latex/contrib/iaria-lite/README20
-rw-r--r--macros/latex/contrib/iaria-lite/iaria-lite.dtx66
-rw-r--r--macros/latex/contrib/iaria-lite/iaria-lite.ins2
-rw-r--r--macros/latex/contrib/iaria-lite/iaria-lite.pdfbin170730 -> 174380 bytes
-rw-r--r--macros/latex/contrib/iaria-lite/template/cpn_all_all.bib226
-rw-r--r--macros/latex/contrib/iaria-lite/template/cpn_supervised_all.bib1
-rw-r--r--macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.pdfbin132913 -> 142941 bytes
-rw-r--r--macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.tex72
-rw-r--r--macros/latex/contrib/iaria/README18
-rw-r--r--macros/latex/contrib/iaria/iaria.dtx91
-rw-r--r--macros/latex/contrib/iaria/iaria.ins2
-rw-r--r--macros/latex/contrib/iaria/iaria.pdfbin172223 -> 175722 bytes
-rw-r--r--macros/latex/contrib/iaria/template/cpn_all_all.bib226
-rw-r--r--macros/latex/contrib/iaria/template/cpn_supervised_all.bib1
-rw-r--r--macros/latex/contrib/iaria/template/iaria-example-neumann.pdfbin132891 -> 142007 bytes
-rw-r--r--macros/latex/contrib/iaria/template/iaria-example-neumann.tex61
-rw-r--r--macros/latex/contrib/interlinear/DEPENDS.txt6
-rw-r--r--macros/latex/contrib/interlinear/LICENSE.txt415
-rw-r--r--macros/latex/contrib/interlinear/README.md89
-rw-r--r--macros/latex/contrib/interlinear/VERSION_1_03
-rw-r--r--macros/latex/contrib/interlinear/interlinear-doc.pdfbin0 -> 118771 bytes
-rw-r--r--macros/latex/contrib/interlinear/interlinear-doc.tex215
-rw-r--r--macros/latex/contrib/interlinear/interlinear.sty1176
-rw-r--r--macros/latex/contrib/isosafety/README.md2
-rw-r--r--macros/latex/contrib/isosafety/doc/isosafety-docs.pdfbin0 -> 104036 bytes
-rw-r--r--macros/latex/contrib/isosafety/doc/isosafety-docs.tex178
-rw-r--r--macros/latex/contrib/isosafety/isosafety.dtx143
-rw-r--r--macros/latex/contrib/isosafety/isosafety.pdfbin142768 -> 0 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV003.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV003.pdf)bin1123 -> 1123 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV004.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV004.pdf)bin1861 -> 1861 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV009.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV009.pdf)bin1530 -> 1530 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV010.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV010.pdf)bin1307 -> 1307 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV011.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV011.pdf)bin4364 -> 4364 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV012.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV012.pdf)bin4636 -> 4636 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV013.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV013.pdf)bin1736 -> 1736 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV027.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV027.pdf)bin4901 -> 4901 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV028.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV028.pdf)bin6703 -> 6703 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV029.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV029.pdf)bin9946 -> 9946 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV064.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV064.pdf)bin1729 -> 1729 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV067.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV067.pdf)bin2733 -> 2733 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E001.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E001.pdf)bin1828 -> 1828 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E002.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E002.pdf)bin1824 -> 1824 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E003.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E003.pdf)bin971 -> 972 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E004.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E004.pdf)bin1762 -> 1762 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E007.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E007.pdf)bin2068 -> 2068 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E008.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E008.pdf)bin1657 -> 1657 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E009.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E009.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E010.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E010.pdf)bin1203 -> 1203 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E011.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E011.pdf)bin4272 -> 4272 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E012.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E012.pdf)bin4612 -> 4612 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E013.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E013.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E014.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E014.pdf)bin4467 -> 4467 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E015.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E015.pdf)bin2117 -> 2117 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E016.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E016.pdf)bin1897 -> 1897 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E017.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E017.pdf)bin2562 -> 2562 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E018.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E018.pdf)bin1288 -> 1288 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E019.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E019.pdf)bin1281 -> 1281 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E020.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E020.pdf)bin1943 -> 1943 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E021.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E021.pdf)bin2852 -> 2852 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E022.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E022.pdf)bin1177 -> 1177 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E023.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E023.pdf)bin1172 -> 1172 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E024.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E024.pdf)bin1674 -> 1674 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E025.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E025.pdf)bin4345 -> 4345 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E026.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E026.pdf)bin1489 -> 1489 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E027.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E027.pdf)bin4814 -> 4814 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E028.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E028.pdf)bin6617 -> 6617 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E029.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E029.pdf)bin9864 -> 9864 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E030.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E030.pdf)bin1495 -> 1495 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E031.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E031.pdf)bin1721 -> 1721 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E032.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E032.pdf)bin3770 -> 3770 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E033.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E033.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E034.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E034.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E035.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E035.pdf)bin3820 -> 3820 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E036.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E036.pdf)bin4287 -> 4287 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E037.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E037.pdf)bin1959 -> 1959 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E038.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E038.pdf)bin4687 -> 4687 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E039.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E039.pdf)bin3955 -> 3955 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E040.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E040.pdf)bin1572 -> 1572 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E041.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E041.pdf)bin3792 -> 3792 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E042.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E042.pdf)bin3390 -> 3390 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E043.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E043.pdf)bin5583 -> 5583 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E044.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E044.pdf)bin3280 -> 3280 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E045.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E045.pdf)bin4814 -> 4814 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E046.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E046.pdf)bin4015 -> 4015 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E047.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E047.pdf)bin2346 -> 2346 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E048.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E048.pdf)bin2534 -> 2534 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E049.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E049.pdf)bin2423 -> 2423 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E050.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E050.pdf)bin4458 -> 4458 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E051.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E051.pdf)bin3907 -> 3907 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E052.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E052.pdf)bin2204 -> 2204 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E053.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E053.pdf)bin1886 -> 1886 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E054.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E054.pdf)bin3880 -> 3880 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E055.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E055.pdf)bin3269 -> 3269 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E056.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E056.pdf)bin2379 -> 2379 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E057.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E057.pdf)bin1169 -> 1169 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E058.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E058.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E059.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E059.pdf)bin1136 -> 1136 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E060.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E060.pdf)bin2474 -> 2474 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E061.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E061.pdf)bin4273 -> 4273 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E062.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E062.pdf)bin1760 -> 1760 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E063.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E063.pdf)bin1878 -> 1878 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E064.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E064.pdf)bin1605 -> 1605 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E065.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E065.pdf)bin1808 -> 1808 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E067.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E067.pdf)bin2617 -> 2617 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E068.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E068.pdf)bin6730 -> 6730 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E069.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E069.pdf)bin3345 -> 3345 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E070.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E070.pdf)bin1621 -> 1621 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F001.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F001.pdf)bin1567 -> 1567 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F002.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F002.pdf)bin2714 -> 2714 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F003.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F003.pdf)bin1780 -> 1780 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F004.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F004.pdf)bin2131 -> 2131 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F005.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F005.pdf)bin2289 -> 2289 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F006.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F006.pdf)bin2183 -> 2183 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F007.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F007.pdf)bin3380 -> 3380 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F008.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F008.pdf)bin3755 -> 3755 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F009.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F009.pdf)bin2238 -> 2238 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F010.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F010.pdf)bin1862 -> 1862 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F011.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F011.pdf)bin4254 -> 4254 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F012.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F012.pdf)bin1792 -> 1792 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F013.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F013.pdf)bin1813 -> 1813 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F014.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F014.pdf)bin1735 -> 1735 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F015.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F015.pdf)bin1925 -> 1925 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F016.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F016.pdf)bin2653 -> 2653 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F017.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F017.pdf)bin2724 -> 2724 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F018.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F018.pdf)bin1943 -> 1943 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F019.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F019.pdf)bin2100 -> 2100 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M001.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M001.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M002.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M002.pdf)bin1499 -> 1499 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M003.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M003.pdf)bin1608 -> 1608 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M004.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M004.pdf)bin2358 -> 2358 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M005.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M005.pdf)bin1109 -> 1110 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M006.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M006.pdf)bin2002 -> 2002 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M007.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M007.pdf)bin2092 -> 2092 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M008.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M008.pdf)bin1673 -> 1673 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M009.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M009.pdf)bin2297 -> 2297 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M010.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M010.pdf)bin1301 -> 1301 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M011.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M011.pdf)bin3054 -> 3054 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M012.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M012.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M013.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M013.pdf)bin1849 -> 1849 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M014.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M014.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M015.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M015.pdf)bin1271 -> 1271 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M016.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M016.pdf)bin1790 -> 1790 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M017.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M017.pdf)bin3757 -> 3757 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M018.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M018.pdf)bin2225 -> 2225 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M019.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M019.pdf)bin1772 -> 1772 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M020.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M020.pdf)bin1519 -> 1519 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M021.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M021.pdf)bin1351 -> 1351 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M022.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M022.pdf)bin1760 -> 1760 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M023.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M023.pdf)bin1596 -> 1596 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M024.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M024.pdf)bin1498 -> 1498 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M025.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M025.pdf)bin3246 -> 3246 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M026.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M026.pdf)bin1851 -> 1851 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M027.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M027.pdf)bin6227 -> 6227 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M028.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M028.pdf)bin2649 -> 2649 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M029.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M029.pdf)bin1879 -> 1879 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M030.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M030.pdf)bin6119 -> 6119 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M031.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M031.pdf)bin8180 -> 8180 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M032.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M032.pdf)bin5413 -> 5413 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M033.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M033.pdf)bin5446 -> 5446 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M034.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M034.pdf)bin5112 -> 5112 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M035.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M035.pdf)bin4825 -> 4825 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M036.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M036.pdf)bin3857 -> 3857 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M037.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M037.pdf)bin5183 -> 5183 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M038.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M038.pdf)bin11904 -> 11904 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M039.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M039.pdf)bin15091 -> 15091 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M040.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M040.pdf)bin16077 -> 16077 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M041.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M041.pdf)bin7136 -> 7136 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M042.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M042.pdf)bin5538 -> 5538 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M043.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M043.pdf)bin13741 -> 13741 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M044.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M044.pdf)bin3064 -> 3064 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M045.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M045.pdf)bin8883 -> 8883 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M046.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M046.pdf)bin6530 -> 6530 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M047.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M047.pdf)bin7106 -> 7106 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M048.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M048.pdf)bin15525 -> 15525 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M049.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M049.pdf)bin6205 -> 6205 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M050.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M050.pdf)bin3548 -> 3548 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M051.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M051.pdf)bin3544 -> 3544 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M052.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M052.pdf)bin4020 -> 4020 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M053.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M053.pdf)bin2284 -> 2284 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M054.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M054.pdf)bin4966 -> 4966 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M055.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M055.pdf)bin2010 -> 2010 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M056.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M056.pdf)bin1607 -> 1607 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M057.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M057.pdf)bin1246 -> 1246 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M058.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M058.pdf)bin2414 -> 2414 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M059.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M059.pdf)bin1469 -> 1469 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M060.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M060.pdf)bin2420 -> 2420 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P001.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P001.pdf)bin1197 -> 1197 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P002.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P002.pdf)bin1698 -> 1698 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P003.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P003.pdf)bin1972 -> 1972 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P004.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P004.pdf)bin1811 -> 1811 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P005.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P005.pdf)bin1768 -> 1768 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P006.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P006.pdf)bin2253 -> 2253 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P007.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P007.pdf)bin1676 -> 1676 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P008.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P008.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P009.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P009.pdf)bin1869 -> 1869 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P010.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P010.pdf)bin1775 -> 1775 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P011.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P011.pdf)bin4499 -> 4499 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P012.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P012.pdf)bin1497 -> 1497 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P013.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P013.pdf)bin3162 -> 3162 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P014.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P014.pdf)bin2354 -> 2354 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P015.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P015.pdf)bin1812 -> 1812 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P016.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P016.pdf)bin8652 -> 8652 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P017.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P017.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P018.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P018.pdf)bin1542 -> 1542 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P019.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P019.pdf)bin1772 -> 1772 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P020.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P020.pdf)bin2595 -> 2595 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P021.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P021.pdf)bin1562 -> 1562 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P022.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P022.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P023.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P023.pdf)bin1576 -> 1576 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P024.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P024.pdf)bin1684 -> 1684 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P025.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P025.pdf)bin2175 -> 2175 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P026.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P026.pdf)bin3995 -> 3995 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P027.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P027.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P028.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P028.pdf)bin2847 -> 2847 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P029.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P029.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P030.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P030.pdf)bin2978 -> 2978 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P031.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P031.pdf)bin1582 -> 1582 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P032.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P032.pdf)bin1812 -> 1812 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P033.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P033.pdf)bin15245 -> 15245 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P034.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P034.pdf)bin13872 -> 13872 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P035.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P035.pdf)bin8281 -> 8281 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P036.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P036.pdf)bin2524 -> 2524 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P037.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P037.pdf)bin2542 -> 2542 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P038.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P038.pdf)bin2576 -> 2576 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P039.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P039.pdf)bin6372 -> 6372 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P040.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P040.pdf)bin3697 -> 3697 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P041.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P041.pdf)bin1640 -> 1640 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P042.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P042.pdf)bin1674 -> 1674 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P043.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P043.pdf)bin5266 -> 5266 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P044.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P044.pdf)bin3478 -> 3478 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P045.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P045.pdf)bin1783 -> 1783 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P046.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P046.pdf)bin2063 -> 2063 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P047.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P047.pdf)bin2517 -> 2517 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P048.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P048.pdf)bin1789 -> 1789 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P049.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P049.pdf)bin2190 -> 2190 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P050.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P050.pdf)bin1936 -> 1936 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P051.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P051.pdf)bin2248 -> 2248 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P052.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P052.pdf)bin2184 -> 2184 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P053.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P053.pdf)bin2191 -> 2191 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P054.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P054.pdf)bin2405 -> 2405 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P055.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P055.pdf)bin2247 -> 2247 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P056.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P056.pdf)bin1914 -> 1914 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P057.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P057.pdf)bin2349 -> 2349 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P058.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P058.pdf)bin2302 -> 2302 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P059.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P059.pdf)bin2945 -> 2945 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P060.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P060.pdf)bin1340 -> 1340 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P061.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P061.pdf)bin2408 -> 2408 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P062.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P062.pdf)bin3032 -> 3032 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P063.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P063.pdf)bin2419 -> 2419 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P064.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P064.pdf)bin2879 -> 2879 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P065.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P065.pdf)bin3193 -> 3193 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P066.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P066.pdf)bin2490 -> 2490 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P067.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P067.pdf)bin1517 -> 1517 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P068.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P068.pdf)bin2240 -> 2240 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P069.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P069.pdf)bin1825 -> 1825 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P070.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P070.pdf)bin5310 -> 5310 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P071.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P071.pdf)bin1913 -> 1913 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P072.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P072.pdf)bin1844 -> 1844 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P073.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P073.pdf)bin2703 -> 2703 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P074.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P074.pdf)bin2906 -> 2906 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P075.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P075.pdf)bin1702 -> 1702 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W001.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W001.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W002.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W002.pdf)bin10194 -> 10194 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W003.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W003.pdf)0
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W004.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W004.pdf)bin1684 -> 1684 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W005.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W005.pdf)bin2585 -> 2585 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W006.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W006.pdf)bin1768 -> 1768 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W007.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W007.pdf)bin2221 -> 2221 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W008.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W008.pdf)bin2179 -> 2179 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W009.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W009.pdf)bin2430 -> 2430 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W010.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W010.pdf)bin1731 -> 1731 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W011.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W011.pdf)bin1851 -> 1851 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W012.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W012.pdf)bin1064 -> 1064 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W013.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W013.pdf)bin3018 -> 3018 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W014.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W014.pdf)bin2159 -> 2159 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W015.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W015.pdf)bin1933 -> 1933 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W016.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W016.pdf)bin2628 -> 2628 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W017.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W017.pdf)bin1280 -> 1280 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W018.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W018.pdf)bin2619 -> 2619 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W019.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W019.pdf)bin1803 -> 1803 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W020.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W020.pdf)bin1611 -> 1611 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W021.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W021.pdf)bin2127 -> 2127 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W022.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W022.pdf)bin1671 -> 1671 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W023.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W023.pdf)bin2778 -> 2778 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W024.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W024.pdf)bin1398 -> 1398 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W025.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W025.pdf)bin3060 -> 3060 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W026.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W026.pdf)bin1754 -> 1754 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W027.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W027.pdf)bin1525 -> 1525 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W028.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W028.pdf)bin2278 -> 2278 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W029.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W029.pdf)bin4426 -> 4426 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W030.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W030.pdf)bin2473 -> 2473 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W031.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W031.pdf)bin2764 -> 2764 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W032.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W032.pdf)bin2952 -> 2952 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W033.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W033.pdf)bin3108 -> 3108 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W034.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W034.pdf)bin3383 -> 3383 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W035.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W035.pdf)bin2962 -> 2962 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W036.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W036.pdf)bin23961 -> 23961 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W037.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W037.pdf)bin8525 -> 8525 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W038.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W038.pdf)bin7126 -> 7126 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W039.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W039.pdf)bin1690 -> 1690 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W040.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W040.pdf)bin12232 -> 12232 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W041.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W041.pdf)bin42519 -> 42519 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W042.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W042.pdf)bin1485 -> 1485 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W043.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W043.pdf)bin3520 -> 3520 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W044.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W044.pdf)bin2163 -> 2163 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W045.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W045.pdf)bin4400 -> 4400 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W046.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W046.pdf)bin5475 -> 5475 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W047.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W047.pdf)bin3771 -> 3771 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W048.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W048.pdf)bin3758 -> 3758 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W049.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W049.pdf)bin5523 -> 5523 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W050.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W050.pdf)bin3742 -> 3742 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W051.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W051.pdf)bin2539 -> 2539 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W052.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W052.pdf)bin4373 -> 4373 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W053.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W053.pdf)bin4771 -> 4771 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W054.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W054.pdf)bin2853 -> 2853 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W055.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W055.pdf)bin2162 -> 2162 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W056.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W056.pdf)bin2291 -> 2291 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W057.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W057.pdf)bin3440 -> 3440 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W058.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W058.pdf)bin5427 -> 5427 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W059.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W059.pdf)bin1685 -> 1685 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W060.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W060.pdf)bin4166 -> 4166 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W061.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W061.pdf)bin2533 -> 2533 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W062.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W062.pdf)bin7282 -> 7282 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W063.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W063.pdf)bin5035 -> 5035 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W064.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W064.pdf)bin1691 -> 1691 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W065.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W065.pdf)bin7289 -> 7289 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W066.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W066.pdf)bin6096 -> 6096 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W067.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W067.pdf)bin3205 -> 3205 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W068.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W068.pdf)bin2524 -> 2524 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W069.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W069.pdf)bin2964 -> 2964 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W070.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W070.pdf)bin1961 -> 1961 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W071.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W071.pdf)bin6626 -> 6626 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W072.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W072.pdf)bin1612 -> 1612 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W073.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W073.pdf)bin2727 -> 2727 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W074.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W074.pdf)bin2440 -> 2440 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W075.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W075.pdf)bin3039 -> 3039 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W076.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W076.pdf)bin2006 -> 2006 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W077.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W077.pdf)bin2607 -> 2607 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W078.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W078.pdf)bin1523 -> 1523 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W079.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W079.pdf)bin1778 -> 1778 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W080.pdf (renamed from macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W080.pdf)bin1798 -> 1798 bytes
-rw-r--r--macros/latex/contrib/isosafety/tex/isosafety.sty47
-rw-r--r--macros/latex/contrib/joinbox/README.md2
-rw-r--r--macros/latex/contrib/joinbox/joinbox.pdfbin411301 -> 411317 bytes
-rw-r--r--macros/latex/contrib/joinbox/joinbox.sty94
-rw-r--r--macros/latex/contrib/joinbox/joinbox.tex2
-rw-r--r--macros/latex/contrib/jsonparse/README.md7
-rw-r--r--macros/latex/contrib/jsonparse/jason/jason.pdfbin214713 -> 3965 bytes
-rw-r--r--macros/latex/contrib/jsonparse/jason/jason.svg88
-rw-r--r--macros/latex/contrib/jsonparse/jason/jason.tex289
-rw-r--r--macros/latex/contrib/jsonparse/jsonparse-doc.pdfbin578489 -> 434185 bytes
-rw-r--r--macros/latex/contrib/jsonparse/jsonparse-doc.tex173
-rw-r--r--macros/latex/contrib/jsonparse/jsonparse.sty683
-rw-r--r--macros/latex/contrib/jupynotex/README.md61
-rwxr-xr-xmacros/latex/contrib/jupynotex/example/build5
-rw-r--r--macros/latex/contrib/jupynotex/example/example.tex27
-rw-r--r--macros/latex/contrib/jupynotex/example/notebook.ipynb593
-rw-r--r--macros/latex/contrib/jupynotex/jupynotex.py331
-rw-r--r--macros/latex/contrib/jupynotex/jupynotex.sty18
-rwxr-xr-xmacros/latex/contrib/jupynotex/tests/run3
-rw-r--r--macros/latex/contrib/jupynotex/tests/test_cellparser.py79
-rw-r--r--macros/latex/contrib/jupynotex/tests/test_main.py111
-rw-r--r--macros/latex/contrib/jupynotex/tests/test_notebook.py237
-rw-r--r--macros/latex/contrib/jwjournal/README.md26
-rw-r--r--macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdfbin125619 -> 129845 bytes
-rw-r--r--macros/latex/contrib/jwjournal/jwjournal-demo-cn.tex4
-rw-r--r--macros/latex/contrib/jwjournal/jwjournal-demo-de.pdfbin0 -> 201988 bytes
-rw-r--r--macros/latex/contrib/jwjournal/jwjournal-demo-de.tex118
-rw-r--r--macros/latex/contrib/jwjournal/jwjournal.cls26
-rw-r--r--macros/latex/contrib/keytheorems/CHANGELOG.md38
-rw-r--r--macros/latex/contrib/keytheorems/README.md612
-rw-r--r--macros/latex/contrib/keytheorems/doc/keytheorems-doc.pdfbin0 -> 144556 bytes
-rw-r--r--macros/latex/contrib/keytheorems/doc/keytheorems-doc.tex1122
-rw-r--r--macros/latex/contrib/keytheorems/tex/class-support/keythms-amsart-support.tex49
-rw-r--r--macros/latex/contrib/keytheorems/tex/class-support/keythms-amsbook-support.tex23
-rw-r--r--macros/latex/contrib/keytheorems/tex/class-support/keythms-amsproc-support.tex23
-rw-r--r--macros/latex/contrib/keytheorems/tex/class-support/keythms-memoir-support.tex49
-rw-r--r--macros/latex/contrib/keytheorems/tex/keytheorems.sty2395
-rw-r--r--macros/latex/contrib/l3packages/CHANGELOG.md10
-rw-r--r--macros/latex/contrib/l3packages/README.md2
-rw-r--r--macros/latex/contrib/l3packages/l3keys2e.dtx4
-rw-r--r--macros/latex/contrib/l3packages/l3keys2e.pdfbin412900 -> 412980 bytes
-rw-r--r--macros/latex/contrib/l3packages/xfp.dtx4
-rw-r--r--macros/latex/contrib/l3packages/xfp.pdfbin332573 -> 332674 bytes
-rw-r--r--macros/latex/contrib/l3packages/xparse.dtx25
-rw-r--r--macros/latex/contrib/l3packages/xparse.pdfbin551837 -> 551942 bytes
-rw-r--r--macros/latex/contrib/l3packages/xtemplate.dtx5
-rw-r--r--macros/latex/contrib/l3packages/xtemplate.pdfbin449003 -> 449112 bytes
-rw-r--r--macros/latex/contrib/listings/listings-devel.pdfbin1454841 -> 1457040 bytes
-rw-r--r--macros/latex/contrib/listings/listings.dtx149
-rw-r--r--macros/latex/contrib/listings/listings.pdfbin1028632 -> 1028426 bytes
-rw-r--r--macros/latex/contrib/listings/lstdrvrs.dtx6
-rw-r--r--macros/latex/contrib/listings/lstdrvrs.pdfbin790575 -> 791320 bytes
-rw-r--r--macros/latex/contrib/litesolution/README.md2
-rw-r--r--macros/latex/contrib/litesolution/doc/figure/universe.pdfbin97170 -> 97170 bytes
-rw-r--r--macros/latex/contrib/litesolution/doc/figure/universe.tex2
-rw-r--r--macros/latex/contrib/litesolution/doc/litesolution.pdfbin276452 -> 637178 bytes
-rw-r--r--macros/latex/contrib/litesolution/doc/litesolution.tex124
-rw-r--r--macros/latex/contrib/litesolution/tex/litesolution.cls167
-rw-r--r--macros/latex/contrib/litetable/README.md14
-rw-r--r--macros/latex/contrib/litetable/doc/favicon.pngbin17761 -> 0 bytes
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-cn.pdfbin304570 -> 174081 bytes
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-cn.tex427
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-demo.pdfbin106969 -> 55242 bytes
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-demo.tex211
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-en.pdfbin178911 -> 118263 bytes
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-en.tex381
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-hk.pdfbin0 -> 189869 bytes
-rw-r--r--macros/latex/contrib/litetable/doc/litetable-hk.tex143
-rw-r--r--macros/latex/contrib/litetable/tex/litetable.cls710
-rw-r--r--macros/latex/contrib/lni/CHANGELOG.md15
-rw-r--r--macros/latex/contrib/lni/README.md2
-rw-r--r--macros/latex/contrib/lni/lni.dtx11
-rw-r--r--macros/latex/contrib/lni/lni.pdfbin377652 -> 377655 bytes
-rw-r--r--macros/latex/contrib/lstaddons/README.txt (renamed from macros/latex/contrib/lstaddons/README)4
-rw-r--r--macros/latex/contrib/lstaddons/lstautogobble.dtx6
-rw-r--r--macros/latex/contrib/lstaddons/lstautogobble.pdfbin183234 -> 193066 bytes
-rw-r--r--macros/latex/contrib/lstaddons/lstlinebgrd.dtx17
-rw-r--r--macros/latex/contrib/lstaddons/lstlinebgrd.pdfbin213449 -> 224624 bytes
-rw-r--r--macros/latex/contrib/magicwatermark/README.md4
-rw-r--r--macros/latex/contrib/magicwatermark/doc/magicwatermark-cn.pdfbin0 -> 134688 bytes
-rw-r--r--macros/latex/contrib/magicwatermark/doc/magicwatermark-cn.tex373
-rw-r--r--macros/latex/contrib/magicwatermark/doc/magicwatermark-en.pdfbin0 -> 93645 bytes
-rw-r--r--macros/latex/contrib/magicwatermark/doc/magicwatermark-en.tex400
-rw-r--r--macros/latex/contrib/magicwatermark/magicwatermark-en.pdfbin83023 -> 0 bytes
-rw-r--r--macros/latex/contrib/magicwatermark/magicwatermark-en.tex212
-rw-r--r--macros/latex/contrib/magicwatermark/magicwatermark.dtx598
-rw-r--r--macros/latex/contrib/magicwatermark/magicwatermark.pdfbin137623 -> 0 bytes
-rw-r--r--macros/latex/contrib/magicwatermark/magicwatermark.sty453
-rw-r--r--macros/latex/contrib/mathastext/README.md18
-rw-r--r--macros/latex/contrib/mathastext/mathastext.dtx157
-rw-r--r--macros/latex/contrib/mathastext/mathastext.pdfbin739148 -> 745164 bytes
-rw-r--r--macros/latex/contrib/media9/ChangeLog22
-rw-r--r--macros/latex/contrib/media9/doc/media9.pdfbin3660318 -> 3685924 bytes
-rw-r--r--macros/latex/contrib/media9/media9.sty13
-rw-r--r--macros/latex/contrib/media9/pdfbase.sty144
-rw-r--r--macros/latex/contrib/mercatormap/CHANGES.md176
-rw-r--r--macros/latex/contrib/mercatormap/README43
-rw-r--r--macros/latex/contrib/mercatormap/README.md50
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap-example.tex4
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.bib41
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.doc.animations.tex538
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.doc.definition.tex38
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.doc.drawing.tex62
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.doc.examples.tex28
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.doc.intro.tex6
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.doc.limitations.tex10
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.doc.maptiles.tex309
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.doc.marker.tex58
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.doc.orthodromes.tex118
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.doc.scales.tex20
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.doc.sty13
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.doc.versionhistory.tex50
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.pdfbin24872307 -> 23145514 bytes
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.sty922
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.tex21
-rw-r--r--macros/latex/contrib/mercatormap/mercatorpy.def16
-rw-r--r--macros/latex/contrib/mercatormap/mercatorsupplier.def221
-rw-r--r--macros/latex/contrib/minted/CHANGELOG_LATEXMINTED_PYTHON_PACKAGE.md6
-rw-r--r--macros/latex/contrib/minted/CHANGELOG_MINTED_LATEX_PACKAGE.md918
-rw-r--r--macros/latex/contrib/minted/DEPENDS.txt10
-rw-r--r--macros/latex/contrib/minted/Makefile38
-rw-r--r--macros/latex/contrib/minted/README4
-rw-r--r--macros/latex/contrib/minted/latex2pydata-0.4.0-py3-none-any.whlbin0 -> 12888 bytes
-rw-r--r--macros/latex/contrib/minted/latexminted-0.1.0-py3-none-any.whlbin0 -> 31863 bytes
-rw-r--r--macros/latex/contrib/minted/latexminted.py359
-rw-r--r--macros/latex/contrib/minted/latexrestricted-0.4.0-py3-none-any.whlbin0 -> 26755 bytes
-rw-r--r--macros/latex/contrib/minted/minted.dtx5241
-rw-r--r--macros/latex/contrib/minted/minted.ins19
-rw-r--r--macros/latex/contrib/minted/minted.pdfbin872465 -> 500920 bytes
-rw-r--r--macros/latex/contrib/minted/minted1.sty261
-rw-r--r--macros/latex/contrib/minted/minted2.sty1285
-rw-r--r--macros/latex/contrib/minted/pygments-2.18.0-py3-none-any.whlbin0 -> 1205513 bytes
-rw-r--r--macros/latex/contrib/mitthesis/MIT-Thesis.pdfbin484200 -> 552860 bytes
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex31
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex4
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/appendixb.tex108
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/committee_members.tex69
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-defaultfonts.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-fira-newtxsf.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-heros-stix2.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-libertine.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-lucida.tex4
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx-sans-text.tex5
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-stix2.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes-stix2.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes.tex6
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/mitthesis-sample.bib12
-rw-r--r--macros/latex/contrib/mitthesis/README.md23
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdfbin480892 -> 550995 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdfbin349865 -> 374324 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdfbin152948 -> 169587 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdfbin461124 -> 484379 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdfbin173088 -> 191692 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdfbin278894 -> 294664 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdfbin320084 -> 339125 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdfbin162721 -> 179016 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Termes-stix2.pdfbin164333 -> 181040 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdfbin160667 -> 177446 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex188
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex191
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex192
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex188
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex188
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex191
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex187
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/README_font_sample_sources.txt5
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex188
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-stix2.tex187
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex187
-rwxr-xr-xmacros/latex/contrib/mitthesis/examples/font_samples/latex_sources/compile-font-samples.sh89
-rw-r--r--macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdfbin108977 -> 109707 bytes
-rw-r--r--macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex54
-rw-r--r--macros/latex/contrib/mitthesis/mitthesis.cls69
-rw-r--r--macros/latex/contrib/mlacls/mla-example.pdfbin2697255 -> 2683255 bytes
-rw-r--r--macros/latex/contrib/mlacls/mla.dtx76
-rw-r--r--macros/latex/contrib/mlacls/mla.pdfbin393101 -> 351909 bytes
-rw-r--r--macros/latex/contrib/moremath/moremath-doc.pdfbin945345 -> 994870 bytes
-rw-r--r--macros/latex/contrib/moremath/moremath.dtx402
-rw-r--r--macros/latex/contrib/naive-ebnf/README.md17
-rw-r--r--macros/latex/contrib/naive-ebnf/naive-ebnf.dtx21
-rw-r--r--macros/latex/contrib/naive-ebnf/naive-ebnf.pdfbin727116 -> 772430 bytes
-rw-r--r--macros/latex/contrib/nfssext-cfr/README26
-rw-r--r--macros/latex/contrib/nfssext-cfr/README.md114
-rw-r--r--macros/latex/contrib/nfssext-cfr/manifest.txt71
-rw-r--r--macros/latex/contrib/nfssext-cfr/nfssext-cfr.dtx3334
-rw-r--r--macros/latex/contrib/nfssext-cfr/nfssext-cfr.ins111
-rw-r--r--macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdfbin180398 -> 919965 bytes
-rw-r--r--macros/latex/contrib/nfssext-cfr/nfssext-cfr.sty641
-rw-r--r--macros/latex/contrib/nfssext-cfr/nfssext-cfr.tex196
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-code.dtx381
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-code.pdf46990
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.pdf7644
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex109
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.pdf8458
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.tex71
-rw-r--r--macros/latex/contrib/oberdiek/README.md6
-rw-r--r--macros/latex/contrib/oberdiek/aliascnt.dtx4
-rw-r--r--macros/latex/contrib/oberdiek/aliascnt.pdfbin321667 -> 321663 bytes
-rw-r--r--macros/latex/contrib/oberdiek/bmpsize.dtx4
-rw-r--r--macros/latex/contrib/oberdiek/bmpsize.pdfbin525958 -> 525977 bytes
-rw-r--r--macros/latex/contrib/oberdiek/centernot.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/centernot.pdfbin304565 -> 304565 bytes
-rw-r--r--macros/latex/contrib/oberdiek/chemarr.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/chemarr.pdfbin318494 -> 318494 bytes
-rw-r--r--macros/latex/contrib/oberdiek/classlist.dtx4
-rw-r--r--macros/latex/contrib/oberdiek/classlist.pdfbin298087 -> 298081 bytes
-rw-r--r--macros/latex/contrib/oberdiek/colonequals.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/colonequals.pdfbin311530 -> 311533 bytes
-rw-r--r--macros/latex/contrib/oberdiek/dvipscol.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/dvipscol.pdfbin297233 -> 297233 bytes
-rw-r--r--macros/latex/contrib/oberdiek/engord.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/engord.pdfbin347368 -> 347368 bytes
-rw-r--r--macros/latex/contrib/oberdiek/enparen.dtx10
-rw-r--r--macros/latex/contrib/oberdiek/enparen.pdfbin332193 -> 332199 bytes
-rw-r--r--macros/latex/contrib/oberdiek/eolgrab.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/eolgrab.pdfbin346528 -> 346528 bytes
-rw-r--r--macros/latex/contrib/oberdiek/fibnum.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/fibnum.pdfbin387246 -> 387246 bytes
-rw-r--r--macros/latex/contrib/oberdiek/flags.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/flags.pdfbin311381 -> 311381 bytes
-rw-r--r--macros/latex/contrib/oberdiek/holtxdoc.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/holtxdoc.pdfbin333733 -> 333733 bytes
-rw-r--r--macros/latex/contrib/oberdiek/hypbmsec.dtx8
-rw-r--r--macros/latex/contrib/oberdiek/hypbmsec.pdfbin317462 -> 317462 bytes
-rw-r--r--macros/latex/contrib/oberdiek/hypgotoe.dtx4
-rw-r--r--macros/latex/contrib/oberdiek/hypgotoe.pdfbin313697 -> 313697 bytes
-rw-r--r--macros/latex/contrib/oberdiek/hyphsubst.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/hyphsubst.pdfbin328780 -> 328780 bytes
-rw-r--r--macros/latex/contrib/oberdiek/ifdraft.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/ifdraft.pdfbin292642 -> 292642 bytes
-rw-r--r--macros/latex/contrib/oberdiek/iflang.dtx8
-rw-r--r--macros/latex/contrib/oberdiek/iflang.pdfbin344768 -> 344771 bytes
-rw-r--r--macros/latex/contrib/oberdiek/oberdiek-bundle.bib14
-rw-r--r--macros/latex/contrib/oberdiek/oberdiek.ins4
-rw-r--r--macros/latex/contrib/oberdiek/oberdiek.pdfbin277944 -> 272940 bytes
-rw-r--r--macros/latex/contrib/oberdiek/oberdiek.tex33
-rw-r--r--macros/latex/contrib/oberdiek/pdfcolparallel.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/pdfcolparallel.pdfbin348838 -> 348838 bytes
-rw-r--r--macros/latex/contrib/oberdiek/pdfcolparcolumns.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/pdfcolparcolumns.pdfbin336523 -> 336523 bytes
-rw-r--r--macros/latex/contrib/oberdiek/pdfcrypt.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/pdfcrypt.pdfbin337837 -> 337837 bytes
-rw-r--r--macros/latex/contrib/oberdiek/protecteddef.dtx4
-rw-r--r--macros/latex/contrib/oberdiek/protecteddef.pdfbin336483 -> 336480 bytes
-rw-r--r--macros/latex/contrib/oberdiek/resizegather.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/resizegather.pdfbin543911 -> 543911 bytes
-rw-r--r--macros/latex/contrib/oberdiek/rotchiffre.dtx4
-rw-r--r--macros/latex/contrib/oberdiek/rotchiffre.pdfbin345328 -> 345313 bytes
-rw-r--r--macros/latex/contrib/oberdiek/scrindex.dtx4
-rw-r--r--macros/latex/contrib/oberdiek/scrindex.pdfbin309276 -> 309292 bytes
-rw-r--r--macros/latex/contrib/oberdiek/setouterhbox.dtx6
-rw-r--r--macros/latex/contrib/oberdiek/setouterhbox.pdfbin358522 -> 358447 bytes
-rw-r--r--macros/latex/contrib/oberdiek/settobox.dtx4
-rw-r--r--macros/latex/contrib/oberdiek/settobox.pdfbin321376 -> 321375 bytes
-rw-r--r--macros/latex/contrib/oberdiek/stackrel.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/stackrel.pdfbin310389 -> 310389 bytes
-rw-r--r--macros/latex/contrib/oberdiek/stampinclude.dtx6
-rw-r--r--macros/latex/contrib/oberdiek/stampinclude.pdfbin304745 -> 304749 bytes
-rw-r--r--macros/latex/contrib/oberdiek/tabularht.dtx6
-rw-r--r--macros/latex/contrib/oberdiek/tabularht.pdfbin359268 -> 359270 bytes
-rw-r--r--macros/latex/contrib/oberdiek/tabularkv.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/tabularkv.pdfbin280523 -> 280523 bytes
-rw-r--r--macros/latex/contrib/oberdiek/thepdfnumber.dtx12
-rw-r--r--macros/latex/contrib/oberdiek/thepdfnumber.pdfbin377485 -> 377482 bytes
-rw-r--r--macros/latex/contrib/oberdiek/twoopt.dtx2
-rw-r--r--macros/latex/contrib/oberdiek/twoopt.pdfbin301484 -> 301484 bytes
-rw-r--r--macros/latex/contrib/ocgx2/ChangeLog14
-rw-r--r--macros/latex/contrib/ocgx2/ocgbase.sty275
-rw-r--r--macros/latex/contrib/ocgx2/ocgx2.sty255
-rw-r--r--macros/latex/contrib/pagelayout/README.md14
-rw-r--r--macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdfbin75292 -> 75391 bytes
-rw-r--r--macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex2
-rwxr-xr-xmacros/latex/contrib/pagelayout/scripts/pagelayoutapi2
-rwxr-xr-xmacros/latex/contrib/pagelayout/scripts/textestvis10
-rw-r--r--macros/latex/contrib/pagelayout/tex/pagelayout.cls10
-rw-r--r--macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.pdfbin670553 -> 736292 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.tex75
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Indication/PanneauRouteC24a.pdfbin0 -> 1345 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB14_80.pdfbin0 -> 2775 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB1j.pdfbin0 -> 1506 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB30_30.pdfbin0 -> 4929 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b1.pdfbin0 -> 1761 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b2.pdfbin0 -> 3914 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b3.pdfbin0 -> 1919 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b4.pdfbin0 -> 1957 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b5.pdfbin0 -> 4093 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB49VL.pdfbin0 -> 4986 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50a.pdfbin0 -> 1642 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50b.pdfbin0 -> 3758 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50c.pdfbin0 -> 1797 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50d.pdfbin0 -> 2031 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50e.pdfbin0 -> 3932 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB51_30.pdfbin0 -> 4867 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB52.pdfbin0 -> 5184 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB53.pdfbin0 -> 5314 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB54.pdfbin0 -> 3128 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB55.pdfbin0 -> 3255 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB56.pdfbin0 -> 2954 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB57.pdfbin0 -> 2892 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB58.pdfbin0 -> 19271 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB59.pdfbin0 -> 11639 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/PanneauxRoute.sty18
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK14.pdfbin0 -> 1651 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK17.pdfbin0 -> 1724 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK2.pdfbin0 -> 1695 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK22.pdfbin0 -> 2921 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK3.pdfbin0 -> 1514 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK30.pdfbin0 -> 3705 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK31.pdfbin0 -> 1903 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK32.pdfbin0 -> 1719 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK4.pdfbin0 -> 2265 bytes
-rw-r--r--macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK5.pdfbin0 -> 2191 bytes
-rw-r--r--macros/latex/contrib/pas-tableur/README37
-rw-r--r--macros/latex/contrib/pas-tableur/README.txt40
-rw-r--r--macros/latex/contrib/pas-tableur/doc/pas-tableur.pdfbin410165 -> 392763 bytes
-rw-r--r--macros/latex/contrib/pas-tableur/doc/pas-tableur.tex35
-rw-r--r--macros/latex/contrib/pas-tableur/latex/pas-tableur.sty91
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md53
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/README.md2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty7
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx86
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdfbin988776 -> 990245 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx20
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdfbin711669 -> 711375 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdfbin602769 -> 602781 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdfbin515851 -> 515753 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdfbin558756 -> 558768 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdfbin541897 -> 520855 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx29
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdfbin543358 -> 523018 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx8
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdfbin538339 -> 517529 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdfbin594389 -> 573028 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdfbin516578 -> 516601 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx12
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdfbin753718 -> 732912 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdfbin568304 -> 568185 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx26
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdfbin685930 -> 685763 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx227
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdfbin848504 -> 834408 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfoutline.pdfbin0 -> 596723 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdfbin530707 -> 530692 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdfbin428064 -> 427806 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx18
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdfbin587757 -> 588349 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdfbin434746 -> 434607 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdfbin464617 -> 464470 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty2
-rw-r--r--macros/latex/contrib/pdfpages/pdfpages.dtx21
-rw-r--r--macros/latex/contrib/pdfpages/pdfpages.pdfbin302686 -> 302226 bytes
-rw-r--r--macros/latex/contrib/profcollege/doc/profcollege-doc.pdfbin10823654 -> 10841130 bytes
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCAllumettes.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCArbreCalcul.tex3
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCArbreChiffre.tex3
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCAssemblagesSolides.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCAutomatismes.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCAutonomie.tex8
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex3
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCBillard.tex17
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCBonSortie.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCBonbon.tex6
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCAN.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex3
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalculsDetailles.tex147
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalisson.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCartographie.tex6
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCheque.tex125
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCible.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCColorilude.tex8
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCompteBon.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCConversion.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCritere.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCryptarithme.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDecDeci.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex15
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex147
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDefiTables.tex5
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDistributivite.tex3
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDobble.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDomino.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDontCountDots.tex6
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex54
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex6
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEnquete.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEratosthene.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFactorisation.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFractionAireCarre.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFrise.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFubuki.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCGaram.tex12
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCGeometrie.tex10
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCGrades.tex8
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCGrimuku.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCHorloge.tex31
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCJeton.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCKakurasu.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCKakuro.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCKenKen.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex8
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCLego.tex10
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMentalo.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMidpoint.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMosaique.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMulArt.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMulJal.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMulJap.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMulPiecesPuzzle.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNonogramme.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex36
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNumberHive.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex8
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPapiers.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPatronPaves.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPattern.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPavage.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPixelArt.tex208
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPourcentage.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCProbaFrequence.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCProbabilites.tex14
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPropor.tex50
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex82
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPyraVoca.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex307
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPythagore.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRLE.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRapido.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRecyclage.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCReperage.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex19
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex575
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex15
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRose.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCScratch.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSerpent.tex211
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCShikaku.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex10
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSolides.tex12
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSquaro.tex76
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCStatistiques.tex12
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTableauDoubleEntree.tex62
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex11
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTectonic.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCThales.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTicketCaisse.tex163
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTortueBase.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTrio.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTriominos.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCUrneProba.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCVisualisationMulDeci.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCVueCubes.tex15
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCYohaku.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/ProfCollege.sty41
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp20
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCScratch.mp7
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp7
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCSketch.mp195
-rw-r--r--macros/latex/contrib/proflycee/README.md7
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdfbin1793092 -> 2191096 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdfbin80800 -> 80865 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee.sty33
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-cup.pdfbin0 -> 2781 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal-flat.pdfbin0 -> 1857 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal.pdfbin0 -> 154573 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-checked.pdfbin0 -> 1480 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-crossed.pdfbin0 -> 1484 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-cup.pdfbin0 -> 2764 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal-flat.pdfbin0 -> 1713 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal.pdfbin0 -> 119155 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-center.pdfbin0 -> 8987 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-left.pdfbin0 -> 8987 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-right.pdfbin0 -> 8988 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse.pdfbin0 -> 8348 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-notok.pdfbin0 -> 3347 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-ok.pdfbin0 -> 3291 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-cup.pdfbin0 -> 2759 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal-flat.pdfbin0 -> 1763 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal.pdfbin0 -> 98514 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex61
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-cliparts.tex126
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex33
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex1
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex23
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex26
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex25
-rw-r--r--macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdfbin298965 -> 0 bytes
-rw-r--r--macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdfbin0 -> 341735 bytes
-rw-r--r--macros/latex/contrib/profmaquette/latex/ProfMaquette.sty1569
-rw-r--r--macros/latex/contrib/quizztex/doc/quizztex-doc-fr.pdfbin547576 -> 555201 bytes
-rw-r--r--macros/latex/contrib/quizztex/doc/quizztex-doc-fr.tex34
-rw-r--r--macros/latex/contrib/quizztex/tex/quizztex.sty11
-rw-r--r--macros/latex/contrib/randintlist/README.md6
-rw-r--r--macros/latex/contrib/randintlist/doc/randintlist-doc.pdfbin0 -> 84893 bytes
-rw-r--r--macros/latex/contrib/randintlist/doc/randintlist-doc.tex351
-rw-r--r--macros/latex/contrib/randintlist/tex/randintlist.sty246
-rw-r--r--macros/latex/contrib/regulatory/README.md1
-rw-r--r--macros/latex/contrib/regulatory/doc/example1-en.pdfbin25756 -> 27096 bytes
-rw-r--r--macros/latex/contrib/regulatory/doc/example1-en.tex2
-rw-r--r--macros/latex/contrib/regulatory/doc/example1-nl.pdfbin25600 -> 27052 bytes
-rw-r--r--macros/latex/contrib/regulatory/doc/example1-nl.tex2
-rw-r--r--macros/latex/contrib/regulatory/doc/example2-en.pdfbin52555 -> 49921 bytes
-rw-r--r--macros/latex/contrib/regulatory/doc/example2-en.tex2
-rw-r--r--macros/latex/contrib/regulatory/doc/example2-nl.pdfbin52599 -> 50114 bytes
-rw-r--r--macros/latex/contrib/regulatory/doc/example2-nl.tex2
-rw-r--r--macros/latex/contrib/regulatory/doc/regulatory-en.pdfbin227678 -> 229664 bytes
-rw-r--r--macros/latex/contrib/regulatory/doc/regulatory-en.tex2
-rw-r--r--macros/latex/contrib/regulatory/doc/regulatory-nl.pdfbin228133 -> 229738 bytes
-rw-r--r--macros/latex/contrib/regulatory/doc/regulatory-nl.tex2
-rw-r--r--macros/latex/contrib/regulatory/doc/regulatory-preamble.tex2
-rw-r--r--macros/latex/contrib/regulatory/doc/regulatory.tex12
-rw-r--r--macros/latex/contrib/regulatory/tex/fc-dutch.def327
-rw-r--r--macros/latex/contrib/regulatory/tex/regulatory.sty4
-rw-r--r--macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdfbin40800 -> 40803 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdfbin201562 -> 201562 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-criticalnotes.pdfbin197818 -> 197818 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-sidenotes.pdfbin295212 -> 295212 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-tabular.pdfbin285559 -> 285559 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdfbin198959 -> 198959 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-verses.pdfbin198796 -> 198796 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-antilabe.pdfbin210970 -> 210970 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-cross_referencing.pdfbin198303 -> 198303 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdfbin201445 -> 201445 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-glossaries.pdfbin285501 -> 285501 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-indexing.pdfbin278069 -> 278069 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdfbin276219 -> 276219 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdfbin292435 -> 292435 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-linespacing.pdfbin286624 -> 286624 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdfbin288122 -> 288122 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-notes-width.pdfbin204669 -> 204669 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdfbin212239 -> 212239 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-performances.pdfbin284580 -> 284580 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdfbin36941 -> 36941 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdfbin310601 -> 310601 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdfbin288795 -> 288795 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdfbin199919 -> 199919 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdfbin23444 -> 23442 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdfbin175645 -> 175645 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdfbin32049 -> 32049 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdfbin289211 -> 289211 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdfbin200045 -> 200045 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdfbin199281 -> 199281 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdfbin177110 -> 177110 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdfbin199684 -> 199684 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdfbin198615 -> 198615 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdfbin198673 -> 198673 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdfbin198798 -> 198798 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdfbin214375 -> 214375 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdfbin210491 -> 210491 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdfbin204973 -> 204973 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdfbin298425 -> 298425 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdfbin204015 -> 204015 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdfbin225554 -> 225554 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdfbin251039 -> 251039 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdfbin202382 -> 202382 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdfbin198565 -> 198565 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdfbin302779 -> 302779 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdfbin206948 -> 206948 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdfbin194201 -> 194201 bytes
-rw-r--r--macros/latex/contrib/reledmac/migration.pdfbin368433 -> 368426 bytes
-rw-r--r--macros/latex/contrib/reledmac/reledmac.dtx4
-rw-r--r--macros/latex/contrib/reledmac/reledmac.pdfbin2162033 -> 2161963 bytes
-rw-r--r--macros/latex/contrib/reledmac/reledpar.dtx49
-rw-r--r--macros/latex/contrib/reledmac/reledpar.pdfbin1041243 -> 1040784 bytes
-rw-r--r--macros/latex/contrib/reptheorem/reptheorem.dtx190
-rw-r--r--macros/latex/contrib/reptheorem/reptheorem.ins6
-rw-r--r--macros/latex/contrib/reptheorem/reptheorem.pdfbin271120 -> 286557 bytes
-rw-r--r--macros/latex/contrib/rpgicons/README.md2
-rw-r--r--macros/latex/contrib/rpgicons/rpgicons-doc.pdfbin500755 -> 500161 bytes
-rw-r--r--macros/latex/contrib/rpgicons/rpgicons-doc.tex5
-rw-r--r--macros/latex/contrib/rpgicons/rpgicons-l3.sty40
-rw-r--r--macros/latex/contrib/rpgicons/rpgicons-pgf.sty2
-rw-r--r--macros/latex/contrib/rpgicons/rpgicons.sty4
-rw-r--r--macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte-example.pdfbin36684 -> 143716 bytes
-rw-r--r--macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.dtx401
-rw-r--r--macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.pdfbin232043 -> 318756 bytes
-rw-r--r--macros/latex/contrib/scrhack/LICENSE.md19
-rw-r--r--macros/latex/contrib/scrhack/README.md207
-rw-r--r--macros/latex/contrib/scrhack/scrhack-2023-07-07.dtx2057
-rw-r--r--macros/latex/contrib/scrhack/scrhack-2023-07-07.pdfbin0 -> 301798 bytes
-rw-r--r--macros/latex/contrib/scrhack/scrhack.dtx991
-rw-r--r--macros/latex/contrib/scrhack/scrhack.pdfbin0 -> 301231 bytes
-rw-r--r--macros/latex/contrib/se2thesis/CHANGELOG.md51
-rw-r--r--macros/latex/contrib/se2thesis/se2colors.dtx2
-rw-r--r--macros/latex/contrib/se2thesis/se2fonts.dtx8
-rw-r--r--macros/latex/contrib/se2thesis/se2packages.dtx4
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdfbin231943 -> 231998 bytes
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis.dtx96
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis.pdfbin362248 -> 366777 bytes
-rw-r--r--macros/latex/contrib/sidenotes/caesar_book.cls44
-rw-r--r--macros/latex/contrib/sidenotes/caesar_example.pdfbin86126 -> 91942 bytes
-rw-r--r--macros/latex/contrib/sidenotes/caesar_example.tex21
-rw-r--r--macros/latex/contrib/sidenotes/sidenotes.dtx246
-rw-r--r--macros/latex/contrib/sidenotes/sidenotes.ins4
-rw-r--r--macros/latex/contrib/sidenotes/sidenotes.pdfbin217903 -> 233107 bytes
-rw-r--r--macros/latex/contrib/sillypage/sillypage-example.pdfbin104340 -> 104340 bytes
-rw-r--r--macros/latex/contrib/sillypage/sillypage.dtx34
-rw-r--r--macros/latex/contrib/sillypage/sillypage.pdfbin220111 -> 222678 bytes
-rw-r--r--macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.pdfbin408693 -> 430723 bytes
-rw-r--r--macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex136
-rw-r--r--macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdfbin399623 -> 422751 bytes
-rw-r--r--macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex228
-rw-r--r--macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty180
-rw-r--r--macros/latex/contrib/siunitx/CHANGELOG.md28
-rw-r--r--macros/latex/contrib/siunitx/siunitx-angle.dtx130
-rw-r--r--macros/latex/contrib/siunitx/siunitx-code.pdfbin645802 -> 645497 bytes
-rw-r--r--macros/latex/contrib/siunitx/siunitx-complex.dtx45
-rw-r--r--macros/latex/contrib/siunitx/siunitx-compound.dtx1
-rw-r--r--macros/latex/contrib/siunitx/siunitx-number.dtx9
-rw-r--r--macros/latex/contrib/siunitx/siunitx-table.dtx50
-rw-r--r--macros/latex/contrib/siunitx/siunitx-unit.dtx5
-rw-r--r--macros/latex/contrib/siunitx/siunitx.dtx5
-rw-r--r--macros/latex/contrib/siunitx/siunitx.pdfbin703908 -> 703918 bytes
-rw-r--r--macros/latex/contrib/siunitx/siunitx.tex12
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-2.oggbin58385 -> 65853 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-1.oggbin92122 -> 42525 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-2.oggbin45754 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.oggbin16077 -> 11709 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-1.oggbin38925 -> 109773 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-2.oggbin53387 -> 51597 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.oggbin13645 -> 18333 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0-1.oggbin0 -> 38637 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0-2.oggbin0 -> 59373 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.m3u9
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.oggbin15843 -> 12861 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0-1.oggbin33768 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.oggbin18610 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-1.oggbin41577 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-star-1.oggbin8290 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.oggbin19424 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/6.0.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/6.0.0.0.0.oggbin0 -> 15165 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0-1.oggbin0 -> 37197 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0.oggbin0 -> 18189 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0-1.oggbin0 -> 48141 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0-star-1.oggbin0 -> 7245 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0.oggbin0 -> 19629 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/date.oggbin13533 -> 14589 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example.pdfbin84377 -> 92810 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example.tex37
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-1.oggbin0 -> 49149 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-star-1.oggbin0 -> 6381 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.m3u57
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-1.oggbin110781 -> 132381 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-3.oggbin133965 -> 131229 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.m3u22
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.oggbin55773 -> 58797 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.m3u12
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-10.oggbin156141 -> 120573 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-11.oggbin123021 -> 115389 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-12.oggbin103869 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-2.oggbin201069 -> 257949 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-6.oggbin75645 -> 75213 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-7.oggbin181773 -> 129213 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-8.oggbin127485 -> 88173 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-9.oggbin88173 -> 156141 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.m3u25
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.m3u104
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.oggbin86733 -> 87597 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.m3u16
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.m3u65
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.oggbin39501 -> 62109 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-10.oggbin0 -> 121581 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-11.oggbin0 -> 167085 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.oggbin20925 -> 163053 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.oggbin21933 -> 114381 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.oggbin28269 -> 106893 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-5.oggbin0 -> 121725 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-6.oggbin0 -> 315549 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-7.oggbin0 -> 85437 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-8.ogg (renamed from macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-9.ogg)bin30717 -> 30717 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-9.ogg (renamed from macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-10.ogg)bin61965 -> 61965 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.m3u18
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.oggbin22720 -> 23517 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.oggbin62109 -> 153261 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-11.oggbin52461 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-12.oggbin166509 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.oggbin61764 -> 186525 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.oggbin130653 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-4.oggbin112797 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-5.oggbin104013 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-6.oggbin118845 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-7.oggbin440685 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-8.oggbin97101 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.m3u17
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.oggbin19907 -> 22797 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.oggbin153261 -> 251757 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.oggbin186237 -> 34173 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-3.oggbin0 -> 29565 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-4.oggbin0 -> 19341 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-5.oggbin0 -> 188397 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-6.oggbin0 -> 54909 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.m3u10
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.oggbin22940 -> 23517 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.oggbin251757 -> 177309 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.oggbin29567 -> 80829 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.oggbin26498 -> 126045 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-4.oggbin18524 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-5.oggbin140974 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-6.oggbin47150 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.m3u11
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.oggbin22754 -> 19629 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-1.oggbin177309 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-2.oggbin80829 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.oggbin19849 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-1.oggbin81405 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-2.oggbin183645 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-3.oggbin141597 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.oggbin23853 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.m3u10
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.oggbin55341 -> 328941 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.oggbin300141 -> 78381 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.oggbin64604 -> 49725 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-5.oggbin37835 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.m3u11
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.m3u49
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.oggbin183501 -> 102429 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-3.oggbin106029 -> 117261 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.m3u28
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.oggbin64989 -> 65853 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.m3u12
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.oggbin142605 -> 142749 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.oggbin74205 -> 74493 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.oggbin74925 -> 74925 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.m3u14
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.oggbin139725 -> 94797 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-3.oggbin0 -> 74349 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.m3u7
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.m3u104
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.oggbin52029 -> 53037 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.oggbin20882 -> 10557 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.oggbin15532 -> 14445 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.oggbin13888 -> 12573 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.oggbin15770 -> 15453 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.oggbin28759 -> 28989 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.oggbin29062 -> 29565 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-8.oggbin84905 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.m3u90
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.oggbin97379 -> 85005 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.m3u10
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.oggbin104589 -> 178029 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.oggbin39789 -> 44109 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.oggbin39789 -> 41661 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.oggbin39789 -> 44685 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.m3u12
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.oggbin99435 -> 78957 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.oggbin53793 -> 73629 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-3.oggbin56626 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-4.oggbin94077 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.oggbin27772 -> 26541 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.oggbin100656 -> 115101 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.oggbin47203 -> 59661 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.oggbin71665 -> 65277 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.oggbin41316 -> 94077 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.m3u10
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.oggbin30051 -> 29277 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.oggbin71887 -> 117837 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.oggbin31328 -> 51021 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.oggbin44852 -> 85869 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.oggbin50015 -> 46413 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-5.oggbin9840 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.m3u11
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.oggbin45999 -> 31725 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.oggbin31747 -> 86013 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.oggbin60813 -> 33165 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.oggbin33885 -> 51741 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.oggbin52605 -> 54765 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-5.oggbin0 -> 8541 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.m3u11
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.oggbin22597 -> 49581 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-1.oggbin0 -> 33885 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-2.oggbin0 -> 60813 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-3.oggbin0 -> 33309 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-4.oggbin0 -> 52605 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.m3u7
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.oggbin0 -> 22221 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.m3u12
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.m3u93
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.m3u10
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.m3u24
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.m3u14
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.oggbin64241 -> 75069 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.m3u15
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.oggbin84898 -> 97821 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.oggbin63161 -> 19773 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-2.oggbin0 -> 71757 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.m3u24
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.m3u51
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.oggbin26219 -> 28845 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.oggbin27910 -> 32301 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.oggbin26519 -> 23517 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.oggbin28484 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.oggbin28780 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.oggbin22365 -> 24381 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.oggbin0 -> 28413 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.oggbin0 -> 27693 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.oggbin0 -> 29565 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.oggbin0 -> 29709 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.oggbin0 -> 20637 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.oggbin25282 -> 19773 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.oggbin21077 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.oggbin20091 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.oggbin22221 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.oggbin21213 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.oggbin18621 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.oggbin27261 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.m3u10
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.oggbin26916 -> 26829 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.oggbin30677 -> 22509 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.m3u2
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.oggbin23949 -> 20925 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.oggbin0 -> 22653 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.oggbin0 -> 21789 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.oggbin0 -> 19341 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.oggbin0 -> 27981 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-1.oggbin22653 -> 22941 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-1.oggbin6381 -> 0 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-2.oggbin7101 -> 6381 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-3.oggbin5517 -> 7101 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-4.oggbin0 -> 5517 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.m3u14
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/date.oggbin26829 -> 26397 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex.dtx898
-rw-r--r--macros/latex/contrib/spelatex/spelatex.pdfbin332348 -> 356938 bytes
-rw-r--r--macros/latex/contrib/suanpan-l3/README.md58
-rwxr-xr-xmacros/latex/contrib/suanpan-l3/build.sh8
-rw-r--r--macros/latex/contrib/suanpan-l3/suanpan-l3.pdfbin0 -> 439455 bytes
-rw-r--r--macros/latex/contrib/suanpan-l3/suanpan-l3.sty1401
-rw-r--r--macros/latex/contrib/suanpan-l3/suanpan-l3.tex1479
-rw-r--r--macros/latex/contrib/tableof/README.md8
-rw-r--r--macros/latex/contrib/tableof/tableof.dtx165
-rw-r--r--macros/latex/contrib/tableof/tableof.pdfbin58824 -> 62790 bytes
-rw-r--r--macros/latex/contrib/tablvar/README.md6
-rw-r--r--macros/latex/contrib/tablvar/tablvar.dtx583
-rw-r--r--macros/latex/contrib/tablvar/tablvar.ins6
-rw-r--r--macros/latex/contrib/tablvar/tablvar.pdfbin271901 -> 351117 bytes
-rw-r--r--macros/latex/contrib/tagpdf/README.md4
-rw-r--r--macros/latex/contrib/tagpdf/ex-AF-file.pdf98
-rw-r--r--macros/latex/contrib/tagpdf/ex-alt-actualtext.pdfbin34295 -> 34624 bytes
-rw-r--r--macros/latex/contrib/tagpdf/ex-attribute.pdf86
-rw-r--r--macros/latex/contrib/tagpdf/ex-formula-problem.pdf74
-rw-r--r--macros/latex/contrib/tagpdf/ex-list.pdf158
-rw-r--r--macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf52
-rw-r--r--macros/latex/contrib/tagpdf/ex-softhyphen.pdf74
-rw-r--r--macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf66
-rw-r--r--macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf100
-rw-r--r--macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf94
-rw-r--r--macros/latex/contrib/tagpdf/link-figure-input.tex6
-rw-r--r--macros/latex/contrib/tagpdf/pac2024-report.pngbin0 -> 60301 bytes
-rw-r--r--macros/latex/contrib/tagpdf/pac2024-version.pngbin0 -> 29032 bytes
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-backend.dtx107
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-checks.dtx41
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-code.pdfbin1716291 -> 1277086 bytes
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-code.tex14
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-data.dtx16
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-docelements.tex2
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx10
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx6
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx10
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-roles.dtx4
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-space.dtx5
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-struct.dtx448
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-tree.dtx10
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-user.dtx18
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf.dtx275
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf.pdfbin1172067 -> 1136355 bytes
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf.tex170
-rw-r--r--macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty167
-rw-r--r--macros/latex/contrib/tagpdf/tagpdfsetup-keys.tex3
-rw-r--r--macros/latex/contrib/tcolorbox/CHANGES.md19
-rw-r--r--macros/latex/contrib/tcolorbox/README.md2
-rw-r--r--macros/latex/contrib/tcolorbox/tcbbreakable.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex27
-rw-r--r--macros/latex/contrib/tcolorbox/tcbexternal.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbfitting.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbhooks.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistings.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistingscore.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbmagazine.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbminted.code.tex8
-rw-r--r--macros/latex/contrib/tcolorbox/tcbposter.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbprocessing.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbraster.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbskins.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbtheorems.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbvignette.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbxparse.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdfbin137729 -> 137729 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example.pdfbin287734 -> 287728 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdfbin247127 -> 247644 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex14
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex40
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex53
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.intro.tex12
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex52
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty3
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex13
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex14
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex6
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.pdfbin4856594 -> 4868793 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.sty70
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.tex8
-rw-r--r--macros/latex/contrib/telprint/README.md13
-rw-r--r--macros/latex/contrib/telprint/telprint.dtx (renamed from macros/latex/contrib/oberdiek/telprint.dtx)79
-rw-r--r--macros/latex/contrib/telprint/telprint.pdf (renamed from macros/latex/contrib/oberdiek/telprint.pdf)bin331190 -> 329028 bytes
-rw-r--r--macros/latex/contrib/tkz/pgfornament/README.md5
-rw-r--r--macros/latex/contrib/tkz/pgfornament/doc/ornaments.pdfbin1377881 -> 1352275 bytes
-rw-r--r--macros/latex/contrib/tkz/pgfornament/doc/ornaments.tex4
-rw-r--r--macros/latex/contrib/tkz/pgfornament/doc/usefulcommands.tex6
-rw-r--r--macros/latex/contrib/tkz/pgfornament/latex/pgfornament.sty13
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-locale-main-english.cfg.sty8
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc-locale-main-french.cfg.sty10
-rw-r--r--macros/latex/contrib/tutodoc/code/tutodoc.sty582
-rw-r--r--macros/latex/contrib/tutodoc/doc/tutodoc-en.pdfbin709681 -> 777038 bytes
-rw-r--r--macros/latex/contrib/tutodoc/doc/tutodoc-en.tex862
-rw-r--r--macros/latex/contrib/tutodoc/doc/tutodoc-fr.pdfbin746351 -> 831570 bytes
-rw-r--r--macros/latex/contrib/tutodoc/doc/tutodoc-fr.tex884
-rw-r--r--macros/latex/contrib/uantwerpendocs/beamerthemeuantwerpenuserguide.pdfbin3225047 -> 3225047 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpenbamathesis-example.pdfbin127160 -> 127160 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpencoursetext-example.pdfbin81407 -> 81407 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpendocs.dtx19
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpendocs.pdfbin505385 -> 505689 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpenexam-example1.pdfbin62547 -> 62547 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpenexam-example2.pdfbin65647 -> 65647 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpenletter-example.pdfbin27549 -> 27549 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example1.pdfbin179332 -> 179397 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example2.pdfbin132771 -> 132758 bytes
-rw-r--r--macros/latex/contrib/uantwerpendocs/uantwerpenreport-example.pdfbin175932 -> 175932 bytes
-rw-r--r--macros/latex/contrib/ucph-revy/README.md2
-rw-r--r--macros/latex/contrib/ucph-revy/ucph-revy-da-doc.pdfbin268481 -> 270526 bytes
-rw-r--r--macros/latex/contrib/ucph-revy/ucph-revy-da-man.pdfbin164864 -> 166576 bytes
-rw-r--r--macros/latex/contrib/ucph-revy/ucph-revy-en-doc.pdfbin270492 -> 273650 bytes
-rw-r--r--macros/latex/contrib/ucph-revy/ucph-revy-en-man.pdfbin169129 -> 171925 bytes
-rw-r--r--macros/latex/contrib/ucph-revy/ucph-revy.dtx78
-rw-r--r--macros/latex/contrib/univie-ling/README40
-rw-r--r--macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx50
-rw-r--r--macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx2
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdfbin132715 -> 132635 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdfbin127940 -> 127866 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdfbin201365 -> 201366 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdfbin200965 -> 200967 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdfbin172559 -> 172484 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdfbin167650 -> 167577 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-poster-deutsch.pdfbin227173 -> 227180 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-poster-english.pdfbin224980 -> 224983 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdfbin167845 -> 347337 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.tex4
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdfbin164309 -> 343435 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.tex4
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdfbin250473 -> 250470 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-wlg-review.pdfbin250364 -> 250364 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-bbx.pdfbin0 -> 344951 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-bbx.tex238
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdfbin461504 -> 464581 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex42
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdfbin450479 -> 454292 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex38
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdfbin458946 -> 462306 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex42
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-poster.pdfbin457385 -> 457853 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-poster.tex7
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdfbin462064 -> 465942 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex83
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdfbin349412 -> 354003 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex56
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling.pdfbin365693 -> 365619 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling.tex4
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls25
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls25
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls25
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-poster.cls8
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls119
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls38
-rw-r--r--macros/latex/contrib/ut-thesis/README21
-rw-r--r--macros/latex/contrib/ut-thesis/ut-thesis.dtx16
-rw-r--r--macros/latex/contrib/ut-thesis/ut-thesis.ins21
-rw-r--r--macros/latex/contrib/ut-thesis/ut-thesis.pdfbin135197 -> 135618 bytes
-rw-r--r--macros/latex/contrib/verifycommand/README.txt2
-rw-r--r--macros/latex/contrib/verifycommand/verifycommand.dtx711
-rw-r--r--macros/latex/contrib/verifycommand/verifycommand.pdfbin226262 -> 264745 bytes
-rw-r--r--macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.pdfbin0 -> 95898 bytes
-rw-r--r--macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.tex26
-rw-r--r--macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.pdfbin476435 -> 477237 bytes
-rw-r--r--macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.tex6
-rw-r--r--macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.pdfbin612911 -> 617253 bytes
-rw-r--r--macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.tex21
-rw-r--r--macros/latex/contrib/writeongrid/tex/WriteOnGrid.sty54
-rw-r--r--macros/latex/contrib/xcolor/ChangeLog9
-rw-r--r--macros/latex/contrib/xcolor/README.md4
-rw-r--r--macros/latex/contrib/xcolor/xcolor.dtx62
-rw-r--r--macros/latex/contrib/xcolor/xcolor.pdfbin864842 -> 865002 bytes
-rw-r--r--macros/latex/contrib/xcolor/xcolor2.pdfbin91845 -> 88550 bytes
-rw-r--r--macros/latex/contrib/xreview/README54
-rw-r--r--macros/latex/contrib/xreview/xreview.pdfbin0 -> 243660 bytes
-rw-r--r--macros/latex/contrib/xreview/xreview.sty135
-rw-r--r--macros/latex/contrib/xreview/xreview.tex591
-rw-r--r--macros/latex/contrib/zref-clever/CHANGELOG.md17
-rw-r--r--macros/latex/contrib/zref-clever/zref-clever-code.pdfbin880835 -> 891606 bytes
-rw-r--r--macros/latex/contrib/zref-clever/zref-clever-doc.pdfbin227507 -> 229279 bytes
-rw-r--r--macros/latex/contrib/zref-clever/zref-clever-doc.tex107
-rw-r--r--macros/latex/contrib/zref-clever/zref-clever.dtx604
-rw-r--r--macros/latex/contrib/zugferd/DEMO-rechnung-zugferd.tex95
-rw-r--r--macros/latex/contrib/zugferd/DEPENDS.txt7
-rw-r--r--macros/latex/contrib/zugferd/README.md27
-rw-r--r--macros/latex/contrib/zugferd/zugferd-invoice.sty193
-rw-r--r--macros/latex/contrib/zugferd/zugferd.dtx2285
-rw-r--r--macros/latex/contrib/zugferd/zugferd.ins19
-rw-r--r--macros/latex/contrib/zugferd/zugferd.pdfbin0 -> 245735 bytes
-rw-r--r--macros/latex/required/babel/base/README.md19
-rw-r--r--macros/latex/required/babel/base/babel-code.pdfbin650256 -> 654089 bytes
-rw-r--r--macros/latex/required/babel/base/babel.dtx2791
-rw-r--r--macros/latex/required/babel/base/babel.ins66
-rw-r--r--macros/latex/required/babel/base/babel.pdfbin423559 -> 424750 bytes
-rw-r--r--macros/latex/required/babel/base/bbcompat.dtx2
-rw-r--r--macros/latex/required/l3kernel/CHANGELOG.md41
-rw-r--r--macros/latex/required/l3kernel/README.md2
-rw-r--r--macros/latex/required/l3kernel/expl3.dtx13
-rw-r--r--macros/latex/required/l3kernel/expl3.pdfbin610409 -> 610540 bytes
-rw-r--r--macros/latex/required/l3kernel/interface3.pdfbin1800435 -> 1791096 bytes
-rw-r--r--macros/latex/required/l3kernel/interface3.tex2
-rw-r--r--macros/latex/required/l3kernel/l3basics.dtx9
-rw-r--r--macros/latex/required/l3kernel/l3bitset.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3bootstrap.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3box.dtx6
-rw-r--r--macros/latex/required/l3kernel/l3cctab.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3clist.dtx18
-rw-r--r--macros/latex/required/l3kernel/l3coffins.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3color.dtx32
-rw-r--r--macros/latex/required/l3kernel/l3debug.dtx4
-rw-r--r--macros/latex/required/l3kernel/l3deprecation.dtx8
-rw-r--r--macros/latex/required/l3kernel/l3doc.dtx48
-rw-r--r--macros/latex/required/l3kernel/l3doc.pdfbin565557 -> 565509 bytes
-rw-r--r--macros/latex/required/l3kernel/l3docstrip.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3docstrip.pdfbin151323 -> 151188 bytes
-rw-r--r--macros/latex/required/l3kernel/l3expan.dtx6
-rw-r--r--macros/latex/required/l3kernel/l3file.dtx14
-rw-r--r--macros/latex/required/l3kernel/l3flag.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-assign.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-aux.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-basics.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-convert.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-expo.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-extended.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-functions.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-logic.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-parse.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-random.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-round.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-symbolic.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-traps.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-trig.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp-types.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3fp.dtx4
-rw-r--r--macros/latex/required/l3kernel/l3fparray.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3int.dtx24
-rw-r--r--macros/latex/required/l3kernel/l3intarray.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3kernel-functions.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3keys.dtx41
-rw-r--r--macros/latex/required/l3kernel/l3legacy.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3luatex.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3msg.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3names.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3news.pdfbin396223 -> 402148 bytes
-rw-r--r--macros/latex/required/l3kernel/l3news01.pdfbin122959 -> 122973 bytes
-rw-r--r--macros/latex/required/l3kernel/l3news02.pdfbin150919 -> 150932 bytes
-rw-r--r--macros/latex/required/l3kernel/l3news03.pdfbin148747 -> 154694 bytes
-rw-r--r--macros/latex/required/l3kernel/l3news04.pdfbin114754 -> 114764 bytes
-rw-r--r--macros/latex/required/l3kernel/l3news05.pdfbin112524 -> 112536 bytes
-rw-r--r--macros/latex/required/l3kernel/l3news06.pdfbin151591 -> 151602 bytes
-rw-r--r--macros/latex/required/l3kernel/l3news07.pdfbin128344 -> 128356 bytes
-rw-r--r--macros/latex/required/l3kernel/l3news08.pdfbin163484 -> 163496 bytes
-rw-r--r--macros/latex/required/l3kernel/l3news09.pdfbin250161 -> 256116 bytes
-rw-r--r--macros/latex/required/l3kernel/l3news10.pdfbin150302 -> 156270 bytes
-rw-r--r--macros/latex/required/l3kernel/l3news11.pdfbin170102 -> 176082 bytes
-rw-r--r--macros/latex/required/l3kernel/l3news12.pdfbin205020 -> 210972 bytes
-rw-r--r--macros/latex/required/l3kernel/l3pdf.dtx20
-rw-r--r--macros/latex/required/l3kernel/l3prefixes.csv10
-rw-r--r--macros/latex/required/l3kernel/l3prefixes.pdfbin82843 -> 83163 bytes
-rw-r--r--macros/latex/required/l3kernel/l3prg.dtx4
-rw-r--r--macros/latex/required/l3kernel/l3prop.dtx42
-rw-r--r--macros/latex/required/l3kernel/l3quark.dtx4
-rw-r--r--macros/latex/required/l3kernel/l3regex.dtx4
-rw-r--r--macros/latex/required/l3kernel/l3seq.dtx5
-rw-r--r--macros/latex/required/l3kernel/l3skip.dtx9
-rw-r--r--macros/latex/required/l3kernel/l3sort.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3str-convert.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3str.dtx7
-rw-r--r--macros/latex/required/l3kernel/l3styleguide.pdfbin296602 -> 296526 bytes
-rw-r--r--macros/latex/required/l3kernel/l3styleguide.tex2
-rw-r--r--macros/latex/required/l3kernel/l3syntax-changes.pdfbin231447 -> 231357 bytes
-rw-r--r--macros/latex/required/l3kernel/l3syntax-changes.tex2
-rw-r--r--macros/latex/required/l3kernel/l3sys.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3term-glossary.pdfbin242247 -> 242159 bytes
-rw-r--r--macros/latex/required/l3kernel/l3term-glossary.tex2
-rw-r--r--macros/latex/required/l3kernel/l3text-case.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3text-map.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3text-purify.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3text.dtx16
-rw-r--r--macros/latex/required/l3kernel/l3tl-analysis.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3tl-build.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3tl.dtx2
-rw-r--r--macros/latex/required/l3kernel/l3token.dtx15
-rw-r--r--macros/latex/required/l3kernel/l3unicode.dtx17
-rw-r--r--macros/latex/required/l3kernel/source3.pdfbin7618338 -> 7614229 bytes
-rw-r--r--macros/latex/required/l3kernel/source3.tex2
-rw-r--r--macros/latex/required/l3kernel/source3body.tex19
1951 files changed, 114508 insertions, 52869 deletions
diff --git a/macros/latex/contrib/abraces/README.md b/macros/latex/contrib/abraces/README.md
index b26a225d8c..5234134d05 100644
--- a/macros/latex/contrib/abraces/README.md
+++ b/macros/latex/contrib/abraces/README.md
@@ -1,11 +1,11 @@
-`abraces` 2022/11/06 v2.1
+`abraces` 2024/08/02 v2.2
----------------------------------------
A package that provides a character key-driven interface to
supplement new constructions of the traditional `\overbrace`
and `\underbrace` pairs in an asymmetric or arbitrary way.
-Copyright (c) 2021 Werner Grundlingh
+Copyright (c) 2024 Werner Grundlingh
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/abraces/abraces-doc.pdf b/macros/latex/contrib/abraces/abraces-doc.pdf
index c0becaadde..a2161dafb5 100644
--- a/macros/latex/contrib/abraces/abraces-doc.pdf
+++ b/macros/latex/contrib/abraces/abraces-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/abraces/abraces-doc.tex b/macros/latex/contrib/abraces/abraces-doc.tex
index 970cf74eab..04178c2de7 100644
--- a/macros/latex/contrib/abraces/abraces-doc.tex
+++ b/macros/latex/contrib/abraces/abraces-doc.tex
@@ -1,4 +1,4 @@
-% $Id: abraces-doc.tex,v 2.1 2022/11/06 00:00:00 wgrundlingh stable $
+% $Id: abraces-doc.tex,v 2.2 2024/08/02 00:00:00 wgrundlingh stable $
\RequirePackage{xcolor}% http://ctan.org/pkg/xcolor (required to "overload" color package)
\documentclass[10pt]{ltxdockit}[2011/03/25]
@@ -7,7 +7,7 @@
\usepackage{booktabs,shortvrb,amsmath,xfp}
\MakeShortVerb{\|}
-\rcsid{$Id: abraces.tex,v 2.1 2022/11/06 00:00:00 wgrundlingh stable $}
+\rcsid{$Id: abraces.tex,v 2.2 2024/08/02 00:00:00 wgrundlingh stable $}
%\setcounter{secnumdepth}{2}
%\setcounter{tocdepth}{4}
@@ -305,11 +305,18 @@ This material is released under and subject to the \href{https://latex-project.o
\section{Acknowledgements}
-Thanks to Frank Mittlebach who stepped in and suggested an improvement in the original way \sty{abraces} functioned. Expansions included the use of \LaTeX3 command interface (via the \href{http://ctan.org/pkg/xparse}{\sty{xparse} package}).
+Thanks to Frank Mittlebach who stepped in and suggested an improvement in the original way \sty{abraces} functioned. Expansions included the use of \LaTeX3 command interface.
\section{Change log}
\begin{itemize}
+ \item v2.2 (2024-08-02) Minor update
+
+ \begin{itemize}
+ \item
+ Added \href{http://ctan.org/pkg/xcolor}{\sty{xcolor}} dependency to always have \lstinline|\bracecolor| available.
+ \end{itemize}
+
\item v2.1 (2022-11-06) Minor update
\begin{itemize}
diff --git a/macros/latex/contrib/abraces/abraces.sty b/macros/latex/contrib/abraces/abraces.sty
index af146826ce..3b096e7ab7 100644
--- a/macros/latex/contrib/abraces/abraces.sty
+++ b/macros/latex/contrib/abraces/abraces.sty
@@ -1,5 +1,5 @@
%% abraces.sty
-%% Copyright 2021 Werner Grundlingh
+%% Copyright 2024 Werner Grundlingh
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -16,9 +16,12 @@
% This work consists of the file abraces.sty.
\ProvidesPackage{abraces}% http://ctan.org/pkg/abraces
- [2022/11/06 v2.1 Arbitrary and asymmetric braces]
+ [2024/08/02 v2.2 Arbitrary and asymmetric braces]
+% xparse definitions now form part of the LaTeX core. However, keeping this in for those using older versions.
\RequirePackage{xparse}
+% Since abraces defines \bracecolor, add xcolor as dependency
+\RequirePackage{xcolor}
\newif\if@overload
\DeclareOption{overload}{\@overloadtrue}
diff --git a/macros/latex/contrib/acmart/Makefile b/macros/latex/contrib/acmart/Makefile
index 545e505ed5..c81d355446 100644
--- a/macros/latex/contrib/acmart/Makefile
+++ b/macros/latex/contrib/acmart/Makefile
@@ -14,6 +14,7 @@ DEV=-dev # To switch dev on
PDF = $(PACKAGE).pdf acmguide.pdf
BIBLATEXFILES= $(wildcard *.bbx) $(wildcard *.cbx) $(wildcard *.dbx) $(wildcard *.lbx)
+
SAMPLEBIBLATEXFILES=$(patsubst %,samples/%,$(BIBLATEXFILES))
ACMCPSAMPLES= \
@@ -21,7 +22,7 @@ ACMCPSAMPLES= \
samples/sample-acmcp-Invited.pdf \
samples/sample-acmcp-Position.pdf \
samples/sample-acmcp-Research.pdf \
- samples/sample-acmcp-Review.pdf \
+ samples/sample-acmcp-Review.pdf
all: ${PDF} ALLSAMPLES
@@ -46,6 +47,9 @@ acmguide.pdf: $(PACKAGE).dtx $(PACKAGE).cls
%.cls: %.ins %.dtx
pdflatex $<
+%-tagged.cls: %.ins %.dtx
+ pdflatex $<
+
ALLSAMPLES: $(SAMPLEBIBLATEXFILES)
cd samples; pdflatex samples.ins; cd ..
@@ -59,6 +63,7 @@ samples/%: %
samples/$(PACKAGE).cls: $(PACKAGE).cls
+samples/$(PACKAGE)-tagged.cls: $(PACKAGE)-tagged.cls
samples/ACM-Reference-Format.bst: ACM-Reference-Format.bst
samples/abbrev.bib: ACM-Reference-Format.bst
@@ -116,7 +121,18 @@ samples/sample-sigconf-lualatex.pdf: samples/sample-lualatex.tex samples/$(PA
samples/sample-acmcp.pdf: samples/acm-jdslogo.png
-.PRECIOUS: $(PACKAGE).cfg $(PACKAGE).cls
+
+samples/sample-acmsmall-tagged.pdf: samples/sample-acmsmall-tagged.tex samples/$(PACKAGE)-tagged.cls samples/ACM-Reference-Format.bst
+ cd $(dir $@) && lualatex-dev $(notdir $<)
+ - cd $(dir $@) && bibtex $(notdir $(basename $<))
+ cd $(dir $@) && lualatex-dev $(notdir $<)
+ cd $(dir $@) && lualatex-dev $(notdir $<)
+ while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
+ do cd $(dir $@) && lualatex-dev $(notdir $<); done
+
+
+
+.PRECIOUS: $(PACKAGE).cfg $(PACKAGE).cls $(PACKAGE)-tagged.cls
docclean:
$(RM) *.log *.aux \
@@ -124,7 +140,9 @@ docclean:
*.ilg *.ind *.out *.lof \
*.lot *.bbl *.blg *.gls *.cut *.hd \
*.dvi *.ps *.thm *.tgz *.zip *.rpi \
- samples/$(PACKAGE).cls samples/ACM-Reference-Format.bst \
+ samples/$(PACKAGE).cls \
+ samples/$(PACKAGE)-tagged.cls \
+ samples/ACM-Reference-Format.bst \
samples/*.log samples/*.aux samples/*.out \
samples/*.bbl samples/*.blg samples/*.cut \
samples/acm-jdslogo.png \
@@ -132,7 +150,7 @@ docclean:
clean: docclean
- $(RM) $(PACKAGE).cls \
+ $(RM) $(PACKAGE).cls $(PACKAGE)-tagged.cls \
samples/*.tex
distclean: clean
diff --git a/macros/latex/contrib/acmart/README b/macros/latex/contrib/acmart/README
index 7d79e34935..b46a735447 100644
--- a/macros/latex/contrib/acmart/README
+++ b/macros/latex/contrib/acmart/README
@@ -12,6 +12,9 @@ The production version is the one on CTAN and ACM sites.
Changes
+Version 2.09. Experimental tagging code is now in the main branch.
+ Creative Commons license is now allowed for all materials.
+
Version 2.08. Section titles are in lowercase now.
Documentation updates.
diff --git a/macros/latex/contrib/acmart/acmart.dtx b/macros/latex/contrib/acmart/acmart.dtx
index 0ff7a902b7..26e19fdcc6 100644
--- a/macros/latex/contrib/acmart/acmart.dtx
+++ b/macros/latex/contrib/acmart/acmart.dtx
@@ -998,13 +998,7 @@
% by IW3C2, when some authors are approved Google employees.\\
% \texttt{cc} & Creative Commons license. If this key is set,
% \textsl{doclicense} images are used to typeset the license. See
-% also \cs{setcctype} command. Note that at present this license
-% can be used only either for \texttt{acmengage} format, or for
-% \texttt{nonacm} publications, or for the authors that meet any
-% of the following requirements: (a)~part of the ACM Open Program;
-% (b)~publishing in a Gold Open Access publication;
-% (c)~paying the Open Access APC;
-% (d)~part of the Google publishing agreement.\\
+% also \cs{setcctype} command. \\
% \texttt{acmcopyright} & The authors transfer the copyright to the
% ACM. This choice is no longer available for the
% non-commissioned authors and will trigger a warning.\\
@@ -2239,6 +2233,24 @@
% \item |figure*|: \cs{fulltextwidth}.
% \end{enumerate}
%
+%\subsection{Experiments with tagging}
+%\label{sec:ug_tagged}
+%
+% ACM is firmly committed to produce fully tagged PDFs compliant with
+% the accessibility standards. We use the developmental version of
+% tagging code by \LaTeX3 team, see the details at
+% \url{https://www.latex-project.org/publications/indexbytopic/pdf/}
+% and \url{https://tug.org/twg/accessibility/overview.html}.
+%
+% At present this work is highly experimental. You may try the
+% experiments by (1)~using the class |acmart-tagged| in the document
+% class line, and (2)~adding the command
+% \cs{DocumentMetadata}\oarg{options} in the preamble, see the file
+% \path{sample-acmsmall-tagged.tex}. If you do this, please \emph{do
+% not ask ACM for support}. On the other hand, bug reports at
+% \url{https://github.com/borisveytsman/acmart/issues} will be
+% appreciated.
+%
%
%
% \StopEventually{
@@ -2263,8 +2275,9 @@
%<*gobble>
\ProvidesFile{acmart.dtx}
%</gobble>
-%<class>\ProvidesClass{acmart}
-[2024/05/27 v2.08 Typesetting articles for the Association for Computing Machinery]
+%<class&!tagged>\ProvidesClass{acmart}
+%<tagged>\ProvidesClass{acmart-tagged}
+[2024/08/25 v2.09 Typesetting articles for the Association for Computing Machinery]
% \end{macrocode}
%
% \changes{v1.00}{2016/04/14}{First released version}
@@ -2401,7 +2414,8 @@
\end{document}
%</gobble>
%<*class>
-\def\@classname{acmart}
+%<!tagged>\def\@classname{acmart}
+%<tagged>\def\@classname{acmart-tagged}
% \end{macrocode}
%
%
@@ -2442,13 +2456,13 @@
% \changes{1.87}{2022/08/13}{New format: acmcp}
% The possible formats
% \begin{macrocode}
-\define@choicekey*+{acmart.cls}{format}[\ACM@format\ACM@format@nr]{%
+\define@choicekey*+{\@classname.cls}{format}[\ACM@format\ACM@format@nr]{%
manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph,
sigplan, sigchi, sigchi-a, acmengage, acmcp}[manuscript]{}{%
\ClassError{\@classname}{The option format must be manuscript,
acmsmall, acmlarge, acmtog, sigconf, siggraph,
sigplan, sigchi or sigchi-a}}
-\def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{acmart.cls}{format=#1}}}
+\def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{\@classname.cls}{format=#1}}}
\@DeclareACMFormat{manuscript}
\@DeclareACMFormat{acmsmall}
\@DeclareACMFormat{acmlarge}
@@ -2468,7 +2482,7 @@
% \begin{macro}{\if@ACM@screen}
% Whether we use screen mode
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{screen}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{screen}[true]{%
\if@ACM@screen
\PackageInfo{\@classname}{Using screen mode}%
\else
@@ -2483,7 +2497,7 @@
% \begin{macro}{\if@ACM@urlbreakonhyphens}
% \changes{1.60}{2019/04/22}{introduced macro}
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{urlbreakonhyphens}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{urlbreakonhyphens}[true]{%
\if@ACM@urlbreakonhyphens
\PackageInfo{\@classname}{Using breaking urls on hyphens}%
\else
@@ -2499,7 +2513,7 @@
% \changes{v1.46}{2017/08/29}{Modified description}
% Whether we define theorem-like environments.
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{acmthm}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{acmthm}[true]{%
\if@ACM@acmthm
\PackageInfo{\@classname}{Requiring acmthm}%
\else
@@ -2516,7 +2530,7 @@
% \changes{v1.48}{2017/09/09}{Review mode now switches on folios}
% Whether we use review mode
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{review}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{review}[true]{%
\if@ACM@review
\PackageInfo{\@classname}{Using review mode}%
\AtBeginDocument{\@ACM@printfoliostrue}%
@@ -2533,7 +2547,7 @@
% \changes{v1.03}{2016/04/22}{Added macro}
% Whether we use author's-version mode
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{authorversion}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{authorversion}[true]{%
\if@ACM@authorversion
\PackageInfo{\@classname}{Using authorversion mode}%
\else
@@ -2550,7 +2564,7 @@
% Special option for non-ACM publications
% using the ACM typesetting options.
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{nonacm}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{nonacm}[true]{%
\if@ACM@nonacm
\PackageInfo{\@classname}{Using nonacm mode}%
\AtBeginDocument{\@ACM@printacmreffalse}%
@@ -2570,7 +2584,7 @@
% \changes{v1.57}{2018/12/16}{Added macro}
% Whether to balance the last page
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{balance}[true]{}{%
+\define@boolkey+{\@classname.cls}[@ACM@]{balance}[true]{}{%
\PackageError{\@classname}{The option balance can be either true or
false}}
\ExecuteOptionsX{balance}
@@ -2583,7 +2597,7 @@
% \changes{v1.76}{2021/03/16}{Added macro}
% Whether to balance the last page
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{pbalance}[true]{}{%
+\define@boolkey+{\@classname.cls}[@ACM@]{pbalance}[true]{}{%
\PackageError{\@classname}{The option pbalance can be either true or
false}}
\ExecuteOptionsX{pbalance=false}
@@ -2601,7 +2615,7 @@
% \begin{macro}{\if@ACM@natbib}
% Whether we use |natbib| mode
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{natbib}[true]{%
\if@ACM@natbib
\PackageInfo{\@classname}{Explicitly selecting natbib mode}%
\else
@@ -2617,7 +2631,7 @@
% \begin{macro}{\if@ACM@anonymous}
% Whether we use anonymous mode
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{anonymous}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{anonymous}[true]{%
\if@ACM@anonymous
\PackageInfo{\@classname}{Using anonymous mode}%
\else
@@ -2634,7 +2648,7 @@
% \changes{v1.33}{2017/03/10}{Added macro (Michael D.~Adams)}
% Whether we use timestamp mode
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{timestamp}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{timestamp}[true]{%
\if@ACM@timestamp
\PackageInfo{\@classname}{Using timestamp mode}%
\else
@@ -2652,7 +2666,7 @@
% \changes{v1.36}{2017/05/13}{Corrected typo, thanks to bargteil}
% Whether we use author-draft mode
% \begin{macrocode}
-\define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{%
+\define@boolkey+{\@classname.cls}[@ACM@]{authordraft}[true]{%
\if@ACM@authordraft
\PackageInfo{\@classname}{Using authordraft mode}%
\@ACM@timestamptrue
@@ -2788,13 +2802,13 @@
\ClassWarning{\@classname}{%
The format siggraph is now obsolete.\MessageBreak
I am switching to sigconf.}
- \setkeys{acmart.cls}{format=sigconf}
+ \setkeys{\@classname.cls}{format=sigconf}
\fi
\ifnum\ACM@format@nr=7\relax % sigchi
\ClassWarning{\@classname}{%
The format sigchi is now obsolete.\MessageBreak
I am switching to sigconf.}
- \setkeys{acmart.cls}{format=sigconf}
+ \setkeys{\@classname.cls}{format=sigconf}
\fi
\ifnum\ACM@format@nr=8\relax % sigchi
\ClassWarning{\@classname}{%
@@ -2861,6 +2875,42 @@
% \changes{v1.38}{2017/05/13}{Increase default font size for SIGPLAN}
% \changes{v1.87}{2022/08/27}{Set font sizes for |acmengage| and |acmcp|}
%
+%<*tagged>
+% \changes{v2.09}{2022/08/25}{Saved the old definitions (Ulrike's
+% code}
+% Before we load the base class we want to save the original
+% definitions of sectioning commands since |acmart| redefines them,
+% and we need the vanilla versions.
+% \begin{macro}{\@startsection@kernel}
+% \changes{v2.00}{2023/11/19}{Added macro}
+% \begin{macrocode}
+\let\@startsection@kernel\@startsection
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@xsect@kernel}
+% \changes{v2.00}{2023/11/19}{Added macro}
+% \begin{macrocode}
+\let\@xsect@kernel\@xsect
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@sect@kernel}
+% \changes{v2.00}{2023/11/19}{Added macro}
+% \begin{macrocode}
+\let\@sect@kernel\@sect
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@ssect@kernel}
+% \changes{v2.00}{2023/11/19}{Added macro}
+% \begin{macrocode}
+\let\@ssect@kernel\@ssect
+% \end{macrocode}
+% \end{macro}
+%
+%</tagged>
+%
%
% At this point we either have \cs{ACM@fontsize} or use defaults
% \begin{macrocode}
@@ -3258,6 +3308,14 @@
% We need to do this early since we want |hyperref| to have a chance
% to redefine them again:
% \begin{macrocode}
+%</class>
+%<*tagged>
+\let\@startsection\@startsection@kernel
+\let\@sect\@sect@kernel
+\let\@ssect\@ssect@kernel
+\let\@xsect\@xsect@kernel
+%</tagged>
+%<*class&!tagged>
\def\@startsection#1#2#3#4#5#6{%
\if@noskipsec \leavevmode \fi
\par
@@ -3337,7 +3395,6 @@
\fi}%
\fi
\ignorespaces}
-\def\@seccntformat#1{\csname the#1\endcsname\quad}
\def\@ssect#1#2#3#4#5{%
\@tempskipa #3\relax
\ifdim \@tempskipa>\z@
@@ -3350,11 +3407,14 @@
\def\@svsechd{#4{\hskip #1\relax #5}}%
\fi
\@xsect{#3}}
+%</class&!tagged>
+%<*class>
+\def\@seccntformat#1{\csname the#1\endcsname\quad}
% \end{macrocode}
%
% \end{macro}
%
-% \begin{macro}{\@startsection}
+% \begin{macro}{\@starttoc}
% \changes{v1.31}{2017/03/04}{Redefined macro}
% \changes{v1.43}{2017/07/09}{Added \cs{makeatletter}}
% The |amsart| package redefines \cs{startsection}. Here we redefine
@@ -3365,7 +3425,9 @@
\par\removelastskip\vskip\z@skip
\@startsection{section}\@M\z@{\linespacing\@plus\linespacing}%
{.5\linespacing}{\centering\contentsnamefont}{#2}%
+%<tagged>\@starttoc@cfgpoint@before{#1}%NEW<<<<<<<<<< (name will change)
\@input{\jobname.#1}%
+%<tagged>\@starttoc@cfgpoint@after{#1}%NEW<<<<<<<<<<<< (name will change)
\if@filesw
\@xp\newwrite\csname tf@#1\endcsname
\immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax
@@ -5974,29 +6036,9 @@
%
% \begin{macro}{\@ACM@copyright@check@cc}
% \changes{v1.87}{2022/07/30}{Added macro}
-% At present cC licenses can be used only for acmengage format or for
-% non-acm stuff. This macro checks whether the CC license is
-% applicable and generates an error if not.
% \changes{v2.00}{2023/10/22}{Moved to warning}
-% \begin{macrocode}
-\def\@ACM@copyright@check@cc{%
- \if@ACM@nonacm
- \ClassInfo{\@classname}{Using CC license with a non-acm
- material}%
- \else
- \if@ACM@engage
- \ClassInfo{\@classname}{Using CC license with ACM Enage
- material}%
- \else
- \ClassWarning{\@classname}{%
- Sorry, Creative Commons licenses are\MessageBreak
- currently not used with ACM publications\MessageBreak
- typeset by the authors}{Please use nonacm
- option or ACM Engage class to enable CC licenses}%
- \fi
- \fi}
-% \end{macrocode}
-%
+% \changes{v2.09}{2024/08/25}{Deleted macro}
+% This macro is no longer needed due to the change in ACM policy.
% \end{macro}
%
% \begin{macro}{\@copyrightpermission}
@@ -6007,8 +6049,8 @@
% \changes{v1.85}{2022/05/08}{Added CC licenses}
% \changes{v1.87}{2022/07/30}{CC licenses now are allowed only for
% non-acm or ACM engage publications}
-% \changes{v2.00}{2023/10/24}{Rewrote wording}
-% \changes{v2.00}{2023/10/24}{Rewrote wording}
+% \changes{v2.09}{2024/08/25}{Deleted checking whether CC licenses are
+% allowed}
% The canned permission block.
% \begin{macrocode}
\def\@copyrightpermission{%
@@ -6139,7 +6181,6 @@
disseminate the work on their personal and corporate Web sites with
the appropriate attribution.
\or % CC
- \@ACM@copyright@check@cc
\IfEq{\ACM@cc@type}{zero}{%
\def\ACM@CC@Url{https://creativecommons.org/publicdomain/zero/1.0/legalcode}}{%
\edef\ACM@CC@Url{https://creativecommons.org/licenses/\ACM@cc@type/\ACM@cc@version/legalcode}}%
@@ -6471,7 +6512,7 @@
pdfsubject={\@concepts},
pdfkeywords={\@keywords},
pdfcreator={LaTeX with acmart
- \csname ver@acmart.cls\endcsname\space
+ \csname ver@\@classname.cls\endcsname\space
and hyperref
\csname ver@hyperref.sty\endcsname}}%
\andify\authors
@@ -7588,6 +7629,18 @@
%
% \end{macro}
%
+%<*tagged>
+% We stop tagging inside maketitle for now. Ulrike's code again.
+% \begin{macrocode}
+\ExplSyntaxOn
+\AddToHook{cmd/maketitle/before}
+ {\tagstructbegin{tag=Title}\tagmcbegin{} \tag_stop:}
+\AddToHook{cmd/maketitle/after}
+ {\tag_start:\tagmcend\tagstructend }
+\ExplSyntaxOff
+% \end{macrocode}
+%</tagged>
+%
%\subsection{Headers and Footers}
%\label{sec:head_foot}
%
@@ -8129,28 +8182,33 @@
% \changes{v1.69}{2020/02/02}{No dots for unindented paragraphs}
% Sectioning is different for different levels
% \begin{macrocode}
-\renewcommand\section{\@startsection{section}{1}{\z@}%
+\renewcommand\section{\def\@toclevel{1}%
+ \@startsection{section}{1}{\z@}%
{-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
{.25\baselineskip}%
{\ACM@NRadjust\@secfont}}
-\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
+\renewcommand\subsection{\def\@toclevel{2}%
+ \@startsection{subsection}{2}{\z@}%
{-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
{.25\baselineskip}%
{\ACM@NRadjust\@subsecfont}}
-\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+\renewcommand\subsubsection{\def\@toclevel{3}%
+ \@startsection{subsubsection}{3}{\z@}%
{-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
{-3.5\p@}%
{\ACM@NRadjust{\@subsubsecfont\@adddotafter}}}
-\renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}%
+\renewcommand\paragraph{\def\@toclevel{4}%
+ \@startsection{paragraph}{4}{\parindent}%
{-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
{-3.5\p@}%
{\ACM@NRadjust{\@parfont\@adddotafter}}}
-\newcommand\noindentparagraph{\@startsection{paragraph}{4}{\z@}%
+\newcommand\noindentparagraph{\def\@toclevel{4}%
+ \@startsection{paragraph}{4}{\z@}%
{-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
{-3.5\p@}%
{\ACM@NRadjust{\@parfont}}}
-
-\renewcommand\part{\@startsection{part}{9}{\z@}%
+\renewcommand\part{\def\@toclevel{9}%
+ \@startsection{part}{9}{\z@}%
{-10\p@ \@plus -4\p@ \@minus -2\p@}%
{4\p@}%
{\ACM@NRadjust\@parfont}}
diff --git a/macros/latex/contrib/acmart/acmart.ins b/macros/latex/contrib/acmart/acmart.ins
index d17dc066fd..95c1596220 100644
--- a/macros/latex/contrib/acmart/acmart.ins
+++ b/macros/latex/contrib/acmart/acmart.ins
@@ -13,6 +13,7 @@
\generate{%
\file{acmart.cls}{\from{acmart.dtx}{class}}
+ \file{acmart-tagged.cls}{\from{acmart.dtx}{class,tagged}}
}
\obeyspaces
diff --git a/macros/latex/contrib/acmart/acmart.pdf b/macros/latex/contrib/acmart/acmart.pdf
index 9a91d07bf7..1bcb0df6ad 100644
--- a/macros/latex/contrib/acmart/acmart.pdf
+++ b/macros/latex/contrib/acmart/acmart.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/acmguide.pdf b/macros/latex/contrib/acmart/acmguide.pdf
index 927dd7c750..5e90dfb3a5 100644
--- a/macros/latex/contrib/acmart/acmguide.pdf
+++ b/macros/latex/contrib/acmart/acmguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmcp.pdf b/macros/latex/contrib/acmart/samples/sample-acmcp.pdf
index c57d1898d1..47892feee6 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmcp.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmcp.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmengage.pdf b/macros/latex/contrib/acmart/samples/sample-acmengage.pdf
index 366843b28e..d4cd824cf2 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmengage.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmengage.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf b/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
index 25a90ec394..65c836673e 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
index d644e32874..4fe535b32c 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
index 6e1488235e..17cb0fe359 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
index e0471c8a27..81006c5a71 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-tagged.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-tagged.pdf
new file mode 100644
index 0000000000..87bd3e53d1
--- /dev/null
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-tagged.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
index 17c719abda..fa3a710f0f 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf b/macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf
index 71e87b73b1..3518df9fdd 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmtog.pdf b/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
index 1e39a159d3..681d94fbc7 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-manuscript.pdf b/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
index 301caf80cb..2b02e5a7ab 100644
--- a/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf
index a465c8463e..be82dbf5ab 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
index b4052f9363..e2548408a0 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
index dc0e0fe12e..f89bc4b108 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
index ab5954e602..dd0252c1d5 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigplan.pdf b/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
index 534e00da12..6f0cccd362 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/samples.dtx b/macros/latex/contrib/acmart/samples/samples.dtx
index 37e7a0abfd..b2d75d2a83 100644
--- a/macros/latex/contrib/acmart/samples/samples.dtx
+++ b/macros/latex/contrib/acmart/samples/samples.dtx
@@ -14,7 +14,19 @@
%TC:envir comment 0 0
%TCMACROS
%%
-%%
+%</all>
+%<*tagged>
+%% The tagged file should start with the metadata commands.
+%% We also need currently use lualatex-dev for compilation!
+\ifx\HCode\Undef
+\DocumentMetadata{
+ pdfversion=2.0,pdfstandard=ua-2,
+ testphase={phase-III,firstaid,math,title}}
+\else
+\DocumentMetadata{}
+\fi
+%</tagged>
+%<*all>
%% The first command in your LaTeX source must be the \documentclass
%% command.
%%
@@ -27,7 +39,8 @@
%%
%%
%<manuscript>\documentclass[manuscript,screen,review]{acmart}
-%<acmsmall|acmsmall-conf>\documentclass[acmsmall]{acmart}
+%<acmsmall&!tagged>\documentclass[acmsmall]{acmart}
+%<acmsmall-conf>\documentclass[acmsmall]{acmart}
%<acmsmall-biblatex>\documentclass[acmsmall,natbib=false]{acmart}
%<acmsmall-submission>\documentclass[acmsmall,screen,review]{acmart}
%<acmlarge>\documentclass[acmlarge]{acmart}
@@ -41,7 +54,7 @@
%<sigconf-i13n>\documentclass[sigconf, language=french,
%<sigconf-i13n>language=german, language=spanish, language=english]{acmart}
%<acmcp>\documentclass[acmcp]{acmart}
-
+%<acmsmall&tagged>\documentclass[acmsmall]{acmart-tagged}
%%
%% \BibTeX command to typeset BibTeX logo in the docs
\AtBeginDocument{%
@@ -58,7 +71,6 @@
\copyrightyear{2018}
\acmYear{2018}
\acmDOI{XXXXXXX.XXXXXXX}
-
%</all>
%<*proceedings>
%% These commands are for a PROCEEDINGS abstract or paper.
diff --git a/macros/latex/contrib/acmart/samples/samples.ins b/macros/latex/contrib/acmart/samples/samples.ins
index 2636f5899b..a525d48b55 100644
--- a/macros/latex/contrib/acmart/samples/samples.ins
+++ b/macros/latex/contrib/acmart/samples/samples.ins
@@ -24,5 +24,6 @@
\file{sample-acmtog-conf.tex}{\from{samples.dtx}{all,journal,proceedings,bibtex,acmtog-conf}}
\file{sample-acmcp.tex}{\from{samples.dtx}{all,journal,acmcp}}
\file{sample-acmengage.tex}{\from{acmengage.dtx}{acmengage}}
+ \file{sample-acmsmall-tagged.tex}{\from{samples.dtx}{all,journal,acmsmall,tagged}}
}
diff --git a/macros/latex/contrib/acronym/CHANGES b/macros/latex/contrib/acronym/CHANGES
index 95a9095483..b4a3b73106 100644
--- a/macros/latex/contrib/acronym/CHANGES
+++ b/macros/latex/contrib/acronym/CHANGES
@@ -1,3 +1,15 @@
+Version 1.49 (Mar 2024)
+
+- Adds noforwardlinks option
+-- Chris Landis
+- Fixes targets for forward links to acs/acl/etc.-only use
+-- Chris Landis
+
+Version 1.48 (Oct 2021)
+
+- corrected capitalization of acronyms with a custom plural form
+-- Bruno Le Floch
+
Version 1.47 (Apr 2020)
- Fixed \Iac macro expansion bug
diff --git a/macros/latex/contrib/acronym/acronym.dtx b/macros/latex/contrib/acronym/acronym.dtx
index f7d8e8eabd..b332333810 100644
--- a/macros/latex/contrib/acronym/acronym.dtx
+++ b/macros/latex/contrib/acronym/acronym.dtx
@@ -2,7 +2,7 @@
%
% Doc-Source file to use with LaTeX2e
%
-% Copyright 1994-2020 by Tobias Oetiker (tobi@oetiker.ch) and many Contributors.
+% Copyright 1994-2024 by Tobias Oetiker (tobi@oetiker.ch) and many Contributors.
% All rights reserved.
%
% This work may be distributed and/or modified under the conditions of
@@ -35,7 +35,7 @@
%</driver>
% \fi
%
-% \CheckSum{1526}
+% \CheckSum{1634}
%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -82,6 +82,8 @@
% \DoNotIndex{\textbf, \textsf, \textsmaller, \textsuperscript, \the}
% \DoNotIndex{\usepackage}
%
+% \changes{v1.49}{2024/03/30}{Chris Landis adds noforwardlinks option and fixes targets for forward links to acs/acl/etc.-only use}
+% \changes{v1.48}{2021/10/09}{Bruno Le Floch corrected capitalization of acronyms with a custom plural form.}
% \changes{v1.47}{2020/04/10}{Tobi Oetiker and Marcus Meeßen \cmd{hskip} Fixed several bugs in macros that use capitalisation, a bug were the output depends on the position of the list of acronyms, and a bug were nested hyperlinks could cause errors.}
% \changes{v1.46}{2020/03/13}{Tobi Oetiker \cmd{hskip} Fixed miss merge}
% \changes{v1.45}{2020/03/13}{Marcus Meeßen \cmd{hskip} Fixed hyperref and "missing aux" regressions.}
@@ -265,7 +267,7 @@
%
% \DescribeMacro{\acsp}
% Works in the same way as \cmd{\acs}, but makes the short
-% form into a plural.
+% form into a plural.
%
% \DescribeMacro{\aclp}
% Works in the same way as \cmd{\acl}, but makes the long form
@@ -284,6 +286,14 @@
% Works in the same way as \cmd{\acfi}, but starts the long form with an
% upper case letter.
%
+% \DescribeMacro{\acfip}
+% Works in the same way as \cmd{\acfi}, but makes the short and long
+% forms into plurals.
+%
+% \DescribeMacro{\Acfip}
+% Works in the same way as \cmd{\acfip}, but starts the long form with
+% an upper case letter.
+%
% \DescribeMacro{\acused}
% Marks an acronym as used, as if it had been called with \cmd{\ac},
% but without printing anything. This means that in the future only the
@@ -302,11 +312,11 @@
% Example: |\acl{lox}/\acl{lh2} (\acsu{lox}/\acsu{lh2})|
%
% \DescribeMacro{\iac}
-% Works in the same way as the \cmd{\ac} command but prefixes it with
+% Works in the same way as the \cmd{\ac} command but prefixes it with
% an appropriate indefinite article.
%
% \DescribeMacro{\Iac}
-% Works in the same way as the \cmd{\ac} command but prefixes it with
+% Works in the same way as the \cmd{\ac} command but prefixes it with
% an appropriate upper case indefinite article.
%
% \DescribeMacro{\...*}
@@ -316,8 +326,9 @@
% not show up.\\
% \cmd{\ac*}, \cmd{\Ac*}, \cmd{\acs*}, \cmd{\acl*}, \cmd{\Acl*}, \cmd{\acf*},
% \cmd{\Acf*}, \cmd{\acp*}, \cmd{\Acp*}, \cmd{\acsp*}, \cmd{\aclp*}, \cmd{\Aclp*},
-% \cmd{\acfp*}, \cmd{\Acfp*}, \cmd{\acfi*}, \cmd{\Acfi*}, \cmd{\acsu*},
-% \cmd{\aclu*}, \cmd{\Aclu*}, \cmd{\iac*} and \cmd{\Iac*}.
+% \cmd{\acfp*}, \cmd{\Acfp*}, \cmd{\acfi*}, \cmd{\Acfi*}, \cmd{\acfip*},
+% \cmd{\Acfip*}, \cmd{\acsu*}, \cmd{\aclu*}, \cmd{\Aclu*}, \cmd{\iac*},
+% and \cmd{\Iac*}.
%
% \subsection{Customization}
%
@@ -451,7 +462,7 @@
% that the latter makes the acronym definition stored in the |.aux|
% file. Therefore, the acronym becomes available from start-up in
% the next run.
-%
+%
% Note that all the acronym definitions made by \cmd{\acro} in the
% |acronym| environment are also similarly added to the |.aux|
% file.
@@ -459,8 +470,8 @@
% \subsubsection{Non standard indefinite articles}
%
% Sometimes the indefinite article of an acronym differs between its
-% short form and its long form, for example ``a Federal Bureau of
-% Investigation (FBI) agent'' and ``an FBI agent''. To deal with this,
+% short form and its long form, for example ``a Federal Bureau of
+% Investigation (FBI) agent'' and ``an FBI agent''. To deal with this,
% the package provides the following three commands
% \DescribeMacro{\newacroindefinite}
% \DescribeMacro{\acrodefindefinite}
@@ -479,7 +490,7 @@
% the acronym definition in the |.aux| file, so that the acronym
% exception is available at the next run from start-up.
%
-% When using \cmd{\iac} and \cmd{\Iac} without first defining an
+% When using \cmd{\iac} and \cmd{\Iac} without first defining an
% article, the default article is ``a''.
%
% \subsubsection{Non standard and foreign plural forms}
@@ -538,7 +549,7 @@
% exception is available at the next run from start-up. When the
% optional short form is not provided, the acronym name plus an `s'
% is used.
-%
+%
% Plural exceptions are never reported in tables of acronyms.
%
%
@@ -682,8 +693,8 @@ blocks to be tested separately. The latter are commonly indicated as
% First we test that we got the right format and name the package.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{acronym}[2020/04/17
- v1.47
+\ProvidesPackage{acronym}[2024/03/30
+ v1.49
Support for acronyms (Tobias Oetiker)]
\RequirePackage{suffix,xstring}
% \end{macrocode}
@@ -706,7 +717,7 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macro}
%
% \begin{macro}{\ifAC@nohyperlinks}
-% If hyperref is loaded, all acronyms will link to their glossary entry.
+% If hyperref is loaded, all acronyms will link to their glossary entry and the glossary entries to the first in-text use.
% With the option |nohyperlinks| these links can be suppressed.
% \begin{macrocode}
\newif\ifAC@nohyperlinks
@@ -717,6 +728,18 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\ifAC@noforwardlinks}
+% If hyperref is loaded and the |nohyperlinks| option is not selected,
+% the option |noforwardlinks| suppresses the links from the glossary entries to the in-text use.
+% \begin{macrocode}
+\newif\ifAC@noforwardlinks
+\AC@noforwardlinksfalse
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareOption{noforwardlinks}{\AC@noforwardlinkstrue}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\ifAC@noacroprefix}
% With the |noacroprefix| option the acronym commands are not prefixed. This
% reproduces the old behavior of version <1.43, but can cause collisions
@@ -852,7 +875,7 @@ blocks to be tested separately. The latter are commonly indicated as
% is being set to the maximum. Otherwise, the default penalty is one level below
% the maximum, meaning that most of the times, by default, the line will not get
% broken.
-%
+%
% \begin{macrocode}
\ifAC@nolinebreak
\def\AC@linebreakpenalty{4}
@@ -889,7 +912,7 @@ blocks to be tested separately. The latter are commonly indicated as
\AtBeginDocument{%
\@ifpackageloaded{hyperref}
{\let\AC@hyperlink=\hyperlink
- \let\AC@hyperref=\hyperref
+ \ifAC@noforwardlinks\else\let\AC@hyperref=\hyperref\fi
\newcommand*\AC@raisedhypertarget[2]{%
\Hy@raisedlink{\hypertarget{#1}{}}#2}%
\let\AC@hypertarget=\AC@raisedhypertarget
@@ -959,6 +982,8 @@ blocks to be tested separately. The latter are commonly indicated as
\def\Acp#1{\AChy@call{#1}\@Acp}%
\def\acfi#1{\AChy@call{#1}\AChy@acf}%
\def\Acfi#1{\AChy@call{#1}\AChy@Acf}%
+ \def\acfip#1{\AChy@call{#1}\AChy@acfp}%
+ \def\Acfip#1{\AChy@call{#1}\AChy@Acfp}%
\let\acsu\acs
\let\aclu\acl
\let\Aclu\Acl
@@ -1078,13 +1103,20 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\@firstupper}
+% \begin{macro}{\@firstupper,\@firstupper@maybe}
% Internal commands for making a first letter upper case.
% \begin{macrocode}
\newcommand{\@firstupper}[1]{%
\StrSplit{#1}{1}{\head}{\tail}%
\MakeUppercase\head\tail%
}
+\newcommand{\@firstupper@maybe}{%
+ \ifAC@upper
+ \expandafter\@firstupper
+ \else
+ \expandafter\@firstofone
+ \fi
+}
% \end{macrocode}
% \end{macro}
%
@@ -1153,7 +1185,7 @@ blocks to be tested separately. The latter are commonly indicated as
%
%
% \begin{environment}{AC@deflist}
-% In standard mode, the acronym - list is formatted with a description
+% In standard mode, the acronym list is formatted with a description
% environment. If an optional argument is passed to the acronym
% environment, the list is formatted as a AC@deflist, which needs the
% longest appearing acronym as parameter. If the option 'nolist' is selected
@@ -1198,7 +1230,7 @@ blocks to be tested separately. The latter are commonly indicated as
%
% \begin{macro}{\acro}
% Acronyms can be defined with the user command \cmd{\acro}
-% in side the |acronym| environment.
+% inside the |acronym| environment.
%
% \begin{macrocode}
\newenvironment{acronym}[1][1]{%
@@ -1390,7 +1422,7 @@ blocks to be tested separately. The latter are commonly indicated as
\@bsphack
\protected@write\@auxout{}{\string\newacroplural{#1}{#2}}%
\@esphack
-}
+}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1419,11 +1451,11 @@ blocks to be tested separately. The latter are commonly indicated as
{\string\newacroplural{#1}[\string\AC@hyperlink{#1}{\AC@acs{#1}}]{#2}}%
\@esphack
}
-% \end{macrocode}
+% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
-%
+%
%
% \begin{macro}{\AC@aclp}
% \begin{macro}{\AC@Aclp}
@@ -1433,7 +1465,7 @@ blocks to be tested separately. The latter are commonly indicated as
% \begin{macrocode}
\newcommand*\AC@aclp[1]{%
\ifcsname fn@#1@PL\endcsname
- \csname fn@#1@PL\endcsname
+ \@firstupper@maybe{\csname fn@#1@PL\endcsname}%
\else
\AC@acl{#1}s%
\fi
@@ -1492,11 +1524,7 @@ blocks to be tested separately. The latter are commonly indicated as
\PackageWarning{acronym}{Acronym `#3' is not defined}%
\textbf{#3!}%
\else
- \ifAC@upper
- \@firstupper{\expandafter#2#1}%
- \else
- \expandafter#2#1%
- \fi
+ \@firstupper@maybe{\expandafter#2#1}%
\fi
}
% \end{macrocode}
@@ -1542,7 +1570,7 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\@acs}[1]{%
- \acsfont{\AC@acs{#1}}%
+ \acsfont{\AC@placelabel@part{#1}\AC@acs{#1}}%
%% having a footnote on acs sort of defeats the purpose
%% \ifAC@footnote
%% \footnote{\AC@acl{#1}{}}%
@@ -1569,12 +1597,12 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\@acl}[1]{%
- \AC@acl{#1}%
+ \AC@placelabel@part{#1}\AC@acl{#1}%
\ifAC@starred\else\AC@logged{#1}\fi}
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\@Acl}[1]{%
- \AC@Acl{#1}%
+ \AC@placelabel@part{#1}\AC@Acl{#1}%
\ifAC@starred\else\AC@logged{#1}\fi}
% \end{macrocode}
% \end{macro}
@@ -1657,6 +1685,12 @@ blocks to be tested separately. The latter are commonly indicated as
\let\AC@undonewlabel\@gobble
\fi
}%
+\newcommand*\AC@placelabel@part[1]{%
+ \expandafter\ifx\csname AC@\AC@prefix#1\endcsname\AC@used
+ \else
+ {\AC@phantomsection\@verridelabel{acro:#1}}%
+ \fi
+}%
\newcommand*\AC@placelabel[1]{%
\expandafter\ifx\csname AC@\AC@prefix#1\endcsname\AC@used
\else
@@ -1802,12 +1836,12 @@ blocks to be tested separately. The latter are commonly indicated as
\newcommand*{\@iaci}[1]{%
\ifcsname fn@#1@IL\endcsname
\ifAC@dua
- \csname fn@#1@IL\endcsname%
+ \@firstupper@maybe{\csname fn@#1@IL\endcsname}%
\else
\expandafter\ifx\csname AC@\AC@prefix#1\endcsname\AC@used%
\csname fn@#1@IS\endcsname%
\else
- \csname fn@#1@IL\endcsname%
+ \@firstupper@maybe{\csname fn@#1@IL\endcsname}%
\fi
\fi
\else
@@ -1846,7 +1880,7 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\@acsp}[1]{%
- \acsfont{\AC@acsp{#1}}%
+ \acsfont{\AC@placelabel@part{#1}\AC@acsp{#1}}%
\ifAC@starred\else\AC@logged{#1}\fi}
% \end{macrocode}
% \end{macro}
@@ -1869,12 +1903,12 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\@aclp}[1]{%
- \AC@aclp{#1}%
+ \AC@placelabel@part{#1}\AC@aclp{#1}%
\ifAC@starred\else\AC@logged{#1}\fi}
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\@Aclp}[1]{%
- \AC@Aclp{#1}%
+ \AC@placelabel@part{#1}\AC@Aclp{#1}%
\ifAC@starred\else\AC@logged{#1}\fi}
% \end{macrocode}
% \end{macro}
@@ -2038,6 +2072,53 @@ blocks to be tested separately. The latter are commonly indicated as
% \end{macro}
% \end{macro}
%
+%
+% \begin{macro}{\acfip}
+% \begin{macro}{\acfipa}
+% \begin{macro}{\Acfip}
+% \begin{macro}{\Acfipa}
+% The plural of the full name is printed in italics and the plural of
+% the acronym is printed in upshape.
+% The optional variable determines the penalty for a line break.
+% \begin{macrocode}
+\newcommand*{\acfip}{\AC@starredfalse\protect\acfipa}%
+\WithSuffix\newcommand\acfip*{\AC@starredtrue\protect\acfipa}%
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*{\Acfip}{\AC@starredfalse\protect\Acfipa}%
+\WithSuffix\newcommand\Acfip*{\AC@starredtrue\protect\Acfipa}%
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand{\acfipa}[2][\AC@linebreakpenalty]{%
+ \texorpdfstring{\protect\@acfip[#1]{#2}}{{\AC@aclp{#2}} (#2)}}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand{\Acfipa}[2][\AC@linebreakpenalty]{%
+ \texorpdfstring{\protect\@Acfip[#1]{#2}}{{\AC@Aclp{#2}} (#2)}}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*{\@acfip}[2][\AC@linebreakpenalty]{%
+ \acffont{%
+ \AC@placelabel{#2}{\itshape\AC@aclp{#2}}%
+ \nolinebreak[#1] %
+ \acfsfont{(\acsfont{\AC@acsp{#2}})}%
+ }%
+ \ifAC@starred\else\AC@logged{#2}\fi}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*{\@Acfip}[2][\AC@linebreakpenalty]{%
+ \acffont{%
+ \AC@placelabel{#2}{\itshape\AC@Aclp{#2}}%
+ \nolinebreak[#1] %
+ \acfsfont{(\acsfont{\AC@acsp{#2}})}%
+ }%
+ \ifAC@starred\else\AC@logged{#2}\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\acused}
% Marks the acronym as used. Don't confuse this with
% \cmd{\acronymused}!
diff --git a/macros/latex/contrib/acronym/acronym.ins b/macros/latex/contrib/acronym/acronym.ins
index 9dc36c5ac1..960366ec2f 100644
--- a/macros/latex/contrib/acronym/acronym.ins
+++ b/macros/latex/contrib/acronym/acronym.ins
@@ -4,7 +4,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright 1995--2020 by Tobias Oetiker (tobi@oetiker.ch)
+%% Copyright 1995--2021 by Tobias Oetiker (tobi@oetiker.ch)
%% and individual authors listed elsewhere
%% in this file.
%% All rights reserved.
@@ -31,7 +31,7 @@
\keepsilent
\preamble
- Copyright 1995--2020 by Tobias Oetiker (tobi@oetiker.ch)
+ Copyright 1995--2021 by Tobias Oetiker (tobi@oetiker.ch)
and individual authors listed elsewhere.
All rights reserved.
diff --git a/macros/latex/contrib/acronym/acronym.pdf b/macros/latex/contrib/acronym/acronym.pdf
index b65f18794c..2ab4152571 100644
--- a/macros/latex/contrib/acronym/acronym.pdf
+++ b/macros/latex/contrib/acronym/acronym.pdf
Binary files differ
diff --git a/macros/latex/contrib/animate/ChangeLog b/macros/latex/contrib/animate/ChangeLog
index 237adc19ac..4faf3429d7 100644
--- a/macros/latex/contrib/animate/ChangeLog
+++ b/macros/latex/contrib/animate/ChangeLog
@@ -1,3 +1,13 @@
+2024-09-17
+ * change: `method=widget' now default for extended range of supporting viewers
+ * fix: documentation revised
+
+2024-09-06
+ * fix: documentation PDF re-compiled and minor README additions
+
+2024-09-05
+ * new: animation support in PDF.js, version 4.4.168+
+
2023-06-18
* fix: missing file `pstmetronome.tex' added
@@ -51,10 +61,10 @@
* fix: pausing on the 0th frame
2020-08-29
- * new: \multiframebreak for terminating \multiframe loop
+ * new: \multiframebreak for terminating \multiframe loop
2020-08-04
- * fix: typesetting failure with `latex-dev'
+ * fix: typesetting failure with `latex-dev'
2020-05-29
* fix: `autoplay' option non-functional in combination with `poster=last';
@@ -225,12 +235,12 @@
* fix: bug related to XObject referencing
2016-03-11
- * new: now uses pdfbase.sty for low level PDF operations
+ * new: now uses pdfbase.sty for low level PDF operations
2016-02-28
* Fix: workaround for bug http://tex.stackexchange.com/q/295715 : different
behaviour of AR versions with regard to PageOpen and PageVisible events
- where animation initialisation takes place
+ where animation initialisation takes place
2016-02-15
* Fix: bug http://tex.stackexchange.com/q/292805
@@ -448,7 +458,7 @@
* New: the transparency stack can now be cleared using `c' in the
timeline file
* improved documentation of the timeline option
- * New animateinline example (Lorenz Attractor)
+ * New animateinline example (Lorenz Attractor)
* Fix: animfp.sty: trailing zeros are now removed from the fractional part
of the result of the addition of two reals
diff --git a/macros/latex/contrib/animate/README.md b/macros/latex/contrib/animate/README.md
index 1756bd8cd5..0c52e149fa 100644
--- a/macros/latex/contrib/animate/README.md
+++ b/macros/latex/contrib/animate/README.md
@@ -10,11 +10,13 @@ This package provides an interface to create portable, JavaScript driven PDF and
It supports the usual PDF making workflows, i. e. pdfLaTeX, LaTeX &rArr; `dvips` &rArr; `ps2pdf` (Ghostscript)/Distiller, (Xe)LaTeX &rArr; `(x)dvipdfmx`, LuaLaTeX, and LaTeX &rArr; `dvisvgm` for SVG.
-The resulting PDF with animations can be viewed in Acrobat Reader (except on mobile devices), KDE Okular, PDF-XChange and Foxit Reader. Animated SVG are self-contained files that can be embedded into HTML using the `<object>` tag or opened directly in a Web browser, such as Firefox or Chromium.
+The resulting PDF with animations can be viewed in Acrobat Reader (except on mobile devices), KDE Okular, PDF-XChange, Foxit Reader, PDF.js (Firefox' built-in PDF viewer and extension for Chromium-based browsers).
+
+Animated SVG are self-contained files that can be embedded into HTML using the `<object>` tag or opened directly in a Web browser, such as Firefox or Chromium.
Note, this file only gives a summary of usage and available package and command options. Please refer to the documentation [`animate.pdf`](animate.pdf) for details and examples.
-*Keywords:* include portable PDF animation SVG animation animated PDF animated SVG dvisvgm html TeX4ht web animating embed animated graphics LaTeX pdfLaTeX LuaLaTeX PSTricks pgf TikZ LaTeX-picture MetaPost inline graphics vector graphics animated GIF LaTeX dvips ps2pdf dvipdfmx XeLaTeX JavaScript Acrobat Reader KDE Okular PDF-XChange Foxit Reader Firefox Chrome Chromium
+*Keywords:* include portable PDF animation SVG animation animated PDF animated SVG dvisvgm html TeX4ht web animating embed animated graphics LaTeX pdfLaTeX LuaLaTeX PSTricks pgf TikZ LaTeX-picture MetaPost inline graphics vector graphics animated GIF LaTeX dvips ps2pdf dvipdfmx XeLaTeX JavaScript Acrobat Reader KDE Okular PDF-XChange Foxit Reader PDF.js Firefox Chrome Chromium
## Usage
@@ -97,7 +99,7 @@ Recent versions of
- Ghostscript or Adobe Distiller
- dvipdfmx
- dvisvgm
-- PDF: Acrobat Reader, KDE Okular, PDF-XChange, Foxit Reader
+- PDF: Acrobat Reader, KDE Okular, PDF-XChange, Foxit Reader, PDF.js, Firefox
- SVG: Blink-based web browsers (Chromium, Chrome, Opera, ...) or Firefox
## Installation
diff --git a/macros/latex/contrib/animate/animate.pdf b/macros/latex/contrib/animate/animate.pdf
index 518115d6af..a117175261 100644
--- a/macros/latex/contrib/animate/animate.pdf
+++ b/macros/latex/contrib/animate/animate.pdf
Binary files differ
diff --git a/macros/latex/contrib/animate/animate.sty b/macros/latex/contrib/animate/animate.sty
index fc126ce70a..08dbf8a881 100644
--- a/macros/latex/contrib/animate/animate.sty
+++ b/macros/latex/contrib/animate/animate.sty
@@ -13,7 +13,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
-\def\@anim@version{2023/06/18}
+\def\@anim@version{2024/09/17}
\ProvidesPackage{animate}
[\@anim@version\space PDF & SVG animations from files and inline graphics]
@@ -530,6 +530,7 @@
/Subtype/Widget%
/F 2%
/FT/Btn/Ff 65537%
+ /A <</S/ResetForm>>% to make pdf.js happy
/BS <</W 0>>%
/AP <</N \@anim@framexform>>%
/MK <</TP 1/I \@anim@framexform%
@@ -562,6 +563,7 @@
/Subtype/Widget%
\@anim@annotflag%
/FT/Btn/Ff 65537%
+ /A <</S/ResetForm>>%
/BS <</W 0>>%
/AP <</N \@anim@framexform>>%
/MK <</TP 1/I \@anim@framexform%
@@ -2072,6 +2074,8 @@
\@anim@tooltip%
\if@anim@js%
/AA <</D <</S/JavaScript/JS (\@anim@btnJS{#1}{\@anim@arg})>>>>%
+ \else%
+ /A <</S/ResetForm>>%
\fi%
}%
\if@anim@js%
@@ -3347,7 +3351,8 @@
\setboolean{@anim@@draft}{false}%
}
\newboolean{@anim@@nomouse}
-\def\@anim@@method{\z@}%default animation method is `icon'
+%\def\@anim@@method{\z@}%default animation method is `icon'
+\def\@anim@@method{\@ne}%default animation method is `widget'
\def\@anim@@ftype{}% file type (extension) of graphics
\ExplSyntaxOn
diff --git a/macros/latex/contrib/animate/animate.tex b/macros/latex/contrib/animate/animate.tex
index cc952856e7..9cc30bf2eb 100644
--- a/macros/latex/contrib/animate/animate.tex
+++ b/macros/latex/contrib/animate/animate.tex
@@ -62,7 +62,7 @@
{\itshape\normalsize}}
\makeatother
-\def\keywords{include portable PDF animation SVG animation animated PDF animated SVG dvisvgm html TeX4ht web animating embed animated graphics LaTeX pdfLaTeX LuaLaTeX PSTricks pgf TikZ LaTeX-picture MetaPost inline graphics vector graphics animated GIF LaTeX dvips ps2pdf dvipdfmx XeLaTeX JavaScript Acrobat Reader KDE Okular PDF-XChange Foxit Reader Firefox Chrome Chromium}
+\def\keywords{include portable PDF animation SVG animation animated PDF animated SVG dvisvgm html TeX4ht Web animating embed animated graphics LaTeX pdfLaTeX LuaLaTeX PSTricks pgf TikZ LaTeX-picture MetaPost inline graphics vector graphics animated GIF LaTeX dvips ps2pdf dvipdfmx XeLaTeX JavaScript Acrobat Reader KDE Okular PDF-XChange Foxit Reader PDF.js Firefox Chrome Chromium}
\hypersetup{
pdftitle={The animate Package},
pdfsubject={Documentation},
@@ -94,7 +94,7 @@
\def\@anim@sanitizeColon{}\def\@anim@sanitizeJS{}\def\@anim@endsanitize{}
\expandafter\parsedate\animVersion\relax %set current date to package date
\makeatother
-\author{Alexander Grahn \animategraphics[autoplay,loop,height=1.8ex,nomouse]{8}{bye_}{0}{3}\protect\footnote{Animated GIF taken from \href{http://www.phpBB.com}{phpBB} forum software and burst into a set of EPS files using \href{http://www.imagemagick.org}{ImageMagick} before embedding.}%
+\author{Alexander Grahn \animategraphics[autoplay,loop,height=1.8ex,nomouse]{8}{bye_}{0}{3}\protect\footnote{Animated GIF taken from \href{http://www.phpBB.com}{phpBB} forum software and burst into a set of EPS files using \href{http://www.imagemagick.org}{ImageMagick} before embedding.}% \protect\footnote{Animation examples in this document have all been built with the `\texttt{method=widget}' option to make them work in PDF.js, Mozilla's PDF viewer built into the Firefox Web browser.}%
%\space\protect\footnote{Animations may run slowly if viewed in the Acrobat Reader browser plugin.}%
\\[1ex]\url{https://gitlab.com/agrahn/animate}}
\maketitle
@@ -111,12 +111,32 @@
\tableofcontents
%\newpage
-\section{Introduction}
+\section{Introduction}\label{sect:intro}
This package provides an interface for creating PDF and SVG files with animated content from sets of graphics or image files, from inline graphics, such as \LaTeX-picture, PSTricks or pgf/TikZ generated pictures, or just from typeset text. Unlike standard movie/video formats, package `animate' allows for animating vector graphics. The result is roughly similar to the SWF (Flash) format, although not as space-efficient.
Package `animate' supports the usual workflows for making PDF, i.\,e. pdf\LaTeX{}, Lua\-\LaTeX{}, \LaTeX{} $\rightarrow$ \verb+dvips+ $\rightarrow$ \verb+ps2pdf+/Distiller and \pXepLaTeX{} $\rightarrow$ \verb+(x)dvipdfmx+. For animated SVG, it supports the \verb+dvisvgm+ driver. The DVI/XDV used as input for \verb+dvisvgm+ can be generated with \LaTeX{}, Lua\LaTeX{} (in DVI mode with command `\verb+dvilualatex+') and \XeLaTeX{} (with option `\verb+--no-pdf+').
-PDF files with animations can be viewed in Acrobat Reader (except on mobile devices), KDE Okular, PDF-XChange and Foxit Reader.
+PDF files with animations can be viewed in Acrobat Reader (except on mobile devices), KDE Okular, PDF-XChange, Foxit Reader, PDF.js (Firefox' built-in PDF viewer and extension for Chromium-based Web browsers). To view a local PDF file in the Web browser, open it by right-click in a file explorer or by starting the Web browser on the command-line, passing the PDF file name as its argument. The full-screen mode, also known as Presentation Mode in PDF.js, can be reached via the \raisebox{0.5\depth}{{\fboxsep=3pt\colorbox{lightgray}{\texttt{\large>>}}}} button at the right end of the toolbar. The PDF.js extension for Chromium/Chrome/Edge can be installed from
+
+\makebox[\linewidth][l]{\href{https://chromewebstore.google.com/detail/pdf-viewer/oemmndcbldboiebfnladdacbdfmadadm}{\nolinkurl{https://chromewebstore.google.com/detail/pdf-viewer/}}}\\
+\makebox[\linewidth][r]{\href{https://chromewebstore.google.com/detail/pdf-viewer/oemmndcbldboiebfnladdacbdfmadadm}{\nolinkurl{oemmndcbldboiebfnladdacbdfmadadm}}}
+
+For animations to play in the Chromium extension, JavaScript needs to be enabled in the settings:
+
+\makebox[\linewidth][l]{\url{chrome://extensions/?id=oemmndcbldboiebfnladdacbdfmadadm} $\rightarrow$}\\
+\makebox[\linewidth][r]{Extension options $\rightarrow$ Enable active content (JavaScript) in PDFs}
+
+Viewing of local files also needs to be enabled in Chromium-based browsers:
+
+\makebox[\linewidth][l]{\url{chrome://extensions/?id=oemmndcbldboiebfnladdacbdfmadadm} $\rightarrow$}\\
+\makebox[\linewidth][r]{Allow access to file URLs}
+
+%Note that option `\texttt{method=widget}' must be set to produce animations that are compatible with PDF.js.
+%PDF files with animations can be viewed in Acrobat Reader (except on mobile devices), KDE Okular, PDF-XChange, Foxit Reader, PDF.js (as Firefox built-in PDF viewer, or in other Web browsers via URL). The most recent release of PDF.js can be accessed online in a Web browser (Firefox, Chromium, Chrome, Edge, ...) via the following URL:
+%
+%\url{https://mozilla.github.io/pdf.js/web/viewer.html?file=}
+%
+%Then, to open a local PDF file in PDF.js, click \raisebox{0.5\depth}{{\fboxsep=3pt\colorbox{lightgray}{\texttt{\large>>}}}} at the right end of its tool bar. In the `Tools' menu, click on `Open'. Note that option `\texttt{method=widget}' must be set to produce animations that are compatible with PDF.js.
Animated SVG produced by means of \LaTeX{} and \verb+dvisvgm+ are self-sufficient files that can be embedded into HTML using the \verb+<object>+ tag or opened directly in a Web browser, such as Chromium or Firefox. Also, presentations, such as `beamer'-class documents, with embedded animations can be exported to SVG instead of PDF and viewed in a Web browser. SVG-capable Web browsers are standard on many platforms and operating systems and thus make SVG a very portable file format. A \LaTeX{} package for embedding video and audio into SVG is also available\cite{media4svg}.
@@ -131,16 +151,15 @@ The user interacts with the animation through optional animation controls or usi
\item pdf\TeX{}, version $\ge1.40$, or Lua\TeX{}, version $\ge0.95$, for direct PDF output
\item Ghostscript, version $\ge9.15$, or Adobe Distiller for PS to PDF conversion
\item \verb+dvipdfmx+ for DVI to PDF conversion
-\item dvipdfmx, version $\ge 20190503$, for DVI to PDF conversion
-\item \verb+dvisvgm+ for DVI to SVG conversion (also requires Ghostscript)
-\item PDF: Acrobat Reader, KDE Okular, PDF-XChange, Foxit Reader
+\item \verb+dvisvgm+ for DVI to SVG conversion (also requires Ghostscript and MuPDF)
+\item PDF: Acrobat Reader, KDE Okular, PDF-XChange, Foxit Reader, Firefox, version $\ge130$, PDF.js, version $\ge4.4.168$
\item SVG: Chromium-based browsers for best performance
\end{trivlist}
\section{Installation}
Unzip the file \href{http://mirrors.ctan.org/install/macros/latex/contrib/animate.tds.zip}{`animate.tds.zip'} into the local TDS root directory which can be found by running `\verb+kpsewhich -var-value TEXMFLOCAL+' on the command line.
-After installation, update the filename database by running `\verb+texhash+' on the command line.
+After installation, update the file name database by running `\verb+texhash+' on the command line.
\TeX-Live and MiK\TeX{} users should run the package manager of their system for installation.
@@ -388,11 +407,11 @@ With `\verb+draft+' the animation is not embedded. Instead, a box with the exact
\begin{verbatim}
nomouse
\end{verbatim}
-Animation widget will not respond to mouse clicks. Unless the JavaScript interface, Sect.~\ref{sect:api}, p.~\pageref{sect:api}, is used to control the animation, it is recommended to also set at least one of the `\verb+autoplay+' or `\verb+controls+' options.
+Animation widget will not respond to mouse clicks. Unless the JavaScript interface, Section~\ref{sect:api}, p.~\pageref{sect:api}, is used to control the animation, it is recommended to also set at least one of the `\verb+autoplay+' or `\verb+controls+' options.
\begin{verbatim}
method=icon | widget | ocg
-\end{verbatim}
-The package implements three different animation methods. The `\verb+icon+' method is the default method and usually gives the best performance in terms of animation frame rate. `\verb+widget+' and `\verb+ocg+' are alternative animation methods. In rare cases (standalone animations without animation controls) method `\verb+ocg+' may lead to a better animation performance than the other two. Moreover, it allows overlaying animations with other typeset material, that is, playing animations in the page background.
+\end{verbatim}\hypertarget{method}{}%
+The package implements three different animation methods. The `\verb+icon+' method usually gives the best performance in terms of animation frame rate in Acrobat Reader. However, the `\verb+widget+' method is now set by default because it extends the range of supporting viewers. Beginning with version 130, Firefox renders functional animations too. The PDF viewer bundled with Firefox, PDF.js, is also available as an extension for Chrome and releated browsers, see Section~\ref{sect:intro}. In rare cases, such as standalone animations without animation controls, the alternative `\verb+ocg+' method may lead to a better animation performance than the other two. Also, `\verb+ocg+' allows an animation to be overlaid with other typeset material, that is, it can play in the page background. However, support is limited to Acrobat Reader and Okular.
\begin{verbatim}
measure
\end{verbatim}
@@ -468,7 +487,7 @@ frame No. & timeline file & transparency stack\\\hline\hline
\end{tabular}
\end{table}
-Figures~\ref{fig:taylor} and \ref{fig:lorenz} in Sect.~\ref{sect:examples} are animation examples with a single transparency stack.
+Figures~\ref{fig:taylor} and \ref{fig:lorenz} in Section~\ref{sect:examples} are animation examples with a single transparency stack.
\myparagraph*{Grouping objects into layers (= sub-stacks) using `{\tt;}'}
Due to the stack-like nature of the animation, the position of a transparency specification in the timeline file determines its \emph{depth} level in relation to other transparencies. The timeline file is processed line by line and from left to right. In a single-stack animation, the stack is strictly built from the bottom up, such that earlier transparencies are overprinted by more recent ones. This may turn out to be inconvenient in certain situations. For example, it might be desirable to change the background image in the middle of an animation without affecting objects that are located in the foreground. For this purpose, transparency specifications can be grouped into layers (sub-stacks) using the semicolon (\verb+;+) as a separator. New transparencies can now be put on top of the individual sub-stacks. After a line of the timeline file has been processed, the global stack is built by placing the sub-stacks on top of the other. Again, the left-to-right rule applies when determining the height of the sub-stacks in relation to each other within the global stack.
@@ -505,7 +524,7 @@ frame No. & timeline file & transparency stack\\\hline\hline
%
%Note that \emph{without} setting up two layers, that is, by replacing the semicolons with commas, the foreground objects (transparencies 2 through 99) which have been added during the first 49 frames would be overprinted by the new background image, transparency 1, from frame 50 onward.
-See the second animation, Fig.~\ref{fig:scarab}, in Sect.~\ref{sect:examples} for a working example that makes use of the timeline and the layer concept.
+See the second animation, Fig.~\ref{fig:scarab}, in Section~\ref{sect:examples} for a working example that makes use of the timeline and the layer concept.
\myparagraph*{Associate JavaScript actions with animation frames}\label{sect:jsfield}
The optional fourth field \verb+<JavaScript>+ in a frame specification takes JavaScript code to be executed upon display of that frame. This could be used, for instance, to play a sound that was embedded using the `media9' \LaTeX{} package \cite{media9} or to execute JavaScript methods of the animation object. A non-trivial example is looping over a sub-range of frames which can be programmed by setting the `\verb+frameNum+' property of the animation object. See Section~\ref{sect:api} for details of the animation programming interface.
@@ -601,7 +620,7 @@ Also, the programming interface can be used to create custom buttons for playbac
]{\fbox{Goto 6th frame}}
\end{lstlisting}
-\clearpage
+%\clearpage
\section{Examples}
\subsection{Animations from sets of files, using {\tt\textbackslash animategraphics}}\label{sect:examples}
Animations in this section are made from graphics files that were prepared with \MP. Run `\verb+mpost --tex=latex+' on the files ending in `.mp' in the `files' directory to generate the graphics files. Both examples make use of the `\verb+timeline+' option to reduce the resulting PDF file size.
@@ -1375,7 +1394,7 @@ The following code may serve as a template for generating standalone animated SV
%
\end{document}
\end{lstlisting}
-Note that when animating external graphics with \verb+\animategraphics+, only PDF and PostScript (EPS, PS, MPS) files are converted to inline SVG code; files in other formats (SVG, PNG, JPEG) remain external and must be bundled with the final SVG output. Thus, for obtaining self-contained SVG, it is recommended to convert PNG, JPEG and SVG files to PDF or PostScript first. Also note that PostScript files must have all required fonts embedded. This is not always the case for \MP-generated PostScript. Here, embedding of fonts is ensured by putting `\verb+prologues := 3;+' into the header of the \MP{} input.
+Note that when animating external graphics with \verb+\animategraphics+, only PDF and PostScript (EPS, PS, MPS) files are converted to inline SVG code; files in other formats (SVG, PNG, JPEG) remain external and must be bundled with the final SVG output. Thus, for obtaining self-contained SVG, it is recommended to convert PNG, JPEG and SVG files to PostScript or PDF first. Also note that PostScript files must have all required fonts embedded. This is not always the case for \MP-generated PostScript. Here, embedding of fonts is ensured by putting `\verb+prologues := 3;+' into the header of the \MP{} input. If PDF is chosen as file format for input graphics, the conversion utility `\verb+mutool+' must be present on the system. It is installed as part of the MuPDF (\url{https://mupdf.com}) package.
Use one of
\begin{verbatim}
@@ -1469,7 +1488,7 @@ In \TeX4ht documents, the whole \verb+<object>...</object>+ tag can be inserted
\item PDFs with animations cannot be embedded (via {\tt\string\includegraphics},\\ {\tt\string\includepdf}) into other documents as the animation capability gets lost.
- \item Animations should not be placed on \emph{multilayered} slides, also known as overlays, created with presentation making classes such as Beamer or Powerdot. Those document classes turn overlays into separate PDF pages and re-insert the animation on every page thus produced. The animations are independent from each other and do not share the current playing state, such as frame number, playing speed and direction. Therefore, put animations on flat slides only; slides without animations may still have overlays, of course. On \href{https://tex.stackexchange.com/a/385209}{\TeX.SE}~\cite{texsx}, a method is suggested for placing an animation on a slide with overlays. It makes use of the programming interface introduced in Sect.~\ref{sect:api}, p.~\pageref{sect:api}.
+ \item Animations should not be placed on \emph{multilayered} slides, also known as overlays, created with presentation making classes such as Beamer or Powerdot. Those document classes turn overlays into separate PDF pages and re-insert the animation on every page thus produced. The animations are independent from each other and do not share the current playing state, such as frame number, playing speed and direction. Therefore, put animations on flat slides only; slides without animations may still have overlays, of course. On \href{https://tex.stackexchange.com/a/385209}{\TeX.SE}~\cite{texsx}, a method is suggested for placing an animation on a slide with overlays. It makes use of the programming interface introduced in Section~\ref{sect:api}, p.~\pageref{sect:api}.
\end{itemize}
\section{Acknowledgements}
@@ -1477,14 +1496,14 @@ I would like to thank François Lafont who discovered quite a few bugs and made
%\enlargethispage{4ex}
\begin{thebibliography}{8}
-\bibitem{chupin} Chupin, M.: \emph{Syracuse MetaPost/Animations.} URL: \href{http://melusine.eu.org/syracuse/metapost/animations/chupin/?idsec=scara}{\texttt{http://melusine.eu.org/}} \href{http://melusine.eu.org/syracuse/metapost/animations/chupin/?idsec=scara}{\texttt{syracuse/metapost/animations/chupin/?idsec=scara}}
+\bibitem{chupin} Chupin, M.: \emph{Syracuse MetaPost/Animations.} URL: \href{http://melusine.eu.org/syracuse/metapost/animations/chupin/?idsec=scara}{\nolinkurl{http://melusine.eu.org/}} \href{http://melusine.eu.org/syracuse/metapost/animations/chupin/?idsec=scara}{\nolinkurl{syracuse/metapost/animations/chupin/?idsec=scara}}
\bibitem{dvisvgm} \emph{dvisvgm: A fast DVI to SVG converter} URL: \url{http://dvisvgm.de}
\bibitem{gilg05} Gilg, J.: PDF-Animationen. In: \emph{Die \TeX nische Kom\"odie}, Issue 4, 2005, pp.~30--37
\bibitem{hol} Holeček, J.; Sojka, P.: Animations in pdf\TeX-generated PDF. In: \emph{\TeX, XML, and Digital Typography}, Springer, 2004, pp.~179--191. doi:10.1007/978-3-540-27773-6\textunderscore14
\bibitem{luque12} Luque, M.: \emph{PSTricks : applications.} URL: \url{http://pstricks.blogspot.com}
\bibitem{media4svg} \emph{The media4svg Package}. URL: \url{http://www.ctan.org/pkg/media4svg}
\bibitem{media9} \emph{The media9 Package}. URL: \url{http://www.ctan.org/pkg/media9}
-\bibitem{texsx} \emph{Beamer: animate package and overlay}. URL: \href{https://tex.stackexchange.com/a/385209}{\texttt{https://tex.stackexchange.com}}\\ \href{https://tex.stackexchange.com/a/385209}{\texttt{/a/385209}}
+\bibitem{texsx} \emph{Beamer: animate package and overlay}. URL: \href{https://tex.stackexchange.com/a/385209}{\nolinkurl{https://tex.stackexchange.com}}\\ \href{https://tex.stackexchange.com/a/385209}{\nolinkurl{/a/385209}}
\end{thebibliography}
\end{document}
diff --git a/macros/latex/contrib/animate/files/pstmetronome.tex b/macros/latex/contrib/animate/files/pstmetronome.tex
deleted file mode 100644
index e13bd4a0da..0000000000
--- a/macros/latex/contrib/animate/files/pstmetronome.tex
+++ /dev/null
@@ -1,233 +0,0 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% animated metronome
-% this code is based to 99.9 percent on the work by Manuel Luque
-% (pstricks.blogspot.com)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\makeatletter
-\pst@addfams{pst-metronome}
-\define@key[psset]{pst-metronome}{theta0}{\def\psk@oscmetronomethetai{#1 }}
-\psset[pst-metronome]{theta0=45} % position initiale du metronome
-\define@key[psset]{pst-metronome}{M}{\def\psk@oscmetronometM{#1 }}
-\psset[pst-metronome]{M=25} % masse du disque en g
-\define@key[psset]{pst-metronome}{m}{\def\psk@oscmetronometm{#1 }}
-\psset[pst-metronome]{m=6} % masse du curseur en g
-\define@key[psset]{pst-metronome}{r}{\def\psk@oscmetronomer{#1 }}
-\psset[pst-metronome]{r=1} % rayon du disque en cm
-\define@key[psset]{pst-metronome}{x}{\def\psk@oscmetronomex{#1 }}
-\psset[pst-metronome]{x=8.4} % position du curseur en cm par rapport à l'axe
-\define@key[psset]{pst-metronome}{d}{\def\psk@oscmetronomed{#1 }}
-\psset[pst-metronome]{d=3.2} % distance de l'axe au centre du disque en cm
-\define@key[psset]{pst-metronome}{dt}{\def\psk@oscmetronomedt{#1 }}
-\psset[pst-metronome]{dt=0.01} % pas pour RK4
-\define@key[psset]{pst-metronome}{nT}{\def\psk@oscmetronomenT{#1 }}
-\psset[pst-metronome]{nT=1} % nombre de périodes représentées
-%---- calculer theta(t) et thetapoint(t) --------
-\def\psmetronome{\pst@object{psmetronome}}
-\def\psmetronome@i{%
-\begingroup%
-\use@par%
- \begin@SpecialObj%
- \pstVerb{%
- /deg2rad {180 div 3.14159 mul} def
- /rad2deg {180 mul 3.14159 div} def
- /gp 9.8 def % pesanteur
- /radius \psk@oscmetronomer 1e-2 mul def % en m
- /OA \psk@oscmetronomed 1e-2 mul def % distance de l'axe au centre du disque en m
- /xC \psk@oscmetronomex 1e-2 mul def % position du curseur en m par rapport à l'axe
- /theta0 \psk@oscmetronomethetai def % en degrés
- /theta0rad theta0 deg2rad def % en radians
- /Md \psk@oscmetronometM 1e-3 mul def % en kg
- /mc \psk@oscmetronometm 1e-3 mul def % en kg
- /dt \psk@oscmetronomedt def
- /nT \psk@oscmetronomenT def
- % moment d'inertie du métronome
- % J=1/2M*R^2+M*a^2+m*x^2
- /Ji {0.5 Md mul radius dup mul mul Md OA dup mul mul add mc xC dup mul mul add} def
- /AT {4
- Ji
- gp Md OA mul mc xC mul sub mul
- div
- sqrt
- mul} def
- % Pour le calcul de la période
- % coefficients de l'approximation polynômiale du calcul
- % de l'intégrale elliptique
-% coefficient pour le calcul de l'intégrale elliptique
- /m0 theta0 2 div sin def
- /m1 {1 m0 dup mul sub} def
- /m2 {m1 dup mul} def
- /m3 {m2 m1 mul} def
- /m4 {m2 dup mul} def
- /m_1 {1 m1 div} def
- /EllipticK {
- 0.5
- 0.12498593597 m1 mul add
- 0.06880248576 m2 mul add
- 0.03328355376 m3 mul add
- 0.00441787012 m4 mul add
- m_1 ln mul
- 1.38629436112 add
- 0.09666344259 m1 mul add
- 0.03590092383 m2 mul add
- 0.03742563713 m3 mul add
- 0.01451196212 m4 mul add
- } def
-/Tm {AT EllipticK mul} def
-% tableau des valeurs de theta(t)
- /W 0 def % vitesse angulaire
- /theta theta0 def
- /oscillateur {sin gp Md OA mul mc xC mul sub mul neg mul Ji div} def
- /j1 {W dt mul} def
- /k1 {theta oscillateur dt mul} def
- /j2 {W k1 2 div add dt mul} def
- /k2 {theta j1 2 div rad2deg add oscillateur dt mul} def
- /j3 {W k2 2 div add dt mul} def
- /k3 {theta j2 2 div rad2deg add oscillateur dt mul} def
- /j4 {W k3 add dt mul} def
- /k4 {theta j3 rad2deg add oscillateur dt mul} def
- /theta2 {theta j1 rad2deg 2 j2 rad2deg j3 rad2deg add mul add j4 rad2deg add 6 div add} def
-/tabTheta [ % pour l'animation
- 0 theta0 % date angle
-dt dt Tm nT mul{ %
- theta2 %
- /W2 W k1 2 k2 k3 add mul add k4 add 6 div add def
- /theta theta2 def
- /W W2 def
- } for
- ] def
-/Nvaleurs tabTheta length 2 div cvi def
- /W 0 def % vitesse angulaire
- /theta theta0 def
-/tabThetaGraph [ % pour le graphique theta(t)
- 0 theta0 % date angle
-0 dt Tm nT mul { % pop
- theta2 % 180 div 3.14159 mul
- /W2 W k1 2 k2 k3 add mul add k4 add 6 div add def
- /theta theta2 def
- /W W2 def
- } for
- ] def
- /W 0 def % vitesse angulaire
- /theta theta0 def
-/tabThetaPoint [ % pour le graphique thetapoint(t)
- 0 0 % date angle
-dt dt Tm nT mul { % pop
-% theta2 % 180 div 3.14159 mul
- /W2 W k1 2 k2 k3 add mul add k4 add 6 div add def
- W2
- /theta theta2 def
- /W W2 def
- } for
- ] def
-/tabXOSC [ % oscillations par min en fonction de x
-0.5 0.1 12 {/xc exch def
- /xC xc 1e-2 mul def
- xc 60 Tm div % cvi
- } for
- ] def
-/tabXbattements [ % battements par min en fonction de x
-3 0.1 12 {/xc exch def
- /xC xc 1e-2 mul def
- xc 60 Tm div 2 mul % cvi
- } for
- ] def
-% graduation T --> x
-/tabXT [ % [T,x]
- 40 1 220 {/batt exch def % battements
- /Tmetronome2 120 batt div dup mul def
- /A1 16 mc mul EllipticK dup mul mul def
- /B1 gp Tmetronome2 mul mc mul def
- /C1 gp Md mul OA mul Tmetronome2 mul neg
- 8 Md mul radius dup mul mul 16 Md mul OA dup mul mul add EllipticK dup mul mul add def
- /Delta B1 dup mul 4 A1 mul C1 mul sub sqrt def
- /xC1 B1 neg Delta sub 2 div A1 div def
- /xC2 B1 neg Delta add 2 div A1 div def
- xC2 0 ge {/posC xC2 def}{/posC xC1 def} ifelse
- batt posC 1e2 mul
- } for
- ] def
-/xT { % pour une valeur particulière battement -> position du curseur
- /batt exch def
- /Tmetronome2 120 batt div dup mul def
- /A1 16 mc mul EllipticK dup mul mul def
- /B1 gp Tmetronome2 mul mc mul def
- /C1 gp Md mul OA mul Tmetronome2 mul neg
- 8 Md mul radius dup mul mul 16 Md mul OA dup mul mul add EllipticK dup mul mul add def
- /Delta B1 dup mul 4 A1 mul C1 mul sub sqrt def
- /xC1 B1 neg Delta sub 2 div A1 div def
- /xC2 B1 neg Delta add 2 div A1 div def
- xC2 0 ge {/posC xC2 def}{/posC xC1 def} ifelse
- posC 1e2 mul
- } def
-/xC \psk@oscmetronomex 1e-2 mul def % position du curseur en m par rapport à l'axe
-/Tm {AT EllipticK mul} def
- }%
- \end@SpecialObj%
-\endgroup}
-%
-\def\psmetronomeA{\pst@object{psmetronomeA}}
-\def\psmetronomeA@i{%
-\begingroup%
-\use@par%
- \begin@SpecialObj%
- \pstVerb{%
- /radius \psk@oscmetronomer 1e-2 mul def % en m
- /OA \psk@oscmetronomed 1e-2 mul def % distance de l'axe au centre du disque en m
- /xC \psk@oscmetronomex 1e-2 mul def % position du curseur en m par rapport à l'axe
- }%
-\psframe[fillstyle=solid](! -0.075 \psk@oscmetronomed neg)(0.075,13)
-\pscircle[fillstyle=solid,fillcolor={[rgb]{0.75 0.75 0.75}}](! 0 \psk@oscmetronomed neg){!radius 1e2 mul}
-\pscircle[fillstyle=solid,linewidth=0.05](0,0){0.15}
-\pscircle*[linecolor=red](0,0){0.05}
-% curseur
-\pspolygon[fillstyle=solid](! -0.25 \psk@oscmetronomex 0.5 sub)(! -0.5 \psk@oscmetronomex 0.5 add)(!-0.075 \psk@oscmetronomex 0.5 add)(!-0.075 \psk@oscmetronomex 0.5 sub)
-\pspolygon[fillstyle=solid](! 0.25 \psk@oscmetronomex 0.5 sub)(! 0.5 \psk@oscmetronomex 0.5 add)(!0.075 \psk@oscmetronomex 0.5 add)(!0.075 \psk@oscmetronomex 0.5 sub)
-\pspolygon[fillstyle=solid,fillcolor=gray](! -0.25 \psk@oscmetronomex 0.5 sub)(! -0.3 \psk@oscmetronomex 0.3 sub)(! -0.075 \psk@oscmetronomex 0.3 sub)(!-0.075 \psk@oscmetronomex 0.3 add)(!0.075 \psk@oscmetronomex 0.3 add)(!0.075 \psk@oscmetronomex 0.3 sub)(!0.3 \psk@oscmetronomex 0.3 sub)(!0.25 \psk@oscmetronomex 0.5 sub)
-\pscircle[fillstyle=solid](!-0.125 \psk@oscmetronomex 0.4 sub){0.08}
-\pscircle[fillstyle=solid](!0.125 \psk@oscmetronomex 0.4 sub){0.08}
-% fin curseur
-{\psset{linecolor=red}
-\psline(!-.1 \psk@oscmetronomex)(!0.1 \psk@oscmetronomex)\psline(!0 \psk@oscmetronomex 0.1 sub)(!0 \psk@oscmetronomex 0.1 add)
-\psline(! -.1 \psk@oscmetronomed neg)(!0.1 \psk@oscmetronomed neg)\psline(! 0 \psk@oscmetronomed neg 0.1 sub)(!0 \psk@oscmetronomed neg 0.1 add)}
-\pnode(!0 \psk@oscmetronomex){C}% curseur
-\pnode(! 0 \psk@oscmetronomed neg){D}% disque
-%\pstextpath[c](0,-2ex){\psarcn[linestyle=none](D){1}{180}{0}}{\small\textsf{\textbf{m e t r o n o m e}}}
-%\pstextpath[c](0,1ex){\psarc[linestyle=none](D){1}{180}{0}}{\small\textsf{\textbf{P S t r i c k s}}}
- \end@SpecialObj%
-\endgroup}
-\psmetronome%
-\pstVerb{/tabTempos [40 42 44 46 48 50 52 54 46 58 60 63 66 69 72 76 80 84 88 92 96 100 104 108 112 116 120 126 132 138 144 152 160 168 176 184 192 200 208] def}%
-
-\def\metronomebody{%
- \pspolygon[fillstyle=solid,linewidth=2\pslinewidth,linearc=0.5,fillcolor=yellow!30](-5,-4.5)(5,-4.5)(1,14)(-1,14)
- \psline(1.2,4.5)(1.2,12.5)
- \psline(-1.2,4.5)(-1.2,12.5)
- \multido{\i=0+2}{20}{%
- \pstVerb{/BATT tabTempos \i\space get def}
- \psline[linecolor=red](!1.2 BATT xT)(!0.7 BATT xT)
- \uput[r](!0.7 BATT xT){\psPrintValue[PSfont=Helvetica,fontscale=6]{BATT}}
- }%
- \multido{\i=1+2}{19}{%
- \pstVerb{/BATT tabTempos \i\space get def}
- \psline[linecolor=red](!-1.2 BATT xT)(!-0.7 BATT xT)
- \uput[r](!-1.3 BATT xT){\psPrintValue[PSfont=Helvetica,fontscale=6]{BATT}}}%
- \rput(!0 40 xT){\textsf{\tiny GRAVE}}%
- \rput(!0 46 xT){\textsf{\tiny LARGO}}%
- \rput(!0 52 xT){\textsf{\tiny LENTO}}%
- \rput(!0 58 xT){\textsf{\tiny ADAGIO}}%
- \rput(!0 60 xT){\textsf{\tiny LARGETTO}}%
- \rput(!0 66 xT){\textsf{\tiny ANDANTE}}%
- \rput(!0 76 xT){\textsf{\tiny ANDANTINO}}%
- \rput(!0 84 xT){\textsf{\tiny MODERATO}}%
- \rput(!0 108 xT){\textsf{\tiny ALLEGRETTO}}%
- \rput(!0 132 xT){\textsf{\tiny ALLEGRO}}%
- \rput(!0 160 xT){\textsf{\tiny VIVACE}}%
- \rput(!0 184 xT){\textsf{\tiny PRESTO}}%
- \rput(!0 200 xT){\textsf{\tiny PRESTISSIMO}}%
-}
-
-\def\pendulum#1{%
- \pstVerb{/iA #1\space def /date tabTheta iA get def /Theta tabTheta iA 1 add get def}%
- \rput{!Theta}{\psmetronomeA}%
-}
-\makeatother
diff --git a/macros/latex/contrib/asmeconf/README.md b/macros/latex/contrib/asmeconf/README.md
index 2c07a04b9b..d01de1897f 100644
--- a/macros/latex/contrib/asmeconf/README.md
+++ b/macros/latex/contrib/asmeconf/README.md
@@ -1,7 +1,7 @@
#asmeconf: A latex template for ASME conference papers#
- Version 1.37 dated 2024/02/06.
+ Version 1.38 dated 2024/08/01.
####Overview####
This class provides a LaTeX template for ASME Conference papers formatted according to
@@ -80,23 +80,37 @@
####Change log####
+ v1.38 (2024/08/01)
+ - Add dcolumn type ",{x.y}" to center numbers on a comma separator
+ - Change appendix section titles block format, rather than hanging indentation
+ - Replace sample French appendix by a German appendix
+ - Fix bug in \[main=\] option (for babel)
+ - Define commands \\@title and \\@author
+ - Code clean-up (compatibility code, bookmark package loading, twocolumn loading,...)
+ - Various code changes to better support future tagged pdf
+ - Update documentation for using fontspec with asmeconf
+ - Rescale Termes, Helvetica, and Inconsolata fontdimens under LuaLaTeX to match pdfTeX
+ - Add logic to asme-template.tex to test for presence of non-latin fonts under LuaLaTeX
+ - Change code for Japanese fonts to by-pass bug in luatexja-fontspec
+ - Correct typo in babel font loading for traditional Chinese
+ - Remove calls for Harfbuzz renderer since fontspec handles this internally
+
v1.37 (2024/02/06)
- - Under luaLaTeX, fontspec is now loaded by default. The option [nofontspec] will prevent this.
- - Eliminate the following long-deprecated options: [oldauthor, lang, lang-second, lang-third]
- - newtxtext has removed the superiors font options (Jan 2024). As a result, the option [nodefaultsups] has been removed from asmeconf, along with supporting code
+ - Under LuaLaTeX, fontspec is now loaded by default. The option \[nofontspec\] will prevent this.
+ - Eliminate the following long-deprecated options: \[oldauthor, lang, lang-second, lang-third\]
+ - newtxtext has removed the superiors font options (Jan 2024). As a result, the option \[nodefaultsups\] has been removed from asmeconf, along with supporting code
- Streamline code for option handling and compatibility testing; other code clean-up
- Switch code handling successive footnotes to expl3, adjust intersecting code
- Small code changes to accommodate future tagged pdf
- Refresh sample figures, edit sample bib file
- Edits to asmeconf.bst: fix punctuation and spacing in journal title macros
-
-
+
v1.36 (2023/12/28)
- Change option-passing to xcolor package to address recent changes that package's code which lead to an error message.
v1.35 (2023/10/19)
- Adjust pdf-a code to accommodate recent changes to hyperxmp package. NOTE: \\DocumentMetadata{ ..} is now preferred to using class option [pdf-a].
- - Add option to not use boldface text in captions: [unboldcaption]
+ - Add option to not use boldface text in captions: \[unboldcaption\]
- Add mathversion sans for sans-serif math and set as default in unbolded captions
v1.34 (2022/12/30)
@@ -131,7 +145,7 @@
v1.27 (2021/12/26):
- fix bug in captions that appeared in Jan. 2021 (code not uppercasing caption text)
- revise code to switch to grid-style author block through a single package option, \[grid\]; previous macros for grid-style remain active.
- - various code modifications to enable older LaTeX distributions to run this class. With pdfLaTeX, TeX Live 2016 or later should be used; with luaLaTeX, TeX Live 2021 or later should be used.
+ - various code modifications to enable older LaTeX distributions to run this class. With pdfLaTeX, TeX Live 2016 or later should be used; with LuaLaTeX, TeX Live 2021 or later should be used.
- eliminate use of \\entry{} with a single argument to produce subheadings in nomenclature; use \\EntryHeading{} instead. (**not backward compatible**)
- incorporate recent changes to LaTeX pdf management in relation to pdf-a color profile loading and recently deprecated \\pdfcatalog command
- minor edits in relation to url links
diff --git a/macros/latex/contrib/asmeconf/asmeconf-sample.bib b/macros/latex/contrib/asmeconf/asmeconf-sample.bib
index 158b0f0081..66b2a356cf 100644
--- a/macros/latex/contrib/asmeconf/asmeconf-sample.bib
+++ b/macros/latex/contrib/asmeconf/asmeconf-sample.bib
@@ -1,6 +1,6 @@
%% Sample bibliography file for asmeconf.bst and asmeconf.cls
%%
-%% Revised 25 January 2024
+%% Revised 26 July 2024
%% Copyright John H. Lienhard, MIT
%% Offered under the MIT license: https://ctan.org/license/mit
@@ -212,6 +212,18 @@
urldate = {January 18, 2021},
}
+@article{pohlhausen1921,
+ author = {Pohlhausen, E.},
+ title = {Der {W}\"{a}rmeaustausch zwischen festen K\"{o}rpern und {F}l\"{u}ssigkeiten mit kleiner reibung und kleiner {W}\"{a}rmeleitung},
+ journal = {Zeitschrift f\"{u}r {A}ngewandte {M}athematik und {Me}chanik},
+ volume = {1},
+ number = {2},
+ pages = {115--121},
+ doi = {10.1002/zamm.19210010205},
+ year = {1921},
+}
+%url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/zamm.19210010205},
+
@book{fourier1822,
author = {Jean Baptiste Joseph Fourier},
year = {1822},
diff --git a/macros/latex/contrib/asmeconf/asmeconf-template.pdf b/macros/latex/contrib/asmeconf/asmeconf-template.pdf
index 0e628963d3..8e3eefb516 100644
--- a/macros/latex/contrib/asmeconf/asmeconf-template.pdf
+++ b/macros/latex/contrib/asmeconf/asmeconf-template.pdf
Binary files differ
diff --git a/macros/latex/contrib/asmeconf/asmeconf-template.tex b/macros/latex/contrib/asmeconf/asmeconf-template.tex
index 84eecfb071..a325b89357 100644
--- a/macros/latex/contrib/asmeconf/asmeconf-template.tex
+++ b/macros/latex/contrib/asmeconf/asmeconf-template.tex
@@ -4,7 +4,7 @@
%% This file is asmeconf-template.tex, a LaTeX template to format ASME Conference papers according to
%% the requirements on ASME's conference web pages, and including hypertext support for the pdf.
%%
-%% This file is version 1.37 dated 2024/02/06
+%% This file is version 1.38 dated 2024/08/01
%%
%% As of version 1.11, this template defaults to ASME's newer conference guidelines first posted July 2019.
%% Those guidelines changed the requested author block formatting to be inline.
@@ -71,8 +71,8 @@
%% * See Appendix B for details.
%% * Language support is most extensive when running LuaLaTeX, which automatically loads fontspec, but
%% * be aware that you may to install additional fonts on your system to use fontspec.
-%% *
-%% * To use LuaLaTeX without bothering about extra fonts, use the [nofontspec] option to asmeconf.
+%%
+%% * Option to use LuaLaTeX **without** bothering about extra fonts, [nofontspec]
%%
%% The use of commands defined or modified by the asmeconf class is illustrated throughout this file. In particular,
%% ASME requires capitalized, sans-serif section headings, and as a result some care is needed when using macros
@@ -93,13 +93,13 @@
%% STRONGLY RECOMMENDED new pdf management code follows.
%% This addition the LaTeX kernel was made in June 2022 by the LaTeX Project team.
%% https://www.latex-project.org/news/latex2e-news/ltnews35.pdf
-%% Uncomment the next lines and omit the option [pdf-a] from \documentclass[...]{asemconf}
+%% If this doesn't work for you, comment out the next lines and add option [pdf-a] to \documentclass[...]{asmeconf}
-%\DocumentMetadata{%
-% pdfstandard=A-3b,% A-2b, A-2u, A-3b, or A-3u (don't use u options with LuaLaTeX)
-% pdfversion=1.7,
-% lang=en-US,
-%}
+\DocumentMetadata{%
+ pdfstandard=A-3b,% A-2b, A-2u, A-3b, or A-3u (don't use u options with LuaLaTeX)
+ pdfversion=1.7,
+ lang=en-US,
+}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -108,7 +108,7 @@
%% Remove the [colorlinks] option before *final* submission to ASME, to get black text for printing,
%% but keep that option for other uses.
-\documentclass[pdf-a,balance,colorlinks,upint,subscriptcorrection,varvw,mathalfa=cal=boondoxo, spanish,french,vietnamese,russian,greek]{asmeconf}
+\documentclass[balance,colorlinks,upint,subscriptcorrection,varvw,mathalfa=cal=boondoxo, german,spanish,vietnamese,russian,greek]{asmeconf}
%%%%% pdf metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -121,6 +121,7 @@
pdflicenseurl={https://ctan.org/pkg/asmeconf},% may delete
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
@@ -154,7 +155,7 @@
% \JointFirstAuthor, if applicable, follows the affiliation of the relevant authors, no spaces.
\SetAuthors{%
- John H.\ Lienhard\affil{1}\JointFirstAuthor\CorrespondingAuthor{},
+ John H. Lienhard\affil{1}\JointFirstAuthor\CorrespondingAuthor{},
Luis Hern\'andez\affil{2}\JointFirstAuthor,
Maria Silva\affil{3},
Henry Tudor\affil{4},
@@ -183,7 +184,6 @@
%%%%% End of fields to be completed. Now write your paper. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
%%%%% ABSTRACT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% Abstract should be 200 words or less
@@ -314,16 +314,18 @@ Run 12 & 24 & 68.3 \\
%%%%%%%%%%%%%%% begin more complicated table %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% note column set as a 3 cm wide paragraph with 1em hanging indentation. See array package documentation.
+% note numbers centered on "." (with d{3.3}) and on "," (with ,{3.3}). See dcolumn package documentation.
\begin{table}[t]
\caption{Table with more complicated columns}\label{tab:2}%
\centering{%
-\begin{tabular}{!{\hspace*{0.5cm}} >{\raggedright\hangindent=1em} p{3cm} d{3.3} @{\hspace*{1cm}} d{3.3} !{\hspace*{0.5cm}}}
+\begin{tabular}{!{\hspace*{0.5cm}} >{\raggedright\hangindent=1em} p{3cm} d{3.3} @{\hspace*{1cm}} ,{3.3} !{\hspace*{0.5cm}}}
\toprule
Experiment & \multicolumn{1}{c@{\hspace*{1cm}}}{$u$ [m/s]} & \multicolumn{1}{c!{\hspace*{0.5cm}}}{$T$ [\textdegree C]} \\
\midrule
-The first test we ran this morning & 124.3 & 68.3 \\
-The second test we ran this morning & 82.50 & 103.46 \\
-Our competitor's test & 72.321 & 141.384 \\
+The first test we ran this morning & 124.3 & 68,3 \\
+The second test we ran this morning & 82.50 & 103,46 \\
+Our competitor's test & 72.321 & 141,384 \\
\bottomrule
\end{tabular}
}
@@ -444,7 +446,7 @@ Math italics are used for Roman and Greek letters by default. If you want an up
\begin{equation}\label{eqn:dw}
\vec{F} = m \vec{a} \quad\textrm{or}\quad \vec{\mathrm{F}} = m \vec{\mathrm{a}} \quad\textrm{or}\quad \mathbf{F} = m \mathbf{a} \quad\textrm{or}\quad \vec{\mathsf{F}} = m \vec{\mathsf{a}}
\end{equation}
-To get additional symbols in bold math, use the \verb|\bm{..}| macro from the \texttt{bm} package (which is loaded by the class) or, for longer passages, use \verb|{\mathversion{bold}|\ldots\texttt{\}}.
+To get additional symbols in bold math, use the \verb|\bm{..}| macro from the \texttt{bm} package (which is loaded by the class) or, for longer passages, use \verb|{\mathversion{bold}..|\texttt{\}}.
The class file also provides upright sans-serif Greek letters with \verb|\sfalpha| and similar expressions (e.g., $\sfalpha, \sfbeta, \sfgamma, \sfdelta$ \ldots $\bm{\sfalpha, \sfbeta, \sfgamma, \sfdelta \ldots}$), in case they are needed (but note that the \verb|newtxmath| options \verb|frenchmath| and \verb|slantedGreek| also affect how Greek letters are presented).
@@ -555,7 +557,9 @@ The \hologo{LuaLaTeX} engine is useful with \texttt{asmeconf} in two situations:
\item \textbf{Executing lua code directly in your \LaTeX\ file.} With lua code, complicated functions can be plotted or numerical integration can be executed. An example file in the distribution demonstrates this capability~\cite{lienhard2024}. In this situation, \textit{be sure to use the class option} \texttt{[nofontspec]}, so that you won't need to install additional fonts on your computer.
-\item \textbf{Using complex alphabets.} With \hologo{pdfLaTeX}, the \texttt{asmeconf} package supports Latin alphabets, as well as Cyrillic, Greek, and Vietnamese. If you need scripts such as Arabic, Chinese, or Japanese, \hologo{LuaLaTeX} with the \texttt{fontspec} package can use fonts installed in your computer operating system. See the example file in this distribution for more details~\cite{lienhard2021}.
+\item \textbf{Using complex alphabets.} With \hologo{pdfLaTeX}, the \texttt{asmeconf} package supports Latin alphabets, as well as Cyrillic, Greek, and Vietnamese. If you need scripts such as Arabic, Chinese, or Japanese, \hologo{LuaLaTeX} with the \texttt{fontspec} package can use fonts installed in your computer operating system.\footnote{For English, you \textit{must} have these fonts installed:\par \parbox{\columnwidth}{\setlength{\parindent}{12pt}TeX Gyre Termes (\hrefurl{https://ctan.org/tex-archive/fonts/newtx/opentype}{ctan.org/tex-archive/fonts/newtx/opentype}),\par TeX~Gyre~Heros (\hrefurl{https://ctan.org/tex-archive/fonts/tex-gyre/opentype}{ctan.org/tex-archive/fonts/tex-gyre/opentype}),\par
+Inconsolatazi4 (\hrefurl{https://ctan.org/tex-archive/fonts/inconsolata/opentype}{ctan.org/tex-archive/fonts/inconsolata/opentype}).}} See the example file in this distribution for more details~\cite{lienhard2021}.
+
\end{description}
@@ -572,9 +576,10 @@ abstract in another language.
When more than one language option is included in \verb|\documentclass[..]{asmeconf}|, English will be
set as the document's main language. (To choose a different main language, set \texttt{[main=..]}).
-If no language options are given, the package defaults to English. As examples, a passage in French is
-shown in \selectlanguage{french}\appendixname~\ref{app:fourier}\selectlanguage{english}, followed by
-\ifpdftex abstracts in Spanish, Greek, Russian, and Vietnamese.\else abstracts in other languages.\fi
+If no language options are given, the package defaults to English. As examples, a passage in German is
+shown in \selectlanguage{german}\appendixname~\ref{app:pohlhausen}\selectlanguage{german},
+%\selectlanguage{french}\appendixname~\ref{app:fourier}\selectlanguage{english},
+followed by \ifpdftex abstracts in Spanish, Greek, Russian, and Vietnamese.\else abstracts in other languages.\fi
The input encoding can be utf-8, as for these glyphs:
%% If you have trouble with the next line, your file may not be saved in utf-8 format. You can delete that line to resolve the issue.
@@ -588,12 +593,18 @@ The bibliography style, \texttt{asmeconf.bst}, is designed in English and aimed
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{selectlanguage}{french}%
-\section{Discours Préliminaire de Fourier}\label{app:fourier}
-Les causes primordiales ne nous sont point con­nues; mais elles sont assujetties à des lois simples et constantes, que l'on peut découvrir par l'obser­vation, et dont l'étude est l'objet de la philosophie naturelle.
-
-La chale ur pénètre, comme la gravité, toutes les substances de l'univers, ses rayons occupent toutes les parties de l'espace. Le but de notre ouvrage est d'exposer les lois mathématiques que suit cet élé­ment. Cette théorie formera désormais une des branches les plus importantes de la physique gé­nérale~\cite{fourier1822}.
+\begin{selectlanguage}{german}%
+\section{Wärmeaustausch und Reibungswiderstand (\NoCaseChange{von} E. Pohlhausen)}\label{app:pohlhausen}
+In einer strömenden Flussigkeit sind Wärmeleitung und Wärmekonvektion Vorgänge, die mit der inneren Reibung (oder Impulsleitung) und mit der Impulskonvektion große Aehnlichkeit besitzen. Mathematisch findet dies seinen Ausdruck in dem gleichartigen Bau der Differentialgleichungen, die einerseits für die Temperatur und anderseits für den Geschwindigkeitsvektor in der Flüssigkeit bestehen. Man kann daraus auf eine Beziehung
+zwischen dem Wärmeaustanch und dem Reibungswiderstand schließen, die eine strömende Flüssigkeit an einem festen Körper hervorrufen. Dies ist zuerst von Prandtl ausgesprochen und durchgeführt worden, und zwar für turbulente Vorgänge, unter der vereinfachenden Annahme von Wärmequellen und -senken im Innern der Flüssigkeit~\cite{pohlhausen1921}.
\end{selectlanguage}%
+
+%\begin{selectlanguage}{french}%
+%\section{Discours Préliminaire de Fourier}\label{app:fourier}
+%Les causes primordiales ne nous sont point con­nues; mais elles sont assujetties à des lois simples et constantes, que l'on peut découvrir par l'obser­vation, et dont l'étude est l'objet de la philosophie naturelle.
+%
+%La chale ur pénètre, comme la gravité, toutes les substances de l'univers, ses rayons occupent toutes les parties de l'espace. Le but de notre ouvrage est d'exposer les lois mathématiques que suit cet élé­ment. Cette théorie formera désormais une des branches les plus importantes de la physique gé­nérale~\cite{fourier1822}.
+%\end{selectlanguage}%
\begin{selectlanguage}{spanish}%
\begin{abstract*}
@@ -625,19 +636,25 @@ Este es el resumen del artículo. Escribimos en español. Se describen el proble
\end{selectlanguage}% Checked and edited by Nguyen Le and Thao Nguyen
\fi
-\iffontspecloaded %%% requires lualatex
+\iffontspecloaded %%% These passages require using lualatex AND installing the mentioned fonts as system fonts on your computer.
%
- \begin{selectlanguage}{greek}%
- \begin{abstract*}
- Αυτή είναι η περίληψη του άρθρου. Χρησιμοποιούμε την ελληνική γλώσσα. Περιγράφεται το πρόβλημα, οι μέθοδοι και τα αποτελέσματα. Περιλαμβάνονται επίσης αναφορές.
- \end{abstract*}
- \end{selectlanguage}% Edited by George Barbastathis
-%
- \begin{selectlanguage}{russian}
- \begin{abstract*}
- Это резюме статьи. Пишем по русски. Описаны проблема, методы и результаты. Библиография также включена.%
- \end{abstract*}
- \end{selectlanguage}% edited by Steven Gerasimoff
+ \IfFontExistsTF{NotoSans}{
+ \IfFontExistsTF{NotoSerif}{
+ %
+ \begin{selectlanguage}{greek}%
+ \begin{abstract*}
+ Αυτή είναι η περίληψη του άρθρου. Χρησιμοποιούμε την ελληνική γλώσσα. Περιγράφεται το πρόβλημα, οι μέθοδοι και τα αποτελέσματα. Περιλαμβάνονται επίσης αναφορές.
+ \end{abstract*}
+ \end{selectlanguage}% Edited by George Barbastathis
+ %
+ \begin{selectlanguage}{russian}
+ \begin{abstract*}
+ Это резюме статьи. Пишем по русски. Описаны проблема, методы и результаты. Библиография также включена.%
+ \end{abstract*}
+ \end{selectlanguage}% edited by Steven Gerasimoff
+ %
+ }{\ClassWarning{\ClassName}{I can't find NotoSerif.ttf, which is needed for Greek and Russian language text. Please install that font.}}
+ }{\ClassWarning{\ClassName}{I can't find NotoSans.ttf, which is needed for Greek and Russian language text. Please install that font.}}
%
\begin{selectlanguage}{vietnamese}
\begin{abstract*}
@@ -645,24 +662,41 @@ Este es el resumen del artículo. Escribimos en español. Se describen el proble
\end{abstract*}
\end{selectlanguage}% Checked and edited by Nguyen Le and Thao Nguyen
%
-% \begin{selectlanguage}{japanese}% Use class option [japanese] if you uncomment this passage.
-% \begin{abstract*}
-% % 論文の要約です。日本語で記述します。問題、方法、および結果について説明します。また、参考文献も含めます。
-% この論文の日本語での要約は以下のとおりです。問題、方法、および結果が説明されています。参考資料も添付してあります。
-% \end{abstract*}
-% \end{selectlanguage}% Edited by Keiji Yano and Yoshiki Okamoto
%
- \begin{selectlanguage}{korean}
- \begin{abstract*}
- 이것은 한국어로 쓰인 논문의 초록입니다. 문제, 방법 및 결과가 설명되어 있습니다. 참조도 포함됩니다.
- \end{abstract*}
- \end{selectlanguage}% Edited by Hyung Won Chung.
+%% Use class option [japanese] if you uncomment this passage.
+% \IfFontExistsTF{NotoSerifCJKjp}{%
+% \IfFontExistsTF{NotoSansCJKjp}{%
+% %
+% \begin{selectlanguage}{japanese}
+% \begin{abstract*}
+% % 論文の要約です。日本語で記述します。問題、方法、および結果について説明します。また、参考文献も含めます。
+% この論文の日本語での要約は以下のとおりです。問題、方法、および結果が説明されています。参考資料も添付してあります。
+% \end{abstract*}
+% \end{selectlanguage}% Edited by Keiji Yano and Yoshiki Okamoto
+% %
+% }{\ClassWarning{\ClassName}{I can't find NotoSerifCJKjp, which is needed for Japanese language text. Please install that font.}}
+% }{\ClassWarning{\ClassName}{I can't find NotoSansCJKjp, which is needed for Japanese language text. Please install that font.}}
%
- \begin{selectlanguage}{chinese-simplified}
- \begin{abstract*}
- 这是文章的摘要。我们用中文书写,描述了问题,方法和结果,还包括了参考文献。
- \end{abstract*}
- \end{selectlanguage}% edited by Zi Hao Foo
+ \IfFontExistsTF{NotoSansCJKkr}{%
+ \IfFontExistsTF{NotoSerifCJKkr}{%
+ %
+ \begin{selectlanguage}{korean}
+ \begin{abstract*}
+ 이것은 한국어로 쓰인 논문의 초록입니다. 문제, 방법 및 결과가 설명되어 있습니다. 참조도 포함됩니다.
+ \end{abstract*}
+ \end{selectlanguage}% Edited by Hyung Won Chung.
+ %
+ }{\ClassWarning{\ClassName}{I can't find NotoSerifCJKkr.otf, which is needed for Korean language text. Please install that font.}}
+ %
+ \IfFontExistsTF{NotoSerifCJKsc}{%
+ \begin{selectlanguage}{chinese-simplified}
+ \begin{abstract*}
+ 这是文章的摘要。我们用中文书写,描述了问题,方法和结果,还包括了参考文献。
+ \end{abstract*}
+ \end{selectlanguage}% edited by Zi Hao Foo
+ %
+ }{\ClassWarning{\ClassName}{I can't find NotoSerifCJKsc.otf, which is needed for Korean language text. Please install that font.}}
+ }{\ClassWarning{\ClassName}{I can't find NotoSansCJK.ttf, which is needed for Korean and simplified Chinese text. Please install that font.}}
%
\fi
diff --git a/macros/latex/contrib/asmeconf/asmeconf.cls b/macros/latex/contrib/asmeconf/asmeconf.cls
index 186e5d4941..82ccbc2614 100644
--- a/macros/latex/contrib/asmeconf/asmeconf.cls
+++ b/macros/latex/contrib/asmeconf/asmeconf.cls
@@ -5,8 +5,8 @@
%% ASME conference requirements as represented on ASME's conference web pages in 2024.
%%
%% This file's version and date:
- \def\versionno{1.37}
- \def\versiondate{2024/02/06\space}
+ \def\versionno{1.38}
+ \def\versiondate{2024/08/01\space}
%%
%% Author: John H. Lienhard, V
%% Department of Mechanical Engineering
@@ -23,7 +23,7 @@
%% 6. Provide line numbers for editing and review
%% 7. Support balancing length of columns on last page
%% 8. Provide copyright footer for federal employees and contractors
-%% 9. Support the archival PDF/A standards 1b, 2b, 2u, 3b, and 3u
+%% 9. Support archival PDF/A standards
%% 10. Enable various math and text features from the newtxmath and newtxtext packages
%% 11. Support inclusion of passages in languages other than English
%%
@@ -66,74 +66,76 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{asmeconf}[\versiondate ASME Conference Paper LaTeX Template (JHL)]
-\LoadClass[twoside,twocolumn,10pt]{article}
+\LoadClass[twoside,10pt]{article}% twocolumn is initiated in \MakeTitle
% Even/odd page layout is not used in ASME's specs, although the papers are printed in two-sided format.
\RequirePackage{iftex}% provides \ifpdftex (many) & \ifluatex (once)
\RequirePackage{ifthen}% ifthenelse (many) & \whiledo (once)
-\RequirePackage{etoolbox}% using patchcmd in 4 places
+\RequirePackage{etoolbox}% using patchcmd in 4 or 5 places
+\ExplSyntaxOn
+ \str_const:Nn \ClassName {asmeconf}
+\ExplSyntaxOff
+
+%%%%%%%%%%%%% Compatibility codes for older distributions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%% Test compatibility of older distributions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}% compare version to date; \If... added to latex 2020/10/01
+\providecommand\IfPackageAtLeastTF{\@ifpackagelater}% compare version to date; \If... added to latex 2020/10/01
+\providecommand\IfPDFManagementActiveTF{\@secondoftwo}% \If... added to latex 2021/07/23
+\providecommand\IfPackageLoadedTF{\@ifpackageloaded}% \If...added to latex 2021/11/15
+\providecommand\ClassNoteNoLine[2]{\typeout{^^JClass Note #1: #2.^^J}}% log & terminal note... added to latex 2021/11/15
-\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}% compare version to date; \If... added to latex 2020/10/01
-\providecommand\IfPackageAtLeastTF{\@ifpackagelater}% compare version to date; \If... added to latex 2020/10/01
-\providecommand\IfPackageLoadedTF{\@ifpackageloaded}% \If...added to latex 2021/11/15
+\IfFormatAtLeastTF{2020/10/01}{\relax}{%
+ \ClassError{\ClassName}{Your LaTeX format is dated \fmtversion. Formats dated 2020/10/01 or later are recommended for the asmejour class. Older formats and packages may generate errors or fail entirely!}{Please UPDATE your LaTeX distribution to obtain best results. TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. You can try to click past the errors for now.}%
+}
+
+% check whether pdfmanagement (\DocumentMetadata) has been loaded (else fall back to hyperxmp and bookmark packages after loading hyperref)
+\newif\ifasme@pdfmanagement
+\IfPDFManagementActiveTF{
+ \asme@pdfmanagementtrue
+}{
+ \asme@pdfmanagementfalse
+ \ClassWarningNoLine{\ClassName}{pdfmanagement is not active. Will load hyperxmp and bookmark packages instead}
+}
-\IfFormatAtLeastTF{2020/10/01}{%
- \ClassInfo{asmeconf}{Your LaTeX format is dated \fmtversion. LaTeX distributions 2020/10/01 or later are strongly recommended for best results}
- }{%
- \ClassError{asmeconf}{Your LaTeX format is dated \fmtversion. Formats dated 2020/10/01 or later are recommended for the asmejour class. Older formats and packages may generate errors or fail entirely!}{Please UPDATE your LaTeX distribution to obtain best results. TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. You can try to click past the errors for now.}%
+% Allow pre 2021/11/15 formats to see the graphicx alt key without causing an error
+\IfFormatAtLeastTF{2021/11/15}{
+ \relax
+}{
+ \AtBeginDocument{
+ \IfPackageLoadedTF{graphicx}{\define@key{Gin}{alt}{}}{\relax}
+ }
}
+% Enable pre-2020/10 formats to access essential macros later moved into LaTeX kernel
\ifdefined\NewDocumentCommand\else
\RequirePackage{xparse}% enable older installations to access features in LaTeX kernel since 2020/10/01; but need at least 2018/04...
\fi
-\DeclareDocumentCommand\LogNote{m}{%
- \IfFormatAtLeastTF{2021/11/15}{%
- \ClassNoteNoLine{asmeconf}{#1}% Added to LaTeX in Nov. 2021
- }{%
- \ClassWarningNoLine{asmeconf}{#1}%
- }
+% Provide pre-2020/10 installations with basic unicode character mappings
+\IfFormatAtLeastTF{2020/10/01}{\relax}{%
+\ifpdftex
+ \pdfgentounicode=1 %% enable CMaps; was moved into the latex kernel Oct 2020
+ \input glyphtounicode.tex %% lists of mappings; was moved into the latex kernel Oct 2020
+\fi
}
\IfPackageAtLeastTF{iftex}{2019/11/07}{\relax}{%
- \ClassError{asemconf}{Package iftex is too old. Go to \string https://ctan.org and download an up-to-date version.}%
+ \ClassError{\ClassName}{Package iftex is too old. Go to \string https://ctan.org and download an up-to-date version.}{%
+ Your latex installation does not have an up-to-date version of the package iftex. You can get it at CTAN: \string https://ctan.org.}
}
-%% Test whether \DocumentMetadata has been loaded (Thank you Ulrike Fischer)
-\newif\if@asme@pdfmanagement
-% \IfPDFManagementActiveTF{\@asme@pdfmanagementtrue}{\@asme@pdfmanagementfalse}% New 2021/07/23, don't implement yet
-\ExplSyntaxOn
- \IfFormatAtLeastTF{2020/02/02}{%
- \bool_if:nTF
- {
- \bool_lazy_and_p:nn
- {\cs_if_exist_p:N \pdfmanagement_if_active_p:}
- { \pdfmanagement_if_active_p: }
- }
- {
- \@asme@pdfmanagementtrue
- }
- {
- \@asme@pdfmanagementfalse
- }
- }{\@asme@pdfmanagementfalse}
-\ExplSyntaxOff
-
-
%%%%%%%%%%%%%% Options for the class %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{kvoptions}
\SetupKeyvalOptions{
- family=asmeconf,
+ family=\ClassName,
prefix=asmeconf@,
setkeys=\kvsetkeys,
}
%%% set key [colorlinks] to have colored hyperlinks, rather than black links (use a key with new pdfmanagement, 2021/12/01)
-\define@key{asmeconf}{colorlinks}[colorlinks]{%
+\define@key{\ClassName}{colorlinks}[colorlinks]{%
\PassOptionsToPackage{#1}{hyperref}%
}
@@ -182,12 +184,11 @@
\ifthenelse{\equal{#1}{\ac@main}}{\ac@cyrillictrue\def\ac@TtwoA{T2A}}{\relax}% comparing strings
}
-\define@key{asmeconf}{main}[english]{%
+\define@key{\ClassName}{main}{% remove default 2024/07/26, to avoid conflict with subsequent logic
\PassOptionsToPackage{main=#1,#1}{babel}% added #1 resolves conflict of russianb.ldf & ukrainianb.ldf under "main=".
\ac@mainsettrue
\ifthenelse{\equal{#1}{english}}{%
- \PassOptionsToPackage{pdflang=en}{hyperref}}{%
- \LogNote{Selecting #1 as the primary language}%
+ \ClassNoteNoLine{\ClassName}{Selecting #1 as the primary language}%
\ifthenelse{\equal{#1}{greek}}{%
\ac@greektrue
\def\ac@LGR{LGR}%
@@ -201,7 +202,7 @@
\@FindCyr{russian;belarusian;bulgarian;macedonian;serbianc;ukrainian}
}%
}
-\define@key{asmeconf}{vietnamese}[]{%
+\define@key{\ClassName}{vietnamese}[]{%
\RequirePackage[vietnamese=nohyphenation]{hyphsubst}% using key, not option, to allow loading package w/o babel warning.
\PassOptionsToPackage{vietnamese.noencoding}{babel}% modified.noencoding suppresses unnecessary warning about inputenc
\ac@vietnamesetrue
@@ -209,21 +210,20 @@
}
\DeclareDefaultOption{}% suppress warnings about unused options
-\ProcessKeyvalOptions{asmeconf}
+\ProcessKeyvalOptions{\ClassName}
-%% if main language was not chosen explicitly, default to English
+%% if main language was not chosen explicitly, ensure default to English
\ifac@mainset\relax\else
\PassOptionsToPackage{main=english}{babel}%
- \PassOptionsToPackage{pdflang=en}{hyperref}
- \ClassInfo{asmeconf}{Selecting English as the primary language, since main= not set}%
+ \ClassInfo{\ClassName}{Selecting English as the primary language, since main= not set}%
\fi
%% Turn off these keys now that we're done with them
-\def\@KeyFamily{asmeconf}
+\def\@KeyFamily{\ClassName}
\NewDocumentCommand\ac@DisableOption{m}{%
\DisableKeyvalOption[%
action=ignore,%
- class=asmeconf%
+ class=\ClassName%
]{#1}{\@KeyFamily}%
}
\NewDocumentCommand\@DisableKeys{>{\SplitList{;}}m}{\ProcessList{#1}{\ac@DisableOption}}
@@ -249,7 +249,7 @@
\ifpdftex
\PassOptionsToPackage{largesc=true}{newtxtext}% largesc is a boolean key in newtxtext
\else
- \ClassWarningNoLine{asmeconf}{largesc option is not available under luaLateX. It will be ignored}%
+ \ClassWarningNoLine{\ClassName}{largesc option is not available under luaLateX. It will be ignored}%
\fi
}
@@ -261,21 +261,23 @@
%% option to hyphenate the inconsolata typewriter font [hyphenate] and to issue a warning when that's done.
\DeclareOption{hyphenate}{%
\ifac@fontspec
- \ClassWarningNoLine{asmeconf}{hyphenate option is not supported by fontspec, will be ignored}%
+ \ClassWarningNoLine{\ClassName}{hyphenate option is not supported by fontspec. It will be ignored}%
\else
\PassOptionsToPackage{hyphenate}{inconsolata}% hyphenate is a key via xkeyval in inconsolata
- \LogNote{Allowing hyphenation of typewriter font}%
+ \ClassNoteNoLine{\ClassName}{Allowing hyphenation of typewriter font}%
\fi
}
%% option for monospacing in inconsolata typewriter font [mono].
+\def\MonoNotMono{WordSpace={1,1,1}}% rescaled tt font to match pdf, 2024/07/28
\DeclareOption{mono}{%
\ifac@fontspec
- \def\MonoNotMono{}%
+ \def\MonoNotMono{WordSpace={1,0,0},PunctuationSpace={3}}% NB: these are the default WordSpace values. 20204/07/30
\else
\PassOptionsToPackage{mono}{inconsolata}% mono is a key via xkeyval in inconsolata
\fi
}
%% option for unslashed zero in inconsolata typewriter font [var0].
+\def\ssztwo{}% for Inconsolatazi4; default uses slashed zero, +ss02 uses regular zero
\DeclareOption{var0}{%
\ifac@fontspec
\def\ssztwo{+ss02}% stylistic alternate for regular zero
@@ -296,7 +298,7 @@
\newif\ifac@setpdfa\ac@setpdfafalse
\newif\ifac@pdfaone\ac@pdfaonefalse
-\if@asme@pdfmanagement\else
+\ifasme@pdfmanagement\else
\SetupKeyvalOptions{
family=pdfaopt,
@@ -308,7 +310,7 @@
%%% set key [pdfa] to activate pdf/a compliance (default is pdf/A-3u)
\define@key{pdfaopt}{pdf-a}[true]{%
\IfFormatAtLeastTF{2018/12/01}{\relax}{%
- \ClassError{asmeconf}{Your LaTeX format is dated \fmtversion. Formats dated 2018/12/01 or later are necessary for the [pdf-a] option. Older formats may generate errors}{Please UPDATE your LaTeX distribution to obtain best results. TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. Meanwhile, you can remove the [pdf-a] option and try again}%
+ \ClassError{\ClassName}{Your LaTeX format is dated \fmtversion. Formats dated 2018/12/01 or later are necessary for the [pdf-a] option. Older formats may generate errors}{Please UPDATE your LaTeX distribution to obtain best results. TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. Meanwhile, you can remove the [pdf-a] option and try again}%
}
\ac@setpdfatrue
\PassOptionsToPackage{pdfa}{hyperref}
@@ -344,7 +346,7 @@
%%%%%%%%%%%% PDF/A compliance related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\if@asme@pdfmanagement\else
+\ifasme@pdfmanagement\else
\ifpdftex
\ifac@pdfaone
\pdfminorversion=4 % for pdf/a-1 need version 4, not 7
@@ -353,7 +355,7 @@
\fi
\else
\ifluatex
- \ifac@setpdfa\ClassWarningNoLine{asmeconf}{pdf-a option requires pdfLaTeX engine. Under LuaLaTeX, use %
+ \ifac@setpdfa\ClassWarningNoLine{\ClassName}{pdf-a option requires pdfLaTeX engine. Under LuaLaTeX, use %
\protect\DocumentMetadata{pdfstandard=A-3b} before \protect\documentclass[..]{asmeconf}}%
\fi
\directlua{
@@ -367,7 +369,7 @@
end
}
\else
- \ClassError{asmeconf}{Please use either pdfLaTeX or LuaLaTeX}{This class has NOT been configured to support other engines, and the results will be unpredictable. Exit and rerun using either pdfLaTeX or LuaLaTeX.}%
+ \ClassError{\ClassName}{Please use either pdfLaTeX or LuaLaTeX}{This class has NOT been configured to support other engines, and the results will be unpredictable. Exit and rerun using either pdfLaTeX or LuaLaTeX.}%
\fi
\fi
\fi
@@ -381,19 +383,17 @@
\ifpdftex
\ifasmeconf@nofontspec
- \ClassWarningNoLine{asmeconf}{The [nofontspec] option requires LuaLaTeX. It will be ignored under pdfLaTeX}%
+ \ClassWarningNoLine{\ClassName}{The [nofontspec] option requires LuaLaTeX. It will be ignored under pdfLaTeX}%
\fi
\else
\ifasmeconf@nofontspec
- \ClassWarningNoLine{asmeconf}{The [nofontspec] option has been issued. LuaLaTeX will run without font support}%
+ \ClassWarningNoLine{\ClassName}{The [nofontspec] option has been issued. LuaLaTeX will run without font support}%
\else
\IfFormatAtLeastTF{2020/10/01}{%
\ac@fontspectrue
\fontspecloadedtrue
- \def\ssztwo{}% for Inconsolatazi4; default uses slashed zero, +ss02 uses regular zero
- \def\MonoNotMono{WordSpace={1,1.33,1.67}}% for Inconsolatazi4; default allows word spacing (is not mono)
}{%
- \ClassError{asmeconf}{Your LaTeX format is dated \fmtversion. LaTeX installations dated 2020/10/01 or later are needed to run LuaLaTeX with the fontspec package. Fontspec will NOT be loaded. Language support will be minimal}{Please UPDATE your LaTeX distribution to obtain best results. TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. You may alternatively choose the [nofontspec] option.}%
+ \ClassError{\ClassName}{Your LaTeX format is dated \fmtversion. LaTeX installations dated 2020/10/01 or later are needed to run LuaLaTeX with the fontspec package. Fontspec will NOT be loaded. Language support will be minimal}{Please UPDATE your LaTeX distribution to obtain best results. TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. You may alternatively choose the [nofontspec] option.}%
}
\fi
\fi
@@ -403,7 +403,7 @@
\PassOptionsToPackage{japanese}{babel}%
\ac@japanesetrue
\else
- \ClassWarningNoLine{asmeconf}{[japanese] option is supported only under LuaLaTeX with fontspec. It will be ignored}%
+ \ClassWarningNoLine{\ClassName}{[japanese] option is supported only under LuaLaTeX with fontspec. It will be ignored}%
\fi
}
@@ -426,23 +426,23 @@
% Several languages do not have .ldf files to load. Babel will call these on demand.
%
-\DeclareOption{arabic}{\ClassError{asmeconf}{Do not specify "arabic" as a class option}{Instead, give the option [bidi=basic] and specify "arabic" when you call the language within your document.}}
+\DeclareOption{arabic}{\ClassError{\ClassName}{Do not specify "arabic" as a class option}{Instead, give the option [bidi=basic] and specify "arabic" when you call the language within your document.}}
%
-\DeclareOption{bengali}{\ClassError{asmeconf}{Do not specify "bengali" as a class option}{Babel does not have an ldf file for Bengali. Instead, specify "bengali" when you call the language within your document. No class option is needed.}}
+\DeclareOption{bengali}{\ClassError{\ClassName}{Do not specify "bengali" as a class option}{Babel does not have an ldf file for Bengali. Instead, specify "bengali" when you call the language within your document. No class option is needed.}}
%
-\DeclareOption{chinese-simplified}{\ClassError{asmeconf}{Do not specify "chinese-simplified" as class option}{Babel does not have an ldf file for simplified Chinese. Instead, specify "chinese-simplified" when you call the language within your document. No class option is needed.}}
+\DeclareOption{chinese-simplified}{\ClassError{\ClassName}{Do not specify "chinese-simplified" as class option}{Babel does not have an ldf file for simplified Chinese. Instead, specify "chinese-simplified" when you call the language within your document. No class option is needed.}}
%
-\DeclareOption{chinese-traditional}{\ClassError{asmeconf}{Do not specify "chinese-traditional" as class option}{Babel does not have an ldf file for traditional Chinese. Instead, specify "chinese-traditional" when you call the language within your document. No class option is needed.}}
+\DeclareOption{chinese-traditional}{\ClassError{\ClassName}{Do not specify "chinese-traditional" as class option}{Babel does not have an ldf file for traditional Chinese. Instead, specify "chinese-traditional" when you call the language within your document. No class option is needed.}}
%
-\DeclareOption{chinese}{\ClassError{asmeconf}{Do not specify "chinese" as a class option}{Instead, specify either "chinese-simplified" or "chinese-traditional" when you call the language within your document. No class option is needed.}}
+\DeclareOption{chinese}{\ClassError{\ClassName}{Do not specify "chinese" as a class option}{Instead, specify either "chinese-simplified" or "chinese-traditional" when you call the language within your document. No class option is needed.}}
%
-\DeclareOption{hindi}{\ClassError{asmeconf}{Do not specify "hindi" as a class option}{Babel does not have an ldf file for Hindi. Instead, specify "hindi" when you call the language within your document. No class option is needed.}}
+\DeclareOption{hindi}{\ClassError{\ClassName}{Do not specify "hindi" as a class option}{Babel does not have an ldf file for Hindi. Instead, specify "hindi" when you call the language within your document. No class option is needed.}}
%
-\DeclareOption{marathi}{\ClassError{asmeconf}{Do not specify "marathi" as a class option}{Babel does not have an ldf file for Marathi. Instead, specify "marathi" when you call the language within your document. No class option is needed.}}
+\DeclareOption{marathi}{\ClassError{\ClassName}{Do not specify "marathi" as a class option}{Babel does not have an ldf file for Marathi. Instead, specify "marathi" when you call the language within your document. No class option is needed.}}
%
-\DeclareOption{korean}{\ClassError{asmeconf}{Do not specify "korean" as class option}{Babel does not have an ldf file for Korean. Instead, specify "korean"when you call the language within your document. No class option is needed.}}
+\DeclareOption{korean}{\ClassError{\ClassName}{Do not specify "korean" as class option}{Babel does not have an ldf file for Korean. Instead, specify "korean"when you call the language within your document. No class option is needed.}}
%
-\DeclareOption{tamil}{\ClassError{asmeconf}{Do not specify "tamil" as a class option}{Babel does not have an ldf file for Tamil. Instead, specify "tamil" when you call the language within your document. No class option is needed.}}
+\DeclareOption{tamil}{\ClassError{\ClassName}{Do not specify "tamil" as a class option}{Babel does not have an ldf file for Tamil. Instead, specify "tamil" when you call the language within your document. No class option is needed.}}
%% Suppress warnings about unused global options
\DeclareOption*{}
@@ -462,23 +462,18 @@
\RequirePackage{graphicx} % removed obsolete options, 2023/11/19
\RequirePackage[dvipsnames,svgnames,x11names]{xcolor}
-% Allow pre 2021/11/15 formats to see the graphicx alt key without causing an error, in preparation for tagged pdf
-\IfFormatAtLeastTF{2021/11/15}{
- \relax
-}{
- \AtBeginDocument{
- \IfPackageLoadedTF{graphicx}{\define@key{Gin}{alt}{}}{\relax}
- }
-}
%%%%%%%%%%%% Table related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{booktabs}
\RequirePackage{array}
-\RequirePackage{dcolumn}% alignment on decimal places
-\newcolumntype{d}[1]{D{.}{.}{#1}}% NB: This conflicts with babel's Spanish language option which makes "." an active character.
- % To use "," separator, put this command in your preamble: \newcolumntype{d}[1]{D{,}{,}{#1}}
+\RequirePackage{dcolumn}% alignment on decimal places
+% use d{x.y} to center on "." as in "12.234"
+\newcolumntype{d}[1]{D{.}{.}{#1}}
+% NB: The above conflicts with babel's Spanish language option which makes "." an active character.
+% Instead, to use "," as the decimal separator, choose columntype "," (as in "12,234")
+\newcolumntype{,}[1]{D{,}{,}{#1}}
%%%%%%%%% Caption related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -507,7 +502,7 @@
\captionsetup[table]{labelformat=uppercase,labelfont={sf,bf,small},textfont={sf,bf,small},textformat=boldmath,labelsep=colon,skip=0.5\baselineskip} %name=TABLE,
\fi
-%% This construction avoids a failure of hyperref in relation to uppercase caption
+%% This construction avoids a failure of hyperref in relation to uppercase captions
%% Discussion: https://tex.stackexchange.com/questions/375695/maketextuppercase-inside-table-captions
\AtBeginDocument{
\let\scaption\caption
@@ -542,8 +537,17 @@
\RequirePackage[no-math]{fontspec}
\defaultfontfeatures{Ligatures=TeX,}
%
- \setmainfont{TeXGyreTermesX}[% Presumes these are system fonts! Available at: http://www.gust.org.pl/projects/e-foundry/tex-gyre
- WordSpace = {1,1.4,1},%% This stretch matches newtxtext a little better. 1.4
+ \def\FontWarning{For luaLaTeX, you MUST have these OpenType fonts installed as system fonts on your computer: TeX Gyre Termes and TeX Gyre Heros (from \string http://www.gust.org.pl/projects/e-foundry/tex-gyre) and Inconsolatazi4 (\string https://ctan.org/tex-archive/fonts/inconsolata/opentype). If you DON'T have these fonts, you will see ERROR messages!}
+%
+ \IfFontExistsTF{TeX Gyre Termes}{}{\ClassWarningNoLine{\ClassName}{\FontWarning} }
+ \IfFontExistsTF{texgyreheros}{}{ \ClassWarningNoLine{\ClassName}{\FontWarning} }
+ \IfFontExistsTF{Inconsolatazi4}{}{ \ClassWarningNoLine{\ClassName}{\FontWarning} }
+%
+ % The newtx package includes a modified version of TeXGyreTermes called TexGyreTermesX, which is loaded here.
+ % Can fall back to TeXGyreTermes if desired, available at: http://www.gust.org.pl/projects/e-foundry/tex-gyre
+ \setmainfont{TeXGyreTermesX}[
+ WordSpace = {1,1.6,1.2},%% This stretch matches newtxtext a little better; rescaled 2024/07/28
+ PunctuationSpace = 1.332,%% match fontdimen7 to newtxtext, 2024/07/28
Extension = .otf,
UprightFont = *-Regular,
ItalicFont = *-Italic,
@@ -552,7 +556,7 @@
Numbers = Lining,
]
\setsansfont{texgyreheros}[% Presumes these are system fonts! Available at: http://www.gust.org.pl/projects/e-foundry/tex-gyre
- WordSpace = {1,1.4,1},
+ WordSpace = {1,1,1},% These spacings match newtxtext; rescaled to unity 2024/07/28
Extension = .otf,
UprightFont = *-regular,
ItalicFont = *-italic,
@@ -562,7 +566,6 @@
Scale=0.91,% same as for newtx; former value 0.9 too small 2022/01/15
]
\setmonofont{Inconsolatazi4}[% This otf font ships with the LaTeX Inconsolata package (it's in TeX Live)
- \MonoNotMono,% match newtxtext if we enable wordspacing
Scale=1.05,% rescaled from 1, 22/03/10
Extension = .otf,
UprightFont = *-Regular,
@@ -570,20 +573,22 @@
BoldFont = *-Bold,
BoldItalicFont = *-Bold,% has no italic face
RawFeature = {+ss01,\ssztwo,+ss03},
- ]
+ \MonoNotMono,% match newtxtext if we enable wordspacing; note wordspace def'd in option above.
+ ]
%
% For many languages, using babel commands helps font loading.
+ % Switched Harbbuzz to OpenType throughout, 2024/07/28
% Noto fonts are available at https://github.com/googlefonts
\def\Noto@scale{0.92}
\def\Ara@scale{0.91}% For the serif font only
\def\NotoBan@scale{0.92}% 1.} should probably stay consistent within the Noto family.
\def\NotoDev@scale{0.92}% 1.} should probably stay consistent within the Noto family.
\def\NotoTam@scale{0.92}
- \def\Noto@color{black}
+ \def\Noto@color{Color=black}% 2024/07/28. Changed this diagnostic command to by-pass a bug in luatexja-fontspec.
%
\babelprovide[import, language=Default]{arabic}
\babelfont [arabic]{rm}[Scale=\Ara@scale,
- Renderer=HarfBuzz,
+ %Renderer=OpenType,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% don't use italic face, I am told
@@ -591,7 +596,7 @@
BoldItalicFont = *-Bold,% don't use italic face, I am told
]{Amiri}% NotoNaskhArabic}% Some readers prefer Amiri font
\babelfont [arabic]{sf}[Scale=\Noto@scale,
- Renderer=HarfBuzz,
+ %Renderer=OpenType,
Extension =.ttf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% font has no italic face
@@ -599,7 +604,7 @@
BoldItalicFont = *-SemiBold,% font has no italic face
]{NotoSansArabic}%DejaVuSans}%NotoKufiArabic}% .otf,%
\babelfont [arabic]{tt}[%
- Renderer=HarfBuzz,
+ %Renderer=OpenType,
Extension =.ttf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -610,9 +615,9 @@
%
\babelprovide[import,language=Default,script=Bangla]{bengali}
\babelfont [bengali]{rm}[%
- Renderer=HarfBuzz,
+ %Renderer=OpenType,
Scale=\NotoBan@scale,% same as Devanagari
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -620,9 +625,9 @@
BoldItalicFont = *-Bold,% has no italic face
]{NotoSerifBengali}
\babelfont [bengali]{sf}[%
- Renderer=HarfBuzz,
+ %Renderer=OpenType,
Scale=\NotoBan@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -630,9 +635,9 @@
BoldItalicFont = *-Bold,% has no italic face
]{NotoSansBengali}
\babelfont [bengali]{tt}[
- Renderer=HarfBuzz,
+ %Renderer=OpenType,
Scale=\NotoBan@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -646,7 +651,7 @@
\babelprovide[import,language=Default,script=Cyrillic]{#1}
\babelfont [#1]{rm}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Italic,
@@ -655,7 +660,7 @@
]{NotoSerif}
\babelfont [#1]{sf}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Italic,
@@ -664,7 +669,7 @@
]{NotoSans}
\babelfont [#1]{tt}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -676,14 +681,14 @@
\setlocalecaption{serbian-cyrillic}{abstract}{Сажетак}% NB: utf-8
%
% Devanagari languages
- \newfontscript{Devanagari}{deva}% HarfBuzz has some problems in Hindi, see babel manual Sect. 1.13 (main issue is ra)
+ \newfontscript{Devanagari}{deva}% OpenType has some problems in Hindi, see babel manual Sect. 1.13 (main issue is ra)
\NewDocumentCommand\@LoadBabelDev{>{\SplitList{;}}m}{\ProcessList{#1}{\@DevBabel}}
\NewDocumentCommand\@DevBabel{m}{%
\babelprovide[import,language=Default]{#1}
\babelfont [#1]{rm}[%
-% Renderer=HarfBuzz,% works for Marathi, throws errors in Hindi...
+% %Renderer=OpenType,% Marathi and Hindi may respond differently...
Scale=\NotoDev@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -691,9 +696,9 @@
BoldItalicFont = *-Bold,% has no italic face
]{NotoSerifDevanagari}
\babelfont [#1]{sf}[%
-% Renderer=HarfBuzz,% works for Marathi, throws errors in Hindi...
+% %Renderer=OpenType,% % Marathi and Hindi may respond differently...
Scale=\NotoDev@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -701,9 +706,9 @@
BoldItalicFont = *-Bold,% has no italic face
]{NotoSansDevanagari}
\babelfont [#1]{tt}[
-% Renderer=HarfBuzz,% works for Marathi, throws errors in Hindi...
+% %Renderer=OpenType,% % Marathi and Hindi may respond differently...
Scale=\NotoDev@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -719,7 +724,7 @@
\babelfont [greek]{rm}[%
Scale=\Noto@scale,
WordSpace={1.1},% increase word spacing slightly
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Italic,
@@ -729,7 +734,7 @@
\babelfont [greek]{sf}[%
Scale=\Noto@scale,
WordSpace={1.1},% increase word spacing slightly
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Italic,
@@ -738,7 +743,7 @@
]{NotoSans}
\babelfont [greek]{tt}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -747,11 +752,14 @@
]{NotoSansMono}
%
% Japanese
+ % luatexja-fontspec seems to want lc "color" now, rather than normal "Color", as before. Commenting out.
+ % NB: luatexja-fontspec color breakage appears to be global.
\ifac@japanese
- \RequirePackage[match]{luatexja-fontspec}% japanese typesets *much* better with this loaded
+ \def\Noto@color{}% by-pass bug in luatexja-fontspec, 2024/07/28.
+ \RequirePackage[no-math]{luatexja-fontspec}% japanese typesets *much* better with this loaded
\setmainjfont{NotoSerifCJKjp}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
% Extension = .otf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -760,7 +768,7 @@
]
\setsansjfont{NotoSansCJKjp}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
% Extension = .ttc,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -769,7 +777,7 @@
]
\setmonojfont{NotoSansMonoCJKjp}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
BoldFont = *-Bold,
@@ -780,7 +788,7 @@
% Need at least one of the following to load the Japanese dictionary.
\babelfont [japanese]{rm}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .otf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -789,7 +797,7 @@
]{NotoSerifCJKjp}% Scale estimated
\babelfont [japanese]{sf}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
% Extension = .ttc,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -798,7 +806,7 @@
]{NotoSansCJKjp}
\babelfont [japanese]{tt}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
% Extension = .ttc,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -812,7 +820,7 @@
\babelprovide[import,language=Default]{korean}
\babelfont [korean]{rm}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .otf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -821,7 +829,7 @@
]{NotoSerifCJKkr}
\babelfont [korean]{sf}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttc,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -830,7 +838,7 @@
]{NotoSansCJK}
\babelfont [korean]{tt}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
% Extension = .ttc,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -843,7 +851,7 @@
\babelprovide[import,language=Default]{chinese-simplified}
\babelfont [chinese-simplified]{rm}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .otf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -852,7 +860,7 @@
]{NotoSerifCJKsc}
\babelfont [chinese-simplified]{sf}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttc,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -861,7 +869,7 @@
]{NotoSansCJK}
\babelfont [chinese-simplified]{tt}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
% Extension = .ttc,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -871,9 +879,9 @@
%
% Traditional Chinese (includes characters for Cantonese also)
\babelprovide[import,language=Default]{chinese-traditional}
- \babelfont [chinese-tradiational]{rm}[%
+ \babelfont [chinese-traditional]{rm}[% fixed 2024/07/28
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .otf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -882,20 +890,20 @@
]{NotoSerifCJKtc}
\babelfont [chinese-traditional]{sf}[%
Scale=\Noto@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttc,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
BoldFont = *-Bold,
BoldItalicFont = *-Bold,% has no italic face
]{NotoSansCJK}
- \babelfont [chinese-traditional]{tt}[Scale=\Noto@scale,Color=\Noto@color]{NotoSansMonoCJKtc}
+ \babelfont [chinese-traditional]{tt}[Scale=\Noto@scale,\Noto@color]{NotoSansMonoCJKtc}
%
\babelprovide[import,language=Default]{tamil}
\babelfont [tamil]{rm}[%
- Renderer=HarfBuzz,
+ %Renderer=OpenType,
Scale=\NotoTam@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -903,9 +911,9 @@
BoldItalicFont = *-Bold,% has no italic face
]{NotoSerifTamil}
\babelfont [tamil]{sf}[%
- Renderer=HarfBuzz,
+ %Renderer=OpenType,
Scale=\NotoTam@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -913,9 +921,9 @@
BoldItalicFont = *-Bold,% has no italic face
]{NotoSansTamil}
\babelfont [tamil]{tt}[
- Renderer=HarfBuzz,
+ %Renderer=OpenType,
Scale=\NotoTam@scale,
- Color=\Noto@color,
+ \Noto@color,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-Regular,% has no italic face
@@ -949,8 +957,13 @@
\RequirePackage{bm}% load after all math to give further access to bold math
-%% Ensure that the current font is used for equation tags, not \normalfont as set by amsmath
-\def\maketag@@@#1{\hbox{\m@th#1}}
+% To free \eqref from the normal font (e.g., for use in section headings or captions). Revised 2024/07/28
+\renewcommand{\eqref}[1]{\textup{\hbox{\m@th{(\ignorespaces\ref{#1}\unskip\@@italiccorr)}}}}
+%
+% amsmath def: \newcommand{\eqref}[1]{\textup{\tagform@{\ref{#1}}}}
+% \def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}}
+% \def\maketag@@@#1{\hbox{\m@th\normalfont#1}}
+
% The article class calls \sloppy in two-column mode (\tolerance 9999, \emergencystretch 3em)
% The following adjustments affect line breaking; the values below are intended to produce
@@ -1000,11 +1013,11 @@
\SetMathAlphabet{\mathsf}{sans}{\encodingdefault}{\sfdefault}{m}{n}% \mathsf is upright.
-% Nice solution from DPC to prevent aux file errors (due to active characters from babel) when switching from pdflatex to lualatex.
-\ifx\directlua\undefined
- \AtBeginDocument{\immediate\write\@auxout{\detokenize{%
- \ifx\directlua\undefined\else\endinput\fi}}}
-\fi
+%% Nice solution from DPC to prevent aux file errors (due to active characters from babel) when switching from pdflatex to lualatex. Disabled, 2024/07/28
+%\ifx\directlua\undefined
+% \AtBeginDocument{\immediate\write\@auxout{\detokenize{%
+% \ifx\directlua\undefined\else\endinput\fi}}}
+%\fi
%%%%%%%% Footers and Footnotes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1034,7 +1047,6 @@
\fancyfoot[CE,CO]{\@SetFont\thepage\\[1ex]\footnotesize The United States Government retains, and by accepting the article for publication, the publisher acknowledges that the United States Government retains, a non-exclusive, paid-up, irrevocable, worldwide license to publish or reproduce the published form of this work, or allow others to do so, for United States Government purposes.}
\fi
-% was missing from earlier versions...?
\ifasmeconf@govtsome
\newgeometry{left=0.5in, right=0.5in, top=0.5in, bottom = 1.in, footskip = 0.3in, columnsep = 0.38in}
\fancyfoot[RO,RE]{}
@@ -1088,39 +1100,36 @@
\titlespacing\subsubsection{\parindent}{6pt plus 3pt minus 2pt}{0pt plus 2pt minus 1pt} % from 12 4 3, 2019/7/7
%% Special handling of the appendices
-%% Assumes that appendices are the last content in paper
-\RenewDocumentCommand{\appendix}{}{%
- \setcounter{section}{0}
- \pdfbookmark[0]{\appendicesname}{appendices}
- \renewcommand\thesection{\Alph{section}}
- \titleformat{\section}{\mathversion{sansbold}\bfseries\sffamily\raggedright}{\MakeTextUppercase{\appendixname}\ \thesection.}{0.5em}{\MakeTextUppercase}
-}
-
-%% This patches titlesec's unprotected re-definition of \footnote.
-%% See discussion here: https://github.com/jbezos/titlesec/issues/48
+%% Assumes that appendices are the last content in paper
+%% Code revised to better support tagged pdf, 2024/07/26.
+\patchcmd{\appendix}{%
+ \setcounter{subsection}{0}%
+}{%
+ \setcounter{subsection}{0}\pdfbookmark[1]{\appendicesname}{appendices}%
+}{}{}
+\apptocmd{\appendix}{\titleformat{\section}[block]{\mathversion{sansbold}\bfseries\sffamily\raggedright}{\MakeTextUppercase{\appendixname}\ \thesection.}{0.5em}{\MakeTextUppercase}}{}{}
+% Changed to block layout (rather than default hanging) whilst retaining \raggedright, since "Appendix X." is a very wide hanging indent. 2024/07/26
+
+%% This patches titlesec's unprotected re-definition of \footnote. See discussion here: https://github.com/jbezos/titlesec/issues/48
%% Without this patch, recent versions of LaTeX will require \protect\footnote in section headings.
-%% This issue may be corrected in titlesec, but keeping the patch anyway.
+%% This issue may be corrected in titlesec, but keeping the patch for backward compatibility.
\patchcmd{\ttl@select}{\def\footnote}{\protected\def\footnote}{\typeout{Asmeconf.sty patched titlesec to have protected def of footnote}}{}
%%%%%%%%%% Hyperref, bookmarks, and PDF/A %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% new pdf management in LaTeX, with \DocumentMetaData{..}, is preferred to this *legacy* approach.
\ifpdftex
- %%% to assist with unicode glyph mapping, following M. Sharpe's recommendation in the newtx documentation.
- \IfFormatAtLeastTF{2020/10/01}{\relax}{%
- \pdfgentounicode=1 %% enable CMaps; has moved into the latex kernel Oct 2020
- \input glyphtounicode.tex %% lists of mappings; has moved into the latex kernel Oct 2020
- }
+ %%% to assist with unicode glyph mapping, following M. Sharpe's recommendation in the newtx documentation.
+ %%% as of 2024/07/28, these are still necessary with \DocumentMetadata{pdfstandard=A-3u}. Note: glyphtounicode-cmex.tex is now in latex-lab.
\InputIfFileExists{glyphtounicode-cmr.tex}{}{} %% additional mappings
\InputIfFileExists{glyphtounicode-ntx.tex}{}{} %% additional mappings
\ifac@setpdfa
- %%%% pdfmanagement options, from Ulrike Fischer 2021/06/12
- \if@asme@pdfmanagement
- \ClassInfo{asmeconf}{pdfmanagement is defined. Class file will not load a color profile}
+ %% new pdf management in LaTeX, with \DocumentMetaData{..}, is preferred to this *legacy* approach.
+ \ifasme@pdfmanagement
+ \ClassInfo{\ClassName}{pdfmanagement is defined. Class file will not load a color profile}
\else
- \ClassInfo{asmeconf}{NOTE: pdfmanagement not defined. Class file will load a color profile}%
+ \ClassInfo{\ClassName}{NOTE: pdfmanagement not defined. Class file will load a color profile}%
%%% a fairly generic RGB color profile, aimed at on-screen rendering (not print production)
\immediate\pdfobj stream attr{/N 3} file{sRGB.icc}
\pdfcatalog{%
@@ -1158,20 +1167,20 @@
\urlstyle{same} % don't switch to typewriter font for urls
\RequirePackage{doi} % supports the nasty characters in some doi's
\renewcommand{\doitext}{DOI } % change to this from default value, {doi:}, per ASME specification
-\RequirePackage{bookmark} % improves handling of pdf bookmarks
\providecommand*{\toclevel@subfigure}{1}% <== to address unknown bookmark level of subfigure. 2021/12/24
\providecommand\hrefurl[2]{\href{#1}{#2}}% to address certain issues around URL recognition with new pdf management code, 2021/12/02
-\if@asme@pdfmanagement
- \ClassInfo{asmejour}{pdfmanagement is defined. Class file will not load hyperxmp}
+\ifasme@pdfmanagement
+ \ClassInfo{asmejour}{pdfmanagement is defined. Class file will not load hyperxmp and bookmark packages}
\else
+ \RequirePackage{bookmark}% improves handling of pdf bookmarks
\RequirePackage{hyperxmp}% improve transfer of metadata to pdf
% Patch bug in hyperxmp, unless a more recent version is used.
\ifdefined\hyxmp@no@bad@parts% \hyxmp@no@bad@parts is not def'd in TeX Live 2019 or older
- \@ifpackagelater{hyperxmp}{2022/10/15}{% v5.11 or later
+ \IfPackageAtLeastTF{hyperxmp}{2022/10/15}{% v5.11 or later
\relax
}{%
\newcount\hypxmp@tempcnt
@@ -1180,13 +1189,11 @@
\hyxmp@pdfstringdef\@pdfapart{\the\hypxmp@tempcnt}%
}
}
- \else
- \relax
\fi
\fi
-%%% ==> recent and evolving development of \pdfstring removes all robust commands from bookmarks, so
-%%% by early 2024, errors are not present; however, these commands serve to still suppress warnings.
+%%% ==> recent development of \pdfstring removes all robust commands from bookmarks, so that
+%%% by early 2024, errors are not present; these commands serve to still suppress warnings, however.
%% Since \bm may be useful in headings, this fix will reduce frequency with which
%% alternate pdfstrings must be given in revised section command as \section[pdfstring]{texstring}
@@ -1212,7 +1219,7 @@
%% Ensure that tag color does not follow \eqref into bookmarks, 2020/02/28
\pdfstringdefDisableCommands{%
- \def\eqref#1{(\ref{#1})}%
+ \def\eqref#1{(\ref*{#1})}% \ref* is from hyperref
}
% Let's make sure footnotes in section headings don't break pdf bookmarks.
@@ -1222,7 +1229,6 @@
}
-
%% Let's also add \footnote to the \TextUppercase exception list, so that footnote text won't be capitalized
%% if given in section headings. Ditto for \eqref
%
@@ -1244,13 +1250,12 @@
\renewcommand{\linenumberfont}{\normalfont\footnotesize\color{red}}
\AtBeginDocument{\linenumbers}
\ifasmeconf@balance
- \ClassWarningNoLine{asmeconf}{Package lineno loaded, so final column balancing will be disabled}%
+ \ClassWarningNoLine{\ClassName}{Package lineno loaded, so final column balancing will be disabled}%
\fi
%%% Patch to allow line numbering in AMS math environments.
%%% This patch is for lineno versions earlier than v5.2 [2023/05/19]. As of mid-2023, the lineno package
- %%% has been corrected to account for the AMS math environments. Retaining temporarily for backward compatibility.
+ %%% has been corrected to account for the AMS math environments. Retaining for backward compatibility.
%%% postdisplaypenalty adjusted to avoid extra line number at end, see: https://tex.stackexchange.com/a/461192/
- %%% multline has some additional problem that puts an extra line number above it.
\IfPackageAtLeastTF{lineno}{2023/05/19}{\relax}{
\NewDocumentCommand{\ac@losepostpenalty}{}{\patchcmd{\linenomathWithnumbers}{\advance\postdisplaypenalty\linenopenalty}{}{}{}}
%
@@ -1270,7 +1275,7 @@
\ifasmeconf@balance
\RequirePackage{flushend}% flushend package is NOT compatible with lineno
\AtEndDocument{\flushcolsend}%
- \LogNote{Calling flushend package to balance column height on last page}%
+ \ClassNoteNoLine{\ClassName}{Calling flushend package to balance column height on last page}%
\fi%
\fi
\providecommand{\@LN@col}[1]{\relax}% Enable dropping lineno option without trashing .aux file
@@ -1364,7 +1369,10 @@
\NewDocumentCommand\PaperNo{m}{\gdef\@PaperNo{#1}}
\providecommand\@PaperNo{\protect\phantom{NO.}}
-\NewDocumentCommand\PaperTitle{m}{\gdef\@PaperTitle{#1}}
+\NewDocumentCommand\PaperTitle{m}{%
+ \gdef\@PaperTitle{#1}%
+ \gdef\@title{#1}% added 2024/07/28
+}
\providecommand\@PaperTitle{\hbox{ }}
\NewDocumentCommand\@HeaderTitle{}{%
@@ -1419,7 +1427,7 @@
%%%% option to use the traditional grid layout of authors or the inline style
\ifasmeconf@grid
- \LogNote{Selected option for a grid of author blocks}%
+ \ClassNoteNoLine{\ClassName}{Selected option for a grid of author blocks}%
%%%%%%%%%%%%%%%%%%%% Gridded author layout %%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1463,7 +1471,7 @@
\ifblank{#1}{%
\expandafter\xdef\csname aut@\theauthorcnt\endcsname{}%
\expandafter\xdef\csname autaffil@\theauthorcnt\endcsname{-1}
- \ClassWarning{asmeconf}{Missing author name, check for extra comma}%
+ \ClassWarning{\ClassName}{Missing author name, check for extra comma}%
}{\expandafter\xdef\csname aut@\theauthorcnt\endcsname{#1}%
}%
}% defines \aut@authorcnt as Name #1
@@ -1547,12 +1555,18 @@
\fi
\fi
\ifnum\value{authorno}>15
- \ClassWarningNoLine{asmeconf}{The class is programmed for up to 15 author blocks. If some of your authors are at the same institution, %
+ \ClassWarningNoLine{\ClassName}{The class is programmed for up to 15 author blocks. If some of your authors are at the same institution, %
you may put more than one name above a single address. If you need more than 15 author blocks, try using the in-line author style %
instead of the [grid] option}
\fi
}% end whiledo
}
+ \ExplSyntaxOn
+ % next three are for backward compatibility
+ \cs_if_exist:NF \cs_gset:Npe { \cs_generate_variant:Nn \cs_gset:Npn {Npe} }
+ \cs_if_exist:NF \tl_set:Ne { \cs_generate_variant:Nn \tl_set:Nn {Ne} }
+ \cs_if_exist:NF \tl_put_right:Ne { \cs_generate_variant:Nn \tl_put_right:Nn {Ne} }
+
\NewDocumentCommand\@ConstructAuthorBlock{}{%
\ifnum\value{authorno}>3
\JoinCoffins\firstrowauthorblock[hc,b]\secondrowauthorblock[hc,t](0pt, -1.5\baselineskip)
@@ -1566,8 +1580,34 @@
\ifnum\value{authorno}>12
\JoinCoffins\firstrowauthorblock[hc,b]\fifthrowauthorblock[hc,t](0pt, -1.5\baselineskip)
\fi
- \centerline{\TypesetCoffin\firstrowauthorblock}%% in this instance, \centerline is better than \centering
+ \centerline{\TypesetCoffin\firstrowauthorblock}% in this instance, \centerline is better than \centering
+ \__asmeconf_concataut:
+ \cs_gset:Npe \@author { \tl_use:N \g_asmeconf_authors_tl }
+ %\iow_term:e { \tl_use:N \g_asmeconf_authors_tl }% diagnostic only
}
+ % build comma-separated list of author names
+ \cs_new_protected:Nn \__asmeconf_concataut: {
+ \tl_new:N \g_asmeconf_authors_tl
+ \int_set:Nn \l_tmpa_int {1}
+ \int_new:N \l__asmeconf_noauts
+ \int_set:Nn \l__asmeconf_noauts { \value{authorcnt} }
+ \int_do_until:nNnn { \l_tmpa_int } > { \l__asmeconf_noauts }
+ {
+ \tl_set:Ne \l_tmpa_tl {\use:c { aut@ \int_use:N \l_tmpa_int } }
+ \tl_replace_all:Nnn \l_tmpa_tl {\unhbox \voidb@x \protect \penalty \@M \ } {~}
+ % If tex unbreakable space character "~" has expanded, replace by a simple space, which is "~" in Expl3 syntax
+ \tl_remove_all:Nn \l_tmpa_tl { \JointFirstAuthor }
+ \tl_replace_all:Nnn \l_tmpa_tl { \CorrespondingAuthor } { \use_none:n }
+ \tl_replace_all:Nnn \l_tmpa_tl { \affil } { \use_none:n }
+ \tl_replace_all:Nnn \l_tmpa_tl { \xdef } { \use_none:nn }
+ \tl_put_right:Ne \g_asmeconf_authors_tl \l_tmpa_tl
+ \int_compare:nNnT { \l_tmpa_int } < { \l__asmeconf_noauts} {
+ \tl_put_right:Ne \g_asmeconf_authors_tl { ,~ }
+ }
+ \int_incr:N \l_tmpa_int
+ }
+ }
+ \ExplSyntaxOff
%%% otherwise use the new compact layout of authors
\else
@@ -1576,13 +1616,35 @@
\NewCoffin{\AffiliationBlock}
\NewCoffin{\AffiliationsBlock}
\AtBeginDocument{\SetHorizontalCoffin\AffiliationsBlock{}}% corrected 2021/12/01
-
+
+ \ExplSyntaxOn
+ \cs_if_exist:NF \cs_gset:Npe { \cs_generate_variant:Nn \cs_gset:Npn {Npe} }
+ \cs_if_exist:NF \tl_gset:Ne { \cs_generate_variant:Nn \tl_gset:Nn {Ne} }
+
%% NB: \parbox width to \textwidth (full page) not \linewidth (single column)
\NewDocumentCommand\SetAuthors{m}{%
- \SetHorizontalCoffin\AuthorBlock{%
+ \SetHorizontalCoffin\AuthorBlock{% ignoring the bug in testphase tagging
\parbox{\textwidth}{\centering\sffamily\bfseries\ignorespaces#1\ignorespaces}%
+ % NB: in vertical mode \parbox needs \noindent ahead of it, _inside_ vertical coffin
+ % \SetVerticalCoffin\AuthorBlock{\textwidth}{% 2024/07/30, test a vertical coffin alternative
+ % \centering\sffamily\bfseries\ignorespaces#1\ignorespaces%
+ \__asmeconf_striptokens:n {#1}
+ \cs_gset:Npe \@author { \tl_use:N \g_asmeconf_authors_tl }% set \@author = list of authors, 2024/07/31
}
}
+ % strip \affil{..}, \JointFirstAuthor, \CorrespondingAuthor{...} from argument
+ \cs_new_protected:Nn \__asmeconf_striptokens:n {
+ \tl_set:Nn \l_tmpa_tl {#1}
+ \regex_replace_all:nnN { \cA\~ } {\ } \l_tmpa_tl % replace ~ by space in author list
+ %\tl_replace_all:Nnn \l__asmeconf_authors_tl {\ } {~}% change "\ " to space (but why? for text we would want this)
+ \tl_remove_all:Nn \l_tmpa_tl { \JointFirstAuthor }
+ \tl_replace_all:Nnn \l_tmpa_tl { \affil } { \use_none:n }
+ \tl_replace_all:Nnn \l_tmpa_tl { \CorrespondingAuthor } { \use_none:n }
+ \tl_new:N \g_asmeconf_authors_tl
+ \tl_gset:Ne \g_asmeconf_authors_tl \l_tmpa_tl
+ \iow_term:e { \tl_use:N \g_asmeconf_authors_tl }% diagnostic only
+ }
+ \ExplSyntaxOff
\def\@makefnmark{\hbox{\@textsuperscript{\sffamily\@thefnmark}}}%
@@ -1598,14 +1660,14 @@
%%% Affiliation mark
\NewDocumentCommand{\affil}{m}{%
\ifblank{#1}{%
- \ClassWarning{asmeconf}{Empty affiliation tag}%
+ \ClassWarning{\ClassName}{Empty affiliation tag}%
\@gobble% 9 Dec 2021, addresses modification for commas
}{\bfseries\footnotemark[#1]}%
}
%%% to deal with sequential notes as, e.g., "1,*", or "1,2,*" %%%%%%%%%%
\ExplSyntaxOn
- \cs_new:Npn \__asmecome_OtherNoteComma:n {
+ \cs_new:Npn \__asmeconf_OtherNoteComma:n {
\peek_meaning:NTF \affil
{ \textsuperscript{\mdseries,} }
{ \peek_meaning:NTF \CorrespondingAuthor
@@ -1614,11 +1676,11 @@
}
}
\cs_new_eq:NN \__saveAF \affil
- \cs_gset_protected:Npn \affil #1 { \__saveAF{#1} \__asmecome_OtherNoteComma:n }
+ \cs_gset_protected:Npn \affil #1 { \__saveAF{#1} \__asmeconf_OtherNoteComma:n }
\cs_new_eq:NN \__saveCA \CorrespondingAuthor
- \cs_gset_protected:Npn \CorrespondingAuthor #1 { \__saveCA{#1} \__asmecome_OtherNoteComma:n }
+ \cs_gset_protected:Npn \CorrespondingAuthor #1 { \__saveCA{#1} \__asmeconf_OtherNoteComma:n }
\cs_new_eq:NN \__saveJA \JointFirstAuthor
- \cs_gset_protected:Npn \JointFirstAuthor { \__saveJA \__asmecome_OtherNoteComma:n }
+ \cs_gset_protected:Npn \JointFirstAuthor { \__saveJA \__asmeconf_OtherNoteComma:n }
\ExplSyntaxOff
%%%
@@ -1633,7 +1695,6 @@
%%%% Make the title and author section
\NewDocumentCommand\MakeTitlePage{}{%
\twocolumn[
- \begin{@twocolumnfalse}
\@HeaderTitle
\vspace*{2\baselineskip}
\ifasmeconf@grid
@@ -1642,7 +1703,6 @@
\@SetAuthorBlock
\fi
\vspace*{3\baselineskip}
- \end{@twocolumnfalse}
]
\let\@makefnmark\savemakefnmark% restore footnote mark font
\renewcommand*{\thefootnote}{\fnsymbol{footnote}}
@@ -1767,12 +1827,12 @@
%%%%%%%%%%%%%%%%%% Times-like fonts for specific languages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifpdftex % Under lualatex, babel has problems with the following approach, which assumes that fontspec has not been loaded.
- % Recommend not to choose the [nofontspec] option.
+ % Recommend not to choose the [nofontspec] option.
% Several modifications made in response to newtx v1.71, 2022/03/14
\ifac@vietnamese
%
\IfFormatAtLeastTF{2020/02/02}{\relax}{%
- \ClassError{asmeconf}{Your LaTeX format is dated \fmtversion. LaTeX distributions 2020 are necessary to use the fonts of the [vietnamese] option with pdflatex}{Please UPDATE your LaTeX distribution: TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. Alternatively, delete the class option [vietnamese].}%
+ \ClassError{\ClassName}{Your LaTeX format is dated \fmtversion. LaTeX distributions 2020 are necessary to use the fonts of the [vietnamese] option with pdflatex}{Please UPDATE your LaTeX distribution: TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. Alternatively, delete the class option [vietnamese].}%
}
%
\AtBeginDocument{%
@@ -1831,7 +1891,7 @@
\ifac@greek
%
\IfFormatAtLeastTF{2020/02/02}{\relax}{%
- \ClassError{asmeconf}{Your LaTeX format is dated \fmtversion. LaTeX distributions 2020 are necessary to use the fonts of the [greek] option with pdflatex}{Please UPDATE your LaTeX distribution: TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. Alternatively, delete the class option [greek].}%
+ \ClassError{\ClassName}{Your LaTeX format is dated \fmtversion. LaTeX distributions 2020 are necessary to use the fonts of the [greek] option with pdflatex}{Please UPDATE your LaTeX distribution: TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. Alternatively, delete the class option [greek].}%
}
%
\AtBeginDocument{%
@@ -1906,7 +1966,7 @@
\ifac@cyrillic
%
\IfFormatAtLeastTF{2020/02/02}{\relax}{%
- \ClassError{asmeconf}{Your LaTeX format is dated \fmtversion. LaTeX distributions 2020 are necessary to use the fonts of the cyrillic language option with pdflatex, e.g., [russian]}{Please UPDATE your LaTeX distribution: TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. Alternatively, delete the class option calling a cyrillic-alphabet language.}%
+ \ClassError{\ClassName}{Your LaTeX format is dated \fmtversion. LaTeX distributions 2020 are necessary to use the fonts of the cyrillic language option with pdflatex, e.g., [russian]}{Please UPDATE your LaTeX distribution: TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. Alternatively, delete the class option calling a cyrillic-alphabet language.}%
}
%
\AtBeginDocument{%
diff --git a/macros/latex/contrib/asmeconf/examples/asmeconf-fontspec.pdf b/macros/latex/contrib/asmeconf/examples/asmeconf-fontspec.pdf
index 05e276803f..d5ef0f0158 100644
--- a/macros/latex/contrib/asmeconf/examples/asmeconf-fontspec.pdf
+++ b/macros/latex/contrib/asmeconf/examples/asmeconf-fontspec.pdf
Binary files differ
diff --git a/macros/latex/contrib/asmeconf/examples/asmeconf-fontspec.tex b/macros/latex/contrib/asmeconf/examples/asmeconf-fontspec.tex
index b041b0f0ff..406a4dd660 100644
--- a/macros/latex/contrib/asmeconf/examples/asmeconf-fontspec.tex
+++ b/macros/latex/contrib/asmeconf/examples/asmeconf-fontspec.tex
@@ -18,13 +18,36 @@
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\DocumentMetadata{%
+ pdfstandard=A-3b,% A-2b, A-2u, A-3b, or A-3u (don't use u options with LuaLaTeX)
+ pdfversion=1.7,
+ lang=en-US,
+ debug = {xmp-export},
+}
\documentclass[colorlinks,nofoot,spanish,japanese,russian,greek,ukrainian,vietnamese,french,portuguese,turkish,polish,indonesian,italian,german,latin,serbianc,bidi=basic]{asmeconf}
% note that not all languages given as examples in this file can be called as options.
+% directly add this xmp property. See l3pdfmeta.pdf. This is not automatic with \DocumentMetadata. "True" must be capitalized.
+\ExplSyntaxOn
+ \pdfmeta_xmp_add:n{<xmpRights:Marked>True</xmpRights:Marked>}
+\ExplSyntaxOff
+
\hypersetup{%
- pdftitle={Language Support in ASMECONF: Non-Latin Alphabets, Lualatex, and fontspec},
+ pdftitle={{Language Support in ASMECONF: Non-Latin Alphabets, Lualatex, and fontspec}},
pdfkeywords={asmeconf, non-Latin alphabets, fontspec, LuaLaTeX, PDFLaTeX},
- pdfauthor={John H. Lienhard, V},
+ pdfauthor={John H. Lienhard},
+ pdfsubject = {Describes font support in asmeconf LaTeX template},
+ pdfurl={https://ctan.org/pkg/asmeconf},% may delete
+ pdflicenseurl={https://ctan.org/pkg/asmeconf},
+ pdfcopyright={Copyright (c) \the\year\ by John H. Lienhard},
+ pdfcontactemail={lienhard@mit.edu},
+ pdfcaptionwriter={{John H. Lienhard, V}},
+ pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
+ pdfcontactcity={Cambridge, MA},
+ pdfcontactpostcode={02139},
+ pdfcontactcountry={USA},
+ pdfcontacturl={https://lienhard.mit.edu},
+ pdfauthortitle={Professor of Mechanical Engineering},
}
% To avoid typing these over and over, define:
@@ -33,13 +56,30 @@
\newcommand*\AC{{\upshape\texttt{asmeconf}}}
\newcommand*\PLT{{\upshape\texttt{\hologo{pdfLaTeX}}}}
+% define a unicode character by its codepoint
+\ExplSyntaxOn
+ \cs_new:Npn \MySym #1 { \codepoint_generate:nn {#1} { 12 } }
+\ExplSyntaxOff
+
+\renewcommand*{\checkmark}{\MySym{"2713}} % because default checkmark has poor glyph information
+
+%% It's necessary to force full embedding of the fonts to get valid PDF/A-3b
+\usepackage{luacode}
+\begin{luacode}
+local function embedfull(tfmdata)
+ tfmdata.embedding = "full"
+end
+luatexbase.add_to_callback("luaotfload.patch_font", embedfull, "embedfull")
+\end{luacode}
+
+
\makeatletter
\def\NotoBan@scale{0.98}% vary this if the Bengali is too small/large; the default value 0.92 matches scaling of the other Noto fonts used.
\def\NotoDev@scale{0.98}% vary this if the Devanagari is too small/large; the default value 0.92 matches scaling of the other Noto fonts used.
%\def\NotoTam@scale{0.92}% vary this if the Tamil is too small/large; the default value 0.92 matches scaling of the other Noto fonts used.
\def\NotoAra@scale{0.93}% The serif font only; the default value is 0.91
-% Noto family is not as close to Tex Gyre Termes as I'd like, so for abstract examples in Latin script [only], use Noto Serif Italic for visual consistency
+% Noto family is not as close to Tex Gyre Termes as I'd like, so for abstract examples in Latin script [only], I'm using Noto Serif Italic for visual consistency
\newfontfamily{\NotoSerif}{NotoSerif}[UprightFont=*-Regular,ItalicFont=*-Italic, BoldItalicFont=*-BoldItalic, BoldFont=*-Bold, Extension=.ttf,Scale=\Noto@scale,WordSpace={1,1.4,1}]
\newfontfamily{\NotoSerifItalns}{NotoSerif-Italic.ttf}[ItalicFont=*,Scale=\Noto@scale]% Turkish has trouble with WordSpace
\makeatother
@@ -107,10 +147,10 @@
\begin{document}
\ConfName{Proceedings of the \texttt{asmeconf} \linebreak International Examples Congress and Exposition}
-\ConfAcronym{AIECE21}
-\ConfDate{January 20, 2021}
+\ConfAcronym{AIECE24}
+\ConfDate{August 1, 2024}
\ConfCity{Cambridge, MA}
-\PaperNo{AIECE2021-0002}
+\PaperNo{AIECE2024-0002}
\title{Language Support in ASMECONF: Non-Latin Alphabets, Lualatex, and fontspec}
@@ -119,7 +159,7 @@
\maketitle
-\versionfootnote{Version~1.01, \today}
+\versionfootnote{Version~1.02, \today}
\keywords{asmeconf, language support, non-Latin alphabets, fontspec, \LLT}
@@ -183,12 +223,12 @@ The \FS\ package~\cite{robertson2020} allows \LLT\ to access fonts that are inst
When processed in \PLT, \AC\ uses the \texttt{newtxtext} and \texttt{inconsolata} fonts, a collection of eight-bit fonts, for Latin script. To use \FS, we must replace those fonts with corresponding unicode fonts (the math fonts, from \texttt{newtxmath}, are unchanged). Specialized fonts are needed for some additional scripts. Thus, the user will need to install several unicode fonts onto their own system in order to use \AC\ with \FS.
Fortunately, all these fonts are all free and easily downloaded.
-The needed fonts are listed in Table~\ref{tab:2}.
+The needed fonts are listed in Table~\ref{tab:2}. \textit{The Latin fonts are required for English when using \FS.}
%%%%%%%%%%%%%%% two column table %%%%%%%%%%%%%%%%%%
\NewDocumentCommand\R{O{11pt}}{\rule{0pt}{#1}}
\begin{table*}[t!]
-\caption{System fonts used by \NoCaseChange{\AC} with \NoCaseChange{\FS}. For all fonts, load regular and bold face. For Latin, Cyrillic, and Greek, also load italic and bold italic. For Noto Sans Arabic, install semibold instead of bold.\label{tab:2}}%
+\caption{System fonts used by \NoCaseChange{\AC} with \NoCaseChange{\FS}. For all fonts, load regular and bold face. For Latin, Cyrillic, and Greek serif and sans serif fonts, also load italic and bold italic. For Noto Sans Arabic, install semibold instead of bold.\label{tab:2}}%
\centering{%
\begin{tabular*}{\textwidth}{@{\hspace*{0.5em}}@{\extracolsep{\fill}}>{\raggedright}p{6em}>{\raggedright}p{12em}>{\raggedright}p{10em}p{23em}@{\hspace*{0.5em}}}
\toprule
@@ -196,7 +236,10 @@ The needed fonts are listed in Table~\ref{tab:2}.
\multicolumn{1}{c}{\textbf{Language}} &
\multicolumn{1}{c}{\textbf{Fonts}} &
\multicolumn{1}{c}{\textbf{Where to get the font}}\\ \midrule
-Latin$^*$ & most European languages & Tex Gyre Termes, Tex~Gyre~Heros & \url{http://www.gust.org.pl/projects/e-foundry/tex-gyre}\rule{0pt}{11pt}\\
+Latin$^*$ & most European languages & TeX Gyre Termes, & \url{https://ctan.org/tex-archive/fonts/newtx/opentype}, \rule{0pt}{11pt}\\
+& & TeX~Gyre~Heros, & \url{https://ctan.org/tex-archive/fonts/tex-gyre/opentype}\\
+%\url{http://www.gust.org.pl/projects/e-foundry/tex-gyre} \\
+& & Inconsolatazi4 & \url{https://ctan.org/tex-archive/fonts/inconsolata/opentype} \\
Arabic\R & Arabic, Punjabi, Urdu, others & Amiri,\\ Noto~Sans~Arabic & \url{https://github.com/alif-type/amiri}\hfill\hbox{} \url{https://github.com/googlefonts/noto-fonts} \\
Bengali\R & Assamese, Bengali, others & Noto Serif Bengali,\\ Noto~Sans Bengali& \url{https://github.com/googlefonts/noto-fonts} \\
Cyrillic\R & Belarusian, Bulgarian, Macedonian, Russian, Serbian, Ukrainian, others & Noto Serif,\\ Noto~Sans, Noto~Sans~Mono & \url{https://github.com/googlefonts/noto-fonts} \\
@@ -215,7 +258,9 @@ Traditional\R\ Chinese & Traditional Mandarin, Cantonese & Noto~Serif~CJK~TC, No
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Using fontspec with asmeconf}
-When running \LLT, the \texttt{[fontspec]} option should be called, to load the appropriate fonts. With \FS, \texttt{babel} will use \texttt{.ldf} files (if available) and separate initialization files (\texttt{.ini}). If a language option is called for which there is no \texttt{.ldf} file, an error will result. However, such languages may still have an \texttt{.ini} that provides necessary information. For example, Chinese and Korean do not have \texttt{.ldf} files, but they do have \texttt{.ini} files. These languages can be accessed as described in Section~\ref{sec:6}.
+%When running \LLT, the \texttt{[fontspec]} option should be called, to load the appropriate fonts.
+When running \LLT, \texttt{fontspec} is loaded by default (as of Feb.\ 2024).
+With \FS, \texttt{babel} will use \texttt{.ldf} files (if available) and separate initialization files (\texttt{.ini}). If a language option is called for which there is no \texttt{.ldf} file, an error will result. However, such languages may still have an \texttt{.ini} that provides necessary information. For example, Chinese and Korean do not have \texttt{.ldf} files, but they do have \texttt{.ini} files. These languages can be accessed as described in Section~\ref{sec:6}.
Japanese typesetting is a little more complicated. When \texttt{[japanese]} is given as an option to the class, \AC\ calls the \texttt{luatexja-fontspec} package~\cite{lua-jp}, which is a specialized module for typesetting Japanese.
@@ -225,7 +270,7 @@ What about support for scripts not shown in Table~\ref{tab:2}? Macros from \tex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{How to call a language\label{sec:6}}
-A language is called by \verb|\begin{selectlanguage}{<lang>}|, where \texttt{<lang>} is the lower-case name of the language.
+Call a language with \verb|\begin{selectlanguage}{<lang>}|, where \texttt{<lang>} is the lower-case name of the language.
For example, suppose that a Spanish language abstract is desired. The user puts \texttt{[spanish]} as a global option (this language has an \texttt{.ldf} file), and then writes:
\begin{quotation}
\noindent\hbox{}\verb|\begin{selectlanguage}{spanish}|\\
@@ -419,10 +464,12 @@ The main language of the document is English by default. This means that secti
To chose a different main language, give the option \texttt{[main=..]}, e.g., \texttt{[main=french]}. The standard caption and section names will follow \texttt{babel}'s dictionary for the language chosen. Users may additionally change ``Keywords'', ``Nomenclature'', ``Corresponding author'', and ``Joint first authors'' by renewing the commands \verb|\keywordname|, \verb|\nomname|, \verb|\CAwords|, and \verb|\JAwords|. Changes to the page footer are described in the \AC\ documentation~\cite{lienhard2021}. The pdf bookmark for ``Appendices'' may be changed by renewing \verb|\appendicesname|. (See the \texttt{babel} documentation \cite[\S 1.15]{bezos2020} if the dictionary for the main language lacks the correct word for, say, \verb|abstractname|).
-Note that some languages make characters active, which can have unexpected effects. For example, Spanish makes ``.'' an active character, which clashes with the default \texttt{dcolumn} decimal separator, \texttt{d\{n.m\}}~\cite{dpc}. \texttt{\textbackslash spanishdeactivate\{.\}} stops this behavior. Alternatively, the decimal separator can be changed to a comma by putting \texttt{\textbackslash newcolumntype\{d\}[1]\{D\{,\}\{,\}\{\#1}\}\} in the preamble.
-
I have not explored this usage in detail, and I would welcome comments from authors who attempt such conversions.
+Note that some languages make characters active, which can have unexpected effects. For example, Spanish makes ``.'' an active character, which clashes with the default decimal separator when using \texttt{dcolumn}'s \texttt{d\{n.m\}}~\cite{dpc}. The command \texttt{\textbackslash spanishdeactivate\{.\}} stops this behavior. As of August 2024, \texttt{asmeconf} defines a \texttt{dcolumn} type \texttt{,\{n.m\}} that uses a comma (not a period) as the decimal separator.
+%Alternatively, the decimal separator can be changed to a comma by putting \texttt{\textbackslash newcolumntype\{d\}[1]\{D\{,\}\{,\}\{\#1}\}\} in the preamble.
+
+
%%% CONCLUSIONS %%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Conclusion}
diff --git a/macros/latex/contrib/asmejour/README.md b/macros/latex/contrib/asmejour/README.md
index 69fe1e00fc..612e0b027a 100644
--- a/macros/latex/contrib/asmejour/README.md
+++ b/macros/latex/contrib/asmejour/README.md
@@ -1,7 +1,7 @@
#asmejour: A template for ASME journal papers#
- Version 1.22 dated 2024/02/06.
+ Version 1.23 dated 2024/07/24.
####Overview####
This class provides a template to format preprints in the style of journal papers published by the American Society of Mechanical Engineers.
@@ -67,6 +67,14 @@
####Change log####
+v1.23 (2024/07/24)
+ - Add class option for single-column formatting, \[singlecolumn\], as sometimes requested for review (thanks Lennart Hultgren)
+ - Change language sample from French to German, to avoid active characters (from Fourier to Pohlhausen)
+ - Reduce size of line number font
+ - Adjust code for \\appendix to better accommodate tagged pdf
+ - Correct bug in babel main language selection
+ - Miscellaneous code clean up and simplification
+
v1.22 (2024/02/06)
- The newtx package has dropped superiors option, so asmejour has dropped the \[superiors\] option and related code.
- Dropped legacy options \[lang, lang-second, lang-third\]
diff --git a/macros/latex/contrib/asmejour/asmejour-sample.bib b/macros/latex/contrib/asmejour/asmejour-sample.bib
index 3b715d3d05..08438fd94d 100644
--- a/macros/latex/contrib/asmejour/asmejour-sample.bib
+++ b/macros/latex/contrib/asmejour/asmejour-sample.bib
@@ -1,6 +1,6 @@
%% Sample bibliography file for asmejour.bst and asmejour.cls
%%
-%% Revised: 06 February 2024
+%% Revised: 21 July 2024
%% Copyright John H. Lienhard, MIT
%% Offered under the MIT license: https://ctan.org/license/mit
@@ -350,9 +350,22 @@
title = {Th\'{e}orie Analytique de la Chaleur},
publisher = {Firmin Didot, P\`{e}re et Fils},
address = {Paris},
- url = {https://archive.org/details/analyticaltheory00fourrich},
+ url = {https://archive.org/details/analyticaltheory00fourrich},
}
+@article{pohlhausen1921,
+ author = {Pohlhausen, E.},
+ title = {Der {W}\"{a}rmeaustausch zwischen festen K\"{o}rpern und {F}l\"{u}ssigkeiten mit kleiner reibung und kleiner {W}\"{a}rmeleitung},
+ journal = {Zeitschrift f\"{u}r {A}ngewandte {M}athematik und {M}echanik},
+ volume = {1},
+ number = {2},
+ pages = {115--121},
+ doi = {10.1002/zamm.19210010205},
+ year = {1921},
+}
+%url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/zamm.19210010205},
+
+
@techreport{reynolds1958,
author = {W. C. Reynolds and W. M. Kays and S. J. Kline},
title = {Heat transfer in the Incompressible Turbulent Boundary Layer. {I}---Constant Wall Temperature},
diff --git a/macros/latex/contrib/asmejour/asmejour-template.pdf b/macros/latex/contrib/asmejour/asmejour-template.pdf
index 6fc9631010..c15cc9f797 100644
--- a/macros/latex/contrib/asmejour/asmejour-template.pdf
+++ b/macros/latex/contrib/asmejour/asmejour-template.pdf
Binary files differ
diff --git a/macros/latex/contrib/asmejour/asmejour-template.tex b/macros/latex/contrib/asmejour/asmejour-template.tex
index 18ae24c057..7e3f8a2930 100644
--- a/macros/latex/contrib/asmejour/asmejour-template.tex
+++ b/macros/latex/contrib/asmejour/asmejour-template.tex
@@ -3,7 +3,7 @@
%%
%% This file is asmejour-template.tex, a template to format papers in the style of ASME journal papers.
%%
-%% This file is version 1.22 dated 2024/02/06
+%% This file is version 1.23 dated 2024/07/24
%%
%% Author: John H. Lienhard V
%% Department of Mechanical Engineering
@@ -33,8 +33,10 @@
%%
%% * Option to omit all ASME text fields from the footer [nofoot].
%%
+%% * Option for single column formatting [singlecolumn].
+%%
%% * Options for PDF/A compliance. With pdfTeX, [pdf-a] will produce PDF/A-3u compliance with sRGB OutputIntent.
-%% * [pdfapart= 1 or 2 or 3] and [pdfaconformance= b or u] can enable levels 1b, 2b, 2u, and 3b.
+%% * [pdfapart= 1 or 2 or 3] and [pdfaconformance= b or u] will select other levels: 1b, 2b, 2u, and 3b.
%% *
%% * Recently, LaTeX (2021 and later) has integrated support for pdf-a, through the \DocumentMetadata{..}
%% * command. This approach works with both pdfTeX and luaLaTeX. The asmeconf class supports this new feature,
@@ -59,8 +61,8 @@
%% * [hyphenate] allow hyphenation, with pdfTeX only (normally, the typewriter font is not hyphenated)
%%
%% * Options for the babel package to support passages in other languages (such as a translated
-%% * abstract in an appendix), e.g. [french]. The main language will default to English
-%% * unless a different main language is selected, e.g. [main=spanish]. See Appendix C for details.
+%% * abstract in an appendix), e.g. [german]. The main language will default to English
+%% * unless a different main language is selected, e.g. [main=spanish]. See Appendix B for details.
%%
%% For details of the newtx and mathalfa packages, refer to their documentation (available at CTAN: http://ctan.org).
%%
@@ -82,16 +84,16 @@
%% see https://www.latex-project.org/news/latex2e-news/ltnews35.pdf
%% Uncomment the next lines and omit the option [pdf-a], if you are using an up-to-date LaTeX platform
-%\DocumentMetadata{%
-% pdfstandard=A-3b,% A-2b, A-2u, A-3b, or A-3u (don't use u options with LuaLaTeX)
-% pdfversion=1.7,
-% lang=en-US,
-%}
+\DocumentMetadata{%
+ pdfstandard=A-3u,% A-2b, A-2u, A-3b, or A-3u (don't use u options with LuaLaTeX)
+ pdfversion=1.7,
+ lang=en-US,
+}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Class options are described above.
-\documentclass[upint,varvw,barcolor=Goldenrod3,mathalfa=cal=euler,balance,hyphenate,french,pdf-a]{asmejour}% subscriptcorrection,
+\documentclass[nocopyright,upint,varvw,barcolor=Goldenrod3,mathalfa=cal=euler,balance,hyphenate,german]{asmejour}% subscriptcorrection,french
%%%% pdf metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -121,11 +123,14 @@
% Use title case (upper and lower case letters)
% Note usage below for corresponding author.
-\SetAuthorBlock{Author Name[s]}{Department of Mechanical Engineering,\\
- Institution or Company Name,\\
- Street address,\\
- City, State, Country\\
- email: xxx@yyy.zzz}
+\SetAuthorBlock{John H.\ Lienhard\CorrespondingAuthor}{%
+ Fellow ASME\\
+ Rohsenow Kendall Heat Transfer Laboratory,\\
+ Department of Mechanical Engineering,\\
+ Massachusetts Institute of Technology,\\
+ Cambridge, MA 02139 USA\\
+ email: lienhard@mit.edu
+}
% To label one or more corresponding authors put "Name\CorrespondingAuthor". No space after "Name".
% An optional argument can be added if email is not in address block as
@@ -133,14 +138,12 @@
% Can also include multiple emails and use the command more than once for multiple corresponding authors,
% "Name\CorrespondingAuthor{write@to.him, write@to.her}"
-\SetAuthorBlock{John H.\ Lienhard V\CorrespondingAuthor}{%
-Fellow ASME\\
-Rohsenow Kendall Heat Transfer Laboratory,\\
-Department of Mechanical Engineering,\\
-Massachusetts Institute of Technology,\\
-Cambridge, MA 02139 USA\\
-email: lienhard@mit.edu
-}
+\SetAuthorBlock{Author Name[s]}{Department of Mechanical Engineering,\\
+ Institution or Company Name,\\
+ Street address,\\
+ City, State, Country\\
+ email: xxx@yyy.zzz
+}
%%% Change to your paper title. Can insert line breaks if you wish (otherwise breaks are selected automatically).
\title{Preprint Template for ASME\\ Journal Papers: asmejour.cls}
@@ -164,6 +167,7 @@ This paper is an example and {\upshape\LaTeX} template for the {\upshape\texttt{
\maketitle %% This command creates the author/title/abstract block. Essential!
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%% End of fields to be completed. Now write! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -227,7 +231,7 @@ Section, subsection, and subsubsection headings should be in title case (first l
%% captions go below figures
\begin{figure}
-\centering\includegraphics[width=\linewidth]{sample-figure-1.pdf}
+\centering\includegraphics[width=\linewidth,alt={Linearization errors}]{sample-figure-1.pdf}
\caption{Caption with math, eqn.~\eqref{eqn:1}: $\Delta T/T_m$ vs.\ $\Delta T/T_1$~\cite{lienhard2019}\label{fig:1}}
\end{figure}
@@ -466,8 +470,12 @@ As of June 2022, the \LaTeX 3 team has added native support for PDF/A in the \La
\subsection{Typewriter Font Options} This font is the sans-serif, monospaced font \texttt{inconsolata}. By default, the word spacing is variable, but option \texttt{[mono]} ends this behavior. A slashed zero is the default; option \texttt{[var0]} removes the slash. Option \texttt{[hyphenate]} enables hyphenation of the typewriter font when running \hologo{pdfTeX}.
+\subsection{Single column layout} The option \texttt{[singlecolumn]} switches from two-column to single-column layout.
%%%%%%%%%%%%%%% begin two column table %%%%%%%%%%%%%%%%%%
+%
+% note: the fourth column could be a dcolumn instead of using \makebox, with d{1.4} replacing c column.
+%
\begin{table*}[t]
\caption{A table spanning two columns}\label{tab:4}%
\centering{%
@@ -478,7 +486,8 @@ As of June 2022, the \LaTeX 3 team has added native support for PDF/A in the \La
\multicolumn{1}{c!{\hspace*{3.em}}}{$\textrm{erfc}(x)$} &
\multicolumn{1}{c}{$x$} &
\multicolumn{1}{c}{$\textrm{erf}(x)$} &
-\multicolumn{1}{c@{\hspace*{1.5em}}}{$\textrm{erfc}(x)$} \\ \midrule
+\multicolumn{1}{c@{\hspace*{1.5em}}}{$\textrm{erfc}(x)$} \\
+\midrule
0.00 & 0.00000 & 1.00000 & 1.10 & 0.88021 & 0.11980 \\
0.05 & 0.05637 & 0.94363 & 1.20 & 0.91031 & 0.08969 \\
0.10 & 0.11246 & 0.88754 & 1.30 & 0.93401 & 0.06599 \\
@@ -554,7 +563,7 @@ Acknowledge individuals, institutions, or companies that supported the authors i
\entry{b}{bulk value}
\entry{$\infty$}{free stream value}
-\end{nomenclature}
+\end{nomenclature}
%%%%%%%%%%%%%%% APPENDICES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -571,31 +580,30 @@ Acknowledge individuals, institutions, or companies that supported the authors i
This text is just for illustration. The radiation fractional function may be written in terms of the incomplete zeta function for convenience:
\begin{align}
-f(\lambda T) = {}& \frac{1}{\sigma T^4} \int_0^\lambda\frac{2\pi h c_o^2}{\lambda^5 \left[ \exp (h c_o/k_B T \lambda) - 1\right] } \, d\lambda \\
- = {}& \frac{1}{\sigma T^4}\frac{2\pi k_B^4 T^4}{h^3c_o^2}\int^\infty_{c_2/\lambda T}\frac{t^3}{e^t -1}\, dt\label{eqn:zeta}
+f(\lambda T) &= \frac{1}{\sigma T^4} \int_0^\lambda\frac{2\pi h c_o^2}{\lambda^5 \left[ \exp (h c_o/k_B T \lambda) - 1\right] } \, d\lambda \\
+ &= \frac{1}{\sigma T^4}\frac{2\pi k_B^4 T^4}{h^3c_o^2}\int^\infty_{c_2/\lambda T}\frac{t^3}{e^t -1}\, dt\label{eqn:zeta}
\end{align}
When $\lambda T \rightarrow \infty$, $f = 1$ and the last equation yields the well-known result
\begin{equation}
- {\sigma T^4} =\frac{2\pi k_B^4 T^4}{h^3c_o^2} \underbrace{\int_0^\infty \frac{t^3}{e^t - 1} \, dt}_{\equiv\mspace{2mu} \zetaup(4)\Gamma(4)}
+\sigma T^4 =\frac{2\pi k_B^4 T^4}{h^3c_o^2} \underbrace{\int_0^\infty \frac{t^3}{e^t - 1} \, dt}_{\equiv\mspace{2mu} \zetaup(4)\Gamma(4)}
\end{equation}
where the Gamma function $\Gamma(4) = 3!$ and the Riemann zeta function, $\zetaup(4)$, has the indicated integral representation \cite[\S13.12]{ww1927}. A classical result due to Euler \cite{euler1740} gives $\zetaup(4) = \pi^4/90$ (see also \cite[\S167]{euler1748}), from which we recover the usual definition of the Stefan-Boltzmann constant, $\sigma$.
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Language Support}
+\section{Language Support\label{app:language}}
ASME publishes in English, but the \texttt{babel} package is loaded for users who may wish to include other languages.
For example, an author might wish to include an appendix that provides the abstract in another language.
When more than one language option is included in \verb|\documentclass[..]{asmejour}|, English will be
assumed to be the main language of the document. (To choose a different main language, set \texttt{[main=..]}).
-If no language options are given, the package defaults to English. As an example, a passage in French is
-shown in \selectlanguage{french}\appendixname~\ref{app:fourier}\selectlanguage{english}.
+If no language options are given, the package defaults to English. As an example, a passage in German is
+shown in \selectlanguage{german}\appendixname~\ref{app:pohlhausen}\selectlanguage{english}.
The standard caption and section names will follow \texttt{babel}'s dictionary for primary languages other than English. Users may additionally change ``Keywords'', ``Nomenclature'', and ``Corresponding author'' by renewing the commands \verb|\keywordname|, \verb|\nomname|, and \verb|\CAwords|. Changes to the page footer were described in Sec.~\ref{sec:footer}. The pdf bookmark for ``Appendices'' by be changed by renewing \verb|\appendicesname|.
The font encoding is set to T1 and utf-8 input is supported:
-%% If you have trouble with the next line (or the French text that follows), your file may not be saved in utf-8 format. You can delete these lines to resolve the issue.
+%% If you have trouble with the next line, your file may not be saved in utf-8 format. You can delete these lines to resolve the issue.
\typeout{If you have trouble with the next line, your file may not be saved in utf-8 format. You can delete that line to resolve the issue.}
\ifluatex\typeout{Under LuaLaTeX, some of these accents must be obtained as escaped characters, with \=a, \c{e}, \l, \.o, \oe, \v{z}, \'z, etc.}\fi
àáâäæãåā èéęëêēė îïíīįì ôöòóœøōõ ûüùúū çćč ł ñń ßśš ÿ žźż
@@ -604,18 +612,13 @@ No effort has been made to support customization of language-specific fonts (som
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\selectlanguage{french}
-\section{Discours Préliminaire de Fourier}\label{app:fourier}
-
-Les causes primordiales ne nous sont point con­nues; mais elles sont assujetties à des lois simples et constantes, que l'on peut découvrir par l'obser­vation, et dont l'étude est l'objet de la philosophie naturelle.
-
-La chale ur pénètre, comme la gravité, toutes les substances de l'univers, ses rayons occupent toutes les parties de l'espace. Le but de notre ouvrage est d'exposer les lois mathématiques que suit cet élé­ment. Cette théorie formera désormais une des branches les plus importantes de la physique gé­nérale~\cite{fourier1822}.
+\selectlanguage{german}
+\section{Der Wärmeaustausch zwischen festen Körpern und Flüssigkeiten mit kleiner reibung und kleiner Wärmeleitung (von E. Pohlhausen)\label{app:pohlhausen}}
+In einer strömenden Flussigkeit sind Wärmeleitung und Wärmekonvektion Vorgänge, die mit der inneren Reibung (oder Impulsleitung) und mit der Impulskonvektion große Aehnlichkeit besitzen. Mathematisch findet dies seinen Ausdruck in dem gleichartigen Bau der Differentialgleichungen, die einerseits für die Temperatur und anderseits für den Geschwindigkeitsvektor in der Flüssigkeit bestehen. Man kann daraus auf eine Beziehung
+zwischen dem Wärmeaustanch und dem Reibungswiderstand schließen, die eine strömende Flüssigkeit an einem festen Körper hervorrufen. Dies ist zuerst von Prandtl ausgesprochen und durchgeführt worden, und zwar für turbulente Vorgänge, unter der vereinfachenden Annahme von Wärmequellen und -senken im Innern der Flüssigkeit~\cite{pohlhausen1921}.
\selectlanguage{english}
-% When you drop the [french] option, delete your .aux file as well, since [french] sets ":" as an active character.
-
-
%%%%%%%%%%%%% BIBLIOGRAPHY %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\nocite{*} %% <=== Delete this line - unless you wish to typeset the entire contents of your .bib file.
diff --git a/macros/latex/contrib/asmejour/asmejour.cls b/macros/latex/contrib/asmejour/asmejour.cls
index 095964ffc7..a8cd43eae2 100644
--- a/macros/latex/contrib/asmejour/asmejour.cls
+++ b/macros/latex/contrib/asmejour/asmejour.cls
@@ -4,10 +4,9 @@
%%
%% The asmejour.cls file should be used with the files asmejour.bst (for citations) and asmejour-template.tex.
%%
-%%
%% This file's version and date are:
- \def\versionno{1.22}
- \def\versiondate{2024/01/30\space}
+ \def\versionno{1.23}
+ \def\versiondate{2024/07/24\space}
%%
%% Author: John H. Lienhard V
%% Department of Mechanical Engineering
@@ -22,14 +21,14 @@
%% 4. Support citations, footnotes, and bold face math in section headings
%% 5. Provide optional line numbers for editing and review
%% 6. Support balancing height of columns on the last page
-%% 7. Support the archival PDF/A standards 1b, 2b, 2u, 3b, and 3u
+%% 7. Support archival PDF/A standards
%% 8. Provide copyright notices for government employees and government contractors
%% 9. Enable various math and text features from the newtxmath, mathalfa, and newtxtext packages
%% 10. Support inclusion of passages in languages other than English
%%
%% This class is compatible with both pdfLaTeX and LuaLaTeX. All packages required by the class
-%% are in standard distributions, such as TeXLive, and are also available at CTAN (https://ctan.org/).
-%% The use of an up-to-date (Feb. 2020 or later) and complete LaTeX distribution is strongly recommended.
+%% are in standard distributions, such as TeX Live, and are also available at CTAN (https://ctan.org/).
+%% The use of an up-to-date (Nov. 2022 or later) and complete LaTeX distribution is strongly recommended.
%%
%% The title block is set by specific commands that are described in the asmejour-template.tex file.
%%
@@ -57,72 +56,79 @@
%% whether in an action of contract, tort or otherwise, arising from, out of or in connection with the
%% software or the use or other dealings in the software.
%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{asmejour}[\versiondate asmejour paper format]
-\LoadClass[twoside,9pt,twocolumn]{extarticle}
-
-\ifdefined\NewDocumentCommand\else
- \RequirePackage{xparse}[2020/02/25]
-\fi
+\LoadClass[twoside,9pt]{extarticle}% twocolumn format initiated in \MakeTitle command 2024/07/20
\RequirePackage{iftex}% provides \ifpdftex, etc.
\RequirePackage{ifthen}
-%%%%%%%%%%%%% Test compatibility of older distributions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ExplSyntaxOn
+ \str_const:Nn \ClassName {asmejour}
+\ExplSyntaxOff
-\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}% compare version to date; \If... added to latex 2020/10/01
-\providecommand\IfPackageAtLeastTF{\@ifpackagelater}% compare version to date; \If... added to latex 2020/10/01
-\providecommand\IfPackageLoadedTF{\@ifpackageloaded}% \If...added to latex 2021/11/15
+%%%%%%%%%%%%% Some compatibility for older distributions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\IfFormatAtLeastTF{2020/02/25}{%
- \ClassInfo{asmeconf}{Your LaTeX format is dated \fmtversion. LaTeX distributions 2020/10/01 or later are strongly recommended, for best results}
- }{%
- \ClassError{asmeconf}{Your LaTeX format is dated \fmtversion. Formats dated 2020/10/01 or later are recommended for the asmejour class. Older formats may generate errors or fail entirely!}{Please UPDATE your LaTeX distribution to obtain best results. TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. You can try to click past the errors for now, but your abstract will probably not compile properly if you lack the xparse package [2020/02/25], and the code will crash entirely if you lack the iftex package [2019/11/07].}%
+\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}% compare version to date; \If... added to latex 2020/10/01
+\providecommand\IfPackageAtLeastTF{\@ifpackagelater}% compare version to date; \If... added to latex 2020/10/01
+\providecommand\IfPDFManagementActiveTF{\@secondoftwo}% \If... added to latex 2021/07/23
+\providecommand\IfPackageLoadedTF{\@ifpackageloaded}% \If...added to latex 2021/11/15
+\providecommand\ClassNoteNoLine[2]{\typeout{^^JClass Note #1: #2.^^J}}% log & terminal note... added to latex 2021/11/15
+
+\IfFormatAtLeastTF{2020/10/01}{\relax}{%
+ \ClassError{\ClassName}{Your LaTeX format is dated \fmtversion. Formats dated 2020/10/01 or later are recommended for the asmejour class. Older formats may generate errors or fail entirely!}{Please UPDATE your LaTeX distribution to obtain best results. TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. You can try to click past any errors for now, but your abstract will not compile properly if you lack the xparse package [2020/02/25], and the code will crash entirely if you lack the iftex package [2019/11/07].}%
}
-
-\DeclareDocumentCommand\LogNote{m}{%
- \IfFormatAtLeastTF{2021/11/15}{%
- \ClassNoteNoLine{asmejour}{#1}% Added to LaTeX in Nov. 2021
- }{%
- \ClassWarningNoLine{asmejour}{#1}%
+
+% check whether pdfmanagement (\DocumentMetadata) has been loaded (else fall back to hyperxmp and bookmark packages after loading hyperref)
+\newif\ifasme@pdfmanagement
+\IfPDFManagementActiveTF{
+ \asme@pdfmanagementtrue
+}{
+ \asme@pdfmanagementfalse
+ \ClassWarningNoLine{\ClassName}{pdfmanagement is not active. Will load hyperxmp and bookmark packages instead}
+}
+
+% Allow pre 2021/11/15 formats to see the graphicx alt key without causing an error
+\IfFormatAtLeastTF{2021/11/15}{
+ \relax
+}{
+ \AtBeginDocument{
+ \IfPackageLoadedTF{graphicx}{\define@key{Gin}{alt}{}}{\relax}
}
}
-%% Test whether \DocumentMetadata has been loaded (Thank you Ulrike Fischer)
-\newif\if@asme@pdfmanagement
-\ExplSyntaxOn
-\bool_if:nTF
- {
- \bool_lazy_and_p:nn
- {\cs_if_exist_p:N \pdfmanagement_if_active_p:}
- { \pdfmanagement_if_active_p: }
- }
- {
- \@asme@pdfmanagementtrue
- }
- {
- \@asme@pdfmanagementfalse
- }
-\ExplSyntaxOff
+% Enable pre-2020/10 formats to access essential macros later moved into LaTeX kernel
+\ifdefined\NewDocumentCommand\else
+ \RequirePackage{xparse}[2020/02/25]
+\fi
+
+% Provide pre-2020/10 installations with basic unicode character mappings
+\IfFormatAtLeastTF{2020/10/01}{\relax}{%
+ \pdfgentounicode=1 %% enable CMaps; was moved into the latex kernel Oct 2020
+ \input glyphtounicode.tex %% lists of mappings; was moved into the latex kernel Oct 2020
+}
-%%%%%%%%%%%%%% Options for the class %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%% Options for the class %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{kvoptions}% this package calls kvsetkeys
\SetupKeyvalOptions{
- family=asmejour,
+ family=\ClassName,
prefix=asmejour@,
setkeys=\kvsetkeys,
}
%% for mathalfa, so we may pass options in this format: mathalfa=cal=euler, mathalfa=frak=boondox
-\define@key{asmejour}{mathalfa}{%
+\define@key{\ClassName}{mathalfa}{%
\PassOptionsToPackage{#1}{mathalfa}%
}
+%% Option to obtain line numbers [singlecolumn], 2024/07/20
+\DeclareBoolOption{singlecolumn}
+
%% Option to obtain line numbers [lineno]
\DeclareBoolOption{lineno}
@@ -132,6 +138,12 @@
%% Option to omit lists of figures and tables
\DeclareBoolOption{nolists}
+%% Option to omit ASME copyright notice [nocopyright]
+\DeclareBoolOption{nocopyright}
+
+%% Option to omit ASME footers [nofoot]
+\DeclareBoolOption{nofoot}
+
%% Option for copyright notice if all authors are government employees [govt]
\DeclareBoolOption{govt}
@@ -141,57 +153,54 @@
%% Option for government contractor copyright notice [contractor]
\DeclareBoolOption{contractor}
-%% set [barcolor=] to a color name defined by xcolor package
+%% set key [barcolor=] to pass a color name defined by xcolor package
\DeclareStringOption[black]{barcolor}
-%% the key main= passes the choice of main language to babel
+%% the key [main= ] to pass the choice of main language to babel
\newif\ifaj@mainset\aj@mainsetfalse
-\define@key{asmejour}{main}[english]{%
+\define@key{\ClassName}{main}{%
\PassOptionsToPackage{main=#1,#1}{babel}% added #1 resolves conflicts between certain .ldf files under "main=".
\aj@mainsettrue
- \ifthenelse{\equal{#1}{english}}{%
- \PassOptionsToPackage{pdflang=en}{hyperref}}{%
- \LogNote{Selecting #1 as the primary language}
- }%
+ \ClassNoteNoLine{\ClassName}{Selecting #1 as the primary language}
}
-%% if main language was not chosen explicitly, default to English
-\ifaj@mainset\relax\else
- \PassOptionsToPackage{main=english}{babel}%
- \PassOptionsToPackage{pdflang=en}{hyperref}
- \ClassInfo{Selecting English as the primary language, since main= not set}%
-\fi
-
%% Suppress warnings about unused global options, 2021/12/01
-\DeclareDefaultOption{}% suppress warning about unused mathalfa option
+\DeclareDefaultOption{}
-\ProcessKeyvalOptions{asmejour}
+\ProcessKeyvalOptions{\ClassName}
%% Turn off these keys now that we're done with them
\NewDocumentCommand\aj@DisableOption{m}{%
\DisableKeyvalOption[%
action=ignore,%
- class=asmejour%
+ class=\ClassName%
]{#1}{\@KeyFamily}%
}
\NewDocumentCommand\@DisableKeys{>{\SplitList{;}}m}{\ProcessList{#1}{\aj@DisableOption}}
-\def\@KeyFamily{asmejour}
-\@DisableKeys{mathalfa;barcolor;lineno;balance;nolists;govt;govtsome;contractor;main}
+\def\@KeyFamily{\ClassName}
+\@DisableKeys{mathalfa;singlecolumn;lineno;balance;nolists;nocopyright;nofoot;govt;govtsome;contractor;barcolor;main}
+
+
+%% if main language was not was chosen explicitly, default to English
+\ifaj@mainset\relax\else
+ \PassOptionsToPackage{main=english}{babel}%
+ \ClassNoteNoLine{\ClassName}{Selecting English as the primary language, since main= not set}%
+\fi
-%%%%%%% PDF/A Compliance Keys %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%% PDF/A Compliance Keys %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% new pdf management in LaTeX, with \DocumentMetaData{..}, is preferred to this approach.
\newif\ifaj@setpdfa\aj@setpdfafalse
\newif\ifaj@pdfaone\aj@pdfaonefalse
-\if@asme@pdfmanagement\else
+\ifasme@pdfmanagement\else
\SetupKeyvalOptions{
family=pdfaopt,
- prefix=pdafopt@,
+ prefix=pdfaopt@,
setkeys=\kvsetkeys,
}
@@ -201,7 +210,7 @@
\define@key{pdfaopt}{pdf-a}[true]{%
\aj@setpdfatrue
\PassOptionsToPackage{pdfa}{hyperref}
- \AtBeginDocument{\hypersetup{pdfapart=3,pdfaconformance=u}}% note: hyperref takes these options if hyperxmp is loaded
+ \AtBeginDocument{\hypersetup{pdfapart=3,pdfaconformance=u}}% hyperref takes these options if hyperxmp is loaded
}
%%% to select part 1, 2 or 3
\define@key{pdfaopt}{pdfapart}[3]{%
@@ -209,7 +218,7 @@
\AtBeginDocument{\hypersetup{pdfapart=\asmejour@tempa}}
\ifthenelse{\equal{#1}{1}}{\aj@pdfaonetrue}{\relax}%
}
- %% to select conformance b or u. NB: a is not possible with pdfLaTeX, and u is not possible with 1.
+ %% to select conformance b or u. NB: a is not currently possible with pdfLaTeX; u not possible with 1.
\ExplSyntaxOn
\define@key{pdfaopt}{pdfaconformance}[u]{%
\str_set:Ne \l_tmp_str { \str_uppercase:n {#1} }
@@ -236,9 +245,10 @@
\pdfminorversion=7 % this selection is not required
\fi
\else
- \ifaj@setpdfa\ClassWarningNoLine{asmejour}{pdf-a option requires pdfLaTeX engine. Under LuaLaTeX, use %
- \protect\DocumentMetadata{pdfstandard=A-3b} before \protect\documentclass[..]{asmeconf}}\fi%
- \ifx\directlua\undefined\else
+ \ifaj@setpdfa\ClassWarningNoLine{\ClassName}{pdf-a option requires pdfLaTeX. Under LuaLaTeX, use %
+ \protect\DocumentMetadata{pdfstandard=A-3b} before \protect\documentclass[..]{\ClassName}}%
+ \fi
+ \ifx\directlua\undefined\else % default under lualatex is 1.4
\directlua{
if pdf.getminorversion() \string~= 7 then
if (status.pdf_gone and status.pdf_gone > 0)
@@ -248,58 +258,28 @@
pdf.setminorversion(7)
end
end
+ }
\fi
- }% will lose some accented characters this way... better to use fontspec, if the system fonts exist.
\fi
\fi
-%%%%%%%%%% Further class options %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%% Option to omit ASME footer
-\DeclareOption{nofoot}{%
- \AtBeginDocument{\pagestyle{plain}%
- \fancypagestyle{title}{%
- \fancyhf{}
- \fancyfoot[CE,CO]{\thepage}
- }
- }
-}
-
-%% Option to omit ASME copyright
-\DeclareOption{nocopyright}{%
- \AtBeginDocument{\fancypagestyle{title}{%
- \fancyhf{}
- \fancyfoot[RO]{\large\sffamily \@PreprintStringR\space\space\bfseries/\space\space\@PaperNumber\thepage}
- \fancyfoot[LO]{\large\bfseries\sffamily Journal of \@JourName}
- \fancyfoot[CO]{}
- }
- }
-}
+%%%%%%%%% Various font-related options %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Option for slightly larger small capitals font [largesc], corrected 2021/01/29
\DeclareOption{largesc}{\PassOptionsToPackage{largesc=true}{newtxtext}}% largesc is a boolean key in newtxtext
-%% ASME word separation is greater than newtxtext defaults so change these parameters.
-\PassOptionsToPackage{spacing=0.3em, stretch=0.18em, shrink=0.10em}{newtxtext}% increased shrink from 0.08, 2021/01/30
-
%% Disable newtxtext osf option, which is not appropriate for documents in this class
\DeclareOption{osf}{%
\PassOptionsToPackage{lining}{newtxtext}%
}
-%% Option to hyphenate the typewriter font [hyphenate]
-\DeclareOption{hyphenate}{%
- \PassOptionsToPackage{hyphenate}{inconsolata}%
- \LogNote{Allowing hyphenation of typewriter font}%
-}
-
\DeclareOption{hyphenate}{%
\ifpdftex
\PassOptionsToPackage{hyphenate}{inconsolata}% hyphenate is a key via xkeyval in inconsolata
- \LogNote{Allowing hyphenation of typewriter font}%
+ \ClassNoteNoLine{\ClassName}{Allowing hyphenation of typewriter font}%
\else
- \ClassWarningNoLine{asmejour}{The [hyphenate] option is only supported with pdftex. It will be ignored}%
+ \ClassWarningNoLine{\ClassName}{The [hyphenate] option is only supported with pdftex. It will be ignored}%
\fi
}
@@ -329,7 +309,7 @@
\ProcessOptions \relax
-%%%%%%%%%%%% Page size, bibliography, graphics, color, etc. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%% Page size, bibliography, graphics, color %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage[paperheight=285.7mm, paperwidth=215.900mm, left=21.100mm, right=21.100mm, top=15.9mm, bottom = 24mm, footskip=8mm]{geometry}
\setlength\columnsep{4.5mm}
@@ -342,22 +322,8 @@
\renewcommand*{\bibfont}{\footnotesize}
\RequirePackage{graphicx}
-\RequirePackage[dvipsnames,svgnames,x11names]{xcolor}% remove obsolete options, 2023/10/23
+\RequirePackage[dvipsnames,svgnames,x11names]{xcolor}% removed obsolete options, 2023/10/23
-% Allow pre 2021/11/15 formats to see the graphicx alt key without causing an error, in preparation for tagged pdf
-\IfFormatAtLeastTF{2021/11/15}{
- \relax
-}{
- \AtBeginDocument{
- \IfPackageLoadedTF{graphicx}{\define@key{Gin}{alt}{}}{\relax}
- }
-}
-
-% Nice solution from DPC to prevent aux file errors when switching from pdflatex to lualatex
-\ifx\directlua\undefined
- \AtBeginDocument{\immediate\write\@auxout{\detokenize{%
- \ifx\directlua\undefined\else\endinput\fi}}}
-\fi
%%%%%%%%%%%%% Table related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -383,7 +349,9 @@
\ifpdftex
\RequirePackage[T1]{fontenc}
\RequirePackage[utf8]{inputenc}% for backward compatibility with pre-2018 LaTeX distributions
- \RequirePackage[helvratio=0.91]{newtxtext}% add this scaling 2022/06/26
+ %% ASME word separation is greater than newtxtext defaults so change these parameters.
+ %% increased shrink from 0.08, 2021/01/30; add this helvetica scaling 2022/06/26
+ \RequirePackage[helvratio=0.91, spacing=0.3em, stretch=0.18em, shrink=0.10em]{newtxtext}% default {0.25em,0.2em,0.1em}
\RequirePackage[varl,varqu]{inconsolata}% sans typewriter font; restored varl, varqu 2020/08/10
\RequirePackage[]{newtxmath}
\else % use lualatex with newtxmath and fontspec for text primary fonts. Revised 2023/10/21.
@@ -396,20 +364,20 @@
%
\RequirePackage[varqu,varl]{inconsolata} % typewriter font for math
\renewcommand\rmdefault{ntxtlf} % roman font for math
- \DeclareFontFamily{T1}{\sfdefault}{} % sf for math
+ \DeclareFontFamily{T1}{\sfdefault}{} % sf for math
\DeclareFontShape{T1}{\sfdefault}{m}{n}{<-> s*[0.94] ec-qhvr}{} %% see t1qhv.fd; 0.9-->0.94 2022/01/15
\RequirePackage[]{newtxmath} % newtxmath still handles mathematics
\RequirePackage[no-math]{fontspec}
\defaultfontfeatures{Ligatures=TeX,}
%
- \def\FontWarning{For luaLaTeX, you MUST have these OpenType fonts installed as system fonts on your computer: TeX Gyre Termes and TeX Gyre Heros (from \string http://www.gust.org.pl/projects/e-foundry/tex-gyre) and Inconsolatazi4 (\string https://ctan.org/tex-archive/fonts/inconsolata/opentype). If DON'T have these fonts, you will see ERROR messages!}
+ \def\FontWarning{For luaLaTeX, you MUST have these OpenType fonts installed as system fonts on your computer: TeX Gyre Termes and TeX Gyre Heros (from \string http://www.gust.org.pl/projects/e-foundry/tex-gyre) and Inconsolatazi4 (\string https://ctan.org/tex-archive/fonts/inconsolata/opentype). If you DON'T have these fonts, you will see ERROR messages!}
%
- \IfFontExistsTF{TeXGyreTermesX}{}{\ClassWarning{asmeconf}{\FontWarning} }
- \IfFontExistsTF{texgyreheros}{}{ \ClassWarning{asmeconf}{\FontWarning} }
- \IfFontExistsTF{Inconsolatazi4}{}{\ClassWarning{asmeconf}{\FontWarning} }
+ \IfFontExistsTF{TeX Gyre Termes}{}{\ClassWarningNoLine{\ClassName}{\FontWarning} }
+ \IfFontExistsTF{texgyreheros}{}{ \ClassWarningNoLine{\ClassName}{\FontWarning} }
+ \IfFontExistsTF{Inconsolatazi4}{}{\ClassWarningNoLine{\ClassName}{\FontWarning} }
%
- \setmainfont{TeXGyreTermesX}[% Presumes these are system fonts! Available at: http://www.gust.org.pl/projects/e-foundry/tex-gyre
- WordSpace = {1,1.4,1},%% This stretch matches newtxtext a little better. 1.4
+ \setmainfont{TeXGyreTermes}[% Presumes these are system fonts! Available at: http://www.gust.org.pl/projects/e-foundry/tex-gyre
+ WordSpace = {1.20,1.43,1.2},%% This stretch matches newtxtext a little better (reset 2024/07/23)
Extension = .otf,
UprightFont = *-Regular,
ItalicFont = *-Italic,
@@ -418,7 +386,8 @@
Numbers = Lining,
]
\setsansfont{texgyreheros}[% Presumes these are system fonts! Available at: http://www.gust.org.pl/projects/e-foundry/tex-gyre
- WordSpace = {1,1.4,1},
+ WordSpace = {1.20,1.43,1.2},%% This stretch matches newtxtext a little better (reset 2024/07/23)
+% WordSpace = {1,1.4,1},
Extension = .otf,
UprightFont = *-regular,
ItalicFont = *-italic,
@@ -443,7 +412,7 @@
\RequirePackage{bm}% load after all math for expanded access to bold math
-%% In addition to the word spacing options declared in line 235...
+%% In addition to the word spacing options declared in line 371...
%% Relative to size9.clo: leading reduced to 10 pt; displayskips made greater
\renewcommand\normalsize{%
\@setfontsize\normalsize\@ixpt{10\p@}% % <== was \@xipt
@@ -464,13 +433,12 @@
\newcommand*{\CondSans}{\fontencoding{T1}\fontfamily{qhvc}\selectfont}% remove extra \selectfont, 2023/10/21
\renewcommand\huge{\@setfontsize\huge{14}{14}} %... for author names only
\newcommand*{\CondSansBold}{\renewcommand\bfdefault{b}\fontencoding{T1}\fontfamily{qhvc}\selectfont\bfseries}
-\renewcommand\Huge{\@setfontsize\Huge{26.5}{26.5}} %... for title font only
+\renewcommand\Huge{\@setfontsize\Huge{26.5}{26.5}} %... for title only
\RequirePackage{metalogo,hologo}% Access to various LaTeX logos (for use in the documentation)
-%% This provides sans serif italic and sans serif bold italic math.
-%% It's intended for use in the figure and table captions.
-%% Fonts are from newtxsf package.
+%% This provides sans serif italic and sans serif bold italic math, against with fonts from newtxsf.
+%% For use in the figure and table captions.
\DeclareMathVersion{sansbold}
\SetSymbolFont{letters}{sansbold}{OML}{ntxsfmi}{b}{it}
\SetSymbolFont{lettersA}{sansbold}{U}{ntxsfmia}{b}{it}
@@ -480,8 +448,8 @@
\SetSymbolFont{operators}{sansbold}{\encodingdefault}{\sfdefault}{\bfdefault}{n}
\SetMathAlphabet{\mathsf}{sansbold}{\encodingdefault}{\sfdefault}{b}{n}% \mathsf is upright
-%% These lines are to provide math accents for the sans and sansbold math versions.
-%% The accents from ntxsfmi work normally with regular times fonts. Added 2021/01/27
+%% Provide math accents for the sans and sansbold math versions. Accents from ntxsfmi work normally
+%% with regular times fonts. 2021/01/27
\DeclareSymbolFont{lettersAB}{U}{ntxsfmia}{m}{it}
\SetSymbolFont{lettersAB}{normal}{U}{ntxsfmia}{m}{it}
\SetSymbolFont{lettersAB}{bold}{U}{ntxsfmia}{b}{it}
@@ -556,8 +524,7 @@
\DeclareMathSymbol{\sfhslash}{\mathalpha}{lettersAB}{52}% this is not upright
\DeclareMathSymbol{\sfhbar}{\mathalpha}{lettersAB}{53}% this is not upright
-%%% sans math version, potential value with PGFPlots, and provisionally called in subfigure captions.
-%%% this is experimental, still needs stress testing. 2021/01/30
+%%% sans math version, potential value with PGFPlots, called in subfigure captions. 2021/01/30
\DeclareMathVersion{sans}
\SetSymbolFont{letters}{sans}{OML}{ntxsfmi}{m}{it}
\SetSymbolFont{lettersA}{sans}{U}{ntxsfmia}{m}{it}
@@ -569,7 +536,7 @@
\SetMathAlphabet{\mathsf}{sans}{\encodingdefault}{\sfdefault}{m}{n}
-%%%%%%%%%%%%%%%%% Some adjustments to math layout %%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%% Some adjustments to math layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setlength{\jot}{10pt}% <== default is 3pt
@@ -580,7 +547,7 @@
\allowdisplaybreaks % ASME allows these breaks
-%%%%%%%%%%%%%%%%% Equation and Line Numbering %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%% Equation and Line Numbering %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{etoolbox}% patching amsmath
@@ -598,37 +565,36 @@
\ifasmejour@lineno
\RequirePackage[switch,mathlines]{lineno}%
- \renewcommand{\linenumberfont}{\normalfont\footnotesize\color{red}}%
+ \renewcommand{\linenumberfont}{\normalfont\scriptsize\color{red}}%
\AtBeginDocument{\linenumbers}%
\ifasmejour@balance
- \ClassWarningNoLine{asmejour}{Package lineno loaded, so final column balancing will be disabled}%
+ \ClassWarningNoLine{\ClassName}{Package lineno loaded, so final column balancing will be disabled}%
\fi
%%% Patch to allow line numbering in AMS math environments.
%%% This patch is for lineno versions earlier than v5.2 [2023/05/19]. As of mid-2023, the lineno package
%%% has been corrected to account for the AMS math environments. Retaining temporarily for backward compatibility.
%%% postdisplaypenalty adjusted to avoid extra line number at end, see: https://tex.stackexchange.com/a/461192/
- %%% multline has some additional problem that puts an extra line number above it.
\IfPackageAtLeastTF{lineno}{2023/05/19}{\relax}{
- \NewDocumentCommand{\ac@losepostpenalty}{}{\patchcmd{\linenomathWithnumbers}{\advance\postdisplaypenalty\linenopenalty}{}{}{}}
+ \NewDocumentCommand{\aj@losepostpenalty}{}{\patchcmd{\linenomathWithnumbers}{\advance\postdisplaypenalty\linenopenalty}{}{}{}}
%
- \NewDocumentCommand{\ac@FixAMSMath}{m}{%
- \AtBeginEnvironment{#1}{\ac@losepostpenalty\linenomath}%
+ \NewDocumentCommand{\aj@FixAMSMath}{m}{%
+ \AtBeginEnvironment{#1}{\aj@losepostpenalty\linenomath}%
\AtEndEnvironment{#1}{\endlinenomath}%
- \AtBeginEnvironment{#1*}{\ac@losepostpenalty\linenomath}%
+ \AtBeginEnvironment{#1*}{\aj@losepostpenalty\linenomath}%
\AtEndEnvironment{#1*}{\endlinenomath}%
}
%
- \NewDocumentCommand{\ac@FixAll}{>{\SplitList{;}}m}{\ProcessList{#1}{\ac@FixAMSMath}}
+ \NewDocumentCommand{\aj@FixAll}{>{\SplitList{;}}m}{\ProcessList{#1}{\aj@FixAMSMath}}
%
- \ac@FixAll{align;alignat;gather;flalign;multline}
+ \aj@FixAll{align;alignat;gather;flalign;multline}
}
%
\else
\ProvideDocumentEnvironment{linenomath}{}{}{}%
- \ifasmejour@balance % balancing through flushend can produce weird errors
- \RequirePackage{flushend}% flushend package is NOT compatible with lineno
+ \ifasmejour@balance % balancing through flushend can produce weird errors.
+ \RequirePackage{flushend}% flushend package is NOT compatible with lineno.
\AtEndDocument{\flushcolsend}%
- \LogNote{Calling flushend package to balance column height on last page}%
+ \ClassNoteNoLine{\ClassName}{Calling flushend package to balance column height on last page}%
\fi%
\fi
@@ -638,9 +604,9 @@
%% ASME page proofs seem to align the number at top of the line, rather than bottom as done here.
-%%%%%%%%%%%%%%%%% Footer Set Up %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%% Footer Set Up %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%% footer text names %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%% footer text names %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\JourName}[1]{\gdef\@JourName{#1}}
\providecommand\@JourName{\hbox{ }}
@@ -650,8 +616,8 @@
}
\providecommand\@PaperYear{\the\year}
-\def\@PreprintStringL{PREPRINT FOR REVIEW}
-\def\@PreprintStringR{PREPRINT FOR REVIEW}
+\def\@PreprintStringL{PREPRINT}% updated 2024/07/24
+\def\@PreprintStringR{PREPRINT}
\NewDocumentCommand{\PreprintString}{m o}{%
\IfNoValueTF{#2}{%
@@ -668,32 +634,53 @@
%%%%%% Fancyhdr %%%%%%%%%%%%%%%%%%%%%%%%%
-\RequirePackage{fancyhdr}
+\RequirePackage{fancyhdr}% options revised 2024/07/23
\pagestyle{fancy}
\fancyhf{}% clear all header and footer fields
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
-\fancyfoot[RE]{\large\bfseries\sffamily Transactions of the ASME}
-\fancyfoot[LO]{\large\bfseries\sffamily Journal of \@JourName}
-\fancyfoot[RO]{\large\sffamily \@PreprintStringR\space\space\bfseries/\space\space\@PaperNumber\thepage}
-\fancyfoot[LE]{\large\sffamily {\bfseries \@PaperNumber\thepage\space\space/}\space\space\@PreprintStringL\ }
+\ifasmejour@nofoot
+ \fancyfoot[CE,CO]{\thepage}
+\else
+ \fancyfoot[RE]{\large\bfseries\sffamily Transactions of the ASME}
+ \fancyfoot[LO]{\large\bfseries\sffamily Journal of \@JourName}
+ \fancyfoot[RO]{\large\sffamily \@PreprintStringR\space\space\bfseries/\space\space\@PaperNumber\thepage}
+ \fancyfoot[LE]{\large\sffamily {\bfseries \@PaperNumber\thepage\space\space/}\space\space\@PreprintStringL\ }
+\fi
-\fancypagestyle{title}{%
+\fancypagestyle{title}{% is an odd page
\fancyhf{}% clear all header and footer fields
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
- \fancyfoot[RO]{\large\sffamily \@PreprintStringR\space\space\bfseries/\space\space\@PaperNumber\thepage}
- \fancyfoot[LO]{\large\bfseries\sffamily Journal of \@JourName}
- \fancyfoot[CO]{\large\bfseries\sffamily Copyright \textcopyright\ \@PaperYear\ by ASME}
+ \ifasmejour@nofoot
+ \fancyfoot[CO]{\thepage}
+ \else
+ \fancyfoot[RO]{\large\sffamily \@PreprintStringR\space\space\bfseries/\space\space\@PaperNumber\thepage}
+ \fancyfoot[LO]{\large\bfseries\sffamily Journal of \@JourName}
+ \ifasmejour@nocopyright
+ \fancyfoot[CO]{}
+ \else
+ \fancyfoot[CO]{\large\bfseries\sffamily Copyright \textcopyright\ \@PaperYear\ by ASME}
+ \fi
+ \fi
}
+
%%%%%% Footnotes %%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{fnpos}
\makeFNbottom
\makeFNbelow
+\RequirePackage{footmisc}%
+\IfPackageAtLeastTF{footmisc}{2022/02/05}{
+ \PassOptionsToPackage{belowfloats}{footmisc}%
+ }{ \RequirePackage{fnpos}
+ \makeFNbottom
+ \makeFNbelow
+ }%
+\setlength\footnotemargin{4mm}% reduce indentation of footnotes, from footmisc
\setlength{\skip\footins}{12pt plus 2pt minus 1pt}
\renewcommand{\footnoterule}{%
@@ -702,10 +689,6 @@
\kern 2pt
}
-%% reduce indentation of footnotes
-\renewcommand\@makefntext[1]{%
- \noindent\makebox[4mm][r]{\@makefnmark}\hyphenpenalty=300\exhyphenpenalty=300 #1}% <== suppress hyphenation
-
%% Produces an unmarked footnote about the revision date.
%% This command is invoked by \date as part of \MakeTitlePage below.
%% Text can be anything given as the argument to \date{..}.
@@ -717,13 +700,13 @@
%% include a comma for sequential footnotes
\ExplSyntaxOn
- \cs_new:Npn \__asmejour_NoteComma:n { \peek_meaning:NT \footnote { \textsu{\mdseries,} } }
+ \cs_new:Npn \__asmejour_NoteComma:n { \peek_meaning:NT \footnote { \textsuperscript{\mdseries,} } }
\cs_new_eq:NN \__savefootnote \footnote
\cs_gset_protected:Npn \footnote #1 { \__savefootnote{#1}\__asmejour_NoteComma:n }
\ExplSyntaxOff
-%%%%%%%%% Caption Related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Caption Related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\addto{\captionsenglish}{%
\renewcommand{\figurename}{Fig.}
@@ -739,7 +722,7 @@
\captionsetup[figure]{labelfont={sf,bf},textfont={sf,bf},textformat=boldmath,labelsep=quad}
\captionsetup[table]{labelfont={sf,bf},textfont={sf,bf},textformat=boldmath,labelsep=quad,skip=0.5\baselineskip}
-%% 30 January 2021. ASME only labels subfigures with a sans serif, italic (a), (b),... no caption text, no bold face.
+%% 2021/01/30: ASME only labels subfigures with a sans serif, italic (a), (b),... no caption text, no bold face.
\captionsetup[subfigure]{labelfont={sf},textfont={sf},textformat=sansmath,labelformat=simple}% default: =parens
\renewcommand\thesubfigure{(\textit{\alph{subfigure}})}
@@ -747,7 +730,7 @@
\renewcommand\thesubtable{(\textit{\alph{subtable}})}
-%%%%%%%%%%%% Section Headings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%% Section Headings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage[raggedright,indentafter]{titlesec}
@@ -760,28 +743,28 @@
\titlespacing{\subsubsection}{\parindent}{12pt plus 3pt minus 2pt}{0.5em}
%% ASME style does not seem to go lower than third level heading, so ...
-%% ....putting \paragraph into \subsubsection settings.
+%% ...put \paragraph into \subsubsection settings.
\titleformat{\paragraph}[runin]{\itshape}{\thesubsubsection}{0.5em}{}[.]
\titlespacing{\paragraph}{\parindent}{14pt plus 3pt minus 2pt}{0.5em}
%% Special handling of the appendices
%% Assumes that appendices are the last technical content in paper
-\providecommand{\appendicesname}{Appendices}
-
-\RenewDocumentCommand{\appendix}{}{%
- \pdfbookmark[1]{\appendicesname}{appendices}
- \setcounter{section}{0}
- \renewcommand\thesection{\Alph{section}}
- \setcounter{equation}{0}
- \renewcommand\theequation{\Alph{section}\arabic{equation}}
- \titleformat{\section}[block]{\mathversion{bold}\bfseries\large\raggedright}{\appendixname\ \thesection:}{0.5em}{}[\setcounter{equation}{0}]
-}
+\providecommand*{\appendicesname}{Appendices}
+\newcounter{appeqn}%% Code revised to better support tagged pdf, 2024/07/24
+\patchcmd{\appendix}{%
+ \setcounter{subsection}{0}}{%
+ \setcounter{subsection}{0}%
+ \pdfbookmark[1]{\appendicesname}{appendices}%
+ \@addtoreset{equation}{appeqn}\stepcounter{appeqn}%
+ \gdef\theequation{\@Alph\c@section\@arabic\c@equation}%
+}{}{}
+\apptocmd{\appendix}{\titleformat{\section}[block]{\mathversion{bold}\bfseries\large\raggedright}{\appendixname\ \thesection:}{0.5em}{}}
%% natbib's \bibsection controls section heading for References.
-%%%%%%%%%%%%%%%%% List environments %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%% List environments %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{enumitem}
@@ -789,24 +772,20 @@
%% I have no examples of sublists...
-%%%%%%%%%%%%%%%%% Hyperref %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%% Hyperref %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% new pdf management in LaTeX, with \DocumentMetaData{..}, is preferred to this approach.
\ifpdftex
- %%% to assist with unicode glyph mapping, following M. Sharpe's recommendation in the newtx documentation.
- \IfFormatAtLeastTF{2020/10/01}{\relax}{%
- \pdfgentounicode=1 %% enable CMaps; has moved into the latex kernel Oct 2020
- \input glyphtounicode.tex %% lists of mappings; has moved into the latex kernel Oct 2020
- }
+ %%% to assist with unicode glyph mapping in pdf/a, per M. Sharpe's recommendation in newtx documentation
\InputIfFileExists{glyphtounicode-cmr.tex}{}{} %% additional mappings
\InputIfFileExists{glyphtounicode-ntx.tex}{}{} %% additional mappings
+ %% new pdf management in LaTeX, with \DocumentMetaData{..}, is preferred to this approach.
\ifaj@setpdfa
- %%%% the pdfmanagement options are experimental, from Ulrike Fischer 2021/06/12
- \if@asme@pdfmanagement
- \ClassInfo{asmejour}{pdfmanagement is defined. Class file will not load a color profile}
+ %%%% the pdfmanagement options from Ulrike Fischer 2021/06/12
+ \ifasme@pdfmanagement
+ \ClassInfo{\ClassName}{pdfmanagement is defined. Class file will not load a color profile}
\else
- \ClassInfo{asmejour}{pdfmanagement not defined. Class file will load a color profile}%
+ \ClassInfo{\ClassName}{pdfmanagement not defined. Class file will load a color profile}%
%%% a fairly generic RGB color profile, aimed at on-screen rendering (not print production)
\immediate\pdfobj stream attr{/N 3} file{sRGB.icc}
\pdfcatalog{%
@@ -826,41 +805,41 @@
%%%
-\RequirePackage[psdextra]{hyperref} % recent kernel transition suggests providing most hyperref options via \hypersetup,
- % but setting psdextra here (for additional math support in bookmarks) 2021/12/23
+\RequirePackage[psdextra]{hyperref} % provide most hyperref options via \hypersetup, but per documentation
+ % set [psdextra] here (for additional math support in bookmarks) 2021/12/23
\hypersetup{%
- pdfborder={0 0 0},%
- bookmarksnumbered=true,%
- bookmarksopen=true,%
- bookmarksopenlevel=1,%
- colorlinks=true,%
- linkcolor=blue, %
- citecolor=blue, %
- urlcolor=blue, %
- filecolor=red, % added 2021/12/23, to make certain broken links more apparent
- pdfnewwindow=true,%
- pdfpagelayout=SinglePage, %TwoPageRight,% changed 2020/08/12
- pdfdisplaydoctitle=true%
+ pdfborder={0 0 0},
+ bookmarksnumbered=true,
+ bookmarksopen=true,
+ bookmarksopenlevel=1,
+ colorlinks=true,
+ linkcolor=blue,
+ citecolor=blue,
+ urlcolor=blue,
+ filecolor=red, % added 2021/12/23, to make certain broken links more apparent
+ pdfnewwindow=true,
+ pdfpagelayout=SinglePage, % was TwoPageRight, changed 2020/08/12
+ pdfdisplaydoctitle=true,
}
\urlstyle{same} % don't switch to typewriter font
\RequirePackage{doi} % supports nasty characters in some doi's
\renewcommand{\doitext}{doi:~} % change the default, {doi:}, to this for ASME specification
-\RequirePackage{bookmark} % improves handling of pdf bookmarks
\providecommand*{\toclevel@subfigure}{1}% <== to address unknown bookmark level of subfigure. 2021/12/24
\providecommand\hrefurl[2]{\href{#1}{#2}}% to address certain issues around URL recognition with new pdf management code, 2021/12/22
%% This alias is also incorporated into asmejour.bst
-\if@asme@pdfmanagement
- \ClassInfo{asmejour}{pdfmanagement is defined. Class file will not load hyperxmp}
+\ifasme@pdfmanagement
+ \ClassInfo{\ClassName}{pdfmanagement is defined. Class file will not load hyperxmp}
\else
+ \RequirePackage{bookmark} %% improves handling of pdf bookmarks
\RequirePackage{hyperxmp} %% to fix transfer of metadata to Acrobat pdf
% Patch bug in hyperxmp, unless a more recent version is used.
\@ifpackagelater{hyperxmp}{2022/10/15}{% v5.11 or later
\relax
- % \ClassInfo{asmeconf}{hyperxmp v5.11 or later is in use}
+ % \ClassInfo{\ClassName}{hyperxmp v5.11 or later is in use}
}{%
\ifx\undefined\hyxmp@no@bad@parts\relax\else
\newcount\hypxmp@tempcnt
@@ -872,10 +851,11 @@
}
\fi
-%%%%%% Adjustments to accommodate hyperref bookmarks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%% Adjustments to accommodate hyperref bookmarks %%%%%%%%%%%%%%%%%%%%%%
-%%% ==> recent and evolving development of \pdfstring removes all robust commands from bookmarks, so
-%%% the following interventions may become unnecessary over time (2021/12/23).
+%%% Recent development of \pdfstring has removed all robust commands from bookmarks (2021/12/23).
+%%% By mid-2024, no errors are thrown except for \bm; however, these commands serve to still suppress warnings.
+%%% Math shift by $..$ still creates a warning, but I am leaving that in place. To avoid, use \( .. \) instead.
%% Since \bm is useful in headings, this fix will reduce frequency with which
%% alternate pdfstrings must be given in section command as \section[pdfstring]{texstring}
@@ -896,7 +876,7 @@
%% Ensure that tag color does not follow \eqref into bookmarks, 2020/02/28
\pdfstringdefDisableCommands{%
- \def\eqref#1{(\ref{#1})}%
+ \def\eqref#1{(\ref*{#1})}%
}
%% Let's make sure footnotes in section headings don't break pdf bookmarks.
@@ -906,13 +886,13 @@
}
-%%%%%%%%%%%%% Define some section and other names for special environments %%%%%%%
+%%%%%%%%%%%%% Define some section and other names for special environments %%%%%%%%%%%%%%%%%%%%%%%%
\providecommand{\nomname}{Nomenclature}
\providecommand{\keywordname}{Keywords}
\providecommand{\CAwords}{Corresponding Author.}
-%%%%%%%%%%%%% Nomenclature Environment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%% Nomenclature Environment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Nomenclature environment in ASME Journal Style.
%% Run twice to get proper label width.
@@ -926,7 +906,7 @@
\NewDocumentCommand{\entry}{m m}{%
\ifblank{#2}{%
- \ClassError{asmejour}{The command \protect\entry should have two arguments. For subheadings, use \protect\EntryHeading}{It appears that you gave only one argument for \protect\entry. You need to include a second argument.}
+ \ClassError{\ClassName}{The command \protect\entry should have two arguments. For subheadings, use \protect\EntryHeading}{It appears that you gave only one argument for \protect\entry. You need to include a second argument.}
}{%
\item[\hfill#1${} = {}$]#2%
\@itempenalty=-\@lowpenalty%
@@ -938,7 +918,7 @@
%% A separate command command for nomenclature subheadings
\NewDocumentCommand\EntryHeading{m}{%
- \itemsep12\p@ plus 4\p@ minus 4\p@% \bigskip
+ \itemsep12\p@ plus 4\p@ minus 4\p@
\goodbreak\item[\bfseries#1\hfill]\mbox{}\itemsep3\p@ plus 1\p@ minus 1\p@\@itempenalty=1000% add \mbox for tagged pdf, 2023/10/20
}
@@ -966,28 +946,25 @@
}%
}{%
\setcounter{savedlength}{\widest}%
- \end{list}%
+ \end{list}\ignorespacesafterend
}
-%%%%%%%%%%%%%%%% List of figures and list of tables %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%% List of figures and list of tables %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% ASME requires these lists for production.
\ifasmejour@nolists
- \LogNote{Omitting lists of figures and tables}%
+ \ClassNoteNoLine{\ClassName}{Omitting lists of figures and tables}%
\else
\AtEndDocument{%
- \clearpage
\twocolumn[%
- \begin{@twocolumnfalse}
\listoffigures
\listoftables
- \end{@twocolumnfalse}
]%
}%
\fi
-%%%%%%%%%%%%%%%% Author/Title/Abstract block %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%% Author/Title/Abstract block %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{xcoffins}
@@ -1028,12 +1005,12 @@
\fi
}
-
\NewDocumentCommand\SetTitle{m}{%
\SetVerticalCoffin{\Title}{114mm}{%
\vspace*{0.5mm}% <== ASME doesn't align bar and text
\noindent\Huge\CondSansBold\raggedright%
#1%
+ %\gdef\@title{#1}% for tagging, etc. 2024/07/24. pdf metadata will probably override.
\par
}
}
@@ -1086,7 +1063,7 @@
\addtocounter{footnote}{-1}% in case of more than one CA
}
-%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newlength{\@AbstractSep}%% <== separation of author/abstract coffin from main two-column text.
\setlength{\@AbstractSep}{12.5mm}
@@ -1094,12 +1071,15 @@
\NewDocumentCommand{\MakeTitlePage}{}{%
\thispagestyle{title}%
- \twocolumn[
- \begin{@twocolumnfalse}
+ \ifasmejour@singlecolumn % 2024/07/20
\@ConstructAuthorBlock
\vspace*{\@AbstractSep}
- \end{@twocolumnfalse}
- ]
+ \else
+ \twocolumn[
+ \@ConstructAuthorBlock
+ \vspace*{\@AbstractSep}
+ ]
+ \fi
\ifaj@CA
\addtocounter{footnote}{1}
\footnotetext{\CAwords}
@@ -1113,7 +1093,7 @@
\fi
}
-%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Provide compatibility with titling commands from standard LaTeX article class
@@ -1143,7 +1123,7 @@
\RenewDocumentCommand{\thanks}{m}{\relax}%% disabling this standard command, as it is inconsistent with this format
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput
%%
diff --git a/macros/latex/contrib/asmejour/asmewide_example/asmejour-wide-equation-examples.pdf b/macros/latex/contrib/asmejour/asmewide_example/asmejour-wide-equation-examples.pdf
index 5b93ad2cf9..c3b0bc535e 100644
--- a/macros/latex/contrib/asmejour/asmewide_example/asmejour-wide-equation-examples.pdf
+++ b/macros/latex/contrib/asmejour/asmewide_example/asmejour-wide-equation-examples.pdf
Binary files differ
diff --git a/macros/latex/contrib/asmejour/asmewide_example/asmejour-wide-equation-examples.tex b/macros/latex/contrib/asmejour/asmewide_example/asmejour-wide-equation-examples.tex
index 69b98af0b2..5a506330aa 100644
--- a/macros/latex/contrib/asmejour/asmewide_example/asmejour-wide-equation-examples.tex
+++ b/macros/latex/contrib/asmejour/asmewide_example/asmejour-wide-equation-examples.tex
@@ -1,6 +1,6 @@
%% Examples of a widetext macro for setting wide equations in the asmejour class.
%%
-%% Copyright (c) 2022 John H. Lienhard. Use under the MIT license: https://ctan.org/license/mit
+%% Copyright (c) 2024 John H. Lienhard. Use under the MIT license: https://ctan.org/license/mit
%%
%%
%% USAGE: * \begin{widetext} ...wide material here... \end{widetext}
@@ -15,8 +15,8 @@
\documentclass[nocopyright,nolists,pdf-a]{asmejour}
%% This file's version and date are:
- \def\AJwidetextversion{1.01}
- \def\AJverdate{October 22, 2023}
+ \def\AJwidetextversion{1.02}
+ \def\AJverdate{July 24, 2024}
%
\usepackage{asmewide}
\usepackage{lipsum}% Latin filler text (lipsum generates a message about 'unused global options' - this can be ignored)
@@ -81,6 +81,8 @@ address = {New York},
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
+\PreprintString{PREPRINT}
+
\SetAuthorBlock{John H.\ Lienhard V}{%
Fellow of ASME \\
Rohsenow Kendall Heat Transfer Laboratory, \\
diff --git a/macros/latex/contrib/babel-contrib/french/frenchb-doc.pdf b/macros/latex/contrib/babel-contrib/french/frenchb-doc.pdf
index 2eb2bb0a71..da0dc2cbdb 100644
--- a/macros/latex/contrib/babel-contrib/french/frenchb-doc.pdf
+++ b/macros/latex/contrib/babel-contrib/french/frenchb-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/french/frenchb-doc.tex b/macros/latex/contrib/babel-contrib/french/frenchb-doc.tex
index 701df1e896..f3d21083b3 100644
--- a/macros/latex/contrib/babel-contrib/french/frenchb-doc.tex
+++ b/macros/latex/contrib/babel-contrib/french/frenchb-doc.tex
@@ -120,7 +120,7 @@
\title{Mode d’emploi du module \ext{babel-french}}
\author{\href{mailto:daniel.flipo@free.fr}{Daniel \textsc{Flipo}}}
-\newcommand*{\latestversion}{3.6b}
+\newcommand*{\latestversion}{3.6c}
\date{Version {\latestversion} -- \today}
\begin{document}
diff --git a/macros/latex/contrib/babel-contrib/french/frenchb.dtx b/macros/latex/contrib/babel-contrib/french/frenchb.dtx
index 1ec34d6f5b..b52e5c67e7 100644
--- a/macros/latex/contrib/babel-contrib/french/frenchb.dtx
+++ b/macros/latex/contrib/babel-contrib/french/frenchb.dtx
@@ -75,7 +75,7 @@ Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
%<frenchb>\ProvidesLanguage{frenchb}
%<lua>--[[
%<lua> File `frenchb.lua’ generated from frenchb.dtx
- [2024-06-26 v3.6b French support from the babel system]
+ [2024-07-25 v3.6c French support from the babel system]
%<lua> Copyright © 2014-2024 Daniel Flipo
%<lua> <daniel (dot) flipo (at) free (dot) fr>
%<lua> License LPPL: see french.ldf.
@@ -2782,7 +2782,7 @@ return french_punctuation
% \changes{v3.2c}{2016/05/14}{New definition based on
% \cs{FB@spacing@off} common to all engines.}
%
-% \changes{v3.6b}{2024/06/25}{\cs{NoAutoSpacing} must be inhibited
+% \changes{v3.6b}{2024/06/26}{\cs{NoAutoSpacing} must be inhibited
% in bookmarks.}
%
% \begin{macrocode}
@@ -4582,6 +4582,10 @@ return french_punctuation
\@onlypreamble\frenchbsetup
% \end{macrocode}
%
+% \changes{v3.6c}{2024/07/25}{Removed spurious @ in
+% \cs{FBCompactItemize@setup} and \cs{FBListOldLayout@setup}
+% commands’ names.}
+%
% The following commands, defined with property |.code| in
% |DeclareKeys{}|, execute some post-treatment required to
% immediately take the flags value into account.
@@ -4623,14 +4627,14 @@ return french_punctuation
Reported}%
\fi
}
-\newcommand*{\FB@ListOldLayout@setup}[1]%
+\newcommand*{\FBListOldLayout@setup}[1]%
{\csname FBListOldLayout#1\endcsname
\ifFBListOldLayout
\FBStandardEnumerateEnvtrue
\renewcommand*{\FrenchLabelItem}{\textendash}%
\fi
}
-\newcommand*{\FB@CompactItemize@setup}[1]%
+\newcommand*{\FBCompactItemize@setup}[1]%
{\csname FBCompactItemize#1\endcsname
\ifFBCompactItemize
\FBStandardItemizeEnvfalse
diff --git a/macros/latex/contrib/babel-contrib/french/frenchb.pdf b/macros/latex/contrib/babel-contrib/french/frenchb.pdf
index 44cf3388f2..7e4ce7735b 100644
--- a/macros/latex/contrib/babel-contrib/french/frenchb.pdf
+++ b/macros/latex/contrib/babel-contrib/french/frenchb.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/LICENSE.txt b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/LICENSE.txt
new file mode 100644
index 0000000000..2244313901
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/LICENSE.txt
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c 2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance
+of the Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2005/12/01 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
+
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/README.md
new file mode 100644
index 0000000000..c4b213ef28
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/README.md
@@ -0,0 +1,5 @@
+# `beamertheme-edmaths` Beamer Theme
+
+A beamer presentation theme which follows the [university's brand guidelines](https://communications-marketing.ed.ac.uk/marketing/brand). See also the [_documentation_](https://foggalong.github.io/edinburgh-math-latex/beamertheme-edmaths-docs.pdf) and a [_compiled example_](https://foggalong.github.io/edinburgh-math-latex/example-presentation.pdf). To use, place the files and store them either with your .tex file(s) or in any directory that's findable by LaTeX (e.g. `$TEXINPUTS`).
+
+For more information on the wider project, including the report and thesis stylesheet, [see GitHub](https://github.com/Foggalong/edinburgh-math-latex). The beamer theme [beamerthemeedmaths.sty](beamerthemeedmaths.sty) is provided under the [LaTeX Project Public License v1.3c](https://choosealicense.com/licenses/lppl-1.3c/) (LPPL) while the example [example-presentation.tex](example-presentation.tex) is provided under the [BSD Zero Clause License](https://choosealicense.com/licenses/0bsd/) (0BSD).
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/beamerthemeedmaths.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/beamerthemeedmaths.sty
new file mode 100644
index 0000000000..ded67b3d59
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/beamerthemeedmaths.sty
@@ -0,0 +1,167 @@
+%% Package `edmaths' v0.99
+%% File beamerthemeedmaths.sty
+%% Copyright 2024 Josh Fogg
+%%
+%% beamerthemeedmaths.sty is a LaTeX style file for typesetting presentations
+%% for the School of Mathematics at the University of Edinburgh, part of the
+%% more general `edmaths' package. See README.md for usage instructions.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3 of this license or (at
+%% your option) any later version.
+%%
+%% The latest version of this license is in http://latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained' and the current
+%% maintainer of this work is Josh Fogg. Originally written by Saturnino Luz
+%% for the Usher Institute and made generic to UoE by Ben Brown.
+%%
+%% This work consists of the files beamerthemeedmaths.sty, but in addition
+%% requires images `white-tied-in' and `edinburgh-logo' to compile. The images
+%% distributed with this work in the `edmaths' package are registered trademarks;
+%% they are not to be used as part of derived or independent works without the
+%% permission of The University of Edinburgh. This does not affect use as part
+%% of compiled LaTeX documents using this style for the university.
+
+\ProvidesPackage{beamerthemeedmaths}[2024-08-30 Edinburgh maths beamer theme v0.99]
+\RequirePackage{amsfonts,graphicx,lmodern,mathptmx}
+
+% Colour definitions to choose between
+\definecolor{UoEblue}{RGB}{0,50,95} % #00325F
+\definecolor{UoEcyan}{RGB}{69, 126, 129} % #457E81
+\definecolor{UoEgreen}{RGB}{156, 154, 0} % #9C9A00
+\definecolor{UoEgray}{RGB}{.392, .329, .329} % VARIES
+\definecolor{UoEorange}{RGB}{204, 89, 17} % #CC5911
+
+% Define colour command for use through rest of theme
+\newcommand{\beamer@UoE@color}{UoEblue}
+\DeclareOptionBeamer{colour}{\def\beamer@UoE@color{#1}}
+
+% Change title height to fit styling
+\newdimen\beamer@UoE@titleheight
+\beamer@UoE@titleheight=10ex
+\DeclareOptionBeamer{theight}{\beamer@UoE@titleheight=#1}
+
+% Resolution is 9:5 (approx), as in ppt template
+\geometry{paperwidth=25.40cm, paperheight=19.05cm}
+
+\ProcessOptionsBeamer
+
+\newcommand\crule[3][\beamer@UoE@color]{\textcolor{#1}{\rule{#2}{#3}}}
+
+\setbeamerfont{title}{series=\bfseries,size=\fontsize{32}{36}}%
+\setbeamerfont{subtitle}{size=\fontsize{24}{28}}
+\setbeamerfont{author}{size={\fontsize{20}{24}}}
+\setbeamerfont{institute}{size=\fontsize{22}{26}}
+\setbeamerfont{pagexofy}{size=\tiny}
+\setbeamerfont{caption}{size=\Large}
+\setbeamerfont{frametitle}{family=\sffamily,series=\bfseries,size={\fontsize{23}{26}}}
+\setbeamerfont{itemize item}{family=\sffamily,size={\fontsize{16}{18}}}
+\setbeamerfont{itemize subitem}{family=\sffamily,size={\fontsize{16}{18}}}
+\setbeamertemplate{itemize/enumerate body begin}{\fontsize{16}{19}\selectfont}
+\setbeamertemplate{itemize/enumerate subbody begin}{\fontsize{16}{19}\selectfont}
+\AtBeginDocument{\fontsize{18}{19}\selectfont}
+
+%\setbeamertemplate{items}[ball]
+\setbeamertemplate{navigation symbols}{}
+\pgfdeclareimage[width=14.69cm]{white-tied-in}{images/white-tied-in}
+\pgfdeclareimage[width=4.65cm]{edinburgh-logo}{images/edinburgh-logo}
+\pgfdeclareimage[width=1.25cm]{little=u}{images/edinburgh-logo}
+\setbeamerfont{alerted text}{series=\bfseries}
+\setbeamercolor{alerted text}{fg=\beamer@UoE@color!80!black}
+\setbeamercolor{title}{fg=black}
+\setbeamercolor{normal text}{fg=black}
+\setbeamertemplate{itemize item}{\color{\beamer@UoE@color}$\bullet$}
+\setbeamertemplate{itemize subitem}{\color{\beamer@UoE@color}$\circ$}
+
+
+\newcommand{\SetUoETitleMargin}[1]{\beamer@UoE@titleheight=#1}
+\newcommand{\SetUoETitleHeight}[1]{\beamer@UoE@titleheight=#1}
+
+
+\newlength\barheight\setlength\barheight{\paperheight}
+\divide\barheight by 12
+
+
+\setbeamertemplate{title page}{
+ \raggedright
+ % TITLE
+ {\usebeamerfont{title}\textcolor{white}\inserttitle\par~}
+ % SUBTITLE
+ \ifx\insertsubtitle\@empty
+ \else%
+ \\[1ex]
+ {\usebeamerfont{subtitle}\textcolor{white}\insertsubtitle}
+ \fi
+ \\[6ex]
+ % AUTHOR
+ {\usebeamerfont{author}\textcolor{white}\insertauthor}
+ \ifx\insertinstitute\@empty
+ \else%
+ \\[3ex]
+ {\\\usebeamerfont{institute}\textcolor{white}\insertinstitute}
+ \fi
+ % DATE
+ \ifx\insertdate\empty
+ \else%
+ \\[1ex]
+ \usebeamerfont{date}\textcolor{white}{\insertdate}
+ \fi
+}
+
+
+\setbeamertemplate{background}{
+ \setlength{\unitlength}{1cm}
+ \begin{picture}(25.4,19.05)(0,0)
+ % on first slide add UoE text logo across bottom left
+ \ifnum\c@framenumber=1%
+ \put(-.1, 0){\crule[\beamer@UoE@color]{25.4cm}{19.05cm}}
+ \put(0.44, 0.1){\pgfuseimage{white-tied-in}}
+ % on ever other slide add UoE logo at top of blue sidebar
+ \else%
+ \put(23.5, 0){\crule[\beamer@UoE@color]{1.80cm}{19.05cm}}
+ \put(23.65, 17.3){\includegraphics[width=1.45cm,height=1.45cm]{images/edinburgh-logo}}
+ \fi%
+ % add slide numbering to bottom right
+ \ifnum\c@framenumber<10%
+ \put(23.7,0.3){\centering\Large\color{white}{\phantom{0}\insertframenumber/\inserttotalframenumber}}
+ \else
+ \put(23.7,0.3){\centering\Large\color{white}{\insertframenumber/\inserttotalframenumber}}
+ \fi%
+ \end{picture}
+}
+
+
+% Default slide formatting
+\setbeamertemplate{frametitle}{
+ % if not the starting fram, add a top margin
+ \ifnum\c@framenumber=1%
+ \empty%
+ \else
+ \vspace*{\beamer@UoE@titleheight}
+ \fi
+ % use the title colour from this class
+ \usebeamercolor[fg]{title}
+ % handle situation where there's no subtitle
+ \ifx\insertframesubtitle\@empty
+ \usebeamerfont{frametitle}{\insertframetitle}
+ \else
+ \usebeamerfont{frametitle}{\insertframetitle:~{\normalfont\insertframesubtitle}}
+ \fi
+ % ensures spacing after the title
+ \vspace*{1em}
+}
+
+%\newcommand{\UoEsettitleheight}[1]{\makeatletter\beamer@UoE@titleheight=#1\makeatother}
+\setbeamersize{text margin left=2cm,text margin right=2.5cm}
+
+% Ensures images are compressed when brought in by PDF
+\pdfcompresslevel=9
+\pdfobjcompresslevel=3
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "sample"
+%%% End:
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.pdf
new file mode 100644
index 0000000000..feed9074f7
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.tex
new file mode 100644
index 0000000000..e14f44e0a0
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.tex
@@ -0,0 +1,231 @@
+\documentclass[12pt]{article}
+
+% This is documentation for the `edmaths` LaTeX package, maintained by
+% Josh Fogg for the University of Edinburgh. This file closely builds on
+% that provided Alan Munn for the MSU Thesis Class, `msu-thesis`. The
+% original documentation is licensed under LaTeX Project Public License
+% (LPPL) version 1.3 or later, and this documentation is licensed under
+% the LLP version 1.3c. For more information, see the GitHub repository:
+% https://github.com/Foggalong/edinburgh-math-latex
+
+\def\msuversion{0.99}
+\def\msudate{2024-08-30}
+\title{\textbf{Using the \pkg{beamertheme-edmaths} Beamer Theme}}
+\author{\textbf{Josh Fogg}\\School of Mathematics\\The University of Edinburgh\\\texttt{\href{mailto:j.fogg@ed.ac.uk}{j.fogg@ed.ac.uk}}}
+\date{Version \msuversion\\\msudate}
+
+% basic formatting tweaks
+\usepackage[lmargin=2cm,rmargin=2cm,tmargin=3cm,bmargin=2cm]{geometry}
+\usepackage[colorlinks=true]{hyperref}
+\usepackage{enumitem}
+\usepackage{graphicx}
+
+% use same fourier font available through edmaths
+\usepackage{cmap}
+\usepackage{fourier}
+\usepackage[T1]{fontenc}
+\usepackage{microtype}
+
+% setup syntax highlighting
+\usepackage{highlightlatex}
+\definecolor{whiteF0}{HTML}{F0F0F0}
+\lstset{
+ % external padding
+ aboveskip=.4em,
+ belowskip=-.2em,
+ xleftmargin=.03\textwidth,
+ xrightmargin=.03\textwidth,
+ % basic formatting
+ backgroundcolor=\color{whiteF0},
+ showstringspaces=false,
+ columns=fixed,
+ basewidth=.5em,
+ basicstyle={\fontfamily{zlmtt}\selectfont},
+ breaklines=true
+}
+
+
+% change new paragraph behaviour to no-indent and a linebreak
+\usepackage[parfill]{parskip}
+
+
+\newcommand\pkg[1]{\href{https://www.ctan.org/pkg/#1}{\color{teal}\lstinline{#1}}}
+\newcommand\key[1]{{\color{orange}\lstinline|#1|}}
+
+
+\begin{document}
+\maketitle
+\thispagestyle{empty}
+
+\section{Introduction}
+
+This is theme for \pkg{beamer}, used to creating presentations for the \href{https://www.maths.ed.ac.uk/}{School of Mathematics} at the \href{https://www.ed.ac.uk/}{University of Edinburgh}. It's designed as an accompaniment to \pkg{edmaths} and provides an easy way to generate a presentation in \LaTeX{} which aligns the university brand guidelines. This means you can focus on your actual writing, rather than worrying about font spacing, margins sizes, {\it etc}.
+
+\section{Initial Setup}
+
+This theme is designed to work with \pkg{beamer}, which should be available with any \TeX{} distribution. It can be used with any \LaTeX{} engine, including pdfLaTeX, XeLaTeX, or LuaLaTeX. While it should work with any reasonably up-to-date \TeX{} distribution, it is tested with 2020 and later.
+
+The essential steps to setup are then:
+\begin{enumerate}
+ \item Choose a document class using \lstinline|\documentclass[<options>]{beamer}|, with \key{<options>} being defined in the full \pkg{beamer} documentation.
+ \item Apply the theme using \lstinline|\usetheme{edmaths}|.
+ \item Use \lstinline|\title[Short Title]{Full Title}|| to define the title (the \key{Short Title} is optional).
+ \item Set the optional \lstinline|\subtitle{...}| if desired.
+ \item Set the \lstinline|\author{...}| and \lstinline|\date{...}|.
+\end{enumerate}
+These steps {\bf must} be done in exactly this order or the compiler will throw errors.
+
+Unlike \pkg{edmaths}, this theme does not automatically load the standard suite of \LaTeX{} math packages ({\it e.g.\/} \pkg{amsmath}) so you may wish to load those. Instead it loads \pkg{amsfonts}, \pkg{graphicx}, \pkg{lmodern}, and \pkg{mathptmx} which are necessary for the theme.
+
+The basic package has no other special requirements, but if you have certain additional packages installed then you can use some fancifying options (see below).
+
+\section{Package Options}
+
+When loading \pkg{beamertheme-edmaths} with
+\begin{lstlisting}
+\usetheme[<options>]{edmaths}
+\end{lstlisting}
+we can supply additional \key{<options>} as a comma-separated list of the following keywords.
+
+\subsection{Colour}
+
+The default theme is styled around University of Edinburgh {\bf\color[HTML]{00325F} blue (\lstinline|#00325F|)}. It's also available in three other official brand colour-scheme variations by specifying at most one of:
+\begin{itemize}
+ \item \key{colour=UoEorange} for {\bf\color[HTML]{CC5911} orange (\lstinline|#CC5911|)},
+ \item \key{colour=UoEgreen} for {\bf\color[HTML]{9C9A00} green (\lstinline|#9C9A00|)},
+ \item \key{colour=UoEcyan} for {\bf\color[HTML]{457E81} cyan (\lstinline|#457E81|)}.
+\end{itemize}
+In theory other off-brand colours could be applied using \pkg{xcolor} and the same syntax, but this isn't officially supported so results may vary.
+
+\subsection{Title Height}
+
+By default the title height is \key{10ex}. This can be modified by specifying \key{theight=<x>}, where \key{<x>} is the desired height in a \LaTeX{} compatible unit.
+
+\section{Usage}
+
+Once \pkg{beamertheme-edmaths} is set up, a simple example of how it might be put together in \pkg{beamer} is in the listing below. A more complicated example is packaged with \pkg{beamertheme-edmaths} and \href{https://github.com/Foggalong/edinburgh-math-latex/blob/main/example-presentation.tex}{available here}. What this looks like compiled can be \href{https://foggalong.github.io/edinburgh-math-latex/example-presentation.pdf}{viewed here}.
+
+\subsection{Overleaf}
+
+As a student or staff member at the University of Edinburgh you have access to \href{https://www.ed.ac.uk/information-services/computing/desktop-personal/software/main-software-deals/other-software/overleaf}{Overleaf Professional}! Do make use of this, it alleviates many of the headaches which come with using \LaTeX{} across multiple computers, which you surely will..
+
+\subsection{Archiving your presentation for the future}
+
+The current version of \pkg{beamertheme-edmaths} satisfies the brand guidelines at any one time. Given these change, you may find that if you need to recompile your presentation later that the formatting changes. To avoid this, save an archived version of the \href{https://github.com/Foggalong/edinburgh-math-latex/blob/main/beamerthemeedmaths.sty}{\lstinline|beamerthemeedmaths.sty|} file in the same folder as your slides. You only need to do this once you have completely finished your presentation however; there's no need to do it during the writing process.
+
+\begin{lstlisting}[caption={Example usage of \pkg{beamertheme-edmaths}.}]
+\documentclass{beamer}
+\usetheme{edmaths}
+
+\title[Short Title]{A Long and verbose title}
+\subtitle{and a sub-title} % optional
+\author{Dr Benway}
+\institute{The Mental Institute} % optional
+\date{Feb 1935}
+
+\begin{document}
+
+\maketitle
+
+\begin{frame}{Words of Advice for Young People}\label{sec:Advice}
+ People often ask me if I have any words of \alert{advice} for
+ young people\ldots \\[2ex] \pause
+ \begin{itemize}
+ \item<1-> \alert{Never} interfere in a \alert{boy-and-girl}
+ fight
+ \item<2-> Any \alert{old soul} is worth saving \\
+ \uncover<3->{at \alert{least to} a priest},
+ \begin{itemize}
+ \item<4-> But \alert{not} every soul is \alert{worth
+ buying}.
+ \end{itemize}
+ \item<5-> \ldots
+ \end{itemize}
+\end{frame}
+
+\begin{frame}{Conclusions}\label{sec:what?}
+ \begin{itemize}
+ \item<2-> What \alert{are} we doing here?
+ \item<4-> What?
+ \item<2-> Answers:
+ \begin{itemize}
+ \item<3-> We are here \alert{to go}.
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\end{document}
+\end{lstlisting}
+
+\section{Speaker Notes}
+
+There are various solutions for writing notes to accompany LaTeX presentations made with \pkg{beamer}. In each of these use the relevant command {\it after} the slide you wish to annotate.
+
+\subsection{Beamer's \texttt{note}}
+
+Core \pkg{beamer} itself actually comes with a command, \lstinline|\note|, which can be used for writing notes that are then included as separate `notes' pages in the complied PDF. Exactly how these are handled is controlled through the document class arguments
+
+\begin{lstlisting}
+\documentclass[notes]{beamer} % print frame + notes
+\documentclass[notes=only]{beamer} % only notes
+\documentclass{beamer} % only frames
+\end{lstlisting}
+
+and then notes are added with
+
+\begin{lstlisting}
+\begin{frame}
+ ...
+\end{frame}
+\note{Some wonderful note.}
+\end{lstlisting}
+
+These have the upside that you have full access to \LaTeX{} formatting when writing your speaker notes, but the downside that they can be cumbersome to work with when presenting. Multiple complications are needed to get notes and presentations in separate PDF files.
+
+\subsection{PDFPC's \texttt{note}}
+
+\href{https://pdfpc.github.io/}{PDFPC} is a presenter console with multi-monitor support for PDF files. There's an official package, \pkg{pdfpc}, for adding meta-data to presentation files which are compatible with their presenter console. The screenshot in Figure~\ref{fig:pdfpc} shows how the console looks when viewing the example presentation.
+
+\begin{figure}
+ \includegraphics[width=\textwidth]{pdfpc-screenshot.png}
+ \caption{Speaker notes in PDFPC.}\label{fig:pdfpc}
+\end{figure}
+
+To use this add
+
+\begin{lstlisting}
+\usepackage[overridenote=true]{pdfpc}
+\end{lstlisting}
+and then it's just \lstinline|\note{Some wonderful note.}| as before.
+
+These will then be included as ``comments'' within the complied PDF which PDFPC displays as notes in the presenter console. These have the upside that they're smoother to work with when presenting, but the downside that the only formatting supported is \lstinline|\\| for newlines.
+
+\subsection{Brandt's \texttt{pnote}}
+
+There are two packages called \pkg{pdfpc-latex-notes}, one by \href{https://github.com/cebe/pdfpc-latex-notes}{Carsten Brandt} and a fork by \href{https://github.com/p4pyru5/pdfpc-latex-notes}{p4pyru5}. These both generate PDFPC compatible notes using \lstinline|\pnote{Some wonderful note.}|. They served as the inspiration for PDFPC's official solution, but each come with their own (varying support for formatting, wider integration, {\it etc\/}).
+
+\subsection{Usher's \texttt{bnote}}
+
+The original version of the University of Edinburgh \pkg{beamer} template by \href{https://www.ed.ac.uk/profile/saturnino-luz}{Saturnino Luz} at the \href{https://www.ed.ac.uk/usher}{Usher Institute} included its own package, \pkg{beamernotes}, for generating a PDFPC compatible notes file.
+
+To use it save \href{https://github.com/Foggalong/edinburgh-math-latex/blob/4ac2ffb765a7d9dc420396dd10bdafcc0c561398/beamernotes.sty}{\texttt{beamernotes.sty}} either to your \LaTeX{} path or local to your project. Then add
+
+\begin{lstlisting}
+\usepackage{beamernotes}
+\end{lstlisting}
+
+to your document header and use
+
+\begin{lstlisting}
+\bnote{Some wonderful note.}
+\end{lstlisting}
+
+to write your notes. This solution had the upside that your notes were included in a separate file still automatically read by PDFPC, but the downside that all formatting was lost {\it including} the ability to write newlines.
+
+\section{Acknowledgements}
+
+The original \pkg{beamertheme-edmaths} was written by \href{https://www.ed.ac.uk/profile/saturnino-luz}{Saturnino Luz} for \href{https://www.ed.ac.uk/usher}{Usher}, then modified by \href{https://github.com/bencwbrown}{Ben Brown} with general university branding. Both are freely provided under the terms of the \href{https://choosealicense.com/licenses/lppl-1.3c/}{\LaTeX{} Project Public License v1.3c} and from 2020 onwards have been maintained by \href{https://www.maths.ed.ac.uk/~jfogg/}{Josh Fogg} (me).
+
+If you have any issues using \pkg{beamertheme-edmaths} don't hesitate to get in touch either by \href{mailto:j.fogg@ed.ac.uk}{email} or on \href{https://github.com/Foggalong/edinburgh-math-latex/issues/new?assignees=&labels=pres&projects=&template=beamer-issue.md&title=}{GitHub}. Feel free pop me a message just to say hi too, it always makes my day!
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/pdfpc-screenshot.png b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/pdfpc-screenshot.png
new file mode 100644
index 0000000000..59cc944e2f
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/pdfpc-screenshot.png
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-presentation.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-presentation.tex
new file mode 100644
index 0000000000..1f67be3c55
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-presentation.tex
@@ -0,0 +1,82 @@
+%% This file is an example of using beamerthemeedmaths.sty to style a Beamer
+%% presentation. While the style is LPPL 1.3 licensed, this example is given
+%% under a 0BSD license (https://choosealicense.com/licenses/0bsd), meaning
+%% it can be freely used, copied, modified, and/or redistributed with or
+%% without attribution. For instructions on using the style, see the README.md
+%% file or https://github.com/Foggalong/edinburgh-math-latex.
+
+\documentclass[notes]{beamer}
+\usetheme{edmaths}
+\usepackage{lipsum}
+\usepackage[overridenote=true]{pdfpc}
+
+\pdfcompresslevel=9
+\pdfobjcompresslevel=3
+
+\title[Insert Title (short version of title)]{Title of Presentation}
+\subtitle{Insert Subtitle (Optional)} % Optional
+\author{Author Name}
+\date{n\textsuperscript{th} Month YYYY}
+
+\begin{document}
+
+
+\begin{frame}
+ \titlepage{}
+\end{frame}
+\note{
+ This generates notes for pdfpc. \\
+ \\
+ These notes also appear
+ on the handout/article versions.
+}
+
+
+\begin{frame}[t]{Header title bold}\label{sec:Slide1}
+ Main body text Sans. Here is a way to \alert{highlight text}.
+ \begin{itemize}
+ \item Bullet points
+ \item Sub-lists\ldots
+ \begin{itemize}
+ \item subitem
+ \end{itemize}
+ \item \lipsum[2]
+ \end{itemize}
+\end{frame}
+\note{
+ This is a note for the first slide. Mention how something happens.
+}
+
+
+\begin{frame}{Inserting a figure, some maths\ldots}
+ Example of a reference to another part of the presentation (slide~\ref{sec:Slide1}). Also an example of a slide not vertically aligned to top.\newline
+
+ \begin{itemize}
+ \item Here's a figure:
+ \begin{figure}[h]
+ \centering
+ \colorbox{blue}{\includegraphics[width=.13\linewidth]{images/edinburgh-logo}}
+ \caption{The University of Edinburgh's logo}\label{fig:edinburgh-logo}
+ \end{figure}
+ \item And here's a famous equation:
+ \begin{eqnarray}
+ \label{eq:schroedinger}
+ i\hbar {\frac{\partial}{\partial t}}|\psi (t)\rangle ={\hat{H}}|\psi (t)\rangle
+ \end{eqnarray}
+ \end{itemize}
+\end{frame}
+
+
+\begin{frame}[t]{References}
+ The stylesheet {\bf\texttt{edmaths.sty}} provides a styling for LaTeX{} documents which satisfies University of Edinburgh requirements~\cite{koeppe2007}. \newline
+
+ \lipsum[4]\newline
+
+ References can be added to the bottom of slides, or on a new slide.
+ \vfill
+ \bibliography{example-references}
+ \bibliographystyle{ieeetr}
+\end{frame}
+
+
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-references.bib b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-references.bib
new file mode 100644
index 0000000000..cd65755781
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-references.bib
@@ -0,0 +1,10 @@
+ This is an example biblography used in example-presentation.tex and
+ example-report.tex, examples of the edmaths Beamer and report styles
+ respectively. When creating a biblography you might find these bibtex
+ templates useful: https://verbosus.com/bibtex-style-examples.html
+
+@misc{koeppe2007,
+ title = {Package `edmaths'},
+ author = {Thomas Koeppe},
+ year = {2007}
+}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/LICENSE.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/LICENSE.md
new file mode 100644
index 0000000000..ef516053f4
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/LICENSE.md
@@ -0,0 +1,5 @@
+# Copyright Notice
+
+The images `edinburgh-logo` and `white-tied-in` are copyright © The University of Edinburgh 2024. They must not be used as part of derived or independent works without the explicit permission of The University of Edinburgh. Please note that this **does not** affect use as part of compiled LaTeX documents using this stylesheet for the university.
+
+The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336, VAT Registration Number GB 592 9507 00, and is acknowledged by the UK authorities as a “Recognised body” which has been granted degree awarding powers.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.pdf
new file mode 100644
index 0000000000..f35a67f63f
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.svg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.svg
new file mode 100644
index 0000000000..a4470b6219
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.svg
@@ -0,0 +1,8 @@
+<svg width="86.7" height="87.2" version="1.1" viewBox="0 0 86.7 87.2" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+<style type="text/css">
+ .st0{clip-path:url(#SVGID_2_);}
+ .st1{fill:none;stroke:#FFFFFF;stroke-width:3;stroke-miterlimit:1;}
+ .st2{fill:#FFFFFF;}
+ .st3{fill:none;stroke:#FFFFFF;stroke-miterlimit:1;}
+</style>
+<path class="st2" d="m73.6 41c0-0.6-0.2-1.2-0.2-1.8-0.1-0.6-0.1-1.3-0.2-1.9-0.4-1.7-0.8-3.3-1.4-4.9-0.1-0.2-0.2-0.4-0.3-0.7-0.2-0.5-0.4-0.9-0.6-1.3-0.1-0.1-0.1-0.3-0.2-0.4-0.2-0.4-0.3-0.8-0.5-1.2-0.1-0.2-0.3-0.4-0.4-0.7-0.1-0.2-0.2-0.5-0.3-0.7-0.4-0.7-0.9-1.3-1.3-1.9-0.2-0.2-0.3-0.4-0.5-0.6s-0.4-0.5-0.6-0.7-0.4-0.3-0.5-0.5c-0.1-0.1-0.1-0.2-0.2-0.4s-0.3-0.3-0.4-0.4l-0.2-0.2c-0.2-0.2-0.4-0.5-0.6-0.7s-0.4-0.4-0.6-0.5l-0.6-0.6c-0.3-0.2-0.5-0.4-0.8-0.6s-0.5-0.5-0.8-0.7c-0.2-0.1-0.4-0.2-0.5-0.3-0.2-0.2-0.4-0.3-0.7-0.5-0.2-0.1-0.3-0.3-0.5-0.4-0.1-0.1-0.2-0.1-0.4-0.2s-0.3-0.2-0.5-0.3c-0.5-0.3-1.1-0.6-1.7-0.9-0.2-0.1-0.4-0.3-0.6-0.4-0.4-0.2-0.7-0.4-1.1-0.5-0.3-0.1-0.6-0.2-0.9-0.4-0.1-0.1-0.3-0.2-0.4-0.2s-0.2-0.1-0.3-0.1c-0.2-0.1-0.4-0.2-0.5-0.2-0.6-0.2-1.1-0.3-1.7-0.5-0.3-0.1-0.6-0.2-0.8-0.3-0.6-0.2-1.2-0.3-1.8-0.4l-1.2-0.3c-0.3 0-0.5-0.1-0.8-0.1-0.4-0.1-0.9-0.2-1.4-0.2h-0.5c-0.1 0-0.2 0-0.4-0.1h-0.7c-0.5 0-1.1-0.1-1.7-0.1-0.2 0.1-0.5 0-0.8 0h-0.9-0.2-0.6c-0.1 0-0.2 0.1-0.3 0.1h-0.3-0.3-0.2c-0.1 0-0.3 0-0.4 0.1-0.3 0-0.7 0-0.9 0.2h-0.2c-0.2 0-0.4 0-0.6 0.1-0.5 0-0.9 0.2-1.3 0.3-0.4 0-0.7 0-0.9 0.2-0.2 0-0.4 0-0.5 0.1-0.3 0-0.6 0.2-0.8 0.3s-0.3 0.1-0.5 0.1c-0.3 0-0.6 0.2-0.8 0.3s-0.3 0.1-0.5 0.2c-0.9 0.4-1.8 0.8-2.7 1.3-0.2 0.1-0.3 0.2-0.4 0.3-1.1 0.5-2.1 1.1-3 1.9-0.3 0.2-0.5 0.4-0.8 0.6l-0.4 0.4c-0.3 0.2-0.5 0.4-0.8 0.6-0.5 0.4-1 0.9-1.5 1.4-0.3 0.3-0.6 0.5-0.9 0.8-0.1 0.1-0.2 0.2-0.3 0.4l-0.4 0.4c-0.2 0.2-0.4 0.5-0.6 0.7s-0.4 0.4-0.5 0.6c-0.1 0.1-0.2 0.2-0.2 0.3-0.3 0.4-0.6 0.7-0.9 1.1l-0.6 0.9c-0.3 0.3-0.6 0.8-0.8 1.2-0.1 0.1-0.1 0.2-0.2 0.4-0.2 0.3-0.4 0.6-0.5 0.9-0.2 0.3-0.3 0.7-0.4 1-0.1 0.1-0.1 0.2-0.2 0.4-0.2 0.3-0.3 0.6-0.4 0.9-0.1 0.2-0.1 0.4-0.2 0.6l-0.3 0.6c-0.1 0.2-0.1 0.4-0.2 0.7-0.1 0.2-0.2 0.5-0.3 0.7-0.4 1.4-0.8 2.9-1.1 4.4 0 0.3-0.1 0.6-0.1 0.9s-0.2 0.7-0.2 1 0 0.6-0.1 0.8c0 0.2 0 0.4-0.1 0.6v3.6c0 0.6 0.1 1.2 0.2 1.7v0.7c0.1 0.8 0.2 1.6 0.3 2.3 0.1 0.2 0.1 0.4 0.2 0.6 0.1 0.6 0.3 1.2 0.4 1.8 0.1 0.1 0.1 0.3 0.2 0.4 0 0.1 0.1 0.3 0.1 0.4 0.2 0.6 0.5 1.3 0.7 1.9 0.1 0.2 0.2 0.5 0.3 0.7s0.1 0.3 0.2 0.5l0.6 1.2c0.2 0.3 0.4 0.6 0.5 1 0.1 0.1 0.1 0.2 0.1 0.4l0.2 0.2c0.1 0.1 0.1 0.3 0.2 0.4 0.2 0.3 0.3 0.5 0.5 0.8 0.1 0.2 0.2 0.3 0.3 0.5 0.2 0.2 0.3 0.4 0.5 0.6 0.1 0.2 0.2 0.3 0.3 0.5 0.2 0.3 0.4 0.5 0.6 0.8 0.2 0.2 0.4 0.4 0.5 0.7 0.2 0.2 0.4 0.5 0.7 0.7 0.2 0.2 0.3 0.5 0.6 0.7 0.3 0.3 0.6 0.6 0.9 0.8l0.4 0.4c0.2 0.2 0.5 0.4 0.8 0.6 0.2 0.2 0.5 0.4 0.7 0.7 0.2 0.1 0.3 0.3 0.5 0.4 0.2 0.2 0.4 0.4 0.6 0.5 0.3 0.2 0.5 0.4 0.8 0.6l0.6 0.3c0.2 0.1 0.4 0.3 0.6 0.4s0.4 0.2 0.6 0.4c0.8 0.5 1.6 0.9 2.4 1.3 0.4 0.2 0.7 0.4 1.1 0.5s0.7 0.3 1.1 0.4c0.1 0 0.3 0.1 0.4 0.1 0.3 0.1 0.7 0.3 1 0.4 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.6 0.3 0.9 0.3 0.4 0.1 0.8 0.1 1.1 0.2 0.6 0.1 1.1 0.3 1.7 0.4h0.6c0.3 0 0.6 0.1 0.8 0.1h0.7c0.1 0 0.3 0 0.4 0.1h0.4c0.3 0.1 0.7 0.1 1 0.2h0.5 0.3c0.3 0 0.7 0 1 0.1h0.6c0.4 0 0.8-0.1 1.1-0.1h0.5c0.2 0 0.5-0.1 0.7-0.1l2.4-0.3c0.3-0.1 0.5-0.1 0.8-0.2s0.7-0.1 1-0.2c0.2 0 0.3-0.1 0.5-0.2 0.3-0.1 0.5-0.2 0.8-0.2 0.1 0 0.2-0.1 0.4-0.1 0.2-0.1 0.4-0.1 0.6-0.1 0.4-0.1 0.8-0.3 1.2-0.4 0.2-0.1 0.5-0.2 0.7-0.3s0.5-0.2 0.7-0.3c0.1 0 0.1-0.1 0.2-0.1 0.2-0.1 0.5-0.2 0.7-0.3 0.3-0.2 0.5-0.3 0.8-0.5 0.1-0.1 0.3-0.1 0.4-0.2 0.4-0.2 0.8-0.5 1.2-0.7 0.3-0.2 0.7-0.4 1-0.6s0.6-0.5 0.9-0.7 0.6-0.5 1-0.7l0.2-0.2c0.1 0 0.2-0.1 0.2-0.1 0.3-0.2 0.5-0.5 0.8-0.7l0.6-0.6c0.2-0.2 0.4-0.4 0.7-0.6 0.1-0.1 0.1-0.2 0.2-0.3 0.2-0.2 0.4-0.3 0.5-0.5 0.1-0.1 0.2-0.3 0.3-0.4 0.4-0.4 0.8-0.8 1.1-1.2 0.3-0.3 0.5-0.6 0.8-1 0.2-0.2 0.4-0.5 0.5-0.8l0.3-0.3c0.3-0.4 0.6-0.8 0.9-1.2 0.1-0.1 0.1-0.3 0.2-0.4s0.1-0.2 0.2-0.3 0.1-0.2 0.2-0.4c0.2-0.3 0.4-0.7 0.6-1s0.3-0.5 0.5-0.8c0.1-0.3 0.2-0.5 0.3-0.8s0.3-0.6 0.4-0.8c0.4-1.2 0.9-2.4 1.2-3.6 0-0.1 0.1-0.3 0.1-0.4 0.1-0.5 0.2-0.9 0.3-1.4 0-0.2 0.1-0.5 0.1-0.7 0.1-0.4 0.1-0.8 0.2-1.2 0-0.3 0-0.6 0.1-1 0-0.1 0-0.2 0.1-0.4v-0.8c0-0.1 0.1-0.3 0.1-0.4v-0.6c0.1-1.7 0.2-3 0.1-4.2m-36.3-25.8c0.3 0 0.5-0.1 0.7-0.2 0.4-0.1 0.8-0.2 1.2-0.2h0.9c0.4 0 0.8-0.1 1.2-0.2h0.5c0.2 0 0.4 0 0.6-0.1h1.2c0.2 0 0.5 0 0.7 0.1 0.2 0 0.4 0.1 0.5 0.1h0.8 0.4 0.5c0.2 0 0.4 0.1 0.7 0.1h0.3c0.1 0 0.2 0.1 0.3 0.1s0.2 0.1 0.4 0.1c0.5 0.1 1 0.1 1.5 0.2h0.1c0 0.1-0.8 0-1 0h-0.3-0.7-0.3-0.4-0.3c-0.3 0-0.8-0.1-1.1 0-0.3 0-0.6 0-0.9-0.1-0.1 0-0.4-0.1-0.5 0h-0.4c-0.2 0-0.3-0.1-0.5 0-0.1 0-0.2 0-0.3 0.1h-2.1c-0.1 0-0.3 0-0.4-0.1h-1c-0.2 0-0.7-0.1-0.8 0-0.5 0.1-1 0.1-1.5 0.1zm-3.8 1.1c0.1 0 0.3-0.2 0.4-0.2s0.2-0.1 0.3-0.1c0.1-0.1 0.2-0.1 0.3-0.1 0.3-0.1 0.7-0.2 1-0.3h0.7 0.9 0.5 0.8 1.1c1.3 0 2.6 0.1 3.9 0.1h0.6 0.9c1.5 0 3-0.1 4.5 0h1.5 0.6c0.4 0.1 0.8 0.4 1.2 0.5 0.2 0 0.8 0.1 1 0.3h-0.1-0.2-0.6c-0.2 0-0.4-0.1-0.6-0.1h-0.6-0.3-0.6-0.4-0.6c-0.3 0-1-0.1-1.2 0-0.1 0-0.3-0.1-0.4 0-0.2 0-0.3 0-0.5-0.1h-0.6-0.4-0.5-0.5-1.4-0.5-0.3-0.3c-0.4 0-0.8-0.1-1.2-0.1h-1.4c-0.2 0-0.6-0.1-0.7 0h-1.1-0.4-0.2-1.5-0.2-0.6-0.3c-0.6 0.2-1.3 0.2-2 0.1zm-2.1 0.9c0.1-0.1 0.2-0.1 0.2-0.2 0.7-0.4 1.6-0.2 2.4-0.2h1.4 0.4 0.8 2.9 0.6 0.8 0.3 0.3 0.4c0.5 0 0.9 0.1 1.4 0.1 0.2 0 0.5-0.1 0.7-0.1 0.6 0 1.2 0.1 1.8 0.1 0.3 0 0.6-0.1 0.9-0.1h1.5 0.8 3.3c0.2 0 0.3 0.1 0.5 0.1s0.5 0 0.7-0.1c0.3 0 0.8 0.1 1.1 0 0.4 0 0.7 0.2 1 0.4 0.3 0.1 0.7 0.2 0.9 0.4v0.1h-0.1-0.5-0.6-0.2c-0.2 0-0.9-0.1-1 0h-0.4-0.7c-0.2 0-0.4-0.1-0.6 0h-0.6-0.9c-0.3 0-0.8-0.1-1.1 0h-0.2-0.7-0.3c-0.2 0-0.5-0.1-0.7 0h-0.6-0.4-1-0.4-1.1-0.4-0.9-1.1-0.3-0.9-0.4-0.2-0.3c-1.2 0-2.3-0.1-3.5-0.1h-0.5c-0.1 0-0.3-0.1-0.4 0h-0.7-1.5c-0.2 0-0.8-0.1-0.9 0h-0.7-0.2c-0.3 0-0.5-0.1-0.8-0.1 0-0.1 0.6-0.3 0.7-0.3m-2.7 1.5c0-0.1 0.2-0.1 0.2-0.2 0.1-0.1 0.3-0.2 0.4-0.2 0.1-0.1 0.3-0.2 0.4-0.2 0.4-0.1 1.1-0.1 1.5-0.1h1.3 1.1 0.4c0.7-0.1 1.5 0 2.2 0h1.1c0.5 0 0.9 0.1 1.4 0.1h0.8c0.4 0 0.7-0.1 1.1-0.1 0.8 0 1.6 0.1 2.3 0.1h0.3 0.4 0.6 0.7 0.8c0.5 0 1 0.1 1.6 0.1 0.2 0 0.4-0.1 0.7-0.1h0.5 0.2c0.1 0 0.3 0.1 0.4 0.1h0.6 0.8c0.2 0 0.4-0.1 0.6 0h0.9 0.5 1.8 0.8 1.7 0.8c0.1 0 0.2 0.1 0.3 0.2 0.2 0.2 0.5 0.3 0.7 0.5 0 0.1-0.4 0.1-0.5 0.2h-0.4-0.4-0.5-0.3-1.1-0.4-0.4-0.2-2.7c-0.2 0-0.6-0.1-0.8 0h-0.5c-0.2 0-0.6-0.1-0.8 0h-0.4c-0.2 0-0.5-0.1-0.7 0h-0.5c-0.2 0-0.4-0.1-0.5 0h-0.2-1.2-0.5c-0.2 0-0.7-0.1-0.9 0h-0.3c-0.2 0-0.4-0.1-0.6 0h-0.4-1.8c-0.3 0-0.8-0.1-1.1 0h-0.2c-0.2 0-0.5 0-0.7-0.1h-1.7c-0.2 0-0.3-0.1-0.5-0.1h-1.1-0.3-1.7-0.9c-0.2 0-0.6-0.1-0.8 0h-0.3-0.3-0.8-0.4-0.3c-0.3 0-0.6 0-1-0.1-0.3 0-0.6 0-0.8-0.1v0m-1.7 1.2s0.2-0.1 0.2-0.2c0.3-0.2 0.5-0.3 0.8-0.5 0.2-0.1 0.4-0.1 0.6-0.1s0.5 0 0.7 0.1h1.4 0.7 0.7 0.6c0.3 0 0.6 0.1 1 0.1 0.5 0 1-0.1 1.4 0h0.4 1.1 2.1 1.6 1.1 0.4c0.3 0 0.6 0.1 0.9 0.1 0.4 0 0.8-0.1 1.2-0.1 0.3 0 0.6 0 1 0.1h1 0.4 0.4 0.9 1.5c0.3 0 0.6 0 0.9-0.1h2.1 0.4 2.2c0.3 0 0.7-0.1 1 0 0.4 0 0.7 0.1 1.1 0.1 0.3 0 0.7-0.1 1-0.1 0.2 0 0.4 0 0.6-0.1 0.3 0 0.6 0 0.8 0.1 0.1 0 0.2 0.2 0.3 0.2s0.1 0.1 0.2 0.1c0.2 0.1 0.3 0.3 0.5 0.4l-0.1 0.1h-0.6c-0.2 0-0.4-0.1-0.6 0h-0.2-1.3-1.2-0.4-0.3-0.6-0.7-0.6c-0.2 0-0.3-0.1-0.5 0h-1.5-0.5-0.3-1.1-0.4c-0.4 0-1-0.1-1.3 0h-0.7-1.8c-0.2 0-0.6-0.1-0.8 0h-0.3-0.9-2.5-1.3-0.4-0.4-0.8-0.2-0.8-0.4-1.2c-0.1 0-0.3-0.1-0.4 0h-1.7c-0.1 0-0.3-0.1-0.4 0h-0.3-2.1c-0.3 0-1-0.1-1.2 0h-0.2-1.1c-0.3-0.1-0.7-0.1-1.1-0.2zm-1.7 1.2c0.1 0 0.1-0.1 0.2-0.1 0.2-0.1 0.7-0.6 0.9-0.6h1.2 0.7 0.7 1.2c0.8 0 1.5 0.1 2.2 0.1h0.5 1.2c0.2 0 0.4 0 0.6 0.1h0.7 0.7c0.6 0 1.1-0.1 1.7-0.1h0.8 0.4 0.8c0.4 0 0.9 0.1 1.3 0.1h0.7 0.8 0.4 0.3 0.4 1 0.3c0.2 0 0.4 0 0.6 0.1h0.8 0.5 1.1 0.6 1.1 0.5 0.4 0.7c0.5 0 1 0.1 1.5 0.1 0.9 0 1.7-0.1 2.6-0.1h0.8 0.5 1.3c0.3 0 0.6 0 0.9 0.1 0.2 0 0.4 0 0.5-0.1h0.5c0.3 0 0.6 0 1 0.1 0.1 0 0.8 0.5 0.8 0.7h-0.1-0.6c-0.4 0-0.9-0.1-1.2 0.1h-0.2-0.4c-0.3 0-0.8-0.1-1 0-0.2 0-0.4 0-0.6-0.1h-1.2c-0.2 0-0.6-0.1-0.8 0h-2.4-1.1-0.4-0.9c-0.2 0-0.4-0.1-0.5 0h-0.8-0.3-0.2-1-0.4c-0.2 0-0.9-0.1-1 0-0.2 0-0.7-0.1-0.8 0h-0.2c-0.3 0-0.6-0.1-1-0.1h-0.3c-0.3 0-0.7-0.1-1 0h-0.2c-0.2 0-0.6-0.2-0.8-0.1h-1-0.3c-0.2 0-0.6-0.1-0.8 0h-0.2-1.2-0.4-0.7-0.4-0.3c-0.1 0-0.3 0-0.4 0.1h-0.4c-0.2 0-0.6-0.2-0.8-0.1h-1-0.3-0.3-0.2c-0.5 0-0.9 0-1.3-0.1h-0.3-1.3c-0.2 0-0.6-0.1-0.8 0h-0.4c-0.1 0-0.4-0.1-0.5 0h-0.2-1.2-0.4c-0.8-0.1-1.3-0.1-1.9-0.1zm47 22c0 0.1-0.1 0.1-0.2 0.1h-0.4c-0.2 0-0.5-0.1-0.6 0h-2.4c-0.2 0-0.6-0.1-0.7 0-0.2 0-0.7-0.1-0.8 0-0.2 0-0.4-0.1-0.6 0h-0.9-1.3v0.4h0.2 0.7 0.5 0.8 2.8 1.3 0.7 0.5 0.3c0.1 0 0 0.7 0 0.8h-0.4c-0.2 0-0.7-0.1-0.8 0h-0.5-0.7-1.3-0.3-1.5c-0.2 0-0.5-0.1-0.7 0h-0.7c-0.1 0-0.3-0.1-0.5 0h-0.3v-0.1 0.5h0.1 0.6 0.6 1.1 0.5 0.8 0.3 0.5 0.3 0.3 0.6 0.8c0.2 0 1.1-0.1 1.3 0.1 0.1 0.1 0 0.7 0 0.8 0 0-0.2 0-0.3 0.1h-0.2-1.2-0.4-1.2-0.3-0.3-0.4-0.8c-0.1 0-0.3-0.1-0.5 0h-2-0.2v0.4h0.2 1.4 0.5c0.8 0 1.5 0.1 2.3 0.1h0.9 1.9 0.4c0 0.2 0 0.6-0.1 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.6-0.1-0.7 0h-0.3-0.2c-0.7 0-1.5-0.1-2.2-0.1-0.2 0-0.5-0.1-0.7 0-0.2 0-0.6-0.1-0.7 0h-1.8-0.6v0.4c0.1-0.1 0.5 0 0.7 0h1.6c0.3 0 0.8 0 1.1-0.1 0.4 0 0.7 0 1.1 0.1h1 1c0.3 0 0.7-0.1 1 0 0.2 0 0.1 0.6 0 0.7s-0.2 0.1-0.2 0.1h-0.2-1.5c-0.2 0-0.5-0.1-0.7 0h-0.7-1.7-0.5-0.4c-0.5 0-1 0-1.5-0.1v0.4h0.1 1.1 0.5 0.4 0.6c0.3 0 1 0.1 1.2 0h0.4 0.7 1.4c0.2 0 0.7 0 0.8 0.1 0.1 0 0 0.6 0 0.7 0 0-0.1 0-0.1 0.1-0.2 0-1-0.1-1.1 0h-0.6-0.8-0.4c-0.1 0-0.3 0-0.4 0.1-0.2 0-0.3 0-0.5-0.1h-0.8-0.4c-0.1 0-0.3 0-0.4-0.1h-1.3-0.3v0.4h0.8 0.5 1.6c0.4 0 1 0.1 1.4 0h0.8 0.4 0.4 1.4c0 0.2 0 0.4-0.1 0.5 0 0.1-0.1 0.2-0.1 0.3h-0.7-0.6-0.8-0.6c-0.2 0-0.5-0.1-0.7 0h-0.3c-0.3 0-0.6 0-0.8-0.1-0.8 0-1.6-0.1-2.4-0.1v0.4h0.2 0.3 1 0.9 0.8c0.5 0 1 0.1 1.4 0.1 0.3 0 0.6-0.1 0.9-0.1 0.2 0 1.2-0.1 1.3 0.1 0.1 0.1 0 0.2 0 0.3 0 0.2-0.1 0.4-0.2 0.5-0.5 0-1.1-0.1-1.6 0h-0.3c-0.2 0-1-0.1-1.1 0h-0.7c-0.2 0-0.4-0.1-0.6 0-0.2 0-0.5-0.1-0.7 0-0.6 0-1.1-0.1-1.7-0.1v0.4h1.1c0.3 0 0.7 0.1 1.1 0.1h1.8 0.5 0.3 0.3c0.3 0 1.3 0 1.4 0.1s0 0.2 0 0.3-0.1 0.2-0.2 0.3h-0.4-0.3-0.2c-0.2 0-0.7-0.1-0.8 0h-0.3-1.1-0.4c-0.2 0-0.4-0.1-0.6 0-0.2 0-1.8 0-2.2-0.1v0.5c0.2 0 0.3-0.1 0.5-0.1h2 0.5 1 0.5 0.8 0.3c0.2 0 0.4 0 0.6 0.1 0 0.1-0.2 0.6-0.3 0.7-0.1 0-0.2 0.1-0.3 0.1h-0.8-0.4-0.3-0.2-0.8c-0.1 0-0.3-0.1-0.4 0h-0.2-0.8c-0.2 0-0.5-0.1-0.7 0h-0.3c-0.1 0-0.6 0-0.7-0.1v0.5c0.1-0.1 0.9-0.1 1.1-0.1h0.4 1 0.6 0.5 0.9c0.2 0 0.8-0.1 1.1 0 0.1 0.1-0.1 0.4-0.1 0.4-0.1 0.1-0.1 0.3-0.3 0.3h-0.2c-0.2 0-0.3 0-0.5-0.1h-1-0.3c-0.2 0-0.6-0.1-0.8 0h-0.2-0.5-0.4-1.3v0.5c0.2 0 0.3-0.1 0.4-0.1h0.9 0.4 1.8 0.8 0.5c0.1 0 0.2 0 0.3 0.1s-0.1 0.6-0.2 0.6l-0.2 0.2h-0.6c-0.2 0-0.6-0.1-0.8 0h-0.7-0.6c-0.2 0-0.4-0.1-0.6 0h-1.4v0.4h0.4 0.6c0.2 0 0.4 0 0.6-0.1 0.3 0 0.6 0 0.9 0.1h0.7c0.3 0 0.6 0.1 0.9 0 0.2 0 0.4 0.1 0.6 0.1 0 0.2-0.3 0.7-0.5 0.8h-0.6c-0.3 0-1-0.1-1.2 0h-1.5c-0.2 0-0.5 0-0.7-0.1v0.4h0.7 0.4c0.4 0 0.7 0.1 1.1 0.1h1.1c0.2 0 0.4 0 0.5 0.1 0 0-0.4 0.8-0.7 0.8s-0.9 0-1.2-0.1c-0.5 0-0.9 0-1.4-0.1h-0.7v0.4c0.8 0 1.7 0 2.4 0.1 0.2 0 0.4 0 0.7 0.1v0.1c-0.1 0-0.1 0.1-0.1 0.1-0.5 0.3-0.7 0.7-0.9 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.6-0.1-0.7-0.1-0.2 0-0.6-0.1-0.8 0h-0.8v0.4h1.2 0.5 0.7c0 0.2-0.4 0.7-0.6 0.7h-0.4-1.4v0.4h0.3c0.2 0 1.1 0 1.1 0.1 0.1 0.2-0.4 0.6-0.5 0.7h-0.9c0 0.2-0.1 0.3-0.1 0.4h0.7c0 0.2-0.8 0.9-1 1h-0.1c-0.4 0.6-0.9 1.1-1.7 1.7-0.6 0.5-1.3 0.9-2 1.2h0.1c0.4 0-0.5 0.6-0.6 0.6h-0.9-0.1c-0.6 0.2-1.3 0.4-2 0.5h0.5 0.6 0.3 0.4 0.4v0.1c-0.2 0.2-0.4 0.3-0.6 0.4-0.1 0.1-0.2 0.2-0.4 0.3-0.1 0-0.2 0.1-0.4 0.1h-0.3-2c-0.2 0-0.7-0.1-0.9 0-0.3 0-0.6-0.1-0.8 0h-0.6c-0.4 0-0.7-0.1-1.1-0.1h-0.2-1.7c-0.2 0-0.5 0.1-0.7 0.1-0.7 0.1-1.2 0.2-1.7 0.4h1.7 1.2 2.9 1c0.2 0 0.3 0 0.5-0.1h2.2c-0.1 0-0.3 0.2-0.4 0.2-0.3 0.1-0.6 0.3-0.9 0.4-0.2 0.1-0.4 0.2-0.6 0.2-0.4 0.1-0.8 0-1.2 0h-0.4-0.5-0.6c-0.2 0-0.5-0.1-0.7 0h-1.2-0.6-0.4-0.7c-0.2 0-0.8-0.1-1 0-0.5 0-1.3-0.1-1.9-0.1-0.2 0.2-0.4 0.3-0.5 0.5h0.8c0.7-0.1 1.5 0 2.3 0h1.2 0.7 0.4c0.2 0.1 0.7 0 0.9 0 0.4 0 0.8 0.1 1.1 0.1 0.2 0 0.4 0 0.5-0.1h0.7-0.1c-0.3 0.1-0.5 0.2-0.8 0.3-0.1 0.1-0.3 0.1-0.4 0.2-0.2 0.1-0.4 0.1-0.6 0.2h-0.8-0.5-0.4-0.4-0.2-0.7c-0.1 0-0.4-0.1-0.5 0h-0.4-0.6-0.3-0.4-0.2c-0.2 0-0.8-0.1-1 0h-0.4-0.8c-0.1 0.1-0.1 0.3-0.2 0.4 0.6-0.1 1.4 0 1.9 0s1 0 1.5-0.1c0.2 0 0.4 0 0.6-0.1h1.1 1.1c-0.3 0-0.6 0.2-0.9 0.2-0.2 0-0.4 0-0.6 0.1-0.3 0-0.6 0.1-0.9 0.2h-0.2c-0.2 0-0.3 0-0.5 0.1-0.1 0-0.5 0.1-0.6 0.1h-0.5-0.7-0.2-1.2c-0.6 0-1.2 0.1-2 0h-0.2c-0.3-0.1-0.7-0.1-1-0.2h-0.5c-0.2 0-0.4-0.1-0.7-0.1h-0.6c-1.1-0.2-2.3-0.3-3.3-0.6-0.2 0-0.6-0.1-0.7-0.2 0.5 0.1 1.1 0.1 1.6 0.1s0.9 0.1 1.4 0.1h0.4 0.4 0.6 0.4c0.2 0 0.3 0.1 0.5 0.1h1.4c-0.1-0.2-0.2-0.3-0.3-0.5h-0.7c-0.2 0-0.4-0.1-0.6 0h-1.3c-0.2 0-0.3-0.1-0.5 0-0.4 0-0.8-0.1-1.3-0.1h-1.8c-0.2 0-0.4-0.1-0.6-0.1h-0.4c-0.2 0-0.4-0.1-0.5-0.1-0.1-0.1-0.2-0.1-0.4-0.1s-0.4-0.1-0.6-0.1-0.4-0.1-0.6-0.2c-0.1 0-0.2-0.1-0.3-0.1h0.3 1.2c0.3 0 0.6 0 0.9-0.1h1.2c0.2 0 0.3 0 0.5 0.1 0.3 0 0.6-0.1 0.9-0.1 0.4 0 0.9 0.1 1.3 0.1h1.5 0.9c-0.1-0.1-0.3-0.2-0.5-0.4h-0.4-0.3c-0.3 0-0.6 0-0.9-0.1h-0.3c-0.1 0-0.3-0.1-0.5 0h-1-0.4-1c-0.2 0-0.5-0.1-0.7-0.1s-0.4 0-0.5 0.1h-0.7c-0.7 0-1.5 0-2.1-0.1-0.3 0-0.6 0-0.8-0.1-0.4-0.1-0.8-0.5-1.2-0.7v-0.1h1.3c0.2 0 0.5 0.1 0.7 0.1h0.9 0.7 0.4 0.7 2.1 1.6 0.2 0.4c-0.4-0.2-0.9-0.3-1.4-0.4h-0.2-1.1-0.4-0.3-1.1-0.7-0.6-1.4-0.5-0.7c-0.2 0-0.3-0.1-0.5-0.1-0.3 0-0.7 0-1-0.1s-0.5-0.3-0.7-0.4c-0.1-0.1-0.3-0.1-0.3-0.3 0.6 0 1.3 0 1.9 0.1h1.3 0.6c-1.1-0.1-2-0.3-2.8-0.4h-0.4-0.5-0.2c-0.4 0-0.7-0.1-0.9-0.3l-0.2-0.2h0.3c-1.2-0.4-2.1-1-2.9-1.7-0.5-0.5-0.9-1.1-1.2-1.8h-0.2c-0.2 0-0.7-0.6-0.8-0.8 0 0 0.2 0 0.2-0.1h0.5c0-0.1 0-0.2-0.1-0.3h-1c-0.1 0-0.7-0.6-0.7-0.7v-0.1h0.5 1v-0.4h-0.2-0.3c-0.1 0-0.5-0.1-0.6 0h-0.2-0.7c-0.2-0.1-0.6-0.6-0.6-0.8h0.2 0.5c0.2 0 0.5 0 0.7-0.1h1v-0.4h-0.3-0.4-0.4-0.5-0.3c-0.1 0-0.2 0-0.3 0.1-0.2 0-0.4 0-0.5-0.1-0.1 0-0.5-0.6-0.4-0.7s0.7-0.1 0.8-0.1h2.3v-0.4h-0.9-0.3c-0.2 0-0.5-0.1-0.6 0-0.2 0-0.7-0.1-0.9 0h-0.4c-0.1 0-0.2 0-0.3-0.1s-0.1-0.2-0.2-0.3c-0.1-0.2-0.3-0.4-0.3-0.7 0.2 0 0.4 0.1 0.7 0.1h0.6 1 0.5c0.3 0 0.7 0.1 1 0h0.3v-0.4h-0.8-0.3-1.2-0.4-0.6-0.3-0.4c-0.1 0-0.2 0-0.3-0.1-0.2-0.1-0.4-0.6-0.5-0.8 0 0 0.1 0 0.1-0.1 0.4 0 0.7 0.1 1.1 0.1h0.3 0.3 0.6c0.2 0 0.4-0.1 0.7 0 0.2 0 0.3 0.1 0.5 0.1s0.7-0.1 1 0v-0.4h-0.2-3-0.4-0.6-0.3c-0.1 0-0.3 0-0.4-0.1-0.2-0.1-0.3-0.5-0.3-0.7h0.6 0.5 0.9 0.4 0.4c0.3 0 0.7 0 1 0.1h0.5c0.3 0 0.6 0.1 1 0.1v-0.5h-0.1-1-1c-0.2 0-0.3 0-0.5-0.1h-0.9c-0.2 0-0.5-0.1-0.6 0h-1.2c0-0.1-0.1-0.1-0.1-0.2-0.1-0.1-0.2-0.4-0.1-0.5l0.1-0.1h0.9 0.6 0.4 0.3 0.8 1.3c0.3 0 0.8 0.1 1.1 0.1v-0.4c-0.5 0-1.7-0.1-1.9 0h-0.9-1.1c-0.2 0-0.4 0-0.6-0.1h-0.4c-0.1 0-0.3-0.1-0.4 0h-0.2c-0.1 0-0.2 0-0.3-0.1s-0.3-0.6-0.2-0.7c0.3-0.2 0.9 0 1.3-0.1 0.4 0 0.7 0 1.1 0.1h0.8c0.1 0 0.3 0 0.4 0.1h1.9 0.7v-0.5h-0.3-1-0.5-1.2c-0.1 0-0.4-0.1-0.5 0h-0.8c-0.2 0-0.8-0.1-1 0-0.2 0-0.4 0-0.5-0.1-0.2 0-0.6 0-0.8-0.1-0.1-0.1-0.1-0.2-0.1-0.4 0-0.1-0.1-0.2-0.1-0.2 0.1-0.1 0.7-0.1 0.9-0.1h0.7 1.3 0.3 0.8 0.6 0.5 1.1 0.5v-0.4h-0.5-0.3-0.5-1.1-0.6-0.6c-0.2 0-0.6-0.1-0.8 0-0.3 0-0.5 0-0.8-0.1-0.3 0-1.3 0.1-1.5-0.1-0.1-0.1-0.2-0.6-0.2-0.7h0.5c0.4 0 0.8 0 1.2 0.1 0.1 0 0.2 0 0.3 0.1h1c0.3 0 0.5-0.1 0.8-0.1h0.6 0.5 1c0.2 0 0.9-0.1 1.2 0v-0.4h-0.3-0.8-0.6-0.2c-0.3 0-0.8-0.1-1 0h-0.5c-0.3 0-0.8-0.1-1 0-0.3 0-0.7-0.1-0.9 0-0.2 0-0.8-0.1-1 0-0.2 0-0.8 0-0.9-0.1s-0.1-0.2-0.1-0.3-0.1-0.2 0-0.3h0.1 0.6 1.5 0.6c1.1 0.1 2.2 0 3.4 0h1.1v-0.4h-0.5-1c-0.2 0-0.4 0-0.5 0.1h-0.3c-0.3 0-1.1-0.1-1.3 0-0.2 0-0.4-0.1-0.7-0.1-0.8 0-1.7 0-2.5-0.1-0.1 0-0.4 0-0.5-0.1s-0.1-0.5-0.1-0.7h1.6c0.3 0 0.7 0.1 0.9 0 0.4 0 0.9 0.1 1.3 0.1h0.6c0.3 0 0.5 0 0.8 0.1 0.1 0 0.2-0.1 0.4-0.1h0.7 0.2 0.8v-0.4h-0.4-0.5-0.9-0.5c-0.1 0-0.7-0.1-0.8 0h-0.5c-0.1 0-0.3-0.1-0.4 0-0.5 0-0.9-0.1-1.4-0.1h-0.4-0.7c-0.2 0-0.8 0-0.9-0.2-0.1-0.1-0.1-0.2-0.1-0.3s0-0.3 0.1-0.3c0.2-0.1 0.5 0 0.8 0h2.1 0.6 0.7 0.3 1 0.4 1.2 0.5v-0.4h-1c-0.2 0-0.7-0.1-0.9 0-0.2 0-0.7-0.1-0.8 0h-0.5-1.1-0.6c-0.2 0-0.7-0.1-0.9 0-0.3 0-0.6-0.1-0.9-0.1h-0.2-0.3c-0.6 0-0.6-0.1-0.6-0.7h0.1 0.4c0.3 0 0.9 0.1 1.2 0h0.7 0.7 0.5 0.3 1.6 0.4 0.5 0.4 1v-0.4h-0.5-0.7-0.4-0.6c-0.2 0-0.4-0.1-0.5 0h-0.7-3.2-0.6c-0.1 0-0.2 0-0.3-0.1-0.1 0-0.2 0-0.3-0.1s-0.1-0.6-0.1-0.8c0.2 0 0.4 0 0.5-0.1 0.3 0 0.8 0.1 1.1 0h0.4 0.3 0.7 0.5 0.5 0.4 3.5v-0.4h-0.6-1.2-0.5c-0.2 0-0.4-0.1-0.5 0h-1.7-0.3-1.6c-0.2 0-0.4-0.1-0.5 0h-0.2c-0.2 0-0.5 0-0.7-0.1-0.1-0.1-0.1-0.6 0-0.7s0.1-0.1 0.2-0.1c0.8 0 1.6 0 2.4 0.1h0.6 2 0.4 0.3 1.4 0.5v-0.4c-0.2 0-0.4-0.1-0.6 0h-2.6c-0.2 0-0.7-0.1-0.8 0h-3.1c-0.2 0-0.5 0-0.8-0.1 0-0.1 0-0.2-0.1-0.3 0-0.2 0-0.4 0.1-0.5 1.1 0 2.2 0.1 3.3 0.1h0.4c0.3 0 0.6 0.1 1 0.1h0.4 0.9c0.2 0 1.5 0 2 0.1v-0.5h-0.3-0.5-0.4-1.2-0.4-1.1-1.6c-0.2 0-0.6-0.1-0.7 0h-0.6c-0.4 0-0.7-0.1-1.1-0.1 0-0.2 0-0.7 0.1-0.7h0.4 0.3 0.4 1 0.8 1 1.8 2v-0.4h-0.2-0.4c-0.1 0-0.3-0.1-0.4 0-0.2 0-0.5-0.1-0.7 0-0.4 0-0.7 0-1-0.1h-0.4-0.5c-0.2 0-0.5-0.1-0.6 0h-0.8-0.4-0.9c-0.1 0-0.3-0.1-0.4 0h-0.9v-0.1c0-0.2 0-0.7 0.2-0.7h1.2 0.6 1.5 0.8 0.3c0.2 0 0.4 0 0.6 0.1h2.4v-0.4h-0.6-2.3c-0.3 0-0.9-0.1-1.1 0-0.1 0-0.3-0.1-0.4 0h-0.2-1c-0.4 0-0.7-0.1-1.1-0.1h-0.3c-0.2 0-0.5 0-0.7-0.1-0.1 0 0-0.1 0-0.1 0.1-0.5 0.1-0.6 0.7-0.6h0.4 0.5c0.3 0 0.7 0 1.1 0.1h0.5c1.5 0 3.1 0 4.6 0.1v-0.4h-0.3-1.2-0.6-0.5c-0.2 0-0.5-0.1-0.7 0-0.4 0-0.9 0-1.3-0.1h-0.4c-0.2 0-0.7-0.1-0.8 0h-1.6v-0.1c0-0.2 0-0.6 0.2-0.6 0.2-0.1 0.5-0.1 0.7-0.1h1 0.3c0.8 0.1 1.6 0.1 2.4 0.1h0.7 1 0.5 0.8v-0.4h-0.3-0.5-1.4c-0.1 0-0.4-0.1-0.5 0h-2.9-1.2c-0.2 0-0.3 0-0.4-0.1 0-0.1 0.1-0.5 0.2-0.6 0.1 0 0.1-0.1 0.2-0.1 0.6 0 1.2 0 1.8 0.1h0.7c0.1 0 0.3-0.1 0.4 0 0.8 0 1.6 0.1 2.4 0.1h0.7 0.9v-0.4h-0.6-0.4-1.5c-0.2 0-0.5-0.1-0.6 0-0.6 0-1.2 0-1.8-0.1-0.2 0-0.6-0.1-0.7 0h-0.2c-0.4 0-0.7-0.1-1.1-0.1 0-0.2 0.1-0.6 0.3-0.7 0.1-0.1 0.2 0 0.2-0.1 0.1 0 0.2 0 0.4 0.1h0.4 0.6 0.7c0.5 0 1 0.1 1.5 0.1h1.8 1.1v-0.4c-0.3 0-0.7 0-0.9 0.1h-0.5-0.5-0.3-0.6-0.3-1.9c-0.2 0-0.6-0.1-0.8 0-0.2 0-0.8 0-0.9-0.1s0.1-0.6 0.1-0.6c0.1-0.1 0.2-0.1 0.3-0.1 0.3 0 0.6 0.1 1 0.1h1 0.3 0.6 0.7 0.9 1.6v-0.4h-0.5c-0.2 0-0.7-0.1-0.9 0-0.1 0-0.3-0.1-0.4 0h-0.3c-0.4 0-0.7-0.1-1.1-0.1h-0.4-0.6-0.3-0.3c-0.3 0-1 0.1-1.2-0.1 0-0.2 0.2-0.6 0.3-0.7 0.5 0 1 0.1 1.5 0.1h1.4c0.1 0 0.3 0 0.4 0.1h0.6 0.4 1.1 0.5v-0.4h-0.3-1.3-1.1c-0.2 0-0.6-0.1-0.8 0-0.1 0-0.2 0-0.3 0.1-0.2 0-0.5-0.1-0.7-0.1h-1.1c0-0.2 0.1-0.3 0.2-0.5 0-0.1 0-0.2 0.1-0.3 0-0.1 0.1-0.1 0.2-0.1h1 0.6c0.5 0 1 0.1 1.4 0.1h0.9c0.5 0 1 0 1.4 0.1v-0.4c-0.2 0.1-1.1 0.1-1.3 0-0.2 0-0.5-0.1-0.6 0h-0.6-0.4-1.6c-0.2 0-0.4-0.1-0.6-0.1 0-0.3 0.2-0.6 0.3-0.8 0.2 0 0.4 0.1 0.6 0h1.5 0.4 1.7c0.3 0 0.5 0.1 0.8 0.1v-0.4h-0.2c-0.2 0-0.5-0.1-0.7 0h-1.2c-0.2 0-0.6-0.1-0.7 0h-0.2c-0.3 0-0.7 0-1-0.1-0.2 0-0.4 0-0.6-0.1v-0.1c0-0.1 0.2-0.5 0.3-0.6 0 0 0.1-0.1 0.2-0.1h1.3 1.7 1.2v-0.4h-0.3-0.5c-0.2 0-0.6-0.1-0.8 0-0.2 0-0.5-0.1-0.7 0-0.3 0-0.7-0.1-0.9 0h-0.4-0.4c0-0.1 0.3-0.7 0.4-0.8 0.2-0.1 0.6 0 0.8 0h1.2 0.7 0.3 0.5 0.1v-0.4h-0.1c-0.2 0-0.4 0-0.5 0.1h-0.4c-0.2 0-0.4-0.1-0.6 0h-0.2-0.2-0.4-0.9c-0.1 0 0-0.2 0-0.2 0.1-0.1 0.3-0.5 0.4-0.6s0.3-0.1 0.4-0.1h0.6 1 0.4 0.4v-0.4h-0.2-0.8-0.3c-0.2 0-0.6-0.1-0.8 0h-0.3c0-0.2 0.1-0.3 0.2-0.4s0.1-0.3 0.3-0.3h0.3 1 0.5 0.3v-0.4c-0.2 0-0.5-0.1-0.7 0h-0.2c-0.2 0-0.5 0-0.6-0.1 0-0.2 0.3-0.3 0.4-0.4s0.2-0.3 0.3-0.4h0.9v-0.3h-0.5v-0.1s0.5-0.6 0.6-0.7c0.2-0.4 1.5-1.4 1.7-1.6 0.2-0.1 0.4-0.3 0.6-0.4 0.3-0.1 0.7 0 1.1 0h1.4 1.3 0.8 2.9 0.3 0.6c0.6 0 1.2-0.1 1.8 0 0.7 0 1.4 0.1 2.1 0.1 0.4 0 0.8-0.1 1.2 0 0.3 0 0.5 0.1 0.8 0.1h2.1 1.4 0.4 0.7 0.4 0.3 0.5c0.2 0 0.4 0.1 0.6 0.1h0.6 2.3 0.8c0.5 0 0.9-0.1 1.4-0.1s0.9 0.1 1.4 0h0.7 0.5 2.1 1.9 0.4c0.5 0 1 0.1 1.6 0 0.2 0 0.4-0.1 0.7-0.1 0.2 0 0.4 0 0.6-0.1h1.3c0.2 0 0.5-0.1 0.7 0 0.1 0 0.2 0.1 0.2 0.2 0.4 0.3 1.3 1.1 2 1.8v0.1h0.1c0.2 0.1 0.5 0.4 0.4 0.5 0 0.1-0.2 0.1-0.3 0.1h-0.3v0.4c0.3 0 0.6 0 0.9 0.1 0.2 0.1 0.6 0.6 0.6 0.8h-0.2c-0.1 0-1 0-1.3-0.1v0.4h1.7 0.3c0.1 0.1 0.2 0.3 0.3 0.4 0 0.1 0.2 0.2 0.1 0.3 0 0.1-0.1 0.1-0.1 0.1h-1.3-0.4-0.6v1.7h1.8c0.3 0 0.7 0 0.9 0.1 0.1 0.1 0.4 0.6 0.5 0.8 0 0-0.1 0-0.1 0.1-0.2 0-0.7-0.1-0.8 0h-0.5c-0.2 0-0.5-0.1-0.7 0h-0.2c-0.3 0-0.6 0-0.9-0.1v0.4c0.8 0 1.8 0.1 2.6 0.1 0.2 0 0.9-0.1 1 0s0.1 0.2 0.2 0.3c0 0.1 0.1 0.1 0.1 0.2s0.1 0.2 0.1 0.3c-0.1 0-0.1 0-0.2 0.1-0.3 0-0.8-0.1-1-0.1h-0.2-0.5-1.3-0.5-0.4v0.4h0.4 0.8 0.5 1.9 0.7c0.2 0.1 0.2 0.3 0.3 0.4s0.1 0.2 0 0.3h-0.3c-0.2 0-0.5-0.1-0.6 0h-0.3c-0.2 0-0.6-0.1-0.7 0h-0.8-0.3-0.7-0.3-0.4v0.4c0.3-0.1 0.7-0.1 0.9-0.1h0.1c0.4 0.1 0.8 0 1.1 0h2.1c0.2 0 0.4-0.1 0.5 0s0.3 0.5 0.3 0.7c0.1 0-0.2 0.1-0.2 0.1h-0.7c-0.2 0-0.5-0.1-0.7 0h-0.9-0.2c-0.2 0-0.8-0.1-0.9 0h-1.4v0.4h0.5 1c0.3 0 0.5 0.1 0.8 0.1h0.7 1.4 0.5 0.4c0.1 0 0.3 0.7 0.3 0.8-0.2 0.1-0.7 0-0.9 0h-0.4-0.2-0.5c-0.2 0-0.6-0.1-0.8-0.1-0.1 0-0.2 0-0.3 0.1h-1-0.4c-0.2 0-0.4-0.1-0.6 0h-0.6v0.3h0.7 0.4 0.5 1.9c0.4 0 1 0.1 1.4 0 0.2 0.1 0.9-0.1 1 0.1 0.1 0.1 0.1 0.3 0.2 0.5s0.1 0.2-0.1 0.3h-1.2c-0.2 0-0.5-0.1-0.6 0h-0.7-0.3-0.5-0.6-0.3c-0.3 0-0.7-0.1-0.9 0h-0.7v0.4c0.3-0.1 1 0 1.2 0h1.2 0.8 0.6 0.5c0.4 0 0.8 0 1.2-0.1h0.3c0.2 0 0.4 0 0.5 0.1s0.3 0.6 0.1 0.7-0.5 0-0.7 0h-1.6-0.6-0.4c-0.2 0-0.8-0.1-1 0h-0.5c-0.2 0-0.4-0.1-0.6 0-0.4 0-0.7-0.1-1.1-0.1v0.4h0.5 0.9 1.7 0.3 0.3 0.9 0.4 0.5 0.6c0.1 0 0.3 0 0.4 0.1 0.2 0.1 0.2 0.5 0.3 0.7h-0.3-0.1-0.3-1.2-0.4-0.3-1.1c-0.2 0-0.4-0.1-0.6 0h-0.7-1-1v0.4h0.2 0.6 1.1 0.8 0.6 0.8 0.8 0.6c0.2 0 0.6 0.1 0.8 0 0.2 0 0.4 0 0.6 0.1 0.1 0.1 0.2 0.5 0.2 0.7 0 0-0.1 0-0.1 0.1h-0.5-0.6-2-0.8c-0.2 0-0.8-0.1-1 0h-1.5-0.5-0.3v0.4h0.4c0.5-0.1 0.9 0 1.4 0h2c0.4 0 0.9 0.1 1.2 0 0.3 0 2.1 0 2.3 0.1 0.1 0.2 0.1 0.5 0.1 0.7 0 0-0.1 0-0.2 0.1h-1.3c-0.1 0-0.3-0.1-0.4 0h-0.5c-0.2 0-0.7-0.1-0.9 0h-0.6-2.2c-0.2 0-0.4-0.1-0.5 0-0.1 0-0.7 0-0.9-0.1v0.4h0.6 0.5 0.6 0.5 1.8 0.4c0.5 0 1 0.1 1.5 0h0.5c0.2 0 1 0 1.1 0.1s0.2 0.5 0.2 0.7h-0.1-0.6c-0.2 0-0.5-0.1-0.7 0h-0.6-0.3c-0.4 0-0.7-0.1-1-0.1h-1.2-0.3-0.4-0.8c-0.1 0-0.3-0.1-0.4 0h-1.2v0.5c-0.8-0.2-0.6-0.2-0.4-0.2 0.3 0 0.5 0.1 0.8 0.1h0.8c0.3 0 0.6 0 0.9-0.1h3.3c0.2 0 1.3 0 1.4 0.1s0 0.2 0 0.3 0.1 0.3 0 0.4c-0.1 0.2-0.8 0-1 0.1h-0.3-0.9c-0.2 0-0.5-0.1-0.6 0-0.2 0-0.8-0.1-0.9 0-0.2 0-0.5-0.1-0.7 0h-1.4-0.4-0.5-0.4-0.4v0.4c0.3-0.1 0.8 0 1.1 0h0.6 1.2 0.7 1.3 2.2c0.3 0 0.5 0 0.8 0.1 0 0.2 0.2 0.6 0 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.4 0-0.6 0.1h-0.9-0.3-0.4c-0.3 0-0.7-0.1-1 0-0.3 0-0.6-0.1-0.9 0h-0.7c-0.2 0-0.6-0.1-0.7 0h-0.7-0.4-1v0.4h0.1c0.5 0 1-0.1 1.6-0.1h1.1c0.2 0 0.3 0.1 0.5 0h0.4 1.8 1.3 0.4c0.1 0 0.6 0 0.7 0.1v0.3c-0.3-0.1-0.3 0-0.4 0.1"/><path class="st2" d="m62.9 28.8v-0.8-0.8-0.4-1.2-1.8c0-0.2 0-0.4-0.1-0.6h-0.4-0.4-0.6c-0.4 0-0.9-0.1-1.3 0h-0.8-0.4-0.4-0.4c-0.2 0-0.3-0.1-0.5-0.1h-0.7-0.5-0.7c-0.3 0-0.7 0-1-0.1h-0.6c-0.2 0-0.3-0.1-0.5-0.1h-1.4-0.3-1.5-0.7-3.3-0.6-1.2-0.6c-0.3 0-0.5 0-0.8-0.1h-0.7-0.8c-0.4 0-0.7 0.1-1.1 0.1h-1.2-1.9-0.6-1.4-0.8c-0.2 0-0.4-0.1-0.7-0.1h-0.8-0.6-1.9-1.5-0.9-1.4c-0.5 0-1 0.1-1.5 0-0.4-0.1-0.9 0-1.3 0h-0.1c-0.1 0.2 0 0.5 0 0.7v0.8 1.2 1 2.8 0.5 0.8 1.1 3.3c0 0.2 0 0.5-0.1 0.7v0.8 0.4 1.9 0.8c0 0.3-0.1 0.6-0.1 0.9v0.7 0.6 1.1 0.5 0.6 0.7 0.9c0 0.4-0.1 0.8-0.1 1.2v0.4 0.8 0.7c0 1.8-0.1 3.5-0.1 5.2v1.2 1.9 0.4c0 0.6-0.1 1.3-0.1 1.9v0.5c0 0.9 0 1.7 0.2 2.5 0.1 0.2 0.1 0.3 0.2 0.5 0.1 0.3 0.2 0.7 0.4 1 0.3 0.4 0.6 0.8 1 1.1 0.1 0 0.1 0.1 0.2 0.1 0.1 0.1 0.2 0.1 0.3 0.2 0.2 0.1 0.3 0.1 0.5 0.2s0.5 0.2 0.7 0.3 0.5 0.1 0.7 0.2c0.4 0.1 0.9 0.3 1.4 0.4s0.9 0.1 1.4 0.2c1.4 0.2 2.8 0.4 4.2 0.5h0.9c0.4 0 0.8 0.1 1.2 0.1l1.2 0.3c0.2 0 0.4 0.1 0.6 0.1s0.4 0.1 0.6 0.1c0.2 0.1 0.4 0.2 0.5 0.2 0.2 0.1 0.3 0.1 0.5 0.2 0.8 0.3 1.5 0.9 2.2 1.5 0.2 0.3 0.4 0.5 0.6 0.8 0.1 0.2 0.2 0.3 0.3 0.5 0 0 0 0.1 0.1 0.1 0.3-0.8 0.7-1.5 1.3-2.1 0.2-0.2 0.5-0.3 0.8-0.5s0.6-0.5 1-0.5c0.2-0.1 0.4-0.1 0.5-0.2 0.2-0.1 0.5-0.2 0.8-0.2 0.1 0 0.2-0.1 0.2-0.1 0.1-0.1 0.3-0.1 0.4-0.1h0.2c0.1 0 0.1-0.1 0.2 0 0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.2-0.1 0.3-0.1 0.1-0.1 0.2-0.1 0.3-0.1h0.2c0.1-0.1 0.2-0.1 0.3-0.1h0.2 0.2 0.2 0.2c0.1-0.1 0.4 0 0.5 0h0.2 0.3c0.2-0.1 0.4 0 0.6 0h0.2c0.2-0.1 0.4-0.1 0.6-0.1 0.1 0 0.2-0.1 0.3-0.1s0.2-0.1 0.3-0.1h0.2c0.1-0.1 0.3 0 0.4 0s0.2-0.1 0.3-0.1c0.1-0.1 0.3 0 0.5 0 0.1-0.1 0.5-0.2 0.7-0.2 0.1 0 0.2-0.1 0.3-0.1h0.2c0.2-0.1 0.3-0.1 0.6-0.1 0.1-0.1 0.3-0.1 0.4-0.1 0.1-0.1 0.4-0.2 0.5-0.2s0.2-0.1 0.2-0.1c0.3-0.1 0.6-0.2 0.9-0.3s0.7-0.3 1-0.4c0.2-0.1 0.3-0.1 0.5-0.2 0.3-0.1 0.5-0.3 0.7-0.5 0.1-0.1 0.3-0.2 0.4-0.3 0.2-0.2 0.4-0.3 0.6-0.6s0.4-0.8 0.5-1.1c0-0.2 0.1-0.4 0.1-0.6s0.1-0.4 0.1-0.5v-0.9-1-0.3-0.5-1.7-1.4-0.6-0.3-0.8-1.6-2.2c0-0.2 0-0.4 0.1-0.6v-1.1c0-0.2 0-0.3 0.1-0.5 0-0.3-0.1-0.6-0.1-0.9 0-0.8 0.1-1.5 0.1-2.3 0-0.3-0.1-0.6-0.1-0.8v-0.6-0.3-0.5-0.3-0.8c0-0.5 0-1.1 0.1-1.6v-0.4-0.3-0.6-0.8-0.7-0.3c0-0.5-0.1-1-0.1-1.5v-0.8-0.4c0-0.3 0-0.7-0.1-1v-0.6-0.8-0.7-0.7-0.4c-0.2 0-0.2-0.3-0.2-0.7m-0.7 9.7v0.2 0.4 0.4 2.2 0.3 0.4 0.3 0.3 0.3 0.6c0 0.3 0.1 0.6 0.1 0.9v0.4 0.3 0.4 0.2 0.5c0 1.7 0 3.4-0.1 5.1v1.8 0.5 2.1c0 0.2-0.1 0.4-0.1 0.6s0.1 0.3 0.1 0.5 0 0.3-0.1 0.5v0.2 0.2 0.3 0.7 0.3 0.6c0 0.6 0 1.2-0.1 1.8v0.4c0 0.3-0.2 0.6-0.3 0.9-0.3 0.5-0.9 0.9-1.4 1.2-0.3 0.2-0.5 0.4-0.8 0.5-0.3 0.2-0.7 0.3-1.1 0.4s-0.9 0.3-1.3 0.4c-0.2 0-0.3 0.1-0.5 0.1-0.5 0.1-0.9 0.2-1.4 0.3h-0.3c-0.3 0.1-0.6 0.1-1 0.2-0.4 0-0.7 0.1-1.1 0.1s-0.8 0.1-1.2 0.1h-1c-0.3 0-0.5 0.1-0.8 0.1h-0.5c-0.6 0.1-1.2 0.3-1.9 0.4-0.3 0.1-0.7 0.1-1 0.2-0.2 0.1-0.3 0.1-0.5 0.2-0.1 0-0.3 0.1-0.4 0.1-0.9 0.5-1.7 1.1-2.3 1.9-0.1 0.1-0.1 0.2-0.2 0.3 0 0-0.2 0.1-0.2 0.2h-0.1c-0.1-0.1-0.2-0.2-0.2-0.3-0.3-0.3-0.5-0.6-0.8-0.8-0.2-0.2-0.5-0.3-0.8-0.5-0.1-0.1-0.3-0.2-0.4-0.3-0.2-0.1-0.5-0.2-0.7-0.4-0.3-0.1-0.7-0.2-1-0.4-0.2-0.1-0.4-0.1-0.7-0.2-0.1 0-0.2-0.1-0.3-0.1-0.4-0.1-0.7-0.1-1-0.2-0.1 0-0.2-0.1-0.4-0.1h-0.4c-0.3 0-0.5-0.1-0.8-0.1h-0.8c-0.1 0-0.3-0.1-0.4-0.1h-1c-0.7-0.1-1.4-0.2-2-0.3-0.3 0-0.6 0-1-0.1-0.3 0-0.7-0.1-1-0.2-0.4-0.1-0.8-0.1-1.2-0.2-0.5-0.1-1-0.4-1.5-0.6-0.7-0.3-1.5-0.8-1.9-1.5-0.6-1-0.6-2.4-0.6-3.7 0-0.2-0.1-0.3 0-0.5 0-0.1 0-0.3 0.1-0.4v-0.4-1-0.8-0.3-0.3-0.7c0-0.5 0.1-1 0.1-1.5 0-1.2 0-2.3 0.1-3.4v-0.5-1c0-0.3 0.1-0.6 0.1-0.9v-3.8c0-0.3 0-0.6 0.1-0.9v-0.7-2.1-1c0-0.2 0-0.5 0.1-0.7v-1.4-3.2c0-0.1 0-0.3 0.1-0.4v-0.2-0.7-1.9-1.1c0-0.2 0-0.3 0.1-0.5v-0.5c0-0.2 0.1-0.3 0.1-0.5v-2-0.7-0.5-0.5c0-0.2-0.1-0.9 0.1-1.1 0.1-0.1 0.3 0 0.5 0 0.2-0.1 0.7 0 1 0 0.2-0.1 0.4 0 0.6 0h2c0.1-0.1 0.4 0 0.6 0 0.2-0.1 0.4 0 0.6 0h0.3c0.2-0.1 0.4 0 0.6 0 0.5 0 1 0.1 1.5 0.1 0.2-0.1 0.6 0 0.9 0 0.2-0.1 0.7 0 0.9 0h1.1c0.1-0.1 0.3 0 0.4 0h0.9c0.2-0.1 0.4 0 0.6 0h0.3c0.3 0 0.6 0.1 0.9 0.1 0.1-0.1 0.3 0 0.5 0h0.4 0.5c0.2-0.1 0.8 0 1.1 0h0.6 0.3 0.6 2.3 0.3 0.2c0.3-0.1 0.8 0.1 1.1 0.1h0.2 0.2c0.2-0.1 0.5 0 0.7 0h1.6c0.2 0 0.4 0.1 0.6 0.1h0.3c0.1-0.1 0.3 0 0.4 0h0.8 0.2c0.3-0.1 0.6 0 0.9-0.1 0.4 0 0.7 0.1 1 0.1h0.7 0.2c0.2-0.1 0.6 0 0.8 0h1c0.1-0.1 0.6 0 0.7 0h1.9c0.2 0 0.4 0 0.5 0.1h0.4 0.3 1 1.5s0.3-0.1 0.3 0v1.5 1.5 2.8c-0.1 1.7 0 3.3 0 5v0.7c0 0.3-0.1 0.6 0 0.9v0.4 1.1c-0.4 0-0.4 0.2-0.4 0.5"/><path class="st2" d="m46.5 61.8c-0.1-0.3-0.2-0.5-0.2-0.7 0-0.1 0-0.2-0.1-0.3 0-0.1-0.1-0.1-0.2-0.1-0.1 0.1-0.2 0.1-0.2 0.2 0 0.2 0.1 0.4 0.2 0.6s0.2 0.5 0.3 0.8c0.1 0.2 0.1 0.3 0.2 0.5 0.1 0.1 0.3 0.3 0.5 0.2 0.1 0 0-0.2-0.1-0.3-0.2-0.3-0.3-0.6-0.4-0.9"/><path class="st2" d="m35.7 48.8c0.1-0.2 0.2-0.4 0.3-0.5s0.2-0.2 0.3-0.2c0.1-0.1 0.2-0.2 0.3-0.4 0.1-0.1 0.2-0.1 0.2-0.2 0.1-0.3 0.1-1 0.1-1.3v-0.9-0.6-1.2-0.6c0-0.5 0.1-1.1 0-1.6v-1.5-0.5-0.4-1-0.5-0.8c0-0.2 0.1-0.5 0-0.7-0.2 0.1-1 0.9-1 1.2-0.1 0.2 0 0.6 0 0.9 0 0.4-0.1 0.8-0.1 1.2v0.3 0.6c0 0.3-0.1 0.6-0.1 1v0.6 0.6 0.8c0 0.4-0.1 0.9-0.1 1.3 0 0.3 0 0.6 0.1 0.8 0 0.2-0.1 0.5-0.1 0.7s0.1 0.4 0 0.6c0 0.3-0.1 0.6-0.1 0.9 0.2 0.4 0.2 0.9 0.2 1.4"/><path class="st2" d="m49.8 49.1c0-0.3-0.2-0.5-0.4-0.7-0.1-0.1-0.2-0.3-0.4-0.4-0.3-0.2-0.6-0.4-1-0.4h-0.6c-0.1 0.1-0.3 0-0.4 0.1-0.2 0.1-0.5 0.1-0.7 0.2-0.7 0.2-1.3 0.5-1.9 0.8-0.2 0.1-0.4 0.3-0.6 0.4s-0.3 0.4-0.6 0.5c-0.2 0-0.3-0.2-0.4-0.3-0.1 0-0.1-0.1-0.2-0.1-0.3-0.2-0.5-0.5-0.8-0.6-0.5-0.3-0.9-0.3-1.5-0.4-0.2 0-0.3-0.1-0.5-0.1-0.8-0.2-1.9-0.2-2.6 0.3-0.2 0.1-0.3 0.2-0.4 0.4-0.3 0.2-0.4 0.3-0.5 0.6 0 0.1-0.1 0.2-0.1 0.3 0.1 0.1 0.3 0.1 0.4 0.1 0.1-0.1 0.4 0 0.5 0h1.4c0.1-0.1 0.3-0.1 0.5-0.1h1 0.4c0.4 0 0.8 0.1 1.3 0.1h0.1 0.6c0.1 0 0.1 0 0.2 0.1s0 0.3 0.1 0.4c0.1 0.4 0.4 0.6 0.8 0.6 0.5 0 0.8-0.4 0.8-0.9v-0.2c0.1-0.1 0.2-0.1 0.4-0.1h0.2 0.2c0.1-0.1 0.5 0 0.7 0 0.1 0 0.2-0.1 0.3-0.1 0.2-0.1 0.4-0.1 0.6-0.1h0.2c0.2-0.1 0.4 0 0.6 0 0.2-0.1 0.4-0.1 0.6-0.1h1.7c-0.2-0.3 0-0.2 0-0.3"/><path class="st2" d="m37.3 46.6v0.7h0.3c0.1 0 0.2-0.1 0.3-0.1s0.2-0.1 0.3 0h0.2c0.3-0.1 0.9 0 1.2 0.1s0.6 0 0.9 0.1c0.4 0.1 0.9 0.3 1.3 0.5 0.1 0.1 0.8 0.6 0.8 0.6 0.2-0.3 0.2-0.6 0.2-0.9 0.1-0.4 0.1-0.8 0.1-1.2 0-0.6 0.1-1.2 0.1-1.9v-0.8-2.3c0-1.2 0.1-2.4 0-3.6 0-0.4 0-0.8-0.2-1.1-0.4-0.6-1-0.8-1.6-1-0.2-0.1-0.3-0.1-0.5-0.2-0.2 0-0.4-0.1-0.6-0.1-0.3-0.1-0.6-0.1-0.9-0.1h-1.3c-0.1 0.1-0.3 0-0.4 0.2s0 0.6 0 0.8v2.2 1.3c0 0.4-0.1 0.7-0.1 1.1 0 0.3 0.1 0.5 0.1 0.8v1.7c0 0.2 0 0.5-0.1 0.7v1.4c0 0.2 0 0.5-0.1 0.7-0.1 0 0 0.2 0 0.4m4.6-0.7c-0.4-0.2-0.9-0.4-1.4-0.5-0.2-0.1-0.3-0.1-0.5-0.1-0.3-0.1-0.5-0.1-0.8-0.2-0.3 0-0.6-0.1-0.9-0.1h-0.1c-0.2-0.1-0.2-0.6 0.1-0.6 0.2 0 0.4 0.1 0.6 0.1s0.4 0.1 0.6 0.1c0.2 0.1 0.3 0.1 0.5 0.2 0.5 0.2 0.9 0.3 1.3 0.5 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.6 0.4 0.8 0.6 0.1 0.1 0.2 0.1 0.2 0.2-0.3 0-0.5-0.2-0.7-0.3m0.6-2.9c-0.1 0-0.1 0 0 0-0.3 0.1-1-0.6-1.2-0.7-0.3-0.1-0.5-0.2-0.8-0.3-0.4-0.1-0.7-0.3-1.1-0.4-0.2 0-0.3 0-0.5-0.1-0.2 0-0.6 0-0.7-0.1-0.2-0.2-0.1-0.6 0.2-0.6 1.2 0.1 2.2 0.6 3.1 1.2 0.3 0.1 0.9 0.5 1.1 0.8-0.1 0.1 0 0.2-0.1 0.2m-4.4-5.4c0.4 0 0.7 0.1 1 0.2 0.1 0 0.2 0 0.3 0.1 0.2 0.1 0.4 0.2 0.6 0.2 0.2 0.1 0.4 0.1 0.6 0.2 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.5 0.2 0.8 0.4 0.2 0.1 1.1 0.6 0.9 0.8 0 0.1-0.1 0.1-0.2 0-0.2 0-0.3-0.2-0.4-0.2-0.2-0.1-0.3-0.2-0.5-0.3-0.8-0.4-1.8-0.7-2.7-0.9-0.3-0.1-0.6-0.1-0.8-0.2-0.1 0-0.1-0.3 0.1-0.4"/><path class="st2" d="m44.3 31c0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.3-0.2 0.3-0.3 0.1-0.2-0.1-0.6-0.3-0.7h-0.2c0 0.2 0.1 0.2 0.1 0.4 0 0.1-0.1 0.2-0.2 0.3s-0.1 0.4 0 0.4"/><path class="st2" d="m44.9 28.4c-0.2-0.1-0.4-0.1-0.6-0.2s-0.3-0.2-0.5-0.2c-0.1 0-0.2 0.1-0.2 0.2 0 0.2 0.2 0.3 0.3 0.4s0.2 0.3 0.3 0.3 0.2-0.1 0.3-0.2 0.2-0.1 0.3-0.2c0.2 0 0.2-0.1 0.1-0.1"/><path class="st2" d="m43.7 32.2c0.2 0.1 0.6 0 0.6-0.2s-0.2-0.3-0.3-0.3c-0.1 0.1-0.5 0.4-0.3 0.5"/><path class="st2" d="m48.8 35.6c-0.1-0.1-0.3 0-0.4 0h-0.5c-0.2 0.1-0.4 0-0.7 0.1-1 0.2-1.9 0.3-2.7 0.8-0.2 0.1-0.4 0.2-0.6 0.4-0.1 0.1-0.1 0.3-0.1 0.5-0.1 0.5-0.1 0.9-0.1 1.4 0 0.2 0 0.5-0.1 0.7v1.1c0 0.1 0 0.3-0.1 0.4v1 1.5 1.5 0.4 0.2 0.7c0 0.7 0 1.5 0.2 2l0.1 0.1c0.3-0.1 0.6-0.3 0.8-0.5 0.2-0.1 0.5-0.2 0.8-0.3 0.3-0.2 0.4-0.3 0.8-0.3 0.1-0.1 0.4-0.1 0.6-0.1h0.2 0.2c0.3-0.1 0.9 0 1.2 0.1 0.1 0 0.3 0.1 0.4 0.1 0.1-0.4 0-0.9 0-1.3v-0.7-0.8-0.4-1-0.6-1.1-0.5-2-0.6-1.5c0-0.2-0.1-0.3-0.1-0.5v-0.6c0.1-0.1 0.1-0.2 0.1-0.2m-4.8 6.8c0.6-0.6 1.5-0.9 2.2-1.2 0.2-0.1 0.5-0.3 0.8-0.3 0.1-0.1 0.3-0.2 0.4-0.2 0.2 0 0.3 0.1 0.3 0.3s-0.1 0.3-0.2 0.4c-0.2 0.2-0.5 0.2-0.8 0.3s-0.6 0.2-0.9 0.3c-0.2 0.1-0.4 0.1-0.6 0.2-0.4 0.1-0.7 0.3-1 0.5-0.1 0.1-0.2 0.2-0.4 0.2h-0.1c0-0.3 0.2-0.5 0.3-0.5m3.7 2.1c-0.2 0.1-0.5 0.1-0.8 0.2-0.2 0-0.5 0.1-0.7 0.2-0.8 0.2-1.4 0.5-2.1 0.9-0.1 0-0.3 0.3-0.4 0.1-0.1-0.1 0.1-0.2 0.2-0.3 0.3-0.2 0.5-0.4 0.8-0.6s0.6-0.4 1-0.5c0.1-0.1 0.2-0.1 0.3-0.2 0.4-0.2 0.9-0.3 1.3-0.4 0.1 0 0.3 0 0.4 0.1 0.3 0.1 0.2 0.4 0 0.5m0.1-6.5c-0.1 0.1-0.3 0.1-0.4 0.1-0.3 0.1-0.6 0.2-0.9 0.3-0.4 0.1-0.8 0.3-1.2 0.5-0.3 0.2-0.5 0.3-0.8 0.5 0 0-0.4 0.2-0.4 0.1 0-0.3 0.4-0.5 0.6-0.6 0.1-0.1 0.2-0.1 0.3-0.2 0.3-0.2 0.6-0.3 0.8-0.5 0.3-0.1 0.6-0.2 0.9-0.3 0.1-0.1 0.2-0.1 0.3-0.1 0.1-0.1 0.3-0.1 0.4-0.1h0.3c0.3 0 0.2 0.2 0.1 0.3"/><path class="st2" d="m43.2 30.7c-0.1 0-0.1 0-0.2-0.1-0.1 0-0.2 0.1-0.2 0.2v0.3c0 0.2 0 0.4 0.1 0.5s0.1 0.1 0.2 0.1 0.1 0.1 0.2 0.1c0.2 0 0.6-0.3 0.6-0.5-0.1 0-0.6-0.5-0.7-0.6"/><path class="st2" d="m50.6 38.5c0-0.2-0.1-0.5-0.1-0.7v-0.4-0.3h-0.1c-0.1 0.5 0 1.1 0 1.6 0 0.2-0.1 0.4-0.1 0.6v0.3 0.3c-0.1 0-0.2 0-0.2-0.1v-0.5-0.3c0-0.6 0.1-1.3 0.1-1.9v-0.3-0.2h-0.1c0 0.5-0.1 0.9-0.1 1.3 0 0.1 0 0.2-0.1 0.2h-0.1c-0.1-0.4-0.1-0.8-0.1-1.2 0-0.2 0-0.4-0.1-0.6-0.1 0.1-0.1 0.3-0.1 0.5v0.7c0 0.2 0.1 0.5 0 0.7-0.1 1.5-0.1 3-0.1 4.6v0.9c0 0.3-0.1 0.5-0.1 0.8v1.2c0 0.4-0.1 0.8 0 1.2 0 0.1 0 0.2 0.1 0.2 0.1-0.2 0.1-0.5 0.1-0.7 0-0.4 0.1-0.8 0.1-1.3 0-0.3-0.1-0.6 0-0.9 0 0 0-0.1 0.1 0 0.1 0 0.1 0.2 0.1 0.3 0.1 0.3 0 0.6 0 1v0.8 0.9 0.4c0 0.1 0 0.3 0.2 0.3v-1.4-0.6c0-0.2 0-0.4 0.1-0.6 0-0.1 0-0.3 0.1-0.4 0-0.2-0.1-0.4-0.1-0.6v-0.9-0.5c0-0.1 0.1-0.1 0.1-0.1 0.1 0.1 0.2 0.2 0.2 0.3v1.1 0.3c0 0.3 0.1 0.6 0.1 0.9v0.4 1.6c0 0.4 0 0.8 0.1 1.2v0.2h0.1c0.1-0.2 0.1-0.5 0.1-0.8s0.1-0.6 0-1c0-0.2-0.1-0.4-0.1-0.6s0.1-0.4 0.1-0.6c0-0.3-0.1-0.6-0.1-1 0-0.3 0-0.7 0.1-1v-0.8-0.3c0-0.2 0-0.3 0.1-0.5v-0.8-1.3c-0.3-0.7-0.3-1.1-0.3-1.6m-0.9 4.1s-0.2 0.2-0.2 0.1v-0.3-0.8-1c0-0.3 0-0.6 0.1-0.8 0.1 0 0.1 0.1 0.2 0.2 0.1 0.3 0 0.6 0 0.9-0.1 0.6 0 1.3-0.1 1.7m0-3.8c-0.2 0-0.2-0.2-0.1-0.3 0.1 0 0.2 0.3 0.1 0.3m0.4 3.2c-0.1-0.2-0.1-0.4-0.1-0.7s-0.1-0.6 0.1-0.9c0.1 0 0.1 0 0.2 0.1 0.1 0.2 0.1 1.5-0.2 1.5"/><path class="st2" d="m46.7 56.2h0.3 0.7 0.2c-0.2-0.3-0.6-0.6-0.9-0.9l-2.1-2.1c-0.1-0.1-0.3-0.3-0.5-0.4l-0.7-0.7c-0.1-0.1-0.3-0.3-0.5-0.4v0.1c-0.1 0-0.2 0.1-0.3 0.2-0.3 0.3-0.5 0.6-0.8 0.8l-2.4 2.4c-0.1 0.1-1 1-1 1.1 0.6 0.1 1.3 0 1.9 0h0.7c0.1 0 0.3 0 0.4 0.1v0.1c-0.1 0.1-1.2 1.4-1.2 1.4v0.1h2.2 0.1c-0.1-0.2-0.2-0.3-0.3-0.5-0.2-0.2-0.4-0.5-0.5-0.8 0-0.1-0.1-0.2 0-0.2 0.1-0.3 1.4-0.1 1.7-0.1 0.2-0.1 0.6 0 0.8 0 0.3 0 0.7-0.1 1.1 0 0.1 0 0.1 0.1 0.1 0.2 0 0.2-0.5 0.9-0.6 1.2 0 0.1-0.1 0.1-0.1 0.2h1.2 0.7 0.1c0-0.2-0.7-1-0.8-1.2-0.1-0.1-0.2-0.2-0.2-0.3 0-0.4 0.4-0.3 0.7-0.3"/><path class="st2" d="m44.1 57.8c0.2-0.1 0.8-1 0.8-1.2h-0.4c-0.1 0-0.1 0.1-0.2 0.1-0.1 0.1-0.7 0.9-0.7 1 0.2 0.1 0.4 0.1 0.5 0.1"/><path class="st2" d="m40.3 56.6c-0.2 0.2-1.2 0.9-1.2 1.1h0.5c0.2-0.1 1-0.9 1-1.1h-0.3"/><path class="st2" d="m48.7 57.7c0-0.5 0-1-0.4-1.2-0.1 0.3-0.1 0.7-0.1 1.1v1.6 0.3h-2.5-1.1c-0.7 0-1.4-0.1-2.1-0.1-0.5 0-1 0.1-1.5 0.1-0.3 0-2.4-0.2-2.5 0v0.1c0.2 0.3 0.5 0.2 0.9 0.2h0.2 0.2 0.6 1 0.3c0.1-0.1 0.6 0 0.8 0h0.2 1.1c0.2-0.1 0.5 0 0.7 0h1.4c0.1-0.1 0.3 0 0.5 0 0.2-0.1 0.4 0 0.6 0h1.2 0.2v-0.1c0.1-0.2 0-0.5 0-0.8 0-0.2 0-0.3 0.1-0.5 0.3-0.1 0.3-0.4 0.2-0.7"/><path class="st2" d="m48.7 64.4v-0.4-0.3c-0.1-0.1-0.2-0.1-0.4-0.1l-0.1 0.1v0.6 2c0.1 0 0.4 0 0.4-0.2 0.1-0.2 0.1-0.8 0-1.1 0-0.1 0-0.3 0.1-0.6"/><path class="st2" d="m56.4 64.8c-0.5-0.5-1-1-1.5-1.4-0.6-0.6-1.2-1.3-1.9-1.9-0.2-0.2-0.5-0.4-0.7-0.7l-0.3-0.3c-0.9-1-2-1.9-2.9-2.8-0.1 0.4 0 0.8 0 1.2v0.8 0.7c-0.1 0.2-1.5 0.2-1.8 0.2-0.1 0-0.5 0-0.6 0.1v0.1c0.1 0.4 0.3 0.8 0.4 1.1 0.1 0.2 0.2 0.9 0.4 1.1 0.1 0.1 0.6 0.1 0.7 0.1 0.1-0.1 0.5 0 0.6 0 0.3-0.1 0.2 0.5 0.2 0.6v0.5c0 0.3-0.1 2 0.1 2.1 0.1 0.1 0.5 0 0.7 0 0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.4 0 0.5 0h0.2c0.1-0.1 0.4 0 0.6 0 0.1 0 0.4-0.1 0.4-0.1 0.1 0 0.2 0.1 0.3 0.1h0.3c0.2-0.1 0.5-0.1 0.8-0.1h0.2c0.1-0.1 0.3 0 0.5 0h0.2 0.2c0.1-0.1 0.2 0 0.3-0.1 0.1 0 0.3-0.1 0.4-0.1 0.2 0 0.4-0.1 0.7-0.1 0.1-0.1 0.4-0.1 0.5-0.1s0.2-0.1 0.3-0.1c0 0 0.2-0.1 0.2-0.2 0-0.4-0.2-0.5-0.3-0.6"/><path class="st2" d="m61.8 38.9v-0.3-0.3-0.6-1-0.9-1.8c0-0.2 0.1-0.7-0.1-0.9-0.1 0.2-0.4 0.4-0.6 0.6-0.7 0.8-1.5 1.5-2.3 2.3-0.5 0.5-1 1.1-1.5 1.6-0.3 0.2-0.5 0.5-0.8 0.8l-0.7 0.7c-0.2 0.2-0.4 0.3-0.5 0.5s-0.3 0.3-0.4 0.5l-1.8 1.8c-0.2 0.2-0.4 0.5-0.6 0.7s-0.6 0.5-0.7 0.7v0.1c0 0.1 1.3 1.4 1.5 1.6 1 1 2.1 2 3.1 3 0.1 0.1 0.2 0.2 0.2 0.3 0.2 0.1 0.3 0.3 0.4 0.4 0.2 0.2 0.3 0.4 0.5 0.5 1 1.1 2.1 2.1 3.2 3.2 0.1 0.1 1 1.1 1.1 1.1 0.2 0 0.1-0.9 0.1-1.1v-0.5-0.4c0-0.1 0-0.2 0.1-0.4 0-0.2-0.1-0.4 0-0.6v-0.3-1.2-0.7-0.4-0.5-0.7-0.2c0-0.2 0-0.4 0.1-0.7 0-0.4 0-0.7-0.1-1.1 0-0.3 0.1-0.6 0.1-0.9 0-0.2 0-0.4-0.1-0.6v-0.3-1-0.4c0-0.3 0-0.5-0.1-0.8v-1.5c-0.1-0.1-0.1-0.2-0.1-0.3"/><path class="st2" d="m48.2 25.8c-0.1 0.1-0.1 0.2-0.2 0.3s-0.1 0.2-0.2 0.3c-0.1 0.2-0.3 0.2-0.4 0.4-0.1 0.1-0.1 0.3-0.3 0.4-0.3 0.2-0.5 0.5-0.6 0.8 0 0.1-0.1 0.1-0.1 0.2 0 0-0.1 0.1 0 0.1 0 0.1 0.1 0.2 0.2 0.3 0.2 0.2 0.3 0.4 0.3 0.7 0 0.2 0.1 0.4 0.1 0.6s-0.1 0.4-0.2 0.6c0 0.1 0 0.3-0.1 0.4s-0.1 0.2-0.2 0.3-0.1 0.2-0.2 0.3c-0.2 0.3-0.5 0.4-0.8 0.6-0.1 0.1-0.2 0.2-0.4 0.3s-0.4 0.1-0.6 0.3c-0.2 0.1-0.3 0.3-0.4 0.5-0.1 0.1-0.2 0.1-0.3 0.2-0.1 0.2 0 0.3 0 0.5 0 0.1 0 0.2-0.1 0.3v0.6 0.2c0.2-0.1 0.4-0.4 0.6-0.6l2.8-2.8c0.2-0.2 0.3-0.4 0.5-0.6 0.3-0.3 0.7-0.6 1-1 0.1-0.1 0.2-0.3 0.3-0.4l0.3-0.3c0.2-0.2 0.4-0.4 0.6-0.5 0.5-0.5 1-1.1 1.5-1.6 0.1-0.1 0.3-0.2 0.4-0.4l1.7-1.7c0.3-0.3 0.7-0.6 0.9-0.9-0.2 0.1-0.5 0.1-0.8 0h-0.2c-0.2 0-0.4 0.1-0.6 0.1s-0.5-0.1-0.7-0.1h-0.6c-0.1 0.1-0.2 0-0.4 0.1h-0.9-0.5l-0.2 0.2c-0.2 0.2-0.3 0.4-0.5 0.6-0.1 0.1-0.1 0.2-0.2 0.2-0.1 0.1-0.2 0.1-0.3 0.2l-0.2 0.2c0.2 0 0.1 0 0 0.1"/><path class="st2" d="m46.4 26.4c-0.1 0.2-0.4 0.3-0.4 0.6v0.3h0.1c0.2-0.3 0.6-0.7 0.3-0.9"/><path class="st2" d="m45.9 30.6s0.1 0.1 0.1 0c0.2-0.1 0.3-0.3 0.3-0.5-0.1 0.2-0.4 0.3-0.4 0.5"/><path class="st2" d="m45.7 28.6-0.2 0.2v1c0 0.1 0.1 0.1 0.2 0.1s0.1-0.1 0.2-0.1c0.3-0.3 0.2-0.6 0.1-0.9-0.1-0.2-0.1-0.3-0.3-0.3"/><path class="st2" d="m45 31.6c0.1 0.1 0.5-0.1 0.5-0.2-0.1-0.1-0.2-0.1-0.3-0.1s-0.3 0.2-0.2 0.3"/><path class="st2" d="m46.9 25.6c-0.1 0.1-0.2 0.3 0 0.4 0.1 0 0.2 0.1 0.2 0 0.1-0.1 0.2-0.3 0.3-0.4 0.2-0.2 0.9-1.2 1.2-1.2v-0.1c-0.2 0-0.4 0-0.6-0.1l-0.2 0.2c-0.1 0.1-0.2 0.3-0.3 0.4s-0.2 0.2-0.3 0.2-0.1 0.1-0.2 0.1c-0.1 0.3-0.1 0.4-0.1 0.5"/><path class="st2" d="m45.2 26.3c-0.1 0.1-0.4 0.6-0.4 0.7h0.1c0.2 0.1 0.4 0 0.5-0.1s0.1-0.3 0.3-0.4l0.6-0.6c0.1-0.1 0.1-0.2 0.2-0.3s0.2-0.3 0.3-0.4 0.2-0.3 0.3-0.4 0.2-0.2 0.2-0.4h-0.3c-0.1 0.1-0.3 0.1-0.3 0.2-0.1 0.1-0.1 0.3-0.2 0.4s-0.3 0.2-0.4 0.3-0.1 0.3-0.1 0.4-0.1 0.1-0.2 0.2c0 0.1 0 0.2-0.1 0.2-0.3 0.1-0.4 0.1-0.5 0.2"/><path class="st2" d="m43.7 26.6v0.3c0.3-0.1 0.6-0.5 0.8-0.8 0.1-0.1 0.1-0.3 0.2-0.4s0.1-0.2 0.2-0.3c0.1-0.3 0.3-0.7 0.5-1h0.1v-0.1h-0.4c-0.2 0.1-0.9 0-1 0.1s-0.1 0.3-0.1 0.4-0.2 0.2-0.2 0.3c-0.1 0.2 0.1 0.4 0.1 0.6s-0.1 0.3-0.1 0.4c-0.1 0.3-0.1 0.4-0.1 0.5"/><path class="st2" d="m43.1 28.6c-0.1 0-0.4 0.4-0.4 0.4 0 0.2 0.2 1 0.4 1s0.4-0.2 0.5-0.3 0.3-0.2 0.4-0.4-0.5-0.6-0.6-0.7h-0.3"/><path class="st2" d="m42.7 30.4c0.1-0.3-0.6-0.8-0.8-0.9-0.2 0.2-0.1 0.2-0.2 0.4 0 0.1-0.1 0.2-0.1 0.2-0.1 0.2 0.1 0.6 0.2 0.7s0.1 0.1 0.2 0.1 0.3-0.2 0.4-0.3c0.2 0 0.3-0.1 0.3-0.2"/><path class="st2" d="m42.3 31.8c-0.1-0.1-0.1-0.2-0.2-0.3 0 0-0.1 0-0.2-0.1-0.3 0.5 0.1 0.6 0.5 0.7h0.1c0-0.1-0.1-0.2-0.2-0.3"/><path class="st2" d="m41 29.6c0.1 0 0.2-0.1 0.3-0.2 0.3-0.4 0.1-0.7-0.3-1-0.1 0-0.3 0.3-0.3 0.3 0 0.1 0.1 0.2 0.1 0.3 0 0.3-0.1 0.7 0.2 0.6"/><path class="st2" d="m41.9 28.7c0.2 0 0.9-0.5 0.8-0.7-0.1-0.1-0.2-0.1-0.3-0.1-0.3 0.1-0.5 0.2-0.8 0.2h-0.2v0.1c0.1 0.2 0.2 0.5 0.5 0.5"/><path class="st2" d="m41.2 31.6c0.1 0 0.5-0.3 0.5-0.4s-0.5-0.6-0.6-0.7h-0.2c-0.1 0.3 0 0.7 0.1 1 0.1 0.1 0.1 0.2 0.2 0.1"/><path class="st2" d="m42.1 26c0.1 0.2 0.5 1.3 0.9 1.3v-0.8c0-0.4 0.1-0.8 0.1-1.2 0-0.1 0-0.2 0.1-0.3 0-0.1 0-0.2-0.1-0.3v-0.3c-0.2 0-0.6 0-0.8-0.1-0.2 0-0.5 0-0.6 0.1-0.3 0.3 0.1 1 0.2 1.3 0 0.1 0.1 0.1 0.2 0.3"/><path class="st2" d="m41.5 27.2h0.3c0.1 0 0.1-0.2 0.1-0.3s0-0.3-0.1-0.4-0.1-0.2-0.2-0.4-0.2-0.4-0.3-0.7-0.3-0.9-0.6-1.1c-0.1-0.1-0.3 0-0.5 0-0.1 0.1-0.6 0.1-0.6 0.2-0.1 0.2 1.8 2.6 1.9 2.7"/><path class="st2" d="m38.1 24.6c0.1 0.2 0.3 0.3 0.5 0.5 0.1 0.2 0.2 0.4 0.3 0.5s0.3 0.1 0.4 0.3c0.2 0.2 0.4 0.5 0.5 0.8l0.3 0.3c0.2 0.2 0.3 0.4 0.5 0.5 0.1 0.1 0.3 0.1 0.4 0.1 0 0 0-0.1 0.1-0.1-0.1-0.2-0.3-0.4-0.4-0.6-0.1-0.1-0.2-0.1-0.3-0.2 0-0.1-0.1-0.1-0.1-0.2-0.1-0.1-0.2-0.3-0.3-0.4l-0.4-0.4c-0.1-0.1-0.1-0.3-0.2-0.4-0.2-0.2-0.3-0.5-0.6-0.7-0.1-0.1-0.3-0.2-0.5-0.2 0 0-0.2 0-0.2 0.2"/><path class="st2" d="m33.1 25.2 2.2 2.2c0.9 0.8 1.7 1.7 2.6 2.5 0.1 0.1 0.2 0.2 0.3 0.4l0.8 0.8c0.5 0.5 1 0.9 1.5 1.4 0.2 0.3 0.5 0.5 0.7 0.8 0.3 0.3 0.7 0.6 1 0.9 0.2 0.2 0.6 0.7 0.8 0.7 0-0.2-0.1-0.6-0.1-0.8v-0.3c0-0.1 0-0.2-0.1-0.3l-0.3-0.3c-0.1-0.1-0.2-0.3-0.3-0.4-0.2-0.2-0.4-0.2-0.6-0.3-0.1-0.1-0.3-0.2-0.4-0.3-0.1 0-0.2-0.1-0.3-0.1-0.1-0.1-0.1-0.2-0.2-0.3s-0.2-0.1-0.3-0.2-0.1-0.3-0.2-0.5c-0.1-0.1-0.1-0.3-0.2-0.4 0-0.1-0.1-0.3-0.1-0.4 0-0.2 0-0.4 0.1-0.6 0-0.1 0-0.2 0.1-0.4 0.1-0.3 0.2-0.5 0.5-0.8 0.1-0.1 0.2-0.2 0.3-0.2-0.1-0.2-0.2-0.3-0.4-0.5-0.1-0.1-0.2-0.1-0.2-0.2-0.1-0.1-0.2-0.3-0.4-0.5s-0.5-0.4-0.7-0.7l-1.4-1.4c-0.2-0.2-0.4-0.4-0.6-0.5s-0.4 0.1-0.6 0.1c-0.1 0-0.2 0-0.3-0.1h-0.7-0.5-0.6c-0.2 0.1-0.6 0-0.8 0h-1.1c-0.3 0.1 0.3 0.4 0.5 0.7"/><path class="st2" d="m40.2 29.6c0 0.2-0.1 0.7 0.2 0.6 0.4-0.1 0-0.5-0.2-0.6"/><path class="st2" d="m30 48.2c0.3-0.3 0.5-0.6 0.8-0.8 0.4-0.4 0.8-0.8 1.3-1.2l0.9-0.9c0.1-0.1 0.2-0.3 0.3-0.4 0.4-0.3 0.9-0.8 1.2-1.2 0-0.1 0.1-0.1 0.1-0.2 0.1-0.3-1.9-2.2-2.2-2.5-0.5-0.5-1-1-1.5-1.6-0.5-0.5-1.1-1-1.6-1.5-0.1-0.1-0.2-0.2-0.2-0.3-0.2-0.2-0.5-0.4-0.7-0.6-0.1-0.1-0.2-0.2-0.3-0.4-0.3-0.4-0.7-0.7-1-1l-0.5-0.5c-0.5-0.4-0.9-0.9-1.4-1.3-0.2-0.2-0.4-0.5-0.7-0.6v1 0.3 0.6 0.5 0.4 2 0.5c0 0.3 0 0.6-0.1 1v2 0.9 1.2 0.6 0.4 1.5 0.5 0.9 0.6 1.4 0.5 1.4 1.7 0.6s0.1 0.2 0.1 0.1c0.1-0.2 0.4-0.4 0.6-0.6 0.6-0.5 1.1-1.1 1.7-1.6 0.4-0.4 0.7-0.8 1.1-1.1 0.7-0.6 1.4-1.3 2.1-1.9-0.1-0.3 0-0.4 0-0.4"/><path class="st2" d="m39.7 62.4c0.1-0.4 0.3-0.8 0.5-1.2 0.1-0.2 0.2-0.5 0.2-0.8h-1.2c-0.2 0-0.7 0-0.9-0.1-0.1-0.1-0.1-0.2-0.2-0.3-0.1-0.2-0.2-0.3-0.3-0.5s0-0.4 0-0.7v-1c0-0.2 0.1-0.8 0-1-0.2 0.2-0.3 0.4-0.5 0.5l-1.8 1.8c-0.4 0.4-0.9 0.9-1.3 1.4-0.7 0.7-1.5 1.4-2.2 2.1-0.1 0.1-0.2 0.3-0.3 0.4l-0.4 0.4c-0.3 0.3-0.6 0.5-0.9 0.8l-0.6 0.6c-0.2 0.2-0.5 0.4-0.6 0.6v0.1c0.2 0.1 0.5 0.1 0.8 0.1 0.3 0.1 0.6 0.1 1 0.2h0.4c0.1 0 0.2 0 0.3 0.1 0.2 0 0.4 0.1 0.7 0.1s0.5 0 0.8 0.1c0.6 0.1 1.2 0.2 1.8 0.2h0.4c0.3 0 0.6 0.1 0.8 0.1 0.1 0 0.3 0 0.4 0.1h0.6c0.2 0 0.4 0.1 0.6 0.1 0.1 0 0.1-0.1 0.1-0.2 0.1-0.3 0-0.8 0-1.1v-2.1c0-0.1 0-0.1 0.1-0.2s0.9 0 1.1 0h0.2c0.1 0 0.2 0 0.3-0.1 0-0.1 0-0.3 0.1-0.5"/><path class="st2" d="m42.2 67.7h0.3v-1.2c0-0.4 0-1 0.2-1.3 0.2-0.4 0.3-0.7 0.8-0.7 0.1 0 0.1 0 0.1-0.1 0-0.3-0.5-0.4-0.7-0.4-0.1 0-0.2 0.1-0.4 0.1-0.8 0.4-0.7 1.6-0.7 2.4 0 0.1 0 0.5-0.1 0.6-0.2 0.2-2 0.1-2.4 0.1 0.2 0.1 0.4 0.1 0.6 0.2s0.5 0.3 0.8 0.3h1 0.5"/><path class="st2" d="m44.1 67.3c0-0.1-0.1-0.2-0.1-0.3v-1.4-0.6c0-0.1-0.1-0.1-0.1-0.1-0.2 0.1-0.3 0.1-0.5 0.2-0.1 0.1-0.2 0.4-0.2 0.5s-0.1 0.3-0.1 0.5v0.8 0.4 0.4 0.4 0.2h-0.9c-0.1 0-0.2 0-0.3 0.1h-0.1c0.2 0.1 0.5 0.3 0.7 0.4 0.2 0.2 0.3 0.4 0.5 0.5 0.1-0.3 0.4-0.5 0.6-0.7l0.3-0.3c0.2-0.2 0.4-0.3 0.5-0.5-0.2-0.2-0.2-0.4-0.3-0.5"/><path class="st2" d="m44.6 67c0 0.2 0.1 0.4 0.2 0.5 0.2-0.1 0.5-0.2 0.7-0.3 0.1 0 0.2-0.1 0.3-0.1v-0.1h-0.9-0.3"/><path class="st2" d="m6.3 37.7c-0.6-0.2-0.7-0.6-0.5-1.3l0.2-0.9 4.3 1c0.7 0.2 0.8 0.4 0.7 0.8h0.2l0.4-2h-0.2c-0.1 0.5-0.3 0.6-1 0.4l-4.3-1 0.2-0.9c0.2-0.9 0.6-1 1.1-1v-0.1l-1.3-0.3v0.2c0.1 0.2 0.1 0.4 0 0.9l-0.7 2.9c-0.1 0.2-0.1 0.4-0.2 0.5s-0.1 0.2-0.2 0.3v0.2l1.3 0.3"/><path class="st2" d="m8.7 29.2 3.2 1.6c0.7 0.3 0.7 0.6 0.5 1l0.2 0.1 0.9-1.9-0.2-0.1c-0.2 0.4-0.5 0.5-1.1 0.2l-1.5-0.7 1.4-2.8 1.5 0.7c0.7 0.3 0.7 0.6 0.5 1l0.2 0.1 0.9-1.8-0.2-0.2c-0.2 0.4-0.5 0.5-1.1 0.2l-3.2-1.6c-0.6-0.3-0.8-0.5-0.5-1h-0.2l-0.9 1.8 0.2 0.1c0.2-0.4 0.5-0.5 1.1-0.2l1.5 0.7-1.4 2.8-1.5-0.6c-0.7-0.3-0.7-0.6-0.5-1l-0.2-0.1-0.9 1.9 0.2 0.1c0.2-0.5 0.5-0.6 1.1-0.3"/><path class="st2" d="m18.7 20.2-0.1 0.1c0.4 0.7 0.3 0.9-0.3 1.6l-0.6 0.8c-0.2 0.2-0.4 0.3-0.6 0.1l-1.6-1.3 0.9-1.1c0.4-0.5 0.5-0.5 0.9-0.3l0.1-0.1-1.1-0.9-0.1 0.1c0.3 0.4 0.3 0.5 0 0.8l-1 1.2-1.9-1.6 1.1-1.3c0.4-0.5 0.6-0.6 1.1-0.3l0.1-0.1-0.6-0.5-2.6 3.2 0.1 0.1c0.3-0.4 0.6-0.4 1.1 0.1l2.8 2.3c0.6 0.5 0.6 0.7 0.3 1.1l0.1 0.1 2.6-3.2-0.7-0.9"/><path class="st2" d="m27 15.3c0.7-0.4 1-0.9 1.2-1.8l0.4 0.7 1.2-0.7-0.1-0.1c-0.4 0.2-0.6 0.2-1-0.5l-1.7-3.1c-0.3-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.1 0.1c0.4-0.2 0.7-0.1 1 0.5l1.7 3c0 0.7-0.4 1.3-1 1.6-0.8 0.5-1.6 0.2-2-0.6l-1.4-2.5c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.2 0.1c0.4-0.2 0.6-0.2 1 0.5l1.4 2.5c0.5 0.8 1.4 1.3 2.6 0.7"/><path class="st2" d="m36.7 5.7v-0.2l-1.7 0.4v0.2c0.5-0.1 0.7 0 0.9 0.7l0.8 3.2-4.6-3.4-1.4 0.4v0.2c0.7-0.1 0.9 0.2 1.1 0.8l0.8 3.2c0.2 0.8 0 1-0.4 1.1v0.2l1.8-0.4v-0.2c-0.5 0.1-0.8 0-0.9-0.6l-1-3.9 5.2 3.8h0.2l-1.2-4.5c-0.3-0.6-0.2-0.9 0.4-1"/><path class="st2" d="m41.1 6.2 0.2 3.6c0 0.7-0.1 0.9-0.6 0.9v0.2l2.1-0.1v-0.2c-0.5 0-0.7-0.2-0.7-0.9l-0.2-3.6c0-0.7 0.1-0.9 0.6-0.9v-0.2l-2.1 0.1v0.2c0.5 0 0.6 0.2 0.7 0.9"/><path class="st2" d="m51.3 5.9v-0.2l-1.7-0.2v0.2c0.5 0.1 0.6 0.4 0.3 0.9l-1.8 3.4-0.9-3.9c-0.1-0.5 0.1-0.7 0.5-0.6v-0.2l-2-0.3v0.2c0.5 0.1 0.6 0.4 0.8 1.1l1.1 4.8h0.2l2.3-4.3c0.4-0.6 0.7-0.9 1.2-0.9"/><path class="st2" d="m55.3 12.7-0.9-0.3c-0.4-0.2-0.4-0.3-0.3-0.6l0.7-1.9 1.3 0.5c0.6 0.2 0.6 0.3 0.6 0.8l0.2 0.1 0.4-1.3-0.2-0.1c-0.2 0.4-0.4 0.4-0.8 0.3l-1.5-0.6 0.8-2.3 1.6 0.6c0.6 0.2 0.8 0.3 0.7 1h0.1l0.4-0.9-3.9-1.4-0.1 0.2c0.5 0.2 0.5 0.4 0.3 1.1l-1.2 3.4c-0.3 0.6-0.5 0.7-0.9 0.5l-0.1 0.2 3.9 1.4 0.6-0.9-0.2-0.1c-0.5 0.6-0.7 0.6-1.5 0.3"/><path class="st2" d="m61 15.7c-0.4-0.3-0.4-0.5 0-1.1l0.9-1.3 0.4 0.3c0.9 0.6 0.4 1.9 0.6 3.5l1 0.6 0.1-0.1c-0.8-0.6 0-2.4-0.5-3.5 0.8 0.2 1.4 0 1.8-0.5 0.4-0.6 0.3-1.6-0.8-2.3l-2-1.3-0.1 0.1c0.4 0.3 0.5 0.5 0.1 1.1l-2 3c-0.4 0.6-0.7 0.6-1 0.4l-0.1 0.1 1.7 1.1zm2.4-4.8 0.5 0.3c0.7 0.5 0.9 1.2 0.5 1.9-0.4 0.6-1 0.9-1.9 0.4l-0.6-0.4 1.5-2.2"/><path class="st2" d="m66 19.6c0.1 0.1 0.3 0.7 0.7 1.1 0.6 0.6 1.7 0.6 2.3 0 0.3-0.3 0.5-0.6 0.5-1.2 0-1.2-0.8-2.4-0.1-3.1 0.4-0.4 0.9-0.3 1.3 0.1s0.6 1.1 0.1 1.7l0.1 0.1 1-0.9-0.1-0.1c-0.1 0.1-0.2 0.1-0.2 0-0.2-0.2-0.2-0.5-0.6-1-0.7-0.7-1.5-0.7-2.1-0.1-0.3 0.3-0.5 0.7-0.5 1.2 0 0.9 0.7 2.3 0 3-0.4 0.4-1.1 0.4-1.5-0.1-0.4-0.4-0.7-1.2 0-2l-0.1-0.1-1.1 1.1 0.1 0.1c0 0.1 0.1 0.1 0.2 0.2"/><path class="st2" d="m69.9 24-0.1 0.1 1.2 1.7 0.1-0.1c-0.3-0.4-0.2-0.7 0.4-1.1l2.9-2c0.6-0.4 0.8-0.4 1.1 0l0.1-0.1-1.2-1.7-0.1 0.1c0.3 0.4 0.2 0.6-0.4 1.1l-2.9 2c-0.6 0.4-0.9 0.3-1.1 0"/><path class="st2" d="m77.6 26.5 0.3 0.8-4 1.8c-0.7 0.3-0.9 0.2-1.1-0.2l-0.1 0.1 0.8 1.8 0.2-0.1c-0.2-0.4-0.1-0.6 0.5-0.9l4-1.8 0.4 0.8c0.4 0.8 0.2 1.1-0.2 1.4v0.1l1.2-0.5-0.1-0.2c-0.2-0.1-0.4-0.3-0.6-0.7l-1.3-2.7c-0.1-0.2-0.2-0.4-0.2-0.5v-0.4l-0.1-0.2-1.2 0.5 0.1 0.2c0.7-0.2 1.1 0 1.4 0.7"/><path class="st2" d="m81.2 36.4h-0.2c0.1 0.5-0.3 0.5-0.8 0.4l-1.6-0.6 1.5-1.5c0.3-0.3 0.5-0.3 0.7 0.3h0.2l-0.5-2.2h-0.2c0.1 0.4 0 0.6-0.5 1.2l-1.6 1.6-1.8 0.4c-0.8 0.2-0.9-0.1-1-0.5h-0.2l0.4 2h0.2c-0.1-0.5 0.1-0.7 0.8-0.8l1.8-0.4 2.3 0.8c0.6 0.2 0.7 0.3 0.8 0.8h0.2l-0.5-1.5"/><path class="st2" d="m10 56.3c1.6-0.5 2.5-2.1 2-3.8s-2.1-2.6-3.7-2.1-2.5 2.1-2.1 3.8c0.5 1.7 2.1 2.6 3.8 2.1m-3.6-2.1c-0.4-1.2 0.5-2.4 2.1-2.9s2.9 0.1 3.3 1.4c0.3 1.1-0.4 2.3-2.1 2.8-1.4 0.4-2.9 0.1-3.3-1.3"/><path class="st2" d="m13.8 58.1c0.2 0.4 0.2 0.7-0.5 1l-3.1 1.8c-0.6 0.4-0.9 0.3-1.1-0.1l-0.2 0.1 1 1.8 0.1-0.1c-0.2-0.4-0.1-0.7 0.5-1l1.5-0.8 0.8 1.3c0.2 0.3 0.1 0.6-0.3 0.9l0.1 0.1 1.4-0.8-0.1-0.1c-0.4 0.2-0.7 0.2-0.9-0.2l-0.7-1.3 2.1-1.2 0.7 1.3c0.3 0.5 0.4 0.7-0.2 1.2h0.1l0.9-0.5-1.9-3.4h-0.2"/><path class="st2" d="m20.8 67.6c0.4 0.3 0.4 0.6-0.1 1.1l-2.3 2.8c-0.5 0.6-0.7 0.6-1.1 0.3l-0.1 0.1 3.2 2.6 0.9-0.7-0.1-0.1c-0.7 0.4-0.9 0.3-1.6-0.3l-0.8-0.6c-0.2-0.2-0.3-0.4-0.1-0.6l1.3-1.6 1.1 0.9c0.5 0.4 0.5 0.5 0.3 0.9l0.1 0.1 0.9-1.1-0.1-0.1c-0.4 0.3-0.5 0.3-0.8 0l-1.2-1 1.6-1.9 1.3 1c0.5 0.4 0.6 0.6 0.3 1.1l0.1 0.1 0.6-0.7-3.2-2.6-0.2 0.3"/><path class="st2" d="m29.3 73.2-2.4-1.1-0.1 0.2c0.4 0.2 0.5 0.5 0.2 1.1l-1.5 3.2c-0.3 0.6-0.6 0.7-1 0.6l-0.1 0.2 2.5 1.1c2 0.9 3.4 0.1 4-1.2 0.7-1.4 0.4-3.2-1.6-4.1m0.9 3.6c-0.7 1.4-1.8 2-3.1 1.4l-0.6-0.2c-0.5-0.2-0.6-0.5-0.2-1.3l1.8-3.8 1 0.5c1.6 0.7 1.7 2.2 1.1 3.4"/><path class="st2" d="m35.2 75.5c0.5 0.1 0.6 0.3 0.4 1l-0.7 3.5c-0.2 0.7-0.4 0.9-0.8 0.7v0.2l2 0.4v-0.2c-0.5-0.1-0.6-0.4-0.4-1l0.8-3.5c0.1-0.7 0.4-0.8 0.8-0.7v-0.2l-2-0.4-0.1 0.2"/><path class="st2" d="m44.9 76.3v0.2c0.5 0 0.7 0.2 0.7 0.9v3.4l-3.6-4.5h-1.5v0.2c0.7 0.1 0.9 0.4 0.9 1.1v3.4c0 0.8-0.2 1-0.7 1v0.2h1.7v-0.2c-0.5 0-0.8-0.2-0.8-0.8l-0.1-4 4.1 4.9h0.4v-4.7c0-0.7 0.2-0.9 0.7-0.9v-0.2h-1.8"/><path class="st2" d="m53.6 77.6c0.7-0.5 0.9-1 0.8-1.6-0.2-0.7-1-1.2-2.3-0.8l-2.1 0.6v0.2c0.5-0.1 0.7 0 0.9 0.7l0.9 3.4c0.2 0.7 0.1 0.9-0.4 1v0.2l2.5-0.7c1-0.3 1.6-1 1.4-1.8-0.1-0.8-0.8-1.3-1.7-1.2m-2.2-2 0.6-0.2c0.9-0.2 1.5 0.1 1.7 0.8s-0.2 1.3-1 1.5l-0.7 0.2zm2.4 4.8-0.5 0.1c-0.4 0.1-0.6 0-0.8-0.8l-0.4-1.6 0.5-0.1c1-0.3 1.7 0.1 2 0.9 0.2 0.8-0.3 1.3-0.8 1.5"/><path class="st2" d="m64.2 74.7-1.8-3.1c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.7 1 0.1 0.1c0.4-0.2 0.7-0.1 1 0.5l1.7 3c0 0.7-0.4 1.3-0.9 1.6-0.8 0.5-1.6 0.2-2-0.6l-1.6-2.4c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.1 0.1c0.4-0.2 0.6-0.2 1 0.5l1.4 2.4c0.5 0.9 1.5 1.4 2.7 0.7 0.7-0.4 1-0.9 1.2-1.8l0.4 0.7 1.2-0.7-0.1-0.1c-0.3 0.2-0.5 0.2-0.9-0.5"/><path class="st2" d="m69.1 68.3c0.4-0.8 0.3-1.4-0.2-1.8-0.5-0.5-1.5-0.6-2.4 0.3l-1.6 1.7 0.1 0.1c0.3-0.3 0.6-0.4 1.1 0.2l2.6 2.5c0.6 0.5 0.5 0.8 0.2 1.1l0.1 0.1 1.4-1.5-0.1-0.1c-0.3 0.3-0.6 0.3-1.1-0.2l-1.2-1.1 0.3-0.3c0.7-0.7 1.9 0 3.6 0.1l0.8-0.8-0.1-0.1c-0.7 0.6-2.3-0.5-3.5-0.2m-0.8 0.6-0.5 0.5-1.8-1.8 0.4-0.4c0.6-0.6 1.4-0.7 1.9-0.1 0.5 0.4 0.7 1.1 0 1.8"/><path class="st2" d="m75.8 59.8-0.1-0.1-1.2 2 0.1 0.1 0.1-0.2c0.2-0.4 0.5-0.4 1.1 0l0.5 0.3c0.4 0.3 0.2 0.8 0 1.1-0.7 1.2-2.3 1.4-3.7 0.5-1.3-0.8-1.8-2.1-1.1-3.1 0.4-0.7 1.3-1.3 2.3-0.8l0.1-0.1-1.4-0.9-0.1 0.2c0.1 0.1 0.1 0.2 0 0.4-0.2 0.4-0.6 0.5-1 1.2-0.7 1.2-0.6 3.1 1.2 4.2 1.1 0.7 2.9 0.8 4.2-1.4 0.1-0.2 0.6-1.1 0.7-1.4l-1.3-0.8c-0.5-0.5-0.7-0.7-0.4-1.2"/><path class="st2" d="m79.9 51.7-3.4-1c-0.7-0.2-0.8-0.4-0.7-0.9h-0.2l-0.6 2 0.2 0.1c0.1-0.5 0.4-0.6 1.1-0.4l1.6 0.5-0.9 3-1.6-0.5c-0.7-0.2-0.8-0.5-0.7-0.9h-0.2l-0.6 2h0.2c0.1-0.5 0.4-0.6 1.1-0.4l3.4 1c0.7 0.2 0.8 0.4 0.7 0.9h0.2l0.6-2h-0.2c-0.1 0.5-0.4 0.6-1.1 0.4l-1.5-0.5 0.9-3 1.6 0.5c0.7 0.2 0.8 0.4 0.7 0.9h0.2l0.6-2h-0.2c-0.2 0.4-0.5 0.5-1.2 0.3"/><path class="st2" d="m7 44.1c0 0.3 0.2 0.5 0.5 0.5s0.5-0.2 0.5-0.5-0.2-0.5-0.5-0.5-0.5 0.2-0.5 0.5"/><path class="st2" d="m79.7 44.1c0-0.3-0.2-0.5-0.5-0.5s-0.5 0.2-0.5 0.5 0.2 0.5 0.5 0.5 0.5-0.3 0.5-0.5"/></svg>
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.pdf
new file mode 100644
index 0000000000..39bb707e73
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.svg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.svg
new file mode 100644
index 0000000000..6089f29ef7
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.svg
@@ -0,0 +1,8 @@
+<svg width="342.4" height="97.2" version="1.1" viewBox="0 0 342.4 97.2" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+<style type="text/css">
+ .st0{clip-path:url(#SVGID_2_);}
+ .st1{fill:none;stroke:#FFFFFF;stroke-width:3;stroke-miterlimit:1;}
+ .st2{fill:#FFFFFF;}
+ .st3{fill:none;stroke:#FFFFFF;stroke-miterlimit:1;}
+</style>
+<g transform="translate(10,10)"><path class="st2" d="m107.6 17.3h-2.8v14c0 1.1 0.1 1.8 0.4 2.2s0.8 0.6 1.6 0.6v0.5h-6.4v-0.5c0.8 0 1.3-0.2 1.6-0.7 0.3-0.4 0.4-1.2 0.4-2.2v-13.9h-2.6c-1.3 0-2.2 0.2-2.8 0.6s-0.9 1.1-1 2h-0.5v-4.2h0.5c0.5 0.5 1.4 0.7 2.7 0.7h9.5c1.4 0 2.3-0.2 2.9-0.7h0.6v4.2h-0.4c-0.2-1-0.6-1.7-1.2-2.1-0.5-0.3-1.3-0.5-2.5-0.5"/><path class="st2" d="m128.4 31.2v-5.3h-9.9v5.3c0 1.1 0.2 1.8 0.5 2.2s0.9 0.6 1.7 0.6v0.5h-6.7v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.2v-11.4c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.6v0.5c-0.8 0-1.3 0.2-1.7 0.7-0.3 0.4-0.5 1.2-0.5 2.2v5.2h9.9v-5.2c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.5-1.1 0.5-2.2"/><path class="st2" d="m147 23.3h0.5v4.4h-0.5c-0.2-0.8-0.4-1.3-0.7-1.5s-0.9-0.3-1.8-0.3h-4.5v6.5c0 0.5 0.1 0.8 0.3 1s0.5 0.3 1 0.3h3.2c1.1 0 1.9-0.1 2.4-0.2 0.4-0.1 0.8-0.4 1.1-0.7s0.6-0.9 1-1.6h0.5l-0.8 3.4h-13.1v-0.5c0.8 0 1.4-0.2 1.6-0.6 0.3-0.4 0.4-1.2 0.4-2.2v-11.5c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h13.1v3h-0.3c-0.2-0.9-0.4-1.4-0.8-1.7s-1.1-0.4-2.3-0.4h-5.3v7.8h5.1c0.7 0 1.2-0.1 1.4-0.4 0.2-0.2 0.4-0.7 0.5-1.4"/><path class="st2" d="m172.9 30.8v-11c0-1.1-0.1-1.8-0.4-2.2s-0.8-0.6-1.5-0.7v-0.5h6.4v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.2s0.8 0.6 1.6 0.6v0.5h-4.5v-2.4c-1.7 2-3.7 3-6.1 3-1.9 0-3.4-0.6-4.5-1.7s-1.7-2.7-1.7-4.5v-8.9c0-1.1-0.1-1.8-0.4-2.3-0.3-0.4-0.8-0.6-1.6-0.6v-0.5h6.6v0.5c-0.8 0-1.4 0.2-1.7 0.6s-0.4 1.2-0.4 2.2v9.2c0 1.5 0.4 2.7 1.2 3.5 0.8 0.9 2 1.3 3.4 1.3 2.2 0 3.9-1 5.2-3"/><path class="st2" d="m193.7 16.9v-0.5h5.5v0.5c-0.9 0-1.5 0.2-1.8 0.6s-0.5 1.2-0.5 2.2v14.8h-0.6l-12.9-15.8v12.8c0 0.9 0.2 1.5 0.5 1.9 0.4 0.4 1 0.6 1.8 0.6v0.5h-5.5v-0.5c0.9 0 1.5-0.2 1.8-0.7s0.5-1.3 0.5-2.4v-10.6c0-1.1-0.2-2-0.6-2.5s-1.1-0.8-2.1-0.9v-0.5h4.7l11.4 14.1v-10.6c0-1.1-0.2-1.9-0.5-2.3s-0.8-0.7-1.7-0.7"/><path class="st2" d="m208.3 16.4v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.3v-11.3c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5"/><path class="st2" d="m228.4 16.4v0.6c-1.3 0-2.4 1.2-3.3 3.5l-5.4 14.3h-0.5l-5.6-14.7c-0.5-1.4-1-2.2-1.4-2.6s-0.9-0.5-1.6-0.6v-0.5h6.6v0.5c-1.1 0-1.6 0.4-1.6 1.2 0 0.3 0.1 0.6 0.2 0.9l4.4 11.7 4.2-11.3c0.2-0.5 0.3-0.9 0.3-1.3 0-0.9-0.5-1.3-1.6-1.3v-0.5h5.3"/><path class="st2" d="m241.7 23.3h0.5v4.4h-0.5c-0.2-0.8-0.4-1.3-0.7-1.5s-0.9-0.3-1.8-0.3h-4.5v6.5c0 0.5 0.1 0.8 0.3 1s0.5 0.3 1 0.3h3.2c1.1 0 1.9-0.1 2.4-0.2 0.4-0.1 0.8-0.4 1.1-0.7s0.6-0.9 1-1.6h0.5l-0.8 3.4h-13.1v-0.5c0.8 0 1.4-0.2 1.6-0.6 0.3-0.4 0.4-1.2 0.4-2.2v-11.5c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h13.1v3h-0.3c-0.2-0.9-0.5-1.4-0.8-1.7s-1.1-0.4-2.3-0.4h-5.2v7.8h5.1c0.7 0 1.2-0.1 1.4-0.4 0.1-0.2 0.3-0.7 0.4-1.4"/><path class="st2" d="m252.8 17.1h-1.9v8.3h2.2c1.3 0 2.4-0.4 3.1-1.1 0.8-0.8 1.1-1.8 1.1-3s-0.4-2.2-1.3-3c-0.7-0.8-1.8-1.2-3.2-1.2zm-0.4 9.1h-1.5v5c0 1.1 0.2 1.8 0.5 2.2s0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.4-0.2 1.6-0.6 0.3-0.4 0.4-1.2 0.4-2.2v-11.4c0-1.1-0.1-1.8-0.4-2.2s-0.8-0.6-1.6-0.6v-0.5h7.4c1.8 0 3.3 0.4 4.4 1.3s1.7 2 1.7 3.4c0 2.2-1.2 3.7-3.8 4.5 0.5 0.4 1.1 0.8 1.6 1.4s1.2 1.6 2.1 3.1c0.9 1.6 1.7 2.6 2.2 3.1s1.1 0.8 1.7 0.8v0.5h-3.7c-0.8-0.9-1.7-2.3-2.8-4.1-1.2-1.9-2.1-3.1-2.7-3.6-0.7-0.5-1.4-0.7-2.2-0.7"/><path class="st2" d="m274.5 16.1h0.5v4.3h-0.5c-0.1-1.2-0.6-2.1-1.3-2.8s-1.6-1-2.8-1c-1 0-1.8 0.2-2.4 0.7s-0.9 1.2-0.9 2 0.2 1.5 0.7 2.1 1.6 1.4 3.2 2.4c1.9 1.1 3.2 2.1 3.9 3s1 1.8 1 2.9c0 1.4-0.5 2.6-1.5 3.7-1 1-2.2 1.5-3.7 1.5-0.8 0-1.9-0.2-3.2-0.7-0.5-0.2-0.9-0.3-1-0.3-0.3 0-0.5 0.2-0.7 0.7h-0.5v-4.9h0.5c0 1.4 0.5 2.4 1.3 3.3s1.9 1.2 3.1 1.2c1.1 0 2-0.3 2.7-0.9s1-1.4 1-2.4c0-0.7-0.3-1.4-0.8-2.1s-1.7-1.5-3.4-2.6c-1.4-0.9-2.4-1.6-2.8-2.1-0.5-0.5-0.8-1.1-1.1-1.7s-0.3-1.3-0.3-2c0-1.4 0.5-2.5 1.4-3.4s2.1-1.3 3.6-1.3c0.8 0 1.7 0.2 2.6 0.5 0.4 0.1 0.8 0.2 0.9 0.2s0.2 0 0.3-0.1c0.1 0.2 0.2 0.1 0.2-0.2"/><path class="st2" d="m285.6 16.4v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.2 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.3v-11.3c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5"/><path class="st2" d="m300.1 17.3h-2.8v14c0 1.1 0.1 1.8 0.4 2.2s0.8 0.6 1.6 0.6v0.5h-6.4v-0.5c0.8 0 1.3-0.2 1.6-0.7 0.3-0.4 0.4-1.2 0.4-2.2v-13.9h-2.6c-1.3 0-2.2 0.2-2.8 0.6s-0.9 1.1-1 2h-0.5v-4.2h0.5c0.5 0.5 1.4 0.7 2.7 0.7h9.5c1.4 0 2.3-0.2 2.9-0.7h0.6v4.2h-0.4c-0.2-1-0.6-1.7-1.2-2.1s-1.4-0.5-2.5-0.5"/><path class="st2" d="m319.6 19-4.1 6.4v5.7c0 1.1 0.1 1.9 0.4 2.3s0.8 0.6 1.6 0.6v0.5h-6.6v-0.5c0.9 0 1.5-0.2 1.8-0.7 0.3-0.4 0.4-1.2 0.4-2.2v-5.7l-3.9-6c-0.6-1-1.2-1.7-1.6-2s-1-0.5-1.7-0.5v-0.5h7.1v0.5c-1.2 0-1.9 0.3-1.9 0.9 0 0.3 0.1 0.6 0.4 1l3.6 5.5 2.9-4.6c0.4-0.7 0.6-1.3 0.6-1.8 0-0.7-0.4-1-1.2-1v-0.5h5v0.5c-0.7 0-1.2 0.2-1.6 0.4s-0.7 0.9-1.2 1.7"/><path class="st2" d="m99.5 58.8c1 0 1.9-0.6 2.7-1.9s1.2-2.8 1.2-4.6c0-0.8-0.2-1.5-0.6-2s-0.9-0.8-1.6-0.8c-1 0-1.9 0.6-2.7 1.9s-1.2 2.8-1.2 4.5c0 0.9 0.2 1.6 0.6 2.1 0.5 0.5 1 0.8 1.6 0.8zm2.6-10.2c0.8 0 1.6 0.4 2.2 1.1s1 1.6 1 2.5c0 1.7-0.6 3.4-1.9 5s-2.8 2.5-4.5 2.5c-1 0-1.8-0.3-2.4-1s-0.9-1.6-0.9-2.7c0-1.9 0.7-3.6 2-5.1 1.3-1.6 2.8-2.3 4.5-2.3"/><path class="st2" d="m113.1 48.9-0.1 0.9h-2.2l-1.8 9.2c-0.5 2.5-1 4.3-1.5 5.5s-1.4 2-2.4 2.6-2.1 0.9-3.3 0.9c-1.6 0-2.8-0.3-3.7-0.9l0.5-2.2h0.5c0.3 1.6 1.3 2.4 2.8 2.4 1.1 0 2.1-0.4 3-1.2s1.6-2.7 2.1-5.7l2-10.7h-2.2l0.1-0.9h2.2l0.8-3.8c0.4-2 1.1-3.5 2-4.2 0.9-0.8 2.1-1.2 3.3-1.2 0.6 0 1.3 0.1 2.2 0.4l0.1-0.4h0.6l-0.6 2.9h-0.5c-0.1-1.5-0.8-2.3-2-2.3-1.5 0-2.6 1.3-3.1 3.9l-1 4.7h2.2"/><path class="st2" d="m135 48.1h0.5v4.4h-0.5c-0.2-0.8-0.4-1.3-0.7-1.5s-0.9-0.3-1.8-0.3h-4.5v6.5c0 0.5 0.1 0.8 0.3 1s0.5 0.3 1 0.3h3.2c1.1 0 1.9-0.1 2.4-0.2 0.4-0.1 0.8-0.4 1.1-0.7s0.6-0.9 1-1.6h0.5l-0.8 3.4h-13.1v-0.5c0.8 0 1.4-0.2 1.6-0.6 0.3-0.4 0.4-1.2 0.4-2.2v-11.5c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h13.1v3h-0.3c-0.2-0.9-0.5-1.4-0.8-1.7s-1.1-0.4-2.3-0.4h-5.2v7.8h5.1c0.7 0 1.2-0.1 1.4-0.4 0.1-0.3 0.3-0.7 0.4-1.4"/><path class="st2" d="m147.8 41.9h-3.5v13.4c0 1.3 0.2 2.2 0.5 2.6s0.9 0.7 1.9 0.7h1.9c2.2 0 4-0.7 5.3-2.2s1.9-3.4 1.9-5.9c0-2.6-0.7-4.8-2.1-6.3s-3.4-2.3-5.9-2.3zm-7.9 17.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.2v-11.5c0-1.1-0.1-1.8-0.4-2.3-0.3-0.4-0.8-0.6-1.6-0.6v-0.5h8.4c3.1 0 5.6 0.9 7.5 2.6 1.9 1.8 2.8 4 2.8 6.7s-0.9 4.8-2.6 6.4-4.2 2.4-7.4 2.4h-8.7"/><path class="st2" d="m167.5 41.2v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.3v-11.3c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5"/><path class="st2" d="m183.7 41.7v-0.5h5.5v0.5c-0.9 0-1.5 0.2-1.8 0.6s-0.5 1.2-0.5 2.2v14.8h-0.6l-12.9-15.8v12.8c0 0.9 0.2 1.5 0.6 1.9s1 0.6 1.8 0.6v0.5h-5.5v-0.5c0.9 0 1.5-0.2 1.8-0.7s0.5-1.3 0.5-2.4v-10.6c0-1.1-0.2-2-0.6-2.5s-1.1-0.8-2.1-0.9v-0.5h4.7l11.4 14.1v-10.6c0-1.1-0.2-1.9-0.5-2.3-0.4-0.5-1-0.7-1.8-0.7"/><path class="st2" d="m197.3 50.3h-1.7v5.3c0 1.2 0.1 2 0.4 2.4s0.8 0.6 1.5 0.6h1.5c1.1 0 1.9-0.4 2.6-1.1s1-1.7 1-2.8c0-1.4-0.5-2.4-1.4-3.3-1-0.7-2.3-1.1-3.9-1.1zm-1.7-8.4v7.7h1.9c1.3 0 2.4-0.3 3.1-1s1.2-1.6 1.2-2.8-0.4-2.2-1.1-2.9c-0.8-0.7-1.8-1-3.2-1zm3.9 17.5h-8.4v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.3v-11.4c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.9c2 0 3.5 0.4 4.6 1.2s1.7 1.9 1.7 3.2c0 2-1.2 3.3-3.7 4.1v0.1c1.4 0.3 2.5 0.9 3.4 1.8s1.3 2 1.3 3.3-0.5 2.4-1.6 3.2c-1 0.8-2.4 1.3-4.2 1.3"/><path class="st2" d="m221.6 55.5v-10.9c0-1.1-0.1-1.8-0.4-2.2s-0.8-0.6-1.5-0.7v-0.5h6.4v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.2s0.8 0.6 1.6 0.6v0.5h-4.5v-2.5c-1.7 2-3.7 3-6.1 3-1.9 0-3.4-0.6-4.5-1.7s-1.7-2.7-1.7-4.5v-8.9c0-1.1-0.1-1.8-0.4-2.3-0.3-0.4-0.8-0.6-1.6-0.6v-0.5h6.6v0.5c-0.8 0-1.4 0.2-1.7 0.6s-0.4 1.2-0.4 2.2v9.2c0 1.5 0.4 2.7 1.2 3.5 0.8 0.9 2 1.3 3.4 1.3 2.1 0.1 3.9-0.9 5.2-3"/><path class="st2" d="m235.1 41.9h-1.9v8.3h2.2c1.3 0 2.4-0.4 3.1-1.1 0.8-0.8 1.1-1.8 1.1-3s-0.4-2.2-1.3-3c-0.7-0.8-1.8-1.2-3.2-1.2zm-0.4 9h-1.5v5c0 1.1 0.2 1.8 0.5 2.2s0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.2v-11.4c0-1.1-0.1-1.8-0.4-2.2s-0.8-0.6-1.6-0.6v-0.5h7.4c1.8 0 3.3 0.4 4.4 1.3s1.6 2 1.6 3.4c0 2.2-1.2 3.7-3.8 4.5 0.6 0.4 1.1 0.8 1.6 1.4s1.2 1.6 2.1 3.1c1 1.6 1.7 2.6 2.2 3.1s1.1 0.8 1.7 0.8v0.5h-3.7c-0.8-0.9-1.7-2.3-2.8-4.1-1.2-1.9-2.1-3.1-2.7-3.6-0.6-0.4-1.3-0.7-2.1-0.7"/><path class="st2" d="m264.1 51.5v0.5c-0.8 0-1.4 0.2-1.7 0.6s-0.5 1-0.5 1.9v4.9c-0.4 0.1-1.2 0.2-2.4 0.3s-2.1 0.1-2.7 0.1c-3.4 0-6-0.8-7.8-2.5-1.9-1.7-2.8-3.8-2.8-6.5 0-1.9 0.4-3.6 1.2-5.1s2-2.7 3.4-3.6 3-1.3 4.7-1.3c1 0 2.1 0.2 3.2 0.5 0.7 0.2 1.3 0.3 1.7 0.3 0.5 0 0.9-0.2 1-0.6h0.6v5.4h-0.5c-0.2-1.5-0.9-2.7-2-3.6s-2.5-1.3-4-1.3c-1.9 0-3.5 0.8-4.7 2.3s-1.8 3.5-1.8 5.9c0 2.7 0.7 4.9 2.1 6.6 1.4 1.8 3.2 2.6 5.4 2.6 2 0 3.1-0.6 3.1-1.9v-2c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.7-1.6-0.7h-0.7v-0.5h7.2"/><path class="st2" d="m280 55.9v-5.3h-9.9v5.3c0 1.1 0.2 1.8 0.5 2.2s0.9 0.6 1.6 0.6v0.5h-6.6v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.2v-11.3c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.6v0.5c-0.8 0-1.3 0.2-1.6 0.7-0.3 0.4-0.5 1.2-0.5 2.2v5.2h9.9v-5.2c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6 0.2-0.4 0.4-1.2 0.4-2.3"/><path class="st2" d="m68.6 36c0-0.6-0.2-1.2-0.2-1.8-0.1-0.6-0.1-1.3-0.2-1.9-0.4-1.7-0.8-3.3-1.4-4.9-0.1-0.2-0.2-0.4-0.3-0.7-0.2-0.5-0.4-0.9-0.6-1.3-0.1-0.1-0.1-0.3-0.2-0.4-0.2-0.4-0.3-0.8-0.5-1.2-0.1-0.2-0.3-0.4-0.4-0.7-0.1-0.2-0.2-0.5-0.3-0.7-0.4-0.7-0.9-1.3-1.3-1.9-0.2-0.2-0.3-0.4-0.5-0.6s-0.4-0.5-0.6-0.7-0.4-0.3-0.5-0.5c-0.1-0.1-0.1-0.2-0.2-0.4s-0.3-0.3-0.4-0.4l-0.2-0.2c-0.2-0.2-0.4-0.5-0.6-0.7s-0.4-0.4-0.6-0.5l-0.6-0.6c-0.3-0.2-0.5-0.4-0.8-0.6s-0.5-0.5-0.8-0.7c-0.2-0.1-0.4-0.2-0.5-0.3-0.2-0.2-0.4-0.3-0.7-0.5-0.2-0.1-0.3-0.3-0.5-0.4-0.1-0.1-0.2-0.1-0.4-0.2s-0.3-0.2-0.5-0.3c-0.5-0.3-1.1-0.6-1.7-0.9-0.2-0.1-0.4-0.3-0.6-0.4-0.4-0.2-0.7-0.4-1.1-0.5-0.3-0.1-0.6-0.2-0.9-0.4-0.1-0.1-0.3-0.2-0.4-0.2s-0.2-0.1-0.3-0.1c-0.2-0.1-0.4-0.2-0.5-0.2-0.6-0.2-1.1-0.3-1.7-0.5-0.3-0.1-0.6-0.2-0.8-0.3-0.6-0.2-1.2-0.3-1.8-0.4l-1.2-0.3c-0.3 0-0.5-0.1-0.8-0.1-0.4-0.1-0.9-0.2-1.4-0.2h-0.5c-0.1 0-0.2 0-0.4-0.1h-0.7c-0.5 0-1.1-0.1-1.7-0.1-0.2 0.1-0.5 0-0.8 0h-0.9-0.2-0.6c-0.1 0-0.2 0.1-0.3 0.1h-0.3-0.3-0.2c-0.1 0-0.3 0-0.4 0.1-0.3 0-0.7 0-0.9 0.2h-0.2c-0.2 0-0.4 0-0.6 0.1-0.5 0-0.9 0.2-1.3 0.3-0.4 0-0.7 0-0.9 0.2-0.2 0-0.4 0-0.5 0.1-0.3 0-0.6 0.2-0.8 0.3s-0.3 0.1-0.5 0.1c-0.3 0-0.6 0.2-0.8 0.3s-0.3 0.1-0.5 0.2c-0.9 0.4-1.8 0.8-2.7 1.3-0.2 0.1-0.3 0.2-0.4 0.3-1.1 0.5-2.1 1.1-3 1.9-0.3 0.2-0.5 0.4-0.8 0.6l-0.4 0.4c-0.3 0.2-0.5 0.4-0.8 0.6-0.5 0.4-1 0.9-1.5 1.4-0.3 0.3-0.6 0.5-0.9 0.8-0.1 0.1-0.2 0.2-0.3 0.4l-0.4 0.4c-0.2 0.2-0.4 0.5-0.6 0.7s-0.4 0.4-0.5 0.6c-0.1 0.1-0.2 0.2-0.2 0.3-0.3 0.4-0.6 0.7-0.9 1.1l-0.6 0.9c-0.3 0.3-0.6 0.8-0.8 1.2-0.1 0.1-0.1 0.2-0.2 0.4-0.2 0.3-0.4 0.6-0.5 0.9-0.2 0.3-0.3 0.7-0.4 1-0.1 0.1-0.1 0.2-0.2 0.4-0.2 0.3-0.3 0.6-0.4 0.9-0.1 0.2-0.1 0.4-0.2 0.6l-0.3 0.6c-0.1 0.2-0.1 0.4-0.2 0.7-0.1 0.2-0.2 0.5-0.3 0.7-0.4 1.4-0.8 2.9-1.1 4.4 0 0.3-0.1 0.6-0.1 0.9s-0.2 0.7-0.2 1 0 0.6-0.1 0.8c0 0.2 0 0.4-0.1 0.6v3.6c0 0.6 0.1 1.2 0.2 1.7v0.7c0.1 0.8 0.2 1.6 0.3 2.3 0.1 0.2 0.1 0.4 0.2 0.6 0.1 0.6 0.3 1.2 0.4 1.8 0.1 0.1 0.1 0.3 0.2 0.4 0 0.1 0.1 0.3 0.1 0.4 0.2 0.6 0.5 1.3 0.7 1.9 0.1 0.2 0.2 0.5 0.3 0.7s0.1 0.3 0.2 0.5l0.6 1.2c0.2 0.3 0.4 0.6 0.5 1 0.1 0.1 0.1 0.2 0.1 0.4l0.2 0.2c0.1 0.1 0.1 0.3 0.2 0.4 0.2 0.3 0.3 0.5 0.5 0.8 0.1 0.2 0.2 0.3 0.3 0.5 0.2 0.2 0.3 0.4 0.5 0.6 0.1 0.2 0.2 0.3 0.3 0.5 0.2 0.3 0.4 0.5 0.6 0.8 0.2 0.2 0.4 0.4 0.5 0.7 0.2 0.2 0.4 0.5 0.7 0.7 0.2 0.2 0.3 0.5 0.6 0.7 0.3 0.3 0.6 0.6 0.9 0.8l0.4 0.4c0.2 0.2 0.5 0.4 0.8 0.6 0.2 0.2 0.5 0.4 0.7 0.7 0.2 0.1 0.3 0.3 0.5 0.4 0.2 0.2 0.4 0.4 0.6 0.5 0.3 0.2 0.5 0.4 0.8 0.6l0.6 0.3c0.2 0.1 0.4 0.3 0.6 0.4s0.4 0.2 0.6 0.4c0.8 0.5 1.6 0.9 2.4 1.3 0.4 0.2 0.7 0.4 1.1 0.5s0.7 0.3 1.1 0.4c0.1 0 0.3 0.1 0.4 0.1 0.3 0.1 0.7 0.3 1 0.4 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.6 0.3 0.9 0.3 0.4 0.1 0.8 0.1 1.1 0.2 0.6 0.1 1.1 0.3 1.7 0.4h0.6c0.3 0 0.6 0.1 0.8 0.1h0.7c0.1 0 0.3 0 0.4 0.1h0.4c0.3 0.1 0.7 0.1 1 0.2h0.5 0.3c0.3 0 0.7 0 1 0.1h0.6c0.4 0 0.8-0.1 1.1-0.1h0.5c0.2 0 0.5-0.1 0.7-0.1l2.4-0.3c0.3-0.1 0.5-0.1 0.8-0.2s0.7-0.1 1-0.2c0.2 0 0.3-0.1 0.5-0.2 0.3-0.1 0.5-0.2 0.8-0.2 0.1 0 0.2-0.1 0.4-0.1 0.2-0.1 0.4-0.1 0.6-0.1 0.4-0.1 0.8-0.3 1.2-0.4 0.2-0.1 0.5-0.2 0.7-0.3s0.5-0.2 0.7-0.3c0.1 0 0.1-0.1 0.2-0.1 0.2-0.1 0.5-0.2 0.7-0.3 0.3-0.2 0.5-0.3 0.8-0.5 0.1-0.1 0.3-0.1 0.4-0.2 0.4-0.2 0.8-0.5 1.2-0.7 0.3-0.2 0.7-0.4 1-0.6s0.6-0.5 0.9-0.7 0.6-0.5 1-0.7l0.2-0.2c0.1 0 0.2-0.1 0.2-0.1 0.3-0.2 0.5-0.5 0.8-0.7l0.6-0.6c0.2-0.2 0.4-0.4 0.7-0.6 0.1-0.1 0.1-0.2 0.2-0.3 0.2-0.2 0.4-0.3 0.5-0.5 0.1-0.1 0.2-0.3 0.3-0.4 0.4-0.4 0.8-0.8 1.1-1.2 0.3-0.3 0.5-0.6 0.8-1 0.2-0.2 0.4-0.5 0.5-0.8l0.3-0.3c0.3-0.4 0.6-0.8 0.9-1.2 0.1-0.1 0.1-0.3 0.2-0.4s0.1-0.2 0.2-0.3 0.1-0.2 0.2-0.4c0.2-0.3 0.4-0.7 0.6-1s0.3-0.5 0.5-0.8c0.1-0.3 0.2-0.5 0.3-0.8s0.3-0.6 0.4-0.8c0.4-1.2 0.9-2.4 1.2-3.6 0-0.1 0.1-0.3 0.1-0.4 0.1-0.5 0.2-0.9 0.3-1.4 0-0.2 0.1-0.5 0.1-0.7 0.1-0.4 0.1-0.8 0.2-1.2 0-0.3 0-0.6 0.1-1 0-0.1 0-0.2 0.1-0.4v-0.8c0-0.1 0.1-0.3 0.1-0.4v-0.6c0.1-1.7 0.2-3 0.1-4.2m-36.3-25.8c0.3 0 0.5-0.1 0.7-0.2 0.4-0.1 0.8-0.2 1.2-0.2h0.9c0.4 0 0.8-0.1 1.2-0.2h0.5c0.2 0 0.4 0 0.6-0.1h1.2c0.2 0 0.5 0 0.7 0.1 0.2 0 0.4 0.1 0.5 0.1h0.8 0.4 0.5c0.2 0 0.4 0.1 0.7 0.1h0.3c0.1 0 0.2 0.1 0.3 0.1s0.2 0.1 0.4 0.1c0.5 0.1 1 0.1 1.5 0.2h0.1c0 0.1-0.8 0-1 0h-0.3-0.7-0.3-0.4-0.3c-0.3 0-0.8-0.1-1.1 0-0.3 0-0.6 0-0.9-0.1-0.1 0-0.4-0.1-0.5 0h-0.4c-0.2 0-0.3-0.1-0.5 0-0.1 0-0.2 0-0.3 0.1h-2.1c-0.1 0-0.3 0-0.4-0.1h-1c-0.2 0-0.7-0.1-0.8 0-0.5 0.1-1 0.1-1.5 0.1zm-3.8 1.1c0.1 0 0.3-0.2 0.4-0.2s0.2-0.1 0.3-0.1c0.1-0.1 0.2-0.1 0.3-0.1 0.3-0.1 0.7-0.2 1-0.3h0.7 0.9 0.5 0.8 1.1c1.3 0 2.6 0.1 3.9 0.1h0.6 0.9c1.5 0 3-0.1 4.5 0h1.5 0.6c0.4 0.1 0.8 0.4 1.2 0.5 0.2 0 0.8 0.1 1 0.3h-0.1-0.2-0.6c-0.2 0-0.4-0.1-0.6-0.1h-0.6-0.3-0.6-0.4-0.6c-0.3 0-1-0.1-1.2 0-0.1 0-0.3-0.1-0.4 0-0.2 0-0.3 0-0.5-0.1h-0.6-0.4-0.5-0.5-1.4-0.5-0.3-0.3c-0.4 0-0.8-0.1-1.2-0.1h-1.4c-0.2 0-0.6-0.1-0.7 0h-1.1-0.4-0.2-1.5-0.2-0.6-0.3c-0.6 0.2-1.3 0.2-2 0.1zm-2.1 0.9c0.1-0.1 0.2-0.1 0.2-0.2 0.7-0.4 1.6-0.2 2.4-0.2h1.4 0.4 0.8 2.9 0.6 0.8 0.3 0.3 0.4c0.5 0 0.9 0.1 1.4 0.1 0.2 0 0.5-0.1 0.7-0.1 0.6 0 1.2 0.1 1.8 0.1 0.3 0 0.6-0.1 0.9-0.1h1.5 0.8 3.3c0.2 0 0.3 0.1 0.5 0.1s0.5 0 0.7-0.1c0.3 0 0.8 0.1 1.1 0 0.4 0 0.7 0.2 1 0.4 0.3 0.1 0.7 0.2 0.9 0.4v0.1h-0.1-0.5-0.6-0.2c-0.2 0-0.9-0.1-1 0h-0.4-0.7c-0.2 0-0.4-0.1-0.6 0h-0.6-0.9c-0.3 0-0.8-0.1-1.1 0h-0.2-0.7-0.3c-0.2 0-0.5-0.1-0.7 0h-0.6-0.4-1-0.4-1.1-0.4-0.9-1.1-0.3-0.9-0.4-0.2-0.3c-1.2 0-2.3-0.1-3.5-0.1h-0.5c-0.1 0-0.3-0.1-0.4 0h-0.7-1.5c-0.2 0-0.8-0.1-0.9 0h-0.7-0.2c-0.3 0-0.5-0.1-0.8-0.1 0-0.1 0.6-0.3 0.7-0.3m-2.7 1.5c0-0.1 0.2-0.1 0.2-0.2 0.1-0.1 0.3-0.2 0.4-0.2 0.1-0.1 0.3-0.2 0.4-0.2 0.4-0.1 1.1-0.1 1.5-0.1h1.3 1.1 0.4c0.7-0.1 1.5 0 2.2 0h1.1c0.5 0 0.9 0.1 1.4 0.1h0.8c0.4 0 0.7-0.1 1.1-0.1 0.8 0 1.6 0.1 2.3 0.1h0.3 0.4 0.6 0.7 0.8c0.5 0 1 0.1 1.6 0.1 0.2 0 0.4-0.1 0.7-0.1h0.5 0.2c0.1 0 0.3 0.1 0.4 0.1h0.6 0.8c0.2 0 0.4-0.1 0.6 0h0.9 0.5 1.8 0.8 1.7 0.8c0.1 0 0.2 0.1 0.3 0.2 0.2 0.2 0.5 0.3 0.7 0.5 0 0.1-0.4 0.1-0.5 0.2h-0.4-0.4-0.5-0.3-1.1-0.4-0.4-0.2-2.7c-0.2 0-0.6-0.1-0.8 0h-0.5c-0.2 0-0.6-0.1-0.8 0h-0.4c-0.2 0-0.5-0.1-0.7 0h-0.5c-0.2 0-0.4-0.1-0.5 0h-0.2-1.2-0.5c-0.2 0-0.7-0.1-0.9 0h-0.3c-0.2 0-0.4-0.1-0.6 0h-0.4-1.8c-0.3 0-0.8-0.1-1.1 0h-0.2c-0.2 0-0.5 0-0.7-0.1h-1.7c-0.2 0-0.3-0.1-0.5-0.1h-1.1-0.3-1.7-0.9c-0.2 0-0.6-0.1-0.8 0h-0.3-0.3-0.8-0.4-0.3c-0.3 0-0.6 0-1-0.1-0.3 0-0.6 0-0.8-0.1v0m-1.7 1.2s0.2-0.1 0.2-0.2c0.3-0.2 0.5-0.3 0.8-0.5 0.2-0.1 0.4-0.1 0.6-0.1s0.5 0 0.7 0.1h1.4 0.7 0.7 0.6c0.3 0 0.6 0.1 1 0.1 0.5 0 1-0.1 1.4 0h0.4 1.1 2.1 1.6 1.1 0.4c0.3 0 0.6 0.1 0.9 0.1 0.4 0 0.8-0.1 1.2-0.1 0.3 0 0.6 0 1 0.1h1 0.4 0.4 0.9 1.5c0.3 0 0.6 0 0.9-0.1h2.1 0.4 2.2c0.3 0 0.7-0.1 1 0 0.4 0 0.7 0.1 1.1 0.1 0.3 0 0.7-0.1 1-0.1 0.2 0 0.4 0 0.6-0.1 0.3 0 0.6 0 0.8 0.1 0.1 0 0.2 0.2 0.3 0.2s0.1 0.1 0.2 0.1c0.2 0.1 0.3 0.3 0.5 0.4l-0.1 0.1h-0.6c-0.2 0-0.4-0.1-0.6 0h-0.2-1.3-1.2-0.4-0.3-0.6-0.7-0.6c-0.2 0-0.3-0.1-0.5 0h-1.5-0.5-0.3-1.1-0.4c-0.4 0-1-0.1-1.3 0h-0.7-1.8c-0.2 0-0.6-0.1-0.8 0h-0.3-0.9-2.5-1.3-0.4-0.4-0.8-0.2-0.8-0.4-1.2c-0.1 0-0.3-0.1-0.4 0h-1.7c-0.1 0-0.3-0.1-0.4 0h-0.3-2.1c-0.3 0-1-0.1-1.2 0h-0.2-1.1c-0.3-0.1-0.7-0.1-1.1-0.2zm-1.7 1.2c0.1 0 0.1-0.1 0.2-0.1 0.2-0.1 0.7-0.6 0.9-0.6h1.2 0.7 0.7 1.2c0.8 0 1.5 0.1 2.2 0.1h0.5 1.2c0.2 0 0.4 0 0.6 0.1h0.7 0.7c0.6 0 1.1-0.1 1.7-0.1h0.8 0.4 0.8c0.4 0 0.9 0.1 1.3 0.1h0.7 0.8 0.4 0.3 0.4 1 0.3c0.2 0 0.4 0 0.6 0.1h0.8 0.5 1.1 0.6 1.1 0.5 0.4 0.7c0.5 0 1 0.1 1.5 0.1 0.9 0 1.7-0.1 2.6-0.1h0.8 0.5 1.3c0.3 0 0.6 0 0.9 0.1 0.2 0 0.4 0 0.5-0.1h0.5c0.3 0 0.6 0 1 0.1 0.1 0 0.8 0.5 0.8 0.7h-0.1-0.6c-0.4 0-0.9-0.1-1.2 0.1h-0.2-0.4c-0.3 0-0.8-0.1-1 0-0.2 0-0.4 0-0.6-0.1h-1.2c-0.2 0-0.6-0.1-0.8 0h-2.4-1.1-0.4-0.9c-0.2 0-0.4-0.1-0.5 0h-0.8-0.3-0.2-1-0.4c-0.2 0-0.9-0.1-1 0-0.2 0-0.7-0.1-0.8 0h-0.2c-0.3 0-0.6-0.1-1-0.1h-0.3c-0.3 0-0.7-0.1-1 0h-0.2c-0.2 0-0.6-0.2-0.8-0.1h-1-0.3c-0.2 0-0.6-0.1-0.8 0h-0.2-1.2-0.4-0.7-0.4-0.3c-0.1 0-0.3 0-0.4 0.1h-0.4c-0.2 0-0.6-0.2-0.8-0.1h-1-0.3-0.3-0.2c-0.5 0-0.9 0-1.3-0.1h-0.3-1.3c-0.2 0-0.6-0.1-0.8 0h-0.4c-0.1 0-0.4-0.1-0.5 0h-0.2-1.2-0.4c-0.8-0.1-1.3-0.1-1.9-0.1zm47 22c0 0.1-0.1 0.1-0.2 0.1h-0.4c-0.2 0-0.5-0.1-0.6 0h-2.4c-0.2 0-0.6-0.1-0.7 0-0.2 0-0.7-0.1-0.8 0-0.2 0-0.4-0.1-0.6 0h-0.9-1.3v0.4h0.2 0.7 0.5 0.8 2.8 1.3 0.7 0.5 0.3c0.1 0 0 0.7 0 0.8h-0.4c-0.2 0-0.7-0.1-0.8 0h-0.5-0.7-1.3-0.3-1.5c-0.2 0-0.5-0.1-0.7 0h-0.7c-0.1 0-0.3-0.1-0.5 0h-0.3v-0.1 0.5h0.1 0.6 0.6 1.1 0.5 0.8 0.3 0.5 0.3 0.3 0.6 0.8c0.2 0 1.1-0.1 1.3 0.1 0.1 0.1 0 0.7 0 0.8 0 0-0.2 0-0.3 0.1h-0.2-1.2-0.4-1.2-0.3-0.3-0.4-0.8c-0.1 0-0.3-0.1-0.5 0h-2-0.2v0.4h0.2 1.4 0.5c0.8 0 1.5 0.1 2.3 0.1h0.9 1.9 0.4c0 0.2 0 0.6-0.1 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.6-0.1-0.7 0h-0.3-0.2c-0.7 0-1.5-0.1-2.2-0.1-0.2 0-0.5-0.1-0.7 0-0.2 0-0.6-0.1-0.7 0h-1.8-0.6v0.4c0.1-0.1 0.5 0 0.7 0h1.6c0.3 0 0.8 0 1.1-0.1 0.4 0 0.7 0 1.1 0.1h1 1c0.3 0 0.7-0.1 1 0 0.2 0 0.1 0.6 0 0.7s-0.2 0.1-0.2 0.1h-0.2-1.5c-0.2 0-0.5-0.1-0.7 0h-0.7-1.7-0.5-0.4c-0.5 0-1 0-1.5-0.1v0.4h0.1 1.1 0.5 0.4 0.6c0.3 0 1 0.1 1.2 0h0.4 0.7 1.4c0.2 0 0.7 0 0.8 0.1 0.1 0 0 0.6 0 0.7 0 0-0.1 0-0.1 0.1-0.2 0-1-0.1-1.1 0h-0.6-0.8-0.4c-0.1 0-0.3 0-0.4 0.1-0.2 0-0.3 0-0.5-0.1h-0.8-0.4c-0.1 0-0.3 0-0.4-0.1h-1.3-0.3v0.4h0.8 0.5 1.6c0.4 0 1 0.1 1.4 0h0.8 0.4 0.4 1.4c0 0.2 0 0.4-0.1 0.5 0 0.1-0.1 0.2-0.1 0.3h-0.7-0.6-0.8-0.6c-0.2 0-0.5-0.1-0.7 0h-0.3c-0.3 0-0.6 0-0.8-0.1-0.8 0-1.6-0.1-2.4-0.1v0.4h0.2 0.3 1 0.9 0.8c0.5 0 1 0.1 1.4 0.1 0.3 0 0.6-0.1 0.9-0.1 0.2 0 1.2-0.1 1.3 0.1 0.1 0.1 0 0.2 0 0.3 0 0.2-0.1 0.4-0.2 0.5-0.5 0-1.1-0.1-1.6 0h-0.3c-0.2 0-1-0.1-1.1 0h-0.7c-0.2 0-0.4-0.1-0.6 0-0.2 0-0.5-0.1-0.7 0-0.6 0-1.1-0.1-1.7-0.1v0.4h1.1c0.3 0 0.7 0.1 1.1 0.1h1.8 0.5 0.3 0.3c0.3 0 1.3 0 1.4 0.1s0 0.2 0 0.3-0.1 0.2-0.2 0.3h-0.4-0.3-0.2c-0.2 0-0.7-0.1-0.8 0h-0.3-1.1-0.4c-0.2 0-0.4-0.1-0.6 0-0.2 0-1.8 0-2.2-0.1v0.5c0.2 0 0.3-0.1 0.5-0.1h2 0.5 1 0.5 0.8 0.3c0.2 0 0.4 0 0.6 0.1 0 0.1-0.2 0.6-0.3 0.7-0.1 0-0.2 0.1-0.3 0.1h-0.8-0.4-0.3-0.2-0.8c-0.1 0-0.3-0.1-0.4 0h-0.2-0.8c-0.2 0-0.5-0.1-0.7 0h-0.3c-0.1 0-0.6 0-0.7-0.1v0.5c0.1-0.1 0.9-0.1 1.1-0.1h0.4 1 0.6 0.5 0.9c0.2 0 0.8-0.1 1.1 0 0.1 0.1-0.1 0.4-0.1 0.4-0.1 0.1-0.1 0.3-0.3 0.3h-0.2c-0.2 0-0.3 0-0.5-0.1h-1-0.3c-0.2 0-0.6-0.1-0.8 0h-0.2-0.5-0.4-1.3v0.5c0.2 0 0.3-0.1 0.4-0.1h0.9 0.4 1.8 0.8 0.5c0.1 0 0.2 0 0.3 0.1s-0.1 0.6-0.2 0.6l-0.2 0.2h-0.6c-0.2 0-0.6-0.1-0.8 0h-0.7-0.6c-0.2 0-0.4-0.1-0.6 0h-1.4v0.4h0.4 0.6c0.2 0 0.4 0 0.6-0.1 0.3 0 0.6 0 0.9 0.1h0.7c0.3 0 0.6 0.1 0.9 0 0.2 0 0.4 0.1 0.6 0.1 0 0.2-0.3 0.7-0.5 0.8h-0.6c-0.3 0-1-0.1-1.2 0h-1.5c-0.2 0-0.5 0-0.7-0.1v0.4h0.7 0.4c0.4 0 0.7 0.1 1.1 0.1h1.1c0.2 0 0.4 0 0.5 0.1 0 0-0.4 0.8-0.7 0.8s-0.9 0-1.2-0.1c-0.5 0-0.9 0-1.4-0.1h-0.7v0.4c0.8 0 1.7 0 2.4 0.1 0.2 0 0.4 0 0.7 0.1v0.1c-0.1 0-0.1 0.1-0.1 0.1-0.5 0.3-0.7 0.7-0.9 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.6-0.1-0.7-0.1-0.2 0-0.6-0.1-0.8 0h-0.8v0.4h1.2 0.5 0.7c0 0.2-0.4 0.7-0.6 0.7h-0.4-1.4v0.4h0.3c0.2 0 1.1 0 1.1 0.1 0.1 0.2-0.4 0.6-0.5 0.7h-0.9c0 0.2-0.1 0.3-0.1 0.4h0.7c0 0.2-0.8 0.9-1 1h-0.1c-0.4 0.6-0.9 1.1-1.7 1.7-0.6 0.5-1.3 0.9-2 1.2h0.1c0.4 0-0.5 0.6-0.6 0.6h-0.9-0.1c-0.6 0.2-1.3 0.4-2 0.5h0.5 0.6 0.3 0.4 0.4v0.1c-0.2 0.2-0.4 0.3-0.6 0.4-0.1 0.1-0.2 0.2-0.4 0.3-0.1 0-0.2 0.1-0.4 0.1h-0.3-2c-0.2 0-0.7-0.1-0.9 0-0.3 0-0.6-0.1-0.8 0h-0.6c-0.4 0-0.7-0.1-1.1-0.1h-0.2-1.7c-0.2 0-0.5 0.1-0.7 0.1-0.7 0.1-1.2 0.2-1.7 0.4h1.7 1.2 2.9 1c0.2 0 0.3 0 0.5-0.1h2.2c-0.1 0-0.3 0.2-0.4 0.2-0.3 0.1-0.6 0.3-0.9 0.4-0.2 0.1-0.4 0.2-0.6 0.2-0.4 0.1-0.8 0-1.2 0h-0.4-0.5-0.6c-0.2 0-0.5-0.1-0.7 0h-1.2-0.6-0.4-0.7c-0.2 0-0.8-0.1-1 0-0.5 0-1.3-0.1-1.9-0.1-0.2 0.2-0.4 0.3-0.5 0.5h0.8c0.7-0.1 1.5 0 2.3 0h1.2 0.7 0.4c0.2 0.1 0.7 0 0.9 0 0.4 0 0.8 0.1 1.1 0.1 0.2 0 0.4 0 0.5-0.1h0.7-0.1c-0.3 0.1-0.5 0.2-0.8 0.3-0.1 0.1-0.3 0.1-0.4 0.2-0.2 0.1-0.4 0.1-0.6 0.2h-0.8-0.5-0.4-0.4-0.2-0.7c-0.1 0-0.4-0.1-0.5 0h-0.4-0.6-0.3-0.4-0.2c-0.2 0-0.8-0.1-1 0h-0.4-0.8c-0.1 0.1-0.1 0.3-0.2 0.4 0.6-0.1 1.4 0 1.9 0s1 0 1.5-0.1c0.2 0 0.4 0 0.6-0.1h1.1 1.1c-0.3 0-0.6 0.2-0.9 0.2-0.2 0-0.4 0-0.6 0.1-0.3 0-0.6 0.1-0.9 0.2h-0.2c-0.2 0-0.3 0-0.5 0.1-0.1 0-0.5 0.1-0.6 0.1h-0.5-0.7-0.2-1.2c-0.6 0-1.2 0.1-2 0h-0.2c-0.3-0.1-0.7-0.1-1-0.2h-0.5c-0.2 0-0.4-0.1-0.7-0.1h-0.6c-1.1-0.2-2.3-0.3-3.3-0.6-0.2 0-0.6-0.1-0.7-0.2 0.5 0.1 1.1 0.1 1.6 0.1s0.9 0.1 1.4 0.1h0.4 0.4 0.6 0.4c0.2 0 0.3 0.1 0.5 0.1h1.4c-0.1-0.2-0.2-0.3-0.3-0.5h-0.7c-0.2 0-0.4-0.1-0.6 0h-1.3c-0.2 0-0.3-0.1-0.5 0-0.4 0-0.8-0.1-1.3-0.1h-1.8c-0.2 0-0.4-0.1-0.6-0.1h-0.4c-0.2 0-0.4-0.1-0.5-0.1-0.1-0.1-0.2-0.1-0.4-0.1s-0.4-0.1-0.6-0.1-0.4-0.1-0.6-0.2c-0.1 0-0.2-0.1-0.3-0.1h0.3 1.2c0.3 0 0.6 0 0.9-0.1h1.2c0.2 0 0.3 0 0.5 0.1 0.3 0 0.6-0.1 0.9-0.1 0.4 0 0.9 0.1 1.3 0.1h1.5 0.9c-0.1-0.1-0.3-0.2-0.5-0.4h-0.4-0.3c-0.3 0-0.6 0-0.9-0.1h-0.3c-0.1 0-0.3-0.1-0.5 0h-1-0.4-1c-0.2 0-0.5-0.1-0.7-0.1s-0.4 0-0.5 0.1h-0.7c-0.7 0-1.5 0-2.1-0.1-0.3 0-0.6 0-0.8-0.1-0.4-0.1-0.8-0.5-1.2-0.7v-0.1h1.3c0.2 0 0.5 0.1 0.7 0.1h0.9 0.7 0.4 0.7 2.1 1.6 0.2 0.4c-0.4-0.2-0.9-0.3-1.4-0.4h-0.2-1.1-0.4-0.3-1.1-0.7-0.6-1.4-0.5-0.7c-0.2 0-0.3-0.1-0.5-0.1-0.3 0-0.7 0-1-0.1s-0.5-0.3-0.7-0.4c-0.1-0.1-0.3-0.1-0.3-0.3 0.6 0 1.3 0 1.9 0.1h1.3 0.6c-1.1-0.1-2-0.3-2.8-0.4h-0.4-0.5-0.2c-0.4 0-0.7-0.1-0.9-0.3l-0.2-0.2h0.3c-1.2-0.4-2.1-1-2.9-1.7-0.5-0.5-0.9-1.1-1.2-1.8h-0.2c-0.2 0-0.7-0.6-0.8-0.8 0 0 0.2 0 0.2-0.1h0.5c0-0.1 0-0.2-0.1-0.3h-1c-0.1 0-0.7-0.6-0.7-0.7v-0.1h0.5 1v-0.4h-0.2-0.3c-0.1 0-0.5-0.1-0.6 0h-0.2-0.7c-0.2-0.1-0.6-0.6-0.6-0.8h0.2 0.5c0.2 0 0.5 0 0.7-0.1h1v-0.4h-0.3-0.4-0.4-0.5-0.3c-0.1 0-0.2 0-0.3 0.1-0.2 0-0.4 0-0.5-0.1-0.1 0-0.5-0.6-0.4-0.7s0.7-0.1 0.8-0.1h2.3v-0.4h-0.9-0.3c-0.2 0-0.5-0.1-0.6 0-0.2 0-0.7-0.1-0.9 0h-0.4c-0.1 0-0.2 0-0.3-0.1s-0.1-0.2-0.2-0.3c-0.1-0.2-0.3-0.4-0.3-0.7 0.2 0 0.4 0.1 0.7 0.1h0.6 1 0.5c0.3 0 0.7 0.1 1 0h0.3v-0.4h-0.8-0.3-1.2-0.4-0.6-0.3-0.4c-0.1 0-0.2 0-0.3-0.1-0.2-0.1-0.4-0.6-0.5-0.8 0 0 0.1 0 0.1-0.1 0.4 0 0.7 0.1 1.1 0.1h0.3 0.3 0.6c0.2 0 0.4-0.1 0.7 0 0.2 0 0.3 0.1 0.5 0.1s0.7-0.1 1 0v-0.4h-0.2-3-0.4-0.6-0.3c-0.1 0-0.3 0-0.4-0.1-0.2-0.1-0.3-0.5-0.3-0.7h0.6 0.5 0.9 0.4 0.4c0.3 0 0.7 0 1 0.1h0.5c0.3 0 0.6 0.1 1 0.1v-0.5h-0.1-1-1c-0.2 0-0.3 0-0.5-0.1h-0.9c-0.2 0-0.5-0.1-0.6 0h-1.2c0-0.1-0.1-0.1-0.1-0.2-0.1-0.1-0.2-0.4-0.1-0.5l0.1-0.1h0.9 0.6 0.4 0.3 0.8 1.3c0.3 0 0.8 0.1 1.1 0.1v-0.4c-0.5 0-1.7-0.1-1.9 0h-0.9-1.1c-0.2 0-0.4 0-0.6-0.1h-0.4c-0.1 0-0.3-0.1-0.4 0h-0.2c-0.1 0-0.2 0-0.3-0.1s-0.3-0.6-0.2-0.7c0.3-0.2 0.9 0 1.3-0.1 0.4 0 0.7 0 1.1 0.1h0.8c0.1 0 0.3 0 0.4 0.1h1.9 0.7v-0.5h-0.3-1-0.5-1.2c-0.1 0-0.4-0.1-0.5 0h-0.8c-0.2 0-0.8-0.1-1 0-0.2 0-0.4 0-0.5-0.1-0.2 0-0.6 0-0.8-0.1-0.1-0.1-0.1-0.2-0.1-0.4 0-0.1-0.1-0.2-0.1-0.2 0.1-0.1 0.7-0.1 0.9-0.1h0.7 1.3 0.3 0.8 0.6 0.5 1.1 0.5v-0.4h-0.5-0.3-0.5-1.1-0.6-0.6c-0.2 0-0.6-0.1-0.8 0-0.3 0-0.5 0-0.8-0.1-0.3 0-1.3 0.1-1.5-0.1-0.1-0.1-0.2-0.6-0.2-0.7h0.5c0.4 0 0.8 0 1.2 0.1 0.1 0 0.2 0 0.3 0.1h1c0.3 0 0.5-0.1 0.8-0.1h0.6 0.5 1c0.2 0 0.9-0.1 1.2 0v-0.4h-0.3-0.8-0.6-0.2c-0.3 0-0.8-0.1-1 0h-0.5c-0.3 0-0.8-0.1-1 0-0.3 0-0.7-0.1-0.9 0-0.2 0-0.8-0.1-1 0-0.2 0-0.8 0-0.9-0.1s-0.1-0.2-0.1-0.3-0.1-0.2 0-0.3h0.1 0.6 1.5 0.6c1.1 0.1 2.2 0 3.4 0h1.1v-0.4h-0.5-1c-0.2 0-0.4 0-0.5 0.1h-0.3c-0.3 0-1.1-0.1-1.3 0-0.2 0-0.4-0.1-0.7-0.1-0.8 0-1.7 0-2.5-0.1-0.1 0-0.4 0-0.5-0.1s-0.1-0.5-0.1-0.7h1.6c0.3 0 0.7 0.1 0.9 0 0.4 0 0.9 0.1 1.3 0.1h0.6c0.3 0 0.5 0 0.8 0.1 0.1 0 0.2-0.1 0.4-0.1h0.7 0.2 0.8v-0.4h-0.4-0.5-0.9-0.5c-0.1 0-0.7-0.1-0.8 0h-0.5c-0.1 0-0.3-0.1-0.4 0-0.5 0-0.9-0.1-1.4-0.1h-0.4-0.7c-0.2 0-0.8 0-0.9-0.2-0.1-0.1-0.1-0.2-0.1-0.3s0-0.3 0.1-0.3c0.2-0.1 0.5 0 0.8 0h2.1 0.6 0.7 0.3 1 0.4 1.2 0.5v-0.4h-1c-0.2 0-0.7-0.1-0.9 0-0.2 0-0.7-0.1-0.8 0h-0.5-1.1-0.6c-0.2 0-0.7-0.1-0.9 0-0.3 0-0.6-0.1-0.9-0.1h-0.2-0.3c-0.6 0-0.6-0.1-0.6-0.7h0.1 0.4c0.3 0 0.9 0.1 1.2 0h0.7 0.7 0.5 0.3 1.6 0.4 0.5 0.4 1v-0.4h-0.5-0.7-0.4-0.6c-0.2 0-0.4-0.1-0.5 0h-0.7-3.2-0.6c-0.1 0-0.2 0-0.3-0.1-0.1 0-0.2 0-0.3-0.1s-0.1-0.6-0.1-0.8c0.2 0 0.4 0 0.5-0.1 0.3 0 0.8 0.1 1.1 0h0.4 0.3 0.7 0.5 0.5 0.4 3.5v-0.4h-0.6-1.2-0.5c-0.2 0-0.4-0.1-0.5 0h-1.7-0.3-1.6c-0.2 0-0.4-0.1-0.5 0h-0.2c-0.2 0-0.5 0-0.7-0.1-0.1-0.1-0.1-0.6 0-0.7s0.1-0.1 0.2-0.1c0.8 0 1.6 0 2.4 0.1h0.6 2 0.4 0.3 1.4 0.5v-0.4c-0.2 0-0.4-0.1-0.6 0h-2.6c-0.2 0-0.7-0.1-0.8 0h-3.1c-0.2 0-0.5 0-0.8-0.1 0-0.1 0-0.2-0.1-0.3 0-0.2 0-0.4 0.1-0.5 1.1 0 2.2 0.1 3.3 0.1h0.4c0.3 0 0.6 0.1 1 0.1h0.4 0.9c0.2 0 1.5 0 2 0.1v-0.5h-0.3-0.5-0.4-1.2-0.4-1.1-1.6c-0.2 0-0.6-0.1-0.7 0h-0.6c-0.4 0-0.7-0.1-1.1-0.1 0-0.2 0-0.7 0.1-0.7h0.4 0.3 0.4 1 0.8 1 1.8 2v-0.4h-0.2-0.4c-0.1 0-0.3-0.1-0.4 0-0.2 0-0.5-0.1-0.7 0-0.4 0-0.7 0-1-0.1h-0.4-0.5c-0.2 0-0.5-0.1-0.6 0h-0.8-0.4-0.9c-0.1 0-0.3-0.1-0.4 0h-0.9v-0.1c0-0.2 0-0.7 0.2-0.7h1.2 0.6 1.5 0.8 0.3c0.2 0 0.4 0 0.6 0.1h2.4v-0.4h-0.6-2.3c-0.3 0-0.9-0.1-1.1 0-0.1 0-0.3-0.1-0.4 0h-0.2-1c-0.4 0-0.7-0.1-1.1-0.1h-0.3c-0.2 0-0.5 0-0.7-0.1-0.1 0 0-0.1 0-0.1 0.1-0.5 0.1-0.6 0.7-0.6h0.4 0.5c0.3 0 0.7 0 1.1 0.1h0.5c1.5 0 3.1 0 4.6 0.1v-0.4h-0.3-1.2-0.6-0.5c-0.2 0-0.5-0.1-0.7 0-0.4 0-0.9 0-1.3-0.1h-0.4c-0.2 0-0.7-0.1-0.8 0h-1.6v-0.1c0-0.2 0-0.6 0.2-0.6 0.2-0.1 0.5-0.1 0.7-0.1h1 0.3c0.8 0.1 1.6 0.1 2.4 0.1h0.7 1 0.5 0.8v-0.4h-0.3-0.5-1.4c-0.1 0-0.4-0.1-0.5 0h-2.9-1.2c-0.2 0-0.3 0-0.4-0.1 0-0.1 0.1-0.5 0.2-0.6 0.1 0 0.1-0.1 0.2-0.1 0.6 0 1.2 0 1.8 0.1h0.7c0.1 0 0.3-0.1 0.4 0 0.8 0 1.6 0.1 2.4 0.1h0.7 0.9v-0.4h-0.6-0.4-1.5c-0.2 0-0.5-0.1-0.6 0-0.6 0-1.2 0-1.8-0.1-0.2 0-0.6-0.1-0.7 0h-0.2c-0.4 0-0.7-0.1-1.1-0.1 0-0.2 0.1-0.6 0.3-0.7 0.1-0.1 0.2 0 0.2-0.1 0.1 0 0.2 0 0.4 0.1h0.4 0.6 0.7c0.5 0 1 0.1 1.5 0.1h1.8 1.1v-0.4c-0.3 0-0.7 0-0.9 0.1h-0.5-0.5-0.3-0.6-0.3-1.9c-0.2 0-0.6-0.1-0.8 0-0.2 0-0.8 0-0.9-0.1s0.1-0.6 0.1-0.6c0.1-0.1 0.2-0.1 0.3-0.1 0.3 0 0.6 0.1 1 0.1h1 0.3 0.6 0.7 0.9 1.6v-0.4h-0.5c-0.2 0-0.7-0.1-0.9 0-0.1 0-0.3-0.1-0.4 0h-0.3c-0.4 0-0.7-0.1-1.1-0.1h-0.4-0.6-0.3-0.3c-0.3 0-1 0.1-1.2-0.1 0-0.2 0.2-0.6 0.3-0.7 0.5 0 1 0.1 1.5 0.1h1.4c0.1 0 0.3 0 0.4 0.1h0.6 0.4 1.1 0.5v-0.4h-0.3-1.3-1.1c-0.2 0-0.6-0.1-0.8 0-0.1 0-0.2 0-0.3 0.1-0.2 0-0.5-0.1-0.7-0.1h-1.1c0-0.2 0.1-0.3 0.2-0.5 0-0.1 0-0.2 0.1-0.3 0-0.1 0.1-0.1 0.2-0.1h1 0.6c0.5 0 1 0.1 1.4 0.1h0.9c0.5 0 1 0 1.4 0.1v-0.4c-0.2 0.1-1.1 0.1-1.3 0-0.2 0-0.5-0.1-0.6 0h-0.6-0.4-1.6c-0.2 0-0.4-0.1-0.6-0.1 0-0.3 0.2-0.6 0.3-0.8 0.2 0 0.4 0.1 0.6 0h1.5 0.4 1.7c0.3 0 0.5 0.1 0.8 0.1v-0.4h-0.2c-0.2 0-0.5-0.1-0.7 0h-1.2c-0.2 0-0.6-0.1-0.7 0h-0.2c-0.3 0-0.7 0-1-0.1-0.2 0-0.4 0-0.6-0.1v-0.1c0-0.1 0.2-0.5 0.3-0.6 0 0 0.1-0.1 0.2-0.1h1.3 1.7 1.2v-0.4h-0.3-0.5c-0.2 0-0.6-0.1-0.8 0-0.2 0-0.5-0.1-0.7 0-0.3 0-0.7-0.1-0.9 0h-0.4-0.4c0-0.1 0.3-0.7 0.4-0.8 0.2-0.1 0.6 0 0.8 0h1.2 0.7 0.3 0.5 0.1v-0.4h-0.1c-0.2 0-0.4 0-0.5 0.1h-0.4c-0.2 0-0.4-0.1-0.6 0h-0.2-0.2-0.4-0.9c-0.1 0 0-0.2 0-0.2 0.1-0.1 0.3-0.5 0.4-0.6s0.3-0.1 0.4-0.1h0.6 1 0.4 0.4v-0.4h-0.2-0.8-0.3c-0.2 0-0.6-0.1-0.8 0h-0.3c0-0.2 0.1-0.3 0.2-0.4s0.1-0.3 0.3-0.3h0.3 1 0.5 0.3v-0.4c-0.2 0-0.5-0.1-0.7 0h-0.2c-0.2 0-0.5 0-0.6-0.1 0-0.2 0.3-0.3 0.4-0.4s0.2-0.3 0.3-0.4h0.9v-0.3h-0.5v-0.1s0.5-0.6 0.6-0.7c0.2-0.4 1.5-1.4 1.7-1.6 0.2-0.1 0.4-0.3 0.6-0.4 0.3-0.1 0.7 0 1.1 0h1.4 1.3 0.8 2.9 0.3 0.6c0.6 0 1.2-0.1 1.8 0 0.7 0 1.4 0.1 2.1 0.1 0.4 0 0.8-0.1 1.2 0 0.3 0 0.5 0.1 0.8 0.1h2.1 1.4 0.4 0.7 0.4 0.3 0.5c0.2 0 0.4 0.1 0.6 0.1h0.6 2.3 0.8c0.5 0 0.9-0.1 1.4-0.1s0.9 0.1 1.4 0h0.7 0.5 2.1 1.9 0.4c0.5 0 1 0.1 1.6 0 0.2 0 0.4-0.1 0.7-0.1 0.2 0 0.4 0 0.6-0.1h1.3c0.2 0 0.5-0.1 0.7 0 0.1 0 0.2 0.1 0.2 0.2 0.4 0.3 1.3 1.1 2 1.8v0.1h0.1c0.2 0.1 0.5 0.4 0.4 0.5 0 0.1-0.2 0.1-0.3 0.1h-0.3v0.4c0.3 0 0.6 0 0.9 0.1 0.2 0.1 0.6 0.6 0.6 0.8h-0.2c-0.1 0-1 0-1.3-0.1v0.4h1.7 0.3c0.1 0.1 0.2 0.3 0.3 0.4 0 0.1 0.2 0.2 0.1 0.3 0 0.1-0.1 0.1-0.1 0.1h-1.3-0.4-0.6v1.7h1.8c0.3 0 0.7 0 0.9 0.1 0.1 0.1 0.4 0.6 0.5 0.8 0 0-0.1 0-0.1 0.1-0.2 0-0.7-0.1-0.8 0h-0.5c-0.2 0-0.5-0.1-0.7 0h-0.2c-0.3 0-0.6 0-0.9-0.1v0.4c0.8 0 1.8 0.1 2.6 0.1 0.2 0 0.9-0.1 1 0s0.1 0.2 0.2 0.3c0 0.1 0.1 0.1 0.1 0.2s0.1 0.2 0.1 0.3c-0.1 0-0.1 0-0.2 0.1-0.3 0-0.8-0.1-1-0.1h-0.2-0.5-1.3-0.5-0.4v0.4h0.4 0.8 0.5 1.9 0.7c0.2 0.1 0.2 0.3 0.3 0.4s0.1 0.2 0 0.3h-0.3c-0.2 0-0.5-0.1-0.6 0h-0.3c-0.2 0-0.6-0.1-0.7 0h-0.8-0.3-0.7-0.3-0.4v0.4c0.3-0.1 0.7-0.1 0.9-0.1h0.1c0.4 0.1 0.8 0 1.1 0h2.1c0.2 0 0.4-0.1 0.5 0s0.3 0.5 0.3 0.7c0.1 0-0.2 0.1-0.2 0.1h-0.7c-0.2 0-0.5-0.1-0.7 0h-0.9-0.2c-0.2 0-0.8-0.1-0.9 0h-1.4v0.4h0.5 1c0.3 0 0.5 0.1 0.8 0.1h0.7 1.4 0.5 0.4c0.1 0 0.3 0.7 0.3 0.8-0.2 0.1-0.7 0-0.9 0h-0.4-0.2-0.5c-0.2 0-0.6-0.1-0.8-0.1-0.1 0-0.2 0-0.3 0.1h-1-0.4c-0.2 0-0.4-0.1-0.6 0h-0.6v0.3h0.7 0.4 0.5 1.9c0.4 0 1 0.1 1.4 0 0.2 0.1 0.9-0.1 1 0.1 0.1 0.1 0.1 0.3 0.2 0.5s0.1 0.2-0.1 0.3h-1.2c-0.2 0-0.5-0.1-0.6 0h-0.7-0.3-0.5-0.6-0.3c-0.3 0-0.7-0.1-0.9 0h-0.7v0.4c0.3-0.1 1 0 1.2 0h1.2 0.8 0.6 0.5c0.4 0 0.8 0 1.2-0.1h0.3c0.2 0 0.4 0 0.5 0.1s0.3 0.6 0.1 0.7-0.5 0-0.7 0h-1.6-0.6-0.4c-0.2 0-0.8-0.1-1 0h-0.5c-0.2 0-0.4-0.1-0.6 0-0.4 0-0.7-0.1-1.1-0.1v0.4h0.5 0.9 1.7 0.3 0.3 0.9 0.4 0.5 0.6c0.1 0 0.3 0 0.4 0.1 0.2 0.1 0.2 0.5 0.3 0.7h-0.3-0.1-0.3-1.2-0.4-0.3-1.1c-0.2 0-0.4-0.1-0.6 0h-0.7-1-1v0.4h0.2 0.6 1.1 0.8 0.6 0.8 0.8 0.6c0.2 0 0.6 0.1 0.8 0 0.2 0 0.4 0 0.6 0.1 0.1 0.1 0.2 0.5 0.2 0.7 0 0-0.1 0-0.1 0.1h-0.5-0.6-2-0.8c-0.2 0-0.8-0.1-1 0h-1.5-0.5-0.3v0.4h0.4c0.5-0.1 0.9 0 1.4 0h2c0.4 0 0.9 0.1 1.2 0 0.3 0 2.1 0 2.3 0.1 0.1 0.2 0.1 0.5 0.1 0.7 0 0-0.1 0-0.2 0.1h-1.3c-0.1 0-0.3-0.1-0.4 0h-0.5c-0.2 0-0.7-0.1-0.9 0h-0.6-2.2c-0.2 0-0.4-0.1-0.5 0-0.1 0-0.7 0-0.9-0.1v0.4h0.6 0.5 0.6 0.5 1.8 0.4c0.5 0 1 0.1 1.5 0h0.5c0.2 0 1 0 1.1 0.1s0.2 0.5 0.2 0.7h-0.1-0.6c-0.2 0-0.5-0.1-0.7 0h-0.6-0.3c-0.4 0-0.7-0.1-1-0.1h-1.2-0.3-0.4-0.8c-0.1 0-0.3-0.1-0.4 0h-1.2v0.5c-0.8-0.2-0.6-0.2-0.4-0.2 0.3 0 0.5 0.1 0.8 0.1h0.8c0.3 0 0.6 0 0.9-0.1h3.3c0.2 0 1.3 0 1.4 0.1s0 0.2 0 0.3 0.1 0.3 0 0.4c-0.1 0.2-0.8 0-1 0.1h-0.3-0.9c-0.2 0-0.5-0.1-0.6 0-0.2 0-0.8-0.1-0.9 0-0.2 0-0.5-0.1-0.7 0h-1.4-0.4-0.5-0.4-0.4v0.4c0.3-0.1 0.8 0 1.1 0h0.6 1.2 0.7 1.3 2.2c0.3 0 0.5 0 0.8 0.1 0 0.2 0.2 0.6 0 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.4 0-0.6 0.1h-0.9-0.3-0.4c-0.3 0-0.7-0.1-1 0-0.3 0-0.6-0.1-0.9 0h-0.7c-0.2 0-0.6-0.1-0.7 0h-0.7-0.4-1v0.4h0.1c0.5 0 1-0.1 1.6-0.1h1.1c0.2 0 0.3 0.1 0.5 0h0.4 1.8 1.3 0.4c0.1 0 0.6 0 0.7 0.1v0.3c-0.3-0.1-0.3 0-0.4 0.1"/><path class="st2" d="m57.9 23.8v-0.8-0.8-0.4-1.2-1.8c0-0.2 0-0.4-0.1-0.6h-0.4-0.4-0.6c-0.4 0-0.9-0.1-1.3 0h-0.8-0.4-0.4-0.4c-0.2 0-0.3-0.1-0.5-0.1h-0.7-0.5-0.7c-0.3 0-0.7 0-1-0.1h-0.6c-0.2 0-0.3-0.1-0.5-0.1h-1.4-0.3-1.5-0.7-3.3-0.6-1.2-0.6c-0.3 0-0.5 0-0.8-0.1h-0.7-0.8c-0.4 0-0.7 0.1-1.1 0.1h-1.2-1.9-0.6-1.4-0.8c-0.2 0-0.4-0.1-0.7-0.1h-0.8-0.6-1.9-1.5-0.9-1.4c-0.5 0-1 0.1-1.5 0-0.4-0.1-0.9 0-1.3 0h-0.1c-0.1 0.2 0 0.5 0 0.7v0.8 1.2 1 2.8 0.5 0.8 1.1 3.3c0 0.2 0 0.5-0.1 0.7v0.8 0.4 1.9 0.8c0 0.3-0.1 0.6-0.1 0.9v0.7 0.6 1.1 0.5 0.6 0.7 0.9c0 0.4-0.1 0.8-0.1 1.2v0.4 0.8 0.7c0 1.8-0.1 3.5-0.1 5.2v1.2 1.9 0.4c0 0.6-0.1 1.3-0.1 1.9v0.5c0 0.9 0 1.7 0.2 2.5 0.1 0.2 0.1 0.3 0.2 0.5 0.1 0.3 0.2 0.7 0.4 1 0.3 0.4 0.6 0.8 1 1.1 0.1 0 0.1 0.1 0.2 0.1 0.1 0.1 0.2 0.1 0.3 0.2 0.2 0.1 0.3 0.1 0.5 0.2s0.5 0.2 0.7 0.3 0.5 0.1 0.7 0.2c0.4 0.1 0.9 0.3 1.4 0.4s0.9 0.1 1.4 0.2c1.4 0.2 2.8 0.4 4.2 0.5h0.9c0.4 0 0.8 0.1 1.2 0.1l1.2 0.3c0.2 0 0.4 0.1 0.6 0.1s0.4 0.1 0.6 0.1c0.2 0.1 0.4 0.2 0.5 0.2 0.2 0.1 0.3 0.1 0.5 0.2 0.8 0.3 1.5 0.9 2.2 1.5 0.2 0.3 0.4 0.5 0.6 0.8 0.1 0.2 0.2 0.3 0.3 0.5 0 0 0 0.1 0.1 0.1 0.3-0.8 0.7-1.5 1.3-2.1 0.2-0.2 0.5-0.3 0.8-0.5s0.6-0.5 1-0.5c0.2-0.1 0.4-0.1 0.5-0.2 0.2-0.1 0.5-0.2 0.8-0.2 0.1 0 0.2-0.1 0.2-0.1 0.1-0.1 0.3-0.1 0.4-0.1h0.2c0.1 0 0.1-0.1 0.2 0 0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.2-0.1 0.3-0.1 0.1-0.1 0.2-0.1 0.3-0.1h0.2c0.1-0.1 0.2-0.1 0.3-0.1h0.2 0.2 0.2 0.2c0.1-0.1 0.4 0 0.5 0h0.2 0.3c0.2-0.1 0.4 0 0.6 0h0.2c0.2-0.1 0.4-0.1 0.6-0.1 0.1 0 0.2-0.1 0.3-0.1s0.2-0.1 0.3-0.1h0.2c0.1-0.1 0.3 0 0.4 0s0.2-0.1 0.3-0.1c0.1-0.1 0.3 0 0.5 0 0.1-0.1 0.5-0.2 0.7-0.2 0.1 0 0.2-0.1 0.3-0.1h0.2c0.2-0.1 0.3-0.1 0.6-0.1 0.1-0.1 0.3-0.1 0.4-0.1 0.1-0.1 0.4-0.2 0.5-0.2s0.2-0.1 0.2-0.1c0.3-0.1 0.6-0.2 0.9-0.3s0.7-0.3 1-0.4c0.2-0.1 0.3-0.1 0.5-0.2 0.3-0.1 0.5-0.3 0.7-0.5 0.1-0.1 0.3-0.2 0.4-0.3 0.2-0.2 0.4-0.3 0.6-0.6s0.4-0.8 0.5-1.1c0-0.2 0.1-0.4 0.1-0.6s0.1-0.4 0.1-0.5v-0.9-1-0.3-0.5-1.7-1.4-0.6-0.3-0.8-1.6-2.2c0-0.2 0-0.4 0.1-0.6v-1.1c0-0.2 0-0.3 0.1-0.5 0-0.3-0.1-0.6-0.1-0.9 0-0.8 0.1-1.5 0.1-2.3 0-0.3-0.1-0.6-0.1-0.8v-0.6-0.3-0.5-0.3-0.8c0-0.5 0-1.1 0.1-1.6v-0.4-0.3-0.6-0.8-0.7-0.3c0-0.5-0.1-1-0.1-1.5v-0.8-0.4c0-0.3 0-0.7-0.1-1v-0.6-0.8-0.7-0.7-0.4c-0.2 0-0.2-0.3-0.2-0.7m-0.7 9.7v0.2 0.4 0.4 2.2 0.3 0.4 0.3 0.3 0.3 0.6c0 0.3 0.1 0.6 0.1 0.9v0.4 0.3 0.4 0.2 0.5c0 1.7 0 3.4-0.1 5.1v1.8 0.5 2.1c0 0.2-0.1 0.4-0.1 0.6s0.1 0.3 0.1 0.5 0 0.3-0.1 0.5v0.2 0.2 0.3 0.7 0.3 0.6c0 0.6 0 1.2-0.1 1.8v0.4c0 0.3-0.2 0.6-0.3 0.9-0.3 0.5-0.9 0.9-1.4 1.2-0.3 0.2-0.5 0.4-0.8 0.5-0.3 0.2-0.7 0.3-1.1 0.4s-0.9 0.3-1.3 0.4c-0.2 0-0.3 0.1-0.5 0.1-0.5 0.1-0.9 0.2-1.4 0.3h-0.3c-0.3 0.1-0.6 0.1-1 0.2-0.4 0-0.7 0.1-1.1 0.1s-0.8 0.1-1.2 0.1h-1c-0.3 0-0.5 0.1-0.8 0.1h-0.5c-0.6 0.1-1.2 0.3-1.9 0.4-0.3 0.1-0.7 0.1-1 0.2-0.2 0.1-0.3 0.1-0.5 0.2-0.1 0-0.3 0.1-0.4 0.1-0.9 0.5-1.7 1.1-2.3 1.9-0.1 0.1-0.1 0.2-0.2 0.3 0 0-0.2 0.1-0.2 0.2h-0.1c-0.1-0.1-0.2-0.2-0.2-0.3-0.3-0.3-0.5-0.6-0.8-0.8-0.2-0.2-0.5-0.3-0.8-0.5-0.1-0.1-0.3-0.2-0.4-0.3-0.2-0.1-0.5-0.2-0.7-0.4-0.3-0.1-0.7-0.2-1-0.4-0.2-0.1-0.4-0.1-0.7-0.2-0.1 0-0.2-0.1-0.3-0.1-0.4-0.1-0.7-0.1-1-0.2-0.1 0-0.2-0.1-0.4-0.1h-0.4c-0.3 0-0.5-0.1-0.8-0.1h-0.8c-0.1 0-0.3-0.1-0.4-0.1h-1c-0.7-0.1-1.4-0.2-2-0.3-0.3 0-0.6 0-1-0.1-0.3 0-0.7-0.1-1-0.2-0.4-0.1-0.8-0.1-1.2-0.2-0.5-0.1-1-0.4-1.5-0.6-0.7-0.3-1.5-0.8-1.9-1.5-0.6-1-0.6-2.4-0.6-3.7 0-0.2-0.1-0.3 0-0.5 0-0.1 0-0.3 0.1-0.4v-0.4-1-0.8-0.3-0.3-0.7c0-0.5 0.1-1 0.1-1.5 0-1.2 0-2.3 0.1-3.4v-0.5-1c0-0.3 0.1-0.6 0.1-0.9v-3.8c0-0.3 0-0.6 0.1-0.9v-0.7-2.1-1c0-0.2 0-0.5 0.1-0.7v-1.4-3.2c0-0.1 0-0.3 0.1-0.4v-0.2-0.7-1.9-1.1c0-0.2 0-0.3 0.1-0.5v-0.5c0-0.2 0.1-0.3 0.1-0.5v-2-0.7-0.5-0.5c0-0.2-0.1-0.9 0.1-1.1 0.1-0.1 0.3 0 0.5 0 0.2-0.1 0.7 0 1 0 0.2-0.1 0.4 0 0.6 0h2c0.1-0.1 0.4 0 0.6 0 0.2-0.1 0.4 0 0.6 0h0.3c0.2-0.1 0.4 0 0.6 0 0.5 0 1 0.1 1.5 0.1 0.2-0.1 0.6 0 0.9 0 0.2-0.1 0.7 0 0.9 0h1.1c0.1-0.1 0.3 0 0.4 0h0.9c0.2-0.1 0.4 0 0.6 0h0.3c0.3 0 0.6 0.1 0.9 0.1 0.1-0.1 0.3 0 0.5 0h0.4 0.5c0.2-0.1 0.8 0 1.1 0h0.6 0.3 0.6 2.3 0.3 0.2c0.3-0.1 0.8 0.1 1.1 0.1h0.2 0.2c0.2-0.1 0.5 0 0.7 0h1.6c0.2 0 0.4 0.1 0.6 0.1h0.3c0.1-0.1 0.3 0 0.4 0h0.8 0.2c0.3-0.1 0.6 0 0.9-0.1 0.4 0 0.7 0.1 1 0.1h0.7 0.2c0.2-0.1 0.6 0 0.8 0h1c0.1-0.1 0.6 0 0.7 0h1.9c0.2 0 0.4 0 0.5 0.1h0.4 0.3 1 1.5s0.3-0.1 0.3 0v1.5 1.5 2.8c-0.1 1.7 0 3.3 0 5v0.7c0 0.3-0.1 0.6 0 0.9v0.4 1.1c-0.4 0-0.4 0.2-0.4 0.5"/><path class="st2" d="m41.5 56.8c-0.1-0.3-0.2-0.5-0.2-0.7 0-0.1 0-0.2-0.1-0.3 0-0.1-0.1-0.1-0.2-0.1-0.1 0.1-0.2 0.1-0.2 0.2 0 0.2 0.1 0.4 0.2 0.6s0.2 0.5 0.3 0.8c0.1 0.2 0.1 0.3 0.2 0.5 0.1 0.1 0.3 0.3 0.5 0.2 0.1 0 0-0.2-0.1-0.3-0.2-0.3-0.3-0.6-0.4-0.9"/><path class="st2" d="m30.7 43.8c0.1-0.2 0.2-0.4 0.3-0.5s0.2-0.2 0.3-0.2c0.1-0.1 0.2-0.2 0.3-0.4 0.1-0.1 0.2-0.1 0.2-0.2 0.1-0.3 0.1-1 0.1-1.3v-0.9-0.6-1.2-0.6c0-0.5 0.1-1.1 0-1.6v-1.5-0.5-0.4-1-0.5-0.8c0-0.2 0.1-0.5 0-0.7-0.2 0.1-1 0.9-1 1.2-0.1 0.2 0 0.6 0 0.9 0 0.4-0.1 0.8-0.1 1.2v0.3 0.6c0 0.3-0.1 0.6-0.1 1v0.6 0.6 0.8c0 0.4-0.1 0.9-0.1 1.3 0 0.3 0 0.6 0.1 0.8 0 0.2-0.1 0.5-0.1 0.7s0.1 0.4 0 0.6c0 0.3-0.1 0.6-0.1 0.9 0.2 0.4 0.2 0.9 0.2 1.4"/><path class="st2" d="m44.8 44.1c0-0.3-0.2-0.5-0.4-0.7-0.1-0.1-0.2-0.3-0.4-0.4-0.3-0.2-0.6-0.4-1-0.4h-0.6c-0.1 0.1-0.3 0-0.4 0.1-0.2 0.1-0.5 0.1-0.7 0.2-0.7 0.2-1.3 0.5-1.9 0.8-0.2 0.1-0.4 0.3-0.6 0.4s-0.3 0.4-0.6 0.5c-0.2 0-0.3-0.2-0.4-0.3-0.1 0-0.1-0.1-0.2-0.1-0.3-0.2-0.5-0.5-0.8-0.6-0.5-0.3-0.9-0.3-1.5-0.4-0.2 0-0.3-0.1-0.5-0.1-0.8-0.2-1.9-0.2-2.6 0.3-0.2 0.1-0.3 0.2-0.4 0.4-0.3 0.2-0.4 0.3-0.5 0.6 0 0.1-0.1 0.2-0.1 0.3 0.1 0.1 0.3 0.1 0.4 0.1 0.1-0.1 0.4 0 0.5 0h1.4c0.1-0.1 0.3-0.1 0.5-0.1h1 0.4c0.4 0 0.8 0.1 1.3 0.1h0.1 0.6c0.1 0 0.1 0 0.2 0.1s0 0.3 0.1 0.4c0.1 0.4 0.4 0.6 0.8 0.6 0.5 0 0.8-0.4 0.8-0.9v-0.2c0.1-0.1 0.2-0.1 0.4-0.1h0.2 0.2c0.1-0.1 0.5 0 0.7 0 0.1 0 0.2-0.1 0.3-0.1 0.2-0.1 0.4-0.1 0.6-0.1h0.2c0.2-0.1 0.4 0 0.6 0 0.2-0.1 0.4-0.1 0.6-0.1h1.7c-0.2-0.3 0-0.2 0-0.3"/><path class="st2" d="m32.3 41.6v0.7h0.3c0.1 0 0.2-0.1 0.3-0.1s0.2-0.1 0.3 0h0.2c0.3-0.1 0.9 0 1.2 0.1s0.6 0 0.9 0.1c0.4 0.1 0.9 0.3 1.3 0.5 0.1 0.1 0.8 0.6 0.8 0.6 0.2-0.3 0.2-0.6 0.2-0.9 0.1-0.4 0.1-0.8 0.1-1.2 0-0.6 0.1-1.2 0.1-1.9v-0.8-2.3c0-1.2 0.1-2.4 0-3.6 0-0.4 0-0.8-0.2-1.1-0.4-0.6-1-0.8-1.6-1-0.2-0.1-0.3-0.1-0.5-0.2-0.2 0-0.4-0.1-0.6-0.1-0.3-0.1-0.6-0.1-0.9-0.1h-1.3c-0.1 0.1-0.3 0-0.4 0.2s0 0.6 0 0.8v2.2 1.3c0 0.4-0.1 0.7-0.1 1.1 0 0.3 0.1 0.5 0.1 0.8v1.7c0 0.2 0 0.5-0.1 0.7v1.4c0 0.2 0 0.5-0.1 0.7-0.1 0 0 0.2 0 0.4m4.6-0.7c-0.4-0.2-0.9-0.4-1.4-0.5-0.2-0.1-0.3-0.1-0.5-0.1-0.3-0.1-0.5-0.1-0.8-0.2-0.3 0-0.6-0.1-0.9-0.1h-0.1c-0.2-0.1-0.2-0.6 0.1-0.6 0.2 0 0.4 0.1 0.6 0.1s0.4 0.1 0.6 0.1c0.2 0.1 0.3 0.1 0.5 0.2 0.5 0.2 0.9 0.3 1.3 0.5 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.6 0.4 0.8 0.6 0.1 0.1 0.2 0.1 0.2 0.2-0.3 0-0.5-0.2-0.7-0.3m0.6-2.9c-0.1 0-0.1 0 0 0-0.3 0.1-1-0.6-1.2-0.7-0.3-0.1-0.5-0.2-0.8-0.3-0.4-0.1-0.7-0.3-1.1-0.4-0.2 0-0.3 0-0.5-0.1-0.2 0-0.6 0-0.7-0.1-0.2-0.2-0.1-0.6 0.2-0.6 1.2 0.1 2.2 0.6 3.1 1.2 0.3 0.1 0.9 0.5 1.1 0.8-0.1 0.1 0 0.2-0.1 0.2m-4.4-5.4c0.4 0 0.7 0.1 1 0.2 0.1 0 0.2 0 0.3 0.1 0.2 0.1 0.4 0.2 0.6 0.2 0.2 0.1 0.4 0.1 0.6 0.2 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.5 0.2 0.8 0.4 0.2 0.1 1.1 0.6 0.9 0.8 0 0.1-0.1 0.1-0.2 0-0.2 0-0.3-0.2-0.4-0.2-0.2-0.1-0.3-0.2-0.5-0.3-0.8-0.4-1.8-0.7-2.7-0.9-0.3-0.1-0.6-0.1-0.8-0.2-0.1 0-0.1-0.3 0.1-0.4"/><path class="st2" d="m39.3 26c0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.3-0.2 0.3-0.3 0.1-0.2-0.1-0.6-0.3-0.7h-0.2c0 0.2 0.1 0.2 0.1 0.4 0 0.1-0.1 0.2-0.2 0.3s-0.1 0.4 0 0.4"/><path class="st2" d="m39.9 23.4c-0.2-0.1-0.4-0.1-0.6-0.2s-0.3-0.2-0.5-0.2c-0.1 0-0.2 0.1-0.2 0.2 0 0.2 0.2 0.3 0.3 0.4s0.2 0.3 0.3 0.3 0.2-0.1 0.3-0.2 0.2-0.1 0.3-0.2c0.2 0 0.2-0.1 0.1-0.1"/><path class="st2" d="m38.7 27.2c0.2 0.1 0.6 0 0.6-0.2s-0.2-0.3-0.3-0.3c-0.1 0.1-0.5 0.4-0.3 0.5"/><path class="st2" d="m43.8 30.6c-0.1-0.1-0.3 0-0.4 0h-0.5c-0.2 0.1-0.4 0-0.7 0.1-1 0.2-1.9 0.3-2.7 0.8-0.2 0.1-0.4 0.2-0.6 0.4-0.1 0.1-0.1 0.3-0.1 0.5-0.1 0.5-0.1 0.9-0.1 1.4 0 0.2 0 0.5-0.1 0.7v1.1c0 0.1 0 0.3-0.1 0.4v1 1.5 1.5 0.4 0.2 0.7c0 0.7 0 1.5 0.2 2l0.1 0.1c0.3-0.1 0.6-0.3 0.8-0.5 0.2-0.1 0.5-0.2 0.8-0.3 0.3-0.2 0.4-0.3 0.8-0.3 0.1-0.1 0.4-0.1 0.6-0.1h0.2 0.2c0.3-0.1 0.9 0 1.2 0.1 0.1 0 0.3 0.1 0.4 0.1 0.1-0.4 0-0.9 0-1.3v-0.7-0.8-0.4-1-0.6-1.1-0.5-2-0.6-1.5c0-0.2-0.1-0.3-0.1-0.5v-0.6c0.1-0.1 0.1-0.2 0.1-0.2m-4.8 6.8c0.6-0.6 1.5-0.9 2.2-1.2 0.2-0.1 0.5-0.3 0.8-0.3 0.1-0.1 0.3-0.2 0.4-0.2 0.2 0 0.3 0.1 0.3 0.3s-0.1 0.3-0.2 0.4c-0.2 0.2-0.5 0.2-0.8 0.3s-0.6 0.2-0.9 0.3c-0.2 0.1-0.4 0.1-0.6 0.2-0.4 0.1-0.7 0.3-1 0.5-0.1 0.1-0.2 0.2-0.4 0.2h-0.1c0-0.3 0.2-0.5 0.3-0.5m3.7 2.1c-0.2 0.1-0.5 0.1-0.8 0.2-0.2 0-0.5 0.1-0.7 0.2-0.8 0.2-1.4 0.5-2.1 0.9-0.1 0-0.3 0.3-0.4 0.1-0.1-0.1 0.1-0.2 0.2-0.3 0.3-0.2 0.5-0.4 0.8-0.6s0.6-0.4 1-0.5c0.1-0.1 0.2-0.1 0.3-0.2 0.4-0.2 0.9-0.3 1.3-0.4 0.1 0 0.3 0 0.4 0.1 0.3 0.1 0.2 0.4 0 0.5m0.1-6.5c-0.1 0.1-0.3 0.1-0.4 0.1-0.3 0.1-0.6 0.2-0.9 0.3-0.4 0.1-0.8 0.3-1.2 0.5-0.3 0.2-0.5 0.3-0.8 0.5 0 0-0.4 0.2-0.4 0.1 0-0.3 0.4-0.5 0.6-0.6 0.1-0.1 0.2-0.1 0.3-0.2 0.3-0.2 0.6-0.3 0.8-0.5 0.3-0.1 0.6-0.2 0.9-0.3 0.1-0.1 0.2-0.1 0.3-0.1 0.1-0.1 0.3-0.1 0.4-0.1h0.3c0.3 0 0.2 0.2 0.1 0.3"/><path class="st2" d="m38.2 25.7c-0.1 0-0.1 0-0.2-0.1-0.1 0-0.2 0.1-0.2 0.2v0.3c0 0.2 0 0.4 0.1 0.5s0.1 0.1 0.2 0.1 0.1 0.1 0.2 0.1c0.2 0 0.6-0.3 0.6-0.5-0.1 0-0.6-0.5-0.7-0.6"/><path class="st2" d="m45.6 33.5c0-0.2-0.1-0.5-0.1-0.7v-0.4-0.3h-0.1c-0.1 0.5 0 1.1 0 1.6 0 0.2-0.1 0.4-0.1 0.6v0.3 0.3c-0.1 0-0.2 0-0.2-0.1v-0.5-0.3c0-0.6 0.1-1.3 0.1-1.9v-0.3-0.2h-0.1c0 0.5-0.1 0.9-0.1 1.3 0 0.1 0 0.2-0.1 0.2h-0.1c-0.1-0.4-0.1-0.8-0.1-1.2 0-0.2 0-0.4-0.1-0.6-0.1 0.1-0.1 0.3-0.1 0.5v0.7c0 0.2 0.1 0.5 0 0.7-0.1 1.5-0.1 3-0.1 4.6v0.9c0 0.3-0.1 0.5-0.1 0.8v1.2c0 0.4-0.1 0.8 0 1.2 0 0.1 0 0.2 0.1 0.2 0.1-0.2 0.1-0.5 0.1-0.7 0-0.4 0.1-0.8 0.1-1.3 0-0.3-0.1-0.6 0-0.9 0 0 0-0.1 0.1 0 0.1 0 0.1 0.2 0.1 0.3 0.1 0.3 0 0.6 0 1v0.8 0.9 0.4c0 0.1 0 0.3 0.2 0.3v-1.4-0.6c0-0.2 0-0.4 0.1-0.6 0-0.1 0-0.3 0.1-0.4 0-0.2-0.1-0.4-0.1-0.6v-0.9-0.5c0-0.1 0.1-0.1 0.1-0.1 0.1 0.1 0.2 0.2 0.2 0.3v1.1 0.3c0 0.3 0.1 0.6 0.1 0.9v0.4 1.6c0 0.4 0 0.8 0.1 1.2v0.2h0.1c0.1-0.2 0.1-0.5 0.1-0.8s0.1-0.6 0-1c0-0.2-0.1-0.4-0.1-0.6s0.1-0.4 0.1-0.6c0-0.3-0.1-0.6-0.1-1 0-0.3 0-0.7 0.1-1v-0.8-0.3c0-0.2 0-0.3 0.1-0.5v-0.8-1.3c-0.3-0.7-0.3-1.1-0.3-1.6m-0.9 4.1s-0.2 0.2-0.2 0.1v-0.3-0.8-1c0-0.3 0-0.6 0.1-0.8 0.1 0 0.1 0.1 0.2 0.2 0.1 0.3 0 0.6 0 0.9-0.1 0.6 0 1.3-0.1 1.7m0-3.8c-0.2 0-0.2-0.2-0.1-0.3 0.1 0 0.2 0.3 0.1 0.3m0.4 3.2c-0.1-0.2-0.1-0.4-0.1-0.7s-0.1-0.6 0.1-0.9c0.1 0 0.1 0 0.2 0.1 0.1 0.2 0.1 1.5-0.2 1.5"/><path class="st2" d="m41.7 51.2h0.3 0.7 0.2c-0.2-0.3-0.6-0.6-0.9-0.9l-2.1-2.1c-0.1-0.1-0.3-0.3-0.5-0.4l-0.7-0.7c-0.1-0.1-0.3-0.3-0.5-0.4v0.1c-0.1 0-0.2 0.1-0.3 0.2-0.3 0.3-0.5 0.6-0.8 0.8l-2.4 2.4c-0.1 0.1-1 1-1 1.1 0.6 0.1 1.3 0 1.9 0h0.7c0.1 0 0.3 0 0.4 0.1v0.1c-0.1 0.1-1.2 1.4-1.2 1.4v0.1h2.2 0.1c-0.1-0.2-0.2-0.3-0.3-0.5-0.2-0.2-0.4-0.5-0.5-0.8 0-0.1-0.1-0.2 0-0.2 0.1-0.3 1.4-0.1 1.7-0.1 0.2-0.1 0.6 0 0.8 0 0.3 0 0.7-0.1 1.1 0 0.1 0 0.1 0.1 0.1 0.2 0 0.2-0.5 0.9-0.6 1.2 0 0.1-0.1 0.1-0.1 0.2h1.2 0.7 0.1c0-0.2-0.7-1-0.8-1.2-0.1-0.1-0.2-0.2-0.2-0.3 0-0.4 0.4-0.3 0.7-0.3"/><path class="st2" d="m39.1 52.8c0.2-0.1 0.8-1 0.8-1.2h-0.4c-0.1 0-0.1 0.1-0.2 0.1-0.1 0.1-0.7 0.9-0.7 1 0.2 0.1 0.4 0.1 0.5 0.1"/><path class="st2" d="m35.3 51.6c-0.2 0.2-1.2 0.9-1.2 1.1h0.5c0.2-0.1 1-0.9 1-1.1h-0.3"/><path class="st2" d="m43.7 52.7c0-0.5 0-1-0.4-1.2-0.1 0.3-0.1 0.7-0.1 1.1v1.6 0.3h-2.5-1.1c-0.7 0-1.4-0.1-2.1-0.1-0.5 0-1 0.1-1.5 0.1-0.3 0-2.4-0.2-2.5 0v0.1c0.2 0.3 0.5 0.2 0.9 0.2h0.2 0.2 0.6 1 0.3c0.1-0.1 0.6 0 0.8 0h0.2 1.1c0.2-0.1 0.5 0 0.7 0h1.4c0.1-0.1 0.3 0 0.5 0 0.2-0.1 0.4 0 0.6 0h1.2 0.2v-0.1c0.1-0.2 0-0.5 0-0.8 0-0.2 0-0.3 0.1-0.5 0.3-0.1 0.3-0.4 0.2-0.7"/><path class="st2" d="m43.7 59.4v-0.4-0.3c-0.1-0.1-0.2-0.1-0.4-0.1l-0.1 0.1v0.6 2c0.1 0 0.4 0 0.4-0.2 0.1-0.2 0.1-0.8 0-1.1 0-0.1 0-0.3 0.1-0.6"/><path class="st2" d="m51.4 59.8c-0.5-0.5-1-1-1.5-1.4-0.6-0.6-1.2-1.3-1.9-1.9-0.2-0.2-0.5-0.4-0.7-0.7l-0.3-0.3c-0.9-1-2-1.9-2.9-2.8-0.1 0.4 0 0.8 0 1.2v0.8 0.7c-0.1 0.2-1.5 0.2-1.8 0.2-0.1 0-0.5 0-0.6 0.1v0.1c0.1 0.4 0.3 0.8 0.4 1.1 0.1 0.2 0.2 0.9 0.4 1.1 0.1 0.1 0.6 0.1 0.7 0.1 0.1-0.1 0.5 0 0.6 0 0.3-0.1 0.2 0.5 0.2 0.6v0.5c0 0.3-0.1 2 0.1 2.1 0.1 0.1 0.5 0 0.7 0 0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.4 0 0.5 0h0.2c0.1-0.1 0.4 0 0.6 0 0.1 0 0.4-0.1 0.4-0.1 0.1 0 0.2 0.1 0.3 0.1h0.3c0.2-0.1 0.5-0.1 0.8-0.1h0.2c0.1-0.1 0.3 0 0.5 0h0.2 0.2c0.1-0.1 0.2 0 0.3-0.1 0.1 0 0.3-0.1 0.4-0.1 0.2 0 0.4-0.1 0.7-0.1 0.1-0.1 0.4-0.1 0.5-0.1s0.2-0.1 0.3-0.1c0 0 0.2-0.1 0.2-0.2 0-0.4-0.2-0.5-0.3-0.6"/><path class="st2" d="m56.8 33.9v-0.3-0.3-0.6-1-0.9-1.8c0-0.2 0.1-0.7-0.1-0.9-0.1 0.2-0.4 0.4-0.6 0.6-0.7 0.8-1.5 1.5-2.3 2.3-0.5 0.5-1 1.1-1.5 1.6-0.3 0.2-0.5 0.5-0.8 0.8l-0.7 0.7c-0.2 0.2-0.4 0.3-0.5 0.5s-0.3 0.3-0.4 0.5l-1.8 1.8c-0.2 0.2-0.4 0.5-0.6 0.7s-0.6 0.5-0.7 0.7v0.1c0 0.1 1.3 1.4 1.5 1.6 1 1 2.1 2 3.1 3 0.1 0.1 0.2 0.2 0.2 0.3 0.2 0.1 0.3 0.3 0.4 0.4 0.2 0.2 0.3 0.4 0.5 0.5 1 1.1 2.1 2.1 3.2 3.2 0.1 0.1 1 1.1 1.1 1.1 0.2 0 0.1-0.9 0.1-1.1v-0.5-0.4c0-0.1 0-0.2 0.1-0.4 0-0.2-0.1-0.4 0-0.6v-0.3-1.2-0.7-0.4-0.5-0.7-0.2c0-0.2 0-0.4 0.1-0.7 0-0.4 0-0.7-0.1-1.1 0-0.3 0.1-0.6 0.1-0.9 0-0.2 0-0.4-0.1-0.6v-0.3-1-0.4c0-0.3 0-0.5-0.1-0.8v-1.5c-0.1-0.1-0.1-0.2-0.1-0.3"/><path class="st2" d="m43.2 20.8c-0.1 0.1-0.1 0.2-0.2 0.3s-0.1 0.2-0.2 0.3c-0.1 0.2-0.3 0.2-0.4 0.4-0.1 0.1-0.1 0.3-0.3 0.4-0.3 0.2-0.5 0.5-0.6 0.8 0 0.1-0.1 0.1-0.1 0.2 0 0-0.1 0.1 0 0.1 0 0.1 0.1 0.2 0.2 0.3 0.2 0.2 0.3 0.4 0.3 0.7 0 0.2 0.1 0.4 0.1 0.6s-0.1 0.4-0.2 0.6c0 0.1 0 0.3-0.1 0.4s-0.1 0.2-0.2 0.3-0.1 0.2-0.2 0.3c-0.2 0.3-0.5 0.4-0.8 0.6-0.1 0.1-0.2 0.2-0.4 0.3s-0.4 0.1-0.6 0.3c-0.2 0.1-0.3 0.3-0.4 0.5-0.1 0.1-0.2 0.1-0.3 0.2-0.1 0.2 0 0.3 0 0.5 0 0.1 0 0.2-0.1 0.3v0.6 0.2c0.2-0.1 0.4-0.4 0.6-0.6l2.8-2.8c0.2-0.2 0.3-0.4 0.5-0.6 0.3-0.3 0.7-0.6 1-1 0.1-0.1 0.2-0.3 0.3-0.4l0.3-0.3c0.2-0.2 0.4-0.4 0.6-0.5 0.5-0.5 1-1.1 1.5-1.6 0.1-0.1 0.3-0.2 0.4-0.4l1.7-1.7c0.3-0.3 0.7-0.6 0.9-0.9-0.2 0.1-0.5 0.1-0.8 0h-0.2c-0.2 0-0.4 0.1-0.6 0.1s-0.5-0.1-0.7-0.1h-0.6c-0.1 0.1-0.2 0-0.4 0.1h-0.9-0.5l-0.2 0.2c-0.2 0.2-0.3 0.4-0.5 0.6-0.1 0.1-0.1 0.2-0.2 0.2-0.1 0.1-0.2 0.1-0.3 0.2l-0.2 0.2c0.2 0 0.1 0 0 0.1"/><path class="st2" d="m41.4 21.4c-0.1 0.2-0.4 0.3-0.4 0.6v0.3h0.1c0.2-0.3 0.6-0.7 0.3-0.9"/><path class="st2" d="m40.9 25.6s0.1 0.1 0.1 0c0.2-0.1 0.3-0.3 0.3-0.5-0.1 0.2-0.4 0.3-0.4 0.5"/><path class="st2" d="m40.7 23.6-0.2 0.2v1c0 0.1 0.1 0.1 0.2 0.1s0.1-0.1 0.2-0.1c0.3-0.3 0.2-0.6 0.1-0.9-0.1-0.2-0.1-0.3-0.3-0.3"/><path class="st2" d="m40 26.6c0.1 0.1 0.5-0.1 0.5-0.2-0.1-0.1-0.2-0.1-0.3-0.1s-0.3 0.2-0.2 0.3"/><path class="st2" d="m41.9 20.6c-0.1 0.1-0.2 0.3 0 0.4 0.1 0 0.2 0.1 0.2 0 0.1-0.1 0.2-0.3 0.3-0.4 0.2-0.2 0.9-1.2 1.2-1.2v-0.1c-0.2 0-0.4 0-0.6-0.1l-0.2 0.2c-0.1 0.1-0.2 0.3-0.3 0.4s-0.2 0.2-0.3 0.2-0.1 0.1-0.2 0.1c-0.1 0.3-0.1 0.4-0.1 0.5"/><path class="st2" d="m40.2 21.3c-0.1 0.1-0.4 0.6-0.4 0.7h0.1c0.2 0.1 0.4 0 0.5-0.1s0.1-0.3 0.3-0.4l0.6-0.6c0.1-0.1 0.1-0.2 0.2-0.3s0.2-0.3 0.3-0.4 0.2-0.3 0.3-0.4 0.2-0.2 0.2-0.4h-0.3c-0.1 0.1-0.3 0.1-0.3 0.2-0.1 0.1-0.1 0.3-0.2 0.4s-0.3 0.2-0.4 0.3-0.1 0.3-0.1 0.4-0.1 0.1-0.2 0.2c0 0.1 0 0.2-0.1 0.2-0.3 0.1-0.4 0.1-0.5 0.2"/><path class="st2" d="m38.7 21.6v0.3c0.3-0.1 0.6-0.5 0.8-0.8 0.1-0.1 0.1-0.3 0.2-0.4s0.1-0.2 0.2-0.3c0.1-0.3 0.3-0.7 0.5-1h0.1v-0.1h-0.4c-0.2 0.1-0.9 0-1 0.1s-0.1 0.3-0.1 0.4-0.2 0.2-0.2 0.3c-0.1 0.2 0.1 0.4 0.1 0.6s-0.1 0.3-0.1 0.4c-0.1 0.3-0.1 0.4-0.1 0.5"/><path class="st2" d="m38.1 23.6c-0.1 0-0.4 0.4-0.4 0.4 0 0.2 0.2 1 0.4 1s0.4-0.2 0.5-0.3 0.3-0.2 0.4-0.4-0.5-0.6-0.6-0.7h-0.3"/><path class="st2" d="m37.7 25.4c0.1-0.3-0.6-0.8-0.8-0.9-0.2 0.2-0.1 0.2-0.2 0.4 0 0.1-0.1 0.2-0.1 0.2-0.1 0.2 0.1 0.6 0.2 0.7s0.1 0.1 0.2 0.1 0.3-0.2 0.4-0.3c0.2 0 0.3-0.1 0.3-0.2"/><path class="st2" d="m37.3 26.8c-0.1-0.1-0.1-0.2-0.2-0.3 0 0-0.1 0-0.2-0.1-0.3 0.5 0.1 0.6 0.5 0.7h0.1c0-0.1-0.1-0.2-0.2-0.3"/><path class="st2" d="m36 24.6c0.1 0 0.2-0.1 0.3-0.2 0.3-0.4 0.1-0.7-0.3-1-0.1 0-0.3 0.3-0.3 0.3 0 0.1 0.1 0.2 0.1 0.3 0 0.3-0.1 0.7 0.2 0.6"/><path class="st2" d="m36.9 23.7c0.2 0 0.9-0.5 0.8-0.7-0.1-0.1-0.2-0.1-0.3-0.1-0.3 0.1-0.5 0.2-0.8 0.2h-0.2v0.1c0.1 0.2 0.2 0.5 0.5 0.5"/><path class="st2" d="m36.2 26.6c0.1 0 0.5-0.3 0.5-0.4s-0.5-0.6-0.6-0.7h-0.2c-0.1 0.3 0 0.7 0.1 1 0.1 0.1 0.1 0.2 0.2 0.1"/><path class="st2" d="m37.1 21c0.1 0.2 0.5 1.3 0.9 1.3v-0.8c0-0.4 0.1-0.8 0.1-1.2 0-0.1 0-0.2 0.1-0.3 0-0.1 0-0.2-0.1-0.3v-0.3c-0.2 0-0.6 0-0.8-0.1-0.2 0-0.5 0-0.6 0.1-0.3 0.3 0.1 1 0.2 1.3 0 0.1 0.1 0.1 0.2 0.3"/><path class="st2" d="m36.5 22.2h0.3c0.1 0 0.1-0.2 0.1-0.3s0-0.3-0.1-0.4-0.1-0.2-0.2-0.4-0.2-0.4-0.3-0.7-0.3-0.9-0.6-1.1c-0.1-0.1-0.3 0-0.5 0-0.1 0.1-0.6 0.1-0.6 0.2-0.1 0.2 1.8 2.6 1.9 2.7"/><path class="st2" d="m33.1 19.6c0.1 0.2 0.3 0.3 0.5 0.5 0.1 0.2 0.2 0.4 0.3 0.5s0.3 0.1 0.4 0.3c0.2 0.2 0.4 0.5 0.5 0.8l0.3 0.3c0.2 0.2 0.3 0.4 0.5 0.5 0.1 0.1 0.3 0.1 0.4 0.1 0 0 0-0.1 0.1-0.1-0.1-0.2-0.3-0.4-0.4-0.6-0.1-0.1-0.2-0.1-0.3-0.2 0-0.1-0.1-0.1-0.1-0.2-0.1-0.1-0.2-0.3-0.3-0.4l-0.4-0.4c-0.1-0.1-0.1-0.3-0.2-0.4-0.2-0.2-0.3-0.5-0.6-0.7-0.1-0.1-0.3-0.2-0.5-0.2 0 0-0.2 0-0.2 0.2"/><path class="st2" d="m28.1 20.2 2.2 2.2c0.9 0.8 1.7 1.7 2.6 2.5 0.1 0.1 0.2 0.2 0.3 0.4l0.8 0.8c0.5 0.5 1 0.9 1.5 1.4 0.2 0.3 0.5 0.5 0.7 0.8 0.3 0.3 0.7 0.6 1 0.9 0.2 0.2 0.6 0.7 0.8 0.7 0-0.2-0.1-0.6-0.1-0.8v-0.3c0-0.1 0-0.2-0.1-0.3l-0.3-0.3c-0.1-0.1-0.2-0.3-0.3-0.4-0.2-0.2-0.4-0.2-0.6-0.3-0.1-0.1-0.3-0.2-0.4-0.3-0.1 0-0.2-0.1-0.3-0.1-0.1-0.1-0.1-0.2-0.2-0.3s-0.2-0.1-0.3-0.2-0.1-0.3-0.2-0.5c-0.1-0.1-0.1-0.3-0.2-0.4 0-0.1-0.1-0.3-0.1-0.4 0-0.2 0-0.4 0.1-0.6 0-0.1 0-0.2 0.1-0.4 0.1-0.3 0.2-0.5 0.5-0.8 0.1-0.1 0.2-0.2 0.3-0.2-0.1-0.2-0.2-0.3-0.4-0.5-0.1-0.1-0.2-0.1-0.2-0.2-0.1-0.1-0.2-0.3-0.4-0.5s-0.5-0.4-0.7-0.7l-1.4-1.4c-0.2-0.2-0.4-0.4-0.6-0.5s-0.4 0.1-0.6 0.1c-0.1 0-0.2 0-0.3-0.1h-0.7-0.5-0.6c-0.2 0.1-0.6 0-0.8 0h-1.1c-0.3 0.1 0.3 0.4 0.5 0.7"/><path class="st2" d="m35.2 24.6c0 0.2-0.1 0.7 0.2 0.6 0.4-0.1 0-0.5-0.2-0.6"/><path class="st2" d="m25 43.2c0.3-0.3 0.5-0.6 0.8-0.8 0.4-0.4 0.8-0.8 1.3-1.2l0.9-0.9c0.1-0.1 0.2-0.3 0.3-0.4 0.4-0.3 0.9-0.8 1.2-1.2 0-0.1 0.1-0.1 0.1-0.2 0.1-0.3-1.9-2.2-2.2-2.5-0.5-0.5-1-1-1.5-1.6-0.5-0.5-1.1-1-1.6-1.5-0.1-0.1-0.2-0.2-0.2-0.3-0.2-0.2-0.5-0.4-0.7-0.6-0.1-0.1-0.2-0.2-0.3-0.4-0.3-0.4-0.7-0.7-1-1l-0.5-0.5c-0.5-0.4-0.9-0.9-1.4-1.3-0.2-0.2-0.4-0.5-0.7-0.6v1 0.3 0.6 0.5 0.4 2 0.5c0 0.3 0 0.6-0.1 1v2 0.9 1.2 0.6 0.4 1.5 0.5 0.9 0.6 1.4 0.5 1.4 1.7 0.6s0.1 0.2 0.1 0.1c0.1-0.2 0.4-0.4 0.6-0.6 0.6-0.5 1.1-1.1 1.7-1.6 0.4-0.4 0.7-0.8 1.1-1.1 0.7-0.6 1.4-1.3 2.1-1.9-0.1-0.3 0-0.4 0-0.4"/><path class="st2" d="m34.7 57.4c0.1-0.4 0.3-0.8 0.5-1.2 0.1-0.2 0.2-0.5 0.2-0.8h-1.2c-0.2 0-0.7 0-0.9-0.1-0.1-0.1-0.1-0.2-0.2-0.3-0.1-0.2-0.2-0.3-0.3-0.5s0-0.4 0-0.7v-1c0-0.2 0.1-0.8 0-1-0.2 0.2-0.3 0.4-0.5 0.5l-1.8 1.8c-0.4 0.4-0.9 0.9-1.3 1.4-0.7 0.7-1.5 1.4-2.2 2.1-0.1 0.1-0.2 0.3-0.3 0.4l-0.4 0.4c-0.3 0.3-0.6 0.5-0.9 0.8l-0.6 0.6c-0.2 0.2-0.5 0.4-0.6 0.6v0.1c0.2 0.1 0.5 0.1 0.8 0.1 0.3 0.1 0.6 0.1 1 0.2h0.4c0.1 0 0.2 0 0.3 0.1 0.2 0 0.4 0.1 0.7 0.1s0.5 0 0.8 0.1c0.6 0.1 1.2 0.2 1.8 0.2h0.4c0.3 0 0.6 0.1 0.8 0.1 0.1 0 0.3 0 0.4 0.1h0.6c0.2 0 0.4 0.1 0.6 0.1 0.1 0 0.1-0.1 0.1-0.2 0.1-0.3 0-0.8 0-1.1v-2.1c0-0.1 0-0.1 0.1-0.2s0.9 0 1.1 0h0.2c0.1 0 0.2 0 0.3-0.1 0-0.1 0-0.3 0.1-0.5"/><path class="st2" d="m37.2 62.7h0.3v-1.2c0-0.4 0-1 0.2-1.3 0.2-0.4 0.3-0.7 0.8-0.7 0.1 0 0.1 0 0.1-0.1 0-0.3-0.5-0.4-0.7-0.4-0.1 0-0.2 0.1-0.4 0.1-0.8 0.4-0.7 1.6-0.7 2.4 0 0.1 0 0.5-0.1 0.6-0.2 0.2-2 0.1-2.4 0.1 0.2 0.1 0.4 0.1 0.6 0.2s0.5 0.3 0.8 0.3h1 0.5"/><path class="st2" d="m39.1 62.3c0-0.1-0.1-0.2-0.1-0.3v-1.4-0.6c0-0.1-0.1-0.1-0.1-0.1-0.2 0.1-0.3 0.1-0.5 0.2-0.1 0.1-0.2 0.4-0.2 0.5s-0.1 0.3-0.1 0.5v0.8 0.4 0.4 0.4 0.2h-0.9c-0.1 0-0.2 0-0.3 0.1h-0.1c0.2 0.1 0.5 0.3 0.7 0.4 0.2 0.2 0.3 0.4 0.5 0.5 0.1-0.3 0.4-0.5 0.6-0.7l0.3-0.3c0.2-0.2 0.4-0.3 0.5-0.5-0.2-0.2-0.2-0.4-0.3-0.5"/><path class="st2" d="m39.6 62c0 0.2 0.1 0.4 0.2 0.5 0.2-0.1 0.5-0.2 0.7-0.3 0.1 0 0.2-0.1 0.3-0.1v-0.1h-0.9-0.3"/><path class="st2" d="m1.3 32.7c-0.6-0.2-0.7-0.6-0.5-1.3l0.2-0.9 4.3 1c0.7 0.2 0.8 0.4 0.7 0.8h0.2l0.4-2h-0.2c-0.1 0.5-0.3 0.6-1 0.4l-4.3-1 0.2-0.9c0.2-0.9 0.6-1 1.1-1v-0.1l-1.3-0.3v0.2c0.1 0.2 0.1 0.4 0 0.9l-0.7 2.9c-0.1 0.2-0.1 0.4-0.2 0.5s-0.1 0.2-0.2 0.3v0.2l1.3 0.3"/><path class="st2" d="m3.7 24.2 3.2 1.6c0.7 0.3 0.7 0.6 0.5 1l0.2 0.1 0.9-1.9-0.2-0.1c-0.2 0.4-0.5 0.5-1.1 0.2l-1.5-0.7 1.4-2.8 1.5 0.7c0.7 0.3 0.7 0.6 0.5 1l0.2 0.1 0.9-1.8-0.2-0.2c-0.2 0.4-0.5 0.5-1.1 0.2l-3.2-1.6c-0.6-0.3-0.8-0.5-0.5-1h-0.2l-0.9 1.8 0.2 0.1c0.2-0.4 0.5-0.5 1.1-0.2l1.5 0.7-1.4 2.8-1.5-0.6c-0.7-0.3-0.7-0.6-0.5-1l-0.2-0.1-0.9 1.9 0.2 0.1c0.2-0.5 0.5-0.6 1.1-0.3"/><path class="st2" d="m13.7 15.2-0.1 0.1c0.4 0.7 0.3 0.9-0.3 1.6l-0.6 0.8c-0.2 0.2-0.4 0.3-0.6 0.1l-1.6-1.3 0.9-1.1c0.4-0.5 0.5-0.5 0.9-0.3l0.1-0.1-1.1-0.9-0.1 0.1c0.3 0.4 0.3 0.5 0 0.8l-1 1.2-1.9-1.6 1.1-1.3c0.4-0.5 0.6-0.6 1.1-0.3l0.1-0.1-0.6-0.5-2.6 3.2 0.1 0.1c0.3-0.4 0.6-0.4 1.1 0.1l2.8 2.3c0.6 0.5 0.6 0.7 0.3 1.1l0.1 0.1 2.6-3.2-0.7-0.9"/><path class="st2" d="m22 10.3c0.7-0.4 1-0.9 1.2-1.8l0.4 0.7 1.2-0.7-0.1-0.1c-0.4 0.2-0.6 0.2-1-0.5l-1.7-3.1c-0.3-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.1 0.1c0.4-0.2 0.7-0.1 1 0.5l1.7 3c0 0.7-0.4 1.3-1 1.6-0.8 0.5-1.6 0.2-2-0.6l-1.4-2.5c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.2 0.1c0.4-0.2 0.6-0.2 1 0.5l1.4 2.5c0.5 0.8 1.4 1.3 2.6 0.7"/><path class="st2" d="m31.7 0.7v-0.2l-1.7 0.4v0.2c0.5-0.1 0.7 0 0.9 0.7l0.8 3.2-4.6-3.4-1.4 0.4v0.2c0.7-0.1 0.9 0.2 1.1 0.8l0.8 3.2c0.2 0.8 0 1-0.4 1.1v0.2l1.8-0.4v-0.2c-0.5 0.1-0.8 0-0.9-0.6l-1-3.9 5.2 3.8h0.2l-1.2-4.5c-0.3-0.6-0.2-0.9 0.4-1"/><path class="st2" d="m36.1 1.2 0.2 3.6c0 0.7-0.1 0.9-0.6 0.9v0.2l2.1-0.1v-0.2c-0.5 0-0.7-0.2-0.7-0.9l-0.2-3.6c0-0.7 0.1-0.9 0.6-0.9v-0.2l-2.1 0.1v0.2c0.5 0 0.6 0.2 0.7 0.9"/><path class="st2" d="m46.3 0.9v-0.2l-1.7-0.2v0.2c0.5 0.1 0.6 0.4 0.3 0.9l-1.8 3.4-0.9-3.9c-0.1-0.5 0.1-0.7 0.5-0.6v-0.2l-2-0.3v0.2c0.5 0.1 0.6 0.4 0.8 1.1l1.1 4.8h0.2l2.3-4.3c0.4-0.6 0.7-0.9 1.2-0.9"/><path class="st2" d="m50.3 7.7-0.9-0.3c-0.4-0.2-0.4-0.3-0.3-0.6l0.7-1.9 1.3 0.5c0.6 0.2 0.6 0.3 0.6 0.8l0.2 0.1 0.4-1.3-0.2-0.1c-0.2 0.4-0.4 0.4-0.8 0.3l-1.5-0.6 0.8-2.3 1.6 0.6c0.6 0.2 0.8 0.3 0.7 1h0.1l0.4-0.9-3.9-1.4-0.1 0.2c0.5 0.2 0.5 0.4 0.3 1.1l-1.2 3.4c-0.3 0.6-0.5 0.7-0.9 0.5l-0.1 0.2 3.9 1.4 0.6-0.9-0.2-0.1c-0.5 0.6-0.7 0.6-1.5 0.3"/><path class="st2" d="m56 10.7c-0.4-0.3-0.4-0.5 0-1.1l0.9-1.3 0.4 0.3c0.9 0.6 0.4 1.9 0.6 3.5l1 0.6 0.1-0.1c-0.8-0.6 0-2.4-0.5-3.5 0.8 0.2 1.4 0 1.8-0.5 0.4-0.6 0.3-1.6-0.8-2.3l-2-1.3-0.1 0.1c0.4 0.3 0.5 0.5 0.1 1.1l-2 3c-0.4 0.6-0.7 0.6-1 0.4l-0.1 0.1 1.7 1.1zm2.4-4.8 0.5 0.3c0.7 0.5 0.9 1.2 0.5 1.9-0.4 0.6-1 0.9-1.9 0.4l-0.6-0.4 1.5-2.2"/><path class="st2" d="m61 14.6c0.1 0.1 0.3 0.7 0.7 1.1 0.6 0.6 1.7 0.6 2.3 0 0.3-0.3 0.5-0.6 0.5-1.2 0-1.2-0.8-2.4-0.1-3.1 0.4-0.4 0.9-0.3 1.3 0.1s0.6 1.1 0.1 1.7l0.1 0.1 1-0.9-0.1-0.1c-0.1 0.1-0.2 0.1-0.2 0-0.2-0.2-0.2-0.5-0.6-1-0.7-0.7-1.5-0.7-2.1-0.1-0.3 0.3-0.5 0.7-0.5 1.2 0 0.9 0.7 2.3 0 3-0.4 0.4-1.1 0.4-1.5-0.1-0.4-0.4-0.7-1.2 0-2l-0.1-0.1-1.1 1.1 0.1 0.1c0 0.1 0.1 0.1 0.2 0.2"/><path class="st2" d="m64.9 19-0.1 0.1 1.2 1.7 0.1-0.1c-0.3-0.4-0.2-0.7 0.4-1.1l2.9-2c0.6-0.4 0.8-0.4 1.1 0l0.1-0.1-1.2-1.7-0.1 0.1c0.3 0.4 0.2 0.6-0.4 1.1l-2.9 2c-0.6 0.4-0.9 0.3-1.1 0"/><path class="st2" d="m72.6 21.5 0.3 0.8-4 1.8c-0.7 0.3-0.9 0.2-1.1-0.2l-0.1 0.1 0.8 1.8 0.2-0.1c-0.2-0.4-0.1-0.6 0.5-0.9l4-1.8 0.4 0.8c0.4 0.8 0.2 1.1-0.2 1.4v0.1l1.2-0.5-0.1-0.2c-0.2-0.1-0.4-0.3-0.6-0.7l-1.3-2.7c-0.1-0.2-0.2-0.4-0.2-0.5v-0.4l-0.1-0.2-1.2 0.5 0.1 0.2c0.7-0.2 1.1 0 1.4 0.7"/><path class="st2" d="m76.2 31.4h-0.2c0.1 0.5-0.3 0.5-0.8 0.4l-1.6-0.6 1.5-1.5c0.3-0.3 0.5-0.3 0.7 0.3h0.2l-0.5-2.2h-0.2c0.1 0.4 0 0.6-0.5 1.2l-1.6 1.6-1.8 0.4c-0.8 0.2-0.9-0.1-1-0.5h-0.2l0.4 2h0.2c-0.1-0.5 0.1-0.7 0.8-0.8l1.8-0.4 2.3 0.8c0.6 0.2 0.7 0.3 0.8 0.8h0.2l-0.5-1.5"/><path class="st2" d="m5 51.3c1.6-0.5 2.5-2.1 2-3.8s-2.1-2.6-3.7-2.1-2.5 2.1-2.1 3.8c0.5 1.7 2.1 2.6 3.8 2.1m-3.6-2.1c-0.4-1.2 0.5-2.4 2.1-2.9s2.9 0.1 3.3 1.4c0.3 1.1-0.4 2.3-2.1 2.8-1.4 0.4-2.9 0.1-3.3-1.3"/><path class="st2" d="m8.8 53.1c0.2 0.4 0.2 0.7-0.5 1l-3.1 1.8c-0.6 0.4-0.9 0.3-1.1-0.1l-0.2 0.1 1 1.8 0.1-0.1c-0.2-0.4-0.1-0.7 0.5-1l1.5-0.8 0.8 1.3c0.2 0.3 0.1 0.6-0.3 0.9l0.1 0.1 1.4-0.8-0.1-0.1c-0.4 0.2-0.7 0.2-0.9-0.2l-0.7-1.3 2.1-1.2 0.7 1.3c0.3 0.5 0.4 0.7-0.2 1.2h0.1l0.9-0.5-1.9-3.4h-0.2"/><path class="st2" d="m15.8 62.6c0.4 0.3 0.4 0.6-0.1 1.1l-2.3 2.8c-0.5 0.6-0.7 0.6-1.1 0.3l-0.1 0.1 3.2 2.6 0.9-0.7-0.1-0.1c-0.7 0.4-0.9 0.3-1.6-0.3l-0.8-0.6c-0.2-0.2-0.3-0.4-0.1-0.6l1.3-1.6 1.1 0.9c0.5 0.4 0.5 0.5 0.3 0.9l0.1 0.1 0.9-1.1-0.1-0.1c-0.4 0.3-0.5 0.3-0.8 0l-1.2-1 1.6-1.9 1.3 1c0.5 0.4 0.6 0.6 0.3 1.1l0.1 0.1 0.6-0.7-3.2-2.6-0.2 0.3"/><path class="st2" d="m24.3 68.2-2.4-1.1-0.1 0.2c0.4 0.2 0.5 0.5 0.2 1.1l-1.5 3.2c-0.3 0.6-0.6 0.7-1 0.6l-0.1 0.2 2.5 1.1c2 0.9 3.4 0.1 4-1.2 0.7-1.4 0.4-3.2-1.6-4.1m0.9 3.6c-0.7 1.4-1.8 2-3.1 1.4l-0.6-0.2c-0.5-0.2-0.6-0.5-0.2-1.3l1.8-3.8 1 0.5c1.6 0.7 1.7 2.2 1.1 3.4"/><path class="st2" d="m30.2 70.5c0.5 0.1 0.6 0.3 0.4 1l-0.7 3.5c-0.2 0.7-0.4 0.9-0.8 0.7v0.2l2 0.4v-0.2c-0.5-0.1-0.6-0.4-0.4-1l0.8-3.5c0.1-0.7 0.4-0.8 0.8-0.7v-0.2l-2-0.4-0.1 0.2"/><path class="st2" d="m39.9 71.3v0.2c0.5 0 0.7 0.2 0.7 0.9v3.4l-3.6-4.5h-1.5v0.2c0.7 0.1 0.9 0.4 0.9 1.1v3.4c0 0.8-0.2 1-0.7 1v0.2h1.7v-0.2c-0.5 0-0.8-0.2-0.8-0.8l-0.1-4 4.1 4.9h0.4v-4.7c0-0.7 0.2-0.9 0.7-0.9v-0.2h-1.8"/><path class="st2" d="m48.6 72.6c0.7-0.5 0.9-1 0.8-1.6-0.2-0.7-1-1.2-2.3-0.8l-2.1 0.6v0.2c0.5-0.1 0.7 0 0.9 0.7l0.9 3.4c0.2 0.7 0.1 0.9-0.4 1v0.2l2.5-0.7c1-0.3 1.6-1 1.4-1.8-0.1-0.8-0.8-1.3-1.7-1.2m-2.2-2 0.6-0.2c0.9-0.2 1.5 0.1 1.7 0.8s-0.2 1.3-1 1.5l-0.7 0.2zm2.4 4.8-0.5 0.1c-0.4 0.1-0.6 0-0.8-0.8l-0.4-1.6 0.5-0.1c1-0.3 1.7 0.1 2 0.9 0.2 0.8-0.3 1.3-0.8 1.5"/><path class="st2" d="m59.2 69.7-1.8-3.1c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.7 1 0.1 0.1c0.4-0.2 0.7-0.1 1 0.5l1.7 3c0 0.7-0.4 1.3-0.9 1.6-0.8 0.5-1.6 0.2-2-0.6l-1.6-2.4c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.1 0.1c0.4-0.2 0.6-0.2 1 0.5l1.4 2.4c0.5 0.9 1.5 1.4 2.7 0.7 0.7-0.4 1-0.9 1.2-1.8l0.4 0.7 1.2-0.7-0.1-0.1c-0.3 0.2-0.5 0.2-0.9-0.5"/><path class="st2" d="m64.1 63.3c0.4-0.8 0.3-1.4-0.2-1.8-0.5-0.5-1.5-0.6-2.4 0.3l-1.6 1.7 0.1 0.1c0.3-0.3 0.6-0.4 1.1 0.2l2.6 2.5c0.6 0.5 0.5 0.8 0.2 1.1l0.1 0.1 1.4-1.5-0.1-0.1c-0.3 0.3-0.6 0.3-1.1-0.2l-1.2-1.1 0.3-0.3c0.7-0.7 1.9 0 3.6 0.1l0.8-0.8-0.1-0.1c-0.7 0.6-2.3-0.5-3.5-0.2m-0.8 0.6-0.5 0.5-1.8-1.8 0.4-0.4c0.6-0.6 1.4-0.7 1.9-0.1 0.5 0.4 0.7 1.1 0 1.8"/><path class="st2" d="m70.8 54.8-0.1-0.1-1.2 2 0.1 0.1 0.1-0.2c0.2-0.4 0.5-0.4 1.1 0l0.5 0.3c0.4 0.3 0.2 0.8 0 1.1-0.7 1.2-2.3 1.4-3.7 0.5-1.3-0.8-1.8-2.1-1.1-3.1 0.4-0.7 1.3-1.3 2.3-0.8l0.1-0.1-1.4-0.9-0.1 0.2c0.1 0.1 0.1 0.2 0 0.4-0.2 0.4-0.6 0.5-1 1.2-0.7 1.2-0.6 3.1 1.2 4.2 1.1 0.7 2.9 0.8 4.2-1.4 0.1-0.2 0.6-1.1 0.7-1.4l-1.3-0.8c-0.5-0.5-0.7-0.7-0.4-1.2"/><path class="st2" d="m74.9 46.7-3.4-1c-0.7-0.2-0.8-0.4-0.7-0.9h-0.2l-0.6 2 0.2 0.1c0.1-0.5 0.4-0.6 1.1-0.4l1.6 0.5-0.9 3-1.6-0.5c-0.7-0.2-0.8-0.5-0.7-0.9h-0.2l-0.6 2h0.2c0.1-0.5 0.4-0.6 1.1-0.4l3.4 1c0.7 0.2 0.8 0.4 0.7 0.9h0.2l0.6-2h-0.2c-0.1 0.5-0.4 0.6-1.1 0.4l-1.5-0.5 0.9-3 1.6 0.5c0.7 0.2 0.8 0.4 0.7 0.9h0.2l0.6-2h-0.2c-0.2 0.4-0.5 0.5-1.2 0.3"/><path class="st2" d="m2 39.1c0 0.3 0.2 0.5 0.5 0.5s0.5-0.2 0.5-0.5-0.2-0.5-0.5-0.5-0.5 0.2-0.5 0.5"/><path class="st2" d="m74.7 39.1c0-0.3-0.2-0.5-0.5-0.5s-0.5 0.2-0.5 0.5 0.2 0.5 0.5 0.5 0.5-0.3 0.5-0.5"/></g></svg>
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md
new file mode 100644
index 0000000000..a7334244cd
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md
@@ -0,0 +1,301 @@
+# Manifest for gotham
+
+This file is a listing of all files considered to be part of this package.
+It is automatically generated with `l3build manifest`.
+
+
+## Repository manifest
+
+The following groups list the files included in the development repository of the package.
+Files listed with a ‘†’ marker are included in the TDS but not CTAN files, and files listed
+with ‘‡’ are included in both.
+
+### Source files
+
+These are source files for a number of purposes, including the `unpack` process which
+generates the installation files of the package. Additional files included here will also
+be installed for processing such as testing.
+
+* gotham.dtx ‡
+* gotham.ins ‡
+* gotham-logo.pdf ‡
+* gotham-layout.pdf ‡
+* gotham-blueprint.pdf ‡
+* gotham-safetybox.pdf ‡
+
+### Text files
+
+Plain text files included as documentation or metadata.
+
+* MANIFEST.md ‡
+* README.md ‡
+
+### Derived files
+
+The files created by ‘unpacking’ the package sources. This typically includes
+`.sty` and `.cls` files created from DocStrip `.dtx` files.
+
+* beamercolorthemegotham.sty †
+* beamerfontthemegotham.sty †
+* beamerinnerthemegotham.sty †
+* beamerouterthemegotham.sty †
+* beamerthemegotham.sty †
+* gotham-blueprint.pdf ‡
+* gotham-layout.pdf ‡
+* gotham-logo.pdf ‡
+* gotham-safetybox.pdf ‡
+
+### Support files
+
+These files are used for unpacking, typesetting, or checking purposes.
+
+* gotham-example169transp-1.png
+* gotham-example43dark-1.png
+* gotham-exampleSimple-1.png
+* gotham-logo.png
+* gotham-test-035-a.png
+* gotham-test-035-b.png
+
+### Test files
+
+These files form the test suite for the package. `.lvt` or `.lte` files are the individual
+unit tests, and `.tlg` are the stored output for ensuring changes to the package produce
+the same output. These output files are sometimes shared and sometime specific for
+different engines (pdfTeX, XeTeX, LuaTeX, etc.).
+
+* gotham-test-001.lvt
+* gotham-test-035.lvt
+* gotham-test-037.lvt
+* gotham-test-040.lvt
+* gotham-test-043.lvt
+* gotham-test-044.lvt
+* gotham-test-045.lvt
+* gotham-test-1002.lvt
+* gotham-test-1002b.lvt
+* gotham-test-1003.lvt
+* gotham-test-1003b.lvt
+* gotham-test-1004.lvt
+* gotham-test-1005.lvt
+* gotham-test-1006.lvt
+* gotham-test-1007.lvt
+* gotham-test-1007b.lvt
+* gotham-test-1008.lvt
+* gotham-test-1009.lvt
+* gotham-test-1010.lvt
+* gotham-test-1011.lvt
+* gotham-test-1012.lvt
+* gotham-test-1013.lvt
+* gotham-test-1014.lvt
+* gotham-test-1015.lvt
+* gotham-test-1016.lvt
+* gotham-test-1017.lvt
+* gotham-test-1018.lvt
+* gotham-test-1019.lvt
+* gotham-test-1020.lvt
+* gotham-test-1021.lvt
+* gotham-test-1022.lvt
+* gotham-test-1024.lvt
+* gotham-test-1025.lvt
+* gotham-test-1026.lvt
+* gotham-test-1027.lvt
+* gotham-test-1028.lvt
+* gotham-test-1031.lvt
+* gotham-test-1032.lvt
+* gotham-test-1037.lvt
+* gotham-test-001.lve
+* gotham-test-035.luatex.tlg
+* gotham-test-035.tlg
+* gotham-test-035.xetex.tlg
+* gotham-test-037.luatex.tlg
+* gotham-test-037.tlg
+* gotham-test-037.xetex.tlg
+* gotham-test-040.luatex.tlg
+* gotham-test-040.tlg
+* gotham-test-040.xetex.tlg
+* gotham-test-043.luatex.tlg
+* gotham-test-043.tlg
+* gotham-test-043.xetex.tlg
+* gotham-test-044.luatex.tlg
+* gotham-test-044.tlg
+* gotham-test-044.xetex.tlg
+* gotham-test-045.luatex.tlg
+* gotham-test-045.tlg
+* gotham-test-045.xetex.tlg
+* gotham-test-1002.luatex.tlg
+* gotham-test-1002.tlg
+* gotham-test-1002.xetex.tlg
+* gotham-test-1002b.luatex.tlg
+* gotham-test-1002b.tlg
+* gotham-test-1002b.xetex.tlg
+* gotham-test-1003.luatex.tlg
+* gotham-test-1003.tlg
+* gotham-test-1003.xetex.tlg
+* gotham-test-1003b.luatex.tlg
+* gotham-test-1003b.tlg
+* gotham-test-1003b.xetex.tlg
+* gotham-test-1004.luatex.tlg
+* gotham-test-1004.tlg
+* gotham-test-1004.xetex.tlg
+* gotham-test-1005.luatex.tlg
+* gotham-test-1005.tlg
+* gotham-test-1005.xetex.tlg
+* gotham-test-1006.luatex.tlg
+* gotham-test-1006.tlg
+* gotham-test-1006.xetex.tlg
+* gotham-test-1007.luatex.tlg
+* gotham-test-1007.tlg
+* gotham-test-1007.xetex.tlg
+* gotham-test-1007b.luatex.tlg
+* gotham-test-1007b.tlg
+* gotham-test-1007b.xetex.tlg
+* gotham-test-1008.luatex.tlg
+* gotham-test-1008.tlg
+* gotham-test-1008.xetex.tlg
+* gotham-test-1009.luatex.tlg
+* gotham-test-1009.tlg
+* gotham-test-1009.xetex.tlg
+* gotham-test-1010.luatex.tlg
+* gotham-test-1010.tlg
+* gotham-test-1010.xetex.tlg
+* gotham-test-1011.luatex.tlg
+* gotham-test-1011.tlg
+* gotham-test-1011.xetex.tlg
+* gotham-test-1012.luatex.tlg
+* gotham-test-1012.tlg
+* gotham-test-1012.xetex.tlg
+* gotham-test-1013.luatex.tlg
+* gotham-test-1013.tlg
+* gotham-test-1013.xetex.tlg
+* gotham-test-1014.luatex.tlg
+* gotham-test-1014.tlg
+* gotham-test-1014.xetex.tlg
+* gotham-test-1015.luatex.tlg
+* gotham-test-1015.tlg
+* gotham-test-1015.xetex.tlg
+* gotham-test-1016.luatex.tlg
+* gotham-test-1016.tlg
+* gotham-test-1016.xetex.tlg
+* gotham-test-1017.luatex.tlg
+* gotham-test-1017.tlg
+* gotham-test-1017.xetex.tlg
+* gotham-test-1018.luatex.tlg
+* gotham-test-1018.tlg
+* gotham-test-1018.xetex.tlg
+* gotham-test-1019.luatex.tlg
+* gotham-test-1019.tlg
+* gotham-test-1019.xetex.tlg
+* gotham-test-1020.luatex.tlg
+* gotham-test-1020.tlg
+* gotham-test-1020.xetex.tlg
+* gotham-test-1021.luatex.tlg
+* gotham-test-1021.tlg
+* gotham-test-1021.xetex.tlg
+* gotham-test-1022.luatex.tlg
+* gotham-test-1022.tlg
+* gotham-test-1022.xetex.tlg
+* gotham-test-1024.luatex.tlg
+* gotham-test-1024.tlg
+* gotham-test-1024.xetex.tlg
+* gotham-test-1025.luatex.tlg
+* gotham-test-1025.tlg
+* gotham-test-1025.xetex.tlg
+* gotham-test-1026.luatex.tlg
+* gotham-test-1026.tlg
+* gotham-test-1026.xetex.tlg
+* gotham-test-1027.luatex.tlg
+* gotham-test-1027.tlg
+* gotham-test-1027.xetex.tlg
+* gotham-test-1028.luatex.tlg
+* gotham-test-1028.tlg
+* gotham-test-1028.xetex.tlg
+* gotham-test-1031.luatex.tlg
+* gotham-test-1031.tlg
+* gotham-test-1031.xetex.tlg
+* gotham-test-1032.luatex.tlg
+* gotham-test-1032.tlg
+* gotham-test-1032.xetex.tlg
+* gotham-test-1037.luatex.tlg
+* gotham-test-1037.tlg
+* gotham-test-1037.xetex.tlg
+
+
+## TDS manifest
+
+The following groups list the files included in the TeX Directory Structure used to install
+the package into a TeX distribution.
+
+### Source files (TDS)
+
+All files included in the `gotham/source` directory.
+
+* gotham.dtx
+* gotham.ins
+
+### TeX files (TDS)
+
+All files included in the `gotham/tex` directory.
+
+* beamercolorthemegotham.sty
+* beamerfontthemegotham.sty
+* beamerinnerthemegotham.sty
+* beamerouterthemegotham.sty
+* beamerthemegotham.sty
+* gotham-blueprint.pdf
+* gotham-layout.pdf
+* gotham-logo.pdf
+* gotham-safetybox.pdf
+
+### Doc files (TDS)
+
+All files included in the `gotham/doc` directory.
+
+* MANIFEST.md
+* README.md
+* ctan.ann
+* ctan.note
+* gotham-dev-impl.pdf
+* gotham-doc.pdf
+* gotham-doc.tex
+* gotham-example169transp.pdf
+* gotham-example169transp.tex
+* gotham-example43dark.pdf
+* gotham-example43dark.tex
+* gotham-exampleSimple.pdf
+* gotham-exampleSimple.tex
+* gotham-user-cmds.pdf
+* gotham.pdf
+* section-Beamer.tex
+* section-Conclusion.tex
+* section-Gotham.tex
+
+
+## CTAN manifest
+
+The following group lists the files included in the CTAN package.
+
+### CTAN files
+
+* MANIFEST.md
+* README.md
+* ctan.ann
+* ctan.note
+* gotham-blueprint.pdf
+* gotham-dev-impl.pdf
+* gotham-doc.pdf
+* gotham-doc.tex
+* gotham-example169transp.pdf
+* gotham-example169transp.tex
+* gotham-example43dark.pdf
+* gotham-example43dark.tex
+* gotham-exampleSimple.pdf
+* gotham-exampleSimple.tex
+* gotham-layout.pdf
+* gotham-logo.pdf
+* gotham-safetybox.pdf
+* gotham-user-cmds.pdf
+* gotham.dtx
+* gotham.ins
+* gotham.pdf
+* section-Beamer.tex
+* section-Conclusion.tex
+* section-Gotham.tex
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md
new file mode 100644
index 0000000000..82fa92e641
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md
@@ -0,0 +1,127 @@
+# Gotham Beamer Theme
+
+<!-- Logo -->
+<p align="center">
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham">
+ <img src="support/gotham-logo.png" width="100" alt="Gotham logo">
+ </a>
+</p>
+
+<!-- BADGES -->
+<p align="center">
+ <a href="https://ctan.org/pkg/gotham"><img src="https%3A%2F%2Fctan.org%2Fjson%2F2.0%2Fpkg%2Fgotham&query=%24.version.number&logo=latex&label=CTAN"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/release/"><img src="https://img.shields.io/badge/Latest_Release-%{latest_tag}-blue"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/pipelines?page=1&scope=all&ref=main"><img src="https://gitlab.com/RomainNOEL/beamertheme-gotham/badges/main/pipeline.svg"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/blob/main/LICENSE.txt"><img src="https://img.shields.io/badge/License-LPPL_1.3c--Clause-blue.svg"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/artifacts/"><img src="https://img.shields.io/badge/Documentation-PDF_online-green"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/blob/main/Authors.md"><img src="https://www.repostatus.org/badges/latest/active.svg"/></a>
+</p>
+
+
+## What is Gotham ?
+This `Gotham` package is a modern, minimal-ish, versatile and extendable theme for your `Beamer` presentations using `LaTeX(3)`.
+
+
+## Table of Contents
+[[_TOC_]]
+
+
+## Why this package ?
+ONCE UPON THE TIME, I was adapting `Metropolis` Beamer theme to get my institutional templates.
+Indeed, `Metropolis` Beamer theme is a great work that is very convenient and well appreciated by many.
+
+BUT, `Metropolis` seems not maintained anymore and is not flexible enough.
+Moreover, `Metropolis` (or its successor initiative Moloch) and Beamer in some extends are not very flexible.
+For example, it requires cumbersome modifications to apply a different background for your section frames.
+
+SO, `Gotham` tries to bring that kind of flexibility and `LaTeX3` implementation on top of the good-looking `Metropolis` theme.
+
+
+## See it in action
+Here are some screenshot of what you can obtain:
+
+<img src="support/gotham-example169transp-1.png" width="700">
+
+<img src="support/gotham-example43dark-1.png" width="700">
+
+An `pdf` example/demo result is available [here](https://gitlab.com/RomainNOEL/beamertheme-gotham/-/artifacts/), and the `tex` source file to build it is available [here](/examples/section-Gotham.tex).
+
+The following code shows a **minimal example** of a Beamer presentation using Gotham.
+```latex
+\documentclass{beamer}
+\usetheme{gotham}
+\title{A minimal example}
+\date{\today}
+\author{Romain NOEL}
+\institute{Centre for Modern Beamer Themes}
+\begin{document}
+ \maketitle
+ \section{First Section}
+ \begin{frame}{First Frame}
+ Hello, world!
+ \end{frame}
+\end{document}
+```
+is yielding the following:
+
+<img src="support/gotham-exampleSimple-1.png" width="700">
+
+
+## Some of the features included
+- `l3build` a build system for LaTeX that unpack the sources, build the documentation and examples, run unit tests, check tags, prepare for CTAN publishing, etc...
+- `expl3`
+- dark, light and transparent theme
+- can adapt to 16:9 and 4:3 screen format
+- progress bar
+- **can mix** themes
+
+
+## Documentation
+The complete `pdf` documentation can be found through an [artefact](https://gitlab.com/RomainNOEL/beamertheme-gotham/-/artifacts/).
+
+
+## How to install ?
+Several possibilities are available and tested:
+- download the `.sty` released zip files,
+- build from sources using `l3build`,
+- download or update from [CTAN](https://ctan.org/pkg/beamertheme-gotham),
+- fork a example from [Overleaf](https://overleaf.com) .
+
+### Download from release
+The zip file containing the `.sty` files is downloadable through our latest [release link](https://gitlab.com/RomainNOEL/beamertheme-gotham/-/releases/)
+
+### Build from sources
+You can also install the theme from sources, in which case you need a working LaTeX installation with `l3build` installed.
+Then just follow these steps:
+```bash
+git clone https://gitlab.com/RomainNOEL/beamertheme-gotham.git
+cd beamertheme-gotham
+l3build install
+```
+
+Additionally you can use the other `l3build` target:
+- `l3build unpack` builds the theme style files.
+- `l3build doc` builds this documentation manual and the examples.
+- `l3build check` builds the theme and manual.
+- `l3build install` installs the theme into your local texmf folder.
+- STOP unless you want remove it.
+- `l3build uninstall` removes the theme from your local texmf folder.
+- `l3build clean` removes the files generated by `l3build`.
+
+### Download from CTAN
+The CTAN repository is available through the Gotham [package](https://ctan.org/pkg/beamertheme-gotham), so you can install it using your favorite LaTeX package manager. For example, with `tlmgr`:
+```bash
+tlmgr install beamertheme-gotham
+```
+
+### Fork from Overleaf example
+If you want to play with it before installing, you can fork this [Overleaf project](https://overleaf.com) and have fun.
+
+
+## License
+The LaTeX Project Public License [(LPPL)](/LICENSE.txt)
+
+
+## Project status
+The status of the project is "maintained".
+However, if you have a bit of free time and good will to help the maintenance, it will be very appreciated and welcomed. \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann
new file mode 100644
index 0000000000..e34df0a4c6
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann
@@ -0,0 +1,11 @@
+# [Gotham](https://gitlab.com/RomainNOEL/beamertheme-gotham) announcement
+
+This `Gotham` package is a modern, minimal-ish, versatile and extendable theme for your `Beamer` presentations using `LaTeX(3)`.
+`Gotham` tries to bring higher flexibility thanks to `LaTeX3` implementation on top of the good-looking `Metropolis` theme.
+
+## Features
+- 16:9 and 4:3 compatible
+- supports different background color (dark and light)
+- can adapt beamertemplate to declared context
+- extend color set
+- improved progress bars
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.note b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.note
new file mode 100644
index 0000000000..ff43a42640
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.note
@@ -0,0 +1,3 @@
+Please see the file `gotham-exampleSimple.tex` in:
+doc/latex/gotham/examples/gotham-exampleSimple.tex
+Thanks \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdf
new file mode 100644
index 0000000000..04975af210
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdf
new file mode 100644
index 0000000000..1038810b5b
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdf
new file mode 100644
index 0000000000..3f6105497a
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex
new file mode 100644
index 0000000000..4072ea2504
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex
@@ -0,0 +1,1094 @@
+\documentclass{l3doc}
+ \usepackage[T1]{fontenc}
+ \usepackage{pdfpages}
+ \usepackage{standalone}
+ % \usepackage{gotham}
+ % \usepackage{readprov}
+ % \ReadPackageInfos{beamerthemegotham}
+ \edef\GothamVersion{v1.1.0.b} %{\fileversion}
+ \edef\GothamDate{2024-09-20} %{\filedate}
+
+
+ \usepackage{parskip}
+ \usepackage{setspace}
+ \usepackage{xspace}
+ \onehalfspacing
+
+ \usepackage{xcolor}
+ \definecolor{tPrim}{HTML}{00707F} % Green-Blue
+ \definecolor{tSec}{HTML}{5FA4B0} % Green-Blue light
+ \definecolor{tAccent}{HTML}{F07F3C} % Orange
+ \definecolor{tGrey}{HTML}{E6E6E1} % Grey-Beige
+
+ \usepackage{listings}
+ \lstset{%
+ language=[LaTeX]{TeX},
+ basicstyle=\ttfamily,
+ keywordstyle=\color{tPrim}\bfseries,
+ commentstyle=\color{tSec},
+ stringstyle=\color{tSec},
+ backgroundcolor=\color{white},
+ numbers=none,
+ numberstyle=\tiny\ttfamily,
+ stepnumber=2,
+ showspaces=false,
+ showstringspaces=false,
+ showtabs=false,
+ frame=none,
+ framerule=1pt,
+ tabsize=2,
+ rulesep=5em,
+ captionpos=b,
+ breaklines=true,
+ breakatwhitespace=false,
+ framexleftmargin=0em,
+ framexrightmargin=0em,
+ xleftmargin=0em,
+ xrightmargin=0em,
+ aboveskip=1em,
+ belowskip=1em,
+ morekeywords={\usetheme,\institute,\maketitle,\subtitle,
+ \gothamset,
+ \colorlet,\setbeamercolor,
+ plain,\defbeamertemplate
+ },
+ }
+ \lstMakeShortInline|
+
+ \usepackage{hyperref}
+
+ \setlength{\fboxsep}{0pt}%
+ \usepackage{subcaption} % for subfigures
+ \usepackage{cleveref} % for references
+
+ \providecommand{\defopt}[1]{default: #1}%{\underline{#1}}
+ \newenvironment{DescribeGothamOption}[3]{
+ \DescribeOption{#1} % from l3doc
+ \begin{minipage}[t]{\textwidth}
+ \textit{\textbf{\textcolor{tSec}{#2}}}\dotfill\,\defopt{#3}\par
+ \begingroup
+ \vspace{0.5em}
+ }{
+ \par
+ \endgroup
+ \end{minipage}
+ }
+
+
+%% =====================================================================
+\title{\textsc{Gotham}\\ A modern, minimal-ish, versatile and extendable theme for Beamer}
+\author{Romain NOEL \\ \url{romainoel@free.fr}}
+\date{\GothamVersion~---~\GothamDate}
+
+\providecommand{\themename}{\textbf{\textsc{Gotham}}\xspace}
+
+%% =====================================================================
+
+
+\begin{document}
+\maketitle
+\tableofcontents
+
+
+%% ------------------------------------
+\section{Introduction}
+ Beamer is an awesome way to make presentations with \LaTeX, but its theme selection is surprisingly sparse.
+ The stock themes share an aesthetic that can be a little cluttered, while the few distinctive custom themes available are often specialized for a particular corporate or institutional brand.
+
+ The goal of \themename is to provide a simple, modern Beamer theme suitable for anyone to use.
+ It tries to minimize noise and maximize space for content; some visual flourishes are offered as options.
+
+ The final product provides a modern, elegant and versatile theme with a high degree of customization.
+ So it can easily be used to build a particular corporate or institutional brand theme on top of it.
+
+ The implementation of this theme is strongly inspired from the excellent \href{https://github.com/matze/mtheme}{\textsc{Metropolis}} theme by Matthias Vogelgesang, from which it borrows numerous options.
+ \themename's codebase lives on
+ \href{https://gitlab.com/RomainNOEL/beamertheme-gotham} {Gitlab}.
+ \newline
+ If you have issues, find mistakes in the manual or want to help make the theme even better, please get in touch there.
+ Any feature request, issue report or merge requests are welcome.
+
+
+%% ------------------------------------
+\section{Getting Started}
+\subsection{Installing from CTAN}
+ The latest stable version of \themename is available on
+ \href{https://ctan.org/pkg/beamertheme-gotham}{CTAN} and should now be part of the usual \TeX\ distributions (\TeX\ Live, Mac\TeX\ , Mik\TeX\ ), under the name \textit{beamertheme-gotham}.
+ It means that if your distribution is kept up-to-date, the package should normally be already installed on your system.
+ If this is not the case, consider updating the packages of your Tex distribution.
+
+ For \TeX\ Live and Mac\TeX\ users, this usually means running
+ \begin{lstlisting}
+ tlmgr update --all
+ \end{lstlisting}
+ or if administrative privileges are required
+ \begin{lstlisting}
+ sudo tlmgr update --all
+ \end{lstlisting}
+
+ For Mik\TeX\ users, please refer to \href{https://miktex.org/howto/update-miktex}{the official Mik\TeX\ documentation}.
+
+
+\subsection{Installing from Gitlab}
+ If you want to use the cutting-edge development version of \themename, you can install it manually by following these steps:
+ \begin{description}
+ \item[Download the source] from
+ \href{https://gitlab.com/RomainNOEL/beamertheme-gotham}{\themename repository}
+ using |git clone| or as a
+ \href{https://gitlab.com/RomainNOEL/beamertheme-gotham/-/archive/master/beamertheme-gotham-master.zip}{zip archive}
+ of the latest development version.
+ \item[Compile the style files] by running |l3build unpack| inside the downloaded directory.
+ (Or run \LaTeX{} directly on |source/gothamtheme.ins|.)
+ \item[Move the resulting |*.sty| files] to the folder containing your presentation.
+ To use \themename with many presentations, run
+ |l3build install| or move the |*.sty| files to a folder in your \TeX{} path instead.
+ \item[Use the theme] by declaring \lstinline|\usetheme{gotham}| in the preamble of your document.
+ \end{description}
+
+ \themename uses the l3build system to offer the following installation options for advanced users:
+ \begin{description}
+ \item[|l3build unpack|] builds the theme style files.
+ \item[|l3build doc|] builds this documentation manual and the examples.
+ \item[|l3build check|] builds the theme and manual.
+ \item[|l3build clean|] removes the files generated by |l3build|.
+ \item[|l3build install|] installs the theme into your local texmf folder.
+ \item[|l3build uninstall|] removes the theme from your local texmf folder.
+ \end{description}
+
+
+% \subsection{Overleaf}
+% \themename is therefore automatically supported for new documents.
+% If you want to switch older documents to use the \themename theme, you need to \href{https://www.overleaf.com/blog/new-feature-select-your-tex-live-compiler-version}{select
+% TexLive 2021 or higher as your TeX Live version} (this may cause issues with other packages used in your presentation).
+
+% In addition to that, a template project was created and is publicly available in the \href{https://www.overleaf.com/latex/templates/gotham-beamer-theme/wjyyzvdzqkgf}{Overleaf Gallery} to bootstrap your presentation.
+
+
+%% ------------------------------------
+\subsection{A Minimal Example}
+ The following code shows a minimal example of a Beamer presentation using \themename, and the output generated is given on \cref{fig-minimal}.
+
+ \begin{lstlisting}
+ \documentclass{beamer}
+ \usetheme{gotham} % Loads Gotham theme
+ \title{A minimal example}
+ \subtitle{using Gotham theme}
+ \date{\today}
+ \author{John DOE}
+ \institute{Your university or company}
+
+ \begin{document}
+ \maketitle
+ \section{First Section}
+ \begin{frame}{First Frame}
+ Hello world !
+ \end{frame}
+ \end{document}
+ \end{lstlisting}
+
+ \begin{figure}[htp]
+ \centering
+ \fbox{\includegraphics[width=0.7\textwidth]{gotham-exampleSimple.pdf}}
+ \caption{A simple example.}
+ \label{fig-minimal}
+ \end{figure}
+
+
+\subsection{Dependencies}
+ \themename depends on the |beamer| class and the following standard packages:
+ \begin{itemize}
+ \item |tikz|
+ \item |expl3|
+ \item |xfp|
+ \item |etoolbox|
+ \item |ifxetex|
+ \item |ifluatex|
+ \end{itemize}
+
+ For best results, we recommend installing the fonts
+ \href{https://github.com/mozilla/Fira}{|Fira Sans|} and |Fira Mono| and compiling with \themename using XeLaTeX or LuaTeX.
+ These are optional dependencies; \themename is compatible with (e.g.) pdf\LaTeX\ and will fall back to standard fonts if |Fira Sans| or |Fira Mono| is not installed.
+
+ The packaged name of |Fira Sans| is |Fira Sans OT| in some Linux distributions; this case is automatically handled by \themename.
+
+
+%% ------------------------------------
+\section{Customization}
+\subsection{Package options}
+ \themename provides a number of options, which can be set using a key=value interface.
+ The primary way to set options is to provide a comma-separated list of option-value pairs when loading \themename in the preamble:
+ \begin{lstlisting}[gobble=2]
+ \usetheme[option1=value1, option2=value2, ...]{gotham}
+ \end{lstlisting}
+
+ Options can be changed at any time --- even mid-presentation ! --- with the |\gothamset| command.
+ \begin{lstlisting}[gobble=2]
+ \gothamset{option1=newvalue1, option2=newvalue2, ...}
+ \end{lstlisting}
+
+ The list of options is structured as shown in the following example.
+
+ \begin{DescribeGothamOption}{option key}
+ {list of possible values}{default}
+ A short description of the option.
+ \end{DescribeGothamOption}
+
+ As \themename implementation is heavily inspired from the excellent
+ \href{https://github.com/matze/mtheme}{\textsc{Metropolis}} theme by Matthias Vogelgesang, many of \textsc{Metropolis} options are also available in \themename.
+
+
+\subsubsection{Font theme}
+ \DescribeOption{format title}
+ % \begin{DescribeGothamOption}{format title}
+ % {regular, lower, upper, titlecase}{regular}{
+ % A short description of the option.
+ % \end{DescribeGothamOption}
+ \DescribeOption{format subtitle}
+ % \begin{DescribeGothamOption}{format subtitle}
+ % {regular, lower, upper, titlecase}{regular}{
+ % A short description of the option.
+ % \end{DescribeGothamOption}
+ \DescribeOption{format frametitle}
+ % \begin{DescribeGothamOption}{format frametitle}
+ % {regular, lower, upper, titlecase}{regular}{
+ % A short description of the option.
+ % \end{DescribeGothamOption}
+ \DescribeOption{format framesubtitle}
+ % \begin{DescribeGothamOption}{format framesubtitle}
+ % {regular, lower, upper, titlecase}{regular}{
+ % A short description of the option.
+ % \end{DescribeGothamOption}
+ \DescribeOption{format part}
+ % \begin{DescribeGothamOption}{format part}
+ % {regular, lower, upper, titlecase}{regular}{
+ % A short description of the option.
+ % \end{DescribeGothamOption}
+ \DescribeOption{format section}
+ % \begin{DescribeGothamOption}{format section}
+ % {regular, lower, upper, titlecase}{regular}{
+ % A short description of the option.
+ % \end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{format subsection}
+ {regular, lower, upper, titlecase}{regular}
+ Individually controls the format/case of titles, subtitles, frametitle, framesubtitles, part, section and subsection titles.
+ \vspace{6em}
+ \end{DescribeGothamOption}
+
+ \DescribeOption{shape title}
+ % \begin{DescribeGothamOption}{shape title}
+ % {regular, italic, smallcaps}{regular}{
+ % A short description of the option.
+ % \end{DescribeGothamOption}
+ \DescribeOption{shape subtitle}
+ % \begin{DescribeGothamOption}{shape subtitle}
+ % {regular, italic, smallcaps}{regular}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{shape frametitle}
+ % \begin{DescribeGothamOption}{shape frametitle}
+ % {regular, italic, smallcaps}{regular}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{shape framesubtitle}
+ % \begin{DescribeGothamOption}{shape framesubtitle}
+ % {regular, italic, smallcaps}{regular}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{shape part}
+ % \begin{DescribeGothamOption}{shape part}
+ % {regular, italic, smallcaps}{regular}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{shape section}
+ % \begin{DescribeGothamOption}{shape section}
+ % {regular, italic, smallcaps}{regular}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{shape subsection}
+ {regular, italic, smallcaps}{regular}{
+ Individually controls the shape/series of titles, subtitles, frametitle, framesubtitles, part, section and subsection titles.
+ \vspace{6em}
+ }\end{DescribeGothamOption}
+
+ \begin{figure}[htb]
+ \centering
+ \begin{subfigure}[b]{0.475\textwidth}
+ \centering
+ \includegraphics[width=\linewidth]{gotham-test-035-a.png}
+ \caption{Example of |format~frametitle=titlecase, shape~frametitle=smallcaps, format~framesubtitle= lower, shape~framesubtitle=regular|.}
+ \label{fig-035-a}
+ \end{subfigure}
+ \begin{subfigure}[b]{0.475\textwidth}
+ \centering
+ \includegraphics[width=\linewidth]{gotham-test-035-b.png}
+ \caption{Example of |format~frametitle=lower, shape~frametitle=italic, format~framesubtitle= regular, shape~framesubtitle=italic|.}
+ \label{fig-035-b}
+ \end{subfigure}
+ \caption{Examples of format and shape settings.}
+ \label{fig-035}
+ \end{figure}
+
+
+\subsubsection{Color theme}
+ The included \themename color theme is used by default, but its colors can be easily changed to suit your tastes.
+ All of the theme's styles are defined in terms of a few main colors:
+ \begin{itemize}
+ \item |colorA| The primary theme color, used for frametitle, standout and text if the appropriate options are selected.
+ \end{itemize}
+
+ An easy way to customize the theme is to redefine these colors using:
+ \begin{lstlisting}
+ \colorlet{colorPale}{gPaleYell} % BG in light/normal mode
+ \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode
+ \colorlet{colorA}{gDarkTeal} % frametitle, standin.out,
+ \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in,
+ \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks
+ \colorlet{colorC}{gDeepYellOr} % progress bar
+ \colorlet{colorD}{gLightOrange} % alert
+ \colorlet{colorE}{gLightGreen} % example
+ \end{lstlisting}
+
+ \begin{DescribeGothamOption}{background}{light, dark, transparent}{transparent}{
+ Controls weather the color of all headings (title page, frame title, etc.) should be in black (|default|) or in a slightly darker shade of the theme color |theme|.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{colorset}
+ {red, anthracite}{anthracite}{% blue, green, orange, teal,
+ Predefined set colors (|colorA, colorB, ...|) leading to different ambiances.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{block}{native, transparent, fill}{native}{
+ Optionally adds a light grey background to block environments like |theorem| and |example|.
+ }\end{DescribeGothamOption}
+
+
+\subsubsection{Inner theme}
+ \begin{DescribeGothamOption}{title page}
+ {gotham~normal, gotham~reversed, gotham~dividedpic, gotham~splitvert, <your-name>}{gotham~normal}{
+ By setting this option you can change the title page according predefined style or even set your own template.
+ If you want to use your own template, this latter should be previously defined with:
+ \lstinline|\defbeamertemplate{title page}{<your-name>}{<your-defintion>}|.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{watermark default}
+ {on, off}{off}{
+ Enable or disable the watermark background template by default (ie. without using |\begin{frame}[watermark]|).
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{watermark template}
+ {gotham~draft, <your-name>}{gotham~draft}{
+ Set the watermark background template to use when the |watermark| option is activated (by default or locally).
+ If you want to use your own template, this latter should be previously defined with:
+ \lstinline|\defbeamertemplate{background}{watermark/<your-name>}{<your-defintion>}|.
+ }\end{DescribeGothamOption}
+
+ \DescribeOption{standin template}
+ % \begin{DescribeGothamOption}{standin template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{standout template}
+ {gotham, <your-name>}{default}{
+ Set the standin and stantout background template to use when the |standin| or |stantout| frame option is activated.
+ If you want to use your own template, this latter should be previously defined with:
+ \lstinline|\defbeamertemplate{background}{standin/<your-name>}{<your-defintion>}|.
+ }\end{DescribeGothamOption}
+
+
+ \DescribeOption{partframe default}
+ % \begin{DescribeGothamOption}{partframe default}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{sectionframe default}
+ % \begin{DescribeGothamOption}{sectionframe default}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{subsectionframe default}
+ % \begin{DescribeGothamOption}{subsectionframe default}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{subsubsectionframe default}
+ {on, off}{on}{
+ Enable or disable the display of the part frame (section, subsection and subsubsection respectively) at each part (other respectively) increment.
+ \vspace{1em}
+ }\end{DescribeGothamOption}
+
+ \DescribeOption{partframe template}
+ % \begin{DescribeGothamOption}{partframe template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{sectionframe template}
+ % \begin{DescribeGothamOption}{sectionframe template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{subsectionframe~template}
+ % \begin{DescribeGothamOption}{subsectionframe template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{subsubsectionframe~template}
+ {gotham progressbar, gotham simple, gotham splitvert progressbar, gotham splitvert simple, gotham progressvert}{gotham progressbar}{
+ Set the frame template to use when the |part| (or |section|, |subsection|, |subsubsection| respectively) frame option is activated (ie. using |\begin{frame}[part]|).
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ \lstinline|\defbeamertemplate{part frame}{<your-name>}{<your-defintion>}|.
+ % \vspace{3em}
+ }\end{DescribeGothamOption}
+
+
+ \begin{DescribeGothamOption}{tocframe template}
+ {gotham simple, gotham bullet, <your-name>}{gotham bullet}{
+ Set the table of contents template to use when the |toc| option is activated.
+ If you want to use your own template, this latter should be previously defined with:
+ % \lstinline|
+ \begin{lstlisting}[gobble=6]
+ \defbeamertemplate{part in toc}{<your-name>}{<your-defintion>}
+ \defbeamertemplate{section in toc}{<your-name>}{<your-defintion>}
+ \defbeamertemplate{subsection in toc shaded}{<your-name>}{<your-defintion>}
+ \defbeamertemplate{subsubsection in toc shaded}{<your-name>}{<your-defintion>}
+ \defbeamertemplate{background canvas}{toc/<your-name>}{<your-definition>}
+ \defbeamertemplate{toc page}{<your-name>}{<your-defintion, set them now by exmaple>}
+ \end{lstlisting}
+ % |.
+ }\end{DescribeGothamOption}
+
+ \DescribeOption{parttocframe default}
+ % \begin{DescribeGothamOption}{parttocframe default}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{sectiontocframe default}
+ % \begin{DescribeGothamOption}{sectiontocframe default}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{subsectiontocframe default}
+ % \begin{DescribeGothamOption}{subsectiontocframe default}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{subsubsectiontocframe~default}
+ {on, off}{default}{
+ Enable or disable the display of the table of content frame after the part frame (section, subsection and subsubsection respectively) at each part (other respectively) increment.
+ \vspace{1em}
+ }\end{DescribeGothamOption}
+
+ \DescribeOption{parttocframe template}
+ % \begin{DescribeGothamOption}{parttocframe template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{sectiontocframe template}
+ % \begin{DescribeGothamOption}{sectiontocframe template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \DescribeOption{subsectiontocframe~template}
+ % \begin{DescribeGothamOption}{subsectiontocframe template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{subsubsectiontocframe~tem..}
+ {gotham simple, gotham bullet, <your-name>}{gotham bullet}{
+ Set the frame template to use when the table of contents at each new |part| (or |section|, |subsection|, |subsubsection| respectively).
+ This new frame is internally using the |tocpart| frame option to activate the frame template.
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ \lstinline|\defbeamertemplate{part frame}{<your-name>}{<your-defintion>}|.
+ % \vspace{3em}
+ }\end{DescribeGothamOption}
+
+ % \begin{figure}[h!]
+ % \begin{subfigure}[b]{0.3\textwidth}
+ % \fbox{\includegraphics[width=\textwidth]{screenshots/layout_example-04.jpg}}
+ % \caption*{plain (default)}
+ % \end{subfigure}
+ % \hspace{\fill}
+ % \begin{subfigure}[b]{0.3\textwidth}
+ % \fbox{\includegraphics[width=\textwidth]{screenshots/layout_example-05.jpg}}
+ % \caption*{style1}
+ % \end{subfigure}
+ % \hspace{\fill}
+ % \begin{subfigure}[b]{0.3\textwidth}
+ % \fbox{\includegraphics[width=\textwidth]{screenshots/layout_example-06.jpg}}
+ % \caption*{style2}
+ % \end{subfigure}
+ % \end{figure}
+
+
+\subsubsection{Outer theme}
+ \DescribeOption{sidebar~canvas~right~template}
+ % \begin{DescribeGothamOption}{subsectiontocframe template}
+ % {list of possible values}{default}{
+ % A short description of the option.
+ % }\end{DescribeGothamOption}
+ \begin{DescribeGothamOption}{sidebar~canvas~left~template}
+ {~gotham~filigrane, empty, <your-name>}{gotham~filigrane}{
+ Setting templates for left and right sidebar canvas which are activated when giving the frame option |\begin{frame}[edging]|.
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ \lstinline|\defbeamertemplate{sidebar canvas right}{default/<your-name>}{<your-defintion>}|
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{edging default}
+ {on, off}{off}{
+ The option |edging default=on| can enable the |sidebar canvas right| (and |sidebar canvas left|) templates on every frame; but it can still be turned off for specific frames when using the frame option |\begin{frame}[noedging]|.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{frametitle template}
+ {gotham~subsameline, gotham~subnewline, <your-name>}{gotham~subsameline}{
+ Option to set the frametitle template.
+ \themename{} offers one template that adds the subtitle on the same line (|gotham~subsameline|) and one that adds the subtitle on a new line (|gotham~subnewline|).
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ \lstinline|\defbeamertemplate{frametitle}{default/<your-name>}{<your-defintion>}|
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{framesubtitle template}
+ {gotham~subnewline, <your-name>}{gotham~subnewline}{
+ Setting the template to use when the subtitle is on a new line.
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ \lstinline|\defbeamertemplate{framesubtitle}{default/<your-name>}{<your-defintion>}|
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{frametitle continuation template}
+ {gotham, beamer, tot, <your-name>}{gotham}{
+ Setting the template that is used in the frametitle when a frame too long and is continued/broke into several frames (using the frame option |allowframebreaks|).
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ \lstinline|\defbeamertemplate{frametitle continuation}{default/<your-name>}{<your-defintion>}|
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{numbering}{none, framenumber, totalframenumber, appendixframenumber, pagenumber, totalpagenumber, circle}{none}{
+ Setting the template with the frame number at the bottom right of each slide.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{footer template}
+ {gotham, <your-name>}{gotham}{
+ Setting the template that appears in the footer of the frame.
+ |gotham| footer print the |shortdate| at right, the |shorttitle| in the middle and the |shortauthor| at left.
+ Since in 16/9 the height is precious, |gotham| template also offers the possibility to rotate |shortdate| and |shortauthor| so they appear on sides.
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ \lstinline|\defbeamertemplate{frame footer}{default/<your-name>}{<your-defintion>}|
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{rotateFooter default}
+ {on, off}{off}{
+ Enable or disable the |rotateFooter| frame option by default (ie. without using |\begin{frame}[rotateFooter]| on every frame).
+ If the option is activated, it can be deactivated locally using the frame option |\begin{frame}[noRotateFooter]|.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{mini frames shape}
+ {default (bullet from beamer), tick, box, gotham minibullet, gotham box, gotham minibox, <your-name>}{gotham~minibullet}{
+ Setting the shape of the mini frames to use, if the mini frame bundle refers to it (which is usually the case).
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ % \lstinline|\defbeamertemplate{frame~footer}{default/<your-name>}{<your-defintion>}|
+ \begin{lstlisting}[gobble=6]
+ \defbeamertemplate{mini frame}{<your-name>}{
+ <your-defintion>
+ }[action]{
+ \setbeamersize{mini frame size=.1cm, mini frame offset=.05cm}
+ }
+ \defbeamertemplate{mini frame in current subsection}{<your-name>}{
+ <your-defintion>
+ }
+ \end{lstlisting}
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{mini frames bundle}
+ {gotham~mini, beamer, gotham~nano <your-name>}{gotham~mini}{
+ Setting the set of symbols used in the mini frame navigation.
+ If you want to use your own template, before giving its name to this option, your template should be defined with:
+ % \lstinline|\defbeamertemplate{frame~footer}{default/<your-name>}{<your-defintion>}|
+ \begin{lstlisting}[gobble=6]
+ \defbeamertemplate{miniframe~home}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~current~slide}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~done~current~section}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~todo~current~section}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~done~other~section}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~todo~other~section}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~part}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~section~current}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~section~done}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~section~todo}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~subsection~current}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~subsection~todo}{<your-name>}{<your-def>}
+ \defbeamertemplate{miniframe~subsection~done}{<your-name>}{<your-def>}
+ \end{lstlisting}
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{mini frames compress}
+ {on, off}{on}{
+ A shortcut for the beamer option |compress| that affects the mini frames.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{mini frames nav spreading}
+ {spreading, centering, left, right}{spreading}{
+ Controls how the mini frame should spread in the navigation bar.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{mini frames nav sectioning}
+ {none, section, secsubsection}{none}{
+ Setting the |section in head/foot| template that is used on top of the mini frame navigation bar.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{mini frames nav position}
+ {none, head, foot, left, right}{none}{
+ Setting where the mini frame navigation bar should appear.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{progressbar position}
+ {none, head, frametitle, foot, circlehead, left, right}{none}{
+ Setting where the progressbar should appear.
+ The different positions are pretty obvious from their name, except for |circlehead|.
+ This latter option is putting a circular progressbar around the frametitle-logo (from frametitle template defined with gotham theme).
+ It worth noting that by doing so, the frametitle is using the command |\gothamInstituteLogoCircle| instead of |\gothamInstituteLogoSquare| which is used otherwise.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{progressbar style}
+ {rectangle, rounded box, moving circle, fixed circle}{rectangle}{
+ Setting how the progressbar should appear.
+ |rectangle| option is using sharp rectangle for the progressbar, while |rounded box| is using rounded box and adds the percentage of progression at its right.
+ |moving circle| and |fixed circle| are concerning the option |progressbar position=circle| only.
+ |moving circle| add the number of the frame in a circle moving (following) the progression of the bar, while |fixed circle| put this framenumber constantly at the right of the circular progressbar.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{progressbar advancement}
+ {tlbr, brlt}{tlbr}{
+ Defines in which direction the progressbar should evolve.
+ |tlbr| is the shortcut for: starting from the top left corner, it goes bottom then right, ie. anti-clockwise.
+ |brtl| is the shortcut for: starting from the bottom right corner, it goes top then left, ie. clockwise.
+ }\end{DescribeGothamOption}
+
+ \begin{DescribeGothamOption}{progressbar mfn}
+ {on, off}{off}{
+ Enable or disable the display of the mini frame navigation bar within the progressbar.
+ }\end{DescribeGothamOption}
+
+
+\subsection{Setup all the options}
+ \begin{lstlisting}
+ \gothamset{
+ % from font theme
+ format title, shape title,
+ format subtitle, shape subtitle,
+ format frametitle, shape frametitle,
+ format framesubtitle, shape framesubtitle,
+ format part, shape part,
+ format section, shape section,
+ format subsection, shape subsection,
+ % from color theme
+ background,
+ block,
+ colorset,
+ % from inner theme
+ title page,
+ watermark template, watermark default,
+ standout template, standin template,
+ partframe template, partframe default,
+ sectionframe template, sectionframe default,
+ subsectionframe template, subsectionframe default,
+ subsubsectionframe template, subsubsectionframe default,
+ tocframe template,
+ parttocframe template, parttocframe default,
+ sectiontocframe template, sectiontocframe default,
+ subsectiontocframe template, subsectiontocframe default,
+ %subsubsectiontocframe template, subsubsectiontocframe default,
+ % from outer theme
+ sidebar canvas right template, sidebar canvas left template,
+ edging default,
+ frametitle template, framesubtitle template, frametitle continuation template,
+ numbering,
+ rotateFooter default,
+ footer template,
+ mini frames shape, mini frames bundle, mini frames compress, mini frames nav spreading,
+ progressbar position, progressbar style, progressbar advancement, progressbar mfn,
+ }
+ \end{lstlisting}
+
+
+\subsection{Frame options}
+ Frame options are affecting the templates used on the current frame through the following syntax:
+ \begin{lstlisting}
+ \begin{frame}[option] ... \end{frame}
+ \end{lstlisting}
+ Below a description of the different frame options brought by \themename{}.
+
+ \DescribeOption{noBGC}
+ Apply an empty |background canvas| template.
+
+ \DescribeOption{watermark}
+ \DescribeOption{nowatermark}
+ Apply (with |watermark|) or deactivated (|nowatermark| when \lstinline|\gothamset{watermark default=on}| was given) the |background| template, through %\\
+ \lstinline|\defbeamertemplate{background}{watermark/<your-name>}{<your-def>}| and %\\
+ \lstinline|\gothamset{watermark template=<your-name>}|.
+
+ \DescribeOption{standout}
+ \DescribeOption{standin}
+ Apply the |standin| (and |standout| respectively) templates through the definition
+ \lstinline|\defbeamertemplate{standin}{<your-name>}{<your-def>}| and the option \lstinline|\gothamset{standin template=<your-name>}|.
+
+ \DescribeOption{toc}
+ Appy the |toc| template defined by \lstinline|\gothamset{tocframe template=<your-name>}|.
+
+ \DescribeOption{edging}
+ \DescribeOption{noedging}
+ Apply (with |edging|) or deactivated (|noedging| when \lstinline|\gothamset{edging default=on}| was given) the |sidebar canvas left| (and right respectively) template, through
+ \lstinline|\defbeamertemplate{sidebar canvas left}{default/<your-name>}{<your-def>}| (and right)
+ and the option
+ \lstinline|\gothamset{sidebar canvas left template=<your-name>}| (and right).
+
+ \DescribeOption{nologo}
+ \DescribeOption{nofootline}
+ \DescribeOption{nofooter}
+ Apply empty |logo| (and |footline|, |footer| respectively) templates.
+ This can be convenient when extra space is needed.
+ \vspace{1em}
+
+ \DescribeOption{rotateFooter}
+ \DescribeOption{noRotateFooter}
+ Enable or disable the rotation of the elements in the |footer|.
+ This can be convenient when extra space is needed in 16/9 mode especially.
+
+ \DescribeOption{part}
+ \DescribeOption{section}
+ \DescribeOption{subsec}
+ \DescribeOption{subsubsec}
+ Apply \lstinline|\usebeamertemplate{part frame}|, (|section frame|, |subsection frame| and |subsubsection frame| respectively) templates.
+ This makes more sense for internal use, but can be reused everywhere else.
+ \vspace{2em}
+
+ \DescribeOption{tocpart}
+ \DescribeOption{tocsec}
+ \DescribeOption{tocsubsec}
+ \DescribeOption{tocsubsubsec}
+ Apply \lstinline|\usebeamertemplate{toc part frame}|, (|toc section frame|, |toc subsection frame| and |toc subsubsection frame| respectively) templates.
+ This makes more for internal use, but can be reused everywhere else.
+ \vspace{1em}
+
+
+%% ------------------------------------
+\subsection{Commands for Customization}
+ \themename{} defines some commands that can be used as hooks, ie., that can be redefined when needed.
+
+ \begin{function}{\gothamInstituteLogoCircle[1][4ex]}
+ \begin{arguments}
+ \item |height| of the picture.
+ \end{arguments}
+ Command to include the circular logo of your institute in the frametitle when using \lstinline|\gothamset{progressbar position=circlehead}|.
+ For example, you redefine this command through:
+ \begin{lstlisting}[gobble=6]
+ \renewcommand{\gothamInstituteLogoCircle}[1][4ex]{
+ \includegraphics[height=#1]{<your-logo-circular>}
+ }
+ \end{lstlisting}
+ \end{function}
+
+ \begin{function}{\gothamInstituteLogoSquare[1][4ex]}
+ \begin{arguments}
+ \item |height| of the picture.
+ \end{arguments}
+ Command to include the circular logo of your institute in the frametitle.
+ For example, you redefine this command through:
+ \begin{lstlisting}[gobble=6]
+ \renewcommand{\gothamInstituteLogoSquare}[1][4ex]{
+ \includegraphics[height=#1]{<your-logo-square>}
+ }
+ \end{lstlisting}
+ \end{function}
+
+ \begin{function}{\gothamFrameSubtitleSep}
+ Command defining the separator used between the frametitle and the subtitle.
+ \end{function}
+
+ \begin{function}{\gothamRightFiligrane, \gothamLeftFiligrane}
+ Commands that are used by default in the |sidebar canvas right| (and left).
+ This avoids the redefinition of the whole templates, especially since the |sidebar canvas right| is containing elements by default in Beamer theme (like the |logo|).
+ \end{function}
+
+
+\subsection{Color Customization}
+ The included \themename color theme is used by default, but its colors can be easily changed to suit your tastes.
+ All of the theme's styles are defined in terms of three Beamer colors:
+ \begin{itemize}
+ \item |normal text| (dark fg, light bg)
+ \item |alerted text| (colored fg, should be visible against dark or light)
+ \item |example text| (colored fg, should be visible against dark or light)
+ \end{itemize}
+
+ An easy way to customize the theme is to redefine these colors using
+ \begin{lstlisting}
+ \setbeamercolor{ ... }{ fg= ... , bg= ... }
+ \end{lstlisting}
+ in your preamble.
+ For greater customization, you can redefine any of the other stock Beamer colors.
+ In addition to the stock colors the theme defines a number of \themename specific colors, which can also be redefined to your liking.
+
+ \begin{lstlisting}
+ \setbeamercolor{progress bar}{ ... }
+ \setbeamercolor{title separator}{ ... }
+ \setbeamercolor{progress bar in head/foot}{ ... }
+ \setbeamercolor{progress bar in section page}{ ... }
+ \end{lstlisting}
+
+
+\subsection{Font Customization}
+ The default font for \themename is |Fira|.
+ This can be easily changed using the standard font selection commands of the \textsf{fontspec} package.
+ So if you prefer, for example, the \href{http://font.ubuntu.com}{|Ubuntu|} font family, just add the following two commands after loading the \themename theme.
+
+ \begin{lstlisting}
+ \setsansfont{Ubuntu}
+ \setmonofont{Ubuntu Mono}
+ \end{lstlisting}
+
+ If you are expecting to present in a large room or with an underpowered projector, you may want to change the font to a heavier weight of Fira to maximize readability.
+
+ \begin{lstlisting}
+ \setsansfont[BoldFont={Fira Sans SemiBold}]{Fira Sans Book}
+ \end{lstlisting}
+
+
+\subsubsection{Old style figures}
+ The regular \textsf{fontspec} mechanism for changing glyph appearance also applies to this theme.
+ If you want to have old style figures in the text but regular lined figures for math, you could add the following to your preamble:
+ \begin{lstlisting}
+ \usefonttheme{professionalfonts} % required for mathspec
+ \usepackage{mathspec}
+ \setsansfont[BoldFont={Fira Sans},
+ Numbers={OldStyle}]{Fira Sans Light}
+ \setmathsfont(Digits)[Numbers={Lining, Proportional}]{Fira Sans Light}
+ \end{lstlisting}
+
+
+% \subsection{Backgrounds available}
+% xx
+
+
+\subsection{Length Customization}
+ \begin{variable}{\sectionhoffset}
+ length controlling the horizontal offset of the (section title + progress bar) block.
+ Can be useful when extra stuff wants to be displayed on sides of the block.
+ The default value is 0pt.
+ \end{variable}
+
+ \begin{variable}{\sidebarRightHOffset, \sidebarLeftHOffset}
+ Length controling the horizontal and vertical offset in order to position |\gothamRightFiligrane| (respectively |\gothamLeftFiligrane|) when using the default sidebar canvas (right and left) from \themename.
+ \end{variable}
+
+ \begin{variable}{\gothamHposLeftRotFooter, \gothamHposRightRotFooter, \gothamVposLeftRotFooter, \gothamVposRightRotFooter}
+ length controlling the horizontal and vertical positioning of the left and right elements of the rotated footer.
+ \end{variable}
+
+ \begin{variable}{\gothamFootlineRuleLeftPadding}
+ length controlling the horizontal space between the left border of the page and the left side of the rule.
+ \end{variable}
+
+ \begin{variable}{\gothamFootlineRuleHeight, \gothamFootlineRuleLength}
+ Dimensions controlling the height and the length of the rule used to delimit the footer.
+ \end{variable}
+
+ \begin{variable}{\gothamProgressCircHeight, \gothamCounterCircleRadius, \gothamProgressCircBorderWidth}
+ Lengths controlling the aspect of |progress circle|.
+ |\gothamProgressCircHeight| is controlling the inner height of the circle (related to its diameter).
+ |\gothamCounterCircleRadius| is controlling the size of the counter circle containing the frame number.
+ |\gothamProgressCircBorderWidth| is controlling width of the progress circle.
+ \end{variable}
+
+ \begin{figure}[htp]
+ \centering
+ \fbox{\includegraphics[width=0.7\textwidth]{gotham-layout.pdf}}
+ \caption{The layout used by \themename.}
+ \end{figure}
+
+
+%% ------------------------------------
+\section{Tips \& Tricks}
+\subsection{Backup Slides}
+ Speakers will often include extra slides at the end of their presentation to refer to during audience questions.
+ One easy way to do this is to include the \verb|appendixnumberbeamer| package in your preamble and call \verb|\appendix| before your backup slides.
+
+ \themename will automatically turn off slide numbering for slides in the appendix.
+
+
+\subsection{Sources of inspiration}
+ Many Beamer themes have been used as sources of inspiration to build \themename{}:
+ \begin{itemize}
+ \item \url{https://github.com/matze/mtheme} for dark/light theme and standout page.
+ \item \url{https://github.com/hamaluik/Beamer-Theme-Execushares} and
+ \\ \url{https://github.com/pcafrica/focus-beamertheme} for titlepage and sectionpage.
+ \item \url{https://github.com/LukasPietzschmann/awesome-beamer} for titlepage.
+ \item \url{https://github.com/luistar/unina-beamer/tree/master} and
+ \\ \url{https://github.com/jkjaer/aauLatexTemplates/tree/master/aauBeamer/aausimple} for circlehead progress bar.
+ \item \url{https://github.com/povanberg/flux-beamer} for toc.
+ \item \url{https://github.com/fliptanedo/FlipBeamerTheme} for numbering circled fraction.
+ \item \url{https://gitlab.com/RomainNOEL/latex3_template_pkg} for LateX3 template.
+ \end{itemize}
+
+
+%% ------------------------------------
+\section{Known Issues}
+
+\subsection{Title formats}
+\label{sec:titleformats}
+ Be aware that not every font supports small caps, so the |smallcaps| or |upper| options may not work if you use a font other than |Fira Sans|.
+ In particular, the Computer Modern sans-serif typeface, which is used when \themename is compiled with pdf\LaTeX, does not have a small-caps variant.
+
+ The title format options |upper| and |smallcaps| are quite nice from an aesthetic point of view, but their use of |\MakeLowercase| and
+ |\MakeUppercase| can cause unexpected problems.
+ For example:
+ \begin{itemize}
+ \item Some commands, like |\\|, do not work inside |\MakeLowercase| and |\MakeUppercase|.
+ (See \href{https://github.com/matze/mtheme/issues/125}{\#125})
+ \item Only alphabetic characters are affected by |\MakeLowercase|, so numerals and punctuation remain at full height.
+ This can spoil some of the aesthetic benefits of |upper|.
+ (See \href{https://github.com/matze/mtheme/issues/33}{\#33})
+ \item |\MakeLowercase| and |\MakeUppercase| apply to math mode and |\scshape| does not.
+ This can easily introduce mathematical errors that are hard to catch.
+ \item It is impossible to typeset symbols which are encoded as uppercase letters in a different font.
+ In particular, |\mathbb| and |\mathcal| letters will be replaced by other math glyphs.
+ (See \href{https://github.com/matze/mtheme/issues/153}{\#153})
+ \end{itemize}
+
+ The |smallcaps| and |upper| options are safe to use if your titles contain only alphabetic characters and do not require the expansion of any macros.
+
+
+\subsection{Interactions with other color themes}
+ \themename can be used along with any other Beamer color theme, such as |crane| or |seahorse|.
+ If you wish to do this, it is usually best to include the \themename subpackages individually so the \themename color theme is never loaded.
+ This will prevent conflicts between the \themename color theme and your preferred theme.
+
+ For example, overriding the color theme as follows may not work as expected because |\usetheme{gotham}| loads the \themename color theme, which defines a relationship between the frametitle background and the primary palette of the theme.
+ Since |seahorse| assumes a different relationship between its palettes, the result is a grey, rather than periwinkle, frametitle background.
+
+ \begin{lstlisting}
+ \usetheme{gotham}
+ \usecolortheme{seahorse}
+ \end{lstlisting}
+
+ The correct colors are chosen if the \themename outer, inner, and font themes are loaded seperately:
+ \begin{lstlisting}
+ \useoutertheme{gotham}
+ \useinnertheme{gotham}
+ \usefonttheme{gotham}
+ \usecolortheme{seahorse} % or your preferred color theme
+ \end{lstlisting}
+
+ Please note that \themename may not use all the colors defined in your favourite Beamer color theme.
+ In particular, \themename does not set a background color for the title; this will cause issues when using color themes like |whale| which set a white foreground for the title.
+
+
+\subsection{Notes on second screen}
+ If you use the |[show notes on second screen]| option built into Beamer and compile with XeLaTeX, text on slides following the first section slide may be rendered in white instead of the regular color.
+ This is due to \href{http://tex.stackexchange.com/questions/288408/}{a bug} in Beamer or XeLaTeX itself.
+ You can work around it either by compiling with LuaTeX or by adding the following code to your preamble to reset the text color on each slide.
+
+ \begin{lstlisting}
+ \makeatletter
+ \def\beamer@framenotesbegin{% at beginning of slide
+ \usebeamercolor[fg]{normal text}
+ \gdef\beamer@noteitems{}%
+ \gdef\beamer@notes{}%
+ }
+ \makeatother
+ \end{lstlisting}
+
+
+\subsection{Standout frames with labels}
+ Because the |standout| frame option creates a group to restrict the colour change to a single slide, labels defined after calling |standout| will stay local to the group.
+ In other words, the following may result in a ``label undefined'' error.
+ \begin{lstlisting}
+ \begin{frame}[standout, label=conclusion]{Conclusion}
+ Awesome slide
+ \end{frame}
+ \end{lstlisting}
+
+ To fix this problem, change the order of the keys in the frame.
+ \begin{lstlisting}
+ \begin{frame}[label=conclusion, standout]{Conclusion}
+ Awesome slide
+ \end{frame}
+ \end{lstlisting}
+
+ This error can be unwittingly triggered if you export your slides from Emacs Org mode, which automatically adds labels after frame options.
+ Alex Branham \href{https://github.com/matze/mtheme/issues/203}{offers} the following solution for Org mode users, using |org-set-property|.
+
+ \begin{lstlisting}
+ * Start of a frame
+ :PROPERTIES:
+ :BEAMER_opt: label=conclusion,standout
+ :END:
+ \end{lstlisting}
+
+
+\subsection{Standout frames with Pandoc}
+ With Pandoc versions prior 1.17.2 it was not possible to create standout frames because Pandoc only supported a specific list of frame attributes thus ignoring additional attributes such as |{.standout}|.
+
+
+\subsection{Other issues}
+ \begin{itemize}
+ \item |enumitem| is not working with Beamer.
+ \end{itemize}
+
+
+\subsection*{Todo}
+ List of thing that could be improved (any volunteer welcome):
+ \begin{itemize}
+ \item Reduce the number of @ .
+ \item Rename a lot of length with gotham at the beginning of their name.
+ \item Turn internal length into \_dim.
+ \item Improve documentation.
+ \item Add a hexagonal, wavy and add lengths on the blueprint layout backgrounds.
+ \item Remove calc package (that can be replaced by xfp or just fp).
+ \item Remove colors from tests inner and outer.
+ \item Replace the |\setbeamertemplate{yy}[default/xx]| by |\__gotham_inner_set_template:nn{title~page}| or merge them because the default values in dict/template are interesting but |\__gotham_inner_set_template| are simpler.
+ \item add colorset more "blue-ish", "green-ish" ... from colorA etc.
+ \item add Gotham to lists of Awesome Beamer themes.
+ \end{itemize}
+
+
+\section{License}
+ \themename is licensed under the terms of the
+ \href{https://creativecommons.org/licenses/by-sa/4.0/}{Creative Commons
+ Attribution-ShareAlike 4.0} license.
+
+
+\end{document}
+% EoF
+
+
+% \begin{documentation}
+% \begin{macro|function|variable}{\nameMacro}
+% \begin{syntax}
+% \cs{nameMacro}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{footer template} = \oarg{\defopt{gotham} \textbar ... }
+% \end{syntax}
+% Description of |nameMacro| which xxx.
+% \end{macro|function|variable}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro|function|variable}{\nameMacro}
+% \begin{arguments}
+% \item |width| Name of the option to add, this name should also correspond to the name of the environment followed by the suffix 'env'.
+% \end{arguments}
+% Description
+% \UnitTested % NOT FOR VARIABLES OF FUNCTIONS
+% \TestFiles{gotham-test-xxx} % NOT FOR VARIABLES
+% \begin{macrocode}
+
+% \end{macrocode}
+% \end{macro|function|variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\nameMacro}
+% Description
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+
+% \end{macrocode}
+% \end{macro}
+% \end{implementation} \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdf
new file mode 100644
index 0000000000..c3056abee7
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex
new file mode 100644
index 0000000000..71bd8cf1e9
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex
@@ -0,0 +1,65 @@
+\documentclass[aspectratio=169, 10pt]{beamer}
+\usetheme{gotham}
+
+ \gothamset{
+ numbering= framenumber,
+ % tocframe template= gotham simple,
+ parttocframe default=off,
+ sectiontocframe default=off,
+ subsectiontocframe default=off,
+ }
+
+ \usepackage{standalone}
+ \usepackage{tikz}
+ \usepackage{pgfplots}
+ \usepackage{tabularray} % Typeset tabulars and arrays (contains equivalent of longtable, booktabs and dcolumn at least)
+ \UseTblrLibrary{booktabs} % to load extra commands from booktabs
+ \usepackage{changepage}
+
+ \usepackage{appendixnumberbeamer}
+ \usepackage[scale=2]{ccicons}
+ % \usepackage{pgfplots}
+ \usepgfplotslibrary{dateplot}
+
+ \newcommand{\themename}{\textbf{\textsc{Gotham}}}
+
+
+\title[]{Gotham}
+\subtitle{A Modern, versatile and extendable theme for Beamer}
+\date[]{\today}
+\author[]{Romain NOËL}
+\institute{Center for modern beamer themes}
+% \titlegraphic{\hfill\includegraphics[height=1.5cm]{logo.pdf}}
+
+
+\begin{document}
+
+\maketitle
+
+ \begin{frame}[toc]{Table of contents}%
+ \tableofcontents%[hideallsubsections]
+ \end{frame}
+
+
+%%%%%%%%%%%%%%%%%%%%
+%%% MAINMATTER %%%
+%%%%%%%%%%%%%%%%%%%%
+\input{section-Beamer.tex}
+
+\input{section-Gotham.tex}
+
+\input{section-Conclusion.tex}
+
+
+\appendix
+
+ \begin{frame}[fragile]{Backup slides}
+ Sometimes, it is useful to add slides at the end of your presentation to refer to during audience questions.
+
+ The best way to do this is to include \verb|\usepackage{appendixnumberbeamer}| in your preamble and call \verb|\appendix| before your backup slides.
+
+ \themename{} will automatically turn off slide numbering and progress bars for slides in the appendix.
+ \end{frame}
+
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdf
new file mode 100644
index 0000000000..449e20c327
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex
new file mode 100644
index 0000000000..af6e53c6ab
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex
@@ -0,0 +1,66 @@
+\documentclass[aspectratio=43, 10pt]{beamer}
+\usetheme{gotham}
+
+ \gothamset{
+ background=dark,
+ numbering= framenumber,
+ % tocframe template= gotham simple,
+ parttocframe default=off,
+ sectiontocframe default=off,
+ subsectiontocframe default=off,
+ }
+
+ \usepackage{standalone}
+ \usepackage{tikz}
+ \usepackage{pgfplots}
+ \usepackage{tabularray} % Typeset tabulars and arrays (contains equivalent of longtable, booktabs and dcolumn at least)
+ \UseTblrLibrary{booktabs} % to load extra commands from booktabs
+ \usepackage{changepage}
+
+ \usepackage{appendixnumberbeamer}
+ \usepackage[scale=2]{ccicons}
+ % \usepackage{pgfplots}
+ \usepgfplotslibrary{dateplot}
+
+ \newcommand{\themename}{\textbf{\textsc{Gotham}}}
+
+
+\title[]{Gotham}
+\subtitle{A Modern, versatile and extendable theme for Beamer}
+\date[]{\today}
+\author[]{Romain NOËL}
+\institute{Center for modern beamer themes}
+% \titlegraphic{\hfill\includegraphics[height=1.5cm]{logo.pdf}}
+
+
+\begin{document}
+
+\maketitle
+
+ \begin{frame}[toc]{Table of contents}%
+ \tableofcontents%[hideallsubsections]
+ \end{frame}
+
+
+%%%%%%%%%%%%%%%%%%%%
+%%% MAINMATTER %%%
+%%%%%%%%%%%%%%%%%%%%
+\input{section-Beamer.tex}
+
+\input{section-Gotham.tex}
+
+\input{section-Conclusion.tex}
+
+
+\appendix
+
+ \begin{frame}[fragile]{Backup slides}
+ Sometimes, it is useful to add slides at the end of your presentation to refer to during audience questions.
+
+ The best way to do this is to include \verb|\usepackage{appendixnumberbeamer}| in your preamble and call \verb|\appendix| before your backup slides.
+
+ \themename{} will automatically turn off slide numbering and progress bars for slides in the appendix.
+ \end{frame}
+
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdf
new file mode 100644
index 0000000000..7ba8cef0e9
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.tex
new file mode 100644
index 0000000000..ae9db4f712
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.tex
@@ -0,0 +1,8 @@
+\documentclass{beamer}
+\usetheme{gotham}
+
+\begin{document}
+ \begin{frame}{Frame With a Title}
+ This is a simple frame.
+ \end{frame}
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdf
new file mode 100644
index 0000000000..1965c272c9
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdf
new file mode 100644
index 0000000000..96d82f5bf3
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-safetybox.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-safetybox.pdf
new file mode 100644
index 0000000000..acb1efd917
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-safetybox.pdf
@@ -0,0 +1,70 @@
+%PDF-1.5
+%
+4 0 obj
+<< /Length 5 0 R
+ /Filter /FlateDecode
+>>
+stream
+xAJ1 =Ż@cҤ,FBTq3.Le`DB
+Iޗ 8^VYzox٥}қ7ό$dh1#=>E56CV)h|VML { 1]Ɋ7Z ީ\Z 3U!X(OĬ8<NG!Wk鬄adZ{1v8%9> A#K}0g qa$
+endstream
+endobj
+5 0 obj
+ 231
+endobj
+3 0 obj
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+>>
+endobj
+2 0 obj
+<< /Type /Page % 1
+ /Parent 1 0 R
+ /MediaBox [ 0 0 453.542999 255.117996 ]
+ /Contents 4 0 R
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /I true
+ /CS /DeviceRGB
+ >>
+ /Resources 3 0 R
+>>
+endobj
+1 0 obj
+<< /Type /Pages
+ /Kids [ 2 0 R ]
+ /Count 1
+>>
+endobj
+6 0 obj
+<< /Producer (cairo 1.16.0 (https://cairographics.org))
+ /Creator <FEFF0049006E006B0073006300610070006500200031002E0031002E00320020002800680074007400700073003A002F002F0069006E006B00730063006100700065002E006F007200670029>
+ /CreationDate (D:20240630140843+02'00)
+>>
+endobj
+7 0 obj
+<< /Type /Catalog
+ /Pages 1 0 R
+>>
+endobj
+xref
+0 8
+0000000000 65535 f
+0000000649 00000 n
+0000000417 00000 n
+0000000345 00000 n
+0000000015 00000 n
+0000000323 00000 n
+0000000714 00000 n
+0000000997 00000 n
+trailer
+<< /Size 8
+ /Root 7 0 R
+ /Info 6 0 R
+>>
+startxref
+1049
+%%EOF
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdf
new file mode 100644
index 0000000000..bbef48867e
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx
new file mode 100644
index 0000000000..969a479257
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx
@@ -0,0 +1,8842 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2023-20** by Romain NOEL <romainoel@free.fr>
+% -----------------------------------------------------------
+%
+% This file may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, either version 1.3c of this license
+% or (at your option) any later version. The latest version of this
+% license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2006/05/20 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{gotham.dtx}
+%</driver>
+%<*internal>
+\input expl3-generic \relax
+%</internal>
+%<class>\NeedsTeXFormat{LaTeX3e}
+%<package>\ProvidesExplPackage{beamerthemegotham}{2024/09/20}{1.1.0.b}{A modern, minimal-ish, versatile and extendable yet robust theme for Beamer}
+%<author>Romain NOEL</author>
+%<maintainer>Romain NOEL</maintainer>
+%<url>https://gitlab.com/RomainNOEL/beamertheme-gotham</url>
+%<desc>
+% A modern, minimal-ish, versatile and extendable yet robust theme for Beamer. It uses l3build system to both build and verify (Test-Driven Development) the delivered code.
+% </desc>
+%
+%<*driver>
+\documentclass{l3doc}
+ \usepackage[T1]{fontenc}
+ \usepackage{pdfpages}
+ \usepackage{standalone}
+ % \usepackage{gotham}
+ % \usepackage{readprov}
+ % \ReadPackageInfos{beamerthemegotham}
+ \edef\GothamVersion{v1.1.0.b} %{\fileversion}
+ \edef\GothamDate{2024-09-20} %{\filedate}
+
+ \usepackage{parskip}
+ \usepackage{setspace}
+ \usepackage{xspace}
+ \onehalfspacing
+
+ \usepackage{xcolor}
+ \definecolor{tPrim}{HTML}{00707F} % Green-Blue
+ \definecolor{tSec}{HTML}{5FA4B0} % Green-Blue light
+ \definecolor{tAccent}{HTML}{F07F3C} % Orange
+ \definecolor{tGrey}{HTML}{E6E6E1} % Grey-Beige
+
+ % \usepackage{fancyvrb}
+ \usepackage{listings}
+ \lstset{%
+ language=[LaTeX]{TeX},
+ basicstyle=\ttfamily,
+ keywordstyle=\color{tPrim}\bfseries,
+ commentstyle=\color{tSec},
+ stringstyle=\color{tSec},
+ backgroundcolor=\color{white},
+ numbers=none,
+ numberstyle=\tiny\ttfamily,
+ stepnumber=2,
+ showspaces=false,
+ showstringspaces=false,
+ showtabs=false,
+ frame=none,
+ framerule=1pt,
+ tabsize=2,
+ rulesep=5em,
+ captionpos=b,
+ breaklines=true,
+ breakatwhitespace=false,
+ framexleftmargin=0em,
+ framexrightmargin=0em,
+ xleftmargin=0em,
+ xrightmargin=0em,
+ aboveskip=1em,
+ belowskip=1em,
+ morekeywords={usetheme,institute,maketitle,@gotham@titleformat,%
+ plain,gothamset,setbeamercolor,defbeamertemplate},
+ }
+ \lstMakeShortInline|
+
+ \usepackage{hyperref}
+
+ \setlength{\fboxsep}{0pt}%
+ \usepackage{subcaption} % For subfigures
+ \usepackage{cleveref} % for references
+
+ \providecommand{\defopt}[1]{default: #1}%{\underline{#1}}
+ % \DescribeGothamOption{optionName}{possible values}{default value}{descrption}
+ \newenvironment{DescribeGothamOption}[3]{
+ \DescribeOption{#1} % from l3doc
+ \begin{minipage}[t]{\textwidth}
+ \textit{\textbf{\textcolor{tSec}{#2}}}\dotfill\,\defopt{#3}\par
+ \begingroup
+ \vspace{0.5em}
+ }{
+ \par
+ \endgroup
+ \end{minipage}
+ }
+
+
+ %% =====================================================================
+ \title{\textsc{Gotham}\\ A modern, minimal-ish, versatile and extendable theme for Beamer}
+ \author{Romain NOEL \\ \url{romainoel@free.fr}}
+ \date{\GothamVersion~---~\GothamDate}
+
+ \providecommand{\themename}{\textbf{\textsc{Gotham}}\xspace}
+
+ %% =====================================================================
+
+
+ %% l3doc commands
+ \EnableCrossrefs
+ \CodelineIndex
+ \RecordChanges
+\begin{document}
+\input{gotham-doc.tex}
+ \clearpage
+%\section{A simple example}
+% \includepdf[pages=-,
+% pagecommand=\section{A simple example},
+% width=0.7\textwidth]
+% {gotham-exampleSimple.pdf}
+\section{Commands description for users}
+ \EnableDocumentation
+ \DisableImplementation
+ \DocInput{\jobname.dtx}
+ \newpage
+\section{Package implementation for developers}
+ \EnableImplementation
+ \DisableDocumentation
+ \GetFileInfo{\jobname.sty}
+ \DocInput{\jobname.dtx}
+ \PrintChanges
+\end{document}
+%</driver>
+%
+%<*devImpl>
+\documentclass{l3doc}
+ \usepackage[T1]{fontenc}
+ \usepackage{pdfpages}
+ \usepackage{standalone}
+ %\usepackage{gotham}
+ \providecommand{\defopt}[1]{\underline{#1}}
+ % l3doc commands
+ \EnableCrossrefs
+ \CodelineIndex
+ \RecordChanges
+\begin{document}
+\section{Commands description for users}
+ \EnableImplementation
+ \DisableDocumentation
+ \DocInput{gotham.dtx}
+\end{document}
+%</devImpl>
+%
+%
+%<*userCmd>
+\documentclass{l3doc}
+ \usepackage[T1]{fontenc}
+ \usepackage{pdfpages}
+ \usepackage{standalone}
+ %\usepackage{gotham}
+ \providecommand{\defopt}[1]{\underline{#1}}
+ % l3doc commands
+ \EnableCrossrefs
+ \CodelineIndex
+ \RecordChanges
+\begin{document}
+\section{Package implementation for developers}
+ \EnableDocumentation
+ \DisableImplementation
+ \DocInput{gotham.dtx}
+\end{document}
+%</userCmd>
+%
+% \fi
+%
+%
+%\begin{implementation}
+% \begin{macrocode}
+%<*font>
+\ProvidesExplPackage{beamerfontthemegotham}{2024/09/20}{1.1.0.b}{gotham font theme}
+\RequirePackage{expl3}
+\RequirePackage{xparse}
+\RequirePackage{etoolbox}
+\RequirePackage{ifxetex}
+\RequirePackage{ifluatex}
+% \end{macrocode}
+% \end{implementation}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%% FONT %%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{implementation}
+% \begin{variable}{font messages}
+% Definition of the messages that are used and reused by font theme.
+% \changes{v0.2.0}{2024/01/25}{New}
+% \begin{macrocode}
+\msg_new:nnn { gotham } { font-not-found }
+{
+ Could~not~find~font~'#1'.\c_space_tl
+}
+
+\msg_new:nnn { gotham } { fonts-not-available }
+{
+ No~suitable~fonts~found.~Using~fallback~fonts.
+}
+
+\msg_new:nnn { gotham } { compiler-xe-or-lua }
+{
+ You~need~to~compile~with~XeLaTeX~or~LuaLaTeX~to~use~the~Fira~fonts.
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\g_gotham_fontsnotfound_int:n}
+% Counter for the number of font not found.
+% \begin{macrocode}
+\int_new:N \g_gotham_fontsnotfound_int
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\checkfont:n}
+% \begin{arguments}
+% \item Name of the font.
+% \end{arguments}
+% Command to check if one font exist.
+% \TestFiles{gotham-test-035}
+% \TestMissing{a isolated unit test would be nice.}
+% \begin{macrocode}
+\cs_new_protected:Nn \checkfont:n
+{
+ \fontspec_font_if_exist:nF { #1 }
+ {
+ % false: check with regular postfix.
+ \fontspec_font_if_exist:nF { #1~Regular }
+ {
+ % false: raise a warning and increment the number of font not found.
+ \int_incr:N \g_gotham_fontsnotfound_int
+ \msg_warning:nnn { gotham } { font-not-found } { #1 }
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\iffontsavailable}
+% \begin{syntax}
+% \cs{iffontsavailable} \marg{list of fonts' names} \marg{True code} \marg{False code}
+% \end{syntax}
+% If all fonts in \marg{list of fonts' names} are font then \marg{True code} is executed else \marg{False code}.
+% \end{function}
+% \end{documentation}
+% \begin{implementation}
+% \begin{function}{\iffontsavailable}
+% Command to check if a list of font is available.
+% \TestFiles{gotham-test-035}
+% \TestMissing{a isolated unit test would be nice.}
+% \begin{macrocode}
+\newcommand{\iffontsavailable}[3]
+{
+ \int_zero:N \g_gotham_fontsnotfound_int
+ \clist_map_function:nN { #1 } \checkfont:n
+ \int_compare:nTF { \g_gotham_fontsnotfound_int = 0 }
+ {% True
+ #2
+ }{% False
+ #3
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Load fonts if available}
+% If fontspec is loadable (ie. if xelatex or lualatex), then load available fonts, otherwise raise a warning and go on.
+% \UnitTested
+% \TestFiles{gotham-test-035}
+% \begin{macrocode}
+\ifboolexpr{bool~{xetex}~or~bool~{luatex}}{
+ % if fontspec loaded pass option otherwise load fontspec.
+ \@ifpackageloaded{fontspec}{
+ \PassOptionsToPackage{no-math}{fontspec}
+ }{
+ \RequirePackage[no-math]{fontspec}
+ }
+ %
+ % We search for regular, italic, light, light italic,fonts under the default |Fira Sans| names.
+ \iffontsavailable{FiraSans-Light.otf,
+ FiraSans-LightItalic.otf,
+ FiraSans-Regular.otf,
+ FiraSans-Italic.otf}
+ {
+ \setsansfont[ItalicFont={FiraSans-LightItalic.otf},
+ BoldFont={FiraSans-Regular.otf},
+ BoldItalicFont={FiraSans-Italic.otf}]
+ {FiraSans-Light.otf}
+ }{
+ % If this fails, the suffix OT --- used by some Linux distributions --- will be tried.
+ \iffontsavailable{FiraSans~Light~OT,
+ FiraSans~LightItalic~OT,
+ FiraSans~Regular~OT,
+ FiraSans~Italic~OT}
+ {
+ \setsansfont[ItalicFont={Fira~Sans~LightItalic~OT},
+ BoldFont={Fira~Sans~Regular~OT},
+ BoldItalicFont={Fira~Sans~Italic~OT}]
+ {Fira~Sans~Light~OT}
+ }{
+ % If this also fails, a warning will be displayed and the standard fonts will be used.
+ \msg_warning:nn { gotham } { fonts-not-available }%
+ }
+ }
+ %
+ % We search for regular, mono, and mono bold fonts under the default |Fira Mono| names.
+ \iffontsavailable{FiraMono-Medium.otf, FiraMono-Bold.otf}{
+ \setmonofont[BoldFont={FiraMono-Medium.otf}]{FiraMono-Bold.otf}
+ }{
+ % If this fails, the suffix OT --- used by some Linux distributions --- will be tried.
+ \iffontsavailable{Fira~Mono~Medium~OT, Fira~Mono~Bold~OT}{
+ \setmonofont[BoldFont={Fira~Mono~Medium~OT}]{Fira~Mono~Bold~OT}
+ }{
+ % If this also fails, a warning will be displayed and the standard fonts will be used.
+ \msg_warning:nn { gotham } { fonts-not-available }
+ }
+ }
+ %
+ % Add a feature for numbers in tables.
+ \AtBeginEnvironment{tabular}{
+ \addfontfeature{Numbers={Monospaced}}
+ }
+}{
+ % If compiled with pdf\LaTeX{}, then apply a dirty patch (that will not do the job but suppress warnings) and raise a warning.
+ \msg_warning:nn { gotham } { compiler-xe-or-lua }
+ \DeclareFontShape{OT1}{cmss}{bx}{sc}{<-> cmbcsc10}{}
+ \DeclareFontShape{OT1}{cmss}{bx}{it}{<->sub*cmss/m/sl}{}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\setbeamerfont{title}, general font definitions}
+% Set all needed font environment variables:shape, size, series.
+% Remark: Case is missing.
+% \UnitTested
+% \TestFiles{gotham-test-035, gotham-test-036}
+% \TestMissing{block, caption, description, bibio}
+% \begin{macrocode}
+\setbeamerfont{title}{size=\Large, series=\bfseries}
+\setbeamerfont*{subtitle}{size=\large}
+\setbeamerfont{author}{size=\small}
+\setbeamerfont{date}{size=\small}
+
+\setbeamerfont{section~title}{size=\Large, series=\bfseries}
+\setbeamerfont{subsection~title}{size=\large, series=\bfseries}
+\setbeamerfont{subsubsection~title}{size=\normalsize, series=\bfseries}
+
+\setbeamerfont{frametitle}{size=\large, series=\bfseries}
+\setbeamerfont{frametitleToc}{size=\LARGE, series=\bfseries}
+\setbeamerfont{frametitleSection}{size*={60}{1}, series=\bfseries}
+
+\setbeamerfont{block~title}{size=\normalsize, series=\bfseries}
+\setbeamerfont{block~title~alerted}{size=\normalsize, series=\bfseries}
+\setbeamerfont{caption}{size=\small}
+\setbeamerfont{caption~name}{series=\bfseries}
+\setbeamerfont{description~item}{series=\bfseries}
+\setbeamerfont{page~number~in~head/foot}{size=\scriptsize}
+
+\setbeamerfont{bibliography~entry~author}{size=\normalsize, series=\normalfont}
+\setbeamerfont{bibliography~entry~title}{size=\normalsize, series=\bfseries}
+\setbeamerfont{bibliography~entry~location}{size=\normalsize, series=\normalfont}
+\setbeamerfont{bibliography~entry~note}{size=\small, series=\normalfont}
+\setbeamerfont{standout}{size=\Large, series=\bfseries}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_title_format:n, titles formats}
+% Pre-hooks that will be inserted to control case format of titles in addition with the fonts set.
+% \TestFiles{gotham-test-035, gotham-test-036}
+% \TestMissing{format of framesubtitle, part and subsection are not tested (and not working) yet.}
+% \begin{macrocode}
+\def\gotham@titleformat#1{#1}
+\def\gotham@subtitleformat#1{#1}
+\def\gotham@parttitleformat#1{#1}
+\def\gotham@sectiontitleformat#1{#1}
+\def\gotham@subsectiontitleformat#1{#1}
+\def\gotham@frametitleformat#1{#1}
+\def\gotham@framesubtitleformat#1{#1}
+% IF ONE DAY: I can patch beamer with expl3, I will use the following commands instead.
+% %% \cs_new:Npn \__gotham_unchanged:n #1 {#1}
+% %% \cs_new:Npn \__gotham_title_format:n #1 {#1}
+% %% \cs_new:Npn \__gotham_subtitle_format:n #1 {#1}
+% %% \cs_new:Npn \__gotham_part_title_format:n #1 {#1}
+% %% \cs_new:Npn \__gotham_section_title_format:n #1 {#1}
+% %% \cs_new:Npn \__gotham_subsection_title_format:n #1 {#1}
+% %% \cs_new:Npn \__gotham_frametitle_format:n #1 {#1}
+% %% \cs_new:Npn \__gotham_framesubtitle_format:n #1 {#1}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\beamer@title,\beamer@subtitle,\sectionentry}
+% Since, case feature is not available in |setbeamerfont|; to make the uppercase, lowercase and title-case macros work in the title, subtitle, etc., we have to patch the appropriate |beamer| commands that set their values.
+% This solution was suggested by Enrico Gregorio in an answer to \href{http://tex.stackexchange.com/questions/112526/}{this StackExchange question}.
+% Remark: patchcmd from etoolbox (or other), is not compatible with expl3.
+% \UnitTested
+% \TestFiles{gotham-test-035, gotham-test-036}
+% \TestMissing{format of framesubtitle, part and subsection are not tested (and not working) yet.}
+% \begin{macrocode}
+\ExplSyntaxOff
+\patchcmd{\beamer@title}
+ {\def\inserttitle{#2}}
+ {\def\inserttitle{\gotham@titleformat{#2}}}
+ % {\def\inserttitle{ \__gotham_title_format:n{#2} }}
+ {}
+ {\PackageError{beamerfontthemegotham}{Patching~title~failed}\@ehc}
+\patchcmd{\beamer@subtitle}
+ {\def\insertsubtitle{#2}}
+ {\def\insertsubtitle{{\gotham@subtitleformat{#2}}}}
+ % {\def\insertsubtitle{ \__gotham_subtitle_format:n{#2} }}
+ {}
+ {\PackageError{beamerfontthemegotham}{Patching~subtitle~failed}\@ehc}
+\patchcmd{\sectionentry} % beamerbasenavigation.sty l.335
+ {\def\insertsectionhead{#2}}
+ {\def\insertsectionhead{\gotham@sectiontitleformat{#2}}}
+ {}
+ {\PackageError{beamerfontthemegotham}{Patching~section~title~failed}\@ehc}%
+%
+%% NOT WORKING YET!
+%% \patchcmd{\subsectionentry} % beamerbasenavigation.sty l.384
+%% {\def\insertsubsectionhead{##5}}
+%% {\def\insertsubsectionhead{\gotham@subsectiontitleformat{##5}}}
+%% {}
+%% {\PackageError{beamerfontthemegotham}{Patching~subsection~title~failed}\@ehc}%
+%
+\@tempswafalse
+\patchcmd{\beamer@section} % beamerbasesection.sty l. 209
+ {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
+ {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{\gotham@sectiontitleformat{#1}}}}
+ % \__gotham_section_title_format:n{#2}
+ {\@tempswatrue}
+ {}
+\patchcmd{\beamer@section} % beamerbasesection.sty l. 209
+ {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}}
+ {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\noexpand\gotham@sectiontitleformat{\unexpanded{#1}}}}}
+ % \exp_not:N \__gotham_section_title_format:n {#1}
+ {\@tempswatrue}
+ {}
+\if@tempswa\else
+ {\PackageError{beamerfontthemegotham}{Patching~section~title~failed}\@ehc}
+\fi
+\@tempswafalse
+%
+%% NOT WORKING YET !
+%% \patchcmd{\beamer@subsection} % beamerbasesection.sty l. 209
+%% {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
+%% {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}\gotham@subsectiontitleformat{#1}}}
+%% % \__gotham_subsection_title_format:n{#2}
+%% {\@tempswatrue}
+%% {}
+%% \patchcmd{\beamer@subsection} % beamerbasesection.sty l. 209
+%% {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}}
+%% {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\noexpand\gotham@subsectiontitleformat{#1}}}}
+%% % \exp_not:N \__gotham_subsection_title_format:n {#1}
+%% {\@tempswatrue}
+%% {}
+%% \if@tempswa\else
+%% {\PackageError{beamerfontthemegotham}{Patching~subsection~title~failed}\@ehc}
+%% \fi%
+%% \@tempswafalse
+%
+%
+% Similarly, to make the |\MakeLowercase| and |\MakeUppercase| macros work in the frame title we have to patch |\beamer@@frametitle|.
+\providecommand{\beamer@insertframetitlecontinuation}{
+ \usebeamertemplate*{frametitle~continuation}
+}
+\patchcmd{\beamer@@frametitle} % beamerbaselocalstructure.sty l. 32
+ {\gdef\insertframetitle{{%
+ #2%
+ \ifnum\beamer@autobreakcount>0
+ \relax{}\space%
+ \beamer@insertframetitlecontinuation%
+ \fi%
+ }}%
+ }
+ {\gdef\insertframetitle{{%
+ \gotham@frametitleformat{#2}%
+ % \__gotham_frametitle_format:n {#2}
+ \ifnum\beamer@autobreakcount>0
+ \relax{}\space%
+ \beamer@insertframetitlecontinuation%
+ \fi%
+ }}%
+ }
+ {}
+ {\PackageWarning{beamerfontthemegotham}{Patching~frametitle~failed}\@ehc}
+%
+%% NOT WORKING YET !
+%% \patchcmd{\framesubtitle} % beamerbaselocalstructure.sty l.55
+%% {\only#2{\ifblank{#1}{}{\gdef\insertframesubtitle{{#1}}\beamer@aftersubtitle}}}
+%% {\only{#2}{\ifblank{#1}{}{\gdef\insertframesubtitle{{#1}}\beamer@aftersubtitle}}}
+%% {}
+%% {\PackageWarning{beamerfontthemegotham}{Patching~framesubtitle~failed}\@ehc}
+%
+\ExplSyntaxOn
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\usefonttheme}
+% \begin{syntax}
+% \cs{usefonttheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{title format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase}
+% \meta{title shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic}
+% \meta{subtitle format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase}
+% \meta{subtitle shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic}
+% \meta{frametitle format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase}
+% \meta{frametitle shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic}
+% \meta{framesubtitle format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase}
+% \meta{framesubtitle shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic}
+% \meta{part format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase}
+% \meta{part shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic}
+% \meta{section format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase}
+% \meta{section shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic}
+% \meta{subsection format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase}
+% \meta{subsection shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic}
+% \end{syntax}
+% The 'package' (usefonttheme) options can control both shape and format of title (of the presentation), subtitle, part title, section title, subsection title, frametitle and framesubtitle.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{font key -- interface}
+% Controls the format and shape of the title (of the presentation), subtitle, part title, section title, subsection title, frametitle and framesubtitle.
+% \UnitTested
+% \TestFiles{gotham-test-035, gotham-test-036}
+% \TestMissing{format of framesubtitle, part and subsection are not tested (and not working) yet.}
+% \begin{macrocode}
+\keys_define:nn { gotham / font }
+{
+ % format title
+ format~title .choice:,
+ format~title .usage:n = { general },
+ format~title .default:n = { regular },
+ format~title / regular .code:n =
+ {
+ \let\gotham@titleformat\@empty
+ % \cs_set_eq:NN \__gotham_title_format:n \__gotham_unchanged:n
+ },
+ format~title / lower .code:n =
+ {
+ \let\gotham@titleformat \text_lowercase:n %\lowercase
+ % \cs_set_eq:NN \__gotham_title_format:n \text_lowercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~title=lower~can~lead~to~problems. }
+ },
+ format~title / upper .code:n =
+ {
+ \let\gotham@titleformat \text_uppercase:n %\uppercase
+ % \cs_set_eq:NN \__gotham_title_format:n \text_uppercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~title=upper~can~lead~to~problems. }
+ },
+ format~title / titlecase .code:n =
+ {
+ \let\gotham@titleformat \text_titlecase_all:n %\MakeTitlecase
+ % \cs_set_eq:NN \__gotham_title_format:n \text_titlecase_all:n
+ \PackageWarning{ gotham } { Be~aware~that~format~title=titlecase~can~lead~to~problems. }
+ },
+ format~title / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~title / unknown } },
+}
+\keys_define:nn { gotham / font }
+{
+ % shape title
+ shape~title .choice:,
+ shape~title .usage:n = { general },
+ shape~title .default:n = { regular },
+ shape~title / regular .code:n =
+ {
+ \setbeamerfont{title}{shape=\normalfont}
+ },
+ shape~title / smallcaps .code:n =
+ {
+ \setbeamerfont{title}{shape=\scshape}
+ },
+ shape~title / italic .code:n =
+ {
+ \setbeamerfont{title}{shape=\itshape}
+ },
+ shape~title / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~title / unknown} },
+}
+
+\keys_define:nn { gotham / font }
+{
+ % format subtitle
+ format~subtitle .choice:,
+ format~subtitle .usage:n = { general },
+ format~subtitle .default:n = { regular },
+ format~subtitle / regular .code:n =
+ {
+ \let\gotham@subtitleformat\@empty
+ % \cs_set_eq:NN \__gotham_subtitle_format:n \__gotham_unchanged:n
+ },
+ format~subtitle / lower .code:n =
+ {
+ \let\gotham@subtitleformat \text_lowercase:n %\lowercase
+ % \cs_set_eq:NN \__gotham_subtitle_format:n \text_lowercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~subtitle=lower~can~lead~to~problems. }
+ },
+ format~subtitle / upper .code:n =
+ {
+ \let\gotham@subtitleformat \text_uppercase:n %\uppercase
+ \cs_set_eq:NN \__gotham_subtitle_format:n \text_uppercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~subtitle=upper~can~lead~to~problems. }
+ },
+ format~subtitle / titlecase .code:n =
+ {
+ \let\gotham@subtitleformat \text_titlecase_all:n %\MakeTitlecase
+ % \cs_set_eq:NN \__gotham_subtitle_format:n \text_titlecase_all:n %\MakeTitlecase
+ \PackageWarning{ gotham } { Be~aware~that~format~subtitle=titlecase~can~lead~to~problems. }
+ },
+ format~subtitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~subtitle / unknown} },
+}
+\keys_define:nn { gotham / font }
+{
+ % shape subtitle
+ shape~subtitle .choice:,
+ shape~subtitle .usage:n = { general },
+ shape~subtitle .default:n = { regular },
+ shape~subtitle / regular .code:n =
+ {
+ \setbeamerfont{subtitle}{shape=\normalfont}
+ },
+ shape~subtitle / smallcaps .code:n =
+ {
+ \setbeamerfont{subtitle}{shape=\scshape}
+ },
+ shape~subtitle / italic .code:n =
+ {
+ \setbeamerfont{subtitle}{shape=\itshape}
+ },
+ shape~subtitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~subtitle / unknown} },
+}
+
+\keys_define:nn { gotham / font }
+{
+ % format frametitle
+ format~frametitle .choice:,
+ format~frametitle .usage:n = { general },
+ format~frametitle .default:n = { regular },
+ format~frametitle / regular .code:n =
+ {
+ \let\gotham@frametitleformat\@empty
+ % \cs_set_eq:NN \__gotham_frametitle_format:n \__gotham_unchanged:n
+ },
+ format~frametitle / lower .code:n =
+ {
+ \let\gotham@frametitleformat \text_lowercase:n %\lowercase
+ % \cs_set_eq:NN \__gotham_frametitle_format:n \text_lowercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~frametitle=lower~can~lead~to~problems. }
+ },
+ format~frametitle / upper .code:n =
+ {
+ \let\gotham@frametitleformat \text_uppercase:n %\uppercase
+ % \cs_set_eq:NN \__gotham_frametitle_format:n \text_uppercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~frametitle=upper~can~lead~to~problems. }
+ },
+ format~frametitle / titlecase .code:n =
+ {
+ \let\gotham@frametitleformat \text_titlecase_all:n %\Maketitlecase
+ % \cs_set_eq:NN \__gotham_frametitle_format:n \text_titlecase_all:n %\MakeTitlecase
+ \PackageWarning{ gotham } { Be~aware~that~format~frametitle=titlecase~can~lead~to~problems. }
+ },
+ format~frametitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~frametitle / unknown} },
+}
+\keys_define:nn { gotham / font }
+{
+ % shape frametitle
+ shape~frametitle .choice:,
+ shape~frametitle .usage:n = { general },
+ shape~frametitle .default:n = { regular },
+ shape~frametitle / regular .code:n =
+ {
+ \setbeamerfont{frametitle}{shape=\normalfont}
+ },
+ shape~frametitle / smallcaps .code:n =
+ {
+ \setbeamerfont{frametitle}{shape=\scshape}
+ },
+ shape~frametitle / italic .code:n =
+ {
+ \setbeamerfont{frametitle}{shape=\itshape}
+ },
+ shape~frametitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~frametitle / unknown} },
+}
+
+\keys_define:nn { gotham / font }
+{
+ % format framesubtitle
+ format~framesubtitle .choice:,
+ format~framesubtitle .usage:n = { general },
+ format~framesubtitle .default:n = { regular },
+ format~framesubtitle / regular .code:n =
+ {
+ \let\gotham@framesubtitleformat\@empty
+ % \cs_set_eq:NN \__gotham_framesubtitle_format:n \__gotham_unchanged:n
+ },
+ format~framesubtitle / lower .code:n =
+ {
+ \let\gotham@framesubtitleformat \text_lowercase:n %\lowercase
+ % \cs_set_eq:NN \__gotham_framesubtitle_format:n \text_lowercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~framesubtitle=lower~can~lead~to~problems. }
+ },
+ format~framesubtitle / upper .code:n =
+ {
+ \let\gotham@framesubtitleformat \text_uppercase:n %\uppercase
+ % \cs_set_eq:NN \__gotham_framesubtitle_format:n \text_uppercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~framesubtitle=upper~can~lead~to~problems. }
+ },
+ format~framesubtitle / titlecase .code:n =
+ {
+ \let\gotham@framesubtitleformat \text_titlecase_all:n %\Maketitlecase
+ % \cs_set_eq:NN \__gotham_framesubtitle_format:n \text_titlecase_all:n %\Maketitlecase
+ \PackageWarning{ gotham } { Be~aware~that~format~framesubtitle=titlecase~can~lead~to~problems. }
+ },
+ format~framesubtitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~framesubtitle / unknown} },
+}
+\keys_define:nn { gotham / font }
+{
+ % shape framesubtitle
+ shape~framesubtitle .choice:,
+ shape~framesubtitle .usage:n = { general },
+ shape~framesubtitle .default:n = { regular },
+ shape~framesubtitle / regular .code:n =
+ {
+ \setbeamerfont{framesubtitle}{shape=\normalfont}
+ },
+ shape~framesubtitle / smallcaps .code:n =
+ {
+ \setbeamerfont{framesubtitle}{shape=\scshape}
+ },
+ shape~framesubtitle / italic .code:n =
+ {
+ \setbeamerfont{framesubtitle}{shape=\itshape}
+ },
+ shape~framesubtitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~framesubtitle / unknown} },
+}
+
+\keys_define:nn { gotham / font }
+{
+ % format part
+ format~part .choice:,
+ format~part .usage:n = { general },
+ format~part .default:n = { regular },
+ format~part / regular .code:n =
+ {
+ \let\gotham@parttitleformat\@empty
+ % \cs_set_eq:NN \__gotham_part_title_format:n \text_titlecase:n
+ },
+ format~part / lower .code:n =
+ {
+ \let\gotham@parttitleformat \text_lowercase:n %\lowercase
+ % \cs_set_eq:NN \__gotham_part_title_format:n \text_lowercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~part=lower~can~lead~to~problems. }
+ },
+ format~part / upper .code:n =
+ {
+ \let\gotham@parttitleformat \text_uppercase:n %\uppercase
+ % \cs_set_eq:NN \__gotham_part_title_format:n \text_uppercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~part=upper~can~lead~to~problems. }
+ },
+ format~part / titlecase .code:n =
+ {
+ \let\gotham@parttitleformat\text_titlecase_all:n %\Maketitlecase
+ % \cs_set_eq:NN \__gotham_part_title_format:n \text_titlecase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~part=titlecase~can~lead~to~problems. }
+ },
+ format~part / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~part / unknown} },
+}
+\keys_define:nn { gotham / font }
+{
+ % shape part
+ shape~part .choice:,
+ shape~part .usage:n = { general },
+ shape~part .default:n = { regular },
+ shape~part / regular .code:n =
+ {
+ \setbeamerfont{part~title}{shape=\normalfont}
+ },
+ shape~part / smallcaps .code:n =
+ {
+ \setbeamerfont{part~title}{shape=\scshape}
+ },
+ shape~part / italic .code:n =
+ {
+ \setbeamerfont{part~title}{shape=\itshape}
+ },
+ shape~part / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~part / unknown} },
+}
+
+\keys_define:nn { gotham / font }
+{
+ % format section
+ format~section .choice:,
+ format~section .usage:n = { general },
+ format~section .default:n = { regular },
+ format~section / regular .code:n =
+ {
+ \let\gotham@sectiontitleformat\@empty
+ % \cs_set_eq:NN \__gotham_section_title_format:n \__gotham_unchanged:n
+ },
+ format~section / lower .code:n =
+ {
+ \let\gotham@sectiontitleformat \text_lowercase:n %\lowercase
+ % \cs_set_eq:NN \__gotham_section_title_format:n \text_lowercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~section=lower~can~lead~to~problems. }
+ },
+ format~section / upper .code:n =
+ {
+ \let\gotham@sectiontitleformat \text_uppercase:n %\uppercase
+ % \cs_set_eq:NN \__gotham_section_title_format:n \text_uppercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~section=upper~can~lead~to~problems. }
+ },
+ format~section / titlecase .code:n =
+ {
+ \let\gotham@sectiontitleformat \text_titlecase_all:n %\Maketitlecase
+ % \cs_set_eq:NN \__gotham_section_title_format:n \text_titlecase_all:n
+ \PackageWarning{ gotham } { Be~aware~that~format~section=titlecase~can~lead~to~problems. }
+ },
+ format~section / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~section / unknown} },
+}
+\keys_define:nn { gotham / font }
+{
+ % shape section
+ shape~section .choice:,
+ shape~section .usage:n = { general },
+ shape~section .default:n = { regular },
+ shape~section / regular .code:n =
+ {
+ \setbeamerfont{section~title}{shape=\normalfont}
+ },
+ shape~section / smallcaps .code:n =
+ {
+ \setbeamerfont{section~title}{shape=\scshape}
+ },
+ shape~section / italic .code:n =
+ {
+ \setbeamerfont{section~title}{shape=\itshape}
+ },
+ shape~section / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~section / unknown} },
+}
+
+\keys_define:nn { gotham / font }
+{
+ % format subsection
+ format~subsection .choice:,
+ format~subsection .usage:n = { general },
+ format~subsection .default:n = { regular },
+ format~subsection / regular .code:n =
+ {
+ \let\gotham@subsectiontitleformat\@empty
+ % \cs_set_eq:NN \__gotham_subsection_title_format:n \__gotham_unchanged:n
+ },
+ format~subsection / lower .code:n =
+ {
+ \let\gotham@subsectiontitleformat \text_lowercase:n %\lowercase
+ % \cs_set_eq:NN \__gotham_subsection_title_format:n \text_lowercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~subsection=lower~can~lead~to~problems. }
+ },
+ format~subsection / upper .code:n =
+ {
+ \let\gotham@subsectiontitleformat \text_uppercase:n %\uppercase
+ % \cs_set_eq:NN \__gotham_subsection_title_format:n \text_uppercase:n
+ \PackageWarning{ gotham } { Be~aware~that~format~subsection=upper~can~lead~to~problems. }
+ },
+ format~subsection / titlecase .code:n =
+ {
+ \let\gotham@subsectiontitleformat\text_titlecase_all:n %\Maketitlecase
+ % \cs_set_eq:NN \__gotham_subsection_title_format:n \text_titlecase_all:n
+ \PackageWarning{ gotham } { Be~aware~that~format~subsection=titlecase~can~lead~to~problems. }
+ },
+ format~subsection / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~subsection / unknown} },
+}
+\keys_define:nn { gotham / font }
+{
+ % shape subsection
+ shape~subsection .choice:,
+ shape~subsection .usage:n = { general },
+ shape~subsection .default:n = { regular },
+ shape~subsection / regular .code:n =
+ {
+ \setbeamerfont{subsection~title}{shape=\normalfont}
+ },
+ shape~subsection / smallcaps .code:n =
+ {
+ \setbeamerfont{subsection~title}{shape=\scshape}
+ },
+ shape~subsection / italic .code:n =
+ {
+ \setbeamerfont{subsection~title}{shape=\itshape}
+ },
+ shape~subsection / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~subsection / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Default font keys}
+% Apply default key options.
+% \UnitTested
+% \TestFiles{gotham-test-035}
+% \begin{macrocode}
+% when no value is given, default is called.
+\keys_set:nn { gotham / font } {
+ format~title, shape~title,
+ format~subtitle, shape~subtitle,
+ format~frametitle, shape~frametitle,
+ format~framesubtitle, shape~framesubtitle,
+ format~part, shape~part,
+ format~section, shape~section,
+ format~subsection, shape~subsection,
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Process font keys}
+% Process package options.
+% \UnitTested
+% \TestFiles{gotham-test-035}
+% \begin{macrocode}
+\ProcessKeyOptions[ gotham / font ]
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{implementation}
+% \begin{macrocode}
+%\endinput
+%</font>
+% \end{macrocode}
+% \end{implementation}
+%
+%
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%\begin{implementation}
+% \begin{macrocode}
+%<*color>
+\ProvidesExplPackage{beamercolorthemegotham}{2024/09/20}{1.1.0.b}{Gotham color theme}
+\RequirePackage{expl3}
+\RequirePackage{xparse}
+\RequirePackage{xcolor}
+% \end{macrocode}
+% \end{implementation}
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%% COLOR %%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{implementation}
+% \begin{variable}{\definecolor[named]{gAnthracite}, colors definition}
+% Definition of the Gotham colors.
+% \begin{macrocode}
+\definecolor[named]{gLightOrange}{HTML}{EB811B}
+\definecolor[named]{gLightGreen}{HTML}{14B03D}
+\definecolor[named]{gDeepBlue}{RGB}{42, 42, 255}
+\definecolor[named]{gDeepYellOr}{RGB}{255, 204, 0}
+\definecolor[named]{gAnthracite}{HTML}{2d3e50}
+\definecolor[named]{gLightTeal}{RGB}{172, 195, 210}
+\definecolor[named]{gPaleYell}{RGB}{255, 255, 240}
+\definecolor[named]{gDarkBlack}{gray}{0.1}
+\definecolor[named]{gDarkGrey}{gray}{0.25}
+\definecolor[named]{gMidGrey}{gray}{0.5}
+\definecolor[named]{gLightGrey}{gray}{0.9}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\colorlet{colorPale}, set gotham palette colors}
+% \begin{syntax}
+% \cs{colorlet} \marg{colorPale} \marg{gPaleYell}
+% \cs{colorlet} \marg{colorDark} \marg{gDarkBlack}
+% \cs{colorlet} \marg{colorA} \marg{gAnthracite}
+% \cs{colorlet} \marg{colorAreversed} \marg{gLightTeal}
+% \cs{colorlet} \marg{colorB} \marg{gMidGrey}
+% \cs{colorlet} \marg{colorC} \marg{gDeepYellOr}
+% \cs{colorlet} \marg{colorD} \marg{gLightOrange}
+% \cs{colorlet} \marg{colorE} \marg{gLightGreen}
+% \end{syntax}
+% Setup the colors use for presentations:
+% \begin{itemize}
+% \item |colorPale| is used for BG in light mode
+% \item |colorDark| is used for FG in light mode
+% \item |colorA| is used for frametitle and standout BG in light mode
+% \item |colorAreversed| is used for frametitle and standout BG in dark mode
+% \item |colorB| is used for progress bar and blocks BG
+% \item |colorC| is used for progress bar FG
+% \item |colorD| is used for alert FG/BG depending on the block mode
+% \item |colorE| is used for example FG/BG depending on the block mode
+% \end{itemize}
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\colorlet{colorPale}, set gotham palette colors}
+% A set Gotham palette: a list of color variables easily adapted.
+% \begin{macrocode}
+% Define the color palette
+\@ifundefined{\string\color@colorAreversed}{
+ % default colorset.
+ \colorlet{colorPale}{gPaleYell} % BG in light/normal mode
+ \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode
+ \colorlet{colorA}{gAnthracite} % frametitle, standin.out,
+ \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in,
+ \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks
+ \colorlet{colorC}{gDeepYellOr} % progress bar
+ \colorlet{colorD}{gLightOrange} % alert
+ \colorlet{colorE}{gLightGreen} % example
+}{
+ % else nothing to do, colors are already defined.
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_style_anthracite:}
+% Command to activate anthracite colorset.
+% \TestFiles{gotham-test-1037}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_color_set_style_anthracite:{
+ \colorlet{colorPale}{gPaleYell} % BG in light/normal mode
+ \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode
+ \colorlet{colorA}{gAnthracite} % frametitle, standin.out,
+ \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in,
+ \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks
+ \colorlet{colorC}{gDeepYellOr} % progress bar
+ \colorlet{colorD}{gLightOrange} % alert
+ \colorlet{colorE}{gLightGreen} % example
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_style_red:}
+% Command to activate red colorset.
+% \TestFiles{gotham-test-1037}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_color_set_style_red:{
+ \colorlet{colorPale}{gPaleYell} % BG in light/normal mode
+ \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode
+ \colorlet{colorA}{red} % frametitle, standin.out,
+ \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in,
+ \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks
+ \colorlet{colorC}{gDeepYellOr} % progress bar
+ \colorlet{colorD}{gLightOrange} % alert
+ \colorlet{colorE}{gLightGreen} % example
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\colorlet{colorBG}{colorPale}, set functional colors}
+% \begin{syntax}
+% \cs{colorlet} \marg{colorBG} \marg{colorPale}
+% \cs{colorlet} \marg{colorFG} \marg{colorDark}
+% \cs{colorlet} \marg{colorFrametitle} \marg{colorA}
+% \cs{colorlet} \marg{colorStandout} \marg{colorA}
+% \cs{colorlet} \marg{colorStandin} \marg{colorA}
+% \cs{colorlet} \marg{colorTitlepage} \marg{colorA}
+% \cs{colorlet} \marg{colorFiligrane} \marg{colorB}
+% \cs{colorlet} \marg{colorBackElement} \marg{colorB}
+% \cs{colorlet} \marg{colorProgBar} \marg{colorC}
+% \cs{colorlet} \marg{colorAlert} \marg{colorD}
+% \cs{colorlet} \marg{colorExample} \marg{colorE}
+% \end{syntax}
+% Setup the default color aliases used in the presentation theme definitions.
+% These aliases are partly redefined by dark/light/transparent modes.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\colorlet{colorBG}{colorPale}, set functional colors}
+% A set of variable easily adapted.
+% \begin{macrocode}
+% Define the color palette
+\colorlet{colorBG}{colorPale}
+\colorlet{colorFG}{colorDark}
+\colorlet{colorFrametitle}{colorA}
+\colorlet{colorStandout}{colorA}
+\colorlet{colorStandin}{colorPale}
+\colorlet{colorTitlepage}{colorA}
+\colorlet{colorFiligrane}{colorB}
+\colorlet{colorBackElement}{colorB}
+\colorlet{colorProgBar}{colorC}
+\colorlet{colorAlert}{colorD}
+\colorlet{colorExample}{colorE}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\providebool{darkBG}, \providebool{transparentBG}}
+% Variable to track color setup.
+% \begin{macrocode}
+% \providebool{reversedColor}
+% \boolfalse{reversedColor}
+\providebool{darkBG}
+\boolfalse{darkBG}
+\providebool{transparentBG}
+\booltrue{transparentBG}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_darkBG:}
+% Command to activate dark mode
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_color_set_darkBG:{
+ \setbeamercolor{normal~text}{%
+ fg=colorBG,
+ bg=colorFG,
+ }%
+ \usebeamercolor[fg]{normal~text}%
+ \booltrue{darkBG}%
+ \boolfalse{transparentBG}
+ \colorlet{colorFrametitle}{colorAreversed}
+ \colorlet{colorStandout}{colorAreversed}
+ \colorlet{colorStandin}{colorFG}
+ \colorlet{colorTitlepage}{colorAreversed}
+ % dark
+ \setbeamercolor{palette~primary}{% reversed color compared to normal text
+ use=normal~text,
+ fg=normal~text.bg,
+ bg=normal~text.fg
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_lightBG:}
+% Command to activate light background.
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_color_set_lightBG:{
+ \setbeamercolor{normal~text}{
+ fg=colorFG,
+ bg=colorBG
+ }
+ \usebeamercolor[fg]{normal~text}
+ \boolfalse{darkBG}
+ \boolfalse{transparentBG}
+ \colorlet{colorFrametitle}{colorA}
+ \colorlet{colorStandout}{colorA}
+ \colorlet{colorStandin}{colorBG}
+ \colorlet{colorTitlepage}{colorA}
+ % light
+ \setbeamercolor{palette~primary}{
+ % reversed color compared to normal text
+ use=normal~text,
+ fg=normal~text.bg,
+ bg=normal~text.fg
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_transparentBG:}
+% Command to activate transparent background.
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+% \newcommand{\gotham@colors@transparent}{
+\cs_new_protected:Nn \__gotham_color_set_transparentBG:{
+ \setbeamercolor{normal~text}{
+ fg=colorFG,
+ bg=,
+ }
+ \usebeamercolor[fg]{normal~text}
+ \boolfalse{darkBG}
+ \booltrue{transparentBG}
+ \colorlet{colorFrametitle}{colorA}
+ \colorlet{colorStandout}{colorA}
+ {\usebeamercolor[bg]{normal~text}\colorlet{colorStandin}{bg}}% this is not working because the colorlet is not kept outside of the {} environment...
+ % \usebeamercolor{normal~text} % reset % NOT working neither
+ \colorlet{colorStandin}{colorBG} % since the two previous lines are not working, let define it like light-bg
+ \colorlet{colorTitlepage}{colorA}
+ % like light background.
+ \setbeamercolor{palette~primary}{
+ % reversed color compared to normal text
+ use=normal~text,
+ fg=colorBG,
+ bg=normal~text.fg
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_transparent_block:}
+% Command to activate transparent block.
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_color_set_transparent_block:{
+ \setbeamercolor{block~title}{
+ use=normal~text,
+ fg=normal~text.fg,
+ bg=
+ }
+ \setbeamercolor{block~body}{
+ bg=
+ }
+ \setbeamercolor{alerted~text}{
+ fg=colorAlert
+ }
+ \setbeamercolor{example~text}{
+ fg=colorExample
+ }
+ \setbeamercolor{block~title~example}{
+ use={block~title, example~text},
+ bg=block~title.bg,
+ fg=example~text.fg
+ }
+ \setbeamercolor{block~title~alerted}{
+ use={block~title, alerted~text},
+ bg=block~title.bg,
+ fg=alerted~text.fg
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_fill_block:}
+% Command to activate fill block.
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_color_set_fill_block:{
+ \setbeamercolor{block~title}{
+ fg=colorBackElement!10!normal~text.fg,
+ bg=colorBackElement!135!fg
+ }
+ \setbeamercolor{block~body}{
+ use={block~title, normal~text},
+ bg=block~title.bg!50!normal~text.bg
+ }
+ \setbeamercolor{alerted~text}{
+ fg=colorAlert
+ }
+ \setbeamercolor{example~text}{
+ fg=colorExample
+ }
+ \setbeamercolor{block~title~example}{
+ use={block~title, example~text},
+ bg=block~title.bg,
+ fg=example~text.fg
+ }
+ \setbeamercolor{block~title~alerted}{
+ use={block~title, alerted~text},
+ bg=block~title.bg,
+ fg=alerted~text.fg
+ }
+}% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_color_set_native_block:}
+% Command to activate native block.
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_color_set_native_block:{
+ \setbeamercolor{block~title}{
+ fg=colorPale,
+ bg=colorBackElement!90!fg
+ }
+ \setbeamercolor{block~body}{
+ use={block~title, normal~text},
+ bg=block~title.bg!50!normal~text.bg
+ }
+ \setbeamercolor{alerted~text}{
+ fg=colorAlert
+ }
+ % With native block, we have to let alerted text with a visible color (not pale) to keep alert visible (cf test-1005).
+ % So, we have to create an extra color: alertedBlock~text.
+ \setbeamercolor{alertedBlock~text}{
+ fg=colorPale
+ }
+ \setbeamercolor{example~text}{
+ fg=colorPale
+ }
+ \setbeamercolor{block~title~alerted}{
+ use={block~title, alertedBlock~text},
+ bg=colorAlert,
+ fg=alertedBlock~text.fg
+ }
+ \setbeamercolor{block~title~example}{
+ use={block~title, example~text},
+ bg=colorExample,
+ fg=example~text.fg
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Gotham color adaptation}
+% Set colors variable from Gotham color setup that needs specific adaptation, i.e. |structure| as mentioned in Beamer documentation and |progress bar| since it is a new feature.
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\setbeamercolor{structure}{use=normal~text, fg=normal~text.fg}
+\setbeamercolor{progress~bar}{
+ use=alerted~text,
+ fg=colorProgBar,
+ bg=alerted~text.fg!50!black!30
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Usual color env}
+% Set colors variable from Gotham color setup.
+% The titles and structural elements (e.g. |itemize| bullets) are set in the same color as |normal text|.
+% This would ideally done by setting |normal text| as a parent style, which we do to set |titlelike|, but this doesn't work for |structure| as its foreground is set explicitly in |beamercolorthemedefault.sty|.
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\setbeamercolor{titlelike}{use=normal~text, parent=normal~text}
+\setbeamercolor{author}{use=normal~text, parent=normal~text}
+\setbeamercolor{date}{use=normal~text, parent=normal~text}
+\setbeamercolor{institute}{use=normal~text, parent=normal~text}
+\setbeamercolor{frametitle}{
+ use=palette~primary,
+ parent=palette~primary,
+ bg=colorFrametitle
+}
+% The Gotham inner or outer themes optionally display progress bars in various locations.
+% Their color is set by |progress bar| but the two different kinds can be customized separately.
+% The horizontal rule on the title page is also set based on the progress bar color and can be customized with |title separator|.
+\setbeamercolor{title~separator}{
+ use=progress~bar,
+ parent=progress~bar
+}
+\setbeamercolor{progress~bar~in~head/foot}{%
+ use=progress~bar,
+ parent=progress~bar
+}
+\setbeamercolor{progress~bar~in~part~page}{
+ use=progress~bar,
+ parent=progress~bar
+}
+\setbeamercolor{progress~bar~in~section~page}{
+ use=progress~bar,
+ parent=progress~bar
+}
+\setbeamercolor{progress~bar~in~splitvert}{
+ use=progress~bar,
+ parent=progress~bar
+}
+% \setbeamercolor{progress~bar~in~subsection~page}{
+% use=progress~bar,
+% parent=progress~bar
+% }
+% \setbeamercolor{progress~bar~in~subsubsection~page}{
+% use=progress~bar,
+% parent=progress~bar
+% }
+%
+% Blocks
+\setbeamercolor{block~body~alerted}{use=block~body, parent=block~body}
+\setbeamercolor{block~body~example}{use=block~body, parent=block~body}
+%
+% Footnote
+\setbeamercolor{footnote}{fg=normal~text.fg!90}
+\setbeamercolor{footnote~mark}{fg=.}
+%
+% Bibliography
+%
+% We also reset the bibliography colors in order to pick up the surrounding colors at the time of use.
+% This prevents us having to set the correct color in normal and standout mode.
+% \setbeamercolor{bibliography entry author}{fg=, bg=}
+% \setbeamercolor{bibliography entry title}{fg=, bg=}
+% \setbeamercolor{bibliography entry location}{fg=, bg=}
+% \setbeamercolor{bibliography entry note}{fg=, bg=}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{new color environments}
+% Set up colors for the the new beamer environment used by the theme.
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\setbeamercolor{frametitleSection}{use=primary~palette, bg=, fg=primary~palette.bg}
+\setbeamercolor{standout}{use=primary~palette, bg=colorStandout, fg=primary~palette.bg}
+\setbeamercolor{standin}{use=normal~text, bg=colorStandin, fg=normal~text.fg}
+
+\setbeamercolor{section~in~toc}{use=normal~text, parent=normal~text,}
+\setbeamercolor{subsection~in~toc}{use=normal~text, parent=normal~text,}
+\setbeamercolor{subsubsection~in~toc}{use=normal~text, parent=normal~text,}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\usecolortheme}
+% \begin{syntax}
+% \cs{usecolortheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{background} = \oarg{\defopt{transparent} \textbar light \textbar dark}
+% \meta{block} = \oarg{\defopt{native} \textbar fill \textbar transparent}
+% \meta{colorset} = \oarg{\defopt{anthracite} \textbar red }
+% \end{syntax}
+% The 'package' (usecolortheme) options can control color mode (dark, ligh or transparent background) and the block (native or fill or transparent).
+% Block environments such as |theorem| and |example| have no background color by default.
+% The option |block=fill| sets a background color based on the background and foreground of |normal text|.
+% The option |block=transparent| reverts the block environments to an empty background, which can be useful if changing colors mid-presentation.
+% The option |colorset=red| changes the colorset used to define a color theme.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{color key -- interface}
+% Controls the background mode (dark, ligh or transparent background) and the block (fill or transparent) and colorset (anthracite, red, blue, green, etc).
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\keys_define:nn { gotham / color }
+{
+ % block
+ block .choice:,
+ block .usage:n = { general },
+ block .default:n = { native },
+ block / native .code:n = { \__gotham_color_set_native_block: },
+ block / transparent .code:n = { \__gotham_color_set_transparent_block: },
+ block / fill .code:n = { \__gotham_color_set_fill_block: },
+ block / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: block / unknown} },
+}
+
+\keys_define:nn { gotham / color }
+{
+ % background
+ background .choice:,
+ background .usage:n = { general },
+ background .default:n = { transparent },
+ background / transparent .code:n = { \__gotham_color_set_transparentBG: },
+ background / light .code:n = { \__gotham_color_set_lightBG: },
+ background / dark .code:n = { \__gotham_color_set_darkBG: },
+ background / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: background / unknown} },
+}
+
+\keys_define:nn { gotham / color }
+{
+ % colorset
+ colorset .choice:,
+ colorset .usage:n = { general },
+ colorset .default:n = { anthracite },
+ colorset / anthracite .code:n = { \__gotham_color_set_style_anthracite: },
+ colorset / red .code:n = { \__gotham_color_set_style_red: },
+ % colorset / blue .code:n = { },
+ % colorset / green .code:n = { },
+ % colorset / orange .code:n = { },
+ % colorset / teal .code:n = { },
+ colorset / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: colorset / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Default color keys}
+% Apply default key options.
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+% when no value is given, default is called.
+\keys_set:nn { gotham / color } { background, block, colorset }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Process color keys}
+% Process package options.
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\ProcessKeyOptions[ gotham / color ]
+\mode<all>
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+%
+% \begin{implementation}
+% \begin{macrocode}
+%\endinput
+%</color>
+% \end{macrocode}
+% \end{implementation}
+%
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%
+%\begin{implementation}
+% \begin{macrocode}
+%<*inner>
+\ProvidesExplPackage{beamerinnerthemegotham}{2024/09/20}{1.1.0.b}{gotham inner theme}
+\RequirePackage{expl3}
+\RequirePackage{xparse}
+\RequirePackage{calc}
+\RequirePackage{tikz}
+% \end{macrocode}
+% \end{implementation}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%% INNER %%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{implementation}
+% A |beamer| inner theme dictates the style of the frame elements traditionally set in the ``body'' of each slide. These include:
+% \begin{itemize}
+% \item title page;
+% \item backgrounds;
+% \item standin/out;
+% \item part, section etc, pages;
+% \item table of content pages (including for sections...);
+% \item environement elements: \begin{itemize}
+% \item itemize, enumerate, and description environments;
+% \item block environments including theorems and proofs;
+% \item figures and tables; and
+% \item footnotes and plain text.
+% \end{itemize}
+% \end{itemize}
+% \end{implementation}
+%
+%
+
+%%% Titlepage %%%
+%%%%%%%%%%%%%%%%%%%
+%
+% \begin{implementation}
+% \begin{macro}{Compitibility mode for colors}
+% FROM COLOR THEME: useful to provide this recall when the inner theme is loaded without the color theme.
+% \begin{macrocode}
+\@ifundefined{\string\color@colorProgBar}{
+ \providebool{darkBG} \boolfalse{darkBG}
+ \providebool{transparentBG} \booltrue{transparentBG}
+ \colorlet{colorBG}{white}
+ \colorlet{colorFG}{black}
+ \colorlet{colorFrametitle}{purple}
+ \colorlet{colorStandout}{purple}
+ \colorlet{colorStandin}{purple}
+ \colorlet{colorTitlepage}{purple}
+ \colorlet{colorFiligrane}{gray}
+ \colorlet{colorBackElement}{gray}
+ \colorlet{colorProgBar}{orange}
+ \colorlet{colorAlert}{red}
+ \colorlet{colorExample}{green}
+ \colorlet{colorFrametitle}{purple}
+ \colorlet{colorTitlepage}{purple}
+ \setbeamercolor{progress~bar}{
+ use=alerted~text,
+ fg=colorProgBar,
+ bg=alerted~text.fg!50!black!30
+ }
+ \setbeamercolor{progress~bar~in~head/foot}{%
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{progress~bar~in~part~page}{
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{progress~bar~in~section~page}{
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{progress~bar~in~splitvert}{
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{frametitleSection}{use=primary~palette, bg=, fg=primary~palette.bg}
+ \setbeamercolor{standout}{use=primary~palette, bg=colorStandout, fg=primary~palette.bg}
+ \setbeamercolor{standin}{use=normal~text, bg=colorStandin, fg=normal~text.fg}
+ \setbeamercolor{section~in~toc}{use=normal~text, parent=normal~text,}
+ \setbeamercolor{subsection~in~toc}{use=normal~text, parent=normal~text,}
+ \setbeamercolor{subsubsection~in~toc}{use=normal~text, parent=normal~text,}
+}{
+ % else the colors are defined: this is fine.
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\maketitle,\titlepage}
+% Normal people should use |\maketitle| or |\titlepage| instead of using the |title page| beamer template directly.
+% Beamer already defines these macros, but we patch them here to make the title page |[plain]| by default, remove |\@thanks|, and ensure the title frame number doesn't count.
+% Inserts the title frame, or causes the current frame to use the |title page| template.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\def\maketitle{
+ \ifbeamer@inframe
+ \titlepage
+ \else
+ \frame[plain, noframenumbering]{\titlepage}
+ \fi
+}
+\def\titlepage{
+ \usebeamertemplate{title~page}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{title~graphic}{gotham}}
+% Definition of elements templates that will be used in titlepage.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\defbeamertemplate*{title~graphic}{gotham}{
+ % \vbox to 0pt {% %%%%% MODIFIED !
+ \vbox{
+ % \vspace*{2em} %%%%% COMMENT ADDED !
+ \inserttitlegraphic
+ }
+ \nointerlineskip
+}
+\defbeamertemplate*{title}{gotham}{
+ %\raggedright% %%%%% COMMENT ADDED !
+ \linespread{1.0}
+ \inserttitle
+ \par
+ \vspace*{0.5em}
+}
+\defbeamertemplate*{subtitle}{gotham}{
+ %\raggedright% %%%%% COMMENT ADDED !
+ \insertsubtitle
+ \par
+ \vspace*{0.5em}
+}
+\defbeamertemplate*{author}{gotham}{
+ \vspace*{1.em}
+ \insertauthor
+ \par
+ \vspace*{0.25em}
+}
+\defbeamertemplate*{date}{gotham}{
+ \insertdate
+ \par
+}
+\defbeamertemplate*{institute}{gotham}{
+ \vspace*{3mm}
+ \insertinstitute
+ \par
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\l__gotham_titleseparator_width_dim, \l__gotham_titleseparator_height_dim, \l__gotham_title_width_dim, \l__gotham_subtitle_width_dim, \l__gotham_title_max_width_dim}
+% Define the new lengths that will be used for titlepage templates.
+% \begin{macrocode}
+\dim_new:N \l__gotham_titleseparator_width_dim
+\dim_set:Nn \l__gotham_titleseparator_width_dim {\textwidth}
+\dim_new:N \l__gotham_titleseparator_height_dim
+\dim_set:Nn \l__gotham_titleseparator_height_dim {2pt}
+% \newlength{\titlewidth}
+% \newlength{\subtitlewidth}
+% \newlength{\maxwidth}
+\dim_new:N \l__gotham_title_width_dim
+\dim_new:N \l__gotham_subtitle_width_dim
+\dim_new:N \l__gotham_title_max_width_dim
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\defbeamertemplate*{title~separator}{gotham}}
+% Define a new template for ``line'' displayed on some titlepage templates.
+% \begin{macrocode}
+\defbeamertemplate*{title~separator}{gotham}{
+ \begin{tikzpicture}
+ % \fill[fg] (0,0) rectangle (\gotham@titleseparator@linewidth, \gotham@titleseparator@lineheight);
+ \fill[fg] (0,0) rectangle
+ (\dim_use:N \l__gotham_titleseparator_width_dim,
+ \dim_use:N \l__gotham_titleseparator_height_dim);
+ \end{tikzpicture}
+ \par
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gothamtitlepagelogo}
+% The command to insert the institute logo on title page.
+% This command is left empty by default, to be redefined by users
+% \end{variable}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamtitlepagelogo}
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\providecommand{\gothamtitlepagelogo}{}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gothamtitlepagebg}
+% The command to insert the background title page
+% This command is left empty by default, to be redefined by users
+% \end{variable}
+% \end{documentation}
+%%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamtitlepagebg}
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\providecommand{\gothamtitlepagebg}{}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{title~page}{gotham~normal}}
+% Template for the normal gotham title page.
+% Each element is only typeset if it is defined by the user.
+% If |\subtitle| is empty, for example, it won't leave a blank space on the title slide.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+
+% Beamer's definition of |\insertauthor| is always nonempty, so we have to test another macro initialized by |\author{...}| to see if the user has defined an author.
+% This solution was suggested by Sam Carter in an answer to \href{https://tex.stackexchange.com/questions/241306/}{this Stack Exchange question}.
+
+\defbeamertemplate{title~page}{gotham~normal}{
+ \ifx\insertframetitle\@empty\else\vspace*{-3em}\fi
+ \begin{picture}(0,0)
+ % The text: title, author, institute, etc.
+ \put(-30,-125){\noindent
+ \fcolorbox{normal~text.bg}{normal~text.bg}{
+ \begin{minipage}[b][\paperheight]{\paperwidth}
+ \parbox[c][0pt][c]{0pt}{\gothamtitlepagebg}
+ \centering
+ \vfill
+ \ifx\inserttitle\@empty\else\usebeamertemplate*{title}\fi
+ \ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi
+ \usebeamertemplate*{title~separator}
+ % from above patch
+ \expandafter\ifblank\expandafter{\beamer@andstripped}{
+ % empty author
+ \vspace*{1.em}
+ }{
+ \usebeamertemplate*{author}
+ }
+ % \ifx\insertauthor\empty Empty~Author\else TT \fi
+ \ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi
+ \ifx\insertinstitute\@empty\else{\parbox{0.9\textwidth}{\raggedright\usebeamertemplate*{institute}} }\fi
+ \vfill
+ \vbox{}
+ \end{minipage}
+ }
+ % end third argument of fcolorobx
+ }
+
+ % the institute logo on title page
+ \put(234,-120){
+ \gothamtitlepagelogo
+ }
+
+ % the extra logos on title page (\inserttitlegraphic)
+ \put(-27,-123){
+ \noindent\vbox{
+ \begin{minipage}[b][0.96\paperheight]{0.899\textwidth}
+ \ifx\inserttitlegraphic\@empty\else\usebeamertemplate*{title~graphic}\fi
+ \end{minipage}
+ }
+ }
+ \end{picture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{title~page}{gotham~reversed}}
+% With a similarly layout to gotham normal, but this template inverses the background and foreground colors compared to the color mode chose (dark, light or transparent).
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\defbeamertemplate{title~page}{gotham~reversed}{
+ \begin{picture}(0,0)
+ % The background picture
+ \put(-28,-128){\gothamtitlepagebg}
+
+ % The text: title, author, institute, etc.
+ \put(-4,-125){\noindent
+ % \fcolorbox{declared-color-frame}{declared-color-background}{text}
+ \ifbool{darkBG}{
+ % Dark true
+ \setbeamercolor{normal~text}{fg=colorFG, }
+ \fcolorbox{colorPale}{colorPale}% reversed
+ }{
+ % Light
+ \setbeamercolor{normal~text}{fg=colorBG, }
+ \fcolorbox{colorTitlepage}{colorTitlepage}% reversed
+ }% end if
+ {
+ % begin third argument of fcolorobx
+ %\fcolorbox{normal~text.fg}{normal~text.fg}{
+ \begin{minipage}[b][\paperheight]{\textwidth}
+ \centering
+ \vfill
+ \ifx\inserttitle\@empty\else\usebeamertemplate*{title}\fi
+ \ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi
+ \usebeamertemplate*{title~separator}
+ \expandafter\ifblank\expandafter{\beamer@andstripped}{
+ % empty author
+ \vspace*{1.em}
+ }{
+ \usebeamertemplate*{author}
+ }
+ \ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi
+ \ifx\insertinstitute\@empty\else{\parbox{0.9\textwidth}{\raggedright\usebeamertemplate*{institute}} }\fi
+ \vfill
+ \vbox{}
+ \end{minipage}
+ }
+ % end third argument of fcolorobx
+ }
+
+ % the institute logo on title page
+ \put(234,-120){
+ \gothamtitlepagelogo
+ }
+
+ % the extra logos on title page (\inserttitlegraphic)
+ \put(-27,-123){
+ \noindent\vbox{
+ \begin{minipage}[b][0.96\paperheight]{0.899\textwidth}
+ \ifx\inserttitlegraphic\@empty\else\usebeamertemplate*{title~graphic}\fi
+ \end{minipage}
+ }
+ }
+ \end{picture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+% \begin{implementation}
+% \begin{macro}{defbeamertemplate{title~page}{gotham~dividedpic}}
+% This title page template is inspired from \url{https://github.com/LukasPietzschmann/awesome-beamer}
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\defbeamertemplate{title~page}{gotham~dividedpic}{
+ \long\def\tmpEmpty{}
+ \def\titlecontent{\usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle}
+ \def\subtitlecontent{\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle}
+ \settowidth\l__gotham_title_width_dim\titlecontent
+ \settowidth\l__gotham_subtitle_width_dim\subtitlecontent
+ \setlength\l__gotham_title_max_width_dim{\ifdim\l__gotham_title_width_dim>\l__gotham_subtitle_width_dim\l__gotham_title_width_dim\else\l__gotham_subtitle_width_dim\fi}
+ % \thispagestyle{navigation@titlepage}
+ \begin{minipage}{.55\textwidth}
+ \raggedright
+ \titlecontent\\
+ \subtitlecontent\\
+ % \textcolor{accent}{\rule{\ifdim\l__gotham_title_max_width_dim<.55\textwidth\l__gotham_title_max_width_dim\else.55\textwidth\fi}{\smile@linewidth}}\\[2em]
+ \textcolor{colorProgBar}{\rule{\ifdim\l__gotham_title_max_width_dim<.55\textwidth\l__gotham_title_max_width_dim\else.55\textwidth\fi}{\dim_use:N \l__gotham_titleseparator_height_dim}}\\[2em]
+ \usebeamerfont{author}\usebeamercolor[fg]{author}
+ \insertauthor\\
+ % \ifx\insertauthor\empty\else
+ \expandafter\ifblank\expandafter{\beamer@andstripped}{
+ % empty author
+ \vspace*{1.em}
+ }{
+ \usebeamerfont{author}\usebeamercolor[fg]{author}
+ \insertshortauthor
+ \vspace{2em}
+ }
+ % \fi
+ \ifx\insertinstitute\@empty\else{
+ \usebeamertemplate*{institute}\vspace{2em}
+ }\fi
+ \insertdate
+ \end{minipage}
+
+ % \ifdefined\@background
+ \begin{tikzpicture}[remember~picture, overlay]
+ \clip (current~page.south~east)
+ -- (current~page.north~east)
+ -- ++(-5.1, 0)
+ -- ++(-3, -\paperheight)
+ -- cycle;
+
+ \ifx\gothamtitlepagebg\tmpEmpty
+ \fill[
+ % path~fading=title~page~picture~fading,
+ % left~color=\ifbool{darkBG}{colorDark!200}{colorPale!100},
+ right~color=colorTitlepage!100,%\ifbool{darkBG}{colorPale!100}{colorDark!100},
+ % fading~angle=-15,
+ ]
+ (current~page.south~east)
+ rectangle
+ ++(\dimexpr-0.55\paperwidth, \dimexpr\paperheight+1cm);
+ \else
+ \node[
+ anchor=south~east,
+ inner~sep=0,
+ outer~sep=0
+ ] at (current~page.south~east) {
+ % \includegraphics[height=\paperheight]{\@background}
+ \gothamtitlepagebg
+ };
+ \fi
+ \end{tikzpicture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+% \begin{implementation}
+% \begin{macro}{defbeamertemplate{title~page}{gotham~splitvert}}
+% This title page template is inspired from \url{https://github.com/pcafrica/focus-beamertheme}
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\defbeamertemplate{title~page}{gotham~splitvert}{
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.5\paperheight}
+ \else %}{
+ \vspace*{-0.63\paperheight}
+ \fi %}
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}%
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east);
+ \end{tikzpicture}
+ }
+
+ % \vspace*{-1.65\baselineskip}
+ \begin{minipage}[b][0.35\paperheight]{\textwidth}
+ % \vspace{\baselineskip}
+ \usebeamerfont{title}
+ \usebeamercolor[fg]{frametitle}
+ \inserttitle
+ \end{minipage}
+
+ \newline
+ \begin{minipage}[t][0.1\paperheight]{\textwidth}
+ \usebeamerfont{subtitle}
+ \usebeamercolor[fg]{frametitle}
+ \insertsubtitle
+ \end{minipage}
+
+ % Set the title graphic in a zero-height box, so that
+ % the position of other elements is not affected.
+ \ifx\inserttitlegraphic\@empty\else
+ \newline
+ \vspace*{-1.65\baselineskip}
+ % {\vfuzz=9999pt\vbox~to~0pt {
+ {\parbox[c][0pt][c]{\textwidth}{
+ \raggedleft
+ \inserttitlegraphic
+ % \usebeamertemplate*{title~graphic}
+ }}
+ \fi
+
+ % \ifx\insertauthor\empty\else
+ \expandafter\ifblank\expandafter{\beamer@andstripped}{
+ % empty author
+ \vspace*{1.em}
+ }{
+ \newline
+ \begin{minipage}[t]{\textwidth}
+ % \usebeamercolor{normal~text}
+ % \usebeamerfont{author}
+ % \insertauthor
+ \vspace*{-1.5\baselineskip}
+ \usebeamertemplate*{author}
+ \end{minipage}
+ }
+ % \fi
+
+ \ifx\insertinstitute\@empty\else
+ \newline
+ \vspace*{-1.65\baselineskip}
+ \begin{minipage}[t]{\textwidth}
+ % \usebeamerfont{institute}
+ % \insertinstitute
+ \usebeamertemplate*{institute}
+ \end{minipage}
+ \fi
+
+ \ifx\insertdate\@empty\else
+ \newline
+ \begin{minipage}[t]{\textwidth}
+ \vspace*{2.65\baselineskip}
+ % \usebeamerfont{date}
+ % \insertdate
+ \usebeamertemplate*{date}
+ \end{minipage}
+ \vspace*{-3.15\baselineskip}
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+% \begin{documentation}
+% \begin{function}{\__gotham_set_template:nn}
+% \begin{syntax}
+% \cs{__gotham_set_template:nn} \marg{element} \marg{option}
+% \end{syntax}
+% Function that test if a beamertemplate with the given element and option name exists. If it exists then it is set (applied), otherwise an error is raised.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{function}{\__gotham_set_template:nn}
+% \begin{arguments}
+% \item element name (from beamer doc) in other word, the name the template category
+% \item prefined option (from beamer doc)
+% \end{arguments}
+% Function to set a beamertemplate with an option if it exists, otherwise an error is raised.
+% Unfortunatly, (as far as I know) it not possible to test if the element name exists independtly from the prefined option.
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\cs_if_exist:NTF \__gotham_set_template:nn {}{
+ % If it doesn't exist, then create it.
+
+ % Define the command to set template if it exists.
+ \cs_new_protected:Nn \__gotham_set_template:nn
+ {
+ \cs_if_exist:cTF {beamer@@tmpop@#1@#2} {
+ \setbeamertemplate{#1}[#2]
+ }{
+ \PackageError{beamerinnerthemegotham}
+ {The~beamer~template~named~'#1'~with~the~option~'#2'~does~not~exist}
+ {helping~message unknown setbeamertemplate option}
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useinnertheme}
+% \begin{syntax}
+% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{title page} = \oarg{\defopt{gotham normal} \textbar gotham splitvert \textbar gotham dividedpic \textbar gotham reversed}
+% \end{syntax}
+% The 'package' (useinnertheme) options can set different title page templates.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{inner key -- interface}
+% Controls for the title page templates.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\keys_define:nn { gotham / inner }
+{
+ % title~page
+ title~page .usage:n = { general },
+ title~page .default:n = { gotham~normal },
+ title~page .code:n = { \__gotham_set_template:nn{title~page}{#1} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+
+%% Backgrounds %%%
+%%%%%%%%%%%%%%%%%%
+
+% \begin{implementation}
+% \begin{macrocode}
+% Background lengths
+% \newlength{\imageBGoffset}
+% \setlength{\imageBGoffset}{\paperwidth}
+% \addtolength{\imageBGoffset}{-8.5mm}
+% \end{macrocode}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\l__gotham_template_name_prop}
+% Dictionary/map of template elements and predefined option according to the context.
+% Naming convention: template/What/Who, i.e. Name: key=background~canvas/watermark, value = gotham~draft
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\l__gotham_template_name_prop}
+% Dictionary/map of template elements and predefined option according to the context.
+% Naming convention: template/What/Who, i.e. Name: key=background~canvas/watermark, value = gotham~draft
+% \begin{macrocode}
+\prop_if_exist:NTF \l__gotham_template_name_prop
+{}{
+ % if not defined than define it.
+ \prop_new:N \l__gotham_template_name_prop
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+
+% \begin{documentation}
+% \begin{function}{\defbeamertemplate{background}{name}{def}}
+% \begin{syntax}
+% \cs{defbeamertemplate} \marg{background canvas} \marg{chosen name} \marg{definition}
+% \end{syntax}
+% The |background canvas| and the |background| beamer templates can be redifined by users if wanted/needed.
+% By default these templates are empty (except the color in background canvas when it not transparent).
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{background~canvas}{empty}{def}}
+% empty background canvas that contains color, that can be used to reset background.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\defbeamertemplate{background~canvas}{empty}{% empty background style has a color.
+ % \ifbeamercolorempty[bg]{background}{}{\color{bg}\vrule width\paperwidth height\paperheight}% copied beamer default here
+ \hspace*{28pt}
+ \begin{beamercolorbox}[wd=\paperwidth,
+ ht=\paperheight,
+ ]{background}
+ % nothing to write, only a background color
+ \end{beamercolorbox}
+}%
+\defbeamertemplate{background}{empty}{}%
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{background}{watermark/gotham~draft}{def}}
+% Background that contains a watermakr stamp with the word: DRAFT.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\defbeamertemplate{background}{watermark/gotham~draft}{
+ \begin{tikzpicture}[overlay,remember~picture]
+ \node[color=red, opacity=0.3, scale=5, rotate=45] at ([shift={(0,0)}]current~page.center) {DRAFT};
+ \end{tikzpicture}
+}
+% Add the template to the prop (dictionary)
+\prop_put:Nnn \l__gotham_template_name_prop {background/watermark} {gotham~draft}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_add_beamerframe_key:n}
+% \begin{arguments}
+% \item Name of the option to add, this name should also correspond to the name of the environment followed by the suffix 'env'.
+% \end{arguments}
+% Function to add an option of a frame using an environment.
+% For example, if the name 'optionA' is the argument given to the function, an frame option named 'optionA' will be added, and this option will surround the frame with the environment named 'optionAenv'.
+% So, the environment 'optionA' must have been declared before.
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\seq_if_exist:NTF \l__gotham_frameoption_tmp_seq {}{
+ % Define the sequence of frameoptions environments to close
+ \seq_new:N \l__gotham_frameoption_tmp_seq
+}
+
+\cs_if_exist:NTF \__gotham_add_beamerframe_key:n {}{
+ % if it doesn't exist, then create it.
+
+ % Define the command to add frameoptions
+ \cs_new_protected:Nn \__gotham_add_beamerframe_key:n {
+ \define@key{beamerframe}{ #1 }[true]{
+ \begin{#1env}
+ \seq_put_left:Nn \l__gotham_frameoption_tmp_seq { \end{#1env} }
+ }
+ }
+
+ % At the end of frames close the opened environments.
+ \apptocmd{\beamer@reseteecodes}{
+ % Join elements in the queue without separator then output the result
+ \seq_use:Nn \l__gotham_frameoption_tmp_seq {}
+ % clear working queue
+ \seq_clear:N \l__gotham_frameoption_tmp_seq
+ }{}{}
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[noBGC]}
+% Add a frame option |noBGC| to display an empty background canvas.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[noBCG]}
+% Add a frame option |noBGC| to display an empty background canvas.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+
+\newenvironment{noBGCenv}{
+ \setbeamertemplate{background~canvas}[empty]
+}{}
+\__gotham_add_beamerframe_key:n {noBGC}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\l_gotham_defaultWatermark}
+% Boolean to triggering if watermark should be displayed by default (without giving the frame option).
+% The variable is |false| by default.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\l_gotham_defaultWatermark}
+% Boolean variable to display the watermark by default (or not).
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\bool_new:N \l_gotham_defaultWatermark
+\bool_set_false:N \l_gotham_defaultWatermark
+% At every new frame, reset the options to default (unless some options/keys are given)
+\BeforeBeginEnvironment{frame}{
+ \bool_if:NTF \l_gotham_defaultWatermark {
+ \setbeamertemplate{background}[watermark/\prop_item:Nn \l__gotham_template_name_prop {background/watermark}]
+ }{% false
+ \setbeamertemplate{background}[empty]
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[watermark]}
+% Add a frame option |watermark| to display watermark in background.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[watermark]}
+% Add a frame option |watermark| to display an empty background canvas.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+% bool to trigger the add of watermark in background
+\newenvironment{watermarkenv}{
+ \setbeamertemplate{background}[
+ watermark/\prop_item:Nn \l__gotham_template_name_prop {background/watermark}
+ ]
+}{}
+\__gotham_add_beamerframe_key:n {watermark}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[nowatermark]}
+% Add a frame option |nowatermark| to do not display nowatermark in background.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[nowatermark]}
+% Add a frame option |nowatermark| to do not display an empty background canvas.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+% bool to trigger the add of nowatermark in background
+\newenvironment{nowatermarkenv}{
+ \setbeamertemplate{background}[empty]
+}{}
+\__gotham_add_beamerframe_key:n {nowatermark}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\l__gotham_tmpa_seq, \l__gotham_tmpa_tl, \l__gotham_tmpb_tl}
+% tmp variables
+% \begin{macrocode}
+\seq_if_exist:NTF \l__gotham_tmpa_seq
+{}{
+ % sequence
+ \seq_new:N \l__gotham_tmpa_seq
+}
+\tl_if_exist:NTF \l__gotham_tmpa_tl
+{}{
+ % token list A
+ \tl_new:N \l__gotham_tmpa_tl
+}
+\tl_if_exist:NTF \l__gotham_tmpb_tl
+{}{
+ % token list B
+ \tl_new:N \l__gotham_tmpb_tl
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_set_prop_template:nn}
+% \begin{arguments}
+% \item element name (from beamer doc) in other word, the name the template category
+% \item prefined option (from beamer doc)
+% \end{arguments}
+% Function that store in a map the name a template use later.
+% The following naming convention is used: Template/What/Who~Name: watermark/gotham~draft.
+% The means for example that if a beamer template is defined using
+% |\defbeamertemplate{background}{watermark/gotham~draft}{...}|,
+% then the function has to be call using
+% |\__gotham_set_prop_template{background/watermark}{gotham~draft}|,
+% that will filled internally the map using the l3 command
+% |\prop_put:Nnn \l__gotham_template_name_prop {background/watermark}{gotham~draft}|.
+% If the template name given as input does not exist, an error is raised.
+% \TestFiles{gotham-test-039}
+% \begin{macrocode}
+\cs_if_exist:NTF \__gotham_set_prop_template:nn {}{
+ % if it doesn't exist, then create it.
+ \cs_new_protected:Nn \__gotham_set_prop_template:nn
+ {
+ % Check if the first argument contains a /
+ \tl_if_in:nnTF { #1 } { / }
+ {
+ % Split the first around the /
+ \seq_set_split:Nnn \l__gotham_tmpa_seq { / } { #1 }
+ \tl_set:Nn \l__gotham_tmpa_tl { \seq_item:Nn \l__gotham_tmpa_seq { 1 } }
+ \tl_set:Nn \l__gotham_tmpb_tl { \seq_item:Nn \l__gotham_tmpa_seq { 2 } }
+ % Check if template exist
+ \cs_if_exist:cTF {beamer@@tmpop@\exp_not:V \l__gotham_tmpa_tl @\exp_not:V \l__gotham_tmpb_tl /#2} {
+ % set the value in the map, so it can be called later.
+ \prop_put:Nnn \l__gotham_template_name_prop {#1} {#2}
+ % \setbeamertemplate{#1}[#2]
+ }{
+ \PackageError{beamerthemegotham}
+ {The~beamer~template~named~'\l__gotham_tmpa_tl'~with~the~option~'\l__gotham_tmpb_tl/#2'~does~not~exist}
+ {helping~message}
+ }
+ }{% false -> error
+ \PackageError{beamerthemegotham}
+ {%
+ When~using~'\c_backslash_str\cs_to_str:N \__gotham_set_prop_template'~the~first~argument~should~contain~a~'/'~to~respect~the~naming~convention~used~(Template/what/Who~name),~but~you~gave~'#1'.~
+ As~example:~if~'\c_backslash_str defbeamertemplate{background}{watermark/gotham~draft}'...,~then~use~'\c_backslash_str\cs_to_str:N \__gotham_set_prop_template{background/watermark}{gotham~draft}'
+ }{helping~message}
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useinnertheme}
+% \begin{syntax}
+% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{watermark default} = \oarg{\defopt{off} \textbar on }
+% \meta{watermark template} = \oarg{\defopt{gotham draft} \textbar ...}
+% \end{syntax}
+% The 'package' (useinnertheme) options can control |background| (and |background canvas|) templates according to situations.
+% Block environments such as |theorem| and |example| have no background color by default.
+% The option |watermark default=on| can enable the |watermark template| on every frame; but it can still be turned off for specific frames when using the frame option |nowatermark|.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{inner key -- interface}
+% Controls the inner settings for background and watermark).
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\keys_define:nn { gotham / inner }{
+ % watermark template
+ watermark~template .usage:n = { general },
+ watermark~template .default:n = { gotham~draft },
+ watermark~template .code:n = { \__gotham_set_prop_template:nn{background/watermark}{#1} },
+}
+\keys_define:nn { gotham / inner }{
+ % watermark default
+ watermark~default .choice:,
+ watermark~default .usage:n = { general },
+ watermark~default .default:n = { false },
+
+ watermark~default / true .code:n = { \bool_set_true:N \l_gotham_defaultWatermark },
+ watermark~default / on .code:n = { \bool_set_true:N \l_gotham_defaultWatermark },
+ watermark~default / enable .code:n = { \bool_set_true:N \l_gotham_defaultWatermark },
+
+ watermark~default / false .code:n = { \bool_set_false:N \l_gotham_defaultWatermark },
+ watermark~default / off .code:n = { \bool_set_false:N \l_gotham_defaultWatermark },
+ watermark~default / disable .code:n = { \bool_set_false:N \l_gotham_defaultWatermark },
+
+ watermark~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'watermark~default',~so~being~ignored. }{helping~message: watermark~default / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%%% Stand IN/OUT %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[c]}
+% Add a frame option |c| for enhanced vertically centered text in the frame.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[c]}
+% Add a frame option |c| for improved vertically centered text in the frame.
+% By default, Beamer frames offer the |c| option to \textit{almost} vertically center the text, but the placement is a little too high.
+% To fix this, we redefine the |c| option to equalize |\beamer@frametopskip| and |\beamer@framebottomskip|.
+% This solution was suggested by Enrico Gregorio in an answer to \href{http://tex.stackexchange.com/questions/247826/}{this Stack Exchange question}.
+% \UnitTested
+% \TestFiles{gotham-test-039}
+% \begin{macrocode}
+\define@key{beamerframe}{c}[true]{
+ \beamer@frametopskip=0pt~plus~1fill\relax
+ \beamer@framebottomskip=0pt~plus~1fill\relax
+ \beamer@frametopskipautobreak=0pt~plus~.4\paperheight\relax
+ \beamer@framebottomskipautobreak=0pt~plus~.6\paperheight\relax
+ \def\beamer@initfirstlineunskip{}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{background~canvas}{standout/gotham}}
+% Definition of the background canvas template used by the standout frame of gotham theme.
+% \UnitTested
+% \TestFiles{gotham-test-040}
+% \begin{macrocode}
+\defbeamertemplate{background~canvas}{standout/gotham}{
+ % copied from beamer default
+ \ifbeamercolorempty[bg]{standout}{
+ % if the background standout color is transparent, do nothing.
+ }{
+ \usebeamercolor[bg]{standout}\color{bg}
+ \vrule~width\paperwidth~height\paperheight
+ }
+}
+% Add the template to the prop (dictionary) of background template to use according to the situation
+\prop_put:Nnn \l__gotham_template_name_prop {background~canvas/standout} {gotham}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{standout}{gotham}}
+% Definition of the standout template used by the standout frame of gotham theme.
+% This includes background canvas template, fonts and colors.
+% \UnitTested
+% \TestFiles{gotham-test-040}
+% \begin{macrocode}
+\defbeamertemplate*{standout}{gotham}{%
+ %
+ % \setkeys{beamerframe}{c}
+ % \setkeys{beamerframe}{noframenumbering}
+ % \centering
+
+ \setbeamertemplate{background~canvas}[standout/\prop_item:Nn \l__gotham_template_name_prop {background~canvas/standout}]
+ % \usebeamertemplate{background~canvas}%[standout/gotham]
+ \usebeamerfont{standout}
+ % if the background color is switched, then change foreground (font) color.
+ \ifbeamercolorempty[bg]{palette~primary}{
+ %true : empty background (transparent)
+ \setbeamercolor{background~canvas}{
+ use=palette~primary,
+ bg=palette~primary.fg
+ }
+ }{
+ %false : background not empty (dark or light)
+ \setbeamercolor{background~canvas}{
+ use=palette~primary,
+ bg=palette~primary.bg
+ }
+ }
+ \setbeamercolor{local~structure}{
+ fg=palette~primary.bg
+ }
+ \usebeamercolor[fg]{palette~primary}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[standout]}
+% Add a frame option |standout| to display the standout frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[standout]}
+% Add a frame option |standout| to display the standout frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-040}
+% \begin{macrocode}
+\newenvironment{standoutenv}{
+ \usebeamertemplate{standout}
+}{}
+\__gotham_add_beamerframe_key:n {standout}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{background~canvas}{standin/gotham}}
+% Definition of the background canvas template used by the standin frame of gotham theme.
+% \UnitTested
+% \TestFiles{gotham-test-040}
+% \begin{macrocode}
+\defbeamertemplate{background~canvas}{standin/gotham}{
+ \ifbeamercolorempty[bg]{standin}{
+ % if the background standin color is transparent, do nothing.
+ }{
+ % Uncomment this if-condition to have a 'light' background in 'transparent' color-mode.
+ \ifbool{transparentBG}{
+ % \color{} is not possible so, it is better to do nothing for transparent bg than creating a transparent vrule.
+ }{
+ \usebeamercolor[bg]{standin}\color{bg}
+ \vrule~width\paperwidth~height\paperheight
+ }
+ }
+}
+% Add the template to the prop (dictionary) of background template to use according to the situation
+\prop_put:Nnn \l__gotham_template_name_prop {background~canvas/standin} {gotham}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{standout}{gotham}}
+% Definition of the standout template used by the standout frame of gotham theme.
+% This includes background canvas template, fonts and colors.
+% \UnitTested
+% \TestFiles{gotham-test-040}
+% \begin{macrocode}
+\defbeamertemplate*{standin}{gotham}{
+ %
+ % \setkeys{beamerframe}{c}
+ % \setkeys{beamerframe}{noframenumbering}
+ % \centering
+ \setbeamertemplate{background~canvas}[standin/\prop_item:Nn \l__gotham_template_name_prop {background~canvas/standin}]
+ % \usebeamertemplate{background~canvas}%[standin/gotham]
+ \usebeamerfont{standin}
+ %
+ % Uncomment this if-condition to have a 'light' frametitle in 'transparent' color-mode.
+ % \ifbeamercolorempty[bg]{normal~text}{
+ % %true : empty background (transparent)
+ % \setbeamercolor{frametitle}{
+ % use=normal~text,
+ % bg=colorBG,
+ % fg=normal~text.fg
+ % }
+ % }{
+ % false
+ \setbeamercolor{frametitle}{
+ use=normal~text,
+ bg=normal~text.bg,
+ fg=normal~text.fg
+ }
+ % }
+ % \setbeamercolor{frametitle}{
+ % use=normal~text,
+ % bg=normal~text.bg,
+ % fg=normal~text.fg
+ % }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[standin]}
+% Add a frame option |standin| to display the standin frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[standin]}
+% Add a frame option |standin| to display the standin frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-040}
+% \begin{macrocode}
+\newenvironment{standinenv}{
+ \usebeamertemplate{standin}
+}{}
+\__gotham_add_beamerframe_key:n {standin}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useinnertheme}
+% \begin{syntax}
+% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{standin template} = \oarg{\defopt{gotham} \textbar ...}
+% \meta{standout template} = \oarg{\defopt{gotham} \textbar ...}
+% \end{syntax}
+% The 'package' (useinnertheme) options can control |standout| (and |standin|) templates.
+% These templates are activated when giving the frame option |\begin{frame}[standin]| and |standout|.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{inner key -- interface}
+% Controls the inner settings for standout and standin.
+% \UnitTested
+% \TestFiles{gotham-test-037}
+% \begin{macrocode}
+\keys_define:nn { gotham / inner }
+{
+ % standout template
+ standout~template .usage:n = { general },
+ standout~template .default:n = { gotham },
+ standout~template .code:n = { \__gotham_set_prop_template:nn{background~canvas/standout}{#1} },
+}
+\keys_define:nn { gotham / inner }
+{
+ % standin template
+ standin~template .usage:n = { general },
+ standin~template .default:n = { gotham },
+ standin~template .code:n = { \__gotham_set_prop_template:nn{background~canvas/standin}{#1} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%%% Sections %%%%
+%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[part]}
+% Add a frame option |part| to display the part frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[part]}
+% Add a frame option |part| to display the part frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\bool_new:N \l_gotham_partframe
+\bool_set_false:N \l_gotham_partframe
+\define@key{beamerframe}{part}[true]{
+ \bool_set_true:N \l_gotham_partframe
+ \begingroup
+ \usebeamertemplate{part~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_partframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_partframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{part}[true]{
+% \thispagestyle{navigation@part}
+% }
+% \def\ps@navigation@part{
+% \usebeamertemplate{part~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[section]}
+% Add a frame option |section| to display the section frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[section]}
+% Add a frame option |section| to display the section frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\bool_new:N \l_gotham_sectionframe
+\bool_set_false:N \l_gotham_sectionframe
+\define@key{beamerframe}{section}[true]{
+ \bool_set_true:N \l_gotham_sectionframe
+ \begingroup
+ \usebeamertemplate{section~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_sectionframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_sectionframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{section}[true]{
+% \thispagestyle{navigation@section}
+% }
+% \def\ps@navigation@section{
+% \usebeamertemplate{section~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[subsection]}
+% Add a frame option |subsection| to display the subsection frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[subsection]}
+% Add a frame option |subsection| to display the subsection frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\bool_new:N \l_gotham_subsectionframe
+\bool_set_false:N \l_gotham_subsectionframe
+\define@key{beamerframe}{subsec}[true]{
+ \bool_set_true:N \l_gotham_subsectionframe
+ \begingroup
+ \usebeamertemplate{subsection~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_subsectionframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_subsectionframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{subsec}[true]{
+% \thispagestyle{navigation@subsec}
+% }
+% \def\ps@navigation@subsec{
+% \usebeamertemplate{subsection~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[subsubsection]}
+% Add a frame option |subsubsection| to display the subsubsection frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[subsubsection]}
+% Add a frame option |subsubsection| to display the subsubsection frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\bool_new:N \l_gotham_subsubsectionframe
+\bool_set_false:N \l_gotham_subsubsectionframe
+\define@key{beamerframe}{subsubsec}[true]{
+ \bool_set_true:N \l_gotham_subsubsectionframe
+ \begingroup
+ \usebeamertemplate{subsubsection~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_subsubsectionframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_subsubsectionframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{subsubsec}[true]{
+% \thispagestyle{navigation@subsubsec}
+% }
+% \def\ps@navigation@subsubsec{
+% \usebeamertemplate{subsubsection~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\partContentName, \secContentName, \subsecContentName}
+% Commands containing the 'table of contents' title for part, section and subection (if theses ToC frames are enabled).
+% An option for subsubsection is not useful (at least up to understanding of the moment) because we do not display frame with the content of a subsubsection since it is the small unity we are working with.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\providebool{partContent}, \partContentName}
+% Boolean variable to enable the table of contents of the part, and the command containing the 'table of contents' title.
+% \begin{macrocode}
+% repeated from BeamerExtra
+\providebool{partContent}
+\booltrue{partContent}
+\providecommand{\partContentName}{Part~content}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+% \begin{implementation}
+% \begin{variable}{\providebool{secContent}, \secContentName}
+% Boolean variable to enable the table of contents of the section, and the command containing the 'table of contents' title.
+% \begin{macrocode}
+\providebool{sectionContent}
+\booltrue{sectionContent}
+\providecommand{\secContentName}{Section~content}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+% \begin{implementation}
+% \begin{variable}{\providebool{subsectionContent}, \subsecContentName}
+% Boolean variable to enable the table of contents of the subsection, and the command containing the 'table of contents' title.
+% \begin{macrocode}
+\providebool{subsectionContent}
+\booltrue{subsectionContent}
+\providecommand{\subsecContentName}{Subsection~content}
+% Subsubsection is not useful (at least up to understanding of the moment) because we do not display frame with the content of a subsubsection since it is the small unity we are working with.
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{part~title}{gotham}, \defbeamertemplate{section~title}{gotham}, \defbeamertemplate{subsection~title}{gotham}, \defbeamertemplate{subsection~title}{gotham}}
+% Definitions of templates controling how will appear the name/title of the parts, sections, subsections and subsubsections.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\def\partname{\translate{Part}}
+\defbeamertemplate*{part~title}{gotham}{
+ \usebeamercolor[fg]{part~title}
+ \usebeamerfont{part~title}
+ \partname \ \insertromanpartnumber
+ \\[1.75ex]
+ \insertpart
+}
+\defbeamertemplate*{section~title}{gotham}{
+ \usebeamercolor[fg]{section~title}
+ \usebeamerfont{section~title}
+ \insertsectionnumber.~
+ \insertsectionhead
+}
+\defbeamertemplate*{subsection~title}{gotham}{
+ \usebeamercolor[fg]{subsection~title}
+ \usebeamerfont{subsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.~
+ \insertsubsectionhead
+}
+\def\subsubsectionname{\translate{Subsubsection}}
+\def\insertsubsubsectionnumber{\arabic{subsubsection}}
+\def\subsubsectionpage{\usebeamertemplate*{subsubsection~page}}
+\defbeamertemplate*{subsubsection~title}{gotham}{
+ \usebeamercolor[fg]{subsubsection~title}
+ \usebeamerfont{subsubsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.\insertsubsubsectionnumber.~
+ \insertsubsubsectionhead
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_inner_disable_partpage:, \__gotham_inner_enable_partpage:}
+% Commands to disable or enable the display of a 'part page' frame at the begining of every new part.
+% It replaces the |\newcommand{\gotham@disablepartpage}| and | \newcommand{\gotham@enablepartpage}|
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_inner_disable_partpage:
+{
+ \AtBeginPart{
+ % intentionally empty
+ }
+}
+
+\cs_new_protected:Nn \__gotham_inner_enable_partpage:
+{
+ \AtBeginPart{
+ \ifbeamer@inframe
+ \partpage
+ \else
+ \frame[c, noframenumbering, part]{\partpage}
+ \fi
+
+ \ifbool{partContent}{
+ % true
+ \begin{frame}[noframenumbering, tocpart]
+ \frametitle{\partContentName}
+ \tableofcontents[part=\thepart]
+ \end{frame}
+ }{
+ % else empty
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_inner_disable_sectionpage:, \__gotham_inner_enable_sectionpage:}
+% Commands to disable or enable the display of a 'section page' frame at the begining of every new section.
+% It replaces the |\newcommand{\gotham@disablesectionpage}| and | \newcommand{\gotham@enablesectionpage}|
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_inner_disable_sectionpage:
+{
+ \AtBeginSection{
+ % intentionally empty
+ }
+}
+
+\cs_new_protected:Nn \__gotham_inner_enable_sectionpage:
+{
+ \AtBeginSection{
+ \ifbeamer@inframe
+ \sectionpage
+ \else
+ \frame[c, noframenumbering, section]{\sectionpage}
+ \fi
+
+ \ifbool{sectionContent}{
+ % true
+ \begin{frame}[noframenumbering, tocsec]
+ \frametitle{\secContentName}
+ {\tableofcontents[currentsection, currentsubsection,
+ hideothersubsections,
+ sectionstyle=show/shaded,
+ ]
+ }
+ \end{frame}
+ }{
+ % else empty
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_inner_disable_subsectionpage:, \__gotham_inner_enable_subsectionpage:}
+% Commands to disable or enable the display of a 'subsection page' frame at the begining of every new subsection.
+% It replaces the |\newcommand{\gotham@disablesubsectionpage}| and | \newcommand{\gotham@enablesubsectionpage}|
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_inner_disable_subsectionpage:
+{
+ \AtBeginSubsection{
+ % intentionally empty
+ }
+}
+
+\cs_new_protected:Nn \__gotham_inner_enable_subsectionpage:
+{
+ \AtBeginSubsection{
+ \ifbeamer@inframe
+ \subsectionpage
+ \else
+ \frame[c, noframenumbering, subsec]{\subsectionpage}
+ \fi
+
+ \ifbool{subsectionContent}{
+ % true
+ \begin{frame}[noframenumbering, tocsubsec]
+ \frametitle{\subsecContentName}
+ {\tableofcontents[currentsection, currentsubsection,
+ %currentsubsubsection,
+ hideothersubsections,
+ sectionstyle=show/shaded,
+ subsectionstyle=show/shaded/hide,
+ subsubsectionstyle=show/show/hide,
+ ]
+ }
+ \end{frame}
+ }{
+ % else empty
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_inner_disable_subsubsectionpage:, \__gotham_inner_enable_subsubsectionpage:}
+% Commands to disable or enable the display of a 'subsubsection page' frame at the begining of every new subsubsection.
+% It replaces the |\newcommand{\gotham@disablesubsubsectionpage}| and | \newcommand{\gotham@enablesubsubsectionpage}|
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\cs_new_protected:Nn \__gotham_inner_disable_subsubsectionpage:
+{
+ \AtBeginSubsubsection{
+ % intentionally empty
+ }
+}
+
+\cs_new_protected:Nn \__gotham_inner_enable_subsubsectionpage:
+{
+ \AtBeginSubsubsection{
+ \ifbeamer@inframe
+ \subsubsectionpage
+ \else
+ \frame[c, noframenumbering, subsubsec]{\subsubsectionpage}
+ \fi
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gotham@progressonsectionpage@linewidth}
+% Variables used to defined the progress bar in section pages.
+% If the vertical size of the bar want to be changed, the command |\setlength{\gotham@progressonsectionpage@linewidth}{<0.4pt>}| can be used.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gotham@progressonsectionpage@linewidth}
+% Variables used to defined the progress bar in section pages.
+% \begin{macrocode}
+% horizontal size of the bar (used internally and set to |\textwidth|.
+\newlength{\gotham@progressonsectionpage}
+% vertical size of the bar
+\newlength{\gotham@progressonsectionpage@linewidth}
+\setlength{\gotham@progressonsectionpage@linewidth}{3pt}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{progress~bar~in~section~page}{empty}, \defbeamertemplate{progress~bar~in~section~page}{display}}
+% Templates to disable or enable the display of the progress bar in section pages.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\defbeamertemplate{progress~bar~in~section~page}{empty}{
+ \vspace{\gotham@progressonsectionpage@linewidth+1ex}
+}
+
+\def\inserttotalframenumber{100}
+\defbeamertemplate{progress~bar~in~section~page}{display}{
+ \setlength{\gotham@progressonsectionpage}{
+ \textwidth * \ratio{\insertframenumber~pt}{\inserttotalframenumber~pt}
+ }
+ \begin{tikzpicture}
+ \fill[bg] (0,0) rectangle (\textwidth, \gotham@progressonsectionpage@linewidth);
+ \fill[fg] (0,0) rectangle (\gotham@progressonsectionpage, \gotham@progressonsectionpage@linewidth);
+ \end{tikzpicture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\sectionhoffset}
+% length controlling the horizontal offset of the (section title + progress bar) block.
+% Can be useful when extra stuff want to be display on sides of the block.
+% The default value is 0.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\sectionhoffset}
+% length controlling the horizontal offset of the (section title + progress bar) block.
+% \begin{macrocode}
+\newlength{\sectionhoffset}
+\setlength{\sectionhoffset}{0pt}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate*{part|section|subsection|subsubsection~page}{progressbar/simple}}
+% Template of part \textbar section \textbar subsection \textbar subsubsection pages shared by 'progressbar' and 'simple' style.
+% These pages contain what is inside the part \textbar section \textbar subsection \textbar subsubsection frame (without background and frametitle).
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\defbeamertemplate{part~page}{progressbar/simple}{
+ %\frametitle{toto section}
+ \centering
+ \hspace*{\sectionhoffset}
+ \begin{minipage}{22em}
+ % \raggedright
+ \centering
+ \usebeamertemplate*{part~title}\\[-1ex]
+ \usebeamertemplate*{progress~bar~in~section~page}
+ \par
+ \end{minipage}
+ \par
+ \vspace{\baselineskip}
+}
+\defbeamertemplate{section~page}{progressbar/simple}{
+ %\frametitle{toto section}
+ \centering
+ \hspace*{\sectionhoffset}
+ \begin{minipage}{22em}
+ \raggedright
+ \usebeamertemplate*{section~title}\\[-1ex]
+ \usebeamertemplate*{progress~bar~in~section~page}
+ \par
+ \end{minipage}
+ \par
+ \vspace{\baselineskip}
+}
+\defbeamertemplate{subsection~page}{progressbar/simple}{
+ %\frametitle{toto section}
+ \centering
+ \hspace*{\sectionhoffset}
+ \begin{minipage}{22em}
+ \raggedright
+ \usebeamertemplate*{section~title}\\[-1ex]
+ \usebeamertemplate*{progress~bar~in~section~page}
+ \par
+ \usebeamertemplate*{subsection~title}
+ \end{minipage}
+ \par
+ \vspace{\baselineskip}
+}
+\defbeamertemplate{subsubsection~page}{progressbar/simple}{
+ % \frametitle{toto section}
+ \centering
+ \hspace*{\sectionhoffset}
+ \begin{minipage}{22em}
+ \raggedright
+ \usebeamertemplate*{section~title}\\[-1ex]
+ \usebeamertemplate*{progress~bar~in~section~page}
+ \par
+ \usebeamertemplate*{subsection~title}
+ \par
+ \usebeamertemplate*{subsubsection~title}
+ \end{minipage}
+ \par
+ \vspace{\baselineskip}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{background~canvas}{part|section|subsection|subsubsection/gotham}}
+% Background canvas template of part \textbar section \textbar subsection \textbar subsubsection pages.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\defbeamertemplate{background~canvas}{part/gotham}{
+ \ifbeamercolorempty[bg]{normal~text}{}{\color{bg}\vrule width\paperwidth height\paperheight}
+}
+\defbeamertemplate{background~canvas}{section/gotham}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ \usebeamertemplate{background~canvas}
+}
+\defbeamertemplate{background~canvas}{subsection/gotham}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ \usebeamertemplate{background~canvas}
+}
+\defbeamertemplate{background~canvas}{subsubsection/gotham}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ \usebeamertemplate{background~canvas}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{part|section|subsection|subsubsection~frame}{gotham~simple}}
+% Template for part \textbar section \textbar subsection \textbar subsubsection frames with 'gotham simple' style.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\defbeamertemplate{part~frame}{gotham~simple}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[empty]
+ \setbeamertemplate{part~page}[progressbar/simple]
+ % \usebeamertemplate*{part~page}% activated automatically
+}
+
+\defbeamertemplate{section~frame}{gotham~simple}{
+ \setbeamertemplate{background~canvas}[section/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[empty]
+ \setbeamertemplate{section~page}[progressbar/simple]
+ % \usebeamertemplate*{section~page}% activated automatically
+}
+
+\defbeamertemplate{subsection~frame}{gotham~simple}{
+ \setbeamertemplate{background~canvas}[subsection/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[empty]
+ \setbeamertemplate{subsection~page}[progressbar/simple]
+ % \usebeamertemplate*{subsection~page}% activated automatically
+}
+
+\defbeamertemplate{subsubsection~frame}{gotham~simple}{
+ \setbeamertemplate{background~canvas}[subsubsection/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[empty]
+ \setbeamertemplate{subsubsection~page}[progressbar/simple]
+ % \usebeamertemplate*{subsubsection~page}% activated automatically
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{part|section|subsection|subsubsection~frame}{gotham~progressbar}}
+% Template for part \textbar section \textbar subsection \textbar subsubsection frames with 'gotham progressbar' style.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\defbeamertemplate{part~frame}{gotham~progressbar}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[display]
+ \setbeamertemplate{part~page}[progressbar/simple]
+ % \usebeamertemplate*{part~page}% activated automatically
+}
+
+\defbeamertemplate{section~frame}{gotham~progressbar}{
+ \setbeamertemplate{background~canvas}[section/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[display]
+ \setbeamertemplate{section~page}[progressbar/simple]
+ % \usebeamertemplate*{section~page}% activated automatically
+}
+
+\defbeamertemplate{subsection~frame}{gotham~progressbar}{
+ \setbeamertemplate{background~canvas}[subsection/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[display]
+ \setbeamertemplate{subsection~page}[progressbar/simple]
+ % \usebeamertemplate*{subsection~page}% activated automatically
+}
+
+\defbeamertemplate{subsubsection~frame}{gotham~progressbar}{
+ \setbeamertemplate{background~canvas}[subsubsection/gotham]
+ \setbeamercolor{frametitle}{
+ use={frametitleSection, normal~text},
+ bg=frametitleSection.fg,
+ fg=normal~text.fg
+ }
+ \setbeamertemplate{progress~bar~in~section~page}[display]
+ \setbeamertemplate{subsubsection~page}[progressbar/simple]
+ % \usebeamertemplate*{subsubsection~page}% activated automatically
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate*{progress~bar~in~splitvert}{empty|dispay}}
+% Internal template to display or disable (empty) the progressbar used in 'splitvert' (split vertically) style.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\defbeamertemplate{progress~bar~in~splitvert}{empty}{
+ \vspace{-0.5ex}
+}
+
+\defbeamertemplate*{progress~bar~in~splitvert}{display}{
+ % \nointerlineskip
+ \setlength{\gotham@progressonsectionpage}{
+ \paperwidth * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}
+ }
+ \begin{tikzpicture}
+ \fill[bg] (0,0) rectangle (\paperwidth, \gotham@progressonsectionpage@linewidth);
+ \fill[fg] (0,0) rectangle (\gotham@progressonsectionpage, \gotham@progressonsectionpage@linewidth);
+ \end{tikzpicture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{part|section|subsection|subsubsection page}{gotham splitvert progressbar/simple}, \defbeamertemplate{part|section|subsection|subsubsection frame}{gotham splitvert progressbar}, \defbeamertemplate{part|section|subsection|subsubsection frame}{gotham splitvert simple}}
+% Templates for part \textbar section \textbar subsection \textbar subsubsection pages that are common for 'gotham splitvert progressbar' and 'gotham splitvert simple' styles (which implies part \textbar section \textbar subsection \textbar subsubsection frames).
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+% Part page splitvert.
+\defbeamertemplate{part~page}{gotham~splitvert~progressbar/simple}{
+ % \frametitle{part!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east);
+ \end{tikzpicture}
+ }
+
+ % \hspace*{\sectionhoffset}
+ \begin{minipage}[b][0.45\paperheight]{\textwidth}
+ \centering
+ \usebeamertemplate*{part~title}
+ \end{minipage}
+ \\[-0.1\baselineskip]
+ \hspace*{-1.0cm}\noindent
+ \usebeamertemplate*{progress~bar~in~splitvert}
+
+ \newline
+ \begin{minipage}[t][0.5\paperheight]{\textwidth}
+ % \vspace{0.5\baselineskip}
+ % \usebeamerfont{subsection~ttitle}
+ % \usebeamercolor[bg]{frametitle}
+ % empty
+ \end{minipage}
+}
+\defbeamertemplate{part~frame}{gotham~splitvert~progressbar}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ % \setbeamercolor{frametitle}{}
+ % \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{part~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{part~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{part~page}% activated automatically
+}
+\defbeamertemplate{part~frame}{gotham~splitvert~simple}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ % \setbeamercolor{frametitle}{}
+ % \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{part~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamertemplate{progress~bar~in~splitvert}[empty]
+ \setbeamertemplate{part~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{part~page}% activated automatically
+}
+
+% Section page splitvert.
+\defbeamertemplate{section~page}{gotham~splitvert~progressbar/simple}{
+ % \frametitle{section!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east);
+ \end{tikzpicture}
+ }
+
+ \hspace*{\sectionhoffset}
+ \begin{minipage}[b][0.45\paperheight]{\textwidth}
+ \usebeamertemplate*{section~title}
+ \end{minipage}
+ \\[-0.1\baselineskip]
+ \hspace*{-1.0cm}\noindent
+ \usebeamertemplate*{progress~bar~in~splitvert}
+
+ \newline
+ \hspace*{\sectionhoffset}
+ \begin{minipage}[t][0.5\paperheight]{\textwidth}
+ % \vspace{0.5\baselineskip}
+ \usebeamerfont{subsection~title}
+ \usebeamercolor[bg]{frametitle}
+ % empty
+ \end{minipage}
+}
+\defbeamertemplate{section~frame}{gotham~splitvert~progressbar}{
+ \setbeamertemplate{background~canvas}[section/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{section~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{section~page}% activated automatically
+}
+\defbeamertemplate{section~frame}{gotham~splitvert~simple}{
+ \setbeamertemplate{background~canvas}[section/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamertemplate{progress~bar~in~splitvert}[empty]
+ \setbeamertemplate{section~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{section~page}% activated automatically
+}
+
+% Subsection page splitvert.
+\defbeamertemplate{subsection~page}{gotham~splitvert~progressbar/simple}{
+ % \frametitle{subsection!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east);
+ \end{tikzpicture}
+ }
+
+ \hspace*{\sectionhoffset}
+ \begin{minipage}[b][0.45\paperheight]{\textwidth}
+ \usebeamertemplate*{section~title}
+ \end{minipage}
+ \\[-0.1\baselineskip]
+ \hspace*{-1.0cm}\noindent
+ \usebeamertemplate*{progress~bar~in~splitvert}
+
+ \newline
+ \hspace*{\sectionhoffset}
+ \begin{minipage}[t][0.5\paperheight]{\textwidth}
+ % \vspace{0.5\baselineskip}
+ \usebeamerfont{subsection~title}
+ \usebeamercolor[bg]{frametitle}
+ \usebeamertemplate*{subsection~title}
+ % \par
+ % \vspace{1em}%phantom subsection
+ \end{minipage}
+}
+\defbeamertemplate{subsection~frame}{gotham~splitvert~progressbar}{
+ \setbeamertemplate{background~canvas}[subsection/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{subsection~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{subsection~page}% activated automatically
+}
+\defbeamertemplate{subsection~frame}{gotham~splitvert~simple}{
+ \setbeamertemplate{background~canvas}[subsection/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ \setbeamertemplate{progress~bar~in~splitvert}[empty]
+ \setbeamertemplate{subsection~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{subsection~page}% activated automatically
+}
+
+% Subsubection page splitvert.
+\defbeamertemplate{subsubsection~page}{gotham~splitvert~progressbar/simple}{
+ % \frametitle{subsubsection!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east);
+ \end{tikzpicture}
+ }
+
+ \hspace*{\sectionhoffset}
+ \begin{minipage}[b][0.45\paperheight]{\textwidth}
+ \usebeamertemplate*{section~title}
+ \end{minipage}
+ \\[-0.1\baselineskip]
+ \hspace*{-1.0cm}\noindent
+ \usebeamertemplate*{progress~bar~in~splitvert}
+
+ \newline
+ \hspace*{\sectionhoffset}
+ \begin{minipage}[t][0.5\paperheight]{\textwidth}
+ % \vspace{0.5\baselineskip}
+ \usebeamerfont{subsubsection~title}
+ \usebeamercolor[bg]{frametitle}
+ \usebeamertemplate*{subsection~title}
+ \par
+ \usebeamertemplate*{subsubsection~title}
+ \end{minipage}
+}
+\defbeamertemplate{subsubsection~frame}{gotham~splitvert~progressbar}{
+ \setbeamertemplate{background~canvas}[subsubsection/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ \setbeamercolor{subsubsection~title}{use=frametitle, fg=frametitle.bg}
+ \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{subsubsection~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{subsubsection~page}% activated automatically
+}
+\defbeamertemplate{subsubsection~frame}{gotham~splitvert~simple}{
+ \setbeamertemplate{background~canvas}[subsubsection/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg}
+ \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ \setbeamercolor{subsubsection~title}{use=frametitle, fg=frametitle.bg}
+ \setbeamertemplate{progress~bar~in~splitvert}[empty]
+ \setbeamertemplate{subsubsection~page}[gotham~splitvert~progressbar/simple]
+ % \usebeamertemplate*{subsubsection~page}% activated automatically
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{part|section|subsection|subsubsection page}{gotham progressvert}, \defbeamertemplate{part|section|subsection|subsubsection frame}{gotham progressvert}}
+% Templates for part \textbar section \textbar subsection \textbar subsubsection pages for 'gotham progressvert'.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+
+% Part page progressvert.
+\defbeamertemplate{part~page}{gotham~progressvert}{
+ % \frametitle{part!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ \setlength{\gotham@progressonsectionpage}{
+ \paperheight * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}
+ }
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \colorlet{gotham@@tempColorB}{fg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor]
+ ([shift={(0,0)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~east) --
+ ([shift={(0,0)}] current~page.north~east)
+ --cycle;
+ \node[color=gotham@@tempColorB, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{part~title}
+ \partname \ \insertromanpartnumber
+ \\[1.75ex]
+ \insertpart
+ }
+ };
+
+ \clip
+ ([shift={(0,0)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+
+ \fill[color=gotham@@tempColorB]
+ ([shift={(0,0)}]current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+ \node[color=gotham@@tempColor, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{part~title}
+ \partname \ \insertromanpartnumber
+ \\
+ \insertpart
+ }
+ };
+ \end{tikzpicture}
+ }
+}
+\defbeamertemplate{part~frame}{gotham~progressvert}{
+ \setbeamertemplate{background~canvas}[part/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{part~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{part~page}[gotham~progressvert]
+ % \usebeamertemplate*{section~page}% activated automatically
+}
+
+% Section page progressvert.
+\defbeamertemplate{section~page}{gotham~progressvert}{
+ % \frametitle{section!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ \setlength{\gotham@progressonsectionpage}{
+ \paperheight * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}
+ }
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \colorlet{gotham@@tempColorB}{fg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor]
+ ([shift={(0,0)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~east) --
+ ([shift={(0,0)}] current~page.north~east)
+ --cycle;
+ \node[color=gotham@@tempColorB, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{section~title}
+ \insertsectionnumber.~
+ \insertsectionhead}
+ };
+
+ \clip
+ ([shift={(0,0)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+
+ \fill[color=gotham@@tempColorB]
+ ([shift={(0,0)}]current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+ \node[color=gotham@@tempColor, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{section~title}
+ \insertsectionnumber.~
+ \insertsectionhead}
+ };
+ \end{tikzpicture}
+ }
+}
+\defbeamertemplate{section~frame}{gotham~progressvert}{
+ \setbeamertemplate{background~canvas}[section/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{section~page}[gotham~progressvert]
+ % \usebeamertemplate*{section~page}% activated automatically
+}
+
+% Subection page progressvert.
+\defbeamertemplate{subsection~page}{gotham~progressvert}{
+ % \frametitle{subsection!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ \setlength{\gotham@progressonsectionpage}{
+ \paperheight * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}
+ }
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \colorlet{gotham@@tempColorB}{fg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor]
+ ([shift={(0,0)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~east) --
+ ([shift={(0,0)}] current~page.north~east)
+ --cycle;
+ \node[color=gotham@@tempColorB, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{section~title}
+ \insertsectionnumber.~
+ \insertsectionhead}
+ \\
+ {\usebeamerfont{subsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.~
+ \insertsubsectionhead}
+ };
+
+ \clip
+ ([shift={(0,0)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+
+ \fill[color=gotham@@tempColorB]
+ ([shift={(0,0)}]current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+ \node[color=gotham@@tempColor, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{section~title}
+ \insertsectionnumber.~
+ \insertsectionhead}
+ \\
+ {\usebeamerfont{subsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.~
+ \insertsubsectionhead}
+ };
+ \end{tikzpicture}
+ }
+}
+\defbeamertemplate{subsection~frame}{gotham~progressvert}{
+ \setbeamertemplate{background~canvas}[subsection/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{subsection~page}[gotham~progressvert]
+ % \usebeamertemplate*{subsection~page}% activated automatically
+}
+
+% Subsubection page progressvert.
+\defbeamertemplate{subsubsection~page}{gotham~progressvert}{
+ % \frametitle{subsubsection!}
+ % \IfEmpty{\insertframetitle}{
+ \ifx\beamer@frametitle\@empty
+ \vspace*{-0.05\paperheight}
+ \else %}{
+ \vspace*{-0.165\paperheight}
+ \fi %}
+ \setlength{\gotham@progressonsectionpage}{
+ \paperheight * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}
+ }
+ {
+ \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}
+ \colorlet{gotham@@tempColorB}{fg}
+ \begin{tikzpicture}[overlay, remember~picture]
+ \fill[color=gotham@@tempColor]
+ ([shift={(0,0)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~west) --
+ ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~east) --
+ ([shift={(0,0)}] current~page.north~east)
+ --cycle;
+ \node[color=gotham@@tempColorB, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{section~title}
+ \insertsectionnumber.~
+ \insertsectionhead}
+ \\
+ {\usebeamerfont{subsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.~
+ \insertsubsectionhead}
+ \\
+ {\usebeamerfont{subsubsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.\insertsubsubsectionnumber.~
+ \insertsubsubsectionhead}
+ };
+
+ \clip
+ ([shift={(0,0)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+
+ \fill[color=gotham@@tempColorB]
+ ([shift={(0,0)}]current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) --
+ ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) --
+ ([shift={(0,0)}] current~page.south~east)
+ --cycle;
+ \node[color=gotham@@tempColor, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) {
+ {\usebeamerfont{section~title}
+ \insertsectionnumber.~
+ \insertsectionhead}
+ \\
+ {\usebeamerfont{subsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.~
+ \insertsubsectionhead}
+ \\
+ {\usebeamerfont{subsubsection~title}
+ \insertsectionnumber.\insertsubsectionnumber.\insertsubsubsectionnumber.~
+ \insertsubsubsectionhead}
+ };
+ \end{tikzpicture}
+ }
+}
+\defbeamertemplate{subsubsection~frame}{gotham~progressvert}{
+ \setbeamertemplate{background~canvas}[subsubsection/gotham]
+ % \setbeamercolor{frametitle}{}
+ \setlength{\sectionhoffset}{1cm}
+ % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamercolor{subsubsection~title}{use=frametitle, fg=frametitle.bg}
+ % \setbeamertemplate{progress~bar~in~splitvert}[display]
+ \setbeamertemplate{subsubsection~page}[gotham~progressvert]
+ % \usebeamertemplate*{subsubsection~page}% activated automatically
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+% \begin{documentation}
+% \begin{function}{\useinnertheme}
+% \begin{syntax}
+% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{partframe template} = \oarg{\defopt{gotham progressbar} \textbar gotham simple \textbar gotham splitvert progressbar \textbar gotham splitvert simple \textbar gotham progressvert \textbar ...}
+% \meta{partframe default} = \oarg{\defopt{on} \textbar off}
+% \meta{sectionframe template} = \oarg{\defopt{gotham progressbar} \textbar gotham simple \textbar gotham splitvert progressbar \textbar gotham splitvert simple \textbar gotham progressvert \textbar ...}
+% \meta{sectionframe default} = \oarg{\defopt{on} \textbar off}
+% \meta{subsectionframe template} = \oarg{\defopt{gotham progressbar} \textbar gotham simple \textbar gotham splitvert progressbar \textbar gotham splitvert simple \textbar gotham progressvert \textbar ...}
+% \meta{subsectionframe default} = \oarg{\defopt{on} \textbar off}
+% \meta{subsubframe template} = \oarg{\defopt{gotham progressbar} \textbar gotham simple \textbar gotham splitvert progressbar \textbar gotham splitvert simple \textbar gotham progressvert \textbar ...}
+% \meta{subsubframe default} = \oarg{\defopt{on} \textbar off}
+% \end{syntax}
+% The 'package' (useinnertheme) options can control |partframe templates| (or |sectionframe|, |subsectionframe| and |subsubsectionframe| respectively), which define the style of the partframe (or |sectionframe|, |subsectionframe| and |subsubsectionframe| respectively) displayed at every new beginning of sectioning.
+% These templates can be disabled (or re-enabled) by default using the option |partframe default| (or |sectionframe|, |subsectionframe| and |subsubsectionframe| respectively).
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{inner key -- interface}
+% Controls the inner settings for partframe (or |sectionframe|, |subsectionframe| and |subsubsectionframe| respectively) and standin.
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\keys_define:nn { gotham / inner }{
+ % partframe template
+ partframe~template .usage:n = { general },
+ partframe~template .default:n = { gotham~progressbar },
+ partframe~template .code:n = { \__gotham_set_template:nn{part~frame}{#1} }
+}
+\keys_define:nn { gotham / inner }
+{
+ % partframe default
+ partframe~default .choice:,
+ partframe~default .usage:n = { general },
+ partframe~default .default:n = { true },
+
+ partframe~default / true .code:n = { \__gotham_inner_enable_partpage: },
+ partframe~default / on .code:n = { \__gotham_inner_enable_partpage: },
+ partframe~default / enable .code:n = { \__gotham_inner_enable_partpage: },
+
+ partframe~default / false .code:n = { \__gotham_inner_disable_partpage: },
+ partframe~default / off .code:n = { \__gotham_inner_disable_partpage: },
+ partframe~default / disable .code:n = { \__gotham_inner_disable_partpage: },
+
+ partframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'partframe~default',~so~being~ignored. }{helping~message: partframe~default / unknown} },
+}
+
+\keys_define:nn { gotham / inner }{
+ % sectionframe template
+ sectionframe~template .usage:n = { general },
+ sectionframe~template .default:n = { gotham~progressbar },
+ sectionframe~template .code:n = { \__gotham_set_template:nn{section~frame}{#1} }
+}
+\keys_define:nn { gotham / inner }
+{
+ % sectionframe default
+ sectionframe~default .choice:,
+ sectionframe~default .usage:n = { general },
+ sectionframe~default .default:n = { true },
+
+ sectionframe~default / true .code:n = { \__gotham_inner_enable_sectionpage: },
+ sectionframe~default / on .code:n = { \__gotham_inner_enable_sectionpage: },
+ sectionframe~default / enable .code:n = { \__gotham_inner_enable_sectionpage: },
+
+ sectionframe~default / false .code:n = { \__gotham_inner_disable_sectionpage: },
+ sectionframe~default / off .code:n = { \__gotham_inner_disable_sectionpage: },
+ sectionframe~default / disable .code:n = { \__gotham_inner_disable_sectionpage: },
+
+ sectionframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'sectionframe~default',~so~being~ignored. }{helping~message: sectionframe~default / unknown} },
+}
+
+\keys_define:nn { gotham / inner }{
+ % subsectionframe template
+ subsectionframe~template .usage:n = { general },
+ subsectionframe~template .default:n = { gotham~progressbar },
+ subsectionframe~template .code:n = { \__gotham_set_template:nn{subsection~frame}{#1} }
+}
+\keys_define:nn { gotham / inner }
+{
+ % subsectionframe default
+ subsectionframe~default .choice:,
+ subsectionframe~default .usage:n = { general },
+ subsectionframe~default .default:n = { true },
+
+ subsectionframe~default / true .code:n = { \__gotham_inner_enable_subsectionpage: },
+ subsectionframe~default / on .code:n = { \__gotham_inner_enable_subsectionpage: },
+ subsectionframe~default / enable .code:n = { \__gotham_inner_enable_subsectionpage: },
+
+ subsectionframe~default / false .code:n = { \__gotham_inner_disable_subsectionpage: },
+ subsectionframe~default / off .code:n = { \__gotham_inner_disable_subsectionpage: },
+ subsectionframe~default / disable .code:n = { \__gotham_inner_disable_subsectionpage: },
+
+ subsectionframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'subsectionframe~default',~so~being~ignored. }{helping~message: subsectionframe~default / unknown} },
+}
+
+\keys_define:nn { gotham / inner }{
+ % subsubsectionframe template
+ subsubsectionframe~template .usage:n = { general },
+ subsubsectionframe~template .default:n = { gotham~progressbar },
+ subsubsectionframe~template .code:n = { \__gotham_set_template:nn{subsubsection~frame}{#1} }
+}
+\keys_define:nn { gotham / inner }
+{
+ % subsubsectionframe default
+ subsubsectionframe~default .choice:,
+ subsubsectionframe~default .usage:n = { general },
+ subsubsectionframe~default .default:n = { true },
+
+ subsubsectionframe~default / true .code:n = { \__gotham_inner_enable_subsubsectionpage: },
+ subsubsectionframe~default / on .code:n = { \__gotham_inner_enable_subsubsectionpage: },
+ subsubsectionframe~default / enable .code:n = { \__gotham_inner_enable_subsubsectionpage: },
+
+ subsubsectionframe~default / false .code:n = { \__gotham_inner_disable_subsubsectionpage: },
+ subsubsectionframe~default / off .code:n = { \__gotham_inner_disable_subsubsectionpage: },
+ subsubsectionframe~default / disable .code:n = { \__gotham_inner_disable_subsubsectionpage: },
+
+ subsubsectionframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'subsubsectionframe~default',~so~being~ignored. }{helping~message: subsubsectionframe~default / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%%% Table of Content %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{implementation}
+% \begin{macro}{\tikzset{section~number/.style={}} }
+% Definition of how sections, subsections and subsubsections' numbers will appear in 'gotham bullet' style for tables of contents.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\tikzset{section~number/.style={
+ circle,
+ fill=colorAlert,
+ minimum~size=0.4em,
+ text=colorAlert!10,
+ inner~sep=1.5pt,
+ },
+ section/.style={
+ draw=none,
+ rectangle,
+ minimum~height=1em,
+ minimum~width=0.8\textwidth,
+ text~width=0.8\textwidth,
+ text=fg,
+ align=left
+ },
+ subsection~number/.style={
+ circle,
+ fill=colorBackElement!50,
+ inner~sep=0pt,
+ minimum~size=0.15cm,
+ },
+ subsection/.style={
+ draw=none,
+ rectangle,
+ minimum~height=1em,
+ minimum~width=0.8\textwidth,
+ text~width=0.8\textwidth,
+ text=fg!80,
+ align=left
+ },
+ subsubsection~number/.style={
+ circle,
+ fill=colorBackElement!50,
+ inner~sep=0pt,
+ minimum~size=0.06cm,
+ },
+ subsubsection/.style={
+ draw=none,
+ rectangle,
+ minimum~height=1em,
+ minimum~width=0.8\textwidth,
+ text~width=0.8\textwidth,
+ text=fg!80,
+ align=left
+ },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{section~in~toc}{gotham~bullet}}
+% Template definitions for |gotham bullet| style of ToC that appear in section \textbar subsection \textbar subsubsection frame.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\defbeamertemplate{section~in~toc}{gotham~bullet}{
+ \hspace*{0.4cm}\tikz[baseline=-0.5ex]\node[section~number]{\textbf{\small\inserttocsectionnumber}};
+ \ \tikz[baseline=-0.5ex]\node[section]{\usebeamerfont*{toc~title} \inserttocsection};\\[-0.35cm]
+ \hspace*{1.13cm}{\usebeamercolor*[fg]{footer} \rule{0.6\paperwidth}{0.2pt}\\\nointerlineskip}
+}
+\defbeamertemplate{subsection~in~toc}{gotham~bullet}{
+ \hspace*{0.53cm}\tikz[baseline=-0.5ex]\node[subsection~number]{};
+ \hspace*{0.5cm}\tikz[baseline=-0.5ex]\node[subsection]{\usebeamerfont*{toc~subtitle}\inserttocsubsection};\\[-0.2cm]
+}
+\defbeamertemplate{subsubsection~in~toc}{gotham~bullet}{
+ \hspace*{0.58cm}\tikz[baseline=-0.5ex]\node[subsubsection~number]{};
+ \hspace*{0.69cm}\tikz[baseline=-0.5ex]\node[subsubsection]{\usebeamerfont*{toc~subtitle}\inserttocsubsubsection};\\[-0.2cm]
+}
+% Shaded for sections already done in the presentation.
+\defbeamertemplate{section~in~toc~shaded}{gotham~bullet}{
+ \hspace*{0.4cm}\tikz[baseline=-0.5ex]\node[section~number, fill=colorBackElement!40, text=background]{\usebeamerfont*{toc~subtitle}\textbf{\inserttocsectionnumber}};
+ \ \tikz[baseline=-0.5ex]\node[section, text=colorExample!20]{\usebeamerfont*{toc~title} \inserttocsection};\\[-0.35cm]
+ \hspace*{1.3cm}{\usebeamercolor*[fg]{footer} \rule{0.6\paperwidth}{0.2pt}\\\nointerlineskip}
+}
+\defbeamertemplate{subsection~in~toc~shaded}{gotham~bullet}{
+ \hspace*{0.55cm}\tikz[baseline=-0.5ex]\node[subsection~number,fill=colorBackElement!20]{};
+ \hspace*{0.5cm}\tikz[baseline=-0.5ex]\node[subsection, text=colorBackElement!20]{};\\[-0.2cm]
+}
+\defbeamertemplate{subsubsection~in~toc~shaded}{gotham~bullet}{
+ \hspace*{0.58cm}\tikz[baseline=-0.5ex]\node[subsubsection~number,fill=colorBackElement!20]{};
+ \hspace*{0.69cm}\tikz[baseline=-0.5ex]\node[subsubsection,text=colorBackElement!20]{\usebeamerfont*{toc~subtitle}\inserttocsubsubsection};\\[-0.2cm]
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{section~in~toc}{gotham~bullet}}
+% Template definitions for |gotham simple| style of ToC that appear in section \textbar subsection \textbar subsubsection frame.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\defbeamertemplate{part~in~toc}{gotham~simple}{
+ {{\inserttocpartnumber}.}~\inserttocpart
+ \\
+}
+\defbeamertemplate{section~in~toc}{gotham~simple}{
+ {{\inserttocsectionnumber}.}~\inserttocsection
+ \\
+}
+\defbeamertemplate{subsection~in~toc}{gotham~simple}{
+ \quad{{\inserttocsectionnumber}.\inserttocsubsectionnumber.}~\inserttocsubsection%
+ \\
+}
+\defbeamertemplate{subsubsection~in~toc}{gotham~simple}{
+ \qquad{{\inserttocsectionnumber}.\inserttocsubsectionnumber.\inserttocsubsubsectionnumber.}~\inserttocsubsubsection
+ \\
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{background~canvas}{toc/gotham~simple}, \defbeamertemplate{toc~page}{gotham~simple|bullet}}
+% Definition of toc page style named gotham simple and gotham bullet, used for table of content pages.
+% Both are using a dedicated background canvas.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\defbeamertemplate{background~canvas}{toc/gotham~simple}{
+ \ifbeamercolorempty[bg]{standin}{}{
+ \color{bg}\vrule width\paperwidth height\paperheight
+ }
+}
+\defbeamertemplate{toc~page}{gotham~simple}{
+ \setbeamertemplate{part~in~toc}[gotham~simple]
+ \setbeamertemplate{section~in~toc}[gotham~simple]
+ \setbeamertemplate{subsection~in~toc}[gotham~simple]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~simple]
+ \setbeamertemplate{background~canvas}[toc/gotham~simple]
+}
+\defbeamertemplate{toc~page}{gotham~bullet}{
+ \setbeamertemplate{part~in~toc}[gotham~bullet]
+ \setbeamertemplate{section~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{background~canvas}[toc/gotham~simple]
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[toc]}
+% Add a frame option |toc| to display the toc frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[toc]}
+% Add a frame option |toc| to display the toc frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\newenvironment{tocenv}{
+ \usebeamertemplate{toc~page}
+}{}
+\__gotham_add_beamerframe_key:n {toc}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{background~canvas}{toc~part|section|subsection~gotham}}
+% Defintion of the background canvas used by the toc in part\,\textbar\,section\,\textbar\,subsection.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\defbeamertemplate{background~canvas}{toc~part~gotham}{
+ \ifbeamercolorempty[bg]{normal~text}{}{\color{bg}\vrule width\paperwidth height\paperheight}
+}
+\defbeamertemplate{background~canvas}{toc~section~gotham}{
+ \ifbeamercolorempty[bg]{normal~text}{}{\color{bg}\vrule width\paperwidth height\paperheight}
+}
+\defbeamertemplate{background~canvas}{toc~subsection~gotham}{
+ \ifbeamercolorempty[bg]{normal~text}{}{\color{bg}\vrule width\paperwidth height\paperheight}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{toc~part~frame}{gotham~simple}}
+% Definition of the toc in part\,\textbar\,section\,\textbar\,subsection templates for gotham simple style.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\defbeamertemplate{toc~part~frame}{gotham~simple}{
+ \setbeamertemplate{part~in~toc}[gotham~simple]
+ \setbeamertemplate{section~in~toc}[gotham~simple]
+ \setbeamertemplate{subsection~in~toc}[gotham~simple]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~simple]
+ \setbeamertemplate{background~canvas}[toc~part~gotham]
+ \setbeamertemplate{frametitle}[toc~gotham]
+ % \usebeamertemplate*{part~page}% already included
+}
+\defbeamertemplate{toc~section~frame}{gotham~simple}{
+ \setbeamertemplate{part~in~toc}[gotham~simple]
+ \setbeamertemplate{section~in~toc}[gotham~simple]
+ \setbeamertemplate{subsection~in~toc}[gotham~simple]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~simple]
+ \setbeamertemplate{background~canvas}[toc~section~gotham]
+ \setbeamertemplate{frametitle}[toc~gotham]%
+ % \usebeamertemplate*{section~page}% already included
+}
+\defbeamertemplate{toc~subsection~frame}{gotham~simple}{
+ \setbeamertemplate{part~in~toc}[gotham~simple]
+ \setbeamertemplate{section~in~toc}[gotham~simple]
+ \setbeamertemplate{subsection~in~toc}[gotham~simple]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~simple]
+ \setbeamertemplate{background~canvas}[toc~subsection~gotham]
+ \setbeamertemplate{frametitle}[toc~gotham]
+ % \usebeamertemplate*{subsection~page}% already included
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{toc~part~frame}{gotham~bullet}}
+% Definition of the toc in part\,\textbar\,section\,\textbar\,subsection templates for gotham bullet style.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\defbeamertemplate{toc~part~frame}{gotham~bullet}{
+ \setbeamertemplate{part~in~toc}[gotham~bullet]
+ \setbeamertemplate{section~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{background~canvas}[toc~part~gotham]
+ \setbeamertemplate{frametitle}[toc~gotham]
+ % \usebeamertemplate*{part~page}% already included
+}
+\defbeamertemplate{toc~section~frame}{gotham~bullet}{
+ \setbeamertemplate{part~in~toc}[gotham~bullet]
+ \setbeamertemplate{section~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{background~canvas}[toc~section~gotham]
+ \setbeamertemplate{frametitle}[toc~gotham]%
+ % \usebeamertemplate*{section~page}% already included
+}
+\defbeamertemplate{toc~subsection~frame}{gotham~bullet}{
+ \setbeamertemplate{part~in~toc}[gotham~bullet]
+ \setbeamertemplate{section~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsubsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{background~canvas}[toc~subsection~gotham]
+ \setbeamertemplate{frametitle}[toc~gotham]
+ % \usebeamertemplate*{subsection~page}% already included
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[tocpart]}
+% Add a frame option |tocpart| to display the tocpart frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[tocpart]}
+% Add a frame option |tocpart| to display the tocpart frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\bool_new:N \l_gotham_tocpartframe
+\bool_set_false:N \l_gotham_tocpartframe
+\define@key{beamerframe}{tocpart}[true]{
+ \bool_set_true:N \l_gotham_tocpartframe
+ \begingroup
+ \usebeamertemplate{toc~part~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_tocpartframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_tocpartframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{tocpart}[true]{
+% \thispagestyle{navigation@tocpart}
+% }
+% \def\ps@navigation@tocpart{
+% \usebeamertemplate{toc~part~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[tocsec]}
+% Add a frame option |tocsec| to display the tocsec frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[tocsec]}
+% Add a frame option |tocsec| to display the tocsec frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\bool_new:N \l_gotham_tocsectionframe
+\bool_set_false:N \l_gotham_tocsectionframe
+\define@key{beamerframe}{tocsec}[true]{
+ \bool_set_true:N \l_gotham_tocsectionframe
+ \begingroup
+ \usebeamertemplate{toc~section~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_tocsectionframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_tocsectionframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{tocsec}[true]{
+% \thispagestyle{navigation@tocsec}
+% }
+% \def\ps@navigation@tocsec{
+% \usebeamertemplate{toc~section~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[tocsubsec]}
+% Add a frame option |tocsubsec| to display the tocsubsec frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[tocsubsec]}
+% Add a frame option |tocsubsec| to display the tocsubsec frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\bool_new:N \l_gotham_tocsubsectionframe
+\bool_set_false:N \l_gotham_tocsubsectionframe
+\define@key{beamerframe}{tocsubsec}[true]{
+ \bool_set_true:N \l_gotham_tocsubsectionframe
+ \begingroup
+ \usebeamertemplate{toc~subsection~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_tocsubsectionframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_tocsubsectionframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{tocsubsec}[true]{
+% \thispagestyle{navigation@tocsubsec}
+% }
+% \def\ps@navigation@tocsubsec{
+% \usebeamertemplate{toc~subsection~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[tocsubsubsec]}
+% Add a frame option |tocsubsubsec| to display the tocsubsubsec frame template.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[tocsubsubsec]}
+% Add a frame option |tocsubsubsec| to display the tocsubsubsec frame template.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\bool_new:N \l_gotham_tocsubsubsectionframe
+\bool_set_false:N \l_gotham_tocsubsubsectionframe
+\define@key{beamerframe}{tocsubsubsec}[true]{
+ \bool_set_true:N \l_gotham_tocsubsubsectionframe
+ \begingroup
+ \usebeamertemplate{toc~subsubsection~frame}
+}
+\apptocmd{\beamer@reseteecodes}{
+ \bool_if:NTF \l_gotham_tocsubsubsectionframe {
+ \endgroup
+ \bool_set_false:N \l_gotham_tocsubsubsectionframe
+ }{}
+}{}{}
+% \define@key{beamerframe}{tocsubsubsec}[true]{
+% \thispagestyle{navigation@tocsubsubsec}
+% }
+% \def\ps@navigation@tocsubsubsec{
+% \usebeamertemplate{toc~subsubsection~frame}
+% \@nameuse{ps@navigation}
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useinnertheme}
+% \begin{syntax}
+% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{tocframe template} = \oarg{\defopt{gotham bullet} \textbar gotham simple \textbar ...}
+% \meta{parttocframe template default} = \oarg{\defopt{gotham simple} \textbar gotham bullet}
+% \meta{parttocframe default} = \oarg{\defopt{on} \textbar off}
+% \meta{sectocframe template default} = \oarg{\defopt{gotham simple} \textbar gotham bullet}
+% \meta{sectocframe default} = \oarg{\defopt{on} \textbar off}
+% \meta{subsectocframe template default} = \oarg{\defopt{gotham simple} \textbar gotham bullet}
+% \meta{subsectocframe default} = \oarg{\defopt{on} \textbar off}
+% \end{syntax}
+% The 'package' (useinnertheme) options can control |parttocframe templates| (or |sectocframe| and |subsectocframe| respectively), which define the style of the table of content for partframe (or |sectionframe|, and |subsectionframe| respectively) displayed at every new beginning of sectioning.
+% These templates can be disabled (or re-enabled) by default using the option |parttocframe default| (or |sectocframe| and |subssectocframe| respectively).
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{inner key -- interface}
+% Controls the inner settings for |parttocframe| (or |sectocframe|, |subsectocframe| respectively).
+% \UnitTested
+% \TestFiles{gotham-test-041}
+% \begin{macrocode}
+\keys_define:nn { gotham / inner }
+{
+ % TOC style
+ tocframe~template .usage:n = { general },
+ tocframe~template .default:n = { gotham~bullet },
+ tocframe~template .code:n = { \__gotham_set_template:nn{toc~page}{#1} }
+}
+
+\keys_define:nn { gotham / inner }{
+ % parttocframe template
+ parttocframe~template .usage:n = { general },
+ parttocframe~template .default:n = { gotham~simple },
+ parttocframe~template .code:n = { \__gotham_set_template:nn{toc~part~frame}{#1} }
+}
+\keys_define:nn { gotham / inner }
+{
+ % parttocframe default
+ parttocframe~default .choice:,
+ parttocframe~default .usage:n = { general },
+ parttocframe~default .default:n = { true },
+
+ parttocframe~default / true .code:n = { \booltrue{partContent} },
+ parttocframe~default / on .code:n = { \booltrue{partContent} },
+ parttocframe~default / enable .code:n = { \booltrue{partContent} },
+
+ parttocframe~default / false .code:n = { \boolfalse{partContent} },
+ parttocframe~default / off .code:n = { \boolfalse{partContent} },
+ parttocframe~default / disable .code:n = { \boolfalse{partContent} },
+
+ parttocframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'parttocframe~default',~so~being~ignored. }{helping~message: parttocframe~default / unknown} },
+}
+
+\keys_define:nn { gotham / inner }{
+ % sectiontocframe template
+ sectiontocframe~template .usage:n = { general },
+ sectiontocframe~template .default:n = { gotham~simple },
+ sectiontocframe~template .code:n = { \__gotham_set_template:nn{toc~section~frame}{#1} }
+}
+\keys_define:nn { gotham / inner }
+{
+ % sectiontocframe default
+ sectiontocframe~default .choice:,
+ sectiontocframe~default .usage:n = { general },
+ sectiontocframe~default .default:n = { true },
+
+ sectiontocframe~default / true .code:n = { \booltrue{sectionContent} },
+ sectiontocframe~default / on .code:n = { \booltrue{sectionContent} },
+ sectiontocframe~default / enable .code:n = { \booltrue{sectionContent} },
+
+ sectiontocframe~default / false .code:n = { \boolfalse{sectionContent} },
+ sectiontocframe~default / off .code:n = { \boolfalse{sectionContent} },
+ sectiontocframe~default / disable .code:n = { \boolfalse{sectionContent} },
+
+ sectiontocframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'sectiontocframe~default',~so~being~ignored. }{helping~message: sectiontocframe~default / unknown} },
+}
+
+\keys_define:nn { gotham / inner }{
+ % subsectiontocframe template
+ subsectiontocframe~template .usage:n = { general },
+ subsectiontocframe~template .default:n = { gotham~simple },
+ subsectiontocframe~template .code:n = { \__gotham_set_template:nn{toc~subsection~frame}{#1} }
+}
+\keys_define:nn { gotham / inner }
+{
+ % subsectiontocframe default
+ subsectiontocframe~default .choice:,
+ subsectiontocframe~default .usage:n = { general },
+ subsectiontocframe~default .default:n = { true },
+
+ subsectiontocframe~default / true .code:n = { \booltrue{subsectionContent} },
+ subsectiontocframe~default / on .code:n = { \booltrue{subsectionContent} },
+ subsectiontocframe~default / enable .code:n = { \booltrue{subsectionContent} },
+
+ subsectiontocframe~default / false .code:n = { \boolfalse{subsectionContent} },
+ subsectiontocframe~default / off .code:n = { \boolfalse{subsectionContent} },
+ subsectiontocframe~default / disable .code:n = { \boolfalse{subsectionContent} },
+
+ subsectiontocframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'subsectiontocframe~default',~so~being~ignored. }{helping~message: subsectiontocframe~default / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%% Environments styles %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{implementation}
+% \begin{variable}{\gotham@blocksep, \gotham@blockadjust}
+% |blocksep| and |blockadjust| lengths used in |\gotham@block| definition.
+% While |gotham@strut| is a command to ensure verticale spacing equivalent to a line.
+% \begin{macrocode}
+\newlength{\gotham@blocksep}
+\newlength{\gotham@blockadjust}
+\setlength{\gotham@blocksep}{0.75ex}
+\setlength{\gotham@blockadjust}{0.25ex}
+\providecommand{\gotham@strut}{
+ \vphantom{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz (/)}
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\gotham@parskip, \linespread}
+% length parskip defined by gotham and the linespread are adjusted.
+% \begin{macrocode}
+ \newlength{\gotham@parskip}
+ \setlength{\gotham@parskip}{0.5em}
+ \setlength{\parskip}{\gotham@parskip}
+ \linespread{1.15}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\newcommand{\gotham@block}[1]}
+% The three different block environments differ only in their colours.
+% Rather than repeat the essentially the same template three times, we use the auxiliary macro |\gotham@block| to define all three templates.
+% \UnitTested
+% \TestFiles{gotham-test-043}
+% \begin{macrocode}
+\newcommand{\gotham@block}[1]{
+ \par\vskip\medskipamount
+ \setlength{\parskip}{0pt}
+
+ % If a background color is defined for the block title or body, we need to add a little bit of padding to the corresponding box.
+ % Ideally, this would be accomplished by setting |colsep=0.75ex|, which is intended to add ``color separation space'' only when the box has a colored background.
+ % Unfortunately, |colsep| also adds this separation if the background color is inherited, even if the inherited color is actually empty.
+ % (The technical reason for this boils down to the fact that the |\ifx| directive does not expand macros.)
+ %
+ % To achieve the correct spacing for |alertblock|s and |exampleblock|s as well as for normal blocks, we have to begin the |beamercolorbox| differently based on whether |block title| has an empty background.
+ %
+ % If the |block title| background is empty, or the user has explicitly removed the background from (e.g.) |block title alerted|, we just need to set a rightskip for a nice ragged-right block title.
+ \ifbeamercolorempty[bg]{block~title#1}{%
+ \begin{beamercolorbox}[rightskip=0pt~plus~4em]{block~title#1}
+ }{
+ \ifbeamercolorempty[bg]{block~title}{
+ \begin{beamercolorbox}[rightskip=0pt~plus~4em]{block~title#1}
+ }
+ % Otherwise, if the |block title| has a background, we set the padding based on |\gotham@blockskip|.
+ % However, we have to visually compensate for the |\gotham@strut| added to the block title (see below) by subtracting |\gotham@blockadjust| from the top and bottom padding.
+ %
+ {
+ \begin{beamercolorbox}[
+ sep=\dimexpr\gotham@blocksep-\gotham@blockadjust\relax,
+ leftskip=\gotham@blockadjust,
+ rightskip=\dimexpr\gotham@blockadjust~plus~4em\relax,
+ ]{block~title#1}
+ }
+ }
+ % We can now set the contents of the |block title|.
+ % The zero-width but positive-height box |\gotham@strut| ensures that the block title box has a consistent height, even if it lacks punctuation, ascenders, or descenders.
+ %
+ \usebeamerfont*{block~title#1}
+ \gotham@strut
+ \insertblocktitle
+ \gotham@strut
+ \end{beamercolorbox}
+ % Next, we typeset the |block body|.
+ % This the code is similar to, but simpler than, the |block title| code since we don't need to adjust for any struts.
+ \nointerlineskip
+ \ifbeamercolorempty[bg]{block~body#1}{
+ \begin{beamercolorbox}[vmode]{block~body#1}
+ }{
+ \ifbeamercolorempty[bg]{block~body}{
+ \begin{beamercolorbox}[vmode]{block~body#1}
+ }{
+ \begin{beamercolorbox}[sep=\gotham@blocksep, vmode]{block~body#1}
+ \vspace{-\gotham@parskip}
+ }
+ }
+ \usebeamerfont{block~body#1}
+ \setlength{\parskip}{\gotham@parskip}
+}
+% This concludes the auxiliary macro |\gotham@block|.
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{block}, \begin{alertblock}, \begin{exampleblock}}
+% Three boxed environment are defined by default: |block|, |alertblock| and |exampleblock|.
+% The style of blocks can be changed using |\setbeamertemplate{blocks}[rounded][shadow=true]|.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{block~begin}{gotham}}
+% We could define the block beamer templates using the auxiliary macro |\gotham@block|....
+% Yet, following the precious advice from Sam Carter \url{https://github.com/jolars/moloch/issues/6}, we should keep beamer blocks.
+% But of course, one can go back to metropolis style using the commented lines here.
+% \UnitTested
+% \TestFiles{gotham-test-043}
+% \begin{macrocode}
+% \defbeamertemplate*{block~begin}{gotham}{\gotham@block{}}
+% \defbeamertemplate*{block~alerted~begin}{gotham}{\gotham@block{~alerted}}
+% \defbeamertemplate*{block~example~begin}{gotham}{\gotham@block{~example}}
+% \defbeamertemplate*{block~end}{gotham}{\end{beamercolorbox}\vspace*{0.2ex}}
+% \defbeamertemplate*{block~alerted~end}{gotham}{\end{beamercolorbox}\vspace*{0.2ex}}
+% \defbeamertemplate*{block~example~end}{gotham}{\end{beamercolorbox}\vspace*{0.2ex}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{itemize}}
+% Three level of itemize environment are defined by default with decreasing size: |circle|, |triangle| and |square|.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{block~begin}{gotham}}
+% We define the block beamer templates using the auxiliary macro |\gotham@block|.
+% \UnitTested
+% \TestFiles{gotham-test-043}
+% \begin{macrocode}
+\defbeamertemplate*{itemize~item}{gotham}{%\textbullet}
+ \Large
+ \setbeamertemplate{itemize~item}[circle]
+ \usebeamertemplate{itemize~item}
+}
+\defbeamertemplate*{itemize~subitem}{gotham}{%$\blacktriangleright$
+ \scriptsize
+ \setbeamertemplate{itemize~subitem}[triangle]
+ \usebeamertemplate{itemize~subitem}
+}
+\defbeamertemplate*{itemize~subsubitem}{gotham}{%square or -
+ \Tiny
+ $\blacksquare$ % \textbf{-}
+ % \setbeamertemplate{itemize~subsubitem}[square]
+ % \usebeamertemplate{itemize~subsubitem} % not working because the size of the square is hardcoded.
+}
+
+%% TRY: enumitem package, enumitem and beamer are incompatible.
+% \setitemize{label=\usebeamerfont*{itemize~item}
+% \usebeamercolor[fg]{itemize~item}
+% \usebeamertemplate{itemize~item}}
+%% I tried to redefine everything to make them compatible, but it breaks the [alert] environment... So, I gave up.
+
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\defbeamertemplate{caption}, \defbeamertemplate{footnote}}
+% Gotham defines float captions with a numbered style and footnotes with traditional style (color can be tuned with |\setbeamercolor{footnote}|).
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{caption}, \defbeamertemplate{footnote}}
+% Templates definitions for caption and footnote.
+% \TestMissing{explanation}
+% \UnitTested
+% \TestFiles{gotham-test-043}
+% \begin{macrocode}
+\defbeamertemplate*{caption~label~separator}{gotham}{:~}
+\setbeamertemplate{caption}[numbered]
+\defbeamertemplate*{footnote}{gotham}{
+ \parindent~0em\noindent
+ \raggedright
+ \usebeamercolor{footnote}\hbox~to~0.8em{\hfil\insertfootnotemark}\insertfootnotetext\par
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Default inner keys}
+% Apply default key options.
+% \UnitTested
+% \TestFiles{gotham-test-043}
+% \begin{macrocode}
+% when no value is given, default is called.
+\keys_set:nn { gotham / inner } {
+ title~page,
+ watermark~template, watermark~default,
+ standout~template, standin~template,
+ partframe~template, partframe~default,
+ sectionframe~template, sectionframe~default,
+ subsectionframe~template, subsectionframe~default,
+ subsubsectionframe~template, subsubsectionframe~default,
+ tocframe~template,
+ parttocframe~template, parttocframe~default,
+ sectiontocframe~template, sectiontocframe~default,
+ subsectiontocframe~template, subsectiontocframe~default,
+ % subsubsectiontocframe~template, subsubsectiontocframe~default,
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Process inner keys}
+% Process package options.
+% \UnitTested
+% \TestFiles{gotham-test-043}
+% \begin{macrocode}
+\ProcessKeyOptions[ gotham / inner ]
+% \mode<all>
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+% \begin{implementation}
+% \begin{macrocode}
+%\endinput
+%</inner>
+% \end{macrocode}
+% \end{implementation}
+%
+%
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%
+%\begin{implementation}
+% \begin{macrocode}
+%<*outer>
+\ProvidesExplPackage{beamerouterthemegotham}{2024/09/20}{1.1.0.b}{gotham outer theme}
+\RequirePackage{expl3}
+\RequirePackage{xfp}
+\RequirePackage{calc}
+\RequirePackage{tikz}
+% \end{macrocode}
+% \end{implementation}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%% OUTER %%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+% \begin{implementation}
+% \begin{macro}{Compitibility mode for colors}
+% FROM COLOR THEME: useful to provide this recall when the inner theme is loaded without the color theme.
+% \begin{macrocode}
+\@ifundefined{\string\color@colorProgBar}{
+ \providebool{darkBG} \boolfalse{darkBG}
+ \providebool{transparentBG} \booltrue{transparentBG}
+ \colorlet{colorBG}{white}
+ \colorlet{colorFG}{black}
+ \colorlet{colorFrametitle}{purple}
+ \colorlet{colorStandout}{purple}
+ \colorlet{colorStandin}{purple}
+ \colorlet{colorTitlepage}{purple}
+ \colorlet{colorFiligrane}{gray}
+ \colorlet{colorBackElement}{gray}
+ \colorlet{colorProgBar}{orange}
+ \colorlet{colorAlert}{red}
+ \colorlet{colorExample}{green}
+ \colorlet{colorFrametitle}{purple}
+ \colorlet{colorTitlepage}{purple}
+ \setbeamercolor{progress~bar}{
+ use=alerted~text,
+ fg=colorProgBar,
+ bg=alerted~text.fg!50!black!30
+ }
+ \setbeamercolor{progress~bar~in~head/foot}{%
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{progress~bar~in~part~page}{
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{progress~bar~in~section~page}{
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{progress~bar~in~splitvert}{
+ use=progress~bar,
+ parent=progress~bar
+ }
+ \setbeamercolor{frametitleSection}{use=primary~palette, bg=, fg=primary~palette.bg}
+ \setbeamercolor{standout}{use=primary~palette, bg=colorStandout, fg=primary~palette.bg}
+ \setbeamercolor{standin}{use=normal~text, bg=colorStandin, fg=normal~text.fg}
+ \setbeamercolor{section~in~toc}{use=normal~text, parent=normal~text,}
+ \setbeamercolor{subsection~in~toc}{use=normal~text, parent=normal~text,}
+ \setbeamercolor{subsubsection~in~toc}{use=normal~text, parent=normal~text,}
+}{
+ % else the colors are defined: this is fine.
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\l__gotham_template_name_prop}
+% Dictionary/map of template elements and predefined option according to the context.
+% Naming convention: template/What/Who, i.e. Name: key=background~canvas/watermark, value = gotham~draft
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\l__gotham_template_name_prop}
+% Dictionary/map of template elements and predefined option according to the context.
+% Naming convention: template/What/Who, i.e. Name: key=background~canvas/watermark, value = gotham~draft
+% \begin{macrocode}
+\prop_if_exist:NTF \l__gotham_template_name_prop
+{}{
+ % if not defined than define it.
+ \prop_new:N \l__gotham_template_name_prop
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\l__gotham_tmpa_seq, \l__gotham_tmpa_tl, \l__gotham_tmpb_tl}
+% tmp variables
+% \begin{macrocode}
+\seq_if_exist:NTF \l__gotham_tmpa_seq
+{}{
+ % sequence
+ \seq_new:N \l__gotham_tmpa_seq
+}
+\tl_if_exist:NTF \l__gotham_tmpa_tl
+{}{
+ % token list A
+ \tl_new:N \l__gotham_tmpa_tl
+}
+\tl_if_exist:NTF \l__gotham_tmpb_tl
+{}{
+ % token list B
+ \tl_new:N \l__gotham_tmpb_tl
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_set_prop_template:nn}
+% \begin{arguments}
+% \item element name (from beamer doc) in other word, the name the template category
+% \item prefined option (from beamer doc)
+% \end{arguments}
+% Function that store in a map the name a template use later.
+% The following naming convention is used: Template/What/Who~Name: watermark/gotham~draft.
+% The means for example that if a beamer template is defined using
+% |\defbeamertemplate{background}{watermark/gotham~draft}{...}|,
+% then the function has to be call using
+% |\__gotham_set_prop_template{background/watermark}{gotham~draft}|,
+% that will filled internally the map using the l3 command
+% |\prop_put:Nnn \l__gotham_template_name_prop {background/watermark}{gotham~draft}|.
+% If the template name given as input does not exist, an error is raised.
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+\cs_if_exist:NTF \__gotham_set_prop_template:nn {}{
+ % if it doesn't exist, then create it.
+ \cs_new_protected:Nn \__gotham_set_prop_template:nn
+ {
+ % Check if the first argument contains a /
+ \tl_if_in:nnTF { #1 } { / }
+ {
+ % Split the first around the /
+ \seq_set_split:Nnn \l__gotham_tmpa_seq { / } { #1 }
+ \tl_set:Nn \l__gotham_tmpa_tl { \seq_item:Nn \l__gotham_tmpa_seq { 1 } }
+ \tl_set:Nn \l__gotham_tmpb_tl { \seq_item:Nn \l__gotham_tmpa_seq { 2 } }
+ % Check if template exist
+ \cs_if_exist:cTF {beamer@@tmpop@\exp_not:V \l__gotham_tmpa_tl @\exp_not:V \l__gotham_tmpb_tl /#2} {
+ % set the value in the map, so it can be called later.
+ \prop_put:Nnn \l__gotham_template_name_prop {#1} {#2}
+ % \setbeamertemplate{#1}[#2]
+ }{
+ \PackageError{beamerthemegotham}
+ {The~beamer~template~named~'\l__gotham_tmpa_tl'~with~the~option~'\l__gotham_tmpb_tl/#2'~does~not~exist}
+ {helping~message}
+ }
+ }{% false -> error
+ \PackageError{beamerthemegotham}
+ {
+ When~using~'\c_backslash_str\cs_to_str:N \__gotham_set_prop_template'~the~first~argument~should~contain~a~'/'~to~respect~the~naming~convention~used~(Template/what/Who~name),~but~you~gave~'#1'.~
+ As~example:~if~'\c_backslash_str defbeamertemplate{background}{watermark/gotham~draft}'...,~then~use~'\c_backslash_str\cs_to_str:N \__gotham_set_prop_template{background/watermark}{gotham~draft}'
+ }{helping~message}
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_add_beamerframe_key:n}
+% \begin{arguments}
+% \item Name of the option to add, this name should also correspond to the name of the environment followed by the suffix 'env'.
+% \end{arguments}
+% Function to add an option of a frame using an environment.
+% For example, if the name 'optionA' is the argument given to the function, an frame option named 'optionA' will be added, and this option will surround the frame with the environment named 'optionAenv'.
+% So, the environment 'optionA' must have been declared before.
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\seq_if_exist:NTF \l__gotham_frameoption_tmp_seq {}{
+ % Define the sequence of frameoptions environments to close
+ \seq_new:N \l__gotham_frameoption_tmp_seq
+}
+
+\cs_if_exist:NTF \__gotham_add_beamerframe_key:n {}{
+ % if it doesn't exist, then create it.
+
+ % Define the command to add frameoptions
+ \cs_new_protected:Nn \__gotham_add_beamerframe_key:n {
+ \define@key{beamerframe}{ #1 }[true]{
+ \begin{#1env}
+ \seq_put_left:Nn \l__gotham_frameoption_tmp_seq { \end{#1env} }
+ }
+ }
+
+ % At the end of frames close the opened environments.
+ \apptocmd{\beamer@reseteecodes}{
+ % Join elements in the queue without separator then output the result
+ \seq_use:Nn \l__gotham_frameoption_tmp_seq {}
+ % clear working queue
+ \seq_clear:N \l__gotham_frameoption_tmp_seq
+ }{}{}
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\__gotham_set_template:nn}
+% \begin{syntax}
+% \cs{__gotham_set_template:nn} \marg{element} \marg{option}
+% \end{syntax}
+% Function that test if a beamertemplate with the given element and option name exists. If it exists then it is set (applied), otherwise an error is raised.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{function}{\__gotham_set_template:nn}
+% \begin{arguments}
+% \item element name (from beamer doc) in other word, the name the template category
+% \item prefined option (from beamer doc)
+% \end{arguments}
+% Function to set a beamertemplate with an option if it exists, otherwise an error is raised.
+% Unfortunatly, (as far as I know) it not possible to test if the element name exists independtly from the prefined option.
+% \TestFiles{gotham-test-038}
+% \begin{macrocode}
+\cs_if_exist:NTF \__gotham_set_template:nn {}{
+ % If it doesn't exist, then create it.
+
+ % Define the command to set template if it exists.
+ \cs_new_protected:Nn \__gotham_set_template:nn
+ {
+ \cs_if_exist:cTF {beamer@@tmpop@#1@#2} {
+ \setbeamertemplate{#1}[#2]
+ }{
+ \PackageError{beamerinnerthemegotham}
+ {The~beamer~template~named~'#1'~with~the~option~'#2'~does~not~exist}
+ {helping~message unknown setbeamertemplate option}
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+
+%%% Sidebars %%%
+%%%%%%%%%%%%%%%%
+
+% \begin{documentation}
+% \begin{variable}{\sidebarRightHOffset, \sidebarLeftHOffset}
+% Length controling the horizontal offset in order to position |\gothamRightFiligrane| (respectively |\gothamLeftFiligrane|) when using the default sidebar canvas (right and left) from gotham.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\sidebarRightHOffset, \sidebarLeftHOffset}
+% lengths between borders (right and left) and the commands (|\gothamRightFiligrane| and |\gothamleftFiligrane|) used inside |\setbeamertemplate{sidebar~canvas~right}[default/gotham~filigrane]| (left respectively).
+% \UnitTested
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+% sidebar lengths
+\newlength{\sidebarRightHOffset}
+\setlength{\sidebarRightHOffset}{-2.5ex}
+\newlength{\sidebarLeftHOffset}
+\setlength{\sidebarLeftHOffset}{+0.5ex}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\gothamRightFiligrane, \gothamLeftFiligrane}
+% Commands used internally by |\setbeamertemplate{sidebar~canvas~right}[default/gotham~filigrane]| (left respectively), that are empty by default.
+% But these commands can be simply redefined to custom watermarks (filigrane) in sidebars.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\gothamRightFiligrane, \gothamLeftFiligrane}
+% Commands used internally by |\setbeamertemplate{sidebar~canvas~right}[default/gotham~filigrane]| (left respectively), that are empty by default.
+% But these commands can be simply redefined to custom watermarks (filigrane) in sidebars.
+% \UnitTested
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+% Command to add filigrane/edging in sidebar
+\newcommand{\gothamRightFiligrane}{
+ % left empty intentionally
+ % \rotatebox{90}{gotham right filigrane pattern}
+
+}
+\newcommand{\gothamLeftFiligrane}{
+ % left empty intentionally
+ % \rotatebox{-90}{\hspace*{5em} gotham left filigrane pattern}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{sidebar~canvas~right}{}, \defbeamertemplate{sidebar~canvas~left}{}}
+% Definitions of |\defbeamertemplate{sidebar~canvas~right}| (respectively |\defbeamertemplate{sidebar~canvas~left}|) that are used by gotham by default.
+% \UnitTested
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+\defbeamertemplate{sidebar~right}{default/beamer}{
+ \vfill
+ \llap{\insertlogo\hskip0.1cm}
+ \vskip2pt
+ \llap{\usebeamertemplate***{navigation~symbols}\hskip0.1cm}
+ \vskip2pt
+}
+\defbeamertemplate{sidebar~right}{default/empty}{}
+\defbeamertemplate{sidebar~canvas~right}{default/empty}{}
+\defbeamertemplate{sidebar~canvas~right}{default/gotham~filigrane}{
+ % pull to the left otherwise, the filigrane is outside of the frame.
+ \hspace*{\sidebarRightHOffset}
+ \gothamRightFiligrane
+}
+\defbeamertemplate{sidebar~left}{default/empty}{}
+\defbeamertemplate{sidebar~canvas~left}{default/empty}{}
+\defbeamertemplate{sidebar~canvas~left}{default/gotham~filigrane}{
+ \hspace*{\sidebarLeftHOffset}
+ \gothamLeftFiligrane
+}
+% Add the template to the prop (dictionary) of background template to use according to the situation
+\prop_put:Nnn \l__gotham_template_name_prop {sidebar~canvas~left/default} {gotham~filigrane}
+\prop_put:Nnn \l__gotham_template_name_prop {sidebar~canvas~right/default} {gotham~filigrane}
+\prop_put:Nnn \l__gotham_template_name_prop {sidebar~left/default} {empty}
+\prop_put:Nnn \l__gotham_template_name_prop {sidebar~right/default} {beamer}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\l_gotham_defaultEdging}
+% Boolean to triggering if edging should be displayed by default (without giving the frame option).
+% The variable is |false| by default.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\l_gotham_defaultEdging}
+% Boolean variable to display the edging by default (or not).
+% \UnitTested
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+\bool_new:N \l_gotham_defaultEdging
+\bool_set_false:N \l_gotham_defaultEdging
+% At every new frame, reset the options to default (unless some options/keys are given)
+\BeforeBeginEnvironment{frame}{
+ \bool_if:NTF \l_gotham_defaultEdging {
+ \setbeamertemplate{sidebar~canvas~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~canvas~left/default}]
+ \setbeamertemplate{sidebar~canvas~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~canvas~right/default}]
+ }{
+ % false
+ \setbeamertemplate{sidebar~canvas~left}[default/empty]
+ \setbeamertemplate{sidebar~canvas~right}[default/empty]
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[edging]}
+% Add a frame option |edging| to display edging in sidebar canvas.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[edging]}
+% Add a frame option |edging| to display an empty sidebar canvas canvas.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+% bool to trigger the add of edging in sidebar canvas
+\newenvironment{edgingenv}{
+ \setbeamertemplate{sidebar~canvas~left}[
+ default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~canvas~left/default}
+ ]
+ \setbeamertemplate{sidebar~canvas~right}[
+ default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~canvas~right/default}
+ ]
+}{}
+\__gotham_add_beamerframe_key:n {edging}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[noedging]}
+% Add a frame option |noedging| to do not display noedging in sidebar canvas.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[noedging]}
+% Add a frame option |noedging| to do not display an empty sidebar canvas canvas.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+% bool to trigger the add of noedging in sidebar canvas
+\newenvironment{noedgingenv}{
+ \setbeamertemplate{sidebar~canvas~left}[default/empty]
+ \setbeamertemplate{sidebar~canvas~right}[default/empty]
+}{}
+\__gotham_add_beamerframe_key:n {noedging}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{edging default} = \oarg{\defopt{off} \textbar on }
+% \meta{sidebar canvas left template} = \oarg{\defopt{gotham} \textbar ...}
+% \meta{sidebar canvas right template} = \oarg{\defopt{gotham filigrane} \textbar empty \textbar ...}
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |sidebar canvas right| (and |sidebar canvas left|) templates.
+% These templates are activated when giving the frame option |\begin{frame}[edging]|.
+% The option |edging default=on| can enable the |sidebar canvas right| (and |sidebar canvas left|) templates on every frame; but it can still be turned off for specific frames when using the frame option |noedging|.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for sidebar canvas right and sidebar canvas left.
+% \UnitTested
+% \TestFiles{gotham-test-044}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }
+{
+ % sidebar~canvas~right template
+ sidebar~canvas~right~template .usage:n = { general },
+ sidebar~canvas~right~template .default:n = { gotham~filigrane },
+ sidebar~canvas~right~template .code:n = { \__gotham_set_prop_template:nn{sidebar~canvas~right/default}{#1} },
+}
+\keys_define:nn { gotham / outer }
+{
+ % sidebar~canvas~left template
+ sidebar~canvas~left~template .usage:n = { general },
+ sidebar~canvas~left~template .default:n = { gotham~filigrane },
+ sidebar~canvas~left~template .code:n = { \__gotham_set_prop_template:nn{sidebar~canvas~left/default}{#1} },
+}
+\keys_define:nn { gotham / outer }{
+ % edging default
+ edging~default .choice:,
+ edging~default .usage:n = { general },
+ edging~default .default:n = { false },
+
+ edging~default / true .code:n = { \bool_set_true:N \l_gotham_defaultEdging },
+ edging~default / on .code:n = { \bool_set_true:N \l_gotham_defaultEdging },
+ edging~default / enable .code:n = { \bool_set_true:N \l_gotham_defaultEdging },
+
+ edging~default / false .code:n = { \bool_set_false:N \l_gotham_defaultEdging },
+ edging~default / off .code:n = { \bool_set_false:N \l_gotham_defaultEdging },
+ edging~default / disable .code:n = { \bool_set_false:N \l_gotham_defaultEdging },
+
+ edging~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'edging~default',~so~being~ignored. }{helping~message: edging~default / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Navigation \& Logo %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{documentation}
+% \begin{function}{\defbeamertemplate{navigation~symbols}{empty} }
+% By default the navigation symbols are disable.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate*{navigation~symbols}{empty} }
+% Apply the empty navigation symbol template by default.
+% \UnitTested
+% \TestFiles{gotham-test-045}
+% \begin{macrocode}
+\defbeamertemplate*{navigation~symbols}{empty}{}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\defbeamertemplate{navigation~symbols}{default} }
+% Navigation symbols can be turned on using |\setbeamertemplate{navigation symbols}[default]|.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{navigation~symbols}{horizontal} }
+% From Beamer default theme.
+% \UnitTested
+% \TestFiles{gotham-test-045}
+% \begin{macrocode}
+% \setbeamertemplate{navigation~symbols}[vertical]
+% \setbeamertemplate{navigation~symbols}[only~frame~symbol]
+% \setbeamertemplate{navigation~symbols}[default]% = horizontal
+% \defbeamertemplate{navigation~symbols}{horizontal}{
+% \usebeamercolor[fg]{navigation~symbols}
+% \insertslidenavigationsymbol
+% \insertframenavigationsymbol
+% \insertsubsectionnavigationsymbol
+% \insertsectionnavigationsymbol
+% \insertdocnavigationsymbol
+% \insertbackfindforwardnavigationsymbol
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{logo}{empty}}
+% Template used sometimes to have no logo on specific frames.
+% \UnitTested
+% \TestFiles{gotham-test-045}
+% \begin{macrocode}
+\defbeamertemplate{logo}{empty}{}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[nologo]}
+% Add a frame option |nologo|, if you do not want your logo to be displayed.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[nologo]}
+% Add a frame option |nologo|, if you do not want your logo to be displayed.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-045}
+% \begin{macrocode}
+% bool to trigger the add of nologo action on frame.
+\newenvironment{nologoenv}{
+ \setbeamertemplate{logo}[empty]
+}{}
+\__gotham_add_beamerframe_key:n {nologo}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Headline \& Frametitle %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% Headline %%%
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{headline}{default/gotham}}
+% The headline template is empty by default by can be changed when using progress bar or the current section.
+% \UnitTested
+% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047}
+% \begin{macrocode}
+\defbeamertemplate{headline}{default/gotham}{}
+\prop_put:Nnn \l__gotham_template_name_prop {headline/default} {gotham}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{headline}{default/gotham~section}}
+% The headline template used to print the current section name and subection.
+% This template is used with |circlehead| progress bar
+% \UnitTested
+% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047}
+% \begin{macrocode}
+\defbeamertemplate{headline}{default/gotham~section}{
+ \begin{beamercolorbox}[wd=1.0\paperwidth, ht=2.5ex, dp=1.4ex, left]{headfoot}
+ \usebeamerfont{section~in~head/foot}\hspace*{3.5ex}
+ \usebeamertemplate{section~in~head/foot}
+ \end{beamercolorbox}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Frametitle %%%
+
+% \begin{documentation}
+% \begin{variable}{\gotham@frametitle@toppadding, \gotham@frametitle@bottompadding, \gotham@frametitle@leftpadding, \gotham@frametitle@rightpadding}
+% Dimensions controlling the top, bottom, left and right padding in the frametitle.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gotham@frametitle@toppadding, \gotham@frametitle@bottompadding, \gotham@frametitle@leftpadding, \gotham@frametitle@rightpadding}
+% Dimensions of lengths used in the frametitle: top, bottom, left and right padding.
+% All of them are equal to 2.2ex by default.
+% \begin{macrocode}
+\newlength{\gotham@frametitle@toppadding}
+\setlength{\gotham@frametitle@toppadding}{2.2ex}
+\newlength{\gotham@frametitle@bottompadding}
+\setlength{\gotham@frametitle@bottompadding}{2.2ex}
+\newlength{\gotham@frametitle@leftpadding}
+\setlength{\gotham@frametitle@leftpadding}{2.2ex}
+\newlength{\gotham@frametitle@rightpadding}
+\setlength{\gotham@frametitle@rightpadding}{2.2ex}
+% \gotham@strut from inner
+\providecommand{\gotham@strut}{
+ \vphantom{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz (/)}
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\gotham@frametitlestrut@start, \gotham@frametitlestrut@end}
+% Commands used to control the space over and under the title in frametitle.
+% \UnitTested
+% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047}
+% \begin{macrocode}
+\newcommand{\gotham@frametitlestrut@start}{
+ \rule{0pt}{\gotham@frametitle@toppadding +
+ \totalheightof{
+ \ifcsdef{gotham@frametitleformat}{\gotham@frametitleformat{X}}{X}
+ }
+ }
+}
+\newcommand{\gotham@frametitlestrut@end}{
+ \rule[-\gotham@frametitle@bottompadding]{0pt}{\gotham@frametitle@bottompadding}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\gothamInstituteLogoSquare[height]}
+% \begin{syntax}
+% \cs{height} \oarg{height of the logo use in inclugraphics (4ex by default)}
+% \end{syntax}
+% Command to set the image logo to include.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{function}{\gothamInstituteLogoSquare[height] \defbeamertemplate{includeLogo}{default/gotham~square}}
+% \begin{syntax}
+% \cs{gothamInstituteLogoSquare} \oarg{height}
+% \end{syntax}
+% Command to include the desired logo and a template used to add it to the frametitle.
+% For example your can do |\renewcommand{\gothamInstituteLogoSquare}[1][4ex]{\includegraphics[height=#1]{gotham-logo.pdf}}|.
+% \TestFiles{gotham-test-046, gotham-test-047}
+% \begin{macrocode}
+\newcommand{\gothamInstituteLogoSquare}[1][4ex]{
+ %\includegraphics[height=#1]{gotham-logo.pdf}
+}
+\defbeamertemplate{includeLogo}{default/gotham~square}{
+ \gothamInstituteLogoSquare
+}
+\prop_put:Nnn \l__gotham_template_name_prop {includeLogo/default} {gotham~square}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{includeLogo}{default/gotham~circle}}
+% Template used in frametitle when the option |progress bar= circlehead| is activated.
+% \UnitTested
+% \TestFiles{gotham-test-046b}
+% \begin{macrocode}
+\defbeamertemplate{includeLogo}{default/gotham~circle}{
+ \gothamProgressCircle
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{includeLogo}{default/gotham~circle}}
+% Template to make sure the logo will remain centered and to do not change the height of the line when included.
+% This template is used to include logo in frametitle.
+% \UnitTested
+% \TestFiles{gotham-test-046b}
+% \begin{macrocode}
+\defbeamertemplate{instituteLogo}{default/gotham}{
+ % \raisebox{lift}[height][depth]{text}
+ \raisebox{0pt}[0pt][0pt]{
+ \raisebox{.5\fontcharht\font`E-0.5\height}{
+ % \setbeamertemplate{}[]
+ \setbeamertemplate{includeLogo}[default/\prop_item:Nn \l__gotham_template_name_prop {includeLogo/default}]
+ \usebeamertemplate{includeLogo}
+ }
+ }
+}
+\prop_put:Nnn \l__gotham_template_name_prop {instituteLogo/default} {gotham}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\gothamFrameSubtitleSep}
+% Command that can be redefined to control the separator between the title of the frame and its subtitle.
+% For example if a default Beamer style is desired, one can use |\renewcommand{\gothamFrameSubtitleSep}{\\[-.42em]}|.
+% By default it is a hyphen.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{function}{\gothamFrameSubtitleSep}
+% Hyphen used as separator between title of the frame and its subtitle (within frametitle template).
+% \TestFiles{ gotham-test-047}
+% \begin{macrocode}
+\newcommand{\gothamFrameSubtitleSep}{
+ % \\[-.42em] % if newline (as default Beamer)
+ % or if same line with a -- separator.
+ \ ---~
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gothamFramesubtitleStrutend}
+% Variable vertical length used to adapte the bottom padding when a subtitle is given.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamFramesubtitleStrutend}
+% Length used in |vspace| at the end of framesubtitle.
+% \begin{macrocode}
+\newlength{\gothamFramesubtitleStrutend}
+\setlength{\gothamFramesubtitleStrutend}{0pt}
+% \setlength{\gothamFramesubtitleStrutend}{-1.25ex} %% When \newcommand{\gothamFrameSubtitleSep}{\\[-.42em]}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{frametitle}{default/gotham~subsameline}}
+% Template for frametitle include subtitle on the same line and a logo a flushed left.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\defbeamertemplate{frametitle}{default/gotham~subsameline}{
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ wd=\paperwidth,
+ sep=0pt,
+ leftskip=\gotham@frametitle@leftpadding,
+ rightskip=\gotham@frametitle@rightpadding,
+ ]{frametitle}
+ \gotham@frametitlestrut@start
+ \insertframetitle
+ \ifx\insertframesubtitle\@empty
+ %% if subtitle to the frame is empty
+ \else
+ %% if not empty: add subtitle
+ {\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\gothamFrameSubtitleSep \insertframesubtitle}
+ \vspace*{\gothamFramesubtitleStrutend}
+ \fi
+ \nolinebreak
+ %% Add logo
+ \hfill{
+ \setbeamertemplate{instituteLogo}[default/\prop_item:Nn \l__gotham_template_name_prop {instituteLogo/default}]
+ \usebeamertemplate{instituteLogo}
+ }
+ \gotham@frametitlestrut@end
+ \end{beamercolorbox}
+}
+\prop_put:Nnn \l__gotham_template_name_prop {frametitle/default} {gotham~subsameline}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{framesubtitle}{default/gotham~subnewline}}
+% Template for framesubtitle include subtitle on the same line and a logo a flushed left.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\dim_new:N \l__gotham_framesubtitle_subnewline_strutend_dim
+\defbeamertemplate{framesubtitle}{default/gotham~subnewline}{
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ wd=\paperwidth,
+ sep=0pt,
+ leftskip=\gotham@frametitle@leftpadding,
+ rightskip=\gotham@frametitle@rightpadding,
+ ]{frametitle}
+ % put the subtitle in a raisebox to have no influence on the result.
+ \raisebox{0pt}[0pt][0pt]{
+ \raisebox{-0.3ex}{
+ { \usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\insertframesubtitle}
+ }
+ }
+ % add 1ex to take into account the subtitle height.
+ \dim_set:Nn \l__gotham_framesubtitle_subnewline_strutend_dim {1.ex+\gothamFramesubtitleStrutend}
+ \vspace{\l__gotham_framesubtitle_subnewline_strutend_dim}
+ \end{beamercolorbox}
+}
+\prop_put:Nnn \l__gotham_template_name_prop {framesubtitle/default} {gotham~subnewline}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{framesubtitle}{default/gotham~subnewline}}
+% Template for frametitle and a logo a flushed left then the subtitle on a new line.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\defbeamertemplate{frametitle}{default/gotham~subnewline}{
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ wd=\paperwidth,
+ sep=0pt,
+ leftskip=\gotham@frametitle@leftpadding,
+ rightskip=\gotham@frametitle@rightpadding,
+ ]{frametitle}
+ \gotham@frametitlestrut@start
+ \insertframetitle
+ \nolinebreak
+ \hfill{
+ \setbeamertemplate{instituteLogo}[default/\prop_item:Nn \l__gotham_template_name_prop {instituteLogo/default}]
+ \usebeamertemplate{instituteLogo}
+ }
+ \gotham@frametitlestrut@end
+ \end{beamercolorbox}
+ %% End of the frametitle box, start then use the subtitle template if needed.
+ \ifx\insertframesubtitle\@empty
+ %% if subtitle to the frame is not empty
+ \else
+ % reduce vertical space to have a 1pt overlap, so no white line appears with vectorial viewers.
+ \vspace*{-1pt}
+ % add the subtitle
+ \setbeamertemplate{framesubtitle}[default/\prop_item:Nn \l__gotham_template_name_prop {framesubtitle/default}]
+ % \setbeamertemplate{framesubtitle}%[framesubtitle/default]
+ \usebeamertemplate{framesubtitle}
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{frametitle template} = \oarg{\defopt{gotham subsameline} \textbar gotham subnewline \textbar ... }
+% \meta{framesubtitle template} = \oarg{\defopt{gotham subnewline} \textbar ...}
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |frametitle| (and |framesubtitle|) templates.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for frametitle and framesubtitle.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % frametitle template
+ frametitle~template .usage:n = { general },
+ frametitle~template .default:n = { gotham~subsameline },
+ frametitle~template .code:n = {
+ \__gotham_set_prop_template:nn{frametitle/default}{#1}
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ }
+}
+\keys_define:nn { gotham / outer }{
+ % frametitle template
+ framesubtitle~template .usage:n = { general },
+ framesubtitle~template .default:n = { gotham~subnewline },
+ framesubtitle~template .code:n = {
+ \__gotham_set_prop_template:nn{framesubtitle/default}{#1}
+ \setbeamertemplate{framesubtitle}[default/\prop_item:Nn \l__gotham_template_name_prop {framesubtitle/default}]
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Continuation %%%
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{frametitle~continuation}{default/beamer}}
+% Template for numerotation of frametitle when a frame are continuing on sevral pages (allowed with the beamer option |allowframebreaks|).
+% Beamer theme (by default) is using roman number with uppercase.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\defbeamertemplate{frametitle~continuation}{default/beamer}{
+ \usebeamerfont{frametitle}
+ {
+ \MakeUppercase{\romannumeral \insertcontinuationcount}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{frametitle~continuation}{default/tot}}
+% Template for numerotation of frametitle when a frame are continuing on sevral pages (allowed with the beamer option |allowframebreaks|).
+% This template is using arabic number slash over the total number of page for this frame.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\defbeamertemplate{frametitle~continuation}{default/tot}{
+ \usebeamerfont{frametitle}
+ {
+ \textmd{%
+ [\insertcontinuationcount
+ \,/\,%
+ \the\numexpr\beamer@endpageofframe+1-\beamer@startpageofframe
+ ]%
+ }%
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{frametitle~continuation}{default/gotham}}
+% Template for numerotation of frametitle when a frame are continuing on sevral pages (allowed with the beamer option |allowframebreaks|).
+% Gotham theme (by default) is using roman number with lowercase.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\defbeamertemplate{frametitle~continuation}{default/gotham}{
+ \usebeamerfont{frametitle}
+ {
+ %\small
+ (\romannumeral \insertcontinuationcount)
+ }
+}
+\prop_put:Nnn \l__gotham_template_name_prop {frametitle~continuation/default} {gotham}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{frametitle continuation template} = \oarg{\defopt{gotham} \textbar tot \textbar beamer \textbar ... }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |frametitle continuation| templates.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for frametitle continuation.
+% \UnitTested
+% \TestFiles{gotham-test-047}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % frametitle template
+ frametitle~continuation~template .usage:n = { general },
+ frametitle~continuation~template .default:n = { gotham },
+ frametitle~continuation~template .code:n = {
+ \__gotham_set_prop_template:nn{frametitle~continuation/default}{#1}
+ \setbeamertemplate{frametitle~continuation}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle~continuation/default}]
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Footer \& Footline %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% Footline %%%
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{footline}{empty}}
+% Empty footline template used when the option nofootline is given.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{footline}{empty}{}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[nofootline]}
+% Add a frame option |nofootline| to do not display nofootline.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[nofootline]}
+% Add a frame option |nofootline| to do not display an empty footline.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% bool to trigger the add of nofootline in frame.
+\newenvironment{nofootlineenv}{
+ \setbeamertemplate{footline}[empty]
+}{}
+\__gotham_add_beamerframe_key:n {nofootline}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gothamFootlineOffset, \gothamFootlineHeight, \gothamFootlineDepth}
+% Lengths controlling the position of |footline|.
+% |\gothamFootlineOffset| is controlling space between to bottom of the text (or the footnote) and the footline.
+% |\gothamFootlineOffset| is by default -0.5ex, to have more space in the frame but if the footer is not really used, the space can be even more optimized using |\setlength{\gothamFootlineOffset}{-2.0ex}|.
+% Obviously, it can be back to "normal" setting it to 0pt.
+% |\gothamFootlineHeight| and |\gothamFootlineDepth| are controlling the heigth of the footline and the position of the text within.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamFootlineOffset, \gothamFootlineHeight, \gothamFootlineDepth}
+% Lengths used in |footline| template.
+% \begin{macrocode}
+% Footline lengths
+% space between to bottom of the text (or the footnote) and the footline
+\newlength{\gothamFootlineOffset}
+\setlength{\gothamFootlineOffset}{-0.5ex}
+
+\newlength{\gothamFootlineHeight}
+\setlength{\gothamFootlineHeight}{1.5ex}
+\newlength{\gothamFootlineDepth}
+\setlength{\gothamFootlineDepth}{0.1ex}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate*{footline}{default/gotham}}
+% Template that is activate by default since this footline is relatively generic.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate*{footline}{default/gotham}{
+ % new line to adjust the footline position.
+ \vspace*{\gothamFootlineOffset}
+ \begin{beamercolorbox}[
+ wd=\textwidth,
+ sep=0pt,
+ leftskip=3ex,
+ rightskip=3ex,
+ ht={\gothamFootlineHeight},
+ dp={\gothamFootlineDepth},
+ ]{footline}
+ \usebeamerfont{page number in head/foot}
+ \ifbeamertemplateempty{frame~footer}{
+ %executed if empty
+ \hfill \ \gotham@strut
+ }{
+ %⟨executed otherwise⟩
+ \usebeamertemplate*{frame~footer}
+ }
+ \hspace{\gothamRightFooterPadding}
+ {\usebeamertemplate{page~number~in~head/foot}}~
+ \end{beamercolorbox}
+}
+\prop_put:Nnn \l__gotham_template_name_prop {footline/default} {gotham}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Footer %%%
+
+% \begin{documentation}
+% \begin{variable}{\gothamLeftFooterPadding, \gothamRightFooterPadding, \gothamFooterHOffset}
+% Lengths controlling the position of |footer|.
+% |\gothamFooterHOffset| is controlling the horizontal space between the footer and the bottom of the page (or the progressbar).
+% |\gothamLeftFooterPadding| and |\gothamLeftFooterPadding| are controlling the space between the left and right side of the footer and the border of the page.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamLeftFooterPadding, \gothamRightFooterPadding, \gothamFooterHOffset}
+% Lengths used in |footer| template for positioning left right and bottom.
+% \begin{macrocode}
+\newlength{\gothamLeftFooterPadding}
+\setlength{\gothamLeftFooterPadding}{2.0ex}
+\newlength{\gothamRightFooterPadding}
+\setlength{\gothamRightFooterPadding}{3.5ex}
+\newlength{\gothamFooterHOffset}
+\setlength{\gothamFooterHOffset}{0pt}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{frame~footer}{none}}
+% Footer template used when nothing is put as footer but it will create undesired results.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{frame~footer}{none}{}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{frame~footer}{empty}}
+% Footer template used when |nofooter| option is given and it presevers spacing to have nice results.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{frame~footer}{empty}{
+ \hspace{\gothamLeftFooterPadding}
+ \hfill \
+ \gotham@strut
+ % decrease space between progress bar and footer
+ \vspace*{\gothamFooterHOffset}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[nofooter]}
+% Add a frame option |nofooter| to do not display nofooter.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[nofooter]}
+% Add a frame option |nofooter| to do not display an empty footer.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% bool to trigger the add of nofooter in frame.
+\newenvironment{nofooterenv}{
+ \setbeamertemplate{frame~footer}[empty]
+}{}
+\__gotham_add_beamerframe_key:n {nofooter}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\l_gotham_defaultRotateFooter}
+% Boolean to triggering if rotated footer should be displayed by default (without giving the frame option).
+% The variable is |false| by default.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\l_gotham_defaultRotateFooter}
+% Boolean variable to display the rotated footer by default (or not).
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\bool_new:N \l_gotham_defaultRotateFooter
+\bool_set_false:N \l_gotham_defaultRotateFooter
+\bool_new:N \l_gotham_RotateFooter
+\bool_set_false:N \l_gotham_RotateFooter
+% At every new frame, reset the options to default (unless some options/keys are given)
+\BeforeBeginEnvironment{frame}{
+ \bool_if:NTF \l_gotham_defaultRotateFooter {
+ \bool_set_true:N \l_gotham_RotateFooter
+ }{% false
+ \bool_set_false:N \l_gotham_RotateFooter
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[rotateFooter]}
+% Add a frame option |rotateFooter| to display rotated footer.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[rotateFooter]}
+% Add a frame option |rotateFooter| to display a rotated footer.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% bool to trigger
+% Capture new options/keys for frames
+\define@key{beamerframe}{rotateFooter}[true]{
+ \bool_set_true:N \l_gotham_RotateFooter
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\begin{frame}[noRotateFooter]}
+% Add a frame option |noRotateFooter| to display a none-RotateFooter.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{macro}{\begin{frame}[noRotateFooter]}
+% Add a frame option |noRotateFooter| to display a none-rotated footer.
+% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% Capture new options/keys for frames
+\define@key{beamerframe}{noRotateFooter}[true]{
+ \bool_set_false:N \l_gotham_RotateFooter
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{rotateFooter default} = \oarg{\defopt{off} \textbar on }
+% \end{syntax}
+% The option |rotateFooter default=on| can enable the rotation of the footer on every frame; but it can all be turned on for specific frames when using the frame option |\begin{frame}[rotateFooter]|.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for sidebar canvas right and sidebar canvas left.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % rotateFooter default
+ rotateFooter~default .choice:,
+ rotateFooter~default .usage:n = { general },
+ rotateFooter~default .default:n = { false },
+
+ rotateFooter~default / true .code:n = { \bool_set_true:N \l_gotham_defaultRotateFooter },
+ rotateFooter~default / on .code:n = { \bool_set_true:N \l_gotham_defaultRotateFooter },
+ rotateFooter~default / enable .code:n = { \bool_set_true:N \l_gotham_defaultRotateFooter },
+
+ rotateFooter~default / false .code:n = { \bool_set_false:N \l_gotham_defaultRotateFooter },
+ rotateFooter~default / off .code:n = { \bool_set_false:N \l_gotham_defaultRotateFooter },
+ rotateFooter~default / disable .code:n = { \bool_set_false:N \l_gotham_defaultRotateFooter },
+
+ rotateFooter~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'rotateFooter~default',~so~being~ignored. }{helping~message: rotateFooter~default / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gothamFootlineRuleLeftPadding, \gothamFootlineRuleHeight, \gothamFootlineRuleLength, \gothamHposLeftRotFooter, \gothamHposRightRotFooter, \gothamVposLeftRotFooter, \gothamVposRightRotFooter}
+% Lengths controlling the position of |footer|.
+% |\gothamFootlineRuleLeftPadding| is controlling the horizontal space between the left border of the page and the left side of the rule.
+% |\gothamFootlineRuleHeight| is controlling the height of the rule use to delimit the footer.
+% |\gothamFootlineRuleLength| is controlling the length of the rule use to delimit the footer.
+% |\gothamHposLeftRotFooter| is controlling the horizontal positioning of the left part of the rotatated footer.
+% |\gothamHposRightRotFooter| is controlling the horizontal positioning of the right part of the rotatated footer.
+% |\gothamVposLeftRotFooter| is controlling the vertical positioning of the left part of the rotatated footer.
+% |\gothamVposRightRotFooter| is controlling the vertical positioning of the right part of the rotatated footer.
+%
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamFootlineRuleLeftPadding, \gothamFootlineRuleHeight, \gothamFootlineRuleLength, \gothamHposLeftRotFooter, \gothamHposRightRotFooter, \gothamVposLeftRotFooter, \gothamVposRightRotFooter}
+% Lengths used in |footer| template.
+% \begin{macrocode}
+\newlength{\gothamFootlineRuleLeftPadding}
+\newlength{\gothamFootlineRuleHeight}
+\newlength{\gothamFootlineRuleLength}
+\setlength{\gothamFootlineRuleLeftPadding}{7mm}
+\setlength{\gothamFootlineRuleHeight}{0.0pt}
+% \setlength{\gothamFootlineRuleHeight}{0.5pt} % This is nice also but have a cleaner default, I turned it to 0.
+\setlength{\gothamFootlineRuleLength}{15mm}
+
+\newlength{\gothamHposLeftRotFooter}
+\newlength{\gothamHposRightRotFooter}
+\newlength{\gothamVposLeftRotFooter}
+% horizontal position (in picture env) for the rotated footer.
+\newlength{\gothamVposRightRotFooter}
+
+\setlength{\gothamHposLeftRotFooter}{-7pt}
+\setlength{\gothamHposRightRotFooter}{2pt}
+\setlength{\gothamVposLeftRotFooter}{15pt}
+\setlength{\gothamVposRightRotFooter}{15pt}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\hlenRightRotFooter, \hlenLeftRotFooter}
+% Temporary variables for the horizontal length of the rotated footer
+% \begin{macrocode}
+% Not used yet because I need to have a latex3 settowidth equivalent.
+% I will maybe take inspiration from https://tex.stackexchange.com/questions/492367/does-expl3-have-alternative-to-settowidth-and-settoheight
+% \dim_new:N \l__gotham_HLen_rightRotFooter_dim
+% \dim_new:N \l__gotham_HLen_leftRotFooter_dim
+\newlength{\hlenRightRotFooter}
+\newlength{\hlenLeftRotFooter}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{frame~footer}{default/gotham}}
+% Template for frame footer used by gotham, allowing a rotated footer.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{frame~footer}{default/gotham}{
+ % add a ruler but wihtout affecting the dimensions of the footline
+ \vbox to 0pt{
+ % Vertical stretch to ensure proper spacing
+ \vss
+ \hbox to 0pt{
+ \hspace*{\gothamFootlineRuleLeftPadding}
+ \usebeamercolor{frametitle}
+ \color{frametitle.bg}
+ \rule{\gothamFootlineRuleLength}{\gothamFootlineRuleHeight}
+ \vspace*{
+ \dimexpr \gothamFootlineHeight -0.25em\relax
+ }
+ % Horizontal stretch to ensure proper spacing
+ \hss
+ }
+ }
+ \hspace{\gothamLeftFooterPadding}
+ \settowidth{\hlenLeftRotFooter}{\hspace{-\gothamLeftFooterPadding}}
+ \addtolength{\hlenLeftRotFooter}{\gothamHposLeftRotFooter}
+ % \ifbool{rotateFooter}{
+ \bool_if:NTF \l_gotham_RotateFooter {
+ % rotateFooter true
+ \begin{picture}(0,0)(0,0)
+ \put(\hlenLeftRotFooter,\gothamVposLeftRotFooter){\rotatebox{90}{\insertshortdate}}
+ \end{picture}
+ }{
+ % rotateFooter false
+ \insertshortdate
+ }
+ \hfill \
+ \hfill \ \insertshorttitle
+ % make sure that the vertical space is constant: strut.
+ \gotham@strut
+ \hfill \
+ \hfill \
+ % \ifbool{rotateFooter}{
+ \bool_if:NTF \l_gotham_RotateFooter {
+ % rotateFooter true
+ \settowidth{\hlenRightRotFooter}{\hspace{\gothamRightFooterPadding}\usebeamertemplate{page~number~in~head/foot}}
+ \addtolength{\hlenRightRotFooter}{\gothamHposRightRotFooter}
+ \begin{picture}(0,0)(0,0)
+ \put(\hlenRightRotFooter,\gothamVposRightRotFooter){\rotatebox{90}{\insertshortauthor}}
+ \end{picture}
+ }{
+ % rotateFooter false
+ \insertshortauthor
+ %\hspace{-7em}
+ }
+ % decrease space between progress bar and footer
+ \vspace*{\gothamFooterHOffset}
+}
+\prop_put:Nnn \l__gotham_template_name_prop {frame~footer/default} {gotham}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{footer template} = \oarg{\defopt{gotham} \textbar ... }
+% \end{syntax}
+% The option |footer template| can which template to use as a footer.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for footer template.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % footer template
+ footer~template .usage:n = { general },
+ footer~template .default:n = { gotham },
+ footer~template .code:n = {
+ \__gotham_set_prop_template:nn{frame~footer/default}{#1}
+ \setbeamertemplate{frame~footer}[
+ default/\prop_item:Nn \l__gotham_template_name_prop {frame~footer/default}
+ ]
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Numbering %%%
+%%%%%%%%%%%%%%%%%
+
+% \begin{implementation}
+% \begin{macro}{\inserttotalframenumber}
+% We defined the number of total frame, if not defined or equal to 0 because of the first compilation, we set it to avoid arthimetical errors
+% \UnitTested
+% \TestFiles{gotham-test-046}
+% \begin{macrocode}
+%
+\def\inserttotalframenumber{100}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{page~number~in~head/foot}{none}}
+% Template to do not numbering the current frame.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{page~number~in~head/foot}{none}{ }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gothamCircleNumberingVshift, \gothamCircleNumberingHshift}
+% Variable lengths controling the vertical and horizontal positioning of the |circle| numbering template.
+% \end{variable}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamCircleNumberingVshift, \gothamCircleNumberingHshift}
+% Length used in |raisebox| and |hspace| in |circle| frame numbering.
+% \begin{macrocode}
+\newlength{\gothamCircleNumberingVshift}
+\setlength{\gothamCircleNumberingVshift}{1.4mm}
+\newlength{\gothamCircleNumberingHshift}
+\setlength{\gothamCircleNumberingHshift}{2.6mm}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{page~number~in~head/foot}{circle}}
+% Template to add, in a circle, the number of the current frame over (slash) the total number of frames.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{page~number~in~head/foot}{circle}{
+ % horizontal space between the circle and the right part of the footer (email).
+ \hspace{+2em}
+ % \raisebox{lift}[height][depth]{text} => lift here = vertical space between the bottom of the page (or the progress bar) and the center of the circle
+ \raisebox{\gothamCircleNumberingVshift}[0pt][0pt]{
+ \begin{tikzpicture}[remember~picture, overlay]
+ \coordinate (circleCenter);
+
+ \usebeamercolor{frametitle}
+
+ \draw[fill, color=frametitle.bg] (circleCenter) circle (6mm);
+ \draw[fill, color=frametitle.fg] (circleCenter) circle (5mm);
+ \node[color=frametitle.bg] at (circleCenter)
+ {\small$^{\insertframenumber}\negmedspace/\negthinspace\sb{\inserttotalframenumber}$}
+ ;
+ \end{tikzpicture}
+ % horizontal space between the right border of the page and the center of the circle.
+ \hspace{\gothamCircleNumberingHshift}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{numbering} = \oarg{\defopt{none} \textbar framenumber \textbar totalframenumber \textbar appendixframenumber \textbar pagenumber \textbar totalpagenumber \textbar circle \textbar ... }
+% \meta{framesubtitle template} = \oarg{\defopt{gotham subnewline} \textbar ...}
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |frame numbering| templates used in |footer| template.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for frame numbering.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % numbering
+ numbering .choice:,
+ numbering .usage:n = { general },
+ numbering .default:n = { none },
+
+ % \__gotham_set_template:nn{title~page}{#1}
+ numbering / none .code:n = { \setbeamertemplate{page~number~in~head/foot}[none] },
+ numbering / framenumber .code:n = { \setbeamertemplate{page~number~in~head/foot}[framenumber] },
+ numbering / totalframenumber .code:n = {\setbeamertemplate{page~number~in~head/foot}[totalframenumber] },
+ numbering / appendixframenumber .code:n = {\setbeamertemplate{page~number~in~head/foot}[appendixframenumber] },
+ numbering / pagenumber .code:n = { \setbeamertemplate{page~number~in~head/foot}[pagenumber] },
+ numbering / totalpagenumber .code:n = {\setbeamertemplate{page~number~in~head/foot}[totalpagenumber] },
+ numbering / circle .code:n = {\setbeamertemplate{page~number~in~head/foot}[circle] },
+
+ numbering / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'numbering',~so~being~ignored. }{helping~message} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% MiniFrames \& Progress bar %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% MiniFrames %%%
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{section~in~head/foot}{default/beamer}}
+% Template control how the section appears by default when sections are add to the headline or footline.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{section~in~head/foot}{default/beamer}{
+ \insertsectionhead
+}
+\defbeamertemplate{section~in~head/foot~shaded}{default/beamer}{
+ \color{fg!50!bg}\usebeamertemplate{section~in~head/foot}
+}
+
+% \defbeamertemplate{includeLogo}{default/gotham~square}{
+\prop_put:Nnn \l__gotham_template_name_prop {section~in~head/foot~shaded/default} {beamer}
+% \defbeamertemplate{includeLogo}{default/gotham~square}{
+\prop_put:Nnn \l__gotham_template_name_prop {section~in~head/foot/default} {beamer}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{section~in~head/foot}{default/gotham~secSubsec}}
+% Template for section and subsection in headline.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{section~in~head/foot}{default/gotham~secSubsec}{
+ \insertsectionhead
+ \ifx\insertsubsection\empty\else
+ \ifdefempty{\subsecname}{\relax}{
+ \ \textbar\ \insertsubsectionhead
+ }
+ \fi
+}
+\defbeamertemplate{section~in~head/foot~shaded}{default/gotham~secSubsec}{
+ \insertsectionhead
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{section~in~head/foot}{default/empty}}
+% Empty template for section in headline, compensating the height of a line.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{section~in~head/foot}{default/empty}{
+ \vspace{3.875ex}
+}
+\defbeamertemplate{section~in~head/foot~shaded}{default/empty}{
+ \vspace{3.875ex}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\gotham@temp@heightFrametitle, \gotham@temp@PaperheightFrametitle}
+% Temporary length variables to compute the height of the frametitle and the height of the paper minus the frametitle.
+% \begin{macrocode}
+\newlength{\gotham@temp@heightFrametitle}
+\newlength{\gotham@temp@PaperheightFrametitle}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate*{mini~nav~progress~head/foot left right}{gotham~miniframes~theme}}
+% Template to insert the navigation bar (using miniframes) that can be added to headline (or footline) left sidebar or righ sidebar.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate*{mini~nav~progress~head/foot}{gotham~miniframes~theme}
+{
+ %,ht=1.75ex,dp=2.75ex
+ \begin{beamercolorbox}[ignorebg]{section~in~head/foot}
+ \hfuzz=\paperwidth
+ \insertnavigation{\paperwidth}
+ % \dohead
+ \vspace{0.05cm}
+ \end{beamercolorbox}
+}
+\defbeamertemplate*{mini~nav~progress~left}{gotham~miniframes~theme}
+{
+ \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut}
+ \addtolength{\gotham@temp@heightFrametitle}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\gothamProgressHeadFootLineheight}
+
+ \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-\gothamProgressHeadFootLineheight}
+
+ \vspace{-0.6\paperheight}
+ \rotatebox{90}{
+ %,ht=1.75ex,dp=2.75ex
+ \begin{beamercolorbox}[ignorebg]{section~in~head/foot}
+ \hfuzz=\gotham@temp@PaperheightFrametitle
+ \insertnavigation{\gotham@temp@PaperheightFrametitle}
+ % \dohead
+ % \vspace{0.05cm}
+ \end{beamercolorbox}
+ }
+}
+\defbeamertemplate*{mini~nav~progress~right}{gotham~miniframes~theme}
+{
+ \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut}
+ \addtolength{\gotham@temp@heightFrametitle}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\gothamProgressHeadFootLineheight}
+
+ \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-\gothamProgressHeadFootLineheight}
+
+ \vspace{\gotham@temp@heightFrametitle}
+ \hspace{-2.3em}
+ \rotatebox{-90}{
+ %,ht=1.75ex,dp=2.75ex
+ \begin{beamercolorbox}[ignorebg]{section~in~head/foot}
+ \hfuzz=\gotham@temp@PaperheightFrametitle
+ \insertnavigation{\gotham@temp@PaperheightFrametitle}
+ % \dohead
+ % \vspace{0.05cm}
+ \end{beamercolorbox}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+%% Select the bullets shape
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{mini~frame}{gotham~box}}
+% Template to add a new shape for miniframes |gotham box|.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{mini~frame}{gotham~box}
+{
+ \begin{pgfpicture}{0pt}{0pt}{.1cm}{.1cm}
+ \pgfpathrectangle{\pgfpointorigin}{\pgfpoint{0.1cm}{0.1cm}}
+ \pgfusepath{fill,stroke}
+ \end{pgfpicture}
+}[action]{
+ \setbeamersize{mini~frame~size=.14cm, mini~frame~offset=.05cm}
+}
+%
+\defbeamertemplate{mini~frame~in~current~subsection}{gotham~box}
+{
+ \begin{pgfpicture}{0pt}{0pt}{.1cm}{.1cm}
+ \pgfpathrectangle{\pgfpointorigin}{\pgfpoint{0.1cm}{0.1cm}}
+ \pgfusepath{stroke}
+ \end{pgfpicture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{mini~frame}{gotham~minibox}}
+% Template to add a new shape for miniframes |gotham minibox|.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{mini~frame}{gotham~minibox}
+{
+ \begin{pgfpicture}{0pt}{0pt}{.05cm}{.05cm}
+ \pgfpathrectangle{\pgfpointorigin}{\pgfpoint{0.05cm}{0.05cm}}
+ \pgfusepath{fill,stroke}
+ \end{pgfpicture}
+}[action]{
+ \setbeamersize{mini~frame~size=.08cm, mini~frame~offset=.05cm}
+}
+%
+\defbeamertemplate{mini~frame~in~current~subsection}{gotham~minibox}
+{
+ \begin{pgfpicture}{0pt}{0pt}{.05cm}{.05cm}
+ \pgfpathrectangle{\pgfpointorigin}{\pgfpoint{0.05cm}{0.05cm}}
+ \pgfusepath{stroke}
+ \end{pgfpicture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{mini~frame}{gotham~minibullet}}
+% Template to add a new shape for miniframes |gotham minibullet|.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{mini~frame}{gotham~minibullet}
+{
+ \beamer@xelatex@fixminiframes
+ \begin{pgfpicture}{0pt}{0pt}{0.05cm}{0.05cm}
+ \pgfpathcircle{\pgfpoint{0.03cm}{0.03cm}}{0.03cm}
+ \pgfusepath{fill,stroke}
+ \end{pgfpicture}
+}[action]{
+ \setbeamersize{mini~frame~size=.09cm, mini~frame~offset=.05cm}
+}
+%
+\defbeamertemplate{mini~frame~in~current~subsection}{gotham~minibullet}
+{
+ \beamer@xelatex@fixminiframes
+ \begin{pgfpicture}{0pt}{0pt}{0.05cm}{0.05cm}
+ \pgfpathcircle{\pgfpoint{0.03cm}{0.03cm}}{0.03cm}
+ \pgfusepath{stroke}
+ \end{pgfpicture}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{mini frames shape} = \oarg{\defopt{gotham minibullet} \textbar default (bullet from beamer) \textbar tick \textbar box \textbar gotham box \textbar gotham minibox \textbar ... }
+% \meta{framesubtitle template} = \oarg{\defopt{gotham subnewline} \textbar ...}
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |frame numbering| templates used in |footer| template.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for mini frames shape template.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ %% mini~frames~shape
+ % mini~frames~shape .choice:,
+ mini~frames~shape .usage:n = { general },
+ mini~frames~shape .default:n = { gotham~minibullet },
+ % \__gotham_set_template:nn{title~page}{#1}
+ mini~frames~shape .code:n = {
+ % \__gotham_set_template:nn{mini~frames}{#1}% This can not work since this is an alias, so go back to normal
+ \setbeamertemplate{mini~frames}[#1]
+ },
+ % mini~frames~shape / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'numbering',~so~being~ignored. }{helping~message} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate*{miniframe~home}}
+% Template to adapt Beamer to the internal modification brought by Gotham: differientiation between slide to come and those done, idem for section, subsection...
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate*{miniframe~home}{beamer}{
+ % $\equiv$
+}
+\defbeamertemplate*{miniframe~current~slide}{beamer}{
+ \usebeamertemplate{mini~frame}
+}
+\defbeamertemplate*{miniframe~done~current~section}{beamer}{
+ \usebeamertemplate{mini~frame~in~current~subsection}
+}
+\defbeamertemplate*{miniframe~todo~current~section}{beamer}{
+ \usebeamertemplate{mini~frame~in~current~subsection}
+}
+\defbeamertemplate*{miniframe~done~other~section}{beamer}{
+ \usebeamertemplate{mini~frame~in~other~subsection}
+}
+\defbeamertemplate*{miniframe~todo~other~section}{beamer}{
+ \usebeamertemplate{mini~frame~in~other~subsection}
+}
+% Templates about should appear sectioning in mini frame.
+% \defbeamertemplate*{miniframe~part}{beamer}{}
+\defbeamertemplate*{miniframe~section~current}{beamer}{}
+\defbeamertemplate*{miniframe~section~done}{beamer}{}
+\defbeamertemplate*{miniframe~section~todo}{beamer}{}
+\defbeamertemplate*{miniframe~subsection~current}{beamer}{}
+\defbeamertemplate*{miniframe~subsection~todo}{beamer}{}
+\defbeamertemplate*{miniframe~subsection~done}{beamer}{}
+% \defbeamertemplate*{miniframe~subsubsection}{beamer}{}
+\defbeamertemplate*{miniframe~section~done~in~other~section}{default}[1][50]
+{
+ \color{fg!#1!bg}\usebeamertemplate{miniframe~section~done}
+}
+\defbeamertemplate*{miniframe~section~todo~in~other~section}{default}[1][50]
+{
+ \color{fg!#1!bg}\usebeamertemplate{miniframe~section~todo}
+}
+\defbeamertemplate*{miniframe~subsection~done~in~other~section}{default}[1][50]
+{
+ \color{fg!#1!bg}\usebeamertemplate{miniframe~subsection~done}
+}
+\defbeamertemplate*{miniframe~subsection~todo~in~other~section}{default}[1][50]
+{
+ \color{fg!#1!bg}\usebeamertemplate{miniframe~subsection~todo}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{miniframe~home}{gotham~mini}}
+% Templates for miniframes using a Gotham style inspired by a miniaturization than the one from Beamer.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{miniframe~home}{gotham~mini}{
+ \resizebox{0.85\beamer@boxsize}{\beamer@boxsize}{$\equiv$}
+ % \scalebox{0.5}[0.95]{$\equiv$}
+}
+\defbeamertemplate{miniframe~current~slide}{gotham~mini}{
+ \usebeamercolor[fg]{alerted~text}
+ \usebeamertemplate{mini~frame}
+}
+\defbeamertemplate{miniframe~done~current~section}{gotham~mini}{
+ \usebeamertemplate{mini~frame}
+}
+\defbeamertemplate{miniframe~todo~current~section}{gotham~mini}{
+ \usebeamertemplate{mini~frame~in~current~subsection}
+}
+\defbeamertemplate{miniframe~done~other~section}{gotham~mini}[1][50]{
+ \color{fg!#1!bg}\usebeamertemplate{mini~frame}
+}
+\defbeamertemplate{miniframe~todo~other~section}{gotham~mini}[1][50]{
+ \color{fg!#1!bg}\usebeamertemplate{mini~frame~in~other~subsection}
+}
+% Templates about should appear sectioning in mini frame.
+% \defbeamertemplate{miniframe~part}{gotham~mini}[1][]{
+% p
+% }
+\defbeamertemplate{miniframe~section~current}{gotham~mini}{
+ \fontsize{3pt}{0pt}\selectfont
+ % \color{blue}
+ \tl_use:N \l__gotham_minif_tmpa_tl
+ \hspace{1.pt}
+}
+\defbeamertemplate{miniframe~section~done}{gotham~mini}{
+ \fontsize{3pt}{0pt}\selectfont
+ % \color{green}
+ \tl_use:N \l__gotham_minif_tmpa_tl
+ \hspace{1.pt}
+}
+\defbeamertemplate{miniframe~section~todo}{gotham~mini}{
+ \fontsize{3pt}{0pt}\selectfont
+ % \color{red}
+ \tl_use:N \l__gotham_minif_tmpa_tl
+ \hspace{1.pt}
+}
+\defbeamertemplate{miniframe~subsection~current}{gotham~mini}{
+ \usebeamercolor[fg]{alerted~text}
+ \hspace{-0.15pt}
+ \resizebox{\beamer@boxsize}{!}{\hspace{-0.75pt}$\blacklozenge$}
+}
+\defbeamertemplate{miniframe~subsection~todo}{gotham~mini}{
+ \hspace{-0.15pt}
+ \resizebox{\beamer@boxsize}{!}{\hspace{-0.75pt}$\lozenge$}
+}
+\defbeamertemplate{miniframe~subsection~done}{gotham~mini}{
+ \hspace{-0.15pt}
+ \resizebox{\beamer@boxsize}{!}{\hspace{-0.75pt}$\blacklozenge$}
+}
+% \defbeamertemplate{miniframe~subsubsection}{gotham~mini}{
+% d
+% }
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{miniframe~home}{gotham~nano}}
+% Template for Gotham mini frame style using even less space.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{miniframe~home}{gotham~nano}{
+ % \resizebox{\beamer@boxsize}{!}{$\equiv$}
+ \scalebox{0.5}[0.95]{$\equiv$}
+}
+\defbeamertemplate{miniframe~current~slide}{gotham~nano}{
+ o
+}
+\defbeamertemplate{miniframe~done~current~section}{gotham~nano}{
+ x
+}
+\defbeamertemplate{miniframe~todo~current~section}{gotham~nano}{
+ $\cdot$
+}
+\defbeamertemplate{miniframe~done~other~section}{gotham~nano}{
+ x
+}
+\defbeamertemplate{miniframe~todo~other~section}{gotham~nano}{
+ $\cdot$
+}
+% Templates about should appear sectioning in mini frame.
+% \defbeamertemplate{miniframe~part}{gotham~nano}[1][]{
+% p
+% }
+\defbeamertemplate{miniframe~section~current}{gotham~nano}{
+ \tl_use:N \l__gotham_minif_tmpa_tl
+}
+\defbeamertemplate{miniframe~section~done}{gotham~nano}{
+ \tl_use:N \l__gotham_minif_tmpa_tl
+}
+\defbeamertemplate{miniframe~section~todo}{gotham~nano}{
+ \tl_use:N \l__gotham_minif_tmpa_tl
+}
+\defbeamertemplate{miniframe~subsection~current}{gotham~nano}{
+ \usebeamercolor[fg]{alerted~text}$\diamond$
+}
+\defbeamertemplate{miniframe~subsection~todo}{gotham~nano}{
+ $\diamond$
+}
+\defbeamertemplate{miniframe~subsection~done}{gotham~nano}{
+ $\diamond$
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplateparent{mini~frames~bundle}}
+% Define a parent template to set the 6 templates at once.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplateparent{mini~frames~bundle}
+{ miniframe~home, miniframe~current~slide,
+ miniframe~done~current~section, miniframe~todo~current~section, miniframe~done~other~section, miniframe~todo~other~section,
+ miniframe~section~current, miniframe~section~done, miniframe~section~todo,
+ miniframe~subsection~current, miniframe~subsection~done, miniframe~subsection~todo,
+}{}
+%\setbeamertemplate{mini~frames~bundle}[gotham~mini]%[beamer]%[gotham~nano]%
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{mini frames bundle} = \oarg{\defopt{gotham minibullet} \textbar default (bullet from beamer) \textbar tick \textbar box \textbar gotham box \textbar gotham minibox \textbar ... }
+% \meta{framesubtitle template} = \oarg{\defopt{gotham subnewline} \textbar ...}
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |mini frame| templates.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for mini frames bundle template.
+% \UnitTested
+% \TestFiles{gotham-test-050}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ %% mini~frames~bundle
+ % mini~frames~bundle .choice:,
+ mini~frames~bundle .usage:n = { general },
+ mini~frames~bundle .default:n = { gotham~mini },
+ % \__gotham_set_template:nn{title~page}{#1}
+ mini~frames~bundle .code:n = {
+ % \__gotham_set_template:nn{mini~frames}{#1}% This can not work since this is an alias, so go back to normal
+ \setbeamertemplate{mini~frames~bundle}[#1]
+ },
+ % mini~frames~bundle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'numbering',~so~being~ignored. }{helping~message} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% MiniFrames Navigation %%%
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{mini frames compress} = \oarg{\defopt{on} \textbar off }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |compress| option in mini frames.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for mini frames compress template.
+% \UnitTested
+% \TestFiles{gotham-test-050}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % mini~frames~compress default
+ mini~frames~compress .choice:,
+ mini~frames~compress .usage:n = { general },
+ mini~frames~compress .default:n = { true },
+
+ mini~frames~compress / true .code:n = { \beamer@compresstrue },
+ mini~frames~compress / on .code:n = { \beamer@compresstrue },
+ mini~frames~compress / enable .code:n = { \beamer@compresstrue },
+
+ mini~frames~compress / false .code:n = { \beamer@compressfalse },
+ mini~frames~compress / off .code:n = { \beamer@compressfalse },
+ mini~frames~compress / disable .code:n = { \beamer@compressfalse },
+
+ mini~frames~compress / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'mini~frames~compress',~so~being~ignored. }{helping~message: mini~frames~compress / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\l__gotham_minif_tmpa_tl, \gotham@temp@MiniframeSubsecDim, \gotham@temp@lastSec}
+% Temporary variables used for the store dimension of the miniframe subsection, check if the last section treated and the pass the value of the section to the section template.
+% \begin{macrocode}
+\newlength{\gotham@temp@MiniframeSubsecDim}
+\newlength{\gotham@temp@MiniframeSecDim}
+\def\gotham@temp@lastSec{-1}
+\tl_new:N \l__gotham_minif_tmpa_tl
+\tl_new:N \l__gotham_minif_tmpb_tl
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\renewcommand{\slideentry}}
+% Redefinition of the slideentry command from Beamer in order to add home page symbol, section symbol, subsection symbol to come and done.
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% definition from Beamerbasenavigation.sty
+% \def\slideentry#1#2#3#4#5#6{%
+\renewcommand{\slideentry}[6]{%
+ %section number, subsection number, slide number, first/last frame, page number, part number
+ \ifnum#6=\c@part\ifnum#3>0%\ifnum#6=\c@part\ifnum#1>0\ifnum#3>0 MODIF
+ \ifbeamer@compress%
+ \advance\beamer@xpos by1\relax%
+ \else%
+ \ifnum#2=0%
+ \beamer@ypos@offset=1\relax%
+ \fi%
+ \beamer@xpos=#3\relax%
+ \beamer@ypos=#2\relax%
+ \advance\beamer@ypos by \beamer@ypos@offset\relax%
+ \fi%
+ %% Add section number and subsection symbol to miniframes.
+ %% MODIF below, inspired from https://tex.stackexchange.com/questions/722523
+ \ifnum#3=1%\c@subsectionslide=#3 % if =1, so it has been reset => new section or subsection
+ \ifnum#1>0\ifnum#2<2% => there no subsection in this section.
+ \ifnum\gotham@temp@lastSec=#1%
+ % this means, that we already went through: there no subsec, then the first subsec has been defined.
+ \else%
+ \tl_set:Nn \l__gotham_minif_tmpa_tl {#1}
+ \settowidth{\gotham@temp@MiniframeSecDim}{\usebeamertemplate{miniframe~section~current}}%
+ % \addtolength{\gotham@temp@MiniframeSecDim}{1.5pt}
+ \hbox to 0pt{%
+ \beamer@tempdim=-\beamer@vboxoffset%
+ \advance\beamer@tempdim by-\beamer@boxsize%
+ \multiply\beamer@tempdim by\beamer@ypos%
+ \advance\beamer@tempdim by -.05cm%
+ \raise\beamer@tempdim\hbox{%
+ \beamer@tempdim=\beamer@boxsize%
+ \multiply\beamer@tempdim by\beamer@xpos%
+ \advance\beamer@tempdim by -\beamer@boxsize%
+ \advance\beamer@tempdim by -\gotham@temp@MiniframeSecDim% NEW
+ \advance\beamer@tempdim by 1pt%
+ \kern\beamer@tempdim%
+ \global\beamer@section@min@dim\beamer@tempdim%
+ \hbox{\beamer@link(#4){%
+ % \usebeamertemplate{miniframe~section}%
+ % if not first page then check if it is the current section.
+ \ifnum\c@section=#1%
+ % check if it is the current slide
+ \ifnum\c@subsectionslide=#3%
+ \usebeamertemplate{miniframe~section~current}
+ \else%
+ \ifnum\c@subsectionslide<#3
+ \usebeamertemplate{miniframe~section~todo}
+ \else%
+ \usebeamertemplate{miniframe~section~done}
+ \fi%
+ \fi%
+ \else% \ifnum\c@section=#1%
+ \ifnum\c@section<#1
+ \usebeamertemplate{miniframe~section~todo~in~other~section}
+ \else%
+ \usebeamertemplate{miniframe~section~done~in~other~section}
+ \fi%
+ \fi% \ifnum\c@section=#1
+ }}%
+ }%
+ }%
+ \def\gotham@temp@lastSec{#1}%
+ \fi%
+ \fi\fi%
+ \ifnum#2>0%
+ % Check if the miniframe subsection template is empty
+ \ifbeamertemplateempty{miniframe~subsection~current}{
+ % do nothing
+ }{
+ \tl_set:Nn \l__gotham_minif_tmpb_tl {#2}
+ \settowidth{\gotham@temp@MiniframeSubsecDim}{}%\usebeamertemplate{miniframe~subsection~current}}%
+ \addtolength{\gotham@temp@MiniframeSubsecDim}{+1.\beamer@boxsize}%
+ \advance\beamer@xpos by1\relax%
+ \hbox to 0pt{%
+ \beamer@tempdim=-\beamer@vboxoffset%
+ \advance\beamer@tempdim by-\beamer@boxsize%
+ \multiply\beamer@tempdim by\beamer@ypos%
+ \advance\beamer@tempdim by -.05cm%
+ \raise\beamer@tempdim\hbox{%
+ \beamer@tempdim=\beamer@boxsize%
+ \multiply\beamer@tempdim by\beamer@xpos%
+ \advance\beamer@tempdim by -\beamer@boxsize%
+ \advance\beamer@tempdim by -\gotham@temp@MiniframeSubsecDim% NEW
+ \advance\beamer@tempdim by 1pt%
+ \kern\beamer@tempdim%
+ \global\beamer@section@min@dim\beamer@tempdim%
+ \hbox{\beamer@link(#4){%
+ % \usebeamertemplate{miniframe~subsection~current}%
+ % if not first page then check if it is the current section.
+ \ifnum\c@section=#1%
+ % check if it is the current subsection
+ \ifnum\c@subsection=#2%
+ % check if it is the current slide
+ \ifnum\c@subsectionslide=#3%
+ \usebeamertemplate{miniframe~subsection~current}
+ \else%
+ \ifnum\c@subsectionslide<#3
+ \usebeamertemplate{miniframe~subsection~todo}
+ \else%
+ \usebeamertemplate{miniframe~subsection~done}
+ \fi%
+ \fi%
+ \else% \ifnum\c@subsection=#2%
+ \ifnum\c@subsection<#2
+ \usebeamertemplate{miniframe~subsection~todo}
+ \else%
+ \usebeamertemplate{miniframe~subsection~done}
+ \fi%
+ \fi% \ifnum\c@subsection=#2%
+ \else% \ifnum\c@section=#1%
+ \ifnum\c@section<#1
+ \usebeamertemplate{miniframe~subsection~todo~in~other~section}
+ \else%
+ \usebeamertemplate{miniframe~subsection~done~in~other~section}
+ \fi%
+ \fi% \ifnum\c@section=#1
+ }}% \hbox{\beamer@link
+ }% raisebox
+ }% hbox
+ }% end if template empty
+ \fi% \ifnum#2>0
+ \else
+ \ifbeamer@compress%
+ % \advance\beamer@xpos by1\relax%
+ \else%
+ \ifbeamertemplateempty{miniframe~subsection~current}{
+ % NEW
+ % do nothing
+ }{
+ \advance\beamer@xpos by 1\relax%
+ }
+ \fi%
+ \fi% \ifnum#3=1
+
+ %% end of modif to add section number and subsection symbol.
+ \hbox to 0pt{%
+ \beamer@tempdim=-\beamer@vboxoffset%
+ \advance\beamer@tempdim by-\beamer@boxsize%
+ \multiply\beamer@tempdim by\beamer@ypos%
+ \advance\beamer@tempdim by -.05cm%
+ \raise\beamer@tempdim\hbox{%
+ \beamer@tempdim=\beamer@boxsize%
+ \multiply\beamer@tempdim by\beamer@xpos%
+ \advance\beamer@tempdim by -\beamer@boxsize%
+ \advance\beamer@tempdim by 1pt%
+ \kern\beamer@tempdim
+ \global\beamer@section@min@dim\beamer@tempdim
+ \hbox{\beamer@link(#4){%
+ \usebeamerfont{mini~frame}%
+ % \ifnum\c@section=#1%
+ % \ifnum\c@subsection=#2%
+ % \usebeamercolor[fg]{mini~frame}%
+ % \ifnum\c@subsectionslide=#3%
+ % \usebeamertemplate{mini~frame}%\beamer@minislidehilight%
+ % \else%
+ % \usebeamertemplate{mini~frame~in~current~subsection}%\beamer@minisliderowhilight%
+ % \fi%
+ % \else%
+ % \usebeamercolor{mini~frame}%
+ % %\color{fg!50!bg}%
+ % \usebeamertemplate{mini~frame~in~other~subsection}%\beamer@minislide%
+ % \fi%
+ % \else%
+ % \usebeamercolor{mini~frame}%
+ % %\color{fg!50!bg}%
+ % \usebeamertemplate{mini~frame~in~other~subsection}%\beamer@minislide%
+ % \fi%
+ %%
+ %% CHANGE FROM HERE: I rewrote this part.
+ % If first page (ie. 1/1)
+ \def\gotham@temp@i{1/1}
+ \def\gotham@temp@ii{#4}
+ \ifx\gotham@temp@i\gotham@temp@ii
+ % If first page (ie. title page) then apply a special mini frame
+ \usebeamertemplate{miniframe~home}
+ \else
+ % if not first page then check if it is the current section.
+ \ifnum\c@section=#1%
+ % check if it is the current subsection
+ \ifnum\c@subsection=#2%
+ \usebeamercolor[fg]{mini~frame}%
+ % check if it is the current slide
+ \ifnum\c@subsectionslide=#3%
+ \usebeamertemplate{miniframe~current~slide}
+ % \usebeamertemplate{mini~frame}% \beamer@minislidehilight%
+ \else%
+ % \usebeamertemplate{mini~frame~in~current~subsection}% \beamer@minisliderowhilight%
+ \ifnum\c@subsectionslide<#3
+ \usebeamertemplate{miniframe~todo~current~section}
+ \else%
+ \usebeamertemplate{miniframe~done~current~section}
+ \fi%
+ \fi%
+ \else% \ifnum\c@subsection=#2%
+ \usebeamercolor{mini~frame}%
+ % \usebeamertemplate{mini~frame~in~other~subsection}% \beamer@minislide%
+ \ifnum\c@subsection<#2
+ \usebeamertemplate{miniframe~todo~other~section}
+ \else%
+ \usebeamertemplate{miniframe~done~other~section}
+ \fi%
+ \fi% \ifnum\c@subsection=#2%
+ \else% \ifnum\c@section=#1%
+ \usebeamercolor{mini~frame}%
+ % \usebeamertemplate{mini~frame~in~other~subsection}% \beamer@minislide%
+ \ifnum\c@section<#1
+ \usebeamertemplate{miniframe~todo~other~section}
+ \else%
+ \usebeamertemplate{miniframe~done~other~section}
+ \fi%
+ \fi% \ifnum\c@section=#1
+ \fi% \ifx\gotham@temp@i\gotham@temp@ii
+ }}}\hskip-10cm plus 1fil%
+ }\fi% \ifnum#1>0\ifnum#3>0%
+ \else% \ifnum#6=\c@part
+ \fakeslideentry{#1}{#2}{#3}{#4}{#5}{#6}%
+ \fi\ignorespaces%
+ % \def\gotham@temp@lastSec{-1}%
+}%
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{gothamZerosectionframes}
+% Boolean variable to flag if they are frame in a zeroth section.
+% This variable helps to adapt the spreading of |mini frames nav| bar.
+% This variable is automatically set if the spread is set correctly at the beginning of the presention.
+% If the spreading or the mini frame nav is disable at the zeroth section then reactivated latter, it might create unwanted spreading.
+% In such situation the variable has to be set manually to correct the spreading.
+% \end{variable}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{variable}{gothamZerosectionframes}
+% Boolean variable to flag if they are frame in a zeroth section.
+% \begin{macrocode}
+\providebool{gothamZerosectionframes}
+\boolfalse{gothamZerosectionframes}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\insertnavigation,\sectionentry}
+% Patches for |\insertnavigation| and |\sectionentry| to be able to adapt with spreading values.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\providecommand{\gothamInsertNavlength}{
+ % spreading by default
+ \ifbool{gothamZerosectionframes}{
+ %true
+ % spreading
+ \hskip-0.5ex~plus~1fill
+ }{
+ %false
+ \hskip-1.875ex~plus-1fill
+ }%
+}
+\providecommand{\gothamPatchInsertNav}{
+ % Don't patch for now
+ \box\beamer@sectionbox\hfil\hskip.3cm
+}
+\providecommand{\gothamPatchSectionentry}{
+ % Don't patch for now
+ \hskip1.875ex~plus~1fill
+}
+\providecommand{\gothamPatchSectionbox}{
+ % Don't patch for now
+ \ht\beamer@sectionbox=1.875ex
+ \dp\beamer@sectionbox=0.75ex
+}
+\ExplSyntaxOff
+ % To let the 0-th section appear.
+ \patchcmd{\insertnavigation}{\hskip-1.875ex plus-1fill}{%
+ \ifnum\value{section}=0%
+ \ifnum\value{framenumber}>0%
+ \hskip-0ex%
+ \global\booltrue{gothamZerosectionframes}%
+ \fi\fi%
+ \gothamInsertNavlength%
+ }{}{}
+ %% Remove hfill between sections => flush right bullet bar, if not corrected.
+ \patchcmd{\sectionentry}{\hskip1.875ex plus 1fill}{\gothamPatchSectionentry}{}{}
+ %% Centering the bullet bar
+ \patchcmd{\insertnavigation}{\box\beamer@sectionbox\hfil\hskip.3cm}{\gothamPatchInsertNav}{}{}
+ % Patch size of sectionbox
+ \patchcmd{\insertnavigation}{\ht\beamer@sectionbox=1.875ex%
+ \dp\beamer@sectionbox=0.75ex%
+ }{
+ \gothamPatchSectionbox
+ }{}{}
+ \patchcmd{\sectionentry}{\ht\beamer@sectionbox=1.875ex%
+ \dp\beamer@sectionbox=0.75ex%
+ }{
+ \gothamPatchSectionbox
+ }{}{}
+\ExplSyntaxOn
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{mini frames nav spreading} = \oarg{\defopt{centering} \textbar spreading \textbar left \textbar right }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control spreading of the mini frames navigation.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for mini frames navigation spreading.
+% \UnitTested
+% \TestFiles{gotham-test-051}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % mini~frames~nav~spreading default
+ mini~frames~nav~spreading .choice:,
+ mini~frames~nav~spreading .usage:n = { general },
+ mini~frames~nav~spreading .default:n = { spreading },
+
+ mini~frames~nav~spreading / spreading .code:n = {
+ %
+ \renewcommand{\gothamInsertNavlength}{
+ \ifbool{gothamZerosectionframes}{
+ %true
+ % spreading
+ \hskip-0.5ex
+ }{
+ %false
+ \hskip-1.875ex~plus-1fill
+ }%
+ }
+ % No other patch needed, but renewcommand if it has been modified previously.
+ \renewcommand{\gothamPatchInsertNav}{
+ % Don't patch for now
+ \box\beamer@sectionbox\hfil\hskip.3cm
+ }
+ \renewcommand{\gothamPatchSectionentry}{
+ % Don't patch for now
+ \hskip1.875ex~plus~1fill
+ }
+ },
+ mini~frames~nav~spreading / centering .code:n = {
+ %
+ \renewcommand{\gothamInsertNavlength}{
+ \ifbool{gothamZerosectionframes}{
+ %true
+ % centering +patch sectionenty +patch insertnav @sectionbox
+ \hskip-0.5ex~plus~1fill
+ }{
+ %false
+ % \patchcmd{\insertnavigation}{\hskip-1.875ex plus-1fill}{\hfill}{}{}
+ \hfill
+ }%
+ }
+ % Centering the bullet bar
+ % \patchcmd{\insertnavigation}{\box\beamer@sectionbox\hfil\hskip.3cm}{ \box\beamer@sectionbox\hfill\hskip.3cm}{}{}
+ \renewcommand{\gothamPatchInsertNav}{
+ \box\beamer@sectionbox\hfill\hskip.3cm
+ }
+ %% Remove hfill between sections => flush right bullet bar, if not corrected.
+ % \patchcmd{\sectionentry}{\hskip1.875ex plus 1fill}{\hskip 3.5ex}{}{}
+ \renewcommand{\gothamPatchSectionentry}{
+ \hskip~3.5ex
+ }
+ },
+ mini~frames~nav~spreading / left .code:n = {
+ %
+ \renewcommand{\gothamInsertNavlength}{
+ \ifbool{gothamZerosectionframes}{
+ %true
+ % flush left +patch sectionenty
+ \hskip-0.5ex
+ }{
+ %false
+ % no patch
+ \hskip-1.875ex plus-1fill
+ }%
+ }
+ % Centering the bullet bar : NO
+ % no patch
+ \renewcommand{\gothamPatchInsertNav}{
+ \box\beamer@sectionbox\hfil\hskip.3cm
+ }
+ %% Remove hfill between sections => flush right bullet bar, if not corrected.
+ % \patchcmd{\sectionentry}{\hskip1.875ex plus 1fill}{\hskip 3.5ex}{}{}
+ \renewcommand{\gothamPatchSectionentry}{
+ \hskip~3.5ex
+ }
+ },
+ mini~frames~nav~spreading / right .code:n = {
+ %
+ \renewcommand{\gothamInsertNavlength}{
+ \ifbool{gothamZerosectionframes}{
+ %true
+ % flush right +patch sectionenty
+ \hskip-0.5ex~plus~1fill
+ }{
+ %false
+ % no patch
+ \hskip-1.875ex plus-1fill
+ }%
+ }
+ % Centering the bullet bar : NO
+ % no patch
+ \renewcommand{\gothamPatchInsertNav}{
+ \box\beamer@sectionbox\hfil\hskip.3cm
+ }
+ %% Remove hfill between sections => flush right bullet bar, if not corrected.
+ % \patchcmd{\sectionentry}{\hskip1.875ex plus 1fill}{\hskip 3.5ex}{}{}
+ \renewcommand{\gothamPatchSectionentry}{
+ \hskip~3.5ex
+ }
+ },
+ mini~frames~nav~spreading / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'mini~frames~nav~spreading',~so~being~ignored. }{helping~message: mini~frames~nav~spreading / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{mini frames nav sectioning} = \oarg{\defopt{on} \textbar off }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control navigation sectioning option in mini frames.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for mini frames navigation sectioning template.
+% \UnitTested
+% \TestFiles{gotham-test-051}
+% \begin{macrocode}
+\keys_define:nn { gotham / outer }{
+ % mini~frames~nav~sectioning default
+ mini~frames~nav~sectioning .choice:,
+ mini~frames~nav~sectioning .usage:n = { general },
+ mini~frames~nav~sectioning .default:n = { secsubsection },
+
+ mini~frames~nav~sectioning / none .code:n = {
+ %
+ \__gotham_set_template:nn{section~in~head/foot~shaded}{default/empty}
+ \__gotham_set_template:nn{section~in~head/foot}{default/empty}
+ \renewcommand{\gothamPatchSectionbox}{
+ % patch to set section box height to 0.
+ \ht\beamer@sectionbox=0pt
+ \dp\beamer@sectionbox=0pt
+ }
+ },
+ mini~frames~nav~sectioning / section .code:n = {
+ %
+ \__gotham_set_template:nn{section~in~head/foot~shaded}{default} %from Beamer
+ \__gotham_set_template:nn{section~in~head/foot}{default} %from Beamer
+ },
+ mini~frames~nav~sectioning / secsubsection .code:n = {
+ %
+ \__gotham_set_template:nn{section~in~head/foot~shaded}{default/gotham~secSubsec}
+ \__gotham_set_template:nn{section~in~head/foot}{default/gotham~secSubsec}
+ },
+
+ mini~frames~nav~sectioning / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'mini~frames~nav~sectioning',~so~being~ignored. }{helping~message: mini~frames~nav~sectioning / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{mini frames nav position} = \oarg{\defopt{none} \textbar head \textbar foot \textbar left \textbar right}
+% \end{syntax}
+% The 'package' (useoutertheme) options can control navigation position option in mini frames.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for mini frames navigation position template.
+% \UnitTested
+% \TestFiles{gotham-test-051}
+% \begin{macrocode}
+\tl_new:N \l__gotham_out_tmp_mfnposi_tl
+\keys_define:nn { gotham / outer }{
+ % mini~frames~nav~position default
+ mini~frames~nav~position .choice:,
+ mini~frames~nav~position .usage:n = { general },
+ mini~frames~nav~position .default:n = { none },
+
+ mini~frames~nav~position / none .code:n = {
+ %
+ % reset if it has modified by another progressbar strategy
+ % \__gotham_set_prop_template:nn{sidebar~canvas~right/default}{#1}
+ \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {none}
+
+ % head
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % frametitle
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ % foot
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ % left
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ % right
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+ },
+ mini~frames~nav~position / head .code:n = {
+ %
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: nothing to do it is already done.
+ }{
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {head}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{headline}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ \usebeamertemplate*{mini~nav~progress~head/foot}
+ }{}
+ }
+ }
+ },
+ mini~frames~nav~position / foot .code:n = {
+ %
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already done.
+ }{
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {foot}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ \addtobeamertemplate{footline}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ \usebeamertemplate*{mini~nav~progress~head/foot}
+ }{}
+ }
+ }
+ },
+ mini~frames~nav~position / left .code:n = {
+ %
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already done.
+ }{
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {left}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{sidebar~left}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ \usebeamertemplate*{mini~nav~progress~left}
+ }{}
+ }
+ }
+ },
+ mini~frames~nav~position / right .code:n = {
+ %
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already done.
+ }{
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {right}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{sidebar~right}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ \usebeamertemplate*{mini~nav~progress~right}
+ }{}
+ }
+ }
+ },
+
+ mini~frames~nav~position / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'mini~frames~nav~position',~so~being~ignored. }{helping~message: mini~frames~nav~position / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%% Progress bar %%%
+
+% \begin{documentation}
+% \begin{variable}{\gothamProgressHeadFootLineheight}
+% Variable vertical length defining the height of the progressbar.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamProgressHeadFootLineheight}
+% Lengths used in tikz rectangle.
+% \begin{macrocode}
+\newlength{\gotham@progressinheadfoot}
+\newlength{\gothamProgressHeadFootLineheight}
+\setlength{\gothamProgressHeadFootLineheight}{1.2ex}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\l_gotham_ProgCircleMoving_bool, \l_gotham_progbar_advancement_tlbr_bool, \l_gotham_pmfn_bool}
+% Boolean variables controlling the direction of progression and if the current frame number is moving with the progression.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\l_gotham_ProgCircleMoving_bool, \l_gotham_progbar_advancement_tlbr_bool, \l_gotham_pmfn_bool}
+% Boolean variables controlling the direction of progression and if the current frame number is moving with the progression and if the miniframes navigation should be printed inside the progress bar.
+% \begin{macrocode}
+\bool_new:N \l_gotham_ProgCircleMoving_bool
+\bool_set_true:N \l_gotham_ProgCircleMoving_bool
+
+\bool_new:N \l_gotham_progbar_advancement_tlbr_bool
+\bool_set_true:N \l_gotham_progbar_advancement_tlbr_bool
+
+\bool_new:N \l_gotham_pmfn_bool
+\bool_set_false:N \l_gotham_pmfn_bool
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_rectangle_box_progressbar:n}
+% \begin{arguments}
+% \item |width| of the progress bar.
+% \end{arguments}
+% Command to draw a rectangular progress bar that can go from left to right or the opposite and that can include a navigation miniframes bar.
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% #1: 'linewidth'
+\cs_new_protected:Npn \__gotham_rectangle_box_progressbar:n #1
+{
+ %
+ \setlength{\gotham@progressinheadfoot}{
+ #1 * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}
+ }
+
+ %
+ \begin{beamercolorbox}[wd=#1]{progress~bar~in~head/foot}
+ \begin{tikzpicture}
+ \usebeamercolor{progress~bar~in~head/foot}
+
+ % gray rectangle in the background.
+ \fill[color=progress~bar~in~head/foot.bg]
+ (0pt, 0pt) rectangle ++ (#1, \gothamProgressHeadFootLineheight)
+ ;
+
+ \bool_if:NTF \l_gotham_progbar_advancement_tlbr_bool {
+ % from left to right
+ % orange rectangle progressing
+ \fill[color=progress~bar~in~head/foot.fg]
+ (0pt, 0pt) rectangle ++ (\gotham@progressinheadfoot, \gothamProgressHeadFootLineheight)
+ ;
+ }{
+ % from right to left
+ % orange rectangle progressing
+ \fill[color=progress~bar~in~head/foot.fg]
+ (#1, \gothamProgressHeadFootLineheight) rectangle ++ (-\gotham@progressinheadfoot, -\gothamProgressHeadFootLineheight)
+ ;
+ }
+
+ \bool_if:NTF \l_gotham_pmfn_bool {
+ % progress miniframes navigation is on.
+ \node at (#1/2, \gothamProgressHeadFootLineheight/2)
+ [text~height=0.1pt, text~depth=0.05pt, inner~sep=0pt] %draw=red,
+ {
+ \usebeamercolor[fg]{normal~text}
+ % \fontsize{3.5pt}{0pt}\selectfont
+ \raisebox{0.5\gothamProgressHeadFootLineheight+1.4pt}[0pt][0pt]{
+ %\dohead
+ \hfuzz=#1
+ \insertnavigation{#1}
+ }
+ }
+ ;
+ }{
+ % false
+ % nothing to do since progress miniframes navigation is off.
+ }
+ \end{tikzpicture}
+ \end{beamercolorbox}
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{progress~bar~in~head/foot}{gotham~rectangle}}
+% template displaying the progress bar in head, frametitle or footline.
+% \UnitTested
+% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047, gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{progress~bar~in~head/foot}{gotham~rectangle}{
+ \nointerlineskip
+ \__gotham_rectangle_box_progressbar:n {\paperwidth}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{progress~bar~in~left/right}{gotham~rectangle}}
+% template displaying the progress bar in left or right.
+% \UnitTested
+% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047,gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{progress~bar~in~left}{gotham~rectangle}{
+ \nointerlineskip
+
+ \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut}
+ \addtolength{\gotham@temp@heightFrametitle}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\gothamProgressHeadFootLineheight}
+
+ \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-0.25\baselineskip}
+
+ \vspace{0.12275\paperheight}
+ \rotatebox{90}{
+ \__gotham_rectangle_box_progressbar:n {\gotham@temp@PaperheightFrametitle}
+ }
+}
+\defbeamertemplate{progress~bar~in~right}{gotham~rectangle}{
+ \nointerlineskip
+
+ \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut}
+ \addtolength{\gotham@temp@heightFrametitle}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\gothamProgressHeadFootLineheight}
+
+ \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-0.25\baselineskip}
+
+ \hspace{-\gothamProgressHeadFootLineheight}
+ \vspace{\gotham@temp@heightFrametitle-27.75pt}
+ \rotatebox{-90}{
+ \__gotham_rectangle_box_progressbar:n {\gotham@temp@PaperheightFrametitle}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_rounded_box_progressbar:nnnn}
+% \begin{arguments}
+% \item |width| Name of the option to add, this name should also correspond to the name of the environment followed by the suffix 'env'.
+% \item |ratio progressbar/extra command|
+% \item |colorbox name|
+% \item |extra command|
+% \end{arguments}
+% Command to draw a rounded box progress bar that can go from left to right or the opposite and that can include a navigation miniframes bar.
+% The fourth argument is a command to control what to display at the right side of the rounded box.
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% #1: 'linewidth'
+% #2: ratio of the progress bar
+% #3: colorbox name
+% #4: command for percent of progress
+\cs_new_protected:Npn \__gotham_rounded_box_progressbar:nnnn #1#2#3#4
+{
+ \setlength{\gotham@progressinheadfoot}{
+ #2#1 * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}
+ }
+
+ % 1.035\gothamProgressHeadFootLineheight is to include the border inside the box.
+ \begin{beamercolorbox}[wd=#1, ht=1.035\gothamProgressHeadFootLineheight]{#3}
+ \;\hfill
+ %\tikzexternaldisable%
+ \begin{tikzpicture}[rounded~corners=0.5\gothamProgressHeadFootLineheight, very~thin]
+ \usebeamercolor{progress~bar~in~head/foot}
+
+ % gray rectangle in the background.
+ \shade[top~color=progress~bar~in~head/foot.bg!65, bottom~color=progress~bar~in~head/foot.bg!65, middle~color=progress~bar~in~head/foot.bg]
+ (0pt, 0pt) rectangle ++ (#2#1, \gothamProgressHeadFootLineheight)
+ ;
+
+ \bool_if:NTF \l_gotham_progbar_advancement_tlbr_bool {
+ % from left to right
+ % orange rectangle progressing
+ \shade[draw=progress~bar~in~head/foot.fg, top~color=progress~bar~in~head/foot.fg!70, bottom~color=progress~bar~in~head/foot.fg!70, middle~color=progress~bar~in~head/foot.fg]
+ (0pt, 0pt) rectangle ++ (\gotham@progressinheadfoot, \gothamProgressHeadFootLineheight)
+ ;
+ }{
+ % from right to left
+ % orange rectangle progressing
+ \shade[draw=progress~bar~in~head/foot.fg, top~color=progress~bar~in~head/foot.fg!70, bottom~color=progress~bar~in~head/foot.fg!70, middle~color=progress~bar~in~head/foot.fg]
+ (#2#1, \gothamProgressHeadFootLineheight) rectangle ++ (-\gotham@progressinheadfoot, -\gothamProgressHeadFootLineheight)
+ ;
+ }
+
+ \bool_if:NTF \l_gotham_pmfn_bool {
+ % progress miniframes navigation is on.
+ \node at (#2#1/2, \gothamProgressHeadFootLineheight/2)
+ [text~height=0.1pt, text~depth=0.05pt, inner~sep=0pt] %draw=red,
+ {
+ \usebeamercolor[fg]{normal~text}
+ % \fontsize{3.5pt}{0pt}\selectfont
+ \raisebox{0.5\gothamProgressHeadFootLineheight+1.4pt}[0pt][0pt]{
+ \hfuzz=#2#1
+ %\dohead
+ \insertnavigation{#2#1}
+ }
+ }
+ ;
+ }{
+ % false
+ % nothing to do since progress miniframes navigation is off.
+ }
+ \end{tikzpicture}
+ #4
+ \hfill \;
+ \end{beamercolorbox}
+}
+% \cs_generate_variant:Nn \__gotham_rounded_box_progressbar:nnnn { Nnnn }
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{progress~bar~in~head/foot}{gotham~rounded~box}}
+% template displaying the progress bar in head, frametitle or footline.
+% \UnitTested
+% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047,gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{progress~bar~in~head/foot}{gotham~rounded~box}{
+ \nointerlineskip
+ \__gotham_rounded_box_progressbar:nnnn {\paperwidth}{0.93}{footline}{
+ \hfill
+ \raisebox{0.5\gothamProgressHeadFootLineheight-1.75pt}[0pt][0pt]{
+ \fontsize{5pt}{0pt}\selectfont
+ \usebeamercolor[fg]{normal~text}
+ \fp_eval:n {round(\insertframenumber*100/\inserttotalframenumber,0)}\,\%
+ }
+ }
+ % \__gotham_rounded_box_progressbar:nnnn {\paperwidth}{0.53}{progress~bar~in~head/foot}{}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\defbeamertemplate{progress~bar~in~left/right}{gotham~rounded~box}}
+% template displaying the progress bar in left or right sidebar.
+% \UnitTested
+% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047,gotham-test-048}
+% \begin{macrocode}
+\defbeamertemplate{progress~bar~in~left}{gotham~rounded~box}{
+ \nointerlineskip
+
+ \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut}
+ \addtolength{\gotham@temp@heightFrametitle}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\gothamProgressHeadFootLineheight}
+
+ \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-0.25\baselineskip}
+
+ \vspace{0.12275\paperheight}
+ % \hspace{\gothamProgressHeadFootLineheight}
+ \rotatebox{90}{
+ \__gotham_rounded_box_progressbar:nnnn {\gotham@temp@PaperheightFrametitle}{0.89}{footline}{
+ \hfill
+ \raisebox{0.5\gothamProgressHeadFootLineheight-1.75pt}[0pt][0pt]{
+ \fontsize{5pt}{0pt}\selectfont
+ \fp_eval:n {round(\insertframenumber*100/\inserttotalframenumber,0)}\,\%
+ }
+ }
+ }
+}
+\defbeamertemplate{progress~bar~in~right}{gotham~rounded~box}{
+ \nointerlineskip
+
+ \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut}
+ \addtolength{\gotham@temp@heightFrametitle}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\gothamProgressHeadFootLineheight}
+
+ \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-0.25\baselineskip}
+
+ \hspace{-\gothamProgressHeadFootLineheight-0.2pt}
+ \vspace{\gotham@temp@heightFrametitle-27.75pt}
+ \rotatebox{-90}{
+ \__gotham_rounded_box_progressbar:nnnn {\gotham@temp@PaperheightFrametitle}{0.89}{footline}{
+ \hfill
+ \raisebox{0.5\gothamProgressHeadFootLineheight-1.75pt}[0pt][0pt]{
+ \fontsize{5pt}{0pt}\selectfont
+ \fp_eval:n {round(\insertframenumber*100/\inserttotalframenumber,0)}\,\%
+ }
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gothamProgressCircHeight, \gothamCounterCircleRadius, \gothamProgressCircBorderWidth}
+% Lengths controlling the aspect of |progress circle|.
+% |\gothamProgressCircHeight| is controlling the inner height of the circle (related to its diameter).
+% |\gothamCounterCircleRadius| is controlling the size of the counter circle containing the frame number.
+% |\gothamProgressCircBorderWidth| is controlling width of the progress circle.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gothamProgressCircHeight, \gothamCounterCircleRadius, \gothamProgressCircBorderWidth}
+% Lengths used in tikz rectangle.
+% \begin{macrocode}
+%the height of the header is 1.8 times the lineheight of the frame title
+\newlength{\gothamProgressCircHeight}
+\setlength{\gothamProgressCircHeight}{1.8\baselineskip}
+%\setlength{\gothamProgressCircHeight}{2\baselineskip}
+\newlength{\gothamCounterCircleRadius}
+\setlength{\gothamCounterCircleRadius}{1.12ex}
+% width of the border
+\newlength{\gothamProgressCircBorderWidth}
+\setlength{\gothamProgressCircBorderWidth}{1.65mm}
+
+%% Induced length used internally, but can still be tuned manually by inspired people.
+% radius of the logo
+\newlength{\gothamProgressCircLogoRadius}
+\setlength{\gothamProgressCircLogoRadius}{1.2\gothamProgressCircHeight/2}
+% inner radius of border of the logo frame
+\newlength{\gothamProgressCircLogoInnerRadius}
+\setlength{\gothamProgressCircLogoInnerRadius}{1.1\gothamProgressCircLogoRadius}
+% radius of the outer border of the logo frame
+\newlength{\gothamProgressCircLogoOuterRadius}
+\setlength{\gothamProgressCircLogoOuterRadius}{\gothamProgressCircLogoInnerRadius+\gothamProgressCircBorderWidth}
+% radius of the counters
+\newlength{\gothamCounterRadius}
+\setlength{\gothamCounterRadius}{\gothamProgressCircLogoInnerRadius/2+\gothamProgressCircLogoOuterRadius/2}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{variable}{\l_gotham_ratio_progresscircle_fp, \l_gotham_angle_counterradius_fp}
+% angle ratio of the progress in degree and angle of the counter circle intercepted by the half of the border.
+% \begin{macrocode}
+% \fp_new:N \l_gotham_ratio_progress_fp
+\fp_new:N \l_gotham_ratio_progresscircle_fp
+% the angle token by the counter radius
+\fp_new:N \l_gotham_angle_counterradius_fp
+% requires xfp for asind
+\fp_set:Nn \l_gotham_angle_counterradius_fp {
+ \fpeval{ 2* asind (\gothamCounterCircleRadius / (2*\gothamCounterRadius)) }
+}
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\gothamInstituteLogoCircle[#1]}
+% \begin{syntax}
+% \cs{gothamInstituteLogoCircle} \oarg{height (4ex)}
+% \end{syntax}
+% Command that have to be redefined in order to include your circular logo.
+% For example your can do |\renewcommand{\gothamInstituteLogoCircle}[1][4ex]{\includegraphics[height=#1]{gotham-logo.pdf}}|.
+% \end{function}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{function}{\gothamInstituteLogoCircle[#1]}
+% \begin{arguments}
+% \item |height| of the picture
+% \end{arguments}
+% Command to be redefined by users.
+% \TestFiles{ gotham-test-046b}
+% \begin{macrocode}
+\newcommand{\gothamInstituteLogoCircle}[1][4ex]{
+ \includegraphics[height=#1]{gotham-logo.pdf}
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\gothamProgressCircle}
+% Internal command plotting the circle progress and that is used internal in the instituteLogo template within the frametitle template.
+% \TestFiles{ gotham-test-046b}
+% \begin{macrocode}
+\newcommand{\gothamProgressCircle}{
+ % \tikzexternaldisable
+ \begin{tikzpicture}[remember~picture,overlay]
+ % Load colors
+ \usebeamercolor{standin}
+ \usebeamercolor{frametitle}
+ \usebeamercolor{progress~bar~in~head/foot}
+
+ % Define center
+ \coordinate (localCenter);
+ % draw the outer circle
+ \fill[fill=progress~bar~in~head/foot.bg] (localCenter) circle (\gothamProgressCircLogoOuterRadius);
+ % draw the inner circle
+ \fill[fill=frametitle.bg] (localCenter) circle (\gothamProgressCircLogoInnerRadius);
+ \node at (localCenter) {\gothamInstituteLogoCircle[1.9\gothamProgressCircLogoRadius]};
+
+ %% draw progress circle/bar
+ \bool_if:NTF \l_gotham_ProgCircleMoving_bool {
+ % the circular counter with a moving counter
+
+ %% compute the angle for the progress circle
+ \bool_if:NTF \l_gotham_progbar_advancement_tlbr_bool {
+ \fp_set:Nn \l_gotham_ratio_progresscircle_fp {-(360)*\insertframenumber/\inserttotalframenumber }
+ }{
+ %\else% clockwise rotation
+ \fp_set:Nn \l_gotham_ratio_progresscircle_fp {(360)*(\insertframenumber/\inserttotalframenumber)}
+ }
+ %\fi
+
+ % draw the arc progress bar
+ \draw[
+ color=progress~bar~in~head/foot.fg,
+ line~width=0.6*\gothamProgressCircBorderWidth
+ ]
+ (localCenter)
+ ++
+ ([
+ xshift=\gothamCounterRadius
+ ]localCenter)
+ arc[
+ radius=\gothamCounterRadius,
+ start~angle=0,
+ end~angle={\fp_eval:n \l_gotham_ratio_progresscircle_fp}
+ ]
+ ;
+
+ % draw a point at the beginning of the progress circle
+ \fill[fill=frametitle.bg]
+ ([
+ xshift={\gothamCounterRadius}
+ ]localCenter.center)
+ circle (0.3*\gothamProgressCircBorderWidth)
+ ;
+ % place the current frame number
+ \node[
+ % fill=standin.bg, draw=progress~bar~in~head/foot.bg, thick, circle, minimum~width={\gothamCounterCircleRadius}, text~width={0pt}
+ ]
+ (pagenumframe) at (
+ [rotate=
+ {\fp_eval:n {\l_gotham_ratio_progresscircle_fp}},
+ xshift=\gothamCounterRadius
+ ]localCenter) {}
+ ;
+ \filldraw[
+ draw=progress~bar~in~head/foot.bg,
+ fill=standin.bg,
+ thick,
+ ]
+ (pagenumframe) circle (\gothamCounterCircleRadius)
+ ;
+ % place the frame number in another node to avoid unwanted rescaling.
+ \node[at=(pagenumframe.center), anchor=center] {
+ {\usebeamercolor[fg]{standin}\tiny\insertframenumber}
+ };
+ }{
+ %\else gothamProgCircleMoving
+ % the circular counter with a fixed counter
+
+ %% compute the angle for the progress circle
+ \bool_if:NTF \l_gotham_progbar_advancement_tlbr_bool {
+ \fp_set:Nn \l_gotham_ratio_progresscircle_fp {-(360-2\l_gotham_angle_counterradius_fp)*\insertframenumber/\inserttotalframenumber -\l_gotham_angle_counterradius_fp}
+ }{
+ %\else% clockwise rotation
+ \fp_set:Nn \l_gotham_ratio_progresscircle_fp {(360-2\l_gotham_angle_counterradius_fp)*(\insertframenumber/\inserttotalframenumber) +\l_gotham_angle_counterradius_fp}
+ }
+ %\fi
+
+ % draw the arc progress bar
+ \draw[
+ color=progress~bar~in~head/foot.fg,
+ line~width=0.6*\gothamProgressCircBorderWidth
+ ]
+ (localCenter)
+ ++
+ ([rotate={\fp_eval:n {\l_gotham_angle_counterradius_fp}},
+ xshift=\gothamCounterRadius
+ ]localCenter)
+ arc[
+ radius=\gothamCounterRadius,
+ start~angle={\fp_eval:n \l_gotham_angle_counterradius_fp},
+ end~angle={\fp_eval:n \l_gotham_ratio_progresscircle_fp}
+ ]
+ ;
+
+ % draw a point at the end of the progress circle
+ \fill[fill=frametitle.bg]
+ ([
+ rotate={\fp_eval:n {\l_gotham_ratio_progresscircle_fp}}, xshift={\gothamCounterRadius}
+ ]localCenter.center)
+ circle (0.3*\gothamProgressCircBorderWidth)
+ ;
+ % place the total number of frames
+ \node[] (leftick)
+ at ([xshift={\gothamProgressCircLogoOuterRadius+1.25ex}]localCenter) {}
+ ;
+ %% draw a line ticks
+ \draw[
+ color=frametitle.fg,
+ fill=frametitle.fg,
+ ]
+ ([xshift=\gothamProgressCircLogoOuterRadius,yshift={-0.05ex}] localCenter)
+ rectangle ([yshift={0.05ex}] leftick)
+ ;
+ \node[ at=(leftick), anchor=west, inner~sep = 1pt,]
+ {\usebeamercolor[fg]{frametitle}\tiny\inserttotalframenumber}
+ ;
+ % place the current frame number
+ \node[
+ % fill=standin.bg, draw=progress~bar~in~head/foot.bg, thick, circle, minimum~width={\gothamCounterCircleRadius}, text~width={0pt}
+ ]
+ (pagenumframe) at ([xshift=\gothamCounterRadius]localCenter) {}
+ ;
+ \filldraw[
+ draw=progress~bar~in~head/foot.bg,
+ fill=standin.bg,
+ thick,
+ ]
+ (pagenumframe) circle (\gothamCounterCircleRadius)
+ ;
+ % place the frame number in another node to avoid unwanted rescaling.
+ \node[at=(pagenumframe.center), anchor=center] {
+ {\usebeamercolor[fg]{standin}\tiny\insertframenumber}
+ };
+ }
+ %\fi gothamProgCircleMoving
+ \end{tikzpicture}
+ \bool_if:NTF \l_gotham_ProgCircleMoving_bool {
+ % nothing
+ \hspace{\gothamProgressCircLogoOuterRadius+0.75ex}
+ }{
+ % else
+ % extra space to compensate the total number of frame
+ \hspace{\gothamProgressCircLogoOuterRadius+3ex}
+ }
+ % \tikzexternalenable
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{progressbar~position} = \oarg{\defopt{foot} \textbar none \textbar head \textbar circlehead \textbar ... }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |progress bar| templates that be placed in the head (over the frametitle), frametitle (under it), below the footer or the circlehead (around the logo in the frametitle).
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for progress bar.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% token list to remember what is the current state
+\tl_new:N \l__gotham_out_tmp_pbar_tl
+\keys_define:nn { gotham / outer }{
+ % progressbar~position default
+ progressbar~position .choice:,
+ progressbar~position .usage:n = { general },
+ progressbar~position .default:n = { none },
+
+ progressbar~position / none .code:n = {
+ % reset if it has modified by another progressbar~position strategy
+ % \__gotham_set_prop_template:nn{sidebar~canvas~right/default}{#1}
+ \tl_set:Nn \l__gotham_out_tmp_pbar_tl {none}
+
+ % head
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % frametitle
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ % foot
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ % left
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ % right
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ % logo
+ \__gotham_set_prop_template:nn{includeLogo/default}{gotham~square}
+ % section in head
+ \setbeamertemplate{section~in~head/foot~shaded}[default/\prop_item:Nn \l__gotham_template_name_prop {section~in~head/foot~shaded/default}]
+ \setbeamertemplate{section~in~head/foot}[default/\prop_item:Nn \l__gotham_template_name_prop {section~in~head/foot/default}]
+ },
+ progressbar~position / head .code:n = {
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} {
+ % True: nothing to do it is already done.
+ } {
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_pbar_tl {head}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{headline}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} {
+ \usebeamertemplate*{progress~bar~in~head/foot}
+ }{}
+ }
+ }
+ },
+ progressbar~position / frametitle .code:n = {
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} {
+ % True: nothing to do it is already done.
+ } {
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_pbar_tl {frametitle}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{frametitle}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} {
+ \usebeamertemplate*{progress~bar~in~head/foot}
+ }{}
+ }
+ }
+ },
+ progressbar~position / foot .code:n = {
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} {
+ % True: nothing to do it is already done.
+ } {
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_pbar_tl {footline}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{footline}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} {
+ \usebeamertemplate*{progress~bar~in~head/foot}
+ }{}
+ }
+ }
+ },
+ progressbar~position / circlehead .code:n = {
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {circlehead} {
+ % True: nothing to do it is already done.
+ } {
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_pbar_tl {circlehead}
+
+ %
+ %%%\prop_put:Nnn \l__gotham_template_name_SAVE_prop {includeLogo/default} {gotham~square} % not needed after all.
+ \__gotham_set_prop_template:nn{includeLogo/default}{gotham~circle}
+ \__gotham_set_template:nn{section~in~head/foot~shaded}{default/gotham~secSubsec}
+ \__gotham_set_template:nn{section~in~head/foot}{default/gotham~secSubsec}
+ % \__gotham_set_template:nn{headline}{default/gotham~section}
+ % \setbeamertemplate{headline}[default/gotham~section]
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: it is already occupied, so let's emulate the gotham section
+ \addtobeamertemplate{headline}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {circlehead} {
+ \begin{beamercolorbox}[wd=1.0\paperwidth, ht=2.5ex, dp=1.4ex, left]{headfoot}
+ \usebeamerfont{section~in~head/foot}\hspace*{3.5ex}
+ \usebeamertemplate{section~in~head/foot}
+ \end{beamercolorbox}
+ }{}
+ }
+ }{
+ % \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ \__gotham_set_template:nn{headline}{default/gotham~section}
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+ }
+ },
+ progressbar~position / left .code:n = {
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} {
+ % True: nothing to do it is already done.
+ } {
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_pbar_tl {left}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{sidebar~left}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} {
+ \usebeamertemplate*{progress~bar~in~left}
+ }{}
+ }
+ }
+ },
+ progressbar~position / right .code:n = {
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} {
+ % True: nothing to do it is already done.
+ } {
+ % False : remember that choice in order to do not apply it several time and add to beamer template.
+ \tl_set:Nn \l__gotham_out_tmp_pbar_tl {right}
+
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}]
+ }
+ % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} {
+ % % True: nothing to do it is already occupied.
+ % }{
+ \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}]
+ % }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}]
+ }
+ \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} {
+ % True: nothing to do it is already occupied.
+ }{
+ \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}]
+ }
+
+ %
+ \addtobeamertemplate{sidebar~right}{}{
+ \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} {
+ \usebeamertemplate*{progress~bar~in~right}
+ }{}
+ }
+ }
+ },
+
+ progressbar~position / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'progressbar~position',~so~being~ignored. }{helping~message: progressbar~position / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{progressbar style} = \oarg{\defopt{rectangle} \textbar rounded box \textbar moving circle \textbar fixed circle }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |progress bar style| templates that .
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for progress bar style.
+% \UnitTested
+% \TestFiles{gotham-test-049}
+% \begin{macrocode}
+% token list to remember what is the current state
+\keys_define:nn { gotham / outer }{
+ % progressbar~style default
+ progressbar~style .choice:,
+ progressbar~style .usage:n = { general },
+ progressbar~style .default:n = { rectangle },
+
+ progressbar~style / rectangle .code:n = {
+ %
+ % \defbeamertemplate*{progress~bar~in~head/foot}{gotham~rectangle}
+ \__gotham_set_template:nn{progress~bar~in~head/foot}{gotham~rectangle}
+ \__gotham_set_template:nn{progress~bar~in~left}{gotham~rectangle}
+ \__gotham_set_template:nn{progress~bar~in~right}{gotham~rectangle}
+ },
+
+ progressbar~style / rounded~box .code:n = {
+ %
+ \__gotham_set_template:nn{progress~bar~in~head/foot}{gotham~rounded~box}
+ \__gotham_set_template:nn{progress~bar~in~left}{gotham~rounded~box}
+ \__gotham_set_template:nn{progress~bar~in~right}{gotham~rounded~box}
+ },
+
+ progressbar~style / moving~circle .code:n = {
+ %
+ \bool_set_true:N \l_gotham_ProgCircleMoving_bool
+ },
+
+ progressbar~style / fixed~circle .code:n = {
+ %
+ \bool_set_false:N \l_gotham_ProgCircleMoving_bool
+ },
+
+ progressbar~style / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'progressbar~style',~so~being~ignored. }{helping~message: progressbar~style / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{progressbar~advancement} = \oarg{\defopt{tlbr} \textbar brlt }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control |progress bar| advandement: tlbr) from top left corner to the bottom and right or brlt) from the bottom right to the left and top.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for progress bar style.
+% \UnitTested
+% \TestFiles{gotham-test-049}
+% \begin{macrocode}
+% token list to remember what is the current state
+\keys_define:nn { gotham / outer }{
+ % progressbar~advancement default
+ progressbar~advancement .choice:,
+ progressbar~advancement .usage:n = { general },
+ progressbar~advancement .default:n = { tlbr },
+
+ progressbar~advancement / tlbr .code:n = {
+ %
+ \bool_set_true:N \l_gotham_progbar_advancement_tlbr_bool
+ },
+ progressbar~advancement / TLBR .code:n = {
+ %
+ \bool_set_true:N \l_gotham_progbar_advancement_tlbr_bool
+ },
+
+ progressbar~advancement / brlt .code:n = {
+ %
+ \bool_set_false:N \l_gotham_progbar_advancement_tlbr_bool
+ },
+ progressbar~advancement / BRLT .code:n = {
+ %
+ \bool_set_false:N \l_gotham_progbar_advancement_tlbr_bool
+ },
+
+ progressbar~advancement / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'progressbar~advancement',~so~being~ignored. }{helping~message: progressbar~advancement / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{function}{\useoutertheme}
+% \begin{syntax}
+% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham}
+% \textrm{where the options are (default marked as} \defopt{default}\textrm{):}
+% \meta{progressbar mfn} = \oarg{\defopt{off} \textbar on }
+% \end{syntax}
+% The 'package' (useoutertheme) options can control if the progress bar includes a miniframe navigation.
+% \end{function}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro}{outer key -- interface}
+% Controls the outer settings for progress bar style.
+% \UnitTested
+% \TestFiles{gotham-test-049}
+% \begin{macrocode}
+% token list to remember what is the current state
+\keys_define:nn { gotham / outer }{
+ % progressbar~mfn default
+ progressbar~mfn .choice:,
+ progressbar~mfn .usage:n = { general },
+ progressbar~mfn .default:n = { off },
+
+ progressbar~mfn / true .code:n = {
+ \bool_set_true:N \l_gotham_pmfn_bool
+
+ \__gotham_set_template:nn{section~in~head/foot~shaded}{default/empty}
+ \__gotham_set_template:nn{section~in~head/foot}{default/empty}
+ \renewcommand{\gothamPatchSectionbox}{
+ % patch to set section box height to 0.
+ \ht\beamer@sectionbox=0.ex
+ \dp\beamer@sectionbox=0.ex
+ }
+ },
+ progressbar~mfn / on .code:n = {
+ \bool_set_true:N \l_gotham_pmfn_bool
+
+ \__gotham_set_template:nn{section~in~head/foot~shaded}{default/empty}
+ \__gotham_set_template:nn{section~in~head/foot}{default/empty}
+ \renewcommand{\gothamPatchSectionbox}{
+ % patch to set section box height to 0.
+ \ht\beamer@sectionbox=0.ex
+ \dp\beamer@sectionbox=0.ex
+ }
+ },
+ progressbar~mfn / enable .code:n = {
+ \bool_set_true:N \l_gotham_pmfn_bool
+
+ \__gotham_set_template:nn{section~in~head/foot~shaded}{default/empty}
+ \__gotham_set_template:nn{section~in~head/foot}{default/empty}
+ \renewcommand{\gothamPatchSectionbox}{
+ % patch to set section box height to 0.
+ \ht\beamer@sectionbox=0.ex
+ \dp\beamer@sectionbox=0.ex
+ }
+ },
+
+ progressbar~mfn / false .code:n = { \bool_set_false:N \l_gotham_pmfn_bool },
+ progressbar~mfn / off .code:n = { \bool_set_false:N \l_gotham_pmfn_bool },
+ progressbar~mfn / disable .code:n = { \bool_set_false:N \l_gotham_pmfn_bool },
+
+ progressbar~mfn / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'progressbar~mfn',~so~being~ignored. }{helping~message: progressbar~mfn / unknown} },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{implementation}
+% \begin{macro}{Default outer keys}
+% Apply default key options.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+% when no value is given, default is called.
+\keys_set:nn { gotham / outer } {
+ sidebar~canvas~right~template, sidebar~canvas~left~template,
+ edging~default,
+ frametitle~template, framesubtitle~template, frametitle~continuation~template,
+ numbering,
+ rotateFooter~default,
+ footer~template,
+ mini~frames~shape, mini~frames~bundle,
+ mini~frames~compress,
+ mini~frames~nav~spreading,
+ mini~frames~nav~sectioning,
+ mini~frames~nav~position,
+ progressbar~position, progressbar~style, progressbar~advancement, progressbar~mfn,
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{Process outer keys}
+% Process package options.
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+\ProcessKeyOptions[ gotham / outer ]
+% \mode<all>
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+
+%
+%
+% \begin{implementation}
+% \begin{macrocode}
+%\endinput
+%</outer>
+% \end{macrocode}
+% \end{implementation}
+%
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%
+%\begin{implementation}
+% \begin{macrocode}
+%<*package>
+\RequirePackage{expl3}
+\RequirePackage{xparse}
+% \RequirePackage{ifxetex}
+% \RequirePackage{ifluatex}
+% \RequirePackage{etoolbox}
+% \RequirePackage{xcolor}
+% \RequirePackage{tikz}
+% \RequirePackage{calc} % I think I can remove it with a bit of work
+% \RequirePackage{xfp}
+% \end{macrocode}
+% \end{implementation}
+%
+% \begin{implementation}
+% \begin{macrocode}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%% PACKAGE %%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%
+\providecommand\ifratio[3]{%
+ \ifnum#1=169%
+ \ifdim\beamer@paperwidth=16.00cm\relax%
+ \ifdim\beamer@paperheight=9.00cm\relax%
+ #2%
+ \else%
+ #3%
+ \fi%
+ \else%
+ #3%
+ \fi%
+ \else%
+ \ifnum#1=43%
+ \ifdim\beamer@paperwidth=12.80cm\relax%
+ \ifdim\beamer@paperheight=9.60cm\relax%
+ #2%
+ \else%
+ #3%
+ \fi%
+ \else%
+ #3%
+ \fi%
+ \fi%
+ \fi%
+}
+\providecommand\ifscreenratio[2]{%
+ \ifdim\beamer@paperwidth=16.00cm\relax%
+ \ifdim\beamer@paperheight=9.00cm\relax%
+ #1%
+ \fi%
+ \fi%
+ \ifdim\beamer@paperwidth=12.80cm\relax%
+ \ifdim\beamer@paperheight=9.60cm\relax%
+ #2%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{implementation}
+%
+% Most options are passed off to the component sub-packages.
+% \begin{implementation}
+% \begin{macrocode}
+
+%
+\usefonttheme{gotham}
+\usecolortheme{gotham}
+\useinnertheme{gotham}
+\useoutertheme{gotham}
+%
+%
+%
+
+%%%%% Setting keys %%%%%
+
+% set new counter for how many time the lookup is used
+\int_new:N \l_gotham_lookup_cnt
+\int_set:Nn \l_gotham_lookup_cnt {0}
+
+\seq_const_from_clist:Nn \c__gotham_load_submodules_seq { font, color, inner, outer }
+
+\cs_new_protected:Npn \__gotham_lookup_keymodules:nn #1#2
+{
+ \int_incr:N \l_gotham_lookup_cnt
+ % \int_show:n \l_gotham_lookup_cnt
+
+ % if lookup counter is lower than the number of submodules-1 [before it was +1, not completely clear to me], do nothing (let the other submodules do their job), otherwise lookup in the submodules
+ \if_int_compare:w \l_gotham_lookup_cnt < 2
+ %true : do nothing
+ \else:
+ % \int_show:n \l_gotham_lookup_cnt
+ \seq_map_inline:Nn \c__gotham_load_submodules_seq
+ {
+ \keys_if_exist:nnT { gotham / ##1 } {#1}
+ {
+ % missing feature in l3keys, we have no better way to detect an omitted value, so we have to guess that all empty values are in fact omitted values.
+ \tl_if_empty:nTF {#2}
+ { \keys_set:nn { gotham / ##1 } { #1 } }
+ { \keys_set:nn { gotham / ##1 } { #1 = {#2} } }
+ \prg_break:
+ }
+ }
+ \msg_error:nnn { gotham } { unknown-key } {#1}
+ \prg_break_point:
+ \fi:
+}
+\cs_generate_variant:Nn \__gotham_lookup_keymodules:nn { Vn }
+\msg_new:nnn { gotham } { unknown-key } { Unknown~ key~ #1~ encountered. }
+
+% Property list for all groups.
+\prop_new:N \l__gotham_all_all_user_keys_prop
+\prop_const_from_keyval:Nn \c__gotham_all_pkg_keys_prop {}
+
+\keys_define:nn { gotham / all / all }
+{
+ unknown .code:n =
+ {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
+}
+
+% Set default keys/options from keyval
+% \__gotham_set_default_from_keyval: variant, keyval, group command
+\cs_new_protected:Npn \__gotham_set_default_from_keyval:nnn #1 #2 #3
+{ %%
+ % Check if keyvalues have been given.
+ \tl_if_novalue:nTF {#2}
+ { % no user keys given so _user_keys_prop is taking pkg prop
+ \prop_set_eq:cc { l__gotham_#3_#1_user_keys_prop } { c__gotham_#3_pkg_keys_prop }
+ }{ % user key given and put it in prop
+ \prop_put_from_keyval:cn { l__gotham_#3_#1_user_keys_prop } {#2}
+ }% end if
+ %
+ % xx
+ \__gotham_set_default_auxi:cnn { l__gotham_#3_#1_user_keys_prop } {#1} {#3}
+ %
+ % xx
+ \keys_set:nn { gotham/#3/#1 } { default }
+}
+%
+% prop-key-val, variant, group command
+\cs_new_protected:Npn \__gotham_set_default_auxi:Nnn #1 #2 #3
+{
+ \__gotham_set_default_auxii:fnn { \prop_to_keyval:N #1 } {#2} {#3}
+}
+\cs_generate_variant:Nn \__gotham_set_default_auxi:Nnn { c }
+%
+% key-val, variant, group command
+\cs_new_protected:Npn \__gotham_set_default_auxii:nnn #1 #2 #3
+{
+ \keys_define:nn { gotham/#3/#2 } { default .meta:n = {#1} }
+}
+\cs_generate_variant:Nn \__gotham_set_default_auxii:nnn { f }
+%
+%
+% (re)set keys/options by default for a group of commands.
+% \gothamset m:options:#1
+\DeclareDocumentCommand{\gothamset}{ m }
+{
+ \__gotham_set_default_from_keyval:nnn { all } {#1} { all }
+ \keys_set:nn { gotham/all/all } { default }
+}
+
+\def\gotham@plaintitleformat#1{#1}
+\newcommand{\mreducelistspacing}{\vspace{-\topsep}}
+
+\ProcessOptionsBeamer
+\keys_define:nn { gotham / font }
+{
+ unknown .code:n =
+ {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
+}
+\keys_define:nn { gotham / color }
+{
+ unknown .code:n =
+ {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
+}
+\keys_define:nn { gotham / inner }
+{
+ unknown .code:n =
+ {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
+}
+\keys_define:nn { gotham / outer }
+{
+ unknown .code:n =
+ {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
+}
+
+\ProcessKeyOptions[ gotham / font ]
+\ProcessKeyOptions[ gotham / color ]
+\ProcessKeyOptions[ gotham / inner ]
+\ProcessKeyOptions[ gotham / outer ]
+
+%
+% \end{macrocode}
+% \end{implementation}
+%
+% \begin{implementation}
+% \begin{macrocode}
+%\endinput
+%</package>
+% \end{macrocode}
+% \end{implementation}
+%
+%
+\endinput
+%
+% \Finale
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.ins b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.ins
new file mode 100644
index 0000000000..6bccc22ba9
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.ins
@@ -0,0 +1,75 @@
+%%
+%% Copyright (C) 2008 by Romain NOËL <romainoel@free.fr>
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3c of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2006/05/20 or later.
+%%
+
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\preamble
+
+Copyright (C) 2023-20** by Romain NOËL <romainoel@free.fr>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Romain NOËL.
+Contributors: Romain NOËL (2023-20**)
+
+\endpreamble
+
+\postamble
+
+Adapted from classic "A model .dtx file" by Joseph Wright
+https://www.texdev.net/2009/10/06/a-model-dtx-file/
+\endpostamble
+
+\usedir{tex/latex/gotham}
+\generate{
+ \file{beamerthemegotham.sty}{\from{gotham.dtx}{package}}%
+ \file{beamerfontthemegotham.sty}{\from{gotham.dtx}{font}}%
+ \file{beamercolorthemegotham.sty}{\from{gotham.dtx}{color}}%
+ \file{beamerinnerthemegotham.sty}{\from{gotham.dtx}{inner}}%
+ \file{beamerouterthemegotham.sty}{\from{gotham.dtx}{outer}}%
+ \nopreamble\nopostamble
+ \file{gotham-user-cmds.tex}{\from{gotham.dtx}{userCmd}}%
+ \file{gotham-dev-impl.tex}{\from{gotham.dtx}{devImpl}}%
+}
+
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* beamercolorthemegotham.sty *}
+\Msg{* beamerfontthemegotham.sty *}
+\Msg{* beamerinnerthemegotham.sty *}
+\Msg{* beamerouterthemegotham.sty *}
+\Msg{* beamerthemegotham.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file gotham.dtx *}
+\Msg{* through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdf
new file mode 100644
index 0000000000..83effd4537
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Beamer.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Beamer.tex
new file mode 100644
index 0000000000..dd7a5e78fa
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Beamer.tex
@@ -0,0 +1,379 @@
+\documentclass[aspectratio=169]{beamer}
+
+ \usepackage{standalone}
+ \usepackage{tikz}
+ \usepackage{pgfplots}
+
+ \usepackage{tabularray} % Typeset tabulars and arrays (contains equivalent of longtable, booktabs and dcolumn at least)
+ \UseTblrLibrary{booktabs} % to load extra commands from booktabs
+
+ \usepackage{natbib}
+\begin{filecontents*}[overwrite]{pres.bib}
+
+@article{Knuth92,
+ author = "D.E. Knuth",
+ title = "Two notes on notation",
+ journal = "Amer. Math. Monthly",
+ volume = "99",
+ year = "1992",
+ pages = "403--422",
+}
+
+@book{ConcreteMath,
+ author = "R.L. Graham and D.E. Knuth and O. Patashnik",
+ title = "Concrete mathematics",
+ publisher = "Addison-Wesley",
+ address = "Reading, MA",
+ year = "1989"
+}
+
+@unpublished{Simpson,
+ author = "H. Simpson",
+ title = "Proof of the {R}iemann {H}ypothesis",
+ note = "preprint (2003), available at \texttt{http://www.math.drofnats.edu/riemann.ps}",
+ year = "2003"
+}
+
+@incollection{Er01,
+ author = "P. Erd{\H o}s",
+ title = "A selection of problems and results in combinatorics",
+ booktitle = "Recent trends in combinatorics (Matrahaza, 1995)",
+ publisher = "Cambridge Univ. Press",
+ address = "Cambridge",
+ pages = "1--6",
+ year = "1995"
+}
+
+@article{greenwade93,
+ author = "George D. Greenwade",
+ title = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})",
+ year = "1993",
+ journal = "TUGBoat",
+ volume = "14",
+ number = "3",
+ pages = "342--351"
+}
+\end{filecontents*}
+
+\begin{document}
+
+\section{Introduction: Beamer}
+
+ % FRAME
+ \begin{frame}[fragile]{Title page}
+ The Title page is printed using the command:
+ \begin{verbatim} \maketitle\end{verbatim}
+
+ The element printed on this page are defined in the preamble by
+ \begin{verbatim}
+ \title[]{Gotham}
+ \subtitle{A Modern, versatile and extendable theme for Beamer}
+ \date[]{\today}
+ \author[]{Romain NOËL}
+ \institute{Center for modern beamer themes}
+ \titlegraphic{\hfill\includegraphics[height=1.5cm, draft]{Title_logo.pdf}}
+ \end{verbatim}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Plain Slide}
+ The usual page is printed and defined using the command:
+ \begin{verbatim}
+ \begin{frame}{Title on top of the frame}
+ contenu...
+ \end{frame }
+ \end{verbatim}
+
+ Note that the logo printed on this page are defined in the preamble by
+ \begin{verbatim}
+ \logo{\includegraphics[height=1.5cm, draft]{logo.pdf}}
+ \end{verbatim}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Sections}
+ Sections group slides of the same topic
+
+ \begin{verbatim} \section{Elements}\end{verbatim}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Typography}
+ \begin{verbatim}
+ The theme provides sensible defaults to
+ \emph{emphasize} text, \alert{accent} parts
+ or show \textbf{bold} results.
+ \end{verbatim}
+
+ \begin{center}becomes\end{center}
+
+ The theme provides sensible defaults to \emph{emphasize} text,
+ \alert{accent} parts or show \textbf{bold} results.
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Font feature test}
+ \begin{itemize}
+ \item Regular
+ \item \textit{Italic}
+ \item \textsc{Small Caps}
+ \item \textbf{Bold}
+ \item \textbf{\textit{Bold Italic}}
+ \item \textbf{\textsc{Bold Small Caps}}
+ \item \texttt{Monospace}
+ \item \texttt{\textit{Monospace Italic}}
+ \item \texttt{\textbf{Monospace Bold}}
+ \item \texttt{\textbf{\textit{Monospace Bold Italic}}}
+ \end{itemize}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Lists}
+ \begin{columns}[T,onlytextwidth]
+ \column{0.33\textwidth}
+ Items
+ \begin{itemize}
+ \item Milk \item Eggs \item Potatoes
+ \begin{itemize}
+ \item Milk \item Eggs \item Potatoes
+ \begin{itemize}
+ \item Milk
+ \end{itemize}
+ \end{itemize}
+ \end{itemize}
+
+ \column{0.33\textwidth}
+ Enumerations
+ \begin{enumerate}
+ \item First, \item Second and \item Last.
+ \end{enumerate}
+
+ \column{0.33\textwidth}
+ Descriptions
+ \begin{description}
+ \item[PowerPoint] Meeh. \item[Beamer] Yeeeha.
+ \end{description}
+ \end{columns}
+
+ \vspace{2em}
+ Then, something below the columns, that be long enough to recover all the line-width.
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Animation}
+ \begin{itemize}[<+- | alert@+>]
+ \item \alert<4>{This is\only<4>{ really} important}
+ \item Now this
+ \item And now this
+ \end{itemize}
+ \end{frame}
+
+ % FRAME from https://www.edpif.org/documents/latex/intermediate/beamer/latex-int-beamer_handout.pdf
+ \begin{frame}[fragile]{Commands controlling overlay}
+ Beamer defines a bunch of commands intended to control overlays:
+ \verb$\only<...>{text}$ Throws away \verb$text$ content on slides not in \verb$<...>$
+ \verb$\onslide<...>{text}$ Same, but when hidden \verb$text$ still takes space.
+ \verb$\visible<...>{text}$ Same.
+ \verb$\uncover<...>{text}$ Same, but also handle transparency.
+ \verb$\invisible<...>{text}$ Opposite of \verb$\visible$
+ \verb$\alt<...>{text1}{text2}$ Alternates between \verb$text1$ and \verb$text2$ for\verb$ <...>$.
+ \verb$\temporal<...>{before}{inside}{after}$ Alternate between three texts depending on slide index before, inside or after the range of \verb$<...>$.
+ For the commands \verb$\only$ and \verb$\alt$ the \verb$<...>$ can also be after the text.
+ Then \verb$\only$ can be used to make commands \verb$<...>$-aware (§9.3) like in:
+ \verb$\newcommand{\myblue}{\only{\color{blue}}}$
+ \verb$\myblue<2> This text is blue only on slide 2.$
+ Finally, \verb$\only$ and \verb$\onslide$ without text argument work as toogles.
+ Much more options, described in §9.4 to 9.6
+ \end{frame}
+
+ % FRAME from https://www.edpif.org/documents/latex/intermediate/beamer/latex-int-beamer_handout.pdf
+ \begin{frame}[fragile]{Action specifications}
+ Inside \verb$<...>$ it is possible to add some action specifications
+ Action are specified after the slide range \& a | and followed by @ and the target slide or range.
+ For example one can write:
+ \verb$\item<3-|alert@4> Shown from slide 3 on, alerted on slide 4.$
+ which set the \verb$\alert$ for item 3 only in slide 4.
+ Actions can be defined for \verb$\item$, \verb$\action$, \verb$\begin{actionenv}\verb$
+ and the block environments and the possible actions are by default,
+ alert, uncover, only, visible, invisible, but other can be
+ defined by the user. See manual § 9.6.3
+ Simple example using uncover with specified transparency:
+ \begin{verbatim}
+ \setbeamercovered{transparent=30}
+ \begin{itemize}[<+-|uncover@+>]
+ \item first
+ \item second
+ \item third
+ \end{itemize}
+ \end{verbatim}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Figures}
+ \begin{figure}
+ \centering
+ \newcounter{density}
+ \setcounter{density}{20}
+ \begin{tikzpicture}
+ \def\couleur{alerted text.fg}
+ \path[coordinate] (0,0) coordinate(A)
+ ++( 90:5cm) coordinate(B)
+ ++(0:5cm) coordinate(C)
+ ++(-90:5cm) coordinate(D);
+ \draw[fill=\couleur!\thedensity] (A) -- (B) -- (C) --(D) -- cycle;
+ \foreach \x in {1,...,40}{%
+ \pgfmathsetcounter{density}{\thedensity+20}
+ \setcounter{density}{\thedensity}
+ \path[coordinate] coordinate(X) at (A){};
+ \path[coordinate] (A) -- (B) coordinate[pos=.10](A)
+ -- (C) coordinate[pos=.10](B)
+ -- (D) coordinate[pos=.10](C)
+ -- (X) coordinate[pos=.10](D);
+ \draw[fill=\couleur!\thedensity] (A)--(B)--(C)-- (D) -- cycle;
+ }
+ \end{tikzpicture}
+ \caption{Rotated square with Tikz package from
+ \href{http://www.texample.net/tikz/examples/rotated-polygons/}{texample.net}.}
+ \end{figure}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Tables}
+ \begin{table}
+ \centering
+ \caption{Largest cities in the world (source: Wikipedia)}
+ \begin{tabular}{@{} lr @{}}
+ \toprule
+ City & Population\\
+ \midrule
+ Mexico City & 20,116,842\\
+ Shanghai & 19,210,000\\
+ Peking & 15,796,450\\
+ Istanbul & 14,160,467\\
+ \bottomrule
+ \end{tabular}
+ \end{table}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Blocks}
+ Three different block environments are pre-defined.
+
+ \begin{block}{Default}
+ Block content.
+ \end{block}
+
+ \begin{alertblock}{Alert}
+ Block content.
+ \end{alertblock}
+
+ \begin{exampleblock}{Example}
+ Block content.
+ \end{exampleblock}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Math}
+ \begin{equation}
+ e = \lim_{n\to \infty} \left(1 + \frac{1}{n}\right)^n
+ \end{equation}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Line plots}
+ \begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \begin{axis}[
+ width=0.9\textwidth,
+ height=6cm,
+ ]
+
+ \addplot {sin(deg(x))};
+ \addplot+[samples=100] {sin(deg(2*x))};
+
+ \end{axis}
+ \end{tikzpicture}
+ \caption{A nice sinus plot with Tikz.}
+ \end{figure}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Bar charts}
+ \begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \begin{axis}[
+ ybar,
+ xlabel={Foo},
+ ylabel={Bar},
+ width=0.9\textwidth,
+ height=6cm,
+ nodes near coords,
+ nodes near coords align={vertical},
+ ]
+
+ \addplot plot coordinates {(1, 20) (2, 25) (3, 22.4) (4, 12.4)};
+ \addplot plot coordinates {(1, 18) (2, 24) (3, 23.5) (4, 13.2)};
+ \addplot plot coordinates {(1, 10) (2, 19) (3, 25) (4, 15.2)};
+
+ \legend{lorem, ipsum, dolor}
+
+ \end{axis}
+ \end{tikzpicture}
+ \caption{A nice bar chart with Tikz.}
+ \end{figure}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}{Quotes}
+ \begin{quote}
+ Veni, Vidi, Vici
+ \end{quote}
+ from Julius Caesar.
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{References}
+ Some references to showcase \verb|[allowframebreaks]| on next slide \cite{Knuth92,ConcreteMath,Simpson,Er01,greenwade93}
+ \end{frame}
+
+ % % FRAME
+ % \begin{frame}{References}
+ % \bibliography{pres}
+ % \bibliographystyle{abbrv}
+ % \end{frame}
+
+ % FRAME
+ \begin{frame}[allowframebreaks]{References}
+ \begin{thebibliography}{1}
+
+ \bibitem{Er01}
+ P.~Erd{\H o}s.
+ \newblock A selection of problems and results in combinatorics.
+ \newblock In {\em Recent trends in combinatorics (Matrahaza, 1995)}, pages 1--6. Cambridge Univ. Press, Cambridge, 1995.
+
+ \bibitem{ConcreteMath}
+ R.~Graham, D.~Knuth, and O.~Patashnik.
+ \newblock {\em Concrete mathematics}.
+ \newblock Addison-Wesley, Reading, MA, 1989.
+
+ \bibitem{greenwade93}
+ G.~D. Greenwade.
+ \newblock The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN}).
+ \newblock {\em TUGBoat}, 14(3):342--351, 1993.
+
+ \bibitem{Knuth92}
+ D.~Knuth.
+ \newblock Two notes on notation.
+ \newblock {\em Amer. Math. Monthly}, 99:403--422, 1992.
+
+ \bibitem{Simpson}
+ H.~Simpson.
+ \newblock Proof of the {R}iemann {H}ypothesis.
+ \newblock preprint (2003), available at \texttt{http://www.math.drofnats.edu/riemann.ps}, 2003.
+
+ \end{thebibliography}
+ \end{frame}
+
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex
new file mode 100644
index 0000000000..ec4c8a37de
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex
@@ -0,0 +1,37 @@
+\documentclass[aspectratio=169]{beamer}
+% \usetheme{gotham}
+
+ \usepackage{appendixnumberbeamer}
+ \usepackage[scale=2]{ccicons}
+ \newcommand{\themename}{\textbf{\textsc{Gotham}}}
+
+
+\begin{document}
+
+\section{Conclusion}
+
+ \begin{frame}{Summary}
+ Get the source of this theme and the demo presentation from
+
+ \begin{center}\url{https://gitlab.com/RomainNOEL/beamertheme-gotham}\end{center}
+
+ The theme \emph{itself} is licensed under a \href{http://creativecommons.org/licenses/by-sa/4.0/}{Creative Commons Attribution-ShareAlike 4.0 International License}.
+ \begin{center} \ccbysa \end{center}
+ \end{frame}
+
+ \begin{standoutenv}
+ \begin{frame}[fragile]
+ The final slide using the standout style with command:
+ \begin{verbatim}
+ \begin{frame}[standout]{Thank You !}
+ Questions ?
+ \end{frame }
+ \end{verbatim}
+
+ \begin{center}
+ Et voilà !
+ \end{center}
+ \end{frame}
+ \end{standoutenv}
+
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex
new file mode 100644
index 0000000000..eb9b4bef0d
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex
@@ -0,0 +1,398 @@
+\documentclass[aspectratio=169]{beamer}
+\usetheme{gotham}
+
+ \usepackage{standalone}
+ \usepackage{tikz}
+ \usepackage{pgfplots}
+ \usepackage{tabularray} % Typeset tabulars and arrays (contains equivalent of longtable, booktabs and dcolumn at least)
+ \UseTblrLibrary{booktabs} % to load extra commands from booktabs
+ \usepackage{changepage}
+
+ \newcommand{\themename}{\textbf{\textsc{Gotham}}}
+
+
+\begin{document}
+
+\section{Gotham Theme}
+
+ % FRAME
+ \begin{frame}[fragile]{Gotham}
+
+ The \themename{} theme is a Beamer theme with a minimal-ish visual style largely inspired by the \href{https://github.com/matze/mtheme}{\textsc{Metropolis} Beamer Theme} by Matthias Vogelgesang (and some other Beamer themes).
+
+ Yet, \themename{} is highly extendable and versatile.
+ \bigskip
+
+ First, enable the theme by classically loading it:
+
+ \begin{verbatim}
+ \documentclass{beamer}
+ \usetheme{gotham}
+ \end{verbatim}
+
+ Then, the all customization can be performed at any moment in the presentation using:
+
+ \begin{verbatim}
+ \gothamset{<option>=...}
+ \end{verbatim}
+ \end{frame}
+
+
+\subsection{Fonts}
+
+ % FRAME
+ \begin{frame}[fragile]{Gotham title formats}
+ Note, that you have to have Mozilla's \emph{Fira Sans} font and XeTeX or LuaTeX installed to enjoy this wonderful typography.
+
+ \begin{columns}[T,onlytextwidth]
+ \column{0.49\textwidth}
+ \themename{} supports 4 different title formats \verb|\gothamset{format frametitle=}|
+ \begin{itemize}
+ \item regular
+ \item \MakeLowercase{Lower}
+ \item \MakeUppercase{Upper}
+ \item \MakeTitlecase{Title Case}
+ \end{itemize}
+ \column{0.49\textwidth}
+ \themename{} supports 3 different title shape \verb|\gothamset{shape frametitle=...}|:
+ \begin{itemize}
+ \item regular
+ \item \textsc{Small caps}
+ \item \textit{italic}
+ \end{itemize}
+ \end{columns}
+
+ \vspace{2em}
+ They can either be set at once for every title type or individually.
+ \end{frame}
+
+ {
+ \gothamset{shape frametitle=smallcaps, format frametitle=titlecase}
+ % FRAME
+ \begin{frame}{Titles: Small caps and titlecase}
+ This frame uses the title format options: \texttt{shape frametitle=smallcaps, format frametitle=titlecase}.
+
+ \begin{alertblock}{Potential Problems}
+ Be aware that not every font supports small caps.
+ If for example you typeset your presentation with pdfTeX and the Computer Modern Sans Serif font, every text in small caps will be typeset with the Computer Modern Serif font instead.
+ Please refer to the documentation if you consider using it.
+
+ As a rule of thumb: just use it for plaintext-only titles.
+ \end{alertblock}
+ \end{frame}
+ }
+
+ {
+ \gothamset{format frametitle=upper, shape frametitle=italic}
+ % FRAME
+ \begin{frame}{Titles: Upper and italic}
+ This frame uses the title format options: \texttt{format frametitle=upper, shape frametitle=smallcaps}.
+
+ \begin{alertblock}{Potential problems}
+ As this title format also uses small caps you face the same problems as with the \texttt{smallcaps} title format.
+ Additionally this format can cause some other problems.
+ Please refer to the documentation if you consider using it.
+
+
+ \end{alertblock}
+ \end{frame}
+ }
+
+ {
+ \gothamset{format frametitle=lower}
+ % FRAME
+ \begin{frame}{Titles: LOWER and regular}
+ This frame uses the title format options: \texttt{format frametitle=lower, shape frametitle=regular}.
+ \end{frame}
+ }
+
+
+\subsection{Colors}
+
+ {
+ \gothamset{background=dark}
+ % FRAME
+ \begin{frame}[fragile]{Presentation style via background color}
+ The color mode (a.k.a. background color) can be changed using:
+ \begin{verbatim} \gothamset{background=dark | light | transparent} \end{verbatim}
+ \end{frame}
+ }
+
+ % FRAME
+ \begin{frame}[fragile]{Blocks}
+ Three different block environments are pre-defined and may be styled with an optional background color.
+
+ \begin{columns}[T,onlytextwidth]
+ \column{0.3\textwidth}
+ \begin{verbatim}\gothamset{
+ block=native}\end{verbatim}
+
+ \begin{block}{Default}
+ Block content.
+ \end{block}
+
+ \begin{alertblock}{Alert}
+ Block content.
+ \end{alertblock}
+
+ \begin{exampleblock}{Example}
+ Block content.
+ \end{exampleblock}
+
+ \column{0.3\textwidth}
+
+ \gothamset{block=transparent}
+ \begin{verbatim}\gothamset{
+ block=transparent}\end{verbatim}
+
+ \begin{block}{Default}
+ Block content.
+ \end{block}
+
+ \begin{alertblock}{Alert}
+ Block content.
+ \end{alertblock}
+
+ \begin{exampleblock}{Example}
+ Block content.
+ \end{exampleblock}
+
+ \column{0.3\textwidth}
+
+ \gothamset{block=fill}
+ \begin{verbatim}\gothamset{
+ block=fill}\end{verbatim}
+
+ \begin{block}{Default}
+ Block content.
+ \end{block}
+
+ \begin{alertblock}{Alert}
+ Block content.
+ \end{alertblock}
+
+ \begin{exampleblock}{Example}
+ Block content.
+ \end{exampleblock}
+
+ \end{columns}
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Color customization}
+ The colors can be changed using:
+ \begin{verbatim}
+ \colorlet{colorPale}{gPaleYell} % BG in light/normal mode
+ \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode
+ \colorlet{colorA}{gDarkTeal} % frametitle, standin.out,
+ \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in,
+ \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks
+ \colorlet{colorC}{gDeepYellOr} % progress bar
+ \colorlet{colorD}{gLightOrange} % alert
+ \colorlet{colorE}{gLightGreen} % example
+ \end{verbatim}
+ \end{frame}
+
+
+\subsection{Inner}
+
+ % FRAME
+ \begin{frame}[fragile]{Title page}
+ \themename{} offers the possibility to adapt the title page layout (printed with \verb|\maketitle| or \verb|\titlepage|).
+ This can be achieved using:
+
+ \begin{verbatim} \defbeamertemplate{title page}{your name}{your defintion}
+ \gothamset{title page= your name}\end{verbatim}
+
+ \themename{} also predefined several templates such as:
+ \verb$gotham normal | gotham splitvert | gotham dividedpic$ \verb$| gotham reversed$
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Table of contents}
+ \themename{} come with the possibility to apply different style for your table of contents (ToC) page.
+ You can define your own ToC style as it follows:
+ \begin{verbatim}
+ \defbeamertemplate{toc page}{your name}{your def}
+ \gothamset{tocframe template= your name}
+ \end{verbatim}
+ Then, referring to this template using the frame option \verb|[toc]| in your presentation:
+ \begin{verbatim}
+ \begin{frame}[toc]{Table of contents}
+ \tableofcontents%[hideallsubsections]
+ \end{frame }\end{verbatim}
+
+ Or using one of the \themename{} predefined template, such as: \verb$gotham simple | gotham bullet$
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Sections}
+ \themename{} provides a multiple options to tune sections (respectively \verb|part|, \verb|section|, \verb|subsection| and \verb|subsubsection|).
+ Thus, using the setting controls:
+
+ The section command \verb|\section{Elements}| from Beamer will appear very differently.
+ The section page will appear or disappear thanks to: \verb$\gothamset{sectionframe default=<on|off>}$, while its layout (when appearing) is controlled by:
+ \begin{verbatim}
+ \defbeamertemplate{part|sub|subsub|section frame}
+ {your name}{your def}
+ \gothamset{sectionframe template= your name}\end{verbatim}
+
+ \themename{} predefined template are: \verb$gotham progressbar | gotham simple |$ \verb$gotham splitvert progressbar |$ \verb$gotham splitvert simple | gotham progressvert$
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Sections contents}
+ After the section page, you can (de)activate a page with table of contents in the section using \verb$\gothamset{sectiontocframe default=<on|off>}$, and its layout is controlled by:
+ \begin{verbatim}
+ \defbeamertemplate{toc subsection frame}{your name}{your def}
+ \gothamset{sectionframe template= your name}
+ \end{verbatim}
+
+ \themename{} predefined template are: \verb$gotham simple | gotham bullet$
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile, watermark]{Watermark}
+
+ With \themename{} you can locally or globally add watermark to your slides by using:
+ \begin{verbatim} \defbeamertemplate{background}{watermark/your name}{your def}
+ \gothamset{watermark template= your name}\end{verbatim}
+
+ Then, this watermark can be turn on locally using \verb|\begin{frame}[watermark]| or globally with \verb|\gothamset{watermark default= on}| .
+ \end{frame}
+
+ % FRAME
+ \begin{standinenv}
+ \begin{frame}[fragile]{Standin}
+
+ \themename{} comes with 2 environments/specials layouts named \verb|standin| and \verb|standout|.
+ These specials layouts can be used to emphasize some content or last slide\textellipsis
+
+ This layout can be turn on using \verb|\begin{frame}[standin]| or using the dedicated environment (\verb|\begin{standinenv}\begin{frame}...\end{frame}\end{standinenv}|).
+
+ Note that the background can also be tuned using:
+ \begin{verbatim} \defbeamertemplate{background canvas}{standin/name}{your def}
+ \gothamset{standin template= name}\end{verbatim}
+
+ \end{frame}
+ \end{standinenv}
+
+ % FRAME
+ \begin{frame}[fragile, standout, watermark]{Standout}
+ Here is an example of standout (working as standin), that can be combined with a watermark.
+
+ Another difference, apart the obvious color change is the font size and series.
+ \end{frame}
+
+
+\subsection{Outer}
+
+ {%
+ \setbeamertemplate{frame footer}{My custom footer}
+ % FRAME
+ \begin{frame}[fragile]{Frame footer}
+ \themename{} defines a custom Beamer template to add a text to the footer.
+ It can be set via
+ \begin{verbatim}\setbeamertemplate{frame footer}{My custom footer}\end{verbatim}
+
+ Even after redefining (or not) your frame footer template, you can locally remove it with the frame option \verb|\begin{frame}[nofooter]|.
+ \end{frame}
+ }
+
+ \title[your shorttitle]{Gotham}
+ \date[shortdate]{\today}
+ \author[your shortauthor name]{Romain NOËL}
+ % FRAME
+ \begin{frame}[fragile, rotateFooter]{rotateFooter}
+ The default footer from \themename{}, it displays the \verb|shortdate|, \verb|shorttitle| and \verb|shortauthor|.
+ So by filling these fields in your document setup, you will see them appear in your footer:
+ \begin{verbatim} \title[your shorttitle]{Your title}
+ \date[shortdate]{\today}
+ \author[your shortauthor name]{John DOE} \end{verbatim}
+
+ Since, we always need some extra space on some frames that would like to overlay a bit the footer, \themename{}'s footer offers also possibility to be put on side locally using \verb|\begin{frame}[rotateFooter]|, or globally with
+ \begin{verbatim} \gothamset{rotateFooter default=on} \end{verbatim}
+ If it has set globally, it can be deactivated locally with the frame option \verb|\begin{frame}[norotateFooter]|.
+ \end{frame}
+
+ \title[]{Gotham}
+ \date[]{\today}
+ \renewcommand{\gothamRightFiligrane}{%
+ \rotatebox{90}{gotham right filigrane pattern}
+ }
+ % FRAME
+ \begin{frame}[edging, fragile]{Edging}
+ \themename{} has two hook commands, \verb|\gothamRightFiligrane| and \verb|\gothamLeftFiligrane|, that can be redefined to customize what to display in the edgings (a.k.a. filigrane, a.k.a. sidebar).
+ As example, one could do:
+ \begin{verbatim}
+ \renewcommand{\gothamRightFiligrane}{%
+ \rotatebox{90}{gotham right filigrane pattern}
+ }\end{verbatim}
+
+ Then, to set if it should be displayed or not, globally \begin{verbatim} \gothamset{edging default=on} \end{verbatim}
+ or locally with the frame option \verb|\begin{frame}[edging]| or \verb|\begin{frame}[noedging]|.
+ \end{frame}
+
+ % FRAME
+ % \begin{nofootlineenv}
+ \begin{frame}[fragile,noedging,nofooter]{Really wide contents}
+ \begin{adjustwidth}{-2em}{-2em}
+ If you want a really wide content in your frame, you can change the size of your margin (requires \verb|\usepackage{changepage}| in your preamble).
+ You can also suppress the edging (\verb|[noedging]|) and footer (\verb|[nofooter]|) or even more radically footline (\verb|[nofootline]|).
+
+ Here is an example combining them:
+ \begin{verbatim}
+ \begin{frame}[noedging,nofootline]{extended frame}
+ \begin{adjustwidth}{-2em}{-2em}% 2em extra to the left and 2em for right margin.
+ wide content
+ \end{adjustwidth}
+ \end{frame }
+ \end{verbatim}
+ \end{adjustwidth}
+ \end{frame}
+ % \end{nofootlineenv}
+
+ {%
+ \renewcommand{\gothamInstituteLogoSquare}[1][4ex]{%
+ \includegraphics[height=#1]{gotham-logo.pdf}
+ }
+ \logo{extra LOGO}
+ % FRAME
+ \begin{frame}[fragile]{Frametitle}
+ \framesubtitle{with a subtitle}
+ The frametile template brought by \themename{} is relatively classic: it supports \verb|\subframetitle| and frame continuation (with \verb|[allowframebreaks]|) through templates that can be tuned.
+ Nevertheless, it the frametitle template also includes a hook for your institute logo in the top right corner, leaving the command \verb|\logo{}| free for your extra logos.
+
+ So, one can have both logos using:
+ \begin{verbatim}
+ \renewcommand{\gothamInstituteLogoSquare}[1][4ex]{
+ \includegraphics[height=#1]{gotham-logo.pdf}
+ }
+ \logo{extra LOGO}
+ \end{verbatim}
+ \end{frame}
+ }
+
+ \author[]{Romain NOËL}
+ {%
+ \gothamset{progressbar position=foot, numbering= totalframenumber}
+ % FRAME
+ \begin{frame}[fragile]{Numbering and progressbar}
+
+ \themename{} theme can numbering your frames in the bottom right corner using different styles.
+ You can also decide to use a progression bar to indicate how much of your presentation remains.
+
+ The setup of numbering and progression bar can be performed through:
+ \begin{verbatim}
+ \gothamset{numbering= totalframenumber, progressbar position=foot}
+ \end{verbatim}
+
+ Numbering available options are: \verb$none | framenumber | totalframenumber | appendixframenumber | pagenumber | totalpagenumber | circle$
+
+ Progressbar position available options are: \verb$none | head | frametitle | foot | circlehead$
+ \end{frame}
+ }
+
+
+\end{document}
+%EoF \ No newline at end of file
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/README.md
index b8501189d6..0215359b46 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/README.md
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/README.md
@@ -1,12 +1,12 @@
# beamertheme-tcolorbox
-[![GitHub](https://img.shields.io/github/license/samcarter/beamertheme-tcolorbox.svg?color=blue)](http://www.latex-project.org/lppl.txt)
-[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/samcarter/beamertheme-tcolorbox.svg?label=current%20version)](https://github.com/samcarter/beamertheme-tcolorbox/releases/latest)
-[![CTAN](https://img.shields.io/ctan/v/beamertheme-tcolorbox.svg)](https://ctan.org/pkg/beamertheme-tcolorbox)
+[![License](https://img.shields.io/github/license/samcarter/beamertheme-tcolorbox.svg?color=blue)](https://www.latex-project.org/lppl.txt)
+[![GitHub tag](https://img.shields.io/github/tag/samcarter/beamertheme-tcolorbox.svg?label=current%20version&color=blue)](https://github.com/samcarter/beamertheme-tcolorbox/releases/latest)
+[![CTAN](https://img.shields.io/ctan/v/beamertheme-tcolorbox.svg?color=blue)](https://ctan.org/pkg/beamertheme-tcolorbox)
A beamer inner theme which reproduces standard beamer blocks using tcolorboxes.
-This project is licensed under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt .
+This project is licensed under the LaTeX Project Public License v1.3c or later, see https://www.latex-project.org/lppl.txt .
The project repository, including a bug tracker, can be found at https://github.com/samcarter/beamertheme-tcolorbox .
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamerinnerthemetcolorbox.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamerinnerthemetcolorbox.sty
index 9469f0591e..1a2af1a6d8 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamerinnerthemetcolorbox.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamerinnerthemetcolorbox.sty
@@ -1,4 +1,4 @@
-% !TeX root = test.tex
+% !TeX root = ./testing/test.tex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The tcolorbox inner theme
@@ -9,10 +9,10 @@
% https://github.com/samcarter/beamertheme-tcolorbox
%
% Released under the LaTeX Project Public License v1.3c or later
-% See http://www.latex-project.org/lppl.txt
+% See https://www.latex-project.org/lppl.txt
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{beamerinnerthemetcolorbox}[2024/04/29 version v0.7 Beamer blocks with tcolorboxes]
+\ProvidesPackage{beamerinnerthemetcolorbox}[2024/09/23 version v0.8 Beamer blocks with tcolorboxes]
\RequirePackage{tcolorbox}
\tcbuselibrary{skins,hooks}
@@ -197,11 +197,11 @@
\ifbeamer@tcb@blocks
\setbeamertemplate{block begin}{\begin{beamer@tcb@block}}
- \setbeamertemplate{block end}{\end{beamer@tcb@block}}
+ \setbeamertemplate{block end}{\onslide<1->\end{beamer@tcb@block}}
\setbeamertemplate{block alerted begin}{\begin{beamer@tcb@block}[ alerted]}
- \setbeamertemplate{block alerted end}{\end{beamer@tcb@block}}
+ \setbeamertemplate{block alerted end}{\onslide<1->\end{beamer@tcb@block}}
\setbeamertemplate{block example begin}{\begin{beamer@tcb@block}[ example]}
- \setbeamertemplate{block example end}{\end{beamer@tcb@block}}
+ \setbeamertemplate{block example end}{\onslide<1->\end{beamer@tcb@block}}
\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc-settings.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc-settings.sty
index 777cedba6e..cd57229fcf 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc-settings.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc-settings.sty
@@ -21,7 +21,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{xcolor}
\definecolor{samyellow}{RGB}{246,193,65}
-\definecolor{samorange}{RGB}{241,147,45}
+\definecolor{samorange}{RGB}{241,147,45}% pgfplotsthemebeamer
\definecolor{samred}{RGB}{191,26,46}% TikZbricks
\definecolor{sammagenta}{RGB}{170,42,104}% TikZmarmots
\definecolor{samviolet}{RGB}{136,46,114}% TikZlings
@@ -69,6 +69,7 @@
% \RequirePackage[scale=0.85]{cascadia-code}
% \AddToHook{cmd/ttfamily/before}{\fontseries{sl}}
\RequirePackage{iexec}
+\usepackage{synthslant}% to fake slented comments in inconsolata
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -81,7 +82,7 @@
% smuggling custom pygmentize style in cache folder
% (a real pygmentise style would need installtion in some python folder)
-\begin{filecontents*}[noheader]{./sam.pygstyle}
+\begin{filecontents*}[noheader,overwrite]{./sam.pygstyle}
\makeatletter
\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax%
\let\PYG@ul=\relax \let\PYG@tc=\relax%
@@ -102,7 +103,7 @@
\expandafter\def\csname PYG@tok@nb\endcsname{\def\PYG@tc##1{\textcolor{listingcolor}{\bfseries ##1}}}
% comments (italics won't work with the inconsolata font)
-\expandafter\def\csname PYG@tok@c\endcsname{\def\PYG@tc##1{\textcolor{gray}{##1}}}
+\expandafter\def\csname PYG@tok@c\endcsname{\def\PYG@tc##1{\textcolor{gray}{\textsynthslant{##1}}}}
\def\PYGZbs{\char`\\}
\def\PYGZus{\char`\_}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.pdf
index fe64e72639..a7c6c23efb 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.tex
index c17e7fc17e..18c2daacc0 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.tex
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.tex
@@ -8,7 +8,7 @@
% https://github.com/samcarter/beamertheme-tcolorbox
%
% Released under the LaTeX Project Public License v1.3c or later
-% See http://www.latex-project.org/lppl.txt
+% See https://www.latex-project.org/lppl.txt
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% !TeX program = txs:///arara
@@ -31,7 +31,7 @@
\url{https://github.com/samcarter/beamertheme-tcolorbox}\\
\url{https://www.ctan.org/pkg/beamertheme-tcolorbox}
}{samcarter}}
-\date{Version v0.7 \textendash{} 2024/04/29}
+\date{Version v0.8 \textendash{} 2024/09/23}
\usepackage[
themecolor=samteal
@@ -53,10 +53,10 @@ Over the last decade of answering beamer problems and more recently also being o
For all these cases, there is now an alternative to the default beamer blocks: The tcolorbox inner beamer theme will replace the usual beamer mechanism to draw blocks with tcolorboxes. The tcolorboxes will automatically adopt the look and feel (round vs.\ sharp corners and shadows) as well as the colours of the normal beamer blocks.
-The package is included in \TeX{}Live and MiK\TeX\ and available from \textsc{CTAN} (\url{https://www.ctan.org/pkg/beamertheme-tcolorbox}).
+The package is included in \texlive and \miktex and available from \CTAN (\url{https://www.ctan.org/pkg/beamertheme-tcolorbox}).
The development version of this package is located at \url{https://github.com/samcarter/beamertheme-tcolorbox}. If you have any problems, ideas or other feedback, please make constructive use of the issue tracker.
-Copyright \raisebox{0.2em}{\tiny\fontfamily{cmr}\selectfont\textcopyright} \texttt{samcarter}. Permission is granted to copy, distribute and\slash or modify this software under the terms of the LaTeX project public licence, version 1.3c or later \url{http://www.latex-project.org/lppl.txt}.
+Copyright \raisebox{0.2em}{\tiny\fontfamily{cmr}\selectfont\textcopyright} \texttt{samcarter}. Permission is granted to copy, distribute and\slash or modify this software under the terms of the LaTeX project public licence, version 1.3c or later \url{https://www.latex-project.org/lppl.txt}.
\section{Usage}
diff --git a/macros/latex/contrib/bib2qr/README.md b/macros/latex/contrib/bib2qr/README.md
new file mode 100644
index 0000000000..9f7bb900a1
--- /dev/null
+++ b/macros/latex/contrib/bib2qr/README.md
@@ -0,0 +1,88 @@
+# bib2qr
+
+[![License](https://img.shields.io/ctan/l/bib2qr?color=blue)](https://www.latex-project.org/lppl/lppl-1-3c.txt)
+[![Latest release](https://img.shields.io/gitea/v/release/Cs137/bib2qr?gitea_url=https%3A%2F%2Fcodeberg.org%2F)](https://codeberg.org/Cs137/bib2qr/releases/latest)
+[![CTAN](https://img.shields.io/ctan/v/bib2qr.svg)](https://ctan.org/pkg/bib2qr)
+
+A LaTeX package for citing BibTeX entries with QR codes.
+
+The `bib2qr` package provides functionality to cite BibTeX entries with QR codes
+for easy sharing and referencing. The target of the QR code is the entry's DOI,
+or URL if no DOI exists. A citation generated via `\qrfullcite`, which is part
+of `bib2qr`, might look as follows:
+
+[![Example output generated with `\qrfullcite`](https://codeberg.org/Cs137/bib2qr/media/branch/main/example/qrfullcite_example.png "Example output generated with qrfullcite")](https://codeberg.org/Cs137/bib2qr/media/branch/main/example/qrfullcite_example.png)
+
+
+## Installation
+
+Skip this section, if `bib2qr` is already provided in your TeX distribution.
+You should be able to install it [from the CTAN](https://www.ctan.org/pkg/bib2qr)
+via your distribution's utility (e.g. the TeX Live Utility).
+
+### Manual installation
+
+You can get the package's source code from the
+[project repository on Codeberg](https://codeberg.org/Cs137/bib2qr).
+The repository contains a build script, which allows you to build the required
+files for the `bib2qr` package and copy them into your _TeX Directory Structure_
+(TDS) using `l3build`. Ensure that `l3build` is installed on your system and run
+it from the repository's root directory as follows:
+
+```bash
+l3build install --full
+```
+
+The `--full` option ensures that all necessary files are built and installed.
+
+If you do not want to install the package into your TDS, but use it in a
+particular LaTeX project, follow the steps listed below.
+
+1. unpack `bib2qr.sty` from the `bib2qr.dtx` file
+ - using `l3build` and the `build.lua` script: `l3build unpack`, __or__
+ - directly via the installer file: `pdflatex bib2qr.ins`
+2. copy the extracted `bib2qr.sty` file into the same directory as your LaTeX sources.
+
+
+## Usage
+
+Please consult the [package documentation](http://mirrors.ctan.org/macros/latex/contrib/bib2qr/bib2qr.pdf)
+for detailed usage information.
+
+If you have any questions or need assistance, feel free to
+[open an issue on the repository](https://codeberg.org/Cs137/bib2qr/issues).
+
+
+## Changes
+
+All notable changes to this project are documented in the file
+[`CHANGELOG.md`](https://codeberg.org/Cs137/bib2qr/src/branch/main/CHANGELOG.md).
+
+
+## Contributing
+
+Contributions to the `bib2qr` package are very welcomed. Feel free to submit a
+pull request, if you would like to contribute to the project. In case you are
+unfamiliar with the process, consult the
+[forgejo documentation](https://forgejo.org/docs/latest/user/pull-requests-and-git-flow/)
+and follow the steps using this repository instead of the `example` repository.
+
+Create your [pull request (PR)](https://codeberg.org/Cs137/bib2qr/pulls) to
+inform that you start working on a contribution. Provide a clear description
+of your envisaged changes and the motivation behind them, prefix the PR's title
+with ``WIP: `` until your changes are finalised.
+
+All kind of contributions are appreciated, whether they are
+bug fixes, new features, or improvements to the documentation.
+
+
+### Contributors
+
+- [Christian Schreinemachers](https://codeberg.org/Cs137)
+- [Markus Kohm](https://codeberg.org/komascript)
+
+
+---
+
+This package was created and is maintained by Christian Schreinemachers, (C) 2024.
+
diff --git a/macros/latex/contrib/bib2qr/bib2qr.dtx b/macros/latex/contrib/bib2qr/bib2qr.dtx
new file mode 100644
index 0000000000..980c2002c2
--- /dev/null
+++ b/macros/latex/contrib/bib2qr/bib2qr.dtx
@@ -0,0 +1,594 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2024 Christian Schreinemachers
+%
+% This work may be distributed and/or modified under the conditions
+% of the LaTeX Project Public License, either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008-05-04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The current maintainer of this work is Christian Schreinemachers.
+%
+% This work consists of the files
+% README.md
+% bib2qr.dtx
+% bib2qr.ins
+% and the derived files
+% bib2qr.sty
+% bib2qr.pdf
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+% \iffalse
+%<package>\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{bib2qr}
+%<package> [2024-07-31 v0.2 Cite BibTeX entries with QR codes]
+%
+%<*driver>
+\documentclass[a4paper]{ltxdoc}
+\usepackage[T1]{fontenc}
+\usepackage[toc]{multitoc}
+\usepackage{geometry}
+\usepackage{fancyvrb}
+% Declare example reference entries
+\begin{filecontents}[overwrite]{example-references.bib}
+ @software{bib2qr,
+ author = {Schreinemachers, Christian},
+ title = {bib2qr - A LaTeX package for citing BibTeX entries with QR codes},
+ url = {https://codeberg.org/Cs137/bib2qr/releases/tag/v0.2},
+ version = {v0.2},
+ date = {2024-07-31}
+ }
+ @article{Doe2024,
+ author = {Doe, Jane},
+ title = {A comprehensive study on example generation},
+ journal = {Journal of Examples},
+ year = {2024},
+ volume = {42},
+ pages = {1982--2024},
+ doi = {10.1234/example.2024.001}
+ }
+ @article{Mustermann2023,
+ author = {Mustermann, Erika},
+ title = {Limitations in including electronic references in articles},
+ journal = {Journal of Examples},
+ year = {2023},
+ volume = {23},
+ pages = {624--666}
+ }
+\end{filecontents}
+\usepackage[style=authoryear,sorting=none]{biblatex}
+\addbibresource{example-references.bib}
+\usepackage[%
+ pdfusetitle,%
+ hyperindex=false,%
+ pdfsubject={LaTeX package documentation},%
+ pdfkeywords={bib2qr, biblatex, latex, qrcode, documentation}%
+]{hyperref}
+\usepackage{scrextend}
+\usepackage{cleveref}
+\usepackage[qrwidth=1.25cm]{bib2qr}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\DoNotIndex{\begin,\DeclareBibliographyDriver,\DeclareCiteCommand,\DeclareFieldFormat,
+ \DeclareKeys,\dimexpr,\edef,\end,\equal,\fullcite,\hspace,\IfBeginWith,
+ \ifboolexpr,\iffieldundef,\ifthenelse,\linewidth,\multicitedelim,
+ \NewDocumentCommand,\newcommand,\noindent,\par,\parindent,\printfield,
+ \ProcessKeyOptions,\qrcode,\RequirePackage,\relax,\SetKeys,\space,
+ \thefield,\usebibmacro,\usedriver}
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{40ex}
+\setlength{\columnseprule}{.4pt}
+\addtolength{\oddsidemargin}{2cm}
+\addtolength{\textwidth}{-2cm}
+\begin{document}
+ \DocInput{bib2qr.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \pagestyle{headings}
+%
+% \newcommand*{\package}[1]{\textsf{#1}}
+% \newcommand*{\ctanpkg}[1]{\href{https://ctan.org/pkg/#1}{\package{#1}}}
+% \newcommand*{\opt}[1]{\texttt{#1}}
+% \newcommand*{\default}[1]{(default: \opt{#1})}
+%
+%
+% ^^A -----------------------------
+%
+% \changes{v0.2}{2024-07-31}{%
+% Initial release,
+% convert into dtx,
+% add documentation,
+% rename internal macros,
+% add \opt{qrdelimiter} option
+% }
+% \changes{v0.1}{2024/06/16}{Initial version}
+%
+% \GetFileInfo{bib2qr.sty}
+%
+%
+% ^^A -----------------------------
+%
+% \title{The \package{bib2qr} package}
+% \author{Christian Schreinemachers}
+% \date{%
+% Released \filedate\thanks{%
+% \package{bib2qr}~\fileversion
+% ~(\href{https://codeberg.org/Cs137/bib2qr/releases/tag/\fileversion}{source code})}%
+% }
+% \maketitle
+%
+%
+% ^^A -----------------------------
+%
+% \begingroup
+% \hypersetup{
+% linkcolor=.,
+% citecolor=.,
+% urlcolor=.,
+% }
+% \begin{abstract}
+% The \package{bib2qr} package provides functionality to cite BibTeX entries
+% with QR codes for easy sharing and referencing. The target of the QR code
+% is the entry's digital object identifier (DOI), or URL if no DOI exists.
+% It is realised in the \cs{qrcite} macro, via the \LaTeX{} packages
+% \package{biblatex} and \package{qrcode}. In addition to the \cs{qrcite}
+% command, the package contains the \cs{qrfullcite} macro, which requires
+% only a BibTeX key as argument and allows to generate output that might
+% look as follows:\\
+% \textcolor{red}{\qrfullcite[noindent]{bib2qr}}
+% \end{abstract}
+% \endgroup
+%
+%
+% ^^A -----------------------------
+%
+% \tableofcontents
+%
+%
+% ^^A -----------------------------
+%
+% \section{Introduction}
+% ^^A
+% I like to include \href{https://en.wikipedia.org/wiki/QR_code}{quick-response (QR) codes}
+% of references on slides created with \LaTeX{} \ctanpkg{beamer}. Previously,
+% I did this by using the \ctanpkg{qrcode} package and manually declaring the
+% URL of the reference's digital object identifier (DOI). Occasionally, I also
+% add human-readable information generated via \cs{fullcite} from the
+% \ctanpkg{biblatex} package.
+%
+% To avoid manually declaring the URL and calling two separate commands for QR
+% codes and human-readable citations, I developed this \LaTeX{} package. It
+% automates the inclusion of QR codes by a \package{biblatex} bibliography
+% driver\footnote{%
+% \href{http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf\#page=166}
+% {\package{biblatex} documentation p.\,166 (v3.20)}%
+% },
+% which uses field formats to display QR codes for the entry's \opt{doi}
+% and \opt{url} fields with the \package{qrcode} package. You can cite any
+% reference from your bibliography with this driver by declaring its \meta{key}
+% to the \cs{qrcite} command. The latter is a cite command\footnote{%
+% \href{http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf\#page=186}%
+% {\package{biblatex} documentation p.\,186 (v3.20)}%
+% \label{biblatexCiteCommand}%
+% },
+% which ensures that any referenced QR code is also listed in the reference list.
+%
+% For the inclusion of both, QR codes and human-readable citation information
+% in a single step, I introduced the \cs{qrfullcite} command. It applies the
+% \cs{qrcite} command and the \cs{fullcite} command from the \package{biblatex}
+% package, ensuring clarity and ease of reference not only on \package{beamer}
+% slides, but in any \LaTeX{} document.
+%
+%
+% ^^A -----------------------------
+%
+% \section{Usage}
+% ^^A
+% Load the package in your document's preamble and specify any of the
+% options described in the next subsection as follows:
+%
+% \begin{quote}
+% \cs{usepackage}\oarg{option(s)}\{bib2qr\}
+% \end{quote}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Options}
+% ^^A
+% In order to change the default behaviour of this package, declare one
+% or more of the options described in this subsection with your desired
+% value.
+%
+% \begin{description}
+%
+% \item[\opt{doiurlbase=\meta{string}}] \default{https://doi.org/}
+% specifies the prefix to convert a DOI string into its URL. If the DOI
+% string starts with \meta{doiurlbase}, it is used as is to generate a
+% QR code. Otherwise, the DOI string is appended to \meta{doiurlbase} to
+% form the DOI's URL, which is then used to generate the QR code.
+% In normal use cases this option does not require any adjustment.
+%
+% \item[\opt{qrdelimiter=\meta{sepcode}}] \default{\cs{space}}
+% specifies the delimiter of QR codes generated by \cs{qrcite} in multicite
+% mode. It is shown between the individual QR codes of multiple references
+% created by \cs{qrcite}\marg{key1,key2,\dots keyN} and \emph{``\dots is
+% arbitrary code to be executed after each iteration...''}\,\footref{biblatexCiteCommand}.
+% The examples shown in this document were generated considering the
+% default \opt{qrdelimiter}.
+%
+% \item[\opt{qrversion=\meta{version specification}}] \default{0}
+% sets the version of the QR code. Consult the \package{qrcode} documentation
+% for details about the \meta{version specification}\footnote{%
+% \href{http://mirrors.ctan.org/macros/latex/contrib/qrcode/qrcode.pdf\#page=3}
+% {\package{qrcode} documentation p.\,3 (v1.51)}%
+% }.
+% The examples shown in this document were generated considering the
+% default \opt{qrversion}.
+%
+% \item[\opt{qrwidth=\meta{dimen}}] \default{2cm}
+% sets the width of the QR code. The value is used to determine the
+% width for the output of the \cs{fullcite} macro and is passed to
+% \package{qrcode} as \opt{height} option. The default value is quite
+% suitable for usage in \LaTeX{} \package{beamer} slides, but in such
+% documents as this one, a smaller width might be desired. The examples
+% shown in this document were generated using \opt{qrwidth=1.25cm}.
+%
+% \end{description}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Macros}
+% ^^A
+% \subsubsection*{\cs{qrcite}\marg{key(s)}}
+%
+% \DescribeMacro{\qrcite}
+% QR code(s) with a link to the reference's DOI or URL can be generated
+% using the \cs{qrcite} command. The target of the QR code is the entry's
+% DOI converted into a URL, or the URL iteself. In case the BibTeX entry has
+% no DOI and no URL, it does nothing besides raising a warning.
+% ^^A
+% The output for some example entries is shown underneath. If you
+% would like to replicate the examples, you can find the entries
+% sources as \cref{ssec:example_bib}. The colours are defined in the
+% examples, as this functionality is out of scope of the package
+% \package{bib2qr}. Moreover, \package{hyperlink} is configured in such
+% a way that the links in the following examples consider the font colour,
+% usually links would be presented in the colour defined as \opt{linkcolor}.
+%
+% The example displayed in blue was created via \textcolor{blue}{%
+% \cs{qrcite\{bib2qr\}}}. The QR code in red next to it was generated
+% via \textcolor{red}{\cs{qrcite\{Doe2024\}}}. The entry of the latter has a
+% DOI, while the entry of the blue example represents a BibTeX entry without
+% a DOI, but there is a value assigned to its URL field.
+% ^^A
+% The macro \cs{qrcite} is a cite command, thus it can be used to cite multiple
+% references, as shown in black (\cs{qrcite\{bib2qr,Doe2024\}}), and entries
+% cited via \cs{qrcite} are included in the document's bibliography
+% (cf. \cref{ssec:example_ref}).
+%
+% \begingroup
+% \hypersetup{
+% linkcolor=.,
+% citecolor=.,
+% urlcolor=.,
+% }
+%
+% \par\smallskip%
+% \noindent%
+% \textcolor{blue}{\qrcite{bib2qr}}
+% \textcolor{red}{\qrcite{Doe2024}}
+% \qrcite{bib2qr,Doe2024}
+% \par\medskip%
+%
+% \subsubsection*{\cs{qrfullcite}\marg{key}}
+%
+% \DescribeMacro{\qrfullcite}
+% This command displays the QR code of a BibTeX entry's DOI link or URL and
+% a full citation. The QR code is generated by \cs{qrcite} and the full
+% citation by \cs{fullcite}, provided by the package \package{biblatex}.
+% Each output is presented in individual minipages which are placed next to
+% each other, as shown in the examples underneath
+% (\textcolor{blue}{\cs{qrfullcite\{bib2qr\}}},
+% \textcolor{red}{\cs{qrfullcite[noindent]\{Doe2024\}}}).
+%
+% Please note that \cs{qrfullcite} does \textbf{not} support group
+% citations and accepts only a single \meta{key} as argument.
+%
+% \textcolor{blue}{\qrfullcite{bib2qr}}%
+% \medskip%
+% \textcolor{red}{\qrfullcite[noindent]{Doe2024}}%
+% \medskip%
+% \endgroup
+%
+% The output of \cs{qrfullcite} is considered as its own paragraph, thus it
+% may be indented, like in this document (see blue example). You can prevent
+% the latter by providing the \opt{noindent} option when calling the macro,
+% as done in the red example.
+%
+% The first minipage has the width of the package option \opt{qrwidth}
+% and displays the output of \cs{qrcite}\marg{key}. The second minipage
+% occupies the remaining width of \cs{linewidth} considering a gap of
+% \opt{0.5em} and \cs{parindent}, if the latter is not deactivated via the
+% \opt{noindent} option. It shows the output of \cs{fullcite}\marg{key}.
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Hints}
+% ^^A
+% If the \package{hyperref} package is loaded, not only the DOI/URL strings,
+% but also the QR codes are presented as links. It was modified in this
+% document to allow you to distinguish the output of the individual macro calls
+% in a better way. The previous example without any modifications of the
+% document settings and without deactivating the indentation looks as follows:\\
+%
+% \qrfullcite{Doe2024}%
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Known limitations}
+% ^^A
+% In case no QR code can be generated by \cs{qrcite} called via \cs{qrfullcite},
+% the output of \cs{fullcite} is nevertheless indented by the width assigned to
+% the \opt{qrwidth} package option and the length of the gap of \opt{0.5em}),
+% as shown in orange below (\textcolor{orange}{\cs{qrcite\{Mustermann2023\}}}).
+%
+% \textcolor{orange}{\qrfullcite{Mustermann2023}}%
+%
+%
+% ^^A -----------------------------
+%
+% \MaybeStop{
+%
+% \IndexPrologue{%
+% \section{Index}
+% Numbers written in italic refer to the page where the corresponding entry
+% is described; numbers underlined refer to the code line of the definition;
+% numbers in roman refer to the code lines where the entry is used.
+% }
+% \PrintIndex
+%
+% \GlossaryPrologue{%
+% \section{Change History}
+% The changes listed in this section aim to provide a brief overview of the
+% changes introduced into the package \package{bib2qr}. The
+% \href{https://codeberg.org/Cs137/bib2qr/}{package repository on Codeberg}
+% contains a
+% \href{https://codeberg.org/Cs137/bib2qr/src/branch/main/CHANGELOG.md}{changelog file},
+% consult it to read a detailed description of the changes introduced into
+% this package.
+% }
+% \PrintChanges
+%
+% ^^A -----------------------------
+%
+% \newpage
+% \appendix
+%
+% \section{Appendix}
+%
+% The examples presented in this document are based on the
+% BibTeX entries listed in \ref{ssec:example_bib} and result
+% in the bibliography shown as \ref{ssec:example_ref} (\package{biblatex}
+% options: \opt{style=authoryear}, \opt{sorting=none}).
+%
+% \subsection{Example BibTeX entries}
+% \label{ssec:example_bib}
+% \small{%
+% \VerbatimInput[firstline=5]{example-references.bib}
+% }
+%
+% \subsection{Example bibliography}
+% \label{ssec:example_ref}
+% \printbibliography[heading=none]
+%
+% }
+%
+%
+% ^^A -----------------------------
+%
+% \section{Implementation}
+% ^^A
+%
+% \subsection{Dependencies}
+% ^^A
+% In order to use \package{bib2qr}, the \LaTeX{} packages
+% \ctanpkg{biblatex},
+% \ctanpkg{ifthen},
+% \ctanpkg{qrcode}, and
+% \ctanpkg{xstring}
+% are required as package dependencies.
+% \iffalse
+%<*package>
+% \fi
+% \begin{macrocode}
+\RequirePackage{biblatex}
+\RequirePackage{ifthen}
+\RequirePackage{qrcode}
+\RequirePackage{xstring}
+% \end{macrocode}
+%
+%
+% \subsection{Options}
+% ^^A
+% The package options are internally available as \cs{@bibiiqr@}\meta{option}.
+% \begin{macrocode}
+\DeclareKeys[@bibiiqr]{
+ doiurlbase.store = \@bibiiqr@doiurlbase,
+ doiurlbase.usage = load,
+ qrdelimiter.store = \@bibiiqr@qrdelimiter,
+ qrdelimiter.usage = load,
+ qrversion.store = \@bibiiqr@qrversion,
+ qrversion.usage = load,
+ qrwidth.store = \@bibiiqr@qrwidth,
+ qrwidth.usage = load,
+}%
+% \end{macrocode}
+%
+% \subsubsection*{Assignement of default values}
+% \begin{macrocode}
+\SetKeys[@bibiiqr]{
+ doiurlbase=https://doi.org/,
+ qrdelimiter=\space,
+ qrversion=0,
+ qrwidth=2cm,
+}%
+% \end{macrocode}
+%
+% \subsubsection*{Processing of package options}
+% \begin{macrocode}
+\ProcessKeyOptions[@bibiiqr]\relax
+% \end{macrocode}
+%
+% \subsection{Macros}
+%
+% \begin{macro}{\@bibiiqr@showqr}
+% \marg{string}\\
+% Display a string as QR code considering the package options \opt{qrversion}
+% and \opt{qrwidth}.
+% \begin{macrocode}
+\newcommand\@bibiiqr@showqr[1]{%
+ \qrcode[height=\@bibiiqr@qrwidth,version=\@bibiiqr@qrversion]{#1}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Field formats}
+%
+% Custom field formats are defined to display a QR code of an entry's
+% \texttt{doi} and \texttt{url}.
+%
+% \begin{macro}{@bibiiqr@fldFmtDoi}
+% Field format to display a DOI field's value (converted into an URL
+% considering the option \opt{@bibiiqr@doiurlbase}) as QR code using
+% macro \cs{@bibiiqr@showqr}.
+% \begin{macrocode}
+\DeclareFieldFormat{@bibiiqr@fldFmtDoi}{%
+ \IfBeginWith{#1}{\@bibiiqr@doiurlbase}%
+ {\@bibiiqr@showqr{#1}}%
+ {\@bibiiqr@showqr{\@bibiiqr@doiurlbase#1}}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{@bibiiqr@fldFmtUrl}
+% Field format to display an URL field's value as QR code using \cs{@bibiiqr@showqr}.
+% \begin{macrocode}
+\DeclareFieldFormat{@bibiiqr@fldFmtUrl}{\@bibiiqr@showqr{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Bibliography driver}
+%
+% \begin{macro}{@bibiiqr@bibDrvQR}
+% This bibliography driver
+% allows to display the QR code of an entry's DOI-, or URL field.
+% It applies the \cs{printfield}\oarg{format}\marg{field} macro, which is
+% provided by the \package{biblatex} package to displpay a QR code using the
+% \texttt{@bibiiqr@fldFmtDoi} or \texttt{@bibiiqr@fldFmtUrl} field format and
+% the corresponding field, respectively.
+%
+% The DOI is preferred and the URL is only used if no value is assigned to
+% the DOI field. If neither the DOI, nor the URL field contains a value, a
+% package warning is raised.
+%
+% \begin{macrocode}
+\DeclareBibliographyDriver{@bibiiqr@bibDrvQR}{%
+ \usebibmacro{begentry}%
+ \ifboolexpr{test{\iffieldundef{doi}}}
+ {%
+ \ifboolexpr{test{\iffieldundef{url}}}%
+% \end{macrocode}
+% The entry has no DOI and no URL: Raise a warning.
+% \begin{macrocode}
+ {%
+ \PackageWarning{bib2qr}%
+ {BibTeX entry without DOI or URL: \thefield{entrykey}}{}%
+ }%
+% \end{macrocode}
+% The entry has no DOI but an URL: Display the \texttt{url} field's
+% value using the \texttt{@bibiiqr@fldFmtUrl} field format.
+% \begin{macrocode}
+ {\printfield[@bibiiqr@fldFmtUrl]{url}}%
+ }%
+% \end{macrocode}
+% The entry has a DOI: Display the \texttt{doi} field's value using
+% the \texttt{@bibiiqr@fldFmtDoi} field format.
+% \begin{macrocode}
+ {\printfield[@bibiiqr@fldFmtDoi]{doi}}%
+ \usebibmacro{finentry}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Author commands}
+%
+% \begin{macro}{\qrcite}
+% \marg{key(s)}\\
+% Display the QR code of a BibTeX entry's DOI link or URL by introducing the
+% cite command \cs{qrcite}\marg{key}, which makes use of the previously
+% defined bibliography driver \texttt{@bibiiqr@bibDrvQR}. It requires at least
+% one BibTeX \marg{key} as argument.
+% \begin{macrocode}
+\DeclareCiteCommand{\qrcite}
+ {\usebibmacro{prenote}}%
+ {\usedriver{}{@bibiiqr@bibDrvQR}}%
+ {\@bibiiqr@qrdelimiter}%
+ {\usebibmacro{postnote}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\qrfullcite}
+% \changes{v0.2}{2024-07-31}{Add \opt{noindent} option}
+% \oarg{option(s)}\marg{key}\\
+% Display the QR code of a singe BibTeX entry's DOI link or URL and a full
+% citation of it. Specify \opt{noindent} as option, if the output should not
+% be indented.
+% \begin{macrocode}
+\NewDocumentCommand{\qrfullcite}{O{}m}{%
+ \par%
+ \ifthenelse{\equal{#1}{noindent}}{%
+ \noindent%
+ \edef\@bibiiqr@mpiiwidth{\dimexpr\linewidth-\@bibiiqr@qrwidth-0.5em}%
+ }{%
+ \edef\@bibiiqr@mpiiwidth{%
+ \dimexpr\linewidth-\parindent-\@bibiiqr@qrwidth-0.5em}%
+ }%
+ \begin{minipage}[t]{\@bibiiqr@qrwidth}
+ \qrcite{#2}%
+ \end{minipage}
+ \hspace{0.5em}%
+ \begin{minipage}{\@bibiiqr@mpiiwidth}
+ \fullcite{#2}%
+ \end{minipage}
+ \par%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</package>
+% \fi
+%
+%
+% ^^A -----------------------------
+%
+% \Finale
+
diff --git a/macros/latex/contrib/bib2qr/bib2qr.ins b/macros/latex/contrib/bib2qr/bib2qr.ins
new file mode 100644
index 0000000000..7894fdb8e3
--- /dev/null
+++ b/macros/latex/contrib/bib2qr/bib2qr.ins
@@ -0,0 +1,85 @@
+%%
+%% Copyright (C) 2024 Christian Schreinemachers
+%%
+%% This work may be distributed and/or modified under the conditions
+%% of the LaTeX Project Public License, either version 1.3c of this
+%% license or (at your option) any later version. The latest version
+%% of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of
+%% LaTeX version 2008-05-04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The current maintainer of this work is Christian Schreinemachers.
+%%
+%% This work consists of the files
+%% README.md
+%% bib2qr.dtx
+%% bib2qr.ins
+%% and the derived files
+%% bib2qr.sty
+%% bib2qr.pdf
+%%
+This work has the LPPL maintenance status `maintained'.
+
+The current maintainer of this work is Christian Schreinemachers.
+
+This work consists of the files
+ README.md
+ bib2qr.dtx
+ bib2qr.ins
+and the derived files
+ bib2qr.sty
+ bib2qr.pdf
+\input docstrip.tex
+\keepsilent
+
+\preamble
+
+Copyright (C) 2024 Christian Schreinemachers
+
+This work may be distributed and/or modified under the conditions
+of the LaTeX Project Public License, either version 1.3c of this
+license or (at your option) any later version. The latest version
+of this license is in
+
+ http://www.latex-project.org/lppl.txt
+
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008-05-04 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The current maintainer of this work is
+ Christian Schreinemachers.
+
+This work consists of the files
+ bib2qr.dtx
+ bib2qr.ins
+and the derived files
+ bib2qr.sty
+ bib2qr.pdf
+
+\endpreamble
+\askforoverwritefalse
+\generate{\file{bib2qr.sty}{\from{bib2qr.dtx}{package}}}
+
+\obeyspaces
+\Msg{****************************************************}
+\Msg{* To finish the installation you have to move the *}
+\Msg{* following file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* bib2qr.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file *}
+\Msg{* bib2qr.dtx through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{****************************************************}
+\endbatchfile
+%%
+%% End of file `bib2qr.ins'.
+
diff --git a/macros/latex/contrib/bib2qr/bib2qr.pdf b/macros/latex/contrib/bib2qr/bib2qr.pdf
new file mode 100644
index 0000000000..fb3800eadf
--- /dev/null
+++ b/macros/latex/contrib/bib2qr/bib2qr.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee-alphabetic.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee-alphabetic.pdf
index a833b32d26..43c1b53163 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee-alphabetic.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee-alphabetic.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee-alphabetic.tex b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee-alphabetic.tex
index 142cfe3d76..a089f090f7 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee-alphabetic.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee-alphabetic.tex
@@ -2,7 +2,7 @@
%% biblatex-ieee --- A biblatex implementation of the IEEE
%% bibliography style
%% Maintained by Joseph Wright
-%% E-mail: joseph.wright@morningstar2.co.uk
+%% E-mail: joseph@texdev.net
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
@@ -21,11 +21,11 @@
\addbibresource{biblatex-ieee.bib}
\author{Joseph Wright\thanks{E-mail:
- \href{mailto:joseph.wright@morningstar2.co.uk}
- {\texttt{joseph.wright@morningstar2.co.uk}}}}
+ \href{mailto:joseph@texdev.net}
+ {\texttt{joseph@texdev.net}}}}
\title{The \pkg{ieee-alphabetic} bibliography style for \pkg{biblatex}%
- \footnote{This file describes v1.3f, last revised 2021/12/06.}}
-\date{Released 2021/12/06}
+ \footnote{This file describes v1.3g, last revised 2024/08/14.}}
+\date{Released 2024/08/14}
\providecommand*{\pkg}[1]{\textsf{#1}}
@@ -55,8 +55,8 @@ of example citations.
\end{document}
%%
-%% Copyright (C) 2011-2013,2015-2021 by
-%% Joseph Wright <joseph.wright@morningstar2.co.uk>
+%% Copyright (C) 2011-2013,2015-2021,2024 by
+%% Joseph Wright <joseph@texdev.net>
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.bib b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.bib
index 733dac91e1..c002a48e2c 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.bib
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.bib
@@ -2,7 +2,7 @@
%% biblatex-ieee --- A biblatex implementation of the IEEE
%% bibliography style
%% Maintained by Joseph Wright
-%% E-mail: joseph.wright at morningstar2.co.uk
+%% E-mail: joseph@texdev.net
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
@@ -168,7 +168,7 @@
title = "Modified {TCP} Congestion Avoidance Algorithm",
howpublished = "end2end-interest mailing list",
url = "ftp://ftp.isi.edu/end2end/end2end-interest-1990.mail",
- year = "1990-04"
+ urldate = "1990-04"
}
@@ -249,7 +249,7 @@
institution = "Dept. Elect. Eng., Technion",
location = "Haifa, Israel",
url = "ftp://ftp.technion.ac.il/pub/supported/ee/Network/lor.mopq98.ps",
- year = "1998-07"
+ urldate = "1998-07"
}
@book{IEEEexample:book,
@@ -350,7 +350,7 @@
title = "Cache Array Routing Protocol v1.1",
howpublished = "Internet draft",
url = "http://ds1.internic.net/internet-drafts/draft-vinod-carp-v1-03.txt",
- year = "1998"
+ urldate = "1998"
}
@inproceedings{IEEEexample:confwithpaper,
@@ -386,8 +386,8 @@
}
%%
-%% Copyright (C) 2011-2013,2015-2020 by
-%% Joseph Wright <joseph.wright at morningstar2.co.uk>
+%% Copyright (C) 2011-2013,2015-2020,2024 by
+%% Joseph Wright <joseph@texev.net>
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.pdf
index c5f85504c6..a16e292683 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.tex b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.tex
index 734250debf..0a6ec934e4 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/biblatex-ieee.tex
@@ -2,7 +2,7 @@
%% biblatex-ieee --- A biblatex implementation of the IEEE
%% bibliography style
%% Maintained by Joseph Wright
-%% E-mail: joseph.wright@morningstar2.co.uk
+%% E-mail: joseph@texdev.net
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
@@ -21,11 +21,11 @@
\addbibresource{biblatex-ieee.bib}
\author{Joseph Wright\thanks{E-mail:
- \href{mailto:joseph.wright@morningstar2.co.uk}
- {\texttt{joseph.wright@morningstar2.co.uk}}}}
+ \href{mailto:joseph@texdev.net}
+ {\texttt{joseph@texdev.net}}}}
\title{The \pkg{ieee} bibliography style for \pkg{biblatex}%
- \footnote{This file describes v1.3f, last revised 2021/12/06.}}
-\date{Released 2021/12/06}
+ \footnote{This file describes v1.3g, last revised 2024/08/14.}}
+\date{Released 2024/08/14}
\providecommand*{\opt}[1]{\texttt{#1}}
\providecommand*{\pkg}[1]{\textsf{#1}}
@@ -61,6 +61,19 @@ The style adds the \opt{dashed} option to those recognised: as-standard,
this is activated. The option works in the same way as that from the
core \pkg{biblatex} style \pkg{author-year}.
+As-standard, citations are compressed. If you do no wish to have compressed
+citations, add
+\begin{verbatim}
+\DeclareCiteCommand{\cite}
+ {\bibopenbracket\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}\bibclosebracket}
+\renewcommand*\multicitedelim{\bibclosebracket\addcomma \space\bibopenbracket}
+\end{verbatim}
+after loading \pkg{biblatex}.
+
The appearance of URLs in the bibliography is set by the mechanism of the
\textsf{url} package. Thus to print URLs in the current roman font,
place the instruction
@@ -73,7 +86,9 @@ immediately before
\end{verbatim}
Control of the exact information in dates is best achieved by using the
-\cs{AtEveryCite} command with appropriate data manipulation.
+\cs{AtEveryCite} command with appropriate data manipulation. In particular,
+if your database includes full dates, you will likely want to drop these
+for most periodicals using \cs{clearfield}
Also include in the bundle is a style using alphabetic labels, but otherwise
following the guidelines of the \textsc{ieee}. This style should be loaded
@@ -88,8 +103,8 @@ Suggestions for improvement and bug reports can be logged in the package
issue database, found at
\url{https://github.com/josephwright/biblatex-ieee/issues/}, or can
be sent by e-mail to
-\href{mailto:joseph.wright@morningstar2.co.uk}
- {\texttt{joseph.wright@morningstar2.co.uk}}.
+\href{mailto:joseph@texdev.net}
+ {\texttt{joseph@texdev.net}}.
\nocite{*}
\printbibliography
@@ -149,14 +164,16 @@ be sent by e-mail to
\changes{v1.3f}{2021/03/30}{Use \texttt{false} as the default for \texttt{dashed} setting}
\changes{v1.3f}{2021/04/12}{Fix brackets in \cs{supercite}}
\changes{v1.3f}{2021/12/01}{Adjust printing of series for books}
+\changes{v1.3g}{2024/08/14}{Print separator between journal title and subtitle}
+\changes{v1.3g}{2024/08/14}{Correct formatting of URL for online entries}
\PrintChanges
\end{document}
%%
-%% Copyright (C) 2011-2013,2015-2021 by
-%% Joseph Wright <joseph.wright@morningstar2.co.uk>
+%% Copyright (C) 2011-2013,2015-2021,2024 by
+%% Joseph Wright <joseph@texdev.net>
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee-alphabetic.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee-alphabetic.bbx
index ff82f97f55..8f4e1bea05 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee-alphabetic.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee-alphabetic.bbx
@@ -2,13 +2,13 @@
%% biblatex-ieee --- A biblatex implementation of the IEEE
%% bibliography style
%% Maintained by Joseph Wright
-%% E-mail: joseph.wright@morningstar2.co.uk
+%% E-mail: joseph@texdev.net
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
%%
-\ProvidesFile{ieee-alphabetic.bbx}[2021/12/06 v1.3f biblatex bibliography style]
+\ProvidesFile{ieee-alphabetic.bbx}[2024/08/14 v1.3g biblatex bibliography style]
\RequireBibliographyStyle{ieee}
@@ -53,8 +53,8 @@
{\item}
%%
-%% Copyright (C) 2011-2013,2015-2021 by
-%% Joseph Wright <joseph.wright@morningstar2.co.uk>
+%% Copyright (C) 2011-2013,2015-2021,2024 by
+%% Joseph Wright <joseph@texdev.net>
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee-alphabetic.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee-alphabetic.cbx
index 302517b02e..d28449741b 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee-alphabetic.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee-alphabetic.cbx
@@ -2,13 +2,13 @@
%% biblatex-ieee --- A biblatex implementation of the IEEE
%% bibliography style
%% Maintained by Joseph Wright
-%% E-mail: joseph.wright@morningstar2.co.uk
+%% E-mail: joseph@texdev.net
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
%%
-\ProvidesFile{ieee-alphabetic.cbx}[2021/12/06 v1.3f biblatex citation style]
+\ProvidesFile{ieee-alphabetic.cbx}[2024/08/14 v1.3g biblatex citation style]
\RequireCitationStyle{alphabetic}
@@ -45,8 +45,8 @@
}
%%
-%% Copyright (C) 2011-2013,2015-2021 by
-%% Joseph Wright <joseph.wright@morningstar2.co.uk>
+%% Copyright (C) 2011-2013,2015-2021,2024 by
+%% Joseph Wright <joseph@texdev.net>
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.bbx
index 77a8b6794d..088064d1f3 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.bbx
@@ -2,13 +2,13 @@
%% biblatex-ieee --- A biblatex implementation of the IEEE
%% bibliography style
%% Maintained by Joseph Wright
-%% E-mail: joseph.wright@morningstar2.co.uk
+%% E-mail: joseph@texdev.net
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
%%
-\ProvidesFile{ieee.bbx}[2021/12/06 v1.3f biblatex bibliography style]
+\ProvidesFile{ieee.bbx}[2024/08/14 v1.3g biblatex bibliography style]
% Load the standard style to avoid copy-pasting unnecessary material
\RequireBibliographyStyle{numeric-comp}
@@ -30,6 +30,7 @@
maxbibnames = 6,
sorting = none,
dashed = false,
+ urldate = long,
}
\uspunctuation
@@ -50,6 +51,7 @@
{\bibstring{jourser}\addnbspace#1}
\DeclareFieldFormat[online,report]{title}{\mkbibquote{#1\isdot}}
\DeclareFieldFormat{url}{\bibstring{url}\addcolon\space\url{#1}}
+\DeclareFieldFormat{urldate}{\bibstring{urlseen}\space#1}
\DeclareFieldFormat*{volume}
{\bibstring{volume}\addnbspace#1}
\DeclareFieldFormat[article,periodical]{volume}
@@ -76,6 +78,7 @@
presentedat = presented at the\addspace ,
techreport = Tech\adddot\addspace Rep\adddot ,
url = [Online]\adddot\addspace Available ,
+ urlseen = Accessed\addcolon
}
\DefineBibliographyStrings{english}{
@@ -210,6 +213,7 @@
{%
\printtext[journaltitle]{%
\printfield[titlecase]{journaltitle}%
+ \setunit{\subtitlepunct}%
\printfield[titlecase]{journalsubtitle}%
}%
}%
@@ -331,6 +335,17 @@
\printfield{titleaddon}%
}
+\renewbibmacro*{url+urldate}{%
+ \usebibmacro{urldate}%
+ \setunit{\adddot\space}%
+ \usebibmacro{url}%
+}
+
+\renewbibmacro*{urldate}{%
+ \printurldate
+ \newunit
+ }
+
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\newunit
@@ -713,7 +728,6 @@
{\usebibmacro{eprint}}
{}%
\setunit{\adddot\addspace}%
- \printtext[parens]{\usebibmacro{date}}%
\newunit\newblock
\usebibmacro{url+urldate}%
\setunit{\adddot\addspace}%
@@ -802,8 +816,8 @@
\usebibmacro{finentry}}
%%
-%% Copyright (C) 2011-2013,2015-2021 by
-%% Joseph Wright <joseph.wright@morningstar2.co.uk>
+%% Copyright (C) 2011-2013,2015-2021,2024 by
+%% Joseph Wright <joseph@texdev.net>
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.cbx
index 877d645053..4b1886683f 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/ieee.cbx
@@ -2,19 +2,19 @@
%% biblatex-ieee --- A biblatex implementation of the IEEE
%% bibliography style
%% Maintained by Joseph Wright
-%% E-mail: joseph.wright@morningstar2.co.uk
+%% E-mail: joseph@texdev.net
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
%%
-\ProvidesFile{ieee.cbx}[2021/12/06 v1.3f biblatex citation style]
+\ProvidesFile{ieee.cbx}[2024/08/14 v1.3g biblatex citation style]
\RequireCitationStyle{numeric-comp}
\ExecuteBibliographyOptions{
- maxcitenames = 3,
- minnames = 3,
+ maxcitenames = 2,
+ minnames = 1,
sorting = none
}
@@ -122,8 +122,8 @@
{}}}
%%
-%% Copyright (C) 2011-2013,2015-2021 by
-%% Joseph Wright <joseph.wright@morningstar2.co.uk>
+%% Copyright (C) 2011-2013,2015-2021,2024 by
+%% Joseph Wright <joseph@texdev.net>
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/magyar-ieee.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/magyar-ieee.lbx
index 79ffd21ce9..33e88122fd 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-ieee/magyar-ieee.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ieee/magyar-ieee.lbx
@@ -2,7 +2,7 @@
%% biblatex-ieee --- A biblatex implementation of the IEEE
%% bibliography style
%% Maintained by Joseph Wright
-%% E-mail: joseph.wright at morningstar2.co.uk
+%% E-mail: jsoeph@texdev.net
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
@@ -34,8 +34,8 @@
}
%%
-%% Copyright (C) 2011-2013,2015-2020 by
-%% Joseph Wright <joseph.wright at morningstar2.co.uk>
+%% Copyright (C) 2011-2013,2015-2020,2024 by
+%% Joseph Wright <joseph@texdev.net>
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/Makefile b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/Makefile
index c51927feb8..c3e48e3484 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/Makefile
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/Makefile
@@ -3,8 +3,8 @@ PFX = biblatex-
STY1 = oxnotes
STYS = oxnotes oxyear oxnum oxalph
VARS = ibid note inote trad1 trad2 trad3
-LANGS = american british english spanish
-LANGX = spanish
+LANGS = american british english spanish polish
+LANGX = spanish polish
TESTS = $(STYS) $(foreach sty, $(STYS), $(LANGX:%=%-$(sty)))
AUX = aux,bbl,bcf,blg,doc,fdb_latexmk,fls,glo,gls,hd,idx,ilg,ind,listing,log,nav,out,run.xml,snm,synctex.gz,toc,vrb
SHELL = bash
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md
index c8b147bc81..a6d358af66 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md
@@ -46,7 +46,7 @@ UNIX-like systems:
oxnotes-trad1.cbx, oxnotes-trad2.cbx, oxnotes-trad3.cbx, oxyear.cbx,
oxnum.cbx, oxalph.cbx
- american-oxref.lbx, british-oxref.lbx, english-oxref.lbx,
- spanish-oxref.lbx
+ spanish-oxref.lbx, polish.lbx
- oxnotes.dbx, oxnotes-ibid.dbx, oxnotes-note.dbx, oxnotes-inote.dbx,
oxnotes-trad1.dbx, oxnotes-trad2.dbx, oxnotes-trad3.dbx, oxyear.dbx,
oxnum.dbx, oxalph.dbx
@@ -89,7 +89,8 @@ first two steps.
american-oxref.lbx,
british-oxref.lbx,
english-oxref.lbx,
- spanish-oxref.lbx
+ spanish-oxref.lbx,
+ polish-oxref.lbx,
oxalph.bbx,
oxalph.cbx,
oxalph.dbx,
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdf
index 0ce372ce9b..464db54ffe 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdf
index 649083bbef..4ce50328b3 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdf
index 7c8b8360de..cde0ea096b 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx
index 8c8c94d432..18bf56b898 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx
@@ -1,6 +1,6 @@
% \iffalse
%<*internal|bbx|cbx|dbx|lbx|doc>
-\def\Version{2023/11/23 v3.2}
+\def\Version{2024/08/26 v3.3}
%</internal|bbx|cbx|dbx|lbx|doc>
%<*internal>
\iffalse
@@ -87,6 +87,10 @@
\ProvidesFile{spanish-oxref.lbx}
[\Version\space Spanish conventions required by the biblatex-oxref styles]
%</lbx&es>
+%<*lbx&pl>
+\ProvidesFile{polish-oxref.lbx}
+ [\Version\space Polish conventions required by the biblatex-oxref styles]
+%</lbx&pl>
%<*doc&n>
\ProvidesFile{oxnotes-doc.tex}
[\Version\space Footnote-based biblatex style inspired by the Oxford Guide to Style]
@@ -220,6 +224,7 @@ Copyright (C) 2016–2023 Alex Ball
\file{british-\jobname.lbx}{\from{\jobname.dtx}{lbx,gb}}
\file{english-\jobname.lbx}{\from{\jobname.dtx}{lbx,en}}
\file{spanish-\jobname.lbx}{\from{\jobname.dtx}{lbx,es}}
+ \file{polish-\jobname.lbx}{\from{\jobname.dtx}{lbx,pl}}
\file{oxnotes-doc.tex}{\from{\jobname.dtx}{doc,n}}
\file{oxnum-doc.tex}{\from{\jobname.dtx}{doc,m}}
\file{oxalph-doc.tex}{\from{\jobname.dtx}{doc,a}}
@@ -659,18 +664,24 @@ Copyright (C) 2016–2023 Alex Ball
\newcounter{elementcount}
\newcommand{\commaorandlist}[1]{%
+ % Counting up
\renewcommand*{\do}[1]{\stepcounter{elementcount}}%
\dolistloop{#1}%
\ifnumgreater{\value{elementcount}}{2}{%
- \def\finaland{, and }%
+ \def\thisfinaland{,\space and\space}%
}{%
- \def\finaland{ and }%
+ \def\thisfinaland{\space and\space}%
}%
+ % Counting back down
\renewcommand*{\do}[1]{%
- \ifnumequal{\value{elementcount}}{1}{%
- ##1%
+ \ifnumgreater{\value{elementcount}}{2}{% antipenultimate or earlier
+ ##1,\space
}{%
- \ifnumequal{\value{elementcount}}{2}{#1\finaland}{##1, }%
+ \ifnumequal{\value{elementcount}}{2}{% penultimate
+ ##1\thisfinaland
+ }{% last
+ ##1%
+ }%
}%
\addtocounter{elementcount}{-1}%
}%
@@ -678,6 +689,7 @@ Copyright (C) 2016–2023 Alex Ball
\author{Alex Ball}
\listadd\thetranslators{Bruno Maltras}
+\listadd\thetranslators{Sebastian Wasiuta}
\date{\printdateTeX{\filedate}}
\begin{document}
\thispagestyle{empty}
@@ -799,7 +811,7 @@ UNIX-like systems:
oxnotes-trad1.cbx, oxnotes-trad2.cbx, oxnotes-trad3.cbx, oxyear.cbx,
oxnum.cbx, oxalph.cbx
- american-oxref.lbx, british-oxref.lbx, english-oxref.lbx,
- spanish-oxref.lbx
+ spanish-oxref.lbx, polish.lbx
- oxnotes.dbx, oxnotes-ibid.dbx, oxnotes-note.dbx, oxnotes-inote.dbx,
oxnotes-trad1.dbx, oxnotes-trad2.dbx, oxnotes-trad3.dbx, oxyear.dbx,
oxnum.dbx, oxalph.dbx
@@ -842,7 +854,8 @@ first two steps.
american-oxref.lbx,
british-oxref.lbx,
english-oxref.lbx,
- spanish-oxref.lbx
+ spanish-oxref.lbx,
+ polish-oxref.lbx,
oxalph.bbx,
oxalph.cbx,
oxalph.dbx,
@@ -1663,9 +1676,12 @@ This can be set globally or on a per-type or per-entry basis.
\section{Works in foreign languages}
-If you used a foreign language work, you might want to recommend a good translation.
+If you used a work in a different language from the one in which you are currently writing,
+you might want to recommend a good translation into the latter language.
-\tip{Add the translation in \code{related}, and set \code{relatedtype} to \code{translationas}.}
+\tip{Add the translation in \code{related}, and set \code{relatedtype} to \code{translationas}.
+ The localized bibstring reflects the current localization language:
+ \enquote{English translation}, \enquote{traducido espa\~nol}, and so on.}
\begin{bibexbox}
%<n|m><NHR \S18.2.5*>
@@ -1691,7 +1707,8 @@ If you used a foreign language work, you might want to recommend a good translat
\end{Verbatim}
\end{bibexbox}
-\tip{To specify the translator up front, set the \code{relatedtype} to \code{bytranslator} instead.}
+\tip{To specify the translator up front, or to recommend a translation into a third language,
+ set the \code{relatedtype} to \code{bytranslator} instead.}
\begin{bibexbox}
%<n|m><NHR \S18.2.14>
@@ -7770,6 +7787,7 @@ rather than \pkg[biblatex]{oxref}.}
\newcommand*{\uscasetitlepunct}{\addcomma\space}
\renewcommand*{\relateddelim}{\addsemicolon\space}
\DeclareDelimFormat{revsdnamedelim}{\addcomma}
+\DeclareDelimFormat[pair]{revsdnamedelim}{}
\DeclareDelimFormat{authortypedelim}{\addspace}
\DeclareDelimFormat{editortypedelim}{\addspace}
\DeclareDelimFormat{translatortypedelim}{\addspace}
@@ -7846,7 +7864,7 @@ rather than \pkg[biblatex]{oxref}.}
and
test {\ifdefvoid{#2}}%
}{}{%
- \printdelim{revsdnamedelim}}%
+ \printdelim{revsdnamepunct}}%
\ifdefvoid{#5}{}{\iftoggle{blx@ox@nametitle}{\bibnamedelimd\mkbibnametitle{#5}\isdot}{}}%
\ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
}{%
@@ -7861,7 +7879,7 @@ rather than \pkg[biblatex]{oxref}.}
and
test {\ifdefvoid{#3}}%
}{}{%
- \printdelim{revsdnamedelim}}%
+ \printdelim{revsdnamepunct}}%
\ifdefvoid{#5}{}{\iftoggle{blx@ox@nametitle}{\bibnamedelimd\mkbibnametitle{#5}\isdot}{}}%
\ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
\ifdefvoid{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}
@@ -7871,9 +7889,22 @@ rather than \pkg[biblatex]{oxref}.}
% the bibliography, but in natural order in citations. We implement this, along
% with the case changing option, in the following name format. We also add a
% second hash for checking if names (e.g.\@ |author| and |authoraddon|) are the
-% same.
+% same. We only need |name:revsdelim| on the first item, and only if it will be
+% followed by something else.
%
% \begin{macrocode}
+\renewbibmacro*{name:revsdelim}{%
+ \ifboolexpr{
+ (
+ test {\ifnumequal{\value{liststop}}{1}}
+ and
+ test \ifmorenames
+ )
+ or
+ test {\ifnumequal{\value{liststop}}{2}}
+ }
+ {\printdelim{revsdnamedelim}}
+ {}}
\def\blx@ox@lasthash{}
\DeclareNameFormat{bib-family-given/cite-given-family}{%
\iffieldannotation{inferred}{\ifnumequal{\value{listcount}}{1}{\bibopenbracket}{}}{}%
@@ -7918,13 +7949,22 @@ rather than \pkg[biblatex]{oxref}.}
\renewcommand*{\mkbibnametitle}[1]{##1}%
}{}%
\ifboolexpe{%
- test {\ifnumgreater{\value{listcount}}{1}}
- or (
+ test {\ifnumequal{\value{listcount}}{\@ne}}
+ and
+ (
+ test {\ifnumless{\value{listcount}}{\value{liststop}}}
+ or
+ test {\ifnumgreater{\value{listtotal}}{\value{maxnames}}}
+ or
+ test {\ifandothers{\currentname}}
+ )
+ and not
+ (
test {\ifdefvoid\namepartgiven}
and
test {\ifdefvoid\namepartprefix}
)
- }{}{\usebibmacro{name:revsdelim}}%
+ }{\usebibmacro{name:revsdelim}}{}%
}{%
% \end{macrocode}
%
@@ -7967,6 +8007,10 @@ rather than \pkg[biblatex]{oxref}.}
\savefield{hash}{\blx@ox@lasthash}%
}%
\ifitemannotation{inferred}{\bibclosebracket}{}%
+ \ifitemannotation{variant}{%
+ \global\settoggle{blx@ox@variantname}{true}%
+ }{%
+ \global\settoggle{blx@ox@variantname}{false}}%
\usebibmacro{name:andothers}%
\iffieldannotation{inferred}{%
\ifboolexpr{
@@ -8012,7 +8056,9 @@ rather than \pkg[biblatex]{oxref}.}
\usebibmacro{name:andothers}}
% \end{macrocode}
%
-% We do likewise for the regular |family-given| format.
+% We do likewise for the regular |family-given| format. Also, we only want to
+% use the |name:revsdelim| on the last name in the list if it will be followed
+% by \enquote{et al.}.
%
% \begin{macrocode}
\DeclareNameFormat{family-given}{%
@@ -8035,13 +8081,20 @@ rather than \pkg[biblatex]{oxref}.}
}{%
\global\settoggle{blx@ox@variantname}{false}}%
\ifboolexpe{%
- test {\ifnumgreater{\value{listcount}}{1}}
- or (
+ (
+ test {\ifnumless{\value{listcount}}{\value{liststop}}}
+ or
+ test {\ifnumgreater{\value{listtotal}}{\value{maxnames}}}
+ or
+ test {\ifandothers{\currentname}}
+ )
+ and not
+ (
test {\ifdefvoid\namepartgiven}
and
test {\ifdefvoid\namepartprefix}
)
- }{}{\usebibmacro{name:revsdelim}}%
+ }{\usebibmacro{name:revsdelim}}{}%
\usebibmacro{name:andothers}}
% \end{macrocode}
%
@@ -8068,21 +8121,46 @@ rather than \pkg[biblatex]{oxref}.}
\DeclareFieldFormat{namevariant}{\mkbibparens{\bibstring{equals}\space #1}}
% \end{macrocode}
%
-% We provide an alternative method that uses new name fields |authoraddon| and
-% |editoraddon|. To do this, we define a bibmacro that reimplements the loopcode
-% logic of \cs{printnames}, but operates on two name lists simultaneously; we use
-% saveboxes to extract the hashes, and only print the alternative name if it has
-% a different hash. The same technique is used by \textsf{oxyear} below to pair
-% up names with the short form used in references, so this bibmacro is written
-% to handle both cases.
+% We have two use cases for a bibmacro that reimplements the loopcode logic of
+% \cs{printnames}, but operates on two name lists simultaneously. One is to
+% support the new name fields |authoraddon| and |editoraddon|; the other is to
+% pair up names with the short form used in references, as required by
+% \textsf{oxyear} below.
+%
+% We need to do this in a way that doesn't break the patterns used for
+% configuring and adapting the punctuation that delimits the list items, so the
+% |namepair:delim| macro does the same as |name:delim| but instead of reading
+% the current counters, takes two extra arguments (in addition to the current name):
+% the number of the current name pair and the total number of name pairs.
+% The regular |finallistdelim| delimiter format looks up the value of the
+% |liststop| counter, so we need to give it the right value.
+%
+% \begin{macrocode}
+\newbibmacro*{namepair:delim}[3]{%
+ \ifnumgreater{#2}{\@ne}{%
+ \ifnumless{#2}{#3}{%
+ \printdelim{multinamedelim}%
+ }{%
+ \ifnumgreater{#3}{\c@maxnames}{%
+ \c@liststop\c@minnames
+ }{%
+ \c@liststop#3}%
+ \lbx@finalnamedelim{#1}}%
+ }{}}
+% \end{macrocode}
%
% The |namepairs| bibmacro takes two arguments: the data fields holding the main
-% name and alternative name respectively.
+% name and alternative name respectively. When rendering the names, we use
+% saveboxes to extract the hashes, and only print the alternative name if it has
+% a different hash. In this case, we also switch to the \enquote{pair}
+% delimiter context, where the |revsdnamedelim| (if any) is suppressed.
%
% \begin{macrocode}
+\DeclareFieldFormat{expanded}{\mkbibparens{#1}}
\newcounter{namepairs}
\newsavebox{\blx@ox@namebox}
\newsavebox{\blx@ox@altnamebox}
+\newtoggle{blx@ox@thispairvariant}%
\newbibmacro*{namepairs}[2]{%
\setcounter{namepairs}{0}%
\savebibmacro{name:andothers}%
@@ -8106,21 +8184,19 @@ rather than \pkg[biblatex]{oxref}.}
)
}{%
\stepcounter{namepairs}%
- \ifnumgreater{\value{namepairs}}{1}{%
- \ifnumequal{\value{#1}}{2}{%
- \setunit*{\addspace\bibstring{and}\addspace}%
- }{%
- \ifnumequal{\value{namepairs}}{\value{#1}}{%
- \setunit*{\addcomma\space\bibstring{and}\addspace}%
- }{%
- \setunit*{\addcomma\space}%
- }%
- }%
- }{}%
\savebox{\blx@ox@namebox}{%
\printnames[#1][\value{namepairs}-\value{namepairs}]{#1}%
}%
\let\blx@ox@firsthash=\blx@ox@lasthash
+ \savebox{\blx@ox@altnamebox}{%
+ \printnames[#1][\value{namepairs}-\value{namepairs}]{#2}%
+ }%
+ \let\blx@ox@secondhash=\blx@ox@lasthash
+ \iftoggle{blx@ox@variantname}{%
+ \toggletrue{blx@ox@thispairvariant}%
+ }{%
+ \togglefalse{blx@ox@thispairvariant}%
+ }%
% \end{macrocode}
%
% This is the part intended for |authoraddon| and |editoraddon|. Note that it
@@ -8128,20 +8204,28 @@ rather than \pkg[biblatex]{oxref}.}
%
% \begin{macrocode}
\IfEndWith{#2}{addon}{%
- \savebox{\blx@ox@altnamebox}{%
- \printnames[by#1][\value{namepairs}-\value{namepairs}]{#2}%
- }%
- \let\blx@ox@secondhash=\blx@ox@lasthash
+ \usebibmacro{namepair:delim}%
+ {\unhbox\blx@ox@namebox}{\value{namepairs}}{\value{#1}}%
\ifdefstrequal{\blx@ox@firsthash}{\blx@ox@secondhash}{%
- \unhbox\blx@ox@namebox
+ \hbox{}\unhbox\blx@ox@namebox
}{%
- \unhbox\blx@ox@namebox\addspace
- \iftoggle{blx@ox@variantname}{%
+ \iftoggle{blx@ox@thispairvariant}{%
\ifbibliography{%
- \printtext[namevariant]{\printnames[#1][\value{namepairs}-\value{namepairs}]{#2}}%
- }{}%
+ \delimcontext{pair}%
+ \printnames[#1][\value{namepairs}-\value{namepairs}]{#1}%
+ \setunit{\addspace}%
+ \printtext[namevariant]{%
+ \printnames[#1][\value{namepairs}-\value{namepairs}]{#2}}%
+ }{%
+ \hbox{}\unhbox\blx@ox@namebox
+ }%
}{%
- \printtext[nameaddon]{\unhbox\blx@ox@altnamebox}%
+ \delimcontext{pair}%
+ \printnames[#1][\value{namepairs}-\value{namepairs}]{#1}%
+ \setunit{\addspace}%
+ \printtext[nameaddon]{%
+ \printnames[#1][\value{namepairs}-\value{namepairs}]{#2}%
+ }%
}%
}%
% \end{macrocode}
@@ -8152,15 +8236,19 @@ rather than \pkg[biblatex]{oxref}.}
%
% \begin{macrocode}
}{%
- \savebox{\blx@ox@altnamebox}{%
- \printnames[#1][\value{namepairs}-\value{namepairs}]{#2}%
- }%
- \let\blx@ox@secondhash=\blx@ox@lasthash
\ifdefstrequal{\blx@ox@firsthash}{\blx@ox@secondhash}{%
- \unhbox\blx@ox@namebox
+ \usebibmacro{namepair:delim}%
+ {\unhbox\blx@ox@namebox}{\value{namepairs}}{\value{#1}}%
+ \hbox{}\unhbox\blx@ox@namebox
}{%
- \unhbox\blx@ox@altnamebox
- \addspace\mkbibparens{\unhbox\blx@ox@namebox}%
+ \usebibmacro{namepair:delim}%
+ {\unhbox\blx@ox@altnamebox}{\value{namepairs}}{\value{#1}}%
+ \delimcontext{pair}%
+ \printnames[#1][\value{namepairs}-\value{namepairs}]{#2}%
+ \setunit{\addspace}%
+ \printtext[expanded]{%
+ \printnames[#1][\value{namepairs}-\value{namepairs}]{#1}%
+ }%
}%
}%
}%
@@ -8725,7 +8813,7 @@ rather than \pkg[biblatex]{oxref}.}
\DeclareFieldFormat{pages}{%
\iffieldundef{bookpagination}%
{\mkcomprange{#1}}%
- {\mkcomprange[{\mkpageprefix[bookpagination]}]{#1}}%
+ {\mkpageprefix[bookpagination][\mkcomprange]{#1}}%
}
% \end{macrocode}
%
@@ -8735,7 +8823,7 @@ rather than \pkg[biblatex]{oxref}.}
\DeclareFieldFormat{postnote}{%
\iffieldundef{pagination}%
{\mkcomprange{#1}}%
- {\mkcomprange[{\mkpageprefix}]{#1}}%
+ {\mkpageprefix[pagination][\mkcomprange]{#1}}%
}
% \end{macrocode}
@@ -9299,6 +9387,7 @@ rather than \pkg[biblatex]{oxref}.}
% considered on request.
%
% \begin{macrocode}
+\newcommand*{\mkvolroman}[1]{\Rn{#1}}
\DeclareFieldFormat[book,mvbook,bookinbook,inbook,suppbook,%
collection,mvcollection,incollection,suppcollection,%
proceedings,mvproceedings,inproceedings,%
@@ -9306,11 +9395,11 @@ reference,mvreference,inreference]{volume}{%
\IfSubStr{#1}{-}{%
\StrCount{#1}{-}[\blx@ox@dashnum]%
\StrBefore{#1}{-}[\blx@ox@volnum]%
- \expandafter\ifinteger\blx@ox@volnum{\Rn{\blx@ox@volnum}}{\blx@ox@volnum}\bibrangedash
+ \expandafter\ifinteger\blx@ox@volnum{\mkvolroman{\blx@ox@volnum}}{\blx@ox@volnum}\bibrangedash
\StrBehind[\blx@ox@dashnum]{#1}{-}[\blx@ox@volnum]%
- \expandafter\ifinteger\blx@ox@volnum{\Rn{\blx@ox@volnum}}{\blx@ox@volnum}%
+ \expandafter\ifinteger\blx@ox@volnum{\mkvolroman{\blx@ox@volnum}}{\blx@ox@volnum}%
}{%
- \ifinteger{#1}{\Rn{#1}}{#1}}}
+ \ifinteger{#1}{\mkvolroman{#1}}{#1}}}
% \end{macrocode}
%
% Where a multi-volume work is more like a series, the volume number and
@@ -9377,6 +9466,37 @@ reference,mvreference,inreference]{volume}{%
{Valid values are 'in' and 'out'.}}}}
% \end{macrocode}
%
+% If there are the same number of locations and publishers, and there are more
+% than one pair, we print them pairwaise rather than in two separate lists. In
+% order to do this while retaining the normal mechanisms for punctuating the
+% list, we need a |listpair:delim| macro similar to |namepair:delim| (above)
+% that uses the generic list punctuation. Again, the three arguments are the
+% item being printed, the number of the current item pair and the total number
+% of item pairs.
+%
+% \begin{macrocode}
+\newbibmacro*{listpair:delim}[3]{%
+ \ifnumgreater{#2}{\@ne}{%
+ \ifnumless{#2}{#3}{%
+ \printdelim{multilistdelim}%
+ }{%
+ \c@liststop#3%
+ \lbx@finallistdelim{#1}}%
+ }{}}
+% \end{macrocode}
+%
+% We use this as the basis of a list format that will be applied to the location
+% element of a location--publisher pair.
+%
+% \begin{macrocode}
+\newcounter{locpubpairs}
+\DeclareListFormat{locpub}{%
+ \usebibmacro{listpair:delim}%
+ {#1}{\value{locpubpairs}}{\value{location}}%
+ #1\isdot
+}
+% \end{macrocode}
+%
% When citing both the first and a later edition, the first one comes
% first, and the later one comes after a semicolon. As per standard
% \pkg{biblatex}, the elements of a single edition are separated by commas
@@ -9385,7 +9505,7 @@ reference,mvreference,inreference]{volume}{%
% origpublisher is also specified.
%
% \begin{macrocode}
-\newcounter{locpubpairs}
+\newsavebox{\blx@ox@locbox}
\newbibmacro*{edition+publisher+location+date}{%
\printlist{origlocation}%
\iflistundef{origpublisher}%
@@ -9406,10 +9526,11 @@ reference,mvreference,inreference]{volume}{%
\setunit*{\addcomma\space}%
% \end{macrocode}
%
-% If there are the same number of locations and publishers, and there
-% are more than one pair, we print them pairwaise rather than in two
+% As mentioned, if there are the same number of locations and publishers, and
+% there are more than one pair, we print them pairwaise rather than in two
% separate lists. This uses the same principle as the |namepairs| bibmacro,
-% but does not have the list truncation apparatus.
+% but does not have the list truncation apparatus. This time we use a savebox
+% just for efficiency.
%
% \begin{macrocode}
\ifboolexpr{%
@@ -9424,19 +9545,8 @@ reference,mvreference,inreference]{volume}{%
test {\ifnumcomp{\value{locpubpairs}}{<}{\value{publisher}}}
}{%
\stepcounter{locpubpairs}%
- \ifnumcomp{\value{locpubpairs}}{>}{1}{%
- \ifnumequal{\value{publisher}}{2}{%
- \setunit*{\addspace\bibstring{and}\addspace}%
- }{%
- \ifnumequal{\value{locpubpairs}}{\value{publisher}}{%
- \setunit*{\addcomma\space\bibstring{and}\addspace}%
- }{%
- \setunit*{\addcomma\space}%
- }%
- }%
- }{}%
- \printlist[][\value{locpubpairs}-\value{locpubpairs}]{location}%
- \setunit*{\addcolon\space}%
+ \printlist[locpub][\value{locpubpairs}-\value{locpubpairs}]{location}%
+ \setunit{\addcolon\space}%
\printlist[][\value{locpubpairs}-\value{locpubpairs}]{publisher}%
}%
\restorebibmacro{list:andothers}%
@@ -11383,7 +11493,11 @@ reference,mvreference,inreference]{volume}{%
\setcounter{blx@tmpcnt}{\value{listcount}}%
\addtocounter{blx@tmpcnt}{1}%
\ifnumequal{\value{blx@tmpcnt}}{\value{listtotal}}{%
- #1\space\bibstring{and}\addspace
+ \ifnumgreater{\value{listtotal}}{2}{%
+ #1\finalandcomma\space\bibstring{and}\addspace
+ }{%
+ #1\space\bibstring{and}\addspace
+ }
}{%
#1\addcomma\space}}}%
@@ -14256,11 +14370,6 @@ reference,mvreference,inreference]{volume}{%
% \code{authoraddon} has not been provided.
%
% \begin{macrocode}
-\xpatchbibmacro{namepairs}{%
- \printnames[by#1]%
-}{%
- \printnames[#1]%
-}{}{\wlog{WARNING: biblatex-oxref (oxyear) failed to patch namepairs}}
\xpatchbibmacro{author+altauthor}{%
\printnames{author}%
}{%
@@ -15085,7 +15194,7 @@ reference,mvreference,inreference]{volume}{%
\InheritBibliographyExtras{english}
\DeclareBibliographyExtras{%
\def\finalandcomma{\addcomma}%
- \def\blx@ox@langbibstring#1#2{#1\addspace\bibstring{#2}}%
+ \def\blx@ox@langbibstring#1#2{#1\setunit*{\addspace}\bibstring{#2}}%
}
\UndeclareBibliographyExtras{%
\def\blx@ox@langbibstring#1#2{\bibstring{#2}}%
@@ -15296,11 +15405,11 @@ reference,mvreference,inreference]{volume}{%
byreviser = {{revised by}{rev\adddot}},
byreviewer = {{reviewed by}{rev\adddot}},
bycollaborator = {{in collaboration with}{in collab\adddotspace with}},
- bytranslator = {{translated \lbx@lfromlang\ by}{trans\adddot\ \lbx@sfromlang}},
+ bytranslator = {{translated by}{trans\adddot}},
bycommentator = {{commented by}{comm\adddot}},
byannotator = {{annotated by}{annot\adddot}},
- byeditortr = {{edited and translated \lbx@lfromlang\ by}%
- {ed\adddotspace and trans\adddot\ \lbx@sfromlang}},
+ byeditortr = {{edited and translated by}%
+ {ed\adddotspace and trans\adddot}},
byeditorco = {{edited and commented by}%
{ed\adddotspace and comm\adddot}},
byeditoran = {{edited and annotated by}%
@@ -15311,16 +15420,16 @@ reference,mvreference,inreference]{volume}{%
{ed.\adddotspace with foreword}},
byeditoraf = {{edited, with an afterword, by}%
{ed.\adddotspace with afterword}},
- byeditortrco = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented by}%
- {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm\adddot}},
- byeditortran = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated by}%
- {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot\adddot}},
- byeditortrin = {{edited and translated \lbx@lfromlang, with an introduction, by}%
- {with introduction, ed\adddotspace and trans\adddot\ \lbx@sfromlang}},
- byeditortrfo = {{edited and translated \lbx@lfromlang, with a foreword, by}%
- {with foreword, ed\adddotspace and trans\adddot\ \lbx@sfromlang}},
- byeditortraf = {{edited and translated \lbx@lfromlang, with an afterword, by}%
- {with afterword, ed\adddotspace and trans\adddot\ \lbx@sfromlang}},
+ byeditortrco = {{edited, translated\finalandcomma\ and commented by}%
+ {ed.,\addabbrvspace trans\adddot\finalandcomma\ and comm\adddot}},
+ byeditortran = {{edited, translated\finalandcomma\ and annotated by}%
+ {ed.,\addabbrvspace trans\adddot\finalandcomma\ and annot\adddot}},
+ byeditortrin = {{edited and translated, with an introduction, by}%
+ {with introduction, ed\adddotspace and trans\adddot}},
+ byeditortrfo = {{edited and translated, with a foreword, by}%
+ {with foreword, ed\adddotspace and trans\adddot}},
+ byeditortraf = {{edited and translated, with an afterword, by}%
+ {with afterword, ed\adddotspace and trans\adddot}},
byeditorcoin = {{edited and commented, with an introduction, by}%
{with introduction, ed\adddotspace and comm\adddot}},
byeditorcofo = {{edited and commented, with a foreword, by}%
@@ -15333,47 +15442,46 @@ reference,mvreference,inreference]{volume}{%
{with foreword, ed\adddotspace and annot\adddot}},
byeditoranaf = {{edited and annotated, with an afterword, by}%
{with afterword, ed\adddotspace and annot\adddot}},
- byeditortrcoin = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with an introduction, by}%
- {with introduction, ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm\adddot}},
- byeditortrcofo = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with a foreword, by}%
- {with foreword, ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm\adddot}},
- byeditortrcoaf = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with an afterword, by}%
- {with afterword, ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm\adddot}},
- byeditortranin = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with an introduction, by}%
- {with introduction, ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot\adddot}},
- byeditortranfo = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with a foreword, by}%
- {with foreword, ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot\adddot}},
- byeditortranaf = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with an afterword, by}%
- {with afterword, ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot\adddot}},
- bytranslatorco = {{translated \lbx@lfromlang\ and commented by}%
- {trans\adddot\ \lbx@sfromlang\ and comm\adddot}},
- bytranslatoran = {{translated \lbx@lfromlang\ and annotated by}%
- {trans\adddot\ \lbx@sfromlang\ and annot\adddot}},
- bytranslatorin = {{translated \lbx@lfromlang, with an introduction, by}%
- {trans\adddot\ \lbx@sfromlang\ with introduction}},
- bytranslatorfo = {{translated \lbx@lfromlang, with a foreword, by}%
- {trans\adddot\ \lbx@sfromlang\ with foreword}},
- bytranslatoraf = {{translated \lbx@lfromlang, with an afterword, by}%
- {trans\adddot\ \lbx@sfromlang\ with afterword}},
- bytranslatorcoin = {{translated \lbx@lfromlang\ and commented, with an introduction, by}%
- {with introduction, trans\adddot\ \lbx@sfromlang\ and comm\adddot}},
- bytranslatorcofo = {{translated \lbx@lfromlang\ and commented, with a foreword, by}%
- {with foreword, trans\adddot\ \lbx@sfromlang\ and comm\adddot}},
- bytranslatorcoaf = {{translated \lbx@lfromlang\ and commented, with an afterword, by}%
- {with afterword, trans\adddot\ \lbx@sfromlang\ and comm\adddot}},
- bytranslatoranin = {{translated \lbx@lfromlang\ and annotated, with an introduction, by}%
- {with introduction, trans\adddot\ \lbx@sfromlang\ and annot\adddot}},
- bytranslatoranfo = {{translated \lbx@lfromlang\ and annotated, with a foreword, by}%
- {with foreword, trans\adddot\ \lbx@sfromlang\ and annot\adddot}},
- bytranslatoranaf = {{translated \lbx@lfromlang\ and annotated, with an afterword, by}%
- {with afterword, trans\adddot\ \lbx@sfromlang\ and annot\adddot}},
+ byeditortrcoin = {{edited, translated\finalandcomma\ and commented, with an introduction, by}%
+ {with introduction, ed.,\addabbrvspace trans\adddot\finalandcomma\ and comm\adddot}},
+ byeditortrcofo = {{edited, translated\finalandcomma\ and commented, with a foreword, by}%
+ {with foreword, ed.,\addabbrvspace trans\adddot\finalandcomma\ and comm\adddot}},
+ byeditortrcoaf = {{edited, translated\finalandcomma\ and commented, with an afterword, by}%
+ {with afterword, ed.,\addabbrvspace trans\adddot\finalandcomma\ and comm\adddot}},
+ byeditortranin = {{edited, translated\finalandcomma\ and annotated, with an introduction, by}%
+ {with introduction, ed.,\addabbrvspace trans\adddot\finalandcomma\ and annot\adddot}},
+ byeditortranfo = {{edited, translated\finalandcomma\ and annotated, with a foreword, by}%
+ {with foreword, ed.,\addabbrvspace trans\adddot\finalandcomma\ and annot\adddot}},
+ byeditortranaf = {{edited, translated\finalandcomma\ and annotated, with an afterword, by}%
+ {with afterword, ed.,\addabbrvspace trans\adddot\finalandcomma\ and annot\adddot}},
+ bytranslatorco = {{translated and commented by}%
+ {trans\adddotspace and comm\adddot}},
+ bytranslatoran = {{translated and annotated by}%
+ {trans\adddotspace and annot\adddot}},
+ bytranslatorin = {{translated, with an introduction, by}%
+ {trans\adddotspace with introduction}},
+ bytranslatorfo = {{translated, with a foreword, by}%
+ {trans\adddotspace with foreword}},
+ bytranslatoraf = {{translated, with an afterword, by}%
+ {trans\adddotspace with afterword}},
+ bytranslatorcoin = {{translated and commented, with an introduction, by}%
+ {with introduction, trans\adddotspace and comm\adddot}},
+ bytranslatorcofo = {{translated and commented, with a foreword, by}%
+ {with foreword, trans\adddotspace and comm\adddot}},
+ bytranslatorcoaf = {{translated and commented, with an afterword, by}%
+ {with afterword, trans\adddotspace and comm\adddot}},
+ bytranslatoranin = {{translated and annotated, with an introduction, by}%
+ {with introduction, trans\adddotspace and annot\adddot}},
+ bytranslatoranfo = {{translated and annotated, with a foreword, by}%
+ {with foreword, trans\adddotspace and annot\adddot}},
+ bytranslatoranaf = {{translated and annotated, with an afterword, by}%
+ {with afterword, trans\adddotspace and annot\adddot}},
% \end{macrocode}
%
% The roles expressed as objects and terms for supplementary material
% are not abbreviated.
%
% \begin{macrocode}
- withintroduction = {{with an introduction by}{with an introduction by}},
withcommentator = {{with a commentary by}{with a commentary by}},
withannotator = {{with annotations by}{with annotations by}},
withintroduction = {{with an introduction by}{with an introduction by}},
@@ -15428,8 +15536,10 @@ reference,mvreference,inreference]{volume}{%
% Languages are abbreviated.
%
% \begin{macrocode}
- langamerican = {{English}{Eng\adddot}},
- langbrazilian = {{Brazilian}{Braz\adddot}},
+ langamerican = {{American English}{Amer\adddotspace Eng\adddot}},
+ langbasque = {{Basque}{Basq\adddot}},
+ langbrazilian = {{Brazilian Portuguese}{Braz\adddotspace Port\adddot}},
+ langbulgarian = {{Bulgarian}{Bulg\adddot}},
langcatalan = {{Catalan}{Catal\adddot}},
langcroatian = {{Croatian}{Croat\adddot}},
langczech = {{Czech}{Czech}},
@@ -15439,17 +15549,28 @@ reference,mvreference,inreference]{volume}{%
langestonian = {{Estonian}{Eston\adddot}},
langfinnish = {{Finnish}{Finn\adddot}},
langfrench = {{French}{Fr\adddot}},
+ langgalician = {{Galician}{Galic\adddot}},
langgerman = {{German}{Ger\adddot}},
langgreek = {{Greek}{Gr\adddot}},
+ langhungarian = {{Hungarian}{Hung\adddot}},
langitalian = {{Italian}{It\adddot}},
+ langjapanese = {{Japanese}{Jap\adddot}},
langlatin = {{Latin}{Lat\adddot}},
+ langlatvian = {{Latvian}{Latv\adddot}},
+ langlithuanian = {{Lithuanian}{Lith\adddot}},
+ langmarathi = {{Marathi}{Mar\adddot}},
langnorwegian = {{Norwegian}{Norw\adddot}},
langpolish = {{Polish}{Pol\adddot}},
langportuguese = {{Portuguese}{Port\adddot}},
+ langromanian = {{Romanian}{Rom\adddot}},
langrussian = {{Russian}{Russ\adddot}},
+ langserbian = {{Serbian}{Serb\adddot}},
+ langslovak = {{Slovak}{Slovak}},
langslovene = {{Slovene}{Slov\adddot}},
langspanish = {{Spanish}{Sp\adddot}},
langswedish = {{Swedish}{Swed\adddot}},
+ langturkish = {{Turkish}{Turk\adddot}},
+ langukrainian = {{Ukrainian}{Ukr\adddot}},
}
% \end{macrocode}
%
@@ -15742,11 +15863,11 @@ reference,mvreference,inreference]{volume}{%
byfounder = {{fundado por}{fund\adddotspace}},
bycontinuator = {{continuado por}{cont\adddotspace}},
bycollaborator = {{colaboraci\'on de}{col\adddotspace de}},
- bytranslator = {{traducido \lbx@lfromlang\ por}{trad\adddotspace \lbx@sfromlang}},
+ bytranslator = {{traducido por}{trad\adddotspace}},
bycommentator = {{comentado por}{com\adddotspace}},
byannotator = {{anotado por}{anot\adddotspace}},
- byeditortr = {{editado y traducido \lbx@lfromlang\ por}%
- {ed\adddotspace y trad\adddotspace \lbx@sfromlang}},
+ byeditortr = {{editado y traducido por}%
+ {ed\adddotspace y trad\adddotspace}},
byeditorco = {{editado y comentado por}%
{ed\adddotspace y com\adddotspace }},
byeditoran = {{edici\'on y notas de}%
@@ -15757,16 +15878,16 @@ reference,mvreference,inreference]{volume}{%
{ed\adddotspace y pr\'ol\adddotspace}},
byeditoraf = {{edici\'on y ep\'ilogo de}%
{ed\adddotspace y ep\'il\adddotspace}},
- byeditortrco = {{editado, traducido \lbx@lfromlang\ y comentado por}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y com\adddotspace}},
- byeditortran = {{edici\'on, traducci\'on \lbx@lfromlang\ y notas de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y not\adddotspace}},
- byeditortrin = {{edici\'on, traducci\'on \lbx@lfromlang\ e introducci\'on de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ e intr\adddotspace}},
- byeditortrfo = {{edici\'on, traducci\'on \lbx@lfromlang\ y pr\'ologo de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y pr\'ol\adddotspace}},
- byeditortraf = {{editado, traducido \lbx@lfromlang\ y epilogado}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y ep\'il\adddotspace}},
+ byeditortrco = {{editado, traducido y comentado por}%
+ {ed.,\addabbrvspace trad\adddotspace y com\adddotspace}},
+ byeditortran = {{edici\'on, traducci\'on y notas de}%
+ {ed.,\addabbrvspace trad\adddotspace y not\adddotspace}},
+ byeditortrin = {{edici\'on, traducci\'on e introducci\'on de}%
+ {ed.,\addabbrvspace trad\adddotspace e intr\adddotspace}},
+ byeditortrfo = {{edici\'on, traducci\'on y pr\'ologo de}%
+ {ed.,\addabbrvspace trad\adddotspace y pr\'ol\adddotspace}},
+ byeditortraf = {{editado, traducido y epilogado}%
+ {ed.,\addabbrvspace trad\adddotspace y ep\'il\adddotspace}},
byeditorcoin = {{editado, comentado e introducido}%
{ed.,\addabbrvspace com\adddotspace e intr\adddotspace}},
byeditorcofo = {{edici\'on, comentarios y pr\'ologo de}%
@@ -15779,40 +15900,40 @@ reference,mvreference,inreference]{volume}{%
{ed.,\addabbrvspace anot\adddotspace y pr\'ol\adddotspace}},
byeditoranaf = {{edici\'on, notas y ep\'ilogo de}%
{ed.,\addabbrvspace anot\adddotspace y ep\'il\adddotspace}},
- byeditortrcoin = {{edici\'on, traducci\'on \lbx@lfromlang, comentarios e introducci\'on de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, com\adddotspace e intr\adddotspace}},
- byeditortrcofo = {{edici\'on, traducci\'on \lbx@lfromlang, comentarios y pr\'ologo de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, com\adddotspace y pr\'ol\adddotspace}},
- byeditortrcoaf = {{edici\'on, traducci\'on \lbx@lfromlang, comentarios y ep\'ilogo de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, com\adddotspace y ep\'il\adddotspace}},
- byeditortranin = {{edici\'on, traducci\'on \lbx@lfromlang, notas e introducci\'on de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, anot\adddotspace e intr\adddotspace}},
- byeditortranfo = {{edici\'on, traducci\'on \lbx@lfromlang, notas y pr\'ologo de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, anot\adddotspace y pr\'ol\adddotspace}},
- byeditortranaf = {{edici\'on, traducci\'on \lbx@lfromlang, notas y ep\'ilogo de}%
- {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, anot\adddotspace y ep\'il\adddotspace}},
- bytranslatorco = {{traducci\'on \lbx@lfromlang\ y comentarios de}%
- {trad\adddotspace \lbx@sfromlang\ y com\adddotspace}},
- bytranslatoran = {{traducci\'on \lbx@lfromlang\ y notas de}%
- {trad\adddotspace \lbx@sfromlang\ y not\adddotspace}},
- bytranslatorin = {{traducci\'on \lbx@lfromlang\ e introducci\'on de}%
- {trad\adddotspace \lbx@sfromlang\ e introd\adddotspace}},
- bytranslatorfo = {{traducci\'on \lbx@lfromlang\ y pr\'ologo de}%
- {trad\adddotspace \lbx@sfromlang\ y pr\'ol\adddotspace}},
- bytranslatoraf = {{traducci\'on \lbx@lfromlang\ y ep\'ilogo de}%
- {trad\adddotspace \lbx@sfromlang\ y ep\'il\adddotspace}},
- bytranslatorcoin = {{traducci\'on \lbx@lfromlang, comentarios e introducci\'on de}%
- {trad\adddotspace \lbx@sfromlang, com\adddotspace e intr\adddotspace}},
- bytranslatorcofo = {{traducci\'on \lbx@lfromlang, comentarios y pr\'ologo de}%
- {trad\adddotspace \lbx@sfromlang, com\adddotspace y pr\'ol\adddotspace}},
- bytranslatorcoaf = {{traducci\'on \lbx@lfromlang, comentarios y ep\'ilogo de}%
- {trad\adddotspace \lbx@sfromlang, com\adddotspace y ep\'il\adddotspace}},
- bytranslatoranin = {{traducci\'on \lbx@lfromlang, notas e introducci\'on de}%
- {trad\adddotspace \lbx@sfromlang, anot\adddotspace e intr\adddotspace}},
- bytranslatoranfo = {{traducci\'on \lbx@lfromlang, notas y pr\'ologo}%
- {trad\adddotspace \lbx@sfromlang, anot\adddotspace y pr\'ol\adddotspace}},
- bytranslatoranaf = {{traducci\'on \lbx@lfromlang, notas y ep\'ilogo}%
- {trad\adddotspace \lbx@sfromlang, anot\adddotspace y ep\'il\adddotspace}},
+ byeditortrcoin = {{edici\'on, traducci\'on, comentarios e introducci\'on de}%
+ {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace e intr\adddotspace}},
+ byeditortrcofo = {{edici\'on, traducci\'on, comentarios y pr\'ologo de}%
+ {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace y pr\'ol\adddotspace}},
+ byeditortrcoaf = {{edici\'on, traducci\'on, comentarios y ep\'ilogo de}%
+ {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace y ep\'il\adddotspace}},
+ byeditortranin = {{edici\'on, traducci\'on, notas e introducci\'on de}%
+ {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace e intr\adddotspace}},
+ byeditortranfo = {{edici\'on, traducci\'on, notas y pr\'ologo de}%
+ {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace y pr\'ol\adddotspace}},
+ byeditortranaf = {{edici\'on, traducci\'on, notas y ep\'ilogo de}%
+ {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace y ep\'il\adddotspace}},
+ bytranslatorco = {{traducci\'on y comentarios de}%
+ {trad\adddotspace y com\adddotspace}},
+ bytranslatoran = {{traducci\'on y notas de}%
+ {trad\adddotspace y not\adddotspace}},
+ bytranslatorin = {{traducci\'on e introducci\'on de}%
+ {trad\adddotspace e introd\adddotspace}},
+ bytranslatorfo = {{traducci\'on y pr\'ologo de}%
+ {trad\adddotspace y pr\'ol\adddotspace}},
+ bytranslatoraf = {{traducci\'on y ep\'ilogo de}%
+ {trad\adddotspace y ep\'il\adddotspace}},
+ bytranslatorcoin = {{traducci\'on, comentarios e introducci\'on de}%
+ {trad.,\addabbrvspace com\adddotspace e intr\adddotspace}},
+ bytranslatorcofo = {{traducci\'on, comentarios y pr\'ologo de}%
+ {trad.,\addabbrvspace com\adddotspace y pr\'ol\adddotspace}},
+ bytranslatorcoaf = {{traducci\'on, comentarios y ep\'ilogo de}%
+ {trad.,\addabbrvspace com\adddotspace y ep\'il\adddotspace}},
+ bytranslatoranin = {{traducci\'on, notas e introducci\'on de}%
+ {trad.,\addabbrvspace anot\adddotspace e intr\adddotspace}},
+ bytranslatoranfo = {{traducci\'on, notas y pr\'ologo}%
+ {trad.,\addabbrvspace anot\adddotspace y pr\'ol\adddotspace}},
+ bytranslatoranaf = {{traducci\'on, notas y ep\'ilogo}%
+ {trad.,\addabbrvspace anot\adddotspace y ep\'il\adddotspace}},
% \end{macrocode}
%
% The roles expressed as objects and terms for supplementary material
@@ -15848,6 +15969,14 @@ reference,mvreference,inreference]{volume}{%
% for shorthands and \enquote{at} to cite a page within a range.
%
% \begin{macrocode}
+ idem = {{idem}{id\adddot}},
+ idemsm = {{idem}{id\adddot}},
+ idemsf = {{eadem}{ead\adddot}},
+ idemsn = {{idem}{id\adddot}},
+ idempm = {{eidem}{eid\adddot}},
+ idempf = {{eaedem}{eaed\adddot}},
+ idempn = {{eadem}{ead\adddot}},
+ idempp = {{eidem}{eid\adddot}},
citedas = {{en adelante}{en adelante}},
thiscite = {{en}{en}},
% \end{macrocode}
@@ -15855,50 +15984,510 @@ reference,mvreference,inreference]{volume}{%
% Languages are abbreviated.
%
% \begin{macrocode}
- langamerican = {{ingl\'es americano}{ing\adddotspace amer\adddotspace}},
- langbrazilian = {{brasile\~no}{por\adddotspace bras\adddotspace}},
- langbulgarian = {{b\'ulgaro}{bul\adddotspace}},
- langcatalan = {{catal\'an}{cat\adddotspace}},
- langcroatian = {{croata}{hrv\adddotspace}},
- langczech = {{checo}{ces\adddotspace}},
- langdanish = {{dan\'es}{dan\adddotspace}},
- langdutch = {{neerland\'es}{nld\adddotspace}},
- langenglish = {{ingl\'es}{ing\adddotspace}},
- langestonian = {{estonio}{est\adddotspace}},
- langfinnish = {{fin\'es}{fin\adddotspace}},
- langfrench = {{franc\'es}{fra\adddotspace}},
- langgalician = {{gallego}{glg\adddotspace}},
- langgerman = {{alem\'an}{ale\adddotspace}},
- langgreek = {{griego}{gr\adddotspace}},
- langhungarian = {{h\'ungaro}{hun\adddotspace}},
- langitalian = {{italiano}{ita\adddotspace}},
- langjapanese = {{japon\'es}{jap\adddotspace}},
- langlatin = {{lat\'in}{lat\adddotspace}},
- langlatvian = {{lituano}{lit\adddotspace}},
- langnorwegian = {{noruego}{nor\adddotspace}},
- langpolish = {{polaco}{pol\adddotspace}},
- langportuguese = {{portugu\'es}{port\adddotspace}},
- langrussian = {{ruso}{rus\adddotspace}},
- langserbian = {{serbio}{srp\adddotspace}},
- langslovak = {{eslovaco}{slk\adddotspace}},
- langslovene = {{esloveno}{slv\adddotspace}},
- langspanish = {{espa\~nol}{esp\adddotspace}},
+ langamerican = {{ingl\'es americano}{ing\adddotspace amer\adddot}},
+ langbasque = {{vasco}{vasc\adddot}},
+ langbrazilian = {{portugu\'es brasile\~no}{por\adddotspace bras\adddot}},
+ langbulgarian = {{b\'ulgaro}{bul\adddot}},
+ langcatalan = {{catal\'an}{cat\adddot}},
+ langcroatian = {{croata}{hrv\adddot}},
+ langczech = {{checo}{ces\adddot}},
+ langdanish = {{dan\'es}{dan\adddot}},
+ langdutch = {{neerland\'es}{nld\adddot}},
+ langenglish = {{ingl\'es}{ing\adddot}},
+ langestonian = {{estonio}{est\adddot}},
+ langfinnish = {{fin\'es}{fin\adddot}},
+ langfrench = {{franc\'es}{fra\adddot}},
+ langgalician = {{gallego}{glg\adddot}},
+ langgerman = {{alem\'an}{ale\adddot}},
+ langgreek = {{griego}{gr\adddot}},
+ langhungarian = {{h\'ungaro}{hun\adddot}},
+ langitalian = {{italiano}{ita\adddot}},
+ langjapanese = {{japon\'es}{jap\adddot}},
+ langlatin = {{lat\'in}{lat\adddot}},
+ langlatvian = {{let\'on}{let\adddot}},
+ langlithuanian = {{lituano}{lit\adddot}},
+ langmarathi = {{marathi}{mar\adddot}},
+ langnorwegian = {{noruego}{nor\adddot}},
+ langpolish = {{polaco}{pol\adddot}},
+ langportuguese = {{portugu\'es}{port\adddot}},
+ langrussian = {{ruso}{rus\adddot}},
+ langserbian = {{serbio}{srp\adddot}},
+ langslovak = {{eslovaco}{slk\adddot}},
+ langslovene = {{esloveno}{slv\adddot}},
+ langspanish = {{espa\~nol}{esp\adddot}},
langswedish = {{sueco}{sueco}},
- langukrainian = {{ucraniano}{ucr\adddotspace}},
+ langturkish = {{turco}{turco}},
+ langukrainian = {{ucraniano}{ucr\adddot}},
}
% \end{macrocode}
%
% \iffalse %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%</es>
+%<*pl>
+% \fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \section{Polish: polish-oxref.lbx}
+%
+% \setcounter{FancyVerbLine}{19}
+%
+% Thanks to Sebastian Wasiuta for contributing these translations and extras.
+%
+% We load the standard language-specific punctuation and date formatting.
+%
+% \begin{macrocode}
+\InheritBibliographyExtras{polish}
+% \end{macrocode}
+%
+% Here are some additional specific settings we need.
+%
+% There is no comma after forenames in the inverted position.
+%
+% \begin{macrocode}
+\DeclareBibliographyExtras{%
+ \DeclareDelimFormat{revsdnamedelim}{}%
+% \end{macrocode}
+%
+% We need to use the right case for month names in treaty execution dates.
+%
+% \begin{macrocode}
+ \savecommand\makebbx@dateii
+ \def\makebbx@dateii#1#2#3{%
+ \blx@imc@stripzeros{#3}~\lbx@pl@mkbibmonth{#2}%
+ \space
+ #1}%
+% \end{macrocode}
+%
+% Volume numbers are expressed in uppercase Roman numerals.
+%
+% \begin{macrocode}
+ \savecommand\mkvolroman
+ \renewcommand*{\mkvolroman}[1]{\RN{#1}}%
+% \end{macrocode}
+%
+% There is no compression of years.
+%
+% \begin{macrocode}
+ \savecommand\blx@ox@compyear
+ \renewcommand*{\blx@ox@compyear}[2]{#2}%
+% \end{macrocode}
+%
+% There is no compression of pagination ranges.
+%
+% \begin{macrocode}
+ \savefieldformat{pages}%
+ \DeclareFieldFormat{pages}{%
+ \iffieldundef{bookpagination}%
+ {\mknormrange{#1}}%
+ {\mkpageprefix[bookpagination][\mknormrange]{#1}}%
+ }%
+ \savefieldformat{postnote}%
+ \DeclareFieldFormat{postnote}{%
+ \iffieldundef{pagination}%
+ {\mknormrange{#1}}%
+ {\mkpageprefix[pagination][\mknormrange]{#1}}%
+ }%
+% \end{macrocode}
+%
+% We flip the word order when specifying the edition.
+%
+% \begin{macrocode}
+ \savefieldformat{edition}%
+ \DeclareFieldFormat{edition}{%
+ \ifinteger{#1}
+ {\bibstring{edition}~\mkbibordedition{#1}}
+ {\ifbibstring{#1}{\bibstring{#1}}{#1\isdot}}}%
+}
+% \end{macrocode}
+%
+% Lastly we add code to undo these changes before switching to another language.
+%
+% \begin{macrocode}
+\UndeclareBibliographyExtras{%
+ \DeclareDelimFormat{revsdnamedelim}{\addcomma}%
+ \restorecommand\makebbx@dateii
+ \restorecommand\mkvolroman
+ \restorecommand\blx@ox@compyear
+ \restorefieldformat{pages}%
+ \restorefieldformat{postnote}%
+ \restorefieldformat{edition}%
+}
+% \end{macrocode}
+%
+% We load the standard set of localization strings, then add our
+% adjustments.
+%
+% \begin{macrocode}
+\DeclareBibliographyStrings{%
+ inherit = {polish},
+% \end{macrocode}
+%
+% These are new strings defined by \pkg[biblatex]{oxref}:
+%
+% \begin{itemize}
+% \item Roles expressed as functions
+% \end{itemize}
+%
+% \begin{macrocode}
+ director = {{re\.{z}yser}{re\.{z}\adddot}},
+ directors = {{re\.{z}yserzy}{re\.{z}\adddot}},
+ performer = {{wykonawca}{wyk\adddot}},
+ performers = {{wykonawcy}{wyk\adddot}},
+ reader = {{czytelnik}{czytelnik}},
+ readers = {{czytelnicy}{czytelnicy}},
+ conductor = {{dyrygent}{dyr\adddot}},
+ conductors = {{dyrygenci}{dyr\adddot}},
+ serieseditor = {{redaktor serii}{red\adddotspace serii}},
+ serieseditors = {{redaktor serii}{red\adddotspace serii}},
+ holder = {{w\l a\'{s}ciciel}{w\l a\'{s}ciciel}},
+ holders = {{w\l a\'{s}ciciele}{w\l a\'{s}ciciele}},
+ editorcm = {{redaktor i~kompilator}{red\adddotspace i~kompilator}},
+ editorcms = {{redaktorzy i~kompilatorzy}{red\adddotspace i~kompilatorzy}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Roles expressed as actions
+% \end{itemize}
+%
+% \begin{macrocode}
+ byperformer = {{wykonawca}{wyk\adddot}},
+ bydirector = {{re\.{z}yseria}{re\.{z}\adddot}},
+ byreader = {{czyta}{czyta}},
+ byconductor = {{kieruje}{kier\adddot}},
+ byserieseditor = {{redakcja}{red\adddot}},
+ byholder = {{w~posiadaniu}{w~posiadaniu}},
+ byeditorcm = {{redakcja i~opracowanie}{red\adddotspace i~oprac\adddot}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Publication details
+% \end{itemize}
+%
+% \begin{macrocode}
+ facsimile = {{wydanie faksymile}{wyd\adddotspace faksymile}},
+ revised = {{wydanie poprawione}{wyd\adddotspace popr\adddot}},
+ revisedenlarged = {{wydanie poprawione i~rozszerzone}{wyd\adddotspace popr\addotspace i~rozszerz\adddot}},
+ revisedreprint = {{przedruk poprawiony}{przedr\adddotspace popr\adddot}},
+ suppto = {{dodatek do}{dod\adddotspace do}},
+ equals = {{=}{=}},
+ original = {{oryginalny}{oryg\adddot}},
+ amendedby = {{zmienione przez}{zmien\adddotspace przez}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Publication state
+% \end{itemize}
+%
+% \begin{macrocode}
+ inpressin = {{z\l o\.{z}one do}{z\l o\.{z}one do}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Pagination
+% \end{itemize}
+%
+% \begin{macrocode}
+ book = {{ksi\k{e}ga}{ks\adddot}},
+ books = {{ksi\k{e}gi}{ks\adddot}},
+ canto = {{pie\'{s}\'{n}}{pie\'{s}\'{n}}},
+ cantos = {{pie\'{s}ni}{pie\'{s}ni}},
+ stanza = {{zwrotka}{zwr\adddot}},
+ stanzas = {{zwrotki}{zwr\adddot}},
+ act = {{akt}{a\adddot}},
+ acts = {{akty}{aa\adddot}},
+ scene = {{scena}{sc\adddot}},
+ scenes = {{sceny}{sc\adddot}},
+ folio = {{karta}{k\adddot}},
+ folios = {{karty}{kk\adddot}},
+ article = {{artyku\l }{art\adddot}},
+ articles = {{artyku\l y}{art\adddot}},
+ clause = {{klauzula}{klauz\adddot}},
+ clauses = {{klauzule}{klauz\adddot}},
+ regulation = {{rozporz\k{a}dzenie}{rozp\adddot}},
+ regulations = {{rozporz\k{a}dzenia}{rozp\adddot}},
+ rule = {{przepis}{przep\adddot}},
+ rules = {{przepisy}{przep\adddot}},
+ booktotal = {{ksi\k{e}ga}{ks\adddot}},
+ booktotals = {{ksi\k{e}gi}{ks\adddot}},
+ cantototal = {{pie\'{s}\'{n}}{pie\'{s}\'{n}}},
+ cantototals = {{pie\'{s}ni}{pie\'{s}ni}},
+ stanzatotal = {{zwrotka}{zwr\adddot}},
+ stanzatotals = {{zwrotki}{zwr\adddot}},
+ acttotal = {{akt}{a\adddot}},
+ acttotals = {{akty}{aa\adddot}},
+ scenetotal = {{scena}{sc\adddot}},
+ scenetotals = {{sceny}{sc\adddot}},
+ foliototal = {{karta}{k\adddot}},
+ foliototals = {{karty}{kk\adddot}},
+ articletotal = {{artyku\l }{art\adddot}},
+ articletotals = {{artyku\l y}{art\adddot}},
+ clausetotal = {{klauzula}{klauz\adddot}},
+ clausetotals = {{klauzule}{klauz\adddot}},
+ regulationtotal = {{rozporz\k{a}dzenie}{rozp\adddot}},
+ regulationtotals = {{rozporz\k{a}dzenia}{rozp\adddot}},
+ ruletotal = {{przepis}{przep\adddot}},
+ ruletotals = {{przepisy}{przep\adddot}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Types
+% \end{itemize}
+%
+% \begin{macrocode}
+ facebook = {{wpis na Facebooku}{wpis na Facebooku}},
+ tweet = {{wpis na Twitterze}{wpis na Twitterze}},
+ podcast = {{podcast}{podcast}},
+ clip = {{wideo}{wideo}},
+ webcast = {{webcast}{webcast}},
+ poster = {{plakat}{plakat}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Miscellaneous
+% \end{itemize}
+%
+% \begin{macrocode}
+ nolocation = {{bez miejsca}{b\adddot m\adddot}},
+ modified = {{ostatnio zmodyfikowany}{ostatnio zmodyf\adddot}},
+ recorded = {{nagrane}{nagr\adddot}},
+ uploaded = {{za\l adowane}{za\l ad\adddot}},
+ filed = {{wniesione}{wniesione}},
+ issued = {{wydany}{wyd\adddot}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Labels
+% \end{itemize}
+%
+% \begin{macrocode}
+ anon = {{Anonim}{Anon\adddot}},
+ pseudo = {{Pseudo-}{Ps\adddot-}},
+ urldown = {{pobrane}{pobrane}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item Country names, patents, and patent requests,
+% \end{itemize}
+%
+% \begin{macrocode}
+ countryjp = {{Japonia}{JP}},
+ patentjp = {{japo\'{n}ski patent}{jap\adddotspace pat\adddot}},
+ patreqjp = {{japo\'{n}ski wniosek patentowy}{jap\adddotspace wniosek pat\adddot}},
+% \end{macrocode}
+%
+% \begin{itemize}
+% \item These are borrowed from other styles.
+% \end{itemize}
+%
+% \begin{macrocode}
+ 1column = {{jedna kolumna}{1\addnbspace kol\adddot}},
+ 2column = {{dwie kolumny}{2\addnbspace kol\adddot}},
+ inflayer = {{warstwa ni\.{z}sza}{warstwa ni\.{z}sza}},
+ suplayer = {{warstwa wy\.{z}sza}{warstwa wy\.{z}sza}},
+ paper = {{gazeta}{gazeta}},
+ papyrus = {{papirus}{papirus}},
+ parchment = {{pergamin}{pergamin}},
+ eucase = {{sprawa}{sprawa}},
+ eujoinedcases = {{po\l \k{a}czone sprawy}{po\l \k{a}czone sprawy}},
+ commissiondecision = {{decyzja komisji}{decyzja komisji}},
+ application = {{wniosek}{wniosek}},
+ order = {{polecenie}{polecenie}},
+ bill = {{rachunek}{rachunek}},
+ draft = {{projekt}{proj\adddot}},
+ opened = {{przed\l o\.{z}one do podpisu}{przed\l\adddotspace do podp\adddot}},
+ signed = {{podpisane}{podpisane}},
+ adopted = {{przyj\k{e}te}{przyj\k{e}te}},
+ inforce = {{wesz\l o w~\.{z}ycie}{wesz\l o w~\.{z}ycie}},
+% \end{macrocode}
+%
+% The rest of these strings are overrides for the standard ones.
+%
+% \begin{macrocode}
+ byeditor = {{redakcja}{red\adddot}},
+ bycompiler = {{opracowanie}{oprac\adddot}},
+ byfounder = {{za\l o\.{z}one przez}{za\l o\.{z}\adddotspace przez}},
+ bycontinuator = {{kontynuowane przez}{kont\adddotspace przez}},
+ byredactor = {{redakcja}{red\adddot}},
+ byreviser = {{poprawki}{popr\adddot}},
+ byreviewer = {{recenzja}{rec\adddot}},
+ bycollaborator = {{we wsp\'{o}\l pracy z}{we wsp\'{o}\l pr\adddotspace z}},
+ bytranslator = {{t\l umaczenie}{t\l um\adddot}},
+ bycommentator = {{komentarz}{kom\adddot}},
+ byannotator = {{obja\'{s}nienia}{obja\'{s}n\adddot}},
+ byeditortr = {{redakcja i~t\l umaczenie}%
+ {red\adddotspace i~t\l um\adddot}},
+ byeditorco = {{redakcja i~komentarz}%
+ {red\adddotspace i~kom\adddot}},
+ byeditoran = {{redakcja i~obja\'{s}nienia}%
+ {red\adddotspace i~obja\'{s}n\adddot}},
+ byeditorin = {{redakcja i~wst\k{e}p}%
+ {red\adddotspace i~wst\k{e}p}},
+ byeditorfo = {{redakcja i~przedmowa}%
+ {red\adddotspace i~przedm\adddot}},
+ byeditoraf = {{redakcja i~pos\l owie}%
+ {red\adddotspace i~pos\l \adddot}},
+ byeditortrco = {{redakcja, t\l umaczenie i~komentarz}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace kom\adddot}},
+ byeditortran = {{redakcja, t\l umaczenie i~obja\'{s}nienia}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace obja\'{s}n\adddot}},
+ byeditortrin = {{redakcja, t\l umaczenie, wst\k{e}p}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace wst\k{e}p}},
+ byeditortrfo = {{redakcja, t\l umaczenie, przedmowa}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace przedm\adddot}},
+ byeditortraf = {{redakcja, t\l umaczenie, pos\l \adddot}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace pos\l \adddot}},
+ byeditorcoin = {{redakcja, komentarz, wst\k{e}p}%
+ {red.,\addabbrvspace kom.,\addabbrvspace wst\k{e}p}},
+ byeditorcofo = {{redakcja, komentarz i~przedmowa}%
+ {red.,\addabbrvspace kom.,\addabbrvspace przedm\adddot}},
+ byeditorcoaf = {{redakcja, komentarz, pos\l owie}%
+ {red.,\addabbrvspace kom.,\addabbrvspace pos\l \adddot}},
+ byeditoranin = {{redakcja, obja\'{s}nienia, wst\k{e}p}%
+ {red.,\addabbrvspace obja\'{s}n.,\addabbrvspace wst\k{e}p}},
+ byeditoranfo = {{redakcja, obja\'{s}nienia, przedmowa}%
+ {red.,\addabbrvspace obja\'{s}n.,\addabbrvspace przedm\adddot}},
+ byeditoranaf = {{redakcja, obja\'{s}nienia, pos\l owie}%
+ {red.,\addabbrvspace obja\'{s}n.,\addabbrvspace pos\l \adddot}},
+ byeditortrcoin = {{redakcja, t\l umaczenie, komentarz, wst\k{e}p}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace kom.,\addabbrvspace wst\k{e}p}},
+ byeditortrcofo = {{redakcja, t\l umaczenie, komentarz, przedmowa}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace kom.,\addabbrvspace przedm\adddot}},
+ byeditortrcoaf = {{redakcja, t\l umaczenie, komentarz, pos\l owie}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace kom.,\addabbrvspace pos\l \adddot}},
+ byeditortranin = {{redakcja, t\l umaczenie, obja\'{s}nienia, wst\k{e}p}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace obja\'{s}n.,\addabbrvspace wst\k{e}p}},
+ byeditortranfo = {{redakcja, t\l umaczenie, obja\'{s}nienia, przedmowa}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace obja\'{s}n.,\addabbrvspace przedm\adddot}},
+ byeditortranaf = {{redakcja, t\l umaczenie, obja\'{s}nienia, pos\l owie}%
+ {red.,\addabbrvspace t\l um.,\addabbrvspace obja\'{s}n.,\addabbrvspace pos\l \adddot}},
+ bytranslatorco = {{t\l umaczenie i~komentarz}%
+ {t\l um\adddotspace i~kom\adddot}},
+ bytranslatoran = {{t\l umaczenie i~obja\'{s}nienia}%
+ {t\l um\adddotspace i~obja\'{s}n\adddot}},
+ bytranslatorin = {{t\l umaczenie i~wst\k{e}p}%
+ {t\l um.,\addabbrvspace wst\k{e}p}},
+ bytranslatorfo = {{t\l umaczenie i~przedmowa}%
+ {t\l um.,\addabbrvspace przedm\adddot}},
+ bytranslatoraf = {{t\l umaczenie i~pos\l owie}%
+ {t\l um.,\addabbrvspace pos\l \adddot}},
+ bytranslatorcoin = {{t\l umaczenie, komentarz i~wst\k{e}p}%
+ {t\l um.,\addabbrvspace kom.,\addabbrvspace wst\k{e}p}},
+ bytranslatorcofo = {{t\l umaczenie, komentarz i~przedmowa}%
+ {t\l um.,\addabbrvspace kom.,\addabbrvspace przedm\adddot}},
+ bytranslatorcoaf = {{t\l umaczenie, komentarz i~pos\l owie}%
+ {t\l um.,\addabbrvspace kom.,\addabbrvspace pos\l \adddot}},
+ bytranslatoranin = {{t\l umaczenie, obja\'{s}nienia i~wst\k{e}p}%
+ {t\l um.,\addabbrvspace obja\'{s}n.,\addabbrvspace wst\k{e}p}},
+ bytranslatoranfo = {{t\l umaczenie, obja\'{s}nienia i~przedmowa}%
+ {t\l um.,\addabbrvspace obja\'{s}n.,\addabbrvspace przedm\adddot}},
+ bytranslatoranaf = {{t\l umaczenie, obja\'{s}nienia i~pos\l owie}%
+ {t\l um.,\addabbrvspace obja\'{s}n.,\addabbrvspace pos\l \adddot}},
+% \end{macrocode}
+%
+% The roles expressed as objects and terms for supplementary material
+% are not abbreviated.
+%
+% \begin{macrocode}
+ withcommentator = {{komentarz}{komentarz}},
+ withannotator = {{obja\'{s}nienia}{obja\'{s}nienia}},
+ withintroduction = {{wst\k{e}p}{wst\k{e}p}},
+ withforeword = {{przedmowa}{przedmowa}},
+ withafterword = {{pos\l owie}{pos\l owie}},
+ introduction = {{wst\k{e}p}{wst\k{e}p}},
+% \end{macrocode}
+%
+% The translations and abbreviations for some publication details are different.
+%
+% \begin{macrocode}
+ newseries = {{nowa seria}{nowa seria}},
+ oldseries = {{dawna seria}{dawna seria}},
+ edition = {{wydanie}{wyd\adddot}},
+ reviewof = {{recenzja}{rec\adddot}},
+ reprintfrom = {{przedruk z}{przedr\adddotspace z}},
+ translationas = {{t\l umaczenie polskie}{t\l um\adddotspace pol\adddotspace}},
+ origpubin = {{pierwodruk w}{pierwodr\adddotspace w}},
+% \end{macrocode}
+%
+% We use a different translation for \enquote{paragraph}.
+%
+% \begin{macrocode}
+ paragraph = {{ust\k{e}p}{ust\adddot}},
+ paragraphs = {{ust\k{e}py}{ust\adddot}},
+% \end{macrocode}
+%
+% \emph{New Hart's Rules} uses \enquote{accessed} for URL dates.
+%
+% \begin{macrocode}
+ urlseen = {{dost\k{e}p}{dost\k{e}p}},
+% \end{macrocode}
+%
+% Scholarly citation terms are abbreviated. Oxford style is to use \enquote{henceforth}
+% for shorthands and \enquote{at} to cite a page within a range.
+%
+% \begin{macrocode}
+ idem = {{idem}{id\adddot}},
+ idemsm = {{idem}{id\adddot}},
+ idemsf = {{eadem}{ead\adddot}},
+ idemsn = {{idem}{id\adddot}},
+ idempm = {{eidem}{eid\adddot}},
+ idempf = {{eaedem}{eaed\adddot}},
+ idempn = {{eadem}{ead\adddot}},
+ idempp = {{eidem}{eid\adddot}},
+ citedas = {{dalej}{dalej}},
+ thiscite = {{na}{na}},
+% \end{macrocode}
+%
+% Languages are abbreviated.
+%
+% \begin{macrocode}
+ langamerican = {{ameryka\'{n}ski angielski}{amer\adddotspace ang\adddot}},
+ langbasque = {{baskijski}{bask\adddot}},
+ langbrazilian = {{brazylijski portugalski}{braz\adddot port\adddot}},
+ langbulgarian = {{bu\l garski}{bu\l g\adddot}},
+ langcatalan = {{katalo\'{n}ski}{katal\adddot}},
+ langcroatian = {{chorwacki}{chorw\adddot}},
+ langczech = {{czeski}{czeski}},
+ langdanish = {{du\'{n}ski}{du\'{n}\adddot}},
+ langdutch = {{holenderski}{holend\adddot}},
+ langenglish = {{angielski}{ang\adddot}},
+ langestonian = {{esto\'{n}ski}{est\adddot}},
+ langfinnish = {{fi\'{n}ski}{fi\'{n}\adddot}},
+ langfrench = {{francuski}{fr\adddot}},
+ langgalician = {{galicyjski}{galic\adddot}},
+ langgerman = {{niemiecki}{niem\adddot}},
+ langgreek = {{grecki}{gr\adddot}},
+ langhungarian = {{w\k{e}gierski}{w\k{e}g\adddot}},
+ langitalian = {{w\l oski}{w\l \adddot}},
+ langjapanese = {{japo\'{n}ski}{jap\adddot}},
+ langlatin = {{\l aci\'{n}ski}{\l ac\adddot}},
+ langlatvian = {{\l otewski}{\l ot\adddot}},
+ langlithuanian = {{litewski}{lit\adddot}},
+ langmarathi = {{marathi}{mar\adddot}},
+ langnorwegian = {{norweski}{norw\adddot}},
+ langpolish = {{polski}{pol\adddot}},
+ langportuguese = {{portugalski}{port\adddot}},
+ langromanian = {{rumu\'{n}ski}{rum\adddot}},
+ langrussian = {{rosyjski}{ros\adddot}},
+ langserbian = {{serbski}{serb\adddot}},
+ langslovak = {{s\l owacki}{s\l c\adddot}},
+ langslovene = {{s\l owe\'{n}ski}{s\l owe\'{n}\adddot}},
+ langspanish = {{hiszpa\'{n}ski}{hiszp\adddot}},
+ langswedish = {{szwedzki}{szw\adddot}},
+ langturkish = {{turecki}{tur\adddot}},
+ langukrainian = {{ukrai\'{n}ski}{ukr\adddot}},
+}
+% \end{macrocode}
+%
+% \iffalse %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%</pl>
% \fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% \section{Other languages}
%
-% Currently \pkg[biblatex]{oxref} only supports English (British and American)
-% and Spanish explicitly, but if there is demand more languages may be added. If
-% you would like to contribute support for your language, a list of the
-% non-standard bibliography strings requiring definition may be found in
-% section~\ref{sec:setup}.
+% Currently \pkg[biblatex]{oxref} only supports English (British and American),
+% Spanish, and Polish explicitly,
+% but if there is demand more languages may be added. If you would like to
+% contribute support for your language, a list of the non-standard bibliography
+% strings requiring definition may be found in section~\ref{sec:setup}.
%
% \iffalse %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%</lbx>
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdf
index 08147694cc..5834fb1590 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdf
index 89a6515237..61c1abb84e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.bib b/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.bib
index 3f6af13bdd..6f0f9b5281 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.bib
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.bib
@@ -71,20 +71,20 @@
issue = {25},
pages = {254504},
year = {2008},
- month = {Jun},
+ month = jun,
publisher = {American Physical Society},
doi = {10.1103/PhysRevLett.100.254504},
}
@Book{Augustine1995,
hyphenation = {american},
- author = {Augustine, Robert L.},
+ author = {Augustine, Robert L.},
title = {Heterogeneous Catalysis for the Synthetic
Chemist},
shorttitle = {Heterogeneous catalysis},
publisher = {Marcel Dekker},
location = {New York},
- date = {1995},
+ date = {1995},
}
@Article{Booth1962,
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.pdf
index 16758e75a7..e7e9e05d58 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.tex b/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.tex
index 89550aed25..7224b722af 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.tex
@@ -2,7 +2,7 @@
%% biblatex-phys --- A biblatex implementation of the AIP and APS
%% bibliography style
%% Maintained by Joseph Wright
-%% E-mail: joseph.wright@morningstar2.co.uk
+%% E-mail: joseph@texdev.net
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
@@ -21,12 +21,12 @@
\addbibresource{biblatex-phys.bib}
\author{Joseph Wright\thanks{E-mail:
- \href{mailto:joseph.wright@morningstar2.co.uk}
- {\texttt{joseph.wright@morningstar2.co.uk}}}}
+ \href{mailto:joseph@texdev.net}
+ {\texttt{joseph@texdev.net}}}}
\title{\pkg{biblatex-phys} -- A \pkg{biblatex} implementation of the
\textsc{aip} and \textsc{aps} bibliography style%
- \footnote{This file describes v1.1b, last revised 2019/12/03.}}
-\date{Released 2019/12/03}
+ \footnote{This file describes v1.1c, last revised 2024/07/26.}}
+\date{Released 2024/07/26}
\providecommand*{\opt}[1]{\texttt{#1}}
\providecommand*{\pkg}[1]{\textsf{#1}}
@@ -49,12 +49,12 @@ in the usual way
\end{verbatim}
Load-time options are provided to deal with the small number of variations
between the \textsc{aip} and \textsc{aps} styles.
-The References section of this document demonstrates the format
+The References section of this document demonstrates the format
generated by the package using the \texttt{biblatex-phys.bib} database
of example citations.
The styles use the standard \pkg{biblatex} database requirements. This means
-that a database designed for traditional \pkg{biblatex} use may need some
+that a database designed for traditional \BibTeX{} use may need some
editing for optimal output. The accompanying example database
\texttt{biblatex-phys.bib} shows examples of all of the supported entry types
with common fields filled in.
@@ -69,13 +69,13 @@ seen between the \textsc{aip} and \textsc{aps} styles.
\DescribeOption{eprint}
\DescribeOption{isbn}
\DescribeOption{url}
-The standard style options \opt{doi}, \opt{eprint} \opt{isbn} and
-\opt{eprint}, as described in the \pkg{biblatex} manual. However, these
+The standard style options \opt{doi}, \opt{eprint}, \opt{isbn} and
+\opt{url}, as described in the \pkg{biblatex} manual. However, these
options are turned off as standard by the \pkg{phys} style. This reflects the
fact that these entries may be present in reference databases but are not
generally included in published bibliographies. Note that \textsc{doi} values
-are printed for journal articles with no pages given, even if the \opt{doi}
-option is \opt{false}.
+are printed for journal articles with no pages or eid given, even if the
+\opt{doi} option is \opt{false}.
\DescribeOption{subentry}
In common with the standard \pkg{biblatex} numeric styles, all of the styles
@@ -93,7 +93,7 @@ patents, which are treated in the same way.)
\DescribeOption{biblabel}
The format of the numbers used in the bibliography (the \enquote{bibliography
-label}) varies. he \opt{biblabel} option allows the user to easily set the
+label}) varies. The \opt{biblabel} option allows the user to easily set the
format used. This option takes a values \opt{superscript} (the standard
setting) and \opt{brackets}.
@@ -146,7 +146,7 @@ command may be used to alter this, either for the whole document or only
for the bibliography, for example by using
\begin{verbatim}
\AtBeginBibliography{%
- \urlstyle{rm}%
+ \urlstyle{same}%
}
\end{verbatim}
@@ -164,8 +164,8 @@ Suggestions for improvement and bug reports can be logged in the package issue
database, found at
\url{https://github.com/josephwright/biblatex-phys/issues}, or can
be sent by e-mail to
-\href{mailto:joseph.wright@morningstar2.co.uk}
- {\texttt{joseph.wright@morningstar2.co.uk}}.
+\href{mailto:joseph@texdev.net}
+ {\texttt{joseph@texdev.net}}.
\nocite{*}
@@ -208,8 +208,8 @@ be sent by e-mail to
\end{document}
%%
-%% Copyright (C) 2012-2014,2016,2018,2019 by
-%% Joseph Wright <joseph.wright@morningstar2.co.uk>
+%% Copyright (C) 2012-2014,2016,2018-2020,2022,2024 by
+%% Joseph Wright <joseph@texdev.net>
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx
index 442f4feae5..336f90e547 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx
@@ -2,13 +2,13 @@
%% biblatex-phys --- A biblatex implementation of the AIP and APS
%% bibliography style
%% Maintained by Joseph Wright
-%% E-mail: joseph.wright@morningstar2.co.uk
+%% E-mail: joseph@texdev.net
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
%%
-\ProvidesFile{phys.bbx}[2019/12/03 v1.1b biblatex bibliography style]
+\ProvidesFile{phys.bbx}[2024/07/26 v1.1c biblatex bibliography style]
% Load the standard style to avoid copy-pasting unnecessary material
\RequireBibliographyStyle{numeric-comp}
@@ -464,14 +464,15 @@
\printfield{pages}%
\iffieldundef{pages}
{%
- \printfield{doi}%
- \clearfield{doi}%
- }%
- {%
- \iftoggle{bbx:doi}
- {}
- {\clearfield{doi}}%
- }%
+ \iffieldundef{eid}
+ {%
+ \iftoggle{bbx:doi}
+ {}
+ {\printfield{doi}}%
+ }
+ {}%
+ }
+ {}%
}
\newbibmacro*{related:translatedas}[1]{%
@@ -495,8 +496,8 @@
%%
-%% Copyright (C) 2012-2014,2016,2018,2019 by
-%% Joseph Wright <joseph.wright@morningstar2.co.uk>
+%% Copyright (C) 2012-2014,2016,2018-2020,2023,2024 by
+%% Joseph Wright <joseph@texdev.net>
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.cbx
index 7758bc0a2b..4452bd7113 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.cbx
@@ -2,13 +2,13 @@
%% biblatex-phys --- A biblatex implementation of the AIP and APS
%% bibliography style
%% Maintained by Joseph Wright
-%% E-mail: joseph.wright@morningstar2.co.uk
+%% E-mail: joseph@texdev.net
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
%%
-\ProvidesFile{phys.cbx}[2019/12/03 v1.1b biblatex citation style]
+\ProvidesFile{phys.cbx}[2024/07/26 v1.1c biblatex citation style]
\RequireCitationStyle{numeric-comp}
@@ -20,8 +20,8 @@
}
%%
-%% Copyright (C) 2012-2014,2016,2018,2019 by
-%% Joseph Wright <joseph.wright@morningstar2.co.uk>
+%% Copyright (C) 2012-2014,2016,2018,2019,2024 by
+%% Joseph Wright <joseph@texdev.net>
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.dbx
index c47ca1e2d9..388e7ee435 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.dbx
@@ -2,19 +2,19 @@
%% biblatex-phys --- A biblatex implementation of the AIP and APS
%% bibliography style
%% Maintained by Joseph Wright
-%% E-mail: joseph.wright@morningstar2.co.uk
+%% E-mail: joseph@texdev.net
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
%%
-\ProvidesFile{phys.dbx}[2019/12/03 v1.1b biblatex database model extension]
+\ProvidesFile{phys.dbx}[2024/07/26 v1.1c biblatex database model extension]
\DeclareDatamodelFields[type=field, datatype=literal]{collaboration}
%%
-%% Copyright (C) 2012-2014,2016,2018,2019 by
-%% Joseph Wright <joseph.wright@morningstar2.co.uk>
+%% Copyright (C) 2012-2014,2016,2018,2019,2024 by
+%% Joseph Wright <joseph@texdev.net>
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/README b/macros/latex/contrib/biblatex-contrib/biblatex-publist/README
index f452a57a9f..11885c9993 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/README
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/README
@@ -46,6 +46,13 @@ instructions.
== CHANGES ==
+* V. 2.13 (2024-08-21):
+ - Add basic support for author annotations.
+ - Add support for information about number of citations.
+ - Add support for \citesecitem and \citesecitem* in
+ descending order.
+ - Fix \citeitem in first refsection.
+
* V. 2.12 (2024-07-16):
- Externalize localization to *.lbx files.
- Add \citeitemrange and \citesecitemrange commands.
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf
index 1d58e50fd5..fd041e59a8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex
index a140ad0133..241bba978e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex
@@ -115,7 +115,7 @@
\thanks{Please report issues via \protect\url{https://github.com/jspitz/biblatex-publist}.}%
}
-\date{Version 2.12, 2024/07/16}
+\date{Version 2.13, 2024/08/21}
\maketitle
\begin{abstract}
@@ -162,6 +162,7 @@ The list of features includes:
\begin{itemize}
\setlength\itemsep{0pt}
\item Omit or hide selected author names, with a specific indication of co-authors in the former case
+ \item Indicate author roles
\item Filter publications of specific authors from heterogeneous bibliography databases
\item Date-centric sorting (as typical for publication lists)
\item Number items in ascending or descending order, globally or sectional
@@ -226,7 +227,7 @@ out and the collaborators added in parentheses, as in:
If \joption{plauthorhandling=highlight} is used (see next section), the plauthor(s)
will be printed in bold face instead, as in:
\begin{itemize}
-\item[{[2]}] Doe, John, \textbf{Myself, Me} and Hall, Mary, \textbf{1987}. Are there new trends
+\item[{[2]}] Doe, John, \textbf{Myself, Me}, and Hall, Mary. \textbf{1987}. Are there new trends
in gardening? In: \emph{Gardening Practice} 24, pp.~10--15.
\end{itemize}
%
@@ -258,6 +259,10 @@ By default, the publist author (as defined with \jcsmacro{plauthorname}) is omit
the author or editor list. If you use the option \joption{plauthorhandling=highlight},
it is highlighted instead (set in bold face by default; see sec.~\ref{sec:auxmacros} how to change that).
+\item [{\joption{annotations=\{comma-separated list\}}}]
+
+A list of data annotations that should be handled in output. See sec.~\ref{sec:annotations} for details.
+
\item [{\joption{nameorder{[}=family-given|given-family{]}}}] default: \emph{family-given}.
By default, the author and editor names with \joption{plauthorhandling=highlight} are output in the order \enquote{Lastname, Given Names}.
@@ -329,6 +334,11 @@ with abbreviated and full first name (\textsc{J. Doe} and well as \textsc{John D
works of colleagues with the same surname (maybe your family members), which you will not want to mark as your own's.
Of course, the solution does not help if there is an entry with same surname and same first name initial (such as \textsc{Jane Doe}).
+\item [{\joption{citinfo{[}=true|false{]}}}] default: \emph{false}.
+
+If this option is \joption{true}, the number of citations, as specified via the \texttt{citations} field
+(see section~\ref{sec:citinfo}), will be appended to the entries.
+
\item [{\joption{jifinfo{[}=true|false{]}}}] default: \emph{false}.
If this option is \joption{true}, the journal impact factor, as specified via the \texttt{impactfactor} field
@@ -591,6 +601,85 @@ The omission indicator, \jcsmacro*{plnameomission}, can be redefined. The defaul
\newcommand*\plnameomission{\bibellipsis\addcomma\addspace}
\end{lstlisting}
+
+\subsection{Indicating Author Roles}\label{sec:annotations}
+
+If you want to indicate author roles (e.\,g., signify who is corresponding or main author
+of a paper), you need to add this information to the respective entries,
+but you do not want to clutter the author data.
+With \bibltx, separating such extra information from the actual data is well supported
+via the data annotation feature, as in:
+\begin{lstlisting}[morekeywords={[1]{author}}, otherkeywords={author+an}]
+author = {John Doe and Mary Hall and Me Myself},
+author+an = {1=corresponding; 3=main},
+\end{lstlisting}
+%
+where the number (key) refers to the respective name in the list, and the value to the annotation category
+which you can name as you wish.
+Multiple annotations to a single person are possible if you pass multiple comma-separated categories to
+one key, as in \texttt{1=corresponding,main} (please refer to the \bibltx\ manual \cite{bibltx} for details).
+
+To handle such annotations, however, the style file needs to know what to do with what kind of
+annotation. Otherwise annotations are just ignored.
+
+For basic usage, \bpl\ provides some support for such annotations.
+If you pass the annotation categories you have used in the \texttt{*.bib} file as a comma-separated list
+to the \joption{annotations} option,
+\bpl\ will go through these annotations and for each, it
+will print a superscripted symbol in front of the author family name.
+By default this uses a list similar\footnote{If have moved the single dagger (\textdagger) to a later place,
+ since some people associate this with the \enquote*{deceased} indicator.}
+to the one you know from symbolic (\jfcsmacro{thanks}) footnotes
+(in order of the passed category: \textasteriskcentered, \textdaggerdbl, \textsection, \textparagraph,
+\textbardbl, \textdagger, {\textasteriskcentered\textasteriskcentered}, {\textdaggerdbl\textdaggerdbl},
+or {\textdagger\textdagger}). Nine different annotations are supported this way.
+
+With the example given above and \joption{annotations=\{main,correponding\}}, for instance,
+you would get
+\begin{itemize}
+ \item[{[4]}] \textsuperscript{\textdaggerdbl}Doe, John, Hall, Mary, and
+ \textbf{\textsuperscript{\textasteriskcentered}Myself, Me} \ldots
+\end{itemize}
+%
+Of course, each category always gets the same symbol within a publication list, so you can add a caption
+to explain those. For easy access to the symbols, you can use \jcsmacro*{GetAnnotSymbol}\jmacro{\{category\}}.
+This prints the respective symbol in formatted way (superscripted with default settings).
+A starred version of the command prints it without such formatting.
+
+If you want a different list of symbols, or need more, you can change it by means of the macro
+\jcsmacro*{SetAnnotSymbols}\jmacro{\{comma-separated list of symbols/macros\}}.
+This will overwrite the default list.
+
+You can also change the position of the symbol. The default definition is
+\begin{lstlisting}[morekeywords={[1]{mkbibnamefamily,bplannot}}]
+\renewcommand*{\mkbibnamefamily}[1]{\bplannot #1}
+\end{lstlisting}
+%
+with \jcsmacro{bplannot} being the annotation. You can move it after the name, or to another name
+part (e.g., \jfcsmacro{mkbibnamegiven}).
+
+To change the formatting, you can redefine
+\begin{lstlisting}[morekeywords={[1]{mkbplannot,textsuperscript}}]
+\newcommand*\mkbplannot[1]{\textsuperscript{#1}}
+\end{lstlisting}
+%
+If you need a different markup (such as coloring or underlining) you need to set up
+your own annotation handling as documented in the \bibltx\ manual.
+
+With \joption{plauthorhandling=omit}, the annotations of the omitted publist author(s)
+are appended to the entry (as an annotation and with the specific entry-related information
+discussed in the next section). If a \jfcsmacro{bibstring}
+\texttt{annot:<category>} exists (predefined keys are \texttt{annot:main} and
+\texttt{annot:corresponding}), the respective localized string is output, otherwise
+the verbatim category.
+
+So, again with the example given above, you would get:
+\begin{itemize}
+ \item[{[4]}] \ldots\ (with John \textsuperscript{\textdaggerdbl}Doe and Mary Hall)
+ \ldots\ [Main auth.].
+\end{itemize}
+
+
\subsection{Adding Specific Entry-Related Information}
Publication lists usually contain some information which is not commonly given in normal
@@ -612,6 +701,17 @@ in a specific \texttt{@xdata} subset (please refer to the \bibltx\ documentation
If the option \joption{jifinfo} is true, then \bpl\ will append the respective information to the entries.
A specific localizable bibkey is used for this purpose (see section~\ref{sec:localization}).
+
+\subsubsection{Number of Citations}\label{sec:citinfo}
+
+Another common quantification of \enquote*{impact} is the number of citations of a publication
+(by other publications).
+To track this, \bpl\ provides a specific database field, \texttt{citations}.
+
+If the option \joption{citinfo} is true, then \bpl\ will append the respective information to the entries.
+A specific localizable bibkey is used for this purpose (see section~\ref{sec:localization}).
+
+
\subsubsection{Peer Review}\label{sec:peerreview}
It is common, and sometimes mandatory, to add information to publication list entries indicating if
@@ -780,6 +880,9 @@ on your setting of the \bibltx\ option \joption{abbreviate}):
\begin{description}
\setlength{\itemsep}{0pt}
+\item[annot:corresponding] the expression \enquote{corresponding author} (short form: \enquote{corr. auth.}).
+\item[annot:main] the expression \enquote{main author} (short form: \enquote{main auth.}).
+\item[citations] the expression \enquote{citations} (short form: \enquote{cit.}).
\item[impactfactor] the expression \enquote{impact factor} (short form: \enquote{JIF}).
\item[openaccess:true] the expression \enquote{OpenAccess} (short form: \enquote{OA}).
\item[openaccess:gold] the phrase \enquote{OpenAccess (gold)} (short form: \enquote{OA (gold)}).
@@ -1059,6 +1162,15 @@ until further change).
\section{Revision Log}
\begin{description}
+ \item [{V. 2.13 (2024/08/21):}]~
+ \begin{itemize}
+ \item Add basic support for author annotations (see sec.~\ref{sec:annotations}).
+ \item Add support for information about number of citations (see sec.~\ref{sec:citinfo}).
+ \item Add support for \jcsmacro{citesecitem} and \jcsmacro{citesecitem*} in descending
+ order.
+ \item Fix \jcsmacro{citeitem} in first refsection.
+ \end{itemize}
+
\item [{V. 2.12 (2024/07/16):}]~
\begin{itemize}
\item Externalize localization to \texttt{*.lbx} files.
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/UKenglish-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/UKenglish-publist.lbx
index 320c493f40..0b5cce13f5 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/UKenglish-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/UKenglish-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{UKenglish-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist UK English localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/USenglish-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/USenglish-publist.lbx
index f20be86b76..cc6526761d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/USenglish-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/USenglish-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{USenglish-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist US English localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/american-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/american-publist.lbx
index ae889e0216..5476f022ab 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/american-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/american-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{american-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist US English localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/australian-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/australian-publist.lbx
index ae6d96e932..0df359aa82 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/australian-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/australian-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{australian-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist AU English localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/austrian-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/austrian-publist.lbx
index 0ad5c4119e..0a82a48b77 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/austrian-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/austrian-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{austrian-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist Austrian localisation (JSP)]
@@ -35,8 +35,9 @@
% Localizations
\DeclareBibliographyStrings{%
inherit = {austrian},
- parttranslationof = {{Teil\"ubersetzung von}{Teil\"ubers\adddotspace von}},
+ peerreview:pp = {{Post-Publication-Begutachtung}{Post-Pub\adddot-Beg\adddot}},
with = {{mit}{mit}},
+ citations = {{Zitationen}{Zit\adddot}},
impactfactor = {{Impactfaktor}{JIF}},
openaccess:true = {{OpenAccess}{OA}},
openaccess:gold = {{OpenAccess (gold)}{OA (gold)}},
@@ -48,7 +49,9 @@
peerreview:cc = {{Cascading-Begutachtung}{Cascading-Beg\adddot}},
peerreview:tp = {{Begutachtung durch Dritte}{Beg\adddotspace durch Dritte}},
peerreview:pp = {{Post-Publication-Begutachtung}{Post-Pub\adddot-Beg\adddot}},
- peerreview:no = {{keine Begutachtung}{keine Beg\adddot}}
+ peerreview:no = {{keine Begutachtung}{keine Beg\adddot}},
+ annot:main = {{Hauptautor}{Hauptaut\adddot}},
+ annot:corresponding = {{Korrespondenzautor}{Korr.-aut\adddot}}
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/british-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/british-publist.lbx
index dbfe613118..b1dbaea5be 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/british-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/british-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{british-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist UK English localisation (JSP)]
@@ -37,6 +37,7 @@
inherit = {british},
parttranslationof = {{partial translation of}{part\adddotspace trans\adddotspace of}},
with = {{with}{with}},
+ citations = {{citations}{cit\adddot}},
impactfactor = {{impact factor}{JIF}},
openaccess:true = {{OpenAccess}{OA}},
openaccess:gold = {{OpenAccess (gold)}{OA (gold)}},
@@ -48,7 +49,9 @@
peerreview:cc = {{cascading peer review}{casc\adddotspace peer rev\adddot}},
peerreview:tp = {{third-party peer review}{3rd-party peer rev\adddot}},
peerreview:pp = {{post-publication peer review}{post-pub\adddotspace peer rev\adddot}},
- peerreview:no = {{no peer review}{no peer rev\adddot}}
+ peerreview:no = {{no peer review}{no peer rev\adddot}},
+ annot:main = {{main author}{main auth\adddot}},
+ annot:corresponding = {{corresponding author}{corr\adddotspace auth\adddot}}
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/canadian-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/canadian-publist.lbx
index f92334b5ba..288c694155 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/canadian-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/canadian-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{canadian-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist CDN English localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/english-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/english-publist.lbx
index a51deb5583..a9dc25db89 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/english-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/english-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{english-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist English localisation (JSP)]
@@ -37,6 +37,7 @@
inherit = {english},
parttranslationof = {{partial translation of}{part\adddotspace trans\adddotspace of}},
with = {{with}{with}},
+ citations = {{citations}{cit\adddot}},
impactfactor = {{impact factor}{JIF}},
openaccess:true = {{OpenAccess}{OA}},
openaccess:gold = {{OpenAccess (gold)}{OA (gold)}},
@@ -48,7 +49,9 @@
peerreview:cc = {{cascading peer review}{casc\adddotspace peer rev\adddot}},
peerreview:tp = {{third-party peer review}{3rd-party peer rev\adddot}},
peerreview:pp = {{post-publication peer review}{post-pub\adddotspace peer rev\adddot}},
- peerreview:no = {{no peer review}{no peer rev\adddot}}
+ peerreview:no = {{no peer review}{no peer rev\adddot}},
+ annot:main = {{main author}{main auth\adddot}},
+ annot:corresponding = {{corresponding author}{corr\adddotspace auth\adddot}}
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/french-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/french-publist.lbx
index e49a00b8c8..e2f982b03c 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/french-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/french-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{french-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist French localisation (JSP)]
@@ -37,6 +37,7 @@
inherit = {french},
parttranslationof = {{traduction partielle de}{trad\adddotspace part\adddotspace de}},
with = {{avec}{avec}},
+ citations = {{citations}{cit\adddot}},
impactfactor = {{facteur d'impact}{FI}},
openaccess:true = {{libre acc\`es}{libre acc\`es}},
openaccess:gold = {{libre acc\`es (dorée)}{libre acc\`es (dorée)}},
@@ -48,7 +49,9 @@
peerreview:cc = {{\'{e}valuation par les pairs en cascade}{\'{e}val\adddotspace par les pairs en cascade}},
peerreview:tp = {{\'{e}valuation par des pairs ext\'{e}rieurs}{\'{e}val\adddotspace par des pairs ext\adddot}},
peerreview:pp = {{\'{e}valuation par les pairs apr\`{e}s publication}{\'{e}val\adddotspace par les pairs apr\`{e}s pub\adddot}},
- peerreview:no = {{pas d'\'{e}valuation par les pairs}{pas d'\'{e}val\adddotspace par les pairs}}
+ peerreview:no = {{pas d'\'{e}valuation par les pairs}{pas d'\'{e}val\adddotspace par les pairs}},
+ annot:main = {{auteur principale}{aut\adddotspace princ\adddot}},
+ annot:corresponding = {{auteur correspondant}{aut\adddotspace corr\adddot}}
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/german-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/german-publist.lbx
index c7b4570f06..e67d8d44b1 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/german-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/german-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{german-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist German localisation (JSP)]
@@ -37,6 +37,7 @@
inherit = {german},
parttranslationof = {{Teil\"ubersetzung von}{Teil\"ubers\adddotspace von}},
with = {{mit}{mit}},
+ citations = {{Zitationen}{Zit\adddot}},
impactfactor = {{Impactfaktor}{JIF}},
openaccess:true = {{OpenAccess}{OA}},
openaccess:gold = {{OpenAccess (gold)}{OA (gold)}},
@@ -48,7 +49,9 @@
peerreview:cc = {{Cascading-Begutachtung}{Cascading-Beg\adddot}},
peerreview:tp = {{Begutachtung durch Dritte}{Beg\adddotspace durch Dritte}},
peerreview:pp = {{Post-Publication-Begutachtung}{Post-Pub\adddot-Beg\adddot}},
- peerreview:no = {{keine Begutachtung}{keine Beg\adddot}}
+ peerreview:no = {{keine Begutachtung}{keine Beg\adddot}},
+ annot:main = {{Hauptautor}{Hauptaut\adddot}},
+ annot:corresponding = {{Korrespondenzautor}{Korr.-aut\adddot}}
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/naustrian-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/naustrian-publist.lbx
index 85e0c9a92c..3b202fe459 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/naustrian-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/naustrian-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{naustrian-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist Austrian localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/newzealand-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/newzealand-publist.lbx
index 4f9d872e9d..504410f851 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/newzealand-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/newzealand-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{newzealand-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist NZ English localisation (JSP)]
@@ -37,6 +37,7 @@
inherit = {newzealand},
parttranslationof = {{partial translation of}{part\adddotspace trans\adddotspace of}},
with = {{with}{with}},
+ citations = {{citations}{cit\adddot}},
impactfactor = {{impact factor}{JIF}},
openaccess:true = {{OpenAccess}{OA}},
openaccess:gold = {{OpenAccess (gold)}{OA (gold)}},
@@ -48,7 +49,9 @@
peerreview:cc = {{cascading peer review}{casc\adddotspace peer rev\adddot}},
peerreview:tp = {{third-party peer review}{3rd-party peer rev\adddot}},
peerreview:pp = {{post-publication peer review}{post-pub\adddotspace peer rev\adddot}},
- peerreview:no = {{no peer review}{no peer rev\adddot}}
+ peerreview:no = {{no peer review}{no peer rev\adddot}},
+ annot:main = {{main author}{main auth\adddot}},
+ annot:corresponding = {{corresponding author}{corr\adddotspace auth\adddot}}
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/ngerman-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/ngerman-publist.lbx
index 54f65ef383..185cbe903a 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/ngerman-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/ngerman-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{ngerman-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist German localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/nswissgerman-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/nswissgerman-publist.lbx
index be8a9d148a..a2f1813b38 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/nswissgerman-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/nswissgerman-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{nswissgerman-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist Swiss German localisation (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/swissgerman-publist.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/swissgerman-publist.lbx
index 5d4be275ab..9bc6f05118 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/swissgerman-publist.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/lbx/swissgerman-publist.lbx
@@ -23,8 +23,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{swissgerman-publist.lbx}[\bpl@rdate\space v.\bpl@version\space
biblatex-publist Swiss German localisation (JSP)]
@@ -37,6 +37,7 @@
inherit = {swissgerman},
parttranslationof = {{Teil\"ubersetzung von}{Teil\"ubers\adddotspace von}},
with = {{mit}{mit}},
+ citations = {{Zitationen}{Zit\adddot}},
impactfactor = {{Impactfaktor}{JIF}},
openaccess:true = {{OpenAccess}{OA}},
openaccess:gold = {{OpenAccess (gold)}{OA (gold)}},
@@ -48,7 +49,9 @@
peerreview:cc = {{Cascading-Begutachtung}{Cascading-Beg\adddot}},
peerreview:tp = {{Begutachtung durch Dritte}{Beg\adddotspace durch Dritte}},
peerreview:pp = {{Post-Publication-Begutachtung}{Post-Pub\adddot-Beg\adddot}},
- peerreview:no = {{keine Begutachtung}{keine Beg\adddot}}
+ peerreview:no = {{keine Begutachtung}{keine Beg\adddot}},
+ annot:main = {{Hauptautor}{Hauptaut\adddot}},
+ annot:corresponding = {{Korrespondenzautor}{Korr.-aut\adddot}}
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx
index 371a06232b..d3f31a7a03 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx
@@ -25,8 +25,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{publist.bbx}[\bpl@rdate\space v.\bpl@version\space
biblatex bibliography style (JSP)]
@@ -61,13 +61,14 @@
\newtoggle{bpl@linktitleissn}
\newtoggle{bpl@linktitleurl}
\newtoggle{bpl@linktitledoi}
+\newtoggle{bpl@citinfo}
\newtoggle{bpl@jifinfo}
\newtoggle{bpl@prinfo}
\toggletrue{bpl@prinfo}
\newtoggle{bpl@oainfo}
\newtoggle{bpl@oainfosimple}
\newif\if@bpl@reversenum\@bpl@reversenumfalse
-
+\def\bpl@annots{}
% Valid options
%
@@ -188,6 +189,9 @@
},
plnumbering.default:n = { global },
plnumbering.usage:n = preamble,
+ % annotations=<csv>
+ % Store author name prefix
+ annotations.tl_set:N = \bpl@annots,
% linktitles=<all|url|doi|isbn|issn|none>
linktitles .multichoice:,
% Link all titles
@@ -233,6 +237,18 @@
\toggletrue{bpl@linktitle}
},
linktitles.default:n = { all },
+ % citinfo=<true|false>
+ % Information about citation numbers
+ citinfo.code:n =
+ {
+ \str_if_eq:nnTF { #1 } { true }
+ {
+ \toggletrue{bpl@citinfo}
+ }{
+ \togglefalse{bpl@citinfo}
+ }
+ },
+ citinfo.default:n = { true },
% jifinfo=<true|false>
% Impact factor information
jifinfo.code:n =
@@ -428,6 +444,7 @@
\DeclareBibliographyOption{plauthorhandling}[omit]{\ExecutePublistOptions{plauthorhandling=#1}}
\DeclareBibliographyOption{nameorder}[family-given]{\ExecutePublistOptions{nameorder=#1}}
\DeclareBibliographyOption{plsorting}[ydt]{\ExecutePublistOptions{plsorting=#1}}
+\DeclareBibliographyOption{annotations}{\ExecutePublistOptions{annotations={#1}}}
\DeclareBibliographyOption{plnumbering}[global]{\ExecutePublistOptions{plnumbering=#1}}
\DeclareBibliographyOption{marginyear}[true]{\ExecutePublistOptions{marginyear=#1}}
@@ -437,6 +454,7 @@
\DeclareBibliographyOption{jifinfo}[true]{\ExecutePublistOptions{jifinfo=#1}}
\DeclareBibliographyOption{oainfo}[simple]{\ExecutePublistOptions{oainfo=#1}}
\DeclareBibliographyOption{prinfo}[true]{\ExecutePublistOptions{prinfo=#1}}
+\DeclareBibliographyOption{citinfo}[true]{\ExecutePublistOptions{citinfo=#1}}
\DeclareBibliographyOption{linktitles}[all]{\ExecutePublistOptions{linktitles={#1}}}% Extra braces needed (multichoice)
@@ -986,23 +1004,37 @@
% Print the labelnumber as the total number of entries in the
% current refsection, minus the actual labelnumber, plus one
\ifbool{plnumgroup}{%
- \number\numexpr\csuse{bpl@itemtotal}-#1+1\relax%
+ \xdef\bpl@current@item@no{\number\numexpr\csuse{bpl@itemtotal}-#1+1\relax}%
+ \bpl@current@item@no%
}{%
\ifcsdef{bpl@secitems:\therefsection}{%
- \number\numexpr\csuse{bpl@secitems:\therefsection}-#1+1%
- +\csuse{bpl@shift@itemtotal}\relax%
+ \xdef\bpl@current@item@no{\number\numexpr\csuse{bpl@secitems:\therefsection}-#1+1%
+ +\csuse{bpl@shift@itemtotal}\relax}%
+ \bpl@current@item@no%
}{%
- \number\numexpr\csuse{bpl@itemtotal}-#1+1\relax%
+ \xdef\bpl@current@item@no{\number\numexpr\csuse{bpl@itemtotal}-#1+1\relax}%
+ \bpl@current@item@no%
}%
}%
}{%
% Use decreasing counter
\ifcsdef{bpl@items:\theprevrefsection}{%
- \number\numexpr\csuse{bpl@itemtotal}-#1+1-\csuse{bpl@items:\theprevrefsection}\relax%
+ \xdef\bpl@current@item@no{\number\numexpr\csuse{bpl@itemtotal}-#1+1%
+ -\csuse{bpl@items:\theprevrefsection}\relax}%
+ \bpl@current@item@no%
}{%
- \number\numexpr\csuse{bpl@itemtotal}-#1+1\relax%
+ \xdef\bpl@current@item@no{\number\numexpr\csuse{bpl@itemtotal}-#1+1\relax}%
+ \bpl@current@item@no%
}%
}%
+ % Store number in pbx file
+ \if@filesw%
+ \protected@write\bpl@bpxfile{}{%
+ \csedef{bpl@itemnumber:\thefield{entrykey}}{\bpl@current@item@no}%
+ \csedef{bpl@itemsec:\thefield{entrykey}}{\therefsection}%
+ \csedef{bpl@itemtotal}{\csuse{bpl@itemtotal}}%
+ }%
+ \fi%
}%
\renewrobustcmd{\mkbibsecstart}[1]{%
\setcounter{prevrefsection}{\therefsection}%
@@ -1037,6 +1069,64 @@
\fi
}%
+%
+% Data annotation
+%
+
+\newcommand*\mkbplannot[1]{\textsuperscript{#1}}
+
+% Symbol helpers
+\ExplSyntaxOn
+ \clist_new:N \l_bpl_annot_symbols
+ \cs_new_nopar:Npn \SetAnnotSymbols #1
+ {
+ \clist_gset:Nn \l_bpl_annot_symbols { #1 }
+ }
+ \SetAnnotSymbols
+ { \textasteriskcentered, \textdaggerdbl, \textsection, \textparagraph,
+ \textbardbl, \textdagger, {\textasteriskcentered\textasteriskcentered},
+ {\textdaggerdbl\textdaggerdbl}, {\textdagger\textdagger}
+ }
+ % get symbol by position (int)
+ \cs_new_nopar:Npn \bpl@get@annot@symbol #1
+ {
+ \clist_item:Nn \l_bpl_annot_symbols { #1 }
+ }
+\ExplSyntaxOff
+
+% get symbol by category name
+\NewDocumentCommand\GetAnnotSymbol { s m }{
+ \edef\tmpa{}%
+ \setcounter{annotsymb}{1}%
+ \renewcommand*{\do}[1]{%
+ \ifstrequal{#2}{##1}
+ {\edef\tmpa{\bpl@get@annot@symbol{\theannotsymb}}}%
+ {}%
+ \stepcounter{annotsymb}%
+ }%
+ \expandafter\docsvlist\expandafter{\bpl@annots}%
+ \IfBooleanTF{#1}{\tmpa}{\mkbplannot{\tmpa}}%
+}
+
+% handle the annotations as passed by annotations option
+\AtEndOfPackage{%
+\ifx\bpl@annots\empty\else
+ % helper function for annotations
+ \newcounter{annotsymb}
+ \newcommand*\bplannot{%
+ \setcounter{annotsymb}{1}%
+ \renewcommand*{\do}[1]{%
+ \ifitemannotation{##1}
+ {\mkbplannot{\bpl@get@annot@symbol{\theannotsymb}}}%
+ {}%
+ \stepcounter{annotsymb}%
+ }%
+ \expandafter\docsvlist\expandafter{\bpl@annots}%
+ }
+ % do annotation in family names
+ \renewcommand*{\mkbibnamefamily}[1]{\bplannot #1}
+\fi
+}
%
% New environment for (foreign) reviews
@@ -1078,6 +1168,13 @@
}
%
+% Citation info
+%
+\DeclareFieldFormat{citations}{%
+ \bibstring{citations}\addcolon\addspace#1%
+}
+
+%
% Impact factor
%
\DeclareFieldFormat{impactfactor}{%
@@ -1379,6 +1476,26 @@
\iftoggle{isplauthor}%
{% <- TRUE condition
\global\toggletrue{hadplauthor}%
+ \ifx\bpl@annots\empty\else
+ \gdef\bpl@extra@annots{}%
+ \renewcommand*{\do}[1]{%
+ \ifitemannotation{##1}
+ {%
+ \iftoggle{bpl@have@extrainfo}%
+ {\gappto\bpl@extra@annots{\plextrainfosep\ifbibstring{annot:##1}%
+ {\bibstring{annot:##1}}%
+ {##1}}%
+ }%
+ {\gappto\bpl@extra@annots{\ifbibstring{annot:##1}%
+ {\bibstring{annot:##1}}%
+ {##1}}%
+ }%
+ \toggletrue{bpl@have@extrainfo}%
+ }%
+ {}%
+ }%
+ \expandafter\docsvlist\expandafter{\bpl@annots}%
+ \fi%
}% <- end TRUE condition
{% <- FALSE condition
\stepcounter{nonpl#1}%
@@ -1402,7 +1519,7 @@
{\ifdefvoid{\namepartgiven}{}{\mkbibnamegiven{\namepartgiven}\addspace}}%
\ifdefvoid{\namepartprefix}{}{\mkbibnameprefix{\namepartprefix}\addspace}%
\global\togglefalse{plauthorprecedes}%
- \namepartfamily%
+ \mkbibnamefamily{\namepartfamily}%
}%
}% <- end FALSE condition
%
@@ -1741,6 +1858,12 @@
}%
}
+%
+% Extra information
+%
+
+\def\bpl@extra@annots{}
+
\newtoggle{bpl@have@extrainfo}
\renewbibmacro*{addendum+pubstate}{%
@@ -1762,14 +1885,35 @@
not test {\iffieldundef{impactfactor}}
and test {\iftoggle{bpl@jifinfo}}
)
+ or
+ (
+ not test {\iffieldundef{citations}}
+ and test {\iftoggle{bpl@citinfo}}
+ )
+ or
+ (
+ not test {\ifcsvoid{bpl@extra@annots}}
+ )
}{%
\newunit\newblock%
\printtext[plextrainfo]{%
+ \ifx\bpl@extra@annots\empty\else
+ \bpl@extra@annots%
+ \toggletrue{bpl@have@extrainfo}%
+ \fi
\ifboolexpr{ not test {\iffieldundef{peerreview}}
and test {\iftoggle{bpl@prinfo}}
}{%
- \toggletrue{bpl@have@extrainfo}%
+ \iftoggle{bpl@have@extrainfo}{\plextrainfosep}{}%
\printfield{peerreview}%
+ \toggletrue{bpl@have@extrainfo}%
+ }{}%
+ \ifboolexpr{ not test {\iffieldundef{citations}}
+ and test {\iftoggle{bpl@citinfo}}
+ }{%
+ \iftoggle{bpl@have@extrainfo}{\plextrainfosep}{}%
+ \printfield{citations}%
+ \toggletrue{bpl@have@extrainfo}%
}{}%
\ifboolexpr{ not test {\iffieldundef{openaccess}}
and test {\iftoggle{bpl@oainfo}}
@@ -1795,6 +1939,7 @@
\DeclareLanguageMappingSuffix{-publist}
% publist-specific bibstrings
+\NewBibliographyString{citations}
\NewBibliographyString{with}
\NewBibliographyString{parttranslationof}
\NewBibliographyString{impactfactor}
@@ -1809,6 +1954,8 @@
\NewBibliographyString{peerreview:tp}
\NewBibliographyString{peerreview:pp}
\NewBibliographyString{peerreview:no}
+\NewBibliographyString{annot:main}
+\NewBibliographyString{annot:corresponding}
%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx
index 8176810996..d384445d63 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx
@@ -26,8 +26,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{2.12}
-\def\bpl@rdate{2024/07/16}
+\def\bpl@version{2.13}
+\def\bpl@rdate{2024/08/21}
\ProvidesFile{publist.cbx}[\bpl@rdate\space v.\bpl@version\space
biblatex citation style (JSP)]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx
index 9e4b798f8c..27cb4068f5 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx
@@ -1,5 +1,5 @@
% publist.dbx, biblatex data model specification for the biblatex-publist
-% package, version 2.12 (2024/07/16).
+% package, version 2.13 (2024/08/21).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -22,11 +22,13 @@
% Add peerreview and openaccess (literal) field
\DeclareDatamodelFields[type=field, datatype=literal]{
+ citations,
impactfactor,
openaccess,
peerreview}
\DeclareDatamodelEntryfields{
+ citations,
impactfactor,
openaccess,
peerreview}
diff --git a/macros/latex/contrib/bmstu-iu8/README.md b/macros/latex/contrib/bmstu-iu8/README.md
index 3deb2658c2..f5a699970b 100644
--- a/macros/latex/contrib/bmstu-iu8/README.md
+++ b/macros/latex/contrib/bmstu-iu8/README.md
@@ -1,6 +1,6 @@
# IU8 package
-Version: v1.2 (released 13.06.2021).
+Version: v1.4 (released 2024/09/09).
This package consist of class file and style files for writing
reports at the IU8 department of IU faculty of BMSTU
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-example.pdf b/macros/latex/contrib/bmstu-iu8/bmstu-example.pdf
index 26654efeff..b13b2d86c8 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-example.pdf
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls
index e50cde4c75..ebd30e1991 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{BMSTU-IU8}[2020/06/01 IU8 class]
+\ProvidesClass{BMSTU-IU8}[2024/09/09 IU8 class]
\LoadClass{article}
@@ -26,28 +26,28 @@
\RequirePackage[russian]{babel}
\RequirePackage{hyphsubst}
-\RequirePackage{01-IU8-base}
-\RequirePackage{02-IU8-construction}
-\RequirePackage{03-IU8-numbering}
-\RequirePackage{04-IU8-section-numbering}
-\RequirePackage{05-IU8-figures}
-\RequirePackage{06-IU8-tables}
-\RequirePackage{07-IU8-footnotes}
-\RequirePackage{08-IU8-formulas}
-\RequirePackage{09-IU8-cites}
-\RequirePackage{10-IU8-titlepage}
-\RequirePackage{11-IU8-performers}
-\RequirePackage{12-IU8-abstract}
-\RequirePackage{13-IU8-contents}
-\RequirePackage{14-IU8-terms-and-definitions}
-\RequirePackage{15-IU8-list-of-abbreviations}
-\RequirePackage{16-IU8-references}
-\RequirePackage{17-IU8-appendices}
-\RequirePackage{18-IU8-extra}
-\RequirePackage{19-IU8-counters}
-\RequirePackage{20-IU8-listing}
-\RequirePackage{21-IU8-math}
-\RequirePackage{22-IU8-algorithms}
+\RequirePackage{IU8-01-base}
+\RequirePackage{IU8-02-construction}
+\RequirePackage{IU8-03-numbering}
+\RequirePackage{IU8-04-section-numbering}
+\RequirePackage{IU8-05-figures}
+\RequirePackage{IU8-06-tables}
+\RequirePackage{IU8-07-footnotes}
+\RequirePackage{IU8-08-formulas}
+\RequirePackage{IU8-09-cites}
+\RequirePackage{IU8-10-titlepage}
+\RequirePackage{IU8-11-performers}
+\RequirePackage{IU8-12-abstract}
+\RequirePackage{IU8-13-contents}
+\RequirePackage{IU8-14-terms-and-definitions}
+\RequirePackage{IU8-15-list-of-abbreviations}
+\RequirePackage{IU8-16-references}
+\RequirePackage{IU8-17-appendices}
+\RequirePackage{IU8-18-extra}
+\RequirePackage{IU8-19-counters}
+\RequirePackage{IU8-20-listing}
+\RequirePackage{IU8-21-math}
+\RequirePackage{IU8-22-algorithms}
\RequirePackage{csquotes}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/DEPENDS.txt b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/DEPENDS.txt
new file mode 100644
index 0000000000..8176df3e7e
--- /dev/null
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/DEPENDS.txt
@@ -0,0 +1,38 @@
+algorithm2e
+amscls
+anyfontsize
+babel
+bookmark
+tools
+caption
+chngcntr
+csquotes
+enumitem
+fancyhdr
+float
+geometry
+glossaries
+glossaries-extra
+graphics
+oberdiek
+lastpage
+lineno
+listings
+multirow
+nowidow
+koma-script
+setspace
+fontspec
+stackengine
+tabto-ltx
+titlesec
+totcount
+ulem
+xassoccnt
+xcolor
+xltabular
+xstring
+ltablex # Here (and below) go some dependencies of dependencies
+biblatex
+ifoddpage
+relsize
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/16-IU8-references.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/16-IU8-references.sty
deleted file mode 100644
index 7a51a9235a..0000000000
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/16-IU8-references.sty
+++ /dev/null
@@ -1,18 +0,0 @@
-% Author: CatInCosmicSpace
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{16-IU8-references}[2021/03/21 v1.2 Список использованных источников]
-
-% Сведения об источниках следует располагать в порядке появления ссылок на
-% источники в тексте отчета и нумеровать арабскими цифрами с точкой и печатать
-% с абзацного отступа.
-\usepackage[
- backend=biber,
- style=gost-numeric,
- sorting=none,
- % refsection=structure,
- % sorting=ynt,
-]{biblatex}
-\defbibheading{bibliography}[СПИСОК~ИСПОЛЬЗОВАННЫХ~ИСТОЧНИКОВ]{\structure{#1}}
-\addto{\captionsrussian}{%
- \renewcommand{\contentsname}{СОДЕРЖАНИЕ}
-}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/01-IU8-base.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-01-base.sty
index f3df2d3f5e..11533ec0e7 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/01-IU8-base.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-01-base.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{01-IU8-base}[2021/03/21 v1.2 Общие требования]
+\ProvidesPackage{IU8-01-base}[2024/09/09 v1.4 Общие требования]
% 6.1.1 Изложение текста и оформление отчета выполняют в соответствии с
% требованиями настоящего стандарта. Страницы текста отчета о НИР и включенные в
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/02-IU8-construction.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-02-construction.sty
index b94615c003..3825090729 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/02-IU8-construction.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-02-construction.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{02-IU8-construction}[2021/03/21 v1.2 Построение отчета]
+\ProvidesPackage{IU8-02-construction}[2024/09/09 v1.4 Построение отчета]
% 6.2.1 Наименования структурных элементов отчета:
% "СПИСОК ИСПОЛНИТЕЛЕЙ", % у нас не используется
@@ -25,10 +25,11 @@
\renewcommand{\thestructure}{} % Убрать появление счётчика в содержании
\titleclass{\structure}{straight}[\section]
\titleformat{\structure}[hang]{\clearpage\normalfont\bfseries\centering}{}{0em}{}
-\titlespacing*{\structure}{0pt}{0pt}{2\baselineskip}
+\titlespacing*{\structure}{0pt}{0pt}{1em}
\titlecontents{structure}{}{}{}{}
\renewcommand*\l@structure{\@dottedtocline{0}{0mm}{0em}}
+
\newcommand{\structurebreak}{\clearpage}
\newcommand{\sectionbreak}{\clearpage}
@@ -54,6 +55,14 @@
\titlespacing*{\paragraph}{0pt}{2ex}{2ex}[2ex]
\titlespacing*{\subparagraph}{0pt}{2ex}{2ex}[2ex]
+\makeatletter
+\renewcommand*\l@section{\@dottedtocline{0}{12.5mm}{2em}}
+\renewcommand*\l@structure{\@dottedtocline{0}{12.5mm}{0em}}
+\renewcommand*\l@subsection{\@dottedtocline{1}{12.5mm}{3em}}
+\renewcommand*\l@subsubsection{\@dottedtocline{2}{12.5mm}{4em}}
+\renewcommand*\l@paragraph{\@dottedtocline{3}{12.5mm}{5em}}
+\makeatother
+
% 6.2.4 Если заголовок включает несколько предложений, их разделяют точками.
% Переносы слов в заголовках не допускаются.
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/03-IU8-numbering.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-03-numbering.sty
index b8696c01f3..7e0ed595e1 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/03-IU8-numbering.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-03-numbering.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{03-IU8-numbering}[2021/03/21 v1.2 Нумерация страниц отчета]
+\ProvidesPackage{IU8-03-numbering}[2024/09/09 v1.4 Нумерация страниц отчета]
% 6.3.1 Страницы отчета следует нумеровать арабскими цифрами, соблюдая сквозную
% нумерацию по всему тексту отчета, включая приложения. Номер страницы
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/04-IU8-section-numbering.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-04-section-numbering.sty
index 839c34816e..ec865d745b 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/04-IU8-section-numbering.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-04-section-numbering.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{04-IU8-section-numbering}[2021/03/21 v1.2 Нумерация разделов, подразделов, пунктов, подпунктов и книг отчета]
+\ProvidesPackage{IU8-04-section-numbering}[2024/09/09 v1.4 Нумерация разделов, подразделов, пунктов, подпунктов и книг отчета]
% 6.4.1 Разделы должны иметь порядковые номера в пределах всего отчета,
% обозначенные арабскими цифрами без точки и расположенные с абзацного отступа.
@@ -10,7 +10,7 @@
% подразделы, могут состоять из одного или нескольких пунктов.
% Это настройка по умолчанию, так что её не меняю
-% Про абзацный отступ учетно в 02-IU8-construction
+% Про абзацный отступ учетно в IU8-02-construction
% 6.4.2 Если отчет не имеет подразделов, то нумерация пунктов в нем должна
% быть в пределах каждого раздела и номер пункта должен состоять из номеров
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/05-IU8-figures.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-05-figures.sty
index 7210da5245..f8536ffed1 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/05-IU8-figures.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-05-figures.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{05-IU8-figures}[2021/03/21 v1.2 Иллюстрации]
+\ProvidesPackage{IU8-05-figures}[2024/09/09 v1.4 Иллюстрации]
% 6.5.1 Иллюстрации (чертежи, графики, схемы, компьютерные распечатки, диаграммы,
% фотоснимки) следует располагать в отчете непосредственно после текста отчета,
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/06-IU8-tables.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-06-tables.sty
index eedb9d94df..52e8358a39 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/06-IU8-tables.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-06-tables.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{06-IU8-tables}[2021/03/21 v1.2 Таблицы]
+\ProvidesPackage{IU8-06-tables}[2024/09/09 v1.4 Таблицы]
% Пакеты, которые скорее всего пригодятся
\RequirePackage{tabularx}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/07-IU8-footnotes.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-07-footnotes.sty
index 689cdd0337..2dd2f6e42b 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/07-IU8-footnotes.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-07-footnotes.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{07-IU8-footnotes}[2021/03/21 v1.2 Примечания и сноски]
+\ProvidesPackage{IU8-07-footnotes}[2024/09/09 v1.4 Примечания и сноски]
% 6.7.1 Примечания приводят в отчете, если необходимы пояснения или справочные
% данные к содержанию текста, таблиц или графического материала.
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/08-IU8-formulas.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-08-formulas.sty
index aa65770e77..8e4c8ef43a 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/08-IU8-formulas.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-08-formulas.sty
@@ -1,5 +1,5 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{08-IU8-formulas}[2021/03/21 v1.2 Формулы]
+\ProvidesPackage{IU8-08-formulas}[2024/09/09 v1.4 Формулы]
% Настройки по умолчанию в целом соответствуют ГОСТ \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/09-IU8-cites.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-09-cites.sty
index 651f2a3e4e..fb5d4f13cd 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/09-IU8-cites.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-09-cites.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{09-IU8-cites}[2021/03/21 v1.2 Ссылки]
+\ProvidesPackage{IU8-09-cites}[2024/09/09 v1.4 Ссылки]
% 6.9.1 В отчете о НИР рекомендуется приводить ссылки на использованные
% источники. При нумерации ссылок на документы, использованные при составлении
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/10-IU8-titlepage.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-10-titlepage.sty
index e9834bc07b..fb5e8c949f 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/10-IU8-titlepage.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-10-titlepage.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{10-IU8-titlepage}[2021/03/21 v1.2 Титульный лист]
+\ProvidesPackage{IU8-10-titlepage}[2024/09/09 v1.4 Титульный лист]
% Поля для заполнения для ВКР
\def\student#1{\gdef\@student{#1}}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/11-IU8-performers.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-11-performers.sty
index 14b659de63..20ba0e0c48 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/11-IU8-performers.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-11-performers.sty
@@ -1,5 +1,5 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{11-IU8-performers}[2021/03/21 v1.2 Список исполниетелей]
+\ProvidesPackage{IU8-11-performers}[2024/09/09 v1.4 Список исполниетелей]
% Т.к. у нас это не используется, я оставляю это пустымы \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/12-IU8-abstract.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-12-abstract.sty
index 946d3360bc..1c389e08f4 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/12-IU8-abstract.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-12-abstract.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{12-IU8-abstract}[2021/03/21 v1.2 Реферат]
+\ProvidesPackage{IU8-12-abstract}[2024/09/09 v1.4 Реферат]
% 6.12.1 Сведения об общем объеме отчета, количестве книг отчета, иллюстраций,
% таблиц, использованных источников, приложений являются первой компонентой
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/13-IU8-contents.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-13-contents.sty
index bf51955ac0..c19a7b41b1 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/13-IU8-contents.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-13-contents.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{13-IU8-contents}[2021/03/21 v1.2 Содержание]
+\ProvidesPackage{IU8-13-contents}[2024/09/09 v1.4 Содержание]
% Каждую запись содержания оформляют как отдельный абзац, выровненный влево.
% Номера страниц указывают выровненными по правому краю поля и соединяют
@@ -17,13 +17,16 @@
% ГОСТ 7.32-2017. Пункт 5.4.1:
% Обозначения подразделов приводят после абзацного отступа,
% равного двум знакам, относительно обозначения разделов.
-\renewcommand*\l@subsection{\@dottedtocline{1}{5mm}{3em}}
+\renewcommand*\l@section{\@dottedtocline{1}{5mm}{3em}}
+\renewcommand*\l@subsection{\@dottedtocline{1}{10mm}{3em}}
% ГОСТ 7.32-2017. Пункт 5.4.1:
% Обозначения пунктов приводят после абзацного отступа,
% равного четырем знакам, относительно обозначения разделов.
-\renewcommand*\l@subsubsection{\@dottedtocline{2}{10mm}{4em}}
+\renewcommand*\l@subsubsection{\@dottedtocline{2}{15mm}{4em}}
% Остальное - индуктивно
\renewcommand*\l@paragraph{\@dottedtocline{3}{15mm}{5em}}
+
\setcounter{secnumdepth}{5} % Глубина заголовков - до пятого уровня
\setcounter{tocdepth}{2} % Глубина содержания - до второго уровня
+
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-14-terms-and-definitions.sty
index e3e15e2d2e..544d077a73 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-14-terms-and-definitions.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{14-IU8-terms-and-definitions}[2021/03/21 v1.2 Содержание]
+\ProvidesPackage{IU8-14-terms-and-definitions}[2024/09/09 v1.4 Содержание]
\RequirePackage[
acronym,
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-15-list-of-abbreviations.sty
index d8345fdd1f..ff904e74ee 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-15-list-of-abbreviations.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{15-IU8-list-of-abbreviations}[2021/03/21 v1.2 Содержание]
+\ProvidesPackage{IU8-15-list-of-abbreviations}[2024/09/09 v1.4 Содержание]
\RequirePackage[abbreviations]{glossaries-extra}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-16-references.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-16-references.sty
new file mode 100644
index 0000000000..6236003c9b
--- /dev/null
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-16-references.sty
@@ -0,0 +1,39 @@
+% Author: CatInCosmicSpace
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{IU8-16-references}[2024/09/09 v1.4 Список использованных источников]
+
+% Сведения об источниках следует располагать в порядке появления ссылок на
+% источники в тексте отчета и нумеровать арабскими цифрами с точкой и печатать
+% с абзацного отступа.
+\usepackage[
+ backend=biber,
+ style=gost-numeric,
+ sorting=none,
+ % refsection=structure,
+ % sorting=ynt,
+]{biblatex}
+
+\defbibenvironment{bibliography}
+ {\list
+ {}
+ {\setlength{\leftmargin}{1.25cm}
+ \setlength{\itemindent}{0em}
+ \setlength{\itemsep}{\bibitemsep}
+ \setlength{\parsep}{\bibparsep}}}
+ {\endlist}
+ {\item\printtext[labelnumberwidth]{\printfield{labelprefix}\printfield{labelnumber}}\addspace}
+
+\defbibheading{bibliography}[СПИСОК~ИСПОЛЬЗОВАННЫХ~ИСТОЧНИКОВ]{\structure{#1}}
+\addto{\captionsrussian}{%
+ \renewcommand{\contentsname}{СОДЕРЖАНИЕ}
+}
+
+\DefineBibliographyStrings{russian}{%
+ urlseen = {дата обращения},
+}
+
+% Специально изменим шрифт для URL, чтобы он соответсвовал ГОСТ и остальному тексту документа
+\renewcommand{\UrlFont}{\normalfont}
+
+% Изменяем шрифт для авторов в списке литературы на обычный
+\renewcommand{\mkgostheading}[1]{\normalfont{#1}} \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/17-IU8-appendices.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-17-appendices.sty
index 025e70b5c8..9881ec6498 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/17-IU8-appendices.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-17-appendices.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{17-IU8-appendices}[2021/03/21 v1.2 Приложения]
+\ProvidesPackage{IU8-17-appendices}[2024/09/09 v1.4 Приложения]
\newcommand{\appendixsection}[1]{
\stepcounter{apps}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/18-IU8-extra.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-18-extra.sty
index 6fb1570340..9999fd77df 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/18-IU8-extra.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-18-extra.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{18-IU8-extra}[2021/03/21 v1.2 Разные улучшения]
+\ProvidesPackage{IU8-18-extra}[2024/09/09 v1.4 Разные улучшения]
\RequirePackage{graphicx}
@@ -23,3 +23,18 @@
} % Кликабельные ссылки в pdf
\hbadness=10000
+
+\setlist[enumerate]{
+ leftmargin=\parindent,
+ labelindent=\parindent,
+ align=left,
+ nosep,
+}
+
+\setlist[itemize]{
+ label=\textendash,
+ leftmargin=\parindent,
+ labelindent=\parindent,
+ align=left,
+ nosep,
+}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/19-IU8-counters.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-19-counters.sty
index 991f9f4d43..b0c49532dc 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/19-IU8-counters.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-19-counters.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{19-IU8-counters}[2021/03/21 v1.2 Счётчики]
+\ProvidesPackage{IU8-19-counters}[2024/09/09 v1.4 Счётчики]
\RequirePackage{calc}
\RequirePackage{xassoccnt}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/20-IU8-listing.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-20-listing.sty
index c90194a1d2..85b7f9e2fa 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/20-IU8-listing.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-20-listing.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{20-IU8-listing}[2021/03/21 v1.2 Листинги]
+\ProvidesPackage{IU8-20-listing}[2024/09/09 v1.4 Листинги]
\RequirePackage{listings}
\RequirePackage{xcolor}
@@ -10,7 +10,7 @@
\lstdefinestyle{IU8}{
frame=single,
- backgroundcolor=\color{seashell},
+ % backgroundcolor=\color{seashell},
commentstyle=\color{blue},
keywordstyle=\color{magenta},
basicstyle=\ttfamily\footnotesize,
@@ -36,3 +36,25 @@
\newcommand{\listing}[2][]{%
\lstinputlisting[caption={\texttt{\detokenize{#2}}},#1]{#2}%
}
+
+\lstnewenvironment{codelisting}[1][]
+{
+\lstset{
+ frame=single,
+ % backgroundcolor=\color{seashell},
+ commentstyle=\color{blue},
+ keywordstyle=\color{magenta},
+ basicstyle=\ttfamily\footnotesize,
+ breakatwhitespace=false,
+ breaklines=true,
+ captionpos=tl,
+ keepspaces=false,
+ showspaces=false,
+ showstringspaces=false,
+ showtabs=false,
+ extendedchars=\true,
+ tabsize=2,
+ #1
+}
+}
+{} \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/21-IU8-math.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-21-math.sty
index b60a4fd6d2..bda74f008c 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/21-IU8-math.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-21-math.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{21-IU8-math}[2021/03/21 v1.2 Математика]
+\ProvidesPackage{IU8-21-math}[2024/09/09 v1.4 Математика]
\RequirePackage{amsthm}
\theoremstyle{definition}
diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/22-IU8-algorithms.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-22-algorithms.sty
index f3fdcee25e..7232bccaaa 100644
--- a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/22-IU8-algorithms.sty
+++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/IU8-22-algorithms.sty
@@ -1,6 +1,6 @@
% Author: CatInCosmicSpace
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{22-IU8-algorithms}[2021/03/21 v1.2 Алгоритмы]
+\ProvidesPackage{IU8-22-algorithms}[2024/09/09 v1.4 Алгоритмы]
\RequirePackage[linesnumbered,boxruled]{algorithm2e}
\SetAlCapSty{}
diff --git a/macros/latex/contrib/bxpdfver/LICENSE b/macros/latex/contrib/bxpdfver/LICENSE
index b6b8b92330..f6ebffefca 100644
--- a/macros/latex/contrib/bxpdfver/LICENSE
+++ b/macros/latex/contrib/bxpdfver/LICENSE
@@ -1,6 +1,6 @@
The MIT License
-Copyright (c) 2014-2022 Takayuki YATO (aka. "ZR")
+Copyright (c) 2014-2024 Takayuki YATO (aka. "ZR")
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/macros/latex/contrib/bxpdfver/README-ja.md b/macros/latex/contrib/bxpdfver/README-ja.md
index 0f0955d378..ea1a7e4ee1 100644
--- a/macros/latex/contrib/bxpdfver/README-ja.md
+++ b/macros/latex/contrib/bxpdfver/README-ja.md
@@ -43,16 +43,20 @@ bxpdfver パッケージ
* `objcompress`(既定): オブジェクトストリームの使用を抑止しない。
* ドライバオプション: 以下の通り。なお、後述の「ドライバ指定」の
節も参照されたい。
- + PDF 出力のエンジンの場合は、既定で適切なドライバが選択される
+ + LaTeX の新 PDF マネジメントが有効化されている場合は、自動的に
+ “latex-pdf”モードに切り替わる。ドライバオプションは不要である。
+ + PDF 出力のエンジンの場合は、自動的に適切なドライバが選択される
のでドライバオプションは不要である。
+ `dvipdfmx`: dvipdfmx 用のドライバを指定する。
+ `nodvidriver`/`disabled`: 全ての機能を無効化する。
※この場合 `lenient+` が既定になる。
+ + `ignorepdfmanagement`: “latex-pdf”モードへの切替を抑止する。
* `lenient`: サポートしない機能に対するエラーを警告に格下げする。
* `lenient+`: サポートしない機能に対するエラーを完全に抑止する。
* `nolenient`(既定): `lenient(+)` の否定。
* `new-dvipdfmx`: dvipdfmx に対するバージョン検査を省略し、常に最新の
- バージョンであると仮定する。
+ バージョンであると仮定する。
+ ※ドライバオプションが `dvipdfmx` に変更される。
`compress`、`objcompress` はこのパッケージによる抑止を行わないという意味
であり、既に抑止されている場合にそれを再び有効化するものではない。
@@ -72,41 +76,61 @@ bxpdfver パッケージ
* `\preservepdfdestinations`: PDF 目的地(PDF destination)の名前の
短縮を抑止し、TeX 文書で指定された名前を用いる。異なる PDF 文書間で
のリンクを正常に機能させるために必要である。
+ * `\setpdfpkresolution{<解像度>}`: PDF に埋め込まれる PK フォントの
+ 解像度(dpi 値)を指定する。
### ドライバ指定に関する補足
\ Drivers (engines) pdfTeX dvipdfmx
- Features / LuaTeX / XeTeX others
- --------------------------- --------- --------- ------
- \setpdfversion Yes Yes No
- \suppresspdfcompression Yes Maybe(*2) No
- \suppresspdfobjcompression Yes Maybe(*2) No
+ Features / LuaTeX / XeTeX latex-pdf
+ --------------------------- --------- --------- ---------
+ \setpdfversion Yes Yes Yes
+ \suppresspdfcompression Yes Maybe(*2) Yes(*4)
+ \suppresspdfobjcompression Yes Maybe(*2) Yes(*4)
\setpdfdecimaldigits Yes Maybe(*2) No
\preservepdfdestinations No-op(*1) Maybe(*2) No
+ \setpdfpkresolution Yes Maybe(*3) No
1. pdfTeX/LuaTeX では PDF 目的地の名前が短縮されるることはない。つまり
`\preservepdfdestinations` は常に有効になっていると見なせる。
- 2. これらの機能を使用するためには、(x)dvipdfmx のバージョンが 20160307
- 以上である必要がある。
- - バージョン判定のために kpsewhich と extractbb の起動を利用する
- ため、少なくともこれらのプログラムについて、シェルエスケープが
- 許可されている必要がある。
- - dvipdfmx のバージョン情報は補助ファイル(.aux)中にキャッシュ
- される。このため、何か状況が変わった場合は、一旦補助ファイルを
- 削除する必要が生じる。
+ 2. (x)dvipdfmx のバージョンが 20160307 以上である必要がある。
+ 3. (x)dvipdfmx のバージョンが 20211016 以上である必要がある。
+ 4. `\suppresspdfcompression` と `\suppresspdfobjcompression` については
+ 一方を実行すると他方も自動的に有効になる。l3pdf モジュールで片方のみ
+ を有効化することはサポートされないからである。
+
+dvipdfmx のバージョン判定について:
+
+ - 必要が生じた場合にのみバージョン判定が実行される。
+ - `new-dvipdfmx` オプションを指定した場合は、バージョン判定を全て
+ 省略した上で、最新の dvipdfmx を使用していると見なす。
+ - バージョン判定のために kpsewhich と extractbb の起動を利用するため、
+ 少なくともこれらのプログラムについて、シェル実行が許可されている
+ 必要がある。
+ - バージョン判定は少し時間がかかるため、dvipdfmx のバージョン情報は
+ 補助ファイル(.aux)中にキャッシュされる。このため、何か状況が変化
+ した場合は、一旦補助ファイルを削除する必要が生じる。
以下のことにも注意されたい。
- * 使用不可能な機能を使おうと試みるとエラーが発生する。
+ * 使用不可能な機能を使おうと試みるとエラーが発生する。
+ ※`lenient` オプションが指定された場合はエラーが警告に変更され、
+ また `lenient+` が指定された場合はエラーも警告も抑止される。
* `dvips` 等の“全く対応していない”若干のドライバオプションを認識
する。この場合、全ての機能の呼出でエラーが発生する。
- * `nodvidriver` は特殊で、これを指定した場合は、どの機能の呼出でも
- エラーは発生しないが、全く何の動作も行わない。
+ * `nodvidriver` オプションは既定で `lenient+` を指定する。つまり、
+ どの機能の呼出でもエラーは発生しないが、全く何の動作も行わない。
更新履歴
--------
+ * Version 0.8 ‹2024/08/03›
+ - カーネルの新 PDF マネジメントが有効な場合にも一部の機能が使える
+ ようにする(“latex-pdf”モード)。
+ * Version 0.7 ‹2024/07/24›
+ - `\setpdfpkresolution` を(正式に)サポート。(dvipdfmx/XeTeX
+ でも使用可能になった。)
* Version 0.6 ‹2022/04/28›
- `lenient+`/`nolenient` オプションを追加。
- 非サポートのドライバでも読込自体はエラーにしない。
diff --git a/macros/latex/contrib/bxpdfver/README.md b/macros/latex/contrib/bxpdfver/README.md
index 332b6215f1..1b78b5da1c 100644
--- a/macros/latex/contrib/bxpdfver/README.md
+++ b/macros/latex/contrib/bxpdfver/README.md
@@ -44,11 +44,16 @@ The available options are:
* `noobjcompress`: Suppresses use of object streams.
* `objcompress` (default): Does not suppress use of object streams.
* Driver options: As below:
+ + When the new PDF management of LaTeX is activated, the package
+ will automatically switch to “latex-pdf” mode. You need not
+ give driver options.
+ When using a PDF-output engine, you need not give driver options
since the appropriate one is auto-detected.
+ `dvipdfmx`: Uses dvipdfmx driver.
+ `nodvidriver`/`disabled`: Disables all functions of the package.
NB. This option sets `lenient+` by default.
+ * `ignorepdfmanagement`: Avoids switching to “latex-pdf” mode, even
+ when the new PDF management of LaTeX is activated.
* `lenient`: Turns the errors for unsupported features into warnings.
* `lenient+`: Suppreseses the errors for unsupported features.
* `nolenient`: Negation of `lenient(+)`.
@@ -72,40 +77,61 @@ when it is already suppressed by other means.
* `\preservepdfdestinations`: Stops shortening the PDF destination
names and uses the original names given in the LaTeX documents. This
is necessary for cross-document links to work correctly.
+ * `\setpdfpkresolution{<resolution>}`: Sets the resolution (in dpi)
+ of the PK fonts embedded in the PDF file.
### NOTE ON DRIVERS
\ Drivers (engines) pdfTeX dvipdfmx
- Features / LuaTeX / XeTeX others
- --------------------------- --------- --------- ------
- \setpdfversion Yes Yes No
- \suppresspdfcompression Yes Maybe(*2) No
- \suppresspdfobjcompression Yes Maybe(*2) No
+ Features / LuaTeX / XeTeX latex-pdf
+ --------------------------- --------- --------- ---------
+ \setpdfversion Yes Yes Yes
+ \suppresspdfcompression Yes Maybe(*2) Yes(*4)
+ \suppresspdfobjcompression Yes Maybe(*2) Yes(*4)
\setpdfdecimaldigits Yes Maybe(*2) No
\preservepdfdestinations No-op(*1) Maybe(*2) No
+ \setpdfpkresolution Yes Maybe(*3) No
1. In pdfTeX and LuaTeX, PDF destination names are never shortened;
that is, it can be thought as if `\preservepdfdestinations` were
always in effect.
2. These features are available only when the version of (x)dvipdfmx
- is 20160307 or later. Also shell escape must be accepted (with or
- without restriction) so that `kpsewhich` and `extractbb` will be
- allowed to run, because those programs are used in order to detect
- the dvipdfmx version.
+ is 20160307 or later.
+ 3. These features are available only when the version of (x)dvipdfmx
+ is 20211016 or later.
+ 4. As for '\suppresspdfcompression' and '\suppresspdfobjcompression',
+ when one of them is executed, the other will be activated. It is
+ because l3pdf module does not support activating only one of them.
+
+On the detection of dvipdfmx version:
+
+ * Shell escape must be accepted (with or without restriction) so that
+ `kpsewhich` and `extractbb` will be allowed to run, because those
+ programs are used in order to detect the dvipdfmx version.
+ * The detection process is slow, so the result is cached in the
+ auxiliary file (`.aux`). When the environment is changed, you need
+ to delete the auxiliary file.
More notices:
- * If you try to use unavailable features, an error will occur.
+ * If you try to use unavailable features, an error will occur.
+ NB. Option `lenient` turns the errors into warnings, and `lenient+`
+ completely suppresses the errors.
* The package recognizes some “unsupported” driver options such as
`dvips`; when such drivers are used, use of any feature will cause
an error.
- * The use of `nodvidriver` sets `lenient*` by default; use of any
+ * The use of `nodvidriver` sets `lenient+` by default; use of any
feature will do nothing (nor issue an error).
REVISION HISTORY
----------------
+ * Version 0.8 ‹2024/08/03›
+ - Support some features even when the new PDF management of the
+ LaTeX kernel is activated (“latex-pdf” mode).
+ * Version 0.7 ‹2024/07/24›
+ - Support (officialy) `\setpdfpkresolution`.
* Version 0.6 ‹2022/04/28›
- Added the `lenient+` and `nolenient` options.
* Version 0.5a ‹2021/02/14›
diff --git a/macros/latex/contrib/bxpdfver/bxpdfver.sty b/macros/latex/contrib/bxpdfver/bxpdfver.sty
index ccc9825f6f..296774068c 100644
--- a/macros/latex/contrib/bxpdfver/bxpdfver.sty
+++ b/macros/latex/contrib/bxpdfver/bxpdfver.sty
@@ -1,7 +1,7 @@
%%
%% This is file 'bxpdfver.sty'.
%%
-%% Copyright (c) 2014-2022 Takayuki YATO (aka. "ZR")
+%% Copyright (c) 2014-2024 Takayuki YATO (aka. "ZR")
%% GitHub: https://github.com/zr-tex8r
%% Twitter: @zr_tex8r
%%
@@ -10,12 +10,8 @@
%% package declaration
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{bxpdfver}[2022/04/28 v0.6]
+\ProvidesPackage{bxpdfver}[2024/08/03 v0.8]
\def\bxpv@pkgname{bxpdfver}
-
-%% preparations
-\RequirePackage{ifthen}[]% for \newboolean
-\newif\ifbxpv@ok
\providecommand\bxDebug[1]{}
%--------------------------------------- package options
@@ -124,13 +120,23 @@
\fi
\fi
-%--------------------------------------- helpers
+%--------------------------------------- general
+
+%% packages
+\RequirePackage{ifthen}[]% for \newboolean
+
+%% variables
+\newif\ifbxpv@ok
%% unique tokens
\def\bxpv@end{\bxpv@end@}
\def\bxpv@mt{\bxpv@mt@}
\let\bxpv@mk\noindent
+%% \ifbxpv@read@file@ok
+% Whether or not the last \bxpv@read@file succeeded.
+\newif\ifbxpv@read@file@ok
+
%% \bxpv@csletcs
\def\bxpv@csletcs#1#2{%
\expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname
@@ -144,6 +150,13 @@
\def#3{#2}%
}
+%% \bxpv@info{<message>}
+% Issues an info message.
+\@onlypreamble\bxpv@info
+\def\bxpv@info#1{%
+ \PackageInfo\bxpv@pkgname{#1\@gobble}%
+}
+
%% \bxpv@warn{<message>}
% Issues a warning.
\@onlypreamble\bxpv@warn
@@ -175,17 +188,61 @@
}
%% \ifbxpv@defined
-\let\ifbxpv@defined\ifdefined
-\ifx\ifbxpv@defined\@undefined \expandafter\@firstofone
-\else \expandafter\@gobble
-\fi{\let\ifbxpv@defined\iffalse}
+% Identical to \ifdefined, and is used only in e-TeX-aware code.
+% On non-e-TeX engines it is made \iffalse to keep \if-balancedness.
+\bxpv@csletcs{ifbxpv@defined}{%
+ if\ifx\ifdefined\@undefined false\else defined\fi}
+
+%% \bxpv@begin@document@hook
+% The begin-document hook.
+\@onlypreamble\bxpv@begin@document@hook
+\let\bxpv@begin@document@hook\@empty
+\AtBeginDocument{\bxpv@begin@document@hook}
+
+%--------------------------------------- environment check
%% \ifbxpv@old@hook@system
\newif\ifbxpv@old@hook@system
\@ifl@t@r\fmtversion{2020/10/01}{}{\bxpv@old@hook@systemtrue}
+%% \ifbxpv@pdfmanagement@ok
+% Whether this package is supporting the LaTeX PDF management
+% of the current kernel.
+% (If the PDF management is active but this switch is off,
+% then this package will switch to no-op mode.)
+\newif\ifbxpv@pdfmanagement@ok
+
+%% check for new PDF management
+\if t\bxpv@ignore@pdfmanagement\else
+ \ifx\IfPDFManagementActiveTF\@undefined\else
+ \IfPDFManagementActiveTF{%
+ \let\bxpv@drv@type=m%
+ \def\bxpv@drv@name{latex-pdf}%
+ \@ifl@t@r\fmtversion{2022/06/01}{%
+ \bxpv@pdfmanagement@oktrue
+ }{}
+ }{}
+ \fi
+\fi
+\ifx m\bxpv@drv@type
+ \ifbxpv@pdfmanagement@ok
+ \bxpv@warn
+ {New PDF management is active.\MessageBreak
+ The driver is set to '\bxpv@drv@name'}%
+ % Here \ExplSyntaxOn should be available.
+ \else
+ \bxpv@warn
+ {New PDF management is active, but\MessageBreak
+ the kernel is too old (before 2022/06/01).\MessageBreak
+ Thus this package will not work}%
+ \fi
+\fi
+
%--------------------------------------- internal dispatchers
+% Initially all dispatchers are "unavailable".
+% They are later redefined according to the driver type.
+
%% \bxpv@suppress@compress
\@onlypreamble\bxpv@suppress@compress
\def\bxpv@suppress@compress{%
@@ -224,25 +281,11 @@
\@onlypreamble\bxpv@cancel@obj@compress
\let\bxpv@cancel@obj@compress\relax
-%% \bxpv@begin@document@hook
-% The begin-document hook.
-\@onlypreamble\bxpv@begin@document@hook
-\let\bxpv@begin@document@hook\@empty
-\AtBeginDocument{\bxpv@begin@document@hook}
\g@addto@macro\bxpv@begin@document@hook{%
\bxpv@check@hyperref % must come first
}
-%% check for new PDF management
-\if t\bxpv@ignore@pdfmanagement\else
- \ifx\IfPDFManagementActiveTF\@undefined\else
- \IfPDFManagementActiveTF{%
- \global\let\bxpv@drv@type=m%
- }{}
- \fi
-\fi
-
-%% adjust internal dispatchers
+%% Redefine internal dispatchers.
\ifx 0\bxpv@drv@type\else %--------
\begingroup
@@ -264,9 +307,31 @@
%% switch
\if m\bxpv@drv@type
- %% when in new PDF management
- \bxpv@warn
- {New PDF management is active}%
+ \ifbxpv@pdfmanagement@ok
+ % Here all l3pdf function is assumed to be available.
+ \gdef\bxpv@check@version{\bxpv@oktrue}
+ \ExplSyntaxOn %!!!!!!
+ \tl_new:N \g__bxpv_org_version
+ \exp_args:NNe \tl_gset:Nn \g__bxpv_org_version { \pdf_version: }
+ \cs_gset:Npn \bxpv@set@version
+ {
+ \token_if_eq_meaning:NNTF \bxpdfverMinorVersion \relax
+ { \pdf_version_gset:n { \g__bxpv_org_version } }
+ {
+ \pdf_version_gset:n
+ {
+ \int_use:N \bxpdfverMajorVersion
+ . \int_use:N \bxpdfverMinorVersion
+ }
+ }
+ }
+ % \pdf_uncompress: does both.
+ \cs_gset:Npn \bxpv@suppress@compress
+ { \pdf_uncompress: }
+ \cs_gset:Npn \bxpv@suppress@obj@compress
+ { \pdf_uncompress: }
+ \ExplSyntaxOff %!!!!!!
+ \fi
\else\ifnum\bxpv@pdfoutput>\z@
%% when in PDF mode
\global\let\bxpv@drv@type=p
@@ -386,12 +451,14 @@
\bxpv@warn
{Unsupported engine}%
\else\if d\bxpv@drv@type % 'dvipdfmx'
+ % All the real settings are done in the begin-document hook,
+ % so the dispatchers themselves will do nothing (if available).
\global\let\bxpv@suppress@compress\relax
\global\let\bxpv@suppress@obj@compress\relax
\global\let\bxpv@check@version\relax
\global\let\bxpv@set@version\relax
\global\let\bxpv@set@decimaldigits\relax
- %\global\let\bxpv@set@pkresolution\relax
+ \global\let\bxpv@set@pkresolution\relax
\global\let\bxpv@preserve@destinations\relax
\g@addto@macro\bxpv@begin@document@hook{%
\bxpv@begin@document@dvipdfmx
@@ -671,6 +738,7 @@
\fi
%% variables
+\let\bxpv@dvipdfmx@known@min\relax % minimum known dviodfmx version
\let\bxpv@C@value\relax
%% \bxpv@C@bits
@@ -689,6 +757,7 @@
%% \bxpv@begin@document@dvipdfmx
\@onlypreamble\bxpv@begin@document@dvipdfmx
\def\bxpv@begin@document@dvipdfmx{%
+ \bxpv@get@dvipdfmx@known@min
% PDF version
\ifx\bxpdfverMajorVersion\tw@
\bxpv@check@dvipdfmx@version{20180217}%
@@ -701,8 +770,8 @@
\bxpv@put@special{pdf:minorversion \the\bxpdfverMinorVersion}%
\fi
\ifx\bxpdfverMinorVersion\relax\else
- \bxpv@cache@fetch{dvipdfmxver}%
- \ifnum\bxpv@cache@@dvipdfmxver<20180217 \else
+ \bxpv@at@least@dvipdfmx@version{20180217}%
+ \ifbxpv@ok
\bxpv@put@special{pdf:majorversion \the\bxpdfverMajorVersion}%
\fi
\fi
@@ -734,7 +803,9 @@
\fi
% PK resolution
\ifx\bxpdfverPkResolution\relax\else
- \iffalse % This will never work....
+ \bxpv@check@dvipdfmx@version{20211016}%
+ {Cannot set PK resolution}%
+ \ifbxpv@ok
\bxpv@put@special{dvipdfmx:config r \the\bxpdfverPkResolution}%
\fi
\fi
@@ -748,10 +819,9 @@
\fi
% C option value
\ifx\bxpv@C@bits\@empty\else
- \bxpv@cache@fetch{dvipdfmxcfg}%
- \def\bxpv@next##1##2\bxpv@mk{\def\bxpv@C@value{##1}}%
- \expandafter\bxpv@next\bxpv@cache@@dvipdfmxcfg{0}\bxpv@mk
- \bxpv@rc@bitset{\bxpv@C@value}{64}%
+ % When C option is used, its value is automatically OR'ed with
+ % the current value, so we need not read the config for that.
+ \def\bxpv@C@value{0}%
\def\do##1{%
\bxpv@rc@bitset{\bxpv@C@value}{##1}%
\let\bxpv@C@value\bxpv@rc@num}%
@@ -776,25 +846,67 @@
\fi
}
+%% \bxpv@get@dvipdfmx@known@min
+% Gathers the information and sets \bxpv@dvipdfmx@known@min,
+% without actually spawning extractbb.
+% (Called in the begin-document hook.)
+\@onlypreamble\bxpv@get@dvipdfmx@known@min
+\def\bxpv@get@dvipdfmx@known@min{%
+ % initially no information
+ \def\bxpv@dvipdfmx@known@min{0}%
+ % l3backend-dvipdfmx of revision 2022-04-10 or later requires
+ % dvipdfmx of version 20201111 or later.
+ \def\bxpv@tmpa{def}%
+ \let\bxpv@tmpb\@gobbletwo
+ \@ifl@aded\bxpv@tmpa{l3backend-dvipdfmx}{%
+ \def\bxpv@tmpb{\@ifl@ter\bxpv@tmpa{l3backend-dvipdfmx}}%
+ }{}%
+ % Just in case....
+ \@ifl@aded\bxpv@tmpa{l3backend-dvips}{%
+ \def\bxpv@tmpb{\@ifl@ter\bxpv@tmpa{l3backend-dvips}}%
+ }{}%
+ \bxpv@tmpb{2022/04/10}{%
+ % Now the version is known to be 20201111 or later.
+ % This information can save much need for spawning extractbb.
+ \def\bxpv@dvipdfmx@known@min{20201111}%
+ }{}%
+ \bxDebug{dvipdfmx-known-min:\bxpv@dvipdfmx@known@min}%
+}
+
+%% \bxpv@at@least@dvipdfmx@version{<version>}
+% Checks if dvipdfmx >= <version> and sets bxpv@ok.
+\@onlypreamble\bxpv@at@least@dvipdfmx@version
+\def\bxpv@at@least@dvipdfmx@version#1{%
+ % first check using known-min
+ \ifnum\bxpv@dvipdfmx@known@min<#1
+ % get real version
+ \bxpv@cache@fetch{dvipdfmxver}%
+ \bxpv@info
+ {dvipdfmx version is \bxpv@cache@@dvipdfmxver}%
+ \bxpv@oktrue
+ \ifnum\bxpv@cache@@dvipdfmxver<#1
+ \bxpv@okfalse
+ \fi
+ \else % new enough
+ \bxpv@oktrue
+ \fi
+}
+
%% \bxpv@check@dvipdfmx@version
\@onlypreamble\bxpv@check@dvipdfmx@version
\def\bxpv@check@dvipdfmx@version#1#2{%
- \bxpv@cache@fetch{dvipdfmxver}%
- \bxpv@okfalse
- \ifnum\bxpv@cache@@dvipdfmxver=\z@
+ \bxpv@at@least@dvipdfmx@version{#1}%
+ \ifbxpv@ok % no-op
+ \else\ifnum\bxpv@cache@@dvipdfmxver=\z@
\bxpv@fail
{#2, because the\MessageBreak
version of dvipdfmx in use is unknown
\MessageBreak (v.#1 or later is required)}%
- \else\ifnum\bxpv@cache@@dvipdfmxver<#1
+ \else
\bxpv@fail
{#2, because the\MessageBreak
version of dvipdfmx in use (v.\bxpv@cache@@dvipdfmxver) is too old
\MessageBreak (v.#1 or later is required)}%
- \else
- \PackageInfo\bxpv@pkgname
- {dvipdfmx version is \bxpv@cache@@dvipdfmxver\@gobble}%
- \bxpv@oktrue
\fi\fi
}
@@ -950,10 +1062,6 @@
\let\bxpv@rf@line\relax % line content
\let\bxpv@rf@cont\relax % continue to read?
-%% \ifbxpv@read@file@ok
-% Whether or not the last \bxpv@read@file succeeded.
-\newboolean{bxpv@read@file@ok}
-
%% \bxpv@read@file{<file-name>}{<line-parser-code>}
% Reads from a text file. The line parser takes as #1 the
% content of each line.
diff --git a/macros/latex/contrib/catppuccinpalette/README.md b/macros/latex/contrib/catppuccinpalette/README.md
index 105e5497a4..4efad071ce 100644
--- a/macros/latex/contrib/catppuccinpalette/README.md
+++ b/macros/latex/contrib/catppuccinpalette/README.md
@@ -1,28 +1,75 @@
-# Readme for the package catppuccinPalette
+<h3 align="center">
+ <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/logos/exports/1544x1544_circle.png" width="100" alt="Logo"/><br/>
+ <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
+ Catppuccin for <a href="https://www.latex-project.org/">LaTeX</a>
+ <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
+</h3>
-Author: Lukas Heindl (`oss.heindl+latex@protonmail.com`).
+<p align="center">
+ <a href="https://github.com/catppuccin/latex/stargazers"><img src="https://img.shields.io/github/stars/catppuccin/latex?colorA=363a4f&colorB=b7bdf8&style=for-the-badge"></a>
+ <a href="https://github.com/catppuccin/latex/issues"><img src="https://img.shields.io/github/issues/catppuccin/latex?colorA=363a4f&colorB=f5a97f&style=for-the-badge"></a>
+ <a href="https://github.com/catppuccin/latex/contributors"><img src="https://img.shields.io/github/contributors/catppuccin/latex?colorA=363a4f&colorB=a6da95&style=for-the-badge"></a>
+</p>
-CTAN page: [catppuccinPalette](https://ctan.org/pkg/catppuccinpalette)
+<p align="center">
+ <img src="assets/preview.webp"/>
+</p>
-## License
-The LaTeX package `catppuccinPalette` is distributed under the LPPL 1.3 license.
+## Previews
-## Description
+<details>
+<summary>🌻 Latte</summary>
+<img src="assets/latte.webp"/>
+</details>
+<details>
+<summary>🪴 Frappé</summary>
+<img src="assets/frappe.webp"/>
+</details>
+<details>
+<summary>🌺 Macchiato</summary>
+<img src="assets/macchiato.webp"/>
+</details>
+<details>
+<summary>🌿 Mocha</summary>
+<img src="assets/mocha.webp"/>
+</details>
-The LaTeX package `catppuccinPalette` provides new colors for xcolor.
+## Usage
-## Installation
+### Importing the theme file
+1. The [catppuccinPalette](https://www.ctan.org/pkg/catppuccinpalette) package is present on CTAN, but probably not included in your TeX Live installation. Follow the steps below to install it manually:
+ - Shortcut: If you set up your local `texmf` you should be able to simply install by executing `make install` (this installs the package locally for the current user)
+ - If you don't like installing the package locally for the current user you might also execue `l3build unpack` and move the generated `.sty` file `build/unpacked/catppuccinpalette.sty` to the root directory of your project.
+ - If you don't have `l3build` available, you can also download the `catppuccinpalette.sty` file from the [latest GitHub release](https://github.com/catppuccin/latex/releases/latest) and move the file to your project root.
+2. Import the package by adding `\usepackage[FLAVOR]{catppuccinpalette}`, replacing `FLAVOR` with the flavor of your choice. i.e. `\usepackage[macchiato]{catppuccinpalette}`. Valid options are: mocha (default), latte, frappe, and macchiato.
+ - If you want the package not only to add color definitions, you can also pass `textcolor=true` and/or `pagecolor=true` to the `catppuccinpalette` package.
+ - Also note that in the pdf containing the documentation, the available options are described in more detail and also the defined colors are listed and shown.
-For a manual installation:
+### Color Naming Conventions
-* put the files `catppuccinpalette.ins` and `catppuccinpalette.dtx` in the same directory;
-* run `latex catppuccinpalette.ins` in that directory.
+All [Catppuccin palette colors](https://github.com/catppuccin/catppuccin#-palette), across all flavors, follow the same naming convention. This theme set prefixes all Catppuccin colors with `Ctp`, i.e. `CtpPeach`, or `CtpBlue`.
-The file `catppuccinpalette.sty` will be generated.
-The file `catppuccinpalette.sty` is the only file necessary to use the latex package `catppuccinPalette`.
-You have to put it in the same directory as your document or (best) in a `texmf` tree.
+### Examples
-Simplified version:
+Please refer to the [examples](https://github.com/catppuccin/latex/tree/main/examples) for full demonstrations, with LaTeX sources and their outputs, on theme usage and code highlighting.
+
+## 💝 Thanks to
+
+- [Lukas](https://github.com/atticus-sullivan)
+- [Brandon](https://github.com/walshyb)
+
+&nbsp;
+
+<p align="center">
+ <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true" />
+</p>
+
+<p align="center">
+ Copyright &copy; 2021-present <a href="https://github.com/catppuccin" target="_blank">Catppuccin Org</a>
+</p>
+
+<p align="center">
+ <a href="https://github.com/catppuccin/catppuccin/blob/main/LICENSE"><img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&logoColor=d9e0ee&colorA=363a4f&colorB=b7bdf8"/></a>
+</p>
-* run `l3build unpack` to generate the `.sty` in `build/unpacked/`
diff --git a/macros/latex/contrib/catppuccinpalette/catppuccinpalette.dtx b/macros/latex/contrib/catppuccinpalette/catppuccinpalette.dtx
index f74df5dd95..16d8a60e47 100644
--- a/macros/latex/contrib/catppuccinpalette/catppuccinpalette.dtx
+++ b/macros/latex/contrib/catppuccinpalette/catppuccinpalette.dtx
@@ -1,21 +1,26 @@
% \iffalse meta-comment
%
-% Copyright (C) 2024 by Lukas Heindl <oss.heindl+latex@protonmail.com>
-% ---------------------------------------------------------------------------
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainer of this work is Lukas Heindl.
-%
-% This work consists of the files catppuccinpalette.dtx and catppuccinpalette.ins
-% and the derived filebase catppuccinpalette.sty.
+% MIT License
+%
+% Copyright (c) 2024 Catppuccin
+%
+% Permission is hereby granted, free of charge, to any person obtaining a copy
+% of this software and associated documentation files (the "Software"), to deal
+% in the Software without restriction, including without limitation the rights
+% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+% copies of the Software, and to permit persons to whom the Software is
+% furnished to do so, subject to the following conditions:
+%
+% The above copyright notice and this permission notice shall be included in all
+% copies or substantial portions of the Software.
+%
+% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+% SOFTWARE.
%
% \fi
%
@@ -26,7 +31,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{catppuccinpalette}
%<*package>
- [2024/05/22 v1.0.2 catppuccin xcolor palette]
+ [2024/08/13 v1.1.0 catppuccin xcolor palette]
%</package>
%
%<*driver>
@@ -69,13 +74,15 @@
% \changes{v1.0.0}{2024/02/27}{First full release}
% \changes{v1.0.1}{2024/05/19}{Make fit for CTAN}
% \changes{v1.0.2}{2024/05/19}{Fix colors in documentation}
+% \changes{v1.1.0}{2024/08/13}{Move to / Merge with official catppuccin. Thereby deprecate colors with |Cat| prefix. Subject to removal in the future}
%
% \DoNotIndex{\newcommand,\newenvironment,\color,\colorlet,\def,\fi,\RequirePackage,\ProvidesPackage,\ProcessPgfOptions,\preparecolorset,\pgfkeys,\pagecolor,\newif,\NeedsTeXFormat}
%
+% \providecommand*\pkg{\textsf}
% \providecommand*{\url}{\texttt}
% \GetFileInfo{catppuccinpalette.dtx}
% \title{The \textsf{catppuccinPalette} package}
-% \author{Lukas Heindl \\ \url{oss.heindl+latex@protonmail.com} \\ \url{https://github.com/atticus-sullivan/catpuccinPalette}}
+% \author{Lukas Heindl \\ \url{oss.heindl+latex@protonmail.com} \\ \url{https://github.com/catppuccin/latex}}
% \date{\fileversion~from \filedate}
%
% \maketitle
@@ -95,14 +102,14 @@
%
% Load via |\usepackage{catppuccinpalette}|
%
-% Just use the new colors (prefixed with \verb|Cat<Style>|) like normal xcolors.
+% Just use the new colors (prefixed with \verb|Ctp<Style>|) like normal xcolors.
% In addition to the usual colors of the palette, this package defines some
% colors according to the
% style guide\footnote{\url{https://github.com/catppuccin/catppuccin/blob/main/docs/style-guide.md}}
% for ease of use.
%
% This package also allows you to set a specific style which sets the shortened
-% color names (prefixed only with \verb|Cat|) to the selected style (allows for
+% color names (prefixed only with \verb|Ctp|) to the selected style (allows for
% easy switching style) via the package option \verb|style|.
%
% This package loads xcolor (without options) so if you want to set some xcolor
@@ -113,16 +120,21 @@
% \emph{Option} & \emph{Description}
% \\\toprule
% \verb|style| &
-% set the style used by the shortened prefix (\verb|Cat|). Possible values:
+% set the style used by the shortened prefix (\verb|Ctp|). Possible values:
% \verb|Latte| (default+initial), \verb|latte|, \verb|Frappe|, \verb|frappe|,
-% \verb|Mocha|, \verb|mocha|
+% \verb|Mocha|, \verb|mocha|, \verb|Macchiato|, \verb|macchiato|
+% \\
+% &
+% As a shortcut, you can also just use e.\,g.\,
+% |\usepackage[latte]{catppuccinPalette}| as a shorthand for
+% |\usepackage[style=latte]{catppuccinPalette}|
% \\
% \verb|textcolor| &
-% set the default textcolor of the document to \verb|CatText|. Possible values:
+% set the default textcolor of the document to \verb|CtpText|. Possible values:
% \verb|false| (default+initial), \verb|true|
% \\
% \verb|pagecolor| &
-% set the pagecolor of the document to \verb|CatBackground|. Possible values:
+% set the pagecolor of the document to \verb|CtpBackground|. Possible values:
% \verb|false| (default+initial), \verb|true|
% \\\midrule
% \verb|styleAll| &
@@ -130,50 +142,64 @@
% \\\bottomrule
% \end{tabularx}
%
+% \subsubsection{Change settings mid-document}
+% \DescribeMacro{\CtpReinit} |\CtpReinit[opts]|
+%
+% This command allows to reinitialize this package. All previous configuration
+% options will be kept. In particular this allows to change the active
+% style/flavor mid-document. Note that if you decided this package should
+% change the background color when loading the package and only do
+% |\CptReinit[style=<another style>]|, then the background color will also be
+% adjusted on reinitialization.
+%
+% The command processes the same options like the ones you can pass when
+% loading the package (see documentation above).
+%
% \subsection{Colors}
+% \textbf{Note:} The colors with the prefix |Cat| are deprecated and will be removed in a future version!
% \newcommand{\showCol}[1]{\raisebox{0.5ex}{\fcolorbox{black}{#1}{\hspace{1em}}} #1}
% \foreach \Style in {Latte,Frappe,Macchiato,Mocha}{
% \subsubsection{Style \texttt{\Style}}
% \begin{multicols}{2}
-% \showCol{Cat\Style Blue}\par
-% \showCol{Cat\Style Rosewater}\par
-% \showCol{Cat\Style Flamingo}\par
-% \showCol{Cat\Style Pink}\par
-% \showCol{Cat\Style Mauve}\par
-% \showCol{Cat\Style Red}\par
-% \showCol{Cat\Style Maroon}\par
-% \showCol{Cat\Style Peach}\par
-% \showCol{Cat\Style Yellow}\par
-% \showCol{Cat\Style Green}\par
-% \showCol{Cat\Style Teal}\par
-% \showCol{Cat\Style Sky}\par
-% \showCol{Cat\Style Sapphire}\par
-% \showCol{Cat\Style Blue}\par
-% \showCol{Cat\Style Lavender}\par
-% \showCol{Cat\Style Text}\par
-% \showCol{Cat\Style Subtext1}\par
-% \showCol{Cat\Style Subtext0}\par
-% \showCol{Cat\Style Overlay2}\par
-% \showCol{Cat\Style Overlay1}\par
-% \showCol{Cat\Style Overlay0}\par
-% \showCol{Cat\Style Surface2}\par
-% \showCol{Cat\Style Surface1}\par
-% \showCol{Cat\Style Surface0}\par
-% \showCol{Cat\Style Base}\par
-% \showCol{Cat\Style Mantle}\par
-% \showCol{Cat\Style Crust}\par
+% \showCol{Ctp\Style Blue}\par
+% \showCol{Ctp\Style Rosewater}\par
+% \showCol{Ctp\Style Flamingo}\par
+% \showCol{Ctp\Style Pink}\par
+% \showCol{Ctp\Style Mauve}\par
+% \showCol{Ctp\Style Red}\par
+% \showCol{Ctp\Style Maroon}\par
+% \showCol{Ctp\Style Peach}\par
+% \showCol{Ctp\Style Yellow}\par
+% \showCol{Ctp\Style Green}\par
+% \showCol{Ctp\Style Teal}\par
+% \showCol{Ctp\Style Sky}\par
+% \showCol{Ctp\Style Sapphire}\par
+% \showCol{Ctp\Style Blue}\par
+% \showCol{Ctp\Style Lavender}\par
+% \showCol{Ctp\Style Text}\par
+% \showCol{Ctp\Style Subtext1}\par
+% \showCol{Ctp\Style Subtext0}\par
+% \showCol{Ctp\Style Overlay2}\par
+% \showCol{Ctp\Style Overlay1}\par
+% \showCol{Ctp\Style Overlay0}\par
+% \showCol{Ctp\Style Surface2}\par
+% \showCol{Ctp\Style Surface1}\par
+% \showCol{Ctp\Style Surface0}\par
+% \showCol{Ctp\Style Base}\par
+% \showCol{Ctp\Style Mantle}\par
+% \showCol{Ctp\Style Crust}\par
% \end{multicols}
%
% Some basic colors according to the style guide:
%
% \begin{multicols}{2}
-% \showCol{Cat\Style Background}\par
-% \showCol{Cat\Style Link}\par
+% \showCol{Ctp\Style Background}\par
+% \showCol{Ctp\Style Link}\par
% \phantom{}\par
% \columnbreak
-% \showCol{Cat\Style Success}\par
-% \showCol{Cat\Style Warning}\par
-% \showCol{Cat\Style Error}\par
+% \showCol{Ctp\Style Success}\par
+% \showCol{Ctp\Style Warning}\par
+% \showCol{Ctp\Style Error}\par
% \end{multicols}
%
% }
@@ -201,16 +227,24 @@
% \end{macrocode}
% Define the package option keys
% \begin{macrocode}
+ Latte/.style={style=Latte},
+ latte/.style={style=Latte},
+ Frappe/.style={style=Frappe},
+ frappe/.style={style=Frappe},
+ Macchiato/.style={style=Macchiato},
+ macchiato/.style={style=Macchiato},
+ Mocha/.style={style=Mocha},
+ mocha/.style={style=Mocha},
style/.is choice,
style/.value required,
style/Latte/.code = {\def\catppuccinpalette@style{Latte}},
- style/latte/.forward to = /catppuccinPalette/style/Latte,
+ style/latte/.style = {style=Latte},
style/Frappe/.code = {\def\catppuccinpalette@style{Frappe}},
- style/frappe/.forward to = /catppuccinPalette/style/frappe,
+ style/frappe/.style = {style=Frappe},
style/Macchiato/.code = {\def\catppuccinpalette@style{Macchiato}},
- style/macchiato/.forward to = /catppuccinPalette/style/Macchiato,
+ style/macchiato/.style = {style=Macchiato},
style/Mocha/.code = {\def\catppuccinpalette@style{Mocha}},
- style/mocha/.forward to = /catppuccinPalette/style/Mocha,
+ style/mocha/.style = {style=Mocha},
textcolor/.is if = catppuccinpalette@textcolor,
textcolor/.default = true,
pagecolor/.is if = catppuccinpalette@pagecolor,
@@ -223,7 +257,7 @@
pagecolor = false,
style = Latte,
}
-\ProcessPgfOptions*
+\ProcessPgfOptions{catppuccinPalette}
% \end{macrocode}
% Define the \emph{Latte} colorset
% \begin{macrocode}
@@ -255,14 +289,48 @@
Mantle,230,233,239/E6E9EF;%
Crust,220,224,232/DCE0E8%
}
-% \end{macrocode}
-% Define colors according to the catppuccin style guide
-% \begin{macrocode}
\colorlet{CatLatteBackground}{CatLatteBase}
\colorlet{CatLatteLink}{CatLatteBlue}
\colorlet{CatLatteSuccess}{CatLatteGreen}
\colorlet{CatLatteWarning}{CatLatteYellow}
\colorlet{CatLatteError}{CatLatteRed}
+
+\preparecolorset{RGB/HTML}{CtpLatte}{}{%
+ Rosewater,220,138,120/DC8A78;%
+ Flamingo,221,120,120/DD7878;%
+ Pink,234,118,203/EA76CB;%
+ Mauve,136,57,239/8839EF;%
+ Red,210,15,57/D20F39;%
+ Maroon,230,69,83/E64553;%
+ Peach,254,100,11/FE640B;%
+ Yellow,223,142,29/DF8E1D;%
+ Green,64,160,43/40A02B;%
+ Teal,23,146,153/179299;%
+ Sky,4,165,229/04A5E5;%
+ Sapphire,32,159,181/209FB5;%
+ Blue,30,102,245/1E66F5;%
+ Lavender,114,135,253/7287FD;%
+ Text,76,79,105/4C4F69;%
+ Subtext1,92,95,119/5C5F77;%
+ Subtext0,108,111,133/6C6F85;%
+ Overlay2,124,127,147/7C7F93;%
+ Overlay1,140,143,161/8C8FA1;%
+ Overlay0,156,160,176/9CA0B0;%
+ Surface2,172,176,190/ACB0BE;%
+ Surface1,188,192,204/BCC0CC;%
+ Surface0,204,208,218/CCD0DA;%
+ Base,239,241,245/EFF1F5;%
+ Mantle,230,233,239/E6E9EF;%
+ Crust,220,224,232/DCE0E8%
+}
+% \end{macrocode}
+% Define colors according to the catppuccin style guide
+% \begin{macrocode}
+\colorlet{CtpLatteBackground}{CtpLatteBase}
+\colorlet{CtpLatteLink}{CtpLatteBlue}
+\colorlet{CtpLatteSuccess}{CtpLatteGreen}
+\colorlet{CtpLatteWarning}{CtpLatteYellow}
+\colorlet{CtpLatteError}{CtpLatteRed}
% \end{macrocode}
% Define the styles \emph{Frappe}, \emph{Macchiato} and \emph{Mocha} accordingly
% \begin{macrocode}
@@ -299,6 +367,41 @@
\colorlet{CatFrappeSuccess}{CatFrappeGreen}
\colorlet{CatFrappeWarning}{CatFrappeYellow}
\colorlet{CatFrappeError}{CatFrappeRed}
+
+\preparecolorset{RGB/HTML}{CtpFrappe}{}{%
+ Rosewater,242,213,207/F2D5CF;%
+ Flamingo,238,190,190/EEBEBE;%
+ Pink,244,184,228/F4B8E4;%
+ Mauve,202,158,230/CA9EE6;%
+ Red,231,130,132/E78284;%
+ Maroon,234,153,156/EA999C;%
+ Peach,239,159,118/EF9F76;%
+ Yellow,229,200,144/E5C890;%
+ Green,166,209,137/A6D189;%
+ Teal,129,200,190/81C8BE;%
+ Sky,153,209,219/99D1DB;%
+ Sapphire,133,193,220/85C1DC;%
+ Blue,140,170,238/8CAAEE;%
+ Lavender,186,187,241/BABBF1;%
+ Text,198,208,245/C6D0F5;%
+ Subtext1,181,191,226/B5BFE2;%
+ Subtext0,165,173,206/A5ADCE;%
+ Overlay2,148,156,187/949CBB;%
+ Overlay1,131,139,167/838BA7;%
+ Overlay0,115,121,148/737994;%
+ Surface2,98,104,128/626880;%
+ Surface1,81,87,109/51576D;%
+ Surface0,65,69,89/414559;%
+ Base,48,52,70/303446;%
+ Mantle,41,44,60/292C3C;%
+ Crust,35,38,52/232634%
+}
+\colorlet{CtpFrappeBackground}{CtpFrappeBase}
+\colorlet{CtpFrappeLink}{CtpFrappeBlue}
+\colorlet{CtpFrappeSuccess}{CtpFrappeGreen}
+\colorlet{CtpFrappeWarning}{CtpFrappeYellow}
+\colorlet{CtpFrappeError}{CtpFrappeRed}
+
\preparecolorset{RGB/HTML}{CatMacchiato}{}{%
Rosewater,244,219,214/F4DBD6;%
Flamingo,240,198,198/F0C6C6;%
@@ -332,6 +435,41 @@
\colorlet{CatMacchiatoSuccess}{CatMacchiatoGreen}
\colorlet{CatMacchiatoWarning}{CatMacchiatoYellow}
\colorlet{CatMacchiatoError}{CatMacchiatoRed}
+
+\preparecolorset{RGB/HTML}{CtpMacchiato}{}{%
+ Rosewater,244,219,214/F4DBD6;%
+ Flamingo,240,198,198/F0C6C6;%
+ Pink,245,189,230/F5BDE6;%
+ Mauve,198,160,246/C6A0F6;%
+ Red,237,135,150/ED8796;%
+ Maroon,238,153,160/EE99A0;%
+ Peach,245,169,127/F5A97F;%
+ Yellow,238,212,159/EED49F;%
+ Green,166,218,149/A6DA95;%
+ Teal,139,213,202/8BD5CA;%
+ Sky,145,215,227/91D7E3;%
+ Sapphire,125,196,228/7DC4E4;%
+ Blue,138,173,244/8AADF4;%
+ Lavender,183,189,248/B7BDF8;%
+ Text,202,211,245/CAD3F5;%
+ Subtext1,184,192,224/B8C0E0;%
+ Subtext0,165,173,203/A5ADCB;%
+ Overlay2,147,154,183/939AB7;%
+ Overlay1,128,135,162/8087A2;%
+ Overlay0,110,115,141/6E738D;%
+ Surface2,91,96,120/5B6078;%
+ Surface1,73,77,100/494D64;%
+ Surface0,54,58,79/363A4F;%
+ Base,36,39,58/24273A;%
+ Mantle,30,32,48/1E2030;%
+ Crust,24,25,38/181926%
+}
+\colorlet{CtpMacchiatoBackground}{CtpMacchiatoBase}
+\colorlet{CtpMacchiatoLink}{CtpMacchiatoBlue}
+\colorlet{CtpMacchiatoSuccess}{CtpMacchiatoGreen}
+\colorlet{CtpMacchiatoWarning}{CtpMacchiatoYellow}
+\colorlet{CtpMacchiatoError}{CtpMacchiatoRed}
+
\preparecolorset{RGB/HTML}{CatMocha}{}{%
Rosewater,245,224,220/F5E0DC;%
Flamingo,242,205,205/F2CDCD;%
@@ -360,57 +498,139 @@
Mantle,24,24,37/181825;%
Crust,17,17,27/11111B%
}
-% \end{macrocode}
-% Define shortcuts for active style
-% \begin{macrocode}
\colorlet{CatMochaBackground}{CatMochaBase}
\colorlet{CatMochaLink}{CatMochaBlue}
\colorlet{CatMochaSuccess}{CatMochaGreen}
\colorlet{CatMochaWarning}{CatMochaYellow}
\colorlet{CatMochaError}{CatMochaRed}
-\colorlet{CatRosewater}{Cat\catppuccinpalette@style Rosewater}
-\colorlet{CatFlamingo}{Cat\catppuccinpalette@style Flamingo}
-\colorlet{CatPink}{Cat\catppuccinpalette@style Pink}
-\colorlet{CatMauve}{Cat\catppuccinpalette@style Mauve}
-\colorlet{CatRed}{Cat\catppuccinpalette@style Red}
-\colorlet{CatMaroon}{Cat\catppuccinpalette@style Maroon}
-\colorlet{CatPeach}{Cat\catppuccinpalette@style Peach}
-\colorlet{CatYellow}{Cat\catppuccinpalette@style Yellow}
-\colorlet{CatGreen}{Cat\catppuccinpalette@style Green}
-\colorlet{CatTeal}{Cat\catppuccinpalette@style Teal}
-\colorlet{CatSky}{Cat\catppuccinpalette@style Sky}
-\colorlet{CatSapphire}{Cat\catppuccinpalette@style Sapphire}
-\colorlet{CatBlue}{Cat\catppuccinpalette@style Blue}
-\colorlet{CatLavender}{Cat\catppuccinpalette@style Lavender}
-\colorlet{CatText}{Cat\catppuccinpalette@style Text}
-\colorlet{CatSubtext1}{Cat\catppuccinpalette@style Subtext1}
-\colorlet{CatSubtext0}{Cat\catppuccinpalette@style Subtext0}
-\colorlet{CatOverlay2}{Cat\catppuccinpalette@style Overlay2}
-\colorlet{CatOverlay1}{Cat\catppuccinpalette@style Overlay1}
-\colorlet{CatOverlay0}{Cat\catppuccinpalette@style Overlay0}
-\colorlet{CatSurface2}{Cat\catppuccinpalette@style Surface2}
-\colorlet{CatSurface1}{Cat\catppuccinpalette@style Surface1}
-\colorlet{CatSurface0}{Cat\catppuccinpalette@style Surface0}
-\colorlet{CatBase}{Cat\catppuccinpalette@style Base}
-\colorlet{CatMantle}{Cat\catppuccinpalette@style Mantle}
-\colorlet{CatCrust}{Cat\catppuccinpalette@style Crust}
-\colorlet{CatBackground}{Cat\catppuccinpalette@style Base}
-\colorlet{CatLink}{Cat\catppuccinpalette@style Blue}
-\colorlet{CatSuccess}{Cat\catppuccinpalette@style Green}
-\colorlet{CatWarning}{Cat\catppuccinpalette@style Yellow}
-\colorlet{CatError}{Cat\catppuccinpalette@style Red}
+
+\preparecolorset{RGB/HTML}{CtpMocha}{}{%
+ Rosewater,245,224,220/F5E0DC;%
+ Flamingo,242,205,205/F2CDCD;%
+ Pink,245,194,231/F5C2E7;%
+ Mauve,203,166,247/CBA6F7;%
+ Red,243,139,168/F38BA8;%
+ Maroon,235,160,172/EBA0AC;%
+ Peach,250,179,135/FAB387;%
+ Yellow,249,226,175/F9E2AF;%
+ Green,166,227,161/A6E3A1;%
+ Teal,148,226,213/94E2D5;%
+ Sky,137,220,235/89DCEB;%
+ Sapphire,116,199,236/74C7EC;%
+ Blue,137,180,250/89B4FA;%
+ Lavender,180,190,254/B4BEFE;%
+ Text,205,214,244/CDD6F4;%
+ Subtext1,186,194,222/BAC2DE;%
+ Subtext0,166,173,200/A6ADC8;%
+ Overlay2,147,153,178/9399B2;%
+ Overlay1,127,132,156/7F849C;%
+ Overlay0,108,112,134/6C7086;%
+ Surface2,88,91,112/585B70;%
+ Surface1,69,71,90/45475A;%
+ Surface0,49,50,68/313244;%
+ Base,30,30,46/1E1E2E;%
+ Mantle,24,24,37/181825;%
+ Crust,17,17,27/11111B%
+}
+\colorlet{CtpMochaBackground}{CtpMochaBase}
+\colorlet{CtpMochaLink}{CtpMochaBlue}
+\colorlet{CtpMochaSuccess}{CtpMochaGreen}
+\colorlet{CtpMochaWarning}{CtpMochaYellow}
+\colorlet{CtpMochaError}{CtpMochaRed}
+
+% \end{macrocode}
+% Define shortcuts for active style (legacy part)
+% \begin{macrocode}
+\colorlet{CatRosewater}{Ctp\catppuccinpalette@style Rosewater}
+\colorlet{CatFlamingo}{Ctp\catppuccinpalette@style Flamingo}
+\colorlet{CatPink}{Ctp\catppuccinpalette@style Pink}
+\colorlet{CatMauve}{Ctp\catppuccinpalette@style Mauve}
+\colorlet{CatRed}{Ctp\catppuccinpalette@style Red}
+\colorlet{CatMaroon}{Ctp\catppuccinpalette@style Maroon}
+\colorlet{CatPeach}{Ctp\catppuccinpalette@style Peach}
+\colorlet{CatYellow}{Ctp\catppuccinpalette@style Yellow}
+\colorlet{CatGreen}{Ctp\catppuccinpalette@style Green}
+\colorlet{CatTeal}{Ctp\catppuccinpalette@style Teal}
+\colorlet{CatSky}{Ctp\catppuccinpalette@style Sky}
+\colorlet{CatSapphire}{Ctp\catppuccinpalette@style Sapphire}
+\colorlet{CatBlue}{Ctp\catppuccinpalette@style Blue}
+\colorlet{CatLavender}{Ctp\catppuccinpalette@style Lavender}
+\colorlet{CatText}{Ctp\catppuccinpalette@style Text}
+\colorlet{CatSubtext1}{Ctp\catppuccinpalette@style Subtext1}
+\colorlet{CatSubtext0}{Ctp\catppuccinpalette@style Subtext0}
+\colorlet{CatOverlay2}{Ctp\catppuccinpalette@style Overlay2}
+\colorlet{CatOverlay1}{Ctp\catppuccinpalette@style Overlay1}
+\colorlet{CatOverlay0}{Ctp\catppuccinpalette@style Overlay0}
+\colorlet{CatSurface2}{Ctp\catppuccinpalette@style Surface2}
+\colorlet{CatSurface1}{Ctp\catppuccinpalette@style Surface1}
+\colorlet{CatSurface0}{Ctp\catppuccinpalette@style Surface0}
+\colorlet{CatBase}{Ctp\catppuccinpalette@style Base}
+\colorlet{CatMantle}{Ctp\catppuccinpalette@style Mantle}
+\colorlet{CatCrust}{Ctp\catppuccinpalette@style Crust}
+\colorlet{CatBackground}{Ctp\catppuccinpalette@style Base}
+\colorlet{CatLink}{Ctp\catppuccinpalette@style Blue}
+\colorlet{CatSuccess}{Ctp\catppuccinpalette@style Green}
+\colorlet{CatWarning}{Ctp\catppuccinpalette@style Yellow}
+\colorlet{CatError}{Ctp\catppuccinpalette@style Red}
+
% \end{macrocode}
-% Set (only initial) pagecolor according to the style guide if the user wants this
+% New command which parses the same options like the package. Can be used to e.\,g.\, reset/reinit the selected style.
% \begin{macrocode}
-\ifcatppuccinpalette@pagecolor
- \pagecolor{CatBackground}
-\fi
+\NewDocumentCommand\CtpReinit{O{}}{%
+ \pgfkeys{%
+ /catppuccinPalette/.cd,%
+ #1%
+ }%
+% \end{macrocode}
+% Define shortcuts for active style
+% \begin{macrocode}
+ \colorlet{CtpRosewater}{Ctp\catppuccinpalette@style Rosewater}%
+ \colorlet{CtpFlamingo}{Ctp\catppuccinpalette@style Flamingo}%
+ \colorlet{CtpPink}{Ctp\catppuccinpalette@style Pink}%
+ \colorlet{CtpMauve}{Ctp\catppuccinpalette@style Mauve}%
+ \colorlet{CtpRed}{Ctp\catppuccinpalette@style Red}%
+ \colorlet{CtpMaroon}{Ctp\catppuccinpalette@style Maroon}%
+ \colorlet{CtpPeach}{Ctp\catppuccinpalette@style Peach}%
+ \colorlet{CtpYellow}{Ctp\catppuccinpalette@style Yellow}%
+ \colorlet{CtpGreen}{Ctp\catppuccinpalette@style Green}%
+ \colorlet{CtpTeal}{Ctp\catppuccinpalette@style Teal}%
+ \colorlet{CtpSky}{Ctp\catppuccinpalette@style Sky}%
+ \colorlet{CtpSapphire}{Ctp\catppuccinpalette@style Sapphire}%
+ \colorlet{CtpBlue}{Ctp\catppuccinpalette@style Blue}%
+ \colorlet{CtpLavender}{Ctp\catppuccinpalette@style Lavender}%
+ \colorlet{CtpText}{Ctp\catppuccinpalette@style Text}%
+ \colorlet{CtpSubtext1}{Ctp\catppuccinpalette@style Subtext1}%
+ \colorlet{CtpSubtext0}{Ctp\catppuccinpalette@style Subtext0}%
+ \colorlet{CtpOverlay2}{Ctp\catppuccinpalette@style Overlay2}%
+ \colorlet{CtpOverlay1}{Ctp\catppuccinpalette@style Overlay1}%
+ \colorlet{CtpOverlay0}{Ctp\catppuccinpalette@style Overlay0}%
+ \colorlet{CtpSurface2}{Ctp\catppuccinpalette@style Surface2}%
+ \colorlet{CtpSurface1}{Ctp\catppuccinpalette@style Surface1}%
+ \colorlet{CtpSurface0}{Ctp\catppuccinpalette@style Surface0}%
+ \colorlet{CtpBase}{Ctp\catppuccinpalette@style Base}%
+ \colorlet{CtpMantle}{Ctp\catppuccinpalette@style Mantle}%
+ \colorlet{CtpCrust}{Ctp\catppuccinpalette@style Crust}%
+ \colorlet{CtpBackground}{Ctp\catppuccinpalette@style Base}%
+ \colorlet{CtpLink}{Ctp\catppuccinpalette@style Blue}%
+ \colorlet{CtpSuccess}{Ctp\catppuccinpalette@style Green}%
+ \colorlet{CtpWarning}{Ctp\catppuccinpalette@style Yellow}%
+ \colorlet{CtpError}{Ctp\catppuccinpalette@style Red}%
+% \end{macrocode}
+% Set pagecolor according to the style guide if the user wants this
+% \begin{macrocode}
+\ifcatppuccinpalette@pagecolor%
+ \pagecolor{CtpBackground}%
+\fi%
% \end{macrocode}
% Set textcolor according to the style guide if the user wants this
% \begin{macrocode}
-\ifcatppuccinpalette@textcolor
- \color{CatText}
-\fi
+\ifcatppuccinpalette@textcolor%
+ \color{CtpText}%
+\fi%
+% \end{macrocode}
+% \begin{macrocode}
+}
+\CtpReinit[]
% \end{macrocode}
\endinput
%
diff --git a/macros/latex/contrib/catppuccinpalette/catppuccinpalette.ins b/macros/latex/contrib/catppuccinpalette/catppuccinpalette.ins
index c93b929dcd..2e44fa2b5f 100644
--- a/macros/latex/contrib/catppuccinpalette/catppuccinpalette.ins
+++ b/macros/latex/contrib/catppuccinpalette/catppuccinpalette.ins
@@ -1,20 +1,24 @@
-%% Copyright (C) 2024 by Lukas Heindl <oss.heindl+latex@protonmail.com>
-%% --------------------------------------------------------------------------
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Lukas Heindl.
-%%
-%% This work consists of the files catppuccinpalette.dtx and catppuccinpalette.ins
-%% and the derived filebase catppuccinpalette.sty.
-%%
+%% MIT License
+%%
+%% Copyright (c) 2021 Catppuccin
+%%
+%% Permission is hereby granted, free of charge, to any person obtaining a copy
+%% of this software and associated documentation files (the "Software"), to deal
+%% in the Software without restriction, including without limitation the rights
+%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+%% copies of the Software, and to permit persons to whom the Software is
+%% furnished to do so, subject to the following conditions:
+%%
+%% The above copyright notice and this permission notice shall be included in all
+%% copies or substantial portions of the Software.
+%%
+%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+%% SOFTWARE.
\input docstrip.tex
\keepsilent
@@ -25,15 +29,25 @@
This is a generated file.
-Copyright (C) 2024 by Lukas Heindl <oss.heindl+latex@protonmail.com>
---------------------------------------------------------------------------
-This work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
-of this license or (at your option) any later version.
-The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
+Copyright (c) 2021 Catppuccin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\endpreamble
diff --git a/macros/latex/contrib/catppuccinpalette/catppuccinpalette.pdf b/macros/latex/contrib/catppuccinpalette/catppuccinpalette.pdf
index 8a5e2d9c89..b66eca9b01 100644
--- a/macros/latex/contrib/catppuccinpalette/catppuccinpalette.pdf
+++ b/macros/latex/contrib/catppuccinpalette/catppuccinpalette.pdf
Binary files differ
diff --git a/macros/latex/contrib/changelog/README.md b/macros/latex/contrib/changelog/README.md
index ab16196d1e..6b7d251083 100644
--- a/macros/latex/contrib/changelog/README.md
+++ b/macros/latex/contrib/changelog/README.md
@@ -2,12 +2,21 @@
[Available on CTAN as `changelog`][changelog]
-Changelogs are important. Unfortunately, there are few facilities
-for typesetting changelogs in LaTeX. `changelog` defines a `changelog`
+Changelogs are important. The `changelog` package defines a `changelog`
environment to make changelogs simple and intuitive.
Inspired by [keepachangelog.com].
+```latex
+\begin{changelog}[author=Rebecca Turner, simple, sectioncmd=\section*]
+\begin{version}[v=1.0.0, date=2018-12-28]
+ \item Cool features
+ \item Bug fixes
+\end{version}
+\shortversion{v=0.1.0, date=2018-10-25, changes=Initial beta}
+\end{changelog}
+```
+
File | Description
-----------------------------|-------------------------------
changelog.sty | The changelog package
diff --git a/macros/latex/contrib/changelog/changelog.pdf b/macros/latex/contrib/changelog/changelog.pdf
index c80cec01db..f0e2277664 100644
--- a/macros/latex/contrib/changelog/changelog.pdf
+++ b/macros/latex/contrib/changelog/changelog.pdf
Binary files differ
diff --git a/macros/latex/contrib/changelog/changelog.sty b/macros/latex/contrib/changelog/changelog.sty
index 4c95edd805..b58e33479a 100644
--- a/macros/latex/contrib/changelog/changelog.sty
+++ b/macros/latex/contrib/changelog/changelog.sty
@@ -1,5 +1,5 @@
\RequirePackage{expl3}
-\ProvidesExplPackage{changelog}{2023/02/16}{2.5.0}{Typesetting changelogs}
+\ProvidesExplPackage{changelog}{2024/09/17}{2.5.1}{Typesetting changelogs}
% Description: Provides the changelog environment for typesetting changelogs
% License: LPPL 1.3c
% Homepage: https://github.com/9999years/latex-changelog
@@ -210,24 +210,28 @@
{}
}
-\cs_set:Npn \changelog__short_version_define_date
+% Display the current version, which may be a version number, a date, or "Unreleased".
+\cs_set:Npn \changelog__display_version
{
- \tl_if_empty:NT \g__changelog_version_tl
+ \tl_if_empty:NTF \g__changelog_version_tl
{
\tl_if_empty:NTF \g__changelog_date_tl
{
- \tl_set:Nn \g__changelog_version_tl { \GetTranslation{changelog-Unreleased} }
+ \GetTranslation{changelog-Unreleased}
\tl_set:Nn \g__changelog_date_tl { \today }
}
{
- \tl_set_eq:NN \g__changelog_version_tl \g__changelog_date_tl
+ \tl_use:N \g__changelog_date_tl
}
}
+ {
+ \tl_use:N \g__changelog_version_tl
+ }
}
\cs_set:Npn \changelog__short_version_item
{
- \tl_use:N \g__changelog_version_tl
+ \changelog__display_version
\bool_if:NT \g__changelog_yanked_bool
{
\ \changelogyanked
@@ -247,12 +251,21 @@
\cs_set:Npn \changelog__short_version_author_date
{
+ % This might output nothing if there's no author and the date is being used
+ % as a version number, so make sure to `\leavevmode` to avoid a weird
+ % indent at the start of the item.
+ \mode_leave_vertical:
\tl_use:N \g__changelog_author_tl
\tl_if_empty:NF \g__changelog_date_tl
{
- \tl_if_empty:NF \g__changelog_author_tl
- { ~ }
- (\tl_use:N \g__changelog_date_tl)
+ % If no version number is given, the date is used instead, so we don't
+ % want to show the date twice.
+ \tl_if_empty:NF \g__changelog_version_tl
+ {
+ \tl_if_empty:NF \g__changelog_author_tl
+ { ~ }
+ (\tl_use:N \g__changelog_date_tl)
+ }
}
}
@@ -308,7 +321,6 @@
% environment
\cs_set:Npn \changelog__short_version
{
- \changelog__short_version_define_date
\bool_gset_true:N \g__changelog_seen_version_bool
\item[\changelog__short_version_item]
diff --git a/macros/latex/contrib/changelog/changelog.tex b/macros/latex/contrib/changelog/changelog.tex
index f4d0706350..9c949501fc 100644
--- a/macros/latex/contrib/changelog/changelog.tex
+++ b/macros/latex/contrib/changelog/changelog.tex
@@ -30,14 +30,13 @@
\author{Rebecca Turner\thanks{\email{rbt@sent.as}}}
\title{The \cl\ Package}
-\date{2.5.0 (2023/02/16)}
+\date{2.5.1 (2024/09/17)}
\begin{document}
\maketitle
\begin{abstract}
- Changelogs are important. Unfortunately, there are few facilities
- for typesetting changelogs in \LaTeX. \cl\ defines a |changelog|
- environment to make changelogs simple and intuitive.
+ Changelogs are important. \cl\ defines a |changelog|
+ environment to make writing changelogs declarative and easy.
For rationale, read \keepachangelog.
\end{abstract}
@@ -346,15 +345,27 @@ an email} and I'll incorporate the translation into \cl's next release!
This is this package's actual changelog --- not an example!
\begin{changelog}[author=Rebecca Turner <\email{rbt@sent.as}>, section=false]
+\begin{version}[v=2.5.1, date=2024-09-17]
+\fixed
+ \item Fixed \href{https://github.com/9999years/latex-changelog/issues/13}{a
+ bug where a version with a date and no version number would display the
+ date twice}, like ``\textbf{2024-09-17} (2024-09-17)''. Now, the date will
+ correctly only be shown once.
+
+ \item Fixed a bug where a version with a version number but no date or author
+ would be indented.
+\end{version}
+
\begin{version}[v=2.5.0, date=2023-02-16]
\added
- \item Added the \cs{newchangelogsection} command to support custom
- sections.
+ \item Added the \cs{newchangelogsection} command to support custom
+ sections.
\item Added the |remark| and |remarks| keys to support custom remarks (like
``YANKED'') on versions.
\item Added the |\changelogremark| command, which renders the ``YANKED''
remark and other custom remarks.
\end{version}
+
\begin{version}[v=2.4.1, date=2023-02-14]
\changed
\item Converted the |changelog.sty| implementation to use the \ctan{expl3}
@@ -362,6 +373,7 @@ This is this package's actual changelog --- not an example!
environment. I believe \ctan{expl3} is the future of programming in
\LaTeX, despite its verbosity.
\end{version}
+
\begin{version}[v=2.4.0, date=2020-09-02,
author={cmplstofB <\https{github.com/cmplstofB}>}]
\added
diff --git a/macros/latex/contrib/changelog/example.pdf b/macros/latex/contrib/changelog/example.pdf
index 110ae72c38..d31f6729c8 100644
--- a/macros/latex/contrib/changelog/example.pdf
+++ b/macros/latex/contrib/changelog/example.pdf
Binary files differ
diff --git a/macros/latex/contrib/changelog/example.tex b/macros/latex/contrib/changelog/example.tex
index 9db61a2ea7..8b1557ee92 100644
--- a/macros/latex/contrib/changelog/example.tex
+++ b/macros/latex/contrib/changelog/example.tex
@@ -7,17 +7,28 @@
title=Example changelog]
\begin{version}
\critical
- \item A critical new feature
+ \item A critical new feature.
\added
- \item Really cool features
+ \item Really cool feature.
+ \item A second feature.
\end{version}
\begin{version}[date=2019-01-23, short]
- A version with only a date
+ A version with only a date.
+\end{version}
+
+\begin{version}[date=2019-01-23]
+\added
+ \item A ``full'' version with only a date.
\end{version}
\begin{version}[v=1.1.0, simple]
- \item A version with no date
+ \item A version with no date.
+\end{version}
+
+\begin{version}[v=1.1.0, author=]
+\added
+ \item A version with no date or author.
\end{version}
\begin{version}[v=1.0.3, remark=Remark, simple]
@@ -29,24 +40,24 @@
\end{version}
\begin{version}[v=1.0.1, yanked, simple]
- \item A version with a terrible bug
+ \item A version with a terrible bug.
\end{version}
\begin{version}[v=1.0.0, date=2018-10-26]
\added
- \item A cool feature
+ \item A cool feature.
\changed
- \item Some \textsc{api} detail
+ \item Some \textsc{api} detail.
\deprecated
- \item Something that was a bad idea in the first place
+ \item Something that was a bad idea in the first place.
\removed
- \item Something that was deprecated 3 versions ago
+ \item Something that was deprecated 3 versions ago.
\fixed
- \item A bug that would delete files instead of saving them
+ \item A bug that would delete files instead of saving them.
\security
- \item improved with addition of buffer bound checks
+ \item improved with addition of buffer bound checks.
\misc
- \item A change that doesn't fit into any other category
+ \item A change that doesn't fit into any other category.
\end{version}
\shortversion{v=0.1.0, date=2018-10-19,
diff --git a/macros/latex/contrib/circledtext/README.md b/macros/latex/contrib/circledtext/README.md
index 6c49b9f7cd..d73cb72047 100644
--- a/macros/latex/contrib/circledtext/README.md
+++ b/macros/latex/contrib/circledtext/README.md
@@ -37,7 +37,7 @@ Contributing
Copyright and Licence
---------------------
- Copyright (C) 2020-2022 by Nan Geng <nangeng@nwafu.edu.cn>
+ Copyright (C) 2020-2024 by Nan Geng <nangeng@nwafu.edu.cn>
----------------------------------------------------------------------
This work may be distributed and/or modified under the
@@ -56,5 +56,3 @@ Copyright and Licence
This package consists of circledtext.sty, circledtext.tex and README.md(this file),
and the derived files circledtext.pdf.
-
-
diff --git a/macros/latex/contrib/circledtext/circledtext.pdf b/macros/latex/contrib/circledtext/circledtext.pdf
index 63396e64fc..bf721ce710 100644
--- a/macros/latex/contrib/circledtext/circledtext.pdf
+++ b/macros/latex/contrib/circledtext/circledtext.pdf
Binary files differ
diff --git a/macros/latex/contrib/circledtext/circledtext.sty b/macros/latex/contrib/circledtext/circledtext.sty
index f70b716814..47c62817e7 100644
--- a/macros/latex/contrib/circledtext/circledtext.sty
+++ b/macros/latex/contrib/circledtext/circledtext.sty
@@ -19,7 +19,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{expl3}
-\ProvidesExplPackage{circledtext}{2022-04-28}{v1.1.0}
+\ProvidesExplPackage{circledtext}{2024-09-09}{v1.1.1}
{Typeset circled text with l3draw}
\RequirePackage { xtemplate, l3keys2e, l3draw, xparse }
@@ -187,18 +187,18 @@
% 正方形边长
\dim_compare:nNnTF \l_tmpa_dim > \l_tmpb_dim
{
- \dim_gset_eq:NN \l__circledtext_char_box_size_dim \l_tmpa_dim
+ \dim_set_eq:NN \l__circledtext_char_box_size_dim \l_tmpa_dim
}
{
- \dim_gset_eq:NN \l__circledtext_char_box_size_dim \l_tmpb_dim
+ \dim_set_eq:NN \l__circledtext_char_box_size_dim \l_tmpb_dim
}
% 设置基字符盒子正方形宽和高(相等)
- \dim_gset_eq:NN \charboxwd \l__circledtext_char_box_size_dim
- \dim_gset_eq:NN \charboxht \l__circledtext_char_box_size_dim
+ \dim_set_eq:NN \charboxwd \l__circledtext_char_box_size_dim
+ \dim_set_eq:NN \charboxht \l__circledtext_char_box_size_dim
% 外接圆半径
- \dim_gset:Nn \l__circledtext_char_box_radius_dim
+ \dim_set:Nn \l__circledtext_char_box_radius_dim
{
\fp_to_dim:n
{
@@ -244,6 +244,8 @@
% 类似\cs_new:cn __circledtext_char_box_construct_type_none:nnnnnn
\cs_new:cn { \__circledtext_char_box_type:n {#1} }
}
+\cs_generate_variant:Nn \__circledtext_new_char_box_construct:nn { V }
+\cs_generate_variant:Nn \__circledtext_new_char_box_construct:nn { x }
% 定义字符边框盒子类型
@@ -328,6 +330,105 @@
}
}
+% 无反色底层填充正方形
+\__circledtext_new_char_box_construct:nn { __lowerfilledsquare }
+ {
+ \draw_scope_begin:
+ \color_fill:n { lowerbgboxfill }
+ \draw_transform_shift:n { (#3-#3*#5)/2, (#4-#4*#6)/2 }
+ \draw_path_rectangle:nn { #1, #2 } { #3*#5, #4*#6 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色上层填充正方形
+\__circledtext_new_char_box_construct:nn { __upperfilledsquare }
+ {
+ \draw_scope_begin:
+ \color_fill:n { upperbgboxfill }
+ \draw_transform_shift:n { (#3-#3*#5)/2, (#4-#4*#6)/2 }
+ \draw_path_rectangle:nn { #1, #2 } { #3*#5, #4*#6 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色阴影填充正方形
+\__circledtext_new_char_box_construct:nn { __shadowfilledsquare }
+ {
+ \draw_scope_begin:
+ \color_fill:n { shadowboxfill }
+ \draw_transform_shift:n { (#3-#3*#5)/2 + \charboxwd * 0.1,
+ (#4-#4*#6)/2 - \charboxht * 0.1 }
+ \draw_path_rectangle:nn { #1, #2 } { #3*#5, #4*#6 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色底层填充内切圆
+\__circledtext_new_char_box_construct:nn { __innerlowerfilledcircle }
+ {
+ \draw_scope_begin:
+ \color_fill:n { lowerbgboxfill }
+ \draw_path_circle:nn { #3/2, #4/2 } { #3*#5/2 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色上层填充内切圆
+\__circledtext_new_char_box_construct:nn { __innerupperfilledcircle }
+ {
+ \draw_scope_begin:
+ \color_fill:n { upperbgboxfill }
+ \draw_path_circle:nn { #3/2, #4/2 } { #3*#5/2 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色阴影填充内切圆
+\__circledtext_new_char_box_construct:nn { __innershadowfilledcircle }
+ {
+ \draw_scope_begin:
+ \color_fill:n { shadowboxfill }
+ \draw_transform_shift:n { \charboxwd*0.1, -\charboxht*0.1 }
+ \draw_path_circle:nn { #3/2, #4/2 } { #3*#5/2 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色底层填充外接圆
+\__circledtext_new_char_box_construct:nn { __outerlowerfilledcircle }
+ {
+ \draw_scope_begin:
+ \color_fill:n { lowerbgboxfill }
+ \draw_path_circle:nn { #3/2, #4/2 }
+ { \l__circledtext_char_box_radius_dim*#5 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色上层填充外接圆
+\__circledtext_new_char_box_construct:nn { __outerupperfilledcircle }
+ {
+ \draw_scope_begin:
+ \color_fill:n { upperbgboxfill }
+ \draw_path_circle:nn { #3/2, #4/2 }
+ { \l__circledtext_char_box_radius_dim*#5 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
+% 无反色阴影填充外接圆
+\__circledtext_new_char_box_construct:nn { __outershadowfilledcircle }
+ {
+ \draw_scope_begin:
+ \color_fill:n { shadowboxfill }
+ \draw_transform_shift:n { \charboxwd*0.1, -\charboxht*0.1 }
+ \draw_path_circle:nn { #3/2, #4/2 }
+ { \l__circledtext_char_box_radius_dim*#5 }
+ \draw_path_use_clear:n { fill }
+ \draw_scope_end:
+ }
+
% 正方形边框
\__circledtext_new_char_box_construct:nn { __squarebox }
{
@@ -499,35 +600,47 @@
}
% 填充内切圆叠加正方形正十字线与内切圆边框
-\__circledtext_new_char_box_construct:nn { o+ }
+\clist_map_variable:nNn {o+,+o} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __innercirclebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __innercirclebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 填充内切圆叠加内切圆斜十字线与内切圆边框
-\__circledtext_new_char_box_construct:nn { ox }
+\clist_map_variable:nNn {ox,xo} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __innerdcross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __innercirclebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __innerdcross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __innercirclebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 填充内切圆叠加内切圆正斜十字线与内切圆边框
-\__circledtext_new_char_box_construct:nn { ox+ }
+\clist_map_variable:nNn {ox+,o+x,xo+,x+o,+ox,+xo} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __innerdcross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __innercirclebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __innerdcross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __innercirclebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 内切圆斜十字线叠加正十字线
-\__circledtext_new_char_box_construct:nn { x+ }
+\clist_map_variable:nNn {x+,+x} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __innerdcross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __innerdcross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 填充正方形叠加正方形边框
@@ -538,35 +651,47 @@
}
% 填充正方形叠加正方形正十字线与正方形边框
-\__circledtext_new_char_box_construct:nn { O+ }
+\clist_map_variable:nNn {O+,+O} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __filledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __filledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 填充正方形叠加正方形斜十字线与正方形边框
-\__circledtext_new_char_box_construct:nn { OX }
+\clist_map_variable:nNn {OX,XO} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __filledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __dcross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __filledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __dcross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 填充正方形叠加正方形斜正十字线与正方形边框
-\__circledtext_new_char_box_construct:nn { OX+ }
+\clist_map_variable:nNn {OX+,O+X,XO+,X+O,+OX,+XO} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __filledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __dcross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __filledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __dcross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 正方形斜十字线叠加正十字线
-\__circledtext_new_char_box_construct:nn { X+ }
+\clist_map_variable:nNn {X+,+X} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __dcross } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __dcross } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __scross } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 内切圆叠加同心82%内切圆边框
@@ -578,11 +703,14 @@
}
% 反色正方形叠加内切填充圆
-\__circledtext_new_char_box_construct:nn { Oo }
+\clist_map_variable:nNn {Oo,oO} \l_tmpa_tl
{
- \__circledtext_char_box_type_c:n { __negfilledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
- \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_new_char_box_construct:Vn \l_tmpa_tl
+ {
+ \__circledtext_char_box_type_c:n { __negfilledsquare } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __innerfilledcircle } {#1} {#2} {#3} {#4} {#5} {#6}
+ \__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
+ }
}
% 正方形叠加同心82%正方形边框
@@ -592,6 +720,53 @@
\__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {#5} {#6}
\__circledtext_char_box_type_c:n { __squarebox } {#1} {#2} {#3} {#4} {0.82} {0.82}
}
+
+% 3同心圆叠加(类似中国象棋棋子形状)
+\__circledtext_new_char_box_construct:nn { ooo }
+ {
+ % 绘制填充外接圆阴影
+ \__circledtext_char_box_type_c:n { __outershadowfilledcircle }
+ {#1} {#2} {#3} {#4} {1.0} {1.0}
+ % 绘制填充外接圆外圈背景
+ \__circledtext_char_box_type_c:n { __outerlowerfilledcircle }
+ {#1} {#2} {#3} {#4} {#5} {#6}
+ % 绘制填充外接边环背景
+ \__circledtext_char_box_type_c:n { __outerupperfilledcircle }
+ {#1} {#2} {#3} {#4} {0.88} {0.88}
+ % 绘制填充外接圆内圈背景
+ \__circledtext_char_box_type_c:n { __outerlowerfilledcircle }
+ {#1} {#2} {#3} {#4} {0.72} {0.72}
+ % 绘制双边刻环线
+ \__circledtext_char_box_type_c:n { __outercirclebox }
+ {#1} {#2} {#3} {#4} {0.88} {0.88}
+ \__circledtext_char_box_type_c:n { __outercirclebox }
+ {#1} {#2} {#3} {#4} {0.72} {0.72}
+
+ }
+
+% 3同心正方形叠加
+\__circledtext_new_char_box_construct:nn { OOO }
+ {
+ % 绘制填充正方形阴影
+ \__circledtext_char_box_type_c:n { __shadowfilledsquare }
+ {#1} {#2} {#3} {#4} {1.0} {1.0}
+ % 绘制填充正方形外圈背景
+ \__circledtext_char_box_type_c:n { __lowerfilledsquare}
+ {#1} {#2} {#3} {#4} {#5} {#6}
+ % 绘制填充正方形边环背景
+ \__circledtext_char_box_type_c:n { __upperfilledsquare}
+ {#1} {#2} {#3} {#4} {0.88} {0.88}
+ % 绘制填充正方形内圈背景
+ \__circledtext_char_box_type_c:n { __lowerfilledsquare}
+ {#1} {#2} {#3} {#4} {0.72} {0.72}
+ % 绘制双边刻环线
+ \__circledtext_char_box_type_c:n { __squarebox }
+ {#1} {#2} {#3} {#4} {0.88} {0.88}
+ \__circledtext_char_box_type_c:n { __squarebox }
+ {#1} {#2} {#3} {#4} {0.72} {0.72}
+
+ }
+
\msg_new:nnn { circledtext } { box-exists } { The~ box~ type~ `#1~ not~ exists. }
% 缩放类型名称生成函数
@@ -874,6 +1049,49 @@
\cs_set_nopar:Npn \__circledtext_aux_color_boxfill:
{ \color_fill:nn #1 }
} ,
+
+ % 无反色时底层盒子背景填充颜色
+ lowerbgcolor .code:n = { \exp_args:Nx \tl_if_empty:nTF {#1}
+ {
+ \__circledtext_color_select:nn { lowerbgboxfill }
+ { yellow!70!red }
+ \cs_set_nopar:Npn \__circledtext_aux_color_boxfill:
+ { \color_fill:n { yellow!70!red } }
+ }{ \__circledtext_color_select:nn { lowerbgboxfill } { #1 }
+ \cs_set_nopar:Npn \__circledtext_aux_color_boxfill:
+ { \color_fill:n { #1 } }
+ }
+ } ,
+ lowerbgcolor .initial:n = {} ,
+
+ % 无反色时上层盒子背景填充颜色
+ upperbgcolor .code:n = { \exp_args:Nx \tl_if_empty:nTF {#1}
+ {
+ \__circledtext_color_select:nn { upperbgboxfill }
+ { yellow!80!black }
+ \cs_set_nopar:Npn \__circledtext_aux_color_boxfill:
+ { \color_fill:n { yellow!80!black } }
+ }{ \__circledtext_color_select:nn { upperbgboxfill } { #1 }
+ \cs_set_nopar:Npn \__circledtext_aux_color_boxfill:
+ { \color_fill:n { #1 } }
+ }
+ } ,
+ upperbgcolor .initial:n = {} ,
+
+ % 盒子阴影填充颜色
+ shadowcolor .code:n = { \exp_args:Nx \tl_if_empty:nTF {#1}
+ {
+ \__circledtext_color_select:nn { shadowboxfill }
+ { black!35!white }
+ \cs_set_nopar:Npn \__circledtext_aux_color_boxfill:
+ { \color_fill:n { black!35!white } }
+ }{ \__circledtext_color_select:nn { shadowboxfill } { #1 }
+ \cs_set_nopar:Npn \__circledtext_aux_color_boxfill:
+ { \color_fill:n { #1 } }
+ }
+ } ,
+ shadowcolor .initial:n = {} ,
+
% 笔画参数
charstroke .choice:,
charstroke .value_required:n = true,
@@ -965,17 +1183,17 @@
% 复制盒子准备缩放与输出
\coffin_set_eq:NN \l__circledtext_box_coffin \l__circledtext_char_coffin
- % % 测量盒子容器总高度(用内切圆则不需要)
- % \dim_set:Nn \l_tmpa_dim
- % { \__circledtext_coffin_ht_plus_dp:N \l__circledtext_box_coffin }
- % % 缩放字符盒子容器到字符大小
- % \coffin_scale:Nnn \l__circledtext_box_coffin
- % {
- % \dim_ratio:nn { \charboxht } { \l_tmpa_dim }
- % }
- % {
- % \dim_ratio:nn { \charboxht } { \l_tmpa_dim }
- % }
+ % 测量盒子容器总高度(用内切圆则不需要)
+ \dim_set:Nn \l_tmpa_dim
+ { \__circledtext_coffin_ht_plus_dp:N \l__circledtext_box_coffin }
+ % 缩放字符盒子容器到字符大小
+ \coffin_scale:Nnn \l__circledtext_box_coffin
+ {
+ \dim_ratio:nn { \charboxht } { \l_tmpa_dim }
+ }
+ {
+ \dim_ratio:nn { \charboxht } { \l_tmpa_dim }
+ }
% 根据指定的方式缩放盒子
\__circledtext_resize_c:n { \l__circledtext_resize_method_tl }
diff --git a/macros/latex/contrib/circledtext/circledtext.tex b/macros/latex/contrib/circledtext/circledtext.tex
index 2df0d98782..5c52cc15d4 100644
--- a/macros/latex/contrib/circledtext/circledtext.tex
+++ b/macros/latex/contrib/circledtext/circledtext.tex
@@ -119,7 +119,7 @@
{ \__codedoc_cmd:no {#1} { #2 } }
\ExplSyntaxOff
-\def\vers{\texttt{v1.1.0} }
+\def\vers{\texttt{v1.1.1} }
\begin{document}
\title{
@@ -488,7 +488,7 @@ starred macro can create negative ``circled'' text.
a macro \tn{circledtextset} to set the format of ``circled''
text.
-\section{Inerface}
+\section{Interface}
\subsection{\cs{circledtext} macro}
diff --git a/macros/latex/contrib/cjs-rcs-article/README.md b/macros/latex/contrib/cjs-rcs-article/README.md
index e28620a02d..aa152dd5fd 100644
--- a/macros/latex/contrib/cjs-rcs-article/README.md
+++ b/macros/latex/contrib/cjs-rcs-article/README.md
@@ -21,7 +21,7 @@ International.
## Version
-
+1.1a (2024-07-30)
## Author
@@ -133,7 +133,7 @@ licence CC BY-SA 4.0 International.
## Version
-
+1.1a (2024-07-30)
## Auteur
diff --git a/macros/latex/contrib/cjs-rcs-article/cjs-rcs-article-fr.pdf b/macros/latex/contrib/cjs-rcs-article/cjs-rcs-article-fr.pdf
index c64b7fa0a2..fd93cf709b 100644
--- a/macros/latex/contrib/cjs-rcs-article/cjs-rcs-article-fr.pdf
+++ b/macros/latex/contrib/cjs-rcs-article/cjs-rcs-article-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/cjs-rcs-article/cjs-rcs-article.dtx b/macros/latex/contrib/cjs-rcs-article/cjs-rcs-article.dtx
index cab40dfb50..a750c136f5 100644
--- a/macros/latex/contrib/cjs-rcs-article/cjs-rcs-article.dtx
+++ b/macros/latex/contrib/cjs-rcs-article/cjs-rcs-article.dtx
@@ -28,7 +28,7 @@
%<class>\NeedsTeXFormat{LaTeX2e}[2021/06/01]
%<class>\ProvidesClass{cjs-rcs-article}%
%<*class>
-[2024/07/14 v1.1 Article class for The Canadian Journal of
+[2024/07/30 v1.1a Article class for The Canadian Journal of
Statistics | La revue canadienne de statistique]
%</class>
%<*driver>
@@ -296,6 +296,10 @@
% contents of the PDF.}
% \changes{1.1}{2024-07-13}{Add the command \cs{matit} to typeset bold
% italic in math in a portable way.}
+% \changes{1.1a}{2024-07-25}{Fix the command \cs{proglang} that would
+% disable hyphenation for the rest of the document. With thanks to
+% Enrico Gregorio (egreg) for the heads up in person at TUG 2024.}
+% \changes{1.1a}{2024-07-25}{Make the command \cs{proglang} robust.}
%
% \ifenglish%
% \title[Guide to the class {\CJSclass}]{%
@@ -3867,12 +3871,12 @@
% The decorative element is created using plain {\TeX} rules. Its
% height and depth are identical to the journal information.
% \begin{macrocode}
-\setbox\z@=\vbox{\sffamily\hbox{\CJS@journalname}\hbox{\bfseries V,}}
\newsavebox\CJS@journalornament
\setbox\CJS@journalornament=\vbox{%
+ \setbox\z@=\vbox{\sffamily\hbox{\CJS@journalname}\hbox{\bfseries V,}}
\setbox\tw@\hbox{\vrule \@width4pt\@height\ht\z@\@depth\dp\z@}
- \hbox{\textcolor{CJSpink}{\copy\tw@}\kern2pt%
- \textcolor{CJSred}{\copy\tw@}\kern2pt%
+ \hbox{\textcolor{CJSpink}{\copy\tw@}\kern2pt
+ \textcolor{CJSred}{\copy\tw@}\kern2pt
\textcolor{CJSyellow}{\copy\tw@}\kern6pt}}
% \end{macrocode}
%
@@ -4735,7 +4739,7 @@
\setbox\CJS@licencebox=\vbox{%
\CJS@setlicencefont
\ifCJS@specialack\CJS@specialackstatement\fi
- \ifdefempty{\CJS@licence}{\CJS@licencesample}{\CJS@licence}}
+ \ifdefempty{\CJS@licence}{\CJS@licencesample}{\CJS@licence}}%
\setlength\CJS@licenceht{\dimexpr\ht\CJS@licencebox+\dp\CJS@licencebox}}
% \end{macrocode}
% \end{macro}
@@ -4759,14 +4763,17 @@
% Inspired by the package \pkg{ccicons} (not used by the class since
% \pkg{fontawesome5} contains all the Creative Commons icons).
%
+% \changes{1.1a}{2024-07-25}{Implementation: fix the generation of
+% spacing in the \cs{ccby*} commands.}
% \begin{macro}{\ccby,\ccby*}
% The command \cmd{\ccby} typesets the icons for the Attribution
% licence: {\ccby}.
% \begin{macrocode}
\newcommand*\ccby{\ccby@\@ifstar{~\faCopyright[regular]}\relax}
+\def\CJS@fakern{\kern0.1em}
\def\ccby@{\mbox{%
- \faCreativeCommons\kern0.1em%
- \faCreativeCommonsBy\kern0.1em}}
+ \faCreativeCommons\CJS@fakern
+ \faCreativeCommonsBy\CJS@fakern}}
% \end{macrocode}
% \end{macro}
%
@@ -4776,8 +4783,8 @@
% \begin{macrocode}
\newcommand*\ccbysa{\ccbysa@\@ifstar{~\faCopyright[regular]}\relax}
\def\ccbysa@{\mbox{%
- \faCreativeCommons\kern0.1em%
- \faCreativeCommonsBy\kern0.1em%
+ \faCreativeCommons\CJS@fakern
+ \faCreativeCommonsBy\CJS@fakern
\faCreativeCommonsSa}}
% \end{macrocode}
% \end{macro}
@@ -4788,8 +4795,8 @@
% \begin{macrocode}
\newcommand*\ccbync{\ccbync@\@ifstar{~\faCopyright[regular]}\relax}
\def\ccbync@{\mbox{%
- \faCreativeCommons\kern0.1em%
- \faCreativeCommonsBy\kern0.1em%
+ \faCreativeCommons\CJS@fakern
+ \faCreativeCommonsBy\CJS@fakern
\faCreativeCommonsNc}}
% \end{macrocode}
% \end{macro}
@@ -4801,9 +4808,9 @@
% \begin{macrocode}
\newcommand*\ccbyncsa{\ccbyncsa@\@ifstar{~\faCopyright[regular]}\relax}
\def\ccbyncsa@{\mbox{%
- \faCreativeCommons\kern0.1em%
- \faCreativeCommonsBy\kern0.1em%
- \faCreativeCommonsNc\kern0.1em%
+ \faCreativeCommons\CJS@fakern
+ \faCreativeCommonsBy\CJS@fakern
+ \faCreativeCommonsNc\CJS@fakern
\faCreativeCommonsSa}}
% \end{macrocode}
% \end{macro}
@@ -4814,8 +4821,8 @@
% \begin{macrocode}
\newcommand*\ccbynd{\ccbynd@\@ifstar{~\faCopyright[regular]}\relax}
\def\ccbynd@{\mbox{%
- \faCreativeCommons\kern0.1em%
- \faCreativeCommonsBy\kern0.1em%
+ \faCreativeCommons\CJS@fakern
+ \faCreativeCommonsBy\CJS@fakern
\faCreativeCommonsNd}}
% \end{macrocode}
% \end{macro}
@@ -4826,9 +4833,9 @@
% \begin{macrocode}
\newcommand*\ccbyncnd{\ccbyncnd@\@ifstar{~\faCopyright[regular]}\relax}
\def\ccbyncnd@{\mbox{%
- \faCreativeCommons\kern0.1em%
- \faCreativeCommonsBy\kern0.1em%
- \faCreativeCommonsNc\kern0.1em%
+ \faCreativeCommons\CJS@fakern
+ \faCreativeCommonsBy\CJS@fakern
+ \faCreativeCommonsNc\CJS@fakern
\faCreativeCommonsNd}}
% \end{macrocode}
% \end{macro}
@@ -4950,6 +4957,8 @@
% \subsection{Computer code and software}
% \label{sec:implementation:software}
%
+% \changes{1.1a}{2024-07-25}{Implementation: prevent hyphenation in
+% \cs{proglang} using a simple \cs{mbox}.}
% \begin{macro}{\proglang}
% The command \cmd{\proglang} provides a means to uniformly typeset
% the name of a software or programming language. The command also
@@ -4957,7 +4966,7 @@
% shortcuts to the most common languages. Notice that the
% \cmd{\Cpplang} case is specially crafted.
% \begin{macrocode}
-\newcommand*\proglang[1]{{\hyphenchar\font=-1 #1}}
+\newrobustcmd*\proglang[1]{\mbox{#1}}
\newcommand*\Rlang{\proglang{R}}
\newcommand*\SASlang{\proglang{SAS}}
\newcommand*\SPSSlang{\proglang{SPSS}}
@@ -5178,18 +5187,20 @@
% \end{macrocode}
% \end{macro}
%
+% \changes{1.1a}{2024-07-25}{Implementation: replace box registers
+% \cs{@ne} and \cs{thr@@} by \cs{z@} and \cs{tw@}.}
% We also define a decorative element similar to the one used on the
% title page, only adapted for a single line content. To create a
% balanced element, we use the height of a letter with an ascender and
% the depth of the old-style number 4.
% \begin{macrocode}
-\setbox\@ne=\vbox{\hbox{\firaoldstyle\small l4}}
\newsavebox\CJS@historyornament
\setbox\CJS@historyornament=\vbox{%
- \setbox\thr@@\hbox{\vrule \@width1.5pt\@height\ht\@ne\@depth\dp\@ne}
- \hbox{\textcolor{CJSpink}{\copy\thr@@}\kern.75pt%
- \textcolor{CJSred}{\copy\thr@@}\kern.75pt%
- \textcolor{CJSyellow}{\copy\thr@@}\kern3pt}}
+ \setbox\z@=\vbox{\hbox{\firaoldstyle\small l4}}
+ \setbox\tw@\hbox{\vrule \@width1.5pt\@height\ht\z@\@depth\dp\z@}
+ \hbox{\textcolor{CJSpink}{\copy\tw@}\kern.75pt
+ \textcolor{CJSred}{\copy\tw@}\kern.75pt
+ \textcolor{CJSyellow}{\copy\tw@}\kern3pt}}
% \end{macrocode}
%
% Finally, the history information, when present, is printed at the
diff --git a/macros/latex/contrib/cjs-rcs-article/cjs-rcs-article.pdf b/macros/latex/contrib/cjs-rcs-article/cjs-rcs-article.pdf
index 4d9c8ae4f8..bf7f73c7c4 100644
--- a/macros/latex/contrib/cjs-rcs-article/cjs-rcs-article.pdf
+++ b/macros/latex/contrib/cjs-rcs-article/cjs-rcs-article.pdf
Binary files differ
diff --git a/macros/latex/contrib/cjs-rcs-article/cjs-rcs-english.mbs b/macros/latex/contrib/cjs-rcs-article/cjs-rcs-english.mbs
index b23be11c43..18f0ccbd78 100644
--- a/macros/latex/contrib/cjs-rcs-article/cjs-rcs-english.mbs
+++ b/macros/latex/contrib/cjs-rcs-article/cjs-rcs-english.mbs
@@ -31,7 +31,7 @@
%-------------------------------------------------------------------
% Begin module:
%\fi
- % \ProvidesFile{cjs-rcs-english.mbs}[2024/07/14 v1.1 (VG, PWD)]
+ % \ProvidesFile{cjs-rcs-english.mbs}[2024/07/30 v1.1a (VG, PWD)]
%\iffalse
%<*a&!a>
% The following ensures that the driver part is not seen by makebst
@@ -87,7 +87,7 @@
%% Configuration of the glossary
\addto\extrasenglish{%
- \def\glossaryname{Version history}}
+ \def\glossaryname{History of changes}}
\GlossaryPrologue{\section*{\glossaryname}%
\addcontentsline{toc}{section}{\glossaryname}}
\setlength{\GlossaryMin}{5cm}
@@ -125,8 +125,6 @@
% the main file.}
% \changes{1.0}{2023-11-29}{First official release distributed through
% CTAN.}
-% \changes{1.1}{2024-07-14}{No changes to the English language
-% definition file.}
%
% \title[English language definition file \filename]{%
% English language definition file \\
diff --git a/macros/latex/contrib/cjs-rcs-article/cjs-rcs-french.mbs b/macros/latex/contrib/cjs-rcs-article/cjs-rcs-french.mbs
index 748d449383..4d3a76021c 100644
--- a/macros/latex/contrib/cjs-rcs-article/cjs-rcs-french.mbs
+++ b/macros/latex/contrib/cjs-rcs-article/cjs-rcs-french.mbs
@@ -31,7 +31,7 @@
%-------------------------------------------------------------------
% Begin module:
%\fi
- % \ProvidesFile{cjs-rcs-french.mbs}[2024/07/14 v1.1 (VG, PWD)]
+ % \ProvidesFile{cjs-rcs-french.mbs}[2024/07/30 v1.1a (VG, PWD)]
%\iffalse
%<*a&!a>
% The following ensures that the driver part is not seen by makebst
@@ -87,7 +87,7 @@
%% Configuration of the glossary
\addto\extrasenglish{%
- \def\glossaryname{Version history}}
+ \def\glossaryname{History of changes}}
\GlossaryPrologue{\section*{\glossaryname}%
\addcontentsline{toc}{section}{\glossaryname}}
\setlength{\GlossaryMin}{5cm}
@@ -125,8 +125,6 @@
% the main file.}
% \changes{1.0}{2023-11-29}{First official release distributed through
% CTAN.}
-% \changes{1.1}{2024-07-14}{No changes to the French language
-% definition file.}
%
% \title[French language definition file \filename]{%
% French language definition file \\
diff --git a/macros/latex/contrib/cjs-rcs-article/cjs-rcs-merlin.mbs b/macros/latex/contrib/cjs-rcs-article/cjs-rcs-merlin.mbs
index 75ca76a256..cf79365ffd 100644
--- a/macros/latex/contrib/cjs-rcs-article/cjs-rcs-merlin.mbs
+++ b/macros/latex/contrib/cjs-rcs-article/cjs-rcs-merlin.mbs
@@ -32,7 +32,7 @@
% -------------------------------------------------------------------
% Name and version information of the main mbs file:
%\fi
- % \ProvidesFile{cjs-rcs-merlin.mbs}[2023/11/29 v1.0 (VG, PWD, AO, DPC)]
+ % \ProvidesFile{cjs-rcs-merlin.mbs}[2024/07/30 v1.1a (VG, PWD, AO, DPC)]
%\iffalse
%</!tail>
%<*a&!a>
@@ -92,7 +92,7 @@
%% Configuration of the glossary
\addto\extrasenglish{%
- \def\glossaryname{Version history}}
+ \def\glossaryname{History of changes}}
\GlossaryPrologue{\section*{\glossaryname}%
\addcontentsline{toc}{section}{\glossaryname}}
\setlength{\GlossaryMin}{5cm}
@@ -133,7 +133,6 @@
% the main file.}
% \changes{1.0}{2023-11-29}{First official release distributed through
% CTAN.}
-% \changes{1.1}{2024-07-14}{No changes to the master bibliographic style.}
%
% \title[Master bibliographic style file \filename]{%
% Master bibliographic style file \\
diff --git a/macros/latex/contrib/cjs-rcs-article/cjs-rcs-merlin.pdf b/macros/latex/contrib/cjs-rcs-article/cjs-rcs-merlin.pdf
index 1cc15b18c7..79fddb7248 100644
--- a/macros/latex/contrib/cjs-rcs-article/cjs-rcs-merlin.pdf
+++ b/macros/latex/contrib/cjs-rcs-article/cjs-rcs-merlin.pdf
Binary files differ
diff --git a/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.pdf b/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.pdf
index abccef5167..9cf5839b1e 100644
--- a/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.pdf
+++ b/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.tex b/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.tex
index 875851d600..cd5b6691d2 100644
--- a/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.tex
+++ b/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.tex
@@ -40,9 +40,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% MAIN DOCUMENT
\begin{document}
- \title{The \tcthrm package {\footnotesize(v1.0.2)}}
+ \title{The \tcthrm package {\footnotesize(v1.0.4)}}
\author{João M. Lourenço\\\texttt{\small joao.lourenco@fct.unl.pt}}
- \date{March 31, 2024}
+ \date{September 15, 2024}
\maketitle
diff --git a/macros/latex/contrib/coloredtheorem/coloredtheorem.sty b/macros/latex/contrib/coloredtheorem/coloredtheorem.sty
index 4e128bf80b..4d24f77056 100644
--- a/macros/latex/contrib/coloredtheorem/coloredtheorem.sty
+++ b/macros/latex/contrib/coloredtheorem/coloredtheorem.sty
@@ -14,7 +14,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[2020/06/01]
\ProvidesPackage{coloredtheorem}
- [2024/04/03 v1.0.2 - A colorful boxed theorem environment]
+ [2024/09/15 v1.0.4 - A colorful boxed theorem environment]
\RequirePackage{tcolorbox}
\tcbuselibrary{breakable}
@@ -27,10 +27,11 @@
\expandafter\gdef\csname\tcbth list#1name\endcsname{List of #2s}%
\expandafter\gdef\csname#1autorefname\endcsname{#2}%
\AtEndPreamble{%
- \ifdefined\crefname\expandafter\crefname\csname\tcbth#1\endcsname{#2}{#2s}\fi}%
+ \ifdefined\crefname\expandafter\crefname\expandafter{\tcbth#1}{#2}{#2s}\fi}%
\expandafter\gdef\csname\tcbth listof#1s\endcsname
{%
- \section*{\csname\tcbth list#1name\endcsname}%
+ \ifdefined\chapter\chapter*{\csname\tcbth list#1name\endcsname}%
+ \else\section*{\csname\tcbth list#1name\endcsname}\fi%
\expandafter\@starttoc\expandafter{lo#1}%
}
\expandafter\NewDocumentEnvironment\expandafter{\tcbth#1} {O{} m O{}}%
@@ -53,6 +54,9 @@
~\csname the\tcbth#1\endcsname\fi}~~##2},
#3, ##3,
]%
+ \let\origpar=\par%
+ \def\par{\origpar\medskip}%
+ \ignorespaces%
}{% \end{tcb<SOMETHING>}
\end{tcolorbox}%
\end{center}%
diff --git a/macros/latex/contrib/commalists-tools/README.md b/macros/latex/contrib/commalists-tools/README.md
new file mode 100644
index 0000000000..2691841bce
--- /dev/null
+++ b/macros/latex/contrib/commalists-tools/README.md
@@ -0,0 +1,6 @@
+This package provides some macros for manipulating numeral comma separated lists.
+Available tools are adding, removing, counting, testing, reversing, sorting, etc
+---------------------------------------------------------------------------------
+Author..: Cédric Pierquet
+email...: cpierquet@outlook.fr
+Licence.: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt \ No newline at end of file
diff --git a/macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.pdf b/macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.pdf
new file mode 100644
index 0000000000..8720ca502e
--- /dev/null
+++ b/macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.tex b/macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.tex
new file mode 100644
index 0000000000..daab3e3183
--- /dev/null
+++ b/macros/latex/contrib/commalists-tools/doc/commalists-tools-doc.tex
@@ -0,0 +1,415 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode}
+% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode}
+
+\documentclass[11pt,a4paper]{ltxdoc}
+\usepackage{bera}
+\usepackage{inconsolata}
+\usepackage[T1]{fontenc}
+\usepackage[scale=0.875]{cabin}
+\usepackage{commalists-tools}
+\usepackage{fancyvrb}
+\usepackage{fancyhdr}
+\usepackage{tabularray}
+\usepackage{fontawesome5}
+\fancyhf{}
+\renewcommand{\headrulewidth}{0pt}
+\lfoot{\sffamily\small [commalists-tools]}
+\cfoot{\sffamily\small - \thepage{} -}
+\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}
+\usepackage{hologo}
+\providecommand\tikzlogo{Ti\textit{k}Z}
+\providecommand\TeXLive{\TeX{}Live\xspace}
+\let\TikZ\tikzlogo
+
+\usepackage{hyperref}
+\urlstyle{same}
+\hypersetup{pdfborder=0 0 0}
+\usepackage[margin=2cm]{geometry}
+\setlength{\parindent}{0pt}
+\def\TPversion{0.1.0}
+\def\TPdate{25/09/2024}
+\usepackage{tcolorbox}
+\usepackage{pgffor}
+\tcbuselibrary{breakable,skins,hooks,listingsutf8}
+%\usepackage{soul}
+%\sethlcolor{lightgray!25}
+
+\lstset{
+ language=[LaTeX]TeX,%
+ basicstyle=\ttfamily,%
+ keywordstyle={\color{blue}},%
+ classoffset=0,%
+ keywords={},%
+ alsoletter={-},%
+ keywordstyle={\color{blue}},%
+ classoffset=1,%
+ alsoletter={-},%
+ morekeywords={commalists-tools},%
+ keywordstyle={\color{violet}},%
+ classoffset=2,%
+ alsoletter={-},%
+ morekeywords={\sortasclist,\sortdeslist,\addvalinlist,\removevalinlist,\boolvalinlist,\xintifvalinlist,\countvalinlist,\minoflist,\maxoflist,\meanoflist,\sumoflist,\prodoflist,\reverselist,\getvaluefromlist},%
+ keywordstyle={\color{green!50!black}},%
+ classoffset=3,%
+ morekeywords={},%
+ keywordstyle={\color{orange}}
+}
+
+\newtcblisting{DemoCode}[1]{%
+ enhanced,width=\linewidth,%
+ bicolor,size=title,%
+ colback=cyan!10!white,%
+ colbacklower=cyan!5!white,%
+ colframe=cyan!75!black,%
+ listing options={%
+ breaklines=true,%
+ breakatwhitespace=true,%
+ style=tcblatex,basicstyle=\small\ttfamily,%
+ tabsize=4,%
+ commentstyle={\itshape\color{gray}},
+ keywordstyle={\color{blue}},%
+ classoffset=0,%
+ keywords={\usepackage,\includegraphics,xstring,listofitems,\readlist,\showitems,\xintFor,\xintSeq},%
+ alsoletter={-},%
+ keywordstyle={\color{blue}},%
+ classoffset=1,%
+ alsoletter={-},%
+ morekeywords={euromoney},%
+ keywordstyle={\color{violet}},%
+ classoffset=2,%
+ alsoletter={-},%
+ morekeywords={\sortasclist,\sortdeslist,\addvalinlist,\removevalinlist,\boolvalinlist,\xintifvalinlist,\countvalinlist,\minoflist,\maxoflist,\meanoflist,\sumoflist,\prodoflist,\reverselist,\getvaluefromlist},%
+ keywordstyle={\color{green!50!black}},%
+ classoffset=3,%
+ morekeywords={},%
+ keywordstyle={\color{orange}}
+ },%
+ #1
+}
+
+\newtcbinputlisting\DemoCodeFile[1]{%
+ enhanced,width=\linewidth,%
+ bicolor,size=title,%
+ colback=lightgray!10!white,%
+ colbacklower=lightgray!5!white,%
+ colframe=lightgray!75!black,%
+ listing options={%
+ breaklines=true,%
+ breakatwhitespace=true,%
+ style=tcblatex,
+ basicstyle=\scriptsize\ttfamily,%
+ tabsize=4,%
+ commentstyle={\itshape\color{gray}},%
+ %lastline=148
+ },%
+ breakable,
+ listing only,%
+ listing file={#1}
+}
+
+\NewDocumentCommand\ShowCode{ m }{%
+ \lstinline{#1}%
+}
+
+\begin{document}
+
+\thispagestyle{empty}
+
+\begin{center}
+ \begin{minipage}{0.88\linewidth}
+ \begin{tcolorbox}[colframe=yellow,colback=yellow!15]
+ \begin{center}
+ \renewcommand{\arraystretch}{1.25}%
+ \begin{tabular}{c}
+ {\Huge \texttt{commalists-tools}}\\
+ \\
+ {\LARGE Macros for manipulating numeral} \\
+ {\LARGE comma separated lists :} \\
+ {\LARGE sorting, adding, removing, etc} \\
+ \\
+ {\small \texttt{Version \TPversion{} -- \TPdate}}
+ \end{tabular}
+ \end{center}
+ \end{tcolorbox}
+ \end{minipage}
+\end{center}
+
+\begin{center}
+ \begin{tabular}{c}
+ \texttt{Cédric Pierquet}\\
+ {\ttfamily c pierquet -- at -- outlook . fr}\\
+ \texttt{\url{https://github.com/cpierquet/commalists-tools}} \\
+ \end{tabular}
+\end{center}
+
+\hrule
+
+\vfill
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5,listing only}
+\def\mytestlist{14,10,15,11,9,10}
+\minoflist*{\mytestlist}
+\maxoflist*{14,10,15,11,9,10}
+\sortasclist*{\mytestlist}
+\meanoflist*{\mytestlist}
+\removevalinlist*{10}{\mytestlist}
+\xintifvalinlist{15}{\mytestlist}{true}{false}
+\end{tcblisting}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+\def\mytestlist{14,10,15,11,9,10}
+We consider the list : \mytestlist\par\smallskip
+The minimum value is \minoflist*{\mytestlist} and the maximum is \maxoflist*{14,10,15,11,9,10}\par\smallskip
+Ascending sorted list is \sortasclist*{\mytestlist}\par\smallskip
+Meaning value of the list is \meanoflist*{\mytestlist}\par\smallskip
+If we remove the value 10, the the list is \removevalinlist*{10}{\mytestlist}\par\smallskip
+We test if 15 is in the list : \xintifvalinlist{15}{\mytestlist}{true}{false}
+\end{tcolorbox}
+
+\vfill~
+
+%\hrule
+%
+%\medskip
+
+%\emph{%
+% The \textsf{luarandom} package do the same things, but with the obligation to compile with \hologo{LuaLaTeX}.
+%}
+%
+%\medskip
+
+\hrule
+
+\vspace*{5mm}
+
+\pagebreak
+
+\phantomsection
+
+\hypertarget{matoc}{}
+
+\tableofcontents
+
+\vspace*{5mm}
+
+%\hrule
+
+\pagebreak
+
+\section{Loading, useful packages}
+
+In order to load \texttt{randintlist}, simply use :
+
+\begin{DemoCode}{listing only}
+\usepackage{commalists-tools}
+\end{DemoCode}
+
+Loaded packages are \texttt{listofitems}, \texttt{xintexpr} and \texttt{xstring}.
+
+\smallskip
+
+The idea is to propose "reusage" of lists with \texttt{listofitems} or other commands, for example.
+
+\section{The Macros}
+
+\subsection{Global usage}
+
+Package \texttt{commalists-tools} supports (basic) manipulations on numeral comma separated lists :
+
+\begin{itemize}
+ \item sorting ;
+ \item adding values ;
+ \item removing values ;
+ \item counting values ;
+ \item mean, sum, product ;
+ \item etc
+\end{itemize}
+
+Starred versions only print the result, whereas non starred versions store the result into a macro.
+
+\medskip
+
+\hfill\textbf{All engines \TeX\ are compatible with this package.}\hfill~
+
+\subsection{The macros for calculing}
+
+\begin{DemoCode}{listing only}
+%getting min of list, only printing
+\minoflist*{list}
+%storing min of list into \macro (\resmin by default)
+\minoflist{list}[\macro]
+%getting max of list, only printing
+\maxoflist*{list}
+%storing max of list into \macro (\resmax by default)
+\maxoflist{list}[\macro]
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%only printing
+\minoflist*{14,10,15,11,9,10} and \maxoflist*{14,10,15,11,9,10} \\
+%storing min/max of list
+\def\mytestlist{10,14.5,20,12,8.5}
+\minoflist{\mytestlist}[\mymin]Min of list is \mymin\ \&
+\maxoflist{\mytestlist}[\mymax]Max of list is \mymax
+\end{DemoCode}
+
+\begin{DemoCode}{listing only}
+%getting mean of list, only printing
+\meanoflist*{list}
+%storing mean of list into \macro (\resmean by default)
+\meanoflist{list}[\macro]
+%getting sum of list, only printing
+\sumoflist*{list}
+%storing max of list into \macro (\ressum by default)
+\sumoflist{list}[\macro]
+%getting prod of list, only printing
+\prodoflist*{list}
+%storing max of list into \macro (\resprod by default)
+\prodoflist{list}[\macro]
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%only printing
+\meanoflist*{14,10,15,11,9,10} \\
+%storing
+\meanoflist{14,10,15,11,9,10}[\mymean]\mymean \\
+%only printing
+\sumoflist*{14,10,15,11,9,10} and \prodoflist*{14,10,15,11,9,10} \\
+%storing
+\sumoflist{14,10,15,11,9,10}[\mysum]\prodoflist{14,10,15,11,9,10}[\myprod]
+The sum is \mysum\ and the prod is \myprod
+\end{DemoCode}
+
+\subsection{Macros for manipulating}
+
+\begin{DemoCode}{listing only}
+%sorting (asc), only printing
+\sortasclist*{list}
+%sorting (asc) and storing (overwrite)
+\sortasclist{list}
+%sorting (des), only printing
+\sortdeslist*{list}
+%sorting (des) and storing (overwrite)
+\sortdeslist{list}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%sorting (asc), only printing
+\sortasclist*{14,10,15,11,9,10}\\
+%sorting (asc) and storing (overwrite)
+\def\tmpsortlist{14,10,15,11,9,10}
+\sortasclist{\tmpsortlist}\tmpsortlist\\
+%analysing
+\readlist*\tmpSORTlist{\tmpsortlist}
+\showitems{\tmpSORTlist}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%sorting (des), only printing
+\sortdeslist*{14,10,15,11,9,10}\\
+%sorting (asc) and storing (overwrite)
+\def\tmpsortlist{14,10,15,11,9,10}
+\sortdeslist{\tmpsortlist}\tmpsortlist\\
+%analysing
+\readlist*\tmpSORTlist{\tmpsortlist}
+\showitems{\tmpSORTlist}
+\end{DemoCode}
+
+\begin{DemoCode}{listing only}
+%adding, only printing
+\addvalinlist*{values}{list}
+%adding and storing (overwrite)
+\addvalinlist{values}{list}
+%removing, only printing
+\removevalinlist*{value}{list}
+%removing and storing (overwrite)
+\removevalinlist{value}{list}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%only printing
+\addvalinlist*{3}{1,2,5,6}\\
+%defining and adding
+\def\tmpaddlist{1,2,4,5,6}
+\addvalinlist{3}{\tmpaddlist}\tmpaddlist\\
+%analysing
+\readlist*\tmpADDlist{\tmpaddlist}
+\showitems{\tmpADDlist}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%only printing
+\removevalinlist*{3}{1,2,3,6,3,1,5,7,3}\\
+%defining and removing
+\def\tmpremlist{1,2,3,6,3,1,5,7,3}
+\removevalinlist{3}{\tmpremlist}\tmpremlist\\
+%analysing
+\readlist*\tmpREMlist{\tmpremlist}
+\showitems{\tmpREMlist}
+\end{DemoCode}
+
+\begin{DemoCode}{listing only}
+%reversing, only printing
+\reverselist*{list}
+%reversing and storing (overwrite)
+\reverselist{list}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%only printing
+\reverselist*{14,10,15,11,9,10}\\
+%reversing and storing
+%storing
+\reverselist{14,10,15,11,9,10}[\myreverse]\myreverse\\
+%analysing
+\readlist*\tmpREVERSElist{\myreverse}
+\showitems{\tmpREVERSElist}
+\end{DemoCode}
+
+\subsection{Macros with testing}
+
+\begin{DemoCode}{listing only}
+%testing if value is in list, with boolean result in \macro (\resisinlist by default)
+\boolvalinlist{value}{list}[\macro]
+%conditionnal test if value is in list, according to xint syntax
+\xintifvalinlist{3}{0,1,2,3}{true}{false}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%test with xint syntax
+\xintifvalinlist{-1}{0,1,2,3}{true}{false}\\
+%test with xint syntax
+\xintifvalinlist{3}{0,1,2,3}{true}{false}\\
+%boolean macro
+\def\myteslist{0,5,10,5,6,9,7,8}
+\boolvalinlist{5}{\myteslist}[\resisinlist]\resisinlist
+\end{DemoCode}
+
+\begin{DemoCode}{listing only}
+%counting value, only printing
+\countvalinlist*{value}{list}
+%counting value, with result in \macro (\rescount by default)
+\countvalinlist{value}{list}[\macro]
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%only printing
+\countvalinlist*{8}{1,2,3,4,5,6,6,7,8,8,8,9}\\
+%storing
+\def\tmpcountlist{1,2,3,4,5,6,6,7,8,8,8,9}
+\countvalinlist{6}{\tmpcountlist}[\rescountsix]\rescountsix\\
+\countvalinlist{10}{\tmpcountlist}[\rescountten]\rescountten
+\end{DemoCode}
+
+\pagebreak
+
+\section{History}
+
+\texttt{0.1.0 : Initial version}
+
+\section{The code}
+
+\DemoCodeFile{commalists-tools.sty}
+
+\end{document}
diff --git a/macros/latex/contrib/commalists-tools/tex/commalists-tools.sty b/macros/latex/contrib/commalists-tools/tex/commalists-tools.sty
new file mode 100644
index 0000000000..7809c82721
--- /dev/null
+++ b/macros/latex/contrib/commalists-tools/tex/commalists-tools.sty
@@ -0,0 +1,188 @@
+% Author : C. Pierquet
+% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{commalists-tools}[2024/09/25 0.1.0 Basic operations for numeral comma separated lists]
+
+%------History
+% 0.1.0 Initial version
+
+%------Packages
+\RequirePackage{listofitems}
+\RequirePackage{xintexpr}
+\RequirePackage{xstring}
+
+%-----Macros (LaTeX3...) for sorting
+\ExplSyntaxOn
+\NewDocumentCommand\sortasclist{ s m }
+{
+ \clist_set:Nx \l_foo_clist {#2}
+ \clist_sort:Nn \l_foo_clist{
+ \int_compare:nNnTF { ##1 } > { ##2 }
+ { \sort_return_swapped: }
+ { \sort_return_same: }
+ }
+ \IfBooleanTF{#1}%if star := just printing // if not, storing
+ {%
+ {\l_foo_clist}%
+ }%
+ {%
+ \xdef#2{\l_foo_clist}%
+ }%
+}
+
+\NewDocumentCommand\sortdeslist{ s m }
+{
+ \clist_set:Nx \l_foo_clist {#2}
+ \clist_sort:Nn \l_foo_clist{
+ \int_compare:nNnTF { ##1 } < { ##2 }
+ { \sort_return_swapped: }
+ { \sort_return_same: }
+ }
+ \IfBooleanTF{#1}%if star := just printing // if not, storing
+ {%
+ {\l_foo_clist}%
+ }%
+ {%
+ \xdef#2{\l_foo_clist}%
+ }%
+}
+\ExplSyntaxOff
+
+%----Macros (LaTeX2)
+\NewDocumentCommand\addvalinlist{ s m m }{%
+ \IfBooleanTF{#1}%if star := just printing // if not, storing
+ {%
+ #3,#2%
+ }%
+ {%
+ \xdef#3{#3,#2}%
+ }%
+}
+
+\NewDocumentCommand\removevalinlist{ s m m }{%
+ \readlist*\tmplistread{#3}%
+ \xdef\tmpresremovelist{}%
+ \xintFor* ##1 in {\xintSeq{1}{\tmplistreadlen}}\do{%
+ \xintifboolexpr{ \tmplistread[##1] == #2}%
+ {}%
+ {%
+ \xintifboolexpr{ ##1 == 1 }%
+ {%
+ \xdef\tmpresremovelist{\tmplistread[##1]}%
+ }%
+ {%
+ \xdef\tmpresremovelist{\tmpresremovelist,\tmplistread[##1]}%
+ }%
+ }%
+ }%
+ \IfBooleanTF{#1}%if star := just printing // if not, storing
+ {%
+ \tmpresremovelist%
+ }%
+ {%
+ \xdef#3{\tmpresremovelist}%
+ }%
+}
+
+\NewDocumentCommand\boolvalinlist{ m m O{\resisinlist} }{%
+ \IfSubStr{,#2,}{,#1,}{\def#3{1}}{\def#3{0}}%
+}
+
+\NewDocumentCommand\xintifvalinlist{ m m m m }{%
+ \IfSubStr{,#2,}{,#1,}{\xdef\RESTMPVALUE{1}}{\xdef\RESTMPVALUE{0}}%
+ \xintifboolexpr{ \RESTMPVALUE == 1}{#3}{#4}%
+}
+
+\NewDocumentCommand\countvalinlist{ s m m O{\rescount} }{%
+ \readlist*\tmplistread{#3}%
+ \xdef#4{0}%
+ \xintFor* ##1 in {\xintSeq{1}{\tmplistreadlen}}\do{%
+ \xintifboolexpr{ \tmplistread[##1] == #2}%
+ {%
+ \xdef#4{\fpeval{#4+1}}%
+ }%
+ {}%
+ }%
+ \IfBooleanT{#1}%if star := just printing // if not, storing
+ {%
+ #4%
+ }%
+}
+
+\NewDocumentCommand\minoflist{ s m O{\resmin} }{%
+ \IfBooleanTF{#1}%
+ {%
+ \fpeval{min(#2)}%
+ }%
+ {%
+ \xdef#3{\fpeval{min(#2)}}%
+ }%
+}
+
+\NewDocumentCommand\maxoflist{ s m O{\resmax} }{%
+ \IfBooleanTF{#1}%
+ {%
+ \fpeval{max(#2)}%
+ }%
+ {%
+ \xdef#3{\fpeval{max(#2)}}%
+ }%
+}
+
+\NewDocumentCommand\meanoflist{ s m O{\resmean} }{%
+ \xdef#3{0}%
+ \readlist*\tmpmeanlist{#2}%
+ \xintFor* ##1 in {\xintSeq{1}{\tmpmeanlistlen}}\do{%
+ \xdef#3{\fpeval{#3+\tmpmeanlist[##1]}}%
+ }%
+ \xdef#3{\fpeval{(#3)/\tmpmeanlistlen}}%
+ \IfBooleanT{#1}%if star := just printing // if not, storing
+ {%
+ #3%
+ }%
+}
+
+\NewDocumentCommand\sumoflist{ s m O{\ressum} }{%
+ \xdef#3{0}%
+ \readlist*\tmpsumlist{#2}%
+ \xintFor* ##1 in {\xintSeq{1}{\tmpsumlistlen}}\do{%
+ \xdef#3{\fpeval{#3+\tmpsumlist[##1]}}%
+ }%
+ \IfBooleanT{#1}%if star := just printing // if not, storing
+ {%
+ #3%
+ }%
+}
+
+\NewDocumentCommand\prodoflist{ s m O{\resprod} }{%
+ \xdef#3{1}%
+ \readlist*\tmpprodlist{#2}%
+ \xintFor* ##1 in {\xintSeq{1}{\tmpprodlistlen}}\do{%
+ \xdef#3{\fpeval{(#3)*\tmpprodlist[##1]}}%
+ }%
+ \IfBooleanT{#1}%if star := just printing // if not, storing
+ {%
+ #3%
+ }%
+}
+
+\NewDocumentCommand\reverselist{ s m O{\resrevlist} }{%
+ \readlist*\tmpreverselist{#2}%
+ \xdef#3{\tmpreverselist[-1]}%
+ \xintFor* ##1 in {\xintSeq{2}{\tmpreverselistlen}}\do{%
+ \xdef#3{#3,\tmpreverselist[-##1]}%
+ }%
+ \IfBooleanT{#1}%if star := just printing // if not, storing
+ {%
+ #3%
+ }%
+}
+
+\NewDocumentCommand\getvaluefromlist{ s m m O{\resmyelt} }{%
+ \readlist*\tmpreadlist{#2}%
+ \xdef#4{\tmpreadlist[#3]}%
+ \IfBooleanT{#1}{#4}%
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/cs-techrep/README b/macros/latex/contrib/cs-techrep/README
index bb3aefdd37..fbe8f9aff8 100644
--- a/macros/latex/contrib/cs-techrep/README
+++ b/macros/latex/contrib/cs-techrep/README
@@ -1,5 +1,5 @@
-----------------------------
- Version 0.2 of the cs-techrep class
+ Version 0.4 of the cs-techrep class
Christoph P. Neumann
-----------------------------
diff --git a/macros/latex/contrib/cs-techrep/cs-techrep.dtx b/macros/latex/contrib/cs-techrep/cs-techrep.dtx
index 35775ca107..ccc3475664 100644
--- a/macros/latex/contrib/cs-techrep/cs-techrep.dtx
+++ b/macros/latex/contrib/cs-techrep/cs-techrep.dtx
@@ -1,16 +1,16 @@
%\iffalse
% cs-techrep.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
-% -preamble "Copyright 2023-2024 Christoph P. Neumann This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or any later version. The latest version of this license is in https://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2008 or later. This work has the LPPL maintenance status maintained. The Current Maintainer of this work is Christoph P. Neumann. "
-% -setambles ".*=>\nopreamble"
-% -author "Christoph P. Neumann "
-% -dir "src"
-% -src "(_cpn_copyIntoExamplesFolder_cls.cmd|cs-techrep.cls)=>\1"
% -doc "doc/cs-techrep.tex"
+% -author "Christoph P. Neumann "
+% -setambles ".*=>\nopreamble"
% -date "2023-2024"
+% -dir "src"
% -macrocode ".*"
+% -preamble "Copyright 2023-2024 Christoph P. Neumann This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or any later version. The latest version of this license is in https://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2008 or later. This work has the LPPL maintenance status maintained. The Current Maintainer of this work is Christoph P. Neumann. "
+% -src "(_cpn_copyIntoExamplesFolder_cls.cmd|cs-techrep.cls)=>\1"
% cs-techrep
-% Created on 2024/4/10 18:14
+% Created on 2024/9/14 21:40
%\fi
%\iffalse
%<*package>
@@ -56,7 +56,7 @@
%\title{\textsf{cs-techrep}\\
%Technical Reports in Computer Science and Software Engineering}
%\author{Christoph P.\ Neumann \texttt{$<$cyberpetaneuron@gmail.com$>$}}
-%\date{Version 0.2}
+%\date{Version 0.4}
%\maketitle
%\PrintChanges
%
@@ -117,14 +117,33 @@
%This package provides the documentclass \texttt{cs-techrep}. The documentclass
%supports the following options:
%
-%
%\begin{itemize}
%\item |conference| Passed to IEEEtran
%\item |a4paper| Passed to IEEEtran
-%\item |flushend| Activate flushend package
-%\item |pbalance| Activate pbalance package
+%\item |subfig| Loads subfig package with custom style settings
+%\item |subcaption| Loads subcaption package with custom style settings
+%\item |flushend| Activate flushend package (compatible with arXiv build process)
+%\item |pbalance| Activate pbalance package (incompatible with arXiv build process)
%\end{itemize}
%
+%A Remark about two-column document balancing on the last page:
+%The flushend package is recommended, because it works within the arXiv automated build process.
+%However, flushend has a major incampatibility with package lineno, which is, e.\,g., transitively loaded by package mindflow.
+%Thus, in case when flushend does not have any effect, check whether one of your packages loads lineno.
+%Usually you are stuck with your packages and, thus, will instead be forced to switch from flushend to pbalance.
+%Please be aware that pbalance works great and has high compatibility, but unfortunately it will not have any effect within the arXiv automated build process.
+%In case of both, a somehow needed lineno package and an intended arXiv upload, I recommend to do without two-column balancing on the last page and just to stay away from both flushend and pbalance, in order to ensure that your paper is layouted identically in any initial publication and a later arXiv upload.
+%I hope this remark proves helpful, it took me some nerve to find out.
+%
+%There is also another important difference between flushend and pbalance: the handling of footnotes on the last page.
+%Flushend provides a decent result, but the result of pbalance is incomprehensible.
+%I strongly recommend avoiding footnotes on the last page.
+%If you absolutely need footnotes on the last page, consider staying away from two-column balancing on the last page.
+%
+%About subfigures:
+%Both well-known packages subfig and subcaption can be used.
+%However, they are not compatible with each other and we can either load one or the other.
+%The document class provides options to load them for you with some customized style settings.
%
%\section{Requirements}
%
@@ -142,6 +161,7 @@
%\item cleveref
%\item csquotes
%\item diagbox
+%\item doclicense
%\item etoolbox
%\item extdash
%\item flushend
@@ -164,6 +184,7 @@
%\item pdflscape
%\item siunitx
%\item stfloats
+%\item subcaption
%\item subfig
%\item tcolorbox
%\item times
@@ -222,13 +243,25 @@ pause% \end{macrocode}
\NeedsTeXFormat{LaTeX2e}
% Provide the name of your document class, the date it was last updated, and a comment about what it's used for
-\ProvidesClass{cs-techrep}[2024/04/10 Technical Reports in Computer Science and Software Engineering v0.2]
+\ProvidesClass{cs-techrep}[2024/09/16 Technical Reports in Computer Science and Software Engineering v0.4]
% Define marker counter for options (counter are global in latex):
+\newcounter{cstechrep@subfigtracker}
+\newcounter{cstechrep@subcaptiontracker}
\newcounter{cstechrep@pbalancetracker}
\newcounter{cstechrep@flushendtracker}
% Declare options:
+
+\DeclareOption{subfig}{
+ \setcounter{cstechrep@subfigtracker}{1}
+ \typeout{cs-techrep class: subfig option is set (use subfloat command).}
+}
+\DeclareOption{subcaption}{
+ \setcounter{cstechrep@subcaptiontracker}{1}
+ \typeout{cs-techrep class: subcaption option is set (use subfigure command).}
+}
+
\DeclareOption{onecolumn}{\OptionNotUsed} % IEEE option onecolumn will be ignored
\DeclareOption{pbalance}{
@@ -268,7 +301,7 @@ pause% \end{macrocode}
\DefcstechrepVar{Department} % e.g., Department of Electrical Engineering, Media and Computer Science
\DefcstechrepVar{Institution} % e.g., Ostbayerische Technische Hochschule Amberg-Weiden
\DefcstechrepVar{Address} % e.g., Amberg, Germany
-\DefcstechrepVar{Series} % e.g., Technical Reports
+\DefcstechrepVar{Type} % e.g., Technical Report
\DefcstechrepVar{Year} % e.g., 2023
\DefcstechrepVar{Title}
\DefcstechrepVar{Month} % e.g., 6 (for June)
@@ -355,7 +388,7 @@ pause% \end{macrocode}
\RequirePackage[cmyk, table]{xcolor}
-\RequirePackage[nolist]{acronym}
+\RequirePackage[nolist,smaller]{acronym}
% Code Listings
\RequirePackage{listings}
@@ -456,7 +489,7 @@ pause% \end{macrocode}
\RequirePackage{booktabs}
% Extended enumerate, such as \begin{compactenum}
-\RequirePackage{paralist}
+\RequirePackage[alwaysadjust]{paralist}
% Read: Is there a disadvantage to using natbib=true with biblatex?
% https://tex.stackexchange.com/questions/149313/is-there-a-disadvantage-to-using-natbib-true-with-biblatex
@@ -490,6 +523,7 @@ pause% \end{macrocode}
autolang=other
]{biblatex}
+% Due to applied option defernumbers=true:
% Prevent citations in the references are being numbered as '0' in ArXiv
% https://tex.stackexchange.com/questions/463556/all-the-citations-in-the-references-are-being-numbered-as-0-in-arxiv-while-upl
\makeatletter
@@ -636,9 +670,9 @@ pause% \end{macrocode}
\RequirePackage{pdflscape}
\RequirePackage{afterpage}
-% Allows to hyphenate a word that contains a dash:
-% https://stackoverflow.com/questions/2193307/how-do-i-get-latex-to-hyphenate-a-word-that-contains-a-dash
-\RequirePackage[shortcuts]{extdash} % Use \-/ for a breakable dash that does not prevent the remainer of the word to be hyphenated
+% requires, e.g., \PassOptionsToPackage{
+% type=CC,modifier=by,version=4.0}{doclicense} before \documentclass
+\RequirePackage[hyperxmp=false,lang=English]{doclicense}
% Improve wrapping of URLs - hint by http://tex.stackexchange.com/a/10419/9075
\makeatletter
@@ -651,7 +685,9 @@ pause% \end{macrocode}
\begin{minipage}{0.8\textwidth}
\centering
% Creative Commons / Open Access:
- \href{https://creativecommons.org/licenses/by/4.0/}{\ccby{} This work is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) License.}
+ %\href{https://creativecommons.org/licenses/by/4.0/}{\ccby{} This work is %licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) %License.}
+ % License based on doclicense package:
+ \href{\doclicenseURL}{\doclicenseIcon{} This work is licensed under a \doclicenseLongNameRef{} (\doclicenseNameRef{}) license.}
% Citation advice:
\\Please cite as: \fullcite{selfref}.
\end{minipage}
@@ -683,7 +719,18 @@ pause% \end{macrocode}
\cstechrepAddress
}}
-\IEEEspecialpapernotice{\cstechrepSeries: \cstechrepNumber, \citemonth{selfref} \cstechrepYear}
+\IEEEspecialpapernotice{\cstechrepType: \cstechrepNumber, \citemonth{selfref} \cstechrepYear}
+
+% subfigure captions with parentheses and footnotesize:
+\ifnum\value{cstechrep@subfigtracker}=1
+ \typeout{cs-techrep class: load subfig package (use subfloat command).}
+ \RequirePackage[caption=false,font=footnotesize]{subfig}
+\fi
+\ifnum\value{cstechrep@subcaptiontracker}=1
+ \typeout{cs-techrep class: load subcaption package (use subfigure command).}
+ \RequirePackage{subcaption}
+ \captionsetup[subfigure]{labelformat=parens,font=footnotesize}
+\fi
% Balance/level columns at the last page / in bibliography
% DISCLAIMER: No solution is a 100%/perfect one!
@@ -699,6 +746,14 @@ pause% \end{macrocode}
\RequirePackage{flushend}
\fi
+% ========================================================
+% Packages that need to be loaded last:
+
+% Allows to hyphenate a word that contains a dash:
+% https://stackoverflow.com/questions/2193307/how-do-i-get-latex-to-hyphenate-a-word-that-contains-a-dash
+\RequirePackage[shortcuts]{extdash} % Use \-/ for a breakable dash that does not prevent the remainer of the word to be hyphenated
+% ========================================================
+
% Finally, we'll use \endinput to indicate that LaTeX can stop reading this file. LaTeX will ignore anything after this line.
\endinput
% \end{macrocode}
diff --git a/macros/latex/contrib/cs-techrep/cs-techrep.ins b/macros/latex/contrib/cs-techrep/cs-techrep.ins
index 0fc5868464..51ed401600 100644
--- a/macros/latex/contrib/cs-techrep/cs-techrep.ins
+++ b/macros/latex/contrib/cs-techrep/cs-techrep.ins
@@ -1,4 +1,4 @@
-% cs-techrep.ins generated using makedtx version 1.2 2024/4/10 18:14
+% cs-techrep.ins generated using makedtx version 1.2 2024/9/14 21:40
\input docstrip
\preamble
diff --git a/macros/latex/contrib/cs-techrep/cs-techrep.pdf b/macros/latex/contrib/cs-techrep/cs-techrep.pdf
index 766e80d57b..6374436b6c 100644
--- a/macros/latex/contrib/cs-techrep/cs-techrep.pdf
+++ b/macros/latex/contrib/cs-techrep/cs-techrep.pdf
Binary files differ
diff --git a/macros/latex/contrib/cs-techrep/template/cpn_all_all.bib b/macros/latex/contrib/cs-techrep/template/cpn_all_all.bib
index cc7abaec4a..ba79c01832 100644
--- a/macros/latex/contrib/cs-techrep/template/cpn_all_all.bib
+++ b/macros/latex/contrib/cs-techrep/template/cpn_all_all.bib
@@ -1,3 +1,4 @@
+
@Thesis{neumann2004sa,
author = {Neumann, Christoph P.},
title = {{Conceptional Design and Realization of a `Component Test Stand' for Measurements on Enterprise JavaBeans}},
@@ -7,6 +8,7 @@
type = {Studienarbeit},
_url = {https://www.cyberlytics.eu/theses/all/Studienarbeit_ChristophPeterNeumann_revised/}
}
+
@Thesis{neumann2005da,
author = {Neumann, Christoph P.},
title = {{Design of an Open Framework for Optimizing the Distribution of Hardware and Software Components in Control Networks for Vehicles}},
@@ -16,6 +18,7 @@
type = {Diplomarbeit},
_url = {https://www.cyberlytics.eu/theses/all/Diplomarbeit_ChristophPeterNeumann_original/}
}
+
@INPROCEEDINGS{MeNe04testejb,
author = {Marcus Meyerh{\"o}fer and Christoph Neumann},
title = {{TestEJB} -- A Measurement Framework for {EJBs}},
@@ -35,21 +38,20 @@
@INPROCEEDINGS{NHSL09oxdbs,
author = {Christoph P. Neumann and Stefan Hanisch and Bernhard Schiemann and
- Richard Lenz},
+ Richard Lenz},
title = {{OXDBS -- Erweiterung einer nativen XML\-/Datenbank um die Validierung
- und Konsistenzpr{\"u}fung gegen eine OWL\-/Ontologie}},
+ und Konsistenzpr{\"u}fung gegen eine OWL\-/Ontologie}},
booktitle = {Tagungsband der 54.\,GMDS\-/Jahrestagung},
year = {2009},
_pages = {271:1--271:2},
address = {Essen, DE},
month = sep,
organization = {{Deutsche Gesellschaft f{\"u}r Medizinische Informatik, Biometrie
- und Epidemiologie} (GMDS)},
+ und Epidemiologie} (GMDS)},
doi = {10.3205/09GMDS271},
_url = {http://www.egms.de/en/meetings/gmds2009/09gmds271.shtml},
}
-
@INPROCEEDINGS{NeWL09xdsrig,
author = {Christoph P. Neumann and Florian Wagner and Richard Lenz},
title = {{XdsRig -- Eine Open\-/Source IHE XDS Testumgebung}},
@@ -59,15 +61,14 @@
address = {Essen, DE},
month = sep,
organization = {{Deutsche Gesellschaft f{\"u}r Medizinische Informatik, Biometrie
- und Epidemiologie} (GMDS)},
+ und Epidemiologie} (GMDS)},
doi = {10.3205/09GMDS276},
_url = {http://www.egms.de/en/meetings/gmds2009/09gmds276.shtml},
}
-
@INPROCEEDINGS{NRDL09deus,
- author = {Christoph P. Neumann and Florian Rampp and Michael Daum and Richard Lenz},
- title = {{A Mediated Publish\-/Subscribe System for Inter\-/Institutional Process Support in Healthcare}},
+ author = {Christoph P. Neumann and Florian Rampp and Michael Daum and Richard Lenz},
+ title = {{A Mediated Publish\-/Subscribe System for Inter\-/Institutional Process Support in Healthcare}},
booktitle = {Proc of the 3rd ACM Int'l Conf on Distributed Event\-/Based Systems (DEBS 2009)},
year = {2009},
_chapter = {14},
@@ -85,8 +86,8 @@
author = {Christoph P. Neumann and Richard Lenz},
title = {{alpha\-/Flow: A Document\-/based Approach to Inter\-/Institutional Process Support in Healthcare}},
booktitle = {Proc of the 3rd Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
- on Business Process Management (BPM'09)},
+ in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
+ on Business Process Management (BPM'09)},
year = {2009},
pages = {569--580},
address = {Ulm, DE},
@@ -100,10 +101,10 @@
@INPROCEEDINGS{NeLe09dmps,
author = {Christoph P. Neumann and Richard Lenz},
title = {{A Light\-/Weight System Extension Supporting Document\-/based Processes
- in Healthcare}},
+ in Healthcare}},
booktitle = {Proc of the 3rd Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
- on Business Process Management (BPM'09)},
+ in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
+ on Business Process Management (BPM'09)},
year = {2009},
pages = {557--568},
address = {Ulm, DE},
@@ -140,12 +141,13 @@
doi = {10.1145/1866480.1866502},
_isbn = {978\-/1\-/60558\-/900\-/8},
}
+
@INPROCEEDINGS{NSWL11alphaadaptive,
author = {Christoph P. Neumann and Peter K. Schwab and Andreas M. Wahl and Richard Lenz},
title = {{alpha\-/Adaptive: Evolutionary Workflow Metadata in Distributed Document\-/Oriented Process Management}},
booktitle = {Proc of the 4th Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'11) in conjunction with the 9th Int'l Conf
- on Business Process Management (BPM'11)},
+ in Healthcare (ProHealth'11) in conjunction with the 9th Int'l Conf
+ on Business Process Management (BPM'11)},
year = {2011},
pages = {225--236},
address = {Clermont\-/Ferrand, FR},
@@ -209,26 +211,26 @@
}
@MastersThesis{Neumann2012dissPreprint_OldBibTeX,
- author = {Christoph P. Neumann},
- title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
- school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- type = {Dissertation},
- _type = {`Dissertation' (PhD thesis)},
- _type = {PhD thesis (`Dissertation' in Germany)},
- month = nov,
- year = 2012,
- url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
+ author = {Christoph P. Neumann},
+ title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
+ school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
+ type = {Dissertation},
+ _type = {`Dissertation' (PhD thesis)},
+ _type = {PhD thesis (`Dissertation' in Germany)},
+ month = nov,
+ year = 2012,
+ url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
}
@phdthesis{Neumann2012dissPreprint,
- author = {Christoph P. Neumann},
- title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
- school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- month = nov,
- year = 2012,
- address = {Erlangen},
- doi = {10.13140/RG.2.2.14719.79521},
- url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
+ author = {Christoph P. Neumann},
+ title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
+ school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
+ month = nov,
+ year = 2012,
+ address = {Erlangen},
+ doi = {10.13140/RG.2.2.14719.79521},
+ url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
}
@INPROCEEDINGS{NeLe13adhocCoop,
@@ -244,7 +246,9 @@
_isbn = {978\-/3\-/642\-/36437\-/2},
doi = {10.1007/978-3-642-36438-9_8},
_url = {https://doi.org/10.1007/978-3-642-36438-9_8},
-}@incollection{Neumann2012lni,
+}
+
+@incollection{Neumann2012lni,
author={Christoph P. Neumann},
editor={Abraham Bernstein and Wolfgang Effelsberg and Steffen H{\"o}lldobler and Hans{-}Peter Lenhof and Klaus{-}Peter L{\"o}hr and Paul Molitor and Gustaf Neumann and R{\"u}diger Reischuk and Nicole Schweikardt and Myra Spiliopoulou and Harald St{\"o}rrle and Sabine S{\"u}sstrunk},
title={Verteiltes Dokumenten\-/orientiertes Prozessmanagement im Gesundheitswesen},
@@ -256,18 +260,19 @@
year={2012},
url={https://dl.gi.de/20.500.12116/33740}
}
+
@BOOK{Neumann2013dissBook,
- author = {Christoph P. Neumann},
- title = {{Distributed Case Handling}},
- year = 2013,
- publisher = {Verlag Dr.~Hut},
- address = {M{\"u}nchen},
- isbn = {9783843909198},
- _urn = {urn:nbn:de:bvb:29\-/opus\-/39070},
- _url = {https://d-nb.info/1033041637},
- _note = {\url{http://www.opus.ub.uni-erlangen.de/opus/volltexte/2012/3907/}(preprint version)},
- _note = {\url{https://d-nb.info/1033041637}(DNB)},
- _note = {\url{https://www.dr.hut-verlag.de/978-3-8439-0919-8.html}(URL)}
+ author = {Christoph P. Neumann},
+ title = {{Distributed Case Handling}},
+ year = 2013,
+ publisher = {Verlag Dr.~Hut},
+ address = {M{\"u}nchen},
+ isbn = {9783843909198},
+ _urn = {urn:nbn:de:bvb:29\-/opus\-/39070},
+ _url = {https://d-nb.info/1033041637},
+ _note = {\url{http://www.opus.ub.uni-erlangen.de/opus/volltexte/2012/3907/}(preprint version)},
+ _note = {\url{https://d-nb.info/1033041637}(DNB)},
+ _note = {\url{https://www.dr.hut-verlag.de/978-3-8439-0919-8.html}(URL)}
}
@INPROCEEDINGS{IND+09lzatav,
@@ -363,11 +368,10 @@
month=apr,
year={2024},
doi = {10.48550/arXiv.2404.02637},
- _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2024_X_YY_ZZZZZ},
- _url = {https://doi.org/10.48550/arXiv.2404.02637},
+ _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2024_2_10_28007},
+ _url2 = {https://doi.org/10.48550/arXiv.2404.02637},
_issn = {2308\-/4294},
- _pages = {AA--OO},
- note = {accepted for publication}
+ pages = {19--24}
}
@INPROCEEDINGS{ToNe11alphaprops,
@@ -425,6 +429,28 @@
_url2 = {https://www.oth-aw.de/files/oth-aw/Aktuelles/Veroeffentlichungen/Forschungsbericht/OTH_Forschungsbericht_2024.pdf},
_url3 = {https://www.researchgate.net/profile/Christoph-Neumann-8/publication/379109359_Analyse_von_Methoden_zur_Sicherung_der_Vertraulichkeit_in_Neuronalen_Netzen/links/65faff43a4857c7962654c5c/Analyse-von-Methoden-zur-Sicherung-der-Vertraulichkeit-in-Neuronalen-Netzen.pdf}
}
+
+@MISC{StNe24kosmosis,
+ title={The Kosmosis Use-Case of Crypto Rug Pull Detection and Prevention},
+ author={Philipp Stangl and Christoph P. Neumann},
+ year={2024},
+ eprint={2405.19762},
+ archivePrefix={arXiv},
+ primaryClass={cs.CR}
+}
+
+@TECHREPORT{StNe24kosmosis-TR,
+ author = {Philipp Stangl and Christoph P. Neumann},
+ title = {{The Kosmosis Use-Case of Crypto Rug Pull Detection and Prevention}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab at the Department of Electrical Engineering, Media and Computer Science},
+ series = {Technischer Bericht},
+ number = {CL-2024-01},
+ year = 2024,
+ month = 2,
+ doi = {10.48550/arXiv.2405.19762},
+ _url = {https://doi.org/10.48550/arXiv.2405.19762},
+}
+
@TECHREPORT{ModA-TR-2021SS-WAE-TeamWeiss-CovidDashboard,
author = {Tobias Bauer and Albert Hahn and Lukas Kleinlein and Nicolas Proske and Leonard W{\"o}llmer and Andrei Trukhin and Christoph P. Neumann},
title = {{Covidash: Eine MEAN\-/Variation-basierte Webanwendung für Inzidenz\-/Zahlen und Impffortschritt in Deutschland}},
@@ -543,7 +569,6 @@
_url = {https://dx.doi.org/10.13140/RG.2.2.33933.31209},
}
-
@TECHREPORT{ModA-TR-2023SS-BDCC-TeamRot-CompVisPipeline,
author = {André Kestler and Antonio Vidos and Marcus Haberl and Tobias Dobmeier and Tobias Lettner and Tobias Weiß and Christoph P. Neumann},
title = {{Computer Vision Pipeline: Eine React- und Flask\-/basierte Webanwendung zur No\-/Code\-/Bildverarbeitung mit Cloud\-/Deployment}},
@@ -622,4 +647,107 @@
doi = {10.13140/RG.2.2.22177.79209},
_url = {https://dx.doi.org/10.13140/RG.2.2.22177.79209},
}
+@TECHREPORT{ModA-TR-2024SS-CCT-TeamGruen-CloudDice,
+ author = {Lukas Rupp and Franziska Rubenbauer and Christoph P. Neumann},
+ title = {{CloudDice: Ein React\-/basiertes Kniffel-Würfelspiel}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ series = {Technische Berichte},
+ number = {CL-2024-14},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.11229.83686},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.11229.83686},
+}
+
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamCyan-SkillIssue,
+ author = {Fabian Heindl and Paul Brand and Daniel Reichert and Christoph P. Neumann},
+ title = {{SkillIssue: A MERN\-/based Low\-/Latency Multi\-/User Game for Displaying True Skill With Your Friends}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-12},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.32201.35686},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.32201.35686},
+}
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamGelb-GoalGuru,
+ author = {Bernhard Gailer and Timo Gräf and Maria Lyoteva and Tsvetan Stanchev and Apporva Bhoir and Christoph P. Neumann},
+ title = {{GoalGuru: A React- and FastAPI\-/based Cloud Application for Predicting Soccer Games Outcome}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-11},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.18779.58407},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.18779.58407},
+}
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamWeiss-InfluenzaConnect,
+ author = {Sebastian Weidner and Jonas Hermann and Nils Bayerl and Dominik Schwagerl and \ Timon Spichtinger and Christoph P. Neumann},
+ title = {{InfluenzaConnect: Eine React- und Flask\-/basierte Webanwendung für Influencer\-/Marketing}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technische Berichte},
+ number = {CL-2024-10},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.25490.47041},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.25490.47041},
+}
+
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamGruen-NanoVend,
+ author = {Lukas Hirsch and Johannes Küffner and Denis Tomazi and Christoph P. Neumann},
+ title = {{NanoVend: Ein Cloud\-/native E-Commerce\-/Backend als Baukasten für mittelständische Unternehmen}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technische Berichte},
+ number = {CL-2024-08},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.12068.69761},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.12068.69761},
+}
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamRot-StockSentinel,
+ author = {Andreas Hecht and Linus Heise and Oliver Kneidl and Eva-Maria Maurer and Christoph P. Neumann},
+ title = {{StockSentinel: AI\-/Powered Web Tool for Analyzing the Markets Perception of Stocks}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-07},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.20457.30564},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.20457.30564},
+}
+@TECHREPORT{ModA-TR-2024SS-WAE-TeamCyan-Connect4IfYouCan,
+ author = {Amos Asmerom and Daniel Reichert and Fabian Heindl and Christoph P. Neumann},
+ title = {{Connect4IfYouCan: A MERN\-/based Web Game for Competitive Two Player Matches}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-06},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.27168.19200},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.27168.19200},
+}
+
+@TECHREPORT{ModA-TR-2024SS-WAE-TeamWeiss-Geodingens,
+ author = {Viktor Hense and Johannes Lindner and Lukas Mrosek and Christoph P. Neumann},
+ title = {{Geodingens: A Web Application for Intuitive and User\-/friendly Work with Geopandas}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-04},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.13746.41929},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.13746.41929},
+}
+
+@TECHREPORT{ModA-TR-2024SS-WAE-TeamGruen-MunchMunch,
+ author = {Juliana Kühn and Nikolett Rácz and Raffael Friedl and Maximilian Lippmann and Christoph P. Neumann},
+ title = {{MunchMunch: Eine MERN\-/basierte kulinarische Web-Anwendung für verbessertes User Engagement beim Entdecken neuer Gerichte und Rezepte}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technische Berichte},
+ number = {CL-2024-02},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.23812.74883},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.23812.74883},
+}
diff --git a/macros/latex/contrib/cs-techrep/template/cpn_supervised_all.bib b/macros/latex/contrib/cs-techrep/template/cpn_supervised_all.bib
index d4341f790c..910906ac9a 100644
--- a/macros/latex/contrib/cs-techrep/template/cpn_supervised_all.bib
+++ b/macros/latex/contrib/cs-techrep/template/cpn_supervised_all.bib
@@ -1,3 +1,4 @@
+
@Thesis{kampf2012bt,
author = {Kampf, Marvin},
title = {{alpha\-/CDM: Konzeption und Implementierung eines Modells zur Inhaltsabh{\"a}ngigkeit als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
diff --git a/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.pdf b/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.pdf
index ca478d3d61..c0c516b25b 100644
--- a/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.pdf
+++ b/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.pdf
Binary files differ
diff --git a/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.tex b/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.tex
index 1ae583aed0..5dc34ceb3f 100644
--- a/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.tex
+++ b/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.tex
@@ -1,7 +1,8 @@
+\PassOptionsToPackage{type=CC,modifier=by,version=4.0}{doclicense}
\documentclass[conference,a4paper,flushend]{cs-techrep}
\pdfoutput=1 % pdflatex hint for arxiv.org (within first 5 lines)
-% Class iaria.cls loads biblatex / biber with predefined options
+% Class cs-techrep.cls loads biblatex / biber with predefined options
\addbibresource{embedded.bib} % its content is declared below, embedded within this tex-file
\addbibresource{webdev_commons.bib} % includes REST, React, Angular, Vue, Svelte, Docker, AWS-*, Socket.IO, and many more!
\addbibresource{cpn_all_all.bib} % includes all previous CyberLytics@OTH-AW technical reports
@@ -17,7 +18,7 @@
%\cstechrepAuthorListBib{Vorname1 Nachname1 and Vorname2 Nachname2 and Vorname3 Nachname3 and Vorname4 Nachname4 and Vorname5 Nachname5 and Vorname6 Nachname6 and Christoph P. Neumann}
% Capitalization: https://capitalizemytitle.com/style/Chicago/
-\cstechrepTitleTex{The cs-techrep Example of a Technical Report in Computer Science and Software Engineering}
+\cstechrepTitleTex{The cs-techrep Paper Example of a Technical Report in Computer Science or Software Engineering}
% IF you need manual linebreaks in the titel, then clone the title without linebreaks for BibTeX:
\cstechrepTitleBib{{\cstechrepTitleTex}}
%\cstechrepTitleBib{The cs-techrep \LaTeX{} Class Example of a Software Engineering Technical Report}
@@ -27,11 +28,11 @@
\cstechrepInstitution{Ostbayerische Technische Hochschule Amberg\-/Weiden}
\cstechrepAddress{Amberg, Germany}
%\cstechrepAddress{Amberg, Deutschland} % DE
-\cstechrepSeries{Technical Reports}
-%\cstechrepSeries{Technische Berichte} % DE
-\cstechrepYear{2024}
-\cstechrepMonth{3}
-\cstechrepNumber{CL-\cstechrepYear{}-42}
+\cstechrepType{Technical Report}
+%\cstechrepType{Technischer Bericht} % DE
+\cstechrepYear{2024} % CTAN
+\cstechrepMonth{9} % CTAN
+\cstechrepNumber{CL-TR-\cstechrepYear{}-99}
\cstechrepLang{english} % en-US
%\cstechrepLang{ngerman} % DE
@@ -47,7 +48,7 @@
author = {|cstechrepAuthorListBib},
title = {\cstechrepTitleBib},
institution = {\cstechrepInstitution, \cstechrepDepartment},
- series = {\cstechrepSeries},
+ type = {\cstechrepType},
number = {\cstechrepNumber},
year = {|cstechrepYear},
month = {|cstechrepMonth},
@@ -123,7 +124,7 @@
\maketitle
\begin{abstract}
-\lipsum[1][3-10]
+\lipsum[11]%[3-10]
\{\,\faWarning{}The abstract does neither mention a teaching module nor a team/project,
it is a summary of the content of the technical report, thus, the objectives and architecture.\}
\end{abstract}
@@ -146,7 +147,7 @@ The pipe symbol \textquote{\textbar{}} in the headings represents alternatives.
The problem statement needs to be written from perspective of a subject-matter expert (\textquote{Fachkonzept}). Like an elevator pitch / mission statement \faWarning{}. NOT from a technical perspective.
\section{Optional: Related Work \textbar{} State of the Art \textbar{} Methods \textbar{} Data Acquisition}
-\lipsum[2]
+\lipsum[12]
\section{Architectural Goals} % \textbar{} \textquote{Architekturziele}}
Provides
@@ -169,13 +170,13 @@ In discussions concerning multi-tier architecture, the term \textquote{layer} is
\subsection{Presentation Tier \textbar{} Frontend}
-\lipsum[3]
+\lipsum[13]
\subsection{Application Tier \textbar{} Backend \textbar{} \textquote{Anwendungskern}}
-\lipsum[4]
+\lipsum[14]
\subsection{Data Tier \textbar{} Persistence}
-\lipsum[5]
+\lipsum[15]
\subsection{Optional: Infrastructure and Deployment \textbar{} Distribution Perspective \textbar{} \textquote{Verteilungssicht}}
Provides (1) information about configuration, exact software versions, SBOM, DevOps, Cloud, AWS, and others.
@@ -184,51 +185,54 @@ Could include (3) a software bill of materials (SBOM), at least for the major li
\section{Discussion \textbar{} Evaluation \textbar{} \\ Lessons Learned \textbar{} Impediments}
-\lipsum[6]
+\lipsum[16]
\section{Conclusion and Future Work \textbar{} \\ \textquote{Fazit und Ausblick}}
-\lipsum[7]
+\lipsum[17]
-
-%%% Advisor
-\nocite{StNe23foodfresh}
-
-%%% First-Author
+%%% CPN Peer-Rev'd
+\nocite{LeNe24vocattllm} % Co
+\nocite{PANP23seccloudfogai} % Co
+\nocite{StNe23foodfresh} % Advisor
\nocite{NeLe13adhocCoop}
\nocite{Neumann2012lni}
\nocite{NeLe12alphaFlow}
\nocite{NeHL12hydra}
\nocite{NeWL12offsync}
+\nocite{WaNe12alphaoffsync} % Co
\nocite{NSWL11alphaadaptive}
+\nocite{ToNe11alphaprops} % Co
+\nocite{JBN+10fcmdb} % Co
+\nocite{FDI+10esmmog} % Co
\nocite{NeFL10oxdbs}
\nocite{NeLe10alphaUC}
+\nocite{ILN+09semrttx} % Co
+\nocite{NHSL09oxdbs} % DE
\nocite{NeLe09alphaflow}
\nocite{NeLe09dmps}
-\nocite{NHSL09oxdbs} % DE
\nocite{NeWL09xdsrig} % DE
\nocite{NRDL09deus}
+\nocite{IND+09lzatav} % Co (DE)
+\nocite{MeNe04testejb} % Pseudo-Co
-%%% Co-Authorship
-\nocite{LeNe24vocattllm}
-\nocite{PANP23seccloudfogai}
-\nocite{WaNe12alphaoffsync}
-\nocite{ToNe11alphaprops}
-\nocite{FDI+10esmmog}
-\nocite{JBN+10fcmdb}
-\nocite{ILN+09semrttx}
-\nocite{IND+09lzatav} % DE
-\nocite{MeNe04testejb}
-
-%%% Monographic Work
+%%% CPN Monographic Work
\nocite{Neumann2013dissBook}
\nocite{Neumann2012dissPreprint}
\nocite{neumann2005da}
\nocite{neumann2004sa}
%%% TechRep / Non-Peer-Reviewed
-
+\nocite{ModA-TR-2024SS-CCT-TeamGruen-CloudDice}
+\nocite{ModA-TR-2024SS-BCN-TeamCyan-SkillIssue}
+\nocite{ModA-TR-2024SS-BCN-TeamGelb-GoalGuru}
+\nocite{ModA-TR-2024SS-BCN-TeamWeiss-InfluenzaConnect}
+\nocite{ModA-TR-2024SS-BCN-TeamGruen-NanoVend}
+\nocite{ModA-TR-2024SS-BCN-TeamRot-StockSentinel}
+\nocite{ModA-TR-2024SS-WAE-TeamCyan-Connect4IfYouCan}
+\nocite{ModA-TR-2024SS-WAE-TeamWeiss-Geodingens}
+\nocite{ModA-TR-2024SS-WAE-TeamGruen-MunchMunch}
\nocite{SaNe24othfb}
-
+\nocite{StNe24kosmosis-TR}
\nocite{ModA-TR-2023SS-WAE-TeamWeiss-Neunerln}
\nocite{ModA-TR-2023SS-BDCC-TeamRot-CompVisPipeline}
\nocite{ModA-TR-2023SS-BDCC-TeamBlau-NauticalNonsense}
@@ -246,7 +250,6 @@ Could include (3) a software bill of materials (SBOM), at least for the major li
\nocite{ModA-TR-2021SS-WAE-TeamWeiss-CovidDashboard}
\nocite{ModA-TR-2021SS-WAE-TeamRot-FireForceDefense}
\nocite{ModA-TR-2021SS-WAE-TeamGruen-MedPlanner}
-
\nocite{NeRL12deus}
\nocite{LNR+11egr}
diff --git a/macros/latex/contrib/cs-techrep/template/selfref.bib b/macros/latex/contrib/cs-techrep/template/selfref.bib
index f498920efc..b6e15b23a7 100644
--- a/macros/latex/contrib/cs-techrep/template/selfref.bib
+++ b/macros/latex/contrib/cs-techrep/template/selfref.bib
@@ -2,9 +2,9 @@
author = {Christoph P. Neumann},
title = {\cstechrepTitleBib},
institution = {\cstechrepInstitution, \cstechrepDepartment},
- series = {\cstechrepSeries},
+ type = {\cstechrepType},
number = {\cstechrepNumber},
year = {2024},
- month = {3},
+ month = {9},
langid = {english},
}
diff --git a/macros/latex/contrib/cs-techrep/template/webdev_commons.bib b/macros/latex/contrib/cs-techrep/template/webdev_commons.bib
index 159bef9d0e..602a25edb6 100644
--- a/macros/latex/contrib/cs-techrep/template/webdev_commons.bib
+++ b/macros/latex/contrib/cs-techrep/template/webdev_commons.bib
@@ -1,572 +1,1234 @@
-
-@Online{sqlite,
- author = {Richard Hipp},
+@online{angular,
+ title = {{Angular}},
+ author = {Google},
+ url = {https://angular.io/},
+ note = {[Online]}
+}
+@online{asp,
+ title = {{ASP.NET}},
+ author = {Microsoft},
+ url = {https://dotnet.microsoft.com/apps/aspnet},
note = {[Online]},
- title = {{SQLite}: {F}eatures},
- url = {https://sqlite.org/features.html}
+ addendum = {(aufgerufen: 22.06.2024)},
+ ids = {asp_net}
+}
+@online{authjs,
+ title = {{Auth.js}},
+ author = {Balázs Orbán},
+ url = {https://authjs.dev/},
+ note = {[Online]}
+}
+@online{aws,
+ title = {{Amazon Web Services}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/},
+ note = {[Online]}
+}
+@online{aws-apigateway,
+ title = {{AWS API Gateway}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/api-gateway/},
+ note = {[Online]}
+}
+@online{aws-apprunner,
+ title = {{AWS AppRunner}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/apprunner/},
+ note = {[Online]}
+}
+@online{aws-cli,
+ title = {{AWS CLI}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/cli/},
+ note = {[Online]}
+}
+@online{aws-codebuild,
+ title = {{AWS CodeBuild}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/de/codebuild/},
+ note = {[Online]}
+}
+@online{aws-codecommit,
+ title = {{AWS CodeCommit}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/de/codecommit/},
+ note = {[Online]}
+}
+@online{aws-codepipeline,
+ title = {{AWS CodePipeline}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/de/codepipeline/},
+ note = {[Online]}
+}
+@online{aws-cognito,
+ title = {{{AWS Cognito}: Identity Platform}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/cognito/},
+ note = {[Online]}
+}
+@online{aws-ec2,
+ title = {{AWS EC2}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/ec2/},
+ note = {[Online]}
+}
+@online{aws-ecr,
+ title = {{AWS ECR}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/ecr/},
+ note = {[Online]}
+}
+@online{aws-elasticbeanstalk,
+ title = {{AWS Elastic Beanstalk}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/elasticbeanstalk/},
+ note = {[Online]}
+}
+@online{aws-iam,
+ title = {{AWS IAM}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/iam/},
+ note = {[Online]}
+}
+@online{aws-lambda,
+ title = {{AWS Lambda}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/lambda/},
+ note = {[Online]}
+}
+@online{aws-s3,
+ title = {{Amazon S3}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/s3/},
+ note = {[Online]}
+}
+@online{aws-sam,
+ title = {{AWS SAM}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/serverless/sam/},
+ note = {[Online]}
+}
+@online{aws-sdk-js,
+ title = {{{AWS SDK} for {JavaScript}}},
+ author = {Amazon},
+ url = {https://www.npmjs.com/package/aws-sdk},
+ note = {[Online]}
}
-
-@Online{django,
+@online{aws-toolkit-intelij,
+ title = {{{AWS Toolkit} for {IntelliJ IDEA}}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/intellij/},
+ note = {[Online]}
+}
+@online{axios,
+ title = {{Axios}},
+ author = {Matt Zabriskie},
+ url = {https://axios-http.com/},
+ note = {[Online]}
+}
+@online{bootstrap,
+ title = {{Bootstrap: Build fast, responsive sites}},
+ author = {Mark Otto und Jacob Thornton},
+ url = {https://getbootstrap.com/},
+ note = {[Online]}
+}
+@online{boto3,
+ title = {{{Boto3}: {AWS SDK} for Python}},
+ author = {Amazon},
+ url = {https://boto3.amazonaws.com/v1/documentation/api/latest/index.html},
+ note = {[Online]}
+}
+@online{catapi,
+ title = {{The Cat {API}}},
+ author = {Aden Forshaw},
+ url = {https://thecatapi.com/},
+ note = {[Online]}
+}
+@online{chai,
+ title = {{Chai Assertion Library}},
+ author = {Chai},
+ url = {https://www.chaijs.com/},
+ note = {[Online]}
+}
+@online{chess,
+ title = {{Chess}},
+ author = {chess.com},
+ url = {https://www.chess.com/},
+ note = {[Online]}
+}
+@online{csharp,
+ title = {{{C\#} Programming Language}},
+ author = {Microsoft},
+ url = {https://learn.microsoft.com/dotnet/csharp/},
+ note = {[Online]}
+}
+@online{cypress,
+ title = {{Cypress}},
+ author = {Brian Mann},
+ url = {https://www.cypress.io/},
+ note = {[Online]}
+}
+@online{d3js,
+ title = {{D3.js}},
+ author = {Observable},
+ url = {https://d3js.org},
+ note = {[Online]}
+}
+@online{django,
+ title = {{Django}},
author = {Adrian Holovaty and Simon Willison},
- note = {[Online]},
- title = {Django},
url = {https://www.djangoproject.com/},
+ note = {[Online]}
}
-
-@Online{fastapi,
- author = {Sebastián Ramírez},
- note = {[Online]},
- title = {FastAPI},
- url = {https://fastapi.tiangolo.com/},
-}
-
-@Online{docker,
+@online{docker,
+ title = {{Docker: Accelerated Container Application Development}},
author = {Docker},
- note = {[Online]},
- title = {Docker: Accelerated Container Application Development},
url = {https://www.docker.com/},
+ note = {[Online]}
}
-
-@Online{elasticsearch,
- author = {Elastic},
- note = {[Online]},
- title = {Elasticsearch Platform},
- url = {https://www.elastic.co/de/elasticsearch/},
-}
-
-@Online{react,
- author = {Facebook},
- note = {[Online]},
- title = {React},
- url = {https://react.dev/},
+@online{docker-compose,
+ title = {{Compose: Defining and Running Multi-Container Docker Applications}},
+ author = {Docker},
+ url = {https://docs.docker.com/compose/},
+ note = {[Online]}
}
-
-@Online{angular,
- author = {Google},
- note = {[Online]},
- title = {Angular},
- url = {https://angular.io/},
+@online{dotnet,
+ title = {{{.NET}: free, open-source, cross-platform framework}},
+ author = {Microsoft},
+ url = {https://dotnet.microsoft.com/},
+ note = {[Online]}
}
-
-@Online{vue,
- author = {Evan You},
- note = {[Online]},
- title = {Vue.js},
- url = {https://vuejs.org/},
+@online{elasticsearch,
+ title = {{Elasticsearch Platform}},
+ author = {Elastic},
+ url = {https://www.elastic.co/de/elasticsearch/},
+ note = {[Online]}
}
-
-@Online{eslint,
+@online{eslint,
+ title = {{ESLint: {P}luggable {J}avaScript linter}},
author = {Nicholas Zakas},
- note = {[Online]},
- title = {ESLint: {P}luggable {J}avaScript linter},
url = {https://eslint.org/},
+ note = {[Online]}
}
-
-@Online{express,
+@online{express,
+ title = {{Express}},
author = {Douglas Christopher Wilson},
- note = {[Online]},
- title = {Express},
url = {https://expressjs.com/},
+ note = {[Online]}
+}
+@online{fastapi,
+ title = {{FastAPI}},
+ author = {Sebastián Ramírez},
+ url = {https://fastapi.tiangolo.com/},
+ note = {[Online]}
}
-
-@Online{graphql,
+@online{flask,
+ title = {{Flask User's Guide}},
+ author = {Pallets},
+ url = {https://flask.palletsprojects.com/},
+ note = {[Online]}
+}
+@online{GitHub,
+ title = {{GitHub}},
+ url = {https://github.com/},
+ note = {[Online]}
+}
+@online{graphql,
+ title = {{GraphQL: {A} query language for your {API}}},
author = {Facebook},
- note = {[Online]},
- title = {GraphQL: {A} query language for your {API}},
url = {https://graphql.org/},
+ note = {[Online]}
+}
+@online{grpc,
+ title = {{gRPC: A high performance, open source universal RPC framework}},
+ author = {{CNCF}},
+ url = {https://grpc.io/},
+ note = {[Online]}
+}
+@online{hetzner,
+ title = {{Hetzner Cloud Hosting}},
+ author = {Hetzner},
+ url = {https://www.hetzner.com/cloud/},
+ note = {[Online]}
+}
+@online{InstaApi,
+ title = {{Instagram Basic Display API}},
+ author = {Facebook},
+ url = {https://developers.facebook.com/docs/instagram-basic-display-api},
+ note = {[Online]}
}
-
-@Online{istanbuljs,
+@online{istanbuljs,
+ title = {{Istanbul: {J}avaScript test coverage made simple}},
author = {Istanbul},
- note = {[Online]},
- title = {Istanbul: {J}avaScript test coverage made simple},
url = {https://istanbul.js.org/},
+ note = {[Online]}
}
-
-@Online{node,
- author = {Ryan Dahl},
+@online{jest,
+ title = {{Jest is a delightful JavaScript Testing Framework with a focus on simplicity}},
+ author = {Facebook},
+ url = {https://jestjs.io/},
+ note = {[Online]}
+}
+@online{json,
+ title = {{JSON}},
+ author = {Douglas Crockford},
+ url = {https://www.json.org/},
+ note = {[Online]}
+}
+@online{kaggle-elonmusktweets,
+ title = {{Kaggle Datasets: Elon Musk Tweets}},
+ author = {Google},
+ url = {https://www.kaggle.com/datasets/gpreda/elon-musk-tweets},
+ note = {[Online]}
+}
+@online{kubernetes,
+ title = {{Kubernetes/K8s: open-source system for automating deployment, scaling, and management of containerized applications}},
+ author = {{CNCF}},
+ url = {https://kubernetes.io/},
+ note = {[Online]},
+ ids = {k8s}
+}
+@online{mariadb,
+ title = {{MariaDB Community Server}},
+ author = {Michael Widenius},
+ url = {https://mariadb.com/},
+ note = {[Online]},
+ ids = {maria}
+}
+@online{mocha,
+ title = {{Mocha Testing Framework}},
+ author = {Mocha},
+ url = {https://mochajs.org/},
+ note = {[Online]}
+}
+@book{mongo_book,
+ title = {{MongoDB: The Definitive Guide}},
+ author = {Kristina Chodorow},
+ year = 2013,
+ publisher = {O'Reilly Media}
+}
+@online{mongodb,
+ title = {{MongoDB}},
+ author = {Dwight Merriman and Eliot Horowitz and Kevin Ryan},
+ url = {https://www.mongodb.com/},
note = {[Online]},
- title = {Node.js},
+ ids = {mongo}
+}
+@online{mongodb-atlas,
+ title = {{MongoDB Atlas}},
+ author = {{MongoDB, Inc.}},
+ url = {https://www.mongodb.com/atlas},
+ note = {[Online]}
+}
+@online{mongodb-atlas-serverless,
+ title = {{{AWS} Prescriptive Guidance: {MongoDB Atlas} on {AWS} -- Migrating from a self-managed environment to the {AWS} Cloud}},
+ author = {Amazon},
+ url = {https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/serverless.html},
+ note = {[Online]}
+}
+@online{mongodb-replication,
+ title = {{{MongoDB} Replication}},
+ author = {{MongoDB, Inc.}},
+ url = {https://www.mongodb.com/docs/manual/replication/},
+ note = {[Online]}
+}
+@online{mswjs,
+ title = {{Mock Service Worker: {API} mocking library for browser and Node.js}},
+ author = {Artem Zakharchenko},
+ url = {https://mswjs.io/},
+ note = {[Online]}
+}
+@online{mui,
+ title = {{{MUI}: The React component library you always wanted}},
+ author = {{Material UI SAS}},
+ url = {https://mui.com},
+ note = {[Online]}
+}
+@online{mysql,
+ title = {{MySQL: high-performance and scalable Online Transaction Processing}},
+ author = {Michael Widenius und David Axmark},
+ url = {https://www.mysql.com/},
+ note = {[Online]}
+}
+@online{nextjs,
+ title = {{Next.js}},
+ author = {Vercel},
+ url = {https://nextjs.org/},
+ note = {[Online]}
+}
+@online{node,
+ title = {{Node.js}},
+ author = {Ryan Dahl},
url = {https://www.nodejs.org/},
+ note = {[Online]},
+ ids = {nodejs}
}
-
-@Online{npm,
+@online{npm,
+ title = {{npm}},
author = {Isaac Schlueter},
- note = {[Online]},
- title = {npm},
url = {https://www.npmjs.com/},
+ note = {[Online]}
}
-
-@Online{prettier,
- author = {Prettier},
+@online{ontotext,
+ title = {{GraphDB}},
+ author = {Ontotext},
+ url = {https://www.ontotext.com/products/graphdb/},
+ note = {[Online]}
+}
+@online{opcua,
+ title = {{OPC Unified Architecture: a platform independent service-oriented architecture that integrates all the functionality of the individual OPC Classic specifications into one extensible framework}},
+ author = {{OPC}},
+ url = {https://opcfoundation.org/about/opc-technologies/opc-ua/},
+ note = {[Online]}
+}
+@online{opencv,
+ title = {{{OpenCV}: Open Source Computer Vision Library}},
+ author = {Gray Bradsky},
+ url = {https://opencv.org},
+ note = {[Online]}
+}
+@online{phaser,
+ title = {{Phaser Game Framework}},
+ author = {{Photon Storm}},
+ url = {https://phaser.io/},
+ note = {[Online]}
+}
+@online{pinia,
+ title = {{Pinia}},
+ author = {Eduardo San Martin Morote},
+ url = {https://pinia.vuejs.org/},
+ note = {[Online]}
+}
+@online{postgresql,
+ title = {{PostgreSQL: Open Source Relational Database}},
+ author = {Andrew Yu and Jolly Chen},
+ url = {https://www.postgresql.org/},
note = {[Online]},
- title = {Prettier: {O}pinionated {C}ode {F}ormatter},
+ ids = {postgres}
+}
+@online{prettier,
+ title = {{Prettier: {O}pinionated {C}ode {F}ormatter}},
+ author = {Prettier},
url = {https://prettier.io/},
+ note = {[Online]}
+}
+@online{prisma,
+ title = {{Prisma}},
+ author = {{Prisma Data, Inc.}},
+ url = {https://www.prisma.io/},
+ note = {[Online]}
+}
+@online{pydantic,
+ title = {{Pydantic Documentation}},
+ author = {Sebastián Ramírez},
+ url = {https://docs.pydantic.dev/},
+ note = {[Online]}
+}
+@online{pymongo,
+ title = {{PyMongo}},
+ author = {{MongoDB, Inc.}},
+ url = {https://pypi.org/project/pymongo/},
+ note = {[Online]}
+}
+@online{pytest,
+ title = {{pytest: helps you write better programs}},
+ author = {Guido van Rossum},
+ url = {https://docs.pytest.org/},
+ note = {[Online]}
+}
+@online{pytest,
+ title = {{Pytest}},
+ author = {Holger Krekel and {pytest Entwicklungteam}},
+ url = {https://pytest.org/},
+ note = {[Online]}
+}
+@online{python,
+ title = {{Python}},
+ author = {Guido van Rossum},
+ url = {https://www.python.org},
+ note = {[Online]}
+}
+@online{react,
+ title = {{React}},
+ author = {Facebook},
+ url = {https://react.dev/},
+ note = {[Online]}
+}
+@online{reacttestinglibrary,
+ title = {{TestingLibraryReact}},
+ author = {React Testing Library},
+ url = {https://testing-library.com/docs/react-testing-library/intro/},
+ note = {[Online]}
+}
+@book{restful,
+ title = {{Architectural styles and the design of network-based software architectures}},
+ author = {Fielding, Roy Thomas},
+ year = 2000,
+ publisher = {University of California, Irvine},
+ ids = {rest}
+}
+@online{restfulapi,
+ title = {{REST API Tutorial}},
+ author = {Lokesh Gupta},
+ url = {https://restfulapi.net/},
+ note = {[Online]}
+}
+@techreport{rfc6455,
+ title = {{The WebSocket Protocol}},
+ author = {Alexey Melnikov and Ian Fette},
+ year = 2011,
+ month = dec,
+ number = 6455,
+ doi = {10.17487/RFC6455},
+ issn = {2070-1721},
+ url = {https://www.rfc-editor.org/info/rfc6455},
+ type = {{RFC}}
+}
+@online{scikit,
+ title = {{scikit-learn: Machine Learning in Python}},
+ author = {David Cournapeau},
+ url = {https://scikit-learn.org/},
+ note = {[Online]},
+ ids = {scikit-learn}
+}
+@article{scikit-image,
+ title = {{scikit-image: image processing in {P}ython}},
+ author = {van der Walt, {S}t\'efan and {S}ch\"onberger, {J}ohannes {L}. and {Nunez-Iglesias}, {J}uan and {B}oulogne, {F}ran\c{c}ois and {W}arner, {J}oshua {D}. and {Y}ager, {N}eil and {G}ouillart, {E}mmanuelle and {Y}u, {T}ony and the scikit-image contributors},
+ year = 2014,
+ month = 6,
+ journal = {PeerJ},
+ volume = 2,
+ pages = {e453},
+ doi = {10.7717/peerj.453},
+ issn = {2167-8359},
+ url = {https://doi.org/10.7717/peerj.453},
+ keywords = {Image processing, Reproducible research, Education, Visualization, Open source, Python, Scientific programming}
+}
+@online{scratch,
+ title = {{Scratch}},
+ author = {{MIT Media Lab}},
+ url = {https://scratch.mit.edu/projects/editor/},
+ note = {[Online]}
+}
+@online{selenium,
+ title = {{Selenium}},
+ author = {Selenium},
+ url = {https://www.selenium.dev/},
+ note = {[Online]}
+}
+@online{socketio,
+ title = {{Socket.IO}},
+ author = {Guillermo Rauch},
+ url = {https://socket.io/},
+ note = {[Online]}
}
-
-@Online{svelte,
+@online{sqlite,
+ title = {{{SQLite}: {F}eatures}},
+ author = {Richard Hipp},
+ url = {https://sqlite.org/features.html},
+ note = {[Online]}
+}
+@online{starlette,
+ title = {{Starlette}},
+ author = {Sebastián Ramírez},
+ url = {https://www.starlette.io/},
+ note = {[Online]}
+}
+@online{svelte,
+ title = {{Svelte: Cybernetically enhanced web apps}},
author = {Rich Harris},
- note = {[Online]},
- title = {Svelte: Cybernetically enhanced web apps},
url = {https://www.svelte.dev/},
+ note = {[Online]}
}
-
-@Online{sveltekit,
+@online{sveltekit,
+ title = {{Svelte Kit: {T}he fastest way to build {S}velte Apps}},
author = {Rich Harris},
- note = {[Online]},
- title = {Svelte Kit: {T}he fastest way to build {S}velte Apps},
url = {https://kit.svelte.dev/},
+ note = {[Online]}
}
-
-@Online{typescript,
+@online{tailwind,
+ title = {{Tailwind {CSS}}},
+ author = {Adam Wathan and Jonathan Reinink and David Hemphill and Steve Schoger},
+ url = {https://tailwindcss.com/},
+ note = {[Online]}
+}
+@online{terraform,
+ title = {{Terraform}},
+ author = {{HashiCorp}},
+ url = {https://www.terraform.io/},
+ note = {[Online]}
+}
+@online{tinydb,
+ title = {{TinyDB: Lightweight Document-oriented Database}},
+ author = {Markus Siemens},
+ url = {https://github.com/msiemens/tinydb},
+ note = {[Online]}
+}
+@online{typescript,
+ title = {{TypeScript: JavaScript With Syntax For Types}},
author = {Microsoft},
- note = {[Online]},
- title = {TypeScript: {J}avaScript {W}ith {S}yntax {F}or {T}ypes},
url = {https://www.typescriptlang.org/},
+ note = {[Online]}
}
-
-@Online{jest,
- author = {Facebook},
- note = {[Online]},
- title = {Jest is a delightful JavaScript Testing Framework with a focus on simplicity},
- url = {https://jestjs.io/},
-
+@online{uvicorn,
+ title = {{Uvicorn}},
+ author = {Sebastián Ramírez},
+ url = {https://www.uvicorn.org/},
+ note = {[Online]}
+}
+@online{virtuoso,
+ title = {{Virtuoso Universal Server}},
+ author = {OpenLink},
+ url = {https://virtuoso.openlinksw.com/},
+ note = {[Online]}
}
-
-@Online{vite,
+@online{vite,
+ title = {{Vite: {N}ext {G}eneration {F}rontend {T}ooling}},
author = {Evan You},
- note = {[Online]},
- title = {Vite: {N}ext {G}eneration {F}rontend {T}ooling},
url = {https://github.com/vitejs/vite},
+ note = {[Online]}
}
-
-@Online{vitest,
+@online{vitest,
+ title = {{Vitest: {A} {V}ite-native unit test framework}},
author = {Anthony Fu and Matías Capeletto},
- note = {[Online]},
- title = {Vitest: {A} {V}ite-native unit test framework},
url = {https://vitest.dev/},
+ note = {[Online]}
}
-
-@Online{pinia,
- author = {Eduardo San Martin Morote},
- note = {[Online]},
- title = {Pinia},
- url = {https://pinia.vuejs.org/},
+@online{vue,
+ title = {{Vue.js}},
+ author = {Evan You},
+ url = {https://vuejs.org/},
+ note = {[Online]}
}
-
-@Online{virtuoso,
- author = {OpenLink},
- note = {[Online]},
- title = {Virtuoso Universal Server},
- url = {https://virtuoso.openlinksw.com/},
+@online{websocket-whatwg,
+ title = {{Origin of {WebSocket} ({IRC} logs: freenode / \#whatwg / 20080618)}},
+ author = {Ian Hickson and Michael Carter},
+ url = {https://krijnhoetmer.nl/irc-logs/whatwg/20080618#l-1145},
+ note = {[Online]}
}
-
-@Online{ontotext,
- author = {Ontotext},
- note = {[Online]},
- title = {GraphDB},
- url = {https://www.ontotext.com/products/graphdb/},
+@online{yfinance,
+ title = {{Yahoo Finance}},
+ author = {Yahoo},
+ url = {https://finance.yahoo.com},
+ note = {[Online]}
}
-
-@Online{mongodb,
- author = {Dwight Merriman and Eliot Horowitz and Kevin Ryan},
- note = {[Online]},
- title = {MongoDB},
- url = {https://www.mongodb.com/},
+@online{angular,
+ title = {{Angular}},
+ author = {Google},
+ url = {https://angular.io/},
+ note = {[Online]}
}
-
-@Online{dotnet,
+@online{asp,
+ title = {{ASP.NET}},
author = {Microsoft},
+ url = {https://dotnet.microsoft.com/apps/aspnet},
note = {[Online]},
- title = {{.NET}: free, open-source, cross-platform framework},
- url = {https://dotnet.microsoft.com/},
+ addendum = {(aufgerufen: 22.06.2024)},
+ ids = {asp_net}
}
-
-@Online{phaser,
- author = {{Photon Storm}},
- note = {[Online]},
- title = {Phaser Game Framework},
- url = {https://phaser.io/},
+@online{authjs,
+ title = {{Auth.js}},
+ author = {Balázs Orbán},
+ url = {https://authjs.dev/},
+ note = {[Online]}
}
-
-@Online{kubernetes,
- author = {{CNCF}},
- note = {[Online]},
- title = {Kubernetes/K8s: open-source system for automating deployment, scaling, and management of containerized applications},
- url = {https://kubernetes.io/},
+@online{aws,
+ title = {{Amazon Web Services}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/},
+ note = {[Online]}
}
-
-@Online{bootstrap,
- author = {Mark Otto und Jacob Thornton},
- note = {[Online]},
- title = {Bootstrap: Build fast, responsive sites},
- url = {https://getbootstrap.com/},
+@online{aws-apigateway,
+ title = {{AWS API Gateway}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/api-gateway/},
+ note = {[Online]}
}
-
-@Online{docker-compose,
- author = {Docker},
- note = {[Online]},
- title = {Compose: Defining and Running Multi-Container Docker Applications},
- url = {https://docs.docker.com/compose/},
+@online{aws-apprunner,
+ title = {{AWS AppRunner}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/apprunner/},
+ note = {[Online]}
}
-
-@book{restful,
- title={Architectural styles and the design of network-based software architectures},
- author={Fielding, Roy Thomas},
- year={2000},
- publisher={University of California, Irvine}
+@online{aws-cli,
+ title = {{AWS CLI}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/cli/},
+ note = {[Online]}
}
-
-@Online{grpc,
- author = {{CNCF}},
- note = {[Online]},
- title = {gRPC: A high performance, open source universal RPC framework},
- url = {https://grpc.io/},
+@online{aws-codebuild,
+ title = {{AWS CodeBuild}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/de/codebuild/},
+ note = {[Online]}
}
-
-@Online{mysql,
- author = {Michael Widenius und David Axmark},
- note = {[Online]},
- title = {MySQL: high-performance and scalable Online Transaction Processing},
- url = {https://www.mysql.com/},
+@online{aws-codecommit,
+ title = {{AWS CodeCommit}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/de/codecommit/},
+ note = {[Online]}
}
-
-@Online{mariadb,
- author = {Michael Widenius},
- note = {[Online]},
- title = {MariaDB Community Server},
- url = {https://mariadb.com/},
+@online{aws-codepipeline,
+ title = {{AWS CodePipeline}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/de/codepipeline/},
+ note = {[Online]}
}
-
-@Online{postgresql,
- author = {Andrew Yu and Jolly Chen},
- note = {[Online]},
- title = {PostgreSQL: Open Source Relational Database},
- url = {https://www.postgresql.org/},
+@online{aws-cognito,
+ title = {{{AWS Cognito}: Identity Platform}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/cognito/},
+ note = {[Online]}
}
-
-@Online{opcua,
- author = {{OPC}},
- note = {[Online]},
- title = {OPC Unified Architecture: a platform independent service-oriented architecture that integrates all the functionality of the individual OPC Classic specifications into one extensible framework},
- url = {https://opcfoundation.org/about/opc-technologies/opc-ua/},
+@online{aws-ec2,
+ title = {{AWS EC2}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/ec2/},
+ note = {[Online]}
}
-
-@Online{aws,
+@online{aws-ecr,
+ title = {{AWS ECR}},
author = {Amazon},
- note = {[Online]},
- title = {Amazon Web Services},
- url = {https://aws.amazon.com/}
+ url = {https://aws.amazon.com/ecr/},
+ note = {[Online]}
}
-
-@Online{aws-cognito,
+@online{aws-elasticbeanstalk,
+ title = {{AWS Elastic Beanstalk}},
author = {Amazon},
- note = {[Online]},
- title = {{AWS Cognito}: Identity Platform},
- url = {https://aws.amazon.com/cognito/}
+ url = {https://aws.amazon.com/elasticbeanstalk/},
+ note = {[Online]}
}
-
-@Online{aws-apigateway,
+@online{aws-iam,
+ title = {{AWS IAM}},
author = {Amazon},
- note = {[Online]},
- title = {{AWS API Gateway}},
- url = {https://aws.amazon.com/api-gateway/}
+ url = {https://aws.amazon.com/iam/},
+ note = {[Online]}
}
-
-@Online{mongodb-atlas,
- author = {{MongoDB, Inc.}},
- note = {[Online]},
- title = {{MongoDB Atlas}},
- url = {https://www.mongodb.com/atlas},
+@online{aws-lambda,
+ title = {{AWS Lambda}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/lambda/},
+ note = {[Online]}
}
-
-@Online{mongodb-atlas-serverless,
+@online{aws-s3,
+ title = {{Amazon S3}},
author = {Amazon},
- note = {[Online]},
- title = {{AWS} Prescriptive Guidance: {MongoDB Atlas} on {AWS} -- Migrating from a self-managed environment to the {AWS} Cloud},
- url = {https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/serverless.html}
+ url = {https://aws.amazon.com/s3/},
+ note = {[Online]}
}
-
-@Online{aws-lambda,
+@online{aws-sam,
+ title = {{AWS SAM}},
author = {Amazon},
- note = {[Online]},
- title = {{AWS Lambda}},
- url = {https://aws.amazon.com/lambda/}
+ url = {https://aws.amazon.com/serverless/sam/},
+ note = {[Online]}
}
-
-@Online{aws-ec2,
+@online{aws-sdk-js,
+ title = {{{AWS SDK} for {JavaScript}}},
author = {Amazon},
- note = {[Online]},
- title = {{AWS EC2}},
- url = {https://aws.amazon.com/ec2/}
+ url = {https://www.npmjs.com/package/aws-sdk},
+ note = {[Online]}
}
-
-@Online{nextjs,
- author = {Vercel},
- note = {[Online]},
- title = {Next.js},
- url = {https://nextjs.org/}
+@online{aws-toolkit-intelij,
+ title = {{{AWS Toolkit} for {IntelliJ IDEA}}},
+ author = {Amazon},
+ url = {https://aws.amazon.com/intellij/},
+ note = {[Online]}
}
-
-@Online{aws-lambda-runtime,
+@online{axios,
+ title = {{Axios}},
+ author = {Matt Zabriskie},
+ url = {https://axios-http.com/},
+ note = {[Online]}
+}
+@online{bootstrap,
+ title = {{Bootstrap: Build fast, responsive sites}},
+ author = {Mark Otto und Jacob Thornton},
+ url = {https://getbootstrap.com/},
+ note = {[Online]}
+}
+@online{boto3,
+ title = {{{Boto3}: {AWS SDK} for Python}},
author = {Amazon},
- note = {[Online]},
- title = {{AWS Lambda}: Run-Time Environment},
- url = {https://docs.aws.amazon.com/de_de/lambda/latest/dg/lambda-runtime-environment.html}
+ url = {https://boto3.amazonaws.com/v1/documentation/api/latest/index.html},
+ note = {[Online]}
}
-
-@Online{authjs,
- author = {Balázs Orbán},
- note = {[Online]},
- title = {Auth.js},
- url = {https://authjs.dev/}
+@online{catapi,
+ title = {{The Cat {API}}},
+ author = {Aden Forshaw},
+ url = {https://thecatapi.com/},
+ note = {[Online]}
+}
+@online{chai,
+ title = {{Chai Assertion Library}},
+ author = {Chai},
+ url = {https://www.chaijs.com/},
+ note = {[Online]}
+}
+@online{chess,
+ title = {{Chess}},
+ author = {chess.com},
+ url = {https://www.chess.com/},
+ note = {[Online]}
+}
+@online{csharp,
+ title = {{{C\#} Programming Language}},
+ author = {Microsoft},
+ url = {https://learn.microsoft.com/dotnet/csharp/},
+ note = {[Online]}
}
-
-@Online{mongodb-via-aws,
- author = {{MongoDB, Inc.}},
- note = {[Online]},
- title = {{MongoDB Atlas} via {AWS}},
- url = {https://www.mongodb.com/docs/atlas/reference/amazon-aws/}
+@online{cypress,
+ title = {{Cypress}},
+ author = {Brian Mann},
+ url = {https://www.cypress.io/},
+ note = {[Online]}
}
-
-@Online{mongodb-replication,
- author = {{MongoDB, Inc.}},
- note = {[Online]},
- title = {{MongoDB} Replication},
- url = {https://www.mongodb.com/docs/manual/replication/}
+@online{d3js,
+ title = {{D3.js}},
+ author = {Observable},
+ url = {https://d3js.org},
+ note = {[Online]}
}
-
-@Online{prisma,
- author = {{Prisma Data, Inc.}},
- note = {[Online]},
- title = {Prisma},
- url = {https://www.prisma.io/}
+@online{django,
+ title = {{Django}},
+ author = {Adrian Holovaty and Simon Willison},
+ url = {https://www.djangoproject.com/},
+ note = {[Online]}
}
-
-@Online{prisma-schema,
- author = {{Prisma Data, Inc.}},
- note = {[Online]},
- title = {Prisma Schema},
- url = {https://www.prisma.io/docs/concepts/components/prisma-schema}
+@online{docker,
+ title = {{Docker: Accelerated Container Application Development}},
+ author = {Docker},
+ url = {https://www.docker.com/},
+ note = {[Online]}
}
-
-@Online{aws-s3,
- author = {Amazon},
- note = {[Online]},
- title = {{Amazon S3}},
- url = {https://aws.amazon.com/s3/},
+@online{docker-compose,
+ title = {{Compose: Defining and Running Multi-Container Docker Applications}},
+ author = {Docker},
+ url = {https://docs.docker.com/compose/},
+ note = {[Online]}
}
-@Online{aws-sam,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS SAM}},
- url = {https://aws.amazon.com/serverless/sam/},
+@online{dotnet,
+ title = {{{.NET}: free, open-source, cross-platform framework}},
+ author = {Microsoft},
+ url = {https://dotnet.microsoft.com/},
+ note = {[Online]}
}
-
-@Online{aws-cli,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS CLI}},
- url = {https://aws.amazon.com/cli/},
+@online{elasticsearch,
+ title = {{Elasticsearch Platform}},
+ author = {Elastic},
+ url = {https://www.elastic.co/de/elasticsearch/},
+ note = {[Online]}
}
-
-@Online{aws-iam,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS IAM}},
- url = {https://aws.amazon.com/iam/},
+@online{eslint,
+ title = {{ESLint: {P}luggable {J}avaScript linter}},
+ author = {Nicholas Zakas},
+ url = {https://eslint.org/},
+ note = {[Online]}
}
-
-@Online{aws-toolkit-intelij,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS Toolkit} for {IntelliJ IDEA}},
- url = {https://aws.amazon.com/intellij/},
+@online{express,
+ title = {{Express}},
+ author = {Douglas Christopher Wilson},
+ url = {https://expressjs.com/},
+ note = {[Online]}
}
-
-@Online{kaggle-elonmusktweets,
+@online{fastapi,
+ title = {{FastAPI}},
+ author = {Sebastián Ramírez},
+ url = {https://fastapi.tiangolo.com/},
+ note = {[Online]}
+}
+@online{flask,
+ title = {{Flask User's Guide}},
+ author = {Pallets},
+ url = {https://flask.palletsprojects.com/},
+ note = {[Online]}
+}
+@online{GitHub,
+ title = {{GitHub}},
+ url = {https://github.com/},
+ note = {[Online]}
+}
+@online{graphql,
+ title = {{GraphQL: {A} query language for your {API}}},
+ author = {Facebook},
+ url = {https://graphql.org/},
+ note = {[Online]}
+}
+@online{grpc,
+ title = {{gRPC: A high performance, open source universal RPC framework}},
+ author = {{CNCF}},
+ url = {https://grpc.io/},
+ note = {[Online]}
+}
+@online{hetzner,
+ title = {{Hetzner Cloud Hosting}},
+ author = {Hetzner},
+ url = {https://www.hetzner.com/cloud/},
+ note = {[Online]}
+}
+@online{InstaApi,
+ title = {{Instagram Basic Display API}},
+ author = {Facebook},
+ url = {https://developers.facebook.com/docs/instagram-basic-display-api},
+ note = {[Online]}
+}
+@online{istanbuljs,
+ title = {{Istanbul: {J}avaScript test coverage made simple}},
+ author = {Istanbul},
+ url = {https://istanbul.js.org/},
+ note = {[Online]}
+}
+@online{jest,
+ title = {{Jest is a delightful JavaScript Testing Framework with a focus on simplicity}},
+ author = {Facebook},
+ url = {https://jestjs.io/},
+ note = {[Online]}
+}
+@online{json,
+ title = {{JSON}},
+ author = {Douglas Crockford},
+ url = {https://www.json.org/},
+ note = {[Online]}
+}
+@online{kaggle-elonmusktweets,
+ title = {{Kaggle Datasets: Elon Musk Tweets}},
author = {Google},
- note = {[Online]},
- title = {Kaggle Datasets: Elon Musk Tweets},
url = {https://www.kaggle.com/datasets/gpreda/elon-musk-tweets},
+ note = {[Online]}
}
-
-@Online{yfinance,
- author = {Yahoo},
+@online{kubernetes,
+ title = {{Kubernetes/K8s: open-source system for automating deployment, scaling, and management of containerized applications}},
+ author = {{CNCF}},
+ url = {https://kubernetes.io/},
note = {[Online]},
- title = {Yahoo Finance},
- url = {https://finance.yahoo.com},
+ ids = {k8s}
}
-
-@Online{d3js,
- author = {Observable},
+@online{mariadb,
+ title = {{MariaDB Community Server}},
+ author = {Michael Widenius},
+ url = {https://mariadb.com/},
note = {[Online]},
- title = {D3.js},
- url = {https://d3js.org},
+ ids = {maria}
}
-
-@Online{mui,
- author = {{Material UI SAS}},
+@online{mocha,
+ title = {{Mocha Testing Framework}},
+ author = {Mocha},
+ url = {https://mochajs.org/},
+ note = {[Online]}
+}
+@book{mongo_book,
+ title = {{MongoDB: The Definitive Guide}},
+ author = {Kristina Chodorow},
+ year = 2013,
+ publisher = {O'Reilly Media}
+}
+@online{mongodb,
+ title = {{MongoDB}},
+ author = {Dwight Merriman and Eliot Horowitz and Kevin Ryan},
+ url = {https://www.mongodb.com/},
note = {[Online]},
- title = {{MUI}: The React component library you always wanted},
+ ids = {mongo}
+}
+@online{mongodb-atlas,
+ title = {{MongoDB Atlas}},
+ author = {{MongoDB, Inc.}},
+ url = {https://www.mongodb.com/atlas},
+ note = {[Online]}
+}
+@online{mongodb-atlas-serverless,
+ title = {{{AWS} Prescriptive Guidance: {MongoDB Atlas} on {AWS} -- Migrating from a self-managed environment to the {AWS} Cloud}},
+ author = {Amazon},
+ url = {https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/serverless.html},
+ note = {[Online]}
+}
+@online{mongodb-replication,
+ title = {{{MongoDB} Replication}},
+ author = {{MongoDB, Inc.}},
+ url = {https://www.mongodb.com/docs/manual/replication/},
+ note = {[Online]}
+}
+@online{mswjs,
+ title = {{Mock Service Worker: {API} mocking library for browser and Node.js}},
+ author = {Artem Zakharchenko},
+ url = {https://mswjs.io/},
+ note = {[Online]}
+}
+@online{mui,
+ title = {{{MUI}: The React component library you always wanted}},
+ author = {{Material UI SAS}},
url = {https://mui.com},
+ note = {[Online]}
}
-
-
-@Online{pytest,
- author = {Holger Krekel and {pytest Entwicklungteam}},
+@online{mysql,
+ title = {{MySQL: high-performance and scalable Online Transaction Processing}},
+ author = {Michael Widenius und David Axmark},
+ url = {https://www.mysql.com/},
+ note = {[Online]}
+}
+@online{nextjs,
+ title = {{Next.js}},
+ author = {Vercel},
+ url = {https://nextjs.org/},
+ note = {[Online]}
+}
+@online{node,
+ title = {{Node.js}},
+ author = {Ryan Dahl},
+ url = {https://www.nodejs.org/},
note = {[Online]},
- title = {Pytest},
- url = {https://pytest.org/}
+ ids = {nodejs}
}
-
-@Online{starlette,
- author = {Sebastián Ramírez},
+@online{npm,
+ title = {{npm}},
+ author = {Isaac Schlueter},
+ url = {https://www.npmjs.com/},
+ note = {[Online]}
+}
+@online{ontotext,
+ title = {{GraphDB}},
+ author = {Ontotext},
+ url = {https://www.ontotext.com/products/graphdb/},
+ note = {[Online]}
+}
+@online{opcua,
+ title = {{OPC Unified Architecture: a platform independent service-oriented architecture that integrates all the functionality of the individual OPC Classic specifications into one extensible framework}},
+ author = {{OPC}},
+ url = {https://opcfoundation.org/about/opc-technologies/opc-ua/},
+ note = {[Online]}
+}
+@online{opencv,
+ title = {{{OpenCV}: Open Source Computer Vision Library}},
+ author = {Gray Bradsky},
+ url = {https://opencv.org},
+ note = {[Online]}
+}
+@online{phaser,
+ title = {{Phaser Game Framework}},
+ author = {{Photon Storm}},
+ url = {https://phaser.io/},
+ note = {[Online]}
+}
+@online{pinia,
+ title = {{Pinia}},
+ author = {Eduardo San Martin Morote},
+ url = {https://pinia.vuejs.org/},
+ note = {[Online]}
+}
+@online{postgresql,
+ title = {{PostgreSQL: Open Source Relational Database}},
+ author = {Andrew Yu and Jolly Chen},
+ url = {https://www.postgresql.org/},
note = {[Online]},
- title = {Starlette},
- url = {https://www.starlette.io/},
+ ids = {postgres}
}
-
-@Online{pydantic,
+@online{prettier,
+ title = {{Prettier: {O}pinionated {C}ode {F}ormatter}},
+ author = {Prettier},
+ url = {https://prettier.io/},
+ note = {[Online]}
+}
+@online{prisma,
+ title = {{Prisma}},
+ author = {{Prisma Data, Inc.}},
+ url = {https://www.prisma.io/},
+ note = {[Online]}
+}
+@online{pydantic,
+ title = {{Pydantic Documentation}},
author = {Sebastián Ramírez},
- note = {[Online]},
- title = {Pydantic Documentation},
url = {https://docs.pydantic.dev/},
+ note = {[Online]}
}
-
-@Online{uvicorn,
- author = {Sebastián Ramírez},
- note = {[Online]},
- title = {Uvicorn},
- url = {https://www.uvicorn.org/}
+@online{pymongo,
+ title = {{PyMongo}},
+ author = {{MongoDB, Inc.}},
+ url = {https://pypi.org/project/pymongo/},
+ note = {[Online]}
}
-
-@Online{terraform,
- author = {{HashiCorp}},
- note = {[Online]},
- title = {Terraform},
- url = {https://www.terraform.io/}
+@online{pytest,
+ title = {{pytest: helps you write better programs}},
+ author = {Guido van Rossum},
+ url = {https://docs.pytest.org/},
+ note = {[Online]}
}
-
-@Online{cypress,
- author = {Brian Mann},
- note = {[Online]},
- title = {Cypress},
- url = {https://www.cypress.io/}
+@online{pytest,
+ title = {{Pytest}},
+ author = {Holger Krekel and {pytest Entwicklungteam}},
+ url = {https://pytest.org/},
+ note = {[Online]}
}
-
-@Online{pymongo,
- author = {{MongoDB, Inc.}},
- note = {[Online]},
- title = {PyMongo},
- url = {https://pypi.org/project/pymongo/}
+@online{python,
+ title = {{Python}},
+ author = {Guido van Rossum},
+ url = {https://www.python.org},
+ note = {[Online]}
}
-
-@Online{websocket-whatwg,
- author = {Ian Hickson and Michael Carter},
- note = {[Online]},
- title = {Origin of {WebSocket} ({IRC} logs: freenode / \#whatwg / 20080618)},
- url = {https://krijnhoetmer.nl/irc-logs/whatwg/20080618#l-1145},
+@online{react,
+ title = {{React}},
+ author = {Facebook},
+ url = {https://react.dev/},
+ note = {[Online]}
}
-
-@TechReport{rfc6455,
- type ={{RFC}},
- number = 6455,
- doi = {10.17487/RFC6455},
- url = {https://www.rfc-editor.org/info/rfc6455},
- author = {Alexey Melnikov and Ian Fette},
- title = {{The WebSocket Protocol}},
- year = 2011,
- month = dec,
- issn = {2070-1721},
-}
-
-@Online{socketio,
- author = {Guillermo Rauch},
- note = {[Online]},
+@online{reacttestinglibrary,
+ title = {{TestingLibraryReact}},
+ author = {React Testing Library},
+ url = {https://testing-library.com/docs/react-testing-library/intro/},
+ note = {[Online]}
+}
+@book{restful,
+ title = {{Architectural styles and the design of network-based software architectures}},
+ author = {Fielding, Roy Thomas},
+ year = 2000,
+ publisher = {University of California, Irvine},
+ ids = {rest}
+}
+@online{restfulapi,
+ title = {{REST API Tutorial}},
+ author = {Lokesh Gupta},
+ url = {https://restfulapi.net/},
+ note = {[Online]}
+}
+@techreport{rfc6455,
+ title = {{The WebSocket Protocol}},
+ author = {Alexey Melnikov and Ian Fette},
+ year = 2011,
+ month = dec,
+ number = 6455,
+ doi = {10.17487/RFC6455},
+ issn = {2070-1721},
+ url = {https://www.rfc-editor.org/info/rfc6455},
+ type = {{RFC}}
+}
+@online{scikit,
+ title = {{scikit-learn: Machine Learning in Python}},
+ author = {David Cournapeau},
+ url = {https://scikit-learn.org/},
+ note = {[Online]},
+ ids = {scikit-learn}
+}
+@article{scikit-image,
+ title = {{scikit-image: image processing in {P}ython}},
+ author = {van der Walt, {S}t\'efan and {S}ch\"onberger, {J}ohannes {L}. and {Nunez-Iglesias}, {J}uan and {B}oulogne, {F}ran\c{c}ois and {W}arner, {J}oshua {D}. and {Y}ager, {N}eil and {G}ouillart, {E}mmanuelle and {Y}u, {T}ony and the scikit-image contributors},
+ year = 2014,
+ month = 6,
+ journal = {PeerJ},
+ volume = 2,
+ pages = {e453},
+ doi = {10.7717/peerj.453},
+ issn = {2167-8359},
+ url = {https://doi.org/10.7717/peerj.453},
+ keywords = {Image processing, Reproducible research, Education, Visualization, Open source, Python, Scientific programming}
+}
+@online{scratch,
+ title = {{Scratch}},
+ author = {{MIT Media Lab}},
+ url = {https://scratch.mit.edu/projects/editor/},
+ note = {[Online]}
+}
+@online{selenium,
+ title = {{Selenium}},
+ author = {Selenium},
+ url = {https://www.selenium.dev/},
+ note = {[Online]}
+}
+@online{socketio,
title = {{Socket.IO}},
+ author = {Guillermo Rauch},
url = {https://socket.io/},
+ note = {[Online]}
}
-
-@Online{catapi,
- author = {Aden Forshaw},
- note = {[Online]},
- title = {The Cat {API}},
- url = {https://thecatapi.com/},
+@online{sqlite,
+ title = {{{SQLite}: {F}eatures}},
+ author = {Richard Hipp},
+ url = {https://sqlite.org/features.html},
+ note = {[Online]}
}
-
-@Online{boto3,
- author = {Amazon},
- note = {[Online]},
- title = {{Boto3}: {AWS SDK} for Python},
- url = {https://boto3.amazonaws.com/v1/documentation/api/latest/index.html},
+@online{starlette,
+ title = {{Starlette}},
+ author = {Sebastián Ramírez},
+ url = {https://www.starlette.io/},
+ note = {[Online]}
}
-
-@Online{aws-sdk-js,
- author = {Amazon},
- note = {[Online]},
- title = {{AWS SDK} for {JavaScript}},
- url = {https://www.npmjs.com/package/aws-sdk},
+@online{svelte,
+ title = {{Svelte: Cybernetically enhanced web apps}},
+ author = {Rich Harris},
+ url = {https://www.svelte.dev/},
+ note = {[Online]}
}
-
-@Online{pytest-cov,
- author = {Holger Krekel and {pytest Entwicklungteam}},
- note = {[Online]},
- title = {pytest Coverage Reports},
- url = {https://pypi.org/project/pytest-cov/},
+@online{sveltekit,
+ title = {{Svelte Kit: {T}he fastest way to build {S}velte Apps}},
+ author = {Rich Harris},
+ url = {https://kit.svelte.dev/},
+ note = {[Online]}
}
-
-@Online{scratch,
- author = {{MIT Media Lab}},
- note = {[Online]},
- title = {Scratch},
- url = {https://scratch.mit.edu/projects/editor/},
+@online{tailwind,
+ title = {{Tailwind {CSS}}},
+ author = {Adam Wathan and Jonathan Reinink and David Hemphill and Steve Schoger},
+ url = {https://tailwindcss.com/},
+ note = {[Online]}
}
-
-@Online{python,
- author = {Guido van Rossum},
- note = {[Online]},
- title = {Python},
- url = {https://www.python.org},
+@online{terraform,
+ title = {{Terraform}},
+ author = {{HashiCorp}},
+ url = {https://www.terraform.io/},
+ note = {[Online]}
}
-
-@Online{opencv,
- author = {Gray Bradsky},
- note = {[Online]},
- title = {{OpenCV}: Open Source Computer Vision Library},
- url = {https://opencv.org},
+@online{tinydb,
+ title = {{TinyDB: Lightweight Document-oriented Database}},
+ author = {Markus Siemens},
+ url = {https://github.com/msiemens/tinydb},
+ note = {[Online]}
}
-
-@article{scikit-image,
- title = {scikit-image: image processing in {P}ython},
- author = {van der Walt, {S}t\'efan and {S}ch\"onberger, {J}ohannes {L}. and
- {Nunez-Iglesias}, {J}uan and {B}oulogne, {F}ran\c{c}ois and {W}arner,
- {J}oshua {D}. and {Y}ager, {N}eil and {G}ouillart, {E}mmanuelle and
- {Y}u, {T}ony and the scikit-image contributors},
- year = {2014},
- month = {6},
- keywords = {Image processing, Reproducible research, Education,
- Visualization, Open source, Python, Scientific programming},
- volume = {2},
- pages = {e453},
- journal = {PeerJ},
- issn = {2167-8359},
- url = {https://doi.org/10.7717/peerj.453},
- doi = {10.7717/peerj.453}
-}
-
-
-@Online{flask,
- author = {Pallets},
- note = {[Online]},
- title = {Flask User's Guide},
- url = {https://flask.palletsprojects.com/},
+@online{typescript,
+ title = {{TypeScript: JavaScript With Syntax For Types}},
+ author = {Microsoft},
+ url = {https://www.typescriptlang.org/},
+ note = {[Online]}
+}
+@online{uvicorn,
+ title = {{Uvicorn}},
+ author = {Sebastián Ramírez},
+ url = {https://www.uvicorn.org/},
+ note = {[Online]}
+}
+@online{virtuoso,
+ title = {{Virtuoso Universal Server}},
+ author = {OpenLink},
+ url = {https://virtuoso.openlinksw.com/},
+ note = {[Online]}
+}
+@online{vite,
+ title = {{Vite: {N}ext {G}eneration {F}rontend {T}ooling}},
+ author = {Evan You},
+ url = {https://github.com/vitejs/vite},
+ note = {[Online]}
+}
+@online{vitest,
+ title = {{Vitest: {A} {V}ite-native unit test framework}},
+ author = {Anthony Fu and Matías Capeletto},
+ url = {https://vitest.dev/},
+ note = {[Online]}
+}
+@online{vue,
+ title = {{Vue.js}},
+ author = {Evan You},
+ url = {https://vuejs.org/},
+ note = {[Online]}
+}
+@online{websocket-whatwg,
+ title = {{Origin of {WebSocket} ({IRC} logs: freenode / \#whatwg / 20080618)}},
+ author = {Ian Hickson and Michael Carter},
+ url = {https://krijnhoetmer.nl/irc-logs/whatwg/20080618#l-1145},
+ note = {[Online]}
+}
+@online{yfinance,
+ title = {{Yahoo Finance}},
+ author = {Yahoo},
+ url = {https://finance.yahoo.com},
+ note = {[Online]}
}
-
-
@Online{bibtemplate,
- author = {},
- note = {[Online]},
title = {},
+ author = {},
url = {},
+ note = {[Online]},
} \ No newline at end of file
diff --git a/macros/latex/contrib/csthm/README.md b/macros/latex/contrib/csthm/README.md
new file mode 100644
index 0000000000..6a3186b8a7
--- /dev/null
+++ b/macros/latex/contrib/csthm/README.md
@@ -0,0 +1,89 @@
+---
+title: Theorem Environments for Computer Science (`csthm.sty`)
+linter-yaml-title-alias: Theorem Environments for Computer Science (`csthm.sty`)
+date created: Monday, March 25th 2024, 14:13:16
+date modified: Saturday, August 31st 2024, 11:32:48
+aliases: [Theorem Environments for Computer Science (`csthm.sty`)]
+---
+
+# Theorem Environments for Computer Science (`csthm.sty`)
+
+## Overview
+
+The `csthm` package provides customized theorem-like environments specifically designed for computer science documents. It offers a set of pre-defined theorem styles and environments to streamline the creation of theorems, definitions, remarks, and other common structures in computer science papers and documents.
+
+## Features
+
+- **Pre-defined theorem styles:** `thmstyle`, `defstyle`, `remarkstyle`, and `hltstyle`
+- **Theorem environments:** theorem, fact, assumption, claim, conjecture, corollary, lemma, property, proposition
+- **Definition environments:** definition, example, exercise, problem, question
+- **Remark environments:** note, remark, solution
+- **Highlight environments:** important, highlight, key-point
+- **Custom environments:** case, axiom
+- **Accent Colour:** Customizable accent colour
+- **Cleveref Support:** Optional integration with `cleveref` package
+
+## Installation
+
+1. Download the `csthm.sty` file.
+2. Place it in the same directory as your LaTeX document or in your local TeX tree.
+
+## Usage
+
+Load the package in your LaTeX document:
+
+```latex
+\usepackage{csthm}
+```
+
+To use the package with `cleveref` support:
+
+```latex
+\usepackage[cleveref]{csthm}
+```
+
+## Examples
+
+```latex
+\begin{theorem}
+ This is a theorem.
+\end{theorem}
+
+\begin{definition}
+ This is a definition.
+\end{definition}
+
+\begin{remark}
+ This is a remark.
+\end{remark}
+
+\begin{case}
+ \item This is case 1.
+ \item This is case 2.
+\end{case}
+
+\begin{axiom}
+ \item This is axiom A.
+ \item This is axiom B.
+\end{axiom}
+```
+
+## Customization
+
+To change the accent colour:
+
+```latex
+\setaccentcolor{blue}
+```
+
+## License
+
+This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or (at your option) any later version. The latest version of this license is in http://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2008/05/04 or later.
+
+## Author
+
+Agni Datta <agnidatta.org@gmail.com>
+
+## Bug Reports and Feature Requests
+
+Please report any issues or feature requests on the package’s GitHub repository.
diff --git a/macros/latex/contrib/csthm/csthm-example.pdf b/macros/latex/contrib/csthm/csthm-example.pdf
new file mode 100644
index 0000000000..2f33de7d87
--- /dev/null
+++ b/macros/latex/contrib/csthm/csthm-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/csthm/csthm-example.tex b/macros/latex/contrib/csthm/csthm-example.tex
new file mode 100644
index 0000000000..670f632051
--- /dev/null
+++ b/macros/latex/contrib/csthm/csthm-example.tex
@@ -0,0 +1,407 @@
+\documentclass{ltxdoc}
+
+% Encoding and Fonts
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{amsfonts}
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage{lmodern}
+
+% Geometry and Layout
+\usepackage{csquotes}
+\usepackage[a4paper, margin=3.5cm]{geometry}
+\usepackage{microtype}
+\usepackage{parskip}
+\usepackage[onehalfspacing]{setspace}
+
+% Code Listings
+\usepackage{listings}
+\lstset{%
+ basicstyle=\scriptsize\ttfamily,
+ breaklines=true,
+ frame=single,
+ columns=fullflexible,
+ numbers=left,
+ numberstyle=\tiny\ttfamily\color{gray},
+ breakindent=0pt
+}
+
+% Colors and Hyperlinks
+\usepackage{xcolor}
+\usepackage[pdfusetitle, colorlinks=true, linkcolor=blue, urlcolor=violet]{hyperref}
+\usepackage{xurl}
+
+% Theorem-like Environments
+\usepackage{csthm}
+
+\definecolor{darkgreen}{rgb}{0,0.5,0}
+
+\newcommand{\pkg}[1]{\textsf{#1}}
+\newcommand{\opt}[1]{\texttt{#1}}
+\newcommand{\env}[1]{\texttt{#1}}
+\newcommand{\cmnd}[1]{\texttt{\textbackslash#1}}
+
+\title{The \pkg{csthm} Package}
+\author{Agni Datta \\ \texttt{agnidatta.org@gmail.com}}
+\date{Version 1.2 (August 31, 2024)}
+
+\begin{document}
+
+\maketitle
+
+\tableofcontents
+
+\section{Introduction}
+
+The \pkg{csthm} package provides a set of customised theorem-like environments specifically designed for computer science documents. It offers pre-defined theorem styles and environments to streamline the creation of theorems, definitions, remarks, and other common structures in computer science papers and documents.
+
+\section{Package Options}
+
+The \pkg{csthm} package supports the following option:
+
+\begin{description}
+ \item[\opt{cleveref}] Loads the \pkg{cleveref} package for enhanced cross-referencing capabilities. This option requires the \pkg{hyperref} package to be loaded before \pkg{csthm}.
+\end{description}
+
+\section{Usage}
+
+To use the package with default settings:
+
+\begin{verbatim}
+\usepackage{csthm}
+\end{verbatim}
+
+To use the package with \pkg{cleveref} support:
+
+\begin{verbatim}
+\usepackage{hyperref}
+\usepackage[cleveref]{csthm}
+\end{verbatim}
+
+\section{Theorem Styles}
+
+The package defines four theorem styles:
+
+\begin{description}
+ \item[thmstyle] Used for theorems, lemmas, corollaries, etc.
+ \item[defstyle] Used for definitions, examples, problems, etc.
+ \item[remarkstyle] Used for remarks, notes, solutions, etc.
+ \item[hltstyle] Used for highlighted content like important points.
+\end{description}
+
+\section{Predefined Environments}
+
+\subsection{Theorem-like Environments}
+
+\begin{itemize}
+ \item \env{theorem}
+ \item \env{fact}
+ \item \env{assumption}
+ \item \env{claim}
+ \item \env{conjecture}
+ \item \env{corollary}
+ \item \env{lemma}
+ \item \env{property}
+ \item \env{proposition}
+\end{itemize}
+
+Usage:
+\begin{verbatim}
+\begin{theorem}[Optional Title]
+ Theorem content...
+\end{theorem}
+\end{verbatim}
+
+\subsection{Definition-like Environments}
+
+\begin{itemize}
+ \item \env{definition}
+ \item \env{example}
+ \item \env{exercise}
+ \item \env{problem}
+ \item \env{question}
+\end{itemize}
+
+Usage:
+\begin{verbatim}
+\begin{definition}[Optional Title]
+ Definition content...
+\end{definition}
+\end{verbatim}
+
+\subsection{Remark-like Environments}
+
+\begin{itemize}
+ \item \env{note}
+ \item \env{remark}
+ \item \env{solution}
+\end{itemize}
+
+Usage:
+\begin{verbatim}
+\begin{remark}[Optional Title]
+ Remark content...
+\end{remark}
+\end{verbatim}
+
+\subsection{Highlight Environments}
+
+\begin{itemize}
+ \item \env{important}
+ \item \env{highlight}
+ \item \env{keypoint}
+\end{itemize}
+
+Usage:
+\begin{verbatim}
+\begin{important}[Optional Title]
+ Important content...
+\end{important}
+\end{verbatim}
+
+\subsection{Special Environments}
+
+\subsubsection{Case Environment}
+
+The \env{case} environment provides an enumerated list for describing different cases in a proof or analysis.
+
+Usage:
+\begin{verbatim}
+\begin{case}[Optional arguments for enumerate]
+ \item Case 1: ...
+ \item Case 2: ...
+\end{case}
+\end{verbatim}
+
+\subsubsection{Axiom Environment}
+
+The \env{axiom} environment provides an enumerated list for stating axioms.
+
+Usage:
+\begin{verbatim}
+\begin{axiom}[Optional arguments for enumerate]
+ \item Axiom 1: ...
+ \item Axiom 2: ...
+\end{axiom}
+\end{verbatim}
+
+\section{Customization}
+
+\subsection{Accent Color}
+
+You can customise the accent colour used in the package by redefining the \cmnd{accentcolor} command:
+
+\begin{verbatim}
+\renewcommand{\accentcolor}{blue}
+\end{verbatim}
+
+Or use the provided command:
+
+\begin{verbatim}
+\setaccentcolor{blue}
+\end{verbatim}
+
+\subsection{QED Symbol}
+
+The package redefines the QED symbol to a filled black square. You can customise this by redefining the \cmnd{qedsymbol} command:
+
+\begin{verbatim}
+\renewcommand\qedsymbol{$\square$}
+\end{verbatim}
+
+\section{Examples}
+
+Here are some examples demonstrating the usage of various environments:
+
+\begin{theorem}[Complexity of Bubble Sort]
+ The time complexity of the Bubble Sort algorithm is $\mathcal{O}(n^2)$ in the worst and average cases, where $n$ is the number of elements to be sorted.
+\end{theorem}
+
+\begin{proof}
+ Bubble Sort uses two nested loops to compare and swap adjacent elements. The outer loop runs $n-1$ times, and the inner loop runs $n-i-1$ times for each iteration $i$ of the outer loop. This results in approximately $n^2/2$ comparisons, leading to a time complexity of $\mathcal{O}(n^2)$.
+\end{proof}
+
+\begin{definition}[Big O Notation]
+ For functions $f(n)$ and $g(n)$, we say $f(n) = \mathcal{O}(g(n))$ if there exist positive constants $c$ and $n_0$ such that $0 \leq f(n) \leq cg(n)$ for all $n \geq n_0$.
+\end{definition}
+
+\begin{remark}
+ While Bubble Sort has a worst-case time complexity of $\mathcal{O}(n^2)$, it can be useful for small datasets or nearly sorted arrays due to its simplicity and in-place sorting nature.
+\end{remark}
+
+\begin{important}
+ Understanding time and space complexity is crucial for designing efficient algorithms and selecting appropriate data structures.
+\end{important}
+
+\begin{case}
+ \item Best Case: The time complexity is $\mathcal{O}(n \log n)$ when the pivot always divides the array into two halves.
+ \item Average Case: The expected time complexity is $\mathcal{O}(n \log n)$ with random pivot selection.
+ \item Worst Case: The time complexity is $\mathcal{O}(n^2)$ when the pivot is always the smallest or largest element.
+\end{case}
+
+\begin{axiom}
+ \item Axiom of Extensionality: Two sets are equal if and only if they have the same elements.
+ \item Axiom of Pairing: For any two sets $a$ and $b$, there exists a set $\{a, b\}$ that contains exactly $a$ and $b$ as its elements.
+\end{axiom}
+
+\section{Requirements}
+
+The \pkg{csthm} package requires the following packages:
+
+\begin{itemize}
+ \item \pkg{amsmath}
+ \item \pkg{amssymb}
+ \item \pkg{amsthm}
+ \item \pkg{enumitem}
+ \item \pkg{thmtools}
+\end{itemize}
+
+If the \opt{cleveref} option is used, the \pkg{hyperref} package must be loaded before \pkg{csthm}.
+
+\section{Version History}
+
+\begin{description}
+ \item[v1.0 (2024/08/31)] Initial version
+ \item[v1.1 (2024/08/31)] Added \opt{cleveref} support
+ \item[v1.2 (2024/08/31)] Improved documentation, code structure, and added to CTAN
+\end{description}
+
+\section{License}
+
+This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or (at your option) any later version. The latest version of this license is in:
+
+\url{http://www.latex-project.org/lppl.txt}
+
+and version 1.3c or later is part of all distributions of LaTeX version 2008/05/04 or later.
+
+\section{Feedback and Contributions}
+
+For bug reports, feature requests, or general feedback, please contact the package maintainer, Agni Datta, at \texttt{\hyperlink{mailto:agnidatta.org@gmail.com}{agnidatta.org@gmail.com}}.
+
+Contributions to the package are welcome. Please submit pull requests or issues to the package's GitHub repository.
+
+\section{Package Source Code}
+
+The following listing shows the source code of the \texttt{csthm.sty} file:
+
+\lstinputlisting{csthm.sty}
+
+\appendix
+
+\section{Real-Life Usage Examples}
+
+\subsection{Theorem Environments}
+
+The \pkg{csthm} package provides several theorem-like environments commonly used in computer science literature:
+
+\begin{theorem}[Graph Colouring]
+ For any graph $G$, the chromatic number $\chi(G)$ is the minimum number of colours needed to colour the vertices of $G$ such that no two adjacent vertices share the same colour.
+\end{theorem}
+
+\begin{lemma}[Sum of Odd Numbers]
+ For every positive integer $n$, the sum of the first $n$ odd numbers is equal to $n^2$.
+\end{lemma}
+
+\begin{proof}
+ We can prove this by induction on $n$:
+
+ \begin{case}
+ \item \textbf{Base case:} For $n=1$, the first odd number is 1, and $1^2 = 1$. The statement holds.
+
+ \item \textbf{Inductive step:} Assume the statement holds for some $k \geq 1$. We need to prove it for $k+1$.
+
+ The $(k+1)$-th odd number is $2k+1$. So, we have:
+
+ $\sum_{i=1}^{k+1} (2i-1) = \sum_{i=1}^k (2i-1) + (2k+1)$
+
+ $= k^2 + (2k+1)$ (by induction hypothesis)
+
+ $= k^2 + 2k + 1$
+
+ $= (k+1)^2$
+
+ Thus, the statement holds for $k+1$, completing the proof.
+ \end{case}
+\end{proof}
+
+\begin{corollary}[Sum of Integers]
+ The sum of the first $n$ positive integers is given by $\frac{n(n+1)}{2}$.
+\end{corollary}
+
+\begin{proposition}[Even Sum Property]
+ The sum of two even integers is always even.
+\end{proposition}
+
+\begin{conjecture}[Goldbach's Conjecture]
+ Every even integer greater than 2 can be expressed as the sum of two prime numbers.
+\end{conjecture}
+
+\subsection{Definition and Example Environments}
+
+To introduce key definitions and illustrative examples:
+
+\begin{definition}[Tree]
+ A \emph{tree} is a connected, undirected graph with no cycles.
+\end{definition}
+
+\begin{example}[Binary Tree]
+ Consider a binary tree with 7 nodes labelled from 1 to 7:
+ \begin{verbatim}
+ 1
+ / \
+ 2 3
+ / \ / \
+ 4 5 6 7
+ \end{verbatim}
+ This tree has 3 levels, and each parent node has at most 2 children.
+\end{example}
+
+\subsection{Remark Environments}
+
+To include remarks and notes that highlight important observations:
+
+\begin{remark}
+ While all trees are graphs, not all graphs are trees. A graph must be acyclic and connected to be classified as a tree.
+\end{remark}
+
+\begin{note}
+ Many conjectures, like Goldbach's Conjecture, remain unproven for centuries despite numerous verified instances. This highlights the complexity of certain mathematical problems.
+\end{note}
+
+\subsection{Highlight Environments}
+
+To emphasise crucial points within the document:
+
+\begin{important}
+ Algorithm efficiency is critical in computer science. Always consider time and space complexity when designing and analysing algorithms.
+\end{important}
+
+\begin{keypoint}
+ Understanding the P vs NP problem is fundamental in computational complexity theory and has significant implications for algorithm design and cryptography.
+\end{keypoint}
+
+\subsection{Case Environment}
+
+Used to present distinct cases in an argument or proof:
+
+\begin{theorem}[Factorial Definition]
+ The factorial of a non-negative integer $n$, denoted as $n!$, is defined as follows:
+\end{theorem}
+
+\begin{case}
+ \item When $n = 0$, $0! = 1$ (by definition).
+ \item When $n > 0$, $n! = n \times (n-1) \times \cdots \times 2 \times 1$.
+\end{case}
+
+\subsection{Axiom Environment}
+
+To enumerate foundational axioms in formal proofs:
+
+\begin{axiom}
+ \item For any sets $A$ and $B$, $A \cup B = B \cup A$ (Commutative Law of Union).
+ \item For any sets $A$, $B$, and $C$, $A \cap (B \cup C) = (A \cap B) \cup (A \cap C)$ (Distributive Law).
+ \item For any set $A$, $A \cup \emptyset = A$ (Identity Law of Union).
+\end{axiom}
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/csthm/csthm.dtx b/macros/latex/contrib/csthm/csthm.dtx
new file mode 100644
index 0000000000..5c059b3523
--- /dev/null
+++ b/macros/latex/contrib/csthm/csthm.dtx
@@ -0,0 +1,238 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2024 by Agni Datta <agnidatta.org@gmail.com>
+%
+% This file may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, either version 1.3c of this license
+% or (at your option) any later version. The latest version of this
+% license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Agni Datta.
+%
+% This work consists of the files csthm.dtx and csthm.ins
+% and the derived file csthm.sty.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{csthm.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{csthm}
+%<*package>
+ [2024/08/31 v1.2 Theorem Environments for Computer Science]
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{csthm}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+\DocInput{csthm.dtx}
+\PrintChanges
+\PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \changes{v1.0}{2024/08/31}{Initial version}
+% \changes{v1.1}{2024/08/31}{Added cleveref support}
+% \changes{v1.2}{2024/08/31}{Improved documentation and code structure}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \providecommand*{\url}{\texttt}
+% \GetFileInfo{csthm.dtx}
+% \title{The \textsf{csthm} package}
+% \author{Agni Datta \\ \url{agnidatta.org@gmail.com}}
+% \date{\filedate}
+%
+% \maketitle
+%
+% \section{Introduction}
+%
+% This package provides customized theorem-like environments specifically designed for computer science documents. It offers a set of pre-defined theorem styles and environments to streamline the creation of theorems, definitions, remarks, and other common structures in computer science papers and documents.
+%
+% \section{Usage}
+%
+% Load the package with:
+% \begin{verbatim}
+% \usepackage{csthm}
+% \end{verbatim}
+%
+% To use the package with cleveref support:
+% \begin{verbatim}
+% \usepackage[cleveref]{csthm}
+% \end{verbatim}
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% Package options
+\newif\if@csthm@loadcleveref
+\DeclareOption{cleveref}{\@csthm@loadclevereftrue}
+\ProcessOptions\relax
+
+% Required packages
+\RequirePackage{amsmath}
+\RequirePackage{amssymb}
+\RequirePackage{amsthm}
+\RequirePackage{enumitem}
+\RequirePackage{thmtools}
+
+% Conditionally load cleveref if the option is set and hyperref is loaded
+\if@csthm@loadcleveref
+\AtBeginDocument{%
+ \@ifpackageloaded{hyperref}{%
+ \RequirePackage{cleveref}
+ }{%
+ \PackageWarning{csthm}{The 'cleveref' option was set, but 'hyperref' is not loaded. Skipping 'cleveref' loading.}
+ }%
+}
+\fi
+
+% Define theorem styles
+\declaretheoremstyle[
+ spaceabove=\topsep,
+ spacebelow=\topsep,
+ headfont=\scshape,
+ notefont=\scshape,
+ bodyfont=\normalfont,
+ postheadspace=5pt,
+ numberwithin=section,
+ qed=$\scriptstyle\star$,
+ headpunct={.}
+]{thmstyle}
+
+\declaretheoremstyle[
+ spaceabove=\topsep,
+ spacebelow=\topsep,
+ headfont=\bfseries,
+ notefont=\bfseries,
+ bodyfont=\normalfont,
+ postheadspace=5pt,
+ numberwithin=section,
+ qed=$\scriptstyle\maltese$,
+ headpunct={.}
+]{defstyle}
+
+\declaretheoremstyle[
+ spaceabove=\topsep,
+ spacebelow=\topsep,
+ headfont=\itshape,
+ notefont=\itshape,
+ bodyfont=\normalfont,
+ postheadspace=5pt,
+ numberwithin=section,
+ qed=$\scriptstyle\maltese$,
+ headpunct={.}
+]{remarkstyle}
+
+\declaretheoremstyle[
+ spaceabove=\topsep,
+ spacebelow=\topsep,
+ headfont=\sffamily\scshape,
+ notefont=\sffamily\scshape,
+ bodyfont=\normalfont\sffamily,
+ postheadspace=5pt,
+ numberwithin=section,
+ qed=$\scriptstyle\maltese$,
+ headpunct={.}
+]{hltstyle}
+
+% Define theorem environments
+\declaretheorem[style=thmstyle,name=Theorem]{theorem}
+\declaretheorem[style=defstyle,sibling=theorem]{fact}
+\declaretheorem[style=thmstyle,sibling=theorem]{assumption}
+\declaretheorem[style=thmstyle,sibling=theorem]{claim}
+\declaretheorem[style=thmstyle,sibling=theorem]{conjecture}
+\declaretheorem[style=thmstyle,sibling=theorem]{corollary}
+\declaretheorem[style=thmstyle,sibling=theorem]{lemma}
+\declaretheorem[style=thmstyle,sibling=theorem]{property}
+\declaretheorem[style=thmstyle,sibling=theorem]{proposition}
+
+% Define definition environments
+\declaretheorem[style=defstyle,sibling=theorem]{definition}
+\declaretheorem[style=defstyle,sibling=theorem]{example}
+\declaretheorem[style=defstyle,sibling=theorem]{exercise}
+\declaretheorem[style=defstyle,sibling=theorem]{problem}
+\declaretheorem[style=defstyle,sibling=theorem]{question}
+
+% Define remark environments
+\declaretheorem[style=remarkstyle,sibling=theorem]{note}
+\declaretheorem[style=remarkstyle,sibling=theorem]{remark}
+\declaretheorem[style=remarkstyle,sibling=theorem]{solution}
+
+% Define highlight environments
+\declaretheorem[style=hltstyle,name=Important]{important}
+\declaretheorem[style=hltstyle]{highlight}
+\declaretheorem[style=hltstyle]{keypoint}
+
+% Define case environment
+\newlist{caseList}{enumerate}{1}
+\setlist[caseList]{label=\textbf{Case~\arabic*:},leftmargin=*}
+
+\NewDocumentEnvironment{case}{O{}}{%
+ \begin{caseList}[#1]%
+ }{%
+ \end{caseList}%
+}
+
+% Define axiom environment
+\newlist{axiomList}{enumerate}{1}
+\setlist[axiomList]{label=\textbf{Axiom~\Alph*:}, leftmargin=*}
+
+\NewDocumentEnvironment{axiom}{O{}}{%
+ \begin{axiomList}[#1]%
+ }{%
+ \end{axiomList}%
+}
+
+% Custom QED symbol
+\renewcommand\qedsymbol{$\scriptstyle\blacksquare$}
+
+% Define accent color (customizable by the user)
+\providecommand{\accentcolor}{black}
+
+% Package documentation commands
+\providecommand{\csthmpkg}{\textsf{csthm}}
+\providecommand{\email}[1]{\href{mailto:#1}{\texttt{#1}}}
+
+% User-level commands for customization
+\newcommand{\setaccentcolor}[1]{\renewcommand{\accentcolor}{#1}}
+%</package>
+% \end{macrocode}
+%
+% \Finale
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/isosafety/isosafety.ins b/macros/latex/contrib/csthm/csthm.ins
index f7563b4ab1..02d0c9ea13 100644
--- a/macros/latex/contrib/isosafety/isosafety.ins
+++ b/macros/latex/contrib/csthm/csthm.ins
@@ -1,56 +1,55 @@
%%
-%% Copyright (C) 2023 by BenSt099
+%% Copyright (C) 2024 by Agni Datta <agnidatta.org@gmail.com>
%%
%% This file may be distributed and/or modified under the conditions of
-%% the LaTeX Project Public License, either version 1.3 of this license
-%% or (at your option) any later version. The latest version of this
+%% the LaTeX Project Public License, either version 1.3c of this license
+%% or (at your option) any later version. The latest version of this
%% license is in:
-%%
+%%
%% http://www.latex-project.org/lppl.txt
-%%
-%% and version 1.3 or later is part of all distributions of LaTeX version
-%% 2005/12/01 or later.
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
%%
\input docstrip.tex
\keepsilent
-\usedir{tex/latex/isosafety}
+\usedir{tex/latex/csthm}
\preamble
This is a generated file.
-Copyright (C) 2023 by BenSt099
+Copyright (C) 2024 by Agni Datta <agnidatta.org@gmail.com>
This file may be distributed and/or modified under the conditions of
-the LaTeX Project Public License, either version 1.3 of this license
+the LaTeX Project Public License, either version 1.3c of this license
or (at your option) any later version. The latest version of this
license is in:
http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX version
-2005/12/01 or later.
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008/05/04 or later.
\endpreamble
-\generate{\file{isosafety.sty}{\from{isosafety.dtx}{package}}}
+\generate{\file{csthm.sty}{\from{csthm.dtx}{package}}}
\obeyspaces
-\Msg{*************************************************************}
-\Msg{* *}
-\Msg{* To finish the installation you have to move the following *}
-\Msg{* file into a directory searched by TeX: *}
-\Msg{* *}
-\Msg{* isosafety.sty *}
-\Msg{* isosafety-pdfs/* *}
-\Msg{* *}
-\Msg{* To produce the documentation run the file isosafety.dtx *}
-\Msg{* through LaTeX. *}
-\Msg{* *}
-\Msg{* Happy TeXing! *}
-\Msg{* *}
-\Msg{*************************************************************}
-
-\endbatchfile
+\Msg{************************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* csthm.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file csthm.dtx *}
+\Msg{* through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{************************************************************************}
+
+\endbatchfile \ No newline at end of file
diff --git a/macros/latex/contrib/csvsimple/CHANGES.md b/macros/latex/contrib/csvsimple/CHANGES.md
index 3178395f76..e2ccf7af24 100644
--- a/macros/latex/contrib/csvsimple/CHANGES.md
+++ b/macros/latex/contrib/csvsimple/CHANGES.md
@@ -17,6 +17,20 @@ and this project adheres to
+## [2.7.0] - 2024-09-27
+
+### Added
+- Warning, if the CSV file does not contain (accepted) data lines
+
+### Changed
+- Comment lines or empty line before header line are now supported (issue #41)
+- If there is no data line, `late after head` and `late after last line` are applied nonetheless
+ (loosely connected to issue #41). Note: You should not use files without data!
+- Technical information: The package documentation is now produced with lualatex instead of pdflatex
+- Technical information: The documentation loads `minted2`, if it exists, to avoid encoding errors and latexmk problems with minted v3
+
+
+
## [2.6.1] - 2024-05-16
### Changed
diff --git a/macros/latex/contrib/csvsimple/README.md b/macros/latex/contrib/csvsimple/README.md
index 29196c03e9..47c07daf07 100644
--- a/macros/latex/contrib/csvsimple/README.md
+++ b/macros/latex/contrib/csvsimple/README.md
@@ -1,4 +1,4 @@
-# The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+# The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
> Copyright (c) 2008-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
diff --git a/macros/latex/contrib/csvsimple/csvsimple-doc.sty b/macros/latex/contrib/csvsimple/csvsimple-doc.sty
index c8d933c684..12141768f5 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-doc.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple-doc.sty
@@ -1,5 +1,5 @@
% !TeX encoding=UTF-8
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple-doc.sty: style file for the documentation
%%
%% -------------------------------------------------------------------------------------------
@@ -18,8 +18,8 @@
%%
%% This work consists of all files listed in README.md
%%
-\def\version{2.6.1}%
-\def\datum{2024/05/16}%
+\def\version{2.7.0}%
+\def\datum{2024/09/27}%
\IfFileExists{csvsimple-doc.cfg}{\input{csvsimple-doc.cfg}}{}\providecommand\csvpkgprefix{}
@@ -55,6 +55,7 @@
\RequirePackage{longtable,booktabs,ifthen,etoolbox}
+\IfFileExists{minted2.sty}{\RequirePackage{minted2}}{}
\RequirePackage{tcolorbox}
\tcbuselibrary{skins,xparse,minted,breakable,documentation,raster}
@@ -112,4 +113,4 @@
\makeindex
-\pdfsuppresswarningpagegroup=1
+%\pdfsuppresswarningpagegroup=1
diff --git a/macros/latex/contrib/csvsimple/csvsimple-example.pdf b/macros/latex/contrib/csvsimple/csvsimple-example.pdf
index f85684f6d1..b916830089 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-example.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple-example.tex b/macros/latex/contrib/csvsimple/csvsimple-example.tex
index 0baf2183c7..73b321be2b 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-example.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple-example.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple-example.tex: an example for csvsimple
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.pdf b/macros/latex/contrib/csvsimple/csvsimple-l3.pdf
index f17b9183c3..66d770fefe 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-l3.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple-l3.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.sty b/macros/latex/contrib/csvsimple/csvsimple-l3.sty
index 849aa79aec..3d8d1484b6 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-l3.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple-l3.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple-l3.sty: Simple LaTeX CSV file processing (LaTeX3)
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README.md
%%
\NeedsTeXFormat{LaTeX2e}[2023-11-01]
-\ProvidesExplPackage{csvsimple-l3}{2024/05/16}{2.6.1}
+\ProvidesExplPackage{csvsimple-l3}{2024/09/27}{2.7.0}
{LaTeX3 CSV file processing}
@@ -148,9 +148,6 @@
Therefore,~the~macro~#2 is~not~defined.
}
-\msg_new:nnn { csvsimple }{ empty-head }
- { File~'#1'~starts~with~an~empty~line~(empty~head)!.}
-
\msg_new:nnn { csvsimple }{ file-error }
{ File~'#1'~not~existent,~not~readable,~or~empty!}
@@ -167,6 +164,8 @@
{ Call~of~CSV-Sorter~failed! }
{ See~log~file~'\l__csvsim_csvsorter_log_str'. }
+\msg_new:nnn { csvsimple }{ data-missing }
+ { File~'#1'~does~not~contain~(accepted)~data~lines!~The~result~may~be~unpleasant.}
%---- core loop processing
@@ -227,18 +226,18 @@
\cs_new_protected_nopar:Npn \__csvsim_read_head:
{
- \__csvsim_read_line:
- \tl_if_eq:NNTF \csvline \c__csvsim_par_tl
+ \bool_do_while:nn
{
- \msg_error:nne { csvsimple }{ empty-head }{ \g__csvsim_filename_str }
+ \bool_lazy_or_p:nn { \tl_if_eq_p:NN \csvline \c__csvsim_par_tl }{ \tl_if_blank_p:o \csvline }
}
{
- \int_gzero:N \g_csvsim_columncount_int
- \__csvsim_scan_line:
- \bool_if:NT \g__csvsim_colnames_detection_bool
- {
- \int_step_function:nN \g_csvsim_columncount_int \__csvsim_process_head_name:n
- }
+ \__csvsim_read_line:
+ }
+ \int_gzero:N \g_csvsim_columncount_int
+ \__csvsim_scan_line:
+ \bool_if:NT \g__csvsim_colnames_detection_bool
+ {
+ \int_step_function:nN \g_csvsim_columncount_int \__csvsim_process_head_name:n
}
}
@@ -395,10 +394,15 @@
}
\__csvsim_set_colnames:
\seq_gclear:N \g__csvsim_colname_seq
- \bool_if:NF \g__csvsim_line_firstline_bool
+ \bool_if:NT \g__csvsim_line_firstline_bool
{
- \g__csvsim_hook_late_after_last_line_tl
+ \msg_warning:nne { csvsimple }{ data-missing }{ \g__csvsim_filename_str }
+ \bool_if:NT \g__csvsim_head_bool
+ {
+ \g__csvsim_hook_late_after_head_tl
+ }
}
+ \g__csvsim_hook_late_after_last_line_tl
\g__csvsim_hook_table_end_tl
\g__csvsim_hook_after_reading_tl
\bool_if:NT \g__csvsim_collect_data_bool
diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.tex b/macros/latex/contrib/csvsimple/csvsimple-l3.tex
index 6c70fa3003..fba06f6660 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-l3.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple-l3.tex
@@ -1,7 +1,7 @@
% \LaTeX-Main\
% !TeX encoding=UTF-8
% !TeX spellcheck=en_US
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
@@ -1027,14 +1027,14 @@ see Section~\ref{subsec:tabsupport} from page~\pageref{subsec:tabsupport}.
\clearpage
\subsection{Header Processing and Column Name Assignment}%
-\begin{docCsvKey}{head}{\colOpt{=true\textbar false}}{default |true|, initially |true|}
- If this key is set, the first line of the CSV file is treated as a header
+\begin{docCsvKey}[doc updated=2024-09-18]{head}{\colOpt{=true\textbar false}}{default |true|, initially |true|}
+ If this key is set, the first non-empty line of the CSV file is treated as a header
line which can be used for column name assignments.
\end{docCsvKey}
\begin{docCsvKey}{no head}{}{no value}
- Abbreviation for |head=false|, i.\,e. the first line of the CSV file is
+ Abbreviation for |head=false|, i.\,e. the first non-empty line of the CSV file is
treated as data line.
Note that this option cannot be used in combination with
the |\csvauto...| commands like \refCom{csvautotabular}, etc.
@@ -1842,6 +1842,7 @@ completeness, but are unlikely to be used directly.
\subsection{Special Characters}\label{subsec:specchar}
Be default, the CSV content is treated like normal \LaTeX\ text, see
Subsection~\ref{macrocodexample} on page~\pageref{macrocodexample}.
+For example, \%~can be used to start an in-line comment.
But, \TeX\ special characters of the CSV content may also be interpreted
as normal characters (|\catcode| 12, other), if one or more of the following options are used.
diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf b/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
index 6138c507e3..25285b6379 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.sty b/macros/latex/contrib/csvsimple/csvsimple-legacy.sty
index ecaba4a7b0..7db0c82117 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-legacy.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple-legacy.sty: Simple LaTeX CSV file processing (LaTeX2e)
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README.md
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{csvsimple-legacy}[2024/05/16 version 2.6.1 LaTeX2e CSV file processing]
+\ProvidesPackage{csvsimple-legacy}[2024/09/27 version 2.7.0 LaTeX2e CSV file processing]
%---- check package
diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.tex b/macros/latex/contrib/csvsimple/csvsimple-legacy.tex
index ae40e8563d..2161afddb2 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-legacy.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.tex
@@ -1,6 +1,6 @@
% \LaTeX-Main\
% !TeX encoding=UTF-8
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/csvsimple/csvsimple.pdf b/macros/latex/contrib/csvsimple/csvsimple.pdf
index 8d148b5a6f..a5cb3da2e5 100644
--- a/macros/latex/contrib/csvsimple/csvsimple.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple.sty b/macros/latex/contrib/csvsimple/csvsimple.sty
index 01ccbb3f72..a9d549f76d 100644
--- a/macros/latex/contrib/csvsimple/csvsimple.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple.sty: Simple LaTeX CSV file processing
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README.md
%%
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
-\ProvidesExplPackage{csvsimple}{2024/05/16}{2.6.1}
+\ProvidesExplPackage{csvsimple}{2024/09/27}{2.7.0}
{LaTeX CSV file processing}
\cs_if_exist:NT \c__csvsim_package_expl_bool
diff --git a/macros/latex/contrib/csvsimple/csvsimple.tex b/macros/latex/contrib/csvsimple/csvsimple.tex
index 73d34f4c34..f3a5d66953 100644
--- a/macros/latex/contrib/csvsimple/csvsimple.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple.tex
@@ -1,6 +1,6 @@
% \LaTeX-Main\
% !TeX encoding=UTF-8
-%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
+%% The LaTeX package csvsimple - version 2.7.0 (2024/09/27)
%% csvsimple.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf
index fe5aeba297..212a2da0c9 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex
index 321723f025..abfa9021a9 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex
@@ -34,8 +34,8 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.8}
-\def\TPdate{13/07/2024}
+\def\TPversion{0.2.3}
+\def\TPdate{09/14/2024}
\usepackage{tcolorbox}
\sethlcolor{lightgray!25}
\NewDocumentCommand\MontreCode{ m }{%
@@ -59,7 +59,7 @@
{\Huge \texttt{customenvs [en]}}\\
\\
{\Large Some custom environments,} \\
- {\Large with spacing enhancements.} \\
+ {\Large or small patches.} \\
\end{tabular}
\renewcommand\arraystretch{1}
@@ -111,7 +111,18 @@
\section{History}
+\verb|v0.2.3|~:~~~Highway signs + sold banners (see \textsf{[fr]} doc)
+
+\verb|v0.2.2|~:~~~Flared arrow, with \TikZ
+
+\verb|v0.2.1|~:~~~Enhancements for \textit{stars skills} + AutoGrid for \TikZ\ (see \textsf{[fr]} doc)
+
+\verb|v0.2.0|~:~~~~Skills with stars (\textsf{fontawesome5} or \TikZ)
+
+\verb|v0.1.9|~:~~~~Title banner
+
\verb|v0.1.8|~:~~~~Score banner
+
\verb|v0.1.7|~:~~~~Small patch for \textsf{Vignette} macro (see \texttt{[fr]} documentation)
\verb|v0.1.6|~:~~~~Small patchs for \textsf{displayskip} + \textsf{pas-tableur} (see \texttt{[fr]} documentation)
@@ -558,4 +569,149 @@ Regarding the bubble creation commands, \MontreCode{\textbackslash InSMS} and \M
\end{ChatSMS}
\end{demohigh}
+\pagebreak
+
+\section{Title banner}
+
+\subsection{Global usage}
+
+The idea is to propose a banner, made with \TikZ, to present for example a title.
+
+The global style is fixed, but few customizations are possible.
+
+\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri[keys]{number}{title}
+\end{codehigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri{01}{Titre du document}
+\end{demohigh}
+
+Available \MontreCode{keys} are :
+
+\begin{itemize}
+ \item \MontreCode{height} (\MontreCode{2.5em} by default)
+ \item \MontreCode{width} (\MontreCode{\textbackslash linewidth} by default)
+ \item \MontreCode{blockwidth} (\MontreCode{2.75em} by default, but can be set to \MontreCode{auto})
+ \item \MontreCode{coltxt} (\MontreCode{white} by default)
+ \item \MontreCode{fonttxt}
+ \item \MontreCode{swap} (\MontreCode{false} by default, for an other style )
+ \item \MontreCode{maincolor} (\MontreCode{darkgray} by default)
+ \item \MontreCode{collight} (\MontreCode{darkgray!25} by default)
+ \item \MontreCode{colmedium} (\MontreCode{darkgray!50} by default)
+ \item \MontreCode{coldark} (\MontreCode{darkgray} by default)
+ \item \MontreCode{logo}
+ \item \MontreCode{type}
+ \item \MontreCode{dispblock} (\MontreCode{true} by default)
+ \item \MontreCode{num} (\MontreCode{true} by default)
+ \item \MontreCode{customtype}
+\end{itemize}
+
+\subsection{Examples}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [maincolor=red,type=EXERCISES,blockwidth=auto,logo=\faAddressBook]
+ {7}{My doc}
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [maincolor=red,type=EXERCISES,blockwidth=5em,logo=\faAddressBook]
+ {7}{My doc}
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [maincolor=red,type=EXERCISES,blockwidth=auto,logo=\faAddressBook,swap]
+ {07}{My doc}
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [dispblock=false,maincolor=teal,logo=\faSchool]
+ {}{My doc}
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [maincolor=olive,customtype=TP,blockwidth=4em,logo=\faAddressBook,height=4em]
+ {7}{My doc}
+\end{demohigh}
+
+It's possible to redefine \MontreCode{\textbackslash part} (for example).
+
+\pagebreak
+
+\section{Various commands}
+
+\subsection{Difficulty levels with stars (fontawesome5)}
+
+\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\DiffLevelStars[max level (3)]{level}
+\end{codehigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\DiffLevelStars{0}\par
+\DiffLevelStars{2.5}\par
+\textcolor{teal}{\LARGE\DiffLevelStars[5]{4}}\par
+\DiffLevelStars[5]{1.5}\par
+\end{demohigh}
+
+\subsection{Difficulty levels with stars (tikz)}
+
+\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzLevelStars[colframe=...,colback=...,offset=...,maxlevel=...,valign=...]{level}
+\end{codehigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzLevelStars{2.5}\par
+{\LARGE We ty inline \tkzLevelStars{2.25} with score 2.25}\par
+{\LARGE We ty inline \tkzLevelStars[valign=false]{1.75} with score 1.75}\par
+\tkzLevelStars[colframe=red,colback=yellow,maxlevel=5]{3}
+\end{demohigh}
+
+\subsection{Flared arrow}
+
+\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzFlaredArrow[%
+ color=..., %color of arrow
+ arrowsize=..., %size (auto or H/W )
+ bend=..., %empty for straigth or left/... or right/...
+ thickness=..., %size for the beginning
+ factor=..., %factor for calculing size for ending
+ arrowstyle=..., %style (arrows.meta)
+ move=... %boolean for moving instead coordinates
+ ]%
+ {begin}{end or move}
+\end{codehigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+%arrow 0.5mm -> 1.25mm
+\begin{tikzpicture}
+\tkzFlaredArrow%
+ [thickness=0.5mm,factor=2.5,bend=left/30,color=red,arrowstyle=Triangle]%
+ {0,0}{5,1.5}
+\end{tikzpicture}
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\begin{tikzpicture}
+ \draw[thin,lightgray] (-3,-1) grid (5,5) ;
+ \coordinate (A) at (0,0) ; \coordinate (B) at (4,1) ;
+ \coordinate (C) at (1,1) ; \coordinate (D) at (5,4) ;
+ \coordinate (E) at (0,1) ; \coordinate (F) at (0,5) ;
+ \coordinate (G) at (-2,0) ;
+ \tkzFlaredArrow[color=green,arrowstyle=Triangle]{A}{B}
+ \tkzFlaredArrow[color=blue,bend=right/10]{D}{C}
+ \tkzFlaredArrow%
+ [color=red,bend=left/45,arrowstyle=Stealth,thickness=0.1mm,factor=10]%
+ {-2,1}{0,4}
+ \tkzFlaredArrow%
+ [color=red,bend=right/45,thickness=0.1mm,factor=10,arrowstyle=Stealth]%
+ {-2,1}{0,4}
+ \tkzFlaredArrow[color=teal,move,bend=left/10]{-3,-1}{5,1}
+ \end{tikzpicture}
+\end{demohigh}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf
index 47dce47918..4c5cd3cd2f 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
index 7a7293ec6e..5f319afb89 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
@@ -39,10 +39,11 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.8}
-\def\TPdate{13 juillet 2024}
+\def\TPversion{0.2.3}
+\def\TPdate{14 septembre 2024}
\usepackage{tcolorbox}
\tcbuselibrary{listingsutf8}
+%\usepackage{eurosym}
\newtcblisting{DemoCode}[1]{%
enhanced,width=0.95\linewidth,center,%
bicolor,size=title,%
@@ -50,6 +51,8 @@
colbacklower=cyan!1!white,%
colframe=cyan!75!black,%
listing options={%
+ inputencoding=utf8,
+ %literate={`E}{{€}}{1},
breaklines=true,%
breakatwhitespace=true,%
style=tcblatex,basicstyle=\small\ttfamily,%
@@ -62,14 +65,14 @@
keywordstyle={\color{blue}},%
classoffset=1,%
alsoletter={-},%
- morekeywords={center,justify,\LstDeuxNiv,\LstTroisNiv,\LstQuatreNiv,\NoticeDeuxNiv,\NoticeTroisNiv,\NoticeQuatreNiv,\DeuxNivBatterie,\TroisNivBatterie,\QuatreNivBatterie,\DeuxNivSmiley,\TroisNivSmiley,\QuatreNivSmiley,\vcenterfa,\faIcon},%
+ morekeywords={center,justify,\LstDeuxNiv,\LstTroisNiv,\LstQuatreNiv,\NoticeDeuxNiv,\NoticeTroisNiv,\NoticeQuatreNiv,\DeuxNivBatterie,\TroisNivBatterie,\QuatreNivBatterie,\DeuxNivSmiley,\TroisNivSmiley,\QuatreNivSmiley,\vcenterfa,\faIcon,part,RenewDocumentCommand,IfBooleanTF,\VilleDist},%
keywordstyle={\color{violet}},%
classoffset=2,%
alsoletter={-},%
- morekeywords={\ReponsesQCM,MultiCols,\CreerListeItems,\ListeChoixItems,\TableauCompetences,\CrayonDeCompetences,\StyleEnvtExo,\StyleEnvtExoDefaut,\TitreExo,\ipsum,EnvSMS,\SMSrec,\SMSenv,BoiteSimple,\SujetTitreExo,\CircledNumber,\AffVignette,\BoiteArrondie,\ChangerDisplaySkip,\celcouleur,\celfusion,\lignetxt,\colonnetxt,\celnumbreak,\celtxt,\BandeauScore},%
+ morekeywords={\ReponsesQCM,MultiCols,\CreerListeItems,\ListeChoixItems,\TableauCompetences,\CrayonDeCompetences,\StyleEnvtExo,\StyleEnvtExoDefaut,\TitreExo,\ipsum,EnvSMS,\SMSrec,\SMSenv,BoiteSimple,\SujetTitreExo,\CircledNumber,\AffVignette,\BoiteArrondie,\ChangerDisplaySkip,\celcouleur,\celfusion,\lignetxt,\colonnetxt,\celnumbreak,\celtxt,\BandeauScore,\InsererImage,\tkzBannerTri,\NiveauDiffExos,\tkzEtoiles,\tkzGrilleAuto,\tkzAutoGridLocal,\tkzAutoGridActivate,\tkzFlecheEvasee,PanneauAutoroute,\AfficheSoldes},%
keywordstyle={\color{green!50!black}},%
classoffset=3,%
- morekeywords={Largeur,Filets,EspacesCL,NbCols,Labels,PoliceLabels,EspaceLabels,Swap,Type,CoeffEspVert,EpTrait,Alea,LargeurNivs,Niveaux,NoticeNiveaux,Titre,PolTitre,PolNotice,PolComp,LigneSep,CouleurNotice,CouleurNiveaux,CouleurFond,Note,Notice,PoliceCateg,PoliceBloc,Couleurs,LargeurBloc,Echelle,NoirBlanc,Libelle,EpTrait,Police,Type,ComplementTitre,Titre,CodeDebut,Couleur,EchelleImage,Decoration,Trait,Avatar,AffAvatar,NoirBlanc,CouleurE,CouleurR,CouleurFond,Hauteur,Largeur,PoliceTxt,CouleurTitre,AlignH,bg,txt,bthick,bcol,raise,Type,EspH,Fond,Texte,Style,Dense,Avant,AvantS,Apres,ApresS,Global,align,width,Legende,CouleurFond,Hauteur,Ratio,AffLegende,Couleurs,EchelleSymboles,Symboles},%
+ morekeywords={Largeur,Filets,EspacesCL,NbCols,Labels,PoliceLabels,EspaceLabels,Swap,Type,CoeffEspVert,EpTrait,Alea,LargeurNivs,Niveaux,NoticeNiveaux,Titre,PolTitre,PolNotice,PolComp,LigneSep,CouleurNotice,CouleurNiveaux,CouleurFond,Note,Notice,PoliceCateg,PoliceBloc,Couleurs,LargeurBloc,Echelle,NoirBlanc,Libelle,EpTrait,Police,Type,ComplementTitre,Titre,CodeDebut,Couleur,EchelleImage,Decoration,Trait,Avatar,AffAvatar,NoirBlanc,CouleurE,CouleurR,CouleurFond,Hauteur,Largeur,PoliceTxt,CouleurTitre,AlignH,bg,txt,bthick,bcol,raise,Type,EspH,Fond,Texte,Style,Dense,Avant,AvantS,Apres,ApresS,Global,align,width,Legende,CouleurFond,Hauteur,Ratio,AffLegende,Couleurs,EchelleSymboles,Symboles,vRemplir,vOffset,vCentrer,height,width,blockwidth,collight,colmedium,coldar,coltxt,fonttxt,swap,maincolor,logo,type,num,dispblock,customtype,Couleur,AlignV,Offset,NiveauMax,pasX,pasY,grilleauto,TailleFleche,Direction,Coeff,TypeFleche,Deplacement,LineCap,Epaisseur,CouleurCartouche,Fleches,CouleurFond,CouleurTitre,PoliceCartouche,TypeFleche,EspacementV,OffsetFleches,Dernier,PoliceEntete,PolicePrix,PoliceReduc,OffsetReduc,AgrandirReduc},%
keywordstyle={\color{orange}}
},%
#1
@@ -149,6 +152,18 @@
\section{Historique}
+\verb|v0.2.3|~:~~~Panneaux autoroutiers + Affichettes de soldes
+
+\verb|v0.2.2|~:~~~Ajout d'une commande pour des flèches évasées, en \TikZ\
+
+\verb|v0.2.1|~:~~~Amélioration de la gestion des étoiles pour des niveaux de difficultés + Grille auto pour \TikZ\
+
+\verb|v0.2.0|~:~~~Étoiles pour des niveaux de difficultés (compatible avec \texttt{EnvtExo})
+
+\verb|v0.1.9|~:~~~Bannière de titre + Insertion d'images en remplissage vertical
+
+\verb|v0.1.8|~:~~~Nutriscore
+
\verb|v0.1.7|~:~~~~Possibilité de créer des vignettes \textsf{perso}
\verb|v0.1.6|~:~~~~Patch \textsf{displayskip} + Patches \textsf{pas-tableur}
@@ -210,7 +225,10 @@ Les packages chargés sont :
\item \MontreCode{tabularray} ;
\item \MontreCode{xcolor} ;
\item \MontreCode{fontawesome5} ;
- \item \MontreCode{tikz} avec les librairies \MontreCode{decorations.pathmorphing,positioning,shapes.misc,calc}.
+ \item \MontreCode{tikz} avec les librairies :
+ \begin{itemize}
+ \item \MontreCode{decorations.pathmorphing,positioning,shapes.misc,calc,arrows,arrows.meta}.
+ \end{itemize}
\end{itemize}
À noter que, pour des raisons de compatibilité (ou d'incompatibilité), les packages \MontreCode{enumitem}/\MontreCode{multicol}/\MontreCode{tabularray}/\MontreCode{xcolor}/\MontreCode{fontawesome5} peuvent ne pas être chargés par \MontreCode{customenvs} (auxquels cas l'utilisateur devra les avoir chargés pour faire fonctionner certains environnements) via les options :
@@ -952,6 +970,8 @@ Les éléments personnalisables sont :
\begin{itemize}
\item le libellé via la clé \MontreCode{[Libelle]}, qui vaut \MontreCode{Exercice~} par défaut ;
\item la couleur via la clé \MontreCode{[Couleur]}, qui vaut \MontreCode{blue!50!black} par défaut ;
+ \item la couleur de la décoration (si textuelle) via la clé \MontreCode{[CouleurDeco]}, qui vaut \MontreCode{blue!50!black} par défaut ;
+ \item la couleur de fond la décoration (si il existe) via la clé \MontreCode{[CouleurFondDeco]}, qui vaut 50\,\% de \MontreCode{blue!50!black} par défaut ;
\item la police via la clé \MontreCode{[Police]}, qui vaut \MontreCode{\textbackslash bfseries\textbackslash LARGE\textbackslash sffamily} par défaut ;
\item l'épaisseur du trait (éventuel) via la clé \MontreCode{[EpTrait]}, qui vaut \MontreCode{1.1pt} par défaut.
\end{itemize}
@@ -999,14 +1019,13 @@ Hormis le style global, il est possible de modifier/ajouter certains éléments
\item des points, sous la forme \texttt{(xx points)} ;
\item une image, via \texttt{graphicx}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
\item une icône, via \texttt{fontawesome5}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
+ \item des étoiles, via \texttt{fontawesome5} ou \TikZ, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
\item un petit chronomètre, via \texttt{pictochrono}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
\item une ceinture colorée, via \texttt{coloredbelts}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
\end{itemize}
\item le compteur (nommé \MontreCode{numeroexo}) peut être désactivé et \textit{adpaté} via les commandes classiques de compteurs.
\end{itemize}
-\pagebreak
-
Les \MontreCode{clés} disponibles, à donner entre \MontreCode{[...]}, sont :
\begin{itemize}
@@ -1022,6 +1041,8 @@ Les \MontreCode{clés} disponibles, à donner entre \MontreCode{[...]}, sont :
\item \MontreCode{Ceinture/...} := afficher la ceinture couleur \MontreCode{...} à la fin de la ligne ;
\item \MontreCode{Chrono/...} := afficher le chrono de durée \MontreCode{...} à la fin de la ligne ;
\item \MontreCode{Points/...} := afficher les points \MontreCode{(... points)} à la fin de la ligne ;
+ \item \MontreCode{faEtoiles/...} := afficher des étoiles de difficultés à la fin de la ligne ;
+ \item \MontreCode{tkzEtoiles/...} := afficher des étoiles de difficultés à la fin de la ligne ;
\end{itemize}
\item \MontreCode{Trait} : choix du trait parmi :
\begin{itemize}
@@ -1032,6 +1053,34 @@ Les \MontreCode{clés} disponibles, à donner entre \MontreCode{[...]}, sont :
\end{itemize}
\end{itemize}
+La commande d'affichage des étoiles de difficultés est indépendante de l'environnement \MontreCode{EnvtExo}, la clé \MontreCode{Decoration=xxxEtoiles/niv} ou \MontreCode{Decoration=xxxEtoiles/niv§max} permet de l'y intégrer.
+
+\begin{DemoCode}{listing only}
+%commande d'étoiles (max=3 par défaut) avec fontawesome5
+\NiveauDiffExos[max]{nb}
+
+%commande d'étoiles (max=3 par défaut) avec tikz
+\tkzEtoiles[Couleur=...,CouleurFond=...,Offset=...,NiveauMax=...,AlignV=...]{nb}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%des demies étoiles sont possibles
+\NiveauDiffExos{0}\par
+\NiveauDiffExos{2.5}\par
+\textcolor{teal}{\LARGE\NiveauDiffExos[5]{4}}\par
+\NiveauDiffExos[5]{1.5}\par
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%des portions d'étoiles sont possibles
+%Offset=... permet de gérer l'espacement horizontal
+%AlignV est un booléen pour décaler verticalement les étoiles (inline)
+\tkzEtoiles{2.5}\par
+{\LARGE On essaye en ligne \tkzEtoiles{2.5} avec une note de 2.5}\par
+{\LARGE On essaye en ligne \tkzEtoiles[AlignV=false]{2.5} avec une note de 2.5}\par
+\tkzEtoiles[Couleur=red,CouleurFond=yellow,NiveauMax=5]{3.5}
+\end{DemoCode}
+
\subsection{Exemples}
Les exemples suivants ont été obtenus via un document externe (fourni avec le package), du fait du chargement de packages spécifiques.
@@ -1059,65 +1108,46 @@ Le code proposé utilise l'environnement, mais la commande simple est complètem
\pagebreak
\begin{DemoCode}{listing only}
-\begin{EnvtExo}%exo1
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo1
-\begin{EnvtExo}[Trait=pointilles]%exo2
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Trait=pointilles]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo2
-\begin{EnvtExo}[Trait=dashilles]%exo3
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Trait=dashilles]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo3
-\begin{EnvtExo}[Decoration=Icone/\faPython]%exo4
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Icone/\faPython]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo4
-\begin{EnvtExo}[Decoration=Ceinture/rouge]%exo5
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Ceinture/rouge]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo5
-\begin{EnvtExo}[Decoration=Chrono/20]%exo6
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Chrono/20]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo6
-\begin{EnvtExo}[Decoration=Image/goku_ssj4]%exo7
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Image/goku_ssj4]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo7
-\begin{EnvtExo}[Decoration=Image/sseiya_shura]%exo8
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=faEtoiles/1.5§4]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo8
-\begin{EnvtExo}[Decoration=Points/7]%exo9
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=tkzEtoiles/3.5§5]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo8
-\begin{EnvtExo}[Type=Perso/{Titre perso }]%exo10
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Points/7]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo9
-\StyleEnvtExo[Couleur=red,Police=\bfseries\ttfamily,EpTrait=2pt,Libelle={Exercice n°}]
+\begin{EnvtExo}[Type=Perso/{Titre perso }]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo10
-\begin{EnvtExo}[Decoration=Icone/\faAddressBook]%exo11
+\StyleEnvtExo[Couleur=red,CouleurDeco=teal,Police=\bfseries\ttfamily,EpTrait=2pt, Libelle={Exercice n°}]
+
+\begin{EnvtExo}[Decoration=Icone/\faAddressBook]
\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\end{EnvtExo}%exo11
-\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Couleur=red,Trait=dashilles]%exo12
+
+\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Trait=dashilles]%exo12
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
\StyleEnvtExoDefaut
-
\begin{EnvtExo}%
[Type=Perso/{Titre perso~},Decoration=Image/goku_ssj4,Trait=non,Compteur=false]%exo13
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
\TitreExo[Type=Perso/{Annexe Exercice 3},Compteur=false,Decoration=Image/sseiya_aiolos]%exo14
-
\ipsum<Lang=FR,Type=sent>
\end{DemoCode}
@@ -1306,6 +1336,204 @@ On se place dans la plage \VignetteTableur{A3:B5} pour...
On lance le logiciel \BoiteArrondie[Fond=cyan!33,Texte=violet,EspH=2mm,Style=rect]{situé sur le bureau} en cliquant \BoiteArrondie[Fond=lightgray!25,Texte=darkgray]{droit}.
\end{DemoCode}
+\subsection{Bannière de titre}
+
+L'idée est de proposer une bannière, réalisée en \TikZ, pour présenter par exemple un titre.
+
+Il sera ensuite possible de redéfinir un sectionnement du document (\MontreCode{part/section/subsection/...}).
+
+Le style global est fixé, mais des éléments de personnalisations sont possibles (des calculs en interne sont effectués pour adapter la taille des textes).
+
+\begin{DemoCode}{listing only}
+\tkzBannerTri[clés]{numéro}{titre}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri{01}{Titre du document}
+\end{DemoCode}
+
+Les principales \MontreCode{clés} (anglicisées) sont :
+
+\begin{itemize}
+ \item \MontreCode{height} : hauteur de la bannière (\MontreCode{2.5em} par défaut)
+ \item \MontreCode{width} : largeur de la bannière (\MontreCode{\textbackslash linewidth} par défaut)
+ \item \MontreCode{blockwidth} : largeur du bloc gauche (\MontreCode{2.75em} par défaut, mais si \MontreCode{auto}, la largeur s'adaptera à son contenu)
+ \item \MontreCode{coltxt} : couleur des textes (\MontreCode{white} par défaut)
+ \item \MontreCode{fonttxt} : police globale des textes (\MontreCode{white} par défaut)
+ \item \MontreCode{swap} : booléen pour changer le style de la partie droite (\MontreCode{false} par défaut)
+ \item \MontreCode{maincolor} : couleur principale, les dégradés étant calculés automatiquement (\MontreCode{darkgray} par défaut)
+ \item \MontreCode{collight} : couleur la plus claire (\MontreCode{darkgray!25} par défaut)
+ \item \MontreCode{colmedium} : couleur du milieu (\MontreCode{darkgray!50} par défaut)
+ \item \MontreCode{coldark} : couleur la plus foncée (\MontreCode{darkgray} par défaut)
+ \item \MontreCode{logo} : logo éventuel, placé tout à droite
+ \item \MontreCode{type} : type éventuel du document, qui est dans le bloc gauche
+ \item \MontreCode{dispblock} : booléen pour afficher le bloc de gauche (actif par défaut)
+ \item \MontreCode{num} : booléen pour afficher le numéro (actif par défaut)
+ \item \MontreCode{customtype} : texte personnalisé éventuel du bloc gauche
+\end{itemize}
+
+\begin{DemoCode}{}
+\tkzBannerTri
+ [maincolor=red,type=EXERCICES,blockwidth=auto,logo=\faAddressBook]
+ {7}{Mon document}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri
+ [maincolor=red,type=EXERCICES,blockwidth=5em,logo=\faAddressBook]
+ {7}{Mon document}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri[%
+ maincolor=red,type=EXERCICES,blockwidth=auto,logo=\faAddressBook,swap]
+ {07}{Mon document}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri
+ [dispblock=false,maincolor=teal,logo=\faSchool]
+ {}{Mon document}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri
+ [maincolor=olive,customtype=TP,blockwidth=4em,logo=\faAddressBook,height=4em]
+ {7}{Mon document}
+\end{DemoCode}
+
+Il est de ce fait \textit{normalement} possible (à vérifier quand même\ldots) de modifier le comportement de la commande \MontreCode{\textbackslash part}, dans l'optique de l'utilisation avec une table des matières notamment.
+
+\begin{DemoCode}{}
+%redéfinition de \part avec gestion de la version étoilée
+\RenewDocumentCommand\part{ s m D<>{} }{%
+ \addtocounter{part}{1}%
+ \IfBooleanTF{#1}%
+ {%
+ \tkzBannerTri[#3,num=false]{\thepart}{#2}%
+ }%
+ {%
+ \tkzBannerTri[#3]{\thepart}{#2}%
+ %\addcontentsline{toc}{part}{#2}%éventuellement
+ }%
+}
+%modification de la numérotation, avec forçage du 0
+\renewcommand\thepart{\ifnum\value{part}<10\relax0\fi\arabic{part}}
+
+\part{Éléments de logique}<type=TP,logo=\faAirbnb>
+\end{DemoCode}
+
+\pagebreak
+
+\subsection{Panneaux autoroutiers}
+
+L'idée est de proposer des panneaux type \textit{autoroutes}, réalisés via \MontreCode{tcolorbox}.
+
+Le style global est fixé, mais des éléments de personnalisations sont possibles..
+
+\begin{DemoCode}{listing only}
+\begin{PanneauAutoroute}[clés]{titre}
+%contenu
+\end{PanneauAutoroute}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\begin{PanneauAutoroute}{A4}
+REIMS\hfill~145\\
+PARIS\hfill~250
+\end{PanneauAutoroute}
+\end{DemoCode}
+
+Les clés, optionnelles et entre \MontreCode{[...]} sont :
+
+\begin{itemize}
+ \item \MontreCode{Fleches} : nombre de flèches à afficher (\MontreCode{0} par défaut)
+ \item \MontreCode{CouleurFond} : couleur de fond (\MontreCode{blue} par défaut)
+ \item \MontreCode{CouleurTitre} : couleur de la boîte \textit{titre} (\MontreCode{red} par défaut)
+ \item \MontreCode{Largeur} : largeur du panneau (\MontreCode{10cm} par défaut)
+ \item \MontreCode{Police} : police du panneau
+ \item \MontreCode{PoliceCartouche} : police du titre
+ \item \MontreCode{TypeFleche} : flèche(s) à afficher
+ \item \MontreCode{EspacementV} : interligne (\MontreCode{2.5mm} par défaut)
+ \item \MontreCode{Dernier} : booléen pour préciser que la boîte sera la dernière de la série (pour l'espace après).
+\end{itemize}
+
+\begin{DemoCode}{}
+\begin{PanneauAutoroute}[Largeur=\linewidth,Dernier=false]{TD01}
+ \VilleDist{COMPETENCE 1}{\faCheck} %macro interne pour afficher une ligne
+ \VilleDist*{COMPETENCE 2}{\faCheck} %macro pour afficher la dernière ligne
+\end{PanneauAutoroute}
+
+\begin{PanneauAutoroute}%
+ [CouleurFond=olive,Fleches=2,Police=\bfseries\huge\fontfamily{phv}\selectfont]{}
+ LILLE\hfill~301\\
+ AMIENS\hfill~213
+\end{PanneauAutoroute}
+\end{DemoCode}
+
+\pagebreak
+
+\subsection{Affichettes de soldes}
+
+L'idée est de proposer des petites affichettes pour des réductions, réalisées via \MontreCode{tcolorbox} (sur une idée de \textit{Sébastien Lozano}).
+
+Le style global est fixé, mais des éléments de personnalisations sont possibles..
+
+\begin{DemoCode}{listing only}
+\AfficheSoldes[clés]{prix avant}{prix après}{réduction}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\AfficheSoldes{99\texteuro}{79\texteuro}{-20\%}
+\end{DemoCode}
+
+Les clés, optionnelles et entre \MontreCode{[...]} sont :
+
+\begin{itemize}
+ \item \MontreCode{Couleur} : couleur principale (\MontreCode{gray} par défaut)
+ \item \MontreCode{Largeur} : largeur (\MontreCode{auto} ou par défaut) à définir
+ \item \MontreCode{PoliceEntete} : police du titre
+ \item \MontreCode{PolicePrix} : police des prix
+ \item \MontreCode{PoliceReduc} : police de la réduction
+ \item \MontreCode{Titre} : titre de l'affiche (\MontreCode{GRANDE DÉMARQUE} par défaut)
+ \item \MontreCode{OffsetReduc} : \textit{pente} pour le bandeau de réduction (\MontreCode{1.25cm} par défaut)
+ \item \MontreCode{AgrandirReduc} : augmenter la hauteur de la partie réduction
+\end{itemize}
+
+Donc la hauteur est fixée par \textit{calculs}, et également la largeur si \MontreCode{Largeur=auto}.
+
+La largeur \MontreCode{auto} permet de faire \textit{marcher} des prix jusque \MontreCode{99\,999\,€}.
+
+\begin{DemoCode}{}
+\AfficheSoldes{99\texteuro}{79\texteuro}{-20\,\%}~%
+\AfficheSoldes[Couleur=red]{99\texteuro}{79\texteuro}{-20\,\%}~%
+\AfficheSoldes[Couleur=blue]{\ldots\texteuro}{79\texteuro}{-20\,\%}~%
+\AfficheSoldes[Couleur=teal]{\ldots}{\ldots}{\ldots}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\AfficheSoldes[%
+ Couleur=magenta,%
+ Largeur=6cm,%
+ PoliceEntete=\huge\sffamily\bfseries,%
+ PolicePrix=\ttfamily,%
+ PoliceReduc=\bfseries\Huge\sffamily,%
+ AgrandirReduc=8mm
+ ]%
+ {1\,500\texteuro}{1\,299\texteuro}{-\ldots\,\%}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\AfficheSoldes[%
+ Couleur=cyan,%
+ PoliceEntete=\bfseries\huge\fontfamily{qhv}\selectfont,%
+ PolicePrix=\fontfamily{qhv}\selectfont,%
+ PoliceReduc=\bfseries\Huge\fontfamily{qhv}\selectfont,%
+ AgrandirReduc=1cm
+ ]%
+ {\makebox[1cm]{\dotfill}\texteuro}{1\,299\texteuro}{-30\,\%}
+\end{DemoCode}
+
\pagebreak
\section{Patchs divers}
@@ -1395,4 +1623,178 @@ L'exemple suivant illustre les différentes commandes proposées dans ce package
\end{tikzpicture}
\end{DemoCode}
+\subsection{Insertion d'images avec remplissage de l'espace vertical}
+
+L'idée est de proposer une commande pour adapter la hauteur d'une image à la hauteur restante en base de page.
+
+Cela repose en fait simplement sur l'utilisation de \MontreCode{[height=\textbackslash dimexpr\textbackslash pagegoal-\textbackslash pagetotal\textbackslash relax]}.
+
+\begin{DemoCode}{listing only}
+\InsererImage<vRemplir=true/false,vOffset=...,vCentrer=...>[clés includegraphics]<image>
+\end{DemoCode}
+
+La clé \MontreCode{vOffset} permet de spécifier une longueur à retirer au calcul automatique (par défaut elle est fixée à \MontreCode{0pt})..
+
+La clé \MontreCode{vCentrer} (parmi \MontreCode{m/h/b/n} permet de spécifier un type de centrage vertical, si besoin, parmi \MontreCode{milieu/haut/bas/non} (\MontreCode{n} par défaut).
+
+\begin{DemoCode}{listing only}
+\InsererImage<vRemplir,vOffset=5mm,vCentrer=m>{example-image}
+\end{DemoCode}
+
+\InsererImage<vRemplir,vOffset=5mm,vCentrer=m>{example-image}
+
+\subsection{Grille automatique pour les environnements tikzpicture}
+
+L'idée est de proposer de quoi afficher, en \textit{surimpression}, une grille automatique sur une figure \MontreCode{tikzpicture}.
+
+Cela peut-être utile dans la construction de graphes ou de figures géométriques pour placer plus facilement des objets.
+
+\smallskip
+
+Il est possible de :
+
+\begin{itemize}
+ \item demander ponctuellement l'affichage avec une macro à placer en fin d'environnement ;
+ \item automatiser l'affichage pour une figure avec une \MontreCode{clé} et une macro locale ;
+ \item automatiser l'affichage pour toutes les figures avec une macro globale et une \MontreCode{clé}.
+\end{itemize}
+
+\textbf{\large Version manuelle}
+
+\begin{DemoCode}{listing only}
+%macro locale, utilisation ponctuelle
+\begin{tikzpicture}
+ %codes
+ \tkzGrilleAuto(*){pasX§pasY}
+\end{tikzpicture}
+\end{DemoCode}
+
+La version étoilée marque également l'origine $(0;0)$.
+
+L'argument obligatoire permet de spécifier les pas (\texttt{H§V}) pour la grille.
+
+\begin{DemoCode}{}
+\begin{tikzpicture}
+ %population
+ \draw[very thick,purple] (0,0) circle[x radius=3cm,y radius=2cm] ;
+ \draw[purple] (0.5,1.25) node[font=\small] {Population E} ;
+ %ss population
+ \draw[very thick,teal] (-0.75,-0.25) circle[x radius=1.75cm,y radius=1cm] ;
+ \draw[teal] (-0.75,-0.25) node[font=\small] {Sous-population A} ;
+ %grille auto manuelle, avec origine
+ \tkzGrilleAuto*{0.5§0.5}
+\end{tikzpicture}
+\end{DemoCode}
+
+\textbf{\large Version automatique locale, avec clé}
+
+\begin{DemoCode}{listing only}
+%clé locale, utilisation ponctuelle
+\begin{tikzpicture}[grilleauto=pasX§pasY]
+ \tkzAutoGridLocal(*)
+ %codes
+\end{tikzpicture}
+\end{DemoCode}
+
+La version étoilée marque également l'origine $(0;0)$.
+
+\begin{DemoCode}{}
+\begin{tikzpicture}[x=0.5cm,y=0.5cm,grilleauto=0.25§0.25]
+ %grille (qui sera affichée en dernier)
+ \tkzAutoGridLocal*
+ %triangle
+ \draw[very thick,red] (-4,-2)--(0,7)--(6,1)--cycle ;
+ %cercle
+ \draw[very thick,blue] (0,0) circle[radius=5] ;
+ %segment
+ \draw[very thick,orange] (-1.75,1.25)--(1,-7);
+\end{tikzpicture}
+\end{DemoCode}
+
+\textbf{\large Version automatique globale, avec clé}
+
+\begin{DemoCode}{listing only}
+%préambule, la commande sera active pour tous les environnements tikz
+\tkzAutoGridActivate(*)
+
+%document
+\begin{tikzpicture}[grilleauto=pasX§pasY]
+ %codes
+\end{tikzpicture}
+\end{DemoCode}
+
+La version étoilée marquera également l'origine $(0;0)$.
+
+\pagebreak
+
+\subsection{Flèche évasée, en \TikZ}
+
+L'idée est de proposer une commande, en \TikZ, pour représenter une flèche évasée, avec des paramètres optionnels.
+
+\begin{DemoCode}{listing only}
+\tkzFlecheEvasee[clés]{départ}{arrivée ou déplacement}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\begin{tikzpicture}
+ \tkzFlecheEvasee{0,0}{5,1.5}
+\end{tikzpicture}
+\end{DemoCode}
+
+Les \MontreCode{clés} disponibles, à donner entre \MontreCode{[...]}, sont :
+
+\begin{itemize}
+ \item \MontreCode{Couleur=...} : couleur de la flèche ;
+ \item \MontreCode{Epaisseur=...} : taille initiale du trait (\MontreCode{0.5mm} par défaut) ;
+ \item \MontreCode{Direction=...} : direction de la flèche, avec angle éventuel ;
+ \item \MontreCode{Coeff=...} : coefficient pour la taille finale du trait (\MontreCode{4} par défaut) ;
+ \item \MontreCode{TypeFleche=...} : type de la flèche, issue de \MontreCode{arrows.meta} ;
+ \item \MontreCode{TailleFleche=...} : booléen pour la taille de la partie flèche (\MontreCode{auto} par défaut), en langage \MontreCode{arrows.meta} ;
+ \item \MontreCode{Deplacement} : booléen pour spécifier qu'on travaille avec un déplacement pour l'arrivée.
+\end{itemize}
+
+Le premier argument obligatoire, permet de spécifier le nœud de départ ou les coordonnées du point de départ.
+
+Le second argument obligatoire, permet de spécifier le nœud d'arrivée ou les coordonnées du point d'arrivée, mais également le déplacement dans le cas ou \MontreCode{Deplacement=true}.
+
+\medskip
+
+Par défaut, et en mode \MontreCode{auto} :
+
+\begin{itemize}
+ \item le début du trait mesure \MontreCode{Epaisseur=0.5mm} ;
+ \item la fin du trait mesure \MontreCode{4*Epaisseur=2mm} ;
+ \item les dimensions de la flèche sont \MontreCode{H=2*4*Epaisseur=4mm} et \MontreCode{L=2.1*4*Epaisseur=4.2mm}.
+\end{itemize}
+
+À noter que pour les flèches type \MontreCode{Stealth}, un ajustement est sans doute à prévoir pour compenser le \textit{creux}.
+
+\begin{DemoCode}{}
+%flèche 0.5mm -> 1.25mm
+\begin{tikzpicture}
+ \tkzFlecheEvasee%
+ [Epaisseur=0.5mm,Coeff=2.5,Direction=left/30,Couleur=red,TypeFleche=Triangle]%
+ {0,0}{5,1.5}
+\end{tikzpicture}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\begin{tikzpicture}
+ \draw[thin,lightgray] (-3,-1) grid (5,5) ;
+ \coordinate (A) at (0,0) ; \coordinate (B) at (4,1) ;
+ \coordinate (C) at (1,1) ; \coordinate (D) at (5,4) ;
+ \coordinate (E) at (0,1) ; \coordinate (F) at (0,5) ;
+ \coordinate (G) at (-2,0) ;
+ \tkzFlecheEvasee[Couleur=green,TypeFleche=Triangle]{A}{B}
+ \tkzFlecheEvasee[Couleur=blue,Direction=right/10]{D}{C}
+ \tkzFlecheEvasee%
+ [Couleur=red,Direction=left/45,TypeFleche=Stealth,Epaisseur=0.1mm,Coeff=10]%
+ {-2,1}{0,4}
+ \tkzFlecheEvasee%
+ [Couleur=red,Direction=right/45,Epaisseur=0.1mm,Coeff=10,TypeFleche=Stealth]%
+ {-2,1}{0,4}
+ \tkzFlecheEvasee[Couleur=teal,Deplacement,Direction=left/10]{-3,-1}{5,1}
+\end{tikzpicture}
+\end{DemoCode}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/customenvs/doc/envtexo_exemples.pdf b/macros/latex/contrib/customenvs/doc/envtexo_exemples.pdf
index 717f3a12c9..aed4fe853c 100644
--- a/macros/latex/contrib/customenvs/doc/envtexo_exemples.pdf
+++ b/macros/latex/contrib/customenvs/doc/envtexo_exemples.pdf
Binary files differ
diff --git a/macros/latex/contrib/customenvs/doc/envtexo_exemples.tex b/macros/latex/contrib/customenvs/doc/envtexo_exemples.tex
index 2daa195179..d32d06230a 100644
--- a/macros/latex/contrib/customenvs/doc/envtexo_exemples.tex
+++ b/macros/latex/contrib/customenvs/doc/envtexo_exemples.tex
@@ -16,6 +16,8 @@
\begin{document}
+\pagestyle{empty}
+
\begin{EnvtExo}%exo1
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
@@ -40,40 +42,44 @@
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
-\begin{EnvtExo}[Decoration=Image/goku_ssj4]%exo7
+\begin{EnvtExo}[Etoiles=2,Decoration=Image/goku_ssj4]%exo7
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Decoration=faEtoiles/1.5§4]%exo8
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
-\begin{EnvtExo}[Decoration=Image/sseiya_shura]%exo8
+\begin{EnvtExo}[Decoration=tkzEtoiles/3.5§5]%exo9
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
-\begin{EnvtExo}[Decoration=Points/7]%exo9
+\begin{EnvtExo}[Decoration=Points/7]%exo10
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
-\begin{EnvtExo}[Type=Perso/{Titre perso }]%exo10
+\begin{EnvtExo}[Type=Perso/{Titre perso },Etoiles={2.5§5}]%exo11
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
-\StyleEnvtExo[Couleur=red,Police=\bfseries\ttfamily,EpTrait=2pt,Libelle={Exercice n°}]
+\StyleEnvtExo[Couleur=red,CouleurDeco=teal,Police=\bfseries\ttfamily,EpTrait=2pt,Libelle={Exercice n°}]
-\begin{EnvtExo}[Decoration=Icone/\faAddressBook]%exo11
+\begin{EnvtExo}[Decoration=Icone/\faAddressBook]%exo12
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
-\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Couleur=red,Trait=dashilles]%exo12
+\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Trait=dashilles,Etoiles=0.5]%exo13
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
\StyleEnvtExoDefaut
\begin{EnvtExo}%
- [Type=Perso/{Titre perso~},Decoration=Image/goku_ssj4,Trait=non,Compteur=false]%exo13
+ [Type=Perso/{Titre perso~},Decoration=Image/goku_ssj4,Trait=non,Compteur=false]%exo14
\ipsum<Lang=FR,Type=sent>
\end{EnvtExo}
-\TitreExo[Type=Perso/{Annexe Exercice 3},Compteur=false,Decoration=Image/sseiya_aiolos]%exo14
+\TitreExo[Type=Perso/{Annexe Exercice 3},Compteur=false,Decoration=Image/sseiya_aiolos]%exo15
\ipsum<Lang=FR,Type=sent>
diff --git a/macros/latex/contrib/customenvs/tex/customenvs.sty b/macros/latex/contrib/customenvs/tex/customenvs.sty
index af81d0b88d..a54da462ab 100644
--- a/macros/latex/contrib/customenvs/tex/customenvs.sty
+++ b/macros/latex/contrib/customenvs/tex/customenvs.sty
@@ -3,9 +3,14 @@
% source pencil...: CC-BY-SA 4.0 https://tex.stackexchange.com/questions/504092/replicating-a-fancy-bordered-text-style-in-latex/504145#504145
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{customenvs}[2024/07/13 0.1.8 Custom classic environments]
+\ProvidesPackage{customenvs}[2024/09/14 0.2.3 Custom classic environments]
%====HISTORIQUE
+% v 0.2.3 Panneau autoroutier + Panneau Soldes
+% v 0.2.2 Flèche évasée, en TikZ
+% v 0.2.1 Modification mineure de la gestion des étoiles tikz (baseline) + grille auto tikzpicture
+% v 0.2.0 Ajout d'étoiles pour les difficultés d'exercices (2 versions)
+% v 0.1.9 tkzBanner + tkzBannerTri + includegraphicsfill
% v 0.1.8 Nutriscore
% v 0.1.7 Style perso pour les vignettes
% v 0.1.6 DisplaySkip patch + Patchs pas-tableur
@@ -677,7 +682,155 @@
}
%====EXERCICE PERSO
+\newlength{\largstarsempty}
+\newlength{\largstarsmid}
+\newlength{\largstarfull}
+\newlength{\largmaxstars}
+
+%commande annexe tkzlevelstars [en] + [fr]
+\usetikzlibrary{shapes.geometric}
+
+\newlength{\tmphauteuretoiles}
+\newlength{\tmpprofondeuretoiles}
+\newlength{\tmpoffsetetoiles}\setlength{\tmpoffsetetoiles}{0.25pt}
+
+\defKV[levelstars]{%
+ colframe=\def\tkzLevelStarsColor{#1},
+ colback=\def\tkzLevelStarsColorBg{#1},
+ offset=\setlength{\tmpoffsetetoiles}{#1},
+ maxlevel=\def\tkzLevelStarsMaxLevel{#1}
+}
+
+\setKVdefault[levelstars]{%
+ colframe=black,
+ colback=gray,
+ offset={0.025em},
+ maxlevel=3,
+ valign=true
+}
+
+\NewDocumentCommand{\tkzLevelStars}{ O{} m }{%
+ %lectures des clés
+ \restoreKV[levelstars]%
+ \setKV[levelstars]{#1}%
+ %dimensions
+ \settototalheight{\tmphauteuretoiles}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}%
+ \setlength{\tmphauteuretoiles}{0.95\tmphauteuretoiles}%
+ \ifboolKV[levelstars]{valign}%
+ {%
+ \settodepth{\tmpprofondeuretoiles}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}%
+ \begin{tikzpicture}[baseline={-1.25\tmpprofondeuretoiles},fill=\tkzLevelStarsColorBg,draw=\tkzLevelStarsColor,rounded corners={0.05\tmphauteuretoiles},line width={0.04\tmphauteuretoiles}]
+ }%
+ {%
+ \begin{tikzpicture}[fill=\tkzLevelStarsColorBg,draw=\tkzLevelStarsColor,rounded corners={0.05\tmphauteuretoiles},line width={0.04\tmphauteuretoiles}]
+ }%
+ \foreach \X in {1,...,\tkzLevelStarsMaxLevel}{%
+ \xdef\tmpxfill{\xintfloateval{min(1,max(1+#2-\X,0))}}%
+ %\pgfmathsetmacro{\tmpxfill}{min(1,max(1+#2-\X,0))}
+ \path ({\X*(\tmphauteuretoiles+\tmpoffsetetoiles)},0) node[star,draw,star point height={0.25\tmphauteuretoiles},minimum size={\tmphauteuretoiles},inner sep=0pt,path picture={\fill (path picture bounding box.south west) rectangle ([xshift=\tmpxfill*0.9515*\tmphauteuretoiles]path picture bounding box.north west);}]{};
+ }
+ \end{tikzpicture}%
+}
+
+\defKV[tkznivetoiles]{%
+ Couleur=\def\tkzLevelStarsColor{#1},
+ CouleurFond=\def\tkzLevelStarsColorBg{#1},
+ Offset=\setlength{\tmpoffsetetoiles}{#1},
+ NiveauMax=\def\tkzLevelStarsMaxLevel{#1}
+}
+
+\setKVdefault[tkznivetoiles]{%
+ Couleur=black,
+ CouleurFond=gray,
+ Offset={0.025em},
+ NiveauMax=3,
+ AlignV=true
+}
+
+\NewDocumentCommand{\tkzEtoiles}{ O{} m }{%
+ %lectures des clés
+ \restoreKV[tkznivetoiles]%
+ \setKV[tkznivetoiles]{#1}%
+ %dimensions
+ \settototalheight{\tmphauteuretoiles}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}%
+ \setlength{\tmphauteuretoiles}{0.95\tmphauteuretoiles}%
+ \ifboolKV[tkznivetoiles]{AlignV}%
+ {%
+ \settodepth{\tmpprofondeuretoiles}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}%
+ \begin{tikzpicture}[baseline={-1.25\tmpprofondeuretoiles},fill=\tkzLevelStarsColorBg,draw=\tkzLevelStarsColor,rounded corners={0.05\tmphauteuretoiles},line width={0.04\tmphauteuretoiles}]
+ }%
+ {%
+ \begin{tikzpicture}[fill=\tkzLevelStarsColorBg,draw=\tkzLevelStarsColor,rounded corners={0.05\tmphauteuretoiles},line width={0.04\tmphauteuretoiles}]
+ }%
+ \foreach \X in {1,...,\tkzLevelStarsMaxLevel}{%
+ \xdef\tmpxfill{\xintfloateval{min(1,max(1+#2-\X,0))}}%
+ %\pgfmathsetmacro{\tmpxfill}{min(1,max(1+#2-\X,0))}
+ \path ({\X*(\tmphauteuretoiles+\tmpoffsetetoiles)},0) node[star,draw,star point height={0.25\tmphauteuretoiles},minimum size={\tmphauteuretoiles},inner sep=0pt,path picture={\fill (path picture bounding box.south west) rectangle ([xshift=\tmpxfill*0.9515*\tmphauteuretoiles]path picture bounding box.north west);}]{};
+ }
+ \end{tikzpicture}%
+}
+%commande annexe ;-)
+\NewDocumentCommand\NiveauDiffExos{ O{3} m }{%avec des demis ??
+ %les tailles de boîtes
+ \settowidth{\largstarsempty}{{\faStar[regular]}}%
+ \settowidth{\largstarsmid}{{\faIcon{star-half-alt}}}%
+ \settowidth{\largstarfull}{{\faStar}}%
+ \pgfmathsetlength{\largmaxstars}{max(\largstarsempty,\largstarsmid,\largstarfull)}%
+ %les calculs intermédiaires
+ \xintifboolexpr{#1 < 0}{\xdef\tmpstarsmax{3}}{\xdef\tmpstarsmax{#1}}%on met à 3 si pas valide
+ \xintifboolexpr{#2 >= 0 'and' #2 <= \tmpstarsmax 'and' isint(2*#2) == 1}{\xdef\tmpstars{#2}}{\xdef\tmpstars{0}}%on met à zéro si pas valide
+ %
+ \xintifboolexpr{isint(\tmpstars) == 1}%
+ {%
+ \xdef\tmpstarsexosfull{\tmpstars}%
+ \xdef\tmpstarsexosmid{0}%
+ \xdef\tmpstarsexosempty{\xinteval{\tmpstarsmax-\tmpstars}}%
+ }%
+ {%
+ \xdef\tmpstarsexosmid{1}%
+ \xdef\tmpstarsexosfull{\xinteval{(\tmpstars-0.5)}}%
+ \xdef\tmpstarsexosempty{\xinteval{\tmpstarsmax-1-\tmpstarsexosfull}}%
+ }%
+ %affichage des full
+ \xintifboolexpr{\tmpstarsexosfull > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosfull}}\do{\makebox[\largmaxstars][c]{\faStar}}}{}%
+ %affichage des mid
+ \xintifboolexpr{\tmpstarsexosmid > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosmid}}\do{\makebox[\largmaxstars][c]{\faIcon{star-half-alt}}}}{}%
+ %affichage des vides
+ \xintifboolexpr{\tmpstarsexosempty > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosempty}}\do{\makebox[\largmaxstars][c]{\faStar[regular]}}}{}%
+}
+
+%commande annexe [en] ;-)
+\NewDocumentCommand\DiffLevelStars{ O{3} m }{%avec des demis ??
+ %les tailles de boîtes
+ \settowidth{\largstarsempty}{{\faStar[regular]}}%
+ \settowidth{\largstarsmid}{{\faIcon{star-half-alt}}}%
+ \settowidth{\largstarfull}{{\faStar}}%
+ \pgfmathsetlength{\largmaxstars}{max(\largstarsempty,\largstarsmid,\largstarfull)}%
+ %les calculs intermédiaires
+ \xintifboolexpr{#1 < 0}{\xdef\tmpstarsmax{3}}{\xdef\tmpstarsmax{#1}}%on met à 3 si pas valide
+ \xintifboolexpr{#2 >= 0 'and' #2 <= \tmpstarsmax 'and' isint(2*#2) == 1}{\xdef\tmpstars{#2}}{\xdef\tmpstars{0}}%on met à zéro si pas valide
+ %
+ \xintifboolexpr{isint(\tmpstars) == 1}%
+ {%
+ \xdef\tmpstarsexosfull{\tmpstars}%
+ \xdef\tmpstarsexosmid{0}%
+ \xdef\tmpstarsexosempty{\xinteval{\tmpstarsmax-\tmpstars}}%
+ }%
+ {%
+ \xdef\tmpstarsexosmid{1}%
+ \xdef\tmpstarsexosfull{\xinteval{(\tmpstars-0.5)}}%
+ \xdef\tmpstarsexosempty{\xinteval{\tmpstarsmax-1-\tmpstarsexosfull}}%
+ }%
+ %affichage des full
+ \xintifboolexpr{\tmpstarsexosfull > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosfull}}\do{\makebox[\largmaxstars][c]{\faStar}}}{}%
+ %affichage des mid
+ \xintifboolexpr{\tmpstarsexosmid > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosmid}}\do{\makebox[\largmaxstars][c]{\faIcon{star-half-alt}}}}{}%
+ %affichage des vides
+ \xintifboolexpr{\tmpstarsexosempty > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosempty}}\do{\makebox[\largmaxstars][c]{\faStar[regular]}}}{}%
+}
+
+%code ppal
\newcounter{numeroexo}
\setcounter{numeroexo}{0}
\newlength{\eptraitexo}
@@ -688,6 +841,8 @@
\newlength{\tmp@image@profondeur}
\colorlet{macouleurexo}{blue!50!black}
+\colorlet{macouleurexodeco}{blue!50!black}
+\colorlet{macouleurexodecofond}{blue!50!black}
\newcommand\tmpstyleexo{\bfseries\LARGE\sffamily}%
\newcommand\tmplabelexo{Exercice~}%
@@ -695,15 +850,21 @@
\defKV[globalstyleexo]{%
Libelle=\renewcommand\tmplabelexo{#1},%
Couleur=\colorlet{macouleurexo}{#1},%
+ CouleurDeco=\colorlet{macouleurexodeco}{#1},%
+ CouleurFondDeco=\colorlet{macouleurexodecofond}{#1},%
Police=\renewcommand\tmpstyleexo{#1},%
- EpTrait=\setlength{\eptraitexo}{#1}
+ EpTrait=\setlength{\eptraitexo}{#1},%
+ EchelleEtoiles=\def\tmpscalestarsexos{#1}
}
\setKVdefault[globalstyleexo]{%
Libelle={Exercice~},%
Couleur={blue!50!black},%
+ CouleurDeco={blue!50!black},%
+ CouleurFondDeco={macouleurexodeco!50},%
Police={\bfseries\LARGE\sffamily},%
- EpTrait={1.1pt}
+ EpTrait={1.1pt},%
+ EchelleEtoiles=0.85
}
\NewDocumentCommand\StyleEnvtExo{ O{} }{%
@@ -718,20 +879,20 @@
Type=\def\EnvtExoType{#1},%
ComplementTitre=\def\EnvtExoCpltTitre{#1},%
CodeDebut=\def\EnvtExoCodeAvant{#1},%
- %Couleur=\def\EnvtExoCouleur{#1},%
EchelleImage=\def\EnvtExoScaleImg{#1},%
Decoration=\def\EnvtExoDeco{#1},%
- Trait=\def\EnvtExoTrait{#1}
+ Trait=\def\EnvtExoTrait{#1},%
+ Etoiles=\def\EnvtExoEtoiles{#1}
}
\setKVdefault[EnvtExercice]{
Type=Classique,%
ComplementTitre={},%
CodeDebut={},%
- %Couleur=macouleurexo,%
EchelleImage=1.15,%
Compteur=true,%
Decoration={},%
- Trait=plein
+ Trait=plein,%
+ Etoiles={}
}
\NewDocumentEnvironment{EnvtExo}{ !O{} }%
@@ -746,18 +907,32 @@
{%
%label avec numéro et complément
\tmpstyleexo\tmplabelexo\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre%
+ %étoiles eventuelles
+ \IfStrEq{\EnvtExoEtoiles}{}{}%
+ {%
+ \,(\IfSubStr{\EnvtExoEtoiles}{§}%
+ {%
+ \StrCut{\EnvtExoEtoiles}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoEtoiles}%
+ }%
+ )%
+ }%
%trait éventuel
\IfStrEqCase{\EnvtExoTrait}{%
{plein}{\,\hrulefill}%
{pointilles}{\,\dotfill}%
{dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}}%
{non}{\hfill}%
+ {aucun}{~}%
}%
%décoration éventuelle
\IfSubStr{\EnvtExoDeco}{Icone}%
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]%
- \,\scalebox{0.85}[0.85]{\EnvtExoIcon}%
+ \,\textcolor{macouleurexodeco}{\scalebox{0.85}[0.85]{\EnvtExoIcon}}%
}{}%
\IfSubStr{\EnvtExoDeco}{Ceinture}%
{%
@@ -767,13 +942,13 @@
\IfSubStr{\EnvtExoDeco}{Chrono}%
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoChrono]%
- \,\pictochrono[ColTime=macouleurexo!50]{\EnvtExoChrono}%
+ \,\pictochrono[ColTime=macouleurexodeco!50]{\EnvtExoChrono}%
}{}%
\IfSubStr{\EnvtExoDeco}{Points}%
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]%
\IfStrEq{\EnvtExoPts}{1}{\def\pts{point}}{\def\pts{points}}%
- \,(\EnvtExoPts\ \pts)%
+ \,\textcolor{macouleurexodeco}{(\EnvtExoPts\ \pts)}%
}{}%
\IfSubStr{\EnvtExoDeco}{Image}%
{%
@@ -781,12 +956,49 @@
\settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}%
\,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$%
}{}%
+ \IfSubStr{\EnvtExoDeco}{faEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSubStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos[\EnvtExoStarTot]{\EnvtExoStarNb}}}%
+ }%
+ {%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos{\EnvtExoStars}}}%
+ }%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{tkzEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSubStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoStars}%
+ }%
+ }{}%
}{}%
\IfSubStr{\EnvtExoType}{Perso}%OK perso____déco
{%
\StrBehind{\EnvtExoType}{/}[\EnvtExoLabel]%
%label avec numéro et complément
\tmpstyleexo\EnvtExoLabel\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre%
+ %étoiles eventuelles
+ \IfStrEq{\EnvtExoEtoiles}{}{}%
+ {%
+ \,(\IfSubStr{\EnvtExoEtoiles}{§}%
+ {%
+ \StrCut{\EnvtExoEtoiles}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoEtoiles}%
+ }%
+ )%
+ }%
%trait éventuel
\IfStrEqCase{\EnvtExoTrait}{%
{plein}{\,\hrulefill}%
@@ -798,7 +1010,7 @@
\IfSubStr{\EnvtExoDeco}{Icone}%
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]%
- \,\scalebox{0.85}[0.85]{\EnvtExoIcon}%
+ \,\textcolor{macouleurexodeco}{\scalebox{0.85}[0.85]{\EnvtExoIcon}}%
}{}%
\IfSubStr{\EnvtExoDeco}{Ceinture}%
{%
@@ -808,13 +1020,13 @@
\IfSubStr{\EnvtExoDeco}{Chrono}%
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoChrono]%
- \,\pictochrono[ColTime=macouleurexo!50]{\EnvtExoChrono}%
+ \,\pictochrono[ColTime=macouleurexodeco!50]{\EnvtExoChrono}%
}{}%
\IfSubStr{\EnvtExoDeco}{Points}%
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]%
\IfStrEq{\EnvtExoPts}{1}{\def\pts{point}}{\def\pts{points}}%
- \,(\EnvtExoPts\ \pts)%
+ \,\textcolor{macouleurexodeco}{(\EnvtExoPts\ \pts)}%
}{}%
\IfSubStr{\EnvtExoDeco}{Image}%
{%
@@ -822,6 +1034,30 @@
\settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}%
\,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$%
}{}%
+ \IfSubStr{\EnvtExoDeco}{faEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSuStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos[\EnvtExoStarTot]{\EnvtExoStarNb}}}%
+ }%
+ {%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos{\EnvtExoStars}}}%
+ }%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{tkzEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSubStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoStars}%
+ }%
+ }{}%
}{}%
\endgroup%
\def\hrulefill{\leavevmode\leaders\hrule height 0.4pt\hfill\kern\z@}%
@@ -841,6 +1077,19 @@
{%
%label avec numéro et complément
\tmpstyleexo\tmplabelexo\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre%
+ %étoiles eventuelles
+ \IfStrEq{\EnvtExoEtoiles}{}{}%
+ {%
+ \,(\IfSubStr{\EnvtExoEtoiles}{§}%
+ {%
+ \StrCut{\EnvtExoEtoiles}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoEtoiles}%
+ }%
+ )%
+ }%
%trait éventuel
\IfStrEqCase{\EnvtExoTrait}{%
{plein}{\,\hrulefill}%
@@ -876,12 +1125,49 @@
\settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}%
\,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$%
}{}%
+ \IfSubStr{\EnvtExoDeco}{faEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSuStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos[\EnvtExoStarTot]{\EnvtExoStarNb}}}%
+ }%
+ {%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos{\EnvtExoStars}}}%
+ }%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{tkzEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSubStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoStars}%
+ }%
+ }{}%
}{}%
\IfSubStr{\EnvtExoType}{Perso}%OK perso____déco
{%
\StrBehind{\EnvtExoType}{/}[\EnvtExoLabel]%
%label avec numéro et complément
\tmpstyleexo\EnvtExoLabel\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre%
+ %étoiles eventuelles
+ \IfStrEq{\EnvtExoEtoiles}{}{}%
+ {%
+ \,(\IfSubStr{\EnvtExoEtoiles}{§}%
+ {%
+ \StrCut{\EnvtExoEtoiles}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoEtoiles}%
+ }%
+ )%
+ }%
%trait éventuel
\IfStrEqCase{\EnvtExoTrait}{%
{plein}{\,\hrulefill}%
@@ -917,6 +1203,30 @@
\settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}%
\,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$%
}{}%
+ \IfSubStr{\EnvtExoDeco}{faEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSuStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos[\EnvtExoStarTot]{\EnvtExoStarNb}}}%
+ }%
+ {%
+ \textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos{\EnvtExoStars}}}%
+ }%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{tkzEtoiles}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+ \IfSubStr{\EnvtExoStars}{§}%
+ {%
+ \StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+ }%
+ {%
+ \tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoStars}%
+ }%
+ }{}%
}{}%
\endgroup%
\def\hrulefill{\leavevmode\leaders\hrule height 0.4pt\hfill\kern\z@}%
@@ -2107,4 +2417,655 @@
\end{tikzpicture}%
}
+%====vincludegraphics [fr]
+\newlength{\tmp@includegraphics@vfill@offset}
+
+\defKV[vfillincludegphcs]{vOffset=\setlength\tmp@includegraphics@vfill@offset{#1},vCentrer=\def\tmpincludegpvcenter{#1}}
+\setKVdefault[vfillincludegphcs]{vRemplir=false,vOffset=0pt,vCentrer=n}
+
+\NewDocumentCommand\InsererImage{ D<>{} O{} m }{%
+ \restoreKV[vfillincludegphcs]%
+ \setKV[vfillincludegphcs]{#1}%
+ \ifboolKV[vfillincludegphcs]{vRemplir}%
+ {%
+ \IfStrEqCase{\tmpincludegpvcenter}{%
+ {m}{\vfill\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}\vfill}%
+ {h}{\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}\vfill}%
+ {b}{\vfill\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}}%
+ {n}{\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}}%
+ }[{\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}}]%
+ }%
+ {%
+ \includegraphics[#2]{#3}%
+ }%
+}
+
+%===tkzBanner mixte
+\defKV[tkzBannerKeys]{%
+ maincolor=\def\tkzBannermaincol{#1}
+}
+
+\setKVdefault[tkzBannerKeys]{%
+ height=2.1cm,%
+ width=\linewidth,%
+ collight=teal!25,%
+ colmedium=teal!75,%
+ coldark=teal,%
+ coltxt=white,%
+ fonttxt=\sffamily\bfseries,%
+ swap=false,%
+ maincolor={},%
+ num=true
+}
+
+\NewDocumentCommand\tkzBanner{ O{} m m }{%
+ \noindent%
+ \restoreKV[tkzBannerKeys]%
+ \setKV[tkzBannerKeys]{#1}%
+ \pgfmathsetmacro{\tkzBannerscale}{\useKV[tkzBannerKeys]{width}/\linewidth}%
+ \begin{tikzpicture}
+ \IfEq{\tkzBannermaincol}{}%
+ {%
+ \tikzset{tkzbannerdark/.style={\useKV[tkzBannerKeys]{coldark}}}
+ \tikzset{tkzbannermedium/.style={\useKV[tkzBannerKeys]{colmedium}}}
+ \tikzset{tkzbannerlight/.style={\useKV[tkzBannerKeys]{collight}}}
+ }%
+ {%
+ \tikzset{tkzbannerdark/.style={\tkzBannermaincol}}
+ \tikzset{tkzbannermedium/.style={\tkzBannermaincol!75}}
+ \tikzset{tkzbannerlight/.style={\tkzBannermaincol!25}}
+ }%
+ %coordinates
+ \coordinate (tkzBanner-NW) at (0,{\useKV[tkzBannerKeys]{height}}) ;
+ \coordinate (tkzBanner-SW) at (0,0) ;
+ \coordinate (tkzBanner-NE) at ({\useKV[tkzBannerKeys]{width}},{\useKV[tkzBannerKeys]{height}}) ;
+ \coordinate (tkzBanner-SE) at ({\useKV[tkzBannerKeys]{width}},0) ;%
+ %swap or note
+ \ifboolKV[tkzBannerKeys]{swap}%
+ {%
+ \coordinate (tkzBanner-A) at ($(tkzBanner-SE)!0.57!(tkzBanner-SW)$) ;
+ \coordinate (tkzBanner-B) at ($(tkzBanner-NE)!0.91!(tkzBanner-NW)$) ;
+ \coordinate (tkzBanner-C) at ($(tkzBanner-NE)!0.92!(tkzBanner-NW)$) ;
+ \coordinate (tkzBanner-D) at ($(tkzBanner-SE)!0.63!(tkzBanner-SW)$) ;
+ }%
+ {%
+ \coordinate (tkzBanner-A) at ($(tkzBanner-SW)!0.57!(tkzBanner-SE)$) ;
+ \coordinate (tkzBanner-B) at ($(tkzBanner-NW)!0.91!(tkzBanner-NE)$) ;
+ \coordinate (tkzBanner-C) at ($(tkzBanner-NW)!0.92!(tkzBanner-NE)$) ;
+ \coordinate (tkzBanner-D) at ($(tkzBanner-SW)!0.63!(tkzBanner-SE)$) ;
+ }%
+ %drawing
+ \fill[tkzbannerdark] (0,0) rectangle ({\useKV[tkzBannerKeys]{width}},{\useKV[tkzBannerKeys]{height}});
+ \ifboolKV[tkzBannerKeys]{swap}%
+ {%
+ \fill[tkzbannerlight] (tkzBanner-A) to[bend left=8] (tkzBanner-B) -- (tkzBanner-C) to[bend right=7] (tkzBanner-D) -- cycle ;
+ \fill[tkzbannermedium] (tkzBanner-C) to[bend right=7] (tkzBanner-D) -- (tkzBanner-SW) |- cycle ;
+ }%
+ {%
+ \fill[tkzbannerlight] (tkzBanner-A) to[bend right=8] (tkzBanner-B) -- (tkzBanner-C) to[bend left=7] (tkzBanner-D) -- cycle ;
+ \fill[tkzbannermedium] (tkzBanner-C) to[bend left=7] (tkzBanner-D) -- (tkzBanner-SE) |- cycle ;
+ }%
+ %nodes
+ \ifboolKV[tkzBannerKeys]{swap}%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},below left,font={\useKV[tkzBannerKeys]{fonttxt}},scale={2*\tkzBannerscale}] at (tkzBanner-NE) {\vphantom{qÉ}#2};
+ \ifboolKV[tkzBannerKeys]{num}%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},above right,font={\useKV[tkzBannerKeys]{fonttxt}},scale={1.25*\tkzBannerscale}] at (tkzBanner-SW) {\vphantom{qÉ}#3};
+ }%
+ {}%
+ }%
+ {%
+ \ifboolKV[tkzBannerKeys]{num}%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},above left,font={\useKV[tkzBannerKeys]{fonttxt}},scale={1.25*\tkzBannerscale}] at (tkzBanner-SE) {\vphantom{qÉ}#3};
+ }%
+ {}%
+ \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},below right,font={\useKV[tkzBannerKeys]{fonttxt}},scale={2*\tkzBannerscale}] at (tkzBanner-NW) {\vphantom{qÉ}#2};
+ }%
+ \end{tikzpicture}%
+}
+
+%====titre stylisé [fr], à voir avec part ??
+\newlength{\tmp@tkzbanner@autowidthtype}
+\setlength\tmp@tkzbanner@autowidthtype{2.5em}
+\newlength{\tmp@tkzbanner@autowidthnum}
+\setlength\tmp@tkzbanner@autowidthnum{2em}
+\newlength{\tmp@tkzbanner@marginoffsetbanner}
+\setlength\tmp@tkzbanner@marginoffsetbanner{2pt}
+\newlength{\tmp@tkzbanner@autowidth}
+\setlength\tmp@tkzbanner@autowidth{2.5em}
+
+\defKV[tkzBannerpartKeys]{%
+ maincolor=\def\tkzBannermaintricol{#1},%
+ logo=\def\tkzBannermaintrilogo{#1},%
+ type=\def\tkzBannermaintritype{#1},%
+ blockwidth=\def\tkzBannermaintriblockwidth{#1},%
+ customtype=\def\tkzBannermaintritypelibre{#1}
+}
+
+\setKVdefault[tkzBannerpartKeys]{%
+ height=2.5em,%
+ width={\linewidth-0.5pt},%
+ blockwidth=2.75em,%
+ collight=darkgray!25,%
+ colmedium=darkgray!50,%
+ coldark=darkgray,%
+ coltxt=white,%
+ fonttxt=\sffamily\bfseries,%
+ swap=false,%
+ maincolor={},%
+ logo={},%
+ type={},%
+ num=true,
+ dispblock=true,%
+ customtype={}
+}
+
+\NewDocumentCommand\tkzBannerTri{ O{} m m }{%
+ %#1 := clés
+ %#2 := numéro
+ %#3 := titre
+ \noindent%
+ \restoreKV[tkzBannerpartKeys]%
+ \setKV[tkzBannerpartKeys]{#1}%
+ \pgfmathsetmacro{\tkzBannertriscale}{0.75*(\useKV[tkzBannerpartKeys]{height})/1.25cm}%
+ \pgfmathsetmacro{\scaletypedoctribanner}{1.05*0.75*(\useKV[tkzBannerpartKeys]{height})/1.25cm}%
+ \pgfmathsetmacro{\scaletypedoctribannernum}{2.5*0.75*(\useKV[tkzBannerpartKeys]{height})/1.25cm}%
+ \pgfmathsetmacro{\tkzBannertriangle}{0.10*(\useKV[tkzBannerpartKeys]{height})/(\useKV[tkzBannerpartKeys]{width})}%
+ \IfEq{\tkzBannermaintriblockwidth}{auto}%
+ {%
+ \settowidth{\tmp@tkzbanner@autowidthtype}{\scalebox{\scaletypedoctribanner}[\scaletypedoctribanner]{\sffamily\bfseries\vphantom{qÉ}\tkzBannermaintritype}}%
+ \addtolength{\tmp@tkzbanner@autowidthtype}{4pt}%
+ \settowidth{\tmp@tkzbanner@autowidthnum}{\scalebox{\scaletypedoctribannernum}[\scaletypedoctribannernum]{\sffamily\bfseries\vphantom{qÉ}00}}%
+ \addtolength{\tmp@tkzbanner@autowidthnum}{4pt}%
+ \pgfmathsetlength{\tmp@tkzbanner@autowidth}{max(\tmp@tkzbanner@autowidthtype,\tmp@tkzbanner@autowidthnum)}%
+ }%
+ {%
+ \setlength\tmp@tkzbanner@autowidth{\tkzBannermaintriblockwidth}%
+ }%
+ \begin{tikzpicture}
+ \IfEq{\tkzBannermaintricol}{}%
+ {%
+ \tikzset{tkzbannertridark/.style={\useKV[tkzBannerpartKeys]{coldark}}}
+ \tikzset{tkzbannertrimedium/.style={\useKV[tkzBannerpartKeys]{colmedium}}}
+ \tikzset{tkzbannertrilight/.style={\useKV[tkzBannerpartKeys]{collight}}}
+ }%
+ {%
+ \tikzset{tkzbannertridark/.style={\tkzBannermaintricol}}
+ \tikzset{tkzbannertrimedium/.style={\tkzBannermaintricol!50}}
+ \tikzset{tkzbannertrilight/.style={\tkzBannermaintricol!25}}
+ }%
+ %coordinates
+ \coordinate (tkzBannerTri-NW) at (0,{\useKV[tkzBannerpartKeys]{height}}) ;
+ \coordinate (tkzBannerTri-SW) at (0,0) ;
+ \coordinate (tkzBannerTri-NE) at ({\useKV[tkzBannerpartKeys]{width}},{\useKV[tkzBannerpartKeys]{height}}) ;
+ \coordinate (tkzBannerTri-SE) at ({\useKV[tkzBannerpartKeys]{width}},0) ;%
+ \coordinate (tkzBannerTri-SWd) at ($(tkzBannerTri-SW)!0.05!(tkzBannerTri-NW)$) ;%
+ \coordinate (tkzBannerTri-SEd) at ($(tkzBannerTri-SE)!0.15!(tkzBannerTri-NE)$) ;%
+ %drawing & shadow
+ \fill[lightgray!75] ([yshift=-1pt]tkzBannerTri-SWd) -- ([yshift=-1pt]tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ;
+ \ifboolKV[tkzBannerpartKeys]{swap}%
+ {%
+ \fill[white] (tkzBannerTri-SWd) -- (tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ;
+ \draw[line width=1pt,tkzbannertridark] ([shift={(0.5pt,-0.5pt)}]tkzBannerTri-NW) -| ([shift={(-0.5pt,0)}]tkzBannerTri-SEd) -- (tkzBannerTri-SWd) ;
+ }%
+ {%
+ \fill[tkzbannertrimedium] (tkzBannerTri-SWd) -- (tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ;
+ }%
+ \ifboolKV[tkzBannerpartKeys]{dispblock}%
+ {%
+ \begin{scope}
+ \clip ($(tkzBannerTri-SW)!0.0375!(tkzBannerTri-NW)$) -- ($(tkzBannerTri-SE)!0.1375!(tkzBannerTri-NE)$) -- (tkzBannerTri-NE) -| cycle ;
+ %light
+ \fill[tkzbannertrilight] (tkzBannerTri-NW) --++ ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner},0) -- ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner+1em},{0.5*(\useKV[tkzBannerpartKeys]{height})}) -- ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner},0) -- (tkzBannerTri-SW) -- cycle ;
+ \end{scope}
+ \begin{scope}
+ \clip ($(tkzBannerTri-SW)!0.025!(tkzBannerTri-NW)$) -- ($(tkzBannerTri-SE)!0.125!(tkzBannerTri-NE)$) -- (tkzBannerTri-NE) -| cycle ;
+ %medium
+ \fill[tkzbannertrimedium] (tkzBannerTri-NW) --++ ({\tmp@tkzbanner@autowidth+\tmp@tkzbanner@marginoffsetbanner},0) -- ({\tmp@tkzbanner@autowidth+\tmp@tkzbanner@marginoffsetbanner+1em},{0.5*(\useKV[tkzBannerpartKeys]{height})}) -- ({\tmp@tkzbanner@autowidth+\tmp@tkzbanner@marginoffsetbanner},0) -- (tkzBannerTri-SW) -- cycle ;
+ \end{scope}
+ \begin{scope}
+ \clip ($(tkzBannerTri-SW)!0.0125!(tkzBannerTri-NW)$) -- ($(tkzBannerTri-SE)!0.1125!(tkzBannerTri-NE)$) -- (tkzBannerTri-NE) -| cycle ;
+ %dark
+ \fill[tkzbannertridark] (tkzBannerTri-NW) --++ ({\tmp@tkzbanner@autowidth},0) -- ({\tmp@tkzbanner@autowidth+1em},{0.5*(\useKV[tkzBannerpartKeys]{height})}) -- ({\tmp@tkzbanner@autowidth},0) -- (tkzBannerTri-SW) -- cycle ;
+ \IfEq{\tkzBannermaintritypelibre}{}%
+ {%
+ \ifboolKV[tkzBannerpartKeys]{num}%
+ {%
+ \IfEq{\tkzBannermaintritype}{}%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{0.5*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}#2};
+ }%
+ {%
+ \node[inner sep=2pt,below=1pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={1.05*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}\tkzBannermaintritype};
+ \node[inner sep=2pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{0.425*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}#2};
+ }%
+ }%
+ {}%
+ }%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{0.5*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}\tkzBannermaintritypelibre};
+ }%
+ \end{scope}
+ }%
+ {}%
+ %nodes
+ \begin{scope}
+ \clip (tkzBannerTri-SWd) -- (tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ;
+ \ifboolKV[tkzBannerpartKeys]{swap}%
+ {%
+ \node[inner sep=2pt,right,text=\tkzBannermaintricol,font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.75*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner+1.25em},{0.5*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}#3};
+ %logo
+ \IfEq{\tkzBannermaintrilogo}{}%
+ {}%
+ {%
+ \node[inner sep=2pt,left,text=\tkzBannermaintricol,font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\useKV[tkzBannerpartKeys]{width}},{0.55*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}\tkzBannermaintrilogo};
+ }%
+ }%
+ {%
+ \node[inner sep=2pt,right,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.75*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner+1.25em},{0.5*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}#3};
+ %logo
+ \IfEq{\tkzBannermaintrilogo}{}%
+ {}%
+ {%
+ \node[inner sep=2pt,left,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\useKV[tkzBannerpartKeys]{width}},{0.55*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}\tkzBannermaintrilogo};
+ }%
+ }%
+ \end{scope}
+ \end{tikzpicture}%
+}
+
+%====grille automatique tikz ?
+\NewDocumentCommand\tkzGrilleAuto{ s O{thin,lightgray} m }{%
+ \IfBooleanT{#1}{\filldraw (0,0) circle[radius=2pt] ;}
+ \StrCut{#3}{§}{\tkzautogridx}{\tkzautogridy}%
+ \draw[xstep=\tkzautogridx,ystep=\tkzautogridy,#2] (current bounding box.south west) grid (current bounding box.north east) ;
+}
+\NewDocumentCommand\tkzAutoGrid{ s O{thin,lightgray} m }{%
+ \IfBooleanT{#1}{\filldraw (0,0) circle[radius=2pt] ;}
+ \StrCut{#3}{§}{\tkzautogridx}{\tkzautogridy}%
+ \draw[xstep=\tkzautogridx,ystep=\tkzautogridy,#2] (current bounding box.south west) grid (current bounding box.north east) ;
+}
+
+\tikzset{grilleauto/.store in=\tkzautogrid,grilleauto/.default={},grilleauto={}}
+\tikzset{autogrid/.store in=\tkzautogrid,autogrid/.default={},autogrid={}}
+
+\NewDocumentCommand\tkzAutoGridActivate{ s }{%
+ \@ifundefined{tkzautogrid}%
+ {}%
+ {%
+ \tikzset{every picture/.style={%
+ execute at end picture={%
+ \IfEq{\tkzautogrid}{}{}{\IfBooleanTF{#1}{\tkzGrilleAuto*{\tkzautogrid}}{\tkzGrilleAuto{\tkzautogrid}}}%
+ },
+ },
+ }%
+ }%
+}
+
+\NewDocumentCommand\tkzAutoGridLocal{ s }{%
+ \@ifundefined{tkzautogrid}%
+ {}%
+ {%
+ \tikzset{execute at end picture={%
+ \IfEq{\tkzautogrid}{}{}{\IfBooleanTF{#1}{\tkzGrilleAuto*{\tkzautogrid}}{\tkzGrilleAuto{\tkzautogrid}}}%
+ },
+ },
+ }%
+}
+
+%====FLÈCHE ÉVASÉE [FR]
+\usetikzlibrary{arrows,arrows.meta}
+
+\defKV[FlecheEvasee]{%
+ Couleur=\def\FlecheEvaseeCouleur{#1},%
+ TailleFleche=\def\FlecheEvaseeFleche{#1},%
+ Direction=\def\FlecheEvaseeDirectionAngle{#1},%
+ Coeff=\def\FlecheEvaseeCoeff{#1},%
+ TypeFleche=\def\FlecheEvaseeType{#1},%
+ Epaisseur=\def\FlecheEvaseeEpaisseur{#1},%
+ LineCap=\def\FlecheEvaseeLineCap{#1}
+}
+\setKVdefault[FlecheEvasee]{%
+ Couleur=black,%
+ TailleFleche=auto,%
+ Direction={},%
+ Coeff=4,%
+ TypeFleche=Latex,%
+ Deplacement=false,%
+ Epaisseur=0.5mm,%
+ LineCap=butt
+}
+
+\NewDocumentCommand\tkzFlecheEvasee{ O{} m m }{%1=options,2=début,3=fin
+ \restoreKV[FlecheEvasee]%
+ \setKV[FlecheEvasee]{#1}%
+ \begin{scope}[line width=0.05mm]
+ \IfStrEq{\FlecheEvaseeFleche}{auto}%
+ {%
+ \xdef\FlecheEvaseeH{2*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur}%
+ \xdef\FlecheEvaseeW{2.1*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur}%
+ }%
+ {%
+ \StrCut{\FlecheEvaseeFleche}{/}{\FlecheEvaseeH}{\FlecheEvaseeW}%
+ }%
+ \IfEq{\FlecheEvaseeDirectionAngle}{}%
+ {%
+ \xdef\FlecheEvaseeDirection{}\xdef\FlecheEvaseeAngle{0}%
+ }%
+ {%
+ \StrCut{\FlecheEvaseeDirectionAngle}{/}{\FlecheEvaseeDirection}{\FlecheEvaseeAngle}%
+ }%
+ %coordonnées
+ \coordinate (TMPDEPART) at (#2) ;
+ \ifboolKV[FlecheEvasee]{Deplacement}%
+ {%
+ \coordinate (TMPARRIVEE) at ($(TMPDEPART)+(#3)$) ;
+ }%
+ {%
+ \coordinate (TMPARRIVEE) at (#3) ;
+ }
+ \pgfmathanglebetweenpoints{\pgfpointanchor{TMPDEPART}{center}}{\pgfpointanchor{TMPARRIVEE}{center}}%
+ \edef\tmpangle{\pgfmathresult}%
+ %nœuds
+ \IfEq{\FlecheEvaseeDirection}{right}%
+ {%
+ \coordinate (TMPDG) at ([shift={({90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPDD) at ([shift={({-90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPF) at ($(TMPARRIVEE)+({\FlecheEvaseeAngle+\tmpangle+180}:\FlecheEvaseeH)$) ;
+ \coordinate (TMPFG) at ($(TMPARRIVEE)+({\FlecheEvaseeAngle+\tmpangle+180}:\FlecheEvaseeH)+({\FlecheEvaseeAngle+\tmpangle-90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPFD) at ($(TMPARRIVEE)+({\FlecheEvaseeAngle+\tmpangle+180}:\FlecheEvaseeH)+({\FlecheEvaseeAngle+\tmpangle+90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \IfStrEq{\FlecheEvaseeType}{Stealth}%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length={1.5*\FlecheEvaseeH},width={1.1*\FlecheEvaseeW}]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length=\FlecheEvaseeH,width=\FlecheEvaseeW]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ \filldraw[line cap=\FlecheEvaseeLineCap,\FlecheEvaseeCouleur] (TMPDD) to[bend right=\FlecheEvaseeAngle] (TMPFG) -- (TMPFD) to[bend left=\FlecheEvaseeAngle] (TMPDG) --cycle ;
+ }%
+ {}%
+ \IfEq{\FlecheEvaseeDirection}{left}%
+ {%
+ \coordinate (TMPDG) at ([shift={({90+\tmpangle+\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPDD) at ([shift={({-90+\tmpangle+\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPF) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)$) ;
+ \coordinate (TMPFG) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({180+\tmpangle-\FlecheEvaseeAngle+90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPFD) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({180+\tmpangle-\FlecheEvaseeAngle-90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \IfStrEq{\FlecheEvaseeType}{Stealth}%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length={1.5*\FlecheEvaseeH},width={1.1*\FlecheEvaseeW}]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length=\FlecheEvaseeH,width=\FlecheEvaseeW]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ \filldraw[line cap=\FlecheEvaseeLineCap,\FlecheEvaseeCouleur] (TMPDD) to[bend left=\FlecheEvaseeAngle] (TMPFG) -- (TMPFD) to[bend right=\FlecheEvaseeAngle] (TMPDG) --cycle ;
+ }%
+ {}%
+ \IfEq{\FlecheEvaseeDirection}{}%
+ {%
+ \coordinate (TMPF) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)$) ;
+ \coordinate (TMPDG) at ([shift={({90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPFG) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({-90+\tmpangle-\FlecheEvaseeAngle}:{-0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPFD) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({-90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPDD) at ([shift={({-90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \IfStrEq{\FlecheEvaseeType}{Stealth}%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length={1.5*\FlecheEvaseeH},width={1.1*\FlecheEvaseeW}]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length=\FlecheEvaseeH,width=\FlecheEvaseeW]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ \filldraw[line cap=\FlecheEvaseeLineCap,\FlecheEvaseeCouleur] (TMPDG) to (TMPFG) -- (TMPFD) to (TMPDD) --cycle ;
+ }%
+ {}%
+ \end{scope}
+}
+
+%====FLÈCHE ÉVASÉE [EN]
+\defKV[flaredarrow]{%
+ color=\def\FlecheEvaseeCouleur{#1},%
+ arrowsize=\def\FlecheEvaseeFleche{#1},%
+ bend=\def\FlecheEvaseeDirectionAngle{#1},%
+ factor=\def\FlecheEvaseeCoeff{#1},%
+ arrowstyle=\def\FlecheEvaseeType{#1},%
+ thickness=\def\FlecheEvaseeEpaisseur{#1},%
+ linecap=\def\FlecheEvaseeLineCap{#1}
+}
+\setKVdefault[flaredarrow]{%
+ color=black,%
+ arrowsize=auto,%
+ bend={},%
+ factor=4,%
+ arrowstyle=Latex,%
+ move=false,%
+ thickness=0.5mm,%
+ linecap=butt
+}
+
+\NewDocumentCommand\tkzFlaredArrow{ O{} m m }{%1=options,2=début,3=fin
+ \restoreKV[flaredarrow]%
+ \setKV[flaredarrow]{#1}%
+ \begin{scope}[line width=0.05mm]
+ \IfStrEq{\FlecheEvaseeFleche}{auto}%
+ {%
+ \xdef\FlecheEvaseeH{2*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur}%
+ \xdef\FlecheEvaseeW{2.1*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur}%
+ }%
+ {%
+ \StrCut{\FlecheEvaseeFleche}{/}{\FlecheEvaseeH}{\FlecheEvaseeW}%
+ }%
+ \IfEq{\FlecheEvaseeDirectionAngle}{}%
+ {%
+ \xdef\FlecheEvaseeDirection{}\xdef\FlecheEvaseeAngle{0}%
+ }%
+ {%
+ \StrCut{\FlecheEvaseeDirectionAngle}{/}{\FlecheEvaseeDirection}{\FlecheEvaseeAngle}%
+ }%
+ %coordonnées
+ \coordinate (TMPDEPART) at (#2) ;
+ \ifboolKV[flaredarrow]{move}%
+ {%
+ \coordinate (TMPARRIVEE) at ($(TMPDEPART)+(#3)$) ;
+ }%
+ {%
+ \coordinate (TMPARRIVEE) at (#3) ;
+ }
+ \pgfmathanglebetweenpoints{\pgfpointanchor{TMPDEPART}{center}}{\pgfpointanchor{TMPARRIVEE}{center}}%
+ \edef\tmpangle{\pgfmathresult}%
+ %nœuds
+ \IfEq{\FlecheEvaseeDirection}{right}%
+ {%
+ \coordinate (TMPDG) at ([shift={({90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPDD) at ([shift={({-90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPF) at ($(TMPARRIVEE)+({\FlecheEvaseeAngle+\tmpangle+180}:\FlecheEvaseeH)$) ;
+ \coordinate (TMPFG) at ($(TMPARRIVEE)+({\FlecheEvaseeAngle+\tmpangle+180}:\FlecheEvaseeH)+({\FlecheEvaseeAngle+\tmpangle-90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPFD) at ($(TMPARRIVEE)+({\FlecheEvaseeAngle+\tmpangle+180}:\FlecheEvaseeH)+({\FlecheEvaseeAngle+\tmpangle+90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \IfStrEq{\FlecheEvaseeType}{Stealth}%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length={1.5*\FlecheEvaseeH},width={1.1*\FlecheEvaseeW}]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length=\FlecheEvaseeH,width=\FlecheEvaseeW]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ \filldraw[line cap=\FlecheEvaseeLineCap,\FlecheEvaseeCouleur] (TMPDD) to[bend right=\FlecheEvaseeAngle] (TMPFG) -- (TMPFD) to[bend left=\FlecheEvaseeAngle] (TMPDG) --cycle ;
+ }%
+ {}%
+ \IfEq{\FlecheEvaseeDirection}{left}%
+ {%
+ \coordinate (TMPDG) at ([shift={({90+\tmpangle+\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPDD) at ([shift={({-90+\tmpangle+\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPF) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)$) ;
+ \coordinate (TMPFG) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({180+\tmpangle-\FlecheEvaseeAngle+90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPFD) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({180+\tmpangle-\FlecheEvaseeAngle-90}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \IfStrEq{\FlecheEvaseeType}{Stealth}%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length={1.5*\FlecheEvaseeH},width={1.1*\FlecheEvaseeW}]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length=\FlecheEvaseeH,width=\FlecheEvaseeW]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ \filldraw[line cap=\FlecheEvaseeLineCap,\FlecheEvaseeCouleur] (TMPDD) to[bend left=\FlecheEvaseeAngle] (TMPFG) -- (TMPFD) to[bend right=\FlecheEvaseeAngle] (TMPDG) --cycle ;
+ }%
+ {}%
+ \IfEq{\FlecheEvaseeDirection}{}%
+ {%
+ \coordinate (TMPF) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)$) ;
+ \coordinate (TMPDG) at ([shift={({90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \coordinate (TMPFG) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({-90+\tmpangle-\FlecheEvaseeAngle}:{-0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPFD) at ($(TMPARRIVEE)+({180+\tmpangle-\FlecheEvaseeAngle}:\FlecheEvaseeH)+({-90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeCoeff*\FlecheEvaseeEpaisseur})$) ;
+ \coordinate (TMPDD) at ([shift={({-90+\tmpangle-\FlecheEvaseeAngle}:{0.5*\FlecheEvaseeEpaisseur})}]TMPDEPART) ;
+ \IfStrEq{\FlecheEvaseeType}{Stealth}%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length={1.5*\FlecheEvaseeH},width={1.1*\FlecheEvaseeW}]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ {%
+ \draw[\FlecheEvaseeCouleur,->,-{\FlecheEvaseeType[length=\FlecheEvaseeH,width=\FlecheEvaseeW]}] (TMPF)--(TMPARRIVEE) ;
+ }%
+ \filldraw[line cap=\FlecheEvaseeLineCap,\FlecheEvaseeCouleur] (TMPDG) to (TMPFG) -- (TMPFD) to (TMPDD) --cycle ;
+ }%
+ {}%
+ \end{scope}
+}
+
+%====PANO AUTOROUTE
+\newlength{\PanoTorouteStretch}
+\newlength{\PanoTorouteOffsetArrow}
+
+\defKV[PanoAutoroute]{%
+ Fleches=\def\PanoTorouteArrow{#1},%
+ CouleurFond=\def\PanoTorouteCoul{#1},%
+ CouleurTitre=\def\PanoTorouteCoulTitre{#1},%
+ Police=\def\PanoTorouteFonte{#1},%
+ PoliceCartouche=\def\PanoTorouteFonteTitre{#1},%
+ TypeFleche=\def\PanoTorouteStyleArrow{#1},%
+ EspacementV=\setlength{\PanoTorouteStretch}{#1},%
+ OffsetFleches=\setlength{\PanoTorouteOffsetArrow}{#1}
+}
+
+\setKVdefault[PanoAutoroute]{%
+ Fleches=0,%
+ CouleurFond=blue,%
+ CouleurTitre=red,%
+ Largeur=10cm,%
+ Police=\LARGE\bfseries\sffamily,%
+ PoliceCartouche=\Large\bfseries\sffamily,%
+ TypeFleche={\scalebox{1.33}[1.25]{\faArrowDown}},%
+ EspacementV={2.5mm},%
+ OffsetFleches={5mm},%
+ Dernier=true
+}
+
+\NewDocumentEnvironment{PanneauAutoroute}{ O{} D<>{} m }%
+{%
+ \restoreKV[PanoAutoroute]%
+ \setKV[PanoAutoroute]{#1}
+ \IfEq{#3}{}%
+ {%
+ \tcolorbox[enhanced,width={\useKV[PanoAutoroute]{Largeur}},fontupper=\PanoTorouteFonte,colback=\PanoTorouteCoul,colframe=\PanoTorouteCoul!5!white,coltext=white,sharp corners,boxsep=1mm,left=1mm,right=1mm,top=1mm,bottom=1mm,#2]
+ }%
+ {%
+ \tcolorbox[enhanced,width={\useKV[PanoAutoroute]{Largeur}},fontupper=\PanoTorouteFonte,colback=\PanoTorouteCoul,colframe=\PanoTorouteCoul!5!white,coltext=white,sharp corners,boxsep=1mm,left=1mm,right=1mm,top=1mm,bottom=1mm,attach boxed title to top center,fonttitle=\PanoTorouteFonteTitre,coltitle=white,boxed title style={colback=\PanoTorouteCoulTitre,size=small,sharp corners,left=0mm,right=0mm,colframe=\PanoTorouteCoulTitre!5!white},title={#3},#2]
+ }%
+ \baselineskip=-1000pt\lineskip=\PanoTorouteStretch\lineskiplimit=\maxdimen%
+}%
+{%
+ \ifnum\PanoTorouteArrow>0
+
+ \medskip
+ \hspace*{\PanoTorouteOffsetArrow}\foreach \i in {1,...,\PanoTorouteArrow}{\hfill\PanoTorouteStyleArrow}\hfill\hspace*{\PanoTorouteOffsetArrow}
+ \fi%
+ \endtcolorbox%
+ %
+ \ifboolKV[PanoAutoroute]{Dernier}{}{\vspace*{\dimexpr-\baselineskip-0.5mm\relax}}%
+}
+
+\NewDocumentCommand\VilleDist{ s m m }{%
+ \IfBooleanTF{#1}%
+ {%
+ #2\hfill~#3
+ }%
+ {%
+ #2\hfill~#3\\
+ }%
+}
+
+%====PANOSOLDES
+\newlength{\tmphautbannsold}
+\newlength{\tmphautbannsoldextra}
+\newlength{\tmplargbannsold}
+\newlength{\tmplargasold}
+\newlength{\tmplargbsold}
+\newlength{\tmplargtotsold}
+\newlength{\tmpoffsetbannsold}
+\newlength{\tmphautlignesol}
+\newlength{\tmphautsoles}
+
+\def\labelancienprix{Ancien Prix~:~}
+\def\labelnouveauprix{Nouveau Prix~:~}
+\def\labelreduction{SOLDES~:~}
+
+\defKV[PanoSoldes]{%
+ Couleur=\def\panosoldescolor{#1},%
+ Largeur=\def\panosoldeswidth{#1},%
+ PoliceEntete=\def\panosoldesfonthaut{#1},%
+ PolicePrix=\def\panosoldesfontprix{#1},%
+ PoliceReduc=\def\panosoldesfontreduc{#1},%
+ OffsetReduc=\setlength{\tmpoffsetbannsold}{#1},%
+ Titre=\def\panosoldestitre{#1},%
+ AgrandirReduc=\setlength{\tmphautbannsoldextra}{#1}
+}
+
+\setKVdefault[PanoSoldes]{%
+ Couleur=gray,
+ Largeur=auto,
+ PoliceEntete=\large\bfseries,%
+ PolicePrix=\footnotesize,%
+ PoliceReduc=\large\bfseries,%
+ Titre=GRANDE DÉMARQUE,%
+ OffsetReduc=1.25cm,%
+ AgrandirReduc=0mm
+}
+
+\NewDocumentCommand\AfficheSoldes{ O{} m m m }{%
+ \restoreKV[PanoSoldes]%
+ \setKV[PanoSoldes]{#1}%
+ %calcul de la largeur
+ \IfEq{\panosoldeswidth}{auto}%
+ {%
+ \settowidth{\tmplargbannsold}{{\panosoldesfontreduc\labelreduction-999X}}%largeur avec un peu de marge dûe à la rotation
+ \settowidth{\tmplargasold}{{\panosoldesfontprix\labelancienprix99999X}}%largeur avec un peu de marge dûe au prix "élastique"
+ \settowidth{\tmplargbsold}{{\panosoldesfontprix\labelnouveauprix99999X}}%largeur avec un peu de marge dûe au prix "élastique"
+ \pgfmathsetlength{\tmplargtotsold}{max(\tmplargbannsold,\tmplargasold,\tmplargbsold)+1mm}%on rajoute encore un peu de marge pour être sûr
+ }%
+ {%
+ \setlength{\tmplargtotsold}{\panosoldeswidth}%
+ }%
+ %calcul de la hauteur
+ \settototalheight{\tmphautlignesol}{\panosoldesfontprix\labelancienprix\labelnouveauprix0,123456789X}%
+ \settototalheight{\tmphautbannsold}{\panosoldesfontreduc\labelreduction-0,123456789X}%
+ \addtolength{\tmphautbannsold}{6mm+\tmphautbannsoldextra}%
+ \setlength{\tmphautsoles}{2\tmphautlignesol}%
+ \addtolength{\tmphautsoles}{\tmpoffsetbannsold+2mm}%
+ \addtolength{\tmphautsoles}{\tmphautbannsold}%
+ %boîte
+ \tcolorbox[%
+ enhanced,nobeforeafter,width=\tmplargtotsold,text height=\tmphautsoles,boxrule=0.5mm,boxsep=0.5mm,title={\panosoldestitre},halign title=flush center,colframe=\panosoldescolor,colback=white,top=1.25mm,bottom=1.25mm,left=1.25mm,right=1.25mm,fonttitle=\panosoldesfonthaut,%
+ overlay={%
+ \begin{tcbclipframe}
+ \draw ([shift={(1.25mm,-2mm)}]interior.north west) node[anchor=north west,font=\panosoldesfontprix,inner sep=0pt] {Ancien prix : {#2}} ;
+ \draw ([shift={(-1.25mm,2.5mm)}]interior.south east) node[anchor=south east,left,font=\panosoldesfontprix,inner sep=0pt] {Nouveau prix : {#3}} ;
+ %bannière (cf Séb Lozano)
+ \fill[line cap=rect,\panosoldescolor] ([shift={(0,2.5mm+\tmphautlignesol)}]interior.south west)--([shift={(0,2.5mm+\tmphautlignesol+\tmpoffsetbannsold)}]interior.south east)--++(0,\tmphautbannsold)--([shift={(0,2.5mm+\tmphautlignesol+\tmphautbannsold)}]interior.south west) ;
+ %petit filet
+ \draw[white,semithick] ([shift={(0,2.5mm+\tmphautlignesol+1pt)}]interior.south west)--([shift={(0,2.5mm+\tmphautlignesol+\tmpoffsetbannsold+1pt)}]interior.south east)--++(0,\tmphautbannsold-2pt)--([shift={(0,2.5mm+\tmphautlignesol+\tmphautbannsold-1pt)}]interior.south west)--cycle ;
+ %label
+ \draw[draw=none] ([shift={(0,2.5mm+\tmphautlignesol+0.5\tmphautbannsold)}]interior.south west) -- ([shift={(0,2.5mm+\tmphautlignesol+\tmpoffsetbannsold+0.5\tmphautbannsold)}]interior.south east) node[midway,sloped,font=\panosoldesfontreduc,text=white] {SOLDES : {#4}} ;
+ \end{tcbclipframe}%
+ }%
+ ]%
+ \endtcolorbox%
+}
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/dccpaper/README.md b/macros/latex/contrib/dccpaper/README.md
index 0d52a8434a..b1181bc202 100644
--- a/macros/latex/contrib/dccpaper/README.md
+++ b/macros/latex/contrib/dccpaper/README.md
@@ -73,7 +73,7 @@ A makefile is provided which you can use with the Make utility:
## Licence
-Copyright 2023 Digital Curation Centre, University of Edinburgh.
+Copyright 2024 Digital Curation Centre, University of Edinburgh.
This work consists of the image files dccpaper-by.eps and
dccpaper-by.pdf, the documented LaTeX file dccpaper.dtx and a Makefile.
diff --git a/macros/latex/contrib/dccpaper/dccpaper.dtx b/macros/latex/contrib/dccpaper/dccpaper.dtx
index de8e3b88cc..7218660813 100644
--- a/macros/latex/contrib/dccpaper/dccpaper.dtx
+++ b/macros/latex/contrib/dccpaper/dccpaper.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%<*internal|ijdc9|ijdc14|idcc|base>
-\def\Version{2023/08/11 v2.4}
+\def\Version{2024/08/23 v2.5}
%</internal|ijdc9|ijdc14|idcc|base>
%<*internal>
\iffalse
@@ -246,7 +246,7 @@ See: http://www.latex-project.org/lppl.txt
\endpreamble
\postamble
-Copyright (C) 2023 Digital Curation Centre, University of Edinburgh
+Copyright (C) 2024 Digital Curation Centre, University of Edinburgh
<info@dcc.ac.uk>
\endpostamble
@@ -546,16 +546,16 @@ Use this for a conference preprint.
\subsection{International Digital Curation Conference}
\begin{framed}\noindent
-To emulate a 2024 conference paper/extended abstract, use the \textsf{ijdc-v14}
-class with the \key{conference} option.
+To emulate a conference paper/extended abstract from 2024 onwards, use the
+\textsf{ijdc-v14} class with the \key{conference} option.
\end{framed}
The class is loaded in the usual way with
\lstinline|\documentclass[$\meta{options}$]{idcc}|.
Two types of option are available. The first relates to the conference to which the submission will be made:
\begin{description}[font=\normalfont]
- \item[\key{15}, \key{16}, .~.~.~, \key{22}, \key{24}]
- Use this to select the year of the conference, e.g.\@ \key{24} for 2024.
+ \item[\key{15}, \key{16}, .~.~.~, \key{24}, \key{25}]
+ Use this to select the year of the conference, e.g.\@ \key{25} for 2025.
\end{description}
The second relates to the type of submission:
@@ -871,6 +871,8 @@ Any acknowledgements should be placed in a section immediately before the refere
\section{Appendix A: Change History}
\begin{description}
+\item[v2.5] 2024-08-23\\
+Added details of IDCC 2025.
\item[v2.4] 2023-08-11\\
Added details of and update documentation for IDCC 2024.
\item[v2.3] 2022-01-27\\
@@ -1097,7 +1099,7 @@ Fully funded, part funded (subsidised) or delegate fee.
%<readme>## Licence
%<readme>
%<*driver|readme>
-Copyright 2023 Digital Curation Centre, University of Edinburgh.
+Copyright 2024 Digital Curation Centre, University of Edinburgh.
This work consists of the image files dccpaper-by.eps and
dccpaper-by.pdf, the documented LaTeX file dccpaper.dtx and a Makefile.
@@ -1520,9 +1522,15 @@ the University of Edinburgh on behalf of the Digital Curation Centre. ISSN:
\DeclareOption{24}{%
\def\dccp@publ@short{IDCC}
\def\dccp@publ@msg{The 18th \dccp@publ@long\ takes place on 19--21 February
- 2024 in Edinburgh, Scotland.\par\bigskip URL: \url{https://www.dcc.ac.uk/events/18th-international-digital-curation-conference}}
+ 2024 in Edinburgh, Scotland.\par\bigskip URL: \url{https://www.dcc.ac.uk/events/idcc24}}
\def\dccp@subject{18th \dccp@publ@long, 2024}
}
+\DeclareOption{25}{%
+ \def\dccp@publ@short{IDCC25}
+ \def\dccp@publ@msg{The 19th \dccp@publ@long\ takes place on 17--19 February
+ 2025 in The Hague, Netherlands.\par\bigskip URL: \url{https://www.dcc.ac.uk/events/idcc25}}
+ \def\dccp@subject{19th \dccp@publ@long, 2025}
+}
\ProcessOptions\relax
% \end{macrocode}
diff --git a/macros/latex/contrib/dccpaper/dccpaper.pdf b/macros/latex/contrib/dccpaper/dccpaper.pdf
index 3cd33ff6fa..310af05b12 100644
--- a/macros/latex/contrib/dccpaper/dccpaper.pdf
+++ b/macros/latex/contrib/dccpaper/dccpaper.pdf
Binary files differ
diff --git a/macros/latex/contrib/doibanner/README.md b/macros/latex/contrib/doibanner/README.md
new file mode 100644
index 0000000000..a28fd46abd
--- /dev/null
+++ b/macros/latex/contrib/doibanner/README.md
@@ -0,0 +1,91 @@
+# doibanner
+
+A LaTeX package to generate DOI banners and links.
+
+The `doibanner` package allows to generate a banner for a declared [digital
+object identifier](https://www.doi.org/the-identifier/what-is-a-doi/) (DOI).
+It provides the `\doibanner` macro, which draws the banner using
+[`TikZ`](https://www.ctan.org/pkg/tikz) and adds a link via
+[`hyperref`](https://www.ctan.org/pkg/hyperref), if desired. Its output can
+be scaled by [`adjustbox`](https://www.ctan.org/pkg/adjustbox) and it might
+look as follows:
+
+![_DOI banner generated with `\doibanner`_](./example/doibanner_example.png "Example generated with doibanner")
+
+Latest release: 2024-07-28 v0.3
+
+
+## Installation
+
+Skip this section, if `doibanner` is already provided in your TeX distribution.
+You should be able to install it [from the CTAN](https://www.ctan.org/pkg/doibanner)
+via your distribution's utility (e.g. the TeX Live Utility).
+
+### Manual installation
+
+You can get the package's source code from the
+[project repository on Codeberg](https://codeberg.org/Cs137/doibanner).
+The repository contains a build script, which allows you to build the required
+files for the `doibanner` package and copy them into your _TeX Directory Structure_
+(TDS) using `l3build`. Ensure that `l3build` is installed on your system and run
+it from the repository's root directory as follows:
+
+```bash
+l3build install --full
+```
+
+The `--full` option ensures that all necessary files are built and installed.
+
+If you do not want to install the package into your TDS, but use it in a
+particular LaTeX project, follow the steps listed below.
+
+1. unpack `doibanner.sty` from the `doibanner.dtx` file
+ - using `l3build` and the `build.lua` script: `l3build unpack`, __or__
+ - directly via the installer file: `pdflatex doibanner.ins`
+2. copy the extracted `doibanner.sty` file into the same directory as your LaTeX sources.
+
+
+## Usage
+
+Please consult the [package documentation](http://mirrors.ctan.org/macros/latex/contrib/doibanner/doibanner.pdf)
+for detailed usage information.
+
+If you have any questions or need assistance, feel free to
+[open an issue on the repository](https://codeberg.org/Cs137/doibanner/issues).
+
+
+## Contributing
+
+Contributions to the `doibanner` package are very welcomed. Feel free to submit
+a [pull request (PR)](https://codeberg.org/Cs137/doibanner/pulls), if you would
+like to contribute to the project. In case you are unfamiliar with the process,
+consult the [forgejo documentation](https://forgejo.org/docs/latest/user/pull-requests-and-git-flow/)
+and follow the steps using this repository instead of the `example` repository.
+
+Create your [pull request (PR)](https://codeberg.org/Cs137/doibanner/pulls) to
+inform that you started working on a contribution. Provide a clear description
+of your envisaged changes and the motivation behind them, prefix the PR's title
+with ``WIP: `` until your changes are finalised.
+
+All kind of contributions are appreciated, whether they are
+bug fixes, new features, or improvements to the documentation.
+
+
+### Contributors
+
+- [Christian Schreinemachers](https://codeberg.org/Cs137)
+- [Marei Peischl](https://chaos.social/@TeXhackse)
+
+
+## Changes
+
+All notable changes to this project are documented in the file
+[`CHANGELOG.md`](https://codeberg.org/Cs137/doibanner/src/branch/main/CHANGELOG.md).
+
+
+## Credits
+
+This package was created and is maintained by Christian Schreinemachers, (C) 2024.
+The source code is hosted on [Codeberg](https://codeberg.org/Cs137/doibanner).
+It is subject to the [LaTeX Project Public License 1.3c](https://www.ctan.org/license/lppl1.3).
+
diff --git a/macros/latex/contrib/doibanner/doibanner.dtx b/macros/latex/contrib/doibanner/doibanner.dtx
new file mode 100644
index 0000000000..e004b53e31
--- /dev/null
+++ b/macros/latex/contrib/doibanner/doibanner.dtx
@@ -0,0 +1,412 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2024 Christian Schreinemachers
+%
+% This work may be distributed and/or modified under the conditions
+% of the LaTeX Project Public License, either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008-05-04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The current maintainer of this work is Christian Schreinemachers.
+%
+% This work consists of the files
+% doibanner.dtx
+% doibanner.ins
+% README.md
+% and the derived files
+% doibanner.sty
+% doibanner.pdf
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+% \iffalse
+%<package>\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{doibanner}
+%<package> [2024-07-28 v0.3 Generate DOI banners and links]
+%
+%<*driver>
+\documentclass[a4paper]{ltxdoc}
+\usepackage[%
+ pdfusetitle,%
+ hyperindex=false,%
+ pdfsubject={LaTeX package documentation},%
+ pdfkeywords={doibanner, latex, documentation}%
+]{hyperref}
+\usepackage{doibanner}
+\usepackage[toc]{multitoc}
+\usepackage{geometry}
+\usepackage{fancyvrb}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\DoNotIndex{\adjustbox,\begin,\bfseries,\DeclareKeys,\definecolor,\end,\fill,
+ \fontfamily,\href,\IfBooleanTF,\Large,\NewDocumentCommand,\node,
+ \ProcessKeyOptions,\RequirePackage,\relax,\selectfont,\SetKeys,
+ \sfdefault,\tikzstyle}
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{40ex}
+\setlength{\columnseprule}{.4pt}
+\addtolength{\oddsidemargin}{2cm}
+\addtolength{\textwidth}{-2cm}
+\begin{document}
+ \DocInput{doibanner.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \pagestyle{headings}
+%
+% \newcommand*{\package}[1]{\textsf{#1}}
+% \newcommand*{\opt}[1]{\texttt{#1}}
+% \newcommand*{\default}[1]{(default: \opt{#1})}
+%
+%
+% ^^A -----------------------------
+%
+% \changes{v0.3}{2024-07-28}{%
+% Add package options \opt{width} and \opt{label},
+% fix mistakes,
+% improve documentation,
+% remove unnecessary dependencies}
+% \changes{v0.2}{2024-07-23}{%
+% Initial release,
+% convert into dtx,
+% add documentation,
+% add \opt{urlbase} package option}
+% \changes{v0.1}{2021/05/09}{Initial version}
+%
+% \GetFileInfo{doibanner.sty}
+%
+%
+% ^^A -----------------------------
+%
+% \title{The \package{doibanner} package}
+% \author{Christian Schreinemachers}
+% \date{%
+% Released \filedate\thanks{%
+% \package{doibanner}~\fileversion
+% ~(\href{https://codeberg.org/Cs137/doibanner/releases/tag/\fileversion}{source code})}%
+% }
+% \maketitle
+%
+%
+% ^^A -----------------------------
+%
+% \begin{abstract}
+% The \package{doibanner} package allows to generate a banner for a declared
+% \href{https://www.doi.org/the-identifier/what-is-a-doi/}{digital object identifier}
+% (DOI). It provides the \cs{doibanner} macro, which draws the banner using
+% \package{TikZ} and adds a link via \package{hyperref}, if desired. Its
+% output can be scaled by \package{adjustbox} and it might look as follows:
+% \par\medskip\centering{\doibanner*[width=5cm]{xx.xxxx/yyyyyy.zzzzzzzz}}
+% \end{abstract}
+%
+%
+% ^^A -----------------------------
+%
+% \tableofcontents
+%
+%
+% ^^A -----------------------------
+%
+% \section{Introduction}
+% ^^A
+% I published several documents on \href{https://zenodo.org/}{\emph{Zenodo}},
+% a general-purpose open repository. They offer to register a
+% \href{https://www.doi.org/the-identifier/what-is-a-doi/}{digital object identifier}
+% (DOI) for an entry and download a banner of it. The latter can be added to
+% contents foreseen for the entry, or e.g. when referring to the entry in a
+% slide deck.
+%
+% Since I frequently use such banners in \LaTeX{} documents, I decided to
+% create a package that generates a similar banner and includes a link to the
+% corresponding URL. Additionally, this package eliminates the need to
+% manually download the banner and manage a file that might be used across
+% multiple documents.
+%
+% Due to the motivation, the resulting banner is heavily inspired by the
+% design applied in the banner offered by \emph{Zenodo}. It is drawn using
+% the \package{tikz} package, a link to its URL can be included with
+% \package{hyperref}, and it can be scaled using \package{adjustbox}.
+%
+% The application of this package is not limited to \emph{Zenodo}
+% depositions, it can be used to create a banner for a DOI that can
+% be included in any \LaTeX{} document.
+%
+%
+% ^^A -----------------------------
+%
+% \section{Usage}
+% ^^A
+% Load the package in your document's preamble and specify any of the
+% options described in the next subsection as follows:
+%
+% \begin{quote}
+% \cs{usepackage}\oarg{option(s)}\{doibanner\}
+% \end{quote}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Options}
+% ^^A
+% In order to change the default behaviour of this package, declare one
+% or more of the options described in this subsection with your desired
+% value.
+%
+% \DescribeMacro{label=\meta{string}}
+% \default{DOI} specifies the label (left part) of the DOI banner generated
+% by \cs{doibanner}. The widths of the left and right part of the banner
+% are fixed and do currently not take the length of the text displayed on
+% top into account. Consequently, only a short expression should be declared
+% as value for the option \opt{label}.
+%
+% \DescribeMacro{urlbase=\meta{string}}
+% \default{https://doi.org/} specifies the base URL to convert a DOI string
+% into its URL, for normal use cases this does not require any adjustment.
+%
+% \DescribeMacro{width=\meta{dimen}}
+% \default{3.6cm} specifies the total width of the DOI banner generated by
+% \cs{doibanner}. The widths of the individual parts of the banner are
+% fixed and can currently not be changed.
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Macros}
+% ^^A
+% \subsubsection*{\cs{doibanner}\oarg{dimen}\marg{string}}
+%
+% A DOI banner can be created using the command \cs{doibanner}, which requires
+% a DOI string as argument. Moreover, a \oarg{dimen} option can be defined.
+% The latter specifies the banner's width. If it is not declared, the value
+% of the \opt{width} package option is taken into account \default{3.6cm}.
+%
+% \DescribeMacro{\doibanner}
+% An execution of \cs{doibanner\{xx.xxxx/yyyyyy.zzzzzzzz\}} results in this
+% banner: \doibanner{xx.xxxx/yyyyyy.zzzzzzzz} If a banner with a width of
+% let's say 3\,cm is desired, it can be achieved by specifying the macro option
+% \opt{width} accordingly (\cs{doibanner}\opt{[width=3cm]\{xx.xxxx/yyyyyy.zzzzzzzz\}}):
+% \doibanner[width=3cm]{xx.xxxx/yyyyyy.zzzzzzzz}
+%
+% \DescribeMacro{\doibanner*}
+% The starred version of the command leads to the same banner, but it does
+% not contain a link to the DOI's URL:
+% \doibanner*{xx.xxxx/yyyyyy.zzzzzzzz}
+%
+% \subsubsection*{\cs{doiurl}\marg{string}}
+% ^^A
+% \DescribeMacro{\doiurl}
+% An URL is generated by appending the provided \emph{string} to the string
+% defined as the package option \opt{urlbase}. The resulting link is labelled
+% with the DOI string.
+% A call of \cs{doiurl\{xx.xxxx/yyyyyy.zzzzzzzz\}} results in
+% \doiurl{xx.xxxx/yyyyyy.zzzzzzzz}.
+%
+% \DescribeMacro{\doiurl*}
+% The command is also available as starred version, which prints the full
+% URL instead of the DOI string and does not include a link. Its output for
+% the aforementioned example is as follows:
+% \doiurl*{xx.xxxx/yyyyyy.zzzzzzzz}.
+%
+%
+% ^^A -----------------------------
+%
+% ^^A \section{Known limitations}
+% ^^A ^^A
+% ^^A \begin{itemize}
+% ^^A \item
+% ^^A \end{itemize}
+%
+%
+% ^^A -----------------------------
+%
+% \MaybeStop{
+%
+% \IndexPrologue{%
+% \section{Index}
+% Numbers written in italic refer to the page where the corresponding entry
+% is described; numbers underlined refer to the code line of the definition;
+% numbers in roman refer to the code lines where the entry is used.
+% }
+% \PrintIndex
+%
+% \GlossaryPrologue{%
+% \section{Change History}
+% The changes listed in this section aim to provide a brief overview of the
+% changes introduced into the package \package{doibanner}. The
+% \href{https://codeberg.org/Cs137/doibanner/}{package repository on Codeberg}
+% contains a
+% \href{https://codeberg.org/Cs137/doibanner/src/branch/main/CHANGELOG.md}{changelog file},
+% consult it to read a detailed description of the changes introduced into
+% this package.
+% }
+% \PrintChanges
+%
+% }
+%
+%
+% ^^A -----------------------------
+%
+% \section{Implementation}
+%
+% \subsection{Dependencies}
+% ^^A
+% In order to use \package{doibanner}, the packages
+% \href{https://www.ctan.org/pkg/adjustbox}{\package{adjustbox}},
+% \href{https://www.ctan.org/pkg/hyperref}{\package{hyperref}}, and
+% \href{https://www.ctan.org/pkg/tikz}{\package{tkiz}}
+% are required as package dependencies.
+%
+% \iffalse
+%<*package>
+% \fi
+% \begin{macrocode}
+\RequirePackage{adjustbox}
+\RequirePackage{hyperref}
+\RequirePackage{tikz}
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Constants}
+% ^^A
+% Definition of colours for the banner areas and labels, custom colour
+% definitions are currently not supported.
+% \begin{macrocode}
+\definecolor{leftcolor}{RGB}{82,82,82}
+\definecolor{rightcolor}{RGB}{6,119,183}
+%
+\definecolor{toptextcolor}{RGB}{235,235,235}
+\definecolor{bottomtextcolor}{RGB}{59,59,59}
+% \end{macrocode}
+% ^^A
+% Definition of font and colour for the banner's top and bottom text layers.
+% \begin{macrocode}
+\tikzstyle{toptextstyle} = [
+ font=\fontfamily{\sfdefault}\selectfont\bfseries\Large,toptextcolor]
+\tikzstyle{bottomtextstyle} = [
+ font=\fontfamily{\sfdefault}\selectfont\bfseries\Large,bottomtextcolor]
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Options}
+% ^^A
+% The package options are internally available as \cs{@doibanner@}\meta{option}.
+% \begin{macrocode}
+\DeclareKeys[@doibanner]{
+ label.store = \@doibanner@label,
+ label.usage = load,
+ urlbase.store = \@doibanner@urlbase,
+ urlbase.usage = load,
+ width.store = \@doibanner@width,
+ width.usage = load,
+}
+% \end{macrocode}
+%
+% \subsubsection*{Assignement of default values}
+% \begin{macrocode}
+\SetKeys[@doibanner]{
+ label=DOI,
+ urlbase=https://doi.org/,
+ width=3.6cm,
+}
+% \end{macrocode}
+%
+% \subsubsection*{Processing of package options}
+% \begin{macrocode}
+\ProcessKeyOptions[@doibanner]\relax
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Macros}
+%
+% \changes{v0.2}{2024-07-23}{Remove \cs{doi} macro}
+%
+% \begin{macro}{\doiurl}
+% \changes{v0.2}{2024-07-23}{Remove trailing space}
+% \oarg{dimen}\\
+% The \meta{string} is appended to the package option \opt{urlbase} to
+% generate the URL.
+% \begin{macrocode}
+\NewDocumentCommand\doiurl{s m}{%
+ \IfBooleanTF#1
+ {\@doibanner@urlbase#2}%
+ {\href{\@doibanner@urlbase#2}{#2}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@doibanner@draw}
+% \changes{v0.3}{2024-07-28}{Rename macro, remove top part}
+% \oarg{dimen}\marg{string}\\
+% Draw the DOI banner including its \opt{label} and \meta{string}, provide
+% \opt{width=\meta{dimen}} to define the banners width as well.
+% \begin{macrocode}
+\NewDocumentCommand\@doibanner@draw{o m}{%
+ \adjustbox{#1}{%
+ \begin{tikzpicture}
+% left part
+ \fill [leftcolor,draw]
+ (1.5,0) --
+ ++(0,.8) {[rounded corners=5] --
+ ++(-1.5,0) --
+ ++(0,-.8)} --
+ cycle
+ {};
+ \node[bottomtextstyle] at (.75,.35) {\@doibanner@label};
+ \node[toptextstyle] at (.75,.4) {\@doibanner@label};
+% right part
+ \fill [rightcolor,draw]
+ (1.5,0) {[rounded corners=5] --
+ ++(6.5,0) --
+ ++(0,.8)} --
+ ++(-6.5,0) --
+ cycle
+ {};
+ \node[bottomtextstyle] at (4.75,.35) {#2};
+ \node[toptextstyle] at (4.75,.4) {#2};
+ \end{tikzpicture}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\doibanner}
+% \changes{v0.3}{2024-07-28}{Add \opt{width} option}
+% \changes{v0.2}{2024-07-23}{Remove trailing space}
+% \oarg{dimen}\marg{string}\\
+% Display the DOI banner with or without (*) a link to its URL. Specify a
+% \oarg{dimen}, if you want a banner width deviating from the one defined
+% as \opt{width} package option.
+% \begin{macrocode}
+\NewDocumentCommand\doibanner{s O{width=\@doibanner@width} m}{%
+ \IfBooleanTF#1
+ {\@doibanner@draw[#2]{#3}}%
+ {\href{\@doibanner@urlbase#3}{\@doibanner@draw[#2]{#3}}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+\endinput
+%%
+%% End of file `doibanner.dtx'.
+
diff --git a/macros/latex/contrib/doibanner/doibanner.ins b/macros/latex/contrib/doibanner/doibanner.ins
new file mode 100644
index 0000000000..97cfbb3fbb
--- /dev/null
+++ b/macros/latex/contrib/doibanner/doibanner.ins
@@ -0,0 +1,85 @@
+%%
+%% Copyright (C) 2024 Christian Schreinemachers
+%%
+%% This work may be distributed and/or modified under the conditions
+%% of the LaTeX Project Public License, either version 1.3c of this
+%% license or (at your option) any later version. The latest version
+%% of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of
+%% LaTeX version 2008-05-04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The current maintainer of this work is Christian Schreinemachers.
+%%
+%% This work consists of the files
+%% doibanner.dtx
+%% doibanner.ins
+%% README.md
+%% and the derived files
+%% doibanner.sty
+%% doibanner.pdf
+%%
+This work has the LPPL maintenance status `maintained'.
+
+The current maintainer of this work is Christian Schreinemachers.
+
+This work consists of the files
+ doibanner.dtx
+ doibanner.ins
+ README.md
+and the derived files
+ doibanner.sty
+ doibanner.pdf
+\input docstrip.tex
+\keepsilent
+
+\preamble
+
+Copyright (C) 2024 Christian Schreinemachers
+
+This work may be distributed and/or modified under the conditions
+of the LaTeX Project Public License, either version 1.3c of this
+license or (at your option) any later version. The latest version
+of this license is in
+
+ http://www.latex-project.org/lppl.txt
+
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008-05-04 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The current maintainer of this work is
+ Christian Schreinemachers.
+
+This work consists of the files
+ doibanner.dtx
+ doibanner.ins
+and the derived files
+ doibanner.sty
+ doibanner.pdf
+
+\endpreamble
+\askforoverwritefalse
+\generate{\file{doibanner.sty}{\from{doibanner.dtx}{package}}}
+
+\obeyspaces
+\Msg{****************************************************}
+\Msg{* To finish the installation you have to move the *}
+\Msg{* following file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* doibanner.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file *}
+\Msg{* bib2qr.dtx through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{****************************************************}
+\endbatchfile
+%%
+%% End of file `doibanner.ins'.
+
diff --git a/macros/latex/contrib/doibanner/doibanner.pdf b/macros/latex/contrib/doibanner/doibanner.pdf
new file mode 100644
index 0000000000..546b0c9de1
--- /dev/null
+++ b/macros/latex/contrib/doibanner/doibanner.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/README.md b/macros/latex/contrib/easybook/README.md
index 44571a1bf9..d8a9080d85 100644
--- a/macros/latex/contrib/easybook/README.md
+++ b/macros/latex/contrib/easybook/README.md
@@ -1,5 +1,5 @@
# The `easybook` document class
-Easily typesetting Chinese theses or books (v2024cv)
+Easily typesetting Chinese theses or books (v2024ec)
## Abstract
`easybook` is a pure academic template created based on the `ctexbook` book document class. It also has the functions of `book` and `article` document class. Combined with the general framework design of the theses of many universities in China, providing multiple commands and interfaces allows users to easily customize the theses templates. Its basic macro package `easybase` can also be used with `ctex` and standard document classes.
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 469cd244cf..74dc6ed25c 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -14,7 +14,7 @@
% This work has the LPPL maintenance status `maintained'.
%<class|package>\NeedsTeXFormat{LaTeX2e}[2021/11/15]
%<*class>
-\ProvidesExplClass{easybook}{2024/07/20}{2024cv}
+\ProvidesExplClass{easybook}{2024/10/01}{2024ec}
{Easily typesetting Chinese theses or books}
\bool_new:N \l__eb_compile_draft_bool
@@ -301,19 +301,16 @@
%</class>
%<*package>
\RequirePackage{etoolbox}
-\ProvidesExplPackage{easybase}{2024/07/20}{2024cv}
+\ProvidesExplPackage{easybase}{2024/10/01}{2024ec}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
\cs_generate_variant:Nn \dim_sign:n { V }
\cs_generate_variant:Nn \int_to_arabic:n { v }
\cs_generate_variant:Nn \msg_warning:nnn { nnV }
-\cs_generate_variant:Nn \prop_set_from_keyval:Nn { NV }
\cs_generate_variant:Nn \skip_set:Nn { NV }
-\cs_generate_variant:Nn \seq_set_from_clist:Nn { No }
\cs_generate_variant:Nn \ctex_define:nn { nx }
\cs_generate_variant:Nn \eb_set_hyperref:n { x }
-\cs_generate_variant:Nn \eb_at_begin_environment:nn { o }
\cs_generate_variant:Nn \tl_if_novalue:nF { V }
\cs_set_protected:Npn \ctex_define:nn #1
@@ -327,12 +324,7 @@
{ \AddToHook{cmd/#1/before}{#2} }
\cs_new_protected:Npn \eb_appto_cmd:nn #1#2
{ \AddToHook{cmd/#1/after}{#2} }
-\cs_new_protected:Npn \eb_at_begin_environment:nn #1#2
- {
- \clist_map_inline:nn {#1}
- { \AtBeginEnvironment{##1}{#2} }
- }
-\cs_new_protected:Npn \eb_at_end_preamble:n
+\cs_set_protected:Npn \ctex_before_end_preamble:n
{ \BeforeBeginEnvironment{document} }
\cs_new_protected:Npn \eb_if_package_loaded:nnF #1#2#3
{
@@ -405,9 +397,13 @@
floatpage .bool_set:N = \l__eb_float_page_bool,
floatpage .default:n = true,
floatpage .initial:n = false,
- theorem .bool_set:N = \l__eb_theorem_support_bool,
- theorem .default:n = true,
- theorem .initial:n = true,
+ theorem .choices:nn =
+ { thmtools,keytheorems,false }
+ { \tl_set:Nn \l__eb_theorem_support_tl {#1} },
+ theorem .value_required:n = true,
+ theorem/true .meta:n = { theorem = thmtools },
+ theorem .default:n = thmtools,
+ theorem .initial:n = thmtools,
paper .code:n = \eb_put_geometry:n {#1},
paper .initial:n = a4paper,
class .choice:,
@@ -416,13 +412,15 @@
{
\bool_set_true:N \l__eb_class_mode_book_bool
\eb_put_geometry:n { twoside }
+ \booltrue{@titlepage}
},
class/article .code:n =
{
\bool_set_false:N \l__eb_class_mode_book_bool
\eb_put_geometry:n { twoside = false }
+ \boolfalse{@titlepage}
},
- class .initial:n = book,
+ class .initial:x = \ifbool{@titlepage}{book}{article},
book .meta:n = { class = book },
article .meta:n = { class = article },
unknown .code:n = \clist_gput_right:NV \g__eb_ctex_options_clist \CurrentOption
@@ -452,9 +450,9 @@
\seq_set_from_clist:Nn \l__eb_module_paths_seq
{
- tools,font,space,
- bib,thmt,toc,
- hdr,float,ref,geo
+ tools,font,space,bib,
+ thmt,toc,hdr,float,
+ ref,geo,cap
}
\seq_map_inline:Nn \l__eb_module_paths_seq
{
@@ -509,7 +507,6 @@
\ebloadpackage
{
[text]{spbmark},
- [normalem]{ulem},
[{shortlabels,inline}]{enumitem},
chemformula,siunitx,pifont,
geometry,marginnote,
@@ -703,18 +700,18 @@
}
\cs_set:Npn \markdouble #1 { \markboth{#1}{\ifbool{@twoside}{#1}{}} }
-\cs_new:Npn \eb@level@markdouble #1#2
+\cs_new_protected:Npn \eb@level@markdouble #1#2
{ \markdouble{\use:c { eb@mark@#1@whole }{#2}} }
-\cs_new:Npn \eb@level@markright #1#2
+\cs_new_protected:Npn \eb@level@markright #1#2
{ \markright{\use:c { eb@mark@#1@whole }{#2}} }
\cs_gset:Npn \chaptermark #1 { \eb@level@markdouble{chapter}{#1} }
-\cs_gset:Npn \sectionmark #1
+\cs_gset:Npx \sectionmark #1
{
\bool_if:NTF \l__eb_class_mode_book_bool
{ \eb@level@markright{section}{#1} }
{ \eb@level@markdouble{section}{#1} }
}
-\cs_gset:Npn \subsectionmark #1
+\cs_gset:Npx \subsectionmark #1
{
\bool_if:NF \l__eb_class_mode_book_bool
{ \eb@level@markright{subsection}{#1} }
@@ -806,25 +803,14 @@
\UseFntSymbsList{empty}
\cs_set_eq:NN \DefineFntSymbols \SetFntSymbsList
\cs_set_eq:NN \setfntsymbol \UseFntSymbsList
-\cs_new:Npn \eb_int_type_trans:NN #1
- {
- \str_case:nn {#1}
- {
- { A } { \int_to_Alph:n }
- { a } { \int_to_alph:n }
- { 1 } { \int_to_arabic:n }
- { I } { \int_to_Roman:n }
- { i } { \int_to_roman:n }
- { c } { \exp_args:NV \zhnumber }
- { s } { \eb_int_to_symbols:n }
- }
- }
+\tl_new:N \l__eb_fnmarktext_tmpa_tl
+\tl_new:N \l__eb_fnmarktext_tmpb_tl
\cs_new_protected:Npn \eb_fnmarktext_normal_label_set:Nn #1#2
{
- \tl_set:Nn \l__eb_fnmarktext_number_type_tl {#2}
+ \tl_set:Nn \l__eb_fnmarktext_tmpa_tl {#2}
\cs_set:Npx #1
{
- \str_case:VnT \l__eb_fnmarktext_number_type_tl
+ \str_case:VnT \l__eb_fnmarktext_tmpa_tl
{
{ plain }
{ \exp_not:N \int_use:N }
@@ -842,18 +828,33 @@
\cs_set_eq:NN \thedownfootnote \thefootnote
}
\cs_generate_variant:Nn \msg_warning:nnnn { nnnV }
+\cs_new:Npn \eb_footnote_int_trans:n #1
+ {
+ \prop_item:Nn \l__eb_int_trans_cmds_prop {#1}
+ \exp_not:N \c@footnote
+ }
+\prop_set_from_keyval:Nn \l__eb_int_trans_cmds_prop
+ {
+ A = \exp_not:N \int_to_Alph:n,
+ a = \exp_not:N \int_to_alph:n,
+ 1 = \exp_not:N \int_to_arabic:n,
+ I = \exp_not:N \int_to_Roman:n,
+ i = \exp_not:N \int_to_roman:n,
+ c = \exp_not:n { \exp_args:NV \zhnumber },
+ s = \exp_not:N \eb_int_to_symbols:n
+ }
\cs_new_protected:Npn \eb_fnmarktext_short_label_set:Nn #1#2
{
- \tl_set:Nn \l__eb_fnmarktext_short_tokens_tl {#2}
+ \tl_set:Nn \l__eb_fnmarktext_tmpb_tl {#2}
\clist_map_inline:nn
{ A,a,1,I,i,c,s }
{
\regex_match:nnTF {##1} {#2}
{
\regex_replace_once:nnN {##1}
- { \c{eb_int_type_trans:NN} ##1 \c{c@footnote} }
- \l__eb_fnmarktext_short_tokens_tl
- \cs_set_eq:NN #1 \l__eb_fnmarktext_short_tokens_tl
+ { \c{eb_footnote_int_trans:n}\0 }
+ \l__eb_fnmarktext_tmpb_tl
+ \cs_set:Npx #1 { \l__eb_fnmarktext_tmpb_tl }
\clist_map_break:
}
{
@@ -878,7 +879,7 @@
\str_case:nnF {#1}
{
{ bottom }
- { \bool_set_true:N \l__eb_fnpara_bottom_bool }
+ { \PushFntBottom }
{ flush }
{
\tl_set:Nn \l__eb_footnote_value_tl { plain }
@@ -911,7 +912,6 @@
}
}
-\bool_new:N \l__eb_fnpara_bottom_bool
\tl_new:N \l__eb_fnmarktext_format_tl
\tl_new:N \l__eb_fncustom_format_tl
\clist_new:N \l__eb_footnote_value_clist
@@ -959,68 +959,105 @@
unknown .code:n = \eb_msg_deprecated_option:n { hdr }
}
-\eb_at_end_preamble:n
+\ctex_before_end_preamble:n
{
\bool_if:NT \l__eb_chap_counter_withpart_bool
{ \counterwithin*{chapter}{part} }
\str_case:VnT \l__eb_fnt_parent_counter_tl
{
{ part } { \counterwithin*{footnote}{part} }
- { page } { \counterwithin*{footnote}{page} }
+ { page }
+ {
+ \RequirePackage{zref-perpage}
+ \zmakeperpage{footnote}
+ }
}
{ \counterwithout*{footnote}{chapter} }
- \eb_fnpara_if_pos_bottom:
}
-\cs_new_protected:Npn \setspread #1 { \linespread{#1}\selectfont }
-\cs_new:Npn \eb@ifvoid #1#2#3 { \ifvoid #1#2\else #3\fi }
-\cs_new_protected:Npn \eb_fnpara_if_pos_bottom:
+
+\def\@if@footnotes@TF #1#2 {\ifvoid\footins #2\else #1\fi}
+\def\@outputbox@removebskip
{
- \bool_if:NT \l__eb_fnpara_bottom_bool
+ \ifx\@textbottom\relax\else
+ \@outputbox@append
+ {
+ \@tempskipa\lastskip
+ \ifnum\gluestretchorder\@tempskipa>\z@
+ \vskip -\@tempskipa
+ \xdef\@outputbox@reinsertbskip
+ {\noexpand\@outputbox@append{\vskip\the\@tempskipa}}
+ \else
+ \global\let\@outputbox@reinsertbskip\relax
+ \fi
+ }
+ \fi
+ }
+\let\@outputbox@reinsertbskip\relax
+\def\@outputbox@append #1
+ {
+ \setbox\@outputbox\vbox
{
- \IfPackageLoadedTF{footmisc}
- {\msg_warning:nn { easybase } { bottom-not-compatible }}
+ \boxmaxdepth\@maxdepth
+ \dimen@\dp\@outputbox
+ \unvbox\@outputbox
+ #1
+ }
+ }
+\def\@outputbox@attachfloats{\@combinefloats}
+\NewHook{makecol/footins/before}
+\NewHook{makecol/footins/begin}
+\def\@outputbox@appendfootnotes
+ {
+ \@if@footnotes@TF
+ {
+ \UseHook{makecol/footins/before}
+ \@outputbox@append
{
- \cs_set:Npn \@makecol
- {
- \setbox\@outputbox\box\@cclv
- \let\@elt\relax
- \xdef\@freelist{\@freelist\@midlist}
- \global\let\@midlist\@empty
- \@combinefloats
- \eb@ifvoid\footins{}
- {
- \setbox\@outputbox\vbox
- {
- \boxmaxdepth\@maxdepth
- \unvbox\@outputbox
- \vfill\relax
- \vskip\skip\footins
- \color@begingroup
- \normalcolor\footnoterule
- \unvbox\footins
- \color@endgroup
- }
- }
- \eb@ifvoid\@kludgeins
- {\@makespecialcolbox}
- {
- \setbox\@outputbox\vbox to\@colht
- {
- \@texttop\dimen@\dp\@outputbox
- \unvbox\@outputbox
- \vskip -\dimen@\@textbottom
- }
- }
- \global\maxdepth\@maxdepth
- }
+ \vskip\skip\footins
+ \UseHook{makecol/footins/begin}
+ \color@begingroup
+ \normalcolor
+ \footnoterule
+ \@nameuse{pdfcolfoot@current}
+ \unvbox\footins
+ \color@endgroup
}
+ }{}
+ }
+\def\@makenormalcolbox
+ {
+ \setbox\@outputbox\vbox to\@colht
+ {
+ \@texttop
+ \dimen@\dp\@outputbox
+ \unvbox\@outputbox
+ \vskip -\dimen@
+ \@textbottom
}
}
-\msg_new:nnn { easybase } { bottom-not-compatible }
+\cs_new_protected:Npn \PushFntBottom
{
- Not~compatible~with~the~'footmisc'~package. \\
- Please~use~the~'bottom'~option~of~'footmisc'~package.
+ \cs_set:Npn \@makecol
+ {
+ \setbox\@outputbox\box\@cclv
+ \@outputbox@removebskip
+ \let\@elt\relax
+ \xdef\@freelist{\@freelist\@midlist}
+ \global\let\@midlist\@empty
+ \@outputbox@attachfloats
+ \@if@footnotes@TF
+ {\@outputbox@append{\vfill}}
+ {\@outputbox@reinsertbskip}
+ \@outputbox@appendfootnotes
+ \ifvbox\@kludgeins
+ \@makespecialcolbox
+ \else
+ \@makenormalcolbox
+ \fi
+ \global\maxdepth\@maxdepth
+ }
}
+\@onlypreamble\PushFntBottom
\cs_new_protected:Npn \eb_footnote_direct_hang:
{
@@ -1081,7 +1118,7 @@
\eb_patch_cmd:Nnn #1
{ \reset@font }
{
- \setspread{\eb@spread@footnote}
+ \usestretch{\eb@spread@footnote}
\eb@font@footnote
}
}
@@ -1091,12 +1128,12 @@
\ctex_at_end_package:nn { footmisc }
{
\eb_package_date_check:nn { footmisc } { 2022/02/10 }
- \boolfalse{FN@setspace}
- \ifbool{FN@para}{}
+ \ifboolexpr{not (bool {FN@para} or bool {FN@sidefn})}
{
+ \boolfalse{FN@setspace}
\cs_set_eq:NN \@makefntext \eb@@makefntext
\cs_set_eq:NN \@footnotetext \eb@@footnotetext
- }
+ }{}
\ifboolexpr
{
bool {FN@hangfoot} or
@@ -1474,7 +1511,7 @@
\tl_set:Nn \eb@toc@title@level {#1}
\eb_toc_extract_level:
},
- level .initial:e =
+ level .initial:x =
{
\bool_if:NTF \l__eb_class_mode_book_bool
{ \exp_not:N \bichapter* }
@@ -1617,8 +1654,9 @@
{ \protect\numberline{#3}{#4} }
}
}
-\cs_new_protected:Npn \AllotCaptionExt #1#2
+\cs_new_protected:Npn \AssignCaptionExt #1#2
{ \tl_set:cn { ext@#1 } {#2} }
+\cs_set_eq:NN \AllotCaptionExt \AssignCaptionExt
\ctex_define:n
{
bicontentsname .tl_set:N = \bicontentsname,
@@ -1664,6 +1702,7 @@
\tl_set:cn { ttll@#2 } {#1}
}
\contentsuse{lstlisting}{lol}
+\cs_set:Npn \hytoclink #1 { \Hy@toclinkstart #1\Hy@toclinkend }
\seq_put_left:Nn \c__ctex_headings_seq { chapter }
\seq_put_right:Nn \c__ctex_headings_seq { table }
\seq_put_right:Nn \c__ctex_headings_seq { figure }
@@ -1717,7 +1756,7 @@
\bool_if:NTF \l__eb_toc_entry_hang_bool
{ \IfBooleanTF{##3}{\use:n}{\contentspush} }
{ \use:n }
- { ##1\tl_use:c { l__eb_toc_##2_after_tl } }
+ { \hytoclink{##1}\tl_use:c { l__eb_toc_##2_after_tl } }
},
tocafter = \hspace{1em},
tocsep = .—,
@@ -1816,8 +1855,6 @@
hang .initial:n = true,
pagenumwd .code:n = \contentsmargin{#1},
pagenumwd .initial:n = 1.55em,
- fileopen .tl_set:N = \l__eb_fileopen_type_tl,
- fileopen .initial:n = once,
unknown .code:n = \eb_msg_deprecated_option:n { toc }
}
@@ -1838,22 +1875,14 @@
\group_begin:
\makeatletter
\file_if_exist_input:n { \jobname.#1 }
- \UseHookWithArguments{starttoc/after}{1}{#1}
+ \AddToHook{enddocument/afterlastpage}
+ {\UseHookWithArguments{starttoc/after}{1}{#1}}
\boolfalse{@nobreak}
\group_end:
}
{ \eb@starttoc{#1} }
}
-\AddToHook{enddocument/afterlastpage}
- {
- \tl_if_eq:NnTF \l__eb_fileopen_type_tl { once }
- { \iow_now:Nn \@mainaux { \RemoveFromHook{starttoc/after}[*] } }
- {
- \IfHookEmptyTF{starttoc/after}{}
- {\iow_now:Nn \@mainaux { \RemoveFromHook{starttoc/after}[aux] }}
- }
- }
-\cs_set_protected:Npn \AllotPartialExt #1#2
+\cs_set_protected:Npn \AssignPartialExt #1#2
{
\tl_if_exist:cTF { ttl@partial#1 }
{ \msg_warning:nnnn { easybase } { repeated-ptoc } {#1} {#2} }
@@ -1863,12 +1892,13 @@
{\ttl@topartial{#1}{##1}{##2}}
}
}
+\cs_set_eq:NN \AllotPartialExt \AssignPartialExt
\msg_new:nnn { easybase } { repeated-ptoc }
{
Local~directory~file~'#2'~of~directory~type~'#1'~is \\
repeatedly~allocated.
}
-\AllotPartialExt{lol}{pll}
+\AssignPartialExt{lol}{pll}
\cs_new_protected:Npn \RegisterTitleIfname #1
{
@@ -1939,7 +1969,7 @@
\ctex_at_end_package:nn { imakeidx }
{
- \RenewDocumentCommand{\printindex}{st+od()}
+ \RenewDocumentCommand{\printindex}{st++o}
{
\group_begin:
\tl_set_eq:NN \eb@toc@title \indexname
@@ -2035,19 +2065,46 @@
}
\cs_set_eq:NN \addtosubfont \ebaddtofont
+\cs_new_protected:Npn \usestretch #1
+ {
+ \edef\baselinestretch{#1}
+ \@currsize
+ }
+\cs_set_eq:NN \setspread \usestretch
+\cs_new_protected:Npn \restore@usespace
+ {
+ \par
+ \vskip\parskip
+ \vskip\baselineskip
+ \endgroup
+ \vskip -\parskip
+ \vskip -\baselineskip
+ }
+\NewDocumentEnvironment{usespace}{m+b}
+ {
+ \par
+ \begingroup
+ \usestretch{#1}#2
+ \restore@usespace
+ }{}
+\msg_new:nnn { easybase } { invalid-spread }
+ {
+ The~line~spacing~factor~option~'#1'~is~invalid. \\
+ Please~use~the~'usespace'~environment~to~set~the~line~spacing.
+ }
+\cs_new_protected:Npn \eb_invalid_spread_warning:
+ { \msg_warning:nnV { easybase } { invalid-spread } \l_keys_key_str }
\ctex_define:nn { space }
{
- linespread .code:n = \setspread{#1},
- tabspread .fp_set:N = \l__eb_spread_table_fp,
- tabspread .initial:n = 1.2,
- mathspread .tl_set:N = \eb@spread@math,
- mathspread .initial:n = 1.2,
+ linespread .code:n = \usestretch{#1},
+ tabspread .code:n = \eb_invalid_spread_warning:,
+ mathspread .code:n = \eb_invalid_spread_warning:,
fntspread .code:n =
{
\tl_set:Nn \eb@spread@footnote {#1}
\group_begin:
\footnotesize
- \setspread{\eb@spread@footnote}
+ \usestretch{\eb@spread@footnote}
\exp_args:NNNo \group_end:
\dim_set:Nn \footnotesep { \dim_use:N \box_ht:N \strutbox }
},
@@ -2063,8 +2120,8 @@
caption-spread .initial:n = 1.2,
everyspread .meta:n =
{
- linespread = {#1},tabspread = {#1},mathspread = {#1},
- caption-spread = {#1},fntspread = {#1}
+ linespread = {#1},caption-spread = {#1},
+ fntspread = {#1}
},
abovedisplayskip .code:n =
{ \AfterPreamble{\skip_set:Nn \abovedisplayskip {#1}} },
@@ -2083,23 +2140,39 @@
\tl_if_eq:NnT \l__ctex_scheme_tl { chinese }
{
\fp_compare:nNnTF { \l__ctex_line_spread_fp } = { 1.3 }
- {
- \ctex_set:nn { space }
- { linespread = 1.354,tabspread = 1.354 }
- }
- {
- \ctex_set:nn { space }
- { linespread = \fp_use:N \l__ctex_line_spread_fp }
- }
+ { \usestretch{1.354} }
+ { \usestretch{\fp_use:N \l__ctex_line_spread_fp} }
}
\AfterPreamble{\skip_set:Nn \abovedisplayshortskip { 0ex plus .1ex }}
+\cs_new_protected:Npn \eb@register@cap@options #1
+ {
+ \ctex_define:nn { cap }
+ {
+ #1/unknown .code:n =
+ {
+ \use:x
+ {
+ \exp_not:N \captionsetup[#1]
+ { \eb_unknown_kv_handle: }
+ }
+ },
+ #1/unknown .default:V = \c_novalue_tl,
+ #1 .meta:nn = { ctex/cap/#1 } {##1}
+ }
+ }
+\cs_new_protected:Npn \RegisterCapOptions #1
+ {
+ \clist_map_function:nN {#1}
+ \eb@register@cap@options
+ }
+\RegisterCapOptions{table,figure,lstlisting}
\clist_map_inline:nn
{ table,figure,lstlisting }
{
\DeclareCaptionFont{eb@#1@font}
{
- \setspread{\fp_use:c { l__eb_spread_caption_#1_fp }}
+ \usestretch{\fp_use:c { l__eb_spread_caption_#1_fp }}
\tl_use:c { l__eb_font_caption_#1_tl }
}
}
@@ -2119,9 +2192,6 @@
\captionsetup[figure][bi-second]{name = Figure}
\captionsetup[table][bi-second]{name = Table}
}
-\eb_at_begin_environment:nn
- { tabular,tabularx,longtable }
- { \setspread{\fp_use:N \l__eb_spread_table_fp} }
\UseTblrLibrary{booktabs}
\bool_if:NF \l__eb_float_page_bool
@@ -2272,24 +2342,24 @@
\tl_clear:N \l__eb_eqsymb_intro_tl
\ignorespaces
}
-\bool_if:NT \l__eb_theorem_support_bool
+\cs_new_protected:Npn \eb_theorem_load_thmtools:
{
\RequirePackage{amsthm,thmtools}
\cs_set_eq:NN \eb@declaretheoremstyle@save \declaretheoremstyle
\cs_set_eq:NN \eb@declaretheorem@save \declaretheorem
\RenewDocumentCommand{\declaretheoremstyle}{+O{}m+O{}}
- {\eb@declaretheoremstyle@save[#1,#3]{#2}}
+ {\eb@declaretheoremstyle@save[##1,##3]{##2}}
\RenewDocumentCommand{\declaretheorem}{+O{}m+O{}}
{
- \eb@declaretheorem@save[style = default,#1,#3]{#2}
- \settheoremtocline{#2}
+ \eb@declaretheorem@save[style = default,##1,##3]{##2}
+ \settheoremtocline{##2}
{
- \listnumberline{#2}
+ \listnumberline{##2}
\thmtname\thmtifnote{~(\thmtnote)}{}
}
- \cs_gset:cpn { thmt@contentsline@#2 }
+ \cs_gset:cpn { thmt@contentsline@##2 }
{ \thmt@contentslineIfNamed }
- \exp_args:Nc \providecommand { p@#2 }[1]{##1}
+ \exp_args:Nc \providecommand { p@##2 }[1]{####1}
}
\ctex_define:nn { thmt }
{
@@ -2307,14 +2377,13 @@
bodyfont = \normalfont,
postheadspace = 1em
]
- \theoremstyle{default}
- \cs_undefine:N \proof
\DeclareFloatList{theorem}{loe}
- \AllotPartialExt{loe}{ple}
+ \AssignPartialExt{loe}{ple}
\eb_preto_cmd:nn { listoftheorems }
{
\group_begin:
- \def\contentsline #1 {\use:c { thmt@contentsline@#1 }{#1}}
+ \let\thmt@contentsline\contentsline
+ \def\contentsline ##1 {\use:c { thmt@contentsline@##1 }{##1}}
}
\eb_appto_cmd:nn { listoftheorems } { \group_end: }
\eb_preto_cmd:nn { @chapter }
@@ -2326,21 +2395,34 @@
\def\thmtname{\thmt@thmname}
\def\thmtenvname{\thmt@envname}
\def\thmtnote{\thmt@shortoptarg}
- \def\thmtformatoptarg #1 {#1}
- \def\thmtifname #1#2 {\ifbool{thmt@isstarred}{#2}{#1}}
- \def\thmtifnote #1#2
+ \def\thmtformatoptarg ##1 {##1}
+ \def\thmtifname ##1##2 {\ifbool{thmt@isstarred}{##2}{##1}}
+ \def\thmtifnote ##1##2
{
\tl_if_empty:NTF \thmt@shortoptarg
- {#2}
- { \protect\thmtformatoptarg{#1} }
+ {##2}
+ { \protect\thmtformatoptarg{##1} }
}
\NewDocumentCommand{\settheoremtocline}{smm}
{
- \IfBooleanT{#1}{\def\thmt@contentslineIgnore{\thmt@contentsline}}
- \cs_set:cpn { ll@#2 } { \@bsphack #3\@esphack }
+ \IfBooleanT{##1}{\def\thmt@contentslineIgnore{\thmt@contentsline}}
+ \cs_set:cpn { ll@##2 } { \@bsphack ##3\@esphack }
}
}
-
+\cs_new_protected:Npn \eb_theorem_load_keytheorems:
+ {
+ \RequirePackage{keytheorems}
+ \DeclareFloatList{theorem}{thlist}
+ \AssignPartialExt{thlist}{ple}
+ }
+\str_case:VnT \l__eb_theorem_support_tl
+ {
+ { thmtools }
+ { \eb_theorem_load_thmtools: }
+ { keytheorems }
+ { \eb_theorem_load_keytheorems: }
+ }
+ { \cs_undefine:N \proof }
\setchemformula
{
math-scripts = false,
@@ -2359,30 +2441,6 @@
group-digits = none
}
}{}
-\eb_at_begin_environment:nn
- {
- array,matrix,pmatrix,bmatrix,Bmatrix,vmatrix,Vmatrix,
- matrix*,pmatrix*,bmatrix*,Bmatrix*,vmatrix*,Vmatrix*,
- cases,cases*,dcases,dcases*,rcases,rcases*,drcases,drcases*,
- aligned,alignedat,gathered,multlined,lgathered,rgathered
- }
- { \setspread{\eb@spread@math} }
-\clist_map_inline:nn
- { \start@gather,\start@align,\start@multline }
- {
- \eb_patch_cmd:Nnn #1
- { \collect@body }
- {
- \setspread{\eb@spread@math}
- \collect@body
- }
- }
-\eb_patch_cmd:Nnn \gather@split
- { \spread@equation }
- {
- \setspread{\eb@spread@math}
- \spread@equation
- }
\ctex_at_end_package:nn { unicode-math }
{ \msg_redirect_module:nnn { unicode-math } { warning } { info } }
\ctex_at_end_package:nn { tcolorbox }
@@ -2403,7 +2461,6 @@
bititle .initial:n = Bibliography,
unknown .code:n = \eb_msg_deprecated_option:n { bib }
}
-
\cs_new_protected:Npn \eb_bibtex_natbib_set:
{
\RequirePackage[sort&compress]{natbib}
@@ -2421,7 +2478,7 @@
{ \exp_args:NV \bibliographystyle \l__eb_bib_both_style_tl }
\tl_if_blank:VF \l__eb_bib_cite_style_tl
{ \exp_args:NV \setcitestyle \l__eb_bib_cite_style_tl }
- \NewDocumentCommand{\printbibliography}{st+o}
+ \NewDocumentCommand{\printbibliography}{st++o}
{
\group_begin:
\tl_set_eq:NN \eb@toc@title \bibname
@@ -2469,7 +2526,7 @@
\setcounter{biburllcpenalty}{1}
\setcounter{biburlnumpenalty}{1}
}
-\eb_at_end_preamble:n
+\ctex_before_end_preamble:n
{
\providecommand{\bibname}{\refname}
\clist_if_empty:NF \l__eb_bib_datafile_clist
@@ -2686,6 +2743,8 @@
lstlistingname = 代码,
listtheoremname = 定理清单
}
+ \ctex_at_end_package:nn { keytheorems }
+ { \keytheoremlistset{title = 定理清单} }
}
{
\keys_set_known:nn { ctex }
@@ -2694,17 +2753,109 @@
lstlistingname = Code
}
}
+
+\cs_if_exist:NF \DeclareObjectType
+ { \RequirePackage{xtemplate} }
+\DeclareObjectType{easybook}{0}
+\DeclareTemplateInterface{easybook}{cover}{0}
+ {
+ content : tokenlist = \c_empty_tl,
+ beforecode : tokenlist = \c_empty_tl,
+ aftercode : tokenlist = \c_empty_tl,
+ align : choice {l,r,c,n} = c
+ }
+\DeclareTemplateCode{easybook}{cover}{0}
+ {
+ content = \l__eb_cover_content_tl,
+ beforecode = \l__eb_cover_before_code_tl,
+ aftercode = \l__eb_cover_after_code_tl,
+ align =
+ {
+ l = \cs_set_eq:NN \eb_cover_align: \raggedright,
+ r = \cs_set_eq:NN \eb_cover_align: \raggedleft,
+ c = \cs_set_eq:NN \eb_cover_align: \centering,
+ n = \cs_set:Npn \eb_cover_align: { }
+ }
+ }
+ {
+ \AssignTemplateKeys
+ \tl_use:N \l__eb_cover_before_code_tl
+ \group_begin:
+ \eb_cover_align:
+ \tl_use:N \l__eb_cover_content_tl
+ \tex_par:D
+ \group_end:
+ \tl_use:N \l__eb_cover_after_code_tl
+ }
+\DeclareInstance{easybook}{top}{cover}{}
+\DeclareInstance{easybook}{bottom}{cover}{}
+\DeclareInstance{easybook}{middle}{cover}
+ {
+ content =
+ {
+ \notbool{@titlepage}
+ {
+ \renewcommand{\theupfootnote}{\@fnsymbol\c@footnote}
+ \renewcommand{\thefootnote}{\@fnsymbol\c@footnote}
+ \let\footnote\thanks
+ }
+ {}
+ \bgroup\LARGE\@title\par\egroup
+ \notbool{@titlepage}{\vskip 1.5em}{\vskip 3em}
+ \bgroup\large
+ \begin{tabular}[t]{c}
+ \@author
+ \end{tabular}\par\egroup
+ \notbool{@titlepage}{\vskip 0.75em}{\vskip 1.5em}
+ \bgroup\large\@date\par\egroup
+ \notbool{@titlepage}{\vskip 1.5em}{}
+ \@thanks
+ },
+ beforecode =
+ {
+ \ifbool{@titlepage}
+ {
+ \begin{titlepage}
+ \let\footnotesize\small
+ \let\footnoterule\relax
+ \let\footnote\thanks
+ \null\vfil\vskip 60\p@
+ }
+ {\null\vskip 20\p@}
+ },
+ aftercode =
+ {
+ \ifbool{@titlepage}
+ {
+ \vfil\null
+ \end{titlepage}
+ }
+ {\thispagestyle{plain}}
+ \setcounter{footnote}{0}
+ }
+ }
+\keys_define:nn { eb/cover }
+ {
+ title .tl_set:N = \@title,
+ author .tl_set:N = \@author,
+ date .tl_set:N = \@date
+ }
+\RenewDocumentCommand{\maketitle}{+O{}}
+ {
+ \keys_set:nn { eb/cover } {#1}
+ \UseInstance{easybook}{top}
+ \UseInstance{easybook}{middle}
+ \UseInstance{easybook}{bottom}
+ }
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2024/07/20}{2024cv}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/10/01}{2024ec}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
{ \tcbset{#1/.append~style = {#2}} }
\cs_set_protected:Npn \deftcbstyle #1#2
{ \tcbset{#1/.style = {#2}} }
-\cs_new_protected:Npn \tcbappstyle
- { \@ifstar{\deftcbstyle}{\addtotcbstyle} }
\deftcbstyle{tc-easyboxi}
{
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 500be3cd8c..03cd0c9e85 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index 62473a37e8..49c9250f9b 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -23,8 +23,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v2024cv,
- date = 2024/07/21,
+ version = v2024ec,
+ date = 2024/10/01,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = toquyi@163.com,
@@ -249,8 +249,8 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
cells = {cmd = \pkg*},
cell{1}{3,4} = PaleTurquoise,
cell{2}{5} = PaleTurquoise,
- cell{3}{2} = PaleTurquoise,
cell{4}{5} = PaleTurquoise,
+ cell{5}{2} = PaleTurquoise,
cell{5}{1} = GreenYellow,
cell{1}{2} = GreenYellow,
cell{3}{1,4} = GreenYellow
@@ -259,7 +259,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
enumitem & etoolbox & fancyhdr & geometry & hyperref \\
imakeidx & listings & marginnote & mathtools & multicol \\
pifont & pdfpages & siunitx & spbmark & thmtools \\
- tcolorbox & titletoc & tabularray & ulem &
+ tcolorbox & titletoc & tabularray & &
\end{longtblr}
\section{全局选项}
@@ -282,8 +282,8 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
载入用户配置的文件名列表,文件列表以花括号包裹并以英文逗号分隔。文件名应包含如 \code{tex}、\code{def} 或 \code{cfg} 等扩展名。若配置文件不在当前文件夹则文件名需要包含路径,即 \code{path/file.cfg}。
\keychoice{floatpage}{true,\fbox{false}}
开启这个选项后浮动环境 \env{table} 和 \env{figure} 的比例参数会使用默认值。关闭它则尽可能避免出现浮动页,使图表环境与正文段落更加紧凑,减少多余的空白版面。
- \keychoice{theorem}{\fbox{true},false}
- 是否提供定理功能支持。选项开启时定理模块生效,此时会载入 \pkg*{amsthm} 和 \pkg*{thmtools} 宏包。
+ \keychoice{theorem}{\fbox{thmtools},keytheorems,false}\newtagv[Changed]{2024ea}%
+ 是否提供定理功能支持,定理模块的介绍可见\ref{subsec:theorem}。选项 \code{thmtools} 会载入 \pkg*{amsthm} 和 \pkg*{thmtools} 宏包,选项 \code{keytheorems} 会载入 \pkg*{keytheorems} 宏包,选项 \code{false} 不载入定理功能宏包。
\end{cnltxlist}
\subsection{配置字体}
@@ -298,6 +298,12 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\setCJKmonofont{FangSong}
\newCJKfontfamily[song]\songti{SimSun}
\end{ctexexam}
+
+ 如果用 \textsf{Overleaf} 或 \textsf{TeXPage} 等在线平台编译文档,则只有 \code{fandol} 字体可用。使用其它字体可将字体文件上传至项目文件夹,例如上传至 \code{font} 文件夹设置正文和无衬线字体:
+ \begin{ctexexam}
+ \setCJKmainfont{simsun.ttc}[Path = ./font/]
+ \setCJKsansfont{simhei.ttf}[Path = ./font/]
+ \end{ctexexam}
\keychoice{font}{noto,times,times*,ebgaramond,libertine,palatino,\fbox{auto}}\dtag
预置的英文字体相关配置方案如\ref{table:english font} 所示。这些字体已经包含在了 \hologo{TeXLive} 发行版中,所以通常不需要再专门安装。如果您想使用默认的Latin Modern或其它英文字体,可以使用 \code{auto} 选项配合 \pkg*{fontspec} 宏包的相关命令进行设置。
\begin{longtblr}
@@ -338,7 +344,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\label{sec:interface options}
\begin{cnltxlist}
\command{ctexset}[\oarg{模块名}\marg{键值列表}]
- \easybook{} 扩展了 \CTeX 宏集 \hologo{LaTeX3} 风格键值的通用控制命令 \cs{ctexset},模块选项同样可用它设置,原有的 \meta{键值列表} 仍然可用。本文档类目前有9个模块用于实现常规的排版功能,如\ref{table:module List} 所示。
+ \easybook{} 扩展了 \CTeX 宏集 \hologo{LaTeX3} 风格键值的通用控制命令 \cs{ctexset},模块选项同样可用它设置,原有的 \meta{键值列表} 仍然可用。本文档类目前有10个模块用于实现常规的排版功能,如\ref{table:module List} 所示。
\begin{longtblr}
[caption = 模块功能和名称清单,label = table:module List]
{
@@ -348,8 +354,8 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
}
\hyperref[subsec:tools]{工具} & \hyperref[subsec:font]{部件字体} & \hyperref[subsec:space]{间距} & \hyperref[subsec:hyperlinks]{超链接} & \hyperref[subsec:reference]{参考文献} \\
tools & font & space & ref & bib \\
- \hyperref[subsec:theorem]{定理} & \hyperref[subsec:page margins]{页面尺寸} & \hyperref[subsec:header and footer]{页眉页脚} & \hyperref[subsec:catalog]{目录} & \\
- thmt & geo & hdr & toc &
+ \hyperref[subsec:theorem]{定理} & \hyperref[subsec:page margins]{页面尺寸} & \hyperref[subsec:header and footer]{页眉页脚} & \hyperref[subsec:contents]{目录} & \hyperref[subsec:caption]{图表题注} \\
+ thmt & geo & hdr & toc & cap
\end{longtblr}
\ref{exam:kv setting} 使用\ref{subsec:tools} 介绍的工具模块 \module*{tools} 举例三种键值列表设置方式:1. 各 \meta{模块名} 是统一接口 \cs{ctexset} 的键路径。2. 不同模块还具有单独的接口命令 \cs*{eb}\meta{模块名}\code{\textcolor{cs}{set}}。3. \meta{模块名} 也可以使用 \cs{ctexset} 命令的可选参数设置。路径名与所属下级选项之间可以 \code{/} 或 \code{=} 号分开,斜线 \code{/} 后不能有空格或者换行。
@@ -389,7 +395,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\keychoice{withpart}{true,\fbox{false}}
使章标题跟随部分计数器编号,仅在导言区有效。当开启新的部分标题时章编号从1开始。
\keychoice{fntnumwith}{part,\fbox{chapter},page}
- 设置脚注跟随编号的计数器,仅在导言区有效。默认跟随章计数器,即开启新的章标题时脚注编号从1开始。
+ 设置脚注重置编号的方式,仅在导言区有效。默认跟随章计数器,即开启新的章标题时脚注编号从1开始。选项 \code{page} 代表的是换页而不是页计数器,这是由于在一些排版情况下换页后页计数器仍为上页的值。
\keychoice{uppercase}{\fbox{all},first,none,none*}
使用 \cs{rightmark} 和 \cs{leftmark} 等标题标记命令获取标题内容用于页眉页脚时其中英文的大小写类型。\code{all} 为标题标记中的英文字母全部大写。\code{first} 为标记以英文起始时仅第一个字母大写。\code{none} 不改变标记中英文字母的大小写形式,变体 \code{none*} 则强制标记的字母均为小写形式。
\kvsplit{tagform}{左括号,右括号}\Default{\Marg{(,)}}
@@ -440,10 +446,6 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\begin{cnltxlist}
\keyval{linespread}{数值}\Default{1.354}
正文行距因子。中文主题下行距因子初始值为 \code{1.354}(相当于 \textsf{Word} 的1.25倍行距),如果设置了文类或 \pkg*{ctex} 宏包的全局行距选项 \option{linespread} 则初始值设为它的值。
- \keyval{tabspread}{数值}\Default{1.354}
- 表格内容行距因子,对传统表格 \env{tabular} 和 \env{tabularx} 等环境生效。\pkg*{tabularray} 宏包的 \env{tblr} 环境自带 \option*{stretch} 和 \option*{rowsep} 等行间距选项,这里不做调整。
- \keyval{mathspread}{数值}\Default{1.2}
- 数学环境的行距因子,包含了 \pkg*{amsmath} 和 \pkg*{mathtools} 宏包提供的公式环境。
\keyval{capfig-spread}{数值}\Default{1.2}
图片题注的行距因子。
\keyval{captab-spread}{数值}\Default{1.2}
@@ -456,7 +458,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
脚注内容整体的行距因子。可以使用 \module*{hdr} 模块 \option{fnpara-format} 选项的代码单独覆盖每个脚注的行距,从而使脚注间和内容文本自身的行距不同。
\begin{ctexexam}
\ebspaceset{fntspread = 1.3}
- \ebhdrset{fnpara-format = \linespread{1.2}\selectfont}
+ \ebhdrset{fnpara-format = \usestretch{1.2}}
\end{ctexexam}
\keyval{everyspread}{数值}
统一设置上述所有的行距因子。
@@ -464,6 +466,21 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
行间公式与上面正文间的额外距离。
\keyval{belowdisplayskip}{弹性长度}\Default{0.5ex plus .1ex minus .1ex}
行间公式与下面正文间的额外距离。
+ \begin{cnltxlist}
+ \command{usestretch}[\marg{数值}]\newtagv{2024dt}%
+ 设置之后文本的行距。可在任意地方使用,作用范围为局部。
+ \environment{usespace}[\marg{数值}]\newtagv{2024dt}%
+ 设置环境内文本的行距。可包含行间公式和表格等环境。
+ \begin{ctexexam}
+ \begin{usespace}{1.5}\nointerlineskip
+ \ebspaceset{belowdisplayskip = 6pt}
+ \begin{align}
+ \cos 2x &= \cos^2 x - \sin^2 x \\
+ &= 2\cos^2 x - 1
+ \end{align}
+ \end{usespace}
+ \end{ctexexam}
+ \end{cnltxlist}
\end{cnltxlist}
\subsection[部件字体]{部件字体\smodule{font}}
@@ -485,7 +502,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\command{ebaddtofont}[\marg{字体类型}\marg{字体命令}]
用于在上述各种字体原有的格式上附加代码。其中 \meta{字体命令} 也可以包括行距命令且相对于 \module*{space} 模块具有优先性,不同题注的 \meta{字体类型} 则为相应选项的后缀名。
\begin{ctexexam}
- \ebaddtofont{every}{\linespread{1.5}\selectfont}
+ \ebaddtofont{every}{\usestretch{1.5}}
\ebaddtofont{footnote}{\sffamily}
\end{ctexexam}
\end{cnltxlist}
@@ -494,7 +511,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\label{subsec:reference}
\begin{cnltxlist}
\keychoice{backend}{\fbox{bibtex},biblatex}
- 参考文献处理后端。选择 \code{bibtex} 时使用传统的 \hologo{BibTeX} 引擎处理参考文献,加载 \pkg*{natbib} 宏包。选择 \code{biblatex} 时使用 \hologo{biber} 引擎,加载 \pkg*{biblatex} 宏包。
+ 参考文献处理后端。选择 \code{bibtex} 时使用传统的 \hologo{BibTeX} 引擎处理参考文献,加载 \pkg*{natbib} 宏包。选择 \code{biblatex} 时使用 \hologo{biber} 引擎,加载 \pkg*{biblatex} 宏包。若自动载入参考文献宏包则位于导言区末尾,但在 \pkg*{hyperref} 宏包之前。
\keychoice{bibstyle}{\fbox{numerical},authoryear,\optpath*{other sty}}
参考文献格式使用中国参考文献推荐标准GB/T 7714-2015,对应顺序编码制和著者—出版年制两种风格。若使用其它格式,使用 \hologo{BibTeX} 处理时需确保正确的 \code{bst} 文件,使用 \hologo{biber} 处理可使用 \pkg*{biblatex} 宏包支持的参考文献风格名称。
\keyval{citestyle}{标注风格}
@@ -529,10 +546,10 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\subsection[定理]{定理\smodule{thmt}}
\label{subsec:theorem}
-定理模块 \module*{thmt} 由 \pkg*{thmtools} 宏包提供支持,主要提供了定理环境和样式声明两个命令。定理环境声明命令 \cs{declaretheorem} 使用的定理样式由样式声明命令 \cs{declaretheoremstyle} 提供。文档类未预声明任何定理环境,如果声明定理环境时不指定样式,则使用默认定理样式 \code{default},可以对它重新定义。
+定理模块 \module*{thmt} 根据全局选项 \option{theorem} 的设置可以由 \pkg*{thmtools} 或 \pkg*{keytheorems} 宏包提供支持。\pkg*{keytheorems} 宏包使用 \hologo{LaTeX3} 编写,它的定理功能更完善并且提供了 \pkg*{thmtools} 宏包大部分的功能,但发布日期较新(2024年9月)还未被广泛使用,下面主要介绍传统的 \pkg*{thmtools} 宏包的功能。\pkg*{thmtools} 提供了定理环境和样式声明两个命令,文档类未预声明任何定理环境,如果声明定理环境时不指定样式,则使用默认定理样式 \code{default},可以对它重新定义。
\begin{cnltxlist}
\command{declaretheorem}[\oarg{键值列表1}\marg{环境名}\oarg{键值列表2}]
- 定理环境声明命令。可选参数的 \meta{键值列表1} 与 \meta{键值列表2} 等效,其中常用的选项如下:
+ \pkg*{thmtools} 的定理环境声明命令。可选参数的 \meta{键值列表1} 与 \meta{键值列表2} 等效,常用的选项如下:
\keyval{name}{定理名}
定理环境的标题名称,默认为英文首字母大写的环境名。
\keychoice{numbered}{no,\fbox{yes},unless unique}
@@ -546,14 +563,14 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\keyval{style}{定理样式}\Default{default}
选项的值为使用 \cs{declaretheoremstyle} 命令新定义的定理样式。
- 使用 \cs{declaretheorem} 命令以\ref{exam:new theorem sty} 中的定理样式 \code{fancy} 新建一个定理环境猜想,然后用一个基于 \pkg*{tcolorbox} 宏包的预置彩色盒子 \env{easyboxi} 增加背景:
+ 使用 \cs{declaretheorem} 命令以\ref{exam:new theorem sty} 中的定理样式 \code{fancy} 新建一个定理环境 \env*{lemma},然后用一个基于 \pkg*{tcolorbox} 宏包的预置彩色盒子 \env{easyboxi} 增加背景:
\begin{ctexexam}[labelref = exam:new theorem env]
- \declaretheorem[style = fancy,name = 猜想]{caixiang}
+ \declaretheorem[style = fancy,name = 引理]{lemma}
\addtotcbstyle{tc-easyboxi}{colback = GreenYellow}
- \tcolorboxenvironment{caixiang}{tc-easyboxi}
+ \tcolorboxenvironment{lemma}{tc-easyboxi}
\end{ctexexam}
\command{declaretheoremstyle}[\oarg{键值列表1}\marg{定理样式}\oarg{键值列表2}]
- 定理样式声明命令,键值列表支持自身以及定理声明命令 \cs{declaretheorem} 的所有选项。可选参数的 \meta{键值列表1} 与 \meta{键值列表2} 等效,其中支持的选项如下:
+ \pkg*{thmtools} 的定理样式声明命令,键值列表支持自身以及定理声明命令 \cs{declaretheorem} 的所有选项。可选参数的 \meta{键值列表1} 与 \meta{键值列表2} 等效,常用的选项如下:
\keyval{headfont}{字体命令}\Default{\cs*{sffamily}}
定理标题部分(包括题注)的字体,包括字体族、字体系列、字体尺寸和字体形状命令。
\keyval{notefont}{字体命令}\Default{\cs*{sffamily}}
@@ -573,9 +590,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\kvsplit-{notebraces}{\marg{左括号}\marg{右括号}}\Default{\Marg{(}\Marg{)}}
设置定理题注两边的括号,两个必选参数分别代表左括号和右括号。
\keyval{headformat}{标题排列}
- 定理标题各组成元素的位置排列和格式。定理标题由定理名、编号和题注组成,\meta{标题排列} 中命令 \cs*{NAME}、\cs*{NUMBER} 和 \cs*{NOTE} 分别代表定理名、编号和题注。
- \command{theoremstyle}[\marg{定理样式}]
- 设置其后由 \cs{declaretheorem} 命令声明的定理环境的样式。
+ 定理标题各组成元素的位置排列和格式。定理标题由定理名、编号和题注组成,\meta{标题排列} 中命令 \cs*{NAME}、\cs*{NUMBER} 和 \cs*{NOTE} 分别代表定理名、编号和题注。也可以设置值为 \code{margin} 或 \code{swapnumber},它们的编号均在定理名前方,其中 \code{margin} 的编号在左页边距中。
下面定义一个名为 \code{fancy} 的定理样式用于 \cs{declaretheorem} 的 \option*{style} 选项:
\begin{ctexexam}[labelref = exam:new theorem sty]
@@ -591,9 +606,9 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{ctexexam}
\begin{cnltxlist}[itemsep = 0ex]
\command{listoftheorems}[\sarg\oarg{键值列表}]\default{}
- \item\key{listoftheorems}{定理目录标题名}
+ \item\key{listtheoremname}{定理目录标题名}
\command{settheoremtocline}[\sarg\marg{环境名}\marg{标题定义}]\newtagv{2024bb}%
- 对 \pkg*{thmtools} 宏包的定理环境目录命令 \cs{listoftheorems} 进行了适配调整,\ref{subsec:directory command} 和\ref{subsec:catalog} 中的选项机制均可用,但标题定义选项 \option{tocline} 较为特殊,需用 \cs{settheoremtocline} 命令单独设置。在 \meta{标题定义} 中有三个命令 \cs{thmtname}、\cs{thmtenvname} 和 \cs{thmtnote} 分别代表定理名、定理环境名和题注用于排版目录条目。
+ 对 \pkg*{thmtools} 宏包的定理环境目录命令 \cs{listoftheorems} 进行了适配调整\footnote{也对 \pkg*{keytheorems} 宏包作为兼容提供的这个命令进行了适配。},\ref{subsec:directory command} 和\ref{subsec:contents} 中的选项机制均可用,但标题定义选项 \option{tocline} 较为特殊,需用 \cs{settheoremtocline} 命令单独设置。在 \meta{标题定义} 中有三个命令 \cs{thmtname}、\cs{thmtenvname} 和 \cs{thmtnote} 分别代表定理名、定理环境名和题注用于排版目录条目。
\end{cnltxlist}
\optpath{thmt/}\key{loeskip}{弹性长度}\Default{10pt}
定理目录中每章第一个条目上方增加的垂直距离。与 \CTeX 的表格和图片目录中每章间的条目距离选项 \option*{lotskip} 和 \option*{lofskip} 类似,在 \cls*{article} 模式中此选项失效。
@@ -602,20 +617,30 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\command{thmtifname}[\marg{存在编号代码}\marg{不存在编号代码}]
在 \meta{标题定义} 中测试当前定理是否有编号从而输出不同的内容,定理风格选项 \keyis{numbered}{no} 设置当前定理环境没有编号。
\begin{ctexexam}
- \contentsuse{caixiang}{loe}
- \RegisterTocName{caixiang}
- \setlisttheoremstyle{ignoreall,show = caixiang}
- \settheoremtocline{caixiang}
+ \contentsuse{lemma}{loe}
+ \RegisterTocName{lemma}
+ \setlisttheoremstyle{ignoreall,show = lemma}
+ \settheoremtocline{lemma}
{
- \listnumberline{caixiang}
+ \listnumberline{lemma}
\thmtname\thmtifnote{[\thmtnote]}{}
}
\end{ctexexam}
+
+ 如果使用 \pkg*{keytheorems} 宏包创建定理环境,它的目录样式同样可以用 \module*{toc} 模块的命令注册后定制,其中 \option{tocline} 可用目录命令自带的 \option{format-code} 选项设置:
+ \begin{ctexexam}
+ \newkeytheorem{corollary}[name = 推论]
+ \contentsuse{corollary}{thlist}
+ \RegisterTocName{corollary}
+ \begin{document}
+ \keytheoremlistset{format-code = \numberline{#2}#1#3}
+ \listofkeytheorems % 在正文中输出定理目录
+ \end{ctexexam}
\end{cnltxlist}
\subsection[页面尺寸]{页面尺寸\smodule{geo}}
\label{subsec:page margins}
-页面尺寸模块 \module*{geo} 用于设置纸张大小和各种页面边距,它将选项交给页面尺寸宏包 \pkg*{geometry} 处理,并且支持它的键值列表,预置的页面尺寸与 \textsf{Word} 的默认值接近。下面列举几种 \pkg*{geometry} 的代表性选项,前面有\hface 符号的选项为额外附加,其它选项可查阅宏包帮助文档。当用此模块设置纸张规格时,会覆盖全局选项 \option{paper} 的设置。
+页面尺寸模块 \module*{geo} 用于设置纸张大小和各种页面边距,它将选项交给页面尺寸宏包 \pkg*{geometry} 处理,支持通用接口 \cs{geometry} 的键值列表,预置的页面尺寸与 \textsf{Word} 的默认值接近。下面列举几种 \pkg*{geometry} 不同键值输入方式的选项,前面有\hface 符号的选项为额外附加,其它选项可查阅宏包帮助文档。当用此模块设置纸张规格时,会覆盖全局选项 \option{paper} 的设置。模块 \module*{geo} 的通用接口命令只能在导言区中使用。
\begin{cnltxlist}[itemsep = 0ex]
\keyval{headruleskip}{页眉线间距}\dtag\Default*{0pt}
\keyval{footruleskip}{页脚线间距}\dtag\Default*{3.5pt}
@@ -632,6 +657,55 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
vcentering
}
\end{ctexexam}
+
+ \pkg*{geometry} 宏包支持在文档中部改变页面尺寸,提供了新建和保存页面布局的命令。需要注意的是,\pkg*{fancyhdr} 宏包配置页面标记是以文档开始的页面尺寸为参考,若中途更改页面布局后需用标记偏移命令 \cs{fancyhfoffset} 重置参考的尺寸,以确保标记位置正确。
+ \command{newgeometry}[\marg{键值列表}]
+ 在正文中更改页面布局,\meta{键值列表} 为 \pkg*{geometry} 宏包通用接口的各种页面尺寸选项。
+ \command{restoregeometry}
+ 恢复正文开始时的页面布局。
+ \command{savegeometry}[\marg{布局名}]
+ 保存当前页面布局名为 \meta{布局名}。
+ \command{loadgeometry}[\marg{布局名}]
+ 载入保存的名为 \meta{布局名} 的页面布局。
+ \begin{ctexexam}
+ L1
+ \newgeometry{left = 3cm,right = 1cm,bottom = 0.1cm}
+ \savegeometry{L2}
+ L2 (new, saved)
+ \restoregeometry
+ L1 (restored)
+ \newgeometry{margin = 1cm,includefoot}
+ L3 (new)
+ \loadgeometry{L2}
+ \fancyhfoffset{0pt}
+ L2 (loaded)
+ \end{ctexexam}
+\end{cnltxlist}
+
+\subsection[图表题注]{图表题注\smodule{cap}}
+\label{subsec:caption}
+模块 \module*{cap} 用于设置图表等浮动体的题注格式。题注主要由三部分组成:标题标签即图表名与题注编号的组合,标题文本本身通常是内容的简短描述,以及将文本与标签分开的题注分隔符。可以在导言区设置整体格式,也可以在正文使用局部更改格式。模块 \module*{cap} 由 \pkg*{caption} 宏包提供支持,接口选项与 \pkg*{caption} 宏包完全一致,但写法为 \meta{条目名}\code{/}\meta{选项}。\pkg*{caption} 宏包提供了多种方法来定制浮动环境(例如 \env{figure} 和 \env{table})中的题注,并可与许多其它宏包配合使用。功能包括旋转题注、侧向题注和连续题注等。下面列举几个题注选项的用法,\ref{exam:caption set} 中两种设置题注的方法是等效的,更多选项和创建方法可查看宏包文档:
+\begin{cnltxlist}[itemsep = 0ex]
+ \keyval{table/labelsep}{标签分隔符}\default{}
+ \keyval{figure/format}{题注格式}\default{}
+ \keyval{lstlisting/font}{题注字体}\default{}
+ \begin{ctexexam}[labelref = exam:caption set]
+ \ctexset[cap]
+ {
+ table/labelsep = space,
+ figure/format = plain
+ }
+ \captionsetup[table]{labelsep = space}
+ \captionsetup[figure]{format = plain}
+ \end{ctexexam}
+ \begin{cnltxlist}
+ \command{RegisterCapOptions}[\marg{条目名列表}]
+ 给模块 \module*{cap} 注册题注类型为 \meta{条目名} 的 \pkg*{caption} 接口选项。已预注册 \module*{figure}、\module*{table} 和 \module*{lstlisting} 三种类型的题注选项。可以搭配 \pkg*{newfloat} 宏包创建更多类型的浮动环境并设置相应题注。
+ \end{cnltxlist}
+ \command{caption}[\sarg\oarg{目录标题}\marg{标题}]\default{}
+ \command{captionof}[\sarg\marg{条目名}\oarg{目录标题}\marg{标题}]\default{}
+ \command{bicaption}[\sarg\oarg{目录中文标题}\marg{中文标题}\oarg{目录英文标题}\marg{英文标题}]
+ 题注命令 \cs{caption} 用于在图表上下方插入题注,需要在浮动环境 \env*{figure} 和 \env*{table} 中使用。在浮动环境外可以使用 \cs{captionof} 命令,第一个参数指定条目名。\cs{bicaption} 命令可以实现中英文双语题注,需要在导言区载入 \pkg*{bicaption} 宏包,具体用法见宏包文档。
\end{cnltxlist}
\subsection[页眉页脚]{页眉页脚\smodule{hdr}}
@@ -678,6 +752,8 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\ebhdrset{headrule = {}}
}
\end{ctexexam}
+ \command{pagestyle}[\marg{风格名}]\Default{fancy}
+ 设置 \meta{风格名} 为当前及之后页的页面风格。
\command{fancyhead}[\oarg{位置}\marg{内容}]\default{}
\command{fancyfoot}[\oarg{位置}\marg{内容}]
为了确保页面显示正确,使用 \cs{fancyhead} 和 \cs{fancyfoot} 等命令设置页眉页脚时需要在页边距的命令之后。默认设置的是一个名为 \code{fancy} 的页面风格。\pkg*{fancyhdr} 将页眉页脚分成了左中右和奇数页(odd)、偶数页(even)共12个部分,可选参数中 \code{E} 和 \code{O} 代表偶数和奇数,\code{L}、\code{C} 和 \code{R} 代表左、中和右部分。单面打印时,含有偶数位置的命令无效。
@@ -710,6 +786,8 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\ebhdrset{footnotetype = plain,footnotetype = bottom}
\ebhdrset{footnotetype = {hang,bottom}}
\end{ctexexam}
+ \command{PushFntBottom}\newtagv{2024cx}%
+ 默认情况下当具有 \code{b} 参数的底部浮动体与脚注同时存在时,脚注将位于浮动体上部。此命令可使脚注始终位于页面底部,与 \keyis{footnotetype}{bottom} 作用相同,只能在导言区全局使用。
\keyval{fnfirstindent}{刚性长度}\Default{1em}
每个脚注首段的首行缩进(悬挂缩进 \code{hang} 为整段缩进),等于长度 \cs{fnfirstindent} 的值。
\keyval{fnafterindent}{刚性长度}\Default{2em}
@@ -805,7 +883,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{cnltxlist}
\subsection[目录]{目录\smodule{toc}}
-\label{subsec:catalog}
+\label{subsec:contents}
模块 \module*{toc} 将使用 \pkg*{titletoc} 宏包处理目录样式。默认包括 \module*{part}$\longrightarrow$\module*{subparagraph}、\module*{figure}、\module*{table} 和 \module*{lstlisting} 条目名的键路径。选项前带有\hface 符号表示支持所有相应\textbf{条目名}的路径,其它选项则处于 \module*{toc} 键路径下。目录选项均支持标题编号判定命令 \cs{CTEXifname}\footnote{此功能需要\textbf{2023/06/01}以后的 \hologo{LaTeX} 内核支持。}。目前支持多数学术论文目录样式,更复杂的样式可以查看 \pkg*{titletoc} 的相关用法。
\begin{cnltxlist}
\keyval{tocformat}{条目格式}\dtag
@@ -826,11 +904,13 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\newcommand{\seqentry}[2]{#2-#1} % #2为标题内容
\ctexset{chapter/toclabel = \seqentry{#1}}
\end{ctexexam}
+ \command{hytoclink}[\marg{目录条目元素}]\newtagv{2024eb}%
+ 给目录条目元素增加超链接,主要用于 \option{toclabel} 选项中的标签。使用 \pkg*{titletoc} 宏包时条目标题的标签超链接会缺失,这个命令可修复此问题。
\keyval{tocafter}{距离命令}\dtag\Default{\cs*{hspace}\Marg{1em}}
目录条目标签与标题间的代码,默认为插入 \code{1em} 横向距离。
\keyval{tocbelow}{距离命令}\dtag
在目录条目下方执行的代码,可以插入垂直距离等命令。
- \keyval{tocline}{标题定义}\dtag[\textcolor{red}{\sface}]
+ \keyval{tocline}{标题定义}\dtag[\sface]
这个选项在章节标题基础上扩展了浮动环境的题注标题在目录文件中的定义。章节和题注标题选项中参数 \code{\#1} 代表标题编号 \cs*{the}\meta{计数器} 对应的计数器名称,参数 \code{\#2} 则代表相应标题内容。
\begin{ctexexam}
\ctexset
@@ -842,7 +922,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
tocrule = \tocrule[0.6pc](1.1){.}[\zihao{5}],
tocline = \CTEXnumberline{#1}#2
},
- section/toclabel = \contentspush{#1\hspace{0.5em}},
+ section/toclabel = \contentspush{\hytoclink{#1}\hspace{0.5em}},
section/tocrule = \tocrule-{}\makebox[1cm]{\rlap{\thecontentspage}},
toc/pagenumwd = 0pt
}
@@ -858,7 +938,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\command{contentsuse}[\oarg{目录层次}\marg{条目名}\marg{扩展名}]\newtagv[Changed]{2024ce}%
激活条目类型为 \meta{条目名} 的目录定制功能,目录文件后缀为 \meta{扩展名},若 \meta{扩展名} 为 \code{toc} 则条目会自动激活。可选参数 \meta{目录层次} 为条目在目录中的层次深度,默认值为 \code{-1000},当它大于目录深度计数器 \code{tocdepth} 时不显示。图表等标题的目录条目无深度因此为默认值,章节标题 \module*{part}$\longrightarrow$\module*{subparagraph} 的深度则从 \code{-1} 到 \code{5} 依次递增。需要在激活条目后再使用命令 \cs{RegisterTocName} 注册选项。
\command{DeclareFloatList}[\marg{条目名}\marg{扩展名}]
- 声明一种条目类型的目录命令 \cs*{listof}\meta{条目名}\code{\textcolor{cs}{s}},并且支持\ref{subsec:directory command} 中图表目录命令的机制。使用这个命令要确保将条目加入目录的机制已经存在,例如搭配 \pkg*{newfloat} 宏包创建新的浮动环境。选项前有实心符号 \textcolor{red}{\sface}(仍包含空心符号\hface 选项的性质)表示在声明后可用。下面举一个声明算法环境和对应题注目录的例子:
+ 声明一种条目类型的目录命令 \cs*{listof}\meta{条目名}\code{\textcolor{cs}{s}},并且支持\ref{subsec:directory command} 中图表目录命令的机制。使用这个命令要确保将条目加入目录的机制已经存在,例如搭配 \pkg*{newfloat} 宏包创建新的浮动环境。选项前有实心符号\sface(仍包含空心符号\hface 选项的性质)表示在声明后可用。下面举一个声明算法环境和对应题注目录的例子:
\begin{ctexexam}
\usepackage{newfloat}
\DeclareFloatingEnvironment[
@@ -867,18 +947,19 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
name = 算法
]{algorithm}
\DeclareFloatList{algorithm}{loa}
+ \begin{document}
\listofalgorithms[multoc] % 在正文中输出双栏算法目录
\end{ctexexam}
- \command{AllotCaptionExt}[\marg{条目名}\marg{扩展名}]
+ \command{AssignCaptionExt}[\marg{条目名}\marg{扩展名}]
给条目类型名称为 \meta{条目名} 的标题分配目录文件 \meta{扩展名},注意 \meta{扩展名} 需要被定义在 \cs*{ext@}\meta{条目名} 命令中才有效(\pkg*{caption} 宏包的默认定义形式)。可以使不同的 \meta{条目名} 共享一个目录:
\begin{ctexexam}
- \AllotCaptionExt{table}{lof}
+ \AssignCaptionExt{table}{lof}
\newcommand{\listoffiguretables}{\listoffigures} % 同时输出图表目录的命令
\end{ctexexam}
- \command{AllotPartialExt}[\marg{扩展名1}\marg{扩展名2}]\newtagv{2024bk}
+ \command{AssignPartialExt}[\marg{扩展名1}\marg{扩展名2}]\newtagv{2024bk}
给目录文件扩展名为 \meta{扩展名1} 的目录分配扩展名为 \meta{扩展名2} 的局部目录\footnote{此功能需要\textbf{2023/06/01}以后的 \hologo{LaTeX} 内核支持。},预注册的条目均无需再分配。用于搭配题注标题 \cs{caption} 命令和 \pkg*{titletoc} 宏包的局部题注目录命令。
\begin{ctexexam}
- \AllotPartialExt{loa}{pla}
+ \AssignPartialExt{loa}{pla}
\startlist[fancy]{loa}
\captionof{algorithm}{算法标题}
\stoplist[fancy]{loa}
@@ -907,7 +988,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
悬挂缩进选项 \option{hang} 使目录条目为悬挂缩进形式。缩进距离为条目标签及其与标题内容间距的长度和。通常情况下会统一设置条目标题是否悬挂缩进,因此这个选项被设计为对所有类型条目生效。
\keyval{lolskip}{弹性长度}\Default{10pt}
代码目录中每章第一个条目上方增加的垂直距离。与 \CTeX 的表格和图片目录中每章间的条目距离选项 \option*{lotskip} 和 \option*{lofskip} 类似,在 \cls*{article} 模式中此选项失效。
- \keyval{between}{格式代码}\dtag[\textcolor{red}{\sface}]
+ \keyval{between}{格式代码}\dtag[\sface]
目录标题与条目内容间的局部钩子(作用于标题下方间距之后),如果是 \cls*{book} 模式则默认插入 \code{-10pt} 垂直距离抵消首行目录的额外垂直间距,这是由于图表和 由 \pkg*{newfloat} 宏包所创建环境的目录默认每使用一次章标题在题注目录中插入 \code{10pt} 距离。除了条目名的键路径外,此选项也可用于 \module*{toc} 路径中,表示章节标题目录标题代码钩子,如果是 \cls*{book} 模式则默认插入 \code{-1pc} 垂直距离。
\keyval{bibetween}{格式代码}
与选项 \option{between} 类似,是英文章节标题目录(如果启用)标题代码钩子。
@@ -927,8 +1008,47 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\section{环境和命令}
-\subsection{文区命令}
+\subsection{封面和文区}
\begin{cnltxlist}
+ \command{maketitle}[\oarg{键值列表}]\newtagv{2024dh}%
+ 重新改写了默认的封面标题命令,在保证原生风格的前提下使用 \pkg*{xtemplate} 宏包将封面抽象为由实例组成的模板。并为命令增加了可选参数,选项的含义与标准文档类一致:
+ \keyval{title}{文档标题}
+ 设置文档的标题,可以包含格式命令。如果没有设置标题而输出封面会报错。
+ \keyval{author}{文档作者}
+ 设置文档的作者,可以包含格式命令。多位作者之间可以用 \cs*{and} 命令分隔,每个作者后可用 \cs*{thanks} 命令添加致谢脚注。
+ \keyval{date}{文档日期}\Default{\cs*{today}}
+ 设置文档的日期,可以包含格式命令。默认的文档日期为当前日期 \cs*{today}。
+ \command{DeclareInstance}[\Marg{easybook}\marg{位置}\Marg{cover}\marg{键值列表}]
+ 封面模板可用 \pkg*{xtemplate} 提供的实例声明命令进行自由定制,\ref{exam:cover instance} 举例说明了定制页面中部的内容。模板由页面上、中和下三个位置的实例组成,它们的 \meta{位置} 名字分别为 \code{top}、\code{middle} 和 \code{bottom}。每个实例的属性可用 \meta{键值列表} 修改,包含的选项如下:
+ \keyval{content}{实例内容}
+ 设置实例内容,可以包含任何记号列表。通常为格式和排版内容的命令,作用范围为局部。
+ \keyval{beforecode}{实例前代码}
+ 设置实例内容前的代码,可以包含任何记号列表。通常为换页和垂直距离的命令。
+ \keyval{aftercode}{实例后代码}
+ 与 \option{before} 选项类似,设置实例内容后的代码。
+ \keychoice{align}{l,\fbox{c},r,n}
+ 设置实例内容的对齐方式,分别为左、中、右和自然对齐,自然对齐即正常的段落文本。
+ \begin{ctexexam}[labelref = exam:cover instance]
+ \DeclareInstance{easybook}{middle}{cover}
+ {
+ content =
+ {
+ \thispagestyle{empty}
+ \begin{tblr}
+ {
+ columns = c,
+ hline{2-4} = {2}{0.5pt,solid},
+ column{1} = {rightsep = 0pt}
+ }
+ 标题:& 一个文档标题 \\
+ 作者:& 张三 \\
+ 日期:& \today
+ \end{tblr}
+ },
+ beforecode = \null\vspace{3cm},
+ aftercode = \clearpage
+ }
+ \end{ctexexam}
\command{frontmatter}[\sarg\oarg{编号格式}]\Default{Roman}
前言区命令。使部分和章标题不编号,带有星号的变体命令不使用 \cs{cleardoublepage} 命令。页码 \meta{编号格式} 可设置为 \code{arabic}、\code{Alph}、\code{alph}、\code{Roman}、\code{roman} 和 \code{chinese} 形式。
\command{mainmatter}[\sarg]
@@ -943,7 +1063,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\subsection{目录命令}
\label{subsec:directory command}
-\easybook{} 改进了标准文档类中定制性较低的章节标题和图表标题目录命令。现在目录命令带有可选参数用于设置标题格式和栏数等,并且与标准文档类不同的是目录命令可在正文中\textbf{重复}使用\footnote{此功能需要\textbf{2023/06/01}以后的 \hologo{LaTeX} 内核支持。}。更多目录命令的创建和样式设置可参考\ref{subsec:catalog}。
+\easybook{} 改进了标准文档类中定制性较低的章节标题和图表标题目录命令。现在目录命令带有可选参数用于设置标题格式和栏数等,并且与标准文档类不同的是目录命令可在正文中\textbf{重复}使用\footnote{此功能需要\textbf{2023/06/01}以后的 \hologo{LaTeX} 内核支持。}。更多目录命令的创建和样式设置可参考\ref{subsec:contents}。
\begin{cnltxlist}
\command{tableofcontents}[\sarg\oarg{键值列表}\darg{代码钩子}]
章节标题目录命令,支持中英文双语标题目录输出。带有星号参数不输出目录条目上方的标题。\meta{代码钩子} 是当输出方案 \keyis{plan}{both} 时中文与英文目录之间执行的代码,可以插入设置目录样式和换页等命令。
@@ -958,7 +1078,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\command{listoflstlistings}[\sarg\oarg{键值列表}]
输出代码目录命令。带有星号参数的命令不输出目录标题。
- 如果需要部分而不是全文的目录或其它类型的目录,可以查看 \pkg*{titletoc} 宏包的相关示例。如果需要双语图表目录,可以查看 \pkg*{bicaption} 宏包的相关示例。上面目录命令的可选参数改进了原本单一的功能,也提供了配置命令 \cs{SetTocOuter} 在目录命令外设置选项默认值。
+ 如果需要局部而不是全文范围的目录或其它类型的目录,可以查看\ref{subsec:contents} 和 \pkg*{titletoc} 宏包的相关示例。如果需要双语图表目录,可以查看 \pkg*{bicaption} 宏包的相关示例。上面目录命令的可选参数改进了原本单一的功能,也提供了配置命令 \cs{SetTocOuter} 在目录命令外设置选项默认值。
\command{SetTocOuter}[\marg{键值列表}]
统一设置上述所有目录可选参数的默认值\footnote{由于目录命令通常只在文中使用一次,因此不设计为可以分别指定不同目录的参数。},其中 \meta{键值列表} 的选项如下:
\keyval{level}{标题命令}
@@ -1011,7 +1131,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{cnltxlist}
\subsection{双语章节标题和新建标题}
-双语目录标题命令目前设置了常用的三个级别,它们将中文标题正常输出,并使中英文标题加入双语目录。类似于标准文档类,这三个标题命令分别具有独立的计数器\footnote{默认情况下与普通标题命令共享使用计数器。},并对应 \cs*{the}\meta{计数器} 的值,可以用于 \option{number} 选项更改英文目录中标题的编号格式。这个功能是为国内一些高校的学位论文模板的要求设计,在一般情况和英文模式下\textbf{不需要使用}。
+双语目录标题命令将中文标题正常输出,并使中英文标题加入双语目录。目前设置了常用的三个级别,这个功能是为国内一些高校的学位论文模板的要求设计。类似于标准文档类,这三个标题命令分别具有独立的计数器\footnote{默认情况下与普通标题命令共享使用计数器。},并对应 \cs*{the}\meta{计数器} 的值,可以用于 \option{number} 选项更改英文目录中标题的编号格式。
\begin{cnltxlist}
\command{bichapter}[\sarg\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}]
\code{chapter} 章级别的双语目录标题命令,具有独立的 \code{bichapter} 计数器。
@@ -1020,7 +1140,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\command{bisubsection}[\sarg\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}]
\code{subsection} 小节级别的双语目录标题命令,具有独立的 \code{bisubsection} 计数器。
- 它们的星号变体命令使文中标题不编号,但是仍然加入双语目录,若英文标题参数空置那么仅加入中文目录而不加入英文目录,这一特点与 \cs*{chapter}\sarg{} 等命令的行为不太一样,在一些情况下会用到。可选参数是目录中的中文条目,默认与中文标题一致,正文标题过长时可用它设置在目录中显示的标题。默认情况下双语目录条目的格式是一致的,共享使用 \module*{toc} 模块的设置。提供了两个选项 \option{biname} 和 \option{binumber} 修改英文目录章标题条目的名字及编号:
+ 命令的星号参数使正文中的标题不编号,但是仍然加入双语目录,若英文标题为空那么仅加入中文目录,这一特点与 \cs*{chapter}\sarg{} 等命令的行为不太一样,在一些情况下会用到。可选参数是目录中的中文条目,默认与中文标题一致,正文标题过长时可用它设置在目录中显示的标题。默认情况下双语目录条目的格式是一致的,共享使用 \module*{toc} 模块的设置。提供了两个选项 \option{biname} 和 \option{binumber} 修改英文目录章标题条目的名字及编号:
\optpath{chapter/}\kvsplit+{biname}{英文目录前名字,英文目录后名字}\Default{Chapter\cs*{space}}
更改英文目录 \code{chapter} 级别的标题条目编号前后名字,类似于 \CTeX 的 \option*{name} 选项。
\optpath{chapter/}\key{binumber}{英文目录编号输出命令}\Default{\cs*{arabic}\Marg{chapter}}
@@ -1128,9 +1248,10 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{cnltxlist}
\subsection{列表}
+列表宏包 \pkg*{enumitem} 为系统预置的三个列表环境提供了灵活的标签以及间距控制。
\begin{cnltxlist}
\command{setlist}[\sarg\splitoarg{列表类型,级别}\marg{键值列表}]
- 列表宏包 \pkg*{enumitem} 为系统预置的三个列表环境提供了灵活的标签以及间距控制,这是设置列表环境的通用接口命令。带有星号参数的命令在原有格式上补充。\meta{列表类型} 是排序列表 \code{enumerate}、常规列表 \code{itemize} 和主题列表 \code{description} 三个基本类型,也可以是 \cs{newlist} 新建的定理环境,若不指定则设置所有列表类型的格式。若不指定 \meta{级别} 则设置所有列表级别的格式。
+ 设置列表环境的通用接口命令。带有星号参数的命令在原有格式上补充。\meta{列表类型} 是排序列表 \code{enumerate}、常规列表 \code{itemize} 和主题列表 \code{description} 三个基本类型,也可以是 \cs{newlist} 新建的定理环境,若不指定则设置所有列表类型的格式。若不指定 \meta{级别} 则设置所有列表级别的格式。
\command{newlist}[\marg{列表名}\marg{列表类型}\marg{最大级别}]
克隆基本的 \meta{列表类型} 在其基础上新建一个名为 \meta{列表名} 的列表环境。不要将 \meta{最大级别} 设置过大以避免创建过多的计数器和相关宏。
\begin{ctexexam}
@@ -1172,9 +1293,10 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{cnltxlist}
\subsection{代码}
+代码抄录宏包 \pkg*{listings} 提供了完善的代码排版功能,并且不需要前端处理器。
\begin{cnltxlist}
\command{lstdefinestyle}[\marg{代码风格}\marg{键值列表}]
- 代码抄录宏包 \pkg*{listings} 提供了完善的排版功能,不需要前端处理器。这是它的代码风格定义命令,提供大量选项对代码样式进行高度定制。可以根据需要的代码语言定义多种风格,默认使用的 \meta{代码风格} 为适用于\TeX 语言的 \code{lst-latex}。
+ 代码风格定义命令,提供大量选项对代码样式进行高度定制。可以根据需要的代码语言定义多种风格,默认使用的 \meta{代码风格} 为适用于\TeX 语言的 \code{lst-latex}。
\command{lstinline}[\oarg{键值列表}\marg{行内代码}]
行内代码抄录命令。较原生的 \cs*{verb} 命令有较大改进,具有代码语言和样式支持。
\environment{lstlisting}[\oarg{键值列表}]
@@ -1302,30 +1424,17 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{ctexexam}
\end{cnltxlist}
-\subsection{图表题注}
-\pkg*{caption} 宏包提供了多种方法来定制浮动环境(例如 \env{figure} 和 \env{table})中的标题,并可与许多其它宏包配合使用。功能包括旋转题注、侧向题注和连续题注等。
-\begin{cnltxlist}
- \command{captionsetup}[\oarg{条目名}\marg{键值列表}]
- 这是 \pkg*{caption} 宏包的接口命令,\meta{键值列表} 提供多个选项更改图表题注的格式。题注主要由三部分组成:标题标签即图表名与题注编号的组合,标题文本本身通常是内容的简短描述,以及将文本与标签分开的题注分隔符。可以在导言区设置整体格式,也可以在正文使用局部更改格式。
-\end{cnltxlist}
-
-\begin{cnltxlist}[itemsep = 0ex]
- \command{caption}[\sarg\oarg{目录标题}\marg{标题}]\default{}
- \command{captionof}[\sarg\marg{条目名}\oarg{目录标题}\marg{标题}]\default{}
- \command{bicaption}[\sarg\oarg{目录中文标题}\marg{中文标题}\oarg{目录英文标题}\marg{英文标题}]
- 题注命令 \cs{caption} 用于在图表上下方插入题注,需要在浮动环境 \env*{figure} 和 \env*{table} 中使用。在浮动环境外可以使用 \cs{captionof} 命令,第一个参数指定条目名。可以搭配 \pkg*{newfloat} 宏包创建更多类型的浮动环境并设置相应题注。\cs{bicaption} 命令可以实现中英文双语题注,需要在导言区载入 \pkg*{bicaption} 宏包,具体用法见说明文档。
-\end{cnltxlist}
-
\subsection{索引}
+\pkg*{imakeidx} 宏包增强了索引的功能,可使用户在制作和排版文档的同时制作一个或多个索引。
\begin{cnltxlist}
\command{indexsetup}[\marg{键值列表}]
- \pkg*{imakeidx} 宏包增强了索引的功能,可使用户在制作和排版文档的同时制作一个或多个索引。这是 \pkg*{imakeidx} 宏包的接口命令,用于设置索引表的整体格式。
+ 设置索引表整体格式的通用接口命令,它的 \option{level} 和 \option{headers} 选项失效。
\command{index}[\oarg{索引名}\marg{标签}]
索引标签命令的可选参数可以用不同的 \meta{索引名} 给多个索引表设置标签。
\command{makeindex}[\oarg{键值列表}]
用于导言区开启索引收集的命令。这个命令可以重复使用收集多个索引表,以不同的 \meta{索引名} 作为区分,如果仅打印一个索引表没必要重复使用。
\command{printindex}[\sarg\oarg{键值列表}]
- 打印不同索引表的命令。这个命令被重新定义,\meta{键值列表} 中的选项与\ref{subsec:directory command} 其它目录命令相同,但是接口命令 \cs{indexsetup} 的部分选项失效。
+ 打印不同索引表的命令。这个命令被重新定义,\meta{键值列表} 中的选项与\ref{subsec:directory command} 其它目录命令相同,并多出 \option{name} 选项用于指定打印索引的名字。
\keyval{name}{索引名}
指定输出名为 \meta{索引名} 的索引表,如果只使用一个索引表则默认为项目文件名不需要指定。
\end{cnltxlist}
@@ -1381,14 +1490,6 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
该命令由文档宏包 \pkg*{pdfpages} 提供。可以将其它 \code{pdf} 文档插入当前文档,比如插入其它软件制作的封面。可选参数可以指定插入页数、逻辑页和横向页面等,详情查看宏包文档。
\end{cnltxlist}
-\subsection{下划线}
-\begin{cnltxlist}[itemsep = 0ex]
- \command{uline}[\marg{下划直线}]\default{}
- \command{uuline}[\marg{下划双直线}]\default{}
- \command{uwave}[\marg{下划波浪线}]
- \pkg*{ulem} 宏包提供了多种下划线命令,可以重新定义 \cs{ULthickness} 命令控制下划线的粗细。下划线的深度由 \cs{ULdepth} 控制,默认值 \cs*{maxdimen} 是一个允许深度根据当前字体变化的特殊标志,当然也可以使用 \cs*{setlength} 设定为指定深度。
-\end{cnltxlist}
-
\appendix
\setlist[1]{}
\begin{changelog}[title = 更新日志]
@@ -1431,7 +1532,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\item 新增脚注段落文本格式定义命令 \cs{deffntpara} 和脚注间距离选项 \option{footnotesep}。
\item 新增悬挂缩进命令 \cs{hangfrom}。
\item 新增行间公式与正文上下间距选项 \option{abovedisplayskip} 和 \option{belowdisplayskip}。
- \item 新增目录文件扩展名分配命令 \cs{AllotCaptionExt}。
+ \item 新增目录文件扩展名分配命令 \cs{AssignCaptionExt}。
\end{version}
\shortversion{v = 2024aq,date = 2024/03/31,changes = 修复命令 \cs{ebifbitoc} 用于条目缩进选项 \option{tocindent} 失效的问题。}
\begin{version}[v = 2024as,date = 2024/04/19]
@@ -1443,7 +1544,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{version}
\shortversion{v = 2024aw,date = 2024/04/22,changes = 新增新建章节标题命令 \cs{NewTitleCommand} 和 \cs{NewTitleEntryCommand}。}
\shortversion{v = 2024bb,date = 2024/04/26,changes = 增加对 \pkg*{thmtools} 宏包定理环境目录 \cs{listoftheorems} 的支持。}
- \shortversion{v = 2024bk,date = 2024/05/07,changes = 新增局部题注目录分配命令 \cs{AllotPartialExt}。}
+ \shortversion{v = 2024bk,date = 2024/05/07,changes = 新增局部题注目录分配命令 \cs{AssignPartialExt}。}
\begin{version}[v = 2024bn,date = 2024/05/10]
\fixed
\item 修复 \module*{toc} 模块中带有 \option*{every} 后缀的选项不对所有已注册条目有效的问题。
@@ -1461,6 +1562,17 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\shortversion{v = 2024co,date = 2024/07/06,changes = 目录命令的可选参数支持 \CTeX 键值列表所有路径的章节标题样式选项。}
\shortversion{v = 2024cq,date = 2024/07/12,changes = 新增章节标题格式复制命令 \cs{CopyTitleFormat}。}
\shortversion{v = 2024cu,date = 2024/07/20,changes = 修复无编号的定理环境标签命令 \cs*{p@}\meta{定理名} 缺失导致报错的问题。}
+ \shortversion{v = 2024cx,date = 2024/07/28,changes = 新增将脚注置于页面底部的命令 \cs{PushFntBottom}。}
+ \begin{version}[v = 2024dh,date = 2024/08/06]
+ \changed
+ \item 取消默认载入 \pkg*{ulem} 下划线宏包。
+ \added
+ \item 使用 \pkg*{xtemplate} 宏包将封面标题命令 \cs{maketitle} 抽象为由实例组成的模板。
+ \item 新增图表题注模块 \module*{cap}。
+ \end{version}
+ \shortversion{v = 2024dq,date = 2024/09/16,changes = 修复脚注重置编号的方式为 \code{page} 时在一些换页情况下失败的问题。}
+ \shortversion{v = 2024dt,date = 2024/09/22,changes = 新增用于设置行距的命令 \cs{usestretch} 和环境 \env{usespace}。}
+ \shortversion{v = 2024ea,date = 2024/09/28,changes = 定理模块 \module*{thmt} 支持使用 \pkg*{keytheorems} 宏包。}
\end{changelog}
\nocite{*}
% \AddToHook{cmd/printindex/before}{\clearpage}
diff --git a/macros/latex/contrib/edmaths/LICENSE.txt b/macros/latex/contrib/edmaths/LICENSE.txt
new file mode 100644
index 0000000000..2244313901
--- /dev/null
+++ b/macros/latex/contrib/edmaths/LICENSE.txt
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c 2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance
+of the Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2005/12/01 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
+
diff --git a/macros/latex/contrib/edmaths/README.md b/macros/latex/contrib/edmaths/README.md
new file mode 100644
index 0000000000..4647d361eb
--- /dev/null
+++ b/macros/latex/contrib/edmaths/README.md
@@ -0,0 +1,5 @@
+# `edmaths` Report & Thesis Class
+
+A report and thesis stylesheet for easier compliance with the [university's typesetting rules](https://www.ed.ac.uk/academic-services/students/thesis-submission). See also the [_documentation_](https://foggalong.github.io/edinburgh-math-latex/edmaths-docs.pdf) and a [_compiled example_](https://foggalong.github.io/edinburgh-math-latex/example-report.pdf). To use, place the files and store them either with your .tex file(s) or in any directory that's findable by LaTeX (e.g. `$TEXINPUTS`).
+
+For more information on the wider project, including the beamer theme, [see GitHub](https://github.com/Foggalong/edinburgh-math-latex). The stylesheet [edmaths.sty](edmaths.sty) is provided under the [LaTeX Project Public License v1.3c](https://choosealicense.com/licenses/lppl-1.3c/) (LPPL) while the example [example-report.tex](example-report.tex) is provided under the [BSD Zero Clause License](https://choosealicense.com/licenses/0bsd/) (0BSD).
diff --git a/macros/latex/contrib/edmaths/docs/edmaths-docs.pdf b/macros/latex/contrib/edmaths/docs/edmaths-docs.pdf
new file mode 100644
index 0000000000..b0839ecd16
--- /dev/null
+++ b/macros/latex/contrib/edmaths/docs/edmaths-docs.pdf
Binary files differ
diff --git a/macros/latex/contrib/edmaths/docs/edmaths-docs.tex b/macros/latex/contrib/edmaths/docs/edmaths-docs.tex
new file mode 100644
index 0000000000..d4a86affb4
--- /dev/null
+++ b/macros/latex/contrib/edmaths/docs/edmaths-docs.tex
@@ -0,0 +1,282 @@
+\documentclass[12pt]{article}
+
+% This is documentation for the `edmaths` LaTeX package, maintained by
+% Josh Fogg for the University of Edinburgh. This file closely builds on
+% that provided Alan Munn for the MSU Thesis Class, `msu-thesis`. The
+% original documentation is licensed under LaTeX Project Public License
+% (LPPL) version 1.3 or later, and this documentation is licensed under
+% the LLP version 1.3c. For more information, see the GitHub repository:
+% https://github.com/Foggalong/edinburgh-math-latex
+
+\def\msuversion{0.99}
+\def\msudate{2024-08-30}
+\title{\textbf{Using the \pkg{edmaths} Report \& Thesis Class}}
+\author{\textbf{Josh Fogg}\\School of Mathematics\\The University of Edinburgh\\\texttt{\href{mailto:j.fogg@ed.ac.uk}{j.fogg@ed.ac.uk}}}
+\date{Version \msuversion\\\msudate}
+
+% basic formatting tweaks
+\usepackage[lmargin=2cm,rmargin=2cm,tmargin=3cm,bmargin=2cm]{geometry}
+\usepackage[colorlinks=true]{hyperref}
+\usepackage{enumitem}
+
+% use same fourier font available through edmaths
+\usepackage{cmap}
+\usepackage{fourier}
+\usepackage[T1]{fontenc}
+\usepackage{microtype}
+
+% setup syntax highlighting
+\usepackage{highlightlatex}
+\definecolor{whiteF0}{HTML}{F0F0F0}
+\lstset{
+ % external padding
+ aboveskip=.4em,
+ belowskip=-.2em,
+ xleftmargin=.03\textwidth,
+ xrightmargin=.03\textwidth,
+ % basic formatting
+ backgroundcolor=\color{whiteF0},
+ showstringspaces=false,
+ columns=fixed,
+ basewidth=.5em,
+ basicstyle={\fontfamily{zlmtt}\selectfont},
+ breaklines=true
+}
+
+
+% change new paragraph behaviour to no-indent and a linebreak
+\usepackage[parfill]{parskip}
+
+
+\newcommand\pkg[1]{\href{https://www.ctan.org/pkg/#1}{\color{teal}\lstinline{#1}}}
+\newcommand\key[1]{{\color{orange}\lstinline|#1|}}
+
+
+\begin{document}
+\maketitle
+\thispagestyle{empty}
+
+\section{Introduction}
+
+This is a package for use when writing reports or thesis for the \href{https://www.maths.ed.ac.uk/}{School of Mathematics} at the \href{https://www.ed.ac.uk/}{University of Edinburgh}. It provides an easy way to generate a document in \LaTeX{} which meets all the basic formatting requirements laid out by the \href{https://www.ed.ac.uk/academic-services/students/thesis-submission}{University's typesetting rules}. This means you can focus on your actual writing, rather than worrying about font spacing, margins sizes, {\it etc}.
+
+\section{Initial Setup}
+
+While this package can in theory work with many different document classes, it is designed to best work with the \pkg{report} class which should be available with any \TeX{} distribution. It can be used with any \LaTeX{} engine, including pdfLaTeX, XeTeX, or LuaTeX. While it should work with any reasonably up-to-date TeX distribution, it is tested with 2020 and later.
+
+The essential steps to setup are then:
+\begin{enumerate}
+ \item Choose a document class using \lstinline|\documentclass[<options>]{report}|, with \key{<options>}
+ \begin{enumerate}
+ \item for font size, one of \key{10pt} (default), \key{11pt}, and \key{12pt};
+ \item for sidedness, one of \key{oneside} (default) and \key{twoside}.
+ \end{enumerate}
+ \item Define information for the title page using \lstinline|\title{...}|, \lstinline|\author{...}|, and \lstinline|\date{...}|.
+ \item Load the \pkg{edmaths} package using \lstinline|\usepackage[<options>]{edmaths}|.
+\end{enumerate}
+These steps {\bf must} be done in exactly this order or the compiler will throw errors.
+
+The loading \pkg{edmaths} also loads the packages \pkg{amsmath}, \pkg{amsthm}, \pkg{amscd}, and \pkg{amssymb}, which are required by almost all mathematical publications. Through \pkg{setspace}, line spacing settings are available that only affect the body text and not footnotes and captions.
+
+The basic package has no other special requirements, but if you have certain additional packages installed then you can use some fancifying options (see below).
+
+\section{Package Options}
+
+When loading \pkg{edmaths} with
+\begin{lstlisting}
+\usepackage[<options>]{edmaths}
+\end{lstlisting}
+we can supply additional \key{<options>} as a comma-separated list of the following keywords.
+
+\subsection{Report Type}
+
+Exactly one of \key{firstyear}, \key{secondyear}, \key{thirdyear}, \key{fourthyear}, \key{phd}, \key{masterph}, or \key{mastersc} for postgrad projects, or exactly one of \key{mmath} or \key{y4project} for undergraduate projects.
+
+This prints the correct degree name or report type on the cover page. If you do not specify any of these, for example if your desired type is not listed, set \lstinline|\degreetext| manually before including this package. For example
+\begin{lstlisting}
+\newcommand{\degreetext}{Internal Report}
+\end{lstlisting}
+will produce a document labelled as an `Internal Report'.
+
+\subsection{Line Spacing}
+
+At most one of \key{single} (default), \key{onehalf}, or \key{double}. This sets the line spacing of the body text to single, one-half and double spaced, respectively. Check out \pkg{setspace} for custom spacing options.
+
+\subsection{Fonts}
+
+For better or worse, by default it uses \LaTeX's default font, \href{https://en.wikipedia.org/wiki/Computer_Modern}{Computer Modern}. However by specifying at most one of the font options it's to change this.
+
+Using \key{fourier} provides much improved typography by activating the \pkg{fourier} font package (based on Adobe's Utopia family) along with the \pkg{cmap} and \pkg{microtype} packages. All these dependencies must be met to use this option.
+
+Strictly speaking the thesis guidelines require a sans serif font, though it's not typically enforced for mathematics. However, if you do want to use one, \key{cmbright} sets the font to \href{https://tug.org/FontCatalogue/computermodernbright/}{Computer Modern Bright}. This requires the \pkg{cmbright}, \pkg{cmap}, \pkg{microtype}, and \pkg{fontenc} packages.
+
+\subsection{Links}
+
+Using \key{hyperref} creates a PDF output with clickable, all-black links. This depends on \pkg{hyperref} and \pkg{xcolor}. The packages are set up with sane default options, but to modify the behaviour, simply use the \lstinline|\hypersetup| command; see the \pkg{hyperref} documentation for details.
+
+If in addition \key{colour} is used, this sets clickable links to have a sane default colour (sepia for internal links, blue for external URLs).
+
+\subsection{Headers}
+
+If the \pkg{fancyhdr} package is installed, using \key{fancyhdr} creates nice page headers and footers (with sane default settings); to modify this behaviour, simply use the commands described in the \pkg{fancyhdr} documentation.
+
+\section{Usage}
+
+Once \pkg{edmaths} is set up, the following additional formatting commands and environments become available:
+
+\begin{itemize}
+ \item \lstinline|\maketitle| to create the cover page,
+ \item \lstinline|\declaration{...}| to create the declaration,
+ \item \lstinline|\dedication{...}| for a dedication page ({\it e.g.\/} `For Alex', not acknowledgements),
+ \item \lstinline|\begin{abstract}...\end{abstract}| for the abstract,
+ \item \lstinline|\begin{laysummary}...\end{laysummary}| for the \href{https://www.ed.ac.uk/sites/default/files/atoms/files/lay_summary_in_theses.pdf}{lay summary},
+ \item \lstinline|\begin{acknowledgements}...\end{acknowledgements}| for any acknowledgements,
+ \item \lstinline|\tableofcontents| for the table of contents.
+\end{itemize}
+
+\subsection{Declarations}
+
+While using \lstinline|\declaration{}| will give you a stock declaration page, in most cases this will need tailoring to the specific of your thesis \href{https://www.ed.ac.uk/sites/default/files/atoms/files/thesis_signed_declaration.pdf}{per university requirements}. For example, if your thesis includes previously-published work, it should be declared on this page.
+
+This can be done by for example,
+\begin{lstlisting}
+\declaration{
+ I declare that this thesis has been composed solely by myself
+ and that it has not been submitted, in whole or in part, in any
+ previous application for a degree. Except where stated otherwise
+ by reference or acknowledgement, the work presented is entirely
+ my own.
+}
+\end{lstlisting}
+
+\subsection{Abstracts}
+
+If you wish to redefine the title of the abstract, this can be done by including
+\begin{lstlisting}
+\renewcommand{\abstractname}{My New Title}
+\end{lstlisting}
+anywhere before \lstinline|\begin{document}|.
+
+\subsection{Long Titles}
+
+If your \lstinline|\title| is quite long and you're using \pkg{fancyhdr}, you may also wish to define a \lstinline|\shorttitle{...}| to prevent wrapping within the header. This {\bf must} be done after loading \pkg{edmaths} else the compiler will throw an error.
+
+\subsection{Year 4 Projects}
+
+When using the \key{y4project} option, the command \lstinline|\yfourdeclaration{...}| can be used right after the abstract to print a declaration at the bottom of that page; the argument of this command is the name of the particular degree.
+
+\subsection{Basic Example}
+
+Below is a simple example of how this might be put together in a year one PhD report.
+
+\begin{lstlisting}
+\documentclass[10pt]{report}
+
+\title{The title of my first year report}
+\author{My name}
+\date{YYYY}
+
+\usepackage[firstyear]{edmaths}
+
+
+\begin{document}
+
+\maketitle
+
+\begin{abstract}
+ My abstract.
+\end{abstract}
+
+\tableofcontents
+
+\chapter{First Chapter}
+
+\section{Section Name}
+
+\chapter{Second Chapter}
+
+\appendix
+
+\chapter{First Appendix}
+
+\end{document}
+\end{lstlisting}
+
+A more complicated example for a PhD thesis is packaged with \pkg{edmaths} and \href{https://github.com/Foggalong/edinburgh-math-latex/blob/main/example-report.tex}{available here}. What this looks like compiled can be \href{https://foggalong.github.io/edinburgh-math-latex/example-report.pdf}{viewed here}.
+
+\section{Additional Tips}
+
+Below is an assortment of additional advice that may be useful when formatting a thesis or report. If you've got additional tips which you think would be useful to share, do share on the \href{https://github.com/Foggalong/edinburgh-math-latex}{GitHub}.
+
+\subsection{Spacing}
+
+When using larger line spacing than single spaced, you might want to single-space your table of contents, {\it etc}. For details, see the documentation for \pkg{setspace}, but to achieve this you could use \lstinline|{\singlespacing\tableofcontents}| and similar for \lstinline|\listoffigures| and \lstinline|\listoftables|.
+
+If you like custom line spacing, place \lstinline|\newcommand{\stretchfactor}{<x>}| before calling this package, where \key{<x>} is the line spacing factor (\key{1} gives single spacing).
+
+Put \lstinline|\flushbottom| right after \lstinline|\begin{document}| to obtain vertically justified pages.
+
+The very ``brave'' can also add \lstinline|\setlength{\parskip}{0pt}| in the preamble to remove any vertical rubber space between paragraphs, thus enforcing a strict grid layout. If you encounter underful boxes, add \lstinline|\vfill| as needed, most likely after headings ({\it e.g.\/} use \lstinline|\chapter{Introduction}\vfill|.).
+
+\subsection{Front Matter}
+
+Use \lstinline|\listoftables| and \lstinline|\listoffigures| to create a reference of all table and figure environments. Some may tell you that this is actually a requirement for a PhD thesis.
+
+Use \lstinline|\pagenumbering{roman}| and \lstinline|\pagenumbering{arabic}| to get different styles of page numbers for the front matter and make it all fancy like.
+
+If desired, use \lstinline|\addcontentsline| to add otherwise unreferenced chapters ({\it e.g.\/} the table of contents itself, the list of figures, the list of tables or the index) to the table of contents.
+
+\subsection{Fonts}
+
+If you don't want to use any of the fonts available by default simply do not specify \key{fourier} or \key{cmbright} option, and instead load \pkg{fontenc}, \pkg{cmap}, \pkg{microtype} and your font package as described in the font package's documentation.
+
+Use the \pkg{ccaption} package to customise the way that captions under figures and tables appear ({\it e.g.\/} if you prefer them to use a sans-serif font).
+
+\subsection{Subtitles}
+
+You may also wish to give your document a subtitle. Be aware that it is ambiguous whether this is allowable in the thesis guidelines, but it may be done by adding formatting commands within the title command, as below.
+
+\begin{lstlisting}
+\title{Underwater Basket Weaving \\
+ \large Analysing the optimal depth for willow rods}
+\author{Author Name}
+\date{YYYY}
+
+\usepackage[phd]{edmaths}
+\end{lstlisting}
+
+If also using \key{fancyhdr}, remember to also add \lstinline|\shorttitle{Underwater Basket Weaving}| after loading \pkg{edmaths} also for consistency with your headers.
+
+\subsection{Overleaf}
+
+As a student or staff member at the University of Edinburgh you have access to \href{https://www.ed.ac.uk/information-services/computing/desktop-personal/software/main-software-deals/other-software/overleaf}{Overleaf Professional}! Do make use of this, it alleviates many of the headaches which come with using \LaTeX{} across multiple computers, which you surely will..
+
+\subsection{Archiving your thesis for the future}
+
+The current version of \pkg{edmaths} class satisfies the typesetting requirements at any one time. Given these requirements change, you may find that if you need to recompile your thesis after you have graduated that the formatting changes. To avoid this, I'd recommend saving an archived version of the \href{https://github.com/Foggalong/edinburgh-math-latex/blob/main/edmaths.sty}{\lstinline|edmaths.sty|} file in the same folder as your thesis file. You only need to do this once you have completely finished your thesis however; there's no need to do it during the writing process.
+
+\section{Troubleshooting}
+
+I'm happy to \href{mailto:j.fogg@ed.ac.uk}{answer emails} or \href{https://github.com/Foggalong/edinburgh-math-latex/issues/new?assignees=&labels=report&projects=&template=report-issue.md&title=}{GitHub issues} about formatting issues with the class, {\bf especially} when you are in the final stages of formatting your dissertation or thesis. God knows that time is already stressful enough as it is. However, please keep in mind:
+
+\begin{itemize}
+ \item I do this as a volunteer on the side of all my other work. This is not something the university pay me for, just something I did because I identified the need.
+
+ \item If you have general \LaTeX{} questions that are not specifically related to \pkg{edmaths}, please try to find answers elsewhere. Both \href{https://tex.stackexchange.com/}{tex.stackexchange.com} and \href{https://www.overleaf.com/learn}{Overleaf} are excellent resources.
+
+ \item Please make sure you have the latest version of \pkg{edmaths}, it may be your issue has already been fixed. If in doubt, check the log file and compare it with \href{https://ctan.org/pkg/msu-thesis?lang=en}{CTAN} and \href{https://github.com/Foggalong/edinburgh-math-latex}{GitHub}.
+
+ \item If you are using \href{https://www.overleaf.com}{Overleaf} , {\bf please} check the log file for errors, and fix them {\it before} you send me a sample document. By default Overleaf produces an output even when the document has lots of errors, so it could be that other errors you haven't noticed are obscuring the problem you're actually trying to fix.
+\end{itemize}
+
+
+
+If you are using the class, please take a moment to fill out my \href{https://forms.gle/bm2AUzthFxW2naK36}{anonymous usage survey}. Thanks! You should be signed into your MSU Google account to access the form, but the form itself is anonymous.
+
+\section{Acknowledgements}
+
+The original \pkg{edmaths} was written by \href{https://github.com/tkoeppe}{Thomas K\"oppe} in 2007 and freely provided under the terms of the \href{https://choosealicense.com/licenses/lppl-1.3c/}{\LaTeX{} Project Public License v1.3c}. From 2020 onwards it has been maintained by \href{https://www.maths.ed.ac.uk/~jfogg/}{Josh Fogg} (me). Thanks also to \href{https://www.linkedin.com/in/adkbeckett}{Andrew Beckett} for his contribution in improving compliance, particularly around declarations which I'd missed entirely.
+
+Thanks to you too for using \pkg{edmaths}! I'd love to hear how you got on working with it, even if there weren't any specific issues. Just \href{mailto:j.fogg@ed.ac.uk}{shoot me an email}, it always makes my day!
+
+\end{document}
diff --git a/macros/latex/contrib/edmaths/edmaths.sty b/macros/latex/contrib/edmaths/edmaths.sty
new file mode 100644
index 0000000000..cbfd89a5be
--- /dev/null
+++ b/macros/latex/contrib/edmaths/edmaths.sty
@@ -0,0 +1,258 @@
+%% Package `edmaths' v0.99
+%% File edmaths.sty
+%% Copyright 2024 Josh Fogg
+%%
+%% edmaths.sty is a LaTeX style file for typesetting reports and theses in the
+%% School of Mathematics at the University of Edinburgh. Suitable for use for
+%% theses, yearly reports, and undergraduate projects. Part of the more general
+%% `edmaths' package. See README.md for usage instructions.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3 of this license or (at
+%% your option) any later version.
+%%
+%% The latest version of this license is in http://latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained' and the current
+%% maintainer of this work is Josh Fogg. Originally written by Thomas Koeppe in
+%% 2007/07, it has since been updated by Josh Fogg from 2020 onwards.
+%%
+%% This work consists of the file edmaths.sty.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{edmaths}[2024-08-30 Edinburgh maths thesis/report style v0.99]
+\RequirePackage{calc,ifthen,setspace,amsmath,amsthm,amscd,amssymb}
+
+
+
+% PAGE SIZE AND MARGINS
+% These settings control the size of the page and its margins. All measurements are
+% compliant wih the school's typesetting requirements.
+
+\setlength{\paperheight}{297mm} % A4 Paper
+\setlength{\paperwidth}{210mm} %
+\setlength{\oddsidemargin}{14.6mm} % Left/Inside: 4.0cm (rel. -1in)
+\setlength{\evensidemargin}{-.4mm} % Right/Outside: 2.5cm (rel. -1in)
+\setlength{\topmargin}{-17.4mm} % \
+\setlength{\headheight}{6mm} % | Top: 2.0cm (rel. -1in), out of which 6mm for the header
+\setlength{\headsep}{6mm} % /
+\setlength{\textwidth}{145mm} % Margins: 2.5cm + 4cm
+% Textheight delayed until we know the line spacing.
+
+% The following is removed in favour of the `report' class options "oneside/twoside".
+% \@twosidefalse \@mparswitchfalse % Single-sided by default
+
+
+
+% PACKAGE OPTIONS
+% These options can be selected wihin \usepackage[...]{edmaths} to modify the
+% appearance of different parts of the document.
+
+% Options relating to external packages
+\newboolean{with-fourier} % Use the `fourier' package for Adobe Utopia font
+\newboolean{with-cmbright} % Use the `cmbright' package for Computer Modern Bright (sans serif) font
+\newboolean{with-comicsans} % :)
+\newboolean{with-hyperref} % Use the `hyperref' package for hyperlinks and bookmarks, all black
+\newboolean{with-colour} % Add sane colours to the hyperref links
+\newboolean{with-fancyhdr} % Use the `fancyhdr' package to provide header and footer
+\DeclareOption{fourier}{\setboolean{with-fourier}{true}}
+\DeclareOption{cmbright}{\setboolean{with-cmbright}{true}}
+\DeclareOption{comicsans}{\setboolean{with-comicsans}{true}}
+\DeclareOption{hyperref}{\setboolean{with-hyperref}{true}}
+\DeclareOption{colour}{\setboolean{with-colour}{true}}
+\DeclareOption{fancyhdr}{\setboolean{with-fancyhdr}{true}}
+
+% Options relating to document type (thesis, report, etc)
+\ifthenelse{\isundefined{\degreetext}}{\newcommand{\degreetext}{Specify a degree option!}}{}
+\DeclareOption{phd}{\renewcommand{\degreetext}{Doctor of Philosophy}}
+\DeclareOption{firstyear}{\renewcommand{\degreetext}{First-Year Report\\Maxwell Institute Graduate School}}
+\DeclareOption{secondyear}{\renewcommand{\degreetext}{Second-Year Report\\Maxwell Institute Graduate School}}
+\DeclareOption{thirdyear}{\renewcommand{\degreetext}{Third-Year Report\\Maxwell Institute Graduate School}}
+\DeclareOption{y4project}{\renewcommand{\degreetext}{Year 4 Project\\School of Mathematics}}
+\DeclareOption{mmath}{\renewcommand{\degreetext}{Master of Mathematics with Honours \\ School of Mathematics}}
+\DeclareOption{masterph}{\renewcommand{\degreetext}{Master of Philosophy}}
+\DeclareOption{mastersc}{\renewcommand{\degreetext}{Master of Science by Research}}
+
+% Options relating to stretchfactor (used for margin spacing)
+\ifthenelse{\isundefined{\stretchfactor}}{\newcommand{\stretchfactor}{1}}{}
+\DeclareOption{single}{\renewcommand{\stretchfactor}{1}}
+\DeclareOption{onehalf}{\renewcommand{\stretchfactor}{1.5}}
+\DeclareOption{double}{\renewcommand{\stretchfactor}{2}}
+
+% Options relating to having single or double sided documents
+% \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} % Single-sided by default
+% \DeclareOption{twosides}{\@twosidetrue \@mparswitchtrue}
+
+
+\ProcessOptions
+
+% If with-fourier selected, use the Adobe Utopia font.
+\ifthenelse{\boolean{with-fourier}}{
+ \RequirePackage{cmap}
+ \RequirePackage{fourier}
+ \RequirePackage[T1]{fontenc}
+ \RequirePackage{microtype}
+} {}
+
+% If with-cmbright selected, use the (sans-serif) Computer Modern Bright font.
+\ifthenelse{\boolean{with-cmbright}}{
+ % NOTE if it doesn't compile, make sure you have CM Bright installed!
+ \RequirePackage{cmap}
+ \RequirePackage{cmbright}
+ \RequirePackage[T1]{fontenc}
+ \RequirePackage{microtype}
+} {}
+
+% :)
+\ifthenelse{\boolean{with-comicsans}}{
+ % NOTE must be compiled with xelatex or luatex
+ \usepackage{fontspec}
+ \setmainfont{Comic Sans MS}
+} {}
+
+% If with-hyperref selected, configure its default settings
+\ifthenelse{\boolean{with-hyperref}}{
+ \RequirePackage[dvipsnames]{xcolor}
+ \RequirePackage[pdftitle={\@title}, pdfauthor={\@author}, pdfcreator={PDFLaTeX with edmaths}, pdfpagelayout=OneColumn, colorlinks=true, linkcolor=black, urlcolor=black, citecolor=black]{hyperref}
+ % If with-colour selected, use it to make hyperlinks blue not black
+ \ifthenelse{\boolean{with-colour}}{
+ \hypersetup{linkcolor=Sepia, urlcolor=NavyBlue, citecolor=Sepia}
+ } {}
+} {}
+
+% If with-fancyhdr selected, use it to provide fancier headers and footers
+\ifthenelse{\boolean{with-fancyhdr}}{
+ \RequirePackage{fancyhdr}
+ % Define a short title for use in headers if title is too long. Default is the same as title. Usage: use command \shortitle{<your short title here>} *after* calling edmaths.
+ \newcommand\@shorttitle{\@title}
+ \newcommand\shorttitle[1]{\renewcommand\@shorttitle{#1}}
+ \pagestyle{fancy}
+ \fancyhf{}
+ % if \fancyhead or \fancyfoot are used without `twoside` in \documentclass{...} then
+ % fancyhdr will complain that the 'E' used here is useless, so need to condition.
+ \if@twoside%
+ %%% put the stuff for true here (twoside=true)
+ \fancyhead[RO,LE]{\thepage}
+ \fancyfoot[RO,LE]{\thepage}
+ \fancyhead[LO]{\it\@shorttitle}
+ \fancyhead[RE]{\@author}
+ \fancyfoot[RE,LO]{}
+ \else%
+ %%% put the stuff for false here (twoside=false)
+ \fancyhead[LO]{\it\@shorttitle~~$\cdot$~~\@author}
+ \fancyhead[R]{\thepage}
+ \fancyfoot[R,LO]{}
+ \fi%
+} {}
+
+
+
+% BODY HEIGHT
+% Set up the text body height. For the text height, we calculate the largest number of
+% lines that gives us no more than 4cm bottom margin. This depends on the line spacing,
+% which we need first.
+
+\setstretch{\stretchfactor}
+
+% Debug only: In the next line, \XXXfactor contains the number of lines on a text-only page.
+% \newlength{\XXXunit}\setlength{\XXXunit}{1pt}\newlength{\XXXfactor}\setlength{\XXXfactor}{1pt + ((672pt - \topskip) / \baselineskip) * \XXXunit}
+\newlength{\scratchlength}\setlength{\scratchlength}{\topskip + ((672pt - \topskip) / \baselineskip) * \baselineskip + \baselineskip}
+\setlength{\textheight}{\scratchlength}
+
+
+
+% DOCUMENT COMPONENTS
+% Provides the formatting for the required document components. Specifically, these are
+% the titlepage, declaration, dedication, abstract, and undergraduate project fulfilment.
+
+\renewcommand{\maketitle}{%
+ \begin{titlepage}
+ \singlespacing
+ \addtolength{\oddsidemargin}{-0.75cm}
+ \begin{center}
+ \null\vskip 4.1cm
+ \begin{minipage}[t][7.6cm]{10.5cm}
+ \begin{center}
+ {\LARGE\textbf{\@title}\par}
+ {\Large\textit{\@author}\par}
+ \end{center}
+ \end{minipage}
+ \vfill
+ {\Large\degreetext \par The University of Edinburgh \par\@date \par}
+ \end{center}
+ \end{titlepage}
+ % For two-sided documents it's required that a blank page follow the title page. For
+ % one-sided documents it's required that the title page contribute to the page count.
+ \if@twoside
+ \thispagestyle{empty}
+ \cleardoublepage
+ \else
+ \addtocounter{page}{1}
+ \fi
+}
+
+
+% Declaration style for everything except year 4 projects
+\newcommand{\declaration}[1]{
+ % Doesn't need a chapter number or adding to the contents page
+ \chapter*{Declaration}
+ % Must always be single spaced
+ \begin{singlespace}
+ \def\param{#1}
+ \ifx\param\empty
+ I declare that this thesis was composed by myself
+ and that the work contained therein is my own,
+ except where explicitly stated otherwise in the text.
+ \else
+ {#1}
+ \fi
+ \end{singlespace}
+ {\raggedleft\vspace{2cm}(\textit{\@author})}
+}
+
+
+% Declaration style for year 4 project, argument is degree programme (e.g. MMath)
+\newcommand{\yfourdeclaration}[1]{
+ \vfill
+ \noindent
+ This project report is submitted in partial fulfilment
+ of the requirements for the degree of \textit{#1}.
+}
+
+
+\renewenvironment{abstract}{
+ % Abstracts don't need a chapter number...
+ \chapter*{\abstractname}
+}{
+ % ...but do need adding to the contents page.
+ \addcontentsline{toc}{chapter}{\abstractname}
+}
+
+
+\newenvironment{laysummary}{
+ % A lay summary is required for PhD theses and is not included in the page count. We treat it in a similar way to the abstract here.
+ \chapter*{Lay Summary}
+}{
+ \addcontentsline{toc}{chapter}{Lay Summary}
+}
+
+
+\newenvironment{acknowledgements}{
+ % Acknowledgements environment similar to abtract and lay summary.
+ \chapter*{Acknowledgements}
+}{
+ \addcontentsline{toc}{chapter}{Acknowledgements}
+}
+
+
+\newcommand{\dedication}[1]{%
+ % Handled dedications (e.g. 'For Alex', not acknowledgements)
+ \clearpage
+ \thispagestyle{plain}
+ \vspace*{7cm}
+ \begin{center}
+ \Large\it #1
+ \end{center}
+} \ No newline at end of file
diff --git a/macros/latex/contrib/edmaths/example-references.bib b/macros/latex/contrib/edmaths/example-references.bib
new file mode 100644
index 0000000000..cd65755781
--- /dev/null
+++ b/macros/latex/contrib/edmaths/example-references.bib
@@ -0,0 +1,10 @@
+ This is an example biblography used in example-presentation.tex and
+ example-report.tex, examples of the edmaths Beamer and report styles
+ respectively. When creating a biblography you might find these bibtex
+ templates useful: https://verbosus.com/bibtex-style-examples.html
+
+@misc{koeppe2007,
+ title = {Package `edmaths'},
+ author = {Thomas Koeppe},
+ year = {2007}
+}
diff --git a/macros/latex/contrib/edmaths/example-report.tex b/macros/latex/contrib/edmaths/example-report.tex
new file mode 100644
index 0000000000..2dae5e22a7
--- /dev/null
+++ b/macros/latex/contrib/edmaths/example-report.tex
@@ -0,0 +1,79 @@
+%% This file is an example of using edmaths.sty to style a PhD thesis that
+%% complies with University of Edinburgh typesetting rules. While the
+%% style is LPPL 1.3 licensed, this example is given under a 0BSD license
+%% (https://choosealicense.com/licenses/0bsd), meaning it can be freely
+%% used, copied, modified, and/or redistributed with or without attribution.
+%% See README.md or https://github.com/Foggalong/edinburgh-math-latex for
+%% instructions on using the style.
+
+\documentclass[12pt,twoside]{report}
+
+\title{Thesis Title}
+\author{Author Name}
+\date{YYYY}
+
+\usepackage[phd,fourier,hyperref,colour,fancyhdr]{edmaths}
+
+%\shorttitle{Short title} % You can optionally define a shorter version of your title for the headers if you use the fancyhdr option.
+
+
+\begin{document}
+
+\flushbottom
+\pagenumbering{roman}
+
+\maketitle
+
+\begin{declaration}
+ {I declare that this thesis has been composed solely by myself and that it has not been
+ submitted, in whole or in part, in any previous application for a degree. Except where
+ stated otherwise by reference or acknowledgement, the work presented is entirely my
+ own.}
+ % Required for PhD theses. This declaration should be tailored to your thesis. If your thesis includes previously-published work, it should be declared on this page. See https://www.ed.ac.uk/sites/default/files/atoms/files/thesis_signed_declaration.pdf.
+\end{declaration}
+
+\begin{abstract}
+ The abstract goes here.
+\end{abstract}
+
+\begin{laysummary}
+ A lay summary is required for PhD theses. See \href{https://www.ed.ac.uk/sites/default/files/atoms/files/lay_summary_in_theses.pdf}{this page on the University website}.
+\end{laysummary}
+
+\dedication{In memory of my sanity.}
+
+\begin{acknowledgements}
+ I'd like to thank my supervisor for putting up with me for four years.
+\end{acknowledgements}
+
+
+\tableofcontents
+% Uncomment to add 'Contents' entry to contents page
+% \addcontentsline{toc}{chapter}{Contents}
+
+\newpage
+\pagenumbering{arabic}
+
+\chapter{First Chapter}
+
+This is an example of a report made using the \texttt{edmaths} stylesheet~\cite{koeppe2007}, which is designed to ensure compliance with the University of Edinburgh's typesetting requirements for reports and theses.
+
+\section{First section}
+
+\section{Second section}
+
+
+\chapter{Second Chapter}
+
+\appendix
+
+\chapter{First Appendix}
+
+
+\bibliography{example-references}
+\addcontentsline{toc}{chapter}{Bibliography}
+% Choose a reference style from https://verbosus.com/bibtex-style-examples.html
+\bibliographystyle{ieeetr}
+% Or use the `amsrefs' package, https://ams.org/tex/amsrefs.html
+
+\end{document}
diff --git a/macros/latex/contrib/enverb/README.md b/macros/latex/contrib/enverb/README.md
new file mode 100644
index 0000000000..2c035b8eb6
--- /dev/null
+++ b/macros/latex/contrib/enverb/README.md
@@ -0,0 +1,34 @@
+-------------------------------------------------------------------------------
+# `enverb` -- read an environment verbatim
+
+Version 2024-08-28 v1.0
+
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+
+Hosted on the Island of TeX at https://gitlab.com/islandoftex/texmf/enverb
+
+-------------------------------------------------------------------------------
+
+Copyright (C) 2023-2024 Jonathan P. Spratte
+
+This work may be distributed and/or modified under the conditions of the LaTeX
+Project Public License (LPPL), either version 1.3c of this license or (at your
+option) any later version. The latest version of this license is in the file:
+
+ http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status) by
+ Jonathan P. Spratte
+
+-------------------------------------------------------------------------------
+
+## Summary of Contents
+
+`enverb` provides means to read the contents of a user-defined environment
+verbatim. It also provides facilities to then typeset them inside a
+listing-environment provided by LaTeX or another package or to evaluate them as
+normal LaTeX code. This gives one the full flexibility of LaTeX to customise the
+looks of documentation and examples without the need of any temporary files.
+Additionally you can define your own processing of the contents, either line
+oriented or processing the entire contents at once, however you see fit.
diff --git a/macros/latex/contrib/enverb/doc-enverb.tex b/macros/latex/contrib/enverb/doc-enverb.tex
new file mode 100644
index 0000000000..c0c578f0ef
--- /dev/null
+++ b/macros/latex/contrib/enverb/doc-enverb.tex
@@ -0,0 +1,47 @@
+\subsection{Grabbing an Environment Verbatim}
+\begin{function}{\enverb}
+ \begin{syntax}
+ \cs{enverb}\marg{key=value}\oarg{key=value}
+ \cs{enverb}\meta{*}\marg{key=value}
+ \end{syntax}
+ This function will store the contents of the enclosing environment verbatim
+ inside of \cs{enverbBody}. It should be the last thing you invoke inside the
+ |\begin| code of your environment and mustn't be enclosed in any nested
+ environment. Both the mandatory and the optional \meta{key=value} argument are
+ parsed by \cs{enverb} -- see \autoref{sec:keys} about the specifics of this.
+ The mandatory argument is meant for a package/code developer to assign the
+ sensible default values for the envisioned functionality and always parsed
+ inside the keyset of \cs{enverb}, while the optional one is meant to be used
+ by the user and as such should be the first thing inside the enclosing
+ environment (if the user wants to use an optional argument).\par
+ \cs{enverb} sets the special characters
+ \begingroup
+ \def\do#1%
+ {%
+ \ifx\ #1\else
+ , \texttt{\csname @gobble\expandafter\endcsname\string#1}%
+ \fi
+ }%
+ \csname @secondoftwo\expandafter\endcsname\romannumeral`\^^@\dospecials
+ \endgroup
+ \ to the category code 12 (other), and makes both spaces and tabulators active
+ tokens. By default each line break will be a category code 12 carriage return
+ (character code 13), but see the |eol| option in \autoref{sec:keys}.\par
+ A line that contains only whitespace on input will be output as an empty
+ line.\par
+ The \cs{enverb} syntax of the optional argument has a few peculiarities. It is
+ scanned for the opening bracket either on the same line as the |\begin|
+ statement of the enclosing environment, or on any subsequent line until a
+ non-whitespace character is found. The optional argument is read using the
+ \enquote{normal} (so surrounding) category code regime, but it is scanned for
+ it in a way that the first token is still read verbatim if no optional
+ argument was given.\par
+ The first non-whitespace token that's not an opening bracket must not be found
+ on the same line as the |\begin| statement, and if there was an optional
+ argument there shouldn't be any non-whitespace token trailing it in that line.
+ Additionally there should be no non-whitespace material following the |\end|
+ statement (anything preceding it in the same line is for the most part
+ ignored; |\begin| and |\end| are not balanced, the first |\end| with the
+ correct environment as argument terminates scanning).\par
+ The starred version of \cs{enverb} doesn't search for an optional argument.
+\end{function}
diff --git a/macros/latex/contrib/enverb/doc-examples.tex b/macros/latex/contrib/enverb/doc-examples.tex
new file mode 100644
index 0000000000..043890dc10
--- /dev/null
+++ b/macros/latex/contrib/enverb/doc-examples.tex
@@ -0,0 +1,178 @@
+\subsection{Examples}
+
+The following preamble should work for all of the examples in this section
+(except for the last one, which can be placed as is in the preamble since it
+loads all the packages it needs).
+\begin{ex}[no-tcb]
+ \documentclass{article}
+
+ \usepackage{enverb}
+ \usepackage{color}
+ \usepackage{multicol}
+ \usepackage{listings}
+\end{ex}
+
+\subsubsection{A Boxed Verbatim Display}
+Defining a boxed verbatim macro is pretty simple, we just need to set up the
+|bol| and |eol| hooks such that line breaks are respected, the rest of the setup
+already works with \LaTeX's default definition for active spaces (and tabs).
+\begin{ex}[store,no-tcb]
+ \newenvironment{myenv}
+ {\enverb{bol=\strut, eol=\strut\par}}
+ {%
+ \par
+ \medskip
+ \noindent
+ \fbox
+ {%
+ \parbox
+ {\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
+ {%
+ \raggedright\frenchspacing\ttfamily
+ \enverbBody
+ }%
+ }%
+ \par
+ \medskip
+ }
+\end{ex}
+The probably most complicated part there is the calculation of the |\parbox|'s
+width, which is just a line width compensated by the space taken up by |\fbox|.
+
+If we now use this environment we get a nice display of our verbatim contents
+(you might want to play with this and see what happens if your input lines are
+longer than a |\linewidth|; also note that the spaces after |\begin| and |\end|
+are optional just like within the normal category code regime, \envlogo\ will
+still find the end of its scope).
+\begin{ex}[restore]
+ \begin {myenv}
+ \This is a%
+ \begin{environment}
+ that looks \good
+ \end {myenv}
+\end{ex}
+
+\subsubsection{A Page-Breakable Boxed Verbatim Display}
+The previous example was boxed, lets put that to the next level. We can also
+achieve page- (and column-)breakable boxed verbatim environments. The simple
+minded trick here is to draw only line segments at the start and end of each
+line using the |\vrule| primitive. As a result this will look horribly wrong for
+lines longer than a single output line, but that would require too much hassle
+(we just pay attention on our input formatting).
+
+As an added bonus this should have line counters at the start of each line. For
+that we first define a little helper.
+\begin{ex}[store,no-tcb]
+ \newcount\myline
+ \newcommand\linecounting
+ {%
+ \advance\myline1
+ \textcolor[gray]{.7}{\footnotesize\the\myline}%
+ \quad
+ }
+\end{ex}
+Next we can define our environment. The |bol| and |eol| hooks look similar to
+the previous example, but this time they got some added contents for the
+additional formatting. Also, we borrow some code from \LaTeX's starred
+\env{verbatim} to make spaces visible (since they are active in |\enverb| this
+is also pretty straight forward).
+\begin{ex}[store,no-tcb]
+ \newenvironment{myenv}
+ {%
+ \enverb
+ {
+ bol=\noindent\strut\vrule\hskip\fboxsep\linecounting
+ ,eol=\hfill\hskip\fboxsep\vrule\strut\par
+ }%
+ }
+ {%
+ \medskip
+ \hrule
+ \ttfamily\frenchspacing
+ \UseName{@setupverbvisiblespace}\UseName{@vobeyspaces}%
+ \enverbBody
+ \hrule
+ \medskip
+ }
+\end{ex}
+The entire result can then be used with ease.
+\begin{ex}[restore,same-line=.38]
+ \begin{multicols}{2}
+ Text above
+ \begin{myenv}
+ This \is
+ {an} $example$
+ ^of verbatim_
+ input\, being
+ displayed boxed.
+ \end{myenv}
+ Text below
+ \end{multicols}
+\end{ex}
+
+\subsubsection{The Real Deal -- Using the Body Twice}
+All of the above is just pretty playthings that are easily possible with
+\envlogo\ (and with relative few lines of code) though most likely better done
+by more full fledged packages like \pkg{listings} or similar. The original
+reason for all this was to gain control over both the listing and typeset result
+for code documentation. A simple example could be the following:
+\begin{ex}[store,no-tcb]
+ \newenvironment{myenv}
+ {\enverb{}}
+ {%
+ \par\noindent
+ \begin{minipage}{0.48\linewidth}
+ \enverbListing{lstlisting}{}
+ \end{minipage}%
+ \hfill
+ \colorbox{yellow}
+ {%
+ \begin{minipage}{\dimexpr0.48\linewidth-2\fboxsep\relax}
+ \enverbExecute
+ \end{minipage}%
+ }%
+ \par
+ }
+\end{ex}
+Which if used looks like the following (admittedly not that pretty):
+\begin{ex}[restore]
+ \begin{myenv}
+ This%
+ is%
+ great.%
+ \end{myenv}
+\end{ex}
+
+\subsubsection{\envlogo's Style}
+And if you wondered, you guessed it, all examples in this documentation are
+typeset using an \envlogo\ derived environment with a few bells and whistles
+more (for instance collecting material, typesetting the verbatim listing, but
+executing it together with a later code block).
+
+The following is a complete listing of everything that sets up the looks of this
+documentation's example blocks. Note that the macros starting with |\enverb@ex@|
+are not internals of \envlogo\ but exclusive to the code formatting the
+examples.
+\begin{exwrap}{breakable}
+ \footnotesize
+ \lstinputlisting{preamble-examples.tex}
+\end{exwrap}
+
+And if we use that we can do all sorts of interesting things:
+\begingroup
+ \NewEnvironmentCopy{ex2}{ex}
+ \begin{ex2}[same-line=.4]
+ We define a helper:
+ \begin{ex}[store,no-tcb]
+ \newcommand\foo{bar}
+ \end{ex}
+ And then can use it:
+ \begin{ex}[restore]
+ This is \foo
+ \end{ex}
+ A wider example:
+ \begin{ex}[below]
+ This is a wider example.
+ \end{ex}
+ \end{ex2}
+\endgroup
diff --git a/macros/latex/contrib/enverb/doc-keys.tex b/macros/latex/contrib/enverb/doc-keys.tex
new file mode 100644
index 0000000000..6d36075d26
--- /dev/null
+++ b/macros/latex/contrib/enverb/doc-keys.tex
@@ -0,0 +1,111 @@
+\subsection{Available Keys\label{sec:keys}}
+\begin{function}{\enverbsetup}
+ \begin{syntax}
+ \cs{enverbsetup} \marg{key=value}
+ \end{syntax}
+ This macro can be used to (locally) change the settings of \envlogo\ outside
+ of the |\enverb| macro.
+\end{function}
+
+The available keys are:
+\begin{function}{ignore}
+ \begin{syntax}
+ ignore = \meta{int}\keydefault{\emph{unused}}
+ \end{syntax}
+ Set up the number of tokens to ignore at the start of each line. This is only
+ applied after the matching |\end| was found, hence doesn't affect the
+ |\end|-line. A line containing any non-whitespace tokens but in total
+ fewer tokens (counting whitespace) than \meta{int} will lead to undefined
+ behaviour.\par
+ |ignore| and |auto-ignore| are mutually exclusive.
+\end{function}
+
+\begin{function}{auto-ignore}
+ \begin{syntax}
+ auto-ignore\keydefault{true}
+ auto-ignore = \meta{bool}
+ \end{syntax}
+ If this is true (or no value is given) the number of leading tokens is
+ determined by the number of leading tokens found in the line with the matching
+ |\end|. This allows for nice nesting of indentation levels in your \LaTeX\
+ sources without affecting functionality. A line containing any non-whitespace
+ tokens but in total fewer tokens (counting whitespace) than the leading tokens
+ in the |\end|-line will lead to undefined behaviour.\par
+ |ignore| and |auto-ignore| are mutually exclusive.
+\end{function}
+
+\begin{function}{more-ignore}
+ \begin{syntax}
+ more-ignore = \meta{int}\keydefault{2}
+ \end{syntax}
+ If |auto-ignore| is true this specifies how many tokens in addition to the
+ number of leading tokens shall be ignored at the start of each line. This
+ allows for even the contents of the |\enverb|-environment to be further
+ indented than the |\begin| and |\end| statement.
+\end{function}
+
+\begin{function}{bol}
+ \begin{syntax}
+ bol = \meta{tokens}\keydefault{\emph{empty}}
+ bol+ = \meta{tokens}
+ +bol = \meta{tokens}
+ \end{syntax}
+ Defines which \meta{tokens} are placed at the \textbf{b}egin \textbf{o}f
+ \textbf{l}ines. Your \meta{tokens} can be arbitrary contents and are placed as
+ is (so can contain macros which work as you intend when using
+ \cs{enverbBody}). Keep in mind that if you want to use this with
+ \cs{enverbExecute} or \cs{enverbListing} your tokens should be rescanned to
+ the same code after they got |\detokenize|d.\par
+ The |bol+| variant adds your \meta{tokens} after the current contents of
+ |bol|, while |+bol| adds them in front of the contents.
+\end{function}
+
+\begin{function}{eol}
+ \begin{syntax}
+ eol = \meta{tokens}\keydefault{\emph{\string^\string^M\textsubscript{12}}}
+ eol+ = \meta{tokens}
+ +eol = \meta{tokens}
+ \end{syntax}
+ Defines which \meta{tokens} are placed at the \textbf{e}nd \textbf{o}f
+ \textbf{l}ines. Your \meta{tokens} can be arbitrary contents and are placed as
+ is (so can contain macros which work as you intend when using
+ \cs{enverbBody}). Keep in mind that if you want to use this with
+ \cs{enverbExecute} or \cs{enverbListing} your tokens should be rescanned to
+ the same code after they got |\detokenize|d.\par
+ The |eol+| variant adds your \meta{tokens} after the current contents of
+ |eol|, while |+eol| adds them in front of the contents.
+\end{function}
+
+\begin{function}{key-handler}
+ \begin{syntax}
+ key-handler = \meta{code}\keydefault{\emph{throw an error}}
+ \end{syntax}
+ If used any undefined keys encountered while parsing the mandatory and
+ optional arguments of \cs{enverb} is parsed via \meta{code}. Inside your
+ \meta{code} use |#1| to specify where to input the list of unknown keys. This
+ can be used to specify additional keys to provide an interface to control your
+ wrapping code. This includes the handling of any unknown keys encountered
+ while parsing the mandatory \meta{key=value} argument of \cs{enverb}.
+\end{function}
+
+\begin{function}{key-set}
+ \begin{syntax}
+ key-set = \meta{set}
+ \end{syntax}
+ \envlogo\ uses \pkg{expkv} for its key-parsing. This key is a special form of
+ |key-handler| defining a handler that parses the unknown keys as part of
+ \meta{set} in \pkg{expkv} (so basically a shorthand for
+ |key-handler = \ekvset{|\meta{set}|}{#1}|).
+\end{function}
+
+\begin{function}{oarg-not-enverb}
+ \begin{syntax}
+ oarg-not-enverb\keydefault{false}
+ oarg-not-enverb = \meta{bool}
+ \end{syntax}
+ If this is true (or no value is given) the \meta{key=value} list in the
+ optional argument to \cs{enverb} is not parsed as keys of \envlogo\ but only
+ inside your defined |key-handler|. Obviously this key doesn't have any effect
+ if only used as part of the optional argument of \cs{enverb}.
+\end{function}
+
diff --git a/macros/latex/contrib/enverb/doc-using-contents.tex b/macros/latex/contrib/enverb/doc-using-contents.tex
new file mode 100644
index 0000000000..c3a147ab97
--- /dev/null
+++ b/macros/latex/contrib/enverb/doc-using-contents.tex
@@ -0,0 +1,40 @@
+\subsection{Using Verbatim Environment Contents}
+\begin{function}{\enverbBody}
+ \begin{syntax}
+ \cs{enverbBody}
+ \end{syntax}
+ This macro holds the contents of the last scanned \cs{enverb}-body,
+ assignments to it by the package are all local.
+\end{function}
+
+\begin{function}{\enverbExecute}
+ \begin{syntax}
+ \cs{enverbExecute}
+ \end{syntax}
+ This function executes the current contents of \cs{enverbBody} as though they
+ would be part of your input at this place (using |\scantokens|, it is tried as
+ good as possible to tackle |\scantokens|'s shortcomings; also it is assumed
+ that you didn't change the |eol| key, or else the newlines aren't carried over
+ but whatever your |eol| value set is used). The entire contents are
+ |\detokenize|d once before |\scantokens| does its magic (shouldn't affect the
+ verbatimly read material, but is deemed a sensible safety measure if something
+ unexpected happens; this also assumes that anything you placed inside |bol| or
+ |eol| is rescanned into the same stuff once |\detokenize|d).\par
+ The function isn't fully expandable, the contents are executed at the current
+ group level.
+\end{function}
+
+\begin{function}{\enverbListing}
+ \begin{syntax}
+ \cs{enverbListing} \marg{env} \marg{args}
+ \end{syntax}
+ This function is meant to reuse the current contents of \cs{enverbBody} inside
+ another verbatim environment. The used mechanism is tested to work with
+ \env{verbatim}, and environments defined by \pkg{fancyvrb}, \pkg{listings} and
+ \pkg{minted} (provided you use the default |eol| setting). \meta{env} is the
+ environment name in which the contents should be nested, and \meta{args} is
+ material to be placed after the |\begin| statement (just as you input them,
+ with the outer braces from this argument removed).\par
+ Just like |\enverbExecute| this |\detokenize|s the current content of
+ \cs{enverbBody} as well as your \meta{args} and uses |\scantokens|.
+\end{function}
diff --git a/macros/latex/contrib/enverb/enverb-doc.pdf b/macros/latex/contrib/enverb/enverb-doc.pdf
new file mode 100644
index 0000000000..fc5c35311e
--- /dev/null
+++ b/macros/latex/contrib/enverb/enverb-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/enverb/enverb-doc.tex b/macros/latex/contrib/enverb/enverb-doc.tex
new file mode 100644
index 0000000000..985e9e03b8
--- /dev/null
+++ b/macros/latex/contrib/enverb/enverb-doc.tex
@@ -0,0 +1,87 @@
+\IfFileExists{enverb.sty}{\RequirePackage{enverb}}{}
+
+\PassOptionsToPackage{full}{textcomp}
+\documentclass{l3doc}
+
+\usepackage[oldstylenums,nott]{kpfonts}
+\usepackage{randtext,xcolor,array}
+\usepackage{xistercian}
+\usepackage{accsupp}
+\usepackage{csquotes}
+\usepackage{multicol}
+%\usepackage{microtype}
+
+\input{preamble-logo}
+\input{preamble-examples}
+
+\newcommand\keydefault[1]{\hfill\textcolor{enverbgrey}{default: #1}}
+
+\let\metaORIG\meta
+\protected\def\meta #1{\texttt{\metaORIG{#1}}}
+\renewcommand*\thefootnote{\cistercian{footnote}}
+\hypersetup{linkcolor=red!80!black,urlcolor=purple!80!black}
+\makeatletter
+\@ifdefinable\gobbledocstriptag{\def\gobbledocstriptag#1>{}}
+\protected\def\savefootnotestuff
+ {%
+ \let\mysavethefootnote\thefootnote
+ \let\mysave@makefnmark\@makefnmark
+ \let\mysave@makefntext\@makefntext
+ }
+\def\restorefootnotestuff{\texorpdfstring\restorefootnotestuff@{}}
+\def\restorefootnotestuff@
+ {%
+ \global\let\thefootnote\mysavethefootnote
+ \global\let\@makefnmark\mysave@makefnmark
+ \global\let\@makefntext\mysave@makefntext
+ }
+\makeatother
+
+\begin{document}
+\savefootnotestuff
+\title
+ {%
+ \restorefootnotestuff
+ The \envlogo\ package\\[\medskipamount]
+ \Large read an environment verbatim%
+ }
+\GetFileInfo{enverb.sty}
+\date{\filedate\space\fileversion}
+\author{Jonathan P. Spratte\thanks{\protect\randomize{jspratte@yahoo.de}}}
+
+\maketitle
+
+\begin{abstract}
+ \noindent\parfillskip=0pt
+ The \envlogo\ package provides a simple yet effective way to collect the
+ verbatim contents of an environment into a macro, which the user can then pick
+ up to implement additional functionality, for instance a simple output routine
+ or rescanning the contents into code listings or for typesetting alike.
+ Arbitrary contents can be placed on either end of each line allowing flexible
+ line-oriented processing.
+\end{abstract}
+
+\tableofcontents
+
+\begin{documentation}
+\section{Documentation}
+Originally I was unsatisfied by the degree of freedom and customisation present
+in the available verbatim-environment providing packages like \pkg{listings},
+\pkg{minted}, \emph{etc.}, when one wants to document \TeX\ code and show the
+results next to it (or I didn't bother to dig through their manuals). Also I
+didn't like them producing temporary files so long as that's not necessary. As a
+result I implemented what was basically the first version of \envlogo\ for one
+of my other packages.
+
+\input{doc-enverb}
+\input{doc-using-contents}
+\input{doc-keys}
+\input{doc-examples}
+\end{documentation}
+
+\clearpage
+\begin{implementation}
+ \section{Implementation}
+ \DocInput{enverb.dtx}
+\end{implementation}
+\end{document}
diff --git a/macros/latex/contrib/enverb/enverb.dtx b/macros/latex/contrib/enverb/enverb.dtx
new file mode 100644
index 0000000000..a33dc713d7
--- /dev/null
+++ b/macros/latex/contrib/enverb/enverb.dtx
@@ -0,0 +1,720 @@
+% \iffalse meta-comment
+%
+% File: enverb.dtx Copyright (C) 2023-2024 Jonathan P. Spratte
+%
+% This work may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this license or
+% (at your option) any later version. The latest version of this license is in
+% the file:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% ------------------------------------------------------------------------------
+%
+%<*driver>^^A>>=
+\def\nameofplainTeX{plain}
+\ifx\fmtname\nameofplainTeX\else
+ \expandafter\begingroup
+\fi
+\input l3docstrip.tex
+\askforoverwritefalse
+\preamble
+
+--------------------------------------------------------------
+enverb -- read an environment verbatim
+E-mail: jspratte@yahoo.de
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+--------------------------------------------------------------
+
+Copyright (C) 2023-2024 Jonathan P. Spratte
+
+This work may be distributed and/or modified under the conditions of the
+LaTeX Project Public License (LPPL), either version 1.3c of this license or
+(at your option) any later version. The latest version of this license is in
+the file:
+
+ http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status) by
+ Jonathan P. Spratte.
+
+This work consists of the files enverb.dtx
+ enverb-doc.tex
+and the derived files enverb-doc.pdf
+ enverb.sty
+
+\endpreamble
+\postamble
+\endpostamble
+\generate{\file{enverb.sty}{\from{enverb.dtx}{pkg}}}
+\ifx\fmtname\nameofplainTeX
+ \expandafter\endbatchfile
+\else
+ \expandafter\endgroup
+\fi
+%</driver>^^A=<<
+% \fi
+%
+% \gobbledocstriptag
+%<*pkg>
+%
+% \subsection{Who we are}
+%
+% \begin{macro}[internal]{\enverb@date,\enverb@version}
+% We store the package version and date inside macros.
+% \begin{macrocode}
+\newcommand*\enverb@date{2024-08-28}
+\newcommand*\enverb@version{1.0}
+% \end{macrocode}
+% \end{macro}
+%
+% And the package identification:
+% \begin{macrocode}
+\ProvidesPackage{enverb}
+ [\enverb@date\space v\enverb@version\space read an environment verbatim]
+% \end{macrocode}
+%
+% \subsection{Some required \LaTeXe\ style argument grabbers}
+% \begin{macro}[internal]{\@thirdofthree,\@firstofnine}
+% This here are just two argument grabbers that aren't defined in all versions
+% of \LaTeXe.
+% \begin{macrocode}
+\providecommand\@thirdofthree[3]{#3}
+\providecommand\@firstofnine[9]{#1}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Borrow some code}
+% \begin{macro}[internal]
+% {\enverb@count,\enverb@ifxTF,\enverb@chargen,\enverb@othercr}
+% We'll make use of the following two \pkg{expl3} functions, but since the
+% remainder of this package is coded in \LaTeXe\ style we stick to that.
+% \begin{macrocode}
+\ExplSyntaxOn
+\cs_new_eq:NN \enverb@count \tl_count:n
+\cs_new_eq:NN \enverb@ifxTF \token_if_eq_meaning:NNTF
+\cs_new_eq:NN \enverb@chargen \char_generate:nn
+\cs_set:Npx \enverb@othercr { \char_generate:nn {13} {12} }
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Key-value Setup}
+% First we need to load a package to allow us defining our keys, then we define
+% a bunch of keys:
+% \begin{macrocode}
+\RequirePackage{expkv-def}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ekvdefinekeys{enverb}
+ {
+ protect code ignore = \let\enverb@ifautoignore\@secondoftwo
+ ,also eint ignore = \enverb@ignore
+ ,boolTF auto-ignore = \enverb@ifautoignore
+ ,initial auto-ignore
+ ,eint more-ignore = \enverb@moreignore
+ ,initial more-ignore = 2
+ ,long store bol = \enverb@bol@content
+ ,long code bol+ = \enverb@add\enverb@bol@content{#1}
+ ,long code +bol = \enverb@pre\enverb@bol@content{#1}
+ ,long store eol = \enverb@eol@content
+ ,einitial eol = \enverb@othercr
+ ,long code eol+ = \enverb@add\enverb@eol@content{#1}
+ ,long code +eol = \enverb@pre\enverb@eol@content{#1}
+ ,protect code key-handler = \protected\long\def\enverb@keyhandler##1{#1}
+ ,protect code key-set = \protected\long\ekvsetdef\enverb@keyhandler{#1}
+ ,unknown code = \enverb@add\enverb@unknown@kv{, {#3} = {#2} }
+ ,unknown noval = \enverb@add\enverb@unknown@kv{, {#2} }
+ ,boolTF oarg-not-enverb = \enverb@ifoargtokeyhandler
+ }
+% \end{macrocode}
+% \begin{macro}{\enverbsetup}
+% We need a user facing macro to set our keys.
+% \begin{macrocode}
+\protected\long\ekvsetdef\enverbsetup{enverb}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@unknown@kv}
+% This is a storage for all unknown keys encountered.
+% \begin{macrocode}
+\let\enverb@unknown@kv\@empty
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Miscellaneous Auxiliary Functions}
+%
+% \begin{macro}[internal]{\enverb@stop}
+% A very simple minded stop-macro, just gobble up to the eponymous mark.
+% \begin{macrocode}
+\long\def\enverb@stop#1\enverb@stop{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@error}
+% \begin{macrocode}
+\protected\def\enverb@error{\PackageError{enverb}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@misused}
+% This is an error message that'd be used inside a |\lowercase| environment if
+% put where it originally should've been. Hence we define it now to get
+% correct formatting.
+% \begin{macrocode}
+\protected\def\enverb@misused
+ {%
+ \enverb@error
+ {Misused \string\enverb. Input already tokenised}%
+ {%
+ It seems you used the \string\enverb\space based environment
+ {\@currenvir} inside another\MessageBreak
+ macro's or a primitive's argument; that doesn't work.%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@keyhandler, \enverb@keyhandler@}
+% This is the initial definition of the handler for unknown keys, namely throw
+% an error containing the list of unknown keys.
+% \begin{macrocode}
+\protected\long\def\enverb@keyhandler#1%
+ {%
+ \if\relax\detokenize{#1}\relax
+ \expandafter\@gobbletwo
+ \fi
+ \@firstofone
+ {%
+ \enverb@error
+ {%
+ Unknown keys encountered:
+ \expanded
+ {%
+ \ekvparse
+ {\MessageBreak\@spaces\unexpanded}%
+ {\MessageBreak\@spaces\enverb@keyhandler@}%
+ {#1}%
+ }%
+ \@gobble
+ }%
+ {%
+ Perhaps you misspelled some key names? Or you forgot to set up
+ custom key\MessageBreak
+ parsing.%
+ }%
+ }%
+ }
+\long\def\enverb@keyhandler@#1{\unexpanded{#1} = \unexpanded}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Collector}
+%
+% Much of the code in this package works under a weird category code regime,
+% which the following sets up. After this |~| will be an active newline
+% character, |:| will be an active space, and |;| will be an active tab.
+% \begin{macrocode}
+\begingroup
+\lccode`\~=`\^^M
+\catcode`\:=13
+\lccode`\:=`\ % <- space
+\catcode`\;=13
+\lccode`\;=`\^^I % <- tab
+\lowercase{\endgroup
+% \end{macrocode}
+%
+% \begin{macro}[internal]
+% {\enverb@body@space,\enverb@body@tab,\enverb@body@newline,\enverb@collect}
+% To quickly check whether a line contains only spaces or tabs we define them
+% as empty, that way we can remove them simply by one step of |\romannumeral|
+% expansion. The newlines on the other hand grab the entire next line, check
+% whether the matching |\end| is encountered, and if not leave the contents
+% in |\unexpanded|. This grabbing is not done by the newline characters
+% directly, but instead via |\enverb@collect| so that low level errors are
+% easier to understand.
+% \begin{macrocode}
+\def\enverb@body@space{}
+\def\enverb@body@tab{}
+\def\enverb@body@newline{\enverb@collect}
+\def\enverb@collect#1~%
+ {\enverb@ifnotend{#1}{\enverb@bol\unexpanded{#1}\enverb@eol\enverb@collect}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enverbBody}
+% \begin{macro}[internal]{\enverb@body@setup}
+% This function sets up the entire category code regime and initial
+% assignments of special tokens.
+% \begin{macrocode}
+\protected\def\enverb@body@setup
+ {%
+ \let\enverbBody\@empty
+ \let\do\@makeother\dospecials
+ \endlinechar=`\^^M
+ \catcode`\^^M=13 \let~\enverb@body@newline
+ \catcode`\ =13 \let:\enverb@body@space
+ \catcode`\^^I=13 \let;\enverb@body@tab
+ \let\enverb@bol\relax
+ \let\enverb@eol\relax
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {
+% \enverb@ifxanyTF, \enverb@ifxanyTF@, \enverb@ifxanyTF@ifdone,
+% \enverb@ifxanyTF@F, \enverb@ifxanyTF@T
+% }
+% This function provides a loop to check a list of symbols whether any of them
+% matches the meaning of the first argument.
+% \begin{macrocode}
+\long\def\enverb@ifxanyTF#1#2%
+ {\enverb@ifxanyTF@#1#2\enverb@ifxanyTF@}
+\long\def\enverb@ifxanyTF@#1#2%
+ {%
+ \enverb@ifxanyTF@ifdone#2\enverb@ifxanyTF@F\enverb@ifxanyTF@
+ \enverb@ifxTF#1#2\enverb@ifxanyTF@T{\enverb@ifxanyTF@#1}%
+ }
+\long\def\enverb@ifxanyTF@ifdone#1\enverb@ifxanyTF@{}
+\long\def\enverb@ifxanyTF@F
+ \enverb@ifxanyTF@\enverb@ifxTF#1\enverb@ifxanyTF@T#2#3#4%
+ {#4}
+\long\def\enverb@ifxanyTF@T#1\enverb@ifxanyTF@#2#3{#2}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@search@oarg@a, \enverb@search@oarg@ifx}
+% This function shall search for the optional argument. The first case is
+% rather easy, namely we check for a space (remember that |:| is an active
+% space character in the current context). If this isn't the first line (so
+% the line containing the |\begin| statement) that space is added to the body
+% and searching continues.\par
+% Next repeat the same logic but for an active tab (|;|). Afterwards we check
+% for an active newline (|~|) which if found sets the conditional for the
+% first line to false, still applying the same logic otherwise.\par
+% Lastly we check for the open bracket. If it's found we collect our optional
+% argument, otherwise the body starts, which is either an illegal character
+% immediately following the |\begin| line, or we normally collect the body.
+%
+% \begin{macrocode}
+\def\enverb@search@oarg@ifx#1#2%
+ {%
+ \enverb@ifxTF#1\@let@token
+ {%
+ \ifenverb@firsteol#2\else\enverb@body@add{#1}\fi
+ \enverb@search@oarg@b
+ }%
+ }
+\protected\def\enverb@search@oarg@a
+ {%
+ \enverb@search@oarg@ifx:{}%
+ {%
+ \enverb@search@oarg@ifx;{}%
+ {%
+ \enverb@search@oarg@ifx~\enverb@firsteolfalse
+ {%
+ \enverb@ifxTF{[}\@let@token
+ {\enverb@oarg}%
+ {%
+ \enverb@ifxanyTF\@let@token
+ {%
+ \@sptoken\par\bgroup\egroup$&##^_% $
+ }
+ {%
+ \enverb@misused
+ \endgroup
+ }%
+ {%
+ \ifenverb@firsteol
+ \expandafter\enverb@body@after@begin
+ \else
+ \expandafter\enverb@body
+ \fi
+ }%
+ }%
+ }%
+ }%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {\enverb@body, \enverb@body@after@oarg, \enverb@body@after@begin}
+% The body collection works by collecting everything inside a macro in one
+% sweep, and a second pass over the collected material to strip leading spaces
+% if the |ignore| or |auto-ignore| feature is used. This macro starts the
+% first sweep. Since during the collection of the optional argument we might
+% already have collected a few tokens we place those at the start by expanding
+% the current definition of |\enverbBody| once.
+% \begin{macrocode}
+\protected\def\enverb@body
+ {\edef\enverbBody{\iffalse}\fi\expandafter\enverb@collect\enverbBody}
+% \end{macrocode}
+% The other two macros also start collecting the body, but are only called
+% after either an optional argument was found, or if the first non-ignored
+% character of the optional argument search was encountered before the first
+% newline. In both cases we check whether the remainder of that line can be
+% considered blank, and if so collect the body.
+% \begin{macrocode}
+\def\enverb@body@after@oarg#1~%
+ {\enverb@ensure@blank{#1}{closing bracket}\enverb@body}
+\def\enverb@body@after@begin#1~%
+ {\enverb@ensure@blank{#1}{\string\begin}\enverb@body}
+% \end{macrocode}
+% This is also the last place we need the strange category setup in, so we
+% close the delimiting brace of the |\lowercase| above here.
+% \begin{macrocode}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@ensure@blank}
+% We actually need to define the check for an empty line. This check here
+% works for our specifically set up regime of spaces and tabs (which both
+% expand to nothing, the same trick is basically used twice, though we once
+% fully expand and once use romannumeral-expansion).
+% \begin{macrocode}
+\newcommand\enverb@ensure@blank[2]
+ {%
+ \expandafter\enverb@ifempty\expanded{{#1}}{}%
+ {%
+ \expanded
+ {%
+ \noexpand\enverb@error
+ {%
+ Line after #2 not empty.\noexpand\MessageBreak
+ Contains: \detokenize\expandafter{\romannumeral`\^^@#1}%
+ }%
+ {%
+ \noexpand\enverb will try to ignore this. You should clean up
+ your input.%
+ }%
+ }%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {\enverb@ifempty,\enverb@ifempty@,\enverb@ifempty@true}
+% This is just a quick argument-grabbing based test for an empty argument.
+% \begin{macrocode}
+\newcommand\enverb@ifempty[1]
+ {%
+ \enverb@ifempty@\enverb@ifempty@A#1\enverb@ifempty@B.\enverb@ifempty@true
+ \enverb@ifempty@A\enverb@ifempty@B
+ }
+\def\enverb@ifempty@#1\enverb@ifempty@A\enverb@ifempty@B#2#3{#3}
+\def\enverb@ifempty@true\enverb@ifempty@A\enverb@ifempty@B#1#2{#1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@add,\enverb@pre,\enverb@body@add}
+% These are just two functions to add things to a token list storing macro,
+% one is available for arbitrary contents, the other is used for the |body|.
+% \begin{macrocode}
+\protected\long\def\enverb@add#1#2{\edef#1{\unexpanded\expandafter{#1#2}}}
+\protected\long\def\enverb@pre#1#2%
+ {\edef#1{\unexpanded{#2}\unexpanded\expandafter{#1}}}
+\protected\def\enverb@body@add{\enverb@add\enverbBody}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enverb}
+% This macro is the front facing command that starts the entire grabbing
+% logic. The first thing we need to do is define the auxiliary we use to check
+% whether we're done collecting the body, which is dependent on the current
+% environment's name. Next we store the mandatory argument in |marg| and
+% initialise the |oarg|-storage, category regime, and |firsteol|-boolean.
+% Finally we start searching for the optional argument.
+% \begin{macrocode}
+\NewDocumentCommand \enverb { s +m }
+ {%
+ \expandafter\enverb@ifnotend@setup@perhaps\expanded
+ {{\string{\@currenvir\string}}}%
+ \let\enverb@collected@oarg\@empty
+ \edef\enverb@collected@marg{\unexpanded{#2}}%
+ \begingroup
+ \enverb@body@setup
+ \IfBooleanTF{#1}%
+ {\enverb@body@after@begin}%
+ {%
+ \enverb@firsteoltrue
+ \enverb@search@oarg
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {\ifenverb@firsteol,\enverb@firsteoltrue,\enverb@firsteolfalse}
+% A simple \TeX-style boolean to keep track whether we're in front of the
+% first newline.
+% \begin{macrocode}
+\newif\ifenverb@firsteol
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@search@oarg, \enverb@search@oarg@b}
+% The core function to search for an optional argument was already defined
+% above, these are the first and third step of that functionality (starting
+% and resuming to search).
+% \begin{macrocode}
+\protected\def\enverb@search@oarg{\futurelet\@let@token\enverb@search@oarg@a}
+\protected\def\enverb@search@oarg@b{\expandafter\enverb@search@oarg\@gobble}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@oarg, \enverb@oarg@}
+% This is used once the opening brace of the optional argument is found. First
+% we close the group in which the body's category code regime is active, then
+% we actually collect the optional argument with the normal category codes,
+% restore the body's regime and collect it.
+% \begin{macrocode}
+\protected\def\enverb@oarg{\endgroup\enverb@oarg@}
+\NewDocumentCommand\enverb@oarg@{+O{}}
+ {%
+ \enverb@add\enverb@collected@oarg{#1}%
+ \begingroup
+ \enverb@body@setup
+ \enverb@body@after@oarg
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@ifnotend, \enverb@ifnotend}
+% These functions check whether the input contains the string representation
+% |\end|. If it does they invoke \cs[no-index]{enverb@ifnotend@maybe} with the
+% tokens in front of |\end| and after it as two arguments. Otherwise the third
+% argument after \cs{enverb@ifnotend@}'s expansion is directly used, which is
+% the second (curried) argument to \cs{enverb@ifnotend}.
+% \begin{macrocode}
+\newcommand\enverb@ifnotend[1]%
+ {%
+ \def\enverb@ifnotend##1%
+ {%
+ \enverb@ifnotend@
+ ##1\enverb@mark\enverb@ifnotend@maybe
+ #1\enverb@mark\@thirdofthree
+ \enverb@stop
+ }%
+ \def\enverb@ifnotend@##1#1##2\enverb@mark##3##4\enverb@stop{##3{##1}{##2}}%
+ }
+\expandafter\enverb@ifnotend\expanded{{\expandafter\@gobble\string\\end}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@ifnotend@maybe}
+% This function will be used if an |\end| was encountered and should check
+% whether that is indeed the end of our environment, it uses a second stage
+% \cs[no-index]{enverb@ifnotend@perhaps} for that check. The |\romannumeral|
+% expansion it employs will strip any leading spaces or tabs from |#2|.
+% \begin{macrocode}
+\newcommand\enverb@ifnotend@maybe[2]
+ {\expandafter\enverb@ifnotend@perhaps\expandafter{\romannumeral`\^^@#2}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {
+% \enverb@ifnotend@setup@perhaps,
+% \enverb@ifnotend@perhaps, \enverb@ifnotend@perhaps@,
+% \@thirdofthree
+% }
+% We need an expandable and fast check to see whether some input really
+% contains the |\end| of our environment. Checking for |\end| itself is
+% already done above, we need to check for the correct argument to it. The
+% following does so by argument grabbing logic.
+% \begin{macrocode}
+\protected\def\enverb@ifnotend@setup@perhaps#1%
+ {%
+ \def\enverb@ifnotend@perhaps##1%
+ {%
+ \enverb@ifnotend@perhaps@\enverb@mark##1\enverb@mark\enverb@ifnotend@end
+ \enverb@mark#1\enverb@mark\@thirdofthree
+ \enverb@stop
+ }%
+ \def\enverb@ifnotend@perhaps@
+ ##1\enverb@mark#1##2\enverb@mark##3##4\enverb@stop
+ {##3{##2}}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@ifnotend@end}
+% If the correct |\end| statement was found this function will be called by
+% \cs[no-index]{enverb@ifnotend@perhaps}. It's first argument will be anything
+% in that line following the |\end| statement, the second argument will be the
+% material in front of it. And |#3| will be whatever the argument to
+% \cs[no-index]{enverb@ifnotend} was.
+%
+% The first thing we need to do is end the body collection by placing the
+% matching closing brace. After that we throw an error on lost content after
+% the |\end| if it's non-blank. And finally we need to smuggle the collected
+% body outside the current group's scope.
+% \begin{macrocode}
+\def\enverb@ifnotend@end#1#2#3%
+ {%
+ \iffalse{\fi}%
+ \enverb@ensure@blank{#1}{\string\end}%
+ \expandafter\enverb@finalise\expandafter{\enverbBody}{#2}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@finalise}
+% The finalising function closes the group containing the body's catcode
+% regime. The already tokenised body is |#1|, and |#2| is the contents found
+% in front of the |\end| statement, which we might use for the auto-ignore
+% feature.
+%
+% It then does the key=val parsing, sets up the aftertreatment and assigns the
+% final meaning to \cs{enverbBody}. Eventually it calls the end code of the
+% enclosing environment.
+% \begin{macrocode}
+\protected\def\enverb@finalise#1#2%
+ {%
+ \endgroup
+ \expandafter\enverbsetup\expandafter{\enverb@collected@marg}%
+ \enverb@ifoargtokeyhandler
+ {%
+ \expandafter\enverb@keyhandler\expanded
+ {{%
+ \unexpanded\expandafter{\enverb@unknown@kv},%
+ \unexpanded\expandafter{\enverb@collected@oarg}%
+ }}%
+ }%
+ {%
+ \expandafter\enverbsetup\expandafter{\enverb@collected@oarg}%
+ \expandafter\enverb@keyhandler\expandafter{\enverb@unknown@kv}%
+ }%
+ \enverb@ifautoignore
+ {\enverb@setup@ignore{\enverb@count{#2}+\enverb@moreignore}}%
+ {\enverb@setup@ignore\enverb@ignore}%
+ \edef\enverb@line##1\enverb@eol
+ {%
+ \noexpand\unexpanded{##1}%
+ %\noexpand\detokenize{##1}% % TODO
+ \noexpand\unexpanded{\unexpanded\expandafter{\enverb@eol@content}}%
+ }%
+ \edef\enverbBody{#1}%
+ \expandafter\end\expandafter{\@currenvir}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\enverb@setup@ignore, \enverb@setup@ignore@}
+% \begin{macrocode}
+\protected\def\enverb@setup@ignore#1%
+ {\expandafter\enverb@setup@ignore@\the\numexpr#1\relax;\enverb@line}
+\protected\def\enverb@setup@ignore@#1;#2%
+ {%
+ \ifnum#1>9
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\expandafter\enverb@setup@ignore@\the\numexpr#1-8;{\@firstofnine{#2}}}%
+% \end{macrocode}
+% Just to make sure that |\renewcommand| works correctly, we ensure the macro
+% exists.
+% \begin{macrocode}
+ {%
+ \let\enverb@bol@gobble\@empty
+ \expanded
+ {%
+ \unexpanded{\renewcommand\enverb@bol@gobble}\ifnum#1>\z@[#1]\fi
+ {\unexpanded{#2}}%
+ \unexpanded{\def\enverb@bol##1\enverb@eol}%
+ {%
+ \noexpand\unexpanded
+ {\unexpanded\expandafter{\enverb@bol@content}}%
+ \unexpanded{\expandafter\enverb@ifempty\expanded}{{##1}}%
+ {\noexpand\enverb@line}%
+ {\noexpand\enverb@bol@gobble}%
+ ##1\noexpand\enverb@eol
+ }%
+ }%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Output Oriented Macros}
+%
+% \begin{macro}[internal]{\enverb@rmeol, \enverb@rmeol@}
+% Many of our output routines require the |\scantokens| primitive. Since that
+% one places an additional end of line at the end of its argument we need a
+% way to remove it (this usually results in an additional space in the output
+% otherwise). For that we place a comment character at the end of the input
+% (if it's possible), if that's not available we hope that a stringified
+% |\relax| will do. The code here will use \pkg{expl3} for ease of coding.
+% \begin{macrocode}
+\def\enverb@rmeol
+ {%
+ \ifnum\catcode`\%=14
+ \enverb@chargen{`\%}{12}%
+ \expandafter\enverb@stop
+ \fi
+ \enverb@rmeol@0;%
+ \enverb@stop
+ }
+\def\enverb@rmeol@#1;%
+ {%
+ \ifnum#1=128
+ \string\relax
+ \expandafter\enverb@stop
+ \fi
+ \@firstofone
+ {%
+ \ifnum\catcode`\%=14
+ \enverb@chargen{#1}{12}%
+ \expandafter\enverb@stop
+ \fi
+ \expandafter\enverb@rmeol@\the\numexpr#1+1;%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enverbExecute}
+% \begin{macrocode}
+\NewDocumentCommand\enverbExecute{}
+ {%
+ \begingroup
+ \newlinechar=`\^^M
+ \expandafter
+ \endgroup
+ \scantokens\expanded
+ {{%
+ \detokenize\expandafter{\enverbBody}%
+ \enverb@rmeol
+ }}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enverbListing}
+% \begin{macro}[internal]{\enverbListing@}
+% \begin{macrocode}
+\NewDocumentCommand \enverbListing { m m }
+ {%
+ \scantokens\expanded
+ {{%
+ \string\begin{#1}\detokenize{#2}\enverb@othercr
+ \detokenize\expandafter{\enverbBody}%
+ \string\end{#1}\enverb@othercr
+ \enverb@rmeol
+ }}%
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \gobbledocstriptag
+%</pkg>
diff --git a/macros/latex/contrib/enverb/preamble-examples.tex b/macros/latex/contrib/enverb/preamble-examples.tex
new file mode 100644
index 0000000000..da18ed38a6
--- /dev/null
+++ b/macros/latex/contrib/enverb/preamble-examples.tex
@@ -0,0 +1,199 @@
+\makeatletter
+\RequirePackage{enverb}
+\global\let\enverb@ex@stored\@empty
+\ekvdefinekeys{enverb/ex}
+ {
+ boolTF store = \enverb@ex@ifstore
+ ,invboolTF no-store = \enverb@ex@ifstore
+ ,boolTF restore = \enverb@ex@ifrestore
+ ,boolTF no-lst = \enverb@ex@ifnolst
+ ,also nmeta no-lst = below
+ ,nmeta undo-no-lst = {no-lst=false, undo-below}
+ ,boolTF no-tcb = \enverb@ex@ifnotcb
+ ,also nmeta no-tcb = below
+ ,nmeta undo-no-tcb = {no-tcb=false, undo-below}
+ ,boolTF same-line = \enverb@ex@ifsameline
+ ,unknown-choice same-line =
+ \let\enverb@ex@ifsameline\@firstoftwo\def\enverb@ex@codeshare{#1}
+ ,initial same-line = 0.6
+ ,invboolTF other-line = \enverb@ex@ifsameline
+ ,nmeta below = {other-line}
+ ,nmeta undo-below = {same-line}
+ ,store inter = \enverb@ex@inter
+ ,code aboveskip = \def\enverb@ex@above{\vskip#1\relax}
+ ,code belowskip = \def\enverb@ex@below{\vskip#1\relax}
+ ,default aboveskip = \medskipamount
+ ,default belowskip = \medskipamount
+ ,initial aboveskip
+ ,initial belowskip
+ ,noval no-aboveskip = \let\enverb@ex@above\@empty
+ ,noval no-belowskip = \let\enverb@ex@below\@empty
+ % listings
+ ,store lst = \enverb@ex@options@lst
+ ,initial lst = {aboveskip=0pt, belowskip=0pt}
+ ,store same-line-lst = \enverb@ex@options@lst@same
+ ,meta slst = same-line-lst={#1}
+ ,store other-line-lst = \enverb@ex@options@lst@other
+ ,meta olst = other-line-lst={#1}
+ % tcolorbox
+ ,store tcb = \enverb@ex@options@tcb
+ ,initial tcb = {nobeforeafter}
+ ,store same-line-tcb = \enverb@ex@options@tcb@same
+ ,initial same-line-tcb = {box align=center}
+ ,meta stcb = same-line-tcb={#1}
+ ,store other-line-tcb = \enverb@ex@options@tcb@other
+ ,meta otcb = other-line-tcb={#1}
+ }
+\newenvironment{ex}
+ {\enverb{key-set=enverb/ex}}
+ {%
+ \par
+ \enverb@ex@above
+ \noindent
+ \expanded{\noexpand\begin{exwrap}{\enverb@ex@ifsameline{}{breakable}}}
+ \enverb@ex@ifnolst
+ {}%
+ {%
+ \enverb@ex@ifsameline
+ {\noindent\begin{minipage}[c]{\enverb@ex@codeshare\linewidth}}%
+ {}%
+ \ExpandArgs{ne}\enverbListing{lstlisting}%
+ {%
+ [{%
+ \unexpanded\expandafter{\enverb@ex@options@lst},%
+ \enverb@ex@ifsameline
+ {\unexpanded\expandafter{\enverb@ex@options@lst@same}}%
+ {\unexpanded\expandafter{\enverb@ex@options@lst@other}}%
+ }]%
+ }%
+ \enverb@ex@ifsameline
+ {\end{minipage}}%
+ {}%
+ }%
+ \enverb@ex@ifstore
+ {%
+ \xdef\enverb@ex@stored
+ {%
+ \unexpanded\expandafter{\enverb@ex@stored}%
+ \unexpanded\expandafter{\enverbBody}%
+ }%
+ }%
+ {}%
+ \enverb@ex@ifrestore
+ {%
+ \edef\enverbBody
+ {%
+ \unexpanded\expandafter{\enverb@ex@stored}%
+ \unexpanded\expandafter{\enverbBody}%
+ }%
+ \global\let\enverb@ex@stored\@empty
+ }%
+ {}%
+ \enverb@ex@ifnotcb
+ {}%
+ {%
+ \enverb@ex@ifsameline{}{\medskip}%
+ \expanded{\noexpand\begin{exbox}%
+ {%
+ \unexpanded\expandafter{\enverb@ex@options@tcb},%
+ \enverb@ex@ifsameline
+ {\unexpanded\expandafter{\enverb@ex@options@tcb@same}}%
+ {\unexpanded\expandafter{\enverb@ex@options@tcb@other}}%
+ }}%
+ {\linewidth\enverb@ex@ifsameline{-\enverb@ex@codeshare\linewidth}{}}%
+ \enverbExecute
+ \end{exbox}%
+ }%
+ \end{exwrap}%
+ \par
+ \enverb@ex@below
+ \@endpetrue
+ }
+
+\RequirePackage{listings}% >>=
+\newcommand\extexcsstyle{\exbasestyle\color{green!50!black}\bfseries}
+\newcommand\exbasestyle{\ttfamily}
+\lstset
+ {
+ language=[LaTeX]TeX
+ ,flexiblecolumns=true
+ ,basicstyle=\exbasestyle
+ ,texcsstyle=*\extexcsstyle
+ ,moretexcs=%
+ {%
+ UseName,ExpandArgs,textcolor,color,colorbox,expanded,unexpanded,@empty,%
+ @firstoftwo,@endpetrue,RequirePackage,lstset,usetikzlibrary,%
+ pgfmathsetseed,newtcolorbox,tcbsubskin,tikzset,dimexpr%
+ }
+ ,moretexcs=[2]{enverb,enverbBody,enverbExecute,enverbListing}
+ ,texcsstyle=*[2]\exbasestyle\color{enverbred}\bfseries
+ ,literate={\{}{{\extexcsstyle\string{\iffalse}\fi}}{1}
+ {\}}{{\extexcsstyle\iffalse{\fi\string}}}{1}
+ }% =<<
+\RequirePackage[most]{tcolorbox}%>>=
+\RequirePackage{tikz}
+\usetikzlibrary{decorations.pathmorphing,calc}
+\pgfmathsetseed{1} % To have predictable results
+% Define paper style
+\tikzset{
+ % based on https://tex.stackexchange.com/questions/580671
+ ragged border/.style={%
+ decoration={random steps, segment length=2mm, amplitude=0.5mm},
+ decorate,
+ }
+}
+\tcbsubskin{exwrap}{standard}
+ {%
+ width=\linewidth
+ ,colframe=enverbgrey
+ ,colback=enverbred!15!white
+ ,title=Example
+ ,nobeforeafter
+ ,arc=5mm
+ ,sharp corners=northwest
+ ,toprule at break=-1sp
+ ,bottomrule at break=-1sp
+ }
+\tcbsubskin{exwrap-first}{exwrap}{sharp corners=south}
+\tcbsubskin{exwrap-mid}{exwrap}{sharp corners=all}
+\tcbsubskin{exwrap-last}{exwrap}{sharp corners=north}
+\newtcolorbox{exbox}[2]
+ {%
+ colback=white%
+ ,colframe=white%
+ ,geometry nodes=true
+ ,interior code=
+ {%
+ \fill[white]
+ decorate[ragged border]{
+ ($(frame.south east) - (0, 1mm)$) --
+ ($(frame.south west) - (0, 1mm)$)
+ }
+ -- (frame.south west) -- ++(0, 1pt) -| (frame.south east) -- cycle;
+ \fill[white]
+ decorate[ragged border]{
+ ($(frame.north east) + (0, 1mm)$) --
+ ($(frame.north west) + (0, 1mm)$)
+ }
+ -- (frame.north west) -- ++(0, -1pt) -| (frame.north east) -- cycle;
+ }
+ ,fontupper=\small
+ ,width={\dimexpr#2\relax}%
+ ,sharp corners=all
+ ,boxsep=0pt
+ ,top=\fboxsep
+ ,bottom=\fboxsep
+ ,left=\fboxsep
+ ,right=\fboxsep
+ ,#1%
+ }
+\newtcolorbox{exwrap}[1]
+ {%
+ skin=exwrap
+ ,skin first=exwrap-first
+ ,skin middle=exwrap-mid
+ ,skin last=exwrap-last
+ ,#1%
+ }
+%=<<
+\makeatother
diff --git a/macros/latex/contrib/enverb/preamble-logo.tex b/macros/latex/contrib/enverb/preamble-logo.tex
new file mode 100644
index 0000000000..177f8f3e26
--- /dev/null
+++ b/macros/latex/contrib/enverb/preamble-logo.tex
@@ -0,0 +1,25 @@
+\definecolor{enverbred}{HTML}{9F393D}
+\colorlet{enverbgrey}{black!75}
+\newcommand\envlogo% >>=
+ {%
+ \texorpdfstring
+ {\envLogo}%
+ {enverb}%
+ }% =<<
+\protected\def\envLogo% >>=
+ {%
+ \mbox
+ {%
+ \BeginAccSupp{ActualText=enverb}%
+ \href{https://gitlab.com/islandoftex/texmf/enverb}{\envLogoFormat}%
+ \EndAccSupp{}%
+ }%
+ }% =<<
+\protected\def\envLogoFormat% >>=
+ {%
+ \begingroup
+ \normalfont\rmfamily\bfseries
+ \textcolor{enverbgrey}{en\kern-0.045em v}\kern-.485em
+ \textcolor{enverbred}{v\kern-0.045em erb}%
+ \endgroup
+ }% =<<
diff --git a/macros/latex/contrib/euromoney/README.md b/macros/latex/contrib/euromoney/README.md
new file mode 100644
index 0000000000..601e822cc7
--- /dev/null
+++ b/macros/latex/contrib/euromoney/README.md
@@ -0,0 +1,6 @@
+euromoney is a package with euro coins and banknotes.
+-----------------------------------------------------
+Author..: Cédric Pierquet
+email...: cpierquet@outlook.fr
+Licence.: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+........: pdf converted from domain public svg (user frankes in openclipart), see https://openclipart.org/artist/frankes \ No newline at end of file
diff --git a/macros/latex/contrib/euromoney/doc/euromoney-doc.pdf b/macros/latex/contrib/euromoney/doc/euromoney-doc.pdf
new file mode 100644
index 0000000000..93668899bf
--- /dev/null
+++ b/macros/latex/contrib/euromoney/doc/euromoney-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/doc/euromoney-doc.tex b/macros/latex/contrib/euromoney/doc/euromoney-doc.tex
new file mode 100644
index 0000000000..f502604a0b
--- /dev/null
+++ b/macros/latex/contrib/euromoney/doc/euromoney-doc.tex
@@ -0,0 +1,461 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode}
+% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')
+
+\documentclass[11pt,a4paper]{ltxdoc}
+%\usepackage{crimson}
+\usepackage{bera}
+\usepackage{inconsolata}
+%\renewcommand*\ttdefault{cmvtt}
+\usepackage[T1]{fontenc}
+\usepackage[scale=0.875]{cabin}
+\usepackage{euromoney}
+\usepackage{fancyvrb}
+\usepackage{fancyhdr}
+\usepackage{tabularray}
+\usepackage{fontawesome5}
+\fancyhf{}
+\renewcommand{\headrulewidth}{0pt}
+\lfoot{\sffamily\small [euromoney]}
+\cfoot{\sffamily\small - \thepage{} -}
+\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}
+\usepackage{hologo}
+\providecommand\tikzlogo{Ti\textit{k}Z}
+\providecommand\TeXLive{\TeX{}Live\xspace}
+\let\TikZ\tikzlogo
+
+\usepackage{hyperref}
+\urlstyle{same}
+\hypersetup{pdfborder=0 0 0}
+\usepackage[margin=2cm]{geometry}
+\setlength{\parindent}{0pt}
+\def\TPversion{0.1.1}
+\def\TPdate{07/09/2024}
+\usepackage{tcolorbox}
+\tcbuselibrary{skins,hooks,listingsutf8}
+%\usepackage{soul}
+%\sethlcolor{lightgray!25}
+
+\lstset{
+ language=[LaTeX]TeX,%
+ basicstyle=\ttfamily,%
+ keywordstyle={\color{blue}},%
+ classoffset=0,%
+ keywords={usepackage,\includegraphics,xstring,listofitems,tikz,calc,simplekv,graphicx},%
+ alsoletter={-},%
+ keywordstyle={\color{blue}},%
+ classoffset=1,%
+ alsoletter={-},%
+ morekeywords={euromoney},%
+ keywordstyle={\color{violet}},%
+ classoffset=2,%
+ alsoletter={-},%
+ morekeywords={\BilletsEuro,\PiecesEuro,\EuroBanknotes,\EuroCoins},%
+ keywordstyle={\color{green!50!black}},%
+ classoffset=3,%
+ morekeywords={RefHeight,Style,AutoHeight,OffsetH,OffsetV,Stack,Angle,HauteurRef,HauteurAuto,DecalH,DecalV,Empilage},%
+ keywordstyle={\color{orange}}
+}
+
+\newtcblisting{DemoCode}[1]{%
+ enhanced,width=\linewidth,%
+ bicolor,size=title,%
+ colback=cyan!10!white,%
+ colbacklower=cyan!5!white,%
+ colframe=cyan!75!black,%
+ listing options={%
+ breaklines=true,%
+ breakatwhitespace=true,%
+ style=tcblatex,basicstyle=\small\ttfamily,%
+ tabsize=4,%
+ commentstyle={\itshape\color{gray}},
+ keywordstyle={\color{blue}},%
+ classoffset=0,%
+ keywords={usepackage,\includegraphics,xstring,listofitems,tikz,calc,simplekv,graphicx},%
+ alsoletter={-},%
+ keywordstyle={\color{blue}},%
+ classoffset=1,%
+ alsoletter={-},%
+ morekeywords={euromoney},%
+ keywordstyle={\color{violet}},%
+ classoffset=2,%
+ alsoletter={-},%
+ morekeywords={\BilletsEuro,\PiecesEuro,\EuroBanknotes,\EuroCoins},%
+ keywordstyle={\color{green!50!black}},%
+ classoffset=3,%
+ morekeywords={RefHeight,Style,AutoHeight,OffsetH,OffsetV,Stack,Angle,HauteurRef,HauteurAuto,DecalH,DecalV,Empilage,height},%
+ keywordstyle={\color{orange}}
+ },%
+ #1
+}
+\NewDocumentCommand\MontreCode{ m }{%
+ \lstinline{#1}%
+}
+
+\begin{document}
+
+\thispagestyle{empty}
+
+\begin{center}
+ \begin{minipage}{0.88\linewidth}
+ \begin{tcolorbox}[colframe=yellow,colback=yellow!15]
+ \begin{center}
+ \begin{tabular}{c}
+ {\Huge \texttt{euromoney}}\\
+ \\
+ {\LARGE Insert 'vectorial' coins or} \\
+ {\LARGE banknotes in euro.} \\
+ \\
+ {\small \texttt{Version \TPversion{} -- \TPdate}}
+ \end{tabular}
+ \end{center}
+ \end{tcolorbox}
+ \end{minipage}
+\end{center}
+
+\begin{center}
+ \begin{tabular}{c}
+ \texttt{Cédric Pierquet}\\
+ {\ttfamily c pierquet -- at -- outlook . fr}\\
+ \texttt{\url{https://github.com/cpierquet/euromoney}} \\
+ \end{tabular}
+\end{center}
+
+\hrule
+
+\vfill
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+ \begin{center}
+ \PiecesEuro[HauteurRef=1cm,Style=full,HauteurAuto]{4*2+3*1+4*0.2+1*0.1+2*0.01}
+
+ \vspace*{2.5mm}
+
+ \PiecesEuro[Empilage=V,HauteurRef=3cm,HauteurAuto]{4*2+3*1+4*0.2+1*0.1+2*0.01}
+
+ \vspace*{2.5mm}
+
+ \BilletsEuro[Style=nb,HauteurRef=1.75cm,DecalV=0.5cm,HauteurAuto]{4*100+2*50+20+4*10+3*5}
+
+ \vspace*{2.5mm}
+
+ \BilletsEuro[Style=full,HauteurAuto]{100+50+20+5}
+ \end{center}
+\end{tcolorbox}
+
+\vfill~
+
+\hrule
+
+\medskip
+
+\emph{%
+ The pdf files were obtained by converting vector \texttt{svg} (public domain) files from the \href{https://openclipart.org/artist/frankes?p=3}{\texttt{openclipart}} database, and in particular from files supplied by \href{https://openclipart.org/artist/frankes?p=3}{\texttt{frankes}}.
+}
+
+\medskip
+
+\hrule
+
+\vspace*{5mm}
+
+\pagebreak
+
+\phantomsection
+
+\hypertarget{matoc}{}
+
+\tableofcontents
+
+\vspace*{5mm}
+
+%\hrule
+
+\pagebreak
+
+\section{Introduction}
+
+\subsection{Description, loading}
+
+The idea is to propose macros to insert coins and banknotes in euro.
+
+\begin{DemoCode}{listing only}
+\usepackage{euromoney}
+\end{DemoCode}
+
+The \MontreCode{euromoney} package loads :
+
+\begin{itemize}
+ \item \lstinline{xstring} ;
+ \item \lstinline{simplekv} ;
+ \item \lstinline{graphicx} ;
+ \item \lstinline{tikz} with \MontreCode{calc} library ;
+ \item \lstinline{listofitems}.
+\end{itemize}
+
+\subsection{Features}
+
+It's possible to present multiple coins or multiples banknotes :
+
+\begin{itemize}
+ \item with global height ;
+ \item with height automatically adjusted (compared to 2€ coin and 500€ banknote) ;
+ \item with stacking.
+\end{itemize}
+
+\section{Global names, samples}
+
+\subsection{Global names}
+
+Each coin or bill is a vectorial pdf, name \texttt{euromoney-<amount><suffix>} and there's three styles :
+
+\begin{itemize}
+ \item \MontreCode{full} colored version ;
+ \item \MontreCode{simple} colored version with \MontreCode{simple} suffix ;
+ \item \MontreCode{bw} version with \MontreCode{simplebw} suffix .
+\end{itemize}
+
+Available basenames are :
+
+\begin{itemize}
+ \item \texttt{500euro} ; \texttt{200euro} ; \texttt{100euro} ; \texttt{50euro} ; \texttt{20euro} ; \texttt{10euro} and \texttt{5euro} ;
+ \item \texttt{2euro} ; \texttt{1euro} ; \texttt{50cent} ; \texttt{20cent} ; \texttt{10cent} ; \texttt{5cent} ; \texttt{2cent} and \texttt{1cent}.
+\end{itemize}
+
+\begin{DemoCode}{}
+%manual insertion
+\includegraphics[height=25.75mm]{euromoney-2euro}% w/o suffix
+\includegraphics[height=25.75mm]{euromoney-2eurosimple}% with simple suffix
+\includegraphics[height=25.75mm]{euromoney-2eurosimplebw}% with simplebw suffix
+\end{DemoCode}
+
+\subsection{Size of graphics}
+
+Banknotes of \MontreCode{Style=full} are bigger than other styles, so the output doc can be bigger size.
+
+For example, 100€ banknote's size is 933~Ko.
+
+\section{Macro for coins}
+
+\subsection{Usage}
+
+The coins macro is :
+
+\begin{DemoCode}{listing only}
+\EuroCoins[keys]{list of coins}
+\end{DemoCode}
+
+Available keys are :
+
+\begin{itemize}
+ \item \MontreCode{RefHeight} := height (default \MontreCode{2cm}) for the coins (relative to 2€ if \MontreCode{AutoHeight=true}) ;
+ \item \MontreCode{Style} := style for coins (default \MontreCode{simple}), within \MontreCode{full/simple/bw} ;
+ \item \MontreCode{AutoHeight} := boolean (default \MontreCode{false}) for adjusting heights of coins ;
+ \item \MontreCode{OffsetH} := horizontal offset (default \MontreCode{0pt}) for multiple coins (side by side if \MontreCode{0pt}) ;
+ \item \MontreCode{OffsetV} := vertical offset (default \MontreCode{5mm}) for multiple coins vertically stacked ;
+ \item \MontreCode{Stack} := sens of stacking (default \MontreCode{H}) for mutiple coins.
+\end{itemize}
+
+List of coins can be given within \MontreCode{3*2+4*1+2*0.2+4*0.1} for example.
+
+\subsection{Examples}
+
+\begin{DemoCode}{}
+%sample with one coin
+\EuroCoins{2}\EuroCoins{1}\EuroCoins{0.5}\EuroCoins{0.2}%
+\EuroCoins{0.1}\EuroCoins{0.05}\EuroCoins{0.02}\EuroCoins{0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%multiple coins, side by side, global height, simple style
+\EuroCoins{2+1+0.5+0.2+0.1+0.05+0.02+0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%multiple coins, side by side, global height, full style
+\EuroCoins[Style=full]{2+1+0.5+0.2+0.1+0.05+0.02+0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%multiple coins, side by side, global height, simplebw style
+\EuroCoins[Style=bw]{2+1+0.5+0.2+0.1+0.05+0.02+0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%stacked coins (b&w), horizontally with correct scaling
+\EuroCoins[RefHeight=3cm,AutoHeight,OffsetH=7.5mm,Style=bw]{4*2+3*1+4*0.2+1*0.1+2*0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%stacked coins (full resolution), vertically with correct scaling
+\EuroCoins[Stack=V,RefHeight=3cm,AutoHeight,Style=full]{4*2+3*1+4*0.2+1*0.1+2*0.01}
+\end{DemoCode}
+
+\section{Macro for banknotes}
+
+\subsection{Usage}
+
+The banknotes macro is :
+
+\begin{DemoCode}{listing only}
+\EuroBanknotes[keys]{list of banknotes}
+\end{DemoCode}
+
+Stacking is globally set, and available keys are :
+
+\begin{itemize}
+ \item \MontreCode{RefHeight} := height (default \MontreCode{2cm}) for the banknotes (relative to 500€ if \MontreCode{AutoHeight=true}) ;
+ \item \MontreCode{Style} := style for banknotes (default \MontreCode{simple}), within \MontreCode{full/simple/bw} ;
+ \item \MontreCode{AutoHeight} := boolean (default \MontreCode{false}) for adjusting heights of banknotes ;
+ \item \MontreCode{OffsetH} := horizontal offset (default \MontreCode{0pt}) for multiple banknotes (side by side if \MontreCode{0pt}) ;
+ \item \MontreCode{OffsetV} := vertical offset (default \MontreCode{5mm}) for multiple banknotes vertically stacked ;
+ \item \MontreCode{Stack} := type of stacking (default \MontreCode{H}) within \MontreCode{H/fan} ;
+ \item \MontreCode{Angle} := rotation (default \MontreCode{10}) for \texttt{fan} stacking.
+\end{itemize}
+
+List of banknotes, for \texttt{H} stacking, can be given within \MontreCode{2*100+3*50+10+5} for example.
+
+List of banknotes, for \texttt{fan} stacking, can be given within \MontreCode{5+5+10+10+20+50+100+200+200} for example.
+
+\subsection{Examples}
+
+\begin{DemoCode}{}
+%sample with one banknote
+\EuroBanknotes{500}\EuroBanknotes{200}\EuroBanknotes{100}\EuroBanknotes{50}\\
+\EuroBanknotes{20}\EuroBanknotes{10}\EuroBanknotes{5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%multiple banknotes, side by side, global height
+\EuroBanknotes{50+20+5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%multiple banknotes, side by side, with correct scaling
+\EuroBanknotes[RefHeight=3cm,Style=full,AutoHeight]{100+10+5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%stacked banknotes (b&w), with correct scaling
+\EuroBanknotes[OffsetH=7.5mm,Style=bw,AutoHeight]{4*100+2*50+20+4*10+3*5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%syde by side banknotes, with correct scaling
+\EuroBanknotes[RefHeight=1.75cm,AutoHeight]{4*100+2*50+20+4*10+3*5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%fan stacking, with adjusted offsets
+\EuroBanknotes%
+ [Stack=fan,RefHeight=2.05cm,AutoHeight,Angle=17.5,%
+ OffsetH=0.1mm,OffsetV=0mm]%
+ {5+5+10+10+20+50+100+200+200}
+\end{DemoCode}
+
+\pagebreak
+
+\section{French version}
+
+Il est possible d'utiliser les commandes en version francisée :
+
+\begin{DemoCode}{listing only}
+\PiecesEuro[clés]{liste de pièces}
+\BilletsEuro[clés]{liste de billets}
+\end{DemoCode}
+
+Les clés disponibles sont :
+
+\begin{itemize}
+ \item \MontreCode{HauteurRef} := hauteur (défaut \MontreCode{2cm}) pour les pièces/billets (relativement à celle de 2€ et celui de 500€ si \MontreCode{HauteurAuto=true}) ;
+ \item \MontreCode{Style} := style pour les pièces/billets (défaut \MontreCode{simple}), parmi \MontreCode{full/simple/nb} ;
+ \item \MontreCode{HauteurAuto} := booléen (défaut \MontreCode{false}) pour adapter les hauteurs ;
+ \item \MontreCode{DecalH} := décalage horizontal (défaut \MontreCode{0pt}) pour des empilages (côte à côte si \MontreCode{0pt}) ;
+ \item \MontreCode{DecalV} := décalage vertical (défaut \MontreCode{5mm}) pour les empilages verticaux ;
+ \item \MontreCode{Empilage} := sens de l'empilage (défaut \MontreCode{H}) éventuel, parmi \MontreCode{H/eventail} suivant le type d'objets.
+\end{itemize}
+
+La liste peut être donnée sous la forme \MontreCode{3*2+4*1+2*0.2+4*0.1} pour des affichages \textit{classiques} par exemple.
+
+Pour le cas de billets en éventail, la liste pourra être donnée sous la forme \MontreCode{5+5+10+10+20+50+100+200+200} par exemple.
+
+\begin{DemoCode}{}
+%exemple avec une pièce
+\PiecesEuro{2}\PiecesEuro{1}\PiecesEuro{0.5}\PiecesEuro{0.2}%
+\PiecesEuro{0.1}\PiecesEuro{0.05}\PiecesEuro{0.02}\PiecesEuro{0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%pièces multiples, côte à côte, taille uniforme, style simple
+\PiecesEuro{2+1+0.5+0.2+0.1+0.05+0.02+0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%pièces multiples, côte à côte, taille uniforme, style full
+\PiecesEuro[Style=full]{2+1+0.5+0.2+0.1+0.05+0.02+0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%pièces multiples, côte à côte, taille uniforme, style simplenb
+\PiecesEuro[Style=nb]{2+1+0.5+0.2+0.1+0.05+0.02+0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%pièces empilées (n&b) horizontalement et tailles ajustées
+\PiecesEuro%
+ [HauteurRef=3cm,HauteurAuto,DecalH=7.5mm,Style=nb]{4*2+3*1+4*0.2+1*0.1+2*0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%pièces empilées (full résolution) verticalement et tailles ajustées
+\PiecesEuro%
+ [Empilage=V,HauteurRef=3cm,HauteurAuto,Style=full]{4*2+3*1+4*0.2+1*0.1+2*0.01}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%exemple avec un billet
+\BilletsEuro{500}\BilletsEuro{200}\BilletsEuro{100}\BilletsEuro{50}\\
+\BilletsEuro{20}\BilletsEuro{10}\BilletsEuro{5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%plusieurs billets, côte à côte, taille uniforme
+\BilletsEuro{50+20+5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%plusieurs billets (full résolution), côte à côte, tailles adaptées
+\BilletsEuro[HauteurRef=3cm,Style=full,HauteurAuto]{100+10+5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%billets empilés (n&b), tailles adaptées
+\BilletsEuro[DecalH=7.5mm,Style=nb]{4*100+2*50+20+4*10+3*5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%billets côte à côte, tailles adaptées
+\BilletsEuro[HauteurRef=1.75cm,HauteurAuto]{4*100+2*50+20+4*10+3*5}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%billets en éventail, hauteur et décalages ajustés
+\BilletsEuro%
+ [Empilage=eventail,HauteurRef=2.05cm,HauteurAuto,Angle=17.5,%
+ DecalH=0.1mm,DecalV=0mm]%
+ {5+5+10+10+20+50+100+200+200}
+\end{DemoCode}
+
+\pagebreak
+
+
+\section{History}
+
+\begin{quote}
+\begin{verbatim}
+0.1.1 : New filenames, according to TL rules
+0.1.0 : Initial version
+\end{verbatim}
+\end{quote}
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-100euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-100euro.pdf
new file mode 100644
index 0000000000..6899f2b2d3
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-100euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-100eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-100eurosimple.pdf
new file mode 100644
index 0000000000..b021e90c2b
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-100eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-100eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-100eurosimplebw.pdf
new file mode 100644
index 0000000000..e3777a5c9d
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-100eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-10cent.pdf b/macros/latex/contrib/euromoney/tex/euromoney-10cent.pdf
new file mode 100644
index 0000000000..ddeac2a07f
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-10cent.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-10centsimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-10centsimple.pdf
new file mode 100644
index 0000000000..8fad414db2
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-10centsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-10centsimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-10centsimplebw.pdf
new file mode 100644
index 0000000000..46bfac9dbc
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-10centsimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-10euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-10euro.pdf
new file mode 100644
index 0000000000..0c67ef4982
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-10euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-10eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-10eurosimple.pdf
new file mode 100644
index 0000000000..b07568d6fb
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-10eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-10eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-10eurosimplebw.pdf
new file mode 100644
index 0000000000..24928b831b
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-10eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-1cent.pdf b/macros/latex/contrib/euromoney/tex/euromoney-1cent.pdf
new file mode 100644
index 0000000000..bb9d01c1d4
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-1cent.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-1centsimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-1centsimple.pdf
new file mode 100644
index 0000000000..1b32b89783
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-1centsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-1centsimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-1centsimplebw.pdf
new file mode 100644
index 0000000000..5db25de626
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-1centsimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-1euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-1euro.pdf
new file mode 100644
index 0000000000..48f184fa19
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-1euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-1eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-1eurosimple.pdf
new file mode 100644
index 0000000000..8c34a15535
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-1eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-1eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-1eurosimplebw.pdf
new file mode 100644
index 0000000000..d5346534b4
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-1eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-200euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-200euro.pdf
new file mode 100644
index 0000000000..dc2c56bfb0
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-200euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-200eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-200eurosimple.pdf
new file mode 100644
index 0000000000..dde3d6f2bb
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-200eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-200eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-200eurosimplebw.pdf
new file mode 100644
index 0000000000..78f052bd57
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-200eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-20cent.pdf b/macros/latex/contrib/euromoney/tex/euromoney-20cent.pdf
new file mode 100644
index 0000000000..28f5f255a4
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-20cent.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-20centsimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-20centsimple.pdf
new file mode 100644
index 0000000000..c101540707
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-20centsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-20centsimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-20centsimplebw.pdf
new file mode 100644
index 0000000000..38b77e3671
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-20centsimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-20euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-20euro.pdf
new file mode 100644
index 0000000000..2e3f409943
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-20euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-20eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-20eurosimple.pdf
new file mode 100644
index 0000000000..4aadb8a293
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-20eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-20eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-20eurosimplebw.pdf
new file mode 100644
index 0000000000..a855a3128c
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-20eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-2cent.pdf b/macros/latex/contrib/euromoney/tex/euromoney-2cent.pdf
new file mode 100644
index 0000000000..cee0ca1ffa
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-2cent.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-2centsimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-2centsimple.pdf
new file mode 100644
index 0000000000..e68cc46560
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-2centsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-2centsimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-2centsimplebw.pdf
new file mode 100644
index 0000000000..2857426e69
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-2centsimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-2euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-2euro.pdf
new file mode 100644
index 0000000000..02ad7cd0e5
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-2euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-2eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-2eurosimple.pdf
new file mode 100644
index 0000000000..85ee0ccdba
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-2eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-2eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-2eurosimplebw.pdf
new file mode 100644
index 0000000000..bc3d2d8447
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-2eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-500euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-500euro.pdf
new file mode 100644
index 0000000000..7c2c721a4e
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-500euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-500eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-500eurosimple.pdf
new file mode 100644
index 0000000000..719d51c8e7
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-500eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-500eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-500eurosimplebw.pdf
new file mode 100644
index 0000000000..0d1bba9565
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-500eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-50cent.pdf b/macros/latex/contrib/euromoney/tex/euromoney-50cent.pdf
new file mode 100644
index 0000000000..12d3a85bd9
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-50cent.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-50centsimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-50centsimple.pdf
new file mode 100644
index 0000000000..6fee6a828a
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-50centsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-50centsimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-50centsimplebw.pdf
new file mode 100644
index 0000000000..65776d5d24
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-50centsimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-50euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-50euro.pdf
new file mode 100644
index 0000000000..9d26259287
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-50euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-50eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-50eurosimple.pdf
new file mode 100644
index 0000000000..08b128d03f
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-50eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-50eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-50eurosimplebw.pdf
new file mode 100644
index 0000000000..dc2c5acbcf
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-50eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-5cent.pdf b/macros/latex/contrib/euromoney/tex/euromoney-5cent.pdf
new file mode 100644
index 0000000000..dfd4c98914
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-5cent.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-5centsimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-5centsimple.pdf
new file mode 100644
index 0000000000..c8c4fa6daf
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-5centsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-5centsimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-5centsimplebw.pdf
new file mode 100644
index 0000000000..f108cf065f
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-5centsimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-5euro.pdf b/macros/latex/contrib/euromoney/tex/euromoney-5euro.pdf
new file mode 100644
index 0000000000..9fdb0301b2
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-5euro.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-5eurosimple.pdf b/macros/latex/contrib/euromoney/tex/euromoney-5eurosimple.pdf
new file mode 100644
index 0000000000..5608fd3085
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-5eurosimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney-5eurosimplebw.pdf b/macros/latex/contrib/euromoney/tex/euromoney-5eurosimplebw.pdf
new file mode 100644
index 0000000000..a670f2ac2f
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney-5eurosimplebw.pdf
Binary files differ
diff --git a/macros/latex/contrib/euromoney/tex/euromoney.sty b/macros/latex/contrib/euromoney/tex/euromoney.sty
new file mode 100644
index 0000000000..b49337f412
--- /dev/null
+++ b/macros/latex/contrib/euromoney/tex/euromoney.sty
@@ -0,0 +1,549 @@
+% Author : C. Pierquet
+% licence : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+% pdf from domain public svg (user frankes in openclipart), see https://openclipart.org/artist/frankes
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{euromoney}[2024/09/07 0.1.1 Insert Euro coins and banknotes]
+
+%------History
+% 0.1.1 New filenames, according to TL rules
+% 0.1.0 Initial version
+
+%------Packages
+\RequirePackage{xstring}
+\RequirePackage{simplekv}
+\RequirePackage{graphicx}
+\RequirePackage{tikz}
+\usetikzlibrary{calc}
+\RequirePackage{listofitems}
+
+%------Lengths
+\newlength{\tmphautmonnaies}
+\setlength{\tmphautmonnaies}{1em}
+\newlength{\tmpoffsethmonnaies}
+\setlength{\tmpoffsethmonnaies}{0pt}
+\newlength{\tmpoffsetvmonnaies}
+\setlength{\tmpoffsetvmonnaies}{5mm}
+
+%------Keys [fr]
+\defKV[Monnaies]{%
+ HauteurRef=\setlength{\tmphautmonnaies}{#1},%
+ Style=\def\piecebilletstyle{#1},%
+ DecalH=\setlength{\tmpoffsethmonnaies}{#1},%
+ DecalV=\setlength{\tmpoffsetvmonnaies}{#1},%
+ Empilage=\def\piecebilletempilage{#1},%
+ Angle=\def\piecebilletrotation{#1}
+}
+
+\setKVdefault[Monnaies]{%
+ HauteurRef=2cm,%
+ Style=simple,%
+ HauteurAuto=false,%
+ DecalH=0pt,%
+ DecalV=5mm,%
+ Empilage=H,%
+ Angle=10
+}
+
+%------Keys [en]
+\defKV[Moneys]{%
+ RefHeight=\setlength{\tmphautmonnaies}{#1},%
+ Style=\def\piecebilletstyle{#1},%
+ OffsetH=\setlength{\tmpoffsethmonnaies}{#1},%
+ OffsetV=\setlength{\tmpoffsetvmonnaies}{#1},%
+ Stack=\def\piecebilletempilage{#1},%
+ Angle=\def\piecebilletrotation{#1}
+}
+
+\setKVdefault[Moneys]{%
+ RefHeight=2cm,%
+ Style=simple,%
+ AutoHeight=false,%
+ OffsetH=0pt,%
+ OffsetV=5mm,%
+ Stack=H,%
+ Angle=10
+}
+
+%-----Macros billet(s) [fr]
+\NewDocumentCommand\BilletEuro{ D<>{} O{} m }{%
+ \restoreKV[Monnaies]%
+ \setKV[Monnaies]{#1}%
+ \IfStrEqCase{\piecebilletstyle}{%
+ {simple}{\def\monnaiessuffixe{simple}}%
+ {full}{\def\monnaiessuffixe{}}%
+ {nb}{\def\monnaiessuffixe{simplebw}}%
+ }%
+ \includegraphics[#2]{euromoney-#3euro\monnaiessuffixe}%
+}
+
+\NewDocumentCommand\BilletsEuro{ O{} m }{%
+ \restoreKV[Monnaies]%
+ \setKV[Monnaies]{#1}%
+ \IfStrEqCase{\piecebilletstyle}{%
+ {simple}{\def\monnaiessuffixe{simple}}%
+ {full}{\def\monnaiessuffixe{}}%
+ {nb}{\def\monnaiessuffixe{simplebw}}%
+ }%
+ %affichage
+ \IfStrEq{\piecebilletempilage}{H}%empilage vertical
+ {%
+ \setsepchar{+}%
+ \readlist*\listetmppieces{#2}%
+ \xdef\nbempilagespieces{\listetmppieceslen}%
+ \ifdim\tmpoffsethmonnaies=0pt\relax%
+ \foreach \i in {1,...,\listetmppieceslen}{%
+ %on découpe l'empilage
+ \itemtomacro\listetmppieces[\i]{\tmpempilpieces}%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \StrCut{\tmpempilpieces}{*}{\tmpnbpieces}{\tmptypepieces}%
+ }%
+ {%
+ \xdef\tmpnbpieces{1}%
+ \xdef\tmptypepieces{\tmpempilpieces}%
+ }%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiessomme{500euro}}%
+ {200}{\def\monnaiessomme{200euro}}%
+ {100}{\def\monnaiessomme{100euro}}%
+ {50}{\def\monnaiessomme{50euro}}%
+ {20}{\def\monnaiessomme{20euro}}%
+ {10}{\def\monnaiessomme{10euro}}%
+ {5}{\def\monnaiessomme{5euro}}%
+ }%
+ \ifboolKV[Monnaies]{HauteurAuto}%
+ {%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\tmpnbpieces}{%
+ \draw (0,{(\i-1)*\tmpoffsetvmonnaies}) node[anchor=south west,inner sep=0pt] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ \end{tikzpicture}%
+ }%
+ \else%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\listetmppieceslen}{%
+ %on découpe l'empilage
+ \itemtomacro\listetmppieces[\i]{\tmpempilpieces}%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \StrCut{\tmpempilpieces}{*}{\tmpnbpieces}{\tmptypepieces}%
+ }%
+ {%
+ \xdef\tmpnbpieces{1}\xdef\tmptypepieces{\tmpempilpieces}%
+ }%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiessomme{500euro}}%
+ {200}{\def\monnaiessomme{200euro}}%
+ {100}{\def\monnaiessomme{100euro}}%
+ {50}{\def\monnaiessomme{50euro}}%
+ {20}{\def\monnaiessomme{20euro}}%
+ {10}{\def\monnaiessomme{10euro}}%
+ {5}{\def\monnaiessomme{5euro}}%
+ }%
+ \ifboolKV[Monnaies]{HauteurAuto}%
+ {%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ \foreach \ii in {1,...,\tmpnbpieces}{%
+ \draw ({(\i-1)*\tmpoffsethmonnaies},{(\ii-1)*\tmpoffsetvmonnaies}) node[anchor=south west,inner sep=0pt] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ }%
+ \end{tikzpicture}%
+ \fi%
+ }%
+ {}%
+ \IfStrEq{\piecebilletempilage}{eventail}%empilage eventail
+ {%
+ \setsepchar{+}%
+ \readlist*\listbilletseventail{#2}%
+ \xdef\nbeventailbillets{\listbilletseventaillen}%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\nbeventailbillets}{%
+ \itemtomacro\listbilletseventail[\i]{\tmpempilpieces}%
+ \IfStrEqCase{\tmpempilpieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ \IfStrEqCase{\tmpempilpieces}{%
+ {500}{\def\monnaiessomme{500euro}}%
+ {200}{\def\monnaiessomme{200euro}}%
+ {100}{\def\monnaiessomme{100euro}}%
+ {50}{\def\monnaiessomme{50euro}}%
+ {20}{\def\monnaiessomme{20euro}}%
+ {10}{\def\monnaiessomme{10euro}}%
+ {5}{\def\monnaiessomme{5euro}}%
+ }%
+ \ifboolKV[Monnaies]{HauteurAuto}%
+ {%
+ \IfStrEqCase{\tmpempilpieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ \draw ({-\i*\tmpoffsethmonnaies},{-\i*\tmpoffsetvmonnaies}) node[above right=0pt,inner sep=0pt,outer sep=0pt,rotate={\fpeval{90-0.5*\piecebilletrotation*\nbeventailbillets+(\i-1)*\piecebilletrotation}}] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ \end{tikzpicture}%
+ }%
+ {}%
+}
+
+%-----Macros billet(s) [en]
+\NewDocumentCommand\EuroBanknote{ D<>{} O{} m }{%
+ \restoreKV[Moneys]%
+ \setKV[Moneys]{#1}%
+ \IfStrEqCase{\piecebilletstyle}{%
+ {simple}{\def\monnaiessuffixe{simple}}%
+ {full}{\def\monnaiessuffixe{}}%
+ {bw}{\def\monnaiessuffixe{simplebw}}%
+ }%
+ \includegraphics[#2]{#3euro\monnaiessuffixe}%
+}
+
+\NewDocumentCommand\EuroBanknotes{ O{} m }{%
+ \restoreKV[Moneys]%
+ \setKV[Moneys]{#1}%
+ \IfStrEqCase{\piecebilletstyle}{%
+ {simple}{\def\monnaiessuffixe{simple}}%
+ {full}{\def\monnaiessuffixe{}}%
+ {bw}{\def\monnaiessuffixe{simplebw}}%
+ }%
+ %affichage
+ \IfStrEq{\piecebilletempilage}{H}%empilage vertical
+ {%
+ \setsepchar{+}%
+ \readlist*\listetmppieces{#2}%
+ \xdef\nbempilagespieces{\listetmppieceslen}%
+ \ifdim\tmpoffsethmonnaies=0pt\relax%
+ \foreach \i in {1,...,\listetmppieceslen}{%
+ %on découpe l'empilage
+ \itemtomacro\listetmppieces[\i]{\tmpempilpieces}%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \StrCut{\tmpempilpieces}{*}{\tmpnbpieces}{\tmptypepieces}%
+ }%
+ {%
+ \xdef\tmpnbpieces{1}%
+ \xdef\tmptypepieces{\tmpempilpieces}%
+ }%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiessomme{500euro}}%
+ {200}{\def\monnaiessomme{200euro}}%
+ {100}{\def\monnaiessomme{100euro}}%
+ {50}{\def\monnaiessomme{50euro}}%
+ {20}{\def\monnaiessomme{20euro}}%
+ {10}{\def\monnaiessomme{10euro}}%
+ {5}{\def\monnaiessomme{5euro}}%
+ }%
+ \ifboolKV[Moneys]{AutoHeight}%
+ {%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\tmpnbpieces}{%
+ \draw (0,{(\i-1)*\tmpoffsetvmonnaies}) node[anchor=south west,inner sep=0pt] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ \end{tikzpicture}%
+ }%
+ \else%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\listetmppieceslen}{%
+ %on découpe l'empilage
+ \itemtomacro\listetmppieces[\i]{\tmpempilpieces}%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \StrCut{\tmpempilpieces}{*}{\tmpnbpieces}{\tmptypepieces}%
+ }%
+ {%
+ \xdef\tmpnbpieces{1}\xdef\tmptypepieces{\tmpempilpieces}%
+ }%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiessomme{500euro}}%
+ {200}{\def\monnaiessomme{200euro}}%
+ {100}{\def\monnaiessomme{100euro}}%
+ {50}{\def\monnaiessomme{50euro}}%
+ {20}{\def\monnaiessomme{20euro}}%
+ {10}{\def\monnaiessomme{10euro}}%
+ {5}{\def\monnaiessomme{5euro}}%
+ }%
+ \ifboolKV[Moneys]{AutoHeight}%
+ {%
+ \IfStrEqCase{\tmptypepieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ \foreach \ii in {1,...,\tmpnbpieces}{%
+ \draw ({(\i-1)*\tmpoffsethmonnaies},{(\ii-1)*\tmpoffsetvmonnaies}) node[anchor=south west,inner sep=0pt] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ }%
+ \end{tikzpicture}%
+ \fi%
+ }%
+ {}%
+ \IfStrEq{\piecebilletempilage}{fan}%empilage eventail
+ {%
+ \setsepchar{+}%
+ \readlist*\listbilletseventail{#2}%
+ \xdef\nbeventailbillets{\listbilletseventaillen}%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\nbeventailbillets}{%
+ \itemtomacro\listbilletseventail[\i]{\tmpempilpieces}%
+ \IfStrEqCase{\tmpempilpieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ \IfStrEqCase{\tmpempilpieces}{%
+ {500}{\def\monnaiessomme{500euro}}%
+ {200}{\def\monnaiessomme{200euro}}%
+ {100}{\def\monnaiessomme{100euro}}%
+ {50}{\def\monnaiessomme{50euro}}%
+ {20}{\def\monnaiessomme{20euro}}%
+ {10}{\def\monnaiessomme{10euro}}%
+ {5}{\def\monnaiessomme{5euro}}%
+ }%
+ \ifboolKV[Moneys]{AutoHeight}%
+ {%
+ \IfStrEqCase{\tmpempilpieces}{%
+ {500}{\def\monnaiesechellerelative{1}}%
+ {200}{\def\monnaiesechellerelative{1}}%
+ {100}{\def\monnaiesechellerelative{1}}%
+ {50}{\def\monnaiesechellerelative{0.9390}}%
+ {20}{\def\monnaiesechellerelative{0.8780}}%
+ {10}{\def\monnaiesechellerelative{0.8171}}%
+ {5}{\def\monnaiesechellerelative{0.7561}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ \draw ({-\i*\tmpoffsethmonnaies},{-\i*\tmpoffsetvmonnaies}) node[above right=0pt,inner sep=0pt,outer sep=0pt,rotate={\fpeval{90-0.5*\piecebilletrotation*\nbeventailbillets+(\i-1)*\piecebilletrotation}}] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ \end{tikzpicture}%
+ }%
+ {}%
+}
+
+%-----Macro pièces [fr]
+\NewDocumentCommand\PiecesEuro{ O{} m }{%
+ \restoreKV[Monnaies]%
+ \setKV[Monnaies]{#1}%
+ \IfStrEqCase{\piecebilletstyle}{%
+ {simple}{\def\monnaiessuffixe{simple}}%
+ {full}{\def\monnaiessuffixe{}}%
+ {nb}{\def\monnaiessuffixe{simplebw}}%
+ }%
+ %boucle
+ \setsepchar{+}%
+ \readlist*\listetmppieces{#2}%
+ \xdef\nbempilagespieces{\listetmppieceslen}%
+ \foreach \i in {1,...,\listetmppieceslen}{%
+ %on découpe l'empilage
+ \itemtomacro\listetmppieces[\i]{\tmpempilpieces}%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \StrCut{\tmpempilpieces}{*}{\tmpnbpieces}{\tmptypepieces}%
+ }%
+ {%
+ \xdef\tmptypepieces{\tmpempilpieces}%
+ }%
+ \IfStrEqCase{\tmptypepieces}{%
+ {2}{\def\monnaiessomme{2euro}}%
+ {1}{\def\monnaiessomme{1euro}}%
+ {0.5}{\def\monnaiessomme{50cent}}%
+ {0.2}{\def\monnaiessomme{20cent}}%
+ {0.1}{\def\monnaiessomme{10cent}}%
+ {0.05}{\def\monnaiessomme{5cent}}%
+ {0.02}{\def\monnaiessomme{2cent}}%
+ {0.01}{\def\monnaiessomme{1cent}}%
+ }%
+ \ifboolKV[Monnaies]{HauteurAuto}%
+ {%
+ \IfStrEqCase{\tmptypepieces}{%
+ {2}{\def\monnaiesechellerelative{1}}%
+ {1}{\def\monnaiesechellerelative{0.9029}}%
+ {0.5}{\def\monnaiesechellerelative{0.9417}}%
+ {0.2}{\def\monnaiesechellerelative{0.8641}}%
+ {0.1}{\def\monnaiesechellerelative{0.7670}}%
+ {0.05}{\def\monnaiesechellerelative{0.8252}}%
+ {0.02}{\def\monnaiesechellerelative{0.7282}}%
+ {0.01}{\def\monnaiesechellerelative{0.6311}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ %affichage
+ \IfStrEq{\piecebilletempilage}{H}%
+ {%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}%
+ \ifnum\tmpnbpieces=1\else%
+ \foreach \i in {1,...,\inteval{\tmpnbpieces-1}}{%
+ \ifdim\tmpoffsethmonnaies>0pt\relax\hspace*{\dimexpr\tmpoffsethmonnaies-\monnaiesechellerelative\tmphautmonnaies\relax}\fi%
+ \includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}%
+ }%
+ \fi%
+ }%
+ {%
+ \includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}%
+ }%
+ \ifnum\i<\listetmppieceslen%
+ \ifdim\tmpoffsethmonnaies>0pt\relax\hspace*{\dimexpr\tmpoffsethmonnaies-\monnaiesechellerelative\tmphautmonnaies\relax}%
+ \fi%
+ \fi%
+ }%
+ {%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\tmpnbpieces}{%
+ \draw (0,{(\i-1)*\tmpoffsetvmonnaies}) node[inner sep=0pt] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ \end{tikzpicture}%
+ }%
+ }%
+}
+
+%-----Macro pièces [en]
+\NewDocumentCommand\EuroCoins{ O{} m }{%
+ \restoreKV[Moneys]%
+ \setKV[Moneys]{#1}%
+ \IfStrEqCase{\piecebilletstyle}{%
+ {simple}{\def\monnaiessuffixe{simple}}%
+ {full}{\def\monnaiessuffixe{}}%
+ {bw}{\def\monnaiessuffixe{simplebw}}%
+ }%
+ %boucle
+ \setsepchar{+}%
+ \readlist*\listetmppieces{#2}%
+ \xdef\nbempilagespieces{\listetmppieceslen}%
+ \foreach \i in {1,...,\listetmppieceslen}{%
+ %on découpe l'empilage
+ \itemtomacro\listetmppieces[\i]{\tmpempilpieces}%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \StrCut{\tmpempilpieces}{*}{\tmpnbpieces}{\tmptypepieces}%
+ }%
+ {%
+ \xdef\tmptypepieces{\tmpempilpieces}%
+ }%
+ \IfStrEqCase{\tmptypepieces}{%
+ {2}{\def\monnaiessomme{2euro}}%
+ {1}{\def\monnaiessomme{1euro}}%
+ {0.5}{\def\monnaiessomme{50cent}}%
+ {0.2}{\def\monnaiessomme{20cent}}%
+ {0.1}{\def\monnaiessomme{10cent}}%
+ {0.05}{\def\monnaiessomme{5cent}}%
+ {0.02}{\def\monnaiessomme{2cent}}%
+ {0.01}{\def\monnaiessomme{1cent}}%
+ }%
+ \ifboolKV[Moneys]{AutoHeight}%
+ {%
+ \IfStrEqCase{\tmptypepieces}{%
+ {2}{\def\monnaiesechellerelative{1}}%
+ {1}{\def\monnaiesechellerelative{0.9029}}%
+ {0.5}{\def\monnaiesechellerelative{0.9417}}%
+ {0.2}{\def\monnaiesechellerelative{0.8641}}%
+ {0.1}{\def\monnaiesechellerelative{0.7670}}%
+ {0.05}{\def\monnaiesechellerelative{0.8252}}%
+ {0.02}{\def\monnaiesechellerelative{0.7282}}%
+ {0.01}{\def\monnaiesechellerelative{0.6311}}%
+ }%
+ }%
+ {%
+ \def\monnaiesechellerelative{1}%
+ }%
+ %affichage
+ \IfStrEq{\piecebilletempilage}{H}%
+ {%
+ \IfSubStr{\tmpempilpieces}{*}%
+ {%
+ \includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}%
+ \ifnum\tmpnbpieces=1\else%
+ \foreach \i in {1,...,\inteval{\tmpnbpieces-1}}{%
+ \ifdim\tmpoffsethmonnaies>0pt\relax\hspace*{\dimexpr\tmpoffsethmonnaies-\monnaiesechellerelative\tmphautmonnaies\relax}\fi%
+ \includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}%
+ }%
+ \fi%
+ }%
+ {%
+ \includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}%
+ }%
+ \ifnum\i<\listetmppieceslen%
+ \ifdim\tmpoffsethmonnaies>0pt\relax\hspace*{\dimexpr\tmpoffsethmonnaies-\monnaiesechellerelative\tmphautmonnaies\relax}%
+ \fi%
+ \fi%
+ }%
+ {%
+ \begin{tikzpicture}
+ \foreach \i in {1,...,\tmpnbpieces}{%
+ \draw (0,{(\i-1)*\tmpoffsetvmonnaies}) node[inner sep=0pt] {\includegraphics[height=\dimexpr\monnaiesechellerelative\tmphautmonnaies\relax]{euromoney-\monnaiessomme\monnaiessuffixe}} ;%
+ }%
+ \end{tikzpicture}%
+ }%
+ }%
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/ezedits/README.md b/macros/latex/contrib/ezedits/README.md
new file mode 100644
index 0000000000..49624cd593
--- /dev/null
+++ b/macros/latex/contrib/ezedits/README.md
@@ -0,0 +1,47 @@
+# Package `ezedits` by Joey Smiga
+
+Version 2024-09-12 v1.0
+
+Maintained by Joseph "Joey" A. Smiga \<joseph.smiga@rochester.edu\>
+
+`ezedits` is a package built for collaboratively editing LaTeX documents and tracking changes. Through highly customizable commands, the user can choose how their and their collaborators modifications appear in the document. Additional tools are provided to help keep track of where the edits are made within the pdf.
+
+Originally developed ca. 2018, this has been refined over the years.
+
+## Copyright (C)
+&copy;2024 Joseph A. Smiga
+
+## Usage tips
+
+All edits will raise a warning, making it easier to find where changes occured and clean up the document.
+
+### Package options
+
+- `arrows` add arrows $\Longleftarrow$ pointing to edits in margins (in captions, a pair of arrows are added, instead; $\Longrightarrow$ Like this $\Longleftarrow$). These arrows are styled based on the edit.
+- `accept` accept all edits (arrows still appear if `arrows` option is used).
+- `pdfcomment` write edits as pdf annotations (arrows still appear if `arrows` option is used).
+- `nosout` do not strikeout delete text (by default). If this option is set, the `ulem` package is not used.
+
+### Commands
+
+General comments can be added with `\draftnote{...}`. These comments will appear in-text as `[...]` with some default styling. When also using the `xcolor` package, the notes will be colored red. The command `\setnotestyle{<style>}` can be used to customize the note style.
+
+`\defineEdit{ABC}{<styleA>}{<styleB>}` will generate a set of commands with the prefix `ABC` for editing where `<styleA>` is used for omitted text and `<styleB>` is used for added text. The following commands are generated:
+- `\ABCEdit{del}{ins}` Used to replace `del` with `ins`.
+- `\ABCIns{ins}` Used to insert `ins`.
+- `\ABCDel{del}` Used to delete `del`.
+
+Running the above command for each collaborator (especially with different style arguments) can make it easy to keep track of who made what comment.
+
+`\makeeditreport` generates a `tabular` environment that summarizes where/how many edits were made.
+
+## Possible issues
+
+- Exact page numbers for `\makeeditreport` may be slightly off due to how LaTeX updates `\thepage`.
+- Problems can arise when editing across several paragraphs. It is recommended to use new commands between paragraphs.
+- `pdfcomment` option can be a bit rough at times, though it generally works.
+
+
+## License
+LaTeX Project Public License, version 1.3c or later.
+
diff --git a/macros/latex/contrib/ezedits/ezedits.sty b/macros/latex/contrib/ezedits/ezedits.sty
new file mode 100644
index 0000000000..94a7b3bd5c
--- /dev/null
+++ b/macros/latex/contrib/ezedits/ezedits.sty
@@ -0,0 +1,221 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% ezedits.sty
+%% Copyright 2024 J. A. Smiga
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status “maintained”.
+%
+% The Current Maintainer of this work is J. A. Smiga.
+%
+% This work consists of the file ezedits.sty
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% This package was written by Joseph A. Smiga <joseph.smiga@rochester.edu>
+%% Originally developed ca. 2018, this has been refined over the years.
+%%
+%% Some useful commands: (not up to date, see documentation)
+%% Included are a set of commands to generate comments for a LaTeX file.
+%%
+%% This package requires the following standard packages:
+%% ulem: for \sout
+%% xcolor: for coloring text.
+%% pdfcomment: if pdfcomment option is used
+%%
+%% Options are:
+%% arrows: add arrows pointing to edits in margins (in captions, a pair of arrows are added, instead).
+%% accept: accept all edits (arrows still appear).
+%% pdfcomments: write edits as pdf annotations (arrows still appear).
+
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{ezedits}[2024/09/12]
+
+% \RequirePackage{xcolor}
+
+\newif\if@accept\@acceptfalse % accept all comments (does not suppress package warnings)
+\newif\if@pdfcomm\@pdfcommfalse % write pdf comments
+\newif\if@showarrows\@showarrowsfalse
+\newif\if@importulem\@importulemtrue
+
+\DeclareOption{accept}{
+ \@accepttrue
+}
+\DeclareOption{pdfcomment}{ % add pdf comments
+ \@pdfcommtrue
+ \AtEndOfPackage{\RequirePackage{pdfcomment}}
+}
+\DeclareOption{arrows}{ % point to edits with arrows in the margin
+ \@showarrowstrue
+ \AtEndOfPackage{\RequirePackage{marginnote}}
+}
+\DeclareOption{nosout}{ % do not crossout deleted text
+ \@importulemfalse
+}
+
+\ProcessOptions\relax
+
+\if@importulem
+ \RequirePackage[normalem]{ulem}% import ulem (for sout)
+ % update \sout to work better with \cite
+ \let\old@cite\cite% remember original
+ \def\new@cite#1{\mbox{\old@cite{#1}}}% put cite in mbox
+ \def\new@sout#1{\let\cite\new@cite\sout{#1}\let\cite\old@cite}% redefine sout
+\else
+ \def\new@sout{}% do nothing
+\fi
+
+%% edit record
+\newcounter{ez@editcount}
+\newcounter{ez@totalcount}
+\gdef\ez@editrecord{}
+\newcommand{\ez@addeditpage}{%
+ \ifx\ez@lastpage\undefined% first edit
+ \xdef\ez@lastpage{\thepage}% initialize "last page" variable
+ % counter starts at 0, so it does not need to be updated
+ \else% 2nd+ edit
+ \if\ez@lastpage\thepage% same page as last edit
+ \relax% handled after if
+ \else% new page
+ % add record
+ \xdef\ez@editrecord{\ez@editrecord \ez@lastpage & \arabic{ez@editcount} \\}%
+ % reset counter/page number
+ \setcounter{ez@editcount}{0}%
+ \xdef\ez@lastpage{\thepage}%
+ \fi%
+ \fi%
+ % Note stepping needs to be "protected" (counters do not always like being changed, since this can mess up, e.g., TOC)
+ \protect\stepcounter{ez@editcount}% update counter
+ \protect\stepcounter{ez@totalcount}%
+}
+%TODO there is an issue with \thepage not always being accurate
+% Possible solution: use \label{} (with generated unique labels) and \pageref{} instead of \thepage.
+% -> This solution may cause out-of-order problems with floating images.
+
+\newcommand{\makeeditreport}{%
+ \begin{tabular}{l|r}
+ %\hline\hline
+ Page & \# edits/notes \\
+ \hline
+ \ifx\ez@lastpage\undefined
+ \relax% no edits
+ \else%
+ \ez@editrecord
+ \ez@lastpage & \arabic{ez@editcount}% current state
+ \fi \\
+ \hline
+ Total & \arabic{ez@totalcount}
+ %\hline\hline
+ \end{tabular}
+}
+
+% Style of \draftnote (may be a better way to write this)
+\newcommand{\@draftstyle}[1]{
+ {\ttfamily%
+ \ifx\textcolor\undefined%
+ #1%
+ \else%
+ \textcolor{red}{#1}%
+ \fi}%
+}
+% let user change the style
+\newcommand{\setnotestyle}[1]{\let\@draftstyle#1}
+
+%% Editing commands
+\newcommand{\draftnote}[1]{%
+ \PackageWarning{ezedits}{Unresolved note: #1}%
+ \ez@addeditpage{}% update record
+ \if@showarrows%
+ \@ifundefined{@captype}%
+ {\marginnote{\@draftstyle{$\Longleftarrow$}}}%
+ {\@draftstyle{$\Longrightarrow$}}%
+ \fi%
+ \if@accept{}\relax\else%
+ \if@pdfcomm%
+ \pdfmargincomment{#1}%
+ \else%
+ \@draftstyle{[#1]}%
+ \fi%
+ \fi%
+ \if@showarrows% if in caption, draw end arrow
+ \@ifundefined{@captype}{}{\@draftstyle{$\Longleftarrow$}}%
+ \fi%
+}
+
+\newcommand{\defineEdit}[3]{%
+ % "\###Edit" for removing and adding text
+ \expandafter\newcommand\csname #1Edit\endcsname[2]{%
+ \PackageWarning{ezedits}{Unresolved modifications by #1: "##1" ---> "##2"}%
+ \ez@addeditpage{}% update record
+ \if@showarrows%
+ \@ifundefined{@captype}%
+ {\marginnote{{#3{$\Longleftarrow$}}}}%
+ {{#3{$\Longrightarrow$}}}%
+ \fi%
+ \if@accept% Display as if accepted
+ ##2%
+ \else%
+ \if@pdfcomm%
+ \pdfmarkupcomment[author=#1,markup=StrikeOut]{##1{$_\wedge$}}{##2}%
+ \else%
+ {#2{\new@sout{##1}}}{#3{##2}}%
+ \fi%
+ \fi%
+ \if@showarrows% if in caption, draw end arrow
+ \@ifundefined{@captype}{}{{#3{$\Longleftarrow$}}}%
+ \fi%
+ }%
+ % "\###Ins" for adding text
+ \expandafter\newcommand\csname #1Ins\endcsname[1]{%
+ \ez@addeditpage{}% update record
+ \PackageWarning{ezedits}{Unresolved modifications by #1: "##1" inserted.}%
+ \if@showarrows%
+ \@ifundefined{@captype}%
+ {\marginnote{{#3{$\Longleftarrow$}}}}%
+ {{#3{$\Longrightarrow$}}}%
+ \fi%
+ \if@accept% Display as if accepted
+ ##1%
+ \else%
+ \if@pdfcomm%
+ % \pdfcomment[author=#1,icon=Insert]{##1}%
+ \pdfmarkupcomment[author=#1,markup=Underline]{$_\wedge$}{##1}%
+ \else%
+ {#3{##1}}%
+ \fi%
+ \fi%
+ \if@showarrows% if in caption, draw end arrow
+ \@ifundefined{@captype}{}{{#3{$\Longleftarrow$}}}%
+ \fi%
+ }%
+ % "\###Del" for removing text
+ \expandafter\newcommand\csname #1Del\endcsname[1]{%
+ \PackageWarning{ezedits}{Unresolved modifications by #1: "##1" removed.}%
+ \ez@addeditpage{}% update record
+ \if@showarrows%
+ \@ifundefined{@captype}%
+ {\marginnote{{#3{$\Longleftarrow$}}}}%
+ {{#3{$\Longrightarrow$}}}%
+ \fi%
+ \if@accept% Display as if accepted
+ {}%
+ \else%
+ \if@pdfcomm%
+ \pdfmarkupcomment[author=#1,markup=StrikeOut,color=red]{##1}{}%
+ \else%
+ {#2{\new@sout{##1}}}%
+ \fi%
+ \fi%
+ \if@showarrows% if in caption, draw end arrow
+ \@ifundefined{@captype}{}{{#3{$\Longleftarrow$}}}%
+ \fi%
+ }%
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/ezedits/ezedits_docs.pdf b/macros/latex/contrib/ezedits/ezedits_docs.pdf
new file mode 100644
index 0000000000..d4e759bfd7
--- /dev/null
+++ b/macros/latex/contrib/ezedits/ezedits_docs.pdf
Binary files differ
diff --git a/macros/latex/contrib/ezedits/ezedits_docs.tex b/macros/latex/contrib/ezedits/ezedits_docs.tex
new file mode 100644
index 0000000000..f7852ab880
--- /dev/null
+++ b/macros/latex/contrib/ezedits/ezedits_docs.tex
@@ -0,0 +1,171 @@
+\documentclass{article}
+
+\usepackage[arrows]{ezedits}
+
+\usepackage{xcolor}
+\usepackage{hyperref}
+
+\newcommand{\macroexample}[1]{\begin{center}
+ \fcolorbox{black}{black!6}{\parbox{.9\linewidth}{\ttfamily #1}}
+\end{center}}
+
+
+\title{\texttt{ezedits.sty} documentation}
+\author{Joseph A. Smiga $\langle$\href{mailto:joseph.smiga@rochester.edu?subject=[ezedits]\%20}{joseph.smiga@rochester.edu}$\rangle$}
+\date{Package: September 12, 2024 (v1.0)\\
+Documentation: September 12, 2024
+}
+
+\defineEdit{ABC}{\color{red}}{\color{blue}}
+\defineEdit{XYZ}{\color{gray}\textit}{\textbf}
+
+
+\begin{document}
+
+\maketitle
+
+\tableofcontents
+
+\section{Introduction}
+
+The \texttt{ezedits} package is designed to make it easier to edit \LaTeX{} documents with multiple people, while keeping track of what changed.
+
+Changes signified with this package with raise warnings. This makes it easier to keep track of changes and keep the document clean.
+
+Note that, in this document, the package is included as:
+\macroexample{\textbackslash{}usepackage[arrows]\{ezedits\}}
+with the \texttt{xcolor} package included.
+
+\section{Dependencies}
+The following packages may be required:
+\begin{itemize}
+ \item \href{https://ctan.org/pkg/ulem}{\texttt{ulem}}: used for strikethrough (\texttt{\textbackslash{sout}}). This is required by default, unless the \hyperlink{opt_nosout}{\texttt{nosout}} option is used.
+
+ \item \href{https://ctan.org/pkg/xcolor}{\texttt{xcolor}}: used for coloring text. If included (i.e., \texttt{\textbackslash{textcolor}} is defined), \hyperlink{cmd_draftnote}{\texttt{\textbackslash{draftnote}}} is colored red by default.
+
+ \item \href{https://ctan.org/pkg/pdfcomment}{\texttt{pdfcomment}}: needed when \hyperlink{opt_pdfcomment}{\texttt{pdfcomment}} option is used.
+\end{itemize}
+
+
+\section{Package options}
+The following options can be used with \verb+\usepackage[...]{ezedits}+:
+\begin{itemize}
+ \item \hypertarget{opt_arrows}{\texttt{arrows}} add arrows ``$\Longleftarrow$'' pointing to edits in margins (in captions, a pair of arrows are added, instead; $\Longrightarrow$Like this$\Longleftarrow$). These arrows are styled based on the edit.
+
+ \item \hypertarget{opt_accept}{\texttt{accept}} accept all edits (arrows still appear if \texttt{arrows} option is used).
+
+ \item \hypertarget{opt_pdfcomment}{\texttt{pdfcomment}} write edits as pdf annotations (arrows still appear if \texttt{arrows} option is used).
+
+ \item \hypertarget{opt_nosout}{\texttt{nosout}} do not strikeout delete text (by default). If this option is set, the \texttt{ulem} package is not required.
+\end{itemize}
+
+
+\section{Commands}
+
+\noindent\hypertarget{cmd_draftnote}{\texttt{\textbackslash{draftnote}\{...\}}}
+
+This will generate a note in the text. Text is placed in square brackets and stylized to make it distinct from the rest of the text.
+
+\draftnote{Here is an example note}
+
+\vspace{5mm}\hrule\vspace{2mm}
+
+\noindent\hypertarget{cmd_defineEdit}{\texttt{\textbackslash{defineEdit}\{ABC\}\{$\langle$styleA$\rangle$\}\{$\langle$styleB$\rangle$\}}}
+
+This will generate a set of commands with the prefix \texttt{ABC} for editing where \texttt{$\langle$styleA$\rangle$} is used for omitted text and \texttt{$\langle$styleB$\rangle$} is used for added text.
+
+The following commands are generated:
+\begin{itemize}
+ \item \verb+\ABCEdit{del}{ins}+ Used to replace \verb+del+ with \verb+ins+.
+
+ For example: \ABCEdit{old}{new}.
+
+ \item \verb+\ABCIns{ins}+ Used to insert \verb+ins+.
+
+ For example: \ABCIns{new}.
+
+ \item \verb+\ABCDel{del}+ Used to delete \verb+del+.
+
+ For example: \ABCDel{old}.
+\end{itemize}
+
+
+\vspace{5mm}\hrule\vspace{2mm}
+
+\noindent\hypertarget{cmd_setnotestyle}{\texttt{\textbackslash{setnotestyle}}\{$\langle$style$\rangle$\}}
+
+Redefine how \hyperlink{cmd_draftnote}{\texttt{\textbackslash{draftnote}}} appears. Here, $\langle$style$\rangle$ is a macro that takes one argument and returns a styled version of that text.
+
+
+\vspace{5mm}\hrule\vspace{2mm}
+
+\noindent\hypertarget{cmd_makeeditreport}{\texttt{\textbackslash{makeeditreport}}}
+
+Creates a summary of which page edits appear on (at the point that the command is called). The output is a \texttt{tabular} environment.
+
+
+\section{Examples}
+Here, we use the following command to define the edit commands:
+
+\macroexample{\textbackslash{}defineEdit\{ABC\}\{\textbackslash{}color\{red\}\}\{\textbackslash{}color\{blue\}\}}
+
+Here, the first argument \verb+{ABC}+ is the prefix for the edit commands. The second argument \verb+{\color{red}}+ describes how to style deleted text (the text is always crossed-out). Finally, the third argument \verb+{\color{blue}}+ describes what to do with added text. Note that, if the \hyperlink{opt_arrows}{\texttt{arrows}} option is used, it will be styled according to the latter argument.
+
+A simple example of editing a sentence:
+\macroexample{This \textbackslash{}ABCIns\{sentence\} contains some \textbackslash{}ABCDel\{major\} errors, but that is \textbackslash{}ABCEdit\{ok\}\{not a big deal\}. \textbackslash{}drafNote\{Remember to clean up the document\}}
+
+\begin{center}
+ \fbox{\parbox{.9\linewidth}{This \ABCIns{sentence} contains some \ABCDel{major} errors, but that is \ABCEdit{ok}{not a big deal}. \draftnote{Remember to clean up the document}}}
+\end{center}
+
+
+\vspace{5mm}\hrule\vspace{2mm}
+
+The styling options are fairly flexible. For example, one can define their own macro \verb+\style{...}+ that takes one argument and stylizes it.
+For example, an alternative styling:
+\macroexample{\textbackslash{}defineEdit\{XYZ\}\{\textbackslash{}color\{gray\}\textbackslash{}textit\}\}\{\textbackslash{}textbf\}}
+So deleted text \XYZDel{will look like this} while added text \XYZIns{will look like this}.
+
+
+\vspace{5mm}\hrule\vspace{2mm}
+
+One can also include edits in (floating) figures. However, if \hyperlink{opt_arrows}{\texttt{arrows}} package option is used, the arrows will appear around the edit, instead of in the margin.
+\begin{figure}[h]
+ \centering
+ {\rule{1cm}{1cm}}
+ \caption{This is just a \ABCIns{black} box.}
+ \label{fig:blackbox}
+\end{figure}
+
+
+\vspace{5mm}\hrule\vspace{2mm}
+
+After making edits, one can generate a summary of edits using \verb+\makeeditreport+ (only includes edits/notes from before this command is called):
+
+\macroexample{
+\textbackslash{}begin\{table\}[h]\par
+~~~~\textbackslash{}centering\par
+~~~~\textbackslash{}makeeditreport\par
+\textbackslash{}end\{table\}
+}
+
+\begin{table}[h]
+ \centering
+ \makeeditreport
+\end{table}
+
+Note that warnings will also be raised for each edit/note at their location.
+
+\section{Possible issues}
+There are times where the page number used in \hyperlink{cmd_makeeditreport}{\texttt{\textbackslash{makeeditreport}}} may not be exactly correct. This has to do with how \LaTeX{} updates \verb+\thepage+. Namely, it tends to wait until new paragraphs. Also, floating environments can be pushed to a different page.
+
+There are certain cases in which the ``strikeout'' styling does not play nicely. For example, there may be issues when crossing-out citations (c.f., \href{https://tex.stackexchange.com/q/98222}{this Stack Exchange}). To resolve this, \texttt{ezedits} modifies the \verb+\sout+ command to put \verb+\cite{...}+ within an \verb+\mbox+. This results in the minor inconvenience of not letting citations cross multiple lines.
+
+Also, issues can arise when command covers many paragraphs --- the simple resolution to this would be to repeat the command per paragraph.
+
+
+\section{Acknowledgements}
+JAS would like to thank Abhay Hegde for suggesting the \hyperlink{cmd_makeeditreport}{\texttt{\textbackslash{makeeditreport}}} macro.
+
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/fancyhdr/README b/macros/latex/contrib/fancyhdr/README
index 0d655cb9a5..3131149015 100644
--- a/macros/latex/contrib/fancyhdr/README
+++ b/macros/latex/contrib/fancyhdr/README
@@ -27,7 +27,7 @@ In order to latex the documentation you need to have a copy of
boxedminipage.sty (CTAN:/macros/latex/contrib/boxedminipage) and
refcount.sty (CTAN:/macros/latex/contrib/oberdiek/) installed.
-This is version 4.3 of fancyhdr.sty and extramarks.sty. They are
+This is version 4.3.1 of fancyhdr.sty and extramarks.sty. They are
described in the third edition of The LaTeX Companion.
Extramarks.sty has not been changed, except for the version and
copyright information.
diff --git a/macros/latex/contrib/fancyhdr/fancyhdr.dtx b/macros/latex/contrib/fancyhdr/fancyhdr.dtx
index c75575ee61..c20c966b8b 100644
--- a/macros/latex/contrib/fancyhdr/fancyhdr.dtx
+++ b/macros/latex/contrib/fancyhdr/fancyhdr.dtx
@@ -26,7 +26,7 @@
%<fancyhdr>\ProvidesPackage{fancyhdr}%
%<fancyheadings>\ProvidesPackage{fancyheadings}
%<extramarks>\ProvidesPackage{extramarks}
-%<fancyhdr|extramarks> [2024/07/18 v4.3
+%<fancyhdr|extramarks> [2024/07/23 v4.3.1
%<fancyhdr> Extensive control of page headers and footers]%
%<fancyheadings> [2022/11/09 v4.1
%<fancyheadings> Legacy package to call fancyhdr]
@@ -3068,12 +3068,19 @@
% \item Version 4.3, July 17, 2024
% \begin{itemize}
% \item Changed \cs{f@nch@everypar}. If the LaTeX kernel has
-% \texttt{expl3}, use \cs{tex\_everypar:D}, and reset \cs{par},
-% \cs{@@par} and \cs{endgraf} to their original \TeX{} definitions, so that
-% no paragraph hooks will intrude in \Package{fancyhdr} code\footnote
-% {See \url{https://tex.stackexchange.com/q/691262/113546}}.
-% Therefore paragraph hooks will not work inside \Package{fancyhdr} headers and
-% footers to avoid unwanted interactions with the main text.
+% \texttt{expl3}, use \cs{tex\_everypar:D}, and reset \cs{par},
+% \cs{@@par} and \cs{endgraf} to their original \TeX{} definitions, so that
+% no paragraph hooks will intrude in \Package{fancyhdr} code\footnote
+% {See \url{https://tex.stackexchange.com/q/691262/113546}}.
+% Therefore paragraph hooks will not work inside \Package{fancyhdr} headers and
+% footers to avoid unwanted interactions with the main text.
+% \end{itemize}
+% \item % Version 4.3.1, July 23, 2024
+% \begin{itemize}
+% \item Also reset \cs{everypar} to its original \TeX{} value
+% \cs{tex\_everypar:D} in \cs{f@nch@resetpar}, otherwise environments
+% based on \cs{trivlist} will not work properly in \Package{fancyhdr}
+% headers and footers.
% \end{itemize}
% \end{itemize}
%
@@ -4005,9 +4012,13 @@
% \begin{macro}{\f@nch@centering}
% \begin{macro}{\f@nch@everypar}
% \changes{fancyhdr v4.3}{2024/07/17}{Changed \cs{f@nch@everypar}. If the
-% LaTeX kernel has expl3, use \cs{tex\_everypar:D}, and reset \cs{par},
-% \cs{@@par} and \cs{endgraf} to their original \TeX{} definitions, so that
-% no paragraph hooks will intrude in \Package{fancyhdr} code.}
+% LaTeX kernel has expl3, use \cs{tex\_everypar:D}, and reset \cs{par},
+% \cs{@@par} and \cs{endgraf} to their original \TeX{} definitions, so that
+% no paragraph hooks will intrude in \Package{fancyhdr} code.}
+% \changes{fancyhdr v4.3.1}{2024/07/23}{Also reset \cs{everypar} to its
+% original \TeX{} value \cs{tex\_everypar:D} in \cs{f@nch@resetpar},
+% otherwise environments based on \cs{trivlist}
+% will not work properly in \Package{fancyhdr} headers and footers.}
% Save the standard definitions of \cs{raggedleft}, \cs{raggedright},
% \cs{centering} and \cs{everypar} so that we can reset them when we are
% typesetting the headers and footers. Some packages change these to
@@ -4021,6 +4032,7 @@
\let\f@nch@everypar\tex_everypar:D
\newcommand\f@nch@resetpar{%
\f@nch@everypar{}%
+ \cs_set_eq:NN \everypar\tex_everypar:D
\cs_set_eq:NN \par \tex_par:D
\cs_set_eq:NN \@@par \tex_par:D
\cs_set_eq:NN \endgraf \tex_par:D
diff --git a/macros/latex/contrib/fancyhdr/fancyhdr.pdf b/macros/latex/contrib/fancyhdr/fancyhdr.pdf
index 38bb822211..35cc4524ff 100644
--- a/macros/latex/contrib/fancyhdr/fancyhdr.pdf
+++ b/macros/latex/contrib/fancyhdr/fancyhdr.pdf
Binary files differ
diff --git a/macros/latex/contrib/fillwith/MANIFEST.md b/macros/latex/contrib/fillwith/MANIFEST.md
new file mode 100644
index 0000000000..4cfe517238
--- /dev/null
+++ b/macros/latex/contrib/fillwith/MANIFEST.md
@@ -0,0 +1,54 @@
+# Manifest for fillwith
+
+Copyright (C) Fri Aug 9 12:12:59 2024 Clea F. Rees
+
+This work may be distributed and/or modified under the conditions of the LaTeX
+Project Public License, either version 1.3c of this license or (at your option)
+any later version. The latest version of this license is in
+ https://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX version
+2008-05-04 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Clea F. Rees.
+
+This work consists of all files listed in manifest.txt.
+
+This file was automatically generated by `l3build manifest`.
+
+## Source files
+
+
+### Package files
+
+
+* README.md
+* MANIFEST.md
+* fillwith.dtx
+* fillwith.ins
+
+### Development files
+
+
+* build.lua
+* manifest.lua
+* tag.lua
+* fillwith-test.lvt
+* fillwith-test.luatex.tlg
+* fillwith-test.tlg
+* fillwith-test.xetex.tlg
+
+
+## Derived files
+
+
+### Package files
+
+* fillwith.sty
+* fillwith-example.tex
+
+### Typeset documentation
+
+* fillwith.pdf
+* fillwith-example.pdf
diff --git a/macros/latex/contrib/fillwith/README.md b/macros/latex/contrib/fillwith/README.md
new file mode 100644
index 0000000000..f7f1922b89
--- /dev/null
+++ b/macros/latex/contrib/fillwith/README.md
@@ -0,0 +1,32 @@
+$Id: README.md 10215 2024-08-09 11:12:21Z cfrees $
+
+# fillwith
+
+A LaTeX package for filling vertical space with something rather than nothing.
+
+Currently supported somethings are solid rules and dotted lines, with or
+without numbers. The package uses a mixture of plain-ish macros, LaTeX 2e and
+expl3 methods, but a key-value approach to configuration should make the
+document-level interface relatively sane, even if nothing else is.
+
+For details, please see fillwith.pdf. The implementation is minimally
+documented because I have no idea of how to document code.
+
+## Code Repositories
+
+Code is hosted at
+ https://codeberg.org/cfr/fillwith
+For convenience, the repository is mirrored at
+ https://github.com/cfr42/fillwith
+
+## Contact Details
+
+Bug reports, feature requests etc. should be filed at
+ https://codeberg.org/cfr/fillwith/issues
+
+
+Clea F. Rees
+Version 0.3
+2024-08-09
+
+vim: et:tw=80:
diff --git a/macros/latex/contrib/fillwith/fillwith-example.pdf b/macros/latex/contrib/fillwith/fillwith-example.pdf
new file mode 100644
index 0000000000..5af411b5e0
--- /dev/null
+++ b/macros/latex/contrib/fillwith/fillwith-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/fillwith/fillwith.dtx b/macros/latex/contrib/fillwith/fillwith.dtx
new file mode 100644
index 0000000000..c066ac9dad
--- /dev/null
+++ b/macros/latex/contrib/fillwith/fillwith.dtx
@@ -0,0 +1,747 @@
+% \iffalse meta-comment
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% fillwith.dtx
+% Additions and changes Copyright (C) 2024 Clea F. Rees.
+% Code from skeleton.dtx Copyright (C) 2015-2024 Scott Pakin (see below).
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008-05-04 or later.
+%
+% This work has the LPPL maintenance status \muaintained'.
+%
+% The Current Maintainer of this work is Clea F. Rees.
+%
+% This work consists of all files listed in manifest.txt.
+%
+% The file fillwith.dtx is a derived work under the terms of the
+% LPPL. It is based on version 2.4 of skeleton.dtx which is part of
+% dtxtut by Scott Pakin. A copy of dtxtut, including the
+% unmodified version of skeleton.dtx is available from
+% https://www.ctan.org/pkg/dtxtut and released under the LPPL.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \fi
+%
+% \iffalse
+%<*driver>
+\RequirePackage{svn-prov}
+\ProvidesFileSVN{$Id: fillwith.dtx 10202 2024-08-08 15:33:47Z cfrees $}[v0.3 \revinfo][\filename: \filebase]
+\DefineFileInfoSVN[fillwith]
+\GetFileInfoSVN*
+% ref. ateb Max Chernoff: https://tex.stackexchange.com/a/723294/
+\def\MakePrivateLetters{\makeatletter\ExplSyntaxOn\endlinechar13}
+\documentclass[british,a4paper]{ltxdoc}
+\usepackage{babel}
+\usepackage[tt={monowidth,lining,tabular},sf={lining,proportional},rm={lining,proportional}]{cfr-lm}
+\usepackage{fillwith}
+\usepackage{parskip}
+\usepackage{verbatim}
+\usepackage{graphicx}
+\usepackage{xurl}
+% sicrhau hyperindex=false: llwytho CYN bookmark
+\usepackage{hypdoc}% ateb Ulrike Fischer: https://tex.stackexchange.com/a/695555/
+\usepackage{bookmark}
+\usepackage{cleveref}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+%^^A \OnlyDescription
+%^^A \ExplSyntaxOn
+%^^A \makeatletter
+\DoNotIndex{\verb,\ProvidesPackageSVN,\NeedsTeXFormat,\ProcessKeyOptions,\ExplSyntaxOn,\ExplSyntaxOff,\RequirePackage,\NeedsTeXFormat,\DefineFileInfoSVN,\GetInfoSVN,\@ifundefined,\@ifl@t@r\ExplLoaderFileDate,\endinput,\PackageError,\PackageWarning,\PackageInfo,\keys_define:nn,\keys_set:nn,\ProcessKeysOptionns,\author,\title,\maketitle,\date,\revinfo,\ProcessKeysOptions,\MessageBreak,\fmtversion,\documentclass,\ExplLoaderFileDate,\filebase,\fileversion,\fileinfo,\filebase:,\filedate,\documentclass,\@ifl@t@r,\begin,\end,\item,\IfFormatAtLeastTF}
+%^^A \makeatother
+%^^A \ExplSyntaxOff
+\definecolor{strawberry}{rgb}{1.000,0.000,0.502}
+\definecolor{blueberry}{rgb}{0.000,0.000,1.000}
+\definecolor{moss}{rgb}{0.000,0.502,0.251}
+\hypersetup{%
+ colorlinks=true,
+ citecolor={moss},
+ extension=pdf,
+ linkcolor={strawberry},
+ linktocpage=true,
+ pdfcreator={TeX},
+ pdfproducer={pdfeTeX},
+ urlcolor={blueberry}%
+}
+\NewDocElement[%
+ idxtype=opt.,
+ idxgroup=options,
+ printtype=\textit{opt.},
+]{Opt}{option}
+\NewDocumentCommand \val { m }
+{%
+ {\ttfamily =\,\meta{#1}}%
+}
+\ExplSyntaxOn
+\NewDocumentCommand \vals { m }
+{
+ {
+ \ttfamily = \,
+ \clist_use:nn { #1 } { \textbar }
+ }
+}
+\ExplSyntaxOff
+\setcounter{IndexColumns}{2}
+\makeatletter
+\def\@xobeysp{\leavevmode\penalty100\ }
+\makeatother
+\begin{document}
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+% \title{\filebase{} \filerev}
+% \author{Clea F. Rees}
+% \date{\filedate}
+% \maketitle
+% \begin{abstract}
+% A small package originally based on \href{https://tex.stackexchange.com/a/241139/}{Harish Kumar's answer} to a question I asked on \TeX{} SE\footnote{%
+% See \href{https://tex.stackexchange.com/a/241139/}{tex.stackexchange.com/a/241139/}.%
+% }.
+% The intended purpose was the creation of worksheets for students where I would like \LaTeX{} to use the available vertical space to provide lined areas for answers.
+% Since then, the code has been (partially) rewritten in \pkg{expl3} and extended in response to both my own needs and others' questions on \TeX{} SE.
+% The package aims to do one thing: to fill a vertical space in the same way as, say, \verb|\vfill|, but with some kind of ‘filler’ rather than empty space.
+% Currently, the package supports solid rules or dotted lines.
+% The remainder of the current line may optionally be filled in the same way and the ‘filler’ may be coloured if desired.
+%
+% Lines may optionally be numbered, though the numbered versions should not be used to fill long stretches as they are extremely inefficient.
+% \textbf{Numbered fills are highly experimental and not recommended for use in ‘real’ documents.}
+% That is, it seems to work, but I recommend using an alternative package or solution if you need a reliable numbering mechanism.
+% \end{abstract}
+%
+% \section{Load}\label{sec:pkg}
+% To use the package simply load it in your preamble in the usual way.
+%
+% \iffalse
+%<*verb>
+% \fi
+\begin{verbatim}
+ \usepackage[<options>]{fillwith}
+\end{verbatim}
+% \iffalse
+%</verb>
+% \fi
+%
+% A small number of options may be specified when loading the package.
+% See \cref{sec:config}.
+%
+% We start with an example in \cref{sec:ee}.
+% \Cref{sec:use} describes the basic commands illustrated in this example.
+% \Cref{sec:config} explains the options used by these commands, together with other customisation features of \pkg{fillwith}.
+%
+% \section{Example}\label{sec:ee}
+%
+% The code below illustrates most package features.
+%
+% \Cref{fig:ee1} demonstrates filling with rules.
+% Note the effect of altering \texttt{fillwith ht} on line-spacing.
+% \begin{figure}
+% \centering
+% \fbox{\includegraphics{fillwith-example.pdf}}
+% \caption{Filling with rules.}\label{fig:ee1}
+% \end{figure}
+%
+% \Cref{fig:ee2} shows dotted fillings.
+% Note the use of \cmd{\fillwithset} to alter the colour.
+% \begin{figure}
+% \centering
+% \fbox{\includegraphics[page=2]{fillwith-example.pdf}}
+% \caption{Filling with dotted lines.}\label{fig:ee2}
+% \end{figure}
+%
+% \Cref{fig:ee3} shows numbered fillings.
+% Note the use of \texttt{goal ht} to divide the available vertical space more-or-less equally.
+% \begin{figure}
+% \centering
+% \fbox{\includegraphics[page=3]{fillwith-example.pdf}}
+% \caption{Filling with numbered lines.}\label{fig:ee3}
+% \end{figure}
+%
+% \verbatiminput{fillwith-example.tex}
+%
+% \section{Usage}\label{sec:use}
+%
+% \DescribeMacro{\fillwith}\oarg{options}
+% \DescribeMacro{\fillwith*}
+%
+% Fill vertically with current settings, optionally modified by \meta{options}.
+% See \cref{sec:config} for \meta{options}.
+% If used in the middle of a line, the starred form fills to the end of the line first, whereas the unstarred form does not.
+%
+% \DescribeMacro{\fillwithrules}\oarg{line-spacing}
+% \DescribeMacro{\fillwithrules*}
+%
+% Convenience wrappers which just set \texttt{style = rules} and set the line-spacing to \meta{line-spacing}.
+% These macros do nothing which cannot be done using \cmd{\fillwith} and \cmd{\fillwith*}.
+%
+% \DescribeMacro{\fillwithdottedlines}\oarg{line-spacing}
+% \DescribeMacro{\fillwithdottedlines*}
+%
+% Convenience wrappers which just set \texttt{style = dots} and set the line-spacing to \meta{line-spacing}.
+% These macros do nothing which cannot be done using \cmd{\fillwith} and \cmd{\fillwith*}.
+%
+% \DescribeMacro{\fillwithnolines}\oarg{options}
+% \DescribeMacro{\fillwithnolines*}
+%
+% Fill vertically with current settings, numbering each complete line, after optionally setting \meta{options}.
+% Numbering \textbf{requires} use of these commands, as opposed to the generic \cmd{\fillwith}/\cmd{\fillwith*}.
+%
+% \section{Customisation}\label{sec:config}
+%
+% Options can be set per use, locally or globally.
+% A small number of options are implemented as package options (\cref{sec:pkg}).
+%
+% \DescribeMacro{\fillwithset}\marg{options}
+% Set local or global defaults.
+%
+% \DescribeOpt{colour}\val{colour name}
+% \DescribeOpt{color}
+% \DescribeOpt{lliw}
+%
+% Colour to be used for (solid) rules.
+%
+% Initially \texttt{gray}.
+% Available as a package option.
+%
+% \DescribeOpt{dotted color}\val{colour name}
+% \DescribeOpt{dotted colour}
+%
+% Colour to be used for dotted lines.
+%
+% Initially \texttt{black}.
+% Available as a package option.
+%
+% \DescribeOpt{cont}\vals{true,false}
+%
+% Whether to fill the remainder of any current line.
+% Generally, users will probably prefer to use the starred command forms for local usage, but this option permits modification of the package default on a local or global basis.
+%
+% Initially \texttt{false}.
+% Default is \texttt{true}.
+%
+% \DescribeOpt{fillwith~ht}\val{real positive number expressed as decimal}
+%
+% Multiplication factor for line-spacing.
+% Typically, hand-written content requires greater spacing than typewritten content.
+% This option scales the standard line-spacing.
+%
+% Initially \texttt{2}, which is also the default value.
+% Decimal values such as \texttt{1.5} are permitted.
+%
+% \DescribeOpt{goal ~ ht}\val{dimension}
+%
+% Used only by \cmd{\fillwithnolines} and \cmd{\fillwithnolines*}.
+% Sets the target dimension to fill with numbered lines.
+% If unspecified, the code tries to fill the remaining vertical space on the current page.
+% If more than one use of a \pkg{fillwith} macro is used on a single page, this option \textbf{must} be used for numbered fills to prevent a single instance taking (almost) all available space.
+% In contrast, multiple unnumbered fills can coexist on the same page without issue --- the available space will simply be divided equally between them.
+%
+% Initially unset.
+% No default.
+%
+% \DescribeOpt{no ~ font}\val{font switches}
+%
+% Font switches to apply when typesetting numbers for numbered fills.
+%
+% Initially \cmd{\normalfont}\cmd{\normalsize}, which is also the default value.
+% Note the commands used here should be switches rather than text commands -- for example, use \cmd{\bfseries} rather than \cmd{\textbf} --- since the commands should not expect an argument.
+%
+% \DescribeOpt{style}\vals{rule,dots,line,lines,rules}
+%
+% Style of fill.
+% \texttt{rule}, \texttt{line}, \texttt{rules} and \texttt{lines} are synonyms which all denote solid rules or lines.
+% \texttt{dots} uses dotted lines rather than solid rules.
+% The dots are slightly more densely packed than the standard used for dotted fills by the standard classes, as these seem a bit too widely spaced to provide ideal guidelines.
+%
+% Initially \texttt{dots}, which is also the default value.
+%
+% If an unknown value is used, the code will attempt to use two macros derived from that value.
+% The first is constructed simply by preceding \meta{value} with a backslash and the second by also appending \texttt{part}.
+% For example, if \texttt{style}\val{mystyle} is used, the code will try to use \cs{mystyle} and \cs{mystylepart} for complete and partial lines.
+% In theory, this supports filling with somewhat arbitrary content, but the implementation is untested and \textbf{should not be used in real documents}.
+%
+%
+% \changes{v0.0}{???}{First public release.}
+% \changes{\fileversion}{\filedate}{}
+%
+%
+% \MaybeStop{%
+% \PrintChanges
+% \PrintIndex
+% }
+%
+% \section{Implementation}
+%
+% You do not need to read the remainder of this document in order to install or use the package.
+%
+% \iffalse
+%<@@=fillwith>
+%<*sty>
+% \fi
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}[2021-11-15]
+\RequirePackage{svn-prov}
+\ProvidesPackageSVN[\filebase.sty]{$Id: fillwith.dtx 10202 2024-08-08 15:33:47Z cfrees $}[v0.0 \revinfo][\filebase: fill vertically with non-space]
+% this is needed only because l3doc overwrites \fileversion and \filedate
+% neither ltxdoc nor doc does this
+\DefineFileInfoSVN
+% \end{macrocode}
+% \iffalse
+% ^^A Paid â defnyddio \GetFileInfoSVN*/\GetFileInfoSVN{} yn y fan hon!!
+% \fi
+% \begin{macrocode}
+\RequirePackage{xcolor}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% copied verbatim, excepting format from Joseph Wright's' siunitx.sty under LPPL
+\@ifundefined{ExplLoaderFileDate}{%
+ \RequirePackage{expl3}%
+}{}
+% almost verbatim from siunitx.sty
+\@ifl@t@r\ExplLoaderFileDate{2022-02-24}{%
+}{%
+ \PackageError{fillwith}{Support package expl3 too old}
+ {%
+ You need to update your installation of the bundles 'l3kernel' and
+ 'l3packages'.\MessageBreak
+ Loading~fillwith~will~abort!%
+ }%
+ \endinput
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ExplSyntaxOn
+\prop_gput:Nnn \g_msg_module_name_prop { fillwith } { fillwith }
+
+% BEGIN Expl pkg option setup
+
+\keys_define:nn { fillwith }
+{
+ color .meta:n = {
+ colour = #1,
+ },
+ colour .code:n = {
+ \colorlet{fillwithcolour}{#1}
+ },
+ dotted ~ color .meta:n = {
+ dotted colour = #1,
+ },
+ dotted color .meta:n = {
+ dotted colour = #1,
+ },
+ dotted ~ colour .meta:n = {
+ dotted colour = #1,
+ },
+ dotted colour .code:n = {
+ \colorlet{fillwithdottedcolour}{#1}
+ },
+ lliw .meta:n = {
+ colour = #1,
+ },
+ colour .initial:n = gray,
+ dotted colour .initial:n = black,
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Joseph Wright: from siunitx.sty ; https://chat.stackexchange.com/transcript/message/64327823#64327823
+\providecommand \IfFormatAtLeastTF { \@ifl@t@r \fmtversion }
+\IfFormatAtLeastTF { 2022-06-01 }
+{
+ \ProcessKeyOptions [ fillwith ]
+}{
+ \RequirePackage { l3keys2e }
+ \ProcessKeysOptions { fillwith }
+}
+\IfFormatAtLeastTF { 2020-10-01 }{
+}{
+ \RequirePackage { xparse }
+ \providecommand \ExpandArgs [1]
+ { \cs_if_exist_use:c { exp_args:N #1 } }
+}
+% END Expl pkg option setup
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% BEGIN vars
+\box_new:N \l__fillwith_adj_rule_box
+\box_new:N \l__fillwith_part_rule_box
+\box_new:N \l__fillwith_tmpa_box
+\box_new:N \l__fillwith_tmpb_box
+% BEGIN coffins
+\coffin_new:N \l__fillwith_line_coffin
+\coffin_new:N \l__fillwith_lines_coffin
+\coffin_new:N \l__fillwith_part_coffin
+\coffin_new:N \l__fillwith_tmpa_coffin
+% END coffins
+% BEGIN dims
+\dim_new:N \l__fillwith_ht_dim
+\dim_new:N \l__fillwith_dp_dim
+\dim_new:N \l__fillwith_rem_dim
+\dim_new:N \l__fillwith_line_ht_dim
+\dim_new:N \l__fillwith_line_adj_hsize_dim
+\dim_set:Nn \l__fillwith_line_ht_dim { 0.4pt }
+\dim_new:N \l__fillwith_line_madj_dim
+\dim_new:N \l__fillwith_line_vadj_dim
+\dim_set_eq:NN \l__fillwith_line_vadj_dim \c_zero_dim
+\dim_new:N \l__fillwith_goal_dim
+\dim_new:N \l__fillwith_tmpa_dim
+% END dims
+\int_new:N \g__fillwith_cnt_int
+% END vars
+% BEGIN fns
+\cs_new_protected_nopar:Nn \__fillwith_style: {}
+\cs_new_protected_nopar:Nn \__fillwith_coffin_tht:N
+{
+ \dim_eval:n { \coffin_ht:N #1 + \coffin_dp:N #1 }
+}
+% BEGIN \__fillwith_hrulefill:
+\cs_new_protected_nopar:Npn \__fillwith_hrulefill_part:
+{
+ \vrule height \c_zero_dim depth \l__fillwith_line_ht_dim width 0.1pt
+}
+\cs_new_protected_nopar:Npn \__fillwith_hrulefill:
+{
+ \vrule height \c_zero_dim depth \l__fillwith_line_ht_dim width \l__fillwith_line_adj_hsize_dim
+}
+% END \__fillwith_hrulefill:
+% BEGIN \__fillwith_dottedfill:
+\cs_new_protected_nopar:Npn \__fillwith_dottedfill_part:
+{
+ \hbox to 0.33em {\hss .\hss}
+}
+\cs_new_protected_nopar:Npn \__fillwith_dottedfill:
+{
+ \leaders \hbox to 0.33em {\hss .\hss} \hfill \kern \c_zero_dim
+}
+% END \__fillwith_dottedfill:
+% END fns
+% \end{macrocode}
+% \begin{macro}{\fillwithset}
+% Wrapper command for configuration.
+% Most global or local customisation will use this as most keys are not valid package options.
+% \begin{macrocode}
+\NewDocumentCommand\fillwithset { +m }{
+ \keys_set:nn { fillwith } { #1 }
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+% BEGIN keys (+)
+\keys_define:nn { fillwith }
+{
+ cont .bool_set:N = \l__fillwith_cont_bool,
+ cont .default:n = true,
+ cont .initial:n = false,
+ fillwith~ht .tl_set:N = \l__fillwith_ht_tl,
+ fillwith~ht .initial:n = 2,
+ fillwith~ht .default:n = 2,
+ goal ~ ht .dim_set:N = \l__fillwith_goal_dim,
+ line nos .bool_set:N = \l__fillwith_nos_bool,
+ line ~ nos .bool_set:N = \l__fillwith_nos_bool,
+ line ~ nos .default:n = true,
+ line ~ nos .initial:n = false,
+ no ~ font .tl_set:N = \l__fillwith_no_font_tl,
+ no ~ font .initial:n = { \normalfont\normalsize },
+ no ~ font .default:n = { \normalfont\normalsize },
+ style .choices:nn =
+ {
+ rule, dots , line , lines , rules , unknown
+ }{
+ \if_case:w \l_keys_choice_int
+ \or: \cs_set_eq:NN \__fillwith_style: \__fillwith_hrulefill:
+ \or: \cs_set_eq:NN \__fillwith_style: \__fillwith_dottedfill:
+ \or: \cs_set_eq:NN \__fillwith_style: \__fillwith_hrulefill:
+ \or: \cs_set_eq:NN \__fillwith_style: \__fillwith_hrulefill:
+ \or: \cs_set_eq:NN \__fillwith_style: \__fillwith_hrulefill:
+ \else: \cs_set_protected_nopar:Nn \__fillwith_style: { \use:c { \l_keys_choice_tl } }
+ \fi:
+ \if_case:w \l_keys_choice_int
+ \or: \cs_set_eq:NN \__fillwith_style_part: \__fillwith_hrulefill_part:
+ \or: \cs_set_eq:NN \__fillwith_style_part: \__fillwith_dottedfill_part:
+ \or: \cs_set_eq:NN \__fillwith_style_part: \__fillwith_hrulefill_part:
+ \or: \cs_set_eq:NN \__fillwith_style_part: \__fillwith_hrulefill_part:
+ \or: \cs_set_eq:NN \__fillwith_style_part: \__fillwith_hrulefill_part:
+ \else: \cs_set_protected_nopar:Nn \__fillwith_style_part: { \use:c { \l_keys_choice_tl part } }
+ \fi:
+ },
+ style .default:n = dots,
+ style .initial:n = dots,
+}
+% END keys (+)
+%
+% BEGIN \__fillwith_fill:
+% ref: https://tex.stackexchange.com/a/241139/ Harish Kumar
+\cs_new_protected_nopar:Nn \__fillwith_fill:
+{
+ \__fillwith_measures:
+ \dim_set:Nn \l__fillwith_line_adj_hsize_dim { \hsize - \@totalleftmargin }
+ \vbox_set:Nn \l__fillwith_adj_rule_box
+ {
+ \parindent=0pt
+ \vrule height \l__fillwith_ht_dim depth \l__fillwith_dp_dim width \c_zero_dim
+ \skip_horizontal:n { \@totalleftmargin }
+ \__fillwith_style:
+ }
+ \if_mode_horizontal:
+ \bool_if:NT \l__fillwith_cont_bool
+ {
+ \leaders \box_use:N \l__fillwith_part_rule_box \hfill \kern \c_zero_dim
+ }{
+ \vrule height \l__fillwith_ht_dim depth \l__fillwith_dp_dim width \c_zero_dim
+ }
+ %^^A gweithio ond erbyn y rheolau
+ %^^A byddai'n achosi draferth, siwr o fod
+ % \tex_par:D
+ %^^A yn lle hynny, ceisio hyn - oes perygl hefyd?
+ \para_raw_end:
+ \else:
+ \unskip
+ \skip_vertical:n { \l__fillwith_dp_dim }
+ \fi:
+ \xleaders \box_use:N \l__fillwith_adj_rule_box \vfill
+ \para_end:
+ \normalcolor
+}
+% END \__fillwith_fill:
+% BEGIN \__fillwith_measures:
+\cs_new_protected_nopar:Nn \__fillwith_measures:
+{
+ \color{fillwithcolour}
+ \offinterlineskip
+ \hbox_set:Nn \l__fillwith_part_rule_box
+ {
+ \strut
+ \__fillwith_style_part:
+ \kern \c_zero_dim
+ }
+ \dim_set:Nn \l__fillwith_tmpa_dim { \box_ht:N \l__fillwith_part_rule_box }
+ \dim_set:Nn \l__fillwith_ht_dim { \l__fillwith_ht_tl \l__fillwith_tmpa_dim }
+ \box_set_ht:Nn \l__fillwith_part_rule_box { \l__fillwith_ht_dim }
+ \dim_set:Nn \l__fillwith_tmpa_dim { \box_dp:N \l__fillwith_part_rule_box }
+ % neu \fp_to_dim:n { \l__fillwith_ht_tl * \l__fillwith_tmpa_dim } ??
+ \dim_set:Nn \l__fillwith_dp_dim { \l__fillwith_ht_tl \l__fillwith_tmpa_dim }
+ \box_set_dp:Nn \l__fillwith_part_rule_box { \l__fillwith_dp_dim }
+}
+% END \__fillwith_measures:
+% BEGIN fillwith
+% \end{macrocode}
+% \begin{macro}{\fillwith}
+% The package is basically this macro.
+% \begin{macrocode}
+\NewDocumentCommand \fillwith { s o }
+{
+ \group_begin:
+ \IfValueT { #2 }
+ {
+ \keys_set:nn { fillwith } { #2 }
+ }
+ \IfBooleanTF { #1 }
+ {
+ \bool_set_true:N \l__fillwith_cont_bool
+ }{
+ \bool_set_false:N \l__fillwith_cont_bool
+ }
+ \__fillwith_fill:
+ \group_end:
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+% END fillwith
+% BEGIN fillwithrules
+% \end{macrocode}
+% \begin{macro}{\fillwithrules}
+% Simple convenience wrapper with simplified syntax for (solid) rules.
+% \begin{macrocode}
+\NewDocumentCommand \fillwithrules { s O { 2 } }
+{
+ \group_begin:
+ \IfBooleanTF { #1 }
+ {
+ \bool_set_true:N \l__fillwith_cont_bool
+ }{
+ \bool_set_false:N \l__fillwith_cont_bool
+ }
+ \keys_set:nn { fillwith } { style = rules, fillwith~ht=#2 }
+ \__fillwith_fill:
+ \group_end:
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+% END fillwithrules
+% BEGIN fillwithdottedlines
+% \end{macrocode}
+% \begin{macro}{\fillwithdottedlines}
+% Simple convenience wrapper with simplified syntax for dotted lines.
+% \begin{macrocode}
+\NewDocumentCommand \fillwithdottedlines { s O { 2 } }
+{
+ \group_begin:
+ \IfBooleanTF { #1 }
+ {
+ \bool_set_true:N \l__fillwith_cont_bool
+ }{
+ \bool_set_false:N \l__fillwith_cont_bool
+ }
+ \colorlet{fillwithcolour}{fillwithdottedcolour}
+ \keys_set:nn { fillwith } { style = dots, fillwith~ht=#2 }
+ \__fillwith_fill:
+ \group_end:
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+% END fillwithdottedlines
+% BEGIN fillwithnolines
+\cs_new_protected:Nn \__fillwith_nos: % rhybudd: ARAF ! SLOW!
+{
+ \parindent=0pt
+ \__fillwith_measures:
+ \dim_set_eq:NN \l__fillwith_line_adj_hsize_dim \linewidth
+ \vcoffin_set:Nnn \l__fillwith_line_coffin { \l__fillwith_line_adj_hsize_dim }
+ {
+ \parindent=0pt
+ \vrule height \l__fillwith_ht_dim depth \l__fillwith_dp_dim width \c_zero_dim
+ \skip_horizontal:n \c_zero_skip
+ \__fillwith_style:
+ }
+ \coffin_set_eq:NN \l__fillwith_lines_coffin \l__fillwith_line_coffin
+ \if_mode_horizontal:
+ \bool_if:NTF \l__fillwith_cont_bool
+ {
+ \leaders \box_use:N \l__fillwith_part_rule_box \hfill \kern \c_zero_dim
+ \int_gincr:N \g__fillwith_cnt_int
+ % \vcoffin_set:Nnn \l__fillwith_tmpa_coffin { 1.5em}
+ % {
+ % \l__fillwith_no_font_tl \int_to_arabic:n { \g__fillwith_cnt_int }
+ % }
+ % \coffin_mark_handle:Nnnn \l__fillwith_tmpa_coffin {B} {l} { red }
+ % \coffin_mark_handle:Nnnn \l__fillwith_tmpa_coffin {b} {l} { green }
+ % \coffin_attach:NnnNnnnn \l__fillwith_lines_coffin {B} {r} \l__fillwith_tmpa_coffin {B} {l} {2.5pt} { \l__fillwith_ht_dim + \l__fillwith_dp_dim }
+ % \coffin_mark_handle:Nnnn \l__fillwith_lines_coffin {T} {r} { blue }
+ % \coffin_mark_handle:Nnnn \l__fillwith_lines_coffin {t} {r} { magenta }
+ \dim_set:Nn \l__fillwith_line_vadj_dim { \l__fillwith_dp_dim }
+ }{
+ \vrule height \l__fillwith_ht_dim depth \l__fillwith_dp_dim width \c_zero_dim
+ }
+ \dim_set:Nn \l__fillwith_line_madj_dim { \@totalleftmargin }
+ \para_raw_end:
+ \else:
+ \dim_set_eq:NN \l__fillwith_line_madj_dim \c_zero_dim
+ \unskip
+ \skip_vertical:n { \l__fillwith_dp_dim }
+ \fi:
+ \int_gincr:N \g__fillwith_cnt_int
+ \vcoffin_set:Nnn \l__fillwith_tmpa_coffin { 1.5em}
+ {
+ \l__fillwith_no_font_tl \int_to_arabic:n { \g__fillwith_cnt_int }
+ }
+ \coffin_attach:NnnNnnnn \l__fillwith_lines_coffin {B} {r} \l__fillwith_tmpa_coffin {B} {l} {2.5pt} {\c_zero_dim}
+ \dim_set:Nn \l__fillwith_rem_dim
+ {
+ \l__fillwith_goal_dim -\footskip - \pagetotal
+ }
+ \dim_until_do:nNnn { \__fillwith_coffin_tht:N \l__fillwith_lines_coffin } > { \l__fillwith_rem_dim - \l__fillwith_ht_dim - \l__fillwith_dp_dim }
+ {
+ \coffin_join:NnnNnnnn \l__fillwith_lines_coffin { b } { l } \l__fillwith_line_coffin { t } { l } { \c_zero_dim } { \c_zero_dim }
+ \int_gincr:N \g__fillwith_cnt_int
+ \vcoffin_set:Nnn \l__fillwith_tmpa_coffin {1.5em}
+ {
+ \l__fillwith_no_font_tl \int_to_arabic:n { \g__fillwith_cnt_int }
+ }
+ \coffin_attach:NnnNnnnn \l__fillwith_lines_coffin {B} {r} \l__fillwith_tmpa_coffin {B} {l} {2.5pt} {\c_zero_dim}
+ }
+ \coffin_typeset:Nnnnn \l__fillwith_lines_coffin { B } { l } { \l__fillwith_line_madj_dim } { \l__fillwith_line_vadj_dim }
+ \para_end:
+ \normalcolor
+}
+% \end{macrocode}
+% \begin{macro}{\fillwithnolines}
+% Provisional experimental macro for numbered fill.
+% \begin{macrocode}
+\NewDocumentCommand \fillwithnolines { s O { } }
+{
+ \group_begin:
+ \IfBooleanTF { #1 }
+ {
+ \bool_set_true:N \l__fillwith_cont_bool
+ }{
+ \bool_set_false:N \l__fillwith_cont_bool
+ }
+ \keys_set:nn { fillwith } { goal ~ ht = \pagegoal, #2 }
+ \__fillwith_nos:
+ \group_end:
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+% END fillwithnolines
+\ExplSyntaxOff
+% \end{macrocode}
+% \iffalse
+%</sty>
+% \fi
+%
+% \subsection{Demonstration}
+%
+% Simple example to demonstrate usage.
+%
+% \iffalse
+%<*ee>
+% \fi
+% \begin{macrocode}
+\listfiles
+\documentclass[british,a6paper]{article}
+\usepackage{babel}
+\usepackage[scale=.85,marginparwidth=0pt,marginparsep=0pt]{geometry}
+\usepackage{fillwith}
+\usepackage{cfr-lm}
+\begin{document}
+\author{A. N. Author}
+\title{\texttt{fillwith} Demo}
+\maketitle
+\begin{enumerate}
+ \item What is the answer to the question?
+ \fillwithrules
+ \item How did you answer the previous question?
+ \fillwith*[style=line]
+ \item Why answer?
+
+ \fillwith*[style=rule,fillwith ht=1.25,colour=blue!40!cyan]
+ \clearpage
+ \item Evaluate your responses so far.
+ \fillwithdottedlines
+ \item Evaluate your responses so far.
+
+ {%
+ \fillwithset{dotted colour=magenta}%
+ \fillwithdottedlines[1.5]
+ }
+ \item Criticise your evaluation.
+ \fillwithdottedlines*
+ \clearpage
+ \item Assess your answers.
+ \fillwithnolines[goal ht = .33\textheight]
+ \item Assess your answers.
+
+ \fillwithnolines[style=rules,no font=\bfseries\tiny,colour=green!50!gray,goal ht = .67\textheight]
+ \item Summarise your analysis.
+ \fillwithnolines*
+\end{enumerate}
+
+\end{document}
+% \end{macrocode}
+% \iffalse
+%</ee>
+% \fi
+% \subsection{Other}
+% \iffalse
+%<*other>
+% \fi
+% \begin{macrocode}
+% \end{macrocode}
+% \iffalse
+%</other>
+% \fi
+%\Finale
diff --git a/macros/latex/contrib/fillwith/fillwith.ins b/macros/latex/contrib/fillwith/fillwith.ins
new file mode 100644
index 0000000000..2f7f4c576c
--- /dev/null
+++ b/macros/latex/contrib/fillwith/fillwith.ins
@@ -0,0 +1,68 @@
+%% $Id: fillwith.ins 10202 2024-08-08 15:33:47Z cfrees $
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% fillwith.ins
+%% Additions and changes Copyright (C) 2024 Clea F. Rees.
+%% Code from skeleton.ins Copyright (C) 2015-2024 Scott Pakin (see below).
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008-05-04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Clea F. Rees.
+%%
+%% This work consists of all files listed in manifest.txt.
+%%
+%% The file fillwith.ins is a derived work under the terms of the
+%% LPPL. It is based on version 2.4 of skeleton.ins which is part of
+%% dtxtut by Scott Pakin. A copy of dtxtut, including the
+%% unmodified version of skeleton.ins is available from
+%% https://www.ctan.org/pkg/dtxtut and released under the LPPL.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\input docstrip.tex
+\keepsilent
+
+%% ???
+\usedir{tex/latex/fillwith}
+
+\declarepreamble\safonol
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Copyright (C) 2024 Clea F. Rees.
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008-05-04 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Clea F. Rees.
+
+This file may only be distributed together with a copy of the package
+fillwith. You may however distribute the package fillwith without
+such generated files.
+
+This work consists of all files listed in manifest.txt.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endpreamble
+
+% \askonceonly
+\askforoverwritefalse
+
+\usepreamble\safonol
+
+\generate{\file{fillwith.sty}{\from{fillwith.dtx}{sty}}
+ \file{fillwith-example.tex}{\from{fillwith.dtx}{ee}}
+}
+
+
+\endbatchfile
diff --git a/macros/latex/contrib/fillwith/fillwith.pdf b/macros/latex/contrib/fillwith/fillwith.pdf
new file mode 100644
index 0000000000..77fa2ccc00
--- /dev/null
+++ b/macros/latex/contrib/fillwith/fillwith.pdf
Binary files differ
diff --git a/macros/latex/contrib/fmtcount/CHANGES b/macros/latex/contrib/fmtcount/CHANGES
index ce54ab42c8..298337ad9a 100644
--- a/macros/latex/contrib/fmtcount/CHANGES
+++ b/macros/latex/contrib/fmtcount/CHANGES
@@ -1,5 +1,13 @@
fmtcount package versions:
+Version 3.08
+
+* Add Dutch language support
+
+* Update special characters for German and Spanish
+
+* Fix test suite
+
Version 3.07:
* Make french definition robust against cleveref 0.21.4 dirty handling
diff --git a/macros/latex/contrib/fmtcount/README b/macros/latex/contrib/fmtcount/README
index 8a4fa7e918..b752ab23bd 100644
--- a/macros/latex/contrib/fmtcount/README
+++ b/macros/latex/contrib/fmtcount/README
@@ -1,11 +1,6 @@
-LaTeX Package : fmtcount v3.07
+LaTeX Package : fmtcount v3.08
-
-(c) Copyright 2000-2013 Nicola LC Talbot
-(c) Copyright 2013-2020 Nicola LC Talbot and Vincent Bela\"iche
-
-
-Last Modified : 2020-02-24
+Last Modified : 2024-08-31
Author : Nicola Talbot and Vincent Belaïche
diff --git a/macros/latex/contrib/fmtcount/fmtcount.dtx b/macros/latex/contrib/fmtcount/fmtcount.dtx
index 0525133f83..4f1bdf8166 100644
--- a/macros/latex/contrib/fmtcount/fmtcount.dtx
+++ b/macros/latex/contrib/fmtcount/fmtcount.dtx
@@ -3,9 +3,9 @@
% Command line args:
% -src "(.+)\.(sty|def)$=>\1.\2"
% -doc "fmtcount-manual.tex"
-% -author "Nicola Talbot and Vincent Belache"
+% -author "Nicola Talbot and Vincent Belaïche"
% fmtcount
-% Created on 2020/2/24 20:03
+% Created on 2024/8/31 14:57
%\fi
%\iffalse
%<*package>
@@ -28,7 +28,7 @@
%\fi
% \iffalse
% Doc-Source file to use with LaTeX2e
-% Copyright (C) 2020 Nicola Talbot and Vincent Belache, all rights reserved.
+% Copyright (C) 2024 Nicola Talbot and Vincent Belaïche, all rights reserved.
% \fi
% \iffalse
%<*driver>
@@ -77,7 +77,7 @@
pdftitle={fmtcount.sty: Displaying the Values of LaTeX Counters},
pdfkeywords={LaTeX,counter}]{hyperref}
-\CheckSum{10315}
+\CheckSum{10834}
\doxitem{Option}{option}{options}
@@ -104,7 +104,7 @@
% \url{www.dickimaw-books.com}
% \and
% Vincent Bela\"iche}
-% \date{2020-02-24 (version 3.07)\relax
+% \date{2024-08-31 (version 3.08)\relax
%}
% \maketitle
% \tableofcontents
@@ -1184,6 +1184,414 @@
%\fi
%\iffalse
% \begin{macrocode}
+%<*fc-dutch.def>
+% \end{macrocode}
+%\fi
+% \subsubsection{fc-dutch.def}
+% Dutch definitions, initially added by Erik Nijenhuis.
+% \begin{macrocode}
+\ProvidesFCLanguage{dutch}[2024/01/27]%
+% \end{macrocode}
+% Define macro that converts a number or count register (first
+% argument) to an ordinal, and stores the result in the
+% second argument, which should be a control sequence.
+% \begin{macrocode}
+\newcommand{\@ordinalMdutch}[2]{\edef#2{\number#1\relax.}}%
+\global\let\@ordinalMdutch\@ordinalMdutch
+% \end{macrocode}
+% Like English, there is no gender difference in Dutch,
+% so make feminine and neuter the same as the masculine.
+% \begin{macrocode}
+\global\let\@ordinalFdutch\@ordinalMdutch
+\global\let\@ordinalNdutch\@ordinalMdutch
+% \end{macrocode}
+% Define the macro that prints the value of a \TeX\ count register
+% as text. To make it easier, break it up into units, teens and
+% tens. First, the units: the argument should be between 0 and 9
+% inclusive.
+% \begin{macrocode}
+\newcommand*\@@unitstringdutch[1]{%
+ \ifcase#1%
+ nul%
+ \or een% één and \'e\'en not working atm
+ \or twee%
+ \or drie%
+ \or vier%
+ \or vijf%
+ \or zes%
+ \or zeven%
+ \or acht%
+ \or negen%
+ \fi
+}%
+\global\let\@@unitstringdutch\@@unitstringdutch
+% \end{macrocode}
+% Next the tens, again the argument should be between 0 and 9
+% inclusive.
+% \begin{macrocode}
+\global\let\@@unitstringdutch\@@unitstringdutch
+\newcommand*\@@tenstringdutch[1]{%
+ \ifcase#1%
+ \or tien%
+ \or twintig%
+ \or dertig%
+ \or veertig%
+ \or vijftig%
+ \or zestig%
+ \or zeventig%
+ \or tachtig%
+ \or negentig%
+ \or honderd%
+ \fi
+}%
+\global\let\@@tenstringdutch\@@tenstringdutch
+% \end{macrocode}
+% Finally the teens, again the argument should be between 0 and 9
+% inclusive.
+% \begin{macrocode}
+\newcommand*\@@teenstringdutch[1]{%
+ \ifcase#1%
+ tien%
+ \or elf%
+ \or twaalf%
+ \or dertien%
+ \or veertien%
+ \or vijftien%
+ \or zestien%
+ \or zeventien%
+ \or achttien%
+ \or negentien%
+ \fi
+}%
+\global\let\@@teenstringdutch\@@teenstringdutch
+% \end{macrocode}
+% Hunderd and thousand:
+% \begin{macrocode}
+\providecommand*{\honderd}{honderd}%
+\providecommand*{\duizend}{duizend}%
+\global\let\honderd\honderd
+\global\let\duizend\duizend
+% \end{macrocode}
+% The numberstring implementation:
+% \begin{macrocode}
+\newcommand*\@@numberstringdutch[2]{%
+ \ifnum#1>99999\relax
+ \PackageError{fmtcount}{Out of range}%
+ {This macro only works for values less than 100000}%
+ \else
+ \ifnum#1<0\relax
+ \PackageError{fmtcount}{Negative numbers not permitted}%
+ {This macro does not work for negative numbers, however
+ you can try typing "minus" first, and then pass the modulus of
+ this number}%
+ \fi
+ \fi
+ \def#2{}%
+ \@strctr=#1\relax \divide\@strctr by 1000\relax
+ \ifnum\@strctr>1\relax
+ \@@numberunderhundreddutch{\@strctr}{#2}%
+ \appto#2{duizend}%
+ \else
+ \ifnum\@strctr=1\relax
+ \eappto#2{\duizend}%
+ \fi
+ \fi
+ \@strctr=#1\relax
+ \@FCmodulo{\@strctr}{1000}%
+ \divide\@strctr by 100\relax
+ \ifnum\@strctr>1\relax
+ \eappto#2{\@unitstring{\@strctr}honderd}%
+ \else
+ \ifnum\@strctr=1\relax
+ \ifnum#1>1000\relax
+ \appto#2{honderd}%
+ \else
+ \eappto#2{\honderd}%
+ \fi
+ \fi
+ \fi
+ \@strctr=#1\relax
+ \@FCmodulo{\@strctr}{100}%
+ \ifnum#1=0\relax
+ \def#2{null}%
+ \else
+ \ifnum\@strctr=1\relax
+ \appto#2{een}% één and \'e\'en not working atm
+ \else
+ \@@numberunderhundreddutch{\@strctr}{#2}%
+ \fi
+ \fi
+}%
+\global\let\@@numberstringdutch\@@numberstringdutch
+% \end{macrocode}
+% All lower case version, the second argument must be a control
+% sequence.
+% \begin{macrocode}
+\newcommand*{\@numberstringMdutch}[2]{%
+ \let\@unitstring=\@@unitstringdutch%
+ \let\@teenstring=\@@teenstringdutch%
+ \let\@tenstring=\@@tenstringdutch%
+ \def\@hundred{honderd}\def\@thousand{duizend}%
+ \@@numberstringdutch{#1}{#2}%
+}%
+\global\let\@numberstringMdutch\@numberstringMdutch
+% \end{macrocode}
+% There is no gender in Dutch, so make feminine and neuter the
+% same
+% as the masculine.
+% \begin{macrocode}
+\global\let\@numberstringFdutch=\@numberstringMdutch
+\global\let\@numberstringNdutch=\@numberstringMdutch
+% \end{macrocode}
+% This version makes the first letter of each word an uppercase
+% character (except ``and''). The second argument must be a control
+% sequence.
+% \begin{macrocode}
+\newcommand*{\@NumberstringMdutch}[2]{%
+ \@numberstringMdutch{#1}{\@@num@str}%
+ \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}%
+}%
+\global\let\@NumberstringMdutch\@NumberstringMdutch
+% \end{macrocode}
+% There is no gender in Dutch, so make feminine and neuter the
+% same
+% as the masculine.
+% \begin{macrocode}
+\global\let\@NumberstringFdutch=\@NumberstringMdutch
+\global\let\@NumberstringNdutch=\@NumberstringMdutch
+% \end{macrocode}
+% Define a macro that produces an ordinal as a string. Again, break
+% it up into units, teens and tens. First the units:
+% \begin{macrocode}
+\newcommand*\@@unitthstringdutch[1]{%
+ \ifcase#1%
+ nulde%
+ \or eerste% éérste and \'e\'erste not working atm
+ \or tweede%
+ \or derde%
+ \or vierde%
+ \or vijfde%
+ \or zesde%
+ \or zevende%
+ \or achtste%
+ \or negende%
+ \fi
+}%
+\global\let\@@unitthstringdutch\@@unitthstringdutch
+% \end{macrocode}
+% Next the tens:
+% \begin{macrocode}
+\newcommand*\@@tenthstringdutch[1]{%
+ \ifcase#1%
+ \or tiende%
+ \or twintigste%
+ \or dertigste%
+ \or veertigste%
+ \or vijftigste%
+ \or zestigste%
+ \or zeventigste%
+ \or tachtigste%
+ \or negentigste%
+ \fi
+}%
+\global\let\@@tenthstringdutch\@@tenthstringdutch
+% \end{macrocode}
+% The teens:
+% \begin{macrocode}
+\newcommand*\@@teenthstringdutch[1]{%
+ \ifcase#1%
+ tiende%
+ \or elfde%
+ \or twaalfde%
+ \or dertiende%
+ \or veertiende%
+ \or vijftiende%
+ \or zestiende%
+ \or zeventiende%
+ \or achttiende%
+ \or negentiende%
+ \fi
+}%
+\global\let\@@teenthstringdutch\@@teenthstringdutch
+% \end{macrocode}
+% The ordinalstring implementation:
+% \begin{macrocode}
+\newcommand*\@@ordinalstringdutch[2]{%
+ \@orgargctr=#1\relax
+ \ifnum\@orgargctr>99999\relax
+ \PackageError{fmtcount}{Out of range}%
+ {This macro only works for values less than 100000}%
+ \else
+ \ifnum\@orgargctr<0\relax
+ \PackageError{fmtcount}{Negative numbers not permitted}%
+ {This macro does not work for negative numbers, however
+ you can try typing "minus" first, and then pass the modulus of
+ this number}%
+ \fi
+ \fi
+ \def#2{}%
+ \@strctr=\@orgargctr\divide\@strctr by 1000\relax
+ \ifnum\@strctr>1\relax
+ \@@numberunderhundreddutch{\@strctr}{#2}%
+ \@tmpstrctr=\@orgargctr\@FCmodulo{\@tmpstrctr}{1000}%
+ \ifnum\@tmpstrctr=0\relax
+ \eappto#2{\@thousandth}%
+ \else
+ \appto#2{duizend}%
+ \fi
+ \else
+ \ifnum\@strctr=1\relax
+ \ifnum\@orgargctr=1000\relax
+ \eappto#2{\@thousandth}%
+ \else
+ \eappto#2{\duizend}%
+ \fi
+ \fi
+ \fi
+ \@strctr=\@orgargctr%
+ \@FCmodulo{\@strctr}{1000}%
+ \divide\@strctr by 100\relax
+ \ifnum\@strctr>1\relax
+ \@tmpstrctr=\@orgargctr \@FCmodulo{\@tmpstrctr}{100}%
+ \ifnum\@tmpstrctr=0\relax
+ \ifnum\@strctr=1\relax
+ \eappto#2{\@hundredth}%
+ \else
+ \eappto#2{\@unitstring{\@strctr}\@hundredth}%
+ \fi
+ \else
+ \eappto#2{\@unitstring{\@strctr}honderd}%
+ \fi
+ \else
+ \ifnum\@strctr=1\relax
+ \@tmpstrctr=\@orgargctr \@FCmodulo{\@tmpstrctr}{100}%
+ \ifnum\@tmpstrctr=0\relax
+ \eappto#2{\@hundredth}%
+ \else
+ \ifnum\@orgargctr>1000\relax
+ \appto#2{honderd}%
+ \else
+ \eappto#2{\honderd}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \@strctr=\@orgargctr%
+ \@FCmodulo{\@strctr}{100}%
+ \ifthenelse{\@strctr=0 \and \@orgargctr>0 }{}{%
+ \@@numberunderhundredthdutch{\@strctr}{#2}%
+ }%
+}%
+\global\let\@@ordinalstringdutch\@@ordinalstringdutch
+% \end{macrocode}
+% All lower case version. Again, the second argument must be a
+% control sequence in which the resulting text is stored.
+% \begin{macrocode}
+\newcommand*{\@ordinalstringMdutch}[2]{%
+ \let\@unitthstring=\@@unitthstringdutch%
+ \let\@teenthstring=\@@teenthstringdutch%
+ \let\@tenthstring=\@@tenthstringdutch%
+ \let\@unitstring=\@@unitstringdutch%
+ \let\@teenstring=\@@teenstringdutch%
+ \let\@tenstring=\@@tenstringdutch%
+ \def\@thousandth{duizendste}%
+ \def\@hundredth{honderdste}%
+ \@@ordinalstringdutch{#1}{#2}%
+}%
+\global\let\@ordinalstringMdutch\@ordinalstringMdutch
+% \end{macrocode}
+% No gender in Dutch, so make feminine and neuter same as
+% masculine:
+% \begin{macrocode}
+\global\let\@ordinalstringFdutch=\@ordinalstringMdutch
+\global\let\@ordinalstringNdutch=\@ordinalstringMdutch
+% \end{macrocode}
+% First letter of each word in upper case:
+% \begin{macrocode}
+\newcommand*{\@OrdinalstringMdutch}[2]{%
+ \@ordinalstringMdutch{#1}{\@@num@str}%
+ \def\@hundred{Honderd}\def\@thousand{Duizend}%
+ \def\@hundredth{Honderdste}\def\@thousandth{Duizendste}%
+ \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}%
+}%
+\global\let\@OrdinalstringMdutch\@OrdinalstringMdutch
+% \end{macrocode}
+% No gender in Dutch, so make feminine and neuter same as
+% masculine:
+% \begin{macrocode}
+\global\let\@OrdinalstringFdutch=\@OrdinalstringMdutch
+\global\let\@OrdinalstringNdutch=\@OrdinalstringMdutch
+% \end{macrocode}
+% For numbers under hunderd:
+% \begin{macrocode}
+\newcommand*{\@@numberunderhundreddutch}[2]{%
+ \ifnum#1<10\relax
+ \ifnum#1>0\relax
+ \eappto#2{\@unitstring{#1}}%
+ \fi
+ \else
+ \@tmpstrctr=#1\relax
+ \@FCmodulo{\@tmpstrctr}{10}%
+ \ifnum#1<20\relax
+ \eappto#2{\@teenstring{\@tmpstrctr}}%
+ \else
+ \ifnum\@tmpstrctr=0\relax
+ \else
+% \end{macrocode}
+% For digits ending with an `e', a trema gets added for \cs{@andname}.
+% Take for example drieëntwintig or tweeënveertig.
+% \begin{macrocode}
+ \ifnum\@tmpstrctr=2\relax\def\@andname{ën}%
+ \else\ifnum\@tmpstrctr=3\relax\def\@andname{ën}%
+ \else\def\@andname{en}%
+ \fi\fi%
+ \eappto#2{\@unitstring{\@tmpstrctr}\@andname}%
+ \fi
+ \@tmpstrctr=#1\relax
+ \divide\@tmpstrctr by 10\relax
+ \eappto#2{\@tenstring{\@tmpstrctr}}%
+ \fi
+ \fi
+}%
+\global\let\@@numberunderhundreddutch\@@numberunderhundreddutch
+\newcommand*{\@@numberunderhundredthdutch}[2]{%
+ \ifnum#1<10\relax
+ \eappto#2{\@unitthstring{#1}}%
+ \else
+ \@tmpstrctr=#1\relax
+ \@FCmodulo{\@tmpstrctr}{10}%
+ \ifnum#1<20\relax
+ \eappto#2{\@teenthstring{\@tmpstrctr}}%
+ \else
+ \ifnum\@tmpstrctr=0\relax
+ \else
+% \end{macrocode}
+% Again, for digits ending with an `e', a trema gets added for \cs{@andname} (drieëntwintig or tweeënveertig).
+% \begin{macrocode}
+ \ifnum\@tmpstrctr=2\relax\def\@andname{ën}%
+ \else\ifnum\@tmpstrctr=3\relax\def\@andname{ën}%
+ \else\def\@andname{en}%
+ \fi\fi%
+ \eappto#2{\@unitstring{\@tmpstrctr}\@andname}%
+ \fi
+ \@tmpstrctr=#1\relax
+ \divide\@tmpstrctr by 10\relax
+ \eappto#2{\@tenthstring{\@tmpstrctr}}%
+ \fi
+ \fi
+}%
+\global\let\@@numberunderhundredthdutch\@@numberunderhundredthdutch
+% \end{macrocode}
+\iffalse Local variables: \fi
+\iffalse mode: docTeX \fi
+\iffalse End: \fi
+%\iffalse
+% \begin{macrocode}
+%</fc-dutch.def>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
%<*fc-english.def>
% \end{macrocode}
%\fi
@@ -1804,7 +2212,7 @@ this number}%
% \subsubsection{fc-french.def}
% Definitions for French.
% \begin{macrocode}
-\ProvidesFCLanguage{french}[2020/02/24]%
+\ProvidesFCLanguage{french}[2017/06/15]%
% \end{macrocode}
% Package \styfmt{fcprefix} is needed to format the prefix \meta{$n$}
% in \meta{$n$}illion or \meta{$n$}illiard. Big numbers were
@@ -3659,7 +4067,7 @@ z\'ero%
\or zwei%
\or drei%
\or vier%
- \or f\"unf%
+ \or fünf%
\or sechs%
\or sieben%
\or acht%
@@ -3674,9 +4082,9 @@ z\'ero%
\ifcase#1%
\or zehn%
\or zwanzig%
- \or drei{\ss}ig%
+ \or dreißig%
\or vierzig%
- \or f\"unfzig%
+ \or fünfzig%
\or sechzig%
\or siebzig%
\or achtzig%
@@ -3686,9 +4094,9 @@ z\'ero%
}%
\global\let\@@tenstringgerman\@@tenstringgerman
% \end{macrocode}
-% |\einhundert| is set to |einhundert| by default, user can
+% \cs{einhundert} is set to |einhundert| by default, user can
% redefine this command to just |hundert| if required, similarly
-% for |\eintausend|.
+% for \cs{eintausend}.
% \begin{macrocode}
\providecommand*{\einhundert}{einhundert}%
\providecommand*{\eintausend}{eintausend}%
@@ -3701,10 +4109,10 @@ z\'ero%
\ifcase#1%
zehn%
\or elf%
- \or zw\"olf%
+ \or zwölf%
\or dreizehn%
\or vierzehn%
- \or f\"unfzehn%
+ \or fünfzehn%
\or sechzehn%
\or siebzehn%
\or achtzehn%
@@ -3822,7 +4230,7 @@ z\'ero%
% it is easier to split it into units, tens and teens.
% Units:
%\changes{2.0}{2012-09-25}{fixed spelling mistake (correction
-%provided by Dominik Wa\ss enhoven)}
+%provided by Dominik Waß enhoven)}
% \begin{macrocode}
\newcommand*\@@unitthstringMgerman[1]{%
\ifcase#1%
@@ -3831,7 +4239,7 @@ z\'ero%
\or zweiter%
\or dritter%
\or vierter%
- \or f\"unfter%
+ \or fünfter%
\or sechster%
\or siebter%
\or achter%
@@ -3846,9 +4254,9 @@ z\'ero%
\ifcase#1%
\or zehnter%
\or zwanzigster%
- \or drei{\ss}igster%
+ \or dreißigster%
\or vierzigster%
- \or f\"unfzigster%
+ \or fünfzigster%
\or sechzigster%
\or siebzigster%
\or achtzigster%
@@ -3863,10 +4271,10 @@ z\'ero%
\ifcase#1%
zehnter%
\or elfter%
- \or zw\"olfter%
+ \or zwölfter%
\or dreizehnter%
\or vierzehnter%
- \or f\"unfzehnter%
+ \or fünfzehnter%
\or sechzehnter%
\or siebzehnter%
\or achtzehnter%
@@ -3884,7 +4292,7 @@ z\'ero%
\or zweite%
\or dritte%
\or vierte%
- \or f\"unfte%
+ \or fünfte%
\or sechste%
\or siebte%
\or achte%
@@ -3899,9 +4307,9 @@ z\'ero%
\ifcase#1%
\or zehnte%
\or zwanzigste%
- \or drei{\ss}igste%
+ \or dreißigste%
\or vierzigste%
- \or f\"unfzigste%
+ \or fünfzigste%
\or sechzigste%
\or siebzigste%
\or achtzigste%
@@ -3916,10 +4324,10 @@ z\'ero%
\ifcase#1%
zehnte%
\or elfte%
- \or zw\"olfte%
+ \or zwölfte%
\or dreizehnte%
\or vierzehnte%
- \or f\"unfzehnte%
+ \or fünfzehnte%
\or sechzehnte%
\or siebzehnte%
\or achtzehnte%
@@ -3939,7 +4347,7 @@ z\'ero%
\or zweites%
\or drittes%
\or viertes%
- \or f\"unftes%
+ \or fünftes%
\or sechstes%
\or siebtes%
\or achtes%
@@ -3954,9 +4362,9 @@ z\'ero%
\ifcase#1%
\or zehntes%
\or zwanzigstes%
- \or drei{\ss}igstes%
+ \or dreißigstes%
\or vierzigstes%
- \or f\"unfzigstes%
+ \or fünfzigstes%
\or sechzigstes%
\or siebzigstes%
\or achtzigstes%
@@ -3971,10 +4379,10 @@ z\'ero%
\ifcase#1%
zehntes%
\or elftes%
- \or zw\"olftes%
+ \or zwölftes%
\or dreizehntes%
\or vierzehntes%
- \or f\"unfzehntes%
+ \or fünfzehntes%
\or sechzehntes%
\or siebzehntes%
\or achtzehntes%
@@ -4257,42 +4665,79 @@ z\'ero%
\RequirePackage{itnumpar}
\newcommand{\@numberstringMitalian}[2]{%
- \edef#2{\noexpand\printnumeroinparole{#1}}%
+ \begingroup
+ \def\np@oa{o}%
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@numeroinparole{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
}
\global\let\@numberstringMitalian\@numberstringMitalian
\newcommand{\@numberstringFitalian}[2]{%
- \edef#2{\noexpand\printnumeroinparole{#1}}}
+ \begingroup
+ \def\np@oa{a}%
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@numeroinparole{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
+}
\global\let\@numberstringFitalian\@numberstringFitalian
\newcommand{\@NumberstringMitalian}[2]{%
- \edef#2{\noexpand\printNumeroinparole{#1}}%
+ \begingroup
+ \def\np@oa{o}%
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@Numeroinparole{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
}
\global\let\@NumberstringMitalian\@NumberstringMitalian
\newcommand{\@NumberstringFitalian}[2]{%
- \edef#2{\noexpand\printNumeroinparole{#1}}%
+ \begingroup
+ \def\np@oa{a}%
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@Numeroinparole{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
}
\global\let\@NumberstringFitalian\@NumberstringFitalian
\newcommand{\@ordinalstringMitalian}[2]{%
- \edef#2{\noexpand\printordinalem{#1}}%
+ \begingroup
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@ordinalem{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
}
\global\let\@ordinalstringMitalian\@ordinalstringMitalian
\newcommand{\@ordinalstringFitalian}[2]{%
- \edef#2{\noexpand\printordinalef{#1}}%
+ \begingroup
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@ordinalef{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
}
\global\let\@ordinalstringFitalian\@ordinalstringFitalian
\newcommand{\@OrdinalstringMitalian}[2]{%
- \edef#2{\noexpand\printOrdinalem{#1}}%
+ \begingroup
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@Ordinalem{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
}
\global\let\@OrdinalstringMitalian\@OrdinalstringMitalian
\newcommand{\@OrdinalstringFitalian}[2]{%
- \edef#2{\noexpand\printOrdinalef{#1}}%
+ \begingroup
+ \count@=#1
+ \edef\@tempa{\def\noexpand#2{\@Ordinalef{\count@}}}%
+ \expandafter
+ \endgroup\@tempa
}
\global\let\@OrdinalstringFitalian\@OrdinalstringFitalian
@@ -5348,7 +5793,7 @@ this number}%
\or trece%
\or catorce%
\or quince%
- \or diecis\'eis%
+ \or dieciséis%
\or diecisiete%
\or dieciocho%
\or diecinueve%
@@ -5362,11 +5807,11 @@ this number}%
\ifcase#1\relax
veinte%
\or veintiuno%
- \or veintid\'os%
- \or veintitr\'es%
+ \or veintidós%
+ \or veintitrés%
\or veinticuatro%
\or veinticinco%
- \or veintis\'eis%
+ \or veintiséis%
\or veintisiete%
\or veintiocho%
\or veintinueve%
@@ -5380,11 +5825,11 @@ this number}%
\ifcase#1\relax
veinte%
\or veintiuna%
- \or veintid\'os%
- \or veintitr\'es%
+ \or veintidós%
+ \or veintitrés%
\or veinticuatro%
\or veinticinco%
- \or veintis\'eis%
+ \or veintiséis%
\or veintisiete%
\or veintiocho%
\or veintinueve%
@@ -5492,7 +5937,7 @@ this number}%
\or Trece%
\or Catorce%
\or Quince%
- \or Diecis\'eis%
+ \or Dieciséis%
\or Diecisiete%
\or Dieciocho%
\or Diecinueve%
@@ -5506,11 +5951,11 @@ this number}%
\ifcase#1\relax
Veinte%
\or Veintiuno%
- \or Veintid\'os%
- \or Veintitr\'es%
+ \or Veintidós%
+ \or Veintitrés%
\or Veinticuatro%
\or Veinticinco%
- \or Veintis\'eis%
+ \or Veintiséis%
\or Veintisiete%
\or Veintiocho%
\or Veintinueve%
@@ -5524,11 +5969,11 @@ this number}%
\ifcase#1\relax
Veinte%
\or Veintiuna%
- \or Veintid\'os%
- \or Veintitr\'es%
+ \or Veintidós%
+ \or Veintitrés%
\or Veinticuatro%
\or Veinticinco%
- \or Veintis\'eis%
+ \or Veintiséis%
\or Veintisiete%
\or Veintiocho%
\or Veintinueve%
@@ -5657,7 +6102,7 @@ this number}%
\let\@teenthstring=\@@teenthstringspanish
\let\@tenthstring=\@@tenthstringspanish
\let\@hundredthstring=\@@hundredthstringspanish
- \def\@thousandth{mil\'esimo}%
+ \def\@thousandth{milésimo}%
\@@ordinalstringspanish{#1}{#2}%
}%
\global\let\@ordinalstringMspanish\@ordinalstringMspanish
@@ -5670,7 +6115,7 @@ this number}%
\let\@teenthstring=\@@teenthstringFspanish
\let\@tenthstring=\@@tenthstringFspanish
\let\@hundredthstring=\@@hundredthstringFspanish
- \def\@thousandth{mil\'esima}%
+ \def\@thousandth{milésima}%
\@@ordinalstringspanish{#1}{#2}%
}%
\global\let\@ordinalstringFspanish\@ordinalstringFspanish
@@ -5687,7 +6132,7 @@ this number}%
\let\@teenthstring=\@@Teenthstringspanish
\let\@tenthstring=\@@Tenthstringspanish
\let\@hundredthstring=\@@Hundredthstringspanish
- \def\@thousandth{Mil\'esimo}%
+ \def\@thousandth{Milésimo}%
\@@ordinalstringspanish{#1}{#2}%
}
\global\let\@OrdinalstringMspanish\@OrdinalstringMspanish
@@ -5700,7 +6145,7 @@ this number}%
\let\@teenthstring=\@@TeenthstringFspanish
\let\@tenthstring=\@@TenthstringFspanish
\let\@hundredthstring=\@@HundredthstringFspanish
- \def\@thousandth{Mil\'esima}%
+ \def\@thousandth{Milésima}%
\@@ordinalstringspanish{#1}{#2}%
}%
\global\let\@OrdinalstringFspanish\@OrdinalstringFspanish
@@ -5722,7 +6167,7 @@ this number}%
\or cuarto%
\or quinto%
\or sexto%
- \or s\'eptimo%
+ \or séptimo%
\or octavo%
\or noveno%
\fi
@@ -5733,15 +6178,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@tenthstringspanish[1]{%
\ifcase#1\relax
- \or d\'ecimo%
- \or vig\'esimo%
- \or trig\'esimo%
- \or cuadrag\'esimo%
- \or quincuag\'esimo%
- \or sexag\'esimo%
- \or septuag\'esimo%
- \or octog\'esimo%
- \or nonag\'esimo%
+ \or décimo%
+ \or vigésimo%
+ \or trigésimo%
+ \or cuadragésimo%
+ \or quincuagésimo%
+ \or sexagésimo%
+ \or septuagésimo%
+ \or octogésimo%
+ \or nonagésimo%
\fi
}%
\global\let\@@tenthstringspanish\@@tenthstringspanish
@@ -5750,14 +6195,14 @@ this number}%
% \begin{macrocode}
\newcommand*\@@teenthstringspanish[1]{%
\ifcase#1\relax
- d\'ecimo%
- \or und\'ecimo%
- \or duod\'ecimo%
+ décimo%
+ \or undécimo%
+ \or duodécimo%
\or decimotercero%
\or decimocuarto%
\or decimoquinto%
\or decimosexto%
- \or decimos\'eptimo%
+ \or decimoséptimo%
\or decimoctavo%
\or decimonoveno%
\fi
@@ -5768,15 +6213,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@hundredthstringspanish[1]{%
\ifcase#1\relax
- \or cent\'esimo%
- \or ducent\'esimo%
- \or tricent\'esimo%
- \or cuadringent\'esimo%
- \or quingent\'esimo%
- \or sexcent\'esimo%
- \or septing\'esimo%
- \or octingent\'esimo%
- \or noningent\'esimo%
+ \or centésimo%
+ \or ducentésimo%
+ \or tricentésimo%
+ \or cuadringentésimo%
+ \or quingentésimo%
+ \or sexcentésimo%
+ \or septingésimo%
+ \or octingentésimo%
+ \or noningentésimo%
\fi
}%
\global\let\@@hundredthstringspanish\@@hundredthstringspanish
@@ -5792,7 +6237,7 @@ this number}%
\or cuarta%
\or quinta%
\or sexta%
- \or s\'eptima%
+ \or séptima%
\or octava%
\or novena%
\fi
@@ -5803,15 +6248,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@tenthstringFspanish[1]{%
\ifcase#1\relax
- \or d\'ecima%
- \or vig\'esima%
- \or trig\'esima%
- \or cuadrag\'esima%
- \or quincuag\'esima%
- \or sexag\'esima%
- \or septuag\'esima%
- \or octog\'esima%
- \or nonag\'esima%
+ \or décima%
+ \or vigésima%
+ \or trigésima%
+ \or cuadragésima%
+ \or quincuagésima%
+ \or sexagésima%
+ \or septuagésima%
+ \or octogésima%
+ \or nonagésima%
\fi
}%
\global\let\@@tenthstringFspanish\@@tenthstringFspanish
@@ -5820,14 +6265,14 @@ this number}%
% \begin{macrocode}
\newcommand*\@@teenthstringFspanish[1]{%
\ifcase#1\relax
- d\'ecima%
- \or und\'ecima%
- \or duod\'ecima%
+ décima%
+ \or undécima%
+ \or duodécima%
\or decimotercera%
\or decimocuarta%
\or decimoquinta%
\or decimosexta%
- \or decimos\'eptima%
+ \or decimoséptima%
\or decimoctava%
\or decimonovena%
\fi
@@ -5838,15 +6283,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@hundredthstringFspanish[1]{%
\ifcase#1\relax
- \or cent\'esima%
- \or ducent\'esima%
- \or tricent\'esima%
- \or cuadringent\'esima%
- \or quingent\'esima%
- \or sexcent\'esima%
- \or septing\'esima%
- \or octingent\'esima%
- \or noningent\'esima%
+ \or centésima%
+ \or ducentésima%
+ \or tricentésima%
+ \or cuadringentésima%
+ \or quingentésima%
+ \or sexcentésima%
+ \or septingésima%
+ \or octingentésima%
+ \or noningentésima%
\fi
}%
\global\let\@@hundredthstringFspanish\@@hundredthstringFspanish
@@ -5862,7 +6307,7 @@ this number}%
\or Cuarto%
\or Quinto%
\or Sexto%
- \or S\'eptimo%
+ \or Séptimo%
\or Octavo%
\or Noveno%
\fi
@@ -5873,15 +6318,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@Tenthstringspanish[1]{%
\ifcase#1\relax
- \or D\'ecimo%
- \or Vig\'esimo%
- \or Trig\'esimo%
- \or Cuadrag\'esimo%
- \or Quincuag\'esimo%
- \or Sexag\'esimo%
- \or Septuag\'esimo%
- \or Octog\'esimo%
- \or Nonag\'esimo%
+ \or Décimo%
+ \or Vigésimo%
+ \or Trigésimo%
+ \or Cuadragésimo%
+ \or Quincuagésimo%
+ \or Sexagésimo%
+ \or Septuagésimo%
+ \or Octogésimo%
+ \or Nonagésimo%
\fi
}%
\global\let\@@Tenthstringspanish\@@Tenthstringspanish
@@ -5890,14 +6335,14 @@ this number}%
% \begin{macrocode}
\newcommand*\@@Teenthstringspanish[1]{%
\ifcase#1\relax
- D\'ecimo%
- \or Und\'ecimo%
- \or Duod\'ecimo%
+ Décimo%
+ \or Undécimo%
+ \or Duodécimo%
\or Decimotercero%
\or Decimocuarto%
\or Decimoquinto%
\or Decimosexto%
- \or Decimos\'eptimo%
+ \or Decimoséptimo%
\or Decimoctavo%
\or Decimonoveno%
\fi
@@ -5908,15 +6353,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@Hundredthstringspanish[1]{%
\ifcase#1\relax
- \or Cent\'esimo%
- \or Ducent\'esimo%
- \or Tricent\'esimo%
- \or Cuadringent\'esimo%
- \or Quingent\'esimo%
- \or Sexcent\'esimo%
- \or Septing\'esimo%
- \or Octingent\'esimo%
- \or Noningent\'esimo%
+ \or Centésimo%
+ \or Ducentésimo%
+ \or Tricentésimo%
+ \or Cuadringentésimo%
+ \or Quingentésimo%
+ \or Sexcentésimo%
+ \or Septingésimo%
+ \or Octingentésimo%
+ \or Noningentésimo%
\fi
}%
\global\let\@@Hundredthstringspanish\@@Hundredthstringspanish
@@ -5932,7 +6377,7 @@ this number}%
\or Cuarta%
\or Quinta%
\or Sexta%
- \or S\'eptima%
+ \or Séptima%
\or Octava%
\or Novena%
\fi
@@ -5943,15 +6388,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@TenthstringFspanish[1]{%
\ifcase#1\relax
- \or D\'ecima%
- \or Vig\'esima%
- \or Trig\'esima%
- \or Cuadrag\'esima%
- \or Quincuag\'esima%
- \or Sexag\'esima%
- \or Septuag\'esima%
- \or Octog\'esima%
- \or Nonag\'esima%
+ \or Décima%
+ \or Vigésima%
+ \or Trigésima%
+ \or Cuadragésima%
+ \or Quincuagésima%
+ \or Sexagésima%
+ \or Septuagésima%
+ \or Octogésima%
+ \or Nonagésima%
\fi
}%
\global\let\@@TenthstringFspanish\@@TenthstringFspanish
@@ -5960,14 +6405,14 @@ this number}%
% \begin{macrocode}
\newcommand*\@@TeenthstringFspanish[1]{%
\ifcase#1\relax
- D\'ecima%
- \or Und\'ecima%
- \or Duod\'ecima%
+ Décima%
+ \or Undécima%
+ \or Duodécima%
\or Decimotercera%
\or Decimocuarta%
\or Decimoquinta%
\or Decimosexta%
- \or Decimos\'eptima%
+ \or Decimoséptima%
\or Decimoctava%
\or Decimonovena%
\fi
@@ -5978,15 +6423,15 @@ this number}%
% \begin{macrocode}
\newcommand*\@@HundredthstringFspanish[1]{%
\ifcase#1\relax
- \or Cent\'esima%
- \or Ducent\'esima%
- \or Tricent\'esima%
- \or Cuadringent\'esima%
- \or Quingent\'esima%
- \or Sexcent\'esima%
- \or Septing\'esima%
- \or Octingent\'esima%
- \or Noningent\'esima%
+ \or Centésima%
+ \or Ducentésima%
+ \or Tricentésima%
+ \or Cuadringentésima%
+ \or Quingentésima%
+ \or Sexcentésima%
+ \or Septingésima%
+ \or Octingentésima%
+ \or Noningentésima%
\fi
}%
\global\let\@@HundredthstringFspanish\@@HundredthstringFspanish
@@ -7486,7 +7931,7 @@ this number}%
% This section deals with the code for |fmtcount.sty|
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{fmtcount}[2020/01/30 v3.07]
+\ProvidesPackage{fmtcount}[2024/08/31 v3.08]
\RequirePackage{ifthen}
% \end{macrocode}
% \changes{3.01}{2014/12/03}{Use \styfmt{xkeyval} instead of \styfmt{keyval}, so that we do not get in trouble
@@ -7660,7 +8105,8 @@ german,%
germanb,%
ngerman,%
ngermanb,%
-italian}
+italian,%
+dutch}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\fc@iterate@on@languages}
@@ -9102,7 +9548,7 @@ italian}
\protect\@numberstringM{#1}{\@fc@numstr}%
}%
}%
- \MakeUppercase{\@fc@numstr}%
+ \protect\MakeUppercase{\@fc@numstr}%
}%
}
% \end{macrocode}
diff --git a/macros/latex/contrib/fmtcount/fmtcount.ins b/macros/latex/contrib/fmtcount/fmtcount.ins
index 1c31d8f0aa..f1e5ccdbdb 100644
--- a/macros/latex/contrib/fmtcount/fmtcount.ins
+++ b/macros/latex/contrib/fmtcount/fmtcount.ins
@@ -1,10 +1,10 @@
-% fmtcount.ins generated using makedtx version 1.2 2020/2/24 20:03
+% fmtcount.ins generated using makedtx version 1.2 2024/8/31 14:57
\input docstrip
\preamble
fmtcount.dtx
- Copyright 2020 Nicola Talbot and Vincent Belache
+ Copyright 2024 Nicola Talbot and Vincent Belaïche
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -16,9 +16,9 @@
This work has the LPPL maintenance status `maintained'.
- The Current Maintainer of this work is Nicola Talbot and Vincent Belache.
+ The Current Maintainer of this work is Nicola Talbot and Vincent Belaïche.
- This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fc-american.def, fc-brazilian.def, fc-british.def, fc-english.def, fc-francais.def, fc-french.def, fc-frenchb.def, fc-german.def, fc-germanb.def, fc-italian.def, fc-ngerman.def, fc-ngermanb.def, fc-portuges.def, fc-portuguese.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def, fcnumparser.sty, fcprefix.sty, fmtcount.sty.
+ This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fc-american.def, fc-brazilian.def, fc-british.def, fc-dutch.def, fc-english.def, fc-francais.def, fc-french.def, fc-frenchb.def, fc-german.def, fc-germanb.def, fc-italian.def, fc-ngerman.def, fc-ngermanb.def, fc-portuges.def, fc-portuguese.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def, fcnumparser.sty, fcprefix.sty, fmtcount.sty.
\endpreamble
@@ -30,6 +30,8 @@
\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-brazilian.def,package}}
\file{fc-british.def}{\usepreamble\defaultpreamble
\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-british.def,package}}
+\file{fc-dutch.def}{\usepreamble\defaultpreamble
+\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-dutch.def,package}}
\file{fc-english.def}{\usepreamble\defaultpreamble
\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-english.def,package}}
\file{fc-francais.def}{\usepreamble\defaultpreamble
diff --git a/macros/latex/contrib/fmtcount/fmtcount.pdf b/macros/latex/contrib/fmtcount/fmtcount.pdf
index 98673a2b81..2db224c27c 100644
--- a/macros/latex/contrib/fmtcount/fmtcount.pdf
+++ b/macros/latex/contrib/fmtcount/fmtcount.pdf
Binary files differ
diff --git a/macros/latex/contrib/fmtcount/fmtcount.perl b/macros/latex/contrib/fmtcount/fmtcount.perl
index b8a1fde0df..c7fdfe3303 100644
--- a/macros/latex/contrib/fmtcount/fmtcount.perl
+++ b/macros/latex/contrib/fmtcount/fmtcount.perl
@@ -355,6 +355,149 @@ sub get_numberstringenglish{
$name;
}
+@unitthstringdutch = ('nulste',
+ 'eerste',
+ 'tweede',
+ 'derde',
+ 'vierde',
+ 'vijfde',
+ 'zesde',
+ 'zevende',
+ 'achtste',
+ 'negende');
+
+@tenthstringdutch = ('',
+ 'tiende',
+ 'twintigste',
+ 'dertigste',
+ 'veertigste',
+ 'vijftigste',
+ 'zestigste',
+ 'zeventigste',
+ 'tachtigste',
+ 'negentigste');
+
+@teenthstringdutch = ('tiende',
+ 'elfde',
+ 'twaalfde',
+ 'dertien',
+ 'veertiende',
+ 'vijftiende',
+ 'zestiende',
+ 'zeventiende',
+ 'achttiende',
+ 'negentiende');
+
+@unitstringdutch = ('nul',
+ 'één',
+ 'twee',
+ 'drie',
+ 'vier',
+ 'vijf',
+ 'zes',
+ 'zeven',
+ 'acht',
+ 'negen');
+
+@teenstringdutch = ('tien',
+ 'elf',
+ 'twaalf',
+ 'dertien',
+ 'veertien',
+ 'vijftien',
+ 'zestien',
+ 'zeventien',
+ 'achttien',
+ 'negentien');
+
+@tenstringdutch = ('',
+ 'tien',
+ 'twintig',
+ 'dertig',
+ 'veertig',
+ 'vijftig',
+ 'zestig',
+ 'zeventig',
+ 'tachtig',
+ 'negentig');
+
+$hundrednamedutch = "honderd";
+$hundredthnamedutch = "honderdste";
+$thousandnamedutch = "duizend";
+$thousandthnamedutch = "duizendste";
+
+sub get_numberstringdutch {
+ local($num) = @_;
+ local($name) = "";
+
+ unless (($num >= 1000000) || ($num < 0)) {
+ if ($num >= 1000) {
+ local($thousandsdutch) = &get_numberstringdutch(int($num / 1000));
+ $name .= $thousandsdutch;
+
+ if ($num % 1000 > 0) {
+ $name .= " $thousandnamedutch";
+ } else {
+ $name .= " $thousandthnamedutch";
+ }
+
+ $num = $num % 1000;
+ }
+
+ if ($num >= 100) {
+ if ($_[0] >= 1000) { $name .= " "; }
+
+ local($hundredsdutch) = &get_numberstringdutch(int($num / 100));
+ $name .= $hundredsdutch;
+
+ if ($num % 100 > 0) {
+ $name .= " $hundrednamedutch";
+ } else {
+ $name .= " $hundredthnamedutch";
+ }
+
+ $num = $num % 100;
+ }
+
+ if (($_[0] > 100) && ($_[0] % 100 > 0)) { $name .= " en "; }
+
+ if ($num >= 20) {
+ local($tens) = int($num / 10);
+ local($units) = $num % 10;
+
+ # Handle special "ën" for 2 and 3 in numbers like 22, 23, etc.
+ if ($units == 2 || $units == 3) {
+ $name .= $unitstringdutch[$units] . "ën" . $tenstringdutch[$tens];
+ } else {
+ if ($units > 0) {
+ $name .= $tenstringdutch[$tens] . 'en' . $unitstringdutch[$units];
+ } else {
+ $name .= $tenthstringdutch[$tens];
+ }
+ }
+
+ # Handle "ste" or "de" suffix
+ if ($units > 0) {
+ $name .= ($units == 2 || $units == 3) ? 'ste' : 'e';
+ } else {
+ $name .= 'ste';
+ }
+ }
+
+ if (($num >= 10) && ($num < 20)) {
+ $name .= $teenthstringdutch[$num % 10] . 'de';
+ } elsif (($num % 10 > 0) || ($_[0] == 0)) {
+ if ($num > 20 && ($num % 10 == 2 || $num % 10 == 3)) {
+ $name .= $unitstringdutch[$num % 10] . 'e';
+ } else {
+ $name .= $unitthstringdutch[$num % 10];
+ }
+ }
+ }
+
+ $name;
+}
+
@unitthstringfrench = ('zeroi\`eme',
'uni\`eme',
'deuxi\`eme',
@@ -1092,7 +1235,11 @@ sub get_numberstringgerman{
sub get_numberstring{
local($val,$gender) = @_;
- if ($default_language eq 'french')
+ if ($default_language eq 'dutch')
+ {
+ &get_numberstringdutch($val,$gender);
+ }
+ elsif ($default_language eq 'french')
{
&get_numberstringfrench($val,$gender);
}
@@ -1424,6 +1571,78 @@ sub do_cmd_storeNUMBERstringnum{
$_;
}
+sub get_ordinalstringdutch {
+ local($num) = @_;
+ local($name) = "";
+
+ unless (($num >= 1000000) || ($num < 0)) {
+ if ($num >= 1000) {
+ local($thousandsdutch) = &get_numberstringdutch(int($num / 1000));
+ $name .= $thousandsdutch;
+
+ if ($num % 1000 > 0) {
+ $name .= " $thousandnamedutch";
+ } else {
+ $name .= " $thousandthnamedutch";
+ }
+
+ $num = $num % 1000;
+ }
+
+ if ($num >= 100) {
+ if ($_[0] >= 1000) { $name .= " "; }
+
+ local($hundredsdutch) = &get_numberstringdutch(int($num / 100));
+ $name .= $hundredsdutch;
+
+ if ($num % 100 > 0) {
+ $name .= " $hundrednamedutch";
+ } else {
+ $name .= " $hundredthnamedutch";
+ }
+
+ $num = $num % 100;
+ }
+
+ if (($_[0] > 100) && ($_[0] % 100 > 0)) { $name .= " en "; }
+
+ if ($num >= 20) {
+ local($tens) = int($num / 10);
+ local($units) = $num % 10;
+
+ # Handle special "ën" for 2 and 3 in numbers like 22, 23, etc.
+ if ($units == 2 || $units == 3) {
+ $name .= $unitstringdutch[$units] . "ën" . $tenstringdutch[$tens];
+ } else {
+ if ($units > 0) {
+ $name .= $tenstringdutch[$tens] . 'en' . $unitstringdutch[$units];
+ } else {
+ $name .= $tenthstringdutch[$tens];
+ }
+ }
+
+ # Handle "ste" or "de" suffix
+ if ($units > 0) {
+ $name .= ($units == 2 || $units == 3) ? 'ste' : 'e';
+ } else {
+ $name .= 'ste';
+ }
+ }
+
+ if (($num >= 10) && ($num < 20)) {
+ $name .= $teenthstringdutch[$num % 10] . 'de';
+ } elsif (($num % 10 > 0) || ($_[0] == 0)) {
+ if ($num > 20 && ($num % 10 == 2 || $num % 10 == 3)) {
+ $name .= $unitstringdutch[$num % 10] . 'e';
+ } else {
+ $name .= $unitthstringdutch[$num % 10];
+ }
+ }
+ }
+
+ $name;
+}
+
sub get_ordinalstringenglish{
local($num) = @_;
local($name)="";
@@ -1959,7 +2178,11 @@ sub get_ordinalstringgerman{
sub get_ordinalstring{
local($val,$gender) = @_;
- if ($default_language eq 'french')
+ if ($default_language eq 'dutch')
+ {
+ &get_ordinalstringdutch($val,$gender);
+ }
+ elsif ($default_language eq 'french')
{
&get_ordinalstringfrench($val,$gender);
}
diff --git a/macros/latex/contrib/fontscale/CHANGELOG.md b/macros/latex/contrib/fontscale/CHANGELOG.md
index 9706fbbe09..cc467e7c19 100644
--- a/macros/latex/contrib/fontscale/CHANGELOG.md
+++ b/macros/latex/contrib/fontscale/CHANGELOG.md
@@ -7,6 +7,79 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
## [Unreleased]
+## [v2.4.0] - 2024-09-10
+
+### Changed
+- `\fontscalesetup` no longer issues a warning if the lengths of the font
+ baselineskips are not ordered from `\tiny` to `\Huge`.
+- Code improvements.
+
+## [v2.3.0] - 2024-09-06
+
+### Changed
+- The package commands no longer check if the font baselineskip is less than
+ the font size.
+
+## [v2.2.0] - 2024-08-29
+
+### Changed
+- Improved the messages issued by this package.
+
+### Added
+- `\SetFontBaselineskip`
+
+## [v2.1.0] - 2024-08-12
+
+### Changed
+- Documentation improvements.
+
+### Added
+- `\CurrentFontSizeCommand`
+
+## [v2.0.0] - 2024-08-02
+
+### Changed
+- This update includes many changes that are backwards incompatible.
+- The documentation has been completely rewritten.
+- Package description changed from "A user interface for setting document font
+ sizes" to "A flexible interface for setting font sizes".
+- The code no longer uses `\@setfontsize`.
+- The font size commands provided by this package now do nothing, except issue
+ a warning, if used in math mode.
+- The base font size of the musical typographic scale is now set by the new key
+ `musical/base`.
+- `\PrintFontParameters` renamed to `\PrintFontSizeParameters`.
+- `\PrintAllFontParameters` renamed to `\PrintAllFontSizeParameters`.
+- `\PrintSampleText` uses a `+m`- instead of an `O`-type argument.
+- `\PrintFontSizeCommand` prints `\undefined` instead of `UNDEFINED`.
+- `\fontscalesetup` is now removed in `\text_purify:n`.
+
+### Removed
+- Keys `typographic-scale=modular` and `modular`.
+- Key `ignore-order` (no support for using `\tiny` to `\Huge` in the wrong
+ order).
+- Key `reset` (very rarely used).
+- Public `prop` variables for each font size command from `\tiny` to `\Huge`.
+ (They are redundant with the other public variables and programmers will very
+ likely prefer using their own `prop` variables.)
+
+### Added
+- `\fontscalesetup` now has an optional starred argument which first resets the
+ keys to their initial values.
+- Key `musical/base` (explained earlier).
+- The package commands now issue a user-friendly error message if the font size
+ is a zero or negative length.
+- The package commands now issue an error if the font baselineskip is less than
+ the font size.
+- The package commands that would produce a low-level error if used in math
+ mode now issue a user-friendly error message instead.
+
+### Fixed
+- Now correctly checks that the package requires `LaTeX2e` version 2023-11-01
+ or newer.
+- The keys `<font size command>` no longer incorrectly treat a `/` within a
+ brace group as the delimiter.
+
## [v1.3.0] - 2024-05-17
### Added
@@ -18,7 +91,7 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
### Changed
- The code now regularly uses `V`- and `v`-type arguments to get the value of a
variable.
-- The code now uses private `expl3` wrappers around the LaTeX2e commands
+- The code now uses private `expl3` wrappers around the `LaTeX2e` commands
`\@setfontsize`, `\fontsize`, and `\selectfont`.
## [v1.2.2] - 2024-04-29
diff --git a/macros/latex/contrib/fontscale/README.txt b/macros/latex/contrib/fontscale/README.txt
index 292cfada9b..d6c9224ee0 100644
--- a/macros/latex/contrib/fontscale/README.txt
+++ b/macros/latex/contrib/fontscale/README.txt
@@ -1,4 +1,4 @@
-Package: fontscale -- A user interface for setting document font sizes
+Package: fontscale -- A flexible interface for setting font sizes
Copyright: 2024 (c) Oliver Beery <beeryoliver@gmail.com>
CTAN: https://ctan.org/pkg/fontscale
Repository: https://github.com/beeryoliver/fontscale
diff --git a/macros/latex/contrib/fontscale/beery.cls b/macros/latex/contrib/fontscale/beery.cls
index 4777c06a8e..d65738d9e9 100644
--- a/macros/latex/contrib/fontscale/beery.cls
+++ b/macros/latex/contrib/fontscale/beery.cls
@@ -1,71 +1,84 @@
-% Note: This documentclass is designed ONLY for the document 'fontscale-manual'. Compiled using LuaLaTeX.
+% Note: This class is designed ONLY for 'fontscale.tex'. Compiled with LuaTeX.
-% The 2023-06-01 LaTeX kernel update added the 'shipout' hook.
-\NeedsTeXFormat{LaTeX2e}[2023-06-01]
+% LaTeX2e version 2023-11-01 added \IfExplAtLeastTF.
+\NeedsTeXFormat{LaTeX2e}[2023-11-01]
\ProvidesExplClass
{beery}
- {2024-04-21}
+ {2024-09-10}
{}
{}
-\RequirePackage { fix-cm }
\LoadClass { article }
+
+\box_new:N \l__beery_tmp_box
+
\RequirePackage { fontscale }
\fontscalesetup { musical }
-\RequirePackage [ list-final-separator = { ,~ and~ } ] { siunitx }
+\RequirePackage { siunitx }
+\sisetup { list-final-separator = { ,~ and~ } , mode = match }
\RequirePackage { mathtools }
\RequirePackage [ shortcuts , allowbreakbefore ] { extdash }
\RequirePackage { csquotes }
+\RequirePackage { lmodern }
% CUSTOM MACROS
+\tl_const:Nn \c_beery_alphabet_tl { abcdefghijklmnopqrstuvwxyz }
+\NewExpandableDocumentCommand \alphabet { } { \c_beery_alphabet_tl }
\NewDocumentCommand \Key { m o o }
{
+ \mode_leave_vertical:
\group_begin:
\ttfamily
- \bool_case:nF
+ \IfNoValueTF {#3}
{
- {
- \bool_lazy_and_p:nn
- { \tl_if_novalue_p:n {#2} }
- { \tl_if_novalue_p:n {#3} }
- }
- {#1}
- {
- \bool_lazy_and_p:nn
- { ! \tl_if_novalue_p:n {#2} }
- { \tl_if_novalue_p:n {#3} }
- }
- { #1~ =~ #2 }
- {
- \bool_lazy_and_p:nn
- { ! \tl_if_novalue_p:n {#2} }
- { ! \tl_if_novalue_p:n {#3} }
- }
- { #1~ =~ #2 \hspace* { \fill } \makebox { initial~ =~ #3 } }
+ \IfNoValueTF {#2}
+ {#1}
+ { #1 $\,=\,$ \allowbreak #2 }
}
- { \errmessage { invalid } }
+ { #1 $\,=\,$ #2 \hspace* { \fill } \hbox:n { initial $\,=\,$ #3 } }
\group_end:
}
+\NewDocumentCommand \Value { m } { \texttt {#1} }
\NewDocumentCommand \cmd { m } { \texttt { \token_to_str:N #1 } \@ }
\NewDocumentCommand \cs { m } { \texttt { \token_to_str:c {#1} } \@ }
\NewDocumentCommand \marg { m }
- { \allowbreak \texttt { \c_left_brace_str #1 \c_right_brace_str } }
-\NewDocumentCommand \oarg { m } { \allowbreak \texttt { [ #1 ] } }
-\NewDocumentCommand \meta { m } { \texttt { \textlangle #1 \textrangle } }
+ {
+ \allowbreak
+ \texttt { \c_left_brace_str }
+ $\langle$
+ { \normalfont \itshape #1 }
+ $\rangle$
+ \texttt { \c_right_brace_str }
+ }
+\NewDocumentCommand \oarg { m }
+ {
+ \allowbreak
+ \texttt { [ }
+ $\langle$
+ { \normalfont \itshape #1 }
+ $\rangle$
+ \texttt { ] }
+ }
+\NewDocumentCommand \sarg { } { $\langle$ \texttt {*} $\rangle$ }
+\NewDocumentCommand \meta { m }
+ {
+ $\langle$
+ { \normalfont \itshape #1 }
+ $\rangle$
+ }
\NewDocumentCommand \cls { m } { \textsf {#1} }
\NewDocumentCommand \env { m } { \texttt {#1} }
\NewDocumentCommand \pkg { m } { \textsf {#1} }
-\NewDocumentCommand \filex { m } { \texttt {#1} \@ }
\NewDocumentCommand \latin { m } { \textit {#1} }
% PAGE STYLE
-\hbox_set:Nn \l_tmpa_box { abcdefghijklmnopqrstuvwxyz }
-\dim_const:Nn \c_beery_alphabet_dim { \box_wd:N \l_tmpa_box }
+\hbox_set:Nn \l__beery_tmp_box { \c_beery_alphabet_tl }
+\dim_const:Nn \c_beery_alphabet_dim { \box_wd:N \l__beery_tmp_box }
+\dim_log:N \c_beery_alphabet_dim
-\dim_const:Nn \c_beery_big_dim
- { \fp_to_dim:n { \l_fontscale_normalsize_size_dim * 10 / 7 } }
+\dim_const:Nn \c_beery_big_dim { \l_fontscale_normalsize_baselineskip_skip }
\dim_const:Nn \c_beery_medium_dim { \c_beery_big_dim / 2 }
\dim_const:Nn \c_beery_small_dim { \c_beery_big_dim / 4 }
\skip_const:Nn \c_beery_big_skip
@@ -85,12 +98,15 @@
\skip_set:Nn \topskip { \l_fontscale_normalsize_size_dim }
\skip_set_eq:NN \splittopskip \topskip
-\RequirePackage
- [
- letterpaper
- , textwidth = \dim_eval:n { \fp_use:N \c_e_fp \c_beery_alphabet_dim }
+\RequirePackage { geometry }
+\geometry
+ {
+ a4paper
+ , textwidth =
+ \dim_eval:n { \fp_to_dim:n { \c_e_fp * \c_beery_alphabet_dim } }
, textheight =
- \dim_eval:n { \fp_eval:n { \c_e_fp * 1.6180 } \c_beery_alphabet_dim }
+ \dim_eval:n
+ { \fp_to_dim:n { 1.6180 * \c_e_fp * \c_beery_alphabet_dim } }
, heightrounded
, centering
, headheight = \l_fontscale_footnotesize_baselineskip_skip
@@ -98,8 +114,7 @@
, footskip =
\dim_eval:n
{ \c_beery_big_dim + \l_fontscale_footnotesize_baselineskip_skip }
- ]
- { geometry }
+ }
\RequirePackage { fancyhdr }
\pagestyle { fancy }
@@ -111,14 +126,22 @@
% PARAGRAPH STYLE
\nonfrenchspacing
-\linespread { \fp_eval:n { 25 / 21 } }
-\RequirePackage [ skip = \c_beery_medium_skip ] { parskip }
+\linespread { 1 }
+\skip_set_eq:NN \parskip \c_beery_medium_skip
+\dim_zero:N \parindent
\RequirePackage [ raggedrightboxes ] { ragged2e }
\skip_set:Nn \RaggedRightRightskip { 0pt plus 0.5 \linewidth }
+\dim_zero:N \RaggedRightParindent
+\dim_set_eq:NN \JustifyingParindent \RaggedRightParindent
\RaggedRight
+\int_set:Nn \pretolerance { -1 }
+\int_set:Nn \tolerance { 200 }
+\dim_zero:N \emergencystretch
\int_set:Nn \widowpenalty { 10000 }
\int_set_eq:NN \clubpenalty \widowpenalty
\int_set_eq:NN \displaywidowpenalty \widowpenalty
+\int_set:Nn \hyphenpenalty { 99 }
+\int_set_eq:NN \exhyphenpenalty \hyphenpenalty
% HEADINGS, TABLE OF CONTENTS
@@ -129,32 +152,34 @@
\titlespacing* \section % section
{ 0pt } % indent
{
- \fp_eval:n { 4 / 3 } \c_beery_medium_dim
- plus \fp_eval:n { 1 / 2 * 4 } \c_beery_medium_dim
- minus \fp_eval:n { 1 / 3 / 4 } \c_beery_medium_dim
+ - \parskip
+ + \c_beery_big_dim
+ plus \fp_eval:n { 1 / 2 * 4 } \c_beery_big_dim
+ minus \fp_eval:n { 1 / 3 / 4 } \c_beery_big_dim
} % before
- { \c_beery_medium_skip } % after
+ { - \parskip + \c_beery_medium_skip } % after
\titlespacing* \subsection
{ 0pt }
{
- \fp_eval:n { 4 / 3 } \c_beery_medium_dim
+ - \parskip
+ + \fp_eval:n { 4 / 3 } \c_beery_medium_dim
plus \fp_eval:n { 1 / 2 * 4 } \c_beery_medium_dim
minus \fp_eval:n { 1 / 3 / 4 } \c_beery_medium_dim
}
- { \c_beery_medium_skip }
+ { - \parskip + \c_beery_medium_skip }
\titleformat \section % section
[ block ] % shape
{ \raggedright \large \bfseries } % format
- { \thesection . } % label
- { 0.5em } % the horizontal separation between label and title body
+ { \thesection } % label
+ { 1em } % the horizontal separation between label and title body
{ } % before code
{ } % after code
\titleformat \subsection
[ block ]
{ \raggedright \normalsize \bfseries }
- { \thesubsection . }
- { 0.5em }
+ { \thesubsection }
+ { 1em }
{ }
{ }
@@ -181,7 +206,10 @@
{
\par
\IfBooleanTF #1
- { \int_compare:nNnT { \prevgraf } = { 1 } { \nobreak \@afterheading } }
+ {
+ \int_compare:nNnT { \prevgraf } = { 1 }
+ { \nobreak \@afterheading }
+ }
{ \nobreak \@afterheading }
}
\NewDocumentCommand \listheading { m }
@@ -189,7 +217,8 @@
\par
#1
\par
- \int_compare:nNnT { \prevgraf } = { 1 } { \nobreak \@afterheading }
+ \int_compare:nNnT { \prevgraf } = { 1 }
+ { \nobreak \@afterheading }
\vspace { \skip_eval:n { \c_beery_small_skip - \parskip } }
}
@@ -215,7 +244,10 @@
\coffin_new:N \l__beery_footnote_coffin
% 1.2 = baselineskip-size-ratio
\dim_const:Nn \c_beery_footnote_baselineheight_dim
- { \fp_eval:n { 1.2 * \f@linespread - 1 } \l_fontscale_footnotesize_size_dim }
+ {
+ \fp_to_dim:n
+ { ( 1.2 * \f@linespread - 1 ) * \l_fontscale_footnotesize_size_dim }
+ }
\RenewDocumentCommand \@makefntext { +m }
{
\vcoffin_set:Nnn \l__beery_footnote_coffin { \textwidth }
@@ -224,8 +256,10 @@
{
\dim_set:Nn \leftmargin
{
- \fp_eval:n { ( 1 - \l_fontscale_footnotesize_scale_fp ) / 2 }
- \textwidth
+ \fp_to_dim:n
+ {
+ ( 1 - \l_fontscale_footnotesize_scale_fp ) / 2 * \textwidth
+ }
}
\dim_set_eq:NN \rightmargin \leftmargin
\dim_set:Nn \labelsep { 0.5em }
@@ -242,4 +276,5 @@
\AddToHook { shipout / lastpage } { \label { LastPage } }
\RequirePackage { xurl }
-\RequirePackage [ bookmarksnumbered , hidelinks , linktoc = page ] { hyperref } \ No newline at end of file
+\RequirePackage { hyperref }
+\hypersetup { bookmarksnumbered , hidelinks , linktoc = page } \ No newline at end of file
diff --git a/macros/latex/contrib/fontscale/fontscale-manual-table-classic.tex b/macros/latex/contrib/fontscale/fontscale-manual-table-classic.tex
deleted file mode 100644
index 029d304d82..0000000000
--- a/macros/latex/contrib/fontscale/fontscale-manual-table-classic.tex
+++ /dev/null
@@ -1,39 +0,0 @@
-\ProvidesFile
- {fontscale-manual-table-classic.tex}
- [2024-04-15]
-
-\begin{table}
- \centering
- \caption
- {%
- The size of each font size command in \unit{pt} when using a classic typographic scale.%
- \label{table:classicscales}%
- }
- \bigskip
- \begin{tblr}
- {
- colspec=
- {
- l
- Q[si={table-format=3.2},c]
- Q[si={table-format=3.2},c]
- Q[si={table-format=3.2},c]
- }
- , cell{1}{2-Z}={guard}
- }
- \toprule
- Command & \Key{classic-10pt} & \Key{classic-11pt} & \Key{classic-12pt} \\
- \midrule
- \cs{tiny} & 6 & 7 & 8 \\
- \cs{scriptsize} & 7 & 8 & 9 \\
- \cs{footnotesize} & 8 & 9 & 10 \\
- \cs{small} & 9 & 10 & 11 \\
- \cs{normalsize} & 10 & 11 & 12 \\
- \cs{large} & 11 & 12 & 14 \\
- \cs{Large} & 12 & 14 & 16 \\
- \cs{LARGE} & 14 & 16 & 18 \\
- \cs{huge} & 16 & 18 & 21 \\
- \cs{Huge} & 18 & 21 & 24 \\
- \bottomrule
- \end{tblr}
-\end{table} \ No newline at end of file
diff --git a/macros/latex/contrib/fontscale/fontscale-manual-table-font-steps.tex b/macros/latex/contrib/fontscale/fontscale-manual-table-font-steps.tex
deleted file mode 100644
index 8c5cc8c141..0000000000
--- a/macros/latex/contrib/fontscale/fontscale-manual-table-font-steps.tex
+++ /dev/null
@@ -1,38 +0,0 @@
-\ProvidesFile
- {fontscale-manual-table-font-steps.tex}
- [2024-04-15]
-
-\begin{table}
- \centering
- \caption
- {%
- The step of each font size command.
- These are constants and cannot be changed.%
- \label{table:fontsteps}%
- }
- \bigskip
- \begin{tblr}
- {
- colspec=
- {
- l
- Q[si={table-format=3.2},c]
- }
- , cell{1}{2}={guard}
- }
- \toprule
- Command & Step \\
- \midrule
- \cs{tiny} & -4 \\
- \cs{scriptsize} & -3 \\
- \cs{footnotesize} & -2 \\
- \cs{small} & -1 \\
- \cs{normalsize} & 0 \\
- \cs{large} & 1 \\
- \cs{Large} & 2 \\
- \cs{LARGE} & 3 \\
- \cs{huge} & 4 \\
- \cs{Huge} & 5 \\
- \bottomrule
- \end{tblr}
-\end{table} \ No newline at end of file
diff --git a/macros/latex/contrib/fontscale/fontscale-manual-table-modular-musical.tex b/macros/latex/contrib/fontscale/fontscale-manual-table-modular-musical.tex
deleted file mode 100644
index 306578ec35..0000000000
--- a/macros/latex/contrib/fontscale/fontscale-manual-table-modular-musical.tex
+++ /dev/null
@@ -1,38 +0,0 @@
-\ProvidesFile
- {fontscale-manual-table-modular-musical.tex}
- [2024-04-15]
-
-\begin{table}
- \centering
- \caption
- {%
- The size of each font size command when using a modular or musical typographic scale with the initial settings.
- The font sizes are in \unit{pt} and rounded to two decimal places.%
- }
- \bigskip
- \begin{tblr}
- {
- colspec=
- {
- l
- Q[si={table-format=3.2},c]
- Q[si={table-format=3.2},c]
- }
- , cell{1}{2-3}={guard}
- }
- \toprule
- Command & \Key{modular} & \Key{musical} \\
- \midrule
- \cs{tiny} & 6.24 & 5.74 \\
- \cs{scriptsize} & 7.02 & 6.60 \\
- \cs{footnotesize} & 7.90 & 7.58 \\
- \cs{small} & 8.89 & 8.71 \\
- \cs{normalsize} & 10 & 10 \\
- \cs{large} & 11.25 & 11.49 \\
- \cs{Large} & 12.66 & 13.20 \\
- \cs{LARGE} & 14.24 & 15.16 \\
- \cs{huge} & 16.02 & 17.41 \\
- \cs{Huge} & 18.02 & 20 \\
- \bottomrule
- \end{tblr}
-\end{table} \ No newline at end of file
diff --git a/macros/latex/contrib/fontscale/fontscale-manual.pdf b/macros/latex/contrib/fontscale/fontscale-manual.pdf
deleted file mode 100644
index 2637ef9c1f..0000000000
--- a/macros/latex/contrib/fontscale/fontscale-manual.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/fontscale/fontscale-manual.tex b/macros/latex/contrib/fontscale/fontscale-manual.tex
deleted file mode 100644
index 9917636a04..0000000000
--- a/macros/latex/contrib/fontscale/fontscale-manual.tex
+++ /dev/null
@@ -1,390 +0,0 @@
-\documentclass{beery}
-
-\begin{document}
-
-
-\section*
- {%
- \SetFontStep*{1}%
- The \pkg{fontscale} package%
- }
-
-A user interface for setting document font sizes
-
-Oliver Beery
-
-Version 1.3.0\quad{}17 May 2024
-
-
-\section{Introduction}
-\label{sec:intro}
-
-\subsection{About}
-\label{subsec:about}
-
-\listheading{The \pkg{fontscale} package provides the following functionalities:}
-\begin{itemize}
- \item
- Set font sizes via a classic, modular, or musical typographic scale.
- \item
- Set arbitrary sizes and baselineskips for the standard font size commands \cs{tiny}, \cs{scriptsize}, \cs{footnotesize}, \cs{small}, \cs{normalsize}, \cs{large}, \cs{Large}, \cs{LARGE}, \cs{huge}, and \cs{Huge}.
- \item
- Set the font size settings mid\-/document or within a local group.
- \item
- Set the font size by setting the font step, scale, or size.
- \item
- Set the font size relative to the current font size.
- \item
- Use the current font step, scale, size, and baselineskip directly, for example, for printing or within calculations.
- \item
- Print sample text to test different font sizes.
- \item
- For advanced users, store the step, scale, size, and baselineskip of each font size command in \pkg{expl3} variables.
-\end{itemize}
-
-\subsection{Loading the package}
-\label{subsec:loading}
-
-This package requires the 10 October 2023 \pkg{l3kernel} update.
-You may need to ensure that your \LaTeX{} installation is up\-/to\-/date before using this package.
-
-This package lets the user set arbitrary font sizes.
-This works with most fonts produced today, but, for historical reasons, the default Computer Modern font is available only in a number of fixed sizes.
-If you get a warning that Computer Modern is not available in the requested size, you may need to add the code \cs{RequirePackage{fix-cm}} before \cs{documentclass} to make Computer Modern available at arbitrary font sizes.
-
-\cs{usepackage}\marg{fontscale}
-\nopagebreak\newline
-\cs{fontscalesetup}\marg{\meta{keyval list}}
-
-Load the \pkg{fontscale} package via the usual command in the document preamble.
-This package has no package options.
-Instead, the package keys are set up via the command \cs{fontscalesetup}\marg{\meta{keyval list}}.
-\meta{keyval list} must receive a comma\-/separated list of keys and their associated values.
-The package keys are documented in \S\ref{sec:choosing} and \S\ref{sec:overwriting}.
-
-Many \LaTeX{} document classes have a font size option (\Key{10pt}, \Key{11pt}, \Key{12pt}, etc.\@) which not only changes the set of document font sizes, but also modifies additional settings such as the page layout and vertical spacing which were specifically designed to work with those font sizes.
-For this reason, you may want to set the document class font size option close to the value of \cs{normalsize} set by this package.
-
-Internally, this package sets up each font size command from \cs{tiny} to \cs{Huge} using the kernel command \cs{@setfontsize}\---they have no additional functionality beyond that of \cs{@setfontsize}.
-Unlike the standard document classes, the font size commands set up by this package do not change the vertical spacing for displayed math and list structures.
-If the user would like to add this functionality or perhaps other features to the font size commands, they can do so via hooks, which are documented in the \LaTeX{} kernel.
-
-\subsection{Terminology}
-\label{subsec:terminology}
-
-When using the \pkg{fontscale} package, each font size, including the standard font size commands from \cs{tiny} to \cs{Huge}, has a step, scale, size, and baselineskip.
-The latter two parameters are the familiar first and second arguments to the low\-/level font command \cs{fontsize}\marg{\meta{dimen}}\marg{\meta{skip}}.
-The font scale is the relative font size; the ratio of the font size to \cs{normalsize}.
-The font step is the number of font size gradations from \cs{normalsize}, which has a step of \num{0}.
-Table~\ref{table:fontsteps} lists the font step of each font size command.
-
-\input{./fontscale-manual-table-font-steps.tex}
-
-This package defines many keys and commands that take as a value or argument a \meta{dim expr}, \meta{skip expr}, \meta{fp expr}, or \meta{int expr}.
-This syntax is short for a dimen, skip, floating point, or integer expression, respectively.
-See \pkg{usrguide} \S5 for more information.%
-\footnote{\url{https://ctan.org/pkg/usrguide}}
-
-
-\section{Choosing the typographic scale}
-\label{sec:choosing}
-
-\Key{typographic-scale}
- [classic-10pt, classic-11pt, classic-12pt, modular, musical]
- [classic-10pt]
-\newline
-\Key{modular/ratio}[\meta{fp expr}][1.125]
-\newline
-\Key{musical/ratio}[\meta{fp expr}][2]%
-\nopagebreak\newline
-\Key{musical/notes}[\meta{int expr}][5]
-
-The key \Key{typographic\-/scale} sets the font sizes using a classic, modular, or musical typographic scale.
-These are common methods of choosing a set of document font sizes.
-The choice of typographic scale initializes to \Key{classic\-/10pt}.
-
-The key \Key{typographic\-/scale} can also be set in a condensed format via the keys \Key{classic\-/10pt}, \Key{classic\-/11pt}, \Key{classic\-/12pt}, \Key{modular}, or \Key{musical}, which set the key \Key{typographic\-/scale} to the corresponding value.
-
-The classic typographic scale consists of the traditional font sizes
-\numlist{6;7;8;9;10;11;12;14;16;18;21;24;36;48;60;72}.%
-\footnote{See \S{}3.1 of \textit{The Elements of Typographic Style} by Robert Bringhurst.}
-They have been used since the sixteenth century and are the default font sizes on most computer software.
-The keys \Key{classic-10pt, classic-11pt, classic-12pt} set the size of each font size command to values based on their position in the classic typographic scale.
-The size of \cs{normalsize} is the named point size.
-The sizes of the other font size commands are the adjacent font sizes in the scale.
-Table~\ref{table:classicscales} lists the size of each font size command when using a classic typographic scale.
-
-\input{./fontscale-manual-table-classic.tex}
-
-The key \Key{modular} sets the font sizes from \cs{tiny} to \cs{Huge} using a modular typographic scale.
-In a modular scale, each font size is a fixed ratio from the adjacent font sizes.%
-\footnote{\url{https://alistapart.com/article/more-meaningful-typography/}}
-Here, the base font size is the size of \cs{normalsize}, which can be set via the key \Key{normalsize/size}[\meta{dim expr}], more documented in \S\ref{sec:overwriting}.
-If not set, \cs{normalsize} initializes to \qty{10}{pt}.
-The modular ratio can be set via the key \Key{modular\slash{}ratio}.
-The initial modular ratio is \num{1.125}.
-
-\input{./fontscale-manual-table-modular-musical.tex}
-
-The key \Key{musical} sets the font sizes according to their position in a musical typographic scale.
-The font size is calculated using the formula:%
-\footnote
- {%
- I have referenced this article by Spencer Mortensen:
- \newline
- \url{https://spencermortensen.com/articles/typographic-scale/}%
- }
-\[ f_i = f_0 \times r ^ { i / n } \]
-$f_0$ is the base font size, the size of \cs{normalsize}.
-$f_i$ is the font size with font step~$i$.
-$n$ is the number of notes in the musical scale\---the number of font size gradations or steps above \cs{normalsize}.
-$r$ is the ratio of the musical scale, the ratio of the highest to the lowest note $ f_n / f_0 $.
-(The modular typographic scale is actually a special case of the musical typographic scale where $n=1$.)
-
-The musical ratio~$r$ and the number of notes~$n$ can be set via the keys \Key{musical\slash{}ratio} and \Key{musical\slash{}notes}.
-The initial musical ratio\---\num{2}\---and the initial number of notes\---\num{5}\---are the same as that of the classic typographic scale.%
-\footnote{Ibid.}
-Conveniently, \cs{Huge} is \num{5} steps above \cs{normalsize}.
-The font size of \cs{normalsize}~$f_0$ can be set using the key \Key{normalsize/size}[\meta{dim expr}], more documented in \S\ref{sec:overwriting}.
-When using a musical typographic scale, \cs{normalsize} initializes to \qty{10}{pt}.%
-\footnote {I have set the initial value to \qty{10}{pt} instead of the \qty{12}{pt} recommended by the Spencer Mortensen article because this matches the default settings of the standard \LaTeXe{} document classes.}
-
-\Key{baselineskip-size-ratio}[\meta{fp expr}][1.2]
-\KeepNextPar*
-
-The key \Key{baselineskip\-/size\-/ratio} sets the ratio of the font baselineskip to the font size.
-By default, the font baselineskip of each font size command equals its font size times \meta{fp expr}.
-Users should not set this key unless they really know what they are doing.
-When using increased line spacing, users should prefer the low\-/level font command \cs{linespread} or the \pkg{setspace} package.
-
-
-\section{Overwriting the typographic scale}
-\label{sec:overwriting}
-
-In some situations, users may need to explicitly set the scale, size, or baselineskip of a font size command, overwriting the value set by the keys in \S\ref{sec:choosing}.
-Note that the font steps and the scale of \cs{normalsize} are constants and cannot be changed.
-
-\Key{\meta{font size command}/scale}[\meta{fp expr}]
-\KeepNextPar*
-
-The keys \Key{\meta{font size command}\slash{}scale} set the scale of \meta{font size command} to \meta{fp expr}, ignoring the value set by the key \Key{typographic\-/scale}.
-The key \Key{normalsize\slash{}scale} is not defined.
-
-\Key{\meta{font size command}/size}[\meta{dim expr}]
-\KeepNextPar*
-
-The keys \Key{\meta{font size command}\slash{}size} set the size of \meta{font size command} to \meta{dim expr}, ignoring the values set by the keys \Key{typographic\-/scale} and \Key{\meta{font size command}\slash{}scale}.
-\meta{dim expr} supplies a default unit of \unit{pt}.
-
-The package will issue a warning if the user sets the keys \Key{\meta{font size command}\slash{}size} and \Key{\meta{font size command}\slash{}scale} for the same \meta{font size command} since the latter key will be ignored.
-
-\Key{\meta{font size command}/baselineskip}[\meta{skip expr}]
-\KeepNextPar*
-
-The keys \Key{\meta{font size command}\slash{}baselineskip} set the font baselineskip of \meta{font size command} to \meta{skip expr} instead of calculating it from the size of \meta{font size command} and \Key{baselineskip\-/size\-/ratio}.
-\meta{skip expr} supplies a default unit of \unit{pt}.
-
-\Key{\meta{font size command}}[\meta{dim expr}]
-\nopagebreak\newline
-\Key{\meta{font size command}}[\meta{dim expr}/\meta{skip expr}]
-
-The keys \Key{\meta{font size command}} set the keys \Key{\meta{font size command}\slash{}size} or \Key{\meta{font size command}\slash{}baselineskip} in a condensed format.
-The latter format resembles traditional typographic notation where the size and leading of a text can be expressed as, for example, $10/12$ or $11/13$.
-The number before/after the slash is the size/leading in \unit{pts}.
-
-\Key{ignore-order}[true, false][false]
-\KeepNextPar*
-
-The user should take care to ensure that the font sizes and font baselineskips remain in the correct order when directly setting the scales, sizes, or baselineskips of the different font size commands.
-The magnitudes of the font sizes and font baselineskips should be ordered from \cs{tiny} to \cs{normalsize} to \cs{Huge}.
-This is important for typographic and syntactic consistency.
-This package will issue a warning if they are not in the correct order.
-The user can disable this warning via the key \Key{ignore\-/order}[true] or just \Key{ignore\-/order}.
-
-
-\section{User commands}
-\label{sec:usercommands}
-
-\subsection{Expandable font parameters}
-\label{subsec:fontparameters}
-
-\cs{CurrentFontStep}
-\nopagebreak\newline
-\cs{CurrentFontScale}
-\newline
-\cs{CurrentFontSize}
-\nopagebreak\newline
-\cs{CurrentFontBaselineskip}
-
-These are fully expandable commands that expand to the current font step, scale, size, or baselineskip.
-They can be used for printing or within calculations.
-Caution: \cs{CurrentFontStep} will expand to nothing if the current font step is undefined.
-
-Internally, \cs{CurrentFontStep}, \cs{CurrentFontScale}, and \cs{CurrentFontSize} use the kernel command \cs{f@size}.
-\cs{CurrentFontSize} expands to \texttt{f@size pt}.
-\cs{CurrentFontBaselineskip} expands to the kernel command \cs{f@baselineskip}.
-Note that the low\-/level font command \cs{fontsize}\marg{\meta{dimen}}\marg{\meta{skip}} sets \cs{f@size} to the new font size before expanding its second argument.
-This means that \cs{CurrentFontStep}, \cs{CurrentFontScale}, and \cs{CurrentFontSize} may need to be first expanded if used in \meta{skip}.
-This package provides the command \cs{SetFontSizeBaselineskip} as an alternative to \cs{fontsize} + \cs{selectfont} that avoids this issue (\S\ref{subsec:fontsize}).
-
-\subsection{More font sizing commands}
-\label{subsec:fontsize}
-
-The \pkg{fontscale} package provides the commands \cs{SetFontStep}, \cs{SetFontScale}, \cs{SetFontSize}, \cs{ScaleFont}, and \cs{SetFontSizeBaselineskip} which set the font size in different ways.
-The first three commands have a starred version which sets the font size relative to the current font size.
-Internally, these commands all use the low\-/level font commands \cs{fontsize} and \cs{selectfont}.
-These commands should be used only in special cases.
-Generally, users should prefer the font size commands from \cs{tiny} to \cs{Huge} for typographic and syntactic consistency, although \cs{SetFontStep*}\marg{\meta{integer}} can use a font size command directly.
-
-\cs{SetFontStep}\marg{\meta{fp expr}}
-\nopagebreak\newline
-\cs{SetFontStep*}\marg{\meta{fp expr}}
-
-\cs{SetFontStep} sets the font size by setting the font step to \meta{fp expr}.
-The starred version \cs{SetFontStep*} adds \meta{fp expr} to the current font step.
-If the choice of typographic scale is not modular or musical, then the only valid values for \meta{fp expr} are the integers from \num{-4} to \num{5}, corresponding to the font size commands from \cs{tiny} to \cs{Huge}.
-\cs{SetFontStep} will issue an error if the calculated font step is invalid.
-The starred version \cs{SetFontStep*} will also issue an error if the current font step is invalid.
-\cs{SetFontStep} sets the font baselineskip to the calculated font size \texttimes{} \Key{baselineskip\-/size\-/ratio}.
-If the calculated font step matches the step of any font size command, then that font size command will be used directly.
-
-\listheading{Examples:}
-\begin{itemize}
- \item
- For example, \cs{SetFontStep}\marg{-2} and \cs{SetFontStep}\marg{2} use \cs{footnotesize} and \cs{Large}.
- Note that it is typically better to use the equivalent font size command in place of \cs{SetFontStep}\marg{\meta{integer}}.
- \item
- If the current font size is \cs{normalsize}, \cs{SetFontStep*}\marg{1} and \cs{SetFontStep*}\marg{-1} use \cs{large} and \cs{small}.
- This is useful for moving up or down a note on the typographic scale.
- \item
- If the choice of typographic scale is modular or musical, \cs{SetFontStep*}\marg{-0.5} sets the font size and font baselineskip to values between that of \cs{normalsize} and \cs{small}.
- Otherwise, it produces an error.
-\end{itemize}
-
-\cs{SetFontScale}\marg{\meta{fp expr}}
-\nopagebreak\newline
-\cs{SetFontScale*}\marg{\meta{fp expr}}
-
-\cs{SetFontScale} sets the font size by setting the font scale to \meta{fp expr}.
-The font baselineskip is set to the calculated font size \texttimes{} \Key{baselineskip\-/size\-/ratio}.
-The starred version \cs{SetFontScale*} adds \meta{fp expr} to the current font scale.
-For example, \cs{SetFontScale}\marg{1.25} makes the font size 25\% larger than \cs{normalsize}.
-If the current font size is \cs{normalsize}, \cs{SetFontScale*}\marg{0.2} is equivalent to \cs{SetFontScale}\marg{1.2}.
-
-\cs{SetFontSize}\marg{\meta{dim expr}}
-\nopagebreak\newline
-\cs{SetFontSize*}\marg{\meta{dim expr}}
-
-\cs{SetFontSize} sets the font size to \meta{dim expr}.
-\meta{dim expr} supplies a default unit of \unit{pt}.
-The font baselineskip is set to the calculated font size \texttimes{} \Key{baselineskip\-/size\-/ratio}.
-The starred version \cs{SetFontSize*} adds \meta{dim expr} to the current font size.
-For example, \cs{SetFontSize*}\marg{1} and \cs{SetFontSize*}\marg{-1pt} increase and decrease the current font size by a \unit{pt}.
-
-\cs{ScaleFont}\marg{\meta{fp expr}}
-\KeepNextPar*
-
-Scales the current font size and the current font baselineskip by a factor of \meta{fp expr}.
-For example, if the current font size and font baselineskip are \qty{10}{pt} and \qty{12}{pt}, using \cs{ScaleFont}\marg{0.8} will reduce them proportionally to \qty{8}{pt} and \qty{9.6}{pt}.
-
-\cs{SetFontSizeBaselineskip}\marg{\meta{dim expr}}\marg{\meta{skip expr}}
-\KeepNextPar*
-
-Sets the font size to \meta{dim expr} and the font baselineskip to \meta{skip expr}.
-Both arguments supply a default unit of \unit{pt}.
-\cs{SetFontSizeBaselineskip} can be used as an alternative to \cs{fontsize} + \cs{selectfont} as it avoids the issue with \cs{f@size} discussed in \S\ref{subsec:fontparameters}.
-
-\subsection{Testing and debugging}
-\label{subsec:debug}
-
-The commands documented here are intended primarily for testing and debugging.
-I have used them often when developing this package so I think users will find them helpful.
-
-\cs{PrintFontParameters}
-\nopagebreak\newline
-\cs{PrintAllFontParameters}
-
-\cs{PrintFontParameters} prints the current font step, scale, size, and baselineskip in this order in a comma\-/separated list of key = value pairs.
-If the current font step is undefined (as explained for \cs{SetFontStep} in \S\ref{subsec:fontsize}), it will be left blank.
-\cs{PrintAllFontParameters} prints the step, scale, size, and baselineskip of each font size command.
-
-\cs{PrintSampleText}\oarg{\meta{text}}
-\nopagebreak\newline
-\cs{PrintSampleText*}\oarg{\meta{text}}
-
-\cs{PrintSampleText} prints \meta{text} in each font size ordered from \cs{tiny} to \cs{Huge} each followed by a paragraph break.
-The starred version \cs{PrintSampleText*} reverses the sizing order.
-The \meta{text} can be changed via the optional argument, but cannot contain \cs{par} tokens.
-The default \meta{text} is \enquote{The \texttt{fontscale} package: A user interface for setting document font sizes}.
-One useful way of printing example text is by using
-\cs{PrintSampleText}\oarg{\cs{PrintFontSizeCommand}:\textvisiblespace{}\cs{PrintFontParameters}}.
-
-\cs{PrintFontSizeCommand}
-\KeepNextPar*
-
-\cs{PrintFontSizeCommand} tests whether the current font size and the current font baselineskip match the font size and font baselineskip of any font size command from \cs{tiny} to \cs{Huge}.
-If so, it prints the name of that font size command, including the backslash character.
-If not, it instead prints \enquote{UNDEFINED\@}.
-\vfill\pagebreak%manual
-
-\subsection
- {%
- \texorpdfstring
- {More on \cs{fontscalesetup}}
- {More on \textbackslash{}fontscalesetup}%
- }
-\label{subsec:fontscalesetup}
-
-\cs{fontscalesetup}\marg{\meta{keyval list}}
-\KeepNextPar*
-
-Sets and processes the \pkg{fontscale} package keys and then uses \cs{normalsize}.
-\cs{fontscalesetup} can be applied mid\-/document or locally within the current \TeX{} group.
-
-\Key{reset}[initial, preamble]
-\KeepNextPar*
-
-The key \Key{reset} is also available.
-Its value must be either \texttt{initial} or \texttt{preamble}.
-The key \Key{reset}[initial] or just \Key{reset} sets all the keys to their initial values.
-The key \Key{reset}[preamble] sets all the keys to their values at the end of the preamble (or does nothing if used before the end of the preamble).
-
-
-\section{Programming}
-\label{sec:programming}
-
-This section is relevant to \LaTeX3 programmers.
-
-The document commands \cs{SetFontStep}, \cs{SetFontScale}, \cs{SetFontSize}, \cs{ScaleFont}, and \cs{SetFontSizeBaselineskip} are set up to work with \cs{text_purify:n}.
-\cs{text_purify:n} will correctly remove these commands and their arguments.
-This includes the starred versions \cs{SetFontStep*}, \cs{SetFontScale*}, and \cs{SetFontSize*}.
-
-This package does not provide any public \pkg{expl3} functions.
-
-This package provides some public \pkg{expl3} variables.
-The package stores in public variables the step, scale, size, and baselineskip of each font size command.
-These variables should not be modified directly.
-Instead, they should be modified only indirectly via the command \cs{fontscalesetup}.
-
-Each takes the form:
-
-\begingroup
- \ttfamily
- \textbackslash{}c\_fontscale\_\meta{font size command}\_step\_fp
- \nopagebreak\newline
- \textbackslash{}l\_fontscale\_\meta{font size command}\_scale\_fp
- \newline
- \textbackslash{}l\_fontscale\_\meta{font size command}\_size\_dim
- \nopagebreak\newline
- \textbackslash{}l\_fontscale\_\meta{font size command}\_baselineskip\_skip
-\endgroup
-
-Exception:
-\cs{l_fontscale_normalsize_scale_fp} is not defined.
-The scale of \cs{normalsize} is instead stored as the constant \cs{c_fontscale_normalsize_scale_fp}, which always equals \num{1}.
-
-The step, scale, size, and baselineskip of each font size command are also stored in property lists, one for each font size command:
-
-\texttt{\textbackslash{}l\_fontscale\_\meta{font size command}\_prop}
-
-\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/fontscale/fontscale-table-classic.tex b/macros/latex/contrib/fontscale/fontscale-table-classic.tex
new file mode 100644
index 0000000000..903e7e3be7
--- /dev/null
+++ b/macros/latex/contrib/fontscale/fontscale-table-classic.tex
@@ -0,0 +1,41 @@
+\ProvidesFile
+ {fontscale-table-classic.tex}
+ [2024-09-10]
+
+\begin{table}
+ \centering
+ \caption
+ {%
+ The font size of each font size command from \cs{tiny} to \cs{Huge} in units of \unit{pt} when using a classic typographic scale.%
+ \label{table:classic}%
+ }
+ \bigskip
+ \begin{tblr}
+ {
+ colspec=
+ {
+ l
+ Q[si={table-format=3.2},c]
+ Q[si={table-format=3.2},c]
+ Q[si={table-format=3.2},c]
+ }
+ , cell{1}{2-Z}={guard}
+ , cell{2-Z}{1}={cmd=\cs}
+ , cell{1}{2-Z}={cmd=\Key}
+ }
+ \toprule
+ font size command & classic-10pt & classic-11pt & classic-12pt \\
+ \midrule
+ tiny & 6 & 7 & 8 \\
+ scriptsize & 7 & 8 & 9 \\
+ footnotesize & 8 & 9 & 10 \\
+ small & 9 & 10 & 11 \\
+ normalsize & 10 & 11 & 12 \\
+ large & 11 & 12 & 14 \\
+ Large & 12 & 14 & 16 \\
+ LARGE & 14 & 16 & 18 \\
+ huge & 16 & 18 & 21 \\
+ Huge & 18 & 21 & 24 \\
+ \bottomrule
+ \end{tblr}
+\end{table} \ No newline at end of file
diff --git a/macros/latex/contrib/fontscale/fontscale-table-font-steps.tex b/macros/latex/contrib/fontscale/fontscale-table-font-steps.tex
new file mode 100644
index 0000000000..50d5440c92
--- /dev/null
+++ b/macros/latex/contrib/fontscale/fontscale-table-font-steps.tex
@@ -0,0 +1,39 @@
+\ProvidesFile
+ {fontscale-table-font-steps.tex}
+ [2024-09-10]
+
+\begin{table}
+ \centering
+ \caption
+ {%
+ The font step of each font size command from \cs{tiny} to \cs{Huge}.
+ These are constants and cannot be changed.%
+ \label{table:fontsteps}%
+ }
+ \bigskip
+ \begin{tblr}
+ {
+ colspec=
+ {
+ l
+ Q[si={table-format=3.2},c]
+ }
+ , cell{1}{2}={guard}
+ , cell{2-Z}{1}={cmd=\cs}
+ }
+ \toprule
+ font size command & font step \\
+ \midrule
+ tiny & -4 \\
+ scriptsize & -3 \\
+ footnotesize & -2 \\
+ small & -1 \\
+ normalsize & 0 \\
+ large & 1 \\
+ Large & 2 \\
+ LARGE & 3 \\
+ huge & 4 \\
+ Huge & 5 \\
+ \bottomrule
+ \end{tblr}
+\end{table} \ No newline at end of file
diff --git a/macros/latex/contrib/fontscale/fontscale-table-musical.tex b/macros/latex/contrib/fontscale/fontscale-table-musical.tex
new file mode 100644
index 0000000000..c2f88c13fa
--- /dev/null
+++ b/macros/latex/contrib/fontscale/fontscale-table-musical.tex
@@ -0,0 +1,39 @@
+\ProvidesFile
+ {fontscale-table-musical.tex}
+ [2024-09-10]
+
+\begin{table}
+ \centering
+ \caption
+ {%
+ The font size of each font size command from \cs{tiny} to \cs{Huge} when using a musical typographic scale with the initial values.
+ The font sizes are in units of \unit{pt} and rounded to two decimal places.%
+ \label{table:musical}%
+ }
+ \bigskip
+ \begin{tblr}
+ {
+ colspec=
+ {
+ l
+ Q[si={table-format=3.2},c]
+ }
+ , cell{1}{2}={guard}
+ , cell{2-Z}{1}={cmd=\cs}
+ }
+ \toprule
+ font size command & \Key{musical} \\
+ \midrule
+ tiny & 5.74 \\
+ scriptsize & 6.60 \\
+ footnotesize & 7.58 \\
+ small & 8.71 \\
+ normalsize & 10 \\
+ large & 11.49 \\
+ Large & 13.20 \\
+ LARGE & 15.16 \\
+ huge & 17.41 \\
+ Huge & 20 \\
+ \bottomrule
+ \end{tblr}
+\end{table} \ No newline at end of file
diff --git a/macros/latex/contrib/fontscale/fontscale.pdf b/macros/latex/contrib/fontscale/fontscale.pdf
new file mode 100644
index 0000000000..f859cb6a56
--- /dev/null
+++ b/macros/latex/contrib/fontscale/fontscale.pdf
Binary files differ
diff --git a/macros/latex/contrib/fontscale/fontscale.sty b/macros/latex/contrib/fontscale/fontscale.sty
index d032e49860..01c9c8e8e4 100644
--- a/macros/latex/contrib/fontscale/fontscale.sty
+++ b/macros/latex/contrib/fontscale/fontscale.sty
@@ -1,33 +1,32 @@
-% Package : fontscale -- A user interface for setting document font sizes
+% Package : fontscale -- A flexible interface for setting font sizes
% Copyright : 2024 (c) Oliver Beery <beeryoliver@gmail.com>
% CTAN : https://ctan.org/pkg/fontscale
% Repository: https://github.com/beeryoliver/fontscale
% License : The LaTeX Project Public License 1.3c
-% The 2022-06-01 LaTeX kernel update added \ProcessKeyOptions.
-\NeedsTeXFormat{LaTeX2e}[2022-06-01]
+% LaTeX2e version 2023-11-01 added \IfExplAtLeastTF.
+\NeedsTeXFormat{LaTeX2e}[2023-11-01]
\ProvidesExplPackage
{fontscale}
- {2024-05-17}
- {1.3.0}
- {A user interface for setting document font sizes}
+ {2024-09-10}
+ {2.4.0}
+ {A flexible interface for setting font sizes}
-% The 2023-10-10 l3kernel update added many 'e'-variants.
-\IfExplAtLeastTF { 2023-10-10 }
- { }
+% l3kernel version 2023-10-10 added many 'e'-variants.
+\IfExplAtLeastTF { 2023-10-10 } { }
{
\msg_new:nnn { fontscale } { expl3-out-of-date }
{
- The~ package~ could~ not~ load.~
- The~ fontscale~ package~ requires~
- L3~ programming~ layer~ version~ 2023-10-10~ or~ later.
+ The~ fontscale~ package~ could~ not~ load.~
+ This~ package~ requires~
+ L3~ programming~ layer~ version~ 2023-10-10~ or~ newer.
}
\msg_critical:nn { fontscale } { expl3-out-of-date }
}
% This package does not require any other packages!
-% DECLARE FONT PARAMETER VARIABLES
+% DECLARE FONT SIZE PARAMETER VARIABLES
\fp_const:Nn \c_fontscale_tiny_step_fp { -4 }
\fp_const:Nn \c_fontscale_scriptsize_step_fp { -3 }
@@ -74,31 +73,7 @@
\skip_new:N \l_fontscale_huge_baselineskip_skip
\skip_new:N \l_fontscale_Huge_baselineskip_skip
-\prop_new:N \l_fontscale_tiny_prop
-\prop_new:N \l_fontscale_scriptsize_prop
-\prop_new:N \l_fontscale_footnotesize_prop
-\prop_new:N \l_fontscale_small_prop
-\prop_new:N \l_fontscale_normalsize_prop
-\prop_new:N \l_fontscale_large_prop
-\prop_new:N \l_fontscale_Large_prop
-\prop_new:N \l_fontscale_LARGE_prop
-\prop_new:N \l_fontscale_huge_prop
-\prop_new:N \l_fontscale_Huge_prop
-
-\prop_put:Nnn \l_fontscale_tiny_prop { step } { -4 }
-\prop_put:Nnn \l_fontscale_scriptsize_prop { step } { -3 }
-\prop_put:Nnn \l_fontscale_footnotesize_prop { step } { -2 }
-\prop_put:Nnn \l_fontscale_small_prop { step } { -1 }
-\prop_put:Nnn \l_fontscale_normalsize_prop { step } { 0 }
-\prop_put:Nnn \l_fontscale_large_prop { step } { 1 }
-\prop_put:Nnn \l_fontscale_Large_prop { step } { 2 }
-\prop_put:Nnn \l_fontscale_LARGE_prop { step } { 3 }
-\prop_put:Nnn \l_fontscale_huge_prop { step } { 4 }
-\prop_put:Nnn \l_fontscale_Huge_prop { step } { 5 }
-
-\prop_put:Nnn \l_fontscale_normalsize_prop { scale } { 1 }
-
-% INITIALIZE FONT PARAMETER VARIABLES
+% INITIALIZE FONT SIZE PARAMETER VARIABLES
\fp_set:Nn \l_fontscale_tiny_scale_fp { 0.6 }
\fp_set:Nn \l_fontscale_scriptsize_scale_fp { 0.7 }
@@ -132,177 +107,180 @@
\skip_set:Nn \l_fontscale_huge_baselineskip_skip { 19.2pt }
\skip_set:Nn \l_fontscale_Huge_baselineskip_skip { 21.6pt }
-\prop_put:Nnn \l_fontscale_tiny_prop { scale } { 0.6 }
-\prop_put:Nnn \l_fontscale_scriptsize_prop { scale } { 0.7 }
-\prop_put:Nnn \l_fontscale_footnotesize_prop { scale } { 0.8 }
-\prop_put:Nnn \l_fontscale_small_prop { scale } { 0.9 }
-\prop_put:Nnn \l_fontscale_large_prop { scale } { 1.1 }
-\prop_put:Nnn \l_fontscale_Large_prop { scale } { 1.2 }
-\prop_put:Nnn \l_fontscale_LARGE_prop { scale } { 1.4 }
-\prop_put:Nnn \l_fontscale_huge_prop { scale } { 1.6 }
-\prop_put:Nnn \l_fontscale_Huge_prop { scale } { 1.8 }
-
-\prop_put:Nnn \l_fontscale_tiny_prop { size } { 6pt }
-\prop_put:Nnn \l_fontscale_scriptsize_prop { size } { 7pt }
-\prop_put:Nnn \l_fontscale_footnotesize_prop { size } { 8pt }
-\prop_put:Nnn \l_fontscale_small_prop { size } { 9pt }
-\prop_put:Nnn \l_fontscale_normalsize_prop { size } { 10pt }
-\prop_put:Nnn \l_fontscale_large_prop { size } { 11pt }
-\prop_put:Nnn \l_fontscale_Large_prop { size } { 12pt }
-\prop_put:Nnn \l_fontscale_LARGE_prop { size } { 14pt }
-\prop_put:Nnn \l_fontscale_huge_prop { size } { 16pt }
-\prop_put:Nnn \l_fontscale_Huge_prop { size } { 18pt }
-
-\prop_put:Nnn \l_fontscale_tiny_prop { baselineskip } { 7.2pt }
-\prop_put:Nnn \l_fontscale_scriptsize_prop { baselineskip } { 8.4pt }
-\prop_put:Nnn \l_fontscale_footnotesize_prop { baselineskip } { 9.6pt }
-\prop_put:Nnn \l_fontscale_small_prop { baselineskip } { 10.8pt }
-\prop_put:Nnn \l_fontscale_normalsize_prop { baselineskip } { 12 pt }
-\prop_put:Nnn \l_fontscale_large_prop { baselineskip } { 13.2pt }
-\prop_put:Nnn \l_fontscale_Large_prop { baselineskip } { 14.4pt }
-\prop_put:Nnn \l_fontscale_LARGE_prop { baselineskip } { 16.8pt }
-\prop_put:Nnn \l_fontscale_huge_prop { baselineskip } { 19.2pt }
-\prop_put:Nnn \l_fontscale_Huge_prop { baselineskip } { 21.6pt }
-
% SOME VARIABLES
-% Used for mapping.
-\tl_const:Nn \c__fontscale_names_tl
- {
- {tiny} {scriptsize} {footnotesize} {small} {normalsize}
- {large} {Large} {LARGE} {huge} {Huge}
- }
-\tl_const:Nn \c__fontscale_names_other_tl
- {
- {tiny} {scriptsize} {footnotesize} {small}
- {large} {Large} {LARGE} {huge} {Huge}
- }
-
% Used to speed up floating point calculations.
\fp_new:N \l__fontscale_normalsize_size_fp
\fp_set:Nn \l__fontscale_normalsize_size_fp { 10 }
+\fp_new:N \l__fontscale_musical_base_fp
\fp_new:N \l__fontscale_musical_notes_fp
-% Temporary variables
-\tl_new:N \l__fontscale_step_tl
-\tl_new:N \l__fontscale_scale_tl
-\dim_new:N \l__fontscale_size_dim
-
-% SOME HELPER FUNCTIONS
-
-% Sets a dimen/skip variable from a dimen/skip expression, supplying a default
-% unit of pt.
-\cs_new_protected:Npn \__fontscale_dim_set_with_default_pt:Nn #1#2
- { \@defaultunits #1 = \dimexpr #2 pt \relax \relax \@nnil }
-\cs_generate_variant:Nn \__fontscale_dim_set_with_default_pt:Nn { c }
-\cs_new_protected:Npn \__fontscale_skip_set_with_default_pt:Nn #1#2
- { \@defaultunits #1 = \glueexpr #2 pt \relax \@nnil }
-\cs_generate_variant:Nn \__fontscale_skip_set_with_default_pt:Nn { c }
-% Used to define \tiny to \Huge. Need \dim_use:N for compatibility with the
-% microtype package. Otherwise the following would do:
-% \cs_new_protected:Npn \__fontscale_fontsize:NNN { \@setfontsize }
-\cs_new_protected:Npn \__fontscale_fontsize:NNN #1#2
- { \@setfontsize #1 { \dim_use:N #2 } }
-% Similar to \fontsize + \selectfont, except that it takes dimen and skip
-% expressions as arguments and avoids the issue where \f@size is set to the new
-% font size before the second argument is expanded.
+% Scratch variables
+\tl_new:N \l__fontscale_tmp_tl
+\str_new:N \l__fontscale_tmp_str
+\dim_new:N \l__fontscale_tmp_dim
+\skip_new:N \l__fontscale_tmp_skip
+\fp_new:N \l__fontscale_tmp_fp
+
+% SOME FUNCTIONS
+
+% Variants of l3kernel functions
+\cs_generate_variant:Nn \msg_error:nnnn { nnv , nne }
+% Sets a dimen/skip variable from a dimen/skip expression, appending a default
+% unit of pt. This also removes extra tokens.
+\cs_new_protected:Npn \__fontscale_dim_set_default_pt:Nn #1#2
+ {
+ \afterassignment \use_none_delimit_by_q_stop:w
+ #1 = \dimexpr #2 pt \relax \relax
+ \q_stop
+ }
+\cs_generate_variant:Nn \__fontscale_dim_set_default_pt:Nn { c }
+\cs_new_protected:Npn \__fontscale_skip_set_default_pt:Nn #1#2
+ {
+ \afterassignment \use_none_delimit_by_q_stop:w
+ #1 = \glueexpr #2 pt \relax
+ \q_stop
+ }
+\cs_generate_variant:Nn \__fontscale_skip_set_default_pt:Nn { c }
+% Used to define \tiny to \Huge. Sets \@currsize only for compatibility. Need
+% \dim_use:N only for compatibility with the microtype package.
+\cs_new_protected:Npn \__fontscale_fontsize:NNN #1#2#3
+ {
+ \cs_set_eq:NN \@currsize #1
+ \fontsize { \dim_use:N #2 } #3 \selectfont
+ }
+% Similar to \fontsize + \selectfont, except that it:
+% (1) Takes dimen and skip expressions as arguments.
+% (2) Avoids the issue where \f@size is set to the new font size before the
+% second argument is expanded.
+% (3) Issues a user-friendly error message if the font size is not a positive
+% length.
+\dim_new:N \l__fontscale_fontsize_dim
\skip_new:N \l__fontscale_fontsize_skip
\cs_new_protected:Npn \__fontscale_fontsize:nn #1#2
{
- \__fontscale_skip_set_with_default_pt:Nn \l__fontscale_fontsize_skip {#2}
- \fontsize { = \dimexpr #1 pt \relax \relax } \l__fontscale_fontsize_skip
- \selectfont
+ \__fontscale_dim_set_default_pt:Nn \l__fontscale_fontsize_dim {#1}
+ \__fontscale_skip_set_default_pt:Nn \l__fontscale_fontsize_skip {#2}
+ \dim_compare:nNnTF \l__fontscale_fontsize_dim > \c_zero_dim
+ {
+ \fontsize \l__fontscale_fontsize_dim \l__fontscale_fontsize_skip
+ \selectfont
+ }
+ {
+ \msg_error:nnV { fontscale } { font-size-out-of-bounds }
+ \l__fontscale_fontsize_dim
+ }
}
% Similar to the above function, except that it sets the font baselineskip
% equal to the new font size times the baselineskip-size-ratio.
\cs_new_protected:Npn \__fontscale_fontsize:n #1
{
- \fontsize { = \dimexpr #1 pt \relax \relax }
- { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
- \selectfont
+ \__fontscale_dim_set_default_pt:Nn \l__fontscale_fontsize_dim {#1}
+ \dim_compare:nNnTF \l__fontscale_fontsize_dim > \c_zero_dim
+ {
+ \fontsize \l__fontscale_fontsize_dim
+ {
+ \fp_to_dim:n
+ {
+ \l__fontscale_fontsize_dim
+ * \l__fontscale_baselineskip_size_ratio_fp
+ }
+ }
+ \selectfont
+ }
+ {
+ \msg_error:nnV { fontscale } { font-size-out-of-bounds }
+ \l__fontscale_fontsize_dim
+ }
}
% MESSAGES
-\msg_new:nnn { fontscale } { modular-ratio-out-of-bounds }
+\msg_new:nnn { fontscale } { key-musical-base-out-of-bounds }
{
- The~ value~ for~ the~ key~ 'modular / ratio'~
- \msg_line_context: \c_space_tl
- must~ be~ greater~ than~ 1.
+ Invalid~ value~ '#1'~ \msg_line_context:. \\
+ The~ value~ of~ the~ key~ 'musical / base'~
+ must~ be~ a~ positive~ length.
}
-\msg_new:nnn { fontscale } { musical-ratio-out-of-bounds }
+\msg_new:nnn { fontscale } { key-musical-ratio-out-of-bounds }
{
- The~ value~ for~ the~ key~ 'musical / ratio'~
- \msg_line_context: \c_space_tl
+ Invalid~ value~ '#1'~ \msg_line_context:. \\
+ The~ value~ of~ the~ key~ 'musical / ratio'~
must~ be~ greater~ than~ 1.
}
-\msg_new:nnn { fontscale } { musical-notes-out-of-bounds }
+\msg_new:nnn { fontscale } { key-musical-notes-out-of-bounds }
{
- The~ value~ for~ the~ key~ 'musical / notes'~
- \msg_line_context: \c_space_tl
+ Invalid~ value~ '#1'~ \msg_line_context:. \\
+ The~ value~ of~ the~ key~ 'musical / notes'~
must~ be~ a~ positive~ integer.
}
-\msg_new:nnn { fontscale } { key-font-scale-ignored }
+\msg_new:nnn { fontscale } { key-font-scale-out-of-bounds }
{
- Key~ '#1 / scale'~
- \msg_line_context: \c_space_tl
- ignored.~
- Setting~ the~ scale~ and~ size~ keys~ for~ the~ same~
- font~ size~ command~ ignores~ the~ scale~ key.
+ Invalid~ value~ '#1'~ \msg_line_context:. \\
+ The~ value~ of~ the~ key~ '#2 / scale'~
+ must~ be~ positive.
}
-\msg_new:nnn { fontscale } { font-sizes-out-of-order }
+\msg_new:nnn { fontscale } { key-font-size-out-of-bounds }
{
- The~ font~ sizes~
- \msg_line_context: \c_space_tl
- are~ not~ in~ the~ correct~ order.~
- The~ magnitude~ of~ the~ font~ sizes~ should~ be~ ordered~ from~
- '\iow_char:N \\tiny'~ to~ '\iow_char:N \\normalsize'~ to~
- '\iow_char:N \\Huge'.
+ Invalid~ value~ '#1'~ \msg_line_context:. \\
+ The~ value~ of~ the~ key~ '#2 / size'~
+ must~ be~ a~ positive~ length.
}
-\msg_new:nnn { fontscale } { font-baselineskips-out-of-order }
+\msg_new:nnn { fontscale } { key-font-scale-overwritten }
{
- The~ font~ baselineskips~
- \msg_line_context: \c_space_tl
- are~ not~ in~ the~ correct~ order.~
- The~ magnitude~ of~ the~ font~ baselineskips~ should~ be~ ordered~ from~
- '\iow_char:N \\tiny'~ to~ '\iow_char:N \\normalsize'~ to~
- '\iow_char:N \\Huge'.
+ The~ font~ size~ set~ by~ the~ key~ '#1 / scale'~
+ has~ been~ overwritten~ by~ the~ key~ '#1 / size'~ \msg_line_context:.
}
+\msg_new:nnn { fontscale } { font-sizes-out-of-order }
+ {
+ The~ font~ sizes~ are~ not~ in~ the~ correct~ order~ \msg_line_context:. \\
+ The~ lengths~ of~ the~ font~ sizes~
+ should~ be~ ordered~ from~ \iow_char:N \\tiny~ to~ \iow_char:N \\Huge.
+ }
+
+\msg_new:nnn { fontscale } { math-mode-warning }
+ { '#1'~ does~ nothing~ if~ used~ in~ math~ mode~ \msg_line_context:. }
+\msg_new:nnn { fontscale } { math-mode-error }
+ { '#1'~ cannot~ be~ used~ in~ math~ mode~ \msg_line_context:. }
+\msg_new:nnn { fontscale } { font-size-out-of-bounds }
+ { The~ font~ size~ '#1'~ must~ be~ a~ positive~ length~ \msg_line_context:. }
\msg_new:nnn { fontscale } { font-step-out-of-bounds }
{
- The~ font~ step~
- \msg_line_context: \c_space_tl
- must~ be~ an~ integer~ from~ -4~ to~ 5,~
- unless~ the~ value~ for~ the~ choice~ key~ 'typographic-scale'~
- is~ 'modular'~ or~ 'musical'.
+ Invalid~ font~ step~ '#1'~ \msg_line_context:. \\
+ The~ font~ step~ must~ equal~ an~ integer~ from~ -4~ to~ 5,~
+ unless~ the~ value~ of~ the~ key~ 'typographic-scale'~ is~ 'musical'.
}
\msg_new:nnn { fontscale } { current-font-step-out-of-bounds }
{
- '\iow_char:N \\SetFontStep*'~
- \msg_line_context: \c_space_tl
- could~ not~ calculate~ the~ new~ font~ step~ because~
- the~ current~ font~ step~ is~ undefined.
+ '\iow_char:N \\SetFontStep*'~ could~ not~ calculate~ the~ new~ font~ step~
+ because~ the~ current~ font~ step~ is~ undefined~ \msg_line_context:.
}
% DEFINE KEYS
\str_new:N \l__fontscale_typographic_scale_str
+\dim_new:N \l__fontscale_musical_base_dim
-\keys_define:nn { fontscale }
+\cs_new_protected:Npn \__fontscale_keys_name:n #1
{
- reset .choices:nn = { initial , preamble }
- { \use:c { __fontscale_keys_precompile_#1: } }
- , reset .default:n = initial
-
- , ignore-order .bool_set:N = \l__fontscale_ignore_order_bool
- , ignore-order .default:n = true
+ \tl_if_in:nnTF {#1} { / }
+ { \__fontscale_keys_name_split:ww #1 \q_stop }
+ { \tl_set:cn { l__fontscale_ \l_keys_key_str _size_tl } {#1} }
+ }
+\cs_new_protected:Npn \__fontscale_keys_name_split:ww #1 / #2 \q_stop
+ {
+ \tl_set:cn { l__fontscale_ \l_keys_key_str _size_tl } {#1}
+ \tl_set:cn { l__fontscale_ \l_keys_key_str _baselineskip_tl } {#2}
+ }
- , baselineskip-size-ratio .fp_set:N =
+\keys_define:nn { fontscale }
+ {
+ baselineskip-size-ratio .fp_set:N =
\l__fontscale_baselineskip_size_ratio_fp
, baselineskip-size-ratio .value_required:n = true
, typographic-scale .choices:nn =
- { classic-10pt , classic-11pt , classic-12pt , modular , musical }
+ { classic-10pt , classic-11pt , classic-12pt , musical }
{ \str_set:Nn \l__fontscale_typographic_scale_str {#1} }
, typographic-scale .value_required:n = true
@@ -315,23 +293,29 @@
, classic-12pt .meta:n = { typographic-scale = classic-12pt }
, classic-12pt .value_forbidden:n = true
- , modular .meta:n = { typographic-scale = modular }
- , modular .value_forbidden:n = true
-
, musical .meta:n = { typographic-scale = musical }
, musical .value_forbidden:n = true
-
- , modular / ratio .fp_set:N = \l__fontscale_modular_ratio_fp
- , modular / ratio .value_required:n = true
}
\keys_define:nn { fontscale / musical }
{
- ratio .fp_set:N = \l__fontscale_musical_ratio_fp
+ base .code:n =
+ \__fontscale_dim_set_default_pt:Nn \l__fontscale_musical_base_dim {#1}
+ , base .value_required:n = true
+
+ , ratio .fp_set:N = \l__fontscale_musical_ratio_fp
, ratio .value_required:n = true
, notes .int_set:N = \l__fontscale_musical_notes_int
, notes .value_required:n = true
}
+\keys_define:nn { fontscale / normalsize }
+ {
+ size .tl_set:N = \l__fontscale_normalsize_size_tl
+ , size .value_required:n = true
+
+ , baselineskip .tl_set:N = \l__fontscale_normalsize_baselineskip_tl
+ , baselineskip .value_required:n = true
+ }
\keys_define:nn { fontscale / tiny }
{
scale .tl_set:N = \l__fontscale_tiny_scale_tl
@@ -376,14 +360,6 @@
, baselineskip .tl_set:N = \l__fontscale_small_baselineskip_tl
, baselineskip .value_required:n = true
}
-\keys_define:nn { fontscale / normalsize }
- {
- size .tl_set:N = \l__fontscale_normalsize_size_tl
- , size .value_required:n = true
-
- , baselineskip .tl_set:N = \l__fontscale_normalsize_baselineskip_tl
- , baselineskip .value_required:n = true
- }
\keys_define:nn { fontscale / large }
{
scale .tl_set:N = \l__fontscale_large_scale_tl
@@ -441,185 +417,103 @@
}
\keys_define:nn { fontscale }
{
- tiny .code:n = \__fontscale_keys_name_code:n {#1}
+ tiny .code:n = \__fontscale_keys_name:n {#1}
, tiny .value_required:n = true
- , scriptsize .code:n = \__fontscale_keys_name_code:n {#1}
+ , scriptsize .code:n = \__fontscale_keys_name:n {#1}
, scriptsize .value_required:n = true
- , footnotesize .code:n = \__fontscale_keys_name_code:n {#1}
+ , footnotesize .code:n = \__fontscale_keys_name:n {#1}
, footnotesize .value_required:n = true
- , small .code:n = \__fontscale_keys_name_code:n {#1}
+ , small .code:n = \__fontscale_keys_name:n {#1}
, small .value_required:n = true
- , normalsize .code:n = \__fontscale_keys_name_code:n {#1}
+ , normalsize .code:n = \__fontscale_keys_name:n {#1}
, normalsize .value_required:n = true
- , large .code:n = \__fontscale_keys_name_code:n {#1}
+ , large .code:n = \__fontscale_keys_name:n {#1}
, large .value_required:n = true
- , Large .code:n = \__fontscale_keys_name_code:n {#1}
+ , Large .code:n = \__fontscale_keys_name:n {#1}
, Large .value_required:n = true
- , LARGE .code:n = \__fontscale_keys_name_code:n {#1}
+ , LARGE .code:n = \__fontscale_keys_name:n {#1}
, LARGE .value_required:n = true
- , huge .code:n = \__fontscale_keys_name_code:n {#1}
+ , huge .code:n = \__fontscale_keys_name:n {#1}
, huge .value_required:n = true
- , Huge .code:n = \__fontscale_keys_name_code:n {#1}
+ , Huge .code:n = \__fontscale_keys_name:n {#1}
, Huge .value_required:n = true
}
-\cs_new_protected:Npn \__fontscale_keys_name_code:n #1
- {
- \str_if_in:nnTF {#1} { / }
- { \__fontscale_keys_name_code_split:ww #1 \q_stop }
- { \tl_set:cn { l__fontscale_ \l_keys_key_str _size_tl } {#1} }
- }
-\cs_new_protected:Npn \__fontscale_keys_name_code_split:ww #1 / #2 \q_stop
- {
- \tl_set:cn { l__fontscale_ \l_keys_key_str _size_tl } {#1}
- \tl_set:cn { l__fontscale_ \l_keys_key_str _baselineskip_tl } {#2}
- }
-% PRE-COMPILE KEYS
+% INITIALIZE AND PRE-COMPILE KEYS
% Pre-compiles the keys with their initial values and then sets the keys to
-% their initial values. This is done by hand for speed.
-\cs_new_protected:Npn \__fontscale_keys_precompile_initial:
+% their initial values. This is significantly faster than using .initial:n and
+% \keys_precompile:nnN.
+\cs_new_protected:Npn \__fontscale_keys_set_initial:
{
- \bool_set_false:N \l__fontscale_ignore_order_bool
\fp_set:Nn \l__fontscale_baselineskip_size_ratio_fp { 1.2 }
\str_set:Nn \l__fontscale_typographic_scale_str { classic-10pt }
- \fp_set:Nn \l__fontscale_modular_ratio_fp { 1.125 }
+ \dim_set:Nn \l__fontscale_musical_base_dim { 10pt }
\fp_set:Nn \l__fontscale_musical_ratio_fp { 2 }
\int_set:Nn \l__fontscale_musical_notes_int { 5 }
- \tl_set:Nn \l__fontscale_tiny_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_scriptsize_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_footnotesize_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_small_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_large_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Large_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_LARGE_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_huge_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Huge_scale_tl { \q_no_value }
-
- \tl_set:Nn \l__fontscale_tiny_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_scriptsize_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_footnotesize_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_small_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_normalsize_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_large_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Large_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_LARGE_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_huge_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Huge_size_tl { \q_no_value }
-
- \tl_set:Nn \l__fontscale_tiny_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_scriptsize_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_footnotesize_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_small_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_normalsize_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_large_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Large_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_LARGE_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_huge_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Huge_baselineskip_tl { \q_no_value }
- }
-\__fontscale_keys_precompile_initial:
-
-% Pre-compiles the keys with their values at the end of the preamble. The keys
-% are pre-compiled by hand for speed.
-\cs_new_eq:NN \__fontscale_keys_precompile_preamble: \prg_do_nothing:
-% \AddToHook is passed only a single token for speed.
-\AddToHook { begindocument / before }
- { \__fontscale_keys_precompile_preamble_set: }
-\cs_new_protected:Npn \__fontscale_keys_precompile_preamble_set:
- {
- \cs_set_protected:Npe \__fontscale_keys_precompile_preamble:
+ \tl_map_inline:nn
{
- \bool_if:NTF \l__fontscale_ignore_order_bool
- { \bool_set_true:N } { \bool_set_false:N }
- \exp_not:N \l__fontscale_ignore_order_bool
- \fp_set:Nn \exp_not:N \l__fontscale_baselineskip_size_ratio_fp
- { \exp_not:V \l__fontscale_baselineskip_size_ratio_fp }
- \str_set:Nn \exp_not:N \l__fontscale_typographic_scale_str
- { \l__fontscale_typographic_scale_str }
- \fp_set:Nn \exp_not:N \l__fontscale_modular_ratio_fp
- { \exp_not:V \l__fontscale_modular_ratio_fp }
- \fp_set:Nn \exp_not:N \l__fontscale_musical_ratio_fp
- { \exp_not:V \l__fontscale_musical_ratio_fp }
- \int_set:Nn \exp_not:N \l__fontscale_musical_notes_int
- { \int_use:N \l__fontscale_musical_notes_int }
-
- \tl_set:Nn \exp_not:N \l__fontscale_tiny_scale_tl
- { \exp_not:V \l__fontscale_tiny_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_scriptsize_scale_tl
- { \exp_not:V \l__fontscale_scriptsize_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_footnotesize_scale_tl
- { \exp_not:V \l__fontscale_footnotesize_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_small_scale_tl
- { \exp_not:V \l__fontscale_small_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_large_scale_tl
- { \exp_not:V \l__fontscale_large_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_Large_scale_tl
- { \exp_not:V \l__fontscale_Large_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_LARGE_scale_tl
- { \exp_not:V \l__fontscale_LARGE_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_huge_scale_tl
- { \exp_not:V \l__fontscale_huge_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_Huge_scale_tl
- { \exp_not:V \l__fontscale_Huge_scale_tl }
-
- \tl_set:Nn \exp_not:N \l__fontscale_tiny_size_tl
- { \exp_not:V \l__fontscale_tiny_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_scriptsize_size_tl
- { \exp_not:V \l__fontscale_scriptsize_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_footnotesize_size_tl
- { \exp_not:V \l__fontscale_footnotesize_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_small_size_tl
- { \exp_not:V \l__fontscale_small_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_normalsize_size_tl
- { \exp_not:V \l__fontscale_normalsize_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_large_size_tl
- { \exp_not:V \l__fontscale_large_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_Large_size_tl
- { \exp_not:V \l__fontscale_Large_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_LARGE_size_tl
- { \exp_not:V \l__fontscale_LARGE_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_huge_size_tl
- { \exp_not:V \l__fontscale_huge_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_Huge_size_tl
- { \exp_not:V \l__fontscale_Huge_size_tl }
-
- \tl_set:Nn \exp_not:N \l__fontscale_tiny_baselineskip_tl
- { \exp_not:V \l__fontscale_tiny_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_scriptsize_baselineskip_tl
- { \exp_not:V \l__fontscale_scriptsize_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_footnotesize_baselineskip_tl
- { \exp_not:V \l__fontscale_footnotesize_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_small_baselineskip_tl
- { \exp_not:V \l__fontscale_small_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_normalsize_baselineskip_tl
- { \exp_not:V \l__fontscale_normalsize_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_large_baselineskip_tl
- { \exp_not:V \l__fontscale_large_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_Large_baselineskip_tl
- { \exp_not:V \l__fontscale_Large_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_LARGE_baselineskip_tl
- { \exp_not:V \l__fontscale_LARGE_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_huge_baselineskip_tl
- { \exp_not:V \l__fontscale_huge_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_Huge_baselineskip_tl
- { \exp_not:V \l__fontscale_Huge_baselineskip_tl }
+ \l__fontscale_tiny_scale_tl
+ \l__fontscale_scriptsize_scale_tl
+ \l__fontscale_footnotesize_scale_tl
+ \l__fontscale_small_scale_tl
+ \l__fontscale_large_scale_tl
+ \l__fontscale_Large_scale_tl
+ \l__fontscale_LARGE_scale_tl
+ \l__fontscale_huge_scale_tl
+ \l__fontscale_Huge_scale_tl
+
+ \l__fontscale_tiny_size_tl
+ \l__fontscale_scriptsize_size_tl
+ \l__fontscale_footnotesize_size_tl
+ \l__fontscale_small_size_tl
+ \l__fontscale_normalsize_size_tl
+ \l__fontscale_large_size_tl
+ \l__fontscale_Large_size_tl
+ \l__fontscale_LARGE_size_tl
+ \l__fontscale_huge_size_tl
+ \l__fontscale_Huge_size_tl
+
+ \l__fontscale_tiny_baselineskip_tl
+ \l__fontscale_scriptsize_baselineskip_tl
+ \l__fontscale_footnotesize_baselineskip_tl
+ \l__fontscale_small_baselineskip_tl
+ \l__fontscale_normalsize_baselineskip_tl
+ \l__fontscale_large_baselineskip_tl
+ \l__fontscale_Large_baselineskip_tl
+ \l__fontscale_LARGE_baselineskip_tl
+ \l__fontscale_huge_baselineskip_tl
+ \l__fontscale_Huge_baselineskip_tl
}
+ { \tl_set:Nn ##1 { \q_no_value } }
}
+\__fontscale_keys_set_initial:
-% PROCESS KEYS
+% SET AND PROCESS KEYS
-\NewDocumentCommand \fontscalesetup { m } { \__fontscale_keys_set:n {#1} }
+\NewDocumentCommand \fontscalesetup { s m }
+ {
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \fontscalesetup }
+ }
+ {
+ \IfBooleanTF #1
+ { \__fontscale_keys_reset:n {#2} }
+ { \__fontscale_keys_set:n {#2} }
+ }
+ }
\cs_new_protected:Npn \__fontscale_keys_set:n #1
{
\keys_set:nn { fontscale } {#1}
@@ -628,55 +522,62 @@
\prg_break:
\prg_break_point:
}
+\cs_new_protected:Npn \__fontscale_keys_reset:n
+ { \__fontscale_keys_set_initial: \__fontscale_keys_set:n }
\cs_new_protected:Npn \__fontscale_keys_process:
{
- \__fontscale_keys_process_check_modular_musical:
+ \__fontscale_keys_process_start:
\__fontscale_keys_process_normalsize:
\__fontscale_keys_process_other:
\__fontscale_keys_process_check_order:
}
-% Issues an error if the key 'modular/ratio', 'musical/ratio', or
-% 'musical/notes' is set to an impossible value.
-\cs_new_protected:Npn \__fontscale_keys_process_check_modular_musical:
+\cs_new_protected:Npn \__fontscale_keys_process_start:
{
- \fp_compare:nNnF \l__fontscale_modular_ratio_fp > \c_one_fp
+ \dim_compare:nNnF \l__fontscale_musical_base_dim > \c_zero_dim
{
- \msg_error:nn { fontscale } { modular-ratio-out-of-bounds }
+ \msg_error:nnV { fontscale } { key-musical-base-out-of-bounds }
+ \l__fontscale_musical_base_dim
\prg_break:
}
\fp_compare:nNnF \l__fontscale_musical_ratio_fp > \c_one_fp
{
- \msg_error:nn { fontscale } { musical-ratio-out-of-bounds }
+ \msg_error:nne { fontscale } { key-musical-ratio-out-of-bounds }
+ { \fp_use:N \l__fontscale_musical_ratio_fp }
\prg_break:
}
\int_compare:nNnF \l__fontscale_musical_notes_int > 0
{
- \msg_error:nn { fontscale } { musical-notes-out-of-bounds }
+ \msg_error:nnV { fontscale } { key-musical-notes-out-of-bounds }
+ \l__fontscale_musical_notes_int
\prg_break:
}
}
-% Sets the size and baselineskip of \normalsize and updates their property list
-% entries.
+% Sets the font size and font baselineskip of \normalsize.
\cs_new_protected:Npn \__fontscale_keys_process_normalsize:
{
\quark_if_no_value:NTF \l__fontscale_normalsize_size_tl
{
\dim_set:Nn \l_fontscale_normalsize_size_dim
{
- \str_case:VnF \l__fontscale_typographic_scale_str
+ \str_case:Vn \l__fontscale_typographic_scale_str
{
+ { classic-10pt } { 10pt }
{ classic-11pt } { 11pt }
{ classic-12pt } { 12pt }
+ { musical } { \l__fontscale_musical_base_dim }
}
- { 10pt }
}
}
{
- \__fontscale_dim_set_with_default_pt:Nn
- \l_fontscale_normalsize_size_dim { \l__fontscale_normalsize_size_tl }
+ \__fontscale_dim_set_default_pt:Nn \l_fontscale_normalsize_size_dim
+ { \l__fontscale_normalsize_size_tl }
+ \dim_compare:nNnF \l_fontscale_normalsize_size_dim > \c_zero_dim
+ {
+ \msg_error:nnVn { fontscale } { key-font-size-out-of-bounds }
+ \l_fontscale_normalsize_size_dim { normalsize }
+ \prg_break:
+ }
}
- \prop_put:NnV \l_fontscale_normalsize_prop { size }
- \l_fontscale_normalsize_size_dim
\fp_set:Nn \l__fontscale_normalsize_size_fp
{ \l_fontscale_normalsize_size_dim }
\quark_if_no_value:NTF \l__fontscale_normalsize_baselineskip_tl
@@ -691,12 +592,10 @@
}
}
{
- \__fontscale_skip_set_with_default_pt:Nn
+ \__fontscale_skip_set_default_pt:Nn
\l_fontscale_normalsize_baselineskip_skip
{ \l__fontscale_normalsize_baselineskip_tl }
}
- \prop_put:NnV \l_fontscale_normalsize_prop { baselineskip }
- \l_fontscale_normalsize_baselineskip_skip
}
% Auxiliary functions that expand to the font size depending on the name of the
% font size command.
@@ -745,57 +644,55 @@
{ Huge } { 24pt }
}
}
-\cs_new:Npn \__fontscale_keys_process_other_modular:n #1
- {
- \fp_to_dim:n
- {
- \l__fontscale_normalsize_size_fp * \l__fontscale_modular_ratio_fp
- ^ \use:c { c_fontscale_#1_step_fp }
- }
- }
\cs_new:Npn \__fontscale_keys_process_other_musical:n #1
{
\fp_to_dim:n
{
- \l__fontscale_normalsize_size_fp * \l__fontscale_musical_ratio_fp
+ \l__fontscale_musical_base_fp * \l__fontscale_musical_ratio_fp
^ ( \use:c { c_fontscale_#1_step_fp }
/ \l__fontscale_musical_notes_fp )
}
}
-% Sets the size, scale, and baselineskip of the other font size commands and
-% updates their property list entries. Issues a warning if the user sets both
-% the scale and size keys for the same font size command.
+% Sets the font size, font scale, and font baselineskip of the other font size
+% commands.
\cs_new_protected:Npn \__fontscale_keys_process_other:
{
- \cs_set_eq:Nc \__fontscale_keys_process_other_typographic_scale:n
+ \str_case:Vn \l__fontscale_typographic_scale_str
{
- \str_case:Vn \l__fontscale_typographic_scale_str
- {
- { classic-10pt } { __fontscale_keys_process_other_classic_xpt:n }
- { classic-11pt } { __fontscale_keys_process_other_classic_xipt:n }
- { classic-12pt } { __fontscale_keys_process_other_classic_xiipt:n }
- { modular } { __fontscale_keys_process_other_modular:n }
- { musical } { __fontscale_keys_process_other_musical:n }
- }
+ { classic-10pt }
+ {
+ \cs_set_eq:NN \__fontscale_keys_process_other_fn_aux:n
+ \__fontscale_keys_process_other_classic_xpt:n
+ }
+ { classic-11pt }
+ {
+ \cs_set_eq:NN \__fontscale_keys_process_other_fn_aux:n
+ \__fontscale_keys_process_other_classic_xipt:n
+ }
+ { classic-12pt }
+ {
+ \cs_set_eq:NN \__fontscale_keys_process_other_fn_aux:n
+ \__fontscale_keys_process_other_classic_xiipt:n
+ }
+ { musical }
+ {
+ \cs_set_eq:NN \__fontscale_keys_process_other_fn_aux:n
+ \__fontscale_keys_process_other_musical:n
+ \fp_set:Nn \l__fontscale_musical_base_fp
+ { \l__fontscale_musical_base_dim }
+ \fp_set:Nn \l__fontscale_musical_notes_fp
+ { \l__fontscale_musical_notes_int }
+ }
}
- \str_if_eq:VnT \l__fontscale_typographic_scale_str { musical }
+ \tl_map_function:nN
{
- \fp_set:Nn \l__fontscale_musical_notes_fp
- { \l__fontscale_musical_notes_int }
+ {tiny} {scriptsize} {footnotesize} {small}
+ {large} {Large} {LARGE} {huge} {Huge}
}
- \tl_map_function:NN \c__fontscale_names_other_tl
- \__fontscale_keys_process_other_aux:n
+ \__fontscale_keys_process_other_fn:n
}
-\cs_new_protected:Npn \__fontscale_keys_process_other_aux:n #1
+\cs_new_protected:Npn \__fontscale_keys_process_other_fn:n #1
{
- \quark_if_no_value:cF { l__fontscale_#1_size_tl }
- {
- \__fontscale_dim_set_with_default_pt:cn { l_fontscale_#1_size_dim }
- { \use:c { l__fontscale_#1_size_tl } }
- \quark_if_no_value:cF { l__fontscale_#1_scale_tl }
- { \msg_warning:nnn { fontscale } { key-font-scale-ignored } {#1} }
- \prg_break:
- }
\quark_if_no_value:cF { l__fontscale_#1_scale_tl }
{
\dim_set:cn { l_fontscale_#1_size_dim }
@@ -806,17 +703,42 @@
* ( \use:c { l__fontscale_#1_scale_tl } )
}
}
+ \dim_compare:nNnF { \use:c { l_fontscale_#1_size_dim } } > \c_zero_dim
+ {
+ \tl_map_break:n
+ {
+ \msg_error:nnen { fontscale } { key-font-scale-out-of-bounds }
+ { \fp_eval:n { \use:c { l__fontscale_#1_scale_tl } } } {#1}
+ \prg_break:
+ }
+ }
+ \quark_if_no_value:cT { l__fontscale_#1_size_tl } { \prg_break: }
+ }
+ \quark_if_no_value:cF { l__fontscale_#1_size_tl }
+ {
+ \__fontscale_dim_set_default_pt:cn { l_fontscale_#1_size_dim }
+ { \use:c { l__fontscale_#1_size_tl } }
+ \dim_compare:nNnF { \use:c { l_fontscale_#1_size_dim } } > \c_zero_dim
+ {
+ \tl_map_break:n
+ {
+ \msg_error:nnvn { fontscale } { key-font-size-out-of-bounds }
+ { l_fontscale_#1_size_dim } {#1}
+ \prg_break:
+ }
+ }
+ \quark_if_no_value:cF { l__fontscale_#1_scale_tl }
+ {
+ \msg_warning:nnn { fontscale } { key-font-scale-overwritten } {#1}
+ }
\prg_break:
}
\dim_set:cn { l_fontscale_#1_size_dim }
- { \__fontscale_keys_process_other_typographic_scale:n {#1} }
+ { \__fontscale_keys_process_other_fn_aux:n {#1} }
\prg_break:
\prg_break_point:
\fp_set:cn { l_fontscale_#1_scale_fp }
{ \use:c { l_fontscale_#1_size_dim } / \l__fontscale_normalsize_size_fp }
- \prop_put:cne { l_fontscale_#1_prop } { scale }
- { \fp_use:c { l_fontscale_#1_scale_fp } }
- \prop_put:cnv { l_fontscale_#1_prop } { size } { l_fontscale_#1_size_dim }
\quark_if_no_value:cTF { l__fontscale_#1_baselineskip_tl }
{
\skip_set:cn { l_fontscale_#1_baselineskip_skip }
@@ -829,122 +751,180 @@
}
}
{
- \__fontscale_skip_set_with_default_pt:cn
+ \__fontscale_skip_set_default_pt:cn
{ l_fontscale_#1_baselineskip_skip }
{ \use:c { l__fontscale_#1_baselineskip_tl } }
}
- \prop_put:cnv { l_fontscale_#1_prop } { baselineskip }
- { l_fontscale_#1_baselineskip_skip }
}
-% Issues a warning if the font sizes or font baselineskips (ignoring the
-% stretch and shrink components) are not in the correct order unless the value
-% for the key 'ignore-order' is 'true'.
+% Issues a warning if the font sizes are not in the correct order.
\cs_new_protected:Npn \__fontscale_keys_process_check_order:
{
- \bool_if:NF \l__fontscale_ignore_order_bool
+ \dim_compare:nF
{
- \dim_compare:nF
- {
- \l_fontscale_tiny_size_dim
- < \l_fontscale_scriptsize_size_dim
- < \l_fontscale_footnotesize_size_dim
- < \l_fontscale_small_size_dim
- < \l_fontscale_normalsize_size_dim
- < \l_fontscale_large_size_dim
- < \l_fontscale_Large_size_dim
- < \l_fontscale_LARGE_size_dim
- < \l_fontscale_huge_size_dim
- < \l_fontscale_Huge_size_dim
- }
- { \msg_warning:nn { fontscale } { font-sizes-out-of-order } }
- \dim_compare:nF
- {
- \l_fontscale_tiny_baselineskip_skip
- < \l_fontscale_scriptsize_baselineskip_skip
- < \l_fontscale_footnotesize_baselineskip_skip
- < \l_fontscale_small_baselineskip_skip
- < \l_fontscale_normalsize_baselineskip_skip
- < \l_fontscale_large_baselineskip_skip
- < \l_fontscale_Large_baselineskip_skip
- < \l_fontscale_LARGE_baselineskip_skip
- < \l_fontscale_huge_baselineskip_skip
- < \l_fontscale_Huge_baselineskip_skip
- }
- { \msg_warning:nn { fontscale } { font-baselineskips-out-of-order } }
+ \l_fontscale_tiny_size_dim
+ < \l_fontscale_scriptsize_size_dim
+ < \l_fontscale_footnotesize_size_dim
+ < \l_fontscale_small_size_dim
+ < \l_fontscale_normalsize_size_dim
+ < \l_fontscale_large_size_dim
+ < \l_fontscale_Large_size_dim
+ < \l_fontscale_LARGE_size_dim
+ < \l_fontscale_huge_size_dim
+ < \l_fontscale_Huge_size_dim
}
+ { \msg_warning:nn { fontscale } { font-sizes-out-of-order } }
}
% DOCUMENT COMMANDS
-% The internal functions of each font size command are not used elsewhere in
-% the code for compatibility with user-defined hooks
-% (e.g. \AddToHook{cmd/normalsize/after}{<user-defined-function>}).
-\DeclareDocumentCommand \tiny { } { \__fontscale_tiny: }
+% Defines the standard LaTeX font size commands from \tiny to \Huge and
+% initializes to \normalsize. The corresponding internal functions are not used
+% elsewhere in the code for compatibility with hooks such as
+% \AddToHook{cmd/<font size command>/after}{<code>}.
+\DeclareDocumentCommand \tiny { }
+ {
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \tiny }
+ }
+ { \__fontscale_tiny: }
+ }
\cs_new_protected:Npn \__fontscale_tiny:
{
\__fontscale_fontsize:NNN \tiny \l_fontscale_tiny_size_dim
\l_fontscale_tiny_baselineskip_skip
}
-\DeclareDocumentCommand \scriptsize { } { \__fontscale_scriptsize: }
+\DeclareDocumentCommand \scriptsize { }
+ {
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \scriptsize }
+ }
+ { \__fontscale_scriptsize: }
+ }
\cs_new_protected:Npn \__fontscale_scriptsize:
{
\__fontscale_fontsize:NNN \scriptsize \l_fontscale_scriptsize_size_dim
\l_fontscale_scriptsize_baselineskip_skip
}
-\DeclareDocumentCommand \footnotesize { } { \__fontscale_footnotesize: }
+\DeclareDocumentCommand \footnotesize { }
+ {
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \footnotesize }
+ }
+ { \__fontscale_footnotesize: }
+ }
\cs_new_protected:Npn \__fontscale_footnotesize:
{
\__fontscale_fontsize:NNN \footnotesize \l_fontscale_footnotesize_size_dim
\l_fontscale_footnotesize_baselineskip_skip
}
-\DeclareDocumentCommand \small { } { \__fontscale_small: }
+\DeclareDocumentCommand \small { }
+ {
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \small }
+ }
+ { \__fontscale_small: }
+ }
\cs_new_protected:Npn \__fontscale_small:
{
\__fontscale_fontsize:NNN \small \l_fontscale_small_size_dim
\l_fontscale_small_baselineskip_skip
}
-\DeclareDocumentCommand \normalsize { } { \__fontscale_normalsize: }
+\DeclareDocumentCommand \normalsize { }
+ {
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \normalsize }
+ }
+ { \__fontscale_normalsize: }
+ }
\cs_new_protected:Npn \__fontscale_normalsize:
{
\__fontscale_fontsize:NNN \normalsize \l_fontscale_normalsize_size_dim
\l_fontscale_normalsize_baselineskip_skip
}
-\DeclareDocumentCommand \large { } { \__fontscale_large: }
+\DeclareDocumentCommand \large { }
+ {
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \large }
+ }
+ { \__fontscale_large: }
+ }
\cs_new_protected:Npn \__fontscale_large:
{
\__fontscale_fontsize:NNN \large \l_fontscale_large_size_dim
\l_fontscale_large_baselineskip_skip
}
-\DeclareDocumentCommand \Large { } { \__fontscale_Large: }
+\DeclareDocumentCommand \Large { }
+ {
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \Large }
+ }
+ { \__fontscale_Large: }
+ }
\cs_new_protected:Npn \__fontscale_Large:
{
\__fontscale_fontsize:NNN \Large \l_fontscale_Large_size_dim
\l_fontscale_Large_baselineskip_skip
}
-\DeclareDocumentCommand \LARGE { } { \__fontscale_LARGE: }
+\DeclareDocumentCommand \LARGE { }
+ {
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \LARGE }
+ }
+ { \__fontscale_LARGE: }
+ }
\cs_new_protected:Npn \__fontscale_LARGE:
{
\__fontscale_fontsize:NNN \LARGE \l_fontscale_LARGE_size_dim
\l_fontscale_LARGE_baselineskip_skip
}
-\DeclareDocumentCommand \huge { } { \__fontscale_huge: }
+\DeclareDocumentCommand \huge { }
+ {
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \huge }
+ }
+ { \__fontscale_huge: }
+ }
\cs_new_protected:Npn \__fontscale_huge:
{
\__fontscale_fontsize:NNN \huge \l_fontscale_huge_size_dim
\l_fontscale_huge_baselineskip_skip
}
-\DeclareDocumentCommand \Huge { } { \__fontscale_Huge: }
+\DeclareDocumentCommand \Huge { }
+ {
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \Huge }
+ }
+ { \__fontscale_Huge: }
+ }
\cs_new_protected:Npn \__fontscale_Huge:
{
\__fontscale_fontsize:NNN \Huge \l_fontscale_Huge_size_dim
\l_fontscale_Huge_baselineskip_skip
}
-% Initializes to \normalsize.
\normalsize
-\NewExpandableDocumentCommand \CurrentFontStep { }
- { \__fontscale_current_font_step: }
-\cs_new:Npn \__fontscale_current_font_step:
+\NewExpandableDocumentCommand \CurrentFontStep { } { \__fontscale_step: }
+\cs_new:Npn \__fontscale_step:
{
\dim_case:nnF { \f@size pt }
{
@@ -960,47 +940,100 @@
{ \l_fontscale_Huge_size_dim } { 5 }
}
{
- \str_case:Vn \l__fontscale_typographic_scale_str
+ \str_if_eq:VnT \l__fontscale_typographic_scale_str { musical }
{
- { modular }
- {
- \fp_eval:n
- {
- ln ( \f@size / \l__fontscale_normalsize_size_fp )
- / ln ( \l__fontscale_modular_ratio_fp )
- }
- }
- { musical }
- {
- \fp_eval:n
- {
- \l__fontscale_musical_notes_fp
- * ln ( \f@size / \l__fontscale_normalsize_size_fp )
- / ln ( \l__fontscale_musical_ratio_fp )
- }
- }
+ \fp_eval:n
+ {
+ \l__fontscale_musical_notes_fp
+ * ln ( \f@size / \l__fontscale_musical_base_fp )
+ / ln ( \l__fontscale_musical_ratio_fp )
+ }
}
}
}
-\NewExpandableDocumentCommand \CurrentFontScale { }
- { \__fontscale_current_font_scale: }
-\cs_new:Npn \__fontscale_current_font_scale:
+\NewExpandableDocumentCommand \CurrentFontScale { } { \__fontscale_scale: }
+\cs_new:Npn \__fontscale_scale:
{ \fp_eval:n { \f@size / \l__fontscale_normalsize_size_fp } }
-\NewExpandableDocumentCommand \CurrentFontSize { }
- { \__fontscale_current_font_size: }
-\cs_new:Npn \__fontscale_current_font_size: { \f@size pt }
+\NewExpandableDocumentCommand \CurrentFontSize { } { \__fontscale_size: }
+\cs_new:Npn \__fontscale_size: { \f@size pt }
\NewExpandableDocumentCommand \CurrentFontBaselineskip { }
- { \__fontscale_current_font_baselineskip: }
-\cs_new:Npn \__fontscale_current_font_baselineskip: { \f@baselineskip }
+ { \__fontscale_baselineskip: }
+\cs_new:Npn \__fontscale_baselineskip: { \f@baselineskip }
+
+\NewExpandableDocumentCommand \CurrentFontSizeCommand { }
+ { \__fontscale_name: }
+\cs_new:Npn \__fontscale_name:
+ {
+ \dim_case:nn { \f@size pt }
+ {
+ { \l_fontscale_tiny_size_dim }
+ {
+ \skip_if_eq:nnT { \l_fontscale_tiny_baselineskip_skip }
+ { \f@baselineskip } { tiny }
+ }
+ { \l_fontscale_scriptsize_size_dim }
+ {
+ \skip_if_eq:nnT { \l_fontscale_scriptsize_baselineskip_skip }
+ { \f@baselineskip } { scriptsize }
+ }
+ { \l_fontscale_footnotesize_size_dim }
+ {
+ \skip_if_eq:nnT { \l_fontscale_footnotesize_baselineskip_skip }
+ { \f@baselineskip } { footnotesize }
+ }
+ { \l_fontscale_small_size_dim }
+ {
+ \skip_if_eq:nnT { \l_fontscale_small_baselineskip_skip }
+ { \f@baselineskip } { small }
+ }
+ { \l_fontscale_normalsize_size_dim }
+ {
+ \skip_if_eq:nnT { \l_fontscale_normalsize_baselineskip_skip }
+ { \f@baselineskip } { normalsize }
+ }
+ { \l_fontscale_large_size_dim }
+ {
+ \skip_if_eq:nnT { \l_fontscale_large_baselineskip_skip }
+ { \f@baselineskip } { large }
+ }
+ { \l_fontscale_Large_size_dim }
+ {
+ \skip_if_eq:nnT { \l_fontscale_Large_baselineskip_skip }
+ { \f@baselineskip } { Large }
+ }
+ { \l_fontscale_LARGE_size_dim }
+ {
+ \skip_if_eq:nnT { \l_fontscale_LARGE_baselineskip_skip }
+ { \f@baselineskip } { LARGE }
+ }
+ { \l_fontscale_huge_size_dim }
+ {
+ \skip_if_eq:nnT { \l_fontscale_huge_baselineskip_skip }
+ { \f@baselineskip } { huge }
+ }
+ { \l_fontscale_Huge_size_dim }
+ {
+ \skip_if_eq:nnT { \l_fontscale_Huge_baselineskip_skip }
+ { \f@baselineskip } { Huge }
+ }
+ }
+ }
\NewDocumentCommand \SetFontStep { s m }
{
- \IfBooleanTF #1
- { \__fontscale_add_font_step:n {#2} }
- { \__fontscale_set_font_step:n {#2} }
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \SetFontStep }
+ }
+ {
+ \IfBooleanTF #1
+ { \__fontscale_add_font_step:n {#2} }
+ { \__fontscale_set_font_step:n {#2} }
+ }
}
% Using \str_case: here is significantly faster (and easier to write) than
% repeatedly testing \fp_compare:.
@@ -1020,49 +1053,45 @@
{ 5 } { \Huge }
}
{
- \str_case:VnF \l__fontscale_typographic_scale_str
+ \str_if_eq:VnTF \l__fontscale_typographic_scale_str { musical }
{
- { modular }
- {
- \__fontscale_fontsize:n
- {
- \fp_to_dim:n
- {
- \l__fontscale_normalsize_size_fp
- * \l__fontscale_modular_ratio_fp ^ (#1)
- }
- }
- }
- { musical }
- {
- \__fontscale_fontsize:n
- {
- \fp_to_dim:n
- {
- \l__fontscale_normalsize_size_fp
- * \l__fontscale_musical_ratio_fp
- ^ ( (#1) / \l__fontscale_musical_notes_fp )
- }
- }
- }
+ \__fontscale_fontsize:n
+ {
+ \fp_to_dim:n
+ {
+ \l__fontscale_musical_base_fp
+ * \l__fontscale_musical_ratio_fp
+ ^ ( (#1) / \l__fontscale_musical_notes_fp )
+ }
+ }
+ }
+ {
+ \msg_error:nne { fontscale } { font-step-out-of-bounds }
+ { \fp_eval:n {#1} }
}
- { \msg_error:nn { fontscale } { font-step-out-of-bounds } }
}
}
\cs_new_protected:Npn \__fontscale_add_font_step:n #1
{
- \tl_set:Ne \l__fontscale_step_tl { \__fontscale_current_font_step: }
- \tl_if_empty:NTF \l__fontscale_step_tl
+ \tl_set:Ne \l__fontscale_tmp_tl { \__fontscale_step: }
+ \tl_if_empty:NTF \l__fontscale_tmp_tl
{ \msg_error:nn { fontscale } { current-font-step-out-of-bounds } }
- { \__fontscale_add_font_step_aux:n { (#1) + \l__fontscale_step_tl } }
+ { \__fontscale_add_font_step_aux:n { (#1) + \l__fontscale_tmp_tl } }
}
\cs_new_eq:NN \__fontscale_add_font_step_aux:n \__fontscale_set_font_step:n
\NewDocumentCommand \SetFontScale { s m }
{
- \IfBooleanTF #1
- { \__fontscale_add_font_scale:n {#2} }
- { \__fontscale_set_font_scale:n {#2} }
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \SetFontScale }
+ }
+ {
+ \IfBooleanTF #1
+ { \__fontscale_add_font_scale:n {#2} }
+ { \__fontscale_set_font_scale:n {#2} }
+ }
}
\cs_new_protected:Npn \__fontscale_set_font_scale:n #1
{
@@ -1077,186 +1106,174 @@
\NewDocumentCommand \SetFontSize { s m }
{
- \IfBooleanTF #1
- { \__fontscale_add_font_size:n {#2} }
- { \__fontscale_set_font_size:n {#2} }
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \SetFontSize }
+ }
+ {
+ \IfBooleanTF #1
+ { \__fontscale_add_font_size:n {#2} }
+ { \__fontscale_set_font_size:n {#2} }
+ }
}
\cs_new_eq:NN \__fontscale_set_font_size:n \__fontscale_fontsize:n
\cs_new_protected:Npn \__fontscale_add_font_size:n #1
{
- \__fontscale_dim_set_with_default_pt:Nn \l__fontscale_size_dim {#1}
- \dim_add:Nn \l__fontscale_size_dim { \f@size pt }
- \__fontscale_fontsize:n { \l__fontscale_size_dim }
+ \__fontscale_dim_set_default_pt:Nn \l__fontscale_tmp_dim {#1}
+ \__fontscale_fontsize:n { \l__fontscale_tmp_dim + \f@size pt }
}
\NewDocumentCommand \ScaleFont { m }
- { \__fontscale_scale_font_size_baselineskip:n {#1} }
-\cs_new_protected:Npn \__fontscale_scale_font_size_baselineskip:n #1
{
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \ScaleFont }
+ }
+ { \__fontscale_scale_font:n {#1} }
+ }
+\cs_new_protected:Npn \__fontscale_scale_font:n #1
+ {
+ \fp_set:Nn \l__fontscale_tmp_fp {#1}
\__fontscale_fontsize:nn
- { \fp_to_dim:n { \f@size * (#1) } }
- { \fp_to_dim:n { \dim_to_fp:n { \f@baselineskip } * (#1) } }
+ { \fp_to_dim:n { \f@size * \l__fontscale_tmp_fp } }
+ {
+ \fp_to_dim:n
+ { \dim_to_fp:n { \f@baselineskip } * \l__fontscale_tmp_fp }
+ }
}
\NewDocumentCommand \SetFontSizeBaselineskip { m m }
- { \__fontscale_set_font_size_baselineskip:nn {#1} {#2} }
+ {
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \SetFontSizeBaselineskip }
+ }
+ { \__fontscale_set_font_size_baselineskip:nn {#1} {#2} }
+ }
\cs_new_eq:NN \__fontscale_set_font_size_baselineskip:nn
\__fontscale_fontsize:nn
-\NewDocumentCommand \PrintFontParameters { }
- { \__fontscale_print_font_parameters: }
-\cs_new_protected:Npn \__fontscale_print_font_parameters:
+\NewDocumentCommand \SetFontBaselineskip { s m }
+ {
+ \mode_if_math:TF
+ {
+ \msg_warning:nne { fontscale } { math-mode-warning }
+ { \token_to_str:N \SetFontBaselineskip }
+ }
+ {
+ \IfBooleanTF #1
+ { \__fontscale_add_font_baselineskip:n {#2} }
+ { \__fontscale_set_font_baselineskip:n {#2} }
+ }
+ }
+\cs_new_protected:Npn \__fontscale_set_font_baselineskip:n
+ { \__fontscale_fontsize:nn { \f@size pt } }
+\cs_new_protected:Npn \__fontscale_add_font_baselineskip:n #1
+ {
+ \__fontscale_skip_set_default_pt:Nn \l__fontscale_tmp_skip {#1}
+ \__fontscale_fontsize:nn { \f@size pt }
+ { \l__fontscale_tmp_skip + \f@baselineskip }
+ }
+
+\NewDocumentCommand \PrintFontSizeParameters { }
+ { \__fontscale_print_font_size_parameters: }
+\cs_new_protected:Npn \__fontscale_print_font_size_parameters:
{
- step ~=~ \__fontscale_current_font_step: ,~
- scale ~=~ \__fontscale_current_font_scale: ,~
- size ~=~ \__fontscale_current_font_size: ,~
- baselineskip ~=~ \__fontscale_current_font_baselineskip:
+ step ~=~ \__fontscale_step: ,~
+ scale ~=~ \__fontscale_scale: ,~
+ size ~=~ \__fontscale_size: ,~
+ baselineskip ~=~ \__fontscale_baselineskip:
}
-\NewDocumentCommand \PrintAllFontParameters { }
- { \__fontscale_print_all_font_parameters: }
-\cs_new_protected:Npn \__fontscale_print_all_font_parameters:
+\NewDocumentCommand \PrintAllFontSizeParameters { }
+ {
+ \mode_if_math:TF
+ {
+ \msg_error:nne { fontscale } { math-mode-error }
+ { \token_to_str:N \PrintAllFontSizeParameters }
+ }
+ { \__fontscale_print_all_font_size_parameters: }
+ }
+\cs_new_protected:Npn \__fontscale_print_all_font_size_parameters:
{
- \tl_map_inline:Nn \c__fontscale_names_tl
+ \tl_map_inline:nn
+ {
+ {tiny} {scriptsize} {footnotesize} {small} {normalsize}
+ {large} {Large} {LARGE} {huge} {Huge}
+ }
{
- \prop_get:cnN { l_fontscale_##1_prop } { step } \l__fontscale_step_tl
- \prop_get:cnN { l_fontscale_##1_prop } { scale } \l__fontscale_scale_tl
\token_to_str:c {##1} \@ \c_colon_str \c_space_tl
- step ~=~ \l__fontscale_step_tl ,~
- scale ~=~ \l__fontscale_scale_tl ,~
- size ~=~ \dim_use:c { l_fontscale_##1_size_dim } ,~
- baselineskip ~=~ \skip_use:c { l_fontscale_##1_baselineskip_skip }
+ step~ =~ \fp_use:c { c_fontscale_##1_step_fp } ,~
+ scale~ =~ \str_if_eq:nnTF {##1} { normalsize }
+ { 1 } { \fp_use:c { l_fontscale_##1_scale_fp } } ,~
+ size~ =~ \dim_use:c { l_fontscale_##1_size_dim } ,~
+ baselineskip~ =~ \skip_use:c { l_fontscale_##1_baselineskip_skip }
\str_if_eq:nnF {##1} { Huge } { \newline }
}
}
-\NewDocumentCommand \PrintSampleText
- { s O
- {
- The~ \texttt { fontscale }~ package \c_colon_str \c_space_tl
- A~ user~ interface~ for~ setting~ document~ font~ sizes
- }
- }
+\NewDocumentCommand \PrintSampleText { s +m }
{
- \IfBooleanTF #1
- { \__fontscale_print_sample_text_descending_order:n {#2} }
- { \__fontscale_print_sample_text_ascending_order:n {#2} }
+ \mode_if_math:TF
+ {
+ \msg_error:nne { fontscale } { math-mode-error }
+ { \token_to_str:N \PrintSampleText }
+ }
+ {
+ \group_begin:
+ \IfBooleanTF #1
+ { \__fontscale_print_sample_text_descending_order:n {#2} }
+ { \__fontscale_print_sample_text_ascending_order:n {#2} }
+ \group_end:
+ }
}
\cs_new_protected:Npn \__fontscale_print_sample_text_ascending_order:n #1
{
- { \tiny #1 \par }
- { \scriptsize #1 \par }
- { \footnotesize #1 \par }
- { \small #1 \par }
- { \normalsize #1 \par }
- { \large #1 \par }
- { \Large #1 \par }
- { \LARGE #1 \par }
- { \huge #1 \par }
- { \Huge #1 \par }
+ \tl_map_inline:nn
+ {
+ \tiny \scriptsize \footnotesize \small \normalsize
+ \large \Large \LARGE \huge \Huge
+ }
+ { ##1 #1 \par }
}
\cs_new_protected:Npn \__fontscale_print_sample_text_descending_order:n #1
{
- { \Huge #1 \par }
- { \huge #1 \par }
- { \LARGE #1 \par }
- { \Large #1 \par }
- { \large #1 \par }
- { \normalsize #1 \par }
- { \small #1 \par }
- { \footnotesize #1 \par }
- { \scriptsize #1 \par }
- { \tiny #1 \par }
+ \tl_map_inline:nn
+ {
+ \Huge \huge \LARGE \Large \large
+ \normalsize \small \footnotesize \scriptsize \tiny
+ }
+ { ##1 #1 \par }
}
-\NewDocumentCommand \PrintFontSizeCommand { } { \__fontscale_print_name: }
-\cs_new_protected:Npn \__fontscale_print_name:
+\NewDocumentCommand \PrintFontSizeCommand { }
{
- \dim_case:nn { \f@size pt }
+ \mode_if_math:TF
{
- { \l_fontscale_tiny_size_dim }
- {
- \skip_if_eq:nnT { \f@baselineskip }
- { \l_fontscale_tiny_baselineskip_skip }
- { \token_to_str:N \tiny \prg_break: }
- }
- { \l_fontscale_scriptsize_size_dim }
- {
- \skip_if_eq:nnT { \f@baselineskip }
- { \l_fontscale_scriptsize_baselineskip_skip }
- { \token_to_str:N \scriptsize \prg_break: }
- }
- { \l_fontscale_footnotesize_size_dim }
- {
- \skip_if_eq:nnT { \f@baselineskip }
- { \l_fontscale_footnotesize_baselineskip_skip }
- { \token_to_str:N \footnotesize \prg_break: }
- }
- { \l_fontscale_small_size_dim }
- {
- \skip_if_eq:nnT { \f@baselineskip }
- { \l_fontscale_small_baselineskip_skip }
- { \token_to_str:N \small \prg_break: }
- }
- { \l_fontscale_normalsize_size_dim }
- {
- \skip_if_eq:nnT { \f@baselineskip }
- { \l_fontscale_normalsize_baselineskip_skip }
- { \token_to_str:N \normalsize \prg_break: }
- }
- { \l_fontscale_large_size_dim }
- {
- \skip_if_eq:nnT { \f@baselineskip }
- { \l_fontscale_large_baselineskip_skip }
- { \token_to_str:N \large \prg_break: }
- }
- { \l_fontscale_Large_size_dim }
- {
- \skip_if_eq:nnT { \f@baselineskip }
- { \l_fontscale_Large_baselineskip_skip }
- { \token_to_str:N \Large \prg_break: }
- }
- { \l_fontscale_LARGE_size_dim }
- {
- \skip_if_eq:nnT { \f@baselineskip }
- { \l_fontscale_LARGE_baselineskip_skip }
- { \token_to_str:N \LARGE \@ \prg_break: }
- }
- { \l_fontscale_huge_size_dim }
- {
- \skip_if_eq:nnT { \f@baselineskip }
- { \l_fontscale_huge_baselineskip_skip }
- { \token_to_str:N \huge \prg_break: }
- }
- { \l_fontscale_Huge_size_dim }
- {
- \skip_if_eq:nnT { \f@baselineskip }
- { \l_fontscale_Huge_baselineskip_skip }
- { \token_to_str:N \Huge \prg_break: }
- }
+ \msg_error:nne { fontscale } { math-mode-error }
+ { \token_to_str:N \PrintFontSizeCommand }
}
- UNDEFINED \@
- \prg_break:
- \prg_break_point:
+ { \__fontscale_print_name: }
+ }
+\cs_new_protected:Npn \__fontscale_print_name:
+ {
+ \str_set:Ne \l__fontscale_tmp_str { \__fontscale_name: }
+ \str_if_empty:NTF \l__fontscale_tmp_str
+ { \token_to_str:N \undefined }
+ { \c_backslash_str \l__fontscale_tmp_str \@ }
}
% TEXT PURIFY
-\cs_new:Npn \__fontscale_text_purify_equivalent:n #1
+\NewExpandableDocumentCommand \__fontscale_use_none_sm:w { s m } { }
+\tl_map_inline:nn
{
- \bool_lazy_all:nT
- {
- { \tl_if_single_p:n {#1} }
- { \tl_if_single_token_p:n #1 }
- { \token_if_eq_meaning_p:NN #1 * }
- }
- { \use_none:n }
- }
-\text_declare_purify_equivalent:Nn \SetFontStep
- { \__fontscale_text_purify_equivalent:n }
-\text_declare_purify_equivalent:Nn \SetFontScale
- { \__fontscale_text_purify_equivalent:n }
-\text_declare_purify_equivalent:Nn \SetFontSize
- { \__fontscale_text_purify_equivalent:n }
+ \fontscalesetup \SetFontStep \SetFontScale \SetFontSize
+ \SetFontBaselineskip
+ }
+ { \text_declare_purify_equivalent:Nn #1 { \__fontscale_use_none_sm:w } }
\text_declare_purify_equivalent:Nn \ScaleFont { \use_none:n }
\text_declare_purify_equivalent:Nn \SetFontSizeBaselineskip { \use_none:nn } \ No newline at end of file
diff --git a/macros/latex/contrib/fontscale/fontscale.tex b/macros/latex/contrib/fontscale/fontscale.tex
new file mode 100644
index 0000000000..8ccec27d8d
--- /dev/null
+++ b/macros/latex/contrib/fontscale/fontscale.tex
@@ -0,0 +1,420 @@
+\documentclass{beery}
+
+
+\begin{document}
+
+
+\section*
+ {%
+ \SetFontStep*{1}%
+ The \pkg{fontscale} package%
+ }
+
+A flexible interface for setting font sizes
+
+Oliver Beery
+
+Version 2.4.0\quad{}10 September 2024
+
+
+\section{Introduction}
+\label{sec:intro}
+
+\subsection{About}
+\label{subsec:about}
+
+\listheading{The \pkg{fontscale} package provides the following functionalities:}
+\begin{itemize}
+ \item
+ Set font sizes using a classic or musical typographic scale (\S\ref{subsec:typographicscale}).
+ \item
+ Set arbitrary font sizes and font baselineskips for the standard \LaTeX{} font size commands \cs{tiny}, \cs{scriptsize}, \cs{footnotesize}, \cs{small}, \cs{normalsize}, \cs{large}, \cs{Large}, \cs{LARGE}, \cs{huge}, and \cs{Huge} (\S\ref{subsec:overwriting}).
+ \item
+ Set the font sizes and font baselineskips of the standard \LaTeX{} font size commands mid\-/document or within a local group (\S\ref{subsec:fontscalesetup}).
+ \item
+ Provides expandable commands that expand to the current font step, font scale, font size, font baselineskip, or font size command (\S\ref{subsec:expandable}).
+ \item
+ Provides additional font size commands, including setting the font size by setting the font step or font scale and setting the font size relative to the current font size using more powerful tools than the \pkg{scalefnt} and \pkg{relsize} packages (\S\ref{subsec:fontsize}).
+ \item
+ For \LaTeX3 programmers, this package defines public \pkg{expl3} variables that store the font step, font scale, font size, and font baselineskip of each font size command from \cs{tiny} to \cs{Huge} (\S\ref{sec:programming}).
+\end{itemize}
+
+\subsection{Loading the package}
+\label{subsec:loading}
+
+\listheading{Requirements:}
+\begin{itemize}
+ \item \LaTeXe{} version 2023-11-01 or newer
+ \item \pkg{l3kernel} version 2023-10-10 or newer
+\end{itemize}
+
+You may need to ensure that your \LaTeX{} installation is up\-/to\-/date before using this package.
+
+This package lets the user set arbitrary font sizes.
+This works with most fonts produced today, but, for historical reasons, the default Computer Modern font is available only in a number of discrete font sizes.
+If you get a warning that Computer Modern is not available in the requested font size, you may need to add the code \cs{RequirePackage}\allowbreak\verb|{fix-cm}| before \cs{documentclass} to make Computer Modern available at arbitrary font sizes.
+Alternatively, you can use the Latin Modern font by loading the \pkg{lmodern} package.
+
+The \pkg{fontscale} package has no package options.
+Instead, this package provides the command \cs{fontscalesetup}\marg{key\-/value list} (\S\ref{subsec:fontscalesetup}) which sets the package keys (\S\ref{sec:keys}).
+
+When loaded, this package uses \cs{normalsize} after defining and initializing the font size commands from \cs{tiny} to \cs{Huge}.
+
+Many \LaTeX{} document classes have a font size option (e.g.\@ \Key{10pt}, \Key{11pt}, \Key{12pt}) which not only changes the set of document font sizes, but also modifies additional settings such as the page layout and vertical spacing which were specifically designed to work with those font sizes.
+For this reason, you may want to set the document class font size option close to the font size of \cs{normalsize} set by this package.
+
+\listheading{Internally, this package defines each font size command from \cs{tiny} to \cs{Huge} using the low\-/level font commands \cs{fontsize} and \cs{selectfont}\---they have no additional functionality beyond that of \cs{fontsize} and \cs{selectfont}, except that they:}
+\begin{itemize}
+ \item
+ Set the kernel command \cs{@currsize} equal to the font size command.
+ This is needed only for compatibility.
+ \item
+ Do nothing, except issue a warning, if used in math mode.
+\end{itemize}
+
+Unlike the standard \LaTeX{} document classes, the font size commands from \cs{tiny} to \cs{Huge} defined by this package do not change the vertical spacing for displayed math and list structures.
+If the user would like to add this functionality or perhaps other features to the font size commands, they can use hooks, which are documented in the \LaTeXe{} kernel.
+
+\subsection{The font size parameters}
+\label{subsec:fontsizeparameters}
+
+When using the \pkg{fontscale} package, each font size, including the standard \LaTeX{} font size commands from \cs{tiny} to \cs{Huge}, has a font step, font scale, font size, and font baselineskip.
+The latter two parameters are the familiar first and second arguments to the low\-/level font command \cs{fontsize}\marg{dimen}\marg{skip}.
+(The font baselineskip, stored in the kernel command \cs{f@baselineskip}, should not be confused with the paragraph baselineskip \cs{baselineskip}.)
+The font scale and font step are different ways of describing the font size.
+The font scale is the relative font size; the ratio of the font size to \cs{normalsize}, which has a font scale of \num{1}.
+The font step is the number of font size gradations from \cs{normalsize}, which has a font step of \num{0}.
+Table~\ref{table:fontsteps} displays the font step of each font size command.
+
+\input{./fontscale-table-font-steps.tex}
+
+\subsection{Syntax}
+\label{subsec:syntax}
+
+This package defines some keys and commands that take as a value or argument a \meta{floating point expression}, \meta{integer expression}, \meta{dimen expression}, or \meta{skip expression}.
+This syntax has the same representation as the arguments to \cs{fpeval}, \cs{inteval}, \cs{dimeval}, and \cs{skipeval}, documented in \pkg{usrguide}.%
+\footnote{\url{https://ctan.org/pkg/usrguide}}
+
+
+\section{Keys}
+\label{sec:keys}
+
+This section documents the keys provided by the \pkg{fontscale} package.
+This package has no package options.
+Set the package keys using \cs{fontscalesetup}\marg{key\-/value list} (\S\ref{subsec:fontscalesetup}).
+
+\subsection{The typographic scale}
+\label{subsec:typographicscale}
+
+The font sizes of the font size commands from \cs{tiny} to \cs{Huge} are initially set by the key \Key{typographic\-/scale}.
+
+\Key{typographic-scale}
+ [%
+ classic-10pt$\,\vert\,$\allowbreak
+ classic-11pt$\,\vert\,$\allowbreak
+ classic-12pt$\,\vert\,$\allowbreak\hspace*{1.5em}%
+ musical%
+ ]
+ [classic-10pt]
+\newline
+\Key{classic-10pt}
+\newline
+\Key{classic-11pt}
+\newline
+\Key{classic-12pt}
+\nopagebreak\newline
+\Key{musical}
+
+The value of the key \Key{typographic\-/scale} must be \Value{classic\-/10pt}, \Value{classic\-/11pt}, \Value{classic\-/12pt}, or \Value{musical}.
+The initial value is \Value{classic\-/10pt}.
+Sets the font size of each font size command from \cs{tiny} to \cs{Huge} using a classic or musical typographic scale.
+These are common methods of choosing a set of document font sizes.
+The keys \Key{classic\-/10pt}, \Key{classic\-/11pt}, \Key{classic\-/12pt}, and \Key{musical} set the key \Key{typographic\-/scale} to the corresponding value.
+
+The classic typographic scale consists of the traditional font sizes
+\numlist{6;7;8;9;10;11;12;14;16;18;21;24;36;48;60;72}.%
+\footnote{See \S3.1 of \textit{The Elements of Typographic Style} by Robert Bringhurst.}
+They have been used since the sixteenth century and are the default font sizes on most computer software.
+Setting the value of the key \Key{typographic\-/scale} to \Key{classic\-/10pt}, \Key{classic\-/11pt}, or \Key{classic\-/12pt} sets the font size of each font size command from \cs{tiny} to \cs{Huge} to values based on their position in the classic typographic scale.
+The named point size\---\qtylist[list-final-separator={, or }]{10;11;12}{pt}\---is the font size of \cs{normalsize}.
+The font sizes of the other font size commands are the adjacent font sizes in the classic typographic scale.
+Table~\ref{table:classic} displays the font size of each font size command when using a classic typographic scale.
+
+\input{./fontscale-table-classic.tex}
+
+\Key{musical/base}[\meta{dimen expression}][10pt]%
+\nopagebreak\newline
+\Key{musical/ratio}[\meta{floating point expression}][2]%
+\nopagebreak\newline
+\Key{musical/notes}[\meta{integer expression}][5]
+
+The key \Key{typographic\-/scale}[musical] sets the font size of each font size command from \cs{tiny} to \cs{Huge} using a musical typographic scale.
+The font sizes are calculated using the formula:%
+\footnote
+ {%
+ I have referenced this article by Spencer Mortensen:
+ \newline
+ \url{https://spencermortensen.com/articles/typographic-scale/}%
+ }
+\begin{equation}\label{eq:musical}
+ f_i = f_0 \times r ^ { i / n }
+\end{equation}
+$f_i$ is the font size with font step~$i$.
+$f_0$ is the base font size.
+$n$ is the number of musical notes\---the number of font size gradations or steps above $f_0$.
+$r$ is the musical ratio, the ratio of the highest to the lowest note $ f_n / f_0 $.
+
+The key \Key{musical\slash{}base} sets the base font size to the value of \meta{dimen expression}, appending a default unit of \unit{pt}.
+The base font size is the font size of \cs{normalsize}.
+The key \Key{musical\slash{}ratio} sets the musical ratio to the result of computing the \meta{floating point expression}.
+The key \Key{musical\slash{}notes} sets the number of musical notes to the value of \meta{integer expression}.
+Table~\ref{table:musical} displays the font size of each font size command when using a musical typographic scale with the initial values.
+
+\input{./fontscale-table-musical.tex}
+
+\subsection{The baselineskip-size-ratio}
+\label{subsec:baselineskipsizeratio}
+
+The font baselineskips of the font size commands from \cs{tiny} to \cs{Huge} are initially set by the key \Key{baselineskip\-/size\-/ratio}.
+
+\Key{baselineskip-size-ratio}[\meta{floating point expression}][1.2]
+\KeepNextPar*
+
+Sets the font baselineskip of each font size command from \cs{tiny} to \cs{Huge} equal to its font size \texttimes{} the result of computing the \meta{floating point expression}.
+Sets the font baselineskip set by \cs{SetFontStep}, \cs{SetFontScale}, and \cs{SetFontSize} equal to the new font size \texttimes{} the result of computing the \meta{floating point expression} (\S\ref{subsec:fontsize}).
+
+
+\subsection{Overwriting the previous keys}
+\label{subsec:overwriting}
+
+This subsection documents keys for directly setting the font scales, font sizes, and font baselineskips of the font size commands from \cs{tiny} to \cs{Huge}.
+
+The user should take care to ensure that the lengths of the font sizes remain correctly ordered from \cs{tiny} to \cs{Huge}.
+This is important for typographic and syntactic consistency.
+If the font sizes are in the wrong order, \cs{fontscalesetup} will issue a warning and some package features may not work correctly.
+
+\Key{\meta{font size command}/scale}[\meta{floating point expression}][\meta{not set}]
+\KeepNextPar*
+
+Sets the font size of \meta{font size command} by setting its font scale to the result of computing the \meta{floating point expression}.
+Overwrites the font size set by the key \Key{typographic\-/scale}.
+The key \Key{normalsize\slash{}scale} is not defined.
+
+\Key{\meta{font size command}/size}[\meta{dimen expression}][\meta{not set}]
+\KeepNextPar*
+
+Sets the font size of \meta{font size command} to the value of \meta{dimen expression}, appending a default unit of \unit{pt}.
+Overwrites the font size set by the keys \Key{typographic\-/scale} and \Key{\meta{font size command}\slash{}scale}.
+
+\Key{\meta{font size command}/baselineskip}[\meta{skip expression}][\meta{not set}]
+\KeepNextPar*
+
+Sets the font baselineskip of \meta{font size command} to the value of \meta{skip expression}, appending a default unit of \unit{pt}.
+Overwrites the font baselineskip set by the key \Key{baselineskip\-/size\-/ratio}.
+
+\Key{\meta{font size command}}[\meta{dimen expression}]
+\nopagebreak\newline
+\Key{\meta{font size command}}[\meta{dimen expression}/\meta{skip expression}]
+
+Sets the keys \Key{\meta{font size command}\slash{}size}[\meta{dimen expression}] or \Key{\meta{font size command}\slash{}baselineskip}[\meta{skip expression}] in a condensed format.%
+\footnote
+ {%
+ The latter format resembles traditional typographic notation where the size and leading of a text can be expressed as, for example, \num{10}/\num{12} or \num{11}/\num{13}.
+ The number before\slash{}after the slash is the size\slash{}leading in units of \unit{pt}.%
+ }
+
+
+\section{Commands}
+\label{sec:commands}
+
+This section documents the commands provided by the \pkg{fontscale} package.
+
+\subsection{Setting the keys}
+\label{subsec:fontscalesetup}
+
+\cs{fontscalesetup} \sarg{} \marg{key-value list}
+\KeepNextPar*
+
+Sets and processes the \pkg{fontscale} package keys (\S\ref{sec:keys}) in \meta{key\-/value list} and then uses \cs{normalsize}.
+Adding the optional star first resets all the \pkg{fontscale} package keys to their initial values.
+Can be used mid\-/document.
+The effect is local to the current group.
+Does nothing, except issue a warning, if used in math mode.
+\cs{fontscalesetup} should typically be used only once in the preamble or omitted if the user is satisfied with the initial font sizes and font baselineskips.
+
+\subsection{Expandable commands}
+\label{subsec:expandable}
+
+\cs{CurrentFontStep}
+\nopagebreak\newline
+\cs{CurrentFontScale}
+\newline
+\cs{CurrentFontSize}
+\nopagebreak\newline
+\cs{CurrentFontBaselineskip}
+
+This package provides expandable commands that expand to the current font step, font scale, font size, or font baselineskip.
+They can be used for printing or within calculations.
+
+For clarity, \cs{CurrentFontStep} will be explained in detail.
+\cs{CurrentFontStep} initially tests if the current font size equals the font size of any font size command from \cs{tiny} to \cs{Huge}.
+If so, it expands to the font step of that font size command (Table~\ref{table:fontsteps}).
+If not and if the value of the key \Key{typographic\-/scale} is \Value{musical}, \cs{CurrentFontStep} expands to the current font step calculated from the musical typographic scale (Equation~\ref{eq:musical}).
+Otherwise, the current font step is undefined and \cs{CurrentFontStep} expands to nothing.
+
+Internally, \cs{CurrentFontStep}, \cs{CurrentFontScale}, and \cs{CurrentFontSize} rely on the kernel command \cs{f@size}.
+(\cs{f@size} stores the current font size in units of \unit{pt}, omitting the unit.)
+The low\-/level font command \cs{fontsize}\marg{dimen}\marg{skip} sets \cs{f@size} to the new font size before expanding its second argument.
+This means that, if used in \meta{skip}, \cs{CurrentFontStep}, \cs{CurrentFontScale}, and \cs{CurrentFontSize} will expand to the new value\---unless they are first expanded.
+This package provides \cs{SetFontSizeBaselineskip} as an alternative to \cs{fontsize} + \cs{selectfont} that avoids this issue (\S\ref{subsec:fontsize}).
+
+\cs{CurrentFontSizeCommand}
+\KeepNextPar*
+
+Tests if the current font size and current font baselineskip equal the font size and font baselineskip, respectively, of any font size command from \cs{tiny} to \cs{Huge}.
+If so, expands to the name of that font size command.
+This omits the backslash character and leaves only letters with catcode \num{11}.
+If not, expands to nothing.
+This package also provides a similar command \cs{PrintFontSizeCommand}, which is not expandable and includes the backslash character (\S\ref{subsec:debug}).
+
+\subsection{More font size commands}
+\label{subsec:fontsize}
+
+This package provides additional font size commands for use only in special cases.
+Users should prefer the standard \LaTeX{} font size commands from \cs{tiny} to \cs{Huge} for typographic and syntactic consistency.
+
+\cs{SetFontStep} \sarg{} \marg{floating point expression}
+\KeepNextPar*
+
+Sets the font size by setting the font step to the result of computing the \meta{floating point expression}.
+Adding the optional star instead increases the current font step by the result of computing the \meta{floating point expression} or issues an error if the current font step is undefined (as explained for \cs{CurrentFontStep} in \S\ref{subsec:expandable}).
+Sets the font baselineskip equal to the new font size \texttimes{} the value of the key \Key{baselineskip\-/size\-/ratio}.
+
+\listheading{Three exceptions:}
+\begin{itemize}
+ \item
+ The font step must equal the font step of any font size command from \cs{tiny} to \cs{Huge} (Table~\ref{table:fontsteps}) unless the value of the key \Key{typographic\-/scale} is \Value{musical}.
+ \cs{SetFontStep} will issue an error if the font step is undefined (as explained for \cs{CurrentFontStep} in \S\ref{subsec:expandable}).
+ \item
+ If the font step equals the font step of any font size command from \cs{tiny} to \cs{Huge}, then that font size command will be used directly.
+ \item
+ Does nothing, except issue a warning, if used in math mode.
+\end{itemize}
+
+\cs{SetFontScale} \sarg{} \marg{floating point expression}
+\KeepNextPar*
+
+Sets the font size by setting the font scale to the result of computing the \meta{floating point expression}.
+Adding the optional star instead increases the current font scale by the result of computing the \meta{floating point expression}.
+Sets the font baselineskip equal to the new font size \texttimes{} the value of the key \Key{baselineskip\-/size\-/ratio}.
+Does nothing, except issue a warning, if used in math mode.
+
+\cs{SetFontSize} \sarg{} \marg{dimen expression}
+\KeepNextPar*
+
+Sets the font size to the value of \meta{dimen expression}, appending a default unit of \unit{pt}.
+Adding the optional star instead increases the current font size by the result of \meta{dimen expression}, appending a default unit of \unit{pt}.
+Sets the font baselineskip equal to the new font size \texttimes{} the value of the key \Key{baselineskip\-/size\-/ratio}.
+Does nothing, except issue a warning, if used in math mode.
+
+\cs{ScaleFont} \marg{floating point expression}
+\KeepNextPar*
+
+Sets the font size equal to the current font size \texttimes{} the result of computing the \meta{floating point expression}.
+Sets the font baselineskip equal to the current font baselineskip \texttimes{} the result of computing the \meta{floating point expression}.
+Does nothing, except issue a warning, if used in math mode.
+
+\cs{SetFontSizeBaselineskip} \marg{dimen expression} \marg{skip expression}
+\KeepNextPar*
+
+Sets the font size to the value of \meta{dimen expression}, appending a default unit of \unit{pt}.
+Sets the font baselineskip to the value of \meta{skip expression}, appending a default unit of \unit{pt}.
+Does nothing, except issue a warning, if used in math mode.
+Can be used as an alternative to \cs{fontsize} + \cs{selectfont} as discussed in \S\ref{subsec:expandable}.
+
+\subsection{Setting only the font baselineskip}
+\label{subsec:setfontbaselineskip}
+
+\cs{SetFontBaselineskip} \sarg{} \marg{skip expression}
+\KeepNextPar*
+
+Sets the font baselineskip to the value of \meta{skip expression}, appending a default unit of \unit{pt}.
+Adding the optional star instead increases the current font baselineskip by the result of \meta{skip expression}, appending a default unit of \unit{pt}.
+Does not change the font size.
+Does nothing, except issue a warning, if used in math mode.
+
+\subsection{Testing and debugging}
+\label{subsec:debug}
+
+The commands documented here are intended primarily for testing and debugging.
+I have used them often when developing this package so I think users will find them helpful.
+
+\cs{PrintFontSizeParameters}
+\KeepNextPar*
+
+Prints the current font size parameters\---the font step, font scale, font size, and font baselineskip.
+The current font step will be left blank if it is undefined (as explained for \cs{CurrentFontStep} in \S\ref{subsec:expandable}).
+
+\cs{PrintAllFontSizeParameters}
+\KeepNextPar*
+
+Prints the font step, font scale, font size, and font baselineskip of each font size command from \cs{tiny} to \cs{Huge}.
+
+\cs{PrintSampleText} \sarg{} \marg{text}
+\KeepNextPar*
+
+Prints \meta{text} in each font size ordered from \cs{tiny} to \cs{Huge} each followed by a paragraph break.
+\meta{text} can contain \cs{par} tokens.
+Adding the optional star reverses the order of the font sizes.
+One useful way of printing sample text is \cs{PrintSampleText}\allowbreak\texttt{\{\cs{PrintFontSizeCommand}:\allowbreak\textvisiblespace\allowbreak\cs{PrintFontSizeParameters}\}}.
+
+\cs{PrintFontSizeCommand}
+\KeepNextPar*
+
+Tests if the current font size and current font baselineskip equal the font size and font baselineskip, respectively, of any font size command from \cs{tiny} to \cs{Huge}.
+If so, prints the name of that font size command, including the backslash character.
+If not, prints \enquote{\string\undefined}.
+This package also provides a similar command \cs{CurrentFontSizeCommand}, which is expandable and omits the backslash character (\S\ref{subsec:expandable}).
+
+
+\section{Programming}
+\label{sec:programming}
+
+This section documents the \pkg{expl3} programming support provided by the \pkg{fontscale} package.
+
+\subsection
+ {%
+ Compatibility with
+ \texorpdfstring
+ {\cs{text_purify:n}}
+ {\textbackslash{}text\_purify:n}%
+ }
+\label{subsec:textpurify}
+
+\cs{text_purify:n} will correctly remove the formatting commands defined by this package, including the commands documented in \S\ref{subsec:fontscalesetup}, \S\ref{subsec:fontsize}, and \S\ref{subsec:setfontbaselineskip}.
+
+\subsection{Public functions and variables}
+\label{subsec:publicexpl3}
+
+This package does not define any public \pkg{expl3} functions.
+
+This package defines public \pkg{expl3} variables that store the font step, font scale, font size, and font baselineskip of each font size command from \cs{tiny} to \cs{Huge}.
+These variables should never be modified directly.
+Their values should be changed only by \cs{fontscalesetup}.
+
+Each takes the form:
+
+\verb|\c_fontscale_|\meta{font size command}\verb|_step_fp|
+\nopagebreak\newline
+\verb|\l_fontscale_|\meta{font size command}\verb|_scale_fp|
+\newline
+\verb|\l_fontscale_|\meta{font size command}\verb|_size_dim|
+\nopagebreak\newline
+\verb|\l_fontscale_|\meta{font size command}\verb|_baselineskip_skip|
+
+Exception:
+\cs{l_fontscale_normalsize_scale_fp} is not defined.
+The font scale of \cs{normalsize} is stored in \cs{c_fontscale_normalsize_scale_fp}.
+
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/framedsyntax/FramedSyntax.dtx b/macros/latex/contrib/framedsyntax/FramedSyntax.dtx
new file mode 100644
index 0000000000..7a7fba17b3
--- /dev/null
+++ b/macros/latex/contrib/framedsyntax/FramedSyntax.dtx
@@ -0,0 +1,930 @@
+% \iffalse
+% !TEX encoding = UTF-8 Unicode
+%<*internal>
+\begingroup
+\input docstrip.tex
+\keepsilent
+\preamble
+
+ Copyright (C) 2024 Claudio Beccari all rights reserved.
+
+ Distributable under the LaTeX Project Public License,
+ version 1.3c or higher (your choice). The latest version of
+ this license is at: http://www.latex-project.org/lppl.txt
+
+\endpreamble
+\postamble
+This Work has the status of `maintained'
+
+The Current Maintainer is Claudio Beccari
+
+This work consists of this file FramedSyntax.dtx,
+and the derived files FramedSyntax.sty and FramedSyntax.pdf.
+\endpostamble
+
+\askforoverwritefalse
+
+\generate{\file{FramedSyntax.sty}{\from{FramedSyntax.dtx}{package}}}
+
+\def\tmpa{plain}
+\ifx\tmpa\fmtname\endgroup\expandafter\bye\fi
+\endgroup
+%</internal>
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{FramedSyntax.dtx}%
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[2019/01/01]
+%<package>\ProvidesPackage{FramedSyntax}%
+ [2024-09-04 v.0.2.8 Typeset command syntax within a special frame]
+%<*driver>
+\documentclass{ltxdoc}\errorcontextlines=100
+\hfuzz 10pt
+\usepackage[utf8]{inputenc}% not really necessary
+\usepackage{lmodern}% scalable fonts
+\usepackage{mflogo}
+\usepackage{multicol, amsmath, fancyvrb, graphicx, verbatim}
+\usepackage{etoolbox, enumitem, xspace, xcolor, FramedSyntax
+}
+%
+\providecommand*\diff{\mathop{}\!\mathrm{d}}
+\providecommand\file{}
+\renewcommand*\file[1]{{\normalfont\texttt{#1}}}
+\providecommand\prog{}
+\renewcommand*\prog[1]{{\normalfont\texttt{#1}}}
+\providecommand\conta{}
+\renewcommand*\conta[1]{\texttt{\slshape#1}}
+\providecommand\cs{}
+\renewcommand\cs[1]{{\normalfont\texttt{\char92#1}}}
+\renewcommand\meta[1]{{\normalfont\textlangle\textit{#1}\textrangle}}
+\renewcommand\marg[1]{\texttt{\{\meta{#1}\}}}
+\providecommand\Marg{}
+\renewcommand*\Marg[1]{\texttt{\{#1\}}}
+\providecommand\oarg{}
+\renewcommand*\oarg[1]{\texttt{[\meta{#1}]}}
+\providecommand\Oarg{}
+\renewcommand*\Oarg[1]{\texttt{[#1]}}
+\providecommand\aarg{}
+\renewcommand*\aarg[1]{\texttt{<\meta{#1}>}}
+\providecommand\Aarg{}
+\renewcommand*\Aarg[1]{\texttt{<#1>}}
+\providecommand\parg{}
+\renewcommand*\parg[1]{\texttt{(\meta{#1})}}
+\providecommand\Parg{}
+\renewcommand*\Parg[1]{\texttt{(#1)}}
+\providecommand\pack{}
+\renewcommand*\pack[1]{{\textsf{#1}}}
+\let\class\pack
+\providecommand\opt{}
+\renewcommand*\opt[1]{{\normalfont\textsl{#1}}}\let\opz\opt
+\providecommand\env{}
+\renewcommand*\env[1]{{\normalfont\textit{\bfseries#1}}}\let\amb\env
+
+\providecommand\TB{\mbox{\normalfont\slshape TUGboat}\xspace}
+
+\definecolor{verdeguit}{rgb}{0, 0.40, 0}
+\def\GuIT{\mbox{\color{verdeguit}\def\I{\textcolor{black}{I}}%
+ \fontfamily{lmr}\fontseries{m}\fontshape{sc}\selectfont
+g\raisebox{-0.715ex}{\kern-0.26em u}\kern-0.13em\I\kern-0.14em t}\xspace}
+\RequirePackage{etoolbox}
+
+\makeatletter
+
+\AfterEndPreamble{%
+\DeclareRobustCommand{\TeX}{T\kern-.1667em
+ \lower.5ex\hbox{E}\kern-.125emX\@\xspace}% \TeX
+\DeclareRobustCommand{\LaTeX}{L\kern-.36em%
+ {\sbox\z@ T%
+ \vbox to\ht\z@{\hbox{\check@mathfonts
+ \fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ A}%
+ \vss}%
+ }%
+ \kern-.15em\TeX
+ }%
+\DeclareRobustCommand{\LaTeXe}{L\kern-.36em%
+ {\sbox\z@ T%
+ \vbox to\ht\z@{\hbox{\check@mathfonts
+ \fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ A}%
+ \vss}%
+ }%
+ \kern-.15em\TeX\kern-0.3em$_{\textstyle\mathrm{2e}}$
+ }%
+}
+\makeatother
+
+\DeclareRobustCommand*\TeXLive{\TeX\ Live\xspace}
+\DeclareRobustCommand*\MikTeX{Mik\TeX}
+\DeclareRobustCommand*\MacTeX{Mac\TeX}
+\DeclareRobustCommand*\pdfLaTeX{pdf\/\LaTeX}
+\DeclareRobustCommand*\LuaLaTeX{Lua\LaTeX}
+\DeclareRobustCommand*\XeLaTeX{X\ifdim\fontdimen1\font=0pt
+ \kern-0.15em\fi\lower.5ex\hbox{\rotatebox[origin=c]{180}{E}}%
+ \ifdim\fontdimen1\font=0pt\kern-0.15em\else\kern-0.275em\fi
+ \LaTeX}
+\DeclareRobustCommand*\TikZ{Ti\emph{k}Z\xspace}
+
+%\unless\ifcsname Gr@phGrid\endcsname
+%\let\originalGraphGrid\GraphGrid
+%\RenewDocumentCommand\GraphGrid{r() d()}{%
+%\IfValueTF{#1}{\put(#1){\originalGraphGrid(#2)}}%
+% {\put(0,0){\originalGraphGrid(#2)}}}\fi
+
+\begin{document}\errorcontextlines=100
+\GetFileInfo{FramedSyntax.dtx}
+\title{The \textsf{FramedSyntax} package}
+\author{Claudio Beccari\\[1ex]\texttt{claudio.beccari(at)gmail.com}}
+\date{Version \fileversion~--~Last revised \filedate.}
+\maketitle
+\columnseprule=0.4pt
+\begin{multicols}{2}
+ \tableofcontents
+ \end{multicols}
+ \DocInput{FramedSyntax.dtx}
+\end{document}
+%</driver>
+% \fi
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \section*{Preface}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The \pack{FramedSyntax} package contains the necessary code to
+% implement a framed block of text that is emphasised compared to
+% the normal text. I found this technique very handy for writing
+% the documented \TeX files that describe the new packages that
+% I create, and the user manuals of those packages. As a member
+% of the Italian Tug I also wrote a number of thematic guides for
+% the Italian users; they seem to appreciate that the syntax of
+% \LaTeX, classes and packages are written with these framed
+% emphasised blocks, clearly emerging form the surrounding text.
+%
+% This is why I would like to share my package with the other
+% \TeX users. May be they would like to use the same approach.
+% I perfectly know that there are other packages and classes to
+% write down documented \TeX files, such as those that
+% traditionally have a \file{.dtx} file extension. Some of them
+% are really powerful; I wonder why I keep using the
+% \pack{docstrip.tex} file and the \class{ltxdoc} class to write
+% down my documented \TeX files. The first simplest answer is
+% “Because I am used to it”. The second is “Because I don't like
+% to use too powerful packages, such as, for example,
+% \pack{tikz}”; this package is a beautiful one, extremely
+% powerful, but it is memory consuming, and computer blocking
+% due to exhausted \TeX working memory occurred to me more often
+% than I could stand.
+%
+% Dear User: if you do not like the name \pack{FramedSyntax}
+% downloaded with a full and updated TeX System installation,
+% copy this file to your local \texttt{texmf} directory, and
+% change the file name to another name that fits your
+% preferences. Never change the names of the \TeX System files
+% even if you have the administrator privileges. In any case,
+% since this work was inspired by a style file of mine written
+% in Italian, this package already contains an alias
+% \amb{Sintassi} environment with the Italian name.
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\section{What the \pack{FramedSyntax.sty} package can do}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The user can use this package and can specify the package
+% options; these include the colours
+% of the frame, the text, the background; the frame thickness and
+% colour; the frame-text gap; the text font family, series,
+% shape, and size. These settings can be global or local,
+% therefore you can select some of these settings for specific
+% syntax instances.
+%
+% Most often than not, you'll be using the default text fonts for
+% the whole document. Please do not use the old Computer Modern
+% fonts; they are not scalable, but may be chosen at a discrete
+% set of sizes. The Latin Modern ones are stepwise continuously
+% scalable, thanks to the scalable optical sizes they are built
+% with. Other fonts, such as the Times, the Palatino, the
+% Libertinus ones, and many others are continuously scalable
+% over wide ranges.
+%
+% While describing and commenting the code, you will read more
+% detailed comments on such font issues.
+%
+% In general the syntax frame fills up the whole \cs{textwidth};
+% in reality it should fill up the current \cs{linewidth};
+% within a list this frame will be shorter and indented as the
+% list text.
+%
+% This framed syntax box will not split across a page break;
+% matter of facts, the next section example height is too large
+% to fit in the page, and a large white vertical space filled
+% this page, in order to have the framed box completely in within
+% the next section. If you need long framed texts, you should
+% preferably use the \pack{tcolorbox} package (which relies on
+% the extremely powerful \pack{tikz} one) and performs much
+% better than my simple package, in particular it can split its
+% boxes across page breaks.
+%
+% Warning: This small package does similar things as the
+% \pack{wrapfig2} package, but such packages are not supposed
+% to interfere with each other.
+%
+% \begin{FramedSyntax}
+% \texttt{\% !TEX TS-program = } \meta{LaTeX based compiler}
+% \texttt{\% !TEX encoding = UTF-8 Unicode}
+% ~
+% \cs{documentclass}\oarg{options}\marg{class}
+% \dots\ \meta{Packages}
+% \cs{usepackage}\oarg{key=value options}\Marg{FramedSyntax}
+% \dots\ \meta{Other packages}
+% ~
+% \cs{begin}\Marg{document}
+% \dots\ \meta{A part of document body}
+% \cs{begin}\Marg{FramedSyntax}
+% \dots\ \meta{Some syntax lines}
+% \cs{end}\Marg{FramedSyntax}
+% \dots\ \meta{Further document body}
+% ~
+% \cs{end}\Marg{document}
+% \end{FramedSyntax}
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\section{Usage example}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The above framed syntax box contains a sample for using
+% this package.\footnote{You may notice that the framed box width
+% is a little shorter than the \cs{linewidth}, exactly 10\,pt
+% shorter. This happens with this particular documentation class
+% \class{ltxdoc}: I was not able to find the cause, but
+% several tests with other classes proved to perform as
+% expected.}
+%
+% In order to use this package a user should use this syntax.
+% The above elementary example was done with the following
+% source code.
+%\begin{Verbatim}[gobble=1]
+% \begin{FramedSyntax}
+% \texttt{\% !TEX TS-program = } \meta{LaTeX based compiler}
+% \texttt{\% !TEX encoding = UTF-8 Unicode}
+% ~
+% \cs{documentclass}\oarg{options}\marg{class}
+% \dots\ \meta{Packages}
+% \cs{usepackage}\oarg{key=value options}\Marg{FramedSyntax}
+% \dots\ \meta{Other packages}
+% ~
+% \cs{begin}\Marg{document}
+% \dots\ \meta{A part of document body}
+% \cs{begin}\Marg{FramedSyntax}
+% \dots\ \meta{Some syntax lines}
+% \cs{end}\Marg{FramedSyntax}
+% \dots\ \meta{Further document body}
+% ~
+% \cs{end}\Marg{document}
+% \end{FramedSyntax}
+%\end{Verbatim}
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\section{Indexing}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The syntax macros can send their arguments to an \file{.idx}
+% file. If package \pack{imakeidx} is loaded in the preamble
+% and the \cs{makeindex} macro (with its own options) is used
+% to activate the indexing process, the index is created
+% without the need of manually running the necessary programs
+% to transform the information collected into the \file{.idx}
+% to the proper code into the \file{.ind} file.
+%
+% For example the following source code
+%\begin{Verbatim}[gobble=1]
+% % !TEX TS-program = pdflatex
+% % !TEX encoding = UTF-8 Unicode
+% \documentclass[12pt]{article}
+% \usepackage{imakeidx}\makeindex
+% \usepackage{FramedSyntax}
+% \usepackage{kantlipsum}
+%
+% \begin{document}
+% \kant[1]
+% \begin{FramedSyntax}
+% \cs{Large}
+% \end{FramedSyntax}
+%
+% \kant[2-3]
+% \begin{FramedSyntax}
+% \cs{small}
+% \end{FramedSyntax}
+%
+% \kant[4]
+%
+% \printindex
+%
+% \end{document}
+%\end{Verbatim}
+% produces a three page article containing dummy test,
+% with a framed syntax box in each page. Both framed commands,
+% introduced by means of the \cs{cs} command, are listed in the
+% third page, correctly pointung to page~1 end page~2.
+% Users are suggested to copy the above short code, save it in a
+% testing \file{.tex} file, and compile it with \prog{pdfLaTeX};
+% with just one run the file gets compiled together with its
+% index.
+%
+% \CheckSum{650}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\StopEventually{}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\section{The documented code}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Here the package code is defined and commented.
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\subsection{The necessary packages}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%\pack{FramedSyntax} relies on a number of other packages;
+% they are the following:
+% \begin{macrocode}
+\IfPackageLoadedF{pict2e}{\RequirePackage{pict2e}}
+\IfPackageLoadedF{etoolbox}{\RequirePackage{etoolbox}}
+\IfPackageLoadedF{xkeyval}{\RequirePackage{xkeyval}}
+\IfPackageLoadedF{xcolor}{\RequirePackage{xcolor}}
+%
+% \end{macrocode}
+% The last three packages are loadeed for obvious reasons, since
+% they are connected to \LaTeX programming and the package
+% specific functionalities.
+% May be the most puzzling one is \pack{pict2e}; it is loaded in
+% order to use its low level commands used to draw the frame
+% with rounded corners, i.e. the lines and the corner arcs;
+% they can be coloured and their thickness may be specified;
+% they form closed paths that can be stroked in a specific
+% colour or filled with another specific colour.
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\subsection{The syntax macros}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% These numerous commands are used to typeset in a specific
+% style the command arguments, the files, classes, packages,
+% options names; commands, and so on. If in any source file
+% indexing is active, each command sends the relevant information
+% to the \file{.idx} file.
+%
+% All package internal commands have names that are prefixed with
+% the string \texttt{FS}, so as to avoid conflicts with similar
+% named commands defined by other classes or packages. These are
+% not user commands, they are only for internal use. At the
+% beginning of the \amb{FramedSyntax} environment all user
+% commands (that users input without this prefix) will be let to
+% the internal commands, so that no interference exists and
+% no clash errors take place.
+%
+% Notice the non prefixed names: \cs{marg} and \cs{Marg} (and
+% its siblings): with the lower case initial letter the
+% syntax \emph{mandatory} argument is printed in italics
+% surrounded by angle brackets; with an uppercase initial letter
+% the syntax \emph{mandatory} argument is printed in teletype
+% and is not surrounded by angle brackets.
+% Similarly syntax \emph{optional} arguments are typeset within
+% square brackets but the initial letter case specifies the
+% difference between an argument to be entered by the user,
+% and an argument with a specific value.
+%
+% Since initially I wrote the package for myself, some unusual
+% object names are spelled in mixed languages: for example it is
+% evident that \texttt{marg} stands for \emph{mandatory
+% argument} without any language mixture; the Italian word
+% \texttt{stile} evidently stands for the English word
+% \emph{style}; similarly \texttt{allineamento} stands for
+% \emph{alignement}; \texttt{numeristyle} is in mixed languages
+% but obviously it stands for \emph{numbers style}; possibly the
+% only one, that may puzzle a non Italian user, is the word
+% \texttt{chiave} that stands for \emph{key}.
+%
+% Entries for a possible index are already created in such a way
+% as to use the correct language for the index in Italian or the
+% index in English. Should another user prefer to create the
+% index in a different language, such a user is free to redefine
+% in his/her document the indexing macros defined in this
+% package>
+% \begin{macrocode}
+\providecommand*\FSmeta[1]{\textnormal{$\langle$\textit{#1}$\rangle$}}
+\providecommand*\FSmarg[1]%
+ {\textnormal{\texttt{\char123}\FSmeta{#1}\texttt{\char125}}}
+\providecommand*\FSoarg[1]{\textnormal{\texttt{[}\FSmeta{#1}\texttt{]}}}
+\providecommand*\FSArg[1]{\textnormal{\texttt{\{#1\}}}}
+\let\FSMarg\FSArg
+\providecommand*\FSOarg[1]{\textnormal{\texttt{[#1]}}}
+\def\GT@splitargs#1,#2!{\def\@tempA{#1}\def\@tempB{#2}}
+\providecommand\FSgarg[1]{\textnormal{\GT@splitargs#1!\%
+ \texttt{(}\FSmeta{\@tempA}\texttt{,}\FSmeta{\@tempB}\texttt{)}}}
+\providecommand*\FScomando[1]{\textnormal{\texttt{\string#1}}}
+\providecommand*{\FScs}[1]%
+{\textnormal{\texttt{\char92#1}\index{#1@\texttt{\char92#1}|textsc}}}
+\let\FScsindex\FScs
+%
+\providecommand*\SFSambiente[2]{%
+\FScomando{\begin}\FSmarg{#1}\FSoarg{#2}\,\dots
+ \FScomando{\end}\FSmarg{#1}}
+\providecommand*\DFSambiente[3]{%
+ \FScomando{\begin}\FSmarg{#1}\FSoarg{#2}\FSoarg{#3}\,\dots
+ \FScomando{\end}\FSmarg{#1}}
+\providecommand*\BFSambiente[1]{\FScomando{\begin}\FSmarg{#1}}
+\providecommand*\EFSambiente[1]{\FScomando{\end}\FSmarg{#1}}
+\IfPackageLoadedF{cfr-lm}{\let\texttm\texttt \let\texttv\texttt}
+%
+\DeclareRobustCommand*\FSambstyle[1]{%
+ {\normalfont\textsf{\slshape#1}}}
+\DeclareRobustCommand*\FSclassstyle[1]{%
+ {\normalfont\texttv{\itshape#1}}}
+\DeclareRobustCommand*\FSfilestyle[1]{%
+ {\normalfont\texttm{\texttt{#1}}}}
+\DeclareRobustCommand*\FSpackstyle[1]{%
+ {\normalfont\texttm{\ifbool{PDFTeX}{\textit}{\itshape}{#1}}}}%
+\DeclareRobustCommand*\FSprogstyle[1]{{\normalfont\textsf{#1}}}
+\DeclareRobustCommand*\FSprog[1]{\FSprogstyle{#1}%
+\iflanguage{english}{\index{program!#1@\FSprogstyle{#1}|textsc}}%
+ {\index{programma!#1@\FSprogstyle{#1}|textsc}}}%
+\DeclareRobustCommand*\FSpack[1]{\FSpackstyle{#1}%
+\iflanguage{english}{\index{package!#1@\FSpackstyle{#1}|textsc}}%
+ {\index{pacchetto!#1@\FSpackstyle{#1}|textsc}}}
+\DeclareRobustCommand*\FSclass[1]{\FSclassstyle{#1}%
+ \iflanguage{english}{\index{class!#1@\FSclassstyle{#1}|textsc}}%
+ {\index{classe!#1@\FSclassstyle{#1}|textsc}}}%
+\DeclareRobustCommand*\file[1]{\FSfilestyle{#1}%
+ \index{file!#1@\FSfilestyle{#1}|textsc}}%
+\DeclareRobustCommand*\FSamb[1]{\FSambstyle{#1}%
+ \iflanguage{english}%
+ {\index{environment!#1@\FSambstyle{#1}|textsc}}%
+ {\index{ambiente!#1@\FSambstyle{#1}|textsc}}}%
+\DeclareRobustCommand*\FSopzstyle[1]{%
+ {\normalfont\textsf{\slshape{#1}}}}%
+\DeclareRobustCommand*\FScontastyle[1]{{\normalfont\texttm{#1}}}
+\DeclareRobustCommand*\FSstilestyle[1]{{\normalfont\texttm{#1}}}
+\DeclareRobustCommand*\FSnumeristyle[1]{{\normalfont\texttm{#1}}}
+\DeclareRobustCommand*\FSumisurastyle[1]{{\normalfont\texttm{#1}}}
+\DeclareRobustCommand*\FSchiavestyle[1]{{\normalfont\texttm{#1}}}
+\DeclareRobustCommand*\FSdescrittorestyle[1]{{\normalfont\texttm{#1}}}
+\DeclareRobustCommand*\FSposizionestyle[1]{{\normalfont\texttm{#1}}}
+\DeclareRobustCommand*\FSallineamentostyle[1]{{\normalfont\texttm{#1}}}
+%
+\DeclareRobustCommand*\FSopz[1]{\opzstyle{#1}%
+ \iflanguage{english}{\index{option!#1@\FSopzstyle{#1}|textsc}}%
+ {\index{opzione!#1@\opzstyle{#1}|textsc}}}%
+\DeclareRobustCommand*\FSconta[1]{\Fcontastyle{#1}%
+ \iflanguage{english}{\index{counter!#1@\FScontastyle{#1}|textsc}}%
+ {\index{contatore!#1@\FScontastyle{#1}|textsc}}}
+\DeclareRobustCommand*\FSstile[1]{\FSstilestyle{#1}%
+ \iflanguage{english}{\index{page style!#1@\FSstilestyle{#1}|textsc}}%
+ {\index{stile della pagina!#1@\FSstilestyle{#1}|textsc}}}
+\DeclareRobustCommand*\FSnumeri[1]{\FSnumeristyle{#1}%
+ \iflanguage{english}{\index{numbering!#1@\FSnumeristyle{#1}|textsc}}%
+ {\index{numerazione!#1@\FSnumeristyle{#1}|textsc}}}
+\DeclareRobustCommand*\FSumisura[1]{\FSumisurastyle{#1}%
+ \iflanguage{english}{measuring unit!#1@\FSumisurastyle{#1}|textsc}%
+ {\index{unità di misura!#1@\FSumisurastyle{#1}|textsc}}}
+\DeclareRobustCommand*\FSchiave[1]{\FSchiavestyle{#1}%
+ \iflanguage{english}{\index{key!#1@\FSchiavestyle{#1}|textsc}}%
+ {\index{chiave!#1@\chiavestyle{#1}|textsc}}}
+\DeclareRobustCommand*\FSdescrittore[1]{\FSdescrittorestyle{#1}%
+ \iflanguage{english}%
+ {\index{column descriptor!#1@\FSdescrittorestyle{#1}|textsc}}%
+ {\index{descrittore di colonna!#1@\FSdescrittorestyle{#1}|textsc}}}
+\DeclareRobustCommand*\FSposizione[1]{\FSposizionestyle{#1}%
+ \iflanguage{english}%
+ {\index{floating object position!#1@\FSposizionestyle{#1}|textsc}}%
+ {\index{posizione degli oggetti flottanti!#1@\FSposizionestyle{#1}|textsc}}}%
+\DeclareRobustCommand*\FSallineamento[1]{FS\allineamentostyle{#1}%
+ \iflanguage{english}%
+ {\index{allignment code!#1@\FSallineamentostyle{#1}|textsc}}%
+ {\index{codice di allineamento!#1@\FSallineamentostyle{#1}|textsc}}}
+%
+% \end{macrocode}
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\subsection{Register and colour definitions}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Here we define some length and dimension registers.
+% They will be used by the local commands and environments.
+% Length \cs{insertwidth} might be already defined, therefore we
+% test this possibility.
+% \begin{macrocode}
+\newlength\SIfrthick
+\newlength\SIfrgap
+\newlength\SIfrwidth
+\newlength\SIfrheight
+\ifcsdef{insertwidth}{}{\newlength\insertwidth}
+\newlength\SIXR \newlength\SIYD
+\newlength\SIXL \newlength\SIYU
+\newdimen\radius
+\newdimen\framewidth
+
+\definecolor{SIbackground}{rgb}{0.95,0.95,0.95}
+\definecolor{SIframe}{rgb}{0.1,0.1,0.1}
+\definecolor{SItext}{rgb}{0,0,0}
+
+% \end{macrocode}
+% The default background color is a very light gray; the default
+% frame colour is a very dark gray; the default text colour is
+% just black. Such colours are deemed suitable for the
+% application of the framed syntax box, but when necessary users
+% can use the \cs{textcolor} command to emphasise specific
+% phrases.
+%
+% As it can be seen, these colours are defined by means of the
+% colour defining macros of the \pack{xcolor} package.
+% They define some default colours; but the next commands
+% redefine them at the user choice; actually the user shall
+% specify some \textit{key = value} options to the main syntax
+% environment.
+% \begin{macrocode}
+\def\SetSIbgd#1{\colorlet{SIbackground}{#1}}
+\def\SetSIfrm#1{\colorlet{SIframe}{#1}}
+\def\SetSItxt#1{\colorlet{SItext}{#1}}
+
+% \end{macrocode}
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\subsection{Option settings}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The next code is the strength of the package; the definition
+% of the option settings. They form an option family defined by
+% the angle brackets delimited string \texttt{sintassi}.
+% Therefore they cannot be redefined by any other class or
+% package unless the above family name is used.
+% \begin{macrocode}
+\DeclareOptionX<sintassi>{fboxrule}[1pt]{\fboxrule=#1}
+\DeclareOptionX<sintassi>{fboxsep}[1ex]{\fboxsep=#1}
+\DeclareOptionX<sintassi>{framecolor}[SIframe]{\SetSIfrm{#1}}
+\DeclareOptionX<sintassi>{backgroundcolor}[SIbackground]{\SetSIbgd{#1}}
+\DeclareOptionX<sintassi>{fontstyle}[\normalfont]{#1}
+\DeclareOptionX<sintassi>{radius}[\fboxsep]{\radius=#1}
+\DeclareOptionX<sintassi>{insertionwidth}[\linewidth]{\insertwidth=#1}
+
+\DeclareOptionX*{%
+ \packageWarning{FramedSyntax}{`\CurrentOption' ignored}%
+}
+
+% \end{macrocode}
+% Notice that the option defining macro \cs{DeclareOptionX}
+% is created by the \pack{keyvalue} package in a simplified way,
+% so as to imitate the \LaTeXe syntax.
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\subsection{Activate all options}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% With just two macros we activate all options of family
+% \texttt{sintassi}
+% \begin{macrocode}
+\ExecuteOptionsX<sintassi>{%
+ fboxrule,
+ fboxsep,
+ framecolor,
+ backgroundcolor,
+ fontstyle,
+ radius,
+ insertionwidth
+}
+\ProcessOptionsX*\relax
+
+% \end{macrocode}
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{A couple of useful local macros}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The following macros are generally useful for the end users;
+% the first one provides a simple means to scale the font size
+% to any specified integer or fractional value. It comes useful
+% when a line contained in a framed syntax box is too long and
+% gets broken at the end of the box measure. According where the
+% line is broken there are two ways to correct the source file:
+%\begin{itemize}
+%\item
+% the user choses the best point where to break the line,
+% inserts an explicit comment character (|\%|)
+% at the end of the broken line and inserts a horizontal space
+% at the beginning of the remaining part of the broken line.
+%\item
+% At the beginning of the environment body the user may insert a
+% \cs{setfontsize} selecting the specific font size at a smaller
+% integer or fractional value than the normal text size.
+%\end{itemize}
+% This \cs{setfontsize} macro accepts two different syntaxes in
+% order to reach the same result: For example:
+%
+%\verb|\setfontsize{9.5}[1.1]|\par
+%\verb|\setfontsize[1.1]{9.5}|
+%
+% In any case the base line skip value is optional and its
+% default value is 1.2 times the font size. Actually the
+% optional value is not the base line skip value, but it is
+% the \cs{linestretch} value, i.e. the ratio between the desired
+% base line skip and the font size.
+%
+% The second macro exploits the \pack{etoolbox} functionalities
+% to define a user macro that activates an internal native \TeX
+% macro protected by a |%| character.
+% \begin{macrocode}
+\providecommand\setfontsize{}
+\RenewDocumentCommand\setfontsize{O{1.2} m O{#1}}{%
+ \fontsize{#2}{\fpeval{#1*#2}}\selectfont}
+
+\providecommand\strippt{}
+\renewcommand\strippt[1]{\csuse{strip@pt}#1}
+
+% \end{macrocode}
+%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{The framed box requires several settings}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The following macro \cs{framedbox} in a certain sense is the
+% heart of the whole construction of the \amb{FramedSyntax}
+% environment. It requires 5 arguments, four mandatory ones and
+% one optional. In order they are as follows
+% \begin{enumerate}
+% \item[\texttt{\#1}]
+% mandatory: the width of the box/
+%
+% \item[\texttt{\#2}]
+% mandatory: the thickness of the frame.
+%
+% \item[\texttt{\#3}]
+% mandatory: the gap width between the frame and the contents
+% of the box.
+%
+% \item[\texttt{\#4}]
+% optional: the radius of curvature of the box corners.
+%
+% \item[\texttt{\#5}]
+% mandatory: the text to be included within the framed box
+% \end{enumerate}
+% Although the corner radius may be chosen, it is suggested to
+% avoid specifying this optional parameter; its default value
+% equals the gap width; if the frame thickness is zero, macro
+% avoids tracing a frame with an invisible line.
+% \begin{macrocode}
+\providecommand\framedbox{}
+\RenewDocumentCommand\framedbox{m m m O{#3} m}{%
+\bgroup
+ \dimen2=#1\relax
+ \dimen0=\dimexpr#1-(#2+#3)*2\relax
+ \setbox0\hbox{\parbox{\dimen0}{#5}}%
+ \SIfrthick=#2\relax
+ \SIXR=\dimexpr\wd0/2\relax \SIXL=-\SIXR\relax
+ \SIYU=\dimexpr(\ht0+\dp0)/2\relax \SIYD=-\SIYU\relax
+ \dimen4=#1\relax % box total width
+ \dimen6=\dimexpr\ht0+\dp0+(#2+#3)*2\relax% box total height
+ \dimen8=#4\relax % corner arc radius
+ \edef\SIbase{\strippt{\dimen4}}
+ \edef\SIalt{\strippt{\dimen6}}
+ \edef\SIxoff{\strippt{\dimexpr0.5\dimen4}}
+ \edef\SIyoff{\strippt{\dimexpr0.5\dimen6}}
+ \unitlength=1pt
+ \begin{picture}(\SIbase,\SIalt)(-\SIxoff,-\SIyoff)
+ \Frame*{\dimen4}{\dimen6}{\dimen8}%
+ \ifdim\SIfrthick>0pt\Frame{\dimen4}{\dimen6}{\dimen8}\fi
+ \put(0,0){\makebox(0,0){\box0}}%
+ \end{picture}
+\egroup
+\ignorespaces}
+
+% \end{macrocode}
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{The frame}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The actual frame path may be filled with colour; the frame
+% border may be coloured with its own specified colour; such
+% colours are established by the FramedSyntax environment
+% options or by the global options.
+%
+% The \cs{Frame} command requires four parameters already
+% computed by the \cs{framedbox} command; in any case they are
+% the following:
+% \begin{enumerate}
+% \item[\texttt{\#1}]
+% optional: a boolean asterisk; if the asterisk is missing the
+% frame contour is drawn with its colour \texttt{SIframe}; if
+% the asterisk is present the contour is not drawn, but the
+% framed box is filled with the \texttt{SIbackground} colour.
+% \item[\texttt{\#2}]
+% mandatory: overall box width.
+% \item[\texttt{\#3}]
+% mandatory: total box height.
+% \item[\texttt{\#4}]
+% mandatory: the corner arc radius.
+% \end{enumerate}
+%
+% The following code contains the low level \pack{pict2e}
+% commands to draw lines to form a closed path to be stroked or
+% colour filled. They do not form a \pack{pict2e} \cs{oval},
+% although the contour is similar, because the default \cs{oval}
+% cannot be filled.
+% \begin{macrocode}
+ \providecommand\Frame{}
+ \RenewDocumentCommand\Frame{s m m m}{%
+ \bgroup
+ \SIXR=\dimexpr#2/2\relax \SIXL=-\SIXR%
+ \SIYU=\dimexpr#3/2\relax \SIYD=-\SIYU%
+ \IfBooleanTF{#1}{\linethickness{0pt}\color{SIbackground}}%
+ {\linethickness{\SIfrthick}\color{SIframe}}%
+ \moveto(\SIXR,\SIYD+#4)%
+ \circlearc{\SIXR-#4}{\SIYU-#4}{#4}{0}{90}%
+ \circlearc{\SIXL+#4}{\SIYU-#4}{#4}{90}{180}%
+ \circlearc{\SIXL+#4}{\SIYD+#4}{#4}{180}{270}%
+ \circlearc{\SIXR-#4}{\SIYD+#4}{#4}{270}{360}%
+ \closepath
+ \IfBooleanTF{#1}{\fillpath}{\strokepath}%
+ \egroup\ignorespaces}
+
+% \end{macrocode}
+
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Filling the frame with the syntax text}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% We are almost at the end. Here we define another macro to put
+% the syntax text inside the frame over the background
+% colour. The next command \cs{includeframedtext} provides the
+% necessary arguments to be passed to the lower level command
+% \cs{framedbox}; the arguments are the following:
+% \begin{enumerate}
+% \item[\texttt{\#1}]
+% optional: box width; default value \cs{insertwidth}, which is
+% the actual boxed text width; if it is larger than
+% \cs{linewidth} it is reduced to this value; in this case
+% users should revise they source code in order to fix this
+% little problem.
+% \item[\texttt{\#2}]
+% mandatory: the syntax text to be framed.
+% \item[\texttt{\#3}]
+% optional: the local \textit{key = value} options.
+% \end{enumerate}
+%
+% The code is the following.
+% \begin{macrocode}
+\providecommand\includeframedtext{}
+\RenewDocumentCommand\includeframedtext{O{\insertwidth} m O{}}%
+{\bgroup
+ \ExecuteOptionsX<sintassi>{#3}%
+ \ifdimgreater{\insertwidth}{\linewidth}{\insertwidth=\linewidth}{}%
+ \framedbox{\insertwidth}{\fboxrule}{\fboxsep}[\radius]{#2}%
+\egroup}
+
+% \end{macrocode}
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{The user environment}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Originally this environmente was named \amb{Sintassi}, but in
+% this package we name it \amb{FramedSintax}. The opening
+% statement is very long, because it must contain all the
+% \cs{let} commands that allow the user to use the command names
+% without the \texttt{FS} prefix; such \cs{let} equivalences are
+% local because the \texttt{FS} prefixes were introduced only to
+% avoid clashes with possible definitions of the same names with
+% other purposes.
+%
+% But besides these numerous equivalences, this environment
+% \amb{FramedSyntax} determines the necessary parameters to pass
+% to the service macros
+%
+% The environment requires just two optional arguments.
+% \begin{enumerate}
+% \item[\texttt{\#1}]
+% optional: the font size. The default value is the current
+% font size. This size should be specified only when the syntax
+% lines are marginally longer than the available measure and
+% they get broken close to their natural length. Please,
+% remember that in order to have this size specification work
+% properly, it is necessary to use continuously scalable fonts.
+% This command will not have any useful effect with the original
+% \TeX default Computer Modern fonts; Latin Modern fonts, on
+% the contrary, work very well.
+% \item[\texttt{\#2}]
+% optional: \textit{key = value} options that locally override
+% the global default ones or those that possibly were
+% specified by the user when loading this package.
+% \end{enumerate}
+% \begin{macrocode}
+\ProvideDocumentEnvironment{FramedSyntax}{}{}{}
+\RenewDocumentEnvironment{FramedSyntax}{o D(){}}
+{% environment opening commands
+\IfValueT{#1}{\setfontsize{#1}}% font size setting
+\ExecuteOptionsX<sintassi>{#2}% key = value options
+ \ifdimgreater{\insertwidth}{\linewidth}% width corrrection
+ {\insertwidth=\linewidth}{}%
+\framewidth=\insertwidth
+%
+\let\meta\FSmeta \let\marg\FSmarg \let\oarg\FSoarg
+\let\Arg\FSArg \let\Marg\FSMarg \let\Oarg\FSOarg
+\let\garg\FSgarg \let\comando\FScomando \let\cs\FScs
+\let\csindex\FScs \let\Sambiente\SFSambiente
+\let\Dambiente\DFSambiente
+\let\Bambiente\BFSambiente \let\Eambiente\EFSambiente
+\let\amb\FSamb \let\ambstyle\FSambstyle
+\let\class\FSclass \let\classstyle\FSclassstyle
+\let\file\FSfile \let\filestyle\FSfilestyle
+\let\pack\FSpack \let\packstyle\FSpackstyle
+\let\prog\FSprog \let\progstyle\FSprogstyle
+\let\opz\FSopz \let\opzstyle\FSopzstyle
+\let\conta\FSconta \let\contastyle\FScontastyle
+\let\stile\FSstile \let\stilestyle\FSstilestyle
+\let\numeri\FSnumeri \let\numerystyle\FSnumeristyle
+\let\umisura\FSumisura \let\umisurastyle\FSumisurastyle
+\let\chiave\FSchiave \let\chiavestyle\FSchiavestyle
+\let\descrittore\FSdescrittore
+ \let\descrittorestyle\FSDescrittorestyle
+\let\posizione\FSposizione \let\posizionestyle\FSposizionestyle
+\let\allineamento\FSallineamento
+ \let\allineamentostyle\FSallineamentostyle
+
+%
+\begin{lrbox}{2}% open the necessary boxes
+\begin{minipage}{%
+ \dimexpr\framewidth-2\fboxrule-2\fboxsep}\obeylines
+}{% environment closing commands
+\end{minipage}\end{lrbox}% close the above boxes
+\begin{flushleft}% set the syntax thext flush left
+\includeframedtext{\box2}[#2]
+\end{flushleft}}%
+
+% \end{macrocode}
+%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection%{Backwards compatibility environment \amb{Sintassi}}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% As said in the Preface, this package was inspired by a
+% \file{.sty} file of mine written in Italian; I might conserve
+% my older file but, since it is not so safe against macro
+% definition clashes, in the several document source files I
+% wrote with the previous implementation. I am going to change
+% the name of the imported file, but I will conserve the
+% multitude of instances of the old environment name, by an
+% alias defined in this package.
+% \begin{macrocode}
+\NewDocumentEnvironment{Sintassi}{o D(){}}%
+ {\begin{FramedSyntax}[#1](#2)}{\end{FramedSyntax}}
+% \end{macrocode}
+%.
+%
+%\iffalse
+%<*package>
+%\fi
+%
+% \begin{center}\color{red}\fontsize{50}{50}\selectfont
+% Enjoy \LaTeX
+%\end{center}
+%\iffalse
+%</package>
+%\fi
+% \Finale
+
+\endinput
+
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/framedsyntax/FramedSyntax.pdf b/macros/latex/contrib/framedsyntax/FramedSyntax.pdf
new file mode 100644
index 0000000000..ac6862130b
--- /dev/null
+++ b/macros/latex/contrib/framedsyntax/FramedSyntax.pdf
Binary files differ
diff --git a/macros/latex/contrib/framedsyntax/README.txt b/macros/latex/contrib/framedsyntax/README.txt
new file mode 100644
index 0000000000..29ed193569
--- /dev/null
+++ b/macros/latex/contrib/framedsyntax/README.txt
@@ -0,0 +1,12 @@
+ README.txt file for FramedSyntax.sty 2024-09-04 v.0.2.8
+
+
+ Distributable under the LaTeX Project Public License,
+ version 1.3c or higher (your choice). The latest version of
+ this license is at: http://www.latex-project.org/lppl.txt
+
+ This work is "maintained"
+
+ This work consists of this file FramedSyntax.dtx, a README.txt
+ file and the derived files: FramedSyntax.sty, FramedSyntax.pdf.
+
diff --git a/macros/latex/contrib/fvextra/CHANGELOG.md b/macros/latex/contrib/fvextra/CHANGELOG.md
index 7556c74a2d..1ed8da0390 100644
--- a/macros/latex/contrib/fvextra/CHANGELOG.md
+++ b/macros/latex/contrib/fvextra/CHANGELOG.md
@@ -1,6 +1,50 @@
# Changelog
+## v1.8.0 (2024/09/14)
+
+* Added new option `backgroundcolor` (alias `bgcolor`). This provides a
+ basic, `\colorbox`-based implementation of background colors for commands
+ and environments. Added new option `backgroundcolorvphantom` (alias
+ `bgcolorvphantom`) for customizing background height. Added new option
+ `backgroundcolorpadding` (alias `bgcolorpadding`) for customizing padding
+ between text and the edge of the region with background color.
+
+* Added option `insertenvname`. This customizes the verbatim environment
+ used by `\VerbatimInsertBuffer`.
+
+* When `numberblanklines=false`, `highlightlines` no longer highlights blank
+ lines at the end of a highlighted range (#25, gpoore/minted#226).
+
+* An unnecessary line break is no longer inserted before the last "word" of a
+ line when it is preceded by a long "word" that is broken internally as a
+ result of `breakbefore`, `breakafter`, or `breakanywhere` (#26).
+
+* Added option `breakpreferspaces` (default `true`). This determines whether
+ line breaks are preferentially inserted at normal spaces rather than at
+ other locations allowed by `breakbefore`, `breakafter`, or `breakanywhere`
+ (#26).
+
+* Added option `breakanywhereinlinestretch` (gpoore/minted#387).
+
+* `\FVExtraReadVArg` now takes a multi-line (but not multi-paragraph)
+ verbatim argument. The new `\FVExtraReadVArgSingleLine` provides the old
+ functionality of taking an argument restricted to a single line
+ (gpoore/minted#376).
+
+* By default, `\Verb` and `\SaveVerb` now take multi-line (but not
+ multi-paragraph) verbatim arguments. The old behavior of requiring
+ verbatim arguments to be on a single line can be restored by setting the
+ new option `vargsingleline` to `true`.
+
+* Added documentation for undocumented `fancyvrb` option `listparameters`
+ (gpoore/minted#256).
+
+* Expanded `breaklines` documentation with discussion of limitations and
+ alternatives (gpoore/minted#400).
+
+
+
## v1.7.0 (2024/05/16)
* Added new command `\VerbatimClearBuffer`.
@@ -209,7 +253,7 @@
* Added `highlightlines` option that takes a line number or range of line
numbers and highlights the corresponding lines. Added `highlightcolor`
- option that controls hightlighting color.
+ option that controls highlighting color.
* `obeytabs` no longer causes lines to vanish when tabs are inside macro
arguments. Tabs and spaces inside a macro argument but otherwise at the
diff --git a/macros/latex/contrib/fvextra/fvextra.dtx b/macros/latex/contrib/fvextra/fvextra.dtx
index e4182b6f88..ae05d4e6a9 100644
--- a/macros/latex/contrib/fvextra/fvextra.dtx
+++ b/macros/latex/contrib/fvextra/fvextra.dtx
@@ -26,7 +26,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{fvextra}
%<*package>
- [2024/05/16 v1.7.0 fvextra - extensions and patches for fancyvrb]
+ [2024/09/14 v1.8.0 fvextra - extensions and patches for fancyvrb]
%</package>
%
%<*driver>
@@ -111,6 +111,10 @@
\AtBeginDocument{\let|\pipe@active@verbatim}
\endgroup
+\renewenvironment{verbatim}%
+ {\VerbatimEnvironment\begin{Verbatim}[gobble=1]}%
+ {\end{Verbatim}}
+
\newcommand{\todo}[1]{}
%\newcommand{\todo}[1]{\textcolor{red}{TO~DO: \scantokens{#1}}}
@@ -134,6 +138,48 @@
\def\theCodelineNo{\textcolor{DarkGreen}{\sffamily\scriptsize{\arabic{CodelineNo}}}}
+\renewenvironment{macro}{\macro@custom@arg}{}
+\def\macro@custom@arg{%
+ \begingroup\makeatletter\macro@custom@arg@i}
+\def\macro@custom@arg@i#1{%
+ \makeatother
+ \par\noindent
+ \ifstrempty{#1}%
+ {~\par}%
+ {\ttfamily\color{DarkGreen}\hspace*{-0.5in}%
+ \macro@custom@arg@split#1,\FV@Sentinel\par}%
+ \endgroup}
+\def\macro@custom@arg@spacegobble#1{#1}
+\def\macro@custom@arg@split#1,#2\FV@Sentinel{%
+ \expandafter\string\macro@custom@arg@spacegobble#1%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {}{\\\hspace*{-0.5in}\macro@custom@arg@split#2\FV@Sentinel}}
+
+\renewenvironment{environment}{\env@custom@arg}{}
+\def\env@custom@arg{%
+ \begingroup\makeatletter\env@custom@arg@i}
+\def\env@custom@arg@i#1{%
+ \makeatother
+ \ifstrempty{#1}%
+ {~\par}%
+ {\ttfamily\color{DarkGreen}\hspace*{-0.5in}%
+ \env@custom@arg@split#1,\FV@Sentinel\par}%
+ \endgroup}
+\def\env@custom@arg@spacegobble#1{#1}
+\def\env@custom@arg@split#1,#2\FV@Sentinel{%
+ \env@custom@arg@spacegobble#1{\textrm{ \textit{(env.)}}}%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {}{\\\hspace*{-0.5in}\env@custom@arg@split#2\FV@Sentinel}}
+
+
\let\orig@footnote\footnote
\renewcommand{\footnote}{%
\begingroup
@@ -147,25 +193,28 @@
\orig@footnote{\scantokens{#1}}}
-\def\fvextraprintopt#1(#2) (#3){%
+\def\fvextra@optionlist@printopt#1(#2) (#3){%
\vspace{0.1in}%
\leavevmode%
- \marginpar{\raggedleft\texttt{\small\textcolor{DarkGreen}{#1}}\ }%
+ \marginpar{\raggedleft\texttt{\textcolor{DarkGreen}{\small #1}}\ }%
\kern-\parindent\textsf{(#2)}\hfill(default: \texttt{#3})\\}
\newenvironment{optionlist}%
- {%
- ~\par\vspace{-14pt}%
+ {~\par\vspace{-14pt}%
\def\pipechar{|}
\let\|\pipechar
- \newcommand*\fvextranext{}%
+ \newcommand*\fvextra@optionlist@next{}%
+ \let\item@orig\item
\renewcommand*\item[1][]{%
- \fvextranext%
- \renewcommand*\fvextranext{\par}%
- \fvextraprintopt##1%
- \ignorespaces}}
- {%
- \par}
+ \ifdefstring{\@currenvir}{optionlist}%
+ {\fvextra@optionlist@next%
+ \renewcommand*\fvextra@optionlist@next{\par}%
+ \fvextra@optionlist@printopt##1%
+ \ignorespaces}%
+ {\ifstrempty{##1}%
+ {\vspace{-4pt}\item@orig}
+ {\vspace{-4pt}\item@orig[##1]}}}}
+ {\par}
\newenvironment{example}
@@ -290,7 +339,7 @@
%\hrule
%\vspace{2ex}
%\noindent\begin{minipage}{\linewidth}
-%\begin{Verbatim}[gobble=1]
+%\begin{verbatim}
%---
%header-includes:
% - |
@@ -301,7 +350,7 @@
% breaklines, breaknonspaceingroup, breakanywhere}
% ```
%---
-%\end{Verbatim}
+%\end{verbatim}
%\end{minipage}
%\vspace{2ex}
%\hrule
@@ -317,6 +366,50 @@
%
% \begin{optionlist}
%
+% \item[backgroundcolor (string) (none)]
+% Background color behind commands and environments. This is only a basic, lightweight implementation of background colors using |\colorbox|. For more control of background colors, consider \href{https://ctan.org/pkg/tcolorbox}{\pkg{tcolorbox}} or a similar package, or a custom background color implementation.
+%
+% Background colors are implemented with |\colorbox|, which prevents line breaking for |\Verb|, |\UseVerb|, and |\EscVerb|. Background colors are only compatible with \fvextra's reimplemented |\Verb| and |\UseVerb| (|extra=true|).
+%
+% See |backgroundcolorvphantom| to customize the height of the background for each line of text, especially for |\Verb|, |\EscVerb|, and |BVerbatim|.
+%
+% When |backgroundcolor| is used with |Verbatim| with a |frame|, it may be necessary to adjust |framesep| and |fillcolor| depending on the desired result. |backgroundcolorpadding| provides a shortcut for this.
+%
+%
+% \item[backgroundcolorpadding (length) (none)]
+% Padding when |backgroundcolor| is set. For |\Verb|, |\UseVerb|, |\EscVerb|, and |BVerbatim|, this sets |\fboxsep| for the |\colorbox| that is used to create the background color. For |Verbatim|, \fancyvrb's frame options are used instead, particularly |framesep| and |fillcolor|.
+%
+% For |Verbatim|, this amounts to a shortcut for a combination of frame-related settings that provide padding when there is a background color. This is only intended for cases with |frame=none| or |frame=single|. In other cases, it may be better to modify the \fancyvrb\ frame settings directly, and it may be necessary to modify the \fancyvrb\ internals to obtain padding on all sides.
+%
+% For |Verbatim|, if |frame=single|, then this is equivalent to the following settings:
+% \begin{itemize}
+% \item |framesep=|\meta{\texttt{backgroundcolorpadding}}
+% \item |fillcolor=\FancyVerbBackgroundColor|
+% \end{itemize}
+%
+% For |Verbatim|, if |frame| has any value other than |single|, then this is equivalent to the following settings:
+% \begin{itemize}
+% \item |frame=single|
+% \item |framerule=0pt|
+% \item |rulecolor=\FancyVerbBackgroundColor|
+% \item |framesep=|\meta{\texttt{backgroundcolorpadding}}
+% \item |fillcolor=\FancyVerbBackgroundColor|
+% \end{itemize}
+%
+%
+% \item[backgroundcolorvphantom (macro) (\Verb{\vphantom{\"Apgjy}})]
+% |\vphantom| or similar macro such as |\strut| that is inserted at the beginning of each line of text using |backgroundcolor|. This allows the height of the background for each line of text to be customized, especially for |\Verb|, |\EscVerb|, and |BVerbatim|. |backgroundcolorvphantom| will typically have no effect on |Verbatim|-based environments unless it is set to a size larger than |\strut|.
+%
+% \item[bgcolor (string) (none)]
+% Alias for |backgroundcolor|.
+%
+% \item[bgcolorpadding (length) (none)]
+% Alias for |backgroundcolorpadding|.
+%
+% \item[bgcolorvphantom (macro) (\Verb{\vphantom{\"Apgjy}})]
+% Alias for |backgroundcolorvphantom|.
+%
+%
% \item[beameroverlays (boolean) (false)]
% Give the |<| and |>| characters their normal text meanings, so that \pkg{beamer} overlays of the form |\only<1>{...}| will work. Note that something like |commandchars=\\\{\}| is required separately to enable macros. This is not incorporated in the |beameroverlays| option because essentially arbitrary command characters could be used; only the |<| and |>| characters are hard-coded for overlays.
%
@@ -522,6 +615,10 @@
% Set the color of visible tabs. By default (|none|), they take the color of their surroundings.
%
%
+% \item[vargsingleline (boolean) (false)]
+% This determines whether \fvextra's |\Verb| and |\SaveVerb| take multi-line (but not multi-paragraph) verbatim arguments, or if they instead require arguments to be on a single line like the original \fancyvrb\ commands.
+%
+%
% \end{optionlist}
%
%
@@ -585,6 +682,8 @@
%
% The new \cmd{\Verb} works as expected (with a few limitations) inside other commands. It even works in movable arguments (for example, in \cmd{\section}), and is compatible with \pkg{hyperref} for generating PDF strings (for example, PDF bookmarks). The \fancyvrb\ definition did work inside some other commands, but essentially functioned as \cmd{\texttt} in that context.
%
+% By default, \cmd{\Verb} takes a multi-line (but not multi-paragraph) verbatim argument. To restore the \fancyvrb\ behavior of requiring a single-line argument, set |vargsingleline=true|.
+%
% \cmd{\Verb} is compatible with |breaklines| and the relevant line-breaking options.
%
% Like the original \fancyvrb\ implementation, the new \cmd{\Verb} can be starred (|\Verb*|) and accepts optional arguments. While \fancyvrb's starred command |\Verb*| is a shortcut for |showspaces|, \fvextra's |\Verb*| is a shortcut for both |showspaces| and |showtabs|. This is more similar to the current behavior of \LaTeX's \Verb{\verb*}, except that \Verb{\verb*} converts tabs into visible spaces instead of displaying them as visible tabs.
@@ -611,6 +710,8 @@
%
% \cmd{\SaveVerb} is reimplemented so that it is equivalent to the reimplemented \cmd{\Verb}. Like the new \cmd{\Verb}, it accepts \meta{text} delimited by a pair of curly braces |{...}|. It supports \cmd{\fvinlineset}. It also adds support for the new |retokenize| option for \cmd{\UseVerb}.
%
+% By default, \cmd{\SaveVerb} takes a multi-line (but not multi-paragraph) verbatim argument. To restore the \fancyvrb\ behavior of requiring a single-line argument, set |vargsingleline=true|.
+%
%
% \subsection{\cmd{\UseVerb}}
%
@@ -814,12 +915,20 @@
% \subsection{\cmd{\VerbatimInsertBuffer}}
% \DescribeMacro{\VerbatimInsertBuffer\oarg{options}}
%
-% This inserts an existing buffer created by |VerbatimBuffer| as a |Verbatim| environment. It customizes |Verbatim| internals to function with a buffer in a command context. See the |VerbatimBuffer| documentation for an example of usage.
+% This inserts an existing buffer created by |VerbatimBuffer| as a verbatim environment. The |Verbatim| environment is used by default, but this can be customized by setting |insertenvname|. |\VerbatimInsertBuffer| modifies |Verbatim| and |BVerbatim| internals to function with a buffer in a command context. See the |VerbatimBuffer| documentation for an example of usage.
%
% Options related to catcodes cause the buffer to be retokenized during typesetting. That is, the \fancyvrb\ options used for |\VerbatimInsertBuffer| are not restricted by those that were in effect when |VerbatimBuffer| originally created the buffer, so long as the buffer contains a complete representation of the original |VerbatimBuffer| environment contents.
%
% |\VerbatimInsertBuffer| is not implemented using the typical \fancyvrb\ command and environment implementation styles, so it is not compatible with |\RecustomVerbatimCommand| or |\RecustomVerbatimEnvironment|.
%
+% ~\par
+% \noindent Options defined specifically for \cmd{\VerbatimInsertBuffer}:
+%
+% \begin{optionlist}
+% \item[insertenvname (string) (Verbatim)]
+% This is the name of the verbatim environment used for inserting the buffer. |insertenvname| can be any |Verbatim|- or |BVerbatim|-based environment. Environments defined with |\CustomVerbatimEnvironment| and |\RecustomVerbatimEnvironment| are supported. User-implemented environments that serve as wrappers around |Verbatim| or |BVerbatim| should typically be compatible so long as they accept \pkg{fancyvrb}/\pkg{fvextra} optional arguments in the same way as |Verbatim| and |BVerbatim|.
+% \end{optionlist}
+%
%
% \subsection{\cmd{\VerbatimClearBuffer}}
% \DescribeMacro{\VerbatimClearBuffer\oarg{options}}
@@ -885,6 +994,17 @@
% The symbol inserted pre-break for breaks inserted by |breakanywhere|. This does not apply to breaks inserted next to spaces; see |spacebreak|.
%
%
+% \item[breakanywhereinlinestretch (length) (\meta{none})]
+% Stretch glue to insert at potential |breakanywhere| break locations in inline contexts, to give better line widths and avoid overfull |\hbox|. This allows the spacing between adjacent non-space characters to stretch, so it should not be used when column alignment is important. For typical line lengths, values between |0.01em| and |0.02em| should be sufficient to provide a cumulative stretch per line that is equal to or greater than the width of one character.
+%
+% This is typically not needed in cases where an overfull |\hbox| only overflows by tiny amount, perhaps a fraction of a pt. In those cases, the overfull |\hbox| could be ignored, |\hfuzz| could be set to 1pt or 2pt to suppress tiny overfull |\hbox| warnings, or |breakanywheresymbolpre| might be redefined to adjust spacing.
+%
+% Implementation: Before each |breakanywhere| break location, this inserts the following sequence of macros:
+%\begin{verbatim}
+%\nobreak\hspace{0pt plus \FV@breaknonspaceinlinestretch}
+%\end{verbatim}
+%
+%
% \item[breakanywheresymbolpost (string) (\meta{none})]
% The symbol inserted post-break for breaks inserted by |breakanywhere|. This does not apply to breaks inserted next to spaces; see |spacebreak|.
%
@@ -931,7 +1051,11 @@
%
%
% \item[breaklines (boolean) (false)]
-% Automatically break long lines. When a line is broken, the result must fit on a single page. There is no support for breaking a line across multiple pages.\footnote{Following the implementation in \pkg{fancyvrb}, each line is typeset within an |\hbox|, so page breaks are not possible.}
+% Automatically break long lines.
+%
+% \textbf{Limitations for verbatim environments/block text}, such as |Verbatim|: When a line is broken, the result must fit on a single page. There is no support for breaking a line across multiple pages.\footnote{Following the implementation in \pkg{fancyvrb}, each line is typeset within an |\hbox|, so page breaks are not possible.}
+%
+% \textbf{Limitations for verbatim commands/inline text}, such as |\Verb|: When a line break is inserted, the text may still overflow into the margin or cause an overfull |\hbox|, depending on hyphenation settings and various penalties related to line breaks. It may be possible to avoid this by allowing additional break locations with |breakbefore|, |breakafter|, or |breakanywhere|. Small overfull |\hbox| warnings can be suppressed by setting |\hfuzz| to a larger value, for example setting it to |2pt| instead of the default |0.1pt|. It is also possible to combine |breakanywhere| with |breakanywhereinlinestretch| to allow flexible spacing between adjacent non-space characters. In cases where it is better to break before the margin rather than overflowing into the margin, consider setting |\emergencystretch|.
%
% By default, automatic breaks occur at spaces (even when |showspaces=true|). Use |breakanywhere| to enable breaking anywhere; use |breakbefore| and |breakafter| for more fine-tuned breaking.
%
@@ -980,6 +1104,12 @@
% |breaknonspaceingroup| allows non-space breaks to be inserted within groups. This option should only be used when |commandchars| is including \LaTeX\ commands that do not take optional arguments and only take mandatory arguments that are typeset. Something like |\textit{text}| is fine, but |\textcolor{red}{text}| is not because one of the mandatory arguments is not typeset but rather provides a setting. For more complex commands, it is typically better to redefine them to insert breaks in appropriate locations using |\FancyVerbBreakStart...\FancyVerbBreakStop|.
%
%
+% \item[breakpreferspaces (boolean) (true)]
+% This determines whether line breaks are preferentially inserted at normal spaces (|breakcollapsespaces=true|, |showspaces=false|) rather than at other locations allowed by |breakbefore|, |breakafter|, or |breakanywhere|.
+%
+% Using |breakpreferspaces=false| with |breakanywhere=true| will typically result in all broken segments of a line going all the way to the right margin.
+%
+%
% \item[breaksymbol (string) (breaksymbolleft)]
% Alias for |breaksymbolleft|.
%
@@ -1369,6 +1499,9 @@
% \item[formatcom* (macro) (\meta{empty})]
% \fancyvrb's |formatcom| is used to execute commands before verbatim text. It overwrites any existing |formatcom|. |formatcom*| appends changes to existing settings.
%
+% \item[listparameters (macro) (\meta{empty})]
+% Set list-related lengths to modify spacing around lines of code. For example, |listparameters=\setlength{\topsep}{0pt}| will remove space before and after a |Verbatim| environment.
+%
% \end{optionlist}
%
%
@@ -1506,7 +1639,7 @@
%
% There are two contexts in which sentinels may be needed. In delimited macro arguments, such as |\def\macro#1\sentinel{...}|, a sentinel is needed as the delimiter. Because the delimiting macro need not be defined, special delimiting macros need not be created for this case. The important thing is to ensure that the macro name is sufficiently unique to avoid collisions. Typically, using \cmd{\makeatletter} to allow something like \cmd{\@sentinel} will be sufficient. For added security, additional characters can be given catcode 11, to allow things like \cmd{\@sent!nel}.
%
-% The other context for sentinels is in scanning through a sequence of tokens that is delimited by a sentinel, and using \cmd{\ifx} comparisons to identify the sentinel and stop scanning. In this case, using an undefined macro is risky. Under normal conditions, the sequence of tokens could contain an undefined macro due to mistyping. In some \fvextra\ applications, the tokens will have been incorrectly tokenized under a normal catcode regime, and need to be retokenized as verbatim, in which case undefined macros must be expected. Thus, a sentinel macro whose expansion is resistent to collisions is needed.
+% The other context for sentinels is in scanning through a sequence of tokens that is delimited by a sentinel, and using \cmd{\ifx} comparisons to identify the sentinel and stop scanning. In this case, using an undefined macro is risky. Under normal conditions, the sequence of tokens could contain an undefined macro due to mistyping. In some \fvextra\ applications, the tokens will have been incorrectly tokenized under a normal catcode regime, and need to be retokenized as verbatim, in which case undefined macros must be expected. Thus, a sentinel macro whose expansion is resistant to collisions is needed.
%
% \begin{macro}{\FV@<Sentinel>}
% This is the standard default \fvextra\ delimited-macro sentinel. It is used with \cmd{\makeatletter} by changing |<| and |>| to catcode 11. The |<| and |>| add an extra level of collision resistance. Because it is undefined, it is \emph{only} appropriate for use in delimited macro arguments.
@@ -1820,12 +1953,14 @@
% \end{macro}
%
%
-% \begin{macro}{\FVExtraReadVArg}
-% Read a verbatim argument that is bounded by two identical characters or by paired curly braces. This uses the \cmd{\outer} |^^M| with \cmd{\FV@EOL} trick from \fancyvrb\ to prevent runaway arguments. An \cmd{\outer} |^^C| is used to prevent |^^C| from being part of arguments, so that it can be used later as a sentinel if retokenization is needed. |^^B| is handled in the same manner for symmetry with later usage, though technically it is not used as a sentinel so this is not strictly necessary. Alternate |UTF| macros, defined later, are invoked when under pdfTeX with \pkg{inputenc} using UTF-8.
+% \begin{macro}{\FVExtraReadVArg,\FVExtraReadVArgSingleLine}
+% Read a verbatim argument that is bounded by two identical characters or by paired curly braces. There are two variants: one reads a multi-line (but not multi-paragraph) argument, while the other restricts the argument to a single line via the \cmd{\outer} |^^M| trick from \fancyvrb. An \cmd{\outer} |^^C| is used to prevent |^^C| from being part of arguments, so that it can be used later as a sentinel if retokenization is needed. |^^B| is handled in the same manner for symmetry with later usage, though technically it is not used as a sentinel so this is not strictly necessary. Alternate |UTF| macros, defined later, are invoked when under pdfTeX with \pkg{inputenc} using UTF-8.
%
% The lookahead for the type of delimiting character is done under a verbatim catcode regime, except that the space catcode is preserved and curly braces are given their normal catcodes. This provides consistency with any \cmd{\FVExtra@ifnextcharVArg} or \cmd{\FVExtra@ifstarVArg} that may have been used previously, allows characters like |#| and |%| to be used as delimiters when the verbatim argument is read outside any other commands (untokenized), and allows paired curly braces to serve as delimiters. Any additional command-specific catcode modifications should only be applied to the argument after it has been read, since they do not apply to the delimiters.
%
% Once the delimiter lookahead is complete, catcodes revert to full verbatim, and are then modified appropriately given the type of delimiter. The space and tab must be \cmd{\active} to be preserved correctly when the verbatim argument is not inside any other commands (otherwise, they collapse into single spaces).
+%
+% Note that |\FVExtraReadVArg| will interpret a line break as a catcode 10 space, not as an |\active| space. Depending on usage, the argument may need to be processed with |\FVExtraDetokenizeVArg| and |\FVExtraRetokenizeVArg| to fix this.
% \begin{macrocode}
\def\FVExtraReadVArg#1{%
\begingroup
@@ -1840,6 +1975,34 @@
\FV@OuterDefSTXEmpty
\catcode`\^^C=\active
\FV@OuterDefETXEmpty
+ \begingroup
+ \catcode`\ =\FV@TmpSpaceCat\relax
+ \catcode`\{=1
+ \catcode`\}=2
+ \@ifnextchar\bgroup
+ {\endgroup
+ \catcode`\{=1
+ \catcode`\}=2
+ \catcode`\ =\active
+ \catcode`\^^I=\active
+ \FV@ReadVArg@Group{#1}}%
+ {\endgroup
+ \catcode`\ =\active
+ \catcode`\^^I=\active
+ \FV@ReadVArg@Char{#1}}}
+\def\FVExtraReadVArgSingleLine#1{%
+ \begingroup
+ \ifFV@pdfTeXinputenc
+ \ifdefstring{\inputencodingname}{utf8}%
+ {\let\FV@ReadVArg@Char\FV@ReadVArg@Char@UTF}%
+ {}%
+ \fi
+ \edef\FV@TmpSpaceCat{\the\catcode` }%
+ \let\do\@makeother\FVExtraDoSpecials
+ \catcode`\^^B=\active
+ \FV@OuterDefSTXEmpty
+ \catcode`\^^C=\active
+ \FV@OuterDefETXEmpty
\catcode`\^^M=\active
\FV@OuterDefEOLEmpty
\begingroup
@@ -1852,20 +2015,20 @@
\catcode`\}=2
\catcode`\ =\active
\catcode`\^^I=\active
- \FV@ReadVArg@Group{#1}\FV@EOL}%
+ \FV@ReadVArg@Group{#1}}%
{\endgroup
\catcode`\ =\active
\catcode`\^^I=\active
- \FV@ReadVArg@Char{#1}\FV@EOL}}
+ \FV@ReadVArg@Char{#1}}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\FV@ReadVArg@Group}
% The argument is read under the verbatim catcode regime already in place from \cmd{\FVExtraReadVArg}. The \cmd{\endgroup} returns to prior catcodes. Any command-specific catcodes can be applied later via \cmd{\scantokens}. Using them here in reading the argument would have no effect as far as later processing with \cmd{\scantokens} is concerned, unless the argument were read outside any other commands and additional characters were given catcodes 1 or 2 (like the curly braces). That scenario is not allowed because it makes reading the argument overly dependent on the argument content. (Technically, reading the argument is already dependent on the argument content in the sense that the argument cannot contain unescaped unpaired curly braces, given that it is delimited by curly braces.)
% \begin{macrocode}
-\def\FV@ReadVArg@Group#1#2#3{%
+\def\FV@ReadVArg@Group#1#2{%
\endgroup
- #1{#3}}
+ #1{#2}}
% \end{macrocode}
% \end{macro}
%
@@ -1874,9 +2037,9 @@
%
% It would be possible to read the argument using any command-specific catcode settings, but that would result in different behavior depending on whether the argument is already tokenized, and would make reading the argument overly dependent on the argument content.
% \begin{macrocode}
-\def\FV@ReadVArg@Char#1#2#3{%
+\def\FV@ReadVArg@Char#1#2{%
\expandafter\expandafter\expandafter
- \if\expandafter\expandafter\expandafter\relax\expandafter\@gobble\detokenize{#3}\relax
+ \if\expandafter\expandafter\expandafter\relax\expandafter\@gobble\detokenize{#2}\relax
\expandafter\@gobble
\else
\expandafter\@firstofone
@@ -1884,10 +2047,10 @@
{\PackageError{fvextra}%
{Verbatim delimiters must be single characters, not commands}%
{Try a different delimiter}}%
- \def\FV@ReadVArg@Char@i##1##2##3#3{%
+ \def\FV@ReadVArg@Char@i##1##2#2{%
\endgroup
- ##1{##3}}%
- \FV@ReadVArg@Char@i{#1}\FV@EOL}%
+ ##1{##2}}%
+ \FV@ReadVArg@Char@i{#1}}%
% \end{macrocode}
% \end{macro}
%
@@ -1902,9 +2065,9 @@
% \begin{macro}{\FV@ReadVArg@Char@UTF}
% This is a variant of \cmd{\FV@ReadVArg@Char} that allows non-ASCII codepoints as delimiters under the pdfTeX engine with \pkg{inputenc} using UTF-8. Under pdfTeX, non-ASCII codepoints must be handled as a sequence of bytes rather than as a single entity. \cmd{\FV@ReadVArg@Char} is automatically \cmd{\let} to this version when appropriate. This uses the \cmd{\FV@U8:<byte>} macros for working with \pkg{inputenc}'s UTF-8.
% \begin{macrocode}
-\def\FV@ReadVArg@Char@UTF#1#2#3{%
+\def\FV@ReadVArg@Char@UTF#1#2{%
\expandafter\expandafter\expandafter
- \if\expandafter\expandafter\expandafter\relax\expandafter\@gobble\detokenize{#3}\relax
+ \if\expandafter\expandafter\expandafter\relax\expandafter\@gobble\detokenize{#2}\relax
\expandafter\@gobble
\else
\expandafter\@firstofone
@@ -1912,23 +2075,23 @@
{\PackageError{fvextra}%
{Verbatim delimiters must be single characters, not commands}%
{Try a different delimiter}}%
- \ifcsname FV@U8:\detokenize{#3}\endcsname
+ \ifcsname FV@U8:\detokenize{#2}\endcsname
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{\def\FV@UTF@octets@after##1{\FV@ReadVArg@Char@UTF@i{#1}{##1}}%
- \csname FV@U8:\detokenize{#3}\endcsname#3}%
- {\FV@ReadVArg@Char@UTF@i{#1}{#3}}}
+ \csname FV@U8:\detokenize{#2}\endcsname#2}%
+ {\FV@ReadVArg@Char@UTF@i{#1}{#2}}}
% \end{macrocode}
%
% \begin{macro}{\FV@ReadVArg@Char@UTF@i}
% \begin{macrocode}
\def\FV@ReadVArg@Char@UTF@i#1#2{%
- \def\FV@ReadVArg@Char@i##1##2##3#2{%
+ \def\FV@ReadVArg@Char@i##1##2#2{%
\endgroup
- ##1{##3}}%
- \FV@ReadVArg@Char@i{#1}\FV@EOL}%
+ ##1{##2}}%
+ \FV@ReadVArg@Char@i{#1}}%
% \end{macrocode}
% \end{macro}
%
@@ -1939,6 +2102,18 @@
% \end{macro}
%
%
+% \begin{macro}{vargsingleline}
+% This determines whether |\Verb| and |\SaveVerb| use |\FVExtraReadVArg| or |\FVExtraReadVArgSingleLine| to read their arguments. It has no effect on |\EscVerb|, since that does not use special tokenization.
+% \begin{macrocode}
+\newbool{FV@vargsingleline}
+\define@booleankey{FV}{vargsingleline}%
+ {\booltrue{FV@vargsingleline}}
+ {\boolfalse{FV@vargsingleline}}
+\fvset{vargsingleline=false}
+% \end{macrocode}
+% \end{macro}
+%
+%
%
%
% \subsubsection{Reading and protecting arguments in expansion-only contexts}
@@ -2926,7 +3101,7 @@
% \end{macro}
%
%
-% \paragraph{Detokenize as if the original source were tokenized verbatim, except for backslash escapes of non-catcode 11 characters, then convert to PDF string}
+% \paragraph{Detokenize as if the original source were tokenized verbatim, except for backslash escapes of non-catcode 11 characters, then convert to PDF string}\hfill\\
%
% \begin{macro}{\FVExtraPDFStringEscapedVerbatimDetokenize}
% This is identical to \cmd{\FVExtraEscapedVerbatimDetokenize}, except that the output is converted to a valid PDF string. All spaces are represented with the octal escape \cmd{\040} to prevent adjacent spaces from being merged. There is no alternate implementation for restricting escapes to ASCII symbols and punctuation. Typically, this would be used in an expansion-only context to create something like bookmarks, while \cmd{\FVExtraEscapedVerbatimDetokenize} (potentially with escape restrictions) would be used in parallel to generate whatever is actually typeset. Escape errors can be handled in generating what is typeset.
@@ -2962,7 +3137,7 @@
% \end{macro}
%
% \begin{macro}{\FV@PDFStrEscVDetok@ScanCont}
-% This is modified to use |\040| for the space. In the unescaped case, using a normal space here is fine, but in the escaped case, the preceeding or following token could be an escaped space.
+% This is modified to use |\040| for the space. In the unescaped case, using a normal space here is fine, but in the escaped case, the preceding or following token could be an escaped space.
% \begin{macrocode}
\begingroup
\catcode`\!=0\relax
@@ -3058,7 +3233,7 @@
% \end{macro}
%
% \begin{macro}{\FV@PDFStrEscVDetok@ScanTokenNoSpace}
-% This was modifed to add \cmd{\FVExtraPDFStringEscapeChar}
+% This was modified to add \cmd{\FVExtraPDFStringEscapeChar}
% \begin{macrocode}
\gdef\FV@PDFStrEscVDetok@ScanTokenNoSpace#1#2^^C{%
\if\relax\detokenize{#2}\relax
@@ -3250,8 +3425,7 @@
% \subsection{Hooks}
%
%
-% \begin{macro}{\FV@FormattingPrep@PreHook}
-% \begin{macro}{\FV@FormattingPrep@PostHook}
+% \begin{macro}{\FV@FormattingPrep@PreHook,\FV@FormattingPrep@PostHook}
% These are hooks for extending |\FV@FormattingPrep|. |\FV@FormattingPrep| is inside a group, before the beginning of processing, so it is a good place to add extension code. These hooks are used for such things as tweaking math mode behavior and preparing for |breakbefore| and |breakafter|. The |PreHook| should typically be used, unless \pkg{fancyvrb}'s font settings, whitespace setup, and active character definitions are needed for extension code.
% \begin{macrocode}
\let\FV@FormattingPrep@PreHook\@empty
@@ -3260,7 +3434,6 @@
\expandafter\FV@FormattingPrep@PreHook\FV@FormattingPrep\FV@FormattingPrep@PostHook}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
%
% \begin{macro}{\FV@PygmentsHook}
@@ -3326,7 +3499,8 @@
% \begin{macro}{\FV@UseInlineKeyValues}
% \begin{macrocode}
\def\FV@UseInlineKeyValues{%
- \expandafter\fvset\expandafter{\FV@InlineKeyValues}}
+ \expandafter\fvset\expandafter{\FV@InlineKeyValues}%
+ \FV@ApplyBreakAnywhereInlineStretch}
% \end{macrocode}
% \end{macro}
%
@@ -3432,7 +3606,10 @@
% \begin{macrocode}
\def\FVC@Verb@Extra@i{%
\begingroup
- \FVExtraReadVArg{%
+ \ifbool{FV@vargsingleline}%
+ {\let\FV@Reader\FVExtraReadVArgSingleLine}%
+ {\let\FV@Reader\FVExtraReadVArg}%
+ \FV@Reader{%
\FV@UseInlineKeyValues\FV@UseKeyValues\FV@FormattingPrep
\FVExtraDetokenizeVArg{%
\FVExtraRetokenizeVArg{\FVC@Verb@Extra@ii}{\FV@CatCodes}}}}
@@ -3440,15 +3617,26 @@
% \end{macro}
%
% \begin{macro}{\FVC@Verb@Extra@ii}
+% |breaklines| is only applied when there is no background color, since |\colorbox| prevents line breaks.
% \begin{macrocode}
\def\FVC@Verb@Extra@ii#1{%
- \ifFV@breaklines
+ \ifx\FancyVerbBackgroundColor\relax
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
- {\FV@InsertBreaks{\FancyVerbFormatInline}{#1}}%
- {\mbox{#1}}%
+ {\ifbool{FV@breaklines}%
+ {\FV@InsertBreaks{\FancyVerbFormatInline}{#1}}%
+ {\mbox{\FancyVerbFormatInline{#1}}}}%
+ {\setlength{\FV@TmpLength}{\fboxsep}%
+ \ifx\FancyVerbBackgroundColorPadding\relax
+ \setlength{\fboxsep}{0pt}%
+ \else
+ \setlength{\fboxsep}{\FancyVerbBackgroundColorPadding}%
+ \fi
+ \colorbox{\FancyVerbBackgroundColor}{%
+ \setlength{\fboxsep}{\FV@TmpLength}%
+ \FancyVerbBackgroundColorVPhantom\FancyVerbFormatInline{#1}}}%
\endgroup}
% \end{macrocode}
% \end{macro}
@@ -3488,7 +3676,10 @@
\@namedef{FV@SV@#1}{}%
\@namedef{FV@SVRaw@#1}{}%
\begingroup
- \FVExtraReadVArg{%
+ \ifbool{FV@vargsingleline}%
+ {\let\FV@Reader\FVExtraReadVArgSingleLine}%
+ {\let\FV@Reader\FVExtraReadVArg}%
+ \FV@Reader{%
\FVC@SaveVerb@Extra@i{#1}}}
% \end{macrocode}
% \end{macro}
@@ -3591,15 +3782,7 @@
%
% \begin{macro}{\FV@UseVerb@Extra}
% \begin{macrocode}
-\def\FV@UseVerb@Extra#1{%
- \ifFV@breaklines
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
- {\FV@InsertBreaks{\FancyVerbFormatInline}{#1}}%
- {\mbox{#1}}%
- \endgroup}
+\let\FV@UseVerb@Extra\FVC@Verb@Extra@ii
% \end{macrocode}
% \end{macro}
%
@@ -3654,15 +3837,7 @@
%
% \begin{macro}{\FVC@EscVerb@ii}
% \begin{macrocode}
-\def\FVC@EscVerb@ii#1{%
- \ifFV@breaklines
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
- {\FV@InsertBreaks{\FancyVerbFormatInline}{#1}}%
- {\mbox{#1}}%
- \endgroup}
+\let\FVC@EscVerb@ii\FVC@Verb@Extra@ii
% \end{macrocode}
% \end{macro}
%
@@ -3805,7 +3980,7 @@
% \end{macro}
%
%
-% \begin{macro}{writer, \FV@Writer}
+% \begin{macro}{writer,\FV@Writer}
% Define writer macro that processes each line before writing.
% \begin{macrocode}
\define@key{FV}{writer}{%
@@ -3820,7 +3995,7 @@
% \begin{macro}{VerbatimWrite}
% The environment implementation follows standard \fancyvrb\ environment style.
%
-% A special write counter is used to track line numbers while avoiding incrementing the regular counter that is used for typeset code. Some macros do nothing with the default |writer|, but are needed to enable \fancyvrb\ options when a custom |writer| is used in conjuction with optional environment arguments. These include |\FancyVerbDefineActive|, |\FancyVerbFormatCom|, and |\FV@DefineTabOut|.
+% A special write counter is used to track line numbers while avoiding incrementing the regular counter that is used for typeset code. Some macros do nothing with the default |writer|, but are needed to enable \fancyvrb\ options when a custom |writer| is used in conjunction with optional environment arguments. These include |\FancyVerbDefineActive|, |\FancyVerbFormatCom|, and |\FV@DefineTabOut|.
% \begin{macrocode}
\newcounter{FancyVerbWriteLine}
\def\VerbatimWrite{%
@@ -3858,7 +4033,7 @@
%
% By default, all \fancyvrb\ options except for |VerbatimBuffer|-specific options are ignored. This can be customized on a per-environment basis via environment optional arguments.
%
-% \begin{macro}{afterbuffer, \FV@afterbuffer}
+% \begin{macro}{afterbuffer,\FV@afterbuffer}
% Macro that is inserted after the last line of the environment is buffered, immediately before the environment ends.
% \begin{macrocode}
\define@key{FV}{afterbuffer}{%
@@ -3874,7 +4049,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{bufferer, \FV@Bufferer, \FancyVerbDefaultBufferer}
+% \begin{macro}{bufferer,\FV@Bufferer,\FancyVerbDefaultBufferer}
% This is the macro that adds lines to the buffer. The default is designed to create a truly verbatim buffer via |\detokenize|.
% \begin{macrocode}
\define@key{FV}{bufferer}{%
@@ -3931,7 +4106,7 @@
% \begin{macro}{VerbatimBuffer}
% The environment implementation follows standard \fancyvrb\ environment style.
%
-% A special buffer counter is used to track line numbers while avoiding incrementing the regular counter that is used for typeset code. Some macros do nothing with the default |bufferer|, but are needed to enable \fancyvrb\ options when a custom |bufferer| is used in conjuction with optional environment arguments. These include |\FancyVerbDefineActive| and |\FancyVerbFormatCom|. Since counters are global, the exact location of the |\setcounter| commands at the end of the environment relative to |\begingroup...\endgroup| is not important.
+% A special buffer counter is used to track line numbers while avoiding incrementing the regular counter that is used for typeset code. Some macros do nothing with the default |bufferer|, but are needed to enable \fancyvrb\ options when a custom |bufferer| is used in conjunction with optional environment arguments. These include |\FancyVerbDefineActive| and |\FancyVerbFormatCom|. Since counters are global, the exact location of the |\setcounter| commands at the end of the environment relative to |\begingroup...\endgroup| is not important.
% \begin{macrocode}
\newcounter{FancyVerbBufferLine}
\newcounter{FV@oldbufferlength}
@@ -3997,53 +4172,77 @@
%
%
% \subsubsection{\cmd{\VerbatimInsertBuffer}}
-% \begin{macro}{\VerbatimInsertBuffer}
-% This inserts an existing buffer created by |VerbatimBuffer| as a |Verbatim| environment. It customizes |Verbatim| internals to function with a buffer in a command context.
+% \begin{macro}{\VerbatimInsertBuffer, insertenvname}
+% This inserts an existing buffer created with |VerbatimBuffer| as a verbatim environment. By default, the inserted environment is |Verbatim|; this can be modified with the option |insertenvname| to any |Verbatim|- or |BVerbatim|-based environment, or any environment with a compatible implementation. The |Verbatim| and |BVerbatim| internals are customized to function with a buffer in a command context.
+%
+% Notes on the implementation of |\VerbatimInsertBuffer@i|:
+% \begin{itemize}
+% \item The active |^^M| allows a verbatim environment to read optional arguments in the usual way, without requiring modifications to argument-reading macros.
+% \item The |\begingroup\fvset{#1}\global\let\FV@CurrentVerbatimInsertEnvName...| is used to extract any |insertenvname| setting from optional arguments. Most optional arguments apply to the verbatim environment or to the customized verbatim internals that are invoked within it. However, |insertenvname| is needed earlier to determine which verbatim environment is in use. It is not possible simply to use |\fvset{#1}| before the verbatim environment to apply all settings, because that would conflict with the precedence of option processing in |\FV@Environment|.
+% \end{itemize}
% \begin{macrocode}
-\newcommand{\VerbatimInsertBuffer}[1][]{%
- \begingroup
+\define@key{FV}{insertenvname}{%
+ \def\FV@VerbatimInsertEnvName{#1}}
+\fvset{insertenvname=Verbatim}
+\def\FV@Environment@InsertBuffer#1#2{%
\def\FV@KeyValues{#1}%
- \def\FV@Scan{%
- \FV@CatCodes
- \xdef\FV@EnvironName{Verbatim}%
- \ifnum\expandafter\value\expandafter{\FV@bufferlengthname}=\z@\relax
- \PackageError{fvextra}%
- {Buffer length counter \FV@bufferlengthname\space is invalid or zero}%
- {}%
- \let\FV@GetLine\relax
+ \FV@GetKeyValues{\@nameuse{FVB@#2}}}
+\def\FV@Scan@InsertBuffer{%
+ \FV@CatCodes
+ \xdef\FV@EnvironName{\FV@VerbatimInsertEnvName}%
+ \ifnum\expandafter\value\expandafter{\FV@bufferlengthname}=\z@\relax
+ \PackageError{fvextra}%
+ {Buffer length counter \FV@bufferlengthname\space is invalid or zero}%
+ {}%
+ \let\FV@GetLine\relax
+ \fi
+ \FV@BeginScanning}%
+\def\VerbatimInsertBuffer@def@FV@Line#1{%
+ \FVExtraRetokenizeVArg{\def\FV@Line}{}{#1}}
+\def\FancyVerbGetLine@VerbatimInsertBuffer{%
+ \ifnum\value{FancyVerbBufferIndex}>%
+ \expandafter\value\expandafter{\FV@bufferlengthname}\relax
+ \global\let\FV@EnvironName\relax
+ \let\next\relax
+ \else
+ \ifcsname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
+ \expandafter\let\expandafter\FV@Line@Buffer
+ \csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
+ \expandafter\VerbatimInsertBuffer@def@FV@Line\expandafter{\FV@Line@Buffer}%
+ \def\next{\FV@PreProcessLine\FV@GetLine}%
+ \stepcounter{FancyVerbBufferIndex}%
+ \else
+ \def\next{%
+ \PackageError{fvextra}%
+ {Buffer with line macro named
+ "\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}" does not exist}%
+ {Check bufferlinename, bufferlengthname, and globalbuffer settings}%
+ }%
\fi
- \FV@GetLine}%
+ \fi
+ \next}
+\newcommand{\VerbatimInsertBuffer}[1][]{%
+ \begingroup
+ \let\FV@Scan\FV@Scan@InsertBuffer
\let\FV@CheckScan\relax
+ \let\FV@Environment\FV@Environment@InsertBuffer
+ \let\FancyVerbGetLine\FancyVerbGetLine@VerbatimInsertBuffer
\setcounter{FancyVerbBufferIndex}{1}%
- \def\VerbatimInsertBuffer@def@FV@Line##1{%
- \FVExtraRetokenizeVArg{\def\FV@Line}{}{##1}}
- \def\FancyVerbGetLine{%
- \ifnum\value{FancyVerbBufferIndex}>%
- \expandafter\value\expandafter{\FV@bufferlengthname}\relax
- \global\let\FV@EnvironName\relax
- \let\next\relax
- \else
- \ifcsname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
- \expandafter\let\expandafter\FV@Line@Buffer
- \csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
- \expandafter\VerbatimInsertBuffer@def@FV@Line\expandafter{\FV@Line@Buffer}%
- \def\next{\FV@PreProcessLine\FV@GetLine}%
- \stepcounter{FancyVerbBufferIndex}%
- \else
- \def\next{%
- \PackageError{fvextra}%
- {Buffer with line macro named
- "\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}" does not exist}%
- {Check bufferlinename, bufferlengthname, and globalbuffer settings}%
- }%
- \fi
- \fi
- \next}%
- \FVB@Verbatim
- \FVE@Verbatim
+ \VerbatimInsertBuffer@i{#1}%
\setcounter{FancyVerbBufferIndex}{0}%
\endgroup
\@doendpe}
+\begingroup
+\catcode`\^^M=\active
+\gdef\VerbatimInsertBuffer@i#1{%
+ \begingroup%
+ \fvset{#1}%
+ \global\let\FV@CurrentVerbatimInsertEnvName\FV@VerbatimInsertEnvName%
+ \endgroup%
+ \csname \FV@CurrentVerbatimInsertEnvName\endcsname[#1]^^M%
+ \csname end\FV@CurrentVerbatimInsertEnvName\endcsname%
+ \global\let\FV@CurrentVerbatimInsertEnvName\FV@Undefined}%
+\endgroup
% \end{macrocode}
% \end{macro}
%
@@ -4714,7 +4913,7 @@
%
%
% \begin{macro}{\FV@ListProcessLine@NoBreak}
-% Redefined |\FV@ListProcessLine| in which |\FancyVerbFormatText| is added and tab handling is explicit. The |@NoBreak| suffix is added because |\FV@ListProcessLine| will be |\let| to either this macro or to |\FV@ListProcessLine@Break| depending on whether line breaking is enabled.
+% Redefined |\FV@ListProcessLine| in which |bgcolor| support is added, |\FancyVerbFormatText| is added, and tab handling is explicit. The |@NoBreak| suffix is added because |\FV@ListProcessLine| will be |\let| to either this macro or to |\FV@ListProcessLine@Break| depending on whether line breaking is enabled.
% \begin{macrocode}
\def\FV@ListProcessLine@NoBreak#1{%
\hbox to \hsize{%
@@ -4722,9 +4921,10 @@
\hbox to \linewidth{%
\FV@LeftListNumber
\FV@LeftListFrame
- \FancyVerbFormatLine{%
- \FancyVerbHighlightLine{%
- \FV@ObeyTabs{\FancyVerbFormatText{#1}}}}\hss
+ \FV@BGColor@List{%
+ \FancyVerbFormatLine{%
+ \FancyVerbHighlightLine{%
+ \FV@ObeyTabs{\FancyVerbFormatText{#1}}}}}\hss
\FV@RightListFrame
\FV@RightListNumber}%
\hss}}
@@ -4737,6 +4937,10 @@
% \begin{macrocode}
\def\FV@BProcessLine#1{%
\hbox{\FancyVerbFormatLine{%
+ \ifx\FancyVerbBackgroundColor\relax
+ \else
+ \expandafter\FancyVerbBackgroundColorVPhantom
+ \fi
\FancyVerbHighlightLine{%
\FV@ObeyTabs{\FancyVerbFormatText{#1}}}}}}
% \end{macrocode}
@@ -4964,6 +5168,194 @@
%
%
%
+% \subsubsection{Background color}
+% \label{sec:impl:extensions:bgcolor}
+%
+% Define an option |backgroundcolor| that provides a basic implementation of a background color behind commands and environments. \pkg{tcolorbox} or a similar package should be used for more sophisticated background colors.
+% \begin{macro}{backgroundcolor,bgcolor,\FancyVerbBackgroundColor}
+% \begin{macrocode}
+\define@key{FV}{backgroundcolor}{%
+ \def\FancyVerbBackgroundColor{#1}%
+ \ifx\FancyVerbBackgroundColor\FV@None
+ \let\FancyVerbBackgroundColor\relax
+ \else\ifx\FancyVerbBackgroundColor\@empty
+ \let\FancyVerbBackgroundColor\relax
+ \fi\fi}%
+\fvset{backgroundcolor=none}
+\define@key{FV}{bgcolor}{%
+ \fvset{backgroundcolor=#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{backgroundcolorvphantom,bgcolorvphantom,\FancyVerbBackgroundColorVPhantom}
+% \begin{macrocode}
+\define@key{FV}{backgroundcolorvphantom}{%
+ \def\FancyVerbBackgroundColorVPhantom{#1}%
+ \ifx\FancyVerbBackgroundColorVPhantom\FV@None
+ \let\FancyVerbBackgroundColorVPhantom\relax
+ \else\ifx\FancyVerbBackgroundColorVPhantom\@empty
+ \let\FancyVerbBackgroundColorVPhantom\relax
+ \fi\fi}
+\fvset{backgroundcolorvphantom=\vphantom{\"Apgjy}}
+\define@key{FV}{bgcolorvphantom}{%
+ \fvset{backgroundcolorvphantom=#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{backgroundcolorpadding, bgcolorpadding, \FancyVerbBackgroundColorPadding}
+% \begin{macrocode}
+\let\FancyVerbBackgroundColorPadding\relax
+\def\FV@backgroundcolorpadding@none@framenotsingle{%
+ \fvset{frame=none,framerule,rulecolor=none}}
+\def\FV@backgroundcolorpadding@dim@framenotsingle{%
+ \fvset{frame=single,framerule=0pt,rulecolor=\FancyVerbBackgroundColor}}
+\define@key{FV}{backgroundcolorpadding}{%
+ \def\FancyVerbBackgroundColorPadding{#1}%
+ \ifx\FancyVerbBackgroundColorPadding\FV@None
+ \let\FancyVerbBackgroundColorPadding\relax
+ \else\ifx\FancyVerbBackgroundColorPadding\@empty
+ \let\FancyVerbBackgroundColorPadding\relax
+ \fi\fi
+ \let\FV@Next\relax
+ \ifx\FancyVerbBackgroundColorPadding\relax
+ \ifx\FV@BeginListFrame\FV@BeginListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@none@framenotsingle
+ \fi
+ \ifx\FV@LeftListFrame\FV@LeftListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@none@framenotsingle
+ \fi
+ \ifx\FV@RightListFrame\FV@RightListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@none@framenotsingle
+ \fi
+ \ifx\FV@EndListFrame\FV@EndListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@none@framenotsingle
+ \fi
+ \FV@Next
+ \fvset{framesep,fillcolor=none}%
+ \else
+ \ifx\FV@BeginListFrame\FV@BeginListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@dim@framenotsingle
+ \fi
+ \ifx\FV@LeftListFrame\FV@LeftListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@dim@framenotsingle
+ \fi
+ \ifx\FV@RightListFrame\FV@RightListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@dim@framenotsingle
+ \fi
+ \ifx\FV@EndListFrame\FV@EndListFrame@Single
+ \else
+ \let\FV@Next\FV@backgroundcolorpadding@dim@framenotsingle
+ \fi
+ \FV@Next
+ \fvset{framesep=#1,fillcolor=\FancyVerbBackgroundColor}%
+ \fi}
+\define@key{FV}{bgcolorpadding}{\fvset{backgroundcolorpadding=#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\FV@BGColor@List}
+% Background color for environments based on |Verbatim|. Puts each line in a colorbox. The |\FancyVerbBackgroundColorVPhantom| will not have any effect in this case, unless it is larger than |\strut|.
+% \begin{macrocode}
+\def\FV@BGColor@List#1{%
+ \ifx\FancyVerbBackgroundColor\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {#1}%
+ {\setlength{\FV@TmpLength}{\fboxsep}%
+ \setlength{\fboxsep}{0pt}%
+ \colorbox{\FancyVerbBackgroundColor}{%
+ \setlength{\fboxsep}{\FV@TmpLength}%
+ \rlap{\FancyVerbBackgroundColorVPhantom\strut#1}%
+ \hspace{\linewidth}%
+ \ifx\FV@RightListFrame\relax\else
+ \hspace{-\FV@FrameSep}%
+ \hspace{-\FV@FrameRule}%
+ \fi
+ \ifx\FV@LeftListFrame\relax\else
+ \hspace{-\FV@FrameSep}%
+ \hspace{-\FV@FrameRule}%
+ \fi}%
+ \hss}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\FV@BVerbatimBegin,\FV@BVerbatimEnd}
+% Reimplementation of |BVerbatim| macros to support |bgcolor|. Much of this follows the implementation of |SaveVerbatim| and |\BUseVerbatim|.
+%
+% Key values, formatting, and tabs must be configured immediately in the |bgcolor| case, so that the background color and other settings are available. |\FV@UseKeyValues| can be invoked multiple times, but that doesn't cause any issues since |\FV@UseKeyValues| applies keys and then redefines |\FV@KeyValues| to empty.
+%
+% The definition of |\FV@BProcessLine| already accounts for |\FancyVerbBackgroundColorVPhantom|.
+% \begin{macrocode}
+\let\FV@BVerbatimBegin@NoBGColor\FV@BVerbatimBegin
+\let\FV@BVerbatimEnd@NoBGColor\FV@BVerbatimEnd
+\def\FV@BVerbatimBegin{%
+ \begingroup
+ \FV@UseKeyValues
+ \FV@FormattingPrep
+ \let\FV@FormattingPrep\relax
+ \FV@ObeyTabsInit
+ \let\FV@ObeyTabsInit\relax
+ \ifx\FancyVerbBackgroundColor\relax
+ \expandafter\FV@BVerbatimBegin@NoBGColor
+ \else
+ \expandafter\FV@BVerbatimBegin@BGColor
+ \fi}
+\def\FV@BVerbatimEnd{%
+ \ifx\FancyVerbBackgroundColor\relax
+ \expandafter\FV@BVerbatimEnd@NoBGColor
+ \else
+ \expandafter\FV@BVerbatimEnd@BGColor
+ \fi
+ \endgroup}
+\def\FV@BVerbatimBegin@BGColor{%
+ \gdef\FV@TheVerbatim{}%
+ \ifx\FV@boxwidth\relax
+ \gdef\FV@boxwidth@tmp{0pt}%
+ \def\FV@ProcessLine##1{%
+ \sbox{\FV@LineBox}{\FV@BProcessLine{##1}}%
+ \ifdim\wd\FV@LineBox>\FV@boxwidth@tmp\relax
+ \xdef\FV@boxwidth@tmp{\the\wd\FV@LineBox}%
+ \fi
+ \expandafter\gdef\expandafter\FV@TheVerbatim\expandafter{%
+ \FV@TheVerbatim\FV@ProcessLine{##1}}}%
+ \else
+ \def\FV@ProcessLine##1{%
+ \expandafter\gdef\expandafter\FV@TheVerbatim\expandafter{%
+ \FV@TheVerbatim\FV@ProcessLine{##1}}}%
+ \fi}
+\def\FV@BVerbatimEnd@BGColor{%
+ \ifx\FV@boxwidth\relax
+ \let\FV@boxwidth\FV@boxwidth@tmp
+ \global\let\FV@boxwidth@tmp\FV@Undefined
+ \fi
+ \setlength{\FV@TmpLength}{\fboxsep}%
+ \ifx\FancyVerbBackgroundColorPadding\relax
+ \setlength{\fboxsep}{0pt}%
+ \else
+ \setlength{\fboxsep}{\FancyVerbBackgroundColorPadding}%
+ \fi
+ \colorbox{\FancyVerbBackgroundColor}{%
+ \setlength{\fboxsep}{\FV@TmpLength}%
+ \FV@BVerbatimBegin@NoBGColor\FV@TheVerbatim\FV@BVerbatimEnd@NoBGColor}%
+ \gdef\FV@TheVerbatim{}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
% \subsubsection{Line highlighting or emphasis}
% \label{sec:impl:extensions:highlighting}
%
@@ -5139,6 +5531,32 @@
% \end{macro}
%
%
+% \begin{macro}{\FV@StepLineNo@Patch@HighlightLine}
+% Patch |\FV@StepLineNo| so that when |numberblanklines=false|, blank lines won't be highlighted. If the previous line is at the end of a highlighted range, then |\let| |\FV@HighlightLine:<n>| to |\FV@Undefined| to prevent further highlighting. Otherwise, leave everything as-is since the blank line(s) are within a highlighted range.
+% \begin{macrocode}
+\def\FV@StepLineNo@Patch@HighlightLine{%
+ \ifcsname FV@HighlightLine:\number\c@FancyVerbLine\endcsname
+ \@tempcnta=\c@FancyVerbLine
+ \advance\@tempcnta\@ne
+ \ifcsname FV@HighlightLine:\number\@tempcnta\endcsname
+ \else
+ \expandafter\let
+ \csname FV@HighlightLine:\number\c@FancyVerbLine\endcsname\FV@Undefined
+ \fi
+ \fi}
+\patchcmd{\FV@StepLineNo}%
+ {\ifx\FV@Line\empty}%
+ {\ifx\FV@Line\empty\FV@StepLineNo@Patch@HighlightLine}%
+ {}%
+ {\PackageError{fvextra}%
+ {Failed to patch \string\FV@StepLineNo\ to make highlightlines
+ compatible with numberblanklines}%
+ {Failed to patch \string\FV@StepLineNo\ to make highlightlines
+ compatible with numberblanklines}}
+% \end{macrocode}
+% \end{macro}
+%
+%
%
%
% \subsection{Line breaking}
@@ -5350,6 +5768,7 @@
%
%
% We need macros that contain the logic for typesetting the break symbols. By default, the symbol macros contain everything regarding the symbol and its typesetting, while these macros contain pure logic. The symbols should be wrapped in braces so that formatting commands (for example, |\tiny|) don't escape.
+%
% \begin{macro}{\FancyVerbBreakSymbolLeftLogic}
% The left break symbol should only appear with continuation lines. Note that |linenumber| here refers to local line numbering for the broken line, \emph{not} line numbering for all lines in the environment being typeset.
% \begin{macrocode}
@@ -5421,6 +5840,30 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{breakanywhereinlinestretch,\FV@breakanywhereinlinestretch,\FV@ApplyBreakAnywhereInlineStretch}
+% Stretch glue to insert at potential |breakanywhere| break locations in inline contexts, to give better line widths and avoid overfull |\hbox|.
+%
+% |\FV@UseInlineKeyValues| invokes |\FV@ApplyBreakAnywhereInlineStretch| to redefine |\FancyVerbBreakAnywhereBreak| locally.
+% \begin{macrocode}
+\define@key{FV}{breakanywhereinlinestretch}{%
+ \def\FV@breakanywhereinlinestretch{#1}%
+ \ifx\FV@breakanywhereinlinestretch\FV@None
+ \let\FV@breakanywhereinlinestretch\relax
+ \else\ifx\FV@breakanywhereinlinestretch\@empty
+ \let\FV@breakanywhereinlinestretch\relax
+ \fi\fi}
+\fvset{breakanywhereinlinestretch=none}
+\def\FV@ApplyBreakAnywhereInlineStretch{%
+ \ifx\FV@breakanywhereinlinestretch\relax
+ \else
+ \let\FancyVerbBreakAnywhereBreak@Orig\FancyVerbBreakAnywhereBreak
+ \def\FancyVerbBreakAnywhereBreak{%
+ \nobreak\hspace{0pt plus \FV@breakanywhereinlinestretch}%
+ \FancyVerbBreakAnywhereBreak@Orig}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
%
% \begin{macro}{\FV@BreakBefore}
% Allow line breaking (almost) anywhere, but only before specified characters.
@@ -5452,7 +5895,7 @@
% \end{macro}
%
% \begin{macro}{\FV@BreakBeforePrep}
-% We need a way to break before characters if and only if they have been specified as breaking characters. It would be possible to do that via a nested conditional, but that would be messy. It is much simpler to create an empty macro whose name contains the character, and test for the existence of this macro. This needs to be done inside a |\begingroup...\endgroup| so that the macros do not have to be cleaned up manually. A good place to do this is in |\FV@FormattingPrep|, which is inside a group and before processing starts. The macro is added to |\FV@FormattingPrep@PreHook|, which contains \fvextra\ exntensions to |\FV@FormattingPrep|, after |\FV@BreakAfterPrep| is defined below.
+% We need a way to break before characters if and only if they have been specified as breaking characters. It would be possible to do that via a nested conditional, but that would be messy. It is much simpler to create an empty macro whose name contains the character, and test for the existence of this macro. This needs to be done inside a |\begingroup...\endgroup| so that the macros do not have to be cleaned up manually. A good place to do this is in |\FV@FormattingPrep|, which is inside a group and before processing starts. The macro is added to |\FV@FormattingPrep@PreHook|, which contains \fvextra\ extensions to |\FV@FormattingPrep|, after |\FV@BreakAfterPrep| is defined below.
%
% The procedure here is a bit roundabout. We need to use |\FV@EscChars| to handle character escapes, but the character redefinitions need to be kept local, requiring that we work within a |\begingroup...\endgroup|. So we loop through the breaking tokens and assemble a macro that will itself define character macros. Only this defining macro is declared global, and it contains \emph{expanded} characters so that there is no longer any dependence on |\FV@EscChars|.
%
@@ -5683,9 +6126,29 @@
% \end{macro}
%
%
+% \begin{macro}{breakpreferspaces,\FV@BreakHyphenation}
+% Adjust hyphenation settings for |breaklines|.
+%
+% When |breakbefore|, |breakafter|, or |breakanywhere| are in use, |\finalhyphendemerits=0| prevents the final ``word'' on a line from being put into a line segment by itself after line breaking. Otherwise, \TeX\ tries to avoid a line break (hyphenation) within a ``word'' on the penultimate line segment, and may accomplish this by introducing an unnecessary line break at the space before the last ``word.''
+%
+% |breakpreferspaces| (|\linepenalty|) determines whether line breaks are preferentially inserted at normal spaces (|breakcollapsespaces=true|, |showspaces=false|) rather than at other locations allowed by |breakbefore|, |breakafter|, or |breakanywhere|.
+% \begin{macrocode}
+\newbool{FV@breakpreferspaces}
+\booltrue{FV@breakpreferspaces}
+\define@booleankey{FV}{breakpreferspaces}%
+ {\booltrue{FV@breakpreferspaces}}%
+ {\boolfalse{FV@breakpreferspaces}}
+\def\FV@BreakHyphenation{%
+ \finalhyphendemerits=0\relax
+ \ifbool{FV@breakpreferspaces}{}{\linepenalty=\@M\relax}}
+\g@addto@macro\FV@FormattingPrep@PreHook{\FV@BreakHyphenation}
+% \end{macrocode}
+% \end{macro}
+%
+%
% \subsubsection{Line breaking implementation}
%
-% \paragraph{Helper macros}
+% \paragraph{Helper macros}\hfill\\
%
% \begin{macro}{\FV@LineBox}
% A box for saving a line of text, so that its dimensions may be determined and thus we may figure out if it needs line breaking.
@@ -5791,7 +6254,7 @@
% \begin{macro}{\FV@BreakBufferStart}
% Create a new buffer, either at the beginning of scanning or during recursion. The single mandatory argument is the macro for handling tokens, which is |\let| to |\FV@Break@Token|. An intermediate |\FV@BreakBufferStart@i| is used to optimize |\ifx| comparisons for |\FV@BreakBufferStart| during scanning.
%
-% For recursion, |\FV@BreakBuffer<n>| and |\FV@Break@Token<n>| store the state (buffer and token handling macro) immediately prior to recusion with depth |<n>|.
+% For recursion, |\FV@BreakBuffer<n>| and |\FV@Break@Token<n>| store the state (buffer and token handling macro) immediately prior to recursion with depth |<n>|.
% \begin{macrocode}
\def\FV@BreakBufferStart{%
\FV@BreakBufferStart@i}
@@ -6461,7 +6924,7 @@
%
%
%
-% \paragraph{Line processing before scanning}
+% \paragraph{Line processing before scanning}\hfill\\
%
% \begin{macro}{\FV@makeLineNumber}
% The \pkg{lineno} package is used for formatting wrapped lines and inserting break symbols. We need a version of \pkg{lineno}'s |\makeLineNumber| that is adapted for our purposes. This is adapted directly from the example |\makeLineNumber| that is given in the \pkg{lineno} documentation under the discussion of internal line numbers. The |\FV@SetLineBreakLast| is needed to determine the internal line number of the last segment of the broken line, so that we can disable the right-hand break symbol on this segment. When a right-hand break symbol is in use, a line of code will be processed twice: once to determine the last internal line number, and once to use this information only to insert right-hand break symbols on the appropriate lines. During the second run, |\FV@SetLineBreakLast| is disabled by |\let|ting it to |\relax|.
@@ -6588,8 +7051,9 @@
\FV@SaveLineBox{#1}}%
\FV@LeftListNumber
\FV@LeftListFrame
- \FancyVerbFormatLine{%
- \FancyVerbHighlightLine{\usebox{\FV@LineBox}}}%
+ \FV@BGColor@List{%
+ \FancyVerbFormatLine{%
+ \FancyVerbHighlightLine{\usebox{\FV@LineBox}}}}%
\FV@RightListFrame
\FV@RightListNumber
\ifx\FV@Tab\FV@TrueTab@UseWidth
@@ -6600,10 +7064,11 @@
\let\FancyVerbBreakStop\relax
\FV@LeftListNumber
\FV@LeftListFrame
- \FancyVerbFormatLine{%
- \FancyVerbHighlightLine{%
- \parbox[t]{\FV@LineWidth}{%
- \noindent\strut\FV@ObeyTabs{\FancyVerbFormatText{#1}}\strut}}}%
+ \FV@BGColor@List{%
+ \FancyVerbFormatLine{%
+ \FancyVerbHighlightLine{%
+ \parbox[t]{\FV@LineWidth}{%
+ \noindent\strut\FV@ObeyTabs{\FancyVerbFormatText{#1}}\strut}}}}%
\FV@RightListFrame
\FV@RightListNumber
\fi}%
@@ -6791,7 +7256,7 @@
%
% In the |breakbytoken| cases, an |\hbox| is used to prevent breaks within the macro (breaks could occur at spaces even without |\FancyVerbBreakStart|). The |breakbytokenanywhere| case is similar but a little tricky. |\FV@BreakByTokenAnywhereHook|, which is inside |\FV@SaveLineBox| where line breaking occurs, is used to define |\FV@BreakByTokenAnywhereBreak| so that it will ``do nothing'' the first time it is used and on subsequent invocations become |\FancyVerbBreakByTokenAnywhereBreak|. Because the hook is within the |internallinenumbers*| environment, the redefinition doesn't escape, and the default global definition of |\FV@BreakByTokenAnywhereBreak| as |\relax| is not affected. We don't want the actual break to appear before the first Pygments macro in case it might cause a spurious break after leading whitespace. But we must have breaks \emph{before} Pygments macros because otherwise lookahead would be necessary.
%
-% An intermediate variable |\FV@PYG| is defined to avoid problems in case |#1|$=$|#2|. There is also a check for a non-existant |#2| (|\PYG|\meta{style\_name} may not be created until a later compile in the \pkg{pythontex} case); if |#2| does not exist, fall back to |#1|. For the existance check, |\ifx...\relax| must be used instead of |\ifcsname|, because |#2| will be a macro, and will typically be created with |\csname...\endcsname| which will |\let| the macro to |\relax| if it doesn't already exist.
+% An intermediate variable |\FV@PYG| is defined to avoid problems in case |#1|$=$|#2|. There is also a check for a non-existent |#2| (|\PYG|\meta{style\_name} may not be created until a later compile in the \pkg{pythontex} case); if |#2| does not exist, fall back to |#1|. For the existence check, |\ifx...\relax| must be used instead of |\ifcsname|, because |#2| will be a macro, and will typically be created with |\csname...\endcsname| which will |\let| the macro to |\relax| if it doesn't already exist.
%
% |\FV@PYG@Redefed| is |\let| to the Pygments macro that appears literally (after redefinition), so that it can be detected elsewhere to allow for special processing, such as in |breakautoindent|.
% \begin{macrocode}
diff --git a/macros/latex/contrib/fvextra/fvextra.pdf b/macros/latex/contrib/fvextra/fvextra.pdf
index b38e213561..4d1e204c52 100644
--- a/macros/latex/contrib/fvextra/fvextra.pdf
+++ b/macros/latex/contrib/fvextra/fvextra.pdf
Binary files differ
diff --git a/macros/latex/contrib/gridset/LICENSE.md b/macros/latex/contrib/gridset/LICENSE.md
index 99a6973749..1863f2f61a 100644
--- a/macros/latex/contrib/gridset/LICENSE.md
+++ b/macros/latex/contrib/gridset/LICENSE.md
@@ -13,7 +13,7 @@ Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
in der Version 1.3c, verteilt und/oder verändert werden. Die aktuelle
Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01
-oder später. Dieses Werk hat den LPPL-Verwaltungs-Status „maintained”
+oder später. Dieses Werk hat den LPPL-Verwaltungs-Status „maintained”.
Der aktuelle Verwalter und Autor dieses Werks ist Markus Kohm.
----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/gridset/README.md b/macros/latex/contrib/gridset/README.md
index 0a1963d1eb..a27c928e92 100644
--- a/macros/latex/contrib/gridset/README.md
+++ b/macros/latex/contrib/gridset/README.md
@@ -4,10 +4,14 @@ An experimental LaTeX package for semi-manual grid (a.k.a. in-register) setting
------------------------------------------------------------------------------
-LaTeX package `gridset`
-Copyright (c) 2008—2020 Markus Kohm
-Release: 2020-02-12 v0.3
-License: LPPL 1.3c (see LICENSE.md)
+LaTeX package `gridset`
+
+Copyright (c) 2008—2024 Markus Kohm
+
+Release: 2024-08-17 v0.4
+
+License: LPPL 1.3c (see LICENSE.md)
+
CTAN Location: https://ctan.org/pkg/gridset
------------------------------------------------------------------------------
@@ -32,9 +36,31 @@ The package is part of [TeX Live](https://tug.org/texlive) (and therefore
also [MacTeX](https://tug.org/mactex)) and [MiKTeX](http://miktex.org). Users
should use the packages provided by their TeX distribution.
-However, manual extraction can be used to try out the developer version.
+------------------------------------------------------------------------------
+
+For a semi-manual installation you can first create a local clone
+if the repository:
+
+```bash
+git clone https://github.com/komascript/gridset.git
+```
+
+Then enter the directory created while cloning the repository:
+
+```bash
+cd gridset
+```
+
+Last, but not least use `l3build` to install it locally:
+
+```bash
+l3build install --full
+```
+
+------------------------------------------------------------------------------
-To extract the package use:
+To do a completely manual installation, download `gridset.dtx`. Then extract
+it using:
```bash
tex gridset.dtx
@@ -48,3 +74,16 @@ mkindex gridset
pdflatex gridset.dtx
pdflatex gridset.dtx
```
+
+Now, you can either install it in the proper directory or copy `gridset.sty`
+to your document directory.
+
+------------------------------------------------------------------------------
+
+# How to Say Thank You for my Work
+
+Hey, I'm doing this as a hobby. So no need to say thank you. But I'm a vain
+fop, so I'm certainly up for a quick thank you by email. On komascript.de you
+can find an [explanation of my wishes](https://komascript.de/wunschliste) if
+you want to give more. If you don't understand German, just click to links at
+that page.
diff --git a/macros/latex/contrib/gridset/gridset.dtx b/macros/latex/contrib/gridset/gridset.dtx
index 68b251db55..29818473fb 100644
--- a/macros/latex/contrib/gridset/gridset.dtx
+++ b/macros/latex/contrib/gridset/gridset.dtx
@@ -2,7 +2,7 @@
%
% gridset.dtx
%
-%% Copyright (C) 2008-2020 Markus Kohm
+%% Copyright (C) 2008-2024 Markus Kohm
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,37 +25,17 @@
%%
%
%<*dtx>
-\def\FmtName{LaTeX2e}
-\ifx\FmtName\fmtname
- % Give me the package or the documentation
- \ifnum \catcode`\@=12\relax
- % Give me the documentation
- \ProvidesFile{gridset.dtx}
+\ifx\ProvidesFile\undfined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{gridset.dtx}
%</dtx>
%<*dtx|package|example>
%<package>\ProvidesPackage{gridset}
%<example>\ProvidesFile{gridsetexample.tex}
- [2020-02-12 v0.3 grid - a.k.a. in-register - setting]
+ [2024-08-17 v0.4 grid - a.k.a. in-register - setting]
%</dtx|package|example>
%<*dtx>
- \documentclass{ltxdoc}
- \begin{document}
- \RecordChanges
- \GetFileInfo{gridset.dtx}
- \DocInput{gridset.dtx}
-%</dtx>
-%<*dtx>
- \expandafter\expandafter\expandafter\enddocument
- \fi
-\else
- % Make the package
- \def\batchfile{gridset.dtx}
- \let\batchendinput\endinput
-%</dtx>
-%<*ins>
-%<ins>\def\batchfile{gridset.ins}
+\ifx\documentclass\undefined
\input docstrip.tex
-
\keepsilent
\askforoverwritefalse
\usedir{tex/latex/gridset}
@@ -98,12 +78,16 @@ about the files the work consists of.
\Msg{*}
\Msg{*********************************************************************}
}
-
-%</ins>
-%<*dtx>
+\else
+ \let\endbatchfile\relax
\fi
-\csname fi\endcsname
-\csname batchendinput\endcsname
+\endbatchfile
+\documentclass{ltxdoc}
+\begin{document}
+\RecordChanges
+\GetFileInfo{gridset.dtx}
+\DocInput{gridset.dtx}
+\end{document}
%</dtx>
% \fi ^^A meta-comment
%
@@ -313,6 +297,12 @@ about the files the work consists of.
% \item the x-coordinate of the absolute position,
% \item the y-coordinate of the absolute position.
% \end{itemize}
+% \begin{description}
+% \item[Todo:] Currently we use our own command \cs{newpos} to store the
+% position information in the \texttt{aux}-file. But with the extended
+% reference mechanism of \LaTeX{} since 2023-11-01 this should be replaced
+% by the new properties.
+% \end{description}
% \begin{macrocode}
\newcommand*{\SavePos}[1]{%
\begingroup
@@ -411,8 +401,17 @@ about the files the work consists of.
that won't be reported!}%
\fi
}
+% \end{macrocode}
+% \changes{0.4}{2024/08/17}{fix deactivation of
+% \cs{grid@unique@test}
+% (\href{https://github.com/komascript/gridset/issues/1}{Issue \#1})}
+% The test should be done only, when reading the \texttt{aux} file at
+% |\begin{document}|, but not later (e.g. at |\end{document}|). So we
+% deactivate the test after reading the \texttt{aux} file in
+% |\begin{document}|.
+% \begin{macrocode}
\AtBeginDocument{%
- \global\let\grid@unique@test\@gobble
+ \global\let\grid@unique@test\@gobbletwo
}
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex/contrib/gridset/gridset.pdf b/macros/latex/contrib/gridset/gridset.pdf
index 3f6a39a8e9..a2af21f205 100644
--- a/macros/latex/contrib/gridset/gridset.pdf
+++ b/macros/latex/contrib/gridset/gridset.pdf
Binary files differ
diff --git a/macros/latex/contrib/harmony/README b/macros/latex/contrib/harmony/README
index da777f5964..39f72b35f7 100644
--- a/macros/latex/contrib/harmony/README
+++ b/macros/latex/contrib/harmony/README
@@ -1,43 +1,26 @@
-harmony.sty 2007/05/04
+harmony 2024/08/01
-Copyright 2005 - 2007
+Copyright 2005 - 2024
Dagny Wegner <dagny.wegner@t-online.de>
-Arnim Wegner <arnim.wegner@t-online.de>
+Arnim Wegner <arnim.e.wegner@t-online.de>
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
version 1.3 of this license or (at your option) any
later version.
-The latest version of this license is in
-http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions
-of LaTeX version 2005/12/01 or later.
-
-This work has the LPPL maintenance status `maintained'.
-
-The Current Maintainers of this work are
-Dagny Wegner and Arnim Wegner.
This work consists of the files harmony.sty,
harmony.tex, harmony.pdf, and Readme.
--------------------------------------------------------
-
-harmony.sty uses the packages ifthen and amssymb
-and the fonts lcirclew10, musix11, and musix13.
-
--------------------------------------------------------
+harmony.sty uses the packages ifthen, mathtools and amssymb
+and the fonts lcircle10, musix11 and musix13.
harmony.sty is a LaTeX2e package for typesetting
harmony symbols etc. in musicological texts;
usage: cf. harmony.pdf.
-Many commands in this package are only suitable
-for size 12pt !
harmony.sty ist ein LaTeX2e-Package zum Setzen von
Harmoniesymbolen etc. in musikwissenschaftlichen Texten;
Benutzung: vgl. harmony.pdf.
-Viele Befehle in diesem Package sind
-nur fr die Schriftgre 12pt geeignet!
diff --git a/macros/latex/contrib/harmony/harmony.pdf b/macros/latex/contrib/harmony/harmony.pdf
index 4b523de911..b792390663 100644
--- a/macros/latex/contrib/harmony/harmony.pdf
+++ b/macros/latex/contrib/harmony/harmony.pdf
Binary files differ
diff --git a/macros/latex/contrib/harmony/harmony.sty b/macros/latex/contrib/harmony/harmony.sty
index ce528cf085..1145113c4d 100644
--- a/macros/latex/contrib/harmony/harmony.sty
+++ b/macros/latex/contrib/harmony/harmony.sty
@@ -1,29 +1,30 @@
-%% harmony.sty 2007/05/04
-%% Copyright 2005 - 2007
+%% harmony.sty 2024/08/01
+%% Copyright 2005 - 2024
%% Dagny Wegner <dagny.wegner@t-online.de>
-%% Arnim Wegner <arnim.wegner@t-online.de>
+%% Arnim Wegner <arnim.e.wegner@t-online.de>
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3 of this license or (at your option) any
% later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions
-% of LaTeX version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainers of this work are
-% Dagny Wegner and Arnim Wegner.
%
% This work consists of the files harmony.sty,
% harmony.tex, harmony.pdf, and Readme.
% ==================================================================================
+\ProvidesPackage{harmony}[2024/08/01]
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{harmony}[2007/05/04]
\RequirePackage{ifthen}
\RequirePackage{amssymb}
+\RequirePackage{mathtools} % contains \overbracket
+%
+\newcounter{notekorr}
+\DeclareOption{8pt}{\setcounter{notekorr}{800}}
+\DeclareOption{9pt}{\setcounter{notekorr}{900}}
+\DeclareOption{10pt}{\setcounter{notekorr}{1000}}
+\DeclareOption{11pt}{\setcounter{notekorr}{1100}}
+\DeclareOption{12pt}{\setcounter{notekorr}{1200}}
+\DeclareOption{13pt}{\setcounter{notekorr}{1300}}
+\DeclareOption{14pt}{\setcounter{notekorr}{1400}}
\DeclareOption{sf}{\def\FAM{\sffamily}}
\DeclareOption{rm}{\def\FAM{\rmfamily}}
\ExecuteOptions{sf}
@@ -43,14 +44,31 @@
\newbox\nbxg
\newbox\nbxh
\newbox\nbxi
-\newfont{\KREIS}{lcirclew10}
-\newfont{\NOTEN}{musix13}
-\newfont{\noten}{musix11}% 2007/05/03
+\newcounter{notescl}
+\newcounter{fontscl}
%
-\newcommand{\Ohne}[2][0em]{%
+\ifthenelse{\value{notekorr}=0}%
+{\ifthenelse{\@ptsize<-2}{\setcounter{notescl}{800}}{}
+\ifthenelse{\equal{\@ptsize}{-2}}{\setcounter{notescl}{800}}{}
+\ifthenelse{\equal{\@ptsize}{-1}}{\setcounter{notescl}{900}}{}
+\ifthenelse{\equal{\@ptsize}{0}}{\setcounter{notescl}{1000}}{}
+\ifthenelse{\equal{\@ptsize}{1}}{\setcounter{notescl}{1100}}{}
+\ifthenelse{\equal{\@ptsize}{2}}{\setcounter{notescl}{1200}}{}
+\ifthenelse{\equal{\@ptsize}{3}}{\setcounter{notescl}{1300}}{}
+\ifthenelse{\equal{\@ptsize}{4}}{\setcounter{notescl}{1400}}{}
+\ifthenelse{\@ptsize>4}{\setcounter{notescl}{1400}}{}}
+{\setcounter{notescl}{\value{notekorr}}}
+%
+\newfont{\NOTEN}{musix13 scaled \value{notescl}}
+\newfont{\noten}{musix11 scaled \value{notescl}}
+\setcounter{fontscl}{\value{notescl}}
+\addtocounter{fontscl}{1000}
+\newfont{\KREIS}{lcircle10 scaled \value{fontscl}}
+%
+\newcommand{\Ohne}[2][0.17em]{%
\setbox\nbxi=\hbox{%
\FAM%
-\setbox\nbxa=\hbox{\sl\large /}%
+\setbox\nbxa=\hbox{\textsl\large\raisebox{0.2ex}{/}}%
#2%
\kern-0.8em%
\kern#1%
@@ -60,8 +78,14 @@
}%
\unhbox\nbxi%
}
+\let\Sans\Ohne
%
\newcommand{\Dohne}{\Ohne{D}}
+\let\Dsans\Dohne
+\newcommand{\DohneR}{\framebox{\Dohne}}
+\let\DsansR\DohneR
+\newcommand{\Dohner}{\frame{\Dohne}}
+\let\Dsansr\Dohner
%
\newcommand{\DD}{%
\setbox\nbxi=\hbox{%
@@ -73,6 +97,9 @@
\unhbox\nbxi%
}
%
+\newcommand{\DDR}{\framebox{\DD}}
+\newcommand{\DDr}{\frame{\DD}}
+%
\newcommand{\DS}{%
\setbox\nbxi=\hbox{%
\FAM%
@@ -96,7 +123,7 @@
\newcommand{\DDohne}{%
\setbox\nbxi=\hbox{%
\FAM%
-\setbox\nbxa=\hbox{\sl\large /}%
+\setbox\nbxa=\hbox{\textsl\large\raisebox{0.25ex}{/}}%
\raise0.2ex\hbox{D}%
\kern-0.5em%
\lower0.2ex\hbox{D}%
@@ -107,17 +134,23 @@
}%
\box\nbxi%
}
+\let\DDsans\DDohne
+%
+\newcommand{\DDohneR}{\framebox{\DDohne}}
+\let\DDsansR\DDohneR
+\newcommand{\DDohner}{\frame{\DDohne}}
+\let\DDsansr\DDohner
%
\newcommand{\VM}{%
\setbox\nbxg=\hbox{>}%
\setbox\nbxh=\hbox to \wd\nbxg{%
-\raise0.24ex\hbox{{\boldmath$\scriptscriptstyle{>}$\unboldmath}\hss}}% 2005/05/10
+\raise0.24ex\hbox{{\boldmath$\scriptscriptstyle{>}$\unboldmath}\hss}}%
\box\nbxh}
%
\newcommand{\UB}{%
\setbox\nbxg=\hbox{<}%
\setbox\nbxh=\hbox to \wd\nbxg{%
-\raise0.24ex\hbox{\boldmath$\scriptscriptstyle{<}$\unboldmath\hss}}% 2005/05/10
+\raise0.24ex\hbox{\boldmath$\scriptscriptstyle{<}$\unboldmath\hss}}%
\box\nbxh}
%
\newcommand{\HAa}[3]{%
@@ -243,6 +276,9 @@
{\HAc{#1}{#2}{#3}{#4}{#5}}%
}
%
+\def\HHR.#1.#2.#3.#4.#5.{\framebox{\HH.#1.#2.#3.#4.#5.}}%
+\def\HHr.#1.#2.#3.#4.#5.{\frame{\HH.#1.#2.#3.#4.#5.\hspace{0.17em}}}%
+%
\newcommand{\FERM}[2][0.1pt]{%
\setbox\nbxi=\hbox{%
\FAM%
@@ -287,15 +323,13 @@
\kern-\tmpdima\box\nbxb%
}}
%
-\newcommand{\Kr}[1]{%
-\ifthenelse{\equal{\@ptsize}{2}}{\@tempcnta=110}%
-{\ifthenelse{\equal{\@ptsize}{1}}{\@tempcnta=109}%
-{\@tempcnta=108}}%
+\newcommand{\Kr}[2][102]{%
+\ifthenelse{#1>110}{\@tempcnta=110}%
+{\ifthenelse{#1<100}{\@tempcnta=100}{\@tempcnta=#1}}
\setbox\nbxi=\hbox{%
-\FAM\small%
\setbox\nbxa=\hbox{#1}%
\setbox\nbxb=\hbox{\KREIS\char\@tempcnta}%
-\setbox\nbxc=\hbox to \wd\nbxb{\hss #1\hss}%
+\setbox\nbxc=\hbox to \wd\nbxb{\hss #2\hss}%
\tmpdima=0.5\ht\nbxa%
\advance\tmpdima by -0.4\dp\nbxa\relax%
\copy\nbxc%
@@ -332,8 +366,8 @@
{\raisebox{0.58ex}[8pt][2pt]{\kern-1pt\NOTEN\symbol{82}\kern0.3em}}}%
{\kern0.05em\ueber{#1}{#2}\kern0.05em%
}}}
-%
-\newcommand{\Ganz}{{\NOTEN\kern0.05em\raisebox{0.5ex}{\symbol{9}}\kern1.35em}}
+% Noten
+\newcommand{\Ganz}{{\NOTEN\kern0.05em\raisebox{0.5ex}{\symbol{9}}\kern1.5em}}
\newcommand{\Halb}{{\NOTEN\kern0.05em\raisebox{0.5ex}{\symbol{8}\kern0.936em%
\raisebox{0.55ex}{\symbol{16}}}\kern0.2em}}
\newcommand{\Vier}{{\NOTEN\kern0.05em\raisebox{0.5ex}{\symbol{7}\kern0.955em%
@@ -343,7 +377,7 @@
\newcommand{\Sech}{{\NOTEN\kern0.05em\raisebox{0.5ex}{\symbol{7}\kern0.955em%
\raisebox{0.55ex}{\symbol{16}}}\symbol{41}\kern0.9em}}
\newcommand{\Zwdr}{{\NOTEN\kern0.05em\raisebox{0.5ex}{\symbol{7}\kern0.955em%
-\raisebox{0.55ex}{\symbol{16}}}\symbol{42}\kern0.9em}}
+\raisebox{0.55ex}{\symbol{16}}\raisebox{1.3ex}{\symbol{16}}}\symbol{42}\kern0.9em}}
\newcommand{\GaPa}{{\NOTEN\kern0.055em\raisebox{0.25ex}{\symbol{60}}\kern0.05em}}
\newcommand{\HaPa}{{\NOTEN\kern0.055em\raisebox{0.25ex}{\symbol{60}}\kern0.05em}}
\newcommand{\ViPa}{{\NOTEN\kern0.05em\raisebox{-0.8ex}{\symbol{62}}\kern0.955em}}
@@ -351,28 +385,76 @@
\newcommand{\SePa}{{\NOTEN\kern0.15em\raisebox{-0.4ex}{\symbol{64}}\kern1.3em}}
\newcommand{\ZwPa}{{\NOTEN\kern0.25em\raisebox{-0.8ex}{\symbol{65}}\kern1.4em}}
\newcommand{\Pu}{{\NOTEN\kern-0.2em\raisebox{-0.5ex}{\symbol{24}}\kern1em}}
-\newcommand{\AAcht}{\Vier\kern0.1em\Vier{\NOTEN\kern-1.72em\raisebox{3.1ex}%
+\newcommand{\AAcht}{{\NOTEN\Vier\kern0.3em\Vier\kern-1.72em\raisebox{3.1ex}%
{\symbol{61}\kern-0.87em\symbol{61}}}}
-\newcommand{\AchtBL}% 2007/05/03
-{\kern0.135em\Vier%
-{\NOTEN\kern-1.82em\raisebox{3.05ex}{\symbol{61}\kern-0.87em\symbol{61}}\kern0.09em}}
-\newcommand{\SechBL}% 2007/05/03
-{\kern0.135em\Vier%
-{\NOTEN\kern-1.82em\raisebox{3.05ex}{\symbol{61}\kern-0.87em\symbol{61}}%
+\newcommand{\AchtBL}{{\NOTEN\Vier\kern-1.82em\raisebox{3.05ex}{\symbol{61}\kern-0.87em\symbol{61}}}}
+\newcommand{\AchtBR}{{\NOTEN\Vier\kern-0.1em\raisebox{3.05ex}{\symbol{61}\kern-0.87em\symbol{61}}}}
+\newcommand{\SechBL}{{\NOTEN\Vier\kern-1.82em\raisebox{3.05ex}{\symbol{61}\kern-0.87em\symbol{61}}%
\kern-1.63em\raisebox{2.3ex}{\symbol{61}\kern-0.87em\symbol{61}}\kern0.09em}}
-\newcommand{\SechBl}% 2007/05/03
-{\kern0.135em\Vier%
-{\NOTEN\kern-1.82em\raisebox{3.05ex}{\symbol{61}\kern-0.87em\symbol{61}}%
+\newcommand{\SechBl}{{\NOTEN\Vier\kern-1.82em\raisebox{3.05ex}{\symbol{61}\kern-0.87em\symbol{61}}%
\kern-1.63em\raisebox{2.3ex}{{\noten\kern0.9em\symbol{61}}}\kern0.09em}}
-\newcommand{\AchtBR}% 2007/05/03
-{\kern0.135em\Vier%
-{\NOTEN\kern-0.1em\raisebox{3.05ex}{\symbol{61}\kern-0.87em\symbol{61}}\kern-1em}}
-\newcommand{\SechBR}% 2007/05/03
-{\kern0.135em\Vier%
-{\NOTEN\kern-0.1em\raisebox{3.05ex}{\symbol{61}\kern-0.87em\symbol{61}}%
-\kern-1.63em\raisebox{2.3ex}{\symbol{61}\kern-0.87em\symbol{61}}\kern-1.01em}}
-\newcommand{\SechBr}% 2007/05/03
-{\kern0.135em\Vier%
-{\NOTEN\kern-0.1em\raisebox{3.05ex}{\symbol{61}\kern-0.87em\symbol{61}}%
-\kern-1.63em\raisebox{2.3ex}{{\noten\kern-0.12em\symbol{61}}}\kern-0.3em}}
-% etc. ... ! Define your own commands! \ No newline at end of file
+\newcommand{\SechBR}{{\NOTEN\Vier\kern-0.1em\raisebox{3.05ex}{\symbol{61}\kern-0.87em\symbol{61}}%
+\kern-1.63em\raisebox{2.3ex}{\symbol{61}\kern-0.87em\symbol{61}}}}
+\newcommand{\SechBr}{{\NOTEN\Vier\kern-0.1em\raisebox{3.05ex}{\symbol{61}\kern-0.87em\symbol{61}}%
+\kern-1.63em\raisebox{2.3ex}{{\noten\kern-0.12em\symbol{61}}}\kern0.87em}}
+%
+\newcommand{\Blkn}[2]{\raisebox{#2}{{\NOTEN\kern#1\symbol{61}}}}%
+%
+\newcommand{\Overset}[3][0pt]{\ensuremath{\overset{\raisebox{#1}{\scriptsize\ensuremath{#2}}}{#3}}}
+%
+\newcommand\achteltriole{%
+ \ensuremath{\NOTEN%
+ \Overset[-1ex]%
+ {\text{\itshape\tiny\kern0.7em 3}}%
+ {\AchtBR\kern-1.1em\Vier\kern0.4em\AchtBL}%
+ }%
+}
+%
+\newcommand\vierteltrioleA{%
+ \ensuremath{\NOTEN%
+ \Overset[-1ex]%
+ {\text{\itshape\tiny 3}}%
+ {\overbracket[0.45pt]{%
+ \rule{0pt}{2.4ex}\Vier\kern0.5em\Vier\kern0.5em\Vier\kern0.25em}%
+ }%
+ }%
+}
+%
+\newcommand\vierteltrioleB{%
+ \ensuremath{\NOTEN%
+ \Overset%
+ {\raisebox{1ex}{%
+ \rule{0.45pt}{1ex}%
+ \kern0.25em\raisebox{0.88ex}{\kern-0.3em\rule{1.15em}{0.45pt}}%
+ \raisebox{0.53ex}{\text{\itshape\tiny 3}}%
+ \raisebox{0.88ex}{\rule{1.15em}{0.45pt}}%
+ \kern-0.05em\rule{0.45pt}{1ex}%
+ }}%
+ {\Vier\kern0.5em\Vier\kern0.5em\Vier\kern0.3em}%
+ }%
+}
+%
+\newcommand\halbetrioleA{%
+ \ensuremath{\NOTEN%
+ \Overset[-1ex]%
+ {\text{\itshape\tiny 3}}%
+ {\overbracket[0.45pt]{%
+ \rule{0pt}{2.4ex}\Halb\kern0.5em\Halb\kern0.5em\Halb\kern0.25em}%
+ }%
+ }%
+}
+%
+\newcommand\halbetrioleB{%
+ \ensuremath{\NOTEN%
+ \Overset%
+ {\raisebox{1ex}{%
+ \rule{0.45pt}{1ex}%
+ \kern0.25em\raisebox{0.88ex}{\kern-0.3em\rule{1.15em}{0.45pt}}%
+ \raisebox{0.53ex}{\text{\itshape\tiny 3}}%
+ \raisebox{0.88ex}{\rule{1.15em}{0.45pt}}%
+ \kern-0.05em\rule{0.45pt}{1ex}%
+ }}%
+ {\Halb\kern0.5em\Halb\kern0.5em\Halb\kern0.3em}%
+ }%
+}
+% ================================================================================== \ No newline at end of file
diff --git a/macros/latex/contrib/harmony/harmony.tex b/macros/latex/contrib/harmony/harmony.tex
index 326aff42c3..7b163dc7ab 100644
--- a/macros/latex/contrib/harmony/harmony.tex
+++ b/macros/latex/contrib/harmony/harmony.tex
@@ -1,38 +1,29 @@
-%% harmony.sty 2007/05/04
-%% Copyright 2005 - 2007
+%% harmony.sty 2024/08/01
+%% Copyright 2005 - 2024
%% Dagny Wegner <dagny.wegner@t-online.de>
-%% Arnim Wegner <arnim.wegner@t-online.de>
+%% Arnim Wegner <arnim.e.wegner@t-online.de>
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3 of this license or (at your option) any
% later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions
-% of LaTeX version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainers of this work are
-% Dagny Wegner and Arnim Wegner.
%
% This work consists of the files harmony.sty,
% harmony.tex, harmony.pdf, and Readme.
-%====================================================================================
-\documentclass[12pt,origlongtable,pdftex]{scrartcl}
+% ==================================================================================
+\documentclass[paper=a4,fontsize=12pt,origlongtable]{scrartcl}
%
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{mathpazo}
-\usepackage[ansinew]{inputenc}
\usepackage{array}
\usepackage{longtable}
-\usepackage[pdftex,a4paper]{hyperref}
+\usepackage[pdftex]{hyperref}
%
-\usepackage{harmony}
+\usepackage[12pt]{harmony} % options: 8pt 9pt 10pt 11pt 12pt 13pt 14pt
%
-\setlength{\textheight}{240mm}
+\setlength{\voffset}{-10mm}
+\setlength{\textheight}{255mm}
\setlength{\overfullrule}{0pt}
\setlength{\extrarowheight}{2ex}
\setlength{\parindent}{0pt}
@@ -49,45 +40,37 @@ pdfstartview = {Fit},
%-------------------------------------------------------------------------------------
\begin{document}
%
-\title{harmony.sty}
-\author{Dagny Wegner \and Arnim Wegner}
-\date{2007/05/04}
+\title{harmony}
+\author{Dagny Wegner \and Arnim Wegner}
+\date{2024/08/01}
\maketitle
%
\vfill
%
\begin{center}
-Copyright 2005 - 2007\\
+Copyright 2005 - 2024\\
Dagny Wegner <dagny.wegner@t-online.de>\\
-Arnim Wegner <arnim.wegner@t-online.de>
+Arnim Wegner <arnim.e.wegner@t-online.de>
\end{center}
This work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either
+conditions of the \LaTeX\ Project Public License, either
version 1.3 of this license or (at your option) any
later version.
-The latest version of this license is in
-http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions
-of LaTeX version 2005/12/01 or later.
-This work has the LPPL maintenance status `maintained'.
-The Current Maintainers of this work are
-Dagny Wegner and Arnim Wegner.
This work consists of the files harmony.sty,
harmony.tex, harmony.pdf, and Readme.
%
\newpage
%
\begin{center}
-This work was developed for the doctoral dissertation in musicology of\\
+The package harmony was first developed for the doctoral dissertation in\\ musicology of
Dagny Wegner; cf. this dissertation for further examples.\\
-(Look at http://www.sub.uni-hamburg.de/opus/volltexte/2006/3047/ or
-http://www.chmtl.indiana.edu/ddm/DNclassical.html)\\[2ex]
-\textbf{Many commands in this package therefore are only suitable for size 12pt !}
+(Look at https://ediss.sub.uni-hamburg.de/handle/ediss/1483)\\[1ex]
+This package accepts the optional parameters 8pt, \dots ,14pt for the size\\ of the notes
+ independent of the fontsize of the document.
\end{center}
%
-\vspace{2ex}
-%
-\begin{longtable}{|l|l|}
+\vspace*{-5mm}
+\begin{longtable}{|l|c|}
%
\caption*{\textbf{Usage and Examples}}
\endfirsthead
@@ -95,9 +78,11 @@ http://www.chmtl.indiana.edu/ddm/DNclassical.html)\\[2ex]
\endhead
%
\hline
-input & output\\
+Input & Output\\
\hline\hline
\verb|\HH.X.u.v.w.z.|&\HH.X.u.v.w.z.\\
+\verb|\HHR.X.u.v.w.z.|&\HHR.X.u.v.w.z.\\
+\verb|\HHr.X.u.v.w.z.|&\HHr.X.u.v.w.z.\\
\verb|\HH.D.....|&\HH.D.....\\
\verb|\HH.D..7...|&\HH.D..7...\\
\verb|\HH.D.3....|&\HH.D.3....\\
@@ -105,19 +90,26 @@ input & output\\
\verb|\HH.D.3.9.7..|&\HH.D.3.9.7..\\
\verb|\HH.D.3.9.7.5.|&\HH.D.3.9.7.5.\\
\hline
-\verb|\Dohne|&\Dohne\\
+\verb|\Dohne, \Dsans|&\Dohne\\
+\verb|\DohneR, \DsansR|&\DohneR\\
+\verb|\Dohner, \Dsansr|&\Dohner\\
\verb|\DD|&\DD\\
-\verb|\DDohne|&\DDohne\\
+\verb|\DDR|&\DDR\\
+\verb|\DDr|&\DDr\\
+\verb|\DDohne, \DDsans|&\DDohne\\
+\verb|\DDohneR, \DDsansR|&\DDohneR\\
+\verb|\DDohner. \DDsansr|&\DDohner\\
\verb|\DS|&\DS\\
\verb|\Ds|&\Ds\\
\verb|\UB|&\UB\\
\verb|\VM|&\VM\\
-\verb|\Ohne{D}|&\Ohne{D}\\
-\verb|\Ohne[3pt]{D}|&\Ohne[3pt]{D}\\
-\verb|\Ohne[-3pt]{D}|&\Ohne[-3pt]{D}\\
\hline
\newpage
\hline
+\verb|\Ohne{D}, \Sans{D}|&\Ohne{D}\\
+\verb|\Ohne[3pt]{D}, \Sans[3pt]{D}|&\Ohne[3pt]{D}\\
+\verb|\Ohne[-3pt]{D}, \Sans[-3pt]{D}|&\Ohne[-3pt]{D}\\
+\hline
\verb|\Fermi{X}|&\Fermi{X}\\
\verb|\Ferli{X}|&\Ferli{X}\\
\verb|\Ferli[5pt]{T}|&\Ferli[5pt]{T}\\
@@ -125,10 +117,9 @@ input & output\\
\hline
\verb|\Umd{D}|&\Umd{D}\\
\verb|\Umd[5pt]{D}|&\Umd[5pt]{D}\\
-\hline
\verb|\Kr{a:}|&\Kr{a:}\\
\verb|\Kr{f:} \Kr{g:}|&\Kr{f:} \Kr{g:}\\
-\verb|\Kr{\small fis:}|&\Kr{\small fis:}\\
+\verb|\Kr[105]{fis:} (#1: 100 - 110)|&\Kr[105]{fis:}\\[1ex]
\hline
\verb|\Takt{u}{v}|&\Takt{u}{v}\\
\verb|\Takt{3}{4}|&\Takt{3}{4}\\
@@ -142,12 +133,12 @@ input & output\\
\verb|\Umd{\HH.D.3.9.7.5.}|&\Umd{\HH.D.3.9.7.5.}\\
\verb|\Umd[5pt]{\HH.D.3.9.7.5.}|&\Umd[5pt]{\HH.D.3.9.7.5.}\\
\verb|\HH.\DDohne.5\VM.9\VM.7..|&\HH.\DDohne.5\VM.9\VM.7..\\
-\verb|\HH.\Ohne[0,1em]{Es}.5-3.7...|&\HH.\Ohne[0,1em]{Es}.5-3.7...\\
+\verb|\HH.\Ohne[0.1em]{Es}.5-3.7...|&\HH.\Ohne[0,1em]{Es}.5-3.7...\\
\verb|\Ferli[-1pt]{\HH.\DDohne.5\VM.9\VM.7..}|&\Ferli[-1pt]{\HH.\DDohne.5\VM.9\VM.7..}\\
\hline
\newpage
\hline
-\verb|\Ganz|&\Ganz\\
+\verb|\Ganz|&\kern-0.1em\Ganz\\
\verb|\Halb|&\Halb\\
\verb|\Vier|&\Vier\\
\verb|\Acht|&\Acht\\
@@ -167,18 +158,28 @@ input & output\\
\verb|\SechBr|&\SechBr\\
\hline
\verb|\Vier\AchtBL|&\Vier\AchtBL\\
+\verb|\Vier\kern0.2em\AchtBL|&\Vier\kern0.2em\AchtBL\\
\verb|\Vier\SechBL|&\Vier\SechBL\\
+\verb|\Vier\kern0.2em\SechBL|&\Vier\kern0.2em\SechBL\\
\verb|\Vier\SechBl|&\Vier\SechBl\\
+\verb|\Vier\kern0.2em\SechBl|&\Vier\kern0.2em\SechBl\\
\verb|\AchtBR\Vier|&\AchtBR\Vier\\
\verb|\SechBR\Vier|&\SechBR\Vier\\
\verb|\SechBr\Vier|&\SechBr\Vier\\
-\verb|\SechBr\Vier\SechBl|&\SechBr\Vier\SechBl\\
+\verb|\SechBr\Vier\kern0.2em\SechBl|&\SechBr\Vier\kern0.2em\SechBl\\
\verb|\AchtBR\AchtBR\AchtBL|&\AchtBR\AchtBR\AchtBL\\
-\verb|\AchtBR\kern-0.15em\AchtBR\kern-0.15em\AchtBL|%
-&\AchtBR\kern-0.15em\AchtBR\kern-0.15em\AchtBL\\
\hline
\newpage
\hline
+\verb|\Blkn{0em}{0ex}|&\Blkn{0ex}{0em}\\
+\verb|\AchtBR\Blkn{0.04em}{2.07ex}|&\AchtBR\Blkn{0.04em}{2.07ex}\\
+\hline
+\verb|\achteltriole|&\kern-0.6em\achteltriole\\
+\verb|\vierteltrioleA|&\vierteltrioleA\\
+\verb|\vierteltrioleB|&\vierteltrioleB\\
+\verb|\halbetrioleA|&\halbetrioleA\\
+\verb|\halbetrioleB|&\halbetrioleB\\
+\hline
\verb|\GaPa|&\GaPa\\
\verb|\HaPa|&\HaPa\\
\verb|\ViPa|&\ViPa\\
@@ -217,13 +218,13 @@ rm&rmfamily\\
\newcommand{\Str}[2][0.5]{\raise#1ex\hbox to #2em{\hrulefill}}
\newcommand{\ST}{\h0.03h\Str[0.65]{0.27}\h0.03h}
%
-\h9h\Kr{g:}%
+\h9h\Kr[103]{g:}%
\h1h\HH.\DDohne.5\VM.9\VM.7..%
\h0,5h\HH.D..6.4..%
\h0,5h\HH.\DDohne.3.9\VM.7..%
\h0,5h\HH.\Dohne.7.9\VM...%
\h0,5h\HH.T.3....\\[1ex]
-\h17h\Kr{d:}%
+\h17h\Kr[102]{d:}%
\h0,5h\Umd[1ex]{\HH.S.3....}%
\h0,5h\HH.\DD.5\VM.7...%
\h0,5h\HH.D..8\Str[0,65]{1,2}7\ST6\ST5.8\ST6\ST4\Str[0,65]{2}3.6\ST5\ST8%
@@ -237,13 +238,13 @@ rm&rmfamily\\
\newcommand{\Str}[2][0.5]{\raise#1ex\hbox to #2em{\hrulefill}}
\newcommand{\ST}{\h0.03h\Str[0.65]{0.27}\h0.03h}
%
-\h9h\Kr{g:}%
+\h9h\Kr[103]{g:}%
\h1h\HH.\DDohne.5\VM.9\VM.7..%
\h0,5h\HH.D..6.4..%
\h0,5h\HH.\DDohne.3.9\VM.7..%
\h0,5h\HH.\Dohne.7.9\VM...%
\h0,5h\HH.T.3....\\[1ex]
-\h17h\Kr{d:}%
+\h17h\Kr[102]{d:}%
\h0,5h\Umd[1ex]{\HH.S.3....}%
\h0,5h\HH.\DD.5\VM.7...%
\h0,5h\HH.D..8\Str[0,65]{1,2}7\ST6\ST5.8\ST6\ST4\Str[0,65]{2}3.6\ST5\ST8%
diff --git a/macros/latex/contrib/hebdomon/README.md b/macros/latex/contrib/hebdomon/README.md
new file mode 100644
index 0000000000..cb581a6ab0
--- /dev/null
+++ b/macros/latex/contrib/hebdomon/README.md
@@ -0,0 +1,18 @@
+# Hebdomon - A Documentclass for Assignment Preparation
+
+## Description
+
+Hebdomon is a latex documentclass for streamlining document creation in latex. This
+package does not ovewrite any TeX or LaTeX commands so the user could use their own
+macros or other commands as they wish.
+
+A manual is written which can be seen in HebdomonGuide which showcases some commands written for the class.
+
+## Author
+
+This package is maintained by D. T. McGuiness: dtm@mci4me.at
+
+## Licence
+
+Released under the LaTeX Project Public License v1.3c or later.
+See https://www.latex-project.org/lppl.txt
diff --git a/macros/latex/contrib/hebdomon/doc/HebdomonGuide.pdf b/macros/latex/contrib/hebdomon/doc/HebdomonGuide.pdf
new file mode 100644
index 0000000000..f458c73d8e
--- /dev/null
+++ b/macros/latex/contrib/hebdomon/doc/HebdomonGuide.pdf
Binary files differ
diff --git a/macros/latex/contrib/hebdomon/doc/HebdomonGuide.tex b/macros/latex/contrib/hebdomon/doc/HebdomonGuide.tex
new file mode 100644
index 0000000000..714857cf40
--- /dev/null
+++ b/macros/latex/contrib/hebdomon/doc/HebdomonGuide.tex
@@ -0,0 +1,461 @@
+% Load the base class
+\documentclass[minted, draw]{../tex/hebdomon}
+
+\begin{document}
+
+\title{Hebdomon \\ Report and Documentation Standard}
+\author{v0.1 - Angry Avocado}
+\StudentName{D. T. McGuiness}
+\date{dtm@mci4me.at}
+
+\publishers{
+ \begin{tabular}[!b]{rl}
+ \textbf{Student Name} & xxxxx \\[3pt]
+ \textbf{Student Number} & xxxxx \\[3pt]
+ \textbf{Module Name} & xxxxx
+ \end{tabular}\\[20pt]
+ }
+
+\maketitle
+\dominitoc
+\tableofcontents
+\newpage
+
+\Chapter{The Hebdomon Template}
+\Section{Introduction}
+
+This document is designed to abstract a significant portion of the
+commands and MACROs to hide away the programming aspect and ease into
+LaTeX programming. While some commands are have been changed \hlight{NO}
+command has been overwritten so feel free to use the original ones
+if you wish.
+
+\begin{warning}
+ As to the best of the authors knowledge, the original commands should work
+ but the aesthetics may be compromised.
+\end{warning}
+
+\Section{Title Formatting}
+
+To begin a new content, always start the content with a chapter heading. To
+insert the chapter with an additional \lstinline[columns=fixed]{minitoc}
+use \lstinline[columns=fixed]{\Chapter}, which produces an heading as
+you see at the beginning of this page, to have a heading without
+a \lstinline[columns=fixed]{minitoc} use the standard
+\lstinline[columns=fixed]{\chapter}.
+
+The document relies on the user to use the \hlight{correct} title commands to
+keep the formatting consistent. The commands that starting with a
+capital letter are the overloaded commands of the standard ones.
+The following are the current ones:
+%
+\begin{code}{python}
+\Chapter{...}
+\Section{...}
+\Subsection{...}
+\Subsubsection{...}
+\end{code}
+%
+\begin{warning}
+ Unless there is a specific reason, it is suggested to use the aforementioned
+ commands. However, original LaTeX command should work as well if you want to use.
+\end{warning}
+
+\Subsection{Page Geometry}
+
+The page geometry is set to the following settings. This is done using the
+standard package \pcode{\usepackage{geometry}} which is defined in the
+\pcode{Hebdomon.cls}.
+%
+\begin{itemize}[leftmargin=!,labelindent=-29.2pt]
+ \item[\textbf{top}] 2.5cm,
+ \item[\textbf{right}] 2.0cm,
+ \item[\textbf{bottom}] 2.5cm,
+ \item[\textbf{left}] 3.0cm.
+\end{itemize}
+%
+\Section{Image Positioning}
+%
+The image positioning could be done with the following code snippet:
+%
+\begin{code}{latex}
+\begin{figure}[ht]
+ \centering
+ \includegraphics[options]{figures/path.pdf}
+ \caption{\label{fig:label} }
+\end{figure}
+\end{code}
+%
+Here there are a few options worth mentioning:
+%
+\begin{hgitemize}
+ \item[\pcode{figures/path}] The place where the image is kept. If the
+ image is in the same folder where the main.tex file resides, it is as
+ simple as writing the files name. If the file is in a folder called
+ image, just write \pcode{image/innsbruck.jpg}. Finally if the image is
+ in a higher directory (i.e., image is in folderA/innsbruck.jpg and the
+ main tex is in folderA/document/main.tex then the path becomes \pcode{../innsbruck.jpg}
+ \item[\pcode{\caption{..}}] Where you write the caption of the image.
+ For consistency make sure every image has a caption as if the image does not
+ need a caption, maybe it not be present to begin with.
+ \item[\pcode{label{}}] This is an identifier for you to use when you need
+ to cite this Figure in a place somewhere. For example if you were to have
+ and image with the following:
+\end{hgitemize}
+%
+\begin{code}{latex}
+\begin{figure}[ht]
+ \centering
+ \includegraphics[width=\textwidth]{figures/path.pdf}
+ \caption{A photo I found on the web.}\label{fig:innsbruck}
+\end{figure}
+\end{code}
+%
+\begin{hgitemize}
+ \item[] Now this image is referenced as \pcode{fig:innsbruck}, which
+ means if we write the following:
+\end{hgitemize}
+%
+\begin{code}{text}
+To see the image, have a look at Figure \ref{fig:innsbruck}
+\end{code}
+%
+This line of command will be presented as
+%
+\begin{excerpt}
+ To see the image, have a look at Figure 1.1.
+\end{excerpt}
+%
+Finally you can see the image here as well.
+%
+\begin{figure}[ht]
+ \centering
+ \includegraphics[width=\linewidth]{figures/innsbruck.jpg}
+ \caption{The famous Innsbruck houses near the river Inn. This image is
+ placed with a width value of \pcode{width=\linewidth}. This is also
+ a good opportunity to showcase the hanging behaviour of the figure
+ caption.}
+\end{figure}
+%
+\Section{Defined Environments}
+%
+\begin{hgitemize}
+ \item[\pcode{excerpt}] The template relies on the excellent \lstinline[columns=fixed]{tcolorbox}
+ package for formatting the boxes within the document and for that end different styles were created.
+ \item[] Sometimes one needs to quote either a proverb or to create drama, for this use
+ the \lstinline[columns=fixed]{excerpt} environment with the following notation and effect.
+\end{hgitemize}
+%
+\begin{code}{latex}
+\begin{excerpt}
+ To be, or not to be...
+\end{excerpt}
+\end{code}
+%
+\begin{hgitemize}
+ \item[] Compiling this code snippet would show as in the document
+\end{hgitemize}
+%
+\begin{excerpt}
+ To be, or not to be...
+\end{excerpt}
+%
+\begin{itemize}[leftmargin=!,labelindent=-29.2pt]
+ \item[\pcode{code}] During the preparation of your document, it is useful to showcase
+ some code either in the shape of all the document or a snippet of it.
+ There are two (\hlight{2}) ways of doing this where the first one will be discussed here.
+ \item[] For example to print out a hello world in python, please use the following environment
+\end{itemize}
+%
+\begin{verbatim}
+\begin{code}{python}
+print("Hello, World!")
+\end{code}
+\end{verbatim}
+%
+Producing the following:
+%
+\begin{code}{python}
+print("Hello, World!")
+\end{code}
+%
+The class also come with some predefined environments to modify the behaviour/aesthetics of the document.
+%
+Highlighting text is \hlight{very easy}, here is an example on how to write one.
+
+\begin{code}{latex}
+Highlighting text is \hlight{very easy}, here is an example:
+\end{code}
+
+\begin{itemize}[leftmargin=!,labelindent=-29.2pt]
+ \item[\pcode{example}] Sometimes you need to showcase an example or
+ need to highlight a certain idea.
+ For these things the environment Example could be useful.
+ \item[] For example to show as simple example or give a slight attention to a topic you can do the following.
+\end{itemize}
+
+\begin{example}
+ This is an example. This could be anything which you would like to have a certain amount of
+ attention but not too much as to distract from the flow of the document.
+\end{example}
+
+\begin{itemize}[leftmargin=!,labelindent=-29.2pt]
+ \item[\pcode{highlight}] Or sometimes you need to give a clear break to the flow of the
+ document and ask the reader to look at your banner. For that use highlight.
+\end{itemize}
+
+\begin{highlight}
+ Hey! Pay attention as this is a highlight box.
+\end{highlight}
+
+\Subsection{Writing Equations}
+%
+One of the strong suits of LaTeX compared to other editors and programs is
+it simplicity and ease of use methods of writing equations. Consider the
+following equation:
+%
+\begin{equation*}
+ f(x) = x^2 + 2x + 1
+\end{equation*}
+%
+In code form this would be written as:
+%
+\begin{code}{latex}
+ \begin{equation*}
+ f(x) = x^2 + 2x + 1
+ \end{equation*}
+\end{code}
+%
+All equations that has their newline and centre staged are mostly written
+in an environment where it has a \pcode{begin} and an \pcode{end}. You may
+have noticed the asterisks sign just after the equation. This implies the
+environment is \hlight{not numbered}, meaning you won't be able to
+reference it. This is used to limit the numbering of equations to just the
+essential parts in the document and not reach 3 digits by the time you are
+in page 8. For a numbered equation like the following
+%
+\begin{equation}
+ f(x) = x^2 + 2x + 1
+\end{equation}
+%
+You only need to do:
+%
+\begin{code}{latex}
+ \begin{equation}\label{eq:quad}
+ f(x) = x^2 + 2x + 1
+ \end{equation}
+\end{code}
+%
+where \pcode{\label{eq:quad}} is the equation reference label.
+%
+You could also make matrices as well as \pcode{amsmath} is preloaded into this template.
+%
+\Subsection{Designing a Table}
+%
+Finally, no template is done without someone telling you how a table should be designed.
+%
+Below is a standard table
+%
+\begin{table}[!ht]
+ \begin{NiceTabular}{rX}[rules/color=[gray]{0.9},rules/width=1pt]
+ \CodeBefore
+ \rowcolors{1}{black!5}{}
+ \rowcolors{3}{blue!5}{}
+ \Body
+ \toprule
+ \textbf{Section} & \textbf{Scientific Method Step} \\
+ \midrule
+ \textbf{Introduction} & states your hypothesis \\
+ \textbf{Methods} & details how you tested your hypothesis \\
+ \textbf{Results} & provides raw (i.e., uninterpreted) data collected \\
+ \textbf{Discussion} & considers whether the data you obtained support the hypothesis \\
+ \bottomrule
+ \end{NiceTabular}
+ \caption{A Detailed look into the scientific method.}
+\end{table}
+%
+And the code used to generate it:
+%
+\begin{code}{latex}
+\begin{table}[!ht]
+ \begin{NiceTabular}{rX}[rules/color=[gray]{0.9},rules/width=1pt]
+ \CodeBefore
+ \rowcolors{1}{black!5}{}
+ \rowcolors{3}{blue!5}{}
+ \Body
+ \toprule
+ \textbf{Section} & \textbf{Scientific Method Step} \\
+ \midrule
+ \textbf{Introduction} & states hypothesis \\
+ \textbf{Methods} & how you tested hypothesis \\
+ \textbf{Results} & provides raw data collected \\
+ \textbf{Discussion} & whether it support the hypothesis \\
+ \bottomrule
+ \end{NiceTabular}
+ \caption{A Detailed look into the scientific method.}
+\end{table}
+\end{code}
+
+\Chapter{Plotting your data using PGF/TikZ}
+
+\Section{Introduction}
+
+PGFplots and Tikz are powerful scripting languages allowing you to draw high-quality diagrams
+using only a programming language. PGFplots are generally used for plotting data from a wide
+variety of representations from simple 2D plots to complex 3D geometries.
+\\
+But wikipedia description put it best:
+
+\begin{excerpt}
+ PGF/TikZ is a pair of languages for producing vector graphics
+ (e.g., technical illustrations and drawings) from a geometric/algebraic description, with
+ standard features including the drawing of points, lines, arrows, paths, circles,
+ ellipses and polygons. PGF is a lower-level language, while TikZ is a set of higher-level
+ macros that use PGF. The top-level PGF and TikZ commands are invoked as TeX macros,
+ but in contrast with PSTricks, the PGF/TikZ graphics themselves are described in a
+ language that resembles MetaPost.
+\end{excerpt}
+
+For more info please look at the documentation \href{https://tikz.dev/pgfplots/}{here}.
+It is of course up to the user to select which graphical software to produce the necessary
+visual components but unless it requires complex functions/processing, it would be be easier
+to have it in PGF/TikZ format for easy editing/maintenance.
+
+For this manual we will be looking at the three (\hlight{3}) plot types you may
+encounter in your studies.
+%
+\Subsection{A Simple 2D Plot}
+%
+2D plots are simple yet powerful to show the relation of a single parameters
+and its related function.
+Below is an example of a simple comparison of two (\hlight{2}) functions.
+%
+\begin{figure}[!ht]
+ \centering
+ \begin{tikzpicture}
+ \begin{axis}[hebdomon, xlabel = \(x\), ylabel = {\(f(x)\)}]
+ %
+ \addplot [domain=-10:10, samples=100,red]{x^3 - 7*x - 1};
+ \addlegendentry{\(x^2 - 2x - 1\)}
+ %
+ \addplot [domain=-10:10, samples=100, blue]{x^2 + 6*x + 8};
+ %
+ \addlegendentry{\(x^2 + 2x + 1\)}
+ %
+ \end{axis}
+ \end{tikzpicture}
+ \caption{This is an example of a 2D PGF plot comparing
+ two functions where these functions are calculated using
+ PGF itself rather than entering/reading from data.}
+\end{figure}
+%
+The image above is generated using the following code:
+
+\begin{code}{latex}
+\begin{figure}[!ht]
+ \centering
+ \begin{tikzpicture}
+ \begin{axis}[hebdomon, xlabel = \(x\), ylabel = {\(f(x)\)}]
+ %
+ \addplot [domain=-10:10, samples=100,red]{x^3 - 7*x - 1};
+ \addlegendentry{\(x^2 - 2x - 1\)}
+ %
+ \addplot [domain=-10:10, samples=100, blue]{x^2 + 6*x + 8};
+ %
+ \addlegendentry{\(x^2 + 2x + 1\)}
+ %
+ \end{axis}
+ \end{tikzpicture}
+ \caption{This is an example of a 2D PGF plot comparing
+ two functions where these functions are calculated using
+ PGF itself rather than entering/reading from data.}
+\end{figure}
+\end{code}
+
+As can be seen it is relatively standard to create plots. Some aspect
+which need mentioning.
+
+\begin{hgitemize}
+ \item[\pcode{\addplot}] You invoke this command when you want to
+ create a plot. In the square brackets (i.e., []) you insert your
+ \hlight{configuration} of your plot. The most important ones are
+ \begin{itemize}
+ \item[\pcode{domain}] the range in which the function will be
+ calculated
+ \item[\pcode{sample}] the number of calculations will be done
+ within the defined domain.
+ \end{itemize}
+\end{hgitemize}
+
+\Subsection{Plotting 3D plots}
+
+Plotting data with PGFplots is also quite possible and will generate
+great plot (as long as it is not massively complicated). For more
+information on the precautions on designing 3D plots, please have a look
+at \href{https://tikz.dev/pgfplots/reference-3dplots}{here}.
+
+Below is the prototypical plot to showcase the 3D capabilities of PGF:
+
+\begin{figure}[!ht]
+ \centering
+ \begin{tikzpicture}
+ \begin{axis}[view={25}{30},mark layer=like plot]
+ \addplot3 [
+ surf,
+ shader=faceted,
+ fill opacity=0.75,
+ samples=25,
+ domain=-4:4,
+ y domain=-4:4,
+ on layer=main,
+ ] {x^2-y^2};
+ \end{axis}
+ \end{tikzpicture}
+ \caption{An example 3D plot done wit PGFplots.}
+\end{figure}
+
+And, of course the code for generating the plot is given as follows:
+
+\begin{code}{latex}
+\begin{figure}[!ht]
+ \centering
+ \begin{tikzpicture}
+ \begin{axis}[view={25}{30},mark layer=like plot]
+ \addplot3 [
+ surf,
+ shader=faceted,
+ fill opacity=0.75,
+ samples=25,
+ domain=-4:4,
+ y domain=-4:4,
+ on layer=main,
+ ] {x^2-y^2};
+ \end{axis}
+ \end{tikzpicture}
+ \caption{An example 3D plot done wit PGFplots.}
+\end{figure}
+\end{code}
+
+Some options worth mentioning are as follows:
+
+\begin{hgitemize}
+ \item[\pcode{surf}] Generates a \hlight{surface} based on the 2D
+ data it was given (in this case these are $x$ and $y$.
+ \item[\pcode{shader}] Describes, basically how each segment should be
+ filled.
+ \item[\pcode{samples}] Similar to 2D plots, tells how many data points will
+ be measured. However, make a note that 3D is significantly more taxing
+ on the TeX memory than 2D and making this sampling high may result in
+ exceeding the memory limit.
+\end{hgitemize}
+
+\end{document}
+
+%%% Local Variables:
+%%% coding: utf-8
+%%% mode: latex
+%%% TeX-command-extra-options: "-shell-escape"
+%%% TeX-master: t
+%%% TeX-engine: luatex
+%%% End:
+
diff --git a/macros/latex/contrib/hebdomon/doc/figures/innsbruck.jpg b/macros/latex/contrib/hebdomon/doc/figures/innsbruck.jpg
new file mode 100644
index 0000000000..c42a2a0580
--- /dev/null
+++ b/macros/latex/contrib/hebdomon/doc/figures/innsbruck.jpg
Binary files differ
diff --git a/macros/latex/contrib/hebdomon/tex/hebdomon.cls b/macros/latex/contrib/hebdomon/tex/hebdomon.cls
new file mode 100644
index 0000000000..33277f76c3
--- /dev/null
+++ b/macros/latex/contrib/hebdomon/tex/hebdomon.cls
@@ -0,0 +1,412 @@
+% Hebdomon document class for use in report and assessment writing
+% Written by D. T. McGuiness: dtm@mci4me.at
+
+% v0.1 - Angry Avocado [WS2024]
+
+\NeedsTeXFormat{LaTeX2e}[1994/06/01]
+\ProvidesClass{hebdomon}[2024/08/08 v0.1 Report and Documentation standard]
+
+% This document is based on the excellent KOMA Script scrreprt class
+% The following options are declared beforehand.
+
+\RequirePackage{ifthen} % require an if-else loop to
+% choose depending on the field
+
+% Allows students to choose which package for code printing.
+
+\newboolean{mnt} % set bool operator for minted
+\newboolean{lst} % set bool operator for lstlisting
+\newboolean{drw} % set bool operator for PGF/TikZ
+
+%-OPTION: set option to choose minted code printing package
+\DeclareOption{minted}{
+ \setboolean{mnt}{true}
+}
+
+%-OPTION: set option to choose lstlisting code printing package
+\DeclareOption{lstlisting}{
+ \setboolean{lst}{true}
+}
+
+%-OPTION: set option to choose PGF/TikZ plotting packages
+\DeclareOption{draw}{
+ \setboolean{drw}{true}
+}
+
+\DeclareOption*{
+ \PassOptionsToClass{\CurrentOption}{scrreprt}
+}
+\ExecuteOptions{}
+\ProcessOptions \relax
+
+% Load the base class to create the custom template
+\LoadClass[
+ bibliography = totoc,
+ headings = big,
+ captions = tableheading,
+ chapterprefix = true,
+]{scrreprt}
+
+% Page Geometry -----------------------------------------------------------
+% Define the default page geometry
+\RequirePackage[
+ left = 3.0cm,
+ right = 2.0cm,
+ top = 2.5cm,
+ bottom = 2.5cm]{geometry}
+
+% Required Packages -------------------------------------------------------
+\RequirePackage{nicematrix} % For modern table design
+\RequirePackage{booktabs} % To access \midrule \toprule \bottomrule
+
+% For use in referencing purposes
+\RequirePackage[
+ backend=bibtex]{biblatex}
+
+\RequirePackage{graphicx} % To enable image insertion
+\RequirePackage{environ} % To allow new environments with Environ
+
+
+\RequirePackage{lmodern}
+\RequirePackage[sfdefault]{FiraSans}
+
+\RequirePackage{minitoc}
+\RequirePackage{setspace}
+
+\RequirePackage{hyperref} % Allow the use of hyperlink within document
+
+\RequirePackage{enumitem}
+
+\RequirePackage{amsmath}
+
+\usepackage[labelfont=bf]{caption} % Set the caption style to bold
+
+\RequirePackage{titlesec}
+
+% %%%%% ----- Colour Definitions ------ %%%%%
+\RequirePackage{xcolor}
+
+% Define the MCI colours.
+\definecolor{mciRed}{HTML}{821131}
+\definecolor{mciBlue}{HTML}{004983}
+\definecolor{mciOrange}{HTML}{fe640b}
+\definecolor{quoteColour}{HTML}{CBA6F7}
+\definecolor{nord7}{HTML}{81a1c1}
+\definecolor{norda}{HTML}{bf616a}
+\definecolor{nord9}{HTML}{5e81ac}
+\definecolor{nord13}{HTML}{ebcb8b}
+\definecolor{nord14}{HTML}{a3be8c}
+
+% %%%%% ----- Code Presentation ----- %%%%%
+% To make this class more compatible and avoid questions about pygments,
+% the author has decided to use listings for code presentation, instead of
+% minted.
+\RequirePackage{listings}
+
+\lstset{
+ aboveskip={1.3\baselineskip},
+ basicstyle=\small\ttfamily\linespread{4},
+ breaklines=false,
+ backgroundcolor = \color[HTML]{eff1f5},
+ columns=flexible,
+ commentstyle=\color[HTML]{6c6f85}\ttfamily,
+ escapechar=@,
+ extendedchars=true,
+ identifierstyle=\color{black},
+ inputencoding=latin1,
+ keywordstyle=\color[HTML]{fe640b},
+ language=Python,
+ ndkeywordstyle=\color[HTML]{228B22},
+ numbers=left,
+ numberstyle=\tiny,
+ prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},
+ showstringspaces=false,
+ stringstyle=\color[HTML]{40a02b}\ttfamily,
+ upquote=true,
+ emph={None},
+ emphstyle={\color[HTML]{FE640B}},
+ % keywordstyle=[1]{\color[HTML]{8839ef}},
+ % morekeywords={(,)},
+ keywordstyle=[2]\color[HTML]{D20F39},
+ keywordstyle={[3]\color[HTML]{8839ef}},
+ keywords=[3]{x},
+}
+
+% \lstset{style=mystyle}
+
+% New Environment Definitions ---------------------------------------------
+% To create environments tcolorbox package is required to make them
+% aesthetically pleasing.
+\RequirePackage{tcolorbox}
+\tcbuselibrary{breakable, minted, skins,theorems, hooks, most}
+
+% %%%%% ----- tcolorbox Templates ----- %%%%%
+
+% Define the excerpt environment style.
+\tcbset{%
+ quoteTemplate/.style={%
+ enhanced,
+ breakable,
+ arc=0pt,
+ outer arc=0pt,
+ toprule=0pt,
+ rightrule=0pt,
+ bottomrule=0pt,
+ leftrule=1mm,
+ colback=white,
+ colframe=mciRed,
+ detach title
+ }%
+}%
+
+\tcbset{%
+ blockTemplate/.style={%
+ enhanced,
+ breakable,
+ arc=0pt,
+ outer arc=0pt,
+ toprule=0pt,
+ rightrule=0pt,
+ bottomrule=0pt,
+ leftrule=1mm,
+ colback=#1!25,
+ colframe=#1,
+ coltitle=black,
+ detach title
+ }%
+}%
+
+% %%%%% --------------------------------%%%%%
+
+% Environment used to insert quotations.
+\NewEnviron{excerpt}[1][]{%
+ \begin{tcolorbox}[blockTemplate=nord7]
+ \BODY
+ \end{tcolorbox}
+}%
+
+\NewEnviron{example}[1][]{%
+ \begin{tcolorbox}[blockTemplate=nord14]
+ \BODY
+ \end{tcolorbox}
+}%
+
+\NewEnviron{highlight}[1][]{%
+ \begin{tcolorbox}[blockTemplate=nord13]
+ \BODY
+ \end{tcolorbox}
+}%
+
+\NewEnviron{theory}[1][]{%
+ \begin{tcolorbox}[blockTemplate=black]
+ \BODY
+ \end{tcolorbox}
+}%
+
+\NewEnviron{warning}[1][]{%
+ \begin{tcolorbox}[blockTemplate=norda]
+ \BODY
+ \end{tcolorbox}
+}%
+
+\NewEnviron{hgitemize}[1][]{%
+ \begin{itemize}[leftmargin=!,labelindent=-29.2pt]
+ \BODY
+ \end{itemize}
+}%
+
+
+
+
+
+% KOMA-Script Configuration -----------------------------------------------
+
+\addtokomafont{chapterprefix}{\raggedleft}
+\addtokomafont{chapter}{\fontsize{30}{38}\selectfont}
+\addtokomafont{section}{\huge}
+\addtokomafont{subsection}{\Large}
+\addtokomafont{subsubsection}{\large}
+
+% Set the fontstyle of minitoc to that of the document
+\renewcommand{\mtifont}{\large\sffamily}
+\renewcommand{\mtcfont}{\small\sffamily}
+\renewcommand{\mtcSfont}{\small\sffamily}
+\renewcommand{\mtcSSfont}{\small\sffamily}
+\renewcommand{\mtcSSSfont}{\small\sffamily}
+
+\newcommand{\StudentName}[1]{\author{#1}}
+
+% Set the depth of TOC
+\setcounter{secnumdepth}{3} % number subsubsections
+\setcounter{tocdepth}{3} % list subsubsections
+
+% Configure the document titles
+\newcommand{\Chapter}[1]{\chapter{\textcolor{mciBlue}{#1}}\minitoc}
+\newcommand{\Section}[1]{\section{\textcolor{mciBlue}{#1}}}
+\newcommand{\Subsection}[1]{\subsection{\textcolor{mciBlue}{#1}}}
+\newcommand{\Subsubsection}[1]{\subsubsection{\textcolor{mciBlue}{#1}}}
+
+\newcommand{\hlight}[1]{\textcolor{mciOrange}{#1}}
+
+
+% Configure the baseline of the document
+\renewcommand{\baselinestretch}{1.2}
+
+\renewcommand*{\chapterformat}{%
+ \mbox{\scalebox{1.5}{\chapappifchapterprefix{\nobreakspace}}%
+ \scalebox{4}{\color{mciRed}\thechapter\autodot}\enskip}}
+
+\newcommand{\heading}[1]{\subsubsection*{$\blacksquare$ #1}}
+\newcommand{\marginsecnumber}[1]{%
+ \makebox[0pt][r]{#1\hspace{6pt}}%
+}
+
+\titleformat{\section} {\normalfont\Large\bfseries}
+{\marginsecnumber\thesection} {0pt} {}
+\titleformat{\subsection} {\normalfont\large\bfseries}
+{\marginsecnumber\thesubsection} {0pt} {}
+\titleformat{\subsubsection}
+{\normalfont\normalsize\bfseries}
+{\marginsecnumber\thesubsubsection}
+{0pt} {}
+\titleformat{\paragraph}[runin]
+{\normalfont\normalsize\bfseries}
+{\marginsecnumber\theparagraph}
+{0pt} {}
+\titleformat{\subparagraph}[runin]
+{\normalfont\normalsize\bfseries}
+{\marginsecnumber\thesubparagraph}
+{0pt}
+{}
+
+\titlespacing*{\subsection}{0pt}{*3.25}{*1.5}%
+
+\setlength\parindent{0pt} % set no indent for the entire file
+
+\ifthenelse{\boolean{mnt}}{%
+ \RequirePackage{minted}
+
+ \newcommand{\pcode}[1]{%
+ {%
+ \colorbox{gray!10}{%
+ \mintinline[fontsize=\small]{text}{#1}%
+ }%
+ }%
+ }%
+
+ %\usemintedstyle{catppuccin-latte}
+
+ \definecolor{catback}{HTML}{585b70}
+ \definecolor{catground}{HTML}{eff1f5}
+
+ % Set box and font rules for inputminted command for paper
+ \newtcbinputlisting{\codeinputpaper}[4][]{%
+ listing file={#3},
+ minted language=#2,
+ minted options={
+ fontsize=\small,
+ tabsize=4,
+ xleftmargin=-2.25mm,
+ numbersep=5mm,
+ breaklines=true,
+ highlightcolor=orange!50,
+ %formatcom=orange!50
+ },% <-- put other minted options inside the brackets
+ overlay unbroken and first={%
+ \begin{tcbclipinterior}
+ \fill[catback] (frame.south west) rectangle
+ ([xshift=1mm]frame.north west);
+ \fill[catback] (frame.north east) rectangle
+ ([xshift=-4mm, yshift=-10mm]frame.north east);
+ \fill[catback]
+ ([xshift=-4mm, yshift=-10mm]frame.north east) --
+ ([xshift=0mm, yshift=-10mm]frame.north east) --
+ ([xshift=0mm, yshift=-12mm]frame.north east);
+ \end{tcbclipinterior}
+ \node[rotate=-90, minimum width=1cm, anchor=north,
+ font=\bfseries] at ([xshift=0mm, yshift=-4mm]frame.north
+ east) {\tiny \textcolor{white}{#2}}; },
+ sharp corners,
+ leftrule=1mm,
+ toprule=0pt,
+ rightrule=0pt,
+ bottomrule=0pt,
+ colback=catground,
+ colframe=black,
+ breakable,
+ enhanced,% <-- put other tcolorbox options here
+ arc=0mm,
+ boxrule=0pt,
+ frame hidden,
+ listing only,
+ minted options app={#1}}
+
+ \RequirePackage{xpatch}
+
+ \newenvironment{code}[1]
+ {%
+ \VerbatimEnvironment
+ \begin{minted}{#1}%
+}
+{%
+ \end{minted}%
+ }
+ %
+ \xpatchcmd{\mintinline}{\begingroup}{\begingroup\let\itshape\relax}{}{}
+ \xpatchcmd{\minted}{\VerbatimEnvironment}{\VerbatimEnvironment\let\itshape\relax}{}{}
+ \xpatchcmd{\inputminted}{\begingroup}{\begingroup\let\itshape\relax}{}{}
+}{}
+
+\ifthenelse{\boolean{lst}}{%
+ \RequirePackage{listings}%
+ \RequirePackage{xparse}
+
+ \NewDocumentCommand{\pcode}{v}{%
+ #1%
+ }
+
+ \newenvironment{code}[1]
+ {%
+ \VerbatimEnvironment
+ \begin{lstlisting}{language=#1}%
+}
+{%
+ \end{lstlisting}%
+ }
+}{}
+
+
+\ifthenelse{\boolean{drw}}{%
+ \RequirePackage{pgfplots} % Enable to draw plots in the documents
+ \usepackage{tikz} % Enable Tikz and its libraries
+ \pgfplotsset{compat=1.18} % Set the pgf compatibility.
+ %
+ \usepgfplotslibrary{polar} % To access polarplot
+ %
+ \pgfplotsset{
+ hebdomon/.style={
+ minor grid style={dotted, gray!50},
+ major grid style={dotted, gray!50},
+ %
+ grid = both,
+ minor tick num=2,
+ ytick align=outside,
+ xtick align=outside,
+ axis line style={draw=none},
+ axis lines = left,
+ %
+ line width=2pt,
+ %
+ legend style = {
+ line width=0.5pt
+ },
+ %
+ every non boxed x axis/.append style={x axis line style=-},
+ every non boxed y axis/.append style={y axis line style=-},
+ %
+ },
+ }
+}{}
+
+
+\endinput
diff --git a/macros/latex/contrib/heria/heria-proposal.pdf b/macros/latex/contrib/heria/heria-proposal.pdf
index 60d99c6dab..297edc7764 100644
--- a/macros/latex/contrib/heria/heria-proposal.pdf
+++ b/macros/latex/contrib/heria/heria-proposal.pdf
Binary files differ
diff --git a/macros/latex/contrib/heria/heria.dtx b/macros/latex/contrib/heria/heria.dtx
index 60cc0162f1..a37fc04520 100644
--- a/macros/latex/contrib/heria/heria.dtx
+++ b/macros/latex/contrib/heria/heria.dtx
@@ -33,7 +33,7 @@
%<class>\NeedsTeXFormat{LaTeX2e}
%<class>\ProvidesClass{heria}
%<*class>
-[2024-07-14 v3.4.1.0 Class for Horizon Europe (R)IA proposals]
+[2024-09-03 v3.4.1.3 Class for Horizon Europe (R)IA proposals]
%</class>
%
%<*driver>
@@ -50,7 +50,7 @@
%</driver>
% \fi
%
-% \CheckSum{1520}
+% \CheckSum{1521}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -109,6 +109,23 @@
% either Version~3.2 (2022-11-15), 3.3 (2023-09-27), or 3.4
% (2024-04-04) of the official Part~B template.
%
+% \bigskip
+%
+% \noindent Besides this technical manual, there is a journal article
+% that describes the motivation for and development of \textsf{heria}:
+%
+% \begin{quote}
+% Tristan
+% Miller. \href{https://dx.doi.org/10.47397/tb/45-1/tb139miller-horizon}{Preparing
+% Horizon Europe proposals in \LaTeX\ with
+% \textsf{heria}}. \emph{TUGboat: The Communications of the \TeX\
+% Users Group}, 45(1):\allowbreak 59–64, 2024. ISSN 0896-3207. DOI:
+% \href{https://dx.doi.org/10.47397/tb/45-1/tb139miller-horizon}{10.47397/tb/45-1/tb139miller-horizon}.
+% \end{quote}
+%
+% \noindent Please cite this journal article if you want to refer to
+% \textsf{heria} in a publication.
+%
% \section{Usage}
%
% The EC's official template is structured in such a way that form and
@@ -509,6 +526,12 @@
% \subsection{Version history}
%
% \begin{description}
+% \item[v3.4.1.3 (2024-09-03)] Fixed a bug where the person-months in
+% Table 3.1a were doubled.
+% \item[v3.4.1.2 (2024-09-03)] Fixed a bug where the column totals in
+% Table 3.1f were doubled.
+% \item[v3.4.1.1 (2024-08-14)] Update documentation with a reference
+% to the \emph{TUGboat} paper on \textsf{heria}.
% \item[v3.4.1.0 (2024-07-14)] Add support for version 3.4 of the
% official Part~B template and the \cs{templateversion} macro for
% backward compatibility with earlier versions.
@@ -709,7 +732,7 @@
& #2 & \getPnum{#3} & #3 & %
\@ifundefined{@wpTotalPersonMonths\arabic{@wp#1num}}%
{\textbf{??}}%
- {\disptoken{@wpTotalPersonMonths\arabic{@wp#1num}}}%
+ {\fpeval{\disptoken{@wpTotalPersonMonths\arabic{@wp#1num}}/2}}%
& #4 & #5}}%
\@esphack
\ifthenelse{\arabic{@wp#1num}=1}{}{\bigskip}
@@ -1089,7 +1112,7 @@
\whiledo{\value{@secolumn}<\value{@wpcount}}{%
\stepcounter{@secolumn}%
\edef\serowtemp{\serowtemp&\fpeval{round(\csname %
- @wpPersonMonths\arabic{@secolumn}\endcsname,0)}}%
+ @wpPersonMonths\arabic{@secolumn}\endcsname/2,0)}}%
\@bsphack
\protected@write\@auxout{}%
{\string\expandafter\string\expandafter\string\expandafter%
@@ -1098,7 +1121,7 @@
\arabic{@secolumn}},0)}}}%
\@esphack
}
- \serowtemp & \fpeval{round(\setotalpm,0)} \\
+ \serowtemp & \fpeval{round(\setotalpm/2,0)} \\
\hline
\end{xltabular}
\end{center}
diff --git a/macros/latex/contrib/heria/heria.pdf b/macros/latex/contrib/heria/heria.pdf
index 71b47d5ed5..8a70466fe0 100644
--- a/macros/latex/contrib/heria/heria.pdf
+++ b/macros/latex/contrib/heria/heria.pdf
Binary files differ
diff --git a/macros/latex/contrib/homework/README.md b/macros/latex/contrib/homework/README.md
index 4014e4ef49..ba58bb840f 100644
--- a/macros/latex/contrib/homework/README.md
+++ b/macros/latex/contrib/homework/README.md
@@ -13,6 +13,8 @@ The current document class is for writing homework or assignment. It has the fol
- Every statement and solution has its own Q.E.D. symbol, in hollow or solid shape, respectively.
- You may mark unfinished parts with `\DNF` or `\DNF<⟨remark⟩>` (meaning "did not finish") for reminding — this will give you a clickable report on the unfinished parts at the end of your document.
+> Package dependencies: [*`einfart`*](https://ctan.org/pkg/minimalist), [`lastpage`](https://ctan.org/pkg/lastpage), [`minimalist`](https://ctan.org/pkg/minimalist), [`projlib`](https://ctan.org/pkg/projlib), [`verbatim`](https://ctan.org/pkg/verbatim).
+
## Installation and preparation
### How to install this package
@@ -39,22 +41,24 @@ Also, without these fonts installed, the compilation speed might be much slower
> It is recommended that you start by looking at one of the [demo documents](https://github.com/Jinwen-XU/homework/tree/main/demo) that suits your need and edit the code there to get your own template.
-> If you don't find what you were expecting, or if you would like some elements to be changed or improved, feel free to post a feature request via [the GitHub issue](https://github.com/Jinwen-XU/homework/issues).
+> If you cannot find what you are expecting, or if you would like some elements to be changed or improved, feel free to post a feature request via [the GitHub issue](https://github.com/Jinwen-XU/homework/issues).
A typical homework document looks like this:
```latex
\documentclass[a4paper, 11pt,
- % twoside, % Use this option if you wish to use double-sided printing
+ % twoside, % Use this option if you wish to use double-sided printing.
logo = {image-of-university-logo}, % Remove this line if you don't want logo presented.
% logo height = 1cm, % In case you are not satisfied with the default logo size.
title in boldface,
title in sffamily,
- theorem in new line,
- % remove qed, % Remove the Q.E.D. symbol for problems/questions/lemmas/...
- colored solution, % Show solution/answer with color, default is blue
- % You may specify this as "colored solution = ⟨color⟩"
- % hide solution, % Use this option to hide the solutions/answers
+ theorem in new line, % Print the theorem title in a separate line.
+ % remove qed, % Remove the Q.E.D. symbols,
+ % or only remove part of the Q.E.D. symbols,
+ % via "remove problem qed" or "remove solution qed".
+ colored solution, % Show solution/answer with color, default is blue.
+ % You may specify this as "colored solution = ⟨color⟩".
+ % hide solution, % Use this option to hide the solutions/answers.
]{homework}
\UseLanguage{...} % If you wish to write your homework in languages other than English.
@@ -62,7 +66,7 @@ A typical homework document looks like this:
\title{The Subject, Week 1}
\author{Author NAME}
-\date{\TheDate{2023-12-25}, Location} % or: \date{\today[only-year-month], Location}
+\date{\TheDate{2024-01-01}, Location} % or: \date{\today[only-year-month], Location}
\begin{document}
@@ -173,7 +177,7 @@ Alternatively, if you are making an exercise sheet and prefer a more formal titl
\\
Course ID \& Course Name
\hfill
- Year 2023--24
+ Year 2024--25
}
\title{%
@@ -181,7 +185,7 @@ Alternatively, if you are making an exercise sheet and prefer a more formal titl
}
\author{}
\date{%
- % \TheDate{2023-12-25}
+ % \TheDate{2024-01-01}
}
@@ -197,7 +201,9 @@ Regarding some of the class options:
1) The logo image can be included via the class option `logo = {⟨image file name⟩}`, and if you are not satisfied with its default size, then you may manually specify the size via the option `logo height = {⟨height⟩}` or `logo width = {⟨width⟩}`. If you do not want to show any logo in the title bar, you may simply remove the option `logo = {⟨image file name⟩}`.
1) The options `title in boldface`, `title in sffamily` or even `title in scshape` are for configuring the text effect of the title line, the sectional titles and theorem names.
1) The option `theorem in new line` is for showing the problem / theorem name, numbering and description in a separate line, for the sake of clarity.
-1) The option `remove qed` is for removing the Q.E.D. symbol for theorem-type environment.
+1) The option `remove qed` is for removing all the Q.E.D. symbol.
+ - If you only wish to remove the Q.E.D. symbol for problems/questions/lemmas/..., use `remove problem qed` or `remove question qed` (they are the same).
+ - If you only wish to remove the Q.E.D. symbol for solutions/answers, use `remove solution qed` or `remove answer qed` (they are the same).
1) The option `formal title` is for enabling the formal title style. There would be no logo and no separation lines, and the title would be centered.
1) The option `colored solution` or `colored solution = ⟨color⟩` is for setting the text color of the solution/answer.
1) The option `hide solution` (or `hide answer`) is for hiding the `solution` and `answer` environments.
@@ -249,6 +255,8 @@ and then write this in your preamble:
The author would like to thank David García-Zelada for his valuable help with the Spanish language. He kindly demonstrated to me the difference between the "Tutoyer" and "Vouvoyer" version, patiently corrected many inaccuracies in the demo documents, and also pointed out a few improper translations in some of my other packages.
+The author would also like to thank his friend Junzhuo Zhao for his valuable help with the German language. Danke schön!
+
## License
diff --git a/macros/latex/contrib/homework/homework.cls b/macros/latex/contrib/homework/homework.cls
index 576cd35453..7bc5adcf85 100644
--- a/macros/latex/contrib/homework/homework.cls
+++ b/macros/latex/contrib/homework/homework.cls
@@ -12,7 +12,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplClass
{homework}
- {2024/02/21} {}
+ {2024/09/30} {}
{Document class for writing homework}
\keys_define:nn { homework }
@@ -58,6 +58,22 @@
, remove~qed .bool_set:N = \l__homework_no_qed_bool
, remove qed .bool_set:N = \l__homework_no_qed_bool
+ , remove-problem-qed .bool_set:N = \l__homework_no_qed_problem_bool
+ , remove-problem-qed .initial:n = { false }
+ , remove~problem~qed .bool_set:N = \l__homework_no_qed_problem_bool
+ , remove problem qed .bool_set:N = \l__homework_no_qed_problem_bool
+ , remove-question-qed .bool_set:N = \l__homework_no_qed_problem_bool
+ , remove~question~qed .bool_set:N = \l__homework_no_qed_problem_bool
+ , remove question qed .bool_set:N = \l__homework_no_qed_problem_bool
+
+ , remove-solution-qed .bool_set:N = \l__homework_no_qed_solution_bool
+ , remove-solution-qed .initial:n = { false }
+ , remove~solution~qed .bool_set:N = \l__homework_no_qed_solution_bool
+ , remove solution qed .bool_set:N = \l__homework_no_qed_solution_bool
+ , remove-answer-qed .bool_set:N = \l__homework_no_qed_solution_bool
+ , remove~answer~qed .bool_set:N = \l__homework_no_qed_solution_bool
+ , remove answer qed .bool_set:N = \l__homework_no_qed_solution_bool
+
, unknown .code:n = {
\PassOptionsToClass { \CurrentOption } { minimart }
\PassOptionsToClass { \CurrentOption } { einfart }
@@ -70,9 +86,15 @@
%% Load the base class
%%================================
+\bool_if:NT \l__homework_no_qed_bool
+ {
+ \bool_set_true:N \l__homework_no_qed_problem_bool
+ \bool_set_true:N \l__homework_no_qed_solution_bool
+ }
+
\sys_if_engine_pdftex:TF
{
- \bool_if:NF \l__homework_no_qed_bool
+ \bool_if:NF \l__homework_no_qed_problem_bool
{
\PassOptionsToClass { theorem with qed } { minimart }
}
@@ -80,7 +102,7 @@
\LoadClass { minimart }
}
{
- \bool_if:NF \l__homework_no_qed_bool
+ \bool_if:NF \l__homework_no_qed_problem_bool
{
\PassOptionsToClass { theorem with qed } { einfart }
}
@@ -271,8 +293,11 @@
\ignorespaces
}
{
- \pushQED{\qed}
- \popQED\endtrivlist\@endpefalse
+ \bool_if:NF \l__homework_no_qed_solution_bool
+ {
+ \pushQED{\qed}
+ \popQED\endtrivlist\@endpefalse
+ }
}
\NewDocumentEnvironment { answer } { O{ \l__homework_answer_tl } }
diff --git a/macros/latex/contrib/hypcap/README.md b/macros/latex/contrib/hypcap/README.md
new file mode 100644
index 0000000000..07580bcb3f
--- /dev/null
+++ b/macros/latex/contrib/hypcap/README.md
@@ -0,0 +1,20 @@
+# hypcap package for LaTeX
+
+* adjusting anchors of captions;
+
+Version: 2024-07-26 v1.13
+
+This package tries a solution of the problem with
+hyperref, that links to floats points below the
+caption and not at the beginning of the float.
+Therefore this package divides the task into two
+part, the link setting with `\capstart` or
+automatically at the beginning of a float and
+the rest in the `\caption` command.
+
+## Copyright (C)
+* 1999-2001, 2006-2008, 2011 Heiko Oberdiek
+* 2016-2024 Oberdiek Package Support Group
+
+## License
+LATEX Project Public License, version 1.3c or later.
diff --git a/macros/latex/contrib/oberdiek/hypcap.dtx b/macros/latex/contrib/hypcap/hypcap.dtx
index a9bb106fe3..ef7538e91e 100644
--- a/macros/latex/contrib/oberdiek/hypcap.dtx
+++ b/macros/latex/contrib/hypcap/hypcap.dtx
@@ -1,13 +1,13 @@
% \iffalse meta-comment
%
% File: hypcap.dtx
-% Version: 2016/05/16 v1.12
+% Version: 2024-07-26 v1.13
% Info: Adjusting the anchors of captions
%
% Copyright (C)
% 1999-2001, 2006-2008, 2011 Heiko Oberdiek
-% 2016-2019 Oberdiek Package Support Group
-% https://github.com/ho-tex/oberdiek/issues
+% 2016-2024 Oberdiek Package Support Group
+% https://github.com/ho-tex/hypcap/issues
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -23,15 +23,15 @@
%
% The Current Maintainers of this work are
% Heiko Oberdiek and the Oberdiek Package Support Group
-% https://github.com/ho-tex/oberdiek/issues
+% https://github.com/ho-tex/hypcap/issues
%
% This work consists of the main source file hypcap.dtx
% and the derived files
% hypcap.sty, hypcap.pdf, hypcap.ins, hypcap.drv.
%
% Distribution:
-% CTAN:macros/latex/contrib/oberdiek/hypcap.dtx
-% CTAN:macros/latex/contrib/oberdiek/hypcap.pdf
+% CTAN:macros/latex/contrib/hypcap/hypcap.dtx
+% CTAN:macros/latex/contrib/hypcap/hypcap.pdf
%
% Unpacking:
% (a) If hypcap.ins is present:
@@ -52,7 +52,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex hypcap.dtx
% makeindex -s gind.ist hypcap.idx
% pdflatex hypcap.dtx
@@ -60,9 +60,9 @@
% pdflatex hypcap.dtx
%
% Installation:
-% TDS:tex/latex/oberdiek/hypcap.sty
-% TDS:doc/latex/oberdiek/hypcap.pdf
-% TDS:source/latex/oberdiek/hypcap.dtx
+% TDS:tex/latex/hypcap/hypcap.sty
+% TDS:doc/latex/hypcap/hypcap.pdf
+% TDS:source/latex/hypcap/hypcap.dtx
%
%<*ignore>
\begingroup
@@ -79,7 +79,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: hypcap 2016/05/16 v1.12 Adjusting the anchors of captions (HO)}
+\Msg{* Package: hypcap 2024-07-26 v1.13 Adjusting the anchors of captions (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -91,11 +91,11 @@
This is a generated file.
Project: hypcap
-Version: 2016/05/16 v1.12
+Version: 2024-07-26 v1.13
Copyright (C)
1999-2001, 2006-2008, 2011 Heiko Oberdiek
- 2016-2019 Oberdiek Package Support Group
+ 2016-2024 Oberdiek Package Support Group
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -111,7 +111,7 @@ This work has the LPPL maintenance status "maintained".
The Current Maintainers of this work are
Heiko Oberdiek and the Oberdiek Package Support Group
-https://github.com/ho-tex/oberdiek/issues
+https://github.com/ho-tex/hypcap/issues
This work consists of the main source file hypcap.dtx
@@ -124,7 +124,7 @@ and the derived files
\generate{%
\file{hypcap.ins}{\from{hypcap.dtx}{install}}%
\file{hypcap.drv}{\from{hypcap.dtx}{driver}}%
- \usedir{tex/latex/oberdiek}%
+ \usedir{tex/latex/hypcap}%
\file{hypcap.sty}{\from{hypcap.dtx}{package}}%
}
@@ -152,7 +152,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{hypcap.drv}%
- [2016/05/16 v1.12 Adjusting the anchors of captions (HO)]%
+ [2024-07-26 v1.13 Adjusting the anchors of captions (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\begin{document}
@@ -166,9 +166,9 @@ and the derived files
% \GetFileInfo{hypcap.drv}
%
% \title{The \xpackage{hypcap} package}
-% \date{2016/05/16 v1.12}
+% \date{2024-07-26 v1.13}
% \author{Heiko Oberdiek\thanks
-% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}}
+% {Please report any issues at \url{https://github.com/ho-tex/hypcap/issues}}}
%
% \maketitle
%
@@ -301,7 +301,7 @@ and the derived files
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{hypcap}%
- [2016/05/16 v1.12 Adjusting the anchors of captions (HO)]
+ [2024-07-26 v1.13 Adjusting the anchors of captions (HO)]
% \end{macrocode}
%
% For unique command names this package uses |hc@| as prefix
@@ -461,7 +461,7 @@ and the derived files
\capstart
}{%
\if@capstart
- \PackageError{hypcap}{You have forgotten to use \string\caption}%
+ \PackageWarning{hypcap}{You have forgotten to use \string\caption}%
\global\@capstartfalse
\else
\fi
@@ -497,31 +497,11 @@ and the derived files
% \paragraph{Package.} This package is available on
% CTAN\footnote{\CTANpkg{hypcap}}:
% \begin{description}
-% \item[\CTAN{macros/latex/contrib/oberdiek/hypcap.dtx}] The source file.
-% \item[\CTAN{macros/latex/contrib/oberdiek/hypcap.pdf}] Documentation.
+% \item[\CTAN{macros/latex/contrib/hypcap/hypcap.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/hypcap/hypcap.pdf}] Documentation.
% \end{description}
%
%
-% \paragraph{Bundle.} All the packages of the bundle `oberdiek'
-% are also available in a TDS compliant ZIP archive. There
-% the packages are already unpacked and the documentation files
-% are generated. The files and directories obey the TDS standard.
-% \begin{description}
-% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}]
-% \end{description}
-% \emph{TDS} refers to the standard ``A Directory Structure
-% for \TeX\ Files'' (\CTANpkg{tds}). Directories
-% with \xfile{texmf} in their name are usually organized this way.
-%
-% \subsection{Bundle installation}
-%
-% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the
-% TDS tree (also known as \xfile{texmf} tree) of your choice.
-% Example (linux):
-% \begin{quote}
-% |unzip oberdiek.tds.zip -d ~/texmf|
-% \end{quote}
-%
% \subsection{Package installation}
%
% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
@@ -537,9 +517,9 @@ and the derived files
% \begin{quote}
% \def\t{^^A
% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
-% hypcap.sty & tex/latex/oberdiek/hypcap.sty\\
-% hypcap.pdf & doc/latex/oberdiek/hypcap.pdf\\
-% hypcap.dtx & source/latex/oberdiek/hypcap.dtx\\
+% hypcap.sty & tex/latex/hypcap/hypcap.sty\\
+% hypcap.pdf & doc/latex/hypcap/hypcap.pdf\\
+% hypcap.dtx & source/latex/hypcap/hypcap.dtx\\
% \end{tabular}^^A
% }^^A
% \sbox0{\t}^^A
@@ -718,6 +698,9 @@ and the derived files
% \item
% Documentation updates.
% \end{Version}
+% \begin{Version}{2024-07-26 v1.13}
+% \item Change error into warning, issue \#1
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/macros/latex/contrib/oberdiek/hypcap.pdf b/macros/latex/contrib/hypcap/hypcap.pdf
index 46df7e8951..bea211492f 100644
--- a/macros/latex/contrib/oberdiek/hypcap.pdf
+++ b/macros/latex/contrib/hypcap/hypcap.pdf
Binary files differ
diff --git a/macros/latex/contrib/hypdestopt/README.md b/macros/latex/contrib/hypdestopt/README.md
index 0610b53e58..71e1c7066e 100644
--- a/macros/latex/contrib/hypdestopt/README.md
+++ b/macros/latex/contrib/hypdestopt/README.md
@@ -1,6 +1,6 @@
# hypdestopt package for LaTeX
-Version: 2020-09-02 v2.7
+Version: 2024-08-07 v2.8
Hyperref destination optimizer
@@ -11,7 +11,7 @@ to get smaller PDF files.
## Copyright (C)
* 2007, 2009-2011 Heiko Oberdiek
-* 2016-2020 Oberdiek Package Support Group
+* 2016-2024 Oberdiek Package Support Group
## License
LATEX Project Public License, version 1.3c or later.
diff --git a/macros/latex/contrib/hypdestopt/hypdestopt.dtx b/macros/latex/contrib/hypdestopt/hypdestopt.dtx
index 03006db27b..f9c6af1e6d 100644
--- a/macros/latex/contrib/hypdestopt/hypdestopt.dtx
+++ b/macros/latex/contrib/hypdestopt/hypdestopt.dtx
@@ -1,12 +1,12 @@
% \iffalse meta-comment
%
% File: hypdestopt.dtx
-% Version: 2020-09-02 v2.7
+% Version: 2024-08-07 v2.8
% Info: Hyperref destination optimizer
%
% Copyright (C)
% 2006-2008, 2011 Heiko Oberdiek
-% 2016-2020 Oberdiek Package Support Group
+% 2016-2024 Oberdiek Package Support Group
% https://github.com/ho-tex/hypdestopt/issues
%
% This work may be distributed and/or modified under the
@@ -79,7 +79,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: hypdestopt 2020-09-02 v2.7 Hyperref destination optimizer (HO)}
+\Msg{* Package: hypdestopt 2024-08-07 v2.8 Hyperref destination optimizer (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -91,11 +91,11 @@
This is a generated file.
Project: hypdestopt
-Version: 2020-09-02 v2.7
+Version: 2024-08-07 v2.8
Copyright (C)
2006-2008, 2011 Heiko Oberdiek
- 2016-2020 Oberdiek Package Support Group
+ 2016-2024 Oberdiek Package Support Group
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -152,7 +152,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{hypdestopt.drv}%
- [2020-09-02 v2.7 Hyperref destination optimizer (HO)]%
+ [2024-08-07 v2.8 Hyperref destination optimizer (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\begin{document}
@@ -166,7 +166,7 @@ and the derived files
% \GetFileInfo{hypdestopt.drv}
%
% \title{The \xpackage{hypdestopt} package}
-% \date{2020-09-02 v2.7}
+% \date{2024-08-07 v2.8}
% \author{Heiko Oberdiek\thanks
% {Please report any issues at \url{https://github.com/ho-tex/hypdestopt/issues}}}
%
@@ -177,6 +177,9 @@ and the derived files
% \xoption{pdftex} and \xoption{luatex} driver. It removes unnecessary destinations
% and shortens the destination names or uses numbered destinations
% to get smaller PDF files.
+%
+% The package is not compatible with the \LaTeX{} PDFmanagement loaded with
+% \cs{DocumentMetadata} and will do nothing if it detects it.
% \end{abstract}
%
% \tableofcontents
@@ -289,9 +292,24 @@ and the derived files
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{hypdestopt}%
- [2020-09-02 v2.7 Hyperref destination optimizer (HO)]%
+ [2024-08-07 v2.8 Hyperref destination optimizer (HO)]%
% \end{macrocode}
%
+% \subsection{Check for PDF management}
+% \begin{macrocode}
+\IfDocumentMetadataTF
+ {
+ \PackageWarning{hypdestopt}
+ {
+ \string\DocumentMetadata detected. \MessageBreak
+ The package will do nothing.
+ }{}
+ }{}
+\IfDocumentMetadataTF
+ {
+ \endinput
+ }{}
+% \end{macrocode}
% \subsection{Options}
%
% \subsubsection{Option \xoption{verbose}}
@@ -752,26 +770,6 @@ and the derived files
% \end{description}
%
%
-% \paragraph{Bundle.} All the packages of the bundle `oberdiek'
-% are also available in a TDS compliant ZIP archive. There
-% the packages are already unpacked and the documentation files
-% are generated. The files and directories obey the TDS standard.
-% \begin{description}
-% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}]
-% \end{description}
-% \emph{TDS} refers to the standard ``A Directory Structure
-% for \TeX\ Files'' (\CTANpkg{tds}). Directories
-% with \xfile{texmf} in their name are usually organized this way.
-%
-% \subsection{Bundle installation}
-%
-% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the
-% TDS tree (also known as \xfile{texmf} tree) of your choice.
-% Example (linux):
-% \begin{quote}
-% |unzip oberdiek.tds.zip -d ~/texmf|
-% \end{quote}
-%
% \subsection{Package installation}
%
% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
@@ -956,6 +954,9 @@ and the derived files
% \begin{Version}{2020-09-02 v2.7}
% \item Adapted to the new hook management of LaTeX (github issue 1)
% \end{Version}
+% \begin{Version}{2024-08-07 v2.8}
+% \item Disable the package if \cs{DocumentMetadata} is detected (github issue 2)
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/macros/latex/contrib/hypdestopt/hypdestopt.pdf b/macros/latex/contrib/hypdestopt/hypdestopt.pdf
index 1835545dc8..1ca7cc4c29 100644
--- a/macros/latex/contrib/hypdestopt/hypdestopt.pdf
+++ b/macros/latex/contrib/hypdestopt/hypdestopt.pdf
Binary files differ
diff --git a/macros/latex/contrib/iaria-lite/README b/macros/latex/contrib/iaria-lite/README
index 018e09ba46..62decf0ef3 100644
--- a/macros/latex/contrib/iaria-lite/README
+++ b/macros/latex/contrib/iaria-lite/README
@@ -1,17 +1,21 @@
-----------------------------
- Version 0.2 of the iaria-lite class
+ Version 0.4 of the iaria-lite class
Christoph P. Neumann
-----------------------------
-This LaTeX provides a simple environment for
-technical reports as scholary publication.
+This package contains templates for the creation of documents for
+IARIA publications (International Academy, Research, and Industry Association)
+and implements the specifications for the IARIA citation style.
-NEU = Neumann
-TR = Technical Report
+This class does not contain evil low-level TeX magic
+but instead uses many other fancy LaTeX packages
+that we hope you have already installed.
-As this class is created mainly for ourselves it does not
-contain evil low-level TeX magic but instead uses many other
-fancy LaTeX packages that we hope you have already installed.
+It does not implement the specifications for the IARIA citation style,
+for which you have to use the iaria class.
+
+DISCLAIMER: If your are using pdflatex/biblatex/biber,
+it is recommended to use CTAN package iaria.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/contrib/iaria-lite/iaria-lite.dtx b/macros/latex/contrib/iaria-lite/iaria-lite.dtx
index 3bc6f34d28..c6d98a9f1e 100644
--- a/macros/latex/contrib/iaria-lite/iaria-lite.dtx
+++ b/macros/latex/contrib/iaria-lite/iaria-lite.dtx
@@ -1,16 +1,16 @@
%\iffalse
% iaria-lite.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
-% -dir "src"
% -preamble "Copyright 2023-2024 Christoph P. Neumann This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or any later version. The latest version of this license is in https://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2008 or later. This work has the LPPL maintenance status maintained. The Current Maintainer of this work is Christoph P. Neumann. "
% -macrocode ".*"
% -setambles ".*=>\nopreamble"
-% -doc "doc/iaria-lite.tex"
% -src "(_cpn_copyIntoExamplesFolder_cls.cmd|iaria-lite.cls)=>\1"
-% -author "Christoph P. Neumann "
% -date "2024-2024"
+% -dir "src"
+% -author "Christoph P. Neumann "
+% -doc "doc/iaria-lite.tex"
% iaria-lite
-% Created on 2024/4/10 18:20
+% Created on 2024/9/14 21:27
%\fi
%\iffalse
%<*package>
@@ -56,7 +56,7 @@
%\title{\textsf{iaria-lite}\\
% An Unofficial IARIA LaTeX Class (Lite Version)}
%\author{Christoph P.\ Neumann \texttt{$<$cyberpetaneuron@gmail.com$>$}}
-%\date{Version 0.2}
+%\date{Version 0.4}
%\maketitle
%\PrintChanges
%
@@ -122,14 +122,34 @@
%This package provides the documentclass \texttt{iaria-lite}. The documentclass
%supports the following options:
%
-%
%\begin{itemize}
%\item |conference| Passed to IEEEtran
%\item |a4paper| Passed to IEEEtran
-%\item |flushend| Activate flushend package
-%\item |pbalance| Activate pbalance package
+%\item |subfig| Loads subfig package with IARIA style settings
+%\item |subcaption| Loads subcaption package with IARIA style settings
+%\item |flushend| Activate flushend package (compatible with arXiv build process)
+%\item |pbalance| Activate pbalance package (incompatible with arXiv build process)
%\end{itemize}
%
+%A Remark about two-column document balancing on the last page:
+%The flushend package is recommended, because it works within the arXiv automated build process.
+%However, flushend has a major incampatibility with package lineno, which is, e.\,g., transitively loaded by package mindflow.
+%Thus, in case when flushend does not have any effect, check whether one of your packages loads lineno.
+%Usually you are stuck with your packages and, thus, will instead be forced to switch from flushend to pbalance.
+%Please be aware that pbalance works great and has high compatibility, but unfortunately it will not have any effect within the arXiv automated build process.
+%In case of both, a somehow needed lineno package and an intended arXiv upload, I recommend to do without two-column balancing on the last page and just to stay away from both flushend and pbalance, in order to ensure that your paper is layouted identically in IARIA submission and arXiv upload.
+%I hope this remark proves helpful, it took me some nerve to find out.
+%
+%There is also another important difference between flushend and pbalance: the handling of footnotes on the last page.
+%Flushend provides a decent result, but the result of pbalance is incomprehensible.
+%I strongly recommend avoiding footnotes on the last page.
+%If you absolutely need footnotes on the last page, consider staying away from two-column balancing on the last page.
+%
+%About subfigures:
+%Both well-known packages subfig and subcaption can be used.
+%However, they are not compatible with each other and we can either load one or the other.
+%Both require dedicated style settings to be compatible with IARIA formatting rules.
+%Thus, the document class provides options to load them for you with correct settings.
%
%\section{Requirements}
%
@@ -144,6 +164,8 @@
%\item hyperref
%\item orcidlink
%\item pbalance
+%\item subcaption
+%\item subfig
%\item times
%\item url
%\item xcolor
@@ -198,13 +220,25 @@ pause% \end{macrocode}
\NeedsTeXFormat{LaTeX2e}
% Provide the name of your document class, the date it was last updated, and a comment about what it's used for
-\ProvidesClass{iaria-lite}[2024/04/10 unofficial IARIA-lite conference template v0.2]
+\ProvidesClass{iaria-lite}[2024/09/16 unofficial IARIA-lite conference template v0.4]
% Define marker counter for options (counter are global in latex):
+\newcounter{iaria@subfigtracker}
+\newcounter{iaria@subcaptiontracker}
\newcounter{iaria@pbalancetracker}
\newcounter{iaria@flushendtracker}
% Declare options:
+
+\DeclareOption{subfig}{
+ \setcounter{iaria@subfigtracker}{1}
+ \typeout{iaria class: subfig option is set (use subfloat command).}
+}
+\DeclareOption{subcaption}{
+ \setcounter{iaria@subcaptiontracker}{1}
+ \typeout{iaria class: subcaption option is set (use subfigure command).}
+}
+
\DeclareOption{onecolumn}{\OptionNotUsed} % IEEE option onecolumn will be ignored
\DeclareOption{pbalance}{
@@ -274,9 +308,6 @@ pause% \end{macrocode}
\crcr}
\makeatother
-% IARIA subfigure captions require this:
-\RequirePackage[caption=false,font=footnotesize]{subfig}
-
% IARIA requires to bring the table caption in the same line of "Table I"
\usepackage{etoolbox}
\makeatletter
@@ -287,6 +318,17 @@ pause% \end{macrocode}
{}
\makeatother
+% IARIA subfigure captions require parentheses and footnotesize:
+\ifnum\value{iaria@subfigtracker}=1
+ \typeout{iaria class: load subfig package (use subfloat command).}
+ \RequirePackage[caption=false,font=footnotesize]{subfig}
+\fi
+\ifnum\value{iaria@subcaptiontracker}=1
+ \typeout{iaria class: load subcaption package (use subfigure command).}
+ \RequirePackage{subcaption}
+ \captionsetup[subfigure]{labelformat=parens,font=footnotesize}
+\fi
+
% Balance/level columns at the last page / in bibliography
% DISCLAIMER: No solution is a 100%/perfect one!
% Mainstream option: pbalance (see https://ctan.org/pkg/pbalance)
diff --git a/macros/latex/contrib/iaria-lite/iaria-lite.ins b/macros/latex/contrib/iaria-lite/iaria-lite.ins
index 5f61f6cac0..84f0e6507f 100644
--- a/macros/latex/contrib/iaria-lite/iaria-lite.ins
+++ b/macros/latex/contrib/iaria-lite/iaria-lite.ins
@@ -1,4 +1,4 @@
-% iaria-lite.ins generated using makedtx version 1.2 2024/4/10 18:20
+% iaria-lite.ins generated using makedtx version 1.2 2024/9/14 21:27
\input docstrip
\preamble
diff --git a/macros/latex/contrib/iaria-lite/iaria-lite.pdf b/macros/latex/contrib/iaria-lite/iaria-lite.pdf
index a004deb1be..a015125dbc 100644
--- a/macros/latex/contrib/iaria-lite/iaria-lite.pdf
+++ b/macros/latex/contrib/iaria-lite/iaria-lite.pdf
Binary files differ
diff --git a/macros/latex/contrib/iaria-lite/template/cpn_all_all.bib b/macros/latex/contrib/iaria-lite/template/cpn_all_all.bib
index cc7abaec4a..ba79c01832 100644
--- a/macros/latex/contrib/iaria-lite/template/cpn_all_all.bib
+++ b/macros/latex/contrib/iaria-lite/template/cpn_all_all.bib
@@ -1,3 +1,4 @@
+
@Thesis{neumann2004sa,
author = {Neumann, Christoph P.},
title = {{Conceptional Design and Realization of a `Component Test Stand' for Measurements on Enterprise JavaBeans}},
@@ -7,6 +8,7 @@
type = {Studienarbeit},
_url = {https://www.cyberlytics.eu/theses/all/Studienarbeit_ChristophPeterNeumann_revised/}
}
+
@Thesis{neumann2005da,
author = {Neumann, Christoph P.},
title = {{Design of an Open Framework for Optimizing the Distribution of Hardware and Software Components in Control Networks for Vehicles}},
@@ -16,6 +18,7 @@
type = {Diplomarbeit},
_url = {https://www.cyberlytics.eu/theses/all/Diplomarbeit_ChristophPeterNeumann_original/}
}
+
@INPROCEEDINGS{MeNe04testejb,
author = {Marcus Meyerh{\"o}fer and Christoph Neumann},
title = {{TestEJB} -- A Measurement Framework for {EJBs}},
@@ -35,21 +38,20 @@
@INPROCEEDINGS{NHSL09oxdbs,
author = {Christoph P. Neumann and Stefan Hanisch and Bernhard Schiemann and
- Richard Lenz},
+ Richard Lenz},
title = {{OXDBS -- Erweiterung einer nativen XML\-/Datenbank um die Validierung
- und Konsistenzpr{\"u}fung gegen eine OWL\-/Ontologie}},
+ und Konsistenzpr{\"u}fung gegen eine OWL\-/Ontologie}},
booktitle = {Tagungsband der 54.\,GMDS\-/Jahrestagung},
year = {2009},
_pages = {271:1--271:2},
address = {Essen, DE},
month = sep,
organization = {{Deutsche Gesellschaft f{\"u}r Medizinische Informatik, Biometrie
- und Epidemiologie} (GMDS)},
+ und Epidemiologie} (GMDS)},
doi = {10.3205/09GMDS271},
_url = {http://www.egms.de/en/meetings/gmds2009/09gmds271.shtml},
}
-
@INPROCEEDINGS{NeWL09xdsrig,
author = {Christoph P. Neumann and Florian Wagner and Richard Lenz},
title = {{XdsRig -- Eine Open\-/Source IHE XDS Testumgebung}},
@@ -59,15 +61,14 @@
address = {Essen, DE},
month = sep,
organization = {{Deutsche Gesellschaft f{\"u}r Medizinische Informatik, Biometrie
- und Epidemiologie} (GMDS)},
+ und Epidemiologie} (GMDS)},
doi = {10.3205/09GMDS276},
_url = {http://www.egms.de/en/meetings/gmds2009/09gmds276.shtml},
}
-
@INPROCEEDINGS{NRDL09deus,
- author = {Christoph P. Neumann and Florian Rampp and Michael Daum and Richard Lenz},
- title = {{A Mediated Publish\-/Subscribe System for Inter\-/Institutional Process Support in Healthcare}},
+ author = {Christoph P. Neumann and Florian Rampp and Michael Daum and Richard Lenz},
+ title = {{A Mediated Publish\-/Subscribe System for Inter\-/Institutional Process Support in Healthcare}},
booktitle = {Proc of the 3rd ACM Int'l Conf on Distributed Event\-/Based Systems (DEBS 2009)},
year = {2009},
_chapter = {14},
@@ -85,8 +86,8 @@
author = {Christoph P. Neumann and Richard Lenz},
title = {{alpha\-/Flow: A Document\-/based Approach to Inter\-/Institutional Process Support in Healthcare}},
booktitle = {Proc of the 3rd Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
- on Business Process Management (BPM'09)},
+ in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
+ on Business Process Management (BPM'09)},
year = {2009},
pages = {569--580},
address = {Ulm, DE},
@@ -100,10 +101,10 @@
@INPROCEEDINGS{NeLe09dmps,
author = {Christoph P. Neumann and Richard Lenz},
title = {{A Light\-/Weight System Extension Supporting Document\-/based Processes
- in Healthcare}},
+ in Healthcare}},
booktitle = {Proc of the 3rd Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
- on Business Process Management (BPM'09)},
+ in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
+ on Business Process Management (BPM'09)},
year = {2009},
pages = {557--568},
address = {Ulm, DE},
@@ -140,12 +141,13 @@
doi = {10.1145/1866480.1866502},
_isbn = {978\-/1\-/60558\-/900\-/8},
}
+
@INPROCEEDINGS{NSWL11alphaadaptive,
author = {Christoph P. Neumann and Peter K. Schwab and Andreas M. Wahl and Richard Lenz},
title = {{alpha\-/Adaptive: Evolutionary Workflow Metadata in Distributed Document\-/Oriented Process Management}},
booktitle = {Proc of the 4th Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'11) in conjunction with the 9th Int'l Conf
- on Business Process Management (BPM'11)},
+ in Healthcare (ProHealth'11) in conjunction with the 9th Int'l Conf
+ on Business Process Management (BPM'11)},
year = {2011},
pages = {225--236},
address = {Clermont\-/Ferrand, FR},
@@ -209,26 +211,26 @@
}
@MastersThesis{Neumann2012dissPreprint_OldBibTeX,
- author = {Christoph P. Neumann},
- title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
- school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- type = {Dissertation},
- _type = {`Dissertation' (PhD thesis)},
- _type = {PhD thesis (`Dissertation' in Germany)},
- month = nov,
- year = 2012,
- url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
+ author = {Christoph P. Neumann},
+ title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
+ school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
+ type = {Dissertation},
+ _type = {`Dissertation' (PhD thesis)},
+ _type = {PhD thesis (`Dissertation' in Germany)},
+ month = nov,
+ year = 2012,
+ url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
}
@phdthesis{Neumann2012dissPreprint,
- author = {Christoph P. Neumann},
- title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
- school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- month = nov,
- year = 2012,
- address = {Erlangen},
- doi = {10.13140/RG.2.2.14719.79521},
- url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
+ author = {Christoph P. Neumann},
+ title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
+ school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
+ month = nov,
+ year = 2012,
+ address = {Erlangen},
+ doi = {10.13140/RG.2.2.14719.79521},
+ url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
}
@INPROCEEDINGS{NeLe13adhocCoop,
@@ -244,7 +246,9 @@
_isbn = {978\-/3\-/642\-/36437\-/2},
doi = {10.1007/978-3-642-36438-9_8},
_url = {https://doi.org/10.1007/978-3-642-36438-9_8},
-}@incollection{Neumann2012lni,
+}
+
+@incollection{Neumann2012lni,
author={Christoph P. Neumann},
editor={Abraham Bernstein and Wolfgang Effelsberg and Steffen H{\"o}lldobler and Hans{-}Peter Lenhof and Klaus{-}Peter L{\"o}hr and Paul Molitor and Gustaf Neumann and R{\"u}diger Reischuk and Nicole Schweikardt and Myra Spiliopoulou and Harald St{\"o}rrle and Sabine S{\"u}sstrunk},
title={Verteiltes Dokumenten\-/orientiertes Prozessmanagement im Gesundheitswesen},
@@ -256,18 +260,19 @@
year={2012},
url={https://dl.gi.de/20.500.12116/33740}
}
+
@BOOK{Neumann2013dissBook,
- author = {Christoph P. Neumann},
- title = {{Distributed Case Handling}},
- year = 2013,
- publisher = {Verlag Dr.~Hut},
- address = {M{\"u}nchen},
- isbn = {9783843909198},
- _urn = {urn:nbn:de:bvb:29\-/opus\-/39070},
- _url = {https://d-nb.info/1033041637},
- _note = {\url{http://www.opus.ub.uni-erlangen.de/opus/volltexte/2012/3907/}(preprint version)},
- _note = {\url{https://d-nb.info/1033041637}(DNB)},
- _note = {\url{https://www.dr.hut-verlag.de/978-3-8439-0919-8.html}(URL)}
+ author = {Christoph P. Neumann},
+ title = {{Distributed Case Handling}},
+ year = 2013,
+ publisher = {Verlag Dr.~Hut},
+ address = {M{\"u}nchen},
+ isbn = {9783843909198},
+ _urn = {urn:nbn:de:bvb:29\-/opus\-/39070},
+ _url = {https://d-nb.info/1033041637},
+ _note = {\url{http://www.opus.ub.uni-erlangen.de/opus/volltexte/2012/3907/}(preprint version)},
+ _note = {\url{https://d-nb.info/1033041637}(DNB)},
+ _note = {\url{https://www.dr.hut-verlag.de/978-3-8439-0919-8.html}(URL)}
}
@INPROCEEDINGS{IND+09lzatav,
@@ -363,11 +368,10 @@
month=apr,
year={2024},
doi = {10.48550/arXiv.2404.02637},
- _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2024_X_YY_ZZZZZ},
- _url = {https://doi.org/10.48550/arXiv.2404.02637},
+ _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2024_2_10_28007},
+ _url2 = {https://doi.org/10.48550/arXiv.2404.02637},
_issn = {2308\-/4294},
- _pages = {AA--OO},
- note = {accepted for publication}
+ pages = {19--24}
}
@INPROCEEDINGS{ToNe11alphaprops,
@@ -425,6 +429,28 @@
_url2 = {https://www.oth-aw.de/files/oth-aw/Aktuelles/Veroeffentlichungen/Forschungsbericht/OTH_Forschungsbericht_2024.pdf},
_url3 = {https://www.researchgate.net/profile/Christoph-Neumann-8/publication/379109359_Analyse_von_Methoden_zur_Sicherung_der_Vertraulichkeit_in_Neuronalen_Netzen/links/65faff43a4857c7962654c5c/Analyse-von-Methoden-zur-Sicherung-der-Vertraulichkeit-in-Neuronalen-Netzen.pdf}
}
+
+@MISC{StNe24kosmosis,
+ title={The Kosmosis Use-Case of Crypto Rug Pull Detection and Prevention},
+ author={Philipp Stangl and Christoph P. Neumann},
+ year={2024},
+ eprint={2405.19762},
+ archivePrefix={arXiv},
+ primaryClass={cs.CR}
+}
+
+@TECHREPORT{StNe24kosmosis-TR,
+ author = {Philipp Stangl and Christoph P. Neumann},
+ title = {{The Kosmosis Use-Case of Crypto Rug Pull Detection and Prevention}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab at the Department of Electrical Engineering, Media and Computer Science},
+ series = {Technischer Bericht},
+ number = {CL-2024-01},
+ year = 2024,
+ month = 2,
+ doi = {10.48550/arXiv.2405.19762},
+ _url = {https://doi.org/10.48550/arXiv.2405.19762},
+}
+
@TECHREPORT{ModA-TR-2021SS-WAE-TeamWeiss-CovidDashboard,
author = {Tobias Bauer and Albert Hahn and Lukas Kleinlein and Nicolas Proske and Leonard W{\"o}llmer and Andrei Trukhin and Christoph P. Neumann},
title = {{Covidash: Eine MEAN\-/Variation-basierte Webanwendung für Inzidenz\-/Zahlen und Impffortschritt in Deutschland}},
@@ -543,7 +569,6 @@
_url = {https://dx.doi.org/10.13140/RG.2.2.33933.31209},
}
-
@TECHREPORT{ModA-TR-2023SS-BDCC-TeamRot-CompVisPipeline,
author = {André Kestler and Antonio Vidos and Marcus Haberl and Tobias Dobmeier and Tobias Lettner and Tobias Weiß and Christoph P. Neumann},
title = {{Computer Vision Pipeline: Eine React- und Flask\-/basierte Webanwendung zur No\-/Code\-/Bildverarbeitung mit Cloud\-/Deployment}},
@@ -622,4 +647,107 @@
doi = {10.13140/RG.2.2.22177.79209},
_url = {https://dx.doi.org/10.13140/RG.2.2.22177.79209},
}
+@TECHREPORT{ModA-TR-2024SS-CCT-TeamGruen-CloudDice,
+ author = {Lukas Rupp and Franziska Rubenbauer and Christoph P. Neumann},
+ title = {{CloudDice: Ein React\-/basiertes Kniffel-Würfelspiel}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ series = {Technische Berichte},
+ number = {CL-2024-14},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.11229.83686},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.11229.83686},
+}
+
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamCyan-SkillIssue,
+ author = {Fabian Heindl and Paul Brand and Daniel Reichert and Christoph P. Neumann},
+ title = {{SkillIssue: A MERN\-/based Low\-/Latency Multi\-/User Game for Displaying True Skill With Your Friends}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-12},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.32201.35686},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.32201.35686},
+}
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamGelb-GoalGuru,
+ author = {Bernhard Gailer and Timo Gräf and Maria Lyoteva and Tsvetan Stanchev and Apporva Bhoir and Christoph P. Neumann},
+ title = {{GoalGuru: A React- and FastAPI\-/based Cloud Application for Predicting Soccer Games Outcome}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-11},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.18779.58407},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.18779.58407},
+}
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamWeiss-InfluenzaConnect,
+ author = {Sebastian Weidner and Jonas Hermann and Nils Bayerl and Dominik Schwagerl and \ Timon Spichtinger and Christoph P. Neumann},
+ title = {{InfluenzaConnect: Eine React- und Flask\-/basierte Webanwendung für Influencer\-/Marketing}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technische Berichte},
+ number = {CL-2024-10},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.25490.47041},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.25490.47041},
+}
+
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamGruen-NanoVend,
+ author = {Lukas Hirsch and Johannes Küffner and Denis Tomazi and Christoph P. Neumann},
+ title = {{NanoVend: Ein Cloud\-/native E-Commerce\-/Backend als Baukasten für mittelständische Unternehmen}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technische Berichte},
+ number = {CL-2024-08},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.12068.69761},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.12068.69761},
+}
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamRot-StockSentinel,
+ author = {Andreas Hecht and Linus Heise and Oliver Kneidl and Eva-Maria Maurer and Christoph P. Neumann},
+ title = {{StockSentinel: AI\-/Powered Web Tool for Analyzing the Markets Perception of Stocks}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-07},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.20457.30564},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.20457.30564},
+}
+@TECHREPORT{ModA-TR-2024SS-WAE-TeamCyan-Connect4IfYouCan,
+ author = {Amos Asmerom and Daniel Reichert and Fabian Heindl and Christoph P. Neumann},
+ title = {{Connect4IfYouCan: A MERN\-/based Web Game for Competitive Two Player Matches}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-06},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.27168.19200},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.27168.19200},
+}
+
+@TECHREPORT{ModA-TR-2024SS-WAE-TeamWeiss-Geodingens,
+ author = {Viktor Hense and Johannes Lindner and Lukas Mrosek and Christoph P. Neumann},
+ title = {{Geodingens: A Web Application for Intuitive and User\-/friendly Work with Geopandas}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-04},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.13746.41929},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.13746.41929},
+}
+
+@TECHREPORT{ModA-TR-2024SS-WAE-TeamGruen-MunchMunch,
+ author = {Juliana Kühn and Nikolett Rácz and Raffael Friedl and Maximilian Lippmann and Christoph P. Neumann},
+ title = {{MunchMunch: Eine MERN\-/basierte kulinarische Web-Anwendung für verbessertes User Engagement beim Entdecken neuer Gerichte und Rezepte}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technische Berichte},
+ number = {CL-2024-02},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.23812.74883},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.23812.74883},
+}
diff --git a/macros/latex/contrib/iaria-lite/template/cpn_supervised_all.bib b/macros/latex/contrib/iaria-lite/template/cpn_supervised_all.bib
index d4341f790c..910906ac9a 100644
--- a/macros/latex/contrib/iaria-lite/template/cpn_supervised_all.bib
+++ b/macros/latex/contrib/iaria-lite/template/cpn_supervised_all.bib
@@ -1,3 +1,4 @@
+
@Thesis{kampf2012bt,
author = {Kampf, Marvin},
title = {{alpha\-/CDM: Konzeption und Implementierung eines Modells zur Inhaltsabh{\"a}ngigkeit als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
diff --git a/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.pdf b/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.pdf
index a7d0a9b52f..1fe382035d 100644
--- a/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.pdf
+++ b/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.pdf
Binary files differ
diff --git a/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.tex b/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.tex
index e4a4a45462..df31d68a92 100644
--- a/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.tex
+++ b/macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.tex
@@ -25,7 +25,15 @@
% Diferring from IEEE, IARIA requires
% in bibliography: 6+ authors as first author et al.
% in \citeauthor: any case of et al. with just first author et al.
-\usepackage[style=ieee, backend=biber, url=false, hyperref, maxnames=5, minnames=1, maxcitenames=2, mincitenames=1]{biblatex}
+\usepackage[defernumbers=true,style=ieee, backend=biber, url=false, hyperref, maxnames=5, minnames=1, maxcitenames=2, mincitenames=1]{biblatex}
+
+% Due to applied option defernumbers=true:
+% Prevent citations in the references are being numbered as '0' in ArXiv
+% https://tex.stackexchange.com/questions/463556/all-the-citations-in-the-references-are-being-numbered-as-0-in-arxiv-while-upl
+\makeatletter
+\let\blx@rerun@biber\relax
+\makeatother
+
% Diferring fro IEEE, IARIA requires the bibliography in 9 point font
% (Command \bibfont depends on biblatex)
\renewcommand*{\bibfont}{\small}
@@ -68,7 +76,7 @@
% https://stackoverflow.com/questions/2193307/how-do-i-get-latex-to-hyphenate-a-word-that-contains-a-dash
\usepackage[shortcuts]{extdash} % Use \-/ for a breakable dash that does not prevent the remainer of the word to be hyphenated
-\usepackage{paralist}
+\usepackage[alwaysadjust]{paralist}
\usepackage[caption=false,font=footnotesize]{subfig}
\addbibresource{embedded.bib}
@@ -132,7 +140,8 @@
\hyphenation{block-chain block-chains Ethe-re-um}
% Capitalization: https://capitalizemytitle.com/style/Chicago/
-\title{The Unofficial \textsmaller{IARIA}-lite \LaTeX{} Class Paper Example (v2024-03)}
+%\title{The Unofficial \textsmaller{IARIA}-lite \LaTeX{} Class Paper Example (v2024-09)}
+\title{The \textsmaller{IARIA}-lite \LaTeX{} Class: Compatible With All \LaTeX{} Distributions,\\but without \textsmaller{IARIA} specifications for citation style (v2024-09)}
\author{
\IEEEauthorblockN{Christoph P.\ Neumann\,\orcidlink{0000-0002-5936-631X}}
@@ -152,7 +161,7 @@
\maketitle
\begin{abstract}
- \lipsum[1][3-12]
+ \lipsum[11]
\end{abstract}
% A list of IEEE Computer Society appoved keywords can be obtained at
@@ -169,65 +178,67 @@ The \textsmaller{IARIA} formatting rules \cite{iaria2014formattingrules} are ado
In addition, be aware of the supplementary \textsmaller{IARIA} editorial rules \cite{iaria2009editorialrules} \faWarning{} that provide a beginner-friendly set of further advices.
It is recommended to use a grammar tool, e.\,g., the LanguageTool \cite{languagetool} browser plugin in combination with Overleaf \cite{overleaf}.
-\lipsum[2]
+\lipsum[12]
\{\faWarning{} \textsmaller{IARIA} editorial rules: Introduction must end with a paragraph describing the structure of the paper!\}
The remainder of the paper is organized as follows: In Section~II, …
\section{Related work \textbar{} Methods}
-\lipsum[3]
+\lipsum[13]
\section{Results}
-\lipsum[4]
+\lipsum[14]
\section{Discussion \textbar{} Evalution}
-\lipsum[5]
+\lipsum[15]
\section{Conclusion and Future Work}
\{\faWarning{} \textsmaller{IARIA} editorial rules: Last section must be \textquote{Conclusion and Future Work}!\}
-\lipsum[6]
-
-
-
-%%% Advisor
-\nocite{StNe23foodfresh}
+\lipsum[16]
-%%% First-Author
+%%% CPN Peer-Rev'd
+\nocite{LeNe24vocattllm} % Co
+\nocite{PANP23seccloudfogai} % Co
+\nocite{StNe23foodfresh} % Advisor
\nocite{NeLe13adhocCoop}
\nocite{Neumann2012lni}
\nocite{NeLe12alphaFlow}
\nocite{NeHL12hydra}
\nocite{NeWL12offsync}
+\nocite{WaNe12alphaoffsync} % Co
\nocite{NSWL11alphaadaptive}
+\nocite{ToNe11alphaprops} % Co
+\nocite{JBN+10fcmdb} % Co
+\nocite{FDI+10esmmog} % Co
\nocite{NeFL10oxdbs}
\nocite{NeLe10alphaUC}
+\nocite{ILN+09semrttx} % Co
+\nocite{NHSL09oxdbs} % DE
\nocite{NeLe09alphaflow}
\nocite{NeLe09dmps}
-\nocite{NHSL09oxdbs} % DE
\nocite{NeWL09xdsrig} % DE
\nocite{NRDL09deus}
+\nocite{IND+09lzatav} % Co (DE)
+\nocite{MeNe04testejb} % Pseudo-Co
-%%% Co-Authorship
-\nocite{LeNe24vocattllm}
-\nocite{PANP23seccloudfogai}
-\nocite{WaNe12alphaoffsync}
-\nocite{ToNe11alphaprops}
-\nocite{FDI+10esmmog}
-\nocite{JBN+10fcmdb}
-\nocite{ILN+09semrttx}
-\nocite{IND+09lzatav} % DE
-\nocite{MeNe04testejb}
-
-%%% Monographic Work
+%%% CPN Monographic Work
\nocite{Neumann2013dissBook}
\nocite{Neumann2012dissPreprint}
\nocite{neumann2005da}
\nocite{neumann2004sa}
%%% TechRep / Non-Peer-Reviewed
-
+\nocite{ModA-TR-2024SS-CCT-TeamGruen-CloudDice}
+\nocite{ModA-TR-2024SS-BCN-TeamCyan-SkillIssue}
+\nocite{ModA-TR-2024SS-BCN-TeamGelb-GoalGuru}
+\nocite{ModA-TR-2024SS-BCN-TeamWeiss-InfluenzaConnect}
+\nocite{ModA-TR-2024SS-BCN-TeamGruen-NanoVend}
+\nocite{ModA-TR-2024SS-BCN-TeamRot-StockSentinel}
+\nocite{ModA-TR-2024SS-WAE-TeamCyan-Connect4IfYouCan}
+\nocite{ModA-TR-2024SS-WAE-TeamWeiss-Geodingens}
+\nocite{ModA-TR-2024SS-WAE-TeamGruen-MunchMunch}
\nocite{SaNe24othfb}
-
+\nocite{StNe24kosmosis-TR}
\nocite{ModA-TR-2023SS-WAE-TeamWeiss-Neunerln}
\nocite{ModA-TR-2023SS-BDCC-TeamRot-CompVisPipeline}
\nocite{ModA-TR-2023SS-BDCC-TeamBlau-NauticalNonsense}
@@ -245,7 +256,6 @@ The remainder of the paper is organized as follows: In Section~II, …
\nocite{ModA-TR-2021SS-WAE-TeamWeiss-CovidDashboard}
\nocite{ModA-TR-2021SS-WAE-TeamRot-FireForceDefense}
\nocite{ModA-TR-2021SS-WAE-TeamGruen-MedPlanner}
-
\nocite{NeRL12deus}
\nocite{LNR+11egr}
diff --git a/macros/latex/contrib/iaria/README b/macros/latex/contrib/iaria/README
index 73edb8b502..45ade57c51 100644
--- a/macros/latex/contrib/iaria/README
+++ b/macros/latex/contrib/iaria/README
@@ -1,17 +1,19 @@
-----------------------------
- Version 0.2 of the iaria class
+ Version 0.4 of the iaria class
Christoph P. Neumann
-----------------------------
-This LaTeX provides a simple environment for
-technical reports as scholary publication.
+This package contains templates for the creation of documents for
+IARIA publications (International Academy, Research, and Industry Association)
+and implements the specifications for the IARIA citation style.
-NEU = Neumann
-TR = Technical Report
+This class does not contain evil low-level TeX magic
+but instead uses many other fancy LaTeX packages
+that we hope you have already installed.
-As this class is created mainly for ourselves it does not
-contain evil low-level TeX magic but instead uses many other
-fancy LaTeX packages that we hope you have already installed.
+DISCLAIMER: This class is neither for XeLaTeX or LuaTeX
+nor for legacy bibtex or natbib. For these have a look
+at CTAN package iaria-lite.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/contrib/iaria/iaria.dtx b/macros/latex/contrib/iaria/iaria.dtx
index bc091c3b83..e9e8b44644 100644
--- a/macros/latex/contrib/iaria/iaria.dtx
+++ b/macros/latex/contrib/iaria/iaria.dtx
@@ -1,16 +1,16 @@
%\iffalse
% iaria.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
-% -author "Christoph P. Neumann "
-% -dir "src"
+% -setambles ".*=>\nopreamble"
% -src "(_cpn_copyIntoExamplesFolder_cls.cmd|iaria.cls)=>\1"
% -preamble "Copyright 2023-2024 Christoph P. Neumann This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or any later version. The latest version of this license is in https://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2008 or later. This work has the LPPL maintenance status maintained. The Current Maintainer of this work is Christoph P. Neumann. "
+% -author "Christoph P. Neumann "
+% -macrocode ".*"
% -date "2023-2024"
+% -dir "src"
% -doc "doc/iaria.tex"
-% -macrocode ".*"
-% -setambles ".*=>\nopreamble"
% iaria
-% Created on 2024/4/10 18:20
+% Created on 2024/9/14 21:35
%\fi
%\iffalse
%<*package>
@@ -56,7 +56,7 @@
%\title{\textsf{iaria}\\
%An Unofficial IARIA LaTeX Class}
%\author{Christoph P.\ Neumann \texttt{$<$cyberpetaneuron@gmail.com$>$}}
-%\date{Version 0.2}
+%\date{Version 0.4}
%\maketitle
%\PrintChanges
%
@@ -104,7 +104,7 @@
%
%\section{Templates}
%
-%For a quick start the \textsf{iaria-lite} distribution contains document
+%For a quick start the \textsf{iaria} distribution contains document
%templates.
%The templates can be found in the \texttt{iaria-example-neumann.zip} file.
%
@@ -114,14 +114,35 @@
%This package provides the documentclass \texttt{iaria}. The documentclass
%supports the following options:
%
-%
%\begin{itemize}
%\item |conference| Passed to IEEEtran
%\item |a4paper| Passed to IEEEtran
-%\item |flushend| Activate flushend package
-%\item |pbalance| Activate pbalance package
+%\item |subfig| Loads subfig package with IARIA style settings
+%\item |subcaption| Loads subcaption package with IARIA style settings
+%\item |flushend| Activate flushend package (compatible with arXiv build process)
+%\item |pbalance| Activate pbalance package (incompatible with arXiv build process)
%\end{itemize}
%
+%A Remark about two-column document balancing on the last page:
+%The flushend package is recommended, because it works within the arXiv automated build process.
+%However, flushend has a major incampatibility with package lineno, which is, e.\,g., transitively loaded by package mindflow.
+%Thus, in case when flushend does not have any effect, check whether one of your packages loads lineno.
+%Usually you are stuck with your packages and, thus, will instead be forced to switch from flushend to pbalance.
+%Please be aware that pbalance works great and has high compatibility, but unfortunately it will not have any effect within the arXiv automated build process.
+%In case of both, a somehow needed lineno package and an intended arXiv upload, I recommend to do without two-column balancing on the last page and just to stay away from both flushend and pbalance, in order to ensure that your paper is layouted identically in IARIA submission and arXiv upload.
+%I hope this remark proves helpful, it took me some nerve to find out.
+%
+%There is also another important difference between flushend and pbalance: the handling of footnotes on the last page.
+%Flushend provides a decent result, but the result of pbalance is incomprehensible.
+%I strongly recommend avoiding footnotes on the last page.
+%If you absolutely need footnotes on the last page, consider staying away from two-column balancing on the last page.
+%
+%About subfigures:
+%Both well-known packages subfig and subcaption can be used.
+%However, they are not compatible with each other and we can either load one or the other.
+%Both require dedicated style settings to be compatible with IARIA formatting rules.
+%Thus, the document class provides options to load them for you with correct settings.
+%
%\section{Requirements}
%
%We instrument several other \LaTeX\ packages for different purposes,
@@ -138,6 +159,8 @@
%\item inputenc
%\item orcidlink
%\item pbalance
+%\item subcaption
+%\item subfig
%\item times
%\item url
%\item xcolor
@@ -206,13 +229,25 @@ pause% \end{macrocode}
\NeedsTeXFormat{LaTeX2e}
% Provide the name of your document class, the date it was last updated, and a comment about what it's used for
-\ProvidesClass{iaria}[2024/04/10 unofficial IARIA conference template v0.2]
+\ProvidesClass{iaria}[2024/09/16 unofficial IARIA conference template v0.4]
% Define marker counter for options (counter are global in latex):
+\newcounter{iaria@subfigtracker}
+\newcounter{iaria@subcaptiontracker}
\newcounter{iaria@pbalancetracker}
\newcounter{iaria@flushendtracker}
% Declare options:
+
+\DeclareOption{subfig}{
+ \setcounter{iaria@subfigtracker}{1}
+ \typeout{iaria class: subfig option is set (use subfloat command).}
+}
+\DeclareOption{subcaption}{
+ \setcounter{iaria@subcaptiontracker}{1}
+ \typeout{iaria class: subcaption option is set (use subfigure command).}
+}
+
\DeclareOption{onecolumn}{\OptionNotUsed} % IEEE option onecolumn will be ignored
\DeclareOption{pbalance}{
@@ -259,7 +294,15 @@ pause% \end{macrocode}
% Diferring from IEEE, IARIA requires
% in bibliography: 6+ authors as first author et al.
% in \citeauthor: any case of et al. with just first author et al.
-\RequirePackage[style=ieee, backend=biber, url=false, hyperref, maxnames=5, minnames=1, maxcitenames=2, mincitenames=1]{biblatex}
+\RequirePackage[defernumbers=true,style=ieee, backend=biber, url=false, hyperref, maxnames=5, minnames=1, maxcitenames=2, mincitenames=1]{biblatex}
+
+% Due to applied option defernumbers=true:
+% Prevent citations in the references are being numbered as '0' in ArXiv
+% https://tex.stackexchange.com/questions/463556/all-the-citations-in-the-references-are-being-numbered-as-0-in-arxiv-while-upl
+\makeatletter
+\let\blx@rerun@biber\relax
+\makeatother
+
\renewcommand*{\bibfont}{\small}
% Diferring from IEEE, IARIA requires, for ONLINE entries, no point but a comma between author and title:
@@ -332,9 +375,6 @@ pause% \end{macrocode}
\crcr}
\makeatother
-% IARIA subfigure captions require this:
-\RequirePackage[caption=false,font=footnotesize]{subfig}
-
% IARIA requires to bring the table caption in the same line of "Table I"
\usepackage{etoolbox}
\makeatletter
@@ -345,9 +385,16 @@ pause% \end{macrocode}
{}
\makeatother
-% Allows to hyphenate a word that contains a dash:
-% https://stackoverflow.com/questions/2193307/how-do-i-get-latex-to-hyphenate-a-word-that-contains-a-dash
-\RequirePackage[shortcuts]{extdash} % Use \-/ for a breakable dash that does not prevent the remainer of the word to be hyphenated
+% IARIA subfigure captions require parentheses and footnotesize:
+\ifnum\value{iaria@subfigtracker}=1
+ \typeout{iaria class: load subfig package (use subfloat command).}
+ \RequirePackage[caption=false,font=footnotesize]{subfig}
+\fi
+\ifnum\value{iaria@subcaptiontracker}=1
+ \typeout{iaria class: load subcaption package (use subfigure command).}
+ \RequirePackage{subcaption}
+ \captionsetup[subfigure]{labelformat=parens,font=footnotesize}
+\fi
% Balance/level columns at the last page / in bibliography
% DISCLAIMER: No solution is a 100%/perfect one!
@@ -363,6 +410,14 @@ pause% \end{macrocode}
\RequirePackage{flushend}
\fi
+% ========================================================
+% Packages with recommendation to load them last:
+
+% Allows to hyphenate a word that contains a dash:
+% https://stackoverflow.com/questions/2193307/how-do-i-get-latex-to-hyphenate-a-word-that-contains-a-dash
+\RequirePackage[shortcuts]{extdash} % Use \-/ for a breakable dash that does not prevent the remainer of the word to be hyphenated
+% ========================================================
+
% Finally, we'll use \endinput to indicate that LaTeX can stop reading this file. LaTeX will ignore anything after this line.
\endinput
% \end{macrocode}
diff --git a/macros/latex/contrib/iaria/iaria.ins b/macros/latex/contrib/iaria/iaria.ins
index 846e42400d..4bc3d864b8 100644
--- a/macros/latex/contrib/iaria/iaria.ins
+++ b/macros/latex/contrib/iaria/iaria.ins
@@ -1,4 +1,4 @@
-% iaria.ins generated using makedtx version 1.2 2024/4/10 18:20
+% iaria.ins generated using makedtx version 1.2 2024/9/14 21:35
\input docstrip
\preamble
diff --git a/macros/latex/contrib/iaria/iaria.pdf b/macros/latex/contrib/iaria/iaria.pdf
index f7665d3d4b..7a3e0ddad7 100644
--- a/macros/latex/contrib/iaria/iaria.pdf
+++ b/macros/latex/contrib/iaria/iaria.pdf
Binary files differ
diff --git a/macros/latex/contrib/iaria/template/cpn_all_all.bib b/macros/latex/contrib/iaria/template/cpn_all_all.bib
index cc7abaec4a..ba79c01832 100644
--- a/macros/latex/contrib/iaria/template/cpn_all_all.bib
+++ b/macros/latex/contrib/iaria/template/cpn_all_all.bib
@@ -1,3 +1,4 @@
+
@Thesis{neumann2004sa,
author = {Neumann, Christoph P.},
title = {{Conceptional Design and Realization of a `Component Test Stand' for Measurements on Enterprise JavaBeans}},
@@ -7,6 +8,7 @@
type = {Studienarbeit},
_url = {https://www.cyberlytics.eu/theses/all/Studienarbeit_ChristophPeterNeumann_revised/}
}
+
@Thesis{neumann2005da,
author = {Neumann, Christoph P.},
title = {{Design of an Open Framework for Optimizing the Distribution of Hardware and Software Components in Control Networks for Vehicles}},
@@ -16,6 +18,7 @@
type = {Diplomarbeit},
_url = {https://www.cyberlytics.eu/theses/all/Diplomarbeit_ChristophPeterNeumann_original/}
}
+
@INPROCEEDINGS{MeNe04testejb,
author = {Marcus Meyerh{\"o}fer and Christoph Neumann},
title = {{TestEJB} -- A Measurement Framework for {EJBs}},
@@ -35,21 +38,20 @@
@INPROCEEDINGS{NHSL09oxdbs,
author = {Christoph P. Neumann and Stefan Hanisch and Bernhard Schiemann and
- Richard Lenz},
+ Richard Lenz},
title = {{OXDBS -- Erweiterung einer nativen XML\-/Datenbank um die Validierung
- und Konsistenzpr{\"u}fung gegen eine OWL\-/Ontologie}},
+ und Konsistenzpr{\"u}fung gegen eine OWL\-/Ontologie}},
booktitle = {Tagungsband der 54.\,GMDS\-/Jahrestagung},
year = {2009},
_pages = {271:1--271:2},
address = {Essen, DE},
month = sep,
organization = {{Deutsche Gesellschaft f{\"u}r Medizinische Informatik, Biometrie
- und Epidemiologie} (GMDS)},
+ und Epidemiologie} (GMDS)},
doi = {10.3205/09GMDS271},
_url = {http://www.egms.de/en/meetings/gmds2009/09gmds271.shtml},
}
-
@INPROCEEDINGS{NeWL09xdsrig,
author = {Christoph P. Neumann and Florian Wagner and Richard Lenz},
title = {{XdsRig -- Eine Open\-/Source IHE XDS Testumgebung}},
@@ -59,15 +61,14 @@
address = {Essen, DE},
month = sep,
organization = {{Deutsche Gesellschaft f{\"u}r Medizinische Informatik, Biometrie
- und Epidemiologie} (GMDS)},
+ und Epidemiologie} (GMDS)},
doi = {10.3205/09GMDS276},
_url = {http://www.egms.de/en/meetings/gmds2009/09gmds276.shtml},
}
-
@INPROCEEDINGS{NRDL09deus,
- author = {Christoph P. Neumann and Florian Rampp and Michael Daum and Richard Lenz},
- title = {{A Mediated Publish\-/Subscribe System for Inter\-/Institutional Process Support in Healthcare}},
+ author = {Christoph P. Neumann and Florian Rampp and Michael Daum and Richard Lenz},
+ title = {{A Mediated Publish\-/Subscribe System for Inter\-/Institutional Process Support in Healthcare}},
booktitle = {Proc of the 3rd ACM Int'l Conf on Distributed Event\-/Based Systems (DEBS 2009)},
year = {2009},
_chapter = {14},
@@ -85,8 +86,8 @@
author = {Christoph P. Neumann and Richard Lenz},
title = {{alpha\-/Flow: A Document\-/based Approach to Inter\-/Institutional Process Support in Healthcare}},
booktitle = {Proc of the 3rd Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
- on Business Process Management (BPM'09)},
+ in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
+ on Business Process Management (BPM'09)},
year = {2009},
pages = {569--580},
address = {Ulm, DE},
@@ -100,10 +101,10 @@
@INPROCEEDINGS{NeLe09dmps,
author = {Christoph P. Neumann and Richard Lenz},
title = {{A Light\-/Weight System Extension Supporting Document\-/based Processes
- in Healthcare}},
+ in Healthcare}},
booktitle = {Proc of the 3rd Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
- on Business Process Management (BPM'09)},
+ in Healthcare (ProHealth'09) in conjunction with the 7th Int'l Conf
+ on Business Process Management (BPM'09)},
year = {2009},
pages = {557--568},
address = {Ulm, DE},
@@ -140,12 +141,13 @@
doi = {10.1145/1866480.1866502},
_isbn = {978\-/1\-/60558\-/900\-/8},
}
+
@INPROCEEDINGS{NSWL11alphaadaptive,
author = {Christoph P. Neumann and Peter K. Schwab and Andreas M. Wahl and Richard Lenz},
title = {{alpha\-/Adaptive: Evolutionary Workflow Metadata in Distributed Document\-/Oriented Process Management}},
booktitle = {Proc of the 4th Int'l Workshop on Process\-/oriented Information Systems
- in Healthcare (ProHealth'11) in conjunction with the 9th Int'l Conf
- on Business Process Management (BPM'11)},
+ in Healthcare (ProHealth'11) in conjunction with the 9th Int'l Conf
+ on Business Process Management (BPM'11)},
year = {2011},
pages = {225--236},
address = {Clermont\-/Ferrand, FR},
@@ -209,26 +211,26 @@
}
@MastersThesis{Neumann2012dissPreprint_OldBibTeX,
- author = {Christoph P. Neumann},
- title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
- school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- type = {Dissertation},
- _type = {`Dissertation' (PhD thesis)},
- _type = {PhD thesis (`Dissertation' in Germany)},
- month = nov,
- year = 2012,
- url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
+ author = {Christoph P. Neumann},
+ title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
+ school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
+ type = {Dissertation},
+ _type = {`Dissertation' (PhD thesis)},
+ _type = {PhD thesis (`Dissertation' in Germany)},
+ month = nov,
+ year = 2012,
+ url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
}
@phdthesis{Neumann2012dissPreprint,
- author = {Christoph P. Neumann},
- title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
- school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
- month = nov,
- year = 2012,
- address = {Erlangen},
- doi = {10.13140/RG.2.2.14719.79521},
- url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
+ author = {Christoph P. Neumann},
+ title = {{Distributed Document\-/Oriented Process Management in Healthcare}},
+ school = {Friedrich\-/Alexander\-/Universit{\"a}t Erlangen\-/N{\"u}rnberg},
+ month = nov,
+ year = 2012,
+ address = {Erlangen},
+ doi = {10.13140/RG.2.2.14719.79521},
+ url = {https://nbn-resolving.org/urn:nbn:de:bvb:29-opus-39070}
}
@INPROCEEDINGS{NeLe13adhocCoop,
@@ -244,7 +246,9 @@
_isbn = {978\-/3\-/642\-/36437\-/2},
doi = {10.1007/978-3-642-36438-9_8},
_url = {https://doi.org/10.1007/978-3-642-36438-9_8},
-}@incollection{Neumann2012lni,
+}
+
+@incollection{Neumann2012lni,
author={Christoph P. Neumann},
editor={Abraham Bernstein and Wolfgang Effelsberg and Steffen H{\"o}lldobler and Hans{-}Peter Lenhof and Klaus{-}Peter L{\"o}hr and Paul Molitor and Gustaf Neumann and R{\"u}diger Reischuk and Nicole Schweikardt and Myra Spiliopoulou and Harald St{\"o}rrle and Sabine S{\"u}sstrunk},
title={Verteiltes Dokumenten\-/orientiertes Prozessmanagement im Gesundheitswesen},
@@ -256,18 +260,19 @@
year={2012},
url={https://dl.gi.de/20.500.12116/33740}
}
+
@BOOK{Neumann2013dissBook,
- author = {Christoph P. Neumann},
- title = {{Distributed Case Handling}},
- year = 2013,
- publisher = {Verlag Dr.~Hut},
- address = {M{\"u}nchen},
- isbn = {9783843909198},
- _urn = {urn:nbn:de:bvb:29\-/opus\-/39070},
- _url = {https://d-nb.info/1033041637},
- _note = {\url{http://www.opus.ub.uni-erlangen.de/opus/volltexte/2012/3907/}(preprint version)},
- _note = {\url{https://d-nb.info/1033041637}(DNB)},
- _note = {\url{https://www.dr.hut-verlag.de/978-3-8439-0919-8.html}(URL)}
+ author = {Christoph P. Neumann},
+ title = {{Distributed Case Handling}},
+ year = 2013,
+ publisher = {Verlag Dr.~Hut},
+ address = {M{\"u}nchen},
+ isbn = {9783843909198},
+ _urn = {urn:nbn:de:bvb:29\-/opus\-/39070},
+ _url = {https://d-nb.info/1033041637},
+ _note = {\url{http://www.opus.ub.uni-erlangen.de/opus/volltexte/2012/3907/}(preprint version)},
+ _note = {\url{https://d-nb.info/1033041637}(DNB)},
+ _note = {\url{https://www.dr.hut-verlag.de/978-3-8439-0919-8.html}(URL)}
}
@INPROCEEDINGS{IND+09lzatav,
@@ -363,11 +368,10 @@
month=apr,
year={2024},
doi = {10.48550/arXiv.2404.02637},
- _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2024_X_YY_ZZZZZ},
- _url = {https://doi.org/10.48550/arXiv.2404.02637},
+ _url = {https://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2024_2_10_28007},
+ _url2 = {https://doi.org/10.48550/arXiv.2404.02637},
_issn = {2308\-/4294},
- _pages = {AA--OO},
- note = {accepted for publication}
+ pages = {19--24}
}
@INPROCEEDINGS{ToNe11alphaprops,
@@ -425,6 +429,28 @@
_url2 = {https://www.oth-aw.de/files/oth-aw/Aktuelles/Veroeffentlichungen/Forschungsbericht/OTH_Forschungsbericht_2024.pdf},
_url3 = {https://www.researchgate.net/profile/Christoph-Neumann-8/publication/379109359_Analyse_von_Methoden_zur_Sicherung_der_Vertraulichkeit_in_Neuronalen_Netzen/links/65faff43a4857c7962654c5c/Analyse-von-Methoden-zur-Sicherung-der-Vertraulichkeit-in-Neuronalen-Netzen.pdf}
}
+
+@MISC{StNe24kosmosis,
+ title={The Kosmosis Use-Case of Crypto Rug Pull Detection and Prevention},
+ author={Philipp Stangl and Christoph P. Neumann},
+ year={2024},
+ eprint={2405.19762},
+ archivePrefix={arXiv},
+ primaryClass={cs.CR}
+}
+
+@TECHREPORT{StNe24kosmosis-TR,
+ author = {Philipp Stangl and Christoph P. Neumann},
+ title = {{The Kosmosis Use-Case of Crypto Rug Pull Detection and Prevention}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab at the Department of Electrical Engineering, Media and Computer Science},
+ series = {Technischer Bericht},
+ number = {CL-2024-01},
+ year = 2024,
+ month = 2,
+ doi = {10.48550/arXiv.2405.19762},
+ _url = {https://doi.org/10.48550/arXiv.2405.19762},
+}
+
@TECHREPORT{ModA-TR-2021SS-WAE-TeamWeiss-CovidDashboard,
author = {Tobias Bauer and Albert Hahn and Lukas Kleinlein and Nicolas Proske and Leonard W{\"o}llmer and Andrei Trukhin and Christoph P. Neumann},
title = {{Covidash: Eine MEAN\-/Variation-basierte Webanwendung für Inzidenz\-/Zahlen und Impffortschritt in Deutschland}},
@@ -543,7 +569,6 @@
_url = {https://dx.doi.org/10.13140/RG.2.2.33933.31209},
}
-
@TECHREPORT{ModA-TR-2023SS-BDCC-TeamRot-CompVisPipeline,
author = {André Kestler and Antonio Vidos and Marcus Haberl and Tobias Dobmeier and Tobias Lettner and Tobias Weiß and Christoph P. Neumann},
title = {{Computer Vision Pipeline: Eine React- und Flask\-/basierte Webanwendung zur No\-/Code\-/Bildverarbeitung mit Cloud\-/Deployment}},
@@ -622,4 +647,107 @@
doi = {10.13140/RG.2.2.22177.79209},
_url = {https://dx.doi.org/10.13140/RG.2.2.22177.79209},
}
+@TECHREPORT{ModA-TR-2024SS-CCT-TeamGruen-CloudDice,
+ author = {Lukas Rupp and Franziska Rubenbauer and Christoph P. Neumann},
+ title = {{CloudDice: Ein React\-/basiertes Kniffel-Würfelspiel}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ series = {Technische Berichte},
+ number = {CL-2024-14},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.11229.83686},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.11229.83686},
+}
+
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamCyan-SkillIssue,
+ author = {Fabian Heindl and Paul Brand and Daniel Reichert and Christoph P. Neumann},
+ title = {{SkillIssue: A MERN\-/based Low\-/Latency Multi\-/User Game for Displaying True Skill With Your Friends}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-12},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.32201.35686},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.32201.35686},
+}
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamGelb-GoalGuru,
+ author = {Bernhard Gailer and Timo Gräf and Maria Lyoteva and Tsvetan Stanchev and Apporva Bhoir and Christoph P. Neumann},
+ title = {{GoalGuru: A React- and FastAPI\-/based Cloud Application for Predicting Soccer Games Outcome}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-11},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.18779.58407},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.18779.58407},
+}
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamWeiss-InfluenzaConnect,
+ author = {Sebastian Weidner and Jonas Hermann and Nils Bayerl and Dominik Schwagerl and \ Timon Spichtinger and Christoph P. Neumann},
+ title = {{InfluenzaConnect: Eine React- und Flask\-/basierte Webanwendung für Influencer\-/Marketing}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technische Berichte},
+ number = {CL-2024-10},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.25490.47041},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.25490.47041},
+}
+
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamGruen-NanoVend,
+ author = {Lukas Hirsch and Johannes Küffner and Denis Tomazi and Christoph P. Neumann},
+ title = {{NanoVend: Ein Cloud\-/native E-Commerce\-/Backend als Baukasten für mittelständische Unternehmen}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technische Berichte},
+ number = {CL-2024-08},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.12068.69761},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.12068.69761},
+}
+@TECHREPORT{ModA-TR-2024SS-BCN-TeamRot-StockSentinel,
+ author = {Andreas Hecht and Linus Heise and Oliver Kneidl and Eva-Maria Maurer and Christoph P. Neumann},
+ title = {{StockSentinel: AI\-/Powered Web Tool for Analyzing the Markets Perception of Stocks}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-07},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.20457.30564},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.20457.30564},
+}
+@TECHREPORT{ModA-TR-2024SS-WAE-TeamCyan-Connect4IfYouCan,
+ author = {Amos Asmerom and Daniel Reichert and Fabian Heindl and Christoph P. Neumann},
+ title = {{Connect4IfYouCan: A MERN\-/based Web Game for Competitive Two Player Matches}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-06},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.27168.19200},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.27168.19200},
+}
+
+@TECHREPORT{ModA-TR-2024SS-WAE-TeamWeiss-Geodingens,
+ author = {Viktor Hense and Johannes Lindner and Lukas Mrosek and Christoph P. Neumann},
+ title = {{Geodingens: A Web Application for Intuitive and User\-/friendly Work with Geopandas}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technical Reports},
+ number = {CL-2024-04},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.13746.41929},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.13746.41929},
+}
+
+@TECHREPORT{ModA-TR-2024SS-WAE-TeamGruen-MunchMunch,
+ author = {Juliana Kühn and Nikolett Rácz and Raffael Friedl and Maximilian Lippmann and Christoph P. Neumann},
+ title = {{MunchMunch: Eine MERN\-/basierte kulinarische Web-Anwendung für verbessertes User Engagement beim Entdecken neuer Gerichte und Rezepte}},
+ institution = {Ostbayerische Technische Hochschule Amberg\-/Weiden, CyberLytics\-/Lab an der Fakult{\"a}t Elektrotechnik, Medien und Informatik},
+ type = {Technische Berichte},
+ number = {CL-2024-02},
+ year = 2024,
+ month = 7,
+ doi = {10.13140/RG.2.2.23812.74883},
+ _url = {https://dx.doi.org/10.13140/RG.2.2.23812.74883},
+}
diff --git a/macros/latex/contrib/iaria/template/cpn_supervised_all.bib b/macros/latex/contrib/iaria/template/cpn_supervised_all.bib
index d4341f790c..910906ac9a 100644
--- a/macros/latex/contrib/iaria/template/cpn_supervised_all.bib
+++ b/macros/latex/contrib/iaria/template/cpn_supervised_all.bib
@@ -1,3 +1,4 @@
+
@Thesis{kampf2012bt,
author = {Kampf, Marvin},
title = {{alpha\-/CDM: Konzeption und Implementierung eines Modells zur Inhaltsabh{\"a}ngigkeit als Baustein einer Prozessunterst{\"u}tzung auf Basis von aktiven Dokumenten}},
diff --git a/macros/latex/contrib/iaria/template/iaria-example-neumann.pdf b/macros/latex/contrib/iaria/template/iaria-example-neumann.pdf
index 7c5d190398..a0d1d5b5e4 100644
--- a/macros/latex/contrib/iaria/template/iaria-example-neumann.pdf
+++ b/macros/latex/contrib/iaria/template/iaria-example-neumann.pdf
Binary files differ
diff --git a/macros/latex/contrib/iaria/template/iaria-example-neumann.tex b/macros/latex/contrib/iaria/template/iaria-example-neumann.tex
index eda28b0f0c..387d8e2cc4 100644
--- a/macros/latex/contrib/iaria/template/iaria-example-neumann.tex
+++ b/macros/latex/contrib/iaria/template/iaria-example-neumann.tex
@@ -17,7 +17,7 @@
% https://stackoverflow.com/questions/2193307/how-do-i-get-latex-to-hyphenate-a-word-that-contains-a-dash
\usepackage[shortcuts]{extdash} % Use \-/ for a breakable dash that does not prevent the remainer of the word to be hyphenated
-\usepackage{paralist}
+\usepackage[alwaysadjust]{paralist}
\usepackage[caption=false,font=footnotesize]{subfig}
% Class iaria.cls loads biblatex / biber with predefined options
@@ -83,7 +83,7 @@ final % Always enable microtype, even if in draft mode. This helps finding bad b
\hyphenation{block-chain block-chains Ethe-re-um}
% Capitalization: https://capitalizemytitle.com/style/Chicago/
-\title{The Unofficial \textsmaller{IARIA} \LaTeX{} Class Paper Example (v2024-03)}
+\title{The \textsmaller{IARIA} \LaTeX{} Class Paper Example (v2024-09)}
\author{
\IEEEauthorblockN{Christoph P.\ Neumann\,\orcidlink{0000-0002-5936-631X}}
@@ -103,7 +103,7 @@ final % Always enable microtype, even if in draft mode. This helps finding bad b
\maketitle
\begin{abstract}
- \lipsum[1][3-12]
+ \lipsum[21]%[3-12]
\end{abstract}
% A list of IEEE Computer Society appoved keywords can be obtained at
@@ -121,65 +121,67 @@ The \textsmaller{IARIA} formatting rules \cite{iaria2014formattingrules} are ado
In addition, be aware of the supplementary \textsmaller{IARIA} editorial rules \cite{iaria2009editorialrules} \faWarning{} that provide a beginner-friendly set of further advices.
It is recommended to use a grammar tool, e.\,g., the LanguageTool \cite{languagetool} browser plugin in combination with Overleaf \cite{overleaf}.
-\lipsum[2]
+\lipsum[22]
\{\faWarning{} \textsmaller{IARIA} editorial rules: Introduction must end with a paragraph describing the structure of the paper!\}
The remainder of the paper is organized as follows: In Section~II, …
\section{Related work \textbar{} Methods}
-\lipsum[3]
+\lipsum[23]
\section{Results}
-\lipsum[4]
+\lipsum[24]
\section{Discussion \textbar{} Evalution}
-\lipsum[5]
+\lipsum[25]
\section{Conclusion and Future Work}
\{\faWarning{} \textsmaller{IARIA} editorial rules: Last section must be \textquote{Conclusion and Future Work}!\}
-\lipsum[6]
+\lipsum[26]
-
-
-%%% Advisor
-\nocite{StNe23foodfresh}
-
-%%% First-Author
+%%% CPN Peer-Rev'd
+\nocite{LeNe24vocattllm} % Co
+\nocite{PANP23seccloudfogai} % Co
+\nocite{StNe23foodfresh} % Advisor
\nocite{NeLe13adhocCoop}
\nocite{Neumann2012lni}
\nocite{NeLe12alphaFlow}
\nocite{NeHL12hydra}
\nocite{NeWL12offsync}
+\nocite{WaNe12alphaoffsync} % Co
\nocite{NSWL11alphaadaptive}
+\nocite{ToNe11alphaprops} % Co
+\nocite{JBN+10fcmdb} % Co
+\nocite{FDI+10esmmog} % Co
\nocite{NeFL10oxdbs}
\nocite{NeLe10alphaUC}
+\nocite{ILN+09semrttx} % Co
+\nocite{NHSL09oxdbs} % DE
\nocite{NeLe09alphaflow}
\nocite{NeLe09dmps}
-\nocite{NHSL09oxdbs} % DE
\nocite{NeWL09xdsrig} % DE
\nocite{NRDL09deus}
+\nocite{IND+09lzatav} % Co (DE)
+\nocite{MeNe04testejb} % Pseudo-Co
-%%% Co-Authorship
-\nocite{LeNe24vocattllm}
-\nocite{PANP23seccloudfogai}
-\nocite{WaNe12alphaoffsync}
-\nocite{ToNe11alphaprops}
-\nocite{FDI+10esmmog}
-\nocite{JBN+10fcmdb}
-\nocite{ILN+09semrttx}
-\nocite{IND+09lzatav} % DE
-\nocite{MeNe04testejb}
-
-%%% Monographic Work
+%%% CPN Monographic Work
\nocite{Neumann2013dissBook}
\nocite{Neumann2012dissPreprint}
\nocite{neumann2005da}
\nocite{neumann2004sa}
%%% TechRep / Non-Peer-Reviewed
-
+\nocite{ModA-TR-2024SS-CCT-TeamGruen-CloudDice}
+\nocite{ModA-TR-2024SS-BCN-TeamCyan-SkillIssue}
+\nocite{ModA-TR-2024SS-BCN-TeamGelb-GoalGuru}
+\nocite{ModA-TR-2024SS-BCN-TeamWeiss-InfluenzaConnect}
+\nocite{ModA-TR-2024SS-BCN-TeamGruen-NanoVend}
+\nocite{ModA-TR-2024SS-BCN-TeamRot-StockSentinel}
+\nocite{ModA-TR-2024SS-WAE-TeamCyan-Connect4IfYouCan}
+\nocite{ModA-TR-2024SS-WAE-TeamWeiss-Geodingens}
+\nocite{ModA-TR-2024SS-WAE-TeamGruen-MunchMunch}
\nocite{SaNe24othfb}
-
+\nocite{StNe24kosmosis-TR}
\nocite{ModA-TR-2023SS-WAE-TeamWeiss-Neunerln}
\nocite{ModA-TR-2023SS-BDCC-TeamRot-CompVisPipeline}
\nocite{ModA-TR-2023SS-BDCC-TeamBlau-NauticalNonsense}
@@ -197,7 +199,6 @@ The remainder of the paper is organized as follows: In Section~II, …
\nocite{ModA-TR-2021SS-WAE-TeamWeiss-CovidDashboard}
\nocite{ModA-TR-2021SS-WAE-TeamRot-FireForceDefense}
\nocite{ModA-TR-2021SS-WAE-TeamGruen-MedPlanner}
-
\nocite{NeRL12deus}
\nocite{LNR+11egr}
diff --git a/macros/latex/contrib/interlinear/DEPENDS.txt b/macros/latex/contrib/interlinear/DEPENDS.txt
new file mode 100644
index 0000000000..e06d77ce7c
--- /dev/null
+++ b/macros/latex/contrib/interlinear/DEPENDS.txt
@@ -0,0 +1,6 @@
+hard marginnote # for marginnotes
+hard xifthen
+hard xkeyval # For key=val options
+hard xparse
+hard etoolbox
+hard enumitem
diff --git a/macros/latex/contrib/interlinear/LICENSE.txt b/macros/latex/contrib/interlinear/LICENSE.txt
new file mode 100644
index 0000000000..842cf85e3c
--- /dev/null
+++ b/macros/latex/contrib/interlinear/LICENSE.txt
@@ -0,0 +1,415 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c 2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance
+of the Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2008 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % https://www.latex-project.org/lppl.txt
+ % and version 1.3c or later is part of all distributions of LaTeX
+ % version 2008 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
diff --git a/macros/latex/contrib/interlinear/README.md b/macros/latex/contrib/interlinear/README.md
new file mode 100644
index 0000000000..1a13cca806
--- /dev/null
+++ b/macros/latex/contrib/interlinear/README.md
@@ -0,0 +1,89 @@
+# Interlinear
+
+## Overview
+
+**Interlinear** is a LaTeX package designed to facilitate the typesetting of interlinear glossed text, commonly used in linguistic examples. This package provides customizable formatting for interlinear text, allows for the specification of multiple lines with different formatting, and includes options for managing the presentation of context and language information.
+
+The package also supports predefined styles for common use cases, such as glossing text in italics or setting up non-interlinear modes, making it versatile for a variety of linguistic documentation needs.
+
+## Installation
+
+To install this package, follow these steps:
+
+1. **Manual Installation:**
+ - Download the package files.
+ - Place the `interlinear.sty` file in your LaTeX working directory or a directory that is part of your LaTeX path.
+
+2. **Required Packages:**
+ - marginnote : for marginnotes
+ - xifthen
+ - xkeyval : For key=val options
+ - xparse
+ - etoolbox
+ - enumitem
+
+3. **Using a LaTeX Distribution:**
+ - If the package is included in a LaTeX distribution like TeX Live or MikTeX, you can install it using the distribution's package manager.
+ - Example (for TeX Live users on Linux):
+ ```bash
+ sudo tlmgr install interlinear
+ ```
+ - Example (for MikTeX users on Windows):
+ ```bash
+ miktex-console
+ ```
+
+## Usage
+
+After installation, you can use **Interlinear** in your LaTeX documents by adding the following line in the preamble of your document:
+
+```latex
+\usepackage{interlinear}
+```
+
+## Basic Example
+
+Here’s a basic usage example:
+
+```latex
+\documentclass{article}
+\usepackage{interlinear}
+
+\begin{document}
+
+\begin{interlinear}[linesnumber=3,linefourformat=\itshape]
+% Interlinear content here
+\end{interlinear}
+
+\end{document}
+```
+
+## License
+
+This work (this version and later ones) may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), version 1.3c or later.
+
+The latest version of this license is available at: [LaTeX Project Public License](https://www.latex-project.org/lppl/)
+
+This package is maintained (as per LPPL maintenance status) by **Kouamé Josué Akpoué**.
+
+## Contributing
+
+If you would like to contribute to the development of this package, you can do so by:
+
+- Reporting bugs or suggesting features via the issue tracker.
+- Submitting pull requests with improvements or bug fixes.
+
+## Contact Information
+
+For any inquiries or support requests, please contact:
+
+**Kouamé Josué Akpoué**
+**Email:** [josueakpoue@gmail.com](mailto: josueakpoue@gmail.com)
+**GitHub:** [https://github.com/dbjoshua](https://github.com/dbjoshua)
+
+## Changelog
+
+### Version 1.0.0 (2024-08-22)
+
+- Initial release.
+- Key features include customizable formatting for interlinear text, predefined styles, and margin note customization.
diff --git a/macros/latex/contrib/interlinear/VERSION_1_0 b/macros/latex/contrib/interlinear/VERSION_1_0
new file mode 100644
index 0000000000..f27673edf3
--- /dev/null
+++ b/macros/latex/contrib/interlinear/VERSION_1_0
@@ -0,0 +1,3 @@
+version 1.0
+- initial release
+- main functionalities: interlinear environnement supporting SIL Field's Linguists Toolbox's markers; supporting optional customization and defined styles. Also supports four-lines interlinear gloss texts.
diff --git a/macros/latex/contrib/interlinear/interlinear-doc.pdf b/macros/latex/contrib/interlinear/interlinear-doc.pdf
new file mode 100644
index 0000000000..ab72182639
--- /dev/null
+++ b/macros/latex/contrib/interlinear/interlinear-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/interlinear/interlinear-doc.tex b/macros/latex/contrib/interlinear/interlinear-doc.tex
new file mode 100644
index 0000000000..f16f120754
--- /dev/null
+++ b/macros/latex/contrib/interlinear/interlinear-doc.tex
@@ -0,0 +1,215 @@
+\documentclass{article}
+%\usepackage{interlinear}
+\usepackage{xparse}
+\usepackage{verbatim}
+
+% Commande pour afficher du code (sans les délimiteurs `d```)
+\NewDocumentCommand{\code}{m}{\texttt{#1}}
+\def\interlinearstyle{$\backslash$interlinearstyle}
+
+% Commande pour du texte en gras
+\NewDocumentCommand{\bftext}{m}{\textbf{#1}}
+
+% Commande pour liste avec itemize
+\NewDocumentCommand{\itm}{m}{\begin{itemize}\item #1\end{itemize}}
+
+% Metadata
+\title{interlinear Package Documentation}
+\author{Akpoué Kouamé Josué}
+\date{\today}
+
+\begin{document}
+
+\maketitle
+
+\section{Package Description}
+\subsection{Purpose}
+The \code{interlinear} package provides a new interface for typesetting interlinear texts. It is based on \code{cgloss4e.sty} and is designed to avoid conflicts with other packages, such as \code{linguex}. This package allows for the simultaneous use of \code{linguex} and \code{interlinear} by renaming commands from \code{cgloss4e.sty} for better clarity and maintenance. The package is part of a larger set of tools to facilitate linguistic document preparation using LaTeX.
+
+\subsection{What's New}
+
+\itm{\bftext{Toolbox Integration:} Support for SIL Linguists Field's Toolbox input (with some modifications). You can copy-paste the interlinear text from Toolbox directly into LaTeX.}
+\itm{\bftext{Four-Line Option:} Adds support for a fourth line (Part of speech) in interlinear texts.}
+\itm{\bftext{Markers:} New markers are provided for various parts of the example, including \code{\textbackslash ct} (context), \code{\textbackslash li} (language information), \code{\textbackslash lt} (literal translation), and \code{\textbackslash gj} (grammaticality judgments).}
+\itm{\bftext{Environment:} Defines an \code{interlinear} environment with options for fine-grained control over element appearance.}
+
+\section{Installation and Loading}
+To install, place \code{interlinear.sty} in a directory where LaTeX can find it. Load the package using:
+\begin{verbatim}
+\usepackage{interlinear}
+\end{verbatim}
+Alternatively, use:
+\begin{verbatim}
+\input{path/to/interlinear.sty}
+\end{verbatim}
+
+%\subsection{Required Packages}
+
+To ensure the proper functioning of the \texttt{interlinear} package, the following LaTeX packages are required:
+
+\begin{itemize}
+ \item \texttt{marginnote}: This package is used for creating margin notes in your document.
+ \item \texttt{xifthen}: Provides conditional commands for handling various logic in the package.
+ \item \texttt{xkeyval}: Used to implement key=value options for customizing the behavior of the \texttt{interlinear} environment.
+ \item \texttt{xparse}: Facilitates the definition of commands and environments with a more flexible interface.
+ \item \texttt{etoolbox}: Supplies advanced tools for programming within LaTeX, such as patching and extending existing commands.
+ \item \texttt{enumitem}: Allows customization of list environments (like \texttt{itemize}, \texttt{enumerate}, etc.), which may be used within \texttt{interlinear}.
+\end{itemize}
+
+Ensure that these packages are included in your LaTeX distribution.
+
+\section{Basic Usage}
+The main feature of \code{interlinear} is the \code{interlinear} environment. This environment allows you to structure interlinear texts using markers. Below is a comparison between \code{cgloss4e} and \code{interlinear} syntax.
+
+\subsection{Example 1: Two-Line Interlinear}
+\textbf{cgloss4e} code:
+\begin{verbatim}
+\gll lorem ipsum dolor\\
+ sit amet consegur\\
+\glt `Lorem ipsum dolor'
+\end{verbatim}
+
+\textbf{interlinear} code:
+\begin{verbatim}
+\begin{interlinear}
+\tx lorem ipsum dolor\\
+\gl sit amet consegur\\
+\ft `Lorem ipsum dolor'\\
+\end{interlinear}
+\end{verbatim}
+
+\subsection{Example 2: Three-Line Interlinear}
+\textbf{cgloss4e} code:
+\begin{verbatim}
+\glll lorem ipsum\\
+ dolor sit\\
+ amet consegur\\
+\glt `Lorem ipsum dolor'
+\end{verbatim}
+
+\textbf{interlinear} code:
+\begin{verbatim}
+\begin{interlinear}
+\tx lorem ipsum\\
+\mb dolor sit\\
+\gl amet consegur\\
+\ft `Lorem ipsum dolor'\\
+\end{interlinear}
+\end{verbatim}
+
+\subsection{Complete Example}
+\begin{verbatim}
+\begin{interlinear}
+\li Language\\
+\rf Identifier of the data in the corpus/corpora\\
+\ct Context\\
+\gj Grammaticality judgment\\
+\tx Object language text\\
+\mb Morpheme breaks\\
+\gl Glosses\\
+\ps Part-of-speech\\
+\ft Free translation\\
+\lt Literal translation\\
+\nt Extra note\\
+\end{interlinear}
+\end{verbatim}
+
+\section{Setting Options}
+The \code{interlinear} environment can be customized using the options described below.
+
+\subsection{Interlinear Lines Number}
+The number of interlinear lines is controlled by the \code{linesnumber} option. Possible values are 0, 2, 3, 4 (default is 2).
+
+\subsection{Markers and Customization}
+You can define custom markers for each part of the interlinear text:
+\begin{verbatim}
+\li languageinfomarker
+\rf referencemarker
+\ct contextmarker
+\gj gramjudgmarker
+\tx textmarker
+\mb morphbreakmarker
+\gl glossmarker
+\ps partofspeechmarker
+\ft freetranslationmarker
+\lt literaltranslationmarker
+\nt extranotemarker
+\end{verbatim}
+
+\subsection{Appearance Customization}
+You can modify the appearance of different elements using the following options:
+\begin{verbatim}
+lineoneformat % First line format
+linetwoformat % Second line format
+linethreeformat % Third line format
+linefourformat % Fourth line format
+exformat % Example text format (no-interlinear mode)
+extranoteformat % Extra note format
+contextnameformat % Context label format
+\end{verbatim}
+
+These options can control the font family, shape, series, size, and color. To specify multiple formatting options, enclose them in a group. For example, the command \code{lineoneformat=\{$\backslash$itshape$\backslash$bfseries$\backslash$small\}} will set the text on the first interlinear or gloss line to boldface italics in a small size. By default, all formats are set to \code{$\backslash$normalfont}.
+
+\subsection{Other Settings}
+Various other elements can be customized:
+
+\itm{The label indicating the context of the example can be changed using the \code{contextname} option. For instance, to change \code{Context:} to \code{Situation:}, use \code{contextname={Situation:}}.}
+
+\itm{The space between the context and the body of the example can be specified via the \code{contextvoffset} option.}
+
+\itm{By default, marginal notes are enclosed in parentheses \code{()}. To change this behavior, use the \code{extranoteleftpunct} and \code{extranoterightpunct} options. For example, to change the parentheses to square brackets \code{[]}, set \code{extranoteleftpunct={[}} and \code{extranoterightpunct={]}}. If you prefer no punctuation marks around your notes, set \code{extranoteleftpunct={}} and \code{extranoterightpunct={}}.}
+
+\itm{The placement of language information for the linguistic example is controlled by the \code{languageinfopos} option, which accepts two values: \code{head} and \code{margin}. The default value, \code{margin}, places this information in parentheses in the margin of the first line of the example. The \code{head} value places it in a separate line at the very beginning of the example, even before the context. When the no-interlinear mode is enabled, \code{languageinfopos} should be set to \code{head} to avoid positioning conflicts with marginal notes.}
+
+\subsection{Applying Options Outside the Environment}
+Options can also be specified outside the \code{interlinear} environment using the \code{\interlinearstyle} command, which takes one mandatory argument. This argument should contain the list of chosen options, and \code{\interlinearstyle} must be called before the environment.
+
+For example:
+\begin{verbatim}
+\begin{interlinear}[linesnumber=3,linefourformat=\itshape]
+(content)
+\end{interlinear}
+\end{verbatim}
+
+is equivalent to:
+\begin{verbatim}
+\interlinearstyle{linesnumber=3,linefourformat=\itshape}
+\begin{interlinear}
+(content)
+\end{interlinear}
+\end{verbatim}
+
+The \code{$\backslash$interlinearstyle} command redefines the default values for the specified options. Therefore, each time this command is used, it updates the default values for the specified options.
+
+\subsection{Using Predefined and Custom Styles}
+One of the features of the \code{interlinear} package is the ability to define multiple styles and use them throughout the document without having to call \code{$\backslash$interlinearstyle} each time. There are four predefined styles:
+
+\begin{itemize}
+ \item \code{default}: Standard settings.
+ \item \code{gsr}: Sets the first interlinear line in italics.
+ \item \code{nointerlinear}: Configures the no-interlinear mode, changes the \code{$\backslash$ft} marker to \code{$\backslash$ot}, and sets \code{languageinfopos} to \code{head}. This style provides a safe way to configure the no-interlinear mode without worrying about the various parameters.
+ \item \code{gsrnointerlinear}: Similar to \code{nointerlinear}, but the text of the example is italicized.
+\end{itemize}
+
+There are two ways to apply a style:
+\begin{enumerate}
+\item Using the \code{$\backslash$UseInterlinearStyle\{\}} command before the \code{interlinear} environment, at the beginning of the document, or in the preamble.
+\item Using the dedicated \code{style} option in the optional argument of the \code{interlinear} environment.
+\end{enumerate}
+
+Example: \code{$\backslash$begin\{interlinear\}[style=gsr]}.
+
+It is recommended to specify the \code{style} option first when combining it with other options.
+
+You can also specify additional options alongside the style to customize it as needed (e.g., if you want to temporarily modify a style parameter).
+
+For example, the \code{gsr} style was declared using the following code:
+\begin{verbatim}
+\DeclareInterlinearStyle{gsr}{%
+ linesnumber=2,%
+ lineoneformat=\itshape,%
+ linetwoformat=\normalfont%
+}
+\end{verbatim}
+
+\end{document}
diff --git a/macros/latex/contrib/interlinear/interlinear.sty b/macros/latex/contrib/interlinear/interlinear.sty
new file mode 100644
index 0000000000..dd881b83db
--- /dev/null
+++ b/macros/latex/contrib/interlinear/interlinear.sty
@@ -0,0 +1,1176 @@
+% ^package_name="lingwrit-interlinear"_version="1.0"_container="lingwrit"
+% ^markup-language="WRIML"
+% ^purpose
+% This package processes interlinear gloss text, providing tools for handling and formatting glosses in linguistic documents.
+% It is based on the cgloss4e.sty package, but with significant modifications to avoid conflicts with other packages and to extend functionality.
+% As part of the lingwrit package, lingwrit-interlinear should not be loaded alongside it.
+% _purpose
+% ^base-program cgloss4e.sty _base-program
+
+% ^rem General Information
+% ^- lingwrit-interlinear is a modified version of cgloss4e.sty _-
+% ^- It primarily renames commands according to a customized syntax to prevent conflicts with other similar packages. _-
+% ^- Additional modifications include new commands and a new interlinear environment. _-
+% ^- Code added to the original has been marked with % ^added and % _added _-
+% _rem
+
+% ^module_name="interlinear"_container="lingwrit"
+% ^desc
+% This module is a modified version of the cgloss4e.sty.
+%
+% Modifications include:
+% - Command renaming: Commands have been renamed to avoid potential conflicts with other packages using similar names.
+% - Commands for processing four-lines interlinearization
+% - interlinear environment with its options
+% - markup commands and other functionalities
+%
+% Below is the list of new command names and their counterparts in cgloss:
+
+% ^list
+% ^cat Functions _cat
+
+% \more ^_becomes \lw_iln_process:words_queue
+% \lastword ^_becomes \lw_iln_fun_get:last_word
+% \testdone ^_becomes \lw_iln_check:queue_emptyness
+% \getwords ^_becomes \lw_iln_fun_get:line_words
+% \donewords ^_becomes \lw_iln_fun_exit:word_extraction
+% \twosent ^_becomes \lw_iln_fun_align:two_lines_words
+% \threesent ^_becomes \lw_iln_fun_align:three_lines_words
+% \glossglue ^_becomes \lw_iln_glue:inter_word_space
+% \gll ^_becomes \lw_iln_fun_enter:two_lines_interlinearization
+% \glll ^_becomes \lw_iln_fun_enter:three_lines_interlinearization
+% \glt ^_becomes \lw_iln_fun_insert:free_translation
+% \glend ^_becomes \lw_iln_fun_exit:interlinearization
+% \gl@stop ^_becomes \lw_iln_fun_exit:words_alignment
+
+% ^cat Boxes variables _cat
+
+% \lineone ^_becomes \lw_iln_var_box:line_one
+% \linetwo ^_becomes \lw_iln_var_box:line_two
+% \linethree ^_becomes \lw_iln_var_box:line_three
+% \linefour ^_becomes \lw_iln_var_box:line_four
+% \wordone ^_becomes \lw_iln_var_box:word_one
+% \wordtwo ^_becomes \lw_iln_var_box:word_two
+% \wordthree ^_becomes \lw_iln_var_box:word_three
+% \wordfour ^_becomes \lw_iln_var_box:word_four
+% \gline ^_becomes \lw_iln_var_box:iln_text_lines
+
+% ^cat Setting Appearence _cat
+
+% \eachwordone ^_becomes \lw_iln_fun_set:line_one_words_format
+% \eachwordtwo ^_becomes \lw_iln_fun_set:line_two_words_format
+% \eachwordthree ^_becomes \lw_iln_fun_set:line_three_words_format
+% \eachwordfour ^_becomes \lw_iln_fun_set:line_four_words_format
+% _list
+
+% The naming of the commands follows the following schema:
+
+% \<container>_<package>_<type>_<subtype>:<name/description>
+
+% <container> code is: lw (for lingwrit)
+% <package> code is: iln (for interlinear)
+% <type> code includes: "var" (for variables) and "fun" (for functions)
+
+% Variable Subtypes
+% box: for boxes
+
+% Function Subtypes
+% enter: initialize a process
+% exit: terminates a process
+% get: extract information
+% check: test if some condition is met
+% insert: inserts some stuff (i.e. the translation)
+% process: process given elements
+% calc: calculates the value of some variable
+% set: sets (manually) the values of some variable
+% _desc
+
+% ^code
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{lingwrit-interlinear}[2024/08/22 v1.0 (Linguistic Writing) Interlinear gloss text processing]
+
+% todo Required Packages
+\RequirePackage{marginnote} % ^rem for marginnotes _rem
+\RequirePackage{xifthen}
+\RequirePackage{xkeyval} % ^rem For key=val options
+\RequirePackage{xparse,etoolbox,enumitem}
+
+% todo 0. Utilities
+
+% todo a. LW Syntax Related Commands
+% Shortcut for some conditional statements
+\DeclareDocumentCommand{\IfValueArgTF}{mmmm}{\ifthenelse{\equal{#1}{#2}}{#3}{#4}}
+% Enabling the package syntax
+\providecommand{\switchlwsyntaxon}{\makeatletter\catcode `:=11 \catcode `_=11}
+\providecommand{\switchlwsyntaxoff}{\makeatother \catcode `:=12 \catcode `_=8}
+% if you want to modify some internal commands, check if your code is
+% surrounded by \switchlwsyntaxon and \switchlwsyntaxoff (LW Syntax enables "@", ":" and "_" to be used in csnames. So you need not using \makeatletter and \makeatother when you are using lwsyntax))
+
+
+% ^action_name="Enabling LingWrit Syntax"
+\switchlwsyntaxon
+% _action
+
+% todo b. Renaming of some TeX primitives
+\let\enter:group\bgroup\relax
+\let\exit:group\egroup\relax
+
+% todo c. Defining some helpers
+\def\lw_fun_helper:store#1{\expandafter\let\csname call:stored_#1\endcsname\expandafter\csname #1\endcsname}
+\def\lw_fun_helper:call#1{#1}
+\def\lw_fun_helper:clear#1{\RenewDocumentCommand{#1}{}{\relax}}%
+
+% todo d. Usefull Commands That are not used
+% The following commands are not used actually but may be usefull in some contexts
+% Fixing bugs with setspace package
+% If you encounter an error message using \singlespacing, \onehalfspacing or \doublespacing, use either of the following commands, according to your needs.
+
+\def\usedoublespacing{\lw_fun_helper:store{doublespacing}
+ \renewcommand\doublespacing{%
+ \call:stored_doublespacing%
+ \def\baselinestretch{1.69}}%
+}
+%
+\def\useonehalfspacing{%
+ \lw_fun_helper:store{onehalfspacing}
+ \renewcommand\onehalfspacing{%
+ \call:stored_onehalfspacing%
+ \def\baselinestretch{1.24}}%
+ }
+\def\usesinglespacing{%
+ \lw_fun_helper:store{singlespacing}
+ \renewcommand\singlespacing{%
+ \call:stored_singlespacing%
+ \def\baselinestretch{1}}%
+ }
+
+% Line Stretch Size Calculator
+
+% Enable LW Syntax
+%\switchlwsyntaxon
+%\newcounter{currentsize}
+%\setcounter{currentsize}{10}
+%\addtocounter{currentsize}{\@ptsize}
+%\newlength{\lw_iln_length:line_stretch_size}
+%\setlength{\lw_iln_length:line_stretch_size}{\dimexpr\baselinestretch pt * \thecurrentsize}
+%Current size: \thecurrentsize
+%Current interline size:
+%\the\lw_iln_length:line_stretch_size
+% Disable LW Syntax
+% \switchlwsyntaxoff
+
+% todo enter:cgloss4e modifications *
+
+% todo 1. Borrowings from covington
+
+% Forcing and disabling single spacing
+\let\@gsingle=1
+\def\lw_iln_fun_enable:force_single_spacing{\let\@gsingle=1}
+\def\lw_iln_fun_disable:force_single_spacing{\let\@gsingle=0}
+\@ifundefined{new@fontshape}%
+{\def\@selfnt{\ifx\@currsize\normalsize\@normalsize\else\@currsize\fi}}
+{\def\@selfnt{\selectfont}}
+
+% todo a. 2-lines global interlinearization processing commands
+% ^modif_action="\begin{flushleft} removed"
+% ^rem inspired by Alexis Dimitriadis cgloss.sty _rem
+
+\def\lw_iln_fun_enter:two_lines_interlinearization% % Introduces 2-line text-and-gloss.
+{%\begin{flushleft}
+ \ifx\@gsingle1% conditionally force single spacing (hpk/MC)
+ \vskip\baselineskip\def\baselinestretch{1}%
+ \@selfnt\vskip-\baselineskip\fi%
+ \enter:group%
+ \lw_iln_fun_align:two_lines_words%
+ }
+% _modif
+
+% todo b. 3-lines global interlinearization processing commands
+% ^modif_action="\begin{flushleft} removed"
+% ^rem inspired by Alexis Dimitriadis cgloss.sty _rem
+ \def\lw_iln_fun_enter:three_lines_interlinearization% % Introduces 3-line text-and-gloss.
+ {%\begin{flushleft}
+ \ifx\@gsingle1% conditionally force single spacing (hpk/MC)
+ \vskip\baselineskip\def\baselinestretch{1}%
+ \@selfnt\vskip-\baselineskip\fi%
+ \enter:group
+ \lw_iln_fun_align:three_lines_words
+ }
+% _modif
+
+% todo c. 4-lines global interlinearization processing commands
+% ^added_action="\lw_iln_fun_enter:four_lines_interlinearization defined for initiating 4-lines interlinearization"
+ % ^rem inspired by Alexis Dimitriadis cgloss.sty _rem
+ \def\lw_iln_fun_enter:four_lines_interlinearization% % Introduces 3-line text-and-gloss.
+ {%\begin{flushleft}
+ \ifx\@gsingle1% conditionally force single spacing (hpk/MC)
+ \vskip\baselineskip\def\baselinestretch{1}%
+ \@selfnt\vskip-\baselineskip\fi%
+ \enter:group
+ \lw_iln_fun_align:four_lines_words
+ }
+ % _modif
+
+% todo d. Translation and interlinear end
+% ^modif_action="Is now obsolete"
+% \def\lw_iln_fun_insert:free_translation{} ^rem obsolete _rem
+% _modif
+% ^modif_action="Definition modified"
+ % Introduces a translation
+ \let\trans\relax% ^rem obsolete _rem
+% _modif
+
+ \def\lw_iln_fun_exit:interlinearization{%
+ \lw_iln_fun_insert:interlinear_bottom_skip%
+ }
+ % Ends the gloss environment.
+% _modif
+
+% todo 2. Adaptation of gloss.tex
+
+ % The following TeX code is adapted, with permission, from:
+ % gloss.tex: Macros for vertically aligning words in consecutive sentences.
+ % Version: 1.0 release: 26 November 1990
+ % Copyright (c) 1991 Marcel R. van der Goot (marcel@cs.caltech.edu).
+ % Original Midnight/gloss.tex and Midnight/gloss.doc are available from
+ % csvax.cs.caltech.edu [131.215.131.131] in pub/tex
+ % and many other anonymous ftp archives.
+
+% todo a. Box Variables Declaration
+ \newbox\lw_iln_var_box:line_one% boxes with words from first line
+ \newbox\lw_iln_var_box:line_two%
+ \newbox\lw_iln_var_box:line_three%
+ \newbox\lw_iln_var_box:line_four% ^rem ADDED _rem
+ \newbox\lw_iln_var_box:word_one% a word from the first line (hbox)
+ \newbox\lw_iln_var_box:word_two%
+ \newbox\lw_iln_var_box:word_three%
+ \newbox\lw_iln_var_box:word_four% ^rem ADDED _rem
+ \newbox\lw_iln_var_box:iln_text_lines% the constructed double line (hbox)
+
+% todo b. Skip Variable Declaration and setting
+ \newskip\lw_iln_glue:inter_word_space% extra glue between glossed pairs or triples
+ \lw_iln_glue:inter_word_space = 0pt plus 2pt minus 1pt % allow stretch/shrink between words
+ %\lw_iln_glue:inter_word_space = 5pt plus 2pt minus 1pt % allow stretch/shrink between words
+ \newlength{\lw_iln_length:base_line_stretch}
+ \setlength{\lw_iln_length:base_line_stretch}{.61ex}
+
+ \AtBeginDocument{%
+ \def\lw_iln_fun_calc:line_stretch_factor{%
+ \ifdim\baselinestretch\p@=1\p@%
+ \def\lw_iln_multiplier:line_stretch_factor{.5}
+ \else%
+ \ifdim\baselinestretch\p@<1.26\p@%
+ \def\lw_iln_multiplier:line_stretch_factor{.5}
+ \else%
+ \ifdim\baselinestretch\p@<1.6\p@
+ \def\lw_iln_multiplier:line_stretch_factor{1.6}
+ \else%
+ \ifdim\baselinestretch\p@>1.6\p@
+ \def\lw_iln_multiplier:line_stretch_factor{2.23}
+ \else%
+ \ifdim\baselinestretch\p@=1.6\p@
+ \def\lw_iln_multiplier:line_stretch_factor{2.23}
+ \else%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ }
+ \lw_iln_fun_calc:line_stretch_factor%
+ %
+ \newlength{\lw_iln_length:line_spread}
+ \setlength{\lw_iln_length:line_spread}{0ex}
+ \addtolength{\lw_iln_length:line_spread}{\lw_iln_multiplier:line_stretch_factor\lw_iln_length:base_line_stretch}
+ \addtolength{\lw_iln_length:line_spread}{.16\lw_iln_length:base_line_stretch}
+ }
+ %\addtolength{\lw_iln_length:line_spread}{\lw_iln_multiplier:line_stretch_factor\lw_iln_length:base_line_stretch}
+
+
+% todo c. Boolean Declaration
+ \newif\ifnotdone
+
+% todo d. \rmfamily font declaraton (for backward compatibility)
+ % For any REALLY old distributions without \rmfamily
+ \@ifundefined{rmfamily}{\let\rmfamily=\rm}
+
+% todo e. Définition functions controlling the appearance of words in each line of the interlinearized text
+% ^modified_action="Adding low level commands to format different aspects of the appearence of words"
+\@ifundefined{lw_iln_fun_set:line_one_words_format}%
+ {\newcommand\lw_iln_fun_set:line_one_words_format{%
+ \lw_iln_fun_set:line_one_words_font_size%
+ \lw_iln_fun_set:line_one_words_font_series%
+ \lw_iln_fun_set:line_one_words_font_shape%
+ \lw_iln_fun_set:line_one_words_font_color%
+ }
+ }{\relax}
+ % ^added
+ \let\lw_iln_fun_set:line_one_words_font_size=\normalsize
+ \let\lw_iln_fun_set:line_one_words_font_series=\mdseries%
+ \let\lw_iln_fun_set:line_one_words_font_shape=\upshape%
+ \let\lw_iln_fun_set:line_one_words_font_color=\normalcolor%
+ % _added
+ %
+\@ifundefined{lw_iln_fun_set:line_two_words_format}%
+ {\newcommand\lw_iln_fun_set:line_two_words_format{%
+ \lw_iln_fun_set:line_two_words_font_size%
+ \lw_iln_fun_set:line_two_words_font_series%
+ \lw_iln_fun_set:line_two_words_font_shape%
+ \lw_iln_fun_set:line_two_words_font_color}
+ }%
+ {\relax}
+%
+ % ^added
+ \let\lw_iln_fun_set:line_two_words_font_size=\normalsize
+ \let\lw_iln_fun_set:line_two_words_font_series=\mdseries%
+ \let\lw_iln_fun_set:line_two_words_font_shape=\upshape%
+ \let\lw_iln_fun_set:line_two_words_font_color=\normalcolor%
+ % _added
+ %
+\@ifundefined{lw_iln_fun_set:line_three_words_format}{%
+ \newcommand\lw_iln_fun_set:line_three_words_format{%
+ \lw_iln_fun_set:line_three_words_font_size%
+ \lw_iln_fun_set:line_three_words_font_series%
+ \lw_iln_fun_set:line_three_words_font_shape%
+ \lw_iln_fun_set:line_three_words_font_color}
+ }{\relax}
+ % ^added
+ \let\lw_iln_fun_set:line_three_words_font_size=\normalsize
+ \let\lw_iln_fun_set:line_three_words_font_series=\mdseries%
+ \let\lw_iln_fun_set:line_three_words_font_shape=\upshape%
+ \let\lw_iln_fun_set:line_three_words_font_color=\normalcolor%
+ % _added
+ %
+%
+\@ifundefined{lw_iln_fun_set:line_four_words_format}{%
+ \newcommand\lw_iln_fun_set:line_four_words_format{%
+ \lw_iln_fun_set:line_four_words_font_size%
+ \lw_iln_fun_set:line_four_words_font_series%
+ \lw_iln_fun_set:line_four_words_font_shape%
+ \lw_iln_fun_set:line_four_words_font_color}
+ }{\relax}% ^rem ADDED _rem
+ % ^added
+ \let\lw_iln_fun_set:line_four_words_font_size=\normalsize
+ \let\lw_iln_fun_set:line_four_words_font_series=\mdseries%
+ \let\lw_iln_fun_set:line_four_words_font_shape=\upshape%
+ \let\lw_iln_fun_set:line_four_words_font_color=\normalcolor%
+ % _added
+ %
+% _modified
+% todo f. General Interlinearization Functions Definition
+ \def\lw_iln_fun_get:last_word#1#2#3% #1 = \each, #2 = line box, #3 = word box
+ {\setbox#2=\vbox{\unvbox#2%
+ \global\setbox#3=\lastbox%
+ }%
+ \ifvoid#3\global\setbox#3=\hbox{#1\strut{} }\fi
+ % extra space following \strut in case #1 needs a space
+ }
+
+ \def\lw_iln_check:words_queue_emptyness
+ {\ifdim\ht\lw_iln_var_box:line_one=0pt
+ \ifdim\ht\lw_iln_var_box:line_two=0pt \notdonefalse % tricky space after pt
+ \else\notdonetrue
+ \fi
+ \else\notdonetrue
+ \fi
+ }
+
+ \gdef\lw_iln_fun_get:line_words(#1,#2)#3 #4\\% #1=linebox, #2=\each, #3=1st word, #4=remainder
+ {\setbox#1=\vbox{\hbox{#2{\strut#3} }% adds space
+ \unvbox#1%
+ }%
+ \def\lw_iln_process:words_queue{#4}%
+ \ifx\lw_iln_process:words_queue\empty\let\lw_iln_process:words_queue=\lw_iln_fun_exit:word_extraction
+ \else\let\lw_iln_process:words_queue=\lw_iln_fun_get:line_words
+ \fi
+ \lw_iln_process:words_queue(#1,#2)#4\\%
+ }
+
+ \gdef\lw_iln_fun_exit:word_extraction(#1,#2)\\{}%
+
+% todo g. Processing of 2-lines interlinear texts
+% ^modif_action"Rename \twosent into original twosent"
+ \gdef\lw_iln_fun_align:two_lines_words#1\\ #2\\{% #1 = first line, #2 = second line
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_one,\lw_iln_fun_set:line_one_words_format)#1 \\%
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_two,\lw_iln_fun_set:line_two_words_format)#2 \\%
+ \loop\lw_iln_fun_get:last_word{\lw_iln_fun_set:line_one_words_format}{\lw_iln_var_box:line_one}{\lw_iln_var_box:word_one}%
+ \lw_iln_fun_get:last_word{\lw_iln_fun_set:line_two_words_format}{\lw_iln_var_box:line_two}{\lw_iln_var_box:word_two}%
+ \global\setbox\lw_iln_var_box:iln_text_lines=\hbox{\unhbox\lw_iln_var_box:iln_text_lines
+ \hskip\lw_iln_glue:inter_word_space
+ \vtop{\box\lw_iln_var_box:word_one % vtop was vbox
+ \nointerlineskip
+ \box\lw_iln_var_box:word_two
+ }%
+ }%
+ \lw_iln_check:words_queue_emptyness
+ \ifnotdone
+ \repeat
+ \exit:group % matches \enter:group in \gloss
+ \lw_iln_fun_exit:words_alignment}
+% _modif
+
+
+% todo h. Processing of 3-lines interlinear texts
+ \gdef\lw_iln_fun_align:three_lines_words#1\\ #2\\ #3\\{% #1 = first line, #2 = second line, #3 = third
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_one,\lw_iln_fun_set:line_one_words_format)#1 \\%
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_two,\lw_iln_fun_set:line_two_words_format)#2 \\%
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_three,\lw_iln_fun_set:line_three_words_format)#3 \\%
+ \loop\lw_iln_fun_get:last_word{\lw_iln_fun_set:line_one_words_format}{\lw_iln_var_box:line_one}{\lw_iln_var_box:word_one}%
+ \lw_iln_fun_get:last_word{\lw_iln_fun_set:line_two_words_format}{\lw_iln_var_box:line_two}{\lw_iln_var_box:word_two}%
+ \lw_iln_fun_get:last_word{\lw_iln_fun_set:line_three_words_format}{\lw_iln_var_box:line_three}{\lw_iln_var_box:word_three}%
+ \global\setbox\lw_iln_var_box:iln_text_lines=\hbox{\unhbox\lw_iln_var_box:iln_text_lines
+ \hskip\lw_iln_glue:inter_word_space
+ \vtop{\box\lw_iln_var_box:word_one % vtop was vbox
+ \nointerlineskip
+ \box\lw_iln_var_box:word_two
+ \nointerlineskip
+ \box\lw_iln_var_box:word_three
+ }%
+ }%
+ \lw_iln_check:words_queue_emptyness
+ \ifnotdone
+ \repeat
+ \exit:group % matches \enter:group in \gloss
+ \lw_iln_fun_exit:words_alignment}
+
+
+% todo i. Processing of 4-lines interlinear texts
+% ^added_action"Four lines interlinear processor, equivalent to an hypothetic \foursent for gloss.tex based interlinearization packages"
+\gdef\lw_iln_fun_align:four_lines_words#1\\ #2\\ #3\\ #4\\{% #1 = first line, #2 = second line, #3 = third
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_one,\lw_iln_fun_set:line_one_words_format)#1 \\%
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_two,\lw_iln_fun_set:line_two_words_format)#2 \\%
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_three,\lw_iln_fun_set:line_three_words_format)#3 \\%
+ \lw_iln_fun_get:line_words(\lw_iln_var_box:line_four,\lw_iln_fun_set:line_four_words_format)#4 \\%
+ \loop\lw_iln_fun_get:last_word{\lw_iln_fun_set:line_one_words_format}{\lw_iln_var_box:line_one}{\lw_iln_var_box:word_one}%
+ \lw_iln_fun_get:last_word{\lw_iln_fun_set:line_two_words_format}{\lw_iln_var_box:line_two}{\lw_iln_var_box:word_two}%
+ \lw_iln_fun_get:last_word{\lw_iln_fun_set:line_three_words_format}{\lw_iln_var_box:line_three}{\lw_iln_var_box:word_three}%
+ \lw_iln_fun_get:last_word{\lw_iln_fun_set:line_four_words_format}{\lw_iln_var_box:line_four}{\lw_iln_var_box:word_four}%
+ \global\setbox\lw_iln_var_box:iln_text_lines=\hbox{\unhbox\lw_iln_var_box:iln_text_lines
+ \hskip\lw_iln_glue:inter_word_space
+ \vtop{\box\lw_iln_var_box:word_one % vtop was vbox
+ \nointerlineskip
+ \box\lw_iln_var_box:word_two
+ \nointerlineskip
+ \box\lw_iln_var_box:word_three
+ \nointerlineskip
+ \box\lw_iln_var_box:word_four
+ }%
+ }%
+ \lw_iln_check:words_queue_emptyness
+ \ifnotdone
+ \repeat
+ \exit:group % matches \enter:group in \gloss
+ \lw_iln_fun_exit:words_alignment}
+
+% _added
+
+
+% todo j. Ending interlinearization
+% ^modif_action="\end{flushleft} removed"
+% ^rem inspired by Alexis Dimitriadis cgloss.sty _rem
+ \def\lw_iln_fun_exit:words_alignment{{\hskip -\lw_iln_glue:inter_word_space}\unhbox\lw_iln_var_box:iln_text_lines}
+% _modif
+% todo * exit:cgloss4e modifications
+
+% todo 1. Other added features
+% todo a. Managing line spacing after interlinearization
+\def\baselinestretch{1}
+\def\lw_iln_fun_insert:interlinear_bottom_skip{\vskip \lw_iln_length:line_spread}%
+
+% todo b. Configuring ex-parts boxes
+
+% ^rem Examples will now be placed within boxes, alongside glosses lines (old genericx.tex's \mb and \gl lines), and hanging bracketed language informations (like LangSci jamboxes) _rem
+% todo i. Setting Lengths
+% ===============
+% Setting Lengths
+% ===============
+%
+
+\newlength{\lw_iln_var_dim:ex_box_width}
+\newlength{\lw_iln_var_dim:ex_box_right_margin}
+%\newlength{\lw_iln_var_dim:ex_box_bottom_sep}
+%\newlength{\lw_iln_var_dim:ex_box_top_sep}
+\newlength{\lw_iln_var_dim:iln_box_width}
+\newlength{\lw_iln_var_dim:iln_box_right_margin}
+%\newlength{\lw_iln_var_dim:iln_box_bottom_sep}
+%\newlength{\lw_iln_var_dim:iln_box_top_sep}
+\newlength{\lw_iln_var_dim:trans_box_width}
+\newlength{\lw_iln_var_dim:trans_box_right_margin}
+\newlength{\lw_iln_var_dim:gramjudg_len}
+\newlength{\lw_iln_var_dim:gramjudg_reserved_space}
+\newlength{\lw_iln_var_dim:langinfo_box_width}
+\newlength{\lw_iln_var_dim:langinfo_box_left_sep}
+\newlength{\lw_iln_var_dim:langinfo_box_right_sep}
+\newlength{\lw_iln_var_dim:langinfo_reserved_space}
+%\newlength{\lw_iln_var_dim:langinfo_left_margin}
+\newlength{\lw_iln_var_dim:extranote_box_width}
+\newlength{\lw_iln_var_dim:extranote_box_left_sep}
+\newlength{\lw_iln_var_dim:extranote_box_right_sep}
+\newlength{\lw_iln_var_dim:extranote_reserved_space}
+%\newlength{\lw_iln_var_dim:extranote_left_margin}
+
+% Initializing lengths
+\setlength{\lw_iln_var_dim:ex_box_width}{\linewidth}
+\setlength{\lw_iln_var_dim:ex_box_right_margin}{0ex}
+\setlength{\lw_iln_var_dim:iln_box_width}{\linewidth}
+\setlength{\lw_iln_var_dim:iln_box_right_margin}{0ex}
+\setlength{\lw_iln_var_dim:trans_box_width}{\linewidth}
+\setlength{\lw_iln_var_dim:trans_box_right_margin}{0ex}
+\addtolength{\lw_iln_var_dim:trans_box_width}{-\lw_iln_var_dim:trans_box_right_margin}
+\setlength{\lw_iln_var_dim:gramjudg_len}{0ex}% ^rem default value _rem
+\setlength{\lw_iln_var_dim:langinfo_box_width}{0ex}% ^rem default value _rem
+\setlength{\lw_iln_var_dim:langinfo_reserved_space}{0ex}
+\setlength{\lw_iln_var_dim:langinfo_box_left_sep}{3.4ex}
+\setlength{\lw_iln_var_dim:langinfo_box_right_sep}{3.4ex}
+\setlength{\lw_iln_var_dim:extranote_box_width}{0ex}% ^rem default value _rem
+\setlength{\lw_iln_var_dim:extranote_reserved_space}{0ex}
+\setlength{\lw_iln_var_dim:extranote_box_left_sep}{0pt}
+\setlength{\lw_iln_var_dim:extranote_box_right_sep}{0pt}
+
+% ===========================
+% Defining Booleans for Boxes
+% Opennings
+% ===========================
+\newif\ifnoglosslines%
+\noglosslinestrue
+% todo ii. Defining Opening CS for Boxes
+% =============================
+% Defining Opening CS for Boxes
+% =============================
+\NewDocumentCommand{\lw_iln_fun_open:ex_box}{}{%
+ % ^rem example box opening code _rem
+ % ^rem \lw_iln_fun_open:ex_box should be called after \label{key} to avoid linebreak _rem
+ % ^rem no_op command _rem
+ }
+\NewDocumentCommand{\lw_iln_fun_open:iln_box}{}{%
+ % ^rem interlinear text box opening code _rem
+ \addtolength{\lw_iln_var_dim:iln_box_width}{-1.15\lw_iln_var_dim:langinfo_reserved_space}%
+ \begin{itemize}[%
+ align=left,%
+ labelwidth=\lw_iln_var_dim:gramjudg_len,%
+ leftmargin=\lw_iln_var_dim:gramjudg_reserved_space]%
+ \item[\lw_iln_fun_print:gramjudg]%
+ \begin{minipage}[t]{\lw_iln_var_dim:iln_box_width}%
+}
+\NewDocumentCommand{\lw_iln_fun_open:langinfo_box}{}{%
+ % ^rem language info box opening code _rem
+ \begin{minipage}[t]{\lw_iln_var_dim:langinfo_box_width}
+}
+\NewDocumentCommand{\lw_iln_fun_open:trans_box}{}{%
+ \setlength{\lw_iln_var_dim:trans_box_width}{\linewidth}
+ \addtolength{\lw_iln_var_dim:trans_box_width}{-1.069\lw_iln_var_dim:extranote_reserved_space}%
+ \trans \begin{minipage}[b]{\lw_iln_var_dim:trans_box_width}
+}
+\NewDocumentCommand{\lw_iln_fun_open:extra_note_box}{}{%
+ \begin{minipage}[t]{\lw_iln_var_dim:extranote_box_width}%
+ \raggedright%
+ }
+
+% todo iii. Defining Closing CS for Boxes
+% =============================
+% Defining Closing CS for Boxes
+% =============================
+\def\lw_iln_fun_format:ex_text{\normalfont}%
+\NewDocumentCommand{\lw_iln_fun_close:ex_box}{}{%
+ % ^rem example box closing code _rem
+ \setlength{\lw_iln_var_dim:trans_box_width}{\linewidth}
+ \addtolength{\lw_iln_var_dim:trans_box_width}{-\lw_iln_var_dim:gramjudg_reserved_space}
+ \addtolength{\lw_iln_var_dim:trans_box_width}{-1.0618\lw_iln_var_dim:extranote_reserved_space}%
+ \IfValueArgTF{\lw_iln_var_stored:gramjudg_text}{}{\relax}%
+ {\begin{minipage}[t]{\lw_iln_var_dim:gramjudg_len}
+ \lw_iln_fun_print:gramjudg%
+ \end{minipage}}
+ \begin{minipage}[t]{\lw_iln_var_dim:trans_box_width}
+ \lw_iln_fun_format:ex_text%
+ \lw_iln_var_stored:free_trans_text\space%
+ \normalfont%
+ \IfValueArgTF{\lw_iln_var_stored:reference_text}{}{\relax}{\lw_iln_fun_print:reference}%
+ \end{minipage}
+ \IfValueArgTF{\lw_iln_var_stored:extranote_text}{}{\relax}%
+ {\vskip -2.6ex
+ \hfill%
+ \begin{minipage}[t]{\lw_iln_var_dim:extranote_box_width}
+ (\lw_iln_var_stored:extranote_text)%
+ \end{minipage}}%
+}
+\NewDocumentCommand{\lw_iln_fun_close:iln_box}{}{%
+ % ^rem interlinear text box closing code _rem
+ \lw_iln_fun_exit:interlinearization
+ \end{minipage}\lw_iln_fun_print:langinfo%
+ \end{itemize}
+}
+\NewDocumentCommand{\lw_iln_fun_close:langinfo_box}{}{%
+ % ^rem language info box closing code _rem
+ \end{minipage}%
+}
+\NewDocumentCommand{\lw_iln_fun_close:extranote_box}{}{%
+ \end{minipage}%
+}
+\NewDocumentCommand{\lw_iln_fun_close:trans_box}{}{%
+ \end{minipage}\hfill%
+}
+
+% todo iv. Defining CS for setting or inserting example parts or metadata
+\def\lw_iln_var_stored:langinfo_text{}
+% the * and : versions print the language name as a title.
+% If \lw_iln_fun_set:langinfo if followed by an ex_box, use the * version
+% If there is some text -- e.g. specifying the context for the data -- before the ex_box, use the : version
+% To print the language information as a margin note, use the "bear" version
+\NewDocumentCommand{\langinfo}{s t/ m }{%
+ \IfBooleanTF{#1}%
+ {{\normalfont #3}}%
+ {%
+ \IfBooleanTF{#2}%
+ {{\normalfont #3}\\}%
+ {\def\lw_iln_var_stored:langinfo_text{#3}
+ \settowidth{\lw_iln_var_dim:langinfo_box_width}{#3}
+ \setlength{\lw_iln_var_dim:langinfo_reserved_space}{\lw_iln_var_dim:langinfo_box_width}
+ \addtolength{\lw_iln_var_dim:langinfo_reserved_space}{\lw_iln_var_dim:langinfo_box_left_sep}
+ \addtolength{\lw_iln_var_dim:langinfo_reserved_space}{\lw_iln_var_dim:langinfo_box_right_sep}
+ }%
+ }%
+}%
+
+\NewDocumentCommand{\lw_iln_fun_set:langinfo}{m}{\langinfo{#1}}
+\NewDocumentCommand{\lw_iln_fun_make:langinfo_box}{}{%
+ \ifthenelse{\equal{\lw_iln_var_stored:langinfo_text}{}}{}{%
+ \marginnote{\hskip -\lw_iln_var_dim:langinfo_reserved_space\lw_iln_fun_open:langinfo_box%
+ {\normalfont(\lw_iln_var_stored:langinfo_text)}%
+ \lw_iln_fun_close:langinfo_box}[0cm]%
+ }%
+}
+\NewCommandCopy{\lw_iln_fun_print:langinfo}{\lw_iln_fun_make:langinfo_box}
+
+\def\lw_iln_var_stored:gramjudg_text{}
+\NewDocumentCommand{\lw_iln_fun_set:gramjudg}{m}{%
+ \def\lw_iln_var_stored:gramjudg_text{#1}%
+ \settowidth{\lw_iln_var_dim:gramjudg_len}{#1}%
+ \setlength{\lw_iln_var_dim:gramjudg_reserved_space}{\lw_iln_var_dim:gramjudg_len}%
+ \addtolength{\lw_iln_var_dim:gramjudg_reserved_space}{1ex}%
+}
+\NewDocumentCommand{\lw_iln_fun_print:gramjudg}{}{%
+ \ifthenelse{\equal{\lw_iln_var_stored:gramjudg_text}{}}{}{%
+ {\normalfont\lw_iln_var_stored:gramjudg_text}%
+ }%
+}
+\def\lw_iln_var_stored:extranote_text{}
+\def\lw_iln_var_token:extranote_left_punct{{(}}%
+\def\lw_iln_fun_format:extranote{\normalfont}
+\def\lw_iln_var_token:extranote_right_punct{{)}}%
+\NewDocumentCommand{\lw_iln_fun_add:extranote}{m}{%
+ \def\lw_iln_var_stored:extranote_text{#1}%
+ \settowidth{\lw_iln_var_dim:extranote_box_width}{#1}
+ \ifdimgreater{\lw_iln_var_dim:extranote_box_width}{113.2pt}%
+ {\setlength{\lw_iln_var_dim:extranote_box_width}{113.2pt}}%
+ {\settowidth{\lw_iln_var_dim:extranote_box_width}{#1}}%
+ \setlength{\lw_iln_var_dim:extranote_reserved_space}{\lw_iln_var_dim:extranote_box_width}%
+ \addtolength{\lw_iln_var_dim:extranote_reserved_space}{\lw_iln_var_dim:extranote_box_left_sep}
+ \addtolength{\lw_iln_var_dim:extranote_reserved_space}{\lw_iln_var_dim:extranote_box_right_sep}%
+}
+\NewDocumentCommand{\lw_iln_fun_make:extranote_box}{}{%
+ \IfValueArgTF{\lw_iln_var_stored:extranote_text}{}%
+ {}%
+ {\lw_iln_fun_open:extra_note_box%
+ \lw_iln_var_token:extranote_left_punct%
+ \lw_iln_fun_format:extranote%
+ \lw_iln_var_stored:extranote_text%
+ \normalfont%
+ \lw_iln_var_token:extranote_right_punct%
+ \lw_iln_fun_close:extranote_box}
+}
+
+\def\lw_iln_var_stored:free_trans_text{}
+\NewDocumentCommand{\lw_iln_fun_set:free_translation}{m}{%
+ \def\lw_iln_var_stored:free_trans_text{#1}
+}
+\def\lw_iln_var_stored:literal_trans_text{}
+\NewDocumentCommand{\lw_iln_fun_set:literal_trans_text}{m}{%
+ \def\lw_iln_var_stored:literal_trans_text{#1}
+}
+\def\lw_iln_var_stored:reference_text{}
+\NewDocumentCommand{\lw_iln_fun_set:reference}{m}{%
+ \def\lw_iln_var_stored:reference_text{#1}
+}
+\NewDocumentCommand{\lw_iln_fun_print:free_trans}{}{%
+ \IfValueArgTF{\lw_iln_var_stored:free_trans_text}{}{}%
+ {`\lw_iln_var_stored:free_trans_text'}}
+\NewDocumentCommand{\lw_iln_fun_print:literal_trans}{}{%
+ \IfValueArgTF{\lw_iln_var_stored:literal_trans_text}{}{}%
+ {(Lit.: `\lw_iln_var_stored:literal_trans_text')}}
+\NewDocumentCommand{\lw_iln_fun_print:reference}{}{%
+ \IfValueArgTF{\lw_iln_var_stored:reference_text}{}{}%
+ {{[}\lw_iln_var_stored:reference_text{]}}}
+%
+\NewDocumentCommand{\lw_iln_fun_make:trans_box}{}{%
+ \IfValueArgTF{\lw_iln_var_stored:extranote_text}{}%
+ {\lw_iln_fun_open:trans_box%
+ \lw_iln_fun_print:free_trans\space %
+ \lw_iln_fun_print:literal_trans\space %
+ \lw_iln_fun_print:reference\space %
+ \lw_iln_fun_close:trans_box}%
+ {\lw_iln_fun_open:trans_box%
+ \raggedright
+ \lw_iln_fun_print:free_trans\space %
+ \lw_iln_fun_print:literal_trans\space %
+ \lw_iln_fun_print:reference\space %
+ \lw_iln_fun_close:trans_box}
+}
+
+\def\lw_iln_fun_format:context_label{\normalfont}
+\def\lw_iln_var_name:context{Context:}
+\def\lw_iln_fun_insert:context#1{%
+ \IfValueArgTF{#1}{}{}%
+ {\lw_iln_fun_format:context_label\lw_iln_var_name:context\normalfont~#1\\[-1.3\baselineskip]}
+}
+
+\def\lw_iln_fun_reinitialize:markers_value{%
+ \def\lw_iln_var_stored:extranote_text{}
+ \def\lw_iln_var_stored:free_trans_text{}
+ \def\lw_iln_var_stored:gramjudg_text{}
+ \def\lw_iln_var_stored:langinfo_text{}
+ \def\lw_iln_var_stored:literal_trans_text{}
+ \def\lw_iln_var_stored:reference_text{}
+}
+
+% todo v. Defining long (internal commands)
+\def\lw_iln_var_num:interlinear_lines{2}
+
+\def\lw_iln_tag:line_one_marker{% LEV version
+ \IfValueArgTF{\lw_iln_var_num:interlinear_lines}{2}%
+ {\lw_iln_fun_open:iln_box
+ \lw_iln_fun_enter:two_lines_interlinearization}{}%
+ \IfValueArgTF{\lw_iln_var_num:interlinear_lines}{3}%
+ {\lw_iln_fun_open:iln_box
+ \lw_iln_fun_enter:three_lines_interlinearization}{}%
+ \IfValueArgTF{\lw_iln_var_num:interlinear_lines}{4}%
+ {\lw_iln_fun_open:iln_box
+ \lw_iln_fun_enter:four_lines_interlinearization}{}%
+}%
+
+\let\lw_iln_tag:Text_marker\lw_iln_tag:line_one_marker% ^rem is typeset in italics by default. The starred version introduces a two-line interlinear gloss text. ^caution Do not use it together with \lw_iln_MorphBreak_marker : they mean the same thing. So you will get error messages. _caution _rem
+%
+\def\lw_iln_tag:Morpheme_Break_marker% ^rem typeset in roman -- by default -- (intended to host API translations). Introduces a 2-line interlinear gloss text. _rem
+{\IfValueArgTF{\lw_iln_var_num:interlinear_lines}{2}%
+ {\lw_iln_tag:line_one_marker}%
+ {\relax}%
+}%
+
+\def\lw_iln_tag:Gloss_marker% ^rem \ge is already defined in LaTeX. \lw_iln_tag:Gloss_marker introduces a two-line interlinear gloss text. _rem
+{\relax}%
+%
+\def\lw_iln_tag:Part_of_speech_marker{\relax}
+
+% LEV Syntax sensitive CS
+\def\lw_iln_tag:Free_translation_marker#1\\%
+ {\IfValueArgTF{\lw_iln_var_num:interlinear_lines}{0}
+ {\lw_iln_fun_set:free_translation{#1}}
+ {\lw_iln_fun_close:iln_box%
+ \lw_iln_fun_set:free_translation{#1}}}% ^rem CAUTION: The Free Translation marker should be present even if there is actually no free translation provided. _rem
+%
+\def\lw_iln_tag:Literal_translation_marker#1\\%
+{\lw_iln_fun_set:literal_trans_text{#1}}
+\def\lw_iln_tag:Reference_marker#1\\%
+{\lw_iln_fun_set:reference{#1}}
+\def\lw_iln_tag:Language_information_marker#1\\%
+{\lw_iln_fun_set:langinfo{#1}}
+\def\lw_iln_tag:Grammaticality_Judgment_marker#1\\%
+{\lw_iln_fun_set:gramjudg{#1}}
+\newlength{\lw_iln_var_dim:context_voffset}
+\setlength{\lw_iln_var_dim:context_voffset}{-1em}
+\def\lw_iln_tag:Context_marker#1\\%
+{\lw_iln_fun_insert:context{#1}\\[\lw_iln_var_dim:context_voffset]}
+\def\lw_iln_tag:Extra_note_marker#1\\%
+ {\lw_iln_fun_add:extranote{#1}}
+
+
+% _cs-definitions
+
+% todo vi. Low-level commands
+
+% ^section_title="User Commands and Envs to Typeset Interlinear Gloss Texts"
+% DEFINE: interlinear environment
+% DEFINE: Text tagging cs
+% The cs are named after the standard tags used in Linguist's Field's Toolbox by SIL (see Interlinear macro in ToolboxInterlinearMacroText.docm)
+% ^important Please use the short versions (in brackets). The long versions are internal commands to be use for later eventual modifications _important
+% \lw_iln_tag:Text_marker (\tx) ^rem is typeset in italic either in tri-gloss or in di-gloss envs. In di-gloss env, \tx and \mb mean the same thing. _rem
+%\lw_iln_tag:MorphBreak_marker (\mb) ^rem typeset in roman -- by default -- (intended to host API translations) _rem
+%\lw_iln_tag:Gloss_marker (\gl) % \ge is already defined in LaTeX
+%\lw_iln_tag:FreeTranslation_marker (\ft)
+% \lw_iln_tag:Reference_marker (\rf) ^rem \ref is a primitive _rem
+% --------------------------------
+% Markers not present in Toolbox defaults
+% --------------------------------
+% \lw_iln_tag:Language_information_marker (\li)
+% \lw_iln_tag:Grammaticality_Judgment_marker (\gj)
+% \lw_iln_tag:Context_marker (\ct)
+%
+% \lw_iln_tag:Literal_translation_marker (\lt)
+% \lw_iln_tag:Extra_note_marker (\nt)
+%
+% ^cs-definitions
+%\let\tx\lw_iln_tag:Text_marker% ^rem is typeset in italic either in tri-gloss or in di-gloss envs. In di-gloss env, \tx and \mb mean the same thing. _rem
+\let\mb\lw_iln_tag:Morpheme_Break_marker% ^rem typeset in roman -- by default -- (intended to host API translations) _rem
+\let\gl\lw_iln_tag:Gloss_marker% ^rem \ge is already defined in LaTeX _rem
+%\let\ft\lw_iln_tag:Free_translation_marker%
+\let\ps\lw_iln_tag:Part_of_speech_marker
+%
+\NewCommandCopy{\li}%
+{\lw_iln_tag:Language_information_marker}%
+\NewCommandCopy{\rf}%
+{\lw_iln_tag:Reference_marker}%
+\NewCommandCopy{\gj}%
+{\lw_iln_tag:Grammaticality_Judgment_marker}
+\NewCommandCopy{\ct}%
+{\lw_iln_tag:Context_marker}
+\NewCommandCopy{\lt}%
+{\lw_iln_tag:Literal_translation_marker}%
+\NewCommandCopy{\nt}%
+ {\lw_iln_tag:Extra_note_marker}
+
+% todo c. Defining Interlinear Env. Options
+% ----------------------
+% | Describing options |
+% ----------------------
+
+% # Options:
+
+% - argendchar: (not available for the moment) return, par, lineend
+% return : takes the current line as argument, do not put anything else (e.g. {}, or \\)
+% lineend : idem
+% par : argument is ended by "\\" like e.g. in cgloss4e
+% (NOTE: this option scopes over all the markers, not only interlinear text markers \tx, \mb, \gl, \ps)
+
+% - linesnumber: full, 2, 3
+% full : 4-lines (By default it is disabled in the main text)
+% 2 : Only one gloss line is printed (\gl); \mb and \tx are then treated are incompatible to each other so
+% that only of them should be used. If this option is used, you should specifiy the first-line of the
+% interlinear text via first-line option
+% 3 : only \ps is not printedand all the other lines \tx, \mb and \gl should be non-empty
+
+% * Setting markers *
+
+% Sets the marker used for the different parts. Actually tells lingwrit-interlinear to define the corresponding command so as to fit the definition of the
+% default marker (e.g. text_marker=\ot tells lingwrit-interlinear to add the following: \let\ot\tx)
+% - textmarker=
+% - morphbreakmarker=
+% - glossmarker= (You shouldn't set it to \ge. But if this happens, note that lingwrit-interlinear will redefine \ge to equal to \gl, define a new
+% command \gteq to replace \ge and issue a warning message)
+% - partofspeechmarker=
+% - freetranslationmarker=
+% - literaltranslationmarker=
+% - grammaticalityjudgmentmarker=
+% - contextmarker=
+% - extranotemarker=
+% - languageinfomarker=
+% - referencemarker=
+
+% * Format specifications *
+
+% (May include font size, shape, series and color. If color command is used (e.g. \color{blue}), then make sure to have xcolor loaded)
+% - lineoneformat={}
+% - linetwoformat={}
+% - linethreeformat={}
+% - linefourformat={}
+% - extranoteformat={}
+% - contextnameformat={}
+
+% * Other specifications *
+
+% - contextname={} ^rem The displayed label for context. default value is "Context:" _rem
+% - extranoteleftpunct= ^rem the punctuation preceding the extra note. Default value: ( _rem
+% - extranoterightpunct= ^rem the punctuation following the extra note. Default value: ) _rem
+
+% todo i. Declaring Options
+\NewCommandCopy{\lw_iln_var_opt:textmarker}{\lw_iln_tag:Text_marker}
+\NewCommandCopy{\lw_iln_var_opt:morphbreakmarker}{\lw_iln_tag:Morpheme_Break_marker}
+\NewCommandCopy{\lw_iln_var_opt:glossmarker}{\lw_iln_tag:Gloss_marker}
+\NewCommandCopy{\lw_iln_var_opt:partofspeechmarker}{\lw_iln_tag:Part_of_speech_marker}
+\NewCommandCopy{\lw_iln_var_opt:freetranslationmarker}{\lw_iln_tag:Free_translation_marker}
+\NewCommandCopy{\lw_iln_var_opt:literaltranslationmarker}{\lw_iln_tag:Literal_translation_marker}
+\NewCommandCopy{\lw_iln_var_opt:extranotemarker}{\lw_iln_tag:Extra_note_marker}
+\NewCommandCopy{\lw_iln_var_opt:languageinfomarker}{\lw_iln_tag:Language_information_marker}
+\NewCommandCopy{\lw_iln_var_opt:gramjudgmarker}{\lw_iln_tag:Grammaticality_Judgment_marker}
+\NewCommandCopy{\lw_iln_var_opt:referencemarker}{\lw_iln_tag:Reference_marker}
+\NewCommandCopy{\lw_iln_var_opt:contextmarker}{\lw_iln_tag:Context_marker}
+
+\NewDocumentCommand{\lw_iln_var_opt:languageinfopos}{m}{%
+ \IfValueArgTF{#1}{head}{\RenewDocumentCommand{\lw_iln_fun_set:langinfo}{m}{\langinfo/{##1}}}{}
+ \IfValueArgTF{#1}{margin}{\RenewDocumentCommand{\lw_iln_fun_set:langinfo}{m}{\langinfo{##1}}}{}
+}
+
+\NewDocumentCommand{\lw_iln_var_opt:nointerlinear}{m}{%
+ \IfValueArgTF{#1}{true}%
+ {\def\lw_iln_var_num:interlinear_lines{0}}%
+ {\IfValueArgTF{#1}{false}%
+ {\relax}%
+ {\PackageWarning{interlinear}{nointerlinear option possible values: true, false}}%
+ }
+}
+\NewDocumentCommand{\lw_iln_var_opt:contextvoffset}{m}{\setlength{\lw_iln_var_dim:context_voffset}{#1}}
+
+% todo ii. Defining Default values
+
+%\def\lw_iln_var_opt:endchar{par}% possible values: par, lineend, return
+\def\lw_iln_var_opt:linesnumber{2}% possible values: 2, 3, full
+\def\lw_iln_var_num:interlinear_lines{\lw_iln_var_opt:linesnumber}
+% Setting markers
+\let\li\lw_iln_var_opt:languageinfomarker
+\let\rf\lw_iln_var_opt:referencemarker
+\let\gj\lw_iln_var_opt:gramjudgmarker
+\let\tx\lw_iln_var_opt:textmarker
+\let\mb\lw_iln_var_opt:morphbreakmarker
+\let\gl\lw_iln_var_opt:glossmarker
+\let\ps\lw_iln_var_opt:partofspeechmarker
+\let\ft\lw_iln_var_opt:freetranslationmarker
+\let\lt\lw_iln_var_opt:literaltranslationmarker
+\let\nt\lw_iln_var_opt:extranotemarker
+\def\lw_iln_var_opt:extranoteleftpunct#1{\def\lw_iln_var_token:extranote_left_punct{#1}}
+\def\lw_iln_var_opt:extranoterightpunct#1{\def\lw_iln_var_token:extranote_right_punct{#1}}
+
+% Setting formats (only available for interlinear/gloss lines, context name and extra notes)
+\def\lw_iln_var_opt:lineoneformat#1{\renewcommand{\lw_iln_fun_set:line_one_words_format}{#1}}
+\def\lw_iln_var_opt:linetwoformat#1{\renewcommand{\lw_iln_fun_set:line_two_words_format}{#1}}
+\def\lw_iln_var_opt:linethreeformat#1{\renewcommand{\lw_iln_fun_set:line_three_words_format}{#1}}
+\def\lw_iln_var_opt:linefourformat#1{\renewcommand{\lw_iln_fun_set:line_four_words_format}{#1}}
+\def\lw_iln_var_opt:exformat#1{\renewcommand{\lw_iln_fun_format:ex_text}{#1}}
+\def\lw_iln_var_opt:extranoteformat#1{\def\lw_iln_fun_format:extranote{#1}}
+\def\lw_iln_var_opt:contextnameformat#1{\def\lw_iln_fun_format:context_label{#1}}
+% Context label/name
+\def\lw_iln_var_opt:contextname#1{\def\lw_iln_var_name:context{#1}}
+
+% Defining CS for resetting default options (to be called at the begining of interlinear env)% ^rem the \setinterlinearstyle is meant to set globally the options for interlinear env. So don't use optional argument of interlinear env anymore since it will overwrite the values set up with this commands and the new values be considered the default ones. _rem
+\def\lw_iln_fun_reinitialize:interlinear_options{%
+ %\def\lw_iln_var_opt:endchar{par}% possible values: par, lineend, return
+ \def\lw_iln_var_opt:linesnumber{2}% possible values: 2, 3, full
+ % Setting markers
+ \let\li\lw_iln_var_opt:languageinfomarker%
+ \let\rf\lw_iln_var_opt:referencemarker%
+ \let\gj\lw_iln_var_opt:gramjudgmarker%
+ \let\tx\lw_iln_var_opt:textmarker
+ \let\mb\lw_iln_var_opt:morphbreakmarker%
+ \let\gl\lw_iln_var_opt:glossmarker%
+ \let\ps\lw_iln_var_opt:partofspeechmarker%
+ \let\ft\lw_iln_var_opt:freetranslationmarker%
+ \let\lt\lw_iln_var_opt:literaltranslationmarker%
+ \let\nt\lw_iln_var_opt:extranotemarker%
+ % Setting formats (only available for interlinear/gloss lines, context name and extra notes)
+ \lw_iln_var_opt:lineoneformat{\normalfont}%
+ \lw_iln_var_opt:linetwoformat{\normalfont}%
+ \lw_iln_var_opt:linethreeformat{\normalfont}%
+ \lw_iln_var_opt:linefourformat{\normalfont}%
+ \lw_iln_var_opt:exformat{\normalfont}
+ \lw_iln_var_opt:extranoteformat{\normalfont}%
+ \lw_iln_var_opt:contextnameformat{\normalfont}%
+ % Context label/name
+ \lw_iln_var_opt:contextname{Context:}%
+ \lw_iln_var_opt:extranoteleftpunct{{(}}%
+ \lw_iln_var_opt:extranoterightpunct{{)}}%
+ \lw_iln_var_opt:languageinfopos{margin}%
+ \lw_iln_var_opt:nointerlinear{false}%
+ \lw_iln_var_opt:contextvoffset{-1em}
+}
+
+% todo iii. Setting Options
+
+% Setting Ending Character for arguments (not yet available)
+%\define@key{interlinear}{endchar}{%
+ % ^action_name="Setting the value"
+% \def\lw_iln_var_opt:endchar{#1}
+ % _action
+ % ^action_name="Processing the option"
+ %
+ % _action
+%}
+
+% Setting the numbers of interlinear/gloss lines
+\define@key{interlinear}{linesnumber}{%
+ % ^action_name="Setting the value"
+ \def\lw_iln_var_opt:linesnumber{#1}
+ % _action
+}
+\define@key{interlinear}{nointerlinear}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:nointerlinear{#1}
+ % _action
+}
+
+% Setting the markers
+\define@key{interlinear}{textmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:textmarker}}
+\define@key{interlinear}{morphbreakmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:morphbreakmarker}}
+\define@key{interlinear}{glossmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:glossmarker}}
+
+\define@key{interlinear}{partofspeechmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:partofspeechmarker}}
+
+\define@key{interlinear}{freetranslationmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:freetranslationmarker}}
+
+\define@key{interlinear}{literaltranslationmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:literaltranslationmarker}}
+
+\define@key{interlinear}{extranotemarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:extranotemarker}}
+
+\define@key{interlinear}{languageinfomarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:languageinfomarker}}
+
+\define@key{interlinear}{gramjudgmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:gramjudgmarker}}
+
+\define@key{interlinear}{referencemarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:referencemarker}}
+
+\define@key{interlinear}{contextmarker}{%
+ \NewCommandCopy{#1}{\lw_iln_var_opt:contextmarker}}
+
+
+% Setting formats
+\define@key{interlinear}{lineoneformat}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:lineoneformat{#1}
+ % _action
+}
+\define@key{interlinear}{linetwoformat}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:linetwoformat{#1}
+ % _action
+}
+\define@key{interlinear}{linethreeformat}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:linethreeformat{#1}
+ % _action
+}
+\define@key{interlinear}{linefourformat}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:linefourformat{#1}
+ % _action
+}
+\define@key{interlinear}{exformat}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:exformat{#1}
+ % _action
+}
+\define@key{interlinear}{extranoteformat}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:extranoteformat{#1}
+ % _action
+}
+\define@key{interlinear}{contextnameformat}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:contextnameformat{#1}
+ % _action
+}
+
+% Other specifications
+\define@key{interlinear}{contextname}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:contextname{#1}
+ % _action
+}
+\define@key{interlinear}{contextvoffset}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:contextvoffset{#1}
+ % _action
+}
+\define@key{interlinear}{extranoteleftpunct}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:extranoteleftpunct{#1}
+ % _action
+}
+\define@key{interlinear}{extranoterightpunct}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:extranoterightpunct{#1}
+ % _action
+}
+\define@key{interlinear}{languageinfopos}{%
+ % ^action_name="Setting the value"
+ \lw_iln_var_opt:languageinfopos{#1}
+ % _action
+}
+
+\newcommand{\interlinearstyle}[1]{%
+ \setkeys{interlinear}{#1}%
+ \lw_fun_helper:clear{\lw_iln_fun_reinitialize:interlinear_options}
+}
+\def\DeclareInterlinearStyle#1#2{%
+ \expandafter\def\csname lw_iln_var_sty:#1\endcsname{\interlinearstyle{#2}}}
+\def\UseInterlinearStyle#1{%
+ \expandafter\csname lw_iln_var_sty:#1\endcsname}
+\DeclareInterlinearStyle{default}{%
+ linesnumber=2,%
+ lineoneformat=\upshape,%
+ linetwoformat=\normalfont,%
+ linethreeformat=\normalfont,%
+ linefourformat=\normalfont,%
+ contextnameformat=\normalfont,%
+ extranoteformat=\normalfont,%
+ contextname={Context:},%
+ extranoteleftpunct={(},%
+ extranoterightpunct={)}%
+}
+\DeclareInterlinearStyle{nointerlinear}{%
+ nointerlinear=true,%
+ languageinfopos=head,%
+ freetranslationmarker=\ot,%
+ contextvoffset=.5em%
+}
+\DeclareInterlinearStyle{gsr}{%
+ linesnumber=2,%
+ lineoneformat=\itshape,%
+ linetwoformat=\normalfont,%
+ linethreeformat=\normalfont%
+}
+\DeclareInterlinearStyle{gsrnointerlinear}{%
+ nointerlinear=true,%
+ exformat=\itshape,%
+ languageinfopos=head,%
+ freetranslationmarker=\ot,%
+ contextvoffset=.5em%
+}
+
+\UseInterlinearStyle{gsr}% ^rem setting the default style to fit the GSR _rem
+
+\define@key{interlinear}{style}{%
+ % ^action_name="Setting the value"
+ \UseInterlinearStyle{#1}
+ % _action
+}
+
+
+% todo d. Defining Interlinear Env.
+\NewDocumentCommand{\lw_iln_fun_enter:interlinear}{}{\relax}% ^rem no_op command _rem
+\NewDocumentCommand{\lw_iln_fun_exit:interlinear}{}{%
+ \IfValueArgTF{\lw_iln_var_num:interlinear_lines}{0}%
+ {\lw_iln_fun_close:ex_box}%
+ {\lw_iln_fun_make:trans_box%
+ \lw_iln_fun_make:extranote_box%
+ \lw_iln_fun_reinitialize:markers_value}%
+ }
+
+\NewDocumentEnvironment{interlinear}{O{}}%
+ {% ^rem Beginning of the internlinear env _rem
+ \lw_iln_fun_enter:interlinear%
+ \lw_iln_fun_reinitialize:interlinear_options%
+ \setkeys{interlinear}{#1}
+ }%
+ {% ^rem End of the interlinear env _rem
+ \lw_iln_fun_exit:interlinear%
+ }
+
+\makeatother%
+
+% ^action_name="Disabling LingWrit Syntax"
+\switchlwsyntaxoff
+% _action
+% ^action_name="Ending the code"
+\endinput%
+% _action
+
+% _code
+
+% ^_*
+
+% _package
diff --git a/macros/latex/contrib/isosafety/README.md b/macros/latex/contrib/isosafety/README.md
index 5cedddab81..575df1f210 100644
--- a/macros/latex/contrib/isosafety/README.md
+++ b/macros/latex/contrib/isosafety/README.md
@@ -4,6 +4,8 @@ isosafety is a LaTeX package that contains safety colors (ISO 3864) and safety s
Maintainer: BenSt099 (https://github.com/BenSt099/isosafety)
+Version 1.4
+
License: LPPL 1.3c
Note: This is **not** an **official** package from ISO. \ No newline at end of file
diff --git a/macros/latex/contrib/isosafety/doc/isosafety-docs.pdf b/macros/latex/contrib/isosafety/doc/isosafety-docs.pdf
new file mode 100644
index 0000000000..0a5d219a95
--- /dev/null
+++ b/macros/latex/contrib/isosafety/doc/isosafety-docs.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/doc/isosafety-docs.tex b/macros/latex/contrib/isosafety/doc/isosafety-docs.tex
new file mode 100644
index 0000000000..ea2599aa3d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/doc/isosafety-docs.tex
@@ -0,0 +1,178 @@
+\documentclass{article}
+
+\usepackage{xcolor}
+\definecolor{Caution}{HTML}{F9A800}
+\definecolor{Warning}{HTML}{D05D29}
+\definecolor{Prohibition}{HTML}{9B2423}
+\definecolor{Mandatory}{HTML}{005387}
+\definecolor{Rescue}{HTML}{237F52}
+\definecolor{Backgrounds}{HTML}{ECECE7}
+\definecolor{Symbol}{HTML}{2B2B2C}
+\usepackage{array}
+\usepackage{hyperref}
+\usepackage{verbatim}
+\makeatletter
+\newcommand{\verbatimfontfamily}[1]{\def\verbatim@font{#1}}%
+\makeatother
+\usepackage{colortbl}
+\usepackage{geometry}
+\geometry{
+ left=2cm,
+ right=2cm,
+ top=3cm,
+ bottom=3cm
+}
+\usepackage{tcolorbox}
+
+\begin{document}
+
+\begin{center}
+ {\Huge isosafety} \vspace{5mm}
+
+ {\Large Version 1.4}\vspace{5mm}
+
+ {\Large August 31, 2024}\vspace{5mm}
+
+ \href{https://github.com/BenSt099/isosafety}{github.com/BenSt099/isosafety}
+\end{center}\vspace{5mm}
+
+\section{General information}
+
+This is the official documentation of the package \textbf{isosafety}. It provides ISO colors and signs according to the ISO standards
+3864 and 7010. It can be used to create instructions for chemical or physical experiments.\vspace{5mm}
+
+\noindent{\large \textbf{NOTE}}
+
+\noindent This is not an official package from the ISO. All signs are taken from Wikipedia.
+
+\section{Dependencies}
+
+This package has the following dependencies: \texttt{graphicx}, \texttt{xcolor}, \texttt{ifthen}, \texttt{xkeyval}
+
+\section{ISO Colors}
+
+Seven colors are defined which are also used to create the signs: \vspace{5mm}
+
+\renewcommand{\arraystretch}{1.2}
+ \begin{tabular}{|l|l|}
+ \hline
+ \textbf{Name} & \textbf{Colors} \\
+ \hline
+ Caution & \cellcolor{Caution} \\
+ Warning & \cellcolor{Warning} \\
+ Prohibition & \cellcolor{Prohibition} \\
+ Mandatory & \cellcolor{Mandatory} \\
+ Rescue & \cellcolor{Rescue} \\
+ Backgrounds & \cellcolor{Backgrounds} \\
+ Smybol & \cellcolor{Symbol} \\
+ \hline
+\end{tabular}\vspace{5mm}
+
+\noindent How to use: \vspace{3mm}
+
+\verbatimfontfamily{\ttfamily}
+
+\begin{verbatim}
+{\color{Mandatory} \textbf{Text with Mandatory color.}}
+\end{verbatim}\vspace{2mm}
+
+\noindent{\color{Mandatory} \textbf{Text with Mandatory color.}}
+
+\newpage
+
+\section{ISO Signs}
+
+\noindent This section deals with the construction of signs. To begin with, each sign is placed in a category, has a letter and a number: \vspace{5mm}
+
+\renewcommand{\arraystretch}{1.2}
+ \begin{tabular}{lll}
+ \hline
+ Category & Letter(s) & Numbers \\
+ \hline
+ Safe condition & E & (001 - 004, 007 - 070) \\
+ Crescent variant & CV & (003, 004, 009, 010, 011, 012, 013, 027, 028, 029, 064, 067) \\
+ Fire Protection & F & (001 - 019) \\
+ Mandatory & M & (001 - 060) \\
+ Prohibition & P & (001 - 074) \\
+ Warning & W & (001 - 080) \\
+ \hline
+\end{tabular}\vspace{5mm}
+
+\noindent The command to access a sign is:
+
+\begin{tcolorbox}
+ \vspace{3mm}
+ \begin{verbatim}
+ \Isosign{<Letter><Number>}
+ \end{verbatim}
+\end{tcolorbox}
+\vspace{5mm}
+
+\noindent This command constructs a path to a sign in your \TeX Live / Mik\TeX / \ldots $\;$ installation.
+To display a sign, use the following code:
+
+\begin{tcolorbox}
+ \vspace{3mm}
+ \begin{verbatim}
+ %%% Example file
+ \documentclass{article}
+
+ \usepackage{isosafety}
+
+ \usepackage{graphicx}
+
+ \begin{document}
+
+ \includegraphics{\Isosign{F001}}
+
+ \includegraphics[scale=2]{\Isosign{P074}}
+
+ \end{document}
+ \end{verbatim}
+\end{tcolorbox}
+
+\newpage
+
+\section{Known Issue}
+
+\noindent On some systems (mostly Windows), \TeX \hspace{1mm} is not able to find the pdfs properly. Since this is an issue that seems to exist only on certain systems and not all, please use the following
+workaround by providing the fullpath that leads to the installation directory
+of isosafety. This can be done by supplying it through the \textbf{fullpath}-option:
+
+\begin{tcolorbox}
+ \vspace{3mm}
+ \begin{verbatim}
+ %%% Example file
+ \documentclass{article}
+
+ % example path
+ \usepackage[ fullpath = /texlive/2024/texmf-dist/tex/latex/isosafety ]{isosafety}
+
+ \usepackage{graphicx}
+
+ \begin{document}
+
+ \includegraphics{\Isosign{F001}}
+
+ \includegraphics[scale=2]{\Isosign{P074}}
+
+ \end{document}
+ \end{verbatim}
+\end{tcolorbox}
+\vspace{5mm}
+
+\noindent If you are unsure about the path, simply execute
+\begin{verbatim}
+ kpsewhich isosafety.sty
+\end{verbatim}\vspace{3mm}
+
+\noindent in a terminal and a path will be returned. The path that is given in the example is the typical path on most systems.
+\vspace{5mm}
+
+\noindent\textbf{NOTE}: On Windows, the path should also be given with foreslashes (just like in the example). \\
+
+\noindent\textbf{NOTE}: The last directory in the path \textit{does not} end with a foreslash (just like in the example). \\
+
+\noindent\textbf{NOTE}: For a complete overview of the available signs, take a look at \href{https://en.wikipedia.org/wiki/ISO_7010}{Wikipedia}.
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/isosafety/isosafety.dtx b/macros/latex/contrib/isosafety/isosafety.dtx
deleted file mode 100644
index da754c4932..0000000000
--- a/macros/latex/contrib/isosafety/isosafety.dtx
+++ /dev/null
@@ -1,143 +0,0 @@
-% \iffalse meta-comment
-%
-% Copyright (C) 2023 by BenSt099
-% -------------------------------------------------------
-%
-% This file may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in:
-%
-% http://www.latex-project.org/lppl.txt
-%
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% \fi
-%
-% \iffalse
-%<*driver>
-\ProvidesFile{isosafety.dtx}
-%</driver>
-%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-%<package>\ProvidesPackage{isosafety}
-%<*package>
- [2023/11/09 v1.1 ISO Safety Colors And Safety Signs]
-
-\RequirePackage{graphicx}
-\RequirePackage{xcolor}
-%</package>
-%
-%<*driver>
-\documentclass{ltxdoc}
-\usepackage{isosafety}[2023/11/09]
-\usepackage{hyperref}
-\EnableCrossrefs
-\CodelineIndex
-\RecordChanges
-\begin{document}
- \DocInput{isosafety.dtx}
- \PrintChanges
- \PrintIndex
-\end{document}
-%</driver>
-% \fi
-%
-%
-% \changes{v1.1}{2023/11/09}{Beta version}
-%
-% \GetFileInfo{isosafety.sty}
-%
-% \DoNotIndex{\newcommand,\newenvironment}
-%
-%
-% \title{The \textsf{isosafety} package\thanks{This document
-% corresponds to \textsf{isosafety}~\fileversion, dated \filedate.}}
-% \author{BenSt099 \\ \texttt{github.com/BenSt099}}
-%
-% \maketitle
-%
-% \section{Introduction}
-%
-% This package provides ISO colors and ISO signs according to the ISO standards 3864 and 7010.
-% It can be useful when creating instructions for chemical or physical experiments.
-%
-% \section{Dependencies}
-%
-% The package has the following dependencies: \texttt{graphicx}, \texttt{xcolor}.
-%
-%
-% \section{Usage}
-%
-% \subsection{ISO colors}
-%
-% There are 6 colors that are also used in the signs: \vspace*{5mm}
-%
-% \begin{tabular}{cc}
-% Warning & {\color{Warning} Warning Color} \\
-% Prohibition & {\color{Prohibition} Prohibition Color} \\
-% Mandatory & {\color{Mandatory} Mandatory Color} \\
-% Rescue & {\color{Rescue} Rescue Color} \\
-% Backgrounds & {\color{Backgrounds} Backgrounds Color} \\
-% Symbol & {\color{Symbol} Symbol Color} \\
-% \end{tabular}
-%
-% \subsection{Colors - Example}
-%
-% \begin{verbatim}
-% {\color{Mandatory} Text with mandatory color}
-% \end{verbatim}
-%
-% \subsection{ISO signs}
-%
-% The signs from ISO are placed in a category, have a letter and a number
-%
-% \begin{itemize}
-% \item Safe condition - Letter E (001 - 070)
-% \item Crescent variant - CV (003, 004, 009, 010, 011, 012, 013, 027, 028, 029, 064, 067)
-% \item Fire Protection - Letter F (001 - 019)
-% \item Mandatory - Letter M (001 - 060)
-% \item Prohibition - Letter P (001 - 074)
-% \item Warning - Letter W (001 - 080)
-% \end{itemize}
-%
-% The command to access these signs has the following syntax:
-%
-% \begin{verbatim}
-% \Isosign{{Letter}{Number}}
-% \end{verbatim}
-%
-% \subsection{Signs - Example}
-%
-% Imagine you want to put the sign of a fire extinguisher in your document.
-% Use the following command:
-%
-% \begin{verbatim}
-% \includegraphics{\Isosign{F001}}
-% \end{verbatim}
-%
-% \includegraphics{\Isosign{F001}}
-% \vspace*{5mm}
-%
-% \noindent For an overview, take a look at \href{https://en.wikipedia.org/wiki/ISO_7010}{Wikipedia}
-%
-% \StopEventually{}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\definecolor{Warning}{HTML}{F9A800}
-\definecolor{Prohibition}{HTML}{9B2423}
-\definecolor{Mandatory}{HTML}{005387}
-\definecolor{Rescue}{HTML}{237F52}
-\definecolor{Backgrounds}{HTML}{ECECE7}
-\definecolor{Symbol}{HTML}{2B2B2C}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand{\Isosign}[1]{isosafety-pdfs/ISO_7010_#1.pdf}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \Finale
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/isosafety/isosafety.pdf b/macros/latex/contrib/isosafety/isosafety.pdf
deleted file mode 100644
index 09d630c77a..0000000000
--- a/macros/latex/contrib/isosafety/isosafety.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV003.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV003.pdf
index c3671853cc..c3671853cc 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV003.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV003.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV004.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV004.pdf
index 426766af28..426766af28 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV004.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV004.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV009.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV009.pdf
index 4371233c53..4371233c53 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV009.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV009.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV010.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV010.pdf
index 4f7c7b0c4e..4f7c7b0c4e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV010.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV010.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV011.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV011.pdf
index b53137946c..b53137946c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV011.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV011.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV012.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV012.pdf
index ee3d79d2fe..ee3d79d2fe 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV012.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV012.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV013.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV013.pdf
index 54a7ef44db..54a7ef44db 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV013.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV013.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV027.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV027.pdf
index c2c5f6e332..c2c5f6e332 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV027.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV027.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV028.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV028.pdf
index 005109c5c8..005109c5c8 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV028.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV028.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV029.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV029.pdf
index 070e7a2743..070e7a2743 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV029.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV029.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV064.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV064.pdf
index 9ef30ac6e6..9ef30ac6e6 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV064.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV064.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV067.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV067.pdf
index d0e6340114..d0e6340114 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_CV067.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_CV067.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E001.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E001.pdf
index abc60c2691..abc60c2691 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E001.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E001.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E002.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E002.pdf
index fbe80ce3f8..fbe80ce3f8 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E002.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E002.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E003.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E003.pdf
index 21dfafc605..4863d6ec07 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E003.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E003.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E004.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E004.pdf
index 3663147e2e..3663147e2e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E004.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E004.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E007.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E007.pdf
index cd21e70dc4..cd21e70dc4 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E007.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E007.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E008.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E008.pdf
index 9d651b8d9e..9d651b8d9e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E008.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E008.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E009.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E009.pdf
index 93822c975e..93822c975e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E009.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E009.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E010.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E010.pdf
index ef0b21d588..ef0b21d588 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E010.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E010.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E011.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E011.pdf
index 127667563d..127667563d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E011.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E011.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E012.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E012.pdf
index 98cb2bd8b4..98cb2bd8b4 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E012.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E012.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E013.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E013.pdf
index 0d89ed3065..0d89ed3065 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E013.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E013.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E014.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E014.pdf
index 0a9e382903..0a9e382903 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E014.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E014.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E015.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E015.pdf
index d8e8f0e401..d8e8f0e401 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E015.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E015.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E016.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E016.pdf
index 06065e969e..06065e969e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E016.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E016.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E017.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E017.pdf
index fc1ca1bdf0..fc1ca1bdf0 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E017.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E017.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E018.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E018.pdf
index 4b05b96f89..4b05b96f89 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E018.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E018.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E019.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E019.pdf
index 45fe98dcd7..45fe98dcd7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E019.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E019.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E020.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E020.pdf
index 7b85394d63..7b85394d63 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E020.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E020.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E021.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E021.pdf
index 187694547c..187694547c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E021.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E021.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E022.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E022.pdf
index 2e772aa41a..2e772aa41a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E022.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E022.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E023.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E023.pdf
index 9a14e4d901..9a14e4d901 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E023.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E023.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E024.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E024.pdf
index 3fefa8edfd..3fefa8edfd 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E024.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E024.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E025.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E025.pdf
index 026668d438..026668d438 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E025.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E025.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E026.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E026.pdf
index 3c9979f590..3c9979f590 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E026.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E026.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E027.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E027.pdf
index fb532c645c..fb532c645c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E027.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E027.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E028.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E028.pdf
index affca9c7f5..affca9c7f5 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E028.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E028.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E029.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E029.pdf
index 7faeee6464..7faeee6464 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E029.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E029.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E030.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E030.pdf
index cf1a93fe95..cf1a93fe95 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E030.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E030.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E031.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E031.pdf
index 1b8b8f3b7c..1b8b8f3b7c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E031.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E031.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E032.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E032.pdf
index b70eefa505..b70eefa505 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E032.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E032.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E033.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E033.pdf
index a49b3fe4bf..a49b3fe4bf 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E033.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E033.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E034.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E034.pdf
index 44341bd96b..44341bd96b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E034.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E034.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E035.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E035.pdf
index c79abaa600..c79abaa600 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E035.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E035.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E036.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E036.pdf
index 0bdad717ba..0bdad717ba 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E036.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E036.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E037.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E037.pdf
index 65d6a6f2f2..65d6a6f2f2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E037.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E037.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E038.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E038.pdf
index a99e0485f3..a99e0485f3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E038.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E038.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E039.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E039.pdf
index b8247de081..b8247de081 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E039.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E039.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E040.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E040.pdf
index f49aabdf1e..f49aabdf1e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E040.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E040.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E041.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E041.pdf
index 9cfa31db6c..9cfa31db6c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E041.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E041.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E042.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E042.pdf
index 917e764de5..917e764de5 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E042.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E042.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E043.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E043.pdf
index 7b126756d4..7b126756d4 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E043.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E043.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E044.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E044.pdf
index 8049c34a95..8049c34a95 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E044.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E044.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E045.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E045.pdf
index 7f57b529fe..7f57b529fe 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E045.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E045.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E046.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E046.pdf
index 3af4a0a9b9..3af4a0a9b9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E046.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E046.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E047.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E047.pdf
index 823f7704fe..823f7704fe 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E047.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E047.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E048.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E048.pdf
index 2cd85b1273..2cd85b1273 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E048.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E048.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E049.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E049.pdf
index 67ae74aeb9..67ae74aeb9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E049.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E049.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E050.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E050.pdf
index 1c0120948d..1c0120948d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E050.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E050.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E051.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E051.pdf
index 9ac16abe7e..9ac16abe7e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E051.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E051.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E052.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E052.pdf
index 057a6590ad..057a6590ad 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E052.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E052.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E053.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E053.pdf
index b050874db9..b050874db9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E053.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E053.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E054.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E054.pdf
index f4de9c9b1f..f4de9c9b1f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E054.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E054.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E055.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E055.pdf
index a05639bfd2..a05639bfd2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E055.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E055.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E056.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E056.pdf
index 015f18e06d..015f18e06d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E056.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E056.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E057.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E057.pdf
index c3da1ac56b..c3da1ac56b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E057.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E057.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E058.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E058.pdf
index fac59cd693..fac59cd693 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E058.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E058.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E059.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E059.pdf
index 45a8ae2bd2..45a8ae2bd2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E059.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E059.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E060.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E060.pdf
index 7a0e488172..7a0e488172 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E060.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E060.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E061.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E061.pdf
index 2e3b5992b3..2e3b5992b3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E061.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E061.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E062.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E062.pdf
index 69fb85f956..69fb85f956 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E062.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E062.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E063.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E063.pdf
index 5eea8873cc..5eea8873cc 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E063.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E063.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E064.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E064.pdf
index ad4fdc7034..ad4fdc7034 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E064.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E064.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E065.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E065.pdf
index 60400eaa5e..60400eaa5e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E065.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E065.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E067.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E067.pdf
index 2784052b1b..2784052b1b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E067.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E067.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E068.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E068.pdf
index 0d74c205c8..0d74c205c8 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E068.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E068.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E069.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E069.pdf
index b5e6b2c220..b5e6b2c220 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E069.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E069.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E070.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E070.pdf
index 7554106d64..7554106d64 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_E070.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_E070.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F001.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F001.pdf
index 349878fd5f..349878fd5f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F001.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F001.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F002.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F002.pdf
index 2ba7a82fbc..2ba7a82fbc 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F002.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F002.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F003.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F003.pdf
index 54b6f5da2c..54b6f5da2c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F003.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F003.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F004.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F004.pdf
index ed273764db..ed273764db 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F004.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F004.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F005.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F005.pdf
index 1e8a6103e0..1e8a6103e0 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F005.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F005.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F006.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F006.pdf
index c9f1f7bccb..c9f1f7bccb 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F006.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F006.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F007.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F007.pdf
index b0e5f32cbe..b0e5f32cbe 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F007.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F007.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F008.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F008.pdf
index ba9cfa7c4b..ba9cfa7c4b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F008.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F008.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F009.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F009.pdf
index cc4b7f52b0..cc4b7f52b0 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F009.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F009.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F010.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F010.pdf
index 785c5f9122..785c5f9122 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F010.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F010.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F011.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F011.pdf
index 12ff257deb..12ff257deb 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F011.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F011.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F012.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F012.pdf
index ddd5706419..ddd5706419 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F012.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F012.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F013.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F013.pdf
index 2772821d84..2772821d84 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F013.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F013.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F014.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F014.pdf
index 2aaf0826af..2aaf0826af 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F014.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F014.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F015.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F015.pdf
index cf3ae1c46f..cf3ae1c46f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F015.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F015.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F016.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F016.pdf
index 06ff3352a3..06ff3352a3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F016.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F016.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F017.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F017.pdf
index c9a67b8129..c9a67b8129 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F017.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F017.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F018.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F018.pdf
index 57aa49d669..57aa49d669 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F018.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F018.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F019.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F019.pdf
index a331b56a36..a331b56a36 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_F019.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_F019.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M001.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M001.pdf
index bf8ac9665d..bf8ac9665d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M001.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M001.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M002.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M002.pdf
index 6fe904c927..6fe904c927 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M002.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M002.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M003.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M003.pdf
index caaddd06b5..caaddd06b5 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M003.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M003.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M004.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M004.pdf
index 28795830dc..28795830dc 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M004.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M004.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M005.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M005.pdf
index 56aaa82124..d3f23bd662 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M005.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M005.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M006.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M006.pdf
index 5da66c41a2..5da66c41a2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M006.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M006.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M007.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M007.pdf
index 5cc9f1a019..5cc9f1a019 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M007.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M007.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M008.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M008.pdf
index e8de5ffce9..e8de5ffce9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M008.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M008.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M009.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M009.pdf
index c915a508c2..c915a508c2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M009.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M009.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M010.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M010.pdf
index 90334f320f..90334f320f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M010.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M010.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M011.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M011.pdf
index 795558d1b5..795558d1b5 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M011.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M011.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M012.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M012.pdf
index 33f20feb1a..33f20feb1a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M012.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M012.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M013.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M013.pdf
index a9133b9fbe..a9133b9fbe 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M013.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M013.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M014.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M014.pdf
index 8731ca26ff..8731ca26ff 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M014.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M014.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M015.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M015.pdf
index 1e0e1991ba..1e0e1991ba 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M015.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M015.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M016.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M016.pdf
index c301799f8c..c301799f8c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M016.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M016.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M017.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M017.pdf
index 403e4af957..403e4af957 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M017.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M017.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M018.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M018.pdf
index c1684c5612..c1684c5612 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M018.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M018.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M019.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M019.pdf
index 899dc343f7..899dc343f7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M019.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M019.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M020.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M020.pdf
index a05f2f9c28..a05f2f9c28 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M020.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M020.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M021.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M021.pdf
index e8e9b4444b..e8e9b4444b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M021.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M021.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M022.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M022.pdf
index e8c5b7be31..e8c5b7be31 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M022.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M022.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M023.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M023.pdf
index 422ada6ac3..422ada6ac3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M023.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M023.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M024.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M024.pdf
index 48cf114099..48cf114099 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M024.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M024.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M025.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M025.pdf
index 95cacc24f2..95cacc24f2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M025.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M025.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M026.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M026.pdf
index 96d5a96820..96d5a96820 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M026.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M026.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M027.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M027.pdf
index 57ff5fc421..57ff5fc421 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M027.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M027.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M028.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M028.pdf
index 24fb157422..24fb157422 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M028.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M028.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M029.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M029.pdf
index 8c0888c998..8c0888c998 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M029.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M029.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M030.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M030.pdf
index b23dff04e0..b23dff04e0 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M030.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M030.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M031.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M031.pdf
index 58ecb0cda8..58ecb0cda8 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M031.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M031.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M032.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M032.pdf
index 7fd3c279dc..7fd3c279dc 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M032.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M032.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M033.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M033.pdf
index 5800fc4b44..5800fc4b44 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M033.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M033.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M034.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M034.pdf
index aed2ce3967..aed2ce3967 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M034.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M034.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M035.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M035.pdf
index d419f6aeeb..d419f6aeeb 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M035.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M035.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M036.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M036.pdf
index b3c84ef022..b3c84ef022 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M036.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M036.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M037.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M037.pdf
index a8088da27f..a8088da27f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M037.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M037.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M038.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M038.pdf
index 32f5f03eab..32f5f03eab 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M038.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M038.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M039.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M039.pdf
index bbe60d2b2c..bbe60d2b2c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M039.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M039.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M040.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M040.pdf
index c5be6a8394..c5be6a8394 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M040.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M040.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M041.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M041.pdf
index 7f6c9cac5b..7f6c9cac5b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M041.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M041.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M042.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M042.pdf
index 240f54561f..240f54561f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M042.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M042.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M043.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M043.pdf
index 3cec333117..3cec333117 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M043.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M043.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M044.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M044.pdf
index c4e9b90c42..c4e9b90c42 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M044.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M044.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M045.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M045.pdf
index e18044d5f1..e18044d5f1 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M045.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M045.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M046.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M046.pdf
index 1c7dc014f0..1c7dc014f0 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M046.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M046.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M047.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M047.pdf
index 96c4433dcb..96c4433dcb 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M047.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M047.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M048.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M048.pdf
index a738ce3b0c..a738ce3b0c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M048.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M048.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M049.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M049.pdf
index 913fe8388a..913fe8388a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M049.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M049.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M050.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M050.pdf
index c2e3ba295e..c2e3ba295e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M050.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M050.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M051.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M051.pdf
index 841dcfc799..841dcfc799 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M051.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M051.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M052.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M052.pdf
index 5d9fb414b9..5d9fb414b9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M052.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M052.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M053.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M053.pdf
index 3124ec47c6..3124ec47c6 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M053.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M053.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M054.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M054.pdf
index e146dadce7..e146dadce7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M054.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M054.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M055.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M055.pdf
index b744fbd6bd..b744fbd6bd 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M055.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M055.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M056.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M056.pdf
index 42b1a3d475..42b1a3d475 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M056.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M056.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M057.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M057.pdf
index 8a0fa9e817..8a0fa9e817 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M057.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M057.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M058.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M058.pdf
index d16a09083f..d16a09083f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M058.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M058.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M059.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M059.pdf
index f97c260b8a..f97c260b8a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M059.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M059.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M060.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M060.pdf
index 373633588c..373633588c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_M060.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_M060.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P001.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P001.pdf
index 4204639a36..4204639a36 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P001.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P001.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P002.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P002.pdf
index cbff0bd974..cbff0bd974 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P002.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P002.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P003.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P003.pdf
index 3d70a21875..3d70a21875 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P003.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P003.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P004.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P004.pdf
index 7557ddb6b3..7557ddb6b3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P004.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P004.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P005.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P005.pdf
index 47f4f06543..47f4f06543 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P005.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P005.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P006.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P006.pdf
index d81b6c5e1a..d81b6c5e1a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P006.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P006.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P007.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P007.pdf
index 7ef93afe83..7ef93afe83 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P007.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P007.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P008.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P008.pdf
index 16b5b94fbb..16b5b94fbb 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P008.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P008.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P009.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P009.pdf
index 8aedd6064b..8aedd6064b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P009.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P009.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P010.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P010.pdf
index 494c68d1df..494c68d1df 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P010.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P010.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P011.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P011.pdf
index 42d5f63dde..42d5f63dde 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P011.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P011.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P012.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P012.pdf
index b196406cb8..b196406cb8 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P012.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P012.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P013.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P013.pdf
index 6f94e89b1f..6f94e89b1f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P013.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P013.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P014.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P014.pdf
index 40f30b66a3..40f30b66a3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P014.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P014.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P015.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P015.pdf
index 7de907b497..7de907b497 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P015.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P015.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P016.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P016.pdf
index 26f222085e..26f222085e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P016.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P016.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P017.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P017.pdf
index 07dc17d10e..07dc17d10e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P017.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P017.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P018.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P018.pdf
index 1649aaaed1..1649aaaed1 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P018.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P018.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P019.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P019.pdf
index 567db7aa6f..567db7aa6f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P019.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P019.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P020.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P020.pdf
index 1a93bf6a57..1a93bf6a57 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P020.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P020.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P021.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P021.pdf
index 52a3486198..52a3486198 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P021.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P021.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P022.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P022.pdf
index b3221c84d7..b3221c84d7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P022.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P022.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P023.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P023.pdf
index bc61ff3957..bc61ff3957 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P023.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P023.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P024.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P024.pdf
index cfdcc65602..cfdcc65602 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P024.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P024.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P025.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P025.pdf
index 0f63052829..0f63052829 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P025.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P025.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P026.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P026.pdf
index 14622fd474..14622fd474 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P026.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P026.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P027.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P027.pdf
index 287fa92485..287fa92485 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P027.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P027.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P028.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P028.pdf
index fbc0e109ac..fbc0e109ac 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P028.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P028.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P029.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P029.pdf
index cb3e49f544..cb3e49f544 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P029.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P029.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P030.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P030.pdf
index 021c0b9795..021c0b9795 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P030.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P030.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P031.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P031.pdf
index 421ee50f92..421ee50f92 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P031.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P031.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P032.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P032.pdf
index 584f20d8e7..584f20d8e7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P032.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P032.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P033.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P033.pdf
index f7d6e8f944..f7d6e8f944 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P033.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P033.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P034.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P034.pdf
index d8ee13c5fd..d8ee13c5fd 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P034.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P034.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P035.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P035.pdf
index d42d57242c..d42d57242c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P035.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P035.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P036.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P036.pdf
index 555a6afe24..555a6afe24 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P036.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P036.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P037.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P037.pdf
index 6a6563ca97..6a6563ca97 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P037.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P037.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P038.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P038.pdf
index ddaf05f9ed..ddaf05f9ed 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P038.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P038.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P039.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P039.pdf
index 0a41c0d8b6..0a41c0d8b6 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P039.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P039.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P040.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P040.pdf
index bfeec12e1e..bfeec12e1e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P040.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P040.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P041.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P041.pdf
index 6da07255e5..6da07255e5 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P041.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P041.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P042.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P042.pdf
index 8a77221585..8a77221585 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P042.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P042.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P043.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P043.pdf
index a4e069ba9a..a4e069ba9a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P043.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P043.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P044.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P044.pdf
index 81cf8f7189..81cf8f7189 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P044.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P044.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P045.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P045.pdf
index 16726e7cf2..16726e7cf2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P045.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P045.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P046.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P046.pdf
index 320c0f6c5d..320c0f6c5d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P046.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P046.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P047.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P047.pdf
index de38a973bd..de38a973bd 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P047.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P047.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P048.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P048.pdf
index 30b9137f54..30b9137f54 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P048.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P048.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P049.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P049.pdf
index e7ebbd1202..e7ebbd1202 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P049.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P049.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P050.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P050.pdf
index c0cb30329d..c0cb30329d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P050.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P050.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P051.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P051.pdf
index c4f9032953..c4f9032953 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P051.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P051.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P052.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P052.pdf
index 1aa30711be..1aa30711be 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P052.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P052.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P053.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P053.pdf
index 5e75ac56a2..5e75ac56a2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P053.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P053.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P054.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P054.pdf
index 39fbd4b6af..39fbd4b6af 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P054.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P054.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P055.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P055.pdf
index 561d15386b..561d15386b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P055.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P055.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P056.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P056.pdf
index 2c984d0b7e..2c984d0b7e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P056.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P056.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P057.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P057.pdf
index 886365621e..886365621e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P057.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P057.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P058.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P058.pdf
index e82cdecead..e82cdecead 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P058.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P058.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P059.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P059.pdf
index 46a6dc0b1c..46a6dc0b1c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P059.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P059.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P060.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P060.pdf
index b152234d17..b152234d17 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P060.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P060.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P061.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P061.pdf
index 04327846dd..04327846dd 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P061.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P061.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P062.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P062.pdf
index a3a86b1252..a3a86b1252 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P062.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P062.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P063.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P063.pdf
index bc4e823a18..bc4e823a18 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P063.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P063.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P064.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P064.pdf
index feaf4db700..feaf4db700 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P064.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P064.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P065.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P065.pdf
index f0a3cf25b6..f0a3cf25b6 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P065.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P065.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P066.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P066.pdf
index ca0ad4180a..ca0ad4180a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P066.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P066.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P067.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P067.pdf
index f8de06dbd8..f8de06dbd8 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P067.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P067.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P068.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P068.pdf
index 9de356ab4d..9de356ab4d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P068.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P068.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P069.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P069.pdf
index 93c6e07dd2..93c6e07dd2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P069.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P069.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P070.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P070.pdf
index 34b973fa36..34b973fa36 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P070.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P070.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P071.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P071.pdf
index 882eec6982..882eec6982 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P071.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P071.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P072.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P072.pdf
index 85c8329f27..85c8329f27 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P072.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P072.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P073.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P073.pdf
index a70fc01368..a70fc01368 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P073.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P073.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P074.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P074.pdf
index b0dcdbdd31..b0dcdbdd31 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P074.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P074.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P075.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P075.pdf
index dbd0eece86..dbd0eece86 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_P075.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_P075.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W001.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W001.pdf
index 93e4ff1096..93e4ff1096 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W001.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W001.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W002.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W002.pdf
index cd4e5efe71..cd4e5efe71 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W002.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W002.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W003.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W003.pdf
index e9718ec0b9..e9718ec0b9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W003.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W003.pdf
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W004.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W004.pdf
index 52821d3ee2..52821d3ee2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W004.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W004.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W005.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W005.pdf
index e0af280633..e0af280633 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W005.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W005.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W006.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W006.pdf
index 5a8cd08340..5a8cd08340 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W006.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W006.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W007.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W007.pdf
index 5aee6b6eeb..5aee6b6eeb 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W007.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W007.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W008.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W008.pdf
index 2279b4802e..2279b4802e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W008.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W008.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W009.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W009.pdf
index 9dda0f4ee9..9dda0f4ee9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W009.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W009.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W010.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W010.pdf
index 8a70dd40fc..8a70dd40fc 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W010.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W010.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W011.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W011.pdf
index 5feeebec8d..5feeebec8d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W011.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W011.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W012.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W012.pdf
index fed0023c08..6edd5cce7c 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W012.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W012.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W013.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W013.pdf
index 22e6c03d15..22e6c03d15 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W013.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W013.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W014.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W014.pdf
index 0ffc581a81..0ffc581a81 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W014.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W014.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W015.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W015.pdf
index 0a8f3c6a98..0a8f3c6a98 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W015.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W015.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W016.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W016.pdf
index 1635032be1..1635032be1 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W016.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W016.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W017.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W017.pdf
index e7f3eaa7e3..e7f3eaa7e3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W017.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W017.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W018.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W018.pdf
index f56cfa12f4..f56cfa12f4 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W018.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W018.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W019.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W019.pdf
index 37445e7a28..37445e7a28 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W019.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W019.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W020.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W020.pdf
index 1e06b95eab..1e06b95eab 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W020.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W020.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W021.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W021.pdf
index d60016dc80..d60016dc80 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W021.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W021.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W022.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W022.pdf
index bf13211210..bf13211210 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W022.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W022.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W023.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W023.pdf
index d7b080a243..d7b080a243 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W023.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W023.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W024.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W024.pdf
index c1148bf3e6..c1148bf3e6 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W024.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W024.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W025.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W025.pdf
index 1f94d88dde..1f94d88dde 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W025.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W025.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W026.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W026.pdf
index b51f591e19..b51f591e19 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W026.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W026.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W027.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W027.pdf
index 299c473c61..299c473c61 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W027.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W027.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W028.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W028.pdf
index 06a2a1730e..06a2a1730e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W028.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W028.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W029.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W029.pdf
index b26c8d242e..b26c8d242e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W029.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W029.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W030.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W030.pdf
index 6991d20397..6991d20397 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W030.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W030.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W031.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W031.pdf
index 3b04fca386..3b04fca386 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W031.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W031.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W032.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W032.pdf
index 874d5d1856..874d5d1856 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W032.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W032.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W033.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W033.pdf
index 954c565b07..954c565b07 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W033.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W033.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W034.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W034.pdf
index e05340bf57..e05340bf57 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W034.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W034.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W035.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W035.pdf
index b519520de2..b519520de2 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W035.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W035.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W036.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W036.pdf
index 8b3c75efa4..8b3c75efa4 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W036.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W036.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W037.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W037.pdf
index 82fdb9e25a..82fdb9e25a 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W037.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W037.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W038.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W038.pdf
index 20d7fecebf..20d7fecebf 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W038.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W038.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W039.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W039.pdf
index 1c99515ed9..1c99515ed9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W039.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W039.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W040.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W040.pdf
index 3941b25097..3941b25097 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W040.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W040.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W041.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W041.pdf
index c6416f08ea..c6416f08ea 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W041.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W041.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W042.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W042.pdf
index 9321af66db..9321af66db 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W042.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W042.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W043.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W043.pdf
index 55ead51620..55ead51620 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W043.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W043.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W044.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W044.pdf
index e262f16d1d..e262f16d1d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W044.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W044.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W045.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W045.pdf
index e6d68cba29..e6d68cba29 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W045.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W045.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W046.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W046.pdf
index d1d0f0b781..d1d0f0b781 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W046.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W046.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W047.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W047.pdf
index 10b71d56d7..10b71d56d7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W047.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W047.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W048.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W048.pdf
index ed0b84886f..ed0b84886f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W048.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W048.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W049.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W049.pdf
index 814955db23..814955db23 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W049.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W049.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W050.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W050.pdf
index c2f4bcb9b8..c2f4bcb9b8 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W050.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W050.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W051.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W051.pdf
index b0e7c09dc4..b0e7c09dc4 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W051.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W051.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W052.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W052.pdf
index 9ad59817a5..9ad59817a5 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W052.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W052.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W053.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W053.pdf
index 8013e0e966..8013e0e966 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W053.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W053.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W054.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W054.pdf
index 2b3f5323d9..2b3f5323d9 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W054.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W054.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W055.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W055.pdf
index c61a359de6..c61a359de6 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W055.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W055.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W056.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W056.pdf
index 6f3b502881..6f3b502881 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W056.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W056.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W057.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W057.pdf
index a4e2e379cc..a4e2e379cc 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W057.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W057.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W058.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W058.pdf
index a6cc2f357e..a6cc2f357e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W058.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W058.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W059.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W059.pdf
index 03037b8f9d..03037b8f9d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W059.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W059.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W060.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W060.pdf
index 4947b7f529..4947b7f529 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W060.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W060.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W061.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W061.pdf
index fa0dbad4ee..fa0dbad4ee 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W061.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W061.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W062.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W062.pdf
index 38168b8b90..38168b8b90 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W062.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W062.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W063.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W063.pdf
index 0bc81af20e..0bc81af20e 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W063.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W063.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W064.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W064.pdf
index 75f8625838..75f8625838 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W064.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W064.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W065.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W065.pdf
index f13b05c99f..f13b05c99f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W065.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W065.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W066.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W066.pdf
index 92afceab2f..92afceab2f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W066.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W066.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W067.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W067.pdf
index d891a4bdc7..d891a4bdc7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W067.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W067.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W068.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W068.pdf
index 0da984a06f..0da984a06f 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W068.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W068.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W069.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W069.pdf
index 494ab14531..494ab14531 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W069.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W069.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W070.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W070.pdf
index 4cd988cba7..4cd988cba7 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W070.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W070.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W071.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W071.pdf
index 0e55001c94..0e55001c94 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W071.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W071.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W072.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W072.pdf
index 7b8a9c0839..7b8a9c0839 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W072.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W072.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W073.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W073.pdf
index 0f6f5fcd9b..0f6f5fcd9b 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W073.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W073.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W074.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W074.pdf
index b6ec9d92f3..b6ec9d92f3 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W074.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W074.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W075.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W075.pdf
index 6e8b28d276..6e8b28d276 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W075.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W075.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W076.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W076.pdf
index 32709b9144..32709b9144 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W076.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W076.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W077.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W077.pdf
index db62ce47be..db62ce47be 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W077.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W077.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W078.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W078.pdf
index 867eb1b6c1..867eb1b6c1 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W078.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W078.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W079.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W079.pdf
index 78e325ce3d..78e325ce3d 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W079.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W079.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W080.pdf b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W080.pdf
index b0b0b76b90..b0b0b76b90 100644
--- a/macros/latex/contrib/isosafety/isosafety-pdfs/ISO_7010_W080.pdf
+++ b/macros/latex/contrib/isosafety/tex/isosafety-pdfs/ISO_7010_W080.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/tex/isosafety.sty b/macros/latex/contrib/isosafety/tex/isosafety.sty
new file mode 100644
index 0000000000..40cf307628
--- /dev/null
+++ b/macros/latex/contrib/isosafety/tex/isosafety.sty
@@ -0,0 +1,47 @@
+%% Copyright (C) 2024 by BenSt099
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+\ProvidesPackage{isosafety}
+[2024/08/31 v1.4 ISO Safety Colors And Safety Signs]
+
+\RequirePackage{graphicx}
+\RequirePackage{xcolor}
+\RequirePackage{ifthen}
+\RequirePackage{xkeyval}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\definecolor{Caution}{HTML}{F9A800}
+\definecolor{Warning}{HTML}{D05D29}
+\definecolor{Prohibition}{HTML}{9B2423}
+\definecolor{Mandatory}{HTML}{005387}
+\definecolor{Rescue}{HTML}{237F52}
+\definecolor{Backgrounds}{HTML}{ECECE7}
+\definecolor{Symbol}{HTML}{2B2B2C}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\isosafetypath}{false}
+\DeclareOptionX{fullpath}{\renewcommand{\isosafetypath}{#1}}
+\ProcessOptionsX\relax
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifthenelse{\equal{\isosafetypath}{false}}
+{\newcommand{\Isosign}[1]{/isosafety-pdfs/ISO_7010_#1.pdf}}
+{\newcommand{\Isosign}[1]{\isosafetypath /isosafety-pdfs/ISO_7010_#1.pdf}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%
+%% End of file `isosafety.sty'. \ No newline at end of file
diff --git a/macros/latex/contrib/joinbox/README.md b/macros/latex/contrib/joinbox/README.md
index 4b3b04cae9..e0bbb25ce0 100644
--- a/macros/latex/contrib/joinbox/README.md
+++ b/macros/latex/contrib/joinbox/README.md
@@ -35,7 +35,7 @@ joinbox 盒子拼接宏包
Copyright and Licence
---------------------
- Copyright (C) 2020-2023 by Nan Geng <nangeng@nwafu.edu.cn>
+ Copyright (C) 2020-2024 by Nan Geng <nangeng@nwafu.edu.cn>
----------------------------------------------------------------------
This work may be distributed and/or modified under the
diff --git a/macros/latex/contrib/joinbox/joinbox.pdf b/macros/latex/contrib/joinbox/joinbox.pdf
index 0e1fd27006..cbdbcacb81 100644
--- a/macros/latex/contrib/joinbox/joinbox.pdf
+++ b/macros/latex/contrib/joinbox/joinbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/joinbox/joinbox.sty b/macros/latex/contrib/joinbox/joinbox.sty
index 06077c23f1..68e54c3a20 100644
--- a/macros/latex/contrib/joinbox/joinbox.sty
+++ b/macros/latex/contrib/joinbox/joinbox.sty
@@ -7,7 +7,7 @@
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\ProvidesExplPackage{joinbox}{2023-08-21}{v1.0.2}
+\ProvidesExplPackage{joinbox}{2024-09-09}{v1.0.3}
{Join figures to same height or width with LaTeX3}
\RequirePackage{xparse}
@@ -42,7 +42,6 @@
% 函数变体
\cs_generate_variant:Nn \hcoffin_set:Nn { Nx }
-
% 定义变量
\bool_new:N \l__joinbox_vertical_bool
\bool_new:N \l__joinbox_out_scale_bool
@@ -77,7 +76,8 @@
baseline .value_required:n = true,
baseline .choices:nn = { t, vc, H, b }
{
- \int_set_eq:NN \l__joinbox_baseline_int \l_keys_choice_int
+ \int_set_eq:NN \l__joinbox_baseline_int
+ \l_keys_choice_int
},
baseline .default:n = vc,
baseline .initial:n = b,
@@ -92,19 +92,19 @@
\bool_set_false:N \l__joinbox_out_scale_bool
}{
\bool_set_true:N \l__joinbox_out_scale_bool
- \dim_set:Nn \l__joinbox_out_length_dim { \dim_eval:n{ #1 } }
+ \dim_set:Nn \l__joinbox_out_length_dim
+ { \dim_eval:n{ #1 } }
}
}
},
outlen .default:n = 0pt,
outlen .initial:n = 0pt,
- % 拼音间距
+ % 拼接间距
sep .dim_set:N = \l__joinbox_sep_dim,
sep .default:n = 0pt,
sep .initial:n = 0pt,
- % unknown .code:n = { \__joinbox_error:n { unknown-option } }
unknown .code:n = \__joinbox_unknown_key:V \l_keys_key_str,
}
@@ -116,8 +116,7 @@
{ vc } { \int_set:Nn \l__joinbox_baseline_int { 2 } }
{ H } { \int_set:Nn \l__joinbox_baseline_int { 3 } }
{ b } { \int_set:Nn \l__joinbox_baseline_int { 4 } }
- }
- {
+ }{
% 转换为token
\tl_set_rescan:Nnn \l_tmpa_tl {} {#1}
% 计算尺寸
@@ -138,12 +137,9 @@
}
\cs_generate_variant:Nn \__joinbox_unknown_key:n { V }
-% \msg_new:nnn { joinbox } { unknown-option }
-% { package~ option~ "\l_keys_key_tl"~ is~ unknown. }
-
%% 参数设置用户接口
\NewDocumentCommand \joinset { m }
- { \keys_set:nn { joinset } {#1} }
+ { \keys_set:nn { joinbox } {#1} }
% 计算box盒子的总高度
% #1---盒子变量
@@ -208,7 +204,8 @@
\dim_set_eq:NN \l__joinbox_min_height_dim \l_tmpb_dim
}
- \bool_if:nT { !(\l__joinbox_only_first_bool) && !(\l__joinbox_only_second_bool) }
+ \bool_if:nT { !(\l__joinbox_only_first_bool) &&
+ !(\l__joinbox_only_second_bool) }
{
% 比较并记录最小宽度
\dim_set:Nn \l__joinbox_min_width_dim
@@ -274,10 +271,12 @@
{
\coffin_scale:Nnn \l__joinbox_out_coffin
{
- \dim_ratio:nn { \l__joinbox_min_width_dim }{ \coffin_wd:N \l__joinbox_out_coffin }
+ \dim_ratio:nn { \l__joinbox_min_width_dim }
+ { \coffin_wd:N \l__joinbox_out_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_min_width_dim }{ \coffin_wd:N \l__joinbox_out_coffin }
+ \dim_ratio:nn { \l__joinbox_min_width_dim }
+ { \coffin_wd:N \l__joinbox_out_coffin }
}
}
@@ -286,10 +285,12 @@
{
\coffin_scale:Nnn \l__joinbox_tmpa_coffin
{
- \dim_ratio:nn { \l__joinbox_min_width_dim }{ \coffin_wd:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_min_width_dim }
+ { \coffin_wd:N \l__joinbox_tmpa_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_min_width_dim }{ \coffin_wd:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_min_width_dim }
+ { \coffin_wd:N \l__joinbox_tmpa_coffin }
}
}
@@ -298,11 +299,13 @@
\coffin_set_eq:NN \l__joinbox_out_coffin \l__joinbox_tmpa_coffin
}
- \bool_if:nT { !(\l__joinbox_only_first_bool) && !(\l__joinbox_only_second_bool) }
+ \bool_if:nT { !(\l__joinbox_only_first_bool) &&
+ !(\l__joinbox_only_second_bool) }
{
% 将第2个盒子拼接到第一个盒子
\coffin_join:NnnNnnnn \l__joinbox_out_coffin
- { hc } { b } \l__joinbox_tmpa_coffin { hc } { t } { 0pt } { -\l__joinbox_sep_dim }
+ { hc } { b } \l__joinbox_tmpa_coffin { hc } { t }
+ { 0pt } { -\l__joinbox_sep_dim }
}
% 按指定输出宽度缩放输出盒子
@@ -310,10 +313,12 @@
{
\coffin_scale:Nnn \l__joinbox_out_coffin
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \l__joinbox_min_width_dim }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \l__joinbox_min_width_dim }
}
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \l__joinbox_min_width_dim }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \l__joinbox_min_width_dim }
}
}
@@ -329,10 +334,12 @@
% 按最小高度缩放第1个盒子
\coffin_scale:Nnn \l__joinbox_out_coffin
{
- \dim_ratio:nn { \l__joinbox_min_height_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_out_coffin }
+ \dim_ratio:nn { \l__joinbox_min_height_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_out_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_min_height_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_out_coffin }
+ \dim_ratio:nn { \l__joinbox_min_height_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_out_coffin }
}
% 处理第2个盒子
@@ -344,25 +351,30 @@
% 按最小高度缩放第2个盒子
\coffin_scale:Nnn \l__joinbox_tmpa_coffin
{
- \dim_ratio:nn { \l__joinbox_min_height_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_min_height_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_min_height_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_min_height_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
}
% 将第2个盒子拼接到第1个盒子
\coffin_join:NnnNnnnn \l__joinbox_out_coffin
- { vc } { r } \l__joinbox_tmpa_coffin { vc } { l } { \l__joinbox_sep_dim } { 0pt }
+ { vc } { r } \l__joinbox_tmpa_coffin { vc } { l }
+ { \l__joinbox_sep_dim } { 0pt }
% 按指定输出高度缩放输出盒子
\bool_if:NT \l__joinbox_out_scale_bool
{
\coffin_scale:Nnn \l__joinbox_out_coffin
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \l__joinbox_min_height_dim }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \l__joinbox_min_height_dim }
}
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \l__joinbox_min_height_dim }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \l__joinbox_min_height_dim }
}
}
@@ -425,19 +437,23 @@
{
\coffin_scale:Nnn \l__joinbox_tmpa_coffin
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \coffin_wd:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \coffin_wd:N \l__joinbox_tmpa_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \coffin_wd:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \coffin_wd:N \l__joinbox_tmpa_coffin }
}
}
{
\coffin_scale:Nnn \l__joinbox_tmpa_coffin
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
}
}
}
@@ -491,19 +507,23 @@
{
\coffin_scale:Nnn \l__joinbox_tmpa_coffin
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \coffin_wd:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \coffin_wd:N \l__joinbox_tmpa_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \coffin_wd:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \coffin_wd:N \l__joinbox_tmpa_coffin }
}
}
{
\coffin_scale:Nnn \l__joinbox_tmpa_coffin
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
}
{
- \dim_ratio:nn { \l__joinbox_out_length_dim }{ \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
+ \dim_ratio:nn { \l__joinbox_out_length_dim }
+ { \__joinbox_coffin_ht_plus_dp:N \l__joinbox_tmpa_coffin }
}
}
}
@@ -595,7 +615,7 @@
% 被拼接对象同时为空,无需拼接
\msg_new:nnn { joinbox } { empty-objs }
- { The~two~objects~which~was~joined~are~empty. }
+ { The~two~objects~which~were~joined~are~empty. }
% 图像拼接用户接口
% 将指定文件名列表中的图像拼接成一个盒子
diff --git a/macros/latex/contrib/joinbox/joinbox.tex b/macros/latex/contrib/joinbox/joinbox.tex
index 3c021e196d..3f6b64d4bc 100644
--- a/macros/latex/contrib/joinbox/joinbox.tex
+++ b/macros/latex/contrib/joinbox/joinbox.tex
@@ -119,7 +119,7 @@
{ \__codedoc_cmd:no {#1} { #2 } }
\ExplSyntaxOff
-\def\vers{\texttt{v1.0.2}
+\def\vers{\texttt{v1.0.3}
\thanks{\url{https://gitee.com/nwafu_nan/joinbox}}
}
diff --git a/macros/latex/contrib/jsonparse/README.md b/macros/latex/contrib/jsonparse/README.md
index 69258570db..38d102d4b9 100644
--- a/macros/latex/contrib/jsonparse/README.md
+++ b/macros/latex/contrib/jsonparse/README.md
@@ -1,6 +1,6 @@
-![Version 0.8.3](https://img.shields.io/badge/version-0.8.3-blue)
+![Version 0.9.1](https://img.shields.io/badge/version-0.9.1-blue)
-![Jason, the JSON parsing horse](https://github.com/jasperhabicht/jsonparse/assets/6378801/d6abde3a-fa12-4b63-a213-ad8332e32199)
+![Jason, the JSON parsing horse](https://github.com/jasperhabicht/jsonparse/assets/6378801/ddfddc70-bf5f-4121-ba45-4b9128875d85)
# The `jsonparse` package
@@ -46,5 +46,4 @@ We can store it in the token variable `\myJSONdata` using the command `\JSONPars
This package including all files is subject to the LPPL 1.3c license. Copyright 2024 Jasper Habicht (mail(at)jasperhabicht.de).
-Jason, the JSON parseing horse: Copyright 2024 Hannah Klöber.
-
+Jason, the JSON parsing horse: Copyright 2024 Hannah Klöber.
diff --git a/macros/latex/contrib/jsonparse/jason/jason.pdf b/macros/latex/contrib/jsonparse/jason/jason.pdf
index 324458e684..2f9a8bfc7f 100644
--- a/macros/latex/contrib/jsonparse/jason/jason.pdf
+++ b/macros/latex/contrib/jsonparse/jason/jason.pdf
Binary files differ
diff --git a/macros/latex/contrib/jsonparse/jason/jason.svg b/macros/latex/contrib/jsonparse/jason/jason.svg
index fe8793dfa8..aff567e175 100644
--- a/macros/latex/contrib/jsonparse/jason/jason.svg
+++ b/macros/latex/contrib/jsonparse/jason/jason.svg
@@ -1,67 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="250px" height="250px" viewBox="0 0 450 450" enable-background="new 0 0 449.5 435" xml:space="preserve">
-<circle fill="#3FA9F5" cx="239" cy="226" r="206.166"/>
-<g>
- <defs>
- <circle id="SVGID_1_" cx="239" cy="226" r="206.166"/>
- </defs>
- <clipPath id="SVGID_2_">
- <use xlink:href="#SVGID_1_" overflow="visible"/>
- </clipPath>
- <path clip-path="url(#SVGID_2_)" fill="#C69C6D" d="M418.334,389.667c0,0-10.334-12.333-36-86.667S344,189.333,333.667,163
- c-5.552-14.149-12.545-22.326-17.83-26.869c7.769-5.957,15.778-13.185,19.83-20.131c6.902-11.834,11.667-24.5,15.667-38.5
- C353.731,69.108,361,63.333,361,63.333s-55-13-78.666,29.5c-1.534,2.754-3.036,5.383-4.538,7.892l-125.587,25.33
- C141.705,137.165,130.648,151.436,126,166c-4.127,12.93-11.333,16-26.333,28s-47.398,43.774-47.398,43.774l12.106,48.851
- l56.113,69.247c13.436-9.009,28.206-20.065,46.512-27.122c13.874-5.348,33.133-8.479,51.113-12.082
- c2.555,6.323,8.828,23.014,11.387,40.332c3.25,22,4.5,91.5,4.5,91.5L418.334,389.667z"/>
- <path clip-path="url(#SVGID_2_)" fill="#F7931E" stroke="#603813" stroke-width="3" stroke-miterlimit="10" d="M465.5,307.334
- c0,0-9.667-14.833-21.667-21c-11.409-5.863-24.5-7.167-24.5-7.167s2.853-11.646,11.167-22.833C439.667,244,456,233.667,456,233.667
- l-51.499-17.5c0,0,17.166-6.5,25.166-13.833c9.095-8.336,13.333-30,13.333-30s-47.621,2.806-54.333-15.167
- C383.501,143.333,402.001,114,402.001,114s-27.334-6.333-41.167-6.167c-7.572,0.091-15.827,0.876-22.104,2.556
- c-0.978,1.889-1.986,3.764-3.063,5.611c-4.052,6.946-12.062,14.174-19.83,20.131c5.285,4.543,12.278,12.72,17.83,26.869
- c10.333,26.333,23.001,65.666,48.667,140s36,86.667,36,86.667l32.5-36.5c-15.167-3-22.334-20.5-22.334-20.5L465.5,307.334z"/>
- <path clip-path="url(#SVGID_2_)" fill="none" stroke="#603813" stroke-width="3" stroke-miterlimit="10" d="M234,448.5
- c0,0-1.25-69.5-4.5-91.5c-2.559-17.318-8.832-34.009-11.387-40.332c-0.185,0.037-0.369,0.074-0.554,0.111"/>
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 3.2.2 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width="250px" height="250px" viewBox='-70.503905 -70.50391 452.105105 441.67801'>
+<defs>
+<clipPath id='clip'>
+<path d='M361.3402 148.0117C361.3402 261.4457 269.3832 353.4067 155.9452 353.4067C42.5082 353.4067-49.4531 261.4457-49.4531 148.0117C-49.4531 34.5747 42.5082-57.3867 155.9452-57.3867C269.3832-57.3867 361.3402 34.5747 361.3402 148.0117Z'/>
+</clipPath>
+</defs>
+<g id='page1'>
+<path d='M361.3402 148.0117C361.3402 261.4457 269.3832 353.4067 155.9452 353.4067C42.5082 353.4067-49.4531 261.4457-49.4531 148.0117C-49.4531 34.5747 42.5082-57.3867 155.9452-57.3867C269.3832-57.3867 361.3402 34.5747 361.3402 148.0117Z' fill='#5ba3de'/>
+<path d='M334.6092 311.0627C334.6092 311.0627 324.3162 298.7777 298.7422 224.7227C273.1762 150.6637 260.5542 111.4807 250.2582 85.2457C244.7262 71.1487 237.7622 62.9997 232.4962 58.4767C240.2342 52.5387 248.2152 45.3397 252.2502 38.4217C259.1252 26.6289 263.8752 14.0117 267.8592 .0664C270.2462-8.2969 277.4922-14.0508 277.4922-14.0508S222.6952-27 199.1172 15.3398C197.5862 18.0859 196.0942 20.7031 194.5942 23.2031L69.4762 48.4377C59.0122 59.5077 48.0002 73.7227 43.3672 88.2347C39.2542 101.1167 32.0742 104.1757 17.1289 116.1287C2.1875 128.0857-30.0898 159.7387-30.0898 159.7387L-18.0273 208.4097L37.8752 277.3987C51.2622 268.4177 65.9722 257.4067 84.2152 250.3787C98.0352 245.0467 117.2222 241.9297 135.1372 238.3397C137.6832 244.6367 143.9332 261.2657 146.4802 278.5237C149.7192 300.4377 150.9652 369.6797 150.9652 369.6797Z' fill='#ba8d5d' clip-path='url(#clip)'/>
+<path d='M381.6012 229.0387C381.6012 229.0387 371.9692 214.2617 360.0122 208.1167C348.6442 202.2777 335.6052 200.9767 335.6052 200.9767S338.4452 189.3747 346.7302 178.2307C355.8592 165.9457 372.1372 155.6447 372.1372 155.6447L320.8282 138.2107C320.8282 138.2107 337.9292 131.7347 345.8982 124.4297C354.9612 116.1247 359.1832 94.5427 359.1832 94.5427S311.7422 97.3397 305.0512 79.4337C299.9062 65.6527 318.3362 36.4297 318.3362 36.4297S291.1012 30.1167 277.3242 30.2847C269.7812 30.3747 261.5542 31.1567 255.3042 32.8277C254.3282 34.7107 253.3242 36.5817 252.2502 38.4217C248.2152 45.3397 240.2342 52.5387 232.4962 58.4767C237.7622 62.9997 244.7262 71.1487 250.2582 85.2457C260.5542 111.4807 273.1762 150.6637 298.7422 224.7227C324.3162 298.7777 334.6092 311.0627 334.6092 311.0627L366.9882 274.6997C351.8752 271.7107 344.7382 254.2777 344.7382 254.2777Z' fill='#f68623' stroke='#512c15' stroke-width='2.9888' stroke-miterlimit='10' clip-path='url(#clip)'/>
+<path d='M37.8712 277.3987C51.2622 268.4177 65.9722 257.4067 84.2152 250.3787C108.1682 241.1407 148.2502 238.5427 169.8632 228.6327C191.4762 218.7307 194.1792 185.4067 194.1792 185.4067M150.9652 369.6797C150.9652 369.6797 149.7192 300.4377 146.4802 278.5237C143.9332 261.2657 137.6832 244.6367 135.1332 238.3397C134.9492 238.3747 134.7692 238.4097 134.5862 238.4497M212.7342 71.7967C212.7342 71.7967 242.9532 54.3637 252.2502 38.4217C259.1252 26.6289 263.8752 14.0117 267.8592 .0664C270.2462-8.2969 277.4922-14.0508 277.4922-14.0508S222.6952-27 199.1172 15.3398C197.5862 18.0859 196.0942 20.7031 194.5942 23.2031M69.4762 48.4377C59.0122 59.5077 47.9962 73.7227 43.3672 88.2347C39.2542 101.1167 32.0742 104.1757 17.1289 116.1287C2.1875 128.0857-30.0898 159.7387-30.0898 159.7387' stroke='#512c15' fill='none' stroke-width='2.9888' stroke-miterlimit='10' clip-path='url(#clip)'/>
+<path d='M106.4652 1.2266C106.4652 1.2266 105.9652-3.918 96.3322-13.8828C94.6292-15.6484 92.7692-17.0078 90.8672-18.0586C91.1792-11.9961 91.7852-6.9063 92.1642-4.1016C98.3012-4.2969 103.4262-2.5938 106.4652 1.2266Z' fill='#ba8d5d' stroke='#512c15' stroke-width='2.9888' stroke-miterlimit='10'/>
+<path d='M96.1722-32.6484C106.4652-33.4766 119.5822-30.9844 125.7222-21.6875C128.7112-24.8398 128.7112-39.9531 128.7112-39.9531S136.2112-20.1836 148.1132-14.75C143.5472-30.8398 127.1132-45.75 120.3282-51.2422C113.3552-56.8906 103.7652-70.50391 103.7652-70.50391S94.8202-59.2109 91.8322-41.6133C91.2892-38.4297 90.9722-35.0938 90.8042-31.7695C92.5002-32.1836 94.2892-32.4961 96.1722-32.6484Z' fill='#ba8d5d' stroke='#512c15' stroke-width='2.9888' stroke-miterlimit='10'/>
+<path d='M184.1722-2.2617C173.5472-11.8906 162.4222-13.0547 153.6172-13.3828C138.5702-13.9531 128.7112-39.9531 128.7112-39.9531S128.7112-24.8398 125.7222-21.6875C119.5822-30.9844 106.4652-33.4766 96.1722-32.6484C81.6252-31.4727 72.2622-21.0234 72.2622-21.0234S86.7072-23.8438 96.3322-13.8828C105.9652-3.918 106.4652 1.2266 106.4652 1.2266C99.3242-7.7422 80.7262-5.082 64.4532 6.543C48.1832 18.1602 52.9962 49.3787 52.9962 49.3787S56.6522 36.5937 73.5862 28.7887C80.1332 25.7734 97.4962 25.1367 97.4962 25.1367S72.7582 25.9687 67.9412 54.8597C65.0472 72.2457 71.5942 87.0707 71.5942 87.0707S73.0902 71.6287 87.8672 62.4957C98.1402 56.1487 109.6212 53.1997 109.6212 53.1997C104.4722 57.0157 106.4652 67.9767 106.4652 67.9767S115.4292 52.8667 139.1722 54.3637C169.5392 56.2737 182.0352 44.1877 194.5942 23.2031C194.0432 17.1289 191.9692 4.8008 184.1722-2.2617Z' fill='#f68623' stroke='#512c15' stroke-width='2.9888' stroke-miterlimit='10'/>
+<path d='M37.8712 277.3987C46.1912 267.0387 57.7072 251.8637 60.5542 243.9027C68.0272 222.9807 59.3082 213.2657 54.5782 206.0427C49.8442 198.8207 57.8122 194.5857 44.6132 181.8827S-8.9336 190.1017-14.4141 187.6137C-19.8945 185.1207-19.3945 181.8827-20.8906 170.9257C-22.3867 159.9647-28.0469 158.7847-37.3281 159.9647C-49.9297 161.5627-55.7617 184.3747-58.9961 200.0667C-62.23437 215.7577-70.503905 215.5117-68.71094 228.9567C-67.86328 235.3317-64.28125 241.8907-52.8711 244.2927C-53.5937 250.0317-53.8047 257.0317-52.5898 264.6597C-49.4414 284.4727-17.918 294.3787 5.5 292.1247C16.2148 291.0977 26.5742 284.9727 37.8712 277.3987Z' fill='#976d46' stroke='#512c15' stroke-width='2.9888' stroke-miterlimit='10'/>
+<path d='M159.6012 113.0977C159.6012 122.6597 150.8982 130.4097 140.1722 130.4097C129.4412 130.4097 120.7462 122.6597 120.7462 113.0977C120.7462 103.5347 129.4412 95.7887 140.1722 95.7887C150.8982 95.7887 159.6012 103.5347 159.6012 113.0977Z' fill='#fff' stroke='#512c15' stroke-width='2.9888' stroke-miterlimit='10'/>
+<path d='M146.6482 115.1327C146.6482 118.9847 143.1172 122.1097 138.7622 122.1097C134.4062 122.1097 130.8712 118.9847 130.8712 115.1327C130.8712 111.2817 134.4062 108.1597 138.7622 108.1597C143.1172 108.1597 146.6482 111.2817 146.6482 115.1327Z' fill='#341a13'/>
+<path d='M-1.9453 215.2187C-1.9453 215.2187 .4883 211.0157 4.1406 206.1677C8.5508 200.3047 16.4766 195.1837 20.4531 194.8357C27.5508 194.2107 32.6052 195.9337 29.7152 201.4997C26.8281 207.0707 17.3984 212.9567 10.4922 213.8907C3.5781 214.8167-1.9453 215.2187-1.9453 215.2187Z' fill='#341a13'/>
+<path d='M-43.0742 245.1407C-43.793 249.6797-44.1641 256.3747-41.0664 260.0897C-36.082 266.0667-26.6211 275.0347-5.1992 262.0817C12.7813 251.2107 35.8402 229.8127 42.7892 223.2227C38.7772 226.3637 28.1367 232.1247 4.0156 231.9457C-22.5469 231.7417-28.8125 244.2577-43.0742 245.1407Z' fill='#fff' stroke='#512c15' stroke-width='2.9888' stroke-miterlimit='10'/>
+<path d='M-52.8711 244.2927C-50.918 244.7027-48.7383 244.9997-46.2969 245.1487C-45.1719 245.2107-44.1055 245.2067-43.0742 245.1407' stroke='#512c15' fill='none' stroke-width='2.9888' stroke-miterlimit='10'/>
+<path d='M25.7773 230.1017C9.6211 238.6997-18.1562 252.9177-25.7695 253.2777C-33.0273 253.6167-39.2852 248.5467-42.6719 245.1057C-42.8047 245.1167-42.9375 245.1287-43.0742 245.1407' stroke='#512c15' fill='none' stroke-width='2.9888' stroke-miterlimit='10'/>
</g>
-<path fill="#F7931E" stroke="#603813" stroke-width="3" stroke-miterlimit="10" d="M267.334,75.167
- C256.668,65.5,245.5,64.333,236.667,64c-15.107-0.57-25-26.667-25-26.667s0,15.167-3,18.333c-6.167-9.333-19.333-11.833-29.667-11
- c-14.596,1.177-24,11.667-24,11.667s14.5-2.833,24.167,7.167c9.667,10,10.167,15.167,10.167,15.167
- c-7.167-9-25.834-6.334-42.167,5.333s-11.5,43-11.5,43s3.667-12.833,20.667-20.667c6.572-3.028,24-3.667,24-3.667
- S155.5,103.5,150.667,132.5c-2.909,17.455,3.667,32.333,3.667,32.333s1.5-15.5,16.333-24.667c10.31-6.371,21.833-9.333,21.833-9.333
- c-5.167,3.833-3.166,14.833-3.166,14.833s9-15.167,32.833-13.667c30.479,1.918,43.022-10.208,55.629-31.275
- C277.24,94.63,275.157,82.257,267.334,75.167z"/>
-<path fill="#A67C52" stroke="#603813" stroke-width="3" stroke-miterlimit="10" d="M120.487,355.872
- c8.348-10.395,19.908-25.626,22.763-33.622c7.5-21-1.25-30.75-6-38s3.25-11.5-10-24.25S73.5,268.25,68,265.75S63,260,61.5,249
- s-7.183-12.182-16.5-11c-12.646,1.604-18.5,24.5-21.75,40.25s-11.549,15.507-9.75,29c0.854,6.402,4.447,12.983,15.898,15.396
- c-0.721,5.758-0.935,12.787,0.283,20.442c3.164,19.888,34.804,29.832,58.308,27.572C98.749,369.626,109.143,363.479,120.487,355.872
- z"/>
-<path fill="#C69C6D" stroke="#603813" stroke-width="3" stroke-miterlimit="10" d="M189.334,78.667c0,0-0.5-5.167-10.167-15.167
- c-1.713-1.772-3.58-3.135-5.489-4.188c0.317,6.082,0.921,11.189,1.303,14.006C181.138,73.124,186.281,74.833,189.334,78.667z"/>
-<path fill="#C69C6D" stroke="#603813" stroke-width="3" stroke-miterlimit="10" d="M179,44.667c10.334-0.833,23.5,1.667,29.667,11
- c3-3.167,3-18.333,3-18.333s7.525,19.843,19.471,25.298c-4.58-16.15-21.08-31.12-27.888-36.632
- c-7-5.667-16.625-19.333-16.625-19.333s-8.979,11.333-11.979,29c-0.542,3.195-0.864,6.542-1.031,9.882
- C175.318,45.129,177.115,44.819,179,44.667z"/>
-<ellipse fill="#FFFFFF" stroke="#603813" stroke-width="3" stroke-miterlimit="10" cx="223.167" cy="190.959" rx="19.5" ry="17.375"/>
-<ellipse fill="#42210B" cx="221.751" cy="193" rx="7.917" ry="7"/>
-<path fill="#603813" d="M80.519,293.464c0,0,2.443-4.219,6.106-9.089C91.052,278.49,99.007,273.351,103,273
- c7.125-0.625,12.198,1.105,9.299,6.695S99.936,291.193,93,292.125S80.519,293.464,80.519,293.464z"/>
-<path fill="none" stroke="#603813" stroke-width="3" stroke-miterlimit="10" d="M296,149.5c0,0,30.334-17.5,39.667-33.5
- c6.902-11.834,11.667-24.5,15.667-38.5C353.731,69.108,361,63.333,361,63.333s-55-13-78.666,29.5
- c-1.534,2.754-3.036,5.383-4.538,7.892"/>
-<path fill="none" stroke="#603813" stroke-width="3" stroke-miterlimit="10" d="M120.488,355.872
- c13.437-9.009,28.207-20.065,46.512-27.122c24.045-9.269,64.273-11.878,85.969-21.821s24.408-43.392,24.408-43.392"/>
-<path fill="#FFFFFF" stroke="#603813" stroke-width="3" stroke-miterlimit="10" d="M127.5,299.5c0,0-0.749,0.729-2.083,1.995
- C126.919,300.316,127.5,299.5,127.5,299.5z"/>
-<path fill="#FFFFFF" stroke="#603813" stroke-width="3" stroke-miterlimit="10" d="M39.236,323.495
- c-0.724,4.556-1.093,11.276,2.014,15.005c5,6,14.5,15,36,2c18.048-10.912,41.196-32.388,48.167-39.005
- c-4.023,3.157-14.707,8.937-38.917,8.755C59.839,310.05,53.549,322.611,39.236,323.495z"/>
-<path fill="none" stroke="#603813" stroke-width="3" stroke-miterlimit="10" d="M29.398,322.646c1.963,0.413,4.15,0.708,6.602,0.854
- c1.129,0.067,2.202,0.06,3.236-0.005"/>
-<path fill="none" stroke="#603813" stroke-width="3" stroke-miterlimit="10" d="M108.345,308.401
- c-16.22,8.63-44.097,22.899-51.74,23.26c-7.288,0.344-13.568-4.744-16.966-8.201c-0.135,0.01-0.266,0.026-0.403,0.035"/>
-<path fill="none" stroke="#603813" stroke-width="3" stroke-miterlimit="10" d="M152.209,126.056
- C141.705,137.165,130.648,151.436,126,166c-4.126,12.93-11.333,16-26.333,28s-47.398,43.774-47.398,43.774"/>
</svg>
diff --git a/macros/latex/contrib/jsonparse/jason/jason.tex b/macros/latex/contrib/jsonparse/jason/jason.tex
new file mode 100644
index 0000000000..28e9eb1b0c
--- /dev/null
+++ b/macros/latex/contrib/jsonparse/jason/jason.tex
@@ -0,0 +1,289 @@
+% File: jason/jason.tex
+% Copyright 2024 Jasper Habicht (mail(at)jasperhabicht.de).
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License version 1.3c,
+% available at http://www.latex-project.org/lppl/.
+%
+% This file is part of the `jsonparse' package (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+\documentclass{standalone}
+\usepackage{l3draw}
+
+\begin{document}
+\ExplSyntaxOn
+
+\color_set:nnn { color_i } { rgb } { 0.356863 , 0.639216 , 0.870588 }
+\color_set:nnn { color_ii } { rgb } { 0.729412 , 0.552941 , 0.364706 }
+\color_set:nnn { color_iii } { rgb } { 0.964706 , 0.52549 , 0.137255 }
+\color_set:nnn { color_iv } { rgb } { 0.592157 , 0.427451 , 0.27451 }
+\color_set:nnn { color_v } { rgb } { 0.317647 , 0.172549 , 0.0823529 }
+\color_set:nnn { color_vi } { rgb } { 0.203922 , 0.101961 , 0.0745098 }
+\color_set:nnn { color_vii } { rgb } { 1 , 1 , 1 }
+
+\draw_begin:
+
+\cs_new:Npn \__jsonparse_jason_path_i: {
+ \draw_path_moveto:n { 433.418 , 221.836 }
+ \draw_path_curveto:nnn { 433.418 , 335.695 } { 341.117 , 428 } { 227.254 , 428 }
+ \draw_path_curveto:nnn { 113.391 , 428 } { 21.086 , 335.695 } { 21.086 , 221.836 }
+ \draw_path_curveto:nnn { 21.086 , 107.973 } { 113.391 , 15.668 } { 227.254 , 15.668 }
+ \draw_path_curveto:nnn { 341.117 , 15.668 } { 433.418 , 107.973 } { 433.418 , 221.836 }
+ \draw_path_close:
+}
+
+\cs_new:Npn \__jsonparse_jason_path_ii: {
+ \draw_path_moveto:n { 406.586 , 385.5 }
+ \draw_path_curveto:nnn { 406.586 , 385.5 } { 396.254 , 373.168 } { 370.586 , 298.836 }
+ \draw_path_curveto:nnn { 344.922 , 224.5 } { 332.254 , 185.168 } { 321.918 , 158.836 }
+ \draw_path_curveto:nnn { 316.367 , 144.684 } { 309.375 , 136.508 } { 304.09 , 131.965 }
+ \draw_path_curveto:nnn { 311.859 , 126.008 } { 319.867 , 118.781 } { 323.918 , 111.836 }
+ \draw_path_curveto:nnn { 330.82 , 100 } { 335.586 , 87.336 } { 339.586 , 73.336 }
+ \draw_path_curveto:nnn { 341.984 , 64.941 } { 349.254 , 59.168 } { 349.254 , 59.168 }
+ \draw_path_curveto:nnn { 349.254 , 59.168 } { 294.254 , 46.168 } { 270.586 , 88.668 }
+ \draw_path_curveto:nnn { 269.051 , 91.422 } { 267.551 , 94.051 } { 266.047 , 96.559 }
+ \draw_path_lineto:n { 140.461 , 121.891 }
+ \draw_path_curveto:nnn { 129.957 , 133 } { 118.902 , 147.27 } { 114.254 , 161.836 }
+ \draw_path_curveto:nnn { 110.125 , 174.766 } { 102.918 , 177.836 } { 87.918 , 189.836 }
+ \draw_path_curveto:nnn { 72.918 , 201.836 } { 40.52 , 233.609 } { 40.52 , 233.609 }
+ \draw_path_lineto:n { 52.629 , 282.461 }
+ \draw_path_lineto:n { 108.742 , 351.707 }
+ \draw_path_curveto:nnn { 122.176 , 342.695 } { 136.945 , 331.641 } { 155.254 , 324.586 }
+ \draw_path_curveto:nnn { 169.125 , 319.234 } { 188.387 , 316.105 } { 206.367 , 312.504 }
+ \draw_path_curveto:nnn { 208.922 , 318.824 } { 215.195 , 335.516 } { 217.754 , 352.836 }
+ \draw_path_curveto:nnn { 221.004 , 374.836 } { 222.254 , 444.336 } { 222.254 , 444.336 }
+ \draw_path_close:
+}
+
+\cs_new:Npn \__jsonparse_jason_path_iii: {
+ \draw_path_moveto:n { 453.754 , 303.168 }
+ \draw_path_curveto:nnn { 453.754 , 303.168 } { 444.086 , 288.336 } { 432.086 , 282.168 }
+ \draw_path_curveto:nnn { 420.676 , 276.305 } { 407.586 , 275 } { 407.586 , 275 }
+ \draw_path_curveto:nnn { 407.586 , 275 } { 410.438 , 263.355 } { 418.754 , 252.168 }
+ \draw_path_curveto:nnn { 427.918 , 239.836 } { 444.254 , 229.5 } { 444.254 , 229.5 }
+ \draw_path_lineto:n { 392.754 , 212 }
+ \draw_path_curveto:nnn { 392.754 , 212 } { 409.918 , 205.5 } { 417.918 , 198.168 }
+ \draw_path_curveto:nnn { 427.016 , 189.832 } { 431.254 , 168.168 } { 431.254 , 168.168 }
+ \draw_path_curveto:nnn { 431.254 , 168.168 } { 383.633 , 170.973 } { 376.918 , 153 }
+ \draw_path_curveto:nnn { 371.754 , 139.168 } { 390.254 , 109.836 } { 390.254 , 109.836 }
+ \draw_path_curveto:nnn { 390.254 , 109.836 } { 362.918 , 103.5 } { 349.086 , 103.668 }
+ \draw_path_curveto:nnn { 341.516 , 103.758 } { 333.258 , 104.543 } { 326.984 , 106.223 }
+ \draw_path_curveto:nnn { 326.004 , 108.113 } { 324.996 , 109.988 } { 323.918 , 111.836 }
+ \draw_path_curveto:nnn { 319.867 , 118.781 } { 311.859 , 126.008 } { 304.09 , 131.965 }
+ \draw_path_curveto:nnn { 309.375 , 136.508 } { 316.367 , 144.684 } { 321.918 , 158.836 }
+ \draw_path_curveto:nnn { 332.254 , 185.168 } { 344.922 , 224.5 } { 370.586 , 298.836 }
+ \draw_path_curveto:nnn { 396.254 , 373.168 } { 406.586 , 385.5 } { 406.586 , 385.5 }
+ \draw_path_lineto:n { 439.086 , 349 }
+ \draw_path_curveto:nnn { 423.918 , 346 } { 416.754 , 328.5 } { 416.754 , 328.5 }
+ \draw_path_close:
+}
+
+\cs_new:Npn \__jsonparse_jason_path_iv: {
+ \draw_path_moveto:n { 255.586 , 71 }
+ \draw_path_curveto:nnn { 244.922 , 61.336 } { 233.754 , 60.168 } { 224.918 , 59.836 }
+ \draw_path_curveto:nnn { 209.812 , 59.266 } { 199.918 , 33.168 } { 199.918 , 33.168 }
+ \draw_path_curveto:nnn { 199.918 , 33.168 } { 199.918 , 48.336 } { 196.918 , 51.5 }
+ \draw_path_curveto:nnn { 190.754 , 42.168 } { 177.586 , 39.668 } { 167.254 , 40.5 }
+ \draw_path_curveto:nnn { 152.656 , 41.68 } { 143.254 , 52.168 } { 143.254 , 52.168 }
+ \draw_path_curveto:nnn { 143.254 , 52.168 } { 157.754 , 49.336 } { 167.418 , 59.336 }
+ \draw_path_curveto:nnn { 177.086 , 69.336 } { 177.586 , 74.5 } { 177.586 , 74.5 }
+ \draw_path_curveto:nnn { 170.418 , 65.5 } { 151.754 , 68.168 } { 135.418 , 79.836 }
+ \draw_path_curveto:nnn { 119.086 , 91.5 } { 123.918 , 122.836 } { 123.918 , 122.836 }
+ \draw_path_curveto:nnn { 123.918 , 122.836 } { 127.586 , 110 } { 144.586 , 102.168 }
+ \draw_path_curveto:nnn { 151.156 , 99.141 } { 168.586 , 98.5 } { 168.586 , 98.5 }
+ \draw_path_curveto:nnn { 168.586 , 98.5 } { 143.754 , 99.336 } { 138.918 , 128.336 }
+ \draw_path_curveto:nnn { 136.012 , 145.789 } { 142.586 , 160.668 } { 142.586 , 160.668 }
+ \draw_path_curveto:nnn { 142.586 , 160.668 } { 144.086 , 145.168 } { 158.918 , 136 }
+ \draw_path_curveto:nnn { 169.23 , 129.629 } { 180.754 , 126.668 } { 180.754 , 126.668 }
+ \draw_path_curveto:nnn { 175.586 , 130.5 } { 177.586 , 141.5 } { 177.586 , 141.5 }
+ \draw_path_curveto:nnn { 177.586 , 141.5 } { 186.586 , 126.336 } { 210.418 , 127.836 }
+ \draw_path_curveto:nnn { 240.898 , 129.754 } { 253.441 , 117.625 } { 266.047 , 96.559 }
+ \draw_path_curveto:nnn { 265.492 , 90.465 } { 263.41 , 78.09 } { 255.586 , 71 }
+ \draw_path_close:
+}
+
+\cs_new:Npn \__jsonparse_jason_path_v: {
+ \draw_path_moveto:n { 108.738 , 351.707 }
+ \draw_path_curveto:nnn { 117.086 , 341.312 } { 128.648 , 326.078 } { 131.504 , 318.086 }
+ \draw_path_curveto:nnn { 139.004 , 297.086 } { 130.254 , 287.336 } { 125.504 , 280.086 }
+ \draw_path_curveto:nnn { 120.754 , 272.836 } { 128.754 , 268.586 } { 115.504 , 255.836 }
+ \draw_path_curveto:nnn { 102.254 , 243.086 } { 61.754 , 264.086 } { 56.254 , 261.586 }
+ \draw_path_curveto:nnn { 50.754 , 259.086 } { 51.254 , 255.836 } { 49.754 , 244.836 }
+ \draw_path_curveto:nnn { 48.254 , 233.836 } { 42.57 , 232.652 } { 33.254 , 233.836 }
+ \draw_path_curveto:nnn { 20.605 , 235.438 } { 14.754 , 258.336 } { 11.504 , 274.086 }
+ \draw_path_curveto:nnn { 8.254 , 289.836 } { -0.047 , 289.59 } { 1.754 , 303.086 }
+ \draw_path_curveto:nnn { 2.605 , 309.484 } { 6.199 , 316.066 } { 17.652 , 318.48 }
+ \draw_path_curveto:nnn { 16.93 , 324.238 } { 16.715 , 331.266 } { 17.934 , 338.922 }
+ \draw_path_curveto:nnn { 21.098 , 358.809 } { 52.738 , 368.754 } { 76.242 , 366.492 }
+ \draw_path_curveto:nnn { 87 , 365.461 } { 97.395 , 359.312 } { 108.738 , 351.707 }
+ \draw_path_close:
+}
+
+\cs_new:Npn \__jsonparse_jason_path_vi: {
+ \draw_path_moveto:n { 108.738 , 351.707 }
+ \draw_path_curveto:nnn { 122.176 , 342.695 } { 136.945 , 331.641 } { 155.254 , 324.586 }
+ \draw_path_curveto:nnn { 179.297 , 315.316 } { 219.527 , 312.707 } { 241.223 , 302.762 }
+ \draw_path_curveto:nnn { 262.918 , 292.82 } { 265.629 , 259.371 } { 265.629 , 259.371 }
+
+ \draw_path_moveto:n { 222.254 , 444.336 }
+ \draw_path_curveto:nnn { 222.254 , 444.336 } { 221.004 , 374.836 } { 217.754 , 352.836 }
+ \draw_path_curveto:nnn { 215.195 , 335.516 } { 208.922 , 318.824 } { 206.363 , 312.504 }
+ \draw_path_curveto:nnn { 206.18 , 312.539 } { 205.996 , 312.574 } { 205.812 , 312.613 }
+
+ \draw_path_moveto:n { 284.254 , 145.336 }
+ \draw_path_curveto:nnn { 284.254 , 145.336 } { 314.586 , 127.836 } { 323.918 , 111.836 }
+ \draw_path_curveto:nnn { 330.82 , 100 } { 335.586 , 87.336 } { 339.586 , 73.336 }
+ \draw_path_curveto:nnn { 341.984 , 64.941 } { 349.254 , 59.168 } { 349.254 , 59.168 }
+ \draw_path_curveto:nnn { 349.254 , 59.168 } { 294.254 , 46.168 } { 270.586 , 88.668 }
+ \draw_path_curveto:nnn { 269.051 , 91.422 } { 267.551 , 94.051 } { 266.047 , 96.559 }
+
+ \draw_path_moveto:n { 140.461 , 121.891 }
+ \draw_path_curveto:nnn { 129.957 , 133 } { 118.898 , 147.27 } { 114.254 , 161.836 }
+ \draw_path_curveto:nnn { 110.125 , 174.766 } { 102.918 , 177.836 } { 87.918 , 189.836 }
+ \draw_path_curveto:nnn { 72.918 , 201.836 } { 40.52 , 233.609 } { 40.52 , 233.609 }
+}
+
+\cs_new:Npn \__jsonparse_jason_path_vii: {
+ \draw_path_moveto:n { 177.586 , 74.5 }
+ \draw_path_curveto:nnn { 177.586 , 74.5 } { 177.086 , 69.336 } { 167.418 , 59.336 }
+ \draw_path_curveto:nnn { 165.707 , 57.562 } { 163.84 , 56.199 } { 161.93 , 55.145 }
+ \draw_path_curveto:nnn { 162.246 , 61.227 } { 162.852 , 66.336 } { 163.234 , 69.152 }
+ \draw_path_curveto:nnn { 169.391 , 68.957 } { 174.535 , 70.668 } { 177.586 , 74.5 }
+ \draw_path_close:
+}
+
+\cs_new:Npn \__jsonparse_jason_path_viii: {
+ \draw_path_moveto:n { 167.254 , 40.5 }
+ \draw_path_curveto:nnn { 177.586 , 39.668 } { 190.754 , 42.168 } { 196.918 , 51.5 }
+ \draw_path_curveto:nnn { 199.918 , 48.336 } { 199.918 , 33.168 } { 199.918 , 33.168 }
+ \draw_path_curveto:nnn { 199.918 , 33.168 } { 207.445 , 53.012 } { 219.391 , 58.465 }
+ \draw_path_curveto:nnn { 214.809 , 42.316 } { 198.312 , 27.348 } { 191.504 , 21.836 }
+ \draw_path_curveto:nnn { 184.504 , 16.168 } { 174.879 , 2.5 } { 174.879 , 2.5 }
+ \draw_path_curveto:nnn { 174.879 , 2.5 } { 165.898 , 13.836 } { 162.898 , 31.5 }
+ \draw_path_curveto:nnn { 162.355 , 34.695 } { 162.035 , 38.043 } { 161.867 , 41.383 }
+ \draw_path_curveto:nnn { 163.57 , 40.965 } { 165.367 , 40.652 } { 167.254 , 40.5 }
+ \draw_path_close:
+}
+
+\cs_new:Npn \__jsonparse_jason_path_ix: {
+ \draw_path_moveto:n { 230.922 , 186.793 }
+ \draw_path_curveto:nnn { 230.922 , 196.391 } { 222.188 , 204.168 } { 211.422 , 204.168 }
+ \draw_path_curveto:nnn { 200.648 , 204.168 } { 191.922 , 196.391 } { 191.922 , 186.793 }
+ \draw_path_curveto:nnn { 191.922 , 177.195 } { 200.648 , 169.418 } { 211.422 , 169.418 }
+ \draw_path_curveto:nnn { 222.188 , 169.418 } { 230.922 , 177.195 } { 230.922 , 186.793 }
+ \draw_path_close:
+}
+
+\cs_new:Npn \__jsonparse_jason_path_x: {
+ \draw_path_moveto:n { 217.922 , 188.836 }
+ \draw_path_curveto:nnn { 217.922 , 192.699 } { 214.375 , 195.836 } { 210.004 , 195.836 }
+ \draw_path_curveto:nnn { 205.633 , 195.836 } { 202.086 , 192.699 } { 202.086 , 188.836 }
+ \draw_path_curveto:nnn { 202.086 , 184.969 } { 205.633 , 181.836 } { 210.004 , 181.836 }
+ \draw_path_curveto:nnn { 214.375 , 181.836 } { 217.922 , 184.969 } { 217.922 , 188.836 }
+ \draw_path_close:
+}
+
+% nostril
+\cs_new:Npn \__jsonparse_jason_path_xi: {
+ \draw_path_moveto:n { 68.77 , 289.297 }
+ \draw_path_curveto:nnn { 68.77 , 289.297 } { 71.215 , 285.078 } { 74.879 , 280.211 }
+ \draw_path_curveto:nnn { 79.305 , 274.324 } { 87.262 , 269.184 } { 91.254 , 268.836 }
+ \draw_path_curveto:nnn { 98.379 , 268.211 } { 103.449 , 269.938 } { 100.551 , 275.527 }
+ \draw_path_curveto:nnn { 97.652 , 281.117 } { 88.188 , 287.027 } { 81.254 , 287.961 }
+ \draw_path_curveto:nnn { 74.316 , 288.891 } { 68.77 , 289.297 } { 68.77 , 289.297 }
+ \draw_path_close:
+}
+
+% mouth
+\cs_new:Npn \__jsonparse_jason_path_xii: {
+ \draw_path_moveto:n { 27.488 , 319.328 }
+ \draw_path_curveto:nnn { 26.766 , 323.887 } { 26.395 , 330.605 } { 29.504 , 334.336 }
+ \draw_path_curveto:nnn { 34.504 , 340.336 } { 44.004 , 349.336 } { 65.504 , 336.336 }
+ \draw_path_curveto:nnn { 83.551 , 325.422 } { 106.699 , 303.945 } { 113.672 , 297.328 }
+ \draw_path_curveto:nnn { 109.645 , 300.484 } { 98.965 , 306.266 } { 74.754 , 306.086 }
+ \draw_path_curveto:nnn { 48.09 , 305.883 } { 41.801 , 318.445 } { 27.488 , 319.328 }
+ \draw_path_close:
+}
+
+% mouth edge
+\cs_new:Npn \__jsonparse_jason_path_xiii: {
+ \draw_path_moveto:n { 17.652 , 318.48 }
+ \draw_path_curveto:nnn { 19.613 , 318.891 } { 21.801 , 319.188 } { 24.254 , 319.336 }
+ \draw_path_curveto:nnn { 25.383 , 319.402 } { 26.453 , 319.395 } { 27.488 , 319.328 }
+}
+
+% teeth
+\cs_new:Npn \__jsonparse_jason_path_xiv: {
+ \draw_path_moveto:n { 96.598 , 304.234 }
+ \draw_path_curveto:nnn { 80.379 , 312.863 } { 52.5 , 327.137 } { 44.855 , 327.496 }
+ \draw_path_curveto:nnn { 37.57 , 327.84 } { 31.289 , 322.75 } { 27.891 , 319.293 }
+ \draw_path_curveto:nnn { 27.758 , 319.305 } { 27.625 , 319.32 } { 27.488 , 319.328 }
+}
+
+\draw_transform_yscale:n { -1 }
+\draw_linewidth:n { 3pt }
+\draw_miterlimit:n { 10 }
+\color_stroke:n { color_v }
+
+\draw_scope_begin:
+
+ \color_fill:n { color_i }
+ \__jsonparse_jason_path_i:
+ \draw_path_use_clear:n { fill , clip }
+
+ \color_fill:n { color_ii }
+ \__jsonparse_jason_path_ii:
+ \draw_path_use_clear:n { fill }
+
+ \color_fill:n { color_iii }
+ \__jsonparse_jason_path_iii:
+ \draw_path_use_clear:n { fill , draw }
+
+ \__jsonparse_jason_path_vi:
+ \draw_path_use_clear:n { draw }
+
+\draw_scope_end:
+
+\color_fill:n { color_ii }
+\__jsonparse_jason_path_vii:
+\draw_path_use_clear:n { fill , draw }
+
+\__jsonparse_jason_path_viii:
+\draw_path_use_clear:n { fill , draw }
+
+\color_fill:n { color_iii }
+\__jsonparse_jason_path_iv:
+\draw_path_use_clear:n { fill , draw }
+
+\color_fill:n { color_iv }
+\__jsonparse_jason_path_v:
+\draw_path_use_clear:n { fill , draw }
+
+\color_fill:n { color_vii }
+\__jsonparse_jason_path_ix:
+\draw_path_use_clear:n { fill , draw }
+
+\color_fill:n { color_vi }
+\__jsonparse_jason_path_x:
+\draw_path_use_clear:n { fill }
+
+\__jsonparse_jason_path_xi:
+\draw_path_use_clear:n { fill }
+
+\color_fill:n { color_vii }
+\__jsonparse_jason_path_xii:
+\draw_path_use_clear:n { fill , draw }
+
+\__jsonparse_jason_path_xiii:
+\draw_path_use_clear:n { draw }
+
+\__jsonparse_jason_path_xiv:
+\draw_path_use_clear:n { draw }
+
+\draw_end:
+
+\ExplSyntaxOff
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/jsonparse/jsonparse-doc.pdf b/macros/latex/contrib/jsonparse/jsonparse-doc.pdf
index ed7a1dded6..f80b04d0cc 100644
--- a/macros/latex/contrib/jsonparse/jsonparse-doc.pdf
+++ b/macros/latex/contrib/jsonparse/jsonparse-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/jsonparse/jsonparse-doc.tex b/macros/latex/contrib/jsonparse/jsonparse-doc.tex
index 1cfcde1e18..5b643a7af4 100644
--- a/macros/latex/contrib/jsonparse/jsonparse-doc.tex
+++ b/macros/latex/contrib/jsonparse/jsonparse-doc.tex
@@ -11,8 +11,8 @@
% This work has the LPPL maintenance status `maintained'.
%
\documentclass[a4paper]{article}
-\def\jsonparsefileversion{0.8.3}
-\def\jsonparsefiledate{28 April 2024}
+\def\jsonparsefileversion{0.9.1}
+\def\jsonparsefiledate{21 September 2024}
\usepackage[T1]{fontenc}
\usepackage{Alegreya}
@@ -193,10 +193,15 @@
\changes{v0.5.7}{2024/04/14}{Bug fixes, key-value option setting added.}
\changes{v0.6.0}{2024/04/15}{Bug fixes, renaming of several commands.}
\changes{v0.7.0}{2024/04/18}{Renaming and rearranging of keys, escaping of special JSON escape sequences added.}
-\changes{v0.7.1}{2024/04/20}{Access to first-level keys of object added.}
+\changes{v0.7.1}{2024/04/20}{Access to top-level keys of object added.}
\changes{v0.8.0}{2024/04/24}{Internal rewrite, escaping procedures changed.}
\changes{v0.8.2}{2024/04/26}{Bug fixes, externalizing parsed data.}
\changes{v0.8.3}{2024/04/28}{Escaping of characters with special meaning in TeX.}
+\changes{v0.8.5}{2024/05/05}{Enhanced key management.}
+\changes{v0.8.6}{2024/05/09}{Bug fix in nesting function.}
+\changes{v0.8.7}{2024/08/08}{Corrections in documentation, error messages.}
+\changes{v0.9.0}{2024/08/27}{Adaption to updated verbatim tokenization.}
+\changes{v0.9.1}{2024/09/21}{Added functions to test for valid JSON numbers.}
\begin{document}
\vspace*{-1cm}
@@ -225,20 +230,22 @@ The package does not load any dependencies.
\end{macrodef}
The package can be loaded with the option \macro{debug}. It will then output to the log file every instance of a string, a boolean (true or false) value, a null value, a number as well as the start and end of every object and the start and end of every array that is found while parsing the JSON string or JSON file.
+This key can be set either as package option or using \macro{\JSONParseSet}. It can also be set locally as option to the commands \macro{\JSONParse} and \macro{\JSONParseFromFile}.
+
\section{Escaping and special treatment of the input}\label{sec:escaping}
-In general, the package reads the JSON source as string, which means that all characters have category code 12 (other), except for spaces which have category code 10 (space). The \macro{\endlinechar} value is set to $-1$. Furthermore, if PDFLaTeX is used, the upper-half of the 8-bit range is set to ``active''. JSON, however, defines a small set of escape sequences and in order to be able to process these, the category code of the backslash is set to 0 (escpape).
+In general, the package reads the JSON source as string, which means that all characters have category code 12 (other), except for spaces which have category code 10 (space). The \macro{\endlinechar} value is set to $-1$. Furthermore, if PDFLaTeX is used, the upper-half of the 8-bit range is set to ``active''. JSON, however, defines a small set of escape sequences and in order to be able to process these, the category code of the backslash is set to 0 (escape).
-JSON strings cannot contain the two characters \macro{"} and \macro{\}. These two characters need to be escaped with a preceding backslash (\macro{\}). This package therefore redefines locally the TeX control symbols \macro{\"}, \macro{\/}, \macro{\\}, \macro{\b}, \macro{\f}, \macro{\n}, \macro{\r}, \macro{\t} and \macro{\u}. These control symbols are prevented from expanding during parsing. For example, \macro{\"} is first defined as \macro{\exp_not:N \"} and only hen typeset, \macro{\"} is expanded to \macro{"}, which ensures that strings are parsed properly.
+JSON strings cannot contain the two characters \macro{"} and \macro{\}. These two characters need to be escaped with a preceding backslash (\macro{\}). This package therefore redefines locally the TeX control symbols \macro{\"}, \macro{\/}, \macro{\\}, \macro{\b}, \macro{\f}, \macro{\n}, \macro{\r}, \macro{\t} and \macro{\u}. These control symbols are prevented from expanding during parsing. For example, \macro{\"} is first defined as \macro{\exp_not:N \"} and only when typeset, \macro{\"} is expanded to \macro{"}, which ensures that strings are parsed properly.
-Similarly, the control symbol \macro{\/} expands eventually to \macro{/} and \macro{\\} to \macro{\c_backslash_str} (i.\,e. a backslash with category code 12). The escape sequence \macro{\u} followed by a hex value consisting of four digits eventually eventually expands to \macro{\char"} followed by the relevant four hex digits. The JSON escape sequences \macro{\b}, \macro{\f}, \macro{\n}, \macro{\r}, \macro{\t} or \macro{\u} (followed by a hex value) eventually expand to token variables of which the contents can be set using the relevant \macro{replacement} key. See more on setting keys below in section \ref{sec:settings}.
+Similarly, the control symbol \macro{\/} expands eventually to \macro{/} and \macro{\\} to \macro{\c_backslash_str} (i.\,e. a backslash with category code 12). The escape sequence \macro{\u} followed by a hex value consisting of four digits eventually expands to \macro{\char"} followed by the relevant four hex digits. The JSON escape sequences \macro{\b}, \macro{\f}, \macro{\n}, \macro{\r} and \macro{\t} eventually expand to token variables of which the contents can be set using the relevant \macro{replacement} key. See more on setting options below in section \ref{sec:options}.
-It is possible to insert TeX macros to the JSON source that will eventually be parsed when typesetting. Backslashes of TeX macros need to be escaped by another backslash. The TeX macros \macro{\"} and \macro{\\} must be escaped twice in the JSON source, so that they become \macro{\\\"} and \macro{\\\\} respectively.
+It is possible to insert TeX macros to the JSON source that will eventually be parsed when typesetting. Backslashes of TeX macros need to be escaped by another backslash. The TeX macros \macro{\"} and \macro{\\} must be escaped twice in the JSON source so that they become \macro{\\\"} and \macro{\\\\} respectively.
\begin{macrodef}
-|\x|[<token variable name>][<key>]
+|\x|{<token variable name>}{<key>}
\end{macrodef}
-Using the control sequence \macro{\x}, it is possible to nest JSON strings into each other. The control sequence takes two arguments delimited by square brackets. The first argument represents the name of the token variable that holds the parsed JSON data where the inserted JSON string should be taken from. The second argument sets the key that should be selected. The following example shows a simple use case:
+Using the control sequence \macro{\x}, it is possible to nest JSON strings into each other. The control sequence takes two arguments delimited by curly braces. The first argument represents the name of the token variable that holds the parsed JSON data where the inserted JSON string should be taken from. The second argument sets the key that should be selected. The following example shows a simple use case:
\begin{codeexamplecolumns}
\JSONParse{\myJSONdataA}{
@@ -246,49 +253,52 @@ Using the control sequence \macro{\x}, it is possible to nest JSON strings into
}
\JSONParse{\myJSONdataB}{
- { "d" : \x[myJSONdataA][a] }
+ { "d" : \x{myJSONdataA}{a} }
}
\JSONParseValue{\myJSONdataB}{d.b}
\end{codeexamplecolumns}
+Note that the control sequence \macro{\x} is replaced by the value exactly. Therefore, if the value happens to be a string, the control sequence \macro{\x} should be placed between quotation marks (\macro{"}) in order for the resulting string to be valid JSON.
+
\begin{macrodef}
-|escape|={<all>}
-|escape|={<none>}
-|escape|={<number sign>}
-|escape|={<dollar sign>}
-|escape|={<percent sign>}
-|escape|={<ampersand>}
-|escape|={<circumflex accent>}
-|escape|={<low line>}
-|escape|={<tilde>}
+|escape|={all}
+|escape|={none}
+|escape|={number sign}
+|escape|={dollar sign}
+|escape|={percent sign}
+|escape|={ampersand}
+|escape|={circumflex accent}
+|escape|={low line}
+|escape|={tilde}
\end{macrodef}
-The key \macro{escape} can be used to convert characters that don't require escaping in JSON but in TeX into their relevant TeX escape sequences. Apart from the backslash and curly braces that need to be escaped anyways, these are the number sign, the dollar sign, the percent sign, the ampersand, the circumflex accent, the low line and the tilde. The characters can be selected individually separated by a comma (for example \macro{escape={dollar sign, circumflex accent, low line}}. With \macro{escape={all}}, all escaping sequences are selected, with \macro{escape={none}}, none is selected.
+The key \macro{escape} can be used to convert characters that don't require escaping in JSON but in TeX into the relevant TeX escape sequences. Apart from the backslash and curly braces that need to be escaped anyways, these are the number sign, the dollar sign, the percent sign, the ampersand, the circumflex accent, the low line and the tilde. The characters can be selected individually separated by a comma (for example \macro{escape={dollar sign, circumflex accent, low line}}. With \macro{escape={all}}, all escaping sequences are selected, with \macro{escape={none}}, none is selected.
The naming of the relevant characters follows their Unicode names. However, \macro{hash} exists as alias for \macro{number sign}, \macro{dollar} as alias for \macro{dollar sign}, \macro{percent} for \macro{percent sign}, \macro{circumflex} for \macro{circumflex accent} and \macro{underscore} for \macro{low line}.
+This key can be set using \macro{\JSONParseSet}. It can also be set locally as option to the commands \macro{\JSONParseValue}, \macro{\JSONParseArrayValues} and \macro{\JSONParseArrayValuesMap}.
+
\begin{macrodef}
-replacement/|backspace|={<string>}
-replacement/|formfeed|={<string>}
-replacement/|linefeed|={<string>}
-replacement/|carriage return|={<string>}
-replacement/|horizontal tab|={<string>}
+|rescan|
+|rescan|={<boolean>}
\end{macrodef}
-These keys can be used to set the replacement text for the JSON escape sequences \macro{\b} (backspace), \macro{\f} (formfeed), \macro{\n} (linefeed), \macro{\r} (carriage return) and \macro{\t} (horizontal tab). The default replacement string is a space. Only strings can be used as replacement.
+The key \macro{rescan} can be used to activate and deactivate rescanning of the output. This key is active per default. Rescanning converts all tokens to their default category codes and TeX control sequences are expanded before typesetting. Further, during the rescanning process, JSON escape sequences are replaced and characters that don't require escaping in JSON but in TeX are replaced by the relevant TeX escape sequences.
+
+This key can be set using \macro{\JSONParseSet}. It can also be set locally as option to the commands \macro{\JSONParseValue}, \macro{\JSONParseArrayValues} and \macro{\JSONParseArrayValuesMap}.
\section{Main user commands}
\begin{macrodef}
-|\JSONParse|[<file name>]{<token variable>}{<JSON string>}
+|\JSONParse|[<options>]{<token variable>}{<JSON string>}
\end{macrodef}
The command \macro{\JSONParse} is used to parse a JSON string and store the parsed result in a token variable (a property list). The second argument takes the name of the token variable that is created by the command. The third argument takes the JSON string to be parsed.
For example, using \macro{\JSONParse{\myJSONdata}{ { "key" : "value" } }}, the relevant JSON string will be parsed and the result stored in the token variable \macro{\myJSONdata} as property list. In this case, the property list only consists of one entry with the key \macro{key} and the value \macro{value}. The command \macro{\JSONParseValue{\myJSONdata}{key}}, for example, can then be used to extract the relevant value from this property list (see the description below).
-The first optinal argument can be used to externalize the parsed JSON data to a file. See more on externalization in section \ref{sec:externalizing} below.
+The first optional argument can be used to pass options to the command that are then applied locally.
\begin{macrodef}
-|\JSONParseFromFile|[<file name>]{<token variable>}{<JSON file>}
+|\JSONParseFromFile|[<options>]{<token variable>}{<JSON file>}
\end{macrodef}
The command \macro{\JSONParseFromFile} is used to parse a JSON file and store the parsed result in a token variable (a property list). It works the same way as \macro{\JSONParse}, but instead of a JSON string, it takes as third argument the path to the JSON file relative to the working directory.
@@ -298,8 +308,7 @@ The command \macro{\JSONParseFromFile} is used to parse a JSON file and store th
The command \macro{\JSONParseKeys} is used to store all top-level keys of a parsed JSON object as array into a token variable. The command takes as first argument the token variable that holds the parsed JSON data. The second argument takes the token variable that is assigned a JSON array containing the top-level keys of the object represented by the token variable in the first argument. The token variable to store the keys as array is created if it does not exist.
\begin{macrodef}
-|\JSONParseValue|{<token variable>}{<key>}
-|\JSONParseValue*|{<token variable>}{<key>}
+|\JSONParseValue|[<options>]{<token variable>}{<key>}
|\JSONParseExpandableValue|{<token variable>}{<key>}
\end{macrodef}
The command \macro{\JSONParseValue} is used to select values from the token variable (property list) that has been created using the commands \macro{\JSONParse} or \macro{\JSONParseFromFile}. The first argument takes the token variable that holds the parsed JSON data. The second argument takes the key to select the relevant entry from the parsed JSON data using JavaScript syntax.
@@ -308,15 +317,14 @@ If the JSON string \macro{{ "key" : "value" }} is parsed into the token variable
Nested objects and arrays are assigned keys that adhere to JavaScript syntax. For example, if the JSON string \macro{{ "outer_key" : { "inner_key" : "value" } }} is parsed into the token variable \macro{\myJSONdata}, to select the value associated with the key \macro{inner_key}, the command \macro{\JSONParseValue{\myJSONdata}{outer_key.inner_key}} can be used. To give an example for an array, the command \macro{\JSONParseValue{\myJSONdata}{key[0]}} selects the first value of the array associated with the key \macro{key} in the JSON string \macro{{ "key" : [ "one" , "two" ] }}.
-The non-starred variant of this command, \macro{\JSONParseValue}, rescans the token list before it is typeset (which means that all category codes that may have been changed before are set to the default values). The starred variant, \macro{\JSONParseValue*}, does not rescan the ouput. The non-starred variants of this and similar commands should therefore not be placed in a \macro{\JSONParse} command.
+The first optional argument can be used to pass options to the command, such as \macro{escape} or \macro{rescan}, that are then applied locally. When the option \macro{rescan} is used, the token list is rescanned before it is typeset (which means that all category codes that may have been changed before are set to the default values). This is the default behaviour. If rescanning is not desired, pass the option \macro{rescan=false} to the command.
When a key is associated with an object or array, the whole object or array is output as JSON string. The special key \macro{.} (or the string defined using the key \macro{child sep}) returns the whole JSON object as string.
Whole objects or arrays can also be output as JSON string for further use in other macros using the expandable command \macro{\JSONParseExpandableValue}.
\begin{macrodef}
-|\JSONParseArrayValues|{<token variable>}{<key>}[<subkey>]{<string>}
-|\JSONParseArrayValues*|{<token variable>}{<key>}[<subkey>]{<string>}
+|\JSONParseArrayValues|[<options>]{<token variable>}{<key>}[<subkey>]{<string>}
\end{macrodef}
The command \macro{\JSONParseArrayValues} is used to select all values from an array from a parsed JSON string or JSON file. The first argument takes the token variable that holds the parsed JSON data. The second argument takes the key to select the relevant entry from the parsed JSON data using JavaScript syntax. The third argument is optional and can be used to pass a subkey, i.\,e. a key that is used to select a value for every item. The last argument takes a string that is inserted between all values when they are typeset.
@@ -339,11 +347,11 @@ For example, let us assume the following JSON data structure is parsed into the
Then, when using \macro{\JSONParseArrayValues{\myJSONdata}{array}[key_a]{, }}, `one, three' is typeset to the document.
-The starred variant, \macro{\JSONParseArrayValues*}, does not rescan the token lists before they are typeset.
+The first optional argument can be used to pass options to the command, such as \macro{escape} or \macro{rescan}, that are then applied locally.
\begin{macrodef}
-|\JSONParseArrayValuesMap|{<token variable>}{<key>}[<subkey>]{<command name>}
-|\JSONParseArrayValuesMap*|{<token variable>}{<key>}[<subkey>]{<command name>}
+|\JSONParseArrayValuesMap|[<options>]{<token variable>}{<key>}[<subkey>]
+ {<command name>}
\end{macrodef}
The command \macro{\JSONParseArrayValuesMap} takes the same first three arguments as the command \macro{\JSONParseArrayValues} and works in a similar way. However, instead of a string that is added between the array items, it takes a command name as fourth argument. This command can be defined beforehand and will be called for every array item. Inside its definition, the commands \macro{\JSONParseArrayIndex}, \macro{\JSONParseArrayKey} and \macro{\JSONParseArrayValue} can be used which are updated for each item and output the index, the key and the value of the current item respectively.
@@ -362,7 +370,7 @@ For example, let us assume the same JSON data structure as defined above parsed
\end{itemize}
\end{codeexamplecolumns}
-The starred variant, \macro{\JSONParseArrayValuesMap*}, does not rescan the token lists before they are typeset.
+The first optional argument can be used to pass options to the command, such as \macro{escape} or \macro{rescan}, that are then applied locally.
\begin{macrodef}
|\JSONParseArrayCount|{<token variable>}{<key>}
@@ -371,46 +379,97 @@ The command \macro{\JSONParseArrayCount} takes as first argument a token variabl
\subsection{Externalising parsed JSON data}\label{sec:externalizing}
-Parsing large JSON files can take quite a while. In order to speed up follow-up compilation runs, this package provides a way to store parsed JSON data for future use. The first opional argument of the commands \macro{\JSONParse} and \macro{\JSONParseFromFile} can be used to provide the name of a file (without file extension) that will be created in the working directory and which stores the relevant information. The file name will have the extension \macro{.jsonparse}. If a file with the same name and file extension already exists, an error will be issued. Once the file has been created, the package will try to load the data from this file instead of parsing the JSON data again.
+Parsing large JSON files can take quite a while. In order to speed up follow-up compilation runs, this package provides a way to store parsed JSON data for future use. Once a file for externalization has been created, the package will try to load the data from this file instead of parsing the JSON data again.
+
+\begin{macrodef}
+|externalize|
+|externalize|={<boolean>}
+\end{macrodef}
+With the key \macro{externalize} set (or set to true), a file will be created in the working directory that stores the externalization of the parsed JSON data. The file name gets the extension \macro{.jsonparse}. The file name is created automatically and consists of the name of the current file followed by an underscore and the name of the token variable where the JSON data is stored into. If a file with the same name and file extension already exists, an error will be issued.
+
+This key can be set using \macro{\JSONParseSet}. It can also be set locally as option to the commands \macro{\JSONParse} and \macro{\JSONParseFromFile}.
+
+\begin{macrodef}
+|externalize prefix|={<string>}
+\end{macrodef}
+With the key \macro{externalize prefix}, a prefix can be defined that is added to the file name. Per default this is an empty string.
+
+This key can be set using \macro{\JSONParseSet}. It can also be set locally as option to the commands \macro{\JSONParse} and \macro{\JSONParseFromFile}.
+
+\begin{macrodef}
+|externalize file name|={<token list>}
+\end{macrodef}
+The key \macro{externalize file name} sets the schema for the file name. The default schema is as follows:
+
+\begin{codeexample}
+\l_jsonparse_externalize_prefix_str \c_sys_jobname_str
+ \c_underscore_str \l_jsonparse_current_prop_str
+\end{codeexample}
+
+The token variable \macro{\l_jsonparse_externalize_prefix_str} contains the prefix that is set using the key \macro{externalize prefix}. \macro{\c_sys_jobname_str} holds the name of the current file (the current job name), \macro{\c_underscore_str} is an underscore and the token variable \macro{\l_jsonparse_current_prop_str} contains the name of the property list where the relevant JSON data is stored into.
+
+This key can be set using \macro{\JSONParseSet}. It can also be set locally as option to the commands \macro{\JSONParse} and \macro{\JSONParseFromFile}.
\begin{macrodef}
|\JSONParsePut|{<token variable>}{<key>}[<JSON string>]
\end{macrodef}
The command \macro{\JSONParsePut} is used by the externalization procedure to re-read already parsed JSON data to the main file. It just adds a key-value pair to the property list (where the value part is read as string). Hence, it can also be used to append more entries to an already existing property list containing parsed JSON data.
-\subsection{Changing separators, output and other settings}\label{sec:settings}
+\subsection{Changing separators, output and other options}\label{sec:options}
The package provides a set of keys can be set to change the separators used to select the relevant value in the JSON structure, the output that is generated from the JSON data as well as other things.
\begin{macrodef}
-|\JSONParseSet|{<key-value list>}
+|\JSONParseSet|{<options>}
\end{macrodef}
-The commands \macro{\JSONParseSet} can be used to specify settings via key-value pairs (separated by commas). Keys that are presented here as a subkey (i.\,e. preceded by another key and a slash) can also be set using the syntax \macro{key={subkey}} and multiple subkeys belonging to one key can be combined using a comma as separator. The following keys are available:
+The commands \macro{\JSONParseSet} can be used to specify options via key-value pairs (separated by commas). Keys that are presented here as a subkey (i.\,e. preceded by another key and a slash) can also be set using the syntax \macro{key={subkey}} and multiple subkeys belonging to one key can be combined using a comma as separator. Several user commands allow to pass keys directly which are then applied locally. The following keys are available:
\begin{macrodef}
separator/|child|={<string>}
+separator/|array left|={<string>}
+separator/|array right|={<string>}
\end{macrodef}
-With the key \macro{child sep}, the separator for child objects that is used in the syntax to select a specific value in the JSON data structure can be changed. Per default, the child separator is a dot (\macro{.}). Changing the separator can be useful if keys in the JSON structure already use these characters.
+With the key \macro{separator/child}, the separator for child objects that is used in the syntax to select a specific value in the JSON data structure can be changed. Per default, the child separator is a dot (\macro{.}). Changing the separator can be useful if keys in the JSON structure already use these characters.
+
+With the keys \macro{separator/array left} and \macro{separator/array right}, the separators for arrays that are used in the syntax to select a specific value in the JSON data structure can be changed. Per default, the separators are square brackets (\macro{[} and \macro{]}). Changing the separators can be useful if keys in the JSON structure already use these characters. Changing these separators to curly braces (\macro{{}}) is not supported due to their grouping function in TeX.
+
+These keys can be set using \macro{\JSONParseSet}. They can also be set locally as option to the commands \macro{\JSONParse} and \macro{\JSONParseFromFile}.
\begin{macrodef}
-separator/|array left|={<string>}
-separator/|array right|={<string>}
+|zero-based|
+|zero-based|={<boolean>}
\end{macrodef}
-With the keys \macro{array sep left} and \macro{array sep right}, the separators for arrays that are used in the syntax to select a specific value in the JSON data structure can be changed. Per default, the separators are square brackets (\macro{[} and \macro{]}). Changing the separators can be useful if keys in the JSON structure already use these characters.
+If set (or explicitly set to \macro{true}), the key \macro{zero-based} sets the numbering of the index of array items to zero-based. If set to false, the indexing starts with one instead. Per default, the package uses zero-based indexing to resemble JavaScript notation.
+
+This key can be set using \macro{\JSONParseSet}. It can also be set locally as option to the commands \macro{\JSONParse} and \macro{\JSONParseFromFile}.
+
+\begin{macrodef}
+replace/|true|={<string>}
+replace/|false|={<string>}
+replace/|null|={<string>}
+\end{macrodef}
+With the keys \macro{replace/true}, \macro{replace/false} and \macro{replace/null}, the string that is typeset for true, false and null values can be changed. The default strings that are typeset are \macro{true}, \macro{false} and \macro{null} respectively. Only strings can be used as replacement. These replacements take place already during parsing.
+
+These keys can be set using \macro{\JSONParseSet}. They can also be set locally as option to the commands \macro{\JSONParse} and \macro{\JSONParseFromFile}.
\begin{macrodef}
-replacement/|true|={<string>}
-replacement/|false|={<string>}
-replacement/|null|={<string>}
+replace/|backspace|={<string>}
+replace/|formfeed|={<string>}
+replace/|linefeed|={<string>}
+replace/|carriage return|={<string>}
+replace/|horizontal tab|={<string>}
\end{macrodef}
-With the keys \macro{true}, \macro{false} and \macro{null}, the string that is typeset for true, false and null values can be changed. The default strings that are typeset are \macro{true}, \macro{false} and \macro{null} respectively. Only strings can be used as replacement.
+These keys can be used to set the replacement text for the JSON escape sequences \macro{\b} (backspace), \macro{\f} (formfeed), \macro{\n} (linefeed), \macro{\r} (carriage return) and \macro{\t} (horizontal tab). The default replacement string is a space. Only strings can be used as replacement. These replacements take place only during typesetting.
+These keys can be set using \macro{\JSONParseSet}. They can also be set locally as option to the commands \macro{\JSONParseValue}, \macro{\JSONParseArrayValues} and \macro{\JSONParseArrayValuesMap}.
\begin{macrodef}
-|array index zero-based|
-|array index zero-based|={<boolean>}
+|check num|
+|check num|={<boolean>}
\end{macrodef}
-If set (or explicitly set to \macro{true}), the key \macro{array index zero-based} sets the numbering of the index of array items to zero-based. If set to false, the indexing starts with one instead. Per default, the package uses zero-based indexing to resemble JavaScript notation.
+If set to \macro{false}, the key \macro{check num} omits an internal check of numerical expressions against the JSON specification for numbers. Turning off this feature can increase the parsing speed.
+This key can be set using \macro{\JSONParseSet}. It can also be set locally as option to the commands \macro{\JSONParse} and \macro{\JSONParseFromFile}.
+
\subsection{L3 commands}
\begin{macrodef}
@@ -428,6 +487,14 @@ The command \macro{\jsonparse_parse_to_prop:Nn} creates the token variable given
\end{macrodef}
The command \macro{\jsonparse_parse_to_prop:Nn} processes the token variable given as the first arguments as property list and filters it according to the key given as second argument. Filtering means that for every entry in the property list, the key of this entry is compared against the key given to the command. If the key in the property list starts with the given key, the matching part is removed from the key in the property list. If the keys do not match, the entry is completely removed from the property list.
+\begin{macrodef}
+|\jsonparse_if_num:nTF| {<string>} {<true code>} {<false code>}
+|\jsonparse_if_num:nT| {<string>} {<true code>}
+|\jsonparse_if_num:nF| {<string>} {<false code>}
+|\jsonparse_if_num_p:n| {<string>}
+\end{macrodef}
+The command \macro{\jsonparse_if_num:nTF} checks whether a string is a valid JSON number according the relevant specification. It executes the true code if the string is a valid JSON number and the false code if not. The variants \macro{\jsonparse_if_num:nT} and \macro{\jsonparse_if_num:nF} work accordingly. The command \macro{\jsonparse_if_num_p:n} returns a boolean true or false.
+
% =====
\printchanges
diff --git a/macros/latex/contrib/jsonparse/jsonparse.sty b/macros/latex/contrib/jsonparse/jsonparse.sty
index 680e89bfca..2dd3696e88 100644
--- a/macros/latex/contrib/jsonparse/jsonparse.sty
+++ b/macros/latex/contrib/jsonparse/jsonparse.sty
@@ -10,15 +10,16 @@
%
% This work has the LPPL maintenance status `maintained'.
%
-\ProvidesExplPackage {jsonparse} {2024-04-28} {0.8.3}
+\ProvidesExplPackage {jsonparse} {2024-09-21} {0.9.1}
{JSON Parse}
\bool_new:N \l__jsonparse_debug_mode_bool
-\keys_define:nn { jsonparse } {
+\keys_define:nn { jsonparse / global } {
debug .bool_set:N = \l__jsonparse_debug_mode_bool ,
debug .default:n = { true } ,
+ debug .initial:n = { false }
}
-\ProcessKeyOptions [ jsonparse ]
+\ProcessKeyOptions [ jsonparse / global ]
\msg_new:nnn { jsonparse } { debug-info } {
#1
@@ -43,7 +44,7 @@
\msg_new:nnn { jsonparse } { file-exists } {
\msg_error_text:n { jsonparse } \iow_newline:
- File ~ #1 ~ already ~ existing.
+ File ~ #1 ~ already ~ existing.
}
\msg_new:nnn { jsonparse } { escape-in-key } {
@@ -56,9 +57,14 @@
Escape ~ character ~ #1 ~ not ~ found.
}
+\msg_new:nnn { jsonparse } { unknown-key } {
+ \msg_warning_text:n { jsonparse } \iow_newline:
+ Ignoring ~ unknown ~ key: ~ #1.
+}
+
\msg_new:nnn { jsonparse } { saving-external } {
\msg_info_text:n { jsonparse } \iow_newline:
- Saving ~ external ~ file: ~ #1.
+ Saving ~ to ~ external ~ file: ~ #1.
}
\msg_new:nnn { jsonparse } { loading-external } {
@@ -67,14 +73,22 @@
}
% ===
-
+
+\str_new:N \l_jsonparse_externalize_prefix_str
+\str_new:N \l_jsonparse_current_prop_str
+
+\tl_new:N \l__jsonparse_externalize_file_name_tl
+
\str_new:N \l__jsonparse_child_sep_str
\str_new:N \l__jsonparse_array_sep_left_str
\str_new:N \l__jsonparse_array_sep_right_str
\str_new:N \l__jsonparse_true_str
\str_new:N \l__jsonparse_false_str
\str_new:N \l__jsonparse_null_str
-\bool_new:N \l__jsonparse_array_index_zero_based_bool
+\bool_new:N \l__jsonparse_zero_based_bool
+\bool_new:N \l__jsonparse_check_num_bool
+\bool_new:N \l__jsonparse_rescan_bool
+\bool_new:N \l__jsonparse_externalize_bool
\str_new:N \l__jsonparse_backspace_str
\str_new:N \l__jsonparse_formfeed_str
@@ -82,8 +96,9 @@
\str_new:N \l__jsonparse_carriage_return_str
\str_new:N \l__jsonparse_horizontal_tab_str
-\clist_new:N \l__jsonparse_escape_tex_chars_clist
-\clist_set:Nn \l__jsonparse_escape_tex_chars_clist {
+\clist_new:N \l__jsonparse_unused_keys_clist
+
+\clist_const:Nn \c__jsonparse_escape_tex_chars_clist {
number_sign ,
dollar_sign ,
percent_sign ,
@@ -94,47 +109,63 @@
}
\str_new:N \l__jsonparse_escape_temp_str
-\clist_map_inline:Nn \l__jsonparse_escape_tex_chars_clist {
+\clist_map_inline:Nn \c__jsonparse_escape_tex_chars_clist {
\bool_new:c { l__jsonparse_escape_ #1 _bool }
}
-\keys_define:nn { jsonparse } {
- array ~ index ~ zero-based .bool_set:N = \l__jsonparse_array_index_zero_based_bool ,
- array ~ index ~ zero-based .default:n = { true } ,
- array ~ index ~ zero-based .initial:n = { true } ,
- separator .code:n = { \keys_set:nn { jsonparse / separator } {#1} },
- separator / child .str_set:N = \l__jsonparse_child_sep_str ,
- separator / child .initial:n = { . } ,
- separator / array ~ left .str_set:N = \l__jsonparse_array_sep_left_str ,
- separator / array ~ left .initial:n = { [ } ,
- separator / array ~ right .str_set:N = \l__jsonparse_array_sep_right_str ,
- separator / array ~ right .initial:n = { ] } ,
- replacement .code:n = { \keys_set:nn { jsonparse / replacement } {#1} },
- replacement / true .str_set:N = \l__jsonparse_true_str ,
- replacement / true .initial:n = { true } ,
- replacement / false .str_set:N = \l__jsonparse_false_str ,
- replacement / false .initial:n = { false } ,
- replacement / null .str_set:N = \l__jsonparse_null_str ,
- replacement / null .initial:n = { null } ,
- replacement / backspace .str_set:N = \l__jsonparse_backspace_str ,
- replacement / backspace .initial:n = { ~ } ,
- replacement / formfeed .str_set:N = \l__jsonparse_formfeed_str ,
- replacement / formfeed .initial:n = { ~ } ,
- replacement / linefeed .str_set:N = \l__jsonparse_linefeed_str ,
- replacement / linefeed .initial:n = { ~ } ,
- replacement / carriage ~ return .str_set:N = \l__jsonparse_carriage_return_str ,
- replacement / carriage ~ return .initial:n = { ~ } ,
- replacement / horizontal ~ tab .str_set:N = \l__jsonparse_horizontal_tab_str ,
- replacement / horizontal ~ tab .initial:n = { ~ } ,
- escape .code:n = {
+\keys_define:nn { jsonparse / parse } {
+ externalize .bool_set:N = \l__jsonparse_externalize_bool ,
+ externalize .default:n = { true } ,
+ externalize .initial:n = { false } ,
+ externalize ~ prefix .str_set:N = \l_jsonparse_externalize_prefix_str ,
+ externalize ~ prefix .initial:n = { } ,
+ externalize ~ file ~ name .tl_set:N = \l__jsonparse_externalize_file_name_tl ,
+ externalize ~ file ~ name .initial:n = {
+ \l_jsonparse_externalize_prefix_str \c_sys_jobname_str \c_underscore_str \l_jsonparse_current_prop_str
+ } ,
+ separator .code:n = { \keys_set:nn { jsonparse / parse / separator } {#1} } ,
+ separator / child .str_set:N = \l__jsonparse_child_sep_str ,
+ separator / child .initial:n = { . } ,
+ separator / array ~ left .str_set:N = \l__jsonparse_array_sep_left_str ,
+ separator / array ~ left .initial:n = { [ } ,
+ separator / array ~ right .str_set:N = \l__jsonparse_array_sep_right_str ,
+ separator / array ~ right .initial:n = { ] } ,
+ zero-based .bool_set:N = \l__jsonparse_zero_based_bool ,
+ zero-based .default:n = { true } ,
+ zero-based .initial:n = { true } ,
+ check ~ num .bool_set:N = \l__jsonparse_check_num_bool ,
+ check ~ num .default:n = { true } ,
+ check ~ num .initial:n = { true } ,
+ replace .code:n = { \keys_set:nn { jsonparse / parse / replace } {#1} } ,
+ replace / true .str_set:N = \l__jsonparse_true_str ,
+ replace / true .initial:n = { true } ,
+ replace / false .str_set:N = \l__jsonparse_false_str ,
+ replace / false .initial:n = { false } ,
+ replace / null .str_set:N = \l__jsonparse_null_str ,
+ replace / null .initial:n = { null }
+}
+
+\keys_define:nn { jsonparse / typeset } {
+ replace .code:n = { \keys_set:nn { jsonparse / typeset / replace } {#1} } ,
+ replace / backspace .str_set:N = \l__jsonparse_backspace_str ,
+ replace / backspace .initial:n = { ~ } ,
+ replace / formfeed .str_set:N = \l__jsonparse_formfeed_str ,
+ replace / formfeed .initial:n = { ~ } ,
+ replace / linefeed .str_set:N = \l__jsonparse_linefeed_str ,
+ replace / linefeed .initial:n = { ~ } ,
+ replace / carriage ~ return .str_set:N = \l__jsonparse_carriage_return_str ,
+ replace / carriage ~ return .initial:n = { ~ } ,
+ replace / horizontal ~ tab .str_set:N = \l__jsonparse_horizontal_tab_str ,
+ replace / horizontal ~ tab .initial:n = { ~ } ,
+ escape .code:n = {
\str_case:nnF {#1} {
{ all } {
- \clist_map_inline:Nn \l__jsonparse_escape_tex_chars_clist {
+ \clist_map_inline:Nn \c__jsonparse_escape_tex_chars_clist {
\bool_set_true:c { l__jsonparse_escape_ ##1 _bool }
}
}
{ none } {
- \clist_map_inline:Nn \l__jsonparse_escape_tex_chars_clist {
+ \clist_map_inline:Nn \c__jsonparse_escape_tex_chars_clist {
\bool_set_false:c { l__jsonparse_escape_ ##1 _bool }
}
}
@@ -168,11 +199,27 @@
}
}
}
+ } ,
+ escape .groups:n = { output } ,
+ rescan .bool_set:N = \l__jsonparse_rescan_bool ,
+ rescan .default:n = { true } ,
+ rescan .initial:n = { true } ,
+ rescan .groups:n = { output }
+}
+
+\cs_new:Npn \__jsonparse_warning_unused_keys: {
+ \clist_map_inline:Nn \l__jsonparse_unused_keys_clist {
+ \msg_warning:nne { jsonparse } { unknown-key } {
+ ##1
+ }
}
}
\NewDocumentCommand { \JSONParseSet } { m } {
- \keys_set:nn { jsonparse } {#1}
+ \keys_set_known:nnN { jsonparse / global } {#1} \l__jsonparse_unused_keys_clist
+ \keys_set_known:noN { jsonparse / parse } { \l__jsonparse_unused_keys_clist } \l__jsonparse_unused_keys_clist
+ \keys_set_known:noN { jsonparse / typeset } { \l__jsonparse_unused_keys_clist } \l__jsonparse_unused_keys_clist
+ \__jsonparse_warning_unused_keys:
}
% ===
@@ -181,6 +228,7 @@
\cs_new:Npn \str_casefold:n { \str_foldcase:n }
}
+\cs_generate_variant:Nn \file_input:n { e }
\cs_generate_variant:Nn \tl_gset_rescan:Nnn { Nne }
\cs_generate_variant:Nn \tl_range:nnn { nne , nen }
\cs_generate_variant:Nn \tl_range:Nnn { Nne , Nen }
@@ -193,14 +241,20 @@
\cs_generate_variant:Nn \str_case_e:nn { en }
\cs_generate_variant:Nn \str_casefold:n { o }
\cs_generate_variant:Nn \str_head_ignore_spaces:n { o }
+\cs_generate_variant:Nn \str_set:Nn { Ne }
\cs_generate_variant:Nn \prop_gput:Nnn { Nee }
\cs_generate_variant:Nn \prop_item:Nn { Ne , ce }
\cs_generate_variant:Nn \prop_put:Nnn { Nen , Nee }
+\cs_generate_variant:Nn \keys_set_known:nnN { noN }
\cs_generate_variant:Nn \iow_now:Nn { Ne }
+\cs_generate_variant:Nn \iow_open:Nn { Ne }
\cs_generate_variant:Nn \msg_error:nnn { nno }
\cs_generate_variant:Nn \msg_error:nnnn { nnoo }
+\cs_generate_variant:Nn \msg_info:nnn { nne }
\cs_generate_variant:Nn \msg_log:nnn { nne }
+\cs_generate_variant:Nn \msg_warning:nnn { nne }
+\prg_generate_conditional_variant:Nnn \file_if_exist:n { e } { T , TF }
\prg_generate_conditional_variant:Nnn \tl_if_eq:nn { en } { T }
\prg_generate_conditional_variant:Nnn \tl_if_head_eq_charcode:nN { oN } { T , TF }
\prg_generate_conditional_variant:Nnn \tl_if_in:nn { nV } { F }
@@ -224,7 +278,7 @@
\int_new:N \l__jsonparse_array_count_last_int
\bool_new:N \l__jsonparse_prop_map_first_bool
-\bool_new:N \l__jsonparse_load_external_bool
+\bool_new:N \l__jsonparse_externalize_load_bool
\ior_new:N \l__jsonparse_json_ior
\iow_new:N \g__jsonparse_externalize_iow
@@ -241,6 +295,326 @@
% ===
+\tl_new:N \l__jsonparse_num_input_tl
+\tl_new:N \l__jsonparse_num_remainder_tl
+\tl_new:N \l__jsonparse_num_input_last_tl
+\bool_new:N \l__jsonparse_num_bool
+\bool_new:N \l__jsonparse_num_zero_seen_bool
+\bool_new:N \l__jsonparse_num_plus_minus_seen_bool
+\bool_new:N \l__jsonparse_num_fraction_seen_bool
+\bool_new:N \l__jsonparse_num_exponent_seen_bool
+\tl_new:N \l__jsonparse_num_input_tl
+\tl_new:N \l__jsonparse_num_remainder_tl
+\tl_new:N \l__jsonparse_num_input_last_tl
+\bool_new:N \l__jsonparse_num_bool
+\bool_new:N \l__jsonparse_num_zero_seen_bool
+\bool_new:N \l__jsonparse_num_plus_minus_seen_bool
+\bool_new:N \l__jsonparse_num_fraction_seen_bool
+\bool_new:N \l__jsonparse_num_exponent_seen_bool
+
+\clist_const:Nn \c__jsonparse_num_digits_clist {
+\clist_const:Nn \c__jsonparse_num_digits_clist {
+ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9
+}
+
+\prg_new_conditional:Npnn \jsonparse_if_num:n #1 { p , T , F , TF } {
+ \bool_set_true:N \l__jsonparse_num_bool
+ \bool_set_false:N \l__jsonparse_num_zero_seen_bool
+ \bool_set_false:N \l__jsonparse_num_plus_minus_seen_bool
+ \bool_set_false:N \l__jsonparse_num_fraction_seen_bool
+ \bool_set_false:N \l__jsonparse_num_exponent_seen_bool
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { #1 }
+ \tl_if_empty:NTF \l__jsonparse_num_remainder_tl {
+ \bool_set_false:N \l__jsonparse_num_bool
+\prg_new_conditional:Npnn \jsonparse_if_num:n #1 { p , T , F , TF } {
+ \bool_set_true:N \l__jsonparse_num_bool
+ \bool_set_false:N \l__jsonparse_num_zero_seen_bool
+ \bool_set_false:N \l__jsonparse_num_plus_minus_seen_bool
+ \bool_set_false:N \l__jsonparse_num_fraction_seen_bool
+ \bool_set_false:N \l__jsonparse_num_exponent_seen_bool
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { #1 }
+ \tl_if_empty:NTF \l__jsonparse_num_remainder_tl {
+ \bool_set_false:N \l__jsonparse_num_bool
+ } {
+ \__jsonparse_parse_num:n {#1}
+ \__jsonparse_parse_num:n {#1}
+ }
+ \bool_lazy_any:nT {
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
+ } {
+ \bool_set_false:N \l__jsonparse_num_bool
+ \bool_set_false:N \l__jsonparse_num_bool
+ }
+ \bool_if:NTF \l__jsonparse_num_bool {
+ \bool_if:NTF \l__jsonparse_num_bool {
+ \prg_return_true:
+ } {
+ \prg_return_false:
+ }
+}
+
+\cs_new:Npn \__jsonparse_parse_num:n #1 {
+ \tl_set:Ne \l__jsonparse_num_input_tl { \tl_trim_spaces:e {#1} }
+ \tl_if_empty:NF \l__jsonparse_num_input_tl {
+ \cs_if_exist_use:cTF { __jsonparse_parse_num_ \str_head_ignore_spaces:o { \l__jsonparse_num_input_tl } :w } {
+ \l__jsonparse_num_input_tl \q_stop
+\cs_new:Npn \__jsonparse_parse_num:n #1 {
+ \tl_set:Ne \l__jsonparse_num_input_tl { \tl_trim_spaces:e {#1} }
+ \tl_if_empty:NF \l__jsonparse_num_input_tl {
+ \cs_if_exist_use:cTF { __jsonparse_parse_num_ \str_head_ignore_spaces:o { \l__jsonparse_num_input_tl } :w } {
+ \l__jsonparse_num_input_tl \q_stop
+ } {
+ \exp_last_unbraced:No
+ \__jsonparse_parse_num_other:w \l__jsonparse_num_input_tl \q_stop
+ \__jsonparse_parse_num_other:w \l__jsonparse_num_input_tl \q_stop
+ }
+ }
+}
+
+\cs_new:cpn { __jsonparse_parse_num_ + :w } #1 \q_stop {
+\cs_new:cpn { __jsonparse_parse_num_ + :w } #1 \q_stop {
+ \exp_last_unbraced:No
+ \__jsonparse_parse_num_plus_minus:w #1 \q_stop
+ \__jsonparse_parse_num_plus_minus:w #1 \q_stop
+}
+
+\cs_new:cpn { __jsonparse_parse_num_ - :w } #1 \q_stop {
+\cs_new:cpn { __jsonparse_parse_num_ - :w } #1 \q_stop {
+ \exp_last_unbraced:No
+ \__jsonparse_parse_num_plus_minus:w #1 \q_stop
+ \__jsonparse_parse_num_plus_minus:w #1 \q_stop
+}
+
+\cs_new:cpn { __jsonparse_parse_num_ . :w } #1 \q_stop {
+\cs_new:cpn { __jsonparse_parse_num_ . :w } #1 \q_stop {
+ \exp_last_unbraced:No
+ \__jsonparse_parse_num_fraction:w #1 \q_stop
+ \__jsonparse_parse_num_fraction:w #1 \q_stop
+}
+
+\cs_new:cpn { __jsonparse_parse_num_ e :w } #1 \q_stop {
+\cs_new:cpn { __jsonparse_parse_num_ e :w } #1 \q_stop {
+ \exp_last_unbraced:No
+ \__jsonparse_parse_num_exponent:w #1 \q_stop
+ \__jsonparse_parse_num_exponent:w #1 \q_stop
+}
+
+\cs_new:cpn { __jsonparse_parse_num_ E :w } #1 \q_stop {
+\cs_new:cpn { __jsonparse_parse_num_ E :w } #1 \q_stop {
+ \exp_last_unbraced:No
+ \__jsonparse_parse_num_exponent:w #1 \q_stop
+ \__jsonparse_parse_num_exponent:w #1 \q_stop
+}
+
+\clist_map_inline:Nn \c__jsonparse_num_digits_clist {
+ \cs_new:cpn { __jsonparse_parse_num_ #1 :w } ##1 \q_stop {
+\clist_map_inline:Nn \c__jsonparse_num_digits_clist {
+ \cs_new:cpn { __jsonparse_parse_num_ #1 :w } ##1 \q_stop {
+ \exp_last_unbraced:No
+ \__jsonparse_parse_num_digit:w ##1 \q_stop
+ \__jsonparse_parse_num_digit:w ##1 \q_stop
+ }
+}
+
+\cs_new:Npn \__jsonparse_parse_num_plus_minus:w #1 \q_stop {
+ \bool_if:NTF \l__jsonparse_num_plus_minus_seen_bool {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+\cs_new:Npn \__jsonparse_parse_num_plus_minus:w #1 \q_stop {
+ \bool_if:NTF \l__jsonparse_num_plus_minus_seen_bool {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ } {
+ \tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
+ \tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
+ \str_if_eq:enT { \tl_head:n {#1} } { + } {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ }
+ } {
+ \bool_lazy_any:nT {
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
+ } {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ }
+ }
+ }
+ \bool_set_true:N \l__jsonparse_num_plus_minus_seen_bool
+ \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
+ \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
+ \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
+ \bool_set_true:N \l__jsonparse_num_plus_minus_seen_bool
+ \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
+ \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
+ \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
+}
+
+\cs_new:Npn \__jsonparse_parse_num_fraction:w #1 \q_stop {
+ \bool_if:NTF \l__jsonparse_num_fraction_seen_bool {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+\cs_new:Npn \__jsonparse_parse_num_fraction:w #1 \q_stop {
+ \bool_if:NTF \l__jsonparse_num_fraction_seen_bool {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ } {
+ \tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ \tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ } {
+ \bool_lazy_any:nT {
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
+ } {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ }
+ }
+ }
+ \bool_set_false:N \l__jsonparse_num_zero_seen_bool
+ \bool_set_true:N \l__jsonparse_num_plus_minus_seen_bool
+ \bool_set_true:N \l__jsonparse_num_fraction_seen_bool
+ \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
+ \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
+ \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
+ \bool_set_false:N \l__jsonparse_num_zero_seen_bool
+ \bool_set_true:N \l__jsonparse_num_plus_minus_seen_bool
+ \bool_set_true:N \l__jsonparse_num_fraction_seen_bool
+ \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
+ \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
+ \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
+}
+
+\cs_new:Npn \__jsonparse_parse_num_exponent:w #1 \q_stop {
+ \bool_if:NTF \l__jsonparse_num_exponent_seen_bool {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+\cs_new:Npn \__jsonparse_parse_num_exponent:w #1 \q_stop {
+ \bool_if:NTF \l__jsonparse_num_exponent_seen_bool {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ } {
+ \tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ \tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ } {
+ \bool_lazy_any:nT {
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
+ } {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ }
+ }
+ }
+ \bool_set_false:N \l__jsonparse_num_zero_seen_bool
+ \bool_set_false:N \l__jsonparse_num_plus_minus_seen_bool
+ \bool_set_true:N \l__jsonparse_num_fraction_seen_bool
+ \bool_set_true:N \l__jsonparse_num_exponent_seen_bool
+ \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
+ \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
+ \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
+ \bool_set_false:N \l__jsonparse_num_zero_seen_bool
+ \bool_set_false:N \l__jsonparse_num_plus_minus_seen_bool
+ \bool_set_true:N \l__jsonparse_num_fraction_seen_bool
+ \bool_set_true:N \l__jsonparse_num_exponent_seen_bool
+ \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
+ \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
+ \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
+}
+
+\cs_new:Npn \__jsonparse_parse_num_digit:w #1 \q_stop {
+\cs_new:Npn \__jsonparse_parse_num_digit:w #1 \q_stop {
+ \bool_lazy_any:nTF {
+ { \tl_if_empty_p:N \l__jsonparse_num_input_last_tl }
+ { \tl_if_empty_p:N \l__jsonparse_num_input_last_tl }
+ { \bool_lazy_and_p:nn
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
+ { \bool_not_p:n { \l__jsonparse_num_exponent_seen_bool } }
+ { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
+ { \bool_not_p:n { \l__jsonparse_num_exponent_seen_bool } }
+ }
+ } {
+ \str_if_eq:enT { \tl_head:n {#1} } { 0 } {
+ \bool_set_true:N \l__jsonparse_num_zero_seen_bool
+ \bool_set_true:N \l__jsonparse_num_zero_seen_bool
+ }
+ } {
+ \bool_if:NT \l__jsonparse_num_zero_seen_bool {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ \bool_if:NT \l__jsonparse_num_zero_seen_bool {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+ }
+ }
+ \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
+ \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
+ \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
+ \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
+ \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
+ \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
+}
+
+\cs_new:Npn \__jsonparse_parse_num_other:w #1 \q_stop {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+\cs_new:Npn \__jsonparse_parse_num_other:w #1 \q_stop {
+ \tl_set:Nn \l__jsonparse_num_remainder_tl { }
+ \bool_set_false:N \l__jsonparse_num_bool
+}
+
+% ===
+
\cs_new_protected:Npn \jsonparse_parse_to_prop:Nn #1#2 {
\bool_if:NT \l__jsonparse_debug_mode_bool {
\msg_log:nne { jsonparse } { debug-info } {
@@ -366,10 +740,10 @@
\bool_if:NT \l__jsonparse_debug_mode_bool {
\msg_log:nnn { jsonparse } { debug-info } {
(arr ~ begin)
- }
+ }
}
\int_zero:N \l__jsonparse_array_index_int
- \bool_if:NT \l__jsonparse_array_index_zero_based_bool {
+ \bool_if:NT \l__jsonparse_zero_based_bool {
\int_decr:N \l__jsonparse_array_index_int
}
\tl_set_eq:NN \l__jsonparse_object_array_key_tl \l__jsonparse_key_tl
@@ -412,7 +786,7 @@
\tl_if_head_eq_charcode:oNTF { \l__jsonparse_remainder_tl } : {
\tl_remove_once:NV \l__jsonparse_remainder_tl \c_colon_str
\tl_set:Ne \l__jsonparse_key_tl { \l__jsonparse_prefix_tl #1 }
- } {
+ } {
\tl_set:Nn \l__jsonparse_val_tl {#1}
\prop_gput:Nee \g_jsonparse_entries_prop
{ \l__jsonparse_key_tl } { \l__jsonparse_val_tl }
@@ -440,11 +814,24 @@
\cs_new:Npn \__jsonparse_parse_other_aux:w #1 , #2 \q_stop {
\tl_set:Ne \l__jsonparse_temp_tl { \tl_trim_spaces:n {#1} }
\cs_if_exist_use:cF { __jsonparse_parse_ \str_casefold:o { \l__jsonparse_temp_tl } : } {
- \fp_if_nan:nTF {#1} {
- % nan
- \msg_error:nnoo { jsonparse } { parsing-error }
- { \l__jsonparse_key_tl } {#1}
- } {
+ \bool_if:NTF \l__jsonparse_check_num_bool {
+ \jsonparse_if_num:nTF {#1} {
+ \tl_set:Nn \l__jsonparse_val_tl {#1}
+ \prop_gput:Nee \g_jsonparse_entries_prop
+ { \l__jsonparse_key_tl } { \l__jsonparse_val_tl }
+ % number
+ \bool_if:NT \l__jsonparse_debug_mode_bool {
+ \msg_log:nne { jsonparse } { debug-info } {
+ (key) ~ \str_use:N \l__jsonparse_key_tl : \iow_newline:
+ \iow_char:N \ \iow_char:N \ (num) ~ \str_use:N \l__jsonparse_val_tl
+ }
+ }
+ } {
+ % not a valid JSON fp
+ \msg_error:nnoo { jsonparse } { parsing-error }
+ { \l__jsonparse_key_tl } {#1}
+ }
+ } {
\tl_set:Nn \l__jsonparse_val_tl {#1}
\prop_gput:Nee \g_jsonparse_entries_prop
{ \l__jsonparse_key_tl } { \l__jsonparse_val_tl }
@@ -515,7 +902,7 @@
\tl_if_empty:NF \l__jsonparse_remainder_tl {
\exp_args:No \jsonparse_parse:n { \l__jsonparse_remainder_tl }
}
-}
+}
\cs_new_protected:Npn \jsonparse_filter:Nn #1#2 {
\prop_clear:N \l__jsonparse_temp_prop
@@ -542,98 +929,118 @@
\prop_if_exist:NF #1 {
\prop_new:N #1
}
- \prop_gput:Nnn #1 { #2 } { #3 }
+ \prop_gput:Nnn #1 {#2} {#3}
}
\cs_new:Npn \__jsonparse_externalize:Nn #1#2 {
- \file_if_exist:nTF {#2} {
- \msg_error:nnn { jsonparse } { file-exists }
+ \file_if_exist:eTF {#2} {
+ \msg_error:nne { jsonparse } { file-exists }
{#2}
} {
- \iow_open:Nn \g__jsonparse_externalize_iow {#2}
+ \iow_open:Ne \g__jsonparse_externalize_iow {#2}
\prop_map_inline:Nn #1 {
\iow_now:Nn \g__jsonparse_externalize_iow {
\JSONParsePut {#1} {##1} {##2}
}
}
\iow_close:N \g__jsonparse_externalize_iow
- \msg_info:nnn { jsonparse } { saving-external }
+ \msg_info:nne { jsonparse } { saving-external }
{#2}
}
}
% ===
-\NewDocumentCommand { \JSONParse } { o m +v } {
- \bool_set_false:N \l__jsonparse_load_external_bool
- \tl_if_novalue:nF {#1} {
- \file_if_exist:nT { #1 .jsonparse } {
- \bool_set_true:N \l__jsonparse_load_external_bool
- }
+\cs_new:Npn \__json_nested_construct_cs:Nnn #1 #2 #3 {
+ \cs_set:Npn #1 #2 ##1 #3 #2 ##2 #3 {
+ \prop_item:ce {##1} {##2}
}
- \bool_if:NTF \l__jsonparse_load_external_bool {
- \msg_info:nnn { jsonparse } { loading-external }
- { #1 .jsonparse }
- \file_input:n { #1 .jsonparse }
- } {
- \prop_new:N #2
- \tl_gclear:N \g__jsonparse_json_tl
- \group_begin:
- \cs_set:Npn \" { \exp_not:N \" }
- \cs_set:Npn \/ { \exp_not:N \/ }
- \cs_set:Npn \\ { \exp_not:N \\ }
- \cs_set:Npn \b { \exp_not:N \b }
- \cs_set:Npn \f { \exp_not:N \f }
- \cs_set:Npn \n { \exp_not:N \n }
- \cs_set:Npn \r { \exp_not:N \r }
- \cs_set:Npn \t { \exp_not:N \t }
- \cs_set:Npn \u { \exp_not:N \u }
- \cs_set:Npn \x [ ##1 ] [ ##2 ] { \prop_item:ce {##1} {##2} }
- \tl_gset_rescan:Nne \g__jsonparse_json_tl { \cctab_select:N \c__jsonparse_json_escape_cctab } {#3}
- \exp_args:NNe \jsonparse_parse_to_prop:Nn #2 { \g__jsonparse_json_tl }
- \group_end:
- \tl_if_novalue:nF {#1} {
- \__jsonparse_externalize:Nn #2 { #1 .jsonparse }
+}
+\cs_generate_variant:Nn \__json_nested_construct_cs:Nnn { Noo }
+
+\NewDocumentCommand { \JSONParse } { O{} m +v } {
+ \group_begin:
+ \str_set:Ne \l_jsonparse_current_prop_str { \cs_to_str:N #2 }
+ \keys_set_known:nnN { jsonparse / global } {#1} \l__jsonparse_unused_keys_clist
+ \keys_set_known:noN { jsonparse / parse } { \l__jsonparse_unused_keys_clist } \l__jsonparse_unused_keys_clist
+ \__jsonparse_warning_unused_keys:
+ \bool_set_false:N \l__jsonparse_externalize_load_bool
+ \bool_if:NT \l__jsonparse_externalize_bool {
+ \file_if_exist:eT { \l__jsonparse_externalize_file_name_tl .jsonparse } {
+ \bool_set_true:N \l__jsonparse_externalize_load_bool
+ }
}
- }
+ \bool_if:NTF \l__jsonparse_externalize_load_bool {
+ \msg_info:nne { jsonparse } { loading-external }
+ { \l__jsonparse_externalize_file_name_tl .jsonparse }
+ \file_input:e { \l__jsonparse_externalize_file_name_tl .jsonparse }
+ } {
+ \prop_new:N #2
+ \tl_gclear:N \g__jsonparse_json_tl
+ \group_begin:
+ \cs_set:Npn \" { \exp_not:N \" }
+ \cs_set:Npn \/ { \exp_not:N \/ }
+ \cs_set:Npn \\ { \exp_not:N \\ }
+ \cs_set:Npn \b { \exp_not:N \b }
+ \cs_set:Npn \f { \exp_not:N \f }
+ \cs_set:Npn \n { \exp_not:N \n }
+ \cs_set:Npn \r { \exp_not:N \r }
+ \cs_set:Npn \t { \exp_not:N \t }
+ \cs_set:Npn \u { \exp_not:N \u }
+ \__json_nested_construct_cs:Noo \x \c_left_brace_str \c_right_brace_str
+ \tl_set:Nn \obeyedline { ~ }
+ \tl_gset_rescan:Nne \g__jsonparse_json_tl { \cctab_select:N \c__jsonparse_json_escape_cctab } {#3}
+ \exp_args:NNe \jsonparse_parse_to_prop:Nn #2 { \g__jsonparse_json_tl }
+ \group_end:
+ \bool_if:NT \l__jsonparse_externalize_bool {
+ \__jsonparse_externalize:Nn #2 { \l__jsonparse_externalize_file_name_tl .jsonparse }
+ }
+ }
+ \group_end:
}
-\NewDocumentCommand { \JSONParseFromFile } { o m m } {
+\NewDocumentCommand { \JSONParseFromFile } { O{} m m } {
\file_if_exist:nF {#3} {
\msg_error:nnn { jsonparse } { file-not-found }
{#3}
}
- \bool_set_false:N \l__jsonparse_load_external_bool
- \tl_if_novalue:nF {#1} {
- \file_if_exist:nT { #1 .jsonparse } {
- \bool_set_true:N \l__jsonparse_load_external_bool
+ \group_begin:
+ \str_set:Ne \l_jsonparse_current_prop_str { \cs_to_str:N #2 }
+ \keys_set_known:nnN { jsonparse / global } {#1} \l__jsonparse_unused_keys_clist
+ \keys_set_known:noN { jsonparse / parse } { \l__jsonparse_unused_keys_clist } \l__jsonparse_unused_keys_clist
+ \__jsonparse_warning_unused_keys:
+ \bool_set_false:N \l__jsonparse_externalize_load_bool
+ \bool_if:NT \l__jsonparse_externalize_bool {
+ \file_if_exist:eT { \l__jsonparse_externalize_file_name_tl .jsonparse } {
+ \bool_set_true:N \l__jsonparse_externalize_load_bool
+ }
}
- }
- \bool_if:NTF \l__jsonparse_load_external_bool {
- \msg_info:nnn { jsonparse } { loading-external }
- { #1 .jsonparse }
- \file_input:n { #1 .jsonparse }
- } {
- \prop_new:N #2
- \tl_gclear:N \g__jsonparse_json_tl
- \group_begin:
- \cs_set:Npn \" { \exp_not:N \" }
- \cs_set:Npn \/ { \exp_not:N \/ }
- \cs_set:Npn \\ { \exp_not:N \\ }
- \cs_set:Npn \b { \exp_not:N \b }
- \cs_set:Npn \f { \exp_not:N \f }
- \cs_set:Npn \n { \exp_not:N \n }
- \cs_set:Npn \r { \exp_not:N \r }
- \cs_set:Npn \t { \exp_not:N \t }
- \cs_set:Npn \u { \exp_not:N \u }
- \cs_set:Npn \x [ ##1 ] [ ##2 ] { \prop_item:ce {##1} {##2} }
- \file_get:nnN {#3} { \cctab_select:N \c__jsonparse_json_escape_cctab } \g__jsonparse_json_tl
- \exp_args:NNe \jsonparse_parse_to_prop:Nn #2 { \g__jsonparse_json_tl }
- \group_end:
- \tl_if_novalue:nF {#1} {
- \__jsonparse_externalize:Nn #2 { #1 .jsonparse }
+ \bool_if:NTF \l__jsonparse_externalize_load_bool {
+ \msg_info:nne { jsonparse } { loading-external }
+ { \l__jsonparse_externalize_file_name_tl .jsonparse }
+ \file_input:e { \l__jsonparse_externalize_file_name_tl .jsonparse }
+ } {
+ \prop_new:N #2
+ \tl_gclear:N \g__jsonparse_json_tl
+ \group_begin:
+ \cs_set:Npn \" { \exp_not:N \" }
+ \cs_set:Npn \/ { \exp_not:N \/ }
+ \cs_set:Npn \\ { \exp_not:N \\ }
+ \cs_set:Npn \b { \exp_not:N \b }
+ \cs_set:Npn \f { \exp_not:N \f }
+ \cs_set:Npn \n { \exp_not:N \n }
+ \cs_set:Npn \r { \exp_not:N \r }
+ \cs_set:Npn \t { \exp_not:N \t }
+ \cs_set:Npn \u { \exp_not:N \u }
+ \cs_set:Npn \x [ ##1 ] [ ##2 ] { \prop_item:ce {##1} {##2} }
+ \file_get:nnN {#3} { \cctab_select:N \c__jsonparse_json_escape_cctab } \g__jsonparse_json_tl
+ \exp_args:NNe \jsonparse_parse_to_prop:Nn #2 { \g__jsonparse_json_tl }
+ \group_end:
+ \bool_if:NT \l__jsonparse_externalize_bool {
+ \__jsonparse_externalize:Nn #2 { \l__jsonparse_externalize_file_name_tl .jsonparse }
+ }
}
- }
+ \group_end:
}
\NewExpandableDocumentCommand { \JSONParseExpandableValue } { m m } {
@@ -682,12 +1089,16 @@
\group_end:
}
-\NewDocumentCommand { \JSONParseValue } { s m m } {
- \bool_if:NTF #1 {
- \prop_item:Ne #2 {#3}
- } {
- \exp_args:Ne \__jsonparse_rescan:n { \prop_item:Ne #2 {#3} }
- }
+\NewDocumentCommand { \JSONParseValue } { O{} m m } {
+ \group_begin:
+ \keys_set_known:nn { jsonparse / typeset } {#1} \l__jsonparse_unused_keys_clist
+ \__jsonparse_warning_unused_keys:
+ \bool_if:NTF \l__jsonparse_rescan_bool {
+ \exp_args:Ne \__jsonparse_rescan:n { \prop_item:Ne #2 {#3} }
+ } {
+ \prop_item:Ne #2 {#3}
+ }
+ \group_end:
}
\NewDocumentCommand { \JSONParseKeys } { m m } {
@@ -700,7 +1111,7 @@
\tl_if_in:nVF {##1} \l__jsonparse_child_sep_str {
\bool_if:NTF \l__jsonparse_prop_map_first_bool {
\bool_set_false:N \l__jsonparse_prop_map_first_bool
- } {
+ } {
\tl_put_right:Nn \l__jsonparse_temp_tl { , }
}
\tl_put_right:Nn \l__jsonparse_temp_tl { " ##1 " }
@@ -710,8 +1121,10 @@
\tl_set_eq:NN #2 \l__jsonparse_temp_tl
}
-\NewDocumentCommand { \JSONParseArrayValues } { s m m O{} m } {
+\NewDocumentCommand { \JSONParseArrayValues } { O{} m m O{} m } {
\group_begin:
+ \keys_set_known:nn { jsonparse / typeset } {#1} \l__jsonparse_unused_keys_clist
+ \__jsonparse_warning_unused_keys:
\tl_set:Nn \l__jsonparse_temp_tl {#2}
\jsonparse_filter:Nn \l__jsonparse_temp_tl {#3}
\bool_set_true:N \l__jsonparse_prop_map_first_bool
@@ -721,13 +1134,13 @@
} {#4} {
\bool_if:NTF \l__jsonparse_prop_map_first_bool {
\bool_set_false:N \l__jsonparse_prop_map_first_bool
- } {
+ } {
#5
}
- \bool_if:NTF #1 {
- ##2
- } {
+ \bool_if:NTF \l__jsonparse_rescan_bool {
\__jsonparse_rescan:n {##2}
+ } {
+ ##2
}
}
}
@@ -759,10 +1172,12 @@
\tl_new:N \JSONParseArrayIndex
\tl_new:N \JSONParseArrayKey
-\tl_new:N \JSONParseArrayValue
+\tl_new:N \JSONParseArrayValue
-\NewDocumentCommand { \JSONParseArrayValuesMap } { s m m O{} m } {
+\NewDocumentCommand { \JSONParseArrayValuesMap } { O{} m m O{} m } {
\group_begin:
+ \keys_set_known:nn { jsonparse / typeset } {#1} \l__jsonparse_unused_keys_clist
+ \__jsonparse_warning_unused_keys:
\jsonparse_filter:Nn #2 {#3}
\prop_map_inline:Nn #2 {
\str_if_eq:enT {
@@ -771,10 +1186,10 @@
\int_incr:N \l__jsonparse_array_index_int
\tl_set:Ne \JSONParseArrayIndex { \__jsonparse_get_array_index:w ##1 \q_stop }
\tl_set:Nn \JSONParseArrayKey {##1}
- \bool_if:NTF #1 {
- \tl_set:Nn \JSONParseArrayValue { \prop_item:Nn #2 {##1} }
- } {
+ \bool_if:NTF \l__jsonparse_rescan_bool {
\tl_set:Nn \JSONParseArrayValue { \exp_args:Ne \__jsonparse_rescan:n { \prop_item:Nn #2 {##1} } }
+ } {
+ \tl_set:Nn \JSONParseArrayValue { \prop_item:Nn #2 {##1} }
}
\use:c {#5}
}
diff --git a/macros/latex/contrib/jupynotex/README.md b/macros/latex/contrib/jupynotex/README.md
index d19b75542c..1a26ad22e4 100644
--- a/macros/latex/contrib/jupynotex/README.md
+++ b/macros/latex/contrib/jupynotex/README.md
@@ -13,15 +13,15 @@ It will convert the Jupyter Notebook format to proper LaTeX so it gets included
All you need to do is include the `jupynotex.py` and `jupynotex.sty` files in your LaTeX project, and use the package from your any of your `.tex` files:
- \usepackage{jupynotex}
+ `\usepackage{jupynotex}`
After that, you can include a whole Jupyter Notebook in your file just specifying it's file name:
- \jupynotex{file_name_for_your_notebook.ipynb}
+ `\jupynotex{file_name_for_your_notebook.ipynb}`
If you do not want to include it completely, you can optionally specify which cells:
- \jupynotex[<which cells>]{sample.ipynb}
+ `\jupynotex[<which cells>]{sample.ipynb}`
The cells specification can be numbers separated by comma, or ranges using dashes (defaulting to first and last if any side is not included).
@@ -48,18 +48,69 @@ Examples:
`\jupynotex[3,12-]{somenote.ipynb}`
+## Configurations available
+
+The whole package can be configured when included in your project:
+
+ \usepackage[OPTIONS]{jupynotex}
+
+Global options available:
+
+- `output-text-limit=N` where N is a number; it will wrap all outputs that exceed that quantity of columns
+
+Also, each cell(s) can be configured when included in your .tex files:
+
+ `\jupynotex[3, OPTIONS]{yournotebook.ipynb}`
+
+Cell options available:
+
+- `output-image-size=SIZE` where SIZE is a valid .tex size (a number with an unit, e.g. `70mm`); it will set any image in the output of those cells to the indicated size
+
+
## Full Example
Check the `example` directory in this project.
-There you will find an example `notebook.ipynb`, an `example.tex` file that includes cells from that notebook in different ways, and a `build` script.
+There you will find different notebook examples and `.tex` files using them. Also there's a build script to easily run on any of the examples, like:
+
+ ./build cell_ranges.tex
Play with it. Enjoy.
+# Supported cell types
+
+Jupyter has several types of cells, `jupynotex` supports most of those. If you find one that is not supported, please open an issue with an example.
+
+In any case, only the "code" cells are included when processing a notebook (no markdown titles, for example, to make it easy for the developer to find the numbers of cells to include).
+
+Supported cell types in the output:
+
+- `execute_result`: this may have multiple types of information inside; if an image is present, it will be included, otherwise if a latex output is present it will included (directly, so the latex is really parsed later by the LaTeX system, else the plain text will be included (verbatim).
+
+- `stream`: the different text lines will be included (verbatim)
+ result.extend(_verbatimize(x.rstrip() for x in item["text"]))
+
+- `display_data`: the image will be included
+
+- `error`: in this case the Traceback will be parsed, sanitized and included in the output keeping its structure (verbatim)
+
+Two type of images are currently supported (for the case in `execute_result` or `display_data` cell type:
+
+- PNG: used directly
+
+- SVG: converted to PDF (need to have `inkscape` present in the system) and included that
+
+
# Dependencies
-You need Python 3 in your system, and the [tcolorbox](https://ctan.org/pkg/tcolorbox) module in your LaTeX toolbox.
+You need Python 3 in your system, and the following modules in your LaTeX toolbox:
+
+- [tcolorbox](https://ctan.org/pkg/tcolorbox)
+
+- [minted](https://www.ctan.org/pkg/minted)
+
+To support SVG images in the notebook, [inkscape](https://inkscape.org/) needs to be installed and in the system's PATH.
# Feedback & Development
diff --git a/macros/latex/contrib/jupynotex/example/build b/macros/latex/contrib/jupynotex/example/build
deleted file mode 100755
index 51598c0450..0000000000
--- a/macros/latex/contrib/jupynotex/example/build
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-ln -s ../jupynotex.py .
-ln -s ../jupynotex.sty .
-xelatex -shell-escape example.tex
diff --git a/macros/latex/contrib/jupynotex/example/example.tex b/macros/latex/contrib/jupynotex/example/example.tex
deleted file mode 100644
index 5251586b63..0000000000
--- a/macros/latex/contrib/jupynotex/example/example.tex
+++ /dev/null
@@ -1,27 +0,0 @@
-\documentclass{article}
-
-\usepackage{jupynotex}
-
-\begin{document}
-
-One cell:
-
-\jupynotex[1]{notebook.ipynb}
-
-
-A range of cells:
-
-\jupynotex[4-6]{notebook.ipynb}
-
-
-Some specific cells:
-
-\jupynotex[12,17]{notebook.ipynb}
-
-
-The whole notebook:
-
-\jupynotex{notebook.ipynb}
-
-
-\end{document}
diff --git a/macros/latex/contrib/jupynotex/example/notebook.ipynb b/macros/latex/contrib/jupynotex/example/notebook.ipynb
deleted file mode 100644
index a423e9a11f..0000000000
--- a/macros/latex/contrib/jupynotex/example/notebook.ipynb
+++ /dev/null
@@ -1,593 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "scrolled": true
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Non alphanums {'>', '\\t', '[', '\\r', '\\x13', '\\x1d', '<', '^', '\\x04', '\\x08', '\\x17', '\\x1b', '\\\\', '\\x19', '`', '\\x1f', '$', '\\x0b', '\\x14', '\\x12', '\\x18', ')', '=', '?', ' ', \"'\", '\\x1c', '|', ';', '/', '\\x1e', '\\n', '\\x07', '\\x10', '\\x03', '\\x02', '#', '\\x0c', '@', '\\x16', '_', '}', '.', '-', '(', '!', '+', '\\x06', ']', '{', ':', '\\x01', '\\x11', '\\x0f', '\\x05', ',', '~', '\\x15', '\\x00', '\"', '%', '\\x0e', '*', '&', '\\x1a'}\n",
- "Separators b'([\\\\>\\\\\\t\\\\[\\\\\\r\\\\\\x13\\\\\\x1d\\\\<\\\\^\\\\\\x04\\\\\\x08\\\\\\x17\\\\\\x1b\\\\\\\\\\\\\\x19\\\\`\\\\\\x1f\\\\$\\\\\\x0b\\\\\\x14\\\\\\x12\\\\\\x18\\\\)\\\\=\\\\?\\\\ \\\\\\'\\\\\\x1c\\\\|\\\\;\\\\/\\\\\\x1e\\\\\\n\\\\\\x07\\\\\\x10\\\\\\x03\\\\\\x02\\\\#\\\\\\x0c\\\\@\\\\\\x16\\\\_\\\\}\\\\.\\\\-\\\\(\\\\!\\\\+\\\\\\x06\\\\]\\\\{\\\\:\\\\\\x01\\\\\\x11\\\\\\x0f\\\\\\x05\\\\,\\\\~\\\\\\x15\\\\\\x00\\\\\"\\\\%\\\\\\x0e\\\\*\\\\&\\\\\\x1a])'\n"
- ]
- }
- ],
- "source": [
- "import string\n",
- "\n",
- "non_alphanums = set(chr(x) for x in range(127)) - set(string.ascii_letters) - set(string.digits)\n",
- "print(\"Non alphanums\", non_alphanums)\n",
- "separators = '([' + ''.join('\\\\' + x for x in non_alphanums) + '])'\n",
- "separators = separators.encode('ascii')\n",
- "print(\"Separators\", separators)\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[b'dlg',\n",
- " b'=',\n",
- " b'Resource',\n",
- " b'.',\n",
- " b'loadfromresfile',\n",
- " b'(',\n",
- " b'filename',\n",
- " b',',\n",
- " b'win',\n",
- " b',',\n",
- " b'QuoteDialog',\n",
- " b'.',\n",
- " b'MyQuoteDialog',\n",
- " b',',\n",
- " b\"'\",\n",
- " b'QuoteDialog',\n",
- " b\"'\",\n",
- " b',',\n",
- " b'win',\n",
- " b')']"
- ]
- },
- "execution_count": 2,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "import re\n",
- "program_line = b\"\"\"dlg = Resource.loadfromresfile(filename, win, QuoteDialog.MyQuoteDialog, 'QuoteDialog', win)\"\"\"\n",
- "tokens = [t for x in re.split(separators, program_line) if (t := x.strip())]\n",
- "tokens"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Checking base dir: HTML document\n",
- "Checking base dir: C source\n",
- "Checking base dir: C++ source\n",
- "Checking base dir: PHP script\n",
- "Checking base dir: ReStructuredText file\n",
- "Checking base dir: Python script\n",
- "Checking base dir: Ruby script\n",
- "Checking base dir: Java source\n",
- "Checking base dir: Objective-C source\n",
- "Checking base dir: Perl5 module source\n",
- "Checking base dir: XML 1.0 document\n"
- ]
- }
- ],
- "source": [
- "import os\n",
- "from collections import Counter\n",
- "\n",
- "DUMP_BASE = '/home/facundo/devel/ml/dump'\n",
- "\n",
- "# directories with 1000 files of each code type, excluding \"just text\" (ascii, utf8, etc)\n",
- "CODE_TYPES = [\n",
- " 'HTML document',\n",
- " 'C source',\n",
- " 'C++ source',\n",
- " 'PHP script',\n",
- " 'ReStructuredText file',\n",
- " 'Python script',\n",
- " 'Ruby script',\n",
- " 'Java source',\n",
- " 'Objective-C source',\n",
- " 'Perl5 module source',\n",
- " 'XML 1.0 document',\n",
- "]\n",
- "\n",
- "# let's collect ALL tokens present in all the program files\n",
- "tokens = Counter()\n",
- "for basedir in CODE_TYPES:\n",
- " print(\"Checking base dir:\", basedir)\n",
- " for dirpath, dirnames, filenames in os.walk(os.path.join(DUMP_BASE, basedir)):\n",
- " for fname in filenames:\n",
- " fpath = os.path.join(dirpath, fname)\n",
- " with open(fpath, 'rb') as fh:\n",
- " tokens.update(t for x in re.split(separators, fh.read()) if (t := x.strip()))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Total different tokens 213400\n",
- " 870525 b'.'\n",
- " 756849 b'_'\n",
- " 730609 b'('\n",
- " 717433 b'='\n",
- " 699725 b')'\n",
- " 688556 b'/'\n",
- " 661461 b'\"'\n",
- " 640989 b','\n",
- " 625121 b'-'\n",
- " 594091 b'>'\n"
- ]
- }
- ],
- "source": [
- "different_tokens = len(tokens)\n",
- "print(\"Total different tokens\", different_tokens)\n",
- "for name, quant in tokens.most_common(10):\n",
- " print(\"{:8d} {}\".format(quant, name))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Total tokens found: 20101050\n",
- "Total representative: 3324\n",
- "Last ten...\n",
- " 289 b'enables'\n",
- " 289 b'smaller'\n",
- " 289 b'Creates'\n",
- " 289 b'cross'\n",
- " 289 b'GLFW'\n",
- " 289 b'Os'\n",
- " 289 b'usb'\n",
- " 288 b'stylesheets'\n",
- " 288 b'ad'\n",
- " 288 b'WIDTH'\n"
- ]
- }
- ],
- "source": [
- "import numpy as np\n",
- "\n",
- "total_tokens = sum(tokens.values())\n",
- "print(\"Total tokens found:\", total_tokens)\n",
- "\n",
- "most = total_tokens * 0.9\n",
- "tot = 0\n",
- "representative_data = []\n",
- "for name, quant in tokens.most_common():\n",
- " representative_data.append((name, quant))\n",
- " tot += quant\n",
- " if tot > most:\n",
- " break\n",
- "\n",
- "print(\"Total representative:\", len(representative_data))\n",
- "print(\"Last ten...\")\n",
- "for name, quant in representative_data[-10:]:\n",
- " print(\"{:8d} {}\".format(quant, name))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Collecting data from base dir HTML document\n",
- "Collecting data from base dir C source\n",
- "Collecting data from base dir C++ source\n",
- "Collecting data from base dir PHP script\n",
- "Collecting data from base dir ReStructuredText file\n",
- "Collecting data from base dir Python script\n",
- "Collecting data from base dir Ruby script\n",
- "Collecting data from base dir Java source\n",
- "Collecting data from base dir Objective-C source\n",
- "Collecting data from base dir Perl5 module source\n",
- "Collecting data from base dir XML 1.0 document\n",
- "Src data samples: 11000\n"
- ]
- }
- ],
- "source": [
- "import random\n",
- "\n",
- "# real \"ML data\": a list of (code_type, features) (one pair for each file)\n",
- "# code_type: the *position* of the code type corresponding to the file (needs to be an int)\n",
- "# features: a list of values, each value corresponds to how many of the tokens of that position the file has\n",
- "\n",
- "representative_tokens = [name for name, _ in representative_data]\n",
- "\n",
- "all_src_data = []\n",
- "for idx, basedir in enumerate(CODE_TYPES):\n",
- " print(\"Collecting data from base dir\", basedir)\n",
- " for dirpath, dirnames, filenames in os.walk(os.path.join(DUMP_BASE, basedir)):\n",
- " for fname in filenames:\n",
- " fpath = os.path.join(dirpath, fname)\n",
- " with open(fpath, 'rb') as fh:\n",
- " fcontent = fh.read()\n",
- " \n",
- " file_tokens = Counter(t for x in re.split(separators, fcontent) if (t := x.strip()))\n",
- " token_quantities = [file_tokens.get(t, 0) for t in representative_tokens]\n",
- "\n",
- " all_src_data.append((idx, token_quantities))\n",
- "\n",
- "print(\"Src data samples:\", len(all_src_data))\n",
- "\n",
- "# shuffle, as currently is too much \"per directory\"\n",
- "random.shuffle(all_src_data)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [],
- "source": [
- "import tensorflow as tf\n",
- "from tensorflow.keras import Model, layers\n",
- "import numpy as np\n",
- "\n",
- "# representation of our model\n",
- "num_classes = len(CODE_TYPES)\n",
- "num_features = len(representative_tokens)\n",
- "\n",
- "# 1st and 2nd layer number of neurons (these numbers are just chamuyo)\n",
- "n_hidden_1 = 128 \n",
- "n_hidden_2 = 256\n",
- "\n",
- "# training parameters (more chamuyo)\n",
- "learning_rate = 0.1\n",
- "\n",
- "batch_size = 256\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Example code types: (2, 0, 4, 4, 5)\n",
- "Example token quants: [246, 786, 246, 61, 246] [32, 32, 5, 22, 5]\n",
- "Token quants shape: (11000, 3324)\n",
- "Example normalized quants: [0.3129771 1. 0.3129771 0.07760815 0.3129771 ] [0.9411765 0.9411765 0.14705883 0.64705884 0.14705883]\n"
- ]
- }
- ],
- "source": [
- "# separate the source data and into two pairing lists\n",
- "code_types, token_quantities = zip(*all_src_data)\n",
- "print(\"Example code types:\", code_types[:5])\n",
- "print(\"Example token quants:\", token_quantities[0][:5], token_quantities[117][:5])\n",
- "\n",
- "# convert features to float\n",
- "float_quantities = np.array(token_quantities, np.float32)\n",
- "print(\"Token quants shape:\", float_quantities.shape)\n",
- "\n",
- "# normalize EACH ONE to [0, 1]\n",
- "for quants in float_quantities:\n",
- " quants /= max(quants)\n",
- "print(\"Example normalized quants:\", float_quantities[0][:5], float_quantities[117][:5])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Real training set: 89.70%\n"
- ]
- }
- ],
- "source": [
- "# let's prepare the teching sets, input and output for training first (90% of cases) and\n",
- "# then testing what's learned (the remaining 10%); \n",
- "input_training = []\n",
- "output_training = []\n",
- "input_testing = []\n",
- "output_testing = []\n",
- "for token_distribution, code_type in zip(float_quantities, code_types):\n",
- " if random.random() < .1:\n",
- " input_testing.append(token_distribution)\n",
- " output_testing.append(code_type)\n",
- " else:\n",
- " input_training.append(token_distribution)\n",
- " output_training.append(code_type)\n",
- "print(\"Real training set: {:.2f}%\".format(100 * len(input_training) / len(float_quantities))) "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [],
- "source": [
- "import tensorflow as tf\n",
- "from tensorflow.keras import Model\n",
- "\n",
- "class NeuralNet(Model):\n",
- " \"\"\"Chamuyo al cuadrado.\"\"\"\n",
- " \n",
- " def __init__(self):\n",
- " super(NeuralNet, self).__init__()\n",
- " self.fc1 = layers.Dense(n_hidden_1, activation=tf.nn.sigmoid) # se puede cambiar a relu\n",
- " self.fc2 = layers.Dense(n_hidden_2, activation=tf.nn.sigmoid) # se puede cambiar a relu\n",
- " self.out = layers.Dense(num_classes)\n",
- "\n",
- " def call(self, x, is_training=False):\n",
- " x = self.fc1(x)\n",
- " x = self.fc2(x)\n",
- " x = self.out(x)\n",
- " if not is_training:\n",
- " # tf cross entropy expect logits without softmax, so only\n",
- " # apply softmax when not training.\n",
- " x = tf.nn.softmax(x)\n",
- " return x\n",
- "\n",
- "neural_net = NeuralNet()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Note that this will apply 'softmax' to the logits.\n",
- "def cross_entropy_loss(x, y):\n",
- " # Convert labels to int 64 for tf cross-entropy function.\n",
- " y = tf.cast(y, tf.int64)\n",
- " # Apply softmax to logits and compute cross-entropy.\n",
- " loss = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=x)\n",
- " # Average loss across the batch.\n",
- " return tf.reduce_mean(loss)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Stochastic gradient descent optimizer.\n",
- "optimizer = tf.optimizers.SGD(learning_rate)\n",
- "\n",
- "# Optimización. \n",
- "def run_optimization(x, y):\n",
- " # Funciones para calcular el gradiente\n",
- " with tf.GradientTape() as g:\n",
- " # Algoritmo de forward\n",
- " pred = neural_net(x, is_training=True)\n",
- " # Computa la función de costo o pérdida utilizando entropía cruzada\n",
- " loss = cross_entropy_loss(pred, y)\n",
- " \n",
- " # Actualiza las variables de entrenamiento.\n",
- " trainable_variables = neural_net.trainable_variables\n",
- "\n",
- " # Computa los gradientes\n",
- " gradients = g.gradient(loss, trainable_variables)\n",
- " \n",
- " # Actualiza los nuevos parámetros W (pesos) y b (bias).\n",
- " optimizer.apply_gradients(zip(gradients, trainable_variables))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Accuracy metric.\n",
- "def accuracy(y_pred, y_true):\n",
- " # Predicted class is the index of highest score in prediction vector (i.e. argmax).\n",
- " correct_prediction = tf.equal(tf.argmax(y_pred, 1), tf.cast(y_true, tf.int64))\n",
- " return tf.reduce_mean(tf.cast(correct_prediction, tf.float32), axis=-1)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Step 100: loss=2.379924, accuracy=0.125000\n",
- "Step 200: loss=2.372284, accuracy=0.128906\n",
- "Step 300: loss=2.366430, accuracy=0.140625\n",
- "Step 400: loss=2.360768, accuracy=0.121094\n",
- "Step 500: loss=2.347394, accuracy=0.109375\n",
- "Step 600: loss=2.349795, accuracy=0.199219\n",
- "Step 700: loss=2.312950, accuracy=0.218750\n",
- "Step 800: loss=2.284508, accuracy=0.289062\n",
- "Step 900: loss=2.173395, accuracy=0.335938\n",
- "Step 1000: loss=2.115966, accuracy=0.300781\n",
- "Step 1100: loss=1.977837, accuracy=0.441406\n",
- "Step 1200: loss=1.860783, accuracy=0.425781\n",
- "Step 1300: loss=1.866206, accuracy=0.425781\n",
- "Step 1400: loss=1.773057, accuracy=0.402344\n",
- "Step 1500: loss=1.736271, accuracy=0.546875\n",
- "Step 1600: loss=1.626320, accuracy=0.578125\n",
- "Step 1700: loss=1.537970, accuracy=0.539062\n",
- "Step 1800: loss=1.369012, accuracy=0.609375\n",
- "Step 1900: loss=1.286771, accuracy=0.625000\n",
- "Step 2000: loss=1.270916, accuracy=0.640625\n"
- ]
- }
- ],
- "source": [
- "train_data = tf.data.Dataset.from_tensor_slices((input_training, output_training))\n",
- "\n",
- "# NOTE: this doesn't only selectes, it completely transform the structures\n",
- "# from <TensorSliceDataset shapes: ((3324,), ()), types: (tf.float32, tf.int32)>\n",
- "# to <PrefetchDataset shapes: ((None, 3324), (None,)), types: (tf.float32, tf.int32)>\n",
- "train_data = train_data.repeat().shuffle(5000).batch(batch_size).prefetch(1)\n",
- "\n",
- "display_step = 100\n",
- "training_steps = 2000\n",
- "\n",
- "# Run training for the given number of steps.\n",
- "for step, (input_batch, output_batch) in enumerate(train_data.take(training_steps), 1):\n",
- " # Run the optimization to update W and b values.\n",
- " run_optimization(input_batch, output_batch)\n",
- " \n",
- " if step % display_step == 0:\n",
- " pred = neural_net(input_batch, is_training=True)\n",
- " loss = cross_entropy_loss(pred, output_batch)\n",
- " acc = accuracy(pred, output_batch)\n",
- " print(\"Step {}: loss={:f}, accuracy={:f}\".format(step, loss, acc))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Test Accuracy: 0.578994\n"
- ]
- }
- ],
- "source": [
- "# Test model on validation set\n",
- "input_testing = np.array(input_testing)\n",
- "pred = neural_net(input_testing, is_training=False)\n",
- "print(\"Test Accuracy: {:f}\".format(accuracy(pred, output_testing)))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 18,
- "metadata": {},
- "outputs": [],
- "source": [
- "# If we consider the \"more probable\" prediction on each item, how well it goes?\n",
- "all_guesses = neural_net(input_testing, is_training=False)\n",
- "guesses_ok = [0] * len(CODE_TYPES)\n",
- "guesses_bad = [0] * len(CODE_TYPES)\n",
- "\n",
- "for guess, real in zip(all_guesses, output_testing):\n",
- " # guess is an array of len(CODE_TYPES) with a float in each position showing\n",
- " # which one is the most probable to be real, so we need to get position \n",
- " # for the max one and check if it matches with the real real :)\n",
- " position_for_max = np.where(guess == np.amax(guess))[0][0]\n",
- " if position_for_max == real:\n",
- " guesses_ok[real] += 1\n",
- " else:\n",
- " guesses_bad[real] += 1"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 19,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAFmCAYAAACC84ZkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAABBB0lEQVR4nO3debyc4/3/8dc7mwSJWPJNEZHUEiUbkqC2iLWqltb6pYKiliLftrZuWt+26LdVxY9GLaGUoLbqYkkT+5KECEFsDUIQscUSJD6/P65r5txnMnPOnGSue87yeT4e8zhz3/fM/bnuOTNzzbXLzHDOOecAOtU7Ac4551oPzxScc84VeabgnHOuyDMF55xzRZ4pOOecK/JMwTnnXJFnCq4RSQdLurPe6XCBpG0lzc4p1hxJOyU6dw9JD0jarYnHjJY0N7M9S9LoFOlxlXmm0M5JmiLpXUkrVPN4M7vGzHZZjngTJP1yWZ/f0UkySesXts3sPjMbVM801ch44Hdm9q9qn2Bmm5jZlHRJcuV4ptCOSRoAbAsYsGcO8TqnjtFeSOpS7zTkycwONbOb6p0O1zzPFNq3Q4GHgQnA2OwBSetIuknSfEkLJF0Y9x8m6f7M4zaSdJekdyTNlrR/5tgESRdL+oekj4DvAAcDp0j6UNLf4uO+Ekss78UqgT0z59hd0tOSFkp6TdIPy12IpE6SfiLpZUlvSbpK0ioVHjta0lxJP4iPnSfp8MzxVeLz58fz/URSVZ+FeB1nSXpU0geSbpW0Wub4nvEa34uP/Urm2BxJp0qaCXxUmjFIujfefSK+fgeUqVKZI+n0+Jq9K+kKSd0zx4+S9EL8f90maa0mruXb8foXSPpxybFOkk6T9GI8fn32Osucay9JM+Jr8mKhmkjSWjEd78R0HZV5To/4HnpX0tPAyJJzFquz4mOvjI99RtIpJa9LxfeYayEz81s7vQEvAMcBmwOfA33j/s7AE8DvgZWA7sA28dhhwP3x/krAq8DhQBdgU+BtYON4fALwPrA14QdG97jvl5k0dI3p+BHQDRgDLAQGxePzgG3j/VWBzSpcyxHxPF8GVgZuAv5c4bGjgcXAmTH+7sDHwKrx+FXArUBPYADwHPCdKl/TKcBrwOD4+vwVuDoe2xD4CNg5xj0lprlbPD4HmAGsA/SocH4D1i+5lrmZ7TnAU/EcqwEPFF7v+Nq+DWwGrABcANxbIc7GwIfAdvGx58bXbKd4/CTCD4p+8fh44NoK5xoV3wc7x/fB2sBG8di9wEXxvTEcmA+MicfOBu6L17FOvK7Sa90p89h74nukHzCz8FiaeY/5rYXfG/VOgN8S/WNhG0JGsEbcfhb4n3h/q/jh7FLmeYfRkCkcANxXcnw8cEa8PwG4quT4BBpnCtsCbwCdMvuuBX4e778CfBfo1cz1TAKOy2wPitdX7hpGA59kjwFvAVsSMsTPiBlbPPZdYEqVr+sU4OzM9sbxfJ2BnwLXZ451ImQgo+P2HOCIZs5fTaZwTGZ7d+DFeP8y4DeZYyvH12hAmTg/A67LbK8Ur6PwJfwMsGPm+JpNvN7jgd+X2b8OsATomdl3FjAh3n8J2C1z7Ogy17pT5rG7Zo4dSUOm0OR7zG8tu3n1Ufs1FrjTzN6O23+hoQppHeBlM1vczDnWBbaIRfL3JL1HqB76UuYxrzZzjrWAV83si8y+lwm/JgG+Rfhie1nSPZK2auI8L5ecowvQt8LjF5Rc38eEL8k1CL8sS8+1NtXLXvPL8XxrlKYxXvOrJedu7vValviFKqLS+B8CCyh/bWtlz2NmH8XHFqwL3Jz5vz9D+IIv93qvA7xYIcY7ZrawJL1rZ46XXkslpY99tfRYE+8x1wIdqrGro5DUA9gf6Czpjbh7BaC3pGGED1R/SV2ayRheBe4xs52beEzpNLul268D60jqlPnQ9idU2WBmU4G9JHUFvgdcT/iSKfU64YuqoD+huuPNJtJWztuEX7zrAk9nzvVaC86RTV//eL63YxqHFA5IUnxs9ty1mJa4NP7r8X6j10jSSsDqlL+2eUC2vWPF+NiCVwmlmgeqSM+rwHpl9r8OrCapZyZjyL7W8+K1zMocq2Qeodqo8D/LvgZNvsdcy3hJoX3am/CrbmNCPe5wwhfAfYTG50cJH7KzJa0kqbukrcuc53Zgw9gg2TXeRmYbT8t4k1DvX/AI4Vf6KfH5o4FvANdJ6qYwLmIVM/sc+AD4ovSE0bXA/0gaKGll4NfAxCpKO42Y2RJCxvMrST0lrQt8H7gaQo8thW6hA5o4zSGSNo5fpGcCN2bO+3VJO8ZM7gfAp8CDLUhi6etXzvGS+sWG3x8DE+P+a4HDJQ1X6IL8a+ARM5tT5hw3AntI2kZSt3gd2e+DPxJeo3UBJPWRtFeF9FwW4+4YG6jXlrSRmb1KuPaz4ntsKKEzwtXxedcDp0taVVI/4IQmrjn72LUJPyAKKr7Hmjifq6Te9Vd+q/0N+BehT3jp/v0Jda9dCL+kbiFUGbwNnB8fcxixTSFuDwL+TmiDWAD8Gxgej00g034Q921AaEx9D7gl7tuE0Ej4PuGX3j5xf7eY1ncJGcJUYoN3mbR3ItSDvxrTcjWx4bjMY0eTqZuO++bQUD+9anz+/Hi+nxHrown103OArhXOPYVQL/5oTPPfiO028fg+8Rrfj9e8Sbk0NPG/O4aQYb8X/1+NriWe4/QY4z3gSmDFkue/CLxDyNT7NRFrLKFNZwEhc8m+Rp0ImeVsQqPti8CvmzjXPoTG34WERt9d4/5+MR3vxHNk20NWJDT6vxev5+Qy11pIz0rAn+NjnwF+QmxLaeo95reW3xRfUOccIOknwHwzG1/h+BRCb6NLc01YQ/w5wJFmdnc94rcWko4FDjSz7eudlvbG2xScyzAzH43dCklak1Ct9hChNPoD4MK6Jqqd8kzBOdcWdCN0fR1IqEK6jjD+wdWYVx8555wr8t5Hzjnnitp89dEaa6xhAwYMqHcynHOuTZk+ffrbZtandH+bzxQGDBjAtGnT6p0M55xrUySVHUHu1UfOOeeKPFNwzjlX5JmCc865ojbfpuA6ls8//5y5c+eyaNGieiel3ejevTv9+vWja9eu9U6KawU8U3Btyty5c+nZsycDBgwgTELqloeZsWDBAubOncvAgQPrnRzXCnj1kWtTFi1axOqrr+4ZQo1IYvXVV/eSlytKmilIulxhjdynMvv+T9KzkmZKullS78yx0+M6rrMl7Zoyba7t8gyhtvz1dFmpSwoTgN1K9t0FDDazoYRFME4HkLQxcCBhCtzdgIskdU6cPueccxlJ2xTM7N7SxUrM7M7M5sPAvvH+XoQ1Yz8F/iPpBcKC4A+lTKNr2wac9veanm/O2V+v6nFvvPEG48aNY+rUqfTu3Zu+ffty3nnnseGGG9Y0PeVMmDCBXXbZhbXWWqv5BzvXQvVuaD6ChlWj1iZkEgVzqbDGqqSjCYt8079/Uyv4OVd7ZsY+++zD2LFjue66sLjXE088wZtvvtlsprB48WK6dOlScbsaEyZMYPDgwe0jU/j5KgnP/X66c7djdWtolvRjwhq717T0uWZ2iZmNMLMRffosNXWHc0lNnjyZrl27cswxxxT3DRs2jG222YaTTz6ZwYMHM2TIECZODL93pkyZwrbbbsuee+7JxhtvvNT2kiVLOPnkkxk5ciRDhw5l/PiG9X3OOecchgwZwrBhwzjttNO48cYbmTZtGgcffDDDhw/nk08+YdKkSWy66aYMGTKEI444gk8//TT318S1H3UpKUg6DNgD2NEa5u5+jcaLcfejZYupO5eLp556is0333yp/TfddBMzZszgiSee4O2332bkyJFst912ADz22GM89dRTDBw4kClTpjTavuSSS1hllVWYOnUqn376KVtvvTW77LILzz77LLfeeiuPPPIIK664Iu+88w6rrbYaF154Ib/97W8ZMWIEixYt4rDDDmPSpElsuOGGHHrooVx88cWMGzcu51fFtRe5lxQk7QacAuxpZh9nDt0GHChpBUkDCasrPZp3+pxbVvfffz8HHXQQnTt3pm/fvmy//fZMnToVgFGjRjUaB5DdvvPOO7nqqqsYPnw4W2yxBQsWLOD555/n7rvv5vDDD2fFFVcEYLXVVlsq5uzZsxk4cGCx2mrs2LHce++9qS/VtWNJSwqSriUsPL6GpLnAGYTeRisAd8WucA+b2TFmNkvS9YRFtxcDx5vZkpTpc25ZbLLJJtx4440tes5KK61UcdvMuOCCC9h118a9sO+4445lT6RzyyhpScHMDjKzNc2sq5n1M7PLzGx9M1vHzIbH2zGZx//KzNYzs0Fm9s+UaXNuWY0ZM4ZPP/2USy65pLhv5syZ9O7dm4kTJ7JkyRLmz5/Pvffey6hRo5o936677srFF1/M559/DsBzzz3HRx99xM4778wVV1zBxx+HAvU777wDQM+ePVm4cCEAgwYNYs6cObzwwgsA/PnPf2b77X0te7fs6t37yLnlUm0X0lqSxM0338y4ceM455xz6N69OwMGDOC8887jww8/ZNiwYUjiN7/5DV/60pd49tlnmzzfkUceyZw5c9hss80wM/r06cMtt9zCbrvtxowZMxgxYgTdunVj991359e//jWHHXYYxxxzDD169OChhx7iiiuuYL/99mPx4sWMHDmyUQO4cy3V5tdoHjFihPkiOx3HM888w1e+8pV6J6Pdqdvr6l1S60bSdDMbUbq/Y5cUUr0h/c3onGujfEI855xzRZ4pOOecK/JMwTnnXJFnCs4554o8U3DOOVfUsXsfubav1j3Iqug5tvLKK/Phhx/WNm4NnXfeeRx99NHF6TGcawkvKTjXiixevLjJ7Wqcd955xVHQzrWUZwrOLaMpU6YwevRo9t13XzbaaCMOPvhgCoNBp06dyle/+lWGDRvGqFGjWLhwIYsWLeLwww9nyJAhbLrppkyePBkI6yPsueeejBkzhh133HGp7Y8++ogjjjiCUaNGsemmm3LrrbcCsGTJEn74wx8yePBghg4dygUXXMD555/P66+/zg477MAOO+wAwLXXXsuQIUMYPHgwp556an1eLNdmePWRc8vh8ccfZ9asWay11lpsvfXWPPDAA4waNYoDDjiAiRMnMnLkSD744AN69OjBH/7wByTx5JNP8uyzz7LLLrvw3HPPAWFq7ZkzZ7LaaqsxYcKERts/+tGPGDNmDJdffjnvvfceo0aNYqedduKqq65izpw5zJgxgy5duhSn1j733HOZPHkya6yxBq+//jqnnnoq06dPZ9VVV2WXXXbhlltuYe+9967vC+daLS8pOLccRo0aRb9+/ejUqRPDhw9nzpw5zJ49mzXXXJORI0cC0KtXL7p06cL999/PIYccAsBGG23EuuuuW8wUdt5550ZTY2e377zzTs4++2yGDx/O6NGjWbRoEa+88gp333033/3ud4srt5WbWnvq1KmMHj2aPn360KVLFw4++GCfWts1yUsKzi2HFVZYoXi/c+fOy9QGAM1Prf3Xv/6VQYMGLVsinWsBLyk4V2ODBg1i3rx5xQV2Fi5cyOLFi9l222255pqw+uxzzz3HK6+8UtUX/a677soFF1xQbK94/PHHgVCaGD9+fDEjKje19qhRo7jnnnt4++23WbJkCddee61Pre2a5CUF17a1wskHu3XrxsSJEznhhBP45JNP6NGjB3fffTfHHXccxx57LEOGDKFLly5MmDChUUmjkp/+9KeMGzeOoUOH8sUXXzBw4EBuv/12jjzySJ577jmGDh1K165dOeqoo/je977H0UcfzW677cZaa63F5MmTOfvss9lhhx0wM77+9a+z11575fAquLaqY0+d7bOktjk+dXYaPnV2x1Np6myvPnLOOVfk1UeudvxXn3NtnpcUXJvT1qs8Wxt/PV2WZwquTenevTsLFizwL7IaMTMWLFhA9+7d650U10p49ZFrU/r168fcuXOZP39+vZPSbnTv3p1+/frVOxntVxvr0OKZgmtTunbtysCBA+udDOfaLa8+cs45V+SZgnPOuaKk1UeSLgf2AN4ys8Fx32rARGAAMAfY38zelSTgD8DuwMfAYWb2WMr05c67bLrWzt+jHV7qksIEYLeSfacBk8xsA2BS3Ab4GrBBvB0NXJw4bc4550okzRTM7F7gnZLdewFXxvtXAntn9l9lwcNAb0lrpkyfc865xurR+6ivmc2L998A+sb7awOvZh43N+6bRwlJRxNKE/Tv3z9dSl3r18a6+znX2tW1odnCCKQWj0Iys0vMbISZjejTp0+ClDnnXMdUj5LCm5LWNLN5sXrorbj/NWCdzOP6xX3OdVze8Ft7XrpsUj1KCrcBY+P9scCtmf2HKtgSeD9TzeSccy4HqbukXguMBtaQNBc4AzgbuF7Sd4CXgf3jw/9B6I76AqFL6uEp0+acc25pSTMFMzuowqEdyzzWgONTpsc551zTfESzc865Is8UnHPOFXmm4Jxzrsinzm7PvDujc66FvKTgnHOuyDMF55xzRZ4pOOecK/JMwTnnXJE3NDvnXEIDFv0lyXnnJDmrlxScc85leEnBuZbwGTZdO+clBeecc0WeKTjnnCvy6iNXM6ka1CBdo5pzrjEvKTjnnCvykoJzrshLe85LCs4554o8U3DOOVfkmYJzzrkizxScc84VeabgnHOuyDMF55xzRZ4pOOecK6p6nIKkbsCGcXO2mX2eJknOOefqpapMQdJo4ErC+BMB60gaa2b3JkuZc8653FVbUvgdsIuZzQaQtCFwLbB5qoQ555zLX7VtCl0LGQKAmT0HdF2ewJL+R9IsSU9JulZSd0kDJT0i6QVJE2OVlXPOuZxUmylMk3SppNHx9idg2rIGlbQ2cCIwwswGA52BA4FzgN+b2frAu8B3ljWGc865lqs2UzgWeJrwRX5ivH/scsbuAvSQ1AVYEZgHjAFujMevBPZezhjOOedaoKo2BTP7FDg33pabmb0m6bfAK8AnwJ3AdOA9M1scHzYXWLvc8yUdDRwN0L9//1okyTnXQaSaCXZOkrPmr9reR08CVrL7fUIV0i/NbEFLgkpaFdgLGAi8B9wA7Fbt883sEuASgBEjRpSmyznn3DKqtvfRP4ElQCGLPZBQ5fMGMAH4Rgvj7gT8x8zmA0i6Cdga6C2pSywt9ANea+F5nXPOLYdqM4WdzGyzzPaTkh4zs80kHbIMcV8BtpS0IqH6aEdCqWMysC9wHTAWuHUZzu2cc24ZVdvQ3FnSqMKGpJGEHkMAi8s/pTIze4TQoPwY8GRMxyXAqcD3Jb0ArA5c1tJzO+ecW3bVlhSOBC6XtDJhRPMHwJGSVgLOWpbAZnYGcEbJ7peAUWUe7pxzLgfV9j6aCgyRtErcfj9z+PoUCXPOOZe/JjMFSYeY2dWSvl+yHwAzq0kXVeecc61DcyWFleLfnqkT4pxzrv6azBTMbHz8+4t8kuOcc66emqs+Or+p42Z2Ym2T41zr5qNhXXvXXJfU6fHWHdgMeD7ehgM+g6lzzrUzzVUfXQkg6Vhgm8K8RJL+CNyXPnnOOefyVO3gtVWBXpntleM+55xz7Ui1g9fOBh6XNJkweG074OepEuWcc64+qh28doWkfwJbEGZLPdXM3kiaMuecc7mrtqQAYfqJbeN9A/5W++Q455yrp4qZgqTtgIfM7HNJZwMjgWvi4RMlbWVmP8ojkc5V4l1EnautphqaFwF/jPd3B3Y2s8vN7HLCgjh7pE6cc865fFUsKZjZo5I+yuzqDbwT76+SMlHOOefqo7lxCrPi3bNYuvfRaYnT5pxzLmfV9j66VtIUQrsCeO8j55xrl6oavCZpH+BjM7vNzG4DFknaO2nKnHPO5a7aEc1nZBfWMbP3WHrVNOecc21cteMUymUeLRnj4JxzS0nVpRi8W/GyqrakME3SuZLWi7dzCbOnOueca0eqzRROAD4DJgLXEcYwHJ8qUc455+qj2t5HH+FdUJ1zrt2rtqTgnHOuA/BMwTnnXJFnCs4554qqHby2oaRJkp6K20Ml/WR5AkvqLelGSc9KekbSVpJWk3SXpOfjX1/dzTnnclRtSeFPwOnA5wBmNhM4cDlj/wH4l5ltBAwDniE0Zk8ysw2ASXjjtnPO5araTGFFM3u0ZN/iZQ0qaRXCpHqXAZjZZ3GU9F7AlfFhVwJ7L2sM55xzLVdtpvC2pPUIK64haV9g3nLEHQjMB66Q9LikSyWtBPQ1s8J53wD6lnuypKMlTZM0bf78+cuRDOecc1nVZgrHA+OBjSS9BowDjl2OuF2AzYCLzWxTYKlxEGZmxEyolJldYmYjzGxEnz59liMZzjnnsqodvPYSsFP8Nd/JzBYuZ9y5wFwzeyRu30jIFN6UtKaZzZO0JvDWcsZxzjnXAk1mCpK+X2E/AGZ27rIENbM3JL0qaZCZzQZ2BJ6Ot7HA2fHvrctyfuecc8umuZJCz/h3EGGBndvi9jeA0obnljoBuEZSN+Al4HBCddb1kr4DvAzsv5wxnHPOtUBzy3H+AkDSvcBmhWojST8H/r48gc1sBjCizKEdl+e8zjnnll21Dc19CbOkFnxGhZ5Bzjnn2q5qF8q5CnhU0s1xe29gQooEOeca+CI0Lm/V9j76laR/AtvGXYeb2ePpkuWcc64eql5S08weAx5LmBbnnHN15rOkOuecK/JMwTnnXFHV1UeS+hLGKgA8amY+2tg559qZatdT2J8wWG0/woCyR+KkeM4559qRaksKPwZGFkoHkvoAdxPmLHLOOddOVNum0KmkumhBC57rnHOujai2pPAvSXcA18btA4B/pEmSc865eql28NrJkr4JbBN3XWJmNzf1HOecc21P1b2PgAeBJcAXwNQ0yXHOOVdP1fY+OpLQ+2gfYF/gYUlHpEyYc865/FVbUjgZ2NTMFgBIWp1Qcrg8VcKcc87lr9oeRAuA7BKcC+M+55xz7Ui1JYUXCAPWbgUM2AuYWViuc1mX5XTOOde6VJspvBhvBYW1k3uWeaxzzrk2qtouqb9InRDnnHP112SmIOlCM/uepL8Rqo0aMbM9k6XMOedc7porKRwKfA/4bQ5pcc45V2fNZQovApjZPTmkxTnnXJ01lyn0KfQwKsd7HTnnXPvSXKbQGVgZUA5pcc45V2fNZQrzzOzMXFLinHOu7pob0ewlBOec60CayxR2TBlcUmdJj0u6PW4PlPSIpBckTZTULWV855xzjTWZKZjZO4njnwQ8k9k+B/i9ma0PvAt8J3F855xzGXVbUlNSP+DrwKVxW8AYGtZ9vhLYuy6Jc865Dqqe6yyfB5xCWLQHYHXgPTNbHLfnAmuXe6KkoyVNkzRt/vz5yRPqnHMdRV0yBUl7AG+Z2fRleb6ZXWJmI8xsRJ8+fWqcOuec67hashxnLW0N7Clpd6A70Av4A9BbUpdYWugHvFan9DnnXIdUl5KCmZ1uZv3MbABwIPBvMzsYmExY7hNgLA1TdDvnnMtBPdsUyjkV+L6kFwhtDJfVOT3OOdeh1Kv6qMjMpgBT4v2XgFH1TI9zznVkra2k4Jxzro48U3DOOVfkmYJzzrkizxScc84VeabgnHOuyDMF55xzRZ4pOOecK/JMwTnnXJFnCs4554o8U3DOOVfkmYJzzrkizxScc84VeabgnHOuyDMF55xzRZ4pOOecK/JMwTnnXJFnCs4554o8U3DOOVfkmYJzzrkizxScc84Vdal3AjqSAYv+kuzcc5Kd2TnXkXhJwTnnXJFnCs4554o8U3DOOVfkmYJzzrmiumQKktaRNFnS05JmSTop7l9N0l2Sno9/V61H+pxzrqOqV0lhMfADM9sY2BI4XtLGwGnAJDPbAJgUt51zzuWkLpmCmc0zs8fi/YXAM8DawF7AlfFhVwJ71yN9zjnXUdW9TUHSAGBT4BGgr5nNi4feAPpWeM7RkqZJmjZ//vx8Euqccx1AXTMFSSsDfwXGmdkH2WNmZoCVe56ZXWJmI8xsRJ8+fXJIqXPOdQx1yxQkdSVkCNeY2U1x95uS1ozH1wTeqlf6nHOuI6pX7yMBlwHPmNm5mUO3AWPj/bHArXmnzTnnOrJ6zX20NfBt4ElJM+K+HwFnA9dL+g7wMrB/fZLnnHMdU10yBTO7H1CFwzvmmRbnnHMN6t77yDnnXOvRoafOTjWV9ZwkZ3XOufS8pOCcc67IMwXnnHNFnik455wr8kzBOedckWcKzjnnijxTcM45V+SZgnPOuSLPFJxzzhV5puCcc67IMwXnnHNFnik455wr8kzBOedckWcKzjnnijxTcM45V+SZgnPOuSLPFJxzzhV5puCcc67IMwXnnHNFnik455wr8kzBOedckWcKzjnnijxTcM45V+SZgnPOuSLPFJxzzhW1ukxB0m6SZkt6QdJp9U6Pc851JK0qU5DUGfh/wNeAjYGDJG1c31Q551zH0aoyBWAU8IKZvWRmnwHXAXvVOU3OOddhyMzqnYYiSfsCu5nZkXH728AWZva9kscdDRwdNwcBs3NI3hrA2znEqVe8esT0eB6vtcdsz/HWNbM+pTu75BS8pszsEuCSPGNKmmZmI9prvHrE9Hger7XHbO/xymlt1UevAetktvvFfc4553LQ2jKFqcAGkgZK6gYcCNxW5zQ551yH0aqqj8xssaTvAXcAnYHLzWxWnZNVkGt1VR3i1SOmx/N4rT1me4+3lFbV0Oycc66+Wlv1kXPOuTryTME551yRZwouN5K2rmZfW9Xer8/VnqSB1ezLk2cKFUj6czX7ahhPkg6R9LO43V/SqFTxMnHXlbRTvN9DUs+E4S6ocl/NtOfrk3RONftqGG9FST+V9Ke4vYGkPVLFy8TdRtLh8X6f1F+aOb9n/lpm340J4zWrVfU+amU2yW7EeZk2TxjvIuALYAxwJrCQ8IYZmSqgpKMII8NXA9YjjAv5I7BjjeNsBXwV6CPp+5lDvQi9zJJo79cH7AycWrLva2X21coVwHRgq7j9GnADcHuieEg6AxhBmLngCqArcDWQpASW43tmI8J3zCqSvpk51AvoXstYLeWZQglJpwM/AnpI+qCwG/iMtN3FtjCzzSQ9DmBm78axGikdT5hv6pEY83lJ/5UgTjdgZcL7Lfur6wNg3wTxCtrl9Uk6FjgO+LKkmZlDPYEHah0vYz0zO0DSQQBm9rEkJYwHsA+wKfBYjPl64l/ueb1nBgF7AL2Bb2T2LwSOShCvap4plDCzs4CzJJ1lZqfnGPrzWBoxCMVkQskhpU/N7LPC51pSl0L8WjKze4B7JE0ws5cl9Qq7bWGtY5Vor9f3F+CfwFlAdnr5hWb2TqKYAJ9J6kHDe3Q94NOE8QA+MzOTVIi5UuJ4eb1nbgVulbSVmT1U6/MvD88UKjCz0yWtDaxL5nUys3sThTwfuBn4L0m/IvzC/EmiWAX3SCqUinYm/Pr8W8J4fSTdTvw1Lel94Agzm54oXru8PjN7H3ifMLX8ZsA2hC+uB4CUmcIZwL+AdSRdQ6jCOSxhPIDrJY0HeseqnSOAPyWMl/d75oUYbwCNv2eOSBizST54rQJJZxOm2XgaWBJ3m5ntmTDmRoS6SwGTzOyZVLFivE7Ad4BdYsw7gEst0ZsiVnUcb2b3xe1tgIvMbGiieO39+n4K7A/cFHftDdxgZr9MES/GXB3YkvB6PmxmyWf0jF/Oxf+hmd2VMFbe75kHgfsIbTWF7xnMrFwDdC48U6hA0mxgqJmlLh4X4m0JzCpUOcQqiK+Y2SMJY64ELDKzJXG7M7CCmX2cKN7jZrZpyb7HzGyzFPHylvf1xffoMDNbFLd7ADPMbFCiePsA/44lFST1Bkab2S0p4sUYA4F5JdfY18zmJIqX92dihpkNT3HuZeVdUit7idDTIS8XAx9mtj+M+1KaBPTIbPcA7k4Y7x5J4yWNlrS9pIuAKZI2i9UgNSHpSUkzK91qFaeMXK4v43Ua91RZgbSzCp9RyBAAzOw9QpVSSjfQuG1tSdyXSt6fidsl7Z7w/C3mbQqVfQzMkDSJTGOamZ2YKJ6yRVQz+yI2cqXU3cyKGZGZfShpxYTxhsW/pV8kmxLqxMfUKE7yvvMV5HV9Be8DsyTdFc+/M/CopPMhyXu13I/I1O/RLnEVRgBiI3DKXnl5fyZOAn4k6TNCD0eFsNYrYcwmeaZQ2W3kO233S5JOpKF0cByhtJLSR5I2M7PHACRtDnySKpiZ7ZDq3CVxXs4jTpm4uVxfxs3xVjAlcbxpks4lrKMOoftmqk4CBfMl7WlmtwFI2ou0K5Pl/ZlI2b12mXibQhNi/WV/M0u+3GfsC30+4dekEYqx48zsrYQxRwATCdUQAr4EHFDr3jKSDjGzq9V4YFeRmZ1b43j3m9k2khbSuDthkl9heV9fvcT69p8COxFe17uAX5nZRwljrgdcA6wVd80Fvm1mLyaKl8tnIhNPwMHAQDP7X0nrAGua2aMp4lXDSwoVSPoG8FvCwKSBkoYDZ6bofRQbs35vZgfW+tzNxNwW2IgwkAZgtpl9niBcoW95Xr+KDoVcf4Xlen2Srjez/SU9SZk+9Cl6O8X3y+15loZizGPNbEtJK0OozkkcL6/PREF2JoP/JbQl/j8SzmTQHC8pVCBpOuEfNaXQo0TSU2Y2OFG8+4Ex2frT1CQ9ambJ51eKsToDJ5rZ73OINd3MNpc0ycxqOj1BEzHzvL41zWyepHXLHU9VfRbb176ZbWxOTdLDZrZljvFy+0zEeI9ZnMkg8z3zhJkNa+65qXhJobLPzex9NR7Fn3KE8UvAA5JuA4rF8cRVDw9IupBQXM7GfKzWgcxsicL0CMm/NIFOcUDQhuWqdFK8pnleX8wQOgMTcm7H+BB4MjZsZ98vqTpfADwePxM3lMS8qfJTlktun4moHjMZNMkzhcpmSfpvoLOkDYATgQcTxnsx3jqRXzXL8Pj3zMy+FL1kCvL6wB1IGMhVOhdRanlnsl9IWiXHX+430TBQLi/dgQU0fk9awnQMj3/z+kzUYyaDJnn1UQWxG9qPaTyy8X8Lg2hcy0maXGa3mVmSD5ykr5nZP1Ocu0K8vK/vVkJ31zx/ubsaU84zGTSbHs8UWof4hVKu0TDVLxQU124oE/PMcvtd6yJpbLn9ZnZlonj/ofx79Msp4sWYV1SImWRuoHp8JiStCqxD47mPUlVXNcurjyqIXdPKTVSVZB4b4IeZ+92BbwGLE8UqyHYl7E4Y9JXsV4qkXwO/iSNhCx+GH5hZXYvLtVKH67uRMlMyJIoFYV2Dgu7AfoR1B1LKrtXQnTCV9usJ4+X9mfhfwqSCL9KQ+aWsrmo+TV5SKE9hXpmTgSfJNPzkOTCqDj0hViBMODY60fnznhtoBSuZu6rcvhrGy/v6HgZ2KnTTjN027zSzr6aIVyEN080s5eJTpfE6AffndY05fCZmA0Py7HXYHC8pVDa/MIoyD5Kyv7g6EVZ5WyWv+NGKhJWmUumc/VKOgwNT/rJ9CCj9Qi63r1byvr5cp2Qomb+pE6HkkPd3yAZAikVvKkn9mXiKsNBOskGqLeWZQmVnSLqUMLI4O/dRql4P0wnFRhGqjf5DmMI3mZLBT52BPjTudVFr1wCTYj0xwOFAzeu/JX0JWJswJ/6mhNcUwlKHKeexyeX6MnKdkgH4Xeb+YmAOYeruZDKj0hX/vkG65Ubr8Zk4i9Dt9ikaf88km6K/OV59VIGkqwkjG2fRUH1kqRq46qFk8NNi4E0zS9qOIWk3wjQJAHeZ2R0JYowl1NOOAKbSkCl8AFyZMGPP5foysUYC15HTlAwdQd6fCUmzgPEsXU19T6qYzabJM4XyJM22RPPSV4jXFTgW2C7umgKMTzzEHknDCEP7Ae41s2RTS8e5cz6xMAPsIMJUAv9MdY2SvmU5LlaS9/XFmF3JaUoGSasQZoAtvEfvIUz9knSchKQ9MzGnmNntTT2+BvHy/ExMNbO6TWlRjq+nUNmDkjbOMd7FhHaEi+JtcxKvpyDpJEKVx3/F2zWSTkgY8l6gu8Iyp/8Cvg1MSBhv7/hFBoRfgXGqhlRyvT5J+xHaFZ4iDNabqDTrNhRcTlhYfv94+wC4oslnLCeFFRBPIqyA+DRwUuzllSpe3p+J+ySdJWkrxXU3Ev8Pm2dmfitzI3RD+wyYDcwkFO9mJoz3RDX7ahxzJrBSZnulxNf4WPx7AnBKvD8jYbzvAs8CuwNHAc8B32hH1zcz/t0GmAx8HXgkYbylriXl9RWuEeiU2e6c+D2a92dicpnbv1O+ps3dvKG5st1yjrdE0noWpwSW9GUya7YmopIYS2iof08ST9JWhKmCC43onVMFM7Pxsc52MmEO/k3N7I1U8cj5+mj4330d+JOZ/V1SsvWZgU8kbWNm9wNI2pq0DdsFvYF34v3UPfJy/UxY/mtwNMszhcrybmw5GZgs6SXCm3BdQu+VlK4AHpF0c4y5F3BZwngnAacDN5vZrJjxlZsaoiYkfZsw//+hwFDgH5ION7MnEoXM9fqA1ySNJ6y4dk7sU5+ySvhY4MpYJSfCF/VhCeNBQ++cyTHmdsBpCePl+plojbMKeENzBZmuaSKMbBxIaMjbJGHMFWjcaJhkkFVJzM0I1Q8A95nZ46lj5kXSLcDRFhcqkjQKuMRa2ULpyyqOSdgNeNLMnpe0JmEg1J2J4/YCMLMPUsbJxFuThvUFHk1c2sv1MyHpB5nN4ghqq2MvR88UqhTfKMeZ2ZGJzr8f8C8zWyjpJ4QBVr+0hHOgKKxqNdfMPpW0AzAEuMriNA3thaQVzezjeL+btaLRo21JbIS9gtDY/CfCe/S0lJlQrKKaYWYfSTokxvyDpVszoq6fidQjqKvhvY+qFL+ct0gY4qcxQ9iGMGPiZSTufQT8ldCWsT7wR8KkXH9JHDM3sUfH04TG5kJXw/Pqmqi27YhYOtgFWJ3Qu+rsxDEvBj6O/7vvE+YIuiphvHp/JlKPoG6WtylUoMaLs3Qi/EJJORFX3o2GAF+Y2WJJ3wQuNLMLJKUsKq9hZikXXS91HrArcBuAmT0habsmn+GaUmhw3Z3w63mWpJQdEwAWm5lJ2gv4f2Z2maSUI/3z/kzkPYK6WZ4pVJZdnGUx8HfCr4hU8m40hLDq00GEhthvxH1dax1EYb3ry4HFkpYA+5tZygWLiszs1ZLvrWQ9uhRWzTqKpWfWTTXN8wnA1Wb2borzlzFd0p2E9rXTJfUk/SphCyWdDhwCbKcwIV7N36MZuXwmMvbI3M9lVoHmeKZQgZn9IueQ+xMaDX9rZu/FxrWTE8c8HDgG+JWZ/UfSQODPCeL8CtjWzJ6VtAXwG2D7BHEAkLSlmT0MvCrpq4DFkb8nkXAaZOBW4D7gbtJ3JwboC0yV9Bgh073D0jYSfoewMtlLZvaxpNVJ30PuAOC/ge+Y2RuS+gP/lzBeXp+JgjWBWWa2EEBST0kbm9kjCWM2yRuaK1BYh3Y/azw3/nVmtmtdE9YGqWT66NLtVPEkrQH8gTAXkYA7gZPMbEGiuDPy7tkUq292IXyZjQCuBy4rjHdxrVusmtqskJnHktC0lJ+P5nhJobI+2R4HZvaupDyn7G1P/qukjabRtpmdmyJobL84OMW5K7hd0u5m9o+8Asb69jcIs4cuBlYFbpR0l5mdklc63DJTtnRnYd6sun4ve6ZQ2RJJ/c3sFSjOnujFqmXzJxq30ZRu19qXJVVcC8PSTUt8EvAjSZ8BhYnpzMx6pQgWu4geShitfSlwspl9Hn9tPg94ptD6vSTpRBp6Gh4HvFTH9Him0IQfA/dLuodQ9bAtcHStg8Sub33N7IGS/VsDb7SHaoA6tM/Mp/Hc/7kws5QZXTmrAd8s7bMff23uUeE5yy2WmLtn4r2SIEYfQmn96ZL9GxMWwJpf65glcYpjWxI7BjgfKCzZejcJvmdawtsUmhDrpLeMmw+n6E4p6XbgdDN7smT/EODXZvaN8s+saRpON7OzEp7//KaOm9mJNY73uJUsi5kX5T/Nc2H0rQEPJB7suCchs12LsFLYuoTRtzUf5S/pOuAiM7u3ZP+2wLFm9t+1jhnP/1VCqWtlM+sfx0d818yOSxGvNfLBa037KjA63rZs8pHLrm9phgAQ9w1IFLPUfonPPz1z27NkO8WCMP9JcM5mqfw0zykz258SVnZbHVgDuCKOhk/lfwmfg+fMbCBhkOXDiWKtX5ohAJjZfYR5rFL5PWFsy4IY7wkaMvmak9RP0s2S3oq3v0qq6+A1LylUED/gIwlzqwMcBEw1sx/VOM7zZrZBhWMvmNn6tYxXIU7S3kAlsZL/ipf0LZpo/7FEK69JmgkMN7Mv4nZn4HEzS/IlprDo+zAzWxS3exCmhEiyOJSkaWY2QtIThBlnv5D0hJkNSxCr4iJXTR2rQdxHzGyL7Ps01TXGc99FGDFd6PZ6CHCwme2cIl41vE2hst1p/AG/EngcqGmmAEyTdJSZ/Sm7U9KRpPkVXTj/f2iY8G9NNczOamb25VRxyaexvlCf/l+E0t6/4/YOwINAsuU4yXea59cJdfuL4vYKwGsJ470naWXCYkLXSHoL+ChRrBfK9eSS9DXSNsTmPbalj5llFyqaIGlcwnjN8kyhab1J/wEfB9ws6WAaMoERQDdgn0QxicV/oL518CmY2eEAcfTtxmY2L26vSdqV3nKZ5lnSBYTM9X1gVvy1aYTR8I/WOl7GXoT1E/6H0NV3FdJNyTAO+Luk/Wn8udiKxqOAa+0YwtiWtQkZ7J3A8QnjLVCY6O/auH0QseqqXrz6qII41P1swnz4xQ+4mU1MFG8HYHDcnGVm/27q8TWOnTRTkLSQhlJJD6DQq6NQMknVZfMZM/tKZrsT4bX9ShNPW96Yyad5ljS2qeNmdmWtY8a43wcmmlnK0kg23gqE0czFzwXwl0J1WXsQu7pfQMjsjFCSPTFFj66q0+SZQmV5fMBbA0kXmtn36p2OWpN0IbABDb/CDgBeMLNka+4qrM+8Lo3nPlqqwbQtknQGYTqWd4CJwA1m9maO8fdI1ZsrU/oqq9Y95FozzxRKqJlFs1N2+WuvJHUnFMvXJ6yBe7nlNOmXpH1o6D1yr5ndnDDWOYSMZxYNE8VZqsFymXahRhK3CSFpKOE6v0VYe2CnlPEycZN1iMi79NWaMyFvU1haYdBTd0Id5hOEao6hwDRCMa9dkbSJmc1KGOJKwgjf+wgN+JsQGvDy8Biw0MzulrSipJ4WJx9LYG9gkOWwYl40InO/O6Fr8Wo5xH2LMK3GAkJjfl5SrpWcpMqtCdPi362BjQklLwj/w6fLPiMnXlKoQNJNwBmFMQSSBgM/N7N965uy2sthgronzWxIvN+FUBWXvAuspKMIo0NXM7P1JG0A/NHMdkwU75+ESRQ/THH+KtMw3cw2T3Tu4wjVR32AG4DrS0ccpyRplJmlbEgndhIoV/oakyjew8A2hZJz7PF0n5mlGhfVLC8pVDYoO6jMzJ6SlKyBss5SL5RSmAcICwuYJA5XdDwwCngkxn5eCSY1zFQFfAzMkDQJKJYWUlUFlFR1diKUHFJ+ptcBxpnZjIQxGlFYh/oHQH8zOypm7IMSjhT/YeZ+d0IVWcqqzlWBXjT0clw57qsbzxQqmynpUuDquH0woT68XYiNhoUeQX0l/axwzMxq3c1wmKTCIu8CesTtpL2PgE/N7LNCJhRLKSmKxoWqgOnEVd4yUhbFs/M7LQbmkHB0upmdDvnMfZRxBeF1LVTbvkYopSTJFMysdGzQA5JSlk7OZuluzD9PGK9ZnilUdjhwLA113/eSfs3kPM3J3P8cSLIQOoCZdU517mbcI+lHhExoZ8IMlH+rdZBCfbSkk8zsD9ljCjOZJmFmO5TE6gwcCDyXIp7CCnrnUjL3EaGNKJX1zOyA2EUcC4v7JCtqSsq2yXQCNifhIEQzuyJWOxbWfz+13r0cvU3B5TrNRZ7il8eRhEVoBNwBXGqJ3vTlXscUY0Ak9SJUja1NWO3t7rj9A2Cmme1Vy3iZuE8AY4C7zWzTOLbmEDNLtmaypAcJcyw9YGHhpPWAa81sVKJ42ZH+iwnzaJ1pZveniNcaeUnBQfo2hdzFX82zzGwjwvoNKWMdRBhkNVCN13HoSUNdcS39GXgXeIiwJvSPCf/DfRLX939uZgskdZLUycwmSzovYTwIVSn/AtaRdA2ht85hqYJlR/p3VJ4pOAi/xNoVM1siabYyCyUl9CAwjzBTabaefyFp2qG+nOnNdWmM3T+Hkb6FuY/uI/3cRwCY2Z2SphNmZxVhOdUUU9h/s5l0pJwvq1XxTKEFJP3WzH7Y/CNbN5Us7GNm78T97WZhn2hVwtxAj5L58qr1YDILi9y8LOlaQvXNu7U8fxnZ3lxLJM3NaeqHPQmT751EmM2zF5B0ASVJfyPMInqbmaXMgArrluQ2iWKs3hxFqAaE0Ij+aKrqzWp5m0ILSHrFzPrXOx3LS61gYZ88SNq+3H4zuydRvF8SGnofAy4H7kjxAZe0hIZMLjufVJLeXJm5qxrtjn8XAS8CPzazSbWMG2NvTxg9/XVgKnAdcHuqTDBOojjWSiZRNLNdaxxnF+AiwrKphbmk+hFG/R9nZnfWMl6L0uaZQvUkvWpm69Q7HctL0lQzG1nhWHGgmWu5+OtvF0LvtRHA9cBl7aj01UhsuxkMXGNmg5t7/HLGGUNoQ9ktVTfmvCZRlPQM8DUzm1OyfyDwj1rHawmvPipR0iWt0SHaT4Ns7yaO9cgrEamV/MLtBnQFPko4LgIzM0lvEKaBWEyowrpR0l1mdkqquPViZkuAJ+IAviQUFg/6BqHEsBlh2pRUJkm6g8aTKN6dIE4XYG6Z/a8R3qd145nC0qbT0CWt1Odl9rVFdVnYJ29m1rNwP/6C34t0y6oWxiQcCrxNWOf3ZDP7PP7afB5od5lCgZmNT3FeSdcT6t3/BVwI3GNx4asUzOx7JZMoXpJoEsXLgakKa1G/GvetQ6h+vCxBvKp59VEHJKkvcDPwGWUW9qn34JmUUowbyJz7F4QZYJcaCCjpK2aWcgWvdknSroRxEUtyjNmXkBEZoeH3rURxvkL4oZJtaL4tz/mkyvFMoYQ60NTZquPCPnko6WZYmBtoezOr6Uy3ajw1+JOENoRcpgZvrySNMbN/V+oqmqqLqMJKb/8HTCHUFmxLKPHdmCJea+SZQglJXwBPEaoAoHE1kqWaLdHVnqTs2reFuYH+VOtffpIm0jA1+NeAl80sr6nB2yVJvzCzM0r+hwVmZkckivsEsHPhPSKpD6GkMixFvApp+LmZ/TyveKW8TWFp3wf2JaxFex1ws9VxKmS3XC4tjMUoiGMxal0dsHFmMNllpF0nuUMwszPi3TPN7D/ZY7GHTiqdSn40LCCUMvNU13a9vC+21TOz88xsG+AEQsPPJEnXSxpe35S5ZVCuR0yKXjKNpgZPcP6O7K9l9qWsyvmXpDskHSbpMODvwD8TxluKmdV80saW8JJCBWb2kqRbCV00vw1sCMyoa6JcVSRtRRiV2kdhsfmCXkCKGVvrNTV4uyVpI8Lsq6uUtCv0IjNtd62Z2cmSvkWYYwnS9T6qSNLPrPbT11fNM4USkr5M6Ba2F6Gr2HWEUb6f1DVhriW6ERYr6UKYlK7gA0LVYE1Z/aYGb88GAXsQxtRkR9gvJAxgS8bM/irpLuL3o6TVClPB5ORIoG6Zgjc0l4gNzTMJUxJ/QMnwfjM7tx7pci0nad1y3UNd2yFpKzN7KMd43yXM57QI+IKG0t6Xaxzng0qHgB5mVrcf7N6msLRfEPrwf0H4tdmz5Obajksl9S5sSFo1jlZ1bccxZf6HlyeM90NgsJkNMLMvm9nAWmcI0XvABmbWq+TWkzDrbd149dHSFpjZhfVOhKuJNczsvcKGmb2rBGs0u6SGlvkfJhl8GL1ImFwwtasIK9e9WebYX3KIX5FnCks7gjCc3rV9X2TXU5C0LmnXTHa110nSqoXpyOPcZCm/t04HHpT0CPBpYaeZnVjLIGb2kyaOnVrLWC3lmYJrz34M3C/pHhpGpx5d3yS5Fvod8JCkG+L2fsCvEsYbT1hL4UlCFXKH4w3NJSQtpnzx0bsXtkGS1qBhEryHLcGqXS4tSRsTps0G+HfKuYFSzo3VVnimUMLfFO2HpO3K7Teze/NOi1t2krYhNMpeEaedWLl0lHMNY/2aMB3K32hcfZRnl9S68kyhhGcK7UdcyrGgO2Hmy+k+f1XbIekMwkSGg8xsQ0lrATeY2dbNPHVZ45XLbGreJbWZNNR1hUdvU1jaDc0/xLUFVrKsqKR1gPPqkxq3jPYBNiUscYqZvS4pWddwM0s5r1K16rqYl2cKS1tT0vmVDta6F4LL1VygbsscumXyWVzNzgAkrVTvBOWgrtU3niksbVrm/i+AMyo90LVucYnIwgesEzCc+IvTtRnXSxoP9JZ0FKHL+J+aeU6rVzInV6NDhEGzdeNtCk3w9oW2TdLYzOZiYE7pVNqu9ZO0M7AL4QvzDjO7q85JWm6xraQiM/tFXmkp5ZlCEyQ9ZmZNrsTmWidJnYGrzOzgeqfFtT2SVibMjPxSdkR1R+DVR65dMrMlktaV1M3MPqt3elzLSLrfzLaRtJDydewLgP8zs4tqFO8iMzsu3t+GMNXEi8D6kr5rZv+oRZxMvIrtllDftksvKZQoeROuSMNANh+81sZIuorQsHwb8FFhv8902/ZJWh140MwG1eh8xVoBSZOBH5jZY3Eq/evNbEQt4mTifUZY9vd64HVKehyZ2ZW1jNcSXlIoEWcpdO3Di/HWiYYZbv1XUBsjaTNgG8L/7n4ze9zMFkganShkLzMrdIF9SVKK2aTXJEzZcQChvWsicGNrqKrykoJrtyTtZ2Y3NLfPtV6Sfkb48rwp7tqbMHjtlzWO8zHwAuEX+wCgf5yRtRMw08wG1zJeSex+hIW9vg+camZ/ThWrqvR4puDaq3IdBbzzQNsiaTYwzMwWxe0ewIxaVRtl4qxbsmuemX0W587azsxuKve8GsTdDDgI2BmYDvwu5dxO1fDqI9fuSPoasDuwdkmDXi9CUd21Ha8TpihZFLdXAF6rdZBKK/TFCRRrniFIOhP4OvAMYcnf082sVbw3vaTg2h1JwwgD1c4EfpY5tBCYXJib37VemYGH/YGRwF1xe2fgUTP7Zo3jPUn59qZCB5OhNY73BfAfGjqyFGInidcSnim4dktSVzP7XFJXYDDwmpm9Ve90ueaVDDxcSq1755SpPiqNV9O1vvOO1xKeKbh2R9IfgQvMbJakVYCHgCXAasAPzezauibQVU1Sd2D9uPlCoW0hUazOwN1mtkOqGJlYxRUByxzb1szuS52GSlJ0tXKu3rY1s1nx/uHAc2Y2BNgcOKV+yXLVktRF0m8IkxheSVjT+FVJv4klv5ozsyWEJVxXSXH+ElMknRIzIgAk9ZV0NfD7HOJX5JmCa4+yI5h3Bm4BMLM36pIatyz+j1CyG2hmm8ceY+sBvYHfJoz7IfCkpMsknV+4JYizOeF6ZkgaI+kk4FFCqXZUgnhV8+oj1+7EEam/I/RSmQxsZGZvSOoCPGVmG9U1ga5Zkp4HNrSSL6j4y/pZM9sgUdyybRmpRhjHzOD3hF5WW5rZ3BRxWsK7pLr26LvA+cCXgHGZEsKOwN/rlirXElaaIcSdSwprKyQKemUcC9HfzGaniiOpN3AOsAWwG6EL9T8lnWRm/04Vt6q0eUnBOdfaSLoFuMnMrirZfwiwv5ntmSjuNwjVU93MbKCk4cCZtY4n6SXgIuC8wviEGOsi4GUzO6iW8VqUNs8UXHslaUPgYqCvmQ2WNBTYs9ZTJLjak7Q2YdDYJ4SRvhDWau4B7GNmNR/AFuNOB8YAUwprqUh6qtbTXEjqV6mqSNJRZla3hYQ8U3DtlqR7gJOB8Sk/4C4dSWOATeLm02Y2KXG8h81sy+wCW5Jm1nMwWd68TcG1Zyua2aNSo1mJW8VUAq46sX49zzr2WZL+G+gsaQPgRODBHOPXnXdJde3Z25LWI04hIGlfYF59k+RauRMIJZNPCQvtvA+Mq2eC8uYlBdeeHQ9cAmwk6TXCXDO+PKdbShw5fQxh9PSTwFatZYK6vHmbgmv3JK1EKBV/DBxoZtfUOUmulZE0EfgcuA/4GjDHzMbVNVF14pmCa3ck9SKUEtYGbgXujts/ICyYslcdk+daIUlPxqlQiIMcH+2o62549ZFrj/4MvEuYMuAo4MeEKYn3MbMZdUyXa70+L9wxs8UlnRM6FC8puHan5FdfZ0Ljcv+UM2y6tk3SEuCjwiZhPMTHNKxv0KteacublxRce5T91bdE0lzPEFxTzKxz84/qGLyk4Nod/9Xn3LLzTME551yRD15zzjlX5JmCc865Is8UnHPOFXmm4JxzrsgzBeecc0X/H9sRjZFUhN64AAAAAElFTkSuQmCC\n",
- "text/plain": [
- "<Figure size 432x288 with 1 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "import numpy as np\n",
- "import matplotlib.pyplot as plt\n",
- "\n",
- "values_ok = [guesses_ok[i] for i in range(len(CODE_TYPES))]\n",
- "values_bad = [guesses_bad[i] for i in range(len(CODE_TYPES))]\n",
- "x_positions = np.arange(len(CODE_TYPES))\n",
- "\n",
- "p1 = plt.bar(x_positions, guesses_ok)\n",
- "p2 = plt.bar(x_positions, guesses_bad, bottom=guesses_ok)\n",
- "\n",
- "plt.ylabel('Tipo de código')\n",
- "plt.title('Aciertos o no, por tipo de código')\n",
- "plt.xticks(x_positions, CODE_TYPES, rotation=90)\n",
- "#plt.yticks(np.arange(0, 81, 10))\n",
- "plt.legend((p1[0], p2[0]), ('Correcto', 'Incorrecto'))\n",
- "\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.8.2"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}
diff --git a/macros/latex/contrib/jupynotex/jupynotex.py b/macros/latex/contrib/jupynotex/jupynotex.py
index 036be088ce..53f27dec91 100644
--- a/macros/latex/contrib/jupynotex/jupynotex.py
+++ b/macros/latex/contrib/jupynotex/jupynotex.py
@@ -1,64 +1,202 @@
-# Copyright 2020 Facundo Batista
+# Copyright 2020-2024 Facundo Batista
# All Rights Reserved
# Licensed under Apache 2.0
-"""USAGE: jupynote.py notebook.ipynb cells
-
- cells is a string with which cells to include, separate groups
- with comma, ranges with dash (with defaults to start and end.
-"""
+"""Convert a jupyter notebook into latex for inclusion in documents."""
+import argparse
import base64
import json
+import pathlib
+import re
+import subprocess
import sys
import tempfile
+import textwrap
import traceback
+# message to help people to report potential problems
+REPORT_MSG = """
+
+Please report the issue in
+https://github.com/facundobatista/jupynotex/issues/new
+including the latex log. Thanks!
+"""
+
+# basic verbatim start/end
+VERBATIM_BEGIN = [r"\begin{footnotesize}", r"\begin{verbatim}"]
+VERBATIM_END = [r"\end{verbatim}", r"\end{footnotesize}"]
+
+# highlighers for different languages (block beginning and ending)
+HIGHLIGHTERS = {
+ 'python': ([r'\begin{minted}[fontsize=\footnotesize]{python}'], [r'\end{minted}']),
+ None: (VERBATIM_BEGIN, VERBATIM_END),
+}
+
+# the different formats to be used when error or all ok
+FORMAT_ERROR = r"colback=red!5!white,colframe=red!75!"
+FORMAT_OK = (
+ r"coltitle=red!75!black, colbacktitle=black!10!white, "
+ r"halign title=right, fonttitle=\sffamily\mdseries\scshape\footnotesize")
+
+# a little mark to put in the continuation line(s) when text is wrapped
+WRAP_MARK = "↳"
+
+# the options available for command line
+CMDLINE_OPTION_NAMES = {
+ "output-text-limit": "The column limit for the output text of a cell",
+}
+
+
+def _validator_positive_int(value):
+ """Validate value is a positive integer."""
+ value = value.strip()
+ if not value:
+ return
-def _verbatimize(lines):
+ value = int(value)
+ if value <= 0:
+ raise ValueError("Value must be greater than zero.")
+ return value
+
+
+def _process_plain_text(lines, config_options=None):
"""Wrap a series of lines around a verbatim indication."""
- result = [r"\begin{verbatim}"]
+ if config_options is None:
+ config_options = {}
+
+ result = []
+ result.extend(VERBATIM_BEGIN)
for line in lines:
- result.append(line.rstrip())
- result.append(r"\end{verbatim}")
+ line = line.rstrip()
+
+ # clean color escape codes (\u001b plus \[Nm where N are one or more digits)
+ line = re.sub(r"\x1b\[[\d;]+m", "", line)
+
+ # split too long lines
+ limit = config_options.get("output-text-limit")
+ if limit and line:
+ firstline, *restlines = textwrap.wrap(line, limit)
+ lines = [firstline]
+ for line in restlines:
+ lines.append(f" {WRAP_MARK} {line}")
+ else:
+ lines = [line]
+
+ result.extend(lines)
+ result.extend(VERBATIM_END)
return result
-def _save_content(data):
- """Save the received b64encoded data to a temp file."""
- _, fname = tempfile.mkstemp(suffix='.png')
- with open(fname, 'wb') as fh:
- fh.write(base64.b64decode(data))
- return fname
+class ItemProcessor:
+ """Process each item according to its type with a (series of) function(s)."""
+
+ def __init__(self, cell_options, config_options):
+ self.cell_options = cell_options
+ self.config_options = config_options
+
+ def get_item_data(self, item):
+ """Extract item information using different processors."""
+
+ data = item['data']
+ for mimetype, *functions in self.PROCESSORS:
+ if mimetype in data:
+ content = data[mimetype]
+ break
+ else:
+ raise ValueError("Image type not supported: {}".format(data.keys()))
+
+ for func in functions:
+ content = func(self, content)
+
+ return content
+
+ def process_plain_text(self, lines):
+ """Process plain text."""
+ return _process_plain_text(lines, self.config_options)
+
+ def process_png(self, image_data):
+ """Process a PNG: just save the received b64encoded data to a temp file."""
+ _, fname = tempfile.mkstemp(suffix='.png')
+ with open(fname, 'wb') as fh:
+ fh.write(base64.b64decode(image_data))
+ return fname
+
+ def process_svg(self, image_data):
+ """Process a SVG: save the data, transform to PDF, and then use that."""
+ _, svg_fname = tempfile.mkstemp(suffix='.svg')
+ _, pdf_fname = tempfile.mkstemp(suffix='.pdf')
+ raw_svg = ''.join(image_data).encode('utf8')
+ with open(svg_fname, 'wb') as fh:
+ fh.write(raw_svg)
+
+ cmd = ['inkscape', '--export-text-to-path', '--export-pdf={}'.format(pdf_fname), svg_fname]
+ subprocess.run(cmd)
+
+ return pdf_fname
+
+ def include_graphics(self, fname):
+ """Wrap a filename in an includegraphics structure."""
+ fname_no_backslashes = fname.replace("\\", "/") # do not leave backslashes in Windows
+ width = self.cell_options.get("output-image-size", r"1\textwidth")
+ return r"\includegraphics[width={}]{{{}}}".format(width, fname_no_backslashes)
+
+ def listwrap(self, item):
+ """Wrap an item in a list for processors that return that single item."""
+ return [item]
+
+ # mimetype and list of functions to apply; order is important here as we want to
+ # prioritize getting some mimetypes over others when multiple are present
+ PROCESSORS = [
+ ('text/latex',),
+ ('image/svg+xml', process_svg, include_graphics, listwrap),
+ ('image/png', process_png, include_graphics, listwrap),
+ ('text/plain', process_plain_text),
+ ]
class Notebook:
"""The notebook converter to latex."""
- def __init__(self, path):
- with open(path, 'rt', encoding='utf8') as fh:
- nb_data = json.load(fh)
+ GLOBAL_CONFIGS = {
+ "output-text-limit": _validator_positive_int,
+ }
+
+ def __init__(self, notebook_path, config_options):
+ self.config_options = self._validate_config(config_options)
+ self.cell_options = {}
+ nb_data = json.loads(notebook_path.read_text())
- self._cells = nb_data['cells']
+ # get the languaje, to highlight
+ lang = nb_data['metadata']['language_info']['name']
+ self._highlight_delimiters = HIGHLIGHTERS.get(lang, HIGHLIGHTERS[None])
- def __len__(self):
- return len(self._cells)
+ # get all cells excluding markdown ones
+ self._cells = [x for x in nb_data['cells'] if x['cell_type'] != 'markdown']
+
+ def _validate_config(self, config):
+ """Validate received configuration."""
+ for key, value in list(config.items()):
+ validator = self.GLOBAL_CONFIGS[key]
+ new_value = validator(value)
+ config[key] = new_value
+ return config
def _proc_src(self, content):
"""Process the source of a cell."""
source = content['source']
result = []
if content['cell_type'] == 'code':
- result.extend(_verbatimize(source))
- elif content['cell_type'] == 'markdown':
- # XXX: maybe we could parse this?
- result.extend(_verbatimize(source))
+ begin, end = self._highlight_delimiters
+ result.extend(begin)
+ result.extend(line.rstrip() for line in source)
+ result.extend(end)
else:
raise ValueError(
"Cell type not supported when processing source: {!r}".format(
content['cell_type']))
- return '\n'.join(result) + '\n'
+ return '\n'.join(result)
def _proc_out(self, content):
"""Process the output of a cell."""
@@ -67,27 +205,30 @@ class Notebook:
return
result = []
+ processor = ItemProcessor(self.cell_options, self.config_options)
for item in outputs:
output_type = item['output_type']
- if output_type == 'execute_result':
- data = item['data']
- if 'image/png' in data:
- fname = _save_content(data['image/png'])
- result.append(r"\includegraphics{{{}}}".format(fname))
- elif 'text/latex' in data:
- result.extend(data["text/latex"])
- else:
- result.extend(_verbatimize(data["text/plain"]))
+ if output_type in ('execute_result', 'display_data'):
+ more_content = processor.get_item_data(item)
elif output_type == 'stream':
- result.extend(_verbatimize(x.rstrip() for x in item["text"]))
- elif output_type == 'display_data':
- data = item['data']
- fname = _save_content(data['image/png'])
- result.append(r"\includegraphics{{{}}}".format(fname))
+ more_content = processor.process_plain_text(item["text"])
+ elif output_type == 'error':
+ raw_traceback = item['traceback']
+ tback_lines = []
+ for raw_line in raw_traceback:
+ internal_lines = raw_line.split('\n')
+ for line in internal_lines:
+ line = re.sub(r"\x1b\[\d.*?m", "", line) # sanitize
+ if set(line) == {'-'}:
+ # ignore separator, as our graphical box already has one
+ continue
+ tback_lines.append(line)
+ more_content = processor.process_plain_text(tback_lines)
else:
raise ValueError("Output type not supported in item {!r}".format(item))
+ result.extend(more_content)
- return '\n'.join(result) + '\n'
+ return '\n'.join(result)
def get(self, cell_idx):
"""Return the content from a specific cell in the notebook.
@@ -99,58 +240,71 @@ class Notebook:
output = self._proc_out(content)
return source, output
+ def parse_cells(self, spec):
+ """Convert the cells spec to a range of ints."""
+ if not spec:
+ raise ValueError("Empty cells spec not allowed")
+
+ maxlen = len(self._cells)
+
+ cells = set()
+ options = {}
+ groups = [x.strip() for x in spec.split(',')]
+ valid_chars = set('0123456789-,')
+ for group in groups:
+ if '=' in group:
+ k, v = group.split("=", maxsplit=1)
+ options[k] = v
+ continue
-def _parse_cells(spec, maxlen):
- """Convert the cells spec to a range of ints."""
- if not spec:
- raise ValueError("Empty cells spec not allowed")
- if set(spec) - set('0123456789-,'):
- raise ValueError(
- "Found forbidden characters in cells definition (allowed digits, '-' and ',')")
-
- cells = set()
- groups = spec.split(',')
- for group in groups:
- if '-' in group:
- cfrom, cto = group.split('-')
- cfrom = 1 if cfrom == '' else int(cfrom)
- cto = maxlen if cto == '' else int(cto)
- if cfrom >= cto:
+ if set(group) - valid_chars:
raise ValueError(
- "Range 'from' need to be smaller than 'to' (got {!r})".format(group))
- cells.update(range(cfrom, cto + 1))
- else:
- cells.add(int(group))
- cells = sorted(cells)
+ "Found forbidden characters in cells definition (allowed digits, '-' and ',')")
+
+ if '-' in group:
+ cfrom, cto = group.split('-')
+ cfrom = 1 if cfrom == '' else int(cfrom)
+ cto = maxlen if cto == '' else int(cto)
+ if cfrom >= cto:
+ raise ValueError(
+ "Range 'from' need to be smaller than 'to' (got {!r})".format(group))
+ cells.update(range(cfrom, cto + 1))
+ else:
+ cells.add(int(group))
+ cells = sorted(cells)
- if any(x < 1 for x in cells):
- raise ValueError("Cells need to be >=1")
- if maxlen < cells[-1]:
- raise ValueError(
- "Notebook loaded of len {}, smaller than requested cells: {}".format(maxlen, cells))
+ if any(x < 1 for x in cells):
+ raise ValueError("Cells need to be >=1")
+ if maxlen < cells[-1]:
+ raise ValueError(
+ f"Notebook loaded of len {maxlen}, smaller than requested cells: {cells}")
- return cells
+ self.cell_options = options
+ return cells
-def main(notebook_path, cells_spec):
+def main(notebook_path, cells_spec, config_options):
"""Main entry point."""
- nb = Notebook(notebook_path)
- cells = _parse_cells(cells_spec, len(nb))
+ nb = Notebook(notebook_path, config_options)
+ cells = nb.parse_cells(cells_spec)
for cell in cells:
try:
src, out = nb.get(cell)
- except Exception:
+ except Exception as exc:
title = "ERROR when parsing cell {}".format(cell)
- print(
- r"\begin{{tcolorbox}}"
- r"[colback=red!5!white,colframe=red!75!,title={{{}}}]".format(title))
- tb = traceback.format_exc()
- print('\n'.join(_verbatimize(tb.split('\n'))))
+ print(r"\begin{{tcolorbox}}[{}, title={{{}}}]".format(FORMAT_ERROR, title))
+ print(exc)
+ _parts = _process_plain_text(REPORT_MSG.split('\n'))
+ print('\n'.join(_parts))
print(r"\end{tcolorbox}")
+
+ # send title and traceback to stderr, which will appear in compilation log
+ tb = traceback.format_exc()
+ print(tb, file=sys.stderr)
continue
- print(r"\begin{{tcolorbox}}[title=Cell {{{:02d}}}]".format(cell))
+ print(r"\begin{{tcolorbox}}[{}, title=Cell {{{:02d}}}]".format(FORMAT_OK, cell))
print(src)
if out:
print(r"\tcblower")
@@ -159,8 +313,19 @@ def main(notebook_path, cells_spec):
if __name__ == "__main__":
- if len(sys.argv) != 3:
- print(__doc__)
- exit()
+ parser = argparse.ArgumentParser()
+ parser.add_argument("notebook_path", type=pathlib.Path, help="The path to the notebook.")
+ parser.add_argument(
+ "cells_spec",
+ type=str,
+ help=(
+ "A string specifying which cells to include; use comma to separate groups, "
+ "dash for ranges (with defaults to start and end)"
+ )
+ )
+ for option, explanation in CMDLINE_OPTION_NAMES.items():
+ parser.add_argument(option, type=str, help=explanation)
+ args = parser.parse_args()
- main(*sys.argv[1:3])
+ config_options = {option: getattr(args, option) for option in CMDLINE_OPTION_NAMES}
+ main(args.notebook_path, args.cells_spec, config_options)
diff --git a/macros/latex/contrib/jupynotex/jupynotex.sty b/macros/latex/contrib/jupynotex/jupynotex.sty
index 205343d097..b79f622af6 100644
--- a/macros/latex/contrib/jupynotex/jupynotex.sty
+++ b/macros/latex/contrib/jupynotex/jupynotex.sty
@@ -1,7 +1,21 @@
-\ProvidesPackage{jupynotex}[0.1]
+\ProvidesPackage{jupynotex}[1.0]
\usepackage{tcolorbox}
+\usepackage{pgfopts}
+
+\newcommand*\jupynotex@outputtextlimit@value{}
+
+
+\pgfkeys{
+ /jupynotex/.cd ,
+ output-text-limit/.store in=\jupynotex@outputtextlimit@value
+}
+
+\ProcessPgfPackageOptions{/jupynotex}
\newcommand{\jupynotex}[2][-]{
- \input|"python3 jupynotex.py #2 #1"
+ \input|"python3 jupynotex.py '#2' '#1' '\jupynotex@outputtextlimit@value'"
}
+
+\endinput
+
diff --git a/macros/latex/contrib/jupynotex/tests/run b/macros/latex/contrib/jupynotex/tests/run
deleted file mode 100755
index a5fa69f44d..0000000000
--- a/macros/latex/contrib/jupynotex/tests/run
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-PYTHONPATH=. fades -d pytest -x pytest -sv "$@"
diff --git a/macros/latex/contrib/jupynotex/tests/test_cellparser.py b/macros/latex/contrib/jupynotex/tests/test_cellparser.py
deleted file mode 100644
index f9108f4bb8..0000000000
--- a/macros/latex/contrib/jupynotex/tests/test_cellparser.py
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 2020 Facundo Batista
-# All Rights Reserved
-# Licensed under Apache 2.0
-
-import pytest
-import re
-
-from jupynotex import _parse_cells
-
-
-def test_empty():
- msg = "Empty cells spec not allowed"
- with pytest.raises(ValueError, match=re.escape(msg)):
- _parse_cells('', 100)
-
-
-def test_simple():
- r = _parse_cells('1', 100)
- assert r == [1]
-
-
-def test_several_comma():
- r = _parse_cells('1,3,5,9,7', 100)
- assert r == [1, 3, 5, 7, 9]
-
-
-def test_several_range():
- r = _parse_cells('1-9', 100)
- assert r == [1, 2, 3, 4, 5, 6, 7, 8, 9]
-
-
-def test_several_limited():
- msg = "Notebook loaded of len 3, smaller than requested cells: [1, 2, 3, 4]"
- with pytest.raises(ValueError, match=re.escape(msg)):
- _parse_cells('1-4', 3)
-
-
-def test_range_default_start():
- r = _parse_cells('-3', 8)
- assert r == [1, 2, 3]
-
-
-def test_range_default_end():
- r = _parse_cells('5-', 8)
- assert r == [5, 6, 7, 8]
-
-
-def test_not_int():
- msg = "Found forbidden characters in cells definition (allowed digits, '-' and ',')"
- with pytest.raises(ValueError, match=re.escape(msg)):
- _parse_cells('1,a', 3)
-
-
-def test_not_positive():
- msg = "Cells need to be >=1"
- with pytest.raises(ValueError, match=re.escape(msg)):
- _parse_cells('3,0', 3)
-
-
-def test_several_mixed():
- r = _parse_cells('1,3,5-7,2,9,11-13', 80)
- assert r == [1, 2, 3, 5, 6, 7, 9, 11, 12, 13]
-
-
-def test_overlapped():
- r = _parse_cells('3,5-7,6-9,8', 80)
- assert r == [3, 5, 6, 7, 8, 9]
-
-
-def test_bad_range_equal():
- msg = "Range 'from' need to be smaller than 'to' (got '12-12')"
- with pytest.raises(ValueError, match=re.escape(msg)):
- _parse_cells('12-12', 80)
-
-
-def test_bad_range_smaller():
- msg = "Range 'from' need to be smaller than 'to' (got '3-2')"
- with pytest.raises(ValueError, match=re.escape(msg)):
- _parse_cells('3-2', 80)
diff --git a/macros/latex/contrib/jupynotex/tests/test_main.py b/macros/latex/contrib/jupynotex/tests/test_main.py
deleted file mode 100644
index fabfa4e01e..0000000000
--- a/macros/latex/contrib/jupynotex/tests/test_main.py
+++ /dev/null
@@ -1,111 +0,0 @@
-# Copyright 2020 Facundo Batista
-# All Rights Reserved
-# Licensed under Apache 2.0
-
-import textwrap
-
-import jupynotex
-from jupynotex import main
-
-
-class FakeNotebook:
- """Fake notebook.
-
- The instance supports calling (as it if were instantiated). The .get will return the
- value in a dict for received key; raise it if exception.
- """
-
- def __init__(self, side_effects):
- self.side_effects = side_effects
-
- def __call__(self, path):
- return self
-
- def __len__(self):
- return len(self.side_effects)
-
- def get(self, key):
- """Return or raise the stored side effect."""
- value = self.side_effects[key]
- if isinstance(value, Exception):
- raise value
- else:
- return value
-
-
-def test_simple_ok(monkeypatch, capsys):
- fake_notebook = FakeNotebook({
- 1: ("test cell content up", "test cell content down"),
- })
- monkeypatch.setattr(jupynotex, 'Notebook', fake_notebook)
-
- main('boguspath', '1')
- expected = textwrap.dedent("""\
- \\begin{tcolorbox}[title=Cell {01}]
- test cell content up
- \\tcblower
- test cell content down
- \\end{tcolorbox}
- """)
- assert expected == capsys.readouterr().out
-
-
-def test_simple_only_first(monkeypatch, capsys):
- fake_notebook = FakeNotebook({
- 1: ("test cell content up", ""),
- })
- monkeypatch.setattr(jupynotex, 'Notebook', fake_notebook)
-
- main('boguspath', '1')
- expected = textwrap.dedent("""\
- \\begin{tcolorbox}[title=Cell {01}]
- test cell content up
- \\end{tcolorbox}
- """)
- assert expected == capsys.readouterr().out
-
-
-def test_simple_error(monkeypatch, capsys):
- fake_notebook = FakeNotebook({
- 1: ValueError("test problem"),
- })
- monkeypatch.setattr(jupynotex, 'Notebook', fake_notebook)
-
- main('boguspath', '1')
-
- # verify the beginning and the end, as the middle part is specific to the environment
- # where the test runs
- expected_ini = [
- r"\begin{tcolorbox}[colback=red!5!white,colframe=red!75!,title={ERROR when parsing cell 1}]", # NOQA
- r"\begin{verbatim}",
- r"Traceback (most recent call last):",
- ]
- expected_end = [
- r"ValueError: test problem",
- r"\end{verbatim}",
- r"\end{tcolorbox}",
- ]
- out = [line for line in capsys.readouterr().out.split('\n') if line]
- assert expected_ini == out[:3]
- assert expected_end == out[-3:]
-
-
-def test_multiple(monkeypatch, capsys):
- fake_notebook = FakeNotebook({
- 1: ("test cell content up", "test cell content down"),
- 2: ("test cell content ONLY up", ""),
- })
- monkeypatch.setattr(jupynotex, 'Notebook', fake_notebook)
-
- main('boguspath', '1-2')
- expected = textwrap.dedent("""\
- \\begin{tcolorbox}[title=Cell {01}]
- test cell content up
- \\tcblower
- test cell content down
- \\end{tcolorbox}
- \\begin{tcolorbox}[title=Cell {02}]
- test cell content ONLY up
- \\end{tcolorbox}
- """)
- assert expected == capsys.readouterr().out
diff --git a/macros/latex/contrib/jupynotex/tests/test_notebook.py b/macros/latex/contrib/jupynotex/tests/test_notebook.py
deleted file mode 100644
index bf6511cbd3..0000000000
--- a/macros/latex/contrib/jupynotex/tests/test_notebook.py
+++ /dev/null
@@ -1,237 +0,0 @@
-# Copyright 2020 Facundo Batista
-# All Rights Reserved
-# Licensed under Apache 2.0
-
-import base64
-import json
-import os
-import pathlib
-import re
-import tempfile
-import textwrap
-
-import pytest
-
-from jupynotex import Notebook
-
-
-@pytest.fixture
-def notebook():
- _, name = tempfile.mkstemp()
-
- def _f(cells):
- with open(name, 'wt', encoding='utf8') as fh:
- json.dump({'cells': cells}, fh)
-
- return Notebook(name)
-
- yield _f
- os.unlink(name)
-
-
-def test_empty(notebook):
- nb = notebook([])
- assert len(nb) == 0
-
-
-def test_source_code(notebook):
- rawcell = {
- 'cell_type': 'code',
- 'source': ['line1\n', ' line2\n'],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- src, _ = nb.get(1)
- expected = textwrap.dedent("""\
- \\begin{verbatim}
- line1
- line2
- \\end{verbatim}
- """)
- assert src == expected
-
-
-def test_source_markdown(notebook):
- rawcell = {
- 'cell_type': 'markdown',
- 'source': ['line1\n', ' line2\n'],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- src, _ = nb.get(1)
- expected = textwrap.dedent("""\
- \\begin{verbatim}
- line1
- line2
- \\end{verbatim}
- """)
- assert src == expected
-
-
-def test_output_missing(notebook):
- rawcell = {
- 'cell_type': 'code',
- 'source': [],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- _, out = nb.get(1)
- assert out is None
-
-
-def test_output_simple_executeresult_plain(notebook):
- rawcell = {
- 'cell_type': 'code',
- 'source': [],
- 'outputs': [
- {
- 'output_type': 'execute_result',
- 'data': {
- 'text/plain': ['default always present', 'line2'],
- },
- },
- ],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- _, out = nb.get(1)
- expected = textwrap.dedent("""\
- \\begin{verbatim}
- default always present
- line2
- \\end{verbatim}
- """)
- assert out == expected
-
-
-def test_output_simple_executeresult_latex(notebook):
- rawcell = {
- 'cell_type': 'code',
- 'source': [],
- 'outputs': [
- {
- 'output_type': 'execute_result',
- 'data': {
- 'text/latex': ['some latex line', 'latex 2'],
- 'text/plain': ['default always present'],
- },
- },
- ],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- _, out = nb.get(1)
- expected = textwrap.dedent("""\
- some latex line
- latex 2
- """)
- assert out == expected
-
-
-def test_output_simple_executeresult_image(notebook):
- raw_content = b"\x01\x02 asdlklda3wudghlaskgdlask"
- rawcell = {
- 'cell_type': 'code',
- 'source': [],
- 'outputs': [
- {
- 'output_type': 'execute_result',
- 'data': {
- 'image/png': base64.b64encode(raw_content).decode('ascii'),
- 'text/plain': ['default always present'],
- },
- },
- ],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- _, out = nb.get(1)
- m = re.match(r'\\includegraphics\{(.+)\}\n', out)
- assert m
- (fpath,) = m.groups()
- assert pathlib.Path(fpath).read_bytes() == raw_content
-
-
-def test_output_simple_stream(notebook):
- rawcell = {
- 'cell_type': 'code',
- 'source': [],
- 'outputs': [
- {
- 'output_type': 'stream',
- 'text': ['some text line', 'text 2'],
- },
- ],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- _, out = nb.get(1)
- expected = textwrap.dedent("""\
- \\begin{verbatim}
- some text line
- text 2
- \\end{verbatim}
- """)
- assert out == expected
-
-
-def test_output_simple_display_data(notebook):
- raw_content = b"\x01\x02 asdlklda3wudghlaskgdlask"
- rawcell = {
- 'cell_type': 'code',
- 'source': [],
- 'outputs': [
- {
- 'output_type': 'display_data',
- 'data': {
- 'image/png': base64.b64encode(raw_content).decode('ascii'),
- },
- },
- ],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- _, out = nb.get(1)
- m = re.match(r'\\includegraphics\{(.+)\}\n', out)
- assert m
- (fpath,) = m.groups()
- assert pathlib.Path(fpath).read_bytes() == raw_content
-
-
-def test_output_multiple(notebook):
- rawcell = {
- 'cell_type': 'code',
- 'source': [],
- 'outputs': [
- {
- 'output_type': 'execute_result',
- 'data': {
- 'text/latex': ['some latex line', 'latex 2'],
- },
- }, {
- 'output_type': 'stream',
- 'text': ['some text line', 'text 2'],
- },
- ],
- }
- nb = notebook([rawcell])
- assert len(nb) == 1
-
- _, out = nb.get(1)
- expected = textwrap.dedent("""\
- some latex line
- latex 2
- \\begin{verbatim}
- some text line
- text 2
- \\end{verbatim}
- """)
- assert out == expected
diff --git a/macros/latex/contrib/jwjournal/README.md b/macros/latex/contrib/jwjournal/README.md
index 6185459348..f48c6a8745 100644
--- a/macros/latex/contrib/jwjournal/README.md
+++ b/macros/latex/contrib/jwjournal/README.md
@@ -1,7 +1,9 @@
-<!-- Copyright (C) 2023 by Jinwen XU -->
+<!-- Copyright (C) 2023-2024 by Jinwen XU -->
# `jwjournal`, a personal LaTeX class for writing journals
+> Package dependencies: [`enumitem`](https://ctan.org/pkg/enumitem), [*`einfart`*](https://ctan.org/pkg/minimalist), [`minimalist`](https://ctan.org/pkg/minimalist), [`needspace`](https://ctan.org/pkg/needspace), [`projlib`](https://ctan.org/pkg/projlib), [`tcolorbox`](https://ctan.org/pkg/tcolorbox).
+
## Introduction
A typical journal entry produced by `jwjournal` looks like this:
@@ -25,9 +27,9 @@ Codewise, it is as simple as below:
(( <0.45> {example-image-c}
```
-> It is also possible to write the date as `2023/01/01`.
+> It is also possible to write the date with other separators, such as `2023/01/01` or `2023.01.01`.
-> With the options `month-day-year` or `day-month-year`, you can also write date in the format `mm-dd-yyyy` or `dd-mm-yyyy`, respectively. You may refer to the English and French demo documents for examples.
+> With the options `month-day-year` or `day-month-year`, you can also write date in the format `mm-dd-yyyy` or `dd-mm-yyyy`, respectively. You may refer to the English, French and German demo documents for examples.
Every day of the week has its unique color, like this:
![image](https://github.com/Jinwen-XU/jwjournal/raw/main/screenshots/demo2.png)
@@ -44,7 +46,7 @@ By the way, the conversion from plain date string like `2023-01-01` to natural l
The structure of the document is very simple:
```latex
-\documentclass[11pt, paperstyle = light yellow, color entry]{jwjournal}
+\documentclass[11pt, paperstyle = light yellow, color entry, use indent = false]{jwjournal}
\UseLanguage{⟨language⟩} % For English this line can be omitted.
\begin{document}
@@ -62,6 +64,12 @@ The available class options include:
- `color entry` adds more color to the title of each entry;
- `scroll` turns the scroll mode on, which generates a single-page pdf similar to a long screenshot.
+> There are also some relevant options provided by the base class of `jwjournal`:
+> - `use indent = false`: disable the paragraph indentation and add some space between each paragraph instead.
+> - `use style = ⟨provided style⟩`: select the designing style of the current article; for our purpose here, it is recommended to use the style `classical` (with this the option `use indent = false` is added by default), together with the options `title in boldface` and `title in sffamily`, see the comment below regarding the usage of "Section".
+>
+> You may refer to the demo documents to see their actual usage.
+
Here are the major syntaxes for your main text:
1) Title
- Any line begins with date like `2023-01-01` or `2023/01/01` would be regard as the *Title* line.
@@ -70,7 +78,7 @@ Here are the major syntaxes for your main text:
```
2023-01-01 Sunny | Apartment
```
- > With the options `month-day-year` or `day-month-year`, you can also write date in the format `mm-dd-yyyy` or `dd-mm-yyyy`, respectively. You may refer to the English and French demo documents for examples.
+ > With the options `month-day-year` or `day-month-year`, you can also write date in the format `mm-dd-yyyy` or `dd-mm-yyyy`, respectively. You may refer to the English, French and German demo documents for examples.
1) Note
- Any line begins with something like `[Note]` would be regard as the *Note* line.
- Example:
@@ -241,6 +249,12 @@ Language and date format can both be set in two ways: as class option or with co
### Scroll mode
The scroll mode is achieved by directly accessing `\pdfpageheight` (pdfTeX and XeTeX) or `\pageheight` (LuaTeX). The minimal page height is set to be `10in`. It is worth noting that in order to calculate the height needed, the entire content are put into a single box, which puts a limitation on the length of your document (but this usually wouldn't be a problem).
-# License
+
+## Acknowledgement
+
+The author would like to thank his friend Junzhuo Zhao for his valuable help with the German language. Danke schön!
+
+
+## License
This work is released under the LaTeX Project Public License, v1.3c or later.
diff --git a/macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdf b/macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdf
index 010d83d024..ba83bdf73e 100644
--- a/macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdf
+++ b/macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdf
Binary files differ
diff --git a/macros/latex/contrib/jwjournal/jwjournal-demo-cn.tex b/macros/latex/contrib/jwjournal/jwjournal-demo-cn.tex
index 213bf34d51..639fabf903 100644
--- a/macros/latex/contrib/jwjournal/jwjournal-demo-cn.tex
+++ b/macros/latex/contrib/jwjournal/jwjournal-demo-cn.tex
@@ -14,9 +14,9 @@
在文中出现的日期和标注不会被识别: 2023-12-25、[标注]、【标注】,放心使用!
[文本]
- 你可以使用*斜体*、**粗体**或者***两者结合***。
+ 你可以使用*斜体*、**粗体**或者***两者结合***(具体效果取决于字体设置)。
\\
- 数学模式下的星号不会被识别:
+ 数学模式下的星号不会被识别:$a^* b^*$。
【说明】 % 【...】与 [...] 效果相同
在一些特殊情况需要把星号用 \texttt{\{\}} 隔开:**像**{}***这***{}*样*。
diff --git a/macros/latex/contrib/jwjournal/jwjournal-demo-de.pdf b/macros/latex/contrib/jwjournal/jwjournal-demo-de.pdf
new file mode 100644
index 0000000000..4f4efc58cc
--- /dev/null
+++ b/macros/latex/contrib/jwjournal/jwjournal-demo-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/jwjournal/jwjournal-demo-de.tex b/macros/latex/contrib/jwjournal/jwjournal-demo-de.tex
new file mode 100644
index 0000000000..ac4ff8b96f
--- /dev/null
+++ b/macros/latex/contrib/jwjournal/jwjournal-demo-de.tex
@@ -0,0 +1,118 @@
+\documentclass[11pt, paperstyle=light yellow, color entry, day-month-year,
+ title in boldface, title in sffamily, use style = classical]{jwjournal}
+% "paperstyle = ..." passt die Papierfarbe an, Optionen sind: lightyellow、yellow、parchment、green、lightgray、gray、nord、dark
+% "color entry" fügt dem Titel jedes Eintrags mehr Farbe hinzu
+% "scroll" schaltet den Scroll-Modus ein und kann ein einseitiges PDF ähnlich einem langen Screenshot generieren
+
+\UseLanguage { German }
+
+\begin{document}
+
+
+01.01.2024 Sonnig | Ort
+
+ Im Text erscheinende Daten und Anmerkungen werden nicht erkannt: 25.12.2023, [Anmerkung], können Sie diese ruhig schreiben.
+
+ [Text]
+ Sie können Text in *kursiv*, **fett** oder ***beides*** schreiben.
+ \\
+ Sternchen im Mathematikmodus werden nicht erkannt: $a^* b^*$.
+
+ [Anmerkung] In einigen Sonderfällen kann es notwendig sein, die Sternchen mit~\texttt{\{\}} zu trennen: **genau**{}***wie***{}*dieses*.
+
+ >>> Sie können Text in einen farbigen Block wie diesen einfügen.
+
+ Bilder können eingefügt über:
+
+ || <.4> {example-image} % oder || {example-image} <.4>
+ >> (Anmerkung zum Bild)
+ >> (Weitere Bemerkung...)
+
+ +++
+ Sie können das Bild auch links oder rechts anzeigen:
+ (( <.4> {example-image-a} % oder (( {example-image-a} <.4>
+ -> <.3> % fügen Sie etwas vertikalen Abstand hinzu, hier ist „0.3\baselineskip“
+ )) <.4> {example-image-b} % oder )) {example-image-b} <.4>
+
+
+## {\textsc{Ein neuer Abschnitt}}
+
+02.01.2024
+Unbekannt (das Wetter kann je nach Wunsch auch in die zweite Zeile geschrieben werden)
+
+ Die Farbe der Beschriftungen ändert sich je nach Datum und langer Text wird automatisch umbrochen und eingerückt:
+
+ [Hinweis] Ich habe heute nicht gelernt, aber ich habe sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr viel Code geschrieben: `Inline-Code`.
+
+ [Achtung] Sonderzeichen im Inline-Code müssen maskiert werden. Beispielsweise sollte `\textbackslash` als `\textbackslash textbackslash` geschrieben werden, `\{` sollte als `\textbackslash\{` geschrieben werden, `\%` sollte als `\textbackslash\%` geschrieben werden usw.
+
+ -----
+
+ Drei oder mehr \textquote{\texttt{-}} in einem separaten Absatz ergeben eine Trennlinie ---
+
+ ---
+
+ --- aber die aktuelle Zeile wird nicht abgeglichen, da sich hinter \texttt{-}\texttt{-}\texttt{-} zusätzlicher Text befindet.
+
+ -----
+
+ Wenn auf die Beschriftung mehrere Absätze folgen, können Sie \texttt{\textbackslash\textbackslash} und \texttt{\slash\slash} verwenden, um sie zu verketten, sodass alle Texte richtig eingerückt werden:
+
+ [Beschriftung] Etwas Text.
+ //
+ Mehr Text (mit \texttt{\slash\slash}, also mit etwas vertikalem Abstand zum obigen Text).
+ //
+ Mehr Text (dasselbe, mit etwas vertikalem Abstand zum obigen Text).
+ //
+ (Einige Anmerkungen)
+ \\
+ (Eine weitere Anmerkung, die aufgrund der Verwendung von \texttt{\textbackslash\textbackslash} direkt neben der obigen Anmerkung)
+ \\
+ (Weitere Anmerkungen --- ähnlich, direkt neben der obigen Anmerkung)
+
+
+
+03.01.2024
+
+ [Anmerkung] Wenn nur das Datum geschrieben wird, dann gäbe es kein zweites Trennzeichen danach.
+
+
++++
+04.01.2024 Bewölkt
+
+ Drei Pluszeichen \texttt{+++} können die aktuelle Seite um etwa eine Zeile vergrößern. Manchmal fallen ein einzelner Satz oder ein paar Wörter auf die nächste Seite --- in solchen Fällen können Sie es verwenden, um den Anzeigeeffekt zu verbessern.
+
+
+
+05.01.2024 Bewölkt --- Arbeit zu Hause
+===============================================
+
+Sie können Ihren Code auch so organisieren.
+
+
+==========
+06.01.2024 Sonnig --- Arbeit zu Hause
+==========
+
+Oder so...
+
+
+
+07.01.2024 Bewölkt
+
+ ...
+
+
+
+08.01.2024 Bewölkt
+
+ Eine Woche später wird die Farbe wieder auf die vorherige zurückgesetzt.
+
+
+
+09.01.2024 Bewölkt
+
+ ...
+
+
+\end{document}
diff --git a/macros/latex/contrib/jwjournal/jwjournal.cls b/macros/latex/contrib/jwjournal/jwjournal.cls
index 3b968ce12e..3e84c935ba 100644
--- a/macros/latex/contrib/jwjournal/jwjournal.cls
+++ b/macros/latex/contrib/jwjournal/jwjournal.cls
@@ -1,6 +1,6 @@
%%
-%% Copyright (C) 2023 by Jinwen XU
-%% -------------------------------
+%% Copyright (C) 2023-2024 by Jinwen XU
+%% ------------------------------------
%%
%% This file may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3c of this license
@@ -12,7 +12,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplClass
{jwjournal}
- {2023/12/19} {}
+ {2024/09/01} {}
{JW's journal class}
\keys_define:nn { jwjournal }
@@ -33,11 +33,11 @@
\sys_if_engine_pdftex:TF
{
- \PassOptionsToClass { use indent = false } { minimart }
+ % \PassOptionsToClass { use indent = false } { minimart }
\LoadClass { minimart }
}
{
- \PassOptionsToClass { use indent = false } { einfart }
+ % \PassOptionsToClass { use indent = false } { einfart }
\LoadClass { einfart }
}
@@ -554,14 +554,14 @@
}
\regex_replace_once:nnN { ❄️ (.*) ❄️ } { ❄️ \1 } \l_jwjournal_tmp_tl
- \regex_replace_once:nnN
- { ❄️ (\ *)? (\d{4}-\d{1,2}-\d{1,2}) (\ *)? (.*) }
- { \c{JWJournalEntry} {\2} {\4} }
- \l_jwjournal_tmp_tl
- \regex_replace_once:nnN
- { ❄️ (\ *)? (\d{1,2}-\d{1,2}-\d{4}) (\ *)? (.*) }
- { \c{JWJournalEntry} {\2} {\4} }
- \l_jwjournal_tmp_tl
+ % \regex_replace_once:nnN
+ % { ❄️ (\ *)? (\d{4}-\d{1,2}-\d{1,2}) (\ *)? (.*) }
+ % { \c{JWJournalEntry} {\2} {\4} }
+ % \l_jwjournal_tmp_tl
+ % \regex_replace_once:nnN
+ % { ❄️ (\ *)? (\d{1,2}-\d{1,2}-\d{4}) (\ *)? (.*) }
+ % { \c{JWJournalEntry} {\2} {\4} }
+ % \l_jwjournal_tmp_tl
\regex_replace_once:nnN
{ ❄️ (\ *)? (\d{4} \D \d{1,2} \D \d{1,2}) (\ *)? (.*) }
{ \c{JWJournalEntry} {\2} {\4} }
diff --git a/macros/latex/contrib/keytheorems/CHANGELOG.md b/macros/latex/contrib/keytheorems/CHANGELOG.md
new file mode 100644
index 0000000000..effaaf9962
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/CHANGELOG.md
@@ -0,0 +1,38 @@
+# Changelog for keytheorems package
+
+## [v0.1.5]
+- add `format-code` list key
+- can now use `\thmname`, `\thmnumber`, `\thmnote` in `headformat`
+
+## [v0.1.4]
+- add `store-sets-label` option
+- add `restatable*` environment for `thmtools-compat`
+- add `numberfont` style key
+- add `restate-keys` key
+- styles defined with `\newkeytheoremstyle` now work as expected with `\theoremstyle`
+
+## [v0.1.3]
+- add `noteseparator` key
+- add `\IfRestatingT`, `\IfRestatingF`
+- add `store*` key
+- add Portuguese translations
+
+## [v0.1.2]
+- Move support for memoir and AMS classes to dedicated files
+- document `headformat` key
+- add Italian translations
+- add `indent` list key
+- add `no-toc` list key
+- documentation improvements
+
+## [v0.1.1] - 2024-09-09
+- First CTAN release
+
+## 0.1.0 - 2024-09-04
+- First release
+
+[v0.1.5]: https://github.com/mbertucci47/keytheorems/compare/v0.1.4...v0.1.5
+[v0.1.4]: https://github.com/mbertucci47/keytheorems/compare/v0.1.3...v0.1.4
+[v0.1.3]: https://github.com/mbertucci47/keytheorems/compare/v0.1.2...v0.1.3
+[v0.1.2]: https://github.com/mbertucci47/keytheorems/compare/v0.1.1...v0.1.2
+[v0.1.1]: https://github.com/mbertucci47/keytheorems/compare/v0.1.0...v0.1.1 \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/README.md b/macros/latex/contrib/keytheorems/README.md
new file mode 100644
index 0000000000..a16bfc2303
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/README.md
@@ -0,0 +1,612 @@
+# keytheorems
+
+A LaTeX package to use [`amsthm`](https://www.ctan.org/pkg/amsthm)
+with a key-value interface. Meant to emulate most of the functionality of
+[`thmtools`](https://www.ctan.org/pkg/thmtools) but written in expl3. If you
+find a bug please open an issue or pull request.
+
+The package is maintained by Matthew Bertucci.
+
+## Sample document
+```tex
+\documentclass{article}
+\usepackage{amssymb,amsmath}
+\usepackage{keytheorems}
+\usepackage{hyperref}
+
+\newkeytheoremstyle{mystyle}{
+ % <insert options>
+ }
+\newkeytheorem{theorem}[
+ style=mystyle,
+ parent=section
+ ]
+\newkeytheorem{remark}[
+ style=remark,
+ numbered=no
+ ]
+
+\begin{document}
+
+\section{Some theorems}
+
+\begin{theorem}[
+ note=Strong Bertini over $\mathbb{C}$,
+ label=strongbertini
+ ]
+Let $X$ be a smooth complex variety and let $\mathfrak{D}$ be a positive
+dimensional linear system on $X$. Then the general element of $\mathfrak{D}$ is
+smooth away from the base locus $B_{\mathfrak{D}}$. That is, the set
+ \[\{H\in\mathfrak{D}\mid D_H \text{ is smooth away from } B_{\mathfrak{D}}\}\]
+is a Zariski dense open subset of $\mathfrak{D}$.
+\end{theorem}
+
+\begin{remark}
+In fact, \autoref{strongbertini} holds over any algebraically closed field of
+characteristic zero.
+\end{remark}
+
+\begin{theorem}[Bertini over any field]
+Let $X\subset\mathbb{P}_k^n$ be a smooth projective variety over a field $k$.
+Then the set of hyperplanes $H\subseteq\mathbb{P}_k^n$ such that $X\cap H$ is
+smooth is a Zariski dense open subset of $(\mathbb{P}_k^n)^*$.
+\end{theorem}
+
+\listofkeytheorems
+
+%%% compare with
+%\listofkeytheorems[ignoreall,show=theorem]
+%\listofkeytheorems[swapnumber]
+%\listofkeytheorems[title=BLUB]
+%\listofkeytheorems[print-body] % needs 'store-all' package option
+
+\end{document}
+```
+
+## Documentation
+There is a list of commands and keys offered by the package
+[here](https://github.com/mbertucci47/keytheorems/blob/main/doc/keytheorems-doc.pdf).
+More of a reference document than documentation.
+
+## Differences with thmtools
+
+Some of the code is a direct translation from thmtools but a few things are changed:
+- The only backend supported is amsthm, and it is loaded by the package. As I understand it,
+ [`ntheorem`](https://www.ctan.org/pkg/ntheorem) has quite a few bugs and no active development, and
+ if you're just using the kernel `\newtheorem` then you don't need a package like this.
+- Theorem hooks use the kernel hooks. Thus unlike the `prefoot` and `postfoot` hooks of
+ thmtools, all code chunks are added to hooks in the order declared (unless given a
+ distinct label; then the chunks are reversed). The order of generic/specific hooks
+ remains the same. Furthermore, the command for adding to theorem hooks is `\addtotheoremhook{<hook name>}{<theorem name>}`.
+- thmtools changes some style settings to be default that are different from
+ amsthm defaults, but only if a custom style is called. Example:
+ ```tex
+ \declaretheoremstyle[spaceabove=20pt]{mythmsty}
+ \declaretheorem[style=mythmsty]{mythm}
+ ```
+
+ is different from just
+
+ ```tex
+ \declaretheorem{mythm}
+ ```
+
+ as in the former, `bodyfont` is `\normalfont`, not the default `\itshape`.
+ This package keeps the defaults unless a key is specifically given.
+- There is no `restatable(*)` environment except with package option `thmtools-compat`. Use the
+ `store` (alias `restate`) key. For counters and labels pointing to the restated theorem,
+ use `store*` (alias `restate*`).
+- Rather than `restate=foo` defining a command `\foo*`, theorems are retrieved with `\getkeytheorem{foo}`.
+ For just the theorem body, use `\getkeytheorem[body]{foo}`. Also, this retrieval
+ can happen even before the theorem is stated since keytheorems writes the contents
+ to a file.
+- The `shaded` and `thmbox` keys are only available with the package option `thmtools-compat`,
+ and they are emulated with [`tcolorbox`](https://www.ctan.org/pkg/tcolorbox). Instead there's
+ an interface to tcolorbox with the `tcolorbox={<options>}` and `tcolorbox-no-titlebar={<options>}` key.
+ The `mdframed` key is not implemented.
+- You can reuse styles with the `inherit-style` key.
+- With thmtools, the command `\newtheorem{<envname>}{<heading>}` is changed to behave like
+ `\declaretheorem[name=<heading>]{<envname>}`. This is not the default here. Instead either
+ only use the new interface or load the package with option `overload`.
+- Adds several new keys (see doc for details).
+
+## thmtools issues resolved by keytheorems
+Issues from the thmtools [github page](https://github.com/muzimuzhi/thmtools),
+with corresponding keytheorems code that shows the issue resolved.
+### [\listoftheorems: filter out restated ones #7](https://github.com/muzimuzhi/thmtools/issues/7)
+keytheorems does not list restated theorems in the `\listofkeytheorems`.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheorem{theorem}
+
+\begin{document}
+
+\begin{theorem}[store=foo]
+text
+\end{theorem}
+
+\getkeytheorem{foo}
+
+\listofkeytheorems
+
+\end{document}
+```
+
+### [\listoftheorems: hide title #8](https://github.com/muzimuzhi/thmtools/issues/8)
+keytheorems provides the `no-title` key.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheorem{axiom}
+\newkeytheorem{theorem}
+
+\begin{document}
+
+\listofkeytheorems[ignoreall,show=axiom]
+\listofkeytheorems[ignoreall,show=theorem,no-title]
+
+\begin{axiom}
+some axiom
+\end{axiom}
+
+\begin{theorem}
+some theorem
+\end{theorem}
+
+\begin{axiom}
+another axiom
+\end{axiom}
+
+\begin{theorem}
+another theorem
+\end{theorem}
+
+\end{document}
+```
+
+### [Case in point: the tcolorbox key #9](https://github.com/muzimuzhi/thmtools/issues/9)
+keytheorems provides the `tcolorbox` and `tcolorbox-no-titlebar` keys.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheorem{theorem}[
+ tcolorbox={
+ colback=blue!10,
+ colframe=blue!75
+ }
+ ]
+\newkeytheorem{corollary}[
+ tcolorbox-no-titlebar={colback=red!10}
+ ]
+
+\begin{document}
+
+\begin{theorem}
+some theorem
+\end{theorem}
+
+\begin{corollary}
+some corollary
+\end{corollary}
+
+\end{document}
+```
+
+### [thm-listof: document \thmtformatoptarg, new list option? #14](https://github.com/muzimuzhi/thmtools/issues/14)
+keytheorems provides the `note-code` key for `\listofkeytheorems` and
+`\keytheoremlistset`.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheorem{theorem}
+
+\begin{document}
+
+\begin{theorem}[my heading]
+some theorem
+\end{theorem}
+
+\listofkeytheorems[note-code={ [\textit{#1}]}]
+
+\end{document}
+```
+
+### [Style inheritance in thmtools #15](https://github.com/muzimuzhi/thmtools/issues/15)
+keytheorems provides the `inherit-style` key.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheoremstyle{mysty1}{notefont=\itshape}
+\newkeytheoremstyle{mysty2}{inherit-style=mysty1,bodyfont=\normalfont}
+\newkeytheorem{theorem}[style=mysty1]
+\newkeytheorem{corollary}[style=mysty2]
+
+\begin{document}
+
+\begin{theorem}[my heading]
+some theorem
+\end{theorem}
+
+\begin{corollary}[my heading]
+some corollary
+\end{corollary}
+
+\end{document}
+```
+
+### [Restate without theorem headings (head + note) #19](https://github.com/muzimuzhi/thmtools/issues/19)
+Use `\getkeytheorem[body]{foo}`.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheorem{theorem}
+
+\begin{document}
+
+\begin{theorem}[store=hello]
+Hello!
+\end{theorem}
+
+\getkeytheorem{hello}
+
+\section{\getkeytheorem[body]{hello}}
+
+\end{document}
+```
+
+### [Option clash: numbered=no and thmbox #25](https://github.com/muzimuzhi/thmtools/issues/25)
+Fixed with keytheorem's implementation of the `thmbox` key with `thmtools-compat`.
+```tex
+\documentclass{article}
+\usepackage[thmtools-compat]{keytheorems}
+
+\declaretheorem[numbered=no, name=TheoremA, ]{mytheo1}
+\declaretheorem[ name=TheoremB, thmbox=M]{mytheo2}
+\declaretheorem[numbered=no, name=TheoremC, thmbox=M]{mytheo3}
+
+\begin{document}
+
+\begin{mytheo1}
+ test1
+\end{mytheo1}
+
+\begin{mytheo2}
+ test2
+\end{mytheo2}
+
+\begin{mytheo3}
+ test3
+\end{mytheo3}
+
+\end{document}
+```
+
+### [Skip the title of the theorem but leave the []. #30](https://github.com/muzimuzhi/thmtools/issues/30)
+Fixed in keytheorems.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheorem{Teorema}[name=Theorem]
+
+\begin{document}
+
+\begin{Teorema}
+ body
+\end{Teorema}
+
+\begin{Teorema}[]
+ body
+\end{Teorema}
+
+\begin{Teorema}[title]
+ body
+\end{Teorema}
+
+\end{document}
+```
+
+### [too much space with restatable #40](https://github.com/muzimuzhi/thmtools/issues/40)
+Fixed in keytheorems.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+\usepackage{kantlipsum}
+
+\newkeytheorem{theorem}
+
+\begin{document}
+
+\begin{theorem}
+\kant[2][1]
+\end{theorem}
+
+\begin{theorem}[store=foo]
+\kant[1][2]
+\end{theorem}
+
+\begin{theorem}
+\kant[2][1]
+\end{theorem}
+
+\getkeytheorem{foo}
+
+\end{document}
+```
+
+### [restate key with no name leads to (,) in restated title #41](https://github.com/muzimuzhi/thmtools/issues/41)
+Fixed in keytheorems.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+\usepackage{kantlipsum}
+
+\newkeytheorem{theorem}
+
+\begin{document}
+
+\begin{theorem}[restate=foo]
+\kant[1][2]
+\end{theorem}
+
+\getkeytheorem{foo}
+
+\begin{theorem}[restate=foobar,name=Heading]
+\kant[2][1]
+\end{theorem}
+
+\getkeytheorem{foobar}
+
+\end{document}
+```
+### [[Help Wanted] Print all Theorems? #43](https://github.com/muzimuzhi/thmtools/issues/43)
+Use the `store-all` load-time option with `\listofkeytheorems[print-body]`.
+```tex
+\documentclass{article}
+\usepackage[store-all]{keytheorems}
+
+\newkeytheorem{theorem}
+\newkeytheorem{lemma}
+
+\begin{document}
+
+\begin{theorem}
+some theorem
+\end{theorem}
+
+\begin{lemma}
+some lemma
+\end{lemma}
+
+\listofkeytheorems[print-body]
+
+\end{document}
+```
+
+### [qed option without value fails in \declaretheoremstyle #47](https://github.com/muzimuzhi/thmtools/issues/47)
+Fixed in keytheorems.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheoremstyle{mythmsty}{qed}
+\newkeytheorem{theorem}[style=mythmsty]
+
+\begin{document}
+
+\begin{theorem}
+Text
+\end{theorem}
+
+\end{document}
+```
+
+### [prefoot and postfoot hooks called twice with restate key #54](https://github.com/muzimuzhi/thmtools/issues/54)
+Fixed in keytheorems.
+```tex
+\documentclass{article}
+\usepackage{keytheorems}
+
+\newkeytheorem{theorem}
+
+\addtotheoremhook{prehead}{PREHEAD}
+\addtotheoremhook{posthead}{POSTHEAD}
+\addtotheoremhook{prefoot}{PREFOOT}
+\addtotheoremhook{postfoot}{POSTFOOT}
+
+\begin{document}
+
+\begin{theorem}
+body text
+\end{theorem}
+
+\begin{theorem}[store=foo]
+body text
+\end{theorem}
+
+\end{document}
+```
+
+### [restate key incompatible with beamer #58](https://github.com/muzimuzhi/thmtools/issues/58)
+```tex
+\documentclass{beamer}
+\setbeamertemplate{theorems}[numbered]
+\usepackage{keytheorems}
+
+\newkeytheorem{MyTheorem}
+
+\begin{document}
+
+\begin{frame}
+\begin{MyTheorem}[restate=foo]
+text
+\end{MyTheorem}
+
+\getkeytheorem{foo}
+\end{frame}
+
+\end{document}
+```
+
+## Things to do
+
+- Clean up the code. Things are out of order, poorly named, etc.
+- Add more error messages.
+- thmtools features not yet implemented
+ - real [`beamer`](https://ctan.org/pkg/beamer) support
+ - certainly more
+- For a complete list, see [`keytheorems-ideas.md`](https://github.com/mbertucci47/keytheorems/blob/main/keytheorems-ideas.md)
+
+## Notes/issues on thmtools, not on Github
+
+### continues with unless unique and restate
+Should this be numbered or not?
+```tex
+\documentclass{article}
+\usepackage{amsthm,thmtools}
+
+\declaretheorem[numbered=unless unique]{theorem}
+
+\begin{document}
+
+\begin{theorem}[label=foo]
+bla
+\end{theorem}
+
+\begin{theorem}[continues=foo]
+bla
+\end{theorem}
+
+\end{document}
+```
+It does the correct thing when a parent counter is given and is split across that counter.
+```tex
+\documentclass{article}
+\usepackage{amsthm,thmtools}
+
+\declaretheorem[numbered=unless unique,parent=section]{theorem}
+
+\begin{document}
+
+\begin{theorem}[label=foo]
+bla
+\end{theorem}
+
+\section{bla}
+
+\begin{theorem}[continues=foo]
+bla
+\end{theorem}
+
+\end{document}
+```
+Also adds a number if restated, which seems wrong.
+```tex
+\documentclass{article}
+\usepackage{amsthm,thmtools}
+
+\declaretheorem[numbered=unless unique]{theorem}
+
+\begin{document}
+
+\begin{restatable}{theorem}{foo}
+bla
+\end{restatable}
+
+\foo*
+
+\end{document}
+```
+
+### qed in both `\declaretheoremstyle` and `\declaretheorem`
+One would expect the one in `\declaretheorem` to overwrite, but because the code just adds to the hooks without checking,
+it's additive.
+```tex
+\documentclass{article}
+\usepackage{amsthm,thmtools}
+
+\declaretheoremstyle[qed=$\clubsuit$]{mysty}
+\declaretheorem[style=mysty,qed]{theorem}
+
+\begin{document}
+
+\begin{theorem}
+bla
+\end{theorem}
+
+\end{document}
+```
+
+### restate incompatible with thmbox
+```tex
+\documentclass{article}
+\usepackage{amsthm,thmtools}
+
+\declaretheorem[thmbox]{theorem}
+
+\begin{document}
+
+\begin{theorem}[restate=foo]
+bla
+\end{theorem}
+
+\foo*
+
+\end{document}
+```
+
+### adding to listoftheorems doesn't work as expected
+```tex
+\documentclass{article}
+\usepackage{amsthm,thmtools}
+
+\declaretheorem{theorem}
+
+\begin{document}
+
+\begin{theorem}
+bla
+\end{theorem}
+
+\addcontentsline{loe}{section}{some text}
+
+\begin{theorem}
+bla
+\end{theorem}
+
+\listoftheorems
+
+\end{document}
+```
+
+### new theorem styles do not preserve "plain" keys
+With keytheorems, this is handled only for the AMS classes and acmart.
+```tex
+\documentclass{amsbook}
+\usepackage{thmtools}
+
+\declaretheoremstyle[bodyfont=\upshape]{upsty}
+\declaretheorem{theorem}
+\declaretheorem[style=upsty]{lemma}
+
+\begin{document}
+
+\begin{theorem}
+blub
+\end{theorem}
+
+\begin{lemma}
+blub
+\end{lemma}
+
+\end{document}
+```
+## License
+Released under the LaTeX Project Public License v1.3c or later. See https://www.latex-project.org/lppl.txt. \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/doc/keytheorems-doc.pdf b/macros/latex/contrib/keytheorems/doc/keytheorems-doc.pdf
new file mode 100644
index 0000000000..2b00e587c9
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/doc/keytheorems-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/keytheorems/doc/keytheorems-doc.tex b/macros/latex/contrib/keytheorems/doc/keytheorems-doc.tex
new file mode 100644
index 0000000000..42c22187fd
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/doc/keytheorems-doc.tex
@@ -0,0 +1,1122 @@
+% !TeX program = txs:///lualatex | txs:///makeindex | txs:///lualatex | txs:///view-pdf
+\PassOptionsToPackage{hyperindex}{hyperref}
+\PassOptionsToPackage{dvipsnames}{xcolor}
+\documentclass{ltxdoc}
+\usepackage{geometry}
+\geometry{margin=1in}
+\usepackage{tcolorbox}
+\PassOptionsToPackage{highlightmode=immediate}{minted}
+\tcbuselibrary{documentation,minted}
+\tcbset{
+ listing engine=minted,
+ minted language=latex,
+ }
+\ifTUTeX
+\usepackage{newcomputermodern}
+\else
+\usepackage{lmodern}
+\usepackage[T1]{fontenc}
+\usepackage{amssymb}
+\fi
+\usetikzlibrary{cd}
+\usepackage{booktabs}
+\usepackage{keytheorems}
+\usepackage{cleveref}
+
+\def\version{0.1.5}
+
+\title{%
+ \pkg{keytheorems} package \\[1ex]
+ \large version \version \\[1ex]
+ \href{https://github.com/mbertucci47/keytheorems}
+ {\texttt{github.com/mbertucci47/keytheorems}}
+ }
+\author{Matthew Bertucci}
+
+\newkeytheoremstyle{breaksty}{break}
+\newkeytheorem{theorem}
+\newkeytheorem{mythm}[name=Some Name]
+\newkeytheorem{theorem*}[name=Theorem,numbered=false]
+\newkeytheorem{conjecture}[parent=section]
+\newkeytheorem{lemma}[sibling=theorem]
+\newkeytheorem{test}[
+ preheadhook=PREHEAD,
+ postheadhook=POSTHEAD,
+ prefoothook=PREFOOT,
+ postfoothook=POSTFOOT
+]
+\newkeytheorem{prop}[
+ name=Proposition,
+ refname={proposition,propositions},
+ Refname={Proposition,Propositions}
+ ]
+\newkeytheorem{example}[qed]
+\newkeytheorem{solution}[qed=$\clubsuit$]
+\newkeytheorem{remark}[style=remark]
+\tcbset{
+ defstyle/.style={arc=0mm,colback=blue!5!white,colframe=blue!75!black},
+ thmstyle/.style={colback=green!5,colframe=green!35!black},
+ }
+\newkeytheoremstyle{tcb-standard}{
+ tcolorbox=thmstyle,
+ headpunct={},
+ notebraces={}{},
+ noteseparator={: },
+ notefont=\bfseries,
+ bodyfont=\normalfont,
+ }
+\newkeytheorem{mytheo}[name=My Theorem,style=tcb-standard]
+\newkeytheorem{corollary}[tcolorbox]
+\newkeytheorem{definition}[
+ style=definition,
+ tcolorbox={defstyle}
+ ]
+\newkeytheorem{boxcor}[
+ tcolorbox-no-titlebar={colback=red!10},
+ name=Corollary,
+ sibling=corollary,
+ ]
+\newkeytheorem{observation}[style=breaksty]
+
+\MakeShortVerb{\|}
+\newcommand{\env}{\texttt}
+\newcommand{\hook}{\texttt}
+\NewCommandCopy{\braces}{\brackets}
+\newcommand{\bracks}[1]{\texttt{[#1]}}
+\newcommand{\ttbraces}[1]{\braces{\texttt{#1}}}
+%\tcbset{index gather commands=false}
+\tcbset{
+ color command=BrickRed,
+ color key=Fuchsia,
+ color value=teal,
+ before doc body={%
+ \setlength{\parindent}{15pt}
+ \noindent
+ },
+ }
+\tcbset{
+ withpreamble/.style = {
+ before upper = {%
+ {\ttfamily\itshape \% preamble}%
+ \vspace{-0.7\baselineskip}%
+ \tcbusetemplisting%
+ {\ttfamily\itshape \% document}%
+ \vspace{-0.7\baselineskip}%
+ }
+ }
+ }
+
+\NewTCBListing{keythmscode}{ O{} }
+ {
+ colback=yellow!10!white,
+ colframe=blue!50!black,
+ boxrule=0.4pt,
+ listing side text,
+ #1
+ }
+
+\NewTCBListing{keycode}{ }
+ {
+ colback=yellow!10!white,
+ colframe=blue!50!black,
+ boxrule=0.4pt,
+ listing side text,
+ }
+\newtcolorbox{notebox}[1][]{enhanced,
+ before skip balanced=2mm,after skip balanced=4mm,
+ boxrule=0.4pt,left=5mm,right=2mm,top=1mm,bottom=1mm,
+ colback=red!20,
+ colframe=red!40!black,
+ sharp corners,rounded corners=southeast,arc is angular,arc=3mm,
+ underlay={%
+ \path[fill=tcbcolback!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
+ \path[draw=tcbcolframe,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
+ \path[fill=red!40!black,draw=none] (interior.south west) rectangle node[white]{\LARGE\bfseries !} ([xshift=4mm]interior.north west);
+ },
+ drop fuzzy shadow,#1}
+\makeatletter
+% allow for optional argument specifying printed text, mostly for starred keys
+\RenewDocumentCommand\tcb@ref@doc{msom}{%
+ \hyperref[{#1:#4}]{%
+ \IfValueTF{#3}{\texttt{#3}}{\texttt{\ref*{#1:#4}}}%
+ \IfBooleanTF{#2}{}{%
+ \ifnum\getpagerefnumber{#1:#4}=\thepage\relax%
+ \else%
+ \kvtcb@doc@format@page{{\fontfamily{pzd}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont\char213}%
+ \,\kvtcb@text@pageshort\,\pageref*{#1:#4}}%
+ \fi}}%
+}
+\makeatother
+\makeindex
+
+\begin{document}
+
+\maketitle
+
+\begin{abstract}
+An \pkg{expl3}-implementation of a key-value interface to \pkg{amsthm}, implementing most of the functionality provided by \pkg{thmtools}.
+Several issues encountered with \pkg{thmtools} are avoided (see the README for a list) and a few new features are added.
+\end{abstract}
+
+\tableofcontents
+
+\section{Dependencies}
+
+Without using the \refKey{tcolorbox} or \refKey{tcolorbox-no-titlebar} options, the package loads the \pkg{aliascnt}, \pkg{amsthm}, \pkg{refcount}, \pkg{translations}, and \pkg{unique} packages.
+A \LaTeX{} kernel no older than 2023-06-01 is required; if older than 2024-06-01, \pkg{nameref} is required.
+
+\section{Global options}
+
+\begin{docCommand}{keytheoremset}
+ {\marg{options}}
+Every key in this section can be given as a package option with \cs{usepackage}\bracks{\meta{options}}\ttbraces{keytheorems} or in \cs{keytheoremset}\marg{options}, with the exception that \refKey{continues-code} can only be used in the latter.
+\end{docCommand}
+
+\subsection{Compatibility options}
+
+\begin{docKey}{overload}
+ {}
+ {initially unset}
+Redefines \cs{newtheorem} to internally use the \pkg{keytheorems} machinery. The syntax remains the same.
+This is automatically set by \refKey{thmtools-compat}.
+\end{docKey}
+
+\begin{docKey}{thmtools-compat}
+ {}
+ {initially unset}
+For compatibility with \pkg{thmtools} syntax.
+For most documents, \cs{usepackage}\bracks{thmtools-compat}\ttbraces{keytheorems} should be a drop-in replacement for \cs{usepackage}\ttbraces{amsthm,thmtools}.
+The option defines the commands in the left column below.
+The right column lists the corresponding \pkg{keytheorems} replacement that should be used in new documents.
+\begin{center}
+\begin{tabular}{rcl}
+\multicolumn{1}{c}{\pkg{thmtools} command} & & \multicolumn{1}{c}{\pkg{keytheorems} replacement} \\
+\toprule
+\docAuxCommand*{declaretheorem} & $\rightarrow$ & \refCom{newkeytheorem} \\
+\docAuxCommand*{declaretheoremstyle} & $\rightarrow$ & \refCom{newkeytheoremstyle} \\
+\docAuxCommand*{listoftheorems} & $\rightarrow$ & \refCom{listofkeytheorems} \\
+\docAuxCommand*{listtheoremname} & $\rightarrow$ & \refKey{title} key \\
+\begin{tabular}{r@{}}
+\docAuxCommand*{addtotheorempreheadhook}\\
+\docAuxCommand*{addtotheorempostheadhook}\\
+\docAuxCommand*{addtotheoremprefoothook}\\
+\docAuxCommand*{addtotheorempostfoothook}\\
+\end{tabular} & $\rightarrow$ & \refCom{addtotheoremhook} \\
+\docAuxEnvironment*{restatable} environment & $\rightarrow$ & \refKey{store} key \\
+\docAuxEnvironment*{restatable*} environment & $\rightarrow$ & \refKey[store*]{store} key
+\end{tabular}
+\end{center}
+Also defined are the \docAuxKey*{shaded} and \docAuxKey*{thmbox} keys, implemented internally with \pkg{tcolorbox} rather than the \pkg{shadethm} and \pkg{thmbox} packages, respectively.
+\end{docKey}
+
+\subsection{Other global options}
+
+\begin{docKey}{auto-translate}
+ {\colOpt{=true\textbar false}}
+ {default |true|, initially |true|}
+If |false|, \pkg{keytheorems} does not automatically translate the title text for \refCom{listofkeytheorems} and the note produced by the \refKey{continues} key.
+These texts can be manually customized with the \refKey{title} and \refKey{continues-code} keys, respectively.
+\end{docKey}
+
+\begin{docKey}{continues-code}
+ {=\meta{code with \textup{\texttt{\#1}}}}
+ {initially \cs{GetTranslation}\ttbraces{keythms\string_continues}\cs{pageref}\ttbraces{\#1}}
+The code used to typeset the note produced by the \refKey{continues} key.
+If English or an unknown language is used, defaults to \texttt{continuing from p.}\cs{,}\cs{pageref}\ttbraces{\#1}.
+Currently (likely inaccurate!) translations exist for French, German, Italian, Portuguese, and Spanish.
+\end{docKey}
+
+\begin{docKey}{qed-symbol}
+ {=\meta{symbol}}
+ {initially \cs{openbox}}
+Redefines \cs{qedsymbol} to be \meta{symbol}.
+\end{docKey}
+
+\begin{docKey}{restate-counters}
+ {=\marg{comma-list of counters}}
+ {initially \ttbraces{equation}}
+Additional counters whose values are preserved when a theorem is restated.
+This key does not reset the list, so you don't need to include |equation| in \meta{comma-list}.
+\end{docKey}
+
+\begin{docKey}{store-all}
+ {}
+ {initially unset}
+Tells \pkg{keytheorems} to grab the body of each theorem so it can later be printed with the \refKey{print-body} option of \refCom{listofkeytheorems}.
+Note that this means a theorem body \emph{cannot} contain verbatim material.
+\end{docKey}
+
+\begin{docKey}{store-sets-label}
+ {}
+ {initially unset}
+Defines the \refKey{store} key to also set \refKey{label}, i.e. it makes |store=|\meta{tag} equivalent to |store=|\meta{tag}|,label=|\meta{tag}. Similarly for \refKey[store*]{store}.
+\end{docKey}
+
+\section{Defining theorems}
+
+\begin{docCommand}{newkeytheorem}
+ {\marg{env name}\oarg{options}}
+Defines a theorem environment \meta{env name} which itself takes a few options (see \autoref{in-doc-keys}).
+You can also declare multiple theorems at once by replacing \meta{env name} with a comma-list of names, e.g. \cs{newkeytheorem}\ttbraces{theorem,lemma,proposition}\bracks{\meta{options}}.
+
+By default, the theorem's printed name is a title-cased \meta{env name}.
+This can be changed with the \refKey{thm/name} key.
+All \meta{options} are described in subsections \ref{thm-thmtools-keys} and \ref{thm-added-keys}.
+\end{docCommand}
+
+\begin{tcbwritetemp}
+\newkeytheorem{theorem}
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{theorem}
+Some text
+\end{theorem}
+\end{keythmscode}
+
+\subsection{Keys available to theorem environments} \label{in-doc-keys}
+
+As in \pkg{amsthm}, theorems can take an optional argument that contains a note or heading.
+
+\begin{keythmscode}[]
+\begin{theorem}[some heading]
+Some text
+\end{theorem}
+\end{keythmscode}
+
+Alternatively, the optional argument may contain any of the following keys.
+
+\begin{docKey}{note}
+ {=\meta{text}}
+ {initially unset}
+Alias \docAuxKey[][doc label=thmuse/name]{name}.
+This is the key-value equivalent of the optional argument described above.
+This syntax, however, allows the argument to contain other keys.
+
+\begin{keythmscode}[]
+\begin{theorem}[some heading]
+Some text
+\end{theorem}
+\begin{theorem}[note=another heading]
+Some more text
+\end{theorem}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{short-note}
+ {=\meta{text}}
+ {initially unset}
+Alias \docAuxKey{short-name}.
+This replaces the value of \refKey{note} when displayed in \refCom{listofkeytheorems}.
+\end{docKey}
+
+\begin{docKey}{label}
+ {=\meta{label name}}
+ {initially unset}
+This is the key-value equivalent of |\begin{theorem}| \cs{label}\marg{label name}.
+
+\begin{keythmscode}[]
+\begin{theorem}[label=foo]
+Some text
+\end{theorem}
+\ref{foo}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{continues}
+ {\sarg=\meta{label name}}
+ {initially unset}
+Pick up a theorem where you left off.
+The theorem number remains the same.
+The printed text can be customized with the \refKey{continues-code} option.
+The starred version also copies the theorem note, if it exists.
+
+\begin{keythmscode}[]
+\begin{theorem}[continues=foo]
+\dots and some more text.
+\end{theorem}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{store}
+ {\sarg=\meta{tag}}
+ {initially unset}
+Alias \docAuxKey{restate}\sarg.
+Stores the the theorem to be restated at any point in the document with \refCom{getkeytheorem}.
+With the starred version, counters and labels are taken from the copy called with \cs{getkeytheorem}, so in this case can only be restated once.
+This allows you, for example, to write all theorems and proofs in the appendix and call \cs{getkeytheorem} at the appropriate time mid-document.
+For the numbering to be correct, the unstarred key will need at most two runs and the starred key at most three runs.
+
+\begin{keythmscode}[]
+\begin{theorem}[store=blub]
+A theorem worth restating.
+\end{theorem}
+More brilliant mathematics.
+\getkeytheorem{blub}
+\end{keythmscode}
+
+A theorem given this key \emph{cannot} contain verbatim material or other unexpected catcodes, such as a \pkg{tikz-cd} diagram.
+The latter issue can be averted with the \texttt{ampersand-replacement} key.
+
+\begin{tcbwritetemp}
+\usepackage{tikz}
+\usetikzlibrary{cd}
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{lemma}[store=diagram]
+Some commutative diagram:
+\[\begin{tikzcd}[ampersand replacement=\&]
+X\times_S Y \ar[r] \ar[d] \& X \ar[d] \\
+Y \ar[r] \& S
+\end{tikzcd}\]
+\end{lemma}
+\dots
+\getkeytheorem{diagram}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{restate-keys}
+ {=\marg{list of keys}}
+ {initially unset}
+Allows passing different keys to the restated theorem.
+At the moment this is only useful with the \refKey{note} key.
+
+\begin{keythmscode}[]
+\begin{theorem}[
+ store=rktest,
+ note=ORIGINAL,
+ restate-keys={note=RESTATED}]
+Wow, yet another theorem.
+\end{theorem}
+\getkeytheorem{rktest}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{listhack}
+ {=\docValue*{true}\textbar\docValue*{false}}
+ {initially |false|}
+Meant only to be used with the \refKey{break} style key for a theorem starting with a list.
+Compare:
+
+\begin{tcbwritetemp}
+\newkeytheoremstyle{breaksty}{break}
+\newkeytheorem{observation}[style=breaksty]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{observation}
+\begin{enumerate}
+\item First item
+\end{enumerate}
+\end{observation}
+
+\begin{observation}[listhack=true]
+\begin{enumerate}
+\item First item
+\end{enumerate}
+\end{observation}
+\end{keythmscode}
+
+Note that the value |true| must be explicitly set so that |listhack| is not interpreted as the note text.
+\end{docKey}
+
+\begin{docKey}[][doc label=thm/seq]{seq}
+ {=\meta{name}}
+ {initially unset}
+Adds the theorem to a custom sequence \meta{name} that can then be listed with \cs{listofkeytheorems}\bracks{seq=\meta{name}}.
+See \refKey{listof/seq} for more details.
+\end{docKey}
+
+\subsection{Keys also defined in \pkg{thmtools}} \label{thm-thmtools-keys}
+
+These are the \oarg{options} available to \cs{newkeytheorem}.
+Except for \refKey{thm/name} and \refKey{style}, each key below can also be used in \refCom{newkeytheoremstyle}.
+For more description, see the \href{https://ctan.org/pkg/thmtools}{\pkg{thmtools}} package.
+
+\begin{docKey}[][doc label=thm/name]{name}
+ {=\meta{display name}}
+ {initially title-cased \meta{env name}}
+Aliases \docAuxKey{heading} and \docAuxKey{title}.
+
+\begin{tcbwritetemp}
+\newkeytheorem{mythm}[name=Some Name]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{mythm}
+Some text
+\end{mythm}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{numbered}
+ {=\docValue*{true}\textbar\docValue*{false}\textbar \docValue{unless-unique}}
+ {default |true|, initially |true|}
+For compatibility with \pkg{thmtools}, also accepts the values \docValue*{yes}, \docValue*{no}, and \docValue*{unless unique}.
+
+\begin{tcbwritetemp}
+\newkeytheorem{theorem*}[
+ name=Theorem, numbered=false
+ ]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{theorem*}
+An unnumbered theorem.
+\end{theorem*}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{parent}
+ {=\meta{counter}}
+ {initially unset}
+Aliases \docAuxKey{numberwithin} and \docAuxKey{within}.
+
+\begin{tcbwritetemp}
+\newkeytheorem{conjecture}[parent=section]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{conjecture}
+The first number is the section.
+\end{conjecture}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{sibling}{=\meta{counter}}{initially unset}
+Aliases \docAuxKey{numberlike} and \docAuxKey{sharenumber}.
+
+\begin{tcbwritetemp}
+\newkeytheorem{lemma}[sibling=theorem]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{lemma}
+This shares its counter with
+\texttt{theorem}.
+\end{lemma}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{style}
+ {=\meta{style name}}
+ {initially unset}
+Accepts any \meta{style name} defined by \refCom{newkeytheoremstyle}, as well as any of the predefined \pkg{amsthm} styles: \docValue{plain}, \docValue{definition}, and \docValue{remark}.
+
+\begin{tcbwritetemp}
+\newkeytheorem{remark}[style=remark]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{remark}
+Some text
+\end{remark}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKeys}[
+ doc parameter = {=\meta{code}},
+ doc description = initially unset,
+ ]
+ {
+ { doc name = preheadhook },
+ { doc name = postheadhook },
+ { doc name = prefoothook },
+ { doc name = postfoothook },
+ }
+Details in \autoref{keythms-hooks}.
+
+\begin{tcbwritetemp}
+\newkeytheorem{test}[
+ preheadhook=PREHEAD,
+ postheadhook=POSTHEAD,
+ prefoothook=PREFOOT,
+ postfoothook=POSTFOOT
+]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{test}
+Some text
+\end{test}
+\end{keythmscode}
+
+\end{docKeys}
+
+\begin{docKey}{qed}
+ {\colOpt{=\meta{symbol}}}
+ {default \cs{openbox}, initially unset}
+Adds \colOpt{\meta{symbol}} to the end of the theorem body.
+If no value is given, the symbol \openbox\ is used.
+
+\begin{tcbwritetemp}
+\newkeytheorem{example}[qed]
+\newkeytheorem{solution}[qed=$\clubsuit$]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{example}
+Some text
+\end{example}
+\begin{solution}
+Some more text
+\end{solution}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{refname}
+ {=\meta{ref name} \textrm{or} \brackets{\meta{singular name},\meta{plural name}}}
+ {initially \meta{display name}}
+If a single string, then the name used by \pkg{hyperref}'s \cs{autoref} and \pkg{cleveref}'s \cs{cref}.
+If two strings separated by a comma, then the second string is the plural form used by \cs{cref}.
+\end{docKey}
+
+\begin{docKey}{Refname}
+ {=\meta{ref name} \textrm{or} \brackets{\meta{singular name},\meta{plural name}}}
+ {initially \meta{display name}}
+Same as \refKey{refname} but for \docAuxCommand{Autoref} and \cs{Cref}.
+Note that \cs{Autoref} is defined by \pkg{keytheorems}, but requires \pkg{hyperref} to work.
+As with \cs{autoref}, there is also a starred version \docAuxCommand{Autoref*} that suppresses the hyperlink.
+
+\begin{tcbwritetemp}
+\newkeytheorem{prop}[
+ name=Proposition,
+ refname={proposition,propositions},
+ Refname={Proposition,Propositions}
+ ]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{prop}[label=abc]
+Some text
+\end{prop}
+\begin{prop}[label=def]
+Some more text
+\end{prop}
+\begin{theorem}
+Consider \cref{abc,def}.
+\Autoref{abc} \dots
+\end{theorem}
+\end{keythmscode}
+
+\end{docKey}
+
+\subsection{Keys added by \pkg{keytheorems}} \label{thm-added-keys}
+
+\begin{docKey}{tcolorbox}
+ {\colOpt{=\marg{tcolorbox options}}}
+ {initially unset}
+This key specifies that the theorem be placed inside a tcolorbox environment with \colOpt{\meta{options}}.
+The theorem head is typeset as a tcolorbox title; to avoid this see \refKey{tcolorbox-no-titlebar}.
+
+\begin{tcbwritetemp}
+\tcbset{
+ defstyle/.style={
+ arc=0mm,
+ colback=blue!5!white,
+ colframe=blue!75!black
+ },
+ }
+\newkeytheorem{corollary}[tcolorbox]
+\newkeytheorem{definition}[
+ style=definition,
+ tcolorbox={defstyle}
+ ]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{corollary}
+Some text
+\end{corollary}
+\begin{definition}[A nice definition]
+Some more text
+\end{definition}
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{tcolorbox-no-titlebar}
+ {\colOpt{=\marg{tcolorbox options}}}
+ {initially unset}
+Same usage as \refKey{tcolorbox} but the theorem head is typeset as usual, not as a tcolorbox title.
+
+\begin{tcbwritetemp}
+\newkeytheorem{boxcor}[
+ tcolorbox-no-titlebar={
+ colback=red!10
+ },
+ name=Corollary,sibling=corollary
+ ]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{boxcor}
+Some text
+\end{boxcor}
+\end{keythmscode}
+
+\end{docKey}
+
+\pkg{tcolorbox} offers its own comprehensive \texttt{theorems} library. If all of your theorems are to be tcolorboxes, I highly recommend using it instead of this package! However, if only some of your theorems will use a tcolorbox, you may want to replicate the styles of \cs{NewTcbTheorem}. Here is an example that emulates \pkg{tcolorbox}'s \texttt{standard} theorem style.
+
+\begin{tcbwritetemp}
+\tcbset{
+ thmstyle/.style={
+ colback=green!5,
+ colframe=green!35!black},
+ }
+\newkeytheoremstyle{tcb-standard}{
+ tcolorbox=thmstyle,
+ headpunct={},
+ notebraces={}{},
+ noteseparator={: },
+ notefont=\bfseries,
+ bodyfont=\normalfont,
+ }
+\newkeytheorem{mytheo}[
+ name=My Theorem,
+ style=tcb-standard]
+\end{tcbwritetemp}
+
+\begin{keythmscode}[withpreamble]
+\begin{mytheo}[This is my title]
+Some theorem text
+\end{mytheo}
+\end{keythmscode}
+
+\section{Theorem styles}
+
+\begin{docCommand}{newkeytheoremstyle}
+ {\marg{name}\marg{options}}
+This is \pkg{keytheorems}' version of \pkg{thmtools}' \cs{declaretheoremstyle}\bracks{\meta{options}}\marg{name}.
+Since it makes little sense to define a style with no keys, we've made the \meta{options} argument mandatory.
+Note that unlike \pkg{amsthm}'s \cs{newtheoremstyle}, this command will error if a style has already been defined.
+To overwrite an existing style, there is the analogous \docAuxCommand{renewkeytheoremstyle}.
+For completeness, there is also \docAuxCommand{declarekeytheoremstyle} and \docAuxCommand{providekeytheoremstyle}.
+
+The defined style can be used with either the \refKey{style} key or the traditional \cs{theoremstyle}.
+\end{docCommand}
+
+\begin{notebox}
+For the AMS classes \cls{amsart}, \cls{amsbook}, and \cls{amsproc}, as well as the \cls{amsart}-based \cls{acmart}, the initial key values are slightly different than what's below in order to match those class's defaults.
+\end{notebox}
+
+\subsection{Keys also defined in \pkg{thmtools}}
+
+The following keys have the same meaning and syntax as the corresponding \pkg{thmtools} keys.
+In addition to the list below, most of the keys available to \refCom{newkeytheorem} can be used in \cs{newkeytheoremstyle}.
+
+\begin{docKey}{bodyfont}
+ {=\meta{font declarations}}
+ {initially \cs{itshape}}
+
+\end{docKey}
+
+\begin{docKey}{break}
+ {}
+ {initially unset}
+Do not use this with the \refKey{postheadspace} key.
+\end{docKey}
+
+\begin{docKey}{headfont}
+ {=\meta{font declarations}}
+ {initially \cs{bfseries}}
+
+\end{docKey}
+
+\begin{docKey}{headformat}
+ {=\docValue{margin}\textbar\docValue{swapnumber}\textbar\meta{code using \cs{NAME}, \cs{NUMBER}, and \cs{NOTE}\,}}
+ {}
+Alias \docAuxKey{headstyle}. Within \meta{code}, the commands \docAuxCommand{NAME}, \docAuxCommand{NUMBER}, and \docAuxCommand{NOTE} correspond to the formatted parts of the theorem head.
+\end{docKey}
+
+\begin{notebox}
+In \refKey{headformat}, you may also use the traditional \pkg{amsthm} commands \cs{thmname}, \cs{thmnumber}, and \cs{thmnote}, where |#1| is the theorem name, |#2| the number, and |#3| the note. \pkg{keytheorems} expands the head spec inside |\text_expand:n| so for these commands to work properly, the package adds them to |\l_text_expand_exclude_tl|. Note also that if you use these lower-level commands, the style keys \refKey{notebraces}, \refKey{notefont}, \refKey{noteseparator}, and \refKey{numberfont} will have no effect (of course, you can manually control these things inside the commands' arguments).
+\end{notebox}
+
+\begin{docKey}{headindent}
+ {=\meta{length}}
+ {initially |0pt|}
+
+\end{docKey}
+
+\begin{docKey}{headpunct}
+ {=\meta{code}}
+ {initially \ttbraces{.}}
+
+\end{docKey}
+
+\begin{docKey}{notebraces}
+ {=\marg{left brace}\marg{right brace}}
+ {initially \ttbraces{(}\ttbraces{)}}
+
+\end{docKey}
+
+\begin{docKey}{notefont}
+ {=\meta{font declarations}}
+ {initially \cs{fontseries}\cs{mddefault}\cs{upshape}}
+
+\end{docKey}
+
+\begin{docKey}{postheadspace}
+ {=\meta{length}}
+ {initially |5pt plus 1pt minus 1pt|}
+Do not use this with the \refKey{break} key.
+\end{docKey}
+
+\begin{docKey}{spaceabove}
+ {=\meta{length}}
+ {initially \cs{topsep}}
+
+\end{docKey}
+
+\begin{docKey}{spacebelow}
+ {=\meta{length}}
+ {initially \cs{topsep}}
+
+\end{docKey}
+
+\subsection{Keys added by \pkg{keytheorems}}
+
+\begin{docKey}{inherit-style}
+ {=\meta{style name}}
+ {initially unset}
+Inherit the keys of any style declared with \refCom{newkeytheoremstyle}.
+Additionally, the three styles predefined by \pkg{amsthm} are possible values: \docValue{plain}, \docValue{definition}, and \docValue{remark}.
+\end{docKey}
+
+\begin{docKey}{noteseparator}
+ {=\meta{code}}
+ {initially \textvisiblespace}
+The code inserted before the note, and printed only if there is a note. This is executed \emph{before} the font commands set by \refKey{notefont} take effect.
+\end{docKey}
+
+\begin{docKey}{numberfont}
+ {=\meta{font declarations}}
+ {initially |\upshape|}
+For almost all theorem styles, it is recommended that you \emph{do not} change this setting.
+\end{docKey}
+
+\section{Restating theorems}
+
+When a theorem is given the \refKey{store} key, the contents of the theorem are saved and written to a |.thlist| file.
+At the start of the next run, this file is input at the beginning of the document and allows you to retrieve the stored theorems at any point, before or after the original theorem.
+
+\begin{docCommand}{getkeytheorem}
+ {\oarg{property}\marg{tag}}
+Retrieves the theorem given the key |store=|\meta{tag} or |store*=|\meta{tag}.
+An optional \meta{property} can be given to retrieve only the corresponding part of the theorem.
+Currently only the property |body| is implemented, which retrieves the (unformatted) body of the theorem.
+
+\begin{keythmscode}[]
+\getkeytheorem{mytag}
+
+\begin{example}[store=mytag]
+Fascinating example.
+\end{example}
+
+\getkeytheorem[body]{mytag}
+\end{keythmscode}
+
+\end{docCommand}
+
+\begin{docCommands}
+ {
+ {
+ doc name = IfRestatingTF,
+ doc parameter=\marg{true code}\marg{false code}
+ },
+ {
+ doc name = IfRestatingT,
+ doc parameter=\marg{true code}
+ },
+ {
+ doc name = IfRestatingF,
+ doc parameter=\marg{false code}
+ }
+ }
+Executes \meta{true code} if being retrieved with \refCom{getkeytheorem} and \meta{false code} if in the original theorem. This is reversed if \texttt{store*} is used.
+
+\begin{keythmscode}[]
+\begin{example}[store=hmm]
+I am the
+\IfRestatingTF{restated}{original}
+example!
+\end{example}
+
+\getkeytheorem{hmm}
+\end{keythmscode}
+
+\end{docCommands}
+
+\section{Listing theorems}
+
+\begin{docCommand}{listofkeytheorems}
+ {\oarg{options}}
+Similar to \cs{listoffigures} or \cs{listoftables} but for theorems.
+For \cls{memoir} and the AMS classes, \pkg{keytheorems} tries to copy the formatting of these commands as defined by the class.
+For other classes, manual adjustments to \refKey{numwidth} and \refKey{indent} may be necessary.
+\end{docCommand}
+
+\begin{docCommand}{keytheoremlistset}
+ {\marg{options}}
+
+\end{docCommand}
+
+\begin{keythmscode}[]
+\listofkeytheorems
+\end{keythmscode}
+
+\subsection{Keys inherited from \pkg{thmtools}}
+
+\begin{docKey}{ignore}
+ {=\marg{comma-list of env names}}
+ {initially unset}
+
+\end{docKey}
+
+\begin{docKey}{ignoreall}
+ {}
+ {initially unset}
+
+\begin{keythmscode}[]
+\listofkeytheorems[ignoreall,show=theorem]
+\listofkeytheorems[
+ ignoreall, show=conjecture,
+ title=List of Conjectures
+ ]
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{numwidth}
+ {=\meta{length}}
+ {initially |2.3em|}
+For the AMS classes, this is initially |1.5pc|.
+\end{docKey}
+
+\begin{docKey}{onlynamed}
+ {\colOpt{=\marg{comma-list of env names}}}
+ {initially unset}
+
+\end{docKey}
+
+\begin{docKey}{show}
+ {=\marg{comma-list of env names}}
+ {initially all theorems}
+
+\end{docKey}
+
+\begin{docKey}{showall}
+ {}
+ {initially set}
+
+\end{docKey}
+
+\begin{docKey}{swapnumber}
+ {\colOpt{=true\textbar false}}
+ {initially |false|}
+
+\end{docKey}
+
+\begin{docKey}{title}
+ {=\meta{text}}
+ {initially \cs{GetTranslation}\ttbraces{keythms\string_listof\string_title}}
+Defaults to ``List of Theorems'' if English or an unknown language is used.
+Currently French, German, Italian, Portuguese, and Spanish have (likely inaccurate!) translations.
+A translation can be added with a GitHub pull request or manually with \cs{DeclareTranslation}\marg{lang}\ttbraces{keythms\string_listof\string_title}\marg{text}.
+\end{docKey}
+
+\subsection{Keys added by \pkg{keytheorems}}
+
+\begin{docKey}{format-code}
+ {=\meta{code with \textup{\texttt{\#1}}, \textup{\texttt{\#2}}, and \textup{\texttt{\#3}}}}
+ {initially \cs{numberline}\texttt{\{\#2\}\#1\#3}}
+Allows full control over the format for list entries. The theorem name is |#1|, the number is |#2|, and the (formatted) note is |#3|. The note formatting is still controlled by \refKey{note-code}.
+\end{docKey}
+
+\begin{docKey}{indent}
+ {=\meta{length}}
+ {initially |1.5em|}
+Sets the left indent of items in the list of theorems.
+For \cls{memoir} and the AMS classes, the indent is initially |0pt|.
+It is not recommended to change this unless your class has different defaults not already covered.
+\end{docKey}
+
+\begin{docKey}{no-chapter-skip}
+ {\colOpt{=true\textbar false}}
+ {initially |false|}
+By default a small vertical space is inserted between each chapter's chunk of theorems.
+Setting this key to |true| removes this space.
+\end{docKey}
+
+\begin{docKey}{chapter-skip-length}
+ {=\meta{dimension}}
+ {initially |10pt|}
+Controls the amount of space inserted between chunks.
+\end{docKey}
+
+\begin{docKey}{no-continues}
+ {\colOpt{=true\textbar false}}
+ {initially |false|}
+Suppresses the printing of theorems given the \refKey{continues} key in the list of theorems.
+\end{docKey}
+
+\begin{docKey}{no-title}
+ {\colOpt{=true\textbar false}}
+ {initially |false|}
+Suppresses the title of the list of theorems.
+Useful for custom ordering of the list.
+
+\begin{keythmscode}[]
+\keytheoremlistset{ignoreall}
+\listofkeytheorems[show=example]
+\listofkeytheorems[show=solution,no-title]
+\end{keythmscode}
+
+\end{docKey}
+
+\begin{docKey}{no-toc}
+ {\colOpt{=true\textbar false}}
+ {initially false}
+With the standard classes, lists of figures/tables are not added to the table of contents by default. The same is true for \cs{listofkeytheorems}, and with those classes this key does nothing. However some classes, notably \cls{memoir} and the AMS classes, do add lists to the table of contents. With these classes, this key suppresses the addition of the list of theorems to the table of contents.
+\end{docKey}
+
+\begin{docKey}{note-code}
+ {=\meta{code with \textup{\texttt{\#1}}}}
+ {initially \ttbraces{ (\#1)}}
+Formats the optional note in the list of theorems.
+\end{docKey}
+
+\begin{docKey}{onlynumbered}
+ {\colOpt{=\marg{comma-list of env names}}}
+ {initially unset}
+Similar to \refKey{onlynamed}, but lists only those theorems which are numbered.
+This is useful if you'd like to exclude things like unnumbered definitions and remarks from the list of theorems.
+\end{docKey}
+
+\begin{docKey}{print-body}
+ {}
+ {initially unset}
+Instead of listing the theorem headings, the theorems are restated with their body text.
+Not very useful without the \refKey{store-all} load-time option.
+\end{docKey}
+
+\begin{docKey}[][doc label=listof/seq]{seq}
+ {=\meta{name}}
+ {initially unset}
+Used to list only the theorems added to the custom sequence \meta{name} with the \refKey{thm/seq} theorem key.
+This is the only way to fully customize which theorems appear in the list of theorems.
+Unlike with \refKey{show}, you do not need to use \refKey{ignoreall} to prevent theorems not in \meta{name} from being printed.
+\end{docKey}
+
+\begin{docKey}{title-code}
+ {=\meta{code with \textup{\texttt{\#1}}}}
+ {initially \cs{section*}\ttbraces{\#1}}
+If \cs{chapter} is defined, then initially this is instead \cs{chapter*}\ttbraces{\#1}. This key has no effect if used with an AMS class because these classes hard-code the section heading into \cs{@starttoc}.
+\end{docKey}
+
+\subsection{Adding code to list of theorems}
+
+There are analogous commands to \cs{addcontentsline} and \cs{addtocontents} for adding entries or arbitrary code to the list of theorems.
+
+\begin{notebox}
+You \emph{must} use these commands rather than the aforementioned because the |.thlist| file is also used to define restated theorems and cannot contain unexpected code.
+\end{notebox}
+
+\begin{docCommand}{addtheoremcontentsline}
+ {\marg{level}\marg{text}}
+
+\end{docCommand}
+
+\begin{docCommand}{addtotheoremcontents}
+ {\marg{code}}
+
+\end{docCommand}
+
+\section{Theorem hooks} \label{keythms-hooks}
+
+\begin{docCommand}{addtotheoremhook}
+ {\oarg{env name}\marg{hook name}\marg{code}}
+\meta{hook name} can be \hook{prehead}, \hook{posthead}, \hook{prefoot}, \hook{postfoot}, or \hook{restated}.
+If no \meta{env name} is given, the \meta{code} is added to the ``generic'' hook, i.e. applied to all theorems.
+As in \pkg{thmtools}, the order of hooks is as follows:
+
+\begin{center}
+ \tcbset{
+ nobeforeafter,
+ tikznode,
+ tcbox width=forced center,
+ width=2cm,
+ tcbox raise=-0.4cm,
+ size=fbox,
+ after=\;$\rightarrow$
+ }
+ \tcbox{\meta{env name}\\ \hook{prehead}}
+ \tcbox{generic\\ \hook{prehead}}
+ \tcbox[width=3.5cm,tcbox raise=-0.2cm]{\cs{begin}\brackets{\meta{env name}}}
+ \tcbox{\meta{env name}\\ \hook{posthead}}
+ \tcbox[after={}]{generic\\ \hook{posthead}}
+ \\[2ex]
+ \tcbset{before=$\rightarrow$\;}
+ \tcbox[width=2.5cm,tcbox raise=-0.2cm]{\meta{theorem body}}
+ \\[2ex]
+ \tcbset{after={}}
+ \tcbox[before={}]{generic\\ \hook{prefoot}}
+ \tcbox{\meta{env name}\\ \hook{prefoot}}
+ \tcbox[width=3.5cm,tcbox raise=-0.2cm]{\cs{end}\brackets{\meta{env name}}}
+ \tcbox{generic\\ \hook{postfoot}}
+ \tcbox{\meta{env name}\\ \hook{postfoot}}
+\end{center}
+The \hook{restated} hook is applied at the start of theorems retrieved with \cs{getkeytheorem}, before the \hook{prehead} hook.
+This can be useful for disabling commands such as \cs{footnote} in the restated theorems, e.g.
+\begin{dispListing}
+\addtotheoremhook{restated}{\renewcommand\footnote[2][]{}}
+\end{dispListing}
+By default, \pkg{keytheorems} disables the \cs{label} and \cs{RecordProperties} commands in restated theorems.
+
+In \pkg{thmtools}, the \hook{prefoot} and \hook{postfoot} hooks always prepend code, i.e. the code
+\begin{dispListing}
+\addtotheorempostfoothook{A}
+\addtotheorempostfoothook{B}
+\end{dispListing}
+results in |BA| after the theorem.
+With \pkg{keytheorems}, code is added in the order declared, meaning
+\begin{dispListing}
+\addtotheoremhook{postfoot}{A}
+\addtotheoremhook{postfoot}{B}
+\end{dispListing}
+results in |AB| after the theorem.
+This is the behavior of the \LaTeX{} kernel hooks that \pkg{keytheorems} uses under the hood.
+
+Right now, code added using the hook keys \refKey{preheadhook}, etc. is outermost, meaning executed first in \hook{prehead} and \hook{posthead} and last in \hook{prefoot} and \hook{postfoot}.
+This may change if I think of good reasons to do so\dots
+\end{docCommand}
+
+\section{Miscellaneous notes for the ambitious}
+
+Inside theorem environments, as well as in all of the theorem hooks, you have access to the theorem's environment and counter name in the token list variable |\l_keythms_thmuse_envname_tl|.
+
+\section{Further examples}
+
+More examples will be added soon -- rather, eventually\dots{}
+For now, you can find a \pkg{keytheorems} adaptation of \pkg{amsthm}'s classic file \href{https://mirrors.ctan.org/macros/latex/required/amscls/doc/thmtest.tex}{\texttt{thmtest.tex}} in the Github \texttt{tests} folder: \href{https://github.com/mbertucci47/keytheorems/blob/main/tests/keytheorems-amsthmtest.tex}{\texttt{keytheorems-amsthmtest.tex}}.
+
+%\section{Implementation}
+%\inputminted[linenos,style=bw]{latex}{../keytheorems.sty}
+
+\printindex
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsart-support.tex b/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsart-support.tex
new file mode 100644
index 0000000000..da648a6205
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsart-support.tex
@@ -0,0 +1,49 @@
+% Maintained by Matthew Bertucci, 2024-present
+% Please report all issues and feature requests at https://github.com/mbertucci47/keytheorems
+% This work is licensed under the LPPL version 1.3c or later: https://www.latex-project.org/lppl.txt
+\ProvidesExplFile{keythms-amsart-support}{2024-09-30}{0.1.5}
+ {keytheorems~support~for~the~amsart~class}
+
+\__keythms_support_AMSshared_code:
+
+\IfClassLoadedTF { acmart }
+ { % acmart loads amsart
+ \keytheoremset{overload} % since acmart predefines several theorems
+ \prop_gput_from_keyval:Nn \g__keythms_thmstyle_defaultkeys_prop
+ {
+ bodyfont = \@acmplainbodyfont,
+ headfont = \@acmplainheadfont,
+ headindent = \@acmplainindent,
+ notefont = \@acmplainnotefont,
+ postheadspace = .5em,
+ spaceabove = .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ spacebelow = .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ }
+ \keys_define:nn { keytheorems/thmstyle }
+ {
+ inherit-style / acmplain .meta:n = {},
+ inherit-style / acmdefinition .meta:n =
+ {
+ bodyfont = \@acmdefinitionbodyfont,
+ headindent = \@acmdefinitionindent,
+ headfont = \@acmdefinitionheadfont,
+ notefont = \@acmdefinitionnotefont,
+ },
+ }
+ }
+ {
+ \prop_gput_from_keyval:Nn \g__keythms_thmstyle_defaultkeys_prop
+ {
+ spaceabove = .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ spacebelow = .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ }
+ }
+
+\keys_define:nn { keytheorems/thmstyle }
+ {
+ inherit-style / remark .meta:n =
+ {
+ bodyfont = \normalfont,
+ headfont = \itshape,
+ }
+ } \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsbook-support.tex b/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsbook-support.tex
new file mode 100644
index 0000000000..8937f2326e
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsbook-support.tex
@@ -0,0 +1,23 @@
+% Maintained by Matthew Bertucci, 2024-present
+% Please report all issues and feature requests at https://github.com/mbertucci47/keytheorems
+% This work is licensed under the LPPL version 1.3c or later: https://www.latex-project.org/lppl.txt
+\ProvidesExplFile{keythms-amsbook-support}{2024-09-30}{0.1.5}
+ {keytheorems~support~for~the~amsbook~class}
+
+\__keythms_support_AMSshared_code:
+
+\prop_gput_from_keyval:Nn \g__keythms_thmstyle_defaultkeys_prop
+ {
+ headfont = \scshape,
+ headindent = \parindent,
+ spaceabove = .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ spacebelow = .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ }
+
+\keys_define:nn { keytheorems/thmstyle }
+ {
+ inherit-style / remark .meta:n =
+ {
+ bodyfont = \normalfont,
+ },
+ } \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsproc-support.tex b/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsproc-support.tex
new file mode 100644
index 0000000000..07b258282b
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/tex/class-support/keythms-amsproc-support.tex
@@ -0,0 +1,23 @@
+% Maintained by Matthew Bertucci, 2024-present
+% Please report all issues and feature requests at https://github.com/mbertucci47/keytheorems
+% This work is licensed under the LPPL version 1.3c or later: https://www.latex-project.org/lppl.txt
+\ProvidesExplFile{keythms-amsproc-support}{2024-09-30}{0.1.5}
+ {keytheorems~support~for~the~amsproc~class}
+
+\__keythms_support_AMSshared_code:
+
+\prop_gput_from_keyval:Nn \g__keythms_thmstyle_defaultkeys_prop
+ {
+ headfont = \scshape,
+ headindent = \parindent,
+ spaceabove = .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ spacebelow = .5\baselineskip plus .2\baselineskip minus .2\baselineskip,
+ }
+
+\keys_define:nn { keytheorems/thmstyle }
+ {
+ inherit-style / remark .meta:n =
+ {
+ bodyfont = \normalfont,
+ },
+ } \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/tex/class-support/keythms-memoir-support.tex b/macros/latex/contrib/keytheorems/tex/class-support/keythms-memoir-support.tex
new file mode 100644
index 0000000000..9b84a3ba40
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/tex/class-support/keythms-memoir-support.tex
@@ -0,0 +1,49 @@
+% Maintained by Matthew Bertucci, 2024-present
+% Please report all issues and feature requests at https://github.com/mbertucci47/keytheorems
+% This work is licensed under the LPPL version 1.3c or later: https://www.latex-project.org/lppl.txt
+\ProvidesExplFile{keythms-memoir-support}{2024-09-30}{0.1.5}
+ {keytheorems~support~for~the~memoir~class}
+
+\bool_new:N \l__keythms_support_titlecode_bool
+
+\keys_define:nn { keytheorems/listof }
+ {
+ indent .initial:n = 0pt,
+ title-code .code:n =
+ {
+ \bool_set_true:N \l__keythms_support_titlecode_bool
+ \cs_set:Npn \__keythms_listof_titlecmd:n ##1 { #1 }
+ },
+ }
+
+% use memoir's list function; not using \newlistentry, though
+\newlistof{ keythms_support_memoir_listof:w }{ thlist }
+ { \l__keythms_listof_title_tl }
+
+\RenewDocumentCommand \listofkeytheorems { O{} }
+ {
+ \bool_gset_true:N \g__keythms_listof_writefile_bool
+ \group_begin:
+ \keys_set:nn { keytheorems/listof } { #1 }
+ \cs_set_protected:Npn \KeyThmsContentsLine ##1 { ##1 }
+ \bool_if:NF \l__keythms_listof_nochapskip_bool
+ {
+ \cs_set_eq:NN \KeyThmsAddvspace \addvspace
+ }
+ \bool_if:NTF \l__keythms_listof_notitle_bool
+ {
+ \cs_set:Npn \@thlistmaketitle {}
+ \keythms_support_memoir_listof:w*
+ }
+ {
+ \bool_if:NT \l__keythms_support_titlecode_bool
+ {
+ \cs_set:Npn \@thlistmaketitle
+ { \__keythms_listof_titlecmd:n { \l__keythms_listof_title_tl } }
+ }
+ \bool_if:NTF \l__keythms_listof_notoc_bool
+ { \keythms_support_memoir_listof:w* }
+ { \keythms_support_memoir_listof:w }
+ }
+ \group_end:
+ } \ No newline at end of file
diff --git a/macros/latex/contrib/keytheorems/tex/keytheorems.sty b/macros/latex/contrib/keytheorems/tex/keytheorems.sty
new file mode 100644
index 0000000000..7059d951a0
--- /dev/null
+++ b/macros/latex/contrib/keytheorems/tex/keytheorems.sty
@@ -0,0 +1,2395 @@
+% Maintained by Matthew Bertucci, 2024-present
+% Please report all issues and feature requests at https://github.com/mbertucci47/keytheorems
+% This work is licensed under the LPPL version 1.3c or later: https://www.latex-project.org/lppl.txt
+\NeedsTeXFormat{LaTeX2e}[2023-06-01]
+\ProvidesExplPackage{keytheorems}{2024-09-30}{0.1.5}{l3keys interface to amsthm}
+
+\IfFormatAtLeastTF { 2024-06-01 } { }
+ {
+ \RequirePackage{nameref} % to avoid ltproperties in code below
+ \cs_generate_variant:Nn \cs_set:Npn { Npe }
+ \cs_generate_variant:Nn \iow_shipout:Nn { Ne }
+ \cs_generate_variant:Nn \keys_set:nn { ne }
+ \cs_generate_variant:Nn \msg_warning:nnn { nne }
+ \cs_generate_variant:Nn \tl_put_right:Nn { Ne }
+ \ProvideDocumentCommand \IfPackageLoadedT { m m }
+ { \IfPackageLoadedTF{#1}{#2}{ } }
+ \ProvideDocumentCommand \IfPackageLoadedF { m m }
+ { \IfPackageLoadedTF{#1}{ }{#2} }
+ \ProvideDocumentCommand \IfClassLoadedT { m m }
+ { \IfClassLoadedTF{#1}{#2}{ } }
+ }
+\RequirePackage{aliascnt}
+\RequirePackage{amsthm} % ams classes have way of ignoring this
+\RequirePackage{refcount}
+\RequirePackage{translations}
+
+%%%%%%%%%%%%%%%%%%%%%%
+%%% Error Messages %%%
+%%%%%%%%%%%%%%%%%%%%%%
+
+\msg_new:nnn { keytheorems } { thmtools-before }
+ {
+ keytheorems~is~not~compatible~with~thmtools.~
+ Try~replacing~\protect\usepackage{thmtools}~with~
+ \protect\usepackage[thmtools-compat]{keytheorems}.
+ }
+\msg_new:nnn { keytheorems } { thmtools-after }
+ {
+ keytheorems~is~not~compatible~with~thmtools.~
+ This~will~not~work~as~you~think!~
+ Try~replacing~\protect\usepackage{thmtools}~with~
+ \protect\usepackage[thmtools-compat]{keytheorems}.
+ }
+\msg_new:nnn { keytheorems } { no-stored-theorem }
+ {
+ No~stored~theorem~'#1'~found!~
+ Try~compiling~again.~If~that~doesn't~work,~
+ check~the~spelling~of~'#1'.
+ }
+\msg_new:nnn { keytheorems } { no-prop-for-stored-theorem }
+ {
+ No~property~'#1'~found~for~stored~theorem~'#2'.
+ }
+\msg_new:nnn { keytheorems } { store-reversed-not-got }
+ {
+ 'store*=#1'~only~makes~sense~if~you've~called~\protect\getkeytheorem{#1}.~
+ Check~that~\protect\getkeytheorem{#1}~is~called~and~compile~again.
+ }
+\msg_new:nnn { keytheorems } { restate-body-never-got }
+ {
+ With~'store*=#1',~\protect\getkeytheorem[body]{#1}~only~makes~sense~if~
+ \protect\getkeytheorem{#1}~has~been~called.~
+ Check~that~\protect\getkeytheorem{#1}~is~called~and~compile~again.
+ }
+\msg_new:nnn { keytheorems } { store-reversed-called-twice }
+ {
+ With~'store*=#1',~\protect\getkeytheorem{#1}~can~be~called~only~once.
+ }
+\msg_new:nnn { keytheorems } { undefined-thm-hook }
+ {
+ No~theorem~hook~'#1'.~Check~the~spelling.~
+ Should~be~one~of~'prehead',~'posthead',~'prefoot',~'postfoot',~or'restated'.
+ }
+\msg_new:nnn { keytheorems } { hyperref-Autoref }
+ {
+ You~have~not~loaded~hyperref.~The~\protect\Autoref\space command~needs~
+ hyperref~to~work.
+ }
+\msg_new:nnn { keytheorems } { no-Autorefname }
+ {
+ No~Autoref~name~for~'#1'.~
+ Please~define~\c_backslash_str #1Autorefname.
+ }
+\msg_new:nnn { keytheorems } { thmstyle-undefined }
+ {
+ Theorem~style~'#1'~undefined.~
+ Use~\protect\newkeytheoremstyle\space instead.
+ }
+\msg_new:nnn { keytheorems } { thmstyle-defined }
+ {
+ Theorem~style~'#1'~already~defined.~
+ Use~\protect\renewkeytheoremstyle\space instead.
+ }
+\msg_new:nnn { keytheorems } { title-code-with-AMS }
+ {
+ The~'title-code'~key~has~no~effect~with~an~AMS~class.
+ }
+
+% Error if thmtools loaded since compilation hangs.
+% If thmtools loaded after, produce warning.
+\IfPackageLoadedTF { thmtools }
+ {
+ \msg_fatal:nn { keytheorems } { thmtools-before }
+ }
+ {
+ \hook_gput_code:nnn { package/thmtools/before } { . }
+ {
+ \msg_warning:nn { keytheorems } { thmtools-after }
+ }
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Declare Variables %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\tl_new:N \l__keythms_tmpa_tl
+
+\bool_new:N \g__keythms_listof_writefile_bool
+\bool_gset_false:N \g__keythms_listof_writefile_bool
+\bool_new:N \g__keythms_thmtoolscompat_bool
+\bool_gset_false:N \g__keythms_thmtoolscompat_bool
+\bool_new:N \l__keythms_listofheading_storereversed_bool
+\bool_new:N \l__keythms_thm_numbered_bool
+\bool_new:N \l__keythms_thm_unlessunique_bool
+\bool_new:N \l__keythms_thmuse_listhack_bool
+\bool_new:N \l__keythms_thmuse_restating_bool
+\clist_new:N \g__keythms_restatecounters_clist
+\clist_new:N \l__keythms_thmstyle_savedkeys_clist
+\iow_new:N \g__keythms_listof_stream
+\prop_new:N \g__keythms_thmnames_prop
+\prop_new:N \g__keythms_thmstyle_defaultkeys_prop
+\prop_new:N \g__keythms_thmuse_othercounters_prop
+\prop_new:N \l__keythms_restate_counters_prop
+\tl_new:N \l__keythms_thm_currentthmstyle_tl
+\tl_new:N \l__keythms_thm_defaultkeys_tl
+\tl_new:N \l__keythms_thm_envname_tl
+\tl_new:N \l__keythms_thmstyle_defaultkeys_tl
+\tl_new:N \l__keythms_thmstyle_lnotebrace_tl
+\tl_new:N \l__keythms_thmstyle_rnotebrace_tl
+\tl_new:N \l_keythms_thmuse_envname_tl
+\tl_new:N \g__keythms_thmuse_temprestatedata_tl
+\tl_new:N \g__keythms_thmuse_temprestatedatareversed_tl
+
+\newcounter{keythms_restate_dummyctr}
+\cs_gset:Npn \theHkeythms_restate_dummyctr
+ { restate.\arabic{keythms_restate_dummyctr} }
+\cs_gset:Npn \thekeythms_restate_dummyctr { }
+\newcounter{keythms_continues_dummyctr}
+\cs_gset:Npn \theHkeythms_continues_dummyctr
+ { continues.\arabic{keythms_continues_dummyctr} }
+\cs_gset:Npn \thekeythms_continues_dummyctr { }
+\newcounter{keythms_unnumbered_dummyctr}
+\cs_gset:Npn \theHkeythms_unnumbered_dummyctr
+ { unnumbered.\arabic{keythms_unnumbered_dummyctr} }
+\cs_gset:Npn \thekeythms_unnumbered_dummyctr { }
+
+\cs_generate_variant:Nn \hook_gput_code:nnn { nnV }
+\cs_generate_variant:Nn \keys_precompile:nnN { nv, nVc, nnc, ne }
+
+%%%%%%%%%%%%%%
+%%% Styles %%%
+%%%%%%%%%%%%%%
+
+\cs_new_protected:Npn \__keythms_thmstyle_setbraces:nn #1#2
+ { % #1 = left brace, #2 = right brace
+ \tl_set:Nn \l__keythms_thmstyle_lnotebrace_tl { #1 }
+ \tl_set:Nn \l__keythms_thmstyle_rnotebrace_tl { #2 }
+ }
+\cs_new_protected:Npn \keythms_thmstyle_savethmkey_reqval:n #1
+ { % #1 = key value
+ \clist_put_right:No \l__keythms_thmstyle_savedkeys_clist
+ { \l_keys_key_str = { #1 } }
+ }
+\cs_new_protected:Npn \keythms_thmstyle_savethmkey_optval:n #1
+ { % #1 = key value
+ \tl_if_empty:NTF \l_keys_value_tl
+ {
+ \clist_put_right:No \l__keythms_thmstyle_savedkeys_clist
+ { \l_keys_key_str }
+ }
+ {
+ \clist_put_right:No \l__keythms_thmstyle_savedkeys_clist
+ { \l_keys_key_str = { #1 } }
+ }
+ }
+
+\keys_define:nn { keytheorems/thmstyle }
+ {
+ bodyfont .tl_set:N = \l__keythms_thmstyle_bodyfont_tl,
+ break .meta:n = { postheadspace = \newline }, % add error if postheadspace set
+ break .value_forbidden:n = true,
+ headfont .tl_set:N = \l__keythms_thmstyle_headfont_tl,
+ headformat .meta:n = { headstyle = #1 },
+ headindent .tl_set:N = \l__keythms_thmstyle_headindent_tl,
+ headpunct .tl_set:N = \l__keythms_thmstyle_headpunct_tl,
+ headstyle .choice:,
+ headstyle / margin .code:n =
+ {
+ \cs_set:Nn \keythms_thmstyle_headcmd:nnn
+ { \makebox[0pt][r]{\NUMBER\ }\NAME\NOTE }
+ },
+ headstyle / swapnumber .code:n =
+ {
+ \cs_set:Nn \keythms_thmstyle_headcmd:nnn { \NUMBER\ \NAME\NOTE }
+ },
+ headstyle / unknown .cs_set:Np = \keythms_thmstyle_headcmd:nnn #1#2#3,
+ inherit-style .choice:,
+ inherit-style / plain .meta:n = {},
+ inherit-style / definition .meta:n = { bodyfont = \normalfont },
+ inherit-style / remark .meta:n =
+ {
+ bodyfont = \normalfont,
+ headfont = \itshape,
+ spaceabove = 0.5\topsep,
+ spacebelow = 0.5\topsep,
+ },
+ notebraces .code:n = \exp_after:wN \__keythms_thmstyle_setbraces:nn #1,
+ notefont .tl_set:N = \l__keythms_thmstyle_notefont_tl,
+ noteseparator .tl_set:N = \l__keythms_thmstyle_noteseparator_tl,
+ numberfont .tl_set:N = \l__keythms_thmstyle_numberfont_tl,
+ postheadspace .tl_set:N = \l__keythms_thmstyle_postheadspace_tl,
+ spaceabove .tl_set:N = \l__keythms_thmstyle_spaceabove_tl,
+ spacebelow .tl_set:N = \l__keythms_thmstyle_spacebelow_tl,
+ % thm keys that are saved for later
+ numbered .code:n = \keythms_thmstyle_savethmkey_optval:n { #1 },
+ numberlike .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ numberwithin .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ parent .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ postfoothook .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ postheadhook .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ prefoothook .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ preheadhook .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ qed .code:n = \keythms_thmstyle_savethmkey_optval:n { #1 },
+ sharenumber .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ sibling .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ tcolorbox .code:n = \keythms_thmstyle_savethmkey_optval:n { #1 },
+ tcolorbox-no-titlebar .code:n = \keythms_thmstyle_savethmkey_optval:n { #1 },
+ within .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 },
+ }
+
+\cs_new_protected:Nn \keythms_thmstyle_thmname:n { \thmname{#1} }
+\cs_new_protected:Nn \keythms_thmstyle_thmnumber:n { \thmnumber{#1} }
+\cs_new_protected:Nn \keythms_thmstyle_thmnote:n { \thmnote{#1} }
+
+\cs_new:Npn \keythms_thmstyle_headcmd_default:nnn #1#2#3
+ {
+ \keythms_thmstyle_thmname:n { #1 }
+ \keythms_thmstyle_thmnumber:n
+ { ~
+ \group_begin:
+ \exp_not:V \l__keythms_thmstyle_numberfont_tl
+ #2
+ \group_end:
+ }
+ \keythms_thmstyle_thmnote:n
+ { \exp_not:V \l__keythms_thmstyle_noteseparator_tl
+ \group_begin: % group so notefont doesn't affect headpunct
+ \exp_not:V \l__keythms_thmstyle_notefont_tl
+ \l__keythms_thmstyle_lnotebrace_tl #3 \l__keythms_thmstyle_rnotebrace_tl
+ \group_end:
+ }
+ }
+
+\prop_gset_from_keyval:Nn \g__keythms_thmstyle_defaultkeys_prop
+ { % support files may overwrite these defaults
+ bodyfont = \itshape,
+ headfont = \bfseries,
+ headindent = 0pt,
+ headpunct = {.},
+ headstyle = \keythms_thmstyle_headcmd_default:nnn{#1}{#2}{#3},
+ notebraces = {(}{)},
+ notefont = \fontseries\mddefault\upshape,
+ noteseparator = {~},
+ numberfont = \upshape,
+ postheadspace = 5pt plus 1pt minus 1pt,
+ spaceabove = \topsep,
+ spacebelow = \topsep,
+ }
+\hook_gput_code:nnn { package/keytheorems/after } { . }
+ { % need to defer to wait for support files
+ \keys_precompile:neN { keytheorems/thmstyle }
+ { \prop_to_keyval:N \g__keythms_thmstyle_defaultkeys_prop }
+ \l__keythms_thmstyle_defaultkeys_tl
+ }
+
+\NewDocumentCommand \newkeytheoremstyle { m m }
+ {
+ \cs_if_free:cTF { th@ #1 }
+ { \keythms_thmstyle_declarestyle:nn { #1 } { #2 } }
+ { \msg_error:nnn { keytheorems } { thmstyle-defined } { #1 } }
+ }
+\NewDocumentCommand \renewkeytheoremstyle { m m }
+ {
+ \cs_if_free:cTF { th@ #1 }
+ { \msg_error:nnn { keytheorems } { thmstyle-undefined } { #1 } }
+ { \keythms_thmstyle_declarestyle:nn { #1 } { #2 } }
+ }
+\NewDocumentCommand \providekeytheoremstyle { m m }
+ {
+ \cs_if_free:cT { th@ #1 }
+ { \keythms_thmstyle_declarestyle:nn { #1 } { #2 } }
+ }
+\NewDocumentCommand \declarekeytheoremstyle { m m }
+ {
+ \keythms_thmstyle_declarestyle:nn { #1 } { #2 }
+ }
+
+\@onlypreamble \newkeytheoremstyle
+\@onlypreamble \renewkeytheoremstyle
+\@onlypreamble \providekeytheoremstyle
+\@onlypreamble \declarekeytheoremstyle
+
+\cs_new_eq:NN \keythms_thmstyle_new:nnnnnnnnn \newtheoremstyle
+\cs_generate_variant:Nn \keythms_thmstyle_new:nnnnnnnnn { nVVVVVVVe }
+
+\tl_put_right:Nn \l_text_expand_exclude_tl { \thmnote \thmnumber \thmname }
+% ^ allows \thmnote, etc. to work in headstyle; hope no bad side effects!
+\cs_new_protected:Npn \keythms_thmstyle_declarestyle:nn #1#2
+ { % user is in charge of spacing with \NAME and \NUMBER (thmtools compat...)
+ \cs_set:Npn \NAME { \keythms_thmstyle_thmname:n { ####1 } }
+ \cs_set:Npn \NUMBER
+ {
+ \keythms_thmstyle_thmnumber:n
+ {
+ \group_begin:
+ \exp_not:V \l__keythms_thmstyle_numberfont_tl
+ ####2
+ \group_end:
+ }
+ }
+ \cs_set:Npn \NOTE
+ {
+ \keythms_thmstyle_thmnote:n
+ { \exp_not:V \l__keythms_thmstyle_noteseparator_tl
+ \group_begin: % group so notefont doesn't affect headpunct
+ \exp_not:V \l__keythms_thmstyle_notefont_tl
+ \l__keythms_thmstyle_lnotebrace_tl ####3 \l__keythms_thmstyle_rnotebrace_tl
+ \group_end:
+ }
+ }
+ \clist_clear:N \l__keythms_thmstyle_savedkeys_clist
+ \tl_use:N \l__keythms_thmstyle_defaultkeys_tl
+ \keys_set:nn { keytheorems/thmstyle } { #2 }
+ \keythms_thmstyle_new:nVVVVVVVe { #1 }
+ \l__keythms_thmstyle_spaceabove_tl
+ \l__keythms_thmstyle_spacebelow_tl
+ \l__keythms_thmstyle_bodyfont_tl
+ \l__keythms_thmstyle_headindent_tl
+ \l__keythms_thmstyle_headfont_tl
+ \l__keythms_thmstyle_headpunct_tl
+ \l__keythms_thmstyle_postheadspace_tl
+ { \text_expand:n { \keythms_thmstyle_headcmd:nnn{##1}{##2}{##3} } }
+ % Define inherit-style key
+ \tl_if_exist:cF { l__keythms_thmstyle_ #1 _metakeys_tl }
+ { \tl_new:c { l__keythms_thmstyle_ #1 _metakeys_tl } }
+ \keys_precompile:nnc { keytheorems/thmstyle } { #2 } % use precompile instead of meta key
+ { l__keythms_thmstyle_ #1 _metakeys_tl } % because that's sensitive to hashes
+ \keys_define:nn { keytheorems/thmstyle } % and we want to allow both # and ##
+ { inherit-style / #1 .code:n = \tl_use:c { l__keythms_thmstyle_ #1 _metakeys_tl } }
+ \tl_if_exist:cF { l__keythms_thmstyle_ #1 _savedthmkeys_tl }
+ { \tl_new:c { l__keythms_thmstyle_ #1 _savedthmkeys_tl } }
+ \keys_precompile:nVc { keytheorems/thm }
+ \l__keythms_thmstyle_savedkeys_clist
+ { l__keythms_thmstyle_ #1 _savedthmkeys_tl }
+ \cs_undefine:N \NAME % undefine to prevent conflicts
+ \cs_undefine:N \NUMBER
+ \cs_undefine:N \NOTE
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Defining Theorems %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% FIX: reimplement these without \NewDocumentCommand and \SplitArgument
+\NewDocumentCommand \keythms_thm_setrefnames:nn
+ { m >{\SplitArgument{1}{,}} m } % #1 = envname, #2 = <refname> or <sing,plural>
+ { \__keythms_thm_setrefnames_aux:nnn{#1}#2 }
+\cs_new_protected:Npn \__keythms_thm_setrefnames_aux:nnn #1#2#3
+ {
+ \cs_set:cpn { #1 autorefname } { #2 }
+ \IfPackageLoadedT { cleveref }
+ {
+ \tl_if_novalue:nTF { #3 }
+ { \crefname{#1}{#2}{\textbf{??~(pl.~#2)}} }
+ { \crefname{#1}{#2}{#3} }
+ }
+ }
+\cs_generate_variant:Nn \keythms_thm_setrefnames:nn { nV }
+
+\NewDocumentCommand \keythms_thm_setRefnames:nn
+ { m >{\SplitArgument{1}{,}} m } % #1 = envname, #2 = <refname> or <sing,plural>
+ { \__keythms_thm_setRefnames_aux:nnn{#1}#2 }
+\cs_new_protected:Npn \__keythms_thm_setRefnames_aux:nnn #1#2#3
+ {
+ \cs_set:cpn { #1 Autorefname } { #2 }
+ \IfPackageLoadedT { cleveref }
+ {
+ \tl_if_novalue:nTF { #3 }
+ { \Crefname{#1}{#2}{\textbf{??~(pl.~#2)}} }
+ { \Crefname{#1}{#2}{#3} }
+ }
+ }
+\cs_generate_variant:Nn \keythms_thm_setRefnames:nn { nV }
+
+\keys_define:nn { keytheorems/thm }
+ {
+ heading .meta:n = { name = #1 },
+ name .tl_set:N = \l__keythms_thm_name_tl,
+ numbered .choice:,
+ numbered .default:n = true,
+ numbered / false .code:n = \bool_set_false:N \l__keythms_thm_numbered_bool,
+ numbered / no .meta:n = { numbered = false },
+ numbered / true .code:n = \bool_set_true:N \l__keythms_thm_numbered_bool,
+ numbered / unless-unique .code:n =
+ {
+ \bool_set_true:N \l__keythms_thm_unlessunique_bool
+ },
+ numbered / unless~unique .meta:n = { numbered = unless-unique },
+ numbered / yes .meta:n = { numbered = true },
+ numberlike .meta:n = { sibling = #1 },
+ numberwithin .meta:n = { parent = #1 },
+ parent .tl_set:N = \l__keythms_thm_parent_tl,
+ postfoothook .tl_set:N = \l__keythms_thm_postfoothook_tl,
+ postheadhook .tl_set:N = \l__keythms_thm_postheadhook_tl,
+ prefoothook .tl_set:N = \l__keythms_thm_prefoothook_tl,
+ preheadhook .tl_set:N = \l__keythms_thm_preheadhook_tl,
+ qed .tl_set:N = \l__keythms_thm_qed_tl,
+ qed .default:n = \c_novalue_tl,
+ % ^ distinguish between 'qed' and 'qed={}'
+ refname .tl_set:N = \l__keythms_thm_refname_tl,
+ Refname .tl_set:N = \l__keythms_thm_Refname_tl,
+ sharenumber .meta:n = { sibling = #1 },
+ sibling .tl_set:N = \l__keythms_thm_sibling_tl,
+ style .tl_set:N = \l__keythms_thm_style_tl,
+ style .groups:n = { style-comes-first },
+ tcolorbox .tl_set:N = \l__keythms_thm_tcbkeys_tl,
+ tcolorbox .default:n = {},
+ tcolorbox-no-titlebar .meta:n =
+ {
+ tcolorbox={
+ notitle,
+ before~upper={
+ \group_begin:
+ \__keythms_thm_tcboxtemphead:
+ \group_end:
+ },
+ #1
+ }
+ },
+ tcolorbox-no-titlebar .default:n = {},
+ title .meta:n = { name = #1 },
+ within .meta:n = { parent = #1 },
+ }
+
+% what below is unnecessary? I really don't understand this code.
+\cs_new_protected:Npn \__keythms_thm_storedeferredthmhead:n #1
+ {
+ \if@inlabel \indent \par \fi % eject a section head if one is pending
+ \if@nobreak
+ \adjust@parskip@nobreak
+ \else
+ \addpenalty\@beginparpenalty
+ \addvspace\@topsep
+ \addvspace{-\parskip}
+ \fi
+ % \global\@inlabeltrue % MY COMMENT: if this is uncommented then spacing after sections is wrong
+ \everypar\dth@everypar
+ \cs_set:Npn \__keythms_thm_tcboxtemphead: { \normalfont #1 }
+ \ignorespaces
+ }
+
+\keys_precompile:nnN { keytheorems/thm }
+ {
+ name = \q_no_value,
+ numbered = true,
+ parent = {},
+ postfoothook = {},
+ postheadhook = {},
+ prefoothook = {},
+ preheadhook = {},
+ qed = \q_no_value,
+ refname = \q_no_value,
+ Refname = \q_no_value,
+ sibling = {},
+ style = {},
+ tcolorbox = \q_no_value,
+ }
+ \l__keythms_thm_defaultkeys_tl
+
+\cs_new_protected:Npn \__keythms_thm_makethmhooks:n #1
+ {
+ \hook_new:n { keytheorems/#1/prehead }
+ \hook_new:n { keytheorems/#1/posthead }
+ \hook_new_reversed:n { keytheorems/#1/prefoot }
+ \hook_new_reversed:n { keytheorems/#1/postfoot }
+ \hook_new:n { keytheorems/#1/restated }
+ }
+
+% Make generic theorem hooks
+\__keythms_thm_makethmhooks:n { allthms }
+
+\NewDocumentCommand \newkeytheorem { m O{} }
+ { % #1 = name, #2 = keys
+ \clist_map_inline:nn { #1 } % define multiple theorems at once
+ { \keythms_thm_newkeythm:nn { ##1 } { #2 } }
+ }
+\@onlypreamble \newkeytheorem
+
+% to prevent error when plain, remark, or definition style used
+\tl_new:N \l__keythms_thmstyle_plain_savedthmkeys_tl
+\tl_new:N \l__keythms_thmstyle_remark_savedthmkeys_tl
+\tl_new:N \l__keythms_thmstyle_definition_savedthmkeys_tl
+
+\cs_new_protected:Npn \keythms_thm_newkeythm:nn #1#2
+ { % #1 = name, #2 = keys
+ % Store envname
+ \tl_set:Nn \l__keythms_thm_envname_tl { #1 }
+ % Make unless-unique false by default (can't precompile this)
+ \bool_set_false:N \l__keythms_thm_unlessunique_bool
+ % Set default keys
+ \tl_use:N \l__keythms_thm_defaultkeys_tl
+ % First set style so we can pick up additional thm keys, then overwrite if necessary
+ \keys_set_groups:nnn { keytheorems/thm } { style-comes-first } { #2 }
+ % Store theorem style
+ \tl_set:Ne \l__keythms_thm_currentthmstyle_tl { \the\thm@style }
+ \tl_if_empty:NTF \l__keythms_thm_style_tl
+ { % if \theoremstyle set, also use saved thm keys
+ \tl_if_exist:cT {l__keythms_thmstyle_ \l__keythms_thm_currentthmstyle_tl _savedthmkeys_tl}
+ { \tl_use:c {l__keythms_thmstyle_ \l__keythms_thm_currentthmstyle_tl _savedthmkeys_tl} }
+ }
+ {
+ % Temporarily set theorem style
+ \__keythms_theoremstyle:n { \l__keythms_thm_style_tl }
+ % If thm keys given in style, call now (possibly overwritten in next step)
+ % but don't error if user uses a style defined with just \newtheoremstyle
+ \tl_if_exist:cT { l__keythms_thmstyle_ \l__keythms_thm_style_tl _savedthmkeys_tl }
+ { \tl_use:c { l__keythms_thmstyle_ \l__keythms_thm_style_tl _savedthmkeys_tl } }
+ }
+ % Set env-specific keys
+ \keys_set:nn { keytheorems/thm } { #2 }
+ % Set up env-specific hooks
+ \__keythms_thm_makethmhooks:n { #1 }
+ % Add to env-specific hooks (use label so code given in keys is outermost)
+ % NOTE: faster to check if empty than add empty code to hook
+ \tl_if_empty:NF \l__keythms_thm_preheadhook_tl
+ {
+ \hook_gput_code:nnV { keytheorems/#1/prehead }
+ { keythms_hook_keys } \l__keythms_thm_preheadhook_tl
+ }
+ \tl_if_empty:NF \l__keythms_thm_postheadhook_tl
+ {
+ \hook_gput_code:nnV { keytheorems/#1/posthead }
+ { keythms_hook_keys } \l__keythms_thm_postheadhook_tl
+ }
+ \tl_if_empty:NF \l__keythms_thm_prefoothook_tl
+ {
+ \hook_gput_code:nnV { keytheorems/#1/prefoot }
+ { keythms_hook_keys } \l__keythms_thm_prefoothook_tl
+ }
+ \tl_if_empty:NF \l__keythms_thm_postfoothook_tl
+ {
+ \hook_gput_code:nnV { keytheorems/#1/postfoot }
+ { keythms_hook_keys } \l__keythms_thm_postfoothook_tl
+ }
+ % Set name if none given
+ \quark_if_no_value:NT \l__keythms_thm_name_tl % use quark so name={} is valid
+ {
+ % use e so \text_titlecase called only once per theorem definition,
+ % not each time the theorem is used
+ \tl_set:Ne \l__keythms_thm_name_tl
+ { \text_titlecase_first:n { #1 } }
+ }
+ % associate formatted name with envname in prop list
+ \prop_gput:NnV \g__keythms_thmnames_prop { #1 } \l__keythms_thm_name_tl
+ % Call correct \newtheorem variant
+ \bool_if:NTF \l__keythms_thm_unlessunique_bool
+ {
+ % [unq] is required since aux is read at begindocument
+ % (technically right before) which is after theorem is defined
+ \RequirePackage[unq]{unique}
+ \tl_if_empty:NTF \l__keythms_thm_parent_tl
+ {
+ \hook_gput_code:nnn { keytheorems/#1/prehead }
+ { keythms_hook_keys } { \setuniqmark { #1 } }
+ \ifuniq{ #1 }
+ { \bool_set_false:N \l__keythms_thm_numbered_bool }
+ { \bool_set_true:N \l__keythms_thm_numbered_bool }
+ \bool_if:NTF \l__keythms_thm_numbered_bool
+ {
+ \tl_if_empty:NTF \l__keythms_thm_sibling_tl
+ {
+ \__keythms_thm_new_numbered:nV { #1 } \l__keythms_thm_name_tl
+ }
+ {
+ \exp_args:NnV \newaliascnt { #1 } \l__keythms_thm_sibling_tl
+ \__keythms_thm_new_sibling:nVn { #1 }
+ \l__keythms_thm_name_tl { #1 }
+ \aliascntresetthe { #1 }
+ }
+ }
+ {
+ \__keythms_thm_new_unnumbered:nV { #1 } \l__keythms_thm_name_tl
+ \hook_gput_code:nnn { keytheorems/#1/prehead } { keythms_hook_keys }
+ {
+ \keythms_if_restating:F
+ { \refstepcounter{ keythms_unnumbered_dummyctr } }
+ }
+ }
+ }
+ {
+ \__keythms_thm_new_uuwithparent:nVV { #1 }
+ \l__keythms_thm_name_tl \l__keythms_thm_parent_tl
+ }
+ }
+ {
+ \bool_if:NTF \l__keythms_thm_numbered_bool
+ {
+ \tl_if_empty:NTF \l__keythms_thm_parent_tl
+ {
+ \tl_if_empty:NTF \l__keythms_thm_sibling_tl
+ {
+ \__keythms_thm_new_numbered:nV { #1 } \l__keythms_thm_name_tl
+ }
+ {
+ \exp_args:NnV \newaliascnt { #1 } \l__keythms_thm_sibling_tl
+ \__keythms_thm_new_sibling:nVn { #1 }
+ \l__keythms_thm_name_tl { #1 }
+ \aliascntresetthe { #1 }
+ }
+ }
+ {
+ \__keythms_thm_new_parent:nVV { #1 }
+ \l__keythms_thm_name_tl \l__keythms_thm_parent_tl
+ }
+ }
+ {
+ \__keythms_thm_new_unnumbered:nV { #1 } \l__keythms_thm_name_tl
+ \hook_gput_code:nnn { keytheorems/#1/prehead } { keythms_hook_keys }
+ {
+ \keythms_if_restating:F
+ { \refstepcounter{ keythms_unnumbered_dummyctr } }
+ }
+ }
+ }
+ % Store theorem def and redefine it with keys
+ \keythms_keyify_theorem:n { #1 }
+ % define \<env>autorefname and \<env>Autorefname, might be redefined next
+ \exp_args:NnV \cs_set:cpn { #1 autorefname } \l__keythms_thm_name_tl
+ \exp_args:NnV \cs_set:cpn { #1 Autorefname } \l__keythms_thm_name_tl
+ % Set ref names
+ \quark_if_no_value:NF \l__keythms_thm_refname_tl
+ { \keythms_thm_setrefnames:nV { #1 } \l__keythms_thm_refname_tl }
+ \quark_if_no_value:NF \l__keythms_thm_Refname_tl
+ { \keythms_thm_setRefnames:nV { #1 } \l__keythms_thm_Refname_tl }
+ % Set up qed if needed
+ \quark_if_no_value:NF \l__keythms_thm_qed_tl
+ {
+ \exp_args:Nno \__keythms_thm_qedcode:nn { #1 } { \l__keythms_thm_qed_tl }
+ }
+ % Set up tcolorbox if needed
+ \quark_if_no_value:NF \l__keythms_thm_tcbkeys_tl
+ {
+ \exp_args:Nno \__keythms_thm_tcboxcode:nn { #1 }
+ { \l__keythms_thm_tcbkeys_tl }
+ }
+ % Set up list-of definition
+ \cs_set_eq:cN { l@ #1 } \keythms_listof_tocline:
+ % Set default list-of display command
+ \__keythms_listof_show_aux:n { #1 }
+ % Set theorem style back to original state if needed
+ \tl_if_empty:NF \l__keythms_thm_style_tl
+ { \__keythms_theoremstyle:V \l__keythms_thm_currentthmstyle_tl }
+ }
+
+\cs_new_protected:Npn \__keythms_thm_tcboxcode:nn #1#2
+ {
+ \RequirePackage{tcolorbox}
+ \hook_gput_code:nnn { keytheorems/#1/prehead }
+ { keythms_tcbox }
+ {
+ \cs_set_eq:NN \deferred@thm@head \__keythms_thm_storedeferredthmhead:n
+ \cs_set_eq:NN \Hy@theorem@makelinktarget \use_none:n
+ % ^ don't like playing with hyperref internals... but don't see around
+ % it because hyperref tries to add to para hook which doesn't work
+ % when title set up the way we do it
+ \cs_set_protected:Npn \thm@space@setup { \thm@preskip=0pt \thm@postskip=0pt }
+ % ^ to match tcolorbox defaults; shouldn't interfere with user styles
+ }
+ \hook_gset_rule:nnnn { keytheorems/#1/posthead }
+ { keythms_tcbox } { before } { keythms_hook_keys }
+ \hook_gset_rule:nnnn { keytheorems/#1/prefoot }
+ { keythms_tcbox } { after } { keythms_hook_keys }
+ \hook_gset_rule:nnnn { keytheorems/#1/prefoot }
+ { keythms_tcbox } { after } { keythms_qed }
+ \tcbset
+ {
+ keythms_tcbox_#1/.style =
+ {
+ savedelimiter=#1,
+ title={ \__keythms_thm_tcboxtemphead: },
+ }
+ }
+ \bool_if:NT \l__keythms_thm_numbered_bool
+ {
+ \hook_gput_code:nnn { begindocument } { . }
+ {
+ \IfPackageLoadedF{cleveref}
+ { % hyperref doesn't patch \@thm if cleveref loaded
+ \tcbset
+ {
+ keythms_tcbox_#1/.append~style = % fix hyperlinking
+ { phantom={ \MakeLinkTarget*{\@currentHref} } }
+ }
+ }
+ }
+ }
+ \hook_gput_code:nnn { keytheorems/#1/posthead } { keythms_tcbox }
+ { \begin{tcolorbox}[keythms_tcbox_#1,#2] }
+ \hook_gput_code:nnn { keytheorems/#1/prefoot } { keythms_tcbox }
+ { \end{tcolorbox} }
+ }
+\cs_new_protected:Npn \__keythms_thm_qedcode:nn #1#2
+ {
+ \hook_gput_code:nnn { keytheorems/#1/posthead }
+ { keythms_qed }
+ {
+ \exp_args:No \tl_if_novalue:nF { #2 } { \protected@edef\qedsymbol{#2} }
+ \pushQED{\qed}
+ }
+ \hook_gput_code:nnn { keytheorems/#1/prefoot }
+ { keythms_qed }
+ {
+ \exp_args:No \tl_if_novalue:nF { #2 } { \protected@edef\qedsymbol{#2} }
+ \popQED
+ }
+ }
+
+\cs_new_eq:NN \__keythms_theoremstyle:n \theoremstyle
+\cs_generate_variant:Nn \__keythms_theoremstyle:n { V }
+
+\cs_new_eq:NN \__keythms_thm_new:w \newtheorem
+
+\cs_new_protected:Npn \__keythms_thm_new_numbered:nn #1#2
+ { \__keythms_thm_new:w { #1 } { #2 } }
+\cs_generate_variant:Nn \__keythms_thm_new_numbered:nn { nV }
+
+\cs_new_protected:Npn \__keythms_thm_new_unnumbered:nn #1#2
+ { \__keythms_thm_new:w* { #1 } { #2 } }
+\cs_generate_variant:Nn \__keythms_thm_new_unnumbered:nn { nV }
+
+\cs_new_protected:Npn \__keythms_thm_new_parent:nnn #1#2#3
+ { \__keythms_thm_new:w { #1 } { #2 } [ #3 ] }
+\cs_generate_variant:Nn \__keythms_thm_new_parent:nnn { nVV }
+
+\cs_new_protected:Npn \__keythms_thm_new_sibling:nnn #1#2#3
+ { \__keythms_thm_new:w { #1 } [ #3 ] { #2 } }
+\cs_generate_variant:Nn \__keythms_thm_new_sibling:nnn { nV }
+
+\cs_new_protected:Npn \__keythms_thm_new_uuwithparent:nnn #1#2#3
+ {
+ \cs_undefine:c { keythms_orig_nonumber_#1 } % for renew, declare
+ \__keythms_thm_new_unnumbered:nn { keythms_orig_nonumber_#1 } { #2 }
+ \__keythms_thm_new_parent:nnn { #1 } { #2 } { #3 }
+ \DeclareEnvironmentCopy { keythms_orig_withparent_#1 } { #1 }
+ \renewenvironment { #1 } % opt arg is implicit
+ {
+ \setuniqmark{ #1. \use:c {the #3} }
+ \ifuniq{ #1. \use:c {the #3} }
+ {
+ \keythms_if_restating:F
+ { \refstepcounter{ keythms_unnumbered_dummyctr } }
+ \begin{keythms_orig_nonumber_#1}
+ }
+ {
+ \begin{keythms_orig_withparent_#1}
+ }
+ }
+ {
+ \ifuniq{ #1. \use:c {the #3} }
+ { \end{keythms_orig_nonumber_#1} }
+ { \end{keythms_orig_withparent_#1} }
+ }
+ }
+\cs_generate_variant:Nn \__keythms_thm_new_uuwithparent:nnn { nVV }
+
+% for getting notes with continues*, use nameref if available, otherwise ltproperties
+\hook_gput_code:nnn { begindocument } { . }
+ {
+ \IfPackageLoadedTF { nameref }
+ {
+ \cs_new:Npn \__keythms_thmuse_recordnote: { } % nameref takes care of this
+ \cs_new:Npn \__keythms_getrecordednote:n #1
+ {
+ \getrefbykeydefault{ #1 }{ name }{ }
+ }
+ }
+ {
+ \property_new:nnnn { keytheorems/recordednote } { now } { }
+ { \l__keythms_thmuse_note_tl }
+ \cs_new:Npn \__keythms_getrecordednote:n #1
+ {
+ \property_ref:nn { keythms_recordednote_#1 }
+ { keytheorems/recordednote }
+ }
+ \cs_new:Npn \__keythms_thmuse_recordnote:
+ {
+ \tl_if_empty:NF \l__keythms_thmuse_note_tl
+ {
+ \RecordProperties
+ { keythms_recordednote_\l__keythms_thmuse_label_tl }
+ { keytheorems/recordednote }
+ }
+ }
+ }
+ }
+
+\keys_define:nn { keytheorems/thmuse }
+ {
+ continues .tl_set:N = \l__keythms_thmuse_contlabel_tl,
+ continues* .code:n =
+ {
+ \keys_set:nn { keytheorems/thmuse } { continues = #1 }
+ \protected@edef \l__keythms_tmpa_tl { \__keythms_getrecordednote:n{#1} }
+ \tl_if_empty:NF \l__keythms_tmpa_tl
+ {
+ \keys_set:nn { keytheorems/thmuse }
+ { note = \l__keythms_tmpa_tl }
+ }
+ },
+ label .tl_set:N = \l__keythms_thmuse_label_tl,
+ listhack .choice:, % needs equals sign
+ listhack / true .code:n = \bool_set_true:N \l__keythms_thmuse_listhack_bool,
+ listhack / false .code:n = \bool_set_false:N \l__keythms_thmuse_listhack_bool,
+ listhack .initial:n = false,
+ name .meta:n = { note = #1 },
+ % ^ for compatibility. "name" is ambiguous and doesn't match amsthm language
+ note .tl_set:N = \l__keythms_thmuse_note_tl,
+ note .initial:n = {},
+ restate .meta:n = { store = #1 }, % thmtools compatibility
+ restate* .meta:n = { store* = #1 },
+ restate-keys .clist_set:N = \l__keythms_thmuse_restatekeys_clist,
+ seq .code:n = {},
+ short-note .code:n = {}, % these do nothing at point of use
+ short-name .code:n = {},
+ store .tl_set:N = \l__keythms_thmuse_store_tl, % should this be .tl_set_e:N ?
+ store* .tl_set:N = \l__keythms_thmuse_storereversed_tl,
+ }
+
+\cs_new_protected:Npn \keythms_keyify_theorem:n #1
+ { % #1 = theorem name
+ \DeclareEnvironmentCopy { keythms_orig_#1 } { #1 }
+ \DeclareDocumentEnvironment { keythms_grab_#1 } { m m +b }
+ { % ##1 = keys, ##2 = note, ##3 = theorem body
+ \__keythms_thm_prehead_code:n { #1 }
+ \begin{keythms_orig_#1}[{##2}]
+ \clist_map_inline:Nn \g__keythms_restatecounters_clist
+ {
+ \prop_gput:Nne \g__keythms_thmuse_othercounters_prop { ####1 }
+ { \the\value{####1} }
+ }
+ \__keythms_thm_posthead_code:n { #1 }
+ % below needs to come after posthead so that correct \@currentHref
+ % is stored for tcolorbox theorems
+ \__keythms_thm_addcontentsdata:nnnn { #1 }
+ { \prop_to_keyval:N \g__keythms_thmuse_othercounters_prop }
+ { ##1 } { ##3 }
+ \__keythms_thm_tempstorerestatedata:nnn { #1 } { ##1 } { ##3 }
+ ##3
+ \__keythms_thm_prefoot_code:n { #1 }
+ \end{keythms_orig_#1}
+ \__keythms_thm_postfoot_code:n { #1 }
+ }
+ {}
+ \DeclareDocumentEnvironment { keythms_grabreversed_#1 } { m m +b }
+ { % ##1 = keys, ##2 = note, ##3 = theorem body
+ \tl_if_exist:cTF
+ { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _restatecounters_tl }
+ {
+ \bool_set_true:N \l__keythms_thmuse_restating_bool
+ \exp_args:NNe \prop_set_from_keyval:Nn \l__keythms_restate_counters_prop
+ { \tl_use:c { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _restatecounters_tl } }
+ \prop_map_inline:Nn \l__keythms_restate_counters_prop
+ {
+ \tl_set:ce { l_keythms_restate_current_####1_tl }
+ { \the\value{####1} }
+ \setcounter { ####1 } { ####2 }
+ % ^ FIX: what if eq's numbered by section, theorem, etc.? The
+ % thmtools code is opaque.... Or maybe should be up to the
+ % user to say "restate-counters={section,chapter,...}".
+ \cs_set:cpn { theH ####1 }
+ { \use:c { the ####1 } . \theHkeythms_restate_dummyctr }
+ }
+ \tl_if_empty:cTF
+ { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _label_tl }
+ { \refstepcounter{keythms_restate_dummyctr} } % for unnumbered theorems
+ {
+ \cs_set:cpn { the #1 }
+ { \tl_use:c { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _label_tl } }
+ \cs_set_eq:cN { c@ #1 } \c@keythms_restate_dummyctr
+ \cs_set_eq:cN { theH #1 } \theHkeythms_restate_dummyctr
+ % ^ why are the last two lines here? We shouldn't be referencing
+ % restated theorems. Think it's a remnant of thmtools
+ % WRONG: needed to make numbering correct after restated theorem.
+ % not sure about theH. <- this is needed to prevent duplicate anchors
+ }
+ }
+ {
+ \msg_warning:nne { keytheorems } { store-reversed-not-got }
+ { \l__keythms_thmuse_storereversed_tl }
+ }
+ \renewcommand\label[2][]{} % disable \label (opt arg in case cleveref loaded)
+ \cs_set_eq:NN \ltx@label \use_none:n % disable \ltx@label
+ \cs_set_eq:NN \property_record:nn \use_none:nn % disable \RecordProperties
+ \cs_set_eq:NN \setuniqmark \use_none:n % work with numbered=unless-unique
+ % QUESTION: also disable \hyper@@anchor? \MakeLinkTarget?
+ \hook_use:n { keytheorems/#1/restated }
+ \hook_use:n { keytheorems/allthms/restated }
+ \__keythms_thm_prehead_code:n { #1 }
+ \begin{keythms_orig_#1}[{##2}]
+ \__keythms_thm_posthead_code:n { #1 }
+ % below needs to come after posthead so that correct \@currentHref
+ % is stored for tcolorbox theorems
+ \__keythms_thm_addstoredreverseddata:nnn { #1 } { ##1 } { ##3 }
+ \__keythms_thm_tempstorerestatedatareversed:nnn { #1 } { ##1 } { ##3 }
+ ##3
+ \__keythms_thm_prefoot_code:n { #1 }
+ \end{keythms_orig_#1}
+ \__keythms_thm_postfoot_code:n { #1 }
+ \prop_map_inline:Nn \l__keythms_restate_counters_prop
+ {
+ \exp_args:Nnc \setcounter { ####1 }
+ { l_keythms_restate_current_####1_tl }
+ }
+ }
+ { }
+ % NOTE: have to do a lot of shenanigans to make sure the begin/end of grabbed
+ % theorem env captures only the body and no package code.
+ % This is the price of on-the-fly redefining the env to grab body
+ \RenewDocumentEnvironment { #1 } { ={note} O{} }
+ {
+ \keys_set:nn { keytheorems/thmuse } { ##1 }
+ \tl_if_empty:NF \l__keythms_thmuse_store_tl
+ {
+ \bool_gset_true:N \g__keythms_listof_writefile_bool
+ \cs_set_eq:NN \__keythms_withhooks_begin:nnn \__keythms_grab_begin:nnn
+ \cs_set_eq:NN \__keythms_withhooks_begin:nnV \__keythms_grab_begin:nnV
+ \cs_set_eq:NN \__keythms_withhooks_end:n \__keythms_grab_end:n
+ }
+ \tl_if_empty:NF \l__keythms_thmuse_storereversed_tl
+ {
+ \bool_gset_true:N \g__keythms_listof_writefile_bool
+ \cs_set_eq:NN \__keythms_withhooks_begin:nnn \__keythms_grabreversed_begin:nnn
+ \cs_set_eq:NN \__keythms_withhooks_begin:nnV \__keythms_grabreversed_begin:nnV
+ \cs_set_eq:NN \__keythms_withhooks_end:n \__keythms_grabreversed_end:n
+ }
+ \__keythms_thm_prehead_continues_code:n { #1 }
+ \__keythms_withhooks_begin:nnV { #1 } { ##1 } \l__keythms_thmuse_note_tl
+ }
+ {
+ \__keythms_withhooks_end:n { #1 }
+ \tl_if_empty:NF \l__keythms_thmuse_store_tl
+ {
+ \cs_if_exist:cF
+ { __keythms_getthm_ \l__keythms_thmuse_store_tl _theorem }
+ {
+ \cs_new:cpe
+ { __keythms_getthm_ \l__keythms_thmuse_store_tl _theorem }
+ {
+ \exp_not:N \__keythms_getthm_theorem:nnnnn
+ \exp_not:o { \g__keythms_thmuse_temprestatedata_tl }
+ }
+ \cs_new:cpe
+ { __keythms_getthm_ \l__keythms_thmuse_store_tl _body }
+ {
+ \exp_not:N \__keythms_getthm_body:nn
+ \exp_args:No \exp_not:o
+ {
+ \exp_after:wN \__keythms_use_iii_v_braced:nnnnn
+ \g__keythms_thmuse_temprestatedata_tl
+ }
+ }
+ }
+ }
+ \tl_if_empty:NF \l__keythms_thmuse_storereversed_tl
+ {
+ \cs_if_exist:cF
+ { __keythms_getthm_ \l__keythms_thmuse_storereversed_tl _theorem }
+ {
+ \cs_new:cpe
+ { __keythms_getthm_ \l__keythms_thmuse_storereversed_tl _theorem }
+ {
+ \exp_not:N \__keythms_getthmreversed_theorem:nnn
+ \exp_not:o { \g__keythms_thmuse_temprestatedatareversed_tl }
+ }
+ \cs_new:cpn
+ { __keythms_getthm_ \l__keythms_thmuse_storereversed_tl _body }
+ {
+ \textbf{??}
+ \msg_warning:nnn { keytheorems } { restate-body-never-got }
+ { #1 }
+ }
+ }
+ }
+ }
+ }
+\cs_new:Npn \__keythms_use_iii_v_braced:nnnnn #1#2#3#4#5 { {#3}{#5} }
+
+\cs_new_protected:Npn \__keythms_withhooks_begin:nnn #1#2#3
+ { % #1 = theorem name, #2 = keys, #3 = note
+ \__keythms_thm_prehead_code:n { #1 }
+ \begin{keythms_orig_#1}[{#3}]
+ \__keythms_thm_posthead_code:n { #1 }
+ \__keythms_thm_addcontentsdata:nnnn { #1 } { } { #2 } { }
+ \ignorespaces % I hope this is alright
+ }
+\cs_generate_variant:Nn \__keythms_withhooks_begin:nnn { nnV }
+\cs_new_protected:Npn \__keythms_withhooks_end:n #1
+ {
+ \__keythms_thm_prefoot_code:n { #1 }
+ \end{keythms_orig_#1}
+ \__keythms_thm_postfoot_code:n { #1 }
+ }
+\cs_new_protected:Npn \__keythms_grab_begin:nnn #1#2#3
+ { % #1 = theorem name, #2 = keys, #3 = note
+ \begin{keythms_grab_#1}{#2}{#3}
+ }
+\cs_generate_variant:Nn \__keythms_grab_begin:nnn { nnV }
+\cs_new_protected:Npn \__keythms_grab_end:n #1 { \end{keythms_grab_#1} }
+
+\cs_new_protected:Npn \__keythms_grabreversed_begin:nnn #1#2#3
+ { % #1 = theorem name, #2 = keys, #3 = note
+ \begin{keythms_grabreversed_#1}{#2}{#3}
+ }
+\cs_generate_variant:Nn \__keythms_grabreversed_begin:nnn { nnV }
+\cs_new_protected:Npn \__keythms_grabreversed_end:n #1
+ { \end{keythms_grabreversed_#1} }
+
+\cs_new_protected:Npn \__keythms_orig_begin:nn #1#2
+ { \begin{keythms_orig_#1}[{#2}] }
+\cs_generate_variant:Nn \__keythms_orig_begin:nn { nV }
+\cs_new_protected:Npn \__keythms_orig_end:n #1 { \end{keythms_orig_#1} }
+
+\cs_new_protected:Npn \__keythms_thm_prehead_code:n #1
+ { % #1 = theorem name
+ \tl_set:Nn \l_keythms_thmuse_envname_tl { #1 }
+ \hook_use:n { keytheorems/#1/prehead }
+ \hook_use:n { keytheorems/allthms/prehead }
+ }
+%% this below has to be separate from prehead_code above since we need to add
+%% continues-code to note before retrieving it in \__keythms_withhooks_begin:nnV
+\cs_new_protected:Npn \__keythms_thm_prehead_continues_code:n #1
+ { % #1 = theorem name
+ \tl_if_empty:NF \l__keythms_thmuse_contlabel_tl
+ {
+ \tl_if_empty:NF \l__keythms_thmuse_note_tl
+ { \tl_put_right:Nn \l__keythms_thmuse_note_tl { , ~ } }
+ \tl_put_right:Ne \l__keythms_thmuse_note_tl
+ { \__keythms_thmuse_continues:V \l__keythms_thmuse_contlabel_tl }
+ \cs_set:cpn { the #1 }
+ {
+ \getrefnumber { \l__keythms_thmuse_contlabel_tl }
+ }
+ \cs_set_eq:cN { c@ #1 } \c@keythms_continues_dummyctr
+ \cs_set_eq:cN { theH #1 } \theHkeythms_continues_dummyctr
+ %\cs_set_eq:NN \setuniqmark \use_none:n % not the right fix
+ }
+ }
+\cs_new_protected:Npn \__keythms_thm_posthead_code:n #1
+ { % #1 = theorem name
+ \hook_use:n { keytheorems/#1/posthead }
+ \hook_use:n { keytheorems/allthms/posthead }
+ \tl_if_empty:NF \l__keythms_thmuse_label_tl
+ {
+ \label{ \l__keythms_thmuse_label_tl }
+ \__keythms_thmuse_recordnote:
+ }
+ \bool_if:NT \l__keythms_thmuse_listhack_bool
+ { % straight from thm-amsthm.sty
+ \leavevmode
+ \vspace{-\baselineskip}%
+ \par
+ \everypar{\setbox\z@\lastbox\everypar{}}%
+ }
+ }
+\cs_new_protected:Npn \__keythms_thm_prefoot_code:n #1
+ { % #1 = theorem name
+ \hook_use:n { keytheorems/allthms/prefoot }
+ \hook_use:n { keytheorems/#1/prefoot }
+ }
+\cs_new_protected:Npn \__keythms_thm_postfoot_code:n #1
+ { % #1 = theorem name
+ \hook_use:n { keytheorems/allthms/postfoot }
+ \hook_use:n { keytheorems/#1/postfoot }
+ }
+\cs_new_protected:Npn \__keythms_thm_addcontentsdata:nnnn #1#2#3#4
+ { % #1 = theorem name, #2 = stored counters, #3 = keys, #4 = body
+ \keythms_listof_chaptervspacehack:
+ \iow_shipout:Ne \@auxout
+ {
+ \exp_not:N \@writefile { thlist }
+ {
+ \KeyThmsSavedTheorem{ #1 }
+ { \@currentlabel }
+ { \@currentHref }
+ { \thepage }
+ { #2 }
+ { \exp_not:n { #3 } } % do we want any expansion here, perhaps
+ { \exp_not:n { #4 } } % with \text_expand:n ?
+ }
+ }
+ }
+\cs_new_protected:Npn \__keythms_thm_addstoredreverseddata:nnn #1#2#3
+ {
+ \iow_shipout:Ne \@auxout
+ {
+ \exp_not:N \@writefile { thlist }
+ {
+ \KeyThmsSavedTheoremReversed { \l__keythms_thmuse_storereversed_tl }
+ { #1 }
+ { \exp_not:n { #2 } }
+ { \exp_not:n { #3 } }
+ }
+ }
+ }
+\cs_new_protected:Npn \__keythms_thm_tempstorerestatedata:nnn #1#2#3
+ { % #1 = theorem name, #2 = keys, #3 = body
+ \tl_gset:Ne \g__keythms_thmuse_temprestatedata_tl % needs to be global to get out of env
+ {
+ { #1 }
+ { \@currentlabel }
+ { \prop_to_keyval:N \g__keythms_thmuse_othercounters_prop }
+ { \exp_not:n { #2 } } % do we want any expansion here, perhaps
+ { \exp_not:n { #3 } } % with \text_expand:n ?
+ }
+ }
+\cs_new_protected:Npn \__keythms_thm_tempstorerestatedatareversed:nnn #1#2#3
+ {
+ \tl_gset:Ne \g__keythms_thmuse_temprestatedatareversed_tl % needs to be global to get out of env
+ {
+ { #1 }
+ { \exp_not:n { #2 } }
+ { \exp_not:n { #3 } }
+ }
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Retrieving Theorem Data %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\cs_new_protected:Npn \KeyThmsSavedTheorem #1#2#3#4#5#6#7 % 7th arg is body
+ { \use:c { __keythms_thmitem_#1:nnnnnn } {#2}{#3}{#4}{#5}{#6}{#7} }
+\cs_new_protected:Npn \KeyThmsSavedTheoremReversed #1#2#3#4 { } % gobble by default
+
+\keys_define:nn { keytheorems/storeatbegin }
+ {
+ restate .meta:n = { store=#1 },
+ restate* .meta:n = { store*=#1 },
+ store .tl_set:N = \l__keythms_storeatbegin_store_tl,
+ store* .tl_set:N = \l__keythms_storeatbegin_storereversed_tl,
+ unknown .code:n = { } % do nothing with unknown keys
+ }
+
+\cs_new_protected:Npn \KeyThmsContentsLine #1 { }
+% ^ initially a no-op, redefined where needed; important it's protected!
+\NewDocumentCommand \addtheoremcontentsline { m m }
+ {
+ \addtocontents { thlist }
+ {
+ \KeyThmsContentsLine
+ { % copied from def of \addcontentsline
+ \protect\contentsline{#1}{#2}{\thepage}{}
+ \protected@file@percent
+ }
+ }
+ }
+\NewDocumentCommand \addtotheoremcontents { m }
+ {
+ \addtocontents { thlist }
+ {
+ \KeyThmsContentsLine { #1 }
+ }
+ }
+
+\hook_gput_code:nnn { begindocument } { . }
+ {
+ \group_begin:
+ \cs_set_protected:Npn \KeyThmsSavedTheorem #1#2#3#4#5#6#7
+ {
+ \group_begin:
+ \keys_set:nn { keytheorems/storeatbegin } { #6 }
+ \tl_if_empty:NF \l__keythms_storeatbegin_store_tl
+ {
+ \cs_new_protected:cpn
+ { __keythms_getthm_ \l__keythms_storeatbegin_store_tl _theorem }
+ {
+ \__keythms_getthm_theorem:nnnnn
+ {#1}{#2}{#5}{#6}{#7}
+ }
+ \cs_new_protected:cpn
+ { __keythms_getthm_ \l__keythms_storeatbegin_store_tl _body }
+ {
+ \__keythms_getthm_body:nn {#5}{#7}
+ }
+ }
+ \tl_if_empty:NF \l__keythms_storeatbegin_storereversed_tl
+ {
+ \tl_const:cn
+ { c__keythms_storeatbegin_ \l__keythms_storeatbegin_storereversed_tl _label_tl }
+ { #2 }
+ \tl_const:cn
+ { c__keythms_storeatbegin_ \l__keythms_storeatbegin_storereversed_tl _restatecounters_tl }
+ { #5 }
+ \cs_new_protected:cpn
+ { __keythms_getthm_ \l__keythms_storeatbegin_storereversed_tl _body }
+ {
+ \__keythms_getthm_body:nn {#5}{#7}
+ }
+ }
+ \group_end:
+ }
+ \cs_set_protected:Npn \KeyThmsSavedTheoremReversed #1#2#3#4
+ {
+ \bool_new:c { g__keythms_restate_#1_called_bool }
+ \cs_gset:cpn { __keythms_getthm_ #1 _theorem }
+ { \__keythms_getthmreversed_theorem:nnn { #2 } { #3 } { #4 } }
+ \hook_gput_code:nnn { begindocument/end } { . }
+ {
+ \cs_if_exist:cF { __keythms_getthm_ #1 _body }
+ {
+ \cs_new_protected:cpn { __keythms_getthm_ #1 _body }
+ {
+ \textbf{??}
+ \msg_warning:nnn { keytheorems } { restate-body-never-got } { #1 }
+ }
+ }
+ }
+ }
+ \file_if_exist_input:n { \c_sys_jobname_str.thlist }
+ \group_end:
+ }
+
+\prg_new_conditional:Npnn \keythms_if_restating: { T, F, TF }
+ {
+ \bool_if:NTF \l__keythms_thmuse_restating_bool
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+\NewDocumentCommand \IfRestatingTF { } { \keythms_if_restating:TF }
+\NewDocumentCommand \IfRestatingT { } { \keythms_if_restating:T }
+\NewDocumentCommand \IfRestatingF { } { \keythms_if_restating:F }
+
+\cs_new_protected:Npn \__keythms_getthm_theorem:nnnnn #1#2#3#4#5
+ { % #1 = name, #2 = number, #3 = restate counters, #4 = keys, #5 = theorem body
+ \group_begin:
+ \bool_set_true:N \l__keythms_thmuse_restating_bool
+ \prop_set_from_keyval:Nn \l__keythms_restate_counters_prop { #3 }
+ \prop_map_inline:Nn \l__keythms_restate_counters_prop
+ {
+ \tl_set:ce { l_keythms_restate_current_##1_tl } { \the\value{##1} }
+ \setcounter { ##1 } { ##2 }
+ % ^ FIX: what if eq's numbered by section, theorem, etc.? The
+ % thmtools code is opaque.... Or maybe should be up to the
+ % user to say "restate-counters={section,chapter,...}".
+ \cs_set:cpn { theH ##1 }
+ { \use:c { the ##1 } . \theHkeythms_restate_dummyctr }
+ }
+ \tl_if_empty:nTF { #2 }
+ { \refstepcounter{keythms_restate_dummyctr} } % for unnumbered theorems
+ {
+ \cs_set:cpn { the #1 } { #2 }
+ \cs_set_eq:cN { c@ #1 } \c@keythms_restate_dummyctr
+ \cs_set_eq:cN { theH #1 } \theHkeythms_restate_dummyctr
+ % ^ why are the last two lines here? We shouldn't be referencing
+ % restated theorems. Think it's a remnant of thmtools
+ % WRONG: needed to make numbering correct after restated theorem.
+ % not sure about theH. <- this is needed to prevent duplicate anchors
+ }
+ \renewcommand\label[2][]{} % disable \label (opt arg in case cleveref loaded)
+ \cs_set_eq:NN \ltx@label \use_none:n % disable \ltx@label
+ \cs_set_eq:NN \property_record:nn \use_none:nn % disable \RecordProperties
+ \cs_set_eq:NN \setuniqmark \use_none:n % work with numbered=unless-unique
+ % QUESTION: also disable \hyper@@anchor? \MakeLinkTarget?
+ \keys_set:nn { keytheorems/thmuse } { #4 }
+ \keys_set:no { keytheorems/thmuse } { \l__keythms_thmuse_restatekeys_clist }
+ \hook_use:n { keytheorems/#1/restated }
+ \hook_use:n { keytheorems/allthms/restated }
+ \__keythms_thm_prehead_continues_code:n { #1 }
+ \__keythms_thm_prehead_code:n { #1 }
+ \__keythms_orig_begin:nV { #1 } \l__keythms_thmuse_note_tl
+ \__keythms_thm_posthead_code:n { #1 }
+ #5
+ \__keythms_thm_prefoot_code:n { #1 }
+ \__keythms_orig_end:n { #1 }
+ \__keythms_thm_postfoot_code:n { #1 }
+ \prop_map_inline:Nn \l__keythms_restate_counters_prop
+ {
+ \exp_args:Nnc \setcounter { ##1 }
+ { l_keythms_restate_current_##1_tl }
+ }
+ \group_end:
+ }
+
+\cs_new_protected:Npn \__keythms_getthm_body:nn #1#2
+ { % #1 = restate counters, #2 = theorem body
+ \group_begin:
+ \bool_set_true:N \l__keythms_thmuse_restating_bool
+ \prop_set_from_keyval:Nn \l__keythms_restate_counters_prop { #1 }
+ \prop_map_inline:Nn \l__keythms_restate_counters_prop
+ {
+ \tl_set:ce { l_keythms_restate_current_##1_tl } { \the\value{##1} }
+ \setcounter { ##1 } { ##2 }
+ % ^ FIX: what if eq's numbered by section, theorem, etc.? The
+ % thmtools code is opaque.... Or maybe should be up to the
+ % user to say "restate-counters={section,chapter,...}".
+ \cs_set:cpn { theH ##1 }
+ { \use:c { the ##1 } . \theHkeythms_restate_dummyctr }
+ }
+ \refstepcounter{keythms_restate_dummyctr}
+ \renewcommand\label[2][]{} % disable \label (opt arg in case cleveref loaded)
+ \cs_set_eq:NN \ltx@label \use_none:n % disable \ltx@label
+ \cs_set_eq:NN \property_record:nn \use_none:nn % disable \RecordProperties
+ \hook_use:n { keytheorems/#1/restated }
+ \hook_use:n { keytheorems/allthms/restated }
+ #2
+ \prop_map_inline:Nn \l__keythms_restate_counters_prop
+ {
+ \exp_args:Nnc \setcounter { ##1 }
+ { l_keythms_restate_current_##1_tl }
+ }
+ \group_end:
+ }
+
+\cs_new_protected:Npn \__keythms_getthmreversed_theorem:nnn #1#2#3
+ { % #1 = envname, #2 = keys, #3 = theorem body
+ \group_begin:
+ \bool_set_false:N \l__keythms_thmuse_restating_bool
+ \keys_set:nn { keytheorems/thmuse } { #2 }
+ \keys_set:no { keytheorems/thmuse } { \l__keythms_thmuse_restatekeys_clist }
+ \__keythms_thm_prehead_continues_code:n { #1 }
+ \__keythms_thm_prehead_code:n { #1 }
+ \__keythms_orig_begin:nV { #1 } \l__keythms_thmuse_note_tl
+ \clist_map_inline:Nn \g__keythms_restatecounters_clist
+ {
+ \prop_gput:Nne \g__keythms_thmuse_othercounters_prop { ##1 }
+ { \the\value{##1} }
+ }
+ \__keythms_thm_posthead_code:n { #1 }
+ \__keythms_thm_addcontentsdata:nnnn { #1 }
+ { \prop_to_keyval:N \g__keythms_thmuse_othercounters_prop }
+ { #2 } { #3 }
+ \__keythms_thm_tempstorerestatedata:nnn { #1 } { #2 } { #3 } % for defining getthm_body
+ #3
+ \__keythms_thm_prefoot_code:n { #1 }
+ \__keythms_orig_end:n { #1 }
+ \__keythms_thm_postfoot_code:n { #1 }
+ % While we're here, define getthm_body
+ \cs_if_exist:cF
+ { __keythms_getthm_ \l__keythms_thmuse_storereversed_tl _body }
+ {
+ \cs_new:cpe
+ { __keythms_getthm_ \l__keythms_thmuse_storereversed_tl _body }
+ {
+ \exp_not:N \__keythms_getthm_body:nn
+ \exp_args:No \exp_not:o
+ {
+ \exp_after:wN \__keythms_use_iii_v_braced:nnnnn
+ \g__keythms_thmuse_temprestatedata_tl
+ }
+ }
+ }
+ \bool_gset_true:c
+ { g__keythms_restate_ \l__keythms_thmuse_storereversed_tl _called_bool }
+ \group_end:
+ }
+
+\NewDocumentCommand \getkeytheorem { O{theorem} m }
+ { % #1 = property, #2 = tag
+ \cs_if_exist:cTF { __keythms_getthm_#2_#1 }
+ {
+ \bool_if_exist:cTF { g__keythms_restate_#2_called_bool }
+ {
+ \str_if_eq:nnTF { #1 } { theorem }
+ {
+ \bool_if:cTF
+ { g__keythms_restate_#2_called_bool }
+ {
+ \msg_error:nnn { keytheorems }
+ { store-reversed-called-twice } { #2 }
+ }
+ { \use:c { __keythms_getthm_#2_#1 } }
+ }
+ { \use:c { __keythms_getthm_#2_#1 } }
+ }
+ { \use:c { __keythms_getthm_#2_#1 } }
+ }
+ {
+ \textbf{??}
+ \cs_if_exist:cTF { __keythms_getthm_#2_theorem }
+ {
+ \msg_warning:nnnn { keytheorems } { no-prop-for-stored-theorem }
+ { #1 } { #2 } % should this be an error?
+ }
+ { \msg_warning:nnn { keytheorems } { no-stored-theorem } { #2 } }
+ }
+ }
+
+%%%%%%%%%%%%%%%%%%%%%
+%%% Theorem Hooks %%%
+%%%%%%%%%%%%%%%%%%%%%
+
+\NewDocumentCommand \addtotheoremhook { O{allthms} m +m }
+ { % #1 = envname, #2 = hook, #3 = code
+ \__hook_if_declared:nTF { keytheorems/allthms/#2 }
+ {
+ \hook_gput_code:nnn { keytheorems/#1/#2 } { . } { #3 }
+ }
+ {
+ \msg_error:nnn { keytheorems } { undefined-thm-hook } { #2 }
+ }
+ }
+% NOTE: I think it's OK we use the internal \__hook_if_declared:nTF above
+% since we don't need to worry about the user creating new theorem hooks
+% so, as we're only checking the existence of hooks created by us, it's OK.
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%%% List of Theorems %%%
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+\keys_define:nn { keytheorems/listof }
+ {
+ chapter-skip-length .dim_set:N = \keythms@listof@chaptervspace@dim,
+ chapter-skip-length .initial:n = 10pt,
+ format-code .cs_set:Np = \__keythms_listof_misdirect:nnn #1#2#3,
+ format-code .initial:n = \numberline{#2}#1#3,
+ ignore .code:n =
+ {
+ \hook_gput_code:nnn { begindocument/before } { keytheorems }
+ { \keythms_listof_ignore:n { #1 } }
+ },
+ ignoreall .code:n =
+ { % in case called before theorem defined
+ \hook_gput_code:nnn { begindocument/before } { keytheorems }
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ { \__keythms_listof_ignore_aux:n { ##1 } }
+ }
+ },
+ indent .dim_set:N = \l__keythms_listof_indent_dim,
+ indent .initial:n = 1.5em,
+ no-chapter-skip .bool_set:N = \l__keythms_listof_nochapskip_bool,
+ no-chapter-skip .initial:n = false,
+ no-continues .bool_set:N = \l__keythms_listof_nocont_bool,
+ no-continues .initial:n = false,
+ no-title .bool_set:N = \l__keythms_listof_notitle_bool,
+ no-title .initial:n = false,
+ no-toc .bool_set:N = \l__keythms_listof_notoc_bool,
+ no-toc .initial:n = false, % false does not mean "to-toc" for standard classes
+ note-code .cs_set:Np = \__keythms_listof_notecmd:n #1,
+ note-code .initial:n = { ~ (#1) },
+ numwidth .dim_set:N = \l__keythms_listof_numwidth_dim,
+ numwidth .initial:n = 2.3em,
+ onlynamed .code:n =
+ {
+ \hook_gput_code:nnn { begindocument/before } { keytheorems }
+ { \keythms_listof_onlynamed:n { #1 } }
+ },
+ onlynamed .default:n = \q_no_value,
+ onlynumbered .code:n =
+ {
+ \hook_gput_code:nnn { begindocument/before } { keytheorems }
+ { \keythms_listof_onlynumbered:n { #1 } }
+ },
+ onlynumbered .default:n = \q_no_value,
+ print-body .code:n =
+ {
+ \cs_set_protected:Nn \keythms_listof_listcmd:nnnnnnn
+ {
+ \tl_if_empty:nF { ##7 }
+ {
+ \__keythms_getthm_theorem:nnnnn
+ {##1}{##2}{##5}{##6}{##7}
+ }
+ }
+ },
+ seq .code:n =
+ {
+ \hook_gput_code:nnn { begindocument/before } { keytheorems }
+ { \keythms_listof_showseq:n { #1 } }
+ },
+ show .code:n =
+ {
+ \hook_gput_code:nnn { begindocument/before } { keytheorems }
+ { \keythms_listof_show:n { #1 } }
+ },
+ showall .code:n =
+ { % in case called before theorem defined
+ \hook_gput_code:nnn { begindocument/before } { keytheorems }
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ { \__keythms_listof_show_aux:n { ##1 } }
+ }
+ },
+ swapnumber .bool_set:N = \l__keythms_listof_swapnumber_bool,
+ swapnumber .initial:n = false,
+ title .tl_set:N = \l__keythms_listof_title_tl,
+ title .initial:n = \GetTranslation{keythms_listof_title},
+ title-code .cs_set:Np = \__keythms_listof_titlecmd:n #1,
+ }
+
+\hook_gput_code:nnn { begindocument } { . }
+ { % redefine these keys at begindocument
+ \keys_define:nn { keytheorems/listof }
+ {
+ ignore .code:n = \keythms_listof_ignore:n { #1 },
+ ignoreall .code:n =
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ { \__keythms_listof_ignore_aux:n { ##1 } }
+ },
+ onlynamed .code:n = \keythms_listof_onlynamed:n { #1 },
+ onlynamed .default:n = \q_no_value,
+ onlynumbered .code:n = \keythms_listof_onlynumbered:n { #1 },
+ onlynumbered .default:n = \q_no_value,
+ seq .code:n = \keythms_listof_showseq:n { #1 },
+ show .code:n = \keythms_listof_show:n { #1 },
+ showall .code:n =
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ { \__keythms_listof_show_aux:n { ##1 } }
+ },
+ }
+ }
+
+\NewDocumentCommand \keytheoremlistset { m }
+ {
+ \keys_set:nn { keytheorems/listof } { #1 }
+ }
+
+\cs_new_protected:Npn \keythms_listof_ignore:n #1
+ {
+ \clist_map_inline:nn { #1 } { \__keythms_listof_ignore_aux:n { ##1 } }
+ }
+\cs_new_protected:Npn \__keythms_listof_ignore_aux:n #1
+ {
+ \cs_set_protected:cpn { __keythms_thmitem_#1:nnnnnn } ##1##2##3##4##5##6
+ { }
+ }
+
+\cs_new_protected:Npn \keythms_listof_show:n #1
+ {
+ \clist_map_inline:nn { #1 } { \__keythms_listof_show_aux:n { ##1 } }
+ }
+\cs_new_protected:Npn \__keythms_listof_show_aux:n #1
+ {
+ \cs_set_protected:cpn { __keythms_thmitem_#1:nnnnnn } ##1##2##3##4##5##6
+ {
+ \__keythms_listof_listcmd_setup:nn { ##5 }
+ {
+ \keythms_listof_listcmd:nnnnnnn
+ {#1}{##1}{##2}{##3}{##4}{##5}{##6}
+ }
+ }
+ }
+
+\cs_new_protected:Npn \keythms_listof_onlynamed:n #1
+ {
+ \quark_if_no_value:nTF { #1 }
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ { \__keythms_listof_onlynamed_aux:n { ##1 } }
+ }
+ {
+ \clist_map_inline:nn { #1 }
+ { \__keythms_listof_onlynamed_aux:n { ##1 } }
+ }
+ }
+\cs_new_protected:Npn \__keythms_listof_onlynamed_aux:n #1
+ {
+ \cs_set_protected:cpn { __keythms_thmitem_#1:nnnnnn } ##1##2##3##4##5##6
+ {
+ \__keythms_listof_listcmd_setup:nn { ##5 }
+ {
+ \tl_if_empty:NF \l__keythms_listofheading_note_tl
+ {
+ \keythms_listof_listcmd:nnnnnnn
+ {#1}{##1}{##2}{##3}{##4}{##5}{##6}
+ }
+ }
+ }
+ }
+
+\cs_new_protected:Npn \keythms_listof_onlynumbered:n #1
+ {
+ \quark_if_no_value:nTF { #1 }
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ { \__keythms_listof_onlynumbered_aux:n { ##1 } }
+ }
+ {
+ \clist_map_inline:nn { #1 }
+ { \__keythms_listof_onlynumbered_aux:n { ##1 } }
+ }
+ }
+\cs_new_protected:Npn \__keythms_listof_onlynumbered_aux:n #1
+ {
+ \cs_set_protected:cpn { __keythms_thmitem_#1:nnnnnn } ##1##2##3##4##5##6
+ {
+ \__keythms_listof_listcmd_setup:nn { ##5 }
+ {
+ \tl_if_empty:nF { ##1 }
+ {
+ \keythms_listof_listcmd:nnnnnnn
+ {#1}{##1}{##2}{##3}{##4}{##5}{##6}
+ }
+ }
+ }
+ }
+
+\cs_new_protected:Npn \keythms_listof_showseq:n #1
+ {
+ \prop_map_inline:Nn \g__keythms_thmnames_prop
+ { \__keythms_listof_showseq_aux:nn { #1 } { ##1 } }
+ }
+\cs_new_protected:Npn \__keythms_listof_showseq_aux:nn #1#2
+ { % #1 = seq name, #2 = theorem name
+ \cs_set_protected:cpn { __keythms_thmitem_#2:nnnnnn } ##1##2##3##4##5##6
+ {
+ \__keythms_listof_listcmd_setup:nn { ##5 }
+ {
+ \tl_if_eq:NnT \l__keythms_listofheading_seq_tl { #1 }
+ {
+ \keythms_listof_listcmd:nnnnnnn
+ {#2}{##1}{##2}{##3}{##4}{##5}{##6}
+ }
+ }
+ }
+ }
+
+% Seems unnecessary to repeat all this for reading the keyvals from file.
+% In thmtools they just hook the "thmitem" definition into the theorem declaration.
+%% NOTE ON ABOVE: this gives more flexibility to define different kinds of lists.
+%% See acro.sty for template idea.
+\keys_define:nn { keytheorems/listofheading }
+ {
+ continues .tl_set:N = \l__keythms_listofheading_contlabel_tl,
+ continues* .code:n =
+ {
+ \keys_set:nn { keytheorems/listofheading } { continues = #1 }
+ \protected@edef \l__keythms_tmpa_tl { \__keythms_getrecordednote:n{#1} }
+ \tl_if_empty:NF \l__keythms_tmpa_tl
+ {
+ \keys_set:nn { keytheorems/listofheading }
+ { note = \l__keythms_tmpa_tl }
+ }
+ },
+ name .meta:n = { note = #1 },
+ note .tl_set:N = \l__keythms_listofheading_note_tl,
+ restate* .meta:n = { store*=#1 },
+ restate-keys .clist_set:N = \l__keythms_listofheading_restatekeys_clist,
+ seq .tl_set:N = \l__keythms_listofheading_seq_tl,
+ short-note .tl_set:N = \l__keythms_listofheading_shortnote_tl,
+ short-name .meta:n = { short-note = #1 },
+ store* .code:n =
+ {
+ \bool_set_true:N \l__keythms_listofheading_storereversed_bool
+ },
+ unknown .code:n = { } % do nothing with unknown keys
+ }
+
+\cs_new:Npn \__keythms_listof_printnote:
+ {
+ \tl_if_empty:NTF \l__keythms_listofheading_shortnote_tl
+ {
+ \tl_if_empty:NF \l__keythms_listofheading_note_tl
+ { \__keythms_listof_notecmd:n { \l__keythms_listofheading_note_tl } }
+ }
+ {
+ \__keythms_listof_notecmd:n { \l__keythms_listofheading_shortnote_tl }
+ }
+ }
+
+\cs_new:Npn \keythms_listof_listcmd:nnnnnnn #1#2#3#4#5#6#7
+ { % #1=name, #2=number, #3=Href, #4=page, #5=restate counters, #6=keys, #7=body
+ \contentsline{ #1 }
+ {
+ \__keythms_listof_misdirect:nnn
+ { \prop_item:Nn \g__keythms_thmnames_prop { #1 } }
+ { #2 }
+ { \__keythms_listof_printnote: }
+ }
+ { #4 }{ #3 }
+ }
+
+% NOTE: We still need to do this setup for [print-body] so that onlynamed works
+\cs_new_protected:Npn \__keythms_listof_listcmd_setup:nn #1#2
+ { % #1 = keys, #2 = list command
+ \group_begin:
+ \keys_set:nn { keytheorems/listofheading } { #1 }
+ \bool_if:NT \l__keythms_listofheading_storereversed_bool
+ {
+ \keys_set:no { keytheorems/listofheading }
+ { \l__keythms_listofheading_restatekeys_clist }
+ }
+ \tl_if_empty:NTF \l__keythms_listofheading_contlabel_tl
+ { #2 }
+ {
+ \bool_if:NF \l__keythms_listof_nocont_bool
+ {
+ \tl_if_empty:NF \l__keythms_listofheading_note_tl
+ {
+ \tl_put_right:Nn \l__keythms_listofheading_note_tl { , ~ }
+ }
+ \tl_put_right:Nn \l__keythms_listofheading_note_tl
+ {
+ \__keythms_thmuse_continues:V \l__keythms_listofheading_contlabel_tl
+ }
+ #2
+ }
+ }
+ \group_end:
+ }
+
+\cs_if_exist:NTF \chapter
+ { \cs_set_protected:Npn \__keythms_listof_titlecmd:n #1 { \chapter*{#1} } }
+ { \cs_set_protected:Npn \__keythms_listof_titlecmd:n #1 { \section*{#1} } }
+
+\cs_new_protected:Npn \__keythms_listof_default_tocline:
+ {
+ \@dottedtocline{ 1 }{ \l__keythms_listof_indent_dim }
+ { \l__keythms_listof_numwidth_dim }
+ }
+\cs_new_eq:NN \keythms_listof_tocline: \__keythms_listof_default_tocline:
+
+\NewDocumentCommand \listofkeytheorems { O{} }
+ {
+ \bool_gset_true:N \g__keythms_listof_writefile_bool
+ \group_begin:
+ \keys_set:nn { keytheorems/listof } { #1 }
+ \cs_set_protected:Npn \KeyThmsContentsLine ##1 { ##1 }
+ \bool_if:NF \l__keythms_listof_nochapskip_bool
+ {
+ \cs_set_eq:NN \KeyThmsAddvspace \addvspace
+ }
+ \bool_if:NF \l__keythms_listof_notitle_bool
+ {
+ \__keythms_listof_titlecmd:n { \l__keythms_listof_title_tl }
+ \@mkboth % QUESTION: should this go in titlecmd ?
+ { \MakeUppercase \l__keythms_listof_title_tl }
+ { \MakeUppercase \l__keythms_listof_title_tl }
+ }
+ \bool_if:NT \l__keythms_listof_swapnumber_bool
+ {
+ \cs_set:Npn \__keythms_listof_misdirect:nnn ##1##2##3 { ##1 ~ ##2##3 }
+ }
+ \legacy_if_set_false:n { @filesw }
+ \@starttoc{ thlist }
+ \group_end:
+ }
+% ^ unlike thmtools we don't use the class's style of \listoffigures because
+% we want control over title-code, no-title, etc. But this means we have to guess
+% things like marks, sectioning command, etc.
+
+\hook_gput_code:nnn { enddocument } { . }
+ {
+ \bool_if:NTF \g__keythms_listof_writefile_bool
+ {
+ \legacy_if:nT { @filesw }
+ {
+ \iow_new:N \tf@thlist
+ \iow_open:Nn \tf@thlist { \c_sys_jobname_str.thlist }
+ }
+ }
+ { % if .thlist file left over from previous run but not needed, clear it
+ \file_if_exist:nT { \c_sys_jobname_str.thlist }
+ {
+ \iow_open:Nn \g_tmpa_iow { \c_sys_jobname_str.thlist }
+ \iow_close:N \g_tmpa_iow
+ }
+ }
+ }
+
+% chaptervspacehack (code translated from thmtools)
+\cs_new_protected:Npn \KeyThmsAddvspace #1 { } % initially no-op, redefined where needed
+\int_new:N \g_keythms_listof_prevchapter_int
+\int_gset:Nn \g_keythms_listof_prevchapter_int { 1 }
+% ^ if this is zero, bad things happen if title-code is changed; anyways don't
+% need addvspace at top
+\cs_new_protected:Npn \keythms_listof_chaptervspacehack: { }
+\cs_if_exist:cT { c@chapter }
+ {
+ \cs_if_eq:NNF \c@chapter \relax
+ {
+ \cs_set_protected:Npn \keythms_listof_chaptervspacehack:
+ {
+ \int_compare:nNnF
+ { \value{chapter} } = { \g_keythms_listof_prevchapter_int }
+ {
+ \addtocontents{ thlist }
+ {
+ \KeyThmsAddvspace
+ { \keythms@listof@chaptervspace@dim }
+ }
+ \int_gset:Nn \g_keythms_listof_prevchapter_int { \value{chapter} }
+ }
+ }
+ }
+ }
+
+%%%%%%%%%%%%%%%%
+%%% \Autoref %%%
+%%%%%%%%%%%%%%%%
+
+\ProvideDocumentCommand { \Autoref } { s m }
+ {
+ \IfPackageLoadedTF { hyperref }
+ {
+ \group_begin:
+ \cs_set_eq:NN \HyRef@testreftype \__keythms_Autoref_testreftype:w
+ \IfBooleanTF { #1 } { \autoref*{#2} } { \autoref{#2} }
+ \group_end:
+ }
+ { \msg_error:nn { keytheorems } { hyperref-Autoref } }
+ }
+
+\cs_new_protected:Npn \__keythms_Autoref_testreftype:w #1.#2\\
+ {
+ \cs_if_exist:cTF { #1 Autorefname }
+ {
+ \cs_set:Npe \HyRef@currentHtag
+ {
+ \exp_not:N \use:c { #1 Autorefname }
+ \exp_not:N \c_space_token
+ }
+ }
+ { \msg_warning:nnn { keytheorems } { no-Autorefname } { #1 } }
+ }
+
+%%%%%%%%%%%%%%%%%%%
+%%% Global Keys %%%
+%%%%%%%%%%%%%%%%%%%
+
+\keys_define:nn { keytheorems }
+ {
+ auto-translate .bool_gset:N = \g__keythms_autotranslate_bool,
+ auto-translate .initial:n = true,
+ continues-code .cs_set:Np = \__keythms_thmuse_continues:n #1,
+ continues-code .initial:n =
+ { % not sure how best to handle this translation
+ \GetTranslation{keythms_continues}\pageref{#1}
+ },
+ overload .code:n = \__keythms_overload_code:,
+ overload .value_forbidden:n = true,
+ overload .usage:n = preamble,
+ qed-symbol .cs_set_protected:Np = \qedsymbol,
+ restate-counters .code:n =
+ {
+ \clist_map_inline:nn { #1 }
+ { \tl_new:c { l_keythms_restate_current_##1_tl } }
+ \clist_gput_right:Nn \g__keythms_restatecounters_clist { #1 }
+ },
+ restate-counters .initial:n = equation,
+ store-all .code:n = \__keythms_storeall_code:,
+ store-all .value_forbidden:n = true,
+ store-all .usage:n = preamble,
+ store-sets-label .code:n =
+ {
+ \keys_define:nn { keytheorems/thmuse }
+ {
+ store .code:n =
+ {
+ \tl_set:Nn \l__keythms_thmuse_label_tl { ##1 }
+ \tl_set:Nn \l__keythms_thmuse_store_tl { ##1 }
+ },
+ store* .code:n =
+ {
+ \tl_set:Nn \l__keythms_thmuse_label_tl { ##1 }
+ \tl_set:Nn \l__keythms_thmuse_storereversed_tl { ##1 }
+ },
+ }
+ },
+ thmtools-compat .code:n =
+ { % prevent loading the code again if key called twice
+ \bool_if:NF \g__keythms_thmtoolscompat_bool
+ { \__keythms_thmtoolscompat_code: }
+ },
+ thmtools-compat .value_forbidden:n = true,
+ thmtools-compat .usage:n = preamble,
+ }
+
+\cs_generate_variant:Nn \__keythms_thmuse_continues:n { V }
+
+\NewDocumentCommand \keytheoremset { m }
+ { % #1 = keys
+ \keys_set:nn { keytheorems } { #1 }
+ }
+
+\cs_new_protected:Npn \__keythms_overload_code:
+ {
+ \RenewDocumentCommand { \newtheorem } { s m o m o }
+ {
+ \IfBooleanTF { ##1 }
+ { \keythms_thm_newkeythm:nn { ##2 } { name=##4, numbered=no } }
+ {
+ \IfNoValueTF { ##3 }
+ {
+ \IfNoValueTF { ##5 }
+ { \keythms_thm_newkeythm:nn { ##2 } { name=##4 } }
+ { \keythms_thm_newkeythm:nn { ##2 } { name=##4, parent=##5 } }
+ }
+ { \keythms_thm_newkeythm:nn { ##2 } { name=##4, sibling=##3 } }
+ }
+ }
+ }
+
+\cs_new_protected:Npn \__keythms_thmtoolscompat_code:
+ {
+ \bool_gset_true:N \g__keythms_thmtoolscompat_bool
+ \__keythms_overload_code: % since thmtools overwrites \newtheorem
+ \ProvideDocumentCommand { \declaretheoremstyle } { O{} m }
+ {
+ \declarekeytheoremstyle { ##2 } { ##1 }
+ }
+ \ProvideDocumentCommand { \declaretheorem } { O{} m }
+ {
+ \newkeytheorem { ##2 } [ ##1 ]
+ }
+ \ProvideDocumentEnvironment { restatable } { O{} m m }
+ { % need to redefine this to add store to thlist since we set it outside env
+ \cs_set_protected:Npn \__keythms_thm_addcontentsdata:nnnn ####1####2####3####4
+ { % #1 = theorem name, #2 = stored counters, #3 = keys, #4 = body
+ \keythms_listof_chaptervspacehack:
+ \iow_shipout:Ne \@auxout
+ {
+ \exp_not:N \@writefile { thlist }
+ {
+ \KeyThmsSavedTheorem{ ####1 }
+ { \@currentlabel }
+ { \@currentHref }
+ { \thepage }
+ { ####2 }
+ { store=\l__keythms_thmuse_store_tl,\exp_not:n { ####3 } } % this line is changed
+ { \exp_not:n { ####4 } }
+ }
+ }
+ }
+ % set store outside [] so keyless note is recognized
+ \keys_set:nn { keytheorems/thmuse } { store=##3 }
+ \begin{##2}[##1]
+ }
+ {
+ \end{##2}
+ \cs_new_protected:cpn { ##3 }
+ { % make \foo and \foo* identical
+ \peek_meaning_remove:NTF *
+ { \getkeytheorem{ ##3 } }
+ { \getkeytheorem{ ##3 } }
+ }
+ }
+ \ProvideDocumentEnvironment { restatable* } { O{} m m }
+ { % need to redefine this to add store* to thlist since we set it outside env
+ \cs_set_protected:Npn \__keythms_thm_addstoredreverseddata:nnn ####1####2####3
+ {
+ \iow_shipout:Ne \@auxout
+ {
+ \exp_not:N \@writefile { thlist }
+ {
+ \KeyThmsSavedTheoremReversed { \l__keythms_thmuse_storereversed_tl }
+ { ####1 }
+ { store*=\l__keythms_thmuse_storereversed_tl,\exp_not:n { ####2 } } % this line is changed
+ { \exp_not:n { ####3 } }
+ }
+ }
+ }
+ % set store* outside [] so keyless note is recognized
+ \keys_set:nn { keytheorems/thmuse } { store*=##3 }
+ \begin{##2}[##1]
+ }
+ {
+ \end{##2}
+ \cs_new_protected:cpn { ##3 }
+ { % make \foo and \foo* identical
+ \peek_meaning_remove:NTF *
+ { \getkeytheorem{ ##3 } }
+ { \getkeytheorem{ ##3 } }
+ }
+ }
+ \ProvideDocumentCommand { \listoftheorems } { } { \listofkeytheorems }
+ \ProvideDocumentCommand { \listtheoremname } { }
+ { \GetTranslation{keythms_listof_title} }
+ \keys_define:nn { keytheorems/listof }
+ { % redefine since thmtools way is \renewcommand\listtheoremname{...}
+ title .initial:n = \listtheoremname
+ }
+ \ProvideDocumentCommand { \addtotheorempreheadhook } { O{allthms} m }
+ {
+ \addtotheoremhook [ ##1 ] { prehead } { ##2 }
+ }
+ \ProvideDocumentCommand { \addtotheorempostheadhook } { O{allthms} m }
+ {
+ \addtotheoremhook [ ##1 ] { posthead } { ##2 }
+ }
+ \ProvideDocumentCommand { \addtotheoremprefoothook } { O{allthms} m }
+ {
+ \addtotheoremhook [ ##1 ] { prefoot } { ##2 }
+ }
+ \ProvideDocumentCommand { \addtotheorempostfoothook } { O{allthms} m }
+ {
+ \addtotheoremhook [ ##1 ] { postfoot } { ##2 }
+ }
+ \clist_new:N \l__keythms_tcbshaded_keys_clist
+ \clist_new:N \l__keythms_tcbthmbox_keys_clist
+ \keys_define:nn { keytheorems/thm/shaded }
+ {
+ textwidth .code:n =
+ \clist_put_right:Nn \l__keythms_tcbshaded_keys_clist { width=##1 },
+ bgcolor .code:n =
+ \clist_put_right:Nn \l__keythms_tcbshaded_keys_clist { colback=##1 },
+ rulewidth .code:n =
+ \clist_put_right:Nn \l__keythms_tcbshaded_keys_clist { boxrule=##1 },
+ rulecolor .code:n =
+ \clist_put_right:Nn \l__keythms_tcbshaded_keys_clist { colframe=##1 },
+ margin .code:n =
+ \clist_put_right:Nn \l__keythms_tcbshaded_keys_clist { boxsep=##1 },
+ padding .meta:n = { margin=##1 },
+ leftmargin .code:n =
+ \clist_put_right:Nn \l__keythms_tcbshaded_keys_clist { left~skip=##1 },
+ rightmargin .code:n =
+ \clist_put_right:Nn \l__keythms_tcbshaded_keys_clist { right~skip=##1 },
+ }
+ \keys_define:nn { keytheorems/thm/thmbox }
+ {
+ L .code:n =
+ {
+ \clist_put_right:Nn \l__keythms_tcbthmbox_keys_clist
+ { keythms_tcbthmbox_L }
+ },
+ M .code:n =
+ {
+ \clist_put_right:Nn \l__keythms_tcbthmbox_keys_clist
+ { keythms_tcbthmbox_M }
+ },
+ S .code:n =
+ {
+ \clist_put_right:Nn \l__keythms_tcbthmbox_keys_clist
+ { keythms_tcbthmbox_S }
+ },
+ underline .choice:,
+ underline / true .code:n = {},
+ underline / false .code:n =
+ {
+ \clist_put_right:Nn \l__keythms_tcbthmbox_keys_clist
+ { boxed~title~style={bottomrule=0pt} }
+ },
+ underline .default:n = true,
+ nounderline .meta:n = { underline=false },
+ cut .choice:,
+ cut / true .code:n = {},
+ cut / false .code:n =
+ {
+ \clist_put_right:Nn \l__keythms_tcbthmbox_keys_clist { unbreakable }
+ },
+ cut .default:n = true,
+ nocut .meta:n = { cut=false },
+ thickness .code:n =
+ { % could also add keys to clist with changed dimens; which is better?
+ \hook_gput_code:nnn { keytheorems/\l__keythms_thm_envname_tl/prehead }
+ { keythms_tcbox }
+ { \dim_set:Nn \l_keythms_tcbthmbox_thickness_dim { ##1 } }
+ },
+ leftmargin .code:n =
+ {
+ \hook_gput_code:nnn { keytheorems/\l__keythms_thm_envname_tl/prehead }
+ { keythms_tcbox }
+ { \dim_set:Nn \l_keythms_tcbthmbox_leftmargin_dim { ##1 } }
+ },
+ rightmargin .code:n =
+ {
+ \hook_gput_code:nnn { keytheorems/\l__keythms_thm_envname_tl/prehead }
+ { keythms_tcbox }
+ { \dim_set:Nn \l_keythms_tcbthmbox_rightmargin_dim { ##1 } }
+ },
+ hskip .code:n =
+ {
+ \hook_gput_code:nnn { keytheorems/\l__keythms_thm_envname_tl/prehead }
+ { keythms_tcbox }
+ { \dim_set:Nn \l_keythms_tcbthmbox_hskip_dim { ##1 } }
+ },
+ vskip .code:n =
+ {
+ \hook_gput_code:nnn { keytheorems/\l__keythms_thm_envname_tl/prehead }
+ { keythms_tcbox }
+ { \dim_set:Nn \l_keythms_tcbthmbox_vskip_dim { ##1 } }
+ },
+ }
+ \dim_new:N \l_keythms_tcbthmbox_thickness_dim
+ \dim_set:Nn \l_keythms_tcbthmbox_thickness_dim { 0.6pt }
+ \dim_new:N \l_keythms_tcbthmbox_leftmargin_dim
+ \dim_set:Nn \l_keythms_tcbthmbox_leftmargin_dim { 0.7\parindent } % use \parindent? thmbox does
+ \dim_new:N \l_keythms_tcbthmbox_rightmargin_dim
+ \dim_set:Nn \l_keythms_tcbthmbox_rightmargin_dim { 0pt }
+ \dim_new:N \l_keythms_tcbthmbox_hskip_dim
+ \dim_set:Nn \l_keythms_tcbthmbox_hskip_dim { 0.2em }
+ \dim_new:N \l_keythms_tcbthmbox_vskip_dim
+ \dim_set:Nn \l_keythms_tcbthmbox_vskip_dim { 0.2em }
+ \msg_new:nnn { keytheorems } { mdframed-undefined }
+ {
+ keytheorems~does~not~define~the~'mdframed'~key.~
+ Consider~using~the~'tcolorbox'~key~instead.
+ }
+ \keys_define:nn { keytheorems/thm }
+ {
+ shaded .code:n =
+ {
+ \clist_clear:N \l__keythms_tcbshaded_keys_clist
+ \keys_set:nn { keytheorems/thm/shaded } { ##1 }
+ % FIX: surely a better way to do this
+ \RequirePackage{tcolorbox}
+ \pgfkeysifdefined{/tcb/keythms_tcbshaded_default/.@cmd} % even worth it?
+ {}
+ {
+ \tcbset % wish I could do this outside of key but can't assume tcb loaded
+ {
+ keythms_tcbshaded_default/.style=
+ {
+ sharp~corners = all,
+ boxrule = 0pt,
+ left = 0pt, right = 0pt,
+ top = 0pt, bottom = 0pt,
+ parbox = false,
+ }
+ }
+ }
+ \keys_set:ne { keytheorems/thm }
+ {
+ tcolorbox-no-titlebar =
+ {
+ keythms_tcbshaded_default,
+ \l__keythms_tcbshaded_keys_clist
+ }
+ }
+ },
+ thmbox .code:n = % adapted from https://tex.stackexchange.com/a/236230/208544
+ {
+ \clist_clear:N \l__keythms_tcbthmbox_keys_clist
+ \keys_set:nn { keytheorems/thm/thmbox } { ##1 }
+ % FIX: surely a better way to do this
+ \RequirePackage{tcolorbox}
+ \tcbuselibrary{skins,breakable}
+ \pgfkeysifdefined{/tcb/keythms_tcbthmbox_default/.@cmd} % even worth it?
+ {}
+ {
+ \tcbset{
+ keythms_tcbthmbox_default/.style={
+ enhanced,
+ breakable,
+ sharp~corners=all,
+ right=\l_keythms_tcbthmbox_hskip_dim,
+ left=\l_keythms_tcbthmbox_hskip_dim,
+ top=\l_keythms_tcbthmbox_vskip_dim,
+ bottom=\l_keythms_tcbthmbox_vskip_dim,
+ coltitle=black,
+ frame~engine=empty,
+ interior~titled~engine=empty,
+ interior~engine=empty,
+ extras~broken={
+ frame~engine=empty,
+ interior~titled~engine=empty,
+ interior~engine=empty
+ },
+ parbox=false,
+ % even though frame isn't drawn, makes spacing correct
+ boxrule=0.5\l_keythms_tcbthmbox_thickness_dim,
+ attach~boxed~title~to~top~left={
+ xshift=-\l_keythms_tcbthmbox_leftmargin_dim,
+ },
+ boxed~title~style={
+ empty,
+ size=minimal,
+ bottom=0.3ex,
+ top=0ex,
+ % ditto
+ bottomrule=0.5\l_keythms_tcbthmbox_thickness_dim,
+ },
+ left~skip=\l_keythms_tcbthmbox_leftmargin_dim,
+ right~skip=\l_keythms_tcbthmbox_rightmargin_dim,
+ overlay~unbroken={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (title.south~west)
+ --
+ (title.south~east);
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ |-
+ ([xshift=10mm]frame.south~west);
+ },
+ overlay~first={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (title.south~west)
+ --
+ (title.south~east);
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ --
+ (frame.south~west);
+ },
+ overlay~middle={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ --
+ (frame.south~west);
+ },
+ overlay~last={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ |-
+ ([xshift=10mm]frame.south~west);
+ }
+ },
+ keythms_tcbthmbox_L/.style={
+ overlay~unbroken={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (title.south~west)
+ --
+ (title.south~east);
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ |-
+ (frame.south~east)
+ -|
+ (frame.north~east);
+ },
+ overlay~first={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (title.south~west)
+ --
+ (title.south~east);
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ --
+ (frame.south~west);
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~east)
+ --
+ (frame.south~east);
+ },
+ overlay~middle={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ --
+ (frame.south~west);
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~east)
+ --
+ (frame.south~east);
+ },
+ overlay~last={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ |-
+ (frame.south~east)
+ -|
+ (frame.north~east);
+ }
+ },
+ keythms_tcbthmbox_M/.style={},
+ keythms_tcbthmbox_S/.style={ % first and middle same as M
+ overlay~unbroken={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (title.south~west)
+ --
+ (title.south~east);
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ --
+ (frame.south~west);
+ },
+ overlay~last={
+ \draw[line~width=\l_keythms_tcbthmbox_thickness_dim]
+ (frame.north~west)
+ --
+ (frame.south~west);
+ }
+ },
+ }
+ }
+ \keys_set:ne { keytheorems/thm }
+ {
+ tcolorbox =
+ {
+ keythms_tcbthmbox_default,
+ \l__keythms_tcbthmbox_keys_clist
+ }
+ }
+ },
+ thmbox .default:n = M,
+ mdframed .code:n = \msg_error:nn { keytheorems } { mdframed-undefined },
+ }
+ \keys_define:nn { keytheorems/thmstyle }
+ {
+ shaded .code:n = \keythms_thmstyle_savethmkey_optval:n { ##1 },
+ thmbox .code:n = \keythms_thmstyle_savethmkey_optval:n { ##1 },
+ }
+ }
+
+\cs_new_protected:Npn \__keythms_storeall_code:
+ {
+ \cs_set_eq:NN \__keythms_withhooks_begin:nnn \__keythms_grab_begin:nnn
+ \cs_set_eq:NN \__keythms_withhooks_begin:nnV \__keythms_grab_begin:nnV
+ \cs_set_eq:NN \__keythms_withhooks_end:n \__keythms_grab_end:n
+ }
+
+\hook_gput_code:nnn { begindocument/before } { . }
+ { % use 'provide' in case user defines their own translation in preamble
+ \ProvideTranslationFallback { keythms_listof_title } { List~of~Theorems }
+ \ProvideTranslationFallback { keythms_continues } { continuing~from~p.\, }
+ \bool_if:NT \g__keythms_autotranslate_bool
+ {
+ \ProvideTranslation { English } { keythms_listof_title } { List~of~Theorems }
+ \ProvideTranslation { English } { keythms_continues } { continuing~from~p.\, }
+ % from DeepL; I don't know these languages!
+ \ProvideTranslation { French } { keythms_listof_title } { Liste~des~théorèmes }
+ \ProvideTranslation { French } { keythms_continues } { suite~de~la~p.\, }
+ \ProvideTranslation { German } { keythms_listof_title } { Liste~der~Theoreme }
+ \ProvideTranslation { German } { keythms_continues } { weiter~von~Seite~ }
+ \ProvideTranslation { Italian } { keythms_listof_title } { Elenco~dei~teoremi }
+ \ProvideTranslation { Italian } { keythms_continues } { continua~da~p.\, }
+ \ProvideTranslation { Spanish } { keythms_listof_title } { Lista~de~teoremas }
+ \ProvideTranslation { Spanish } { keythms_continues } { continúa~de~la~p.\, }
+ \ProvideTranslation { Portuguese } { keythms_listof_title } { Lista~de~teoremas }
+ \ProvideTranslation { Portuguese } { keythms_continues } { continua~da~p.\, }
+ }
+ }
+
+\ProcessKeyOptions[keytheorems]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Support for non-default classes %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\cs_new_protected:Npn \__keythms_support_AMSshared_code:
+ {
+ \keys_define:nn { keytheorems/listof } % adjust to AMS classes
+ {
+ indent .initial:n = 0pt,
+ numwidth .initial:n = 1.5pc,
+ title-code .code:n =
+ { % warn but set titlecmd just in case
+ \msg_warning:nn { keytheorems } { title-code-with-AMS }
+ \cs_set_protected:Npn \__keythms_listof_titlecmd:n ####1 { ##1 }
+ },
+ }
+ \RenewDocumentCommand \listofkeytheorems { O{} }
+ { % title command not customizable here
+ \bool_gset_true:N \g__keythms_listof_writefile_bool
+ \group_begin:
+ \keys_set:nn { keytheorems/listof } { ##1 }
+ \cs_set_protected:Npn \KeyThmsContentsLine ####1 { ####1 }
+ \bool_if:NF \l__keythms_listof_nochapskip_bool
+ {
+ \cs_set_eq:NN \KeyThmsAddvspace \addvspace
+ }
+ \legacy_if_set_false:n { @filesw }
+ \bool_if:NTF \l__keythms_listof_notitle_bool
+ { % hacky!
+ \cs_set_eq:NN \@startsection \use_none:nnnnnnn
+ \@starttoc{ thlist }{ }
+ }
+ { % ams classes don't expand title enough
+ \protected@edef \l__keythms_tmpa_tl { \l__keythms_listof_title_tl }
+ \bool_if:NT \l__keythms_listof_notoc_bool
+ { \cs_set_eq:NN \addcontentsline \use_none:nnn } % hacky!
+ \@starttoc{ thlist }{ \l__keythms_tmpa_tl }
+ }
+ \group_end:
+ }
+ \cs_new:Npn \__keythms_listof_ams_tocline:
+ {
+ \@tocline{ 0 }{ 3pt plus 2pt }{ \l__keythms_listof_indent_dim }
+ { \l__keythms_listof_numwidth_dim }{ }
+ }
+ \cs_set_eq:NN \keythms_listof_tocline: \__keythms_listof_ams_tocline:
+ }
+
+\cs_new_protected:Npn \keythms_support_check:n #1
+ {
+ \IfClassLoadedT { #1 } { \file_input:n { class-support/keythms-#1-support } }
+ }
+
+% acmart defaults also handled in amsart support file
+\keythms_support_check:n { amsart }
+\keythms_support_check:n { amsbook }
+\keythms_support_check:n { amsproc }
+\keythms_support_check:n { memoir }
+
+\file_input_stop: \ No newline at end of file
diff --git a/macros/latex/contrib/l3packages/CHANGELOG.md b/macros/latex/contrib/l3packages/CHANGELOG.md
index cd9143da08..a49c43396d 100644
--- a/macros/latex/contrib/l3packages/CHANGELOG.md
+++ b/macros/latex/contrib/l3packages/CHANGELOG.md
@@ -7,6 +7,13 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2024-08-16]
+
+### Fixed
+- Support for optimised commands using `\GetDocumentCommandArgSpec` (issue
+ [\#1550](https://github.com/latex3/latex3/issues/1550))
+- Unmatched `macrocode` environment in `xtemplate`
+
## [2024-05-08]
### Changed
@@ -259,7 +266,8 @@ this project uses date-based 'snapshot' version identifiers.
- Switch to ISO date format
- Improve cross-module use of internal functions
-[Unreleased]: https://github.com/latex3/latex3/compare/2024-05-08...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2024-08-16...HEAD
+[2024-08-16]: https://github.com/latex3/latex3/compare/2024-05-08...2024-08-16
[2024-05-08]: https://github.com/latex3/latex3/compare/2024-03-14...2024-05-08
[2024-03-14]: https://github.com/latex3/latex3/compare/2024-02-18...2024-03-14
[2024-02-18]: https://github.com/latex3/latex3/compare/2024-02-13...2024-02-18
diff --git a/macros/latex/contrib/l3packages/README.md b/macros/latex/contrib/l3packages/README.md
index 10899672d6..dfdc1135ba 100644
--- a/macros/latex/contrib/l3packages/README.md
+++ b/macros/latex/contrib/l3packages/README.md
@@ -1,6 +1,6 @@
# `l3packages`: Higher-level LaTeX3 Concepts (Deprecated)
-Release 2024-05-08
+Release 2024-08-16
## Overview
diff --git a/macros/latex/contrib/l3packages/l3keys2e.dtx b/macros/latex/contrib/l3packages/l3keys2e.dtx
index 2e5c419165..e8f6416012 100644
--- a/macros/latex/contrib/l3packages/l3keys2e.dtx
+++ b/macros/latex/contrib/l3packages/l3keys2e.dtx
@@ -62,7 +62,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-08}
+% \date{Released 2024-08-16}
%
% \maketitle
%
@@ -154,7 +154,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3keys2e}{2024-05-08}{}
+\ProvidesExplPackage{l3keys2e}{2024-08-16}{}
{LaTeX2e option processing using LaTeX3 keys}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/l3keys2e.pdf b/macros/latex/contrib/l3packages/l3keys2e.pdf
index df3821afb8..90c356f225 100644
--- a/macros/latex/contrib/l3packages/l3keys2e.pdf
+++ b/macros/latex/contrib/l3packages/l3keys2e.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xfp.dtx b/macros/latex/contrib/l3packages/xfp.dtx
index fe8dcd51b1..6e95e42901 100644
--- a/macros/latex/contrib/l3packages/xfp.dtx
+++ b/macros/latex/contrib/l3packages/xfp.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-08}
+% \date{Released 2024-08-16}
%
% \maketitle
%
@@ -171,7 +171,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xfp}{2024-05-08}{}
+\ProvidesExplPackage{xfp}{2024-08-16}{}
{L3 Floating point unit}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/xfp.pdf b/macros/latex/contrib/l3packages/xfp.pdf
index 2097c2b079..8640b3600d 100644
--- a/macros/latex/contrib/l3packages/xfp.pdf
+++ b/macros/latex/contrib/l3packages/xfp.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xparse.dtx b/macros/latex/contrib/l3packages/xparse.dtx
index 62ac19ff25..ac0ee03d3f 100644
--- a/macros/latex/contrib/l3packages/xparse.dtx
+++ b/macros/latex/contrib/l3packages/xparse.dtx
@@ -67,7 +67,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-08}
+% \date{Released 2024-08-16}
%
% \maketitle
%
@@ -1079,7 +1079,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xparse}{2024-05-08}{}
+\ProvidesExplPackage{xparse}{2024-08-16}{}
{L3 Experimental document command parser}
% \end{macrocode}
%
@@ -1436,13 +1436,30 @@
%
% \begin{macro}{\@@_get_arg_spec:NTF}
% If the command is not an \pkg{xparse} command, complain. If it is,
-% its second \enquote{item} is the argument specification.
+% its second \enquote{item} is the argument specification unless the
+% command is optimised: in the latter case, we can reconstruct the
+% spec.
% \begin{macrocode}
\cs_gset_protected:Npn \@@_get_arg_spec:NTF #1#2#3
{
\__kernel_cmd_if_xparse:NTF #1
{
- \tl_set:Ne \ArgumentSpecification { \tl_item:Nn #1 { 2 } }
+ \tl_set:Ne \ArgumentSpecification
+ {
+ \exp_args:No \tl_if_head_eq_meaning:nNTF {#1} \@@_start_optimized:
+ {
+ \prg_replicate:nn
+ {
+ \str_count:e
+ {
+ \exp_args:Nc \cs_parameter_spec:N
+ { \cs_to_str:N #1 \c_space_tl code }
+ } / 2
+ }
+ { m }
+ }
+ { \tl_item:Nn #1 { 2 } }
+ }
#2
}
{#3}
diff --git a/macros/latex/contrib/l3packages/xparse.pdf b/macros/latex/contrib/l3packages/xparse.pdf
index bb31c0a5e6..b9c39f43c3 100644
--- a/macros/latex/contrib/l3packages/xparse.pdf
+++ b/macros/latex/contrib/l3packages/xparse.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xtemplate.dtx b/macros/latex/contrib/l3packages/xtemplate.dtx
index 7d20c6142f..17715905ad 100644
--- a/macros/latex/contrib/l3packages/xtemplate.dtx
+++ b/macros/latex/contrib/l3packages/xtemplate.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-08}
+% \date{Released 2024-08-16}
%
% \maketitle
%
@@ -704,7 +704,7 @@
\endinput
}
{%
- \ProvidesExplPackage{xtemplate}{2024-05-08}{}
+ \ProvidesExplPackage{xtemplate}{2024-08-16}{}
{L3 Experimental prototype document functions}
\long\protected\def\DeclareRestrictedTemplate#1#2#3#4{%
\DeclareTemplateCopy{#1}{#3}{#2}%
@@ -722,6 +722,7 @@
% \end{macro}
% \end{macro}
%
+% \begin{macrocode}
%</package>
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/xtemplate.pdf b/macros/latex/contrib/l3packages/xtemplate.pdf
index b70bd7c991..44e90a9163 100644
--- a/macros/latex/contrib/l3packages/xtemplate.pdf
+++ b/macros/latex/contrib/l3packages/xtemplate.pdf
Binary files differ
diff --git a/macros/latex/contrib/listings/listings-devel.pdf b/macros/latex/contrib/listings/listings-devel.pdf
index da1506f1df..a04038050f 100644
--- a/macros/latex/contrib/listings/listings-devel.pdf
+++ b/macros/latex/contrib/listings/listings-devel.pdf
Binary files differ
diff --git a/macros/latex/contrib/listings/listings.dtx b/macros/latex/contrib/listings/listings.dtx
index 525ba1a4ae..bd1e84342b 100644
--- a/macros/latex/contrib/listings/listings.dtx
+++ b/macros/latex/contrib/listings/listings.dtx
@@ -46,6 +46,7 @@
\usepackage{mdframed} % frames for external files
\usepackage{moreverb} % writing external files
\usepackage{xcolor} % because of coloring the background
+\usepackage{tablefootnote} % because of \tablefootnote
\makeindex
@@ -135,7 +136,7 @@
% Hoffmann became the maintainer of the \packagename{listings}
% package in 2013; see the Preface for details.}~ %
% \textless\lstemail\textgreater}
-% \date{2024/05/25\enspace\enspace Version 1.10b\ \box\abstractbox}
+% \date{2024/09/23\enspace\enspace Version 1.10c\ \box\abstractbox}
% \def\lstemail{\href{mailto:j.hoffmann@fh-aachen.de}{\texttt{j.hoffmann(at)fh-aachen.de}}}
% \ifhyper
% \hypersetup{pdftitle=The Listings Package,
@@ -2723,7 +2724,7 @@
% \texttt{last} continues the numbering of the most recent listing and
% \meta{number} sets it to the (logical) number.
%
-% \item[1.0] \rkeyname{name}|=|\meta{name}
+% \item[1.0,{{}}] \rkeyname{name}|=|\meta{name}
%
% names a listing. Displayed environment-listings with the same name
% share a line counter if |firstnumber=auto| is in effect.
@@ -4825,22 +4826,29 @@
% Usually you will use |#1| as \meta{value}.
%
% \item[1.0] \cs{lstKV@SwitchCases}\marg{value}\\
-% |{|\meta{string 1}|&|\meta{execute 1}|\\|\\
-% | |\meta{string 2}|&|\meta{execute 2}|\\|\\
+% |{|\meta{string 1}|:|\meta{execute 1}|\\|\\
+% | |\meta{string 2}|:|\meta{execute 2}|\\|\\
% \hbox to 3em{\hfill\vdots}\\
-% | |\meta{string $n$}|&|\meta{execute $n$}|}|\marg{else}
+% | |\meta{string $n$}|;|\meta{execute $n$}|}|\marg{else}
%
% Either execute \meta{else} or the \meta{value} matching part.
%
-% This implementation of C. Heinz has a problem\label{gAmpersand}, if
-% the listing is part of a tabular environment as found out by
-% \lsthelper{Nasser~M.~Abbasi}{2016/05/25}{possible bug in listings
-% package}. \lsthelper{David~Carlisle}{2016/05/25}{%
+% This implementation is based on a hint of \lsthelper{David~Carlisle}{2016/05/25}{%
% http://tex.stackexchange.com/questions/311383/^^A
% adding-frame-none-to-lstlisting-options-in-lstdefinestyle^^A
-% -gives-error-with-tabu}
-% gave a hint how to avoid this problem and so the separator |&| is
-% replaced by |:|.
+% -gives-error-with-tabu} to avoid the problem of the original
+% implementation of C. Heinz\label{gAmpersand}:
+% \begin{quote}
+% \cs{lstKV@SwitchCases}\marg{value}\\
+% |{|\meta{string 1}|&|\meta{execute 1}|\\|\\
+% | |\meta{string 2}|&|\meta{execute 2}|\\|\\
+% \hbox to 3em{\hfill\vdots}\\
+% | |\meta{string $n$}|&|\meta{execute $n$}|}|\marg{else}
+% \end{quote}
+% The problem arose when the listing was part of a tabular
+% environment, as found out by
+% \lsthelper{Nasser~M.~Abbasi}{2016/05/25}{possible bug in listings
+% package}.
%
% \item[0.20] |\lstKV@TwoArg|\marg{value}\marg{subdefinition}
% \item[0.20] |\lstKV@ThreeArg|\marg{value}\marg{subdefinition}
@@ -4967,8 +4975,13 @@
% \lsttabspace |\lst@KCSmode| &
% \ldots~a keyword comment which can be terminated by a semicolon only.
% \\
-% \aspectname{html}\lsttabspace |\lst@insidemode| &
+% \aspectname{html}\lsttabspace |\lst@htmlmode| &
% Active if we are between \texttt{<} and \texttt{>}.
+%
+% Previous documentations used the mode name |\lst@insidemode| at this
+% place, but the name |\lst@insidemode| isn't referenced in any documentation
+% and so it is now (from v1.10c on) assumed as an overseen
+% documentation error.
% \\
% \aspectname{make}\lsttabspace |\lst@makemode| &
% Used to indicate a keyword.
@@ -5986,7 +5999,7 @@
% \part{Implementation}
%
%
-% \CheckSum{12435}
+% \CheckSum{12443}
%^^A
%^^A Don't index TeX-primitives.
%^^A
@@ -6130,8 +6143,8 @@
% All files will have same date and version.
% \begin{macrocode}
%<*kernel|misc|doc>
-\def\filedate{2024/05/25}
-\def\fileversion{1.10b}
+\def\filedate{2024/09/23}
+\def\fileversion{1.10c}
%</kernel|misc|doc>
% \end{macrocode}
% What we need and who we are.
@@ -8918,9 +8931,16 @@
% \begin{macrocode}
\def\lst@UM#1{\csname\@lst @um#1@\endcsname}
% \end{macrocode}
-% And all remaining standard characters.
+% And all remaining standard characters. \lsthelper{Peter
+% Cock}{2024/09/18}{Upright double-quotes in LaTeX listings}
+% pointed to the discussion in
+% \url{https://tex.stackexchange.com/questions/166790/how-can-i-get-straight-double-quotes-in-listings}
+% about the lack of support for upright double quotes which are now
+% implemented by the lines below.
% \begin{macrocode}
\lst@CCPutMacro
+ \lst@ProcessOther {"22}{\lst@ifupquote \textquotedbl
+ \else \char34\relax \fi}
\lst@ProcessOther {"23}\#
\lst@ProcessLetter{"24}\textdollar
\lst@ProcessOther {"25}\%
@@ -12654,7 +12674,9 @@
% \subsection{Line numbers}
%
% \begin{aspect}{labels}
-% \lsthelper{Rolf~Niepraschk}{1997/04/24}{line numbers} asked for line numbers.
+% \lsthelper{Rolf~Niepraschk}{1997/04/24}{line numbers} asked for line
+% number, the relevant keys and `\textit{data}' commands are described in
+% section \ref{rLineNumbers}, here is their implementation.
% \begin{macrocode}
%<*misc>
\lst@BeginAspect{labels}
@@ -12673,26 +12695,31 @@
right:\def\lst@PlaceNumber{\rlap{\normalfont
\kern\linewidth \kern\lst@numbersep
\lst@numberstyle{\thelstnumber}}}%
- }{\PackageError{Listings}{Numbers #1 unknown}\@ehc}}
+ }{\PackageError{Listings}{value `#1' for keyword `numbers' not supported}\@ehc}}
% \end{macrocode}
% \end{lstkey}
%
+% \begin{lstkey}{stepnumber}
+% \begin{lstkey}{numberfirstline}
% \begin{lstkey}{numberstyle}
% \begin{lstkey}{numbersep}
-% \begin{lstkey}{stepnumber}
% \begin{lstkey}{numberblanklines}
-% \begin{lstkey}{numberfirstline}
% Definition of the keys.
% \begin{macrocode}
+\lst@Key{stepnumber}{1}{\def\lst@stepnumber{#1\relax}}
+\lst@Key{numberfirstline}{f}[t]{\lstKV@SetIf{#1}\lst@ifnumberfirstline}
\lst@Key{numberstyle}{}{\def\lst@numberstyle{#1}}
\lst@Key{numbersep}{10pt}{\def\lst@numbersep{#1}}
-\lst@Key{stepnumber}{1}{\def\lst@stepnumber{#1\relax}}
+\lst@Key{numberblanklines}{true}[t]
+ {\lstKV@SetIf{#1}\lst@ifnumberblanklines}
+% \end{macrocode}
+% If we use the `empty' style, the listing must start at line 1, so:
+% \begin{macrocode}
\lst@AddToHook{EmptyStyle}{\let\lst@stepnumber\@ne}
% \end{macrocode}
+% Later on we use this to prevent numbering of the first line for a second
+% time.
% \begin{macrocode}
-\lst@Key{numberblanklines}{true}[t]
- {\lstKV@SetIf{#1}\lst@ifnumberblanklines}
-\lst@Key{numberfirstline}{f}[t]{\lstKV@SetIf{#1}\lst@ifnumberfirstline}
\gdef\lst@numberfirstlinefalse{\let\lst@ifnumberfirstline\iffalse}
% \end{macrocode}
% \end{lstkey}
@@ -12721,6 +12748,9 @@
% \end{macrocode}
% \end{lstkey}
%
+% The key |name| is defined in section \ref{sec:list-listings}, the data
+% command |\thelstnumber| below on page \pageref{iTheLstNumber}.
+%
% \begin{macro}{\lst@SetFirstNumber}
% \begin{macro}{\lst@SaveFirstNumber}
% \lsthelper{Boris~Veytsman}{1998/03/25}{continue line numbering: a.c b.c a.c}
@@ -12749,7 +12779,9 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\thelstnumber}
% \begin{macro}{\c@lstnumber}
+% \label{iTheLstNumber}%
% This counter keeps the current label number. We use it as current label to
% make line numbers referenced by |\ref|. This was proposed by
% \lsthelper{Boris~Veytsman}{1998/03/25}{make line numbers referenced via
@@ -12805,6 +12837,7 @@
.\thelstnumber}}
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\lst@skipnumbers}
% There are more things to do. We calculate how many lines must skip their
@@ -13879,12 +13912,21 @@
% \end{macrocode}
% Further parsing is done by |lst@GLI@|, the argument is |#1--\@nil| that
% is the first element of the list augmented by a sentinel. This
-% argument is parsed with the template |#1-#2-#3\@nil|. A linerange given
-% as e.\,g. `|12-21|' leads to the argument |12-21--\@nil|, so it is parsed
-% as \#1\(\leftarrow\) |12|, \#2\(\leftarrow\)|21|, and \#3\(\leftarrow\)|-|.
+% argument is parsed with the template |#1-#2-#3\@nil|.
+%
% \begin{macrocode}
\def\lst@GLI@#1-#2-#3\@nil{%
% \end{macrocode}
+% A linerange given as e.\,g. `|12-21|' leads to the argument
+% |12-21--\@nil|, so it is parsed as \#1\(\leftarrow\) |12|,
+% \#2\(\leftarrow\)|21|, and \#3\(\leftarrow\)|-|.
+%
+% Otherwise it is possible to define a range by arbitrary linerange markers
+% like `|start-end|' which leads to the argument
+% |12-21--\@nil|, so it is parsed as \#1\(\leftarrow\) |12|,
+% \#2\(\leftarrow\)|21|, and \#3\(\leftarrow\)|-|.
+
+
% First we test, if the linerange starts with a number (consisting of -, 1,
% 2, 3, \ldots) or an arbitrary linerange marker. If a linerange starts
% erroneously with a `|-|' character, the argument \#1 isn't set and so the
@@ -13897,23 +13939,23 @@
\ifx\@empty#1\@empty
\let\lst@firstline\@ne
\else
- \def\lst@firstline{#1\relax}%
+ \def\lst@firstline{#1\relax}
\fi
% \end{macrocode}
% Now we know the starting number of the linerange. \#3 isn't set with a
% linerange consisting of a single number, in all other cases \#2 defines
% the last line (explicitly or implicitly).
% \begin{macrocode}
- \ifx\@empty#3\@empty%
- \def\lst@lastline{9999999\relax}%
+ \ifx\@empty#3\@empty
+ \def\lst@lastline{9999999\relax}
\ifx\@empty#2\@empty
- \let\lst@lastline\lst@firstline%
+ \let\lst@lastline\lst@firstline
\fi
\else%
\ifx\@empty#2\@empty
\def\lst@lastline{9999999\relax}
\else % doesn't happen(?)
- \def\lst@lastline{#2\relax}%
+ \def\lst@lastline{#2\relax}
\fi
\fi
}%
@@ -13922,7 +13964,7 @@
% 9999999. This prevents (almost) anything from being printed for now.
% \begin{macrocode}
{%
- \def\lst@firstline{9999999\relax}%
+ \def\lst@firstline{9999999\relax}
\let\lst@lastline\lst@firstline
% \end{macrocode}
% We add the prefixes and suffixes to the markers.
@@ -14017,10 +14059,10 @@
\ifnum\@tempcnta=\z@ \else
\lst@nololtrue
\advance\@tempcnta\lst@advancenumber
- \edef\lst@firstnumber{\the\@tempcnta\relax}%
- \fi%
- \fi%
- }%
+ \edef\lst@firstnumber{\the\@tempcnta\relax}
+ \fi
+ \fi
+ }
}
\def\lst@InitLstNumber{%
\global\c@lstnumber\lst@firstnumber
@@ -14366,7 +14408,8 @@
% \begin{macro}{\lst@HRefStepCounter}
% This macro sets the listing number to a negative value since the user
% shouldn't refer to such a listing. If the \packagename{hyperref} package
-% is present, we use `lstlisting' (argument from above) to hyperref to.
+% is present, we use `lstlisting.' (argument from above) concatenated with
+% the current (negative) number to hyperref to.
% The groups have been added to prevent other packages (namely
% \packagename{tabularx}) from reading the locally changed counter
% and writing it back globally. Thanks to \lsthelper{Michael~Niedermair}
@@ -14374,14 +14417,17 @@
% this localization led to another bug, see |\theHlstnumber|.
% \begin{macrocode}
\def\lst@HRefStepCounter#1{%
- \begingroup
- \c@lstlisting\lst@neglisting
- \advance\c@lstlisting\m@ne \xdef\lst@neglisting{\the\c@lstlisting}%
- \ifx\hyper@refstepcounter\@undefined\else
- \hyper@refstepcounter{#1}%
- \fi
- \endgroup}
-\gdef\lst@neglisting{\z@}% init
+ \begingroup
+ \c@lstlisting\lst@neglisting
+ \advance\c@lstlisting\m@ne \xdef\lst@neglisting{\the\c@lstlisting}%
+ \ifx\hyper@refstepcounter\@undefined\else
+ \hyper@refstepcounter{#1}%
+ \fi
+ \endgroup
+}
+\gdef\lst@neglisting{\z@}% init, \z@ can be used both for 0pt and 0,
+ % remember: _neg_ative number, but no
+ % counter!
% \end{macrocode}
% \end{macro}
%
@@ -14776,7 +14822,8 @@
% \end{macro}
%
%
-% \subsection{List of listings}
+% \subsection{List of listings}%
+% \label{sec:list-listings}
%
% \begin{lstkey}{name}
% \begin{macro}{\lstname}
@@ -15781,7 +15828,7 @@
\ifalgorithmicpkg \RequirePackage{algorithmic}\fi
\iflgrind \RequirePackage{lgrind}\fi
\RequirePackage{nameref}
-\RequirePackage{url}
+\RequirePackage{xurl} % allow URL breaks
\renewcommand\ref{\protect\T@ref}
\renewcommand\pageref{\protect\T@pageref}
% \end{macrocode}
@@ -17336,6 +17383,10 @@
% \item[1.10] from 2024/02/15 on
% \item usage of |tocbasic| if loaded to improve compatibility with
% KOMA-Script and also enhance functionality.
+% \item differentiate between Python 2 and Python 3
+% \item add initial support for Scala 3.0
+% \item made |\lstinline{...}| work in tabular cells
+% \item implemented upright double-quotes
% \end{itemize}
% \endgroup
%
diff --git a/macros/latex/contrib/listings/listings.pdf b/macros/latex/contrib/listings/listings.pdf
index b4bfc0d79e..8e2038ce2d 100644
--- a/macros/latex/contrib/listings/listings.pdf
+++ b/macros/latex/contrib/listings/listings.pdf
Binary files differ
diff --git a/macros/latex/contrib/listings/lstdrvrs.dtx b/macros/latex/contrib/listings/lstdrvrs.dtx
index 8541b7a0b9..25c197c9d5 100644
--- a/macros/latex/contrib/listings/lstdrvrs.dtx
+++ b/macros/latex/contrib/listings/lstdrvrs.dtx
@@ -33,7 +33,7 @@
% \title{Language, Style and Format drivers\\ for \textsf{Listings}\\
% {\large by Carsten Heinz and individual authors:}}
% \author{\InputIfFileExists{lstdrvrs.tmp}{}{}}
-% \date{2024/05/25\enspace\enspace Version 1.10b\ \box\abstractbox}
+% \date{2024/09/23\enspace\enspace Version 1.10c\ \box\abstractbox}
%
% \ifhyper
% \hypersetup{pdftitle={Language, Style and Format drivers for the
@@ -138,7 +138,7 @@
% \endgroup
% We mainly define default dialects.
% \begin{macrocode}
-\ProvidesFile{listings.cfg}[2024/05/25 1.10b listings configuration]
+\ProvidesFile{listings.cfg}[2024/09/23 1.10c listings configuration]
\def\lstlanguagefiles
{lstlang0.sty,lstlang1.sty,lstlang2.sty,lstlang3.sty}
\lstset{defaultdialect=[R/3 6.10]ABAP,
@@ -187,7 +187,7 @@
%<+lua-prf>\ProvidesFile{listings-lua.prf}
%<+python-prf>\ProvidesFile{listings-python.prf}
%<+rexx-prf>\ProvidesFile{listings-rexx.prf}
-%<-config> [2024/05/25 1.10b listings language file]
+%<-config> [2024/09/23 1.10c listings language file]
% \end{macrocode}
%
%
diff --git a/macros/latex/contrib/listings/lstdrvrs.pdf b/macros/latex/contrib/listings/lstdrvrs.pdf
index 0315d2cad2..51d045113b 100644
--- a/macros/latex/contrib/listings/lstdrvrs.pdf
+++ b/macros/latex/contrib/listings/lstdrvrs.pdf
Binary files differ
diff --git a/macros/latex/contrib/litesolution/README.md b/macros/latex/contrib/litesolution/README.md
index f597d5fb09..452c7e9de9 100644
--- a/macros/latex/contrib/litesolution/README.md
+++ b/macros/latex/contrib/litesolution/README.md
@@ -10,7 +10,7 @@ This work may be distributed and/or modified under the conditions of the [LaTeX
This work has the LPPL maintenance status `maintained`.
-The Current Maintainer of this work is [Mingyu Hsia](https://www.ctan.org/author/xia-my).
+The Current Maintainer of this work is [Mingyu XIA](https://www.ctan.org/author/xia-my).
## Derivative Works
diff --git a/macros/latex/contrib/litesolution/doc/figure/universe.pdf b/macros/latex/contrib/litesolution/doc/figure/universe.pdf
index 6ebe5201dc..244c7770a7 100644
--- a/macros/latex/contrib/litesolution/doc/figure/universe.pdf
+++ b/macros/latex/contrib/litesolution/doc/figure/universe.pdf
Binary files differ
diff --git a/macros/latex/contrib/litesolution/doc/figure/universe.tex b/macros/latex/contrib/litesolution/doc/figure/universe.tex
index f2fa69eaab..7cce50ecd2 100644
--- a/macros/latex/contrib/litesolution/doc/figure/universe.tex
+++ b/macros/latex/contrib/litesolution/doc/figure/universe.tex
@@ -5,7 +5,7 @@
\usephysicsmodule{ab.legacy}
\usetikzlibrary{tikzmark}
\tikzset{every node/.style={align=center,DarkSlateGray!30},
- every path/.style={DarkSlateGray!30,line cap=round}}
+ every path/.style={DarkSlateGray!30,line cap=round}}
\begin{document}\tikz{
\node [above right] at (0,0) {$\color{DarkSlateGray!30}
diff --git a/macros/latex/contrib/litesolution/doc/litesolution.pdf b/macros/latex/contrib/litesolution/doc/litesolution.pdf
index 8d9efb2ba3..eb14917941 100644
--- a/macros/latex/contrib/litesolution/doc/litesolution.pdf
+++ b/macros/latex/contrib/litesolution/doc/litesolution.pdf
Binary files differ
diff --git a/macros/latex/contrib/litesolution/doc/litesolution.tex b/macros/latex/contrib/litesolution/doc/litesolution.tex
index 678e4cd4aa..34d82694a2 100644
--- a/macros/latex/contrib/litesolution/doc/litesolution.tex
+++ b/macros/latex/contrib/litesolution/doc/litesolution.tex
@@ -1,17 +1,34 @@
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% * http://www.latex-project.org/lppl.txt *
+%% * either version 1.3c of this license or any later *
+%% * version. *
+%% ******************************************************
\documentclass[mtpro2,twoside,openany]{litesolution}
-
\usepackage[listings]{tcolorbox}
+\usepackage{pmboxdraw}
\lstset{language=[LaTeX]TeX,basicstyle=\small\ttfamily,breaklines=true,columns=flexible}
-\title{\sffamily The \pkg{LiteSolution} Class}
-\subtitle{\sffamily\scshape Hangzhou Dianzi University}
-\bioinfo{Mingyu Hsia (\mailto{xiamyphys@hdu.edu.cn})\quad|\quad\today\quad|\quad Version 2.2b}
-\cover[checkerboard]{schrodinger}\coverhead[3]{universe}
+\coverset{
+ title = \sffamily The \pkg{LiteSolution} Class,
+ subtitle = \sffamily\scshape Hangzhou Dianzi University,
+ bioinfo = Mingyu XIA (\mailto{xiamyphys@gmail.com})\quad|\quad Version 2.4a,
+ covercolor = DarkSeaGreen,
+ coverhead = universe,
+ coverhead.rotate = 3,
+ cover = schrodinger,
+ cover.pattern = sixpointed stars
+}
\begin{document}
-\maketitle[DarkSlateGray]
-\frontmatter\tableofcontents\mainmatter
+\maketitle
+
+\frontmatter
+\tableofcontents
+\mainmatter
+
\chapterimage{\UPFadingImage*[trim={0 {.9\paperheight} 0 0},clip]{Beautiful-realities}}
\chapter{Introduction to the \pkg{LiteSolution} Class}
@@ -20,7 +37,7 @@
This is the document for the \pkg{LiteSolution} class, which is designed for typesetting solutions of problems in exams, textbooks, etc.
-Welcome to feedback bugs or ideas via email \href{mailto:xiamyphys@hdu.edu.cn}{\ttfamily xiamyphys@hdu.edu.cn} or \href{https://github.com/xiamyphys/litesolution}{GitHub}.
+Welcome to feedback bugs or ideas via email \href{mailto:xiamyphys@gmail.com}{\ttfamily xiamyphys@gmail.com} or \href{https://github.com/xiamyphys/litesolution}{GitHub}.
\subsection{Installing \pkg{LiteSolution} and loading it}
@@ -39,18 +56,18 @@ The test environments are macOS + Mac\hologo{TeX} 2024 / Overleaf / Ubuntu 22.04
\section{Global Options of this Class}
\begin{verbatim}
- \documentclass[<options>]{litesolution}
+ \documentclass[⟨options⟩]{litesolution}
\end{verbatim}
\subsection{The \mode{answer} option}
-The \mode{hideanswer} mode can hide contents in \cmd{solution} environment and \cmd{ans} command.
+The \mode{hideanswer} mode can hide contents in the \cmd{solution} environment and \cmd{ans} command, and make the effect of \cmd{emph} weaker.
\subsection{The \mode{math} option}
The \mode{mtpro2}, \mode{newtx} and \mode{newtxsf} modes can format the font of formulas in the document. Please check if mtpro2 font has been installed on your computer correctly before using \mode{mtpro2} mode.
-\section{Related Packages}
+\section{Derivative Works}
\begin{description}
\item[Package \pkg{notebeamer}] provides macros for inputting slides on note papers quickly.
\item[Package \pkg{fadingimage}] provides macros for inputting full width picture at the edges of pages quickly.
@@ -63,27 +80,23 @@ The \mode{mtpro2}, \mode{newtx} and \mode{newtxsf} modes can format the font of
\subsection{The cover page configurations}
\begin{verbatim}
- \title{<content>} \subtitle{<content>}
- \bioinfo{<content>} \cover[<pattern>]{<image>}
- \coverhead[<angle>]{<image>} \coverhead*[<angle>]{<content>}
-
- \begin{document} \maketitle[<color>]
-\end{verbatim}
-
-\begin{verbatim}
- \title{\sffamily The \pkg{LiteSolution} Class}
- \subtitle{\sffamily\scshape Hangzhou Dianzi University}
- \bioinfo{Mingyu Hsia (\mailto{xiamyphys@hdu.edu.cn})
- \quad|\quad\today\quad|\quad Version 2.2b}
- \cover[checkerboard]{schrodinger} \coverhead[5]{universe}
-
- \begin{document} \maketitle[Midnightblue]
+ \coverset{
+ title = \sffamily The \pkg{LiteSolution} Class,
+ subtitle = \sffamily\scshape Hangzhou Dianzi University,
+ bioinfo = Mingyu XIA (\mailto{xiamyphys@gmail.com})\quad|\quad
+ Version 2.4a,
+ covercolor = DarkSeaGreen,
+ coverhead = universe,
+ coverhead.rotate = 3,
+ cover = schrodinger,
+ cover.pattern = sixpointed stars
+ }
\end{verbatim}
\subsection{The chapter head configurations}
\begin{verbatim}
- \chapterimage {<insert image macro>}
+ \chapterimage {⟨insert image macro⟩}
\end{verbatim}
This command can assign the format of the image at every chapters begin and you can adjust the format of the image with the \pkg{fadingimage} package.
@@ -94,24 +107,32 @@ This template has preset many packages. The following packages are the common on
\begin{table}[htbp]
\centering\small
- \begin{tabular}{l l l l l l l l}
+ \begin{tabularx}{.96\linewidth}{*{6}{X}}
\toprule
- \pkg{amsthm} & \pkg{amssymb} & \pkg{bm} & \pkg{booktabs} &
- \pkg{cancel} & \pkg{caption} & \pkg{circuitikz} & \pkg{datetime} \\
+ \pkg{amsthm} & \pkg{amssymb} & \pkg{bm} &
+ \pkg{booktabs} & \pkg{cancel} & \pkg{caption}\\
+ \midrule
+ \pkg{circuitikz} & \pkg{datetime} & \pkg{derivative} &
+ \pkg{diagbox} & \pkg{enumitem} & \pkg{esvect}\\
+ \midrule
+ \pkg{extarrows} & \pkg{fadingimage} & \pkg{fancyhdr} &
+ \pkg{fixdif} & \pkg{fontawesome5}& \pkg{geometry}\\
\midrule
- \pkg{derivative} & \pkg{diagbox} & \pkg{esvect} & \pkg{extarrows} &
- \pkg{fadingimage} & \pkg{fancyhdr} & \pkg{fixdif} & \pkg{fontawesome5} \\
+ \pkg{graphicx} & \pkg{hyperref} & \pkg{indentfirst} &
+ \pkg{lipsum} & \scriptsize\pkg{magicwatermark} & \pkg{mathtools}\\
\midrule
- \pkg{geometry} & \pkg{graphics} & \pkg{graphicx} & \pkg{hyperref} &
- \pkg{indentfirst} & \pkg{lipsum} & \pkg{mathtools} & \pkg{multicol} \\
+ \pkg{mhchem} & \pkg{multicol} & \pkg{multirow} &
+ \pkg{nicematrix} & \pkg{notebeamer} & \pkg{paracol}\\
\midrule
- \pkg{multirow} & \pkg{nicematrix} & \pkg{notebeamer} & \pkg{paracol} &
- \pkg{pgfplots} & \pkg{physics2} & \pkg{qrcode} & \pkg{refstyle} \\
+ \pkg{pgfplots} & \pkg{physics2} & \pkg{qrcode} &
+ \pkg{refstyle} & \pkg{setspace} & \pkg{siunitx}\\
\midrule
- \pkg{setspace} & \pkg{siunitx} & \pkg{tabularx} & \pkg{tasks} &
- \pkg{wallpaper} & \pkg{xcolor} & \pkg{xeCJK} & \pkg{xfrac} \\
+ \pkg{subcaption} & \pkg{tabularx} & \pkg{soul} &
+ \pkg{tasks} & \pkg{ulem} & \pkg{xcolor}\\
+ \midrule
+ \pkg{xeCJK} & \pkg{xeCJKfntef} & \pkg{xfrac}\\
\bottomrule
- \end{tabular}
+ \end{tabularx}
\end{table}
\section{Preset Commands}
@@ -119,7 +140,7 @@ This template has preset many packages. The following packages are the common on
\subsection{The \cmd{ans} command}
\begin{verbatim}
- \ans {<contents>}
+ \ans {⟨contents⟩}
\end{verbatim}
This command can underline the answer, and if mode \mode{noans} is enabled the answer will be hidden.
@@ -127,11 +148,21 @@ This command can underline the answer, and if mode \mode{noans} is enabled the a
\subsection{The \cmd{solute} command}
\begin{verbatim}
- \solute {<number>} \solute* {<contents>}
+ \solute {⟨number⟩} \solute* {⟨contents⟩}
\end{verbatim}
This command can create a fixable answer box when the mode \mode{noans} is enabled.
+\subsection{The \cmd{emph} command}
+
+\begin{verbatim}
+ \emph {⟨content⟩} \emph* {⟨content⟩}
+\end{verbatim}
+
+\emph{The Quick Brown Fox Jumps Over the Lazy Dog: non-hideanswer mode}
+
+\emph*{The Quick Brown Fox Jumps Over the Lazy Dog: hideanswer mode}
+
\subsection{Other preset commands}
\begin{verbatim}
@@ -144,7 +175,7 @@ This command can create a fixable answer box when the mode \mode{noans} is enabl
\subsection{The \cmd{problem} environment}
\begin{tcblisting}{sidebyside,colback=DarkGreen!5,colframe=DarkGreen!80}
-\begin{problem}[<Keywords>]\leavevmode
+\begin{problem}[Keywords]\leavevmode
\begin{tasks}(2)
\task Choice A \task[\true] Choice B
\task Choice C \task Choice D
@@ -167,16 +198,9 @@ This command can create a fixable answer box when the mode \mode{noans} is enabl
\begin{note}
We note that.
\end{note}
-\end{tcblisting}
+\end{tcblisting}
\end{minipage}
-\section{Equation test}
-
-\[\begin{cases}
- \i\hbar\partial_t\psi(\mathbf x,t)=\ab(-\frac{\hbar^2}{2m}\bm\nabla^2+V)\\
- \i\hbar\partial_t\psi(\mathbf x,t)=-(\i\hbar c\bm\alpha\cdot\bm\nabla+\beta mc^2)\psi(\mathbf x,t)
-\end{cases}\]
-
\section*{Original Code for the Cover Head}
\setstretch{1.15}
diff --git a/macros/latex/contrib/litesolution/tex/litesolution.cls b/macros/latex/contrib/litesolution/tex/litesolution.cls
index 0f59d89630..2b7a3ecb34 100644
--- a/macros/latex/contrib/litesolution/tex/litesolution.cls
+++ b/macros/latex/contrib/litesolution/tex/litesolution.cls
@@ -1,5 +1,5 @@
%% ***********************************************************
-%% Copyright 2024 by Mingyu Hsia <xiamyphys@hdu.edu.cn> *
+%% Copyright 2024 by Mingyu XIA <xiamyphys@gmail.com> *
%% *
%% This work may be distributed and/or modified under *
%% the conditions of the LaTeX Project Public License *
@@ -11,19 +11,18 @@
%% *
%% This work has the LPPL maintenance status `maintained'. *
%% *
-%% The Current Maintainer of this work is Mingyu Hsia. *
+%% The Current Maintainer of this work is Mingyu XIA. *
%% *
%% This work consists of the files litesolution.cls, *
%% and README.md. *
-%% available at https://github.com/xiamyphys/litsolution *
+%% available at https://github.com/xiamyphys/litesolution *
%% ***********************************************************
% !Mode:: "TeX:UTF-8"
\NeedsTeXFormat{LaTeX2e}
\PassOptionsToPackage{no-math}{fontspec}
\PassOptionsToPackage{svgnames}{xcolor}
-\ProvidesClass{litesolution}[2024/05/07 v2.2b LiteSolution document class]
-\RequirePackage{kvoptions}
-\RequirePackage{etoolbox}
+\ProvidesClass{litesolution}[2024/08/15 v2.4a LiteSolution document class]
+\RequirePackage{kvoptions,etoolbox,keyval}
\SetupKeyvalOptions{family=LITE, prefix=LITE@, setkeys=\kvsetkeys}
\def\ekv#1{\kvsetkeys{LITE}{#1}}
@@ -39,7 +38,7 @@
\ProcessKeyvalOptions*\relax
\LoadClass[letterpaper,11pt]{book}
-\RequirePackage{setspace,datetime,caption,booktabs,multicol,diagbox,paracol}
+\RequirePackage{setspace,datetime,tabularx,caption,subcaption,anyfontsize,booktabs,multicol,diagbox,paracol}
\linespread{1.3}
\ddmmyyyydate
\captionsetup{labelsep=period,labelfont={bf,sf},font=small}
@@ -52,18 +51,18 @@
\setlist[enumerate]{itemsep=.5ex}
\setlist[itemize]{itemsep=.5ex}
\RequirePackage[notelinecolor=MidnightBlue,notemargin=.75in]{notebeamer}
-\geometry{margin=1in}
+\geometry{margin=1in,headheight=14pt}
\RequirePackage[nokeyprefix]{refstyle}
\newref{eq}{refcmd=(\ref{#1}),name={\sffamily eq.~},Name={\sffamily Eq.~}}
\newref{fig}{name={\sffamily fig.~},Name={\sffamily Fig.~}}
\newref{tab}{name={\sffamily tab.~},Name={\sffamily Tab.~}}
-\RequirePackage{graphics,graphicx,wallpaper,pagecolor}
+\RequirePackage{graphicx,magicwatermark,pagecolor}
\graphicspath{{./figure/}{./figures/}{./image/}{./images/}{./graphics/}{./graphic/}{./pictures/}{./picture/}}
\RequirePackage{ifxetex}
\ifXeTeX
- \RequirePackage[quiet]{xeCJK}
+ \RequirePackage[quiet,CJKmath,CheckSingle,PlainEquation]{xeCJK}
\RequirePackage{zhlipsum}
\setlength{\parindent}{2em}
\fi
@@ -82,8 +81,7 @@
\RequirePackage[mono=false]{libertine}
}{\relax}
\let\openbox\relax\def\hmmax{0}\def\bmmax{0}
-\RequirePackage{amsthm,amssymb,mathtools,physics2,bm,fixdif,derivative,cancel,extarrows,siunitx,xfrac,nicematrix}
-\renewcommand\qedsymbol{$\color{gray}\blacksquare$}
+\RequirePackage{amssymb,mathtools,physics2,bm,fixdif,derivative,cancel,extarrows,siunitx,xfrac,nicematrix}
\usephysicsmodule{ab,braket,diagmat,doubleprod,xmat,ab.legacy,op.legacy}
\RequirePackage[e]{esvect}
\let\vec\vv
@@ -109,6 +107,7 @@
\AddToHook{cmd/faIcon/after}{\endgroup}
\RequirePackage{circuitikz,pgfplots,fadingimage}
+\RequirePackage[version=4]{mhchem}
\usetikzlibrary{arrows,tikzmark,patterns,calc,angles,quotes,intersections}
\tikzset{>=stealth',
every picture/.append style={%
@@ -133,56 +132,77 @@
\def\mode#1{\textcolor{Indigo}{\textsf{#1}}}
\def\cmd#1{\textcolor{MidnightBlue}{\texttt{\string#1}}}
-\def\subtitle#1{\gdef\@subtitle{#1}}
-\def\bioinfo#1{\gdef\@bioinfo{#1}}
-\NewDocumentCommand\coverhead{ O{0} m }{
- \gdef\@coverheadrotate{#1}\gdef\@coverhead{#2}
+\define@key{coverset}{title}{\gdef\@title{#1}}
+\define@key{coverset}{subtitle}{\gdef\@subtitle{#1}}
+\define@key{coverset}{bioinfo}{\gdef\@bioinfo{#1}}
+\define@key{coverset}{covercolor}{\gdef\@covercolor{#1}}
+\define@key{coverset}{coverhead}{\gdef\@coverhead{#1}}
+\define@key{coverset}{coverhead.rotate}{\gdef\@coverheadrotate{#1}}
+\define@key{coverset}{cover}{\gdef\@cover{#1}}
+\define@key{coverset}{cover.pattern}{\gdef\@coverpattern{#1}}
+\def\coverset#1{
+ \setkeys{coverset}{#1}
+ \ifcsname @covercolor\endcsname
+ \relax
+ \else
+ \gdef\@covercolor{DarkSlateGray}
+ \fi
}
-\NewDocumentCommand\cover{ o m }{
- \IfValueT{#1}{\gdef\@coverpattern{#1}}
- \gdef\@cover{#2}}
-\RenewDocumentCommand\maketitle{O{MidnightBlue}}{
+
+\renewcommand*\maketitle{
\begin{titlepage}
- \newgeometry{margin=0in}\newpagecolor{#1!15}
+ \newgeometry{margin=0in}
+ \newpagecolor{\@covercolor!15}
+ \gdef\@covercolor{DarkSlateGray}
\tikz[remember picture,overlay]{
- \ifcsname @coverhead\endcsname
- \node [rotate=\@coverheadrotate] at ($(current page.center)+(0,.35*\paperheight)$) {\includegraphics[width=\paperwidth]{\@coverhead}};
- \fi
\fill [white,opacity=.5] ($(current page.south west)+(.2*\paperwidth,.6*\paperheight)$) rectangle (current page.south east);
\fill [white,opacity=.5] ($(current page.south west)+(.3*\paperwidth,.7*\paperheight)$) rectangle (current page.south east);
- \ifcsname @cover\endcsname
- \node [opacity=.5] at ($(current page.south west)+(.65*\paperwidth,.3*\paperheight)$) {\includegraphics[height=.3\paperheight]{\@cover}};
- \ifcsname @coverpattern\endcsname
- \fill [pattern=\@coverpattern,pattern color=#1!15!white!25] ($(current page.south west)+(.3*\paperwidth,0)$) rectangle ++ (.7*\paperwidth,.6\paperheight);
- \fi\fi
\node [darkgray] at ($(current page.south west)+(.65*\paperwidth,.65*\paperheight)$) {\Huge\bfseries\@title};
\ifcsname @subtitle\endcsname
\node [rotate=90,gray,opacity=.6] at ($(current page.south west)+(.25*\paperwidth,.3*\paperheight)$) {\huge\bfseries\@subtitle};
\fi
\ifcsname @bioinfo\endcsname
\node [gray,opacity=.4] at ($(current page.south)+(.15*\paperwidth,.075*\paperheight)$) {\large\@bioinfo};
- \fi}
+ \fi
+ \ifcsname @coverhead\endcsname
+ \ifcsname @coverheadrotate\endcsname
+ \relax
+ \else
+ \gdef\@coverheadrotate{0}
+ \fi
+ \node [rotate=\@coverheadrotate] at ($(current page.center)+(0,.35*\paperheight)$) {\includegraphics[width=\paperwidth]{\@coverhead}};
+ \fi
+ \ifcsname @cover\endcsname
+ \node (@cover) at ($(current page.south west)+(.65*\paperwidth,.3*\paperheight)$) {\includegraphics[height=.3\paperheight]{\@cover}};
+ \ifcsname @coverpattern\endcsname
+ \fill [scope fading=south,pattern=\@coverpattern,pattern color=\@covercolor!15!white!25] (@cover.south west) rectangle (@cover.north east);
+ \fi\fi}
\end{titlepage}
- \restoregeometry\restorepagecolor
+ \restoregeometry
+ \restorepagecolor
\if@twoside
\clearpage%
- \newpagecolor{#1!15!white!50}
+ \newpagecolor{\@covercolor!15!white!25}
\thispagestyle{empty}%
\null\clearpage
- \fi\restorepagecolor
+ \fi
+ \restorepagecolor
}
\RequirePackage{tocloft}
\setlength{\cftbeforetoctitleskip}{6\p@}
\setlength{\cftaftertoctitleskip}{24\p@}
-\setlength{\cftbeforesecskip}{3\p@}
-\def\contentsname{\sffamily\scshape\hfill Contents\hfill}
+\AddToHook{cmd/tableofcontents/before}{
+ \begingroup
+ \setstretch{1.5}
+}
+\AddToHook{cmd/tableofcontents/after}{\endgroup}
+\renewcommand\contentsname{\sffamily\scshape Contents}
\setcounter{tocdepth}{1}
\let\@chapapptmp\@chapapp
-\def\@chapapp{\textsc{\@chapapptmp}}
+\gdef\@chapapp{\textsc{\@chapapptmp}}
\def\chapterimage#1{\gdef\@chapterimage{#1}}
-\def\HUGE{\@setfontsize\HUGE{30}{40}}
\def\@makechapterhead#1{%
\def\thesection{\arabic{chapter}.\arabic{section}}
\def\theproblem{\thechapter.\arabic{problem}}
@@ -194,8 +214,8 @@
\fi
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
- \parbox{6em}
- {\centering\HUGE\normalfont\bfseries\textcolor{darkgray}\thechapter\vskip4\p@\normalsize\bfseries\textcolor{darkgray}{\bfseries\sffamily\@chapapp}}%
+ \parbox{6em}
+ {\centering\@setfontsize\HUGE{30}{40}\normalfont\bfseries\textcolor{darkgray}\thechapter\vskip4\p@\normalsize\bfseries\textcolor{darkgray}{\bfseries\sffamily\@chapapp}}%
\fi
\fi
\interlinepenalty\@M\hspace*{3ex}
@@ -203,20 +223,20 @@
\vskip 36\p@
}}
\def\@makeschapterhead#1{%
- \def\thesection{\arabic{section}}
- \def\theproblem{\arabic{problem}}
- \setcounter{section}{0}
- \setcounter{problem}{0}
- {\centering
- \ifcsname @chapterimage\endcsname
- \@chapterimage
- \fi\vskip-40\p@
- \parindent \z@ \normalfont
- \interlinepenalty\@M
- \huge \bfseries #1\par\nobreak
- \vskip 28\p@}}
+\def\thesection{\arabic{section}}
+\def\theproblem{\arabic{problem}}
+\setcounter{section}{0}
+\setcounter{problem}{0}
+{\centering
+\ifcsname @chapterimage\endcsname
+ \@chapterimage
+\fi\vskip-40\p@
+ \parindent \z@ \normalfont
+ \interlinepenalty\@M
+ \huge \bfseries #1\par\nobreak
+ \vskip 28\p@}}
\let\cleardoublepage=\clearpage
-\renewcommand*{\cleardoublepage}{\clearpage\if@twoside \ifodd\c@page\else
+\renewcommand*\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
\ifnum \thechapter=0
\vspace*{\fill}
{\centering\itshape\Large This page was intentionally left blank.\par}
@@ -231,27 +251,38 @@
\RequirePackage{fancyhdr}
\pagestyle{fancy}
- \let\oldheadrule\headrule
- \renewcommand{\headrule}{{\color{gray}\oldheadrule}}
- \renewcommand{\headrulewidth}{1pt}
- \if@twoside\cfoot{}
- \fancyhead[OL]{\color{darkgray}\nouppercase\leftmark}
- \fancyhead[OR]{\color{darkgray}\sffamily\thepage}
- \fancyhead[ER]{\color{darkgray}\nouppercase\rightmark}
- \fancyhead[EL]{\color{darkgray}\sffamily\thepage}
- \else
- \fancyhead[L]{\color{darkgray}\nouppercase\leftmark}
- \fancyhead[R]{\color{darkgray}\nouppercase\rightmark}
- \cfoot{\color{darkgray}\sffamily\thepage}
- \fi
- \setlength{\headheight}{14pt}
+\let\oldheadrule\headrule
+\renewcommand{\headrule}{{\color{gray}\oldheadrule}}
+\renewcommand{\headrulewidth}{1pt}
+\fancyfoot[L]{\footnotesize\fbox{Unauthorized copying or reuse of any part of this page is illegal}}
+\fancyfoot[OR]{\sffamily\bfseries GO ON TO THE NEXT PAGE}
+\if@twoside\cfoot{}
+ \fancyhead[OL]{\color{darkgray}\nouppercase\leftmark}
+ \fancyhead[OR]{\color{darkgray}\sffamily\thepage}
+ \fancyhead[ER]{\color{darkgray}\nouppercase\rightmark}
+ \fancyhead[EL]{\color{darkgray}\sffamily\thepage}
+\else
+ \fancyhead[L]{\color{darkgray}\nouppercase\leftmark}
+ \fancyhead[R]{\color{darkgray}\nouppercase\rightmark}
+ \cfoot{\color{darkgray}\sffamily\thepage}
+\fi
+\RequirePackage{amsthm}
+\renewcommand\qedsymbol{$\color{gray}\blacksquare$}
\theoremstyle{definition}
\newtheorem{problem}{\color{DarkGreen}\faIcon{pen-square}~\textsc{\textsf{Problem}}}[chapter]
\newtheorem*{solution}{\color{MidnightBlue}\faIcon{check-square}~\textsc{\textsf{Solution}}}
\newtheorem*{scratch}{\color{MidnightBlue}\faIcon{check-square}~\textsc{\textsf{Scratch}}}
\newtheorem*{note}{\color{DarkRed}\faIcon{info-circle}~\textsc{\textsf{Note}}}
-\RequirePackage{comment}
+\RequirePackage{comment,ulem,soul}
+\ifxetex
+ \RequirePackage{xeCJKfntef}
+ \def\@emph#1{\CJKsout*[thickness=2.5ex, format=\color{\@covercolor!15}]{#1}}
+ \def\s@emph#1{\CJKunderwave{#1}}
+\else
+ \def\@emph#1{\sethlcolor{\@covercolor!15}\hl{#1}}
+ \def\s@emph#1{\uwave{#1}}
+\fi
\ifdefstring{\LITE@answer}{hideanswer}{%
\def\ans#1{\underline{\phantom{#1}}}
\def\choiceans#1{\phantom{#1}}
@@ -261,6 +292,7 @@
\excludecomment{solution}\excludecomment{note}
\let\endsolution\relax\let\endnote\relax}
\def\true{\addtocounter{task}{1}\thetask}
+ \DeclareRobustCommand\emph{\@ifstar\s@emph\s@emph}
}{
\def\ans#1{\underline{~#1~}}
\def\s@solute#1{\relax}\def\@solute#1{\relax}
@@ -268,6 +300,7 @@
\excludecomment{scratch}
\let\endscratch\relax}
\def\true{\addtocounter{task}{1}\faIcon{check-circle}}
+ \DeclareRobustCommand\emph{\@ifstar\s@emph\@emph}
}
\DeclareRobustCommand\solute{\@ifstar\s@solute\@solute}
%%
diff --git a/macros/latex/contrib/litetable/README.md b/macros/latex/contrib/litetable/README.md
index 146ccaf19b..f09ce486fb 100644
--- a/macros/latex/contrib/litetable/README.md
+++ b/macros/latex/contrib/litetable/README.md
@@ -1,17 +1,13 @@
-# The `LiteTable` document
+# The `litetable` class
-This template provides a beautiful design of class schedule with colorful course blocks.
+This class provides a beautiful design of timetable with colorful course blocks.
-**Welcome to pull requests
-[here](https://github.com/xiamyphys/LiteTable).**
+**Welcome to pull requests [here](https://github.com/xiamyphys/litetable).**
## License
-This work may be distributed and/or modified under the conditions of the
-[LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-either version 1.3c of this license or (at your option) any later version.
+This work may be distributed and/or modified under the conditions of the [LaTeX Project Public License](http://www.latex-project.org/lppl.txt), either version 1.3c of this license or (at your option) any later version.
This work has the LPPL maintenance status `maintained`.
-The Current Maintainer of this work is
-[Mingyu Xia](https://www.ctan.org/author/xia-my). \ No newline at end of file
+The Current Maintainers of this work are [Mingyu Xia](https://www.ctan.org/author/xia-my) and [Lijun Guo](https://ctan.org/author/guo). \ No newline at end of file
diff --git a/macros/latex/contrib/litetable/doc/favicon.png b/macros/latex/contrib/litetable/doc/favicon.png
deleted file mode 100644
index 4e105b2ce0..0000000000
--- a/macros/latex/contrib/litetable/doc/favicon.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/litetable/doc/litetable-cn.pdf b/macros/latex/contrib/litetable/doc/litetable-cn.pdf
index 6e91dd6280..ef997cdccc 100644
--- a/macros/latex/contrib/litetable/doc/litetable-cn.pdf
+++ b/macros/latex/contrib/litetable/doc/litetable-cn.pdf
Binary files differ
diff --git a/macros/latex/contrib/litetable/doc/litetable-cn.tex b/macros/latex/contrib/litetable/doc/litetable-cn.tex
index cf2cc129ad..61bea4cb28 100644
--- a/macros/latex/contrib/litetable/doc/litetable-cn.tex
+++ b/macros/latex/contrib/litetable/doc/litetable-cn.tex
@@ -1,302 +1,143 @@
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * http://www.latex-project.org/lppl.txt *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-\PassOptionsToPackage{quiet}{xeCJK}
-\PassOptionsToPackage{quiet, no-math}{fontspec}
-\documentclass[11pt]{article}
-\usepackage{geometry,pdfpages,caption,indentfirst,setspace,xeCJK}
-\captionsetup[table]{name={\textsc{Table}},labelsep=period}
-\usepackage[level]{datetime}
-\usepackage{authblk,xltxtra,bigfoot,enumitem}
-\usepackage{booktabs,diagbox,ragged2e,tabularx}
-\renewcommand\tabularxcolumn[1]{>{\Centering}m{#1}}
-\usepackage[toc]{multitoc}
-\usepackage[mono=false]{libertine}
-\setstretch{1.15}
-\setCJKmainfont{Chiron Sung HK}
-[BoldFont=Chiron Sung HK Bold,
- ItalicFont=Kaiti SC]
-\usepackage{hyperref,xcolor,tikz}
-\hypersetup{colorlinks,urlcolor=H6,linkcolor=H2,filecolor=filecolor,pdfstartview=FitH,pdfview=FitH,pdfcreator=XeTeX output}
-\definecolor{pkgcolor}{Hsb}{103,.8,.5}
-\definecolor{moducolor}{Hsb}{290,.8,.5}
-\definecolor{cmdcolor}{Hsb}{188,.8,.5}
-\definecolor{filecolor}{Hsb}{207,.6,.7}
-\definecolor{H1}{Hsb}{349,.8,.8} % 海棠紅 (Hangzhou MTR L 1 )
-\definecolor{H2}{Hsb}{23, .8,.8} % 丹桂橙 (Hangzhou Metro 2 )
-\definecolor{H3}{Hsb}{48, .8,.8} % 柠檬黄 (Hangzhou Metro 3 )
-\definecolor{H4}{Hsb}{103,.8,.8} % 香樟绿 (Hangzhou Metro 4 )
-\definecolor{H5}{Hsb}{188,.8,.8} % 青藍色 (Hangzhou MTR L 5 )
-\definecolor{H6}{Hsb}{207,.8,.8} % 海洋蓝 (Hangzhou Metro 6 )
-\definecolor{H7}{Hsb}{290,.8,.8} % 浪漫紫 (Hangzhou Metro 7 )
-\definecolor{W1}{HTML}{CCAD52}
-\definecolor{W2}{HTML}{8FCC52}
-\definecolor{W3}{HTML}{52CC70}
-\definecolor{W4}{HTML}{52CCCC}
-\definecolor{W5}{HTML}{5270CC}
-\definecolor{W6}{HTML}{8F52CC}
-\definecolor{W7}{HTML}{CC52AD}
-\def\pkg#1{\texorpdfstring{\textcolor{pkgcolor}{\textsf{#1}}}{“#1”}}
-\def\mode#1{\texorpdfstring{\textcolor{moducolor}{\textsf{#1}}}{“#1”}}
-\def\cmd#1{\texorpdfstring{\textcolor{cmdcolor}{\textsf{#1}}}{“#1”}}
-\def\datechange#1#2{%
- \noindent{\makebox[\textwidth][r]{\color{H7}\rule{1.15\textwidth}{.4pt}}}
- \noindent\makebox[0pt][r]{\makebox[-3em][r]{\small\textbf{\textcolor{H7}{#1}}}\;\;}{\sffamily Update: \ignorespaces#2}}
-
-\title{\bfseries\pkg{LiteTable} -- 多彩的课程表\textsf{\LaTeX} 模板}
-\author{\href{https://www.hdu.edu.cn}{杭州电子科技大学}, 夏明宇}
-\yyyymmdddate
-\date{\today}
-\affil{\href{mailto:xiamyphys@gmail.com}{\texttt{xiamyphys@gmail.com}}}
-\date{\today\quad Version 2.4c\thanks{%
- \url{https://github.com/xiamyphys/litetable}}}
+\documentclass[letterpaper]{l3doc}
+
+\hypersetup{urlcolor = teal, filecolor = violet}
+\usepackage[mono = false]{libertine}
+\usepackage{pdfpages,hologo,framed}
+\hologoFontSetup{general = \sffamily}
+\FrameSep = 0pt
+\usepackage[fontset = none]{ctex}
+\setCJKmainfont[BoldFont = *-Bold]{LXGW WenKai}
+\setCJKsansfont[BoldFont = *-Bold]{LXGW WenKai}
+\setCJKmonofont[BoldFont = *-Bold]{LXGW WenKai}
+\usepackage[os = mac]{menukeys}
+\AddToHook{env/function/before}{\vspace{-.3\baselineskip}}
+\AddToHook{env/syntax/after}{\vspace{-.2\baselineskip}}
+
+\title
+{
+ \bfseries\cls{litetable} 文档类:多彩的课程表
+ \thanks{\url{https://github.com/xiamyphys/litetable}}
+}
+\author
+{
+ 夏明宇 \texttt{<\href{mailto:xiamyphys@gmail.com}{xiamyphys@gmail.com}>}
+ \thanks{\href{https://github.com/ljguo1020}{郭李军}开发了读取 \meta{left} -> \meta{right} 型数据结构模块和低版本 \hologo{TeX} Live 兼容模块.}
+}
+\date{Version 3.1B, \today}
+
\begin{document}
+
\maketitle
-\vspace{-2em}
-\begin{abstract}
-\pkg{LiteTable} 模板提供了一个多彩的课程表设计,本文档为 \pkg{LiteTable} 模板的说明文档.
-\end{abstract}
+\section{介绍}
-\tableofcontents
+\cls{litetable} 文档类提供了一个多彩的课程表设计,基于 \cls{article} 文档类,由 \pkg{expl3} 和 \pkg{tikz} 构建. 兼容发行版 \hologo{TeX} Live 2019 及更高版本,在 \hologo{pdfLaTeX} 和 \hologo{XeLaTeX} 编译器下均可正常运行. 本文档为 \cls{litetable} 文档类的中文用户手册,手册同时有\href{./litetable-en.pdf}{英文}和\href{./litetable-hk.pdf}{粤语}版本\footnote{\href{https://qm.qq.com/q/RyssAhG4qy}{QQ Group: 760570712}}.
-\clearpage
+\section{载入 \cls{litetable} 并生成课程表框架}
-\section{Introduction}
+同加载其他文档类一样,只需写下
-\subsection{本模板的目的}
-本模板提供了一个多彩的课程表设计. 如果在使用本模板时遇到问题或有更好的建议,或者你想参与本模板或本人其他模板的开发,欢迎通过邮件 \href{mailto:xiamyphys@gmail.com}{xiamyphys@gmail.com} 联络我.
-
-同样,你也可以加入我的\textsf\LaTeX{} 技術交流群 \href{https://qm.qq.com/q/OnHzbNvVAG}{QQ Group: 760570712} 与我交流,来获取模板的内测版本.
-
-\subsection{所需宏集}
-本模板基于 \pkg{standalone} 文档类开发. 其需要 \pkg{tikz} 宏集去绘制图形,\pkg{kvoptions} 和 \pkg{etoolbox} 宏集用于提供全局模式,\pkg{expl3}\footnote{请使用 2023/10/10 及以后版本的 \pkg{expl3} 宏集以支持 e-type 变量展开: \verb|\clist_count:e|} 宏集用于支持数组,\pkg{ctex}宏集用于支持中文语言,\pkg{fontawesome5} 宏集提供一系列精美的图标.
-
-\subsection{安装并载入 \pkg{LiteTable} 模板}
-免安装使用方法如下,从 \href{https://github.com/xiamyphys/LiteTable}{GitHub} 或 \href{https://ctan.org/pkg/litetable}{CTAN} 下载最新的 \verb|litetable.cls| 文件并将它保存至你的项目根目录. 这种安装方式是最便捷的,但是当模板更新后,你需要手动替换 \verb|.cls| 文件.
-
-然而我强烈建议您使用终端机去执行以下命令,以将所有宏集更新到最新版本,并安装此模板
-\begin{verbatim}
- sudo tlmgr update --self --all
-\end{verbatim}
-
-如果您所在的地区存在网路封锁(如 GFW 干扰),你可以选择合适的镜像网站或其他方法\footnote{请遵守当地的网路条例.}. 欲详细了解,请前往 \href{https://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution}{How do I update my \textsf{\TeX} distribution?}
-
-本模板提供了两个选项:\mode{direction} 和 \mode{font}. 将你要使用的选项模式添加在 \verb|.tex| 文件中命令 \verb|\documentclass[ ]{litetable}| 的方括号中即可.
-
-\subsection{兼容性}
-所使用的测试环境为 macOS + MacTeX 2023 / Overleaf,都可在 \XeLaTeX{} 编译方式下顺利运行, Windows, Linux 和 Unix 平台兼容性未知.
-
-此模板在 macOS 平台开发,使用 ``Heiti SC'' 字体. 如果你未安装此字体,请在命令 \verb|\documentclass{litetable}| 后使用命令 \verb|\setCJKfamilyfont{zhhei}{ }| 将 ``Heiti SC'' 替换为电脑中存在的字体.
-
-\section{\pkg{LiteTable} 的全局选项}
-\begin{verbatim}
- \documentclass[options]{litetable}
-\end{verbatim}
-
-\subsection{\mode{direction} 选项}
-此选项有两个模式,\mode{portrait} 和 \mode{landscape}, 可使课程表纵向或横向显示,默认为纵向.
-
-\subsection{\mode{font} 选项}
-此选项有两个模式,\mode{times} 和 \mode{libertinus},可使字体为 ``Times New Roman'' 或 ``Libertinus'',默认为 ``Times New Roman''\footnote{使用 \mode{libertinus} 模式时请确保已安装该字体.}.
-
-\section{\pkg{LiteTable} 的命令}
-
-\subsection{\cmd{makeframe} 命令}
-\begin{verbatim}
- \makeframe[Sem 6]{Axia's Timetable}
-\end{verbatim}
-
-此命令有两个参数,用于建立空白课程表. 第二个参数用于设置标题,第一个可选参数用于在标题右侧添加可跳转至第二页的学期按钮.
-
-\subsection{\cmd{weeklist} 命令}
-\begin{verbatim}
- \weeklist{
- \textcolor{W1}{星期一}, \textcolor{W2}{星期二},
- \textcolor{W3}{星期三}, \textcolor{W4}{星期四},
- \textcolor{W5}{星期五}, \textcolor{W6}{星期六};
- 0,.175,.35,.525,.7,.875,1
- }
-\end{verbatim}
-
-\begin{figure}[!ht]
- \centering
- \tikz
- {
- \tikzset{every node/.style={font=\footnotesize}}
- \draw [thick,->,>=stealth] ({-1/16*5.1 in},0) -- (5.1 in,0);
- \draw ({-5.10 in/16},-.1) --++ (0,.2) node [above] {\verb|-1/15|};
- \draw ({0.00*5.1 in},-.1) --++ (0,.2) node [above] {\verb|0|};
- \draw ({.175*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.175|};
- \draw ({.350*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.35|};
- \draw ({.525*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.525|};
- \draw ({.700*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.7|};
- \draw ({.875*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.875|};
- \draw ({1.00*5.1 in},-.1) --++ (0,.2) node [above] {\verb|1|};
- \node [above] at ({.0875*5.1 in},0) {\textcolor{W1}{星期一}};
- \node [above] at ({.2625*5.1 in},0) {\textcolor{W2}{星期二}};
- \node [above] at ({.4375*5.1 in},0) {\textcolor{W3}{星期三}};
- \node [above] at ({.6125*5.1 in},0) {\textcolor{W4}{星期四}};
- \node [above] at ({.7875*5.1 in},0) {\textcolor{W5}{星期五}};
- \node [above] at ({.9375*5.1 in},0) {\textcolor{W6}{星期六}};
- }
- \caption*{命令 \cmd{weeklist} 中的第二行数组与坐标相对应.}
-\end{figure}
-
-此命令可在课程表顶部添加工作日,你可以自由决定显示样式,甚至是前面的 logo. 你可以自定义课程表中每一列的宽度,如图所示. 课程表可根据你输入的时间组数自动生成相应的列数. 如上方代码共有 5 个工作日,就会生成 5 列的课程表.
-
-\subsection{\cmd{timelist} 命令}
-\begin{verbatim}
- \timelist [13] {%
- 8:05,8:55,10:00,10:50,11:40,13:30,14:20,15:15,16:05,18:30,19:20,20:10;
- 8:50,9:40,10:45,11:35,12:25,14:15,15:05,16:00,16:50,19:15,20:05,20:55
- }
- \timelist [13] {}
-\end{verbatim}
-
-命令 \cmd{timelist} 有两个参数,第二个参数 \cmd{\ttfamily\{\#2\}} 可将时间添加至课程表的左侧,内容的第一行是每节课程开始时间,第二行是每节课程的结束时间,时间之间用逗号(\verb|,|)分隔,行之间用分号(\verb|;|)分隔.
-
-课程表可根据你输入的时间组数自动生成相应的行数. 如上方代码共有 12 组时间,就会生成 12 行的课程表.
-
-第一个可选参数 \cmd{\ttfamily[\#1]} 可直接指定课程表上你想要生成的行数并不会在课程表左侧添加时间,左侧只会有一列\emph{在每行竖直居中}的序号.
-
-\begin{table}[!ht]
-\centering
-\caption{两个参数的使用情况.}
-
-\begin{tabularx}{\textwidth}{c >{\raggedright\arraybackslash}X >{\raggedright\arraybackslash}X}
- \toprule
- \diagbox{\cmd{\ttfamily[\#1]}}{\cmd{\ttfamily\{\#2\}}} & \multicolumn{1}{c}{使用} & \multicolumn{1}{c}{不使用}\\
- \midrule
- 使用 &
- 效果和 \cmd{\ttfamily\{\#2\}} 描述相同,但生成行数由 \cmd{\ttfamily[\#1]} 决定 &
- 效果和命令 \cmd{\ttfamily[\#1]} 描述相同\\
- \midrule
- 不使用 &
- 效果和命令 \cmd{\ttfamily\{\#2\}} 描述相同 &
- 效果和命令 \cmd{\ttfamily[\#1]} 描述相同\newline\emph{并默认生成 12 行}.\\
- \bottomrule
-\end{tabularx}
-\end{table}
-
-如果你要只使用第一个参数 \cmd{\ttfamily[\#1]},那么请不要在第二个参数 \cmd{\ttfamily\{\#2\}} 中添加任何东西.
-
-\begin{itemize}
- \item 若参数 \cmd{\ttfamily\{\#2\}} 中有 12 组时间,参数 \cmd{\ttfamily[\#1]} 传递的数值为 14,那么课程表的左侧会只有 1 -- 12 行有时间标注,最后两行没有时间标注但最后两行的标号仍然偏上方,并不会竖直对齐.
- \item 若命令 \cmd{\ttfamily\{\#2\}} 中有 14 组时间,参数 \cmd{\ttfamily[\#1]} 传递的数值为 12,那么只会生成 12 行的课程表并且左侧均有时间标注,也就是在参数 \cmd{\ttfamily\{\#2\}} 中输入的最后两组时间无效.
-\end{itemize}
-
-\subsection{\cmd{weeks} 命令}
-\begin{verbatim}
- \weeks{Week 1 -- 16}
-\end{verbatim}
-
-此命令可指定命令 \cmd{course} 第 7 个参数的默认值.
-
-\subsection{\cmd{course} 命令}
-\begin{verbatim}
- \course[H1]{8}{9}{群论}{第6教研楼 · 中211}{Li Ge}[Week 1 -- 16]
-\end{verbatim}
-
-此命令共有7个参数.
-\begin{itemize}
- \item 第 1 个为课程块的颜色,从 ``H1'' 到 ``H9'' 供选择,此参数是可选参数,默认为 ``H1''.
- \item 第 2 -- 6 个为课程的起始节数和结束节数、名称,地址和教师的名字.
- \item 第 7 个为课程的首末周,此参数是可选参数,默认值由命令 \cmd{weeks} 指定,若未指定则默认值为 ``Week 1 -- 12''.
-\end{itemize}
-
-\subsection{\cmd{corner} 命令}
-\begin{verbatim}
- \corner{6 pt}
-\end{verbatim}
-
-此命令可决定课程块的圆角半径.
-
-\subsection{\cmd{newday} 命令}
-此命令可切换当前日到第二天,此时课程块会右移一格.
-
-\subsection{\cmd{more} 命令}
-\begin{verbatim}
- \more{· School Start: 04 / 03 / 2024 · Summer Vacation: 05 / 07 / 2024}
-\end{verbatim}
-
-此命令可在课程表末尾添加备注信息.
-
-\subsection{\cmd{sticker} 命令}
-\begin{verbatim}
- \sticker{favicon}
-\end{verbatim}
-
-在使用此命令后页面的右下方会添加一张贴纸.
-
-\section{版本历史}
-
-课程表的设计源于\href{https://www.hdu.edu.cn}{杭州电子科技大学}杭电助手学生课表页面(仅本校师生可访问). 页面排版十分精美,于是本人使用 \textsf{\LaTeX{}} 复刻出了课程表样式,并制作成模板分享给大家.
-
-\textsf{\bfseries Version 1.0} 于01/09/2023完成开发,并发布在 \href{https://www.latexstudio.net/index/details/index/mid/3625.html}{\textsf{\LaTeX}工作室} (杭州萧山)上,赢得了许多人的喜爱.
-\clearpage
-\setlist[itemize]{noitemsep, topsep=0pt}
-\datechange{2023/11/01}{Version 2.0a}
-\begin{itemize}
- \item 支持课程块显示为圆角或直角.
- \item 支持一个 \verb|.tex| 文件中生成多张课表.
-\end{itemize}
-
-\datechange{2023/11/05}{Version 2.1a}
-\begin{itemize}
- \item 支持 libertinus 字体.
-\end{itemize}
-
-\datechange{2024/01/31}{Version 2.2a}
-\begin{itemize}
- \item 修复了分辨率超出的 bug.
- \item 更改纸张类型为美国信纸.
- \item 支持自定义课程起始和结束时间.
- \item 支持在页面右下角添加一个你喜欢的小贴纸.
- \item 提供简体中文说明文档.
-\end{itemize}
-\setstretch{1}
-\datechange{2024/02/02}{Version 2.3a}
-\begin{itemize}
- \item 支持根据所输入的时间组数自动生成相应的行数.
- \item 课程表可纵向或横向显示.
-\end{itemize}
-
-\datechange{2024/02/03}{Version 2.3b}
-\begin{itemize}
- \item 优化坐标计算,提升编译速度.
-\end{itemize}
-
-\datechange{2024/02/24}{Version 2.4a}
-\begin{itemize}
- \item 支持自定义工作日显示样式.
- \item 支持隐藏时间,仅显示竖直对齐课程序号.
- \item 支持设置默认首末周.
-\end{itemize}
-
-\datechange{2024/03/01}{Version 2.4b}
-\begin{itemize}
- \item 修复了在 \mode{landscape} 模式中添加超过 7 个工作日时 \emph{分辨率溢出}的错误.
- \item 支持自定义课程表中每一列的宽度.
- \item 优化圆角设计,支持自定义圆角半径.
- \item 感谢 @egreg 在 \TeX{} Exchange 上提供的 \href{https://tex.stackexchange.com/a/711657/299948}{输出数组中每一列元素个数} 的代码方案.
-\end{itemize}
-
-\datechange{\today}{Version 2.4c}
-\begin{itemize}
- \item 支持在标题右侧添加学期按钮.
-\end{itemize}
+\begin{framed}
+ \begin{verbatim}
+ \documentclass{litetable}
+ \end{verbatim}
+\end{framed}
+
+如需输入中文,可自行载入 \pkg{ctex} 宏包并设置字体.
+
+\begin{function}{\timelist,\weeklist}
+ \begin{syntax}
+ \cs{timelist}\oarg{rows}\marg{time list} \cs{timelist}\marg{time list}\oarg{rows}
+ \cs{weeklist}\oarg{default weeks}\marg{week list} \cs{weeklist}\marg{week list}\oarg{default weeks}
+ \end{syntax}
+
+ 命令 \cs{timelist} 的可选参数可强制设定课程表的行数,命令 \cs{weeklist} 的可选参数可设定默认的星期数目并会在每个课程盒子的右下角显示. 两个命令的强制参数均接收数组,可分别在课程表的左侧添加时间列表、在课程表的顶部添加对应宽度比例的工作日. 输入数组的用例见Appendix \ref{mwe}.
+
+ 若命令 \cs{timelist} 中时间数组数大于强制设定的行数,则多余的时间数组将被忽略,并返回一个警告. 如果只需在课程表左侧添加一列序号,使强制参数为空即可.
+\end{function}
+
+\begin{function}{\more}
+ \begin{syntax}
+ \cs{more}\marg{comment}
+ \end{syntax}
+
+ 此命令可在页面的右下角添加备注.
+\end{function}
+
+\begin{function}{\maketable}
+ \begin{syntax}
+ \cs{maketable}\oarg{keyvals}\marg{title}\oarg{keyvals}
+ \end{syntax}
+
+ 此命令可生成一个空白的课程表框架,需在命令 \cs{timelist},\cs{weeklist} 和 \cs{more} 后,并在带有 \cmd{[remember picture, overaly]} 选项的 \env{tikz} 环境中执行. 可选参数接收键 \keys{\cmdmac~color} \keys{\cmdmac~sem},可分别在设置课程表框架的背景色和在页面的右上角添加学期,键 \keys{\cmdmac~color} 的默认值为 \cmd{gray}. 强制参数可设定标题.
+\end{function}
+
+\section{添加课程盒子}
+
+\begin{function}{\course}
+ \begin{syntax}
+ \cs{course}\oarg{keyvals}\marg{start number}\oarg{keyvals}\marg{end number}\oarg{keyvals}
+ \end{syntax}
+ \cs{course} 命令可在当前工作日添加课程盒子,需在命令 \cs{maketable} 后,并在带有 \cmd{[remember picture, overaly]} 选项的 \env{tikz} 环境中执行.
+
+ 此命令的可选参数接收下列键:\keys{\cmdmac~color} \keys{\cmdmac~subject} \keys{\cmdmac~location} \keys{\cmdmac~teacher} \keys{\cmdmac~weeks}. 键 \keys{\cmdmac~color} 默认值为 \cmd{teal},键 \keys{\cmdmac~weeks} 默认值由命令 \cs{weeklist} 的可选参数设定. 第一个和第二个强制参数分别为课程的开始和结束序号. 命令的用例见Appendix \ref{mwe}.
+
+ \begin{itemize}
+ \item 若课程盒子的高度只有一格,即$\meta{start number} = \meta{end number}$,则键 \keys{\cmdmac~location} 和 \keys{\cmdmac~teacher} 的值将输出在同一行并以逗号 (,) 间隔,键 \keys{\cmdmac~weeks} 的值将会隐藏.
+ \item 若键 \keys{\cmdmac~location} 和 \keys{\cmdmac~teacher} 均未赋值,则键 \keys{\cmdmac~subject} 的值将输出在课程盒子中心.
+ \item 超出课程表工作日范围的课程盒子将不会显示,并返回一条警告.
+ \end{itemize}
+\end{function}
+
+\begin{function}{\newday}
+ \begin{syntax}
+ \cs{newday}\oarg{integral value}
+ \end{syntax}
+
+ 此命令可使其后面添加的课程盒子后移 \meta{intergal value} 个工作日. 可选参数的默认值为 \cmd{1},即后移 \cmd{1} 个工作日.
+\end{function}
+
+\clearpage
\appendix
-\includepdf[pages={1,3}]{litetable-demo.pdf}
-\includepdf[pages={2,4},nup=1x2,pagecommand={
- \tikz[remember picture, overlay]
- \node [rotate=90,below,yshift=-1em] at (current page.west) {\bfseries\LARGE Document Example: \texttt{litetable-demo.tex}};
- }
-]{litetable-demo.pdf}
-
-\end{document} \ No newline at end of file
+
+\section{最小工作示例}\label{mwe}
+
+此MWE生成的课程表有13行但是只有前12行标注时间,课程表顶部共有5个工作日,工作日之间的宽度比例为$4:5:4:6:5$,键 \keys{\cmdmac~weeks} 的默认值被赋为 \cmd{Weeks 1 - 16}. 添加了注释和两个课程盒子.
+
+\begin{framed}
+ \begin{verbatim}
+ \documentclass{litetable}
+
+ \begin{document}
+
+ \timelist[13]
+ {
+ 08:05 -> 08:50, 08:55 -> 09:40, 10:00 -> 10:45, 10:50 -> 11:35,
+ 11:40 -> 12:25, 13:30 -> 14:15, 14:20 -> 15:05, 15:15 -> 16:00,
+ 16:05 -> 16:50, 18:30 -> 19:15, 19:20 -> 20:05, 20:10 -> 20:55
+ }
+ \weeklist[Weeks 1 - 16]
+ {
+ Mon -> 4, Tue -> 5, Wed -> 4, Thu -> 6, Fri -> 5
+ }
+ \more{Author: Mingyu Xia \& Lijun Guo}
+
+ \begin{tikzpicture}[remember picture, overlay]
+ \maketable
+ \course [ subject = Keep on {\TeX}ing ] {10} {11}
+ \newday
+ \course [ color = DarkSlateGray, subject = litetable,
+ location = Hong Kong, teacher = M.Y. Xia
+ ] {8} {8}
+ \end{tikzpicture}
+
+ \end{document}
+ \end{verbatim}
+\end{framed}
+
+\includepdf[pages = 1]{litetable-demo.pdf}
+
+\end{document}
+
+% End of file litetable-cn.tex
diff --git a/macros/latex/contrib/litetable/doc/litetable-demo.pdf b/macros/latex/contrib/litetable/doc/litetable-demo.pdf
index 136369231a..30e84ee31e 100644
--- a/macros/latex/contrib/litetable/doc/litetable-demo.pdf
+++ b/macros/latex/contrib/litetable/doc/litetable-demo.pdf
Binary files differ
diff --git a/macros/latex/contrib/litetable/doc/litetable-demo.tex b/macros/latex/contrib/litetable/doc/litetable-demo.tex
index f2210298bf..32ab4d89e9 100644
--- a/macros/latex/contrib/litetable/doc/litetable-demo.tex
+++ b/macros/latex/contrib/litetable/doc/litetable-demo.tex
@@ -1,175 +1,70 @@
-\documentclass[times]{litetable}
+\documentclass[letterpaper, svgnames]{litetable}
-% \setCJKfamilyfont{zhhei}{Chiron Sung HK}
-
-\corner{6 pt}
-\sticker{favicon}
+\usepackage{twemojis,newtxtext}
+\usepackage[scaled = .9]{helvet}
+\renewcommand*\familydefault{\sfdefault}
\begin{document}
-\timelist[12]{%
- 8:05,8:55,10:00,10:50,11:40,13:30,14:20,15:15,16:05,18:30,19:20;
- 8:50,9:40,10:45,11:35,12:25,14:15,15:05,16:00,16:50,19:15,20:05
+\timelist [ 13 ]
+{
+ 08:05 -> 08:50, 08:55 -> 09:40, 10:00 -> 10:45,
+ 10:50 -> 11:35, 11:40 -> 12:25, 13:30 -> 14:15,
+ 14:20 -> 15:05, 15:15 -> 16:00, 16:05 -> 16:50,
+ 18:30 -> 19:15, 19:20 -> 20:05, 20:10 -> 20:55
}
-\weeklist{
- \heiti\bfseries\textcolor{W1}{\faIcon{moon}~星期一},
- \heiti\bfseries\textcolor{W2}{\faIcon{fire}~星期二},
- \heiti\bfseries\textcolor{W3}{\faIcon{water}~星期三},
- \heiti\bfseries\textcolor{W4}{\faIcon{tree}~星期四},
- \heiti\bfseries\textcolor{W5}{\faIcon{coins}~星期五};
- 0,.17,.34,.56,.78,1
+\weeklist [ Weeks 1 - 16 ]
+{
+ \scshape\texttwemoji{1f312} Mon -> 1,
+ \scshape\texttwemoji{1f525} Tue -> 1,
+ \scshape\texttwemoji{1f30a} Wed -> 1,
+ \scshape\texttwemoji{1f332} Thu -> 1,
+ \scshape\texttwemoji{1fa99} Fri -> 1
}
-\weeks{Week 1 -- 16}
-
-\begin{tikzpicture}
- \makeframe[SEM 6]{Axia\!\texttt{'}\!s Timetable}
-
- % Mon.
- \course[H5]{7}{8}{凝聚态物理}{第6教研楼 · 中225}{Mn Chen}
-
- \newday % Tue.
- \course[H1]{8}{9}{群论}{第6教研楼 · 中211}{Li Ge}
- \course[H5]{10}{11}{介观物理}{第6教研楼 · 中211}{Yuan Li \& Mn Chen}
-
- \newday % Wed.
- \course[H6]{1}{2}{工程制图}{第7教研楼 · 中3012}{Hc Wang}
- \course[H9]{8}{9}{形势与政策6}{第6教研楼 · 北302}{Xr Qi}[Double Week 10 -- 16]
- \course[H9]{10}{11}{高级创业运营仿真}{第4教研楼 · 411 -- 413}{Li Zhang}[Week 1 -- 8]
-
- \newday % Thu.
- \course[H4]{1}{2}{跨文化交际}{第3教研楼 · 422}{Cl Zuo}
- \course[H2]{3}{4}{无线电测向}{东边田径场}{Ys Yu}
- \course[H5]{6}{8}{固体物理}{第6教研楼 · 北408}{Kw Sun}
-
- \newday % Fri.
- \course[H8]{1}{2}{光电显示技术}{第7教研楼 · 中3012}{Wt Su}
- \course[H3]{6}{8}{研究生组会}{第6教研楼 · 中}{Yuan Li}
-
- \more{ · School Start: 04 / 03 / 2024 · Summer Vacation: 05 / 07 / 2024}
-\end{tikzpicture}
-
-\rotatepage
-
-\weeklist{
- \bfseries\sffamily\textcolor{W1}{\faIcon{moon}~Monday},
- \bfseries\sffamily\textcolor{W2}{\faIcon{fire}~Tuesday},
- \bfseries\sffamily\textcolor{W3}{\faIcon{water}~Wednesday},
- \bfseries\sffamily\textcolor{W4}{\faIcon{tree}~Thursday},
- \bfseries\sffamily\textcolor{W5}{\faIcon{coins}~Friday},
- \bfseries\sffamily\textcolor{W6}{\faIcon{mountain}~Saturday},
- \bfseries\sffamily\textcolor{W7}{\faIcon{sun}~Sunday};
- 0,.16,.32,.48,.64,.8,.9,1
+\more
+{
+ School Starts: 06 / 09 / 2024\quad Summer Vacation: 26 / 01 / 2025
}
-\begin{tikzpicture}
- \makeframe[SEM 6]{Axia\!\texttt{'}\!s Timetable}
-
- % Mon.
- \course[H5]{7}{8}{Introduction to Cond.}{Building 6 · Middle 225}{Mn Chen}
-
- \newday % Tue.
- \course[H1]{8}{9}{Group Theory}{Building 6 · Middle 211}{Li Ge}
- \course[H5]{10}{11}{Mesoscopic Physics}{Building 6 · Middle 211}{Yuan Li \& Mn Chen}
-
- \newday % Wed.
- \course[H6]{1}{2}{Engineering Drawing}{Building 7 · North 3012}{Hc Wang}
- \course[H9]{8}{9}{Situation \& Policy 6}{Building 6 · North 302}{Xr Qi}[Double Week 10 -- 16]
- \course[H9]{10}{11}{Operational Simu.}{Building 4 · 411 -- 413}{Li Zhang}[Week 1 -- 8]
-
- \newday % Thu.
- \course[H4]{1}{2}{Intercultural Comm.}{Building 3 · 422}{Cl Zuo}
- \course[H2]{3}{4}{Radio Direction}{Athletic Field}{Ys Yu}
- \course[H5]{6}{8}{Solid State Physics}{Building 6 · North 408}{Kw Sun}
-
- \newday % Fri.
- \course[H8]{1}{2}{OE. Display}{Building 7 · North 3012}{Wt Su}
- \course[H3]{6}{8}{Group Meeting}{Building 6 · Middle}{Yuan Li}
-
- \more{ · School Start: 04 / 03 / 2024 · Summer Vacation: 05 / 07 / 2024}
+\begin{tikzpicture}[remember picture, overlay]
+ \maketable [ color = MidnightBlue,
+ sem = SEM 6
+ ] { Skyrmion's Course Schedule }
+ \course [ color = DarkBlue, subject = interface3,
+ teacher = The {\LaTeX} Project
+ ] {4} {5}
+ \newday
+ \course [ color = Purple, subject = expl3,
+ teacher = The {\LaTeX} Project
+ ] {8} {8}
+ \course [ color = FireBrick, subject = usrguide,
+ teacher = {\LaTeX} Project Team, weeks = Weeks 7 - 14
+ ] {1} {2}
+ \newday
+ \course [ subject = Keep on {\TeX}ing ] {10} {11}
+ \newday
+ \course [ color = Crimson, subject = Ti\textit kZ,
+ teacher = The PGF/Ti\textit kZ Team
+ ] {3} {5}
+ \newday
+ \course [ color = DarkSlateGray, subject = litetable,
+ location = Hong Kong, teacher = M.Y. Xia
+ ] {8} {8}
\end{tikzpicture}
-\rerotatepage
+\clearpage
-\timelist{
- 8:05,8:55,10:00,10:50,11:40,13:30,14:20,15:15,16:05,18:30,19:20,20:10;
- 8:50,9:40,10:45,11:35,12:25,14:15,15:05,16:00,16:50,19:15,20:05,20:55
-}
-\weeklist
+\timelist [ 12 ] { }
+\weeklist [ Weeks 1 - 16 ]
{
- \heiti\bfseries\textcolor{W1}{\faIcon{moon}~星期一},
- \heiti\bfseries\textcolor{W2}{\faIcon{fire}~星期二},
- \heiti\bfseries\textcolor{W3}{\faIcon{water}~星期三},
- \heiti\bfseries\textcolor{W4}{\faIcon{tree}~星期四},
- \heiti\bfseries\textcolor{W5}{\faIcon{coins}~星期五},
- \heiti\bfseries\textcolor{W6}{\faIcon{mountain}~星期六};
- 0,.175,.35,.525,.7,.875,1
+ Mon -> 1, Tue -> 1, Wed -> 1, Thu -> 1, Fri -> 1
}
-\weeks{Week 1 -- 18}
-\begin{tikzpicture}
- \makeframe[SEM 5]{Axia\!\texttt{'}\!s Timetable} % make title & background
- % Mon.
- \course[H1]{1}{2}{羽毛球}{羽毛球场}{Ys Yu}
- \course[H7]{3}{5}{光学镜头设计实验}{第6教研楼 · 南402}{Hao Ying}[Week 5 -- 15]
- \newday % Tue.
- \course[H9]{3}{5}{马克思主义原理}{第6教研楼 · 北320}{Yang Wang}
- \course[H8]{6}{8}{光电检测技术}{第6教研楼 · 北320}{Xf Huang}
- \newday % Wed.
- \course[H7]{3}{4}{激光原理}{第6教研楼 · 中301}{Hd Mao}
- \course[H9]{6}{7}{就业3 | 形策5}{6教中301 | 6教北208}{MJH | QXR}[Week 5 -- 14]
- \course[H5]{8}{9}{计算物理}{第6教研楼 · 中215}{Wj Rao}
- \course[H1]{10}{11}{论文写作指导}{第6教研楼 · 北416}{Yq Shi}
- \newday % Thu.
- \course[H6]{1}{2}{智能传感系统}{第6教研楼 · 北110}{Bx Cai}
- \course[H5]{3}{5}{高等量子力学}{第6教研楼 · 中225}{Mn Chen \& Yuan Li}
- \course[H3]{6}{8}{近代物理实验2}{第6教研楼 · 南}{Xx Chen}[Week 5 -- 16]
- \course[H8]{10}{12}{光电信息技术实验}{第6教研楼 · 南302}{Yu Zhou}[Week 5 -- 15]
- \newday % Fri.
- \course[H7]{1}{2}{光学镜头设计}{第6教研楼 · 北422}{Hao Ying}
- \course[H5]{3}{5}{光电子学}{第6教研楼 · 北202}{Rx Li \& Yuan Li}
- \course[H8]{6}{7}{光电创新实践4}{第6教研楼 · 南302}{Ql Huang}[Week 5 -- 16]
- \course[H5]{8}{9}{研究生组会}{第6教研楼 · 中}{Yuan Li}
- \more{ · Hangzhou Asian Games: 23 / 09 / 2023 -- 08 / 10 / 2023 · School Starts: 11 / 09 / 2023
- · Winter Vacation: 26 / 01 / 2024}
+\begin{tikzpicture}[remember picture, overlay]
+ \maketable { Skyrmion's Course Schedule }
+ %
\end{tikzpicture}
-\rotatepage
-
-\weeklist{
- \bfseries\sffamily\textcolor{W1}{\faIcon{moon}~Monday},
- \bfseries\sffamily\textcolor{W2}{\faIcon{fire}~Tuesday},
- \bfseries\sffamily\textcolor{W3}{\faIcon{water}~Wednesday},
- \bfseries\sffamily\textcolor{W4}{\faIcon{tree}~Thursday},
- \bfseries\sffamily\textcolor{W5}{\faIcon{coins}~Friday},
- \bfseries\sffamily\textcolor{W6}{\faIcon{mountain}~Saturday};
- 0,.175,.35,.525,.7,.875,1
-}
-
-\begin{tikzpicture}
- \makeframe[SEM 5]{Axia\!\texttt{'}\!s Timetable} % make title
- % Mon.
- \course[H1]{1}{2}{Badminton}{Badminton Court}{Ys Yu}
- \course[H7]{3}{5}{Lens Design Expt.}{Building 6 · South 402}{Hao Ying}[Week 5 -- 15]
- \newday % Tue.
- \course[H9]{3}{5}{Marx's Principles}{Building 6 · North 320}{Yang Wang}
- \course[H8]{6}{8}{OE Detection Tech.}{Building 6 · North 320}{Xf Huang}
- \newday % Wed.
- \course[H7]{3}{4}{Laster Principle}{Building 6 Middle · 301}{Hd Mao}
- \course[H9]{6}{7}{Empl Guide | Situ Policy}{Build 6 · 301 | Build 6 · 208}{MJH | QXR}[Week 5 -- 14]
- \course[H5]{8}{9}{Computational Phys}{Building 6 · Middle 215}{Wj Rao}
- \course[H1]{10}{11}{Essay Writing}{Building 6 · North 416}{Yq Shi}
- \newday % Thu.
- \course[H6]{1}{2}{Sensing System}{Building 6 · North 110}{Bx Cai}
- \course[H5]{3}{5}{Quantum Mechanics$^\dagger$}{Building 6 · Middle 225}{Mn Chen \& Yuan Li}
- \course[H3]{6}{8}{Modern Phys Expt. 2}{Building 6 · South}{Xx Chen}[Week 5 -- 16]
- \course[H8]{10}{12}{OE Info Experiment}{Building 6 · South 302}{Yu Zhou}[Week 5 -- 15]
- \newday % Fri.
- \course[H7]{1}{2}{Optical Lens Design}{Building 6 · North 422}{Hao Ying}
- \course[H5]{3}{5}{Optoelectronics}{Building 6 · North 202}{Rx Li \& Yuan Li}
- \course[H8]{6}{7}{Innovative Practice 4}{Building 6 · South 302}{Ql Huang}[Week 5 -- 16]
- \course[H5]{8}{9}{Group Meeting}{Building 6 · Middle}{Yuan Li}
- \more{ · Hangzhou Asian Games: 23 / 09 / 2023 -- 08 / 10 / 2023
- · School Starts: 11 / 09 / 2023 · Winter Vacation: 26 / 01 / 2024 }
-\end{tikzpicture}
+\end{document}
-\end{document} \ No newline at end of file
+%% \ No newline at end of file
diff --git a/macros/latex/contrib/litetable/doc/litetable-en.pdf b/macros/latex/contrib/litetable/doc/litetable-en.pdf
index 33f8659677..f6c9a4cf2a 100644
--- a/macros/latex/contrib/litetable/doc/litetable-en.pdf
+++ b/macros/latex/contrib/litetable/doc/litetable-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/litetable/doc/litetable-en.tex b/macros/latex/contrib/litetable/doc/litetable-en.tex
index 267f0f8346..17ab305070 100644
--- a/macros/latex/contrib/litetable/doc/litetable-en.tex
+++ b/macros/latex/contrib/litetable/doc/litetable-en.tex
@@ -1,304 +1,143 @@
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * http://www.latex-project.org/lppl.txt *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-% \PassOptionsToPackage{quiet}{xeCJK}
-% \PassOptionsToPackage{quiet, no-math}{fontspec}
-\documentclass[11pt]{article}
-\usepackage{geometry,pdfpages,caption,indentfirst,setspace}
-\captionsetup[table]{name={\textsc{Table}},labelsep=period}
-\usepackage[level]{datetime}
-\usepackage{authblk,xltxtra,bigfoot,enumitem}
-\usepackage{booktabs,diagbox,ragged2e,tabularx}
-\renewcommand\tabularxcolumn[1]{>{\Centering}m{#1}}
-\usepackage[toc]{multitoc}
-\usepackage[mono=false]{libertine}
-% \setstretch{1.15}
-% \setCJKmainfont{Chiron Sung HK}
-% [BoldFont=Chiron Sung HK Bold,
-% ItalicFont=Kaiti SC]
-\usepackage{hyperref,xcolor,tikz}
-\hypersetup{colorlinks,urlcolor=H6,linkcolor=H2,filecolor=filecolor,pdfstartview=FitH,pdfview=FitH,pdfcreator=XeTeX output}
-\definecolor{pkgcolor}{Hsb}{103,.8,.5}
-\definecolor{moducolor}{Hsb}{290,.8,.5}
-\definecolor{cmdcolor}{Hsb}{188,.8,.5}
-\definecolor{filecolor}{Hsb}{207,.6,.7}
-\definecolor{H1}{Hsb}{349,.8,.8} % 海棠紅 (Hangzhou MTR L 1 )
-\definecolor{H2}{Hsb}{23, .8,.8} % 丹桂橙 (Hangzhou Metro 2 )
-\definecolor{H3}{Hsb}{48, .8,.8} % 柠檬黄 (Hangzhou Metro 3 )
-\definecolor{H4}{Hsb}{103,.8,.8} % 香樟绿 (Hangzhou Metro 4 )
-\definecolor{H5}{Hsb}{188,.8,.8} % 青藍色 (Hangzhou MTR L 5 )
-\definecolor{H6}{Hsb}{207,.8,.8} % 海洋蓝 (Hangzhou Metro 6 )
-\definecolor{H7}{Hsb}{290,.8,.8} % 浪漫紫 (Hangzhou Metro 7 )
-\definecolor{W1}{HTML}{CCAD52}
-\definecolor{W2}{HTML}{8FCC52}
-\definecolor{W3}{HTML}{52CC70}
-\definecolor{W4}{HTML}{52CCCC}
-\definecolor{W5}{HTML}{5270CC}
-\definecolor{W6}{HTML}{8F52CC}
-\definecolor{W7}{HTML}{CC52AD}
-\def\pkg#1{\texorpdfstring{\textcolor{pkgcolor}{\textsf{#1}}}{“#1”}}
-\def\mode#1{\texorpdfstring{\textcolor{moducolor}{\textsf{#1}}}{“#1”}}
-\def\cmd#1{\texorpdfstring{\textcolor{cmdcolor}{\textsf{#1}}}{“#1”}}
-\def\datechange#1#2{%
- \noindent{\makebox[\textwidth][r]{\color{H7}\rule{1.15\textwidth}{.4pt}}}
- \noindent\makebox[0pt][r]{\makebox[-3em][r]{\small\textbf{\textcolor{H7}{#1}}}\;\;}{\sffamily Update: \ignorespaces#2}}
-
-\title{\bfseries The \pkg{LiteTable} Template: Colorful Timetable}
-\author{Xia Mingyu, \href{https://www.hdu.edu.cn}{Hangzhou Dianzi University}}
-\yyyymmdddate
-\date{\today}
-\affil{\href{mailto:xiamyphys@gmail.com}{\ttfamily xiamyphys@gmail.com}}
-\date{\today\quad Version 2.4c\thanks{%
- \url{https://github.com/xiamyphys/litetable}}}
+\documentclass[letterpaper]{l3doc}
+
+\hypersetup{urlcolor = teal, filecolor = violet}
+\usepackage[mono = false]{libertine}
+\usepackage{pdfpages,hologo,framed}
+\hologoFontSetup{general = \sffamily}
+\FrameSep = 0pt
+\linespread{1.12}
+\usepackage{indentfirst}
+\setlength{\parindent}{2em}
+\usepackage[os = mac]{menukeys}
+\AddToHook{env/function/before}{\vspace{-.3\baselineskip}}
+\AddToHook{env/syntax/after}{\vspace{-.2\baselineskip}}
+
+\title
+{
+ \bfseries
+ The \cls{litetable} Class: Colorful Timetable
+ \thanks{\url{https://github.com/xiamyphys/litetable}}
+}
+\author
+{
+ Mingyu Xia \texttt{<\href{mailto:xiamyphys@gmail.com}{xiamyphys@gmail.com}>}
+ \thanks{\href{https://github.com/ljguo1020}{Lijun Guo} developed modules for reading \meta{left} -> \meta{right} data structure and supporting low version \hologo {TeX} Live.}
+}
+\date{Version 3.1B, \today}
+
\begin{document}
+
\maketitle
-\vspace{-2em}
-\begin{abstract}
-This is the document for \pkg{LiteTable} template, which provides a beautiful design of class schedule with colorful course blocks.
-\end{abstract}
+\section{Introduction}
-\tableofcontents
+The \cls{litetable} class provides a design of timetable with colorful course boxes, which is based on the \cls{article} class, and conducted on \pkg{expl3} and \pkg{tikz}. It is compatible with \hologo{TeX}Live 2019 or later distributions, they all work fine for \hologo{pdfLaTeX} and \hologo{XeLaTeX} compilers. This is the Chinese manual for the \cls{litetable} class, manuals in \href{./litetable-cn.pdf}{Chinese} and \href{./litetable-hk.pdf}{Cantonese} versions are also provided\footnote{\href{https://qm.qq.com/q/RyssAhG4qy}{QQ Group: 760570712}}.
-\clearpage
+\section{Loading \cls{litetable} and generate the timetable frame}
-\section{Introduction}
+Just like loading any class, write
-\subsection{The purpose of this template}
-This template provides a beautiful design of class schedule with colorful course blocks.
+\begin{framed}
+ \begin{verbatim}
+ \documentclass{litetable}
+ \end{verbatim}
+\end{framed}
-If you meet bugs when using this template, or you have better suggestions or ideas, or you want to participate in the development of the template or other templates by me, welcome to contact via email \href{mailto:xiamyphys@gmail.com}{\ttfamily xiamyphys@gmail.com}.
+One can load the \pkg{ctex} package and set the font to input the CJK characters, if necessary.
-Also, you can join my \textsf\LaTeX{} Template Discussion \href{https://qm.qq.com/q/OnHzbNvVAG}{QQ Group: 760570712} to communicate with me and get the insider preview edition of the template.
+\begin{function}{\timelist,\weeklist}
+ \begin{syntax}
+ \cs{timelist}\oarg{rows}\marg{time list} \cs{timelist}\marg{time list}\oarg{rows}
+ \cs{weeklist}\oarg{default weeks}\marg{week list} \cs{weeklist}\marg{week list}\oarg{default weeks}
+ \end{syntax}
-\subsection{Packages required}
-This template is based on the template \pkg{standalone}. And it requires \pkg{tikz} package to plot some graphics, \pkg{kvoptions} and \pkg{etoolbox} packages to provide global options, \pkg{expl3}\footnote{Please use the \pkg{expl3} version after 2023/10/10 to support the e-type variants for expand: \verb|\clist_count:e|.} package to support \cmd{timelist} array, \pkg{xeCJK} package to support the \textbf{Chinese, Simplified} language and \pkg{fontawesome5} package to provide a set of beautiful icons.
+ The optional argument of the command \cs{timelist} can force the number of rows on the timetable, and that of the command \cs{weeklist} can set the default number of weeks and print it at every course box's southeast corner. Each mandatory argument of the two commands accepts an array that can add a time list to the left side of the timetable and add workdays with corresponding width ratios at the top of the timetable, respectively. The example for inputting the arrays is shown in Appendix \ref{mwe}
-\subsection{Installing \pkg{LiteTable} and loading it}
-For portable version, simply download latest \verb|litetable.cls| file from \href{https://github.com/xiamyphys/LiteTable}{GitHub} or \href{https://ctan.org/pkg/litetable}{CTAN} and save it under your working directory. This way of installation is simple and convenient, but you have to manually update \verb|.cls| now and then.
-
-However, I strongly suggest that you should use terminal/cmd to implement the commands to update all the packages (and install this package) to the latest version or switch to portable version instead
-\begin{verbatim}
- sudo tlmgr update --self --all
-\end{verbatim}
-
-If you are in some areas with awful Internet environment (such as GFW), you can choose proper mirror source or use other means\footnote{Please comply with local network regulations.}. To learn more, please refer to \href{https://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution}{How do I update my \textsf{\TeX} distribution?}
-
-The template provides two options, \mode{direction} and \mode{font}. Add the modes of the options you want in the square bracket of the command \verb|\documentclass[ ]{litetable}| in \verb|.tex| file.
-
-\subsection{Compatibility}
-The test environments are macOS + Mac\TeX{} 2023 / Overleaf and they all work fine for \XeLaTeX{} compiler, Windows, Linux and Unix platforms compatibility unknown.
-
-This template is developed on macOS platform and using the font ``Heiti SC''. If this font is not installed on your computer, please use the command \verb|\setCJKfamilyfont{zhhei}{ }| after \verb|\documentclass{litetable}| to replace ``Heiti SC'' to the font exists in your computer.
-
-\section{Global Options of \pkg{LiteTable}}
-\begin{verbatim}
- \documentclass[options]{litetable}
-\end{verbatim}
-
-\subsection{The \mode{direction} option}
-This option has two modes, \mode{portrait} and \mode{landscape}, which can make the timetable displayed portrait or horizontally.
-
-\subsection{The \mode{font} option}
-This option has two modes, \mode{times} and \mode{libertinus}, which can make the font to be ``Times New Roman'' or ``Libertinus'', and the default mode is ``Times New Roman''\footnote{Please ensure that your computer has been already installed the font when using this option.}.
-
-\section{Commands of \pkg{LiteTable}}
-
-\subsection{The \cmd{makeframe} command}
-\begin{verbatim}
- \makeframe[Sem 6]{Timetable}
-\end{verbatim}
-
-This command has two variables can create an empty class schedule. The second variable can assign the title while the first optional one can add a button that forward to the next page on the right.
-
-\subsection{The \cmd{weeklist} command}
-\begin{verbatim}
- \weeklist{
- \textcolor{W1}{Monday}, \textcolor{W2}{Tuesday},
- \textcolor{W3}{Wednesday}, \textcolor{W4}{Thursday},
- \textcolor{W5}{Friday};
- 0,.17,.34,.56,.78,1
- }
-\end{verbatim}
-
-
-\begin{figure}[!ht]
- \centering
- \tikz
- {
- \tikzset{every node/.style={font=\small}}
- \draw [thick,->,>=stealth] ({-1/16*5.1 in},0) -- (5.1 in,0);
- \draw ({-5.1 in/16},-.1) --++ (0,.2) node [above] {\verb|-1/15|};
- \draw ({0.0*5.1 in},-.1) --++ (0,.2) node [above] {\verb|0|};
- \draw ({.17*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.17|};
- \draw ({.34*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.34|};
- \draw ({.56*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.56|};
- \draw ({.78*5.1 in},-.1) --++ (0,.2) node [above] {\verb|.78|};
- \draw ({1.0*5.1 in},-.1) --++ (0,.2) node [above] {\verb|1|};
- \node [above] at ({.085*5.1 in},0) {\sffamily\textcolor{W1}{Monday}};
- \node [above] at ({.255*5.1 in},0) {\sffamily\textcolor{W2}{Tuesday}};
- \node [above] at ({.45*5.1 in},0) {\sffamily\textcolor{W3}{Wednesday}};
- \node [above] at ({.67*5.1 in},0) {\sffamily\textcolor{W4}{Thursday}};
- \node [above] at ({.89*5.1 in},0) {\sffamily\textcolor{W5}{Friday}};
- }
- \caption*{The second line of array in the \cmd{weeklist} command corresponds to the axis coordinates.}
-\end{figure}
-
-
-This command can add workdays to the top side of the timetable, you can adjust the format (the icon before it), every width of the columns in the timetable like the figure. The timetable can automatically generate the corresponding number of columns based on the number of workdays you enter. For example, the code above has 5 workdays, a 5-column timetable will be generated.
-
-\subsection{The \cmd{timelist} command}
-\begin{verbatim}
- \timelist [13] {%
- 8:05,8:55,10:00,10:50,11:40,13:30,14:20,15:15,16:05,18:30,19:20,20:10;
- 8:50,9:40,10:45,11:35,12:25,14:15,15:05,16:00,16:50,19:15,20:05,20:55
- }
- \timelist [13] {}
-\end{verbatim}
-
-The command \cmd{timelist} has two variables while the second one \cmd{\ttfamily\{\#2\}} can add time to the left side of the timetable, and the first line of the content is the start time of the classes while the second line of the content is the end time of the classes, each time separates with a comma (\verb|,|), the first line and the second line separates with a semicolon (\verb|;|).
-
-The timetable can automatically generate the corresponding number of rows based on the number of time groups you enter. For example, the code above has 12 groups of times, a 12-row timetable will be generated.
-
-The first optional variable \cmd{\ttfamily[\#1]} can directly assign the number of rows on the timetable you want without adding time to the left side of the timetable, and there will only be a series of numbers that \emph{aligned vertically to the center of every line}.
-
-\begin{table}[!ht]
-\centering
-\caption{Usage of the two variables.}
-
-\begin{tabularx}{\textwidth}{c >{\raggedright\arraybackslash}X >{\raggedright\arraybackslash}X}
- \toprule
- \diagbox{\cmd{\ttfamily[\#1]}}{\cmd{\ttfamily\{\#2\}}} & \multicolumn{1}{c}{To use} & \multicolumn{1}{c}{Not to use}\\
- \midrule
- To use &
- The effect is the description of \cmd{\ttfamily\{\#2\}}, but number of rows assign by \cmd{\ttfamily[\#1]} &
- The effect is the description of \cmd{\ttfamily[\#1]}\\
- \midrule
- Not to use &
- The effect is the description of \cmd{\ttfamily\{\#2\}} &
- The effect is the description of \cmd{\ttfamily[\#1]} before with \emph{default format of 12 lines}\\
- \bottomrule
-\end{tabularx}
-\end{table}
-
-If you want to use the first variable \cmd{\ttfamily[\#1]} only, not to add anything in the second variable.
+ If the number of time arrays received by the command \cs{timelist} is greater than the forced number of rows, then the extra time sets are ignored, and it will return a warning. If one wants to add a series of numbers to the left side of the timetable without time, just leave the mandatory argument blank.
+\end{function}
-\begin{itemize}
- \item Assume that \cmd{\ttfamily\{\#2\}} has 12 groups of times, and \cmd{\ttfamily[\#1]} passed a value of 14, then the left side of the timetable will have only 1 -- 12 rows with time while the last two rows without time the label of them is still upward, not vertically aligned in the center.
- \item Assume that \cmd{\ttfamily\{\#2\}} has 14 sets of times, and \cmd{\ttfamily[\#1]} passes a value of 12, then only 12 rows of timetables will be generated with time on the left side of each row, that is, the last two sets of data in \cmd{\ttfamily\{\#2\}} will be invalid.
-\end{itemize}
+\begin{function}{\more}
+ \begin{syntax}
+ \cs{more}\marg{comment}
+ \end{syntax}
-\subsection{The \cmd{weeks} command}
-\begin{verbatim}
- \weeks{Week 1 -- 16}
-\end{verbatim}
+ This command can add a comment at the southwest corner of the page.
+\end{function}
-This command can assign the default value of the 7th variable of the command \cmd{course}.
+\begin{function}{\maketable}
+ \begin{syntax}
+ \cs{maketable}\oarg{keyvals}\marg{title}\oarg{keyvals}
+ \end{syntax}
-\subsection{The \cmd{course} command}
-\begin{verbatim}
- \course[H1]{8}{9}{Group Theory}{Building 6 · 211}{Li Ge}[Week 1 -- 16]
-\end{verbatim}
+ This command can create a blank timetable frame, and it should execute after commands \cs{timelist} and \cs{weeklist} in the \env{tikzpicture} environment with the option of \cmd{[remember picture, overaly]}. The optional argument accepts keys, it can set the background color of the timetable, and add the semester at the northeast corner of the page, the default value of the key \keys{\cmdmac~color} is \cmd{gray}. The mandatory argument can set the title.
+\end{function}
-There are 7 variables in this command.
-\begin{itemize}
- \item The 1st one is the color of the class, from ``H1'' to ``H9'', it's optional and the default is ``H1''.
- \item The 2nd -- 6th ones is the starting number and ending number, name, address, teacher(s) of the class.
- \item The last one is the start week and end week of the timetable, it's optional and the default value is the value that you've adjusted in the command \cmd{weeks} or it will be ``Week 1 -- 12''.
-\end{itemize}
+\section{Add course boxes}
-\subsection{The \cmd{corner} command}
-\begin{verbatim}
- \corner{6 pt}
-\end{verbatim}
+\begin{function}{\course}
+ \begin{syntax}
+ \cs{course}\oarg{keyvals}\marg{start number}\oarg{keyvals}\marg{end number}\oarg{keyvals}
+ \end{syntax}
+\end{function}
-This command determines the corner radius of the course block.
+The \cs{course} command can add course boxes on the current workday, it should execute after command \cs{maketable} in the \env{tikzpicture} environment with the option of \cmd{[remember picture, overaly]}.
-\subsection{The \cmd{newday} command}
-This command can switch the current weekday to the next day, then the course will move right one grid.
+The optional argument accepts the following keys: \keys{\cmdmac~color} \keys{\cmdmac~subject} \keys{\cmdmac~location} \keys{\cmdmac~teacher} \keys{\cmdmac~weeks}. The default value of the key \keys{\cmdmac~color} is \cmd{teal}, and the default value of the key \keys{\cmdmac~weeks} is determined by the argument of the command \cs{weeklist}. The first and second mandatory arguments are the start and end numbers of the course, respectively. The example of this command is shown in Appendix \ref{mwe}
-\subsection{The \cmd{more} command}
-\begin{verbatim}
- \more{· School Start: 04 / 03 / 2024 · Summer Vacation: 05 / 07 / 2024}
-\end{verbatim}
+\begin{itemize}
+ \item If the course box's height is only one unit, that is $\meta{start number} = \meta{end number}$, the values of keys \keys{\cmdmac~location} and \keys{\cmdmac~teacher} will print on the same line with a comma (,) separated, and the value of the key \keys{\cmdmac~weeks} will be hidden.
+ \item If neither the key \keys{\cmdmac~location} nor the key \keys{\cmdmac~teacher} is assigned value, then the value of the key \keys{\cmdmac~subject} will print at the center of the course box.
+ \item course boxes that are out of the timetable will not display, and it will return a warning.
+\end{itemize}
-This command can add remark at the end of the class schedule.
+\begin{function}{\newday}
+ \begin{syntax}
+ \cs{newday}\oarg{intergal value}
+ \end{syntax}
-\subsection{The \cmd{sticker} command}
-\begin{verbatim}
- \sticker{favicon}
-\end{verbatim}
+ This command has an optional argument that can move the course boxes right \meta{intergal value} working days. The default value of the optional argument is \cmd{1} to move right \cmd{1} workday.
+\end{function}
-There will be a sticker on the southeast of the page after you add, otherwise it won't.
+\clearpage\linespread{1.375}
+\appendix
-\section{Version History}
+\section{Minimal Working Example}\label{mwe}
-The design of this course schedule originated from the student course schedule web page (only personnel of this school can access) of the \href{https://www.hduhelp.cn/}{HDUHelp} in \href{https://www.hdu.edu.cn}{Hangzhou Dianzi University}. The layout is very beautiful and I used \textsf{\LaTeX} to imitate that style and made a template to share with everyone.
+The following MWE could generate a timetable of 13 lines but only the top 12 lines have been marked with time, and there are 5 workdays at the top of the timetable, ratios between them are $4:5:4:6:5$. The default value of the key \keys{\cmdmac~weeks} will be set to \cmd{Weeks 1 - 16}. A comment and two course boxes are added.
-\textsf{\bfseries Version 1.0} was finished on 2023/09/01 and released on \href{https://www.latexstudio.net}{\textsf{\LaTeX} Studio} (Hsiaoshan, Hangzhou), where has won the favor of many people.
-\clearpage
-\setlist[itemize]{noitemsep, topsep=0pt}
-\datechange{2023/11/01}{Version 2.0a}
-\begin{itemize}
- \item Supports to set the course block's corners be round or sharp.
- \item Supports to add multiply class schedules in one \verb|.tex| file.
-\end{itemize}
+\begin{framed}
+ \begin{verbatim}
+ \documentclass{litetable}
-\datechange{2023/11/05}{Version 2.1a}
-\begin{itemize}
- \item Supports to use the libertinus font.
-\end{itemize}
+ \begin{document}
-\datechange{2024/01/31}{Version 2.2a}
-\begin{itemize}
- \item Fixed the bug of resolution exceeded.
- \item Changed paper type to US letter.
- \item Support to custom course start time and end time.
- \item Support to add sticker as you like at the southeast of the page.
- \item Provide simplified Chinese documentation.
-\end{itemize}
+ \timelist[13]
+ {
+ 08:05 -> 08:50, 08:55 -> 09:40, 10:00 -> 10:45, 10:50 -> 11:35,
+ 11:40 -> 12:25, 13:30 -> 14:15, 14:20 -> 15:05, 15:15 -> 16:00,
+ 16:05 -> 16:50, 18:30 -> 19:15, 19:20 -> 20:05, 20:10 -> 20:55
+ }
+ \weeklist[Weeks 1 - 16]
+ {
+ Mon -> 4, Tue -> 5, Wed -> 4, Thu -> 6, Fri -> 5
+ }
+ \more{Author: Mingyu Xia \& Lijun Guo}
-\datechange{2024/02/02}{Version 2.3a}
-\begin{itemize}
- \item Supports to generate the corresponding number of rows based on the number of time groups you enter automatically.
- \item Timetable can be displayed portrait or horizontally as you like.
-\end{itemize}
-
-\datechange{2024/02/03}{Version 2.3b}
-\begin{itemize}
- \item Optimized coordinate calculation and improved compilation speed.
-\end{itemize}
+ \begin{tikzpicture}[remember picture, overlay]
+ \maketable
+ \course [ subject = Keep on {\TeX}ing ] {10} {11}
+ \newday
+ \course [ color = DarkSlateGray, subject = litetable,
+ location = Hong Kong, teacher = M.Y. Xia
+ ] {8} {8}
+ \end{tikzpicture}
-\datechange{2024/02/24}{Version 2.4a}
-\begin{itemize}
- \item Supports to custom workday display style.
- \item Supports to hide time and only showing course program number vertically aligned.
- \item Supports to set default first and last week.
-\end{itemize}
+ \end{document}
+ \end{verbatim}
+\end{framed}
-\datechange{2024/03/01}{Version 2.4b}
-\begin{itemize}
- \item Fixed the error of \emph{resolution exceed} in the \mode{landscape} mode and added over 7 workdays.
- \item Supports to custom every width of the columns in the timetable.
- \item Optimized the design of round corners, supports custom the radius of corners.
- \item Thanks for @egreg's code solution on \TeX{} StackExchange for \href{https://tex.stackexchange.com/a/711657/299948}{Printing the number of each rows' elements in an array respectively}.
-\end{itemize}
+\includepdf[pages = 1]{litetable-demo.pdf}
-\datechange{\today}{Version 2.4c}
-\begin{itemize}
- \item Supports to add the `Semester' button on the right side of the title.
-\end{itemize}
+\end{document}
-\appendix
-\includepdf[pages={2,4},nup=1x2,pagecommand={
- \tikz[remember picture, overlay]
- \node [rotate=90,below,yshift=-1em] at (current page.west) {\bfseries\LARGE Document Example: \texttt{litetable-demo.tex}};
- }
-]{litetable-demo.pdf}
-\includepdf[pages={1,3}]{litetable-demo.pdf}
-
-\end{document} \ No newline at end of file
+% End of file litetable-en.tex
diff --git a/macros/latex/contrib/litetable/doc/litetable-hk.pdf b/macros/latex/contrib/litetable/doc/litetable-hk.pdf
new file mode 100644
index 0000000000..d2f1234e75
--- /dev/null
+++ b/macros/latex/contrib/litetable/doc/litetable-hk.pdf
Binary files differ
diff --git a/macros/latex/contrib/litetable/doc/litetable-hk.tex b/macros/latex/contrib/litetable/doc/litetable-hk.tex
new file mode 100644
index 0000000000..6f48cc6fd1
--- /dev/null
+++ b/macros/latex/contrib/litetable/doc/litetable-hk.tex
@@ -0,0 +1,143 @@
+\documentclass[letterpaper]{l3doc}
+
+\hypersetup{urlcolor = teal, filecolor = violet}
+\usepackage[mono = false]{libertine}
+\usepackage{pdfpages,hologo,framed}
+\hologoFontSetup{general = \sffamily}
+\FrameSep = 0pt
+\usepackage[fontset = none]{ctex}
+\setCJKmainfont[BoldFont = *-Bold]{LXGW WenKai}
+\setCJKsansfont[BoldFont = *-Bold]{LXGW WenKai}
+\setCJKmonofont[BoldFont = *-Bold]{LXGW WenKai}
+\usepackage[os = mac]{menukeys}
+\AddToHook{env/function/before}{\vspace{-.3\baselineskip}}
+\AddToHook{env/syntax/after}{\vspace{-.2\baselineskip}}
+
+\title
+{
+ \bfseries\cls{litetable} 文檔類:多彩嘅課程表
+ \footnote{\url{https://github.com/xiamyphys/litetable}}
+}
+\author
+{
+ 夏明宇 \texttt{<\href{mailto:xiamyphys@gmail.com}{xiamyphys@gmail.com}>}
+ \thanks{\href{https://github.com/ljguo1020}{郭李軍}開發咗讀取 \meta{left} -> \meta{right} 型資料結構糢塊同低版本 \hologo{TeX} Live 相容糢塊.}
+}
+\date{Version 3.1B, \today}
+
+\begin{document}
+
+\maketitle
+
+\section{介紹}
+
+\cls{litetable} 文檔類提供咗個多彩嘅課程表設計,基於 \cls{article} 文檔類,由 \pkg{expl3} 和 \pkg{tikz} 構建. 相容發行版 \hologo{TeX} Live 2019 同更高版本,喺 \hologo{pdfLaTeX} 同 \hologo{XeLaTeX} 編譯器下均可正常運行. 本文檔系 \cls{litetable} 文檔類嘅用户手冊放,手冊放同時有\href{./litetable-en.pdf}{英文}同\href{./litetable-cn.pdf}{官話}版本\footnote{\href{https://qm.qq.com/q/RyssAhG4qy}{QQ Group: 760570712}}.
+
+\section{載入 \cls{litetable} 並建置課程表框架}
+
+同載入其他文檔類一樣,只令寫下
+
+\begin{framed}
+ \begin{verbatim}
+ \documentclass{litetable}
+ \end{verbatim}
+\end{framed}
+
+如需輸入中文,可自行載入 \pkg{ctex} 宏包並設置字型.
+
+\begin{function}{\timelist,\weeklist}
+ \begin{syntax}
+ \cs{timelist}\oarg{rows}\marg{time list} \cs{timelist}\marg{time list}\oarg{rows}
+ \cs{weeklist}\oarg{default weeks}\marg{week list} \cs{weeklist}\marg{week list}\oarg{default weeks}
+ \end{syntax}
+
+ 命令 \cs{timelist} 嘅可選參數可強制設定課程表嘅行數,命令 \cs{weeklist} 嘅可選參數可設定預設嘅星期數目並會喺每個課程盒子嘅右下角顯示. 兩個命令嘅強制參數均接受數組,可分別就系課程表嘅左側添加時間表、喺課程表嘅頂部添加對應寬度比例嘅工作日. 輸入數組嘅用例見Appendix \ref{mwe}.
+
+ 若命令 \cs{timelist} 中時間數組數字大於可選參數接受值,就多餘嘅時間數組將畀忽略,並返回一個警告. 如果只系課程表左側添加一部序號,令強制參數為空即可.
+\end{function}
+
+\begin{function}{\more}
+ \begin{syntax}
+ \cs{more}\marg{comment}
+ \end{syntax}
+
+ 此命令可喺頁面嘅嘅右下角添加備注.
+\end{function}
+
+\begin{function}{\maketable}
+ \begin{syntax}
+ \cs{maketable}\oarg{keyvals}\marg{title}\oarg{keyvals}
+ \end{syntax}
+
+ 此命令可建置一個空白嘅課程表框架,使喺命令 \cs{timelist},\cs{weeklist} 同 \cs{more} 後,並喺帶有 \cmd{[remember picture, overaly]} 選項嘅 \env{tikz} 環境中執行. 可選引數接受鍵 \keys{\cmdmac~color} \keys{\cmdmac~sem},可分別就喺設置課程表框架嘅背景色同喺頁面嘅嘅右度角添加學期,鍵 \keys{\cmdmac~color} 嘅默認值為 \cmd{gray}. 強制參數可設定標題.
+\end{function}
+
+\section{添加課程盒子}
+
+\begin{function}{\course}
+ \begin{syntax}
+ \cs{course}\oarg{keyvals}\marg{start number}\oarg{keyvals}\marg{end number}\oarg{keyvals}
+ \end{syntax}
+
+ \cs{course} 命令可喺當前工作日添加課程盒子,要喺命令 \cs{maketable} 後,並喺帶有 \cmd{remember picture,overaly} 選項嘅 \env{tikzpicture} 環境中執行.
+
+ 此命令嘅可選參數接受下列鍵:\keys{\cmdmac~color} \keys{\cmdmac~subject} \keys{\cmdmac~location} \keys{\cmdmac~teacher} \keys{\cmdmac~weeks}. 鍵 \keys{\cmdmac~color} 默認值為 \cmd{teal},鍵 \keys{\cmdmac~weeks} 默認值由命令 \cs{weeklist} 嘅可選參數決定. 第一個同第二個強制參數勒分別為課程嘅開始同結束序號. 命令嘅用例見Appendix \ref{mwe}.
+
+ \begin{itemize}
+ \item 若課程盒子高度得一格,即$\marg{start number} = \marg{end number}$,就鍵 \keys{\cmdmac~location} 同 \keys{\cmdmac~teacher} 嘅值將輸出喺同一行並以逗號 (,) 隔,鍵 \keys{\cmdmac~weeks} 嘅值將會隱藏.
+ \item 若鍵 \keys{\cmdmac~location} 同 \keys{\cmdmac~teacher} 均未賦值,就鍵 \keys{\cmdmac~subject} 嘅值將輸出喺課程盒子中心.
+ \item 超出課程表工作日範圍嘅課程盒子將唔會顯示,只會返回一條警告.
+ \end{itemize}
+\end{function}
+
+\begin{function}{\newday}
+ \begin{syntax}
+ \cs{newday}\oarg{integral value}
+ \end{syntax}
+
+ 此命令有一個可選參數,可令其後面添加嘅課程盒子後移 \meta{intergal value} 個工作日. 可選參數嘅默認值為\cmd{1},即後移\cmd{1}個工作日.
+\end{function}
+
+\clearpage
+\appendix
+
+\section{最小工作範例}\label{mwe}
+
+此MWE建置嘅課程表有13行但系得前12行标注时间,課程表顶部共有五个工作日,工作日之间嘅宽度比例为$4:5:4:6:5$,键 \keys{\cmdmac~weeks} 嘅默认值畀赋为 \cmd{Weeks 1 - 16}. 添加咗註解同兩個課程盒子.
+
+\begin{framed}
+ \begin{verbatim}
+ \documentclass{litetable}
+
+ \begin{document}
+
+ \timelist[13]
+ {
+ 08:05 -> 08:50, 08:55 -> 09:40, 10:00 -> 10:45, 10:50 -> 11:35,
+ 11:40 -> 12:25, 13:30 -> 14:15, 14:20 -> 15:05, 15:15 -> 16:00,
+ 16:05 -> 16:50, 18:30 -> 19:15, 19:20 -> 20:05, 20:10 -> 20:55
+ }
+ \weeklist[Weeks 1 - 16]
+ {
+ Mon -> 4, Tue -> 5, Wed -> 4, Thu -> 6, Fri -> 5
+ }
+ \more{Author: Mingyu Xia \& Lijun Guo}
+
+ \begin{tikzpicture}[remember picture, overlay]
+ \maketable
+ \course [ subject = Keep on {\TeX}ing ] {10} {11}
+ \newday
+ \course [ color = DarkSlateGray, subject = litetable,
+ location = Hong Kong, teacher = M.Y. Xia
+ ] {8} {8}
+ \end{tikzpicture}
+
+ \end{document}
+ \end{verbatim}
+\end{framed}
+
+\includepdf[pages = 1]{litetable-demo.pdf}
+
+\end{document}
+
+% End of file litetable-hk.tex
diff --git a/macros/latex/contrib/litetable/tex/litetable.cls b/macros/latex/contrib/litetable/tex/litetable.cls
index a52c0d5abd..556b766c28 100644
--- a/macros/latex/contrib/litetable/tex/litetable.cls
+++ b/macros/latex/contrib/litetable/tex/litetable.cls
@@ -1,314 +1,450 @@
-%% ************************************************************************************************************
-%% ****************************************************** *
-%% * This work may be distributed and/or modified under * * ***** * * *
-%% * the conditions of the LaTeX Project Public License * * ** * * *** * * *
-%% * http://www.latex-project.org/lppl.txt * * * ** * ***** * *
-%% * either version 1.3c of this license or any later * * * ** * ***** * *
-%% * version. * * * ** * * * * *
-%% ****************************************************** ***** ** * * *** * * *
-%% start of file `litetable.cls'. *
-%% Copyright 2023-2024 LiteLaTeX (xiamyphys@gmail.com) *
-%% available at https://github.com/xiamyphys/LiteTable *
-% !Mode:: "TeX:UTF-8" *
-%% ************************************************************************************************************
-\NeedsTeXFormat{LaTeX2e}
-\PassOptionsToPackage{quiet}{xeCJK}
-\PassOptionsToPackage{no-math}{fontspec}
-\ProvidesClass{litetable}[2024/03/03/ v2.4c LiteTable document class]
+%% ***********************************************************
+%% Copyright 2024 by M.Y. XIA <xiamyphys@gmail.com> *
+%% *
+%% This work may be distributed and/or modified under *
+%% the conditions of the LaTeX Project Public License *
+%% *
+%% http://www.latex-project.org/lppl.txt *
+%% *
+%% either version 1.3c of this license or any later *
+%% version. *
+%% *
+%% This work has the LPPL maintenance status `maintained'. *
+%% *
+% The Current Maintainers of this work are M.Y. XIA & L.J. Guo
+%% *
+%% This work consists of the files litetable.cls, *
+%% and README.md. *
+%% available at https://github.com/xiamyphys/litetable *
+%% ***********************************************************
+\RequirePackage{xparse}% For TeX Live 2019 - 2020 Compatibility
+\ProvidesExplClass{litetable}{2024/10/01}{3.1B}{Course Schedule}
-% ---------- 全局选项 ---------- %
-\RequirePackage{kvoptions}
-\RequirePackage{etoolbox}
-\SetupKeyvalOptions{family=LITE, prefix=LITE@, setkeys=\kvsetkeys}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+\ProcessOptions\relax
+\LoadClass{article}
-\DeclareStringOption[portiait]{direction}
-\DeclareVoidOption{portiait}{\kvsetkeys{LITE}{direction=portiait}}
-\DeclareVoidOption{landscape}{\kvsetkeys{LITE}{direction=landscape}}
+\pagestyle{empty}
+\RequirePackage{tikz}
-\DeclareStringOption[times]{font}
-\DeclareVoidOption{times}{\kvsetkeys{LITE}{font=times}}
-\DeclareVoidOption{libertinus}{\kvsetkeys{LITE}{font=libertinus}}
-
-\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{standalone}}
-\ProcessKeyvalOptions*\relax
-
-\LoadClass[tikz]{standalone}
-
-% ---- 文本中的数字 & 字母设置 ---- %
-\RequirePackage{xeCJK}
-\setCJKfamilyfont{zhhei}{Heiti SC}
-\newcommand*\heiti{\CJKfamily{zhhei}}
-\ifdefstring{\LITE@font}{libertinus}{
-\RequirePackage{libertine}
-}{\relax}
-\ifdefstring{\LITE@font}{times}{
-\ifXeTeX
- \RequirePackage[no-math]{fontspec}
- \setmainfont{texgyretermes}[
- UprightFont = *-regular ,
- BoldFont = *-bold ,
- ItalicFont = *-italic ,
- BoldItalicFont = *-bolditalic ,
- Extension = .otf ,
- Scale = 1.0]
- \setsansfont{texgyreheros}[
- UprightFont = *-regular ,
- BoldFont = *-bold ,
- ItalicFont = *-italic ,
- BoldItalicFont = *-bolditalic ,
- Extension = .otf ,
- Scale = 0.9]
-\else
- \RequirePackage{newtxtext}
- \RequirePackage[scaled=.90]{helvet}
-\fi
-}{\relax}
+% Module for texlive 2021 and later (by @ljguo)
+\cs_if_exist:NF \clist_put_right:Ne
+{ \cs_generate_variant:Nn \clist_put_right:Nn { Ne } }
+\cs_if_exist:NF \clist_set:Ne
+{ \cs_generate_variant:Nn \clist_set:Nn { Ne } }
+\cs_if_exist:NT \clist_count:e
+{ \cs_generate_variant:Nn \clist_count:n { e } }
+\cs_if_exist:NF \exp_args:NNNe
+{
+ \cs_new:Npn \exp_args:NNNe #1#2#3#4
+ {
+ \exp_after:wN #1
+ \exp_after:wN #2
+ \exp_after:wN #3
+ \tex_expanded:D { {#4} }
+ }
+}
-% ---------- 色彩组合 ---------- %
-\definecolor{darkgray}{HTML}{727477} % 时间颜色
-\definecolor{darkergray}{HTML}{F1F3F5} % 深色块
-\definecolor{lightergray}{HTML}{FCFDFE} % 浅色块
-\definecolor{blackgray}{HTML}{1A1D21} % 序号颜色
-\definecolor{SEM}{HTML}{DEEAF8} % 学期按钮
-\definecolor{SEM*}{HTML}{3085F3}
-\definecolor{SEM**}{HTML}{007DC3}
-\pagecolor{lightergray}
-\definecolor{H1}{HTML}{74A7A2} % 深绿
-\definecolor{H1*}{HTML}{E9EEED}
-\definecolor{H1**}{HTML}{009787}
-\definecolor{H2}{HTML}{50C9BD} % 浅绿
-\definecolor{H2*}{HTML}{E1F3F2}
-\definecolor{H2**}{HTML}{009D8F}
-\definecolor{H3}{HTML}{86AFFE} % 深蓝
-\definecolor{H3*}{HTML}{DBE7FF}
-\definecolor{H3**}{HTML}{1663F5}
-\definecolor{H4}{HTML}{6BC0EB} % 浅蓝
-\definecolor{H4*}{HTML}{D8EFFA}
-\definecolor{H4**}{HTML}{0072B1}
-\definecolor{H5}{HTML}{D58DFB} % 深紫
-\definecolor{H5*}{HTML}{F2E3FB}
-\definecolor{H5**}{HTML}{A83FDF}
-\definecolor{H6}{HTML}{FF9393} % 浅紫
-\definecolor{H6*}{HTML}{FFDEDE}
-\definecolor{H6**}{HTML}{E73030}
-\definecolor{H7}{HTML}{FFA17D} % 深橙
-\definecolor{H7*}{HTML}{F5E1DA}
-\definecolor{H7**}{HTML}{E2612F}
-\definecolor{H8}{HTML}{F3C06A} % 浅橙
-\definecolor{H8*}{HTML}{F3EADB}
-\definecolor{H8**}{HTML}{E09B14}
-\definecolor{H9}{HTML}{D09966} % 棕色
-\definecolor{H9*}{HTML}{F2E0D0}
-\definecolor{H9**}{HTML}{C96F1C}
-\definecolor{W1}{HTML}{CCAD52}
-\definecolor{W2}{HTML}{8FCC52}
-\definecolor{W3}{HTML}{52CC70}
-\definecolor{W4}{HTML}{52CCCC}
-\definecolor{W5}{HTML}{5270CC}
-\definecolor{W6}{HTML}{8F52CC}
-\definecolor{W7}{HTML}{CC52AD}
+% Module for left -> right data structure (by @ljguo)
+\cs_new_protected_nopar:Npn \__litetable_get_left:nN #1#2
+{
+ \group_begin:
+ \seq_set_split:Nnn \l__litetable_tmpa_seq { -> } { #1 }
+ \exp_args:NNNe \group_end: \tl_set:Nn #2
+ { \seq_item:Nn \l__litetable_tmpa_seq { 1 } }
+}
+\cs_new_protected_nopar:Npn \__litetable_get_right:nN #1#2
+{
+ \group_begin:
+ \seq_set_split:Nnn \l__litetable_tmpa_seq { -> } { #1 }
+ \exp_args:NNNe \group_end: \tl_set:Nn #2
+ { \seq_item:Nn \l__litetable_tmpa_seq { 2 } }
+}
+\cs_generate_variant:Nn \__litetable_get_left:nN { e }
+\cs_generate_variant:Nn \__litetable_get_right:nN { e }
-\usetikzlibrary{calc}
-\ifdefstring{\LITE@direction}{portiait}{
- \def\pagewidth{8.5 in}
- \def\pageheight{-11 in}
- \def\rotatepage{
- \def\pagewidth{11 in}
- \def\pageheight{-8.5 in}
+\int_new:N \l__time_num_int
+\dim_new:N \l__time_vunit_dim
+\cs_new_protected:Npn \litetable_msg_new:nn #1#2
+{ \msg_new:nnn { litetable} { #1 } { #2 } }
+\cs_new_protected:Npn \litetable_msg_warning:n #1
+{ \msg_warning:nn { litetable } { #1 } }
+\litetable_msg_new:nn { timelist }
+{ \exp_not:N \timelist~extra~time~group(s)~were~ignored }
+\cs_new_protected_nopar:Npn \litetable_timelist:nn #1#2
+{
+ \clist_set:Nn \l__litetable_timelist_clist { #2 }
+ \tl_if_empty:nTF { #1 }
+ {
+ \int_set:Nn \l__time_num_int
+ {
+ \clist_count:N \l__litetable_timelist_clist
+ }
+ }
+ {
+ \int_set:Nn \l__time_num_int { #1 }
+ \int_compare:nNnTF { #1 } <
+ { \clist_count:N \l__litetable_timelist_clist }
+ {
+ \int_set:Nn \l__time_num_int
+ {
+ \clist_count:N \l__litetable_timelist_clist
+ }
+ \litetable_msg_warning:n { timelist }
+ } { \int_set:Nn \l__time_num_int { #1 } }
}
- \def\rerotatepage{
- \def\pagewidth{8.5 in}
- \def\pageheight{-11 in}
+ \dim_set:Nn \l__time_vunit_dim
+ {
+ \fp_eval:n {1/(2\l__time_num_int+3.5)}\paperheight
}
-}{\relax}
+}
+\NewDocumentCommand \timelist { O{} m O{} }
+{ \litetable_timelist:nn { #1#3 } { #2 } }
-\ifdefstring{\LITE@direction}{landscape}{
- \def\pagewidth{11 in}
- \def\pageheight{-8.5 in}
- \def\rotatepage{
- \def\pagewidth{8.5 in}
- \def\pageheight{-11 in}
+\clist_new:N \l__week_ratio_clist
+\clist_new:N \l__week_accum_clist
+\int_new:N \l__week_num_int
+\dim_new:N \l__week_hunit_dim
+\cs_new_protected_nopar:Npn \litetable_weeklist:nn #1#2
+{
+ \tl_set:Nn \l__default_weeks_tl { #1 }
+ \clist_set:Nn \l__litetable_weeklist_clist { #2 }
+ \int_step_inline:nn
+ {
+ \clist_count:N \l__litetable_weeklist_clist
}
- \def\rerotatepage{
- \def\pagewidth{11 in}
- \def\pageheight{-8.5 in}
+ {
+ \__litetable_get_right:eN
+ {
+ \clist_item:Nn \l__litetable_weeklist_clist {##1}
+ } \l__litetable_tmpb_tl
+ \clist_put_right:Ne \l__week_ratio_clist
+ {
+ \l__litetable_tmpb_tl
+ }
}
-}{\relax}
-
-\ExplSyntaxOn % 数组
-% 1. Set up arrays
-\def\definearray#1#2
- {
- \seq_clear_new:c { l__litetable_array_#1_seq }
- \seq_set_split:cnn { l__litetable_array_#1_seq } { ; } { #2 }
- }
-
-\cs_generate_variant:Nn \seq_set_split:Nnn { c }
-
-% 2. Define commands to work with arrays
-\NewExpandableDocumentCommand{\arraycount}{ o m }
- {
- \IfNoValueTF { #1 }
- {
- \litetable_array_count_full:n { #2 }
- }
- {
- \litetable_array_count_item:nn { #2 } { #1 }
- }
- }
-
-\cs_new:Nn \litetable_array_count_item:nn
- {
- \clist_count:e { \seq_item:cn { l__litetable_array_#1_seq } { #2 } }
- }
+ \int_step_inline:nn
+ {
+ \clist_count:N \l__litetable_weeklist_clist
+ }
+ {
+ \clist_clear:N \l__week_accumtmp_clist
+ \int_step_inline:nn { ##1 }
+ {
+ \clist_put_right:Ne \l__week_accumtmp_clist
+ {
+ \clist_item:Nn \l__week_ratio_clist { ####1 }
+ }
+ }
+ \clist_put_right:Ne \l__week_accum_clist
+ {
+ \int_eval:n { \clist_use:Nn \l__week_accumtmp_clist { + } }
+ }
+ }
+ \int_set:Nn \l__week_num_int
+ {
+ \clist_item:Nn \l__week_accum_clist
+ {
+ \clist_count:N \l__litetable_weeklist_clist
+ }
+ }
+ \dim_set:Nn \l__week_hunit_dim
+ {
+ \fp_eval:n {1/\l__week_num_int*14/15}\paperwidth
+ }
+}
+\NewDocumentCommand \weeklist { O{} m O{} }
+{ \litetable_weeklist:nn { #1#3 } { #2 } }
-\NewExpandableDocumentCommand{\arrayitem}{ m m m }
- {
- \clist_item:en { \seq_item:cn { l__litetable_array_#1_seq } { #2 } } { #3 }
- }
+\NewDocumentCommand \more { m }
+{ \tl_set:Nn \l__litetable_comment_tl { #1 } }
-\ExplSyntaxOff
+\int_new:N \l__litetable_week_day_int
+\int_set:Nn \l__litetable_week_day_int {1}
+\NewDocumentCommand \newday { O {1} }
+{ \int_add:Nn \l__litetable_week_day_int { #1 } }
-\NewDocumentCommand{\timelist}{ o m }
+\keys_define:nn { litetable / frame }
{
- \gdef\@timelist{#2}
- \definearray{timelist}{#2}
- \IfNoValueTF{#1}{
- \ifnum \arraycount[2]{timelist}<\arraycount[1]{timelist}
- \def\@classnum{\arraycount[1]{timelist}}
- \else
- \def\@classnum{\arraycount[2]{timelist}}
- \fi
- }{\def\@classnum{#1}}
-}
-\ifcsname @timelist\endcsname
- \relax
- \else
- \def\@classnum{12}
-\fi
-\def\weeklist#1{
- \gdef\@weeklist{#1}
- \definearray{weeklist}{#1}
+ sem.tl_set:N = \l__bg_sem_tl,
+ color.tl_set:N = \l__bg_color_tl,
+ color.initial:n = gray,
}
-\gdef\@weeknum{\arraycount[1]{weeklist}}
-
-\RequirePackage{fontawesome5}
-\RequirePackage[hidelinks]{hyperref}
-\newcounter{number}
-\tikzset{
- hyperlink node/.style={
- alias=sourcenode,
- append after command={
- let \p1 = (sourcenode.north west),
- \p2 = (sourcenode.south east),
- \n1 = {\x2-\x1}, \n2 = {\y1-\y2} in
- node [inner sep=0pt, outer sep=auto, anchor=north west,at=(\p1)]
- {\Acrobatmenu{#1}{\XeTeXLinkBox{\phantom{\rule{\n1}{\n2}}}}}
- }
+\cs_new_protected_nopar:Npn \litetable_maketable:nn #1
+{
+ % Darker Block at top
+ \fill [ \l__bg_color_tl!5 ] (current~page.north~west)
+ rectangle + (\paperwidth,-1.5\l__time_vunit_dim)
+ node [ midway, black, font = \huge\bfseries ] {#1};
+ \tl_if_empty:NF { \l__bg_sem_tl }% Semester
+ {
+ \node [ shift = {(-.02\paperwidth,-.75\l__time_vunit_dim)},
+ left, rectangle, fill = DarkBlue!10,
+ text = DarkBlue!60, inner~sep = 2ex,
+ rounded~corners = 8pt, font = \large
+ ] at (current~page.north~east)
+ {\ensuremath\rightleftharpoons\ \l__bg_sem_tl};
}
-}
-\NewDocumentCommand{\makeframe}{ o m }{
- \draw [lightergray] (0,0) rectangle (\pagewidth,\pageheight);
- \fill [fill=darkergray] (0,0) rectangle (\pagewidth,{1.5*\pageheight/(2*\@classnum+3.5)});% 顶部深灰色块
- \node at (.5*\pagewidth,{.75*\pageheight/(2*\@classnum+3.5)}) {\huge\bfseries\sffamily #2}; % 标题
- \IfNoValueF{#1}{
- \node [outer sep=auto,hyperlink node=NextPage,left,rectangle,fill=SEM,text=SEM*,draw=none,inner sep=1.75ex,rounded corners=6pt] at (.98*\pagewidth,{.75*\pageheight/(2*\@classnum+3.5)}) {\large\sffamily\;$\rightleftharpoons$~#1\;}; % 学期
+ % Darker Blocks
+ \int_step_inline:nnnn {0} {2} {\l__time_num_int}
+ {
+ \filldraw [ fill = \l__bg_color_tl!5, draw = gray,
+ thick, densely~dashed, line~cap = round
+ ]
+ ([shift = {(-.4pt,\fp_eval:n {-2*##1-2.5}\l__time_vunit_dim)}]
+ current~page.north~west) rectangle +
+ ({\paperwidth+.8pt},-2\l__time_vunit_dim);
}
-
- \ifodd\@classnum
- \foreach \a in {2,4,...,\@classnum,\@classnum+2}
- \fill [fill=darkergray,yshift=(2*\a-1.5)*\pageheight/(2*\@classnum+3.5)] (0,0) rectangle (\pagewidth,{2*\pageheight/(2*\@classnum+3.5)}); % 中间深灰色块(循环)
- \else
- \foreach \a in {2,4,...,\@classnum}
- \fill [fill=darkergray,yshift=(2*\a-1.5)*\pageheight/(2*\@classnum+3.5)] (0,0) rectangle (\pagewidth,{2*\pageheight/(2*\@classnum+3.5)}); % 中间深灰色块(循环)
- \fill [fill=darkergray,yshift=(2.5+2*\@classnum)*\pageheight/(2*\@classnum+3.5)] (0,0) rectangle (\pagewidth,{\pageheight/(2*\@classnum+3.5)}); % 底部深灰色块
- \fi
- \foreach \a in {0,1,2,...,\@classnum}
- \draw [densely dashed,gray!75,yshift=(2.5+2*\a)*\pageheight/(2*\@classnum+3.5)] (0,0)--(\pagewidth,0); % 分割虚线
-
- % 时间标注
- \setcounter{number}{0}
- \ifcsempty{@timelist}{
- \foreach \a in {1,2,...,\@classnum}
+ % Classes numbering
+ \clist_if_empty:NTF {\l__litetable_timelist_clist}
+ {
+ \int_step_inline:nn {\l__time_num_int}
{
- \node [yshift=(1.5+2*\a)*\pageheight/(2*\@classnum+3.5)] at(\pagewidth/32,0)
- {\bfseries\large\color{blackgray}\texttt{\refstepcounter{number}\thenumber}};
+ \node [ shift = {(\paperwidth/30,{\fp_eval:n {
+ -2*##1-1.5}\l__time_vunit_dim})
+ }, darkgray!80, font = \large\ttfamily\bfseries
+ ] at (current~page.north~west) {##1};
}
- }{
- \foreach \x in {1,2,...,\@classnum}
+ }
+ {
+ \int_step_inline:nn {\l__time_num_int}
+ {
+ \node [ shift = {(\paperwidth/30,\fp_eval:n {
+ -2*##1-1}\l__time_vunit_dim)
+ }, darkgray!80, font = \large\ttfamily\bfseries
+ ] at (current~page.north~west) {##1};
+ }
+ % Classes time
+ \int_step_inline:nn
+ {
+ \clist_count:N \l__litetable_timelist_clist
+ }
+ {
+ \__litetable_get_left:eN
+ {
+ \clist_item:Nn \l__litetable_timelist_clist {##1}
+ } \l__litetable_tmpa_tl
+ \__litetable_get_right:eN
{
- \node [yshift=(2*\x+.9)*\pageheight/(2*\@classnum+3.5)] at (\pagewidth/32,0)
- {\bfseries\color{blackgray}\texttt{\refstepcounter{number}\thenumber}};
- \node[yshift=(2*\x+1.55)*\pageheight/(2*\@classnum+3.5)] at (\pagewidth/32,0)
- {\color{darkgray}\texttt{\arrayitem{timelist}{1}{\x}}};
- \node[yshift=(2*\x+2.1)*\pageheight/(2*\@classnum+3.5)] at (\pagewidth/32,0)
- {\color{darkgray}\texttt{\arrayitem{timelist}{2}{\x}}};
+ \clist_item:Nn \l__litetable_timelist_clist {##1}
+ } \l__litetable_tmpb_tl
+ \node [ shift = {(\paperwidth/30,\fp_eval:n {
+ -1.9-2*##1}\l__time_vunit_dim)
+ }, gray, font = \ttfamily ,align = center
+ ] at (current~page.north~west)
+ {\l__litetable_tmpa_tl\\\l__litetable_tmpb_tl};
}
}
-
- % 星期标注
- \foreach \a in {1,2,...,\@weeknum}
- \node [xshift=\pagewidth/16] at ({.5*(\arrayitem{weeklist}{2}{\a}+\arrayitem{weeklist}{2}{\a+1})*15*\pagewidth/16},{2*\pageheight/(2*\@classnum+3.5)})
- {\arrayitem{weeklist}{1}{\a}};
-
- \ifcsname @sticker\endcsname
- \node [opacity=.3,above left,yshift=(1.5+2*\@classnum)*\pageheight/(2*\@classnum+3.5),inner sep=0pt,outer sep=auto,scale=15] at (\pagewidth,{\pageheight/(2*\@classnum+3.5)}) {\includegraphics[width=\dimeval{\pagewidth/16/\@weeknum}]{\@sticker}};\fi
+ % Weekdays
+ \int_step_inline:nn
+ {
+ \clist_count:N \l__litetable_weeklist_clist
+ }
+ {
+ \__litetable_get_left:eN
+ {
+ \clist_item:Nn \l__litetable_weeklist_clist {##1}
+ } \l__litetable_tmpa_tl
+ \node [ font = \large\bfseries,
+ shift = {(\fp_eval:n {
+ (\clist_item:Nn \l__week_accum_clist {##1}
+ -\clist_item:Nn \l__week_ratio_clist {##1}/2)/
+ \l__week_num_int*14/15+1/15}\paperwidth,
+ -2\l__time_vunit_dim)}
+ ] at (current~page.north~west) { \l__litetable_tmpa_tl };
+ }
+ % Comment
+ \tl_if_empty:NF \l__litetable_comment_tl
+ {
+ \node [ yshift = .5\l__time_vunit_dim,
+ left = 1ex, darkgray, font = \small\bfseries
+ ] at (current~page.south~east)
+ { \l__litetable_comment_tl };
+ }
+ \tl_gclear:N \l__litetable_comment_tl
}
-
-\newcounter{weekday}
-\def\newday{\addtocounter{weekday}{1}}
-\AtEndEnvironment{tikzpicture}{\setcounter{weekday}{0}}
-\def\sticker#1{\gdef\@sticker{#1}}
-\def\corner#1{\gdef\@corner{#1}}
-\def\weeks#1{\gdef\@weeks{#1}}
-
-\NewDocumentCommand{\course}{O{H1} m m m m m O{\@weeks}}
+\NewDocumentCommand \maketable { O{} m O{} }
{
- \ifcsname @corner\endcsname
- \tikzset{corner/.style={rounded corners=\@corner}}
- \else
- \tikzset{corner/.style={}}
- \fi
- \fill [#1,corner,
- yshift=(2*(#2-1))*\pageheight/(2*\@classnum+3.5),
- xshift=\pagewidth/16]
- ({\arrayitem{weeklist}{2}{\theweekday+1}*15*\pagewidth/16},{2.5*\pageheight/(2*\@classnum+3.5)}) rectangle ++
- ({(\arrayitem{weeklist}{2}{\theweekday+2}-\arrayitem{weeklist}{2}{\theweekday+1})*15*\pagewidth/16},{(2+2*(#3-#2))*\pageheight/(2*\@classnum+3.5)}); % frame
-
- \fill [#1*,
- yshift=(2*(#2-1)+.5)*\pageheight/(2*\@classnum+3.5),
- xshift=\pagewidth/16]
- ({\arrayitem{weeklist}{2}{\theweekday+1}*15*\pagewidth/16},{2.5*\pageheight/(2*\@classnum+3.5)}) --++
- ({(\arrayitem{weeklist}{2}{\theweekday+2}-\arrayitem{weeklist}{2}{\theweekday+1})*15*\pagewidth/16},0)
- { [corner] --++ (0,{(1.5+2*(#3-#2))*\pageheight/(2*\@classnum+3.5)}) --++
- ({(-\arrayitem{weeklist}{2}{\theweekday+2}+\arrayitem{weeklist}{2}{\theweekday+1})*15*\pagewidth/16},0)} -- cycle; % content
-
- \node [#1**,yshift=(#2+#3-1.25)*\pageheight/(2*\@classnum+3.5),
- xshift=\pagewidth/16] at
- ({.5*(\arrayitem{weeklist}{2}{\theweekday+1}+\arrayitem{weeklist}{2}{\theweekday+2})*15*\pagewidth/16},{2.5*\pageheight/(2*\@classnum+3.5)})
- {\heiti\large\bfseries #4}; % course
-
- \node [#1**,above,
- yshift=(#2+#3-.2)*\pageheight/(2*\@classnum+3.5),
- xshift=\pagewidth/16] at
- ({.5*(\arrayitem{weeklist}{2}{\theweekday+1}+\arrayitem{weeklist}{2}{\theweekday+2})*15*\pagewidth/16},{2.5*\pageheight/(2*\@classnum+3.5)})
- {\heiti\bfseries\small #5}; % location
-
- \node [#1**,below,
- yshift=(#2+#3-.2)*\pageheight/(2*\@classnum+3.5),
- xshift=\pagewidth/16] at
- ({.5*(\arrayitem{weeklist}{2}{\theweekday+1}+\arrayitem{weeklist}{2}{\theweekday+2})*15*\pagewidth/16},{2.5*\pageheight/(2*\@classnum+3.5)})
- {\heiti\bfseries\small #6}; % teacher
+ \group_begin:
+ \keys_set:nn { litetable / frame } { #1#3 }
+ \litetable_maketable:nn { #2 }
+ \group_end:
+}
- \ifcsname @weeks\endcsname
- \node [#1**,above left,
- yshift=2*#3*\pageheight/(2*\@classnum+3.5),
- xshift=\pagewidth/16] at
- ({\arrayitem{weeklist}{2}{\theweekday+2}*15*\pagewidth/16},{2.5*\pageheight/(2*\@classnum+3.5)})
- {\heiti\footnotesize #7};
- \fi % weeks
+\keys_define:nn { litetable / course }
+{
+ color.tl_set:N = \l__course_color_tl,
+ color.initial:n = teal,
+ subject.tl_set:N = \l__course_subject_tl,
+ teacher.tl_set:N = \l__course_teacher_tl,
+ location.tl_set:N = \l__course_location_tl,
+ weeks.tl_set:N = \l__default_weeks_tl,
+ weeks.initial:n = \l__default_weeks_tl,
}
+\dim_new:N \l__course_infoshift_dim
+\cs_new_protected_nopar:Npn \__litetable_course_box_aux:nn #1#2
+{
+ % Course box fg
+ \begin{scope}
+ \clip [ preaction = {draw, ultra~thick, \l__course_color_tl!60},
+ preaction = {fill, \l__course_color_tl!10},
+ rounded~corners = 8pt ]
+ ([shift = {(
+ \fp_eval:n
+ {
+ \clist_item:Nn \l__week_accum_clist
+ {\l__litetable_week_day_int}-
+ \clist_item:Nn \l__week_ratio_clist
+ {\l__litetable_week_day_int}
+ }\l__week_hunit_dim+\paperwidth/15+1.2pt,
+ \fp_eval:n {-.5-2*#1}\l__time_vunit_dim-1.2pt)
+ }]current~page.north~west) rectangle + (
+ \clist_item:Nn \l__week_ratio_clist {\l__litetable_week_day_int}
+ \l__week_hunit_dim-2.4pt,
+ \fp_eval:n {2*(#1-#2-1)}\l__time_vunit_dim+2.4pt);
+ % Course box bg
+ \fill [ \l__course_color_tl!60 ]
+ ([shift = {(
+ \fp_eval:n {
+ \clist_item:Nn \l__week_accum_clist
+ {\l__litetable_week_day_int}-
+ \clist_item:Nn \l__week_ratio_clist
+ {\l__litetable_week_day_int}
+ }\l__week_hunit_dim+\paperwidth/15,
+ \fp_eval:n {-.5-2*#1}\l__time_vunit_dim)
+ }]current~page.north~west) rectangle + (
+ \clist_item:Nn \l__week_ratio_clist{\l__litetable_week_day_int}
+ \l__week_hunit_dim,-.5\l__time_vunit_dim);
+ \end{scope}
+ % Course info
+ \tl_if_eq:NNTF {#1} {#2}% Single-unit height course box
+ {
+ \bool_if:nTF
+ {
+ \tl_if_empty_p:N \l__course_location_tl &&
+ \tl_if_empty_p:N \l__course_teacher_tl
+ }
+ {\tl_set:Nn \l_shortcourse_anchor_tl { }}
+ {\tl_set:Nn \l_shortcourse_anchor_tl { above }}
+ \cs_if_exist:NT {\l__course_subject_tl }
+ {
+ \node [ shift = {(\fp_eval:n {
+ \clist_item:Nn \l__week_accum_clist
+ {\l__litetable_week_day_int}-
+ \clist_item:Nn \l__week_ratio_clist
+ {\l__litetable_week_day_int}/2
+ }\l__week_hunit_dim+\paperwidth/15,
+ \fp_eval:n {-1.75-#1-#2}\l__time_vunit_dim)},
+ \l_shortcourse_anchor_tl, \l__course_color_tl!60,
+ align = center, font = \large\bfseries
+ ] at (current~page.north~west)
+ { \l__course_subject_tl };
+ }
+ \bool_if:nTF
+ {
+ !\tl_if_empty_p:N \l__course_location_tl &&
+ !\tl_if_empty_p:N \l__course_teacher_tl
+ }
+ {\tl_set:Nn \l_shortcourse_sep_tl { ,~ }}
+ {\tl_set:Nn \l_shortcourse_sep_tl { }}
+ \node [ shift = {(\fp_eval:n {
+ \clist_item:Nn \l__week_accum_clist
+ {\l__litetable_week_day_int}-
+ \clist_item:Nn \l__week_ratio_clist
+ {\l__litetable_week_day_int}/2
+ }\l__week_hunit_dim+\paperwidth/15,
+ \fp_eval:n {-1.75-#1-#2}\l__time_vunit_dim)},
+ below, \l__course_color_tl!60, align = center
+ ] at (current~page.north~west)
+ {
+ \tl_if_exist:NT { \l__course_location_tl }
+ { \l__course_location_tl }
+ \l_shortcourse_sep_tl
+ \tl_if_exist:NT { \l__course_teacher_tl }
+ { \l__course_teacher_tl }
+ };
+ }
+ {
+ \bool_if:nTF% Multiply-unit height course box
+ {
+ \tl_if_empty_p:N \l__course_location_tl &&
+ \tl_if_empty_p:N \l__course_teacher_tl
+ }
+ {
+ \tl_set:Nn \l_course_anchor_tl {}
+ \dim_set:Nn \l__course_infoshift_dim { 0pt }
+ }
+ {
+ \tl_set:Nn \l_course_anchor_tl { above }
+ \dim_set:Nn \l__course_infoshift_dim { \l__time_vunit_dim/8 }
+ }
+ \cs_if_exist:NT { \l__course_subject_tl }
+ {
+ \node [ font = \large\bfseries, \l_course_anchor_tl,
+ shift = {(\fp_eval:n {
+ \clist_item:Nn \l__week_accum_clist
+ {\l__litetable_week_day_int}-
+ \clist_item:Nn \l__week_ratio_clist
+ {\l__litetable_week_day_int }/2
+ }\l__week_hunit_dim+\paperwidth/15,
+ \fp_eval:n {-1.5-#1-#2}\l__time_vunit_dim)},
+ yshift = \l__course_infoshift_dim,
+ \l__course_color_tl!60, align = center,
+ ] at (current~page.north~west)
+ { \l__course_subject_tl };
+ }
+ \bool_if:nTF
+ {
+ !\tl_if_empty_p:N \l__course_location_tl &&
+ !\tl_if_empty_p:N \l__course_teacher_tl
+ }
+ {
+ \tl_set:Nn \l_courseinfo_sep_tl { \\ }
+ }
+ {
+ \tl_set:Nn \l_courseinfo_sep_tl { }
+ }
+ \node [ below, \l__course_color_tl!60, align = center,
+ shift = {(\fp_eval:n {
+ \clist_item:Nn \l__week_accum_clist
+ {\l__litetable_week_day_int}-
+ \clist_item:Nn \l__week_ratio_clist
+ {\l__litetable_week_day_int}/2
+ }\l__week_hunit_dim+\paperwidth/15,
+ \fp_eval:n {-1.625-#1-#2}\l__time_vunit_dim
+ )}] at (current~page.north~west)
+ {
+ \tl_if_exist:NT { \l__course_location_tl }
+ { \l__course_location_tl }
+ \l_courseinfo_sep_tl
+ \tl_if_exist:NT { \l__course_teacher_tl }
+ { \l__course_teacher_tl }
+ };
+ \node [ above~left, \l__course_color_tl!60, outer~sep = .5ex,
+ shift = {(
+ \clist_item:Nn \l__week_accum_clist
+ {\l__litetable_week_day_int}
+ \l__week_hunit_dim+\paperwidth/15,
+ \fp_eval:n {-2.5-2*#2}\l__time_vunit_dim
+ )}] at (current~page.north~west) { \l__default_weeks_tl };
+ }
+}
+\litetable_msg_new:nn { course }
+{ \exp_not:N \course~box(s)~exceed~workdays~were~ignored }
+\NewDocumentCommand \course { O{} m O{} m O{} }
+{
+ \group_begin:
+ \int_compare:nNnTF {\l__litetable_week_day_int-1} <
+ {\clist_count:N \l__litetable_weeklist_clist}
+ {
+ \keys_set:nn { litetable / course } { #1#3#5 }
+ \__litetable_course_box_aux:nn { #2 } { #4 }
+ }{
+ \litetable_msg_warning:n { course }
+ }
+ \group_end:
+}
+
+\endinput
-\def\more#1{
- \node [xshift=-1em,yshift=(2.5+2*\@classnum)*\pageheight/(2*\@classnum+3.5),left] at (\pagewidth,{.5*\pageheight/(2*\@classnum+3.5)}){\small\bfseries\color{darkgray}#1};
-} \ No newline at end of file
+% End of file litetable.cls \ No newline at end of file
diff --git a/macros/latex/contrib/lni/CHANGELOG.md b/macros/latex/contrib/lni/CHANGELOG.md
index 5bb6f9697c..377ce68c43 100644
--- a/macros/latex/contrib/lni/CHANGELOG.md
+++ b/macros/latex/contrib/lni/CHANGELOG.md
@@ -6,9 +6,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
## [Unreleased]
-## [1.9] - 2024-07-1
+## [1.10] - 2024-07-23
+### Changed
+- Footnotes are set as superscripts in the footer
+- URLs are set using the text font instead of a typewriter font
+
+### Fixed
+- Support for multiple affiliations (#173)
+
+## [1.9] - 2024-07-01
### Added
-- Support for multiple affiliations
+- Support for multiple affiliations (#158)
## [1.8.1] - 2024-01-08
@@ -171,7 +179,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
First release of the revised files
-[Unreleased]: https://github.com/gi-ev/LNI/compare/v1.9...HEAD
+[Unreleased]: https://github.com/gi-ev/LNI/compare/v1.10...HEAD
+[1.10]: https://github.com/gi-ev/LNI/compare/v1.9...v1.10
[1.9]: https://github.com/gi-ev/LNI/compare/v1.8.1...v1.9
[1.8.1]: https://github.com/gi-ev/LNI/compare/v1.8...v1.8.1
[1.8]: https://github.com/gi-ev/LNI/compare/v1.7...v1.8
diff --git a/macros/latex/contrib/lni/README.md b/macros/latex/contrib/lni/README.md
index 034ef480d8..9935391e3b 100644
--- a/macros/latex/contrib/lni/README.md
+++ b/macros/latex/contrib/lni/README.md
@@ -4,7 +4,7 @@
----------------------------------------------------------------------------
lni -- A class for submissions to the ``Lecture Notes in Informatics''
(c) 2016-2024 Gesellschaft für Informatik (GI)
-Version: 1.9
+Version: 1.10
Maintainer: Martin Sievers
Email: martin.sievers@schoenerpublizieren.de
License: Released under the LaTeX Project Public License v1.3c or later
diff --git a/macros/latex/contrib/lni/lni.dtx b/macros/latex/contrib/lni/lni.dtx
index 257f0d4bb0..b5699cbac6 100644
--- a/macros/latex/contrib/lni/lni.dtx
+++ b/macros/latex/contrib/lni/lni.dtx
@@ -134,7 +134,7 @@ This work consists of the file lni.dtx
%<class>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<class>\ProvidesClass{lni}
%<*class>
- [2024/07/01 v1.9 Official class for submissions to the ``Lecture Notes
+ [2024/07/23 v1.10 Official class for submissions to the ``Lecture Notes
in Informatics'']
%</class>
%<*driver>
@@ -287,6 +287,8 @@ This work consists of the file lni.dtx
% \changes{v1.8}{2022/11/25}{Make class compatable with latest publisher requirements (#121)}
% \changes{v1.8}{2022/11/25}{Make usage of `hyperref` mandatory (#131)}
% \changes{v1.9}{2024/07/01}{Support multiple affiliations (#158)}
+% \changes{v1.10}{2024/07/01}{Change font for URLs to text font and change footnote numbers to superscript}
+% \changes{v1.10}{2024/07/23}{Fix support multiple affiliations (#173)}
%
% \GetFileInfo{\jobname.dtx}
% \DoNotIndex{\newcommand,\newenvironment}
@@ -1046,7 +1048,7 @@ This work consists of the file lni.dtx
\RequirePackage[hang]{footmisc}
\setlength{\footnotemargin}{1em}
\long\def\@makefntext#1{%
- \def\@makefnmark{\rlap{\normalfont\@thefnmark}}%
+ \def\@makefnmark{\rlap{\normalfont\textsuperscript{\@thefnmark}}}%
\ifFN@hangfoot
\bgroup
\setbox\@tempboxa\hbox{%
@@ -1160,9 +1162,9 @@ This work consists of the file lni.dtx
\newcommand{\@multiaffil}[1]{%
\ifcsundef{@emailsandorcids#1}{\csgdef{@emailsandorcids#1}{}}{}%
\ifcsempty{@emailsandorcids#1}%
- {\csgappto{@emailsandorcids#1}{%
+ {\protected@csxappto{@emailsandorcids#1}{%
\if\relax\@currEmail\relax\else\email{\@currEmail}\fi\if\relax\@currOrcid\relax\else,\ \orcid{\@currOrcid}\fi}}%
- {\csgappto{@emailsandorcids#1}{%
+ {\protected@csxappto{@emailsandorcids#1}{%
\if\relax\@currEmail\relax\else;\ \email{\@currEmail}\fi\if\relax\@currOrcid\relax\else,\ \orcid{\@currOrcid}\fi}}%
}
@@ -1549,6 +1551,7 @@ This work consists of the file lni.dtx
% \end{macrocode}
% \begin{macrocode}
\RequirePackage{url}
+\urlstyle{same}
% \end{macrocode}
% improve wrapping of URLs - hint by http://tex.stackexchange.com/a/10419/9075
% \begin{macrocode}
diff --git a/macros/latex/contrib/lni/lni.pdf b/macros/latex/contrib/lni/lni.pdf
index c3b50c0cd1..b79a12a091 100644
--- a/macros/latex/contrib/lni/lni.pdf
+++ b/macros/latex/contrib/lni/lni.pdf
Binary files differ
diff --git a/macros/latex/contrib/lstaddons/README b/macros/latex/contrib/lstaddons/README.txt
index 7306f47deb..04cca2d309 100644
--- a/macros/latex/contrib/lstaddons/README
+++ b/macros/latex/contrib/lstaddons/README.txt
@@ -1,8 +1,8 @@
LaTeX bundle 'lstaddons'
~~~~~~~~~~~~~~~~~~~~~~~~
-Copyright (c) 2011-2012 by Martin Scharrer <martin@scharrer-online.de>
+Copyright (c) 2011-2022 by Martin Scharrer <martin.scharrer@web.de>
CTAN: http://www.ctan.org/pkg/lstaddons
-Code repository: https://bitbucket.org/martin_scharrer/lstaddons
+Code repository: https://github.com/MartinScharrer/lstaddons/
This bundle contains a small collections of add-on packages for
the 'listings' package.
diff --git a/macros/latex/contrib/lstaddons/lstautogobble.dtx b/macros/latex/contrib/lstaddons/lstautogobble.dtx
index f9d62cf8d3..106034b6bb 100644
--- a/macros/latex/contrib/lstaddons/lstautogobble.dtx
+++ b/macros/latex/contrib/lstaddons/lstautogobble.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%<=*COPYRIGHT>
-%% Copyright (C) 2011-2012 by Martin Scharrer <martin@scharrer-online.de>
+%% Copyright (c) 2011-2022 by Martin Scharrer <martin.scharrer@web.de>
%% -----------------------------------------------------------------------
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -69,9 +69,9 @@
%
% \GetFileInfo{lstautogobble.dtx}
% \author{Martin Scharrer}
-% \email{martin@scharrer-online.de}
+% \email{martin.scharrer@web.de}
% \ifdefined\repository
-% \repository{https://bitbucket.org/martin_scharrer/lstautogobble}
+% \repository{https://github.com/MartinScharrer/lstaddons/}
% \fi
%
% \maketitle
diff --git a/macros/latex/contrib/lstaddons/lstautogobble.pdf b/macros/latex/contrib/lstaddons/lstautogobble.pdf
index 5321a97319..f054ba6597 100644
--- a/macros/latex/contrib/lstaddons/lstautogobble.pdf
+++ b/macros/latex/contrib/lstaddons/lstautogobble.pdf
Binary files differ
diff --git a/macros/latex/contrib/lstaddons/lstlinebgrd.dtx b/macros/latex/contrib/lstaddons/lstlinebgrd.dtx
index 860e6b6e81..705ffd19a7 100644
--- a/macros/latex/contrib/lstaddons/lstlinebgrd.dtx
+++ b/macros/latex/contrib/lstaddons/lstlinebgrd.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%<=*COPYRIGHT>
-%% Copyright (C) 2011-2012 by Martin Scharrer <martin@scharrer-online.de>
+%% Copyright (c) 2011-2024 by Martin Scharrer <martin.scharrer@web.de>
%% ----------------------------------------------------------------------
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -24,10 +24,10 @@
%<*driver>
\ProvidesFile{lstlinebgrd.dtx}[%
%<=*DATE>
- 2012/05/03
+ 2014/08/18
%<=/DATE>
%<=*VERSION>
- v0.1
+ v0.2
%<=/VERSION>
DTX file for 'lstlinebgrd']
\documentclass{ydoc}
@@ -73,14 +73,15 @@
%
% \changes{v0.1}{2012/05/03}{Initial release.}
+% \changes{v0.2}{2024/08/18}{Updated internal separator.}
%
% \DoNotIndex{\newcommand,\newenvironment}
%
% \GetFileInfo{lstlinebgrd.dtx}
% \author{Martin Scharrer}
-% \email{martin@scharrer-online.de}
+% \email{martin.scharrer@web.de}
% \ifdefined\repository
-% \repository{https://bitbucket.org/martin_scharrer/lstlinebgrd}
+% \repository{https://github.com/MartinScharrer/lstaddons/}
% \fi
%
% \maketitle
@@ -238,10 +239,10 @@
\lst@Key{numbers}{none}{%
\def\lst@PlaceNumber{\lst@linebgrd}%
\lstKV@SwitchCases{#1}%
- {none&\\%
- left&\def\lst@PlaceNumber{\llap{\normalfont
+ {none:\\%
+ left:\def\lst@PlaceNumber{\llap{\normalfont
\lst@numberstyle{\thelstnumber}\kern\lst@numbersep}\lst@linebgrd}\\%
- right&\def\lst@PlaceNumber{\rlap{\normalfont
+ right:\def\lst@PlaceNumber{\rlap{\normalfont
\kern\linewidth \kern\lst@numbersep
\lst@numberstyle{\thelstnumber}}\lst@linebgrd}%
}{\PackageError{Listings}{Numbers #1 unknown}\@ehc}}
diff --git a/macros/latex/contrib/lstaddons/lstlinebgrd.pdf b/macros/latex/contrib/lstaddons/lstlinebgrd.pdf
index 55843f75a6..af15c644f5 100644
--- a/macros/latex/contrib/lstaddons/lstlinebgrd.pdf
+++ b/macros/latex/contrib/lstaddons/lstlinebgrd.pdf
Binary files differ
diff --git a/macros/latex/contrib/magicwatermark/README.md b/macros/latex/contrib/magicwatermark/README.md
index db59f622e8..39615d2bb4 100644
--- a/macros/latex/contrib/magicwatermark/README.md
+++ b/macros/latex/contrib/magicwatermark/README.md
@@ -3,6 +3,4 @@
- Repository: https://github.com/ljguo1020/magicwatermark
- License: The LaTeX Project Public License 1.3c
-> magicwatermark is a package based on everypage and tikz and encapsulated by LATEX3 İt can
-> flexibly set and clear watermarks. All watermark content is placed in inside a node of verbtikz and
-> in the center of the page.
+magicwatermark is based on tikz and expl3, and can flexibly set backgrounds or watermarks.
diff --git a/macros/latex/contrib/magicwatermark/doc/magicwatermark-cn.pdf b/macros/latex/contrib/magicwatermark/doc/magicwatermark-cn.pdf
new file mode 100644
index 0000000000..c43ac7ff92
--- /dev/null
+++ b/macros/latex/contrib/magicwatermark/doc/magicwatermark-cn.pdf
Binary files differ
diff --git a/macros/latex/contrib/magicwatermark/doc/magicwatermark-cn.tex b/macros/latex/contrib/magicwatermark/doc/magicwatermark-cn.tex
new file mode 100644
index 0000000000..883f2b6808
--- /dev/null
+++ b/macros/latex/contrib/magicwatermark/doc/magicwatermark-cn.tex
@@ -0,0 +1,373 @@
+\documentclass{article}
+
+\usepackage{lipsum}
+
+\usepackage{../magicwatermark}
+
+\usepackage[margin = 2.51828cm]{geometry}
+
+
+\def\pkgname{\textcolor{teal}{\texttt{magicwatermark}}}
+\usepackage{indentfirst}
+\pagestyle{empty}
+
+\usepackage[UTF8, scheme=plain, fontset=none, heading=true, zihao=-4]{ctex}
+\setCJKmainfont[BoldFont={LXGWWenKai-Bold},ItalicFont={LXGWWenKai-Light}]{LXGWWenKai-Regular}
+\setCJKsansfont[BoldFont={LXGWWenKai-Bold}]{LXGWWenKai-Regular}
+\setCJKmonofont[BoldFont={LXGWWenKaiMono-Bold},ItalicFont={LXGWWenKaiMono-Light}]{LXGWWenKaiMono-Regular}
+
+\ctexset{
+% chapter={
+% format+=\raggedright,
+% name = {第,部分},
+% afterskip = .5cm
+% },
+ section={
+ format+=\raggedright,
+ afterskip = .5cm
+ },
+ contentsname = {目次}
+}
+
+\usepackage{fontspec}
+\IfFontExistsTF{calibri.ttf}
+{
+ \setmainfont{calibri.ttf}[
+ BoldFont = calibrib.ttf,
+ ItalicFont = calibrii.ttf,
+ BoldItalicFont = calibriz.ttf
+ ]
+}
+{}
+
+\usepackage[listings,breakable]{tcolorbox}
+
+\ExplSyntaxOn
+\clist_new:N \l_function_variant_list %fuction variant list
+\NewDocumentCommand{\function}{svo} % #1:function name #2: variant list
+{
+ \IfBooleanTF{#1}
+ {
+ \IfNoValueTF{#3}
+ {
+ \begin{tcolorbox}[width=\textwidth,left=1mm,right=1mm,top=1mm,bottom=1mm,sharp~corners,colback=white,boxrule=.5pt,colback=lime!30]
+ \texttt{Function}\hskip -2pt \Triangle\hskip -3pt \texttt{#2}\hfill \examplelabel*
+ \end{tcolorbox}
+ }
+ {
+ \clist_gset:Nn \l_function_variant_list {#3}
+ \begin{tcolorbox}[width=\textwidth,left=1mm,right=1mm,top=1mm,bottom=1mm,sharp~corners,colback=white,boxrule=.5pt,colback=lime!30]
+ \texttt{Function}\hskip -2pt \Triangle\hskip -3pt \texttt{#2\textcolor{gray}{(\clist_use:Nn \l_function_variant_list{|})}} \hfill \examplelabel*
+ \end{tcolorbox}
+ }
+ }
+ {
+ \IfNoValueTF{#3}
+ {
+ \def\functionn{
+ \texttt{#2}
+ }
+ }
+ {
+ \clist_gset:Nn \l_function_variant_list {#3}
+ \def\functionn{
+ \texttt{
+ #2
+ \textcolor{gray}{(\clist_use:Nn \l_function_variant_list{|})}
+ }
+ }
+ }
+ }
+
+}
+\NewDocumentCommand{\examplelabel}{s}
+{
+ \IfBooleanTF{#1}{
+ \raisebox{-0.5ex}{
+ \tikz{
+ \node[ball~color=purple,circle,outer~sep=0pt,scale=0.5] {\phantom{2}};
+ }}
+ }{
+ \raisebox{-0.5ex}{
+ \tikz{
+ \node[ball~color=cyan,circle,outer~sep=0pt,scale=0.5,font=\bfseries] {\theexample};
+ }}
+ }
+}
+\ExplSyntaxOff
+\def\Triangle{ % triangle icon
+ \raisebox{-0.3ex}{
+ \tikz{
+ \fill[scale=2,outer sep=0pt] (240:0.5ex) -- (0:0.5ex) -- (120:0.5ex);
+ }
+}}
+\newcounter{example}
+\tcbset{
+ example style/.style={
+ sharp corners,
+ colback=white,
+ boxrule=.5pt,
+ breakable,
+ left=1mm,right=1mm,top=1mm,bottom=1mm,
+ fonttitle=\bfseries,
+ colbacktitle=lime!30,
+ coltitle=black,
+ % title={MagicWatermark},
+ listing only
+ }
+}
+
+\newtcblisting[use counter=example]{example}[1][]{
+ listing options={
+ style=tcblatex,
+ tabsize = 1,
+ language={[LaTeX]TeX},
+ classoffset=0,
+ morekeywords = {MagicWatermark, foreach, includegraphics},
+ keywordstyle={\color[RGB]{178,34,34}\bfseries},
+ commentstyle={\color[RGB]{102,205,170}\itshape},
+ classoffset=1,
+ morekeywords = {setup, pages, content, is, append, style},
+ keywordstyle=\color{cyan!50!green}\bfseries,
+ },
+ example style,
+ #1
+ }
+
+
+\MagicWatermark{
+ setup = {
+ pages = {*},
+ content = {P-\thepage},
+ style = {shift = {(.5\textwidth, .5\textheight + \headheight + \headsep)}, scale = 3, text = cyan, font = \ttfamily}
+ },
+ setup = {
+ pages = {even},
+ style = {scale = 5, text = pink},
+ content = {Watermark},
+ is append
+ },
+ setup = {
+ pages = {1},
+ style = {text width = 1.7\paperwidth, rotate = 45, align = left, font = \Large\linespread{1}\selectfont, opacity = .1},
+ content = {
+ \foreach \x in {0, ..., 500} {Magic Watermark }
+ },
+ is append
+ }
+}
+
+
+\def\opt#1{\textcolor{magenta}{\texttt{#1}}}
+\def\para#1{\textcolor[rgb]{0.13, 0.67, 0.8}{\texttt{#1}}}
+
+\usepackage[hidelinks]{hyperref}
+\begin{document}
+
+
+\vspace*{\fill}
+\begin{center}
+ {\Huge \textcolor{teal}{\texttt{magicwatermark}} 宏包\footnote{\url{https://github.com/ljguo1020/magicwatermark}}} \\[.5cm]
+ {\Large 郭李军<ljguo1020@gmail.com>} \\[.5cm]
+ {\Large V1.2B}\\[1cm]
+\begin{example}[]
+\MagicWatermark{
+ setup = {
+ pages = {*},
+ content = {P-\thepage},
+ style = {shift = {(.5\textwidth, .5\textheight + \headheight + \headsep)}, scale = 3, text = cyan, font = \ttfamily}
+ },
+ setup = {
+ pages = {even},
+ style = {scale = 5, text = pink},
+ content = {Watermark},
+ is append
+ },
+ setup = {
+ pages = {1},
+ style = {text width = 1.7\paperwidth, rotate = 45, align = left, font = \Large, opacity = .1},
+ content = {
+ \foreach \x in {0, ..., 500} {Magic Watermark }
+ },
+ is append
+ }
+}
+\end{example}
+\end{center}
+
+\vspace*{\fill}
+
+\newpage
+
+
+\linespread{1.3}\selectfont
+\tableofcontents
+
+\section{介绍}
+
+\pkgname{} 是一个全新的水印宏包, 在 2022 年 6 月 17 日发布了第一版, 本次更新并不是基于第一版, 而是进行了重构.
+
+\pkgname{} 基于 \texttt{tikz} 和 \texttt{expl3}, 可以灵活的设置背景或水印.
+
+\section{使用}
+\pkgname{} 的使用, 相比于其它同类功能的包来说, 可以说是易用性最高的, 它只提供了一个命令 \verb|\MagicWatermark|, 命令参数由多个 \opt{setup} 规则组成.
+\begin{example}[]
+\MagicWatermark{
+ setup = {},
+ setup = {},
+ ...
+}
+\end{example}
+
+\opt{setup} 内部接受四个键值选项, 用于配置水印的表现形式.
+
+\subsection{pages}
+\opt{pages} 接受一个逗号分割列表, 用于配置水印作用范围, 例如 \verb|pages = {2, 4, 5, 8-10}|, 表示选中页码为第 2, 4, 5, 8, 9, 10 这些页面.
+
+\opt{pages} 共接受 4 种配置规则,
+\begin{itemize}
+ \item \para{*}, 表示所有页面;
+ \item \para{odd} 和 \para{oven}, 表示奇偶页;
+ \item 范围, 形如 \para{3-5}, \para{12-ii};
+ \item 表达式, 形如 \para{2X+1}, \para{2X\^{}2+X+1}, 但是变量必须为 \para{X}.
+\end{itemize}
+
+这里假定页面总页数为 24 页,
+\begin{example}[title = pages 配置规则]
+pages = {*} => 1, 2, 3, ..., 24
+pages = {odd} => 1, 3, 5, ..., 23
+pages = {1, 3, 5-10} => 1, 3, 5, 6, 7, ..., 10
+pages = {1-5, 8, 20-ii} => 1, 2, ..., 5, 8, 20, 21, ..., 23
+pages = {3X + 1} => 1, 4, 7, 10, ..., 22
+\end{example}
+
+\subsection{tikz}
+\opt{tikz} 用于设置是否将水印内容放置在 \texttt{tikz} 的 \texttt{node} 中, 见下文, 可选值为 \para{true} 和 \para{false}, 默认为 \para{true}. 当你需要使用 \opt{tikz} 时, 需要手动加载 \texttt{tikz} 宏包.
+
+\subsection{content}
+\opt{content} 用来设置水印的内容, 当 \opt{tikz} 被启用时, 它被放在了 \texttt{tikz} 的 \texttt{node} 中, 为此, 想要灵活的设置它, 您需要对 \texttt{node} 有一些了解.
+
+\subsection{style}
+\opt{style} 用于设置容纳水印内容的 \texttt{node} 的样式, 默认为 \para{inner~sep = 0pt, outer~sep = 0pt, opacity = .5, align = left}, 当 \opt{tikz} 被禁用时, 它会被忽略.
+
+\subsection{is append}
+\opt{is append} 用于设置是否覆盖当前页已有的水印, 可选值为 \para{true} 和 \para{false}, 默认为 \para{false}.
+
+\section{使用案例}
+\begin{example}[title = 为所有页面右上角添加页码]
+% \usepackage{tikz}
+\MagicWatermark{
+ setup = {
+ pages = {*},
+ content = {P-\thepage},
+ style = {shift = {(.5\textwidth, .5\textheight + \headheight + \headsep)}, scale = 3, text = cyan, font = \ttfamily}
+ }
+}
+\end{example}
+
+\begin{example}[title = 为偶数页页面中心添加文字 Watermark]
+% \usepackage{tikz}
+\MagicWatermark{
+ setup = {
+ pages = {even},
+ style = {scale = 5, text = pink},
+ content = {Watermark},
+ is append
+ }
+}
+\end{example}
+
+\begin{example}[title = 为第二页到最后一页设置铺满整个页面的文字]
+% \usepackage{tikz}
+\MagicWatermark{
+ setup = {
+ pages = {2-i},
+ style = {text width = 1.7\paperwidth, rotate = 45, align = left, font = \Large, opacity = .1},
+ content = {
+ \foreach \x in {0, ..., 500} {Magic Watermark }
+ },
+ is append
+ }
+}
+\end{example}
+
+\begin{example}[title = 为奇偶页设置不同水印]
+% \usepackage{tikz}
+\MagicWatermark{
+ setup = {
+ pages = {even},
+ style = {scale = 8, rotate = 45, text=red, align = center,font = \linespread{2}\selectfont},
+ content = {
+ Even MagicWatermark\\
+ Even MagicWatermark\\
+ Even MagicWatermark\\
+ Even MagicWatermark
+ }
+ },
+ setup = {
+ pages = {odd},
+ style = {scale = 6, rotate = -45, text = cyan, text width = 1.7\paperwidth, font = \linespread{1.5}\selectfont, align = center},
+ content = {
+ \foreach \x in {0,...,5}{
+ Odd MagicWatermark
+ }
+ }
+ }
+}
+\end{example}
+
+\begin{example}[title = 设置图片为水印]
+% \usepackage{tikz}
+\MagicWatermark{
+ setup = {
+ pages = {even},
+ style = {opacity = 0.3},
+ content = {
+ \includegraphics{example-image-a}
+ }
+ },
+ setup = {
+ pages = {odd},
+ style = {opacity = .3, rotate=45, text width = 3\paperwidth},
+ content = {
+ \foreach \x in {0, ..., 20}{
+ \foreach \y in {1, 2, 3} {
+ \includegraphics{example-image-b}
+ } \\
+ }
+ }
+ }
+}
+\end{example}
+
+\begin{example}[title = 禁用 tikz]
+\def\addhead#1#2{%
+ \expandafter\gdef\csname head@content@#1\endcsname{#2}%
+}
+
+\def\printhead#1{%
+ \csname head@content@#1\endcsname%
+}
+
+\addhead{2}{The only way to do great work is to love what you do.}
+\addhead{3}{Success is not final, failure is not fatal: It is the courage to continue that counts.}
+\addhead{4}{In the end, we will remember not the words of our enemies, but the silence of our friends.}
+\addhead{5}{It does not matter how slowly you go as long as you do not stop.}
+
+\NewDocumentCommand{\mywatermark}{}{%
+ \begin{tikzpicture}[remember picture, overlay]
+ \node[yshift = -\headheight - \headsep, text = teal, font = \large] at (current page.north) {\printhead{\thepage}};
+ \end{tikzpicture}
+}
+
+\MagicWatermark{
+ setup = {
+ pages = {2-5},
+ tikz = false,
+ content = \mywatermark
+ }
+}
+\end{example}
+
+
+\end{document}
diff --git a/macros/latex/contrib/magicwatermark/doc/magicwatermark-en.pdf b/macros/latex/contrib/magicwatermark/doc/magicwatermark-en.pdf
new file mode 100644
index 0000000000..30b84bd6cd
--- /dev/null
+++ b/macros/latex/contrib/magicwatermark/doc/magicwatermark-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/magicwatermark/doc/magicwatermark-en.tex b/macros/latex/contrib/magicwatermark/doc/magicwatermark-en.tex
new file mode 100644
index 0000000000..e6520fa330
--- /dev/null
+++ b/macros/latex/contrib/magicwatermark/doc/magicwatermark-en.tex
@@ -0,0 +1,400 @@
+\documentclass{article}
+
+\usepackage{lipsum}
+
+\usepackage{../magicwatermark}
+
+\usepackage[margin = 2.51828cm]{geometry}
+
+
+\def\pkgname{\textcolor{teal}{\texttt{magicwatermark}}}
+\usepackage{indentfirst}
+\pagestyle{empty}
+
+\usepackage[UTF8, scheme=plain, fontset=none, heading=true, zihao=-4]{ctex}
+%\setCJKmainfont[BoldFont={LXGWWenKai-Bold},ItalicFont={LXGWWenKai-Light}]{LXGWWenKai-Regular}
+%\setCJKsansfont[BoldFont={LXGWWenKai-Bold}]{LXGWWenKai-Regular}
+%\setCJKmonofont[BoldFont={LXGWWenKaiMono-Bold},ItalicFont={LXGWWenKaiMono-Light}]{LXGWWenKaiMono-Regular}
+
+\ctexset{
+% chapter={
+% format+=\raggedright,
+% name = {第,部分},
+% afterskip = .5cm
+% },
+ section={
+ format+=\raggedright,
+ afterskip = .5cm
+ },
+ contentsname = {Table of contents}
+}
+
+\usepackage{fontspec}
+\IfFontExistsTF{calibri.ttf}
+{
+ \setmainfont{calibri.ttf}[
+ BoldFont = calibrib.ttf,
+ ItalicFont = calibrii.ttf,
+ BoldItalicFont = calibriz.ttf
+ ]
+}
+{}
+
+\newcommand\blfootnote[1]{
+ \begingroup
+ \renewcommand\thefootnote{}\footnote{#1}
+ \addtocounter{footnote}{-1}
+ \endgroup
+}
+
+\usepackage[listings,breakable]{tcolorbox}
+
+\ExplSyntaxOn
+\clist_new:N \l_function_variant_list %fuction variant list
+\NewDocumentCommand{\function}{svo} % #1:function name #2: variant list
+{
+ \IfBooleanTF{#1}
+ {
+ \IfNoValueTF{#3}
+ {
+ \begin{tcolorbox}[width=\textwidth,left=1mm,right=1mm,top=1mm,bottom=1mm,sharp~corners,colback=white,boxrule=.5pt,colback=lime!30]
+ \texttt{Function}\hskip -2pt \Triangle\hskip -3pt \texttt{#2}\hfill \examplelabel*
+ \end{tcolorbox}
+ }
+ {
+ \clist_gset:Nn \l_function_variant_list {#3}
+ \begin{tcolorbox}[width=\textwidth,left=1mm,right=1mm,top=1mm,bottom=1mm,sharp~corners,colback=white,boxrule=.5pt,colback=lime!30]
+ \texttt{Function}\hskip -2pt \Triangle\hskip -3pt \texttt{#2\textcolor{gray}{(\clist_use:Nn \l_function_variant_list{|})}} \hfill \examplelabel*
+ \end{tcolorbox}
+ }
+ }
+ {
+ \IfNoValueTF{#3}
+ {
+ \def\functionn{
+ \texttt{#2}
+ }
+ }
+ {
+ \clist_gset:Nn \l_function_variant_list {#3}
+ \def\functionn{
+ \texttt{
+ #2
+ \textcolor{gray}{(\clist_use:Nn \l_function_variant_list{|})}
+ }
+ }
+ }
+ }
+
+}
+\NewDocumentCommand{\examplelabel}{s}
+{
+ \IfBooleanTF{#1}{
+ \raisebox{-0.5ex}{
+ \tikz{
+ \node[ball~color=purple,circle,outer~sep=0pt,scale=0.5] {\phantom{2}};
+ }}
+ }{
+ \raisebox{-0.5ex}{
+ \tikz{
+ \node[ball~color=cyan,circle,outer~sep=0pt,scale=0.5,font=\bfseries] {\theexample};
+ }}
+ }
+}
+\ExplSyntaxOff
+\def\Triangle{ % triangle icon
+ \raisebox{-0.3ex}{
+ \tikz{
+ \fill[scale=2,outer sep=0pt] (240:0.5ex) -- (0:0.5ex) -- (120:0.5ex);
+ }
+}}
+\newcounter{example}
+\tcbset{
+ example style/.style={
+ sharp corners,
+ colback=white,
+ boxrule=.5pt,
+ breakable,
+ left=1mm,right=1mm,top=1mm,bottom=1mm,
+ fonttitle=\bfseries,
+ colbacktitle=lime!30,
+ coltitle=black,
+ % title={MagicWatermark},
+ listing only
+ }
+}
+
+\newtcblisting[use counter=example]{example}[1][]{
+ listing options={
+ style=tcblatex,
+ tabsize = 1,
+ language={[LaTeX]TeX},
+ classoffset=0,
+ morekeywords = {MagicWatermark, foreach, includegraphics},
+ keywordstyle={\color[RGB]{178,34,34}\bfseries},
+ commentstyle={\color[RGB]{102,205,170}\itshape},
+ classoffset=1,
+ morekeywords = {setup, pages, content, is, append, style},
+ keywordstyle=\color{cyan!50!green}\bfseries,
+ },
+ example style,
+ #1
+ }
+
+
+\MagicWatermark{
+ setup = {
+ pages = {*},
+ content = {P-\thepage},
+ style = {shift = {(.5\textwidth, .5\textheight + \headheight + \headsep)}, scale = 3, text = cyan, font = \ttfamily}
+ },
+ setup = {
+ pages = {even},
+ style = {scale = 5, text = pink},
+ content = {Watermark},
+ is append
+ },
+ setup = {
+ pages = {1},
+ style = {text width = 1.7\paperwidth, rotate = 45, align = left, font = \Large\linespread{1}\selectfont, opacity = .1},
+ content = {
+ \foreach \x in {0, ..., 500} {Magic Watermark }
+ },
+ is append
+ }
+}
+
+
+\def\opt#1{\textcolor{magenta}{\texttt{#1}}}
+\def\para#1{\textcolor[rgb]{0.13, 0.67, 0.8}{\texttt{#1}}}
+
+\usepackage[hidelinks]{hyperref}
+\begin{document}
+
+
+\vspace*{\fill}
+\begin{center}
+ {\Huge The \textcolor{teal}{\texttt{magicwatermark}}\footnote{\url{https://github.com/ljguo1020/magicwatermark}} package\blfootnote{English version of the documentation by Jérémy Just <\url{jeremy@jejust.fr}>.}} \\[.5cm]
+ {\Large Guo Li Jun <ljguo1020@gmail.com>} \\[.5cm]
+ {\Large V1.2B}\\[1cm]
+\begin{example}[]
+\MagicWatermark{
+ setup = {
+ pages = {*},
+ content = {P-\thepage},
+ style = {shift = {(.5\textwidth, .5\textheight + \headheight + \headsep)}, scale = 3, text = cyan, font = \ttfamily}
+ },
+ setup = {
+ pages = {even},
+ style = {scale = 5, text = pink},
+ content = {Watermark},
+ is append
+ },
+ setup = {
+ pages = {1},
+ style = {text width = 1.7\paperwidth, rotate = 45, align = left, font = \Large, opacity = .1},
+ content = {
+ \foreach \x in {0, ..., 500} {Magic Watermark }
+ },
+ is append
+ }
+}
+\end{example}
+\end{center}
+
+\vspace*{\fill}
+
+\newpage
+
+
+\linespread{1.3}\selectfont
+\tableofcontents
+
+\section{Presentation}
+
+\pkgname{} is a new watermarking package. Tts first version was released on June 17\textsuperscript{th}, 2022,
+but this update is a complete refactoring.
+
+\pkgname{} is based on \texttt{ti\textit{k}z} and \texttt{expl3}, which gives you a lot of flexibility
+to add a background or a watermark to the pages of your document.
+
+\section{Use}
+
+The use of \pkgname{}, compared to other packages of similar functionality, is a lot easier,
+as it provides a single command, \verb|\MagicWatermark|.
+This command takes a parameter consisting in a number of \opt{setup} rules.
+\begin{example}[]
+\MagicWatermark{
+ setup = {},
+ setup = {},
+ ...
+}
+\end{example}
+
+\opt{setup} internally accepts four key options to configure the presentation of the watermark.
+
+\subsection{pages}
+\opt{pages} accepts a comma-separated list which defines the scope of the watermark,\linebreak[4] \textit{e.g.} \verb|pages = {2, 4, 5, 8-10}| indicates that the watermark is to appear on pages 2, 4, 5, 8, 9 and 10.
+
+\opt{pages} accepts a total of four configuration rules:
+\begin{itemize}
+ \item \para{*}, indicating all pages;
+ \item \para{odd} and \para{even}, for odd/even pages;
+ \item a range, like \para{3-5} or \para{12-ii};
+ \item expressions, such as \para{2X+1}, \para{2X\^{}2+X+1} (the variable \textbf{has to be} \para{X}).
+\end{itemize}
+
+Here, we assume that the total number of pages is 24:
+\begin{example}[title = pages machine rules]
+pages = {*} => 1, 2, 3, ..., 24
+pages = {odd} => 1, 3, 5, ..., 23
+pages = {1, 3, 5-10} => 1, 3, 5, 6, 7, ..., 10
+pages = {1-5, 8, 20-ii} => 1, 2, ..., 5, 8, 20, 21, ..., 23
+pages = {3X + 1} => 1, 4, 7, 10, ..., 22
+\end{example}
+
+\subsection{tikz}
+
+\opt{tikz} is used to choose whether the watermark content will be placed
+in a \texttt{tikz} \texttt{node} (see below).
+The two possible values are \para{true} and \para{false}. The default is \para{true}.
+When you choose to use \opt{tikz}, you need to load the \texttt{tikz} package manually.
+
+\subsection{content}
+
+\opt{content} is used to define the content of the watermark, when \opt{tikz} is enabled.
+The given value is placed inside the \texttt{tikz} \texttt{node};
+for this reason, to take full avantage of this syntax, you need to have some knowledge
+of the available \texttt{node} options.
+
+\subsection{style}
+
+\opt{style} is used to set the style of the \texttt{node} that holds the watermark content.
+The default style is \para{inner~sep = 0pt, outer~sep = 0pt, opacity = .5, align = left},
+and is ignored when \opt{tikz} is disabled.
+
+\subsection{is append}
+
+\opt{is append} is used to choose whether or not to override the existing watermark on the
+current page. The available values are \para{true} and \para{false}, the default is \para{false}.
+
+
+\section{Examples}
+
+\begin{example}[title = Add page number to the top right corner of each pages:]
+% \usepackage{tikz}
+\MagicWatermark{
+ setup = {
+ pages = {*},
+ content = {P-\thepage},
+ style = {shift = {(.5\textwidth, .5\textheight + \headheight + \headsep)}, scale = 3, text = cyan, font = \ttfamily}
+ }
+}
+\end{example}
+
+\begin{example}[title = Add text watermark at the center of even numbered pages:]
+% \usepackage{tikz}
+\MagicWatermark{
+ setup = {
+ pages = {even},
+ style = {scale = 5, text = pink},
+ content = {Watermark},
+ is append
+ }
+}
+\end{example}
+
+\begin{example}[title = Add a full page of text as watermark to the second to last page:]
+% \usepackage{tikz}
+\MagicWatermark{
+ setup = {
+ pages = {2-i},
+ style = {text width = 1.7\paperwidth, rotate = 45, align = left, font = \Large, opacity = .1},
+ content = {
+ \foreach \x in {0, ..., 500} {Magic Watermark }
+ },
+ is append
+ }
+}
+\end{example}
+
+\begin{example}[title = Use different watermarks for odd and even pages:]
+% \usepackage{tikz}
+\MagicWatermark{
+ setup = {
+ pages = {even},
+ style = {scale = 8, rotate = 45, text=red, align = center,font = \linespread{2}\selectfont},
+ content = {
+ Even MagicWatermark\\
+ Even MagicWatermark\\
+ Even MagicWatermark\\
+ Even MagicWatermark
+ }
+ },
+ setup = {
+ pages = {odd},
+ style = {scale = 6, rotate = -45, text = cyan, text width = 1.7\paperwidth, font = \linespread{1.5}\selectfont, align = center},
+ content = {
+ \foreach \x in {0,...,5}{
+ Odd MagicWatermark
+ }
+ }
+ }
+}
+\end{example}
+
+\begin{example}[title = Use an image as watermark:]
+% \usepackage{tikz}
+\MagicWatermark{
+ setup = {
+ pages = {even},
+ style = {opacity = 0.3},
+ content = {
+ \includegraphics{example-image-a}
+ }
+ },
+ setup = {
+ pages = {odd},
+ style = {opacity = .3, rotate=45, text width = 3\paperwidth},
+ content = {
+ \foreach \x in {0, ..., 20}{
+ \foreach \y in {1, 2, 3} {
+ \includegraphics{example-image-b}
+ } \\
+ }
+ }
+ }
+}
+\end{example}
+
+\begin{example}[title = Disable tikz]
+\def\addhead#1#2{%
+ \expandafter\gdef\csname head@content@#1\endcsname{#2}%
+}
+
+\def\printhead#1{%
+ \csname head@content@#1\endcsname%
+}
+
+\addhead{2}{The only way to do great work is to love what you do.}
+\addhead{3}{Success is not final, failure is not fatal: It is the courage to continue that counts.}
+\addhead{4}{In the end, we will remember not the words of our enemies, but the silence of our friends.}
+\addhead{5}{It does not matter how slowly you go as long as you do not stop.}
+
+\NewDocumentCommand{\mywatermark}{}{%
+ \begin{tikzpicture}[remember picture, overlay]
+ \node[yshift = -\headheight - \headsep, text = teal, font = \large] at (current page.north) {\printhead{\thepage}};
+ \end{tikzpicture}
+}
+
+\MagicWatermark{
+ setup = {
+ pages = {2-5},
+ tikz = false,
+ content = \mywatermark
+ }
+}
+\end{example}
+
+
+\end{document}
diff --git a/macros/latex/contrib/magicwatermark/magicwatermark-en.pdf b/macros/latex/contrib/magicwatermark/magicwatermark-en.pdf
deleted file mode 100644
index 5ee2d2d9f5..0000000000
--- a/macros/latex/contrib/magicwatermark/magicwatermark-en.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/magicwatermark/magicwatermark-en.tex b/macros/latex/contrib/magicwatermark/magicwatermark-en.tex
deleted file mode 100644
index 03a3e6db11..0000000000
--- a/macros/latex/contrib/magicwatermark/magicwatermark-en.tex
+++ /dev/null
@@ -1,212 +0,0 @@
-\documentclass{l3doc}
-\usepackage{graphicx}
-\usepackage{enumitem}
-\usepackage{listings}
-\lstset{
-frame=tb,framerule=2pt,language={[LaTeX]TeX},basicstyle={\ttfamily},
-language={[LaTeX]TeX},
-keywordstyle=\color{red!70!black}\bfseries,
-keywordstyle={[2]\color{blue!70!black}\bfseries},
-morekeywords={PageSetup,Watermark,NewWatermark,MyPageSetup,MyWatermark,EvenPageSetup,OddPageSetup,EvenWatermark,OddWatermark,ClearWatermark}}
-\usepackage{fontspec}
-\IfFontExistsTF{calibri.ttf}
-{
- \setmainfont{calibri.ttf}[
- BoldFont = calibrib.ttf,
- ItalicFont = calibrii.ttf,
- BoldItalicFont = calibriz.ttf
- ]
-}
-{}
-\usepackage{magicwatermark}
-\renewcommand*\marg[1]{\{\meta{#1}\}}
-\renewcommand*\oarg[1]{[\meta{#1}]}
-\renewcommand*\parg[1]{(\meta{#1})}
-\title{\pkg{magicwatermark}}
-\author{lijun guo \\ liguo1020@gmail.com}
-\def\version{v1.0.1}
-\date{\today\quad\version}
-\pagestyle{empty}
-\PageSetup*
-{
- \begin{tikzpicture}[remember picture,overlay]
- \node[cyan,scale = 2,shift={(-1,-1)}] at (current page.north east){--~\thepage~--};
- \end{tikzpicture}
-}
-\Watermark
-\begin{document}
-\maketitle
-\tableofcontents
-\begin{abstract}
-\pkg{magicwatermark} is a package based on \pkg{everypage} and \pkg{tikz} and encapsulated by \LaTeX3 \. It can flexibly set and clear watermarks. All watermark content is placed in \ inside a \verb|node| of \verb|tikz| and in the center of the page.
-\end{abstract}
-\section{Introduction}
-Currently the \pkg{magicwatermark} package can only implement the following functions
-\begin{itemize}
- \item Set watermark for all pages
- \item Set watermark for odd pages
- \item Set the watermark for even pages
- \item Create a new watermark and set multiple watermarks on the same page
- \item Clear watermark
-\end{itemize}
-\section{Interface}
-\subsection{Some command}
-\begin{function}[added=2021-12-21,updated=2021-12-21]{\PageSetup}
- \begin{syntax}
- \tn{PageSetup} \oarg{option} \marg{content for watermark}
- \end{syntax}
- This command is used to set the watermark content of all pages. It accepts two parameters. The first parameter is used to set some properties and is given in the form of \verb|key=value|. The second parameter is used to set the watermark content. It is text, pictures, etc.
-\end{function}
-\begin{function}[added=2021-12-21,updated=2021-12-21]{\Watermark}
-\begin{syntax}
- \tn{Watermark}
-\end{syntax}
-This command is used to display the watermark set above
-\end{function}
-\begin{function}[added=2021-12-21,updated=2021-12-21]{\EvenPageSetup}
-\begin{syntax}
-\tn{EvenPageSetup}\oarg{option}\marg{content for watermark}
-\end{syntax}
-This command is used to set the watermark content of even pages
-\end{function}
-\begin{function}[added=2021-12-21,updated=2021-12-21]{\EvenWatermark}
-\begin{syntax}
- \tn{EvenWatermark}
-\end{syntax}
-This command is used to display the even page watermark set above
-\end{function}
-\begin{function}[added=2021-12-21,updated=2021-12-21]{\OddPageSetup}
-\begin{syntax}
-\tn{OddPageSetup}\oarg{option}\marg{content for watermark}
-\end{syntax}
-This command is used to set the watermark content of odd pages
-\end{function}
-\begin{function}[added=2021-12-21,updated=2021-12-21]{\OddWatermark}
-\begin{syntax}
- \tn{OddWatermark}
-\end{syntax}
-This command is used to display the odd page watermark set above
-\end{function}
-\subsection{Add command}
-The usage of the following commands with asterisks is similar to the above. It is not so much an extension as it is a cancellation of restrictions. The above commands all write the watermark content in a \verb|node|, for users who are not familiar with TikZ , the former is more square is convenient and fast, while the latter is more flexible
-\begin{function}[added=2022-01-07,updated=2022-01-07]{\PageSetup*}
-\begin{syntax}
-\tn{PageSetup*}\marg{content for watermark}
-\end{syntax}
-\end{function}
-\begin{function}[added=2022-01-07,updated=2022-01-07]{\EvenPageSetup*}
-\begin{syntax}
-\tn{EvenPageSetup*}\marg{content for watermark}
-\end{syntax}
-\end{function}
-\begin{function}[added=2022-01-07,updated=2022-01-07]{\OddPageSetup*}
-\begin{syntax}
-\tn{OddPageSetup*}\marg{content for watermark}
-\end{syntax}
-\end{function}
-\begin{function}[added=2021-12-21,updated=2021-12-21]{\NewWatermark}
-\begin{syntax}
-\tn{NewWatermark}\marg{watermark name}
-\end{syntax}
-This command is used to create a new watermark. Note that the watermark name cannot be \verb|main|, \verb|even|, \verb|odd|.
-\end{function}
-\begin{function}[added=2021-12-21,updated=2021-12-21]{\MyPageSetup}
-\begin{syntax}
-\tn{MyPageSetup}\oarg{option}\marg{watermark name}\marg{content for watermark}
-\end{syntax}
-Used to set the new watermark content
-\end{function}
-\begin{function}[added=2021-12-21,updated=2021-12-21]{\MyWatermark}
-\begin{syntax}
- \tn{MyWatermark}\marg{watermark name}
-\end{syntax}
-This command is used to display the watermark set above
-\end{function}
-\begin{function}[added=2021-12-21,updated=2021-12-21]{\ClearWatermark}
-\begin{syntax}
- \tn{ClearWatermark}\marg{watermark list}
-This command is used to clear the set watermark, accepts a comma list as parameter, for example:
-\begin{itemize}
- \item \verb|\ClearWatermark{main}| clears the watermark set by \verb|\Watermark|
- \item \verb|\ClearWatermark{even,odd}| clears the watermark on odd and even pages
- \item \verb|\ClearWatermark{all}| Clear all watermarks
- \item \verb|\ClearWatermark{name1,name2,name3,...}|
-\end{itemize}
-\end{syntax}
-\end{function}
-\subsection{option list}
-The \textbf{option} in the above setting command is as follows
-\begin{itemize}
- \item \verb|scale = <number>| set the scale
- \item \verb|opacity = <number>| set the opacity
- \item \verb|shift = {(x,y)}| for translation by vector (x,y)
- \item \verb|color = <color expression>| set the color
- \item \verb|rotate = <angle>| Set the rotation angle
- \item \verb+align = <center|left|right>+ Set the alignment of multi-line text, the default is center
- \item \verb+showframe = <true|false>+ Set whether to display the frame, the default is false
-\end{itemize}
-\subsection{notes}
-All show and clear commands take effect only on the text following the command.
-
-\section{Examples}
-\subsection{basic}
-\begin{lstlisting}
-\documentclass{ctexart}
-\usepackage{magicwatermark}
-\PageSetup[
- rotate = 30, % set the rotation angle
- color = red!80, % set color for watermark content
- scale = 6 % set the scale
-]{
- watermark content
-}
-\Watermark
-\begin{document}
-...
-\end{document}
-\end{lstlisting}
-\subsection{Odd and Even Pages}
-\begin{lstlisting}
-\documentclass{ctexart}
-\usepackage{magicwatermark}
-\EvenPageSetup[color=cyan,showframe,scale=4]{Even page} % Even page
-\OddPageSetup[color=purple,showframe,scale=4]{Odd page} % Odd page
-\EvenWatermark % show watermark
-\OddWatermark
-\begin{document}
-...
-\end{document}
-\end{lstlisting}
-\subsection{star}
-\begin{lstlisting}
-\documentclass{ctexart}
-\usepackage{magicwatermark}
-\PageSetup*{
- \begin{tikzpicture}[remember picture,overlay]
- \node[cyan,scale = 2,shift={(-1,-1)}] at
- (current page.north east){--~\thepage~--};
- \end{tikzpicture}
-}
-\begin{document}
-...
-\Watermark % This order did not take effect before
-\end{document}
-\end{lstlisting}
-\subsection{New watermark}
-\begin{lstlisting}
-\documentclass{ctexart}
-\usepackage{magicwatermark}
-\NewWatermark{one} % new
-\NewWatermark{two}
-\MyPageSetup[scale=5,color=blue]{one}{content one} % setting
-\MyPageSetup[scale=5,color=red]{two}{content two}
-\begin{document}
-\MyWatermark{one} % use watermark one
-...
-\newpage
-\ClearWatermark{one} % clear watermark one
-\MyWatermark{two} % use watermark two
-...
-\end{document}
-\end{lstlisting}
-\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/magicwatermark/magicwatermark.dtx b/macros/latex/contrib/magicwatermark/magicwatermark.dtx
deleted file mode 100644
index 35115c1cca..0000000000
--- a/macros/latex/contrib/magicwatermark/magicwatermark.dtx
+++ /dev/null
@@ -1,598 +0,0 @@
-% \iffalse meta-comment
-% !TEX program = XeLaTeX
-%<*internal>
-\iffalse
-%</internal>
-%<*internal>
-\fi
-\begingroup
- \def\temp{LaTeX2e}
-\expandafter\endgroup\ifx\temp\fmtname\else
-\csname fi\endcsname
-%</internal>
-%<*install>
-
-\input ctxdocstrip %
-
-\let\MetaPrefix\relax
-
-\declarepostamble\emptypostamble
-\endpostamble
-
-\def\MetaPrefix{-- }
-
-
-\let\MetaPrefix\DoubleperCent
-
-\generate
- {
-%</install>
-%<*internal>
- \usedir{source/xelatex/magicwatermark}
- \file{magicwatermark.ins} {\from{\jobname.dtx}{install}}
-%</internal>
-%<*install>
- \usedir{xetex/xelatex/magicwatermark}
- \file{magicwatermark.sty} {\from{\jobname.dtx}{package}}
- \nopreamble\nopostamble
- \usedir{doc/xelatex/magicwatermark}
- \file{README.md} {\from{\jobname.dtx}{readme}}
- }
-
-\endbatchfile
-%</install>
-%<*internal>
-\fi
-%</internal>
-%<package>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-%<package>\ProvidesPackage{magicwatermark}[2021/12/22 v1.0.1 watermark for ljguo ]
-%<*driver>
-\documentclass{ctxdoc}
-\usepackage{graphicx}
-\usepackage{enumitem}
-\usepackage{listings}
-\lstset{
-frame=tb,framerule=2pt,language={[LaTeX]TeX},basicstyle={\ttfamily},
-language={[LaTeX]TeX},
-keywordstyle=\color{red!70!black}\bfseries,
-keywordstyle={[2]\color{blue!70!black}\bfseries},
-morekeywords={PageSetup,Watermark,NewWatermark,MyPageSetup,MyWatermark,EvenPageSetup,OddPageSetup,EvenWatermark,OddWatermark,ClearWatermark}}
-\usepackage{fontspec}
-\IfFontExistsTF{calibri.ttf}
-{
- \setmainfont{calibri.ttf}[
- BoldFont = calibrib.ttf,
- ItalicFont = calibrii.ttf,
- BoldItalicFont = calibriz.ttf
- ]
-}
-{}
-\setCJKmainfont[AutoFakeBold,AutoFakeSlant]{simfang.ttf}
-\usepackage{magicwatermark}
-\renewcommand*\marg[1]{\{\meta{#1}\}}
-\renewcommand*\oarg[1]{[\meta{#1}]}
-\renewcommand*\parg[1]{(\meta{#1})}
-\begin{document}
-%<!--CODEDOC--> \DisableImplementation
- \EnableImplementation
- \DocInput{\jobname.dtx}
- \IndexLayout
- \PrintChanges
- \PrintIndex
-\end{document}
-%</driver>
-% \fi
-%
-
-% \GetFileId{magicwatermark.sty}
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-%
-%\title{\pkg{magicwatermark}: 魔法水印宏包}
-%\author{郭李军 \\ liguo1020@gmail.com}
-%\def\version{v1.0.1}
-%\date{\today\quad\version}
-%\pagestyle{empty}
-%\PageSetup*
-%{
-% \begin{tikzpicture}[remember picture,overlay]
-% \node[cyan,scale = 2,shift={(-1,-1)}] at (current page.north east){--~\thepage~--};
-% \end{tikzpicture}
-%}
-%\Watermark
-%\maketitle
-%\thispagestyle{empty}
-%\tableofcontents
-%\begin{documentation}
-%\changes{v1.0.1}{2021/12/21}{实现了一些基本功能}
-%\begin{abstract}
-%\pkg{magicwatermark} 是一个基于 \pkg{everypage} 和 \pkg{tikz} 宏包,并经过 \LaTeX3 \ 进行封装的宏包,它可以很灵活的设置和清除水印,所有水印内容都放在 \verb|tikz| 的一个 \verb|node| 里面,并处于页面中心。
-%\end{abstract}
-%\section{介绍}
-%目前 \pkg{magicwatermark} 宏包只能实现如下功能
-%\begin{itemize}
-% \item 设置所有页面的水印
-% \item 设置奇数页的水印
-% \item 设置偶数页的水印
-% \item 新建水印,同页面设置多个水印
-% \item 清除水印
-%\end{itemize}
-%\section{用户接口}
-%\subsection{提供命令}
-% \begin{function}[added=2021-12-21,updated=2021-12-21]{\PageSetup}
-% \begin{syntax}
-% \tn{PageSetup} \oarg{水印参数} \marg{水印内容}
-% \end{syntax}
-% 此命令用于设置所有页面的水印内容,接受两个参数,第一个参数用于设置一些属性,以 \verb|key=value| 的形式给出, 第二个参数用于设置水印内容,可以是文字、图片、等.
-% \end{function}
-%\begin{function}[added=2021-12-21,updated=2021-12-21]{\Watermark}
-%\begin{syntax}
-% \tn{Watermark}
-%\end{syntax}
-% 该命令用于显示上面设置的水印
-%\end{function}
-%\begin{function}[added=2021-12-21,updated=2021-12-21]{\EvenPageSetup}
-%\begin{syntax}
-% \tn{EvenPageSetup}\oarg{水印参数}\marg{水印内容}
-%\end{syntax}
-% 该命令用于设置偶数页的水印内容
-%\end{function}
-%\begin{function}[added=2021-12-21,updated=2021-12-21]{\EvenWatermark}
-%\begin{syntax}
-% \tn{EvenWatermark}
-%\end{syntax}
-% 该命令用于显示上面设置的偶数页水印
-%\end{function}
-%\begin{function}[added=2021-12-21,updated=2021-12-21]{\OddPageSetup}
-%\begin{syntax}
-% \tn{OddPageSetup}\oarg{水印参数}\marg{水印内容}
-%\end{syntax}
-% 该命令用于设置奇数页的水印内容
-%\end{function}
-%\begin{function}[added=2021-12-21,updated=2021-12-21]{\OddWatermark}
-%\begin{syntax}
-% \tn{OddWatermark}
-%\end{syntax}
-% 该命令用于显示上面设置的奇数页水印
-%\end{function}
-%\subsection{扩展命令}
-%以下带星号命令用法和上面的类似,与其说是扩展,不如说是取消了限制,以上的命令都将水印内容写在一个\verb|node|中,对于对 TikZ 不太熟练的用户来说,前者更加方
-%便快捷,而后者则更加灵活
-%\begin{function}[added=2022-01-07,updated=2022-01-07]{\PageSetup*}
-%\begin{syntax}
-% \tn{PageSetup*}\marg{水印内容}
-%\end{syntax}
-%\end{function}
-%\begin{function}[added=2022-01-07,updated=2022-01-07]{\EvenPageSetup*}
-%\begin{syntax}
-% \tn{EvenPageSetup*}\marg{水印内容}
-%\end{syntax}
-%\end{function}
-%\begin{function}[added=2022-01-07,updated=2022-01-07]{\OddPageSetup*}
-%\begin{syntax}
-% \tn{OddPageSetup*}\marg{水印内容}
-%\end{syntax}
-%\end{function}
-%\begin{function}[added=2021-12-21,updated=2021-12-21]{\NewWatermark}
-%\begin{syntax}
-% \tn{NewWatermark}\marg{水印名称}
-%\end{syntax}
-%该命令用于新建一个水印,注意水印名称不能是 \verb|main|, \verb|even|, \verb|odd|.
-%\end{function}
-%\begin{function}[added=2021-12-21,updated=2021-12-21]{\MyPageSetup}
-%\begin{syntax}
-% \tn{MyPageSetup}\oarg{水印参数}\marg{水印名称}\marg{水印内容}
-%\end{syntax}
-%用于设置新建的水印内容
-%\end{function}
-%\begin{function}[added=2021-12-21,updated=2021-12-21]{\MyWatermark}
-%\begin{syntax}
-% \tn{MyWatermark}\marg{水印名称}
-%\end{syntax}
-% 该命令用于显示上面设置的水印
-%\end{function}
-%\begin{function}[added=2021-12-21,updated=2021-12-21]{\ClearWatermark}
-%\begin{syntax}
-% \tn{ClearWatermark}\marg{水印列表}
-%该命令用于清除设置的水印,接受一个逗号列表作为参数,例如:
-%\begin{itemize}
-% \item \verb|\ClearWatermark{main}| 清除由 \verb|\Watermark| 设置的水印
-% \item \verb|\ClearWatermark{even,odd}| 清除奇数和偶数页的水印
-% \item \verb|\ClearWatermark{all}| 清除所有的水印
-% \item \verb|\ClearWatermark{name1,name2,name3,...}|
-%\end{itemize}
-%\end{syntax}
-%\end{function}
-%\subsection{参数列表}
-%以上设置命令中的\textbf{水印参数}如下
-%\begin{itemize}
-% \item \verb|scale = <number>| 用于设置缩放比例
-% \item \verb|opacity = <number>| 用于设置不透明度
-% \item \verb|shift = {(x,y)}| 用于按向量 (x,y) 平移
-% \item \verb|color = <color expression>| 用于设置文本颜色
-% \item \verb|rotate = <angle>| 用于设置旋转角度
-% \item \verb+align = <center|left|right>+ 用于设置多行文本对齐方式,默认为 center
-% \item \verb+showframe = <true|false>+ 用于设置是否显示文本框,默认为 false
-%\end{itemize}
-%\subsection{一些说明}
-%所有的显示命令和清除命令都仅对该命令后面的文本生效。
-
-%\section{Examples}
-%\subsection{不带星号}
-%\begin{lstlisting}
-\documentclass{ctexart}
-\usepackage{magicwatermark}
-\PageSetup[
- rotate = 30, % 设置旋转角度
- color = red!80, % 设置水印内容颜色
- scale = 6 % 设置比例
-]{
- 水印内容
-}
-\Watermark % 全文生效
-\begin{document}
-...
-\end{document}
-\end{lstlisting}
-%\subsection{奇偶页}
-%\begin{lstlisting}
-\documentclass{ctexart}
-\usepackage{magicwatermark}
-\EvenPageSetup[color=cyan,showframe,scale=4]{偶数页} % 设置奇数页
-\OddPageSetup[color=purple,showframe,scale=4]{奇数页} % 设置偶数页
-\EvenWatermark % 显示水印
-\OddWatermark
-\begin{document}
-...
-\end{document}
-\end{lstlisting}
-%\subsection{带星号}
-%\begin{lstlisting}
-\documentclass{ctexart}
-\usepackage{magicwatermark}
-\PageSetup*{
- \begin{tikzpicture}[remember picture,overlay]
- \node[cyan,scale = 2,shift={(-1,-1)}] at
- (current page.north east){--~\thepage~--};
- \end{tikzpicture}
-}
-\begin{document}
-...
-\Watermark % 该命令之前不生效
-\end{document}
-\end{lstlisting}
-%\subsection{新建水印}
-%\begin{lstlisting}
-\documentclass{ctexart}
-\usepackage{magicwatermark}
-\NewWatermark{one} % 新建两个水印
-\NewWatermark{two}
-\MyPageSetup[scale=5,color=blue]{one}{水印内容一} % 设置水印
-\MyPageSetup[scale=5,color=red]{two}{水印内容二}
-\begin{document}
-\MyWatermark{one} % 使用第一个水印
-...
-\newpage
-\ClearWatermark{one} % 清除第一个水印
-\MyWatermark{two} % 使用第二个水印
-...
-\end{document}
-\end{lstlisting}
-%\end{documentation}
-%
-% \StopEventually{}
-% \section{代码实现}
-% \begin{macrocode}
-%<*package>
-% \end{macrocode}
-% 加载必要的宏包
-% \begin{macrocode}
-\RequirePackage{everypage-1x,tikz,xparse,expl3}
-% \end{macrocode}
-% 打开\LaTeX3 编程环境
-% \begin{macrocode}
-\ExplSyntaxOn
-% \end{macrocode}
-% 声明一些变量
-% \begin{macrocode}
-\tl_new:N \l_mainpage_tl
-\tl_new:N \l_evenpage_tl
-\tl_new:N \l_oddpage_tl
-\tl_new:N \g_case_tl
-\tl_new:N \g_clear_all_tl
-% \end{macrocode}
-% 定义警告
-% \begin{macrocode}
-\msg_new:nnn{clear}{not~have}{I~can~not~find~the~"\clear"~watermark~!}
-% \end{macrocode}
-% \begin{macro}{\PageSetup}
-% 对所有页面设置水印
-% \begin{macrocode}
-\NewDocumentCommand{\PageSetup}{sO{}+m}
-{
- \IfBooleanTF{#1}
- {
- \tl_set:Nn \l_mainpage_tl{#3}
- }
- {
- \tl_set:Nn \l_mainpage_tl
- {
- \group_begin:
- \keys_set:nn{watermark}{#2}
- \begin{tikzpicture}[remember~picture,overlay]
- \node
- [
- scale = \fp_use:N\l_scale_fp,
- opacity = \fp_use:N\l_opacity_fp,
- shift = \tl_use:N\l_shift_tl,
- color = \tl_use:N \l_color_tl,
- rotate = \fp_use:N \l_rotate_fp,
- align = \tl_use:N \l_align_tl,
- \bool_if:NTF \l_showframe_bool{draw}{},
- ]
- at(current~page.center){#3};
- \end{tikzpicture}
- \group_end:
- }
- }
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\Watermark}
-% 用于显示由 \verb|\PageSetup| 命令设置的水印
-% \begin{macrocode}
-\NewDocumentCommand{\Watermark}{}
-{
- \AddEverypageHook{\tl_use:N \l_mainpage_tl}
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\EvenPageSetup}
-% 对偶数页设置水印
-% \begin{macrocode}
-\NewDocumentCommand{\EvenPageSetup}{sO{}+m}
-{
- \IfBooleanTF{#1}
- {
- \tl_set:Nn \l_evenpage_tl{#3}
- }
- {
- \tl_set:Nn \l_evenpage_tl
- {
- \group_begin:
- \keys_set:nn{watermark}{#2}
- \begin{tikzpicture}[remember~picture,overlay]
- \node
- [
- scale = \fp_use:N\l_scale_fp,
- opacity = \fp_use:N\l_opacity_fp,
- shift = \tl_use:N\l_shift_tl,
- color = \tl_use:N \l_color_tl,
- rotate = \fp_use:N \l_rotate_fp,
- align = \tl_use:N \l_align_tl,
- \bool_if:NTF \l_showframe_bool{draw}{},
- ]
- at(current~page.center){#3};
- \end{tikzpicture}
- \group_end:
- }
- }
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\EvenWatermark}
-% 用于显示由 \verb|\EvenPageSetup| 命令设置的水印
-% \begin{macrocode}
-\NewDocumentCommand{\EvenWatermark}{}
-{
- \AddEverypageHook
- {
- \int_if_even:nT{\int_use:N \value{page}}
- {
- \tl_use:N \l_evenpage_tl
- }
- }
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\OddPageSetup}
-% 对奇数页设置水印
-% \begin{macrocode}
-\NewDocumentCommand{\OddPageSetup}{sO{}+m}
-{
- \IfBooleanTF{#1}
- {
- \tl_set:Nn \l_oddpage_tl{#3}
- }
- {
- \tl_set:Nn \l_oddpage_tl
- {
- \group_begin:
- \keys_set:nn{watermark}{#2}
- \begin{tikzpicture}[remember~picture,overlay]
- \node
- [
- scale = \fp_use:N\l_scale_fp,
- opacity = \fp_use:N\l_opacity_fp,
- shift = \tl_use:N\l_shift_tl,
- color = \tl_use:N \l_color_tl,
- rotate = \fp_use:N \l_rotate_fp,
- align = \tl_use:N \l_align_tl,
- \bool_if:NTF \l_showframe_bool{draw}{},
- ]
- at(current~page.center){#3};
- \end{tikzpicture}
- \group_end:
- }
- }
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\OddWatermark}
-% 用于显示由 \verb|\OddPageSetup| 命令设置的水印
-% \begin{macrocode}
-\NewDocumentCommand{\OddWatermark}{}
-{
- \AddEverypageHook
- {
- \int_if_odd:nT{\int_use:N \value{page}}
- {
- \tl_use:N \l_oddpage_tl
- }
- }
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\NewWatermark}
-% 用于新建一个水印
-% \begin{macrocode}
-\NewDocumentCommand{\NewWatermark}{m}
-{
- \tl_new:c {l_#1_tl}
- \tl_put_right:Nn \g_case_tl {{#1}{\tl_clear:c {l_#1_tl}}}
- \tl_put_right:Nn \g_clear_all_tl {\tl_clear:c {l_#1_tl}}
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\MyPageSetup}
-% 用于设置新建的水印
-% \begin{macrocode}
-\NewDocumentCommand{\MyPageSetup}{O{} m +m}
-{
- \tl_set:cn {l_#2_tl}
- {
- \group_begin:
- \keys_set:nn{watermark}{#1}
- \begin{tikzpicture}[remember~picture,overlay]
- \node
- [
- scale = \fp_use:N\l_scale_fp,
- opacity = \fp_use:N\l_opacity_fp,
- shift = \tl_use:N\l_shift_tl,
- color = \tl_use:N \l_color_tl,
- rotate = \fp_use:N \l_rotate_fp,
- align = \tl_use:N \l_align_tl,
- \bool_if:NTF \l_showframe_bool{draw}{},
- ]
- at(current~page.center){#3};
- \end{tikzpicture}
- \group_end:
- }
-}
-% \end{macrocode}
-% \end{macro}
-
-
-
-% \begin{macro}{\MyWatermark}
-% 用于显示由 \verb|\MyPageSetup| 命令设置的水印
-% \begin{macrocode}
-\NewDocumentCommand{\MyWatermark}{m}
-{
- \AddEverypageHook{\tl_use:c {l_#1_tl}}
-}
-% \end{macrocode}
-% \end{macro}
-% 定义一些可选参数, 用于对水印进行设置
-% \begin{macrocode}
-\keys_define:nn{watermark}
-{
- scale.fp_set:N = \l_scale_fp,
- scale.initial:n = 1.0,
- scale.default:n = 1.0,
- opacity.fp_set:N = \l_opacity_fp,
- opacity.initial:n = 0.8,
- opacity.default:n = 0.8,
- shift.tl_set:N = \l_shift_tl,
- shift.initial:n = {(0,0)},
- shift.default:n = {(0,0)},
- color.tl_set:N = \l_color_tl,
- color.initial:n = black,
- color.default:n =black,
- rotate.fp_set:N =\l_rotate_fp,
- rotate.initial:n = 0.0,
- rotate.default:n = 0.0,
- align.tl_set:N = \l_align_tl,
- align.initial:n = center,
- align.default:n = center,
- showframe.bool_set:N = \l_showframe_bool,
- showframe.initial:n = false,
- showframe.default:n = true,
-}
-% \end{macrocode}
-% \begin{macro}{\g_clear_all_tl}
-% 用于保存待清空的所有水印
-% \begin{macrocode}
-\tl_gset:Nn \g_clear_all_tl
-{
- \tl_clear:N \l_mainpage_tl
- \tl_clear:N \l_evenpage_tl
- \tl_clear:N \l_oddpage_tl
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\g_case_tl}
-% 用于保存一些开关
-% \begin{macrocode}
-\tl_gset:Nn \g_case_tl{
- {all}
- {
- \tl_use:N\g_clear_all_tl
- }
- {even}
- {
- \tl_clear:N \l_evenpage_tl
- }
- {odd}
- {
- \tl_clear:N \l_oddpage_tl
- }
- {main}
- {
- \tl_clear:N \l_mainpage_tl
- }
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ClearWatermark}
-% 用于清除设置的水印
-% \begin{macrocode}
-\NewDocumentCommand{\ClearWatermark}{m}
-{
-\clist_gset:Nn \g_clear_clist{#1}
-\clist_map_variable:NNn \g_clear_clist \clear
-{
- \exp_args:NV \str_case:nVF \clear
- \g_case_tl
- {\msg_warning:nn{clear}{not~have}}
-}
-}
-% \end{macrocode}
-% \end{macro}
-% 关闭\LaTeX3 编程环境
-% \begin{macrocode}
-\ExplSyntaxOff
-% \end{macrocode}
-% \begin{macrocode}
-%</package>
-% \end{macrocode}
-% \Finale
-%
-\endinput
-\endlinechar \ No newline at end of file
diff --git a/macros/latex/contrib/magicwatermark/magicwatermark.pdf b/macros/latex/contrib/magicwatermark/magicwatermark.pdf
deleted file mode 100644
index 396233aba2..0000000000
--- a/macros/latex/contrib/magicwatermark/magicwatermark.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/magicwatermark/magicwatermark.sty b/macros/latex/contrib/magicwatermark/magicwatermark.sty
new file mode 100644
index 0000000000..e40af7ea0b
--- /dev/null
+++ b/macros/latex/contrib/magicwatermark/magicwatermark.sty
@@ -0,0 +1,453 @@
+\ProvidesExplPackage{magicwatermark}{2024/06/11}{1.2B}{magic watermark, author}
+
+
+\msg_new:nnn {magicwatermark}{ Unable to parse }
+{
+ Unable~to~parse~this~list~parameter.^^J
+ #1
+}
+
+\msg_new:nnn {magicwatermark}{ Enable TikZ }
+{
+ tikz~option~has~been~disabled,^^J
+ style~will~be~ignored.
+}
+
+\msg_new:nnn {magicwatermark}{ Load TikZ }
+{
+ Please~load~tikz~package~before~magicwatermark.
+}
+
+\seq_new:N \l__mw_tmpa_seq
+\seq_new:N \l__mw_tmpb_seq
+\seq_new:N \l__mw_tmpc_seq
+\seq_new:N \l__mw_tmpd_seq
+
+
+\int_new:N \l__mw_tmpa_int
+\int_new:N \l__mw_tmpb_int
+\int_new:N \l__mw_tmpc_int
+\int_new:N \l__mw_tmpd_int
+\int_new:N \l__mw_tmpe_int
+
+\clist_new:N \l__mw_list_arabic_number_clist
+\clist_new:N \l__mw_list_roman_number_clist
+\clist_new:N \l__mw_list_range_clist
+\clist_new:N \l__mw_list_expression_clist
+
+
+
+
+\clist_new:N \l__mw_tmpa_clist
+\clist_new:N \l__mw_tmpb_clist
+\clist_new:N \l__mw_tmpc_clist
+
+
+\tl_new:N \l__mw_tmpa_tl
+\tl_new:N \l__mw_tmpb_tl
+\tl_new:N \l__mw_tmpc_tl
+\tl_new:N \g__mw_list_tl
+
+\tl_new:N \g__mw_style_tl
+\tl_new:N \g__mw_content_tl
+
+\bool_new:N \g__mw_is_append_bool
+\bool_set_false:N \g__mw_is_append_bool
+\bool_new:N \g__mw_tikz_bool
+\bool_set_true:N \g__mw_tikz_bool
+
+\regex_const:Nn \c__mw_arabic_numbers_regex { ^\d+$ }
+\regex_const:Nn \c__mw_roman_numbers_regex { ^[ivxlcdm]+$ }
+
+
+
+\int_new:N \g__mw_last_page_int
+
+\AtBeginDocument{
+ \int_compare:nTF { \@abspage@last = \number\maxdimen }
+ {
+ \int_gset:Nn \g__mw_last_page_int { 10 }
+ }
+ {
+ \int_gset:Nn \g__mw_last_page_int { \@abspage@last }
+ }
+}
+
+\cs_new_protected:Npn \__mw_clist_deduplicate:N #1
+{
+ \group_begin:
+ \clist_clear:N \l_tmpa_clist
+ \clist_map_inline:Nn #1
+ {
+ \clist_if_in:NnF \l_tmpa_clist { ##1 }
+ { \clist_put_right:Nn \l_tmpa_clist { ##1 } }
+ }
+ \clist_gset_eq:NN #1 \l_tmpa_clist
+ \group_end:
+}
+
+
+\cs_new:Npn \__mw_list_parser_aux:n #1 {
+
+ \clist_clear:N \l__mw_list_arabic_number_clist
+ \clist_clear:N \l__mw_list_roman_number_clist
+ \clist_clear:N \l__mw_list_range_clist
+ \clist_clear:N \l__mw_list_expression_clist
+
+ % split by commas
+ \group_begin:
+ \seq_set_split:Nnn \l__mw_tmpa_seq { , } { #1 }
+ \seq_map_inline:Nn \l__mw_tmpa_seq
+ {
+ \tl_if_eq:nnTF { ##1 } { odd } % odd, push 2X + 1
+ {
+ \clist_gput_right:Nn \l__mw_list_expression_clist { 2X + 1 }
+ }
+ {
+ \tl_if_eq:nnTF { ##1 } { even } % even, push 2X
+ {
+ \clist_gput_right:Nn \l__mw_list_expression_clist { 2X }
+ }
+ {
+ \tl_if_in:nnTF { ##1 } { X } % expression, push ##1
+ {
+ \clist_gput_right:Nn \l__mw_list_expression_clist { ##1 }
+ }
+ {
+ \tl_if_in:nnTF { ##1 } { - } % range, push ##1
+ {
+ \clist_gput_right:Nn \l__mw_list_range_clist { ##1 }
+ }
+ {
+ \__mw_if_arabic_number:nTF { ##1 }
+ {
+ \clist_gput_right:Nn \l__mw_list_arabic_number_clist { ##1 }
+ }
+ {
+ \__mw_if_roman_number:nTF { ##1 }
+ {
+ \clist_gput_right:Nn \l__mw_list_roman_number_clist { ##1 }
+ }
+ {
+ % error
+ \msg_error:nnn {magicwatermark}{ Unable to parse }
+ {
+ Error~list~parameter~``##1''.
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ \group_end:
+}
+
+\prg_new_conditional:Npnn \__mw_if_arabic_number:n #1 { p, T, F, TF }
+{
+ \regex_match:NnTF \c__mw_arabic_numbers_regex { #1 }
+ {
+ \prg_return_true:
+ }
+ {
+ \prg_return_false:
+ }
+}
+
+\prg_new_conditional:Npnn \__mw_if_roman_number:n #1 { p, T, F, TF }
+{
+ \regex_match:NnTF \c__mw_roman_numbers_regex { #1 }
+ {
+ \prg_return_true:
+ }
+ {
+ \prg_return_false:
+ }
+}
+
+\prg_generate_conditional_variant:Nnn \__mw_if_arabic_number:n { x } {p, T, F, TF}
+\prg_generate_conditional_variant:Nnn \__mw_if_roman_number:n { x } {p, T, F, TF}
+
+
+\cs_new:Npn \__mw_list_parser_for_arabic_number:n #1 {
+ % arabic number
+ \fp_compare:nTF { #1 <= \g__mw_last_page_int && #1 > 0 }
+ {
+ \clist_put_right:Nn \l__mw_tmpa_clist { #1 }
+ }
+ {
+ % error
+ \msg_error:nnn {magicwatermark}{ Unable to parse }
+ {
+ Error~list~parameter~``#1''.^^J
+ Error~number~``#1''.
+ }
+ }
+}
+
+
+
+\cs_new:Npn \__mw_list_parser_for_roman_number:n #1 {
+ % roman number
+ \int_set:Nn \l__mw_tmpa_int { \g__mw_last_page_int - \int_from_roman:n { #1 } + 1 }
+ \fp_compare:nTF
+ {
+ \l__mw_tmpa_int <= \g__mw_last_page_int && \l__mw_tmpa_int > 0
+ }
+ {
+ \clist_put_right:NV \l__mw_tmpa_clist \l__mw_tmpa_int
+ }
+ {
+ % error
+ \msg_error:nnn {magicwatermark}{ Unable to parse }
+ {
+ Error~list~parameter~``#1''.^^J
+ Error~roman~number~``#1''.
+ }
+ }
+}
+
+
+\cs_new:Npn \__mw_list_parser_for_range:n #1 {
+ % range, 1-5, 3-i
+ \seq_set_split:Nnn \l__mw_tmpb_seq { - } { #1 }
+
+ \__mw_if_arabic_number:xTF { \seq_item:Nn \l__mw_tmpb_seq { 1 } }
+ {
+ \int_set:Nn \l__mw_tmpb_int { \seq_item:Nn \l__mw_tmpb_seq { 1 } }
+ }
+ {
+ \__mw_if_roman_number:xTF { \seq_item:Nn \l__mw_tmpb_seq { 1 } }
+ {
+ \exp_args:NNx \int_set:Nn \l__mw_tmpb_int
+ {
+ \g__mw_last_page_int - \exp_not:N \int_from_roman:n { \seq_item:Nn \l__mw_tmpb_seq { 1 } } + 1
+ }
+ }
+ {
+ \int_set:Nn \l__mw_tmpb_int { -1 }
+ % error
+ \msg_error:nnn {magicwatermark}{ Unable to parse }
+ {
+ Error~list~parameter~``#1''.^^J
+ Error~range~left~``#1''.
+ }
+ }
+ }
+
+ \__mw_if_arabic_number:xTF { \seq_item:Nn \l__mw_tmpb_seq { 2 } }
+ {
+ \int_set:Nn \l__mw_tmpc_int { \seq_item:Nn \l__mw_tmpb_seq { 2 } }
+ }
+ {
+ \__mw_if_roman_number:xTF { \seq_item:Nn \l__mw_tmpb_seq { 2 } }
+ {
+ \exp_args:NNx \int_set:Nn \l__mw_tmpc_int
+ {
+ \g__mw_last_page_int - \exp_not:N \int_from_roman:n { \seq_item:Nn \l__mw_tmpb_seq { 2 } } + 1
+ }
+ }
+ {
+ \int_set:Nn \l__mw_tmpc_int { -1 }
+ % error
+ \msg_error:nnn {magicwatermark}{ Unable to parse }
+ {
+ Error~list~parameter~``#1''.^^J
+ Error~range~right~``#1''.
+ }
+ }
+ }
+
+ \fp_compare:nT { \l__mw_tmpb_int > 0 && \l__mw_tmpc_int > 0}
+ {
+ \int_step_inline:nnn
+ { \int_min:nn { \l__mw_tmpb_int } { \l__mw_tmpc_int } }
+ { \int_max:nn { \l__mw_tmpb_int } { \l__mw_tmpc_int } }
+ {
+ \clist_put_right:Nn \l__mw_tmpa_clist { ##1 }
+ }
+ }
+}
+
+\cs_new:Npn \__mw_list_parser_for_expression:n #1 {
+ \int_zero:N \l__mw_tmpd_int
+ \int_zero:N \l__mw_tmpe_int
+ \group_begin:
+ \tl_set:Nn \l__mw_tmpa_tl { #1 }
+ \regex_replace_all:nnN { (\d+)X } { \1*\c{l__mw_tmpe_int} } \l__mw_tmpa_tl
+ \tl_replace_all:Nnn \l__mw_tmpa_tl { X } { \l__mw_tmpe_int }
+ % \tl_show:N \l__mw_tmpa_tl
+ \int_while_do:nn { \l__mw_tmpd_int < \g__mw_last_page_int }
+ {
+ \int_set:Nn \l__mw_tmpd_int
+ {
+ \fp_eval:n { \l__mw_tmpa_tl }
+ }
+ \clist_gput_right:NV \l__mw_tmpa_clist \l__mw_tmpd_int
+ \int_incr:N \l__mw_tmpe_int
+ }
+ \group_end:
+}
+
+
+\cs_new_nopar:Npn \__mw_list_parser:nN #1#2 {
+
+ % case 1 -> odd, even
+ % case 2 -> number, 1
+ % case 3 -> roman, i
+ % case 4 -> range, 1-5, 3-ii
+ % case 5 -> expression, 3X + 1
+
+ \__mw_list_parser_aux:n { #1 }
+
+ \clist_clear:N \l__mw_tmpa_clist
+ \clist_map_inline:Nn \l__mw_list_arabic_number_clist
+ {
+ \__mw_list_parser_for_arabic_number:n { ##1 }
+ }
+
+ \clist_map_inline:Nn \l__mw_list_roman_number_clist
+ {
+ \__mw_list_parser_for_roman_number:n { ##1 }
+ }
+
+
+ \clist_map_inline:Nn \l__mw_list_range_clist
+ {
+ \__mw_list_parser_for_range:n { ##1 }
+ }
+
+
+ \clist_map_inline:Nn \l__mw_list_expression_clist
+ {
+ \__mw_list_parser_for_expression:n { ##1 }
+ }
+
+
+ \clist_sort:Nn \l__mw_tmpa_clist {
+ \int_compare:nNnTF { ##1 } > { ##2 }
+ { \sort_return_swapped: }
+ { \sort_return_same: }
+ }
+ \__mw_clist_deduplicate:N \l__mw_tmpa_clist
+ \clist_set_eq:NN #2 \l__mw_tmpa_clist
+}
+
+
+\cs_new:Npn \__mw_parser:nN #1#2 {
+ \clist_clear:N #2
+ \tl_if_eq:nnTF { #1 } { * }
+ {
+ \int_step_inline:nnn { 1 } { \g__mw_last_page_int }
+ {
+ \clist_put_right:Nn #2 { ##1 }
+ }
+ }
+ {
+ \__mw_list_parser:nN { #1 } #2
+ }
+}
+
+
+
+
+\keys_define:nn { mw / new }
+{
+ pages .tl_set:N = \g__mw_list_tl,
+ style .tl_set:N = \g__mw_style_tl,
+ % style .code:n = \__mw_parse_style:n { #1 },
+ content .tl_set:N = \g__mw_content_tl,
+ is~append .bool_set:N = \g__mw_is_append_bool,
+ tikz .bool_set:N = \g__mw_tikz_bool
+}
+
+\cs_new:Npn \__mw_parse_style: {
+ \tl_if_empty:NF \g__mw_style_tl
+ {
+ \bool_if:NTF \g__mw_tikz_bool
+ {
+ \IfPackageLoadedTF{tikz}
+ {
+ \tl_set_eq:NN \l__mw_tmpc_tl \g__mw_style_tl
+ }
+ {
+ \msg_error:nn {magicwatermark}{ Load TikZ }
+ }
+ }
+ {
+ \msg_warning:nn {magicwatermark}{ Enable TikZ }
+ }
+ }
+}
+
+\keys_define:nn { mw }
+{
+ setup .code:n = \__mw_new_watermark:n {#1}
+}
+
+
+\cs_new:Npn \__mw_new_watermark:n #1 {
+ \group_begin:
+ \keys_set:nn { mw / new }{#1}
+
+ % parse style
+ \__mw_parse_style:
+
+ % parse pages
+ \exp_args:NV \__mw_parser:nN \g__mw_list_tl \l__mw_tmpc_clist
+
+ \clist_map_inline:Nn \l__mw_tmpc_clist {
+
+ \bool_if:NTF \g__mw_tikz_bool
+ {
+ \IfPackageLoadedTF{tikz}
+ {
+ \tl_set:Ne \l__mw_tmpb_tl
+ {
+ \exp_not:N \tikz[remember~picture, overlay]
+ {
+ \exp_not:N \node[inner~sep = 0pt, outer~sep = 0pt, opacity = .5, align = left, \exp_not:V \g__mw_style_tl] at (current~page.center)
+ {
+ \exp_not:V \g__mw_content_tl
+ };
+ }
+ }
+ }
+ {
+ \msg_error:nn {magicwatermark}{ Load TikZ }
+ }
+ }
+ {
+ \tl_set:NV \l__mw_tmpb_tl \g__mw_content_tl
+ }
+
+ \bool_if:nTF { \g__mw_is_append_bool && \tl_if_exist_p:c { g__mw_content_ \int_to_roman:n { ##1 } _tl } }
+ {
+ \tl_gput_right:cV { g__mw_content_ \int_to_roman:n { ##1 } _tl } \l__mw_tmpb_tl
+ }
+ {
+ \tl_gset:cV { g__mw_content_ \int_to_roman:n { ##1 } _tl } \l__mw_tmpb_tl
+ }
+ }
+ \group_end:
+}
+
+
+\NewDocumentCommand{\MagicWatermark}{m}{
+ \group_begin:
+ \AtBeginDocument{
+ \keys_set:nn { mw } { #1 }
+ \AddToHook{shipout/background}{
+ \put(.5\paperwidth,-.5\paperheight){
+ \tl_if_exist:cT { g__mw_content_ \int_to_roman:n { \value{page} }_tl }
+ {
+ \tl_use:c { g__mw_content_ \int_to_roman:n { \value{page} } _tl }
+ }
+ }
+ }
+ }
+ \group_end:
+}
+
+\@onlypreamble\MagicWatermark \ No newline at end of file
diff --git a/macros/latex/contrib/mathastext/README.md b/macros/latex/contrib/mathastext/README.md
index 094cb2c2c8..f2c55cf149 100644
--- a/macros/latex/contrib/mathastext/README.md
+++ b/macros/latex/contrib/mathastext/README.md
@@ -8,13 +8,13 @@
+-------------------------------------------+
This Work may be distributed and/or modified under the conditions
-of the [LPPL1.3c](http://www.latex-project.org/lppl/lppl-1-3c.txt)
+of the [LPPL 1.3c](https://www.latex-project.org/lppl/lppl-1-3c.txt)
The Author of this Work is Jean-Francois Burnol (`jfbu at free dot fr`)
Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol
- Source: mathastext.dtx 1.4a 2024/07/20
+ Source: mathastext.dtx 1.4b 2024/07/27
DESCRIPTION
@@ -82,6 +82,20 @@ Main options: `italic`, `frenchmath`, `subdued`, `LGRgreek`.
RECENT CHANGES
==============
+1.4b \[2024/07/27\]
+----
+
+* Fix a regression at `1.4` regarding option `nodigits`.
+
+* New option: `noletters`. I am in old age now so I can provide an option
+ completely antithetical to my life work.
+
+* Option `everymath` which is destined to be removed at next major
+ release warns user about it. As major releases tend to happen once
+ per decade I think the constant nagging will become insufferable
+ and you will adapt to the `1.4` changes rather than persisting into
+ using this option.
+
1.4a \[2024/07/20\]
----
diff --git a/macros/latex/contrib/mathastext/mathastext.dtx b/macros/latex/contrib/mathastext/mathastext.dtx
index 1ddc7ec7bb..7857f9b70a 100644
--- a/macros/latex/contrib/mathastext/mathastext.dtx
+++ b/macros/latex/contrib/mathastext/mathastext.dtx
@@ -2,8 +2,8 @@
% N.B.: this dtx file does NOT use \DocInput, it only uses docstrip.
% The LaTeX source of the documentation is NOT prefixed with %'s.
%<*dtx>
-\def\dtxtimestamp {Time-stamp: <20-07-2024 at 22:26:18 CEST>}
-\def\docdate{2024/07/20}
+\def\dtxtimestamp {Time-stamp: <26-07-2024 at 11:21:35 CEST>}
+\def\docdate{2024/07/27}
% To extract run etex on this file, then to build documentation run
% latexmk on mathastext.tex then dvipdfmx on the dvi.
% For more information see http://jf.burnol.free.fr/v13/INSTALL.txt
@@ -11,8 +11,8 @@
% due to usage of (<A7>) as an active character.
%</dtx>
%<*drv>
-\def\MSTpkgdate {2024/07/20}
-\def\MSTpkgversion {1.4a}
+\def\MSTpkgdate {2024/07/27}
+\def\MSTpkgversion {1.4b}
%</drv>
%<*dtx>
\iffalse % meta-comment
@@ -28,13 +28,13 @@
+-------------------------------------------+
This Work may be distributed and/or modified under the conditions
-of the [LPPL1.3c](http://www.latex-project.org/lppl/lppl-1-3c.txt)
+of the [LPPL 1.3c](https://www.latex-project.org/lppl/lppl-1-3c.txt)
The Author of this Work is Jean-Francois Burnol (`jfbu at free dot fr`)
Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol
- Source: mathastext.dtx 1.4a 2024/07/20
+ Source: mathastext.dtx 1.4b 2024/07/27
%</readme>
%<*dtx>
@@ -44,7 +44,7 @@ Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol
%%----------------------------------------------------------------
%% Package: mathastext
%% Info: Use the text font in math mode (JFB)
-%% Version: 1.4a 2024/07/20
+%% Version: 1.4b 2024/07/27
%% License: LPPL 1.3c (http://www.latex-project.org/lppl/lppl-1-3c.txt)
%% Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol
%% <jfbu at free dot fr>
@@ -193,6 +193,20 @@ MATHASTEXT CHANGE LOG
%</changelog>
%<*readme|changelog>
+1.4b \[2024/07/27\]
+----
+
+* Fix a regression at `1.4` regarding option `nodigits`.
+
+* New option: `noletters`. I am in old age now so I can provide an option
+ completely antithetical to my life work.
+
+* Option `everymath` which is destined to be removed at next major
+ release warns user about it. As major releases tend to happen once
+ per decade I think the constant nagging will become insufferable
+ and you will adapt to the `1.4` changes rather than persisting into
+ using this option.
+
1.4a \[2024/07/20\]
----
@@ -2483,8 +2497,9 @@ And now the same thing with fonts available on Mac OS X:
\subsubsection{Compatibility with other packages}\label{sec:compat}
-Regarding the namespace of the package almost all internally used macros use
-\cs{mst@} prefix. Almost all user commands have \cs{MT} prefix, the oldest ones
+Regarding the namespace of the package: all internal macros use
+\cs{mst@} (or \cs{ifmst@} for \TeX{} conditionals) as prefix. Almost all user
+commands have \cs{MT} prefix, the oldest ones
may use \cs{Mathastext} or variants.%
%
\footnote{It is only years after initial release that I became aware that
@@ -2502,8 +2517,7 @@ but applies in general as well).
Any definition made in a package loaded before \mst of the font to be
used for letters or for the common characters in the |ascii| basic range
-will be overruled by the loading of \mst (this includes the case
-when the earlier package had made the character `mathematically active').
+will be overruled by the loading of \mst.
Conversely most of the set-up done by \mst may well be overruled by
packages loaded later which do math related things.
@@ -2522,7 +2536,7 @@ commands in and outside of math mode.
But a difficulty arises when some other package has
made the character `catcode active' everywhere in the document. If it is
detected for such a character that \mst wishes to make `mathematically active'
-that it is aready `catcode active', \mst then checks if it is handling a Babel
+that it is already `catcode active', \mst then checks if it is handling a Babel
shorthand. If yes, it then hacks into \ctanpkg{babel} support macros for that
character to let it do what it desires it to do in math mode. And it does not
make the character mathematically active, to the contrary it makes sure
@@ -2530,7 +2544,7 @@ that the character is \emph{not} mathematically active.
\begin{footnotesize}
This last paragraph applies to the characters
- {{;}\,{,}\,{:}\,{!}\,{?}\,{+}\,{\textendash}\,{=}\,{<}\,{>}\,{(}\,{)}\,{[}\,{]},*}
+ {{;}\,{,}\,{:}\,{!}\,{?}\,{+}\,{\textendash}\,{=}\,{<}\,{>}\,{(}\,{)}\,{[}\,{]}*}
mentioned in \autoref{sec:mathxx} as `hard non-letters'. The right tick
(which is already mathematically active per default) is also handled via a
similar process, and in particular is tested for being a Babel shorthand
@@ -2861,7 +2875,8 @@ provided by \mst:
package, Greek letters are the default Computer
Modern ones or have been set-up by other packages;
for example by the \ctanpkg{fourier} package with option
- `upright', which gives upright Greek letters.
+ `upright', which gives upright Greek letters
+ or by the author \ctanpkg{lgrmath} package.
\item[LGRgreek:] (this was substantially updated at \mstrelease{1.3y}, make sure to
read the new documentation at \autoref{sec:newgreek})
this option is for fonts which additionally to Latin
@@ -4780,7 +4795,7 @@ configuration, not for the legacy one as re-enacted by everymath.
* is not modified in math mode; and it is not modified either if
found to be catcode active but not a \ctanpkg{babel} shorthand. In
contrast, the \cs{ast} will always be set to obey \MTlowerast
- configurtion configuration after \MTactiveasterisk.
+ configuration after \MTactiveasterisk.
\end{footnotesize}
@@ -4864,7 +4879,7 @@ configuration, not for the legacy one as re-enacted by everymath.
\item \mstcmd{MTmathstandardletters}:\RightNote{\mstrelease{1.3}}
turns off the mathematical active
ascii letters, i.e.\@ reverts their mathcodes to package font configuration.
- Here ``standard'' thus only means
+ Here ``standard'' only means
that the letters will not be mathematically active, but they are still under the
influence of \mst regarding the typeface they use, so they are only
``standard'' from \mst point of view.
@@ -5155,7 +5170,8 @@ only for engine \LuaLaTeX{}.
roughly by themes. So, objectively, the best for the diligent reader is to
read thoroughly all descriptions.
\begin{enumerate}[label=$\bullet$, leftmargin=1em]
- \item \mstopt{basic}: only mathastextify letters and digits.
+ \item \mstopt{basic}: only mathastextify (ascii) letters and digits. Can
+ be combined with either nodigits or noletters.
\item \mstopt{subdued}: acts in a subdued way, which means that the \LaTeX\
``normal'' (default) and ``bold'' (triggered by \cs{boldmath} or
\cs{mathversion}|{bold}|, undone by \cs{unboldmath} or on exit from a
@@ -5393,14 +5409,35 @@ The same remarks apply as for the ncccomma option. In particular \emph{note
and |*| and |\ast| will obey the math alphabet
commands (see \autoref{sec:mathxx}).
-\item \mstopt{activedigits}: makes all digits mathematically active! This is
+\item \mstopt{activedigits}:\RLNote{new:}{\mstrelease{1.4}}
+ it makes all digits mathematically active! This is
reserved to expert \LaTeX{} users. See \autoref{ssec:hackingletters} for an
example. Do not use this option if you don't intend to make use of such
techniques to achieve special effects at some location of your document at
least. (I know this goes without saying, but passing this option and not
using it is only adding overhead to all your equations with digits).
-\item \mstopt{nohbar}: prevents \mst from defining its own
+\item \mstopt{nodigits}: no \mst-ification of digits.
+\item \mstopt{noletters}:\RLNote{new:}{\mstrelease{1.4b}}
+ This is quite antithetical to the package core aim, but here you go.
+
+ \begin{footnotesize}
+ This option implies nohbar and defaultimath.
+
+ Note though that \mst will still declare to \LaTeX{} two extra symbol
+ fonts and define alphabet commands such as \Mathrm, \Mathnormal and
+ \mathnormalbold which map to them. But ascii letters will if not in
+ arguments of these commands not use the \mst-font and all business of
+ active letters (see \autoref{ssec:hackingletters}) is now irrevocably
+ inaccessible.
+
+ If you simply want to avoid the overhead of math active
+ letters, use rather \MTmathstandardletters in the preamble after having
+ loaded the package (although this does not undo the fact that \mst will
+ have redefined what a letter does if it is catcode active but that remark
+ should have been made in an even smaller typeface).\par
+ \end{footnotesize}
+ \item \mstopt{nohbar}: prevents \mst from defining its own
\cs{hbar}.
\item \mstopt{noendash}: the minus sign will be the - from the
text font, not the en-dash \textendash.
@@ -5415,7 +5452,7 @@ The same remarks apply as for the ncccomma option. In particular \emph{note
\ \mstopt{nopunctuation} ,\,.\,:\,;\ \mstopt{noplus},
\mstopt{nominus}, \mstopt{noplusnominus}\ +\,\textendash{} \mstopt{noequal} =\
\mstopt{noparenthesis} (\,)\,[\,]\,/\ \mstopt{nospecials}
-\#\,\$\,\%\,\&\ and \mstopt{nodigits}.
+\#\,\$\,\%\,\&\ (and nodigits and noletters mentioned earlier).
\item \mstopt{alldelims}: true by default, means that the
characters excluded by nolessnomore are
treated. Use this option in case of a mono-width
@@ -5572,7 +5609,11 @@ OpenType fonts. Gave bad results in my brief testing.
but once and for all at package loading time, if not subdued, or when using
\MTversion to enter a non-subdued math version.
- Please report breakages you may encounter to author.
+ Please report breakages due to the \mstrelease{1.4} release, which made it
+ necessary for you to use this option everymath as workaround.
+
+ The option is destined to be removed at next major release and it will warn
+ the user about this.
\end{enumerate}
Thanks to Kevin~\textsc{Klement}, Tariq~\textsc{Perwez}
@@ -5748,7 +5789,7 @@ Numerous examples will be found there:\\
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[2020/02/02]
\ProvidesPackage {mathastext}
- [2024/07/20 v1.4a Use the text font in math mode (JFB)]
+ [2024/07/27 v1.4b Use the text font in math mode (JFB)]
% \end{macrocode}
% \mstrelease{1.3zb} avoids writing \mst info messages also to console output, only log file.
% Make prefix occupy 20 not 25 characters for alignment with \texttt{LaTeX Font Info},
@@ -5912,6 +5953,8 @@ Numerous examples will be found there:\\
% recipe explained in \autoref{ssec:frenchmath}.
%
% \mstrelease{1.4} adds options |everymath| and |activedigits|.
+%
+% \mstrelease{1.4b} adds |noletters|.
% \begin{macrocode}
\newif\ifmst@italic
\newif\ifmst@frenchmath
@@ -5972,6 +6015,11 @@ Numerous examples will be found there:\\
\DeclareOption{nodigits}{\mst@nodigitstrue}
\newif\ifmst@defaultimath
\DeclareOption{defaultimath}{\mst@defaultimathtrue}
+% \end{macrocode}
+% \mstrelease{1.4b} adds option |noletters|.
+% \begin{macrocode}
+\newif\ifmst@noletters
+ \DeclareOption{noletters}{\mst@noletterstrue\ExecuteOptions{nohbar,defaultimath}}
\newif\ifmst@mathaccents
\DeclareOption{mathaccents}{\mst@mathaccentstrue}
\newif\ifmst@unimathaccents
@@ -6067,7 +6115,12 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% \mstrelease{1.4}: the |everymath| option.
% \begin{macrocode}
\newif\ifmst@everymath
- \DeclareOption{everymath}{\mst@everymathtrue}
+ \DeclareOption{everymath}{\mst@everymathtrue
+\PackageWarningNoLine{mathastext}{%
+ `everymath\string' will be removed at next major release.\MessageBreak
+ Please report to the author the circumstances\MessageBreak
+ which mandated its use in the present document}%
+}
% \end{macrocode}
% \mstrelease{1.3q}: the |unicode| option. Thanks to Tobias~\textsc{Brink}
% for suggesting its incorporation. The parsing of \cs{CurrentOption} does
@@ -7877,7 +7930,14 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% expands (the definition of the active letter done by \cs{mst@mathactivate}
% is done with a \cs{def}, not a \cs{let}).
% \begin{macro}{\mst@DeclareMathLetter}
+%
+% \mstrelease{1.4b} adds |noletters| option.
% \begin{macrocode}
+\ifmst@noletters
+ \let\MTmathactiveletters\@empty
+ \let\MTmathactiveLetters\@empty
+ \let\MTmathstandardletters\@empty
+\else
\def\mst@DeclareMathLetter#1#2#3#4#5{%
\DeclareMathSymbol {#1}{\mathalpha}{mtletterfont}{`#1}%
\DeclareMathSymbol {#4}{\mathalpha}{mtletterfont}{`#1}%
@@ -7989,6 +8049,7 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\mst@mathdeactivate@lowercase
\mst@mathdeactivate@uppercase
}%
+\fi
% \end{macrocode}
% \end{macro}\end{macro}
% \begin{macro}{\MTicinmath}
@@ -8088,7 +8149,17 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% \begin{macro}{\MTmathstandarddigits}
% In version \mstrelease{1.1}, we have now separated digits from letters, so paradoxically
% it is less problematic to give them the |mathalpha| type.
+%
+% \mstrelease{1.4} had defined some no-op \cs{MTmathstandarddigits} and
+% \cs{MTmathactivedigits} but if not under option |nodigits|. As they are
+% used in \cs{MTeverymathoff} and \cs{MTeverymathdefault} though this broke
+% the option |nodigits| (either with |subdued| or when using \cs{MTversion}).
+%
+% Defining them as \cs{empty} so that \LaTeX{} defensive mechanism with
+% \cs{newcommand} works but this is sooooooo hypothetical context!
% \begin{macrocode}
+\let\MTmathactivedigits\empty
+\let\MTmathstandarddigits\empty
\ifmst@nodigits\else
\def\mst@font@tbu{mtoperatorfont}%
\ifmst@symboldigits \def\mst@font@tbu{mtpsymbol}\fi
@@ -8103,8 +8174,6 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\DeclareMathSymbol{7}{\mathalpha}{\mst@font@tbu}{`7}%
\DeclareMathSymbol{8}{\mathalpha}{\mst@font@tbu}{`8}%
\DeclareMathSymbol{9}{\mathalpha}{\mst@font@tbu}{`9}%
- \let\MTmathactivedigits\relax
- \let\MTmathstandarddigits\relax
% \end{macrocode}
% \mstrelease{1.4} adds possibility of mathematically active digits.
% \begin{macrocode}
@@ -8125,10 +8194,10 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\expandafter\mst@tmp\csname MTcommanddigit\romannumeral\mst@tmp\endcsname{}%
}%
}%
- \newcommand*\MTmathactivedigits{\mst@OnlyIfNotSubdued\mst@mathactivatedigits}%
+ \def\MTmathactivedigits{\mst@OnlyIfNotSubdued\mst@mathactivatedigits}%
\MTmathactivedigits
\ifmst@everymath
- \newcommand*\MTmathstandarddigits{%
+ \def\MTmathstandarddigits{%
\@tfor\mst@tmp:=0123456789\do{%
\expandafter\mathcode\expandafter`\mst@tmp
=\csname MTmathchardigit\romannumeral\mst@tmp\endcsname
@@ -8140,7 +8209,7 @@ defaultbf,defaultit,defaultsf,defaulttt}}
% that a digit token is Babel-active) related to \cs{mst@do@activecase} in
% \ctanpkg{babel} context.
% \begin{macrocode}
- \newcommand*\MTmathstandarddigits{%
+ \def\MTmathstandarddigits{%
\@tfor\mst@tmp:=0123456789\do{%
\expandafter\mathcode\expandafter`\mst@tmp
=\csname MTmathchardigit\romannumeral\mst@tmp\endcsname
@@ -8205,10 +8274,11 @@ defaultbf,defaultit,defaultsf,defaulttt}}
%
% The first two \cs{newcommand*} are because the commands were previously
% defined unconditionally anyhow, in a way making them no-op's without
-% option |asterisk|.
+% option |asterisk|. Finally using \cs{let} here with \cs{empty} with
+% the idea of less impact on \TeX{} internals, but losing \LaTeX{} check.
% \begin{macrocode}
-\newcommand*\MTnormalasterisk{}
-\newcommand*\MTactiveasterisk{}
+\let\MTnormalasterisk\empty
+\let\MTactiveasterisk\empty
\ifmst@asterisk\mst@infoline{asterisk: \string\ast\space and *}
\ifmst@symbolmisc
\protected\def\mst@bin@ast{\mathbin{\mathchoice
@@ -10337,21 +10407,31 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{\mst@ltsh}%
\immediate\write\m@ne{}%
\PackageInfo{mathastext}%
- {Latin letters in math version `#2\string'\MessageBreak
+ {\ifmst@noletters
+ \else
+ Latin letters in math version `#2\string'\MessageBreak
declared\on@line\MessageBreak
will use the font #3/#4/#5/\mst@ltsh
\ifmst@frenchmath\space(uppercase: #6)\fi\MessageBreak
+ \fi
Other characters (digits, ...) and \protect\log-like names\MessageBreak
- will be in `#6\string' shape\@gobble}%
+ \ifmst@noletters
+ will use the font #3/#4/#5/#6%
+ \else
+ will be in `#6\string' shape%
+ \fi\@gobble}%
\immediate\write\m@ne{}%
\expandafter\edef\csname mst@ltshape@\mst@version\endcsname{\mst@ltsh}%
\else
\SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{#6}%
+ \ifmst@noletters
+ \else
\immediate\write\m@ne{}%
\PackageInfo{mathastext}%
{Latin letters in math version `#2\string'\MessageBreak
declared\on@line\MessageBreak
will use the fonts #3/#4/#5(\mst@bold)/#6\@gobble}%
+ \fi
\immediate\write\m@ne{}%
\expandafter\edef\csname mst@ltshape@\mst@version\endcsname{#6}%
\fi
@@ -10362,13 +10442,20 @@ defaultbf,defaultit,defaultsf,defaulttt}}
\SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{#1}%
\immediate\write\m@ne{}%
\PackageInfo{mathastext}%
- {Latin letters in math version `#2\string'\MessageBreak
+ {\ifmst@noletters
+ \else
+ Latin letters in math version `#2\string'\MessageBreak
declared\on@line\MessageBreak
will use the font #3/#4/#5/#1%
\ifmst@frenchmath\space(uppercase: #6)\fi\MessageBreak
+ \fi
Other characters (digits, ...) and
\protect\log-like names\MessageBreak
- will be in `#6\string' shape\@gobble}%
+ \ifmst@noletters
+ will use the font #3/#4/#5/#6%
+ \else
+ will be in `#6\string' shape%
+ \fi\@gobble}%
\immediate\write\m@ne{}%
\expandafter\edef\csname mst@ltshape@\mst@version\endcsname{#1}%
\fi
diff --git a/macros/latex/contrib/mathastext/mathastext.pdf b/macros/latex/contrib/mathastext/mathastext.pdf
index a804e30762..635b6149fb 100644
--- a/macros/latex/contrib/mathastext/mathastext.pdf
+++ b/macros/latex/contrib/mathastext/mathastext.pdf
Binary files differ
diff --git a/macros/latex/contrib/media9/ChangeLog b/macros/latex/contrib/media9/ChangeLog
index a0a11296e1..a6b0524789 100644
--- a/macros/latex/contrib/media9/ChangeLog
+++ b/macros/latex/contrib/media9/ChangeLog
@@ -1,3 +1,25 @@
+2024-09-16
+ * v1.29 : media9.sty
+ * v0.59 : pdfbase.sty
+ * fix : missing AS entry in widget annot
+
+2024-09-13
+ * v1.28 : media9.sty
+ * v0.58 : pdfbase.sty
+ * fix : xetex/dvipdfmx-related `Missing number' error, fixes #19
+
+2024-09-02
+ * v1.27 : media9.sty
+ * v0.57 : pdfbase.sty
+ * fix : internal page counter
+
+2024-08-28
+ * v1.26 : media9.sty
+ * v0.56 : pdfbase.sty
+ * fix : dvi magnification by \mag internal TeX command (pdfbase.sty);
+ PDF/A compliance (fixes agrahn/ocgx2#21)
+ * new: hooks for adding actions at begin and end of text column
+
2022-08-04
* v1.25 : media9.sty
* v0.55 : pdfbase.sty
diff --git a/macros/latex/contrib/media9/doc/media9.pdf b/macros/latex/contrib/media9/doc/media9.pdf
index 2b85529903..9ca4fb4d4f 100644
--- a/macros/latex/contrib/media9/doc/media9.pdf
+++ b/macros/latex/contrib/media9/doc/media9.pdf
Binary files differ
diff --git a/macros/latex/contrib/media9/media9.sty b/macros/latex/contrib/media9/media9.sty
index c1e00febb4..1ee3b2e3f3 100644
--- a/macros/latex/contrib/media9/media9.sty
+++ b/macros/latex/contrib/media9/media9.sty
@@ -4,7 +4,6 @@
\bool_if:nTF{
\bool_lazy_and_p:nn {\cs_if_exist_p:N \pdfmanagement_if_active_p:} { \pdfmanagement_if_active_p: }
}{\@mix@testphasetrue}{
-%\input{media9.old.tex}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% media9.sty
@@ -39,8 +38,8 @@
%
% The Current Maintainer of this work is A. Grahn.
-\def\g@mix@date@tl{2022/08/04}
-\def\g@mix@version@tl{1.25}
+\def\g@mix@date@tl{2024/09/16}
+\def\g@mix@version@tl{1.29}
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplPackage{media9}{\g@mix@date@tl}{\g@mix@version@tl}
@@ -52,7 +51,7 @@
% package options
\msg_set:nnnn{media9}{unknown~package~option}{Unknown~package~option~`#1'.}{
- Package option~'#1'~is~unknown;\\
+ Package~option~'#1'~is~unknown;\\
perhaps~it~is~spelled~incorrectly.
}
@@ -2446,8 +2445,8 @@
%
% The Current Maintainer of this work is A. Grahn.
-\def\g@mix@date@tl{2022/08/04}
-\def\g@mix@version@tl{1.25}
+\def\g@mix@date@tl{2024/09/16}
+\def\g@mix@version@tl{1.29}
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplPackage{media9}{\g@mix@date@tl}{\g@mix@version@tl}
@@ -2459,7 +2458,7 @@
% package options
\msg_set:nnnn{media9}{unknown~package~option}{Unknown~package~option~`#1'.}{
- Package option~'#1'~is~unknown;\\
+ Package~option~'#1'~is~unknown;\\
perhaps~it~is~spelled~incorrectly.
}
diff --git a/macros/latex/contrib/media9/pdfbase.sty b/macros/latex/contrib/media9/pdfbase.sty
index 67ff708ad5..31b5e23dee 100644
--- a/macros/latex/contrib/media9/pdfbase.sty
+++ b/macros/latex/contrib/media9/pdfbase.sty
@@ -156,8 +156,8 @@
%
% The Current Maintainer of this work is A. Grahn.
-\def\g@pbs@date@tl{2022/08/04}
-\def\g@pbs@version@tl{0.55}
+\def\g@pbs@date@tl{2024/09/16}
+\def\g@pbs@version@tl{0.59}
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplPackage{pdfbase}{\g@pbs@date@tl}{\g@pbs@version@tl}
@@ -168,7 +168,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\msg_gset:nnnn{pdfbase}{unknown~package~option}{Unknown~package~option~`#1'.}{
- Package option~'#1'~is~unknown;\\
+ Package~option~'#1'~is~unknown;\\
perhaps~it~is~spelled~incorrectly.
}
@@ -220,11 +220,11 @@
{dvipdfmx}{
\bool_gset_true:N\g_pbs_dvipdfmx_bool
\bool_gset_false:N\g_pbs_dvisvgm_bool
- }
+ }
{dvisvgm}{
\bool_gset_false:N\g_pbs_dvipdfmx_bool
\bool_gset_true:N\g_pbs_dvisvgm_bool
- }
+ }
}{ % otherwise let the L3 backend code decide
\str_case_e:nn{\c_sys_backend_str}{
{dvisvgm}{
@@ -270,6 +270,12 @@
\seq_new:N\g_pbs_bop_seq
\seq_new:N\g_pbs_eop_seq
+% column (boc, eoc) hooks
+\cs_new_protected:Nn\pbs_boc_action:n{\seq_gput_right:Nn\g_pbs_boc_seq{#1}}
+\cs_new_protected:Nn\pbs_eoc_action:n{\seq_gput_right:Nn\g_pbs_eoc_seq{#1}}
+\seq_new:N\g_pbs_boc_seq
+\seq_new:N\g_pbs_eoc_seq
+
\bool_new:N\g_pbs_lscape_bool %if we are inside landscape env
\bool_new:N\g_pbs_ocgbase_loaded_bool
\AtBeginDocument{
@@ -1105,8 +1111,8 @@
\mode_leave_vertical: % resources are managed automatically
%rescale box to fit within the papersize while distilling
\tl_gset:cx{scale_{pbs@obj\int_use:N\g_pbs_obj_int}}{\fp_eval:n{min(1.0,
- \dim_ratio:nn{\paperwidth}{\box_wd:N#5},
- \dim_ratio:nn{\paperheight}{\box_ht:N#5+\box_dp:N#5}
+ \dim_ratio:nn{\paperwidth}{\box_wd:N#5}/\the\mag*1000,
+ \dim_ratio:nn{\paperheight}{\box_ht:N#5+\box_dp:N#5}/\the\mag*1000
)}}
\box_scale:Nnn#5{
\tl_use:c{scale_{pbs@obj\int_use:N\g_pbs_obj_int}}
@@ -1302,33 +1308,38 @@
\tl_gput_left:Nx\g_pbs_fields_tl{#1\space}
}
-%modify output routine for output box insertions
-\bool_new:N\l_pbs_is_vertical_bool
+% modify page output routine for inserting actions at begin and end
\cs_set_eq:NN\pbs_outputpage_orig:\@outputpage
\cs_set_protected_nopar:Npn\@outputpage{
\int_gincr:N\g_pbs_page_int
- \box_if_vertical:cTF{@outputbox}{
- \bool_set_true:N\l_pbs_is_vertical_bool
- }{
- \bool_set_false:N\l_pbs_is_vertical_bool
- }
- \hbox_set:Nn\@outputbox{
+ \vbox_set:Nn\@outputbox{
%begin of page
- \hbox_overlap_right:n{\seq_map_inline:Nn\g_pbs_bop_seq{##1}}
+ \seq_map_inline:Nn\g_pbs_bop_seq{##1}
\box_use_drop:N\@outputbox
%end of page
- \hbox_overlap_right:n{\seq_map_inline:Nn\g_pbs_eop_seq{##1}}
- }
- \bool_if:NT\l_pbs_is_vertical_bool{
- \vbox_set:Nn\@outputbox{\box_use_drop:N\@outputbox}
+ \seq_map_inline:Nn\g_pbs_eop_seq{##1}
}
\pbs_outputpage_orig:
}
+% modify column making routine for inserting actions at begin and end
+\cs_set_eq:NN\pbs_makecol_orig:\@makecol
+\cs_set_protected_nopar:Npn\@makecol{
+ \vbox_set:Nn\@cclv{
+ %begin of column
+ \seq_map_inline:Nn\g_pbs_boc_seq{##1}
+ \vbox_unpack_drop:N\@cclv
+ %end of column
+ \seq_map_inline:Nn\g_pbs_eoc_seq{##1}
+ }
+ \pbs_makecol_orig:
+}
+
\AddToHook{shipout/foreground}{
%insert /Properties into current page's resources
\put(0,0){\pbs_insert_properties_entry:}
}
+
\AddToHook{shipout/background}{
% workaround for curious AR bug (pdf annot or link placed on
% OCG remains active although OCG is hidden)
@@ -1336,8 +1347,15 @@
% somewhere on the page.
\bool_if:NT\g_pbs_ocgbase_loaded_bool{
\put(1,-1){
+ \tl_if_exist:NF\g_pbs_blank_xform_tl{
+ \hbox_set:Nn\l_tmpa_box{\phantom{\rule{1pt}{1pt}}}
+ \pbs_pdfxform:nnnnn{0}{1}{}{}{\l_tmpa_box}
+ \tl_const:Ne\g_pbs_blank_xform_tl{\pbs_pdflastxform:}
+ }
\pbs_pdfannot:nnnn{3bp}{\c_zero_dim}{3bp}{
- /Ff~65537/FT/Btn/Subtype/Widget
+ /Ff~65537/FT/Btn/Subtype/Widget/F~4
+ /A~<</S/ResetForm>>% to make pdf.js happy
+ /AP~<</N~<</On~\g_pbs_blank_xform_tl>>>>/AS/On
/T~(pbs@ARFix@\int_use:N\g_pbs_page_int)
}
}
@@ -1435,8 +1453,8 @@
% `fstream', then
% {stream attributes as PDF key-value dictionary}{file name}
%
-% if #3 && #1 are both empty, an object reference will be reserved for later
-% use as #1
+% if #3 && #1 are both empty, an object reference will be reserved for
+% later use as #1
%
% \pbs_pdflastobj:
% inserts object ID of PDF object created/processed during most recent call
@@ -1471,9 +1489,9 @@
% --------
%
% \pbs_pdfxform:nnnnn
-% #1: add pgf/tikz resources (transparency, shading)? (0|1) %dvipdfmx/xetex
+% #1: add pgf/tikz resources (transparency, shading)? (0|1); dvipdfmx/xetex
% #2: write immediately to PDF? (0|1); eg 1 for appearances; pdftex/luatex
-% #3: additional resources %all BUT dvips
+% #3: additional resources; all BUT dvips
% #4: additional dictionary entries
% #5: savebox number
% creates PDF Form XObject from savebox content
@@ -1539,8 +1557,8 @@
%
% The Current Maintainer of this work is A. Grahn.
-\def\g@pbs@date@tl{2022/08/04}
-\def\g@pbs@version@tl{0.55}
+\def\g@pbs@date@tl{2024/09/16}
+\def\g@pbs@version@tl{0.59}
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplPackage{pdfbase}{\g@pbs@date@tl}{\g@pbs@version@tl}
@@ -1551,7 +1569,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\msg_gset:nnnn{pdfbase}{unknown~package~option}{Unknown~package~option~`#1'.}{
- Package option~'#1'~is~unknown;\\
+ Package~option~'#1'~is~unknown;\\
perhaps~it~is~spelled~incorrectly.
}
@@ -1603,11 +1621,11 @@
{dvipdfmx}{
\bool_gset_true:N\g_pbs_dvipdfmx_bool
\bool_gset_false:N\g_pbs_dvisvgm_bool
- }
+ }
{dvisvgm}{
\bool_gset_false:N\g_pbs_dvipdfmx_bool
\bool_gset_true:N\g_pbs_dvisvgm_bool
- }
+ }
}{ % otherwise let the L3 backend code decide
\str_case_e:nn{\c_sys_backend_str}{
{dvisvgm}{
@@ -1653,8 +1671,16 @@
\seq_new:N\g_pbs_bop_seq
\seq_new:N\g_pbs_eop_seq
-\bool_new:N\g_pbs_lscape_bool %if we are inside landscape env
+% column (boc, eoc) hooks
+\cs_new_protected:Nn\pbs_boc_action:n{\seq_gput_right:Nn\g_pbs_boc_seq{#1}}
+\cs_new_protected:Nn\pbs_eoc_action:n{\seq_gput_right:Nn\g_pbs_eoc_seq{#1}}
+\seq_new:N\g_pbs_boc_seq
+\seq_new:N\g_pbs_eoc_seq
+
\bool_new:N\g_pbs_ocgbase_loaded_bool
+\AddToHook{package/ocgbase/after}{\bool_gset_true:N\g_pbs_ocgbase_loaded_bool}
+
+\bool_new:N\g_pbs_lscape_bool %if we are inside landscape env
\AtBeginDocument{
\iow_now:Nx\@mainaux{
\token_to_str:N\providecommand\token_to_str:N\pbs@newkey[2]{}
@@ -1666,7 +1692,6 @@
\tl_put_right:Nn\landscape{\bool_gset_true:N\g_pbs_lscape_bool}
\tl_put_left:Nn\endlandscape{\bool_gset_false:N\g_pbs_lscape_bool}
}
- \@ifpackageloaded{ocgbase}{\bool_gset_true:N\g_pbs_ocgbase_loaded_bool}{}
}
% writing to core objects in the PDF, using the new pdfmanagement interface
@@ -1851,7 +1876,9 @@
\xsb_addto_props:n{/rm@oc\int_use:N\g_pbs_oc_int\space#2}
\int_gincr:N\g_pbs_oc_int
}{
- \pdf_bdcobject:nx{#1}{\tl_use:c{g_pbs_objname_#2_tl}}
+ \tl_if_exist:cT{g_pbs_objname_#2_tl}{
+ \exp_args:Nne\pdf_bdcobject:nn{#1}{\tl_use:c{g_pbs_objname_#2_tl}}
+ }
}
}
@@ -1868,9 +1895,7 @@
%pgf + transparency related settings
\bool_new:N\g_pbs_pgfloaded_bool
\bool_gset_false:N\g_pbs_pgfloaded_bool
- \AtBeginDocument{
- \@ifpackageloaded{pgf}{\bool_gset_true:N\g_pbs_pgfloaded_bool}{}
- }
+ \AddToHook{package/pgf/after}{\bool_gset_true:N\g_pbs_pgfloaded_bool}
\int_new:N\g_pbs_obj_int %object ID
\bool_if:NTF\g_pbs_dvipdfmx_bool{ %dvipdfmx/XeTeX
\AtBeginDocument{
@@ -2042,7 +2067,9 @@
}
\cs_new_protected_nopar:Nn\pbs_pdfbdc:nn{
- \pdf_bdcobject:nx{#1}{\tl_use:c{g_pbs_objname_#2_tl}}
+ \tl_if_exist:cT{g_pbs_objname_#2_tl}{
+ \exp_args:Nne\pdf_bdcobject:nn{#1}{\tl_use:c{g_pbs_objname_#2_tl}}
+ }
}
}{
\bool_if:NTF\g_pbs_dvisvgm_bool{
@@ -2436,8 +2463,8 @@
\mode_leave_vertical: % resources are managed automatically
%rescale box to fit within the papersize while distilling
\tl_gset:cx{scale_{pbs@obj\int_use:N\g_pbs_obj_int}}{\fp_eval:n{min(1.0,
- \dim_ratio:nn{\paperwidth}{\box_wd:N#5},
- \dim_ratio:nn{\paperheight}{\box_ht:N#5+\box_dp:N#5}
+ \dim_ratio:nn{\paperwidth}{\box_wd:N#5}/\the\mag*1000,
+ \dim_ratio:nn{\paperheight}{\box_ht:N#5+\box_dp:N#5}/\the\mag*1000
)}}
\box_scale:Nnn#5{
\tl_use:c{scale_{pbs@obj\int_use:N\g_pbs_obj_int}}
@@ -2602,7 +2629,6 @@
}
}
}
-\cs_generate_variant:Nn\pdf_bdcobject:nn{nx}
\cs_new_eq:NN\pbs_pdfemc:\pdf_emc:
\cs_new_nopar:Nn\pbs_pdflastobj:{\g_pbs_pdflastobj_tl}
@@ -2610,29 +2636,33 @@
\cs_new_nopar:Nn\pbs_pdflastxform:{\g_pbs_pdflastxform_tl}
\cs_new_nopar:Nn\pbs_pdflastximage:{\g_pbs_pdflastximage_tl}
-%modify output routine for output box insertions
-\bool_new:N\l_pbs_is_vertical_bool
+% modify page output routine for inserting actions at begin and end
\cs_set_eq:NN\pbs_outputpage_orig:\@outputpage
\cs_set_protected_nopar:Npn\@outputpage{
\int_gincr:N\g_pbs_page_int
- \box_if_vertical:cTF{@outputbox}{
- \bool_set_true:N\l_pbs_is_vertical_bool
- }{
- \bool_set_false:N\l_pbs_is_vertical_bool
- }
- \hbox_set:Nn\@outputbox{
+ \vbox_set:Nn\@outputbox{
%begin of page
- \hbox_overlap_right:n{\seq_map_inline:Nn\g_pbs_bop_seq{##1}}
+ \seq_map_inline:Nn\g_pbs_bop_seq{##1}
\box_use_drop:N\@outputbox
%end of page
- \hbox_overlap_right:n{\seq_map_inline:Nn\g_pbs_eop_seq{##1}}
- }
- \bool_if:NT\l_pbs_is_vertical_bool{
- \vbox_set:Nn\@outputbox{\box_use_drop:N\@outputbox}
+ \seq_map_inline:Nn\g_pbs_eop_seq{##1}
}
\pbs_outputpage_orig:
}
+% modify column making routine for inserting actions at begin and end
+\cs_set_eq:NN\pbs_makecol_orig:\@makecol
+\cs_set_protected_nopar:Npn\@makecol{
+ \vbox_set:Nn\@cclv{
+ %begin of column
+ \seq_map_inline:Nn\g_pbs_boc_seq{##1}
+ \vbox_unpack_drop:N\@cclv
+ %end of column
+ \seq_map_inline:Nn\g_pbs_eoc_seq{##1}
+ }
+ \pbs_makecol_orig:
+}
+
\AddToHook{shipout/background}{
% workaround for curious AR bug (pdf annot or link placed on
% OCG remains active although OCG is hidden)
@@ -2640,8 +2670,14 @@
% somewhere on the page.
\bool_if:NT\g_pbs_ocgbase_loaded_bool{
\put(1,-1){
+ \tl_if_exist:NF\g_pbs_blank_xform_tl{
+ \hbox_set:Nn\l_tmpa_box{\phantom{\rule{1pt}{1pt}}}
+ \pbs_pdfxform:nnnnn{0}{1}{}{}{\l_tmpa_box}
+ \tl_const:Ne\g_pbs_blank_xform_tl{\pbs_pdflastxform:}
+ }
\pbs_pdfannot:nnnn{3bp}{\c_zero_dim}{3bp}{
- /Ff~65537/FT/Btn/Subtype/Widget
+ /Ff~65537/FT/Btn/Subtype/Widget/F~4
+ /AP~<</N~<</On~\g_pbs_blank_xform_tl>>>>/AS/On
/T~(pbs@ARFix@\int_use:N\g_pbs_page_int)
}
}
diff --git a/macros/latex/contrib/mercatormap/CHANGES.md b/macros/latex/contrib/mercatormap/CHANGES.md
new file mode 100644
index 0000000000..49ef66fb7a
--- /dev/null
+++ b/macros/latex/contrib/mercatormap/CHANGES.md
@@ -0,0 +1,176 @@
+# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on
+[Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
+and this project adheres to
+[Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+
+## [Unreleased]
+
+### Added
+### Changed
+### Deprecated
+### Removed
+### Fixed
+### Security
+
+
+
+## [1.2.0] - 2024-08-05
+
+### Added
+- Command `\ifmrcNPexists` to test existence of a named position
+- Macros `\mrcAnimAngle` and `\l_mermap_anim_angle_fp` to measure
+ the current orthodrome angle
+- Animation example for static maps
+
+### Changed
+- `\mrcNPlat` and `\mrcNPlon` result to 0 now, if named position does not exist
+- `\ifmrcNPinmap` and `\ifmrcNPinvicinity` result to `false` now, if named position does not exist
+- Point definitions on an orthodrome now take an optional angle as result:
+ - Command `mrcNPfromOrthoFraction`
+ - Command `mrcNPfromOrthoFractionNamed`
+ - Command `mrcNPfromOrthoDistance`
+ - Command `mrcNPfromOrthoDistanceNamed`
+
+### Fixed
+- Documentation contained dates from `2023` instead of `2024`
+
+
+
+## [1.1.0] - 2024-08-01
+
+### Added
+- New supply sources (web tile servers):
+ - `thunderforest atlas`
+ - `topplusopen web light`
+ - `topplusopen web light grau`
+- Needed LaTeX version 2023-11-01
+- Point definitions on an orthodrome:
+ - Command `mrcNPfromOrthoFraction`
+ - Command `mrcNPfromOrthoFractionNamed`
+ - Command `mrcNPfromOrthoDistance`
+ - Command `mrcNPfromOrthoDistanceNamed`
+- Animation support:
+ - Environment `mrcAnimation`
+ - Command `\mrcTimewarpIdentity`
+ - Command `\mrcTimewarpSlowStart`
+ - Command `\mrcTimewarpSlowFinal`
+ - Command `\mrcTimewarpSlowStartFinal`
+ - Command `\mrcAnimFrame`
+ - Command `\l_mermap_anim_frame_int`
+ - Command `\mrcAnimTime`
+ - Command `\l_mermap_anim_time_fp`
+ - Command `\mrcAnimScaleDenom`
+ - Command `\l_mermap_anim_scaledenom_fp`
+ - Command `\mrcAnimLatitude`
+ - Command `\l_mermap_anim_lat_fp`
+ - Command `\mrcAnimLongitude`
+ - Command `\l_mermap_anim_lon_fp`
+ - Option `start-position`
+ - Option `named-start-position`
+ - Option `final-position`
+ - Option `named-final-position`
+ - Option `position`
+ - Option `named-position`
+ - Option `frames`
+ - Option `drop-first-frame`
+ - Option `drop-last-frame`
+ - Option `drop-no-frame`
+ - Option `scale-denominators`
+ - Option `common-scale-denominator`
+ - Option `timewarp`
+ - Option `timewarp-identity`
+ - Option `timewarp-slow-start`
+ - Option `timewarp-slow-final`
+ - Option `timewarp-slow-start-final`
+
+### Changed
+- Version history moved from documentation Chapter 11 to this changelog
+- Versioning changed to [Semantic Versioning](http://semver.org/spec/v2.0.0.html)
+ starting with 1.1.0
+- `README` changed to `README.md`
+- Key names start with `mermap` instead of `/mermap` now
+- All common scratch variables like `\l_tmpa_tl` replaced by package variables
+- Orthodrome code
+- Several code further revisions
+
+### Deprecated
+- Stamen Design has discontinued to server map tiles since 2023-07-31.
+ Therefore, all `supply/source` options based on Stamen Design are
+ deprecated now, namely
+ - `stamen terrain`
+ - `stamen terrain-background`
+ - `stamen terrain-labels`
+ - `stamen terrain-lines`
+ - `stamen toner`
+ - `stamen toner-lite`
+ - `stamen toner-hybrid`
+ - `stamen toner-background`
+ - `stamen toner-labels`
+ - `stamen toner-lines`
+ - `stamen watercolor`
+ All these options are now not documented any more, but for some time
+ are still available for old documents with cached map tiles.
+
+### Removed
+- Requirement for packages `expl3`, `xparse`, and `pdftexcmds`
+
+### Fixed
+- Links to the WMS maps of Bundesamt für Kartographie und Geodäsie changed
+- Overwrite warning while generating `maptiles.texpy`
+- Orthodrome drawing with identical starting and final point is now silently ignored
+
+
+
+## [1.02] - 2020-08-06
+
+### Added
+- New options
+ `/mermap/supply/area from marker input` and
+ `/mermap/supply/add area from marker input`
+ which allow to fit a map to a given external list of marker positions.
+- New option `/mermap/fail on missing resource` to control
+ compilation behavior for missing resource files.
+- New marker option `/mermap/marker/distance` with corresponding
+ macro `\mrcmarkerdistance` (issue #2)
+
+### Deprecated
+- Openrouteservice has discontinued mapsurfer tiles since June 2020.
+ Therefore, `/mermap/supply/source=openrouteservice mapsurfer`
+ is deprecated now. It is not documented any more, but
+ for some time it is still available for old documents with
+ cached map tiles.
+
+
+
+## [1.01] - 2020-05-05
+
+### Added
+- New general marker option
+ `/mermap/marker/generic` with corresponding macros
+ `\mrcmarkergeneric` and `\l_mermap_marker_generic_tl`.
+ Also, the marker uuid is made expl3 accessible as `\l_mermap_marker_uuid_tl`.
+- New hyper marker options:
+ - `/mermap/marker/url`
+ - `/mermap/marker/link`
+ - `/mermap/marker/use urls`
+ - `/mermap/marker/ignore urls`
+ - `/mermap/marker/use links`
+ - `/mermap/marker/ignore links`
+
+### Changed
+- User messages for failed Python script calls are changed from warnings to
+ errors to fail fast and to provide more information and hints about
+ possible reasons.
+
+### Fixed
+- Sorting of index key entries fixed for the documentation.
+
+
+
+## [1.00] - 2020-04-20
+
+### Added
+- Initial public release
diff --git a/macros/latex/contrib/mercatormap/README b/macros/latex/contrib/mercatormap/README
deleted file mode 100644
index c33ea99112..0000000000
--- a/macros/latex/contrib/mercatormap/README
+++ /dev/null
@@ -1,43 +0,0 @@
-%% The LaTeX package mercatormap - version 1.02 (2020/08/06)
-%%
-%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2020 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
-%% -------------------------------------------------------------------------------------------
-%%
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status `author-maintained'.
-%%
-%% This work consists of all files listed in README
-%%
-
-The package ...
-
-Contents of the package
-=======================
- 'README' this file
- 'mercatormap.sty' LaTeX package file (style file)
- 'mercatorsupplier.def' LaTeX package file (include file for style)
- 'mercatorpy.def' LaTeX package file (Python generator)
- 'mercatormap.pdf' Documentation
- 'mercatormap.tex' Source code of the documentation (main file)
- '*.doc.*' Source code of the documentation (include files)
- 'mercatormap-example.tex' Source code of an example
- 'mercatormap.bib' Bibliography of the documentation
-
-Installation
-============
-Copy the contents of the 'mercatormap.tds.zip' from CTAN to your local TeX file tree.
-
-Alternatively, put the files to their respective locations within the TeX installation:
- 'mercatormap.sty' -> /tex/latex/mercatormap
- 'mercatorpy.def' -> /tex/latex/mercatormap
- 'mercatorsupplier.def' -> /tex/latex/mercatormap
-
- all other files -> /doc/latex/mercatormap
diff --git a/macros/latex/contrib/mercatormap/README.md b/macros/latex/contrib/mercatormap/README.md
new file mode 100644
index 0000000000..b7b4be29ab
--- /dev/null
+++ b/macros/latex/contrib/mercatormap/README.md
@@ -0,0 +1,50 @@
+# The LaTeX package mercatormap - version 1.2.0 (2024/08/05)
+
+
+> Copyright (c) 2020-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+
+> This work may be distributed and/or modified under the
+> conditions of the LaTeX Project Public License, either version 1.3
+> of this license or (at your option) any later version.
+> The latest version of this license is in
+> https://www.latex-project.org/lppl.txt
+> and version 1.3c or later is part of all distributions of LaTeX
+> version 2008-05-04 or later.
+
+> This work has the LPPL maintenance status `author-maintained`.
+
+> This work consists of all files listed in README.md
+
+
+The mercatormap package extends TikZ with tools to
+create map graphics. The provided coordinate system relies on the
+Web Mercator projection used on the Web by OpenStreetMap and others.
+The package supports the seamless integration of graphics
+from public map tile servers by a Python script. Also, common map
+elements like markers, geodetic networks, bar scales, routes, orthodrome
+pieces, and more are part of the package.
+
+
+## Contents of the package
+
+- `README.md` this file
+- `CHANGES.md` log of changes (history)
+- `mercatormap.sty` LaTeX package file (style file)
+- `mercatorsupplier.def` LaTeX package file (include file for style)
+- `mercatorpy.def` LaTeX package file (Python generator)
+- `mercatormap.pdf` Documentation
+- `mercatormap.tex` Source code of the documentation (main file)
+- `*.doc.*` Source code of the documentation (include files)
+- `mercatormap-example.tex` Source code of an example
+- `mercatormap.bib` Bibliography of the documentation
+
+
+## Installation
+
+Copy the contents of the `mercatormap.tds.zip` from CTAN to your local TeX file tree.
+
+Alternatively, put the files to their respective locations within the TeX installation:
+- `mercatormap.sty` -> /tex/latex/mercatormap
+- `mercatorpy.def` -> /tex/latex/mercatormap
+- `mercatorsupplier.def` -> /tex/latex/mercatormap
+- all other files -> /doc/latex/mercatormap
diff --git a/macros/latex/contrib/mercatormap/mercatormap-example.tex b/macros/latex/contrib/mercatormap/mercatormap-example.tex
index 0951bf14d1..333a249590 100644
--- a/macros/latex/contrib/mercatormap/mercatormap-example.tex
+++ b/macros/latex/contrib/mercatormap/mercatormap-example.tex
@@ -1,11 +1,11 @@
% \LaTeX-Main\
% !TeX encoding=UTF-8
%%
-%% The LaTeX package mercatormap - version 1.02 (2020/08/06)
+%% The LaTeX package mercatormap - version 1.2.0 (2024/08/05)
%% mercatormap-example.tex: Example document with a map
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2020 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2020-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
diff --git a/macros/latex/contrib/mercatormap/mercatormap.bib b/macros/latex/contrib/mercatormap/mercatormap.bib
index ef2e9b6213..36a3e976ec 100644
--- a/macros/latex/contrib/mercatormap/mercatormap.bib
+++ b/macros/latex/contrib/mercatormap/mercatormap.bib
@@ -1,4 +1,5 @@
% Encoding: UTF-8
+
% include file of mercatormap.tex (manual of the LaTeX package mercatormap)
@Report{Sturm:2020,
@@ -14,35 +15,27 @@
}
-@manual{package:tikz,
- author = {Till Tantau},
- title = {The TikZ and PGF Packages},
- subtitle = {Manual for version 3.1.5b},
- url = {http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf},
- date = {2020-01-08},
+@Manual{package:tikz,
+ author = {Till Tantau},
+ date = {2023-01-15},
+ title = {The TikZ and PGF Packages},
+ subtitle = {Manual for version 3.1.10},
+ url = {https://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf},
}
-@manual{package:xparse,
- author = {{The \LaTeX3 Project}},
- title = {The xparse package},
- subtitle = {Document command parser},
- url = {http://mirrors.ctan.org/macros/latex/contrib/l3packages/xparse.pdf},
- date = {2020-03-06},
+@Manual{l3kernel:interfaces,
+ author = {{The \LaTeX3 Project}},
+ date = {2024-05-27},
+ title = {The \LaTeX3 Interfaces},
}
-@manual{package:siunitx,
- author = {Joseph Wright},
- title = {siunitx -- A comprehensive (SI) units package},
- url = {http://mirrors.ctan.org/macros/latex/contrib/siunitx/siunitx.pdf},
- date = {2020-02-25},
+@Manual{package:siunitx,
+ author = {Joseph Wright},
+ date = {2024-06-24},
+ title = {siunitx -- A comprehensive (SI) units package},
+ url = {https://mirrors.ctan.org/macros/latex/contrib/siunitx/siunitx.pdf},
}
-
-@manual{package:expl3,
- author = {{The \LaTeX3 Project}},
- title = {The expl3 package and \LaTeX3 programming},
- url = {http://mirrors.ctan.org/macros/latex/contrib/l3kernel/expl3.pdf},
- date = {2020-04-06},
-}
+@Comment{jabref-meta: databaseType:biblatex;}
diff --git a/macros/latex/contrib/mercatormap/mercatormap.doc.animations.tex b/macros/latex/contrib/mercatormap/mercatormap.doc.animations.tex
new file mode 100644
index 0000000000..022b856a61
--- /dev/null
+++ b/macros/latex/contrib/mercatormap/mercatormap.doc.animations.tex
@@ -0,0 +1,538 @@
+% !TeX root = mercatormap.tex
+% !TeX encoding=UTF-8
+% !TeX spellcheck=en_US
+% include file of mercatormap.tex (manual of the LaTeX package mercatormap)
+\clearpage
+\section{Animations}\label{sec:animations}%
+
+An animation in the context of map drawing is considered to be a direct movement
+from a starting position to a final position with possible adaption of
+scale denominators.
+
+This package does not provide animation production, but allows to create a
+PDF with a sequence of maps (frames) following such an animation path.
+
+
+%-------------------------------------------------------------------------------
+\subsection{Animation Environment}
+
+\begin{docEnvironment}[doc new=2024-07-31]{mrcAnimation}{\marg{options}}
+ According to the given \meta{options}, the environment loops over the
+ \meta{environment content} several times generating \textit{frames}
+ for an external animation program.
+ A detailed description for the \meta{options} is found in \Fullref{ref:animOptions}.
+ \begin{itemize}
+ \item Basically, the position is moved from
+ a given \refKey{mermap/anim/start-position} with time index |0|
+ following an orthodrome
+ to a \refKey{mermap/anim/final-position} with time index |1|.
+ \item
+ This time interval $[0,1]$ is divided into \refKey{mermap/anim/frames}.
+ The current frame number is denoted by \refCom{mrcAnimFrame},
+ the current time is denoted by \refCom{mrcAnimTime}, and
+ the current position is denoted by
+ \refCom{mrcAnimLatitude} and \refCom{mrcAnimLongitude},
+ alternatively by the named positon \docValue{AnimNP}.
+ \item
+ During movement, a time dependent sequence of \refKey{mermap/anim/scale-denominators}
+ defines the current scale denominator \refCom{mrcAnimScaleDenom}.
+ \item
+ The frames may have an equal time distance or have different time
+ distances using a \refKey{mermap/anim/timewarp}. This could be used
+ to slow down movement near ground and to speed up with more height.
+ \end{itemize}
+ The generated sequence of frames is applicable for
+ \begin{itemize}
+ \item Movement along an orthodrome from starting to final position with an unchanged
+ common scale denominator.
+ \item Zoom in or out on a fixed position.
+ \item Combination of both animations.
+ \item Animated orthodrome drawing on a static map.
+ \end{itemize}
+ For more complex animations, several \refEnv{mrcAnimation} environments may be
+ used consecutively.
+\end{docEnvironment}
+
+\clearpage
+\begin{dispExample*}{breakable}
+ \mrcNPdef{heathrow}{51.4678}{-0.4548}
+ \mrcNPdef{fiumicino}{41.8151}{12.2508}
+
+ \begin{tcbraster}[raster height=22cm,raster columns=4,raster rows=7,
+ tile,size=minimal,boxsep=1pt,colback=black!20 ]
+ \begin{mrcAnimation}
+ {
+ named-start-position = heathrow,
+ named-final-position = fiumicino,
+ frames = 36,
+ scale-denominators = 0/1000000 - 0.3/8000000 - 0.7/8000000 - 1/1000000,
+ timewarp-slow-start-final = 1.5,
+ }
+ \begin{tcolorbox}
+ \begin{tikzpicture}
+ \mermapset
+ {
+ named flex scale = \mrcAnimScaleDenom:AnimNP,
+ }
+ \mrcmap
+ [
+ type = reference,
+ named position = AnimNP,
+ source = topplusopen web,
+ tex width = \tcbtextwidth,
+ tex height = \tcbtextheight
+ ]{london-roma-\mrcAnimFrame}
+ \mrcdrawmap
+ \node[above left,font=\fontsize{3.5pt}{3.5pt}\sffamily]
+ at (mrcmap.south east) {\mrcmapattribution};
+ \mrcclipmap
+ \end{tikzpicture}
+ \end{tcolorbox}
+ \end{mrcAnimation}
+ \end{tcbraster}
+\end{dispExample*}
+
+
+
+\clearpage
+\begin{dispExample*}{breakable}
+ % \usepackage{fontawesome5}
+ \mrcNPdef{heathrow}{51.4678}{-0.4548}
+ \mrcNPdef{lax}{33.9421}{-118.4088}
+ \mrcNPdef{reykjavik}{64.1289}{-21.9369}
+
+ \begin{tcbraster}[raster height=22cm,raster columns=2,raster rows=4,
+ tile,size=minimal,boxsep=1pt,colback=black!20 ]
+ \begin{mrcAnimation}
+ {
+ named-start-position = heathrow,
+ named-final-position = lax,
+ frames = 8,
+ }
+ \begin{tcolorbox}
+ \begin{tikzpicture}
+ \mrcmap
+ [
+ type = areafit,
+ area = {heathrow,lax,reykjavik},
+ source = topplusopen web,
+ tex width = \tcbtextwidth,
+ tex height = \tcbtextheight,
+ flex area fit = 8mm,
+ ]{london-lax-\mrcAnimFrame}
+ \mrcdrawmap
+ \node[above left,font=\fontsize{3.5pt}{3.5pt}\sffamily]
+ at (mrcmap.south east) {\mrcmapattribution};
+ \mrcclipmap
+ \mrcNPdraworthodrome[red,very thick]{heathrow}{AnimNP}
+ \node[red!70!black,rotate=\mrcAnimAngle]
+ at (\mrcNPcs{AnimNP}) {\large\faPlane};
+ \end{tikzpicture}
+ \end{tcolorbox}
+ \end{mrcAnimation}
+ \end{tcbraster}
+\end{dispExample*}
+
+
+\clearpage
+%-------------------------------------------------------------------------------
+\subsection{Animation Options}\label{ref:animOptions}
+
+\begin{docMrcKeys}[
+ doc keypath = anim,
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = start-position,
+ doc parameter = {=\meta{latitude}/\meta{longitude}},
+ doc description = initially |51.4779/0|
+ },
+ {
+ doc name = named-start-position,
+ doc parameter = {=\meta{name}},
+ }
+ }
+ Starting position of the animation given by
+ \meta{latitude} and \meta{longitude} or by a named position using \meta{name}.
+\end{docMrcKeys}
+
+
+\begin{docMrcKeys}[
+ doc keypath = anim,
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = final-position,
+ doc parameter = {=\meta{latitude}/\meta{longitude}},
+ doc description = initially |51.4779/0|
+ },
+ {
+ doc name = named-final-position,
+ doc parameter = {=\meta{name}},
+ }
+ }
+ Final position of the animation given by
+ \meta{latitude} and \meta{longitude} or by a named position using \meta{name}.
+\end{docMrcKeys}
+
+
+\begin{docMrcKeys}[
+ doc keypath = anim,
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = position,
+ doc parameter = {=\meta{latitude}/\meta{longitude}},
+ doc description = initially |51.4779/0|
+ },
+ {
+ doc name = named-position,
+ doc parameter = {=\meta{name}},
+ }
+ }
+ Fixed position of the animation given by
+ \meta{latitude} and \meta{longitude} or by a named position using \meta{name}.
+ This sets \refKey{mermap/anim/start-position} and
+ \refKey{mermap/anim/final-position} to the identical value.
+\end{docMrcKeys}
+
+
+
+\begin{docMrcKeys}[
+ doc keypath = anim,
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = frames,
+ doc parameter = {=\meta{frame number}},
+ doc description = initially |20|
+ },
+ }
+ Integer \meta{frame number} for the animation, at least |2|. For maps made with tiles,
+ even a large \meta{frame number} typically results in limited downloads,
+ because the tiles a reused as far as possible. For WMS maps, every frame
+ could give another download!
+\end{docMrcKeys}
+
+
+\begin{docMrcKeys}[
+ doc keypath = anim,
+ doc new = 2024-07-31,
+ doc parameter = {\colOpt{=true\textbar false}},
+ doc description = {default |true|, initially |false|},
+ ]{
+ {
+ doc name = drop-first-frame,
+ },
+ {
+ doc name = drop-last-frame,
+ },
+ }
+ If several \refEnv{mrcAnimation} environments are used consecutively,
+ the end frame of one animation is identical to the start frame of the
+ next animation. These options allow to remove one superfluous connecting frame.
+\end{docMrcKeys}
+
+
+\begin{docMrcKeys}[
+ doc keypath = anim,
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = drop-no-frame,
+ doc description = {no value, initially set},
+ },
+ }
+ Reset to drop no frames.
+\end{docMrcKeys}
+
+
+\begin{docMrcKeys}[
+ doc keypath = anim,
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = scale-denominators,
+ doc parameter = {=\marg{time and scale sequence}},
+ doc description = {initially |0/25000-1/25000|},
+ },
+ }
+ The \meta{time and scale sequence} has to obey the following pattern:
+ \par
+ \meta{time$_1$}|/|\meta{scale$_1$} |-|
+ \meta{time$_2$}|/|\meta{scale$_2$} |-| $\ldots$ |-|
+ \meta{time$_n$}|/|\meta{scale$_n$}
+ \par
+ The time values have to be taken from the interval $[0,1]$ and have to be
+ strictly monotonically increasing, i.e.
+ \par
+ $0\le$ \meta{time$_1$} $<$
+ \meta{time$_2$} $<$ $\ldots$ $<$
+ \meta{time$_n$} $\le 1$
+ \par
+ If not given, time and scale for time $0$ and $1$ are automatically added
+ as constant continuation.\par
+ Depending on the current time value \refCom{mrcAnimTime}, the current
+ scale denominator \refCom{mrcAnimScaleDenom} is interpolated from this
+ sequence using a logarithmic approach.
+\end{docMrcKeys}
+
+
+\begin{docMrcKeys}[
+ doc keypath = anim,
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = common-scale-denominator,
+ doc parameter = {=\marg{scale denominator}},
+ doc description = {initially |25000|},
+ },
+ }
+ This is a shortcut for\par
+ \refKey{mermap/anim/scale-denominators} |=|\\
+ \hspace*{5mm} |0/|\marg{scale denominator} |- 1/|\marg{scale denominator}
+ \par
+ Thereby, a fixed \marg{scale denominator} is set for the animation.
+\end{docMrcKeys}
+
+
+\clearpage
+\begin{docMrcKeys}[
+ doc keypath = anim,
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = timewarp,
+ doc parameter = {=\meta{macro}},
+ doc description = initially \texttt{\textbackslash mrcTimewarpIdentity}
+ },
+ }
+ \meta{macro} has to be a fully expandable \LaTeX\ macro with one parameter.
+ The expansion has to be a valid |expl3| \meta{floating point expression}
+ denoting a strictly monotonically increasing function mapping from
+ the interval \mbox{$[0,1]$} into \mbox{$[0,1]$} again.
+ This timewarp may slow down and accelerate time over the span from $0$ to $1$.
+\end{docMrcKeys}
+
+
+\begin{docCommands}[
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = mrcTimewarpIdentity,
+ doc parameter = {=\marg{time}},
+ },
+ }
+ Identity function from \mbox{$[0,1]$} into \mbox{$[0,1]$}.
+\end{docCommands}
+
+
+\begin{docMrcKeys}[
+ doc keypath = anim,
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = timewarp-identity,
+ doc description = {no value, initially set}
+ },
+ }
+ Sets \refKey{mermap/anim/timewarp} to \refCom{mrcTimewarpIdentity}.
+ This means that time flows constantly.
+\end{docMrcKeys}
+
+
+\begin{docCommands}[
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = mrcTimewarpSlowStart,
+ doc parameter = {=\marg{exponent}\marg{time}},
+ doc description = {default |2|}
+ },
+ }
+ Function term $t^{\text{\meta{exponent}}}$
+\end{docCommands}
+
+
+\begin{docMrcKeys}[
+ doc keypath = anim,
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = timewarp-slow-start,
+ doc parameter = \colOpt{=\meta{exponent}},
+ doc description = {default |2|}
+ },
+ }
+ Sets \refKey{mermap/anim/timewarp} to \refCom{mrcTimewarpSlowStart}\marg{exponent}.
+ \par
+ If $\text{\meta{exponent}}>1$ is used, time flows slower at the begin of the
+ interval \mbox{$[0,1]$}. This can be used, if a low scale denominator is
+ present at begin of a movement and is becoming larger later. Here, for smoothness,
+ you may want this to have slower speed near ground and larger speed later.
+\end{docMrcKeys}
+
+
+\begin{docCommands}[
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = mrcTimewarpSlowFinal,
+ doc parameter = {=\marg{exponent}\marg{time}},
+ doc description = {default |2|}
+ },
+ }
+ Function term $1 - (1-t)^{\text{\meta{exponent}}}$
+\end{docCommands}
+
+
+\begin{docMrcKeys}[
+ doc keypath = anim,
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = timewarp-slow-final,
+ doc parameter = \colOpt{=\meta{exponent}},
+ doc description = {default |2|}
+ },
+ }
+ Sets \refKey{mermap/anim/timewarp} to \refCom{mrcTimewarpSlowFinal}\marg{exponent}.
+ \par
+ If $\text{\meta{exponent}}>1$ is used, time flows slower at the end of the
+ interval \mbox{$[0,1]$}. This can be used, if a large scale denominator is
+ present at begin of a movement and is becoming lower later. Here, for smoothness,
+ you may want this to have slower speed near ground at the end.
+\end{docMrcKeys}
+
+
+\begin{docCommands}[
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = mrcTimewarpSlowStartFinal,
+ doc parameter = {=\marg{exponent}\marg{time}},
+ doc description = {default |2|}
+ },
+ }
+ Combination of \refCom{mrcTimewarpSlowStart} and \refCom{mrcTimewarpSlowFinal}
+ using case discrimination for the first and the second half of the intervall.
+\end{docCommands}
+
+
+\begin{docMrcKeys}[
+ doc keypath = anim,
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = timewarp-slow-start-final,
+ doc parameter = \colOpt{=\meta{exponent}},
+ doc description = {default |2|}
+ },
+ }
+ Sets \refKey{mermap/anim/timewarp} to \refCom{mrcTimewarpSlowStartFinal}\marg{exponent}.
+ \par
+ If $\text{\meta{exponent}}>1$ is used, time flows slower at the begin and at the end of the
+ interval \mbox{$[0,1]$}. This can be used, if a low scale denominator is
+ present at begin of a movement, becomes larger in the middle, and finally
+ is becoming lower later. Here, for smoothness,
+ you may want this to have slower speed near ground at the begin and the end.
+\end{docMrcKeys}
+
+
+\clearpage
+%-------------------------------------------------------------------------------
+\subsection{Macros inside the Animation Environment}\label{ref:animMacros}
+
+\begin{docCommands}[
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = mrcAnimFrame,
+ },
+ {
+ doc name = l_mermap_anim_frame_int,
+ },
+ }
+ The current frame number ranging from $1$ to \refKey{mermap/anim/frames}.
+\end{docCommands}
+
+
+\begin{docCommands}[
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = mrcAnimTime,
+ },
+ {
+ doc name = l_mermap_anim_time_fp,
+ },
+ }
+ The current time ranging from $0$ to $1$.
+\end{docCommands}
+
+
+\begin{docCommands}[
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = mrcAnimScaleDenom,
+ },
+ {
+ doc name = l_mermap_anim_scaledenom_fp,
+ },
+ }
+ The current scale denominator according to \refKey{mermap/anim/scale-denominators}.
+\end{docCommands}
+
+
+\begin{docCommands}[
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = mrcAnimLatitude,
+ },
+ {
+ doc name = l_mermap_anim_lat_fp,
+ },
+ }
+ The latitude of the current position.
+\end{docCommands}
+
+
+\begin{docCommands}[
+ doc new = 2024-07-31,
+ ]{
+ {
+ doc name = mrcAnimLongitude,
+ },
+ {
+ doc name = l_mermap_anim_lon_fp,
+ },
+ }
+ The longitude of the current position.
+\end{docCommands}
+
+
+\begin{docCommands}[
+ doc new = 2024-08-05,
+ ]{
+ {
+ doc name = mrcAnimAngle,
+ },
+ {
+ doc name = l_mermap_anim_angle_fp,
+ },
+ }
+ Current angle between the tangent vector to the orthodrome and
+ the current parallel circle.
+\end{docCommands}
+
+
+
+
+\docValue{AnimNP}\tcbdocmarginnote{\tcbdocnew{2024-07-31}}:
+ The current named position.
+
+
+
+
diff --git a/macros/latex/contrib/mercatormap/mercatormap.doc.definition.tex b/macros/latex/contrib/mercatormap/mercatormap.doc.definition.tex
index ad285fb7c9..01667cd1d3 100644
--- a/macros/latex/contrib/mercatormap/mercatormap.doc.definition.tex
+++ b/macros/latex/contrib/mercatormap/mercatormap.doc.definition.tex
@@ -23,14 +23,14 @@
\subsection{Option Setting}
\begin{docCommand}{mermapset}{\marg{options}}
Sets \meta{options} for all following maps inside the current \TeX\ group.
- All options share the common prefix |/mermap/|, e.g. for setting
- \refKey{/mermap/vicinity} use
+ All options share the common prefix |mermap/|, e.g. for setting
+ \refKey{mermap/vicinity} use
\begin{dispListing}
\mermapset{vicinity=3cm}
\end{dispListing}
Also see \refCom{mrcdefinemap}, \refCom{mermapsetsupply},
and \refCom{mermapsetmarker}.\par
- Note that the options by \refCom{mermapset} are |expl3| \cite{package:expl3}
+ Note that the options by \refCom{mermapset} are |expl3| \cite{l3kernel:interfaces}
keys while \tikzname\ \cite{package:tikz} uses its own key management.
\end{docCommand}
@@ -45,7 +45,7 @@ See \Fullref{sec:automated_map} for script aided map definitions.
\begin{docCommand}{mrcdefinemap}{\marg{options}}
Establishes a map inside a |tikzpicture| environment following
and applying the given \meta{options}.
- All options share the common prefix |/mermap/mapdef/|.
+ All options share the common prefix |mermap/mapdef/|.
After \refCom{mrcdefinemap} is applied, map drawing and map coordinates
can be used.
\begin{itemize}
@@ -60,25 +60,25 @@ See \Fullref{sec:automated_map} for script aided map definitions.
\begin{docMrcKey}[mapdef]{north}{=\meta{map north latitude}}{no default, initially 50}
Northern latitude degree of the visible map, possibly negative for the southern hemisphere,
- lower than $90$ but always larger than \refKey{/mermap/mapdef/south}.
+ lower than $90$ but always larger than \refKey{mermap/mapdef/south}.
It is accessible as \docAuxCommand{mrcmapnorth} (use read-only).
\end{docMrcKey}
\begin{docMrcKey}[mapdef]{south}{=\meta{map south latitude}}{no default, initially 48}
Southern latitude degree of the visible map, possibly negative for the southern hemisphere,
- larger than $-90$ but always lower than \refKey{/mermap/mapdef/north}.
+ larger than $-90$ but always lower than \refKey{mermap/mapdef/north}.
It is accessible as \docAuxCommand{mrcmapsouth} (use read-only).
\end{docMrcKey}
\begin{docMrcKey}[mapdef]{west}{=\meta{map west longitude}}{no default, initially 11}
Western longitude degree of the visible map, possibly negative for the western hemisphere,
- possibly shifted periodically, but always lower than \refKey{/mermap/mapdef/east}.
+ possibly shifted periodically, but always lower than \refKey{mermap/mapdef/east}.
It is accessible as \docAuxCommand{mrcmapwest} (use read-only).
\end{docMrcKey}
\begin{docMrcKey}[mapdef]{east}{=\meta{map east longitude}}{no default, initially 13}
Eastern longitude degree of the visible map, possibly negative for the western hemisphere,
- possibly shifted periodically, but always larger than \refKey{/mermap/mapdef/west}.
+ possibly shifted periodically, but always larger than \refKey{mermap/mapdef/west}.
It is accessible as \docAuxCommand{mrcmapeast} (use read-only).
\end{docMrcKey}
@@ -149,7 +149,7 @@ information.
\begin{docMrcKey}[mapdef]{attribution print}{=\meta{attribution text}}{no default, initially empty}
Attribution text for the map source.
- In contrast to \refKey{/mermap/mapdef/attribution} it is intended for media
+ In contrast to \refKey{mermap/mapdef/attribution} it is intended for media
that does not support hyperlinks like printed posters, books, etc.
It is accessible as \docAuxCommand{mrcmapattributionprint} (use read-only).
\end{docMrcKey}
@@ -166,7 +166,7 @@ information.
\end{docMrcKey}
\begin{docMrcKey}[mapdef]{tile size}{=\meta{length}}{no default, initially |32.512mm|}
- Typically set computationally. It is identical to \refKey{/mermap/tile size}
+ Typically set computationally. It is identical to \refKey{mermap/tile size}
which is the recommended user option for manual setup.
\end{docMrcKey}
@@ -204,7 +204,7 @@ The border of the visible map is denoted by a \tikzname\ node \docNode{mrcmap}.
\medskip
The |mrc cs| coordinate system defines a map point by
-\refKey{/mermap/cs/latitude} and \refKey{/mermap/cs/longitude}
+\refKey{mermap/cs/latitude} and \refKey{mermap/cs/longitude}
\begin{docMrcKey}[cs]{latitude}{=\meta{latitude}}{no default}
Sets the \meta{latitude} of a map point.
@@ -220,7 +220,7 @@ The |mrc cs| coordinate system defines a map point by
\medskip
A map point can also be defined by shorter variants
-\refKey{/mermap/cs/lat} and \refKey{/mermap/cs/lon}
+\refKey{mermap/cs/lat} and \refKey{mermap/cs/lon}
\begin{docMrcKey}[cs]{lat}{=\meta{latitude}}{no default}
Sets the \meta{latitude} of a map point.
@@ -298,9 +298,10 @@ A map point can be defined even quicker by
\end{docCommand}
-\begin{docCommand}{mrcNPlat}{\marg{name}}
+\begin{docCommand}[doc updated=2024-08-02]{mrcNPlat}{\marg{name}}
Inserts the \emph{latitude} of a \emph{named position} with given \meta{name}.
\refCom{mrcNPlat} is expandable and may be used in floating point expressions.
+ If the \meta{name} does not exist, the macro expands to |0|.
\begin{dispExample}
\mrcNPdef{nuremberg}{49.45522}{11.07631}
Latitude: \mrcNPlat{nuremberg}\\
@@ -309,9 +310,16 @@ A map point can be defined even quicker by
\end{docCommand}
-\begin{docCommand}{mrcNPlon}{\marg{name}}
+\begin{docCommand}[doc updated=2024-08-02]{mrcNPlon}{\marg{name}}
Inserts the \emph{longitude} of a \emph{named position} with given \meta{name}.
\refCom{mrcNPlon} is expandable and may be used in floating point expressions.
+ If the \meta{name} does not exist, the macro expands to |0|.
+\end{docCommand}
+
+
+\begin{docCommand}[doc new=2024-08-02]{ifmrcNPexists}{\marg{name}\marg{true}\marg{false}}
+ If the given \emph{named position} with given \meta{name} exists, the \meta{true} code is executed, otherwise
+ the \meta{false} code.
\end{docCommand}
@@ -356,7 +364,7 @@ Very similar to \refCom{ifmrcinmap} is \refCom{ifmrcinvicinity}.
\begin{docCommand}{ifmrcinvicinity}{\marg{latitude}\marg{longitude}\marg{true}\marg{false}}
If the given \meta{latitude} and \meta{longitude} describes a point
- inside a vicinity of the visible map, i.e. the map \emph{plus} a margin of \refKey{/mermap/vicinity},
+ inside a vicinity of the visible map, i.e. the map \emph{plus} a margin of \refKey{mermap/vicinity},
the \meta{true} code is executed, otherwise
the \meta{false} code.\par
Inside the \meta{true} code a \tikzname\ coordinate \docNode{mrcpos}
diff --git a/macros/latex/contrib/mercatormap/mercatormap.doc.drawing.tex b/macros/latex/contrib/mercatormap/mercatormap.doc.drawing.tex
index dd86fcedbd..0b484da09b 100644
--- a/macros/latex/contrib/mercatormap/mercatormap.doc.drawing.tex
+++ b/macros/latex/contrib/mercatormap/mercatormap.doc.drawing.tex
@@ -11,7 +11,7 @@
\begin{docCommand}{mrcdrawmap}{\oarg{options}}
Inside a |tikzpicture| environment, \refCom{mrcdrawmap} draws a map
prepared by \refCom{mrcdefinemap}, \refCom{mrcapplymap}, or \refCom{mrcmap}.
- All \meta{options} share the common prefix |/mermap/|.
+ All \meta{options} share the common prefix |mermap/|.
This is the principal macro to draw a prepared map respectively
the background of the map. The background consists of downloaded map tiles
or just a color rectangle.
@@ -19,10 +19,10 @@
\begin{docMrcKey}{draw}{=\meta{tile draw}}{no default, initially |auto|}
\begin{itemize}
- \item\docValue{auto}: Draws the map according to \refKey{/mermap/mapdef/resource},
+ \item\docValue{auto}: Draws the map according to \refKey{mermap/mapdef/resource},
i.e. downloaded maps or tiles are used, if available.
\item\docValue{path}: Draws the map according to the style given by
- \refKey{/mermap/map path}. Existing map tiles or merged maps are ignored
+ \refKey{mermap/map path}. Existing map tiles or merged maps are ignored
\item\docValue{tiles}: Draws the map with downloaded map tiles, if
available.
\item\docValue{mergedmap}: Draws the map with a merged picture, if
@@ -75,24 +75,24 @@
Typically, the pixel size of a map tile is fixed and a map tile is a
pixel graphics file. The actual size of such an included picture inside
the document is freely selectable. Note that a very small
-\refKey{/mermap/tile size} results in very small map lettering,
-while a very large \refKey{/mermap/tile size} results results in
+\refKey{mermap/tile size} results in very small map lettering,
+while a very large \refKey{mermap/tile size} results results in
very blurred images.
The general idea of a \emph{flexible} tile size is to specify an aspired
-tile size called \refKey{/mermap/flex tile size} and to give \LaTeX\
-the freedom to select \refKey{/mermap/tile size} in \emph{about the same size}
-as \refKey{/mermap/flex tile size}.
+tile size called \refKey{mermap/flex tile size} and to give \LaTeX\
+the freedom to select \refKey{mermap/tile size} in \emph{about the same size}
+as \refKey{mermap/flex tile size}.
This freedom is used to achieve a \emph{pseudo zoom} called
-\refKey{/mermap/flex zoom} which is a nearly arbitrary rational number instead
-of \refKey{/mermap/supply/zoom} which is a natural number.
+\refKey{mermap/flex zoom} which is a nearly arbitrary rational number instead
+of \refKey{mermap/supply/zoom} which is a natural number.
This \emph{pseudo zoom} is applied by several options which share \emph{flex}
in their names, e.g.
-\refKey{/mermap/flex scale}, \refKey{/mermap/named flex scale},
-\refKey{/mermap/supply/flex reference scale},
-\refKey{/mermap/supply/flex area scale},
-\refKey{/mermap/supply/flex area fit}.
+\refKey{mermap/flex scale}, \refKey{mermap/named flex scale},
+\refKey{mermap/supply/flex reference scale},
+\refKey{mermap/supply/flex area scale},
+\refKey{mermap/supply/flex area fit}.
@@ -101,30 +101,30 @@ in their names, e.g.
For standard tiles with 256 times 256 pixels a tile size of
\SI{32.512}{mm} = \SI{1.28}{in} results in an approximate
\SI{200}{dpi} output for the document.
- For a |beamer| document, consider to use a \refKey{/mermap/tile size} of
+ For a |beamer| document, consider to use a \refKey{mermap/tile size} of
\SI{21.333333}{mm} to get approximate 1:1 pixel input and output (depending on |beamer| settings
- and used hardware). Also see \refKey{/mermap/mapdef/tile size}.
+ and used hardware). Also see \refKey{mermap/mapdef/tile size}.
\end{docMrcKey}
\begin{docMrcKey}{flex tile size}{=\meta{length}}{no default, initially |32.512mm|}
Aspired width and height of a tile picture are set to \meta{length}.
- This value is used while applying \refKey{/mermap/flex zoom}.
+ This value is used while applying \refKey{mermap/flex zoom}.
\end{docMrcKey}
\begin{docMrcKey}{flex zoom}{=\meta{pseudo zoom}}{style, no default}
- This style sets \refKey{/mermap/supply/zoom} and \refKey{/mermap/tile size} in combination.
+ This style sets \refKey{mermap/supply/zoom} and \refKey{mermap/tile size} in combination.
\begin{itemize}
\item
If \meta{pseudo zoom} is a natural number,
- \refKey{/mermap/supply/zoom} is set to \meta{pseudo zoom} and
- \refKey{/mermap/tile size} is set to \refKey{/mermap/flex tile size}.
- \item Otherwise, \refKey{/mermap/supply/zoom} is set to the natural number
- closest to \meta{pseudo zoom} and \refKey{/mermap/tile size} is such
+ \refKey{mermap/supply/zoom} is set to \meta{pseudo zoom} and
+ \refKey{mermap/tile size} is set to \refKey{mermap/flex tile size}.
+ \item Otherwise, \refKey{mermap/supply/zoom} is set to the natural number
+ closest to \meta{pseudo zoom} and \refKey{mermap/tile size} is such
enlarged or reduced that the \meta{pseudo zoom} value is simulated,
i.e. the \emph{impression} of a rational zoom factor is given.
\end{itemize}
- Note that \refKey{/mermap/flex zoom} has to be used \emph{before}
+ Note that \refKey{mermap/flex zoom} has to be used \emph{before}
\refCom{mrcsupplymap} or \refCom{mrcmap}, because the zoom setup is
adapted.
\end{docMrcKey}
@@ -133,12 +133,12 @@ in their names, e.g.
\clearpage
\begin{docMrcKey}{flex scale}{=\meta{scale denominator}:\meta{latitude}}{style, no default}
For different latitude scopes, an identical zoom factor produces maps of
- different scale. With \refKey{/mermap/flex scale}, a \refKey{/mermap/flex zoom}
+ different scale. With \refKey{mermap/flex scale}, a \refKey{mermap/flex zoom}
is computed to achieve the given \meta{scale denominator} at a given \meta{latitude}.
Note that this only applies to the center of a map. If the produced
map is not centered at \meta{latitude}, the produced scale may
differ from the intended one.
- Also see \refKey{/mermap/supply/flex reference scale}.
+ Also see \refKey{mermap/supply/flex reference scale}.
\tikzsetnextfilename{drawing_flex_scale}%
\begin{dispExample}
@@ -162,7 +162,7 @@ in their names, e.g.
\begin{docMrcKey}{named flex scale}{=\meta{scale denominator}:\meta{name}}{style, no default}
- Identical to \refKey{/mermap/flex scale}, but used the \emph{named position}
+ Identical to \refKey{mermap/flex scale}, but used the \emph{named position}
\meta{name} to provide a \emph{latitude}, see \Fullref{sec:names_positions}.
\begin{dispListing}
\mrcNPdef{munich}{48.137222}{11.575556}
@@ -179,12 +179,12 @@ in their names, e.g.
\begin{docCommand}{mrcdrawnetwork}{\oarg{options}}
Draws a geodetic network with meridians and parallels.
- All \meta{options} share the common prefix |/mermap/|.
+ All \meta{options} share the common prefix |mermap/|.
The displayed lines are selected automatically according to some tuning
parameters.
- The map is sliced in \emph{about} maximal \refKey{/mermap/network pieces} in each
+ The map is sliced in \emph{about} maximal \refKey{mermap/network pieces} in each
direction. Meridians and parallels share a minimal distance of
- \emph{about} \refKey{/mermap/network distance}. The algorithm is
+ \emph{about} \refKey{mermap/network distance}. The algorithm is
allowed to violate these conditions \emph{somewhat}.
Note that oversized maps are not supported, i.e. maps which are wider
@@ -213,7 +213,7 @@ in their names, e.g.
\begin{docMrcKey}{network pieces}{=\meta{number}}{no default, initially |8|}
The map is sliced in \emph{about} maximal \meta{number} pieces in each
direction. \meta{number} may be exceeded \emph{somewhat}.
- It is underrun to comply with \refKey{/mermap/network distance}.
+ It is underrun to comply with \refKey{mermap/network distance}.
\end{docMrcKey}
@@ -221,7 +221,7 @@ in their names, e.g.
Meridians and parallels share a minimal distance of
\emph{about} \meta{mesh width}.
\meta{mesh width} may be underrun \emph{somewhat}.
- It is exceeded to comply with \refKey{/mermap/network pieces}.
+ It is exceeded to comply with \refKey{mermap/network pieces}.
For parallels on small scale maps, it refers to an averaged mesh width.
\end{docMrcKey}
diff --git a/macros/latex/contrib/mercatormap/mercatormap.doc.examples.tex b/macros/latex/contrib/mercatormap/mercatormap.doc.examples.tex
index 7eb5b5f86e..11c3068f31 100644
--- a/macros/latex/contrib/mercatormap/mercatormap.doc.examples.tex
+++ b/macros/latex/contrib/mercatormap/mercatormap.doc.examples.tex
@@ -14,13 +14,13 @@ Note to do all preparations documented in \Fullref{sec:python}.
%-------------------------------------------------------------------------------
\subsection{Reference Position}
-With \refKey{/mermap/supply/type}|=|\docValue{reference} a map with a
+With \refKey{mermap/supply/type}|=|\docValue{reference} a map with a
\emph{reference position} is constructed. Here, Munich is taken as
reference position and center of the map. Since the position is used
more than once, it is stored with \refCom{mrcNPdef} for further reference.
-With \refKey{/mermap/supply/flex reference scale} the scale
+With \refKey{mermap/supply/flex reference scale} the scale
is set to 1:6\,000\,000. For the background map tiles, a
-\refKey{/mermap/supply/source} is selected for download.
+\refKey{mermap/supply/source} is selected for download.
This setup is done by \refCom{mrcmap} while \refCom{mrcdrawmap} draws
the downloaded map tiles.
@@ -84,10 +84,10 @@ the downloaded map tiles.
%-------------------------------------------------------------------------------
\subsection{Fitting Area}
-With \refKey{/mermap/supply/type}|=|\docValue{areafit} a map is constructed
+With \refKey{mermap/supply/type}|=|\docValue{areafit} a map is constructed
where a given area is fitted in. The following example lists some
-US-American cities and constructs an \refKey{/mermap/supply/area} which
-contains all of them. With \refKey{/mermap/supply/flex area fit}|=15mm| a
+US-American cities and constructs an \refKey{mermap/supply/area} which
+contains all of them. With \refKey{mermap/supply/flex area fit}|=15mm| a
border region is added.
@@ -102,7 +102,7 @@ border region is added.
\mrcNPdef{denver}{39.7372435}{-104.997378}
\mrcmap[type=areafit,
area={honolulu,fairbanks,sandiego,miami,boston,denver},
- source=stamen terrain,
+ source=topplusopen web,
tex width=15cm, tex height=11cm,
flex area fit=15mm,
]{examples_fitting_area}
@@ -122,12 +122,12 @@ border region is added.
%-------------------------------------------------------------------------------
\subsection{Fixed Boundaries}
-With \refKey{/mermap/supply/type}|=|\docValue{boundaries} a map is constructed
+With \refKey{mermap/supply/type}|=|\docValue{boundaries} a map is constructed
with fixed boundaries. In contrast to the other map types, the document
map size cannot be given directly but derives from the map setup. This bears
the risk of too large maps. The following example is a map with exact
boundaries \mrcformlat{-45} to \mrcformlat{-10}
-and \mrcformlon{110} to \mrcformlon{155}. A decent \refKey{/mermap/supply/zoom}
+and \mrcformlon{110} to \mrcformlon{155}. A decent \refKey{mermap/supply/zoom}
is 5 (every zoom step doubles the map size in each direction).
\tikzsetnextfilename{examples_boundaries}%
@@ -160,7 +160,7 @@ is 5 (every zoom step doubles the map size in each direction).
\subsection{Map Without Map Tiles}
There is no coercion to use downloaded map tiles, if they are not needed or
-wanted. With \refKey{/mermap/supply/target}|=none| no map tiles are downloaded.
+wanted. With \refKey{mermap/supply/target}|=none| no map tiles are downloaded.
The following example draws a rough polygon shape of Germany using
\refEnv{mrcroute*}.
@@ -299,7 +299,7 @@ The following example draws a rough polygon shape of Germany using
%-------------------------------------------------------------------------------
\subsection{Alignment of the Reference Position}
-With \refKey{/mermap/supply/align} the reference position can be aligned
+With \refKey{mermap/supply/align} the reference position can be aligned
at different map positions.
\tikzsetnextfilename{examples_alignment}%
@@ -332,13 +332,13 @@ at different map positions.
\subsection{Flexible Zoom}
Map tiles are only provided at fixed zoom levels with natural numbers,
-but the package allows a \refKey{/mermap/flex zoom} with rational numbers.
+but the package allows a \refKey{mermap/flex zoom} with rational numbers.
The flexible zoom is realized by combining a suitable fixed zoom with
an adapted document tile scaling, see \Fullref{sec:flexible_tile_size}.
The following example shows a more or less smooth zoom increase.
The same technique is used by all options starting with |flex|, e.g.
-\refKey{/mermap/supply/flex reference scale}
-or \refKey{/mermap/supply/flex area fit}
+\refKey{mermap/supply/flex reference scale}
+or \refKey{mermap/supply/flex area fit}
as seen in the examples before.
\tikzexternaldisable
diff --git a/macros/latex/contrib/mercatormap/mercatormap.doc.intro.tex b/macros/latex/contrib/mercatormap/mercatormap.doc.intro.tex
index 294f5e278f..29514fb0f0 100644
--- a/macros/latex/contrib/mercatormap/mercatormap.doc.intro.tex
+++ b/macros/latex/contrib/mercatormap/mercatormap.doc.intro.tex
@@ -18,9 +18,7 @@ and the algorithms of this packages, you are invited to read
\enquote{\fullcite{Sturm:2020}}.
With very few exceptions, the package is programmed with the
-|expl3| \cite{package:expl3} programming interface for \LaTeX3
-and loads the packages
-|xparse| \cite{package:xparse} and |siunitx| \cite{package:siunitx}.
+|expl3| programming interface for \LaTeX3 \cite{l3kernel:interfaces}.
\medskip
@@ -103,7 +101,7 @@ This should give a version number starting with 3. Otherwise, try
\begin{dispListing}
python3 --version
\end{dispListing}
-If this is successful, \refKey{/mermap/python} has to be adapted to |python3|
+If this is successful, \refKey{mermap/python} has to be adapted to |python3|
\subsubsection{Python Packages}
The Python packages |Pillow| (\url{https://pypi.org/project/Pillow/})
diff --git a/macros/latex/contrib/mercatormap/mercatormap.doc.limitations.tex b/macros/latex/contrib/mercatormap/mercatormap.doc.limitations.tex
index 0c44427ca5..70a08de273 100644
--- a/macros/latex/contrib/mercatormap/mercatormap.doc.limitations.tex
+++ b/macros/latex/contrib/mercatormap/mercatormap.doc.limitations.tex
@@ -42,8 +42,8 @@
remember that the eastern hemisphere lies \emph{west} and
the western hemisphere lies \emph{east} for your map.
Consider the following example displaying Vladivostok and Anchorage.
- Here, \refKey{/mermap/supply/west} is set to \ang{130}\,E (|130|)
- and \refKey{/mermap/supply/east} is set to \ang{149}\,W (|211| instead of |-149|).
+ Here, \refKey{mermap/supply/west} is set to \ang{130}\,E (|130|)
+ and \refKey{mermap/supply/east} is set to \ang{149}\,W (|211| instead of |-149|).
There is some automatic correction for positions to fit inside the
defined map (see Anchorage in the example below), but
@@ -123,7 +123,7 @@
\tikzsetnextfilename{limit_zoom_scale_1}
\begin{dispExample}
- \mermapsetsupply{source=stamen terrain, type=reference, zoom=12,
+ \mermapsetsupply{source=topplusopen web, type=reference, zoom=12,
tex width=7cm, tex height=5cm}
\begin{tikzpicture}
\mrcmap[latitude=59.91,longitude=10.75]{oslo1} \mrcdrawmap
@@ -133,12 +133,12 @@
\begin{center}\fontsize{7pt}{7pt}\sffamily\mrcmapattribution\end{center}
\end{dispExample}
- Same example again, but with \refKey{/mermap/flex scale} which gives
+ Same example again, but with \refKey{mermap/flex scale} which gives
1:150000 for both cities and comparable maps.
\tikzsetnextfilename{limit_zoom_scale_2}
\begin{dispExample}
- \mermapsetsupply{source=stamen terrain, type=reference}
+ \mermapsetsupply{source=topplusopen web, type=reference}
\begin{tikzpicture}
\mrcmap[latitude=59.91,longitude=10.75, flex reference scale=150000,
tex width=7cm, tex height=5cm]{oslo2} \mrcdrawmap
diff --git a/macros/latex/contrib/mercatormap/mercatormap.doc.maptiles.tex b/macros/latex/contrib/mercatormap/mercatormap.doc.maptiles.tex
index 9786414753..aa306f5962 100644
--- a/macros/latex/contrib/mercatormap/mercatormap.doc.maptiles.tex
+++ b/macros/latex/contrib/mercatormap/mercatormap.doc.maptiles.tex
@@ -73,7 +73,7 @@ accompanying Python script. The technical background is documented in
\cite[Section~5]{Sturm:2020}.
\begin{enumerate}
-\item \refKey{/mermap/supply/type}|=|\docValue{reference}:
+\item \refKey{mermap/supply/type}|=|\docValue{reference}:
\tcbsidebyside[sidebyside adapt=left,blankest,grow to left by=1cm]
{
\tikzexternaldisable
@@ -85,12 +85,12 @@ accompanying Python script. The technical background is documented in
}{
The default method determines the map dimensions from a reference
position and given document map dimensions.
- Also, a zoom level \refKey{/mermap/supply/zoom}
+ Also, a zoom level \refKey{mermap/supply/zoom}
is required which relates to the Web Mercator map tile covering of the Earth.
A higher zoom level gives a growing number of smaller map tiles.
Alternative to the zoom level, a \meta{scale denominator} can be provided
- by \refKey{/mermap/supply/flex area scale}, \refKey{/mermap/flex scale}
- or \refKey{/mermap/supply/flex reference scale} which determines
+ by \refKey{mermap/supply/flex area scale}, \refKey{mermap/flex scale}
+ or \refKey{mermap/supply/flex reference scale} which determines
the zoom level implicitly.
As default, the reference position is the center of the map, but can be
aligned at the map borders. This method is quite safe to use and could
@@ -100,7 +100,7 @@ accompanying Python script. The technical background is documented in
be more tricky.
}
-\item \refKey{/mermap/supply/type}|=|\docValue{areafit}:
+\item \refKey{mermap/supply/type}|=|\docValue{areafit}:
\tcbsidebyside[sidebyside adapt=left,blankest,grow to left by=1cm]
{
\tikzexternaldisable
@@ -114,7 +114,7 @@ accompanying Python script. The technical background is documented in
The map dimensions are determined by an area with
latitude and longitude boundaries which is fitted into given
document map dimensions. The zoom level is computed accordingly
- for a fixed document tile size or by \refKey{/mermap/supply/flex area fit}.
+ for a fixed document tile size or by \refKey{mermap/supply/flex area fit}.
In any case, the map contains the target area plus some protrusion.
This method is also quite safe to use and may be
the preferred one for many applications like showing a map which contains
@@ -123,7 +123,7 @@ accompanying Python script. The technical background is documented in
the third method can be regarded.
}
-\item \refKey{/mermap/supply/type}|=|\docValue{boundaries}:
+\item \refKey{mermap/supply/type}|=|\docValue{boundaries}:
\tcbsidebyside[sidebyside adapt=left,blankest,grow to left by=1cm]
{
\tikzexternaldisable
@@ -134,11 +134,11 @@ accompanying Python script. The technical background is documented in
}{
The most obvious method determines the map dimensions from
latitude and longitude boundaries. For this, a corresponding zoom level
- \refKey{/mermap/supply/zoom}
+ \refKey{mermap/supply/zoom}
is required which relates to the Web Mercator map tile covering of the Earth.
Alternative to the zoom level, a \meta{scale denominator} can be provided
- by \refKey{/mermap/supply/flex area scale}
- or \refKey{/mermap/supply/flex reference scale} which determines
+ by \refKey{mermap/supply/flex area scale}
+ or \refKey{mermap/supply/flex reference scale} which determines
the zoom level implicitly.
Note that a too high zoom level imposes the risk of downloading an unwanted
high quantity of map tiles resulting in a much too large document map.
@@ -156,9 +156,9 @@ accompanying Python script. The technical background is documented in
\begin{docCommand}{mrcsupplymap}{\oarg{options}\marg{definition}}
The \meta{options} provide parameters for the Python~3 script to supply all
materials for a map.
- All options share the common prefix |/mermap/supply/|.\par
+ All options share the common prefix |mermap/supply/|.\par
The map is identified by\\
- \meta{id}=\refKey{/mermap/definition prefix}+\meta{definition}\\
+ \meta{id}=\refKey{mermap/definition prefix}+\meta{definition}\\
for later drawing.
This identifier \meta{id} has to be unique for the document.
It corresponds to generated files \meta{id}|.def|, \meta{id}|.md5|, and
@@ -172,8 +172,8 @@ accompanying Python script. The technical background is documented in
\begin{docCommand}{mermapsetsupply}{\marg{options}}
Sets \meta{options} for all following maps inside the current \TeX\ group.
- All options share the common prefix |/mermap/supply/|, e.g. for setting
- \refKey{/mermap/supply/type} use
+ All options share the common prefix |mermap/supply/|, e.g. for setting
+ \refKey{mermap/supply/type} use
\begin{dispListing}
\mermapsetsupply{type=reference}
\end{dispListing}
@@ -184,7 +184,7 @@ accompanying Python script. The technical background is documented in
\begin{docMrcKey}{definition prefix}{=\meta{definition prefix}}{no default, initially |maps/|}
Prefix for map identifiers and generated map files, see \refCom{mrcsupplymap}
and \refCom{mrcapplymap}.
- Note that \refKey{/mermap/definition prefix} is not to be used inside
+ Note that \refKey{mermap/definition prefix} is not to be used inside
the option list for \refCom{mrcsupplymap}.
\end{docMrcKey}
@@ -193,30 +193,30 @@ accompanying Python script. The technical background is documented in
\begin{itemize}
\item\docValue{reference}: \flqq map with reference position\frqq\\
The map is constructed from a given reference position
- \refKey{/mermap/supply/latitude},\\
- \refKey{/mermap/supply/longitude},\\
- a zoom level \refKey{/mermap/supply/zoom},\\
+ \refKey{mermap/supply/latitude},\\
+ \refKey{mermap/supply/longitude},\\
+ a zoom level \refKey{mermap/supply/zoom},\\
map dimensions\\
- \refKey{/mermap/supply/width},\\
- \refKey{/mermap/supply/height},\\
- and alignment \refKey{/mermap/supply/align}.
+ \refKey{mermap/supply/width},\\
+ \refKey{mermap/supply/height},\\
+ and alignment \refKey{mermap/supply/align}.
\item\docValue{areafit}: \flqq map fitting an area\frqq\\
The map is constructed from a given area boundaries\\
- \refKey{/mermap/supply/west},\\
- \refKey{/mermap/supply/east},\\
- \refKey{/mermap/supply/north},\\
- \refKey{/mermap/supply/south},\\
+ \refKey{mermap/supply/west},\\
+ \refKey{mermap/supply/east},\\
+ \refKey{mermap/supply/north},\\
+ \refKey{mermap/supply/south},\\
map dimensions\\
- \refKey{/mermap/supply/width},\\
- \refKey{/mermap/supply/height},\\
- and alignment \refKey{/mermap/supply/align}.
+ \refKey{mermap/supply/width},\\
+ \refKey{mermap/supply/height},\\
+ and alignment \refKey{mermap/supply/align}.
\item\docValue{boundaries}: \flqq map with boundaries\frqq\\
The map is constructed from given boundaries\\
- \refKey{/mermap/supply/west},\\
- \refKey{/mermap/supply/east},\\
- \refKey{/mermap/supply/north},\\
- \refKey{/mermap/supply/south},\\
- and zoom level \refKey{/mermap/supply/zoom}.
+ \refKey{mermap/supply/west},\\
+ \refKey{mermap/supply/east},\\
+ \refKey{mermap/supply/north},\\
+ \refKey{mermap/supply/south},\\
+ and zoom level \refKey{mermap/supply/zoom}.
\end{itemize}
\end{docMrcKey}
@@ -229,25 +229,25 @@ accompanying Python script. The technical background is documented in
\begin{docMrcKey}[supply]{north}{=\meta{setup north latitude}}{no default, initially |50|}
Northern latitude degree, possibly negative for the southern hemisphere,
- lower than $90$ but always larger than \refKey{/mermap/supply/south}.
+ lower than $90$ but always larger than \refKey{mermap/supply/south}.
Used for map types \docValue{boundaries} and \docValue{areafit}.
\end{docMrcKey}
\begin{docMrcKey}[supply]{south}{=\meta{setup south latitude}}{no default, initially |48|}
Southern latitude degree, possibly negative for the southern hemisphere,
- larger than $-90$ but always lower than \refKey{/mermap/supply/north}.
+ larger than $-90$ but always lower than \refKey{mermap/supply/north}.
Used for map types \docValue{boundaries} and \docValue{areafit}.
\end{docMrcKey}
\begin{docMrcKey}[supply]{west}{=\meta{setup west longitude}}{no default, initially |11|}
Western longitude degree, possibly negative for the western hemisphere,
- possibly shifted periodically, but always lower than \refKey{/mermap/supply/east}.
+ possibly shifted periodically, but always lower than \refKey{mermap/supply/east}.
Used for map types \docValue{boundaries} and \docValue{areafit}.
\end{docMrcKey}
\begin{docMrcKey}[supply]{east}{=\meta{setup east longitude}}{no default, initially |13|}
Eastern longitude degree, possibly negative for the western hemisphere,
- possibly shifted periodically, but always larger than \refKey{/mermap/supply/west}.
+ possibly shifted periodically, but always larger than \refKey{mermap/supply/west}.
Used for map types \docValue{boundaries} and \docValue{areafit}.
\end{docMrcKey}
@@ -262,19 +262,19 @@ accompanying Python script. The technical background is documented in
{ doc name = add area },
}
Sets
- \refKey{/mermap/supply/north}, \refKey{/mermap/supply/south},
- \refKey{/mermap/supply/west}, \refKey{/mermap/supply/east}
+ \refKey{mermap/supply/north}, \refKey{mermap/supply/south},
+ \refKey{mermap/supply/west}, \refKey{mermap/supply/east}
according to the given \meta{comma separated list of named positions}, i.e.
the described area contains all these positions.\\
- \refKey{/mermap/supply/area} resets the current area which requires
+ \refKey{mermap/supply/area} resets the current area which requires
at least two points inside the list.\\
- \refKey{/mermap/supply/add area} does not reset the current area,
+ \refKey{mermap/supply/add area} does not reset the current area,
i.e. the positions are added to the
current area which possibly grows to fit all positions.\\
Also note to take special care, if the international dateline is on your
resulting map, see \Fullref{sec:dateline}.
Used for map types \docValue{boundaries} and \docValue{areafit}
- or in combination with \refKey{/mermap/supply/area to reference} also
+ or in combination with \refKey{mermap/supply/area to reference} also
for for map type \docValue{reference}.
\end{docMrcKeys}
@@ -290,19 +290,19 @@ accompanying Python script. The technical background is documented in
{ doc name = add area from marker input },
}
Sets
- \refKey{/mermap/supply/north}, \refKey{/mermap/supply/south},
- \refKey{/mermap/supply/west}, \refKey{/mermap/supply/east}
+ \refKey{mermap/supply/north}, \refKey{mermap/supply/south},
+ \refKey{mermap/supply/west}, \refKey{mermap/supply/east}
according to the given \refCom{mrcmarker} positions contained in a
file with the given \meta{file name}.\\
- \refKey{/mermap/supply/area from marker input} resets the current area which requires
+ \refKey{mermap/supply/area from marker input} resets the current area which requires
at least two marker positions inside the file.\\
- \refKey{/mermap/supply/add area from marker input} does not reset the current area,
+ \refKey{mermap/supply/add area from marker input} does not reset the current area,
i.e. the positions are added to the
current area which possibly grows to fit all positions.\\
Also note to take special care, if the international dateline is on your
resulting map, see \Fullref{sec:dateline}.
Used for map types \docValue{boundaries} and \docValue{areafit}
- or in combination with \refKey{/mermap/supply/area to reference} also
+ or in combination with \refKey{mermap/supply/area to reference} also
for for map type \docValue{reference}.
\end{docMrcKeys}
@@ -310,10 +310,10 @@ accompanying Python script. The technical background is documented in
\begin{docMrcKey}[supply]{area to reference}{}{no value, initially unset}
The map settings
- \refKey{/mermap/supply/north}, \refKey{/mermap/supply/south},
- \refKey{/mermap/supply/west}, \refKey{/mermap/supply/east}
+ \refKey{mermap/supply/north}, \refKey{mermap/supply/south},
+ \refKey{mermap/supply/west}, \refKey{mermap/supply/east}
are taken to compute the map center. This center position is saved
- to \refKey{/mermap/supply/latitude} and \refKey{/mermap/supply/longitude}.
+ to \refKey{mermap/supply/latitude} and \refKey{mermap/supply/longitude}.
Used for map type \docValue{reference}.
\end{docMrcKey}
@@ -352,8 +352,8 @@ accompanying Python script. The technical background is documented in
\begin{docMrcKey}[supply]{tex width}{=\meta{width}}{style, no default}
Width of the map as \TeX\ dimension.
- This is a style to compute \refKey{/mermap/supply/width} according to
- the current \refKey{/mermap/tile size}.
+ This is a style to compute \refKey{mermap/supply/width} according to
+ the current \refKey{mermap/tile size}.
\end{docMrcKey}
\begin{docMrcKey}[supply]{height}{=\meta{setup height in tiles}}{no default, initially |4|}
@@ -363,8 +363,8 @@ accompanying Python script. The technical background is documented in
\begin{docMrcKey}[supply]{tex height}{=\meta{width}}{style, no default}
Height of the map as \TeX\ dimension.
- This is a style to compute \refKey{/mermap/supply/height} according to
- the current \refKey{/mermap/tile size}.
+ This is a style to compute \refKey{mermap/supply/height} according to
+ the current \refKey{mermap/tile size}.
\end{docMrcKey}
\begin{docMrcKey}[supply]{align}{=\meta{setup alignment}}{no default, initially |center|}
@@ -379,12 +379,12 @@ accompanying Python script. The technical background is documented in
\begin{itemize}
\item\docValue{none}: No tiles are downloaded and no merged map is generated, just map computation.
This is the fastest method and needs no tile supplier.
- \item\docValue{tiles}: Download map tiles from a tile map service (TMS) \refKey{/mermap/supply/url}.
+ \item\docValue{tiles}: Download map tiles from a tile map service (TMS) \refKey{mermap/supply/url}.
Compilation of a document with map tile takes longer than compilation
with a merged map and transparency should not be used with tiles,
but the resulting document is smaller than a document with merged maps.
\item\docValue{mergedmap}: Download map tiles from a tile map service (TMS)
- \refKey{/mermap/supply/url} and merge them into a single map picture.
+ \refKey{mermap/supply/url} and merge them into a single map picture.
This speeds compilation and allows transparency effects, but
the resulting document is possibly larger than a document with map tiles,
because map tiles often are optimized 8-bit image files while the merged
@@ -394,7 +394,7 @@ accompanying Python script. The technical background is documented in
may differ (shift/size) from the more accurate tile representation by
one pixel.
\item\docValue{wmsmap}: Download a single map from a web map service (WMS)
- \refKey{/mermap/supply/url}. Internally, the package treats a WMS like
+ \refKey{mermap/supply/url}. Internally, the package treats a WMS like
a tile map service including all tile calculations. Actually, a single
file is downloaded.
\end{itemize}
@@ -404,7 +404,7 @@ accompanying Python script. The technical background is documented in
\begin{docMrcKey}[][doc new=2020-08-06]{fail on missing resource}{\colOpt{=true\textbar false}}{default |true|, initially |true|}
If set to |true|, compilation stops with an error, if
- \refKey{/mermap/supply/target} and \refKey{/mermap/mapdef/resource} are different.
+ \refKey{mermap/supply/target} and \refKey{mermap/mapdef/resource} are different.
Typically, this means that something went wrong while trying to download
map tiles. Set this option temporarily to |false|,
if the map tile service or the internet
@@ -427,7 +427,7 @@ accompanying Python script. The technical background is documented in
\begin{docMrcKey}[supply]{url with api key}{=\marg{prefix}\marg{name}\marg{postfix}}{no default}
- This is an alternative version of \refKey{/mermap/supply/url}.
+ This is an alternative version of \refKey{mermap/supply/url}.
The URL is constructed from some fixed \meta{prefix} and \meta{postfix} with
an API key in between. The API key is retrieved by \meta{name} from a
repository filled by \refCom{mrcsetapikey}.
@@ -442,7 +442,7 @@ accompanying Python script. The technical background is documented in
Stores an API key \meta{value} for access with the given \meta{name}.
Typically, \meta{value} is a received ID from a map tile service provider
after personal registration. \meta{name} is a placeholder which is used
- inside \refKey{/mermap/supply/url with api key} to mark the insertion
+ inside \refKey{mermap/supply/url with api key} to mark the insertion
point for the API key.
\begin{dispListing}
\mrcsetapikey{myservice}{....K942XY....}
@@ -454,7 +454,7 @@ accompanying Python script. The technical background is documented in
\begin{docMrcKey}[supply]{attribution}{=\meta{attribution text}}{no default, initially empty}
Attribution text for the map source. Typically, it acknowledges the copyright
of the map data provider. It may contain hyperlinks.
- It is used to set up \refKey{/mermap/mapdef/attribution} afterwards
+ It is used to set up \refKey{mermap/mapdef/attribution} afterwards
and it is accessible as \docAuxCommand{mrcmapattribution} (use read-only).\par
For technical reasons, do not use \verb+"+. \docAuxCommand{mrcumlaut}
may be used for masking umlauts, e.g. use \verb+\mrcumlaut{u}+ instead of
@@ -463,9 +463,9 @@ accompanying Python script. The technical background is documented in
\begin{docMrcKey}[supply]{attribution print}{=\meta{attribution text}}{no default, initially empty}
Attribution text for the map source.
- In contrast to \refKey{/mermap/supply/attribution} it is intended for media
+ In contrast to \refKey{mermap/supply/attribution} it is intended for media
that does not support hyperlinks like printed posters, books, etc.
- It is used to set up \refKey{/mermap/mapdef/attribution print} afterwards
+ It is used to set up \refKey{mermap/mapdef/attribution print} afterwards
and it is accessible as \docAuxCommand{mrcmapattributionprint} (use read-only).
\end{docMrcKey}
@@ -477,10 +477,10 @@ accompanying Python script. The technical background is documented in
\clearpage
\begin{docMrcKey}[supply]{flex reference scale}{=\meta{scale denominator}}{no default}
- With the given \meta{scale denominator}, an appropriate \refKey{/mermap/supply/zoom}
- and \refKey{/mermap/tile size} is computed. Note that
+ With the given \meta{scale denominator}, an appropriate \refKey{mermap/supply/zoom}
+ and \refKey{mermap/tile size} is computed. Note that
the \meta{scale denominator}
- always applies to the current \refKey{/mermap/supply/latitude}
+ always applies to the current \refKey{mermap/supply/latitude}
and is used for map type \docValue{boundaries} and \docValue{reference}.
For example, if the reference point is on the north side of the map,
also the \meta{scale denominator}
@@ -489,16 +489,16 @@ accompanying Python script. The technical background is documented in
Note to take special care to the order of the options.
\begin{itemize}
\item The reference point has to be set \emph{before}
- \refKey{/mermap/supply/flex reference scale}, e.g. by
- \refKey{/mermap/supply/latitude}, \refKey{/mermap/supply/position},
- \refKey{/mermap/supply/named position}.
- \item \refKey{/mermap/supply/tex height}, \refKey{/mermap/supply/tex width}
+ \refKey{mermap/supply/flex reference scale}, e.g. by
+ \refKey{mermap/supply/latitude}, \refKey{mermap/supply/position},
+ \refKey{mermap/supply/named position}.
+ \item \refKey{mermap/supply/tex height}, \refKey{mermap/supply/tex width}
(only for map type \docValue{reference})
- have to be set \emph{after} \refKey{/mermap/supply/flex reference scale},
- because the \refKey{/mermap/tile size} is adapted.
+ have to be set \emph{after} \refKey{mermap/supply/flex reference scale},
+ because the \refKey{mermap/tile size} is adapted.
\end{itemize}
- Also see \refKey{/mermap/flex tile size}, \refKey{/mermap/flex zoom},
- and \refKey{/mermap/flex scale}.
+ Also see \refKey{mermap/flex tile size}, \refKey{mermap/flex zoom},
+ and \refKey{mermap/flex scale}.
\tikzsetnextfilename{maptiles_flex_reference_scale}%
\begin{dispExample}
\begin{tikzpicture}
@@ -519,17 +519,17 @@ accompanying Python script. The technical background is documented in
\begin{docMrcKey}[supply]{flex area scale}{=\meta{scale denominator}}{no default}
- This is a shortcut for setting \refKey{/mermap/supply/area to reference}
- and \refKey{/mermap/supply/flex reference scale}=\meta{scale denominator}.
+ This is a shortcut for setting \refKey{mermap/supply/area to reference}
+ and \refKey{mermap/supply/flex reference scale}=\meta{scale denominator}.
Used for map type \docValue{boundaries} and \docValue{reference}.
Note to take special care to the order of the options.
\begin{itemize}
\item The reference point has to be set \emph{before}
- \refKey{/mermap/supply/flex area scale}.
- \item \refKey{/mermap/supply/tex height}, \refKey{/mermap/supply/tex width}
+ \refKey{mermap/supply/flex area scale}.
+ \item \refKey{mermap/supply/tex height}, \refKey{mermap/supply/tex width}
(only for map type \docValue{reference})
- have to be set \emph{after} \refKey{/mermap/supply/flex reference scale}.
+ have to be set \emph{after} \refKey{mermap/supply/flex reference scale}.
\end{itemize}
\end{docMrcKey}
@@ -538,13 +538,13 @@ accompanying Python script. The technical background is documented in
\begin{docMrcKey}[supply]{flex area fit}{\colOpt{=\meta{size}}}{default |0pt|}
This key can be used for map type \docValue{areafit} as \emph{final}
option \emph{after} all other options.
- It applies a fine tuning to \refKey{/mermap/tile size},
- \refKey{/mermap/supply/width}, and \refKey{/mermap/supply/height} such
+ It applies a fine tuning to \refKey{mermap/tile size},
+ \refKey{mermap/supply/width}, and \refKey{mermap/supply/height} such
that the defined area fits exactly into the map region.
If a \meta{size} is specified, width and height are reduced for the
calculation by this \meta{size}, e.g. \meta{size}|=1cm| ensures a
border of |5mm| on each side.
- Also see \refKey{/mermap/flex tile size} and \refKey{/mermap/flex zoom}.
+ Also see \refKey{mermap/flex tile size} and \refKey{mermap/flex zoom}.
\tikzsetnextfilename{maptiles_flex_area_fit}%
\begin{dispExample}
@@ -580,24 +580,24 @@ accompanying Python script. The technical background is documented in
\begin{docMrcKey}[supply]{dpi}{=\meta{dpi value}}{style, no default}
- This style sets \refKey{/mermap/supply/pixel} such that the given \meta{dpi value}
+ This style sets \refKey{mermap/supply/pixel} such that the given \meta{dpi value}
is resulting (approximately).
\begin{itemize}
\item Note that this only applies for WMS Servers and not for
TMS (Tile Map Service) Servers,
- because there \refKey{/mermap/supply/pixel} is a fixed number depending on
+ because there \refKey{mermap/supply/pixel} is a fixed number depending on
Server settings and cannot be chosen arbitrarily.
\item A high \meta{dpi value} results in large downloaded map files.
If the server does not provide a high resolution map, you will get
unnecessary large files with blurred content.
\item The \meta{dpi value} for TMS data can be changed by adapting
- \refKey{/mermap/tile size} or \refKey{/mermap/flex tile size}.
+ \refKey{mermap/tile size} or \refKey{mermap/flex tile size}.
\end{itemize}
\tikzsetnextfilename{maptiles_dpi_value}
\begin{dispExample}
\begin{tikzpicture}
- \mrcmap[type=reference,latitude=48.14,longitude=11.57,
+ \mrcmap[type=reference,latitude=48.14,longitude=11.57,
flex reference scale=250000,
source=topplusopen p250, target=wmsmap, dpi=300,
tex width=\linewidth,tex height=5cm]{dpi_value}
@@ -654,7 +654,7 @@ map data is free for everyone to use.
\textbf{But, map tile servers based on OpenStreetMap are not necessarily free}.
A list of online raster tile servers based on OpenStreetMap data is found here:\\
-\url{https://wiki.openstreetmap.org/wiki/Tile_servers}
+\url{https://wiki.openstreetmap.org/wiki/Raster_tile_providers}
\begin{itemize}
\item\bfseries I do not run a map tile server.
@@ -681,8 +681,8 @@ want to add more to avoid any legal uncertainties.
\medskip
\begin{docMrcKey}[supply]{source}{=\meta{source}}{style, no default}
- This style sets \refKey{/mermap/supply/url}, \refKey{/mermap/supply/attribution},\\
- \refKey{/mermap/supply/attribution print} and \refKey{/mermap/supply/basename}.\\
+ This style sets \refKey{mermap/supply/url}, \refKey{mermap/supply/attribution},\\
+ \refKey{mermap/supply/attribution print} and \refKey{mermap/supply/basename}.\\
Feasible values for \meta{source} are:
%\mermapset{tile size=3.2512cm}
\newcommand{\mapexample}[3][]{%
@@ -690,10 +690,10 @@ want to add more to avoid any legal uncertainties.
\mermapset{supply/source=#2}%
\begin{itemize}
\item Required attribution (\docAuxCommand{mrcmapattribution}):
- \begin{tcolorbox}[sharp corners,size=fbox,colback=yellow!8,colframe=yellow!80!gray,halign=flush left]
+ \begin{tcolorbox}[sharp corners,size=fbox,colback=yellow!8,colframe=yellow!80!gray,halign=flush left,before skip=2pt]
\mrcmapattribution\end{tcolorbox}
\item Required attribution for media without hyperlinks (\docAuxCommand{mrcmapattributionprint}):
- \begin{tcolorbox}[sharp corners,size=fbox,colback=yellow!8,colframe=yellow!80!gray,halign=flush left]
+ \begin{tcolorbox}[sharp corners,size=fbox,colback=yellow!8,colframe=yellow!80!gray,halign=flush left,before skip=2pt]
\mrcmapattributionprint\end{tcolorbox}
%\par\smallskip\
\end{itemize}
@@ -713,71 +713,13 @@ want to add more to avoid any legal uncertainties.
Dummy tile server at loopback |127.0.0.1| for test purposes.
\item\docValue{opentopomap}:\\
- Tile server (TMS) of \href{http://opentopomap.org/}{OpenTopoMap}.
+ Tile server (TMS) of \href{https://opentopomap.org/}{OpenTopoMap}.
\begin{itemize}
\item Usage (German language): \url{https://opentopomap.org/about#verwendung}
\end{itemize}
\mapexample{opentopomap}{opentopomap}
\clearpage
- \item\docValue{stamen terrain}:\\
- Tile server of \href{http://stamen.com}{Stamen Design}.\\
- Usage: \url{http://maps.stamen.com/#terrain}
- \mapexample{stamen terrain}{stamen_terrain}
-
- \item\docValue{stamen terrain-background}:\\
- Tile server of \href{http://stamen.com}{Stamen Design}.\\
- Usage: \url{http://maps.stamen.com/#terrain-background}
- \mapexample{stamen terrain-background}{stamen_terrain-background}
-
- \item\docValue{stamen terrain-labels}:\\
- Tile server of \href{http://stamen.com}{Stamen Design}.\\
- Usage: \url{http://maps.stamen.com/#terrain-labels}
- \mapexample{stamen terrain-labels}{stamen_terrain-labels}
-
-\clearpage
- \item\docValue{stamen terrain-lines}:\\
- Tile server of \href{http://stamen.com}{Stamen Design}.\\
- Usage: \url{http://maps.stamen.com/#terrain-lines}
- \mapexample{stamen terrain-lines}{stamen_terrain-lines}
-
- \item\docValue{stamen toner}:\\
- Tile server of \href{http://stamen.com}{Stamen Design}.\\
- Usage: \url{http://maps.stamen.com/#toner}
- \mapexample{stamen toner}{stamen_toner}
-
- \item\docValue{stamen toner-lite}:\\
- Tile server of \href{http://stamen.com}{Stamen Design}.\\
- Usage: \url{http://maps.stamen.com/#toner-lite}
- \mapexample{stamen toner-lite}{stamen_toner-lite}
-
-\clearpage
- \item\docValue{stamen toner-hybrid}:\\
- Tile server of \href{http://stamen.com}{Stamen Design}.\\
- Usage: \url{http://maps.stamen.com/#toner-hybrid}
- \mapexample{stamen toner-hybrid}{stamen_toner-hybrid}
-
- \item\docValue{stamen toner-background}:\\
- Tile server of \href{http://stamen.com}{Stamen Design}.\\
- Usage: \url{http://maps.stamen.com/#toner-background}
- \mapexample{stamen toner-background}{stamen_toner-background}
-
- \item\docValue{stamen toner-labels}:\\
- Tile server of \href{http://stamen.com}{Stamen Design}.\\
- Usage: \url{http://maps.stamen.com/#toner-labels}
- \mapexample{stamen toner-labels}{stamen_toner-labels}
-
-\clearpage
- \item\docValue{stamen toner-lines}:\\
- Tile server of \href{http://stamen.com}{Stamen Design}.\\
- Usage: \url{http://maps.stamen.com/#toner-lines}
- \mapexample{stamen toner-lines}{stamen_toner-lines}
-
- \item\docValue{stamen watercolor}:\\
- Tile server of \href{http://stamen.com}{Stamen Design}.\\
- Usage: \url{http://maps.stamen.com/#watercolor}
- \mapexample{stamen watercolor}{stamen_watercolor}
-
\item\docValue{thunderforest opencyclemap}:\\
Tile server of \href{https://www.thunderforest.com}{Thunderforest}.\\
A registered \meta{api-key} is needed (free plan available)
@@ -789,7 +731,6 @@ want to add more to avoid any legal uncertainties.
\end{itemize}
\mapexample{thunderforest opencyclemap}{thunderforest_opencyclemap}
-\clearpage
\item\docValue{thunderforest transport}:\\
Tile server of \href{https://www.thunderforest.com}{Thunderforest}.\\
A registered \meta{api-key} is needed (free plan available)
@@ -812,6 +753,7 @@ want to add more to avoid any legal uncertainties.
\end{itemize}
\mapexample{thunderforest landscape}{thunderforest_landscape}
+\clearpage
\item\docValue{thunderforest outdoors}:\\
Tile server of \href{https://www.thunderforest.com}{Thunderforest}.\\
A registered \meta{api-key} is needed (free plan available)
@@ -823,7 +765,17 @@ want to add more to avoid any legal uncertainties.
\end{itemize}
\mapexample{thunderforest outdoors}{thunderforest_outdoors}
-\clearpage
+ \item\docValue{thunderforest atlas}:\tcbdocmarginnote{\tcbdocnew{2024-07-29}}\\
+ Tile server of \href{https://www.thunderforest.com}{Thunderforest}.\\
+ A registered \meta{api-key} is needed (free plan available)
+ which is applied by\\
+ \refCom{mrcsetapikey}\brackets{\docValue{thunderforest}}\marg{api-key}.
+ \begin{itemize}
+ \item Usage: \url{https://www.thunderforest.com/terms}
+ \item API documentation: \url{https://www.thunderforest.com/maps/atlas}
+ \end{itemize}
+ \mapexample{thunderforest atlas}{thunderforest_atlas}
+
\item\docValue{thunderforest transport-dark}:\\
Tile server of \href{https://www.thunderforest.com}{Thunderforest}.\\
A registered \meta{api-key} is needed (free plan available)
@@ -835,6 +787,7 @@ want to add more to avoid any legal uncertainties.
\end{itemize}
\mapexample{thunderforest transport-dark}{thunderforest_transport-dark}
+\clearpage
\item\docValue{thunderforest spinal-map}:\\
Tile server of \href{https://www.thunderforest.com}{Thunderforest}.\\
A registered \meta{api-key} is needed (free plan available)
@@ -857,7 +810,6 @@ want to add more to avoid any legal uncertainties.
\end{itemize}
\mapexample{thunderforest pioneer}{thunderforest_pioneer}
-\clearpage
\item\docValue{thunderforest mobile-atlas}:\\
Tile server of \href{https://www.thunderforest.com}{Thunderforest}.\\
A registered \meta{api-key} is needed (free plan available)
@@ -869,6 +821,7 @@ want to add more to avoid any legal uncertainties.
\end{itemize}
\mapexample{thunderforest mobile-atlas}{thunderforest_mobile-atlas}
+\clearpage
\item\docValue{thunderforest neighbourhood}:\\
Tile server of \href{https://www.thunderforest.com}{Thunderforest}.\\
A registered \meta{api-key} is needed (free plan available)
@@ -880,31 +833,49 @@ want to add more to avoid any legal uncertainties.
\end{itemize}
\mapexample{thunderforest neighbourhood}{thunderforest_neighbourhood}
-\clearpage
\item\docValue{topplusopen web}:\\
- Tile server (TMS) of \href{http://www.bkg.bund.de}{Bundesamt f\"{u}r Kartographie und Geod\"{a}sie}.
+ Tile server (TMS) of \href{https://www.bkg.bund.de}{Bundesamt f\"{u}r Kartographie und Geod\"{a}sie}.
\begin{itemize}
\item Covers world / Europe / Germany depending on zoom level
- \item Usage (German language): \url{https://gdz.bkg.bund.de/index.php/default/webdienste/topplus-produkte/wmts-topplusopen-wmts-topplus-open.html}
+ \item Usage (German language): \url{https://gdz.bkg.bund.de/index.php/default/digitale-geodaten/topplusopen-produkte.html}
\end{itemize}
\mapexample{topplusopen web}{topplusopen_web}
\item\docValue{topplusopen web grau}:\\
- Tile server (TMS) of \href{http://www.bkg.bund.de}{Bundesamt f\"{u}r Kartographie und Geod\"{a}sie}.
+ Tile server (TMS) of \href{https://www.bkg.bund.de}{Bundesamt f\"{u}r Kartographie und Geod\"{a}sie}.
\begin{itemize}
\item Covers world / Europe / Germany depending on zoom level
- \item Usage (German language): \url{https://gdz.bkg.bund.de/index.php/default/webdienste/topplus-produkte/wmts-topplusopen-wmts-topplus-open.html}
+ \item Usage (German language): \url{https://gdz.bkg.bund.de/index.php/default/digitale-geodaten/topplusopen-produkte.html}
\end{itemize}
\mapexample{topplusopen web grau}{topplusopen_web_grau}
+\clearpage
+ \item\docValue{topplusopen web light}:\tcbdocmarginnote{\tcbdocnew{2024-07-29}}\\
+ Tile server (TMS) of \href{https://www.bkg.bund.de}{Bundesamt f\"{u}r Kartographie und Geod\"{a}sie}.
+ \begin{itemize}
+ \item Covers world / Europe / Germany depending on zoom level
+ \item Usage (German language): \url{https://gdz.bkg.bund.de/index.php/default/digitale-geodaten/topplusopen-produkte.html}
+ \end{itemize}
+ \mapexample{topplusopen web light}{topplusopen_web_light}
+
+ \item\docValue{topplusopen web light grau}\tcbdocmarginnote{\tcbdocnew{2024-07-29}}:\\
+ Tile server (TMS) of \href{https://www.bkg.bund.de}{Bundesamt f\"{u}r Kartographie und Geod\"{a}sie}.
+ \begin{itemize}
+ \item Covers world / Europe / Germany depending on zoom level
+ \item Usage (German language): \url{https://gdz.bkg.bund.de/index.php/default/digitale-geodaten/topplusopen-produkte.html}
+ \end{itemize}
+ \mapexample{topplusopen web light grau}{topplusopen_web_light_grau}
+
\end{itemize}
-\clearpage
+
+\vfill
\begin{tcolorbox}[spartan,colback=white]
The following sources are Web map server (WMS). Therefore,
-\refKey{/mermap/supply/target} can only be set to \docValue{wmsmap}
+\refKey{mermap/supply/target} can only be set to \docValue{wmsmap}
or \docValue{none}.
\end{tcolorbox}
+\clearpage
\begingroup
\ExplSyntaxOn
@@ -928,19 +899,19 @@ or \docValue{none}.
{
\cleanstep
\item\docValue{topplusopen \name}:\\
- Web map server (WMS) of \href{http://www.bkg.bund.de}{Bundesamt f\"{u}r Kartographie und Geod\"{a}sie}.
+ Web map server (WMS) of \href{https://www.bkg.bund.de}{Bundesamt f\"{u}r Kartographie und Geod\"{a}sie}.
\begin{itemize}
\item 1:\scdenom, covers Europe / Germany depending on zoom level
- \item Usage (German language): \url{https://gdz.bkg.bund.de/index.php/default/webdienste/topplus-produkte/wmts-topplusopen-wmts-topplus-open.html}
+ \item Usage (German language): \url{https://gdz.bkg.bund.de/index.php/default/digitale-geodaten/topplusopen-produkte.html}
\end{itemize}
\mapexample[target=wmsmap]{topplusopen \name}{topplusopen_\name}
\cleanstep
\item\docValue{topplusopen \name\ grau}:\\
- Web map server (WMS) of \href{http://www.bkg.bund.de}{Bundesamt f\"{u}r Kartographie und Geod\"{a}sie}.
+ Web map server (WMS) of \href{https://www.bkg.bund.de}{Bundesamt f\"{u}r Kartographie und Geod\"{a}sie}.
\begin{itemize}
\item 1:\scdenom, covers Europe / Germany depending on zoom level
- \item Usage (German language): \url{https://gdz.bkg.bund.de/index.php/default/webdienste/topplus-produkte/wmts-topplusopen-wmts-topplus-open.html}
+ \item Usage (German language): \url{https://gdz.bkg.bund.de/index.php/default/digitale-geodaten/topplusopen-produkte.html}
\end{itemize}
\def\grau{ grau}%
\mapexample[target=wmsmap]{topplusopen \name\grau}{topplusopen_\name_grau}
@@ -954,16 +925,16 @@ or \docValue{none}.
\begin{docCommand}{mrcnewsupplysource}{\marg{source}\marg{options}}
- Adds a new \meta{source} value to \refKey{/mermap/supply/source}.
+ Adds a new \meta{source} value to \refKey{mermap/supply/source}.
The \meta{options} should set the keys
- \refKey{/mermap/supply/url}, \refKey{/mermap/supply/attribution},\\
- \refKey{/mermap/supply/attribution print} and \refKey{/mermap/supply/basename}.
+ \refKey{mermap/supply/url}, \refKey{mermap/supply/attribution},\\
+ \refKey{mermap/supply/attribution print} and \refKey{mermap/supply/basename}.
It is recommend to use |x ...| for \meta{source} to avoid conflicts
- with future official additions to \refKey{/mermap/supply/source}.
+ with future official additions to \refKey{mermap/supply/source}.
\begin{dispListing}
\mrcnewsupplysource{x example}
{
- url = http://127.0.0.1/dummy/{z}/{x}/{y}.png,
+ url = https://127.0.0.1/dummy/{z}/{x}/{y}.png,
attribution = {Dummy tile server},
attribution print = {Dummy tile server},
basename = tiles/dummy,
diff --git a/macros/latex/contrib/mercatormap/mercatormap.doc.marker.tex b/macros/latex/contrib/mercatormap/mercatormap.doc.marker.tex
index dcd0e072b8..fb206c339e 100644
--- a/macros/latex/contrib/mercatormap/mercatormap.doc.marker.tex
+++ b/macros/latex/contrib/mercatormap/mercatormap.doc.marker.tex
@@ -14,8 +14,8 @@ may be helpful which provides some predefined marker types.
\begin{docCommand}{mrcmarker}{\marg{options}}
Places a marker according to the given \meta{options} on the map.
- All \meta{options} share the common prefix |/mermap/marker/|.
- Different \refKey{/mermap/marker/type} settings are available which are
+ All \meta{options} share the common prefix |mermap/marker/|.
+ Different \refKey{mermap/marker/type} settings are available which are
more or less customizable.
\tikzsetnextfilename{marker_mrcmarker}%
@@ -48,8 +48,8 @@ may be helpful which provides some predefined marker types.
\begin{docCommand}{mermapsetmarker}{\marg{options}}
Sets \meta{options} for all following markers inside the current \TeX\ group.
- All options share the common prefix |/mermap/marker/|, e.g. for setting
- \refKey{/mermap/marker/type} use
+ All options share the common prefix |mermap/marker/|, e.g. for setting
+ \refKey{mermap/marker/type} use
\begin{dispListing}
\mermapsetmarker{type=pin}
\end{dispListing}
@@ -74,7 +74,7 @@ may be helpful which provides some predefined marker types.
\end{docMrcKey}
\begin{docMrcKey}[marker]{lat}{=\meta{latitude}}{no default, initially |12|}
- Alias for \refKey{/mermap/marker/latitude}.
+ Alias for \refKey{mermap/marker/latitude}.
\end{docMrcKey}
\begin{docMrcKey}[marker]{longitude}{=\meta{longitude}}{no default, initially |49|}
@@ -83,7 +83,7 @@ may be helpful which provides some predefined marker types.
\end{docMrcKey}
\begin{docMrcKey}[marker]{lon}{=\meta{longitude}}{no default, initially |49|}
- Alias for \refKey{/mermap/marker/longitude}.
+ Alias for \refKey{mermap/marker/longitude}.
\end{docMrcKey}
\begin{docMrcKey}[marker]{position}{=\meta{place latitude}:\meta{place longitude}}{no default, initially |12:49|}
@@ -100,7 +100,7 @@ may be helpful which provides some predefined marker types.
given \meta{area}. Feasible values for \meta{area} are:
\begin{itemize}
\item\docValue{map}: Use inside map.
- \item\docValue{vicinity}: Use inside map plus vicinity, see \refKey{/mermap/vicinity}.
+ \item\docValue{vicinity}: Use inside map plus vicinity, see \refKey{mermap/vicinity}.
\end{itemize}
\end{docMrcKey}
@@ -157,36 +157,36 @@ may be helpful which provides some predefined marker types.
\begin{docMrcKey}[marker]{hide}{\colOpt{=true\textbar false}}{default |true|, initially |false|}
If set to |true|, the marker is not used.
- \refKey{/mermap/marker/hide} is inverse to \refKey{/mermap/marker/show}.
+ \refKey{mermap/marker/hide} is inverse to \refKey{mermap/marker/show}.
\end{docMrcKey}
\begin{docMrcKey}[marker]{show category}{=\meta{category}}{style, no default}
- Sets \refKey{/mermap/marker/show} to |true|, if \refKey{/mermap/marker/category} equals \meta{category}.
+ Sets \refKey{mermap/marker/show} to |true|, if \refKey{mermap/marker/category} equals \meta{category}.
Otherwise, nothing happens.
- \refKey{/mermap/marker/category} has to be set \emph{before}.
+ \refKey{mermap/marker/category} has to be set \emph{before}.
\end{docMrcKey}
\begin{docMrcKey}[marker]{show all but category}{=\meta{category}}{style, no default}
- Sets \refKey{/mermap/marker/show} to |true|, if \refKey{/mermap/marker/category} does not equal \meta{category}.
+ Sets \refKey{mermap/marker/show} to |true|, if \refKey{mermap/marker/category} does not equal \meta{category}.
Otherwise, nothing happens.
- \refKey{/mermap/marker/category} has to be set \emph{before}.
+ \refKey{mermap/marker/category} has to be set \emph{before}.
\end{docMrcKey}
\begin{docMrcKey}[marker]{hide category}{=\meta{category}}{style, no default}
- Sets \refKey{/mermap/marker/show} to |false|, if \refKey{/mermap/marker/category} equals \meta{category}.
+ Sets \refKey{mermap/marker/show} to |false|, if \refKey{mermap/marker/category} equals \meta{category}.
Otherwise, nothing happens.
- \refKey{/mermap/marker/category} has to be set \emph{before}.
+ \refKey{mermap/marker/category} has to be set \emph{before}.
\end{docMrcKey}
\begin{docMrcKey}[marker]{hide all but category}{=\meta{category}}{style, no default}
- Sets \refKey{/mermap/marker/show} to |false|, if \refKey{/mermap/marker/category} does not equal \meta{category}.
+ Sets \refKey{mermap/marker/show} to |false|, if \refKey{mermap/marker/category} does not equal \meta{category}.
Otherwise, nothing happens.
- \refKey{/mermap/marker/category} has to be set \emph{before}.
+ \refKey{mermap/marker/category} has to be set \emph{before}.
\tikzsetnextfilename{marker_hide}%
\begin{dispExample}
\begin{tikzpicture}
@@ -206,10 +206,10 @@ may be helpful which provides some predefined marker types.
\clearpage
The following options require the package |hyperref| to be loaded.
-If |hyperref| is not loaded, \refKey{/mermap/marker/url} and
-\refKey{/mermap/marker/link} are ignored.\\
-Note that if \refKey{/mermap/marker/url} and \refKey{/mermap/marker/link}
-are applied concurrently, then \refKey{/mermap/marker/link} will win.
+If |hyperref| is not loaded, \refKey{mermap/marker/url} and
+\refKey{mermap/marker/link} are ignored.\\
+Note that if \refKey{mermap/marker/url} and \refKey{mermap/marker/link}
+are applied concurrently, then \refKey{mermap/marker/link} will win.
\begin{docMrcKeys}[
@@ -279,9 +279,9 @@ are applied concurrently, then \refKey{/mermap/marker/link} will win.
doc description = {default |true|, initially |false|},
},
}
- If \refKey{/mermap/marker/use urls} is set to |false|, external links
- with \refKey{/mermap/marker/url} are ignored.\\
- \refKey{/mermap/marker/ignore urls} is inverse to \refKey{/mermap/marker/use urls}.
+ If \refKey{mermap/marker/use urls} is set to |false|, external links
+ with \refKey{mermap/marker/url} are ignored.\\
+ \refKey{mermap/marker/ignore urls} is inverse to \refKey{mermap/marker/use urls}.
\end{docMrcKeys}
@@ -299,9 +299,9 @@ are applied concurrently, then \refKey{/mermap/marker/link} will win.
doc description = {default |true|, initially |false|},
},
}
- If \refKey{/mermap/marker/use links} is set to |false|, internal links
- with \refKey{/mermap/marker/link} are ignored.\\
- \refKey{/mermap/marker/ignore links} is inverse to \refKey{/mermap/marker/use links}.
+ If \refKey{mermap/marker/use links} is set to |false|, internal links
+ with \refKey{mermap/marker/link} are ignored.\\
+ \refKey{mermap/marker/ignore links} is inverse to \refKey{mermap/marker/use links}.
\end{docMrcKeys}
@@ -596,7 +596,7 @@ The different marker types can be customized by some additional options:
\subsection{New Marker Types}
\begin{docCommand}{mrcnewmarkertype}{\marg{type name}\marg{\tikzname\ code}}
- Creates a new \refKey{/mermap/marker/type} value \meta{type name} using the
+ Creates a new \refKey{mermap/marker/type} value \meta{type name} using the
given \meta{\tikzname\ code} for drawing a place marker.
To avoid future name clashes, you should start a private \meta{type name}
with letter |x|. For \meta{\tikzname\ code} settings like
@@ -630,9 +630,9 @@ The different marker types can be customized by some additional options:
\subsection{New Marker Styles}
\begin{docCommand}{mrcnewmarkerstyle}{\marg{style name}\marg{options}}
- Creates a new \refKey{/mermap/marker/style} value \meta{style name} using the
+ Creates a new \refKey{mermap/marker/style} value \meta{style name} using the
given \meta{options} for drawing a place marker.
- All \meta{options} share the common prefix |/mermap/marker/|. Here, a \emph{style}
+ All \meta{options} share the common prefix |mermap/marker/|. Here, a \emph{style}
has the same concept as a \tikzname\ style.
\tikzsetnextfilename{marker_markerstyle}%
diff --git a/macros/latex/contrib/mercatormap/mercatormap.doc.orthodromes.tex b/macros/latex/contrib/mercatormap/mercatormap.doc.orthodromes.tex
index cddb277c86..6f9620fae0 100644
--- a/macros/latex/contrib/mercatormap/mercatormap.doc.orthodromes.tex
+++ b/macros/latex/contrib/mercatormap/mercatormap.doc.orthodromes.tex
@@ -26,7 +26,7 @@ The mathematical background and further information are found in \cite{Sturm:202
\begin{docTikzKey}{mermap samples}{=\meta{number}}{style, no default}
- \tikzname\ variant to set \refKey{/mermap/samples}.
+ \tikzname\ variant to set \refKey{mermap/samples}.
\end{docTikzKey}
\enlargethispage*{1cm}
@@ -56,7 +56,7 @@ The mathematical background and further information are found in \cite{Sturm:202
\mrcclipmap
\draw (mrcmap.south west) rectangle (mrcmap.north east);
\mrcdraworthodrome[red,very thick,mermap samples=100]
- {48.14}{11.58}{40.71}{-74.01}
+ {48.14}{11.58}{40.71}{-74.01}
\node[red,fill=white] at ([above=1.3cm]mrcmap) {
\mrcprettyorthodistance{48.14}{11.58}{40.71}{-74.01} };
\end{tikzpicture}
@@ -99,6 +99,120 @@ The mathematical background and further information are found in \cite{Sturm:202
\clearpage
%-------------------------------------------------------------------------------
+\subsection{Orthodrome Points}
+
+\begin{docCommands}[
+ ]{
+ {
+ doc new and updated = {2024-08-01}{2024-08-05},
+ doc name = mrcNPfromOrthoFraction,
+ doc parameter = \marg{name}\oarg{\textbackslash angle}\marg{lat1}\marg{lon1}\marg{lat2}\marg{lon2}\marg{fraction},
+ },
+ {
+ doc name = mrcNPfromOrthoFractionNamed,
+ doc parameter = \marg{name}\oarg{\textbackslash angle}\marg{name1}\marg{name2}\marg{fraction},
+ },
+ }
+ Defines a new named position \meta{name} which is located on a \meta{fraction}
+ from the starting point of the orthodromic curve
+ from a point with
+ latitude \meta{lat1} and longitude \meta{lon1} (or described by a named position \meta{name1})
+ to a point with
+ latitude \meta{lat2} and longitude \meta{lon2} (or described by a named position \meta{name2}).
+ The given starting and final point of the orthodrome need to have a distance of more than
+ \SI{1}{\meter}.
+ If \meta{\textbackslash angle} is given, this macro is set to the
+ angle between the tangent vector to the orthodrome and
+ the current parallel circle.
+
+\tikzsetnextfilename{ortho_orthodrome3}%
+\begin{dispExample}
+ \begin{tikzpicture}
+ \mrcNPdef{munich}{48.14}{11.58}
+ \mrcNPdef{newyork}{40.71}{-74.01}
+ \mrcmap[type=areafit, area={munich,newyork},
+ source=topplusopen web,
+ tex width=\linewidth,tex height=6cm,
+ ]{ortho_orthodrome3}
+ \mrcdrawmap
+ \node[below,font=\fontsize{7pt}{7pt}\sffamily] at (mrcmap.south)
+ {\mrcmapattribution};
+ \mrcclipmap
+ \draw (mrcmap.south west) rectangle (mrcmap.north east);
+ \mrcmarker{type=pin,named position=munich,contents={M\"unchen}}
+ \mrcmarker{type=pinflip,shift=5mm,named position=newyork,
+ contents={New York City}}
+ \mrcNPdraworthodrome[red,very thick] {munich}{newyork}
+ \foreach \fraction in { 0.1,0.3,0.5,0.7,1.0,1.1 }
+ {
+ \mrcNPfromOrthoFractionNamed{waypoint}[\myangle]
+ {munich}{newyork}{\fraction}
+ \mrcmarker{type=pin,named position=waypoint,
+ contents={\fraction: \fpeval{round(\myangle)}\textdegree }}
+ }
+ \end{tikzpicture}
+\end{dispExample}
+\end{docCommands}
+
+\clearpage
+
+\begin{docCommands}[
+ ]{
+ {
+ doc new and updated = {2024-08-01}{2024-08-05},
+ doc name = mrcNPfromOrthoDistance,
+ doc parameter = \marg{name}\oarg{\textbackslash angle}\marg{lat1}\marg{lon1}\marg{lat2}\marg{lon2}\marg{distance},
+ },
+ {
+ doc name = mrcNPfromOrthoDistanceNamed,
+ doc parameter = \marg{name}\oarg{\textbackslash angle}\marg{name1}\marg{name2}\marg{distance},
+ },
+ }
+ Defines a new named position \meta{name} which is located on a \meta{distance}
+ from the starting point of the orthodromic curve
+ from a point with
+ latitude \meta{lat1} and longitude \meta{lon1} (or described by a named position \meta{name1})
+ to a point with
+ latitude \meta{lat2} and longitude \meta{lon2} (or described by a named position \meta{name2}).
+ The given starting and final point of the orthodrome need to have a distance of more than
+ \SI{1}{\meter}. The unit for the \meta{distance} is kilometer.
+ If \meta{\textbackslash angle} is given, this macro is set to the
+ angle between the tangent vector to the orthodrome and
+ the current parallel circle.
+
+\tikzsetnextfilename{ortho_orthodrome4}%
+\begin{dispExample}
+ \begin{tikzpicture}
+ \mrcNPdef{munich}{48.14}{11.58}
+ \mrcNPdef{newyork}{40.71}{-74.01}
+ \mrcmap[type=areafit, area={munich,newyork},
+ source=topplusopen web,
+ tex width=\linewidth,tex height=6cm,
+ ]{ortho_orthodrome4}
+ \mrcdrawmap
+ \node[below,font=\fontsize{7pt}{7pt}\sffamily] at (mrcmap.south)
+ {\mrcmapattribution};
+ \mrcclipmap
+ \draw (mrcmap.south west) rectangle (mrcmap.north east);
+ \mrcmarker{type=pin,named position=munich,contents={M\"unchen}}
+ \mrcmarker{type=pinflip,shift=5mm,named position=newyork,
+ contents={New York City}}
+ \mrcNPdraworthodrome[red,very thick] {munich}{newyork}
+ \foreach \distance in { 1000,2000,3000,4000,5000,6000 }
+ {
+ \mrcNPfromOrthoDistanceNamed{waypoint}{munich}{newyork}{\distance}
+ \mrcmarker{type=pin,named position=waypoint,
+ contents={\SI{\distance}{\kilo\meter}}}
+ }
+ \end{tikzpicture}
+\end{dispExample}
+\end{docCommands}
+
+
+
+
+\clearpage
+%-------------------------------------------------------------------------------
\subsection{Orthodromic and Loxodromic Distances}
\begin{docCommand}{mrcprettyorthodistance}{\marg{lat1}\marg{lon1}\marg{lat2}\marg{lon2}}
diff --git a/macros/latex/contrib/mercatormap/mercatormap.doc.scales.tex b/macros/latex/contrib/mercatormap/mercatormap.doc.scales.tex
index 6efc4fe0d0..9e210c2a24 100644
--- a/macros/latex/contrib/mercatormap/mercatormap.doc.scales.tex
+++ b/macros/latex/contrib/mercatormap/mercatormap.doc.scales.tex
@@ -164,7 +164,7 @@ but not for critical navigation purposes etc.
\begin{docCommand}{mrcdrawscalebar}{\oarg{options}}
Draws a scale bar according to the given \meta{options}.
- All \meta{options} share the common prefix |/mermap/scalebar/|.
+ All \meta{options} share the common prefix |mermap/scalebar/|.
The most essential option is the \emph{width} of the scale bar.
\tikzsetnextfilename{scales_scalebar1}
@@ -216,7 +216,7 @@ but not for critical navigation purposes etc.
\end{docMrcKey}
\begin{docMrcKey}[scalebar]{width-in-kilometer}{=\meta{number}}{no default, initially |0|}
- Alias for \refKey{/mermap/scalebar/width-in-km}
+ Alias for \refKey{mermap/scalebar/width-in-km}
\end{docMrcKey}
\begin{docMrcKey}[scalebar]{width-in-meter}{=\meta{number}}{no default, initially |0|}
@@ -247,7 +247,7 @@ but not for critical navigation purposes etc.
\begin{docMrcKey}[scalebar]{at}{=\marg{\tikzname\ coordinate}}{no default,
initially \texttt{\brackets{(0,0)}}}
The scale bar is positioned at the given \meta{\tikzname\ coordinate}.
- The placement is done with the \refKey{/mermap/scalebar/placement} option.
+ The placement is done with the \refKey{mermap/scalebar/placement} option.
Both option correspond to the \tikzname\ options for positioning nodes.
The scale bar can be positioned outside the map (e.g. below), but
remember to use \refCom{mrcclipmap} \emph{after} the scale bar
@@ -285,7 +285,7 @@ but not for critical navigation purposes etc.
\begin{docMrcKey}[scalebar]{placement}{=\meta{\tikzname\ positioning}}{no default, initially empty}
\meta{\tikzname\ positioning} of a scale bar in combination with
- \refKey{/mermap/scalebar/at}. All \tikzname\ placement options for nodes
+ \refKey{mermap/scalebar/at}. All \tikzname\ placement options for nodes
can be used, e.g. \texttt{above left} or \texttt{anchor=mid west}, etc.
Actually, \emph{any} node option could be applied here, but the intended use
is for placement options only.
@@ -298,7 +298,7 @@ but not for critical navigation purposes etc.
absolute shift values in each direction, i.e. the algebraic sign is
automatically complemented.
If only \meta{x shift} is given, then \meta{y shift} is set
- to the same value. \refKey{/mermap/scalebar/at} and \refKey{/mermap/scalebar/placement}
+ to the same value. \refKey{mermap/scalebar/at} and \refKey{mermap/scalebar/placement}
are set by this option.
\end{docMrcKey}
@@ -349,8 +349,8 @@ but not for critical navigation purposes etc.
The \emph{minor} part of the scale bar is a single \tikzname\ path object
which can be customized by the given \meta{\tikzname\ options}.
The \emph{minor} part is seen as holes in the default case.
- \refKey{/mermap/scalebar/minor style} has only an effect, if
- the minor part is drawn \refKey{/mermap/scalebar/solid}.
+ \refKey{mermap/scalebar/minor style} has only an effect, if
+ the minor part is drawn \refKey{mermap/scalebar/solid}.
\tikzsetnextfilename{scales_scalebar5}
\begin{dispExample}
\begin{tikzpicture}
@@ -369,7 +369,7 @@ but not for critical navigation purposes etc.
\begin{docMrcKey}[scalebar]{single}{\colOpt{=true\textbar false}}{default |true|, initially |false|}
If set to |true|, the scale bar is drawn as a single ruler.
- \refKey{/mermap/scalebar/single} is inverse to \refKey{/mermap/scalebar/double}.
+ \refKey{mermap/scalebar/single} is inverse to \refKey{mermap/scalebar/double}.
\tikzsetnextfilename{scales_scalebar6}
\begin{dispExample}
\begin{tikzpicture}
@@ -387,8 +387,8 @@ but not for critical navigation purposes etc.
\begin{docMrcKey}[scalebar]{solid}{\colOpt{=true\textbar false}}{default |true|, initially |false|}
If set to |true|, the \emph{minor} part of the scale bar is drawn opaque.
- It is drawn white or according to \refKey{/mermap/scalebar/minor style}.
- \refKey{/mermap/scalebar/solid} is inverse to \refKey{/mermap/scalebar/transparent}.
+ It is drawn white or according to \refKey{mermap/scalebar/minor style}.
+ \refKey{mermap/scalebar/solid} is inverse to \refKey{mermap/scalebar/transparent}.
\end{docMrcKey}
diff --git a/macros/latex/contrib/mercatormap/mercatormap.doc.sty b/macros/latex/contrib/mercatormap/mercatormap.doc.sty
index 80b38241ce..95b45544d7 100644
--- a/macros/latex/contrib/mercatormap/mercatormap.doc.sty
+++ b/macros/latex/contrib/mercatormap/mercatormap.doc.sty
@@ -4,10 +4,9 @@
\renewcommand*\l@subsubsection{\@dottedtocline{3}{4.2em}{3.2em}}
\RequirePackage[T1]{fontenc}
-\RequirePackage[utf8]{inputenc}
\RequirePackage[english]{babel}
\RequirePackage{lmodern,parskip,array}
-\RequirePackage[svgnames,table,hyperref]{xcolor}
+\RequirePackage[svgnames,table]{xcolor}
\RequirePackage{tikz}
\RequirePackage{varioref}
\RequirePackage[makeindex]{imakeidx}
@@ -31,15 +30,17 @@
\RequirePackage{array,tabularx,booktabs}
\RequirePackage{lipsum}
\RequirePackage[extendedchars,encoding,filenameencoding=utf-8]{grffile}
-\RequirePackage{siunitx,xfp}
+\RequirePackage{xfp}
\RequirePackage{tcolorbox}
-\tcbuselibrary{skins,xparse,minted,breakable,documentation,raster}
+\tcbuselibrary{skins,minted,breakable,documentation,raster}
\providecommand\mrcpkgprefix{}
\RequirePackage{\mrcpkgprefix mercatormap}
\IfFileExists{../private/privatekeys.tex}{\input{../private/privatekeys.tex}}{}
+\RequirePackage{fontawesome5}
+
\RequirePackage{csquotes}
\RequirePackage[%style=authoryear,
style=numeric-comp,
@@ -96,8 +97,8 @@
borderline horizontal={0.3mm}{0pt}{red!50},
#1}{#2}
-\tcbmakedocSubKey{docMrcKey}{mermap}
-\tcbmakedocSubKeys{docMrcKeys}{mermap}
+\tcbmakedocSubKey[doc key prefix=]{docMrcKey}{mermap}
+\tcbmakedocSubKeys[doc key prefix=]{docMrcKeys}{mermap}
\tcbmakedocSubKey{docTikzKey}{tikz}
\def\tikzname{\textup{Ti\textit{k}Z}}
diff --git a/macros/latex/contrib/mercatormap/mercatormap.doc.versionhistory.tex b/macros/latex/contrib/mercatormap/mercatormap.doc.versionhistory.tex
deleted file mode 100644
index bcdf2fd322..0000000000
--- a/macros/latex/contrib/mercatormap/mercatormap.doc.versionhistory.tex
+++ /dev/null
@@ -1,50 +0,0 @@
-% !TeX root = mercatormap.tex
-% !TeX encoding=UTF-8
-% !TeX spellcheck=en_US
-% include file of mercatormap.tex (manual of the LaTeX package mercatormap)
-\clearpage
-\section{Version History}%
-
-\section*{v1.00 (2020/04/20)}
-\begin{itemize}
-\item Initial public release.
-\end{itemize}
-
-\section*{v1.01 (2020/05/05)}
-\begin{itemize}
-\item Sorting of index key entries fixed for the documentation.
-\item User messages for failed Python script calls are changed from warnings to
- errors to fail fast and to provide more information and hints about
- possible reasons.
-\item New general marker option
- \refKey{/mermap/marker/generic} with corresponding macros
- \docAuxCommand*{mrcmarkergeneric}
- and \docAuxCommand*{l_mermap_marker_generic_tl}. Also, the marker uuid is
- made |expl3| accessible as \docAuxCommand*{l_mermap_marker_uuid_tl}.
-\item New hyper marker options
- \refKey{/mermap/marker/url},
- \refKey{/mermap/marker/link},
- \refKey{/mermap/marker/use urls},
- \refKey{/mermap/marker/ignore urls},
- \refKey{/mermap/marker/use links},
- \refKey{/mermap/marker/ignore links}.
-\end{itemize}
-
-
-\section*{v1.02 (2020/08/06)}
-\begin{itemize}
-\item New options
- \refKey{/mermap/supply/area from marker input} and
- \refKey{/mermap/supply/add area from marker input}
- which allow to fit a map to a given external list of marker positions.
-\item New option \refKey{/mermap/fail on missing resource} to control
- compilation behavior for missing resource files.
-\item Openrouteservice has discontinued mapsurfer tiles since June 2020.\\
- Therefore, \refKey{/mermap/supply/source}=\docValue{openrouteservice mapsurfer}
- is deprecated now. It is not documented any more, but
- for some time it is still available for old documents with
- cached map tiles.
-\item\issuetracker{2}
- New marker option \refKey{/mermap/marker/distance} with corresponding
- macro \docAuxCommand{mrcmarkerdistance}.
-\end{itemize}
diff --git a/macros/latex/contrib/mercatormap/mercatormap.pdf b/macros/latex/contrib/mercatormap/mercatormap.pdf
index d90d749617..1c0c7dc3d8 100644
--- a/macros/latex/contrib/mercatormap/mercatormap.pdf
+++ b/macros/latex/contrib/mercatormap/mercatormap.pdf
Binary files differ
diff --git a/macros/latex/contrib/mercatormap/mercatormap.sty b/macros/latex/contrib/mercatormap/mercatormap.sty
index d2c8d61ae4..b9f77b9715 100644
--- a/macros/latex/contrib/mercatormap/mercatormap.sty
+++ b/macros/latex/contrib/mercatormap/mercatormap.sty
@@ -1,8 +1,8 @@
-%% The LaTeX package mercatormap - version 1.02 (2020/08/06)
+%% The LaTeX package mercatormap - version 1.2.0 (2024/08/05)
%% mercatormap.sty: geographic coordinates (Mercator projection) and map tiles for TikZ pictures
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2020 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2020-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -17,24 +17,11 @@
%%
%% This work consists of all files listed in README
%%
-\RequirePackage{expl3}[2020/02/25]
-\RequirePackage{xparse}
-\ProvidesExplPackage{mercatormap}{2020/08/06}{1.02}
+\NeedsTeXFormat{LaTeX2e}[2023-11-01]
+\ProvidesExplPackage{mercatormap}{2024/08/05}{1.2.0}
{A Web Mercator projection package with map tile support}
-\@ifpackagelater { expl3 } { 2020/02/25 }
- { }
- {
- \PackageError { mercatormap } { Support~package~expl3~too~old }
- {
- You~need~to~update~your~installation~of~the~bundles~'l3kernel'~and~
- 'l3packages'.\MessageBreak
- Loading~mercatormap~will~abort!
- }
- \tex_endinput:D
- }
-\RequirePackage{siunitx}
-\RequirePackage{graphicx,tikz,pdftexcmds}
+\RequirePackage{siunitx,graphicx,tikz}
\ExplSyntaxOff
% space character problem if within explSyntax
@@ -51,8 +38,23 @@
\NewDocumentCommand\mermapsetmarker{ m } { \keys_set:nn { mermap/marker } {#1} }
-%---- constants ----------------------------------------------------------------
+%---- scratch variables --------------------------------------------------------
+
+\box_new:N \l__mermap_tmpa_box
+
+\clist_new:N \l__mermap_tmpa_clist
+\dim_new:N \l__mermap_tmpa_dim
+\dim_new:N \l__mermap_tmpb_dim
+
+\fp_new:N \l__mermap_tmpa_fp
+\fp_new:N \l__mermap_tmpb_fp
+
+\tl_new:N \g__mermap_tmpa_tl
+\tl_new:N \l__mermap_tmpa_tl
+\tl_new:N \l__mermap_tmpb_tl
+
+%---- constants ----------------------------------------------------------------
\fp_const:Nn \c__mermap_scale_radius_fp { 6371*pi/180 }
\fp_const:Nn \c__mermap_mean_radius_fp { 637100000cm }
@@ -235,16 +237,16 @@
\cs_new_nopar:Npn \__mermap_longitude_to_x:n #1
{
- \fp_set:Nn \l_tmpa_fp { #1-\l__mermap_mapwest_fp }
- \fp_sub:Nn \l_tmpa_fp { 360*floor(\l_tmpa_fp/360) }
- \fp_set:Nn \l_tmpa_fp
- { \l_tmpa_fp>\l__mermap_westeast_fp
- ?(\l_tmpa_fp-\l__mermap_westeast_fp>360-\l_tmpa_fp
- ?\l_tmpa_fp-360
- :\l_tmpa_fp)
- :\l_tmpa_fp
+ \fp_set:Nn \l__mermap_tmpa_fp { #1-\l__mermap_mapwest_fp }
+ \fp_sub:Nn \l__mermap_tmpa_fp { 360*floor(\l__mermap_tmpa_fp/360) }
+ \fp_set:Nn \l__mermap_tmpa_fp
+ { \l__mermap_tmpa_fp>\l__mermap_westeast_fp
+ ?(\l__mermap_tmpa_fp-\l__mermap_westeast_fp>360-\l__mermap_tmpa_fp
+ ?\l__mermap_tmpa_fp-360
+ :\l__mermap_tmpa_fp)
+ :\l__mermap_tmpa_fp
}
- \fp_set:Nn \l__mermap_cs_x_fp { \l_tmpa_fp*\l__mermap_cs_xfactor_fp }
+ \fp_set:Nn \l__mermap_cs_x_fp { \l__mermap_tmpa_fp*\l__mermap_cs_xfactor_fp }
}
@@ -328,7 +330,7 @@
}
-\prg_new_conditional:Npnn \__mermap_if_in_map:nn #1#2 { p, TF }
+\prg_new_conditional:Npnn \__mermap_if_in_map:nn #1#2 { p, T, F, TF }
{
\fp_compare:nNnTF {#1} > \l__mermap_mapnorth_fp
{
@@ -340,14 +342,14 @@
\prg_return_false:
}
{
- \fp_set:Nn \l_tmpa_fp { #2-\l__mermap_mapwest_fp }
- \fp_sub:Nn \l_tmpa_fp { 360*floor(\l_tmpa_fp/360) }
- \fp_compare:nNnTF \l_tmpa_fp > \l__mermap_westeast_fp
+ \fp_set:Nn \l__mermap_tmpa_fp { #2-\l__mermap_mapwest_fp }
+ \fp_sub:Nn \l__mermap_tmpa_fp { 360*floor(\l__mermap_tmpa_fp/360) }
+ \fp_compare:nNnTF \l__mermap_tmpa_fp > \l__mermap_westeast_fp
{
\prg_return_false:
}
{
- \fp_set:Nn \l__mermap_cs_x_fp { \l_tmpa_fp*\l__mermap_cs_xfactor_fp }
+ \fp_set:Nn \l__mermap_cs_x_fp { \l__mermap_tmpa_fp*\l__mermap_cs_xfactor_fp }
\__mermap_latitude_to_y:n {#1}
\pgfnoderename{mrclastpos}{mrcpos}
\pgfcoordinate{mrcpos}{
@@ -366,7 +368,7 @@
}
-\prg_new_conditional:Npnn \__mermap_if_in_vicinity:nn #1#2 { p, TF }
+\prg_new_conditional:Npnn \__mermap_if_in_vicinity:nn #1#2 { p, T, F, TF }
{
\fp_compare:nNnTF {#1} > \l__mermap_vic_north_fp
{
@@ -378,14 +380,14 @@
\prg_return_false:
}
{
- \fp_set:Nn \l_tmpa_fp { #2-\l__mermap_vic_west_fp }
- \fp_sub:Nn \l_tmpa_fp { 360*floor(\l_tmpa_fp/360) }
- \fp_compare:nNnTF \l_tmpa_fp > \l__mermap_vic_westeast_fp
+ \fp_set:Nn \l__mermap_tmpa_fp { #2-\l__mermap_vic_west_fp }
+ \fp_sub:Nn \l__mermap_tmpa_fp { 360*floor(\l__mermap_tmpa_fp/360) }
+ \fp_compare:nNnTF \l__mermap_tmpa_fp > \l__mermap_vic_westeast_fp
{
\prg_return_false:
}
{
- \fp_set:Nn \l__mermap_cs_x_fp { \l_tmpa_fp*\l__mermap_cs_xfactor_fp - \l__mermap_vic_dim_fp }
+ \fp_set:Nn \l__mermap_cs_x_fp { \l__mermap_tmpa_fp*\l__mermap_cs_xfactor_fp - \l__mermap_vic_dim_fp }
\__mermap_latitude_to_y:n {#1}
\pgfnoderename{mrclastpos}{mrcpos}
\pgfcoordinate{mrcpos}{
@@ -443,19 +445,13 @@
\NewExpandableDocumentCommand \mrcNPlat { m }
{
- \cs_if_exist_use:cF{__mermap__lat__#1}
- {
- \msg_error:nnx{ mercatormap }{ np-undefined }{ #1 }
- }
+ \cs_if_exist_use:cF{ __mermap__lat__#1 }{ 0 }
}
\NewExpandableDocumentCommand \mrcNPlon { m }
{
- \cs_if_exist_use:cF{__mermap__lon__#1}
- {
- \msg_error:nnx{ mercatormap }{ np-undefined }{ #1 }
- }
+ \cs_if_exist_use:cF{ __mermap__lon__#1 }{ 0 }
}
@@ -465,15 +461,75 @@
}
+\prg_new_conditional:Npnn \__mermap_if_NP_exists:n #1 { p, TF }
+ {
+ \cs_if_exist:cTF{ __mermap__lat__#1 }
+ {
+ \cs_if_exist:cTF{ __mermap__lon__#1 }
+ {
+ \prg_return_true:
+ }
+ {
+ \prg_return_false:
+ }
+ }
+ {
+ \prg_return_false:
+ }
+ }
+
+
+\NewDocumentCommand{\ifmrcNPexists}{ m }
+ {
+ \__mermap_if_NP_exists:nTF{ #1 }
+ }
+
+
+\prg_new_conditional:Npnn \__mermap_if_NP_in_map:n #1 { p, TF }
+ {
+ \__mermap_if_NP_exists:nTF { #1 }
+ {
+ \__mermap_if_in_map:nnTF{ \mrcNPlat{#1} }{ \mrcNPlon{#1} }
+ {
+ \prg_return_true:
+ }
+ {
+ \prg_return_false:
+ }
+ }
+ {
+ \prg_return_false:
+ }
+ }
+
+
\NewDocumentCommand{\ifmrcNPinmap}{ m }
{
- \__mermap_if_in_map:nnTF{\mrcNPlat{#1}}{\mrcNPlon{#1}}
+ \__mermap_if_NP_in_map:nTF { #1 }
+ }
+
+
+\prg_new_conditional:Npnn \__mermap_if_NP_in_vicinity:n #1 { p, TF }
+ {
+ \__mermap_if_NP_exists:nTF { #1 }
+ {
+ \__mermap_if_in_vicinity:nnTF{ \mrcNPlat{#1} }{ \mrcNPlon{#1} }
+ {
+ \prg_return_true:
+ }
+ {
+ \prg_return_false:
+ }
+ }
+ {
+ \prg_return_false:
+ }
}
\NewDocumentCommand{\ifmrcNPinvicinity}{ m }
{
- \__mermap_if_in_vicinity:nnTF{\mrcNPlat{#1}}{\mrcNPlon{#1}}
+ \__mermap_if_NP_in_vicinity:nTF{ #1 }
}
@@ -485,7 +541,7 @@
\char_set_catcode_other:n {`\"}
\tl_const:Nn \c__mermap_supply_call_boundaries_tl
- {%
+ {
\l__mermap_python_tl\c_space_tl boundaries
-u "\str_use:N\l__mermap_supply_url_str"
-at "\str_use:N\l__mermap_supply_attribution_str"
@@ -503,7 +559,7 @@
}
\tl_const:Nn \c__mermap_supply_call_reference_tl
- {%
+ {
\l__mermap_python_tl\c_space_tl reference
-u "\str_use:N\l__mermap_supply_url_str"
-at "\str_use:N\l__mermap_supply_attribution_str"
@@ -523,7 +579,7 @@
\tl_const:Nn \c__mermap_supply_call_areafit_tl
- {%
+ {
\l__mermap_python_tl\c_space_tl areafit
-u "\str_use:N\l__mermap_supply_url_str"
-at "\str_use:N\l__mermap_supply_attribution_str"
@@ -604,11 +660,11 @@
\cs_new:Npn \__mermap_supply_url_with_api_key:nnn #1#2#3
{
\str_set:Nn \l__mermap_supply_url_str {#1}
- \prop_get:NnNF \g__mermap_apikey_prop {#2} \l_tmpa_tl
+ \prop_get:NnNF \g__mermap_apikey_prop {#2} \l__mermap_tmpa_tl
{
\msg_error:nnx{ mercatormap }{ api-key-undefined }{ #2 }
}
- \str_put_right:NV \l__mermap_supply_url_str \l_tmpa_tl
+ \str_put_right:NV \l__mermap_supply_url_str \l__mermap_tmpa_tl
\str_put_right:Nn \l__mermap_supply_url_str {#3}
}
@@ -621,16 +677,16 @@
{
\msg_error:nnx{ mercatormap }{ np-undefined }{ ##1 }
}
- \fp_set:Nn \l_tmpa_fp { \mrcNPlat{##1} }
- \fp_compare:nNnT \l_tmpa_fp < \l__mermap_supply_south_fp
- { \fp_set_eq:NN \l__mermap_supply_south_fp \l_tmpa_fp }
- \fp_compare:nNnT \l_tmpa_fp > \l__mermap_supply_north_fp
- { \fp_set_eq:NN \l__mermap_supply_north_fp \l_tmpa_fp }
- \fp_set:Nn \l_tmpa_fp { \mrcNPlon{##1} }
- \fp_compare:nNnT \l_tmpa_fp < \l__mermap_supply_west_fp
- { \fp_set_eq:NN \l__mermap_supply_west_fp \l_tmpa_fp }
- \fp_compare:nNnT \l_tmpa_fp > \l__mermap_supply_east_fp
- { \fp_set_eq:NN \l__mermap_supply_east_fp \l_tmpa_fp }
+ \fp_set:Nn \l__mermap_tmpa_fp { \mrcNPlat{##1} }
+ \fp_compare:nNnT \l__mermap_tmpa_fp < \l__mermap_supply_south_fp
+ { \fp_set_eq:NN \l__mermap_supply_south_fp \l__mermap_tmpa_fp }
+ \fp_compare:nNnT \l__mermap_tmpa_fp > \l__mermap_supply_north_fp
+ { \fp_set_eq:NN \l__mermap_supply_north_fp \l__mermap_tmpa_fp }
+ \fp_set:Nn \l__mermap_tmpa_fp { \mrcNPlon{##1} }
+ \fp_compare:nNnT \l__mermap_tmpa_fp < \l__mermap_supply_west_fp
+ { \fp_set_eq:NN \l__mermap_supply_west_fp \l__mermap_tmpa_fp }
+ \fp_compare:nNnT \l__mermap_tmpa_fp > \l__mermap_supply_east_fp
+ { \fp_set_eq:NN \l__mermap_supply_east_fp \l__mermap_tmpa_fp }
}
}
@@ -662,14 +718,14 @@
{
\msg_error:nnn { mercatormap }{ input-area-marker }{ #1 }
}
- \tl_gset:Nx \g_tmpa_tl
+ \tl_gset:Nx \g__mermap_tmpa_tl
{
\exp_not:N\fp_set:Nn \exp_not:N\l__mermap_supply_west_fp { \fp_to_decimal:N\l__mermap_supply_west_fp }
\exp_not:N\fp_set:Nn \exp_not:N\l__mermap_supply_east_fp { \fp_to_decimal:N\l__mermap_supply_east_fp }
\exp_not:N\fp_set:Nn \exp_not:N\l__mermap_supply_south_fp { \fp_to_decimal:N\l__mermap_supply_south_fp }
\exp_not:N\fp_set:Nn \exp_not:N\l__mermap_supply_north_fp { \fp_to_decimal:N\l__mermap_supply_north_fp }
}
- \group_insert_after:N \g_tmpa_tl
+ \group_insert_after:N \g__mermap_tmpa_tl
\group_end:
}
@@ -715,18 +771,18 @@
_source .choice:,
area .code:n =
{
- \clist_set:Nn \l_tmpa_clist { #1 }
+ \clist_set:Nn \l__mermap_tmpa_clist { #1 }
\fp_set:Nn \l__mermap_supply_west_fp { inf }
\fp_set:Nn \l__mermap_supply_east_fp { -inf }
\fp_set:Nn \l__mermap_supply_south_fp { 89 }
\fp_set:Nn \l__mermap_supply_north_fp { -89 }
- \__mermap_supply_add_area_clist:N \l_tmpa_clist
+ \__mermap_supply_add_area_clist:N \l__mermap_tmpa_clist
},
area .value_required:n = true,
add~area .code:n =
{
- \clist_set:Nn \l_tmpa_clist { #1 }
- \__mermap_supply_add_area_clist:N \l_tmpa_clist
+ \clist_set:Nn \l__mermap_tmpa_clist { #1 }
+ \__mermap_supply_add_area_clist:N \l__mermap_tmpa_clist
},
area~from~marker~input .code:n =
{
@@ -756,20 +812,20 @@
flex~area~fit .code:n = {
\fp_compare:nNnF \l__mermap_tile_size_dim = \l__mermap_flex_tile_size_dim
{
- \fp_set:Nn \l_tmpa_fp { \l__mermap_tile_size_dim/\l__mermap_flex_tile_size_dim }
- \fp_set:Nn \l__mermap_supply_width_fp{\l__mermap_supply_width_fp*\l_tmpa_fp}
- \fp_set:Nn \l__mermap_supply_height_fp{\l__mermap_supply_height_fp*\l_tmpa_fp}
+ \fp_set:Nn \l__mermap_tmpa_fp { \l__mermap_tile_size_dim/\l__mermap_flex_tile_size_dim }
+ \fp_set:Nn \l__mermap_supply_width_fp{\l__mermap_supply_width_fp*\l__mermap_tmpa_fp}
+ \fp_set:Nn \l__mermap_supply_height_fp{\l__mermap_supply_height_fp*\l__mermap_tmpa_fp}
}
\fp_set:Nn \l__mermap_supply_width_fp{\l__mermap_supply_width_fp-(#1)/\l__mermap_flex_tile_size_dim}
\fp_set:Nn \l__mermap_supply_height_fp{\l__mermap_supply_height_fp-(#1)/\l__mermap_flex_tile_size_dim}
- \fp_set:Nn \l_tmpa_fp { min ( 180*\l__mermap_supply_width_fp / (\l__mermap_supply_east_fp-\l__mermap_supply_west_fp)
+ \fp_set:Nn \l__mermap_tmpa_fp { min ( 180*\l__mermap_supply_width_fp / (\l__mermap_supply_east_fp-\l__mermap_supply_west_fp)
, pi*\l__mermap_supply_height_fp / ln( tand(\l__mermap_supply_north_fp/2+45) / tand(\l__mermap_supply_south_fp/2+45) ) ) }
- \fp_set:Nn \l_tmpb_fp { ln(\l_tmpa_fp)/ln(2) }
- \fp_set:Nn \l_tmpb_fp { round(\l_tmpb_fp)/\l_tmpb_fp }
- \fp_set:Nn \l_tmpb_fp { \l_tmpa_fp^(\l_tmpb_fp-1+0.0000001) }
- \dim_set:Nn \l__mermap_tile_size_dim { \fp_to_dim:n { \l__mermap_flex_tile_size_dim / \l_tmpb_fp }}
- \fp_set:Nn \l__mermap_supply_width_fp { \l__mermap_supply_width_fp * \l_tmpb_fp + (#1)/\l__mermap_tile_size_dim }
- \fp_set:Nn \l__mermap_supply_height_fp { \l__mermap_supply_height_fp * \l_tmpb_fp + (#1)/\l__mermap_tile_size_dim }
+ \fp_set:Nn \l__mermap_tmpb_fp { ln(\l__mermap_tmpa_fp)/ln(2) }
+ \fp_set:Nn \l__mermap_tmpb_fp { round(\l__mermap_tmpb_fp)/\l__mermap_tmpb_fp }
+ \fp_set:Nn \l__mermap_tmpb_fp { \l__mermap_tmpa_fp^(\l__mermap_tmpb_fp-1+0.0000001) }
+ \dim_set:Nn \l__mermap_tile_size_dim { \fp_to_dim:n { \l__mermap_flex_tile_size_dim / \l__mermap_tmpb_fp }}
+ \fp_set:Nn \l__mermap_supply_width_fp { \l__mermap_supply_width_fp * \l__mermap_tmpb_fp + (#1)/\l__mermap_tile_size_dim }
+ \fp_set:Nn \l__mermap_supply_height_fp { \l__mermap_supply_height_fp * \l__mermap_tmpb_fp + (#1)/\l__mermap_tile_size_dim }
},
flex~area~fit .default:n = 0pt,
}
@@ -815,16 +871,13 @@
\msg_new:nnn { mercatormap }{ python-script }
- { Python~script~'maptiles.texpy'~is~created~(for~map~tile~download). }
+ { Python~script~'maptiles.texpy'~is~created~for~map~tile~download. }
\NewDocumentCommand \mrcactivatescript {}
{
\msg_info:nn { mercatormap }{ python-script }
- \group_begin:
- \def\@latex@warning@no@line##1{}% suppress filecontents warning
\file_input:n {\mrcpkgprefix mercatorpy.def}
- \group_end:
\bool_set_true:N \l__mermap_script_activated_bool
}
\@onlypreamble\mrcactivatescript
@@ -838,21 +891,21 @@
\cs_new:Npn \__mermap_create_definition_id:n #1
{
- \tl_set:Nx \l_tmpa_tl {#1}
- \tl_trim_spaces:N \l_tmpa_tl
- \str_set:Nx \l__mermap_definition_postfix_str {\tl_to_str:N \l_tmpa_tl}
+ \tl_set:Nx \l__mermap_tmpa_tl {#1}
+ \tl_trim_spaces:N \l__mermap_tmpa_tl
+ \str_set:Nx \l__mermap_definition_postfix_str {\tl_to_str:N \l__mermap_tmpa_tl}
\str_concat:NNN \l__mermap_definition_id_str
\l__mermap_definition_prefix_str \l__mermap_definition_postfix_str
}
\cs_new:Npn \__mermap_map:nn #1#2
{
- \tl_set:Nx \l_tmpa_tl {#2}
- \tl_trim_spaces:N \l_tmpa_tl
- \tl_if_empty:NT \l_tmpa_tl
+ \tl_set:Nx \l__mermap_tmpa_tl {#2}
+ \tl_trim_spaces:N \l__mermap_tmpa_tl
+ \tl_if_empty:NT \l__mermap_tmpa_tl
{
\int_gincr:N \g__mermap_automap_int
- \tl_set:Nx \l_tmpa_tl
+ \tl_set:Nx \l__mermap_tmpa_tl
{
automap-
\int_compare:nNnTF \g__mermap_automap_int<{10} {000}
@@ -865,7 +918,7 @@
\int_use:N \g__mermap_automap_int
}
}
- \str_set:Nx \l__mermap_definition_postfix_str {\tl_to_str:N \l_tmpa_tl}
+ \str_set:Nx \l__mermap_definition_postfix_str {\tl_to_str:N \l__mermap_tmpa_tl}
\str_concat:NNN \l__mermap_definition_id_str
\l__mermap_definition_prefix_str \l__mermap_definition_postfix_str
\__mermap_supplymap:n {#1}
@@ -886,12 +939,12 @@
{
\group_begin:
\keys_set:nn { mermap/supply } { #1 }
- \tl_set:Nx \l_tmpa_tl { \str_use:N\l__mermap_definition_id_str }
- \prop_if_in:NVT \g__mermap_definition_prop \l_tmpa_tl
+ \tl_set:Nx \l__mermap_tmpa_tl { \str_use:N\l__mermap_definition_id_str }
+ \prop_if_in:NVT \g__mermap_definition_prop \l__mermap_tmpa_tl
{
- \msg_warning:nnx { mercatormap }{ definition-id-used }{ \tl_use:N \l_tmpa_tl }
+ \msg_warning:nnx { mercatormap }{ definition-id-used }{ \tl_use:N \l__mermap_tmpa_tl }
}
- \prop_gput:NVn \g__mermap_definition_prop \l_tmpa_tl {}
+ \prop_gput:NVn \g__mermap_definition_prop \l__mermap_tmpa_tl {}
\bool_if:NT \l__mermap_script_activated_bool
{
\__mermap_supplymap_call:
@@ -927,10 +980,10 @@
\cs_new:Npn \__mermap_supplymap_call:
{
- \tl_set_eq:Nc \l_tmpa_tl {
+ \tl_set_eq:Nc \l__mermap_tmpa_tl {
c__mermap_supply_call_\l__mermap_supply_type_tl _tl }
- \tl_set:Nx \l__mermap_supply_call_tl \l_tmpa_tl
- \tl_set:Nx \l__mermap_mdfivesum_tl { \pdf@mdfivesum{\l__mermap_supply_call_tl} }
+ \tl_set:Nx \l__mermap_supply_call_tl \l__mermap_tmpa_tl
+ \tl_set:Nx \l__mermap_mdfivesum_tl { \str_mdfive_hash:e{\l__mermap_supply_call_tl} }
\file_if_exist:nTF {\l__mermap_definition_id_str.def}
{
\tl_clear:N \l__mermap_last_mdfivesum_tl
@@ -1031,8 +1084,8 @@
\cs_new_nopar:Npn \__mermap_set_flex_scale:nn #1#2
{
- \fp_set:Nn \l_tmpa_fp { 1+ln(\c__mermap_mean_radius_fp/#1*cosd(#2)*pi/\l__mermap_flex_tile_size_dim)/ln(2) }
- \keys_set:nn { mermap }{ flex~zoom=\l_tmpa_fp }
+ \fp_set:Nn \l__mermap_tmpa_fp { 1+ln(\c__mermap_mean_radius_fp/#1*cosd(#2)*pi/\l__mermap_flex_tile_size_dim)/ln(2) }
+ \keys_set:nn { mermap }{ flex~zoom=\l__mermap_tmpa_fp }
}
\use:x
@@ -1323,19 +1376,19 @@
\cs_new_nopar:Npn \__mermap_compute_network_step:nn #1#2
{
- \fp_set:Nn \l_tmpa_fp
+ \fp_set:Nn \l__mermap_tmpa_fp
{
min ( \l__mermap_network_pieces_int, round((#1)/\l__mermap_network_distance_dim) )
}
- \fp_set:Nn \l_tmpb_fp { (#2)/\l_tmpa_fp }
- \fp_set:Nn \l_tmpa_fp { floor(ln(\l_tmpb_fp)/ln(10)) }
- \fp_compare:nNnTF {\l_tmpa_fp} < {0}
+ \fp_set:Nn \l__mermap_tmpb_fp { (#2)/\l__mermap_tmpa_fp }
+ \fp_set:Nn \l__mermap_tmpa_fp { floor(ln(\l__mermap_tmpb_fp)/ln(10)) }
+ \fp_compare:nNnTF {\l__mermap_tmpa_fp} < {0}
{
- \fp_compare:nNnTF {\l_tmpa_fp} > {-5}
+ \fp_compare:nNnTF {\l__mermap_tmpa_fp} > {-5}
{
\use:x
{
- \exp_not:N\keys_set:nn { mermap }{ format~angle=decimal\fp_to_int:N\l_tmpa_fp}
+ \exp_not:N\keys_set:nn { mermap }{ format~angle=decimal\fp_to_int:N\l__mermap_tmpa_fp}
}
}
{
@@ -1345,25 +1398,25 @@
{
\keys_set:nn { mermap }{ format~angle=decimal-0 }
}
- \fp_set:Nn \l_tmpa_fp { 10^\l_tmpa_fp }
- \fp_set:Nn \l_tmpb_fp { \l_tmpb_fp/\l_tmpa_fp }
- \fp_compare:nNnTF {abs(\l_tmpb_fp-1)} < {abs(\l_tmpb_fp-2)}
+ \fp_set:Nn \l__mermap_tmpa_fp { 10^\l__mermap_tmpa_fp }
+ \fp_set:Nn \l__mermap_tmpb_fp { \l__mermap_tmpb_fp/\l__mermap_tmpa_fp }
+ \fp_compare:nNnTF {abs(\l__mermap_tmpb_fp-1)} < {abs(\l__mermap_tmpb_fp-2)}
{
- \fp_compare:nNnTF {abs(\l_tmpb_fp-1)} < {abs(\l_tmpb_fp-5)}
+ \fp_compare:nNnTF {abs(\l__mermap_tmpb_fp-1)} < {abs(\l__mermap_tmpb_fp-5)}
{
- \fp_set:Nn \l__mermap_result_fp {\l_tmpa_fp}
+ \fp_set:Nn \l__mermap_result_fp {\l__mermap_tmpa_fp}
}
{
- \fp_set:Nn \l__mermap_result_fp {5*\l_tmpa_fp}
+ \fp_set:Nn \l__mermap_result_fp {5*\l__mermap_tmpa_fp}
}
}
{
- \fp_compare:nNnTF {abs(\l_tmpb_fp-2)} < {abs(\l_tmpb_fp-5)}
+ \fp_compare:nNnTF {abs(\l__mermap_tmpb_fp-2)} < {abs(\l__mermap_tmpb_fp-5)}
{
- \fp_set:Nn \l__mermap_result_fp {2*\l_tmpa_fp}
+ \fp_set:Nn \l__mermap_result_fp {2*\l__mermap_tmpa_fp}
}
{
- \fp_set:Nn \l__mermap_result_fp {5*\l_tmpa_fp}
+ \fp_set:Nn \l__mermap_result_fp {5*\l__mermap_tmpa_fp}
}
}
}
@@ -1376,46 +1429,46 @@
\IfNoValueF {#1} { \keys_set:nn { mermap } {#1} }
\tl_use:N \l__mermap_tikz_map_clip_tl
\__mermap_compute_network_step:nn {\l__mermap_tex_height_fp}{\l__mermap_mapnorth_fp-\l__mermap_mapsouth_fp}
- \fp_set:Nn \l_tmpa_fp { ceil(\l__mermap_mapsouth_fp/\l__mermap_result_fp)*\l__mermap_result_fp}
- \fp_compare:nNnT {\l_tmpa_fp-\l__mermap_mapsouth_fp} < {1e-10}
+ \fp_set:Nn \l__mermap_tmpa_fp { ceil(\l__mermap_mapsouth_fp/\l__mermap_result_fp)*\l__mermap_result_fp}
+ \fp_compare:nNnT {\l__mermap_tmpa_fp-\l__mermap_mapsouth_fp} < {1e-10}
{
- \fp_add:Nn \l_tmpa_fp {\l__mermap_result_fp}
+ \fp_add:Nn \l__mermap_tmpa_fp {\l__mermap_result_fp}
}
- \fp_while_do:nNnn {\l_tmpa_fp} < {\l__mermap_mapnorth_fp}
+ \fp_while_do:nNnn {\l__mermap_tmpa_fp} < {\l__mermap_mapnorth_fp}
{
- \tl_set:Nn \l_tmpa_tl {\fp_use:N\l_tmpa_fp}
- \draw[gray,very~thin] (mrc~cs\c_colon_str lat=\l_tmpa_tl,lon=\mrcmapwest)
+ \tl_set:Nn \l__mermap_tmpa_tl {\fp_use:N\l__mermap_tmpa_fp}
+ \draw[gray,very~thin] (mrc~cs\c_colon_str lat=\l__mermap_tmpa_tl,lon=\mrcmapwest)
coordinate (mermap_temp)
node[right=1mm,inner~sep=0.5pt,black!50!gray,font=\l__mermap_network_font_tl,
fill=white,opacity=0.3,text~opacity=1,
- ]{\mrcformlat{\l_tmpa_tl}}
+ ]{\mrcformlat{\l__mermap_tmpa_tl}}
-- (mermap_temp -| mrcmap.east)
node[left=1mm,inner~sep=0.5pt,black!50!gray,font=\l__mermap_network_font_tl,
fill=white,opacity=0.3,text~opacity=1,
- ]{\mrcformlat{\l_tmpa_tl}}
+ ]{\mrcformlat{\l__mermap_tmpa_tl}}
;
- \fp_add:Nn \l_tmpa_fp {\l__mermap_result_fp}
+ \fp_add:Nn \l__mermap_tmpa_fp {\l__mermap_result_fp}
}
\__mermap_compute_network_step:nn {\l__mermap_tex_width_fp}{\l__mermap_mapeast_fp-\l__mermap_mapwest_fp}
- \fp_set:Nn \l_tmpa_fp { ceil(\l__mermap_mapwest_fp/\l__mermap_result_fp)*\l__mermap_result_fp}
- \fp_compare:nNnT {\l_tmpa_fp-\l__mermap_mapwest_fp} < {1e-10}
+ \fp_set:Nn \l__mermap_tmpa_fp { ceil(\l__mermap_mapwest_fp/\l__mermap_result_fp)*\l__mermap_result_fp}
+ \fp_compare:nNnT {\l__mermap_tmpa_fp-\l__mermap_mapwest_fp} < {1e-10}
{
- \fp_add:Nn \l_tmpa_fp {\l__mermap_result_fp}
+ \fp_add:Nn \l__mermap_tmpa_fp {\l__mermap_result_fp}
}
- \fp_while_do:nNnn {\l_tmpa_fp} < {\l__mermap_mapeast_fp}
+ \fp_while_do:nNnn {\l__mermap_tmpa_fp} < {\l__mermap_mapeast_fp}
{
- \tl_set:Nn \l_tmpa_tl {\fp_use:N\l_tmpa_fp}
- \draw[gray,very~thin] (mrc~cs\c_colon_str lon=\l_tmpa_tl,lat=\mrcmapsouth)
+ \tl_set:Nn \l__mermap_tmpa_tl {\fp_use:N\l__mermap_tmpa_fp}
+ \draw[gray,very~thin] (mrc~cs\c_colon_str lon=\l__mermap_tmpa_tl,lat=\mrcmapsouth)
coordinate (mermap_temp)
node[above=1mm,inner~sep=0.5pt,black!50!gray,font=\l__mermap_network_font_tl,
fill=white,opacity=0.3,text~opacity=1,
- ]{\mrcformlon{\l_tmpa_tl}}
+ ]{\mrcformlon{\l__mermap_tmpa_tl}}
-- (mermap_temp |- mrcmap.north)
node[below=1mm,inner~sep=0.5pt,black!50!gray,font=\l__mermap_network_font_tl,
fill=white,opacity=0.3,text~opacity=1,
- ]{\mrcformlon{\l_tmpa_tl}}
+ ]{\mrcformlon{\l__mermap_tmpa_tl}}
;
- \fp_add:Nn \l_tmpa_fp {\l__mermap_result_fp}
+ \fp_add:Nn \l__mermap_tmpa_fp {\l__mermap_result_fp}
}
\end{scope}
}
@@ -1488,26 +1541,26 @@
\cs_new_nopar:Npn \__mermap_pretty_distance:n #1
{
- \fp_set:Nn \l_tmpa_fp { #1 }
- \fp_compare:nNnTF \l_tmpa_fp < 5
+ \fp_set:Nn \l__mermap_tmpa_fp { #1 }
+ \fp_compare:nNnTF \l__mermap_tmpa_fp < 5
{
- \SI[round-mode=figures,round-precision=3,detect-all]{\fp_to_decimal:n{1000*\l_tmpa_fp}}{\meter}
+ \SI[round-mode=figures,round-precision=3,detect-all]{\fp_to_decimal:n{1000*\l__mermap_tmpa_fp}}{\meter}
}
{
- \SI[round-mode=figures,round-precision=3,detect-all]{\fp_to_decimal:N \l_tmpa_fp}{\kilo\meter}
+ \SI[round-mode=figures,round-precision=3,detect-all]{\fp_to_decimal:N \l__mermap_tmpa_fp}{\kilo\meter}
}
}
\cs_new_nopar:Npn \__mermap_pretty_length:n #1
{
- \fp_set:Nn \l_tmpa_fp { (#1)*\l__mermap_scale_fp }
- \fp_compare:nNnTF \l_tmpa_fp < 5
+ \fp_set:Nn \l__mermap_tmpa_fp { (#1)*\l__mermap_scale_fp }
+ \fp_compare:nNnTF \l__mermap_tmpa_fp < 5
{
- \SI[round-mode=figures,round-precision=3,detect-all]{\fp_to_decimal:n{1000*\l_tmpa_fp}}{\meter}
+ \SI[round-mode=figures,round-precision=3,detect-all]{\fp_to_decimal:n{1000*\l__mermap_tmpa_fp}}{\meter}
}
{
- \SI[round-mode=figures,round-precision=3,detect-all]{\fp_to_decimal:N \l_tmpa_fp}{\kilo\meter}
+ \SI[round-mode=figures,round-precision=3,detect-all]{\fp_to_decimal:N \l__mermap_tmpa_fp}{\kilo\meter}
}
}
@@ -1535,25 +1588,25 @@
\cs_new_nopar:Npn \__mermap_format_angle_minute:n #1
{
- \fp_set:Nn \l_tmpa_fp {floor(#1)}
- \fp_set:Nn \l_tmpb_fp {round((#1-\l_tmpa_fp)*60)}
+ \fp_set:Nn \l__mermap_tmpa_fp {floor(#1)}
+ \fp_set:Nn \l__mermap_tmpb_fp {round((#1-\l__mermap_tmpa_fp)*60)}
\ang[add-arc-degree-zero,add-arc-minute-zero]
{
- \fp_to_int:N \l_tmpa_fp ;
- \fp_to_int:N \l_tmpb_fp ;
+ \fp_to_int:N \l__mermap_tmpa_fp ;
+ \fp_to_int:N \l__mermap_tmpb_fp ;
}
}
\cs_new_nopar:Npn \__mermap_format_angle_second:n #1
{
- \fp_set:Nn \l_tmpa_fp {floor(#1)}
- \fp_set:Nn \l_tmpb_fp {floor((#1-\l_tmpa_fp)*60)}
+ \fp_set:Nn \l__mermap_tmpa_fp {floor(#1)}
+ \fp_set:Nn \l__mermap_tmpb_fp {floor((#1-\l__mermap_tmpa_fp)*60)}
\ang[add-arc-degree-zero,add-arc-minute-zero]
{
- \fp_to_int:N \l_tmpa_fp ;
- \fp_to_int:N \l_tmpb_fp ;
- \fp_to_int:n {round(((#1-\l_tmpa_fp)*60-\l_tmpb_fp)*60)}
+ \fp_to_int:N \l__mermap_tmpa_fp ;
+ \fp_to_int:N \l__mermap_tmpb_fp ;
+ \fp_to_int:n {round(((#1-\l__mermap_tmpa_fp)*60-\l__mermap_tmpb_fp)*60)}
}
}
@@ -1562,14 +1615,14 @@
\group_begin:
\IfNoValueF {#1}
{ \keys_set:nn { mermap } {#1} }
- \fp_set:Nn \l_tmpa_fp {#2}
- \fp_compare:nNnTF \l_tmpa_fp < 0
+ \fp_set:Nn \l__mermap_tmpa_fp {#2}
+ \fp_compare:nNnTF \l__mermap_tmpa_fp < 0
{
- \tl_set:Nx \l__mermap_temp_tl {\fp_to_decimal:n{-\l_tmpa_fp}}
+ \tl_set:Nx \l__mermap_temp_tl {\fp_to_decimal:n{-\l__mermap_tmpa_fp}}
\__mermap_format_south:n {\__mermap_format_angle:n{\l__mermap_temp_tl}}
}
{
- \tl_set:Nx \l__mermap_temp_tl {\fp_to_decimal:N \l_tmpa_fp}
+ \tl_set:Nx \l__mermap_temp_tl {\fp_to_decimal:N \l__mermap_tmpa_fp}
\__mermap_format_north:n {\__mermap_format_angle:n{\l__mermap_temp_tl}}
}
\group_end:
@@ -1580,14 +1633,14 @@
\group_begin:
\IfNoValueF {#1}
{ \keys_set:nn { mermap } {#1} }
- \fp_set:Nn \l_tmpa_fp {#2-360*floor((#2+180)/360)}
- \fp_compare:nNnTF \l_tmpa_fp < 0
+ \fp_set:Nn \l__mermap_tmpa_fp {#2-360*floor((#2+180)/360)}
+ \fp_compare:nNnTF \l__mermap_tmpa_fp < 0
{
- \tl_set:Nx \l__mermap_temp_tl {\fp_to_decimal:n{-\l_tmpa_fp}}
+ \tl_set:Nx \l__mermap_temp_tl {\fp_to_decimal:n{-\l__mermap_tmpa_fp}}
\__mermap_format_west:n{\__mermap_format_angle:n{\l__mermap_temp_tl}}
}
{
- \tl_set:Nx \l__mermap_temp_tl {\fp_to_decimal:N \l_tmpa_fp}
+ \tl_set:Nx \l__mermap_temp_tl {\fp_to_decimal:N \l__mermap_tmpa_fp}
\__mermap_format_east:n {\__mermap_format_angle:n{\l__mermap_temp_tl}}
}
\group_end:
@@ -1608,22 +1661,22 @@
{
\tl_if_empty:nTF {#5}
{
- \fp_set:Nn \l_tmpa_fp {0}
- \fp_set:Nn \l_tmpb_fp {0}
+ \fp_set:Nn \l__mermap_tmpa_fp {0}
+ \fp_set:Nn \l__mermap_tmpb_fp {0}
}
{
- \fp_set:Nn \l_tmpa_fp {#3*(#5)}
+ \fp_set:Nn \l__mermap_tmpa_fp {#3*(#5)}
\tl_if_empty:nTF {#6}
{
- \fp_set:Nn \l_tmpb_fp {#4*(#5)}
+ \fp_set:Nn \l__mermap_tmpb_fp {#4*(#5)}
}
{
- \fp_set:Nn \l_tmpb_fp {#4*(#6)}
+ \fp_set:Nn \l__mermap_tmpb_fp {#4*(#6)}
}
}
\tl_set:Nx \l__mermap_scalebar_at_tl
{
- {([xshift=\fp_to_dim:N\l_tmpa_fp,yshift=\fp_to_dim:N\l_tmpb_fp]mrcmap.#1)}
+ {([xshift=\fp_to_dim:N\l__mermap_tmpa_fp,yshift=\fp_to_dim:N\l__mermap_tmpb_fp]mrcmap.#1)}
}
\tl_set:Nn \l__mermap_scalebar_placement_tl {#2}
}
@@ -1691,60 +1744,56 @@
\begin{scope}[shift=(mrcscalebar.south~west)]
\__mermap_tikz_path_begin:n { fill=black, mrcscalebarmajor }
\pgfseteorule
- \fp_set:Nn \l_tmpa_fp {\l__mermap_scalebar_width_fp/\l__mermap_scale_fp} % Breite
+ \fp_set:Nn \l__mermap_tmpa_fp {\l__mermap_scalebar_width_fp/\l__mermap_scale_fp} % Breite
\pgfpathrectangle{\pgfpoint{0pt}{0pt}}
- {\pgfpoint{\fp_to_dim:N\l_tmpa_fp}{\l__mermap_scalebar_height_dim}}
+ {\pgfpoint{\fp_to_dim:N\l__mermap_tmpa_fp}{\l__mermap_scalebar_height_dim}}
\bool_if:NF \l__mermap_scalebar_transparent_bool
{
\__mermap_tikz_path_end:
\__mermap_tikz_path_begin:n { fill=white, mrcscalebarminor }
- \fp_set:Nn \l_tmpa_fp {\l__mermap_scalebar_width_fp/\l__mermap_scale_fp}
+ \fp_set:Nn \l__mermap_tmpa_fp {\l__mermap_scalebar_width_fp/\l__mermap_scale_fp}
}
- \fp_set:Nn \l_tmpb_fp {\l_tmpa_fp/\l__mermap_scalebar_partitions_int}
+ \fp_set:Nn \l__mermap_tmpb_fp {\l__mermap_tmpa_fp/\l__mermap_scalebar_partitions_int}
\bool_if:NTF \l__mermap_scalebar_double_bool
{
- \int_set:Nn \l_tmpa_int {1}
- \dim_set:Nn \l_tmpb_dim {\l__mermap_scalebar_height_dim/2}
- \dim_set:Nn \l_tmpa_dim {0.2pt-\l_tmpb_dim}
+ \dim_set:Nn \l__mermap_tmpb_dim {\l__mermap_scalebar_height_dim/2}
+ \dim_set:Nn \l__mermap_tmpa_dim {0.2pt-\l__mermap_tmpb_dim}
\int_compare:nNnTF \l__mermap_scalebar_partitions_int = 1
{
- \pgfpathrectangle{\pgfpoint{0.2pt}{\l_tmpb_dim}}
- {\pgfpoint{\fp_to_dim:n{\l_tmpb_fp-0.4pt}}{\l_tmpa_dim}}
+ \pgfpathrectangle{\pgfpoint{0.2pt}{\l__mermap_tmpb_dim}}
+ {\pgfpoint{\fp_to_dim:n{\l__mermap_tmpb_fp-0.4pt}}{\l__mermap_tmpa_dim}}
}
{
- \pgfpathrectangle{\pgfpoint{0.2pt}{\l_tmpb_dim}}
- {\pgfpoint{\fp_to_dim:n{\l_tmpb_fp-0.2pt}}{\l_tmpa_dim}}
+ \pgfpathrectangle{\pgfpoint{0.2pt}{\l__mermap_tmpb_dim}}
+ {\pgfpoint{\fp_to_dim:n{\l__mermap_tmpb_fp-0.2pt}}{\l__mermap_tmpa_dim}}
}
- \int_while_do:nNnn \l_tmpa_int < \l__mermap_scalebar_partitions_int
+ \int_step_inline:nn { \l__mermap_scalebar_partitions_int-1 }
{
- \dim_set:Nn \l_tmpa_dim {-\l_tmpa_dim}
- \int_compare:nNnTF {\l_tmpa_int+1} = \l__mermap_scalebar_partitions_int
+ \dim_set:Nn \l__mermap_tmpa_dim {-\l__mermap_tmpa_dim}
+ \int_compare:nNnTF {##1+1} = \l__mermap_scalebar_partitions_int
{
- \pgfpathrectangle{\pgfpoint{\fp_to_dim:n{\l_tmpa_int*\l_tmpb_fp}}{\l_tmpb_dim}}
- {\pgfpoint{\fp_to_dim:n{\l_tmpb_fp-0.2pt}}{\l_tmpa_dim}}
+ \pgfpathrectangle{\pgfpoint{\fp_to_dim:n{##1*\l__mermap_tmpb_fp}}{\l__mermap_tmpb_dim}}
+ {\pgfpoint{\fp_to_dim:n{\l__mermap_tmpb_fp-0.2pt}}{\l__mermap_tmpa_dim}}
}
{
- \pgfpathrectangle{\pgfpoint{\fp_to_dim:n{\l_tmpa_int*\l_tmpb_fp}}{\l_tmpb_dim}}
- {\pgfpoint{\fp_to_dim:N\l_tmpb_fp}{\l_tmpa_dim}}
+ \pgfpathrectangle{\pgfpoint{\fp_to_dim:n{##1*\l__mermap_tmpb_fp}}{\l__mermap_tmpb_dim}}
+ {\pgfpoint{\fp_to_dim:N\l__mermap_tmpb_fp}{\l__mermap_tmpa_dim}}
}
- \int_incr:N \l_tmpa_int
}
}
{
- \int_set:Nn \l_tmpa_int {1}
- \dim_set:Nn \l_tmpa_dim {\l__mermap_scalebar_height_dim-0.4pt}
- \int_while_do:nNnn \l_tmpa_int < \l__mermap_scalebar_partitions_int
+ \dim_set:Nn \l__mermap_tmpa_dim {\l__mermap_scalebar_height_dim-0.4pt}
+ \int_step_inline:nnnn { 1 }{ 2 }{ \l__mermap_scalebar_partitions_int-1 }
{
- \int_compare:nNnTF {\l_tmpa_int+1} = \l__mermap_scalebar_partitions_int
+ \int_compare:nNnTF {##1+1} = \l__mermap_scalebar_partitions_int
{
- \pgfpathrectangle{\pgfpoint{\fp_to_dim:n{\l_tmpa_int*\l_tmpb_fp}}{0.2pt}}
- {\pgfpoint{\fp_to_dim:n{\l_tmpb_fp-0.2pt}}{\l_tmpa_dim}}
+ \pgfpathrectangle{\pgfpoint{\fp_to_dim:n{##1*\l__mermap_tmpb_fp}}{0.2pt}}
+ {\pgfpoint{\fp_to_dim:n{\l__mermap_tmpb_fp-0.2pt}}{\l__mermap_tmpa_dim}}
}
{
- \pgfpathrectangle{\pgfpoint{\fp_to_dim:n{\l_tmpa_int*\l_tmpb_fp}}{0.2pt}}
- {\pgfpoint{\fp_to_dim:N\l_tmpb_fp}{\l_tmpa_dim}}
+ \pgfpathrectangle{\pgfpoint{\fp_to_dim:n{##1*\l__mermap_tmpb_fp}}{0.2pt}}
+ {\pgfpoint{\fp_to_dim:N\l__mermap_tmpb_fp}{\l__mermap_tmpa_dim}}
}
- \int_add:Nn \l_tmpa_int {2}
}
}
\__mermap_tikz_path_end:
@@ -2032,53 +2081,53 @@
\__mermap_new_marker_type:nn {pin}
{
- \tl_set:Nx \l_tmpa_tl {\fp_to_dim:N \l__mermap_marker_distance_fp}
+ \tl_set:Nx \l__mermap_tmpa_tl {\fp_to_dim:N \l__mermap_marker_distance_fp}
\path[fill=mrcmarkerfill,draw=none,fill~opacity=0.7]
- (0,0) -- (0.1,\l_tmpa_tl) -- (-0.1,\l_tmpa_tl) -- cycle;
+ (0,0) -- (0.1,\l__mermap_tmpa_tl) -- (-0.1,\l__mermap_tmpa_tl) -- cycle;
\node[fill=white,draw=none,text=mrcmarkertext,
above,font=\mrcmarkerfont,inner~sep=0.5mm,align=center,
line~width=0mm,xshift=\mrcmarkershift,
fill~opacity=0.7,text~opacity=1,xshift=0mm,mrcnodestyle,mrchyperpath]
- (pin_node) at (0,\l_tmpa_tl) {\mrcmarkercontents};
+ (pin_node) at (0,\l__mermap_tmpa_tl) {\mrcmarkercontents};
\path[draw=mrcmarkerdraw,fill=none,line~join=round,mrcpathstyle]
- (0,0) -- (0.1,\l_tmpa_tl) -- (pin_node.south~east) -- (pin_node.north~east)
+ (0,0) -- (0.1,\l__mermap_tmpa_tl) -- (pin_node.south~east) -- (pin_node.north~east)
-- (pin_node.north~west) -- (pin_node.south~west)
- -- (-0.1,\l_tmpa_tl) [line~join=bevel] -- cycle;
+ -- (-0.1,\l__mermap_tmpa_tl) [line~join=bevel] -- cycle;
}
\__mermap_new_marker_type:nn {pinflip}
{
- \tl_set:Nx \l_tmpa_tl {\fp_to_dim:N \l__mermap_marker_distance_fp}
+ \tl_set:Nx \l__mermap_tmpa_tl {\fp_to_dim:N \l__mermap_marker_distance_fp}
\path[fill=mrcmarkerfill,draw=none,fill~opacity=0.7]
- (0,0) -- (-0.1,-\l_tmpa_tl) -- (0.1,-\l_tmpa_tl) -- cycle;
+ (0,0) -- (-0.1,-\l__mermap_tmpa_tl) -- (0.1,-\l__mermap_tmpa_tl) -- cycle;
\node[fill=white,draw=none,text=mrcmarkertext,
below,font=\mrcmarkerfont,inner~sep=0.5mm,align=center,
line~width=0mm,xshift=\mrcmarkershift,
fill~opacity=0.7,text~opacity=1,xshift=0mm,mrcnodestyle,mrchyperpath]
- (pin_node) at (0,-\l_tmpa_tl) {\mrcmarkercontents};
+ (pin_node) at (0,-\l__mermap_tmpa_tl) {\mrcmarkercontents};
\path[draw=mrcmarkerdraw,fill=none,line~join=round,mrcpathstyle]
- (0,0) -- (-0.1,-\l_tmpa_tl) -- (pin_node.north~west) -- (pin_node.south~west)
+ (0,0) -- (-0.1,-\l__mermap_tmpa_tl) -- (pin_node.north~west) -- (pin_node.south~west)
-- (pin_node.south~east) -- (pin_node.north~east)
- -- (0.1,-\l_tmpa_tl) [line~join=bevel] -- cycle;
+ -- (0.1,-\l__mermap_tmpa_tl) [line~join=bevel] -- cycle;
}
\cs_new_nopar:Npn \__mermap_tikz_drop_path:n #1
{
- \tl_set:Nn \l_tmpa_tl {\fp_to_dim:N\l__mermap_marker_radius_fp}
- \tl_set:Nn \l_tmpb_tl {\fp_to_dim:n{\l__mermap_marker_radius_fp*0.552}}
+ \tl_set:Nn \l__mermap_tmpa_tl {\fp_to_dim:N\l__mermap_marker_radius_fp}
+ \tl_set:Nn \l__mermap_tmpb_tl {\fp_to_dim:n{\l__mermap_marker_radius_fp*0.552}}
\__mermap_tikz_path_begin:n
{
line~join=bevel,draw=mrcmarkerdraw,fill=mrcmarkerfill,mrcpathstyle,mrchyperpath
}
\pgfpathmoveto{\pgfpoint{0pt}{\fp_to_dim:n{-2*\l__mermap_marker_radius_fp-\l__mermap_marker_shift_fp}}}
- \pgfpathcurveto{\pgfpoint{\l_tmpb_tl}{-\l_tmpa_tl}}{\pgfpoint{\l_tmpa_tl}{-\l_tmpb_tl}}
- {\pgfpoint{\l_tmpa_tl}{0pt}}
- \pgfpathcurveto{\pgfpoint{\l_tmpa_tl}{\l_tmpb_tl}}{\pgfpoint{\l_tmpb_tl}{\l_tmpa_tl}}
- {\pgfpoint{0pt}{\l_tmpa_tl}}
- \pgfpathcurveto{\pgfpoint{-\l_tmpb_tl}{\l_tmpa_tl}}{\pgfpoint{-\l_tmpa_tl}{\l_tmpb_tl}}
- {\pgfpoint{-\l_tmpa_tl}{0pt}}
- \pgfpathcurveto{\pgfpoint{-\l_tmpa_tl}{-\l_tmpb_tl}}{\pgfpoint{-\l_tmpb_tl}{-\l_tmpa_tl}}
+ \pgfpathcurveto{\pgfpoint{\l__mermap_tmpb_tl}{-\l__mermap_tmpa_tl}}{\pgfpoint{\l__mermap_tmpa_tl}{-\l__mermap_tmpb_tl}}
+ {\pgfpoint{\l__mermap_tmpa_tl}{0pt}}
+ \pgfpathcurveto{\pgfpoint{\l__mermap_tmpa_tl}{\l__mermap_tmpb_tl}}{\pgfpoint{\l__mermap_tmpb_tl}{\l__mermap_tmpa_tl}}
+ {\pgfpoint{0pt}{\l__mermap_tmpa_tl}}
+ \pgfpathcurveto{\pgfpoint{-\l__mermap_tmpb_tl}{\l__mermap_tmpa_tl}}{\pgfpoint{-\l__mermap_tmpa_tl}{\l__mermap_tmpb_tl}}
+ {\pgfpoint{-\l__mermap_tmpa_tl}{0pt}}
+ \pgfpathcurveto{\pgfpoint{-\l__mermap_tmpa_tl}{-\l__mermap_tmpb_tl}}{\pgfpoint{-\l__mermap_tmpb_tl}{-\l__mermap_tmpa_tl}}
{\pgfpoint{0pt}{\fp_to_dim:n{-2*\l__mermap_marker_radius_fp-\l__mermap_marker_shift_fp}}}
\pgfpathclose
#1
@@ -2089,14 +2138,14 @@
{
\node[circle,inner~sep=0pt,font=\mrcmarkerfont,text=mrcmarkertext,mrcnodestyle]
{
- \hbox_set:Nn \l_tmpa_box {\mrcmarkercontents}
- \fp_compare:nNnT {\box_wd:N \l_tmpa_box} > {1.5*\l__mermap_marker_radius_fp}
+ \hbox_set:Nn \l__mermap_tmpa_box {\mrcmarkercontents}
+ \fp_compare:nNnT {\box_wd:N \l__mermap_tmpa_box} > {1.5*\l__mermap_marker_radius_fp}
{
- \box_resize_to_wd_and_ht:Nnn \l_tmpa_box
+ \box_resize_to_wd_and_ht:Nnn \l__mermap_tmpa_box
{\fp_to_dim:n {1.5*\l__mermap_marker_radius_fp}}
- {\box_ht:N \l_tmpa_box}
+ {\box_ht:N \l__mermap_tmpa_box}
}
- \box_use_drop:N \l_tmpa_box
+ \box_use_drop:N \l__mermap_tmpa_box
};
}
@@ -2153,22 +2202,22 @@
\__mermap_new_marker_type:nn {ringx}
{
- \tl_set:Nn \l_tmpa_tl {\fp_to_dim:N\l__mermap_marker_radius_fp}
+ \tl_set:Nn \l__mermap_tmpa_tl {\fp_to_dim:N\l__mermap_marker_radius_fp}
\path[draw=mrcmarkerdraw,very~thin]
- (45 \c_colon_str \l_tmpa_tl)--(225\c_colon_str \l_tmpa_tl)
- (135\c_colon_str \l_tmpa_tl)--(315\c_colon_str \l_tmpa_tl);
+ (45 \c_colon_str \l__mermap_tmpa_tl)--(225\c_colon_str \l__mermap_tmpa_tl)
+ (135\c_colon_str \l__mermap_tmpa_tl)--(315\c_colon_str \l__mermap_tmpa_tl);
\path[draw=mrcmarkerdraw,fill=mrcmarkerfill,mrcpathstyle,mrchyperpath,even~odd~rule]
- circle (\l_tmpa_tl) circle (\fp_to_dim:N\l__mermap_marker_inner_radius_fp);
+ circle (\l__mermap_tmpa_tl) circle (\fp_to_dim:N\l__mermap_marker_inner_radius_fp);
}
\__mermap_new_marker_type:nn {markx}
{
- \tl_set:Nn \l_tmpa_tl {\fp_to_dim:N\l__mermap_marker_radius_fp}
+ \tl_set:Nn \l__mermap_tmpa_tl {\fp_to_dim:N\l__mermap_marker_radius_fp}
\path[line~join=bevel,draw=mrcmarkerdraw,fill=mrcmarkerfill,mrcpathstyle,mrchyperpath]
- (0,0) -- (35 \c_colon_str \l_tmpa_tl) -- (55 \c_colon_str \l_tmpa_tl) -- cycle
- (0,0) -- (125 \c_colon_str \l_tmpa_tl) -- (145 \c_colon_str \l_tmpa_tl) -- cycle
- (0,0) -- (215 \c_colon_str \l_tmpa_tl) -- (235 \c_colon_str \l_tmpa_tl) -- cycle
- (0,0) -- (305 \c_colon_str \l_tmpa_tl) -- (325 \c_colon_str \l_tmpa_tl) -- cycle;
+ (0,0) -- (35 \c_colon_str \l__mermap_tmpa_tl) -- (55 \c_colon_str \l__mermap_tmpa_tl) -- cycle
+ (0,0) -- (125 \c_colon_str \l__mermap_tmpa_tl) -- (145 \c_colon_str \l__mermap_tmpa_tl) -- cycle
+ (0,0) -- (215 \c_colon_str \l__mermap_tmpa_tl) -- (235 \c_colon_str \l__mermap_tmpa_tl) -- cycle
+ (0,0) -- (305 \c_colon_str \l__mermap_tmpa_tl) -- (325 \c_colon_str \l__mermap_tmpa_tl) -- cycle;
}
@@ -2269,12 +2318,21 @@
\fp_new:N \l__mermap_b_x_fp
\fp_new:N \l__mermap_b_y_fp
\fp_new:N \l__mermap_b_z_fp
+\fp_new:N \l__mermap_alpha_fp
\fp_new:N \l__mermap_delta_lambda_fp
\fp_new:N \l__mermap_delta_phi_fp
+\fp_new:N \l__mermap_n_x_fp
+\fp_new:N \l__mermap_n_y_fp
+\fp_new:N \l__mermap_n_z_fp
\fp_new:N \l__mermap_psi_fp
+\fp_new:N \l__mermap_sin_psi_fp
+\fp_new:N \l__mermap_t_fp
+\fp_new:N \l__mermap_t_psi_fp
\fp_new:N \l__mermap_t_x_fp
\fp_new:N \l__mermap_t_y_fp
\fp_new:N \l__mermap_t_z_fp
+\fp_const:Nn \c__mermap_linearization_threshold_fp { 10e-9 }
+\bool_new:N \l__mermap_linearization_bool
\int_new:N \l__mermap_samples_int
@@ -2309,41 +2367,86 @@
}
-\cs_new:Npn \__mermap_draw_orthodrome:nnnnn #1#2#3#4#5
+\cs_new_protected:Npn \__mermap_draw_orthodrome:nnnnn #1#2#3#4#5
{
\__mermap_tikz_path_begin:n { draw,mermap_every_route,#1 }
- \fp_set:Nn \l__mermap_a_x_fp { cosd(#3)*cosd(#2) }
- \fp_set:Nn \l__mermap_a_y_fp { sind(#3)*cosd(#2) }
- \fp_set:Nn \l__mermap_a_z_fp { sind(#2) }
- \fp_set:Nn \l__mermap_b_x_fp { cosd(#5)*cosd(#4) }
- \fp_set:Nn \l__mermap_b_y_fp { sind(#5)*cosd(#4) }
- \fp_set:Nn \l__mermap_b_z_fp { sind(#4) }
-
- \fp_set:Nn \l_tmpa_fp { sind(#2)*sind(#4) + cosd(#2)*cosd(#4)*cosd(#5-(#3)) }
- \fp_set:Nn \l__mermap_psi_fp { acosd(\l_tmpa_fp) }
- \fp_set:Nn \l_tmpb_fp { sind(\l__mermap_psi_fp) }
-
- \fp_set:Nn \l__mermap_b_x_fp { (\l__mermap_b_x_fp - \l_tmpa_fp*\l__mermap_a_x_fp)/\l_tmpb_fp }
- \fp_set:Nn \l__mermap_b_y_fp { (\l__mermap_b_y_fp - \l_tmpa_fp*\l__mermap_a_y_fp)/\l_tmpb_fp }
- \fp_set:Nn \l__mermap_b_z_fp { (\l__mermap_b_z_fp - \l_tmpa_fp*\l__mermap_a_z_fp)/\l_tmpb_fp }
-
- \__mermap_pgf_moveto_point:nn {#2}{#3}
- \int_set:Nn \l_tmpa_int {1}
- \int_until_do:nNnn \l_tmpa_int > \l__mermap_samples_int
- {
- \fp_set:Nn \l_tmpa_fp { \l__mermap_psi_fp*\l_tmpa_int/\l__mermap_samples_int }
- \fp_set:Nn \l_tmpb_fp { sind(\l_tmpa_fp) }
- \fp_set:Nn \l_tmpa_fp { cosd(\l_tmpa_fp) }
- \fp_set:Nn \l__mermap_t_x_fp { \l_tmpa_fp*\l__mermap_a_x_fp + \l_tmpb_fp*\l__mermap_b_x_fp }
- \fp_set:Nn \l__mermap_t_y_fp { \l_tmpa_fp*\l__mermap_a_y_fp + \l_tmpb_fp*\l__mermap_b_y_fp }
- \fp_set:Nn \l__mermap_t_z_fp { \l_tmpa_fp*\l__mermap_a_z_fp + \l_tmpb_fp*\l__mermap_b_z_fp }
- \pgfpathlineto{\__mermap_unit_sphere_point:nnn {\l__mermap_t_x_fp}{\l__mermap_t_y_fp}{\l__mermap_t_z_fp}}
- \int_incr:N \l_tmpa_int
+ \__mermap_setup_orthodrome:nnnn { #2 }{ #3 }{ #4 }{ #5 }
+ \__mermap_pgf_moveto_point:nn { #2 }{ #3 }
+ \int_step_inline:nn { \l__mermap_samples_int }
+ {
+ \__mermap_point_on_orthodrome:n { ##1/\l__mermap_samples_int }
+ \__mermap_pgf_lineto_point:nn{ \l__mermap_cs_lat_fp }{ \l__mermap_cs_lon_fp }
}
\__mermap_tikz_path_end:
}
+\cs_new_protected:Npn \__mermap_setup_orthodrome:nnnn #1#2#3#4
+ {
+ \fp_set:Nn \l__mermap_a_x_fp { cosd(#2)*cosd(#1) }
+ \fp_set:Nn \l__mermap_a_y_fp { sind(#2)*cosd(#1) }
+ \fp_set:Nn \l__mermap_a_z_fp { sind(#1) }
+
+ \fp_set:Nn \l__mermap_b_x_fp { cosd(#4)*cosd(#3) }
+ \fp_set:Nn \l__mermap_b_y_fp { sind(#4)*cosd(#3) }
+ \fp_set:Nn \l__mermap_b_z_fp { sind(#3) }
+
+ \fp_set:Nn \l__mermap_psi_fp { acosd( sind(#1)*sind(#3) + cosd(#1)*cosd(#3)*cosd(#4-(#2)) ) }
+ \fp_set:Nn \l__mermap_sin_psi_fp { sind(\l__mermap_psi_fp) }
+
+ \bool_set:Nn \l__mermap_linearization_bool { \fp_compare_p:nNn \l__mermap_psi_fp < \c__mermap_linearization_threshold_fp }
+ }
+
+
+\cs_new_protected:Npn \__mermap_point_on_orthodrome:n #1
+ {
+ \fp_set:Nn \l__mermap_t_fp { #1 }
+
+ \bool_if:NTF \l__mermap_linearization_bool
+ {
+ \fp_set:Nn \l__mermap_tmpa_fp { 1 - \l__mermap_t_fp }
+ \fp_set_eq:NN \l__mermap_tmpb_fp \l__mermap_t_fp
+ }
+ {
+ \fp_set:Nn \l__mermap_t_psi_fp { \l__mermap_t_fp * \l__mermap_psi_fp }
+ \fp_set:Nn \l__mermap_tmpa_fp { sind( \l__mermap_psi_fp - \l__mermap_t_psi_fp ) / \l__mermap_sin_psi_fp }
+ \fp_set:Nn \l__mermap_tmpb_fp { sind( \l__mermap_t_psi_fp ) / \l__mermap_sin_psi_fp }
+ }
+
+ \fp_set:Nn \l__mermap_t_x_fp { \l__mermap_tmpa_fp*\l__mermap_a_x_fp + \l__mermap_tmpb_fp*\l__mermap_b_x_fp }
+ \fp_set:Nn \l__mermap_t_y_fp { \l__mermap_tmpa_fp*\l__mermap_a_y_fp + \l__mermap_tmpb_fp*\l__mermap_b_y_fp }
+ \fp_set:Nn \l__mermap_t_z_fp { \l__mermap_tmpa_fp*\l__mermap_a_z_fp + \l__mermap_tmpb_fp*\l__mermap_b_z_fp }
+
+ \fp_set:Nn \l__mermap_cs_lat_fp { asind(\l__mermap_t_z_fp) }
+ \fp_set:Nn \l__mermap_cs_lon_fp { sign(\l__mermap_t_y_fp)*acosd(\l__mermap_t_x_fp/sqrt(\l__mermap_t_x_fp^2+\l__mermap_t_y_fp^2)) }
+ }
+
+
+\cs_new_protected:Npn \__mermap_angle_at_orthodrome:
+ {
+ \bool_if:NTF \l__mermap_linearization_bool
+ {
+ \fp_set:Nn \l__mermap_alpha_fp { 90 }
+ }
+ {
+ \fp_set:Nn \l__mermap_tmpa_fp { cosd( \l__mermap_psi_fp - \l__mermap_t_psi_fp ) }
+ \fp_set:Nn \l__mermap_tmpb_fp { cosd( \l__mermap_t_psi_fp ) }
+ \fp_set:Nn \l__mermap_n_x_fp { \l__mermap_tmpb_fp*\l__mermap_b_x_fp - \l__mermap_tmpa_fp*\l__mermap_a_x_fp }
+ \fp_set:Nn \l__mermap_n_y_fp { \l__mermap_tmpb_fp*\l__mermap_b_y_fp - \l__mermap_tmpa_fp*\l__mermap_a_y_fp }
+ \fp_set:Nn \l__mermap_n_z_fp { \l__mermap_tmpb_fp*\l__mermap_b_z_fp - \l__mermap_tmpa_fp*\l__mermap_a_z_fp }
+ \fp_set:Nn \l__mermap_tmpa_fp { sqrt( \l__mermap_n_x_fp^2 + \l__mermap_n_y_fp^2 + \l__mermap_n_z_fp^2 ) }
+ \fp_set:Nn \l__mermap_n_x_fp { \l__mermap_n_x_fp / \l__mermap_tmpa_fp }
+ \fp_set:Nn \l__mermap_n_y_fp { \l__mermap_n_y_fp / \l__mermap_tmpa_fp }
+ \fp_set:Nn \l__mermap_n_z_fp { \l__mermap_n_z_fp / \l__mermap_tmpa_fp }
+ \fp_set:Nn \l__mermap_alpha_fp { acosd( \l__mermap_n_y_fp*cosd(\l__mermap_cs_lon_fp) - \l__mermap_n_x_fp*sind(\l__mermap_cs_lon_fp) ) }
+ \fp_compare:nNnT \l__mermap_n_z_fp < 0
+ {
+ \fp_set:Nn \l__mermap_alpha_fp { 360 - \l__mermap_alpha_fp }
+ }
+ }
+ }
+
+
\NewDocumentCommand \mrcdraworthodrome { O{} mmmm }
{
\__mermap_draw_orthodrome:nnnnn {#1}{#2}{#3}{#4}{#5}
@@ -2392,11 +2495,11 @@
\fp_set:Nn \l__mermap_delta_lambda_fp {(#4-(#2))/180*pi}
\fp_compare:nNnTF {abs(\l__mermap_delta_phi_fp)} < {1e-5}
{
- \fp_set:Nn \l_tmpa_fp { tand(#1) }
- \fp_set:Nn \l_tmpb_fp { \l__mermap_delta_lambda_fp*cosd(#1)
- /( 1 + (\l_tmpa_fp + (1+2*\l_tmpa_fp*\l_tmpa_fp)*\l__mermap_delta_phi_fp/3)*\l__mermap_delta_phi_fp/2 ) }
+ \fp_set:Nn \l__mermap_tmpa_fp { tand(#1) }
+ \fp_set:Nn \l__mermap_tmpb_fp { \l__mermap_delta_lambda_fp*cosd(#1)
+ /( 1 + (\l__mermap_tmpa_fp + (1+2*\l__mermap_tmpa_fp*\l__mermap_tmpa_fp)*\l__mermap_delta_phi_fp/3)*\l__mermap_delta_phi_fp/2 ) }
\fp_set:Nn \l__mermap_result_fp {
- sqrt( \l__mermap_delta_phi_fp*\l__mermap_delta_phi_fp + \l_tmpb_fp*\l_tmpb_fp ) }
+ sqrt( \l__mermap_delta_phi_fp*\l__mermap_delta_phi_fp + \l__mermap_tmpb_fp*\l__mermap_tmpb_fp ) }
}
{
\fp_set:Nn \l__mermap_result_fp { abs(\l__mermap_delta_phi_fp)
@@ -2422,11 +2525,314 @@
\NewDocumentCommand \mrcNPprettyloxodistance { mm }
{
- \__mermap_loxo_distance:nnnn {\mrcNPlat{#1}}{\mrcNPlon{#1}}{\mrcNPlat{#2}}{\mrcNPlon{#2}}
+ \__mermap_loxo_distance:nnnn { \mrcNPlat{#1} }{ \mrcNPlon{#1} }{ \mrcNPlat{#2} }{ \mrcNPlon{#2} }
\__mermap_pretty_distance:n { \l__mermap_result_fp }
}
+\cs_new_protected:Npn \__mermap_orthodrome_point:nnn #1#2#3
+ {
+ \__mermap_point_on_orthodrome:n { #3 }
+ \__mermap_set_named_position { #1 }{ \l__mermap_cs_lat_fp }{ \l__mermap_cs_lon_fp }
+ \IfNoValueF { #2 }
+ {
+ \__mermap_angle_at_orthodrome:
+ \cs_set:Npe #2 { \fp_to_decimal:N \l__mermap_alpha_fp }
+ }
+ }
+
+\NewDocumentCommand \mrcNPfromOrthoFraction { mo mm mm m }
+ {
+ \__mermap_setup_orthodrome:nnnn { #3 }{ #4 }{ #5 }{ #6 }
+ \__mermap_orthodrome_point:nnn { #1 }{ #2 }{ #7 }
+ }
+
+\NewDocumentCommand \mrcNPfromOrthoFractionNamed { mo m m m }
+ {
+ \__mermap_setup_orthodrome:nnnn { \mrcNPlat{#3} }{ \mrcNPlon{#3} }{ \mrcNPlat{#4} }{ \mrcNPlon{#4} }
+ \__mermap_orthodrome_point:nnn { #1 }{ #2 }{ #5 }
+ }
+
+\NewDocumentCommand \mrcNPfromOrthoDistance { mo mm mm m }
+ {
+ \__mermap_ortho_distance:nnnn { #3 }{ #4 }{ #5 }{ #6 }
+ \fp_compare:nNnTF \l__mermap_result_fp > { 0.001 }
+ {
+ \__mermap_setup_orthodrome:nnnn { #3 }{ #4 }{ #5 }{ #6 }
+ \__mermap_orthodrome_point:nnn { #1 }{ #2 }{ #7 / \l__mermap_result_fp }
+ }
+ {
+ \__mermap_set_named_position { #1 }{ #3 }{ #4 }
+ \IfNoValueF { #2 }
+ {
+ \cs_set:Npn #2 { 90 }
+ }
+ }
+ }
+
+\NewDocumentCommand \mrcNPfromOrthoDistanceNamed { mo m m m }
+ {
+ \__mermap_ortho_distance:nnnn { \mrcNPlat{#3} }{ \mrcNPlon{#3} }{ \mrcNPlat{#4} }{ \mrcNPlon{#4} }
+ \fp_compare:nNnTF \l__mermap_result_fp > { 0.001 }
+ {
+ \__mermap_setup_orthodrome:nnnn { \mrcNPlat{#3} }{ \mrcNPlon{#3} }{ \mrcNPlat{#4} }{ \mrcNPlon{#4} }
+ \__mermap_orthodrome_point:nnn { #1 }{ #2 }{ #5 / \l__mermap_result_fp }
+ }
+ {
+ \__mermap_set_named_position { #1 }{ \mrcNPlat{#3} }{ \mrcNPlon{#3} }
+ \IfNoValueF { #2 }
+ {
+ \cs_set:Npn #2 { 90 }
+ }
+ }
+ }
+
+
+%---- animations ---------------------------------------------------------------
+
+\bool_new:N \l__mermap_anim_drop_first_frame_bool
+\bool_new:N \l__mermap_anim_drop_last_frame_bool
+
+\fp_new:N \l__mermap_anim_a_lat_fp
+\fp_new:N \l__mermap_anim_a_lon_fp
+\fp_new:N \l__mermap_anim_a_scaledenom_fp
+\fp_new:N \l__mermap_anim_a_time_fp
+\fp_new:N \l__mermap_anim_b_lat_fp
+\fp_new:N \l__mermap_anim_b_lon_fp
+\fp_new:N \l__mermap_anim_b_scaledenom_fp
+\fp_new:N \l__mermap_anim_b_time_fp
+\fp_new:N \l_mermap_anim_angle_fp
+\fp_new:N \l_mermap_anim_lat_fp
+\fp_new:N \l_mermap_anim_lon_fp
+\fp_new:N \l_mermap_anim_scaledenom_fp
+\fp_new:N \l_mermap_anim_time_fp
+
+\int_new:N \l__mermap_anim_final_frame_int
+\int_new:N \l__mermap_anim_frames_int
+\int_new:N \l__mermap_anim_start_frame_int
+\int_new:N \l_mermap_anim_frame_int
+
+\seq_new:N \l__mermap_anim_scaledenom_seq
+
+\tl_new:N \l__mermap_anim_timescale_tl
+\tl_new:N \l__mermap_anim_timewarp_tl
+
+
+\NewExpandableDocumentCommand \mrcTimewarpIdentity { m }
+ {
+ #1
+ }
+
+\NewExpandableDocumentCommand \mrcTimewarpSlowStart { m m }
+ {
+ (#2)^(#1)
+ }
+
+\NewExpandableDocumentCommand \mrcTimewarpSlowFinal { m m }
+ {
+ 1 - (1-#2)^(#1)
+ }
+
+\NewExpandableDocumentCommand \mrcTimewarpSlowStartFinal { m m }
+ {
+ %1 - (1-#2)^(#1)
+ #2 <= 0.5
+ ? (2*(#2))^(#1) / 2
+ : 1 - (2-2*(#2))^(#1) / 2
+ }
+
+
+\NewDocumentEnvironment { mrcAnimation }{ m +b }
+ {
+ \keys_set:nn { mermap/anim }{ #1 }
+
+ \__mermap_anim_autocorrect_scaledenom_seq:
+ \int_compare:nNnT \l__mermap_anim_frames_int < 2
+ {
+ \int_set:Nn \l__mermap_anim_frames_int { 2 }
+ }
+ \bool_if:NTF \l__mermap_anim_drop_first_frame_bool
+ {
+ \int_set:Nn \l__mermap_anim_start_frame_int { 2 }
+ }
+ {
+ \int_set:Nn \l__mermap_anim_start_frame_int { 1 }
+ }
+ \bool_if:NTF \l__mermap_anim_drop_last_frame_bool
+ {
+ \int_set:Nn \l__mermap_anim_final_frame_int { \l__mermap_anim_frames_int-1 }
+ }
+ {
+ \int_set:Nn \l__mermap_anim_final_frame_int { \l__mermap_anim_frames_int }
+ }
+
+ \__mermap_setup_orthodrome:nnnn { \l__mermap_anim_a_lat_fp }{ \l__mermap_anim_a_lon_fp }
+ { \l__mermap_anim_b_lat_fp }{ \l__mermap_anim_b_lon_fp }
+
+ \__mermap_anim_pop_time_scale:NN \l__mermap_anim_a_time_fp \l__mermap_anim_a_scaledenom_fp
+ \__mermap_anim_pop_time_scale:NN \l__mermap_anim_b_time_fp \l__mermap_anim_b_scaledenom_fp
+
+ \int_step_variable:nnNn { \l__mermap_anim_start_frame_int }{ \l__mermap_anim_final_frame_int } \l_mermap_anim_frame_int
+ {
+ \fp_set:Nn \l_mermap_anim_time_fp { (\l_mermap_anim_frame_int-1)/(\l__mermap_anim_frames_int-1) }
+ \fp_set:Nn \l_mermap_anim_time_fp { \l__mermap_anim_timewarp_tl { \l_mermap_anim_time_fp } }
+
+ \__mermap_point_on_orthodrome:n { \l_mermap_anim_time_fp }
+ \fp_set_eq:NN \l_mermap_anim_lat_fp \l__mermap_cs_lat_fp
+ \fp_set_eq:NN \l_mermap_anim_lon_fp \l__mermap_cs_lon_fp
+ \__mermap_set_named_position{ AnimNP }{ \l_mermap_anim_lat_fp }{ \l_mermap_anim_lon_fp }
+
+ \__mermap_angle_at_orthodrome:
+ \fp_set_eq:NN \l_mermap_anim_angle_fp \l__mermap_alpha_fp
+
+ \fp_while_do:nNnn \l_mermap_anim_time_fp > \l__mermap_anim_b_time_fp
+ {
+ \fp_set_eq:NN \l__mermap_anim_a_time_fp \l__mermap_anim_b_time_fp
+ \fp_set_eq:NN \l__mermap_anim_a_scaledenom_fp \l__mermap_anim_b_scaledenom_fp
+ \__mermap_anim_pop_time_scale:NN \l__mermap_anim_b_time_fp \l__mermap_anim_b_scaledenom_fp
+ }
+ \fp_set:Nn \l_mermap_anim_scaledenom_fp
+ {
+ round ( exp (
+ ln(\l__mermap_anim_a_scaledenom_fp) +
+ ( ln(\l__mermap_anim_b_scaledenom_fp)-ln(\l__mermap_anim_a_scaledenom_fp) ) *
+ ( \l_mermap_anim_time_fp-\l__mermap_anim_a_time_fp ) / ( \l__mermap_anim_b_time_fp-\l__mermap_anim_a_time_fp )
+ ) )
+ }
+
+ #2
+ }
+ }{}
+
+
+\cs_new_protected:Npn \__mermap_anim_autocorrect_scaledenom_seq:
+ {
+ \seq_get_left:NN \l__mermap_anim_scaledenom_seq \l__mermap_anim_timescale_tl
+ \bool_lazy_any:nTF
+ {
+ { \seq_if_empty_p:N \l__mermap_anim_scaledenom_seq }
+ { \tl_if_empty_p:N \l__mermap_anim_timescale_tl }
+ { \quark_if_no_value_p:N \l__mermap_anim_timescale_tl }
+ }
+ {
+ \seq_set_split:Nnn \l__mermap_anim_scaledenom_seq { - }{ 0/25000 - 1/25000 },
+ }
+ {
+ \fp_compare:nNnF { \__mermap_anim_use_time:o \l__mermap_anim_timescale_tl } = 0
+ {
+ \seq_put_left:Ne \l__mermap_anim_scaledenom_seq { 0 / \__mermap_anim_use_scale:o \l__mermap_anim_timescale_tl }
+ }
+ }
+ \seq_get_right:NNF \l__mermap_anim_scaledenom_seq \l__mermap_anim_timescale_tl
+ {
+ \msg_error:nn{ mercatormap }{ anim-scaledenom-invalid }
+ }
+ \fp_compare:nNnF { \__mermap_anim_use_time:o \l__mermap_anim_timescale_tl } = 1
+ {
+ \seq_put_right:Ne \l__mermap_anim_scaledenom_seq { 1 / \__mermap_anim_use_scale:o \l__mermap_anim_timescale_tl }
+ }
+ \fp_set:Nn \l__mermap_anim_a_time_fp { -1 }
+ \seq_map_inline:Nn \l__mermap_anim_scaledenom_seq
+ {
+ \fp_set:Nn \l__mermap_anim_b_time_fp { \__mermap_anim_use_time:n { ##1 } }
+ \fp_compare:nNnTF \l__mermap_anim_a_time_fp < \l__mermap_anim_b_time_fp
+ {
+ \fp_set_eq:NN \l__mermap_anim_a_time_fp \l__mermap_anim_b_time_fp
+ }
+ {
+ \msg_error:nn{ mercatormap }{ anim-scaledenom-invalid }
+ }
+ }
+ }
+
+\cs_new_protected:Npn \__mermap_anim_pop_time_scale:NN #1#2
+ {
+ \seq_pop_left:NN \l__mermap_anim_scaledenom_seq \l__mermap_anim_timescale_tl
+ \fp_set:Nn #1 { \__mermap_anim_use_time:o \l__mermap_anim_timescale_tl }
+ \fp_set:Nn #2 { \__mermap_anim_use_scale:o \l__mermap_anim_timescale_tl }
+ }
+
+\msg_new:nnnn{ mercatormap }{ anim-scaledenom-invalid }
+ { The~animation~scale~denominator~sequence~is~invalid. }
+ {
+ Check~\seq_use:Nn \l__mermap_anim_scaledenom_seq { ~-~ }~with~the~documentation.~
+ Time~values~are~not~strictly~monotonically~increasing.
+ }
+
+\cs_new_protected_nopar:Npn \__mermap_anim_set_position:w #1 #2 / #3 \q_stop
+ {
+ \fp_set:cn { l__mermap_anim_#1_lat_fp }{ #2 }
+ \fp_set:cn { l__mermap_anim_#1_lon_fp }{ #3 }
+ }
+
+\cs_new_nopar:Npn \__mermap_anim_use_time:w #1 / #2 \q_stop
+ {
+ #1
+ }
+\cs_new_nopar:Npn \__mermap_anim_use_time:n #1
+ {
+ \__mermap_anim_use_time:w #1 \q_stop
+ }
+\cs_generate_variant:Nn \__mermap_anim_use_time:n { o }
+
+\cs_new_nopar:Npn \__mermap_anim_use_scale:w #1 / #2 \q_stop
+ {
+ #2
+ }
+\cs_new_nopar:Npn \__mermap_anim_use_scale:n #1
+ {
+ \__mermap_anim_use_scale:w #1 \q_stop
+ }
+\cs_generate_variant:Nn \__mermap_anim_use_scale:n { o }
+
+\keys_define:nn { mermap/anim }
+ {
+ start-position .code:n = \__mermap_anim_set_position:w { a } #1 \q_stop,
+ final-position .code:n = \__mermap_anim_set_position:w { b } #1 \q_stop,
+ position .meta:n = { start-position = #1, final-position = #1 },
+ named-start-position .code:n =
+ {
+ \fp_set:Nn \l__mermap_anim_a_lat_fp { \mrcNPlat{ #1 } }
+ \fp_set:Nn \l__mermap_anim_a_lon_fp { \mrcNPlon{ #1 } }
+ },
+ named-final-position .code:n =
+ {
+ \fp_set:Nn \l__mermap_anim_b_lat_fp { \mrcNPlat{ #1 } }
+ \fp_set:Nn \l__mermap_anim_b_lon_fp { \mrcNPlon{ #1 } }
+ },
+ named-position .meta:n = { named-start-position = #1, named-final-position = #1 },
+ frames .int_set:N = \l__mermap_anim_frames_int,
+ drop-first-frame .bool_set:N = \l__mermap_anim_drop_first_frame_bool,
+ drop-last-frame .bool_set:N = \l__mermap_anim_drop_last_frame_bool,
+ drop-no-frame .meta:n = { drop-first-frame=false, drop-last-frame=false },
+ scale-denominators .code:n = \seq_set_split:Nnn \l__mermap_anim_scaledenom_seq { - }{ #1 },
+ common-scale-denominator .meta:n = { scale-denominators = 0/#1 - 1/#1 },
+ timewarp .tl_set:N = \l__mermap_anim_timewarp_tl,
+ timewarp-identity .meta:n = { timewarp = \mrcTimewarpIdentity },
+ timewarp-slow-start .meta:n = { timewarp = \mrcTimewarpSlowStart{#1} },
+ timewarp-slow-start .default:n = 2,
+ timewarp-slow-final .meta:n = { timewarp = \mrcTimewarpSlowFinal{#1} },
+ timewarp-slow-final .default:n = 2,
+ timewarp-slow-start-final .meta:n = { timewarp = \mrcTimewarpSlowStartFinal{#1} },
+ timewarp-slow-start-final .default:n = 2,
+ }
+
+\keys_set:nn { mermap/anim }
+ {
+ position = 51.4779 / 0,
+ frames = 20,
+ drop-no-frame,
+ common-scale-denominator = 25000,
+ timewarp-identity,
+ }
+
+\NewExpandableDocumentCommand\mrcAnimFrame{}{\int_to_arabic:n \l_mermap_anim_frame_int}
+\NewExpandableDocumentCommand\mrcAnimTime{}{\fp_to_decimal:N \l_mermap_anim_time_fp}
+\NewExpandableDocumentCommand\mrcAnimScaleDenom{}{\fp_to_decimal:N \l_mermap_anim_scaledenom_fp}
+\NewExpandableDocumentCommand\mrcAnimLatitude{}{\fp_to_decimal:N \l_mermap_anim_lat_fp}
+\NewExpandableDocumentCommand\mrcAnimLongitude{}{\fp_to_decimal:N \l_mermap_anim_lon_fp}
+\NewExpandableDocumentCommand\mrcAnimAngle{}{\fp_to_decimal:N \l_mermap_anim_angle_fp}
+
%---- supplier -----------------------------------------------------------------
diff --git a/macros/latex/contrib/mercatormap/mercatormap.tex b/macros/latex/contrib/mercatormap/mercatormap.tex
index 882587a3d2..a904cce2f9 100644
--- a/macros/latex/contrib/mercatormap/mercatormap.tex
+++ b/macros/latex/contrib/mercatormap/mercatormap.tex
@@ -2,11 +2,11 @@
% !TeX encoding=UTF-8
% !TeX spellcheck=en_US
%%
-%% The LaTeX package mercatormap - version 1.02 (2020/08/06)
+%% The LaTeX package mercatormap - version 1.2.0 (2024/08/05)
%% mercatormap.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2020 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2020-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -32,8 +32,8 @@
% The following personal API-keys are needed for compilation
% \mrcsetapikey{thunderforest}{YOUR-API-KEY} % registered key
-\def\version{1.02}%
-\def\datum{2020/08/06}%
+\def\version{1.2.0}%
+\def\datum{2024/08/05}%
\mrcactivatescript% activates Python script
@@ -54,9 +54,14 @@
\tikzexternaldisable% for final version
\tcbset{shield externalize}
-\nocite{Sturm:2020,package:tikz,package:xparse,package:siunitx,package:expl3}
+\nocite{Sturm:2020,package:tikz,package:siunitx}
-\pdfsuppresswarningpagegroup=1
+\ExplSyntaxOn
+\cs_if_exist:NT \pdfsuppresswarningpagegroup
+ {
+ \pdfsuppresswarningpagegroup=1
+ }
+\ExplSyntaxOff
%\includeonly{mercatormap.doc.intro}
%\includeonly{mercatormap.doc.examples}
@@ -67,8 +72,8 @@
%\includeonly{mercatormap.doc.marker}
%\includeonly{mercatormap.doc.routes}
%\includeonly{mercatormap.doc.orthodromes}
+%\includeonly{mercatormap.doc.animations}
%\includeonly{mercatormap.doc.limitations}
-%\includeonly{mercatormap.doc.versionhistory}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
@@ -83,8 +88,8 @@
\include{mercatormap.doc.marker}
\include{mercatormap.doc.routes}
\include{mercatormap.doc.orthodromes}
+\include{mercatormap.doc.animations}
\include{mercatormap.doc.limitations}
-\include{mercatormap.doc.versionhistory}
\clearpage
\phantomsection
diff --git a/macros/latex/contrib/mercatormap/mercatorpy.def b/macros/latex/contrib/mercatormap/mercatorpy.def
index 670d8fca3b..0df48609bf 100644
--- a/macros/latex/contrib/mercatormap/mercatorpy.def
+++ b/macros/latex/contrib/mercatormap/mercatorpy.def
@@ -1,19 +1,19 @@
-\begin{filecontents*}[overwrite]{maptiles.texpy}
+\begin{filecontents}[force,noheader,nowarn]{maptiles.texpy}
"""
-The LaTeX package mercatormap - version 1.02 (2020/08/06)
+The LaTeX package mercatormap - version 1.2.0 (2024/08/05)
maptiles.texpy: Python script for map tile download
-------------------------------------------------------------------------------------------
-Copyright (c) 2020 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+Copyright (c) 2020-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
-------------------------------------------------------------------------------------------
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
of this license or (at your option) any later version.
The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008-05-04 or later.
This work has the LPPL maintenance status `author-maintained'.
@@ -28,7 +28,7 @@ from pathlib import Path
from PIL import Image
-packageversion = '1.02 (2020/08/06)'
+packageversion = '1.2.0 (2024/08/05)'
def gd(x):
@@ -531,5 +531,5 @@ if __name__ == '__main__':
print('No url for download given')
mapdef.save_map(args.definition, tiles_success, merge_success, wms_success)
-\end{filecontents*}
+\end{filecontents}
diff --git a/macros/latex/contrib/mercatormap/mercatorsupplier.def b/macros/latex/contrib/mercatormap/mercatorsupplier.def
index 1bf7866b7a..a8063f8135 100644
--- a/macros/latex/contrib/mercatormap/mercatorsupplier.def
+++ b/macros/latex/contrib/mercatormap/mercatorsupplier.def
@@ -1,15 +1,15 @@
-%% The LaTeX package mercatormap - version 1.02 (2020/08/06)
+%% The LaTeX package mercatormap - version 1.2.0 (2024/08/05)
%% mercatorsupplier.def: predefined map supplier list
%%
%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2020 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2020-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
+%% https://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
@@ -46,7 +46,7 @@
attribution = {
Kartendaten:~\textcopyright\nobreakspace\href{https://openstreetmap.org/copyright}{OpenStreetMap}
\ Mitwirkende,~SRTM\nobreakspace\textbar\nobreakspace
- Kartendarstellung:~\textcopyright\nobreakspace\href{http://opentopomap.org/}{OpenTopoMap}
+ Kartendarstellung:~\textcopyright\nobreakspace\href{https://opentopomap.org/}{OpenTopoMap}
\ (\href{https://creativecommons.org/licenses/by-sa/3.0/}{CC-BY-SA})
},
attribution~print = {
@@ -61,12 +61,12 @@
{
__attribution_topplusopen .meta:nn = {mermap/supply} {
attribution = {
- \textcopyright\nobreakspace\href{http://www.bkg.bund.de}{Bundesamt~f\mrcumlaut{u}r~Kartographie~und~Geod\mrcumlaut{a}sie}\nobreakspace\the\year,
- \ \href{http://sg.geodatenzentrum.de/web_public/Datenquellen_TopPlus_Open.pdf}{Datenquellen}
+ Kartendarstellung:\nobreakspace\textcopyright\nobreakspace\href{https://www.bkg.bund.de}{BKG\nobreakspace(\the\year)},
+ \ \href{https://sgx.geodatenzentrum.de/web_public/Datenquellen_TopPlus_Open.pdf}{Datenquellen}
},
attribution~print = {
- \textcopyright\nobreakspace Bundesamt~f\mrcumlaut{u}r~Kartographie~und~Geod\mrcumlaut{a}sie\nobreakspace\the\year,
- \ Datenquellen:~\detokenize{http://sg.geodatenzentrum.de/web_public/Datenquellen_TopPlus_Open.pdf}
+ \textcopyright\nobreakspace BKG\nobreakspace(\the\year),
+ \ Datenquellen:~\detokenize{https://sgx.geodatenzentrum.de/web_public/Datenquellen_TopPlus_Open.pdf}
}
}
}
@@ -85,29 +85,121 @@
basename = tiles/tpo_web_grau,
}
-\cs_new:Npn \__mermap_new_supply_source_topplusopen:n #1
+\__mermap_new_supply_source:nn { topplusopen~web~light }
+ {
+ url = {https://sgx.geodatenzentrum.de/wmts_topplus_open/tile/1.0.0/web_light/default/WEBMERCATOR/{z}/{y}/{x}.png},
+ __attribution_topplusopen,
+ basename = tiles/tpo_web_light,
+ }
+
+\__mermap_new_supply_source:nn { topplusopen~web~light~grau }
+ {
+ url = {https://sgx.geodatenzentrum.de/wmts_topplus_open/tile/1.0.0/web_light_grau/default/WEBMERCATOR/{z}/{y}/{x}.png},
+ __attribution_topplusopen,
+ basename = tiles/tpo_web_light_grau,
+ }
+
+
+\cs_new:Npn \__mermap_new_supply_source_topplusopen:nn #1#2
{
\keys_define:nn { mermap/supply/_source }
{
topplusopen~#1 .meta:nn = {mermap/supply}{
- url = {https://sgx.geodatenzentrum.de/wms_topplus_open?service=wms&version=1.3.0&request=GetMap&Layers=#1&STYLES=default&CRS=EPSG:3857&bbox={xmin},{ymin},{xmax},{ymax}&width={width}&height={height}&Format=image/png},
+ url = {https://sgx.geodatenzentrum.de/wms_topplus_open_#2?service=wms&version=1.3.0&request=GetMap&Layers=#1&STYLES=default&CRS=EPSG:3857&bbox={xmin},{ymin},{xmax},{ymax}&width={width}&height={height}&Format=image/png},
__attribution_topplusopen,
basename = tiles/tpo,
},
topplusopen~#1~grau .meta:nn = {mermap/supply}{
- url = {https://sgx.geodatenzentrum.de/wms_topplus_open?service=wms&version=1.3.0&request=GetMap&Layers=#1_grau&STYLES=default&CRS=EPSG:3857&bbox={xmin},{ymin},{xmax},{ymax}&width={width}&height={height}&Format=image/png},
+ url = {https://sgx.geodatenzentrum.de/wms_topplus_open_#2?service=wms&version=1.3.0&request=GetMap&Layers=#1&STYLES=grau&CRS=EPSG:3857&bbox={xmin},{ymin},{xmax},{ymax}&width={width}&height={height}&Format=image/png},
__attribution_topplusopen,
basename = tiles/tpo,
},
}
}
-\__mermap_new_supply_source_topplusopen:n { p5 }
-\__mermap_new_supply_source_topplusopen:n { p10 }
-\__mermap_new_supply_source_topplusopen:n { p17.5 }
-\__mermap_new_supply_source_topplusopen:n { p25 }
-\__mermap_new_supply_source_topplusopen:n { p50 }
-\__mermap_new_supply_source_topplusopen:n { p100 }
-\__mermap_new_supply_source_topplusopen:n { p250 }
+\__mermap_new_supply_source_topplusopen:nn { p5 }{ p5 }
+\__mermap_new_supply_source_topplusopen:nn { p10 }{ p10 }
+\__mermap_new_supply_source_topplusopen:nn { p17.5 }{ p17 }
+\__mermap_new_supply_source_topplusopen:nn { p25 }{ p25 }
+\__mermap_new_supply_source_topplusopen:nn { p50 }{ p50 }
+\__mermap_new_supply_source_topplusopen:nn { p100 }{ p100 }
+\__mermap_new_supply_source_topplusopen:nn { p250 }{ p250 }
+
+
+\keys_define:nn { mermap/supply }
+ {
+ __attribution_thunderforest .meta:nn = {mermap/supply} {
+ attribution = {
+ Maps~\textcopyright\nobreakspace\href{https://www.thunderforest.com/}{Thunderforest},
+ \ Data~\textcopyright\nobreakspace\href{https://openstreetmap.org/copyright}{OpenStreetMap~contributors}
+ },
+ attribution~print = {
+ Maps~\textcopyright\nobreakspace www.thunderforest.com,
+ \ Data~\textcopyright\nobreakspace www.osm.org/copyright
+ }
+ }
+ }
+\__mermap_new_supply_source:nn { thunderforest~opencyclemap }
+ {
+ url~with~api~key = {https://tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
+ __attribution_thunderforest,
+ basename = tiles/opencyclemap,
+ }
+\__mermap_new_supply_source:nn { thunderforest~transport }
+ {
+ url~with~api~key = {https://tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
+ __attribution_thunderforest,
+ basename = tiles/transport,
+ }
+\__mermap_new_supply_source:nn { thunderforest~landscape }
+ {
+ url~with~api~key = {https://tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
+ __attribution_thunderforest,
+ basename = tiles/landscape,
+ }
+\__mermap_new_supply_source:nn { thunderforest~outdoors }
+ {
+ url~with~api~key = {https://tile.thunderforest.com/outdoors/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
+ __attribution_thunderforest,
+ basename = tiles/outdoors,
+ }
+\__mermap_new_supply_source:nn { thunderforest~atlas }
+ {
+ url~with~api~key = {https://tile.thunderforest.com/atlas/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
+ __attribution_thunderforest,
+ basename = tiles/atlas,
+ }
+\__mermap_new_supply_source:nn { thunderforest~transport-dark }
+ {
+ url~with~api~key = {https://tile.thunderforest.com/transport-dark/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
+ __attribution_thunderforest,
+ basename = tiles/transport-dark,
+ }
+\__mermap_new_supply_source:nn { thunderforest~spinal-map }
+ {
+ url~with~api~key = {https://tile.thunderforest.com/spinal-map/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
+ __attribution_thunderforest,
+ basename = tiles/spinal-map,
+ }
+\__mermap_new_supply_source:nn { thunderforest~pioneer }
+ {
+ url~with~api~key = {https://tile.thunderforest.com/pioneer/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
+ __attribution_thunderforest,
+ basename = tiles/pioneer,
+ }
+\__mermap_new_supply_source:nn { thunderforest~mobile-atlas }
+ {
+ url~with~api~key = {https://tile.thunderforest.com/mobile-atlas/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
+ __attribution_thunderforest,
+ basename = tiles/mobile-atlas,
+ }
+\__mermap_new_supply_source:nn { thunderforest~neighbourhood }
+ {
+ url~with~api~key = {https://tile.thunderforest.com/neighbourhood/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
+ __attribution_thunderforest,
+ basename = tiles/neighbourhood,
+ }
+
+
%% openrouteservice mapsurfer is DISCONTINUED after June 2020
%% Therefore, the following source is DEPRECATED and will be removed in future
@@ -127,7 +219,7 @@
basename = tiles/mapsurfer,
}
-\keys_define:nn { mermap/supply }
+\keys_define:nn { mermap/supply }% DISCONTINUED after July 2023 and DEPRECATED
{
__attribution_stamen .meta:nn = {mermap/supply} {
attribution = {
@@ -144,67 +236,67 @@
}
}
}
-\__mermap_new_supply_source:nn { stamen~terrain }
+\__mermap_new_supply_source:nn { stamen~terrain }% DISCONTINUED after July 2023 and DEPRECATED
{
url = {https://stamen-tiles-a.a.ssl.fastly.net/terrain/{z}/{x}/{y}.png},
__attribution_stamen,
basename = tiles/terrain,
}
-\__mermap_new_supply_source:nn { stamen~terrain-background }
+\__mermap_new_supply_source:nn { stamen~terrain-background }% DISCONTINUED after July 2023 and DEPRECATED
{
url = {https://stamen-tiles-a.a.ssl.fastly.net/terrain-background/{z}/{x}/{y}.png},
__attribution_stamen,
basename = tiles/terrain-background,
}
-\__mermap_new_supply_source:nn { stamen~terrain-labels }
+\__mermap_new_supply_source:nn { stamen~terrain-labels }% DISCONTINUED after July 2023 and DEPRECATED
{
url = {https://stamen-tiles-a.a.ssl.fastly.net/terrain-labels/{z}/{x}/{y}.png},
__attribution_stamen,
basename = tiles/terrain-labels,
}
-\__mermap_new_supply_source:nn { stamen~terrain-lines }
+\__mermap_new_supply_source:nn { stamen~terrain-lines }% DISCONTINUED after July 2023 and DEPRECATED
{
url = {https://stamen-tiles-a.a.ssl.fastly.net/terrain-lines/{z}/{x}/{y}.png},
__attribution_stamen,
basename = tiles/terrain-lines,
}
-\__mermap_new_supply_source:nn { stamen~toner }
+\__mermap_new_supply_source:nn { stamen~toner }% DISCONTINUED after July 2023 and DEPRECATED
{
url = {https://stamen-tiles-a.a.ssl.fastly.net/toner/{z}/{x}/{y}.png},
__attribution_stamen,
basename = tiles/toner,
}
-\__mermap_new_supply_source:nn { stamen~toner-lite }
+\__mermap_new_supply_source:nn { stamen~toner-lite }% DISCONTINUED after July 2023 and DEPRECATED
{
url = {https://stamen-tiles-a.a.ssl.fastly.net/toner-lite/{z}/{x}/{y}.png},
__attribution_stamen,
basename = tiles/toner-lite,
}
-\__mermap_new_supply_source:nn { stamen~toner-hybrid }
+\__mermap_new_supply_source:nn { stamen~toner-hybrid }% DISCONTINUED after July 2023 and DEPRECATED
{
url = {https://stamen-tiles-a.a.ssl.fastly.net/toner-hybrid/{z}/{x}/{y}.png},
__attribution_stamen,
basename = tiles/toner-hybrid,
}
-\__mermap_new_supply_source:nn { stamen~toner-background }
+\__mermap_new_supply_source:nn { stamen~toner-background }% DISCONTINUED after July 2023 and DEPRECATED
{
url = {https://stamen-tiles-a.a.ssl.fastly.net/toner-background/{z}/{x}/{y}.png},
__attribution_stamen,
basename = tiles/toner-background,
}
-\__mermap_new_supply_source:nn { stamen~toner-labels }
+\__mermap_new_supply_source:nn { stamen~toner-labels }% DISCONTINUED after July 2023 and DEPRECATED
{
url = {https://stamen-tiles-a.a.ssl.fastly.net/toner-labels/{z}/{x}/{y}.png},
__attribution_stamen,
basename = tiles/toner-labels,
}
-\__mermap_new_supply_source:nn { stamen~toner-lines }
+\__mermap_new_supply_source:nn { stamen~toner-lines }% DISCONTINUED after July 2023 and DEPRECATED
{
url = {https://stamen-tiles-a.a.ssl.fastly.net/toner-lines/{z}/{x}/{y}.png},
__attribution_stamen,
basename = tiles/toner-lines,
}
-\__mermap_new_supply_source:nn { stamen~watercolor }
+\__mermap_new_supply_source:nn { stamen~watercolor }% DISCONTINUED after July 2023 and DEPRECATED
{
url = {https://stamen-tiles-a.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.png},
attribution = {
@@ -221,72 +313,3 @@
},
basename = tiles/watercolor,
}
-
-\keys_define:nn { mermap/supply }
- {
- __attribution_thunderforest .meta:nn = {mermap/supply} {
- attribution = {
- Maps~\textcopyright\nobreakspace\href{https://www.thunderforest.com/}{Thunderforest},
- \ Data~\textcopyright\nobreakspace\href{https://openstreetmap.org/copyright}{OpenStreetMap~contributors}
- },
- attribution~print = {
- Maps~\textcopyright\nobreakspace www.thunderforest.com,
- \ Data~\textcopyright\nobreakspace www.osm.org/copyright
- }
- }
- }
-\__mermap_new_supply_source:nn { thunderforest~opencyclemap }
- {
- url~with~api~key = {https://tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
- __attribution_thunderforest,
- basename = tiles/opencyclemap,
- }
-\__mermap_new_supply_source:nn { thunderforest~transport }
- {
- url~with~api~key = {https://tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
- __attribution_thunderforest,
- basename = tiles/transport,
- }
-\__mermap_new_supply_source:nn { thunderforest~landscape }
- {
- url~with~api~key = {https://tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
- __attribution_thunderforest,
- basename = tiles/landscape,
- }
-\__mermap_new_supply_source:nn { thunderforest~outdoors }
- {
- url~with~api~key = {https://tile.thunderforest.com/outdoors/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
- __attribution_thunderforest,
- basename = tiles/outdoors,
- }
-\__mermap_new_supply_source:nn { thunderforest~transport-dark }
- {
- url~with~api~key = {https://tile.thunderforest.com/transport-dark/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
- __attribution_thunderforest,
- basename = tiles/transport-dark,
- }
-\__mermap_new_supply_source:nn { thunderforest~spinal-map }
- {
- url~with~api~key = {https://tile.thunderforest.com/spinal-map/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
- __attribution_thunderforest,
- basename = tiles/spinal-map,
- }
-\__mermap_new_supply_source:nn { thunderforest~pioneer }
- {
- url~with~api~key = {https://tile.thunderforest.com/pioneer/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
- __attribution_thunderforest,
- basename = tiles/pioneer,
- }
-\__mermap_new_supply_source:nn { thunderforest~mobile-atlas }
- {
- url~with~api~key = {https://tile.thunderforest.com/mobile-atlas/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
- __attribution_thunderforest,
- basename = tiles/mobile-atlas,
- }
-\__mermap_new_supply_source:nn { thunderforest~neighbourhood }
- {
- url~with~api~key = {https://tile.thunderforest.com/neighbourhood/{z}/{x}/{y}.png?apikey=}{thunderforest}{},
- __attribution_thunderforest,
- basename = tiles/neighbourhood,
- }
-
diff --git a/macros/latex/contrib/minted/CHANGELOG_LATEXMINTED_PYTHON_PACKAGE.md b/macros/latex/contrib/minted/CHANGELOG_LATEXMINTED_PYTHON_PACKAGE.md
new file mode 100644
index 0000000000..1051bcdb83
--- /dev/null
+++ b/macros/latex/contrib/minted/CHANGELOG_LATEXMINTED_PYTHON_PACKAGE.md
@@ -0,0 +1,6 @@
+# Changelog: `latexminted` — Python library for LaTeX minted package
+
+
+## v0.1.0 (2024-09-22)
+
+* Initial release.
diff --git a/macros/latex/contrib/minted/CHANGELOG_MINTED_LATEX_PACKAGE.md b/macros/latex/contrib/minted/CHANGELOG_MINTED_LATEX_PACKAGE.md
new file mode 100644
index 0000000000..308c7adf10
--- /dev/null
+++ b/macros/latex/contrib/minted/CHANGELOG_MINTED_LATEX_PACKAGE.md
@@ -0,0 +1,918 @@
+# Changelog — minted LaTeX package
+
+
+## v3.0.0 (2024/09/22)
+
+* Backward compatibility: The new `minted2` package provides the features of
+ `minted` v2.9, the final release before v3. No additional v2 releases are
+ planned; no changes to the `minted2` package are expected.
+
+* `minted` v3 is a complete rewrite from v2.9. `minted` v3 includes
+ significant changes from `minted` v2 on the LaTeX side, and also uses a new
+ `minted`-specific Python executable called `latexminted` to perform syntax
+ highlighting. This executable is specifically designed to meet the
+ security requirements for restricted shell escape programs. Once it has
+ passed a security review and is accepted by TeX distributions, it will be
+ possible to highlight code without `-shell-escape` and its attendant
+ security vulnerabilities.
+
+ Syntax highlighting is still performed with Pygments, but the `pygmentize`
+ executable included with Pygments is no longer used.
+
+* Installing the `minted` package now also installs the `latexminted` Python
+ executable and all required Python libraries, including Pygments, within
+ your TeX distribution. These require Python >= 3.8. If the default Python
+ version on `PATH` is < 3.8, then the `latexminted` Python executable will
+ attempt to locate a more recent version and run itself with that version in
+ a subprocess.
+
+ Manually installing Python libraries is only necessary if you want to use
+ plugin packages for Pygments. In that case, install the `latexminted`
+ Python package in a Python installation. This automatically installs
+ `latex2pydata`, `latexrestricted`, and Pygments as dependencies.
+ `latexminted` is available from the
+ [Python Package Index (PyPI)](https://pypi.org/project/latexminted/). Then
+ install plugin packages for Pygments within the same Python installation.
+
+* The new `latexminted` Python executable is designed to be compatible with
+ the security requirements for restricted shell escape, so that in the
+ future TeX distributions can enable `latexminted` without requiring
+ `-shell-escape`. It is possible to benefit from these enhanced security
+ capabilities immediately and avoid the need for `-shell-escape`.
+
+ - TeX Live: Copy the variable `shell_escape_commands` from the
+ distribution `texmf.cnf` (typically something like
+ `<tex_distro>/texmf-dist/web2c/texmf.cnf`) into the user `texmf.cnf`
+ (typically something like `<tex_distro>/texmf.cnf`), and then add
+ `latexminted` to the end of the `shell_escape_commands` list. The
+ location of the `texmf.cnf` files can be determined by running
+ `kpsewhich -all texmf.cnf`.
+
+ - MiKTeX: Add a line `AllowedShellCommands[] = latexminted` to the
+ existing list of allowed commands in `miktex.ini`. You may want to
+ modify the user-scoped configuration instead of the system-wide
+ configuration. See the
+ [MiKTeX documentation](https://docs.miktex.org/manual/miktex.ini.html)
+ for more details, particularly `initexmf --edit-config-file <file>`.
+
+* Errors and warnings that occur within Python are now reported as `minted`
+ package errors and warnings within LaTeX in nearly all cases. It should no
+ longer be necessary to look through the compile log for Python errors and
+ warnings. A temp file `*.errlog.minted` containing Python traceback
+ information is created in some cases when errors cannot be fully reported
+ within LaTeX or more details may be needed.
+
+* [`latex2pydata`](https://github.com/gpoore/latex2pydata) is now required
+ for passing data from LaTeX to Python and then processing it within Python.
+ This consists of a LaTeX package, available from
+ [CTAN](https://ctan.org/pkg/latex2pydata), and a Python package, available
+ from [PyPI](https://pypi.org/project/latex2pydata/). The LaTeX package can
+ typically be installed with your TeX distribution's package manager. The
+ Python package is automatically installed within your TeX distribution when
+ `minted` is installed.
+
+* On the LaTeX side, all syntax highlighting settings are now serialized in
+ Python literal format using `latex2pydata` and then saved to a temp file,
+ which is loaded on the Python side. Settings are no longer passed to the
+ Python side using command-line arguments. Temp files for passing data to
+ Python are now named using MD5 hashes, instead of using a sanitized version
+ of document `\jobname`. This eliminates an entire class of security issues
+ and bugs related to escaping and quoting command-line arguments (#180,
+ #276, #298, #322, #338, #354). It also eliminates bugs related to
+ processing settings as a sequence of command-line options, since
+ `pygmentize` accumulates some options that are used multiple times rather
+ than overwriting earlier values with later values (#258, #337).
+
+* Options are now handled with `pgfkeys` and `pgfopts`, instead of
+ `keyval` and `kvoptions`.
+
+* Temporary files are no longer created unless the cache needs to be updated
+ (or caching is disabled). All MD5 hashing of code now takes place in
+ memory instead of using one temp file per command/environment.
+
+ All temporary files are cleaned up automatically when compiling completes
+ without interruption. All temporary files now have names of the form
+ `_<hash>.<role>.minted`. `<hash>` is an MD5 hash of `\jobname` (if
+ `\jobname` is wrapped in double or single quotation marks, these are
+ stripped before the MD5 is computed). `<role>` is the role of the temp
+ file: `data` (data passed to Python), `config` (detected system
+ configuration), `style` (highlighting style definition), `highlight`
+ (highlighted code), or `message` (message passed back to LaTeX by Python
+ executable). `<role>` can also be `errlog` when the Python executable
+ encounters an unexpected error that it is not designed to report to the
+ LaTeX side; this is not automatically cleaned up. There are no more
+ `<jobname>.pyg` and `<jobname>.out.pyg` files.
+
+* Several package options are no longer supported and result in errors or
+ warnings.
+
+ - `finalizecache`: No longer needed. The `frozencache` package option now
+ uses the regular cache, rather than requiring a new, special cache
+ containing files with sequentially numbered names (#342). When using
+ `frozencache` with `-output-directory`, the `cachedir` package option
+ should be used to specify a full relative path to the cache (for
+ example, `cachedir=./<output_directory>/_minted`).
+
+ - `outputdir`: No longer needed (#268). TeX Live 2024+ saves a custom
+ output directory from `-output-directory` in the environment variable
+ [`TEXMF_OUTPUT_DIRECTORY`](https://tug.org/texinfohtml/web2c.html#Output-file-location).
+ The environment variable `TEXMF_OUTPUT_DIRECTORY` can be set manually in
+ other cases.
+
+ - `kpsewhich`: No longer needed. `kpsewhich` is now automatically
+ invoked as necessary by the `latexminted` Python executable in locating
+ files.
+
+ - `draft` and `final`: These no longer have any effect and result in a
+ warning. They will soon be removed altogether. Improvements in caching
+ have largely eliminated the overhead that `draft` mode was designed to
+ avoid, while new features that are implemented purely within Python have
+ made it impossible in some cases to typeset code using only LaTeX. The
+ new package options `placeholder` and `verbatim` offer alternatives when
+ maximum compilation speed is needed or the `latexminted` Python
+ executable is unavailable.
+
+* New package options:
+
+ - `debug`: Keep temp files from highlighting to aid in debugging. Also
+ write current file name and line number to log before `\input` of
+ highlighted code (#348).
+
+ - `highlightmode`: Determines when code is highlighted. The default is
+ `fastfirst`. If a cache for the document exists, then code is
+ highlighted immediately. If a cache for the document does not exist,
+ then typeset a placeholder instead of code and highlight all code at the
+ end of the document. This will require a second compile before code is
+ typeset, but because all code is highlighted at once, there is less
+ overhead and the total time required can be significantly less for
+ documents that include many code snippets. The alternatives are `fast`
+ (always highlight at end of document, requiring a second compile) and
+ `immediate` (always highlight immediately, so no second compile is
+ needed). `immediate` should be used when typesetting code in external
+ temp files that are overwritten during compilation.
+
+ When code is highlighted at the end of the document with `fast` or
+ `fastfirst`, any error and warning messages will refer to a location at
+ the end of the document rather than the original code location, since
+ highlighting occurred at the end of the document. In this case, messages
+ are supplemented with original LaTeX source file names and line numbers
+ to aid in debugging.
+
+ - `placeholder`: Instead of typesetting code, insert a placeholder. This
+ is enabled automatically when working with PGF/TikZ externalization.
+
+ - `verbatim`: Instead of highlighting code, attempt to typeset it verbatim
+ without using the `latexminted` Python executable. This is not
+ guaranteed to be an accurate representation of the code, since some
+ features such as `autogobble` require Python.
+
+* `bgcolor` now uses the new `bgcolor` option from `fvextra` v1.8, rather
+ than `snugshade*` from `framed`. This resolves incompatibilities between
+ `bgcolor` and `xleftmargin`/`xrightmargin` (#214), eliminates unneeded
+ whitespace before/after the background (#220), prevents text from
+ overflowing the background (#278), and provides uniform background height
+ for `\mintinline` (#397). Because `bgcolor` now introduces no additional
+ whitespace or padding, existing documents may require some modification.
+
+ Added new option `bgcolorpadding` for modifying padding in background color
+ regions. Added new option `bgcolorvphantom` for setting height of
+ background color in inline contexts.
+
+* Renamed package options `langlinenos` to `lexerlinenos` and
+ `inputlanglinenos` to `inputlexerlinenos`. The old names are still
+ supported.
+
+* The default cache directory name is now `_minted`. All files within a
+ directory now share the same cache, instead of having separate per-document
+ caches. The new `latexminted` Python executable improves cache management
+ so that a shared cache functions correctly. A cache file that is shared by
+ multiple documents will not be deleted if one document ceases to use the
+ file.
+
+ Document-specific caching as in `minted` v2 can be restored using the
+ package option `cachedir`. For example, for files whose names do not
+ contain spaces, simply use `cachedir=\detokenize{_minted-}\jobname`. For
+ files with names that do contain spaces, use a copy of `\jobname` in which
+ the wrapping quotation marks have been removed or replaced with other
+ characters and the spaces have been replaced with placeholders such as `_`.
+
+* Cache file names now take the form `<hash>_highlight.minted` and
+ `<style>_style.minted`. `<hash>` is a single MD5 hash of code and options,
+ when serialized in Python literal format. Cache file names no longer use
+ two concatenated MD5 hashes, one of code and one of options. The cache
+ directory will also contain files `_<hash>.index.minted`. These list all
+ cache files used by a given document. In this case, `<hash>` is the MD5
+ hash of the document's `\jobname` (if `\jobname` is wrapped in double or
+ single quotation marks, these are stripped before the MD5 is computed).
+
+* Highlighting style names must now match the regular expression
+ `^[0-9A-Za-z_-]+$`. This is checked on the LaTeX side.
+
+* `\inputminted` is redefined as robust and is usable in movable arguments.
+
+* `\newminted` now creates an environment that takes an optional argument
+ consisting of options, instead of taking no argument. It still creates a
+ starred `*` environment variant that takes a mandatory argument consisting
+ of options, but this is only retained for backward-compatibility purposes.
+
+* Improved fallback behavior in the event of errors. If code cannot be
+ highlighted, it is automatically typeset with a verbatim approximation if
+ possible and otherwise replaced by a placeholder. If a highlighting style
+ definition cannot be generated, it is automatically replaced with the
+ default style if available, and otherwise a built-in style with no syntax
+ highlighting is used.
+
+* File encoding changes:
+
+ - The new `latexminted` executable assumes that LaTeX output files are
+ UTF-8, and saves highlighted code as UTF-8. That is, LaTeX should be
+ configured so that everything is UTF-8.
+
+ - The `encoding` option now defaults to UTF-8. It is only used in decoding
+ files for `\inputminted` and commands based on it.
+
+ - The `outencoding` option is no longer supported.
+
+* Added new options for including ranges of code based on literal string
+ delimiters or regular expressions. These work with all commands and
+ environments, including `\inputminted`.
+
+ - `rangestartstring`: Select code starting with this string.
+
+ - `rangestartafterstring`: Select code starting immediately after this
+ string.
+
+ - `rangestopstring`: Select code ending with this string.
+
+ - `rangestopbeforestring`: Select code ending immediately before this
+ string.
+
+ - `rangeregex`: Select code that matches this regular expression.
+
+ - `rangeregexmatchnumber` [default=`1`]: If there are multiple
+ non-overlapping matches for `rangeregex`, this determines which is
+ used.
+
+ - `rangeregexdotall` [default=`false`]: `.` matches any character
+ including the newline.
+
+ - `rangeregexmultiline` [default=`false`]: `^` and `$` match at
+ internal newlines, not just at the start/end of the string.
+
+ If line numbers are displayed, they are based on the range of code that is
+ selected; code that is discarded in selecting the range is not considered
+ in calculating line numbers.
+
+ String values and regular expressions can be set using text with backslash
+ escapes, in a manner analogous to regular (non-raw) Python strings. Any
+ ASCII symbols and punctuation, including those that have special LaTeX
+ meaning, can be backslash escaped. For example, `rangeregex=\\\\.` is
+ processed like the Python string `"\\\\."`, becoming the literal text
+ `\\.`, which is then interpreted as the regular expression for a literal
+ backslash followed by any character. Alternatively, string values and
+ regular expressions can be set using a single macro that, when fully
+ expanded (`\edef`), gives the desired literal text. For example,
+ `\def\pattern{\detokenize{\\.}}` and then `rangeregex=\pattern` would be
+ equivalent to `rangeregex=\\\\.`.
+
+* There is now official support for custom lexers. Custom lexers that are
+ installed as Pygments [plugins](https://pygments.org/docs/plugins/) have
+ always been supported, since Pygments can find them automatically.
+ However, custom lexers in the form of `*.py` files in the document
+ directory have not officially been supported.
+
+ Custom lexers can be specified in place of builtin lexers. For example,
+ `\inputminted{lexer.py}{<file>}` or
+ `\inputminted{./path/lexer.py:LexerClass}{<file>}`.
+
+ Custom lexers in the form of `*.py` files are not automatically enabled,
+ since they are equivalent to arbitrary code execution and are thus a
+ significant security risk. To enable custom lexers, create a file
+ `.latexminted_config`. This can be in your home directory (as found by
+ Python's `pathlib.Path.home()`) or in `TEXMFHOME`; if this file is found in
+ both locations, settings from the TeX location overwrite settings from the
+ home directory. It is also possible to enable a `.latexminted_config` file
+ in your document directory; see the documentation for
+ `.latexminted_config`. This file must contain data in Python literal,
+ JSON, or TOML format. TOML requires Python >= 3.11. The data must contain
+ an entry equivalent to this Python data:
+ ```
+ {
+ "custom_lexers": {
+ "<lexer file name>": "<SHA-256 hash of lexer file>"
+ }
+ }
+ ```
+ `<lexer file name>` is just the name of the file, with no path or class
+ included. For example, for `./path/lexer.py:LexerClass` it would be just
+ `lexer.py`. Any number of file names and hashes can be provided.
+
+* Enhancements of existing options:
+
+ - `codetagify` now supports comma-delimited lists of strings, not just
+ space-delimited lists (#126).
+
+* New options:
+
+ - `envname`: Name of the environment that wraps typeset code. By default,
+ it is `Verbatim` in block contexts and `VerbEnv` in inline contexts.
+ This is compatible with `fancyvrb`'s `BVerbatim` (#281).
+
+ Implementation note: Code is actually wrapped a `MintedVerbatim`
+ environment, and then this is redefined to be equivalent to `envname`
+ (see the new option `literalenvname`).
+
+ - `literalenvname`: This is the name of the environment that literally
+ appears in highlighted code output as a wrapper around the code. By
+ default it is `MintedVerbatim`. This environment is redefined to be
+ equivalent to the current value of `envname`. There should be few if any
+ situations where modifying `literalenvname` rather than `envname` is
+ actually necessary.
+
+ - `literatecomment`: This is for compatibility with literate programming
+ formats, such as the `.dtx` format commonly used for writing LaTeX
+ packages. If all lines of code begin with `<literatecomment>`, then
+ `<literatecomment>` is removed from the beginning of all lines. For
+ example, for `.dtx`, `literatecomment=\%`.
+
+ - `listparameters`: Previously unsupported `fancyvrb` option (#256).
+
+ - `breakanywhereinlinestretch`: New `fvextra` option.
+
+* `gobble` is now applied to code before syntax highlighting and no longer
+ uses the Pygments `gobble` filter, which operates on the token stream
+ generated by a lexer. This makes `gobble` and `autogobble` behave in the
+ same manner. The Pygments `gobble` filter is still accessible via the new
+ option `gobblefilter` (#379).
+
+* Standard catcodes are now enforced in reading the optional argument of
+ environments that wrap Pygments output. This prevents issues with
+ `babel`'s `magyar` (#382).
+
+
+## v2.9 (2023/12/18)
+
+* This is expected to be the last release of `minted` v2.x. If so, it will
+ then become the new package `minted2` for backward compatibility.
+
+* Added new option `ignorelexererrors`. When lexer errors are shown in
+ highlighted output (default), they are typically displayed as red boxes
+ that surround the relevant text. When lexer errors are ignored, the
+ literal text that caused lexer errors is shown but there is no indication
+ that it caused errors (#374).
+
+* There is now a warning if `fvextra` version is less than 1.5.
+
+
+
+## v2.8 (2023/09/12)
+
+* Under non-Windows operating systems, detect executables with `command -v`
+ rather than `which` to provide better cross-platform support (#345).
+
+* Added new package option `inputlanglinenos`. This extends the existing
+ `langlinenos` to cover `\inputminted` as well (#361).
+
+* Improved and updated Pygments documentation (#339).
+
+* Improved `\mintinline` documentation to address packages that redefine
+ `\section` (#368).
+
+* Added support for `fvextra` options `breakafterinrun` and
+ `breakbeforeinrun` (#358). In `fvextra` version 1.5, `breakaftergroup`
+ and `breakbeforegroup` were renamed to `breakafterinrun` and
+ `breakbeforeinrun` to avoid naming ambiguity with new options. The old
+ options `breakaftergroup` and `breakbeforegroup` are no longer supported.
+
+* Added `DEPENDS.txt` (#331).
+
+* Removed unnecessary dependency on `calc` package (#313).
+
+* Added documentation in FAQ about copy and paste limitations (#302).
+
+* Added note on `text` lexer to documentation (#274).
+
+
+
+## v2.7 (2022/12/12)
+
+* Reimplemented `\mintinline` to use `fvextra`'s argument reading and
+ processing macros, and to use `fvextra`'s `\Verb` internally.
+ `\mintinline` now works with all line breaking options supported by
+ `fvextra`'s `\Verb`, including `breakanywhere` (#329, #340). It now
+ gives better results when used inside other commands, since it uses
+ `fvextra`'s retokenization macros. It is now compatible with `hyperref`
+ for PDF strings such as bookmarks.
+
+* Reimplemented `\newmintinline` based on new `\mintinline`.
+
+* Reimplemented `\mint` to use `fvextra`'s argument reading and processing
+ macros. It now gives better results when used inside other commands,
+ since it uses `fvextra`'s retokenization macros. Fixed a bug that caused
+ a continued paragraph after `\mint` to be indented (#218).
+
+* Reimplemented `\newmint` based on new `\mint`. Commands created with
+ `\newmint` can now use curly braces as delimiters, just like `\mint`
+ (#254).
+
+* Settings passed to `pygmentize` as command-line options are now quoted.
+ This prevents `escapeinside` characters from being interpreted as special
+ shell characters (#179, #262).
+
+* Fixed bug with `autogobble` that produced incorrect dedent when using
+ `lastline` with the lines beyond `lastline` having less indentation than
+ the selected range (#326).
+
+* Fixed unintended line breaks after hyphens under LuaTeX (#263).
+
+* Added warning to documentation of `\inputminted` regarding filenames
+ and shell command execution (#338).
+
+
+
+## v2.6 (2021/12/24)
+
+* `autogobble` automatically uses `python` or `python3` executables,
+ depending on availability, instead of requiring `python`. A custom
+ executable can be specified by redefining `\MintedPython` (#277, #287).
+
+* Fixed `autogobble` compatibility with `fancyvrb` 4.0+ (#315, #316).
+
+* Pygments style names may now contain arbitrary non-whitespace characters.
+ Previously, style names containing digits and some punctuation characters
+ were incompatible (#210, #294, #299, #317). Pygments macros are now only
+ defined just before use locally within `minted` commands and environments,
+ rather than globally. Pygments macros now always use a `\PYG` prefix
+ regardless of style, rather than a prefix of the form `\PYG<style>` (for
+ example, what was previously `\PYGdefault` is now simply `\PYG`).
+
+* Removed Python-based MD5 hashing for XeTeX, which was necessary before
+ XeTeX added `\mdfivesum` in 2017.
+
+* The default for `stripnl` is now `false`, so that original code is
+ preserved exactly by default (#198).
+
+* Added support for `fontencoding` option from `fvextra` (#208).
+
+* Added note to FAQ about getting `texi2pdf` to work with `minted` given
+ `texi2pdf`'s assumptions about temp files (#186).
+
+* Reimplemented `bgcolor` option to be compatible with `color` package.
+
+
+
+## v2.5 (2017/07/19)
+
+* The default placement for the `listing` float is now `tbp` instead of `h`,
+ to parallel `figure` and `table` and also avoid warnings caused by `h`
+ (#165). The documentation now contains information about changing default
+ placement. The `float` package is no longer loaded when the `newfloat`
+ package option is used.
+
+* Added support for `*nchars` options from `fvextra` v1.3 that allow setting
+ `breaklines`-related indentation in terms of a number of characters, rather
+ than as a fixed dimension.
+
+* Fixed incompatibility with `babel magyar` (#158).
+
+* Added support for `beamer` overlays with `beameroverlays` option (#155).
+
+* Comments in the Pygments LaTeX style files no longer appear as literal
+ text when `minted` is used in `.dtx` files (#161).
+
+* `autogobble` now works with package option `kpsewhich` (#151). Under
+ Windows, the `kpsewhich` option no longer requires PowerShell.
+
+* Fixed a bug that prevented `finalizecache` from working with `outputdir`
+ (#149).
+
+* Fixed a bug with `firstline` and `lastline` that prevented them from
+ working with the `minted` environment (#145).
+
+* Added note on `breqn` conflicts to FAQ (#163).
+
+
+
+## v2.4.1 (2016/10/31)
+
+* Single quotation marks in `\jobname` are now replaced with underscores in
+ `\minted@jobname` to prevent quoting errors (#137).
+
+* The `autogobble` option now takes `firstline` and `lastline` into account
+ (#130).
+
+* Fixed `numberblanklines`, which had been lost in the transition to v2.0+
+ (#135).
+
+
+
+## v2.4 (2016/07/20)
+
+* Line breaking and all associated options are now completely delegated to
+ `fvextra`.
+
+* Fixed a bug from v2.2 that could cause the first command or environment to
+ vanish when `cache=false` (related to work on `\MintedPygmentize`).
+
+
+
+## v2.3 (2016/07/14)
+
+* The `fvextra` package is now required. `fvextra` extends and patches
+ `fancyvrb`, and includes improved versions of `fancyvrb` extensions that
+ were formerly in `minted`.
+
+* As part of `fvextra`, the `upquote` package is always loaded. `fvextra`
+ brings the new option `curlyquotes`, which allows curly single quotation
+ marks instead of the literal backtick and typewriter single quotation mark
+ produced by `upquote`. This allows the default `upquote` behavior to be
+ disabled when desired.
+
+* Thanks to `fvextra`, the options `breakbefore`, `breakafter`, and
+ `breakanywhere` are now compatible with non-ASCII characters under
+ pdfTeX (#123).
+
+* Thanks to `fvextra`, `obeytabs` no longer causes lines in multi-line
+ comments or strings to vanish (#88), and is now compatible with
+ `breaklines` (#99). `obeytabs` will now always give correct results with
+ tabs used for indentation. However, tab stops are not guaranteed to be
+ correct for tabs in the midst of text.
+
+* `fvextra` brings the new options `space`, `spacecolor`, `tab`, and
+ `tabcolor` that allow these characters and their colors to be redefined
+ (#98). The tab may now be redefined to a flexible-width character such
+ as `\rightarrowfill`. The visible tab will now always be black by default,
+ instead of changing colors depending on whether it is part of indentation
+ for a multiline string or comment.
+
+* `fvextra` brings the new options `highlightcolor` and `highlightlines`,
+ which allow single lines or ranges of lines to be highlighted based on line
+ number (#124).
+
+* `fvextra` brings the new options `numberfirstline`, `stepnumberfromfirst`,
+ and `stepnumberoffsetvalues` that provide better control over line
+ numbering when `stepnumber` is not 1.
+
+* Fixed a bug from v2.2.2 that prevented `upquote` from working.
+
+
+
+## v2.2.2 (2016/06/21)
+
+* Fixed a bug introduced in v2.2 that prevented setting the Pygments style in
+ the preamble. Style definitions are now more compatible with using
+ `\MintedPygmentize` to call a custom `pygmentize`.
+
+
+
+## v2.2.1 (2016/06/15)
+
+* The `shellesc` package is loaded before `ifplatform` and other packages
+ that might invoke `\write18` (#112).
+
+* When caching is enabled, XeTeX uses the new `\mdfivesum` macro from TeX
+ Live 2016 to hash cache content, rather than using `\ShellEscape` with
+ Python to perform hashing.
+
+
+
+## v2.2 (2016/06/08)
+
+* All uses of `\ShellEscape` (`\write18`) no longer wrap file names and paths
+ with double quotes. This allows a cache directory to be specified relative
+ to a user's home directory, for example, `~/minted_cache`. `cachedir` and
+ `outputdir` paths containing spaces will now require explicit quoting of
+ the parts of the paths that contain spaces, since `minted` no longer
+ supplies quoting. See the updated documentation for examples (#89).
+
+* Added `breakbefore`, `breakbeforegroup`, `breakbeforesymbolpre`, and
+ `breakbeforesymbolpost`. These parallel `breakafter*`. It is possible to
+ use `breakbefore` and `breakafter` for the same character, so long as
+ `breakbeforegroup` and `breakaftergroup` have the same setting (#117).
+
+* Added package options `finalizecache` and `frozencache`. These allow the
+ cache to be prepared for (`finalizecache`) and then used (`frozencache`) in
+ an environment in which `-shell-escape`, Python, and/or Pygments are not
+ available. Note that this only works if `minted` content does not need to
+ be modified, and if no settings that depend on Pygments or Python need to
+ be changed (#113).
+
+* Style names containing hyphens and underscores (`paraiso-light`,
+ `paraiso-dark`, `algol_nu`) now work (#111).
+
+* The `shellesc` package is now loaded, when available, for compatibility
+ with LuaTeX 0.87+ (TeX Live 2016+, etc.). `\ShellEscape` is now used
+ everywhere instead of `\immediate\write18`. If `shellesc` is not available,
+ then a `\ShellEscape` macro is created. When `shellesc` is loaded, there
+ is a check for versions before v0.01c to patch a bug in v0.01b (present in
+ TeX Live 2015) (#112).
+
+* The `bgcolor` option now uses the `snugshade*` environment from the `framed`
+ package, so `bgcolor` is now compatible with page breaks. When `bgcolor`
+ is in use, immediately preceding text will no longer push the `minted`
+ environment into the margin, and there is now adequate spacing from
+ surrounding text (#121).
+
+* Added missing support for `fancyvrb`'s `labelposition` (#102).
+
+* Improved fix for TikZ externalization, thanks to Patrick Vogt (#73).
+
+* Fixed `breakautoindent`; it was disabled in version 2.1 due to a bug in
+ `breakanywhere`.
+
+* Properly fixed handling of `\MintedPygmentize` (#62).
+
+* Added note on incompatibility of `breaklines` and `obeytabs` options.
+ Trying to use these together will now result in a package error (#99).
+ Added note on issues with `obeytabs` and multiline comments (#88). Due to
+ the various `obeytabs` issues, the docs now discourage using `obeytabs`.
+
+* Added note to FAQ on `fancybox` and `fancyvrb` conflict (#87).
+
+* Added note to docs on the need for `\VerbatimEnvironment` in environment
+ definitions based on `minted` environments.
+
+
+
+## v2.1 (2015/09/09)
+
+* Changing the highlighting style now no longer involves re-highlighing
+ code. Style may be changed with almost no overhead.
+
+* Improved control of automatic line breaks. New option `breakanywhere`
+ allows line breaks anywhere when `breaklines=true`. The pre-break and
+ post-break symbols for these types of breaks may be set with
+ `breakanywheresymbolpre` and `breakanywheresymbolpost` (#79). New option
+ `breakafter` allows specifying characters after which line breaks are
+ allowed. Breaks between adjacent, identical characters may be controlled
+ with `breakaftergroup`. The pre-break and post-break symbols for these
+ types of breaks may be set with `breakaftersymbolpre` and
+ `breakaftersymbolpost`.
+
+* `breakbytoken` now only breaks lines between tokens that are separated by
+ spaces, matching the documentation. The new option `breakbytokenanywhere`
+ allows for breaking between tokens that are immediately adjacent. Fixed a
+ bug in `\mintinline` that produced a following linebreak when
+ `\mintinline` was the first thing in a paragraph and `breakbytoken` was
+ true (#77).
+
+* Fixed a bug in draft mode option handling for `\inputminted` (#75).
+
+* Fixed a bug with `\MintedPygmentize` when a custom `pygmentize` was
+ specified and there was no `pygmentize` on the default path (#62).
+
+* Added note to docs on caching large numbers of code blocks under OS X (#78).
+
+* Added discussion of current limitations of `texcomments` (#66) and
+ `escapeinside` (#70).
+
+* PGF/Ti*k*Z externalization is automatically detected and supported
+ (#73).
+
+* The package is now compatible with LaTeX files whose names contain spaces (#85).
+
+
+
+## v2.0 (2015/01/31)
+
+* Added the compatibility package `minted1`, which provides the `minted` 1.7
+ code. This may be loaded when 1.7 compatibility is required. This package
+ works with other packages that `\RequirePackage{minted}`, so long as it is
+ loaded first.
+
+* Moved all old `\changes` into `changelog`.
+
+
+
+## Development releases for 2.0 (2014-January 2015)
+
+* Caching is now on by default.
+
+* Fixed a bug that prevented compiling under Windows when file names
+ contained commas.
+
+* Added `breaksymbolleft`, `breaksymbolsepleft`,
+ `breaksymbolindentleft`, `breaksymbolright`, `breaksymbolsepright`,
+ and `breaksymbolindentright` options. `breaksymbol`,
+ `breaksymbolsep`, and `breaksymbolindent` are now aliases for the
+ correspondent `*left` options.
+
+* Added `kpsewhich` package option. This uses `kpsewhich` to locate
+ the files that are to be highlighted. This provides compatibility
+ with build tools like `texi2pdf` that function by modifying
+ `TEXINPUTS` (#25).
+
+* Fixed a bug that prevented `\inputminted` from working with `outputdir`.
+
+* Added informative error messages when Pygments output is missing.
+
+* Added `final` package option (opposite of `draft`).
+
+* Renamed the default cache directory to `_minted-<jobname>` (replaced
+ leading period with underscore). The leading period caused the cache
+ directory to be hidden on many systems, which was a potential source
+ of confusion.
+
+* `breaklines` and `breakbytoken` now work with `\mintinline` (#31).
+
+* `bgcolor` may now be set through `\setminted` and `\setmintedinline`.
+
+* When math is enabled via `texcomments`, `mathescape`, or
+ `escapeinside`, space characters now behave as in normal math by
+ vanishing, instead of appearing as literal spaces. Math need no
+ longer be specially formatted to avoid undesired spaces.
+
+* In default value of `\listoflistingscaption`, capitalized “Listings” so that
+ capitalization is consistent with default values for other lists
+ (figures, tables, algorithms, etc.).
+
+* Added `newfloat` package option that creates the `listing`
+ environment using `newfloat` rather than `float`, thus providing
+ better compatibility with the `caption` package (#12).
+
+* Added support for Pygments option `stripall`.
+
+* Added `breakbytoken` option that prevents `breaklines` from breaking
+ lines within Pygments tokens.
+
+* `\mintinline` uses a `\colorbox` when `bgcolor` is set, to give more
+ reasonable behavior (#57).
+
+* For PHP, `\mintinline` automatically begins with `startinline=true` (#23).
+
+* Fixed a bug that threw off line numbering in `minted` when
+ `langlinenos=false` and `firstnumber=last`. Fixed a bug in `\mintinline` that
+ threw off subsequent line numbering when `langlinenos=false` and
+ `firstnumber=last`.
+
+* Improved behavior of `\mint` and `\mintinline` in `draft` mode.
+
+* The `\mint` command now has the additional capability to take code
+ delimited by paired curly braces `{}`.
+
+* It is now possible to set options only for `\mintinline` using the new
+ `\setmintedinline` command. Inline options override options specified via
+ `\setminted`.
+
+* Completely rewrote option handling. `fancyvrb` options are now handled on the
+ LaTeX side directly, rather than being passed to Pygments and then
+ returned. This makes caching more efficient, since code is no longer
+ rehighlighted just because options changed.
+
+* Fixed buffer size error caused by using `cache` with a very large
+ number of files (#61).
+
+* Fixed `autogobble` bug that caused failure under some operating
+ systems.
+
+* Added support for `escapeinside` (requires Pygments 2.0+; #38).
+
+* Fixed issues with XeTeX and caching (#40).
+
+* The `upquote` package now works correctly with single quotes when
+ using Pygments 1.6+ (#34).
+
+* Fixed caching incompatibility with Linux and OS X under xelatex
+ (#18 and #42).
+
+* Fixed `autogobble` incompatibility with Linux and OS X.
+
+* `\mintinline` and derived commands are now robust, via `\newrobustcmd`
+ from `etoolbox`.
+
+* Unused styles are now cleaned up when caching.
+
+* Fixed a bug that could interfere with caching (#24).
+
+* Added `draft` package option (#39). This typesets all code using
+ `fancyvrb`; Pygments is not used. This trades syntax highlighting
+ for maximum speed in compiling.
+
+* Added automatic line breaking with `breaklines` and related options
+ (#1).
+
+* Fixed a bug with boolean options that needed a False argument to
+ cooperate with `\setminted` (#48).
+
+
+
+## v2.0-alpha3 (2013/12/21)
+
+* Added `autogobble` option. This sends code through Python's
+ `textwrap.dedent()` to remove common leading whitespace.
+
+* Added package option `cachedir`. This allows the directory in which
+ cached content is saved to be specified.
+
+* Added package option `outputdir`. This allows an output directory for
+ temporary files to be specified, so that the package can work with
+ LaTeX's `-output-directory` command-line option.
+
+* The `kvoptions` package is now required. It is needed to process
+ key-value package options, such as the new `cachedir` option.
+
+* Many small improvements, including better handling of paths under
+ Windows and improved key system.
+
+
+
+## v2.0-alpha2 (2013/08/21)
+
+* `\DeleteFile` now only deletes files if they do indeed exist. This
+ eliminates warning messages due to missing files.
+
+* Fixed a bug in the definition of `\DeleteFile` for non-Windows systems.
+
+* Added support for Pygments option `stripnl`.
+
+* Settings macros that were previously defined globally are now defined
+ locally, so that `\setminted` may be confined by `\begingroup...\endgroup`
+ as expected.
+
+* Macro definitions for a given style are now loaded only once per document,
+ rather than once per command/environment. This works even without caching.
+
+* A custom script/executable may now be substituted for `pygmentize` by
+ redefining `\MintedPygmentize`.
+
+
+
+## v2.0alpha (2013/07/30)
+
+* Added the package option `cache`. This significantly increases
+ compilation speed by caching old output. For example, compiling the
+ documentation is around 5x faster.
+
+* New inline command `\mintinline`. Custom versions can be created via
+ `\newmintinline`. The command works inside other commands (for example,
+ footnotes) in most situations, so long as the percent and hash
+ characters are avoided.
+
+* The new `\setminted` command allows options to be specified at the
+ document and language levels.
+
+* All extended characters (Unicode, etc.) supported by `inputenc` now
+ work under the pdfTeX engine. This involved using `\detokenize` on
+ everything prior to saving.
+
+* New package option `langlinenos` allows line numbering to pick up
+ where it left off for a given language when `firstnumber=last`.
+
+* New options, including `style`, `encoding`, `outencoding`,
+ `codetagify`, `keywordcase`, `texcomments` (same as `texcl`),
+ `python3` (for the `PythonConsoleLexer`), and `numbers`.
+
+* `\usemintedstyle` now takes an optional argument to specify the style for a
+ particular language, and works anywhere in the document.
+
+* `xcolor` is only loaded if `color` isn’t, preventing potential
+ package clashes.
+
+
+
+## v1.7 (2011/09/17)
+
+* Options for float placement added [2011/09/12]
+
+* Fixed `tabsize` option [2011/08/30]
+
+* More robust detection of the `-shell-escape` option [2011/01/21]
+
+* Added the `label` option [2011/01/04]
+
+* Installation instructions added [2010/03/16]
+
+* Minimal working example added [2010/03/16]
+
+* Added PHP-specific options [2010/03/14]
+
+* Removed unportable flag from Unix shell command [2010/02/16]
+
+
+## v1.6 (2010/01/31)
+
+* Added font-related options [2010/01/27]
+
+* Windows support added [2010/01/27]
+
+* Added command shortcuts [2010/01/22]
+
+* Simpler versioning scheme [2010/01/22]
+
+
+
+## v0.1.5 (2010/01/13)
+
+* Added `fillcolor` option [2010/01/10]
+
+* Added float support [2010/01/10]
+
+* Fixed `firstnumber` option [2010/01/10]
+
+* Removed `caption` option [2010/01/10]
+
+
+
+## v0.0.4 (2010/01/08)
+
+* Initial version [2010/01/08]
diff --git a/macros/latex/contrib/minted/DEPENDS.txt b/macros/latex/contrib/minted/DEPENDS.txt
index 5c39ebf2e9..9f4eafc4e1 100644
--- a/macros/latex/contrib/minted/DEPENDS.txt
+++ b/macros/latex/contrib/minted/DEPENDS.txt
@@ -1,15 +1,11 @@
catchfile
etoolbox
float
-framed
fvextra
-ifplatform
-ifthen
-keyval
-kvoptions
-lineno
+latex2pydata
newfloat
pdftexcmds
+pgfkeys
+pgfopts
shellesc
xcolor
-xstring
diff --git a/macros/latex/contrib/minted/Makefile b/macros/latex/contrib/minted/Makefile
deleted file mode 100644
index ae199e79d5..0000000000
--- a/macros/latex/contrib/minted/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-TEXFLAGS = -e '$$pdflatex=q/pdflatex %O -shell-escape %S/' -pdf
-LATEXMK = latexmk
-
-PACKAGE = minted.dtx \
- minted.ins \
- minted.pdf \
- README \
- Makefile
-
-.PHONY: minted all doc dist clean cleanall
-
-minted: minted.sty
-
-doc: minted.pdf
-
-all: minted doc
-
-minted.sty: minted.ins minted.dtx
- tex minted.ins
-
-minted.pdf: minted.sty minted.gls minted.dtx
- $(LATEXMK) $(TEXFLAGS) minted.dtx
-
-minted.gls: minted.glo
- makeindex -s gglo.ist -o minted.gls minted.glo
-
-minted.glo: minted.dtx minted.sty
- $(LATEXMK) $(TEXFLAGS) minted.dtx
-
-dist: $(PACKAGE)
- @$(RM) minted.zip
- @zip minted-$(shell grep '^\\ProvidesPackage' < minted.sty | grep -o '\<v[[:digit:]]*\.[[:digit:]]*\>').zip $(PACKAGE)
-
-clean:
- @$(RM) *.aux *.log *.out *.toc *.fdb_latexmk *.ilg *.glo *.gls *.lol
-
-cleanall: clean
- @$(RM) minted.sty minted.zip
diff --git a/macros/latex/contrib/minted/README b/macros/latex/contrib/minted/README
index b2a13a8aff..c6c1222114 100644
--- a/macros/latex/contrib/minted/README
+++ b/macros/latex/contrib/minted/README
@@ -8,9 +8,7 @@ See the documentation (minted.pdf) for examples and instructions for
installation and usage.
This work may be distributed and/or modified under the conditions of the
-LaTeX Project Public License (LPPL), version 1.3 or later. Additionally,
-the project may be distributed under the terms of the 3-Clause ("New") BSD
-license.
+LaTeX Project Public License (LPPL), version 1.3c or later.
For suggestions, feature requests, and bug reports, please use the project's
GitHub site: https://github.com/gpoore/minted.
diff --git a/macros/latex/contrib/minted/latex2pydata-0.4.0-py3-none-any.whl b/macros/latex/contrib/minted/latex2pydata-0.4.0-py3-none-any.whl
new file mode 100644
index 0000000000..616cda2ad5
--- /dev/null
+++ b/macros/latex/contrib/minted/latex2pydata-0.4.0-py3-none-any.whl
Binary files differ
diff --git a/macros/latex/contrib/minted/latexminted-0.1.0-py3-none-any.whl b/macros/latex/contrib/minted/latexminted-0.1.0-py3-none-any.whl
new file mode 100644
index 0000000000..6dd704a64f
--- /dev/null
+++ b/macros/latex/contrib/minted/latexminted-0.1.0-py3-none-any.whl
Binary files differ
diff --git a/macros/latex/contrib/minted/latexminted.py b/macros/latex/contrib/minted/latexminted.py
new file mode 100644
index 0000000000..3c1584ea32
--- /dev/null
+++ b/macros/latex/contrib/minted/latexminted.py
@@ -0,0 +1,359 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+# Copyright (c) 2024, Geoffrey M. Poore
+# All rights reserved.
+#
+# Licensed under the LaTeX Project Public License version 1.3c:
+# https://www.latex-project.org/lppl.txt
+#
+
+
+'''
+This Python executable is intended for installation within a TeX distribution,
+along with Python wheels for the following Python packages:
+
+ * latexminted: https://pypi.org/project/latexminted/
+
+ * latexrestricted: https://pypi.org/project/latexrestricted/
+
+ * latex2pydata: https://pypi.org/project/latex2pydata/
+
+ * Pygments: https://pypi.org/project/Pygments/
+
+The combined executable plus wheels provide everything that is needed for the
+Python side of the minted LaTeX package. No additional Python libraries are
+required.
+
+The wheels require Python >= 3.8. If this executable is launched with an
+earlier Python version, then it will attempt to locate a more recent Python
+installation and run itself with that Python version in a subprocess. The
+search for more recent Python versions looks for executables of the form
+`python3.x` on PATH.
+
+If the latexminted Python package is installed separately, outside TeX, then
+it will create a separate `latexminted` executable as part of the installation
+process. That makes it possible to install latexminted and dependencies
+separately and then customize Pygments with additional packages that provide
+plugins. However, running that separate `latexminted` executable is not
+straightforward under Windows. Under Windows, if this executable finds a
+suitable `latexminted` executable elsewhere, outside a TeX installation, then
+this executable will run that separate `latexminted` executable in a
+subprocess and exit. There are two reasons for this approach:
+
+ 1. Under Windows with TeX Live, the default restricted shell escape can only
+ run executables such as `latexminted` that are part of the TeX
+ installation; the executable that runs is not the first executable on
+ PATH. That is part of TeX Live's security measures to prevent running
+ executables in the current working directory, which is typically writable
+ by LaTeX and is the first place Windows checks when searching for
+ executables. This script and the latexrestricted Python package enforce
+ equivalent security, but do so in a less restrictive manner by expanding
+ executable names into executable paths with Python's `shutil.which()` and
+ then comparing the result with locations writable by LaTeX.
+
+ 2. Under non-Windows operating systems, it is possible to modify PATH so that
+ the desired `latexminted` executable is first. Under Windows, the system
+ PATH is prepended to the user PATH, so a system-wide TeX installation will
+ prevent a user-installed `latexminted` executable from being accessible.
+
+Requirements for locating and running a separate `latexminted` executable
+under Windows:
+
+ * The separate executable must be the first `latexminted.exe` found on PATH,
+ or it must be the first `latexminted.exe` on PATH that is located under
+ the user home directory.
+
+ * The separate executable must be outside a TeX installation. There is a
+ check for a `tex.exe` executable in the same directory as
+ `latexminted.exe`. There is a check for the case-insensitive strings
+ "texlive", "miktex", and "tinytex" in the path to the `latexminted`
+ executable. With TeX Live, the path to the `latexminted` executable is
+ also compared to the environment variable `SELFAUTOLOC`.
+
+ * The separate executable must be outside the current working directory,
+ TEXMFOUTPUT, and TEXMF_OUTPUT_DIRECTORY.
+
+ * The current directory, TEXMFOUTPUT, and TEXMF_OUTPUT_DIRECTORY cannot be
+ subdirectories of the directory in which the executable is located.
+'''
+
+
+__version__ = '0.1.0'
+
+
+import os
+import pathlib
+import platform
+import shutil
+import subprocess
+import sys
+
+
+
+
+# This is an abbreviated variant of `AnyPath` from latexrestricted:
+# https://github.com/gpoore/latexrestricted/blob/main/latexrestricted/_anypath.py
+class Path(type(pathlib.Path())):
+ __slots__ = (
+ '_cache_key',
+ )
+
+ if sys.version_info[:2] < (3, 9):
+ def is_relative_to(self, other):
+ try:
+ self.relative_to(other)
+ return True
+ except ValueError:
+ return False
+
+ @property
+ def cache_key(self):
+ try:
+ return self._cache_key
+ except AttributeError:
+ self._cache_key = (type(self), self)
+ return self._cache_key
+
+ _resolved_set = set()
+
+ def resolve(self):
+ resolved = super().resolve()
+ self._resolved_set.add(resolved.cache_key)
+ return resolved
+
+ def is_resolved(self) -> bool:
+ return self.cache_key in self._resolved_set
+
+
+
+
+# Define function that determines whether subprocess executable paths are
+# permitted.
+prohibited_path_roots = set()
+prohibited_path_roots.add(Path.cwd())
+env_TEXMFOUTPUT = os.getenv('TEXMFOUTPUT')
+env_TEXMF_OUTPUT_DIRECTORY = os.getenv('TEXMF_OUTPUT_DIRECTORY')
+for env_var in (env_TEXMFOUTPUT, env_TEXMF_OUTPUT_DIRECTORY):
+ if env_var:
+ env_var_path = Path(env_var)
+ prohibited_path_roots.add(env_var_path)
+ prohibited_path_roots.add(env_var_path.resolve())
+
+def is_permitted_executable_path(executable_path, executable_path_resolved):
+ if not executable_path_resolved.is_resolved():
+ raise Exception('Second argument must be resolved path')
+ if any(e.is_relative_to(p) or p.is_relative_to(e)
+ for e in set([executable_path.parent, executable_path_resolved.parent])
+ for p in prohibited_path_roots):
+ return False
+ return True
+
+# TeX Live allows setting `TEXMFOUTPUT` in LaTeX configuration.
+# Retrieving that value with kpsewhich follows the approach in latexrestricted:
+# https://github.com/gpoore/latexrestricted/blob/main/latexrestricted/_latex_config.py
+env_SELFAUTOLOC = os.getenv('SELFAUTOLOC')
+env_TEXSYSTEM = os.getenv('TEXSYSTEM')
+if not env_TEXMFOUTPUT and env_SELFAUTOLOC and (not env_TEXSYSTEM or env_TEXSYSTEM.lower() != 'miktex'):
+ if platform.system() == 'Windows':
+ # Under Windows, shell escape executables will often be launched with
+ # the TeX Live `runscript.exe` executable wrapper. This overwrites
+ # `SELFAUTOLOC` from TeX with the location of the wrapper, so
+ # `SELFAUTOLOC` may not be correct.
+ which_tlmgr = shutil.which('tlmgr') # No `.exe`; likely `.bat`
+ if not which_tlmgr:
+ sys.exit('Failed to find TeX Live "tlmgr" executable on PATH')
+ which_tlmgr_resolved = Path(which_tlmgr).resolve()
+ texlive_bin_path = which_tlmgr_resolved.parent
+ # Make sure executable is *.exe, not *.bat or *.cmd:
+ # https://docs.python.org/3/library/subprocess.html#security-considerations
+ which_kpsewhich = shutil.which('kpsewhich.exe', path=str(texlive_bin_path))
+ if not which_kpsewhich:
+ sys.exit('Failed to find a TeX Live "tlmgr" executable with accompanying "kpsewhich" executable on PATH')
+ which_kpsewhich_path = Path(which_kpsewhich)
+ which_kpsewhich_resolved = which_kpsewhich_path.resolve()
+ if not texlive_bin_path == which_kpsewhich_resolved.parent:
+ sys.exit(' '.join([
+ '"tlmgr" executable from PATH resolved to "{}" '.format(which_tlmgr_resolved.as_posix()),
+ 'while "kpsewhich" resolved to "{}";'.format(which_kpsewhich_resolved.as_posix()),
+ '"tlmgr" and "kpsewhich" should be in the same location',
+ ]))
+ if not which_kpsewhich_resolved.name.lower().endswith('.exe'):
+ sys.exit(' '.join([
+ 'Executable "kpsewhich" resolved to "{}",'.format(which_kpsewhich_resolved.as_posix()),
+ 'but *.exe is required',
+ ]))
+ else:
+ which_kpsewhich = shutil.which('kpsewhich', path=env_SELFAUTOLOC)
+ if not which_kpsewhich:
+ sys.exit(' '.join([
+ 'Environment variable SELFAUTOLOC has value "{}",'.format(env_SELFAUTOLOC),
+ 'but a "kpsewhich" executable was not found at that location',
+ ]))
+ which_kpsewhich_path = Path(which_kpsewhich)
+ which_kpsewhich_resolved = which_kpsewhich_path.resolve()
+ if not is_permitted_executable_path(which_kpsewhich_path, which_kpsewhich_resolved):
+ # As in the latexrestricted case, this doesn't initially check for the
+ # TeX Live scenario where `TEXMFOUTPUT` is set in a `texmf.cnf` config
+ # file to a location that includes the `kpsewhich` executable. There
+ # isn't a good way to get the value of `TEXMFOUTPUT` without running
+ # `kpsewhich` in that case.
+ sys.exit(
+ 'Executable "kpsewhich" is located under the current directory, TEXMFOUTPUT, or '
+ 'TEXMF_OUTPUT_DIRECTORY, or one of these locations is under the same directory as the executable'
+ )
+ kpsewhich_cmd = [which_kpsewhich_resolved.as_posix(), '--var-value', 'TEXMFOUTPUT']
+ try:
+ kpsewhich_proc = subprocess.run(kpsewhich_cmd, shell=False, capture_output=True)
+ except PermissionError:
+ sys.exit('Insufficient permission to run "{}"'.format(which_kpsewhich_resolved.as_posix()))
+ kpsewhich_TEXMFOUTPUT = kpsewhich_proc.stdout.decode(sys.stdout.encoding) or None
+ if kpsewhich_TEXMFOUTPUT:
+ kpsewhich_TEXMFOUTPUT_path = Path(kpsewhich_TEXMFOUTPUT)
+ prohibited_path_roots.add(kpsewhich_TEXMFOUTPUT_path)
+ prohibited_path_roots.add(kpsewhich_TEXMFOUTPUT_path.resolve())
+ if not is_permitted_executable_path(which_kpsewhich_path, which_kpsewhich_resolved):
+ # It is now possible to check for the TeX Live scenario where
+ # `TEXMFOUTPUT` is set in a `texmf.cnf` config file to a location that
+ # includes the `kpsewhich` executable. Giving an error message after
+ # already running `kpsewhich` isn't ideal, but there isn't a good
+ # alternative. As in the latexrestricted case, the impact on overall
+ # security is negligible because an unsafe value of `TEXMFOUTPUT`
+ # means that all TeX-related executables are potentially compromised.
+ sys.exit(
+ 'Executable "kpsewhich" is located under the current directory, TEXMFOUTPUT, or '
+ 'TEXMF_OUTPUT_DIRECTORY, or one of these locations is under the same directory as the executable'
+ )
+
+
+
+
+# If Python version is < 3.8, try to locate a more recent version and then
+# relaunch this script with that Python version in a subprocess.
+if sys.version_info[:2] < (3, 8):
+ for minor_version in range(13, 7, -1):
+ if platform.system() == 'Windows':
+ # Batch files must be prohibited:
+ # https://docs.python.org/3/library/subprocess.html#security-considerations
+ which_python = shutil.which('python3.{}.exe'.format(minor_version))
+ else:
+ which_python = shutil.which('python3.{}'.format(minor_version))
+ if which_python:
+ which_python_path = Path(which_python)
+ which_python_resolved = which_python_path.resolve()
+ if platform.system() == 'Windows' and not which_python_resolved.name.lower().endswith('.exe'):
+ continue
+ if is_permitted_executable_path(which_python_path, which_python_resolved):
+ python_cmd = [which_python_resolved.as_posix(), __file__] + sys.argv[1:]
+ python_proc = subprocess.run(python_cmd, shell=False, capture_output=True)
+ sys.stderr.buffer.write(python_proc.stderr)
+ sys.stdout.buffer.write(python_proc.stdout)
+ sys.exit(python_proc.returncode)
+ sys.exit('latexminted requires Python >= 3.8, but a compatible Python executable was not found on PATH')
+
+
+
+
+# Check for required wheel dependencies and add them to Python's `sys.path`.
+script_resolved = Path(__file__).resolve()
+required_wheel_packages = (
+ 'latexminted',
+ 'latexrestricted',
+ 'latex2pydata',
+ 'pygments',
+)
+wheel_paths = [p for p in script_resolved.parent.glob('*.whl') if p.name.startswith(required_wheel_packages)]
+if not wheel_paths:
+ sys.exit('latexminted failed to find bundled wheels *.whl')
+for pkg in required_wheel_packages:
+ if not any(whl.name.startswith(pkg) for whl in wheel_paths):
+ sys.exit('latexminted failed to find all required bundled wheels *.whl')
+for wheel_path in wheel_paths:
+ sys.path.insert(0, wheel_path.as_posix())
+
+
+
+
+# Under Windows, check PATH for a `latexminted` executable outside a TeX
+# installation. If a `latexminted` executable is found in a suitable location
+# with sufficient precedence, run it in a subprocess and exit.
+#
+# The environment variable `LATEXMINTED_SUBPROCESS` is used to prevent an
+# endless recursion of subprocesses in the event that a `latexminted`
+# executable *inside* a TeX installation somehow manages to pass the tests for
+# an executable *outside* a TeX installation.
+if platform.system() == 'Windows' and not os.getenv('LATEXMINTED_SUBPROCESS'):
+ os.environ['LATEXMINTED_SUBPROCESS'] = '1'
+ fallback_path_search = True
+ if env_SELFAUTOLOC:
+ env_SELFAUTOLOC_resolved = Path(env_SELFAUTOLOC).resolve()
+ else:
+ env_SELFAUTOLOC_resolved = None
+ which_latexminted = shutil.which('latexminted.exe')
+ if which_latexminted:
+ which_latexminted_path = Path(which_latexminted)
+ which_latexminted_resolved = which_latexminted_path.resolve()
+ if not which_latexminted_resolved.name.lower().endswith('.exe'):
+ sys.exit(' '.join([
+ 'Executable "latexminted" resolved to "{}",'.format(which_latexminted_resolved.as_posix()),
+ 'but *.exe is required',
+ ]))
+ if which_latexminted_resolved == script_resolved:
+ pass
+ elif (which_latexminted_resolved.parent / 'tex.exe').exists():
+ pass
+ elif any(x in which_latexminted_resolved.as_posix().lower() for x in ('texlive', 'miktex', 'tinytex')):
+ pass
+ elif env_SELFAUTOLOC_resolved and which_latexminted_resolved.is_relative_to(env_SELFAUTOLOC_resolved):
+ pass
+ elif is_permitted_executable_path(which_latexminted_path, which_latexminted_resolved):
+ latexminted_cmd = [which_latexminted_resolved.as_posix()] + sys.argv[1:]
+ latexminted_proc = subprocess.run(latexminted_cmd, shell=False, capture_output=True)
+ sys.stderr.buffer.write(latexminted_proc.stderr)
+ sys.stdout.buffer.write(latexminted_proc.stdout)
+ sys.exit(latexminted_proc.returncode)
+ else:
+ # If there was a `latexminted` executable on PATH outside a TeX
+ # installation, but it wasn't permitted due to its location, don't
+ # perform fallback search.
+ fallback_path_search = False
+ if fallback_path_search:
+ # Windows appends user PATH to system PATH, so the system PATH may
+ # prevent finding a user installation of `latexminted`. Search
+ # through PATH elements under user home directory to check for
+ # `latexminted.exe` outside a TeX installation.
+ home_path = Path.home()
+ env_PATH = os.environ.get('PATH', '')
+ for path_elem in env_PATH.split(os.pathsep):
+ if not path_elem or not Path(path_elem).is_relative_to(home_path):
+ continue
+ which_latexminted = shutil.which('latexminted.exe', path=path_elem)
+ if not which_latexminted:
+ continue
+ which_latexminted_path = Path(which_latexminted)
+ which_latexminted_resolved = which_latexminted_path.resolve()
+ if which_latexminted_resolved == script_resolved:
+ break
+ elif (which_latexminted_resolved.parent / 'tex.exe').exists():
+ break
+ elif any(x in which_latexminted_resolved.as_posix().lower() for x in ('texlive', 'miktex', 'tinytex')):
+ break
+ elif env_SELFAUTOLOC_resolved and which_latexminted_resolved.is_relative_to(env_SELFAUTOLOC_resolved):
+ break
+ elif is_permitted_executable_path(which_latexminted_path, which_latexminted_resolved):
+ latexminted_cmd = [which_latexminted_resolved.as_posix()] + sys.argv[1:]
+ try:
+ latexminted_proc = subprocess.run(latexminted_cmd, shell=False, capture_output=True)
+ except PermissionError:
+ break
+ sys.stderr.buffer.write(latexminted_proc.stderr)
+ sys.stdout.buffer.write(latexminted_proc.stdout)
+ sys.exit(latexminted_proc.returncode)
+ else:
+ break
+
+
+
+
+from latexminted.cmdline import main
+main()
diff --git a/macros/latex/contrib/minted/latexrestricted-0.4.0-py3-none-any.whl b/macros/latex/contrib/minted/latexrestricted-0.4.0-py3-none-any.whl
new file mode 100644
index 0000000000..79b09d23ee
--- /dev/null
+++ b/macros/latex/contrib/minted/latexrestricted-0.4.0-py3-none-any.whl
Binary files differ
diff --git a/macros/latex/contrib/minted/minted.dtx b/macros/latex/contrib/minted/minted.dtx
index d1a0d3c2d9..b0c75e1769 100644
--- a/macros/latex/contrib/minted/minted.dtx
+++ b/macros/latex/contrib/minted/minted.dtx
@@ -1,18 +1,15 @@
% \iffalse meta-comment
%
-% Copyright (C) 2013-2023 by Geoffrey M. Poore <gpoore@gmail.com>
+% Copyright (C) 2013-2024 by Geoffrey M. Poore <gpoore@gmail.com>
% Copyright (C) 2010-2011 by Konrad Rudolph <konrad_rudolph@madrat.net>
-% ---------------------------------------------------------------------------
+% --------------------------------------------------------------------------
% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
+% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% Additionally, the project may be distributed under the terms of the 3-Clause
-% ("New") BSD license: http://opensource.org/licenses/BSD-3-Clause.
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
@@ -21,7 +18,6 @@
% This work consists of the files minted.dtx and minted.ins
% and the derived file minted.sty.
%
-%
% \fi
%
% \iffalse
@@ -31,30 +27,31 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{minted}
%<*package>
- [2023/12/18 v2.9 Yet another Pygments shim for LaTeX]
+ [2024/09/22 v3.0.0 Yet another Pygments shim for LaTeX]
%</package>
%<*driver>
\documentclass{ltxdoc}
-\EnableCrossrefs
-%\CodelineIndex
-%\DisableCrossrefs
-%\RecordChanges
-%\OnlyDescription
+\DisableCrossrefs
+^^A\EnableCrossrefs
+^^A\CodelineIndex
+^^A\RecordChanges
+^^A\OnlyDescription
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
+\usepackage{fourier}
\usepackage{dingbat}
\usepackage{microtype}
\usepackage[svgnames]{xcolor}
-\usepackage{textcomp}
-\usepackage[cache, langlinenos]{minted}
+\usepackage{graphicx}
+\usepackage[lexerlinenos, highlightmode=immediate]{minted}
+\setminted{literatecomment=\%, autogobble}
\usepackage{calc}
-\usepackage{environ}
-\usepackage{graphicx}
\usepackage{multicol}
-\usepackage{hyperref}
+\usepackage[hyperindex]{hyperref}
+\usepackage{cleveref}
\newcommand{\env}[1]{\texttt{#1}}
@@ -95,28 +92,11 @@
\def\FV@SV@pipe@active@verbatim{%
\FV@Gobble
\expandafter\FV@ProcessLine\expandafter{#1}}%
- %\let\FV@BeginVBox\relax
- %\let\FV@EndVBox\relax
- %\def\FV@BProcessLine##1{\FancyVerbFormatLine{##1}}%
\BUseVerbatim{pipe@active@verbatim}%
\endgroup}
\AtBeginDocument{\let|\pipe@active@verbatim}
\endgroup
-\newcommand{\changestext}{}
-\NewEnviron{changelog}[2]{%
- \g@addto@macro\changestext{\item[#1] (#2) \begin{itemize}}%
- \expandafter\g@addto@macro\expandafter\changestext\expandafter{\BODY}%
- \g@addto@macro\changestext{\end{itemize}}%
-}
-\newcommand{\PrintChangelog}{%
- \section{Changelog}%
- \label{sec:changelog}
- \begin{description}%
- \changestext
- \end{description}%
-}
-
\def\MacroFont{%
\fontencoding\encodingdefault%
\fontfamily\ttdefault%
@@ -125,13 +105,55 @@
\small}
\definecolor{minted@mint}{HTML}{0B610B}
-\definecolor{minted@samplebg}{HTML}{F0F0E0}
\colorlet{minted@linkcolor}{minted@mint}
-%
+
\def\PrintDescribeMacro#1{\strut \MacroFont\textcolor{minted@linkcolor}{\string #1\ }}
\let\PrintDescribeEnv\PrintDescribeMacro
\let\PrintMacroName\PrintDescribeMacro
\let\PrintEnvName\PrintDescribeEnv
+
+\renewenvironment{macro}{\macro@custom@arg}{}
+\def\macro@custom@arg{%
+ \begingroup\makeatletter\macro@custom@arg@i}
+\def\macro@custom@arg@i#1{%
+ \makeatother
+ \par\noindent
+ \ifstrempty{#1}%
+ {~\par}%
+ {\ttfamily\color{minted@mint}\hspace*{-0.5in}%
+ \macro@custom@arg@split#1,\FV@Sentinel\par}%
+ \endgroup}
+\def\macro@custom@arg@spacegobble#1{#1}
+\def\macro@custom@arg@split#1,#2\FV@Sentinel{%
+ \expandafter\string\macro@custom@arg@spacegobble#1%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {}{\\\hspace*{-0.5in}\macro@custom@arg@split#2\FV@Sentinel}}
+
+\renewenvironment{environment}{\env@custom@arg}{}
+\def\env@custom@arg{%
+ \begingroup\makeatletter\env@custom@arg@i}
+\def\env@custom@arg@i#1{%
+ \makeatother
+ \ifstrempty{#1}%
+ {~\par}%
+ {\ttfamily\color{minted@mint}\hspace*{-0.5in}%
+ \env@custom@arg@split#1,\FV@Sentinel\par}%
+ \endgroup}
+\def\env@custom@arg@spacegobble#1{#1}
+\def\env@custom@arg@split#1,#2\FV@Sentinel{%
+ \env@custom@arg@spacegobble#1{\textrm{ \textit{(env.)}}}%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {}{\\\hspace*{-0.5in}\env@custom@arg@split#2\FV@Sentinel}}
+
+
\def\theCodelineNo{\textcolor{minted@linkcolor}{\sffamily\footnotesize\oldstylenums{\arabic{CodelineNo}}}}
%
\hypersetup{
@@ -141,35 +163,56 @@
colorlinks=true,
allcolors=minted@linkcolor,
}
-%
-% Shamelessly stolen from http://blog.karssen.org/2009/11/15/a-latex-example-environment/
+
+\newenvironment{mintedminted}%
+ {\VerbatimEnvironment
+ \begin{minted}}%
+ {\end{minted}}
+
+
\newenvironment{example}
{\VerbatimEnvironment
- \begin{VerbatimOut}[gobble=3]{example.out}}
+ \begin{VerbatimOut}[gobble=1]{example.out}}
{\end{VerbatimOut}%
- \vspace{1ex}%
\setlength{\parindent}{0pt}%
- \fbox{\begin{minipage}{0.5\linewidth}%
+ \vspace{1em}%
+ \fbox{%
+ \vspace{1ex}%
+ \begin{minipage}{0.5\linewidth-2em-\fboxsep}%
\inputminted[resetmargins]{latex}{example.out}%
- \end{minipage}%
- \hspace{0.05\linewidth}%
- \begin{minipage}{0.45\linewidth-2\fboxsep}%
+ \end{minipage}%
+ \hspace{2em}\vrule\hspace{2em}%
+ \begin{minipage}{0.5\linewidth-2em-\fboxsep}%
\input{example.out}%
- \end{minipage}%
- \vspace{1ex}}}
+ \end{minipage}%
+ \vspace{1ex}}%
+ \vspace{1em}}
+
+
+\begingroup
+\catcode`\^^M=\active%
+\gdef\longexample@i#1{%
+ \def\longexample@arg{#1}%
+ \begin{VerbatimOut}[gobble=1]{example.out}^^M}%
+\endgroup
\newenvironment{longexample}
- {\VerbatimEnvironment
- \begin{VerbatimOut}[gobble=3]{example.out}}
- {\end{VerbatimOut}%
- \vspace{1ex}%
- \setlength{\parindent}{0pt}%
- \fbox{\begin{minipage}{\linewidth-2\fboxsep}%
- \inputminted[resetmargins]{latex}{example.out}%
- ~\hrulefill~
- \input{example.out}%
- \end{minipage}%
- \vspace{1ex}}}
+ {\VerbatimEnvironment
+ \FVExtraReadOArgBeforeVEnv{\longexample@i}}
+ {\end{VerbatimOut}%
+ \vspace{1em}%
+ \setlength{\parindent}{0pt}%
+ \fbox{
+ \vspace{1ex}%
+ \begin{minipage}{\linewidth-2\fboxsep}%
+ \inputminted[resetmargins]{latex}{example.out}%
+ ~\hrulefill~
+ \expandafter\fvset\expandafter{\longexample@arg}%
+ \input{example.out}%
+ \end{minipage}%
+ \vspace{1ex}}%
+ \vspace{1em}}
+
\def\minted@printopt#1(#2) (#3){%
\vspace{0.1in}%
@@ -178,322 +221,80 @@
\kern-\parindent\textsf{(#2)}\hfill(default: \texttt{#3})\\}
\newenvironment{optionlist}%
- {%
- ~\par\vspace{-14pt}%
+ {~\par\vspace{-14pt}%
\def\pipechar{|}
\let\|\pipechar
\newcommand*\mintednext{}%
+ \let\item@orig\item
\renewcommand*\item[1][]{%
- \mintednext%
- \renewcommand*\mintednext{\par}%
- \minted@printopt##1%
- \ignorespaces}}
- {%
- \par}
+ \ifdefstring{\@currenvir}{optionlist}%
+ {\mintednext%
+ \renewcommand*\mintednext{\par}%
+ \minted@printopt##1%
+ \ignorespaces}%
+ {\ifstrempty{##1}%
+ {\vspace{-4pt}\item@orig}
+ {\vspace{-4pt}\item@orig[##1]}}}}
+ {\par}
\edef\hashchar{\string#}
+
+
+\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{3em}}
+\renewcommand*\l@subsubsection{\@dottedtocline{3}{4.5em}{3.8em}}
+
+
\makeatother
-\newcommand{\hide}[1]{}
-\setlength{\parindent}{0pt}
-\addtolength{\parskip}{0.5\baselineskip}
-\def\warn{\textcolor{red}{\large\textbf{\textsf{WARNING}}}}
+
+\newenvironment{mintedexample}%
+ {\VerbatimEnvironment
+ \begin{minted}}%
+ {\end{minted}}
\begin{document}
\DocInput{minted.dtx}
-% \PrintIndex
+% ^^A\PrintIndex
\end{document}
%</driver>
% \fi
%
-% \CheckSum{2572}
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-%
-%
-%
-% \begin{changelog}{v2.9}{2023/12/18}
-% \item This is expected to be the last release of \pkg{minted} v2.x. If so, it will then become the new package \Verb{minted2} for backward compatibility.
-% \item Added new option \Verb{ignorelexererrors}. When lexer errors are shown in highlighted output (default), they are typically displayed as red boxes that surround the relevant text. When lexer errors are ignored, the literal text that caused lexer errors is shown but there is no indication that it caused errors (\#374).
-% \item There is now a warning if \pkg{fvextra} version is less than 1.5.
-% \end{changelog}
-%
-% \begin{changelog}{v2.8}{2023/09/12}
-% \item Under non-Windows operating systems, detect executables with \Verb{command -v} rather than \Verb{which} to provide better cross-platform support (\#345).
-% \item Added new package option \Verb{inputlanglinenos}. This extends the existing \Verb{langlinenos} to cover \Verb{\inputminted} as well (\#361).
-% \item Improved and updated Pygments documentation (\#339).
-% \item Improved \Verb{\mintinline} documentation to address packages that redefine \Verb{\section} (\#368).
-% \item Added support for \texpkg{fvextra} options \texttt{breakafterinrun} and \texttt{breakbeforeinrun} (\#358). In \texpkg{fvextra} version 1.5, \texttt{breakaftergroup} and \texttt{breakbeforegroup} were renamed to \texttt{breakafterinrun} and \texttt{breakbeforeinrun} to avoid naming ambiguity with new options. The old options \texttt{breakaftergroup} and \texttt{breakbeforegroup} are no longer supported.
-% \item Added \texttt{DEPENDS.txt} (\#331).
-% \item Removed unnecessary dependency on \texpkg{calc} package (\#313).
-% \item Added documentation in FAQ about copy and paste limitations (\#302).
-% \item Added note on \texttt{text} lexer to documentation (\#274).
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.7}{2022/12/12}
-% \item Reimplemented \texttt{\string\mintinline} to use \texttt{fvextra}'s argument reading and processing macros, and to use \texttt{fvextra}'s \texttt{\string\Verb} internally. \texttt{\string\mintinline} now works with all line breaking options supported by \texttt{fvextra}'s \texttt{\string\Verb}, including \texttt{breakanywhere} (\#329, \#340). It now gives better results when used inside other commands, since it uses \texttt{fvextra}'s retokenization macros. It is now compatible with \texttt{hyperref} for PDF strings such as bookmarks.
-% \item Reimplemented \texttt{\string\newmintinline} based on new \texttt{\string\mintinline}.
-% \item Reimplemented \texttt{\string\mint} to use \texttt{fvextra}'s argument reading and processing macros. It now gives better results when used inside other commands, since it uses \texttt{fvextra}'s retokenization macros. Fixed a bug that caused a continued paragraph after \texttt{\string\mint} to be indented (\#218).
-% \item Reimplemented \texttt{\string\newmint} based on new \texttt{\string\mint}. Commands created with \texttt{\string\newmint} can now use curly braces as delimiters, just like \texttt{\string\mint} (\#254).
-% \item Settings passed to \Verb{pygmentize} as command-line options are now quoted. This prevents \Verb{escapeinside} characters from being interpreted as special shell characters (\#179, \#262).
-% \item Fixed bug with \texttt{autogobble} that produced incorrect dedent when using \texttt{lastline} with the lines beyond \texttt{lastline} having less indentation than the selected range (\#326).
-% \item Fixed unintended line breaks after hyphens under LuaTeX (\#263).
-% \item Added warning to documentation of \Verb{\inputminted} regarding filenames and shell command execution (\#338).
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.6}{2021/12/24}
-% \item \texttt{autogobble} automatically uses \texttt{python} or \texttt{python3} executables, depending on availability, instead of requiring \texttt{python}. A custom executable can be specified by redefining \texttt{\string\MintedPython} (\#277, \#287).
-% \item Fixed \texttt{autogobble} compatibility with \texttt{fancyvrb} 4.0+ (\#315, \#316).
-% \item Pygments style names may now contain arbitrary non-whitespace characters. Previously, style names containing digits and some punctuation characters were incompatible (\#210, \#294, \#299, \#317). Pygments macros are now only defined just before use locally within \texttt{minted} commands and environments, rather than globally. Pygments macros now always use a \texttt{\string\PYG} prefix regardless of style, rather than a prefix of the form \texttt{\string\PYG<style>} (for example, what was previously \texttt{\string\PYGdefault} is now simply \texttt{\string\PYG}).
-% \item Removed Python-based MD5 hashing for XeTeX, which was necessary before XeTeX added \texttt{\string\mdfivesum} in 2017.
-% \item The default for \texttt{stripnl} is now \texttt{false}, so that original code is preserved exactly by default (\#198).
-% \item Added support for \texttt{fontencoding} option from \texttt{fvextra} (\#208).
-% \item Added note to FAQ about getting \texttt{texi2pdf} to work with \texttt{minted} given \texttt{texi2pdf}'s assumptions about temp files (\#186).
-% \item Reimplemented \texttt{bgcolor} option to be compatible with \texttt{color} package.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.5}{2017/07/19}
-% \item The default placement for the \texttt{listing} float is now \texttt{tbp} instead of \texttt{h}, to parallel \texttt{figure} and \texttt{table} and also avoid warnings caused by \texttt{h} (\#165). The documentation now contains information about changing default placement. The \texttt{float} package is no longer loaded when the \texttt{newfloat} package option is used.
-% \item Added support for \texttt{*nchars} options from \texttt{fvextra} v1.3 that allow setting \texttt{breaklines}-related indentation in terms of a number of characters, rather than as a fixed dimension.
-% \item Fixed incompatibility with \texttt{babel magyar} (\#158).
-% \item Added support for \texttt{beamer} overlays with \texttt{beameroverlays} option (\#155).
-% \item Comments in the Pygments \LaTeX\ style files no longer appear as literal text when \texttt{minted} is used in \texttt{.dtx} files (\#161).
-% \item \texttt{autogobble} now works with package option \texttt{kpsewhich} (\#151). Under Windows, the \texttt{kpsewhich} option no longer requires PowerShell.
-% \item Fixed a bug that prevented \texttt{finalizecache} from working with \texttt{outputdir} (\#149).
-% \item Fixed a bug with \texttt{firstline} and \texttt{lastline} that prevented them from working with the \texttt{minted} environment (\#145).
-% \item Added note on \texttt{breqn} conflicts to FAQ (\#163).
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.4.1}{2016/10/31}
-% \item Single quotation marks in \texttt{\string\jobname} are now replaced with underscores in \texttt{\string\minted@jobname} to prevent quoting errors (\#137).
-% \item The \texttt{autogobble} option now takes \texttt{firstline} and \texttt{lastline} into account (\#130).
-% \item Fixed \texttt{numberblanklines}, which had been lost in the transition to v2.0+ (\#135).
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.4}{2016/07/20}
-% \item Line breaking and all associated options are now completely delegated to \texttt{fvextra}.
-% \item Fixed a bug from v2.2 that could cause the first command or environment to vanish when \texttt{cache=false} (related to work on \texttt{\string\MintedPygmentize}).
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.3}{2016/07/14}
-% \item The \texttt{fvextra} package is now required. \texttt{fvextra} extends and patches \texttt{fancyvrb}, and includes improved versions of \texttt{fancyvrb} extensions that were formerly in \texttt{minted}.
-% \item As part of \texttt{fvextra}, the \texttt{upquote} package is always loaded. \texttt{fvextra} brings the new option \texttt{curlyquotes}, which allows curly single quotation marks instead of the literal backtick and typewriter single quotation mark produced by \texttt{upquote}. This allows the default \texttt{upquote} behavior to be disabled when desired.
-% \item Thanks to \texttt{fvextra}, the options \texttt{breakbefore}, \texttt{breakafter}, and \texttt{breakanywhere} are now compatible with non-ASCII characters under pdfTeX (\#123).
-% \item Thanks to \texttt{fvextra}, \texttt{obeytabs} no longer causes lines in multi-line comments or strings to vanish (\#88), and is now compatible with \texttt{breaklines} (\#99). \texttt{obeytabs} will now always give correct results with tabs used for indentation. However, tab stops are not guaranteed to be correct for tabs in the midst of text.
-% \item \texttt{fvextra} brings the new options \texttt{space}, \texttt{spacecolor}, \texttt{tab}, and \texttt{tabcolor} that allow these characters and their colors to be redefined (\#98). The tab may now be redefined to a flexible-width character such as \texttt{\string\rightarrowfill}. The visible tab will now always be black by default, instead of changing colors depending on whether it is part of indentation for a multiline string or comment.
-% \item \texttt{fvextra} brings the new options \texttt{highlightcolor} and \texttt{highlightlines}, which allow single lines or ranges of lines to be highlighted based on line number (\#124).
-% \item \texttt{fvextra} brings the new options \texttt{numberfirstline}, \texttt{stepnumberfromfirst}, and \texttt{stepnumberoffsetvalues} that provide better control over line numbering when \texttt{stepnumber} is not 1.
-% \item Fixed a bug from v2.2.2 that prevented \texttt{upquote} from working.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.2.2}{2016/06/21}
-% \item Fixed a bug introduced in v2.2 that prevented setting the Pygments style in the preamble. Style definitions are now more compatible with using \texttt{\string\MintedPygmentize} to call a custom \texttt{pygmentize}.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.2.1}{2016/06/15}
-% \item The \texttt{shellesc} package is loaded before \texttt{ifplatform} and other packages that might invoke \texttt{\string\write18} (\#112).
-% \item When caching is enabled, XeTeX uses the new \texttt{\string\mdfivesum} macro from TeX Live 2016 to hash cache content, rather than using \texttt{\string\ShellEscape} with Python to perform hashing.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.2}{2016/06/08}
-% \item All uses of \texttt{\string\ShellEscape} (\texttt{\string\write18}) no longer wrap file names and paths with double quotes. This allows a cache directory to be specified relative to a user's home directory, for example, \texttt{\string~/minted\_cache}. \texttt{cachedir} and \texttt{outputdir} paths containing spaces will now require explicit quoting of the parts of the paths that contain spaces, since \texttt{minted} no longer supplies quoting. See the updated documentation for examples (\#89).
-% \item Added \texttt{breakbefore}, \texttt{breakbeforegroup}, \texttt{breakbeforesymbolpre}, and \texttt{breakbeforesymbolpost}. These parallel \texttt{breakafter*}. It is possible to use \texttt{breakbefore} and \texttt{breakafter} for the same character, so long as \texttt{breakbeforegroup} and \texttt{breakaftergroup} have the same setting (\#117).
-% \item Added package options \texttt{finalizecache} and \texttt{frozencache}. These allow the cache to be prepared for (\texttt{finalizecache}) and then used (\texttt{frozencache}) in an environment in which \texttt{-shell-escape}, Python, and/or Pygments are not available. Note that this only works if \texttt{minted} content does not need to be modified, and if no settings that depend on Pygments or Python need to be changed (\#113).
-% \item Style names containing hyphens and underscores (\texttt{paraiso-light}, \texttt{paraiso-dark}, \texttt{algol\_nu}) now work (\#111).
-% \item The \texttt{shellesc} package is now loaded, when available, for compatibility with LuaTeX 0.87+ (TeX Live 2016+, etc.). \texttt{\string\ShellEscape} is now used everywhere instead of \texttt{\string\immediate\string\write18}. If \texttt{shellesc} is not available, then a \texttt{\string\ShellEscape} macro is created. When \texttt{shellesc} is loaded, there is a check for versions before v0.01c to patch a bug in v0.01b (present in TeX Live 2015) (\#112).
-% \item The \texttt{bgcolor} option now uses the \texttt{snugshade*} environment from the \texttt{framed} package, so \texttt{bgcolor} is now compatible with page breaks. When \texttt{bgcolor} is in use, immediately preceding text will no longer push the \texttt{minted} environment into the margin, and there is now adequate spacing from surrounding text (\#121).
-% \item Added missing support for \texttt{fancyvrb}'s \texttt{labelposition} (\#102).
-% \item Improved fix for TikZ externalization, thanks to Patrick Vogt (\#73).
-% \item Fixed \texttt{breakautoindent}; it was disabled in version 2.1 due to a bug in \texttt{breakanywhere}.
-% \item Properly fixed handling of \texttt{\string\MintedPygmentize} (\#62).
-% \item Added note on incompatibility of \texttt{breaklines} and \texttt{obeytabs} options. Trying to use these together will now result in a package error (\#99). Added note on issues with \texttt{obeytabs} and multiline comments (\#88). Due to the various \texttt{obeytabs} issues, the docs now discourage using \texttt{obeytabs}.
-% \item Added note to FAQ on \texttt{fancybox} and \texttt{fancyvrb} conflict (\#87).
-% \item Added note to docs on the need for \texttt{\string\VerbatimEnvironment} in environment definitions based on \texttt{minted} environments.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.1}{2015/09/09}
-% \item Changing the highlighting style now no longer involves re-highlighing code. Style may be changed with almost no overhead.
-% \item Improved control of automatic line breaks. New option \texttt{breakanywhere} allows line breaks anywhere when \texttt{breaklines=true}. The pre-break and post-break symbols for these types of breaks may be set with \texttt{breakanywheresymbolpre} and \texttt{breakanywheresymbolpost} (\#79). New option \texttt{breakafter} allows specifying characters after which line breaks are allowed. Breaks between adjacent, identical characters may be controlled with \texttt{breakaftergroup}. The pre-break and post-break symbols for these types of breaks may be set with \texttt{breakaftersymbolpre} and \texttt{breakaftersymbolpost}.
-% \item \texttt{breakbytoken} now only breaks lines between tokens that are separated by spaces, matching the documentation. The new option \texttt{breakbytokenanywhere} allows for breaking between tokens that are immediately adjacent. Fixed a bug in \texttt{\string\mintinline} that produced a following linebreak when \texttt{\string\mintinline} was the first thing in a paragraph and \texttt{breakbytoken} was true (\#77).
-% \item Fixed a bug in draft mode option handling for \texttt{\string\inputminted} (\#75).
-% \item Fixed a bug with \texttt{\string\MintedPygmentize} when a custom \texttt{pygmentize} was specified and there was no \texttt{pygmentize} on the default path (\#62).
-% \item Added note to docs on caching large numbers of code blocks under OS~X (\#78).
-% \item Added discussion of current limitations of \texttt{texcomments} (\#66) and \texttt{escapeinside} (\#70).
-% \item PGF/Ti\textit{k}Z externalization is automatically detected and supported (\#73).
-% \item The package is now compatible with \LaTeX\ files whose names contain spaces (\#85).
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.0}{2015/01/31}
-% \item Added the compatibility package \texttt{minted1}, which provides the \texpkg{minted} 1.7 code. This may be loaded when 1.7 compatibility is required. This package works with other packages that \texttt{\string\RequirePackage\{minted\}}, so long as it is loaded first.
-% \item Moved all old \texttt{\string\changes} into \texttt{changelog}.
-% \end{changelog}
-%
-%
-% \begin{changelog}{Development releases for 2.0}{2014--January 2015}
-% \item Caching is now on by default.
-% \item Fixed a bug that prevented compiling under Windows when file names contained commas.
-% \item Added \texttt{breaksymbolleft}, \texttt{breaksymbolsepleft}, \texttt{breaksymbolindentleft}, \texttt{breaksymbolright}, \texttt{breaksymbolsepright}, and \texttt{breaksymbolindentright} options. \texttt{breaksymbol}, \texttt{breaksymbolsep}, and \texttt{breaksymbolindent} are now aliases for the correspondent \texttt{*left} options.
-% \item Added \texttt{kpsewhich} package option. This uses \texttt{kpsewhich} to locate the files that are to be highlighted. This provides compatibility with build tools like \texttt{texi2pdf} that function by modifying \texttt{TEXINPUTS} (\#25).
-% \item Fixed a bug that prevented \texttt{\string\inputminted} from working with \texttt{outputdir}.
-% \item Added informative error messages when Pygments output is missing.
-% \item Added \texttt{final} package option (opposite of \texttt{draft}).
-% \item Renamed the default cache directory to \texttt{\_minted-<jobname>} (replaced leading period with underscore). The leading period caused the cache directory to be hidden on many systems, which was a potential source of confusion.
-% \item \texttt{breaklines} and \texttt{breakbytoken} now work with \texttt{\string\mintinline} (\#31).
-% \item \texttt{bgcolor} may now be set through \texttt{\string\setminted} and \texttt{\string\setmintedinline}.
-% \item When math is enabled via \texttt{texcomments}, \texttt{mathescape}, or \texttt{escapeinside}, space characters now behave as in normal math by vanishing, instead of appearing as literal spaces. Math need no longer be specially formatted to avoid undesired spaces.
-% \item In default value of \texttt{\string\listoflistingscaption}, capitalized ``Listings'' so that capitalization is consistent with default values for other lists (figures, tables, algorithms, etc.).
-% \item Added \texttt{newfloat} package option that creates the \texttt{listing} environment using \texttt{newfloat} rather than \texttt{float}, thus providing better compatibility with the \texttt{caption} package (\#12).
-% \item Added support for Pygments option \texttt{stripall}.
-% \item Added \texttt{breakbytoken} option that prevents \texttt{breaklines} from breaking lines within Pygments tokens.
-% \item \texttt{\string\mintinline} uses a \texttt{\string\colorbox} when \texttt{bgcolor} is set, to give more reasonable behavior (\#57).
-% \item For PHP, \texttt{\string\mintinline} automatically begins with \texttt{startinline=true} (\#23).
-% \item Fixed a bug that threw off line numbering in \texttt{minted} when \texttt{langlinenos=false} and \texttt{firstnumber=last}. Fixed a bug in \texttt{\string\mintinline} that threw off subsequent line numbering when \texttt{langlinenos=false} and \texttt{firstnumber=last}.
-% \item Improved behavior of \texttt{\string\mint} and \texttt{\string\mintinline} in \texttt{draft} mode.
-% \item The \texttt{\string\mint} command now has the additional capability to take code delimited by paired curly braces \texttt{\{\}}.
-% \item It is now possible to set options only for \texttt{\string\mintinline} using the new \texttt{\string\setmintedinline} command. Inline options override options specified via \texttt{\string\setminted}.
-% \item Completely rewrote option handling. \texpkg{fancyvrb} options are now handled on the \LaTeX\ side directly, rather than being passed to Pygments and then returned. This makes caching more efficient, since code is no longer rehighlighted just because \texpkg{fancyvrb} options changed.
-% \item Fixed buffer size error caused by using \texttt{cache} with a very large number of files (\#61).
-% \item Fixed \texttt{autogobble} bug that caused failure under some operating systems.
-% \item Added support for \texttt{escapeinside} (requires Pygments 2.0+; \#38).
-% \item Fixed issues with XeTeX and caching (\#40).
-% \item The \texttt{upquote} package now works correctly with single quotes when using Pygments 1.6+ (\#34).
-% \item Fixed caching incompatibility with Linux and OS X under xelatex (\#18 and \#42).
-% \item Fixed \texttt{autogobble} incompatibility with Linux and OS X.
-% \item \texttt{\string\mintinline} and derived commands are now robust, via \texttt{\string\newrobustcmd} from \texttt{etoolbox}.
-% \item Unused styles are now cleaned up when caching.
-% \item Fixed a bug that could interfere with caching (\#24).
-% \item Added \texttt{draft} package option (\#39). This typesets all code using \texttt{fancyvrb}; Pygments is not used. This trades syntax highlighting for maximum speed in compiling.
-% \item Added automatic line breaking with \texttt{breaklines} and related options (\#1).
-% \item Fixed a bug with boolean options that needed a False argument to cooperate with \texttt{\string\setminted} (\#48).
-% \end{changelog}
-%
-% \begin{changelog}{v2.0-alpha3}{2013/12/21}
-% \item Added \texttt{autogobble} option. This sends code through Python's \texttt{textwrap.dedent()} to remove common leading whitespace.
-% \item Added package option \texttt{cachedir}. This allows the directory in which cached content is saved to be specified.
-% \item Added package option \texttt{outputdir}. This allows an output directory for temporary files to be specified, so that the package can work with LaTeX's \texttt{-output-directory} command-line option.
-% \item The \texttt{kvoptions} package is now required. It is needed to process key-value package options, such as the new \texttt{cachedir} option.
-% \item Many small improvements, including better handling of paths under Windows and improved key system.
-% \end{changelog}
-%
-% \begin{changelog}{v2.0-alpha2}{2013/08/21}
-% \item \texttt{\string\DeleteFile} now only deletes files if they do indeed exist. This eliminates warning messages due to missing files.
-% \item Fixed a bug in the definition of \texttt{\string\DeleteFile} for non-Windows systems.
-% \item Added support for Pygments option \texttt{stripnl}.
-% \item Settings macros that were previously defined globally are now defined locally, so that \texttt{\string\setminted} may be confined by \texttt{\string\begingroup...\string\endgroup} as expected.
-% \item Macro definitions for a given style are now loaded only once per document, rather than once per command/environment. This works even without caching.
-% \item A custom script/executable may now be substituted for \texttt{pygmentize} by redefining \texttt{\string\MintedPygmentize}.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v2.0alpha}{2013/07/30}
-% \item Added the package option \texttt{cache}. This significantly increases compilation speed by caching old output. For example, compiling the documentation is around 5x faster.
-% \item New inline command \texttt{\string\mintinline}. Custom versions can be created via \texttt{\string\newmintinline}. The command works inside other commands (for example, footnotes) in most situations, so long as the percent and hash characters are avoided.
-% \item The new \texttt{\string\setminted} command allows options to be specified at the document and language levels.
-% \item All extended characters (Unicode, etc.) supported by \texttt{inputenc} now work under the pdfTeX engine. This involved using \texttt{\string\detokenize} on everything prior to saving.
-% \item New package option \texttt{langlinenos} allows line numbering to pick up where it left off for a given language when \texttt{firstnumber=last}.
-% \item New options, including \texttt{style}, \texttt{encoding}, \texttt{outencoding}, \texttt{codetagify}, \texttt{keywordcase}, \texttt{texcomments} (same as \texttt{texcl}), \texttt{python3} (for the \texttt{PythonConsoleLexer}), and \texttt{numbers}.
-% \item \texttt{\string\usemintedstyle} now takes an optional argument to specify the style for a particular language, and works anywhere in the document.
-% \item \texttt{xcolor} is only loaded if \texttt{color} isn't, preventing potential package clashes.
-% \end{changelog}
-%
-%
-% \begin{changelog}{1.7}{2011/09/17}
-% \item Options for float placement added [2011/09/12]
-% \item Fixed \texttt{tabsize} option [2011/08/30]
-% \item More robust detection of the \texttt{-shell-escape} option [2011/01/21]
-% \item Added the \texttt{label} option [2011/01/04]
-% \item Installation instructions added [2010/03/16]
-% \item Minimal working example added [2010/03/16]
-% \item Added PHP-specific options [2010/03/14]
-% \item Removed unportable flag from Unix shell command [2010/02/16]
-% \end{changelog}
-%
-%
-% \begin{changelog}{1.6}{2010/01/31}
-% \item Added font-related options [2010/01/27]
-% \item Windows support added [2010/01/27]
-% \item Added command shortcuts [2010/01/22]
-% \item Simpler versioning scheme [2010/01/22]
-% \end{changelog}
-%
-%
-% \begin{changelog}{0.1.5}{2010/01/13}
-% \item Added \texttt{fillcolor} option [2010/01/10]
-% \item Added float support [2010/01/10]
-% \item Fixed \texttt{firstnumber} option [2010/01/10]
-% \item Removed \texttt{caption} option [2010/01/10]
-% \end{changelog}
-%
-%
-% \begin{changelog}{0.0.4}{2010/01/08}
-% \item Initial version [2010/01/08]
-% \end{changelog}
-%
-%
-% %\DoNotIndex{\newcommand,\newenvironment}
-% %\DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ }
-% %\DoNotIndex{\@ne}
-% %\DoNotIndex{\advance,\begingroup,\catcode,\closein}
-% %\DoNotIndex{\closeout,\day,\def,\edef,\else,\empty,\endgroup}
-% %\DoNotIndex{\begin,\end,\bgroup,\egroup}
-% %\DoNotIndex{\@namedef,\@nameuse,=,\csname,\endcsname}
+%
+% ^^A\DoNotIndex{\newcommand,\newenvironment}
+% ^^A\DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ }
+% ^^A\DoNotIndex{\@ne}
+% ^^A\DoNotIndex{\advance,\begingroup,\catcode,\closein}
+% ^^A\DoNotIndex{\closeout,\day,\def,\edef,\else,\empty,\endgroup}
+% ^^A\DoNotIndex{\begin,\end,\bgroup,\egroup}
+% ^^A\DoNotIndex{\@namedef,\@nameuse,=,\csname,\endcsname}
%
%
% \GetFileInfo{minted.sty}
%
-% \newcommand{\texpkg}[1]{\textsf{#1}}
+% \newcommand{\texpkg}[1]{\textsf{\detokenize{#1}}}
+% \newcommand{\pypkg}[1]{\textsf{\detokenize{#1}}}
+% \newcommand{\mintedpkg}{\texpkg{minted}}
% \newcommand{\app}[1]{\textsf{#1}}
%
-% \title{The \textcolor{minted@mint}{\texpkg{minted}} package:\\Highlighted source code in \LaTeX}
+% \title{The \textcolor{minted@mint}{\mintedpkg} package:\\Highlighted source code in \LaTeX}
% \author{Geoffrey M.\ Poore \\ \url{gpoore@gmail.com} \\ \href{https://github.com/gpoore/minted}{\texttt{github.com/gpoore/minted}} \\ ~\\ Originally created and maintained (2009--2013) by \\ Konrad Rudolph}
% \date{\fileversion~from \filedate}
%
% \maketitle
%
% \begin{abstract}
-% \noindent\texpkg{minted} is a package that facilitates expressive syntax highlighting
-% using the powerful \app{Pygments} library. The package also provides options to
-% customize the highlighted source code output.
+% \noindent\mintedpkg\ provides syntax highlighting using the \href{https://pygments.org/}{Pygments} library. It also provides options for customizing the highlighted source code output, including features implemented in Python such as selecting snippets of code with regular expressions.
%
% \vspace{0.5in}
-% \noindent\textbf{Development status:} \pkg{minted} version 3.0 is now under development, thanks to a \href{https://tug.org/tc/devfund/grants.html}{\TeX\ Development Fund grant} from the \href{https://tug.org/}{\TeX\ Users Group}. This will bring a new Python executable that replaces |pygmentize|. The new executable will be compatible with restricted shell escape, so no more |-shell-escape| with associated security vulnerabilities. The new executable will also make it possible to extend \pkg{minted} using Python, not just \LaTeX\ macros. This will bring official support for custom lexers, allow including snippets of external files based on regular expressions, and make possible a number of other improvements and bugfixes. For compatibility purposes, the final version of \pkg{minted} v2.x will be released as the compatibility package \pkg{minted2}. Initial beta versions of minted v3.0 are expected by early 2024. A final minted v3.x release including all planned features is expected before the end of summer 2024.
+% \noindent The original development of \mintedpkg\ version 3 was funded by a \href{https://tug.org/tc/devfund/grants.html}{\TeX\ Development Fund grant} from the \href{https://tug.org/}{\TeX\ Users Group} in 2023.
% \end{abstract}
%
% \vspace{0.5in}
%
% \subsection*{License}
-% \href{http://www.latex-project.org/lppl.txt}{LaTeX Project Public License (LPPL)} version 1.3.
-%
-% Additionally, the project may be distributed under the terms of the 3-Clause
-% (``New'') BSD license: \url{http://opensource.org/licenses/BSD-3-Clause}.
+% \href{https://www.latex-project.org/lppl.txt}{LaTeX Project Public License (LPPL)} version 1.3c.
%
% \pagebreak
%
@@ -510,162 +311,186 @@
%
%
%
-% \texpkg{minted} is a package that allows formatting source code in \LaTeX.
-% For example:
-% \begin{VerbatimOut}[gobble=1]{minted.doc.out}
-% \begin{minted}{<language>}
-% <code>
-% \end{minted}
-% \end{VerbatimOut}
-% \inputminted[gobble=2,frame=lines]{latex}{minted.doc.out}
-%
-% will highlight a piece of code in a chosen language.
-% The appearance can be customized with a number of options and color schemes.
-%
-% Unlike some other packages, most notably \texpkg{listings}, \texpkg{minted} requires
-% the installation of additional software, \app{Pygments}.
-% This may seem like a disadvantage, but there are also significant advantages.
-%
-% \app{Pygments} provides superior syntax highlighting compared to conventional packages.
-% For example, \texpkg{listings} basically only highlights strings, comments and keywords.
-% \app{Pygments}, on the other hand, can be completely customized to highlight any kind of token the
-% source language might support.
-% This might include special formatting sequences inside strings, numbers, different kinds of
-% identifiers and exotic constructs such as HTML tags.
+% \mintedpkg\ provides syntax highlighting using the \href{https://pygments.org/}{Pygments} library. The general strategy is to wrap code in a command or environment that captures it verbatim, like this:
+%\begin{mintedexample}[frame=single]{latex}
+%\begin{minted}{<language>}
+%<code>
+%\end{minted}
+%\end{mintedexample}
%
-% Some languages make this especially desirable.
-% Consider the following Ruby code as an extreme, but at the same time typical, example:
+% Then the code is passed to Python, highlighted with Pygments, and passed back to \LaTeX\ for inclusion in the document. Here is an example with Ruby code, showing the \LaTeX\ source and then the highlighted output:
%
-% \begin{minted}[gobble=3]{ruby}
+% \begin{example}
+% \begin{minted}{ruby}
% class Foo
% def init
% pi = Math::PI
-% @var = "Pi is approx. #{pi}"
+% @var = "Pi = #{pi}..."
% end
% end
% \end{minted}
+% \end{example}
%
-% Here we have four different colors for identifiers (five, if you count keywords) and escapes from
-% inside strings, none of which pose a problem for \app{Pygments}.
-%
-% Additionally, installing \app{Pygments} is actually incredibly easy (see the next section).
+% Because \mintedpkg\ uses Pygments and other Python software, it can provide more highlighting features than are practical in syntax highlighting packages like \href{ https://ctan.org/pkg/listings}{\texpkg{listings}} that are implemented purely in \LaTeX. In the past, this reliance on external software brought several disadvantages, including a requirement for separately installing Pygments. As of \mintedpkg\ version 3, all Python software including Pygments is bundled with the \LaTeX\ package when it is installed with a \TeX\ package manager, and no dependencies must be installed separately.
%
%
% \section{Installation}
%
-% \subsection{Prerequisites}
+% \subsection{Package manager}
%
-% \app{Pygments} is written in Python, so make sure that you have Python 2.6 or later installed on your system. This may be easily checked from the command line:
+% Installation will typically be simpler and faster using your \TeX\ distribution's package manager. Start your package manager's graphical user interface, or use the relevant command below:
+% \begin{itemize}
+% \item TeX Live: |tlmgr install minted|
+% \item MiKTeX: |mpm --admin --install=minted|
+% \end{itemize}
+% When the \mintedpkg\ package is installed, it includes the |latexminted| Python executable and all required Python libraries including Pygments. For these to function correctly, Python 3.8+ must be installed and on |PATH| when the |latexminted| executable runs.
%
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ python --version
-% Python 2.7.5
-% \end{Verbatim}
+% Note that if you plan to use Pygments plugin packages, you will need to install the \pypkg{latexminted} Python package and dependencies including Pygments within a Python installation. The Python libraries installed by a \TeX\ package manager within a \TeX\ installation are not compatible with plugin packages. After installing \pypkg{latexminted} within a Python installation, make sure that its |latexminted| executable has precedence on |PATH|.
%
-% If you don't have Python installed, you can download it from the \href{http://www.python.org/download/}{Python website} or
-% use your operating system's package manager.
+% The \mintedpkg\ package has the \LaTeX\ package dependencies listed below. Depending on your \TeX\ distribution and configuration, these may be installed automatically when \mintedpkg\ is installed.
+% \begin{multicols}{4}
+% \begin{itemize}
+% \setlength{\itemsep}{0pt}
+% \setlength{\parskip}{0pt}
+% \setlength{\parsep}{0pt}
+% \item \texpkg{catchfile}
+% \item \texpkg{etoolbox}
+% \item \texpkg{float}
+% \item \texpkg{fvextra}
+% \item \texpkg{latex2pydata}
+% \item \texpkg{newfloat}
+% \item \texpkg{pdftexcmds}
+% \item \texpkg{pgfkeys}
+% \item \texpkg{pgfopts}
+% \item \texpkg{shellesc}
+% \item \texpkg{xcolor}
+% \end{itemize}
+% \end{multicols}
%
-% Some Python distributions include \texpkg{Pygments} (see some of the options under ``Alternative Implementations'' on the Python site). Otherwise, you will need to install \texpkg{Pygments} manually. This may be done by installing \href{http://pypi.python.org/pypi/setuptools}{\app{setuptools}}, which facilitates the distribution of Python applications. You can then install \app{Pygments} using the following command:
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ sudo easy_install Pygments
-% \end{Verbatim}
-% Under Windows, you will not need the |sudo|, but may need to run the command prompt as administrator. \texpkg{Pygments} may also be installed with |pip|:
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ pip install Pygments
-% \end{Verbatim}
%
-% If you already have \app{Pygments} installed, be aware that the latest version is recommended (at least 1.4 or later). Some features, such as |escapeinside|, will only work with 2.0+. \texpkg{minted} may work with versions as early as 1.2, but there are no guarantees.
+% \subsection{Manual installation}
%
+% \mintedpkg\ source files are available at \href{https://github.com/gpoore/minted}{|github.com/gpoore/minted|}. There is also \href{https://ctan.org/pkg/minted}{|ctan.org/pkg/minted|}.
%
-% \subsection{Required packages}
+% Install |minted.sty| (and |minted2.sty| and |minted1.sty| if desired) within your \TeX\ installation. For TeX Live, it may be best to put style files under |TEXMFLOCAL|, which can be located by running |kpsewhich --var-value TEXMFLOCAL|. For example, you might put the files in |<texlive>/<year>/texmf-local/tex/latex/local/minted|. For further details, consult your \TeX\ distribution's documentation, or an online guide such as \href{https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages}{\Verb{en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages}} or \href{https://texfaq.org/}{\Verb|texfaq.org|}. After installing the |.sty| files, make \TeX\ aware of the new files by running |texhash| or |mktexlsr| (TeX Live), or |initexmf --update-fndb| (MiKTeX).
%
-% \texpkg{minted} requires that the following packages be available and reasonably up to date on your system. All of these ship with recent \TeX\ distributions.
+% Next, install the Python side of the package. Python 3.8+ is required. There are two options: Install the \pypkg{latexminted} package and dependencies within a Python installation (typically easier, and required for compatibility with Pygments plugin packages), or install them within your \TeX\ installation.
%
-% \begin{multicols}{3}
-% \begingroup
-% \setlength\parskip{0pt}
-% \setlength\topsep{0pt}
-% \begin{list}{\textrm{\labelitemi}}{\ttfamily}
-% \item keyval
-% \item kvoptions
-% \item fancyvrb
-% \item fvextra
-% \item upquote
-% \item float
-% \item ifthen
-% \item calc
-% \item ifplatform
-% \item pdftexcmds
-% \item etoolbox
-% \item xstring
-% \item xcolor
-% \item lineno
-% \item framed
-% \item shellesc (for luatex 0.87+)
-% \item catchfile
-%
-% ~
-% \end{list}
-% \endgroup
-% \end{multicols}
+% Note that if you are only using the \texpkg{minted2} package for backward compatibility with \mintedpkg\ version 2, you do not need \pypkg{latexminted}. \texpkg{minted2} only requires the Pygments package, which can be installed with something like |pip install pygments|, |conda install anaconda::pygments|, or |brew install pygments|, depending on your operating system and Python distribution. You may need to modify the command depending on system versus user installation and depending on virtual environments.
%
+% \subsubsection{Option 1 (recommended): Install \pypkg{latexminted} within Python installation}
%
-% \subsection{Installing \texpkg{minted}}
-% \label{sec:installing:installing}
+% If your Python distribution is compatible with \href{https://pypi.org/}{The Python Package Index (PyPI)}, this can be accomplished by running |pip install latexminted|. This will install \pypkg{latexminted} plus all dependencies including Pygments. You may need to modify the command depending on whether you want a system or user (|--user|) installation, depending on whether you are using virtual environments, and depending on whether something like |pip3| is needed instead of |pip|.
%
-% You can probably install \texpkg{minted} with your \TeX\ distribution's package manager. Otherwise, or if you want the absolute latest version, you can install it manually by following the directions below.
+% If you cannot or do not wish to use PyPI via |pip|, install the following packages manually or from other sources.
+% \begin{itemize}
+% \setlength{\itemsep}{0pt}
+% \setlength{\parskip}{0pt}
+% \setlength{\parsep}{0pt}
+% \item \pypkg{latexminted}: \url{https://pypi.org/project/latexminted/}
+% \item \pypkg{latexrestricted}: \url{https://pypi.org/project/latexrestricted/}
+% \item \pypkg{latex2pydata}: \url{https://pypi.org/project/latex2pydata/}
+% \item Pygments: \url{https://pypi.org/project/Pygments/}
+% \end{itemize}
%
-% You may download |minted.sty| from the
-% \href{https://github.com/gpoore/minted}{project's homepage}. We have to install the file so that \TeX\ is able to find it.
-% In order to do that, please refer to the
-% \href{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=inst-wlcf}{\TeX{} FAQ}.
-% If you just want to experiment with the latest version, you could locate your current |minted.sty| in your \TeX\ installation and replace it with the latest version. Or you could just put the latest |minted.sty| in the same directory as the file you wish to use it with.
+% \subsubsection{Option 2: Install \pypkg{latexminted} within \TeX\ installation}
%
+% This approach is more involved and essentially replicates the process that is performed automatically when using a \TeX\ package manager.
%
-% \section{Basic usage}
+% Install the |latexminted.py| executable within your \TeX\ installation. (It is part of the \mintedpkg\ \LaTeX\ package, separate from the \pypkg{latexminted} Python package.) This should typically be within a |scripts| directory. When TeX Live installs \mintedpkg\ with its package manager, this is something like |<texlive>/<year>/texmf-dist/scripts/minted|.
%
-% \subsection{Preliminary}
-% \label{sec:basic:preliminary}
+% Download Python wheels (|*.whl|) for the following Python packages, and place them in the same location as |latexminted.py|.
+% \begin{itemize}
+% \setlength{\itemsep}{0pt}
+% \setlength{\parskip}{0pt}
+% \setlength{\parsep}{0pt}
+% \item \pypkg{latexminted}: \url{https://pypi.org/project/latexminted/}
+% \item \pypkg{latexrestricted}: \url{https://pypi.org/project/latexrestricted/}
+% \item \pypkg{latex2pydata}: \url{https://pypi.org/project/latex2pydata/}
+% \item Pygments: \url{https://pypi.org/project/Pygments/}
+% \end{itemize}
%
-% Since \texpkg{minted} makes calls to the outside world (that is, \app{Pygments}), you need to tell the
-% \LaTeX{} processor about this by passing it the |-shell-escape| option or it won't allow such calls.
-% In effect, instead of calling the processor like this:
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ latex input
-% \end{Verbatim}
+% Under non-Windows operating systems, create a symlink called |latexminted| in the \TeX\ binary directory or another appropriate location that points to |latexminted.py|. When TeX Live installs \mintedpkg\ with its package manager, this is something like |<texlive>/<year>/bin/<architecture>|.
%
-% you need to call it like this:
+% Under Windows, a launcher executable for |latexminted.py| needs to be created. When TeX Live installs \mintedpkg\ with its package manager, it creates a copy of |runscript.exe| named |latexminted.exe| within the \TeX\ binary directory, which is something like |<texlive>/<year>/bin/windows|.
%
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ latex -shell-escape input
-% \end{Verbatim}
%
-% The same holds for other processors, such as |pdflatex| or |xelatex|.
%
-% You should be aware that using |-shell-escape| allows \LaTeX\ to run potentially arbitrary commands on your system. It is probably best to use |-shell-escape| only when you need it, and to use it only with documents from trusted sources.
+% \section{Migrating from \mintedpkg\ version 2}
%
+% \mintedpkg\ version 3 is a complete rewrite from version 2.9. A brief summary of changes is provided below. For full details, see |CHANGELOG_MINTED_LATEX_PACKAGE.md|.
%
-% \subsubsection*{Working with OS X}
+% \subsubsection*{Backward compatibility}
%
-% If you are using \texpkg{minted} with some versions/configurations of OS X, and are using caching with a large number of code blocks ($>256$), you may receive an error like
-%\begin{Verbatim}
-%OSError: [Errno 24] Too many open files:
-%\end{Verbatim}
-% This is due to the way files are handled by the operating system, combined with the way that caching works. To resolve this, you may use the OS X commands |launchctl limit maxfiles| or |ulimit -n| to increase the number of files that may be used.
+% The new \texpkg{minted2} package provides the features of \texpkg{minted} version 2.9, the final release before version 3. No additional version 2 releases are planned; no changes to the \texpkg{minted2} package are expected.
+%
+%
+% \subsubsection*{New features and changes}
+%
+% \begin{itemize}
+% \item Version 3 uses a new \mintedpkg-specific Python executable called |latexminted| to perform syntax highlighting. This executable is specifically designed to meet the security requirements for restricted shell escape programs. Once it has passed a security review and is accepted by \TeX\ distributions, it will be possible to highlight code without |-shell-escape| and its attendant security vulnerabilities.
+%
+% Syntax highlighting is still performed with Pygments, but the |pygmentize| executable included with Pygments is no longer used.
+%
+% When \mintedpkg\ is installed with a \TeX\ package manager, the new |latexminted| executable and all Python libraries including Pygments are installed within the \TeX\ installation. A separate step to install Pygments is no longer necessary.
+%
+% \item Temporary files are no longer created unless code needs to be highlighted. There is a new naming scheme for temporary files and for cache files.
+%
+% \item New package options: |debug| (additional debug info during compilation), |highlightmode| (modify when code is highlighted for faster compilation), |placeholder| (insert a placeholder instead of code), and |verbatim| (insert verbatim approximation of code).
+%
+% \item Renamed package options |langlinenos| to |lexerlinenos| and |inputlanglinenos| to |inputlexerlinenos|. The old names are still supported.
+%
+% \item |bgcolor| now uses the new |bgcolor| option from \texpkg{fvextra} v1.8. Because |bgcolor| now introduces no additional whitespace or padding, existing documents may require some modification. Added new option |bgcolorpadding| for modifying padding in background color regions. Added new option |bgcolorvphantom| for setting height of background color in inline contexts. When more sophisticated background colors are needed, \texpkg{tcolorbox} or a similar package should be used.
+%
+% \item The default cache directory name is now |_minted|. All files within a directory now share the same cache, instead of having separate per-document caches. Document-specific caching as in |minted| version 2 can be restored using the package option |cachedir|.
+%
+% \item |\newminted| now creates an environment that takes an optional argument consisting of options, instead of taking no argument.
+%
+% \item File encoding changes: The new |latexminted| executable assumes that \LaTeX\ output files are UTF-8, and saves highlighted code as UTF-8. That is, LaTeX should be configured so that everything is UTF-8. The |encoding| option now defaults to UTF-8. It is only used in decoding files for |\inputminted| and commands based on it. The |outencoding| option is no longer supported.
+%
+% \item Added new options for including ranges of code based on literal string delimiters or regular expressions: |rangestartstring|, |rangestartafterstring|, |rangestopstring|, |rangestopbeforestring|, |rangeregex|.
+%
+% \item There is now support for custom lexers in standalone Python files. See the documentation for the new |.latexminted_config| configuration files for details.
+%
+% \item Several package options are no longer supported and result in errors or warnings. The package options |finalizecache|, |outputdir|, and |kpsewhich| are no longer needed given new \mintedpkg\ version 3 capabilities. The package options |draft| and |final| no longer have any effect and will soon be removed altogether. The new package options |placeholder| and |verbatim| are available in cases where using highlighted code should be completely avoided.
+% \end{itemize}
+%
+%
+%
+% \section{Basic usage}
+%
+% \subsection{The \Verb{latexminted} Python executable and shell escape}
+%
+% The \mintedpkg\ package operates by passing code to the |latexminted| Python executable, which performs syntax highlighting and then returns the highlighted code in \LaTeX\ format.
+%
+% Currently, |latexminted| requires special permission to run. \LaTeX\ must be called with the |-shell-escape| option (TeX Live) or the |-enable-write18| option (MiKTeX). Note that using |-shell-escape| or |-enable-write18| allows \LaTeX\ to run potentially arbitrary commands on your system. These should only be used when necessary, with documents from trusted sources.
%
+% |latexminted| is designed to be compatible with the security requirements for restricted shell escape. Once |latexminted| finishes the security review for restricted shell escape executables, it will function automatically without |-shell-escape| or |-enable-write18|, so long as the default restricted shell escape has not been disabled. It is possible to benefit from these enhanced security capabilities immediately and avoid the need for |-shell-escape| or |-enable-write18| by manually designating |latexminted| as a trusted executable.
+% \begin{itemize}
+% \item TeX Live: Copy the variable |shell_escape_commands| from the distribution |texmf.cnf| (something like |<texlive>/<yr>/texmf-dist/web2c/texmf.cnf|) into the user |texmf.cnf| (something like |<texlive>/<yr>/texmf.cnf|), and then add |latexminted| to the |shell_escape_commands| list. The location of the |texmf.cnf| files can be determined by running |kpsewhich -all texmf.cnf|. Note that under Windows, this only works when |latexminted| is installed within a TeX Live installation; it is not compatible with |latexminted| being installed in a Python installation.
+% \item MiKTeX: Add a line |AllowedShellCommands[] = latexminted| to the existing list of allowed commands in |miktex.ini|. You may want to modify the user-scoped configuration instead of the system-wide configuration. See the \href{https://docs.miktex.org/manual/miktex.ini.html}{MiKTeX documentation} for more details, particularly |initexmf --edit-config-file| and |initexmf --set-config-value|.
+% \end{itemize}
+%
+% For the |latexminted| Python executable to correctly inherit security settings from \LaTeX, there are requirements for system configuration when multiple \TeX\ installations are present.
+% \begin{itemize}
+% \item With MiKTeX on systems with multiple MiKTeX installations, the desired MiKTeX installation must be the first MiKTeX installation on |PATH|.
+% \item With TeX Live on Windows systems with multiple TeX Live installations, the desired TeX Live installation must be the first TeX Live installation on |PATH|.
+% \end{itemize}
+% See the \href{https://github.com/gpoore/latexrestricted}{\pypkg{latexrestricted}} documentation for details.
%
%
% \subsection{A minimal complete example}
%
-% The following file |minimal.tex| shows the basic usage of \texpkg{minted}.
+% The following file |minimal.tex| shows the basic usage of \mintedpkg.
%
% \begin{VerbatimOut}[gobble=1]{minted.doc.out}
% \documentclass{article}
%
% \usepackage{minted}
+% \usepackage[svgnames]{xcolor}
%
% \begin{document}
-% \begin{minted}{c}
+% \begin{minted}[bgcolor=Beige, bgcolorpadding=0.5em]{c}
% int main() {
% printf("hello, world");
% return 0;
@@ -673,55 +498,47 @@
% \end{minted}
% \end{document}
% \end{VerbatimOut}
-% \inputminted[gobble=2,frame=lines]{latex}{minted.doc.out}
-%
-% By compiling the source file like this:
+% \inputminted[frame=single]{latex}{minted.doc.out}
%
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ pdflatex -shell-escape minimal
-% \end{Verbatim}
+% This document can be compiled by running ``|pdflatex -shell-escape minimal|''
+% to produce the following output in |minimal.pdf|:
%
-% we end up with the following output in |minimal.pdf|:
-%
-% \hfill
-% \colorbox{minted@samplebg}{\begin{minipage}{0.6\textwidth}
-% \inputminted[firstline=7,lastline=10]{c}{minted.doc.out}
-% \end{minipage}}
-% \hfill\hfill
+% \begin{center}
+% \begin{minipage}{0.6\textwidth}
+% \inputminted[rangeregex=\^\\s*int.+?\\\}, rangeregexdotall=true, rangeregexmultiline=true, bgcolor=Beige, bgcolorpadding=0.5em]{c}{minted.doc.out}
+% \end{minipage}
+% \end{center}
%
%
% \subsection{Formatting source code}
%
% \DescribeEnv{minted}
-% Using \texpkg{minted} is straightforward. For example, to highlight some Python source code we might use
-% the following code snippet (result on the right):
+% The |minted| environment highlights a block of code:
%
% \begin{example}
-% \begin{minted}{python}
-% def boring(args = None):
-% pass
-% \end{minted}
+% \begin{minted}{python}
+% def boring(args = None):
+% pass
+% \end{minted}
% \end{example}
%
-% Optionally, the environment accepts a number of options in |key=value| notation, which are described
-% in more detail below.
+% The environment accepts a number of optional arguments in |key=value| notation. These are described in \cref{sec:options:macro}.
%
-% To use \texpkg{minted} with a language that is not supported by Pygments, or simply to disable highlighting, set the language to |text|: |\begin{minted}{text}|.
+% To use \mintedpkg\ with a language that is not supported by Pygments, or simply to disable highlighting, set the language to |text|: |\begin{minted}{text}|.
%
%
% \DescribeMacro{\mint}
-% For a single line of source code, you can alternatively use a shorthand notation:
+% For a single line of source code, you can use |\mint| as a shorthand for |minted|:
%
% \begin{example}
-% \mint{python}|import this|
+% \mint{python}/import this/
% \end{example}
%
% This typesets a single line of code using a command rather than an environment, so it saves a little typing, but its output is equivalent to that of the |minted| environment.
%
% The code is delimited by a pair of identical characters, similar to how |\verb| works. The complete syntax is \cmd\mint\oarg{options}\marg{language}\meta{delim}\meta{code}\meta{delim},
% where the code delimiter can be almost any punctuation character.
-% The \meta{code} may also be delimited with matched curly braces |{}|, so long as \meta{code} itself does not contain unmatched curly braces.
-% Again, this command supports a number of options described below.
+% The \meta{code} may also be delimited with paired curly braces |{}|, so long as \meta{code} itself does not contain unpaired curly braces.
%
% Note that the |\mint| command \textbf{is not for inline use}. Rather, it is a shortcut for |minted| when only a single line of code is present. The |\mintinline| command is provided for inline use.
%
@@ -730,73 +547,61 @@
% Code can be typeset inline:
%
% \begin{example}
-% X\mintinline{python}{print(x**2)}X
+% \mintinline{py}{print("Hello!")}
% \end{example}
%
% The syntax is \cmd\mintinline\oarg{options}\marg{language}\meta{delim}\meta{code}\meta{delim}. The delimiters can be a single repeated character, just like for \cmd{\verb}. They can also be a pair of curly braces, |{}|. Curly braces are required when \cmd{\mintinline} is used in a movable argument, such as in a \cmd{\section}.
%
-% Unlike \cmd{\verb}, \cmd{\mintinline} can usually be used inside other commands. The main exception is when the code contains the percent \texttt{\%} or hash \texttt{\#} characters, or unmatched curly braces. For example, \cmd{\mintinline} typically works in \cmd{\footnote} and \cmd{\section}! Note that some document classes or packages, such as \texpkg{memoir}, redefine \cmd{\section} or have options that modify it in ways that are incompatible with \cmd{\mintinline}. If you use \cmd{\mintinline} inside \cmd{\section} or otherwise in a movable argument, you should experiment to make sure it is compatible with your document configuration. You may also want to consider \texpkg{fvextra}'s \cmd{\Verb} or \cmd{\EscVerb} as an alternative.
+% Unlike \cmd{\verb}, \cmd{\mintinline} can usually be used inside other commands. The main exception is when the code contains the percent \texttt{\%} or hash \texttt{\#} characters, or unpaired curly braces. For example, \cmd{\mintinline} typically works in \cmd{\footnote} and \cmd{\section}! Note that some document classes or packages, such as \texpkg{memoir}, redefine \cmd{\section} or have options that modify it in ways that are incompatible with \cmd{\mintinline}. If you use \cmd{\mintinline} inside \cmd{\section} or otherwise in a movable argument, you should experiment to make sure it is compatible with your document configuration. You may also want to consider \texpkg{fvextra}'s \cmd{\Verb} or \cmd{\EscVerb} as an alternative.
%
% The code typesetting for \cmd{\mintinline} is based on \texpkg{fvextra}'s \cmd{\Verb}. See the \href{https://github.com/gpoore/fvextra/}{\texpkg{fvextra} documentation on \cmd{\Verb}} for additional details about functionality and limitations.
%
% \DescribeMacro{\inputminted}
-% Finally, there's the |\inputminted| command to read and format whole files.
+% Finally, there's the |\inputminted| command to input external files.
% Its syntax is \cmd\inputminted\oarg{options}\marg{language}\marg{filename}.
%
-% \warn: \meta{filename} is used to generate a shell command for highlighing the file. Due to limitations in the design of \texpkg{minted} and limitations with TeX as a programming language, there is currently no escaping or sanitization of the filename as part of this process. Providing a malformed filename can execute arbitrary system commands. For example, providing ``|file.txt; touch file2.txt|'' as \meta{filename} could highlight one file while subsequently creating a new file. (Issue \href{https://github.com/gpoore/minted/issues/338}{\#338}.)
-%
%
% \subsection{Using different styles}
%
% \DescribeMacro{\usemintedstyle}
-% Instead of using the default style you may choose another stylesheet provided by \app{Pygments}. This may be done via the following:
%
-% \mint[frame=lines]{latex}/\usemintedstyle{name}/
-%
-% The full syntax is \cmd\usemintedstyle\oarg{language}\marg{style}. The style may be set for the document as a whole (no language specified), or only for a particular language. Note that the style may also be set via \cmd\setminted\ and via the optional argument for each command and environment.\footnote{Version 2.0 added the optional language argument and removed the restriction that the command be used in the preamble.}
+% \DescribeMacro{\setminted}
+% Instead of using the default highlighting style you may choose another style provided by Pygments. There are two equivalent ways to do this:
%
-% Highlighting styles with examples can be viewed online at \href{https://pygments.org/styles/}{pygments.org/styles}. It is possible to preview your code with different styles using the online demo at \href{http://pygments.org/demo/}{pygments.org/demo}. Available styles can also be listed by executing the following command on the command line:
+% \begin{minted}{latex}
+% \usemintedstyle{name}
+% \setminted{style=name}
+% \end{minted}
%
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ pygmentize -L styles
-% \end{Verbatim}
+% The |\setminted| approach has the advantage that other \mintedpkg\ options are accepted as well; |\usemintedstyle| is restricted to style modifications. The full syntax is \cmd\usemintedstyle\oarg{language}\marg{style} and \cmd\setminted\oarg{language}\marg{key=value}. The style may be set for the document as a whole (no language specified), or only for a particular language. Note that the style may also be set via the optional argument for each command and environment.
%
+% Highlighting styles with examples are at \href{https://pygments.org/styles/}{pygments.org/styles}. It is possible to preview your code with different styles using the online demo at \href{https://pygments.org/demo/}{pygments.org/demo}. Available styles can also be listed by running the command |pygmentize -L styles|.
%
-% Creating your own styles is also easy. Just follow the instructions provided on the
-% \href{http://pygments.org/docs/styles/#creating-own-styles}{\texpkg{Pygments} website}.
+% It is also possible to create your own styles. See the instructions on the
+% \href{https://pygments.org/docs/styles/#creating-own-styles}{\texpkg{Pygments} website}.
+% \mintedpkg\ only supports style names that match the regular expression |^[0-9A-Za-z_-]+$|.
%
%
% \subsection{Supported languages}
%
-% \app{Pygments} supports hundreds of different programming languages, template languages, and other markup languages. To see an exhaustive list of the currently supported languages, use the command
+% Pygments supports hundreds of different programming languages, template languages, and other markup languages. The list of currently supported languages is at \href{https://pygments.org/docs/lexers/}{pygments.org/docs/lexers/}. You can also run |pygmentize -L lexers|.
%
-% \begin{Verbatim}[gobble=3,commandchars=\\\{\}]
-% \$ pygmentize -L lexers
-% \end{Verbatim}
%
%
% \section{Floating listings}\label{sec:float}
%
% \DescribeEnv{listing}
-% \texpkg{minted} provides the |listing| environment to wrap around a source code block. This puts the code into a floating box, with the default placement |tbp| like figures and tables. You can also provide a |\caption| and a |\label| for such a listing in the usual way (that is, as for the |figure| and |table| environments):
-% \begin{VerbatimOut}[gobble=1]{minted.doc.out}
-% \begin{listing}[H]
-% \mint{cl}/(car (cons 1 '(2)))/
-% \caption{Example of a listing.}
-% \label{lst:example}
-% \end{listing}
-%
-% Listing \ref{lst:example} contains an example of a listing.
-% \end{VerbatimOut}
-% \inputminted[gobble=2,frame=lines]{latex}{minted.doc.out}
+% \mintedpkg\ provides a |listing| environment that can be used to wrap code blocks. This puts the code in a floating box similar to a figure or table, with default placement |tbp|. You can also provide a |\caption| and a |\label|:
%
-% will yield:
+% \begin{longexample}
+% \begin{listing}[H]
+% \mint{cl}/(car (cons 1 '(2)))/
+% \caption{Example of a listing.}
+% \label{lst:example}
+% \end{listing}
%
-% \hfill
-% \colorbox{minted@samplebg}{\begin{minipage}{0.6\textwidth}
-% \input{minted.doc.out}
-% \end{minipage}}
-% \hfill\hfill
+% Listing \ref{lst:example} contains an example of a listing.
+% \end{longexample}
%
% The default |listing| placement can be modified easily. When the package option |newfloat=false| (default), the \texpkg{float} package is used to create the |listing| environment. Placement can be modified by redefining |\fps@listing|. For example,
%\begin{verbatim}
@@ -818,7 +623,7 @@
% \end{example}
%
% \subsection*{Customizing the \texttt{listing} environment}
-% By default, the |listing| environment is created using the \texpkg{float} package. In that case, the |\listingscaption| and |\listoflistingscaption| macros described below may be used to customize the caption and list of listings. If \texpkg{minted} is loaded with the |newfloat| option, then the |listing| environment will be created with the more powerful \href{http://www.ctan.org/pkg/newfloat}{\texpkg{newfloat}} package instead. \texpkg{newfloat} is part of \href{http://www.ctan.org/pkg/caption}{\texpkg{caption}}, which provides many options for customizing captions.
+% By default, the |listing| environment is created using the \texpkg{float} package. In that case, the |\listingscaption| and |\listoflistingscaption| macros described below may be used to customize the caption and list of listings. If \mintedpkg\ is loaded with the |newfloat| option, then the |listing| environment will be created with the more powerful \href{https://www.ctan.org/pkg/newfloat}{\texpkg{newfloat}} package instead. \texpkg{newfloat} is part of \href{https://www.ctan.org/pkg/caption}{\texpkg{caption}}, which provides many options for customizing captions.
%
% When \texpkg{newfloat} is used to create the |listing| environment, customization should be achieved using \texpkg{newfloat}'s |\SetupFloatingEnvironment| command. For example, the string ``Listing'' in the caption could be changed to ``Program code'' using
%\begin{verbatim}
@@ -830,155 +635,189 @@
% Refer to the \texpkg{newfloat} and \texpkg{caption} documentation for additional information.
%
% \DescribeMacro{\listingscaption}
-% (Only applies when package option |newfloat| is not used.) The string ``Listing'' in a listing's caption can be changed.
-% To do this, simply redefine the macro |\listingscaption|, for example:
+% This allows the string ``Listing'' in a listing's caption to be customized. It only applies when package option |newfloat=false|. For example:
%
-% \mint[frame=lines]{latex}/\renewcommand{\listingscaption}{Program code}/
+%\begin{verbatim}
+%\renewcommand{\listingscaption}{Program code}
+%\end{verbatim}
%
% \DescribeMacro{\listoflistingscaption}
-% (Only applies when package option |newfloat| is not used.) Likewise, the caption of the listings list, ``List of Listings,'' can be changed by redefining
-% |\listoflistingscaption|:
+% This allows the caption of the listings list, ``List of Listings,'' to be customized. It only applies when package option |newfloat=false|. For example:
%
-% \mint[frame=lines]{latex}/\renewcommand{\listoflistingscaption}{List of Program Code}/
+%\begin{verbatim}
+%\renewcommand{\listoflistingscaption}{List of Program Code}
+%\end{verbatim}
%
%
-% \section{Options}
%
+% \section{Configuration}
%
%
-% \subsection{Package options}
+% \subsection{\mintedpkg\ config file \Verb{.latexminted_config}}
%
-% \DescribeMacro{chapter}
-% To control how \LaTeX{} counts the |listing| floats, you can pass either the
-% |section| or |chapter| option when loading the \texpkg{minted} package.
-% For example, the following will cause listings to be counted by chapter:
+% Several \mintedpkg\ settings with security implications can be customized with a config file |.latexminted_config|. This config file is loaded by the |latexminted| Python executable when it runs.
%
-% \mint[frame=lines]{latex}/\usepackage[chapter]{minted}/
+% The |latexminted| Python executable looks for |.latexminted_config| files in the following locations:
+% \begin{itemize}
+% \item User home directory, as found by Python's \href{https://docs.python.org/3/library/pathlib.html#pathlib.Path.home}{|pathlib.Path.home()|}.
+% \item |TEXMFHOME|. With MiKTeX on systems with multiple MiKTeX installations, this will be the |TEXMFHOME| from the first MiKTeX installation on |PATH|. With TeX Live on Windows systems with multiple TeX Live installations, this will be the |TEXMFHOME| from the first TeX Live installation on |PATH|. In all other cases, |TEXMFHOME| will correspond to the currently active \TeX\ installation. See the \href{https://github.com/gpoore/latexrestricted}{\pypkg{latexrestricted}} documentation for details. \pypkg{latexrestricted} is used by the |latexminted| Python executable to retrieve the value of |TEXMFHOME|.
+% \item The current \TeX\ working directory. Note that |enable_cwd_config| must be set |true| in the |.latexminted_config| in the user home directory or in the |TEXMFHOME| directory to enable this; |.latexminted_config| in the current \TeX\ working directory is not enabled by default for security reasons. Even when a config file in the current \TeX\ working directory is enabled, it cannot be used to modify certain security-related settings.
+% \end{itemize}
%
+% Overall configuration is derived by merging all config files, with later files in the list above having precedence over earlier files. Boolean and string values are overwritten by later config files. Collection values (currently only sets derived from lists) are merged with earlier values.
+%
+% The |.latexminted_config| file may be in Python literal format (dicts and lists of strings and bools), JSON, or TOML (requires Python 3.11+). It must be encoded as UTF-8.
%
-% \DescribeMacro{cache=\meta{boolean} (default:~true)}
-% \texpkg{minted} works by saving code to a temporary file, highlighting the code via \app{Pygments} and saving the output to another temporary file, and inputting the output into the \LaTeX\ document. This process can become quite slow if there are several chunks of code to highlight. To avoid this, the package provides a |cache| option. This is on by default.
%
-% The |cache| option creates a directory |_minted-|\meta{jobname} in the document's root directory (this may be customized with the |cachedir| option).\footnote{The directory is actually named using a ``sanitized'' copy of \meta{jobname}, in which spaces and asterisks have been replaced by underscores, and double quotation marks have been stripped. If the file name contains spaces, \texttt{\string\jobname} will contain a quote-wrapped name, except under older versions of MiKTeX which used the name with spaces replaced by asterisks. Using a ``sanitized'' \meta{jobname} is simpler than accomodating the various escaping conventions.} Files of highlighted code are stored in this directory, so that the code will not have to be highlighted again in the future. In most cases, caching will significantly speed up document compilation.
+% \subsubsection*{Config settings}
%
-% Cached files that are no longer in use are automatically deleted.\footnote{This depends on the main auxiliary file not being deleted or becoming corrupted. If that happens, you could simply delete the cache directory and start over.}
+% \begin{description}
+% \item[{\Verb/security: dict[str, str | bool]/}] These settings relate to |latexminted| security. They can only be set in |.latexminted_config| in the user home directory or in |TEXMFHOME|. They cannot be set in |.latexminted_config| in the current \TeX\ working directory.
+% \begin{description}
+% \item[\Verb|enable_cwd_config: bool = False|] Load a |.latexminted_config| file from the current \TeX\ working directory if it exists. This is disabled by default because the config file can enable |custom_lexers|, which is equivalent to arbitrary code execution.
+% \item[\Verb/file_path_analysis: "resolve" | "string" = "resolve"/] This specifies how |latexminted| determines whether files are readable and writable. Relative file paths are always treated as being relative to the current \TeX\ working directory.
%
+% With |resolve|, any symlinks in file paths are resolved with the file system before paths are compared with permitted \LaTeX\ read/write locations. Arbitrary relative paths including ``|..|'' are allowed so long as the final location is permitted.
%
-% \DescribeMacro{cachedir=\meta{directory} (def:~\_minted-\meta{jobname})}
-% This allows the directory in which cached files are stored to be specified. Paths should use forward slashes, even under Windows.
+% With |string|, paths are analyzed as strings in comparing them with permitted \LaTeX\ read/write locations. This follows the approach taken in \TeX's file system security. Paths cannot contain ``|..|'' to access a parent directory, even if the parent directory is a valid location. Because symlinks are not resolved with the file system, it is possible to access locations outside permitted \LaTeX\ read/write locations, if the permitted locations contain symlinks to elsewhere.
%
-% Special characters must be escaped. For example, |cachedir=~/mintedcache| would not work because the tilde |~| would be converted into the \LaTeX\ commands for a non-breaking space, rather than being treated literally. Instead, use |\string~/mintedcache|, |\detokenize{~/mintedcache}|, or an equivalent solution.
+% \item[{\Verb|permitted_pathext_file_extensions: list[str]|}] As a security measure under Windows, \LaTeX\ cannot write files with file extensions in |PATHEXT|, such as |.bat| and |.exe|. This setting allows |latexminted| to write files with the specified file extensions, overriding \LaTeX\ security. File extensions should be in the form ``|.<ext>|'', for example, ``|.bat|''. This setting is used in extracting source code from \LaTeX\ documents and saving it in standalone source files.
%
-% Paths may contain spaces, but only if the entire \meta{directory} is wrapped in curly braces |{}|, and only if the spaces are quoted. For example,
+% When these file extensions are enabled for writing, as a security measure |latexminted| will only allow them to be created in \textbf{subdirectories} of the current \TeX\ working directory, |TEXMFOUTPUT|, and |TEXMF_OUTPUT_DIRECTORY|. These files cannot be created directly under the \TeX\ working directory, |TEXMFOUTPUT|, and |TEXMF_OUTPUT_DIRECTORY| because those locations are more likely to be used as a working directory in a shell, and thus writing executable files in those locations would increase the risk of accidental code execution.
+% \end{description}
+%
+% \item[{\Verb/custom_lexers: dict[str, str | list[str]]/}] This is a mapping of custom lexer file names to SHA256 hashes. Only custom lexers with these file names and the corresponding hashes are permitted. Lists of hashes are allowed to permit multiple versions of a lexer with a given file name. All other custom lexers are prohibited, because loading custom lexers is equivalent to arbitrary code execution. For example:
+%\begin{verbatim}
+%"custom_lexers": {
+% "mylexer.py": "<sha256>"
+%}
+%\end{verbatim}
+%
+% By default, it is assumed that custom lexer files implement a class |CustomLexer|. This can be modified by including the lexer class name with the file name, separated by a colon, when the lexer is used. For example:
+%
+%\begin{verbatim}
+%\inputminted{./<path>/mylexer.py:LexerClass}{<file>}
+%\end{verbatim}
+%
+% Note that |custom_lexers| only applies to custom lexers in standalone Python files. Lexers that are installed within Python as plugin packages work automatically with Pygments and do not need to be enabled separately. However, in that case it is necessary to install \pypkg{latexminted} and Pygments within a Python installation. When \TeX\ package managers install \pypkg{latexminted} and Pygments within a \TeX\ installation, these are not compatible with Pygments plugin packages.
+% \end{description}
+%
+%
+% \subsection{macOS compatibility}
+% \label{sec:configuration:macos}
+%
+% If you are using \mintedpkg\ with some versions/configurations of macOS, and are using caching with a large number of code blocks ($>256$), you may receive a Python error during syntax highlighting that looks like this:
%\begin{Verbatim}
-%cachedir = {\detokenize{~/"minted cache"/"with spaces"}}
+%OSError: [Errno 24] Too many open files:
%\end{Verbatim}
+% This is due to the way files are handled by the operating system, combined with the way that caching works. To resolve this, you may use one of the following commands to increase the number of files that may be used:
+% \begin{itemize}
+% \item |launchctl limit maxfiles|
+% \item |ulimit -n|
+% \end{itemize}
%
-% Note that the cache directory is relative to the |outputdir|, if an |outputdir| is specified.
%
+% \section{Options}
%
-% \DescribeMacro{finalizecache=\meta{boolean} (default:~false)}
-% In some cases, it may be desirable to use \texpkg{minted} in an environment in which |-shell-escape| is not allowed. A document might be submitted to a publisher or preprint server or used with an online service that does not support |-shell-escape|. This is possible as long as \texpkg{minted} content does not need to be modified.
%
-% Compiling with the |finalizecache| option prepares the cache for use in an environment without |-shell-escape|.\footnote{Ordinarily, cache files are named using an MD5 hash of highlighting settings and highlighted text. \texttt{finalizecache} renames cache files using a \texttt{listing<number>.pygtex} scheme. This makes it simpler to match up document content and cache files, and is also necessary for the XeTeX engine since prior to TeX Live 2016 it lacked the built-in MD5 capabilities that pdfTeX and LuaTeX have.} Once this has been done, the |finalizecache| option may be swapped for the |frozencache| option, which will then use the frozen (static) cache in the future, without needing |-shell-escape|.
%
+% \subsection{Package options}
%
-% \DescribeMacro{fontencoding=\meta{encoding} (default:~\meta{doc~encoding})}
-% Set font encoding used for typesetting code.
+% \DescribeMacro{chapter}
+% To control how \LaTeX{} counts the |listing| floats, you can pass either the
+% |chapter| or |section| option when loading the \mintedpkg\ package.
+% For example, the following will cause listings to be counted by chapter:
%
-% For example, |fontencoding=T1|.
+% \begin{minted}{latex}
+% \usepackage[chapter]{minted}
+% \end{minted}
%
-% \DescribeMacro{frozencache=\meta{boolean} (default:~false)}
-% Use a frozen (static) cache created with the |finalizecache| option. When |frozencache| is on, |-shell-escape| is not needed, and Python and Pygments are not required. In addition, any external files accessed through |\inputminted| are no longer necessary.
%
-% \textbf{This option must be used with care. A document \emph{must} be in final form, as far as \texpkg{minted} is concerned, \emph{before} \texttt{frozencache} is turned on, and the document \emph{must} have been compiled with \texttt{finalizecache}. When this option is on, \texpkg{minted} content cannot be modified, except by editing the cache files directly. Changing any \texpkg{minted} settings that require Pygments or Python is not possible. If \texpkg{minted} content is incorrectly modified after \texttt{frozencache} is turned on, \texpkg{minted} \emph{cannot} detect the modification.}
+% \DescribeMacro{cache=\meta{boolean} (default:~true)}
+% \mintedpkg\ works by saving code to a temporary file, highlighting it with Pygments, and then passing the result back to \LaTeX\ for inclusion in the document. This process can become quite slow if there are several chunks of code to highlight. To avoid this, the package provides a |cache| option. This is on by default.
%
-% If you are using |frozencache|, and want to verify that \texpkg{minted} settings or content have not been modified in an invalid fashion, you can test the cache using the following procedure.
-% \begin{enumerate}
-% \item Obtain a copy of the cache used with |frozencache|.
-% \item Compile the document in an environment that supports |-shell-escape|, with |finalizecache=true| and |frozencache=false|. This essentially regenerates the frozen (static) cache.
-% \item Compare the original cache with the newly generated cache. Under Linux and OS X, you could use |diff|; under Windows, you probably want |fc|. If \texpkg{minted} content and settings have not been modified in an invalid fashion, all files will be identical (assuming that compatible versions of Pygments are used for both caches).
-% \end{enumerate}
+% The |cache| option creates a directory |_minted| in the document's root directory (this may be customized with the |cachedir| option). Files of highlighted code are stored in this directory, so that the code will not have to be highlighted again in the future. Cache files that are no longer used are automatically deleted. In most cases, caching will significantly speed up document compilation.
%
%
-% \DescribeMacro{draft=\meta{boolean} (default:~false)}
-% This uses \texpkg{fancyvrb} alone for all typesetting; \app{Pygments} is not used. This trades syntax highlighting and some other \app{minted} features for faster compiling. Performance should be essentially the same as using \texpkg{fancyvrb} directly; no external temporary files are used. Note that if you are not changing much code between compiles, the difference in performance between caching and draft mode may be minimal. Also note that |draft| settings are typically inherited from the document class.
+% \DescribeMacro{cachedir=\meta{directory} (default:~\_minted)}
+% This allows the directory in which cache files are stored to be customized. Paths should use forward slashes, even under Windows. Special characters must be escaped with |\string| or |\detokenize|.
%
-% Draft mode does not support |autogobble|. Regular |gobble|, |linenos|, and most other options not related to syntax highlighting will still function in draft mode.
+% Note that the cache directory is relative to |-output-directory| or equivalently the |TEXMF_OUTPUT_DIRECTORY| environment variable, if that is set.
%
-% Documents can usually be compiled without shell escape in draft mode. The \texpkg{ifplatform} package may issue a warning about limited functionality due to shell escape being disabled, but this may be ignored in almost all cases. (Shell escape is only really required if you have an unusual system configuration such that the |\ifwindows| macro must fall back to using shell escape to determine the system. See the \texpkg{ifplatform} documentation for more details: \url{http://www.ctan.org/pkg/ifplatform}.)
%
-% If the |cache| option is set, then all existing cache files will be kept while draft mode is on. This allows caching to be used intermitently with draft mode without requiring that the cache be completely recreated each time. Automatic cleanup of cached files will resume as soon as draft mode is turned off. (This assumes that the auxiliary file has not been deleted in the meantime; it contains the cache history and allows automatic cleanup of unused files.)
+% \DescribeMacro{debug=\meta{boolean} (default:~false)}
+% Provide additional information for aid in debugging. This keeps temp files that are used in generating highlighted code and also writes additional information to the log.
%
%
-% \DescribeMacro{final=\meta{boolean} (default:~true)}
-% This is the opposite of |draft|; it is equivalent to |draft=false|. Again, note that |draft| and |final| settings are typically inherited from the document class.
+% \DescribeMacro{frozencache=\meta{boolean} (default:~false)}
+% Use a frozen (static) cache. When |frozencache=true|, Python and Pygments are not required, and any external files accessed through |\inputminted| are no longer necessary. If a cache file is missing, an error will be reported and there will be no attempt to generate the missing cache file.
%
+% When using |frozencache| with |-output-directory|, the |cachedir| package option should be used to specify a full relative path to the cache (for example, |cachedir=./<output_directory>/_minted|).
%
-% \DescribeMacro{inputlanglinenos=\meta{boolean} (default:~false)}
-% This enables |langlinenos| and causes it to apply to |\inputminted| (and custom commands based on it) in addition to |minted| environments and |\mint| commands (and custom environments/commands based on them).
%
-% The regular |langlinenos| option treats all code within a document's |.tex| files as having one set of line numbering per language, and then treats each inputted source file as having its own separate numbering. |inputlanglinenos| defines a single numbering per language, regardless of where code originates.
+% \DescribeMacro{highlightmode=\meta{string} (default:~fastfirst)}
+% Determines when code is highlighted.
%
+% The default is |fastfirst|. If a cache for the document exists, then code is highlighted immediately. If a cache for the document does not exist, then typeset a placeholder instead of code and highlight all code at the end of the document. This will require a second compile before code is typeset, but because all code is highlighted at once, there is less overhead and the total time required can be significantly less for documents that include many code snippets.
%
-% \DescribeMacro{kpsewhich=\meta{boolean} (default:~false)}
-% This option uses |kpsewhich| to locate files that are to be highlighted. Some build tools such as |texi2pdf| function by modifying |TEXINPUTS|; in some cases, users may customize |TEXINPUTS| as well. The |kpsewhich| option allows \texpkg{minted} to work with such configurations.
+% The alternatives are |fast| (always highlight at end of document, requiring a second compile) and |immediate| (always highlight immediately, so no second compile is needed). |immediate| should be used when typesetting code in external temp files that are overwritten during compilation.
%
-% This option may add a noticeable amount of overhead on some systems, or with some system configurations.
+% When code is highlighted at the end of the document with |fast| or |fastfirst|, any error and warning messages will refer to a location at the end of the document rather than the original code location, since highlighting occurred at the end of the document. In this case, messages are supplemented with original \LaTeX\ source file names and line numbers to aid in debugging.
%
-% This option does \emph{not} make \texpkg{minted} work with the |-output-directory| and |-aux-directory| command-line options for \LaTeX. For those, see the |outputdir| package option.
%
+% \DescribeMacro{inputlexerlinenos=\meta{boolean} (default:~false)}
+% This enables |lexerlinenos| and causes it to apply to |\inputminted| (and custom commands based on it) in addition to |minted| environments and |\mint| commands (and custom environments/commands based on them).
%
-% \DescribeMacro{langlinenos=\meta{boolean} (default:~false)}
-% This allows all |minted| environments and |\mint| commands (and custom environments/commands based on them) for a given language to share line numbering when |firstnumber=last|, so that each subsequent command/environment has line numbering that continues from the previous one. This does not apply to |\inputminted| (and custom commands based on it); see the package option |inputlanglinenos| for that.
+% The regular |lexerlinenos| option treats all code within a document's |.tex| files as having one set of line numbering per language, and then treats each inputted source file as having its own separate numbering. |inputlexerlinenos| defines a single numbering per lexer, regardless of where code originates.
%
-% \texpkg{minted} uses the \texpkg{fancyvrb} package behind the scenes for the code typesetting. \texpkg{fancyvrb} provides an option |firstnumber| that allows the starting line number of an environment to be specified. For convenience, there is an option |firstnumber=last| that allows line numbering to pick up where it left off. The |langlinenos| option makes |firstnumber| work for each language individually with all |minted| and |\mint| usages. For example, consider the code and output below.
%
-% \begin{VerbatimOut}[gobble=1]{minted.doc.out}
-% \begin{minted}[linenos]{python}
-% def f(x):
-% return x**2
-% \end{minted}
+% \DescribeMacro{lexerlinenos=\meta{boolean} (default:~false)}
+% This allows all |minted| environments and |\mint| commands (and custom environments/commands based on them) for a given lexer (language) to share line numbering when |firstnumber=last|, so that each subsequent command/environment has line numbering that continues from the previous one. This does not apply to |\inputminted| (and custom commands based on it); see the package option |inputlexerlinenos| for that.
%
-% \begin{minted}[linenos]{ruby}
-% def func
-% puts "message"
-% end
-% \end{minted}
+% \mintedpkg\ uses the \texpkg{fancyvrb} package behind the scenes for the code typesetting. \texpkg{fancyvrb} provides an option |firstnumber| that allows the starting line number of an environment to be specified. For convenience, there is an option |firstnumber=last| that allows line numbering to pick up where it left off. The |lexerlinenos| option makes |firstnumber| work for each lexer (language) individually with all |minted| and |\mint| usages. For example, consider the code and output below.
%
-% \begin{minted}[linenos, firstnumber=last]{python}
-% def g(x):
-% return 2*x
-% \end{minted}
-% \end{VerbatimOut}
-% \inputminted[frame=single, rulecolor=minted@linkcolor]{latex}{minted.doc.out}
-% \hfill
-% \colorbox{minted@samplebg}{\begin{minipage}{0.6\textwidth}
-% \input{minted.doc.out}
-% \end{minipage}}
-% \hfill\hfill
+% \begin{longexample}[xleftmargin=1em]
+% \begin{minted}[linenos]{python}
+% def f(x):
+% return x**2
+% \end{minted}
%
-% Without the |langlinenos| option, the line numbering in the second Python environment would not pick up where the first Python environment left off. Rather, it would pick up with the Ruby line numbering.
+% \begin{minted}[linenos]{ruby}
+% def func
+% puts "message"
+% end
+% \end{minted}
+%
+% \begin{minted}[linenos, firstnumber=last]{python}
+% def g(x):
+% return 2*x
+% \end{minted}
+% \end{longexample}
+%
+% Without the |lexerlinenos| option, the line numbering in the second Python environment would not pick up where the first Python environment left off. Rather, it would pick up with the Ruby line numbering.
%
%
% \DescribeMacro{newfloat=\meta{boolean} (default:~false)}
% By default, the |listing| environment is created using the \texpkg{float} package. The |newfloat| option creates the environment using \texpkg{newfloat} instead. This provides better integration with the \texpkg{caption} package.
%
%
-% \DescribeMacro{outputdir=\meta{directory} (default:~\meta{none})}
-% The |-output-directory| and |-aux-directory| (MiKTeX) command-line options for \LaTeX\ cause problems for \texpkg{minted}, because the \texpkg{minted} temporary files are saved in |<outputdir>|, but \texpkg{minted} still looks for them in the document root directory. There is no way to access the value of the command-line option so that \texpkg{minted} can automatically look in the right place. But it is possible to allow the output directory to be specified manually as a package option.
-%
-% The output directory should be specified using an absolute path or a path relative to the document root directory. Paths should use forward slashes, even under Windows. Special characters must be escaped, while spaces require quoting and need the entire \meta{directory} to be wrapped in curly braces |{}|. See |cachedir| above for examples of escaping and quoting.
+% \DescribeMacro{placeholder=\meta{boolean} (default:~false)}
+% Instead of typesetting code, insert a placeholder. This is enabled automatically when working with PGF/TikZ externalization.
%
%
% \DescribeMacro{section}
% To control how \LaTeX{} counts the |listing| floats, you can pass either the
-% |section| or |chapter| option when loading the \texpkg{minted} package.
+% |section| or |chapter| option when loading the \mintedpkg\ package.
%
%
-% \subsection{Macro option usage}
+% \DescribeMacro{verbatim=\meta{boolean} (default:~false)}
+% Instead of highlighting code, attempt to typeset it verbatim without using the |latexminted| Python executable. This is not guaranteed to be an accurate representation of the code, since some features such as |autogobble| require Python.
%
-% All \texpkg{minted} highlighting commands accept the same set of options.
+%
+% \subsection{Setting options for commands and environments}
+% \label{sec:options:macro}
+%
+% All \mintedpkg\ highlighting commands and environment accept the same set of options.
% Options are specified as a comma-separated list of |key=value| pairs.
% For example, we can specify that the lines should be numbered:
%
@@ -994,8 +833,6 @@
% \end{example}
%
% An option value of |true| may also be omitted entirely (including the ``|=|'').
-% To customize the display of the line numbers further, override the |\theFancyVerbLine| command.
-% Consult the \texpkg{fancyvrb} documentation for details.
%
% |\mint| accepts the same options:
%
@@ -1006,7 +843,7 @@
% Here's another example: we want to use the \LaTeX{} math mode inside comments:
%
% \begin{example}
-% \begin{minted}[mathescape]{python}
+% \begin{minted}[mathescape]{py}
% # Returns $\sum_{i=1}^{n}i$
% def sum_from_one_to(n):
% r = range(1, n + 1)
@@ -1016,36 +853,38 @@
%
% To make your \LaTeX{} code more readable you might want to indent the code inside a |minted|
% environment.
-% The option |gobble| removes these unnecessary whitespace characters from the output. There is also an |autogobble| option that detects the length of this whitespace automatically.
+% The option |gobble| removes a specified number of characters from the output. There is also an |autogobble| option that automatically removes indentation (dedents code).
%
+% \begingroup
+% \setminted{autogobble=false}
% \begin{example}
-% \begin{minted}[gobble=2,
-% showspaces]{python}
+% \begin{minted}[showspaces]{py}
% def boring(args = None):
% pass
-% \end{minted}
+% \end{minted}
%
-% versus
+% versus
%
-% \begin{minted}[showspaces]{python}
+% \begin{minted}[gobble=4,
+% showspaces]{py}
% def boring(args = None):
% pass
-% \end{minted}
+% \end{minted}
% \end{example}
+% \endgroup
%
% \DescribeMacro{\setminted}
-% You may wish to set options for the document as a whole, or for an entire language. This is possible via \cmd\setminted\oarg{language}\marg{key=value,...}. Language-specific options override document-wide options. Individual command and environment options override language-specific options.
+% You may wish to set options for the document as a whole, or for an entire lexer (language). This is possible via \cmd\setminted\oarg{lexer}\marg{key=value,...}. Lexer-specific options override document-wide options. Individual command and environment options override lexer-specific options.
%
% \DescribeMacro{\setmintedinline}
-% You may wish to set separate options for \cmd\mintinline, either for the document as a whole or for a specific language. This is possible via \cmd\setmintedinline. The syntax is
-% \cmd\setmintedinline\oarg{language}\marg{key=value,...}. Language-specific options override document-wide options. Individual command options override language-specific options. All settings specified with \cmd\setmintedinline\ override those set with \cmd\setminted. That is, inline settings always have a higher precedence than general settings.
+% You may wish to set separate options for \cmd\mintinline, either for the document as a whole or for a specific lexer (language). This is possible via \cmd\setmintedinline. The syntax is
+% \cmd\setmintedinline\oarg{lexer}\marg{key=value,...}. Lexer-specific options override document-wide options. Individual command options override lexer-specific options. All settings specified with \cmd\setmintedinline\ override those set with \cmd\setminted. That is, inline settings always have a higher precedence than general settings.
%
-% \subsection{Available options}
+% \subsection{Command and environment options}
%
% \newcommand\appliesto[1]{\textsf{[For #1 only]}}
%
-% Following is a full list of available options.
-% For more detailed option descriptions please refer to the \texpkg{fancyvrb} and \app{Pygments} documentation.
+% Following is a full list of available options. Several options are simply passed on to Pygments, \texpkg{fancyvrb}, and \texpkg{fvextra} for processing. In those cases, more details may be in the documentation for those software packages.
%
% \begin{optionlist}
% \item[autogobble (boolean) (false)]
@@ -1053,52 +892,41 @@
%
% \begin{example}
% ...text.
-% \begin{minted}[autogobble]{python}
+% \begin{minted}[autogobble]{py}
% def f(x):
% return x**2
% \end{minted}
% \end{example}
%
+% When |autogobble| and |gobble| are used together, the effect is cumulative. First |autogobble| removes all common indentation, and then |gobble| is applied.
+%
+% |autogobble| and |gobble| operate on code before the highlighting process begins (before lexing), treating the code purely as text. Meanwhile, |gobblefilter| operates on the token stream generated by a lexer. If the removed characters are simply indentation coming from how the code was entered within \LaTeX, then |autogobble| and |gobble| should typically be preferred. If the removed characters are syntactically significant, then |gobblefilter| may be better. Which approach is preferable may also depend on the implementation details of the lexer.
+%
% \item[baselinestretch (dimension) (\meta{document default})]
-% Value to use as for baselinestretch inside the listing.
+% Value to use for baselinestretch inside the listing.
%
%
% \item[beameroverlays (boolean) (false)]
% Give the |<| and |>| characters their normal text meanings when used with |escapeinside| and |texcomments|, so that \texpkg{beamer} overlays of the form |\only<1>{...}| will work.
%
%
-% \item[bgcolor (string) (\meta{none})]
-% Background color of the listing. Be aware that this option has several limitations (described below); see ``Framing alternatives'' below for more powerful alternatives.
+% \item[bgcolor (string) (none)]
+% Background color behind commands and environments. This is only a basic, lightweight implementation of background colors using |\colorbox|. For more control of background colors, consider \href{https://ctan.org/pkg/tcolorbox}{\pkg{tcolorbox}} or a similar package, or a custom background color implementation.
%
-% The value of this option must \emph{not} be a color command. Instead, it must be a color \emph{name}, given as a string, of a previously-defined color:
+% |bgcolor| prevents line breaks for |\mintinline|. If you want to use \texttt{\string\setminted} to set background colors, and only want background colors on \texttt{minted} and \texttt{\string\mint}, you may use \texttt{\string\setmintedinline\{bgcolor=none\}} to turn off the coloring for inline commands.
+%
+% The value of this option must \emph{not} be a color command. Instead, it must be a color \emph{name}, given as a string, of a previously-defined color:
%
% \begin{example}
-% \definecolor{bg}{rgb}{0.95,0.95,0.95}
-% \begin{minted}[bgcolor=bg]{php}
-% <?php
-% echo "Hello, $x";
-% ?>
-% \end{minted}
+% \definecolor{bg}{rgb}{.9, .9, .9}
+% \begin{minted}[bgcolor=bg]{php}
+% <?php
+% echo "Hello, $x";
+% ?>
+% \end{minted}
% \end{example}
%
-% This option puts \texttt{minted} environments and \texttt{\string\mint} commands in a \texttt{snugshade*} environment from the \texpkg{framed} package, which supports breaks across pages. (Prior to \texpkg{minted} 2.2, a \texttt{minipage} was used, which prevented page breaks and gave undesirable spacing from surrounding text.) Be aware that if \texttt{bgcolor} is used with \texttt{breaklines=true}, and a line break occurs just before a page break, then text may extend below the colored background in some instances. It is best to use a more advanced framing package in those cases; see ``Framing alternatives'' below.
-%
-% This option puts \texttt{\string\mintinline} inside a \texttt{\string\colorbox}, which \textbf{does not allow line breaks}. If you want to use \texttt{\string\setminted} to set background colors, and only want background colors on \texttt{minted} and \texttt{\string\mint}, you may use \texttt{\string\setmintedinline\{bgcolor=\{\}\}} to turn off the coloring for inline commands.
-%
-% ~
-%
-% \textbf{Framing alternatives}
-%
-% If you want more reliable and advanced options for background colors and framing, you should consider a more advanced framing package such as \texpkg{mdframed} or \texpkg{tcolorbox}. It is easy to add framing to \texpkg{minted} commands and environments using the \texpkg{etoolbox} package, which is automatically loaded by \texpkg{minted}. For example, using \texpkg{mdframed}:
-%\begin{Verbatim}
-%\BeforeBeginEnvironment{minted}{\begin{mdframed}}
-%\AfterEndEnvironment{minted}{\end{mdframed}}
-%\end{Verbatim}
-% Some framing packages also provide built-in commands for such purposes. For example, \texpkg{mdframed} provides a \texttt{\string\surroundwithmdframed} command, which could be used to add a frame to all \texttt{minted} environments:
-%\begin{Verbatim}
-%\surroundwithmdframed{minted}
-%\end{Verbatim}
-% \texpkg{tcolorbox} even provides a built-in framing environment with \texpkg{minted} support. Simply use \texttt{\string\tcbuselibrary\{minted\}} in the preamble, and then put code within a \texttt{tcblisting} environment:
+% As an alternative to |bgcolor|, \texpkg{tcolorbox} provides a built-in framing environment with \mintedpkg\ support. Simply use \texttt{\string\tcbuselibrary\{minted\}} in the preamble, and then put code within a \texttt{tcblisting} environment:
%\begin{Verbatim}
%\begin{tcblisting}{<tcb options>,
% minted language=<language>,
@@ -1110,6 +938,14 @@
% \texpkg{tcolorbox} provides other commands and environments for fine-tuning listing appearance and for working with external code files.
%
%
+% \item[bgcolorpadding (length) (none)]
+% Padding when |bgcolor| is set. For inline commands and for environments based on |BVerbatim|, this sets |\fboxsep| for the |\colorbox| that is used to create the background color. For environments based on |Verbatim|, \texpkg{fancyvrb}'s frame options are used instead, particularly |framesep| and |fillcolor|. See the \texpkg{fvextra} documentation for implementation details.
+%
+%
+% \item[bgcolorvphantom (macro) (\Verb{\vphantom{\"Apgjy}})]
+% |\vphantom| or similar macro such as |\strut| that is inserted at the beginning of each line of code using |bgcolor|. This allows the height of the background for each line of code to be customized. This is primarily useful for customizing the background for |\mintinline| and other inline code. It will typically have no effect on |minted| environments and other block code unless it is set to a size larger than |\strut|.
+%
+%
% \item[breakafter (string) (\meta{none})]
% Break lines after specified characters, not just at spaces, when \texttt{breaklines=true}.
%
@@ -1126,12 +962,14 @@
% \item[breakafterinrun] (boolean) (true)
% When \texttt{breakafter} is used, group all adjacent identical characters together, and only allow a break after the last character. When \texttt{breakbefore} and \texttt{breakafter} are used for the same character, \texttt{breakbeforeinrun} and \texttt{breakafterinrun} must both have the same setting.
%
-% \item[breakaftersymbolpre (string) (\string\,\string\footnotesize\string\ensuremath\{\_\string\rfloor\}, \,\footnotesize\ensuremath{_\rfloor})]
-% The symbol inserted pre-break for breaks inserted by \texttt{breakafter}.
%
% \item[breakaftersymbolpost (string) (\meta{none})]
% The symbol inserted post-break for breaks inserted by \texttt{breakafter}.
%
+% \item[breakaftersymbolpre (string) (\string\,\string\footnotesize\string\ensuremath\{\_\string\rfloor\}, \,\footnotesize\ensuremath{_\rfloor})]
+% The symbol inserted pre-break for breaks inserted by \texttt{breakafter}.
+%
+%
% \item[breakanywhere (boolean) (false)]
% Break lines anywhere, not just at spaces, when \texttt{breaklines=true}.
%
@@ -1144,12 +982,20 @@
% \end{longexample}
% \endgroup
%
-% \item[breakanywheresymbolpre (string) (\string\,\string\footnotesize\string\ensuremath\{\_\string\rfloor\}, \,\footnotesize\ensuremath{_\rfloor})]
-% The symbol inserted pre-break for breaks inserted by \texttt{breakanywhere}.
+% \item[breakanywhereinlinestretch (length) (\meta{none})]
+% Stretch glue to insert at potential |breakanywhere| break locations in inline contexts, to give better line widths and avoid overfull |\hbox|. This allows the spacing between adjacent non-space characters to stretch, so it should not be used when column alignment is important. For typical line lengths, values between |0.01em| and |0.02em| should be sufficient to provide a cumulative stretch per line that is equal to or greater than the width of one character.
+%
+% This is typically not needed in cases where an overfull |\hbox| only overflows by tiny amount, perhaps a fraction of a pt. In those cases, the overfull |\hbox| could be ignored, |\hfuzz| could be set to 1pt or 2pt to suppress tiny overfull |\hbox| warnings, or |breakanywheresymbolpre| might be redefined to adjust spacing.
+%
%
% \item[breakanywheresymbolpost (string) (\meta{none})]
% The symbol inserted post-break for breaks inserted by \texttt{breakanywhere}.
%
+%
+% \item[breakanywheresymbolpre (string) (\string\,\string\footnotesize\string\ensuremath\{\_\string\rfloor\}, \,\footnotesize\ensuremath{_\rfloor})]
+% The symbol inserted pre-break for breaks inserted by \texttt{breakanywhere}.
+%
+%
% \item[breakautoindent (boolean) (true)]
% When a line is broken, automatically indent the continuation lines to the indentation level of the first line. When \texttt{breakautoindent} and \texttt{breakindent} are used together, the indentations add. This indentation is combined with \texttt{breaksymbolindentleft} to give the total actual left indentation. Does not apply to \texttt{\string\mintinline}.
%
@@ -1169,22 +1015,29 @@
% \item[breakbeforeinrun] (boolean) (true)
% When \texttt{breakbefore} is used, group all adjacent identical characters together, and only allow a break before the first character. When \texttt{breakbefore} and \texttt{breakafter} are used for the same character, \texttt{breakbeforeinrun} and \texttt{breakafterinrun} must both have the same setting.
%
-% \item[breakbeforesymbolpre (string) (\string\,\string\footnotesize\string\ensuremath\{\_\string\rfloor\}, \,\footnotesize\ensuremath{_\rfloor})]
-% The symbol inserted pre-break for breaks inserted by \texttt{breakbefore}.
%
% \item[breakbeforesymbolpost (string) (\meta{none})]
% The symbol inserted post-break for breaks inserted by \texttt{breakbefore}.
%
+%
+% \item[breakbeforesymbolpre (string) (\string\,\string\footnotesize\string\ensuremath\{\_\string\rfloor\}, \,\footnotesize\ensuremath{_\rfloor})]
+% The symbol inserted pre-break for breaks inserted by \texttt{breakbefore}.
+%
+%
% \item[breakbytoken (boolean) (false)]
% Only break lines at locations that are not within tokens; prevent tokens from being split by line breaks. By default, \texttt{breaklines} causes line breaking at the space nearest the margin. While this minimizes the number of line breaks that are necessary, it can be inconvenient if a break occurs in the middle of a string or similar token.
%
-% This is not compatible with \texttt{draft} mode. A complete list of Pygments tokens is available at \url{http://pygments.org/docs/tokens/}. If the breaks provided by \texttt{breakbytoken} occur in unexpected locations, it may indicate a bug or shortcoming in the Pygments lexer for the language.
+% This does not allow line breaks between immediately adjacent tokens; for that, see |breakbytokenanywhere|.
+%
+% A complete list of Pygments tokens is available at \href{https://pygments.org/docs/tokens}{pygments.org/docs/tokens}. If the breaks provided by \texttt{breakbytoken} occur in unexpected locations, it may indicate a bug or shortcoming in the Pygments lexer for the language.
%
% \item[breakbytokenanywhere (boolean) (false)]
% Like \texttt{breakbytoken}, but also allows line breaks between immediately adjacent tokens, not just between tokens that are separated by spaces. Using \texttt{breakbytokenanywhere} with \texttt{breakanywhere} is redundant.
%
% \item[breakindent (dimension) (\meta{breakindentnchars})]
-% When a line is broken, indent the continuation lines by this amount. When |breakautoindent| and |breakindent| are used together, the indentations add. This indentation is combined with |breaksymbolindentleft| to give the total actual left indentation.
+% When a line is broken, indent the continuation lines by this amount.
+%
+% When |breakautoindent| and |breakindent| are used together, the indentations add. This indentation is combined with |breaksymbolindentleft| to give the total actual left indentation.
%
% Does not apply to \texttt{\string\mintinline}.
%
@@ -1194,11 +1047,11 @@
% \item[breaklines (boolean) (false)]
% Automatically break long lines in \texttt{minted} environments and \texttt{\string\mint} commands, and wrap longer lines in \texttt{\string\mintinline}.
%
-% By default, automatic breaks occur at space characters. Use \texttt{breakanywhere} to enable breaking anywhere; use \texttt{breakbytoken}, \texttt{breakbytokenanywhere}, \texttt{breakbefore}, and \texttt{breakafter} for more fine-tuned breaking. Using \texttt{escapeinside} to escape to \LaTeX\ and then insert a manual break is also an option. For example, use \texttt{escapeinside=||}, and then insert \texttt{|\textbackslash\textbackslash|} at the appropriate point. (Note that \texttt{escapeinside} does not work within strings.)
+% By default, automatic breaks occur at space characters. Use \texttt{breakanywhere} to enable breaking anywhere; use \texttt{breakbytoken}, \texttt{breakbytokenanywhere}, \texttt{breakbefore}, and \texttt{breakafter} for more fine-tuned breaking. Using \texttt{escapeinside} to escape to \LaTeX\ and then insert a manual break is also an option. For example, use \Verb{escapeinside=||}, and then insert \Verb{|\\|} at the appropriate point. (Note that \texttt{escapeinside} does not work within strings.)
%
% \begin{example}
% ...text.
-% \begin{minted}[breaklines]{python}
+% \begin{minted}[breaklines]{py}
% def f(x):
% return 'Some text ' + str(x)
% \end{minted}
@@ -1226,27 +1079,15 @@
% \end{longexample}
% \endgroup
%
-% Automatic line breaks are limited with \app{Pygments} styles that use a colored background behind large chunks of text. This coloring is accomplished with \texttt{\string\colorbox}, which cannot break across lines. It may be possible to create an alternative to \texttt{\string\colorbox} that supports line breaks, perhaps with \texpkg{TikZ}, but the author is unaware of a satisfactory solution. The only current alternative is to redefine \texttt{\string\colorbox} so that it does nothing. For example,
+% Automatic line breaks are limited with Pygments styles that use a colored background behind large chunks of text. This coloring is accomplished with \texttt{\string\colorbox}, which cannot break across lines. It may be possible to create an alternative to \texttt{\string\colorbox} that supports line breaks, perhaps with \texpkg{TikZ}, but the author is unaware of a satisfactory solution. The only current alternative is to redefine \texttt{\string\colorbox} so that it does nothing. For example,
%\begin{Verbatim}
%\AtBeginEnvironment{minted}{\renewcommand{\colorbox}[3][]{#3}}
%\end{Verbatim}
% uses the \texpkg{etoolbox} package to redefine \texttt{\string\colorbox} within all \texttt{minted} environments.
%
-% Automatic line breaks will not work with \texttt{showspaces=true} unless you use \texttt{breakanywhere} or \texttt{breakafter=\string\space}.
-%
% \item[breaksymbol (string) (breaksymbolleft)]
% Alias for \texttt{breaksymbolleft}.
%
-% \item[breaksymbolleft (string) (\string\tiny\string\ensuremath\{\string\hookrightarrow\}, {\tiny\ensuremath{\hookrightarrow}})]
-% The symbol used at the beginning (left) of continuation lines when \texttt{breaklines=true}. To have no symbol, simply set \texttt{breaksymbolleft} to an empty string (``\texttt{=,}'' or ``\texttt{=\{\}}''). The symbol is wrapped within curly braces \texttt{\{\}} when used, so there is no danger of formatting commands such as \texttt{\string\tiny} ``escaping.''
-%
-% The \texttt{\string\hookrightarrow} and \texttt{\string\hookleftarrow} may be further customized by the use of the \texttt{\string\rotatebox} command provided by \texpkg{graphicx}. Additional arrow-type symbols that may be useful are available in the \texpkg{dingbat} (\texttt{\string\carriagereturn}) and \texpkg{mnsymbol} (hook and curve arrows) packages, among others.
-%
-% Does not apply to \texttt{\string\mintinline}.
-%
-% \item[breaksymbolright (string) (\meta{none})]
-% The symbol used at breaks (right) when \texttt{breaklines=true}. Does not appear at the end of the very last segment of a broken line.
-%
%
% \item[breaksymbolindent (dimension) (\meta{breaksymbolindentleftnchars})]
% Alias for |breaksymbolindentleft|.
@@ -1270,6 +1111,17 @@
% This allows |breaksymbolindentright| to be specified as an integer number of characters rather than as a dimension (assumes a fixed-width font).
%
%
+% \item[breaksymbolleft (string) (\string\tiny\string\ensuremath\{\string\hookrightarrow\}, {\tiny\ensuremath{\hookrightarrow}})]
+% The symbol used at the beginning (left) of continuation lines when \texttt{breaklines=true}. To have no symbol, simply set \texttt{breaksymbolleft} to an empty string (``\texttt{=,}'' or ``\texttt{=\{\}}''). The symbol is wrapped within curly braces \texttt{\{\}} when used, so there is no danger of formatting commands such as \texttt{\string\tiny} ``escaping.''
+%
+% The \texttt{\string\hookrightarrow} and \texttt{\string\hookleftarrow} may be further customized by the use of the \texttt{\string\rotatebox} command provided by \texpkg{graphicx}. Additional arrow-type symbols that may be useful are available in the \texpkg{dingbat} (\texttt{\string\carriagereturn}) and \texpkg{mnsymbol} (hook and curve arrows) packages, among others.
+%
+% Does not apply to \texttt{\string\mintinline}.
+%
+% \item[breaksymbolright (string) (\meta{none})]
+% The symbol used at breaks (right) when \texttt{breaklines=true}. Does not appear at the end of the very last segment of a broken line.
+%
+%
% \item[breaksymbolsep (dimension) (\meta{breaksymbolsepleftnchars})]
% Alias for |breaksymbolsepleft|.
%
@@ -1291,23 +1143,45 @@
% Allows |breaksymbolsepright| to be specified as an integer number of characters rather than as a dimension (assumes a fixed-width font).
%
%
-% \item[codetagify (list of strings) (\textrm{highlight \texttt{XXX}, \texttt{TODO}, \texttt{BUG}, and \texttt{NOTE}})]
-% Highlight special code tags in comments and docstrings.
+% \item[codetagify (single macro or backslash-escaped string) (XXX,TODO,FIXME,BUG,NOTE)]
+% Highlight special code tags in comments and docstrings.
+%
+% The value must be a list of strings, either comma-delimited or space-delimited. The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on).
%
% \item[curlyquotes (boolean) (false)]
% By default, the backtick \texttt{\textasciigrave} and typewriter single quotation mark \texttt{\textquotesingle} always appear literally, instead of becoming the left and right curly single quotation marks \texttt{`'}. This option allows these characters to be replaced by the curly quotation marks when that is desirable.
%
-% \item[encoding (string) (\meta{system-specific})]
-% Sets the file encoding that \app{Pygments} expects. See also |outencoding|.
-% \item[escapeinside (string) (\meta{none})]
-% Escape to \LaTeX\ between the two characters specified in \texttt{\string(string\string)}. All code between the two characters will be interpreted as \LaTeX\ and typeset accordingly. This allows for additional formatting. The escape characters need not be identical. Special \LaTeX\ characters must be escaped when they are used as the escape characters (for example, \texttt{escapeinside=\textbackslash\#\textbackslash\%}). Requires \app{Pygments} 2.0+.
%
-% \textbf{Escaping does not work inside strings and comments (for comments, there is \texttt{texcomments}). As of Pygments 2.0.2, this means that escaping is ``fragile'' with some lexers.} Due to the way that Pygments implements \texttt{escapeinside}, any ``escaped'' \LaTeX\ code that resembles a string or comment for the current lexer may break \texttt{escapeinside}. There is a \href{https://bitbucket.org/birkenfeld/pygments-main/issue/1118}{Pygments issue} for this case. Additional details and a limited workaround for some scenarios are available on the \href{https://github.com/gpoore/minted/issues/70#issuecomment-111729930}{\texpkg{minted} GitHub site}.
+% \item[encoding (string) (UTF-8)]
+% File encoding used by |\inputminted| and derived commands when reading files.
+%
+%
+% \item[envname (string) (\textrm{\texttt{Verbatim}, or \texttt{VerbEnv} for inline})]
+% This is the name of the environment that wraps typeset code. By default, it is |Verbatim| in block contexts and |VerbEnv| in inline contexts (|\setminted| versus |\setmintedinline|). This is compatible with \texpkg{fancyvrb}'s |BVerbatim|.
+%
+% There are two requirements for using a custom environment other than |Verbatim| and |BVerbatim| in block contexts:
+% \begin{itemize}
+% \item For |minted| and |\mint| support, the custom environment must be created with \texpkg{fancyvrb}'s |\DefineVerbatimEnvironment| or otherwise defined in a manner compatible with \texpkg{fancyvrb}'s environment implementation conventions.
+% \item For |\inputminted| support, a corresponding |\|\meta{envname}|Insert| command must be defined, using \texpkg{fancyvrb}'s |\CustomVerbatimCommand| or otherwise following \texpkg{fancyvrb} command conventions. For example, using a custom variant of |BVerbatim| involves creating both a custom environment as well as a corresponding variant of |\BVerbatimInput|.
+% \end{itemize}
+%
+% There is currently only limited support for using an environment other than |VerbEnv| in inline contexts. If an environment other than |VerbEnv| is specified, it will be used for highlighted code, but will not be used if code is typeset verbatim instead or if highlighting fails and a verbatim fallback is needed. In both of those cases, |\Verb| is currently used.
+%
+% Note that |envname| is the name of the environment that wraps typeset code, but it is \emph{not} the name of the environment that literally appears in highlighted code output. Highlighted code output uses the |MintedVerbatim| environment by default, and then |MintedVerbatim| is redefined based on |envname|. This allows a single cache file to be used in multiple contexts. The name of the environment that literally appears in highlighted code output can be modified with |literalenvname|, but there should be few if any situations where that is actually necessary.
+%
+%
+% \item[escapeinside (single macro or backslash-escaped two-character string) (\meta{none})]
+% Escape to \LaTeX\ between the two characters specified. All code between the two characters will be interpreted as \LaTeX\ and typeset accordingly. This allows for additional formatting. The escape characters need not be identical.
+%
+% The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on). Special \LaTeX\ characters must be escaped when they are used as the escape characters (for example, \texttt{escapeinside=\textbackslash\#\textbackslash\%}).
+%
+% \textbf{Escaping does not work inside strings and comments (for comments, there is \texttt{texcomments}). Escaping is ``fragile'' with some lexers.} Due to the way that Pygments implements \texttt{escapeinside}, any ``escaped'' \LaTeX\ code that resembles a string or comment for the current lexer may break \texttt{escapeinside}. There is a \href{https://github.com/pygments/pygments/issues/825}{Pygments issue} for this case. Additional details and a limited workaround for some scenarios are available on the \href{https://github.com/gpoore/minted/issues/70#issuecomment-111729930}{\mintedpkg\ GitHub site}.
%
% \begingroup ^^A Need to prevent active "|" from causing problems
% \catcode`\|=11
% \begin{example}
-% \begin{minted}[escapeinside=||]{py}
+% \setminted{escapeinside=||}
+% \begin{minted}{py}
% def f(x):
% y = x|\colorbox{green}{**}|2
% return y
@@ -1315,33 +1189,57 @@
% \end{example}
% \endgroup
%
-% \textbf{Note that when math is used inside escapes, any active characters beyond those that are normally active in verbatim can cause problems.} Any package that relies on special active characters in math mode (for example, \texpkg{icomma}) will produce errors along the lines of \texttt{TeX capacity exceeded} and \texttt{\string\leavevmode \string\kern \string\z@}. This may be fixed by modifying \texttt{\string\@noligs}, as described at \url{http://tex.stackexchange.com/questions/223876}.
+% \textbf{Note that when math is used inside escapes, any active characters beyond those that are normally active in verbatim can cause problems.} Any package that relies on special active characters in math mode (for example, \texpkg{icomma}) will produce errors along the lines of ``\texttt{TeX capacity exceeded}'' and ``\texttt{\string\leavevmode \string\kern \string\z@}''. This may be fixed by modifying \texttt{\string\@noligs}, as described at \url{https://tex.stackexchange.com/questions/223876}.
% \item[firstline (integer) (1)]
% The first line to be shown.
% All lines before that line are ignored and do not appear in the output.
% \item[firstnumber (auto \| last \| integer) (auto = 1)]
% Line number of the first line.
+%
+%
+% \item [fontencoding (font encoding) (\meta{doc~encoding})]
+% Set font encoding used for typesetting code. For example, |fontencoding=T1|.
+%
+%
% \item[fontfamily (family name) (tt)]
% The font family to use.
% |tt|, |courier| and |helvetica| are pre-defined.
-% \item[fontseries (series name) (auto \textrm{-- the same as the current font})]
+%
+%
+% \item[fontseries (series name) (auto\textrm{ -- the same as the current font})]
% The font series to use.
-% \item[fontsize (font size) (auto \textrm{-- the same as the current font})]
-% The size of the font to use, as a size command, e.g. |\footnotesize|.
-% \item[fontshape (font shape) (auto \textrm{-- the same as the current font})]
+%
+%
+% \item[fontshape (font shape) (auto\textrm{ -- the same as the current font})]
% The font shape to use.
+%
+%
+% \item[fontsize (font size) (auto\textrm{ -- the same as the current font})]
+% The size of the font to use, as a size command, e.g. |\footnotesize|.
+%
+%
% \item[formatcom (command) (\meta{none})]
% A format to execute before printing verbatim text.
% \item[frame (none \| leftline \| topline \| bottomline \| lines \| single) (none)]
-% The type of frame to put around the source code listing.
+% The type of frame to put around the source code listing. For more sophisticated framing, consider \texpkg{tcolorbox}.
% \item[framerule (dimension) (0.4pt)]
% Width of the frame.
% \item[framesep (dimension) (\cmd\fboxsep)]
% Distance between frame and content.
% \item[funcnamehighlighting (boolean) (true)] \appliesto{PHP}
% If |true|, highlights built-in function names.
-% \item[gobble (integer) (0)]
-% Remove the first $n$ characters from each input line.
+% \item[gobble (integer) (0)]
+% Remove the first $n$ characters from each input line.
+%
+% When |autogobble| and |gobble| are used together, the effect is cumulative. First |autogobble| removes all common indentation, and then |gobble| is applied.
+%
+% |autogobble| and |gobble| operate on code before the highlighting process begins (before lexing), treating the code purely as text. Meanwhile, |gobblefilter| operates on the token stream generated by a lexer. If the removed characters are simply indentation coming from how the code was entered within \LaTeX, then |autogobble| and |gobble| should typically be preferred. If the removed characters are syntactically significant, then |gobblefilter| may be better. Which approach is preferable may also depend on the implementation details of the lexer.
+%
+% \item[gobblefilter (integer) (0)]
+% Remove the first $n$ characters from each input line, using the Pygments gobble filter.
+%
+% |autogobble| and |gobble| operate on code before the highlighting process begins (before lexing), treating the code purely as text. Meanwhile, |gobblefilter| operates on the token stream generated by a lexer. If the removed characters are simply indentation coming from how the code was entered within \LaTeX, then |autogobble| and |gobble| should typically be preferred. If the removed characters are syntactically significant, then |gobblefilter| may be better. Which approach is preferable may also depend on the implementation details of the lexer.
+%
%
% \item[highlightcolor (string) (LightCyan)]
% Set the color used for |highlightlines|, using a predefined color name from \texpkg{color} or \texpkg{xcolor}, or a color defined via |\definecolor|.
@@ -1353,15 +1251,31 @@
% The highlighting color can be customized with |highlightcolor|.
%
%
-% \item[keywordcase] (string) (lower)
-% Changes capitalization of keywords. Takes |lower|, |upper|, or |capitalize|.
+% \item[ignorelexererrors (boolean) (false)]
+% When lexer errors are shown in highlighted output (default), they are typically displayed as red boxes that surround the relevant text. When lexer errors are ignored, the literal text that caused lexer errors is shown but there is no indication that it caused errors.
+%
+% \begin{longexample}
+% \begin{minted}{python}
+% variable = !!!
+% \end{minted}
+% \end{longexample}
+%
+% \begin{longexample}
+% \begin{minted}[ignorelexererrors=true]{python}
+% variable = !!!
+% \end{minted}
+% \end{longexample}
+%
+%
+% \item[keywordcase (lower \| upper \| capitalize \| none) (none)]
+% Changes capitalization of keywords.
% \item[label (string) (\emph{empty})]
% Add a label to the top, the bottom or both of the frames around the code.
% See the \texpkg{fancyvrb} documentation for more information and examples.
% \emph{Note:} This does \emph{not} add a |\label| to the current listing.
% To achieve that, use a floating environment (section \ref{sec:float}) instead.
% \item[labelposition (none \| topline \| bottomline \| all) (topline, all, \textrm{or} none)]
-% Position where to print the label (see above; default: |topline| if one label is defined, |all| if two are defined, |none| else).
+% Location for the label. Default: |topline| if one label is defined, |all| if two are defined, |none| otherwise.
% See the \texpkg{fancyvrb} documentation for more information.
% \item[lastline (integer) (\meta{last line of input})]
% The last line to be shown.
@@ -1370,9 +1284,11 @@
% In order to customize the display style of line numbers, you need to redefine the |\theFancyVerbLine| macro:
%
% \begin{example}
-% \renewcommand{\theFancyVerbLine}{\sffamily
-% \textcolor[rgb]{0.5,0.5,1.0}{\scriptsize
-% \oldstylenums{\arabic{FancyVerbLine}}}}
+% \renewcommand{\theFancyVerbLine}{%
+% \sffamily
+% \textcolor[rgb]{0.5,0.5,1.0}{%
+% \scriptsize\oldstylenums{%
+% \arabic{FancyVerbLine}}}}
%
% \begin{minted}[linenos,
% firstnumber=11]{python}
@@ -1384,49 +1300,112 @@
% \end{minted}
% \end{example}
%
-% \item[numberfirstline (boolean) (false)]
-% Always number the first line, regardless of |stepnumber|.
+%
+% \item[listparameters (macro) (\meta{empty})]
+% \texpkg{fancyvrb} option for setting list-related lengths to modify spacing around lines of code. For example, |listparameters=\setlength{\topsep}{0pt}| will remove space before and after a |minted| environment.
+%
+%
+% \item[literalenvname (string) (MintedVerbatim)]
+% This is the name of the environment that literally appears in highlighted code output as a wrapper around the code. It is redefined to be equivalent to |envname|. There should be few if any situations where modifying |literalenvname| rather than |envname| is actually necessary.
+%
+%
+% \item[literatecomment (single macro or backslash-escaped string) (\meta{none})]
+% This is for compatibility with literate programming formats, such as the |.dtx| format commonly used for writing \LaTeX\ packages. If all lines of code begin with \meta{literatecomment}, then \meta{literatecomment} is removed from the beginning of all lines. For example, for |.dtx|, |literatecomment=\%|.
+%
+% The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on).
%
%
-% \item[numbers (left \| right \| both \| none) (none)]
-% Essentially the same as |linenos|, except the side on which the numbers appear may be specified.
% \item[mathescape (boolean) (false)]
% Enable \LaTeX{} math mode inside comments.
% Usage as in package \texpkg{listings}.
% See the note under \texttt{escapeinside} regarding math and ligatures.
+%
+%
% \item[numberblanklines (boolean) (true)]
% Enables or disables numbering of blank lines.
+%
+%
+% \item[numberfirstline (boolean) (false)]
+% Always number the first line, regardless of |stepnumber|.
+%
+%
+% \item[numbers (left \| right \| both \| none) (none)]
+% Essentially the same as |linenos|, except the side on which the numbers appear may be specified.
+%
+%
% \item[numbersep (dimension) (12pt)]
% Gap between numbers and start of line.
% \item[obeytabs (boolean) (false)]
-% Treat tabs as tabs instead of converting them to spaces---that is, expand them to tab stops determined by |tabsize|. \textcolor{DarkRed}{\textbf{While this will correctly expand tabs within leading indentation, usually it will not correctly expand tabs that are preceded by anything other than spaces or other tabs. It should be avoided in those case.}}
+% Treat tabs as tabs instead of converting them to spaces---that is, expand them to tab stops determined by |tabsize|. \textbf{While this will correctly expand tabs within leading indentation, usually it will not correctly expand tabs that are preceded by anything other than spaces or other tabs. It should be avoided in those case.}
%
-% \item[outencoding (string) (\meta{system-specific})]
-% Sets the file encoding that \app{Pygments} uses for highlighted output. Overrides any encoding previously set via |encoding|.
-% \item[python3 (boolean) (false)] \appliesto{PythonConsoleLexer}
+% \item[python3 (boolean) (true)] \appliesto{PythonConsoleLexer}
% Specifies whether Python 3 highlighting is applied.
+%
+%
+% \item[rangeregex (single macro or backslash-escaped string) (\meta{none})]
+% Select code that matches this regular expression.
+%
+% The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on).
+%
+% If line numbers are displayed, they are based on the range of code that is selected; code that is discarded in selecting the range is not considered in calculating line numbers.
+%
+%
+% \item[rangeregexmatchnumber (integer) (1)]
+% If there are multiple non-overlapping matches for |rangeregex|, this determines which is used.
+%
+%
+% \item[rangeregexdotall (boolean) (false)]
+% ``|.|'' matches any character including the newline.
+%
+%
+% \item[rangeregexmultiline (boolean) (false)]
+% ``|^|'' and ``|$|'' match at internal newlines, not just at the start/end of the string.
+%
+%
+% \item[rangestartafterstring (single macro or backslash-escaped string) (\meta{none})]
+% Select code starting immediately after this string.
+%
+% The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on).
+%
+% If line numbers are displayed, they are based on the range of code that is selected; code that is discarded in selecting the range is not considered in calculating line numbers.
+%
+%
+% \item[rangestartstring (single macro or backslash-escaped string) (\meta{none})]
+% Select code starting with this string.
+%
+% The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on).
+%
+% If line numbers are displayed, they are based on the range of code that is selected; code that is discarded in selecting the range is not considered in calculating line numbers.
+%
+%
+% \item[rangestopbeforestring (single macro or backslash-escaped string) (\meta{none})]
+% Select code ending immediately before this string.
+%
+% The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on).
+%
+% If line numbers are displayed, they are based on the range of code that is selected; code that is discarded in selecting the range is not considered in calculating line numbers.
+%
+%
+% \item [rangestopstring (single macro or backslash-escaped string) (\meta{none})]
+% Select code ending with this string.
+%
+% The value must be a single macro that gives the desired text when fully expanded, or a string that is interpreted literally except that backslash escapes of ASCII punctuation characters are allowed to give the literal characters (``|\\|'' for backslash, ``|\#|'' for ``|#|'', and so on).
+%
+% If line numbers are displayed, they are based on the range of code that is selected; code that is discarded in selecting the range is not considered in calculating line numbers.
+%
+%
% \item[resetmargins (boolean) (false)]
% Resets the left margin inside other environments.
% \item[rulecolor (color command) (black)]
% The color of the frame.
% \item[samepage (boolean) (false)]
% Forces the whole listing to appear on the same page, even if it doesn't fit.
-% \item[ignorelexererrors (boolean) (false)]
-% When lexer errors are shown in highlighted output (default), they are typically displayed as red boxes that surround the relevant text. When lexer errors are ignored, the literal text that caused lexer errors is shown but there is no indication that it caused errors.
%
-% \begin{longexample}
-% \begin{minted}{python}
-% variable = !!!
-% \end{minted}
-% \end{longexample}
%
-% \begin{longexample}
-% \begin{minted}[ignorelexererrors=true]{python}
-% variable = !!!
-% \end{minted}
-% \end{longexample}
% \item[showspaces (boolean) (false)]
% Enables visible spaces: \verb*/visible spaces/.
+%
+%
% \item[showtabs (boolean) (false)]
% Enables visible tabs---only works in combination with |obeytabs|.
%
@@ -1441,8 +1420,8 @@
%
% \item[startinline (boolean) (false)] \appliesto{PHP}
% Specifies that the code starts in PHP mode, i.e., leading |<?php| is omitted.
-% \item[style] (string) (\meta{default})
-% Sets the stylesheet used by \app{Pygments}.
+%
+%
% \item[stepnumber (integer) (1)]
% Interval at which line numbers appear.
%
@@ -1461,6 +1440,10 @@
% Strip leading and trailing newlines from the input.
%
%
+% \item[style] (string) (\meta{default})
+% Sets the stylesheet used by Pygments.
+%
+%
% \item[tab (macro) ({\rmfamily\texpkg{fancyvrb}'s} \string\FancyVerbTab, \FancyVerbTab)]
% Redefine the visible tab character. Note that this is only used if |showtabs=true|. |\rightarrowfill|, \hbox to 2em{\rightarrowfill}, may be a nice alternative.
%
@@ -1477,7 +1460,7 @@
% \item[texcomments (boolean) (false)]
% Enables \LaTeX{} code inside comments. The newer name for |texcl|. See the note under |escapeinside| regarding math and ligatures.
%
-% As of Pygments 2.0.2, \texttt{texcomments} fails with multiline C/C++ preprocessor directives, and may fail in some other circumstances. This is because preprocessor directives are \href{http://pygments.org/docs/tokens/}{tokenized as \texttt{Comment.Preproc}}, so \texttt{texcomments} causes preprocessor directives to be treated as literal \LaTeX\ code. \href{https://bitbucket.org/birkenfeld/pygments-main/issue/1086/wrong-processing-of-in-c-c-macros-if-is}{An issue has been opened} at the Pygments site; additional details are also available on the \href{https://github.com/gpoore/minted/issues/66}{\texpkg{minted} GitHub site}.
+% \texttt{texcomments} fails with multiline C/C++ preprocessor directives, and may fail in some other circumstances. This is because preprocessor directives are \href{https://pygments.org/docs/tokens/}{tokenized as \texttt{Comment.Preproc}}, so \texttt{texcomments} causes preprocessor directives to be treated as literal \LaTeX\ code. \href{https://github.com/pygments/pygments/issues/793}{An issue has been opened} at the Pygments site; additional details are also available on the \href{https://github.com/gpoore/minted/issues/66}{\mintedpkg\ GitHub site}.
% \item[xleftmargin (dimension) (0)]
% Indentation to add before the listing.
% \item[xrightmargin (dimension) (0)]
@@ -1490,116 +1473,102 @@
%
% \section{Defining shortcuts}
%
-% Large documents with a lot of listings will nonetheless use the same source language and the
-% same set of options for most listings.
-% Always specifying all options is redundant, a lot to type and makes performing changes hard.
-%
-% One option is to use \cmd\setminted, but even then you must still specify the language each time.
-%
-% \texpkg{minted} therefore defines a set of commands that lets you define shortcuts for the highlighting commands.
-% Each shortcut is specific for one programming language.
+% Large documents with many listings may use the same lexer and the same set of options for most listings. \mintedpkg\ therefore defines a set of commands that lets you define shortcuts for the highlighting commands and environments. Each shortcut is specific to one lexer.
%
% \DescribeMacro{\newminted}
% |\newminted| defines a new alias for the |minted| environment:
%
+% \begingroup
+% \setminted{autogobble=false}
% \begin{example}
-% \newminted{cpp}{gobble=2,linenos}
-%
-% \begin{cppcode}
-% template <typename T>
-% T id(T value) {
-% return value;
-% }
-% \end{cppcode}
+% \newminted{cpp}{gobble=2,linenos}
+%
+% \begin{cppcode}
+% template <typename T>
+% T id(T value) {
+% return value;
+% }
+% \end{cppcode}
% \end{example}
+% \endgroup
%
% If you want to provide extra options on the fly, or override existing default options, you can do that, too:
%
+% \begingroup
+% \setminted{autogobble=false}
% \begin{example}
-% \newminted{cpp}{gobble=2,linenos}
+% \newminted{cpp}{gobble=2,linenos}
%
-% \begin{cppcode*}{linenos=false,
-% frame=single}
-% int const answer = 42;
-% \end{cppcode*}
+% \begin{cppcode}[linenos=false,
+% frame=single]
+% int const answer = 42;
+% \end{cppcode}
% \end{example}
+% \endgroup
%
-% Notice the star ``|*|'' behind the environment name---due to restrictions in \texpkg{fancyvrb}'s handling
-% of options, it is necessary to provide a \emph{separate} environment that accepts options, and the options
-% are \emph{not} optional on the starred version of the environment.
-%
-% The default name of the environment is \meta{language}|code|.
-% If this name clashes with another environment or if you want to choose an own name for another reason, you may
-% do so by specifying it as the first argument: \cmd\newminted\oarg{environment name}\marg{language}\marg{options}.
+% The default name of the environment is \meta{lexer}|code|.
+% If this name clashes with another environment or if you want to choose a different name, you can use an optional argument: \cmd\newminted\oarg{environment name}\marg{lexer}\marg{options}.
%
-% Like normal \texpkg{minted} environments, environments created with |\newminted| may be used within other environment definitions. Since the \texpkg{minted} environments use \texpkg{fancyvrb} internally, any environment based on them must include the \texpkg{fancyvrb} command |\VerbatimEnvironment|. This allows \texpkg{fancyvrb} to determine the name of the environment that is being defined, and correctly find its end. It is best to include this command at the beginning of the definition. For example,
+% Like normal \mintedpkg\ environments, environments created with |\newminted| may be used within other environment definitions. Since the \mintedpkg\ environments use \texpkg{fancyvrb} internally, any environment based on them must include the \texpkg{fancyvrb} command |\VerbatimEnvironment|. This allows \texpkg{fancyvrb} to determine the name of the environment that is being defined, and correctly find its end. It is best to include this command at the beginning of the definition. For example,
%\begin{Verbatim}
%\newminted{cpp}{gobble=2,linenos}
%\newenvironment{env}{\VerbatimEnvironment\begin{cppcode}}{\end{cppcode}}
%\end{Verbatim}
%
% \DescribeMacro{\newmint}
-% The above macro only defines shortcuts for the |minted| environment.
-% The main reason is that the short command form |\mint| often needs different options---at the very least, it
-% will generally not use the |gobble| option.
-% A shortcut for |\mint| is defined using \cmd\newmint\oarg{macro name}\marg{language}\marg{options}.
+% A shortcut for |\mint| is defined using \cmd\newmint\oarg{macro name}\marg{lexer}\marg{options}.
% The arguments and usage are identical to |\newminted|.
-% If no \meta{macro name} is specified, \meta{language} is used.
+% If no \meta{macro name} is specified, \meta{lexer} is used.
%
% \begin{example}
% \newmint{perl}{showspaces}
-%
% \perl/my $foo = $bar;/
% \end{example}
%
%
% \DescribeMacro{\newmintinline}
-% This creates custom versions of \cmd\mintinline. The syntax is the same as that for \cmd\newmint: \cmd\newmintinline\oarg{macro~name}\marg{language}\marg{options}. If a \meta{macro~name} is not specified, then the created macro is called |\|\meta{language}|inline|.
+% This creates custom versions of \cmd\mintinline. The syntax is the same as that for \cmd\newmint: \cmd\newmintinline\oarg{macro~name}\marg{lexer}\marg{options}. If a \meta{macro~name} is not specified, then the created macro is called \meta{lexer}|inline|.
%
% \begin{example}
% \newmintinline{perl}{showspaces}
-%
-% X\perlinline/my $foo = $bar;/X
+% \perlinline/my $foo = $bar;/
% \end{example}
%
% \DescribeMacro{\newmintedfile}
% This creates custom versions of \cmd\inputminted. The syntax is
% \begin{center}
-% \cmd\newmintedfile\oarg{macro~name}\marg{language}\marg{options}
+% \cmd\newmintedfile\oarg{macro~name}\marg{lexer}\marg{options}
% \end{center}
-% If no \meta{macro name} is given, then the macro is called |\|\meta{language}|file|.
+% If no \meta{macro name} is given, then the macro is called \meta{lexer}|file|.
%
%
%
% \section{FAQ and Troubleshooting}
%
-% In some cases, \texpkg{minted} may not give the desired result due to other document settings that it cannot control, or due to limitations in \LaTeX\ or the PDF format. Common issues are described below, with workarounds or solutions. You may also wish to search \href{http://tex.stackexchange.com/}{tex.stackexchange.com} or ask a question there, if you are working with \texpkg{minted} in a non-typical context.
+% In some cases, \mintedpkg\ may not give the desired result due to other document settings that it cannot control, or due to limitations in \LaTeX\ or the PDF format. Common issues are described below, with workarounds or solutions. You may also wish to search \href{https://tex.stackexchange.com/}{tex.stackexchange.com} or ask a question there, if you are working with \mintedpkg\ in a non-typical context.
%
% \begin{itemize}
-% \item \textbf{I can't copy and paste code out of a PDF created with \texpkg{minted}. The line numbers also get copied, or whitespace is lost, or something else happens that makes the code incorrect.} There is no known method that always guarantees correct copy and paste for code in a PDF. This does not depend on whether \texpkg{minted} is used. You may want to search \href{http://tex.stackexchange.com/}{tex.stackexchange.com} to find current approaches (and their limitations). You may also want to consider using \href{https://ctan.org/pkg/attachfile}{\texpkg{attachfile}} or a similar package to bundle source code files as part of your PDF.
-% \item \textbf{There are intermittent ``I can't write on file'' errors.} This can be caused by using \texpkg{minted} in a directory that is synchronized with Dropbox or a similar file syncing program. These programs can try to sync \texpkg{minted}'s temporary files while it still needs to be able to modify them. The solution is to turn off file syncing or use a directory that is not synced.
-% \item \textbf{I receive a ``Font Warning: Some font shapes were not available'' message, or bold or italic seem to be missing.} This is due to a limitation in the font that is currently in use for typesetting code. In some cases, the default font shapes that \LaTeX\ substitutes are perfectly adequate, and the warning may be ignored. In other cases, the font substitutions may not clearly indicate bold or italic text, and you will want to switch to a different font. See The \LaTeX\ Font Catalogue's section on \href{http://www.tug.dk/FontCatalogue/typewriterfonts.html}{Typewriter Fonts} for alternatives. If you like the default \LaTeX\ fonts, the \texpkg{lmodern} package is a good place to start. The \texpkg{beramono} and \texpkg{courier} packages may also be good options.
-% \item \textbf{I receive a ``Too many open files'' error under OS X when using caching.} See the note on OS X under Section~\ref{sec:basic:preliminary}.
-% \item \textbf{TeXShop can't find \texttt{pygmentize}.} You may need to create a symlink. See \url{https://tex.stackexchange.com/questions/279214}.
-% \item \textbf{Weird things happen when I use the \texpkg{fancybox} package.} \texpkg{fancybox} conflicts with \texpkg{fancyvrb}, which \texpkg{minted} uses internally. When using \texpkg{fancybox}, make sure that it is loaded before \texpkg{minted} (or before \texpkg{fancyvrb}, if \texpkg{fancyvrb} is not loaded by \texpkg{minted}).
-% \item \textbf{When I use \texpkg{minted} with KOMA-Script document classes, I get warnings about \texttt{\string\float@addtolists}.} \texpkg{minted} uses the \texpkg{float} package to produce floated listings, but this conflicts with the way KOMA-Script does floats. Load the package \texpkg{scrhack} to resolve the conflict. Or use \texpkg{minted}'s |newfloat| package option.
+% \item \textbf{I can't copy and paste code out of a PDF created with \mintedpkg. The line numbers also get copied, or whitespace is lost, or something else happens that makes the code incorrect.} There is no known method that always guarantees correct copy and paste for code in a PDF. This does not depend on whether \mintedpkg\ is used. You may want to search \href{https://tex.stackexchange.com/}{tex.stackexchange.com} to find current approaches (and their limitations). You may also want to consider using \href{https://ctan.org/pkg/attachfile}{\texpkg{attachfile}} or a similar package to bundle source code files as part of your PDF.
+% \item \textbf{There are intermittent ``I can't write on file'' errors.} This can be caused by using \mintedpkg\ in a directory that is synchronized with Dropbox or a similar file syncing program. These programs can try to sync \mintedpkg's temporary files while it still needs to be able to modify them. The solution is to turn off file syncing or use a directory that is not synced.
+% \item \textbf{I receive a ``Font Warning: Some font shapes were not available'' message, or bold or italic seem to be missing.} This is due to a limitation in the font that is currently in use for typesetting code. In some cases, the default font shapes that \LaTeX\ substitutes are perfectly adequate, and the warning may be ignored. In other cases, the font substitutions may not clearly indicate bold or italic text, and you will want to switch to a different font. See The \LaTeX\ Font Catalogue's section on \href{https://www.tug.org/FontCatalogue/typewriterfonts.html}{Typewriter Fonts} for alternatives. If you like the default \LaTeX\ fonts, the \texpkg{lmodern} package is a good place to start. The \texpkg{beramono} and \texpkg{courier} packages may also be good options.
+% \item \textbf{I receive a ``Too many open files'' error under macOS when using caching.} See the note on macOS under Section~\ref{sec:configuration:macos}.
+% \item \textbf{Weird things happen when I use the \texpkg{fancybox} package.} \texpkg{fancybox} conflicts with \texpkg{fancyvrb}, which \mintedpkg\ uses internally. When using \texpkg{fancybox}, make sure that it is loaded before \mintedpkg\ (or before \texpkg{fancyvrb}, if \texpkg{fancyvrb} is not loaded by \mintedpkg).
+% \item \textbf{When I use \mintedpkg\ with KOMA-Script document classes, I get warnings about \texttt{\string\float@addtolists}.} \mintedpkg\ uses the \texpkg{float} package to produce floated listings, but this conflicts with the way KOMA-Script does floats. Load the package \texpkg{scrhack} to resolve the conflict. Or use \mintedpkg's |newfloat| package option.
% \item \textbf{Tilde characters \texttt{\string~} are raised, almost like superscripts.}
% This is a font issue. You need a different font encoding, possibly with a different font. Try |\usepackage[T1]{fontenc}|, perhaps with |\usepackage{lmodern}|, or something similar.
%
% \item \textbf{I'm getting errors with math, something like \texttt{TeX capacity exceeded} and \texttt{\string\leavevmode \string\kern \string\z@}.} This is due to ligatures being disabled within verbatim content. See the note under |escapeinside|.
%
-% \item \textbf{With \texttt{mathescape} and the \texpkg{breqn} package (or another special math package), the document never finishes compiling or there are other unexpected results.} Some math packages like \texpkg{breqn} give certain characters like the comma special meanings in math mode. These can conflict with \texpkg{minted}. In the \texpkg{breqn} and comma case, this can be fixed by redefining the comma within |minted| environments:
+% \item \textbf{With \texttt{mathescape} and the \texpkg{breqn} package (or another special math package), the document never finishes compiling or there are other unexpected results.} Some math packages like \texpkg{breqn} give certain characters like the comma special meanings in math mode. These can conflict with \mintedpkg. In the \texpkg{breqn} and comma case, this can be fixed by redefining the comma within |minted| environments:
%\begin{verbatim}
%\AtBeginEnvironment{minted}{\catcode`\,=12\mathcode`\,="613B}
%\end{verbatim}
%Other packages/special characters may need their own modifications.
%
-% \item \textbf{I'm getting errors with Beamer.} Due to how Beamer treats verbatim content, you may need to use either the |fragile| or |fragile=singleslide| options for frames that contain \texpkg{minted} commands and environments. |fragile=singleslide| works best, but it disables overlays. |fragile| works by saving the contents of each frame to a temp file and then reusing them. This approach allows overlays, but will break if you have the string |\end{frame}| at the beginning of a line (for example, in a |minted| environment). To work around that, you can indent the content of the environment (so that the |\end{frame}| is preceded by one or more spaces) and then use the |gobble| or |autogobble| options to remove the indentation.
-%
-% \item \textbf{Tabs are eaten by Beamer.} This is due to \href{https://bitbucket.org/rivanvx/beamer/issue/310/tab-characters-in-listings-lost-when-using}{a bug in Beamer's treatment of verbatim content}. Upgrade Beamer or use the linked patch. Otherwise, try |fragile=singleslide| if you don't need overlays, or consider using \cmd\inputminted\ or converting the tabs into spaces.
+% \item \textbf{I'm getting errors with Beamer.} Due to how Beamer treats verbatim content, you may need to use either the |fragile| or |fragile=singleslide| options for frames that contain \mintedpkg\ commands and environments. |fragile=singleslide| works best, but it disables overlays. |fragile| works by saving the contents of each frame to a temp file and then reusing them. This approach allows overlays, but will break if you have the string |\end{frame}| at the beginning of a line (for example, in a |minted| environment). To work around that, you can indent the content of the environment (so that the |\end{frame}| is preceded by one or more spaces) and then use the |gobble| or |autogobble| options to remove the indentation.
%
-% \item \textbf{I'm trying to create several new \texpkg{minted} commands/environments, and want them all to have the same settings. I'm saving the settings in a macro and then using the macro when defining the commands/environments. But it's failing.}
-% This is due to the way that \texpkg{keyval} works (\texpkg{minted} uses it to manage options). Arguments are not expanded. See \href{http://tex.stackexchange.com/questions/13563/building-keyval-arguments-using-a-macro/13564#13564}{this} and \href{http://tex.stackexchange.com/questions/145363/why-does-includegraphics-varone-vartwo-not-compile/145366#145366}{this} for more information. It is still possible to do what you want; you just need to expand the options macro before passing it to the commands that create the new commands/environments. An example is shown below. The |\expandafter| is the vital part.
+% \item \textbf{I'm trying to create several new \mintedpkg\ commands/environments, and want them all to have the same settings. I'm saving the settings in a macro and then using the macro when defining the commands/environments. But it's failing.}
+% This is due to the way that key-value processing operates. See \href{https://tex.stackexchange.com/questions/13563/building-keyval-arguments-using-a-macro/13564#13564}{this} and \href{https://tex.stackexchange.com/questions/145363/why-does-includegraphics-varone-vartwo-not-compile/145366#145366}{this} for more information. It is still possible to do what you want; you just need to expand the options macro before passing it to the commands that create the new commands/environments. An example is shown below. The |\expandafter| is the vital part.
%\begin{verbatim}
%\def\args{linenos,frame=single,fontsize=\footnotesize,style=bw}
%
@@ -1622,7 +1591,7 @@
%\commandthatdoesnotlikeverbatim{Text \usebox{\mybox}}
%\end{verbatim}
%
-% \item \textbf{Extended characters do not work inside \texpkg{minted} commands and environments, even when the \texpkg{inputenc} package is used.}
+% \item \textbf{Extended characters do not work inside \mintedpkg\ commands and environments, even when the \texpkg{inputenc} package is used.}
% Version 2.0 adds support for extended characters under the pdfTeX engine. But if you need characters that are not supported by \texpkg{inputenc}, you should use the XeTeX or LuaTeX engines instead.
%
% \item \textbf{The \texpkg{polyglossia} package is doing undesirable things to code. (For example, adding extra space around colons in French.)} You may need to put your code within |\begin{english}...\end{english}|. This may done for all |minted| environments using \texpkg{etoolbox} in the preamble:
@@ -1633,29 +1602,23 @@
% \end{verbatim}
%
% \item \begin{sloppypar} \textbf{Tabs are being turned into the character sequence \texttt{\string^\string^I}}.
-% This happens when you use XeLaTeX. You need to use the |-8bit| command-line option so that tabs may be written correctly to temporary files. See \url{http://tex.stackexchange.com/questions/58732/how-to-output-a-tabulation-into-a-file} for more on XeLaTeX's handling of tab characters. \end{sloppypar}
+% This happens when you use XeLaTeX. You need to use the |-8bit| command-line option so that tabs may be written correctly to temporary files. See \url{https://tex.stackexchange.com/questions/58732/how-to-output-a-tabulation-into-a-file} for more on XeLaTeX's handling of tab characters. \end{sloppypar}
%
-% \item \textbf{The \texpkg{caption} package produces an error when \texttt{\string\captionof} and other commands are used in combination with \texpkg{minted}.}
-% Load the \texpkg{caption} package with the option |compatibility=false|. Or better yet, use \texpkg{minted}'s |newfloat| package option, which provides better \texpkg{caption} compatibility.
+% \item \textbf{The \texpkg{caption} package produces an error when \texttt{\string\captionof} and other commands are used in combination with \mintedpkg.}
+% Load the \texpkg{caption} package with the option |compatibility=false|. Or better yet, use \mintedpkg's |newfloat| package option, which provides better \texpkg{caption} compatibility.
%
% \item \textbf{I need a listing environment that supports page breaks.} The built-in listing environment is a standard float; it doesn't support page breaks. You will probably want to define a new environment for long floats. For example,
%\begin{verbatim}
%\usepackage{caption}
%\newenvironment{longlisting}{\captionsetup{type=listing}}{}
%\end{verbatim}
-% With the \texpkg{caption} package, it is best to use \texpkg{minted}'s |newfloat| package option. See \url{http://tex.stackexchange.com/a/53540/10742} for more on |listing| environments with page breaks.
+% With the \texpkg{caption} package, it is best to use \mintedpkg's |newfloat| package option. See \url{https://tex.stackexchange.com/a/53540/10742} for more on |listing| environments with page breaks.
%
-% \item \textbf{I want to use a custom script/executable to access Pygments, rather than |pygmentize|.} Redefine |\MintedPygmentize|:
-%\begin{verbatim}
-%\renewcommand{\MintedPygmentize}{...}
-%\end{verbatim}
+% \item \textbf{I want to use the command-line option \texttt{-output-directory}, or MiKTeX's \texttt{-aux-directory}, but am getting errors.} With TeX Live 2024+, this should work automatically. Otherwise, set the environment variable |TEXMF_OUTPUT_DIRECTORY| to the desired location.
%
-% \item \textbf{I want to use the command-line option \texttt{-output-directory}, or MiKTeX's \texttt{-aux-directory}, but am getting errors.} Use the package option |outputdir| to specify the location of the output directory. Unfortunately, there is no way for \texpkg{minted} to detect the output directory automatically.
-%
-% \item \textbf{I want extended characters in frame labels, but am getting errors.} This can happen with \texpkg{minted} <2.0 and Python 2.7, due to a \href{https://bitbucket.org/birkenfeld/pygments-main/issue/801/python-2-fails-to-detect-terminal-encoding}{terminal encoding issue with Pygments}. It should work with any version of Python with \texpkg{minted} 2.0+, which processes labels internally and does not send them to Python.
% \item \textbf{\texttt{minted} environments have extra vertical space inside \texttt{tabular}.} It is possible to \href{https://github.com/gpoore/minted/issues/82}{create a custom environment} that eliminates the extra space. However, a general solution that behaves as expected in the presence of adjacent text remains to be found.
-% \item \textbf{I'm receiving a warning from \texttt{lineno.sty} that ``Command \texttt{\string\@parboxrestore} has changed.''} This can happen when \texpkg{minted} is loaded after \texpkg{csquotes}. Try loading \texpkg{minted} first. If you receive this message when you are not using \texpkg{csquotes}, you may want to experiment with the order of loading packages and might also open an issue.
-% \item \textbf{I'm using \app{texi2pdf}, and getting ``Cannot stat'' errors from \app{tar}}: This is due to the way that \app{texi2pdf} handles temporary files. \texpkg{minted} automatically cleans up its temporary files, but \app{texi2pdf} assumes that any temporary file that is ever created will still exist at the end of the run, so it tries to access the files that \texpkg{minted} has deleted. It's possible to disable minted's temp file cleanup by adding |\renewcommand{\DeleteFile}[2][]{}| after the |\usepackage{minted}|.
+% \item \textbf{I'm receiving a warning from \texttt{lineno.sty} that ``Command \texttt{\string\@parboxrestore} has changed.''} This can happen when \mintedpkg\ is loaded after \texpkg{csquotes}. Try loading \mintedpkg\ first. If you receive this message when you are not using \texpkg{csquotes}, you may want to experiment with the order of loading packages and might also open an issue.
+% \item \textbf{I'm using \app{texi2pdf}, and getting ``Cannot stat'' errors from \app{tar}}: This is due to the way that \app{texi2pdf} handles temporary files. \mintedpkg\ automatically cleans up its temporary files, but \app{texi2pdf} assumes that any temporary file that is ever created will still exist at the end of the run, so it tries to access the files that \mintedpkg\ has deleted. It's possible to disable minted's temp file cleanup by adding |\renewcommand{\DeleteFile}[2][]{}| after the |\usepackage{minted}|.
% \end{itemize}
%
%
@@ -1665,7 +1628,9 @@
%
% \textbf{Konrad Rudolph:} Special thanks to Philipp Stephani and the rest of the guys from \texttt{comp.text.tex} and \texttt{tex.stackexchange.com}.
%
-% \textbf{Geoffrey Poore:}
+% ~\par
+%
+% \noindent\textbf{Geoffrey Poore:}
% \begin{itemize}
% \item Thanks to Marco Daniel for the code on \url{tex.stackexchange.com} that inspired automatic line breaking.
% \item Thanks to Patrick Vogt for improving TikZ externalization compatibility.
@@ -1673,9 +1638,7 @@
% \item Thanks to \textsf{@jfbu} for suggestions and discussion regarding support for arbitrary Pygments style names (\#210, \#294, \#299, \#317), and for debugging assistance.
% \end{itemize}
%
-% \PrintChangelog
-%
-% \StopEventually{} %\StopEventually{\PrintIndex}
+% \StopEventually{} ^^A\StopEventually{\PrintIndex}
%
%
% \section{Implementation}
@@ -1685,1684 +1648,2140 @@
% \fi
%
%
+%
% \subsection{Required packages}
-% Load required packages. For compatibility reasons, most old functionality should be supported with the original set of packages. More recently added packages, such as |etoolbox| and |xstring|, should only be used for new features when possible. |shellesc| must be loaded before any packages that invoke |\write18|, since it is possible that they haven't yet been patched to work with LuaTeX 0.87+.
-% \begin{macrocode}
-\RequirePackage{keyval}
-\RequirePackage{kvoptions}
-\RequirePackage{fvextra}[2022/11/30]
-\RequirePackage{ifthen}
-\IfFileExists{shellesc.sty}
- {\RequirePackage{shellesc}
- \@ifpackagelater{shellesc}{2016/04/29}
- {}
- {\protected\def\ShellEscape{\immediate\write18 }}}
- {\protected\def\ShellEscape{\immediate\write18 }}
-\RequirePackage{ifplatform}
-\RequirePackage{pdftexcmds}
-\RequirePackage{etoolbox}
-\RequirePackage{xstring}
-\RequirePackage{lineno}
-\RequirePackage{framed}
+%
+%
+% \begin{macrocode}
\RequirePackage{catchfile}
+\RequirePackage{etoolbox}
+\RequirePackage{fvextra}[2024/09/05]
+\RequirePackage{latex2pydata}[2024/05/16]
+\RequirePackage{pdftexcmds}
+\RequirePackage{pgfkeys}
+\RequirePackage{pgfopts}
+\RequirePackage{shellesc}
% \end{macrocode}
%
% Make sure that either |color| or |xcolor| is loaded by the beginning of the document.
% \begin{macrocode}
\AtEndPreamble{%
- \@ifpackageloaded{color}{}{%
- \@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}}}%
-}
+ \IfPackageLoadedTF{color}%
+ {}%
+ {\IfPackageLoadedTF{xcolor}{}{\RequirePackage{xcolor}}}}
% \end{macrocode}
%
%
%
-% \subsection{Package options}
+% \subsection{Exception handling}
%
-% \begin{macro}{\minted@float@within}
%
-% Define an option that controls the section numbering of the |listing| float.
+% \begin{macro}{\minted@error}
+% \begin{macrocode}
+\def\minted@error#1{\PackageError{minted}{#1}{}}
+% \end{macrocode}
+% \end{macro}
%
+% \begin{macro}{\minted@fatalerror}
+% |\batchmode\read -1 to \minted@fatalerror@exitnow| forces an immediate exit with ``\Verb[breaklines]{! Emergency stop [...] cannot \read from terminal in nonstop modes}.''
% \begin{macrocode}
-\DeclareVoidOption{chapter}{\def\minted@float@within{chapter}}
-\DeclareVoidOption{section}{\def\minted@float@within{section}}
+\def\minted@fatalerror#1{%
+ \minted@error{#1}%
+ \batchmode\read -1 to \minted@fatalerror@exitnow}
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\minted@warning}
+% \begin{macrocode}
+\def\minted@warning#1{\PackageWarning{minted}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \subsection{Python executable and minimum supported version}
%
-% \begin{macro}{newfloat}
%
-% Define an option to use \texpkg{newfloat} rather than \texpkg{float} to create a floated |listing| environment.
+% \begin{macro}{\MintedExecutable}
+% Name of \mintedpkg\ Python executable.
+% \begin{macrocode}
+\edef\MintedExecutable{\detokenize{latexminted}}
+% \end{macrocode}
+% \end{macro}
+%
%
+% \begin{macro}{\minted@executable@minversion}
% \begin{macrocode}
-\DeclareBoolOption{newfloat}
+\edef\minted@executable@minversion{\detokenize{0.1.0}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{cache}
-% Define an option that determines whether highlighted content is cached. We use a boolean to keep track of its state.
+% \begin{macro}{\minted@executable@minmajor,\minted@executable@minminor,\minted@executable@minpatch}
% \begin{macrocode}
-\DeclareBoolOption[true]{cache}
+\def\minted@executable@setminversioncomponents{%
+ \expandafter\minted@executable@setminversioncomponents@i
+ \minted@executable@minversion\relax}
+\begingroup
+\catcode`\.=12
+\gdef\minted@executable@setminversioncomponents@i#1.#2.#3\relax{%
+ \def\minted@executable@minmajor{#1}%
+ \def\minted@executable@minminor{#2}%
+ \def\minted@executable@minpatch{#3}}
+\endgroup
+\minted@executable@setminversioncomponents
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@jobname}
-% At various points, temporary files and directories will need to be named after the main |.tex| file. The typical way to do this is to use |\jobname|. However, if the file name contains spaces, then |\jobname| will contain the name wrapped in quotes (older versions of MiKTeX replace spaces with asterisks instead, and \texttt{XeTeX} apparently \href{http://tex.stackexchange.com/a/93829/10742}{allows double quotes within file names}, in which case names are wrapped in single quotes). While that is perfectly fine for working with \LaTeX\ internally, it causes problems with |\write18|, since quotes will end up in unwanted locations in shell commands. It would be possible to strip the wrapping quotation marks when they are present, and maintain any spaces in the file name. But it is simplest to create a ``sanitized'' version of |\jobname| in which spaces and asterisks are replaced by underscores, and double quotes are stripped. Single quotes are also replaced, since they can cause quoted string errors, or become double quotes in the process of being passed to the system through |\write18|.
+% \begin{macro}{\minted@executable@version}
% \begin{macrocode}
-\StrSubstitute{\jobname}{ }{_}[\minted@jobname]
-\StrSubstitute{\minted@jobname}{*}{_}[\minted@jobname]
-\StrSubstitute{\minted@jobname}{"}{}[\minted@jobname]
-\StrSubstitute{\minted@jobname}{'}{_}[\minted@jobname]
+\let\minted@executable@version\relax
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@cachedir}
-% Set the directory in which cached content is saved. The default uses a |minted-| prefix followed by the sanitized |\minted@jobname|.
+% \begin{macro}{minted@executable@exists}
% \begin{macrocode}
-\newcommand{\minted@cachedir}{\detokenize{_}minted-\minted@jobname}
-\let\minted@cachedir@windows\minted@cachedir
-\define@key{minted}{cachedir}{%
- \@namedef{minted@cachedir}{#1}%
- \StrSubstitute{\minted@cachedir}{/}{\@backslashchar}[\minted@cachedir@windows]}
+\newbool{minted@executable@exists}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{finalizecache}
-% Define an option that switches the naming of cache files from an MD5-based system to a |listing<number>| scheme. Compiling with this option is a prerequisite to turning on |frozencache|.
+% \begin{macro}{minted@executable@issupported}
% \begin{macrocode}
-\DeclareBoolOption{finalizecache}
+\newbool{minted@executable@issupported}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{frozencache}
-% Define an option that uses a fixed set of cache files, using |listing<number>| file naming with |\write18| disabled. This is convenient for working with a document in an environment in which |\write18| support is disabled and \texpkg{minted} content does not need to be modified.
+%
+% \subsection{Timestamp}
+%
+%
+% Timestamp for current compile. This could eventually be simplified to use |\c_sys_timestamp_str| for all engines; that macro is in \texpkg{l3kernel} from 2023-08-29.
+%
+% \begin{macro}{\minted@timestamp}
% \begin{macrocode}
-\DeclareBoolOption{frozencache}
+\begingroup
+\catcode`\-=12
+\catcode`\+=12
+\catcode`\:=12
+\def\minted@creationdatetotimestamp#1{%
+ \expandafter\minted@creationdatetotimestamp@i#1-\relax}
+\def\minted@creationdatetotimestamp@i#1:#2-#3\relax{%
+ \minted@creationdatetotimestamp@ii#2+\relax}
+\def\minted@creationdatetotimestamp@ii#1+#2\relax{%
+ #1}
+\expandafter\ifx\csname pdftexversion\endcsname\relax
+\else
+ \xdef\minted@timestamp{\minted@creationdatetotimestamp{\pdfcreationdate}}
+\fi
+\expandafter\ifx\csname XeTeXrevision\endcsname\relax
+\else
+ \xdef\minted@timestamp{\minted@creationdatetotimestamp{\creationdate}}
+\fi
+\expandafter\ifx\csname directlua\endcsname\relax
+\else
+ \xdef\minted@timestamp{\minted@creationdatetotimestamp{\pdffeedback creationdate}}
+\fi
+\endgroup
+\ifcsname minted@timestamp\endcsname
+\else
+ \begingroup
+ \newcounter{minted@timestamp@hr}
+ \newcounter{minted@timestamp@min}
+ \setcounter{minted@timestamp@min}{\number\time}
+ \loop\unless\ifnum\value{minted@timestamp@min}<60\relax
+ \addtocounter{minted@timestamp@hr}{1}
+ \addtocounter{minted@timestamp@min}{-60}
+ \repeat
+ \xdef\minted@timestamp{%
+ \the\year
+ \ifnum\month<10 0\fi\the\month
+ \ifnum\day<10 0\fi\the\day
+ \ifnum\value{minted@timestamp@hr}<10 0\fi\theminted@timestamp@hr
+ \ifnum\value{minted@timestamp@min}<10 0\fi\theminted@timestamp@min}
+ \endgroup
+\fi
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@outputdir}
-% The |-output-directory| command-line option for \LaTeX\ causes problems for \texpkg{minted}, because the \texpkg{minted} temporary files are saved in the output directory, but \texpkg{minted} still looks for them in the document root directory. There is no way to access the value of the command-line option. But it is possible to allow the output directory to be specified manually as a package option. A trailing slash is automatically appended to the |outputdir|, so that it may be directly joined to |cachedir|. This may be redundant if the user-supplied value already ends with a slash, but doubled slashes are ignored under *nix and Windows, so it isn't a problem.
+%
+% \subsection{Jobname MD5 and derived file names}
+%
+%
+% \begin{macro}{\MintedJobnameMdfive}
+% MD5 hash of |\jobname|. If |\jobname| contains spaces so that \LaTeX\ inserts wrapping quotes (\href{https://tex.stackexchange.com/a/93829/10742}{single} or double) within |\jobname|, these quotes are stripped, so that only the stem (basename without file extension) of the file path is hashed. This makes it simple to calculate the hash externally outside of \LaTeX.
+%
+% |\MintedJobnameMdfive| is used for creating temp files rather than |\jobname| to avoid shell escaping issues. Under restricted shell escape, shell commands are quoted and escaped by \LaTeX\ itself, so using |\jobname| would work correctly in most cases. However, when full shell escape is enabled, no command escaping is performed by \LaTeX, so \mintedpkg\ would have to quote/escape |\jobname| in a platform-specific manner. (See for example \href{https://github.com/TeX-Live/texlive-source/blob/e47512fcb293e2390b609bce612449d579efc230/texk/web2c/doc/web2c.info#L1573}{\Verb{web2c.info}} and \href{https://github.com/TeX-Live/texlive-source/blob/e47512fcb293e2390b609bce612449d579efc230/texk/web2c/lib/texmfmp.c#L228}{\Verb{texmfmp.c}} in the TeX Live source for shell escape implementation details.) It is simpler to avoid escaping issues altogether, including edge cases in the restricted shell escape scenario, by using an MD5 hash that is guaranteed to consist only of ASCII alphanumeric characters.
% \begin{macrocode}
-\let\minted@outputdir\@empty
-\let\minted@outputdir@windows\@empty
-\define@key{minted}{outputdir}{%
- \@namedef{minted@outputdir}{#1/}%
- \StrSubstitute{\minted@outputdir}{/}%
- {\@backslashchar}[\minted@outputdir@windows]}
+\begingroup
+\catcode`\"=12
+\catcode`\'=12
+\gdef\minted@setjobnamemdfive#1#2\FV@Sentinel{%
+ \ifx#1"\relax
+ \let\minted@next\minted@setjobnamemdfive@dquoted
+ \else\ifx#1'\relax
+ \let\minted@next\minted@setjobnamemdfive@squoted
+ \else
+ \let\minted@next\minted@setjobnamemdfive@uquoted
+ \fi\fi
+ \minted@next#1#2\FV@Sentinel}
+\gdef\minted@setjobnamemdfive@dquoted#1#2\FV@Sentinel{%
+ \minted@setjobnamemdfive@dquoted@i#2"\FV@Sentinel}
+\gdef\minted@setjobnamemdfive@dquoted@i#1"#2\FV@Sentinel{%
+ \if\relax\detokenize{#2}\relax
+ \edef\MintedJobnameMdfive{\pdf@mdfivesum{\jobname}}%
+ \else\if\relax\detokenize\expandafter{\@gobble#2}\relax
+ \edef\MintedJobnameMdfive{\pdf@mdfivesum{#1}}%
+ \else
+ \edef\MintedJobnameMdfive{\pdf@mdfivesum{\jobname}}%
+ \fi\fi}
+\gdef\minted@setjobnamemdfive@squoted#1#2\FV@Sentinel{%
+ \minted@setjobnamemdfive@squoted@i#2'\FV@Sentinel}
+\gdef\minted@setjobnamemdfive@squoted@i#1'#2\FV@Sentinel{%
+ \if\relax\detokenize{#2}\relax
+ \edef\MintedJobnameMdfive{\pdf@mdfivesum{\jobname}}%
+ \else\if\relax\detokenize\expandafter{\@gobble#2}\relax
+ \edef\MintedJobnameMdfive{\pdf@mdfivesum{#1}}%
+ \else
+ \edef\MintedJobnameMdfive{\pdf@mdfivesum{\jobname}}%
+ \fi\fi}
+\gdef\minted@setjobnamemdfive@uquoted#1\FV@Sentinel{%
+ \edef\MintedJobnameMdfive{\pdf@mdfivesum{#1}}}
+\endgroup
+\expandafter\minted@setjobnamemdfive\jobname\FV@Sentinel
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{inputlanglinenos}
-% Enable |langlinenos| and make it apply to |\inputminted|.
+%
+% \begin{macro}{\MintedCacheIndexFilename}
+% Index file in cache. Used to detect whether cache exists.
% \begin{macrocode}
-\DeclareBoolOption{inputlanglinenos}
+\edef\MintedCacheIndexFilename{%
+ \detokenize{_}\MintedJobnameMdfive\detokenize{.index.minted}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{kpsewhich}
-% Define an option that invokes |kpsewhich| to locate the files that are to be |pygmentize|d. This isn't done by default to avoid the extra overhead, but can be useful with some build tools such as |texi2pdf| that rely on modifying |TEXINPUTS|.
+% \begin{macro}{\MintedConfigFilename}
+% File containing config info such as Python executable version. Written by the Python side, read by the \LaTeX\ side, and then immediately deleted.
% \begin{macrocode}
-\DeclareBoolOption{kpsewhich}
+\edef\MintedConfigFilename{%
+ \detokenize{_}\MintedJobnameMdfive\detokenize{.config.minted}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{langlinenos}
-% Define an option that makes all |minted| environments and |\mint| commands for a given language share cumulative line numbering (if |firstnumber=last|).
+% \begin{macro}{\MintedDataFilename}
+% Temp file for data. Written by the \LaTeX\ side, read by the Python side. Frequently overwritten, so only cleaned up at the end of the compile.
% \begin{macrocode}
-\DeclareBoolOption{langlinenos}
+\edef\MintedDataFilename{%
+ \detokenize{_}\MintedJobnameMdfive\detokenize{.data.minted}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{draft}
-% Define an option that allows \texpkg{fancyvrb} to do all typesetting directly, without using \app{Pygments}. This trades syntax highlighting for speed. Note that in many cases, the difference in performance between caching and draft mode will be minimal. Also note that draft settings may be inherited from the document class.
+% \begin{macro}{\MintedErrlogFilename}
+% Log file created when the Python side encounters an unexpected error that it is not designed to report to the \LaTeX\ side.
% \begin{macrocode}
-\DeclareBoolOption{draft}
+\edef\MintedErrlogFilename{%
+ \detokenize{_}\MintedJobnameMdfive\detokenize{.errlog.minted}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{final}
-% Define a |final| option that is the opposite of |draft|, since many packages do this.
+%
+% \begin{macro}{\MintedMessageFilename}
+% Messages from the Python side to the LaTeX side. Deleted immediately after reading.
% \begin{macrocode}
-\DeclareComplementaryOption{final}{draft}
+\edef\MintedMessageFilename{%
+ \detokenize{_}\MintedJobnameMdfive\detokenize{.message.minted}}
% \end{macrocode}
% \end{macro}
%
%
-% Process package options. Proceed with everything that immediately relies upon them. If PGF/Ti\textit{k}Z externalization is in use, switch on |draft| mode and turn off |cache|. Externalization involves compiling the \emph{entire} document; all parts not related to the current image are ``silently thrown away.'' \texpkg{minted} needs to cooperate with that by not writing any temp files or creating any directories. Two checks are done for externalization. The first, using |\tikzifexternalizing|, works if externalization is set before \texpkg{minted} is loaded. The second, using |\tikzexternalrealjob|, works if externalization is set after \texpkg{minted} is loaded.
%
+% \subsection{Package options}
+%
+%
+% \begin{macro}{\minted@pgfopts}
% \begin{macrocode}
-\ProcessKeyvalOptions*
-\ifthenelse{\boolean{minted@newfloat}}{\RequirePackage{newfloat}}{\RequirePackage{float}}
-\ifcsname tikzifexternalizing\endcsname
- \tikzifexternalizing{\minted@drafttrue\minted@cachefalse}{}
-\else
- \ifcsname tikzexternalrealjob\endcsname
- \minted@drafttrue
- \minted@cachefalse
- \else
- \fi
-\fi
-\ifthenelse{\boolean{minted@finalizecache}}%
- {\ifthenelse{\boolean{minted@frozencache}}%
- {\PackageError{minted}%
- {Options "finalizecache" and "frozencache" are not compatible}%
- {Options "finalizecache" and "frozencache" are not compatible}}%
- {}}%
- {}
-\ifthenelse{\boolean{minted@cache}}%
- {\ifthenelse{\boolean{minted@frozencache}}%
- {}%
- {\AtEndOfPackage{\ProvideDirectory{\minted@outputdir\minted@cachedir}}}}%
- {}
+\def\minted@pgfopts#1{%
+ \pgfkeys{/minted/pkg/.cd,#1}}
% \end{macrocode}
+% \end{macro}
%
%
+% \subsubsection{Package option definitions}
%
-% \subsection{Input, caching, and temp files}
%
-% \begin{macro}{\minted@input}
-% We need a wrapper for |\input|. In most cases, |\input| failure will be due to attempts to use |\inputminted| with files that don't exist, but we also want to give informative error messages when |outputdir| is needed or incompatible build tools are used.
+% \begin{macro}{\minted@float@within}
+% Control the section numbering of the |listing| float.
% \begin{macrocode}
-\newcommand{\minted@input}[1]{%
- \IfFileExists{#1}%
- {\input{#1}}%
- {\PackageError{minted}{Missing Pygments output; \string\inputminted\space
- was^^Jprobably given a file that does not exist--otherwise, you may need
- ^^Jthe outputdir package option, or may be using an incompatible build
- tool,^^Jor may be using frozencache with a missing file}%
- {This could be caused by using -output-directory or -aux-directory
- ^^Jwithout setting minted's outputdir, or by using a build tool that
- ^^Jchanges paths in ways minted cannot detect,
- ^^Jor using frozencache with a missing file.}}%
+\minted@pgfopts{
+ chapter/.code=\def\minted@float@within{chapter},
+ chapter/.value forbidden,
+ section/.code=\def\minted@float@within{section},
+ section/.value forbidden,
}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@infile}
-% Define a default name for files of highlighted content that are brought it. Caching will redefine this. We start out with the default, non-caching value.
+% \begin{macro}{minted@newfloat}
+% Use \texpkg{newfloat} rather than \texpkg{float} to create a floating |listing| environment.
% \begin{macrocode}
-\newcommand{\minted@infile}{\minted@jobname.out.pyg}
+\newbool{minted@newfloat}
+\minted@pgfopts{
+ newfloat/.is if=minted@newfloat,
+}
% \end{macrocode}
% \end{macro}
%
%
-% We need a way to track the cache files that are created, and delete those that are not in use. This is accomplished by creating a comma-delimited list of cache files and saving this list to the |.aux| file so that it may be accessed on subsequent runs. During subsequent runs, this list is compared against the cache files that are actually used, and unused files are deleted. Cache file names are created with MD5 hashes of highlighting settings and file contents, with a |.pygtex| extension, so they never contain commas. Thus comma-delimiting the list of file names doesn't introduce a potential for errors.
-%
-% \begin{macro}{\minted@cachelist}
-% This is a list of the current cache files.
+% \begin{macro}{minted@debug}
+% Keep temp files for aid in debugging.
% \begin{macrocode}
-\newcommand{\minted@cachelist}{}
+\newbool{minted@debug}
+\minted@pgfopts{
+ debug/.is if=minted@debug,
+}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@addcachefile}
-% This adds a file to the list of cache files. It also creates a macro involving the hash, so that the current usage of the hash can be easily checked by seeing if the macro exists. The list of cache files must be created with built-in linebreaks, so that when it is written to the |.aux| file, it won't all be on one line and thereby risk buffer errors.
+%
+% \begin{macro}{minted@cache}
+% Determine whether highlighted content is cached.
% \begin{macrocode}
-\newcommand{\minted@addcachefile}[1]{%
- \expandafter\long\expandafter\gdef\expandafter\minted@cachelist\expandafter{%
- \minted@cachelist,^^J%
- \space\space#1}%
- \expandafter\gdef\csname minted@cached@#1\endcsname{}%
+\newbool{minted@cache}
+\booltrue{minted@cache}
+\minted@pgfopts{
+ cache/.is if=minted@cache,
}
% \end{macrocode}
% \end{macro}
%
-%
-% \begin{macro}{\minted@savecachelist}
-%
-% We need to be able to save the list of cache files to the |.aux| file, so that we can reload it on the next run.
+% \begin{macro}{\minted@cachedir}
+% Set the directory in which cached content is saved.
% \begin{macrocode}
-\newcommand{\minted@savecachelist}{%
- \ifdefempty{\minted@cachelist}{}{%
- \immediate\write\@mainaux{%
- \string\gdef\string\minted@oldcachelist\string{%
- \minted@cachelist\string}}%
- }%
+\edef\minted@cachedir{\detokenize{_minted}}
+\minted@pgfopts{
+ cachedir/.estore in=\minted@cachedir,
}
% \end{macrocode}
% \end{macro}
%
-%
-% \begin{macro}{\minted@cleancache}
-% Clean up old cache files that are no longer in use.
+% \begin{macro}{minted@frozencache}
+% When a cache file is missing, raise an error instead of attempting to update the cache. This is intended for editing a document with a pre-existing cache in an environment in which |\ShellEscape| support is disabled or the \mintedpkg\ executable is not available.
% \begin{macrocode}
-\newcommand{\minted@cleancache}{%
- \ifcsname minted@oldcachelist\endcsname
- \def\do##1{%
- \ifthenelse{\equal{##1}{}}{}{%
- \ifcsname minted@cached@##1\endcsname\else
- \DeleteFile[\minted@outputdir\minted@cachedir]{##1}%
- \fi
- }%
- }%
- \expandafter\docsvlist\expandafter{\minted@oldcachelist}%
- \else
- \fi
+\newbool{minted@frozencache}
+\minted@pgfopts{
+ frozencache/.is if=minted@frozencache,
}
% \end{macrocode}
% \end{macro}
%
%
-% At the end of the document, save the list of cache files and clean the cache. If in draft mode, don't clean up the cache and save the old cache file list for next time. This allows draft mode to be switched on and off without requiring that all highlighted content be regenerated. The saving and cleaning operations may be called without conditionals, since their definitions already contain all necessary checks for their correct operation.
+% \begin{macro}{minted@lexerlinenos}
+% Make all |minted| environments and |\mint| commands for a given lexer share cumulative line numbering (if |firstnumber=last|). |langlinenos| is for backward compatility with \mintedpkg\ v2.
% \begin{macrocode}
-\ifthenelse{\boolean{minted@draft}}%
- {\AtEndDocument{%
- \ifcsname minted@oldcachelist\endcsname
- \StrSubstitute{\minted@oldcachelist}{,}{,^^J }[\minted@cachelist]
- \minted@savecachelist
- \fi}}%
- {\ifthenelse{\boolean{minted@frozencache}}%
- {\AtEndDocument{%
- \ifcsname minted@oldcachelist\endcsname
- \StrSubstitute{\minted@oldcachelist}{,}{,^^J }[\minted@cachelist]
- \minted@savecachelist
- \fi}}%
- {\AtEndDocument{%
- \minted@savecachelist
- \minted@cleancache}}}%
+\newbool{minted@lexerlinenos}
+\minted@pgfopts{
+ lexerlinenos/.is if=minted@lexerlinenos,
+ langlinenos/.is if=minted@lexerlinenos,
+}
% \end{macrocode}
+% \end{macro}
%
+% \begin{macro}{minted@inputlexerlinenos}
+% Enable |lexerlinenos| and make it apply to |\inputminted|. |inputlanglinenos| is for backward compatility with \mintedpkg\ v2.
+% \begin{macrocode}
+\newbool{minted@inputlexerlinenos}
+\minted@pgfopts{
+ inputlexerlinenos/.is if=minted@inputlexerlinenos,
+ inputlanglinenos/.is if=minted@inputlexerlinenos,
+}
+% \end{macrocode}
+% \end{macro}
%
%
-% \subsection{OS interaction}
-%
-% We need system-dependent macros for communicating with the ``outside world.''
-%
-% \begin{macro}{\DeleteFile}
-%
-% Delete a file. Define conditionally in case an equivalent macro has already been defined.
+% \begin{macro}{minted@placeholder,\minted@insertplaceholder}
+% Cause all commands and environments to insert a placeholder rather than typesetting code. This functionality is primarily intended for use with PGF/Ti\textit{k}Z externalization, when all non-PGF/Ti\textit{k}Z features should be disabled.
+% \begin{macrocode}
+\newbool{minted@placeholder}
+\minted@pgfopts{
+ placeholder/.is if=minted@placeholder,
+}
+\gdef\minted@insertplaceholder{%
+ \ifbool{minted@isinline}%
+ {\begingroup
+ \fvset{extra=true}\Verb[formatcom=\color{red}\bfseries]{<MINTED>}%
+ \endgroup}%
+ {\begingroup
+ \par\noindent
+ \fvset{extra=true}\Verb[formatcom=\color{red}\bfseries]{<MINTED>}%
+ \par
+ \endgroup}}%
+% \end{macrocode}
+% \end{macro}
%
+% \begin{macro}{minted@verbatim}
+% Typeset all code verbatim using \texpkg{fancyvrb}; do not use Python at all.
% \begin{macrocode}
-\ifwindows
- \providecommand{\DeleteFile}[2][]{%
- \ifthenelse{\equal{#1}{}}%
- {\IfFileExists{#2}{\ShellEscape{del #2}}{}}%
- {\IfFileExists{#1/#2}{%
- \StrSubstitute{#1}{/}{\@backslashchar}[\minted@windir]
- \ShellEscape{del \minted@windir\@backslashchar #2}}{}}}
-\else
- \providecommand{\DeleteFile}[2][]{%
- \ifthenelse{\equal{#1}{}}%
- {\IfFileExists{#2}{\ShellEscape{rm #2}}{}}%
- {\IfFileExists{#1/#2}{\ShellEscape{rm #1/#2}}{}}}
-\fi
+\newbool{minted@verbatim}
+\minted@pgfopts{
+ verbatim/.is if=minted@verbatim,
+}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\ProvideDirectory}
+% \begin{macro}{\minted@highlightmode@init,\minted@fasthighlightmode@checkstart,\minted@fasthighlightmode@checkend}
+% Determine whether highlighting is performed immediately or at the end of the compile. Immediately means more overhead during the compile, but no second compile is required. Highlighting at the end of the compile means a second compile is required, but also makes highlighing much faster since there is only a single |\ShellEscape|.
%
-% We need to be able to create a directory, if it doesn't already exist. This is primarily for storing cached highlighted content.
+% |\minted@highlightmode@init| is invoked within |\minted@detectconfig| if the Python executable is available and enabled. For the |fastfirst| case, |\minted@highlightmode@init| requires the |\minted@cachepath| that is set within |\minted@detectconfig|.
%
+% |\minted@fasthighlightmode@checkend| is invoked |\AfterEndDocument| with |\minted@clean|; the |\AtEndDocument| is created with the definition of |\minted@clean| so that everything is in the correct order.
% \begin{macrocode}
-\ifwindows
- \newcommand{\ProvideDirectory}[1]{%
- \StrSubstitute{#1}{/}{\@backslashchar}[\minted@windir]
- \ShellEscape{if not exist \minted@windir\space mkdir \minted@windir}}
-\else
- \newcommand{\ProvideDirectory}[1]{%
- \ShellEscape{mkdir -p #1}}
-\fi
+\newbool{minted@fasthighlightmode}
+\newbool{minted@fasthighlightmode@open}
+\minted@pgfopts{
+ highlightmode/.is choice,
+ highlightmode/fast/.code=
+ \let\minted@highlightmode@init\minted@highlightmode@init@fast,
+ highlightmode/fastfirst/.code=
+ \let\minted@highlightmode@init\minted@highlightmode@init@fastfirst,
+ highlightmode/immediate/.code=
+ \let\minted@highlightmode@init\minted@highlightmode@init@immediate,
+}
+\def\minted@highlightmode@init@fast{%
+ \global\booltrue{minted@fasthighlightmode}}
+\def\minted@highlightmode@init@fastfirst{%
+ \IfFileExists{\minted@cachepath\MintedCacheIndexFilename}%
+ {\global\boolfalse{minted@fasthighlightmode}}
+ {\global\booltrue{minted@fasthighlightmode}}}
+\def\minted@highlightmode@init@immediate{%
+ \global\boolfalse{minted@fasthighlightmode}}
+\let\minted@highlightmode@init\minted@highlightmode@init@fastfirst
+\def\minted@fasthighlightmode@checkstart{%
+ \ifbool{minted@fasthighlightmode}%
+ {\pydatawritelistopen
+ \global\booltrue{minted@fasthighlightmode@open}}%
+ {}%
+ \global\let\minted@fasthighlightmode@checkstart\relax}
+\def\minted@fasthighlightmode@checkend{%
+ \ifbool{minted@fasthighlightmode@open}%
+ {\pydatasetfilename{\MintedDataFilename}%
+ \pydatawritelistclose
+ \pydataclosefilename{\MintedDataFilename}%
+ \global\boolfalse{minted@fasthighlightmode@open}%
+ \global\boolfalse{minted@fasthighlightmode}%
+ \begingroup
+ \minted@exec@batch
+ \ifx\minted@exec@warning\relax
+ \else
+ \expandafter\minted@exec@warning
+ \fi
+ \ifx\minted@exec@error\relax
+ \else
+ \expandafter\minted@exec@error
+ \fi
+ \endgroup
+ \global\boolfalse{minted@canexec}}%
+ {}%
+ \global\let\minted@fasthighlightmode@checkend\relax}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\TestAppExists}
%
-% Determine whether a given application exists.
+% \subsubsection{Package options that are no longer supported or deprecated}
%
-% Usage is a bit roundabout, but has been retained for backward compatibility. At some point, it may be worth replacing this with something using \verb`\@@input"|<command>"`. That would require MiKTeX users to |--enable-pipes|, however, which would make things a little more complicated. If Windows XP compatibility is ever no longer required, the |where| command could be used instead of the approach for Windows.
%
-% To test whether an application exists, use the following code:
+% \paragraph{finalizecache}
+% Old, no longer needed option from \mintedpkg\ v2.
+% \begin{macrocode}
+\minted@pgfopts{
+ finalizecache/.code=\minted@error{%
+ Package option "finalizecache" is no longer needed with minted v3+},
+}
+% \end{macrocode}
%
-% \begin{Verbatim}
-%\TestAppExists{appname}
-%\ifthenelse{\boolean{AppExists}}{app exists}{app doesn't exist}
-% \end{Verbatim}
%
+% \paragraph{kpsewhich}
+% Old, no longer needed option from \mintedpkg\ v2.
% \begin{macrocode}
-\newboolean{AppExists}
-\newread\minted@appexistsfile
-\newcommand{\TestAppExists}[1]{%
- \ifwindows
+\minted@pgfopts{
+ kpsewhich/.code=\minted@error{%
+ Package option "kpsewhich" is no longer needed with minted v3+},
+}
% \end{macrocode}
%
-% On Windows, we need to use path expansion and write the result to a file.
-% If the application doesn't exist, the file will be empty (except for a newline);
-% otherwise, it will contain the full path of the application.
%
+% \paragraph{outputdir}
+% Old, no longer needed option from \mintedpkg\ v2.
+%
+% The empty |\minted@outputdir| is for backward compatibility with packages that depend on \mintedpkg\ v2 internals.
% \begin{macrocode}
- \DeleteFile{\minted@jobname.aex}%
- \ShellEscape{for \string^\@percentchar i in (#1.exe #1.bat #1.cmd)
- do set > \minted@jobname.aex <nul: /p
- x=\string^\@percentchar \string~$PATH:i>> \minted@jobname.aex}%
- %$ <- balance syntax highlighting
- \immediate\openin\minted@appexistsfile\minted@jobname.aex
- \expandafter\def\expandafter\@tmp@cr\expandafter{\the\endlinechar}%
- \endlinechar=-1\relax
- \readline\minted@appexistsfile to \minted@apppathifexists
- \endlinechar=\@tmp@cr
- \ifthenelse{\equal{\minted@apppathifexists}{}}%
- {\AppExistsfalse}%
- {\AppExiststrue}%
- \immediate\closein\minted@appexistsfile
- \DeleteFile{\minted@jobname.aex}%
- \else
+\minted@pgfopts{
+ outputdir/.code=\minted@error{%
+ Package option "outputdir" is no longer needed with minted v3+;
+ the output directory is automatically detected for TeX Live 2024+,
+ and the environment variable \detokenize{TEXMF_OUTPUT_DIRECTORY}
+ can be set manually in other cases},
+}
+\def\minted@outputdir{}
% \end{macrocode}
%
-% On Unix-like systems, we do a straightforward |which| test and create a file upon success, whose existence we can then check.
%
+% \paragraph{draft}
+% Old, no longer supported option from \mintedpkg\ v2. Improvements in caching combined with the new \mintedpkg\ v3 package options |placeholder| and |verbatim| provide better alternatives.
% \begin{macrocode}
- \ShellEscape{command -v #1 && touch \minted@jobname.aex}%
- \IfFileExists{\minted@jobname.aex}%
- {\AppExiststrue
- \DeleteFile{\minted@jobname.aex}}%
- {\AppExistsfalse}%
- \fi
+\minted@pgfopts{
+ draft/.code=\minted@warning{%
+ Package option "draft" no longer has any effect with minted v3+},
}
% \end{macrocode}
-% \end{macro}
%
+% \paragraph{final}
+% Old, no longer supported option from \mintedpkg\ v2. Improvements in caching combined with the new \mintedpkg\ v3 package options |placeholder| and |verbatim| provide better alternatives.
+% \begin{macrocode}
+\minted@pgfopts{
+ final/.code=\minted@warning{%
+ Package option "final" no longer has any effect with minted v3+},
+}
+% \end{macrocode}
%
-% \subsection{Option processing}
%
-% Option processing is somewhat involved, because we want to be able to define options at various levels of hierarchy: individual command/environment, language, global (document). And once those options are defined, we need to go through the hierarchy in a defined order of precedence to determine which option to apply. As if that wasn't complicated enough, some options need to be sent to Pygments, some need to be sent to \texpkg{fancyvrb}, and some need to be processed within \texpkg{minted} itself.
%
-% To begin with, we need macros for storing lists of options that will later be passed via the command line to Pygments (|optlistcl|). These are defined at the global (|cl@g|), language (|cl@lang|), and command or environment (|cl@cmd|) levels, so that settings can be specified at various levels of hierarchy. The language macro is actually a placeholder. The current language will be tracked using |\minted@lang|. Each individual language will create a |\minted@optlistcl@lang|\meta{language} macro. |\minted@optlistcl@lang| may be |\let| to this macro as convenient; otherwise, the general language macro merely serves as a placeholder.
+% \subsubsection{Package option processing}
%
-% The global- and language-level lists also have an |inline| (|i|) variant. This allows different settings to be applied in inline settings. An inline variant is not needed at the command/environment level, since at that level settings would not be present unless they were supposed to be applied.
%
-% \begin{macro}{\minted@optlistcl@g}
% \begin{macrocode}
-\newcommand{\minted@optlistcl@g}{}
+\ProcessPgfOptions{/minted/pkg}
+\ifbool{minted@cache}{}{\def\minted@cachedir{}}%
+\ifbool{minted@newfloat}{\RequirePackage{newfloat}}{\RequirePackage{float}}
+\ifcsname tikzifexternalizing\endcsname
+ \ifx\tikzifexternalizing\relax
+ \else
+ \tikzifexternalizing{\booltrue{minted@placeholder}}{}
+ \fi
+\fi
% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\minted@optlistcl@g@i}
+%
+%
+% \subsection{Util}
+%
+%
+% \begin{macro}{\minted@styleprefix}
+% Prefix for generating Pygments style names.
% \begin{macrocode}
-\newcommand{\minted@optlistcl@g@i}{}
+\def\minted@styleprefix{PYG}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@lang}
+%
+% \begin{macro}{minted@tmpcnt}
+% Temp counter.
% \begin{macrocode}
-\let\minted@lang\@empty
+\newcounter{minted@tmpcnt}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@optlistcl@lang}
+%
+% \begin{macro}{\minted@forcsvlist}
+% Wrapper for \texpkg{etoolbox} |\forcsvlist|. Syntax: |\minted@forcsvlist|\marg{handler}\marg{listmacro}.
% \begin{macrocode}
-\newcommand{\minted@optlistcl@lang}{}
+\def\minted@forcsvlist#1#2{%
+ \if\relax\detokenize\expandafter{\@gobble#2}\relax
+ \expandafter\minted@forcsvlist@exp
+ \else
+ \expandafter\minted@forcsvlist@i
+ \fi
+ {#2}{#1}}
+\def\minted@forcsvlist@exp#1#2{%
+ \expandafter\minted@forcsvlist@i\expandafter{#1}{#2}}
+\def\minted@forcsvlist@i#1#2{%
+ \forcsvlist{#2}{#1}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@optlistcl@lang@i}
+%
+% \begin{macro}{\minted@apptoprovidecs}
% \begin{macrocode}
-\newcommand{\minted@optlistcl@lang@i}{}
+\def\minted@apptoprovidecs#1#2{%
+ \ifcsname#1\endcsname
+ \else
+ \expandafter\def\csname#1\endcsname{}%
+ \fi
+ \expandafter\let\expandafter\minted@tmp\csname#1\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp#2}%
+ \expandafter\let\csname#1\endcsname\minted@tmp}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@optlistcl@cmd}
+%
+% \begin{macro}{\minted@const@pgfkeysnovalue}
% \begin{macrocode}
-\newcommand{\minted@optlistcl@cmd}{}
+\def\minted@const@pgfkeysnovalue{\pgfkeysnovalue}
% \end{macrocode}
% \end{macro}
%
-% We also need macros for storing lists of options that will later be passed to \texpkg{fancyvrb} (|optlistfv|). As before, these exist at the global (|fv@g|), language (|fv@lang|), and command or environment (|fv@cmd|) levels. Pygments accepts \texpkg{fancyvrb} options, but in almost all cases, these options may be applied via |\fvset| rather than via running Pygments. This is significantly more efficient when caching is turned on, since it allows formatting changes to be applied without having to re-highlight the code.
%
-% \begin{macro}{\minted@optlistfv@g}
+% \begin{macro}{\minted@ensureatletter}
% \begin{macrocode}
-\newcommand{\minted@optlistfv@g}{}
+\def\minted@ensureatletter#1{%
+ \edef\minted@tmpatcat{\the\catcode`\@}%
+ \catcode`\@=11\relax
+ #1%
+ \catcode`\@=\minted@tmpatcat\relax}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@optlistfv@g@i}
+%
+%
+% \subsubsection{Check whether a string matches the regex \Verb{^[0-9A-Za-z_-]+$}}
+%
+% These macros are used to restrict possible names of highlighting styles on the \LaTeX\ side.
+%
+% \begin{macro}{\minted@is\detokenize{<char_category><codepoint_decimal>}}
+% Create macros used in determining whether a given character is part of a specified set of characters.
% \begin{macrocode}
-\newcommand{\minted@optlistfv@g@i}{}
+% [0-9]
+\setcounter{minted@tmpcnt}{48}
+\loop\unless\ifnum\value{minted@tmpcnt}>57\relax
+ \expandafter\let\csname minted@isnum\arabic{minted@tmpcnt}\endcsname\relax
+ \expandafter\let\csname minted@isalphanum\arabic{minted@tmpcnt}\endcsname\relax
+ \expandafter\let
+ \csname minted@isalphanumhyphenunderscore\arabic{minted@tmpcnt}\endcsname\relax
+ \stepcounter{minted@tmpcnt}
+\repeat
+% [A-Z]
+\setcounter{minted@tmpcnt}{65}
+\loop\unless\ifnum\value{minted@tmpcnt}>90\relax
+ \expandafter\let\csname minted@isalpha\arabic{minted@tmpcnt}\endcsname\relax
+ \expandafter\let\csname minted@isalphanum\arabic{minted@tmpcnt}\endcsname\relax
+ \expandafter\let
+ \csname minted@isalphanumhyphenunderscore\arabic{minted@tmpcnt}\endcsname\relax
+ \stepcounter{minted@tmpcnt}
+\repeat
+% [a-z]
+\setcounter{minted@tmpcnt}{97}
+\loop\unless\ifnum\value{minted@tmpcnt}>122\relax
+ \expandafter\let\csname minted@isalpha\arabic{minted@tmpcnt}\endcsname\relax
+ \expandafter\let\csname minted@isalphanum\arabic{minted@tmpcnt}\endcsname\relax
+ \expandafter\let
+ \csname minted@isalphanumhyphenunderscore\arabic{minted@tmpcnt}\endcsname\relax
+ \stepcounter{minted@tmpcnt}
+\repeat
+% [-]
+\expandafter\let\csname minted@isalphanumhyphenunderscore45\endcsname\relax
+% [_]
+\expandafter\let\csname minted@isalphanumhyphenunderscore95\endcsname\relax
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@optlistfv@lang}
+%
+% \begin{macro}{\minted@ifalphanumhyphenunderscore}
+% Conditional based on whether first argument is ASCII alphanumeric, hyphen, or underscore.
% \begin{macrocode}
-\newcommand{\minted@optlistfv@lang}{}
+\def\minted@ifalphanumhyphenunderscore#1#2#3{%
+ \if\relax\detokenize{#1}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {#3}%
+ {\expandafter\minted@ifalphanumhyphenunderscore@i\detokenize{#1}\FV@Sentinel{#2}{#3}}}
+\def\minted@ifalphanumhyphenunderscore@i#1#2\FV@Sentinel{%
+ \if\relax#2\relax
+ \expandafter\minted@ifalphanumhyphenunderscore@iii
+ \else
+ \expandafter\minted@ifalphanumhyphenunderscore@ii
+ \fi
+ #1#2\FV@Sentinel}
+\def\minted@ifalphanumhyphenunderscore@ii#1#2\FV@Sentinel{%
+ \ifcsname minted@isalphanumhyphenunderscore\number`#1\endcsname
+ \expandafter\minted@ifalphanumhyphenunderscore@i
+ \else
+ \expandafter\minted@ifalphanumhyphenunderscore@false
+ \fi
+ #2\FV@Sentinel}
+\def\minted@ifalphanumhyphenunderscore@iii#1\FV@Sentinel{%
+ \ifcsname minted@isalphanumhyphenunderscore\number`#1\endcsname
+ \expandafter\minted@ifalphanumhyphenunderscore@true
+ \else
+ \expandafter\minted@ifalphanumhyphenunderscore@false
+ \fi
+ \FV@Sentinel}
+\def\minted@ifalphanumhyphenunderscore@true\FV@Sentinel#1#2{#1}
+\def\minted@ifalphanumhyphenunderscore@false#1\FV@Sentinel#2#3{#3}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@optlistfv@lang@i}
+%
+%
+% \subsection{State}
+%
+%
+% \begin{macro}{\minted@lexer}
+% Current lexer (language). Should be the empty macro if not set; it is used within |\ifcsname...\endcsname| to check for the existence of lexer-specific settings macros.
% \begin{macrocode}
-\newcommand{\minted@optlistfv@lang@i}{}
+\let\minted@lexer\@empty
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@optlistfv@cmd}
+%
+% \begin{macro}{minted@isinline}
+% Whether in command or environment.
% \begin{macrocode}
-\newcommand{\minted@optlistfv@cmd}{}
+\newbool{minted@isinline}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@configlang}
%
-% We need a way to check whether a language has had all its option list macros created. This generally occurs in a context where |\minted@lang| needs to be set. So we create a macro that does both at once. If the language list macros do not exist, we create them globally to simplify future operations.
+% \begin{macro}{minted@tmpcodebufferlength}
+% Length of buffer in which code to be highlighted is stored.
% \begin{macrocode}
-\newcommand{\minted@configlang}[1]{%
- \def\minted@lang{#1}%
- \ifcsname minted@optlistcl@lang\minted@lang\endcsname\else
- \expandafter\gdef\csname minted@optlistcl@lang\minted@lang\endcsname{}%
- \fi
- \ifcsname minted@optlistcl@lang\minted@lang @i\endcsname\else
- \expandafter\gdef\csname minted@optlistcl@lang\minted@lang @i\endcsname{}%
- \fi
- \ifcsname minted@optlistfv@lang\minted@lang\endcsname\else
- \expandafter\gdef\csname minted@optlistfv@lang\minted@lang\endcsname{}%
- \fi
- \ifcsname minted@optlistfv@lang\minted@lang @i\endcsname\else
- \expandafter\gdef\csname minted@optlistfv@lang\minted@lang @i\endcsname{}%
- \fi
-}
+\newcounter{minted@tmpcodebufferlength}
% \end{macrocode}
% \end{macro}
%
-% We need a way to define options in bulk at the global, language, and command levels. How this is done will depend on the type of option. The keys created are grouped by level: |minted@opt@g|, |minted@opt@lang|, and |minted@opt@cmd|, plus inline variants. The language-level key groupings use |\minted@lang| internally, so we don't need to duplicate the internals for different languages. The key groupings are independent of whether a given option relates to Pygments, \texpkg{fancyvrb}, etc. Organization by level is the only thing that is important here, since keys are applied in a hierarchical fashion. Key values are stored in macros of the form |\minted@opt@|\meta{level}|:|\meta{key}, so that they may be retrieved later. In practice, these key macros will generally not be used directly (hence the colon in the name). Rather, the hierarchy of macros will be traversed until an existing macro is found.
%
-% \begin{macro}{\minted@def@optcl}
%
-% Define a generic option that will be passed to the command line. Options are given in a |{key}{value}| format that is transformed into |key=value| and then passed to |pygmentize|. This allows |value| to be easily stored in a separate macro for later access. This is useful, for example, in separately accessing the value of |encoding| for performing |autogobble|.
+% \subsection{Calling \mintedpkg\ executable}
%
-% If a |key| option is specified without |=value|, the default is assumed. Options are automatically created at all levels.
%
-% Options are added to the option lists in such a way that they will be detokenized. This is necessary since they will ultimately be used in |\write18|.
+% \begin{macro}{minted@canexec}
% \begin{macrocode}
-\ifwindows
- \newcommand{\minted@optlistcl@quote}[2]{%
- \detokenize{#1="#2"}}
-\else
- \newcommand{\minted@optlistcl@quote}[2]{%
- \detokenize{#1='#2'}}
+\newbool{minted@canexec}
+\booltrue{minted@canexec}
+\ifnum\csname c_sys_shell_escape_int\endcsname=0\relax
+ \boolfalse{minted@canexec}
\fi
-\newcommand{\minted@addto@optlistcl}[3]{%
- \expandafter\def\expandafter#1\expandafter{#1%
- \minted@optlistcl@quote{#2}{#3}\space}}
-\newcommand{\minted@addto@optlistcl@lang}[3]{%
- \expandafter\let\expandafter\minted@tmp\csname #1\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp%
- \minted@optlistcl@quote{#2}{#3}\space}%
- \expandafter\let\csname #1\endcsname\minted@tmp}
-\newcommand{\minted@def@optcl}[4][]{%
- \ifthenelse{\equal{#1}{}}%
- {\define@key{minted@opt@g}{#2}{%
- \minted@addto@optlistcl{\minted@optlistcl@g}{#3}{#4}%
- \@namedef{minted@opt@g:#2}{#4}}%
- \define@key{minted@opt@g@i}{#2}{%
- \minted@addto@optlistcl{\minted@optlistcl@g@i}{#3}{#4}%
- \@namedef{minted@opt@g@i:#2}{#4}}%
- \define@key{minted@opt@lang}{#2}{%
- \minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
- \define@key{minted@opt@lang@i}{#2}{%
- \minted@addto@optlistcl@lang{%
- minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
- \define@key{minted@opt@cmd}{#2}{%
- \minted@addto@optlistcl{\minted@optlistcl@cmd}{#3}{#4}%
- \@namedef{minted@opt@cmd:#2}{#4}}}%
- {\define@key{minted@opt@g}{#2}[#1]{%
- \minted@addto@optlistcl{\minted@optlistcl@g}{#3}{#4}%
- \@namedef{minted@opt@g:#2}{#4}}%
- \define@key{minted@opt@g@i}{#2}[#1]{%
- \minted@addto@optlistcl{\minted@optlistcl@g@i}{#3}{#4}%
- \@namedef{minted@opt@g@i:#2}{#4}}%
- \define@key{minted@opt@lang}{#2}[#1]{%
- \minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
- \define@key{minted@opt@lang@i}{#2}[#1]{%
- \minted@addto@optlistcl@lang{%
- minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
- \define@key{minted@opt@cmd}{#2}[#1]{%
- \minted@addto@optlistcl{\minted@optlistcl@cmd}{#3}{#4}%
- \@namedef{minted@opt@cmd:#2}{#4}}}%
-}
+\ifbool{minted@frozencache}{\boolfalse{minted@canexec}}{}
+\ifbool{minted@placeholder}{\boolfalse{minted@canexec}}{}
+\ifbool{minted@verbatim}{\boolfalse{minted@canexec}}{}
% \end{macrocode}
% \end{macro}
%
-% This covers the typical options that must be passed to Pygments. But some, particularly |escapeinside|, need more work. Since their arguments may contain escaped characters, expansion rather than detokenization is needed. Getting expansion to work as desired in a |\write18| context requires the redefinition of some characters.
%
-% \begin{macro}{\minted@escape}
-% Process (possibly backslash-escaped) characters into a form that will work correctly under expansion for use in |\write18|. This assumes that only punctuation characters are escaped. (Otherwise, trailing spaces from |\detokenize| would need to be stripped.) This is currently only used for |escapeinside|.
+% \begin{macro}{\minted@ShellEscapeMaybeMessages,\minted@ShellEscapeNoMessages}
% \begin{macrocode}
-\begingroup
-\catcode`\!=0
-!catcode`!\=12
-!gdef!minted@escape#1{%
- !expandafter!minted@escape@i!detokenize{#1}\!FV@Sentinel}
-!gdef!minted@escape@i#1\#2!FV@Sentinel{%
- !if!relax!detokenize{#2}!relax
- !expandafter!@firstoftwo
- !else
- !expandafter!@secondoftwo
- !fi
- {#1!minted@escape@end\#2!FV@Sentinel}
- {#1!minted@escape@esc\#2!FV@Sentinel}}
-!gdef!minted@escape@end#1!FV@Sentinel{}
-!gdef!minted@escape@esc\#1#2!FV@Sentinel{%
- #1!minted@escape@i#2!FV@Sentinel}
-!endgroup
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\minted@def@optcl@e}
-% Now to define options that involve backslash escapes.
-% \begin{macrocode}
-\newcommand{\minted@addto@optlistcl@e}[3]{%
- \edef\minted@tmp{\minted@escape{#3}}%
- \expandafter\minted@addto@optlistcl@e@i\expandafter{\minted@tmp}{#1}{#2}}
-\def\minted@addto@optlistcl@e@i#1#2#3{%
- \expandafter\def\expandafter#2\expandafter{#2\minted@optlistcl@quote{#3}{#1}\space}}
-\newcommand{\minted@addto@optlistcl@lang@e}[3]{%
- \edef\minted@tmp{\minted@escape{#3}}%
- \expandafter\minted@addto@optlistcl@lang@e@i\expandafter{\minted@tmp}{#1}{#2}}
-\def\minted@addto@optlistcl@lang@e@i#1#2#3{%
- \expandafter\let\expandafter\minted@tmp\csname #2\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp\minted@optlistcl@quote{#3}{#1}\space}%
- \expandafter\let\csname #2\endcsname\minted@tmp}
-\newcommand{\minted@def@optcl@e}[4][]{%
- \ifthenelse{\equal{#1}{}}%
- {\define@key{minted@opt@g}{#2}{%
- \minted@addto@optlistcl@e{\minted@optlistcl@g}{#3}{#4}%
- \@namedef{minted@opt@g:#2}{#4}}%
- \define@key{minted@opt@g@i}{#2}{%
- \minted@addto@optlistcl@e{\minted@optlistcl@g@i}{#3}{#4}%
- \@namedef{minted@opt@g@i:#2}{#4}}%
- \define@key{minted@opt@lang}{#2}{%
- \minted@addto@optlistcl@lang@e{minted@optlistcl@lang\minted@lang}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
- \define@key{minted@opt@lang@i}{#2}{%
- \minted@addto@optlistcl@lang@e{%
- minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
- \define@key{minted@opt@cmd}{#2}{%
- \minted@addto@optlistcl@e{\minted@optlistcl@cmd}{#3}{#4}%
- \@namedef{minted@opt@cmd:#2}{#4}}}%
- {\define@key{minted@opt@g}{#2}[#1]{%
- \minted@addto@optlistcl@e{\minted@optlistcl@g}{#3}{#4}%
- \@namedef{minted@opt@g:#2}{#4}}%
- \define@key{minted@opt@g@i}{#2}[#1]{%
- \minted@addto@optlistcl@e{\minted@optlistcl@g@i}{#3}{#4}%
- \@namedef{minted@opt@g@i:#2}{#4}}%
- \define@key{minted@opt@lang}{#2}[#1]{%
- \minted@addto@optlistcl@lang@e{minted@optlistcl@lang\minted@lang}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
- \define@key{minted@opt@lang@i}{#2}[#1]{%
- \minted@addto@optlistcl@lang@e{%
- minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
- \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
- \define@key{minted@opt@cmd}{#2}[#1]{%
- \minted@addto@optlistcl@e{\minted@optlistcl@cmd}{#3}{#4}%
- \@namedef{minted@opt@cmd:#2}{#4}}}%
-}
+\def\minted@ShellEscapeMaybeMessages#1{%
+ \let\minted@exec@warning\relax
+ \let\minted@exec@error\relax
+ \ifbool{minted@canexec}{\ShellEscape{#1}\minted@inputexecmessages}{}}
+\def\minted@ShellEscapeNoMessages#1{%
+ \ifbool{minted@canexec}{\ShellEscape{#1}}{}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@def@optcl@switch}
-%
-% Define a switch or boolean option that is passed to Pygments, which is |true| when no value is specified.
-% \begin{macrocode}
-\newcommand{\minted@def@optcl@switch}[2]{%
- \define@booleankey{minted@opt@g}{#1}%
- {\minted@addto@optlistcl{\minted@optlistcl@g}{#2}{True}%
- \@namedef{minted@opt@g:#1}{true}}
- {\minted@addto@optlistcl{\minted@optlistcl@g}{#2}{False}%
- \@namedef{minted@opt@g:#1}{false}}
- \define@booleankey{minted@opt@g@i}{#1}%
- {\minted@addto@optlistcl{\minted@optlistcl@g@i}{#2}{True}%
- \@namedef{minted@opt@g@i:#1}{true}}
- {\minted@addto@optlistcl{\minted@optlistcl@g@i}{#2}{False}%
- \@namedef{minted@opt@g@i:#1}{false}}
- \define@booleankey{minted@opt@lang}{#1}%
- {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#2}{True}%
- \@namedef{minted@opt@lang\minted@lang:#1}{true}}
- {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#2}{False}%
- \@namedef{minted@opt@lang\minted@lang:#1}{false}}
- \define@booleankey{minted@opt@lang@i}{#1}%
- {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang @i}{#2}{True}%
- \@namedef{minted@opt@lang\minted@lang @i:#1}{true}}
- {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang @i}{#2}{False}%
- \@namedef{minted@opt@lang\minted@lang @i:#1}{false}}
- \define@booleankey{minted@opt@cmd}{#1}%
- {\minted@addto@optlistcl{\minted@optlistcl@cmd}{#2}{True}%
- \@namedef{minted@opt@cmd:#1}{true}}
- {\minted@addto@optlistcl{\minted@optlistcl@cmd}{#2}{False}%
- \@namedef{minted@opt@cmd:#1}{false}}
-}
+% \begin{macro}{\minted@execarg@debug,\minted@execarg@timestamp}
+% \begin{macrocode}
+\def\minted@execarg@debug{%
+ \ifbool{minted@debug}{\detokenize{ --debug }}{}}
+\def\minted@execarg@timestamp{%
+ \detokenize{ --timestamp }\minted@timestamp\detokenize{ }}
% \end{macrocode}
% \end{macro}
%
-% Now that all the machinery for Pygments options is in place, we can move on to \texpkg{fancyvrb} options.
-%
-% \begin{macro}{\minted@def@optfv}
-%
-% Define \texpkg{fancyvrb} options. The |#1={##1}| is needed because any braces enclosing the argument (|##1|) will be stripped during the initial capture, and they need to be reinserted before \texpkg{fancyvrb} gets the argument and sends it through another \texpkg{keyval} processing step. If there were no braces initially, adding them here doesn't hurt, since they are just stripped off again during processing.
-% \begin{macrocode}
-\newcommand{\minted@def@optfv}[1]{%
- \define@key{minted@opt@g}{#1}{%
- \expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
- \minted@optlistfv@g#1={##1},}%
- \@namedef{minted@opt@g:#1}{##1}}
- \define@key{minted@opt@g@i}{#1}{%
- \expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
- \minted@optlistfv@g@i#1={##1},}%
- \@namedef{minted@opt@g@i:#1}{##1}}
- \define@key{minted@opt@lang}{#1}{%
- \expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{%
- \minted@tmp#1={##1},}%
- \expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
- \minted@tmp
- \@namedef{minted@opt@lang\minted@lang:#1}{##1}}
- \define@key{minted@opt@lang@i}{#1}{%
- \expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang @i\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{%
- \minted@tmp#1={##1},}%
- \expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
- \minted@tmp
- \@namedef{minted@opt@lang\minted@lang @i:#1}{##1}}
- \define@key{minted@opt@cmd}{#1}{%
- \expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
- \minted@optlistfv@cmd#1={##1},}%
- \@namedef{minted@opt@cmd:#1}{##1}}
-}
+%
+% \begin{macro}{\minted@exec@cleanfile}
+% Clean (delete) a temp file in all locations where it might be expected to exist. Only files under the working directory, |TEXMFOUTPUT|, or |TEXMF_OUTPUT_DIRECTORY| can be cleaned, and only if their names match the regex
+%\begin{verbatim}
+%[0-9a-zA-Z_-]+\.(?:config|data|errlog|highlight|message|style)\.minted
+%\end{verbatim}
+% The identifier immediately before the |.minted| file extension describes the role of the file. Files ending with |.errlog.minted| are not automatically cleaned up at the end of a compile, but are deleted at the beginning as part of config detection.
+% \begin{macrocode}
+\def\minted@exec@cleanfile#1{%
+ \minted@ShellEscapeNoMessages{%
+ \MintedExecutable\detokenize{ cleanfile }\minted@execarg@debug#1}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@def@optfv@switch}
-%
-% Define \texpkg{fancyvrb} boolean options.
-% \begin{macrocode}
-\newcommand{\minted@def@optfv@switch}[1]{%
- \define@booleankey{minted@opt@g}{#1}%
- {\expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
- \minted@optlistfv@g#1=true,}%
- \@namedef{minted@opt@g:#1}{true}}%
- {\expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
- \minted@optlistfv@g#1=false,}%
- \@namedef{minted@opt@g:#1}{false}}%
- \define@booleankey{minted@opt@g@i}{#1}%
- {\expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
- \minted@optlistfv@g@i#1=true,}%
- \@namedef{minted@opt@g@i:#1}{true}}%
- {\expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
- \minted@optlistfv@g@i#1=false,}%
- \@namedef{minted@opt@g@i:#1}{false}}%
- \define@booleankey{minted@opt@lang}{#1}%
- {\expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{%
- \minted@tmp#1=true,}%
- \expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
- \minted@tmp
- \@namedef{minted@opt@lang\minted@lang:#1}{true}}%
- {\expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{%
- \minted@tmp#1=false,}%
- \expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
- \minted@tmp
- \@namedef{minted@opt@lang\minted@lang:#1}{false}}%
- \define@booleankey{minted@opt@lang@i}{#1}%
- {\expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang @i\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{%
- \minted@tmp#1=true,}%
- \expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
- \minted@tmp
- \@namedef{minted@opt@lang\minted@lang @i:#1}{true}}%
- {\expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang @i\endcsname
- \expandafter\def\expandafter\minted@tmp\expandafter{%
- \minted@tmp#1=false,}%
- \expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
- \minted@tmp
- \@namedef{minted@opt@lang\minted@lang @i:#1}{false}}%
- \define@booleankey{minted@opt@cmd}{#1}%
- {\expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
- \minted@optlistfv@cmd#1=true,}%
- \@namedef{minted@opt@cmd:#1}{true}}%
- {\expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
- \minted@optlistfv@cmd#1=false,}%
- \@namedef{minted@opt@cmd:#1}{false}}%
-}
+%
+% \begin{macro}{\minted@inputexecmessages}
+% If temp file containing warning and/or error messages exists, |\input| and then delete.
+% \begin{macrocode}
+\def\minted@inputexecmessages{%
+ \minted@ensureatletter{\InputIfFileExists{\MintedMessageFilename}{}{}}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{minted@isinline}
-% In resolving value precedence when actually using values, we need a way to determine whether we are in an inline context. This is accomplished via a boolean that is set at the beginning of inline commands.
+%
+% \begin{macro}{\minted@exec@batch}
+% Run in batch mode, for |highlightmode=fast| or |highlightmode=fastfirst|.
% \begin{macrocode}
-\newboolean{minted@isinline}
+\def\minted@exec@batch{%
+ \minted@ShellEscapeMaybeMessages{%
+ \MintedExecutable
+ \detokenize{ batch }\minted@execarg@timestamp\minted@execarg@debug
+ \MintedJobnameMdfive}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@fvset}
-% We will need a way to actually use the lists of stored \texpkg{fancyvrb} options later on.
+%
+% \begin{macro}{\minted@exec@config}
+% Detect configuration.
% \begin{macrocode}
-\newcommand{\minted@fvset}{%
- \expandafter\fvset\expandafter{\minted@optlistfv@g}%
- \expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang\endcsname
- \expandafter\fvset\expandafter{\minted@tmp}%
- \ifthenelse{\boolean{minted@isinline}}%
- {\expandafter\fvset\expandafter{\minted@optlistfv@g@i}%
- \expandafter\let\expandafter\minted@tmp%
- \csname minted@optlistfv@lang\minted@lang @i\endcsname
- \expandafter\fvset\expandafter{\minted@tmp}}%
- {}%
- \expandafter\fvset\expandafter{\minted@optlistfv@cmd}%
-}
+\def\minted@exec@config{%
+ \minted@ShellEscapeMaybeMessages{%
+ \MintedExecutable
+ \detokenize{ config }\minted@execarg@timestamp\minted@execarg@debug
+ \MintedJobnameMdfive}}
% \end{macrocode}
% \end{macro}
%
%
-% We need a way to define \texpkg{minted}-specific options at multiple levels of hierarchy, as well as a way to retrieve these options. As with previous types of options, values are stored in macros of the form |\minted@opt@|\meta{level}|:|\meta{key}, since they are not meant to be accessed directly.
-%
-% The order of precedence is |cmd|, |lang@i|, |g@i|, |lang|, |g|. A value specified at the command or environment level should override other settings. In its absence, a value specified for an inline command should override other settings, if we are indeed in an inline context. Otherwise, language settings take precedence over global settings.
-%
-% Before actually creating the option-definition macro, we need a few helper macros.
-%
+% \begin{macro}{\minted@exec@styledef}
+% Create style definition.
+% \begin{macrocode}
+\def\minted@exec@styledef{%
+ \minted@ShellEscapeMaybeMessages{%
+ \MintedExecutable
+ \detokenize{ styledef }\minted@execarg@timestamp\minted@execarg@debug
+ \MintedJobnameMdfive}}
+% \end{macrocode}
+% \end{macro}
%
-% \begin{macro}{\minted@def@opt}
-% Finally, on to the actual option definitions for \texpkg{minted}-specific options.
%
-% Usage: |\minted@def@opt[|\meta{initial global value}|]{|\meta{key name}|}|
+% \begin{macro}{\minted@exec@highlight}
+% Highlight code.
% \begin{macrocode}
-\newcommand{\minted@def@opt}[2][]{%
- \define@key{minted@opt@g}{#2}{%
- \@namedef{minted@opt@g:#2}{##1}}
- \define@key{minted@opt@g@i}{#2}{%
- \@namedef{minted@opt@g@i:#2}{##1}}
- \define@key{minted@opt@lang}{#2}{%
- \@namedef{minted@opt@lang\minted@lang:#2}{##1}}
- \define@key{minted@opt@lang@i}{#2}{%
- \@namedef{minted@opt@lang\minted@lang @i:#2}{##1}}
- \define@key{minted@opt@cmd}{#2}{%
- \@namedef{minted@opt@cmd:#2}{##1}}
- \ifstrempty{#1}{}{\@namedef{minted@opt@g:#2}{#1}}%
-}
+\def\minted@exec@highlight{%
+ \minted@ShellEscapeMaybeMessages{%
+ \MintedExecutable
+ \detokenize{ highlight }\minted@execarg@timestamp\minted@execarg@debug
+ \MintedJobnameMdfive}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@def@opt@detok}
-% Same as |\minted@def@opt|, except wraps argument in |\detokenize|.
+% \begin{macro}{\minted@exec@clean}
+% Clean output directory and cache.
% \begin{macrocode}
-\newcommand{\minted@def@opt@detok}[2][]{%
- \define@key{minted@opt@g}{#2}{%
- \@namedef{minted@opt@g:#2}{\detokenize{##1}}}
- \define@key{minted@opt@g@i}{#2}{%
- \@namedef{minted@opt@g@i:#2}{\detokenize{##1}}}
- \define@key{minted@opt@lang}{#2}{%
- \@namedef{minted@opt@lang\minted@lang:#2}{\detokenize{##1}}}
- \define@key{minted@opt@lang@i}{#2}{%
- \@namedef{minted@opt@lang\minted@lang @i:#2}{\detokenize{##1}}}
- \define@key{minted@opt@cmd}{#2}{%
- \@namedef{minted@opt@cmd:#2}{\detokenize{##1}}}
- \ifstrempty{#1}{}{\@namedef{minted@opt@g:#2}{\detokenize{#1}}}%
-}
+\def\minted@exec@clean{%
+ \minted@ShellEscapeNoMessages{%
+ \MintedExecutable
+ \detokenize{ clean }\minted@execarg@timestamp\minted@execarg@debug
+ \MintedJobnameMdfive}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@generate@PYGdef}
-% Generate Pygments style definition with |pygmentize| if a cached version does not exist. Load the style definition into a global macro of the form
-%\begin{Verbatim}
-%\csname minted@PYGdef@<style>\endcsname
-%\end{Verbatim}
-% to allow styles to be defined later. Styles are not defined globally to avoid naming issues with style names that involve punctuation characters and numbers. Rather, styles are redefined upon every use (within groups), and all styles use macros with a |\PYG| prefix.
%
-% Takes a single argument that is the detokenized style name. Getting the detokenized style name here requires expansion (|\edef|) in an earlier macro (currently |\minted@defstyle|) to convert |\minted@get@opt{style}{default}| into detokenized text. The |style| value is always wrapped in |\detokenize| when it is set, so expansion automatically detokenizes. Detokenization can be important depending on active characters. Expansion is important because the style name may be used with caching, so we need the current value retrieved by |\minted@get@opt|, not the value at the end of the document when cache data is written to the |.aux| file.
+% \subsection{Config detection}
%
-% Certain catcodes are required when loading Pygments style definitions from file.
-% \begin{itemize}
-% \item At sign |@| would be handled by the |\makeatletter| within the Pygments style definition if the style was brought in via |\input|, but |\makeatletter| doesn't affect tokenization with the |catchfile| approach.
-% \item Percent |%| may not have its normal meaning within a |.dtx| file.
-% \item Backtick |`| is made active by some \texpkg{babel} package options, such as |magyar|.
-% \end{itemize}
-% |\endlinechar| also requires special handling to avoid introducing unwanted spaces.
%
-% The |\ifx\PYG\relax| tests detect outdated style definitions from \texpkg{minted} <2.6 and replace them when possible, and also detect missing styles. Before \texpkg{minted} 2.6, style macros used a |\PYG<style>| prefix and were defined globally. Starting with 2.6, styles are redefined upon every use (within groups), and all styles use macros with a |\PYG| prefix. This allows more robust treatment of style names that involve punctuation characters and numbers.
+% \begin{macro}{minted@diddetectconfig}
% \begin{macrocode}
-\newcommand{\minted@generate@PYGdef}[1]{%
- \ifthenelse{\boolean{minted@cache}}%
- {\def\minted@pygstylepath@load{\minted@outputdir\minted@cachedir/#1.pygstyle}%
- \minted@addcachefile{#1.pygstyle}}%
- {\def\minted@pygstylepath@load{\minted@outputdir\minted@jobname.out.pyg}}%
- \ifwindows
- \StrSubstitute{\minted@pygstylepath@load}%
- {/}{\@backslashchar}[\minted@pygstylepath@save]%
- \else
- \let\minted@pygstylepath@save\minted@pygstylepath@load
- \fi
- \IfFileExists{\minted@pygstylepath@load}%
+\newbool{minted@diddetectconfig}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\minted@detectconfig}
+% When the |minted@canexec| bool is defined, it is set false if shell escape is completely disabled (|\c_sys_shell_escape_int=0|) or if execution is disabled by package options, so those cases don't need to be handled here.
+%
+% If the Python executable is available, then it will create a |.config.minted| file to notify the \LaTeX\ side that it is present. This |.config.minted| file always contains a timestamp |\minted@executable@timestamp|, which is the timestamp passed directly to the executable as a command-line option. If the executable finds a |.data.minted| file, then it will extract the timestamp from this file and save it in the |.config.minted| file as |\minted@config@timestamp|; otherwise, the |.config.minted| file will not contain this timestamp. When \LaTeX\ loads the |.config.minted| file, the presence and values of these timestamps is used to determine whether the executable is present and whether the correct |.data.minted| file was located by the executable.
+% \begin{macrocode}
+\def\minted@detectconfig{%
+ \ifbool{minted@diddetectconfig}%
{}%
- {\ifthenelse{\boolean{minted@frozencache}}%
- {\PackageError{minted}%
- {Missing style definition for #1 with frozencache}%
- {Missing style definition for #1 with frozencache}}%
- {}%
- \ShellEscape{%
- \MintedPygmentize\space -S #1 -f latex -P commandprefix=PYG
- > \minted@pygstylepath@save
- }%
- }%
- \CatchFileDef{\minted@tmp@filecontents}%
- {\minted@pygstylepath@load}{\catcode`@=11\catcode`\%=14\catcode``=12\endlinechar=-1}%
- \begingroup
- \let\PYG\relax
- \minted@tmp@filecontents
- \ifx\PYG\relax
- \ifthenelse{\boolean{minted@frozencache}}%
- {\PackageError{minted}%
- {Outdated style definition for #1 with frozencache}%
- {Outdated style definition for #1 with frozencache}}%
- {}%
- \ShellEscape{%
- \MintedPygmentize\space -S #1 -f latex -P commandprefix=PYG
- > \minted@pygstylepath@save
- }%
- \CatchFileDef{\minted@tmp@filecontents}%
- {\minted@pygstylepath@load}{\catcode`@=11\catcode`\%=14\catcode``=12\endlinechar=-1}%
- \minted@tmp@filecontents
- \ifx\PYG\relax
- \PackageError{minted}%
- {Cannot find Pygments style #1}%
- {Cannot find Pygments style #1}%
+ {\ifx\minted@cachedir\@empty
+ \gdef\minted@cachepath{}%
+ \else
+ \gdef\minted@cachepath{\minted@cachedir/}%
\fi
+ \ifbool{minted@canexec}{\begingroup\minted@detectconfig@i\endgroup}{}%
+ \global\booltrue{minted@diddetectconfig}}}
+\def\minted@detectconfig@i{%
+ \global\let\minted@executable@version\relax
+ \global\let\minted@executable@timestamp\relax
+ \global\let\minted@config@timestamp\relax
+ \pydatasetfilename{\MintedDataFilename}%
+ \pydatawritedictopen
+ \pydatawritekeyvalue{command}{config}%
+ \pydatawritekeyedefvalue{jobname}{\jobname}%
+ \pydatawritekeyedefvalue{timestamp}{\minted@timestamp}%
+ \pydatawritekeyedefvalue{cachedir}{\minted@cachedir}%
+ \pydatawritedictclose
+ \pydataclosefilename{\MintedDataFilename}%
+ \minted@exec@config
+ \minted@ensureatletter{%
+ \InputIfFileExists{\MintedConfigFilename}{}{}}%
+ \ifx\minted@executable@version\relax
+ \expandafter\minted@detectconfig@noexecutable
+ \else
+ \expandafter\minted@detectconfig@ii
+ \fi}
+\def\minted@detectconfig@noexecutable{%
+ \global\boolfalse{minted@canexec}%
+ \ifnum\csname c_sys_shell_escape_int\endcsname=1\relax
+ \minted@error{minted v3+ executable is not installed or is not added to PATH}%
+ \else
+ \minted@error{minted v3+ executable is not installed, is not added to PATH,
+ or is not permitted with restricted shell escape}%
+ \fi}
+\def\minted@detectconfig@ii{%
+ \ifx\minted@timestamp\minted@config@timestamp
+ \expandafter\minted@detectconfig@iii
+ \else
+ \expandafter\minted@detectconfig@wrongtimestamp
+ \fi}
+\def\minted@detectconfig@wrongtimestamp{%
+ \ifx\minted@timestamp\minted@executable@timestamp
+ \minted@exec@cleanfile{\MintedConfigFilename}%
+ \global\boolfalse{minted@canexec}%
+ \minted@error{minted v3 Python executable could not find output directory;
+ upgrade to TeX distribution that supports \detokenize{TEXMF_OUTPUT_DIRECTORY}
+ or set environment variable \detokenize{TEXMF_OUTPUT_DIRECTORY} manually)}%
+ \else
+ \expandafter\minted@detectconfig@noexecutable
+ \fi}
+\def\minted@detectconfig@iii{%
+ \minted@exec@cleanfile{\MintedConfigFilename}%
+ \ifx\minted@exec@warning\relax
+ \else
+ \expandafter\minted@exec@warning
\fi
- \expandafter\global\expandafter\let\csname minted@PYGdef@#1\endcsname%
- \minted@tmp@filecontents
- \endgroup
-}
+ \ifx\minted@exec@error\relax
+ \expandafter\minted@detectconfig@iv
+ \else
+ \expandafter\minted@detectconfig@error
+ \fi}
+\def\minted@detectconfig@error{%
+ \global\boolfalse{minted@canexec}%
+ \minted@exec@error}
+\def\minted@detectconfig@iv{%
+ \expandafter\minted@detectconfig@v\minted@executable@version\relax}
+\begingroup
+\catcode`\.=12
+\gdef\minted@detectconfig@v#1.#2.#3\relax{%
+ \def\minted@executable@major{#1}%
+ \def\minted@executable@minor{#2}%
+ \def\minted@executable@patch{#3}%
+ \minted@detectconfig@vi}
+\endgroup
+\def\minted@detectconfig@vi{%
+ \ifnum\minted@executable@major>\minted@executable@minmajor\relax
+ \global\booltrue{minted@executable@issupported}%
+ \else\ifnum\minted@executable@major=\minted@executable@minmajor\relax
+ \ifnum\minted@executable@minor>\minted@executable@minminor\relax
+ \global\booltrue{minted@executable@issupported}%
+ \else\ifnum\minted@executable@minor=\minted@executable@minminor\relax
+ \ifnum\minted@executable@patch<\minted@executable@minpatch\relax
+ \else
+ \global\booltrue{minted@executable@issupported}%
+ \fi
+ \fi\fi
+ \fi\fi
+ \ifbool{minted@executable@issupported}%
+ {\ifx\minted@config@cachepath\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\global\boolfalse{minted@canexec}%
+ \minted@error{minted Python executable returned incomplete configuration data;
+ this may indicate a bug in minted or file corruption}}%
+ {\global\let\minted@cachepath\minted@config@cachepath
+ \minted@highlightmode@init}}%
+ {\global\boolfalse{minted@canexec}%
+ \minted@error{minted Python executable is version \minted@executable@version,
+ but version \minted@executable@minversion+ is required}}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@defstyle}
-% Define Pygments style macros. These are defined locally rather than globally, and redefined upon every use. Patch single quote macro if needed.
+%
+% \subsection{Options}
+%
+%
+% \subsubsection{Option processing}
+%
+% \begin{macro}{\minted@optcats,\minted@optkeyslist@<optcat>}
+% Option categories, along with lists of keys for each.
+% \begin{itemize}
+% \item |fv|: Passed on to \texpkg{fancyvrb}. Options are stored in scope-specific lists, rather than in individual per-option macros.
+% \item |py|: Passed to Python. Options are stored in scope-specific, individual per-option macros. Some of these are passed to \texpkg{fancyvrb} when the Python executable isn't available or is disabled.
+% \item |tex|: Processed in \LaTeX. Options are stored in scope-specific, individual per-option macros.
+% \end{itemize}
% \begin{macrocode}
-\newcommand{\minted@defstyle}[1]{%
- \edef\minted@style{#1}%
- \ifcsname minted@PYGdef@\minted@style\endcsname\else
- \expandafter\minted@generate@PYGdef\expandafter{\minted@style}%
- \fi
- \csname minted@PYGdef@\minted@style\endcsname
- \minted@patch@PYGZsq
- \minted@patch@PYGZhy
- \ifthenelse{\equal{\minted@get@opt{ignorelexererrors}{true}}{true}}%
- {\let\PYG@tok@err\relax}{}}
-\ifthenelse{\boolean{minted@draft}}{\renewcommand{\minted@defstyle}[1]{}}{}
+\begingroup
+\catcode`\,=12
+\gdef\minted@optcats{fv,py,tex}
+\endgroup
+\def\minted@do#1{\expandafter\def\csname minted@optkeyslist@#1\endcsname{}}
+\minted@forcsvlist{\minted@do}{\minted@optcats}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@patch@PYGZsq}
-% The single quote macro from \texpkg{Pygments} 1.6+ needs to be patched if the \texpkg{upquote} package is in use. Patching is done when the default style is created. Patching is only attempted if the macro exists, so that there is a graceful fallback in the event of a custom \texpkg{Pygments} stylesheet.
+% \begin{macro}{\minted@optscopes,\minted@optscopes@onlyblock}
+% Scopes for options. |cmd| scope is the scope of a single command or environment.
% \begin{macrocode}
-\newcommand{\minted@patch@PYGZsq}{%
- \ifcsname PYGZsq\endcsname
- \expandafter\ifdefstring\expandafter{\csname PYGZsq\endcsname}{\char`\'}%
- {\minted@patch@PYGZsq@i}%
- {}%
- \fi
-}
\begingroup
-\catcode`\'=\active
-\gdef\minted@patch@PYGZsq@i{\gdef\PYGZsq{'}}
+\catcode`\,=12
+\gdef\minted@optscopes{global,lexer,globalinline,lexerinline,cmd}
+\gdef\minted@optscopes@onlyblock{global,lexer,cmd}
\endgroup
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@patch@PYGZhy}
-% Redefine the hyphen under LuaTeX to prevent unintended line breaks.
+% \begin{macro}{\minted@iflexerscope}
% \begin{macrocode}
-\newcommand{\minted@patch@PYGZhy}{%
- \ifcsname PYGZhy\endcsname
- \expandafter\ifdefstring\expandafter{\csname PYGZhy\endcsname}{\char`\-}%
- {\def\PYGZhy{\mbox{-}}}%
- {}%
+\let\minted@iflexerscope@lexer\relax
+\let\minted@iflexerscope@lexerinline\relax
+\def\minted@iflexerscope#1#2#3{%
+ \ifcsname minted@iflexerscope@#1\endcsname
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
\fi
-}
+ {#2}{#3}}
% \end{macrocode}
% \end{macro}
%
%
+% \begin{macro}{\mintedpgfkeyscreate}
+% Core macro for defining options.
%
-% \begin{macro}{\minted@def@opt@switch}
-% And we need a switch version.
-%
-% It would be possible to create a special version of |\minted@get@opt| to work with these, but that would be redundant. During the key processing, any values other than |true| and |false| are filtered out. So when using |\minted@get@opt| later, we know that that part has already been taken care of, and we can just use something like |\ifthenelse{\equal{\minted@get@opt{<opt>}{<default>}}{true}}{...}{...}|. Of course, there is the possibility that a default value has not been set, but |\minted@def@opt@switch| sets a global default of |false| to avoid this. And as usual, Pygments values shouldn't be used without considering whether |\minted@get@opt| needs a fallback value.
+% Syntax: |\mintedpgfkeyscreate|\oarg{processor}\marg{option category}\marg{key(=value)? list}.
+% \begin{itemize}
+% \item Optional \meta{processor} is a macro that processes \meta{value}. It can take two forms.
+% \begin{enumerate}
+% \item It can take a single argument. In this case, it is used to wrap \meta{value}: |\processor|\marg{value}. It is not invoked until \meta{value} wrapped in \meta{processor} is actually used.
+% \item It can take two arguments. The first is the \meta{csname} that the processed \meta{value} should be stored in, and the second is \meta{value}. In this case, \meta{processor} is invoked immediately and stores the processed \meta{value} in \meta{csname}. See |\minted@opthandler@deforrestrictedescape| for an example of implementing this sort of \meta{processor}.
+% \end{enumerate}
+% \meta{processor} is only supported for |py| and |tex| options.
+% \item \meta{option category} is |fv| (for \texpkg{fancyvrb}), |py| (Python side of \mintedpkg), or |tex| (\LaTeX\ side of \mintedpkg).
+% \item If only \meta{key} is given, then \meta{value} defaults to |\pgfkeysnovalue|. In that case, options are defined so that they can be used in the future, but they are ignored until an explicit \meta{value} is provided later. |fv| options are typically defined only with \meta{key}. |py| and |tex| options are currently required to have an initial \meta{value}. If a \meta{key} is given an initial \meta{value} when it is defined, then that \meta{value} is stored for the \meta{key} in the |global| scope. When an initial value is needed for a different scope such as |lexer| or |inline|, |\pgfkeys| is used directly (|\setminted| and |\setmintedinline| don't yet exist).
+% \item |py| only: A default value for \meta{key} (value used when only \meta{key} is given without a value) can be specified with the syntax |key<default>=value|. Default values for |fv| options are already defined in \texpkg{fancyvrb}, and currently the few |tex| options are the sort that always need an explicit value for clarity.
+% \end{itemize}
% \begin{macrocode}
-\newcommand{\minted@def@opt@switch}[2][false]{%
- \define@booleankey{minted@opt@g}{#2}%
- {\@namedef{minted@opt@g:#2}{true}}%
- {\@namedef{minted@opt@g:#2}{false}}
- \define@booleankey{minted@opt@g@i}{#2}%
- {\@namedef{minted@opt@g@i:#2}{true}}%
- {\@namedef{minted@opt@g@i:#2}{false}}
- \define@booleankey{minted@opt@lang}{#2}%
- {\@namedef{minted@opt@lang\minted@lang:#2}{true}}%
- {\@namedef{minted@opt@lang\minted@lang:#2}{false}}
- \define@booleankey{minted@opt@lang@i}{#2}%
- {\@namedef{minted@opt@lang\minted@lang @i:#2}{true}}%
- {\@namedef{minted@opt@lang\minted@lang @i:#2}{false}}
- \define@booleankey{minted@opt@cmd}{#2}%
- {\@namedef{minted@opt@cmd:#2}{true}}%
- {\@namedef{minted@opt@cmd:#2}{false}}%
- \@namedef{minted@opt@g:#2}{#1}%
-}
+\def\minted@addoptkey#1#2{%
+ \ifcsname minted@optkeyslist@#1\endcsname
+ \else
+ \minted@fatalerror{Defining options under category "#1" is not supported}%
+ \fi
+ \expandafter\let\expandafter\minted@tmp\csname minted@optkeyslist@#1\endcsname
+ \ifx\minted@tmp\@empty
+ \def\minted@tmp{#2}%
+ \else
+ \expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp,#2}%
+ \fi
+ \expandafter\let\csname minted@optkeyslist@#1\endcsname\minted@tmp}
+\newcommand*{\mintedpgfkeyscreate}[3][]{%
+ \mintedpgfkeyscreate@i{#1}{#2}{#3}}
+\begingroup
+\catcode`\==12
+\gdef\mintedpgfkeyscreate@i#1#2#3{%
+ \def\minted@do##1{%
+ \minted@do@i##1=\FV@Sentinel}%
+ \def\minted@do@i##1=##2\FV@Sentinel{%
+ \minted@do@ii##1<>\FV@Sentinel}%
+ \def\minted@do@ii##1<##2>##3\FV@Sentinel{%
+ \minted@addoptkey{#2}{##1}}%
+ \minted@forcsvlist{\minted@do}{#3}%
+ \csname minted@pgfkeyscreate@#2\endcsname{#1}{#3}}
+\endgroup
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@get@opt}
-% We need a way to traverse the hierarchy of values for a given key and return the current value that has precedence. In doing this, we need to specify a default value to use if no value is found. When working with \texpkg{minted}-specific values, there should generally be a default value; in those cases, an empty default may be supplied. But the macro should also work with Pygments settings, which are stored in macros of the same form and will sometimes need to be accessed (for example, |encoding|). In the Pygments case, there may very well be no default values on the \LaTeX\ side, because we are falling back on Pygments' own built-in defaults. There is no need to duplicate those when very few Pygments values are ever needed; it is simpler to specify the default fallback when accessing the macro value.
+% \begin{macro}{\minted@pgfkeyscreate@fv,\minted@fvoptlist@<scope>(@<lexer>)?,\minted@usefvopts,\minted@usefvoptsnopy}
+% Syntax: |\minted@pgfkeyscreate@fv|\marg{key(=value)? list}.
+%
+% Options are stored in scope-specific lists. They are applied by passing these lists to |\fvset|. Individual option values are not retrievable.
%
-% From a programming perspective, the default argument value needs to be mandatory, so that |\minted@get@opt| can be fully expandable. This significantly simplifies accessing options.
+% The |\begingroup\fvset{...}\endgroup| checks \texpkg{fancyvrb} options at definition time so that any errors are caught immediately instead of when the options are used later elsewhere.
+%
+% |\minted@usefvopts| applies options via |\fvset|. |\minted@useadditionalfvoptsnopy| applies additional options that are usually handled on the Python side and is intended for situations where Python is not available or is not used, such as purely verbatim typesetting.
% \begin{macrocode}
-\def\minted@get@opt#1#2{%
- \ifcsname minted@opt@cmd:#1\endcsname
- \csname minted@opt@cmd:#1\endcsname
+\def\minted@pgfkeyscreate@fv#1#2{%
+ \if\relax\detokenize{#1}\relax
\else
- \ifminted@isinline
- \ifcsname minted@opt@lang\minted@lang @i:#1\endcsname
- \csname minted@opt@lang\minted@lang @i:#1\endcsname
- \else
- \ifcsname minted@opt@g@i:#1\endcsname
- \csname minted@opt@g@i:#1\endcsname
+ \minted@fatalerror{Processor macros are not supported in defining fancyvrb options}%
+ \fi
+ \minted@forcsvlist{\minted@pgfkeycreate@fv}{#2}}
+\begingroup
+\catcode`\==12
+\gdef\minted@pgfkeycreate@fv#1{%
+ \minted@pgfkeycreate@fv@i#1=\FV@Sentinel}
+\gdef\minted@pgfkeycreate@fv@i#1=#2\FV@Sentinel{%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\minted@pgfkeycreate@fv@ii
+ \else
+ \expandafter\minted@pgfkeycreate@fv@iii
+ \fi
+ {#1}#2\FV@Sentinel}
+\gdef\minted@pgfkeycreate@fv@ii#1\FV@Sentinel{%
+ \minted@pgfkeycreate@fv@iv{#1}{\minted@const@pgfkeysnovalue}}
+\gdef\minted@pgfkeycreate@fv@iii#1#2=\FV@Sentinel{%
+ \minted@pgfkeycreate@fv@iv{#1}{#2}}
+\endgroup
+\def\minted@pgfkeycreate@fv@iv#1#2{%
+ \def\minted@do##1{%
+ \minted@iflexerscope{##1}%
+ {\minted@do@i{##1}{@\minted@lexer}}%
+ {\minted@do@i{##1}{}}}%
+ \def\minted@do@i##1##2{%
+ \pgfkeys{%
+ /minted/##1/.cd,
+ #1/.code=
+ \def\minted@tmp{####1}%
+ \ifx\minted@tmp\minted@const@pgfkeysnovalue
+ \begingroup\fvset{#1}\endgroup
+ \minted@apptoprovidecs{minted@fvoptlist@##1##2}{#1,}%
\else
- \ifcsname minted@opt@lang\minted@lang:#1\endcsname
- \csname minted@opt@lang\minted@lang:#1\endcsname
+ \begingroup\fvset{#1=####1}\endgroup
+ \minted@apptoprovidecs{minted@fvoptlist@##1##2}{#1=####1,}%
+ \fi,
+ }%
+ }%
+ \minted@forcsvlist{\minted@do}{\minted@optscopes}%
+ \ifx\minted@const@pgfkeysnovalue#2\relax
+ \else
+ \pgfkeys{%
+ /minted/global/.cd,
+ #1=#2,
+ }%
+ \fi}
+\def\minted@usefvopts{%
+ \ifbool{minted@isinline}%
+ {\minted@forcsvlist{\minted@usefvopts@do}{\minted@optscopes}}%
+ {\minted@forcsvlist{\minted@usefvopts@do}{\minted@optscopes@onlyblock}}}
+\def\minted@usefvopts@do#1{%
+ \minted@iflexerscope{#1}%
+ {\ifcsname minted@fvoptlist@#1@\minted@lexer\endcsname
+ \expandafter
+ \let\expandafter\minted@tmp\csname minted@fvoptlist@#1@\minted@lexer\endcsname
+ \expandafter\fvset\expandafter{\minted@tmp}%
+ \fi}%
+ {\ifcsname minted@fvoptlist@#1\endcsname
+ \expandafter
+ \let\expandafter\minted@tmp\csname minted@fvoptlist@#1\endcsname
+ \expandafter\fvset\expandafter{\minted@tmp}%
+ \fi}}
+\def\minted@useadditionalfvoptsnopy{%
+ \edef\minted@tmp{\mintedpyoptvalueof{gobble}}%
+ \ifx\minted@tmp\minted@const@pgfkeysnovalue
+ \else
+ \expandafter\minted@useadditionalfvoptsnopy@fvsetvk
+ \expandafter{\minted@tmp}{gobble}%
+ \fi
+ \edef\minted@tmp{\mintedpyoptvalueof{mathescape}}%
+ \ifx\minted@tmp\minted@const@pgfkeysnovalue
+ \else
+ \expandafter\minted@useadditionalfvoptsnopy@fvsetvk
+ \expandafter{\minted@tmp}{mathescape}%
+ \fi}
+\def\minted@useadditionalfvoptsnopy@fvsetvk#1#2{%
+ \fvset{#2=#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\minted@pgfkeyscreate@py,\mintedpyoptvalueof}
+% Syntax: |\minted@pgfkeyscreate@py|\marg{processor}\marg{key(<default>)?=initial value list}.
+%
+% Currently, initial values are required. The key processing macros are written to handle the possibility of optional initial values: If no initial value is set, use |\pgfkeysnovalue|, which is skipped in passing data to the Python side to invoke defaults.
+%
+% |\mintedpyoptvalueof| is used for retrieving values via |\edef|.
+% \begin{macrocode}
+\def\minted@pgfkeyscreate@py#1#2{%
+ \minted@forcsvlist{\minted@pgfkeycreate@py{#1}}{#2}}
+\begingroup
+\catcode`\==12
+\catcode`\<=12
+\catcode`\>=12
+\gdef\minted@pgfkeycreate@py#1#2{%
+ \minted@pgfkeycreate@py@i{#1}#2=\FV@Sentinel}
+\gdef\minted@pgfkeycreate@py@i#1#2=#3\FV@Sentinel{%
+ \if\relax\detokenize{#3}\relax
+ \expandafter\minted@pgfkeycreate@py@ii
+ \else
+ \expandafter\minted@pgfkeycreate@py@iii
+ \fi
+ {#1}{#2}#3\FV@Sentinel}
+\gdef\minted@pgfkeycreate@py@ii#1#2\FV@Sentinel{%
+ \minted@pgfkeycreate@py@iv{#1}{\pgfkeysnovalue}#2<>\FV@Sentinel}
+\gdef\minted@pgfkeycreate@py@iii#1#2#3=\FV@Sentinel{%
+ \minted@pgfkeycreate@py@iv{#1}{#3}#2<>\FV@Sentinel}
+\gdef\minted@pgfkeycreate@py@iv#1#2#3<#4>#5\FV@Sentinel{%
+ \if\relax\detokenize{#4}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\minted@pgfkeycreate@py@v{#1}{#3}{#2}{\minted@const@pgfkeysnovalue}}%
+ {\minted@pgfkeycreate@py@v{#1}{#3}{#2}{#4}}}
+\endgroup
+\def\minted@pgfkeycreate@py@v#1#2#3#4{%
+ \def\minted@do##1{%
+ \minted@iflexerscope{##1}%
+ {\minted@do@i{##1}{@\minted@lexer}}%
+ {\minted@do@i{##1}{}}}
+ \def\minted@do@i##1##2{%
+ \if\relax\detokenize{#1}\relax
+ \pgfkeys{%
+ /minted/##1/.cd,
+ #2/.code=\expandafter\def\csname minted@pyopt@##1##2@#2\endcsname{####1},
+ }%
+ \else
+ \pgfkeys{%
+ /minted/##1/.cd,
+ #2/.code=
+ \def\minted@tmp{####1}%
+ \ifx\minted@tmp\minted@const@pgfkeysnovalue
+ \expandafter\let\csname minted@pyopt@##1##2@#2\endcsname\minted@tmp
+ \else\ifcsname minted@opthandler@immediate@\string#1\endcsname
+ #1{minted@pyopt@##1##2@#2}{####1}%
\else
- \ifcsname minted@opt@g:#1\endcsname
- \csname minted@opt@g:#1\endcsname
- \else
- #2%
- \fi
- \fi
- \fi
- \fi
+ \expandafter\def\csname minted@pyopt@##1##2@#2\endcsname{#1{####1}}%
+ \fi\fi,
+ }%
+ \fi
+ \ifx\minted@const@pgfkeysnovalue#4\relax
+ \pgfkeys{%
+ /minted/##1/.cd,
+ #2/.value required,
+ }%
\else
- \ifcsname minted@opt@lang\minted@lang:#1\endcsname
- \csname minted@opt@lang\minted@lang:#1\endcsname
- \else
- \ifcsname minted@opt@g:#1\endcsname
- \csname minted@opt@g:#1\endcsname
- \else
- #2%
- \fi
- \fi
+ \pgfkeys{%
+ /minted/##1/.cd,
+ #2/.default=#4,
+ }%
\fi
- \fi
-}%
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \noindent Actual option definitions. Some of these must be defined conditionally depending on whether we are in |draft| mode; in |draft| mode, we need to emulate Pygments functionality with \LaTeX, particularly with \texpkg{fancyvrb}, when possible. For example, gobbling must be performed by Pygments when |draft| is off, but when |draft| is on, \texpkg{fancyvrb} can perform gobbling.
-%
-% Lexers.
-% \begin{macrocode}
-\minted@def@optcl{encoding}{-P encoding}{#1}
-\minted@def@optcl{outencoding}{-P outencoding}{#1}
-\minted@def@optcl@e{escapeinside}{-P escapeinside}{#1}
-\minted@def@optcl@switch{stripnl}{-P stripnl}
-\minted@def@optcl@switch{stripall}{-P stripall}
-% Python console
-\minted@def@optcl@switch{python3}{-P python3}
-% PHP
-\minted@def@optcl@switch{funcnamehighlighting}{-P funcnamehighlighting}
-\minted@def@optcl@switch{startinline}{-P startinline}
-% \end{macrocode}
-%
-% Filters.
-% \begin{macrocode}
-\ifthenelse{\boolean{minted@draft}}%
- {\minted@def@optfv{gobble}}%
- {\minted@def@optcl{gobble}{-F gobble:n}{#1}}
-\minted@def@optcl{codetagify}{-F codetagify:codetags}{#1}
-\minted@def@optcl{keywordcase}{-F keywordcase:case}{#1}
-% \end{macrocode}
-%
-% \LaTeX\ formatter.
-% \begin{macrocode}
-\minted@def@optcl@switch{texcl}{-P texcomments}
-\minted@def@optcl@switch{texcomments}{-P texcomments}
-\minted@def@optcl@switch{mathescape}{-P mathescape}
-\minted@def@optfv@switch{linenos}
-\minted@def@opt@detok{style}
-% \end{macrocode}
-%
-% \texpkg{fancyvrb} and \texpkg{fvextra} options.
-% \begin{macrocode}
-\minted@def@optfv{frame}
-\minted@def@optfv{framesep}
-\minted@def@optfv{framerule}
-\minted@def@optfv{rulecolor}
-\minted@def@optfv{numbersep}
-\minted@def@optfv{numbers}
-\minted@def@optfv{firstnumber}
-\minted@def@optfv{stepnumber}
-\minted@def@optfv{firstline}
-\minted@def@optfv{lastline}
-\minted@def@optfv{baselinestretch}
-\minted@def@optfv{xleftmargin}
-\minted@def@optfv{xrightmargin}
-\minted@def@optfv{fillcolor}
-\minted@def@optfv{tabsize}
-\minted@def@optfv{fontfamily}
-\minted@def@optfv{fontsize}
-\minted@def@optfv{fontshape}
-\minted@def@optfv{fontseries}
-\minted@def@optfv{formatcom}
-\minted@def@optfv{label}
-\minted@def@optfv{labelposition}
-\minted@def@optfv{highlightlines}
-\minted@def@optfv{highlightcolor}
-\minted@def@optfv{space}
-\minted@def@optfv{spacecolor}
-\minted@def@optfv{tab}
-\minted@def@optfv{tabcolor}
-\minted@def@optfv{highlightcolor}
-\minted@def@optfv@switch{beameroverlays}
-\minted@def@optfv@switch{curlyquotes}
-\minted@def@optfv@switch{numberfirstline}
-\minted@def@optfv@switch{numberblanklines}
-\minted@def@optfv@switch{stepnumberfromfirst}
-\minted@def@optfv@switch{stepnumberoffsetvalues}
-\minted@def@optfv@switch{showspaces}
-\minted@def@optfv@switch{resetmargins}
-\minted@def@optfv@switch{samepage}
-\minted@def@optfv@switch{showtabs}
-\minted@def@optfv@switch{obeytabs}
-\minted@def@optfv@switch{breaklines}
-\minted@def@optfv@switch{breakbytoken}
-\minted@def@optfv@switch{breakbytokenanywhere}
-\minted@def@optfv{breakindent}
-\minted@def@optfv{breakindentnchars}
-\minted@def@optfv@switch{breakautoindent}
-\minted@def@optfv{breaksymbol}
-\minted@def@optfv{breaksymbolsep}
-\minted@def@optfv{breaksymbolsepnchars}
-\minted@def@optfv{breaksymbolindent}
-\minted@def@optfv{breaksymbolindentnchars}
-\minted@def@optfv{breaksymbolleft}
-\minted@def@optfv{breaksymbolsepleft}
-\minted@def@optfv{breaksymbolsepleftnchars}
-\minted@def@optfv{breaksymbolindentleft}
-\minted@def@optfv{breaksymbolindentleftnchars}
-\minted@def@optfv{breaksymbolright}
-\minted@def@optfv{breaksymbolsepright}
-\minted@def@optfv{breaksymbolseprightnchars}
-\minted@def@optfv{breaksymbolindentright}
-\minted@def@optfv{breaksymbolindentrightnchars}
-\minted@def@optfv{breakbefore}
-\minted@def@optfv{breakbeforesymbolpre}
-\minted@def@optfv{breakbeforesymbolpost}
-\minted@def@optfv@switch{breakbeforeinrun}
-\minted@def@optfv{breakafter}
-\minted@def@optfv@switch{breakafterinrun}
-\minted@def@optfv{breakaftersymbolpre}
-\minted@def@optfv{breakaftersymbolpost}
-\minted@def@optfv@switch{breakanywhere}
-\minted@def@optfv{breakanywheresymbolpre}
-\minted@def@optfv{breakanywheresymbolpost}
-\minted@def@optfv{fontencoding}
-% \end{macrocode}
-%
-% Finally, options specific to \texpkg{minted}.
-%
-% |bgcolor|. The original, |minipage|- and |\colorbox|-based solution was replaced with a |framed|-based solution in version 2.2. A dedicated framing package will often be preferable.
-% \begin{macrocode}
-\minted@def@opt{bgcolor}
-% \end{macrocode}
-%
-% Autogobble. We create an option that governs when Python's |textwrap.dedent()| is used to autogobble code.
-% \begin{macrocode}
-\minted@def@opt@switch{autogobble}
-% \end{macrocode}
-%
-% Whether lexer errors are shown.
-% \begin{macrocode}
-\minted@def@opt@switch{ignorelexererrors}
-% \end{macrocode}
-%
-% \begin{macro}{\minted@encoding}
-% When working with encoding, we will need access to the current encoding. That may be done via |\minted@get@opt|, but it is more convenient to go ahead and define a shortcut with an appropriate default
-% \begin{macrocode}
-\newcommand{\minted@encoding}{\minted@get@opt{encoding}{UTF8}}
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-%
-% \subsection{Internal helpers}
-%
-% \begin{environment}{minted@snugshade*}
-% Define a custom version of \texpkg{framed}'s |snugshade*| that takes a color as argument. This avoids the need to redefine |shadecolor|.
-% \begin{macrocode}
-\newenvironment{minted@snugshade*}[1]{%
- \def\FrameCommand##1{\hskip\@totalleftmargin
- \colorbox{#1}{##1}%
- \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
- \MakeFramed{\advance\hsize-\width
- \@totalleftmargin\z@ \linewidth\hsize
- \advance\labelsep\fboxsep
- \@setminipage}%
- }{\par\unskip\@minipagefalse\endMakeFramed}
+ }%
+ \minted@forcsvlist{\minted@do}{\minted@optscopes}%
+ \pgfkeys{%
+ /minted/global/.cd,
+ #2=#3,
+ }}
+\def\mintedpyoptvalueof#1{%
+ \ifbool{minted@isinline}%
+ {\minted@pyoptvalueof@inline{#1}}%
+ {\minted@pyoptvalueof@block{#1}}}
+\def\minted@pyoptvalueof@inline#1{%
+ \ifcsname minted@pyopt@cmd@#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@cmd@#1\endcsname}%
+ \else\ifcsname minted@pyopt@lexerinline@\minted@lexer @#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@lexerinline@\minted@lexer @#1\endcsname}%
+ \else\ifcsname minted@pyopt@globalinline@#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@globalinline@#1\endcsname}%
+ \else\ifcsname minted@pyopt@lexer@\minted@lexer @#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@lexer@\minted@lexer @#1\endcsname}%
+ \else
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@global@#1\endcsname}%
+ \fi\fi\fi\fi}
+\def\minted@pyoptvalueof@block#1{%
+ \ifcsname minted@pyopt@cmd@#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@cmd@#1\endcsname}%
+ \else\ifcsname minted@pyopt@lexer@\minted@lexer @#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@lexer@\minted@lexer @#1\endcsname}%
+ \else
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@pyopt@global@#1\endcsname}%
+ \fi\fi}
% \end{macrocode}
-% \end{environment}
+% \end{macro}
%
%
-% \begin{environment}{\minted@bgbox}
+% \begin{macro}{\minted@pgfkeyscreate@tex,\mintedtexoptvalueof,\minted@usetexoptsnonpygments}
+% Syntax: |\minted@pgfkeyscreate@tex|\marg{processor}\marg{key=initial value list}.
%
-% Define an environment that may be wrapped around a |minted| environment to assign a background color. This is retained as a holdover from version 1.0. In most cases, it is probably better to use a dedicated framing package, such as \texpkg{tcolorbox} or \texpkg{mdframed}.
+% Currently, initial values are required. The key processing macros are written to handle the possibility of optional initial values: If no initial value is set, use |\pgfkeysnovalue|.
%
-% First, we need to define a new save box.
+% |\mintedtexoptvalueof| is used for retrieving values via |\edef|.
%
+% |\minted@usetexoptsnonpygments| applies the |tex| options that aren't used by Pygments. It is initially empty and is redefined after |tex| options are defined. Unlike the |\minted@usefvopts| case, it isn't possible to simply loop through all defined options; more specialized per-option handling is required, since some options are handled in separate Pygments-related macros and there is no equivalent of |\fvset|.
% \begin{macrocode}
-\newsavebox{\minted@bgbox}
+\def\minted@pgfkeyscreate@tex#1#2{%
+ \minted@forcsvlist{\minted@pgfkeycreate@tex{#1}}{#2}}
+\begingroup
+\catcode`\==12
+\gdef\minted@pgfkeycreate@tex#1#2{%
+ \minted@pgfkeycreate@tex@i{#1}#2=\FV@Sentinel}
+\gdef\minted@pgfkeycreate@tex@i#1#2=#3\FV@Sentinel{%
+ \if\relax\detokenize{#3}\relax
+ \expandafter\minted@pgfkeycreate@tex@ii
+ \else
+ \expandafter\minted@pgfkeycreate@tex@iii
+ \fi
+ {#1}{#2}#3\FV@Sentinel}
+\gdef\minted@pgfkeycreate@tex@ii#1#2\FV@Sentinel{%
+ \minted@pgfkeycreate@tex@iv{#1}{#2}{\pgfkeysnovalue}}
+\gdef\minted@pgfkeycreate@tex@iii#1#2#3=\FV@Sentinel{%
+ \minted@pgfkeycreate@tex@iv{#1}{#2}{#3}}
+\endgroup
+\def\minted@pgfkeycreate@tex@iv#1#2#3{%
+ \def\minted@do##1{%
+ \minted@iflexerscope{##1}%
+ {\minted@do@i{##1}{@\minted@lexer}}%
+ {\minted@do@i{##1}{}}}
+ \def\minted@do@i##1##2{%
+ \if\relax\detokenize{#1}\relax
+ \pgfkeys{%
+ /minted/##1/.cd,
+ #2/.code=\expandafter\def\csname minted@texopt@##1##2@#2\endcsname{####1},
+ #2/.value required,
+ }%
+ \else
+ \pgfkeys{%
+ /minted/##1/.cd,
+ #2/.code=
+ \def\minted@tmp{####1}%
+ \ifx\minted@tmp\minted@const@pgfkeysnovalue
+ \expandafter\let\csname minted@texopt@##1##2@#2\endcsname\minted@tmp
+ \else\ifcsname minted@opthandler@immediate@\string#1\endcsname
+ #1{minted@texopt@##1##2@#2}{####1}%
+ \else
+ \expandafter\def\csname minted@texopt@##1##2@#2\endcsname{#1{####1}}%
+ \fi\fi,
+ #2/.value required,
+ }%
+ \fi
+ }%
+ \minted@forcsvlist{\minted@do}{\minted@optscopes}%
+ \pgfkeys{%
+ /minted/global/.cd,
+ #2=#3,
+ }}
+\def\mintedtexoptvalueof#1{%
+ \ifbool{minted@isinline}%
+ {\minted@texoptvalueof@inline{#1}}%
+ {\minted@texoptvalueof@block{#1}}}
+\def\minted@texoptvalueof@inline#1{%
+ \ifcsname minted@texopt@cmd@#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@cmd@#1\endcsname}%
+ \else\ifcsname minted@texopt@lexerinline@\minted@lexer @#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@lexerinline@\minted@lexer @#1\endcsname}%
+ \else\ifcsname minted@texopt@globalinline@#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@globalinline@#1\endcsname}%
+ \else\ifcsname minted@texopt@lexer@\minted@lexer @#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@lexer@\minted@lexer @#1\endcsname}%
+ \else
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@global@#1\endcsname}%
+ \fi\fi\fi\fi}
+\def\minted@texoptvalueof@block#1{%
+ \ifcsname minted@texopt@cmd@#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@cmd@#1\endcsname}%
+ \else\ifcsname minted@texopt@lexer@\minted@lexer @#1\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@lexer@\minted@lexer @#1\endcsname}%
+ \else
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname minted@texopt@global@#1\endcsname}%
+ \fi\fi}
+\def\minted@usetexoptsnonpygments{}
% \end{macrocode}
+% \end{macro}
%
-% Now we can define the environment that applies a background color. Prior to \texpkg{minted} 2.2, this involved a |minipage|. However, that approach was problematic because it did not allow linebreaks, would be pushed into the margin by immediately preceding text, and had very different whitespace separation from preceding and following text compared to no background color. In version 2.2, this was replaced with an approach based on \texpkg{framed}. |\FV@NumberSep| is adjusted by |\fboxsep| to ensure that line numbers remain in the same location in the margin regardless of whether |bgcolor| is used.
%
-% \begin{macrocode}
-\newenvironment{minted@colorbg}[1]{%
- \setlength{\OuterFrameSep}{0pt}%
- \let\minted@tmp\FV@NumberSep
- \edef\FV@NumberSep{%
- \the\numexpr\dimexpr\minted@tmp+\number\fboxsep\relax sp\relax}%
- \medskip
- \begin{minted@snugshade*}{#1}}
- {\end{minted@snugshade*}%
- \medskip\noindent}
-% \end{macrocode}
-% \end{environment}
+%
+% \subsubsection{Option handlers}
%
%
-% \begin{macro}{\minted@code}
-% Create a file handle for saving code (and anything else that must be written to temp files).
+% \begin{macro}{\minted@opthandler@deforrestrictedescape}
+% Syntax: |\minted@opthandler@deforrestrictedescape|\marg{csname}\marg{value}. \meta{value} is processed and then the result is stored in \meta{csname}.
+%
+% Leave \meta{value} unchanged if a single macro. Otherwise process it with |\FVExtraDetokenizeREscVArg|, which performs backslash escapes but restricted to ASCII symbols and punctuation. This guarantees exact output (no issues with spaces due to detokenizing alphabetical control sequences).
+%
+% The |\minted@opthandler@immediate@<macro_name>| tells option processing to invoke the macro immediately, instead of simply storing it as a value wrapper that will only be invoked when the value is used. This provides immediate error messages in the event of invalid escapes. |\FVExtraDetokenizeREscVArg| is not fully expandable, so waiting to invoke it later when \meta{value} is expanded (|\edef|) isn't an option.
% \begin{macrocode}
-\newwrite\minted@code
+\def\minted@opthandler@deforrestrictedescape#1#2{%
+ \if\relax\detokenize{#2}\relax
+ \expandafter\def\csname#1\endcsname{#2}%
+ \else\if\relax\detokenize\expandafter{\@gobble#2}\relax
+ \ifcat\relax\noexpand#2%
+ \expandafter\expandafter\expandafter\minted@opthandler@deforrestrictedescape@i
+ \expandafter\@gobble\string#2\FV@Sentinel{#1}{#2}%
+ \else
+ \FVExtraDetokenizeREscVArg{\expandafter\def\csname#1\endcsname}{#2}%
+ \fi
+ \else
+ \FVExtraDetokenizeREscVArg{\expandafter\def\csname#1\endcsname}{#2}%
+ \fi\fi}
+\def\minted@opthandler@deforrestrictedescape@i#1#2\FV@Sentinel#3#4{%
+ \ifcsname minted@isalpha\number`#1\endcsname
+ \expandafter\def\csname#3\endcsname{#4}%
+ \else
+ \FVExtraDetokenizeREscVArg{\expandafter\def\csname#3\endcsname}{#4}%
+ \fi}
+\expandafter\let\csname
+ minted@opthandler@immediate@\string\minted@opthandler@deforrestrictedescape
+ \endcsname\relax
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@savecode}
%
-% Save code to be pygmentized to a file.
+% \subsubsection{Option definitions}
+%
+%
+% \paragraph{\texpkg{fancyvrb}}
+% \begin{itemize}
+% \item |tabcolor|: Visible tabs should have a specified color so that they don't change colors when used to indent multiline strings or comments.
+% \end{itemize}
% \begin{macrocode}
-\newcommand{\minted@savecode}[1]{
- \immediate\openout\minted@code\minted@jobname.pyg\relax
- \immediate\write\minted@code{\expandafter\detokenize\expandafter{#1}}%
- \immediate\closeout\minted@code}
+\mintedpgfkeyscreate{fv}{
+ baselinestretch,
+ beameroverlays,
+ backgroundcolor,
+ backgroundcolorvphantom,
+ bgcolor,
+ bgcolorpadding,
+ bgcolorvphantom,
+ breakafter,
+ breakafterinrun,
+ breakaftersymbolpost,
+ breakaftersymbolpre,
+ breakanywhere,
+ breakanywhereinlinestretch,
+ breakanywheresymbolpost,
+ breakanywheresymbolpre,
+ breakautoindent,
+ breakbefore,
+ breakbeforeinrun,
+ breakbeforesymbolpost,
+ breakbeforesymbolpre,
+ breakbytoken,
+ breakbytokenanywhere,
+ breakindent,
+ breakindentnchars,
+ breaklines,
+ breaksymbol,
+ breaksymbolindent,
+ breaksymbolindentleft,
+ breaksymbolindentleftnchars,
+ breaksymbolindentnchars,
+ breaksymbolindentright,
+ breaksymbolindentrightnchars,
+ breaksymbolleft,
+ breaksymbolright,
+ breaksymbolsep,
+ breaksymbolsepleft,
+ breaksymbolsepleftnchars,
+ breaksymbolsepnchars,
+ breaksymbolsepright,
+ breaksymbolseprightnchars,
+ curlyquotes,
+ fillcolor,
+ firstline,
+ firstnumber,
+ fontencoding,
+ fontfamily,
+ fontseries,
+ fontshape,
+ fontsize,
+ formatcom,
+ frame,
+ framerule,
+ framesep,
+ highlightcolor,
+ highlightlines,
+ label,
+ labelposition,
+ lastline,
+ linenos,
+ listparameters,
+ numberblanklines,
+ numberfirstline,
+ numbers,
+ numbersep,
+ obeytabs,
+ resetmargins,
+ rulecolor,
+ samepage,
+ showspaces,
+ showtabs,
+ space,
+ spacecolor,
+ stepnumber,
+ stepnumberfromfirst,
+ stepnumberoffsetvalues,
+ tab,
+ tabcolor=black,
+ tabsize,
+ xleftmargin,
+ xrightmargin,
+}
% \end{macrocode}
-% \end{macro}
%
+% \paragraph{\mintedpkg\ (passed to Python)}
+% \begin{itemize}
+% \item PHP should use |startinline| for |\mintinline|.
+% \end{itemize}
+% \begin{macrocode}
+\mintedpgfkeyscreate{py}{
+ autogobble<true>=false,
+ encoding=utf8,
+ funcnamehighlighting<true>=true,
+ gobble=0,
+ gobblefilter=0,
+ keywordcase=none,
+ literalenvname=MintedVerbatim,
+ mathescape<true>=false,
+ python3<true>=true,
+ rangeregexmatchnumber=1,
+ rangeregexdotall<true>=false,
+ rangeregexmultiline<true>=false,
+ startinline<true>=false,
+ stripall<true>=false,
+ stripnl<true>=false,
+ texcl<true>=false,
+ texcomments<true>=false,
+}
+\mintedpgfkeyscreate[\minted@opthandler@deforrestrictedescape]{py}{
+ codetagify=,
+ escapeinside=,
+ literatecomment=,
+ rangestartstring=,
+ rangestartafterstring=,
+ rangestopstring=,
+ rangestopbeforestring=,
+ rangeregex=,
+}
+\let\minted@tmplexer\minted@lexer
+\def\minted@lexer{php}
+\pgfkeys{
+ /minted/lexerinline/.cd,
+ startinline=true,
+}
+\let\minted@lexer\minted@tmplexer
+% \end{macrocode}
%
-% \begin{macro}{minted@FancyVerbLineTemp}
-% At various points, we will need a temporary counter for storing and then restoring the value of |FancyVerbLine|. When using the |langlinenos| option, we need to store the current value of |FancyVerbLine|, then set |FancyVerbLine| to the current value of a language-specific counter, and finally restore |FancyVerbLine| to its initial value after the current chunk of code has been typeset. In patching |VerbatimOut|, we need to prevent |FancyVerbLine| from being incremented during the write process.
+% \paragraph{\mintedpkg\ (kept in \LaTeX)}
+% \begin{itemize}
+% \item The |\minted@def@optcl| is for backward compatibility with versions of \texpkg{tcolorbox} that used this to define an |envname| option under \mintedpkg\ v2.
+% \end{itemize}
% \begin{macrocode}
-\newcounter{minted@FancyVerbLineTemp}
+\mintedpgfkeyscreate{tex}{
+ envname=Verbatim,
+ ignorelexererrors=false,
+ style=default,
+}
+\pgfkeys{
+ /minted/globalinline/.cd,
+ envname=VerbEnv,
+}
+\expandafter\def\expandafter\minted@usetexoptsnonpygments\expandafter{%
+ \minted@usetexoptsnonpygments
+ \edef\minted@literalenvname{\mintedpyoptvalueof{literalenvname}}%
+ \edef\minted@envname{\mintedtexoptvalueof{envname}}%
+ \expandafter\def\expandafter\minted@literalenv\expandafter{%
+ \csname \minted@literalenvname\endcsname}%
+ \expandafter\def\expandafter\minted@endliteralenv\expandafter{%
+ \csname end\minted@literalenvname\endcsname}%
+ \expandafter\expandafter\expandafter
+ \let\expandafter\minted@literalenv\csname \minted@envname\endcsname
+ \expandafter\expandafter\expandafter
+ \let\expandafter\minted@endliteralenv\csname end\minted@envname\endcsname}%
+\ifcsname minted@def@optcl\endcsname
+ \ifx\minted@def@optcl\relax
+ \let\minted@def@optcl\minted@undefined
+ \fi
+\fi
+\providecommand{\minted@def@optcl}[4][]{%
+ \minted@warning{Macro \string\minted@def@optcl\space is deprecated with minted v3
+ and no longer has any effect}}
% \end{macrocode}
-% \end{macro}
%
%
-% \begin{macro}{\minted@FVB@VerbatimOut}
-% We need a custom version of \texpkg{fancyvrb}'s |\FVB@VerbatimOut| that supports Unicode (everything written to file is |\detokenized|). We also need to prevent the value of |FancyVerbLine| from being incorrectly incremented.
+%
+% \subsection{Caching, styles, and highlighting}
+%
+%
+%
+% \subsubsection{Cache management}
+%
+%
+% \begin{macro}{\minted@addcachefilename,\minted@cachefile<n>}
+% Track cache files that are used, so that unused files can be removed.
% \begin{macrocode}
-\newcommand{\minted@write@detok}[1]{%
- \immediate\write\FV@OutFile{\detokenize{#1}}}
-\newcommand{\minted@FVB@VerbatimOut}[1]{%
- \setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
- \@bsphack
- \begingroup
- \FV@UseKeyValues
- \FV@DefineWhiteSpace
- \def\FV@Space{\space}%
- \FV@DefineTabOut
- \let\FV@ProcessLine\minted@write@detok
- \immediate\openout\FV@OutFile #1\relax
- \let\FV@FontScanPrep\relax
- \let\@noligs\relax
- \FV@Scan}
+\newcounter{minted@numcachefiles}
+\def\minted@addcachefilename#1{%
+ \ifbool{minted@canexec}%
+ {\stepcounter{minted@numcachefiles}%
+ \expandafter
+ \xdef\csname minted@cachefile\arabic{minted@numcachefiles}\endcsname{#1}}%
+ {}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@FVE@VerbatimOut}
-% Likewise, we need a custom version of |\FVE@VerbatimOut| that completes the protection of |FancyVerbLine| from being incremented.
+%
+% \begin{macro}{\minted@clean}
+% If the Python executable is available and was used, clean up temp files. If a cache is in use, also update the cache index and remove unused cache files.
+%
+% Only create a |.data.minted| file if there is a cache list to save. Otherwise, no file is needed.
+%
+% Runs |\AfterEndDocument| so that all typesetting is complete, and thus the cache list is complete. |\minted@fasthighlightmode@checkend| is placed within the same |\AfterEndDocument| to guarantee correct ordering.
+%
% \begin{macrocode}
-\newcommand{\minted@FVE@VerbatimOut}{%
- \immediate\closeout\FV@OutFile\endgroup\@esphack
- \setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}}%
+\def\minted@clean{%
+ \ifbool{minted@canexec}%
+ {\ifbool{minted@diddetectconfig}{\minted@clean@i}{}}%
+ {}}
+\def\minted@clean@i{%
+ \ifnum\value{minted@numcachefiles}>0\relax
+ \expandafter\minted@savecachelist
+ \fi
+ \ifbool{minted@fasthighlightmode}%
+ {}%
+ {\minted@exec@clean
+ \global\boolfalse{minted@canexec}}}
+\def\minted@savecachelist{%
+ \pydatasetfilename{\MintedDataFilename}%
+ \minted@fasthighlightmode@checkstart
+ \pydatawritedictopen
+ \pydatawritekeyvalue{command}{clean}%
+ \pydatawritekeyedefvalue{jobname}{\jobname}%
+ \pydatawritekeyedefvalue{timestamp}{\minted@timestamp}%
+ \pydatawritekeyedefvalue{cachepath}{\minted@cachepath}%
+ \pydatawritekey{cachefiles}%
+ \pydatawritemlvaluestart
+ \pydatawritemlvalueline{[}%
+ \setcounter{minted@tmpcnt}{1}%
+ \loop\unless\ifnum\value{minted@tmpcnt}>\value{minted@numcachefiles}\relax
+ \expandafter\minted@savecachelist@writecachefile\expandafter{%
+ \csname minted@cachefile\arabic{minted@tmpcnt}\endcsname}%
+ \expandafter\global\expandafter
+ \let\csname minted@cachefile\arabic{minted@tmpcnt}\endcsname\minted@undefined
+ \stepcounter{minted@tmpcnt}%
+ \repeat
+ \setcounter{minted@numcachefiles}{0}%
+ \pydatawritemlvalueline{]}%
+ \pydatawritemlvalueend
+ \pydatawritedictclose
+ \ifbool{minted@fasthighlightmode}{}{\pydataclosefilename{\MintedDataFilename}}}
+\begingroup
+\catcode`\"=12
+\catcode`\,=12
+\gdef\minted@savecachelist@writecachefile#1{%
+ \expandafter\pydatawritemlvalueline\expandafter{\expandafter"#1",}}
+\endgroup
+\AfterEndDocument{%
+ \minted@clean
+ \minted@fasthighlightmode@checkend}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\MintedPygmentize}
-% We need a way to customize the executable/script that is called to perform highlighting. Typically, we will want |pygmentize|. But advanced users might wish to use a custom Python script instead. The command is only defined if it does not exist. In general, the command should be |\renewcommand|ed after the package is loaded, but this way, it will work if defined before \texpkg{minted} is loaded.
+%
+% \subsubsection{Style definitions}
+%
+%
+% \begin{macro}{\minted@patch@PygmentsStyledef}
+% The macros generated by Pygments must be patched: the single quote macro is redefined for \texpkg{upquote} compatibility, and the hyphen is redefined to prevent unintended line breaks under LuaTeX.
% \begin{macrocode}
-\ifcsname MintedPygmentize\endcsname\else
- \newcommand{\MintedPygmentize}{pygmentize}
-\fi
+\def\minted@patch@PygmentsZsq{%
+ \ifcsname\minted@styleprefix Zsq\endcsname
+ \ifcsstring{\minted@styleprefix Zsq}{\char`\'}{\minted@patch@PygmentsZsq@i}{}%
+ \fi}
+\begingroup
+\catcode`\'=\active
+\gdef\minted@patch@PygmentsZsq@i{\def\PYGZsq{'}}
+\endgroup
+\def\minted@patch@PygmentsZhy{%
+ \ifcsname\minted@styleprefix Zhy\endcsname
+ \ifcsstring{\minted@styleprefix Zhy}{\char`\-}{\def\PYGZhy{\mbox{-}}}{}%
+ \fi}
+\def\minted@patch@ignorelexererrors{%
+ \edef\minted@tmp{\mintedtexoptvalueof{ignorelexererrors}}%
+ \ifdefstring{\minted@tmp}{true}%
+ {\expandafter\let\csname\minted@styleprefix @tok@err\endcsname\relax}%
+ {}}
+\def\minted@patch@PygmentsStyledef{%
+ \minted@patch@PygmentsZsq
+ \minted@patch@PygmentsZhy
+ \minted@patch@ignorelexererrors}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{minted@pygmentizecounter}
-% We need a counter to keep track of how many files have been pygmentized. This is primarily used with |finalizecache| for naming cache files sequentially in |listing<number>.pygtex| form.
+% \begin{macro}{\minted@VerbatimPygments}
+% Enable \texpkg{fancyvrb} features for Pygments macros.
% \begin{macrocode}
-\newcounter{minted@pygmentizecounter}
+\def\minted@VerbatimPygments{%
+ \expandafter\minted@VerbatimPygments@i\expandafter{%
+ \csname\minted@styleprefix\endcsname}}
+\def\minted@VerbatimPygments@i#1{%
+ \VerbatimPygments{#1}{#1}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\MintedPython}
-% Python executable to be used for |autogobble|.
+% \begin{macro}{\minted@standardcatcodes}
+% Set standard catcodes. Used before |\input| of style definitions and in reading the optional argument of environments that wrap Pygments output.
% \begin{macrocode}
-\ifwindows
- \newcommand{\MintedPython}{python}
-\else
- \newcommand{\MintedPython}{python3}
-\fi
+\def\minted@standardcatcodes{%
+ \catcode`\\=0
+ \catcode`\{=1
+ \catcode`\}=2
+ \catcode`\#=6
+ \catcode`\ =10
+ \catcode`\@=11
+ \catcode`\`=12
+ \catcode`\==12
+ \catcode`\+=12
+ \catcode`\.=12
+ \catcode`\,=12
+ \catcode`\[=12
+ \catcode`\]=12
+ \catcode`\%=14}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@check@MintedPython}
-% Check that |\MintedPython| is a valid executable before use. Swap |python| for |python3| and vice versa depending on what is available.
+% \begin{macro}{\minted@defstyle}
+% Define highlighting style macros.
% \begin{macrocode}
-\newcommand{\minted@check@MintedPython}{%
- \ifcsname minted@MintedPython@\MintedPython\endcsname
+\def\minted@defstyle{%
+ \edef\minted@tmp{\mintedtexoptvalueof{style}}%
+ \expandafter\minted@defstyle@i\expandafter{\minted@tmp}}
+\def\minted@defstyle@i#1{%
+ \minted@ifalphanumhyphenunderscore{#1}%
+ {\minted@defstyle@ii{#1}}%
+ {\minted@error{Highlighting style is set to "#1" but only style names with
+ alphanumeric characters, hyphens, and underscores are supported;
+ falling back to default style}%
+ \minted@defstyle@ii{default}}}
+\def\minted@defstyle@ii#1{%
+ \ifcsname minted@styledef@#1\endcsname
+ \expandafter\@firstoftwo
\else
- \let\minted@altpython\minted@undefined
- \ifdefstring{\MintedPython}{python}{\def\minted@altpython{python3}}{}%
- \ifdefstring{\MintedPython}{python3}{\def\minted@altpython{python}}{}%
- \ifx\minted@altpython\minted@undefined\relax
- \TestAppExists{\MintedPython}%
- \ifAppExists
- \expandafter\global\expandafter\let%
- \csname minted@MintedPython@\MintedPython\endcsname\relax
- \else
- \PackageError{minted}%
- {Failed to find Python executable \MintedPython;
- check Python installation (including PATH),
- or redefine \string\MintedPython}%
- {Failed to find Python executable \MintedPython;
- check Python installation (including PATH),
- or redefine \string\MintedPython}%
- \fi
- \else
- \ifcsname minted@MintedPython@\minted@altpython\endcsname
- \let\MintedPython\minted@altpython
- \else
- \TestAppExists{\MintedPython}%
- \ifAppExists
- \expandafter\global\expandafter\let%
- \csname minted@MintedPython@\MintedPython\endcsname\relax
- \else
- \TestAppExists{\minted@altpython}%
- \ifAppExists
- \expandafter\global\expandafter\let%
- \csname minted@MintedPython@\minted@altpython\endcsname\relax
- \let\MintedPython\minted@altpython
- \else
- \PackageError{minted}%
- {Failed to find Python executables python or python3;
- check Python installation (including PATH),
- or redefine \string\MintedPython}%
- {Failed to find Python executables python or python3;
- check Python installation (including PATH),
- or redefine \string\MintedPython}%
- \fi
- \fi
- \fi
- \fi
+ \expandafter\@secondoftwo
\fi
-}
+ {\csname minted@styledef@#1\endcsname
+ \minted@patch@PygmentsStyledef
+ \minted@VerbatimPygments}%
+ {\minted@defstyle@load{#1}}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@pygmentize}
-%
-% Pygmentize a file (default: |\minted@outputdir\minted@jobname.pyg|) using the options provided.
-%
-% Unfortunately, the logic for caching is a little complex due to operations that are OS- and engine-dependent.
-%
-% The name of cached files is the result of concatenating the md5 of the code and the md5 of the command. This results in a filename that is longer than ideal (64 characters plus path and extension). Unfortunately, this is the only robust approach that is possible using the built-in pdfTeX hashing capabilities.\footnote{It would be possible to use only the cache of the code, but that approach breaks down as soon as the code is used multiple times with different options. While that may seem unlikely in practice, it occurs in this documentation and may be expected to occur in other docs.} LuaTeX could do better, by hashing the command and code together. The Python script that provides XeTeX capabilities simply runs both the command and the code through a single sha1 hasher, but has the additional overhead of the |\write18| call and Python execution.
-%
-% One potential concern is that caching should also keep track of the command from which code originates. What if identical code is highlighted with identical settings in both the |minted| environment and |\mintinline| command? In both cases, what is actually saved by Pygments is identical. The difference in final appearance is due to how the environment and command treat the Pygments output.
-%
-% \textbf{This macro must always be checked carefully whenever it is modified.} Under no circumstances should |#1| be written to or opened by Python in write mode. When |\inputminted| is used, |#1| will be an external file that is brought in for highlighting, so it must be left intact.
-%
-% At the very beginning, a check is performed to make sure that style macros exist. This must be done before the highlighted content is generated, so that temp file names can be shared without accidental overwriting. Styles are generated here, rather than when a style is set, so that creating the style macros is done as late as possible in case a custom |pygmentize| is in use via |\MintedPygmentize|.
+% \begin{macro}{\minted@defstyle@load}
+% Certain catcodes are required when loading Pygments style definitions from file.
+% \begin{itemize}
+% \item At sign |@| would be handled by the |\makeatletter| within the Pygments style definition if the style were brought in via |\input|, but |\makeatletter| doesn't affect tokenization with the |catchfile| approach.
+% \item Percent |%| may not have its normal meaning within a |.dtx| file.
+% \item Backtick |`| is made active by some \texpkg{babel} package options, such as |magyar|.
+% \item Catcodes for other symbolic/non-alphanumeric characters may (probably rarely) not have their normal definitions.
+% \end{itemize}
+% |\endlinechar| also requires special handling to avoid introducing unwanted spaces.
%
+% The |\begingroup...\endgroup| around |\minted@exec@styledef| and associated messages is necessary to prevent errors related to the message file. If a style does not exist, then the Python executable will create a |_<hash>.message.minted| file, which is brought in via |\InputIfFileExists| and generates an error message. After this, there is an attempt to load the default style. If the default style needs to be generated, then |\InputIfFileExists| will attempt to bring in a |_<hash>.message.minted| file regardless of whether it exists, unless it is wrapped in the |\begingroup...\endgroup|.
% \begin{macrocode}
-\ifwindows
- \def\minted@opt@quote#1{\detokenize{"#1"}}
-\else
- \def\minted@opt@quote#1{\detokenize{'#1'}}
-\fi
-\newcommand{\minted@pygmentize}[2][\minted@outputdir\minted@jobname.pyg]{%
- \minted@defstyle{\minted@get@opt{style}{default}}%
- \stepcounter{minted@pygmentizecounter}%
- \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
- {\def\minted@codefile{\minted@outputdir\minted@jobname.pyg}}%
- {\def\minted@codefile{#1}}%
- \ifthenelse{\boolean{minted@isinline}}%
- {\def\minted@optlistcl@inlines{%
- \minted@optlistcl@g@i
- \csname minted@optlistcl@lang\minted@lang @i\endcsname}}%
- {\let\minted@optlistcl@inlines\@empty}%
- \def\minted@cmd{%
- \ifminted@kpsewhich
- \ifwindows
- \detokenize{for /f "usebackq tokens=*"}\space\@percentchar\detokenize{a in (`kpsewhich}\space\minted@codefile\detokenize{`) do}\space
- \fi
+\def\minted@catchfiledef#1#2{%
+ \CatchFileDef{#1}{#2}{\minted@standardcatcodes\endlinechar=-1}}
+\def\minted@defstyle@load#1{%
+ \minted@detectconfig
+ \ifbool{minted@cache}%
+ {\edef\minted@styledeffilename{#1\detokenize{.style.minted}}%
+ \edef\minted@styledeffilepath{\minted@cachepath\minted@styledeffilename}%
+ \IfFileExists{\minted@styledeffilepath}%
+ {\minted@defstyle@input{#1}}%
+ {\ifbool{minted@canexec}%
+ {\minted@defstyle@generate{#1}}%
+ {\minted@error{Missing definition for highlighting style "#1" (minted executable
+ is unavailable or disabled); attempting to substitute fallback style}%
+ \minted@defstyle@fallback{#1}}}}%
+ {\edef\minted@styledeffilename{%
+ \detokenize{_}\MintedJobnameMdfive\detokenize{.style.minted}}%
+ \let\minted@styledeffilepath\minted@styledeffilename
+ \ifbool{minted@canexec}%
+ {\minted@defstyle@generate{#1}}%
+ {\minted@error{Missing definition for highlighting style "#1" (minted executable
+ is unavailable or disabled); attempting to substitute fallback style}%
+ \minted@defstyle@fallback{#1}}}}
+\def\minted@defstyle@input#1{%
+ \begingroup
+ \minted@catchfiledef{\minted@tmp}{\minted@styledeffilepath}%
+ \minted@tmp
+ \ifcsname\minted@styleprefix\endcsname
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\expandafter\global\expandafter\let\csname minted@styledef@#1\endcsname\minted@tmp
+ \endgroup
+ \ifbool{minted@cache}{\minted@addcachefilename{\minted@styledeffilename}}{}%
+ \csname minted@styledef@#1\endcsname
+ \minted@patch@PygmentsStyledef
+ \minted@VerbatimPygments}%
+ {\endgroup
+ \ifbool{minted@canexec}%
+ {\minted@warning{Invalid or corrupted style definition file
+ "\minted@styledeffilename"; attempting to regenerate}%
+ \minted@defstyle@generate{#1}}%
+ {\minted@error{Invalid or corrupted style definition file
+ "\minted@styledeffilename"; attempting to substitute fallback style
+ (minted executable is unavailable or disabled)}%
+ \minted@defstyle@fallback{#1}}}}
+\def\minted@defstyle@generate#1{%
+ \pydatasetfilename{\MintedDataFilename}%
+ \minted@fasthighlightmode@checkstart
+ \pydatawritedictopen
+ \pydatawritekeyvalue{command}{styledef}%
+ \pydatawritekeyedefvalue{jobname}{\jobname}%
+ \pydatawritekeyedefvalue{timestamp}{\minted@timestamp}%
+ \pydatawritekeyedefvalue{currentfilepath}{\CurrentFilePath}%
+ \pydatawritekeyedefvalue{currentfile}{\CurrentFile}%
+ \pydatawritekeyedefvalue{inputlineno}{\the\inputlineno}%
+ \pydatawritekeyedefvalue{cachepath}{\minted@cachepath}%
+ \pydatawritekeyedefvalue{styledeffilename}{\minted@styledeffilename}%
+ \pydatawritekeyvalue{style}{#1}%
+ \pydatawritekeyedefvalue{commandprefix}{\minted@styleprefix}%
+ \pydatawritedictclose
+ \ifbool{minted@fasthighlightmode}%
+ {\minted@defstyle@fallback{#1}}%
+ {\pydataclosefilename{\MintedDataFilename}%
+ \begingroup
+ \minted@exec@styledef
+ \ifx\minted@exec@warning\relax
+ \else
+ \expandafter\minted@exec@warning
\fi
- \MintedPygmentize\space -l \minted@opt@quote{#2}
- -f latex -P commandprefix=PYG -F tokenmerge
- \minted@optlistcl@g \csname minted@optlistcl@lang\minted@lang\endcsname
- \minted@optlistcl@inlines
- \minted@optlistcl@cmd -o \minted@outputdir\minted@infile\space
- \ifminted@kpsewhich
- \ifwindows
- \@percentchar\detokenize{a}%
- \else
- \detokenize{`}kpsewhich \minted@codefile\space
- \detokenize{||} \minted@codefile\detokenize{`}%
- \fi
+ \ifx\minted@exec@error\relax
+ \expandafter\minted@defstyle@generate@i
\else
- \minted@codefile
- \fi}%
- % For debugging, uncomment: %%%%
- % \immediate\typeout{\minted@cmd}%
- % %%%%
- \ifthenelse{\boolean{minted@cache}}%
- {%
- \ifminted@frozencache
- \else
- \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
- {\edef\minted@hash{%
- \pdf@filemdfivesum{#1}%
- \pdf@mdfivesum{\minted@cmd\space%
- autogobble(\the\numexpr\FancyVerbStartNum\relax-%
- \the\numexpr\FancyVerbStopNum\relax)}}}%
- {\edef\minted@hash{%
- \pdf@filemdfivesum{#1}%
- \pdf@mdfivesum{\minted@cmd}}}%
- \edef\minted@infile{\minted@cachedir/\minted@hash.pygtex}%
- \IfFileExists{\minted@infile}{}{%
- \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}{%
- \minted@autogobble{#1}}{}%
- \ShellEscape{\minted@cmd}}%
- \fi
- \ifthenelse{\boolean{minted@finalizecache}}%
- {%
- \edef\minted@cachefilename{listing\arabic{minted@pygmentizecounter}.pygtex}%
- \edef\minted@actualinfile{\minted@cachedir/\minted@cachefilename}%
- \ifwindows
- \StrSubstitute{\minted@infile}{/}{\@backslashchar}[\minted@infile@windows]
- \StrSubstitute{\minted@actualinfile}{/}{\@backslashchar}[\minted@actualinfile@windows]
- \ShellEscape{move /y \minted@outputdir\minted@infile@windows\space\minted@outputdir\minted@actualinfile@windows}%
- \else
- \ShellEscape{mv -f \minted@outputdir\minted@infile\space\minted@outputdir\minted@actualinfile}%
- \fi
- \let\minted@infile\minted@actualinfile
- \expandafter\minted@addcachefile\expandafter{\minted@cachefilename}%
- }%
- {\ifthenelse{\boolean{minted@frozencache}}%
- {%
- \edef\minted@cachefilename{listing\arabic{minted@pygmentizecounter}.pygtex}%
- \edef\minted@infile{\minted@cachedir/\minted@cachefilename}%
- \expandafter\minted@addcachefile\expandafter{\minted@cachefilename}}%
- {\expandafter\minted@addcachefile\expandafter{\minted@hash.pygtex}}%
- }%
- \minted@inputpyg}%
- {%
- \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}{%
- \minted@autogobble{#1}}{}%
- \ShellEscape{\minted@cmd}%
- \minted@inputpyg}%
-}
+ \expandafter\minted@defstyle@generate@error
+ \fi
+ {#1}}}
+\def\minted@defstyle@generate@i#1{%
+ \endgroup
+ \begingroup
+ \minted@catchfiledef{\minted@tmp}{\minted@styledeffilepath}%
+ \minted@tmp
+ \ifcsname\minted@styleprefix\endcsname
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\expandafter\global\expandafter\let\csname minted@styledef@#1\endcsname\minted@tmp
+ \endgroup
+ \ifbool{minted@cache}{\minted@addcachefilename{\minted@styledeffilename}}{}%
+ \csname minted@styledef@#1\endcsname
+ \minted@patch@PygmentsStyledef
+ \minted@VerbatimPygments}%
+ {\endgroup
+ \minted@error{Failed to create style definition file "\minted@styledeffilename"
+ (no error message, see "\MintedErrlogFilename" if it exists);
+ attempting to substitute fallback style}%
+ \minted@defstyle@fallback{#1}}}
+\def\minted@defstyle@generate@error#1{%
+ \minted@exec@error
+ \endgroup
+ \minted@defstyle@fallback{#1}}
+\def\minted@defstyle@fallback#1{%
+ \ifstrequal{#1}{default}%
+ {\expandafter\global\expandafter
+ \let\csname minted@styledef@default\endcsname\minted@styledeffallback}%
+ {\ifcsname minted@styledef@default\endcsname
+ \else
+ \minted@defstyle@load{default}%
+ \fi
+ \expandafter\let\expandafter\minted@tmp\csname minted@styledef@default\endcsname
+ \expandafter\global\expandafter\let\csname minted@styledef@#1\endcsname\minted@tmp}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@autogobble}
-% Remove common leading whitespace.
+% \begin{macro}{\minted@styledeffallback}
+% Basic style definition to make |.highlight.minted| cache files usable if no styles exist, not even the default style, and no styles can be generated.
% \begin{macrocode}
-\def\minted@autogobble#1{%
- \edef\minted@argone@esc{#1}%
- \StrSubstitute{\minted@argone@esc}{\@backslashchar}{\@backslashchar\@backslashchar}[\minted@argone@esc]%
- \StrSubstitute{\minted@argone@esc}{"}{\@backslashchar"}[\minted@argone@esc]%
- \edef\minted@tmpfname@esc{\minted@outputdir\minted@jobname}%
- \StrSubstitute{\minted@tmpfname@esc}{\@backslashchar}{\@backslashchar\@backslashchar}[\minted@tmpfname@esc]%
- \StrSubstitute{\minted@tmpfname@esc}{"}{\@backslashchar"}[\minted@tmpfname@esc]%
- %Need a version of open() that supports encoding under Python 2
- \minted@check@MintedPython
- \edef\minted@autogobblecmd{%
- \ifminted@kpsewhich
- \ifwindows
- \detokenize{for /f "usebackq tokens=*" }\@percentchar\detokenize{a in (`kpsewhich} #1\detokenize{`) do}\space
- \fi
- \fi
- \MintedPython\detokenize{ -c "import sys; import os;
- import textwrap;
- from io import open;
- fname = }%
- \ifminted@kpsewhich
- \detokenize{sys.argv[1];}\space
- \else
- \detokenize{os.path.expanduser(os.path.expandvars(\"}\minted@argone@esc\detokenize{\"));}\space
- \fi
- \detokenize{f = open(fname, \"r\", encoding=\"}\minted@encoding\detokenize{\") if os.path.isfile(fname) else None;
- t = f.readlines() if f is not None else None;
- t_opt = t if t is not None else [];
- f.close() if f is not None else None;
- tmpfname = os.path.expanduser(os.path.expandvars(\"}\minted@tmpfname@esc.pyg\detokenize{\"));
- f = open(tmpfname, \"w\", encoding=\"}\minted@encoding\detokenize{\") if t is not None else None;
- fvstartnum = }\the\numexpr\FancyVerbStartNum\detokenize{;
- fvstopnum = }\the\numexpr\FancyVerbStopNum\detokenize{;
- s = max(0, fvstartnum-1);
- e = max(s, fvstopnum) if fvstopnum > 0 else len(t_opt);
- [f.write(textwrap.dedent(\"\".join(x))) for x in (t_opt[0:s], t_opt[s:e], t_opt[e:]) if x and t is not None];
- f.close() if t is not None else os.remove(tmpfname);"}%
- \ifminted@kpsewhich
- \ifwindows
- \space\@percentchar\detokenize{a}%
- \else
- \space\detokenize{`}kpsewhich #1\space\detokenize{||} #1\detokenize{`}%
- \fi
- \fi
- }%
- \ShellEscape{\minted@autogobblecmd}%
-}
+\def\minted@styledeffallback{%
+ \expandafter\def\csname\minted@styleprefix\endcsname##1##2{##2}%
+ \expandafter\def\csname\minted@styleprefix Zbs\endcsname{\char`\\}%
+ \expandafter\def\csname\minted@styleprefix Zus\endcsname{\char`\_}%
+ \expandafter\def\csname\minted@styleprefix Zob\endcsname{\char`\{}%
+ \expandafter\def\csname\minted@styleprefix Zcb\endcsname{\char`\}}%
+ \expandafter\def\csname\minted@styleprefix Zca\endcsname{\char`\^}%
+ \expandafter\def\csname\minted@styleprefix Zam\endcsname{\char`\&}%
+ \expandafter\def\csname\minted@styleprefix Zlt\endcsname{\char`\<}%
+ \expandafter\def\csname\minted@styleprefix Zgt\endcsname{\char`\>}%
+ \expandafter\def\csname\minted@styleprefix Zsh\endcsname{\char`\#}%
+ \expandafter\def\csname\minted@styleprefix Zpc\endcsname{\char`\%}%
+ \expandafter\def\csname\minted@styleprefix Zdl\endcsname{\char`\$}%
+ \expandafter\def\csname\minted@styleprefix Zhy\endcsname{\char`\-}%
+ \expandafter\def\csname\minted@styleprefix Zsq\endcsname{\char`\'}%
+ \expandafter\def\csname\minted@styleprefix Zdq\endcsname{\char`\"}%
+ \expandafter\def\csname\minted@styleprefix Zti\endcsname{\char`\~}%
+ \minted@patch@PygmentsStyledef
+ \minted@VerbatimPygments}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@inputpyg}
-% For increased clarity, the actual |\input| process is separated out into its own macro.
%
-% At the last possible moment, |\PYG| is |\let| to |\PYG|\meta{style} and redefined to used appropriate line breaking via |\VerbatimPygments| from \texpkg{fvextra}.
+% \subsubsection{Lexer-specific line numbering}
+%
%
-% The |bgcolor| option needs to be dealt with in different ways depending on whether we are using |\mintinline|. It is simplest to apply this option here, so that the macro redefinitions may be local and thus do not need to be manually reset later.
+% \begin{macro}{minted@FancyVerbLineTemp}
+% Temporary counter for storing and then restoring the value of |FancyVerbLine|. When using the |lexerlinenos| option, we need to store the current value of |FancyVerbLine|, then set |FancyVerbLine| to the current value of a lexer-specific counter, and finally restore |FancyVerbLine| to its initial value after the current chunk of code has been typeset.
% \begin{macrocode}
-\newcommand{\minted@inputpyg}{%
- \VerbatimPygments{\PYG}{\PYG}%
- \ifthenelse{\boolean{minted@isinline}}%
- {\ifthenelse{\equal{\minted@get@opt{breaklines}{false}}{true}}%
- {\let\FV@BeginVBox\relax
- \let\FV@EndVBox\relax
- \def\FV@BProcessLine##1{\FancyVerbFormatLine{##1}}%
- \minted@inputpyg@inline}%
- {\minted@inputpyg@inline}}%
- {\minted@inputpyg@block}%
-}
-\def\minted@inputpyg@inline{%
- \ifthenelse{\equal{\minted@get@opt{bgcolor}{}}{}}%
- {\minted@input{\minted@outputdir\minted@infile}}%
- {\colorbox{\minted@get@opt{bgcolor}{}}{%
- \minted@input{\minted@outputdir\minted@infile}}}%
-}
-\def\minted@inputpyg@block{%
- \ifthenelse{\equal{\minted@get@opt{bgcolor}{}}{}}%
- {\minted@input{\minted@outputdir\minted@infile}}%
- {\begin{minted@colorbg}{\minted@get@opt{bgcolor}{}}%
- \minted@input{\minted@outputdir\minted@infile}%
- \end{minted@colorbg}}}
+\newcounter{minted@FancyVerbLineTemp}
% \end{macrocode}
% \end{macro}
%
-%
-% We need a way to have line counters on a per-language basis.
-%
-% \begin{macro}{\minted@langlinenoson}
+% \begin{macro}{\minted@lexerlinenoson,\minted@lexerlinenosoff,\minted@inputlexerlinenoson,\minted@inputlexerlinenosoff}
+% Line counters on a per-lexer basis for |minted| and |\mintinline|; line counters on a per-lexer basis for |\inputminted|.
% \begin{macrocode}
-\newcommand{\minted@langlinenoson}{%
- \ifcsname c@minted@lang\minted@lang\endcsname\else
- \newcounter{minted@lang\minted@lang}%
+\def\minted@lexerlinenoson{%
+ \ifcsname c@minted@lexer\minted@lexer\endcsname
+ \else
+ \newcounter{minted@lexer\minted@lexer}%
\fi
\setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
- \setcounter{FancyVerbLine}{\value{minted@lang\minted@lang}}%
-}
+ \setcounter{FancyVerbLine}{\value{minted@lexer\minted@lexer}}}
+\def\minted@lexerlinenosoff{%
+ \setcounter{minted@lexer\minted@lexer}{\value{FancyVerbLine}}%
+ \setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}}
+\ifbool{minted@inputlexerlinenos}%
+ {\let\minted@inputlexerlinenoson\minted@lexerlinenoson
+ \let\minted@inputlexerlinenosoff\minted@lexerlinenosoff}%
+ {\let\minted@inputlexerlinenoson\relax
+ \let\minted@inputlexerlinenosoff\relax
+ \ifbool{minted@lexerlinenos}
+ {}%
+ {\let\minted@lexerlinenoson\relax
+ \let\minted@lexerlinenosoff\relax}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\minted@langlinenosoff}
%
+% \begin{macro}{\minted@codewrapper}
+% Wrapper around typeset code. |\minted@inputfilepath| will exist when the code is brought in from an external file.
% \begin{macrocode}
-\newcommand{\minted@langlinenosoff}{%
- \setcounter{minted@lang\minted@lang}{\value{FancyVerbLine}}%
- \setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}%
-}
+\def\minted@codewrapper#1{%
+ \ifcsname minted@inputfilepath\endcsname
+ \minted@inputlexerlinenoson
+ \else
+ \minted@lexerlinenoson
+ \fi
+ #1%
+ \ifcsname minted@inputfilepath\endcsname
+ \minted@inputlexerlinenosoff
+ \else
+ \minted@lexerlinenosoff
+ \fi}
% \end{macrocode}
% \end{macro}
%
%
-% Disable the language-specific settings if the package option isn't used.
-% \begin{macrocode}
-\ifbool{minted@langlinenos}{}{%
- \ifbool{minted@inputlanglinenos}{}{%
- \let\minted@langlinenoson\relax
- \let\minted@langlinenosoff\relax
- }
-}
-% \end{macrocode}
%
-% \begin{macro}{\minted@inputlanglinenoson}
-% \begin{macro}{\minted@inputlanglinenosoff}
-% Language-specific settings that apply to |\inputminted| in addition to |minted| and |\mintinline|.
+% \subsubsection{Highlighting code}
+%
+%
+% \begin{macro}{\minted@highlight,\minted@highlightinputfile}
+% Highlight code previously stored in buffer |minted@tmpdatabuffer|, or code in an external file.
+%
+% |\minted@defstyle| will invoke |\minted@detectconfig| the first time a style is loaded, so no separate |\minted@detectconfig| is needed.
+%
+% The default |\minted@highlight@fallback| inserts a placeholder. Typically commands/environments will redefine the fallback locally to inserted a verbatim approximation of code that could not be highlighted.
+%
+% Python-related options are buffered/written under a |pyopt| namespace. This prevents the possibility of naming collisions between options and other data that must be passed to Python.
+%
+% Some data such as |jobname|, |timestamp|, and |cachepath| should be written to file, but not used in hashing because otherwise it would unnecessarily make the cache files dependent on irrelevant data.
% \begin{macrocode}
-\ifbool{minted@inputlanglinenos}%
- {\def\minted@inputlanglinenoson{\minted@langlinenoson}%
- \def\minted@inputlanglinenosoff{\minted@langlinenosoff}}%
- {\let\minted@inputlanglinenoson\relax
- \let\minted@inputlanglinenosoff\relax}
+\def\minted@debug@input{%
+ \ifbool{minted@debug}%
+ {\immediate\typeout{%
+ minted debug: \string\input\space at
+ \ifx\CurrentFile\@empty\else\CurrentFile\space\fi line \the\inputlineno}}%
+ {}}
+\def\minted@highlight{%
+ \minted@defstyle
+ \pydatasetbuffername{minted@tmpdatabuffer}%
+ \pydatabufferkeyvalue{command}{highlight}%
+ \pydatabufferkey{code}%
+ \pydatabuffermlvaluestart
+ \setcounter{minted@tmpcnt}{1}%
+ \loop\unless\ifnum\value{minted@tmpcnt}>\value{minted@tmpcodebufferlength}\relax
+ \expandafter\let\expandafter
+ \minted@tmp\csname minted@tmpcodebufferline\arabic{minted@tmpcnt}\endcsname
+ \expandafter\pydatabuffermlvalueline\expandafter{\minted@tmp}%
+ \stepcounter{minted@tmpcnt}%
+ \repeat
+ \pydatabuffermlvalueend
+ \minted@highlight@i}
+\def\minted@highlightinputfile{%
+ \minted@defstyle
+ \edef\minted@inputfilemdfivesum{\pdf@filemdfivesum{\minted@inputfilepath}}%
+ \ifx\minted@inputfilemdfivesum\@empty
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\minted@error{Cannot find input file "\minted@inputfilepath"; inserting placeholder}%
+ \minted@insertplaceholder}%
+ {\pydatasetbuffername{minted@tmpdatabuffer}%
+ \pydatabufferkeyvalue{command}{highlight}%
+ \pydatabufferkeyedefvalue{inputfilepath}{\minted@inputfilepath}%
+ \pydatabufferkeyedefvalue{inputfilemdfivesum}{\minted@inputfilemdfivesum}%
+ \minted@highlight@i}}
+\def\minted@def@FV@GetKeyValues@standardcatcodes{%
+ \let\minted@FV@GetKeyValues@orig\FV@GetKeyValues
+ \def\FV@GetKeyValues##1{%
+ \begingroup
+ \minted@standardcatcodes
+ \minted@FV@GetKeyValues@i{##1}}%
+ \def\minted@FV@GetKeyValues@i##1[##2]{%
+ \endgroup
+ \let\FV@GetKeyValues\minted@FV@GetKeyValues@orig
+ \let\minted@FV@GetKeyValues@i\minted@undefined
+ \FV@GetKeyValues{##1}[##2]}}
+\def\minted@highlight@i{%
+ \pydatabufferkeyedefvalue{pyopt.lexer}{\minted@lexer}%
+ \pydatabufferkeyedefvalue{pyopt.commandprefix}{\minted@styleprefix}%
+ \minted@forcsvlist{\minted@highlight@bufferpykeys}{\minted@optkeyslist@py}%
+ \ifbool{minted@cache}%
+ {\edef\minted@highlightfilename{\pydatabuffermdfivesum\detokenize{.highlight.minted}}%
+ \edef\minted@highlightfilepath{\minted@cachepath\minted@highlightfilename}%
+ \IfFileExists{\minted@highlightfilepath}%
+ {\minted@codewrapper{%
+ \minted@def@FV@GetKeyValues@standardcatcodes
+ \minted@debug@input
+ \input{\minted@highlightfilepath}}%
+ \minted@addcachefilename{\minted@highlightfilename}}%
+ {\ifbool{minted@canexec}%
+ {\minted@highlight@create}%
+ {\minted@error{Cannot highlight code (minted executable is unavailable or
+ disabled); attempting to typeset without highlighting}%
+ \minted@highlight@fallback}}}%
+ {\edef\minted@highlightfilename{%
+ \detokenize{_}\MintedJobnameMdfive\detokenize{.highlight.minted}}%
+ \let\minted@highlightfilepath\minted@highlightfilename
+ \ifbool{minted@canexec}%
+ {\minted@highlight@create}%
+ {\minted@error{Cannot highlight code (minted executable is unavailable or
+ disabled); attempting to typeset without highlighting}%
+ \minted@highlight@fallback}}%
+ \pydataclearbuffername{minted@tmpdatabuffer}}
+\def\minted@highlight@bufferpykeys#1{%
+ \edef\minted@tmp{\mintedpyoptvalueof{#1}}%
+ \ifx\minted@tmp\minted@const@pgfkeysnovalue
+ \else
+ \pydatabufferkeyedefvalue{pyopt.#1}{\minted@tmp}%
+ \fi}
+\def\minted@highlight@create{%
+ \pydatasetfilename{\MintedDataFilename}%
+ \minted@fasthighlightmode@checkstart
+ \pydatawritedictopen
+ \pydatawritebuffer
+ \pydatawritekeyedefvalue{jobname}{\jobname}%
+ \pydatawritekeyedefvalue{timestamp}{\minted@timestamp}%
+ \pydatawritekeyedefvalue{currentfilepath}{\CurrentFilePath}%
+ \pydatawritekeyedefvalue{currentfile}{\CurrentFile}%
+ \pydatawritekeyedefvalue{inputlineno}{\the\inputlineno}%
+ \pydatawritekeyedefvalue{cachepath}{\minted@cachepath}%
+ \pydatawritekeyedefvalue{highlightfilename}{\minted@highlightfilename}%
+ \pydatawritedictclose
+ \ifbool{minted@fasthighlightmode}%
+ {\minted@insertplaceholder}%
+ {\pydataclosefilename{\MintedDataFilename}%
+ \begingroup
+ \minted@exec@highlight
+ \IfFileExists{\minted@highlightfilepath}%
+ {\ifx\minted@exec@warning\relax
+ \else
+ \expandafter\minted@exec@warning
+ \fi
+ \ifx\minted@exec@error\relax
+ \else
+ \expandafter\minted@exec@error
+ \fi
+ \endgroup
+ \minted@codewrapper{%
+ \minted@def@FV@GetKeyValues@standardcatcodes
+ \minted@debug@input
+ \input{\minted@highlightfilepath}}%
+ \ifbool{minted@cache}{\minted@addcachefilename{\minted@highlightfilename}}{}}%
+ {\ifx\minted@exec@warning\relax
+ \else
+ \expandafter\minted@exec@warning
+ \fi
+ \ifx\minted@exec@error\relax
+ \minted@error{Minted executable failed during syntax highlighting
+ but returned no error message (see if "\MintedErrlogFilename" exists)}%
+ \else
+ \expandafter\minted@exec@error
+ \fi
+ \endgroup
+ \minted@highlight@fallback}}}
+\def\minted@highlight@fallback{%
+ \minted@insertplaceholder}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
%
%
% \subsection{Public API}
%
+%
% \begin{macro}{\setminted}
-% Set global or language-level options.
+% Set global or lexer-level options.
% \begin{macrocode}
\newcommand{\setminted}[2][]{%
- \ifthenelse{\equal{#1}{}}%
- {\setkeys{minted@opt@g}{#2}}%
- {\minted@configlang{#1}%
- \setkeys{minted@opt@lang}{#2}}}
+ \ifstrempty{#1}%
+ {\pgfkeys{/minted/global/.cd,#2}}%
+ {\let\minted@tmplexer\minted@lexer
+ \edef\minted@lexer{#1}%
+ \pgfkeys{/minted/lexer/.cd,#2}%
+ \let\minted@lexer\minted@tmplexer}}
% \end{macrocode}
% \end{macro}
%
+%
% \begin{macro}{\setmintedinline}
-% Set global or language-level options, but only for inline (|\mintinline|) content. These settings will override the corresponding |\setminted| settings.
+% Set global or lexer-level options, but only for inline (|\mintinline|) content. These settings will override the corresponding |\setminted| settings.
% \begin{macrocode}
\newcommand{\setmintedinline}[2][]{%
- \ifthenelse{\equal{#1}{}}%
- {\setkeys{minted@opt@g@i}{#2}}%
- {\minted@configlang{#1}%
- \setkeys{minted@opt@lang@i}{#2}}}
+ \ifstrempty{#1}%
+ {\pgfkeys{/minted/globalinline/.cd,#2}}%
+ {\let\minted@tmplexer\minted@lexer
+ \edef\minted@lexer{#1}%
+ \pgfkeys{/minted/lexerinline/.cd,#2}%
+ \let\minted@lexer\minted@tmplexer}}
% \end{macrocode}
% \end{macro}
%
-% Now that the settings macros exist, we go ahead and create any needed defaults.
-%
-% PHP should use |startinline| for |\mintinline|. Visible tabs should have a specified color so that they don't change colors when used to indent multiline strings or comments. Leading/trailing empty lines should be preserved by default.
-% \begin{macrocode}
-\setmintedinline[php]{startinline=true}
-\setminted{tabcolor=black}
-\setminted{stripnl=false}
-% \end{macrocode}
%
% \begin{macro}{\usemintedstyle}
-%
-% Set style. This is a holdover from version 1, since |\setminted| can now accomplish this, and a hierarchy of style settings are now possible.
+% Set style. This is a holdover from \mintedpkg\ v1, before |\setminted| could be used to set the style.
% \begin{macrocode}
\newcommand{\usemintedstyle}[2][]{\setminted[#1]{style=#2}}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\minted@defwhitespace@retok}
-% The |\mint| and |\mintinline| commands need to be able to retokenize the code they collect, particularly in |draft| mode. Retokenizeation involves expansion combined with |\scantokens|, with active space and tab characters. The active characters need to expand to the appropriate \texpkg{fancyvrb} macros, but the macros themselves should not be expanded. We need a macro that will accomplish the appropriate definitions.
-% \begin{macrocode}
-\begingroup
-\catcode`\ =\active
-\catcode`\^^I=\active
-\gdef\minted@defwhitespace@retok{\def {\noexpand\FV@Space}\def^^I{\noexpand\FV@Tab}}%
-\endgroup
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\minted@writecmdcode}
-% The |\mintinline| and |\mint| commands will need to write the code they capture to a temporary file for highlighting. It will be convenient to be able to accomplish this via a simple macro, since that makes it simpler to deal with any expansion of what is to be written. This isn't needed for the |minted| environment, because the (patched) |VerbatimOut| is used.
-% \begin{macrocode}
-\newcommand{\minted@writecmdcode}[1]{%
- \immediate\openout\minted@code\minted@jobname.pyg\relax
- \immediate\write\minted@code{\detokenize{#1}}%
- \immediate\closeout\minted@code}
-% \end{macrocode}
-% \end{macro}
-%
-%
% \begin{macro}{\mintinline}
% Define an inline command. This is modeled after the reimplemented |\Verb| from \texpkg{fvextra}. See the \texpkg{fvextra} documentation for details about expansion handling, argument reading, and (re)tokenization.
%
-% Pygments emits code wrapped in a |Verbatim| environment. Getting the inline command to work correctly requires redefining |Verbatim| to be \texpkg{fvextra}'s |VerbEnv| temporarily.
-%
% Everything needs to be within a |\begingroup...\endgroup| to prevent settings from escaping.
%
-% In the case of |draft| mode, \texpkg{fvextra}'s |\Verb| is used directly.
+% |\RobustMintInlineProcess@verbatim| doesn't need an explicit |\FVExtraRetokenizeVArg| step because this is done when the code is inserted into |\Verb|.
% \begin{macrocode}
\def\mintinline{%
\FVExtraRobustCommand\RobustMintInline\FVExtraUnexpandedReadStarOArgMArgBVArg}
@@ -3372,37 +3791,56 @@
\ifbool{FVExtraRobustCommandExpanded}%
{\@ifnextchar\bgroup
{\FVExtraReadVArg{\RobustMintInlineProcess{#1}{#2}}}%
- {\PackageError{minted}%
- {Inline delimiters must be paired curly braces in this context}%
- {Use curly braces as delimiters}}}%
+ {\minted@error{Inline delimiters must be paired curly braces in this context}}}%
{\FVExtraReadVArg{\RobustMintInlineProcess{#1}{#2}}}}
-\def\RobustMintInlineProcess#1#2#3{%
+\def\RobustMintInlineProcess@highlight#1#2#3{%
\begingroup
- \setboolean{minted@isinline}{true}%
- \minted@configlang{#2}%
- \setkeys{minted@opt@cmd}{#1}%
- \minted@fvset
- \RobustMintInlineProcess@i{#3}}
-\ifthenelse{\boolean{minted@draft}}%
- {\def\RobustMintInlineProcess@i#1{%
- \fvset{extra=true}%
- \Verb{#1}%
- \endgroup}}%
- {\def\RobustMintInlineProcess@i#1{%
- \FVExtraDetokenizeVArg{%
- \FVExtraRetokenizeVArg{\RobustMintInlineProcess@ii}{\FV@CatCodes}}{#1}}
- \def\RobustMintInlineProcess@ii#1{%
- \minted@writecmdcode{#1}%
- \let\Verbatim\VerbEnv
- \let\endVerbatim\endVerbEnv
- \expandafter\minted@pygmentize\expandafter{\minted@lang}%
- \endgroup}}
+ \booltrue{minted@isinline}%
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \minted@usefvopts
+ \minted@usetexoptsnonpygments
+ \FVExtraDetokenizeVArg{%
+ \FVExtraRetokenizeVArg{\RobustMintInlineProcess@highlight@i}{\FV@CatCodes}}{#3}}
+\def\RobustMintInlineProcess@highlight@i#1{%
+ \expandafter\def\csname minted@tmpcodebufferline1\endcsname{#1}%
+ \setcounter{minted@tmpcodebufferlength}{1}%
+ \let\minted@highlight@fallback\RobustMintInlineProcess@highlight@fallback
+ \minted@highlight
+ \setcounter{minted@tmpcodebufferlength}{0}%
+ \endgroup}
+\def\RobustMintInlineProcess@highlight@fallback{%
+ \minted@useadditionalfvoptsnopy
+ \fvset{extra=true}%
+ \minted@codewrapper{%
+ \expandafter\let\expandafter\minted@tmp\csname minted@tmpcodebufferline1\endcsname
+ \expandafter\Verb\expandafter{\minted@tmp}}}
+\def\RobustMintInlineProcess@placeholder#1#2#3{%
+ \begingroup
+ \booltrue{minted@isinline}%
+ \minted@insertplaceholder
+ \endgroup}
+\def\RobustMintInlineProcess@verbatim#1#2#3{%
+ \begingroup
+ \booltrue{minted@isinline}%
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \minted@usefvopts
+ \minted@useadditionalfvoptsnopy
+ \minted@usetexoptsnonpygments
+ \fvset{extra=true}%
+ \minted@codewrapper{\Verb{#3}}%
+ \endgroup}
+\ifbool{minted@placeholder}%
+ {\let\RobustMintInlineProcess\RobustMintInlineProcess@placeholder}%
+ {\ifbool{minted@verbatim}%
+ {\let\RobustMintInlineProcess\RobustMintInlineProcess@verbatim}%
+ {\let\RobustMintInlineProcess\RobustMintInlineProcess@highlight}}
% \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\mint}
-%
% Highlight a single line of code. This is essentially a shortcut for the \env{minted} environment when there is only a single line of code. The implementation follows \cmd{\mintinline} for argument reading and processing, but then typesets the code as an environment rather than command. The \cmd{\@doendpe} ensures proper paragraph indentation for following text (immediately following text with no intervening blank lines does not begin a new paragraph).
% \begin{macrocode}
\def\mint{%
@@ -3413,161 +3851,202 @@
\ifbool{FVExtraRobustCommandExpanded}%
{\@ifnextchar\bgroup
{\FVExtraReadVArg{\RobustMintProcess{#1}{#2}}}%
- {\PackageError{minted}%
- {Delimiters must be paired curly braces in this context}%
- {Use curly braces as delimiters}}}%
+ {\minted@error{Delimiters must be paired curly braces in this context}}}%
{\FVExtraReadVArg{\RobustMintProcess{#1}{#2}}}}
-\def\RobustMintProcess#1#2#3{%
+\def\RobustMintProcess@highlight#1#2#3{%
\begingroup
- \minted@configlang{#2}%
- \setkeys{minted@opt@cmd}{#1}%
- \minted@fvset
- \RobustMintProcess@i{#3}}
-\begingroup
-\catcode`\^^M=\active%
-\catcode`\<=1%
-\catcode`\>=2%
-\catcode`\{=12%
-\catcode`\}=12%
-\catcode`\!=0%
-\catcode`\\=12%
-!ifthenelse<!boolean<minted@draft>>%
- <!gdef!RobustMintProcess@i#1<%
- !FVExtraDetokenizeVArg<%
- !FVExtraRetokenizeVArg<!RobustMintProcess@ii><!FV@CatCodes>><#1>>%
- !gdef!RobustMintProcess@ii#1<%
- !minted@langlinenoson%
- !scantokens<%
- \begin{Verbatim}
- #1
- \end{Verbatim}
- !noexpand>%
- !minted@langlinenosoff%
- !endgroup!@doendpe>>%
- <!gdef!RobustMintProcess@i#1<%
- !FVExtraDetokenizeVArg<%
- !FVExtraRetokenizeVArg<!RobustMintProcess@ii><!FV@CatCodes>><#1>>%
- !gdef!RobustMintProcess@ii#1<%
- !minted@writecmdcode<#1>%
- !minted@langlinenoson%
- !expandafter!minted@pygmentize!expandafter<!minted@lang>%
- !minted@langlinenosoff%
- !endgroup!@doendpe>>%
-!endgroup
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \minted@usefvopts
+ \minted@usetexoptsnonpygments
+ \FVExtraDetokenizeVArg{%
+ \FVExtraRetokenizeVArg{\RobustMintProcess@highlight@i}{\FV@CatCodes}}{#3}}
+\def\RobustMintProcess@highlight@i#1{%
+ \expandafter\def\csname minted@tmpcodebufferline1\endcsname{#1}%
+ \setcounter{minted@tmpcodebufferlength}{1}%
+ \let\minted@highlight@fallback\RobustMintProcess@highlight@fallback
+ \minted@highlight
+ \setcounter{minted@tmpcodebufferlength}{0}%
+ \endgroup}
+\def\RobustMintProcess@highlight@fallback{%
+ \minted@useadditionalfvoptsnopy
+ \minted@codewrapper{%
+ \VerbatimInsertBuffer[buffername=minted@tmpcodebuffer,insertenvname=\minted@envname]}}
+\def\RobustMintProcess@placeholder#1#2#3{%
+ \minted@insertplaceholder}
+\def\RobustMintProcess@verbatim#1#2#3{%
+ \begingroup
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \minted@usefvopts
+ \minted@useadditionalfvoptsnopy
+ \minted@usetexoptsnonpygments
+ \FVExtraDetokenizeVArg{%
+ \FVExtraRetokenizeVArg{\RobustMintProcess@verbatim@i}{\FV@CatCodes}}{#3}}
+\def\RobustMintProcess@verbatim@i#1{%
+ \expandafter\def\csname minted@tmpcodebufferline1\endcsname{#1}%
+ \setcounter{minted@tmpcodebufferlength}{1}%
+ \minted@codewrapper{%
+ \VerbatimInsertBuffer[buffername=minted@tmpcodebuffer,insertenvname=\minted@envname]}%
+ \setcounter{minted@tmpcodebufferlength}{0}%
+ \endgroup}
+\ifbool{minted@placeholder}%
+ {\let\RobustMintProcess\RobustMintProcess@placeholder}%
+ {\ifbool{minted@verbatim}%
+ {\let\RobustMintProcess\RobustMintProcess@verbatim}%
+ {\let\RobustMintProcess\RobustMintProcess@highlight}}
% \end{macrocode}
% \end{macro}
%
%
% \begin{environment}{minted}
-%
% Highlight a longer piece of code inside a verbatim environment.
% \begin{macrocode}
-\ifthenelse{\boolean{minted@draft}}%
- {\newenvironment{minted}[2][]
- {\VerbatimEnvironment
- \minted@configlang{#2}%
- \setkeys{minted@opt@cmd}{#1}%
- \minted@fvset
- \minted@langlinenoson
- \begin{Verbatim}}%
- {\end{Verbatim}%
- \minted@langlinenosoff}}%
- {\newenvironment{minted}[2][]
- {\VerbatimEnvironment
- \let\FVB@VerbatimOut\minted@FVB@VerbatimOut
- \let\FVE@VerbatimOut\minted@FVE@VerbatimOut
- \minted@configlang{#2}%
- \setkeys{minted@opt@cmd}{#1}%
- \minted@fvset
- \begin{VerbatimOut}[codes={\catcode`\^^I=12},firstline,lastline]{\minted@jobname.pyg}}%
- {\end{VerbatimOut}%
- \minted@langlinenoson
- \expandafter\minted@pygmentize\expandafter{\minted@lang}%
- \minted@langlinenosoff}}
+\newenvironment{minted}[2][]%
+ {\VerbatimEnvironment
+ \MintedBegin{#1}{#2}}%
+ {\MintedEnd}
+\def\MintedBegin@highlight#1#2{%
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \minted@usefvopts
+ \minted@usetexoptsnonpygments
+ \begin{VerbatimBuffer}[buffername=minted@tmpcodebuffer,globalbuffer=true]}
+\def\MintedEnd@highlight{%
+ \end{VerbatimBuffer}%
+ \let\minted@highlight@fallback\MintedEnv@highlight@fallback
+ \minted@highlight
+ \VerbatimClearBuffer[buffername=minted@tmpcodebuffer]}
+\def\MintedEnv@highlight@fallback{%
+ \minted@useadditionalfvoptsnopy
+ \minted@codewrapper{%
+ \VerbatimInsertBuffer[buffername=minted@tmpcodebuffer,insertenvname=\minted@envname]}}
+\def\MintedBegin@placeholder#1#2{%
+ \begin{VerbatimBuffer}[buffername=minted@tmpcodebuffer]}
+\def\MintedEnd@placeholder{%
+ \end{VerbatimBuffer}%
+ \minted@insertplaceholder}
+\def\MintedBegin@verbatim#1#2{%
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \minted@usefvopts
+ \minted@useadditionalfvoptsnopy
+ \minted@usetexoptsnonpygments
+ \begin{\minted@envname}}
+\def\MintedEnd@verbatim{%
+ \end{\minted@envname}}
+\ifbool{minted@placeholder}%
+ {\let\MintedBegin\MintedBegin@placeholder
+ \let\MintedEnd\MintedEnd@placeholder}%
+ {\ifbool{minted@verbatim}%
+ {\let\MintedBegin\MintedBegin@verbatim
+ \let\MintedEnd\MintedEnd@verbatim}%
+ {\let\MintedBegin\MintedBegin@highlight
+ \let\MintedEnd\MintedEnd@highlight}}
% \end{macrocode}
% \end{environment}
%
-% \begin{macro}{\inputminted}
%
+% \begin{macro}{\inputminted}
% Highlight an external source file.
% \begin{macrocode}
-\ifthenelse{\boolean{minted@draft}}%
- {\newcommand{\inputminted}[3][]{%
- \begingroup
- \minted@configlang{#2}%
- \setkeys{minted@opt@cmd}{#1}%
- \minted@fvset
- \minted@inputlanglinenoson
- \VerbatimInput{#3}%
- \minted@inputlanglinenosoff
- \endgroup}}%
- {\newcommand{\inputminted}[3][]{%
- \begingroup
- \minted@configlang{#2}%
- \setkeys{minted@opt@cmd}{#1}%
- \minted@fvset
- \minted@inputlanglinenoson
- \minted@pygmentize[#3]{#2}%
- \minted@inputlanglinenosoff
- \endgroup}}
+\def\minted@readinputmintedargs#1#{%
+ \minted@readinputmintedargs@i{#1}}
+\def\minted@readinputmintedargs@i#1#2#3{%
+ \FVExtraAlwaysUnexpanded{\minted@readinputmintedargs#1{#2}{#3}}}
+\FVExtrapdfstringdefDisableCommands{%
+ \makeatletter
+ \def\minted@readinputmintedargs@i#1#2#3{%
+ \detokenize{<input from file "}#3\detokenize{">}}%
+ \makeatother}
+\def\inputminted{%
+ \FVExtraRobustCommand\RobustInputMinted\minted@readinputmintedargs}
+\FVExtrapdfstringdefDisableCommands{%
+ \def\RobustInputMinted{}}
+\newrobustcmd{\RobustInputMinted}[3][]{%
+ \RobustInputMintedProcess{#1}{#2}{#3}}
+\def\RobustInputMintedProcess@highlight#1#2#3{%
+ \begingroup
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \edef\minted@inputfilepath{#3}%
+ \minted@usefvopts
+ \minted@usetexoptsnonpygments
+ \let\minted@highlight@fallback\RobustInputMintedProcess@highlight@fallback
+ \minted@highlightinputfile
+ \endgroup}
+\def\RobustInputMintedProcess@highlight@fallback{%
+ \minted@useadditionalfvoptsnopy
+ \minted@codewrapper{%
+ \csname\minted@envname Input\endcsname{\minted@inputfilepath}}}
+\def\RobustInputMintedProcess@placeholder#1#2#3{%
+ \minted@insertplaceholder}
+\def\RobustInputMintedProcess@verbatim#1#2#3{%
+ \begingroup
+ \ifstrempty{#1}{}{\pgfkeys{/minted/cmd/.cd,#1}}%
+ \edef\minted@lexer{#2}%
+ \edef\minted@inputfilepath{#3}%
+ \minted@usefvopts
+ \minted@useadditionalfvoptsnopy
+ \minted@usetexoptsnonpygments
+ \minted@codewrapper{%
+ \csname\minted@envname Input\endcsname{\minted@inputfilepath}}%
+ \endgroup}
+\ifbool{minted@placeholder}%
+ {\let\RobustInputMintedProcess\RobustInputMintedProcess@placeholder}%
+ {\ifbool{minted@verbatim}%
+ {\let\RobustInputMintedProcess\RobustInputMintedProcess@verbatim}%
+ {\let\RobustInputMintedProcess\RobustInputMintedProcess@highlight}}
% \end{macrocode}
% \end{macro}
%
%
+%
% \subsection{Command shortcuts}
%
-% We allow the user to define shortcuts for the highlighting commands.
+% Allow the user to define shortcuts for the highlighting commands.
%
% \begin{macro}{\newminted}
-%
% Define a new language-specific alias for the |minted| environment.
%
-% \begin{macrocode}
-\newcommand{\newminted}[3][]{
-% \end{macrocode}
-%
-% First, we look whether a custom environment name was given as the first
-% optional argument.
-% If that's not the case, construct it from the language name (append ``|code|'').
-%
-% \begin{macrocode}
- \ifthenelse{\equal{#1}{}}
- {\def\minted@envname{#2code}}
- {\def\minted@envname{#1}}
-% \end{macrocode}
-%
-% Now, we define two environments.
-% The first takes no further arguments.
-% The second, starred version, takes an extra argument that specifies option
-% overrides.
+% The starred |*| version of the environment takes a mandatory argument containing options. It is retained for backward compatibility purposes with \mintedpkg\ v1 and v2. \mintedpkg\ v3 added support for an optional argument to the standard environment, so the starred version is no longer necessary.
%
+% The |^^M| is needed because |\FVExtraReadOArgBeforeVEnv| strips a following |^^M| (basically the newline), but \texpkg{fancyvrb} environments expect |^^M| before the start of environment contents.
% \begin{macrocode}
- \newenvironment{\minted@envname}
- {\VerbatimEnvironment
- \begin{minted}[#3]{#2}}
- {\end{minted}}
- \newenvironment{\minted@envname *}[1]
- {\VerbatimEnvironment\begin{minted}[#3,##1]{#2}}
- {\end{minted}}}
+\newcommand{\newminted}[3][]{%
+ \ifstrempty{#1}%
+ {\newminted@i{#2code}{#2}{#3}}%
+ {\newminted@i{#1}{#2}{#3}}}
+\begingroup
+\catcode`\^^M=\active%
+\gdef\newminted@i#1#2#3{%
+ \expandafter\def\csname#1@i\endcsname##1{%
+ \begin{minted}[#3,##1]{#2}^^M}%
+ \newenvironment{#1}%
+ {\VerbatimEnvironment%
+ \FVExtraReadOArgBeforeVEnv{\csname#1@i\endcsname}}%
+ {\end{minted}}%
+ \newenvironment{#1*}[1]%
+ {\VerbatimEnvironment%
+ \begin{minted}[#3,##1]{#2}}%
+ {\end{minted}}}%
+\endgroup
% \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\newmint}
-%
% Define a new language-specific alias for the |\mint| short form.
% \begin{macrocode}
\newcommand{\newmint}[3][]{%
- \if\relax\detokenize{#1}\relax
- \def\minted@shortname{#2}%
- \else
- \def\minted@shortname{#1}%
- \fi
- \expandafter\newmint@i\expandafter{\minted@shortname}{#2}{#3}}
+ \ifstrempty{#1}%
+ {\edef\minted@tmp{#2}}%
+ {\edef\minted@tmp{#1}}
+ \expandafter\newmint@i\expandafter{\minted@tmp}{#2}{#3}}
\def\newmint@i#1#2#3{%
\expandafter\newcommand\csname#1\endcsname{%
\expandafter\FVExtraRobustCommand\csname RobustNewMint#1\endcsname
- \FVExtraUnexpandedReadStarOArgBVArg}%
+ \FVExtraUnexpandedReadStarOArgBVArg}%
\FVExtrapdfstringdefDisableCommands{%
\expandafter\def\csname RobustNewMint#1\endcsname{}}%
\expandafter\newrobustcmd\csname RobustNewMint#1\endcsname{%
@@ -3576,9 +4055,7 @@
\ifbool{FVExtraRobustCommandExpanded}%
{\@ifnextchar\bgroup
{\FVExtraReadVArg{\csname RobustNewMint#1@ii\endcsname{##1}}}%
- {\PackageError{minted}%
- {Delimiters must be paired curly braces in this context}%
- {Use curly braces as delimiters}}}%
+ {\minted@error{Delimiters must be paired curly braces in this context}}}%
{\FVExtraReadVArg{\csname RobustNewMint#1@ii\endcsname{##1}}}}
\expandafter\def\csname RobustNewMint#1@ii\endcsname##1##2{%
\RobustMintProcess{#3,##1}{#2}{##2}}}
@@ -3587,23 +4064,30 @@
%
%
% \begin{macro}{\newmintedfile}
-%
% Define a new language-specific alias for |\inputminted|.
% \begin{macrocode}
-\newcommand{\newmintedfile}[3][]{
-% \end{macrocode}
-% Here, the default macro name (if none is provided) appends ``|file|'' to the language name.
-% \begin{macrocode}
- \ifthenelse{\equal{#1}{}}
- {\def\minted@shortname{#2file}}
- {\def\minted@shortname{#1}}
-% \end{macrocode}
-%
-% \dots and define the macro.
-%
-% \begin{macrocode}
- \expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
- \inputminted[#3,##1]{#2}{##2}}}
+\def\minted@readnewmintedfileargs#1#{%
+ \minted@readnewmintedfileargs@i{#1}}
+\def\minted@readnewmintedfileargs@i#1#2{%
+ \FVExtraAlwaysUnexpanded{\minted@readnewmintedfileargs#1{#2}}}
+\FVExtrapdfstringdefDisableCommands{%
+ \makeatletter
+ \def\minted@readnewmintedfileargs@i#1#2{%
+ \detokenize{<input from file "}#2\detokenize{">}}%
+ \makeatother}
+\newcommand{\newmintedfile}[3][]{%
+ \ifstrempty{#1}%
+ {\edef\minted@tmp{#2file}}%
+ {\edef\minted@tmp{#1}}%
+ \expandafter\newmintedfile@i\expandafter{\minted@tmp}{#2}{#3}}
+\def\newmintedfile@i#1#2#3{%
+ \expandafter\newcommand\csname#1\endcsname{%
+ \expandafter\FVExtraRobustCommand\csname RobustNewMintedFile#1\endcsname
+ \minted@readnewmintedfileargs}%
+ \FVExtrapdfstringdefDisableCommands{%
+ \expandafter\def\csname RobustNewMintedFile#1\endcsname{}}%
+ \expandafter\newrobustcmd\csname RobustNewMintedFile#1\endcsname[2][]{%
+ \RobustInputMintedProcess{#3,##1}{#2}{##2}}}
% \end{macrocode}
% \end{macro}
%
@@ -3612,16 +4096,14 @@
% Define an alias for |\mintinline|.
% \begin{macrocode}
\newcommand{\newmintinline}[3][]{%
- \if\relax\detokenize{#1}\relax
- \def\minted@shortname{#2inline}%
- \else
- \def\minted@shortname{#1}%
- \fi
- \expandafter\newmintinline@i\expandafter{\minted@shortname}{#2}{#3}}
+ \ifstrempty{#1}%
+ {\edef\minted@tmp{#2inline}}%
+ {\edef\minted@tmp{#1}}%
+ \expandafter\newmintinline@i\expandafter{\minted@tmp}{#2}{#3}}
\def\newmintinline@i#1#2#3{%
\expandafter\newcommand\csname#1\endcsname{%
\expandafter\FVExtraRobustCommand\csname RobustNewMintInline#1\endcsname
- \FVExtraUnexpandedReadStarOArgBVArg}%
+ \FVExtraUnexpandedReadStarOArgBVArg}%
\FVExtrapdfstringdefDisableCommands{%
\expandafter\def\csname RobustNewMintInline#1\endcsname{}}%
\expandafter\newrobustcmd\csname RobustNewMintInline#1\endcsname{%
@@ -3630,9 +4112,7 @@
\ifbool{FVExtraRobustCommandExpanded}%
{\@ifnextchar\bgroup
{\FVExtraReadVArg{\csname RobustNewMintInline#1@ii\endcsname{##1}}}%
- {\PackageError{minted}%
- {Inline delimiters must be paired curly braces in this context}%
- {Use curly braces as delimiters}}}%
+ {\minted@error{Inline delimiters must be paired curly braces in this context}}}%
{\FVExtraReadVArg{\csname RobustNewMintInline#1@ii\endcsname{##1}}}}
\expandafter\def\csname RobustNewMintInline#1@ii\endcsname##1##2{%
\RobustMintInlineProcess{#3,##1}{#2}{##2}}}
@@ -3640,22 +4120,22 @@
% \end{macro}
%
%
+%
% \subsection{Float support}
%
-% \begin{environment}{listing}
%
+% \begin{environment}{listing}
% Define a new floating environment to use for floated listings. This is defined conditionally based on the |newfloat| package option.
-%
% \begin{macrocode}
-\ifthenelse{\boolean{minted@newfloat}}%
+\ifbool{minted@newfloat}%
{\@ifundefined{minted@float@within}%
- {\DeclareFloatingEnvironment[fileext=lol,placement=tbp]{listing}}%
- {\def\minted@tmp#1{%
- \DeclareFloatingEnvironment[fileext=lol,placement=tbp, within=#1]{listing}}%
- \expandafter\minted@tmp\expandafter{\minted@float@within}}}%
+ {\DeclareFloatingEnvironment[fileext=lol,placement=tbp]{listing}}%
+ {\def\minted@tmp#1{%
+ \DeclareFloatingEnvironment[fileext=lol,placement=tbp,within=#1]{listing}}%
+ \expandafter\minted@tmp\expandafter{\minted@float@within}}}%
{\@ifundefined{minted@float@within}%
- {\newfloat{listing}{tbp}{lol}}%
- {\newfloat{listing}{tbp}{lol}[\minted@float@within]}}
+ {\newfloat{listing}{tbp}{lol}}%
+ {\newfloat{listing}{tbp}{lol}[\minted@float@within]}}
% \end{macrocode}
% \end{environment}
%
@@ -3665,36 +4145,29 @@
% \end{macrocode}
%
% \begin{macro}{\listingcaption}
-%
% The name that is displayed before each individual listings caption and its number.
% The macro |\listingscaption| can be redefined by the user.
-%
% \begin{macrocode}
\newcommand{\listingscaption}{Listing}
% \end{macrocode}
%
% The following definition should not be changed by the user.
-%
% \begin{macrocode}
\floatname{listing}{\listingscaption}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\listoflistingscaption}
-%
% The caption that is displayed for the list of listings.
-%
% \begin{macrocode}
\newcommand{\listoflistingscaption}{List of Listings}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\listoflistings}
-%
% Used to produce a list of listings (like |\listoffigures| etc.).
% This may well clash with other packages (for example, \texpkg{listings}) but we choose to ignore this
% since these two packages shouldn't be used together in the first place.
-%
% \begin{macrocode}
\providecommand{\listoflistings}{\listof{listing}{\listoflistingscaption}}
% \end{macrocode}
@@ -3705,323 +4178,11 @@
\fi
% \end{macrocode}
%
-% \subsection{Epilogue}
-%
-% Check whether LaTeX was invoked with |-shell-escape| option, set the default style, and make sure |pygmentize| exists. Checking for |pygmentize| must wait until the end of the preamble, in case it is specified via |\MintedPygmentize| (which would typically be after the package is loaded).
-%
-% \begin{macrocode}
-\AtEndOfPackage{%
- \ifthenelse{\boolean{minted@draft}}%
- {}%
- {%
- \ifthenelse{\boolean{minted@frozencache}}{}{%
- \ifnum\pdf@shellescape=1\relax\else
- \PackageError{minted}%
- {You must invoke LaTeX with the
- -shell-escape flag}%
- {Pass the -shell-escape flag to LaTeX. Refer to the minted.sty
- documentation for more information.}%
- \fi}%
- }%
-}
-\AtEndPreamble{%
- \ifthenelse{\boolean{minted@draft}}%
- {}%
- {%
- \ifthenelse{\boolean{minted@frozencache}}{}{%
- \TestAppExists{\MintedPygmentize}%
- \ifAppExists\else
- \PackageError{minted}%
- {You must have `pygmentize' installed
- to use this package}%
- {Refer to the installation instructions in the minted
- documentation for more information.}%
- \fi}%
- }%
-}
-% \end{macrocode}
-%
-%
-%
-% \subsection{Final cleanup}
-%
-% Clean up temp files. What actually needs to be done depends on caching and engine.
-% \begin{macrocode}
-\AfterEndDocument{%
- \ifthenelse{\boolean{minted@draft}}%
- {}%
- {\ifthenelse{\boolean{minted@frozencache}}%
- {}
- {\ifx\XeTeXinterchartoks\minted@undefined
- \else
- \DeleteFile[\minted@outputdir]{\minted@jobname.mintedcmd}%
- \DeleteFile[\minted@outputdir]{\minted@jobname.mintedmd5}%
- \fi
- \DeleteFile[\minted@outputdir]{\minted@jobname.pyg}%
- \DeleteFile[\minted@outputdir]{\minted@jobname.out.pyg}%
- }%
- }%
-}
-% \end{macrocode}
%
% \iffalse
%</package>
% \fi
%
%
-%
-% \section{Implementation of compatibility package}
-% \setcounter{CodelineNo}{0}
-%
-% \iffalse
-%<*packageone>
-% \fi
-%
-% \texpkg{minted} version 2 is designed to be completely compatible with version 1.7. All of the same options and commands still exist. As far as most users are concerned, the only difference should be the new commands and options.
-%
-% However, \texpkg{minted} 2 does require some additional packages compared to \texpkg{minted} 1.7. More importantly, since \texpkg{minted} 2 has almost completely new internal code, user code that accessed the internals of 1.7 will generally not work with 2.0, at least not without some modification. For these reasons, a copy of \texpkg{minted} 1.7 is supplied as the package \texpkg{minted1}. This is intended \emph{only} for compatibility cases when using the current version is too inconvenient.
-%
-% The code in \texpkg{minted1} is an exact copy of \texpkg{minted} version 1.7, except for two things: (1) the package has been renamed, and (2) code has been added that allows \texpkg{minted1} to act as (impersonate) \texpkg{minted}, so that it can cooperate with other packages that require \texpkg{minted} to be loaded.\footnote{The approach used for doing this is described at \url{http://tex.stackexchange.com/a/39418/10742}.} When \texpkg{minted1} is used, it must be loaded \emph{before} any other packages that would require \texpkg{minted}.
-%
-% All modifications to the original \texpkg{minted} 1.7 source are indicated with comments. All original code that has been replaced has been commented out rather than deleted. Any future modifications of \texpkg{minted1} should \emph{only} be for the purpose of allowing it to serve better as a drop-in compatibility substitute for the current release of \texpkg{minted}.
-%
-% \begin{macrocode}
-\NeedsTeXFormat{LaTeX2e}
-%%%% Begin minted1 modification
-%%\ProvidesPackage{minted}[2011/09/17 v1.7 Yet another Pygments shim for LaTeX]
-\ProvidesPackage{minted1}[2015/01/31 v1.0 minted 1.7 compatibility package]
-%%%% End minted1 modification
-\RequirePackage{keyval}
-\RequirePackage{fancyvrb}
-\RequirePackage{xcolor}
-\RequirePackage{float}
-\RequirePackage{ifthen}
-%%%% Begin minted1 modification
-\newboolean{mintedone@mintedloaded}
-\@ifpackageloaded{minted}%
- {\setboolean{mintedone@mintedloaded}{true}%
- \PackageError{minted1}{The package "minted1" may not be loaded after
- ^^J"minted" has already been loaded--load "minted1" only for "minted"
- ^^Jversion 1.7 compatibility}%
- {Load "minted1" only when "minted" version 1.7 compatibility is required}}%
- {}
-\ifmintedone@mintedloaded\else
-\@namedef{ver@minted.sty}{2011/09/17 v1.7 Yet another Pygments shim for LaTeX}
-\expandafter\let\expandafter\minted@tmp\csname opt@minted1.sty\endcsname
-\expandafter\let\csname opt@minted.sty\endcsname\minted@tmp
-\let\minted@tmp\relax
-%%%% End minted1 modification
-\RequirePackage{calc}
-\RequirePackage{ifplatform}
-\DeclareOption{chapter}{\def\minted@float@within{chapter}}
-\DeclareOption{section}{\def\minted@float@within{section}}
-\ProcessOptions\relax
-\ifwindows
- \providecommand\DeleteFile[1]{\immediate\write18{del #1}}
-\else
- \providecommand\DeleteFile[1]{\immediate\write18{rm #1}}
-\fi
-\newboolean{AppExists}
-\newcommand\TestAppExists[1]{
- \ifwindows
- \DeleteFile{\jobname.aex}
- \immediate\write18{for \string^\@percentchar i in (#1.exe #1.bat #1.cmd)
- do set >\jobname.aex <nul: /p x=\string^\@percentchar \string~$PATH:i>>\jobname.aex} %$
- \newread\@appexistsfile
- \immediate\openin\@appexistsfile\jobname.aex
- \expandafter\def\expandafter\@tmp@cr\expandafter{\the\endlinechar}
- \endlinechar=-1\relax
- \readline\@appexistsfile to \@apppathifexists
- \endlinechar=\@tmp@cr
- \ifthenelse{\equal{\@apppathifexists}{}}
- {\AppExistsfalse}
- {\AppExiststrue}
- \immediate\closein\@appexistsfile
- \DeleteFile{\jobname.aex}
-\immediate\typeout{file deleted}
- \else
- \immediate\write18{which #1 && touch \jobname.aex}
- \IfFileExists{\jobname.aex}
- {\AppExiststrue
- \DeleteFile{\jobname.aex}}
- {\AppExistsfalse}
- \fi}
-\newcommand\minted@resetoptions{}
-\newcommand\minted@defopt[1]{
- \expandafter\def\expandafter\minted@resetoptions\expandafter{%
- \minted@resetoptions
- \@namedef{minted@opt@#1}{}}}
-\newcommand\minted@opt[1]{
- \expandafter\detokenize%
- \expandafter\expandafter\expandafter{\csname minted@opt@#1\endcsname}}
-\newcommand\minted@define@opt[3][]{
- \minted@defopt{#2}
- \ifthenelse{\equal{#1}{}}{
- \define@key{minted@opt}{#2}{\@namedef{minted@opt@#2}{#3}}}
- {\define@key{minted@opt}{#2}[#1]{\@namedef{minted@opt@#2}{#3}}}}
-\newcommand\minted@define@switch[3][]{
- \minted@defopt{#2}
- \define@booleankey{minted@opt}{#2}
- {\@namedef{minted@opt@#2}{#3}}
- {\@namedef{minted@opt@#2}{#1}}}
-\minted@defopt{extra}
-\newcommand\minted@define@extra[1]{
- \define@key{minted@opt}{#1}{
- \expandafter\def\expandafter\minted@opt@extra\expandafter{%
- \minted@opt@extra,#1=##1}}}
-\newcommand\minted@define@extra@switch[1]{
- \define@booleankey{minted@opt}{#1}
- {\expandafter\def\expandafter\minted@opt@extra\expandafter{%
- \minted@opt@extra,#1}}
- {\expandafter\def\expandafter\minted@opt@extra\expandafter{%
- \minted@opt@extra,#1=false}}}
-\minted@define@switch{texcl}{-P texcomments}
-\minted@define@switch{mathescape}{-P mathescape}
-\minted@define@switch{linenos}{-P linenos}
-\minted@define@switch{startinline}{-P startinline}
-\minted@define@switch[-P funcnamehighlighting=False]%
- {funcnamehighlighting}{-P funcnamehighlighting}
-\minted@define@opt{gobble}{-F gobble:n=#1}
-\minted@define@opt{bgcolor}{#1}
-\minted@define@extra{frame}
-\minted@define@extra{framesep}
-\minted@define@extra{framerule}
-\minted@define@extra{rulecolor}
-\minted@define@extra{numbersep}
-\minted@define@extra{firstnumber}
-\minted@define@extra{stepnumber}
-\minted@define@extra{firstline}
-\minted@define@extra{lastline}
-\minted@define@extra{baselinestretch}
-\minted@define@extra{xleftmargin}
-\minted@define@extra{xrightmargin}
-\minted@define@extra{fillcolor}
-\minted@define@extra{tabsize}
-\minted@define@extra{fontfamily}
-\minted@define@extra{fontsize}
-\minted@define@extra{fontshape}
-\minted@define@extra{fontseries}
-\minted@define@extra{formatcom}
-\minted@define@extra{label}
-\minted@define@extra@switch{numberblanklines}
-\minted@define@extra@switch{showspaces}
-\minted@define@extra@switch{resetmargins}
-\minted@define@extra@switch{samepage}
-\minted@define@extra@switch{showtabs}
-\minted@define@extra@switch{obeytabs}
-\newsavebox{\minted@bgbox}
-\newenvironment{minted@colorbg}[1]{
- \def\minted@bgcol{#1}
- \noindent
- \begin{lrbox}{\minted@bgbox}
- \begin{minipage}{\linewidth-2\fboxsep}}
- {\end{minipage}
- \end{lrbox}%
- \colorbox{\minted@bgcol}{\usebox{\minted@bgbox}}}
-\newwrite\minted@code
-\newcommand\minted@savecode[1]{
- \immediate\openout\minted@code\jobname.pyg
- \immediate\write\minted@code{#1}
- \immediate\closeout\minted@code}
-\newcommand\minted@pygmentize[2][\jobname.pyg]{
- \def\minted@cmd{pygmentize -l #2 -f latex -F tokenmerge
- \minted@opt{gobble} \minted@opt{texcl} \minted@opt{mathescape}
- \minted@opt{startinline} \minted@opt{funcnamehighlighting}
- \minted@opt{linenos} -P "verboptions=\minted@opt{extra}"
- -o \jobname.out.pyg #1}
- \immediate\write18{\minted@cmd}
- % For debugging, uncomment:
- %\immediate\typeout{\minted@cmd}
- \ifthenelse{\equal{\minted@opt@bgcolor}{}}
- {}
- {\begin{minted@colorbg}{\minted@opt@bgcolor}}
- \input{\jobname.out.pyg}
- \ifthenelse{\equal{\minted@opt@bgcolor}{}}
- {}
- {\end{minted@colorbg}}
- \DeleteFile{\jobname.out.pyg}}
-\newcommand\minted@usedefaultstyle{\usemintedstyle{default}}
-\newcommand\usemintedstyle[1]{
- \renewcommand\minted@usedefaultstyle{}
- \immediate\write18{pygmentize -S #1 -f latex > \jobname.pyg}
- \input{\jobname.pyg}}
-\newcommand\mint[3][]{
- \DefineShortVerb{#3}
- \minted@resetoptions
- \setkeys{minted@opt}{#1}
- \SaveVerb[aftersave={
- \UndefineShortVerb{#3}
- \minted@savecode{\FV@SV@minted@verb}
- \minted@pygmentize{#2}
- \DeleteFile{\jobname.pyg}}]{minted@verb}#3}
-\newcommand\minted@proglang[1]{}
-\newenvironment{minted}[2][]
- {\VerbatimEnvironment
- \renewcommand{\minted@proglang}[1]{#2}
- \minted@resetoptions
- \setkeys{minted@opt}{#1}
- \begin{VerbatimOut}[codes={\catcode`\^^I=12}]{\jobname.pyg}}%
- {\end{VerbatimOut}
- \minted@pygmentize{\minted@proglang{}}
- \DeleteFile{\jobname.pyg}}
-\newcommand\inputminted[3][]{
- \minted@resetoptions
- \setkeys{minted@opt}{#1}
- \minted@pygmentize[#3]{#2}}
-\newcommand\newminted[3][]{
- \ifthenelse{\equal{#1}{}}
- {\def\minted@envname{#2code}}
- {\def\minted@envname{#1}}
- \newenvironment{\minted@envname}
- {\VerbatimEnvironment\begin{minted}[#3]{#2}}
- {\end{minted}}
- \newenvironment{\minted@envname *}[1]
- {\VerbatimEnvironment\begin{minted}[#3,##1]{#2}}
- {\end{minted}}}
-\newcommand\newmint[3][]{
- \ifthenelse{\equal{#1}{}}
- {\def\minted@shortname{#2}}
- {\def\minted@shortname{#1}}
- \expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
- \mint[#3,##1]{#2}##2}}
-\newcommand\newmintedfile[3][]{
- \ifthenelse{\equal{#1}{}}
- {\def\minted@shortname{#2file}}
- {\def\minted@shortname{#1}}
- \expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
- \inputminted[#3,##1]{#2}{##2}}}
-\@ifundefined{minted@float@within}
- {\newfloat{listing}{h}{lol}}
- {\newfloat{listing}{h}{lol}[\minted@float@within]}
-\newcommand\listingscaption{Listing}
-\floatname{listing}{\listingscaption}
-\newcommand\listoflistingscaption{List of listings}
-\providecommand\listoflistings{\listof{listing}{\listoflistingscaption}}
-\AtBeginDocument{
- \minted@usedefaultstyle}
-\AtEndOfPackage{
- \ifnum\pdf@shellescape=1\relax\else
- \PackageError{minted}
- {You must invoke LaTeX with the
- -shell-escape flag}
- {Pass the -shell-escape flag to LaTeX. Refer to the minted.sty
- documentation for more information.}\fi
- \TestAppExists{pygmentize}
- \ifAppExists\else
- \PackageError{minted}
- {You must have `pygmentize' installed
- to use this package}
- {Refer to the installation instructions in the minted
- documentation for more information.}
- \fi}
-%%%% Begin minted1 modification
-\fi
-%%%% End minted1 modification
-% \end{macrocode}
-% \iffalse
-%</packageone>
-% \fi
-%
% \Finale
\endinput
-
diff --git a/macros/latex/contrib/minted/minted.ins b/macros/latex/contrib/minted/minted.ins
index 2b5da824ca..61f72c6b0a 100644
--- a/macros/latex/contrib/minted/minted.ins
+++ b/macros/latex/contrib/minted/minted.ins
@@ -3,19 +3,17 @@
\askforoverwritefalse
\preamble
-Copyright 2013--2022 Geoffrey M. Poore
-Copyright 2010--2011 Konrad Rudolph
+Copyright (C) 2013-2024 by Geoffrey M. Poore <gpoore@gmail.com>
+Copyright (C) 2010-2011 by Konrad Rudolph <konrad_rudolph@madrat.net>
+--------------------------------------------------------------------------
This work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
+conditions of the LaTeX Project Public License, either version 1.3c
of this license or (at your option) any later version.
The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
-
-Additionally, the project may be distributed under the terms of the new BSD
-license.
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008/05/04 or later.
This work has the LPPL maintenance status `maintained'.
@@ -23,14 +21,13 @@ The Current Maintainer of this work is Geoffrey Poore.
This work consists of the files minted.dtx and minted.ins
and the derived file minted.sty.
+
\endpreamble
\usedir{tex/latex/minted}
\generate{%
\file{minted.sty}{\from{minted.dtx}{package}}%
- \file{minted1.sty}{\from{minted.dtx}{packageone}}%
}
\endbatchfile
-% vim: ft=tex
diff --git a/macros/latex/contrib/minted/minted.pdf b/macros/latex/contrib/minted/minted.pdf
index 352f07b667..21e35243e3 100644
--- a/macros/latex/contrib/minted/minted.pdf
+++ b/macros/latex/contrib/minted/minted.pdf
Binary files differ
diff --git a/macros/latex/contrib/minted/minted1.sty b/macros/latex/contrib/minted/minted1.sty
new file mode 100644
index 0000000000..12b71d1bb8
--- /dev/null
+++ b/macros/latex/contrib/minted/minted1.sty
@@ -0,0 +1,261 @@
+%%
+%% This is file `minted1.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% minted.dtx (with options: `packageone')
+%% Copyright 2013--2022 Geoffrey M. Poore
+%% Copyright 2010--2011 Konrad Rudolph
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% Additionally, the project may be distributed under the terms of the new BSD
+%% license.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Geoffrey Poore.
+%%
+%% This work consists of the files minted.dtx and minted.ins
+%% and the derived file minted.sty.
+\NeedsTeXFormat{LaTeX2e}
+%%%% Begin minted1 modification
+%%\ProvidesPackage{minted}[2011/09/17 v1.7 Yet another Pygments shim for LaTeX]
+\ProvidesPackage{minted1}[2015/01/31 v1.0 minted 1.7 compatibility package]
+%%%% End minted1 modification
+\RequirePackage{keyval}
+\RequirePackage{fancyvrb}
+\RequirePackage{xcolor}
+\RequirePackage{float}
+\RequirePackage{ifthen}
+%%%% Begin minted1 modification
+\newboolean{mintedone@mintedloaded}
+\@ifpackageloaded{minted}%
+ {\setboolean{mintedone@mintedloaded}{true}%
+ \PackageError{minted1}{The package "minted1" may not be loaded after
+ ^^J"minted" has already been loaded--load "minted1" only for "minted"
+ ^^Jversion 1.7 compatibility}%
+ {Load "minted1" only when "minted" version 1.7 compatibility is required}}%
+ {}
+\ifmintedone@mintedloaded\else
+\@namedef{ver@minted.sty}{2011/09/17 v1.7 Yet another Pygments shim for LaTeX}
+\expandafter\let\expandafter\minted@tmp\csname opt@minted1.sty\endcsname
+\expandafter\let\csname opt@minted.sty\endcsname\minted@tmp
+\let\minted@tmp\relax
+%%%% End minted1 modification
+\RequirePackage{calc}
+\RequirePackage{ifplatform}
+\DeclareOption{chapter}{\def\minted@float@within{chapter}}
+\DeclareOption{section}{\def\minted@float@within{section}}
+\ProcessOptions\relax
+\ifwindows
+ \providecommand\DeleteFile[1]{\immediate\write18{del #1}}
+\else
+ \providecommand\DeleteFile[1]{\immediate\write18{rm #1}}
+\fi
+\newboolean{AppExists}
+\newcommand\TestAppExists[1]{
+ \ifwindows
+ \DeleteFile{\jobname.aex}
+ \immediate\write18{for \string^\@percentchar i in (#1.exe #1.bat #1.cmd)
+ do set >\jobname.aex <nul: /p x=\string^\@percentchar \string~$PATH:i>>\jobname.aex} %$
+ \newread\@appexistsfile
+ \immediate\openin\@appexistsfile\jobname.aex
+ \expandafter\def\expandafter\@tmp@cr\expandafter{\the\endlinechar}
+ \endlinechar=-1\relax
+ \readline\@appexistsfile to \@apppathifexists
+ \endlinechar=\@tmp@cr
+ \ifthenelse{\equal{\@apppathifexists}{}}
+ {\AppExistsfalse}
+ {\AppExiststrue}
+ \immediate\closein\@appexistsfile
+ \DeleteFile{\jobname.aex}
+\immediate\typeout{file deleted}
+ \else
+ \immediate\write18{which #1 && touch \jobname.aex}
+ \IfFileExists{\jobname.aex}
+ {\AppExiststrue
+ \DeleteFile{\jobname.aex}}
+ {\AppExistsfalse}
+ \fi}
+\newcommand\minted@resetoptions{}
+\newcommand\minted@defopt[1]{
+ \expandafter\def\expandafter\minted@resetoptions\expandafter{%
+ \minted@resetoptions
+ \@namedef{minted@opt@#1}{}}}
+\newcommand\minted@opt[1]{
+ \expandafter\detokenize%
+ \expandafter\expandafter\expandafter{\csname minted@opt@#1\endcsname}}
+\newcommand\minted@define@opt[3][]{
+ \minted@defopt{#2}
+ \ifthenelse{\equal{#1}{}}{
+ \define@key{minted@opt}{#2}{\@namedef{minted@opt@#2}{#3}}}
+ {\define@key{minted@opt}{#2}[#1]{\@namedef{minted@opt@#2}{#3}}}}
+\newcommand\minted@define@switch[3][]{
+ \minted@defopt{#2}
+ \define@booleankey{minted@opt}{#2}
+ {\@namedef{minted@opt@#2}{#3}}
+ {\@namedef{minted@opt@#2}{#1}}}
+\minted@defopt{extra}
+\newcommand\minted@define@extra[1]{
+ \define@key{minted@opt}{#1}{
+ \expandafter\def\expandafter\minted@opt@extra\expandafter{%
+ \minted@opt@extra,#1=##1}}}
+\newcommand\minted@define@extra@switch[1]{
+ \define@booleankey{minted@opt}{#1}
+ {\expandafter\def\expandafter\minted@opt@extra\expandafter{%
+ \minted@opt@extra,#1}}
+ {\expandafter\def\expandafter\minted@opt@extra\expandafter{%
+ \minted@opt@extra,#1=false}}}
+\minted@define@switch{texcl}{-P texcomments}
+\minted@define@switch{mathescape}{-P mathescape}
+\minted@define@switch{linenos}{-P linenos}
+\minted@define@switch{startinline}{-P startinline}
+\minted@define@switch[-P funcnamehighlighting=False]%
+ {funcnamehighlighting}{-P funcnamehighlighting}
+\minted@define@opt{gobble}{-F gobble:n=#1}
+\minted@define@opt{bgcolor}{#1}
+\minted@define@extra{frame}
+\minted@define@extra{framesep}
+\minted@define@extra{framerule}
+\minted@define@extra{rulecolor}
+\minted@define@extra{numbersep}
+\minted@define@extra{firstnumber}
+\minted@define@extra{stepnumber}
+\minted@define@extra{firstline}
+\minted@define@extra{lastline}
+\minted@define@extra{baselinestretch}
+\minted@define@extra{xleftmargin}
+\minted@define@extra{xrightmargin}
+\minted@define@extra{fillcolor}
+\minted@define@extra{tabsize}
+\minted@define@extra{fontfamily}
+\minted@define@extra{fontsize}
+\minted@define@extra{fontshape}
+\minted@define@extra{fontseries}
+\minted@define@extra{formatcom}
+\minted@define@extra{label}
+\minted@define@extra@switch{numberblanklines}
+\minted@define@extra@switch{showspaces}
+\minted@define@extra@switch{resetmargins}
+\minted@define@extra@switch{samepage}
+\minted@define@extra@switch{showtabs}
+\minted@define@extra@switch{obeytabs}
+\newsavebox{\minted@bgbox}
+\newenvironment{minted@colorbg}[1]{
+ \def\minted@bgcol{#1}
+ \noindent
+ \begin{lrbox}{\minted@bgbox}
+ \begin{minipage}{\linewidth-2\fboxsep}}
+ {\end{minipage}
+ \end{lrbox}%
+ \colorbox{\minted@bgcol}{\usebox{\minted@bgbox}}}
+\newwrite\minted@code
+\newcommand\minted@savecode[1]{
+ \immediate\openout\minted@code\jobname.pyg
+ \immediate\write\minted@code{#1}
+ \immediate\closeout\minted@code}
+\newcommand\minted@pygmentize[2][\jobname.pyg]{
+ \def\minted@cmd{pygmentize -l #2 -f latex -F tokenmerge
+ \minted@opt{gobble} \minted@opt{texcl} \minted@opt{mathescape}
+ \minted@opt{startinline} \minted@opt{funcnamehighlighting}
+ \minted@opt{linenos} -P "verboptions=\minted@opt{extra}"
+ -o \jobname.out.pyg #1}
+ \immediate\write18{\minted@cmd}
+ % For debugging, uncomment:
+ %\immediate\typeout{\minted@cmd}
+ \ifthenelse{\equal{\minted@opt@bgcolor}{}}
+ {}
+ {\begin{minted@colorbg}{\minted@opt@bgcolor}}
+ \input{\jobname.out.pyg}
+ \ifthenelse{\equal{\minted@opt@bgcolor}{}}
+ {}
+ {\end{minted@colorbg}}
+ \DeleteFile{\jobname.out.pyg}}
+\newcommand\minted@usedefaultstyle{\usemintedstyle{default}}
+\newcommand\usemintedstyle[1]{
+ \renewcommand\minted@usedefaultstyle{}
+ \immediate\write18{pygmentize -S #1 -f latex > \jobname.pyg}
+ \input{\jobname.pyg}}
+\newcommand\mint[3][]{
+ \DefineShortVerb{#3}
+ \minted@resetoptions
+ \setkeys{minted@opt}{#1}
+ \SaveVerb[aftersave={
+ \UndefineShortVerb{#3}
+ \minted@savecode{\FV@SV@minted@verb}
+ \minted@pygmentize{#2}
+ \DeleteFile{\jobname.pyg}}]{minted@verb}#3}
+\newcommand\minted@proglang[1]{}
+\newenvironment{minted}[2][]
+ {\VerbatimEnvironment
+ \renewcommand{\minted@proglang}[1]{#2}
+ \minted@resetoptions
+ \setkeys{minted@opt}{#1}
+ \begin{VerbatimOut}[codes={\catcode`\^^I=12}]{\jobname.pyg}}%
+ {\end{VerbatimOut}
+ \minted@pygmentize{\minted@proglang{}}
+ \DeleteFile{\jobname.pyg}}
+\newcommand\inputminted[3][]{
+ \minted@resetoptions
+ \setkeys{minted@opt}{#1}
+ \minted@pygmentize[#3]{#2}}
+\newcommand\newminted[3][]{
+ \ifthenelse{\equal{#1}{}}
+ {\def\minted@envname{#2code}}
+ {\def\minted@envname{#1}}
+ \newenvironment{\minted@envname}
+ {\VerbatimEnvironment\begin{minted}[#3]{#2}}
+ {\end{minted}}
+ \newenvironment{\minted@envname *}[1]
+ {\VerbatimEnvironment\begin{minted}[#3,##1]{#2}}
+ {\end{minted}}}
+\newcommand\newmint[3][]{
+ \ifthenelse{\equal{#1}{}}
+ {\def\minted@shortname{#2}}
+ {\def\minted@shortname{#1}}
+ \expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
+ \mint[#3,##1]{#2}##2}}
+\newcommand\newmintedfile[3][]{
+ \ifthenelse{\equal{#1}{}}
+ {\def\minted@shortname{#2file}}
+ {\def\minted@shortname{#1}}
+ \expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
+ \inputminted[#3,##1]{#2}{##2}}}
+\@ifundefined{minted@float@within}
+ {\newfloat{listing}{h}{lol}}
+ {\newfloat{listing}{h}{lol}[\minted@float@within]}
+\newcommand\listingscaption{Listing}
+\floatname{listing}{\listingscaption}
+\newcommand\listoflistingscaption{List of listings}
+\providecommand\listoflistings{\listof{listing}{\listoflistingscaption}}
+\AtBeginDocument{
+ \minted@usedefaultstyle}
+\AtEndOfPackage{
+ \ifnum\pdf@shellescape=1\relax\else
+ \PackageError{minted}
+ {You must invoke LaTeX with the
+ -shell-escape flag}
+ {Pass the -shell-escape flag to LaTeX. Refer to the minted.sty
+ documentation for more information.}\fi
+ \TestAppExists{pygmentize}
+ \ifAppExists\else
+ \PackageError{minted}
+ {You must have `pygmentize' installed
+ to use this package}
+ {Refer to the installation instructions in the minted
+ documentation for more information.}
+ \fi}
+%%%% Begin minted1 modification
+\fi
+%%%% End minted1 modification
+\endinput
+%%
+%% End of file `minted1.sty'.
diff --git a/macros/latex/contrib/minted/minted2.sty b/macros/latex/contrib/minted/minted2.sty
new file mode 100644
index 0000000000..e2431e4714
--- /dev/null
+++ b/macros/latex/contrib/minted/minted2.sty
@@ -0,0 +1,1285 @@
+%%
+%% This is file `minted2.sty'.
+%%
+%% Copyright 2013--2024 Geoffrey M. Poore
+%% Copyright 2010--2011 Konrad Rudolph
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% Additionally, the project may be distributed under the terms of the new BSD
+%% license.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Geoffrey Poore.
+%%
+%% This work consists of the file minted2.sty.
+\NeedsTeXFormat{LaTeX2e}
+%%%% Begin minted2 modification
+%% \ProvidesPackage{minted}
+%% [2023/12/18 v2.9 Yet another Pygments shim for LaTeX]
+\ProvidesPackage{minted2}
+ [2024/05/09 v2.9 Yet another Pygments shim for LaTeX]
+\IfPackageLoadedTF{minted}%
+ {\PackageError{minted2}%
+ {Packages minted and minted2 cannot be loaded at the same time}{}%
+ \endinput}%
+ {}
+\@namedef{ver@minted.sty}{2023/12/18 v2.9 Yet another Pygments shim for LaTeX}
+\expandafter\let\expandafter\minted@tmp\csname opt@minted2.sty\endcsname
+\expandafter\let\csname opt@minted.sty\endcsname\minted@tmp
+\let\minted@tmp\relax
+%%%% End minted2 modification
+\RequirePackage{keyval}
+\RequirePackage{kvoptions}
+%%%% Begin minted2 modification
+\SetupKeyvalOptions{family=minted, prefix=minted@}
+%%%% End minted2 modification
+\RequirePackage{fvextra}[2022/11/30]
+\RequirePackage{ifthen}
+\IfFileExists{shellesc.sty}
+ {\RequirePackage{shellesc}
+ \@ifpackagelater{shellesc}{2016/04/29}
+ {}
+ {\protected\def\ShellEscape{\immediate\write18 }}}
+ {\protected\def\ShellEscape{\immediate\write18 }}
+\RequirePackage{ifplatform}
+\RequirePackage{pdftexcmds}
+\RequirePackage{etoolbox}
+\RequirePackage{xstring}
+\RequirePackage{lineno}
+\RequirePackage{framed}
+\RequirePackage{catchfile}
+\AtEndPreamble{%
+ \@ifpackageloaded{color}{}{%
+ \@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}}}%
+}
+\DeclareVoidOption{chapter}{\def\minted@float@within{chapter}}
+\DeclareVoidOption{section}{\def\minted@float@within{section}}
+\DeclareBoolOption{newfloat}
+\DeclareBoolOption[true]{cache}
+\StrSubstitute{\jobname}{ }{_}[\minted@jobname]
+\StrSubstitute{\minted@jobname}{*}{_}[\minted@jobname]
+\StrSubstitute{\minted@jobname}{"}{}[\minted@jobname]
+\StrSubstitute{\minted@jobname}{'}{_}[\minted@jobname]
+\newcommand{\minted@cachedir}{\detokenize{_}minted-\minted@jobname}
+\let\minted@cachedir@windows\minted@cachedir
+\define@key{minted}{cachedir}{%
+ \@namedef{minted@cachedir}{#1}%
+ \StrSubstitute{\minted@cachedir}{/}{\@backslashchar}[\minted@cachedir@windows]}
+\DeclareBoolOption{finalizecache}
+\DeclareBoolOption{frozencache}
+\let\minted@outputdir\@empty
+\let\minted@outputdir@windows\@empty
+\define@key{minted}{outputdir}{%
+ \@namedef{minted@outputdir}{#1/}%
+ \StrSubstitute{\minted@outputdir}{/}%
+ {\@backslashchar}[\minted@outputdir@windows]}
+\DeclareBoolOption{inputlanglinenos}
+\DeclareBoolOption{kpsewhich}
+\DeclareBoolOption{langlinenos}
+\DeclareBoolOption{draft}
+\DeclareComplementaryOption{final}{draft}
+\ProcessKeyvalOptions*
+\ifthenelse{\boolean{minted@newfloat}}{\RequirePackage{newfloat}}{\RequirePackage{float}}
+\ifcsname tikzifexternalizing\endcsname
+ \tikzifexternalizing{\minted@drafttrue\minted@cachefalse}{}
+\else
+ \ifcsname tikzexternalrealjob\endcsname
+ \minted@drafttrue
+ \minted@cachefalse
+ \else
+ \fi
+\fi
+\ifthenelse{\boolean{minted@finalizecache}}%
+ {\ifthenelse{\boolean{minted@frozencache}}%
+ {\PackageError{minted}%
+ {Options "finalizecache" and "frozencache" are not compatible}%
+ {Options "finalizecache" and "frozencache" are not compatible}}%
+ {}}%
+ {}
+\ifthenelse{\boolean{minted@cache}}%
+ {\ifthenelse{\boolean{minted@frozencache}}%
+ {}%
+ {\AtEndOfPackage{\ProvideDirectory{\minted@outputdir\minted@cachedir}}}}%
+ {}
+\newcommand{\minted@input}[1]{%
+ \IfFileExists{#1}%
+ {\input{#1}}%
+ {\PackageError{minted}{Missing Pygments output; \string\inputminted\space
+ was^^Jprobably given a file that does not exist--otherwise, you may need
+ ^^Jthe outputdir package option, or may be using an incompatible build
+ tool,^^Jor may be using frozencache with a missing file}%
+ {This could be caused by using -output-directory or -aux-directory
+ ^^Jwithout setting minted's outputdir, or by using a build tool that
+ ^^Jchanges paths in ways minted cannot detect,
+ ^^Jor using frozencache with a missing file.}}%
+}
+\newcommand{\minted@infile}{\minted@jobname.out.pyg}
+\newcommand{\minted@cachelist}{}
+\newcommand{\minted@addcachefile}[1]{%
+ \expandafter\long\expandafter\gdef\expandafter\minted@cachelist\expandafter{%
+ \minted@cachelist,^^J%
+ \space\space#1}%
+ \expandafter\gdef\csname minted@cached@#1\endcsname{}%
+}
+\newcommand{\minted@savecachelist}{%
+ \ifdefempty{\minted@cachelist}{}{%
+ \immediate\write\@mainaux{%
+ \string\gdef\string\minted@oldcachelist\string{%
+ \minted@cachelist\string}}%
+ }%
+}
+\newcommand{\minted@cleancache}{%
+ \ifcsname minted@oldcachelist\endcsname
+ \def\do##1{%
+ \ifthenelse{\equal{##1}{}}{}{%
+ \ifcsname minted@cached@##1\endcsname\else
+ \DeleteFile[\minted@outputdir\minted@cachedir]{##1}%
+ \fi
+ }%
+ }%
+ \expandafter\docsvlist\expandafter{\minted@oldcachelist}%
+ \else
+ \fi
+}
+\ifthenelse{\boolean{minted@draft}}%
+ {\AtEndDocument{%
+ \ifcsname minted@oldcachelist\endcsname
+ \StrSubstitute{\minted@oldcachelist}{,}{,^^J }[\minted@cachelist]
+ \minted@savecachelist
+ \fi}}%
+ {\ifthenelse{\boolean{minted@frozencache}}%
+ {\AtEndDocument{%
+ \ifcsname minted@oldcachelist\endcsname
+ \StrSubstitute{\minted@oldcachelist}{,}{,^^J }[\minted@cachelist]
+ \minted@savecachelist
+ \fi}}%
+ {\AtEndDocument{%
+ \minted@savecachelist
+ \minted@cleancache}}}%
+\ifwindows
+ \providecommand{\DeleteFile}[2][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\IfFileExists{#2}{\ShellEscape{del #2}}{}}%
+ {\IfFileExists{#1/#2}{%
+ \StrSubstitute{#1}{/}{\@backslashchar}[\minted@windir]
+ \ShellEscape{del \minted@windir\@backslashchar #2}}{}}}
+\else
+ \providecommand{\DeleteFile}[2][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\IfFileExists{#2}{\ShellEscape{rm #2}}{}}%
+ {\IfFileExists{#1/#2}{\ShellEscape{rm #1/#2}}{}}}
+\fi
+\ifwindows
+ \newcommand{\ProvideDirectory}[1]{%
+ \StrSubstitute{#1}{/}{\@backslashchar}[\minted@windir]
+ \ShellEscape{if not exist \minted@windir\space mkdir \minted@windir}}
+\else
+ \newcommand{\ProvideDirectory}[1]{%
+ \ShellEscape{mkdir -p #1}}
+\fi
+\newboolean{AppExists}
+\newread\minted@appexistsfile
+\newcommand{\TestAppExists}[1]{%
+ \ifwindows
+ \DeleteFile{\minted@jobname.aex}%
+ \ShellEscape{for \string^\@percentchar i in (#1.exe #1.bat #1.cmd)
+ do set > \minted@jobname.aex <nul: /p
+ x=\string^\@percentchar \string~$PATH:i>> \minted@jobname.aex}%
+ %$ <- balance syntax highlighting
+ \immediate\openin\minted@appexistsfile\minted@jobname.aex
+ \expandafter\def\expandafter\@tmp@cr\expandafter{\the\endlinechar}%
+ \endlinechar=-1\relax
+ \readline\minted@appexistsfile to \minted@apppathifexists
+ \endlinechar=\@tmp@cr
+ \ifthenelse{\equal{\minted@apppathifexists}{}}%
+ {\AppExistsfalse}%
+ {\AppExiststrue}%
+ \immediate\closein\minted@appexistsfile
+ \DeleteFile{\minted@jobname.aex}%
+ \else
+ \ShellEscape{command -v #1 && touch \minted@jobname.aex}%
+ \IfFileExists{\minted@jobname.aex}%
+ {\AppExiststrue
+ \DeleteFile{\minted@jobname.aex}}%
+ {\AppExistsfalse}%
+ \fi
+}
+\newcommand{\minted@optlistcl@g}{}
+\newcommand{\minted@optlistcl@g@i}{}
+\let\minted@lang\@empty
+\newcommand{\minted@optlistcl@lang}{}
+\newcommand{\minted@optlistcl@lang@i}{}
+\newcommand{\minted@optlistcl@cmd}{}
+\newcommand{\minted@optlistfv@g}{}
+\newcommand{\minted@optlistfv@g@i}{}
+\newcommand{\minted@optlistfv@lang}{}
+\newcommand{\minted@optlistfv@lang@i}{}
+\newcommand{\minted@optlistfv@cmd}{}
+\newcommand{\minted@configlang}[1]{%
+ \def\minted@lang{#1}%
+ \ifcsname minted@optlistcl@lang\minted@lang\endcsname\else
+ \expandafter\gdef\csname minted@optlistcl@lang\minted@lang\endcsname{}%
+ \fi
+ \ifcsname minted@optlistcl@lang\minted@lang @i\endcsname\else
+ \expandafter\gdef\csname minted@optlistcl@lang\minted@lang @i\endcsname{}%
+ \fi
+ \ifcsname minted@optlistfv@lang\minted@lang\endcsname\else
+ \expandafter\gdef\csname minted@optlistfv@lang\minted@lang\endcsname{}%
+ \fi
+ \ifcsname minted@optlistfv@lang\minted@lang @i\endcsname\else
+ \expandafter\gdef\csname minted@optlistfv@lang\minted@lang @i\endcsname{}%
+ \fi
+}
+\ifwindows
+ \newcommand{\minted@optlistcl@quote}[2]{%
+ \detokenize{#1="#2"}}
+\else
+ \newcommand{\minted@optlistcl@quote}[2]{%
+ \detokenize{#1='#2'}}
+\fi
+\newcommand{\minted@addto@optlistcl}[3]{%
+ \expandafter\def\expandafter#1\expandafter{#1%
+ \minted@optlistcl@quote{#2}{#3}\space}}
+\newcommand{\minted@addto@optlistcl@lang}[3]{%
+ \expandafter\let\expandafter\minted@tmp\csname #1\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp%
+ \minted@optlistcl@quote{#2}{#3}\space}%
+ \expandafter\let\csname #1\endcsname\minted@tmp}
+\newcommand{\minted@def@optcl}[4][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\define@key{minted@opt@g}{#2}{%
+ \minted@addto@optlistcl{\minted@optlistcl@g}{#3}{#4}%
+ \@namedef{minted@opt@g:#2}{#4}}%
+ \define@key{minted@opt@g@i}{#2}{%
+ \minted@addto@optlistcl{\minted@optlistcl@g@i}{#3}{#4}%
+ \@namedef{minted@opt@g@i:#2}{#4}}%
+ \define@key{minted@opt@lang}{#2}{%
+ \minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
+ \define@key{minted@opt@lang@i}{#2}{%
+ \minted@addto@optlistcl@lang{%
+ minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
+ \define@key{minted@opt@cmd}{#2}{%
+ \minted@addto@optlistcl{\minted@optlistcl@cmd}{#3}{#4}%
+ \@namedef{minted@opt@cmd:#2}{#4}}}%
+ {\define@key{minted@opt@g}{#2}[#1]{%
+ \minted@addto@optlistcl{\minted@optlistcl@g}{#3}{#4}%
+ \@namedef{minted@opt@g:#2}{#4}}%
+ \define@key{minted@opt@g@i}{#2}[#1]{%
+ \minted@addto@optlistcl{\minted@optlistcl@g@i}{#3}{#4}%
+ \@namedef{minted@opt@g@i:#2}{#4}}%
+ \define@key{minted@opt@lang}{#2}[#1]{%
+ \minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
+ \define@key{minted@opt@lang@i}{#2}[#1]{%
+ \minted@addto@optlistcl@lang{%
+ minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
+ \define@key{minted@opt@cmd}{#2}[#1]{%
+ \minted@addto@optlistcl{\minted@optlistcl@cmd}{#3}{#4}%
+ \@namedef{minted@opt@cmd:#2}{#4}}}%
+}
+\begingroup
+\catcode`\!=0
+!catcode`!\=12
+!gdef!minted@escape#1{%
+ !expandafter!minted@escape@i!detokenize{#1}\!FV@Sentinel}
+!gdef!minted@escape@i#1\#2!FV@Sentinel{%
+ !if!relax!detokenize{#2}!relax
+ !expandafter!@firstoftwo
+ !else
+ !expandafter!@secondoftwo
+ !fi
+ {#1!minted@escape@end\#2!FV@Sentinel}
+ {#1!minted@escape@esc\#2!FV@Sentinel}}
+!gdef!minted@escape@end#1!FV@Sentinel{}
+!gdef!minted@escape@esc\#1#2!FV@Sentinel{%
+ #1!minted@escape@i#2!FV@Sentinel}
+!endgroup
+\newcommand{\minted@addto@optlistcl@e}[3]{%
+ \edef\minted@tmp{\minted@escape{#3}}%
+ \expandafter\minted@addto@optlistcl@e@i\expandafter{\minted@tmp}{#1}{#2}}
+\def\minted@addto@optlistcl@e@i#1#2#3{%
+ \expandafter\def\expandafter#2\expandafter{#2\minted@optlistcl@quote{#3}{#1}\space}}
+\newcommand{\minted@addto@optlistcl@lang@e}[3]{%
+ \edef\minted@tmp{\minted@escape{#3}}%
+ \expandafter\minted@addto@optlistcl@lang@e@i\expandafter{\minted@tmp}{#1}{#2}}
+\def\minted@addto@optlistcl@lang@e@i#1#2#3{%
+ \expandafter\let\expandafter\minted@tmp\csname #2\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp\minted@optlistcl@quote{#3}{#1}\space}%
+ \expandafter\let\csname #2\endcsname\minted@tmp}
+\newcommand{\minted@def@optcl@e}[4][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\define@key{minted@opt@g}{#2}{%
+ \minted@addto@optlistcl@e{\minted@optlistcl@g}{#3}{#4}%
+ \@namedef{minted@opt@g:#2}{#4}}%
+ \define@key{minted@opt@g@i}{#2}{%
+ \minted@addto@optlistcl@e{\minted@optlistcl@g@i}{#3}{#4}%
+ \@namedef{minted@opt@g@i:#2}{#4}}%
+ \define@key{minted@opt@lang}{#2}{%
+ \minted@addto@optlistcl@lang@e{minted@optlistcl@lang\minted@lang}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
+ \define@key{minted@opt@lang@i}{#2}{%
+ \minted@addto@optlistcl@lang@e{%
+ minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
+ \define@key{minted@opt@cmd}{#2}{%
+ \minted@addto@optlistcl@e{\minted@optlistcl@cmd}{#3}{#4}%
+ \@namedef{minted@opt@cmd:#2}{#4}}}%
+ {\define@key{minted@opt@g}{#2}[#1]{%
+ \minted@addto@optlistcl@e{\minted@optlistcl@g}{#3}{#4}%
+ \@namedef{minted@opt@g:#2}{#4}}%
+ \define@key{minted@opt@g@i}{#2}[#1]{%
+ \minted@addto@optlistcl@e{\minted@optlistcl@g@i}{#3}{#4}%
+ \@namedef{minted@opt@g@i:#2}{#4}}%
+ \define@key{minted@opt@lang}{#2}[#1]{%
+ \minted@addto@optlistcl@lang@e{minted@optlistcl@lang\minted@lang}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
+ \define@key{minted@opt@lang@i}{#2}[#1]{%
+ \minted@addto@optlistcl@lang@e{%
+ minted@optlistcl@lang\minted@lang @i}{#3}{#4}%
+ \@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
+ \define@key{minted@opt@cmd}{#2}[#1]{%
+ \minted@addto@optlistcl@e{\minted@optlistcl@cmd}{#3}{#4}%
+ \@namedef{minted@opt@cmd:#2}{#4}}}%
+}
+\newcommand{\minted@def@optcl@switch}[2]{%
+ \define@booleankey{minted@opt@g}{#1}%
+ {\minted@addto@optlistcl{\minted@optlistcl@g}{#2}{True}%
+ \@namedef{minted@opt@g:#1}{true}}
+ {\minted@addto@optlistcl{\minted@optlistcl@g}{#2}{False}%
+ \@namedef{minted@opt@g:#1}{false}}
+ \define@booleankey{minted@opt@g@i}{#1}%
+ {\minted@addto@optlistcl{\minted@optlistcl@g@i}{#2}{True}%
+ \@namedef{minted@opt@g@i:#1}{true}}
+ {\minted@addto@optlistcl{\minted@optlistcl@g@i}{#2}{False}%
+ \@namedef{minted@opt@g@i:#1}{false}}
+ \define@booleankey{minted@opt@lang}{#1}%
+ {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#2}{True}%
+ \@namedef{minted@opt@lang\minted@lang:#1}{true}}
+ {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#2}{False}%
+ \@namedef{minted@opt@lang\minted@lang:#1}{false}}
+ \define@booleankey{minted@opt@lang@i}{#1}%
+ {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang @i}{#2}{True}%
+ \@namedef{minted@opt@lang\minted@lang @i:#1}{true}}
+ {\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang @i}{#2}{False}%
+ \@namedef{minted@opt@lang\minted@lang @i:#1}{false}}
+ \define@booleankey{minted@opt@cmd}{#1}%
+ {\minted@addto@optlistcl{\minted@optlistcl@cmd}{#2}{True}%
+ \@namedef{minted@opt@cmd:#1}{true}}
+ {\minted@addto@optlistcl{\minted@optlistcl@cmd}{#2}{False}%
+ \@namedef{minted@opt@cmd:#1}{false}}
+}
+\newcommand{\minted@def@optfv}[1]{%
+ \define@key{minted@opt@g}{#1}{%
+ \expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
+ \minted@optlistfv@g#1={##1},}%
+ \@namedef{minted@opt@g:#1}{##1}}
+ \define@key{minted@opt@g@i}{#1}{%
+ \expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
+ \minted@optlistfv@g@i#1={##1},}%
+ \@namedef{minted@opt@g@i:#1}{##1}}
+ \define@key{minted@opt@lang}{#1}{%
+ \expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{%
+ \minted@tmp#1={##1},}%
+ \expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
+ \minted@tmp
+ \@namedef{minted@opt@lang\minted@lang:#1}{##1}}
+ \define@key{minted@opt@lang@i}{#1}{%
+ \expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang @i\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{%
+ \minted@tmp#1={##1},}%
+ \expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
+ \minted@tmp
+ \@namedef{minted@opt@lang\minted@lang @i:#1}{##1}}
+ \define@key{minted@opt@cmd}{#1}{%
+ \expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
+ \minted@optlistfv@cmd#1={##1},}%
+ \@namedef{minted@opt@cmd:#1}{##1}}
+}
+\newcommand{\minted@def@optfv@switch}[1]{%
+ \define@booleankey{minted@opt@g}{#1}%
+ {\expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
+ \minted@optlistfv@g#1=true,}%
+ \@namedef{minted@opt@g:#1}{true}}%
+ {\expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
+ \minted@optlistfv@g#1=false,}%
+ \@namedef{minted@opt@g:#1}{false}}%
+ \define@booleankey{minted@opt@g@i}{#1}%
+ {\expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
+ \minted@optlistfv@g@i#1=true,}%
+ \@namedef{minted@opt@g@i:#1}{true}}%
+ {\expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
+ \minted@optlistfv@g@i#1=false,}%
+ \@namedef{minted@opt@g@i:#1}{false}}%
+ \define@booleankey{minted@opt@lang}{#1}%
+ {\expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{%
+ \minted@tmp#1=true,}%
+ \expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
+ \minted@tmp
+ \@namedef{minted@opt@lang\minted@lang:#1}{true}}%
+ {\expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{%
+ \minted@tmp#1=false,}%
+ \expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
+ \minted@tmp
+ \@namedef{minted@opt@lang\minted@lang:#1}{false}}%
+ \define@booleankey{minted@opt@lang@i}{#1}%
+ {\expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang @i\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{%
+ \minted@tmp#1=true,}%
+ \expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
+ \minted@tmp
+ \@namedef{minted@opt@lang\minted@lang @i:#1}{true}}%
+ {\expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang @i\endcsname
+ \expandafter\def\expandafter\minted@tmp\expandafter{%
+ \minted@tmp#1=false,}%
+ \expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
+ \minted@tmp
+ \@namedef{minted@opt@lang\minted@lang @i:#1}{false}}%
+ \define@booleankey{minted@opt@cmd}{#1}%
+ {\expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
+ \minted@optlistfv@cmd#1=true,}%
+ \@namedef{minted@opt@cmd:#1}{true}}%
+ {\expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
+ \minted@optlistfv@cmd#1=false,}%
+ \@namedef{minted@opt@cmd:#1}{false}}%
+}
+\newboolean{minted@isinline}
+\newcommand{\minted@fvset}{%
+ \expandafter\fvset\expandafter{\minted@optlistfv@g}%
+ \expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang\endcsname
+ \expandafter\fvset\expandafter{\minted@tmp}%
+ \ifthenelse{\boolean{minted@isinline}}%
+ {\expandafter\fvset\expandafter{\minted@optlistfv@g@i}%
+ \expandafter\let\expandafter\minted@tmp%
+ \csname minted@optlistfv@lang\minted@lang @i\endcsname
+ \expandafter\fvset\expandafter{\minted@tmp}}%
+ {}%
+ \expandafter\fvset\expandafter{\minted@optlistfv@cmd}%
+}
+\newcommand{\minted@def@opt}[2][]{%
+ \define@key{minted@opt@g}{#2}{%
+ \@namedef{minted@opt@g:#2}{##1}}
+ \define@key{minted@opt@g@i}{#2}{%
+ \@namedef{minted@opt@g@i:#2}{##1}}
+ \define@key{minted@opt@lang}{#2}{%
+ \@namedef{minted@opt@lang\minted@lang:#2}{##1}}
+ \define@key{minted@opt@lang@i}{#2}{%
+ \@namedef{minted@opt@lang\minted@lang @i:#2}{##1}}
+ \define@key{minted@opt@cmd}{#2}{%
+ \@namedef{minted@opt@cmd:#2}{##1}}
+ \ifstrempty{#1}{}{\@namedef{minted@opt@g:#2}{#1}}%
+}
+\newcommand{\minted@def@opt@detok}[2][]{%
+ \define@key{minted@opt@g}{#2}{%
+ \@namedef{minted@opt@g:#2}{\detokenize{##1}}}
+ \define@key{minted@opt@g@i}{#2}{%
+ \@namedef{minted@opt@g@i:#2}{\detokenize{##1}}}
+ \define@key{minted@opt@lang}{#2}{%
+ \@namedef{minted@opt@lang\minted@lang:#2}{\detokenize{##1}}}
+ \define@key{minted@opt@lang@i}{#2}{%
+ \@namedef{minted@opt@lang\minted@lang @i:#2}{\detokenize{##1}}}
+ \define@key{minted@opt@cmd}{#2}{%
+ \@namedef{minted@opt@cmd:#2}{\detokenize{##1}}}
+ \ifstrempty{#1}{}{\@namedef{minted@opt@g:#2}{\detokenize{#1}}}%
+}
+\newcommand{\minted@generate@PYGdef}[1]{%
+ \ifthenelse{\boolean{minted@cache}}%
+ {\def\minted@pygstylepath@load{\minted@outputdir\minted@cachedir/#1.pygstyle}%
+ \minted@addcachefile{#1.pygstyle}}%
+ {\def\minted@pygstylepath@load{\minted@outputdir\minted@jobname.out.pyg}}%
+ \ifwindows
+ \StrSubstitute{\minted@pygstylepath@load}%
+ {/}{\@backslashchar}[\minted@pygstylepath@save]%
+ \else
+ \let\minted@pygstylepath@save\minted@pygstylepath@load
+ \fi
+ \IfFileExists{\minted@pygstylepath@load}%
+ {}%
+ {\ifthenelse{\boolean{minted@frozencache}}%
+ {\PackageError{minted}%
+ {Missing style definition for #1 with frozencache}%
+ {Missing style definition for #1 with frozencache}}%
+ {}%
+ \ShellEscape{%
+ \MintedPygmentize\space -S #1 -f latex -P commandprefix=PYG
+ > \minted@pygstylepath@save
+ }%
+ }%
+ \CatchFileDef{\minted@tmp@filecontents}%
+ {\minted@pygstylepath@load}{\catcode`@=11\catcode`\%=14\catcode``=12\endlinechar=-1}%
+ \begingroup
+ \let\PYG\relax
+ \minted@tmp@filecontents
+ \ifx\PYG\relax
+ \ifthenelse{\boolean{minted@frozencache}}%
+ {\PackageError{minted}%
+ {Outdated style definition for #1 with frozencache}%
+ {Outdated style definition for #1 with frozencache}}%
+ {}%
+ \ShellEscape{%
+ \MintedPygmentize\space -S #1 -f latex -P commandprefix=PYG
+ > \minted@pygstylepath@save
+ }%
+ \CatchFileDef{\minted@tmp@filecontents}%
+ {\minted@pygstylepath@load}{\catcode`@=11\catcode`\%=14\catcode``=12\endlinechar=-1}%
+ \minted@tmp@filecontents
+ \ifx\PYG\relax
+ \PackageError{minted}%
+ {Cannot find Pygments style #1}%
+ {Cannot find Pygments style #1}%
+ \fi
+ \fi
+ \expandafter\global\expandafter\let\csname minted@PYGdef@#1\endcsname%
+ \minted@tmp@filecontents
+ \endgroup
+}
+\newcommand{\minted@defstyle}[1]{%
+ \edef\minted@style{#1}%
+ \ifcsname minted@PYGdef@\minted@style\endcsname\else
+ \expandafter\minted@generate@PYGdef\expandafter{\minted@style}%
+ \fi
+ \csname minted@PYGdef@\minted@style\endcsname
+ \minted@patch@PYGZsq
+ \minted@patch@PYGZhy
+ \ifthenelse{\equal{\minted@get@opt{ignorelexererrors}{true}}{true}}%
+ {\let\PYG@tok@err\relax}{}}
+\ifthenelse{\boolean{minted@draft}}{\renewcommand{\minted@defstyle}[1]{}}{}
+\newcommand{\minted@patch@PYGZsq}{%
+ \ifcsname PYGZsq\endcsname
+ \expandafter\ifdefstring\expandafter{\csname PYGZsq\endcsname}{\char`\'}%
+ {\minted@patch@PYGZsq@i}%
+ {}%
+ \fi
+}
+\begingroup
+\catcode`\'=\active
+\gdef\minted@patch@PYGZsq@i{\gdef\PYGZsq{'}}
+\endgroup
+\newcommand{\minted@patch@PYGZhy}{%
+ \ifcsname PYGZhy\endcsname
+ \expandafter\ifdefstring\expandafter{\csname PYGZhy\endcsname}{\char`\-}%
+ {\def\PYGZhy{\mbox{-}}}%
+ {}%
+ \fi
+}
+\newcommand{\minted@def@opt@switch}[2][false]{%
+ \define@booleankey{minted@opt@g}{#2}%
+ {\@namedef{minted@opt@g:#2}{true}}%
+ {\@namedef{minted@opt@g:#2}{false}}
+ \define@booleankey{minted@opt@g@i}{#2}%
+ {\@namedef{minted@opt@g@i:#2}{true}}%
+ {\@namedef{minted@opt@g@i:#2}{false}}
+ \define@booleankey{minted@opt@lang}{#2}%
+ {\@namedef{minted@opt@lang\minted@lang:#2}{true}}%
+ {\@namedef{minted@opt@lang\minted@lang:#2}{false}}
+ \define@booleankey{minted@opt@lang@i}{#2}%
+ {\@namedef{minted@opt@lang\minted@lang @i:#2}{true}}%
+ {\@namedef{minted@opt@lang\minted@lang @i:#2}{false}}
+ \define@booleankey{minted@opt@cmd}{#2}%
+ {\@namedef{minted@opt@cmd:#2}{true}}%
+ {\@namedef{minted@opt@cmd:#2}{false}}%
+ \@namedef{minted@opt@g:#2}{#1}%
+}
+\def\minted@get@opt#1#2{%
+ \ifcsname minted@opt@cmd:#1\endcsname
+ \csname minted@opt@cmd:#1\endcsname
+ \else
+ \ifminted@isinline
+ \ifcsname minted@opt@lang\minted@lang @i:#1\endcsname
+ \csname minted@opt@lang\minted@lang @i:#1\endcsname
+ \else
+ \ifcsname minted@opt@g@i:#1\endcsname
+ \csname minted@opt@g@i:#1\endcsname
+ \else
+ \ifcsname minted@opt@lang\minted@lang:#1\endcsname
+ \csname minted@opt@lang\minted@lang:#1\endcsname
+ \else
+ \ifcsname minted@opt@g:#1\endcsname
+ \csname minted@opt@g:#1\endcsname
+ \else
+ #2%
+ \fi
+ \fi
+ \fi
+ \fi
+ \else
+ \ifcsname minted@opt@lang\minted@lang:#1\endcsname
+ \csname minted@opt@lang\minted@lang:#1\endcsname
+ \else
+ \ifcsname minted@opt@g:#1\endcsname
+ \csname minted@opt@g:#1\endcsname
+ \else
+ #2%
+ \fi
+ \fi
+ \fi
+ \fi
+}%
+\minted@def@optcl{encoding}{-P encoding}{#1}
+\minted@def@optcl{outencoding}{-P outencoding}{#1}
+\minted@def@optcl@e{escapeinside}{-P escapeinside}{#1}
+\minted@def@optcl@switch{stripnl}{-P stripnl}
+\minted@def@optcl@switch{stripall}{-P stripall}
+\minted@def@optcl@switch{python3}{-P python3}
+\minted@def@optcl@switch{funcnamehighlighting}{-P funcnamehighlighting}
+\minted@def@optcl@switch{startinline}{-P startinline}
+\ifthenelse{\boolean{minted@draft}}%
+ {\minted@def@optfv{gobble}}%
+ {\minted@def@optcl{gobble}{-F gobble:n}{#1}}
+\minted@def@optcl{codetagify}{-F codetagify:codetags}{#1}
+\minted@def@optcl{keywordcase}{-F keywordcase:case}{#1}
+\minted@def@optcl@switch{texcl}{-P texcomments}
+\minted@def@optcl@switch{texcomments}{-P texcomments}
+\minted@def@optcl@switch{mathescape}{-P mathescape}
+\minted@def@optfv@switch{linenos}
+\minted@def@opt@detok{style}
+\minted@def@optfv{frame}
+\minted@def@optfv{framesep}
+\minted@def@optfv{framerule}
+\minted@def@optfv{rulecolor}
+\minted@def@optfv{numbersep}
+\minted@def@optfv{numbers}
+\minted@def@optfv{firstnumber}
+\minted@def@optfv{stepnumber}
+\minted@def@optfv{firstline}
+\minted@def@optfv{lastline}
+\minted@def@optfv{baselinestretch}
+\minted@def@optfv{xleftmargin}
+\minted@def@optfv{xrightmargin}
+\minted@def@optfv{fillcolor}
+\minted@def@optfv{tabsize}
+\minted@def@optfv{fontfamily}
+\minted@def@optfv{fontsize}
+\minted@def@optfv{fontshape}
+\minted@def@optfv{fontseries}
+\minted@def@optfv{formatcom}
+\minted@def@optfv{label}
+\minted@def@optfv{labelposition}
+\minted@def@optfv{highlightlines}
+\minted@def@optfv{highlightcolor}
+\minted@def@optfv{space}
+\minted@def@optfv{spacecolor}
+\minted@def@optfv{tab}
+\minted@def@optfv{tabcolor}
+\minted@def@optfv{highlightcolor}
+\minted@def@optfv@switch{beameroverlays}
+\minted@def@optfv@switch{curlyquotes}
+\minted@def@optfv@switch{numberfirstline}
+\minted@def@optfv@switch{numberblanklines}
+\minted@def@optfv@switch{stepnumberfromfirst}
+\minted@def@optfv@switch{stepnumberoffsetvalues}
+\minted@def@optfv@switch{showspaces}
+\minted@def@optfv@switch{resetmargins}
+\minted@def@optfv@switch{samepage}
+\minted@def@optfv@switch{showtabs}
+\minted@def@optfv@switch{obeytabs}
+\minted@def@optfv@switch{breaklines}
+\minted@def@optfv@switch{breakbytoken}
+\minted@def@optfv@switch{breakbytokenanywhere}
+\minted@def@optfv{breakindent}
+\minted@def@optfv{breakindentnchars}
+\minted@def@optfv@switch{breakautoindent}
+\minted@def@optfv{breaksymbol}
+\minted@def@optfv{breaksymbolsep}
+\minted@def@optfv{breaksymbolsepnchars}
+\minted@def@optfv{breaksymbolindent}
+\minted@def@optfv{breaksymbolindentnchars}
+\minted@def@optfv{breaksymbolleft}
+\minted@def@optfv{breaksymbolsepleft}
+\minted@def@optfv{breaksymbolsepleftnchars}
+\minted@def@optfv{breaksymbolindentleft}
+\minted@def@optfv{breaksymbolindentleftnchars}
+\minted@def@optfv{breaksymbolright}
+\minted@def@optfv{breaksymbolsepright}
+\minted@def@optfv{breaksymbolseprightnchars}
+\minted@def@optfv{breaksymbolindentright}
+\minted@def@optfv{breaksymbolindentrightnchars}
+\minted@def@optfv{breakbefore}
+\minted@def@optfv{breakbeforesymbolpre}
+\minted@def@optfv{breakbeforesymbolpost}
+\minted@def@optfv@switch{breakbeforeinrun}
+\minted@def@optfv{breakafter}
+\minted@def@optfv@switch{breakafterinrun}
+\minted@def@optfv{breakaftersymbolpre}
+\minted@def@optfv{breakaftersymbolpost}
+\minted@def@optfv@switch{breakanywhere}
+\minted@def@optfv{breakanywheresymbolpre}
+\minted@def@optfv{breakanywheresymbolpost}
+\minted@def@optfv{fontencoding}
+\minted@def@opt{bgcolor}
+\minted@def@opt@switch{autogobble}
+\minted@def@opt@switch{ignorelexererrors}
+\newcommand{\minted@encoding}{\minted@get@opt{encoding}{UTF8}}
+\newenvironment{minted@snugshade*}[1]{%
+ \def\FrameCommand##1{\hskip\@totalleftmargin
+ \colorbox{#1}{##1}%
+ \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
+ \MakeFramed{\advance\hsize-\width
+ \@totalleftmargin\z@ \linewidth\hsize
+ \advance\labelsep\fboxsep
+ \@setminipage}%
+ }{\par\unskip\@minipagefalse\endMakeFramed}
+\newsavebox{\minted@bgbox}
+\newenvironment{minted@colorbg}[1]{%
+ \setlength{\OuterFrameSep}{0pt}%
+ \let\minted@tmp\FV@NumberSep
+ \edef\FV@NumberSep{%
+ \the\numexpr\dimexpr\minted@tmp+\number\fboxsep\relax sp\relax}%
+ \medskip
+ \begin{minted@snugshade*}{#1}}
+ {\end{minted@snugshade*}%
+ \medskip\noindent}
+\newwrite\minted@code
+\newcommand{\minted@savecode}[1]{
+ \immediate\openout\minted@code\minted@jobname.pyg\relax
+ \immediate\write\minted@code{\expandafter\detokenize\expandafter{#1}}%
+ \immediate\closeout\minted@code}
+\newcounter{minted@FancyVerbLineTemp}
+\newcommand{\minted@write@detok}[1]{%
+ \immediate\write\FV@OutFile{\detokenize{#1}}}
+\newcommand{\minted@FVB@VerbatimOut}[1]{%
+ \setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
+ \@bsphack
+ \begingroup
+ \FV@UseKeyValues
+ \FV@DefineWhiteSpace
+ \def\FV@Space{\space}%
+ \FV@DefineTabOut
+ \let\FV@ProcessLine\minted@write@detok
+ \immediate\openout\FV@OutFile #1\relax
+ \let\FV@FontScanPrep\relax
+ \let\@noligs\relax
+ \FV@Scan}
+\newcommand{\minted@FVE@VerbatimOut}{%
+ \immediate\closeout\FV@OutFile\endgroup\@esphack
+ \setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}}%
+\ifcsname MintedPygmentize\endcsname\else
+ \newcommand{\MintedPygmentize}{pygmentize}
+\fi
+\newcounter{minted@pygmentizecounter}
+\ifwindows
+ \newcommand{\MintedPython}{python}
+\else
+ \newcommand{\MintedPython}{python3}
+\fi
+\newcommand{\minted@check@MintedPython}{%
+ \ifcsname minted@MintedPython@\MintedPython\endcsname
+ \else
+ \let\minted@altpython\minted@undefined
+ \ifdefstring{\MintedPython}{python}{\def\minted@altpython{python3}}{}%
+ \ifdefstring{\MintedPython}{python3}{\def\minted@altpython{python}}{}%
+ \ifx\minted@altpython\minted@undefined\relax
+ \TestAppExists{\MintedPython}%
+ \ifAppExists
+ \expandafter\global\expandafter\let%
+ \csname minted@MintedPython@\MintedPython\endcsname\relax
+ \else
+ \PackageError{minted}%
+ {Failed to find Python executable \MintedPython;
+ check Python installation (including PATH),
+ or redefine \string\MintedPython}%
+ {Failed to find Python executable \MintedPython;
+ check Python installation (including PATH),
+ or redefine \string\MintedPython}%
+ \fi
+ \else
+ \ifcsname minted@MintedPython@\minted@altpython\endcsname
+ \let\MintedPython\minted@altpython
+ \else
+ \TestAppExists{\MintedPython}%
+ \ifAppExists
+ \expandafter\global\expandafter\let%
+ \csname minted@MintedPython@\MintedPython\endcsname\relax
+ \else
+ \TestAppExists{\minted@altpython}%
+ \ifAppExists
+ \expandafter\global\expandafter\let%
+ \csname minted@MintedPython@\minted@altpython\endcsname\relax
+ \let\MintedPython\minted@altpython
+ \else
+ \PackageError{minted}%
+ {Failed to find Python executables python or python3;
+ check Python installation (including PATH),
+ or redefine \string\MintedPython}%
+ {Failed to find Python executables python or python3;
+ check Python installation (including PATH),
+ or redefine \string\MintedPython}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+}
+\ifwindows
+ \def\minted@opt@quote#1{\detokenize{"#1"}}
+\else
+ \def\minted@opt@quote#1{\detokenize{'#1'}}
+\fi
+\newcommand{\minted@pygmentize}[2][\minted@outputdir\minted@jobname.pyg]{%
+ \minted@defstyle{\minted@get@opt{style}{default}}%
+ \stepcounter{minted@pygmentizecounter}%
+ \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
+ {\def\minted@codefile{\minted@outputdir\minted@jobname.pyg}}%
+ {\def\minted@codefile{#1}}%
+ \ifthenelse{\boolean{minted@isinline}}%
+ {\def\minted@optlistcl@inlines{%
+ \minted@optlistcl@g@i
+ \csname minted@optlistcl@lang\minted@lang @i\endcsname}}%
+ {\let\minted@optlistcl@inlines\@empty}%
+ \def\minted@cmd{%
+ \ifminted@kpsewhich
+ \ifwindows
+ \detokenize{for /f "usebackq tokens=*"}\space\@percentchar\detokenize{a in (`kpsewhich}\space\minted@codefile\detokenize{`) do}\space
+ \fi
+ \fi
+ \MintedPygmentize\space -l \minted@opt@quote{#2}
+ -f latex -P commandprefix=PYG -F tokenmerge
+ \minted@optlistcl@g \csname minted@optlistcl@lang\minted@lang\endcsname
+ \minted@optlistcl@inlines
+ \minted@optlistcl@cmd -o \minted@outputdir\minted@infile\space
+ \ifminted@kpsewhich
+ \ifwindows
+ \@percentchar\detokenize{a}%
+ \else
+ \detokenize{`}kpsewhich \minted@codefile\space
+ \detokenize{||} \minted@codefile\detokenize{`}%
+ \fi
+ \else
+ \minted@codefile
+ \fi}%
+ % For debugging, uncomment: %%%%
+ % \immediate\typeout{\minted@cmd}%
+ % %%%%
+ \ifthenelse{\boolean{minted@cache}}%
+ {%
+ \ifminted@frozencache
+ \else
+ \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
+ {\edef\minted@hash{%
+ \pdf@filemdfivesum{#1}%
+ \pdf@mdfivesum{\minted@cmd\space%
+ autogobble(\the\numexpr\FancyVerbStartNum\relax-%
+ \the\numexpr\FancyVerbStopNum\relax)}}}%
+ {\edef\minted@hash{%
+ \pdf@filemdfivesum{#1}%
+ \pdf@mdfivesum{\minted@cmd}}}%
+ \edef\minted@infile{\minted@cachedir/\minted@hash.pygtex}%
+ \IfFileExists{\minted@infile}{}{%
+ \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}{%
+ \minted@autogobble{#1}}{}%
+ \ShellEscape{\minted@cmd}}%
+ \fi
+ \ifthenelse{\boolean{minted@finalizecache}}%
+ {%
+ \edef\minted@cachefilename{listing\arabic{minted@pygmentizecounter}.pygtex}%
+ \edef\minted@actualinfile{\minted@cachedir/\minted@cachefilename}%
+ \ifwindows
+ \StrSubstitute{\minted@infile}{/}{\@backslashchar}[\minted@infile@windows]
+ \StrSubstitute{\minted@actualinfile}{/}{\@backslashchar}[\minted@actualinfile@windows]
+ \ShellEscape{move /y \minted@outputdir\minted@infile@windows\space\minted@outputdir\minted@actualinfile@windows}%
+ \else
+ \ShellEscape{mv -f \minted@outputdir\minted@infile\space\minted@outputdir\minted@actualinfile}%
+ \fi
+ \let\minted@infile\minted@actualinfile
+ \expandafter\minted@addcachefile\expandafter{\minted@cachefilename}%
+ }%
+ {\ifthenelse{\boolean{minted@frozencache}}%
+ {%
+ \edef\minted@cachefilename{listing\arabic{minted@pygmentizecounter}.pygtex}%
+ \edef\minted@infile{\minted@cachedir/\minted@cachefilename}%
+ \expandafter\minted@addcachefile\expandafter{\minted@cachefilename}}%
+ {\expandafter\minted@addcachefile\expandafter{\minted@hash.pygtex}}%
+ }%
+ \minted@inputpyg}%
+ {%
+ \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}{%
+ \minted@autogobble{#1}}{}%
+ \ShellEscape{\minted@cmd}%
+ \minted@inputpyg}%
+}
+\def\minted@autogobble#1{%
+ \edef\minted@argone@esc{#1}%
+ \StrSubstitute{\minted@argone@esc}{\@backslashchar}{\@backslashchar\@backslashchar}[\minted@argone@esc]%
+ \StrSubstitute{\minted@argone@esc}{"}{\@backslashchar"}[\minted@argone@esc]%
+ \edef\minted@tmpfname@esc{\minted@outputdir\minted@jobname}%
+ \StrSubstitute{\minted@tmpfname@esc}{\@backslashchar}{\@backslashchar\@backslashchar}[\minted@tmpfname@esc]%
+ \StrSubstitute{\minted@tmpfname@esc}{"}{\@backslashchar"}[\minted@tmpfname@esc]%
+ %Need a version of open() that supports encoding under Python 2
+ \minted@check@MintedPython
+ \edef\minted@autogobblecmd{%
+ \ifminted@kpsewhich
+ \ifwindows
+ \detokenize{for /f "usebackq tokens=*" }\@percentchar\detokenize{a in (`kpsewhich} #1\detokenize{`) do}\space
+ \fi
+ \fi
+ \MintedPython\detokenize{ -c "import sys; import os;
+ import textwrap;
+ from io import open;
+ fname = }%
+ \ifminted@kpsewhich
+ \detokenize{sys.argv[1];}\space
+ \else
+ \detokenize{os.path.expanduser(os.path.expandvars(\"}\minted@argone@esc\detokenize{\"));}\space
+ \fi
+ \detokenize{f = open(fname, \"r\", encoding=\"}\minted@encoding\detokenize{\") if os.path.isfile(fname) else None;
+ t = f.readlines() if f is not None else None;
+ t_opt = t if t is not None else [];
+ f.close() if f is not None else None;
+ tmpfname = os.path.expanduser(os.path.expandvars(\"}\minted@tmpfname@esc.pyg\detokenize{\"));
+ f = open(tmpfname, \"w\", encoding=\"}\minted@encoding\detokenize{\") if t is not None else None;
+ fvstartnum = }\the\numexpr\FancyVerbStartNum\detokenize{;
+ fvstopnum = }\the\numexpr\FancyVerbStopNum\detokenize{;
+ s = max(0, fvstartnum-1);
+ e = max(s, fvstopnum) if fvstopnum > 0 else len(t_opt);
+ [f.write(textwrap.dedent(\"\".join(x))) for x in (t_opt[0:s], t_opt[s:e], t_opt[e:]) if x and t is not None];
+ f.close() if t is not None else os.remove(tmpfname);"}%
+ \ifminted@kpsewhich
+ \ifwindows
+ \space\@percentchar\detokenize{a}%
+ \else
+ \space\detokenize{`}kpsewhich #1\space\detokenize{||} #1\detokenize{`}%
+ \fi
+ \fi
+ }%
+ \ShellEscape{\minted@autogobblecmd}%
+}
+\newcommand{\minted@inputpyg}{%
+ \VerbatimPygments{\PYG}{\PYG}%
+ \ifthenelse{\boolean{minted@isinline}}%
+ {\ifthenelse{\equal{\minted@get@opt{breaklines}{false}}{true}}%
+ {\let\FV@BeginVBox\relax
+ \let\FV@EndVBox\relax
+ \def\FV@BProcessLine##1{\FancyVerbFormatLine{##1}}%
+ \minted@inputpyg@inline}%
+ {\minted@inputpyg@inline}}%
+ {\minted@inputpyg@block}%
+}
+\def\minted@inputpyg@inline{%
+ \ifthenelse{\equal{\minted@get@opt{bgcolor}{}}{}}%
+ {\minted@input{\minted@outputdir\minted@infile}}%
+ {\colorbox{\minted@get@opt{bgcolor}{}}{%
+ \minted@input{\minted@outputdir\minted@infile}}}%
+}
+\def\minted@inputpyg@block{%
+ \ifthenelse{\equal{\minted@get@opt{bgcolor}{}}{}}%
+ {\minted@input{\minted@outputdir\minted@infile}}%
+ {\begin{minted@colorbg}{\minted@get@opt{bgcolor}{}}%
+ \minted@input{\minted@outputdir\minted@infile}%
+ \end{minted@colorbg}}}
+\newcommand{\minted@langlinenoson}{%
+ \ifcsname c@minted@lang\minted@lang\endcsname\else
+ \newcounter{minted@lang\minted@lang}%
+ \fi
+ \setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
+ \setcounter{FancyVerbLine}{\value{minted@lang\minted@lang}}%
+}
+\newcommand{\minted@langlinenosoff}{%
+ \setcounter{minted@lang\minted@lang}{\value{FancyVerbLine}}%
+ \setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}%
+}
+\ifbool{minted@langlinenos}{}{%
+ \ifbool{minted@inputlanglinenos}{}{%
+ \let\minted@langlinenoson\relax
+ \let\minted@langlinenosoff\relax
+ }
+}
+\ifbool{minted@inputlanglinenos}%
+ {\def\minted@inputlanglinenoson{\minted@langlinenoson}%
+ \def\minted@inputlanglinenosoff{\minted@langlinenosoff}}%
+ {\let\minted@inputlanglinenoson\relax
+ \let\minted@inputlanglinenosoff\relax}
+\newcommand{\setminted}[2][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\setkeys{minted@opt@g}{#2}}%
+ {\minted@configlang{#1}%
+ \setkeys{minted@opt@lang}{#2}}}
+\newcommand{\setmintedinline}[2][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\setkeys{minted@opt@g@i}{#2}}%
+ {\minted@configlang{#1}%
+ \setkeys{minted@opt@lang@i}{#2}}}
+\setmintedinline[php]{startinline=true}
+\setminted{tabcolor=black}
+\setminted{stripnl=false}
+\newcommand{\usemintedstyle}[2][]{\setminted[#1]{style=#2}}
+\begingroup
+\catcode`\ =\active
+\catcode`\^^I=\active
+\gdef\minted@defwhitespace@retok{\def {\noexpand\FV@Space}\def^^I{\noexpand\FV@Tab}}%
+\endgroup
+\newcommand{\minted@writecmdcode}[1]{%
+ \immediate\openout\minted@code\minted@jobname.pyg\relax
+ \immediate\write\minted@code{\detokenize{#1}}%
+ \immediate\closeout\minted@code}
+\def\mintinline{%
+ \FVExtraRobustCommand\RobustMintInline\FVExtraUnexpandedReadStarOArgMArgBVArg}
+\FVExtrapdfstringdefDisableCommands{%
+ \def\RobustMintInline{}}
+\newrobustcmd{\RobustMintInline}[2][]{%
+ \ifbool{FVExtraRobustCommandExpanded}%
+ {\@ifnextchar\bgroup
+ {\FVExtraReadVArg{\RobustMintInlineProcess{#1}{#2}}}%
+ {\PackageError{minted}%
+ {Inline delimiters must be paired curly braces in this context}%
+ {Use curly braces as delimiters}}}%
+ {\FVExtraReadVArg{\RobustMintInlineProcess{#1}{#2}}}}
+\def\RobustMintInlineProcess#1#2#3{%
+ \begingroup
+ \setboolean{minted@isinline}{true}%
+ \minted@configlang{#2}%
+ \setkeys{minted@opt@cmd}{#1}%
+ \minted@fvset
+ \RobustMintInlineProcess@i{#3}}
+\ifthenelse{\boolean{minted@draft}}%
+ {\def\RobustMintInlineProcess@i#1{%
+ \fvset{extra=true}%
+ \Verb{#1}%
+ \endgroup}}%
+ {\def\RobustMintInlineProcess@i#1{%
+ \FVExtraDetokenizeVArg{%
+ \FVExtraRetokenizeVArg{\RobustMintInlineProcess@ii}{\FV@CatCodes}}{#1}}
+ \def\RobustMintInlineProcess@ii#1{%
+ \minted@writecmdcode{#1}%
+ \let\Verbatim\VerbEnv
+ \let\endVerbatim\endVerbEnv
+ \expandafter\minted@pygmentize\expandafter{\minted@lang}%
+ \endgroup}}
+\def\mint{%
+ \FVExtraRobustCommand\RobustMint\FVExtraUnexpandedReadStarOArgMArgBVArg}
+\FVExtrapdfstringdefDisableCommands{%
+ \def\RobustMint{}}
+\newrobustcmd{\RobustMint}[2][]{%
+ \ifbool{FVExtraRobustCommandExpanded}%
+ {\@ifnextchar\bgroup
+ {\FVExtraReadVArg{\RobustMintProcess{#1}{#2}}}%
+ {\PackageError{minted}%
+ {Delimiters must be paired curly braces in this context}%
+ {Use curly braces as delimiters}}}%
+ {\FVExtraReadVArg{\RobustMintProcess{#1}{#2}}}}
+\def\RobustMintProcess#1#2#3{%
+ \begingroup
+ \minted@configlang{#2}%
+ \setkeys{minted@opt@cmd}{#1}%
+ \minted@fvset
+ \RobustMintProcess@i{#3}}
+\begingroup
+\catcode`\^^M=\active%
+\catcode`\<=1%
+\catcode`\>=2%
+\catcode`\{=12%
+\catcode`\}=12%
+\catcode`\!=0%
+\catcode`\\=12%
+!ifthenelse<!boolean<minted@draft>>%
+ <!gdef!RobustMintProcess@i#1<%
+ !FVExtraDetokenizeVArg<%
+ !FVExtraRetokenizeVArg<!RobustMintProcess@ii><!FV@CatCodes>><#1>>%
+ !gdef!RobustMintProcess@ii#1<%
+ !minted@langlinenoson%
+ !scantokens<%
+ \begin{Verbatim}
+ #1
+ \end{Verbatim}
+ !noexpand>%
+ !minted@langlinenosoff%
+ !endgroup!@doendpe>>%
+ <!gdef!RobustMintProcess@i#1<%
+ !FVExtraDetokenizeVArg<%
+ !FVExtraRetokenizeVArg<!RobustMintProcess@ii><!FV@CatCodes>><#1>>%
+ !gdef!RobustMintProcess@ii#1<%
+ !minted@writecmdcode<#1>%
+ !minted@langlinenoson%
+ !expandafter!minted@pygmentize!expandafter<!minted@lang>%
+ !minted@langlinenosoff%
+ !endgroup!@doendpe>>%
+!endgroup
+\ifthenelse{\boolean{minted@draft}}%
+ {\newenvironment{minted}[2][]
+ {\VerbatimEnvironment
+ \minted@configlang{#2}%
+ \setkeys{minted@opt@cmd}{#1}%
+ \minted@fvset
+ \minted@langlinenoson
+ \begin{Verbatim}}%
+ {\end{Verbatim}%
+ \minted@langlinenosoff}}%
+ {\newenvironment{minted}[2][]
+ {\VerbatimEnvironment
+ \let\FVB@VerbatimOut\minted@FVB@VerbatimOut
+ \let\FVE@VerbatimOut\minted@FVE@VerbatimOut
+ \minted@configlang{#2}%
+ \setkeys{minted@opt@cmd}{#1}%
+ \minted@fvset
+ \begin{VerbatimOut}[codes={\catcode`\^^I=12},firstline,lastline]{\minted@jobname.pyg}}%
+ {\end{VerbatimOut}%
+ \minted@langlinenoson
+ \expandafter\minted@pygmentize\expandafter{\minted@lang}%
+ \minted@langlinenosoff}}
+\ifthenelse{\boolean{minted@draft}}%
+ {\newcommand{\inputminted}[3][]{%
+ \begingroup
+ \minted@configlang{#2}%
+ \setkeys{minted@opt@cmd}{#1}%
+ \minted@fvset
+ \minted@inputlanglinenoson
+ \VerbatimInput{#3}%
+ \minted@inputlanglinenosoff
+ \endgroup}}%
+ {\newcommand{\inputminted}[3][]{%
+ \begingroup
+ \minted@configlang{#2}%
+ \setkeys{minted@opt@cmd}{#1}%
+ \minted@fvset
+ \minted@inputlanglinenoson
+ \minted@pygmentize[#3]{#2}%
+ \minted@inputlanglinenosoff
+ \endgroup}}
+\newcommand{\newminted}[3][]{
+ \ifthenelse{\equal{#1}{}}
+ {\def\minted@envname{#2code}}
+ {\def\minted@envname{#1}}
+ \newenvironment{\minted@envname}
+ {\VerbatimEnvironment
+ \begin{minted}[#3]{#2}}
+ {\end{minted}}
+ \newenvironment{\minted@envname *}[1]
+ {\VerbatimEnvironment\begin{minted}[#3,##1]{#2}}
+ {\end{minted}}}
+\newcommand{\newmint}[3][]{%
+ \if\relax\detokenize{#1}\relax
+ \def\minted@shortname{#2}%
+ \else
+ \def\minted@shortname{#1}%
+ \fi
+ \expandafter\newmint@i\expandafter{\minted@shortname}{#2}{#3}}
+\def\newmint@i#1#2#3{%
+ \expandafter\newcommand\csname#1\endcsname{%
+ \expandafter\FVExtraRobustCommand\csname RobustNewMint#1\endcsname
+ \FVExtraUnexpandedReadStarOArgBVArg}%
+ \FVExtrapdfstringdefDisableCommands{%
+ \expandafter\def\csname RobustNewMint#1\endcsname{}}%
+ \expandafter\newrobustcmd\csname RobustNewMint#1\endcsname{%
+ \FVExtraReadOArgBeforeVArg{\csname RobustNewMint#1@i\endcsname}}%
+ \expandafter\def\csname RobustNewMint#1@i\endcsname##1{%
+ \ifbool{FVExtraRobustCommandExpanded}%
+ {\@ifnextchar\bgroup
+ {\FVExtraReadVArg{\csname RobustNewMint#1@ii\endcsname{##1}}}%
+ {\PackageError{minted}%
+ {Delimiters must be paired curly braces in this context}%
+ {Use curly braces as delimiters}}}%
+ {\FVExtraReadVArg{\csname RobustNewMint#1@ii\endcsname{##1}}}}
+ \expandafter\def\csname RobustNewMint#1@ii\endcsname##1##2{%
+ \RobustMintProcess{#3,##1}{#2}{##2}}}
+\newcommand{\newmintedfile}[3][]{
+ \ifthenelse{\equal{#1}{}}
+ {\def\minted@shortname{#2file}}
+ {\def\minted@shortname{#1}}
+ \expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
+ \inputminted[#3,##1]{#2}{##2}}}
+\newcommand{\newmintinline}[3][]{%
+ \if\relax\detokenize{#1}\relax
+ \def\minted@shortname{#2inline}%
+ \else
+ \def\minted@shortname{#1}%
+ \fi
+ \expandafter\newmintinline@i\expandafter{\minted@shortname}{#2}{#3}}
+\def\newmintinline@i#1#2#3{%
+ \expandafter\newcommand\csname#1\endcsname{%
+ \expandafter\FVExtraRobustCommand\csname RobustNewMintInline#1\endcsname
+ \FVExtraUnexpandedReadStarOArgBVArg}%
+ \FVExtrapdfstringdefDisableCommands{%
+ \expandafter\def\csname RobustNewMintInline#1\endcsname{}}%
+ \expandafter\newrobustcmd\csname RobustNewMintInline#1\endcsname{%
+ \FVExtraReadOArgBeforeVArg{\csname RobustNewMintInline#1@i\endcsname}}%
+ \expandafter\def\csname RobustNewMintInline#1@i\endcsname##1{%
+ \ifbool{FVExtraRobustCommandExpanded}%
+ {\@ifnextchar\bgroup
+ {\FVExtraReadVArg{\csname RobustNewMintInline#1@ii\endcsname{##1}}}%
+ {\PackageError{minted}%
+ {Inline delimiters must be paired curly braces in this context}%
+ {Use curly braces as delimiters}}}%
+ {\FVExtraReadVArg{\csname RobustNewMintInline#1@ii\endcsname{##1}}}}
+ \expandafter\def\csname RobustNewMintInline#1@ii\endcsname##1##2{%
+ \RobustMintInlineProcess{#3,##1}{#2}{##2}}}
+\ifthenelse{\boolean{minted@newfloat}}%
+ {\@ifundefined{minted@float@within}%
+ {\DeclareFloatingEnvironment[fileext=lol,placement=tbp]{listing}}%
+ {\def\minted@tmp#1{%
+ \DeclareFloatingEnvironment[fileext=lol,placement=tbp, within=#1]{listing}}%
+ \expandafter\minted@tmp\expandafter{\minted@float@within}}}%
+ {\@ifundefined{minted@float@within}%
+ {\newfloat{listing}{tbp}{lol}}%
+ {\newfloat{listing}{tbp}{lol}[\minted@float@within]}}
+\ifminted@newfloat\else
+\newcommand{\listingscaption}{Listing}
+\floatname{listing}{\listingscaption}
+\newcommand{\listoflistingscaption}{List of Listings}
+\providecommand{\listoflistings}{\listof{listing}{\listoflistingscaption}}
+\fi
+\AtEndOfPackage{%
+ \ifthenelse{\boolean{minted@draft}}%
+ {}%
+ {%
+ \ifthenelse{\boolean{minted@frozencache}}{}{%
+ \ifnum\pdf@shellescape=1\relax\else
+ \PackageError{minted}%
+ {You must invoke LaTeX with the
+ -shell-escape flag}%
+ {Pass the -shell-escape flag to LaTeX. Refer to the minted.sty
+ documentation for more information.}%
+ \fi}%
+ }%
+}
+\AtEndPreamble{%
+ \ifthenelse{\boolean{minted@draft}}%
+ {}%
+ {%
+ \ifthenelse{\boolean{minted@frozencache}}{}{%
+ \TestAppExists{\MintedPygmentize}%
+ \ifAppExists\else
+ \PackageError{minted}%
+ {You must have `pygmentize' installed
+ to use this package}%
+ {Refer to the installation instructions in the minted
+ documentation for more information.}%
+ \fi}%
+ }%
+}
+\AfterEndDocument{%
+ \ifthenelse{\boolean{minted@draft}}%
+ {}%
+ {\ifthenelse{\boolean{minted@frozencache}}%
+ {}
+ {\ifx\XeTeXinterchartoks\minted@undefined
+ \else
+ \DeleteFile[\minted@outputdir]{\minted@jobname.mintedcmd}%
+ \DeleteFile[\minted@outputdir]{\minted@jobname.mintedmd5}%
+ \fi
+ \DeleteFile[\minted@outputdir]{\minted@jobname.pyg}%
+ \DeleteFile[\minted@outputdir]{\minted@jobname.out.pyg}%
+ }%
+ }%
+}
+\endinput
+%%
+%% End of file `minted2.sty'.
diff --git a/macros/latex/contrib/minted/pygments-2.18.0-py3-none-any.whl b/macros/latex/contrib/minted/pygments-2.18.0-py3-none-any.whl
new file mode 100644
index 0000000000..e67ab03354
--- /dev/null
+++ b/macros/latex/contrib/minted/pygments-2.18.0-py3-none-any.whl
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/MIT-Thesis.pdf b/macros/latex/contrib/mitthesis/MIT-Thesis.pdf
index e7f9b4a01a..a007efaeea 100644
--- a/macros/latex/contrib/mitthesis/MIT-Thesis.pdf
+++ b/macros/latex/contrib/mitthesis/MIT-Thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex
index fc7e8a88f1..4449939a2c 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex
@@ -3,7 +3,7 @@
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.14, 2024/07/19
+% Version: 1.15, 2024/08/31
%
% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
@@ -17,12 +17,11 @@
lang = en-US,
% pdfversion = 2.0,
% pdfstandard = a-4,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[twoside]{mitthesis} %,fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[twoside]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
@@ -53,12 +52,21 @@
\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
-%\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
-% \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Can set graphicspath to point to specific directories containing figures (the current directory is searched automatically)
@@ -188,10 +196,10 @@
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
- \Acceptor{Primus Castor}{Professor of Wetlands Engineering}{}%{Undergraduate Officer, Department of Physics}
-% \Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are February, May, June, or September
@@ -239,7 +247,6 @@
% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
% when the page is too full.
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Make titlepage
@@ -250,9 +257,11 @@
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
-
%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
+
% The abstract environment creates all the required headings and footers.
% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
@@ -283,7 +292,7 @@
\appendix
\include{appendixa}
-
+\include{appendixb}
%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex
index a7914cb851..cb61cca430 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex
@@ -5,6 +5,10 @@
\chapter{Code listing}
+This example uses the \texttt{listings} package.
+
+\bigskip
+
\lstdefinestyle{mystyle}{
backgroundcolor=\color{CadetBlue!15!white},
commentstyle=\color{Red3},
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixb.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixb.tex
new file mode 100644
index 0000000000..1d9dd847c0
--- /dev/null
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixb.tex
@@ -0,0 +1,108 @@
+\chapter{One-term coefficients for heat conduction}
+
+\section{A multipage table of numbers}
+This example uses the \texttt{longtable} package: $\theta = A_1 f_1 \exp(-\lambda_1^2\mkern2mu\textrm{Fo})$, $\overline{\theta} = D_1 \exp(-\lambda_1^2\mkern2mu\textrm{Fo})$.
+
+
+{\footnotesize
+%\newcolumntype{d}[1]{D{.}{.}{#1}} % defined in root .tex file
+\renewcommand{\doublerulesep}{0pt}%
+\newcolumntype{X}{>{\hspace{1ex}}c@{\hspace{2ex}}c@{\hspace{2ex}}c<{\hspace{1ex}}}%
+
+\begin{longtable}{|||d{3.2}|X|X|X|||}
+
+\caption{One-term coefficients for one-dimensional heat conduction with a convective boundary condition. Data follow H. D. Baehr and K. Stephan~\cite{baehr1998}.}%
+
+\\
+\hline\hline\hline
+&&&&&&&&&\\[-7pt]
+& \multicolumn{3}{c|}{\textsf{\textit{Plate}}} & \multicolumn{3}{c|}{\textsf{\textit{Cylinder}}} & \multicolumn{3}{c|||}{\textsf{\textit{Sphere}}}
+\\
+\cline{2-10}
+\multicolumn{1}{|||c|}{\raisebox{1.5ex}[0cm][0cm]{Bi}}
+ & $\lambda_1$\rule[0pt]{0pt}{11pt} & $A_1$ & $D_1$ & $\lambda_1$ & $A_1$ & $D_1$ & $\lambda_1$ & $A_1$ & $D_1$
+\\
+\hline
+\endfirsthead
+\caption[]{(continued)} \\
+\hline\hline\hline
+&&&&&&&&&\\[-7pt]
+& \multicolumn{3}{c|}{\textsf{\textit{Plate}}} & \multicolumn{3}{c|}{\textsf{\textit{Cylinder}}} & \multicolumn{3}{c|||}{\textsf{\textit{Sphere}}}
+\\
+\cline{2-10}
+\multicolumn{1}{|||c|}{\raisebox{1.5ex}[0cm][0cm]{Bi}}
+ & $\lambda_1$\rule[0pt]{0pt}{11pt} & $A_1$ & $D_1$ & $\lambda_1$ & $A_1$ & $D_1$ & $\lambda_1$ & $A_1$ & $D_1$
+\\ \hline
+&&&&&&&&&\\[-1ex]
+\endhead
+\hline\hline\hline
+\endfoot
+\hline\hline\hline
+\endlastfoot
+0.01 & 0.09983 & 1.0017 & 1.0000 & 0.14124 & 1.0025 & 1.0000 & 0.17303 & 1.0030 & 1.0000\rule[0pt]{0pt}{15pt} \\
+0.02 & 0.14095 & 1.0033 & 1.0000 & 0.19950 & 1.0050 & 1.0000 & 0.24446 & 1.0060 & 1.0000 \\
+0.03 & 0.17234 & 1.0049 & 1.0000 & 0.24403 & 1.0075 & 1.0000 & 0.29910 & 1.0090 & 1.0000 \\
+0.04 & 0.19868 & 1.0066 & 1.0000 & 0.28143 & 1.0099 & 1.0000 & 0.34503 & 1.0120 & 1.0000 \\
+0.05 & 0.22176 & 1.0082 & 0.9999 & 0.31426 & 1.0124 & 0.9999 & 0.38537 & 1.0150 & 1.0000 \\
+0.06 & 0.24253 & 1.0098 & 0.9999 & 0.34383 & 1.0148 & 0.9999 & 0.42173 & 1.0179 & 0.9999 \\
+0.07 & 0.26153 & 1.0114 & 0.9999 & 0.37092 & 1.0173 & 0.9999 & 0.45506 & 1.0209 & 0.9999 \\
+0.08 & 0.27913 & 1.0130 & 0.9999 & 0.39603 & 1.0197 & 0.9999 & 0.48600 & 1.0239 & 0.9999 \\
+0.09 & 0.29557 & 1.0145 & 0.9998 & 0.41954 & 1.0222 & 0.9998 & 0.51497 & 1.0268 & 0.9999 \\
+0.10 & 0.31105 & 1.0161 & 0.9998 & 0.44168 & 1.0246 & 0.9998 & 0.54228 & 1.0298 & 0.9998 \\[6pt]
+%
+0.15 & 0.37788 & 1.0237 & 0.9995 & 0.53761 & 1.0365 & 0.9995 & 0.66086 & 1.0445 & 0.9996 \\*
+0.20 & 0.43284 & 1.0311 & 0.9992 & 0.61697 & 1.0483 & 0.9992 & 0.75931 & 1.0592 & 0.9993 \\
+0.25 & 0.48009 & 1.0382 & 0.9988 & 0.68559 & 1.0598 & 0.9988 & 0.84473 & 1.0737 & 0.9990 \\
+0.30 & 0.52179 & 1.0450 & 0.9983 & 0.74646 & 1.0712 & 0.9983 & 0.92079 & 1.0880 & 0.9985 \\
+0.40 & 0.59324 & 1.0580 & 0.9971 & 0.85158 & 1.0931 & 0.9970 & 1.05279 & 1.1164 & 0.9974 \\
+0.50 & 0.65327 & 1.0701 & 0.9956 & 0.94077 & 1.1143 & 0.9954 & 1.16556 & 1.1441 & 0.9960 \\
+0.60 & 0.70507 & 1.0814 & 0.9940 & 1.01844 & 1.1345 & 0.9936 & 1.26440 & 1.1713 & 0.9944 \\
+0.70 & 0.75056 & 1.0918 & 0.9922 & 1.08725 & 1.1539 & 0.9916 & 1.35252 & 1.1978 & 0.9925 \\
+0.80 & 0.79103 & 1.1016 & 0.9903 & 1.14897 & 1.1724 & 0.9893 & 1.43203 & 1.2236 & 0.9904 \\
+0.90 & 0.82740 & 1.1107 & 0.9882 & 1.20484 & 1.1902 & 0.9869 & 1.50442 & 1.2488 & 0.9880 \\[6pt]
+%
+1.00 & 0.86033 & 1.1191 & 0.9861 & 1.25578 & 1.2071 & 0.9843 & 1.57080 & 1.2732 & 0.9855 \\*
+1.10 & 0.89035 & 1.1270 & 0.9839 & 1.30251 & 1.2232 & 0.9815 & 1.63199 & 1.2970 & 0.9828 \\
+1.20 & 0.91785 & 1.1344 & 0.9817 & 1.34558 & 1.2387 & 0.9787 & 1.68868 & 1.3201 & 0.9800 \\
+1.30 & 0.94316 & 1.1412 & 0.9794 & 1.38543 & 1.2533 & 0.9757 & 1.74140 & 1.3424 & 0.9770 \\
+1.40 & 0.96655 & 1.1477 & 0.9771 & 1.42246 & 1.2673 & 0.9727 & 1.79058 & 1.3640 & 0.9739 \\
+1.50 & 0.98824 & 1.1537 & 0.9748 & 1.45695 & 1.2807 & 0.9696 & 1.83660 & 1.3850 & 0.9707 \\
+1.60 & 1.00842 & 1.1593 & 0.9726 & 1.48917 & 1.2934 & 0.9665 & 1.87976 & 1.4052 & 0.9674 \\
+1.70 & 1.02725 & 1.1645 & 0.9703 & 1.51936 & 1.3055 & 0.9633 & 1.92035 & 1.4247 & 0.9640 \\*
+1.80 & 1.04486 & 1.1695 & 0.9680 & 1.54769 & 1.3170 & 0.9601 & 1.95857 & 1.4436 & 0.9605 \\*
+1.90 & 1.06136 & 1.1741 & 0.9658 & 1.57434 & 1.3279 & 0.9569 & 1.99465 & 1.4618 & 0.9570 \\[6pt]
+%
+2.00 & 1.07687 & 1.1785 & 0.9635 & 1.59945 & 1.3384 & 0.9537 & 2.02876 & 1.4793 & 0.9534 \\*
+2.20 & 1.10524 & 1.1864 & 0.9592 & 1.64557 & 1.3578 & 0.9472 & 2.09166 & 1.5125 & 0.9462 \\
+2.40 & 1.13056 & 1.1934 & 0.9549 & 1.68691 & 1.3754 & 0.9408 & 2.14834 & 1.5433 & 0.9389 \\
+2.60 & 1.15330 & 1.1997 & 0.9509 & 1.72418 & 1.3914 & 0.9345 & 2.19967 & 1.5718 & 0.9316 \\
+2.80 & 1.17383 & 1.2052 & 0.9469 & 1.75794 & 1.4059 & 0.9284 & 2.24633 & 1.5982 & 0.9243 \\
+3.00 & 1.19246 & 1.2102 & 0.9431 & 1.78866 & 1.4191 & 0.9224 & 2.28893 & 1.6227 & 0.9171 \\
+3.50 & 1.23227 & 1.2206 & 0.9343 & 1.85449 & 1.4473 & 0.9081 & 2.38064 & 1.6761 & 0.8995 \\
+4.00 & 1.26459 & 1.2287 & 0.9264 & 1.90808 & 1.4698 & 0.8950 & 2.45564 & 1.7202 & 0.8830 \\*
+4.50 & 1.29134 & 1.2351 & 0.9193 & 1.95248 & 1.4880 & 0.8830 & 2.51795 & 1.7567 & 0.8675 \\*
+5.00 & 1.31384 & 1.2402 & 0.9130 & 1.98981 & 1.5029 & 0.8721 & 2.57043 & 1.7870 & 0.8533 \\[6pt]
+%
+6.00 & 1.34955 & 1.2479 & 0.9021 & 2.04901 & 1.5253 & 0.8532 & 2.65366 & 1.8338 & 0.8281 \\*
+7.00 & 1.37662 & 1.2532 & 0.8932 & 2.09373 & 1.5411 & 0.8375 & 2.71646 & 1.8673 & 0.8069 \\
+8.00 & 1.39782 & 1.2570 & 0.8858 & 2.12864 & 1.5526 & 0.8244 & 2.76536 & 1.8920 & 0.7889 \\
+9.00 & 1.41487 & 1.2598 & 0.8796 & 2.15661 & 1.5611 & 0.8133 & 2.80443 & 1.9106 & 0.7737 \\
+10.00 & 1.42887 & 1.2620 & 0.8743 & 2.17950 & 1.5677 & 0.8039 & 2.83630 & 1.9249 & 0.7607 \\
+12.00 & 1.45050 & 1.2650 & 0.8658 & 2.21468 & 1.5769 & 0.7887 & 2.88509 & 1.9450 & 0.7397 \\
+14.00 & 1.46643 & 1.2669 & 0.8592 & 2.24044 & 1.5828 & 0.7770 & 2.92060 & 1.9581 & 0.7236 \\
+16.00 & 1.47864 & 1.2683 & 0.8541 & 2.26008 & 1.5869 & 0.7678 & 2.94756 & 1.9670 & 0.7109 \\*
+18.00 & 1.48830 & 1.2692 & 0.8499 & 2.27556 & 1.5898 & 0.7603 & 2.96871 & 1.9734 & 0.7007 \\*
+20.00 & 1.49613 & 1.2699 & 0.8464 & 2.28805 & 1.5919 & 0.7542 & 2.98572 & 1.9781 & 0.6922 \\[6pt]
+%
+25.00 & 1.51045 & 1.2710 & 0.8400 & 2.31080 & 1.5954 & 0.7427 & 3.01656 & 1.9856 & 0.6766 \\*
+30.00 & 1.52017 & 1.2717 & 0.8355 & 2.32614 & 1.5973 & 0.7348 & 3.03724 & 1.9898 & 0.6658 \\
+35.00 & 1.52719 & 1.2721 & 0.8322 & 2.33719 & 1.5985 & 0.7290 & 3.05207 & 1.9924 & 0.6579 \\
+40.00 & 1.53250 & 1.2723 & 0.8296 & 2.34552 & 1.5993 & 0.7246 & 3.06321 & 1.9942 & 0.6519 \\
+50.00 & 1.54001 & 1.2727 & 0.8260 & 2.35724 & 1.6002 & 0.7183 & 3.07884 & 1.9962 & 0.6434 \\
+60.00 & 1.54505 & 1.2728 & 0.8235 & 2.36510 & 1.6007 & 0.7140 & 3.08928 & 1.9974 & 0.6376 \\
+80.00 & 1.55141 & 1.2730 & 0.8204 & 2.37496 & 1.6013 & 0.7085 & 3.10234 & 1.9985 & 0.6303 \\
+100.00 & 1.55525 & 1.2731 & 0.8185 & 2.38090 & 1.6015 & 0.7052 & 3.11019 & 1.9990 & 0.6259 \\*
+200.00 & 1.56298 & 1.2732 & 0.8146 & 2.39283 & 1.6019 & 0.6985 & 3.12589 & 1.9998 & 0.6170 \\*
+\infty & 1.57080 & 1.2732 & 0.8106 & 2.40483 & 1.6020 & 0.6917 & 3.14159 & 2.0000 & 0.6079 \\[3pt]
+\end{longtable}
+}
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/committee_members.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/committee_members.tex
new file mode 100644
index 0000000000..b09f276c8b
--- /dev/null
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/committee_members.tex
@@ -0,0 +1,69 @@
+% Sample thesis committee page for mitthesis.cls
+% Version 1.00, 2024/08/24
+%
+% This page is not required by the MIT Libraries, but some departments require it
+%
+% Insert between title page and abstract page.
+% Format this page in any way that you like.
+% Add supervisor titles, degrees, and departments as appropriate
+
+%%%%% FORMATTING COMMANDS %%%%%%%%%%%%%%%%%%
+
+%% Format title
+\NewDocumentCommand\CommitteePageTitle{m}{
+ \vspace*{75pt}%36pt}
+ \IfPackageLoadedTF{microtype}
+ {\textls*{\Large\textbf{\MakeUppercase{#1}}}}
+ {{\Large\textbf{\MakeUppercase{#1}}}}%
+ \pdfbookmark[0]{#1}{Committee}%
+ \vspace*{10pt}%
+}
+% \textls* produces additional letter separation (appropriate for capitalized display text),
+% PROVIDED THAT \usepackage{microtype} has been loaded in the preamble.
+% The extra space added is 100/1000 em (adjustable, see package documentation).
+
+%% Format committee member subheadings
+\NewDocumentCommand\Role{m}{
+ \vspace*{50pt}%25pt}
+ \IfPackageLoadedTF{microtype}
+ {\textls*{\large{\textsc{#1}}}}
+ {{\large\textsc{#1}}}%
+ \vspace*{12pt}%
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{flushright}
+
+\CommitteePageTitle{Thesis committee}
+
+\Role{Thesis Supervisor}
+
+ \textbf{Marcus Gavius Apicius} \\
+ {\itshape
+ Professor of Cooking Arts \\
+ Department of Food Science \\
+ }
+
+\Role{Thesis Readers}
+
+ \textbf{Marie-Antoine Carême} \\
+ {\itshape
+ Professor of Haute Cuisine \\
+ Department of Food Science \\[18pt]
+ }
+
+ \textbf{Julia Child}\\
+ {\itshape
+ Professor of French Cuisine \\
+ Department of Food Science \\[18pt]
+ }
+
+ \textbf{Magnus Dicen, Ph.D.} \\
+ {\itshape
+ Gloriosus Professor of Personal Pronouns \\
+ Department of Rhetoric \\
+ }
+
+\end{flushright}
+
+\cleardoublepage
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-defaultfonts.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-defaultfonts.tex
index 8795eb547e..bc7ba62c91 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-defaultfonts.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-defaultfonts.tex
@@ -1,16 +1,16 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-defaultfonts.tex}[2023/09/12 v1.03 Load Computer/Latin Modern text and math fonts]
+\ProvidesFile{mitthesis-defaultfonts.tex}[2024/06/28 v1.04 Load Computer/Latin Modern text and math fonts]
%% Default fonts
%
\ifpdftex
- \typeout{^^JLoading Computer Modern text and math fonts (default for pdftex).^^J}
+ \ClassNoteNoLine{\ClassName}{Loading Computer Modern text and math fonts (default for pdftex)}
\RequirePackage[T1]{fontenc}
\RequirePackage{bm}
\else
- \typeout{^^JLoading Latin Modern text and math fonts (default for unicode engines).^^J}
+ \ClassNoteNoLine{\ClassName}{Loading Latin Modern text and math fonts (default for unicode engines)}
%
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math.
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-fira-newtxsf.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-fira-newtxsf.tex
index 01fa981d78..ebba9ab190 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-fira-newtxsf.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-fira-newtxsf.tex
@@ -1,19 +1,19 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-fira-newtxsf.tex}[2023/09/12 v1.04 Load Fira Sans text font with newtx sans serif math font and Inconsolata typewriter font]
+\ProvidesFile{mitthesis-fira-newtxsf.tex}[2024/06/28 v1.05 Load Fira Sans text font with newtx sans serif math font and Inconsolata typewriter font]
%% Fira Sans text font with newtx sans serif math font and Inconsolata typewriter font
%
\ifpdftex
- \typeout{^^JLoading Fira sans text font with newtx sans serif math font and Inconsolata typewriter^^J}
+ \ClassNoteNoLine{\ClassName}{Loading Fira sans text font with newtx sans serif math font and Inconsolata typewriter}
\RequirePackage[sfdefault,scaled=0.90]{FiraSans} % sans serif text package %,scaled=.85
\RequirePackage[T1]{fontenc}
\RequirePackage[varqu,varl,scaled=1.05]{zi4} % inconsolata font for typewriter
\RequirePackage[scaled=1.05]{newtxsf} % sans serif math
\RequirePackage{bm}
\else
- \ClassWarning{mitnewthesis}{The fira-newtxsf font set requires pdflatex. Defaulting to LMR fonts}
+ \ClassWarning{\ClassName}{The fira-newtxsf font set requires pdflatex. Defaulting to LMR fonts}
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math.
% Unicode-math loads the fontspec package, but the default fonts are not selected by fontspec in this case.
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-heros-stix2.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-heros-stix2.tex
index 26ee2ab07b..1535771f11 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-heros-stix2.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-heros-stix2.tex
@@ -1,7 +1,7 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-heros-stix2.tex}[2023/09/12 v1.02 Load TeX Gyre Heros (sans serif) text font with STIX Two Math font and Inconsolata monospaced font]
+\ProvidesFile{mitthesis-heros-stix2.tex}[2024/06/28 v1.03 Load TeX Gyre Heros (sans serif) text font with STIX Two Math font and Inconsolata monospaced font]
%% TeX Gyre Heros (sans serif) text font with STIX Two Math font and Inconsolata monospaced font
%
@@ -12,11 +12,11 @@
% Install these as system fonts on your computer
%
\ifpdftex
- \ClassWarning{mitnewthesis}{The heros-stix2 fontset requires a unicode engine. Defaulting to CMR fonts.}
+ \ClassWarning{\ClassName}{The heros-stix2 fontset requires a unicode engine. Defaulting to CMR fonts}
\RequirePackage[T1]{fontenc}
\RequirePackage{bm}
\else
- \typeout{^^JTeX Gyre Heros (sans serif) text font with STIX2 math font and Inconsolata monospaced font.^^J}
+ \ClassNoteNoLine{\ClassName}{TeX Gyre Heros (sans serif) text font with STIX2 math font and Inconsolata monospaced font}
%
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-libertine.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-libertine.tex
index 57cf26f915..41b2f561df 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-libertine.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-libertine.tex
@@ -1,7 +1,7 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-libertine.tex}[2023/09/12 v1.02 Load Libertine and related fonts]
+\ProvidesFile{mitthesis-libertine.tex}[2024/06/28 v1.03 Load Libertine and related fonts]
%% Linux Libertine (serif) text font with newtxmath[libertine] (pdftex) or Libertinus (unicode) math font
%
@@ -10,7 +10,7 @@
% install these as system fonts on your computer
%
\ifpdftex
- \typeout{^^JLoading newtx-libertine text and math fonts with Insolata typewriter font^^J}
+ \ClassNoteNoLine{\ClassName}{Loading newtx-libertine text and math fonts with Insolata typewriter font}
\RequirePackage[lining,semibold]{libertine}
\RequirePackage[T1]{fontenc}
\RequirePackage[varqu,varl]{inconsolata}% typewriter
@@ -18,7 +18,7 @@
\RequirePackage[libertine,vvarbb]{newtxmath}
\RequirePackage{bm}% load after all math to give access to bold math
\else
- \typeout{^^JLoading Linux Libertine (serif) text font with Libertinus math font^^J}
+ \ClassNoteNoLine{\ClassName}{Loading Linux Libertine (serif) text font with Libertinus math font}
%
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-lucida.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-lucida.tex
index 6466c36929..e18c72fd92 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-lucida.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-lucida.tex
@@ -1,11 +1,11 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-lucida.tex}[2023/09/12 v1.02 Load Lucida fonts]
+\ProvidesFile{mitthesis-lucida.tex}[2024/06/28 v1.03 Load Lucida fonts]
%% Lucida Bright and Lucida Bright Math fonts (available from the TeX Users Group)
-\typeout{^^JLucida Bright and Lucida Bright Math fonts^^J}
+\ClassNoteNoLine{\ClassName}{Lucida Bright and Lucida Bright Math fonts}
\ifpdftex
\RequirePackage[LY1]{fontenc}
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx-sans-text.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx-sans-text.tex
index 03d62286e2..b76428f383 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx-sans-text.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx-sans-text.tex
@@ -1,11 +1,12 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-newtx-sans-text.tex}[2023/10/03 v1.03 Load newtx sans-serif text and regular math fonts]
+\ProvidesFile{mitthesis-newtx-sans-text.tex}[2024/06/68 v1.04 Load newtx sans-serif text and regular math fonts]
%% newtx package with sans-serif text (Helvetica-like text with Times-like math)
%
\ifpdftex
+ \ClassNoteNoLine{\ClassName}{Loading newtx sans-serif text and newtx serif math fonts}
\RequirePackage[T1]{fontenc}
\RequirePackage[subscriptcorrection,varvw,helvratio=0.91,defaultsups]{newtx}% upint for upright integrals
\AtEndPreamble{% added to accommodate v1.731 of newtx, 2023/11/03
@@ -17,7 +18,7 @@
% \DeclareFontFamily{\encodingdefault}{\ttdefault}{\hyphenchar\font=`\-} %
\RequirePackage{bm}% bold math
\else
- \ClassWarning{mitnewthesis}{The newtx font set requires pdflatex. Defaulting to LMR fonts}
+ \ClassWarning{\ClassName}{The newtx font set requires pdflatex. Defaulting to LMR fonts}
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math.
% Unicode-math loads the fontspec package, but the default fonts are not selected by fontspec in this case.
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx.tex
index cc43427055..b1541bbd05 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx.tex
@@ -1,17 +1,17 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-newtx.tex}[2023/09/12 v1.03 Load newtx text and math fonts]
+\ProvidesFile{mitthesis-newtx.tex}[2024/06/28 v1.04 Load newtx text and math fonts]
\ifpdftex
- \typeout{^^JLoading newtx fonts with inconsolata typewriter^^J}
+ \ClassNoteNoLine{\ClassName}{Loading newtx fonts with inconsolata typewriter}
\RequirePackage[T1]{fontenc}
\RequirePackage[subscriptcorrection,varvw,helvratio=0.91]{newtx}% stix2, upint
\RequirePackage[varl,varqu,hyphenate,mono]{inconsolata}% sans typewriter font; mono = fixed word spacing, hyphenate = allow hyphenation
\RequirePackage{bm}
\let\textsuperscript\textsu% newtx changes the default superiors font; this is needed to get commas aligned in sequential footnotes
\else
- \ClassWarning{mitnewthesis}{The newtx font set requires pdflatex. Defaulting to LMR fonts}
+ \ClassWarning{\ClassName}{The newtx font set requires pdflatex. Defaulting to LMR fonts}
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math.
% Unicode-math loads the fontspec package, but the default fonts are not selected by fontspec in this case.
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-stix2.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-stix2.tex
index de3983fe4e..c178ff233f 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-stix2.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-stix2.tex
@@ -1,7 +1,7 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-stix2.tex}[2023/09/12 v1.03 Load STIX Two text and math fonts]
+\ProvidesFile{mitthesis-stix2.tex}[2024/06/28 v1.04 Load STIX Two text and math fonts]
%% STIX Two text and math fonts with Heros sans serif font and Inconsolata monospaced font
%
@@ -12,11 +12,11 @@
% Install these as system fonts on your computer
%
\ifpdftex
- \ClassWarning{mitnewthesis}{The stix2 fontset requires a unicode engine. Defaulting to CMR fonts.}
+ \ClassWarning{\ClassName}{The stix2 fontset requires a unicode engine. Defaulting to CMR fonts.}
\RequirePackage[T1]{fontenc}
\RequirePackage{bm}
\else
- \typeout{^^JLoading STIX Two text and math fonts with Heros sans serif font and Inconsolata monospaced font.^^J}
+ \ClassNoteNoLine{\ClassName}{Loading STIX Two text and math fonts with Heros sans serif font and Inconsolata monospaced font}
%
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes-stix2.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes-stix2.tex
index 1e65724cc0..ed2abc1655 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes-stix2.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes-stix2.tex
@@ -1,7 +1,7 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-termes-stix2.tex}[2023/09/12 v1.03 Load TeX Gyre Termes text font with STIX2 math font, Heros sans serif font, and Inconsolata monospaced font]
+\ProvidesFile{mitthesis-termes-stix2.tex}[2024/10/28 v1.04 Load TeX Gyre Termes text font with STIX2 math font, Heros sans serif font, and Inconsolata monospaced font]
%% TeX Gyre Termes text font and Heros sans serif font with STIX2 math font and Inconsolata monospaced font
%
@@ -12,11 +12,11 @@
% Install these as system fonts on your computer
%
\ifpdftex
- \ClassWarning{mitnewthesis}{The termes-stix2 fontset requires a unicode engine. Defaulting to CMR fonts.}
+ \ClassWarning{\ClassName}{The termes-stix2 fontset requires a unicode engine. Defaulting to CMR fonts.}
\RequirePackage[T1]{fontenc}
\RequirePackage{bm}
\else
- \typeout{^^JLoading TeX Gyre Termes text font with STIX2 math font, Heros sans serif font, and Inconsolata monospaced font.^^J}
+ \ClassNoteNoLine{\ClassName}{Loading TeX Gyre Termes text font with STIX2 math font, Heros sans serif font, and Inconsolata monospaced font}
%
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes.tex
index 64fffb9264..fd1e15bab8 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes.tex
@@ -1,7 +1,7 @@
% From mitthesis package
% Documentation: https://ctan.org/pkg/mitthesis
-\ProvidesFile{mitthesis-termes.tex}[2023/09/12 v1.03 Load TeX Gyre Termes text and math fonts, Heros sans serif font, and Cursor monospaced font]
+\ProvidesFile{mitthesis-termes.tex}[2024/06/28 v1.04 Load TeX Gyre Termes text and math fonts, Heros sans serif font, and Cursor monospaced font]
%% TeX Gyre Termes (Times-like) text font with Termes math font and Heros sans serif font and Cursor monospaced font
%
@@ -9,11 +9,11 @@
% install these as system fonts on your computer
%
\ifpdftex
- \ClassWarning{mitnewthesis}{The termes fontset requires a unicode engine. Defaulting to CMR fonts.}
+ \ClassWarning{\ClassName}{The termes fontset requires a unicode engine. Defaulting to CMR fonts.}
\RequirePackage[T1]{fontenc}
\RequirePackage{bm}
\else
- \typeout{^^JLoading TeX Gyre Termes text and math fonts, Heros sans serif font, and Cursor monospaced font^^J}
+ \ClassNoteNoLine{\ClassName}{Loading TeX Gyre Termes text and math fonts, Heros sans serif font, and Cursor monospaced font}
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
% suppress tiresome warnings about lack of integration between mathtools and unicode-math
% unicode-math loads the fontspec package
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/mitthesis-sample.bib b/macros/latex/contrib/mitthesis/MIT-thesis-template/mitthesis-sample.bib
index 1131bed50d..98ba37532e 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/mitthesis-sample.bib
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/mitthesis-sample.bib
@@ -1,6 +1,6 @@
%% Sample bibliography file for mitthesis.cls
%%
-%% Revised: 12 September 2023
+%% Revised: 01 August 2024
%% Copyright John H. Lienhard, MIT
%% Offered under the MIT license: https://ctan.org/license/mit
@@ -322,4 +322,14 @@
address = {San Francisco, CA},
month = sep,
}
+
+@book{baehr1998,
+ author ={H. D. Baehr and K. Stephan},
+ title = {Heat and Mass Transfer},
+ publisher = {Springer-Verlag},
+ address = {Berlin},
+ year = {1998},
+ isbn = {3-540-63695-1},
+}
+
\ No newline at end of file
diff --git a/macros/latex/contrib/mitthesis/README.md b/macros/latex/contrib/mitthesis/README.md
index 9d2918ca36..3a30748862 100644
--- a/macros/latex/contrib/mitthesis/README.md
+++ b/macros/latex/contrib/mitthesis/README.md
@@ -1,7 +1,7 @@
#mitthesis --- A LaTeX template for an MIT thesis#
- v1.14 dated 2024/07/19
+ v1.16 dated 2024/09/06
####Overview####
This class provides a LaTeX template to format an MIT thesis according to
@@ -26,8 +26,10 @@
abstract.tex -- put your abstract in this file
acknowledgments.tex -- put your acknowledgments in this file
biosketch.tex -- put your biosketch in this file (optional)
- chapter1.tex -- put your first chapter in this file (etc.)
- appendixa.tex -- put your first appendix in this file (etc.)
+ chapter1.tex -- sample first chapter
+ committee_members.tex -- sample thesis committee members page (optional)
+ appendixa.tex -- sample appendix with code listing
+ appendixb.tex -- sample appendix with multipage table
mitthesis-sample.bib -- a sample bibliography file with many examples
mydesign.tex -- an optional file to load packages for document design
fontsets/ -- a subdirectory of input files that load optional fonts
@@ -53,8 +55,21 @@
---
####Change log####
+
+ v1.16 (06 September 2024)
+ - Same as v1.15, but now with the correct version of MIT-Thesis.tex
+
+ v1.15 (31 August 2024)
+ - add an example for the longtable package (App. B)
+ - add sample Thesis Committee page (optional)
+ - load microtype package, enable tracking for capitalized strings (degree name[s], institution name)
+ - fix typo in MIT-Thesis.tex
+ - edit documentation
+ - edit pdfauthor string to separator authors with semicolon, not comma (per Dublin Core recommendation)
+ - define \\@author and \\@title in case needed
+
v1.14 (19 July 2024)
- - add backward compatibility code for \\text_titlecase_all:n
+ - add backward compatibility code for \\text\_titlecase\_all:n
- adjust supervisor and acceptor titles used on sample cover pages
- format J/psi as \\symbfit in sample chapter 1 and regenerate font samples
- edit documentation
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf
index 97243bde84..ef50423842 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf
index cc3e40ce75..ab8796fe83 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf
index c09afd43ee..888046a1d8 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf
index 418bf7e8d3..ab8fa1531f 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf
index 43081a36f0..e81c210952 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf
index d21ca4d057..5bd3928957 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf
index 45952c0c52..2ccbde4b1d 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf
index 0792ee30f9..d13e8a05c4 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Termes-stix2.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Termes-stix2.pdf
index 80b8e07d10..5601e9541a 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Termes-stix2.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Termes-stix2.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf
index 90dfd3ab31..0451bdf880 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex
index b6480ef952..33fa1e5d3a 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex
@@ -1,12 +1,12 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
+% !BIB program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +16,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +41,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +81,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +112,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +125,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +151,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +177,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +191,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +217,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -257,6 +308,7 @@
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex
index f2c8ed1158..c574f2bf8c 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex
@@ -1,12 +1,12 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
+% !BIB program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +16,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=fira-newtxsf]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=fira-newtxsf]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +41,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +81,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +112,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +125,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +151,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +177,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +191,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +217,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
+
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
-
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
-
+\include{appendixa}
+\include{appendixb}
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -252,8 +303,12 @@
\printbibliography[title={\refname},heading=bibintoc]
+% biblatex also supports chapter-by-chapter bibliography, https://tex.stackexchange.com/a/296502/119566
+% see the biblatex manual, section 3.14.3
+
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex
index 7e914bfa38..8d39d55b8a 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex
@@ -1,12 +1,12 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
+% !BIB program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +16,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=heros-stix2]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=heros-stix2]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +41,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +81,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
+
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +112,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +125,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +151,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +177,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +191,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,67 +217,98 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
% change "backmatter" to "chapter" if you prefer a bold face entry in the table of contents
-{ \raggedright% to avoid stretched white space and split urls; DELETE THIS if you prefer justified text
-%
\printbibliography[title={\refname},heading=bibintoc]
-}
+
% biblatex also supports chapter-by-chapter bibliography, https://tex.stackexchange.com/a/296502/119566
% see the biblatex manual, section 3.14.3
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex
index 9198d8a489..eb0798989e 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex
@@ -1,12 +1,12 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
+% !BIB program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +16,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=libertine]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=libertine]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +41,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +81,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +112,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +125,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +151,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +177,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +191,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +217,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -257,6 +308,7 @@
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex
index 3fd445d4ff..9c7284cd7c 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex
@@ -1,12 +1,12 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
+% !BIB program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +16,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=lucida]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=lucida]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +41,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +81,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +112,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +125,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +151,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +177,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +191,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +217,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -257,6 +308,7 @@
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex
index 9729118c30..11edff3cdc 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex
@@ -1,12 +1,12 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
+% !BIB program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +16,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=newtx-sans-text]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=newtx-sans-text]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +41,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +81,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +112,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +125,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +151,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +177,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +191,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +217,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
+
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
-
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
-
+\include{appendixa}
+\include{appendixb}
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -252,8 +303,12 @@
\printbibliography[title={\refname},heading=bibintoc]
+% biblatex also supports chapter-by-chapter bibliography, https://tex.stackexchange.com/a/296502/119566
+% see the biblatex manual, section 3.14.3
+
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex
index e2cebe98ac..d755977cb5 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex
@@ -1,12 +1,11 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +15,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=newtx]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=newtx]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +40,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +80,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +111,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +124,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +150,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +176,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +190,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +216,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -257,6 +307,7 @@
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/README_font_sample_sources.txt b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/README_font_sample_sources.txt
index beacdde0a3..18b95f79ec 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/README_font_sample_sources.txt
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/README_font_sample_sources.txt
@@ -6,11 +6,16 @@ These font sample files call the following additional files as inputs:
abstract.tex
acknowledgments.tex
appendixa.tex
+appendixb.tex
biography.tex
chapter1.tex
+committee_members.tex
mitthesis-sample.bib
mydesign.tex
All of those files are in the directory mitthesis/MIT-thesis-template.
You should also copy the fontsets directory (and mitthesis.cls) into this folder.
+
+Run as % ./compile-font-samples.sh
+
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex
index 6fe4965432..aabac07cda 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex
@@ -1,12 +1,12 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
+% !BIB program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +16,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=stix2]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=stix2]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +41,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +81,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +112,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +125,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +151,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +177,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +191,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +217,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -257,6 +308,7 @@
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-stix2.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-stix2.tex
index 3bbf3c8333..3b17a9c4cd 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-stix2.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-stix2.tex
@@ -1,12 +1,11 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +15,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=termes-stix2]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=termes-stix2]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +40,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +80,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +111,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +124,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +150,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +176,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +190,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +216,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -257,6 +307,7 @@
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex
index 92a905fe99..6733f96f13 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex
@@ -1,12 +1,11 @@
% !TEX encoding = UTF-8 Unicode
-% !BIB TS-program = biber
-% !BIB program = biber
+% !BIB TS-program = biber
% This file is MIT-Thesis.tex, a LaTeX template for formatting an MIT thesis with the mitthesis class.
%
-% Version: 1.06, 2023/08/28
+% Version: 1.15, 2024/08/31
%
-% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
+% Author: John H. Lienhard, copyright 2024. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation is here: https://ctan.org/pkg/mitthesis
@@ -16,19 +15,21 @@
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
-% debug = {xmp-export}, % uncomment to output a separate xmpi file showing the metadata
+% pdfversion = 2.0,
+% pdfstandard = a-4,
}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[fontset=termes]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
+\documentclass[fontset=termes]{mitthesis}% fontset=newtx, fontset=libertine, fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting twoside will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
% option [mydesign] loads packages for color, title and list formats, margins, or captions: edit mydesign.tex to change defaults.
% option [fontset] is a keyvalue which can be:
-% pdftex or unicode engines: defaultfonts, libertine, lucida
-% pdftex only: fira-newtxsf, newtx, newtx-sans-text
-% unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
+% for pdftex or unicode engines: defaultfonts, libertine, lucida
+% for pdftex only: fira-newtxsf, newtx, newtx-sans-text
+% for unicode engines (luatex): heros-stix2, stix2, termes, termes-stix2
% if no key value is given, fonts default to CMR (pdftex) or LMR (unicode), i.e., "the LaTeX font".
% You can edit the fontset files or you can write your own, myfonts.tex, and do [fontset=myfonts].
% If you are using multiple languages, load the babel package in your fontset file, before the fonts.
@@ -39,12 +40,32 @@
\usepackage{listings}% documentation is here https://ctan.org/pkg/listings
%% Set chemical formulas nicely
-\usepackage[version=4]{mhchem}% documentation is here https://ctan.org/pkg/mhchem
+\usepackage[version=4]{mhchem}% documentation at https://ctan.org/pkg/mhchem
-%% Latin filler used in Chapter 1, with a test for package version date. https://ctan.org/pkg/lipsum
+%% Latin filler used in Chapter 1, with a test for package version date (https://ctan.org/pkg/lipsum)
\usepackage{lipsum}
\IfPackageAtLeastTF{lipsum}{2021/09/20}{\setlipsum{auto-lang=false}}{}
+%% Table related packages
+
+\usepackage{booktabs}% publication quality tables (https://ctan.org/pkg/booktabs)
+
+\usepackage{array}% Additional options for column formats (https://ctan.org/pkg/array)
+
+\usepackage{dcolumn}% For alignment of numbers on the decimal place (https://ctan.org/pkg/dcolumn)
+ \newcolumntype{d}[1]{D{.}{.}{#1}}% use with dcolumn package
+ % syntax: d{x.y} where x is max number of digits before decimal and y is max number after.
+
+% Package for multipage table in Appendix B.
+\usepackage{longtable}% typeset multi-page tables (https://ctan.org/pkg/longtable)
+
+%\usepackage{tabularx}% adjustable-width columns in tabular (https://ctan.org/pkg/tabularx)
+
+
+%% Package for improved typography
+
+\usepackage{microtype}% typographic fine-tuning, used in sample thesis committee page, but also acting globally on the text
+
%%%%%%%%% Graphics path (to figure files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,16 +80,26 @@
%% Numerical citations of references
\usepackage[style=ext-numeric-comp,giveninits=true,maxbibnames=10,sorting=none]{biblatex}
+%% IEEE style citations and references
+% \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}% style=ext-numeric-comp,articlein=false,giveninits=true
+% \DefineBibliographyStrings{english}{url= \textsc{url} , }% replaces the IEEE default "[Online]. Available" by "URL"
-\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <================= CHANGE
+%% author-year style citations and references
+%% use \parencite, not \cite, when you want "(Author, year)"
+%% The sample files are not set up to include parentheses.
+% \usepackage[style=authoryear, maxbibnames=10]{biblatex}
-%% These two commands enable line breaks in long URLs in the bibliography (delete if you don't want that)
-\setcounter{biburllcpenalty}{7000}
-\setcounter{biburlucpenalty}{8000}
-% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
-% documentation is here: https://ctan.org/pkg/biblatex
+\addbibresource{mitthesis-sample.bib}%% <== change to YOUR bib file <= CHANGE
+%% to avoid split urls and stretched white space, you can set the bibliography ragged-right:
+%\appto{\bibsetup}{\raggedright}
+
+%% biblatex is very powerful, and you can customize most aspects the reference list and citations to suit your needs.
+%% documentation is here: https://ctan.org/pkg/biblatex
+%% cheat sheet is here: https://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf
+
+%% To ensure citations are set, run Latex --> biblatex/biber --> Latex again
%%%%%%%%%% Option to use natbib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -80,19 +111,9 @@
%%% You can use this to rename the bibliography section
%\renewcommand{\bibname}{References}
-%%% Can adjust space between bibliography items (change 4pt to something else; don't drop last two lengths, they are stretchable "glue")
+%%% To adjust space between bibliography items
%\setlength\bibsep{4pt plus 1pt minus 1pt}
-
-
-%%%%%%%%%% Table related packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs}% better quality tables, https://ctan.org/pkg/booktabs
-\usepackage{array}% additional options for table columns, https://ctan.org/pkg/array
-
-%\usepackage{tabularx}% https://ctan.org/pkg/tabularx
-
-%\usepackage{dcolumn}% alignment on decimal place, https://ctan.org/pkg/dcolumn
-%\newcolumntype{d}[1]{D{.}{.}{#1}}
+% change 4pt to something else; don't drop last two lengths (they are stretchable "glue")
%%%%%%%%%% Option for "double spacing" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,18 +124,18 @@
%% to change the line separation, the most attractive results will be obtained by changing the
%% leading in proportion to the the current font size, rather than just doubling the space.
-%% The setspace package provides a tool for changing line separation (use thesetwo here)
+%% The setspace package provides a tool for changing line separation. Use these two commands here:
%
% \usepackage{setspace}% documentation at https://ctan.org/pkg/setspace
% \setstretch{1.1}% you can choose some other value for the stretch of space between lines
%
-%% Use the these commands AFTER the frontmatter
+%% Use one or more of the these commands *AFTER* the frontmatter
%
% \onehalfspacing
% \doublespacing
% \singlespacing % will turn these effects off (you can use these anywhere in the document)
-%% The best result may be to stay with leading selected by the typographer who set up the font.
+%% The best result is usually to stay with leading selected by the typographer who set up the font.
%%%%%%%%%%% Metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,7 +150,7 @@
pdfkeywords={Massachusetts Institute of Technology, MIT},
% Add keywords that will help search engines and libraries to find your work.
% Includes the name[s] of the author[s]
- % (If you have used \DocumentMetadata, at line 15, you can just put "\CopyrightAuthor," for the names.)
+ % (If you used \DocumentMetadata at line 14, you can just put "\CopyrightAuthor," for the names.)
%
pdfurl={},
% If you have a url for the thesis, put it here. Otherwise delete this.
@@ -155,11 +176,11 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
+% note on names: most of the following names are made up; Silas Holman was a physics professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
-%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
-%\Author{Thurston Howell III}{Department of Economics}
+\Author{Silas W. Holman}{Department of Physics}
+% \Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+% \Author{Thurston Howell III}{Department of Economics}[MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
% For two degrees from one department, leave the department argument blank for the second degree {}.
@@ -169,22 +190,19 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Professor of Research}
-%\Supervisor{Quintus Castor}{Professor of Log Dams}
+% \Supervisor{Edward C. Pickering}{Professor of Physics, and \\ \> Professor of Something Else}
+% \Supervisor{Secunda Castor}{Professor of Research}
+% \Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-% **If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.**
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
-%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
-
-% If your title page is overflowing (from too many names, degrees, etc.), you can scale
-% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research} % \\ \> Third title}
+% \Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
+%%% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank, {}.
+% \Acceptor{Primus Castor}{Professor and Undergraduate Officer, Department of Physics}{}
% Usage: \DegreeDate{Month}{year}
-% Valid degree months are September, February, or June.
+% Valid degree months are February, May, June, or September
\DegreeDate{June}{1876}
% Date that final thesis is submitted to department
@@ -198,53 +216,85 @@
%
\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
%
+
+%%%%%%% Solutions for overflowing titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If your title page is overflowing (from too many names, degrees, etc.):
+%
+% (a) you can reduce the 12pt and 18pt skips between various blocks to 6pt with this command:
+%
+% \Tighten
+%
+% (b) you can scale down the Signature block at the bottom with this command:
+%
+% \SignatureBlockSize{\small} %or this one \SignatureBlockSize{\footnotesize}
+%
+% (c) you can put the acceptor name and title onto two lines, rather than three like this:
+%
+% \Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}
+%
+% (d) you can change the font size of the author name[s] with
+%
+% \AuthorNameSize{\normalsize}
+%
+% (e) and you can omit any previous degrees from the title page, instead mentioning them in the biographical sketch
+
+% Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
+% can use this command to squash all of the vertical glue (stretchy space) with this command:
+%
+% \Squash
+%
+% This command is useful when the text has not already reach the bottom of the page, since the glue gets squashed automatically
+% when the page is too full.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Titlepage
+%%% Make titlepage
\maketitle
-%%%%%%%%% Contents that you need to write follows %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Contents that you need to write follows! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includeonly{acknowledgments,biography,chapter1,chapter2,...,appendixa,...}
-% for usage, see https://latexref.xyz/dev/latex2e.html#g_t_005cinclude-_0026-_005cincludeonly
+% for usage of includeonly, see https://latexref.xyz/_005cinclude-_0026-_005cincludeonly.html
+
+%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Frontmatter (write this material in the mentioned files) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This page is optional. Edit the file committee_members.tex
+\include{committee_members}
-% The abstract environment creates all the required headers and footnote.
-% You only need to add the text of the abstract itself in the file abstract.tex
+% The abstract environment creates all the required headings and footers.
+% You only need to the text of the abstract in the file abstract.tex
\begin{abstract}
- \input{abstract.tex}% in this case, use \input rather than \include because you are inside an environment
+ \input{abstract.tex}% use \input rather than \include because we're inside an environment
\end{abstract}
-\include{acknowledgments.tex}
+\include{acknowledgments}% acknowledgments.tex (.tex extension is presumed by \include)
-\include{biography.tex}% optional, see MIT Libraries https://libraries.mit.edu/distinctive-collections/thesis-specs/#format
+\include{biography}% biography.tex (optional, see https://libraries.mit.edu/distinctive-collections/thesis-specs/#format)
-
-%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
+%%% Table of contents and lists of stuff (delete unused lists, i.e., if no tables or figures) %%%%%
\tableofcontents
\listoffigures
\listoftables
-
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% If you want to use "double spacing", you can start here...
+%% If you want to use "double spacing", you should start here...
-\include{chapter1.tex}
-%\include{chapter2.tex}
-%\include{chapter3.tex}
-%\include{chapter4.tex}
+ \include{chapter1}% .tex extension is presumed
+% \include{chapter2}
+%\include{chapter3}
+%\include{chapter4}
%%% Appendicies of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
-\include{appendixa.tex}
+\include{appendixa}
+\include{appendixb}
-
-%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Bibliography (biblatex) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defbibheading{bibintoc}{\chapter*{#1}\addcontentsline{toc}{backmatter}{\refname}}
% this sets the title of contents name for bibliography to \refname (= References)
@@ -257,6 +307,7 @@
%%%% Option for natbib %%%%%%%%%%%%%
+
%% use an appropriate style (.bst) and your own .bib file[s]
%\bibliographystyle{plainnat}
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/compile-font-samples.sh b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/compile-font-samples.sh
index fdb19c1f4f..16b0d5bc48 100755
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/compile-font-samples.sh
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/compile-font-samples.sh
@@ -1,60 +1,67 @@
#! /bin/bash
-# first run
-
+# Default fonts
+pdflatex Defaultfonts
+biber Defaultfonts
pdflatex Defaultfonts
-pdflatex Fira_Newtxsf
-pdflatex Libertine
-pdflatex Lucida
-pdflatex Newtx-sans-text
-pdflatex Newtx
-
-lualatex Heros-Stix2
-lualatex Stix2
-lualatex Termes-stix2
-lualatex Termes
-
-# biber
-
-biber Defaultfonts
-biber Fira_Newtxsf
-biber Libertine
-biber Lucida
-biber Newtx-sans-text
-biber Newtx
-biber Heros-Stix2
-biber Stix2
-biber Termes-stix2
-biber Termes
-
-# second run
-
pdflatex Defaultfonts
+
+# Fira_Newtxsf
+pdflatex Fira_Newtxsf
+biber Fira_Newtxsf
pdflatex Fira_Newtxsf
+pdflatex Fira_Newtxsf
+
+# Libertine
+pdflatex Libertine
+biber Libertine
pdflatex Libertine
+pdflatex Libertine
+
+# Lucida
+pdflatex Lucida
+biber Lucida
+pdflatex Lucida
pdflatex Lucida
+
+# Newtx-sans-text
+pdflatex Newtx-sans-text
+biber Newtx-sans-text
+pdflatex Newtx-sans-text
pdflatex Newtx-sans-text
+
+# Newtx
+pdflatex Newtx
+biber Newtx
+pdflatex Newtx
pdflatex Newtx
+# Heros-Stix2
+lualatex Heros-Stix2
+biber Heros-Stix2
lualatex Heros-Stix2
+lualatex Heros-Stix2
+
+# Stix2
+lualatex Stix2
+biber Stix2
lualatex Stix2
+lualatex Stix2
+
+# Termes-stix2
+lualatex Termes-stix2
+biber Termes-stix2
+lualatex Termes-stix2
lualatex Termes-stix2
-lualatex Termes
-# third run
-pdflatex Defaultfonts
-pdflatex Fira_Newtxsf
-pdflatex Libertine
-pdflatex Lucida
-pdflatex Newtx-sans-text
-pdflatex Newtx
-
-lualatex Heros-Stix2
-lualatex Stix2
-lualatex Termes-stix2
+# Termes
+lualatex Termes
+biber Termes
+lualatex Termes
lualatex Termes
+
# clean up
mkdir pdffiles
@@ -68,5 +75,3 @@ rm *.lot
rm *.lof
rm *.toc
rm *.xml
-
-
diff --git a/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf b/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf
index ab61cf59e5..69af5643ce 100644
--- a/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf
+++ b/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex b/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex
index 4e5e739585..dc0dd3ed8a 100644
--- a/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex
+++ b/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex
@@ -1,14 +1,14 @@
% !TEX TS-program = lualatex
% !TEX encoding = UTF-8 Unicode
-% Version date: 19 July 2024
+% Version date: 31 August 2024
\DocumentMetadata
{
pdfstandard = a-4,
pdfversion = 2.0,
-% testphase = {phase-III, table, firstaid, math},
lang = en-US,
+% testphase = {phase-III, table, firstaid, math, title},
% debug = {xmp-export}, % note that subject entries are all fine in dc format of outputted xmpi file.
}
@@ -17,9 +17,10 @@
\documentclass[11pt]{article}
\usepackage[letterpaper,margin=1in,footskip=0.5in]{geometry}
-\usepackage{metalogo}
+
\usepackage{hologo}
\newcommand*\pdfTeX{\hologo{pdfTeX}}
+\newcommand*\LuaLaTeX{\hologo{LuaLaTeX}}
\usepackage[x11names,svgnames,dvipsnames,table]{xcolor}
\usepackage{luacolor} % load AFTER xcolor
@@ -84,13 +85,11 @@
\usepackage[psdextra]{hyperref}
-\hypersetup{%
- unicode,%
-% pdftex,%
- pdfborder={0 0 0},%
- bookmarksnumbered=true,%
- bookmarksopen=true,%
- bookmarksopenlevel=2,%
+\hypersetup{
+ pdfborder={0 0 0},
+ bookmarksnumbered=true,
+ bookmarksopen=true,
+ bookmarksopenlevel=2,
colorlinks=true,
linkcolor=blue,
citecolor=blue,
@@ -99,15 +98,15 @@
anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
pdfpagelayout=SinglePage,
- pdfdisplaydoctitle=true,%
+ pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfmetalang={en},
- pdftitle={Documentation for the MIT thesis template},%
- pdfkeywords={John Lienhard, Massachusetts Institute of Technology, MIT, thesis, dissertation, template, latex},%
- pdfnewwindow=true,%
+ pdftitle={Documentation for the MIT thesis template},
+ pdfkeywords={John Lienhard, Massachusetts Institute of Technology, MIT, thesis, dissertation, template, latex},
+ pdfnewwindow=true,
pdfauthor={John H. Lienhard},
pdfauthortitle={Professor of Mechanical Engineering},
- pdfcaptionwriter={{John H. Lienhard, V}}, %{\xmpquote{John H. Lienhard\xmpcomma\ V}},
+ pdfcaptionwriter={{John H. Lienhard, V}},
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -126,10 +125,7 @@
\cs_if_exist:NTF \pdfmeta_xmp_add:n {\pdfmeta_xmp_add:n{<xmpRights:Marked>True</xmpRights:Marked>}}{}
\ExplSyntaxOff
-\urlstyle{same} % this changes font for \url to the current text font, but it is not recognized by \href.
-
-%\RequirePackage{bookmark}% improves handling of pdf bookmarks
-%\providecommand\hrefurl[2]{\href{#1}{#2}}% to address certain issues around URL recognition with new pdf management code
+\urlstyle{same}% this changes font for \url to the current text font, but it is not recognized by \href.
%%%%%%%% A nomenclature environment, if needed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -155,7 +151,7 @@
% Increase first optional argument to a dimension > 2em if wide entries cause undesired misalignment of columns.
% Second optional argument can be used to rename the environment, e.g., to List of Symbols.
% Third optional argument selects section-level or chapter-level style for the nomenclature list.
-\newcounter{dummy}% for tagging code
+%\newcounter{dummy}% for tagging code
\NewDocumentEnvironment{nomenclature}{O{2em} O{\nomname} O{section}}{%
\setlength\columnsep{2em}
\setlength{\nomenwidth}{#1}
@@ -316,7 +312,7 @@ By default, \texttt{mitthesis.cls} will load the traditional \LaTeX\ typeface, C
Ten font sets are predefined, including the default set (see Table~\ref{tab:2}). Three work only with \pdfTeX, four work only with unicode engines, and three work with either. These options include a mixture of serif or sans serif text and math fonts, as shown in the table. To access the predefined font sets, you \textit{must} have the directory \texttt{fontsets} as a subdirectory of your working directory, including its files as named. For unicode engines, you must have the relevant fonts installed as system fonts on your computer.
-Among the predefined font sets, Termes and NewTX are serifed typefaces similar to the digital typeface Times New Roman. STIX Two is more similar to the original metal-type Times typeface. Linux Libertine is a serif typeface inspired by 19\textsuperscript{th} century book type. Lucida is a serifed typeface designed for high legibility at small size or on low resolution devices. Lucida is excellent for mathematics and includes a complete bold-face math font, but it is not free. Heros and NewTX-sans are sans-serif text typefaces similar to Helvetica. NewTXsf is a sans-serif math font which draws upon glyphs from the STIX fonts. Fira is a humanist sans-serif text typeface designed in association with the Firefox browser. Finally, Computer Modern (and its extension Latin Modern)---the traditional \LaTeX\ typeface---is a Didone typeface, with high contrast between thick and thin elements.
+Among the predefined font sets, Termes and NewTX are serifed typefaces similar to the digital typeface Times New Roman. STIX Two is more similar to the original metal-type Times typeface. Linux Libertine is a serif typeface inspired by 19\textsuperscript{th} century book type. Lucida is a serifed typeface designed for high legibility at small size or on low resolution devices. Lucida is excellent for mathematics and includes a complete bold-face math font, but it is not free. Heros and NewTX-sans are sans-serif text typefaces similar to Helvetica. NewTXsf is a sans-serif math font which draws upon glyphs from the STIX fonts. Fira is a humanist sans-serif text typeface designed in conjunction with the Firefox operating system. Finally, Computer Modern (and its extension Latin Modern)---the traditional \LaTeX\ typeface---is a Didone typeface, with high contrast between thick and thin elements.
% STIX Two, Termes, and LMR do not include a separate bold math font.
You may also place your own font-set file, say \texttt{Myfontset.tex}, in your working directory, and load it with:
@@ -402,7 +398,7 @@ The \texttt{mitthesis} class loads the \texttt{amsmath} package and its extensio
Specialized packages for many disciplines can be found in \hrefurl{https://ctan.org}{CTAN}. These include subjects like \hrefurl{https://ctan.org/topic/chemistry}{chemistry}, \hrefurl{https://ctan.org/topic/linguistic}{linguistics}, and \hrefurl{https://ctan.org/topic/physics}{physics}. As examples of such packages, the sample thesis template uses the package \texttt{\hrefurl{https://ctan.org/pkg/mhchem}{mhchem}} to set chemical equations and the package \texttt{\hrefurl{https://ctan.org/pkg/listings}{listings}} to list computer code.
-Several packages focus on table and tabular environments. The \texttt{\hrefurl{https://ctan.org/pkg/booktabs}{booktabs}} package, use in the sample thesis template, produces better quality horizontal lines (called \textit{rules}) for separating material in tables. The \texttt{\hrefurl{https://ctan.org/pkg/array}{array}} package (also used) provides additional options for column formats in tabular environments, and the \texttt{\hrefurl{https://ctan.org/pkg/dcolumn}{dcolumn}} package aligns columns of numbers on the decimal separator.
+Several packages focus on table and tabular environments. The \texttt{\hrefurl{https://ctan.org/pkg/booktabs}{booktabs}} package, use in the sample thesis template, produces better quality horizontal lines (called \textit{rules}) for separating material in tables. The \texttt{\hrefurl{https://ctan.org/pkg/array}{array}} package (also used) provides additional options for column formats in tabular environments, the \texttt{\hrefurl{https://ctan.org/pkg/dcolumn}{dcolumn}} package aligns columns of numbers on the decimal separator, and the \texttt{\hrefurl{https://ctan.org/pkg/longtable}{longtable}} package (also used) formats multipage tables with automatic page breaking.
When selecting a package to use, check that it is currently maintained (with relatively recent updates), and compare it to other packages that perform similar functions. Some packages are better than others, and some obsolete packages remain online.
@@ -410,8 +406,7 @@ The packages called by \texttt{mitthesis} are listed in Table~\ref{tab:3} on pag
\begin{table}
\caption{External packages used. For documentation, visit CTAN, \url{https://ctan.org}. Alternatively, if you have \hrefurl{https://www.tug.org/texlive/}{\TeX\ Live} installed, you can open a terminal window and type \texttt{\%\ texdoc package-name}.\label{tab:3}}
-\vskip5pt
-\centering{\small%
+\centering{\footnotesize%
\setlength\extrarowheight{3pt}
\begin{tabular*}{\textwidth}{>{\ttfamily}l<{}@{\extracolsep{\fill}}p{18em} p{22em} }
\\[-5pt]
@@ -419,20 +414,20 @@ The packages called by \texttt{mitthesis} are listed in Table~\ref{tab:3} on pag
Package & Class & User \\
\midrule
bm & defines commands to access bold math symbols (loaded for default fonts) & with \pdfTeX, the command \verb|\bm{..}| produces a bold math symbol \\
-bookmarks& is loaded automatically under the new pdf-management system & customize pdf bookmarks \\
+bookmark & is loaded automatically under the new pdf-management system & customize pdf bookmarks \\
doi & support for hyperlinking DOIs & hyperlink a doi number: \verb|\doi{..}| \\
etoolbox & extend or modify other macros & can use in preamble if needed \\
geometry & set page size and margins & can use \verb|\newgeometry| in \texttt{mydesign.tex}\\
graphicsx& support for inserting images & use to include graphics\\
hyperref & support for hyperlinks and metadata & must complete setup in preamble\\
iftex & check which \LaTeX\ engine is running& macros to check which engine, e.g., \verb|\ifpdftex| \\
-mathtools& loads and extends \texttt{amsmath} & \textbf{many useful math macros available}. See documentation for \texttt{amsmath} and \texttt{mathtools} \\[0.7em]
+mathtools& loads and extends \texttt{amsmath} & \textbf{many useful math macros available}. See documentation for \texttt{amsmath} and \texttt{mathtools} \\
\midrule
hyperxmp & fallback if no \verb|\DocumentMetadata{..}|& ---\\
kvoptions& key values for systems pre 2022/11/01 & ---\\
xparse & for systems older than 2020/10/01 & macros to define new commands\\
\midrule
-lineno & loaded if class option is given & keyvalue \texttt{lineno} will give line numbers; \texttt{lineno} package adds commands to control numbering\\[0.7em]
+lineno & loaded if class option is given & keyvalue \texttt{lineno} will give line numbers; \texttt{lineno} package adds commands to control numbering\\
\midrule
caption & also loaded by \texttt{mydesign.tex} & support for caption styling \\
subcaption & also loaded by \texttt{mydesign.tex} & support for subfigures within figures \\
@@ -441,6 +436,8 @@ xcolor & also loaded by \texttt{mydesign.tex} & support for colors, includi
array & --- & additional options for formatting table columns \\
booktabs & --- & better quality tables, with additional commands \\
dcolumn & --- & align number columns on selectable separators \\
+longtable & --- & multipage tables with automatic page breaking \\
+microtype & --- & typographical refinements: character protrusion, font expansion, letter spacing (tracking), etc. \\
\midrule
babel & --- & if you use multiple languages, load \texttt{babel} in a fontset file before loading fonts \\
biblatex & --- & sample template uses this bibliography tool. Change to \texttt{natbib} if you prefer\\
@@ -465,7 +462,8 @@ When a thesis supervisor has multiple titles (which will not fit on one line), y
\vskip 5pt
\quad\verb|\Supervisor{name}{first title and \\ \> second title}|
\vskip 5pt
-\noindent\textbf{\TeX hackers note:} The signature block is typeset as a \LaTeX\ \texttt{tabbing} environment.
+\noindent The same trick works in the \verb|\Acceptor| command.
+\textbf{\TeX hackers note:} The signature block is typeset as a \LaTeX\ \texttt{tabbing} environment.
\subsection{Overflowing title page: managing space} If your title page overflows the vertical space (from too many authors, degrees, previous degrees, etc.), you can use some or all of the following techniques. The commands must be given before \verb|\maketitle|.
\begin{enumerate}
diff --git a/macros/latex/contrib/mitthesis/mitthesis.cls b/macros/latex/contrib/mitthesis/mitthesis.cls
index 0a3a44310c..a41d201f0e 100644
--- a/macros/latex/contrib/mitthesis/mitthesis.cls
+++ b/macros/latex/contrib/mitthesis/mitthesis.cls
@@ -7,8 +7,8 @@
%% MIT Libraries' requirements as of 2024.
%%
%% This file's version and date:
- \def\versionno{1.14}
- \def\versiondate{2024/07/19\space}
+ \def\versionno{1.16}
+ \def\versiondate{2024/09/06\space}
%%
%% Author: John H. Lienhard, V
%% Department of Mechanical Engineering
@@ -89,6 +89,7 @@
\IfPackageLoadedTF{graphicx}{\define@key{Gin}{alt}{}}{\relax}
}
}
+% Most compatibility commands will be dropped as time goes by ...
%%%%%%%%%%%%%% Options for the class %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -157,22 +158,28 @@
% pdf bookmarks. This is not automatic for \chapter*, which is the format of toc, lof, and lot.
\RequirePackage{etoolbox}% provides \patchcmd
+
\patchcmd{\tableofcontents}{\contentsname}{\pdfbookmark[0]{Table of Contents}{toc}\contentsname}{}{} % placement matters.
-\patchcmd{\listoffigures}{\chapter*{\listfigurename}}{\chapter*{\phantomsection\listfigurename}\addcontentsline{toc}{frontmatter}{\listfigurename}}{}{}
-\patchcmd{\listoftables}{\chapter*{\listtablename}}{\chapter*{\phantomsection\listtablename}\addcontentsline{toc}{frontmatter}{\listtablename}}{}{}
+
+%% Temporary accommodation of latex tagging. Rework once tagging structures have been finalized by LaTeX3 team.
+%% No guarantee that this hack is hierarchically correct.
+%% Current latex-lab places tags around \@schapter, which is harder to deal with here.
+\providecommand*\MakeLinkTarget{\@gobbletwo}
+
+\patchcmd{\listoffigures}{\chapter*{\listfigurename}}{\chapter*{\phantomsection\listfigurename}\MakeLinkTarget[chapter]{}\addcontentsline{toc}{frontmatter}{\listfigurename}}{}{}
+\patchcmd{\listoftables}{\chapter*{\listtablename}}{\chapter*{\phantomsection\listtablename}\MakeLinkTarget[chapter]{}\addcontentsline{toc}{frontmatter}{\listtablename}}{}{}
\NewCommandCopy\l@frontmatter\l@chapter
\NewCommandCopy\l@backmatter\l@chapter
\providecommand*{\toclevel@frontmatter}{0}% prevent warning, see hyperref manual Sec. 13.3
\providecommand*{\toclevel@backmatter}{0}
-%% if you want different formatting for front/back matter, change here (cf. report.cls). This approach preserves tagging hooks.
-\AtBeginDocument{
- \patchcmd{\l@frontmatter}{\bfseries}{\itshape}{}{}
- \patchcmd{\l@frontmatter}{\nobreak\hfil}{\upshape\nobreak\hfil}{}{}
- \patchcmd{\l@frontmatter}{1.0em}{3pt}{}{}
- \patchcmd{\l@backmatter}{\bfseries}{\itshape}{}{}
- \patchcmd{\l@backmatter}{\nobreak\hfil}{\upshape\nobreak\hfil}{}{}
-}
+
+%% if you want different formatting for front/back matter, change here (cf. report.cls).
+\patchcmd{\l@frontmatter}{\bfseries}{\itshape}{}{}
+\patchcmd{\l@frontmatter}{\nobreak\hfil}{\upshape\nobreak\hfil}{}{}
+\patchcmd{\l@frontmatter}{1.0em}{3pt}{}{}
+\patchcmd{\l@backmatter}{\bfseries}{\itshape}{}{}
+\patchcmd{\l@backmatter}{\nobreak\hfil}{\upshape\nobreak\hfil}{}{}
%%%%%%%%%%%%% Geometry, mathtools, graphics, design, fonts, hyperrefs, bookmarks, footnotes %%%%%%%%%%%%%%%%%%%
@@ -294,8 +301,10 @@
%%%%%%%%%%%% PDF bookmark strings %%%%%%%%%%%%%%%%
-%%% Since \bm may be useful in headings, use this fix to reduce frequency with which alternate
-%%% bookmark strings must be given with commands such as \section{ \texorpdfstring{texstring}{pdfstring} }
+%%% By early 2024, \pdfstring removes all robust commands from bookmarks, so that such commands
+%%% don't cause errors; the following pdfstringdisables serve to suppress warnings.
+
+%% \bm may be useful in headings, but let's disable in the associated bookmarks
\pdfstringdefDisableCommands{%
\def\bm#1#{\relax}%
}
@@ -323,7 +332,7 @@
}
%%% Here's a more cumbersome removal of the warning for $ (math shift) in pdfbookmarks.
-%%% Not implementing this by default, since novice authors may benefit from the warning.
+%%% Not implementing this by default, since novice authors may benefit from the warning. :-)
%%% https://tex.stackexchange.com/a/620360/119566
%\let\oldHyPsd@CatcodeWarning\HyPsd@CatcodeWarning
%\renewcommand{\HyPsd@CatcodeWarning}[1]{%
@@ -349,6 +358,10 @@
%%%%%%%%%%%% MACROS FOR HANDLING TITLE AND ABSTRACT PAGES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\AtBeginDocument{
+ \providecommand{\textls}[2][]{#2}% in case microtype is not loaded
+}
+
%%%%%%%%%% Degree Date Module %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\tl_new:N \g__dd_month_tl
@@ -441,11 +454,11 @@
\int_incr:N \l__author_autcrcnt_int
\int_while_do:nNnn { \l__author_autcrcnt_int } < { \g_author_authorcnt_int }
{
- \tl_gput_right:Nx \g__author_ca_tl {,\ \seq_item:cn { g_author_name_seq } { \l__author_autcrcnt_int } }
+ \tl_gput_right:Nx \g__author_ca_tl {,~\seq_item:cn { g_author_name_seq } { \l__author_autcrcnt_int } }
\int_incr:N \l__author_autcrcnt_int
}
\int_compare:nNnT { \l__author_autcrcnt_int } = { \g_author_authorcnt_int } {
- \tl_gput_right:Nx \g__author_ca_tl {\ and\ \seq_item:cn { g_author_name_seq } { \l__author_autcrcnt_int } }
+ \tl_gput_right:Nx \g__author_ca_tl {~and~\seq_item:cn { g_author_name_seq } { \l__author_autcrcnt_int } }
}
\tl_set:Nn \l_tmpa_tl {\tl_item:Nn \g__author_ca_tl {-1} }% get last token
\str_case_e:nnT
@@ -453,6 +466,7 @@
{ {.}{} }
{ \__copyright_remove_period:N { \g__author_ca_tl } }% remove last token if it is a period
\__author_pdfcopyrightauthor:
+ \cs_gset:Npe \@author { \tl_use:N \g__author_ca_tl }% 2024/08/06
}
\cs_new:Nn \__copyright_remove_period:N
{
@@ -465,11 +479,11 @@
\int_until_do:nNnn { \l_tmpa_int } = { \g_author_authorcnt_int }
{
\int_incr:N \l_tmpa_int
- \tl_gput_right:Nx \g__author_pdfca_tl {,\ { \seq_item:cn { g_author_name_seq } { \l_tmpa_int } } }
- }
+ \tl_gput_right:Nx \g__author_pdfca_tl {;\ { \seq_item:cn { g_author_name_seq } { \l_tmpa_int } } }
+ % changed comma to semicolon for consistency with Dublin Core metadata format, 2024/08/30
+ }
}
-
\tl_new:N \g__author_namesize_tl
\tl_gset:Nn \g__author_namesize_tl { \large }
\cs_new:Nn \__author_block: {
@@ -722,10 +736,10 @@
\ of}
\par
\int_until_do:nNnn { \l__degree_degreeno_int } = { \g_degree_degreecnt_int } {
- \text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}\par and\par
+ \textls[60]{\text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}}\par and\par
\int_incr:N \l__degree_degreeno_int
}
- \text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}\par
+ \textls[60]{\text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}}\par
}
\msg_new:nnnn { \ClassName } { no_degree }
{ Missing\ degree!\ You\ must\ issue\ the\ \Degree{name}{department}\ command. }{
@@ -750,10 +764,10 @@
\ of}
\par\medskip
\int_until_do:nNnn { \l__degree_degreeno_int } = { \g_degree_degreecnt_int } {
- \text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}\par and\par
+ \textls[60]{\text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}}\par and\par
\int_incr:N \l__degree_degreeno_int
}
- \text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}\par\medskip
+ \textls[60]{\text_uppercase:n {\seq_item:cn { g_degree_name_seq } { \l__degree_degreeno_int }}}\par\medskip
}
%%%%%%%%%% End Degree Module %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -890,6 +904,7 @@
\RenewDocumentCommand{\title}{m}
{
\__mitthesis_title:n { #1 }
+ \cs_gset:Npe \@title { \tl_use:N \g_mitthesis_title_tl } % 2024/08/06
\hypersetup{
pdftitle={\g_mitthesis_title_tl},
}
@@ -967,12 +982,12 @@
{\Large\textbf{\g_mitthesis_title_tl}
%\phantomsection\addcontentsline{toc}{chapter}{Title\ page}
\par}
- \__titlepage_blockskip:nn {12}{1.5}% new idea
+ \__titlepage_blockskip:nn {12}{1.5}
\__author_block:
\__titlepage_blockskip:nn {12}{1.5}
\__degree_block:
- at\ the\par
- \text_uppercase:n { \g_titlepage_institution_name_tl }\par
+ at~the\par
+ \textls[60]{\text_uppercase:n { \g_titlepage_institution_name_tl }}\par
\DegreeMonth\ \DegreeYear\par
\__titlepage_blockskip:nn {12}{2}
\copyright\space\DegreeYear\space\CopyrightAuthor\@.\c_space_token \g_copyright_copyrightlicencse_tl % \@. in case name ends with III, IV, V,...
diff --git a/macros/latex/contrib/mlacls/mla-example.pdf b/macros/latex/contrib/mlacls/mla-example.pdf
index de61b592bf..560e110b66 100644
--- a/macros/latex/contrib/mlacls/mla-example.pdf
+++ b/macros/latex/contrib/mlacls/mla-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/mlacls/mla.dtx b/macros/latex/contrib/mlacls/mla.dtx
index 807a073ed1..b957b75bbb 100644
--- a/macros/latex/contrib/mlacls/mla.dtx
+++ b/macros/latex/contrib/mlacls/mla.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 2019 Seth Price.
+% Copyright 2019 Seth M. Price.
%
% This file may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -27,7 +27,7 @@
%<mla>\NeedsTeXFormat{LaTeX2e}
%<mla>\ProvidesClass{mla}
%<*mla>
- [2021/09/14 v1.0 MLA Paper Class]
+ [2024/09/13 v1.1 MLA Paper Class]
%</mla>
%<*driver>
@@ -80,7 +80,11 @@
\addbibresource{mla.bib}
%% Just thought it'd be cool to use `acro'
-\usepackage{acro}
+%% (though v3.6 seems to have broken everything)
+\ExplSyntaxOn
+\prop_new:N \l__acro_foreign_format_prop
+\ExplSyntaxOff
+\usepackage{acro2}
\DeclareAcronym{US}{short=US,long=United States}
\DeclareAcronym{MLA}{short=MLA,long=Modern Language Association}
\DeclareAcronym{CTAN}{short=CTAN,
@@ -109,11 +113,12 @@
\usepackage{microtype}
%% Fancy PDF
-\usepackage[hidelinks]{hyperref}
+\usepackage[numbered]{hypdoc}
\hypersetup{
+ hidelinks,
pdfinfo={
Title=The MLA class,
- Author=Seth Price,
+ Author=Seth M. Price,
Creator=LaTeX
}
}
@@ -131,7 +136,7 @@
%
% \fi
%
-% \CheckSum{401}
+% \CheckSum{430}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -151,7 +156,7 @@
%
% \title{The \Dcls{mla} class\thanks{This document corresponds to
% \Dcls{mla}~\fileversion, dated \filedate.}}
-% \author{Seth Price \\ \href{mailto:\myemail}{\texttt{\myemail}}}
+% \author{Seth M.\ Price \\ \href{mailto:\myemail}{\texttt{\myemail}}}
% \date{\today}
%
% \maketitle
@@ -241,6 +246,7 @@
% \begin{macro}{\MLA@pageheader}
% \begin{macro}{\MLA@plainheadings}
% \begin{macro}{\MLA@fullpage}
+% \begin{macro}{\MLA@times}
% The following are true/false switches to toggle certain features.
%
% \begin{macrocode}
@@ -254,6 +260,7 @@
\newif\ifMLA@pageheader
\newif\ifMLA@plainheadings
\newif\ifMLA@fullpage
+\newif\ifMLA@times
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -265,6 +272,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \section{Options}
% \label{sec:options}
@@ -297,7 +305,7 @@
\DeclareOption{mla8alt}{\MLA@sevenfalse\MLA@eightfalse\MLA@eightalttrue}
% \end{macrocode}
%
-% For those who do not plan on using figures and/or footnotes,
+% For those who do not plan on using figures and/or endnotes,
% some time (and dependency disk space) might be saved by using the
% \Dopt{nofigures} and/or \Dopt{nonotes} options, as they are enabled
% by default.
@@ -352,6 +360,16 @@
\DeclareOption{fullpage}{\MLA@fullpagetrue}
% \end{macrocode}
%
+% \changes{v1.1}{2024/02/04}{Added \Dopt{notimes} option to not set Times New
+% Roman as the font}
+% For professors that do not require Times New Roman as the font, the
+% \Dopt{notimes} option may be used to keep the default font. This allows
+% maintaining \LaTeX{}'s default font if desired.
+% \begin{macrocode}
+\MLA@timestrue
+\DeclareOption{notimes}{\MLA@timesfalse}
+% \end{macrocode}
+%
% \subsection{Processing}
% \label{sec:processing}
%
@@ -397,7 +415,6 @@
\RequirePackage{fancyhdr}
\RequirePackage{fullpage}
\RequirePackage{ragged2e}
-\RequirePackage{newtxtext}
\RequirePackage{titlesec}
\RequirePackage{xstring}
% \end{macrocode}
@@ -454,6 +471,14 @@
\fi
% \end{macrocode}
%
+% And the \Dpkg{newtxtext} package can be disabled with \Dopt{notimes}.
+%
+% \begin{macrocode}
+\ifMLA@times
+ \RequirePackage{newtxtext}
+\fi
+% \end{macrocode}
+%
% The \Dpkg{microtype} package is loaded if the \Dopt{microtype}
% option is specified.
%
@@ -477,11 +502,12 @@
% \subsection{Font}
% \label{sec:font}
%
-% The \Dpkg{newtxtext} package was already loaded in
-% section~\ref{sec:loading_packages},
-% and the font was set to 12pt when loading the \Dcls{article} class
+% The font size was set to 12pt when loading the \Dcls{article} class
% in section~\ref{sec:initial_code}.
-% This should be metric-compatible with the infamous Times New Roman,
+% Unless the option \Dopt{notimes} was specified,
+% the \Dpkg{newtxtext} package will have been loaded in
+% section~\ref{sec:loading_packages},
+% which should be metric-compatible with the infamous Times New Roman,
% the \foreign{de facto} standard of the
% \ac{MLA} format\footnote{According to the popular, oft-referenced
% \ac{OWL}: \citeurl{owlmla}.}.
@@ -837,6 +863,28 @@
% \end{environment}
% \end{environment}
%
+% \changes{v1.1}{2024/09/12}{Modify footnotes to be more in-style}
+% \subsection{Footnotes}
+% \label{sec:footnotes}
+%
+% Footnotes are styled similarly to endnotes (see section \ref{sec:endnotes}),
+% but in smaller text, and glued to the bottom of the page.
+%
+% \begin{macrocode}
+\addtolength{\skip\footins}{1pc}
+\renewcommand{\footnoterule}{%
+ \vfill
+ \kern -3pt\hrule width 0.4\columnwidth
+ \vskip 6pt
+}
+\renewcommand{\@makefnmark}{\@thefnmark}
+\renewcommand{\@makefntext}[1]{%
+ \leftskip 0.5in
+ \parindent -0.5in
+ \@makefnmark.~#1
+}
+% \end{macrocode}
+%
% \subsection{Block quotation}
% \label{sec:block_quoatation}
%
@@ -1015,6 +1063,8 @@
\fi
% \end{macrocode}
%
+% See section \ref{sec:footnotes} for footnotes.
+%
% \subsubsection{Bibliography}
% \label{sec:bibliography}
%
diff --git a/macros/latex/contrib/mlacls/mla.pdf b/macros/latex/contrib/mlacls/mla.pdf
index 937392ba70..6849a5c61c 100644
--- a/macros/latex/contrib/mlacls/mla.pdf
+++ b/macros/latex/contrib/mlacls/mla.pdf
Binary files differ
diff --git a/macros/latex/contrib/moremath/moremath-doc.pdf b/macros/latex/contrib/moremath/moremath-doc.pdf
index 4a90adc8e7..8ed1c145fd 100644
--- a/macros/latex/contrib/moremath/moremath-doc.pdf
+++ b/macros/latex/contrib/moremath/moremath-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/moremath/moremath.dtx b/macros/latex/contrib/moremath/moremath.dtx
index 3b520f4ac2..48e7bae62d 100644
--- a/macros/latex/contrib/moremath/moremath.dtx
+++ b/macros/latex/contrib/moremath/moremath.dtx
@@ -67,6 +67,18 @@
date = {2024-03-11},
version = {1.30},
}
+
+@comment{Below are non-package References}
+
+@article{package-rollback,
+ title = {A rollback concept for packages and classes},
+ author = {Frank Mitelbach},
+ year = {2018},
+ journaltitle = {TUGboat},
+ number = 2,
+ url = {https://www.latex-project.org/publications/2018-FMi-TUB-tb122mitt-version-rollback.pdf},
+ urldate = {2024-08-06},
+}
\end{filecontents*}
\begin{filecontents*}[overwrite]{\jobname-ams-op-table.tex}
\begin{tabular}{rlrlrlrl}
@@ -161,6 +173,7 @@
% \AddVersion{v0.2.0}{2024-07-04}
% \AddVersion{v0.3.0}{2024-07-08}
% \AddVersion{v0.4.0}{2024-07-15}
+% \AddVersion{v0.5.0}{2024-08-20}
%
% ^^X Placeholder for unreleased versions
% \AddVersion{vUNRELEASED}{UNRELEASED}
@@ -238,7 +251,7 @@
% on their own.
%
% There are also other things that can be improved when typesetting math.
-% One prominent example is the typsetting of row and column vectors,
+% One prominent example is the typesetting of row and column vectors,
% which require the use of a \env{matrix} environment.
% For this case \pkg{moremath} provides commands which accept a comma separated
% list of vector entries,
@@ -888,7 +901,7 @@
% \end{gather*}
% \end{minipage}
%
-% \item Feynman-Notation:
+% \item Feynman-notation:
%
% \begin{minipage}{.49\linewidth}
% \begin{verbatim}
@@ -1351,7 +1364,9 @@
% Valid keys are "delimiter", "fill", and "align",
% their usage is described in section~\ref{sec:options-matrix}.
%
-% \begin{function}{
+% \begin{function}[
+% updated=2024-08-20,
+% ]{
% \cvector,
% \rvector
% }
@@ -1443,7 +1458,7 @@
%
% As vectors are commonly delimited by parenthesis, brackets, braces, etc.\
% several shorthands producing delimited vectors are also available.
-% \begin{function}{
+% \begin{function}[updated=2024-08-20]{
% \pcvector,
% \bcvector,
% \Bcvector,
@@ -1504,7 +1519,9 @@
% This package provides analogous commands for row and column vectors
% to be typeset in inline math mode.
%
-% \begin{function}{
+% \begin{function}[
+% updated=2024-08-20,
+% ]{
% \smallcvector,
% \smallrvector
% }
@@ -1530,7 +1547,7 @@
% \(\smallcvector{1,0}\).
% \end{quote}
%
-% \begin{function}{
+% \begin{function}[updated=2024-08-20]{
% \psmallcvector,
% \bsmallcvector,
% \Bsmallcvector,
@@ -2215,7 +2232,7 @@
% \cs{moremath_delim_nabla_op_manuscale:NNnnn} \meta{operator} \meta{delim}
% \hspace*{2ex} \marg{scale~cmd} \marg{sub} \marg{contents}
% \end{syntax}
-% The usage of function is similar to the above functions
+% The usage of this function is similar to the above functions
% except for the additional argument \meta{scale~cmd} which is a token list
% with a \meta{size~cmd} that should be understood by \pkg{mathtools}
% (e.g.\ \cs{big}, \cs{Big}, etc.).
@@ -2224,11 +2241,18 @@
% \section{Formatting Matrices and Vectors}
% \label{sec:authors-matrix}
%
-% \begin{function}[updated=2024-07-15]{
+% \begin{function}[
+% updated=2024-07-15,
+% updated=2024-08-20,
+% ]{
% \moremath_column_vector:nn,
+% \moremath_column_vector:Vn,
% \moremath_row_vector:nn,
+% \moremath_row_vector:Vn,
% \moremath_column_smallvector:nn,
-% \moremath_row_smallvector:nn
+% \moremath_column_smallvector:Vn,
+% \moremath_row_smallvector:nn,
+% \moremath_row_smallvector:Vn,
% }
% \begin{syntax}
% \cs{moremath_column_vector:nn} \marg{delim spec tl} \marg{clist}
@@ -2256,6 +2280,7 @@
% \begin{function}[
% updated = 2024-07-04,
% updated=2024-07-15,
+% updated=2024-08-20,
% ]{
% \moremath_diagonal_matrix:nn,
% \moremath_diagonal_matrix:nV,
@@ -2330,6 +2355,7 @@
% \begin{function}[
% added=2024-07-08,
% updated=2024-07-15,
+% updated=2024-08-20,
% ]{
% \moremath_vcenter:n,
% }
@@ -2388,10 +2414,23 @@
% (especially for using the "=" option specification)
% and hooks.
%
+% Afterwards we provide rollback information,
+% for the \pkg{latexrelease} rollback mechanism.
+% (See \textcite{package-rollback} for more information.)
+%
+% For the v0.x.x versions I've decided on using the date of the first release
+% that was uploaded to CTAN\@.
+% \begin{macrocode}
+\DeclareCurrentRelease{v0}{2024-07-15}
+% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Add information for \LaTeX{}'s package rollback mechanism.
+% }
+%
% Then identify this package as \pkg{moremath}.
% \begin{macrocode}
\ProvidesExplPackage{moremath}
- {2024-07-15}{v0.4.0}{More Math Macros}
+ {2024-08-20}{v0.5.0}{More Math Macros}
% \end{macrocode}
%
% ^^X Debugging switch
@@ -2830,6 +2869,161 @@
% \end{macrocode}
%
%
+% \section{Abstractions for \TeX{}-primitives and \LaTeXe{}-commands}
+% \label{sec:impl-abstractions}
+%
+% As this package makes use of certain \TeX{}-primitives and \LaTeXe{}-commands,
+% which are either part of the \LaTeX{}-kernel or of some package.
+% It is sensible to provide a (package internal) abstraction for those commands,
+% so that they can be switched out once a \LaTeX3{}-command has been defined for them.
+%
+% \subsection{\TeX{}-primitives}
+% \label{sec:impl-tex-abstractions}
+%
+% \begin{macro}[added=2024-08-20]{
+% \@@_tex_vcenter:n,
+% }
+% \cs{@@_tex_vcenter:n} is an abstraction for \cs{tex_vcenter:D}
+% i.e.\ \tn{vcenter}.
+% Its single argument is passed to \cs{tex_vcenter:D}.
+% \begin{macrocode}
+\cs_new_protected:Nn \@@_tex_vcenter:n
+{
+ \tex_vcenter:D {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[added=2024-08-20]{
+% \@@_tex_mathpalette:Nn,
+% }
+% The function \cs{@@_tex_mathpalette:Nn} is an abstraction for the \tn{mathpalette},
+% primitive.
+% The function takes two arguments
+% \begin{arguments}
+% \item The \meta{csname} of the macro to pass to \tn{mathpalette}
+%
+% This macro \textbf{must} accept \textbf{two} arguments:
+% The first is a single token containing the current math-style,
+% the second is the contents to \enquote{typeset}.
+% See \url{https://tex.stackexchange.com/questions/34393/the-mysteries-of-mathpalette/34412#34412}
+% for further information.
+%
+% \item The \meta{tokens} to forward to the macro passed as first argument.
+% \end{arguments}
+% \begin{macrocode}
+\cs_new_protected:Nn \@@_tex_mathpalette:Nn
+{
+ \mathpalette #1 {#2}
+}
+% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Added new function.
+% }
+% \end{macro}
+%
+% \begin{macro}[added=2024-08-20]{
+% \@@_tex_mathsurround:n
+% }
+% The function \cs{@@_tex_mathsurround:n} provides (hopefully) a correct abstraction
+% for the \tn{mathsurround} primitive.
+% It takes one argument
+% \begin{arguments}
+% \item A \meta{length~expr} for the whitespace surrounding a math switch.
+% \end{arguments}
+% \begin{macrocode}
+\cs_new_protected_nopar:Nn \@@_tex_mathsurround:n
+{
+ \tex_mathsurround:D = #1
+}
+% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Added new function.
+% }
+% \end{macro}
+%
+% \begin{macro}[added=2024-08-20]{
+% \@@_tex_mathop:n
+% }
+% The function \cs{@@_tex_mathop:n} provides an abstraction for the \tn{mathop}
+% \TeX{}-primitive.
+% It accepts a single argument:
+% \begin{arguments}
+% \item \meta{Tokens} to treat as a math operator.
+% \end{arguments}
+% \begin{macrocode}
+\cs_new_protected_nopar:Nn \@@_tex_mathop:n
+{
+ \tex_mathop:D {#1}
+}
+% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Added new function.
+% }
+% \end{macro}
+%
+%
+% \subsection{\LaTeXe{}-commands}
+% \label{sec:impl-latex-abstractions}
+%
+% \begin{macro}[EXP,added=2024-08-20]{
+% \@@_matrix_star_begin:nn,
+% \@@_matrix_star_begin:nV,
+% \@@_matrix_star_begin:Vn,
+% \@@_matrix_star_begin:VV,
+% \@@_matrix_star_end:n,
+% \@@_matrix_star_end:V,
+% }
+% The functions \cs{@@_matrix_star_begin:nn} and \cs{@@_matrix_star_end:n}
+% provide an abstraction to the \env{matrix*} family of environments provided
+% by \pkg{mathtools}.
+% \NB{MI}{These functions need to be expandable,
+% as they produce an empty line otherwise.}
+%
+% \cs{@@_matrix_star_begin:nn} takes two arguments:
+% \begin{arguments}
+% \item A \meta{tl} determining the type of the matrix.
+%
+% This is used to further specify which "matrix*" environment to use.
+%
+% The \meta{tl} may be empty.
+%
+% \item A \meta{tl} specifying the column type.
+% \end{arguments}
+% \begin{macrocode}
+\cs_new_nopar:Nn \@@_matrix_star_begin:nn
+{
+ \begin{ #1 matrix* } [ #2 ]
+}
+% \end{macrocode}
+% We also create "nV", "Vn", and "VV" variants of this function:
+% \begin{macrocode}
+\cs_generate_variant:Nn \@@_matrix_star_begin:nn { nV, Vn, VV }
+% \end{macrocode}
+%
+% The function \cs{@@_matrix_star_end:n} takes only one argument
+% \begin{arguments}
+% \item The \meta{tl} determining the type of the \env{matrix*} environment.
+%
+% The \meta{tl} \textbf{must} have the same value as used for
+% \cs{@@_matrix_star_begin:nn}.
+% \end{arguments}
+% \begin{macrocode}
+\cs_new_nopar:Nn \@@_matrix_star_end:n
+{
+ \end{ #1 matrix* }
+}
+% \end{macrocode}
+% We also provide a "V" type variant of this function.
+% \begin{macrocode}
+\cs_generate_variant:Nn \@@_matrix_star_end:n {V}
+% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Added new functions and variants.
+% }
+% \end{macro}
+%
+%
% \section{Centering Math Symbols Along the Math-Axis}
% \label{sec:impl-vcenter}
%
@@ -2851,7 +3045,7 @@
% \url{http://www.tug.org/TUGboat/Articles/tb22-4/tb72perlS.pdf}
% }
%
-% \begin{macro}[added = 2024-07-08]{
+% \begin{macro}[added = 2024-07-08, updated=2024-08-20]{
% \moremath_vcenter:n
% }
% The function \cs{moremath_vcenter:n} is a wrapper around the \tn{vcenter}
@@ -2872,15 +3066,21 @@
% \begin{macrocode}
\cs_new_protected_nopar:Nn \moremath_vcenter:n
{
- \mathpalette \@@_vcenter:Nn {#1}
+ \@@_tex_mathpalette:Nn \@@_vcenter:Nn {#1}
}
% \end{macrocode}
% \changes{v0.3.0}{\GetVersionDate{v0.3.0}}{
% Added new function.
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Changed: Make use of \cs{@@_tex_mathpalette:Nn}.
+% }
% \end{macro}
%
-% \begin{macro}[added=2024-07-08]{
+% \begin{macro}[
+% added=2024-07-08,
+% updated=2024-08-20,
+% ]{
% \@@_vcenter:Nn,
% }
% As \tn{mathpalette} needs as its first argument a macro which takes two
@@ -2907,18 +3107,22 @@
% \begin{macrocode}
\cs_new_protected_nopar:Nn \@@_vcenter:Nn
{
- \vcenter
+ \@@_tex_vcenter:n
{
\hbox:n
{
$
- \mathsurround=0pt
+ \@@_tex_mathsurround:n {0pt}
#1 {#2}
$
}
}
}
% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Changed: Now uses \cs{@@_tex_vcenter:n} and \cs{@@_tex_mathsurround:n}
+% instead of \TeX-primitives.
+% }
% \end{macro}
%
%
@@ -3598,7 +3802,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_gradient_operator_get:}
+% \begin{macro}[updated=2024-08-20]{\@@_gradient_operator_get:}
% This function returns the gradient operator depending on the current setting
% of the keys.
% \begin{macrocode}
@@ -3606,7 +3810,7 @@
{
\tl_if_empty:NTF \l_@@_grad_op_tl
{
- \mathop
+ \@@_tex_mathop:n
{
% \end{macrocode}
% Otherwise we first need to check if the operator shall have an arrow over it.
@@ -3645,7 +3849,7 @@
\l_@@_nabla_tl
}
}
- }% \mathop
+ }% \@@_tex_mathop:n
\nolimits
}{
% \end{macrocode}
@@ -3656,9 +3860,12 @@
}
}
% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Now uses \cs{@@_tex_mathop:n} instead of \TeX{}-primitives.
+% }
% \end{macro}
%
-% \begin{macro}{\@@_laplace_operator_get:}
+% \begin{macro}[updated=2024-08-20]{\@@_laplace_operator_get:}
% Then we define a function for returning the laplace operator symbol,
% depending on the currently set keys.
% The function wraps the symbol for the operator inside
@@ -3668,7 +3875,7 @@
{
\tl_if_empty:NTF \l_@@_laplacian_tl
{
- \mathop
+ \@@_tex_mathop:n
{
\bool_if:NTF \l_@@_laplacian_delta_bool
{
@@ -3709,9 +3916,12 @@
}
}
% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Now uses \cs{@@_tex_mathop:n} instead of \TeX{}-primitives.
+% }
% \end{macro}
%
-% \begin{macro}{
+% \begin{macro}[updated=2024-08-20]{
% \@@_dalembert_operator_get:
% }
% This function returns the \foreignlanguage{french}{d'Alembert} operator
@@ -3721,16 +3931,19 @@
% \begin{macrocode}
\cs_new_protected:Nn \@@_dalembert_operator_get:
{
- \mathop
+ \@@_tex_mathop:n
{
\l_@@_dalembert_symb_tl
- }% \mathop
+ }% \@@_tex_mathop:n
\nolimits
}
% \end{macrocode}
% \changes{v0.2.0}{\GetVersionDate{v0.2.0}}{%
% Added function: \cs{@@_dalembert_operator_get:}
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Now uses \cs{@@_tex_mathop:n} instead of \TeX{}-primitives.
+% }
% \end{macro}
%
% \subsection{Macros Producing an Operator}
@@ -3949,6 +4162,9 @@
% Afterwards we check if the key \verb|scale| has been given.
% If yes we pop it and assign it to the second argument.
% Otherwise we do nothing.
+% \NB{MI}{It may be a better idea to use a key instead but I'm not sure.
+% If one nests those environments the size of the outer one will propagate into
+% the inner scope, which might not be what is wanted.}
% \begin{macrocode}
\prop_set_from_keyval:Nn \l_tmpa_prop {#1}
@@ -4350,11 +4566,13 @@
%
% In the next step we construct the single row/column matrix from the user
% provided input.
-% \begin{macro}{
+% \begin{macro}[updated=2024-08-20]{
% \moremath_column_vector:nn,
+% \moremath_column_vector:Vn,
% \moremath_row_vector:nn,
+% \moremath_row_vector:Vn,
% }
-% The two commands \cs{moremath_column_vector:n} and \cs{moremath_row_vector:n}
+% The two commands \cs{moremath_column_vector:nn} and \cs{moremath_row_vector:nn}
% construct the matrix, they both take two arguments.
% \begin{arguments}
% \item The delimiter specifier.
@@ -4373,29 +4591,43 @@
\seq_clear:N \l_@@_vector_entries_seq
\seq_set_from_clist:Nn \l_@@_vector_entries_seq {#2}
- \exp_args:NnNV \begin{#1 matrix*} [ \l_@@_matrix_align_tl ]
+ \@@_matrix_star_begin:nV {#1} \l_@@_matrix_align_tl
\@@_seq_to_column_vector:N \l_@@_vector_entries_seq
- \end{#1 matrix*}
+ \@@_matrix_star_end:n {#1}
}
-
+%
\cs_new_protected_nopar:Nn \moremath_row_vector:nn
{
\seq_clear:N \l_@@_vector_entries_seq
\seq_set_from_clist:Nn \l_@@_vector_entries_seq {#2}
- \exp_args:NnNV \begin{#1matrix*} [ \l_@@_matrix_align_tl ]
+ \@@_matrix_star_begin:nV {#1} \l_@@_matrix_align_tl
\@@_seq_to_row_vector:N \l_@@_vector_entries_seq
- \end{#1matrix*}
+ \@@_matrix_star_end:n {#1}
}
% \end{macrocode}
+% We also provide a "Vn" variant of those functions.
+% \begin{macrocode}
+\cs_generate_variant:Nn \moremath_column_vector:nn { Vn }
+\cs_generate_variant:Nn \moremath_row_vector:nn { Vn }
+% \end{macrocode}
% \changes{v0.1.0}{\GetVersionDate{v0.1.0}}{%
% Added functions producing row- and column vectors.
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Changed now uses \cs{@@_matrix_star_begin:nV} instead of raw
+% |\begin{#1matrix*}|.
+% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Added new "Vn" variants.
+% }
% \end{macro}
%
% \begin{macro}{
% \moremath_column_smallvector:nn,
-% \moremath_row_smallvector:nn
+% \moremath_column_smallvector:Vn,
+% \moremath_row_smallvector:nn,
+% \moremath_row_smallvector:Vn,
% }
% To make the code more readable, we define functions specifically for
% creating row and column vectors using the \env{smallmatrix*} family of
@@ -4411,10 +4643,16 @@
{
\moremath_row_vector:nn {#1 small} {#2}
}
+% Variants
+\cs_generate_variant:Nn \moremath_column_smallvector:nn { Vn }
+\cs_generate_variant:Nn \moremath_row_smallvector:nn { Vn }
% \end{macrocode}
% \changes{v0.1.0}{\GetVersionDate{v0.1.0}}{%
% Added functions producing inline math row- and column vectors.
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Added new "Vn" variants.
+% }
% \end{macro}
%
% ^^X SUBSECTION: Shorthands for simple matrices
@@ -4534,20 +4772,20 @@
\cs_new_protected:Nn \moremath_diagonal_matrix:nn
{
\seq_set_from_clist:Nn \l_@@_mat_diag_entries_seq { #2 }
- \exp_args:NnNV \begin{#1 matrix*} [ \l_@@_matrix_align_tl ]
+ \@@_matrix_star_begin:nV { #1 } \l_@@_matrix_align_tl
\int_step_function:nN { \seq_count:N \l_@@_mat_diag_entries_seq }
\@@_constr_diagmat_row:n
- \end{#1 matrix*}
+ \@@_matrix_star_end:n { #1 }
}
-
+%
% Anti-diagonal matrix
\cs_new_protected:Nn \moremath_antidiagonal_matrix:nn
{
\seq_set_from_clist:Nn \l_@@_mat_diag_entries_seq { #2 }
- \exp_args:NnNV \begin{ #1 matrix* } [ \l_@@_matrix_align_tl ]
+ \@@_matrix_star_begin:nV { #1 } \l_@@_matrix_align_tl
\int_step_function:nN { \seq_count:N \l_@@_mat_diag_entries_seq }
\@@_constr_antidiagmat_row:n
- \end{ #1 matrix* }
+ \@@_matrix_star_end:n { #1 }
}
% Small versions
@@ -4577,18 +4815,10 @@
% }
% For convenience we also define some variants of the above functions.
% \begin{macrocode}
-\cs_generate_variant:Nn \moremath_diagonal_matrix:nn { n V }
-\cs_generate_variant:Nn \moremath_diagonal_matrix:nn { V n }
-\cs_generate_variant:Nn \moremath_diagonal_matrix:nn { V V }
-\cs_generate_variant:Nn \moremath_antidiagonal_matrix:nn { n V }
-\cs_generate_variant:Nn \moremath_antidiagonal_matrix:nn { V n }
-\cs_generate_variant:Nn \moremath_antidiagonal_matrix:nn { V V }
-\cs_generate_variant:Nn \moremath_diagonal_smallmatrix:nn { n V }
-\cs_generate_variant:Nn \moremath_diagonal_smallmatrix:nn { V n }
-\cs_generate_variant:Nn \moremath_diagonal_smallmatrix:nn { V V }
-\cs_generate_variant:Nn \moremath_antidiagonal_smallmatrix:nn { n V }
-\cs_generate_variant:Nn \moremath_antidiagonal_smallmatrix:nn { V n }
-\cs_generate_variant:Nn \moremath_antidiagonal_smallmatrix:nn { V V }
+\cs_generate_variant:Nn \moremath_diagonal_matrix:nn { nV, Vn, VV }
+\cs_generate_variant:Nn \moremath_antidiagonal_matrix:nn { nV, Vn, VV }
+\cs_generate_variant:Nn \moremath_diagonal_smallmatrix:nn { nV, Vn, VV}
+\cs_generate_variant:Nn \moremath_antidiagonal_smallmatrix:nn { nV, Vn, VV }
% \end{macrocode}
% \changes{v0.1.0}{\GetVersionDate{v0.1.0}}{Added variants.}
% \changes{v0.2.0}{\GetVersionDate{v0.2.0}}{Added "nV" and "VV" variants.}
@@ -4597,6 +4827,10 @@
% Added functions producing (anti-)diagonal matrices.
% Also added versions for inline math.
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Changed now uses \cs{@@_matrix_star_begin:nV} instead of raw
+% |\begin{#1matrix*}|.
+% }
% \end{macro}
%
%
@@ -4730,7 +4964,7 @@
\bool_if:nTF \l_@@_predef_crvector_bool
{
% \end{macrocode}
-% \begin{macro}{
+% \begin{macro}[updated=2024-08-20,]{
% \cvector,
% \rvector,
% \smallcvector,
@@ -4747,7 +4981,7 @@
{
\keys_set:nn { moremath / matrix } {#1}
}
- \moremath_column_vector:nn {\l_@@_matrix_delim_tl} {#2}
+ \moremath_column_vector:Vn \l_@@_matrix_delim_tl {#2}
\group_end:
}
}{
@@ -4769,7 +5003,7 @@
{
\keys_set:nn { moremath / matrix } {#1}
}
- \moremath_row_vector:nn {\l_@@_matrix_delim_tl} {#2}
+ \moremath_row_vector:Vn \l_@@_matrix_delim_tl {#2}
\group_end:
}
}{
@@ -4791,7 +5025,7 @@
{
\keys_set:nn {moremath / matrix} {#1}
}
- \moremath_column_smallvector:nn {\l_@@_matrix_delim_tl} {#2}
+ \moremath_column_smallvector:Vn \l_@@_matrix_delim_tl {#2}
\group_end:
}
}{
@@ -4811,7 +5045,7 @@
{
\keys_set:nn { moremath / matrix } {#1}
}
- \moremath_row_smallvector:nn {\l_@@_matrix_delim_tl} {#2}
+ \moremath_row_smallvector:Vn \l_@@_matrix_delim_tl {#2}
\group_end:
}
}{
@@ -4826,13 +5060,16 @@
% Added commands producing row and column vectors,
% including inline math versions.
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Use "Vn" versions of functions when passing variables around.
+% }
% \end{macro}
%
% \paragraph{Commands with Pre-defined Delimiters}
% Next we define several shorthands to for the commonly used delimiters,
% to avoid code duplication, we first create some helper functions which
% define those functions.
-% \begin{macro}{
+% \begin{macro}[updated=2024-08-20]{
% \@@_new_vector_shorth_doc_cmd:NNn
% }
% The function \cs{@@_new_vector_shorth_doc_cmd} creates a new vector shorthand,
@@ -4842,7 +5079,7 @@
% \item The \meta{function} to use for this shorthand.
%
% This should be one of the
-% \cs[no-index]{moremath_\meta{type}_\meta{size}vector:nn}
+% \cs[no-index]{moremath_\meta{type}_\meta{size}vector:Vn}
% like commands.
%
% \item The \meta{delimiter} to use.
@@ -4863,7 +5100,7 @@
{
\keys_set:nn {moremath / matrix } {##1}
}
- #2 {\l_@@_matrix_delim_tl} {##2}
+ #2 \l_@@_matrix_delim_tl {##2}
\group_end:
}
}{
@@ -4875,9 +5112,12 @@
}
}
% \end{macrocode}
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Require function with "Vn" signature to pass variable correctly.
+% }
% \end{macro}
%
-% \begin{macro}{
+% \begin{macro}[updated=2024-08-20]{
% \pcvector,
% \bcvector,
% \Bcvector,
@@ -4894,35 +5134,38 @@
% We begin with the column vector.
% \begin{macrocode}
% parenthesis
-\@@_new_vector_shorth_doc_cmd:NNn \pcvector \moremath_column_vector:nn {p}
+\@@_new_vector_shorth_doc_cmd:NNn \pcvector \moremath_column_vector:Vn {p}
% brackets
-\@@_new_vector_shorth_doc_cmd:NNn \bcvector \moremath_column_vector:nn {b}
+\@@_new_vector_shorth_doc_cmd:NNn \bcvector \moremath_column_vector:Vn {b}
% braces
-\@@_new_vector_shorth_doc_cmd:NNn \Bcvector \moremath_column_vector:nn {B}
+\@@_new_vector_shorth_doc_cmd:NNn \Bcvector \moremath_column_vector:Vn {B}
% single vert
-\@@_new_vector_shorth_doc_cmd:NNn \vcvector \moremath_column_vector:nn {v}
+\@@_new_vector_shorth_doc_cmd:NNn \vcvector \moremath_column_vector:Vn {v}
% double vert
-\@@_new_vector_shorth_doc_cmd:NNn \Vcvector \moremath_column_vector:nn {V}
+\@@_new_vector_shorth_doc_cmd:NNn \Vcvector \moremath_column_vector:Vn {V}
% \end{macrocode}
% Now to the row vectors.
% \begin{macrocode}
% parenthesis
-\@@_new_vector_shorth_doc_cmd:NNn \prvector \moremath_row_vector:nn {p}
+\@@_new_vector_shorth_doc_cmd:NNn \prvector \moremath_row_vector:Vn {p}
% brackets
-\@@_new_vector_shorth_doc_cmd:NNn \brvector \moremath_row_vector:nn {b}
+\@@_new_vector_shorth_doc_cmd:NNn \brvector \moremath_row_vector:Vn {b}
% braces
-\@@_new_vector_shorth_doc_cmd:NNn \Brvector \moremath_row_vector:nn {B}
+\@@_new_vector_shorth_doc_cmd:NNn \Brvector \moremath_row_vector:Vn {B}
% single vert
-\@@_new_vector_shorth_doc_cmd:NNn \vrvector \moremath_row_vector:nn {v}
+\@@_new_vector_shorth_doc_cmd:NNn \vrvector \moremath_row_vector:Vn {v}
% double vert
-\@@_new_vector_shorth_doc_cmd:NNn \Vrvector \moremath_row_vector:nn {V}
+\@@_new_vector_shorth_doc_cmd:NNn \Vrvector \moremath_row_vector:Vn {V}
% \end{macrocode}
% \changes{v0.1.0}{\GetVersionDate{v0.1.0}}{
% Added commands for row and column vectors with predefined delimiters.
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Use functions with "Vn" signature instead of "nn"
+% }
% \end{macro}
%
-% \begin{macro}{
+% \begin{macro}[updated=2024-08-20]{
% \psmallcvector,
% \bsmallcvector,
% \Bsmallcvector,
@@ -4939,32 +5182,32 @@
% \begin{macrocode}
% column vectors
% parenthesis
-\@@_new_vector_shorth_doc_cmd:NNn \psmallcvector \moremath_column_smallvector:nn
+\@@_new_vector_shorth_doc_cmd:NNn \psmallcvector \moremath_column_smallvector:Vn
{p}
% brackets
-\@@_new_vector_shorth_doc_cmd:NNn \bsmallcvector \moremath_column_smallvector:nn
+\@@_new_vector_shorth_doc_cmd:NNn \bsmallcvector \moremath_column_smallvector:Vn
{b}
% braces
-\@@_new_vector_shorth_doc_cmd:NNn \Bsmallcvector \moremath_column_smallvector:nn
+\@@_new_vector_shorth_doc_cmd:NNn \Bsmallcvector \moremath_column_smallvector:Vn
{B}
% single vert
-\@@_new_vector_shorth_doc_cmd:NNn \vsmallcvector \moremath_column_smallvector:nn
+\@@_new_vector_shorth_doc_cmd:NNn \vsmallcvector \moremath_column_smallvector:Vn
{v}
% double vert
-\@@_new_vector_shorth_doc_cmd:NNn \Vsmallcvector \moremath_column_smallvector:nn
+\@@_new_vector_shorth_doc_cmd:NNn \Vsmallcvector \moremath_column_smallvector:Vn
{V}
%
% row vectors
% parenthesis
-\@@_new_vector_shorth_doc_cmd:NNn \psmallrvector \moremath_row_smallvector:nn {p}
+\@@_new_vector_shorth_doc_cmd:NNn \psmallrvector \moremath_row_smallvector:Vn {p}
% brackets
-\@@_new_vector_shorth_doc_cmd:NNn \bsmallrvector \moremath_row_smallvector:nn {b}
+\@@_new_vector_shorth_doc_cmd:NNn \bsmallrvector \moremath_row_smallvector:Vn {b}
% braces
-\@@_new_vector_shorth_doc_cmd:NNn \Bsmallrvector \moremath_row_smallvector:nn {B}
+\@@_new_vector_shorth_doc_cmd:NNn \Bsmallrvector \moremath_row_smallvector:Vn {B}
% single vert
-\@@_new_vector_shorth_doc_cmd:NNn \vsmallrvector \moremath_row_smallvector:nn {v}
+\@@_new_vector_shorth_doc_cmd:NNn \vsmallrvector \moremath_row_smallvector:Vn {v}
% double vert
-\@@_new_vector_shorth_doc_cmd:NNn \Vsmallrvector \moremath_row_smallvector:nn {V}
+\@@_new_vector_shorth_doc_cmd:NNn \Vsmallrvector \moremath_row_smallvector:Vn {V}
}{ % \bool_if:nTF \l_@@_predef_crvector_bool FALSE PATH
@@ -4978,6 +5221,9 @@
% Added commands for inline math row and column vectors
% with predefined delimiters.
% }
+% \changes{v0.5.0}{\GetVersionDate{v0.5.0}}{
+% Use functions with "Vn" signature instead of "nn"
+% }
% \end{macro}
%
%
diff --git a/macros/latex/contrib/naive-ebnf/README.md b/macros/latex/contrib/naive-ebnf/README.md
index 6e02dfc45c..27852bc9f8 100644
--- a/macros/latex/contrib/naive-ebnf/README.md
+++ b/macros/latex/contrib/naive-ebnf/README.md
@@ -1,12 +1,13 @@
+# EBNF Diagrams in LaTeX
+
[![l3build](https://github.com/yegor256/naive-ebnf/actions/workflows/l3build.yml/badge.svg)](https://github.com/yegor256/naive-ebnf/actions/workflows/l3build.yml)
[![CTAN](https://img.shields.io/ctan/v/naive-ebnf)](https://ctan.org/pkg/naive-ebnf)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/naive-ebnf/blob/master/LICENSE.txt)
-This LaTeX package helps you typeset an
-[Extended Backus-Naur Form](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form) (EBNF)
-using plain text format.
+This LaTeX package helps you typeset an [Extended Backus-Naur Form][EBNF]
+(EBNF) using plain text format.
-First, [install it](https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages)
+First, [install it][LaTeX]
from [CTAN](https://ctan.org/pkg/naive-ebnf)
and then use in the preamble:
@@ -22,12 +23,16 @@ and then use in the preamble:
\end{document}
```
-Otherwise, you can download [`naive-ebnf.sty`](https://raw.githubusercontent.com/yegor256/naive-ebnf/gh-pages/naive-ebnf/naive-ebnf.sty) and add to your project.
+Otherwise, you can download [`naive-ebnf.sty`][sty] and add to your project.
## How to Contribute
-If you want to contribute yourself, make a fork, then create a branch,
+If you want to contribute yourself, make a fork, then create a branch,
then run `l3build ctan` in the root directory.
It should compile everything without errors. If not, submit an issue and wait.
Otherwise, make your changes and then run `l3build ctan` again. If the build is
still clean, submit a pull request.
+
+[EBNF]: https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form
+[LaTeX]: https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages
+[sty]: https://raw.githubusercontent.com/yegor256/naive-ebnf/gh-pages/naive-ebnf/naive-ebnf.sty
diff --git a/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx b/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx
index 6886393d88..0a7b7e39bd 100644
--- a/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx
+++ b/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx
@@ -50,7 +50,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{naive-ebnf}
%<*package>
-[2023-08-11 0.0.15 EBNF in Plain Text]
+[2024/09/06 0.0.16 EBNF in Plain Text]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -113,6 +113,7 @@
% \item |[...]| denotes an optional substitution;
% \item |{...}| denotes a zero or more times repetition;
% \item |{...}+| denotes one or more times repetition;
+% \item \texttt{\char`\|\char`\|\char`\|} denotes an indent at the beginning of the string.
% \item \texttt{\char`\|\char`\|} denotes an indented vertical bar at the beginning of the string.
% \end{itemize}
@@ -235,6 +236,22 @@
% \end{document}
% \end{docshot}
+
+% The \texttt{\char`\|\char`\|\char`\|} character allows indenting the text on a new line, allowing breaking long expressions:
+% \docshotOptions{firstline=5,lastline=11}
+% \begin{docshot}
+% \documentclass{minimal}
+% \usepackage[T1]{fontenc}
+% \usepackage{naive-ebnf}
+% \begin{document}
+% \begin{ebnf}
+% <x> := "beginning" \\
+% ||| ( <y> | <z> ) \\
+% ||| "ending" \\
+% \end{ebnf}
+% \end{document}
+% \end{docshot}
+
% \section{Package Options}
% It's possible to configure the behavior of the package with the help of a few package options:
@@ -407,6 +424,8 @@
{ >([^\s]) } {\\textgreater{}\1} \ebnf_tmp%
\regex_replace_all:nnN
{ ([^\s])'([^\s]) } {\1\\textquotesingle{}\2} \ebnf_tmp%
+ \regex_replace_all:nnN { \|\|\| }%
+ {\c{makebox}[#1][r]{ }} \ebnf_tmp%
\regex_replace_all:nnN
{ ([^\s])\|([^\s]) } {\1\\textbar{}\2} \ebnf_tmp%
%
diff --git a/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf b/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf
index 4d7e89803d..6b65d1f271 100644
--- a/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf
+++ b/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf
Binary files differ
diff --git a/macros/latex/contrib/nfssext-cfr/README b/macros/latex/contrib/nfssext-cfr/README
deleted file mode 100644
index 5a59f6bf04..0000000000
--- a/macros/latex/contrib/nfssext-cfr/README
+++ /dev/null
@@ -1,26 +0,0 @@
-nfssext-cfr.sty is an extension of Philipp Lehman's nfssext.sty. nfssext.sty
-provides commands which enable one to specify font features not covered by
-the New Font Selection Scheme of LaTeX-2e. nfssext-cfr.sty provides
-additional commands, further extending the facilities offered by NFSS.
-
-nfssext-cfr.sty is required by various font support packages I've written.
-It is being released separately to avoid unnecessary duplication and
-confusion. At least, I hope it will remove at least one source of unnecessary
-confusion. I have no reason to think it will avoid any of the others.
-
-The code is somewhat experimental. It works for me. So far. If you discover
-problems, please let me know. If you know how to fix them, even better.
-
-The 2010 update includes an attempt to improve the behaviour of \ofstyle, and to
-add support for microtype. I didn't publish this at the time because I wanted
-to test it first. I have just discovered that I am still using a local copy.
-Insofar as one person can test something, I figure that 5 years ought to be
-enough to pick up the most obvious problems. However, your kilometres may, as
-always, vary.
-
-There should be no changes for the end user except that in certain cases it is
-possible that line-breaks may be altered if microtype is in use due to the
-enhanced support included for variant font families.
-
-- Clea F. Rees (ReesC21 <at> cardiff <dot> ac <dot> uk)
-2017/03/28
diff --git a/macros/latex/contrib/nfssext-cfr/README.md b/macros/latex/contrib/nfssext-cfr/README.md
new file mode 100644
index 0000000000..66c1c18770
--- /dev/null
+++ b/macros/latex/contrib/nfssext-cfr/README.md
@@ -0,0 +1,114 @@
+$Id: README.md 10366 2024-09-18 14:25:21Z cfrees $
+
+=================================================
+# nfssext-cfr
+=================================================
+
+Additions and changes Copyright (C) 2008-2024 Clea F. Rees.
+Code from The Font Installation Guide Copyright (C) 2002-2004 Philipp Lehman
+(see below)
+
+This work may be distributed and/or modified under the conditions of the
+LaTeX Project Public License, either version 1.3c of this license or (at your
+option) any later version. The latest version of this license is in
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX version
+2008-05-04 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Clea F. Rees.
+
+This work consists of all files listed in manifest.txt.
+
+
+The files nfssext-cfr.sty, nfssext-cfr-nfss.sty and nfssext-cfr-nnfss.sty are
+derived works under the terms of the LPPL. They are based on version 1.2 of
+nfssext.sty which was supplied with fontinstallationguide by Philipp Lehman.
+A copy of fontinstallationguide, including an unmodified version of
+nfssext.sty is available from
+ https://tug.ctan.org/pkg/fontinstallationguide.
+nfssext.sty wajs part of the included archive figuide-examples.tar.gz which
+consisted of examples and templates released under the LPPL. nfssext.sty was
+included in the files for tutorials 3, 5 and 6.
+
+The main modifications made to this file are described in nfssext-cfr.dtx.
+
+
+In versions which use docstrip, the docstrip files nfssext-cfr.ins,
+nfssext-cfr.dtx, nfssext-cfr-t1.dtx and nfssext-cfr-t1.ins are derived
+from skeleton.ins and skeleton.dtx, both part of of version 2.4 of Scott
+Pakin's dtxtut. A copy of dtxtut including unmodified copies of skeleton.dtx
+and skeleton ins is available from https://www.ctan.org/pkg/dtxtut and
+released under the LPPL.
+
+Other attributions are included in the source of the package itself.
+
+=================================================
+## Origins & Purpose
+=================================================
+
+nfssext-cfr is an extension of Philipp Lehman's nfssext. nfssext
+provides commands which enable one to specify font features not covered by
+the New Font Selection Scheme of LaTeX-2e. nfssext-cfr provides
+additional commands, further extending the facilities offered by NFSS.
+
+nfssext-cfr is required by various font support packages I've written.
+It is released separately both to avoid unnecessary duplication and
+confusion and to make it available for other purposes.
+
+=================================================
+## Revision History
+=================================================
+
+Please see nfssext-cfr.pdf and nfssext-cfr.dtx.
+
+=================================================
+## Current Version
+=================================================
+
+The current version is an extremely belated update for compatibility with
+the (New) New Font Selection Scheme (NNFSS) introduced in 2020. This has
+somewhat complicated things in various ways and the current version may best
+be described as a compromise which will please nobody equally.
+
+The package includes three .sty files. The main package is a wrapper which
+decides which of the other two to load, together with a small amount of common
+code.
+
+The documentation explains changes required in font definition files for
+backwards compatibility and the options users have if reliant on files which
+have not been updated. No additional incompabilities should be introduced by
+the update to nfssext-cfr. At worst, things which were broken in 2020 will
+remain broken, but breakage which can be fixed in this package _should_ be
+fixed.
+
+nfssext-cfr interferes with kernel code in various ways. This is nothing new.
+nfssext rewrote kernel definitions. nfssext-cfr rewrote kernel definitions.
+The new version of nfssext-cfr rewrites kernel definitions. Details of what is
+done under what conditions are included in the documentation.
+
+=================================================
+## Code Repositories
+=================================================
+
+Code for the LaTeX support package is hosted at
+ https://codeberg.org/cfr/nfssext
+For convenience, the repository is mirrored at
+ https://github.com/cfr42/nfssext
+
+=================================================
+## Contact Details
+=================================================
+
+Bug reports, feature requests etc. concerning the LaTeX support or packaging
+should be filed at
+ https://codeberg.org/cfr/nfssext/issues
+
+
+Clea F. Rees
+Version 1.0
+2024-09-18
+
+=================================================
+vim: et:tw=80:sw=2:
diff --git a/macros/latex/contrib/nfssext-cfr/manifest.txt b/macros/latex/contrib/nfssext-cfr/manifest.txt
new file mode 100644
index 0000000000..6d7b8ab324
--- /dev/null
+++ b/macros/latex/contrib/nfssext-cfr/manifest.txt
@@ -0,0 +1,71 @@
+# Manifest for nfssext-cfr
+
+Copyright (C) 2008-2024 Clea F. Rees
+
+This work may be distributed and/or modified under the conditions of the LaTeX
+Project Public License, either version 1.3c of this license or (at your option)
+any later version. The latest version of this license is in
+ https://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX version
+2008-05-04 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Clea F. Rees.
+
+This work consists of all files listed in manifest.txt.
+
+This file was automatically generated by `l3build manifest`.
+
+## Source files
+
+
+### Package files
+
+
+* manifest.txt
+* README.md
+* nfssext-cfr.dtx
+* nfssext-cfr.ins
+
+### Development files
+
+
+* build.lua
+* manifest.lua
+* tag.lua
+* ot1cmrw.fd
+* ot1cmrj.fd
+* ot1cmr2j.fd
+* ot1cmr1.fd
+* ot1cmr0.fd
+* ot1cmr-mod.fd
+* ot1cmr2.fd
+* ot1cmr2dj.fd
+* nfssext-cfr-t1-fam.tlg
+* nfssext-cfr-t1-series.tlg
+* nfssext-cfr-t1-shape.tlg
+* nfssext-cfr-t1.dtx
+* nfssext-cfr-t1.ins
+
+
+## Derived files
+
+
+### Package files
+
+* nfssext-cfr-nfss.sty
+* nfssext-cfr-nnfss.sty
+* nfssext-cfr.sty
+
+### Development files
+
+* nfssext-cfr-t1-fam.lvt
+* nfssext-cfr-t1-series.lvt
+* nfssext-cfr-t1-shape.lvt
+* nfssext-cfr-t1-splitter.lvt
+* nfssext-cfr-t1-splitter.lve
+
+### Typeset documentation
+
+* nfssext-cfr.pdf
diff --git a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.dtx b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.dtx
new file mode 100644
index 0000000000..723f108284
--- /dev/null
+++ b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.dtx
@@ -0,0 +1,3334 @@
+% \iffalse meta-comment
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% nfssext-cfr.dtx
+% Additions and changes Copyright (C) 2008-2024 Clea F. Rees.
+% Code from skeleton.dtx Copyright (C) 2015-2024 Scott Pakin (see below).
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008-05-04 or later.
+%
+% This work has the LPPL maintenance status 'muaintained'.
+%
+% The Current Maintainer of this work is Clea F. Rees.
+%
+% This work consists of all files listed in manifest.txt.
+%
+% The file nfssext-cfr.dtx is a derived work under the terms of the
+% LPPL. It is based on version 2.4 of skeleton.dtx which is part of
+% dtxtut by Scott Pakin. A copy of dtxtut, including the
+% unmodified version of skeleton.dtx is available from
+% https://www.ctan.org/pkg/dtxtut and released under the LPPL.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \fi
+%
+% \iffalse
+%<*driver>
+\RequirePackage{svn-prov}
+% ^^A \def\MakePrivateLetters{\makeatletter\ExplSyntaxOn\endlinechar13}
+% ^^A \def\MyMakePrivateLetters{\makeatletter\ExplSyntaxOn\endlinechar13}
+\ExplSyntaxOn
+% ^^A sylwad yannisl: https://tex.stackexchange.com/questions/723293/how-can-i-get-automatic-code-indexing-of-expl3-in-ltxdoc/723294#comment1799661_723294
+% ^^A \ExplSyntaxOn \cs_gset:Npn \MakePrivateLetters { \char_set_catcode_letter:N \@ \char_set_catcode_letter:N _ \char_set_catcode_letter:N \: } \ExplSyntaxOff`
+\cs_new_nopar:Npn \MyMakePrivateLetters
+{
+ \char_set_catcode_letter:N \@
+ \char_set_catcode_letter:N _
+ \char_set_catcode_letter:N \:
+}
+\ExplSyntaxOff
+\ProvidesFileSVN{$Id: nfssext-cfr.dtx 10366 2024-09-18 14:25:21Z cfrees $}[v1.0 \revinfo][\filebase DTX: Extended font selection for NFSS and NNFSS]
+\DefineFileInfoSVN[nfssext-cfr]
+\documentclass[10pt,british]{ltxdoc}
+% l3doc loads fancyvrb
+% fancyvrb overwrites svn-prov's macros without warning
+% restore \fileversion \filerev in case we're using l3doc
+\GetFileInfoSVN{nfssext-cfr}
+\usepackage[debug]{nfssext-cfr}
+\usepackage[rm={prop,osf},sf={prop,osf},tt={mono,tab,lf}]{cfr-lm}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\DoNotIndex{\verb,\ProvidesPackageSVN,\NeedsTeXFormat,\ProcessKeyOptions}
+\usepackage{babel}
+\usepackage{fancyhdr}
+% \usepackage[plain]{fancyref}
+\usepackage{fixfoot}
+\usepackage{array}
+\usepackage{tabularx}
+\usepackage{longtable}
+\usepackage{booktabs}
+\usepackage{multirow}
+\usepackage[inline]{enumitem}
+\usepackage[referable]{threeparttablex}
+\makeatletter
+\def\TPT@measurement{% ateb David Carlisle: https://tex.stackexchange.com/a/370691/
+ \ifdim\wd\@tempboxb<\TPTminimum
+ \hsize \TPTminimum
+ \else
+ \hsize\wd\@tempboxb
+ \fi
+ \xdef\TPT@hsize{\hsize\the\hsize \noexpand\@parboxrestore}\TPT@hsize
+ \ifx\TPT@docapt\@undefined\else
+ \TPT@docapt \vskip.2\baselineskip
+ \fi \par
+ \dimen@\dp\@tempboxb % new
+ \box\@tempboxb
+ \ifvmode \prevdepth\dimen@ \fi% was \z@ not \dimen@
+}
+\renewlist{tablenotes}{enumerate}{1}
+\setlist[tablenotes]{label=\tnote{\sffamily\alph*},ref=\alph*,itemsep=\z@,topsep=\z@skip,partopsep=\z@skip,parsep=\z@,itemindent=\z@,labelindent=\tabcolsep,labelsep=.2em,leftmargin=*,align=left,before={\unskip\medskip\rmfamily\lstyle\footnotesize}}
+\makeatother
+\usepackage{xcolor}
+\usepackage{xurl}
+\urlstyle{sf}
+\usepackage{microtype}
+%^^A \usepackage[a4paper,headheight=14pt,marginparwidth=45mm,hmarginratio=4:1,vscale=.8,hscale=.7,verbose]{geometry} % use 14pt for 11pt text, 15pt for 12pt text
+%^^A \usepackage[a4paper,headheight=14pt,vscale=.8,hscale=.7,verbose,showframe]{geometry} % use 14pt for 11pt text, 15pt for 12pt text
+%^^A \usepackage[verbose,showframe,marginparwidth=130pt,a4paper,includemp,hscale=0.8]{geometry}
+% addaswyd o chronos.tex
+\newlength\tewadjust
+\newlength\chronosdoctemplgth
+\AddToHook {begindocument/after}[.]
+{%
+ \setlength\tewadjust{\marginparwidth+\marginparsep-\paperwidth+\textwidth+\oddsidemargin+1in}%
+ \setlength\chronosdoctemplgth{0pt}%
+}
+\usepackage{csquotes}
+\MakeAutoQuote{‘}{’}
+\MakeAutoQuote*{“}{”}
+\usepackage{caption}
+\DeclareCaptionFont{lf}{\sffamily\lstyle}
+\captionsetup[table]{labelfont=lf}
+% sicrhau hyperindex=false: llwytho CYN bookmark
+\usepackage{hypdoc}% ateb Ulrike Fischer: https://tex.stackexchange.com/a/695555/
+\usepackage{bookmark}
+\hypersetup{%
+ colorlinks=true,
+ citecolor={moss},
+ extension=pdf,
+ linkcolor={strawberry},
+ linktocpage=true,
+ pdfcreator={TeX},
+ pdfproducer={pdfeTeX},
+ urlcolor={blueberry}%
+}
+\NewDocElement[%
+ idxtype=opt.,
+ idxgroup=options,
+ printtype=\textit{opt.},
+]{Opt}{option}
+\NewDocElement[%
+ idxtype=pkg.,
+ idxgroup=,
+ printtype=\textit{pkg.},
+]{Pkg}{package}
+\NewDocElement[%
+ printtype=\textdagger,
+ idxtype=,
+ idxgroup=,
+ macrolike,
+]{DMacro}{dmacro}
+\NewDocumentCommand \val { m }
+{%
+ {\ttfamily =\,\meta{#1}}%
+}
+\ExplSyntaxOn
+\NewDocumentCommand \vals { m }
+{
+ {
+ \ttfamily = \,
+ \clist_use:nn { #1 } { \textbar }
+ }
+}
+\keys_define:nn { clm / doc }
+{
+ unknown .code:n = {
+ \cs_if_free:cT { \l_keys_key_str }
+ {
+ \tl_gset:cn { \l_keys_key_str } { #1 }
+ }
+ },
+}
+\NewDocumentCommand \clmdocset { +m }
+{
+ \keys_set:nn { clm / doc } { #1 }
+}
+\ExplSyntaxOff
+\clmdocset{%
+ bug={\href{https://codeberg.org/cfr/nfssext/issues}{\textsc{bugtracker}}},
+ codeberg={\href{https://codeberg.org/cfr/nfssext}{\textsc{codeberg}}},
+ github={\href{https://github.com/cfr42/nfssext}{\textsc{github}}},
+ ctan={\href{https://ctan.org/}{\textsc{ctan}}},
+}
+\AddToHook {env/threeparttable/begin} {\typeout{Bagpuss}\sffamily}
+\usepackage{cleveref}
+\newcommand*{\gust}{\textsc{Gust}}
+\newcommand*{\lpack}[1]{\textsf{#1}}
+\newcommand*{\fgroup}[1]{\textsf{#1}}
+\newcommand*{\fname}[1]{\textsf{#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\newcommand*{\mail}[1]{\texttt{#1}}
+% \newcommand*{\pkg}[1]{\mbox{\textsf{#1}}}
+\newcommand* \nfss {\textsc{nfss}}
+\newcommand* \nnfss {\textsc{nnfss}}
+\newcommand* \svn {\textsc{svn}}
+\title{\filebase}
+\author{Clea F. Rees\thanks{%
+ Bug tracker:
+ \href{https://codeberg.org/cfr/nfssext/issues}{\url{codeberg.org/cfr/nfssext/issues}}
+ \textbar{} Code:
+ \href{https://codeberg.org/cfr/nfssext}{\url{codeberg.org/cfr/nfssext}}
+ \textbar{} Mirror:
+ \href{https://github.com/cfr42/nfssext}{\url{github.com/cfr42/nfssext}}%
+}}
+% \date{\fileversion~\filetoday}
+\date{\fileversion~\filedate}
+\pagestyle{fancy}
+\fancyhf{}
+\def\exfsdocffont{\itshape\plstyle\footnotesize}
+\def\exfsdochfont{\itshape\plstyle}
+%^^A \fancyhf[rh]{\itshape\plstyle\leftmark}
+%^^A \fancyhf[lh]{\sffamily\plstyle\leftmark}
+\fancyhf[rh]{\exfsdochfont\thepage}
+\fancyhf[rf]{\exfsdocffont\fileversion}
+% ^^A \fancyhf[rh]{\itshape\filetoday}
+% ^^A \fancyhf[ch]{\itshape Support for Latin Modern}
+% ^^A\fancyhf[lf]{\itshape\fileversion}
+%^^A \fancyhf[cf]{\itshape\plstyle--- \thepage~/~\lastpage{} ---}
+% ref. fancyhdr (or see tc3 ref'd there?)
+\renewcommand \sectionmark[1]{\markboth{\thesection{} #1}{}}
+\renewcommand \subsectionmark[1]{\markright{\arabic{subsection} #1}}
+\ExplSyntaxOn
+\fancyhf[lh]{\exfsdochfont\rlap{\nouppercase{\leftmark}}\skip_horizontal:n { \g__exfs_doc_offset_dim }\nouppercase{\rightmark}}
+%^^A \fancyhf[lf]{\exfsdocffont\rlap{\filebase}\skip_horizontal:n { \g__exfs_doc_offset_dim }\fileversion }
+\fancyhf[lf]{\exfsdocffont\filebase }
+\hook_gput_code:nnn {shipout/lastpage} {.}
+{
+ \property_record:nn {t:lastpage}{abspage,page,pagenum}
+}
+\cs_new_protected_nopar:Npn \lastpage
+{
+ \property_ref:nn {t:lastpage}{page}
+}
+\cs_new_eq:NN \OrigMakePrivateLetters \MakePrivateLetters
+\dim_new:N \g__exfs_doc_offset_dim
+\hook_gput_code:nnn { begindocument } {.}
+{
+ \dim_gset:Nn \g__exfs_doc_offset_dim { \marginparwidth + \marginparsep }
+ \fancyheadoffset[lh,lf]{ \g__exfs_doc_offset_dim }
+}
+\ExplSyntaxOff
+\makeatletter
+\def\@xobeysp{\leavevmode\penalty100\ }
+\makeatother
+\definecolor{strawberry}{rgb}{1.000,0.000,0.502}
+\definecolor{blueberry}{rgb}{0.000,0.000,1.000}
+\definecolor{moss}{rgb}{0.000,0.502,0.251}
+\begin{document}
+\let\MakePrivateLetters\MyMakePrivateLetters
+\DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \changes{2008-10-26}{2008/10/26}{First public release as part of \lpack{cfr-lm}.}
+% \changes{2008-12-22}{2008/12/22}{Updated version released standalone.}
+% \changes{\svn 6140}{2017/03/28}{%
+% Fixes a bug which prevented \cs{tmstyle} and \cs{tvstyle} working correctly if the current font was not a serif family.
+% (Especially problematic in Beamer where \cs{normalfont} cannot be used as a workaround, but annoying elsewhere.)}
+%
+% \changes{\svn 6140}{2017/03/28}{%
+% Provides something a bit closer to real documentation.%
+% }
+%
+% \maketitle\thispagestyle{empty}
+% \pdfinfo{%
+% /Creator (TeX)
+% /Producer (pdfTeX)
+% /Author (Clea F.\ Rees)
+% /Title (nfssext-cfr)
+% /Subject (TeX)
+% /Keywords (TeX,LaTeX,Clea,Rees)}
+% \pdfcatalog{%
+% /URL ()
+% /PageMode /UseOutlines}
+% \setlength{\parindent}{0pt}
+% \setlength{\parskip}{0.5em}
+%
+%
+% \begin{abstract}
+%
+% \noindent \lpack{nfssext-cfr} is an extension and modification of Philipp Lehman's \lpack{nfssext} which provides extended font selection commands modelled on those provided by \LaTeXe{}.
+% Given an appropriate font configuration, \lpack{nfssext-cfr} enables users to change the weight, width, shape and style of font as easily as they can select bold, italic or typewriter.
+% For instance, the package makes it trivial to use proportional, hanging figures in the body of the text, proportional, lining figures in captions and headers and tabular, lining figures in tables.
+% An extensive choice of commands are provided to access a wide variety of weights, widths, shapes and styles from the more common (e.g.~semi-bold or condensed) to the less common (e.g.~‘outline’ and right or upright italic).
+% Comprehensive support is provided for ‘swash’ and ‘alternate’ styles.
+% These are implemented as families rather than shapes to support fonts which offer multiple swash shapes (e.g.~small-caps, italic and upright) or alternate styles.
+% These may be used to provide effective access to fancy ligatures, end-of-word swashes etc.\ without sacrificing the range of characters provided by \textsc{t1}.
+%
+% The package is not primarily intended for direct use by end-users, but is designed rather to facilitate the creation of more sophisticated font support packages.
+% End-users may nonetheless find the package useful, subject to the constraints explained in this document.
+% Moreover, end-users may wish to pass options to the package on newer kernels, if loading font support packages which have not been updated for changes to font selection\footnote{‘Kernel’ refers to the \LaTeX{} kernel in this context and should not be confused with your system kernel.}.
+%
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \listoftables
+%
+% \section{Introduction}\label{sec:intro}
+%
+%
+% The package was originally a fairly simple extension of Philipp Lehman's \lpack{nfssext}\@.
+% \lpack{nfssext} provides commands which enable one to specify font features not covered by the New Font Selection Scheme (\nfss).
+% The package developed according to the needs of particular fonts I configured for \LaTeX{} and, in a few cases, my dissatisfaction with the original commands.
+%
+% In adapting the package for the (New) New Font Selection Scheme\footnote{%
+% Officially, there is no such designation, but I have to call it something.
+% Throughout this document and packages which depend upon it, I use this term to refer to the font selection features introduced into \LaTeX{} in 2020.%
+% } (\nnfss), I have tried to balance \begin{enumerate*}[label=(\roman*)]\item backwards compatibility\footnote{%
+% Note that 100\% backwards compatibility cannot be implemented on current \LaTeX{} kernels.%
+% } for users loading updated font support packages, \item backwards compatibility for users loading packages which haven't been updated and \item compatibility with the new features of \nnfss{}\end{enumerate*}.
+% I have also tried to account for the common case in which documents use combinations of fonts from different packages, each of which may or may not load \lpack{nfssext-cfr} and may or may not have been updated for \nnfss{}.
+% This has inevitably required some compromises and there are certainly places where I would do things differently if starting from scratch.
+%
+% While I don't recommend installing this version of \lpack{nfssext-cfr} on an older system, the package should continue to work more-or-less as it always did on older kernels.
+% To achieve this, the package is split into a main file, \file{nfssext-cfr.sty}, which provides common code and figures out whether to load code for \nfss{} (\file{nfssext-cfr-nfss.sty}) or \nnfss{} (\file{nfssext-sty-nnfss.sty}).
+% \file{nfssext-cfr-nfss.sty} is essentially what was \file{nfssext-cfr.sty} minus the code retained in the latter.
+%
+% Unfortunately, tt is impossible to ensure 100\% backwards compatibility with recent \LaTeX{} kernels.
+% By default, \lpack{nfssext-cfr} tries to interfere as little as possible with the kernel, even at the cost of backwards compatibility.
+% If \texttt{compat} is enabled, however, the package does its best to enable backwards compatible behaviour, at the cost of the new functionality provided by the kernel.
+%
+% \lpack{nfssext-cfr} does not eschew interference with the kernel at all costs.
+% Even without \texttt{compat} it patches or replaces some kernel code because some things just don't work sensibly\footnote{%
+% This is true in two main places.
+% The first is the kernel's initialisation of series at the start of the document.
+% This overwrites the default \texttt{bf} series according to the font family name rather than the font name.
+% This means that virtual fonts which depend on Computer or Latin Modern are not handled correctly and, because this code is delayed, the problem cannot be corrected by setting things up appropriately earlier.
+%
+% The second is the implementation of ‘swash’ which is by far the most problematic of the changes and one of the most difficult to navigate.
+% It isn't clear to me how seriously the kernel's definition is intended to be, but I have chosen to overwrite the kernel code here.}.
+%
+% \begin{center}
+% \fbox{%
+% \begin{minipage}{.9\linewidth}
+% \textbf{All font-support code should be updated to use \texttt{compat=false} when loading \lpack{nfssext-cfr}.}
+% The changes in \nnfss{} \textbf{require} changes to code based on Philipp Lehman's Font Installation Guide.
+% \end{minipage}}
+% \end{center}
+%
+% \section{Macros}\label{sec:macros}
+%
+% \Cref{tab:smr,tab:srr,tab:wds,tab:wghts,tab:figs,tab:gen,tab:shapes} include macros supplied by the original \lpack{nfssext} and additions available with \lpack{nfssext-cfr}.
+% Macros in \cref{tab:wds,tab:wghts,tab:shapes} should work with any font definition files which more-or-less adhere to \nfss/\nnfss.
+% This should, theoretically, be all font packages but, in practice, things are rarely so simple.
+% Macros in \cref{tab:figs,tab:gen} will work only with fonts named strictly according to the Berry naming scheme.
+%
+% In \cref{tab:wghts,tab:wds,tab:gen,tab:figs,tab:shapes}, the third column lists the default letter codes for various font features.
+% If the defaults are changed, the macros will try to do something different.
+%
+% A \texttt{+} indicates that the macro will attempt to merge the addition into the current font's family name, series or shape.
+% For example, if the current font uses oldstyle figures, the \texttt{+2} indicates that \cs{pstyle} will attempt to select a font with figures which are both proportional and oldstyle.
+%
+% A \texttt{-} indicates that the macro will attempt to subtract from the current font's family name, series or shape.
+% For example, if the current font uses oldstyle figures, the \texttt{-2} indicates that \cs{tstyle} will attempt to select a font with figures which are both tabular and oldstyle.
+%
+% A comma-separated list indicates consecutive additions and/or subtraction.
+%
+% If no \texttt{+-} is used, the macro tries to select a font with the given feature without merging.
+% For example \cs{sistyle} tries to switch to \texttt{si} shape regardless of the current font shape.
+%
+% A \texttt{--} indicates that the macro will try to clear all relevant letter codes from the current font's family name, series or shape.
+% For example, \cs{regwidth} tries to switch to a series with no letter codes indicating non-standard widths in its name.
+%
+% Additions, subtractions and clearances operate on font family names, series or shapes, as appropriate.
+% In general, macros with \texttt{style} in their names operate on family names; those with \texttt{shape} operate on shape codes\footnote{But \textbf{not} \cs{swshape}!}; and those with \texttt{width} or \texttt{weight} operate on series codes.
+%
+% The letter codes correspond to those specified by the \nfss{} specification, unless the specification does not include the relevant feature.
+% In the latter case, I tried to choose something sensible i.e.~something which made sense to me at the time.
+% These choices are not always those specified by the \nnfss{} specification, since sense and sensibility are sometimes in the eye of the encoder.
+%
+% \newcolumntype{T}{>{\ttfamily\tlstyle\arraybackslash}l}
+% \newcolumntype{F}{>{\rmfamily\arraybackslash}l}
+% \newcolumntype{R}{>{\rmfamily\arraybackslash}X}
+% \begin{table}
+% \centering
+% \begin{threeparttable}
+% \caption{Standard (kernel) macros (re)defined}\label{tab:smr}
+% \begin{tabular}{lF}
+% \toprule
+% \cs{swshape}\tnotex{tn:sw-exists}\tnotex{tn:swshape-refs}\DescribeMacro[noprint]{\swshape} & redefined on new kernels\tnotex{tn:sw} \\
+% & defined on old kernels \\
+% \cs{itshape}\DescribeMacro[noprint]{\itshape} & old kernels only\\
+% \cs{scshape}\DescribeMacro[noprint]{\scshape} & old kernels only\\
+% \cs{upshape}\DescribeMacro[noprint]{\upshape} & old kernels only\\
+% \bottomrule
+% \end{tabular}
+% \begin{tablenotes}
+% \item\label{tn:sw-exists}Defined only by newer kernels.
+% \item\label{tn:swshape-refs}See \cref{tab:gen,tab:shapes} and text.
+% \item\label{tn:sw}Definition depends on kernel, \texttt{force} and \texttt{compat}.
+% \end{tablenotes}
+% \end{threeparttable}
+% \end{table}
+% \begin{table}
+% \centering
+% \caption{Standard (kernel) font change rules redefined}\label{tab:srr}
+% \begin{tabular}{TTF}
+% \toprule
+% \multicolumn{2}{c}{Shape} & \\
+% \multicolumn{1}{c}{Current} & \multicolumn{1}{c}{Requested} & \multicolumn{1}{c}{\sffamily Applied when?} \\
+% \midrule
+% it & sc & \texttt{compat} \& \nnfss{} only \\
+% sl & sc & \texttt{compat} \& \nnfss{} only \\
+% sc & it & \texttt{compat} \& \nnfss{} only \\
+% sc & sl & \texttt{compat} \& \nnfss{} only \\
+% scsl & it & \texttt{compat} \& \nnfss{} only \\
+% \bottomrule
+% \end{tabular}
+% \end{table}
+% \begin{table}
+% \centering
+% \begin{threeparttable}
+% \caption{Family switches: general}\label{tab:gen}
+% \begin{tabularx}\linewidth{llTR}
+% \toprule
+% \multicolumn{2}{c}{Macros} & \multicolumn{1}{c}{} & \\
+% \multicolumn{1}{c}{Text Command} & \multicolumn{1}{c}{Switch} & \multicolumn{1}{c}{Family Code} & \sffamily Style \\
+% \midrule
+% \cs{textti}\DescribeMacro[noprint]{\textti} & \cs{tistyle}\DescribeMacro[noprint]{\tistyle} & +d & titling/display\\
+% \cs{textlt}\tnotex{tn:cf-textlg}\DescribeMacro[noprint]{\textlt} & \cs{ltstyle}\tnotex{tn:cf-lgweight}\DescribeMacro[noprint]{\ltstyle} & +l & light if separate family \\
+% \cs{textof}\DescribeMacro[noprint]{\textof} & \cs{ofstyle}\DescribeMacro[noprint]{\ofstyle} & +l & open-face (or outline or blank) style\\
+% \cs{textalt}\DescribeMacro[noprint]{\textalt} & \cs{altstyle}\DescribeMacro[noprint]{\altstyle} & +a & alternative style\\
+% \cs{textreg}\DescribeMacro[noprint]{\textreg} & \cs{regstyle}\DescribeMacro[noprint]{\regstyle} & -- & regular style\\
+% \cs{emboss}\DescribeMacro[noprint]{\emboss} & \cs{embossstyle}\DescribeMacro[noprint]{\embossstyle} & +e & ‘embossed’ style \\
+% \cs{textorn}\DescribeMacro[noprint]{\textorn} & \cs{ornamentalstyle}\DescribeMacro[noprint]{\ornamentalstyle} & +p & decorative initials etc.\\
+% \cs{ornament}\DescribeMacro[noprint]{\ornament} & \\
+% \cs{textqt}\DescribeMacro[noprint]{\textqt} & \cs{qtstyle}\DescribeMacro[noprint]{\qtstyle} & +q & quotation style\\
+% \cs{textsh}\DescribeMacro[noprint]{\textsh} & \cs{shstyle}\DescribeMacro[noprint]{\shstyle} & +h & shadowed style\\
+% \cs{texttm}\DescribeMacro[noprint]{\texttm} & \cs{tmstyle}\DescribeMacro[noprint]{\tmstyle} & -s,-v,+t & monowidth typewriter\\
+% \cs{texttv}\DescribeMacro[noprint]{\texttv} & \cs{tvstyle}\DescribeMacro[noprint]{\tvstyle} & -s,-t,+v & variable width typewriter\\
+% \cs{textswash}\DescribeMacro[noprint]{\textswash} & \cs{swashstyle}\tnotex{tn:cf-swstyle}\DescribeMacro[noprint]{\swashstyle} & +w & swash \\
+% \cs{textsw}\tnotex{tn:swshape-not}\DescribeMacro[noprint]{\textsw} & \cs{swshape}\tnotex{tn:swshape-not}\DescribeMacro[noprint]{\swshape} && ‘find a route to swash’ \\
+% \bottomrule
+% \end{tabularx}
+% \begin{tablenotes}
+% \item\label{tn:cf-textlg}Cf.\ \cs{textlg} in \cref{tab:wghts}.
+% \item\label{tn:cf-lgweight}Cf.\ \cs{lgweight} in \cref{tab:wghts}.
+% \item\label{tn:cf-swstyle}Cf.\ \cs{swstyle} in \cref{tab:shapes}.
+% \item\label{tn:swshape-not}Effect is kernel and option dependent, but potentially changes family and/or shape.
+% ‘Tries to find a route to swash.’
+% See text for an explanation of what, why and when.
+% See \cref{sec:imp} for details of how.
+% \end{tablenotes}
+% \end{threeparttable}
+% \end{table}
+% \begin{table}
+% \centering
+% \begin{threeparttable}
+% \caption{Family switches: figures}\label{tab:figs}
+% \begin{tabular}{llTF}
+% \toprule
+% \multicolumn{2}{c}{Macros} & \multicolumn{1}{c}{} & \\
+% \multicolumn{1}{c}{Text Command} & \multicolumn{1}{c}{Switch} & \multicolumn{1}{c}{Family Code} & \sffamily Style of Figures \\
+% \midrule
+% \cs{textln}\tnotex{tn:orig}\DescribeMacro[noprint]{\textln} & \cs{lnstyle}\tnotex{tn:orig}\DescribeMacro[noprint]{\lnstyle} & -- & lining (cf.~\cs{lstyle} below)\\
+% \cs{textos}\tnotex{tn:orig}\DescribeMacro[noprint]{\textos} & \cs{osstyle}\tnotex{tn:orig}\DescribeMacro[noprint]{\osstyle} & j & oldstyle (cf.~\cs{ostyle} below)\\
+% \cs{textinf}\DescribeMacro[noprint]{\textinf} & \cs{infstyle}\DescribeMacro[noprint]{\infstyle} & 0 & inferior \\
+% & \cs{instyle}\DescribeMacro[noprint]{\instyle} & & \\
+% \textcolor{gray}{\cs{textin}\tnotex{tn:textin-dep}}\DescribeDMacro[noprint]{\textin} & & & \textcolor{gray}{if \lpack{hyperref} is not loaded} \\
+% \cs{textsu}\DescribeMacro[noprint]{\textsu} & \cs{sustyle}\DescribeMacro[noprint]{\sustyle} & 1 & superior \\
+% \cs{textl}\tnotex{tn:new}\DescribeMacro[noprint]{\textl} & \cs{lstyle}\tnotex{tn:new}\DescribeMacro[noprint]{\lstyle} & -j & lining (cf.~\cs{lnstyle} above)\\
+% \cs{texto}\tnotex{tn:new}\DescribeMacro[noprint]{\texto} & \cs{ostyle}\tnotex{tn:new}\DescribeMacro[noprint]{\ostyle} & +j & oldstyle (cf.~\cs{osstyle} above)\\
+% \cs{textp}\tnotex{tn:new}\DescribeMacro[noprint]{\textp} & \cs{pstyle}\tnotex{tn:new}\DescribeMacro[noprint]{\pstyle} & +2 & proportional \\
+% \cs{textt}\tnotex{tn:new}\DescribeMacro[noprint]{\textt} & \cs{tstyle}\tnotex{tn:new}\DescribeMacro[noprint]{\tstyle} & -2 & tabular \\
+% \cs{textpl}\tnotex{tn:both}\DescribeMacro[noprint]{\textpl} & \cs{plstyle}\tnotex{tn:both}\DescribeMacro[noprint]{\plstyle} & -j,+2 & proportional lining \\
+% \cs{textpo}\tnotex{tn:both}\DescribeMacro[noprint]{\textpo} & \cs{postyle}\tnotex{tn:both}\DescribeMacro[noprint]{\postyle} & +2j & proportional oldstyle \\
+% \cs{texttl}\tnotex{tn:both}\DescribeMacro[noprint]{\texttl} & \cs{tlstyle}\tnotex{tn:both}\DescribeMacro[noprint]{\tlstyle} & -j,-2 & tabular lining \\
+% \cs{textto}\tnotex{tn:both}\DescribeMacro[noprint]{\textto} & \cs{tostyle}\tnotex{tn:both}\DescribeMacro[noprint]{\tostyle} & +j,-2 & tabular oldstyle \\
+% \bottomrule
+% \end{tabular}
+% \begin{tablenotes}
+% \item\label{tn:orig}This macro is the original \lpack{nfssext} command.
+% The result is independent of the current style of figures.
+% \item\label{tn:textin-dep}Deprecated.
+% \item\label{tn:new}This macro changes precisely one aspect of the current figure style.
+% That is, the result depends on the current style of figures.
+% \item\label{tn:both}This macro ensures a specific fully-specified figure style.
+% \end{tablenotes}
+% \end{threeparttable}
+% \end{table}
+% \begin{table}
+% \centering
+% \begin{threeparttable}
+% \caption{Shape switches}\label{tab:shapes}
+% \begin{tabular}{llTF}
+% \toprule
+% \multicolumn{2}{c}{Macros} & \multicolumn{1}{c}{} & \\
+% \multicolumn{1}{c}{Text Command} & \multicolumn{1}{c}{Switch} & \multicolumn{1}{c}{Shape Code} & \sffamily Shape \\
+% \midrule
+% -- & \cs{scolshape}\DescribeMacro[noprint]{\scolshape} & scol & outline small-caps \\
+% \cs{textol}\DescribeMacro[noprint]{\textol} & \cs{olshape}\DescribeMacro[noprint]{\olshape} & ol & outline\\
+% \cs{textsi}\DescribeMacro[noprint]{\textsi} & \cs{sishape}\DescribeMacro[noprint]{\sishape} & si & italic small-caps\\
+% \cs{textu}\DescribeMacro[noprint]{\textu} & \cs{ushape}\DescribeMacro[noprint]{\ushape} & u & ?? \\
+% \cs{textscu}\DescribeMacro[noprint]{\textscu} & \cs{scushape}\DescribeMacro[noprint]{\scushape} & su & ?? \\
+% \cs{textui}\DescribeMacro[noprint]{\textui} & \cs{uishape}\DescribeMacro[noprint]{\uishape} & ui & upright italic\\
+% \cs{textri}\DescribeMacro[noprint]{\textri} & \cs{rishape}\DescribeMacro[noprint]{\rishape} & ri & reverse italic\\
+% \cs{textdf}\DescribeMacro[noprint]{\textdf} & \cs{dfshape}\DescribeMacro[noprint]{\dfshape} & n & default shape\\
+% -- & \cs{swstyle}\tnotex{tn:cf-swashstyle}\DescribeMacro[noprint]{\swstyle} & +w,it & swash family \emph{and} shape \\
+% \cs{textsw}\tnotex{tn:cf-textswash}\tnotex{tn:cf-swshape-not-shape}\DescribeMacro[noprint]{\textsw} & \cs{swshape}\tnotex{tn:cf-swshape-not-shape}\DescribeMacro[noprint]{\swshape} && ‘find a route to swash’ \\
+% \bottomrule
+% \end{tabular}
+% \begin{tablenotes}
+% \item\label{tn:cf-textswash}Cf.~\cs{textswash} in \cref{tab:gen}.
+% \item\label{tn:cf-swashstyle}Cf.~\cs{swashstyle} in \cref{tab:gen}.
+% \item\label{tn:cf-swshape-not-shape}Definition is kernel and option dependent, but probably doesn't (just) change shape.
+% See \cref{tab:gen} for sketch and text for details.
+% \end{tablenotes}
+% \end{threeparttable}
+% \end{table}
+% \begin{table}
+% \centering
+% \caption{Series switches: widths}\label{tab:wds}
+% \begin{tabular}{llTF}
+% \toprule
+% \multicolumn{2}{c}{Macros} & \multicolumn{1}{c}{} & \\
+% \multicolumn{1}{c}{Text Command} & \multicolumn{1}{c}{Switch} & \multicolumn{1}{c}{Series Code} & \sffamily Width \\
+% \midrule
+% \cs{textnw}\DescribeMacro[noprint]{\textnw} & \cs{nwwidth}\DescribeMacro[noprint]{\nwwidth} & +c & narrow \\
+% \cs{textcd}\DescribeMacro[noprint]{\textcd} & \cs{cdwidth}\DescribeMacro[noprint]{\cdwidth} & +c & compact \\
+% \cs{textec}\DescribeMacro[noprint]{\textec} & \cs{ecwidth}\DescribeMacro[noprint]{\ecwidth} & +ec & extra compact \\
+% \cs{textuc}\DescribeMacro[noprint]{\textuc} & \cs{ucwidth}\DescribeMacro[noprint]{\ucwidth} & +uc & ultra compact \\
+% -- & \cs{mdwidth}\DescribeMacro[noprint]{\mdwidth} & +?m & medium \\
+% \cs{textet}\DescribeMacro[noprint]{\textet} & \cs{etwidth}\DescribeMacro[noprint]{\etwidth} & +x & extended \\
+% \cs{textep}\DescribeMacro[noprint]{\textep} & \cs{epwidth}\DescribeMacro[noprint]{\epwidth} & +x & expanded \\
+% \cs{textex}\DescribeMacro[noprint]{\textex} & \cs{exwidth}\DescribeMacro[noprint]{\exwidth} & +ex & extra expanded \\
+% \cs{textux}\DescribeMacro[noprint]{\textux} & \cs{uxwidth}\DescribeMacro[noprint]{\uxwidth} & +ux & ultra expanded \\
+% \cs{textrw}\DescribeMacro[noprint]{\textrw} & \cs{regwidth}\DescribeMacro[noprint]{\regwidth} & -- & regular \\
+% \bottomrule
+% \end{tabular}
+% \end{table}
+% \begin{table}
+% \centering
+% \begin{threeparttable}
+% \caption{Series switches: weights}\label{tab:wghts}
+% \begin{tabular}{llTF}
+% \toprule
+% \multicolumn{2}{c}{Macros} & \multicolumn{1}{c}{} & \\
+% \multicolumn{1}{c}{Text Command} & \multicolumn{1}{c}{Switch} & \multicolumn{1}{c}{Series Code} & Weight \\
+% \midrule
+% -- & \cs{mdweight}\DescribeMacro[noprint]{\mdweight} & +m? & medium \\
+% \cs{textmb}\DescribeMacro[noprint]{\textmb} & \cs{mbweight}\DescribeMacro[noprint]{\mbweight} & +mb & medium-bold \\
+% \cs{textdb}\DescribeMacro[noprint]{\textdb} & \cs{dbweight}\DescribeMacro[noprint]{\dbweight} & +db & demi-bold \\
+% \cs{textsb}\DescribeMacro[noprint]{\textsb} & \cs{sbweight}\DescribeMacro[noprint]{\sbweight} & +sb & semi-bold \\
+% \cs{textbd}\DescribeMacro[noprint]{\textbd} & \cs{bdweight}\DescribeMacro[noprint]{\bdweight} & +b & bold \\
+% & \cs{bfweight}\DescribeMacro[noprint]{\bfweight} & & \\
+% \cs{texteb}\DescribeMacro[noprint]{\texteb} & \cs{ebweight}\DescribeMacro[noprint]{\ebweight} & +eb & extra-bold \\
+% \cs{textub}\DescribeMacro[noprint]{\textub} & \cs{ubweight}\DescribeMacro[noprint]{\ubweight} & +ub & ultra-bold \\
+% \cs{textlg}\tnotex{tn:cf-textlt}\DescribeMacro[noprint]{\textlg} & \cs{lgweight}\tnotex{tn:cf-ltstyle}\DescribeMacro[noprint]{\lgweight} & +l & light when weight \\
+% \cs{textel}\DescribeMacro[noprint]{\textel} & \cs{elweight}\DescribeMacro[noprint]{\elweight} & +el & extra-light \\
+% \cs{textul}\DescribeMacro[noprint]{\textul} & \cs{ulweight}\DescribeMacro[noprint]{\ulweight} & +ul & ultra-light \\
+% \bottomrule
+% \end{tabular}
+% \begin{tablenotes}
+% \item\label{tn:cf-textlt}Cf.\ \cs{textlt} in \cref{tab:gen}.
+% \item\label{tn:cf-ltstyle}Cf.\ \cs{ltstyle} in \cref{tab:gen}.
+% \end{tablenotes}
+% \end{threeparttable}
+% \end{table}
+%
+% One further macro is available, though it has no effect on older kernels.
+%
+% \DescribeMacro{\nfssextset}\marg{key-value list}
+%
+% Package options (see \cref{sec:nkern} may also be specified after loading either in the preamble (\texttt{compat} and \texttt{force}) or at any time (\texttt{debug}).
+% This enables users to set options after some other package loads \lpack{nfssext-cfr} and allows additional information to be printed to the console and/or logged on local basis.
+%
+% \iffalse
+%^^A \section{Applications}
+%^^A
+%^^A \lpack{nfssext-cfr} may be used by any font support package which supports fonts named according to the Berry scheme and uses compatible settings in its font definition files.
+%^^A
+%^^A In general, the package does little or nothing to extend support for arbitrary fonts.
+%^^A If your favourite font's support package doesn't do what you want, it is highly unlikely loading this package will help.
+%^^A There is usually no reason to load the package in documents, because any package requiring it should explicitly load it as a dependency.
+%^^A
+%^^A However, due to complications resulting from recent changes to \LaTeX's \nfss{} in \nnfss, those using current (or even moderately recent) versions of \LaTeX{} \emph{may} need to pass the package options as explained below.
+%^^A
+%^^A Furthermore, \lpack{nfssext-cfr} may be useful if you are using a font support package which provides an option to load, say, light and semi-bold in place of regular/medium and bold.
+%^^A If the package does not allow you to use more than two weights in a single document, loading \lpack{nfssext-cfr} should allow you to access the otherwise inaccessible weights.
+%^^A
+%^^A The same principle works for widths: if the package allows you to choose between, say, condensed and regular width at load time, but doesn't provide commands to switch in the document itself, \lpack{nfssext-cfr} may enable you to access the full range of widths.
+%^^A
+%^^A The same would apply to a package which offered, say, a choice of standard, reverse and/or upright italics, but did not allow you to switch between them.
+%^^A I'm not aware of any such package, but \lpack{nfssext-cfr} could be useful if such exists.
+%^^A
+%^^A However, this principle does \textbf{not} extend to the style of figures, use of swash or choice of alternate ligatures etc\@.
+%^^A If your preferred font support package offers you a choice of proportional/tabular and/or hanging/lining figures, but provides no means to switch between them, \lpack{nfssext-cfr} is unlikely to help unless the package happens to use Berry naming\footnote{%
+%^^A Most packages don't.
+%^^A In particular, packages which use \texttt{autoinst} do not generally use Berry names.}.
+%^^A
+% \fi
+%
+%
+% \section{Newer \LaTeX{} Kernels}\label{sec:nkern}
+%
+% The package tests for the presence of \cs{init@series@setup}.
+% If this exists, it loads a newer version of the package.
+% \lpack{nfssext-cfr} supports three options, but these are only effective if the newer code (for \nnfss) is loaded.
+% All three are booleans, initially false and default to true if used without specifying a value\footnote{%
+% ‘Default’ and ‘initial’ follow the usage in \file{l3interface.pdf}, \lpack{l3keys2e} and \file{clsguide.pdf}.
+% If you are familiar with \lpack{pgfkeys}, the terms have the same meaning there.
+% Basically, the ‘initial’ value is what you get if you don't specify the option at all when loading the package, while the ‘default’ is what you get if you specify the option without specifying a value.
+%
+% ‘Scope’ is used in the standard sense applicable to \LaTeXe{} class and package options.
+% That is, it indicates whether the option may be used only when loading the package, at any point in the preamble or also in the document.%
+% }.
+% The third option is described in \cref{sec:trafferth}.
+%
+% \DescribeOpt{force}\vals{true,false}
+%
+% Default: \texttt{true}
+%
+% Initial: \texttt{false}
+%
+% Scope: preamble
+%
+% You can force the old code to be loaded using the package option \texttt{force} or \texttt{force=true}.
+% Note, however, that the old version will not work as advertised on newer kernels because \LaTeX{} will overwrite some of the package's definitions at the end of the preamble.
+%
+% \DescribeOpt{compat}\vals{true,false}
+%
+% Default: \texttt{true}
+%
+% Initial: \texttt{false}
+%
+% Scope: preamble
+%
+% In contrast, \texttt{compat} or \texttt{compat=true} will activate code which tries to partially replicate the original \lpack{nfssext-cfr}'s behaviour.
+% This is far from unproblematic.
+% In particular, it will partly break features of the current \nfss{} for other fonts.
+%
+% If your document relies exclusively on text fonts supported by this package and none of the support for those fonts has been updated, compilation should produce a more satisfactory result than otherwise.
+% If, however, your document relies partly on text fonts not supported by this package or the support for those fonts has been updated in the ‘wrong’ way, compilation may produce a less satisfactory result.
+% There is no general rule here: whether the option helps or hinders things depends entirely on the fonts, the support for those fonts and the specific contents of your document.
+%
+% The main areas known to be problematic are
+% \begin{enumerate}
+% \item\label{enum:si} italic small-capitals (but oblique small-capitals should be mostly unaffected);
+% \item\label{enum:swash} swash;
+% \item\label{enum:it} transitions between small-caps, italic, oblique, italic small-caps, oblique small-caps, upright italic, right italic and upright;
+% \item\label{enum:swshape} any transition involving swash where shape is involved;
+% \item\label{enum:m} medium weight fonts where width is non-standard e.g.~medium condensed, medium ultra condensed etc.;
+% \item\label{enum:mb} medium bold weight in any context.
+% \end{enumerate}
+% \ref{enum:si}--\ref{enum:swshape} can be worked around at the document level, with some inconvenience.
+% Subject to the caveats above, the \texttt{compat} option may avoid at least some of these inconveniences.
+%
+% \ref{enum:m} and \ref{enum:mb} cannot be worked around at the document level.
+% Nor does \lpack{nfssext-cfr} make any attempt to mitigate these two issues.
+% Doing so would involve too much interference with current \nnfss{}.
+% This means that \ref{enum:m} and \ref{enum:mb} can be addressed only in the support files for the fonts affected.
+% Neither \texttt{compat} nor \texttt{force} makes any attempt to change this.
+%
+% Maximum backwards compatibility requires changes to the font support files \emph{and} \texttt{compat=false}, but some documents may still require (hopefully minor) changes.
+%
+% \subsection{Required Changes to Font Support Files}\label{subsec:fsf}
+%
+% \textbf{In all cases, additional changes to font substitution rules may be needed to prevent multiple substitutions by the same font, since these seem to cause problems.}
+%
+% \begin{description}
+% \item[italic small-caps] The problem here is that \lpack{nfssext} encoded italic small-caps as shape \texttt{si}, whereas the kernel has plumped for \texttt{scit}.
+% It does support \texttt{scsl} (although it does not distinguish oblique from italic), but not \texttt{si}.
+% This issue can be more-or-less dealt with by support files for fonts, but some issues arise at the document level concerning transitions (below).
+%
+% Ideally, \texttt{scit} should be substituted wherever font definition files specify the shape \texttt{si}.
+% \texttt{scit} should then be defined as a (silent) substitution for \texttt{si}.
+% However, it \emph{should} be sufficient to define \texttt{si} as a substitute for \texttt{scit}.
+%
+% Fonts which provide oblique small-caps, but not italic, should specify \texttt{scsl} as a (silent) substitution for \texttt{scit} and \texttt{scit} for \texttt{si} (or \emph{vice-versa}).
+% The kernel supports \texttt{scsl} out-of-the-box, together with the substitution for \texttt{scit}, but the changes should make support for \cs{textsi} and \cs{sishape} more robust.
+% \item[transitions] \textbf{No additional changes are recommended to support files which load \lpack{nfssext-cfr}.}
+% Provided \texttt{fd} files are updated as explained above, no further adjustments should be required to enable correct font selection during transitions involving italic, oblique, small-caps, upright italic, reverse italic etc\@.
+%
+% \item[swash] \textbf{No changes are recommended for swash to font definition files for packages which load \lpack{nfssext-cfr}.}
+% If loading \lpack{nfssext-cfr}, the recommendation is to \textbf{ignore} the kernel's implementation because it cannot be made to work correctly with any family which provides swash for multiple shapes e.g.~both upright and italic or small-caps and upper/lower case\footnote{%
+% The issue here is that the kernel considers swash to be a \emph{shape}, whereas \lpack{nfssext} only \emph{called} it a shape.
+% The underlying code treated it as a \emph{style} requiring a change of font \emph{family}.
+% The shape was always (potentially switched to) italic (\texttt{it}).
+% \lpack{nfssext-cfr} offered a second version of swash, which treats it as a family possibly requiring a change of shape, but the shape is typically italic or upright, as opposed to being specific to swash.
+%
+% To make things worse, not all fonts \emph{can} be setup in the way the kernel assumes because some fonts provide swash characters in a variety of shapes (upright and italic, for example).
+% Moreover, it is common to encode additional ligatures, for example, as swash, even though this is not accurate, in order to provide \emph{some} mechanism for accessing them within a traditional 8-bit font setup.%
+% }.
+%
+% \item[swshape] \textbf{No changes for swash are recommended for \texttt{sty} files in packages which load \lpack{nfssext-cfr}.}
+%
+% \lpack{nfssext-cfr-nfss} contains the original \lpack{nfssext} definition of \cs{swshape} and \cs{textsw}.
+% This is used on newer kernels only if \texttt{force} is used, in which case the code is largely broken.
+%
+% \lpack{nfssext-cfr-nnfss} contains both the original definition and a replacement.
+% The former is used only if \texttt{compat} is selected; otherwise, the latter is used on kernels supporting \nnfss.
+% The new definition tries to figure out which of the three possible implementations, if any, to use and behaves accordingly.
+% \textbf{The kernel definition is overwritten regardless.}
+% \texttt{compat} determines only \emph{what} overwrites the kernel's.
+% \item[medium] Any line of a font definition file which codes a series of two or more letters including \texttt{m} must be changed to delete the \texttt{m}.
+% For example, \texttt{\{mc\}} \textrightarrow{} \texttt{\{c\}}, \texttt{\{muc\}} \textrightarrow{} \texttt{\{uc\}} etc\@.
+% \textbf{It is NOT sufficient to substitute such series using rules.}
+% The changes \textbf{must} be made in the primary definitions of the font families.
+% \item[mb] I've chosen to make \cs{mbweight} an alias for \cs{sbweight}.
+% Hopefully no font family supports both.
+% Provided that's not the case, \texttt{mb} should be changed to \cs{sb} in all affected font definition files.
+% \textbf{It is NOT sufficient to substitute \texttt{mb} for \texttt{sb} using a rule.}
+% The change \textbf{must} be made in the definition of the family.
+% \end{description}
+%
+%
+% \section{Older \LaTeX{} Kernels}\label{sec:okern}
+%
+% This is the code base \lpack{nfssext} was written for.
+% \lpack{nfssext-cfr} extended that code.
+%
+% To the best of my knowledge, the code used with older \LaTeX{} kernels works as expected.
+% This means it is fully compatible with the Font Installation Guide and that things like \texttt{\textbackslash scshape \textbackslash itshape} will produce italic small-caps, as expected.
+% This code is also --- again to the best of my knowledge --- fully compatible with all features of \nfss{} with the single exception of code supporting medium weight, condensed width fonts which erroneously uses \texttt{mc} rather than \texttt{c}.
+%
+% Italic small-caps is assumed to be coded as \texttt{si}.
+% Oblique small-caps is assumed to be coded as \texttt{scsl}.
+%
+% If a set of fonts provides a swash \emph{family}, it is assumed the fonts are named in accordance with the Berry scheme.
+% \cs{textswash}, \cs{swshape}, \cs{swashstyle} and/or \cs{swstyle} can then be used to access this family.
+%
+% The difference between \cs{swashstyle} and \cs{swstyle} is that the former tries to merge any swash family with the current one, whereas the latter does not.
+% So, if a font set provides swash for two widths of font, say, and you've changed widths, \cs{swashstyle} will try to find a swash character without altering the width, whereas \cs{swstyle} will first switch to the base font, resetting the width.
+% On the other hand, if the font only provides swash in the standard width, say, and you've changed widths, \cs{swashstyle} will fail to switch to swash, whereas \cs{swstyle} will succeed.
+% Packages which include swash families should, therefore, advise users which command(s) to use.
+%
+% \cs{textswash} is the text font command for \cs{swashstyle}.
+% \cs{textsw} is the text font command for \cs{swshape}.
+%
+% \cs{swshape} first tries \cs{swstyle} before changing the shape to \cs{swshapedefault}.
+% By default, this is \cs{itdefault} because swash families are often coded as italic, but this is obviously font-dependant.
+%
+% \section{Bugs, Non-Bugs \& Debugging}\label{sec:trafferth}
+%
+% The actual effect of any macro depends on any changes made to the defaults for various font features, the current font and, of course, what is available.
+%
+%^^A For example, \cs{itdefault} is intended to be the name of italic shape and is used by the redefined \cs{itshape} supplied by this package for older kernels.
+%^^A By default, \cs{itdefault} is \texttt{it}.
+%^^A However, if you change that to, say, \texttt{sl}, then \cs{itshape} will use \texttt{sl} instead.
+%^^A Note that changing \cs{itdefault} will have no effect on newer kernels.
+%^^A
+%^^A Moreover, if the current shape is small-caps, \cs{itshape} will attempt to merge the default italic shape with the small-caps on older kernels.
+%^^A That is, it will try to select small-caps italic, if possible, before resorting to plain italic.
+%^^A On newer kernels, this attempt is builtin for a limited range of shape and series changes.
+%^^A
+% The macros operating on family names are almost entirely reliant on font names adhering strictly to the Karl Berry schema.
+% This includes the stipulation that multiple variants be listed in alphabetical order.
+% These macros cannot be used with fonts named in any other way.
+%
+%^^A Although font definition files \emph{should} adhere to the series and shape codes specified by \nfss{}, some do not.
+%^^A In particular, some newer packages prepared with \texttt{autoinst} use descriptive, but non-standard, codes.
+%^^A While these work fine if the packages provide comprehensive access to the series and shapes they support, they otherwise require bespoke solutions if extensions are required.
+%^^A
+%^^A Provided font definition files do adhere to the standard encoding conventions, however, macros for changing weight, width and shape in \lpack{nfssext-cfr} should work fine on newer kernels (\nnfss).
+% On older kernels (\nfss), changes to weight and width should work and most shapes should be supported, but italic small-caps is assumed to be coded as \texttt{si} on these kernels, so you may need something like
+% \iffalse
+%<*verb>
+% \fi
+% \begin{verbatim}
+\renewcommand*{\sidefault}{scit}% or scsl or whatever
+% \end{verbatim}
+% \iffalse
+%</verb>
+% \fi
+% On newer kernels, italic small-caps should be encoded as explained above and \cs{sishape}/\cs{textsi} should work out-of-the-box with packages which use any of \texttt{si}, \texttt{scit} or \texttt{scsl}.
+%
+% If a macro's attempt to enable or disable a font feature fails, a warning will generally be written to the console, but the code tries hard not to trigger errors.
+% If an attempt triggers an error, that's a bug, so please let me know.
+% If an attempt triggers a warning, please note that there may be no bug at all and, if there is a bug, it is probably not in this package\footnote{%
+% To be clear, there certainly are bugs.
+% It is just statistically unlikely that any given warning is caused by one.}
+%
+% \DescribeOpt{debug}\vals{true,false}
+%
+% Default: \texttt{true}
+%
+% Initial: \texttt{false}
+%
+% Scope: general
+%
+% You can get a bit more information printed to the console about what's happening using this option on newer kernels.
+% Some of the same information can also be found in the log.
+%
+% \changes{v6140}{2017-03-28}{%
+% Extend documentation somewhat.}
+%
+% \changes{2010-07-17}{2015-06-19}{%
+% There should be no changes for the end user except that in certain cases it is possible that line-breaks may be altered if \lpack{microtype} is in use due to the enhanced support included for variant font families.}
+%
+% \MaybeStop{%
+% \PrintChanges
+% \setcounter{IndexColumns}{2}%
+% \PrintIndex
+% }
+%
+% \section{Implementation}\label{sec:imp}
+%
+% You do not need to read the remainder of this document in order to install or use the package.
+%
+% \subsection{Main package file}\label{subsec:main}
+%
+% This used to be the complete package.
+% Now it is mostly responsible for processing options, figuring out which kernel we're on and implementing the small amount of code shared between the implementations for \nfss{} and \nnfss{}.
+%
+% \iffalse
+%<*sty>
+% \fi
+% \begin{package}{nfssext-cfr}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{svn-prov}
+\ProvidesPackageSVN[\filebase.sty]{$Id: nfssext-cfr.dtx 10366 2024-09-18 14:25:21Z cfrees $}[v1.0 \revinfo{} extensions for NFSS and NNFSS; based on 2003/03/14 v1.2 Experimental NFSS Extensions]
+\DefineFileInfoSVN
+% \end{macrocode}
+% ^^A Paid â defnyddio \GetFileInfoSVN*/\GetFileInfoSVN{} yn y fan hon!!
+%
+%
+% \changes{v0.0}{2020-2024}{Update for \nnfss.}
+%
+% \changes{v1.0}{2024-09-16}{%
+% So \lpack{nfssext-cfr} merging is now limited to family, weight and width.}
+%^^A I *could* use font change rules for weight and width - this would make sense if I could be confident of catching all cases *and* it didn't cause problems ....
+%^^A the real problem is, I don't know what I'm supposed to avoid ....
+%
+% \changes{v1.0}{2024-09-16}{%
+% Behaviour depends on kernel version and options.
+% On newer kernels, quite conservative/less compatible by default.
+% Fully compatible on older kernels.}
+%
+% \changes{v1.0}{2024-09-16}{Split \file{nfssext-cfr.sty} into \file{nfssext-cfr\{,-nfss,-nnfss\}.sty}.}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \begin{macro}{\if@nfssextcfr@digonnew}
+% \mbox{ }
+% \begin{macrocode}
+\newif\if@nfssextcfr@digonnew
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\@nfssextcfr@digonnewtrue
+% \end{macrocode}
+% Copied verbatim, excepting format and modulo package/module name from Joseph Wright's \file{siunitx.sty} under LPPL
+% \begin{macrocode}
+\@ifundefined{ExplLoaderFileDate}{%
+ \IfFileExists{expl3.sty}{%
+ \RequirePackage{expl3}%
+ }{%
+ \RequirePackage{nfssext-cfr-nfss}%
+ \@nfssextcfr@digonnewfalse
+ }%
+}{}
+\if@nfssextcfr@digonnew
+% \end{macrocode}
+% Almost verbatim from \file{siunitx.sty}
+% \begin{macrocode}
+ \@ifl@t@r\ExplLoaderFileDate{2022-02-24}{%
+ }{%
+ \RequirePackage{nfssext-cfr-nfss}%
+ \@nfssextcfr@digonnewfalse
+ }%
+\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\if@nfssextcfr@digonnew
+% \end{macrocode}
+% BEGIN expl pkg option setup
+% \begin{macrocode}
+\newif\ifexfs@debug
+\ExplSyntaxOn
+\prop_gput:Nnn \g_msg_module_name_prop { nfssext-cfr } { exfs }
+\keys_define:nn { exfs }
+{
+% \end{macrocode}
+% \begin{option}{compat}
+% \changes{v1.0}{2024-09-16}{%
+% Add option \texttt{compat}.
+% More aggressive/backwards compatible with \texttt{compat}.}
+% \begin{macro}{\g__exfs_compat_bool}
+% Compatibility option.
+% \begin{macrocode}
+ compat .bool_gset:N = \g__exfs_compat_bool,
+ compat .default:n = true,
+ compat .initial:n = false,
+ compat .usage:n = preamble,
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+% \begin{option}{debug}
+% Turns info messages into warnings for testing purposes and possibly provides additional information.
+% \changes{v1.0}{2024-09-16}{%
+% Add option \texttt{debug}.}
+% \begin{macrocode}
+ debug .legacy_if_gset:n = exfs@debug,
+ debug .initial:n = false,
+ debug .default:n = true,
+% \end{macrocode}
+% \end{option}
+% \begin{option}{force}
+% \changes{v1.0}{2024-09-16}{%
+% Add option \texttt{force}.
+% Load old file/incompatible with \texttt{force}.}
+% \begin{macro}{\g__exfs_force_bool}
+% Force loading of code for \nfss{} even on newer kernels.
+% \begin{macrocode}
+ force .bool_gset:N = \g__exfs_force_bool,
+ force .default:n = true,
+ force .initial:n = false,
+ force .usage:n = preamble,
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+% \begin{macrocode}
+}
+% \end{macrocode}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Joseph Wright: from \file{siunitx.sty} ; \url{https://chat.stackexchange.com/transcript/message/64327823#64327823}
+% \begin{macrocode}
+\providecommand \IfFormatAtLeastTF { \@ifl@t@r \fmtversion }
+\IfFormatAtLeastTF { 2022-06-01 }
+{
+ \ProcessKeyOptions [ exfs ]
+}{
+ \RequirePackage { l3keys2e }
+ \ProcessKeysOptions { exfs }
+% \end{macrocode}
+% \begin{macro}{\ProcessKeyOptions}
+% \mbox{ }
+% \begin{macrocode}
+ \NewDocumentCommand \ProcessKeyOptions { o }
+ {
+ \IfValueTF { #1 } { \ProcessKeysOptions { #1 } }
+ { \PackageError{nfssext-cfr}{
+ Optional~argument~mandatory~on~kernels~this~old.\MessageBreak
+ Please~specify~the~module~whose~keys~should~be~processed
+ }{
+ \protect\ProcessKeyOptions~only~passes~keys~to~
+ \protect\ProcessKeyOptions\MessageBreak
+ on~older~kernels~for~the~convenience~of~package~authors.~
+ Since~\protect\ProcessKeysOptions\MessageBreak
+ takes~an~argument,~the~optional~argument~to~
+ \protect\ProcessKeyOptions~is~required
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+}
+\IfFormatAtLeastTF { 2020-10-01 }{
+}{
+ \RequirePackage { xparse }
+% \end{macrocode}
+% \begin{macro}{\ExpandArgs}
+% \mbox{ }
+% \begin{macrocode}
+ \providecommand \ExpandArgs [1]
+ { \cs_if_exist_use:c { exp_args:N #1 } }
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+}
+% \end{macrocode}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% END expl pkg option setup
+%
+% BEGIN cfr-added: bifurcate
+%
+% We test for the presence of \cs{init@series@setup} in order to determine whether to load code for \nnfss{} or \nfss.
+% If \texttt{force} is set, we load for \nfss{} regardless.
+% \begin{macrocode}
+\RequirePackage{etoolbox}
+\msg_new:nnn { nfssext-cfr } { compat }
+{
+ You ~ or ~ a ~ font-support ~ package ~ have ~ loaded ~ me ~ ( line ~ \msg_line_number: ) ~ with ~ the ~ compat ~ option. ~
+ This ~ means ~ the ~ package ~ may ~ require ~ updating. ~
+ Update ~ the ~ package ~ if ~ necessary ~ and ~ use ~ compat=false ~ when ~ loading ~ me.
+}
+\msg_new:nnn { nfssext-cfr } { force }
+{
+ You ~ or ~ a ~ font-support ~ package ~ have ~ loaded ~ me ~ ( line ~ \msg_line_number: ) ~ with ~ the ~ force ~ option. ~
+ This ~ is ~ a ~ desperate ~ measure ~ of ~ last ~ resort. ~
+ **Breakage ~ is ~ expected.**
+}
+\hook_gput_code:nnn { begindocument/before } { . }
+{
+ \cs_if_exist:NTF \init@series@setup
+ {
+ \bool_if:NTF \g__exfs_force_bool
+ {
+ \msg_warning:nn { nfssext-cfr } { force }
+ \RequirePackage {nfssext-cfr-nfss}
+ }{
+ \bool_if:NT \g__exfs_compat_bool
+ {
+ \msg_warning:nn { nfssext-cfr } { compat }
+ }
+ \RequirePackage {nfssext-cfr-nnfss}
+ }
+ }{% achosiad heb broblemau - diolch byth!
+ \RequirePackage {nfssext-cfr-nfss}
+ }
+}
+% \end{macrocode}
+% \begin{macro}{\__exfs_set:n}
+% \begin{macrocode}
+\cs_new_protected_nopar:Nn \__exfs_set:n
+{
+ \keys_set:nn { exfs } { #1 }
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\nfssextset}
+% Allow setting of options later in preamble or in document.
+% This is intended to enable debugging to be toggled locally.
+% \begin{macrocode}
+\cs_set_eq:NN \nfssextset \__exfs_set:n
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\ExplSyntaxOff
+% \end{macrocode}
+% END added
+% \begin{macro}{\DeclareTextOrnament,\ornament}
+% These are unmodified from \lpack{nfssext}.
+% I'm not aware of any \ctan{} packages using these and they have not been tested for compatibility with \nnfss{}, though I can't see any patently obvious problems.
+% \begin{macrocode}
+\newcommand*{\DeclareTextOrnament}[7]{%
+ \expandafter\def\csname#1@orn\@roman#2\endcsname{#3/#4/#5/#6/#7}}
+\begingroup
+ \catcode`\/=12
+ \gdef\exfs@split@orndef#1/#2/#3/#4/#5\@nil{%
+ \def\f@encoding{#1}%
+ \def\f@family{#2}%
+ \def\f@series{#3}%
+ \def\f@shape{#4}%
+ \def\exfs@tempa{#5}}
+\endgroup
+\def\exfs@base@family{\expandafter\exfs@get@base\f@family\@nil}
+\DeclareRobustCommand{\ornament}[1]{%
+ \expandafter\ifx\csname\exfs@base@family @orn\@roman#1\endcsname\relax
+ \PackageWarning{nfssext}{%
+ Ornament #1 undefined for font family '\exfs@base@family'\MessageBreak
+ Setting debug mark}%
+ \rule{1ex}{1ex}%
+ \else
+ \begingroup
+ \edef\exfs@tempb{\csname\exfs@base@family @orn\@roman#1\endcsname}%
+ \expandafter\expandafter\expandafter\exfs@split@orndef
+ \expandafter\string\exfs@tempb\@nil
+ \selectfont\char\exfs@tempa
+ \endgroup
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\nfssextcfr@MT@Hook,\Microtype@Hook}
+% BEGIN add \lpack{microtype} hooks
+% Partly from \lpack{microtype} docs; partly from \lpack{MinionPro} package
+% \changes{2010-07-17}{2015/06/19}{%
+% Add \lpack{microtype} support for variants.}
+% \begin{macrocode}
+\def\nfssextcfr@MT@Hook{%
+% \end{macrocode}
+%^^A \DeclareMicrotypeVariants{x,j,w,a,d,0,1}% this is the default declaration according to the docs
+%^^A \DeclareMicrotypeVariants*{2,e,h,l}% this should *append* the variants (what do I use 'f' for? better take it out...)
+% \begin{macrocode}
+ \DeclareMicrotypeVariants*{2,2d,2dj,2j,dj,e,h,l}% is this necessary or would the previous line be enough?
+}
+\@ifpackageloaded{microtype}{%
+ \PackageWarning{nfssext-cfr}{%
+ You have loaded me (or a font support package which loads me)\MessageBreak
+ after loading microtype, but microtype should be loaded after\MessageBreak
+ all font defaults have been setup}%
+ \nfssextcfr@MT@Hook
+}{%
+ \@ifundefined{Microtype@Hook}{%
+ \let\Microtype@Hook\nfssextcfr@MT@Hook}{% MinionPro has \global before this
+ \g@addto@macro\Microtype@Hook{\nfssextcfr@MT@Hook}}}
+% \end{macrocode}
+% \end{macro}
+% END
+% \end{package}
+% \iffalse
+%</sty>
+% \fi
+%
+% \subsection{NNFSS}\label{subsec:sty-nnfss}
+%
+%
+% This code was written for the \emph{current} (New) New Font Selection Scheme (2020--).
+% It should not generally be loaded on older kernels.
+%
+%
+% \iffalse
+%<*sty-nnfss>
+% \fi
+% \begin{package}{nfssext-cfr-nnfss}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{svn-prov}
+\ProvidesPackageSVN[\filebase-nnfss.sty]{$Id: nfssext-cfr.dtx 10366 2024-09-18 14:25:21Z cfrees $}[v1.0 \revinfo{} extended New New Font Selection Scheme (NNFSS) based on 2003/03/14 v1.2 Experimental NFSS Extensions]
+\DefineFileInfoSVN
+% \end{macrocode}
+% ^^A Paid â defnyddio \GetFileInfoSVN*/\GetFileInfoSVN{} yn y fan hon!!
+% END added
+% \begin{macro}{\exfs@tempa,\exfs@tempb,\exfs@tempf}
+% Scratch variables.
+% \begin{macrocode}
+\newcommand*{\exfs@tempa}{}
+\newcommand*{\exfs@tempb}{}
+% \end{macrocode}
+%:end-added
+% BEGIN added (cfr): extra variable (\cs{exfs@tempf})
+% \begin{macrocode}
+\newcommand*{\exfs@tempf}{}
+% \end{macrocode}
+% \end{macro}
+% We want to track cases where missing fonts get defined into existence.
+% To do this we define an additional macro each time \cs{wrong@fontshape} is called.
+% This is based on two proposals by Max Chernoff, but the implementation is different.
+% \begin{macrocode}
+\ExplSyntaxOn
+\hook_gput_code:nnn { cmd/wrong@fontshape/before } { . }
+{
+ \global\expandafter\expandafter\expandafter\let
+ \expandafter \csname exfs@fake@ \curr@fontshape\endcsname\relax
+}
+\ExplSyntaxOff
+% \end{macrocode}
+% \begin{macro}{\exfs@info}
+% Custom logging
+% \begin{macrocode}
+\newcommand \exfs@info[2][nfssext-cfr]{%
+ \ifexfs@debug
+ \PackageWarning{#1}{Info: #2}%
+ \else
+ \PackageInfo{#1}{#2}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% END added
+%
+% \begin{macro}{\exfs@normalise}
+% BEGIN added (cfr): normalise
+% \begin{macrocode}
+\newcommand* \exfs@normalise[1]{%
+ \ifcsname exfs@fake@\curr@fontshape\endcsname
+ \exfs@info{Current font '\curr@fontshape' is fake.\MessageBreak
+ Normalising}%
+ \expandafter\csname f@#1\endcsname{\csname #1default\endcsname}\selectfont
+ \ifcsname exfs@fake@\curr@fontshape\endcsname
+ \f@series{\seriesdefault}\f@shape{\shapedefault}\selectfont
+ \ifcsname exfs@fake@\curr@fontshape\endcsname
+% \end{macrocode}
+% This might happen, I think, if we're in a swash family or specialist encoding
+% where the default series and shape aren't available.
+% All bets are off here so try to bale out as gracefully as we can.
+% \begin{macrocode}
+ \normalfont
+ \ifcsname exfs@fake@\curr@fontshape\endcsname
+% \end{macrocode}
+% This definitely oughtn't to happen, though - things are really screwed up at
+% this point - so error.
+% \begin{macrocode}
+ \PackageError{nfssext-cfr}{Default font appears to be fake!\MessageBreak
+ Switch \textbackslash normalfont yielded '\curr@fontshape'}
+ {This is highly unlikely, so the bug is probably in the phenomena\MessageBreak
+ rather than the noumena}%
+ \fi
+ \fi
+ \fi
+ \exfs@info{Normalised to '\curr@fontshape'}%
+ \else
+ \exfs@info{Current font '\curr@fontshape' appears real}%
+ \fi
+}
+% \end{macrocode}
+% END added
+% \end{macro}
+%
+% \begin{macro}{\exfs@try@family}
+% Modified from \lpack{nfssext}?
+% Or modified from older \lpack{nfssext-cfr}?
+% \begin{macrocode}
+\newcommand*{\exfs@try@family}[2][]{%
+ \let\exfs@tempa\relax
+% \end{macrocode}
+% END added
+%
+% trans: group is requisite here else \LaTeX{} thinks the family real regardless
+% \begin{macrocode}
+ \begingroup % fel arall, bydd latex yn credu bod y family yn go iawn beth bynnag
+% \end{macrocode}
+% (o leiaf bydd latex yn dweud felly)
+% \begin{macrocode}
+ \exfs@info{Trying Font family '\f@encoding/#2'}%
+ \fontfamily{#2}\try@load@fontshape
+% \end{macrocode}
+% \cs{curr@fontshape} holds the target shape - not the current one - after an unsuccessful attempt to load **family** with \cs{try@load@fontshape}.
+% This won't work for series/shape as \cs{curr@fontshape} holds the current one in that case
+% \begin{macrocode}
+ \expandafter\ifx\csname\curr@fontshape\endcsname\relax
+ \edef\exfs@tempa{#1}%
+ \ifx\exfs@tempa\@empty
+ \PackageWarning{nfssext}{%
+ Font family '\f@encoding/#2' not available\MessageBreak
+ Ignoring font switch}%
+ \else
+ \exfs@info[nfssext]{%
+ Font family '\f@encoding/#2' not available\MessageBreak
+ Font family '\f@encoding/#1' tried instead}%
+ \exfs@try@family{#1}%
+ \fi
+ \else
+ \exfs@info{Loading font family '\f@encoding/#2'}%
+ \gdef\exfs@tempa{\fontfamily{#2}\selectfont}%
+ \fi
+ \endgroup
+ \exfs@tempa}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@try@series}
+% BEGIN added (cfr)
+% \begin{macrocode}
+\newcommand*{\exfs@try@series}[2][]{%
+% \end{macrocode}
+% We don't hand instructions to the kernel unless we know they'll succeed b/c the results are too unpredictable under \nnfss.
+%
+% Changing directly only produces usable results for series defined in the 'table' of font changes.
+% But using higher level kernel interfaces for tests doesn't work because spurious fonts get defined, which only seem to exist.
+% Theoretically, we might as well use the existing kernel's macros since we're already damned by reliance on internals anyway.
+% But then everything needs disentangling.
+% So it's easier to just adapt previous tests, even though it partially duplicates what the kernel does.
+% (But it isn't the mess swash is \dots).
+% \begin{macrocode}
+ \let\exfs@targetseries\relax
+ \edef\exfs@tempa{#2}%
+ \ifx\f@series\exfs@tempa\relax
+ \exfs@info{Current (\f@series) matches target (#2) series.\MessageBreak
+ Ignoring font switch}%
+ \else
+ \begingroup
+ \exfs@normalise{series}%
+ \edef\exfs@tempa{\f@encoding/\f@family/#2/\f@shape}%
+ \ifcsname \exfs@tempa\endcsname
+ \exfs@info{Switching series: \f@series\space -> #2}%
+ \gdef\exfs@targetseries{\fontseries{#2}\selectfont}%
+ \else
+ \edef\exfs@reserved{#1}%
+ \ifx\exfs@reserved\@empty
+ \PackageWarning{nfssext-cfr}{%
+ Font series '\f@encoding/\f@family/#2/\f@shape' not available\MessageBreak
+ Ignoring font change}%
+ \else
+ \PackageWarning{nfssext-cfr}{%
+ Font series '\f@encoding/\f@family/#2/\f@shape' not available\MessageBreak
+ Trying '\f@encoding/\f@family/#1/\f@shape'}%
+ \exfs@try@series{#1}%
+ \fi
+ \fi
+ \endgroup
+ \exfs@targetseries
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%^^A \newcommand*{\exfs@try@shape}[2][]{%
+%^^A Shapes are where the real problems start ....
+%^^A \let\exfs@targetshape\relax
+%^^A \edef\exfs@tempa{#2}%
+%^^A \ifx\f@shape\exfs@tempa\relax
+%^^A \\exfs@info{Current (\f@shape) matches target (#2) shape.\MessageBreak
+%^^A Ignoring font switch}%
+%^^A \else
+%^^A \begingroup
+%^^A \edef\exfs@tempa{\f@encoding/\f@family/\f@series/#2}%
+%^^A \ifcsname \exfs@tempa\endcsname
+%^^A \exfs@info{Switching shape: \f@shape\space -> #2}%
+%^^A \gdef\exfs@targetshape{\fontshape{#2}\selectfont}%
+%^^A \else
+%^^A \begingroup
+%^^A \exfs@normalise{shape}%
+%^^A \ifcsname \exfs@tempa\endcsname
+%^^A \exfs@info{Switching shape: \f@shape\space -> #2}%
+%^^A \gdef\exfs@targetshape{\exfs@normalise{shape}\fontshape{#2}\selectfont}%
+%^^A \endgroup
+%^^A \else
+%^^A \edef\exfs@reserved{#1}%
+%^^A \ifx\exfs@reserved\@empty
+%^^A \PackageWarning{nfssext-cfr}{%
+%^^A Font shape '\f@encoding/\f@family/\f@series/#2' not available\MessageBreak
+%^^A Ignoring font change}%
+%^^A \else
+%^^A \PackageWarning{nfssext-cfr}{%
+%^^A Font shape '\f@encoding/\f@family/\f@series/#2' not available\MessageBreak
+%^^A Trying '\f@encoding/\f@family/\f@series/#1'}%
+%^^A \exfs@try@shape{#1}%
+%^^A \fi
+%^^A \fi
+%^^A \fi
+%^^A \fi
+%^^A \endgroup
+%^^A \exfs@targetshape
+%^^A \fi}
+% \begin{macro}{\exfs@try@shapeshift}
+% Attempt to leverage kernel's mechanism.
+% \begin{macrocode}
+\def\exfs@try@shapeshift#1{%
+ \edef\exfs@targetshape{\csname #1default\endcsname}%
+ \ifx\f@shape\exfs@targetshape\relax
+ \exfs@info{Current (\f@shape) matches target (#1) shape.\MessageBreak
+ Ignoring font switch}%
+ \else
+ \not@math@alphabet\edef\exfs@targetshape\relax
+ \exfs@info{\f@shape\space -> \exfs@targetshape\MessageBreak
+ Trying \f@encoding/\f@family/\f@series/\exfs@targetshape}%
+% \end{macrocode}
+% We \emph{do} want the kernel's substitution mechanism here?
+% \begin{macrocode}
+ \fontshape{\exfs@targetshape}\selectfont
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@swshape}
+% Switching to swash is now far more complicated with (I presume) the attendant overhead, but the kernel's approach just won't work here\footnote{%
+% Implementing swash as a \emph{shape} isn't workable for fonts I've packaged, so I've made no attempt to follow the kernel here as I do for small-caps italic etc\@.
+% We're back to the single axis/multiple aspect problem which \nfss{} created by ignoring small-caps/italic and width/weight combinations.
+% It may, in fact, be wrong-headed to follow the kernel \emph{at all} here.
+% Perhaps it would be better to just provide the original implementation and some compatibility option for people who also need swash shapes in the same document?%
+% }.
+% This will become \cs{swshape} if \texttt{compat} isn't enabled.
+% \begin{macrocode}
+\newcommand* \exfs@swshape{%
+ \let\exfs@targetsw\relax
+ \begingroup % angen neu beidio? angen - bendant!
+% \end{macrocode}
+% Try kernel or configured default first so we get swash from current family etc.\ if available
+% \begin{macrocode}
+ \edef\exfs@tempa{\f@encoding/\f@family/\f@series/\swdefault}%
+ \edef\exfs@tempa@fake{exfs@fake@\exfs@tempa}%
+ \ifcsname \exfs@tempa\endcsname
+ \ifcsname exfs@fake@\exfs@tempa\endcsname
+ \exfs@swfamily
+ \else
+ \gdef\exfs@targetsw{\fontshape{\swdefault}\selectfont}% kernel
+ \fi
+ \else
+ \exfs@swfamily
+ \fi
+ \endgroup
+ \ifx\exfs@targetsw\relax
+ \PackageWarning{nfssext-cfr}{%
+ Cannot find any route to swash.\MessageBreak
+ Are you sure one is available?}%
+ \else
+ \exfs@targetsw
+ \exfs@info{Switch to swash resulted in '\curr@fontshape'}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@swfamily}
+% This is the guts of \cs{exfs@swshape}.
+% \begin{macrocode}
+\newcommand* \exfs@swfamily{%
+ \let\exfs@targetsw\relax
+ \begingroup
+% \end{macrocode}
+% ^^A \expandafter\ifx\csname\curr@fontshape\endcsname\relax
+% Try \lpack{nfssext-cfr} family switch \& our default or configured
+% \begin{macrocode}
+ \let\exfs@tempa\f@family
+ \exfs@merge@families{w}%
+ \ifx\exfs@tempa\f@family % try merge with current shape
+% \end{macrocode}
+% Try switching to upright etc.\ first
+% \begin{macrocode}
+ \fontshape{n}%
+ \exfs@merge@families{w}% up & merge
+ \if\exfs@tempa\f@family
+% \end{macrocode}
+% Try switching to \cs{swshapedefault}{} first
+% \begin{macrocode}
+ \fontshape\swshapedefault
+ \exfs@merge@families{w}% up & nfssext-cfr default/configured
+ \if\exfs@tempa\f@family
+% \end{macrocode}
+% Use \lpack{nfssext} family switch \& default or configured
+% \begin{macrocode}
+ \exf@try@family{\expandafter\exfs@get@base\f@family\@nil w}% nfssext switch
+ \if\exfs@tempa\f@family % nfssext switch
+ \fontshape\swshapedefault\exfs@try@family{%
+ \expandafter\exfs@get@base\f@family\@nil w}% nfssext switch & shape
+ \if\exfs@tempa\f@family
+ \relax % rhodd y ffidl yn y to (give up)
+ \else
+ \gdef\exfs@targetsw{%
+ \fontshape\swshapedefault\expandafter\fontfamily{%
+ \exfs@get@base\f@family\@nil w}\selectfont
+ }% nfssext switch & shape
+ \fi % nfssext switch & shape
+ \else
+ \gdef\exfs@targetsw{\expandafter\fontfamily{%
+ \exfs@get@base\f@family\@nil w}\selectfont
+ }% nfssext switch
+ \fi % nfssext switch
+ \else
+ \gdef\exfs@targetsw{%
+ \fontshape\swshapedefault\exfs@merge@families{w}%
+ }% up & nfssext-cfr default/configured
+ \fi % up & nfssext-cfr default/configured
+ \else
+ \gdef\exfs@targetsw{%
+ \fontshape{n}\exfs@merge@families{w}%
+ }% up & merge
+ \fi % up & merge
+ \else
+ \gdef\exfs@targetsw{\exfs@merge@families{w}}% merge with current shape
+ \fi % merge with current shape
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% END added
+%
+% \begin{macro}{\exfs@get@base,\exfs@get@variants,\exfs@next,\exfs@shift,\exfs@first,\exfs@part,\exfs@second}
+% Utlities
+% \begin{macrocode}
+\def\exfs@get@base#1#2#3#4\@nil{#1#2#3}
+% \end{macrocode}
+% BEGIN added (cfr): more \cs{exfs@} commands (\texttt{get@variants}, \texttt{next}, \texttt{shift}, \texttt{first}, \texttt{part}, \texttt{second})
+% \begin{macrocode}
+\def\exfs@get@variants#1#2#3#4\@nil{#4}
+\def\exfs@next#1#2\@nil{#1}
+\def\exfs@shift#1#2\@nil{#2}
+\def\exfs@first#1#2\@nil{#1}
+\def\exfs@part#1#2\@nil{#2}
+\def\exfs@second#1#2#3\@nil{#2}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@series@splitter}
+% Common method for dealing with weight and width.
+% \changes{v1.0}{2024-09-16}{%
+% Rewritten as kernel no longer supports erroneous \texttt{m}.}
+% \begin{macrocode}
+\def\exfs@series@splitter#1{%
+ \edef\exfs@weight{\expandafter\exfs@first#1\@nil}%
+ \edef\exfs@width{\expandafter\exfs@shift#1\@nil}%
+% \end{macrocode}
+% Two char width only or two char weight
+% \begin{macrocode}
+ \if\exfs@weight u\exfs@check@cx{u}%
+ \else\if\exfs@weight e\exfs@check@cx{e}%
+ \else\if\exfs@weight s\exfs@check@cx{s}%
+ \else\if\exfs@weight d\exfs@check@cx{d}%
+ \else\ifx\exfs@width\@empty % m dealt with elsewhere
+% \end{macrocode}
+% Single character width
+% \begin{macrocode}
+ \if\exfs@weight c\def\exfs@width{c}\let\exfs@weight\@empty
+ \else\if\exfs@weight x\def\exfs@width{x}\let\exfs@weight\@empty
+ \fi\fi
+ \fi\fi\fi\fi\fi
+ \exfs@info{#1 -> \exfs@weight:\exfs@width;}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@check@cx}
+% Auxiliary for \cs{exfs@check@cx}
+% \begin{macrocode}
+\def\exfs@check@cx#1{%
+ \edef\exfs@tempa{\expandafter\exfs@first\exfs@width\@nil}%
+ \if\exfs@tempa c\edef\exfs@width{#1c}\let\exfs@weight\@empty
+ \else\if\exfs@tempa x\edef\exfs@width{#1x}\let\exfs@weight\@empty
+ \else\edef\exfs@weighta{%
+ \exfs@weight\exfs@tempa
+ }\let\exfs@weight\exfs@weighta
+ \edef\exfs@widtha{%
+ \expandafter\exfs@shift\exfs@width\@nil
+ }\let\exfs@width\exfs@widtha
+ \fi\fi
+}
+% \end{macrocode}
+% \end{macro}
+% END added
+%
+% \begin{macro}{\lnstyle,\osstyle,\infstyle,\instyle,\sustyle,\swstyle}
+% Unmodified from \lpack{nfssext}.
+% Anniffiniedig -> undefined in the kernel.
+% \begin{macrocode}
+\DeclareRobustCommand{\lnstyle}{%% anniffiniedig
+ \not@math@alphabet\lnstyle\relax
+ \exfs@try@family[\expandafter\exfs@get@base\f@family\@nil]%
+ {\expandafter\exfs@get@base\f@family\@nil x}}
+\DeclareRobustCommand{\osstyle}{%% anniffiniedig
+ \not@math@alphabet\osstyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil j}}
+\DeclareRobustCommand{\infstyle}{%% anniffiniedig
+ \not@math@alphabet\infstyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil 0}}
+\let\instyle\infstyle
+\DeclareRobustCommand{\sustyle}{%% anniffiniedig
+ \not@math@alphabet\sustyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil 1}}
+\DeclareRobustCommand{\swstyle}{%% anniffiniedig
+ \not@math@alphabet\swstyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil w}}
+% \end{macrocode}
+% \end{macro}
+% BEGIN added (cfr) - merge families.
+%
+% \nnfss{} (unsurprisingly) does nothing here, so this is unproblematic.
+% The following depends **absolutely** on **complete** adherence to berry names.
+%
+% \begin{macro}{\ifexfs@added,\exfs@merge@families}
+% \cs{exfs@merge@families} is used in the macros recommended for switching the style of figures, activating swash and other variants etc.
+% \begin{macrocode}
+\newif\ifexfs@added
+\newcommand*\exfs@merge@families[1]{%
+ \edef\exfs@vartomerge{#1}%
+ \edef\exfs@variants{\expandafter\exfs@get@variants\f@family\@nil}%
+ \exfs@info{Trying to merge variants #1 and \exfs@variants}%
+ \edef\tempo{2j}%
+ \let\exfs@tempq\@empty
+ \def\exfs@tempg{}%
+ \exfs@addedfalse
+% \end{macrocode}
+% Check whether there are variants - if not just use the requested addition.
+% \begin{macrocode}
+ \ifx\exfs@variants\@empty
+ \edef\exfs@tempq{\exfs@vartomerge}%
+ \exfs@addedtrue
+ \else
+ \gdef\set{0,1,2,a,d,e,f,h,j,l,p,q,s,t,v,w}% these are the variants to consider - the order here and in the font name is crucial
+ \ifx\tempo\exfs@vartomerge
+ \@for \xx:=\set \do {%
+% \end{macrocode}
+% Check whether there are variants left - if not set the ‘next variant’ to empty
+% \begin{macrocode}
+ \ifx\exfs@variants\@empty
+ \let\exfs@nextvariant\@empty
+ \else
+% \end{macrocode}
+% O/w get the next variant
+% \begin{macrocode}
+ \edef\exfs@nextvariant{\expandafter\exfs@next\exfs@variants\@nil}%
+ \fi
+% \end{macrocode}
+%^^A \edef\tempt{2}%
+%^^A \edef\tempj{j}%
+% If the next variant is 2 or j, ignore it
+% \begin{macrocode}
+ \if\exfs@nextvariant 2%
+ \edef\exfs@variants{\expandafter\exfs@shift\exfs@variants\@nil}%
+ \fi
+ \if\exfs@nextvariant j% if the next variant is j, ignore it
+ \edef\exfs@variants{\expandafter\exfs@shift\exfs@variants\@nil}%
+ \fi
+% \end{macrocode}
+% See if the current value is either 2 or j and add it if so and if needed
+% \begin{macrocode}
+ \if\xx 2%
+ \edef\exfs@tempg{\exfs@tempg\xx}%
+ \else
+ \if\xx j% if the current value is j, we're done
+ \edef\exfs@tempq{\exfs@tempg\xx\exfs@variants}%
+ \let\exfs@variants\@empty
+ \exfs@addedtrue
+ \else
+% \end{macrocode}
+% o/w see if the current value matches the next variant
+% \begin{macrocode}
+ \ifx\xx\exfs@nextvariant
+ \edef\exfs@tempg{\exfs@tempg\xx}%
+ \edef\exfs@variants{\expandafter\exfs@shift\exfs@variants\@nil}%
+ \fi
+ \fi
+ \fi
+ }%
+ \else
+ \@for \xx:=\set \do {%
+% \end{macrocode}
+% Check whether there are variants left and, if not, add the addition if needed
+% \begin{macrocode}
+ \ifx\exfs@variants\@empty
+ \ifexfs@added
+ \else
+ \edef\exfs@tempq{\exfs@tempg\exfs@vartomerge}%
+ \exfs@addedtrue
+ \fi
+ \else
+% \end{macrocode}
+% o/w get the next variant
+% \begin{macrocode}
+ \edef\exfs@nextvariant{\expandafter\exfs@next\exfs@variants\@nil}%
+% \end{macrocode}
+% If the new token equals the next variant, combine whatever is saved in \cs{exfs@tempg} with whatever remains in \cs{exfs@variants}
+% \begin{macrocode}
+ \ifx\exfs@nextvariant\exfs@vartomerge
+ \edef\exfs@tempq{\exfs@tempg\exfs@variants}%
+ \exfs@addedtrue
+ \let\exfs@variants\@empty
+ \else
+% \end{macrocode}
+% o/w, if the current value matches the requested addition, add it in
+% \begin{macrocode}
+ \ifx\exfs@vartomerge\xx
+ \edef\exfs@tempq{\exfs@tempg\xx\exfs@variants}%
+ \exfs@addedtrue
+ \let\exfs@variants\@empty
+ \else
+% \end{macrocode}
+% o/w, if the current value matches the next variant, shift
+% \begin{macrocode}
+ \ifx\exfs@nextvariant\xx
+ \edef\exfs@tempg{\exfs@tempg\xx}%
+ \edef\exfs@variants{\expandafter\exfs@shift\exfs@variants\@nil}%
+ \fi
+ \fi
+ \fi
+ \fi
+ }%
+ \fi
+ \fi
+ \ifx\exfs@tempq\@empty
+ \PackageError{nfssext-cfr}{Something is wrong here. Ignoring font switching command.}{}%
+ \else
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil \exfs@tempq}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\pstyle,\ostyle,\postyle}
+% Commands for switching to proportional and/or oldstyle figures.
+% Compare \cs{ostyle} with \lpack{nfssext}'s \cs{osstyle} above.
+% These macros (and the block which follows) all require merging Berry names but not unmerging.
+% \begin{macrocode}
+\DeclareRobustCommand{\pstyle}{%% anniffiniedig proportional figures
+ \not@math@alphabet\pstyle\relax
+ \exfs@merge@families{2}}
+\DeclareRobustCommand{\ostyle}{%% anniffiniedig oldstyle figures (cf. original osstyle above)
+ \not@math@alphabet\ostyle\relax
+ \exfs@merge@families{j}}
+% \end{macrocode}
+% Combined command for proportional oldstyle
+% \begin{macrocode}
+\DeclareRobustCommand{\postyle}{%% anniffiniedig
+ \not@math@alphabet\postyle\relax
+ \exfs@merge@families{2j}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tistyle,\ltstyle,\ofstyle,\altstyle,\regstyle,\embossstyle,\ornamentalstyle,\swashstyle,\shstyle,\qtstyle}
+% \changes{2010-07-17}{2015/06/19}{Improve \cs{ofstyle}.}
+% These macros again require merging, but not unmerging, names.
+% \begin{macrocode}
+\DeclareRobustCommand{\tistyle}{%% anniffiniedig titling/display
+ \not@math@alphabet\tistyle\relax
+ \exfs@merge@families{d}}
+% \end{macrocode}
+% Note that this command is for use when the light version is a separate family rather than a weight variant (e.g.\ when you've got light, light bold etc.\ as well as regular weights)
+% \begin{macrocode}
+\DeclareRobustCommand{\ltstyle}{%% anniffiniedig
+ \not@math@alphabet\ltstyle\relax
+ \exfs@merge@families{l}}
+% \end{macrocode}
+% Let's hope there aren't any fonts with a light family *and* an outline/openface/blank version
+% \begin{macrocode}
+\DeclareRobustCommand{\ofstyle}{%% anniffiniedig
+ \not@math@alphabet\ofstyle\relax
+ \exfs@merge@families{l}}
+\DeclareRobustCommand{\altstyle}{%% anniffiniedig alternative style
+ \not@math@alphabet\altstyle\relax
+ \exfs@merge@families{a}}
+\DeclareRobustCommand{\regstyle}{%% anniffiniedig 'regular' style
+ \not@math@alphabet\regstyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil}}
+\DeclareRobustCommand{\embossstyle}{%% anniffiniedig
+ \not@math@alphabet\embossstyle\relax
+ \exfs@merge@families{e}}
+\DeclareRobustCommand{\ornamentalstyle}{%% anniffiniedig intended primarily for decorative initial fonts etc.
+ \not@math@alphabet\ornamentalstyle\relax
+ \exfs@merge@families{p}}
+\DeclareRobustCommand{\qtstyle}{%% anniffiniedig quotation style (assumes sans)
+ \not@math@alphabet\qtstyle\relax
+ \sffamily
+ \exfs@merge@families{q}}
+\DeclareRobustCommand{\shstyle}{%% anniffiniedig
+ \not@math@alphabet\shstyle\relax
+ \exfs@merge@families{h}}
+\DeclareRobustCommand{\swashstyle}{%% anniffiniedig an attempt to improve on \swstyle
+ \not@math@alphabet\swashstyle\relax
+ \exfs@merge@families{w}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tmstyle,\tvstyle}
+% \changes{v6140}{2017-03-28}{Modify \cs{tmstyle} and \cs{tvstyle} to unmerge sans and other typewriter before merging appropriate variant.}
+% Macros to switch between monowidth and variable typewriter.
+% These need to unmerge before merging.
+% We need to unmerge sans as well as the other kind of typewriter.
+% \begin{macrocode}
+\DeclareRobustCommand{\tmstyle}{%% anniffiniedig monowidth typewriter
+ \not@math@alphabet\tmstyle\relax
+ \exfs@unmerge@families{s}%
+ \exfs@unmerge@families{v}%
+ \exfs@merge@families{t}}
+\DeclareRobustCommand{\tvstyle}{%% anniffiniedig variable width typewriter
+ \not@math@alphabet\tvstyle\relax
+ \exfs@unmerge@families{s}%
+ \exfs@unmerge@families{t}%
+ \exfs@merge@families{v}}
+% \end{macrocode}
+% \end{macro}
+% BEGIN added (cfr) - unmerge families
+%
+% \begin{macro}{\ifexfs@take,\exfs@unmergefamilies}
+% Define the macro needed to do the unmerges.
+% \begin{macrocode}
+\newif\ifexfs@take
+\newcommand*\exfs@unmerge@families[1]{%
+ \edef\exfs@tempf{#1}%
+ \edef\tempa{\expandafter\exfs@get@variants\f@family\@nil}%
+ \let\exfs@tempq\@empty
+ \edef\exfs@tempg{}%
+ \exfs@taketrue
+% \end{macrocode}
+% Check whether there are variants - if not do nothing
+% \begin{macrocode}
+ \ifx\tempa\@empty
+ \edef\exfs@tempq{}%
+ \else
+% \end{macrocode}
+% o/w go through the variants to find the one to delete
+% \begin{macrocode}
+ \loop
+% \end{macrocode}
+% Get the next variant
+% \begin{macrocode}
+ \edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
+% \end{macrocode}
+% See if the next variant is the thing we seek and, if so, eliminate it
+% \begin{macrocode}
+ \ifx\exfs@tempf\exfs@tempn
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \edef\exfs@tempq{\exfs@tempg\tempa}%
+ \exfs@takefalse
+% \end{macrocode}
+% o/w save the next variant and move on if any variants remain
+% \begin{macrocode}
+ \else
+ \edef\exfs@tempg{\exfs@tempg\exfs@tempn}%
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \ifx\tempa\@empty% if there are no variants left, we're done
+ \edef\exfs@tempq{\exfs@tempg}%
+ \exfs@takefalse
+ \fi
+ \fi
+ \ifexfs@take % \fi yn \repeat
+ \repeat
+ \fi
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil \exfs@tempq}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tstyle,\lstyle}
+% These are simple unmerges, with no merging necessary.
+% \begin{macrocode}
+\DeclareRobustCommand{\tstyle}{%% anniffiniedig tabular figures
+ \not@math@alphabet\tstyle\relax
+ \exfs@unmerge@families{2}}
+\DeclareRobustCommand{\lstyle}{%% anniffiniedig lining figures (cf. command above)
+ \not@math@alphabet\lstyle\relax
+ \exfs@unmerge@families{j}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tlstyle,\plstyle,\tostyle}
+% Simple combinations for combined figure styles.
+%
+% Make a combined command for tabular lining
+% \begin{macrocode}
+\DeclareRobustCommand{\tlstyle}{%% anniffiniedig
+ \lstyle\tstyle}
+% \end{macrocode}
+% Proportional lining
+% \begin{macrocode}
+\DeclareRobustCommand{\plstyle}{%% anniffiniedig
+ \lstyle\pstyle}
+% \end{macrocode}
+% Tabular oldstyle {?!}
+% \begin{macrocode}
+\DeclareRobustCommand{\tostyle}{%% anniffiniedig
+ \ostyle\tstyle}
+% \end{macrocode}
+% \end{macro}
+% END added
+%
+% \begin{macro}{\sidefault,\sishape}
+% \texttt{si} is italic sc\footnote{%
+% That is, italic small-caps \emph{was} \texttt{si}.
+% These days, things are more complicated \dots.%
+% }.
+% We use the original definition for the default and then set up rules for font shape changes which try \texttt{scit} and \texttt{scsl} before falling back to \texttt{si}.
+% \begin{macrocode}
+\newcommand*{\sidefault}{si}% anniffiniedig
+% \end{macrocode}
+% Well i brofi \texttt{si} \& yna \texttt{scit} ond wn i ddim sut i wneud hon gyda'r stwff newydd \dots{}.
+% I was going to deprecate the \texttt{si} macros, but the truth is they are much nicer than having to combine macros for those cases when you really do want precisely italic small-caps.
+% They are also much more robust than somebody trying to force things with \cs{fontshape}\marg{si}\cs{selectfont}, so, on reflection, it seems better to retain the interface, even if the implementation isn't as straightforward as I'd like.
+% \begin{macrocode}
+\DeclareRobustCommand{\sishape}{%
+ \exfs@try@shapeshift{si}}
+% \end{macrocode}
+% \end{macro}
+% Kernel virtuals: ulc upper/lower case up upright.
+% \lpack{nfssext} virtuals? or \lpack{nfssext-cfr} virtuals? or?
+% It would be better to try \texttt{si}, \texttt{scit} and \texttt{scsl}, but that doesn't seem possible
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {n}{si}{scit}{scsl}% current; request (& trydedd); dewisiad cyntaf; ail ddewisiad
+\DeclareFontShapeChangeRule {it}{si}{scit}{scsl}
+\DeclareFontShapeChangeRule {sl}{si}{scit}{scsl}
+\DeclareFontShapeChangeRule {sc}{si}{scit}{scsl}
+% \end{macrocode}
+% Current shape is si => font support hasn't been updated
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {si}{sc} {si} {}
+\DeclareFontShapeChangeRule {si}{it} {si} {}
+\DeclareFontShapeChangeRule {si}{sl} {scsl} {si}
+\DeclareFontShapeChangeRule {si}{scit} {scit} {si}% rhag ofn?!
+\DeclareFontShapeChangeRule {si}{ulc} {it} {}
+\DeclareFontShapeChangeRule {si}{up}{sc}{}
+% \end{macrocode}
+%^^A \DeclareFontShapeChangeRule {si}{u} {it} {}
+%^^A \DeclareFontShapeChangeRule {si}{su}{sc}{}
+% \begin{macrocode}
+\ExplSyntaxOn
+% \end{macrocode}
+% The need for overwriting can be avoided by changing the \file{.fd} files, but \texttt{compat} supports packages I don't know about\footnote{%
+% Or haven't published?
+% I haven't actually tried it with those.%
+% } \dots
+% \changes{v1.0}{2024-09-16}{%
+% Conditionally override kernel rules affecting switches to upright/small-caps.italic etc.}
+% \begin{macrocode}
+\bool_if:NT \g__exfs_compat_bool
+{
+ \DeclareFontShapeChangeRule {it}{sc}{si}{scsl}
+ \DeclareFontShapeChangeRule{sl}{sc}{scsl}{si}
+% \end{macrocode}
+% Gofyn am italic etc\@. \textbar{} Ask about italic etc\@.
+% Sylwadau tebygol yma \dots{} \textbar{} Like comments here \dots{}
+% \begin{macrocode}
+ \DeclareFontShapeChangeRule {sc}{it} {si} {scsl}
+ \DeclareFontShapeChangeRule {sc}{sl} {scsl} {si}
+ \DeclareFontShapeChangeRule {scsl}{it} {si} {scsl}
+}
+\ExplSyntaxOff
+% \end{macrocode}
+%^^A Ddylai'r rhai hwn ddim yn defnyddio \texttt{scit}/\texttt{scsl} yn lle \textt{si}?
+%^^A Pam \texttt{si}??
+%^^A \verb|^| Wel, maen nhw'n gwneud felly eisoes??!!
+% \changes{v1.0}{2024-09-16}{%
+% Unconditionally add a bunch of shape change rules for shapes unsupported by the kernel - I don't *think* these should be problematic: if the current or requested shape is unsupported by the kernel, surely it can't be problematic to support that shape?}
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {ui}{sc}{scit}{scsl}
+\DeclareFontShapeChangeRule {ui}{scsl}{scsl}{scit}
+\DeclareFontShapeChangeRule {ui}{it}{it}{ui}
+\DeclareFontShapeChangeRule {ui}{ri}{ri}{ui}
+\DeclareFontShapeChangeRule {ui}{up}{n}{}
+\DeclareFontShapeChangeRule {ui}{ulc}{ui}{}
+% \end{macrocode}
+%^^A \DeclareFontShapeChangeRule {ui}{u}{n}{}
+%^^A \DeclareFontShapeChangeRule {ui}{su}{sc}{}
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {ri}{sc}{scit}{scsl}
+\DeclareFontShapeChangeRule {ri}{scsl}{scsl}{scit}
+\DeclareFontShapeChangeRule {ri}{it}{it}{ri}
+\DeclareFontShapeChangeRule {ri}{ui}{ui}{ri}
+% \end{macrocode}
+% Kernel virtuals: \texttt{ulc} upper/lower case up upright
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {ri}{up}{n}{}
+\DeclareFontShapeChangeRule {ri}{ulc}{ri}{}
+% \end{macrocode}
+% nfssext virtuals? or nfssext-cfr virtuals? or?
+%^^A \DeclareFontShapeChangeRule {ri}{u}{n}{}
+%^^A \DeclareFontShapeChangeRule {ri}{su}{sc}{}
+%^^A \DeclareFontShapeChangeRule {sc}{ri}{scit}{scsl}
+%^^A \DeclareFontShapeChangeRule {scsl}{ri}{scsl}{scit}
+%^^A \DeclareFontShapeChangeRule {it}{ri}{ri}{it}
+%^^A \DeclareFontShapeChangeRule {ui}{ri}{ri}{it}
+%^^A \DeclareFontShapeChangeRule {n}{ri}{ri}{it}
+%^^A \DeclareFontShapeChangeRule {sl}{ri}{ri}{it}
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {ol} {sc} {scol} {} % <- seiliedig ar nfssext-cfr-nfss.sty \scshape
+\DeclareFontShapeChangeRule {ol} {ulc} {ol} {}
+\DeclareFontShapeChangeRule {ol} {up} {ol} {}
+% \end{macrocode}
+%^^A \DeclareFontShapeChangeRule {ol} {u} {ol} {}
+%^^A \DeclareFontShapeChangeRule {ol} {su} {scol} {}
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {scol} {sc} {scol} {}
+\DeclareFontShapeChangeRule {scol} {ulc} {ol} {}
+\DeclareFontShapeChangeRule {scol} {up} {scol} {}
+% \end{macrocode}
+% \iffalse
+%^^A \DeclareFontShapeChangeRule {scol} {u} {scol} {}
+%^^A \DeclareFontShapeChangeRule {scol} {su} {scol} {}
+%^^A \DeclareFontShapeChangeRule {sc} {sc} {sc} {} % <- ??
+% \fi
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {u}{sc}{su}{} % <- seiliedig ar nfssext-cfr-nfss.sty \scshape
+\DeclareFontShapeChangeRule {su}{ulc}{u}{}
+\DeclareFontShapeChangeRule {sc}{u}{su}{}
+\DeclareFontShapeChangeRule {su}{u}{su}{}
+\DeclareFontShapeChangeRule {su}{sc}{su}{}
+% \end{macrocode}
+%^^A \DeclareFontShapeChangeRule {u} {ulc} {u} {} % <- ??
+%^^A \DeclareFontShapeChangeRule {u} {up} {u} {} % <- ??
+%^^A \DeclareFontShapeChangeRule {su} {sc} {su} {} % <- ??
+%^^A \DeclareFontShapeChangeRule {su} {ulc} {u} {} % <- ??
+%^^A \DeclareFontShapeChangeRule {su} {up} {u} {} % <- ??
+% BEGIN added (cfr)
+%
+% cfr: is this how outline shapes should be handled?
+% \begin{macro}{\oldefault,\olshape,\scoldefault,\scolshape}
+% Outline
+% \begin{macrocode}
+\newcommand*{\oldefault}{ol}% anniffiniedig
+\DeclareRobustCommand{\olshape}{%% anniffiniedig
+ \exfs@try@shapeshift{ol}}
+\newcommand*{\scoldefault}{scol}% anniffiniedig
+\DeclareRobustCommand{\scolshape}{%% anniffiniedig
+ \exfs@try@shapeshift{scol}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\udefault,\ushape,\scudefault,\scushape}
+% Underlined??
+%^^A\DeclareRobustCommand{\olshape}{%
+%^^A \not@math@alphabet\olshape\relax
+%^^A \exfs@merge@shape{\oldefault}{\scdefault}{\scoldefault}}
+% Fudge <- ??
+% \begin{macrocode}
+\newcommand*{\udefault}{u}% anniffiniedig
+\DeclareRobustCommand{\ushape}{%% anniffiniedig
+ \exfs@try@shapeshift{u}}
+\newcommand*{\scudefault}{su}% anniffiniedig
+\DeclareRobustCommand{\scushape}{%% anniffiniedig
+ \exfs@try@shapeshift{scu}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\uidefault,\uishape,\ridefault,\rishape}
+% Upright and reverse italic
+% \begin{macrocode}
+\newcommand*{\uidefault}{ui}% anniffiniedig
+\DeclareRobustCommand{\uishape}{% anniffiniedig
+ \exfs@try@shapeshift{ui}}
+% \end{macrocode}
+% Can i do this for reverse italic?
+% \begin{macrocode}
+\newcommand*{\ridefault}{ri}% anniffiniedig
+\DeclareRobustCommand{\rishape}{% anniffiniedig
+ \exfs@try@shapeshift{ri}}
+% \end{macrocode}
+% \end{macro}
+% END added
+%^^A \newcommand*{\exfs@merge@shape}[3]{%
+%^^A \edef\exfs@tempa{#1}%
+%^^A \edef\exfs@tempb{#2}%
+%^^A \ifx\f@shape\exfs@tempb
+%^^A \expandafter\ifx\csname\f@encoding/\f@family/\f@series/#3\endcsname\relax
+%^^A \else
+%^^A \edef\exfs@tempa{#3}%
+%^^A \fi
+%^^A \fi
+%^^A \fontshape{\exfs@tempa}\selectfont}
+% BEGIN added (cfr) - merge width changes into series
+%^^A \newcommand*{\exfs@font@width}{% ??
+%^^A \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+%^^A \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+%^^A \ifx\exfs@temppart\@empty
+%^^A \def\exfs@width{}
+%^^A \else
+%^^A \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+%^^A \ifx\exfs@temps{b}
+%^^A \edef\exfs@width{\expandafter\exfs@part\exfs@temps\@nil }%
+%^^A \else
+%^^A \ifx\exfs@temps{l}
+%^^A \edef\exfs@width{\expandafter\exfs@part\exfs@temps\@nil }%
+%^^A \else
+%^^A \edef\exfs@width{\exfs@temppart}%
+%^^A \fi
+%^^A \fi
+%^^A \fi
+%^^A \exfs@width
+%^^A }
+%
+% \begin{macro}{\exfs@merge@width}
+% Previously dependent on incorrect series names.
+% \changes{v1.0}{2024-09-16}{Do not depend on incorrect series names, which are no longer supported.}
+% \begin{macrocode}
+\newcommand*{\exfs@merge@width}[1]{%
+% \end{macrocode}
+%^^A \edef\exfs@temph{#1}%
+%^^A \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+%^^A \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+%^^A \def\tempb{b}%
+%^^A \def\templ{l}%
+% cfr-added
+%
+% Dibynnodd y côd gwreiddiol ar *mc* etc. \& r'odd hynny'n anghywir
+%
+% Instead of merging or unmerging cyclically, which means keeping track of everything, we split the current series (which requires some juggling, but hopefully less) and use the results.
+% \begin{macrocode}
+ \exfs@series@splitter{\f@series}%
+ \edef\exfs@temph{#1}%
+ \if\exfs@temph m\ifx\exfs@weight\@empty\else\let\exfs@temph\@empty\fi\fi
+ \if\exfs@weight m\ifx\exfs@temph\@empty\else\let\exfs@weight\@empty\fi\fi
+ \edef\exfs@series{\exfs@weight\exfs@temph}%
+% \end{macrocode}
+% end cfr-added
+%^^A \ifx\exfs@tempf\tempm\edef\exfs@tempf{}\fi %
+%^^A \ifx\exfs@temppart\@empty
+%^^A \def\exfs@series{\expandafter\exfs@tempf\exfs@temph}%
+%^^A \else
+%^^A \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+%^^A \ifx\exfs@temps\tempb
+%^^A \def\exfs@series{\expandafter\exfs@tempf\exfs@temps\exfs@temph}%
+%^^A \else
+%^^A \ifx\exfs@temps\templ
+%^^A \def\exfs@series{\expandafter\exfs@tempf\exfs@temps\exfs@temph}%
+%^^A \else
+%^^A \def\exfs@series{\expandafter\exfs@tempf\exfs@temph}%
+%^^A \fi
+%^^A \fi
+%^^A \fi
+%^^A \edef\tempy{\exfs@series}\show\tempy
+% \begin{macrocode}
+ \exfs@info{Trying \exfs@series}%
+ \exfs@try@series{\exfs@series}}
+% \end{macrocode}
+% \end{macro}
+%^^A \fontseries\exfs@series\selectfont}
+%^^A \newcommand*{\exfs@unmerge@width}{%
+%^^A \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+%^^A \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+%^^A \def\tempb{b}%
+%^^A \def\templ{l}%
+%^^A \def\tempe{}%
+%^^A \ifx\exfs@temppart\@empty
+%^^A \def\exfs@series{\expandafter\exfs@tempf}%
+%^^A \else
+%^^A \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+%^^A \ifx\exfs@temps\tempb
+%^^A \def\exfs@series{\expandafter\exfs@tempf\exfs@temps}%
+%^^A \else
+%^^A \ifx\exfs@temps\templ
+%^^A \def\exfs@series{\expandafter\exfs@tempf\exfs@temps}%
+%^^A \else
+%^^A \def\exfs@series{\expandafter\exfs@tempf}%
+%^^A \fi
+%^^A \fi
+%^^A \fi
+%^^A \ifx\tempe\exfs@series\def\exfs@series{m}\fi % angen efaillai?
+%^^A \exfs@try@series{\exfs@series}}
+% \begin{macro}{\regwidth}
+% ‘Regular’ width requires conditionally adding ‘m’.
+% \begin{macrocode}
+\DeclareRobustCommand{\regwidth}{%% anniffiniedig
+ \not@math@alphabet\regwidth\relax
+% \end{macrocode}
+% cfr altered
+% \begin{macrocode}
+ \exfs@merge@width{m}}
+% \end{macrocode}
+%^^A \exfs@unmerge@width}
+% \end{macro}
+% \begin{macro}{\nwdefault,\nwwidth,\cddefault,\cdwidth,\ecdefault,\ecwidth,\ucdefault,\ucwidth}
+% Condensed widths.
+% \begin{macrocode}
+\newcommand*{\nwdefault}{c}% anniffiniedig
+\DeclareRobustCommand{\nwwidth}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\nwwidth\relax
+ \exfs@merge@width{\nwdefault}}% neu \exfs@try@series ?
+\newcommand*{\cddefault}{c}% anniffiniedig
+\DeclareRobustCommand{\cdwidth}{% anniffiniedig ond rheolau
+ \not@math@alphabet\cdwidth\relax
+ \exfs@merge@width{\cddefault}}% neu \exfs@try@series ?
+\newcommand*{\ecdefault}{ec}% anniffiniedig
+\DeclareRobustCommand{\ecwidth}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\ecwidth\relax
+ \exfs@merge@width{\ecdefault}}% neu \exfs@try@series ?
+\newcommand*{\ucdefault}{uc}% anniffiniedig
+\DeclareRobustCommand{\ucwidth}{%% anniffiniedig
+ \not@math@alphabet\ucwidth\relax
+ \exfs@merge@width{\ucdefault}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\etdefault,\etwidth,\epdefault,\epwidth,\exdefault,\exwidth,\uxdefault,\uxwidth}
+% Extended/expanded widths.
+% \begin{macrocode}
+\newcommand*{\etdefault}{x}% anniffiniedig
+\DeclareRobustCommand{\etwidth}{%% anniffiniedig
+ \not@math@alphabet\etwidth\relax
+ \exfs@merge@width{\etdefault}}% neu \exfs@try@series ?
+\newcommand*{\epdefault}{x}% anniffiniedig
+\DeclareRobustCommand{\epwidth}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\epwidth\relax
+ \exfs@merge@width{\epdefault}}% neu \exfs@try@series ?
+\newcommand*{\exdefault}{ex}% anniffiniedig
+\DeclareRobustCommand{\exwidth}{%% anniffiniedig
+ \not@math@alphabet\exwidth\relax
+ \exfs@merge@width{\exdefault}}
+\newcommand*{\uxdefault}{ux}% anniffiniedig
+\DeclareRobustCommand{\uxwidth}{%% anniffiniedig
+ \not@math@alphabet\uxwidth\relax
+ \exfs@merge@width{\uxdefault}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\mdwdefault,\mdwidth}
+% Medium.
+% \begin{macrocode}
+\newcommand*\mdwdefault{m}
+\DeclareRobustCommand{\mdwidth}{%% anniffiniedig
+ \not@math@alphabet\mdwidth\relax
+ \exfs@merge@width{\mdwdefault}}
+% \end{macrocode}
+% \end{macro}
+% Posibl ond bydda i'n colli achosion yn siwr.
+% \textbar{} Possible but I'd lose cases for sure.
+% Hefyd hoffwn i ddim dyfalu pa rheolau y bydden nhw eu dewis.
+% \textbar{} Also I wouldn't like to guess which rules they'll choose.
+%^^A \DeclareFontSeriesChangeRule {bc}{ux}{bux}{bc}
+%^^A \DeclareFontSeriesChangeRule {bx}{ux}{bux}{bx}
+%^^A \DeclareFontSeriesChangeRule {b}{ux} {bux} {b}
+%^^A \DeclareFontSeriesChangeRule {c}{ux}{ux}{m}
+%^^A \DeclareFontSeriesChangeRule {ebc}{ux}{ebux}{}
+%^^A \DeclareFontSeriesChangeRule {ec}{ux}{ux}{m}
+%^^A \DeclareFontSeriesChangeRule {sc}{ux}{ux}{m}
+%^^A \DeclareFontSeriesChangeRule {ebx}{ux}{ebux}{ebx}
+%^^A \DeclareFontSeriesChangeRule {eb}{ux}{ebux}{}
+%^^A \DeclareFontSeriesChangeRule {elc}{ux}{elux}{}
+%^^A \DeclareFontSeriesChangeRule {elx}{ux}{elux}{elx}
+%^^A \DeclareFontSeriesChangeRule {el}{ux}{elux}{}
+%^^A \DeclareFontSeriesChangeRule {lc}{ux}{lux}{}
+%^^A \DeclareFontSeriesChangeRule {lx}{ux}{lux}{lx}
+%^^A \DeclareFontSeriesChangeRule {l}{ux} {lux} {l}
+%^^A \DeclareFontSeriesChangeRule {m}{ux} {ux} {m}
+%^^A \DeclareFontSeriesChangeRule {sbc}{ux}{sbux}{}
+%^^A \DeclareFontSeriesChangeRule {sbx}{ux}{sbux}{sbx}
+%^^A \DeclareFontSeriesChangeRule {sb}{ux} {sbux} {}
+%^^A \DeclareFontSeriesChangeRule {slc}{ux}{slux}{}
+%^^A \DeclareFontSeriesChangeRule {sl}{ux}{slux}{}
+%^^A \DeclareFontSeriesChangeRule {ubc}{ux}{ubux}{}
+%^^A \DeclareFontSeriesChangeRule {ubx}{ux}{ubux}{ubx}
+%^^A \DeclareFontSeriesChangeRule {ub}{ux}{ubux}{}
+%^^A \DeclareFontSeriesChangeRule {ulc}{ux}{ulux}{}
+%^^A \DeclareFontSeriesChangeRule {ulx}{ux}{ulux}{ulx}
+%^^A \DeclareFontSeriesChangeRule {ul}{x}{ulx}{}
+%^^A \DeclareFontSeriesChangeRule {x}{ul}{ulx}{}
+%^^A \DeclareFontSeriesChangeRule {ux}{m?}{ux}{}
+%^^A \DeclareFontSeriesChangeRule {ux}{?m}{m}{}
+%
+% BEGIN added (cfr) merge weight changes into series
+%
+% \begin{macro}{\exfs@merge@weight}
+% The pay off for setting up series splitting is that we can reuse the method here and, as in the case of width, the definition is greatly simplified\footnote{%
+% At least if you don't look at the splitter code.}.
+% \begin{macrocode}
+\newcommand*{\exfs@merge@weight}[1]{%
+ \exfs@series@splitter{\f@series}%
+% \end{macrocode}
+% Save current series so we can test for change
+% \begin{macrocode}
+ \let\exfs@tempg\f@series
+ \def\exfs@temph{#1}%
+ \if\exfs@temph m\relax
+ \ifx\exfs@width\@empty\relax
+ \else
+ \let\exfs@temph\@empty
+ \fi
+ \fi
+ \edef\exfs@series{\exfs@temph\exfs@width}%
+ \ifx\exfs@temph\exfs@series
+ \exfs@info{Trying \exfs@series}%
+ \exfs@try@series{\exfs@series}%
+ \else
+ \exfs@info{Trying \exfs@series, favouring \exfs@weight}%
+ \exfs@try@series[\exfs@weight]{\exfs@series}% assume user wants to change weight even if this changes back to the default width
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%^^A Meddwl bod y côd hwn yn dibynnu ar y problem 'm' eto
+%^^A Ond alla i ddim jest ychwanegu un
+%^^A \edef\exfs@tempg{#1}%
+%^^A \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+%^^A \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+%^^A \def\templ{l}%
+%^^A \def\tempb{b}%
+%^^A Case when there's no second part, so the single character must be the weight and should be replaced
+%^^A \ifx\exfs@temppart\@empty
+%^^A \def\exfs@series{\expandafter\exfs@tempg}%
+%^^A %:case when there's a second part
+%^^A \else
+%^^A %:get first character of second part
+%^^A \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+%^^A \edef\exfs@tempw{\expandafter\exfs@part\exfs@temps\@nil }%
+%^^A %:is the first character b? if so, it is part of the weight and should be replaced
+%^^A \ifx\exfs@temps\tempb
+%^^A \def\exfs@series{\expandafter\exfs@tempg\exfs@tempw}%
+%^^A \else
+%^^A %:is the first character l? if so, it is part of the weight and should be replaced
+%^^A \ifx\exfs@temps\templ
+%^^A \def\exfs@series{\expandafter\exfs@tempg\exfs@tempw}%
+%^^A \else
+%^^A %:o/w the first character is part of the width and should be retained
+%^^A \def\exfs@series{\expandafter\exfs@tempg\exfs@temppart}%
+%^^A \fi
+%^^A \fi
+%^^A \fi
+%^^A %\fontseries\exfs@series\selectfont}
+%^^A \ifx\exfs@tempg\exfs@series
+%^^A \exfs@try@series{\exfs@series}%
+%^^A \else
+%^^A \exfs@try@series[\exfs@tempg]{\exfs@series}% assume user wants to change weight even if this changes back to the default width
+%^^A \fi}
+% \begin{macro}{\mbdefault,\mbweight,\bddefault,\bfweight,\bdweight}
+% Ref.: \file{sources2e.pdf} and/or stripped code in \path{base}.
+%
+% The annotation ‘anniffiniedig’ indicates the macro is \emph{not} defined by the kernel as of 2024.
+% The addition ‘ond rheolau’ means there are nonetheless relevant rules.
+% The comment ‘dim byd i'w gael eu wneud yma’ indicates that defining the default is now sufficient and no additional font switch or text command is required.
+% \begin{macrocode}
+\newcommand*{\mbdefault}{sb}% dim byd i'w gael ei wneud yma
+\DeclareRobustCommand{\mbweight}{%% anniffiniedig
+ \not@math@alphabet\mbweight\relax
+ \exfs@merge@weight{\mbdefault}}
+\newcommand*{\bddefault}{b}% dim byd i'w gael ei wneud yma
+\DeclareRobustCommand{\bfweight}{%% anniffiniedig
+ \not@math@alphabet\bfweight\relax
+ \exfs@merge@weight{\bddefault}}
+\DeclareRobustCommand{\bdweight}{%% anniffiniedig
+ \not@math@alphabet\bdweight\relax
+ \exfs@merge@weight{\bddefault}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\mwdefault,\mdweight}
+% Regular, medium, default are all irregular, exceptional, fraught.
+% \begin{macrocode}
+\newcommand*\mwdefault{m}
+\DeclareRobustCommand{\mdweight}{%% anniffiniedig
+ \not@math@alphabet\mdweight\relax
+ \exfs@merge@weight{\mwdefault}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dbdefault,\dbweight,\sbdefault,\sbweight,\ebdefault,\ebweight,\ubdefault,\ubweight}
+% \changes{v1.0}{2024-09-16}{%
+% Make \cs{mbdefault} sb (duplicating \cs{sbdefault}) as I can't come up with anything better.}
+% Heavy weights.
+% \begin{macrocode}
+\newcommand*{\dbdefault}{db}% anniffiniedig
+\DeclareRobustCommand{\dbweight}{%% anniffiniedig
+ \not@math@alphabet\dbweight\relax
+ \exfs@merge@weight{\dbdefault}}
+\newcommand*{\sbdefault}{sb}% anniffiniedig
+\DeclareRobustCommand{\sbweight}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\sbweight\relax
+ \exfs@merge@weight{\sbdefault}}% neu \exfs@try@series ?
+\newcommand*{\ebdefault}{eb}% anniffiniedig
+\DeclareRobustCommand{\ebweight}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\ebweight\relax
+ \exfs@merge@weight{\ebdefault}}% neu \exfs@try@series ?
+\newcommand*{\ubdefault}{ub}% anniffiniedig
+\DeclareRobustCommand{\ubweight}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\ubweight\relax
+ \exfs@merge@weight{\ubdefault}}% neu \exfs@try@series ?
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\lgdefault,\lgweight,\eldefault,\elweight,\uldefault,\ulweight}
+% Light weights.
+% \begin{macrocode}
+\newcommand*{\lgdefault}{l}% anniffiniedig
+% \end{macrocode}
+% Note - use this if light is a variant weight, rather than a separate family
+% \begin{macrocode}
+\DeclareRobustCommand{\lgweight}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\lgweight\relax
+ \exfs@merge@weight{\lgdefault}}% neu \exfs@try@series ?
+\newcommand*{\eldefault}{el}% anniffiniedig
+\DeclareRobustCommand{\elweight}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\elweight\relax
+ \exfs@merge@weight{\eldefault}}% neu \exfs@try@series ?
+\newcommand*{\uldefault}{ul}% anniffiniedig
+\DeclareRobustCommand{\ulweight}{%% anniffiniedig ond rheolau
+ \not@math@alphabet\ulweight\relax
+ \exfs@merge@weight{\uldefault}}% neu \exfs@try@series ?
+% \end{macrocode}
+% \end{macro}
+% END added
+%^^A \DeclareRobustCommand{\itshape}{%
+%^^A \not@math@alphabet\itshape\mathit
+%^^A \exfs@merge@shape{\itdefault}{\scdefault}{\sidefault}}
+% Original
+%^^A\DeclareRobustCommand{\scshape}{%
+%^^A \not@math@alphabet\scshape\relax
+%^^A \exfs@merge@shape{\scdefault}{\itdefault}{\sidefault}}
+%^^A BEGIN cfr-altered: \scshape
+%^^A \DeclareRobustCommand{\scshape}{%
+%^^A \not@math@alphabet\scshape\relax
+%^^A \def\tempu{u}%
+%^^A \def\tempo{ol}%
+%^^A \ifx\f@shape\tempu
+%^^A \exfs@merge@shape{\scdefault}{\udefault}{\scudefault}%
+%^^A \else
+%^^A \ifx\f@shape\tempo
+%^^A \exfs@merge@shape{\scdefault}{\oldefault}{\scoldefault}%
+%^^A \else
+%^^A \exfs@merge@shape{\scdefault}{\itdefault}{\sidefault}%
+%^^A \fi
+%^^A \fi}
+%^^A END end-altered
+%^^A \DeclareRobustCommand{\upshape}{%
+%^^A \not@math@alphabet\upshape\relax
+%^^A \exfs@merge@shape{\updefault}{\sidefault}{\scdefault}}
+% \begin{macro}{\dfshape}
+% Something simpler.
+% \begin{macrocode}
+\let\dfshape\normalshape
+% \end{macrocode}
+% \end{macro}
+%^^A \DeclareRobustCommand{\dfshape}{%
+%^^A \not@math@alphabet\dfshape\relax
+%^^A \fontshape\shapedefault\selectfont}
+% \begin{macro}{\swashapedefault}
+% cfr: be' i wneud am hwn?
+% \begin{macrocode}
+\newcommand*{\swshapedefault}{\itdefault}
+% \end{macrocode}
+% \end{macro}
+% \LaTeX{} ddim yn cynnwys \cs{swstyle} felly \dots?
+% \textbar{} \LaTeX{} doesn't include \cs{swstyle} so \dots?
+% \begin{macrocode}
+\ExplSyntaxOn
+\hook_gput_code:nnn {begindocument}{.}
+{% compatibility with original nfss \swshape
+% \end{macrocode}
+% Note this doesn't affect \cs{swashstyle} or \cs{textswash}
+% \begin{macro}{\swshape}
+% \changes{v1.0}{2024-09-16}{%
+% Conditionally overwrite \cs{swshape} to take account of default setting.
+% This is not for any package I know of on \ctan, but the original code used \cs{textsw}.%
+% }%
+% Conditional definition.
+% We overwrite the kernel's definition either way.
+% The \texttt{compat} option determines only with what we overwrite it.
+% \begin{macrocode}
+ \bool_if:NTF \g__exfs_compat_bool
+ {
+ \DeclareRobustCommand{\swshape}
+ {
+ \not@math@alphabet\swshape\relax
+ \swstyle\fontshape\swshapedefault\selectfont
+ }
+ \PackageWarning{nfssext-cfr}{
+ Overwriting ~ kernel ~ definition ~ of ~ \swshape \space (compat)
+ }
+ }{
+ \DeclareRobustCommand \swshape
+ {
+ \not@math@alphabet\swshape\relax
+ \exfs@swshape
+ }
+ \PackageWarning{nfssext-cfr}{
+ Overwriting ~ kernel ~ definition ~ of ~ \swshape \space (new)
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textin}
+% Conditional definition.
+% \begin{macrocode}
+ \@ifpackageloaded{hyperref}{
+ \hook_gput_code:nnn { cmd/textin/before } { . }
+ {
+ \exfs@info{
+ Note ~ that ~ '\protect\textin' ~ is ~ defined ~ by ~ hyperref.\MessageBreak
+ Use ~ for ~ inferior ~ digits ~ will ~ yield ~ an\MessageBreak
+ undefined ~ command ~ error ~ in ~ document ~ font ~ encodings.\MessageBreak
+ Use ~ '\protect\textinf' ~ to ~ access ~ inferior ~ digits
+ }
+ }
+ }{
+ \DeclareTextFontCommand{\textin}{\infstyle}
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+}
+\ExplSyntaxOff
+% \end{macrocode}
+% \begin{macro}{\textln,\textos,\textinf,\textsu,\textsi,\textdf}
+% The annotation ‘anniffiniedig’ indicates the macro is \emph{not} defined by the kernel as of 2024.
+% \begin{macrocode}
+\DeclareTextFontCommand{\textln}{\lnstyle}% anniffiniedig
+\DeclareTextFontCommand{\textos}{\osstyle}% anniffiniedig
+\DeclareTextFontCommand{\textinf}{\infstyle}% anniffiniedig
+\DeclareTextFontCommand{\textsu}{\sustyle}% anniffiniedig
+\DeclareTextFontCommand{\textsi}{\sishape}% anniffiniedig
+\DeclareTextFontCommand{\textdf}{\dfshape}% anniffiniedig
+% \end{macrocode}
+% \end{macro}
+% \cs{textsw} is already defined on newer kernels with essentially the same meaning as \lpack{nfssext} originally gave it, so we remove the definition here.
+% However, the redefinition of \cs{swshape} means \cs{textsw} is effectively redefined, so the kernel definition is only technically retained.
+%
+% BEGIN added (cfr)
+%
+% \begin{macro}{\textti,\textlt,\textof,\textalt,\textreg,\emboss,\textorn,\textqt,\textsh,\texttm,\texttv}
+% Families
+% \begin{macrocode}
+\DeclareTextFontCommand{\textti}{\tistyle}% anniffiniedig
+\DeclareTextFontCommand{\textlt}{\ltstyle}% anniffiniedig
+\DeclareTextFontCommand{\textof}{\ofstyle}% anniffiniedig % open-face (or outline or blank) style
+\DeclareTextFontCommand{\textalt}{\altstyle}% anniffiniedig % alternative style
+\DeclareTextFontCommand{\textreg}{\regstyle}% anniffiniedig % `regular' style
+\DeclareTextFontCommand{\emboss}{\embossstyle}% anniffiniedig
+\DeclareTextFontCommand{\textorn}{\ornamentalstyle}% anniffiniedig % intended primarily for decorative initials etc.
+\DeclareTextFontCommand{\textqt}{\qtstyle}% anniffiniedig
+\DeclareTextFontCommand{\textsh}{\shstyle}% anniffiniedig % shadowed style
+\DeclareTextFontCommand{\texttm}{\tmstyle}% anniffiniedig
+\DeclareTextFontCommand{\texttv}{\tvstyle}% anniffiniedig
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textl,\texto,\textp,\textt,\textpl,\textpo,\texttl,\textto}
+% Families - figures
+% \begin{macrocode}
+\DeclareTextFontCommand{\textl}{\lstyle}% anniffiniedig
+\DeclareTextFontCommand{\texto}{\ostyle}% anniffiniedig
+\DeclareTextFontCommand{\textp}{\pstyle}% anniffiniedig
+\DeclareTextFontCommand{\textt}{\tstyle}% anniffiniedig
+\DeclareTextFontCommand{\textpl}{\plstyle}% anniffiniedig
+\DeclareTextFontCommand{\textpo}{\postyle}% anniffiniedig
+\DeclareTextFontCommand{\texttl}{\tlstyle}% anniffiniedig
+\DeclareTextFontCommand{\textto}{\tostyle}% anniffiniedig
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textol,\textswash,\textu,\textscu,\textui,\textri}
+% Shapes
+% \begin{macrocode}
+\DeclareTextFontCommand{\textol}{\olshape}% anniffiniedig % outline
+\DeclareTextFontCommand{\textswash}{\swashstyle}% anniffiniedig % an attempt to improve on \textsw
+\DeclareTextFontCommand{\textu}{\ushape}% anniffiniedig % be' yw hwn?! <_ underlined?
+\DeclareTextFontCommand{\textscu}{\scushape}% anniffiniedig
+\DeclareTextFontCommand{\textui}{\uishape}% anniffiniedig % upright italic
+\DeclareTextFontCommand{\textri}{\rishape}% anniffiniedig % reverse italic
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textnw,\textcd,\textec,\textuc,\textet,\textep,\textex,\textux,\textrw}
+% Widths
+% \begin{macrocode}
+\DeclareTextFontCommand{\textnw}{\nwwidth}% anniffiniedig
+\DeclareTextFontCommand{\textcd}{\cdwidth}% anniffiniedig
+\DeclareTextFontCommand{\textec}{\ecwidth}% anniffiniedig
+\DeclareTextFontCommand{\textuc}{\ucwidth}% anniffiniedig
+\DeclareTextFontCommand{\textet}{\etwidth}% anniffiniedig
+\DeclareTextFontCommand{\textep}{\epwidth}% anniffiniedig
+\DeclareTextFontCommand{\textex}{\exwidth}% anniffiniedig
+\DeclareTextFontCommand{\textux}{\uxwidth}% anniffiniedig
+\DeclareTextFontCommand{\textrw}{\regwidth}% anniffiniedig
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textmb,\textdb,\textbd,\textsb,\texteb,\textub,\textlg,\textel,\textul}
+% Weights
+% \begin{macrocode}
+\DeclareTextFontCommand{\textmb}{\mbweight}% anniffiniedig
+\DeclareTextFontCommand{\textdb}{\dbweight}% anniffiniedig
+\DeclareTextFontCommand{\textbd}{\bdweight}% new?
+\DeclareTextFontCommand{\textsb}{\sbweight}% anniffiniedig
+\DeclareTextFontCommand{\texteb}{\ebweight}% anniffiniedig
+\DeclareTextFontCommand{\textub}{\ubweight}% anniffiniedig
+\DeclareTextFontCommand{\textlg}{\lgweight}% anniffiniedig
+\DeclareTextFontCommand{\textel}{\elweight}% anniffiniedig
+\DeclareTextFontCommand{\textul}{\ulweight}% anniffiniedig
+% \end{macrocode}
+% \end{macro}
+% END added
+%
+% BEGIN patch font initialisation for Latin Modern
+%
+% Stop redefinition of bold if using Latin Modern as \texttt{clm}.
+% Kernel default only blocks redefinition for \texttt{lm}.
+% Don't rely on \lpack{cfr-lm} internal macros as they may change without notice \dots{}.
+% We don't need Dunhill, though, because it doesn't have bold of any kind.
+% \lpack{cfr-lm} doesn't support using Quotation Sans as default or using e.g.~serif as default sans, but there's nothing to stop somebody doing that so follow the kernel here even though it makes for a massive list\footnote{%
+% I know this will go off the page when typeset, but I have no idea whether I can safely insert line breaks into the patch and I shall scream if I break this again. (Pun fully intended.)%
+% }.
+% \begin{macrocode}
+\patchcmd{\init@series@setup}{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt,clm,clm2,clm2j,clmj,clm2js,clm2s,clmjs,clms,clm2jt,clm2t,clmjt,clmt,clm2jv,clm2v,clmjv,clmv,clm2jqs,clm2qs,clmjqs,clmqs}{%
+ \PackageWarning{nfssext-cfr}{%
+ Patching font initialisation macro for serif.%
+ }%
+}{%
+ \PackageWarning{nfssext-cfr}{%
+ Failed to patch font initialisation macro for serif.%
+ }%
+}
+\patchcmd{\init@series@setup}{{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}}{{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt,clm,clm2,clm2j,clmj,clm2js,clm2s,clmjs,clms,clm2jt,clm2t,clmjt,clmt,clm2jv,clm2v,clmjv,clmv,clm2jqs,clm2qs,clmjqs,clmqs}}{%
+ \PackageWarning{nfssext-cfr}{%
+ Patching font initialisation macro for sans.%
+ }%
+}{%
+ \PackageWarning{nfssext-cfr}{%
+ Failed to patch font initialisation macro for sans.%
+ }%
+}
+\patchcmd{\init@series@setup}{{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}}{{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt,clm,clm2,clm2j,clmj,clm2js,clm2s,clmjs,clms,clm2jt,clm2t,clmjt,clmt,clm2jv,clm2v,clmjv,clmv,clm2jqs,clm2qs,clmjqs,clmqs}}{%
+ \PackageWarning{nfssext-cfr}{%
+ Patching font initialisation macro for typewriter.%
+ }%
+}{%
+ \PackageWarning{nfssext-cfr}{%
+ Failed to patch font initialisation macro for typewriter.%
+ }%
+}
+% \end{macrocode}
+% END
+% \end{package}
+% \iffalse
+%</sty-nnfss>
+% \fi
+%
+% \subsection{NFSS}\label{subsec:sty-nfss}
+%
+% This code was written for the \emph{old} New Font Selection Scheme (\nfss).
+% It should not generally be loaded on current or recent kernels.
+%
+% \iffalse
+%<*sty-nfss>
+% \fi
+% \begin{package}{nfssext-cfr-nfss}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{svn-prov}
+\ProvidesPackageSVN[\filebase-nfss.sty]{$Id: nfssext-cfr.dtx 10366 2024-09-18 14:25:21Z cfrees $}[v1.0 \revinfo{} specially mangled by cfr; based on 2003/03/14 v1.2 Experimental NFSS Extensions; for old NFSS]
+\DefineFileInfoSVN
+% \end{macrocode}
+% ^^A Paid â defnyddio \GetFileInfoSVN*/\GetFileInfoSVN{} yn y fan hon!!
+%:cfr-added: use ifthen
+% \begin{macrocode}
+\RequirePackage{ifthen}
+% \end{macrocode}
+%:end-added
+% \begin{macro}{\exfs@tempa,\exfs@tempb,\exfs@tempf}
+% \begin{macrocode}
+\newcommand*{\exfs@tempa}{}
+\newcommand*{\exfs@tempb}{}
+% \end{macrocode}
+%:cfr-added: extra variable (\cs{exfs@tempf})
+% \begin{macrocode}
+\newcommand*{\exfs@tempf}{}
+% \end{macrocode}
+% \end{macro}
+%:end-added
+% \begin{macro}{\exfs@try@family}
+% \mbox{ }
+% \begin{macrocode}
+\newcommand*{\exfs@try@family}[2][]{%
+ \let\exfs@tempa\relax
+ \begingroup
+ \fontfamily{#2}\try@load@fontshape
+ \expandafter\ifx\csname\curr@fontshape\endcsname\relax
+ \edef\exfs@tempa{#1}%
+ \ifx\exfs@tempa\@empty
+ \PackageWarning{nfssext}{%
+ Font family '\f@encoding/#2' not available\MessageBreak
+ Ignoring font switch}%
+ \else
+ \PackageInfo{nfssext}{%
+ Font family '\f@encoding/#2' not available\MessageBreak
+ Font family '\f@encoding/#1' tried instead}%
+ \exfs@try@family{#1}%
+ \fi
+ \else
+ \gdef\exfs@tempa{\fontfamily{#2}\selectfont}%
+ \fi
+ \endgroup
+ \exfs@tempa}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@try@series}
+%:cfr-added \cs{exfs@try@series}
+% \begin{macrocode}
+\newcommand*{\exfs@try@series}[2][]{%
+ \let\exfs@tempa\relax
+ \begingroup
+ \fontseries{#2}\try@load@fontshape
+ \expandafter\ifx\csname\curr@fontshape\endcsname\relax
+ \edef\exfs@tempa{#1}%
+ \ifx\exfs@tempa\@empty
+ \PackageWarning{nfssext-cfr}{%
+ Font series '\f@encoding/\f@family/#2' not available\MessageBreak
+ Ignoring font switch}%
+ \else
+ \PackageInfo{nfssext-cfr}{%
+ Font family '\f@encoding/\f@family/#2' not available\MessageBreak
+ Font family '\f@encoding/\f@family/#1' tried instead}%
+ \exfs@try@series{#1}%
+ \fi
+ \else
+ \gdef\exfs@tempa{\fontseries{#2}\selectfont}%
+ \fi
+ \endgroup
+ \exfs@tempa
+}
+% \end{macrocode}
+%:end-added
+% \end{macro}
+% \begin{macro}{\exfs@get@base,\exfs@get@variants,\exfs@next,\exfs@shift,\exfs@first,\exfs@part,\exfs@second}
+% \mbox{ }
+% \begin{macrocode}
+\def\exfs@get@base#1#2#3#4\@nil{#1#2#3}
+% \end{macrocode}
+%:cfr-added:more \cs{exfs@} commands (get@variants, next, shift, first, part, second)
+% \begin{macrocode}
+\def\exfs@get@variants#1#2#3#4\@nil{#4}
+\def\exfs@next#1#2\@nil{#1}
+\def\exfs@shift#1#2\@nil{#2}
+\def\exfs@first#1#2\@nil{#1}
+\def\exfs@part#1#2\@nil{#2}
+\def\exfs@second#1#2#3\@nil{#2}
+% \end{macrocode}
+%:end-added
+% \end{macro}
+% \begin{macro}{\lnstyle,\osstyle,\infstyle,\instyle,\sustyle,\swstyle}
+% \mbox{ }
+% \begin{macrocode}
+\DeclareRobustCommand{\lnstyle}{%
+ \not@math@alphabet\lnstyle\relax
+ \exfs@try@family[\expandafter\exfs@get@base\f@family\@nil]%
+ {\expandafter\exfs@get@base\f@family\@nil x}%
+}
+\DeclareRobustCommand{\osstyle}{%
+ \not@math@alphabet\osstyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil j}}
+\DeclareRobustCommand{\instyle}{%
+ \not@math@alphabet\instyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil 0}}
+\DeclareRobustCommand{\sustyle}{%
+ \not@math@alphabet\sustyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil 1}}
+\DeclareRobustCommand{\swstyle}{%
+ \not@math@alphabet\swstyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil w}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@merge@families}
+%:cfr-added - merge families
+% \begin{macrocode}
+\newcommand*\exfs@merge@families[1]{%
+ \edef\exfs@tempf{#1}%
+ \edef\tempa{\expandafter\exfs@get@variants\f@family\@nil}%
+ \edef\tempo{2j}%
+ \let\exfs@tempq\@empty
+ \def\exfs@tempg{}%
+ \newif\ifadded
+ \addedfalse
+% \end{macrocode}
+% check whether there are variants - if not just use the requested addition
+% \begin{macrocode}
+ \ifx\tempa\@empty
+ \edef\exfs@tempq{\exfs@tempf}%
+ \addedtrue
+ \else
+ \gdef\set{0,1,2,a,d,e,f,h,j,l,p,q,s,t,v,w}% these are the variants to consider - the order here and in the font name is crucial
+ \ifx\tempo\exfs@tempf
+ \@for \xx:=\set \do {%
+% \end{macrocode}
+% check whether there are variants left - if not set the ‘next variant’ to empty
+% \begin{macrocode}
+ \ifx\tempa\@empty
+ \let\exfs@tempn\@empty
+ \else
+% \end{macrocode}
+% o/w get the next variant
+% \begin{macrocode}
+ \edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
+ \fi
+ \edef\tempt{2}%
+ \edef\tempj{j}%
+% \end{macrocode}
+% if the next variant is 2 or j, ignore it
+% \begin{macrocode}
+ \ifx\exfs@tempn\tempt
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \fi
+ \ifx\exfs@tempn\tempj % if the next variant is j, ignore it
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \fi
+% \end{macrocode}
+% see if the current value is either 2 or j and add it if so and if needed
+% \begin{macrocode}
+ \ifx\tempt\xx
+ \edef\exfs@tempg{\exfs@tempg\xx}%
+ \else
+ \ifx\tempj\xx % if the current value is j, we're done
+ \edef\exfs@tempq{\exfs@tempg\xx\tempa}%
+ \let\tempa\@empty
+ \addedtrue
+ \else
+% \end{macrocode}
+% o/w see if the current value matches the next variant
+% \begin{macrocode}
+ \ifx\xx\exfs@tempn
+ \edef\exfs@tempg{\exfs@tempg\xx}%
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \fi
+ \fi
+ \fi
+ }%
+ \else
+ \@for \xx:=\set \do {%
+% \end{macrocode}
+% check whether there are variants left and, if not, add the addition if needed
+% \begin{macrocode}
+ \ifx\tempa\@empty
+ \ifadded
+ \else
+ \edef\exfs@tempq{\exfs@tempg\exfs@tempf}%
+ \addedtrue
+ \fi
+ \else
+% \end{macrocode}
+% o/w get the next variant
+% \begin{macrocode}
+ \edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
+% \end{macrocode}
+% if the new token equals the next variant, combine whatever is saved in \cs{exfs@tempg} with whatever remains in \cs{tempa}
+% \begin{macrocode}
+ \ifx\exfs@tempn\exfs@tempf
+ \edef\exfs@tempq{\exfs@tempg\tempa}%
+ \addedtrue
+ \let\tempa\@empty
+ \else
+% \end{macrocode}
+% o/w, if the current value matches the requested addition, add it in
+% \begin{macrocode}
+ \ifx\exfs@tempf\xx
+ \edef\exfs@tempq{\exfs@tempg\xx\tempa}%
+ \addedtrue
+ \let\tempa\@empty
+ \else
+% \end{macrocode}
+% o/w, if the current value matches the next variant, shift
+% \begin{macrocode}
+ \ifx\exfs@tempn\xx
+ \edef\exfs@tempg{\exfs@tempg\xx}%
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \fi
+ \fi
+ \fi
+ \fi
+ }%
+ \fi
+ \fi
+ \ifx\exfs@tempq\@empty
+ \PackageError{nfssext-cfr}{Something is wrong here. Ignoring font switching command.}{}%
+ \else
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil \exfs@tempq}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\pstyle,\ostyle,\postyle,\tistyle}
+% \begin{macrocode}
+\DeclareRobustCommand{\pstyle}{% proportional figures
+ \not@math@alphabet\pstyle\relax
+ \exfs@merge@families{2}}
+\DeclareRobustCommand{\tistyle}{% titling/display
+ \not@math@alphabet\tistyle\relax
+ \exfs@merge@families{d}}
+\DeclareRobustCommand{\ostyle}{% oldstyle figures (cf. original osstyle above)
+ \not@math@alphabet\ostyle\relax
+ \exfs@merge@families{j}}
+% \end{macrocode}
+% combined command for proportional oldstyle
+% \begin{macrocode}
+\DeclareRobustCommand{\postyle}{%
+ \not@math@alphabet\postyle\relax
+ \exfs@merge@families{2j}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltstyle,\ofstyle,\altstyle,\regstyle,\embossstyle,\ornamentalstyle,\swashstyle,\shstyle,\qtstyle}
+%note that this command is for use when the light version is a separate family rather than a weight variant (e.g. when you've got light, light bold etc. as well as regular weights)
+% \begin{macrocode}
+\DeclareRobustCommand{\ltstyle}{%
+ \not@math@alphabet\ltstyle\relax
+ \exfs@merge@families{l}}
+% \end{macrocode}
+%let's hope there aren't any fonts with a light family *and* an outline/openface/blank version
+% \begin{macrocode}
+\DeclareRobustCommand{\ofstyle}{%
+ \not@math@alphabet\ofstyle\relax
+ \exfs@merge@families{l}}
+\DeclareRobustCommand{\altstyle}{% alternative style
+ \not@math@alphabet\altstyle\relax
+ \exfs@merge@families{a}}
+\DeclareRobustCommand{\regstyle}{% ``regular'' style
+ \not@math@alphabet\regstyle\relax
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil}}
+\DeclareRobustCommand{\embossstyle}{%
+ \not@math@alphabet\embossstyle\relax
+ \exfs@merge@families{e}}
+\DeclareRobustCommand{\ornamentalstyle}{% intended primarily for decorative initial fonts etc.
+ \not@math@alphabet\ornamentalstyle\relax
+ \exfs@merge@families{p}}
+\DeclareRobustCommand{\qtstyle}{% quotation style (assumes sans)
+ \not@math@alphabet\qtstyle\relax
+ \sffamily
+ \exfs@merge@families{q}}
+\DeclareRobustCommand{\shstyle}{%
+ \not@math@alphabet\shstyle\relax
+ \exfs@merge@families{h}}
+\DeclareRobustCommand{\swashstyle}{% an attempt to improve on \swstyle
+ \not@math@alphabet\swashstyle\relax
+ \exfs@merge@families{w}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tmstyle,\tvstyle}
+% Macros to switch between monowidth and variable typewriter.
+% These need to unmerge before merging.
+% We need to unmerge sans as well as the other kind of typewriter.
+% \begin{macrocode}
+\DeclareRobustCommand{\tmstyle}{% monowidth typewriter
+ \not@math@alphabet\tmstyle\relax
+ \exfs@unmerge@families{s}%
+ \exfs@unmerge@families{v}%
+ \exfs@merge@families{t}}
+\DeclareRobustCommand{\tvstyle}{% variable width typewriter
+ \not@math@alphabet\tvstyle\relax
+ \exfs@unmerge@families{s}%
+ \exfs@unmerge@families{t}%
+ \exfs@merge@families{v}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@unmerge@families}
+%:cfr-added - unmerge families
+% \begin{macrocode}
+\newcounter{taken}%
+\newcommand*\exfs@unmerge@families[1]{%
+ \edef\exfs@tempf{#1}%
+ \edef\tempa{\expandafter\exfs@get@variants\f@family\@nil}%
+ \let\exfs@tempq\@empty
+ \edef\exfs@tempg{}%
+ \setcounter{taken}{0}%
+% \end{macrocode}
+% check whether there are variants - if not do nothing
+% \begin{macrocode}
+ \ifx\tempa\@empty
+ \edef\exfs@tempq{}%
+ \else
+% \end{macrocode}
+% o/w go through the variants to find the one to delete
+% \begin{macrocode}
+ \whiledo{\value{taken}<1}{%
+% \end{macrocode}
+% get the next variant
+% \begin{macrocode}
+ \edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
+% \end{macrocode}
+% see if the next variant is the thing we seek and, if so, eliminate it
+% \begin{macrocode}
+ \ifx\exfs@tempf\exfs@tempn
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \edef\exfs@tempq{\exfs@tempg\tempa}%
+ \stepcounter{taken}%
+% \end{macrocode}
+% o/w save the next variant and move on if any variants remain
+% \begin{macrocode}
+ \else
+ \edef\exfs@tempg{\exfs@tempg\exfs@tempn}%
+ \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
+ \ifx\tempa\@empty% if there are no variants left, we're done
+ \edef\exfs@tempq{\exfs@tempg}%
+ \stepcounter{taken}%
+ \fi
+ \fi
+ }%
+ \fi
+ \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil \exfs@tempq}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tstyle,\lstyle}
+% \mbox{ }
+% \begin{macrocode}
+\DeclareRobustCommand{\tstyle}{% tabular figures
+ \not@math@alphabet\tstyle\relax
+ \exfs@unmerge@families{2}}
+\DeclareRobustCommand{\lstyle}{% lining figures (cf. command above)
+ \not@math@alphabet\lstyle\relax
+ \exfs@unmerge@families{j}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tlstyle,\plstyle,\tostyle}
+% make a combined command for tabular lining
+% \begin{macrocode}
+\DeclareRobustCommand{\tlstyle}{%
+ \lstyle\tstyle}
+% \end{macrocode}
+% proportional lining
+% \begin{macrocode}
+\DeclareRobustCommand{\plstyle}{%
+ \lstyle\pstyle}
+% \end{macrocode}
+% tabular oldstyle {?!}
+% \begin{macrocode}
+\DeclareRobustCommand{\tostyle}{%
+ \ostyle\tstyle}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\sidefault,\sishape}
+%:end-added % si is italic sc
+% \begin{macrocode}
+\newcommand*{\sidefault}{si}
+\DeclareRobustCommand{\sishape}{%
+ \not@math@alphabet\sishape\relax
+ \fontshape\sidefault\selectfont}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\oldefault,\olshape,\scoldefault,\scolshape}
+%:cfr-added - is this how outline shapes should be handled?
+% \begin{macrocode}
+\newcommand*{\oldefault}{ol}
+\DeclareRobustCommand{\olshape}{%
+ \not@math@alphabet\olshape\relax
+ \fontshape\oldefault\selectfont}
+\newcommand*{\scoldefault}{scol}
+\DeclareRobustCommand{\scolshape}{%
+ \not@math@alphabet\scolshape\relax
+ \fontshape\scoldefault\selectfont}
+% \end{macrocode}
+%^^A\DeclareRobustCommand{\olshape}{%
+%^^A \not@math@alphabet\olshape\relax
+%^^A \exfs@merge@shape{\oldefault}{\scdefault}{\scoldefault}}
+% \end{macro}
+% \begin{macro}{\udefault,\ushape,\scudefault,\scushape}
+%:fudge
+% \begin{macrocode}
+\newcommand*{\udefault}{u}
+\DeclareRobustCommand{\ushape}{%
+ \not@math@alphabet\ushape\relax
+ \fontshape\udefault\selectfont}
+\newcommand*{\scudefault}{su}
+\DeclareRobustCommand{\scushape}{%
+ \not@math@alphabet\scushape\relax
+ \fontshape\scudefault\selectfont}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\uidefault,\uishape,\ridefault,\rishape}
+%:upright italic
+% \begin{macrocode}
+\newcommand*{\uidefault}{ui}
+\DeclareRobustCommand{\uishape}{%
+ \not@math@alphabet\uishape\relax
+ \fontshape\uidefault\selectfont}
+% \end{macrocode}
+%:can i do this for reverse italic?
+% \begin{macrocode}
+\newcommand*{\ridefault}{ri}
+\DeclareRobustCommand{\rishape}{%
+ \not@math@alphabet\rishape\relax
+ \fontshape\ridefault\selectfont}
+% \end{macrocode}
+% \end{macro}
+%:end-added
+% \begin{macro}{\exfs@merge@shape}
+% \mbox{ }
+% \begin{macrocode}
+\newcommand*{\exfs@merge@shape}[3]{%
+ \edef\exfs@tempa{#1}%
+ \edef\exfs@tempb{#2}%
+ \ifx\f@shape\exfs@tempb
+ \expandafter\ifx\csname\f@encoding/\f@family/\f@series/#3\endcsname\relax
+ \else
+ \edef\exfs@tempa{#3}%
+ \fi
+ \fi
+ \fontshape{\exfs@tempa}\selectfont}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@font@width}
+%:cfr-added - merge width changes into series
+% \begin{macrocode}
+\newcommand*{\exfs@font@width}{%
+ \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+ \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+ \ifx\exfs@temppart\@empty
+ \def\exfs@width{}
+ \else
+ \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+ \ifx\exfs@temps{b}
+ \edef\exfs@width{\expandafter\exfs@part\exfs@temps\@nil }%
+ \else
+ \ifx\exfs@temps{l}
+ \edef\exfs@width{\expandafter\exfs@part\exfs@temps\@nil }%
+ \else
+ \edef\exfs@width{\exfs@temppart}%
+ \fi
+ \fi
+ \fi
+ \exfs@width
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@merge@width}
+% \mbox{ }
+% \begin{macrocode}
+\newcommand*{\exfs@merge@width}[1]{%
+ \edef\exfs@temph{#1}%
+ \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+ \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+ \def\tempb{b}%
+ \def\templ{l}%
+ \ifx\exfs@temppart\@empty
+ \def\exfs@series{\expandafter\exfs@tempf\exfs@temph}%
+ \else
+ \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+ \ifx\exfs@temps\tempb
+ \def\exfs@series{\expandafter\exfs@tempf\exfs@temps\exfs@temph}%
+ \else
+ \ifx\exfs@temps\templ
+ \def\exfs@series{\expandafter\exfs@tempf\exfs@temps\exfs@temph}%
+ \else
+ \def\exfs@series{\expandafter\exfs@tempf\exfs@temph}%
+ \fi
+ \fi
+ \fi
+ \exfs@try@series{\exfs@series}%
+}
+%^^A \fontseries\exfs@series\selectfont}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@unmerge@width}
+% \mbox{ }
+% \begin{macrocode}
+\newcommand*{\exfs@unmerge@width}{%
+ \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+ \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+ \def\tempb{b}%
+ \def\templ{l}%
+ \ifx\exfs@temppart\@empty
+ \def\exfs@series{\expandafter\exfs@tempf}%
+ \else
+ \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+ \ifx\exfs@temps\tempb
+ \def\exfs@series{\expandafter\exfs@tempf\exfs@temps}%
+ \else
+ \ifx\exfs@temps\templ
+ \def\exfs@series{\expandafter\exfs@tempf\exfs@temps}%
+ \else
+ \def\exfs@series{\expandafter\exfs@tempf}%
+ \fi
+ \fi
+ \fi
+ \exfs@try@series{\exfs@series}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\regwidth}
+% \mbox{ }
+% \begin{macrocode}
+\DeclareRobustCommand{\regwidth}{%
+ \not@math@alphabet\regwidth\relax
+ \exfs@unmerge@width}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\nwdefault,\nwwidth,\cddefault,\cdwidth,\ecdefault,\ecwidth,\ucdefault,\ucwidth}
+% \mbox{ }
+% \begin{macrocode}
+\newcommand*{\nwdefault}{c}
+\DeclareRobustCommand{\nwwidth}{%
+ \not@math@alphabet\nwwidth\relax
+ \exfs@merge@width{\nwdefault}}
+\newcommand*{\cddefault}{c}
+\DeclareRobustCommand{\cdwidth}{%
+ \not@math@alphabet\cdwidth\relax
+ \exfs@merge@width{\cddefault}}
+\newcommand*{\ecdefault}{ec}
+\DeclareRobustCommand{\ecwidth}{%
+ \not@math@alphabet\ecwidth\relax
+ \exfs@merge@width{\ecdefault}}
+\newcommand*{\ucdefault}{uc}
+\DeclareRobustCommand{\ucwidth}{%
+ \not@math@alphabet\ucwidth\relax
+ \exfs@merge@width{\ucdefault}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\etdefault,\etwidth,\epdefault,\epwidth,\exdefault,\exwidth,\uxdefault,\uxwidth}
+% \mbox{ }
+% \begin{macrocode}
+\newcommand*{\etdefault}{x}
+\DeclareRobustCommand{\etwidth}{%
+ \not@math@alphabet\etwidth\relax
+ \exfs@merge@width{\etdefault}}
+\newcommand*{\epdefault}{x}
+\DeclareRobustCommand{\epwidth}{%
+ \not@math@alphabet\epwidth\relax
+ \exfs@merge@width{\epdefault}}
+\newcommand*{\exdefault}{ex}
+\DeclareRobustCommand{\exwidth}{%
+ \not@math@alphabet\exwidth\relax
+ \exfs@merge@width{\exdefault}}
+\newcommand*{\uxdefault}{ux}
+\DeclareRobustCommand{\uxwidth}{%
+ \not@math@alphabet\uxwidth\relax
+ \exfs@merge@width{\uxdefault}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\exfs@merge@weight}
+%:cfr-added merge weight changes into series
+% \begin{macrocode}
+\newcommand*{\exfs@merge@weight}[1]{%
+ \edef\exfs@tempg{#1}%
+ \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
+ \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
+ \def\templ{l}%
+ \def\tempb{b}%
+% \end{macrocode}
+% :case when there's no second part, so the single character must be the weight and should be replaced
+% \begin{macrocode}
+ \ifx\exfs@temppart\@empty
+ \def\exfs@series{\expandafter\exfs@tempg}%
+% \end{macrocode}
+% :case when there's a second part
+% \begin{macrocode}
+ \else
+% \end{macrocode}
+% :get first character of second part
+% \begin{macrocode}
+ \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
+ \edef\exfs@tempw{\expandafter\exfs@part\exfs@temps\@nil }%
+% \end{macrocode}
+% :is the first character b? if so, it is part of the weight and should be replaced
+% \begin{macrocode}
+ \ifx\exfs@temps\tempb
+ \def\exfs@series{\expandafter\exfs@tempg\exfs@tempw}%
+ \else
+% \end{macrocode}
+% :is the first character l? if so, it is part of the weight and should be replaced
+% \begin{macrocode}
+ \ifx\exfs@temps\templ
+ \def\exfs@series{\expandafter\exfs@tempg\exfs@tempw}%
+ \else
+% \end{macrocode}
+% :o/w the first character is part of the width and should be retained
+% \begin{macrocode}
+ \def\exfs@series{\expandafter\exfs@tempg\exfs@temppart}%
+ \fi
+ \fi
+ \fi
+% \end{macrocode}
+%^^A \fontseries\exfs@series\selectfont}
+% \begin{macrocode}
+ \ifx\exfs@tempg\exfs@series
+ \exfs@try@series{\exfs@series}%
+ \else
+ \exfs@try@series[\exfs@tempg]{\exfs@series}% assume user wants to change weight even if this changes back to the default width
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\mbdefault,\mbweight,\bddefault,\bfweight,\bdweight}
+% \begin{macrocode}
+\newcommand*{\mbdefault}{mb}
+\DeclareRobustCommand{\mbweight}{%
+ \not@math@alphabet\mbweight\relax
+ \exfs@merge@weight{\mbdefault}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dbdefault,\dbweight,\sbdefault,\sbweight,\ebdefault,\ebweight,\ubdefault,\ubweight}
+% Heavy weights.
+% \begin{macrocode}
+\newcommand*{\dbdefault}{db}
+\DeclareRobustCommand{\dbweight}{%
+ \not@math@alphabet\dbweight\relax
+ \exfs@merge@weight{\dbdefault}}
+\newcommand*{\sbdefault}{sb}
+\DeclareRobustCommand{\sbweight}{%
+ \not@math@alphabet\sbweight\relax
+ \exfs@merge@weight{\sbdefault}}
+\newcommand*{\ebdefault}{eb}
+\DeclareRobustCommand{\ebweight}{%
+ \not@math@alphabet\ebweight\relax
+ \exfs@merge@weight{\ebdefault}}
+\newcommand*{\ubdefault}{ub}
+\DeclareRobustCommand{\ubweight}{%
+ \not@math@alphabet\ubweight\relax
+ \exfs@merge@weight{\ubdefault}}
+\newcommand*{\lgdefault}{l}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\lgdefault,\lgweight,\eldefault,\elweight,\uldefault,\ulweight}
+%note - use this if light is a variant weight, rather than a separate family
+% \begin{macrocode}
+\DeclareRobustCommand{\lgweight}{%
+ \not@math@alphabet\lgweight\relax
+ \exfs@merge@weight{\lgdefault}}
+\newcommand*{\eldefault}{el}
+\DeclareRobustCommand{\elweight}{%
+ \not@math@alphabet\elweight\relax
+ \exfs@merge@weight{\eldefault}}
+\newcommand*{\uldefault}{ul}
+\DeclareRobustCommand{\ulweight}{%
+ \not@math@alphabet\ulweight\relax
+ \exfs@merge@weight{\uldefault}}
+% \end{macrocode}
+% \end{macro}
+%:end-added
+% \begin{macro}{\itshape,\scshape,\upshape,\dfshape}
+% redefinition
+% \begin{macrocode}
+\DeclareRobustCommand{\itshape}{%
+ \not@math@alphabet\itshape\mathit
+ \exfs@merge@shape{\itdefault}{\scdefault}{\sidefault}}
+% \end{macrocode}
+% original
+%^^A\DeclareRobustCommand{\scshape}{%
+%^^A \not@math@alphabet\scshape\relax
+%^^A \exfs@merge@shape{\scdefault}{\itdefault}{\sidefault}}
+%:cfr-altered: \cs{scshape}
+% \begin{macrocode}
+\DeclareRobustCommand{\scshape}{%
+ \not@math@alphabet\scshape\relax
+ \def\tempu{u}%
+ \def\tempo{ol}%
+ \ifx\f@shape\tempu
+ \exfs@merge@shape{\scdefault}{\udefault}{\scudefault}%
+ \else
+ \ifx\f@shape\tempo
+ \exfs@merge@shape{\scdefault}{\oldefault}{\scoldefault}%
+ \else
+ \exfs@merge@shape{\scdefault}{\itdefault}{\sidefault}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+%:end-altered
+% \begin{macrocode}
+\DeclareRobustCommand{\upshape}{%
+ \not@math@alphabet\upshape\relax
+ \exfs@merge@shape{\updefault}{\sidefault}{\scdefault}}
+\DeclareRobustCommand{\dfshape}{%
+ \not@math@alphabet\dfshape\relax
+ \fontshape\shapedefault\selectfont}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\swashapedefault,\swshape}
+% \begin{macrocode}
+\newcommand*{\swshapedefault}{\itdefault}
+\DeclareRobustCommand{\swshape}{%
+ \not@math@alphabet\swshape\relax
+ \swstyle\fontshape\swshapedefault\selectfont}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textln,\textos,\textin,\textsu,\textsi,\textdf,\textsw}
+% \mbox{ }
+% \begin{macrocode}
+\DeclareTextFontCommand{\textln}{\lnstyle}
+\DeclareTextFontCommand{\textos}{\osstyle}
+\DeclareTextFontCommand{\textin}{\instyle}
+\DeclareTextFontCommand{\textsu}{\sustyle}
+\DeclareTextFontCommand{\textsi}{\sishape}
+\DeclareTextFontCommand{\textdf}{\dfshape}
+\DeclareTextFontCommand{\textsw}{\swshape}
+% \end{macrocode}
+% \end{macro}
+%:cfr-added
+% \begin{macro}{\textti,\textlt,\textof,\textalt,\textreg,\emboss,\textorn,\textqt,\textsh,\texttm,\texttv}
+% Families
+% \begin{macrocode}
+\DeclareTextFontCommand{\textti}{\tistyle}
+\DeclareTextFontCommand{\textlt}{\ltstyle}
+\DeclareTextFontCommand{\textof}{\ofstyle} % open-face (or outline or blank) style
+\DeclareTextFontCommand{\textalt}{\altstyle} % alternative style
+\DeclareTextFontCommand{\textreg}{\regstyle} % ``regular'' style
+\DeclareTextFontCommand{\emboss}{\embossstyle}
+\DeclareTextFontCommand{\textorn}{\ornamentalstyle} % intended primarily for decorative initials etc.
+\DeclareTextFontCommand{\textqt}{\qtstyle}
+\DeclareTextFontCommand{\textsh}{\shstyle} % shadowed style
+\DeclareTextFontCommand{\texttm}{\tmstyle}
+\DeclareTextFontCommand{\texttv}{\tvstyle}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textl,\texto,\textp,\textt,\textpl,\textpo,\texttl,\textto}
+% Families - figures
+% \begin{macrocode}
+\DeclareTextFontCommand{\textl}{\lstyle}
+\DeclareTextFontCommand{\texto}{\ostyle}
+\DeclareTextFontCommand{\textp}{\pstyle}
+\DeclareTextFontCommand{\textt}{\tstyle}
+\DeclareTextFontCommand{\textpl}{\plstyle}
+\DeclareTextFontCommand{\textpo}{\postyle}
+\DeclareTextFontCommand{\texttl}{\tlstyle}
+\DeclareTextFontCommand{\textto}{\tostyle}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textol,\textswash,\textu,\textscu,\textui,\textri}
+% Shapes
+% \begin{macrocode}
+\DeclareTextFontCommand{\textol}{\olshape} % outline
+\DeclareTextFontCommand{\textswash}{\swashstyle} % an attempt to improve on \textsw
+\DeclareTextFontCommand{\textu}{\ushape}
+\DeclareTextFontCommand{\textscu}{\scushape}
+\DeclareTextFontCommand{\textui}{\uishape} % upright italic
+\DeclareTextFontCommand{\textri}{\rishape} % reverse italic
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textnw,\textcd,\textec,\textuc,\textet,\textep,\textex,\textux,\textrw}
+% Widths
+% \begin{macrocode}
+\DeclareTextFontCommand{\textnw}{\nwwidth}
+\DeclareTextFontCommand{\textcd}{\cdwidth}
+\DeclareTextFontCommand{\textec}{\ecwidth}
+\DeclareTextFontCommand{\textuc}{\ucwidth}
+\DeclareTextFontCommand{\textet}{\etwidth}
+\DeclareTextFontCommand{\textep}{\epwidth}
+\DeclareTextFontCommand{\textex}{\exwidth}
+\DeclareTextFontCommand{\textux}{\uxwidth}
+\DeclareTextFontCommand{\textrw}{\regwidth}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textmb,\textdb,\textbd,\textsb,\texteb,\textub,\textlg,\textel,\textul}
+% Weights
+% \begin{macrocode}
+\DeclareTextFontCommand{\textmb}{\mbweight}
+\DeclareTextFontCommand{\textdb}{\dbweight}
+\DeclareTextFontCommand{\textsb}{\sbweight}
+\DeclareTextFontCommand{\texteb}{\ebweight}
+\DeclareTextFontCommand{\textub}{\ubweight}
+\DeclareTextFontCommand{\textlg}{\lgweight}
+\DeclareTextFontCommand{\textel}{\elweight}
+\DeclareTextFontCommand{\textul}{\ulweight}
+% \end{macrocode}
+% \end{macro}
+%end-added
+% \end{package}
+% \iffalse
+%</sty-nfss>
+% \fi
+%
+%
+%\Finale
diff --git a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.ins b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.ins
new file mode 100644
index 0000000000..bd6ac1448b
--- /dev/null
+++ b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.ins
@@ -0,0 +1,111 @@
+%% $Id: nfssext-cfr.ins 10335 2024-09-10 16:13:03Z cfrees $
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% nfssext-cfr.ins
+%% Additions and changes Copyright (C) 2008-2024 Clea F. Rees.
+%% Code from skeleton.ins Copyright (C) 2015-2024 Scott Pakin (see below).
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008-05-04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Clea F. Rees.
+%%
+%% This work consists of all files listed in manifest.txt.
+%%
+%% The file nfssext-cfr.ins is a derived work under the terms of the
+%% LPPL. It is based on version 2.4 of skeleton.ins which is part of
+%% dtxtut by Scott Pakin. A copy of dtxtut, including the
+%% unmodified version of skeleton.ins is available from
+%% https://www.ctan.org/pkg/dtxtut and released under the LPPL.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\input docstrip.tex
+\keepsilent
+
+%% ???
+\usedir{tex/latex/nfssext-cfr}
+
+\declarepreamble\safonol
+Copyright (C) 2008-2024 Clea F. Rees.
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008-05-04 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Clea F. Rees.
+
+This file may only be distributed together with a copy of the package
+nfssext-cfr. You may however distribute the package nfssext-cfr without
+such generated files.
+
+This work consists of all files listed in manifest.txt.
+\endpreamble
+
+\def\baseFileName{nfssext.sty}
+\def\basePkgName{The Font Installation Guide}
+\def\basePkgArk{fontinstallationguide}
+\def\basePkgAuthor{Philipp Lehman}
+% \def\preChanges{%
+% - One thing or another.}
+\def\targType{The file }
+\def\targPkg{nfssext-cfr}
+
+\declarepreamble\derpreamble
+Additions and changes Copyright (C) 2008-2024 Clea F. Rees.
+Code from \basePkgArk Copyright (C) 2002-2004 \basePkgAuthor (see below)
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008-05-04 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Clea F. Rees.
+
+This work consists of all files listed in manifest.txt.
+
+
+\targType \outFileName is a derived work under the terms of the LPPL.
+It is based on version 1.2 of \baseFileName which is supplied with
+\basePkgName by \basePkgAuthor. A copy of \basePkgName, including an
+unmodified version of \baseFileName is available from
+ https://tug.ctan.org/pkg/\basePkgArk.
+\baseFileName is part of the included archive figuide-examples.tar.gz
+which consists of examples and templates released under the LPPL.
+\baseFileName is included in the files for tutorials 3, 5 and 6.
+
+The main modifications made to this file are described in \targPkg.dtx.
+\endpreamble
+
+\askonceonly
+
+\usepreamble\safonol
+
+\generate{%
+ \usepreamble\derpreamble
+ \file{nfssext-cfr.sty}{\from{nfssext-cfr.dtx}{sty}}
+ \file{nfssext-cfr-nfss.sty}{\from{nfssext-cfr.dtx}{sty-nfss}}
+ \file{nfssext-cfr-nnfss.sty}{\from{nfssext-cfr.dtx}{sty-nnfss}}
+ % \file{??.tex}{\from{nfssext-cfr.dtx}{??}}
+ % \usepreamble\derpreamble
+ % \file{other.etx}{\from{nfssext-cfr.dtx}{other}}
+}
+
+
+\endbatchfile
diff --git a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdf b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdf
index 42380dd224..5088961446 100644
--- a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdf
+++ b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdf
Binary files differ
diff --git a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.sty b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.sty
deleted file mode 100644
index 03d19d2e59..0000000000
--- a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.sty
+++ /dev/null
@@ -1,641 +0,0 @@
-%% nfssext-cfr.sty
-%% Additions and changes are copyright 2017 Clea F. Rees
-%% Code from nfssext.sty copyright 2003 Philipp Lehman (see below)
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainer of this work is Clea F. Rees.
-%
-% This work consists of the file nfssext-cfr.sty.
-%
-% The file nfssext-cfr.sty is a derived work under the terms of the
-% LPPL. It is based on version 1.2 of nfssext.sty which is part of The
-% Font Installation Guide by Philipp Lehman. A copy of the The Font
-% Installation Guide, including the unmodified version of nfssext.sty
-% is available from
-% http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=fontinstallationguide.
-% nfssext.sty is part of the included archive figuide-examples.tar.gz
-% which consists of examples and templates released under the LPPL.
-% nfssext.sty is included in the files for tutorials 3, 5 and 6.
-%
-% 2017-03-28: modify \tmstyle and \tvstyle to unmerge sans and other
-% typewriter before mergining appropriate variant
-%
-\NeedsTeXFormat{LaTeX2e}
-\RequirePackage{svn-prov}
-\ProvidesPackageSVN{$Id: nfssext-cfr.sty 6140 2017-03-28 18:07:31Z cfrees $}[\revinfo{} specially mangled by cfr; based on 2003/03/14 v1.2 Experimental NFSS Extensions]
-%:cfr-added: use ifthen
-\RequirePackage{ifthen}
-%:end-added
-\newcommand*{\exfs@tempa}{}
-\newcommand*{\exfs@tempb}{}
-%:cfr-added: extra variable (\exfs@tempf)
-\newcommand*{\exfs@tempf}{}
-%:end-added
-\newcommand*{\exfs@try@family}[2][]{%
- \let\exfs@tempa\relax
- \begingroup
- \fontfamily{#2}\try@load@fontshape
- \expandafter\ifx\csname\curr@fontshape\endcsname\relax
- \edef\exfs@tempa{#1}%
- \ifx\exfs@tempa\@empty
- \PackageWarning{nfssext}{%
- Font family '\f@encoding/#2' not available\MessageBreak
- Ignoring font switch}%
- \else
- \PackageInfo{nfssext}{%
- Font family '\f@encoding/#2' not available\MessageBreak
- Font family '\f@encoding/#1' tried instead}%
- \exfs@try@family{#1}%
- \fi
- \else
- \gdef\exfs@tempa{\fontfamily{#2}\selectfont}%
- \fi
- \endgroup
- \exfs@tempa}
-%:cfr-added exfs@try@series
-\newcommand*{\exfs@try@series}[2][]{%
- \let\exfs@tempa\relax
- \begingroup
- \fontseries{#2}\try@load@fontshape
- \expandafter\ifx\csname\curr@fontshape\endcsname\relax
- \edef\exfs@tempa{#1}%
- \ifx\exfs@tempa\@empty
- \PackageWarning{nfssext-cfr}{%
- Font series '\f@encoding/\f@family/#2' not available\MessageBreak
- Ignoring font switch}%
- \else
- \PackageInfo{nfssext-cfr}{%
- Font family '\f@encoding/\f@family/#2' not available\MessageBreak
- Font family '\f@encoding/\f@family/#1' tried instead}%
- \exfs@try@series{#1}%
- \fi
- \else
- \gdef\exfs@tempa{\fontseries{#2}\selectfont}%
- \fi
- \endgroup
- \exfs@tempa}
-%:end-added
-\def\exfs@get@base#1#2#3#4\@nil{#1#2#3}
-%:cfr-added:more \exfs@ commands (get@variants, next, shift, first, part, second)
-\def\exfs@get@variants#1#2#3#4\@nil{#4}
-\def\exfs@next#1#2\@nil{#1}
-\def\exfs@shift#1#2\@nil{#2}
-\def\exfs@first#1#2\@nil{#1}
-\def\exfs@part#1#2\@nil{#2}
-\def\exfs@second#1#2#3\@nil{#2}
-%:end-added
-\DeclareRobustCommand{\lnstyle}{%
- \not@math@alphabet\lnstyle\relax
- \exfs@try@family[\expandafter\exfs@get@base\f@family\@nil]%
- {\expandafter\exfs@get@base\f@family\@nil x}}
-\DeclareRobustCommand{\osstyle}{%
- \not@math@alphabet\osstyle\relax
- \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil j}}
-\DeclareRobustCommand{\instyle}{%
- \not@math@alphabet\instyle\relax
- \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil 0}}
-\DeclareRobustCommand{\sustyle}{%
- \not@math@alphabet\sustyle\relax
- \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil 1}}
-\DeclareRobustCommand{\swstyle}{%
- \not@math@alphabet\swstyle\relax
- \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil w}}
-%:cfr-added - merge families
-\newcommand*\exfs@merge@families[1]{%
- \edef\exfs@tempf{#1}%
- \edef\tempa{\expandafter\exfs@get@variants\f@family\@nil}%
- \edef\tempo{2j}%
- \let\exfs@tempq\@empty
- \def\exfs@tempg{}%
- \newif\ifadded
- \addedfalse
- % check whether there are variants - if not just use the requested addition
- \ifx\tempa\@empty
- \edef\exfs@tempq{\exfs@tempf}%
- \addedtrue
- \else
- \gdef\set{0,1,2,a,d,e,f,h,j,l,p,q,s,t,v,w}% these are the variants to consider - the order here and in the font name is crucial
- \ifx\tempo\exfs@tempf
- \@for \xx:=\set \do {%
- % check whether there are variants left - if not set the ``next variant'' to empty
- \ifx\tempa\@empty
- \let\exfs@tempn\@empty
- \else
- % o/w get the next variant
- \edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
- \fi
- \edef\tempt{2}%
- \edef\tempj{j}%
- % if the next variant is 2 or j, ignore it
- \ifx\exfs@tempn\tempt
- \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
- \fi
- \ifx\exfs@tempn\tempj % if the next variant is j, ignore it
- \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
- \fi
- % see if the current value is either 2 or j and add it if so and if needed
- \ifx\tempt\xx
- \edef\exfs@tempg{\exfs@tempg\xx}%
- \else
- \ifx\tempj\xx % if the current value is j, we're done
- \edef\exfs@tempq{\exfs@tempg\xx\tempa}%
- \let\tempa\@empty
- \addedtrue
- \else
- % o/w see if the current value matches the next variant
- \ifx\xx\exfs@tempn
- \edef\exfs@tempg{\exfs@tempg\xx}%
- \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
- \fi
- \fi
- \fi
- }%
- \else
- \@for \xx:=\set \do {%
- % check whether there are variants left and, if not, add the addition if needed
- \ifx\tempa\@empty
- \ifadded
- \else
- \edef\exfs@tempq{\exfs@tempg\exfs@tempf}%
- \addedtrue
- \fi
- \else
- % o/w get the next variant
- \edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
- % if the new token equals the next variant, combine whatever is saved in \exfs@tempg with whatever remains in \tempa
- \ifx\exfs@tempn\exfs@tempf
- \edef\exfs@tempq{\exfs@tempg\tempa}%
- \addedtrue
- \let\tempa\@empty
- \else
- % o/w, if the current value matches the requested addition, add it in
- \ifx\exfs@tempf\xx
- \edef\exfs@tempq{\exfs@tempg\xx\tempa}%
- \addedtrue
- \let\tempa\@empty
- \else
- % o/w, if the current value matches the next variant, shift
- \ifx\exfs@tempn\xx
- \edef\exfs@tempg{\exfs@tempg\xx}%
- \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
- \fi
- \fi
- \fi
- \fi
- }%
- \fi
- \fi
- \ifx\exfs@tempq\@empty
- \PackageError{nfssext-cfr}{Something is wrong here. Ignoring font switching command.}{}%
- \else
- \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil \exfs@tempq}%
- \fi}
-\DeclareRobustCommand{\pstyle}{% proportional figures
- \not@math@alphabet\pstyle\relax
- \exfs@merge@families{2}}
-\DeclareRobustCommand{\tistyle}{% titling/display
- \not@math@alphabet\tistyle\relax
- \exfs@merge@families{d}}
-\DeclareRobustCommand{\ostyle}{% oldstyle figures (cf. original osstyle above)
- \not@math@alphabet\ostyle\relax
- \exfs@merge@families{j}}
-% combined command for proportional oldstyle
-\DeclareRobustCommand{\postyle}{%
- \not@math@alphabet\postyle\relax
- \exfs@merge@families{2j}}
-%note that this command is for use when the light version is a separate family rather than a weight variant (e.g. when you've got light, light bold etc. as well as regular weights)
-\DeclareRobustCommand{\ltstyle}{%
- \not@math@alphabet\ltstyle\relax
- \exfs@merge@families{l}}
-%let's hope there aren't any fonts with a light family *and* an outline/openface/blank version
-\DeclareRobustCommand{\ofstyle}{%
- \not@math@alphabet\ofstyle\relax
- \exfs@merge@families{l}}
-\DeclareRobustCommand{\altstyle}{% alternative style
- \not@math@alphabet\altstyle\relax
- \exfs@merge@families{a}}
-\DeclareRobustCommand{\regstyle}{% ``regular'' style
- \not@math@alphabet\regstyle\relax
- \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil}}
-\DeclareRobustCommand{\embossstyle}{%
- \not@math@alphabet\embossstyle\relax
- \exfs@merge@families{e}}
-\DeclareRobustCommand{\ornamentalstyle}{% intended primarily for decorative initial fonts etc.
- \not@math@alphabet\ornamentalstyle\relax
- \exfs@merge@families{p}}
-\DeclareRobustCommand{\qtstyle}{% quotation style (assumes sans)
- \not@math@alphabet\qtstyle\relax
- \sffamily
- \exfs@merge@families{q}}
-\DeclareRobustCommand{\shstyle}{%
- \not@math@alphabet\shstyle\relax
- \exfs@merge@families{h}}
-\DeclareRobustCommand{\swashstyle}{% an attempt to improve on \swstyle
- \not@math@alphabet\swashstyle\relax
- \exfs@merge@families{w}}
-\DeclareRobustCommand{\tmstyle}{% monowidth typewriter
- \not@math@alphabet\tmstyle\relax
- \exfs@unmerge@families{s}%
- \exfs@unmerge@families{v}%
- \exfs@merge@families{t}}
-\DeclareRobustCommand{\tvstyle}{% variable width typewriter
- \not@math@alphabet\tvstyle\relax
- \exfs@unmerge@families{s}%
- \exfs@unmerge@families{t}%
- \exfs@merge@families{v}}
-%:cfr-added - unmerge families
-\newcounter{taken}%
-\newcommand*\exfs@unmerge@families[1]{%
- \edef\exfs@tempf{#1}%
- \edef\tempa{\expandafter\exfs@get@variants\f@family\@nil}%
- \let\exfs@tempq\@empty
- \edef\exfs@tempg{}%
- \setcounter{taken}{0}%
- % check whether there are variants - if not do nothing
- \ifx\tempa\@empty
- \edef\exfs@tempq{}%
- \else
- % o/w go through the variants to find the one to delete
- \whiledo{\value{taken}<1}{%
- % get the next variant
- \edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
- % see if the next variant is the thing we seek and, if so, eliminate it
- \ifx\exfs@tempf\exfs@tempn
- \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
- \edef\exfs@tempq{\exfs@tempg\tempa}%
- \stepcounter{taken}%
- % o/w save the next variant and move on if any variants remain
- \else
- \edef\exfs@tempg{\exfs@tempg\exfs@tempn}%
- \edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
- \ifx\tempa\@empty% if there are no variants left, we're done
- \edef\exfs@tempq{\exfs@tempg}%
- \stepcounter{taken}%
- \fi
- \fi
- }%
- \fi
- \exfs@try@family{\expandafter\exfs@get@base\f@family\@nil \exfs@tempq}}
-\DeclareRobustCommand{\tstyle}{% tabular figures
- \not@math@alphabet\tstyle\relax
- \exfs@unmerge@families{2}}
-\DeclareRobustCommand{\lstyle}{% lining figures (cf. command above)
- \not@math@alphabet\lstyle\relax
- \exfs@unmerge@families{j}}
-% make a combined command for tabular lining
-\DeclareRobustCommand{\tlstyle}{%
- \lstyle\tstyle}
-% proportional lining
-\DeclareRobustCommand{\plstyle}{%
- \lstyle\pstyle}
-% tabular oldstyle {?!}
-\DeclareRobustCommand{\tostyle}{%
- \ostyle\tstyle}
-%:end-added % si is italic sc
-\newcommand*{\sidefault}{si}
-\DeclareRobustCommand{\sishape}{%
- \not@math@alphabet\sishape\relax
- \fontshape\sidefault\selectfont}
-%:cfr-added - is this how outline shapes should be handled?
-\newcommand*{\oldefault}{ol}
-\DeclareRobustCommand{\olshape}{%
- \not@math@alphabet\olshape\relax
- \fontshape\oldefault\selectfont}
-\newcommand*{\scoldefault}{scol}
-\DeclareRobustCommand{\scolshape}{%
- \not@math@alphabet\scolshape\relax
- \fontshape\scoldefault\selectfont}
-%\DeclareRobustCommand{\olshape}{%
-% \not@math@alphabet\olshape\relax
-% \exfs@merge@shape{\oldefault}{\scdefault}{\scoldefault}}
-%:fudge
-\newcommand*{\udefault}{u}
-\DeclareRobustCommand{\ushape}{%
- \not@math@alphabet\ushape\relax
- \fontshape\udefault\selectfont}
-\newcommand*{\scudefault}{su}
-\DeclareRobustCommand{\scushape}{%
- \not@math@alphabet\scushape\relax
- \fontshape\scudefault\selectfont}
-%:upright italic
-\newcommand*{\uidefault}{ui}
-\DeclareRobustCommand{\uishape}{%
- \not@math@alphabet\uishape\relax
- \fontshape\uidefault\selectfont}
-%:can i do this for reverse italic?
-\newcommand*{\ridefault}{ri}
-\DeclareRobustCommand{\rishape}{%
- \not@math@alphabet\rishape\relax
- \fontshape\ridefault\selectfont}
-%:end-added
-\newcommand*{\exfs@merge@shape}[3]{%
- \edef\exfs@tempa{#1}%
- \edef\exfs@tempb{#2}%
- \ifx\f@shape\exfs@tempb
- \expandafter\ifx\csname\f@encoding/\f@family/\f@series/#3\endcsname\relax
- \else
- \edef\exfs@tempa{#3}%
- \fi
- \fi
- \fontshape{\exfs@tempa}\selectfont}
-%:cfr-added - merge width changes into series
-\newcommand*{\exfs@font@width}{%
- \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
- \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
- \ifx\exfs@temppart\@empty
- \def\exfs@width{}
- \else
- \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
- \ifx\exfs@temps{b}
- \edef\exfs@width{\expandafter\exfs@part\exfs@temps\@nil }%
- \else
- \ifx\exfs@temps{l}
- \edef\exfs@width{\expandafter\exfs@part\exfs@temps\@nil }%
- \else
- \edef\exfs@width{\exfs@temppart}%
- \fi
- \fi
- \fi
- \exfs@width
- }
-\newcommand*{\exfs@merge@width}[1]{%
- \edef\exfs@temph{#1}%
- \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
- \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
- \def\tempb{b}%
- \def\templ{l}%
- \ifx\exfs@temppart\@empty
- \def\exfs@series{\expandafter\exfs@tempf\exfs@temph}%
- \else
- \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
- \ifx\exfs@temps\tempb
- \def\exfs@series{\expandafter\exfs@tempf\exfs@temps\exfs@temph}%
- \else
- \ifx\exfs@temps\templ
- \def\exfs@series{\expandafter\exfs@tempf\exfs@temps\exfs@temph}%
- \else
- \def\exfs@series{\expandafter\exfs@tempf\exfs@temph}%
- \fi
- \fi
- \fi
- \exfs@try@series{\exfs@series}}
-% \fontseries\exfs@series\selectfont}
-\newcommand*{\exfs@unmerge@width}{%
- \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
- \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
- \def\tempb{b}%
- \def\templ{l}%
- \ifx\exfs@temppart\@empty
- \def\exfs@series{\expandafter\exfs@tempf}%
- \else
- \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
- \ifx\exfs@temps\tempb
- \def\exfs@series{\expandafter\exfs@tempf\exfs@temps}%
- \else
- \ifx\exfs@temps\templ
- \def\exfs@series{\expandafter\exfs@tempf\exfs@temps}%
- \else
- \def\exfs@series{\expandafter\exfs@tempf}%
- \fi
- \fi
- \fi
- \exfs@try@series{\exfs@series}}
-\DeclareRobustCommand{\regwidth}{%
- \not@math@alphabet\regwidth\relax
- \exfs@unmerge@width}
-\newcommand*{\nwdefault}{c}
-\DeclareRobustCommand{\nwwidth}{%
- \not@math@alphabet\nwwidth\relax
- \exfs@merge@width{\nwdefault}}
-\newcommand*{\cddefault}{c}
-\DeclareRobustCommand{\cdwidth}{%
- \not@math@alphabet\cdwidth\relax
- \exfs@merge@width{\cddefault}}
-\newcommand*{\ecdefault}{ec}
-\DeclareRobustCommand{\ecwidth}{%
- \not@math@alphabet\ecwidth\relax
- \exfs@merge@width{\ecdefault}}
-\newcommand*{\ucdefault}{uc}
-\DeclareRobustCommand{\ucwidth}{%
- \not@math@alphabet\ucwidth\relax
- \exfs@merge@width{\ucdefault}}
-\newcommand*{\etdefault}{x}
-\DeclareRobustCommand{\etwidth}{%
- \not@math@alphabet\etwidth\relax
- \exfs@merge@width{\etdefault}}
-\newcommand*{\epdefault}{x}
-\DeclareRobustCommand{\epwidth}{%
- \not@math@alphabet\epwidth\relax
- \exfs@merge@width{\epdefault}}
-\newcommand*{\exdefault}{ex}
-\DeclareRobustCommand{\exwidth}{%
- \not@math@alphabet\exwidth\relax
- \exfs@merge@width{\exdefault}}
-\newcommand*{\uxdefault}{ux}
-\DeclareRobustCommand{\uxwidth}{%
- \not@math@alphabet\uxwidth\relax
- \exfs@merge@width{\uxdefault}}
-%:cfr-added merge weight changes into series
-\newcommand*{\exfs@merge@weight}[1]{%
- \edef\exfs@tempg{#1}%
- \edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
- \edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
- \def\templ{l}%
- \def\tempb{b}%
- %:case when there's no second part, so the single character must be the weight and should be replaced
- \ifx\exfs@temppart\@empty
- \def\exfs@series{\expandafter\exfs@tempg}%
- %:case when there's a second part
- \else
- %:get first character of second part
- \edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
- \edef\exfs@tempw{\expandafter\exfs@part\exfs@temps\@nil }%
- %:is the first character b? if so, it is part of the weight and should be replaced
- \ifx\exfs@temps\tempb
- \def\exfs@series{\expandafter\exfs@tempg\exfs@tempw}%
- \else
- %:is the first character l? if so, it is part of the weight and should be replaced
- \ifx\exfs@temps\templ
- \def\exfs@series{\expandafter\exfs@tempg\exfs@tempw}%
- \else
- %:o/w the first character is part of the width and should be retained
- \def\exfs@series{\expandafter\exfs@tempg\exfs@temppart}%
- \fi
- \fi
- \fi
- %\fontseries\exfs@series\selectfont}
- \ifx\exfs@tempg\exfs@series
- \exfs@try@series{\exfs@series}%
- \else
- \exfs@try@series[\exfs@tempg]{\exfs@series}% assume user wants to change weight even if this changes back to the default width
- \fi}
-\newcommand*{\mbdefault}{mb}
-\DeclareRobustCommand{\mbweight}{%
- \not@math@alphabet\mbweight\relax
- \exfs@merge@weight{\mbdefault}}
-\newcommand*{\dbdefault}{db}
-\DeclareRobustCommand{\dbweight}{%
- \not@math@alphabet\dbweight\relax
- \exfs@merge@weight{\dbdefault}}
-\newcommand*{\sbdefault}{sb}
-\DeclareRobustCommand{\sbweight}{%
- \not@math@alphabet\sbweight\relax
- \exfs@merge@weight{\sbdefault}}
-\newcommand*{\ebdefault}{eb}
-\DeclareRobustCommand{\ebweight}{%
- \not@math@alphabet\ebweight\relax
- \exfs@merge@weight{\ebdefault}}
-\newcommand*{\ubdefault}{ub}
-\DeclareRobustCommand{\ubweight}{%
- \not@math@alphabet\ubweight\relax
- \exfs@merge@weight{\ubdefault}}
-\newcommand*{\lgdefault}{l}
-%note - use this if light is a variant weight, rather than a separate family
-\DeclareRobustCommand{\lgweight}{%
- \not@math@alphabet\lgweight\relax
- \exfs@merge@weight{\lgdefault}}
-\newcommand*{\eldefault}{el}
-\DeclareRobustCommand{\elweight}{%
- \not@math@alphabet\elweight\relax
- \exfs@merge@weight{\eldefault}}
-\newcommand*{\uldefault}{ul}
-\DeclareRobustCommand{\ulweight}{%
- \not@math@alphabet\ulweight\relax
- \exfs@merge@weight{\uldefault}}
-%:end-added
-\DeclareRobustCommand{\itshape}{%
- \not@math@alphabet\itshape\mathit
- \exfs@merge@shape{\itdefault}{\scdefault}{\sidefault}}
-% original
-%\DeclareRobustCommand{\scshape}{%
-% \not@math@alphabet\scshape\relax
-% \exfs@merge@shape{\scdefault}{\itdefault}{\sidefault}}
-%:cfr-altered: \scshape
-\DeclareRobustCommand{\scshape}{%
- \not@math@alphabet\scshape\relax
- \def\tempu{u}%
- \def\tempo{ol}%
- \ifx\f@shape\tempu
- \exfs@merge@shape{\scdefault}{\udefault}{\scudefault}%
- \else
- \ifx\f@shape\tempo
- \exfs@merge@shape{\scdefault}{\oldefault}{\scoldefault}%
- \else
- \exfs@merge@shape{\scdefault}{\itdefault}{\sidefault}%
- \fi
- \fi}
-%:end-altered
-\DeclareRobustCommand{\upshape}{%
- \not@math@alphabet\upshape\relax
- \exfs@merge@shape{\updefault}{\sidefault}{\scdefault}}
-\DeclareRobustCommand{\dfshape}{%
- \not@math@alphabet\dfshape\relax
- \fontshape\shapedefault\selectfont}
-\newcommand*{\swshapedefault}{\itdefault}
-\DeclareRobustCommand{\swshape}{%
- \not@math@alphabet\swshape\relax
- \swstyle\fontshape\swshapedefault\selectfont}
-\DeclareTextFontCommand{\textln}{\lnstyle}
-\DeclareTextFontCommand{\textos}{\osstyle}
-\DeclareTextFontCommand{\textin}{\instyle}
-\DeclareTextFontCommand{\textsu}{\sustyle}
-\DeclareTextFontCommand{\textsi}{\sishape}
-\DeclareTextFontCommand{\textdf}{\dfshape}
-\DeclareTextFontCommand{\textsw}{\swshape}
-%:cfr-added
-%:families
-\DeclareTextFontCommand{\textti}{\tistyle}
-\DeclareTextFontCommand{\textlt}{\ltstyle}
-\DeclareTextFontCommand{\textof}{\ofstyle} % open-face (or outline or blank) style
-\DeclareTextFontCommand{\textalt}{\altstyle} % alternative style
-\DeclareTextFontCommand{\textreg}{\regstyle} % ``regular'' style
-\DeclareTextFontCommand{\emboss}{\embossstyle}
-\DeclareTextFontCommand{\textorn}{\ornamentalstyle} % intended primarily for decorative initials etc.
-\DeclareTextFontCommand{\textqt}{\qtstyle}
-\DeclareTextFontCommand{\textsh}{\shstyle} % shadowed style
-\DeclareTextFontCommand{\texttm}{\tmstyle}
-\DeclareTextFontCommand{\texttv}{\tvstyle}
-%:families - figures
-\DeclareTextFontCommand{\textl}{\lstyle}
-\DeclareTextFontCommand{\texto}{\ostyle}
-\DeclareTextFontCommand{\textp}{\pstyle}
-\DeclareTextFontCommand{\textt}{\tstyle}
-\DeclareTextFontCommand{\textpl}{\plstyle}
-\DeclareTextFontCommand{\textpo}{\postyle}
-\DeclareTextFontCommand{\texttl}{\tlstyle}
-\DeclareTextFontCommand{\textto}{\tostyle}
-%:shapes
-\DeclareTextFontCommand{\textol}{\olshape} % outline
-\DeclareTextFontCommand{\textswash}{\swashstyle} % an attempt to improve on \textsw
-\DeclareTextFontCommand{\textu}{\ushape}
-\DeclareTextFontCommand{\textscu}{\scushape}
-\DeclareTextFontCommand{\textui}{\uishape} % upright italic
-\DeclareTextFontCommand{\textri}{\rishape} % reverse italic
-%:widths
-\DeclareTextFontCommand{\textnw}{\nwwidth}
-\DeclareTextFontCommand{\textcd}{\cdwidth}
-\DeclareTextFontCommand{\textec}{\ecwidth}
-\DeclareTextFontCommand{\textuc}{\ucwidth}
-\DeclareTextFontCommand{\textet}{\etwidth}
-\DeclareTextFontCommand{\textep}{\epwidth}
-\DeclareTextFontCommand{\textex}{\exwidth}
-\DeclareTextFontCommand{\textux}{\uxwidth}
-\DeclareTextFontCommand{\textrw}{\regwidth}
-%:weights
-\DeclareTextFontCommand{\textmb}{\mbweight}
-\DeclareTextFontCommand{\textdb}{\dbweight}
-\DeclareTextFontCommand{\textsb}{\sbweight}
-\DeclareTextFontCommand{\texteb}{\ebweight}
-\DeclareTextFontCommand{\textub}{\ubweight}
-\DeclareTextFontCommand{\textlg}{\lgweight}
-\DeclareTextFontCommand{\textel}{\elweight}
-\DeclareTextFontCommand{\textul}{\ulweight}
-%end-added
-\newcommand*{\DeclareTextOrnament}[7]{%
- \expandafter\def\csname#1@orn\@roman#2\endcsname{#3/#4/#5/#6/#7}}
-\begingroup
- \catcode`\/=12
- \gdef\exfs@split@orndef#1/#2/#3/#4/#5\@nil{%
- \def\f@encoding{#1}%
- \def\f@family{#2}%
- \def\f@series{#3}%
- \def\f@shape{#4}%
- \def\exfs@tempa{#5}}
-\endgroup
-\def\exfs@base@family{\expandafter\exfs@get@base\f@family\@nil}
-\DeclareRobustCommand{\ornament}[1]{%
- \expandafter\ifx\csname\exfs@base@family @orn\@roman#1\endcsname\relax
- \PackageWarning{nfssext}{%
- Ornament #1 undefined for font family '\exfs@base@family'\MessageBreak
- Setting debug mark}%
- \rule{1ex}{1ex}%
- \else
- \begingroup
- \edef\exfs@tempb{\csname\exfs@base@family @orn\@roman#1\endcsname}%
- \expandafter\expandafter\expandafter\exfs@split@orndef
- \expandafter\string\exfs@tempb\@nil
- \selectfont\char\exfs@tempa
- \endgroup
- \fi}
-%:add microtype hooks
-%:partly from microtype docs; partly from MinionPro package
-\def\nfssextcfr@MT@Hook{%
-% \DeclareMicrotypeVariants{x,j,w,a,d,0,1}% this is the default declaration according to the docs
-% \DeclareMicrotypeVariants*{2,e,h,l}% this should *append* the variants (what do I use 'f' for? better take it out...)
- \DeclareMicrotypeVariants*{2,2d,2dj,2j,dj,e,h,l}% is this necessary or would the previous line be enough?
- }
-\@ifpackageloaded{microtype}{%
- \nfssextcfr@MT@Hook}{%
- \@ifundefined{Microtype@Hook}{%
- \let\Microtype@Hook\nfssextcfr@MT@Hook}{% MinionPro has \global before this
- \g@addto@macro\Microtype@Hook{\nfssextcfr@MT@Hook}}}
-\endinput
diff --git a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.tex b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.tex
deleted file mode 100644
index 8cf5a6c788..0000000000
--- a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.tex
+++ /dev/null
@@ -1,196 +0,0 @@
-% !TEX TS-program = pdflatex
-% !TEX encoding = UTF-8 Unicode
-% arara: pdflatex: { synctex: true }
-\pdfminorversion=7
-\RequirePackage{svn-prov}
-\ProvidesFileSVN{$Id: nfssext-cfr.tex 6143 2017-03-28 22:45:37Z cfrees $}[\revinfo{}]
-\documentclass[pagesize=auto, fontsize=10pt, DIV=11]{scrartcl}
-
-\usepackage{cfr-lm}
-\usepackage{textcomp,longtable,array,booktabs}
-\usepackage{microtype}
-
-\newcommand*{\mail}[1]{\texttt{#1}}
-\newcommand*{\pkg}[1]{\mbox{\textsf{#1}}}
-\newcommand*{\cs}[1]{\texttt{\textbackslash #1}}
-
-\addtokomafont{title}{\rmfamily}
-
-\title{The \pkg{nfssext-cfr} package}
-\author{Clea F. Rees\thanks{\mail{ReesC21 <at> cardiff <dot> ac <dot> uk}}}
-\date{2017/03/28}
-
-
-\begin{document}
-
-\maketitle
-
-\begin{abstract}
- \noindent \pkg{nfssext-cfr} is an extension of Philipp Lehman's \pkg{nfssext}\@.
- \pkg{nfssext} provides commands which enables one to specify font features not covered by the New Font Selection Scheme of \LaTeXe\@.
- \pkg{nfssext-cfr} provides additional commands, further extending the facilities offered by NFSS.
-\end{abstract}
-
-\section*{Introduction}
-
-\pkg{nfssext-cfr} is required by various font support packages I've written.
-It is being released separately to avoid unnecessary duplication and confusion.
-At least, I hope it will remove at least one source of unnecessary confusion.
-I have no reason to think it will avoid any of the others.
-
-The code is somewhat experimental.
-It works for me.
-So far.
-If you discover problems, please let me know.
-If you know how to fix them, even better.
-
-\section*{Caveats, Warnings and Qualifications}
-
-The actual effect of any macro depends on any changes made to the defaults for various font features, the current font and, of course, what is available.
-
-For example, \cs{itdefault} is intended to be the name of italic shape and is used by the redefined \cs{itshape} supplied by this package.
-By default, \cs{itdefault} is \texttt{it}.
-However, if you change that to, say, \texttt{sl}, then \cs{itshape} will use \texttt{sl} instead.
-
-Moreover, if the current shape is small-caps, \cs{itshape} will attempt to merge the default italic shape with the small-caps.
-That is, it will try to select small-caps italic, if possible, before resorting to plain italic.
-
-The macros operating on family names are almost entirely reliant on font names adhering strictly to the Karl Berry schema.
-This includes the stipulation that multiple variants be listed in alphabetical order.
-These macros cannot be used with fonts named in any other way.
-
-Likewise, the macros for series and shapes are unlikely to have their expected effects if fonts are not packaged in ways which both adhere to the NFSS schema and, where relevant, to the specific way that schema is extended here.
-In particular, note that italic small-caps is assumed to be coded as \texttt{si}.
-
-If a macro's attempt to enable or disable a font feature fails, a warning will generally be written to the console, but the code tries hard not to trigger errors.
-If an attempt triggers an error, that's a bug, so please let me know.
-If an attempt triggers a warning, please note that there may be no bug at all and, if there is a bug, it is probably not in this package.
-
-To be clear, there certainly are bugs.
-It is just statistically unlikely that any given warning is caused by one.
-
-{%
- \fontfamily{pzc}\fontshape{it}\fontseries{m}\selectfont\Large Caveat emptor \dots\par
-}
-
-\section*{Macros}
-
-The following table includes macros supplied by the original \pkg{nfssext} and additions available with \pkg{nfssext-cfr}.
-
-The third column lists the default letter codes for various font features.
-As explained above, if the defaults are changed, the macros will try to do something different.
-
-A \texttt{+} indicates that the macro will attempt to merge the addition into the current font's family name, series or shape.
-For example, if the current font uses oldstyle figures, the \texttt{+2} indicates that \cs{pstyle} will attempt to select a font with figures which are both proportional and oldstyle.
-
-A \textt{-} indicates that the macro will attempt to subtract from the current font's family name, series or shape.
-For example, if the current font uses oldstyle figures, the \texttt{-2} indicates that \cs{tstyle} will attempt to select a font with figures which are both tabular and oldstyle.
-
-A comma-separated list indicates consecutive additions and/or subtraction.
-
-If no \texttt{+-} is used, the macro tries to select a font with the given feature without merging.
-For example \cs{sistyle} tries to switch to \texttt{si} shape regardless of the current font shape.
-
-A \texttt{--} indicates that the macro will try to clear all relevant letter codes from the current font's family name, series or shape.
-For example, \cs{regwidth} tries to switch to a series with no letter codes indicating non-standard widths in its name.
-
-Additions, subtractions and clearances operate on font family names, series or shapes, as appropriate.
-In general, macros with \texttt{style} in their names operate on family names; those with \texttt{shape} operate on shape codes; and those with \textt{width} or \texttt{weight} operate on series codes.
-
-The letter codes correspond to those specified by the NFSS specification, unless the specification does not include the relevant feature.
-In the latter case, I tried to choose something sensible i.e.~something which made sense to me at the time.
-
-
-\begin{longtable}{lll>{\ttfamily}ll}
- \toprule\endhead
- \bottomrule\endfoot
- \multicolumn{5}{l}{\sffamily Standard macros redefined:}\\
- \cmidrule(lr){1-5}
- & \cs{itshape}\\
- & \cs{scshape}\\
- & \cs{upshape}\\
- \cmidrule(lr){1-5}
- \multicolumn{5}{l}{\sffamily Families --- Styles:}\\
- \cmidrule(lr){1-5}
- & \cs{textti} & \cs{tistyle} & +d & titling/display\\
- & \cs{textlt} & \cs{ltstyle} & +l & light (when separate family)\\
- & \cs{textof} & \cs{ofstyle} & +l & open-face (or outline or blank) style\\
- & \cs{textalt} & \cs{altstyle} & +a & alternative style\\
- & \cs{textreg} & \cs{regstyle} & -- & regular style\\
- & \cs{emboss} & \cs{embossstyle} & +e & \\
- & \cs{textorn} & \cs{ornamentalstyle} & +p & intended primarily for decorative initials etc.\\
- & \cs{ornament} & \\
- & \cs{textqt} & \cs{qtstyle} & +q & quotation style\\
- & \cs{textsh} & \cs{shstyle} & +h & shadowed style\\
- & \cs{texttm} & \cs{tmstyle} & -s,-v,+t & monowidth typewriter\\
- & \cs{texttv} & \cs{tvstyle} & -s,-t,+v & variable width typewriter\\
- & \cs{textswash} & \cs{swashstyle} & +w & an attempt to improve on \cs{textsw}\\
- \cmidrule(lr){1-5}
- \multicolumn{5}{l}{\sffamily Families --- Figures:}\\
- \cmidrule(lr){1-5}
- & \cs{textln} & \cs{lnstyle} & -- & lining figures (cf.~macro below)\\
- & \cs{textos} & \cs{osstyle} & j & oldstyle figures (cf.~macro below)\\
- & \cs{textin} & \cs{instyle} & 0 & inferior figures\\
- & \cs{textsu} & \cs{sustyle} & 1 & superior figures\\
- & \cs{textl} & \cs{lstyle} & -j & lining figures (cf.~command above)\\
- & \cs{texto} & \cs{ostyle} & +j & oldstyle figures (cf.~original \cs{osstyle} above)\\
- & \cs{textp} & \cs{pstyle} & +2 & proportional figures\\
- & \cs{textt} & \cs{tstyle} & -2 & tabular figures\\
- & \cs{textpl} & \cs{plstyle} & -j,+2 & proportional lining figures \\
- & \cs{textpo} & \cs{postyle} & +2j & proportional oldstyle figures \\
- & \cs{texttl} & \cs{tlstyle} & -j,-2 & tabular lining figures\\
- & \cs{textto} & \cs{tostyle} & +j,-2 & tabular oldstyle figures\\
- \cmidrule(lr){1-5}
- \multicolumn{5}{l}{\sffamily Shapes:}\\
- \cmidrule(lr){1-5}
- & \cs{scolshape} & & scol & \\
- & \cs{textol} & \cs{olshape} & ol & outline\\
- & \cs{textsi} & \cs{sishape} & si & italic small-caps\\
- & \cs{textu} & \cs{ushape} & u & \\
- & \cs{textscu} & \cs{scushape} & su & \\
- & \cs{textui} & \cs{uishape} & ui & upright italic\\
- & \cs{textri} & \cs{rishape} & ri & reverse italic\\
- & \cs{textdf} & \cs{dfshape} & n & default shape\\
- & \cs{textsw} & \cs{swshape} & it & swash shape (cf.~\cs{swstyle} above)\\
- & & \cs{swstyle} & \\
- \cmidrule(lr){1-5}
- \multicolumn{5}{l}{\sffamily Series --- Widths:}\\
- \cmidrule(lr){1-5}
- & \cs{textnw} & \cs{nwwidth} & +c & \\
- & \cs{textcd} & \cs{cdwidth} & +c & \\
- & \cs{textec} & \cs{ecwidth} & +ec & \\
- & \cs{textuc} & \cs{ucwidth} & +uc & \\
- & \cs{textet} & \cs{etwidth} & +x & \\
- & \cs{textep} & \cs{epwidth} & +x & \\
- & \cs{textex} & \cs{exwidth} & +ex & \\
- & \cs{textux} & \cs{uxwidth} & +ux & \\
- & \cs{textrw} & \cs{regwidth} & -- & \\
- \cmidrule(lr){1-5}
- \multicolumn{5}{l}{\sffamily Series --- Weights:}\\
- \cmidrule(lr){1-5}
- & \cs{textmb} & \cs{mbweight} & +mb & \\
- & \cs{textdb} & \cs{dbweight} & +db & \\
- & \cs{textsb} & \cs{sbweight} & +sb & \\
- & \cs{texteb} & \cs{ebweight} & +eb & \\
- & \cs{textub} & \cs{ubweight} & +ub & \\
- & \cs{textlg} & \cs{lgweight} & +l & \\
- & \cs{textel} & \cs{elweight} & +el & \\
- & \cs{textul} & \cs{ulweight} & +ul & \\
-\end{longtable}
-
-\section*{History}
-
-\subsection*{2017-03-28}
-Attempt to modify \cs{tmstyle} and \cs{tvstyle} to work as advertised.
-Extend documentation somewhat.
-
-\subsection*{2010}
-The 2010 update includes an attempt to improve the behaviour of \verb|\ofstyle|, and to add support for \pkg{microtype}.
-I didn't publish this at the time because I wanted to test it first.
-I have just discovered that I am still using a local copy.
-Insofar as one person can test something, I figure that 5 years ought to be enough to pick up the most obvious problems.
-However, your kilometres may, as always, vary.
-
-There should be no changes for the end user except that in certain cases it is possible that line-breaks may be altered if \pkg{microtype} is in use due to the enhanced support included for variant font families.
-
-\end{document}
diff --git a/macros/latex/contrib/nicematrix/nicematrix-code.dtx b/macros/latex/contrib/nicematrix/nicematrix-code.dtx
index 05251bd9cd..58a841a655 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-code.dtx
+++ b/macros/latex/contrib/nicematrix/nicematrix-code.dtx
@@ -17,8 +17,8 @@
%
% \fi
% \iffalse
-\def\myfileversion{6.28b}
-\def\myfiledate{2024/06/29}
+\def\myfileversion{6.28c}
+\def\myfiledate{2024/08/22}
%
%
%<*batchfile>
@@ -2449,7 +2449,7 @@ version 2005/12/01 or later.
%
% \bigskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / xdots }
+\keys_define:nn { nicematrix / xdots }
{
shorten-start .code:n =
\hook_gput_code:nnn { begindocument } { . }
@@ -2509,7 +2509,7 @@ version 2005/12/01 or later.
%
% \bigskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / rules }
+\keys_define:nn { nicematrix / rules }
{
color .tl_set:N = \l_@@_rules_color_tl ,
color .value_required:n = true ,
@@ -2521,11 +2521,11 @@ version 2005/12/01 or later.
%
%
% \bigskip
-% First, we define a set of keys ``|NiceMatrix / Global|'' which will be used
+% First, we define a set of keys ``|nicematrix / Global|'' which will be used
% (with the mechanism of |.inherit:n|) by other sets of keys.
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Global }
+\keys_define:nn { nicematrix / Global }
{
ampersand-in-blocks .bool_set:N = \l_@@_amp_in_blocks_bool ,
ampersand-in-blocks .default:n = true ,
@@ -2537,7 +2537,7 @@ version 2005/12/01 or later.
rounded-corners .dim_set:N = \l_@@_tab_rounded_corners_dim ,
rounded-corners .default:n = 4 pt ,
custom-line .code:n = \@@_custom_line:n { #1 } ,
- rules .code:n = \keys_set:nn { NiceMatrix / rules } { #1 } ,
+ rules .code:n = \keys_set:nn { nicematrix / rules } { #1 } ,
rules .value_required:n = true ,
standard-cline .bool_set:N = \l_@@_standard_cline_bool ,
standard-cline .default:n = true ,
@@ -2551,7 +2551,7 @@ version 2005/12/01 or later.
cell-space-bottom-limit = #1 ,
} ,
cell-space-limits .value_required:n = true ,
- xdots .code:n = \keys_set:nn { NiceMatrix / xdots } { #1 } ,
+ xdots .code:n = \keys_set:nn { nicematrix / xdots } { #1 } ,
light-syntax .code:n =
\bool_set_true:N \l_@@_light_syntax_bool
\bool_set_false:N \l_@@_light_syntax_expanded_bool ,
@@ -2644,7 +2644,7 @@ version 2005/12/01 or later.
% We define a set of keys used by the environments of \pkg{nicematrix} (but not
% by the command |\NiceMatrixOptions|).
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Env }
+\keys_define:nn { nicematrix / environments }
{
corners .clist_set:N = \l_@@_corners_clist ,
corners .default:n = { NW , SW , NE , SE } ,
@@ -2698,7 +2698,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / notes }
+\keys_define:nn { nicematrix / notes }
{
para .bool_set:N = \l_@@_notes_para_bool ,
para .default:n = true ,
@@ -2741,7 +2741,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / delimiters }
+\keys_define:nn { nicematrix / delimiters }
{
max-width .bool_set:N = \l_@@_delimiters_max_width_bool ,
max-width .default:n = true ,
@@ -2754,63 +2754,63 @@ version 2005/12/01 or later.
% We begin the construction of the major sets of keys (used by the different
% user commands and environments).
% \begin{macrocode}
-\keys_define:nn { NiceMatrix }
+\keys_define:nn { nicematrix }
{
NiceMatrixOptions .inherit:n =
- { NiceMatrix / Global } ,
- NiceMatrixOptions / xdots .inherit:n = NiceMatrix / xdots ,
- NiceMatrixOptions / rules .inherit:n = NiceMatrix / rules ,
- NiceMatrixOptions / notes .inherit:n = NiceMatrix / notes ,
- NiceMatrixOptions / sub-matrix .inherit:n = NiceMatrix / sub-matrix ,
- SubMatrix / rules .inherit:n = NiceMatrix / rules ,
- CodeAfter / xdots .inherit:n = NiceMatrix / xdots ,
- CodeBefore / sub-matrix .inherit:n = NiceMatrix / sub-matrix ,
- CodeAfter / sub-matrix .inherit:n = NiceMatrix / sub-matrix ,
+ { nicematrix / Global } ,
+ NiceMatrixOptions / xdots .inherit:n = nicematrix / xdots ,
+ NiceMatrixOptions / rules .inherit:n = nicematrix / rules ,
+ NiceMatrixOptions / notes .inherit:n = nicematrix / notes ,
+ NiceMatrixOptions / sub-matrix .inherit:n = nicematrix / sub-matrix ,
+ SubMatrix / rules .inherit:n = nicematrix / rules ,
+ CodeAfter / xdots .inherit:n = nicematrix / xdots ,
+ CodeBefore / sub-matrix .inherit:n = nicematrix / sub-matrix ,
+ CodeAfter / sub-matrix .inherit:n = nicematrix / sub-matrix ,
NiceMatrix .inherit:n =
{
- NiceMatrix / Global ,
- NiceMatrix / Env ,
+ nicematrix / Global ,
+ nicematrix / environments ,
} ,
- NiceMatrix / xdots .inherit:n = NiceMatrix / xdots ,
- NiceMatrix / rules .inherit:n = NiceMatrix / rules ,
+ NiceMatrix / xdots .inherit:n = nicematrix / xdots ,
+ NiceMatrix / rules .inherit:n = nicematrix / rules ,
NiceTabular .inherit:n =
{
- NiceMatrix / Global ,
- NiceMatrix / Env
+ nicematrix / Global ,
+ nicematrix / environments
} ,
- NiceTabular / xdots .inherit:n = NiceMatrix / xdots ,
- NiceTabular / rules .inherit:n = NiceMatrix / rules ,
- NiceTabular / notes .inherit:n = NiceMatrix / notes ,
+ NiceTabular / xdots .inherit:n = nicematrix / xdots ,
+ NiceTabular / rules .inherit:n = nicematrix / rules ,
+ NiceTabular / notes .inherit:n = nicematrix / notes ,
NiceArray .inherit:n =
{
- NiceMatrix / Global ,
- NiceMatrix / Env ,
+ nicematrix / Global ,
+ nicematrix / environments ,
} ,
- NiceArray / xdots .inherit:n = NiceMatrix / xdots ,
- NiceArray / rules .inherit:n = NiceMatrix / rules ,
+ NiceArray / xdots .inherit:n = nicematrix / xdots ,
+ NiceArray / rules .inherit:n = nicematrix / rules ,
pNiceArray .inherit:n =
{
- NiceMatrix / Global ,
- NiceMatrix / Env ,
+ nicematrix / Global ,
+ nicematrix / environments ,
} ,
- pNiceArray / xdots .inherit:n = NiceMatrix / xdots ,
- pNiceArray / rules .inherit:n = NiceMatrix / rules ,
+ pNiceArray / xdots .inherit:n = nicematrix / xdots ,
+ pNiceArray / rules .inherit:n = nicematrix / rules ,
}
% \end{macrocode}
%
%
% \bigskip
% We finalise the definition of the set of keys
-% ``|NiceMatrix / NiceMatrixOptions|'' with the options specific to
+% ``|nicematrix / NiceMatrixOptions|'' with the options specific to
% |\NiceMatrixOptions|.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / NiceMatrixOptions }
+\keys_define:nn { nicematrix / NiceMatrixOptions }
{
delimiters / color .tl_set:N = \l_@@_delimiters_color_tl ,
delimiters / color .value_required:n = true ,
delimiters / max-width .bool_set:N = \l_@@_delimiters_max_width_bool ,
delimiters / max-width .default:n = true ,
- delimiters .code:n = \keys_set:nn { NiceMatrix / delimiters } { #1 } ,
+ delimiters .code:n = \keys_set:nn { nicematrix / delimiters } { #1 } ,
delimiters .value_required:n = true ,
width .dim_set:N = \l_@@_width_dim ,
width .value_required:n = true ,
@@ -2858,9 +2858,9 @@ version 2005/12/01 or later.
allow-duplicate-names .code:n =
\@@_msg_redirect_name:nn { Duplicate~name } { none } ,
allow-duplicate-names .value_forbidden:n = true ,
- notes .code:n = \keys_set:nn { NiceMatrix / notes } { #1 } ,
+ notes .code:n = \keys_set:nn { nicematrix / notes } { #1 } ,
notes .value_required:n = true ,
- sub-matrix .code:n = \keys_set:nn { NiceMatrix / sub-matrix } { #1 } ,
+ sub-matrix .code:n = \keys_set:nn { nicematrix / sub-matrix } { #1 } ,
sub-matrix .value_required:n = true ,
matrix / columns-type .tl_set:N = \l_@@_columns_type_tl ,
matrix / columns-type .value_required:n = true ,
@@ -2878,17 +2878,17 @@ version 2005/12/01 or later.
% current TeX group.
% \begin{macrocode}
\NewDocumentCommand \NiceMatrixOptions { m }
- { \keys_set:nn { NiceMatrix / NiceMatrixOptions } { #1 } }
+ { \keys_set:nn { nicematrix / NiceMatrixOptions } { #1 } }
% \end{macrocode}
%
%
% \bigskip
-% We finalise the definition of the set of keys ``|NiceMatrix / NiceMatrix|''.
+% We finalise the definition of the set of keys ``|nicematrix / NiceMatrix|''.
% That set of keys will be used by |{NiceMatrix}|, |{pNiceMatrix}|,
% |{bNiceMatrix}|, etc.
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / NiceMatrix }
+\keys_define:nn { nicematrix / NiceMatrix }
{
last-col .code:n = \tl_if_empty:nTF { #1 }
{
@@ -2904,7 +2904,7 @@ version 2005/12/01 or later.
delimiters / color .value_required:n = true ,
delimiters / max-width .bool_set:N = \l_@@_delimiters_max_width_bool ,
delimiters / max-width .default:n = true ,
- delimiters .code:n = \keys_set:nn { NiceMatrix / delimiters } { #1 } ,
+ delimiters .code:n = \keys_set:nn { nicematrix / delimiters } { #1 } ,
delimiters .value_required:n = true ,
small .bool_set:N = \l_@@_small_bool ,
small .value_forbidden:n = true ,
@@ -2915,11 +2915,11 @@ version 2005/12/01 or later.
%
%
% \bigskip
-% We finalise the definition of the set of keys ``|NiceMatrix / NiceArray|''
+% We finalise the definition of the set of keys ``|nicematrix / NiceArray|''
% with the options specific to |{NiceArray}|.
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / NiceArray }
+\keys_define:nn { nicematrix / NiceArray }
{
% \end{macrocode}
%
@@ -2941,7 +2941,7 @@ version 2005/12/01 or later.
%
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / pNiceArray }
+\keys_define:nn { nicematrix / pNiceArray }
{
first-col .code:n = \int_zero:N \l_@@_first_col_int ,
last-col .code:n = \tl_if_empty:nF {#1}
@@ -2952,7 +2952,7 @@ version 2005/12/01 or later.
delimiters / color .value_required:n = true ,
delimiters / max-width .bool_set:N = \l_@@_delimiters_max_width_bool ,
delimiters / max-width .default:n = true ,
- delimiters .code:n = \keys_set:nn { NiceMatrix / delimiters } { #1 } ,
+ delimiters .code:n = \keys_set:nn { nicematrix / delimiters } { #1 } ,
delimiters .value_required:n = true ,
small .bool_set:N = \l_@@_small_bool ,
small .value_forbidden:n = true ,
@@ -2963,11 +2963,11 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% We finalise the definition of the set of keys ``|NiceMatrix / NiceTabular|''
+% We finalise the definition of the set of keys ``|nicematrix / NiceTabular|''
% with the options specific to |{NiceTabular}|.
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / NiceTabular }
+\keys_define:nn { nicematrix / NiceTabular }
{
% \end{macrocode}
% The dimension |width| will be used if at least a column of type |X| is used.
@@ -2976,7 +2976,7 @@ version 2005/12/01 or later.
width .code:n = \dim_set:Nn \l_@@_width_dim { #1 }
\bool_set_true:N \l_@@_width_used_bool ,
width .value_required:n = true ,
- notes .code:n = \keys_set:nn { NiceMatrix / notes } { #1 } ,
+ notes .code:n = \keys_set:nn { nicematrix / notes } { #1 } ,
tabularnote .tl_gset:N = \g_@@_tabularnote_tl ,
tabularnote .value_required:n = true ,
caption .tl_set:N = \l_@@_caption_tl ,
@@ -3003,18 +3003,18 @@ version 2005/12/01 or later.
% We \emph{must} put the following instructions \emph{after} the :
%
% \begin{verbatim}
-% CodeAfter / sub-matrix .inherit:n = NiceMatrix / sub-matrix
+% CodeAfter / sub-matrix .inherit:n = nicematrix / sub-matrix
% \end{verbatim}
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / CodeAfter }
+\keys_define:nn { nicematrix / CodeAfter }
{
delimiters / color .tl_set:N = \l_@@_delimiters_color_tl ,
delimiters / color .value_required:n = true ,
- rules .code:n = \keys_set:nn { NiceMatrix / rules } { #1 } ,
+ rules .code:n = \keys_set:nn { nicematrix / rules } { #1 } ,
rules .value_required:n = true ,
- xdots .code:n = \keys_set:nn { NiceMatrix / xdots } { #1 } ,
- sub-matrix .code:n = \keys_set:nn { NiceMatrix / sub-matrix } { #1 } ,
+ xdots .code:n = \keys_set:nn { nicematrix / xdots } { #1 } ,
+ sub-matrix .code:n = \keys_set:nn { nicematrix / sub-matrix } { #1 } ,
sub-matrix .value_required:n = true ,
unknown .code:n = \@@_error:n { Unknown~key~for~CodeAfter }
}
@@ -4282,11 +4282,11 @@ version 2005/12/01 or later.
%
% \bigskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / CodeBefore }
+\keys_define:nn { nicematrix / CodeBefore }
{
create-cell-nodes .bool_gset:N = \g_@@_recreate_cell_nodes_bool ,
create-cell-nodes .default:n = true ,
- sub-matrix .code:n = \keys_set:nn { NiceMatrix / sub-matrix } { #1 } ,
+ sub-matrix .code:n = \keys_set:nn { nicematrix / sub-matrix } { #1 } ,
sub-matrix .value_required:n = true ,
delimiters / color .tl_set:N = \l_@@_delimiters_color_tl ,
delimiters / color .value_required:n = true ,
@@ -4298,7 +4298,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\NewDocumentCommand \@@_CodeBefore_keys: { O { } }
{
- \keys_set:nn { NiceMatrix / CodeBefore } { #1 }
+ \keys_set:nn { nicematrix / CodeBefore } { #1 }
\@@_CodeBefore:w
}
% \end{macrocode}
@@ -4559,8 +4559,8 @@ version 2005/12/01 or later.
% |{NiceArray}|, we have the options |t|, |c|, |b| and |baseline|.
% \begin{macrocode}
\bool_if:NTF \g_@@_delims_bool
- { \keys_set:nn { NiceMatrix / pNiceArray } }
- { \keys_set:nn { NiceMatrix / NiceArray } }
+ { \keys_set:nn { nicematrix / pNiceArray } }
+ { \keys_set:nn { nicematrix / NiceArray } }
{ #3 , #5 }
% \end{macrocode}
%
@@ -4592,7 +4592,7 @@ version 2005/12/01 or later.
\skip_horizontal:N \l_@@_right_margin_dim
\skip_horizontal:N \l_@@_extra_right_margin_dim
- % % awful workaround
+ % awful workaround
\int_compare:nNnT \g_@@_col_total_int = \c_one_int
{
\dim_compare:nNnT \l_@@_columns_width_dim > \c_zero_dim
@@ -6153,6 +6153,24 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+% \bigskip
+% We want |\cellcolor| to be available in |\multicolumn| because |\cellcolor| of
+% \pkg{colortbl} is available in |\multicolumn|.
+% \begin{macrocode}
+ \RenewDocumentCommand \cellcolor { O { } m }
+ {
+ \@@_test_color_inside:
+ \tl_gput_right:Nx \g_@@_pre_code_before_tl
+ {
+ \@@_rectanglecolor [ ##1 ]
+ { \exp_not:n { ##2 } }
+ { \int_use:N \c@iRow - \int_use:N \c@jCol }
+ { \int_use:N \c@iRow - \int_eval:n { \c@jCol + #1 } }
+ }
+ \ignorespaces
+ }
+% \end{macrocode}
+%
% \medskip
% The following lines were in the original definition of |\multicolumn|.
% \begin{macrocode}
@@ -7487,7 +7505,7 @@ version 2005/12/01 or later.
\bool_set_true:N \l_@@_last_col_without_value_bool
\int_set:Nn \l_@@_last_col_int { -1 }
}
- \keys_set:nn { NiceMatrix / NiceMatrix } { ##1 }
+ \keys_set:nn { nicematrix / NiceMatrix } { ##1 }
\@@_begin_of_NiceMatrix:nV { #1 } \l_@@_columns_type_tl
}
{ \use:c { end #1 NiceArray } }
@@ -7505,7 +7523,7 @@ version 2005/12/01 or later.
\bool_set_true:N \l_@@_last_col_without_value_bool
\int_set:Nn \l_@@_last_col_int { -1 }
}
- \keys_set:nn { NiceMatrix / NiceMatrix } { #1 }
+ \keys_set:nn { nicematrix / NiceMatrix } { #1 }
\bool_lazy_or:nnT
{ \clist_if_empty_p:N \l_@@_vlines_clist }
{ \l_@@_except_borders_bool }
@@ -7536,7 +7554,7 @@ version 2005/12/01 or later.
\dim_compare:nNnT \l_@@_width_dim = \c_zero_dim
{ \dim_set_eq:NN \l_@@_width_dim \linewidth }
\str_gset:Nn \g_@@_name_env_str { NiceTabular }
- \keys_set:nn { NiceMatrix / NiceTabular } { #1 , #3 }
+ \keys_set:nn { nicematrix / NiceTabular } { #1 , #3 }
\tl_if_empty:NF \l_@@_short_caption_tl
{
\tl_if_empty:NT \l_@@_caption_tl
@@ -7588,7 +7606,7 @@ version 2005/12/01 or later.
\str_gset:Nn \g_@@_name_env_str { NiceTabularX }
\dim_zero_new:N \l_@@_width_dim
\dim_set:Nn \l_@@_width_dim { #1 }
- \keys_set:nn { NiceMatrix / NiceTabular } { #2 , #4 }
+ \keys_set:nn { nicematrix / NiceTabular } { #2 , #4 }
\@@_settings_for_tabular:
\NiceArray { #3 }
}
@@ -7605,7 +7623,7 @@ version 2005/12/01 or later.
{
\str_gset:Nn \g_@@_name_env_str { NiceTabular* }
\dim_set:Nn \l_@@_tabular_width_dim { #1 }
- \keys_set:nn { NiceMatrix / NiceTabular } { #2 , #4 }
+ \keys_set:nn { nicematrix / NiceTabular } { #2 , #4 }
\@@_settings_for_tabular:
\NiceArray { #3 }
}
@@ -7969,7 +7987,7 @@ version 2005/12/01 or later.
% the |\CodeBefore.|
% \begin{macrocode}
\NewDocumentCommand \@@_CodeAfter_keys: { O { } }
- { \keys_set:nn { NiceMatrix / CodeAfter } { #1 } }
+ { \keys_set:nn { nicematrix / CodeAfter } { #1 } }
% \end{macrocode}
%
%
@@ -8578,7 +8596,7 @@ version 2005/12/01 or later.
\int_compare:nNnT { #1 } = \l_@@_last_row_int
{ \color { nicematrix-last-row } }
}
- \keys_set:nn { NiceMatrix / xdots } { #3 }
+ \keys_set:nn { nicematrix / xdots } { #3 }
\tl_if_empty:oF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
\@@_actually_draw_Ldots:
\group_end:
@@ -8673,7 +8691,7 @@ version 2005/12/01 or later.
\int_compare:nNnT { #1 } = \l_@@_last_row_int
{ \color { nicematrix-last-row } }
}
- \keys_set:nn { NiceMatrix / xdots } { #3 }
+ \keys_set:nn { nicematrix / xdots } { #3 }
\tl_if_empty:oF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
\@@_actually_draw_Cdots:
\group_end:
@@ -8801,7 +8819,7 @@ version 2005/12/01 or later.
\int_compare:nNnT { #2 } = \l_@@_last_col_int
{ \color { nicematrix-last-col } }
}
- \keys_set:nn { NiceMatrix / xdots } { #3 }
+ \keys_set:nn { nicematrix / xdots } { #3 }
\tl_if_empty:oF \l_@@_xdots_color_tl
{ \color { \l_@@_xdots_color_tl } }
\@@_actually_draw_Vdots:
@@ -8950,7 +8968,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\group_begin:
\@@_open_shorten:
- \keys_set:nn { NiceMatrix / xdots } { #3 }
+ \keys_set:nn { nicematrix / xdots } { #3 }
\tl_if_empty:oF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
\@@_actually_draw_Ddots:
\group_end:
@@ -9014,11 +9032,14 @@ version 2005/12/01 or later.
% extremity of the line by modifying the coordinate |\l_@@_x_initial_dim|.
% \begin{macrocode}
{
- \dim_set:Nn \l_@@_y_final_dim
- {
- \l_@@_y_initial_dim +
- ( \l_@@_x_final_dim - \l_@@_x_initial_dim ) *
- \dim_ratio:nn \g_@@_delta_y_one_dim \g_@@_delta_x_one_dim
+ \dim_compare:nNnF \g_@@_delta_x_one_dim = \c_zero_dim
+ {
+ \dim_set:Nn \l_@@_y_final_dim
+ {
+ \l_@@_y_initial_dim +
+ ( \l_@@_x_final_dim - \l_@@_x_initial_dim ) *
+ \dim_ratio:nn \g_@@_delta_y_one_dim \g_@@_delta_x_one_dim
+ }
}
}
}
@@ -9045,7 +9066,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\group_begin:
\@@_open_shorten:
- \keys_set:nn { NiceMatrix / xdots } { #3 }
+ \keys_set:nn { nicematrix / xdots } { #3 }
\tl_if_empty:oF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
\@@_actually_draw_Iddots:
\group_end:
@@ -9090,11 +9111,14 @@ version 2005/12/01 or later.
{ \l_@@_y_final_dim - \l_@@_y_initial_dim }
}
{
- \dim_set:Nn \l_@@_y_final_dim
- {
- \l_@@_y_initial_dim +
- ( \l_@@_x_final_dim - \l_@@_x_initial_dim ) *
- \dim_ratio:nn \g_@@_delta_y_two_dim \g_@@_delta_x_two_dim
+ \dim_compare:nNnF \g_@@_delta_x_two_dim = \c_zero_dim
+ {
+ \dim_set:Nn \l_@@_y_final_dim
+ {
+ \l_@@_y_initial_dim +
+ ( \l_@@_x_final_dim - \l_@@_x_initial_dim ) *
+ \dim_ratio:nn \g_@@_delta_y_two_dim \g_@@_delta_x_two_dim
+ }
}
}
}
@@ -9603,7 +9627,7 @@ version 2005/12/01 or later.
\l_@@_last_col_int { \@@_error:nn { in~last~col } \Ddots }
}
{
- \keys_set_known:nn { NiceMatrix / Ddots } { #1 }
+ \keys_set_known:nn { nicematrix / Ddots } { #1 }
\@@_instruction_of_type:nnn \l_@@_draw_first_bool { Ddots }
{ #1 , down = #2 , up = #3 , middle = #4 }
}
@@ -9633,7 +9657,7 @@ version 2005/12/01 or later.
\l_@@_last_col_int { \@@_error:nn { in~last~col } \Iddots }
}
{
- \keys_set_known:nn { NiceMatrix / Ddots } { #1 }
+ \keys_set_known:nn { nicematrix / Ddots } { #1 }
\@@_instruction_of_type:nnn \l_@@_draw_first_bool { Iddots }
{ #1 , down = #2 , up = #3 , middle = #4 }
}
@@ -9651,7 +9675,7 @@ version 2005/12/01 or later.
% Despite its name, the following set of keys will be used for |\Ddots| but also
% for |\Iddots|.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Ddots }
+\keys_define:nn { nicematrix / Ddots }
{
draw-first .bool_set:N = \l_@@_draw_first_bool ,
draw-first .default:n = true ,
@@ -9810,7 +9834,7 @@ version 2005/12/01 or later.
{ \color { nicematrix-last-row } }
}
- \keys_set:nn { NiceMatrix / xdots } { #4 }
+ \keys_set:nn { nicematrix / xdots } { #4 }
\tl_if_empty:oF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
\@@_actually_draw_Ldots:
\group_end:
@@ -9916,7 +9940,7 @@ version 2005/12/01 or later.
\int_compare:nNnT { #2 } = \g_@@_col_total_int
{ \color { nicematrix-last-col } }
}
- \keys_set:nn { NiceMatrix / xdots } { #4 }
+ \keys_set:nn { nicematrix / xdots } { #4 }
\tl_if_empty:oF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
\@@_actually_draw_Vdots:
\group_end:
@@ -9943,14 +9967,14 @@ version 2005/12/01 or later.
\peek_remove_spaces:n
{
\bool_gset_true:N \g_@@_rotate_bool
- \keys_set:nn { NiceMatrix / rotate } { #1 }
+ \keys_set:nn { nicematrix / rotate } { #1 }
}
}
% \end{macrocode}
%
% \bigskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / rotate }
+\keys_define:nn { nicematrix / rotate }
{
c .code:n = \bool_gset_true:N \g_@@_rotate_c_bool ,
c .value_forbidden:n = true ,
@@ -10004,7 +10028,7 @@ version 2005/12/01 or later.
\exp_args:NNo \NewDocumentCommand \@@_line \l_@@_argspec_tl
{
\group_begin:
- \keys_set:nn { NiceMatrix / xdots } { #1 , #4 , down = #5 , up = #6 }
+ \keys_set:nn { nicematrix / xdots } { #1 , #4 , down = #5 , up = #6 }
\tl_if_empty:oF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
\use:e
{
@@ -10125,7 +10149,7 @@ version 2005/12/01 or later.
% \end{macrocode}
% \medskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / RowStyle }
+\keys_define:nn { nicematrix / RowStyle }
{
cell-space-top-limit .dim_set:N = \l_tmpa_dim ,
cell-space-top-limit .value_required:n = true ,
@@ -10162,7 +10186,7 @@ version 2005/12/01 or later.
\int_set_eq:NN \l_@@_key_nb_rows_int \c_one_int
\dim_zero:N \l_tmpa_dim
\dim_zero:N \l_tmpb_dim
- \keys_set:nn { NiceMatrix / RowStyle } { #1 }
+ \keys_set:nn { nicematrix / RowStyle } { #1 }
% \end{macrocode}
% If the key |rowcolor| has been used.
% \begin{macrocode}
@@ -10608,7 +10632,7 @@ version 2005/12/01 or later.
%
% \bigskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / rowcolors }
+\keys_define:nn { nicematrix / rowcolors }
{
respect-blocks .bool_set:N = \l_@@_respect_blocks_bool ,
respect-blocks .default:n = true ,
@@ -10645,7 +10669,7 @@ version 2005/12/01 or later.
\seq_set_split:Nnn \l_@@_colors_seq { , } { #3 }
\tl_clear_new:N \l_@@_cols_tl
\cs_set_nopar:Npn \l_@@_cols_tl { - }
- \keys_set:nn { NiceMatrix / rowcolors } { #4 }
+ \keys_set:nn { nicematrix / rowcolors } { #4 }
% \end{macrocode}
% The counter |\l_@@_color_int| will be the rank of the current color in the list of
% colors (modulo the length of the list).
@@ -11304,7 +11328,7 @@ version 2005/12/01 or later.
% However, unknown keys will be analyzed further with another set of keys.
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Rules }
+\keys_define:nn { nicematrix / Rules }
{
position .int_set:N = \l_@@_position_int ,
position .value_required:n = true ,
@@ -11327,7 +11351,7 @@ version 2005/12/01 or later.
% following set of keys.
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / RulesBis }
+\keys_define:nn { nicematrix / RulesBis }
{
multiplicity .int_set:N = \l_@@_multiplicity_int ,
multiplicity .initial:n = 1 ,
@@ -11378,7 +11402,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\group_begin:
\int_set_eq:NN \l_@@_end_int \c@iRow
- \keys_set_known:nnN { NiceMatrix / Rules } { #1 } \l_@@_other_keys_tl
+ \keys_set_known:nnN { nicematrix / Rules } { #1 } \l_@@_other_keys_tl
% \end{macrocode}
% The following test is for the case where the user does not use all the columns
% specified in the preamble of the environment (for instance, a preamble of
@@ -11477,7 +11501,7 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_vline_ii:
{
\tl_clear:N \l_@@_tikz_rule_tl
- \keys_set:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
+ \keys_set:nV { nicematrix / RulesBis } \l_@@_other_keys_tl
\bool_if:NTF \l_@@_dotted_bool
\@@_vline_iv:
{
@@ -11633,7 +11657,7 @@ version 2005/12/01 or later.
% \bigskip
% The following command will be executed in the internal |\CodeAfter|. The
% argument |#1| is a list of \textsl{key=value} pairs of the form
-% |{NiceMatrix/Rules}|.
+% |{nicematrix/Rules}|.
% \begin{macrocode}
\cs_new_protected:Npn \@@_hline:n #1
{
@@ -11643,7 +11667,7 @@ version 2005/12/01 or later.
\group_begin:
\int_zero_new:N \l_@@_end_int
\int_set_eq:NN \l_@@_end_int \c@jCol
- \keys_set_known:nnN { NiceMatrix / Rules } { #1 } \l_@@_other_keys_tl
+ \keys_set_known:nnN { nicematrix / Rules } { #1 } \l_@@_other_keys_tl
\@@_hline_i:
\group_end:
}
@@ -11738,7 +11762,7 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_hline_ii:
{
\tl_clear:N \l_@@_tikz_rule_tl
- \keys_set:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
+ \keys_set:nV { nicematrix / RulesBis } \l_@@_other_keys_tl
\bool_if:NTF \l_@@_dotted_bool
\@@_hline_iv:
{
@@ -12018,7 +12042,7 @@ version 2005/12/01 or later.
\str_clear_new:N \l_@@_ccommand_str
\str_clear_new:N \l_@@_letter_str
\tl_clear_new:N \l_@@_other_keys_tl
- \keys_set_known:nnN { NiceMatrix / custom-line } { #1 } \l_@@_other_keys_tl
+ \keys_set_known:nnN { nicematrix / custom-line } { #1 } \l_@@_other_keys_tl
% \end{macrocode}
% If the final user only wants to draw horizontal rules, he does not need to
% specify a letter (for the vertical rules in the preamble of the array). On the
@@ -12040,7 +12064,7 @@ version 2005/12/01 or later.
%
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / custom-line }
+\keys_define:nn { nicematrix / custom-line }
{
letter .str_set:N = \l_@@_letter_str ,
letter .value_required:n = true ,
@@ -12064,7 +12088,7 @@ version 2005/12/01 or later.
\bool_set_false:N \l_@@_color_bool
% \end{macrocode}
% \begin{macrocode}
- \keys_set:nn { NiceMatrix / custom-line-bis } { #1 }
+ \keys_set:nn { nicematrix / custom-line-bis } { #1 }
\bool_if:NT \l_@@_tikz_rule_bool
{
\IfPackageLoadedTF { tikz }
@@ -12112,10 +12136,10 @@ version 2005/12/01 or later.
% The previous command |\@@_custom_line_i:n| uses the following set of keys.
% However, the whole definition of the customized lines (as provided by the
% final user as argument of |custom-line|) will also be used further with
-% other sets of keys (for instance |{NiceMatrix/Rules}|). That's why the
+% other sets of keys (for instance |{nicematrix/Rules}|). That's why the
% following set of keys has some keys which are no-op.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / custom-line-bis }
+\keys_define:nn { nicematrix / custom-line-bis }
{
multiplicity .int_set:N = \l_@@_multiplicity_int ,
multiplicity .initial:n = 1 ,
@@ -12150,7 +12174,7 @@ version 2005/12/01 or later.
% deprecated and has been replaced by the key |total-width|.
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / custom-line-width }
+\keys_define:nn { nicematrix / custom-line-width }
{
multiplicity .int_set:N = \l_@@_multiplicity_int ,
multiplicity .initial:n = 1 ,
@@ -12240,7 +12264,7 @@ version 2005/12/01 or later.
\bool_set_false:N \l_@@_tikz_rule_bool
\bool_set_false:N \l_@@_total_width_bool
\bool_set_false:N \l_@@_dotted_rule_bool
- \keys_set_known:nn { NiceMatrix / custom-line-width } { #1 }
+ \keys_set_known:nn { nicematrix / custom-line-width } { #1 }
\bool_if:NF \l_@@_total_width_bool
{
\bool_if:NTF \l_@@_dotted_rule_bool
@@ -12566,7 +12590,7 @@ version 2005/12/01 or later.
% Up to now, there is only one option available for the environment
% |{NiceMatrixBlock}|.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / NiceMatrixBlock }
+\keys_define:nn { nicematrix / NiceMatrixBlock }
{
auto-columns-width .code:n =
{
@@ -12583,7 +12607,7 @@ version 2005/12/01 or later.
{
\int_gincr:N \g_@@_NiceMatrixBlock_int
\dim_zero:N \l_@@_columns_width_dim
- \keys_set:nn { NiceMatrix / NiceMatrixBlock } { #1 }
+ \keys_set:nn { nicematrix / NiceMatrixBlock } { #1 }
\bool_if:NT \l_@@_block_auto_columns_width_bool
{
\cs_if_exist:cT
@@ -12998,7 +13022,7 @@ version 2005/12/01 or later.
% array (and once again when the block will be put in the array).
% Here is the set of keys for the first pass (in the cell of the array).
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Block / FirstPass }
+\keys_define:nn { nicematrix / Block / FirstPass }
{
j .code:n = \str_set:Nn \l_@@_hpos_block_str j
\bool_set_true:N \l_@@_p_block_bool ,
@@ -13042,6 +13066,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
%
+%
% The following command |\@@_Block:| will be linked to |\Block| in the
% environments of \pkg{nicematrix}. We define it with
% |\NewExpandableDocumentCommand| because it has an optional argument between~
@@ -13139,7 +13164,7 @@ version 2005/12/01 or later.
%
% \medskip
% \begin{macrocode}
- \keys_set_known:nn { NiceMatrix / Block / FirstPass } { #3 }
+ \keys_set_known:nn { nicematrix / Block / FirstPass } { #3 }
% \end{macrocode}
%
% \begin{macrocode}
@@ -13182,11 +13207,11 @@ version 2005/12/01 or later.
\l_@@_X_bool { \exp_args:Nee \@@_Block_v:nnnnn }
{ \tl_if_empty_p:n { #5 } } { \exp_args:Nee \@@_Block_v:nnnnn }
{ \int_compare_p:nNn \l_tmpa_int = \c_one_int }
- { \exp_args:Nee \@@_Block_iv:nnnnn }
+ { \exp_args:Nee \@@_Block_iv:nnnnn }
{ \int_compare_p:nNn \l_tmpb_int = \c_one_int }
- { \exp_args:Nee \@@_Block_iv:nnnnn }
- }
- { \exp_args:Nee \@@_Block_v:nnnnn }
+ { \exp_args:Nee \@@_Block_iv:nnnnn }
+ }
+ { \exp_args:Nee \@@_Block_v:nnnnn }
{ \l_tmpa_int } { \l_tmpb_int } { #3 } { #4 } { #5 }
}
% \end{macrocode}
@@ -13254,10 +13279,42 @@ version 2005/12/01 or later.
\int_compare:nNnT { #1 } = \c_one_int
{
\int_if_zero:nTF \c@iRow
- \l_@@_code_for_first_row_tl
+ {
+% \end{macrocode}
+%
+% \bigskip
+% In the following code, the value of |code-for-first-row| contains a |\Block|
+% (in order to have the ``first row'' centered). But, that block will be
+% executed, since it is entirely contained in the first row, the value of
+% |code-for-first-row| will be inserted once again... with the same command
+% |\Block|. That's why we have to nullify the command |\Block.|
+% \begin{Verbatim}
+% $\begin{bNiceMatrix}%
+% [
+% r,
+% first-row,
+% last-col,
+% code-for-first-row = \Block{}{\scriptstyle\color{blue} \arabic{jCol}},
+% code-for-last-col = \scriptstyle \color{blue} \arabic{iRow}
+% ]
+% & & & & \\
+% -2 & 3 & -4 & 5 & \\
+% 3 & -4 & 5 & -6 & \\
+% -4 & 5 & -6 & 7 & \\
+% 5 & -6 & 7 & -8 & \\
+% \end{bNiceMatrix}$
+% \end{Verbatim}
+%
+% \begin{macrocode}
+ \cs_set_eq:NN \Block \@@_NullBlock:
+ \l_@@_code_for_first_row_tl
+ }
{
\int_compare:nNnT \c@iRow = \l_@@_last_row_int
- \l_@@_code_for_last_row_tl
+ {
+ \cs_set_eq:NN \Block \@@_NullBlock:
+ \l_@@_code_for_last_row_tl
+ }
}
\g_@@_row_style_tl
}
@@ -13614,7 +13671,7 @@ version 2005/12/01 or later.
%
% \medskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Block / SecondPass }
+\keys_define:nn { nicematrix / Block / SecondPass }
{
ampersand-in-blocks .bool_set:N = \l_@@_amp_in_blocks_bool ,
ampersand-in-blocks .default:n = true ,
@@ -13785,7 +13842,7 @@ version 2005/12/01 or later.
\group_begin:
\int_compare:nNnT { #1 } = { #3 }
{ \str_set:Nn \l_@@_vpos_block_str { t } }
- \keys_set:nn { NiceMatrix / Block / SecondPass } { #5 }
+ \keys_set:nn { nicematrix / Block / SecondPass } { #5 }
% \end{macrocode}
%
%
@@ -14190,6 +14247,9 @@ version 2005/12/01 or later.
}
\endpgfpicture
}
+% \end{macrocode}
+% Now the case where there is no ampersand |&| in the content of the block.
+% \begin{macrocode}
{
\bool_if:NTF \l_@@_p_block_bool
{
@@ -14391,6 +14451,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
%
+%
% \bigskip
% The first argument of |\@@_stroke_block:nnn| is a list of options for the
% rectangle that you will stroke. The second argument is the upper-left cell of
@@ -14402,7 +14463,7 @@ version 2005/12/01 or later.
\group_begin:
\tl_clear:N \l_@@_draw_tl
\dim_set_eq:NN \l_@@_line_width_dim \arrayrulewidth
- \keys_set_known:nn { NiceMatrix / BlockStroke } { #1 }
+ \keys_set_known:nn { nicematrix / BlockStroke } { #1 }
\pgfpicture
\pgfrememberpicturepositiononpagetrue
\pgf@relevantforpicturesizefalse
@@ -14456,7 +14517,7 @@ version 2005/12/01 or later.
%
% Here is the set of keys for the command |\@@_stroke_block:nnn|.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / BlockStroke }
+\keys_define:nn { nicematrix / BlockStroke }
{
color .tl_set:N = \l_@@_draw_tl ,
draw .code:n =
@@ -14478,7 +14539,7 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_vlines_block:nnn #1 #2 #3
{
\dim_set_eq:NN \l_@@_line_width_dim \arrayrulewidth
- \keys_set_known:nn { NiceMatrix / BlockBorders } { #1 }
+ \keys_set_known:nn { nicematrix / BlockBorders } { #1 }
\@@_cut_on_hyphen:w #2 \q_stop
\tl_set_eq:NN \l_@@_tmpc_tl \l_tmpa_tl
\tl_set_eq:NN \l_@@_tmpd_tl \l_tmpb_tl
@@ -14502,7 +14563,7 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_hlines_block:nnn #1 #2 #3
{
\dim_set_eq:NN \l_@@_line_width_dim \arrayrulewidth
- \keys_set_known:nn { NiceMatrix / BlockBorders } { #1 }
+ \keys_set_known:nn { nicematrix / BlockBorders } { #1 }
\@@_cut_on_hyphen:w #2 \q_stop
\tl_set_eq:NN \l_@@_tmpc_tl \l_tmpa_tl
\tl_set_eq:NN \l_@@_tmpd_tl \l_tmpb_tl
@@ -14534,13 +14595,13 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_stroke_borders_block:nnn #1 #2 #3
{
\dim_set_eq:NN \l_@@_line_width_dim \arrayrulewidth
- \keys_set_known:nn { NiceMatrix / BlockBorders } { #1 }
+ \keys_set_known:nn { nicematrix / BlockBorders } { #1 }
\dim_compare:nNnTF \l_@@_rounded_corners_dim > \c_zero_dim
{ \@@_error:n { borders~forbidden } }
{
\tl_clear_new:N \l_@@_borders_tikz_tl
\keys_set:nV
- { NiceMatrix / OnlyForTikzInBorders }
+ { nicematrix / OnlyForTikzInBorders }
\l_@@_borders_clist
\@@_cut_on_hyphen:w #2 \q_stop
\tl_set_eq:NN \l_@@_tmpc_tl \l_tmpa_tl
@@ -14584,7 +14645,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / OnlyForTikzInBorders }
+\keys_define:nn { nicematrix / OnlyForTikzInBorders }
{
tikz .code:n =
\cs_if_exist:NTF \tikzpicture
@@ -14653,7 +14714,7 @@ version 2005/12/01 or later.
% \bigskip
% Here is the set of keys for the command |\@@_stroke_borders_block:nnn|.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / BlockBorders }
+\keys_define:nn { nicematrix / BlockBorders }
{
borders .clist_set:N = \l_@@_borders_clist ,
rounded-corners .dim_set:N = \l_@@_rounded_corners_dim ,
@@ -14677,7 +14738,7 @@ version 2005/12/01 or later.
\@@_clip_with_rounded_corners:
\clist_map_inline:nn { #5 }
{
- \keys_set_known:nnN { NiceMatrix / SpecialOffset } { ##1 } \l_tmpa_tl
+ \keys_set_known:nnN { nicematrix / SpecialOffset } { ##1 } \l_tmpa_tl
\use:e { \exp_not:N \path [ \l_tmpa_tl ] }
(
[
@@ -14702,9 +14763,21 @@ version 2005/12/01 or later.
%
% \medskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / SpecialOffset }
+\keys_define:nn { nicematrix / SpecialOffset }
{ offset .dim_set:N = \l_@@_offset_dim }
% \end{macrocode}
+%
+% \bigskip
+% In some circonstancies, we want to nullify the command |\Block|. In order to
+% reach that goal, we will link the command |\Block| to the following command
+% |\@@_NullBlock:| which has the same syntax as the standard command |\Block|
+% but which is no-op.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_NullBlock:
+ { \@@_collect_options:n { \@@_NullBlock_i: } }
+\NewExpandableDocumentCommand \@@_NullBlock_i: { m m D < > { } +m }
+ { }
+% \end{macrocode}
%
%
% \section{How to draw the dotted lines transparently}
@@ -14738,7 +14811,7 @@ version 2005/12/01 or later.
% We will extract some keys and pass the other keys to the environment
% |{NiceArrayWithDelims}|.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Auto }
+\keys_define:nn { nicematrix / Auto }
{
columns-type .tl_set:N = \l_@@_columns_type_tl ,
columns-type .value_required:n = true ,
@@ -14749,7 +14822,7 @@ version 2005/12/01 or later.
delimiters / color .value_required:n = true ,
delimiters / max-width .bool_set:N = \l_@@_delimiters_max_width_bool ,
delimiters / max-width .default:n = true ,
- delimiters .code:n = \keys_set:nn { NiceMatrix / delimiters } { #1 } ,
+ delimiters .code:n = \keys_set:nn { nicematrix / delimiters } { #1 } ,
delimiters .value_required:n = true ,
rounded-corners .dim_set:N = \l_@@_tab_rounded_corners_dim ,
rounded-corners .default:n = 4 pt
@@ -14770,7 +14843,7 @@ version 2005/12/01 or later.
% The group is for the protection of the keys.
% \begin{macrocode}
\group_begin:
- \keys_set_known:nnN { NiceMatrix / Auto } { #6 } \l_tmpa_tl
+ \keys_set_known:nnN { nicematrix / Auto } { #6 } \l_tmpa_tl
\use:e
{
\exp_not:N \begin { NiceArrayWithDelims } { #1 } { #2 }
@@ -15139,7 +15212,7 @@ version 2005/12/01 or later.
%
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / sub-matrix }
+\keys_define:nn { nicematrix / sub-matrix }
{
extra-height .dim_set:N = \l_@@_submatrix_extra_height_dim ,
extra-height .value_required:n = true ,
@@ -15160,12 +15233,12 @@ version 2005/12/01 or later.
hvlines .meta:n = { hlines, vlines } ,
hvlines .value_forbidden:n = true
}
-\keys_define:nn { NiceMatrix }
+\keys_define:nn { nicematrix }
{
- SubMatrix .inherit:n = NiceMatrix / sub-matrix ,
- NiceArray / sub-matrix .inherit:n = NiceMatrix / sub-matrix ,
- pNiceArray / sub-matrix .inherit:n = NiceMatrix / sub-matrix ,
- NiceMatrixOptions / sub-matrix .inherit:n = NiceMatrix / sub-matrix ,
+ SubMatrix .inherit:n = nicematrix / sub-matrix ,
+ NiceArray / sub-matrix .inherit:n = nicematrix / sub-matrix ,
+ pNiceArray / sub-matrix .inherit:n = nicematrix / sub-matrix ,
+ NiceMatrixOptions / sub-matrix .inherit:n = nicematrix / sub-matrix ,
}
% \end{macrocode}
%
@@ -15173,7 +15246,7 @@ version 2005/12/01 or later.
% The following keys set is for the command |\SubMatrix| itself (not the tuning
% of |\SubMatrix| that can be done elsewhere).
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / SubMatrix }
+\keys_define:nn { nicematrix / SubMatrix }
{
delimiters / color .tl_set:N = \l_@@_delimiters_color_tl ,
delimiters / color .value_required:n = true ,
@@ -15199,7 +15272,7 @@ version 2005/12/01 or later.
{ \@@_error:n { Invalid~name } }
} ,
name .value_required:n = true ,
- rules .code:n = \keys_set:nn { NiceMatrix / rules } { #1 } ,
+ rules .code:n = \keys_set:nn { nicematrix / rules } { #1 } ,
rules .value_required:n = true ,
code .tl_set:N = \l_@@_code_tl ,
code .value_required:n = true ,
@@ -15331,7 +15404,7 @@ version 2005/12/01 or later.
{ \@@_error:nn { Construct~too~large } { \SubMatrix } }
{
\str_clear_new:N \l_@@_submatrix_name_str
- \keys_set:nn { NiceMatrix / SubMatrix } { #5 }
+ \keys_set:nn { nicematrix / SubMatrix } { #5 }
\pgfpicture
\pgfrememberpicturepositiononpagetrue
\pgf@relevantforpicturesizefalse
@@ -15772,7 +15845,7 @@ version 2005/12/01 or later.
%
% \medskip
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Brace }
+\keys_define:nn { nicematrix / Brace }
{
left-shorten .bool_set:N = \l_@@_brace_left_shorten_bool ,
left-shorten .default:n = true ,
@@ -15816,7 +15889,7 @@ version 2005/12/01 or later.
}
{
\tl_clear:N \l_tmpa_tl
- \keys_set:nn { NiceMatrix / Brace } { #4 }
+ \keys_set:nn { nicematrix / Brace } { #4 }
\tl_if_empty:NF \l_tmpa_tl { \color { \l_tmpa_tl } }
\pgfpicture
\pgfrememberpicturepositiononpagetrue
@@ -15967,7 +16040,7 @@ version 2005/12/01 or later.
\bool_new:N \l_@@_not_empty_bool
\bool_new:N \l_@@_empty_bool
-\keys_define:nn { NiceMatrix / TikzEveryCell }
+\keys_define:nn { nicematrix / TikzEveryCell }
{
not-empty .code:n =
\bool_lazy_or:nnTF
@@ -15992,7 +16065,7 @@ version 2005/12/01 or later.
\IfPackageLoadedTF { tikz }
{
\group_begin:
- \keys_set:nn { NiceMatrix / TikzEveryCell } { #1 }
+ \keys_set:nn { nicematrix / TikzEveryCell } { #1 }
% \end{macrocode}
% The inner pair of braces in the following line is mandatory because, the last
% argument of |\@@_tikz:nnnnn| is \emph{a list of lists} of TikZ keys.
@@ -16282,7 +16355,7 @@ version 2005/12/01 or later.
%
%
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Package }
+\keys_define:nn { nicematrix / Package }
{
renew-dots .bool_set:N = \l_@@_renew_dots_bool ,
renew-dots .value_forbidden:n = true ,
@@ -16295,7 +16368,7 @@ version 2005/12/01 or later.
no-test-for-array .default:n = true ,
unknown .code:n = \@@_error:n { Unknown~key~for~package }
}
-\ProcessKeysOptions { NiceMatrix / Package }
+\ProcessKeysOptions { nicematrix / Package }
% \end{macrocode}
%
% \bigskip
@@ -17534,8 +17607,8 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \medskip
-% This error message is used for the set of keys |NiceMatrix/NiceMatrix| and
-% |NiceMatrix/pNiceArray| (but not by |NiceMatrix/NiceArray| because, for this
+% This error message is used for the set of keys |nicematrix/NiceMatrix| and
+% |nicematrix/pNiceArray| (but not by |nicematrix/NiceArray| because, for this
% set of keys, there is no |l| and |r|).
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~NiceMatrix }
diff --git a/macros/latex/contrib/nicematrix/nicematrix-code.pdf b/macros/latex/contrib/nicematrix/nicematrix-code.pdf
index fb046dc4c9..8d79c6ecdf 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-code.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-code.pdf
@@ -291,17 +291,18 @@ endobj
<< /S /GoTo /D [ 169 0 R /FitBH 771.02165 ] >>
endobj
171 0 obj
-<< /Filter /FlateDecode /Length 2073 >>
+<< /Filter /FlateDecode /Length 2080 >>
stream
-xڝY[ۺ~_j,;-ͦ 6m kӶ[`EkFyH%97ofd-3?ï<2=\"#
-Q"8Ϧ338#0&&*SIM7ٯte/&>2?i^/³[ŁS3K{#cLʙݘ){a
-!
-lD7Sw9$FL'*Pn\bl73^I 4D$C p ϝ;|psanl;;w<? ?OXKKci~]愂G#~q}tT;}
-6vYB~_
-ɦliѬ3dcfMN֦Y]75fʮnrQv'xy}bCQ6miB:1,ɐ& w.3s=mIHT{&C2ob:ޭiz <ݭ]P{^K>XXH@n30.;H~%W)m˛u\Ey'vʡ8W $0p͛zp+A
-#2f:y&ERwCՙT* ?i # d2+ KTCL*Qc×S)$teߕlf.6hDW %ԶČ~Ⱥ6-ct\ R`ցIrlkʮ4=I~zگlb0[qь7>HјبJ1#؇_wGAJ:HET5 HXC"}g7B y$%9
-C"d(vp<ֱ͑Vp E8nmP.+.^2}|WL5su"7McZcQee=?LoRc$!:zEh79+rڴ&̄n F2]<9ʹ~Mu\?' $zK0f,=$ 32+\F :aW7>/ #):eVOl)?G{}q_aD9x>i!+ptvLmc0&at~?Dxړ(&1?TMjȐ>
- W\
+xڝYmo_ox W4Ns\#E/cMQԑ_` -La>$wwvٙyf*3o%d<#0ciE2|$ *Ӆ?uؙYc8=q؞̋ !(
+ĥ_0fALQ1*bY #g;+AOΩNrO>$ߎID
+9
+~4s~s2=t2@3E*愂_Ƣ)<釃~a=H*~tzݝ>Vb 7oO'`̉Р+W^`/ՊAJۡ}Wnte] k2;ѭJglhڀ>p<sp[,Oj4vߕ2չiSTY*$ʧ+S:;Fy_K1Cx
+OZ;HXFJ"2UJclr*ĒeS|2 GMm2"
+I{NZ߾nj~6-cl Rڼ`6Qrl跺kʮ=Q~zگWnC0gL7>HѐؤJCKJ %-OM} ok#*Kq(EvQ><!}w}Xbp:͑֡Vp E8nƖӡ@]e(Z*u"5McZCQe]lv͆}~z5_=B!HBuo.s+iB]eysSzg ,O&
+#X,zH@f#dEspF,hm
+'xdK1->(l
+Dcm q\ico1} !ӞLD4 :jR}tq() rHl{8]e\'P6N_M"+6K~Qwüoww0YB)"'"T'p-:8TE nzs MP۽g-nvpmWN
+{j%t-Gda>Bw+Oc;tit h+5+8\M;#7dR1jvЈ`0ht~P!{Z 53GaNؘ'Xg#z2dEgѢƈj۳_ L'wnMP DRB4 T+9!Y6FMBYˣ|. 3(@hwamÀeszQTTCh񣒌$D3MwЖOpSQ^ㅏP4 m
endstream
endobj
169 0 obj
@@ -3354,7 +3355,7 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1105 0 obj
-<< /Filter /FlateDecode /Length 2701 >>
+<< /Filter /FlateDecode /Length 2705 >>
stream
xZ[۸~ϯ0Їzbf76/) -ՑYI$h~{oh{ls6XsG\I~zWo32H*z@2aIF׫ѿj¸ϫUf}_81{<>?LrOWE{[/p:JN͚- Uf=o#?)
\Să; S)1pMʃX4]^q[rn@
@@ -3363,9 +3364,11 @@ K>T2Hl|%^mKoz7.l2c3h⤎]PIf{4]c׬|,VuIgvnM \"
2L<yQ7|F59I:VmR >;0]Q,I{#+1/Xw;!΄
G}u~E]v\4?QAo;k:D&x EGKaOq|;kn08{N<wbf&>aB#iaY,e

--~+se8w
-ű6Ac5 1o7-Tm9i{|)ja2&yć0sHi!qMlJHcgC6[my9͎Ք(ȎI|aDh4C;(IXaH2g@@$k?!~%#JyDl;!Nm{"<^JE= 7rՅS:,ȗ/mE@Ql.BP@WBloH >巈cĴhV4H=)h„v[iB~ ; r כuj1-|_M[b.䅡x[W@r
-qi=/^^9#[EȋFCLAք΄pbgNE g05!`*Omk:ͬWuѴ_K'8,F W iӰeܿ)BxOS~~
+-~+se8w
+1ua @쉁T* 7C7-Pu*FgMB{ 
+H^J Dܧрp͊ q'% M<n+ۺ4mZB{G:Y.1!znZ-caWwYi˗:@ х0v}
+h^Z!.E;K3b$byhH;sW>ȚԙR̩h2LɢmZU1ϔ.WxG(A
+!mV w#ERi*oׯX
endstream
endobj
1104 0 obj
@@ -3486,20 +3489,20 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1145 0 obj
-<< /Filter /FlateDecode /Length 2293 >>
-stream
-xZ]o}ϯ0Pu1ߤ,XΠ:O)
-Bd+Mo(*Ȧ/Gts//﹗2vG$|O84atv}sA!<#3!*LI$_sM_mxO2iIK(FE>lѴEvTbu.}CX,0")<{m7Y{c0^??Uq[KEp戓0cjD4wli1N|tWU= DT8N4N \̮.ؒ*{ZaeZvl K8Jg?ъ i\ ];1<eO3"#V"+؋
-m9b<rte18/۬~Ȗ!60RA=?ZJ8sZBuP\{㺛w kAW҄>??~",a 0*BL$H>]ɔW6ʦS|O@R/HrrP"$H(>dF)&)"Hl
-(howeY$.TϻUsIռRu/\/dn;Ь/d^敆ޤSDG&y
-u߲g|^I#i#v۟Bi=Y4]
- .b|GR~ˋ'd֝5묜$ !؁@GDPi`'HyXaŁ93œ꼼׶Ƅ*Lo$u8͑.-ieI{f%{.{{5 2%sUEX<m6FU!5dַ%1c :7F=ʻ@B꺪.{ ɏ.˞ v~ĽI*16x`.#m SO|qxJjoKu`?C+s}ƅFЀ:*i[:(
-n{[ϼlrpFІo;<c`>e"}MR`},()x'TL2h@{|2,imNشИݧ0ǾnWg{yOD"x!~.eRLW
+<< /Filter /FlateDecode /Length 2292 >>
+stream
+xZMo8WX`l~
+0`ۍÜ [J,DISEEttK=UX2vG$|닏qiCxFf:BTaIfכٯsM߮='4dz%#"\eh"\*I:.}CX,0")<{m7Y{ a9~H88'a1ws3Ոh0cp鮪4{"ʉ(DpiL]W]|ݵ%U2˴Z6Y[߼jp
+~/)L|c<vbx;߈gط3cEF1E"(V<+Rsx0cp^Y-Cl`{+ZJ8sZBuP\{㺛w kAW҄>??~",a 0*BL$H>]ɔW6ʦS|O@R/HrrP"$H(>dF)&)"Hl
+(howeY$.TϻUsIռRu/\/dn;Ь/d^敆ޤSDG&y
+H"\q-ˡbiP%tH[&+)ai{ۧ #rclо$+ !"@T]B:$CZ'ni!/qd2>_+3P!󼱔6Yүv[}.Y,QAg &ŸA
+ .b|GR~ˋ'd֝5묜$ !؁@GDPi`'HyXaŁ93œ꼼׶Ƅ*Lo$u8͑.-ieI{f%{.{{5 2%sUEX<m6FU!5dַ%1c :7F=ʻ@B꺪?.{ .˞ v~ĽI*16x`.#m SO|qxJjoW&i^zWd uU<ࡹ{uP
+n{[ϼlrpFІo;<c`>e"}MR`},()xo'TL2h@{|2,imNشИݧ0Ǿng{yOD"x!~.eRLW
( bjlc-9&Oe/pWHwW]McN6}KRf0xmɠƶry{udtAv _!{֕xs\dn),!
-aS~\M#9H,K<p25H,^䁓6(yX}XVդ2bbya \3l DE+ڷ eaE3MhY8q T-eXeE(Ac:9NMl՗m驭Ɗ`P#Gu%}[o!Ӻںu7,8Cكx; "beY)
+aS~\M#9H,K<p25H,^䁓6(yX}XVդ2bbya \3l DE+ڷ eaEM&{L_,WVxZXgo1Ba'O}s&HWx[WmNm驭Ɗ`P#Gu%}[o!Ӻںu7,8Cكx; "beY)
֍{ڕi.VU]š:Zvoec VKoLX_0`me %NtDo*<j״fafٸDM) ?a"G5Kt 3Z4D Z{gs֎c߫#":"Lc=pӂt&5Q+p(@p"A44͋"1bi [@4d-j +~eN:d ȸC"ZEL8ٓa[x¤w[L#Z4ȏ#˪I)
U3'2L=a61D"$0!#ý@(=,AP#^ʠx}iq7wNgN3$kߤ
-"8NI*$w'u؏GXX^F"mp"{4⿽?
+"8NI*$w'u؏GXX^F"mp"{4=
endstream
endobj
1144 0 obj
@@ -3662,16 +3665,16 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1199 0 obj
-<< /Filter /FlateDecode /Length 1958 >>
+<< /Filter /FlateDecode /Length 1957 >>
stream
-xڽZn8}Wh/(̒3`az (6%KiYNR]*ؾv\/-.
-O Hߟ.z{Z GFF'  h% ’LnN4OL42R2b H1g(c6I/fu*)+6o뼶󫲿ci?\`D0+ c_vV_ _UU93﬩<h_Htn43p&0Cp?4kd/oeF5"{f0f̹Al] WGi=P0Y“e0!8"Ȋ1+vvAJϞ }..mq*@ +ZXGu#bXj7E1,Cl`\,GqEGiX(]pHq5*L3#-IHytnqnxZ-R7<mcs7x0ٌ[ϥ$ U̪benj+:|r5D#ah
-&ּqִt5X!ɼi&YdLzG*O.DRyA0vf 9Hy„3l:G(.fK}הs!!kV0!xޅ ]A^4L~#{ Wd<sF9T7R$%n3f5S1g10SG lƾ"GL9s_&K;jnܱԵBX{I30O O@]ID L#poذR 2LgCYI
-(Bd`{I^&] NN;!* #7Ԍ"jFy8PvO WOE¦Mo}lʔP >Pȸ8`HhČW7c5K!-lz5JΩnjA*T=/{ܞuUoX_{3#`!uoЧkb&p"ʸ50MKͦN:os'~SӬ9ˬw;Z7aC>jm6_>v]1ީOyw2޹kw4gOWx#+[#/d0_CjD762bnYܒ
-ZrU¼y>5w 7M̒h].:q.HJΕ#H6Psmtaaj~ H)IOC0Xq,!3; iI=Oq͞m=mPCKtؗqBaCm lFcK 5vxľcU>"y)s-$*`xRHXhĵؗa`CwO
-f 0!H,J:S;ŠVWi
-;Y"6ٽ/2~;O
-piߊ{svMswHlf܇ɫrxo=`j[']$Жb敃vʵv/7ۏMfsTۓ'3k1۳=MiD5ͦ]z{ٸKefUA]5wF2X2q}.>]R͌NKRw|1rV(x_]_bb#ߘ_g ͥSmҢ-qOfoL҂:vD#|BaT"pP+ m[b
+xڽZ[o6~ϯ0/Pqx(0b} BPl:FRYN2} Nl;Ȗ|<T~'?_`E|ŧk&M..'d O$K2]N7\vQhdd:b&lQ$lf"_2TLSVmZymWek9 `:0W<̫ ƿدter[)]fM?FFpA3o4IV_&{yv(331c bܮ]Uzm\ݼ:H?N;i=m(, EV/Y9ȏ,Uz! uQw|nˏWibXy:Rsĸ%(,"wab#W`T?"3/:JB!
+E Qy`m9OERWspjiSKa+f". !hEE^dV>/[W[SOݐc! GS5!u
+IH35!"cZ;R}"ua$ hޠ>l]4Hȱ<@h& d3v .?Bqp0[컦 ɐ^1#.lN"44a3lN"Ô7oϡ
+
+')p1CGw9qԼ"G8nex/`08gʹF{20E^W;v㎥KIo~Q
+wK9 [ q=lplT9}f8w7k75jyϭqyèuSl??KfU?n
+.̛ASsp!,?/'nճ?RecI1V)عr>I3FJ{.#О<_v)e<)i5C5vxbG#-I`<C Cٳ篲j(s2N(yÙB؛|l\|&.ؗ}l}G$/e [ O^* ݓ2LyI9"լ!<`i:eRRǑu[~|uCJCAT*Ma1]d"&<E/{I.p[qop._a ݌P=6yUA,~TmKtDRlڼr.TA]palj{bd X{&s6f{)&ٴ+6To6;wV7}iL8Ӭ6kw.P_]&q%ӧKii[^6Fjw\ZKKL ݽq{lR""ap{{PZ%ڬPqPZ9Y.tuhĕO(Ja-`C ʥ(m7+xˀSHQ a["_|,
+{bK C:{vD)tvN#j?o/~l
endstream
endobj
1198 0 obj
@@ -3858,19 +3861,23 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1261 0 obj
-<< /Filter /FlateDecode /Length 2114 >>
+<< /Filter /FlateDecode /Length 2118 >>
stream
-xڽZoH~_a^iCK+͝nI{h0n;h18g&iLYϾ WU_ E*GoWn%]0
+xڽZoH~_ai_iCK'͝vJ{h0n;h18w&iLYϽ W]U_ E*GWn%]0
à`a` )0
-^YFD^>܊hHHJu5UrSU_p—hdU?(ŏ ǏφAGs6q?s?OnG@#D~<jWM&dVNn{)c s !! C69;zJ2a.o,!~*=|š@Lϙ^D@Zԋv(=tkurFr2DYd f~IhϘ1`MN-B!JI
-?[`c7\h 6Q쀍9{ȗa&3ꗍpo_qqF{D>ej|fڿ$Qŕz<fڌ6tS\8D<Yeg\榍,uS&}ȧ L 613CmiaWww=SׇWjoʸ(حx5f5旎\Gٖ:lTq9O!G_NvݶU7/:M>kDq5A2${OKC9ޠdEa`{gQН{ pEDFEuH` ]n瀲%9Rrk_ṮVs}?CU_,<\6u8CUR$%[d'M}4FHrOMLL%Ees 2סʢ$Aq<~L
-ҤFajcFq.8"
-8NQAAm-p<[gOؗ!e6w
-C'@I<4tǦ-:Wwi ZRuĸUR_0ATXŹ C.ViZ^=қ+$f'~+=zOxfD!F_:UM< l]b,]r^܀ ʈtZ0#G iABޒjX܅hg1SIΉI"D0xg-i 6sI@Z9NͽJ
-(e͏a;ߚP`wA2͓"{*ۋ|Nޞc-)
-۪e'tQ]'A]#0}7S$\ȒPsL /dz%$7>_[J꛼O<$(웚¯GTCH¾)<8-㾨of"L";{<P߾"5WcSΔABxJT0t^ BKmlπ!x`@Ix8ՙ7 QbyۛJ~)yeKN+`Pt2~n@Ŵ@Tk"̐`TʌeX'Sj ڙ;Z?cAΩV3bPP ۔ٌ
-;Iݺ$2fAH)P@2bB@1i#$Z_Q_iĬIb'O_ѱR<i2ۘ[M<IXU]'ȅA!t3z@uV[cb)ө Rn%qƏ3#>>J0w,Eϒx5L6 p2(_գNY&ɤR|<k/oJI~v>*G۝S>%[`6KFWck=fځ
-
+^^FD^QnEQ$ XL$iJ%Q_*)ʍo8KWM*̏(ŏ ǏφAGs6q?s?OfG@#D~<jWM&dVNn{)c s !! C69iw$U<e^\X"BxU{q503;ν8ĩqPv#I{n~9 qs\ QYCo$Eg&{v%A$F-C15r{1b<ꗓ1g‡|1m2~w~9ッ-3a!D痩i3ɏ*1fMuTsIf9旝pJ6M# gIa=3koKk톱z\ݝ|P\ɯN.ޔqQ6Y[}=<HH՘_:vsm6ʶfr$qhd|m[e|EGɧ# b5"n&Hd{΀ԗ( lRbL#
+knq
+}Ϭ*>M?P9a$ sYISe_'ͤF$.s{tZIA$ls-,IwPY)k"bƠ'By
+?t鶰K5AQs A;_*pZVl/#ͳt831 E3 ?_MtwGkyɽ鯕KLHՑO8`o
+򥺄Xa~r?,0; ތmiU:+}ɾ )C$SA0R?9
+Nbg!T &gw86m+N.kJz<nڀ
+0l5uY+du" \!0>[{h 7K/tsc"}_p/cW8-('PuQ^ty{QF'ӚF98H, ]H3PfÒHF.h=.D+a=JrNN!B>kw]MxO ~HZ!uhUR@Mk~$9ꛚh?
+'7s&6_uE+d^qiL%ݖ'G TL/
+Ne.& Iu==UVQi>&*j1ouA#U
+u'zMͨ@_.p=\M"/j]CtR 0,&F;B5Mzk{N̚$v(e˓-;$ϓ4+y^uފ\9rMwl3}\h
+{kL,"}:W
+pmQ$}40̈GϢ{LݳK$^Mn*t?$1ܺL3
+^`ӣkp9zԉ=+Vw7ԟ2Z˛O{ү;怟oj'Y=oS
endstream
endobj
1260 0 obj
@@ -4042,18 +4049,17 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F70 185 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1319 0 obj
-<< /Filter /FlateDecode /Length 1657 >>
+<< /Filter /FlateDecode /Length 1661 >>
stream
-xZ]o6}ϯ0~,Pvl1Yd>%I:]9^"1Ͻ$%gW3<{}}}yfiE]\҈J>$AXzn>pKSgRR2c (b:,T A}L+6Lh~^jkڻm,0":FʼYҎ jB1gnjYFb0,<ޘ:nrM˩yǯ^;q=n^
-Y#ǐmH˲Ny!Ja=vZ,MMK{;2_ٍ6u5HVjY9,!#웎5 $6|ĩ
-;ܵ7U|^6N]*ır,k>ܴ5A+
-#FQCG0>xSi6mo%Oud*}"΁>o!o]<Y.uI5>;]V㢙`iY!f3:T jfggzBg4{4xgC0GؕF6j)6E
-GuUnR&2Ijҋ AnM1H# wXi&wTmŵ8CӟSa
-h0 GM@#u9 oHD„$G ;{E%0#)걌i8Ŗ @^~0zE&07`)cE2J`nO7` !zE&07
-{t'`$ @C1̀Qfz0hpV
-3
-ۘ ЏEDgInS\7E3dޫMUD7hvYVߦt1 0`M>2:lΚRg<&'
->8hSŧ,GJB |? l,@h+ лQG!^8(bއOXG"l޳M
+xZ]o6}ϯ0~,Pvl1Yd>%I:]9^bY1Ͻ$%gW3<{}'͕Nj8Ҋ0:<!%<#3|I$\+|Υ)dQt^Y$N9[WmVE~~ִW&=FY`D0u ^yY-bD1P2c3:=a|Yy1uśS _w{ܼ
+&K"; F!ې4eq$B
+Gz?pY +S:X|g7 8 Yb8rd8 fS4bo:4&H e2+ts~ʬ>Ϻem6%Tc+X|i!εkZFW
+ ˍ
+GuUnR&2Ijҋ AnM1H# wXi&λnW|!ש0h4ERb:
+ƜM$bWaB`᣿NTTXF4GbK`F @? bG"h"Az%070I"hx
+Fy=0iJ`V!^fBR J 3
+N4) K{
+C S#`[lz`fe sCyO4EDU /?SSMq fڧ,#Epٌ&Xn'93m!&imsUߟ-q|yjw=M{*oUge{em4$nyzsjʦ
endstream
endobj
1318 0 obj
@@ -4243,16 +4249,19 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1382 0 obj
-<< /Filter /FlateDecode /Length 1715 >>
+<< /Filter /FlateDecode /Length 1721 >>
stream
-xZMoFWE~(h{B-&B.E9Iw\٢5bJr̛t͑( ?z{~trfHg舍&ьPFџcFusXL%Nka`)1_Ͽ]YY,'NJI{Vy>C*h:.ָ)Jv슲>]g'aRv Ǯf\]/z(n<%xѿ.C&3sX >riyV&\JXўt^V)" `~m/J" 4_m}&Xی 3g
-~;>//8M1"MWμ>zyCJe,T)Eq^룿j*+qvZ%ʅ
-pu1B?^߾]a-B Qu*O' h+!e1̆{+TG!e$14κx@&iA, p#B=JqbefeQEKX:npлx(pVhwzaQ1fbq50B{TU4:BiPqYG5U:K (ՊϡBm|-qOI 
-}J뜇U୐~IaJBG~ՋȪpʅƕ}#'upG3"DeCq G?0JD3~re}kTA nTߑ ctA !^4HhM
-I`k-W[\ު[akX^O=%` Mơp*^ljCP -CБF{6*bg=HOuf̓w:1<('t`p)G+%w020\gi-:\e^nHׯ45[̆n{IU:VYζV,4 ݝ zES6
-0(}=izС xXd $Amh5-qqަ@.YeiP*dj{ٯ0 Z\Ă*#`׉E(Pj5ɚrgqH#tgd* ^yZc'r2[i49L
-~zͧrZ+&_jŽз]BUUVdlv(ݼvv6R2p2܋dE=7M l|0+͙Δp57B/IYXkO%\!B2p4BnB"u݀+l35c [P?TKUi~{$Q[v{i羛*l` mhDEH>[yn\H/[9
-L'U4{Оpb5PY:=0Z2ΉTJS$Lb|*i6Qz\7>Ex|N=
+xZnF}W_ HR4
+$}>4@[EK;$%W kWyn<9;3gf&tn_'//N^1Y&Et&VhFf)%uJ%Nka`)1Te*-Tq5=k_u7ߐ4eZۗ5G[%-;IqavyQc Gñ룇٭֗}qwxfeq<֗oCMf*8V}O¿|iQTXxVTu`%qK]{
+F
+E0B?c?Gw 6#L3&@ŕw;kNeRo툂"ǽΊ$NSH93c?e/}J#%\BR>XJp3B1EW3K D
+dC(RSCD*di]$,)IWꀒhh5RVlB{~
+5RFӹM"mZK+\ cEH)N b,*#Wa}LRk;}ǍzȐ; z90;T +,Ϗ%Jh>-Ye@W~
+qjk3~VOMV(E*+""nwb
++$ʡ T0諔p}B$'upGㅈ3"DgCqG?1JD3~:!ɀ=VD 7DH1D wo#1ZXWK<{ܤn}qɠf}fNUwT<UYO 4;eӴ>o-t3nj<8}<q By2Z>qFCVӚUZ`V Mơp*^ljCP -CБFv,bp=8{iM f̓&1<('t`p)GK&w0D0\+>KiQU#*C4l[`ހU6RMlY}
+w~z^|ړWX-".{peYdlw>/uQlFR2p2]sIj/m ԭ92 ) jn^-,;6J
+B
+e*i݊eX0<W"vvkne;zjBmxPoR/U $Q;v<{>)ʌi5<"EZcZ!,pc.F$KVP
endstream
endobj
1381 0 obj
@@ -4430,18 +4439,14 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1441 0 obj
-<< /Filter /FlateDecode /Length 2285 >>
+<< /Filter /FlateDecode /Length 2283 >>
stream
-xZmo@8w ׽@_rJ",$yA_$ޤɔpfZOﰿ݇OD/4ҒJ8|G^EK$K8-<V euUy
-tB}t[KtQUźڏ??gxu]kr⦅TX!*KL\5A\p"ߕ6߶
-vsDzXn A qEfG:\g,OҽC0jMcK8;d&s<
-hcbM]WuPGCΒ'v`r@xPqr 9rI=eVz^% 4{bwgY
-
-"qTkv+K[S(.z4 V쮱RЙacTKR;+{ؔW4BUO7 bh,5Ex?.m O3AqIOYQwO|ݍɢK `'ueJd
-z+pbM{AT C&i*f3['9;q~>&6LEz?, ;D/eu[<T35/APOP\0DI
-[+:zf|Z؛tc/镥"0u3?\A20ۊc)N8ba/t7z#9G̼7AFMuC]u?j]p'}` 3:L&!n*K:{uNt$4(X#r\NlTHmf'$Bx?Ֆ`k%^."H%~6r[甩fMASpnz[ d\Cy+ #9#L-Xg, |#>F>h]7~i{DWA:^ *nUŨ05#
-)jsWcjVYK[4 )J^f3p|X %4DGM(Jx"@iӮ6]\軛-X):LJJ4h R e;=*~
-3_ F?]6 q9ѱ)ַy{]۵elR l{F`թ֦)v_[$HgBICONSwqg} {@ͽӸ?lP*NOoMGkwnb{/D\,@ק Q!"' ۬wy͸Tճ0ڂN qHq
+xZ[o~_a/0.rv;%]S$RV'oE8IڗH/~z>|"zT;,XH$AXnuvbX.6ʳ: fu^իӻMU4ٍ%H rC,VddeFϘlzY3#7ٟ2PF^V[o:[(̢#p%IB\',v0lҝ8[{j_
+ ˖,IEB 'iE•
+q%‰@lVv&!<o&۾F-jx~F46  %b{sLk R L:/kf:N@z$<-3&l:HdM*# 9ҫHYB,ӼH/,: ه
+
+8'#8g]sm^C6rTcţ _Veph$\j8Sj5Ef T!d4N!쮱S?tg|:)Z8Ku6DXō|tX -JO"F='Ϡ¤YƉ<
+S3Qv1w5, W6M4/!)14 )J^f3=(C!'" E sVWP"mզ:
endstream
endobj
1440 0 obj
@@ -4580,17 +4585,15 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1487 0 obj
-<< /Filter /FlateDecode /Length 1967 >>
+<< /Filter /FlateDecode /Length 1968 >>
stream
-xZ[o6~ϯ0hXI XX2l:J4Be)Y2E:c:NȒQ;<<?7H6P&/T)Idt<=sٸ2Nǟ0u^;?xVWeW6{՜7~Ȣ7_&T#05œ(O48jMi{޵ɡb]6g,"\3yYv\.&Tp?5l$Çtl02c0YZ84a4k$O3`~ &0F>-> HD7ge]յ
-9m۴G_ѼuwE=%bPmV ݰ)pMr$4 fy`%[{ukuHOD{J<R^
-%L"SiBR7Np[H.DFӒIQNHFR[ZydINS]N`({K l7z@]Kp
-z(Ңg~B|EmQa1#􏎘BA˽i3B?wQi3B;o'Y?`<\WE=+r^vE|Y}`jAn kxfނKe\)D2D
-#w=">T˱l齤iR[rL Ԗ O
-iGSAA2.1<AO5eR*ޡZݎ;j̇p֢
-th&<xV΋zXptpuWL
-aFvzz3>h{Zn>DWRS%Fr͑$F;Lژ~KLNirLn*CG谒x !^\-` dhQ-Lujҽ; Nvca>};tTZÅx*2|Ғ\7]ߒ.q/UZ;ˣ>@q|9}YO}
-KŊ"!}i2B"5tuZ /dN Ts7(LGYC>oR([cb
+xZ[o6~ϯ0hXI XX2l:J4Be)Y2E:c:NȒQ;<<?7H6P&/T)Idt<=sٸ2Nǟ0u^;?xVWeW6{՜7~Ȣ7_&T#05œ(O48jM<-yז&wn~Lgpr'eٝG@ CpR=.NKHD_} {QZ$0B0fi{+6(ӄ%>-ƛw2id:4&(#a ,tVuqTNۛd)E/N|B"F_oTvNX F|0MV@-ۦz-6.>4v)Èjz*Dqޖy/kXfo (?T6L"E%-f:>q[ɺ\f5.P- xEdMm&r/?b.rntЏj|`
+K)RDxJ"R^_މ{ i%RBzZ2)9VHTJZbwK+/:ɑփi  etpoi1B6Ah as NAZEZOH 006,"fSP(hwp"-bF玘>wZ"-bFhgms$gPS늴hgEUˮhu7ܠۘL-hsUZ[r}[,b+Bp/˙94ڪ
+S }J%C/T%CDB :"čr60]>ڎ9GlDZ.mbC ~Rć*@4Cw9m!4MRjK1?ђi?B LK
+~WUk?F';'\H8Fq,HS'o?YCЂ.sҸS42_\dO ]Ncx!7CkjʤU޽CZw
+$2EPь#Lzxlm>Aһ Z
+* g#tV*#jP>ƪl*fpO}X
+$9:t E0Ce~)gsEj(_ɜ&HN !xrO;nPiN||Pai#Qr,x
endstream
endobj
1486 0 obj
@@ -4756,22 +4759,22 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1542 0 obj
-<< /Filter /FlateDecode /Length 2483 >>
-stream
-xڵZ[o~ϯЇx2
-X 鶻ݢ[)Zm鐔H~{\Hq(C,r3^?_y3$|qu !J%Y\m^^e\H(>FB0F>M՞DH c6KWLS޹؋lEϓ( 
- 0#61FDˤRciG`6^].ndl`iݣƭ<$yxJճ$<ɋǕ
-s}h /z&2vȅb4mgw.v]eٿƏP[d] *(҄!B-(;hg-4p'(A !`Sqe.=c{G2rD9>>!QR>[*iΦ)iVTE%"?^_Va^ bK{l pDq5>GA:,<8z\px{.<.<v3_D\3=tC!(CB.wH9﫤YIPI(:<>;C_H}e"{r/rZYͳuWכfN}ԬP* 1.aE$DW_0(x-T@&
-.LL*inwzŰ$_3P׉!|:|,\hd;8\@c^W\e;zk<ث}E|mӉ"#>S1TGOt=Z
-"<)/
-'kx ܩтW]A ]D-
-G(Ӷ//_jZ(5Y
-2CD/(Ix{#
- ,m
-ͼ#`:pqc ̖v=nd4qT?<ueO Yl^WWXhL$7s?ncC v8= #@v#K頙)Unih~f?LrT&},2wM.36:vSdIjNgLJ>H8AH 捥5]flv,:3uc>0X0Ο҈"*EHnjOZto ;dZy~jhLuŸ
-#:mM{ *tY{`Lr94PI:c}RAEISJD !xJ$$~X[V7-S{)!{7}g֗>q>y@l3:H?Lٿڹz)T#'#Su"GqTo+GF{`A56xmfx佂njl[#aDܼ?)C ̥us.q-
-5KV \+/(eA|׈07BӪuoqdF*85qY̡0yКy4yS!eӻ&eSmCb>c`Bw_ܬ1GÃlS?]Q$Gx]v8|ۆ^%
-x3 U'i&iC&7I2 ,Sz`]Qu|@L}i:(rzW%׻"XDkĺ,r7۝bcO{fCSz}AR\ȵs.$Iln y!"VDzD
+<< /Filter /FlateDecode /Length 2482 >>
+stream
+xڵZ[o~ϯЇJ@< ,t@SH۬)!);P2%هXg;  z'-"I* xA*BL-$K.VH(>FB0F>M՞DH c6KWLS޹؋lEϓ( 
+ 0#61FDˤRciG`6^].ndl`iݣƭ<$yxJճ$<ɋǕ
+s}h ϯz&2vȅb4mgw.v]OokEօ
+rADxWC3z44Oґ̓gGbH]3Lh<%x/$X5H0sMq=r)2$ypԟӪJzH};m3;z<Y*"8G,g!z*<^~]~oP(gHʜ VDHy s_[7BU'mRTʤfv W NB%N $d!r Gˇ&A*wO*Z/X^훬(kĬN8┼~rVR`OyQ8\ÈHNpV|ս
+jX476'5m WPG>'FU| }ByIp#f,۴k"ܚm`ۢN
+$Ly 8KP?(kvond|
+P
+_d!F Fj0o,5cK4f֙E^OI:qFQ)BrPsx~r Χ|c9&jϣ3UCcg.T!noڳ hV!%Βf/Cc#ȡ0M룕z*LR""d S&!&ڲj)oK ;̼F@8x̨9_9`}٠Dbt\dpj^%PՉ NRu8`pb-
+ђ
+7 oćqp1^^2n͝@Ƶ+,Y1pybeon_]#X
+6N{˸#30Wb(tȣNϛ (Ü5 ,jkLmef9d;9m7'9ǃ蒶6<*1wؕzJL'yg,1V_cѝ8(wW d ޑ4C];멜'ޭg-m0mM躼,|w<-U@68htI
+9dP]
+RἎߖ7yݘ
+u^lvOquz8:ᤜh0Dg;1pS>SmLб+p"1seGiW-
endstream
endobj
1541 0 obj
@@ -6963,24 +6966,18 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2214 0 obj
-<< /Filter /FlateDecode /Length 2840 >>
+<< /Filter /FlateDecode /Length 2837 >>
stream
xڵZ[oܸ~ϯ0Ї5#$]l[`R}h
-A#!i"ixp<36šx?]_D'87 $UۻWEB$ESv{MRvۿO^ E8jILYDo)Ez뛛+ɤڇۮ~!g͖ a00K곘^ SB0K >b:5S*1aԧQy
-{9&19p/_yWQ'/COńt$K'~[>tG4U \Bk;z8Gtt6Ooo] E:aOð/Oc="L&{ (ztJ _Y2ʧ˶(IOl׵.]^OJ.
-zDJ1eaZR
-ޛ*"S9<jGgEvвRpB6",KIJ8@ Sۍbqڽn
-
-JqEX qCL* 籷sE!ȼP~[mډN<JU^ۙ9:)a6
-q (r XNIWƀ[C+I|+](F|YFJɪmJ|OWvT?rdNO- 6o؁$BwNыH)Q4U6
-L"H-˘v-%we6 n=Fu3?>{OHF`ar>n:w׽~:]t:tZ5 ia JcOXQl]A\L .+/7V%Qhz3CYuD,O Ls<zc
-
-}W2,LNGa􌎢,|2$H3 8f&.?:lߠCĦ@:+]XpKӇEiP6QI"'OQ=i `#-2'Vl3 X-qz49
-dBR|.!
-vWL D2? 2z$;մ` Qj< ВT%L1ea7|Ma=%7Dt`AÚ,M^p-YOI~e`4%Q:}eazQuY7B5e9^Y »
-,RNJ>{{S(lQ,
-%-JSw?T^kXk8&,L yC@$|y\] /,# 5 ԑ@?}=];w H,b:p_߯ -%BFV^lOl!)r¢G
-oxg`b,,zԥme,e0O7!g6Iګ᧊`5N=u7*%rn賰\wMМ7%GطZ/`i_ <|Á"Q$]uX]~> <<IDQ釦o_
+A#!i"ixp<36ˈx?Ή./_^EHl/~}M/IAP1irĔD1^gE]oB4ZS>[Eg2J2izh~^3seDh&< ,_BP'" 4GEJLe%iԀlm^ aLN0K37mޕGD1aq< [
+_]у>fUPlN.!N%Q2-A->M|bWpN0KowAw ŞpG*^RAğg0ij#JRMkCA.ovK.zDJ1ea[<7UDr;̙yԸ~;ܴ녔g֖!|oy)gXORH,nuShǀEPpTsE(
+bgP ~dmC^5nVo#p`;u]Z;x.=9V!R8 l% .Ox}y%(]=l
+QdLGBuYƜt9,ǐ,](ul'1y=>o(ń|5.fݶuv.{2ut> (k(5ϣ6غvr_5/0LV:_*nJo8kB%Y"`o~#֓J" >PkFKjvUhd 澮;Plkb×~u~,FNV3 c<n(Wݾ9ƌHN}v!
+2ҧ`#O{ԓZUw7>ըOCs OL}my '@huukr*ĩEН^28adZ(Ȍv6c8: HzڨϮHOPьݡ !?`T|x(bbx FlTc:U~cCW&r]RzZm$dTӷQ`xgEQSH xr@G0?AMR]5K&=?℥
+b"wuv!<E
+J<j\},t;c%iOҠhƣ1Dnol5EBnL'!+BT6Wn+X5")er! KZr>Z-)U N`z+T
+}JUWkdfpå1j^C~obpmP/1=mېnr͛=U,yO|):tvXf TIRq`Y=
+6WL D2? Rz$;Ѵ`{ Qj< ВT&T1ea7|La5%7Dtarz. /8HN, zԧv20(nhX^$CCVƿF&-Gާ]>#DxUE
endstream
endobj
2213 0 obj
@@ -7107,16 +7104,16 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F78 556 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2257 0 obj
-<< /Filter /FlateDecode /Length 2075 >>
+<< /Filter /FlateDecode /Length 2074 >>
stream
-xZ[o~'
-MQ672F3eT[Ѧy~<s.׳t8go>||!5C."V.nLn:geXiJ1+xKT?<dB2ٯ]]-?իcbxn/wJ$?̤))C)Lh*('19̹heUE.oYהO?L\7:B8ʂG6T>S
->
-Hť6B{.]o| .. >vt&<&'}!mjeN~8$E}a_5iy;a2jI?˯.Hð88/{:٦ír\7Ϡ;})ӫǷ9p=nMb`0 0<Я㪮=gMr]o6՝oh^)Sۻ5+#Qrpҥ/4/F3nC,IMR3fy:vYV*.j殍#KHG6ݮM65"8E% Qnvޭu[ZrþGWToga?3lhm_rx3>W {apּUYe]}3S f9qX'L{*q85<Fό
-p) MnM3\/.2G#@}yI
- OOt]Y͇}xvw\91ѹ1DqIN5v<w=+Rd",XD82Dq4Hb9Qj
-9hQ/F6n;P)Έ9(/K|Tk1zEqq)vWXRfl4Githİ!+:B/8"mQcWg-ry~M0
-MV"H)WDc3s>~SI"ܵ)=GEυd DeEN9l&U\?ǜ12s?%Bѳꗛ
+xZKoHWȅ퓑d=x]9lMQ6'2% }GklY`/U_SNwtY:tg׳7g>kf}FtAFEB+JRE7'?7ᳲ CR4rq]<wE}ju~!׮UXMV<~?cv%Wgf[ȔД졔p&cwln |͎R\l"GUe^<d]S>09wpPf5b4㌚hm& 5h#pᝣ'>|va”C%ĥ)azsp.Oer3;SdyWܥJŸۮ6\Vox~tYXJPH)Y%F_VAfU4A"(x_˪TY7E=0v2p%/6
+LkZE$)`"}ur{~LRܵŊ_-]$*x*]Wx7NYNx-rWbL?[Ⱥp5I^x Ȝ%Yӟ Wsm a[n2[J1"4t$fD`ļ]Vr]
+z[2vD=e[ 9P(BFp[כereU{%Dip0H; {l K:8Ky(DA Dh~G¥֣p
+EFi$ԌP"1[JC 3z*Uvz蚞5A
+xN1cЌx,ҙI{
+,6^7 +C IA }0mn6.)~<,ZzMmr P[{jԜheJ
+-(= Lۍ"30)T.R/ 1ܱ/ew4aZJ3梙iّ+K+lЅ\kջ<]d]e,}My4y1LOBd p8Hžk*78d2:ow_]aqpN/_t M[[/"<nAw RWosz0s~kaax_ U]y{Δ(Xl</;+мRw0k8WFxKe_*h^ ,4c1f܆6BY0f##HYu@6eU\V]G(%l0-nl]e~ k lj(%
+Ep"4ދJ:P\[]m>}~.~fЄ۬f|JA<Ly]7ʺ"Xgr<X NTpkx&nkU^Gm˼5XӉqlaI܎#Bn_yyӫAnNR\lh|uF8R`ܚfJ^Oe]7XeSG7ԟ\4z@P߹rbsc9\k"8x#T{W?V!E9XO)4Aq6?eq!bh9'Řsds_N2l.v>RsKQ^8bl<GSn6 ]Z?1*9i>=2cacCVu+8"mQcWg-ry~M0
endstream
endobj
2256 0 obj
@@ -7603,18 +7600,22 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F22 473 0 R /F70 185 0 R /F76 318 0 R /F78 556 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
2410 0 obj
-<< /Filter /FlateDecode /Length 2481 >>
-stream
-xڵZ[o~ϯ0(
-_zpgۃ0P+bf(RɇALͤ!ܯsOLI`,LS끞WC='w3nt_͌uI-J|>CB4hS9vN{&C˴jyO K[rTK_\٤b ~Ìg u'@O}Z{26/iq=[ZƎa9jsRjılu2KM3=>(=;yq}5pY%m)gHC롃cd>v(=t1
-XMI }P"!]j]-1 m8HB% :8RcD
-t,<cZ#UǭҔǵ&AJ5NZAف=Nk^4ӒxYeOխowƹC@F̼\Dz`\#am<vH)<.ŐFt:.j9F MZ;O Q.| c?M#/G
-2&x'B12=2ܶ
-[LL D'*sDˮq;6QT#DY^ۜ)Dhz S7U}]_szEXMlUz# Q!v\Wr&7t(c
-D0 :$gyܽzRQ=UYsjaf7BC&Z[
-x϶$i٧E0Y]n_6=U%TOlS*74Ab?S,h '`_*`)1_W0y}jR7S+Nk EGϿVF-o"bYl6eu%^$YIib-d"+m|;c͗wy<[R6r*նauoa-Zoز ؆A+NmhhOxaށA&dnH!BI%aנGmn }L`0|{s}Ǹ-pO{OpJbm˄x`
-@}n3#3~ܫS6fs^O'}' zAc.//j/TVG+}>(7q]اF!eC|/M\X.Mr\5rC[c.#R.ҽ
-!f,KxFNKBc` Kמ1aCI\!.`8Cwք}ۯ u~eb ~2*~*‘wnۄt!R(tM*
+<< /Filter /FlateDecode /Length 2480 >>
+stream
+xڵZ[o~ϯ0X&/ZdgY>)h(Y
+dylCQ7*l:\xxnfxnHzb3&nL32IfJ%lf#o~|%L##%C0)f|*(yJbysu~!2t], ͫhM̋[ϼUu<<$` )JpLD8h#i$ʹ-,Zm*kŻw+Ոhx-Gv_&_&@Tt0ic-mh/zKAS13C fhc9U &|o$0jX&q@ϫ⡞7/fƺLxYEm!}enϩ;=@!eZ5Ӌㄥ-ap/.lRC\1ĄA`Ƴ>RH`I~s4ø--|cǰ
+9)5Xw6Gnj%qUFyv cocq,6 LN3$ءXC2D;olS>x(l㮊t`6`$H’)1H"
+:
+:5haia&b' j(>HKџ&˗# RΓj@\r~ߞ_DeCnL
+buy&a ѧ d>ain834"K5 C[ڔ˸\^.QQd GVm497A9Pm\qWM(jp䴯q!lb:<m5q%Ce
+B~V@+NUDKEv]% wlfG6.9S*f!@j ngH;Y.|M
+$c}_ϫF :أ?Bn
+7Mn\QNF5"#Da t޵75I*4_{u?{~k4k[;nȅLk77;
+mcI6-ҲO`&5m9zJܟv<#[-`EUn9;oh0dkXNTSL!c>2,'nSa`դtYo( (0W~)3y8AV!$bύ=)n[[b5E#IJl8KH+:,>[:E?W-pv6#ƚ/vyPωm6ʍӤnUmZކ e />W@I-&My<(49(>L݀ӑB
+J®Al>;^9`m6x܏qY [༟?p%g4 % S2fPGHgaDnWęmF缊N*N=Ѓ:;=\^^L_8?V1 VD}4yQn컰OBt 2m^FPX.Mr\5rC[c.#R.ҽ
+!f,KxFNKBc` Kמ1aC$u/ʇ暑 aܹY銇n?CDʾ^ͫ6NM_)˨ȓI *FkC
+JRН6axh0wؼv|;p~oC%IM@Xf>:X@ٻ##}.CO e[k(;I1alӉB<)G J< o< Ǝ<Vϴ".QC:Yh,C"h' :q:6Pn6:6ќ&t<ݏmTw![QbfVw 
+ZBAumhN۸iO嗡9{X7,齃!:XFpCnW_ltY];Z?MjZ<N 6+cukJ8oM֛2$pߧUI]}
endstream
endobj
2409 0 obj
@@ -7934,12 +7935,12 @@ stream
xڽZKo8Wxo6Qaг9ؙ
T./֮mIkתWfml emnG/ q26)Iig!o m<VIQ\;<
>+g'Y TP85,Q m|wVS0QoٵbzZ[a
-?zCϬ {160}[ m@nVa7T:Pҝ=dU9aE; ԘD5N=w(:VUUipz4OfnлMlq8h "ds̾}p4Ϫz:\稯Yg|Y2
+?zCϬ {$0}[ m@nVa7T:Pҝ=dU9aE; ԘD5N=w(:VUUipz4OfnлMlq8h "ds̾}p4Ϫz:\稯Yg|Y2
E{@:/i9|{ *>0>>뙗)wAצIm @:Z8DC@_XâNx x6уz^*
ഏ'ʶ. :st"MVxoZ]ㆲ9ʡ@EȋIxuϣ;Wc^g5B
WbsO
hj: 4
-622Gf3D0.K bD0=ůQpRON*^Fpzki1\C6-n O|1J *h8.΃Bo>;"AGnvp=FGFh܇<6JiZrAQb|"xB>4D~ [;3\N
+622Gf3D0.K bD0=ůQpRON*^Fpzki1\C6-n O|1J *h8.΃Bo>;"AGnvp=FGFh܇<6JiZrAQb|"xB>4D~ [;3\N
endstream
endobj
2513 0 obj
@@ -8106,14 +8107,13 @@ HSX!ah]=qt1u\q~K̝zƒppt-ŔKv}>֧"QLyEkX6y+
˒d0d$B*' s)up*AYРį;"X#1q\'`}kҠ)l@.{rahO`KlvN(M͗]n犬2k;jY]cr{w[)KkYk'ljm'j4yRDz%
])G2jca@08ppVbG;pyTt퐻WC..#FcgfVR
IWH)3[z8ڼ?~
-̾<KQsQ~pk
+̾<KQsQMuk
}=< )PpR BdS) L;eW}eP\#"Nҙi[7k|,rIdoi`=# 1H xJ/1S$Aḥ(*m1(|QU5-?Oϣߟ2K뵱8 = Wa1
giU둴+8*6UuŃ~oyV;Pu1jJGkД,+QWݛU(A@k솙u]YbE t4(6M}_fbzNk|/)W۽-*uN @ .@ +>-Z]Kis3;S]86EUYpߗ(s`_ v
g-^U"7j;9`W]fs3Òԫ(ѳ]5ᏳmL[Nf%>YpL MiصR_q1re ju5tO( 84#z[}o~vaf;i=
_#"RaR@ ݊)*ܗIb W`?T6{L,z v_ A ŔP>ޡ><]ṅfi 0v PƐ]Y>3Lctpĸl-*U9ժ_m,* /03Y +ަKt]2g$~H,MiR
jJS|B#E`-Sp7Nf!@ɗJpI:yRJ%l6 =7EB<U& ){:@ْڂgՍ&c@'~ٌ˭QƔ x]mh2ϴF"q;g]@َA':@4xee[%@eHdW%: To*?1 }u&Z]!#*ǔ΃G1V"LhTFZ#QPRAdjq?(߸
-ฐ3{>
-)
+ฐ3{>r*
endstream
endobj
2565 0 obj
@@ -10875,12 +10875,19 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F73 189 0 R /F69 183 0 R /F72 187 0 R /F76 318 0 R /F20 186 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3428 0 obj
-<< /Filter /FlateDecode /Length 1767 >>
+<< /Filter /FlateDecode /Length 1905 >>
stream
-xڽZMo8WxزiEvM=R=l"+J"Z-I\"# y3d9'ۓ?'/#1&d~u%:af$ҌP&)7ƞ3\ۉ!Vka`&шolE qc @)۱_3;
-n=g<Dl'b0,
-',r'
-c9D}'riB\zr"=oς]u)9 `Gh" A5vDLI} sr`G`qOpb h`Zи/CpM >Sn?y_v4ԑ> ")qHJ
+xڽZ]o6}ϯCX~SÐ[!6}XAqG,\߾KKE'u}/чuK{%CzA+Qz+#؄ >_0 D330`25IbGO~ mx !VkLD V0ʻ-=o(%ctW,@}D@w\Lx=JЍ͈aVuϵ8% 9uE1jy3$,Fp`tx;]󐍸)="-ZyyWSnuQ@n=/D@KkW`B)qi$dt [yK9,{o*Cݛ|ooWDtc&9aB Oik*;Χ`aac'+j~YYy7R\cs=z\v<pTpTЏ_4oqdߖ()B{k]_[bi^;7FsҒ$ $S9E:[tRX:{[w_}]BPR
+_"4~nq]+}p;{K7rVޚ\^o4I5DZRяsiY2K9%!N l#u
+e|Ӌ,զy/yYZ 㱸'ǽˊyfO|,(_Cѡ#󒔄*Bo 7+!ԭT3
+.Dcdedys'^K1Flr_a !Eꖮtm݁+yӝ{C,:pV =f(h(IQh$#ֲ0%U"aVr|(wtzȖ8S}.<8}Z\u R# Goi@^by@dLǣ<uQR ajWU5o_m
+6d5ߔG8_5v"ZD }ݱVs+7.oCaO;BI
+- Btg>D㛛ldvQ4< AYvd(Y>&I*QcI΃WӦ
+EsxC]ͳ~C6m{ fc<(T]Jdc3Ͻᱡo8 UM [ޛb %q`~!x-&f
+@%EaVȇ;׉M^?_n_/* g1SL)FTYA,hvrTX nK6PcW5nO\_.7wE%CiL?Bp1hlȤ '"7 tAqUM(-HDHLrMGSL6sIf3l\.>FaC4>zCt-qQA*C)sqK9qg.
+8}q>=sPYL qzqw`t}fnRNCn=r](w[X2P>68.-F1ܷ[C`PCﶉ8.QF'rp42됞8.Fhmމ!RenA8CFG-6d`GԽWx:fm>\NMvzGIDh!ʄ$0BgtEZ?9}j`,}%
+#$nT=pwXd:]l"5:v\)
+ܡq[Ib|w_T#Cl7u}t C0Lrb}L}V?9]զ|?,ܧ?thHIw?#_ן$|~o 2.J$%&v_&(h
endstream
endobj
3427 0 obj
@@ -10896,52 +10903,52 @@ endobj
<< /D [ 3427 0 R /XYZ 81.077 757.873 null ] >>
endobj
3432 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 723.047 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 705.136 null ] >>
endobj
3433 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 712.088 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 694.177 null ] >>
endobj
3434 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 701.129 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 683.218 null ] >>
endobj
3435 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 690.17 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 672.259 null ] >>
endobj
3436 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 655.344 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 661.3 null ] >>
endobj
3437 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 644.385 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 650.341 null ] >>
endobj
3438 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 633.426 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 639.382 null ] >>
endobj
3439 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 622.467 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 628.423 null ] >>
endobj
3440 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 611.508 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 617.464 null ] >>
endobj
3441 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 558.771 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 606.506 null ] >>
endobj
3442 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 547.812 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 595.547 null ] >>
endobj
3443 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 536.854 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 584.588 null ] >>
endobj
3444 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 525.895 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 549.762 null ] >>
endobj
3445 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 514.936 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 538.803 null ] >>
endobj
3446 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 503.977 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 527.844 null ] >>
endobj
3447 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 493.018 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 516.885 null ] >>
endobj
3448 0 obj
<< /D [ 3427 0 R /XYZ 81.077 482.059 null ] >>
@@ -10959,85 +10966,85 @@ endobj
<< /D [ 3427 0 R /XYZ 81.077 438.223 null ] >>
endobj
3453 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 427.264 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 385.486 null ] >>
endobj
3454 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 416.306 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 374.527 null ] >>
endobj
3455 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 405.347 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 363.568 null ] >>
endobj
3456 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 394.388 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 352.61 null ] >>
endobj
3457 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 383.429 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 341.651 null ] >>
endobj
3458 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 372.47 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 330.692 null ] >>
endobj
3459 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 361.511 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 319.733 null ] >>
endobj
3460 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 350.552 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 308.774 null ] >>
endobj
3461 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 339.593 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 297.815 null ] >>
endobj
3462 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 328.634 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 286.856 null ] >>
endobj
3463 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 317.675 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 275.897 null ] >>
endobj
3464 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 306.717 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 264.938 null ] >>
endobj
3465 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 295.758 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 253.979 null ] >>
endobj
3466 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 284.799 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 243.021 null ] >>
endobj
3467 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 273.84 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 232.062 null ] >>
endobj
3468 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 262.881 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 221.103 null ] >>
endobj
3469 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 251.922 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 210.144 null ] >>
endobj
3470 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 240.963 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 199.185 null ] >>
endobj
3471 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 230.004 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 188.226 null ] >>
endobj
3472 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 195.178 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 177.267 null ] >>
endobj
3473 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 184.219 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 166.308 null ] >>
endobj
3474 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 173.26 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 155.349 null ] >>
endobj
3475 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 162.302 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 144.39 null ] >>
endobj
3476 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 151.343 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 133.431 null ] >>
endobj
3477 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 140.384 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 122.473 null ] >>
endobj
3478 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 129.425 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 111.514 null ] >>
endobj
3479 0 obj
-<< /D [ 3427 0 R /XYZ 81.077 118.466 null ] >>
+<< /D [ 3427 0 R /XYZ 81.077 100.555 null ] >>
endobj
3480 0 obj
<< /D [ 3427 0 R /XYZ 81.077 89.596 null ] >>
@@ -11046,18 +11053,20 @@ endobj
<< /D [ 3427 0 R /XYZ 81.077 78.637 null ] >>
endobj
3426 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3484 0 obj
-<< /Filter /FlateDecode /Length 1501 >>
+<< /Filter /FlateDecode /Length 1449 >>
stream
-xڽKoF,rvF:@95Z-5zA{-wT[(n/M򧝝ee<p»믗'o/D VZ]ޞx3˜[].Ӌ3NW9,8&x~ %n {fOG 7JGY}ypf;iP2ŽeV@u=jih?[6dƶ9
-J|כUUr2^bis/X|6-7ѾF
-c{~E+Bq0S?S˂LA Χ5JJa!A!C+9nKf|`sqHljTȓq9˪tDXǜJ:jB X楋,ӊ7I҆yKXU0~<☁xt|ߔwTu,M ,fٺ+Qcw 5"ϙyPG<Phd&uդeP妚!`rH O&BJ:b))Ɵb;} `6ne"߬䵪$\l澂'IxM':yB5{فUGM0MކP(V4cذX"D6vJ;R4o[Me)}`d7d}p.I(Цu%4dĕ^z,pZ FjpF]vSh^5I8n~R*U-xִyOږq궽s ZP
-ń3aԄ*&_K)L/tWb5v4WAk%l
-S;0"k@'r"g$y5Wk<)NƮ<ɵPq˜y6D ZSyYͳ!$5:,}gN1ch;-
-yx
->*/-{GsxÜ֭S~ yWfRܰaD^f)*_[zmJVpx_<'uR-!cd[#9휧Y*Dkk5.E:~ZUx<a!:= &*Y D rv;xW۠(2'zV3|z#)aKv5MSKF1~[qɀQ(Ոn@.+\]W޼ߖdB~e$+Pi٫i )cCmTI xR?_KBA0 iR/1xBX?c3͡e4u yo
+xڽZKoH WhN0"(COzh Aۨ$]dߗ0Gtҽt ˟!9GNóqƳOG|2|?}<:p*,xdvy}$G<
+9+"e_e]6dkOBq&_-41mo2ږl 4>!
+cp!i
+W|NB6!h1ZuEvK椎Z 4=HN0gMzp|Fo#rjiXVU~U][D\u>_,.dXHfR(kPwk9znS4,X.4)qh@Hy恝N+G
+Ԍ4RPSJn?]8_M61u9nnb/Jp 6xC)`#T@h|$j#hDLL&'Ɓ:#^ A%W蜜2ӻ:" >&+{0
++;#4YՌQ M(O} (
+ciJO
+(SطY$eJ-K:NTS+g*x~ 0ћ@&E7l@2Χb\+.EFY^
+caӊ~ pw/̅9yqbm@_ȡԎŒ4!Af`{~bkWM M n)MRl6!܄@]hBӃlTRO-t)x7KUi=r ~: x)qrҴNzC}"%h e)y8ՃXc3Y1Ӄ
endstream
endobj
3483 0 obj
@@ -11067,1152 +11076,1169 @@ endobj
<< /D [ 3483 0 R /XYZ 78.37 808.885 null ] >>
endobj
3486 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 768.832 null ] >>
endobj
3487 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 757.873 null ] >>
endobj
3488 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 723.372 null ] >>
endobj
3489 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 712.413 null ] >>
endobj
3490 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 701.454 null ] >>
endobj
3491 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 690.495 null ] >>
endobj
3492 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 679.536 null ] >>
endobj
3493 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 668.577 null ] >>
endobj
3494 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 657.618 null ] >>
endobj
3495 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 646.659 null ] >>
endobj
3496 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 597.474 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 617.952 null ] >>
endobj
3497 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 586.515 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 606.993 null ] >>
endobj
3498 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 575.556 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 572.492 null ] >>
endobj
3499 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 564.598 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 561.533 null ] >>
endobj
3500 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 553.639 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 550.574 null ] >>
endobj
3501 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 542.68 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 539.615 null ] >>
endobj
3502 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 531.721 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 528.656 null ] >>
endobj
3503 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 520.762 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 494.155 null ] >>
endobj
3504 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 509.803 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 483.196 null ] >>
endobj
3505 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 498.844 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 472.237 null ] >>
endobj
3506 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 487.885 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 461.278 null ] >>
endobj
3507 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 476.926 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 450.319 null ] >>
endobj
3508 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 465.967 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 415.818 null ] >>
endobj
3509 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 455.009 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 404.859 null ] >>
endobj
3510 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 444.05 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 393.9 null ] >>
endobj
3511 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 433.091 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 382.942 null ] >>
endobj
3512 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 422.132 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 371.983 null ] >>
endobj
3513 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 411.173 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 361.024 null ] >>
endobj
3514 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 382.281 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 350.065 null ] >>
endobj
3515 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 371.322 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 339.106 null ] >>
endobj
3516 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 328.147 null ] >>
endobj
3517 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 317.188 null ] >>
endobj
3518 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 306.229 null ] >>
endobj
3519 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 295.27 null ] >>
endobj
3520 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 284.311 null ] >>
endobj
3521 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 273.353 null ] >>
endobj
3522 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 262.394 null ] >>
endobj
3523 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 251.435 null ] >>
endobj
3524 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 240.476 null ] >>
endobj
3525 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 229.517 null ] >>
endobj
3526 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 226.864 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 200.809 null ] >>
endobj
3527 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 215.905 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 189.85 null ] >>
endobj
3528 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 204.946 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 155.349 null ] >>
endobj
3529 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 144.39 null ] >>
endobj
3530 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 183.028 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 133.431 null ] >>
endobj
3531 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 172.07 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 122.473 null ] >>
endobj
3532 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 161.111 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 111.514 null ] >>
endobj
3533 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 150.152 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 100.555 null ] >>
endobj
3534 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 139.193 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 89.596 null ] >>
endobj
3535 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 128.234 null ] >>
-endobj
-3536 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 99.342 null ] >>
-endobj
-3537 0 obj
-<< /D [ 3483 0 R /XYZ 81.077 88.383 null ] >>
+<< /D [ 3483 0 R /XYZ 81.077 78.637 null ] >>
endobj
3482 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-3540 0 obj
-<< /Filter /FlateDecode /Length 2167 >>
+3538 0 obj
+<< /Filter /FlateDecode /Length 2201 >>
stream
-xڭZ[o~_ah.1X-zp[%WVM3#ʴ8ǻ/L#B|CO'|=}MsVZ=]}'b8IbVLnߧ])sfW2ZSOa[f2.ٕ)qpTìf}rZȪn'ۥy_QS:j0-Xˏ/NF+6EpfвW@'jK}tj R{tN :ٺI
-K[ D C(geMٕ+#MSɳ- ۻM}n_,LX$I.S0mXۜ,Q.FaM,,o?{إ}~<4RIyr+΄1 QT\1A&U2ۮ1Ӓi)iFhډ!ڎrl#EǶskaHGϭ5iڂtn#4Zd&us}ӳ}V j6NچҀA'Iө TdP>z< z~`!$kLǐv;/WhpڻkVjS=]
-"bx4̰4^(7kJd5|-&k9J6*J$$g7sß_@ X_ͼ(뺥G
-0֗IgxA (y4
-޽ADᄒɿ QZSXD>Eq$kHI%Beֶ,h}d }p@ weH,*]P7G](սu"hҴ;V苹C1煄#p7C*=8س&9(Tڑ
-=0=lYW [Y)G-8M>tD
-rLI= A)5JgU-l<øޤV jIґ2^{'Bhz`BNnH ȯxs-<)oT^wzu҅wvp}bT88BҦ1bȱ죽<@%b怯h`HE^œt/IN0&hUd&'|)JrBF{Wb<9Y0kʐf׮*fpVWO?ąA^%%<TvQ\=R6/Xb3Y^qv)ű0*p}*w@0pH{FmYt3G̗r,=mA#6F=m_89tb#`ъ
-AzRI'=I
-Q.\q~8jC.`H8KmHZT/S?ߠ27W*ިi؉d~?
+xڭZo0Ћ6\-!
+xBrIT4 9 #>13h' *h@H$Rl.c6oZ롪C7yFVu(>&iC׳RIDA%IybvAf
+Y2ΛSA2Z%Tq:1k. RE>e(]0~9.Zxv/i__V4qB%)yeவlpm3PݹMѸUQ71VTYXp_7 g *DEHRX<1c4 k,m g#\|#'(\F`fLkIԑ 0M[3H&Ӥ3I`҂
+ -&B`MyU9gxcep kD1c[s5MhtNL>eǥ
+'cT/-U 7<Ơ5ۥ`N!PD/bmoB X4YQNuң/
+MRC4ӓi*py3IT%lLe)Q2n/J 4=S7Y$k_dQqm7澏u"wALǐrZ#*U2l{{=-k5'lO/#)gb)Idᤌ"ʇWCtO)AT UF%
+8'41@ǘ׌Qi&CXG|?ِg ǭsm6;o)Ppy>#6zDvsJ'Nܭ
+O9MBDl u6KޥN yP ^|g[L|9eܼ{pO8u 5޽3~ur W>n֬~5!0|flnFwQ绬-{7{~-ge\Bg\xPY%EϦXN>tt%A/Q/>N#@W@WrBS2\j 6"PNd% `
endstream
endobj
+3537 0 obj
+<< /Type /Page /Contents 3538 0 R /Resources 3536 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
+endobj
3539 0 obj
-<< /Type /Page /Contents 3540 0 R /Resources 3538 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
+<< /D [ 3537 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+3540 0 obj
+<< /D [ 3537 0 R /XYZ 81.077 768.832 null ] >>
endobj
3541 0 obj
-<< /D [ 3539 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 757.873 null ] >>
endobj
3542 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 754.895 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 746.914 null ] >>
endobj
3543 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 743.936 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 735.955 null ] >>
endobj
3544 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 732.977 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 724.996 null ] >>
endobj
3545 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 722.018 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 714.037 null ] >>
endobj
3546 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 711.059 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 703.078 null ] >>
endobj
3547 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 700.1 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 692.119 null ] >>
endobj
3548 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 684.182 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 681.16 null ] >>
endobj
3549 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 673.223 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 670.202 null ] >>
endobj
3550 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 662.264 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 659.243 null ] >>
endobj
3551 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 651.305 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 648.284 null ] >>
endobj
3552 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 640.346 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 619.411 null ] >>
endobj
3553 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 561.717 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 608.452 null ] >>
endobj
3554 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 550.758 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 579.579 null ] >>
endobj
3555 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 539.799 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 568.62 null ] >>
endobj
3556 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 528.84 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 557.661 null ] >>
endobj
3557 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 517.881 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 546.702 null ] >>
endobj
3558 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 506.922 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 535.744 null ] >>
endobj
3559 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 495.963 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 524.785 null ] >>
endobj
3560 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 485.005 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 508.863 null ] >>
endobj
3561 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 426.311 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 497.904 null ] >>
endobj
3562 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 415.353 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 486.945 null ] >>
endobj
3563 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 404.394 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 475.986 null ] >>
endobj
3564 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 393.435 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 465.028 null ] >>
endobj
3565 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 382.476 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 386.389 null ] >>
endobj
3566 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 371.517 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 375.43 null ] >>
endobj
3567 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 360.558 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 364.471 null ] >>
endobj
3568 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 349.599 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 353.512 null ] >>
endobj
3569 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 308.774 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 342.553 null ] >>
endobj
3570 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 297.815 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 331.594 null ] >>
endobj
3571 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 286.856 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 320.635 null ] >>
endobj
3572 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 275.897 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 309.676 null ] >>
endobj
3573 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 250.972 null ] >>
endobj
3574 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 240.013 null ] >>
endobj
3575 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 229.054 null ] >>
endobj
3576 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 218.095 null ] >>
endobj
3577 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 207.136 null ] >>
endobj
3578 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 196.177 null ] >>
endobj
3579 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 185.218 null ] >>
endobj
3580 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 174.259 null ] >>
endobj
3581 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 133.431 null ] >>
endobj
3582 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 122.473 null ] >>
endobj
3583 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 111.514 null ] >>
endobj
3584 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 100.555 null ] >>
endobj
3585 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 89.596 null ] >>
endobj
3586 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 122.473 null ] >>
-endobj
-3587 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 3537 0 R /XYZ 81.077 78.637 null ] >>
endobj
-3588 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 100.555 null ] >>
+3536 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3589 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 89.596 null ] >>
+<< /Filter /FlateDecode /Length 2237 >>
+stream
+xڵYmo6ߪ
+S2[aL $IQ*lДQd32!XJD Z8))ѯ7'LYWz_uVwwR,*wO4CQ`^&0Wf*DǯMŠMkfШh} PS1h=[3mw:kU)i;
+9tS4nm8fQc/ֹe~_->~އ#ȄblGY~ 5]3fVy 愤 $ǟ щeli!L#O^^4I
+["ec~Í )I?HRT]^JoqmueXR 1[ X EeGG[m>|Ap8C_p@k]W4ϝ WF\ɸEU!Y5[\q)TmKeR LK8)CpDsbP<įjgYtybٵ;g} xkb*Adc]ԣ!Z+tu1( :酹I 4L
+ޟ;`ħBo?U]fwv2Br9\uMv B9I.hG6Xdݙ9
+p"
+{{=o$ *OC֛cFAoCש-#xa6 C癝 >}>^q[/P38C՝?`FTB+r
+.$:V2ǫ qwzL kp8TIuO+YISn|2걙uJN} kR94!)O*c rs29'zUs^mbJ[e.X,]kQFEek{i8^]nmط۽mKԊ3"SW^c[|6D}E5Cqw2Q1Ծǫ}{rRDE
+@$f,Ex+a
+endstream
endobj
-3590 0 obj
-<< /D [ 3539 0 R /XYZ 81.077 78.637 null ] >>
+3588 0 obj
+<< /Type /Page /Contents 3589 0 R /Resources 3587 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
endobj
-3538 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+3590 0 obj
+<< /D [ 3588 0 R /XYZ 78.37 808.885 null ] >>
endobj
-3593 0 obj
-<< /Filter /FlateDecode /Length 2433 >>
-stream
-xڥZ[o~ϯ:#)-,h` . ١ul#qo9"u'C"GL֓dU=W?i>$5¤dB'FED+JE'/SvOZ?tbH7c0ԄWmeBhy{+M`+vnfdiSۯj cbG4<%TdG$E3m3_fww\̛.è#mW,jDO1:]Td:ooh_v%芫7ek?Eµ>~$ctJ8)a/?_>0|dvolҔn,[.˽qͣGoue]bZݜmM/=5 eJ :24r!~1+a, ZE`llsl|1g.e0sޙ@% "~̽lI'֫ۗ3$UIJD;|8 xcJed_Nӧk)h]{ю{*[00.4?D5UVԛ;>=1f
-=N2^&`;Ay#DmD`/}eia
-DWIhE<ߖOv͊
-[ϮoTn(9͛j  | >?t{hF?S+< -n\cj!nboTrp[$V'YKs 7@7n^ΌJR`0Uecfw9MAv
-o!~o ]eCN=MxGQ8}c*j3׉#
-L
-Bwm6 [E>!1Qk nԮ~ @ެc4}dyz0Eg ,\A XݤRq`6 56:E<y}zSM<[|2:C,5D8F
-Ye
-endstream
+3591 0 obj
+<< /D [ 3588 0 R /XYZ 81.077 768.832 null ] >>
endobj
3592 0 obj
-<< /Type /Page /Contents 3593 0 R /Resources 3591 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
+<< /D [ 3588 0 R /XYZ 81.077 757.873 null ] >>
+endobj
+3593 0 obj
+<< /D [ 3588 0 R /XYZ 81.077 746.914 null ] >>
endobj
3594 0 obj
-<< /D [ 3592 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 735.955 null ] >>
endobj
3595 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 724.996 null ] >>
endobj
3596 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 714.037 null ] >>
endobj
3597 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 703.078 null ] >>
endobj
3598 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 692.119 null ] >>
endobj
3599 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 681.16 null ] >>
endobj
3600 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 696.104 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 670.202 null ] >>
endobj
3601 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 685.146 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 659.243 null ] >>
endobj
3602 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 674.187 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 648.284 null ] >>
endobj
3603 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 637.325 null ] >>
endobj
3604 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 626.366 null ] >>
endobj
3605 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 615.407 null ] >>
endobj
3606 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 612.418 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 604.448 null ] >>
endobj
3607 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 547.661 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 593.489 null ] >>
endobj
3608 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 536.702 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 582.53 null ] >>
endobj
3609 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 571.571 null ] >>
endobj
3610 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 560.613 null ] >>
endobj
3611 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 549.654 null ] >>
endobj
3612 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 520.762 null ] >>
endobj
3613 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 509.803 null ] >>
endobj
3614 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 498.844 null ] >>
endobj
3615 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 469.953 null ] >>
endobj
3616 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 458.994 null ] >>
endobj
3617 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 366.341 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 448.035 null ] >>
endobj
3618 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 355.382 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 437.076 null ] >>
endobj
3619 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 344.423 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 372.319 null ] >>
endobj
3620 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 333.464 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 361.36 null ] >>
endobj
3621 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 322.505 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 308.558 null ] >>
endobj
3622 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 306.565 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 297.599 null ] >>
endobj
3623 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 295.606 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 286.64 null ] >>
endobj
3624 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 284.647 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 275.681 null ] >>
endobj
3625 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 229.853 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 264.722 null ] >>
endobj
3626 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 218.894 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 253.763 null ] >>
endobj
3627 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 207.935 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 242.804 null ] >>
endobj
3628 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 196.976 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 231.845 null ] >>
endobj
3629 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 186.017 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 190.999 null ] >>
endobj
3630 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 180.04 null ] >>
endobj
3631 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 164.099 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 169.081 null ] >>
endobj
3632 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 153.141 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 158.122 null ] >>
endobj
3633 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 142.182 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 147.163 null ] >>
endobj
3634 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 131.223 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 131.223 null ] >>
endobj
3635 0 obj
-<< /D [ 3592 0 R /XYZ 81.077 120.264 null ] >>
+<< /D [ 3588 0 R /XYZ 81.077 120.264 null ] >>
endobj
-3591 0 obj
+3636 0 obj
+<< /D [ 3588 0 R /XYZ 81.077 109.305 null ] >>
+endobj
+3587 0 obj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-3638 0 obj
-<< /Filter /FlateDecode /Length 2549 >>
-stream
-xڭZK6ϯpN1#>%i`'bX4$ԶFIo!ZjŲHWŢ"^!?˅DR:^$db/Xv !%Lj'S{hY0!ҧ̗$$r-W4I~ꟄsOyxulYqHЉ"eݕwxhJOM?gUͲ"Abb^Eo}'eu^ \mc՝,-P\QJ`?&C2ŔMPahR3> HAWASoI*}j_BD a):0g>k0oLa5DJy=;vxLs\qu{:ey/{[,)".):cݕ -}4OU϶U;f.SUΌmǝzqT{LA+ j_ϋ!j*o͋HͳksRyW궝>evmHofn㾾S
-^8G5Г͍0j]Ԇb銍i*m_.F">tMKLDbܸ<mMha-%Q_.AӪzQ-Ύ jcOhD KY?N83ve.adXN%?LbI>YmMs F3i+:+`˦jî`)b)u#ǣaț%4 &0 jL߳rCr  .Dp
-$Ah x)6M}?UOaMU5{
-6ӑB<;Cnwqm.{&cl]},D4v- SgKC[Gjbw1M)xrܢu,Fi8Ice/lq7ISWc-pխc%;ɰG;NQkzDl4?Kxd
-樫2n*fJ0n6% Pxy9!y* `\~ >@w=joٍOJ[ac.'ptMYs(LPIQWSoL\WXїhMT]썺e5D󯅵|ْvGeUu|ݛ~0Gnfx>+ywkMUp8j?Q𔨩6nz;͚0(,g"Ab8Iaϰ;#Jv} e˨]fP$D ʐHɹE>jpL\sK K6ao ϻS Tmm FW-,,49
-ak$lM2e鴮moLpjG=JI/1ewwQ SDbDXeȣ~U؝>pXȣ>;?OݮeH!c$2yzn YhN8&У~K_3VpO^?"~}\0l>-
-.H?-ttL)꛱δJd&)]&ݠ=Bt7۹p >BS
+3639 0 obj
+<< /Filter /FlateDecode /Length 2353 >>
+stream
+xڭZKϯpN4OQ!,C! %,Ow`o!TE'MXrn?O?}!jhO
+1A8#<XNþ+,]}T}[Q;7Pǔr$W1Ƈܔ} ;}ukE;toPw_7ud~e0_ՀgSÕ痫R\ DmxSŒC&"8$6qug̯edF+վҦ=!VwV\lj7h퇈L Iקέ?덖fdu1}>u;
+'~)$"Yt_j)3ɗUگS՟ aaxqdS26)ܔA/?O_ϥ ͸/U~1;PdH蘄?J-8R9a4T)PF@'p.EX#ZnnBau'0ovυEK^m_3R5!Qν&b&Dp`L=7&Q:6ny(z/+B(&ULahedԜt
+vHΛg+yhGStVaTIKJrFDn%ʑ>*67Ŝ ϕjfgQ8`!@I iGKGK][].R}("N<f8`hkQzGn{iշ}\<6u
+6ZXzҮ8X=HXn*ҡ@aaE$+Z&/H^ʃY){bURD
+ xQkA{]Zez7U}_œfq
+k*gw
+ŖWN?\Wj\%8i#,f=ٽ6dcױ)A WKm]q>i? pM*Þ/踡Cvw9ڵhxe7IZ|VO@Yl"])GT񫹼 W^V<ۛ}GgBąxn4.ό=pnz6ͫfn`s ̂Ro oOuL@HC5چ+
+ 2mGD
+LR!@+@鈲Izr۵Ə346ȁ%ȐnZ|0V#*
+9Ir$[lrvbTʰ |4C2ۑ89&+DTӲq>qF62$Ȅf+ӫ,s4&7}IVΤ]3ޑSĵs 5XC5kiK+
+@뚐x'M&{Z'jc0:
+-]ە~"}'8MڌuKs!vX[c$s
++1u2o*1ʕ2
+*/C*BiB$A(l?"%ш־;jWZr:plfgH7(qu
endstream
endobj
-3637 0 obj
-<< /Type /Page /Contents 3638 0 R /Resources 3636 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
-endobj
-3639 0 obj
-<< /D [ 3637 0 R /XYZ 78.37 808.885 null ] >>
+3638 0 obj
+<< /Type /Page /Contents 3639 0 R /Resources 3637 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
endobj
3640 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 742.929 null ] >>
+<< /D [ 3638 0 R /XYZ 78.37 808.885 null ] >>
endobj
3641 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 731.97 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 730.974 null ] >>
endobj
3642 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 721.011 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 720.015 null ] >>
endobj
3643 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 656.254 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 709.056 null ] >>
endobj
3644 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 698.097 null ] >>
endobj
3645 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 687.138 null ] >>
endobj
3646 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 581.534 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 676.179 null ] >>
endobj
3647 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 570.575 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 665.22 null ] >>
endobj
3648 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 559.616 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 654.261 null ] >>
endobj
3649 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 548.657 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 643.302 null ] >>
endobj
3650 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 537.698 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 632.344 null ] >>
endobj
3651 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 526.74 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 621.385 null ] >>
endobj
3652 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 515.781 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 580.538 null ] >>
endobj
3653 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 504.822 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 569.579 null ] >>
endobj
3654 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 493.863 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 558.62 null ] >>
endobj
3655 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 482.904 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 493.863 null ] >>
endobj
3656 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 482.904 null ] >>
endobj
3657 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 471.945 null ] >>
endobj
3658 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 419.143 null ] >>
endobj
3659 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 408.184 null ] >>
endobj
3660 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 397.225 null ] >>
endobj
3661 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 397.225 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 386.266 null ] >>
endobj
3662 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 386.266 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 375.307 null ] >>
endobj
3663 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 364.349 null ] >>
endobj
3664 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 353.39 null ] >>
endobj
3665 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 342.431 null ] >>
endobj
3666 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 331.472 null ] >>
endobj
3667 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 320.513 null ] >>
endobj
3668 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 309.554 null ] >>
endobj
3669 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 278.67 null ] >>
endobj
3670 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 202.954 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 267.711 null ] >>
endobj
3671 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 256.752 null ] >>
endobj
3672 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 245.793 null ] >>
endobj
3673 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 234.834 null ] >>
endobj
3674 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 223.875 null ] >>
endobj
3675 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 212.916 null ] >>
endobj
3676 0 obj
-<< /D [ 3637 0 R /XYZ 81.077 137.2 null ] >>
-endobj
-3636 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 3638 0 R /XYZ 81.077 201.957 null ] >>
endobj
-3679 0 obj
-<< /Filter /FlateDecode /Length 2194 >>
-stream
-xڽZ[o8~0{1ayE1v0Ev،#Ԗ<4}uHQ}t±)}|t/oh7>tTs-g7wo<36KR"YnzJh3k77Rǽ]\]fv{e`Q6!/™:_g&/ R>6p]mmmƕY
-ߎ~2RLp ѭVfD&DK1 XsJ˖,¶^
-:T`nׇb<98VjYt`8ht lT`8 ѽbZeh'/"2@o_ˇz~"W)x_p&"tme7y'!-C~ ev!%oBE~}jtQ5F5: .Dhڮyg Ѕ|9;J<nh63RIСu8MN%X4o~k
-1?>5l7 Ҥ+;{M uˆoM׶2쮬kl[{69ZmAVw:wGQts"mTL,',=-7vukAvAOC`25PDf.B n~IDf$q`V1r%'Ͻ$.G)ۺbH^ VP5#9
-5*7c?g;38./ =y"b1+஺n\R8}>:s-)GV+\qiTp%#)<F%C4:q DCt[a-
-%IQA74iJIST?:xq B81
-mlle֑뻹_8}~Rg,X/ޗ0T
-^=qg<$Я!&q_
-endstream
+3677 0 obj
+<< /D [ 3638 0 R /XYZ 81.077 190.999 null ] >>
endobj
3678 0 obj
-<< /Type /Page /Contents 3679 0 R /Resources 3677 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
+<< /D [ 3638 0 R /XYZ 81.077 158.122 null ] >>
+endobj
+3679 0 obj
+<< /D [ 3638 0 R /XYZ 81.077 147.163 null ] >>
endobj
3680 0 obj
-<< /D [ 3678 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 136.204 null ] >>
endobj
3681 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 743.087 null ] >>
+<< /D [ 3638 0 R /XYZ 81.077 93.365 null ] >>
endobj
-3682 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 732.128 null ] >>
-endobj
-3683 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 721.169 null ] >>
+3637 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3684 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 710.21 null ] >>
+<< /Filter /FlateDecode /Length 2554 >>
+stream
+xڽZmo8_C?rhYKCuo0lb3PYJrlE:cX&5q晡l3ó_ūwH>Q.+xFfiX:K%AXb;-YܩLdWh|*6ϰFAXhm
+qH*[Sf&hZ.-6=M @Z;9(ߕF5w ܗUeYT_XK?*rnj޶v[؂`i7ꋛ}U-'"M%~TW$i߀$Q&M2ٚr񬲘@Bp,,&2\,?7~,:NQ<2(※݌Srz ]YgɌ>ȇ_.։ @ RD;EWi/ѡƸoH
+*Gq[o_y%Q2^uz`Hꖝ4ݍ 2H_Ȃ1bT:(Z-},ojףD|~5mthfp52G+]62Cg#O Sh
+I~f֒~X\ Mm-}4&w+x498$aa}wj7Hig8环XFሐ"mPTS~nLu/vS5K
+LE]!g,e2(qԆOnYJQb$rA cݴMŤaXۦC+I(m&PRf+S]r_VdED,6kQ'r9X.ӷLy q'|s6e|#H.Z0~^1| L".瀮9>yJL1ْGuty|
+q^@}Jm4{ԓS.q\@=qT> gAJ.M%` 6W!!a4PuqąʮOC)
+HS.ýlשmY!)O$RoZ::juk?6hÎtBwlc/hq
+endstream
+endobj
+3683 0 obj
+<< /Type /Page /Contents 3684 0 R /Resources 3682 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3298 0 R >>
endobj
3685 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 699.251 null ] >>
+<< /D [ 3683 0 R /XYZ 78.37 808.885 null ] >>
endobj
3686 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 688.292 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 730.974 null ] >>
endobj
3687 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 677.333 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 720.015 null ] >>
endobj
3688 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 666.374 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 709.056 null ] >>
endobj
3689 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 655.415 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 698.097 null ] >>
endobj
3690 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 639.791 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 687.138 null ] >>
endobj
3691 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 628.832 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 676.179 null ] >>
endobj
3692 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 617.873 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 665.22 null ] >>
endobj
3693 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 606.914 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 588.508 null ] >>
endobj
3694 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 595.955 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 577.549 null ] >>
endobj
3695 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 580.33 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 566.59 null ] >>
endobj
3696 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 569.371 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 555.631 null ] >>
endobj
3697 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 558.413 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 544.672 null ] >>
endobj
3698 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 547.454 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 533.713 null ] >>
endobj
3699 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 536.495 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 522.754 null ] >>
endobj
3700 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 506.084 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 511.796 null ] >>
endobj
3701 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 495.125 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 500.837 null ] >>
endobj
3702 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 484.166 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 484.896 null ] >>
endobj
3703 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 473.207 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 473.938 null ] >>
endobj
3704 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 462.248 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 462.979 null ] >>
endobj
3705 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 451.289 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 452.02 null ] >>
endobj
3706 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 440.33 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 441.061 null ] >>
endobj
3707 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 399.799 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 425.121 null ] >>
endobj
3708 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 388.84 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 414.162 null ] >>
endobj
3709 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 377.881 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 403.203 null ] >>
endobj
3710 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 366.922 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 392.244 null ] >>
endobj
3711 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 355.964 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 381.285 null ] >>
endobj
3712 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 345.005 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 350.401 null ] >>
endobj
3713 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 334.046 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 339.442 null ] >>
endobj
3714 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 323.087 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 328.483 null ] >>
endobj
3715 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 312.128 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 317.524 null ] >>
endobj
3716 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 271.597 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 306.565 null ] >>
endobj
3717 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 260.638 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 295.606 null ] >>
endobj
3718 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 249.679 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 284.647 null ] >>
endobj
3719 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 238.72 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 243.801 null ] >>
endobj
3720 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 227.761 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 232.842 null ] >>
endobj
3721 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 216.802 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 221.883 null ] >>
endobj
3722 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 205.843 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 210.924 null ] >>
endobj
3723 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 194.884 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 199.965 null ] >>
endobj
3724 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 183.925 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 189.006 null ] >>
endobj
3725 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 172.967 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 178.047 null ] >>
endobj
3726 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 162.008 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 167.088 null ] >>
endobj
3727 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 151.049 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 156.129 null ] >>
endobj
3728 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 140.09 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 115.283 null ] >>
endobj
3729 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 129.131 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 104.324 null ] >>
endobj
3730 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 118.172 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 93.365 null ] >>
endobj
3731 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 107.213 null ] >>
+<< /D [ 3683 0 R /XYZ 81.077 82.406 null ] >>
endobj
-3732 0 obj
-<< /D [ 3678 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-3677 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+3682 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F70 185 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-3735 0 obj
-<< /Filter /FlateDecode /Length 2401 >>
-stream
-xڽZM6ϯ0 l3ScL=!h`m-,yd;䷧HJȦіE=HV*O<>ǏO 2J>yz@ODDI$'OOY|sJ(G\\gwi텙w;/Oeu˺CUO,fTN:,j(Z$l3M(GDL8~7G}_nBE?ۜɨi<JSR7B!yKWuGUB']{&M%(qaSFt[ǏL4PLG/4bF诳;AEMs(suM;hʳ7Zڍg4DD0 v48,FM"FyCifYSSm뭵_E_f}oI8L &İ3bN3:-b֊g$ϗ*gm2GxTmi/̳#Yx &hh:
-8=A#HT?GO6vrJu#+}{ Cnj_lY?a._۾mVT-oxuG-`3[NiI jLAO+xF% e (clxù)ۋ2[x%S2Ǯ UyoMbw q쩁rY+*jwnJY>lu,%
->\0A`.mi06_qWEj|C﫮;^)ĕBis_ǖ)fI'B#[΋g/Yy
-B&5yBD׬7|
-Cgjx '龭WUbs^/]y]O>DsD)8rrcM@'rr")bXiD@A-wv?hjʺڏW){V{s sP+$3B D04MJ> RB8!n 4͓~-d:T\ DWh[a.$2CLI$CJyhUvǜ: h9#i߻
+3734 0 obj
+<< /Filter /FlateDecode /Length 2451 >>
+stream
+xڭZ]o}ϯ0/6pOy
+Zt/ZAqw/fl!dŽCRD+NFt8G3ÙCJd5I&$__o>I!%1%ǧ 7%< NRQ"q;mJqg?ӏPTX _1e{-滬(7E-'^ZeYY5z]̀9<A8!'g"B?zN*u& vDS
+aF=U!ںM4"s`qQ%CGh6؄{626 NJ㣑De)$ g!:ڶP$lAhC.v$$C)OBƑ4.&R.C yUmᱟ̫͛a3sg4UA*$*ih#J'/P68\
+)xwxW_U/_)8fR'܆}$jbh_(T!
+@Hֳ[J鴙t:#rZb}QvL :ո,W/^FY A7V 'HPZ/okl֣v)eηuPV91}kOOrd. -\lf#Ȼ(:0A)'cRĶ)/'B~:|. x{G0I $hc~g="o -ՓcQmC w\ZJ$I$f< T=ybͿ1qطT4~1}tZ<g !H4
++u %/q,@%WRC1뺪3
+J(Wwi
+|-uuh<nW::^4J/xЄ0W
+DZ lu] .˼XL.Ԃ?.,(Q| ӧjZ+L~s*]-6z7kgӍ͋=7bw*upfXڂ LiQ4z;+8!!2%2i%O5IDOx yj5|d^YvWH
+Rw~9ԟe yKeѲtG.(oUv
+"gzP9n:{Lv⳽ٷw!F? VFCe9wd'Sdfv^TvA0{n]mKSndjlukhƈD¥D!VJq ыF/ve88N}gquތ`@ʋDţzlgٱ^o`+::E߬Qq;|z&mٽ(}'S$߂Ds
+)͑=k~cdQy/*$r#tu"v6(p}0x4H z(4jlbLt#WXN[;I.R$y8;\_u'[߸6ʓÓJHQqӮ-#c4 Z8?3A)Cՙ!$v/gvb,V-B˒))k( s}1h{K"LzqĠ+z˥mDF146;5>TF;ڌ,rdLS~턙+U{!
+'65<ɏ'UW6N qOqu/8~A[R9r^}Lv/V_PP<6Hĵ!:Zhs9؎[3hiW,C6&!Q @` ܺ?J*RGƑf+#`_ .o\A)Þ-c;DǸC98@L%mcq}
+K;ROVM!($\޼h|<8[2×x1tLg+ߓ? ay 8)&<QCttM\5'QeFڹ̸^
+6
+r
+Q 3H >CDtJ O8Q0Fվ6ym:͵_q 0Aj7jgW#S3I
+Px*m[gmoF
endstream
endobj
-3734 0 obj
-<< /Type /Page /Contents 3735 0 R /Resources 3733 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+3733 0 obj
+<< /Type /Page /Contents 3734 0 R /Resources 3732 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3784 0 R >>
+endobj
+3735 0 obj
+<< /D [ 3733 0 R /XYZ 78.37 808.885 null ] >>
endobj
3736 0 obj
-<< /D [ 3734 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 768.832 null ] >>
endobj
3737 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 757.873 null ] >>
endobj
3738 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 746.914 null ] >>
endobj
3739 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 735.955 null ] >>
endobj
3740 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 724.996 null ] >>
endobj
3741 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 714.037 null ] >>
endobj
3742 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 703.078 null ] >>
endobj
3743 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 692.119 null ] >>
endobj
3744 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 681.16 null ] >>
endobj
3745 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 670.202 null ] >>
endobj
3746 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 596.478 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 659.243 null ] >>
endobj
3747 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 585.519 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 648.284 null ] >>
endobj
3748 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 574.56 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 620.523 null ] >>
endobj
3749 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 563.601 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 592.762 null ] >>
endobj
3750 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 552.642 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 581.804 null ] >>
endobj
3751 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 541.684 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 570.845 null ] >>
endobj
3752 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 482.904 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 559.886 null ] >>
endobj
3753 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 548.927 null ] >>
endobj
3754 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 460.986 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 537.968 null ] >>
endobj
3755 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 450.027 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 527.009 null ] >>
endobj
3756 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 439.068 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 516.05 null ] >>
endobj
3757 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 428.109 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 505.091 null ] >>
endobj
3758 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 417.151 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 436.618 null ] >>
endobj
3759 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 406.192 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 425.659 null ] >>
endobj
3760 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 395.233 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 414.701 null ] >>
endobj
3761 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 384.274 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 403.742 null ] >>
endobj
3762 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 373.315 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 392.783 null ] >>
endobj
3763 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 362.356 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 381.824 null ] >>
endobj
3764 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 351.397 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 325.306 null ] >>
endobj
3765 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 340.438 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 314.347 null ] >>
endobj
3766 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 329.479 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 303.388 null ] >>
endobj
3767 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 318.52 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 292.43 null ] >>
endobj
3768 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 283.651 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 281.471 null ] >>
endobj
3769 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 272.692 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 270.512 null ] >>
endobj
3770 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 243.801 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 259.553 null ] >>
endobj
3771 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 232.842 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 248.594 null ] >>
endobj
3772 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 237.635 null ] >>
endobj
3773 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 226.676 null ] >>
endobj
3774 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 215.717 null ] >>
endobj
3775 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 204.758 null ] >>
endobj
3776 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 193.799 null ] >>
endobj
3777 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 137.2 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 182.841 null ] >>
endobj
3778 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 126.241 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 171.882 null ] >>
endobj
3779 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 115.283 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 160.923 null ] >>
endobj
3780 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 104.324 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 128.315 null ] >>
endobj
3781 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 117.357 null ] >>
endobj
3782 0 obj
-<< /D [ 3734 0 R /XYZ 81.077 82.406 null ] >>
+<< /D [ 3733 0 R /XYZ 81.077 89.596 null ] >>
endobj
-3733 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 186 0 R /F19 184 0 R /F70 185 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+3783 0 obj
+<< /D [ 3733 0 R /XYZ 81.077 78.637 null ] >>
endobj
-3786 0 obj
-<< /Filter /FlateDecode /Length 1852 >>
+3732 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+3787 0 obj
+<< /Filter /FlateDecode /Length 1949 >>
stream
-xڵZK807M1 LCN  j[r1[ԃ"r'HMSX_ˡ~(~󯇛WoIX&":c3fff4#Tn\pfo|֫7:Yh-lf@d+J^vrlS}U}y{?:/w!*=4~ mvRŘv8p; %c4^6Ye3 \y=|#1p"kmQiEM5Z{NYT6f?U}_Xutƫ#Q&9c.+]6U_)0cQ7m
-V!)TnSNSk)jK6eӞ4nOiZs"'kn.,1z ̼qr|ȶcU#Zc)F-N}99C(a;y4DÁO'nAQ,BODs%*AS˦h^\8%c3Ϊإ氈ߺMcOXeUO_鐗+Pc_,Cuf.KV.S}bnZImS:
-=
-=1*|/y!zTp~ꞣ
-.u6'5Q;Л\d25`A#=)bwd؉Tc: Æ-q?:Fx?EowTynn-sWjϣB)Y5Y:D3 K I'I2BdL -q
+xڵZMϯ0HsMA9̩ ۲DoOQ)u'㱊4mgt:^ghi :c3afF3B5=g(?竺zz<oaw% +5cכ?&9M:g&d~.6/*Or|eZyiW@r=lCynw׬0o†$/.L)¨]nZ?=0(c`nҢZKdbc<!('1$Ln5 EZp g,̭nDvs(VݱD$,ID8 ю/l
+)tF 2N.|H(@y
+G;D;:˺.2kZ7zBӁKШ<Ёn8cj]E}_.eS4mB'%ZXK^a5/^|KqM^XKh|1E{&5?7 H/۳+m95UrH2z G/ܒT(BsD_N-L?fY_Kj"&QQ*Jpdlvj}fˌ8.!.[pYd_cuC 48!e7k#(3DLaiq)ˇtuR6!Fi s"D)J+ׇqHU^1#4ZD1
+:t_?J+k;)y*]Z]ަyo|涩T-FtlyjPj}}ZJ0F]RT馄[*cÊv`^Nd<HrJP.oڏIGQ F>TEgNGV|ٝtQ( o?>2(3e`?hka vD_*NḷjZ ]܅/'vݐXG&))
+ɐȋƊQ?漣8XHB\hfu}C!k>,lMХUbq" {+KU·WGc^v0B X~Aag+NEY\} 5yߗLq}>ua*\㽫 I]\a5@6m˥eҞ=>Tpo#"зm=|&S/,n
endstream
endobj
-3785 0 obj
-<< /Type /Page /Contents 3786 0 R /Resources 3784 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
-endobj
-3787 0 obj
-<< /D [ 3785 0 R /XYZ 78.37 808.885 null ] >>
+3786 0 obj
+<< /Type /Page /Contents 3787 0 R /Resources 3785 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3784 0 R >>
endobj
3788 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 3786 0 R /XYZ 78.37 808.885 null ] >>
endobj
3789 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 742.929 null ] >>
endobj
3790 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 731.97 null ] >>
endobj
3791 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 721.011 null ] >>
endobj
3792 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 710.052 null ] >>
endobj
3793 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 699.093 null ] >>
endobj
3794 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 688.134 null ] >>
endobj
3795 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 677.175 null ] >>
endobj
3796 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 666.217 null ] >>
endobj
3797 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 655.258 null ] >>
endobj
3798 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 644.299 null ] >>
endobj
3799 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 633.34 null ] >>
endobj
3800 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 622.381 null ] >>
endobj
3801 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 611.422 null ] >>
endobj
3802 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 600.463 null ] >>
endobj
3803 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 589.504 null ] >>
endobj
3804 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 578.545 null ] >>
endobj
3805 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 567.586 null ] >>
endobj
3806 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 556.627 null ] >>
endobj
3807 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 545.669 null ] >>
endobj
3808 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 534.71 null ] >>
endobj
3809 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 523.751 null ] >>
endobj
3810 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 512.792 null ] >>
endobj
3811 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 501.833 null ] >>
endobj
3812 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 453.345 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 490.874 null ] >>
endobj
3813 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 442.386 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 479.915 null ] >>
endobj
3814 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 413.936 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 468.956 null ] >>
endobj
3815 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 402.977 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 457.997 null ] >>
endobj
3816 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 392.018 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 447.038 null ] >>
endobj
3817 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 381.059 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 436.08 null ] >>
endobj
3818 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 370.101 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 425.121 null ] >>
endobj
3819 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 359.142 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 414.162 null ] >>
endobj
3820 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 348.183 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 403.203 null ] >>
endobj
3821 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 337.224 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 392.244 null ] >>
endobj
3822 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 326.265 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 381.285 null ] >>
endobj
3823 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 315.306 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 370.326 null ] >>
endobj
3824 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 304.347 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 305.569 null ] >>
endobj
3825 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 293.388 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 294.61 null ] >>
endobj
3826 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 282.429 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 265.718 null ] >>
endobj
3827 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 271.47 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 254.759 null ] >>
endobj
3828 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 260.512 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 243.801 null ] >>
endobj
3829 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 249.553 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 232.842 null ] >>
endobj
3830 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 238.594 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 221.883 null ] >>
endobj
3831 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 227.635 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 210.924 null ] >>
endobj
3832 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 216.676 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 199.965 null ] >>
endobj
3833 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 205.717 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 189.006 null ] >>
endobj
3834 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 194.758 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 178.047 null ] >>
endobj
3835 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 183.799 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 167.088 null ] >>
endobj
3836 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 172.84 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 156.129 null ] >>
endobj
3837 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 161.881 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 145.17 null ] >>
endobj
3838 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 150.922 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 134.212 null ] >>
endobj
3839 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 139.964 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 123.253 null ] >>
endobj
3840 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 129.005 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 112.294 null ] >>
endobj
3841 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 118.046 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 101.335 null ] >>
endobj
3842 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 107.087 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 90.376 null ] >>
endobj
3843 0 obj
-<< /D [ 3785 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 3786 0 R /XYZ 81.077 79.417 null ] >>
endobj
-3784 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+3785 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3846 0 obj
-<< /Filter /FlateDecode /Length 2867 >>
-stream
-xڭZ[o~_a@GNiݝm` t
-AX[Jr` 63}H,<wύgx뛸E\?_Jdv|aP<3%r&F?%]\?dP"USbLb$iSƔ_m՜u:!mle.uIƮ8A}2
-#t˞Ϸ")]Lk,ʳ. cng ;a>Ρqz{5{̤@щӵssʶL9$rOwvE=Ha'dZˋ[4 Mcu
-^+M11n*ŅDJj8(u2,")VmQ|xS?i򢽮1>""!`sS B_2a^v8tyԃ86EV1{6PLL]2hHңv9bVe?\߄(CΥx)u>a<N+(ɢksIm k3% ߊF[S9<1T>;
-FyfeZf Av.}}N/熞IHouֶE=
-Q֞RH>OBBiei^Ӫ^@
-&%4GއP AH6`AQ_R9+Mᒲ x 2K&Чc*>ldI_؇~#2ׄ+`f9kmoٹzHm/2s/} ,n(AA`\/-y9iN#H^c(HG|yqS#1}vċ6zQ_iM_;(4ѵlC7V-H_'/T >1f-p>ҍٟifB]c* !8ʾeS7=¬=AE*}d_Q[nuتA_.M1m>C=Bm2 x>V<`y&&
-|DOCS G|n?ͣG[2Zt]zGyvZ(+8^y x0*)tmӲZUq]U/
- HG#|zQ>րD,TQ+׮1;@x؁*2# n+x2l{Y})‰x aRJH~LazwRK 8Wt<Km,)$9^yBKGcdfXy1
-On(_D4
-2i9`&ޚUk}]7zY tNwkAD^i~ɳf67 X7wjkr>^,FlZO2/6Yהi\F˟{Ht9.V [t*YYIC(z“
-ΞKᓻ{{e4Sq
+<< /Filter /FlateDecode /Length 2522 >>
+stream
+xڭZ[o}_a`L8I4-vg;EBPd9VG\IN f~{?^D㘙C]^(VOwy` RI]ܬd! A8!__ont!Q$LaDb tkk0 n̵SCB/M>KZ6`n™c1\ 1#̄JD$wLD9Z1mHpՄ
+qq(~2ǡ()F!ֻ>[n:6<[0a $pFx~z#$b qyhu$]u "9b<u\H9g`Mhљ%3g$;oihVg6Y_W\|?~̺23}kٲa ą26{{X>ӷI.fWך5]͋r>t9"Yb* %c4zP/zfQ7að]<2G!7E?Mb]fϢuU4i˗æ4LĢZ}5O(Et Zm3؃Ic<ɞr;? uN_`eה1tE9ZR JVup()R1'q:34Hpev>s"ǧg:XO>ǘŌ4^F[mCͅ$Q28$\ٕyDW]h $ҡa3L/Lӻ$FLS>Ա\`mcζ98,
+ig p/k%0d(ySP><[E,$y.CMm,9-X@Hj9;Eʞ?NRv +p-hv*P@UW$uijWYIԁ%H3g9`5hl
+Fy̻ Jb ߏk5}_6VZ
+M8K ,pHpPHxTV6ӆVRj5رrȀ. !oK'z;aIlf%*FxC- |z2sڶqnvΫef͊<TumLSZ2clL n`žs/ [u*ڮ32 M93n6E$ԕR
+z&"dnrx[_!8޴e*RȺKҰ> &c.K
+Ǧ̛4%=pũ$&m7ỳIJ+"~O1Ep^zfvKRY ]l B36c崿2@S \*Ԟbʈ?¢7eTc8ZKh eX7xEw)#,E1ph8ب@Mm6l!hUΥmP`6`kdz0Hu;
+ijc9lndru9`2/L]@UզT ij~rG!͖ hA
+uV2%uS]3muQ.4^5^{yh U|*v:G۝nmV5uՔ?5$X9wO‚9881d.&4N2ϭCp0R`oU "k_U3oeCj脾0x%`8F כw}
endstream
endobj
3845 0 obj
-<< /Type /Page /Contents 3846 0 R /Resources 3844 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /Type /Page /Contents 3846 0 R /Resources 3844 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3784 0 R >>
endobj
3847 0 obj
<< /D [ 3845 0 R /XYZ 78.37 808.885 null ] >>
@@ -12233,778 +12259,777 @@ endobj
<< /D [ 3845 0 R /XYZ 81.077 724.996 null ] >>
endobj
3853 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 640.396 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 714.037 null ] >>
endobj
3854 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 575.639 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 703.078 null ] >>
endobj
3855 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 564.68 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 692.119 null ] >>
endobj
3856 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 553.721 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 681.16 null ] >>
endobj
3857 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 542.763 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 670.202 null ] >>
endobj
3858 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 531.804 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 659.243 null ] >>
endobj
3859 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 520.845 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 630.351 null ] >>
endobj
3860 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 509.886 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 619.392 null ] >>
endobj
3861 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 469.039 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 608.433 null ] >>
endobj
3862 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 458.08 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 597.474 null ] >>
endobj
3863 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 447.121 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 586.515 null ] >>
endobj
3864 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 436.162 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 575.556 null ] >>
endobj
3865 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 425.203 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 490.957 null ] >>
endobj
3866 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 414.244 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 426.2 null ] >>
endobj
3867 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 403.286 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 415.241 null ] >>
endobj
3868 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 392.327 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 404.282 null ] >>
endobj
3869 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 339.525 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 393.323 null ] >>
endobj
3870 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 328.566 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 382.364 null ] >>
endobj
3871 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 275.764 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 371.405 null ] >>
endobj
3872 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 264.805 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 360.446 null ] >>
endobj
3873 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 253.846 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 319.599 null ] >>
endobj
3874 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 242.887 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 308.641 null ] >>
endobj
3875 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 231.928 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 297.682 null ] >>
endobj
3876 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 220.969 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 286.723 null ] >>
endobj
3877 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 210.01 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 275.764 null ] >>
endobj
3878 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 199.051 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 264.805 null ] >>
endobj
3879 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 122.339 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 253.846 null ] >>
endobj
3880 0 obj
-<< /D [ 3845 0 R /XYZ 81.077 93.447 null ] >>
-endobj
-3844 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 3845 0 R /XYZ 81.077 242.887 null ] >>
endobj
-3883 0 obj
-<< /Filter /FlateDecode /Length 2868 >>
-stream
-xڵZo߿nE(pmڇ4@zL"-$ybΐ,ʎbn)CqA?/w>߰|\q%w r"E-v'ϒOWׂId֬j,MZ{eK\]K]iQ*]q=mMapk}s[VuͲv)BSZUYcuF:̻ү$$)dc3_sS><>1_ ]?To}_'Wg;t݌e-</Exعg-2Rv!` ~[N%|9aL&D8ͽ'9ji"Ԅn6Lu=ꁌ>ƺvU;+O%d'9'Rr4eLIPZD<$S7#n[ 3Qe$LZ <ss
-A3G/4pOӀkʌذliNI&&O?֍):#_Uƴh(+KyKcjdTiX6TNEQP^;$ՃB0vڰ(ujԝYwf݃<l[>>uꊗU|v/?2|W8??th)GڮGJ v$:sr`~mT5
-ۮ!Rv$UUͮ`cVJomݘ^~u:.(|CH"a
-'ژ輸y1L)₁tG6Z(4ٞMߖ],FOIٙRI% F02ǰԌBD]-F8V8S[=v
-\|fP1*V1c!-b@EӀ?E~"1Qsh + pD U0
-fGJsG.OjL ˇ̈́ |=؜٬p|4 qd@ܛ
-F+'
-6
-ؽbpM~K)MlA
-q3@S1<$bI'&uc7Oi4 ]+M}'Gѧ.[7`wV7%~~2]2x
-[\TlL,F1Uƒ/n)6
-ܫ?:g1
-P@gOkS#}\4 9( P7_e*厩\T=W͸Q2q✸]@W ]·:AR*){O) f9vj[l},.D_(`^Twm}j6SF`>M{gO 0YHZ7PQr+%.3b]䛷 &*\6Gv9;N!#C<Չ*q ˳K>nl姺|kQ@HItMٴ'k3
-wvQ |"t.|`e8VlCF
-{{iԓST{cԔ9ԛu} Wz}9DNRxP{zi#{)¶z}O5|CdL= ~:l$"k vt[:8vSm~dd^]_9 $T)n%2^,:#ЅA\B'8 s~Qq2qWѧ
-i#Q"V84k7+
-6"1?y<}F‡{oѓ+ynluaa>u3ER"ezE弘ʉE _f<yJ^lr;\+"ʍW=2F4
-ҙy= O@+o| й lwe3;2 1ZeGw|Gu}fw692z6ژۄ9QZHJ:_S
-endstream
+3881 0 obj
+<< /D [ 3845 0 R /XYZ 81.077 190.085 null ] >>
endobj
3882 0 obj
-<< /Type /Page /Contents 3883 0 R /Resources 3881 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /D [ 3845 0 R /XYZ 81.077 179.126 null ] >>
+endobj
+3883 0 obj
+<< /D [ 3845 0 R /XYZ 81.077 126.324 null ] >>
endobj
3884 0 obj
-<< /D [ 3882 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 115.365 null ] >>
endobj
3885 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 731.041 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 104.406 null ] >>
endobj
3886 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 720.082 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 93.447 null ] >>
endobj
3887 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 709.123 null ] >>
-endobj
-3888 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 698.164 null ] >>
+<< /D [ 3845 0 R /XYZ 81.077 82.489 null ] >>
endobj
-3889 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 682.358 null ] >>
+3844 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3890 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 671.399 null ] >>
+<< /Filter /FlateDecode /Length 3004 >>
+stream
+xڵZ[o~?]8=E 4/ Ї0I%$$]ΐԅ#Cb37CūU˧% >|($K)gO+J%T$tu_+✊m/2[$Sb3+ߔk6Fۄ%Oo(>g϶~O$~:tܧ0Ǽu񺫏}ȷ?e>RTsw۾U]AQ@TAyN}*&ŔDerLeாa*z g,zF}#5gfiʉT̟5zf3&(r[8mnnY 
+hjiԑ[K=Wo8#aHYTն)#L>v˚aԧ^3TJ³ya3vB35j&e9N_oPq459;;Qn̝D}T69I<_U$){<2p2KI8%4hpf㘰Y%Ow/
+VߺXuϲveER~I$JV6,loW9UrvN%TXJ3E9~[KR;F_9Uo]QWyb
+\pbz_,*
+if7Q)@LMx6Bz)P_,B[%s0 >ޝ02:Mg[7LO"1dGsl;*t_otˢҭ}Dvj*3%;3 ~!Sr~Vqmuَy1/l?8vv׏s<ץ{a?g;r/E/ytN2dƛ`}^yX>`c\H 0knv&,‘cOoSjv"Of c9/bq%/nNǪ^F1XOPTO((3W`?G ?Q6uC!
+gsF睆\n*[:%9R:UFXR#Kڍ+ `a2!.R$l(0~1Q߶JlMmwC`C'CD߰ 'K`LsJn4&XbIAMQ]y0iPs뻉:Wcr'iu0>KnM,3ƋbYa4K Ž6ʛAJ ~ ND
+;Q2NM.\0  ꯍHd1=K)6u-T-
+/Ao/wIBt4QdhwD[uvU٧PxCUϫy-SĹMxnAOgXX]M2;2@ o#[ m:|ܣ8&9-W@19ScADb#-BYlǞa]HP&*V;L|;_Lm)O[nWߢ8r{Ӣv=}=̳W2evWap*bc&=x n4ʿKzhgsz=ۋyl]uW *lP.ژz@1nXQ^Ww#2
+{~-e 9O#;ncխŽXvIA{a2 x#Ľ'%RCdO%"Im+iCC:Gϯj0W7k??nZ@9;ak}԰t!1ɆmkC-x2)': qhk9EL8guO#|nDYT@P.^e "o>4.}DjeRp u|j$5s`+_.hSMCM{8>ifəv5K..VtƮu
+;JƋdAPZq/a|Sj f,ү[}E[Cc{d{LYUe-%Jz],5R|Do꥝&7V-ra[uo
+endstream
+endobj
+3889 0 obj
+<< /Type /Page /Contents 3890 0 R /Resources 3888 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3784 0 R >>
endobj
3891 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 660.44 null ] >>
+<< /D [ 3889 0 R /XYZ 78.37 808.885 null ] >>
endobj
3892 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 629.756 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 768.832 null ] >>
endobj
3893 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 600.999 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 757.873 null ] >>
endobj
3894 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 590.04 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 746.914 null ] >>
endobj
3895 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 579.081 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 670.202 null ] >>
endobj
3896 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 568.122 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 641.31 null ] >>
endobj
3897 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 557.163 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 588.508 null ] >>
endobj
3898 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 528.405 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 577.549 null ] >>
endobj
3899 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 517.446 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 566.59 null ] >>
endobj
3900 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 506.487 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 555.631 null ] >>
endobj
3901 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 453.819 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 539.691 null ] >>
endobj
3902 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 442.86 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 528.732 null ] >>
endobj
3903 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 378.505 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 517.773 null ] >>
endobj
3904 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 367.546 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 486.889 null ] >>
endobj
3905 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 338.788 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 457.997 null ] >>
endobj
3906 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 327.829 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 447.038 null ] >>
endobj
3907 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 299.071 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 436.08 null ] >>
endobj
3908 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 288.112 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 425.121 null ] >>
endobj
3909 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 277.154 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 414.162 null ] >>
endobj
3910 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 266.195 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 385.27 null ] >>
endobj
3911 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 255.236 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 374.311 null ] >>
endobj
3912 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 244.277 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 363.352 null ] >>
endobj
3913 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 228.47 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 310.55 null ] >>
endobj
3914 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 217.512 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 299.591 null ] >>
endobj
3915 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 206.553 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 234.834 null ] >>
endobj
3916 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 195.594 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 223.875 null ] >>
endobj
3917 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 184.635 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 194.984 null ] >>
endobj
3918 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 141.996 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 184.025 null ] >>
endobj
3919 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 3889 0 R /XYZ 81.077 155.133 null ] >>
endobj
3920 0 obj
-<< /D [ 3882 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-3881 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F70 185 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 3889 0 R /XYZ 81.077 144.174 null ] >>
endobj
-3923 0 obj
-<< /Filter /FlateDecode /Length 2310 >>
-stream
-xڽZKo800t|f=`; Ai[YHr)-:i4I?+>*63<H;˧}r،LFgwO:i$Q3% ’vwr#FLOa|ymӛeoV}}u-~WemDzfsOD ޣ/0"2 FE~IepM1dә?eeN8mU4U'%ՈhX4SȲ3pu]C.a}kID!
-7L-I`̉-}lLKD eGct򾔙@ 0vv*BӳgN&9G"_FCf1GT #f~96?s`?ɥMA:}lAW
-t"8IfWf D~/J&Ρ .Y4Sayn: U~(U?yk}z6
-LiR,BD;EORN[8a_4N[2&;6;$H!|A'IAQ`Chn7`='g'=z'6apuOeUן*RDMQ|ñsjǶ6@16.ٯppJwXУ31; C Ӫ+SE< e2aZg7$ $?cK u ife)a#SA9,{XK$YW:aYJ VwzĚy]T[2":e^-1۰qW7^D0uC+u GY9Ù=R M[O\[֬Oî_4 qUwE^Dz~dAr$l[ga;/O&cԭko e̳E#k߱E_k snȳ Bb1܉D4()DG=J}SX:$oR&,|@#"A'V)jm2B—iiT| yl~X49Td$UpahJNE+Ӎ',ZE(LіyʛV/%oB1MѤiN^14!R
-"l7vGu %7 4ɕ9Hs*uB
-P,FORf=w_wEJ|&!IXkwzRSii0E{?&2'd)iM bc@'ShYPJQ=eӴDlo-7m)e_(tS4洜ksx EяgiqEU.;]pJ/ZQ&
-ai7Eof,!hev>¦Զ_\j٧2$ G$ PD:]2c!i#t"!JC<ID蟓ǖQ"I1B Бh<_%!L"NJbƓSlfjK|d^9҃}wu !\e}̔cY^deYLNH HLNnZnwmǼY3ڟW\P-gx^6RB|bLEzC kw&-} v K"m5" Y5@Ÿy|$ىAn)ĵ{F|Y&X@*OcGj.dtZ6?No~d6@uJgu S($r(k'_w
-endstream
+3921 0 obj
+<< /D [ 3889 0 R /XYZ 81.077 133.215 null ] >>
endobj
3922 0 obj
-<< /Type /Page /Contents 3923 0 R /Resources 3921 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /D [ 3889 0 R /XYZ 81.077 122.256 null ] >>
endobj
-3924 0 obj
-<< /D [ 3922 0 R /XYZ 78.37 808.885 null ] >>
+3923 0 obj
+<< /D [ 3889 0 R /XYZ 81.077 111.297 null ] >>
endobj
-3925 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 768.832 null ] >>
+3924 0 obj
+<< /D [ 3889 0 R /XYZ 81.077 100.339 null ] >>
endobj
-3926 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 757.873 null ] >>
+3888 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F75 317 0 R /F70 185 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3927 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 746.914 null ] >>
+<< /Filter /FlateDecode /Length 2439 >>
+stream
+xڭZKo80ŇHCN0%$1oߢHѤ(f/1E#JUůJIwddEߟ?.$dqd#Bp7ůKJXny(JIBoNfutS߾uuϙ[0?
+)<MS#MNSC^TBs4CQwvJVLثa}/VF"l1M.!LV ՟^ǷUwo DHqoG~"̇ Q.I\+"_VWÊ1˲h.˶Xr)38tkm֫+e={ثΌvE6zD6ۑz%d'kSP@
+j
+^`$p"GVZLR
+}q"rqmשҸjhP.%@16z^p+(vSMo&y&ǻ;ƌ=Nm捕@2 XqD ȇjصl~JeQu.;_'Q :@mG L &Y9k=ˡ5>YivUo/m];+d-IɁЁLaܨMUژ}Qv*2"җ*G-;
+gv1i!'C`mpY_uը\<vx\g-HSQ 3\8zyY&\_Wj sLP D:)e>zhp nޔ/ ?UE
+udS)SG2{BNJt$ x r8 Гq:BhAg~D6D8q|WjAa&`?,(I]b,ʅt2EI*O,@OF:V[;2p x5.%s' :=V&?+c?@-N.&@Oc_ qR5,%PM^\'@?٣Ɯ5l:#at<>8~g"!h;ը
+誢 .Evm};W Da+PY"AS9:%dItLQˀe;b{J<QS
+ O!rxa9xc:X7:<ۄ4u%ٖf/+IcNtדA0n7l0Hl>#$9!zi1þN=]Q ?}i'Ѥ\=TumF/*.8jnӄ"! ިvx|
+D)cw"m)'B"q
+endstream
+endobj
+3926 0 obj
+<< /Type /Page /Contents 3927 0 R /Resources 3925 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3784 0 R >>
endobj
3928 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 3926 0 R /XYZ 78.37 808.885 null ] >>
endobj
3929 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 768.832 null ] >>
endobj
3930 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 757.873 null ] >>
endobj
3931 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 746.914 null ] >>
endobj
3932 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 735.955 null ] >>
endobj
3933 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 724.996 null ] >>
endobj
3934 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 682.157 null ] >>
endobj
3935 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 629.355 null ] >>
endobj
3936 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 618.396 null ] >>
endobj
3937 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 602.456 null ] >>
endobj
3938 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 591.497 null ] >>
endobj
3939 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 580.538 null ] >>
endobj
3940 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 569.579 null ] >>
endobj
3941 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 538.145 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 558.62 null ] >>
endobj
3942 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 527.186 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 547.661 null ] >>
endobj
3943 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 516.227 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 536.702 null ] >>
endobj
3944 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 505.268 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 525.743 null ] >>
endobj
3945 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 464.549 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 514.784 null ] >>
endobj
3946 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 453.59 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 503.825 null ] >>
endobj
3947 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 389.216 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 492.867 null ] >>
endobj
3948 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 378.257 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 481.908 null ] >>
endobj
3949 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 367.298 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 470.949 null ] >>
endobj
3950 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 356.339 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 459.99 null ] >>
endobj
3951 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 345.38 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 449.031 null ] >>
endobj
3952 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 334.422 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 438.072 null ] >>
endobj
3953 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 323.463 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 371.322 null ] >>
endobj
3954 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 312.504 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 360.363 null ] >>
endobj
3955 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 301.545 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 349.405 null ] >>
endobj
3956 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 290.586 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 338.446 null ] >>
endobj
3957 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 279.627 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 297.599 null ] >>
endobj
3958 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 268.668 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 286.64 null ] >>
endobj
3959 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 257.709 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 221.883 null ] >>
endobj
3960 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 246.75 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 210.924 null ] >>
endobj
3961 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 235.791 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 199.965 null ] >>
endobj
3962 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 224.833 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 189.006 null ] >>
endobj
3963 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 213.874 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 178.047 null ] >>
endobj
3964 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 202.915 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 167.088 null ] >>
endobj
3965 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 191.956 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 156.129 null ] >>
endobj
3966 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 180.997 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 145.17 null ] >>
endobj
3967 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 170.038 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 134.212 null ] >>
endobj
3968 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 159.079 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 123.253 null ] >>
endobj
3969 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 130.315 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 112.294 null ] >>
endobj
3970 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 101.335 null ] >>
endobj
3971 0 obj
-<< /D [ 3922 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 3926 0 R /XYZ 81.077 90.376 null ] >>
endobj
-3921 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-3974 0 obj
-<< /Filter /FlateDecode /Length 1858 >>
-stream
-xZKo6WV-2"(,CNzlˉY2$9ݢJ2Ezތ7i^qyr(ngtD;짛wWIb |v>c0hY2K4#Tf\KJۙ!VkaB0()B`B.L[UL//eEAL@[<%rϓ=F?вA[&͟'["w#7)Q c4^}Ε-';qS/]ʋ!Rs4٧fWŪCsp=W^n~[EW)!bb,!g6\Ī"&^R'B1X^Ij7S" ռh !/Ys"T>-|F1޶Ų59bD&()GHo"oFBmvwOQ0&<EG˺nVEu/()x cH>Cy:^NWT!*)DEk#HͶtq}uT&Oa$Mړ84*YYd!}V4) $Q(Eh8V%eI\| h A"4$ Nt
-|m⌡WYڗXQ}]~NQK(j/tB/ Я&!*B#4N&[/[C֊E ~k3_Gjm[_9Ņ[VKҒ3"/ЯKK+q~&Bzi9U" E1D*pjh#`wW\# !wD"`=ԯF̡ %ě伨Ʃ8}j*&-adif[=rL Ƶɘ^qtQT*Zt?Op /pS e5 Z0#=iz[ <]$n& ozësYSdr8<_fxΓ\Y3ˇs.rip5ic}+ {[@nNqw{x8wC7`e6eS&xt tB&Zwk{[!4>4켅4Ԏ](t~}B.^u$B0&@x7 [yY܏
-m<eGںqZ|UWźM
-/Io8P{)od;1w(q.}28' U -}@W:ە0br7`G}\CẂDTYUqq0QNtXڶc-wm<J6K.lb { lXA?g+ᡭ7}lpW?0hQ`ȭ&ƟJhm⺚УQ7_O[~E?h\T
-їF1uu:ir'35ol: vRdRwQ]W_~
-iǯ57hA,v+D q^6nG}O),Uus&$9R
-,Bx F-O@7t:EY/Ĝ;BpP˲x-^^cä+CǡR6!4u6¦3U!Q+΃Vm=U >
-f/;фO'E#_[j0$yHp$Cg`i"L[q"4zaR@76x܊_
-9&JB6PUan؞
-endstream
+3972 0 obj
+<< /D [ 3926 0 R /XYZ 81.077 79.417 null ] >>
endobj
-3973 0 obj
-<< /Type /Page /Contents 3974 0 R /Resources 3972 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+3925 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
3975 0 obj
-<< /D [ 3973 0 R /XYZ 78.37 808.885 null ] >>
+<< /Filter /FlateDecode /Length 2060 >>
+stream
+xZOoS"s(Sr",w(:KC/D 3~rIb |vb0hY64#TvϹ-u0[mgXLg&Lѿ.WLnE^y[jòηŲ[,׾wTa|wSE&|ͯ+kQ0ʃ`yQkR㸨 ]mEX¤/1}*w˧-6uW7w^D?t!788c ]ףr?-7eKx.hYF8WcuHxۢpm}mУ',mm4 3i=+F!mmΣ)Nm3evfɵ%jK$uuT,MSU͂g~tM|^֋k6_eSq[7faq rۏ/Z?e=My%
+ryְkD$h(Et lǮ藰⻍6flSK7]حR«Cr!'#2霫W`@~ nkX?{Q9HlCUo⅕>CKxȺ9Ɠ$3M=ZSrPÁ$<SuN^7pFQ!)mLHJq6e/k67Q`3J0'DQs1W,m-9PJ# 0\>?O㶢|
+2$2hœ͂zB | gg-'kumiU1D{h^ؚk5FMO+}|pAV.LG
+cpˉ'DH) 4}2s 1M[Z 'cpgdQg H[lCю 쿩wc<44Q&p,UӴԮAB$tz{k\/:i>;\~Q):NO1zp:}bF$:q:`ꬸP{6   1kc0^
+TC5 G:F%a!;L!0,P(IY!`\"_>dʆpKT\:s7UZӀ+1Q n΂{d&Ay2#!G2F`hFkhjblr Bjn1"Ώ'
+y& )pG}Cj.k!4;úp9O~XKNh(IgW,#T$C2ӱ4LaШ6;©d{4,_J}?b钋99ēPKwv3Wf:<+ۡ\$~GWFq89Y:
+-e-#^=qxWOTb
+l*0H#nxDc<oPjeP]̋U`
+ZvjO֔۽{I?>mW* o8p.g8 M 5Šwc_Ky,?Ňf?_|_~j? >>k4GQMҦ8
+A1=({tYqCT
+C
+]&&AyYeDNFD&A'WFbx S]rsĨ&M:v-AGpw]1!$ˏuW9:%E-+/MbpPv_+?=$z*;J\6ϳ0ܦ@i8!i
+endstream
+endobj
+3974 0 obj
+<< /Type /Page /Contents 3975 0 R /Resources 3973 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3784 0 R >>
endobj
3976 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 3974 0 R /XYZ 78.37 808.885 null ] >>
endobj
3977 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 768.832 null ] >>
endobj
3978 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 757.873 null ] >>
endobj
3979 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 746.914 null ] >>
endobj
3980 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 735.955 null ] >>
endobj
3981 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 724.996 null ] >>
endobj
3982 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 714.037 null ] >>
endobj
3983 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 703.078 null ] >>
endobj
3984 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 692.119 null ] >>
endobj
3985 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 663.228 null ] >>
endobj
3986 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 622.381 null ] >>
endobj
3987 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 611.422 null ] >>
endobj
3988 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 600.463 null ] >>
endobj
3989 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 589.504 null ] >>
endobj
3990 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 578.545 null ] >>
endobj
3991 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 567.586 null ] >>
endobj
3992 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 556.627 null ] >>
endobj
3993 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 545.669 null ] >>
endobj
3994 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 534.71 null ] >>
endobj
3995 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 523.751 null ] >>
endobj
3996 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 512.792 null ] >>
endobj
3997 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 501.833 null ] >>
endobj
3998 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 490.874 null ] >>
endobj
3999 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 479.915 null ] >>
endobj
4000 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 468.956 null ] >>
endobj
4001 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 457.997 null ] >>
endobj
4002 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 447.038 null ] >>
endobj
4003 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 436.08 null ] >>
endobj
4004 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 425.121 null ] >>
endobj
4005 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 414.162 null ] >>
endobj
4006 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 403.203 null ] >>
endobj
4007 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 392.244 null ] >>
endobj
4008 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 381.285 null ] >>
endobj
4009 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 370.326 null ] >>
endobj
4010 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 359.367 null ] >>
endobj
4011 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 348.408 null ] >>
endobj
4012 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 337.449 null ] >>
endobj
4013 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 326.49 null ] >>
endobj
4014 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 315.532 null ] >>
endobj
4015 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 304.573 null ] >>
endobj
4016 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 293.614 null ] >>
endobj
4017 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 282.655 null ] >>
endobj
4018 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 271.696 null ] >>
endobj
4019 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 260.737 null ] >>
endobj
4020 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 249.778 null ] >>
endobj
4021 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 238.819 null ] >>
endobj
4022 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 227.86 null ] >>
endobj
4023 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 136.204 null ] >>
endobj
4024 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 125.245 null ] >>
endobj
4025 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 114.286 null ] >>
endobj
4026 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 103.327 null ] >>
endobj
4027 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 92.368 null ] >>
endobj
4028 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 118.271 null ] >>
-endobj
-4029 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 3974 0 R /XYZ 81.077 81.41 null ] >>
endobj
-4030 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 96.354 null ] >>
+3973 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4031 0 obj
-<< /D [ 3973 0 R /XYZ 81.077 85.395 null ] >>
-endobj
-3972 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-4034 0 obj
-<< /Filter /FlateDecode /Length 1900 >>
+<< /Filter /FlateDecode /Length 1744 >>
stream
-xZ]o}ϯ})l\oQ~Zh
-y> ۲#,JrvE;e&'Kl: 9gf:+z$~^}zs$aV+7M4Kffj6[f?΅z;77:j-Lf:!܊F;ln EJ~ns܀R0bBcOm& aFz")Hš8v$tl/"KLQQ=R4M-/׊/Î}^kw}Tө&\kp!:`l}ߔu-ed
-SU/y ~x},&ۖW.Oq"mVp7*'4I#')P>бf[Uwlog7 B0{ b9/
-E% ;`!`=bxm;u~]3 3/G7V;lwgDM.>8%1ϊ/oo*M]xa83Jt s<MSA]ޮnBp3ZkN67b4%:<:: >*7 ˺$ZZ?O +>.J/SE׆We IqLq)3ED)4ř"D[k/sd.B[)b&]Ӹ(B[w4<$G!DW֛vtcU9GB%Ճdž|MNH_Q. )"A߰GtLvBpwTEO5՟~ RHg@27EU%R1c~<cv״ǦĮw)RE(Εq ѱ">J7grUj(SIF<~0kPz=4&} אF4 7G5pyrUtuP=Cέ4#8*\ \(-yFִg)O0qb_>/?v=9Bq/l?g;Ro$!4H\0 їp3Q>Z[ mKIALm@L|D'Զnküŏ˨n8WH/t2*N"絑d'm!K5LШ&?+ 5i@bPi@'vm\Zpچ|y` gߐ1 %7
-PK4T6B?nRbϤ@-:B O 1˓sæS3$UwEhe:e !P3:mv;}Qe,5TCGkiZ]5U5y_{{ͫ.:7z~::vpl@6ܐobH%N9fqƍwM^nt}ڻs =N?5Hs-'޸ؚak_3B6_Ds9W/6D@)E~"Pٷ96UC8Ss(^L$5#D[)/m-cAU.O|S\;Ba|aYߠ@ 5#4:dP{+TD9Bӻ-н+Be@&ק*o_Hvwk1.'n}=Í=({A3G+B'U|苶ll Jw1sM8J$%i2ZQw6
+xYnF+t
+$nd'9$AILX").jv˨q2X~Uj!Ft>j.~]\1Y&hvw&:b#ffd4#Tl3c,fg]h7i-lf~"F\*2!eNNbu\_'uxH}]&rC-#%ro#v6Y60bԛm4M1Yduo2ߜkpIQ8sBy洁
+k%Jo>B}`8n{w\+!+o9
+ZJhT_۞6B/sYzz$SDPI:0$BEQ1_kAİ4Cm3e̳:IJԜH^qDh#xV'fe56FA$Ƽ6s2NuC| \iU:k͕Y;q\CtCf}]oa[:/{lx?>2s~jj^?_pwri*ڡ&e1J"4~m#%!o|Q MC bGMgUOb)*N29b).ʲZEZg/JOXX:0nb_ErOp9msV({{݊N]AEdmiz{sT&K4I怃z4"t
+tG[*{ܿ*W= ᚖ0Ί$%TqGpuܨ 2G,g}bt*|r8[Ec]f\nodU䒍R:u :[eUOӧ(
+*&t.D :2Tȵ \vwGw.Uu4<kSd [#t Wo.[614
+G!D{ˋE5}Zx!D~c<z.],D{`%їS(8-dMǎn;n>6 ֋y:Yjc>ѓCDYAl(#b+
+#aDdHOLE|Y2L"CM"CHA 1[7KQc6Ѳ2PӰHnÛ0q\CsH,##ff<F#;Cރ*a>/ᵗ
endstream
endobj
+4030 0 obj
+<< /Type /Page /Contents 4031 0 R /Resources 4029 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3784 0 R >>
+endobj
+4032 0 obj
+<< /D [ 4030 0 R /XYZ 78.37 808.885 null ] >>
+endobj
4033 0 obj
-<< /Type /Page /Contents 4034 0 R /Resources 4032 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /D [ 4030 0 R /XYZ 81.077 768.832 null ] >>
+endobj
+4034 0 obj
+<< /D [ 4030 0 R /XYZ 81.077 757.873 null ] >>
endobj
4035 0 obj
-<< /D [ 4033 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 746.914 null ] >>
endobj
4036 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 735.955 null ] >>
endobj
4037 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 724.996 null ] >>
endobj
4038 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 714.037 null ] >>
endobj
4039 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 703.078 null ] >>
endobj
4040 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 692.119 null ] >>
endobj
4041 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 681.16 null ] >>
endobj
4042 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 670.202 null ] >>
endobj
4043 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 659.243 null ] >>
endobj
4044 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 648.284 null ] >>
endobj
4045 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 637.325 null ] >>
endobj
4046 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 629.355 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 626.366 null ] >>
endobj
4047 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 618.396 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 615.407 null ] >>
endobj
4048 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 607.437 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 604.448 null ] >>
endobj
4049 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 596.478 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 593.489 null ] >>
endobj
4050 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 585.519 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 582.53 null ] >>
endobj
4051 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 574.56 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 571.571 null ] >>
endobj
4052 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 563.601 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 560.613 null ] >>
endobj
4053 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 552.642 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 549.654 null ] >>
endobj
4054 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 538.695 null ] >>
endobj
4055 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 527.736 null ] >>
endobj
4056 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 516.777 null ] >>
endobj
4057 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 505.818 null ] >>
endobj
4058 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 464.971 null ] >>
endobj
4059 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 454.012 null ] >>
endobj
4060 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 443.053 null ] >>
endobj
4061 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 432.094 null ] >>
endobj
4062 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 436.08 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 421.136 null ] >>
endobj
4063 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 425.121 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 410.177 null ] >>
endobj
4064 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 414.162 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 399.218 null ] >>
endobj
4065 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 388.259 null ] >>
endobj
4066 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 359.367 null ] >>
endobj
4067 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 348.408 null ] >>
endobj
4068 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 337.449 null ] >>
endobj
4069 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 326.49 null ] >>
endobj
4070 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 315.532 null ] >>
endobj
4071 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 304.573 null ] >>
endobj
4072 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 293.614 null ] >>
endobj
4073 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 282.655 null ] >>
endobj
4074 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 271.696 null ] >>
endobj
4075 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 260.737 null ] >>
endobj
4076 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 249.778 null ] >>
endobj
4077 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 233.838 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 220.887 null ] >>
endobj
4078 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 222.879 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 209.928 null ] >>
endobj
4079 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 198.969 null ] >>
endobj
4080 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 188.01 null ] >>
endobj
4081 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 158.122 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 177.051 null ] >>
endobj
4082 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 147.163 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 166.092 null ] >>
endobj
4083 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 136.204 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 155.133 null ] >>
endobj
4084 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 125.245 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 144.174 null ] >>
endobj
4085 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 114.286 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 133.215 null ] >>
endobj
4086 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 103.327 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 122.256 null ] >>
endobj
4087 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 92.368 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 111.297 null ] >>
endobj
4088 0 obj
-<< /D [ 4033 0 R /XYZ 81.077 81.41 null ] >>
+<< /D [ 4030 0 R /XYZ 81.077 100.339 null ] >>
endobj
-4032 0 obj
+4029 0 obj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4091 0 obj
-<< /Filter /FlateDecode /Length 1713 >>
+<< /Filter /FlateDecode /Length 1907 >>
stream
-xZKoFWV7~dOzh
-(D
-e1;|hIJFv`"vvt3$ ~?ݵ#Ieng YM43#nWB:w~wڍ,qZ D8?0!U2I$%<YWYJ&eMQ()J&1 ڶpIm3t~jݳ?E./o[ͽid
-/YO"tCٮ$_۽,dNSf8'm ۖXэ?&',x
-8
-0F$p½m}mӸ|}(Ks;.|Vߵ]37r`k00ۿs\ai}f97*UwO&eFì*鯴O_5,1\n/z|I{.핺V٪l6]֯SUyY/%~h*'ۺ/uExow!rRk߮ιO/9+a踜wvUl/fEjsF3d5w-zC/=٭ FOn]py=+d[/pH@io{(q|ëRdU!Փ )N!êoVaq?_zp\q✎`"M0Ghp>Z#Jip"汛|ub<֔:_E9)iìq1j!ܜ*M|HZ/*>M^ee(Vge}o䢻LH:M`Dw~50WPbd
-(_3TZ|.BgmRXx&QaۖX sPy/̙F5/u>P]`pF: !'8[M'ƲXxB,b)N˲EZg_Iϫ:S43J >q&B=kg 1(!л]6ᄥb&T
-D谏ijr8H*\ ߯ei+\z(0̫i=\^ h'XE򪎓vN2bH-*b x^o;68j2s
+xZ]o}ϯp_noIy
+
+46/ Їӎhr`;et^QKd<p,'t=r_D"gO : hM2lro*dQ\0ֻ[]LrRh-DA4%xhdk%Ѷg;FgBU#eŤ
+־mtF?oj:gL3aa!tU AX pm_֋u{y/˛6eo).4T4^"Eym>r1]Wt删_7ۍcQ7yN0WDH&(P+mW-aIf\G2FeYΉ-Y`pb#2M饬ڗMGq"uh\WmɈEf[Dywnz)[ttvcƑٶ0X:N}>4fAZ/:pCsDp2@tʪY]Udvz Pt 7Ҵ.ugy w$hLLdg;F`!msxf)-IV5e8OAM~xsSv5U",S8h*Ie1qf?)F(:#0^OS9(;Q3X$<Rms=O(%[ HiOɟζ|ӷeJ}t8!aSrw0lvo2q#ۙP슌ь3(}sBW/Gg!$
+yKu 6զaaT (~[ZP”Lhub Rw׍>eW/kP
+w$h;i9:C632*x=G_!cD(bi1X5k'"c%O
endstream
endobj
4090 0 obj
-<< /Type /Page /Contents 4091 0 R /Resources 4089 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /Type /Page /Contents 4091 0 R /Resources 4089 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3784 0 R >>
endobj
4092 0 obj
<< /D [ 4090 0 R /XYZ 78.37 808.885 null ] >>
@@ -13016,2948 +13041,2989 @@ endobj
<< /D [ 4090 0 R /XYZ 81.077 757.873 null ] >>
endobj
4095 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 715.033 null ] >>
endobj
4096 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 704.075 null ] >>
endobj
4097 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 693.116 null ] >>
endobj
4098 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 682.157 null ] >>
endobj
4099 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 671.198 null ] >>
endobj
4100 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 660.239 null ] >>
endobj
4101 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 639.317 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 649.28 null ] >>
endobj
4102 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 628.358 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 638.321 null ] >>
endobj
4103 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 627.362 null ] >>
endobj
4104 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 606.441 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 616.403 null ] >>
endobj
4105 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 595.482 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 605.444 null ] >>
endobj
4106 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 584.523 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 594.486 null ] >>
endobj
4107 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 573.564 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 583.527 null ] >>
endobj
4108 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 562.605 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 572.568 null ] >>
endobj
4109 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 551.646 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 561.609 null ] >>
endobj
4110 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 540.687 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 550.65 null ] >>
endobj
4111 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 529.728 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 539.691 null ] >>
endobj
4112 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 518.769 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 528.732 null ] >>
endobj
4113 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 507.811 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 475.93 null ] >>
endobj
4114 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 496.852 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 464.971 null ] >>
endobj
4115 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 485.893 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 454.012 null ] >>
endobj
4116 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 474.934 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 443.053 null ] >>
endobj
4117 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 463.975 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 432.094 null ] >>
endobj
4118 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 453.016 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 421.136 null ] >>
endobj
4119 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 442.057 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 410.177 null ] >>
endobj
4120 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 431.098 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 399.218 null ] >>
endobj
4121 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 420.139 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 388.259 null ] >>
endobj
4122 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 377.3 null ] >>
endobj
4123 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 366.341 null ] >>
endobj
4124 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 355.382 null ] >>
endobj
4125 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 344.423 null ] >>
endobj
4126 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 333.464 null ] >>
endobj
4127 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 322.505 null ] >>
endobj
4128 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 311.547 null ] >>
endobj
4129 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 312.543 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 300.588 null ] >>
endobj
4130 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 301.584 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 289.629 null ] >>
endobj
4131 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 290.625 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 278.67 null ] >>
endobj
4132 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 279.666 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 267.711 null ] >>
endobj
4133 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 268.707 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 256.752 null ] >>
endobj
4134 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 257.748 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 245.793 null ] >>
endobj
4135 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 246.789 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 234.834 null ] >>
endobj
4136 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 235.83 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 223.875 null ] >>
endobj
4137 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 224.872 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 212.916 null ] >>
endobj
4138 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 213.913 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 201.957 null ] >>
endobj
4139 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 202.954 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 190.999 null ] >>
endobj
4140 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 180.04 null ] >>
endobj
4141 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 149.155 null ] >>
endobj
4142 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 138.197 null ] >>
endobj
4143 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 127.238 null ] >>
endobj
4144 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 116.279 null ] >>
endobj
4145 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 137.2 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 105.32 null ] >>
endobj
4146 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 126.241 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 94.361 null ] >>
endobj
4147 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 115.283 null ] >>
-endobj
-4148 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 104.324 null ] >>
-endobj
-4149 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 93.365 null ] >>
-endobj
-4150 0 obj
-<< /D [ 4090 0 R /XYZ 81.077 82.406 null ] >>
+<< /D [ 4090 0 R /XYZ 81.077 83.402 null ] >>
endobj
4089 0 obj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4153 0 obj
-<< /Filter /FlateDecode /Length 2230 >>
-stream
-xڭZKo8WXa%J2Lb9 a{!(lkZ<'ݘU"EvcfHdLgzC+zͻI&LA':cDYvEŷyG*%-SCɎ(a[Il.ÇN_M=c)nsd0`*"L?9^B-R¤N eDNv&>Wz_.C[bydua"1>:|"\)+_'[EGViDlqlƈzL6lH$2z0=\^wY:K•t!qJ1(\~kwljhuzzaWC3ϟhD˵lG?tE;ޡTg[p&.A;t3Br *=$ɂwNu*n(#)h9}}=A6LO{*XY bUaf梿ˆQb:+ܬ!X6Qޒ 㡿^q$" 5Gb<13OŦf WeRs_ 4U/ڋsiJ(D7Zx/f~8n%ՏtWۋK%T\q| (q:e:-' H8zVޮ-Wulӥ9D?| 0Dw+ەKkk<fH豀|$K?e]{M6֬\-cFmԼo$-~)&
-YY.,#C֬9.H\0axk4K2;݊~& !}Wv8lXe_tcYh5<_vX)h)_Ki5$ 4T<M!̹YjhF?ns|xrZ nvCo ]+> qWV宨EtGT4']s*ӘjXAqUxRϗ:DAX)袍~ %fSA Emsu9rRQc6CV
- $ icL3,<nTQz!2?0=Qei6
-{ۦ:pB6@sWݯ
-w~Vj4Q%@ߒŢC[s7bSQA %DF86:Wi5Y:Pigqx>aev2^8RA#_%ocD
-݄-0C_7'<߿2շ|4EP \mHbdNW8"(i"KM%<L1=o1=mc\rY@m绉FqVӏu%\#a;ehF2'zpiQaL #&
-Whʚ,56K9ԶI [/C^7roL<xِۆZgy,1$v\Z4㬵;,Dl]j}6/&'wuU^5a zEPZ?FAٜvj Ty?CyƧ?U@u\OR(c搶:AМ!mO DZ"8~,Sj.l*51-]nQ\, Ua/2!ƞ&DQ$Уt"i7T@jk4p&*c%*GQS0Z,)8l6 +KHjea?rPgۦ-4uWgVEFd7ڊޗaX/cAzdp_
+4150 0 obj
+<< /Filter /FlateDecode /Length 2081 >>
+stream
+xYKoWDF~?bv.raa L@%C
+I俧lF5l.nA?_I{#8_mL hfF3B5[Z
+z^%Nka` S:-يFy.m  ym>o?˦Fk$aRDey)jPݻVX7UuOyDZ L7}^e0s/!l|-aVF hlSE2lNp(c[p"i}/ڠM}wE>UNAͤ(tPq4DHua(Iп;Tš~oh#`3g <9k
+6m+d5'RD sW۬fпn7Z")h%#D׸EK"k\~IfSUwhU#\*Ē,Q.29h_ibuhIW[nsHg쀴C9x#3;&hlavm(NT(# ո3%kA,k8xߦ|բ'VF~5& Vh>HFj.vu;YˆUj.vƈr1Akt~ŚHF=x󞹅@p3qDj฿/7Beٍ! oز-57jm&} l|@-cW'/8ы-^A~ y?h["7SVHAe
+Ev#s^x8]zQ$ѩRpKOcQ%V92ޅCz7A-4:2(IП/0%~#ð܆/o]Peǚ +|l<}UFPx5# J}ў;G(xߌnތ/0nS0*.!I-_+·Uܩ;@p>9$@X8:]ff|{ha E0.|};iN-{8nzO]nc/$=TuTrYhP0f
+6\e8h}\~-=VMg;r;Cly^]H h
+;(<QC܅L?x?]I6lqOp#4>',Gh^<lf
+Ȥ̹t7QGyx n>@f_|>ui6徨=Et#B1S>N'>3JLt*~stp}?o
+<;0
+51k6stЦI:Xd>K9ZV [k(|)צJkO 3*u!՜5ad=BTG_hs1@MS9 ql|iF˼ӻ !
+
+F`Șx⇲NMBzZy[L_CU?|ρ[bJ|A)}^CG$veCs 5^OmSC|g6? a-Ul,CV~U\䊧 '-7㩓_hLo؆Ek3L1_hkeןլ7D+*'e%
endstream
endobj
+4149 0 obj
+<< /Type /Page /Contents 4150 0 R /Resources 4148 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3784 0 R >>
+endobj
+4151 0 obj
+<< /D [ 4149 0 R /XYZ 78.37 808.885 null ] >>
+endobj
4152 0 obj
-<< /Type /Page /Contents 4153 0 R /Resources 4151 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
+<< /D [ 4149 0 R /XYZ 81.077 768.832 null ] >>
+endobj
+4153 0 obj
+<< /D [ 4149 0 R /XYZ 81.077 757.873 null ] >>
endobj
4154 0 obj
-<< /D [ 4152 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 746.914 null ] >>
endobj
4155 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 735.955 null ] >>
endobj
4156 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 724.996 null ] >>
endobj
4157 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 714.037 null ] >>
endobj
4158 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 703.078 null ] >>
endobj
4159 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 692.119 null ] >>
endobj
4160 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 681.16 null ] >>
endobj
4161 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 670.202 null ] >>
endobj
4162 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 659.243 null ] >>
endobj
4163 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 641.393 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 648.284 null ] >>
endobj
4164 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 630.434 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 637.325 null ] >>
endobj
4165 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 619.475 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 626.366 null ] >>
endobj
4166 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 608.516 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 615.407 null ] >>
endobj
4167 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 567.669 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 604.448 null ] >>
endobj
4168 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 556.71 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 593.489 null ] >>
endobj
4169 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 545.751 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 582.53 null ] >>
endobj
4170 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 504.905 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 571.571 null ] >>
endobj
4171 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 493.946 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 560.613 null ] >>
endobj
4172 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 482.987 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 549.654 null ] >>
endobj
4173 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 442.14 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 538.695 null ] >>
endobj
4174 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 431.181 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 527.736 null ] >>
endobj
4175 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 420.222 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 477.009 null ] >>
endobj
4176 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 409.263 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 466.05 null ] >>
endobj
4177 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 398.304 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 455.091 null ] >>
endobj
4178 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 387.345 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 444.132 null ] >>
endobj
4179 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 376.386 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 403.286 null ] >>
endobj
4180 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 365.428 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 392.327 null ] >>
endobj
4181 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 354.469 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 381.368 null ] >>
endobj
4182 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 343.51 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 340.521 null ] >>
endobj
4183 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 332.551 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 329.562 null ] >>
endobj
4184 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 291.704 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 318.603 null ] >>
endobj
4185 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 280.745 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 277.756 null ] >>
endobj
4186 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 269.786 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 266.797 null ] >>
endobj
4187 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 258.827 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 255.839 null ] >>
endobj
4188 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 247.868 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 244.88 null ] >>
endobj
4189 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 236.91 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 233.921 null ] >>
endobj
4190 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 225.951 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 222.962 null ] >>
endobj
4191 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 214.992 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 212.003 null ] >>
endobj
4192 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 174.145 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 201.044 null ] >>
endobj
4193 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 163.186 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 190.085 null ] >>
endobj
4194 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 134.294 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 179.126 null ] >>
endobj
4195 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 123.335 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 168.167 null ] >>
endobj
4196 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 112.377 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 127.32 null ] >>
endobj
4197 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 101.418 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 116.362 null ] >>
endobj
4198 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 90.459 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 105.403 null ] >>
endobj
4199 0 obj
-<< /D [ 4152 0 R /XYZ 81.077 79.5 null ] >>
+<< /D [ 4149 0 R /XYZ 81.077 94.444 null ] >>
endobj
-4151 0 obj
+4200 0 obj
+<< /D [ 4149 0 R /XYZ 81.077 83.485 null ] >>
+endobj
+4148 0 obj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4202 0 obj
-<< /Filter /FlateDecode /Length 2155 >>
+4203 0 obj
+<< /Filter /FlateDecode /Length 2172 >>
stream
-xڭZKoFW2aL6I9G$Ȟ }fUJ3X_w͌~'QͿn}L4a7 n36K"xGЈvEDouz1Jg IH$>4 џc϶M[~m>wR}Uźvy)lU0[l%rVKO}m"%L
-Y^Yb"B_h<!,NL6Tp)@C4U>[UWkeQU͖ńsF8>v︾l]GSQ(RS2D;e#%@>tG҇) .DDV?mq{'va{mny<\ |n>9D97p] kD-NCW[wrQ+N8}m'"{xMni[g DH ZmQD$L&Lm`m}-|K|{8Ln큑RD*gbLG-%G2ٜ!{l!9ʭ4~ߜ5m[vZ=/$0g.@hL"a rځ~vDȎuYoZ6&_q[󐪬:0HHA Uúpn<!7Fxn5]^̏\j~[s[2쭳~{H|w>DQ؛wө뇄JRۣĖa]ە_n(|$9#1d!6s6MUdU b:z9{q}ÒjV.."'6Bm(̡Pb(\zcFy 砐ƏeU=֍^?~'\~l
-In<Ԗ*xA -)os㋷2$aWٽ*$t쒠-j:l\*m2S5+@Y?5|B3alRTkm^|MrE(86>ڲ$Aܽ$UI%g@~M`e@7֟Q+NgLZ q}Ѡ|3IAEDBn襤4 r]5l5i\ !@0)<G'4H̲,5&5Ô/]MBcu/ dOH]C\ z>z :m?4Gп;үE ˜A\R>݊IH
-.ku, ӝYuku a1 Oq:x<Fr+
-4^6I]"j*)4 łmP: %;@GN$4.>
-:
-Aџ^tk4D
+xZKoWxWh8|a iN.(tqs!hlV#K$)!)Qq|wHl3x%J~z13I҄ >[_1x,HY1B#63cFH|0)Q(@3!?5MʴmsD'S*x{SxQK=0W>/AL
+Haknl]-WYM-wY:K[I8%(qIl_'b^\؄|O5ͱ\[{۬5SN祖@6,갫ߟox2/axqcYU0 [v}ўZ6u׷e_6c2]Ij'kB5'={(MIDjOU6]/n51 02ko& dƗqИNS友  jW۩QmuybIhv-;pIm4 W'zP}'F蠥>gcV~_`oļJ-x2sڥ'Q>ZV/qP̪b/j4#m 'GY<fUBDQTnŢ>#ynzi})M:RlQL=YYI}.q||ɲQVm?rr c+XdGkJC϶M[~i>*
+D ۭREY"/&MYmTŎ±ї-6ǜcaF9G(kѢ"Np(]ȬlW]ᯗqn?3bDN 3>pcCW%'p z.{z!E1fh0Q `w:TV>k'M(1p}O-M5u'L4̄ӗf"EY56DH mSb!Xm_e&VXlGL!Tr
+r?v@J7I (&*arhPEM8Ԑ(1}·62l*뇳*̥2#ߛxAE;x>Pkv^m>
+X*&,ru !Qj^
+EU)kE #.)탽ҷ^iv8w;̈ko7ٸ7%}ٜ||T2i
+GE +Db,Ņ[OЯh/jJIQOymiS5mUaY]. pmxJ|y>3år(qb?6D2u\
+%$N&K}3D)P,[QHAS ݙ9tᓒtiP?]}
endstream
endobj
-4201 0 obj
-<< /Type /Page /Contents 4202 0 R /Resources 4200 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3783 0 R >>
-endobj
-4203 0 obj
-<< /D [ 4201 0 R /XYZ 78.37 808.885 null ] >>
+4202 0 obj
+<< /Type /Page /Contents 4203 0 R /Resources 4201 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 3784 0 R >>
endobj
4204 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4202 0 R /XYZ 78.37 808.885 null ] >>
endobj
4205 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 768.832 null ] >>
endobj
4206 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 757.873 null ] >>
endobj
4207 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 746.914 null ] >>
endobj
4208 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 707.379 null ] >>
endobj
4209 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 696.42 null ] >>
endobj
4210 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 668.84 null ] >>
endobj
4211 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 674.187 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 657.881 null ] >>
endobj
4212 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 663.228 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 646.922 null ] >>
endobj
4213 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 635.963 null ] >>
endobj
4214 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 625.004 null ] >>
endobj
4215 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 614.046 null ] >>
endobj
4216 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 589.504 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 603.087 null ] >>
endobj
4217 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 592.128 null ] >>
endobj
4218 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 581.169 null ] >>
endobj
4219 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 570.21 null ] >>
endobj
4220 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 497.848 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 559.251 null ] >>
endobj
4221 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 486.889 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 548.292 null ] >>
endobj
4222 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 475.93 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 537.333 null ] >>
endobj
4223 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 509.753 null ] >>
endobj
4224 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 498.794 null ] >>
endobj
4225 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 487.836 null ] >>
endobj
4226 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 476.877 null ] >>
endobj
4227 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 465.918 null ] >>
endobj
4228 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 426.383 null ] >>
endobj
4229 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 398.803 null ] >>
endobj
4230 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 387.844 null ] >>
endobj
4231 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 376.885 null ] >>
endobj
4232 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 337.35 null ] >>
endobj
4233 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 326.391 null ] >>
endobj
4234 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 315.432 null ] >>
endobj
4235 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 275.897 null ] >>
endobj
4236 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 264.938 null ] >>
endobj
4237 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 253.979 null ] >>
endobj
4238 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 243.021 null ] >>
endobj
4239 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 232.062 null ] >>
endobj
4240 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 221.103 null ] >>
endobj
4241 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 210.144 null ] >>
endobj
4242 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 196.976 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 199.185 null ] >>
endobj
4243 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 186.017 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 188.226 null ] >>
endobj
4244 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 177.267 null ] >>
endobj
4245 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 166.308 null ] >>
endobj
4246 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 155.349 null ] >>
endobj
4247 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 144.39 null ] >>
endobj
4248 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 133.431 null ] >>
endobj
4249 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 122.473 null ] >>
endobj
4250 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 111.514 null ] >>
endobj
4251 0 obj
-<< /D [ 4201 0 R /XYZ 81.077 80.413 null ] >>
+<< /D [ 4202 0 R /XYZ 81.077 100.555 null ] >>
endobj
-4200 0 obj
+4252 0 obj
+<< /D [ 4202 0 R /XYZ 81.077 89.596 null ] >>
+endobj
+4253 0 obj
+<< /D [ 4202 0 R /XYZ 81.077 78.637 null ] >>
+endobj
+4201 0 obj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4254 0 obj
-<< /Filter /FlateDecode /Length 1746 >>
+4256 0 obj
+<< /Filter /FlateDecode /Length 1657 >>
stream
-xڵYKo8W:OnhNȱ
--Dn,摂m8κjW'ˢ̟'Q VDx΀Hю~ t,Ӓp3Zub wC]T6mkq(gAmqڶ4p7 ;qmPL܌|QIBV+7{aLa˓51[h9AQg]X/ߦ|Z>woa L!:{ft9+O`[Cz.wy)q= GM2мJ,m"tEuՇs.ݖw#mWw EE֜.KQo~[д"Xؓq=6qY{?H
+xڵYIoFW2POf_t( ЃOBs(D
+$e'u 9JE7oޘngt/17silyqDьPfÅR9W1ޥesնOն7')ڻU;3x{=fc?EwkW>^\nZ~pdUUq\Uiyz~tQ~o(˗
+x;A/i7`-̄#
+^k&:GeR-CWի1AT[8FC4U. sSӨJxhE~ՌE6p&ݯWÓ]\%]L.Jƌ5m"'ϪxSKWerhx<ⴳX%0y>lL ~Z[ 6*<ʤuoMPyWϘpHb2J"E
+e
+Lh'V'ƈ*D.D%UD]$K<
+Ŕ! `tJDx b:z^;))꩔:9jcNHPC`N,BpW|u3To"U wቲY:AؠClFW|i9fb PpcTI9EpA#:F7ų*t&g("pT #ZqpoԤTY䐂XwJC^Ja侀
+c=TM+pxZ%E+NdG6:Xd~='i_'z%(fUhswS
+)11ɇ6 ,DS!皸pk1(g_S4dsxpXNWpʮk[zMsN9"Fb|n;
+~z"RkM!| D8 GءNi )Be}t(*50Mo_X7n/|(`8jDpIƢ2@z{\E'$8O&C
endstream
endobj
-4253 0 obj
-<< /Type /Page /Contents 4254 0 R /Resources 4252 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
-endobj
4255 0 obj
-<< /D [ 4253 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-4256 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 768.832 null ] >>
+<< /Type /Page /Contents 4256 0 R /Resources 4254 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4299 0 R >>
endobj
4257 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4255 0 R /XYZ 78.37 808.885 null ] >>
endobj
4258 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 742.929 null ] >>
endobj
4259 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 731.97 null ] >>
endobj
4260 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 721.011 null ] >>
endobj
4261 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 692.119 null ] >>
endobj
4262 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 666.565 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 681.16 null ] >>
endobj
4263 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 655.606 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 670.202 null ] >>
endobj
4264 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 644.647 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 659.243 null ] >>
endobj
4265 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 633.688 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 648.284 null ] >>
endobj
4266 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 622.729 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 637.325 null ] >>
endobj
4267 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 582.122 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 626.366 null ] >>
endobj
4268 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 571.163 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 615.407 null ] >>
endobj
4269 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 560.204 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 604.448 null ] >>
endobj
4270 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 510.86 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 593.489 null ] >>
endobj
4271 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 499.901 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 582.53 null ] >>
endobj
4272 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 488.942 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 571.571 null ] >>
endobj
4273 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 477.983 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 560.613 null ] >>
endobj
4274 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 467.024 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 511.878 null ] >>
endobj
4275 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 456.065 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 500.919 null ] >>
endobj
4276 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 445.106 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 489.961 null ] >>
endobj
4277 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 434.147 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 479.002 null ] >>
endobj
4278 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 423.188 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 468.043 null ] >>
endobj
4279 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 412.229 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 427.196 null ] >>
endobj
4280 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 401.271 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 416.237 null ] >>
endobj
4281 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 390.312 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 405.278 null ] >>
endobj
4282 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 374.611 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 354.551 null ] >>
endobj
4283 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 363.652 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 343.593 null ] >>
endobj
4284 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 352.693 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 332.634 null ] >>
endobj
4285 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 341.734 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 321.675 null ] >>
endobj
4286 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 330.775 null ] >>
-endobj
-57 0 obj
-<< /D [ 4253 0 R /XYZ 79.37 305.442 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 310.716 null ] >>
endobj
4287 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 237.8 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 299.757 null ] >>
endobj
4288 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 226.841 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 288.798 null ] >>
endobj
4289 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 215.882 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 277.839 null ] >>
endobj
4290 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 204.923 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 266.88 null ] >>
endobj
4291 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 193.964 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 255.921 null ] >>
endobj
4292 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 183.005 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 244.962 null ] >>
endobj
4293 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 172.046 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 234.003 null ] >>
endobj
4294 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 161.087 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 218.063 null ] >>
endobj
4295 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 150.128 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 207.104 null ] >>
endobj
4296 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 139.169 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 196.145 null ] >>
endobj
4297 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 128.211 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 185.187 null ] >>
endobj
4298 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 117.252 null ] >>
+<< /D [ 4255 0 R /XYZ 81.077 174.228 null ] >>
endobj
-4299 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 106.293 null ] >>
-endobj
-4300 0 obj
-<< /D [ 4253 0 R /XYZ 81.077 95.334 null ] >>
+57 0 obj
+<< /D [ 4255 0 R /XYZ 79.37 148.175 null ] >>
endobj
-4252 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
+4254 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F73 189 0 R /F69 183 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4304 0 obj
-<< /Filter /FlateDecode /Length 1894 >>
+4302 0 obj
+<< /Filter /FlateDecode /Length 1758 >>
stream
-xڽZo~_"/Nq኿%z@}/Ƶ@I%$' w(8^ˢif7)EY4"NjV>i>$)gŊ(gZQ):[mfsȫ~rI%$JS <0DPlˈЈ9
-gG\]K&R.McV,ʾͻTYӦHF{I̯;hxP]4h4<DmX81ζM cҹ
-"DmG0:γ"mEژv, j7ۛ-֮1uz9$2_uusH(*
-жo*(i[b9N{[oMoޅv4pH Qmiں3 2ۘԔ) EƠ'x
-P轨?L]-)ESP]\4:/%(I]gV(!屴 ;)o] ؙIi*"R@9o۷:Rv$tMf
-팀eu(Gўv|f>734iwn(g9yٶ0[SN°Q(3>s4ki;V@Ą@1k96/Ýg ,Յ\IFa.h/@ʿ_VLA/|WEeS^&6_WMfW V6?Eysu yAffQ?ob}Cd%s}$_ۦ:'('ZO/7}8噐,:KdD
-4+<ۺjͺ56|aKP%ަ׸\чv*<]C5Yxκf3j_(v$A{dQ/J$zou*fWdwPZik-g4sP_b`\=Go* m'38nw0x`0<j<o]s)m|s#%Q 7+]V 9G 1i X,l[ll1Yhߘ}C 0e` eg?g}Ӷ6yk:'CV zm L) +b'8~޶0>@j<Mo
-xGHܗF
+xڽZKoFWR[KܴqQ/Bzh
+6Q(#Çh/)<8;tp=wGtk}3=:=7|$R:`aFY" LL;cD$wzF'¨+F rY,㪾 O|gU?|no͊ HaV
+n!ڻ1O[.ϫm­DkmZP”OUI˯Ogk$G{3a-뛗 @r0\{\Žl(B斘Dx|?~"FfX!=T9]YY(η<[õzZK5kgנ1!((3C8BwG8H C~[nseᚲ^c8Do4f/i\pw~.lG";=g x]IҖP+!)L[=ʎ'0%ULbDYVXnmٞ߸Si~9@^0kOT|6fxݽn׬hW`L$A}~Wg7~
+x(#RPݧCpRFthqC~<=5dPX#aO *Ghl. jO&Qj{˦p!(_nܭr pjkYf__2&82.BUdy_EDJp}\{JCH}Nc
+Gv+ʥwMw:.:C_>p^٧iQ&Ƥy9p  SU.ٛ.:;غ]\h4Um]v_ndWoM^ ;Rs.n F}Wߌ *)GhpEh? *Uy U~
+%ǽ~if;~bU=g{Dw#9N
endstream
endobj
+4301 0 obj
+<< /Type /Page /Contents 4302 0 R /Resources 4300 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4299 0 R >>
+endobj
4303 0 obj
-<< /Type /Page /Contents 4304 0 R /Resources 4302 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+<< /D [ 4301 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+4304 0 obj
+<< /D [ 4301 0 R /XYZ 81.077 735.194 null ] >>
endobj
4305 0 obj
-<< /D [ 4303 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 724.235 null ] >>
endobj
4306 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 713.276 null ] >>
endobj
4307 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 702.317 null ] >>
endobj
4308 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 691.359 null ] >>
endobj
4309 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 680.4 null ] >>
endobj
4310 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 669.441 null ] >>
endobj
4311 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 658.482 null ] >>
endobj
4312 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 647.523 null ] >>
endobj
4313 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 636.564 null ] >>
endobj
4314 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 678.332 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 625.605 null ] >>
endobj
4315 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 662.713 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 614.646 null ] >>
endobj
4316 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 651.754 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 603.687 null ] >>
endobj
4317 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 640.795 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 592.728 null ] >>
endobj
4318 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 629.836 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 564.833 null ] >>
endobj
4319 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 618.877 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 553.874 null ] >>
endobj
4320 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 607.918 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 542.915 null ] >>
endobj
4321 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 596.959 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 531.956 null ] >>
endobj
4322 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 586 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 520.997 null ] >>
endobj
4323 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 575.041 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 510.039 null ] >>
endobj
4324 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 564.082 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 499.08 null ] >>
endobj
4325 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 553.124 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 488.121 null ] >>
endobj
4326 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 542.165 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 474.173 null ] >>
endobj
4327 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 531.206 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 458.233 null ] >>
endobj
4328 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 520.247 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 447.274 null ] >>
endobj
4329 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 509.288 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 436.315 null ] >>
endobj
4330 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 498.329 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 425.356 null ] >>
endobj
4331 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 459.441 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 414.397 null ] >>
endobj
4332 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 448.482 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 403.438 null ] >>
endobj
4333 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 437.523 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 392.479 null ] >>
endobj
4334 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 426.564 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 381.52 null ] >>
endobj
4335 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 415.605 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 370.562 null ] >>
endobj
4336 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 404.646 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 359.603 null ] >>
endobj
4337 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 393.687 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 348.644 null ] >>
endobj
4338 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 382.728 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 337.685 null ] >>
endobj
4339 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 371.77 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 326.726 null ] >>
endobj
4340 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 360.811 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 315.767 null ] >>
endobj
4341 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 349.852 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 304.808 null ] >>
endobj
4342 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 338.893 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 293.849 null ] >>
endobj
4343 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 327.934 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 253.999 null ] >>
endobj
4344 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 316.975 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 243.04 null ] >>
endobj
4345 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 306.016 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 232.081 null ] >>
endobj
4346 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 295.057 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 221.122 null ] >>
endobj
4347 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 258.001 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 210.163 null ] >>
endobj
4348 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 247.042 null ] >>
-endobj
-61 0 obj
-<< /D [ 4303 0 R /XYZ 79.37 223.137 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 199.204 null ] >>
endobj
4349 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 183.92 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 188.245 null ] >>
endobj
4350 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 172.961 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 177.286 null ] >>
endobj
4351 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 166.327 null ] >>
endobj
4352 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 155.369 null ] >>
endobj
4353 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 144.41 null ] >>
endobj
4354 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 133.451 null ] >>
endobj
4355 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 122.492 null ] >>
endobj
4356 0 obj
-<< /D [ 4303 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 4301 0 R /XYZ 81.077 111.533 null ] >>
endobj
-4302 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F72 187 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-4359 0 obj
-<< /Filter /FlateDecode /Length 1555 >>
-stream
-xZn7}WKR4 =%m
-Ϸ'?NO^1b$L":b#ffd4#Tt=0R?{K|׋7ڍ,qZ pDW/&_Zodjxl¯n$~IKE <jiR‡V+lIed+K9:xPmle=7ylMwκ\Es᯻n 2pFn/Ɠ79bg11 \ݚ(.R4}Tu;%s4Zvjl~lN ^ohUV{$B@'CSAEK_Zs"EdYPzL%Ba&RҸNxHR!EM˟źòmkiyz*ImקC!TceqNL|a(%LN<m3-dYsV幯"CJ "ҮQ~FM'U0Q&f(k24zӕU0esTyw7*[~`%ц2p|sv9_~X]748Aĸ~ 5Aqbed}+`/[2bmd}8/x$jmpSP3"_k*zc?h=޶8eV:BiVzն<`@Ig ḱ1"`Hxj#</&n va& 82zخ͢V!Wՠ6C*I8f$*3tR6Vr>DҟvXC}?H)W6…aˆUY@ʦ8w-شPf:O6u=
-Ilf _)Ъ
-' 3t̖p@ۋjB9hPB% {Α@uoU5N:v^56д6VHO*/L}]<%PZ3$c
-bCKX#('@3"E}ϖ⿪mBCٗ3CXU;~x }侣&X3fu}'
-~-}7k/So?P#5f46hWK3cA\TG^N u4],nxF3kի L5:ҵÍS3hdo'qʲ01p߸f5\*v-WSN }lY.+ z5*R0^2 Ἷ)p#e`|#A?8}F'<\W2=C(8R\-#!3" !e& c /,պkƦO(xa)</'u,RB7\,)qн
-endstream
+4357 0 obj
+<< /D [ 4301 0 R /XYZ 81.077 100.574 null ] >>
endobj
4358 0 obj
-<< /Type /Page /Contents 4359 0 R /Resources 4357 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+<< /D [ 4301 0 R /XYZ 81.077 89.615 null ] >>
endobj
-4360 0 obj
-<< /D [ 4358 0 R /XYZ 78.37 808.885 null ] >>
+4300 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F73 189 0 R /F69 183 0 R /F19 184 0 R /F23 660 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4361 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 768.832 null ] >>
+<< /Filter /FlateDecode /Length 1879 >>
+stream
+xڵZ[6~ϯb_<b`vۤupl!JrAKJ2M:I (}~<YMgxg+b&I%,
+a1zt׎tHpYlX=KVa%π}aC@b83E{\eFoΪy8PQ><^fM04`i\i<EGo W𵼂9"Ι{%8 1ڋvM_f%+Vo30 Qw @:$h/.UU"h/.$]
+0%cW+~!fWGq֮˖yOYWeUQc
+ <Į S_66LG1#+s $yaݠf)nJ^A )zlmM=ML4m`z>Cѭ]aMP%oG%)G7r#'! pa/a+A憻uk k +8 <V淶7\3$iZ)@I")wJ "
+&(xcc
+ <E!ׯp%hc4|n4eTl`/\͎}ʼ^Z#RVyaq0̈1/D!B)P/1:l.Wɤf}ga**Ȑ@
+F 6?Շy%9dD r@$hә[ZqPOHpջ(@R"]X#;W]5j}bu$rcEmTKf|.~mW@PDh`}_ >7'
+Vq4|nDm`skMO <ƠGs{HgX#C; LQiwi+FBs+!5<O@԰B^1PQ$G=vFg;vuZȥ͠!ni JZW+h76+2[o\XC9E
+1>P|Y!4;[M ;L*te`CgQ_>T! HNMޭ^J;f0wvՁ %A5Elm|AM67(`D`=lʸ f(5Sק667?:
+$f &;B8R?T1
+1'h5 sHA S"F1cUWf>
+i(r-`]şY$j4&iz4ɯTQVDcOr12j,GxsE
+endstream
+endobj
+4360 0 obj
+<< /Type /Page /Contents 4361 0 R /Resources 4359 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4299 0 R >>
endobj
4362 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4360 0 R /XYZ 78.37 808.885 null ] >>
endobj
4363 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 757.873 null ] >>
endobj
4364 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 746.914 null ] >>
+endobj
+61 0 obj
+<< /D [ 4360 0 R /XYZ 79.37 723.409 null ] >>
endobj
4365 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 684.193 null ] >>
endobj
4366 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 673.234 null ] >>
endobj
4367 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 633.864 null ] >>
endobj
4368 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 622.906 null ] >>
endobj
4369 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 611.947 null ] >>
endobj
4370 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 600.988 null ] >>
endobj
4371 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 590.029 null ] >>
endobj
4372 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 579.07 null ] >>
endobj
4373 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 568.111 null ] >>
endobj
4374 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 557.152 null ] >>
endobj
4375 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 546.193 null ] >>
endobj
4376 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 535.234 null ] >>
endobj
4377 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 524.275 null ] >>
endobj
4378 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 513.317 null ] >>
endobj
4379 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 502.358 null ] >>
endobj
4380 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 491.399 null ] >>
endobj
4381 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 480.44 null ] >>
endobj
4382 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 469.481 null ] >>
endobj
4383 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 458.522 null ] >>
endobj
4384 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 447.563 null ] >>
endobj
4385 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 436.604 null ] >>
endobj
4386 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 425.645 null ] >>
endobj
4387 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 414.686 null ] >>
endobj
4388 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 403.728 null ] >>
endobj
4389 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 392.769 null ] >>
endobj
4390 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 381.81 null ] >>
endobj
4391 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 437.076 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 370.851 null ] >>
endobj
4392 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 426.117 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 359.892 null ] >>
endobj
4393 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 415.158 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 348.933 null ] >>
endobj
4394 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 404.199 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 337.974 null ] >>
endobj
4395 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 393.24 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 327.015 null ] >>
endobj
4396 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 382.281 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 316.056 null ] >>
endobj
4397 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 371.322 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 305.097 null ] >>
endobj
4398 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 294.138 null ] >>
endobj
4399 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 332.468 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 283.18 null ] >>
endobj
4400 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 321.509 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 272.221 null ] >>
endobj
4401 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 310.55 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 261.262 null ] >>
endobj
4402 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 299.591 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 250.303 null ] >>
endobj
4403 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 288.632 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 236.596 null ] >>
endobj
4404 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 277.674 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 225.637 null ] >>
endobj
4405 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 266.715 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 214.678 null ] >>
endobj
4406 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 203.719 null ] >>
endobj
4407 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 244.797 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 192.76 null ] >>
endobj
4408 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 233.838 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 181.801 null ] >>
endobj
4409 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 222.879 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 170.842 null ] >>
endobj
4410 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 211.92 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 144.39 null ] >>
endobj
4411 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 200.961 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 133.431 null ] >>
endobj
4412 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 122.473 null ] >>
endobj
4413 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 111.514 null ] >>
endobj
4414 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 100.555 null ] >>
endobj
4415 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 89.596 null ] >>
endobj
4416 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 129.23 null ] >>
-endobj
-4417 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 4360 0 R /XYZ 81.077 78.637 null ] >>
endobj
-4418 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 107.312 null ] >>
+4359 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F70 185 0 R /F73 189 0 R /F69 183 0 R /F72 187 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4419 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 96.354 null ] >>
+<< /Filter /FlateDecode /Length 1998 >>
+stream
+xڵZ[o6~ϯ/bᝒv
+! ~T q`P(Q8ff2h~w-g73< O$O˳q&$<#D"ILI$v%w_GJɒ1PKCge?up~!?w=G_c'0"zv4v FEߛpq{я{EܩTYK(DA2F[*i:K,YÇ>e]l`ib:-C<D?䀚^NվOOTSoox
+İ$QV
+q2ܶ1A) +ЇWVgs_ԕ_S?uo?/oM)
+q<q_yBY5uvL.ɷ:>)F# q$@[bMe([Ghfbl2V! ,m]߄~ÀySeUHBx!yctAĦ07캪YD7"EiŅ
+sքs:[E ϐK0j(αBQ8hO~s_F2{|lHCGy
+/3#qVnMV&xUYnˍ Ps11:F4A`~#
+q:݉RcX0DkR.}O9OӴӱ&y9»h@Pxd@cϤh)UUVo~*8t{v3$Y96r^ eq\IJ:1Շⷪ;ʋ!C}qr9[I<.;"xʊ
+ΟuoHېfvݾ(\]e'Ճ^m ,ilBEdE8ʗb{"msyqצϖv#Wmk5yvk3n
+m׾>*meS@oQfHYK %S0!d\Sؾ]Y;&奟[7v~Jeb}7mxk{R}E#[=Zh yjn&r'1q5dMtp=KzON`#IIA<Ф 8*g1xpIVJ/$"dQ>qc n/ȔﲖbWN
+i3Q/
+endstream
endobj
-4420 0 obj
-<< /D [ 4358 0 R /XYZ 81.077 85.395 null ] >>
+4418 0 obj
+<< /Type /Page /Contents 4419 0 R /Resources 4417 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4299 0 R >>
endobj
-4357 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+4420 0 obj
+<< /D [ 4418 0 R /XYZ 78.37 808.885 null ] >>
endobj
-4423 0 obj
-<< /Filter /FlateDecode /Length 2619 >>
-stream
-xZo~߿}:pş ػ{!>t AX,^;CR8;/Lq8Ï3DY4]4ypçͨ \(6}GC48%<2!"s{RJۮhW<n[uSʦ6-K޶W'R* l1nBmSU͂Dz3Mf 2ͫKi>i~.輨ͯnk;EEpq@x#kc)6W릭pvb<<(em6Ns$NuSpp[{F0$JF<nʾqC.輩w:75Dž2buDQBhMwޮ,!*9d- HBF$fAnV*A>S.~U
-e] Hs.<- 8}`kL#Nv)
-=F)KFw 0,cIH:q.?(-LG,Du3 SY5SNtyy9DvBiHR _e_` #9 2'tA+@%RWk삅6,HRE* m{`qSy
-h45tw㹝E^70#  S;ݜ2-0JQJaLD0nU/lB.'5MQ>p"*y1Ůy(znI@Mei
- '0@` $܆U WBk8ˁICUz8DoMP\x%C dY!,M>_U.; 8ߡ
-"tl4(P>]ú~,PX:O
-,f$8v:<){0[.x9foXe]jċ"M6{G6QѴREnlXQ/2^Ra푇Mx"l ~cpҧ޳<K M}j6{kV~'cŞEչEcg|ɀxP?3r+I/Y%`mN!RԗDz
-p81(V-"3!x~_Bڡm<K1Y xi7 @J_tcG-&"і6
-!K{k٨F/\5#pWuhe1'Enj GuL@Ha{B LWT’E&A|IDXכ +|TK˓胭);xY+u|K_R@>6Kfapb=7ኛa7~pʿE[Da7~|֓7yaiSFTF$ԯI
-endstream
+4421 0 obj
+<< /D [ 4418 0 R /XYZ 81.077 768.832 null ] >>
endobj
4422 0 obj
-<< /Type /Page /Contents 4423 0 R /Resources 4421 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+<< /D [ 4418 0 R /XYZ 81.077 757.873 null ] >>
endobj
-4424 0 obj
-<< /D [ 4422 0 R /XYZ 78.37 808.885 null ] >>
+4423 0 obj
+<< /D [ 4418 0 R /XYZ 81.077 746.914 null ] >>
endobj
-65 0 obj
-<< /D [ 4422 0 R /XYZ 79.37 771.024 null ] >>
+4424 0 obj
+<< /D [ 4418 0 R /XYZ 81.077 735.955 null ] >>
endobj
4425 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 684.136 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 724.996 null ] >>
endobj
4426 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 673.177 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 714.037 null ] >>
endobj
4427 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 662.218 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 703.078 null ] >>
endobj
4428 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 651.259 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 675.183 null ] >>
endobj
4429 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 640.3 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 664.224 null ] >>
endobj
4430 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 629.341 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 653.265 null ] >>
endobj
4431 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 618.382 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 642.306 null ] >>
endobj
4432 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 607.423 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 631.347 null ] >>
endobj
4433 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 596.464 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 620.388 null ] >>
endobj
4434 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 585.506 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 609.429 null ] >>
endobj
4435 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 574.547 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 598.471 null ] >>
endobj
4436 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 563.588 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 587.512 null ] >>
+endobj
+65 0 obj
+<< /D [ 4418 0 R /XYZ 79.37 560.812 null ] >>
endobj
4437 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 552.629 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 470.537 null ] >>
endobj
4438 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 541.67 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 459.578 null ] >>
endobj
4439 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 530.711 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 448.619 null ] >>
endobj
4440 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 519.752 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 437.66 null ] >>
endobj
4441 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 508.793 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 426.701 null ] >>
endobj
4442 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 497.834 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 415.742 null ] >>
endobj
4443 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 486.875 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 404.783 null ] >>
endobj
4444 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 475.917 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 393.824 null ] >>
endobj
4445 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 464.958 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 382.865 null ] >>
endobj
4446 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 453.999 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 371.906 null ] >>
endobj
4447 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 443.04 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 360.948 null ] >>
endobj
4448 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 432.081 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 349.989 null ] >>
endobj
4449 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 421.122 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 339.03 null ] >>
endobj
4450 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 396.215 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 328.071 null ] >>
endobj
4451 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 385.256 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 317.112 null ] >>
endobj
4452 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 318.507 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 306.153 null ] >>
endobj
4453 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 307.548 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 295.194 null ] >>
endobj
4454 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 218.88 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 284.235 null ] >>
endobj
4455 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 207.921 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 273.276 null ] >>
endobj
4456 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 167.075 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 262.317 null ] >>
endobj
4457 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 156.116 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 251.359 null ] >>
endobj
4458 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 121.247 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 240.4 null ] >>
endobj
4459 0 obj
-<< /D [ 4422 0 R /XYZ 81.077 110.288 null ] >>
-endobj
-4421 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 4418 0 R /XYZ 81.077 229.441 null ] >>
endobj
-4462 0 obj
-<< /Filter /FlateDecode /Length 1735 >>
-stream
-xڵZnF+dCdu.( t,S
-TEN{z\٘9s_stɇ+;wwWonH,|rbD331n5=VwwnbZ1qJp1)zۤ|uzj,ӷok#8*J#?
-UZ[>=+pƭ;7ΈZkXw6wXpOF-7C0'B#[DG0
--z@t)9 ؈ay5 B9S9
-
-w⽍Q1+Y[_5sRH
-v~wP0ս;m7Z٦K~~jÃ]U 611y\yw30D%~1xX7:"/q!w߿ rtF7TiÃmpR:B>& UyC?dp9BV\YMw;zŢ]?kQFX-18c4h94=Ƣ"1BVܿ:PYOik#,AAzOS@%2\)Xn9.G>$~C:†JV8'H0gA@mqEƏm (PB%inPyz/鿄@o$ij8DeZ TFUL^lA2k-*"48
-3TPܧ}i )CAu%#CaDh9gDPQ/m9-c\pA gnu >i6%jp[c0ߗ@\FS4vh'g
-endstream
+4460 0 obj
+<< /D [ 4418 0 R /XYZ 81.077 218.482 null ] >>
endobj
4461 0 obj
-<< /Type /Page /Contents 4462 0 R /Resources 4460 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+<< /D [ 4418 0 R /XYZ 81.077 207.523 null ] >>
+endobj
+4462 0 obj
+<< /D [ 4418 0 R /XYZ 81.077 182.616 null ] >>
endobj
4463 0 obj
-<< /D [ 4461 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 171.657 null ] >>
endobj
4464 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 104.908 null ] >>
endobj
4465 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 757.873 null ] >>
-endobj
-4466 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4418 0 R /XYZ 81.077 93.949 null ] >>
endobj
-4467 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 735.955 null ] >>
+4417 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4468 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 724.996 null ] >>
+<< /Filter /FlateDecode /Length 2458 >>
+stream
+xZ[o~_a`.4Eg">t
+qD[r`{! ]G13%ȏ %:hx,e$\:c3afF3B5lgPTK}(Mk˺Z0bxr^M@ T!˽/]yL
+Xr3,⽝Tݦ\kA=6JMeu*4ϿO.Q1A1brFumwtLrN X0c]X4[\JKhz`*l594weنBO{*-en7u7y:0 ]7b*6=r746-õvtl]YYJgY4gWSJD>2!n~tMy^Uڐۣڐ-RI="v`B
+aSz()pEX
+]"vUsbWhQxmnۼťӶO@{`)0@ M)fO"N|^@=,_\e-p"hqwNac:Mw5I?$JEȻBw f66Vo?B/k~B>vU7M
+?.@z͡EsǤposüii48$:j/Q~AIY&xPff!?Bfi~̈SbDqa5g}u}T\hP\2Ubjϣ*(8  @hⷫ5[ۺ]}r>%h`˞/Mqf- x=Yp 6G [N(l7K(lyzrB"LΘ)!Egܝ;PcxJ41ƣ nOC@1*9y%wVb)HpߺB ɋNN<@!8k~{$ŦBCלFjcH1:&a E N KW#K*^T|zЗink-
+tOզQ_z_~z#=i15ʒE&o
+B4cJBr:Um G4cJO_HOA:T/ %$Z$9sń}N&ȕ_VSS AeckMwPڟ u'}+*J]u~W}x4
+KEZF=rw| VV+;).%DȰ[;ZP>3z w\ ep_
+~Z&C T?)]<hU8{͑z #Mx]w28}n'! ޟ0Ohmł?q&2`M+8dGx<:H.
+x*)']Ubk?_]8rwN
+[u+9
+1x:yW[W֜Ta#BjN\ zP.Tf|ILT۰4{禂XC&xs󌓌~J;BնM[5{9L~ؤ%Y:yrCI^դl\SBE}MZu#3B3V]Gm΄%lp6ɽyӜ㐬1=봰n
+qQIb
+@{,5
+/^\0 ɈMK"4<qzQs9F1S,>x*r/ UjRהE<d1}jqqLY;F}ǭolB1<}gHLzݯw=ӌ"ȗi6eU\]y8N% R:B''T_gN#nwYmZ<-z w,M!m:fIDg~
+PH(LHɳx{ʣ>
+endstream
+endobj
+4467 0 obj
+<< /Type /Page /Contents 4468 0 R /Resources 4466 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4299 0 R >>
endobj
4469 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4467 0 R /XYZ 78.37 808.885 null ] >>
endobj
4470 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 695.248 null ] >>
endobj
4471 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 684.289 null ] >>
endobj
4472 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 643.72 null ] >>
endobj
4473 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 632.762 null ] >>
endobj
4474 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 598.45 null ] >>
endobj
4475 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 587.491 null ] >>
endobj
4476 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 563.281 null ] >>
endobj
4477 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 552.322 null ] >>
endobj
4478 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 541.363 null ] >>
endobj
4479 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 530.404 null ] >>
endobj
4480 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 519.445 null ] >>
endobj
4481 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 508.486 null ] >>
endobj
4482 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 497.528 null ] >>
endobj
4483 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 486.569 null ] >>
endobj
4484 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 475.61 null ] >>
endobj
4485 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 464.651 null ] >>
endobj
4486 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 453.692 null ] >>
endobj
4487 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 442.733 null ] >>
endobj
4488 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 388.357 null ] >>
endobj
4489 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 377.398 null ] >>
endobj
4490 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 366.439 null ] >>
endobj
4491 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 355.48 null ] >>
endobj
4492 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 344.521 null ] >>
endobj
4493 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 333.562 null ] >>
endobj
4494 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 372.319 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 322.603 null ] >>
endobj
4495 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 337.449 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 311.644 null ] >>
endobj
4496 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 326.49 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 300.685 null ] >>
endobj
4497 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 315.532 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 289.726 null ] >>
endobj
4498 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 278.768 null ] >>
endobj
4499 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 267.809 null ] >>
endobj
4500 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 256.85 null ] >>
endobj
4501 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 245.891 null ] >>
endobj
4502 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 234.932 null ] >>
endobj
4503 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 223.973 null ] >>
endobj
4504 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 213.014 null ] >>
endobj
4505 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 202.055 null ] >>
endobj
4506 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 167.743 null ] >>
endobj
4507 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 133.431 null ] >>
endobj
4508 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 122.473 null ] >>
endobj
4509 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 111.514 null ] >>
endobj
4510 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 100.555 null ] >>
endobj
4511 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 89.596 null ] >>
endobj
4512 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 4467 0 R /XYZ 81.077 78.637 null ] >>
endobj
-4513 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 140.189 null ] >>
+4466 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4514 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 129.23 null ] >>
+4516 0 obj
+<< /Filter /FlateDecode /Length 2533 >>
+stream
+xڭZKoFWa%`O &I ! DʤCQ[&lI&ٚ9|VU_U
+wG$۫[pd4atq{wE% -$j$AX%~я4 L ÈJDt SM1R̄ҿƳTu}yZ *gwGd<@ghT#f6H@./viϒ*
+QRyP8,/ɻw4tnaTup;w.,҃q;{뛡e?/h6İQH1nnKUn>>Շn<e4H18 UJ8Dj :KqѬ8*xpx0{& Ce1I{(3\*_^s3O->FAJOpg׸酳
+I&lI [8*u` Ch2N BquQQ:P!G=]hOBPyO&P:߾ =}HlkBRz .Q%O m$wOٶ~.fYط!A c0m=jYһy_+CΒ"OʲPN_}{jM}))>gS]/v~.$2i10Mxu9?1 SC2jy-;WT-_V7!L
+Ky% Qy\Hw,6y2[s5
+`q~Q8CiYs<qHe+Hn؁:cVYW&0 魕dySֹJ:F:@GfgPz4˯HҐ Cg>6 nw Υ_EGs0`,:%" T0`CtjҹI<я؆#LRv22'k'y9;VuQ|>|]b4d_iev;Ll90
+$4 Ž}NEs
+E#
+؃1&[#MFn"?*9뺭B.l|ܧqI2>vqIr(=#.{R \@Ƣ~H{R3^H|;<Cmuϣaǫ_;eҼě^^\^-`7G3&q!F4B]^ر 7?lq%,*s>s%M)wQ j8BiUml6n^Ab`E~/BFJJ`Z683,zY
+endstream
endobj
4515 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 118.271 null ] >>
+<< /Type /Page /Contents 4516 0 R /Resources 4514 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4299 0 R /Annots 4565 0 R >>
endobj
-4516 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 107.312 null ] >>
+4565 0 obj
+[ 4513 0 R ]
+endobj
+4513 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 300.185 502.088 310.618 514.024 ]/A << /S /GoTo /D (Hfootnote.11) >> >>
endobj
4517 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 4515 0 R /XYZ 78.37 808.885 null ] >>
endobj
4518 0 obj
-<< /D [ 4461 0 R /XYZ 81.077 85.395 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 768.832 null ] >>
endobj
-4460 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+4519 0 obj
+<< /D [ 4515 0 R /XYZ 81.077 757.873 null ] >>
endobj
-4522 0 obj
-<< /Filter /FlateDecode /Length 2848 >>
-stream
-xڭZKs8Wj#mޏLea2b$"IoA>{ BF?
-p<`
-
-ND.|V8}
-Ei;WxОlC8
-jlŀmwi*wFp&ip*''X18u4zH4|&ͧs;n:\:{ZZ+5  i3cso4Yqo$qO#%=BfV54I).نO6=;qu_8MW ( >LVS{;!bM?W nPFSC
-@ vܽ7^ o=}V>1kp(oī_Fy<~"y~r
-cy(_m~_pw,˺|! ِox xg9a+Dݸ+vpô9Y#+k H,@ح]j7Tm|YiV
-endstream
+4520 0 obj
+<< /D [ 4515 0 R /XYZ 81.077 746.914 null ] >>
endobj
4521 0 obj
-<< /Type /Page /Contents 4522 0 R /Resources 4520 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R /Annots 4558 0 R >>
+<< /D [ 4515 0 R /XYZ 81.077 735.955 null ] >>
endobj
-4558 0 obj
-[ 4519 0 R ]
-endobj
-4519 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 300.185 699.348 310.618 711.284 ]/A << /S /GoTo /D (Hfootnote.11) >> >>
+4522 0 obj
+<< /D [ 4515 0 R /XYZ 81.077 724.996 null ] >>
endobj
4523 0 obj
-<< /D [ 4521 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 714.037 null ] >>
endobj
4524 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 703.078 null ] >>
endobj
4525 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 692.119 null ] >>
endobj
4526 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 681.16 null ] >>
endobj
4527 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 670.202 null ] >>
endobj
4528 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 659.243 null ] >>
endobj
4529 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 672.194 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 648.284 null ] >>
endobj
4530 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 661.235 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 637.325 null ] >>
endobj
4531 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 650.276 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 626.366 null ] >>
endobj
4532 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 639.317 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 615.407 null ] >>
+endobj
+4533 0 obj
+<< /D [ 4515 0 R /XYZ 81.077 604.448 null ] >>
endobj
4534 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 574.56 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 593.489 null ] >>
endobj
4535 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 563.601 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 582.53 null ] >>
endobj
4536 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 552.642 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 571.571 null ] >>
endobj
4537 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 541.684 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 560.613 null ] >>
endobj
4538 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 530.725 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 549.654 null ] >>
endobj
4539 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 514.784 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 538.695 null ] >>
endobj
4540 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 503.825 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 527.736 null ] >>
endobj
4541 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 492.867 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 474.934 null ] >>
endobj
4542 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 481.908 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 463.975 null ] >>
endobj
4543 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 470.949 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 453.016 null ] >>
endobj
4544 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 459.99 null ] >>
-endobj
-4545 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 405.195 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 442.057 null ] >>
endobj
4546 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 394.236 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 377.3 null ] >>
endobj
4547 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 383.278 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 366.341 null ] >>
endobj
4548 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 372.319 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 355.382 null ] >>
endobj
4549 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 344.423 null ] >>
endobj
4550 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 333.464 null ] >>
endobj
4551 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 317.524 null ] >>
endobj
4552 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 306.565 null ] >>
endobj
4553 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 287.636 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 295.606 null ] >>
endobj
4554 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 246.789 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 284.647 null ] >>
endobj
4555 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 182.032 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 273.688 null ] >>
endobj
4556 0 obj
-<< /D [ 4521 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 262.73 null ] >>
endobj
4557 0 obj
-<< /D [ 4521 0 R /XYZ 94.613 98.396 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 207.935 null ] >>
endobj
-4520 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F22 473 0 R /F20 186 0 R /F23 660 0 R /F27 4533 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+4558 0 obj
+<< /D [ 4515 0 R /XYZ 81.077 196.976 null ] >>
endobj
-4561 0 obj
-<< /Filter /FlateDecode /Length 2674 >>
-stream
-xڭZ[~_ᗢ6WQFSld@\[c +K^Iw#J/6E\`?Xߟ|S'Dr6Y>R0$TNɿ<bz_>|RDH)”$+rc6I?6.C6xU)z
-q
-d
-HF򶱥&<Үy4}>fmw%2z6*$С+:emC!a.`mh7
-
-Vk?Cޔ>#
-4Qe<C4Γ(!}4d&\؊/H =KsioV^u:ӎء$YM1#?$z.o7)9Ѽ4! #:x_,'\R'Mo,cy#谧6!k(m
-.m2BvLN0M?s7yf0
-<M DssŠ+MB&>| - EЈ;!xӸl#-}I9nl.
-+GYށUroӉt_..cu Y$Lv6eqK ݾ|ĔFDy_.ёxp<}G;ynhMP3Cx᳸{>[)8oX;%Ti@D޽T[p2\._D [3ꇾ!'#JH
-endstream
+4559 0 obj
+<< /D [ 4515 0 R /XYZ 81.077 186.017 null ] >>
endobj
4560 0 obj
-<< /Type /Page /Contents 4561 0 R /Resources 4559 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+<< /D [ 4515 0 R /XYZ 81.077 175.058 null ] >>
+endobj
+4561 0 obj
+<< /D [ 4515 0 R /XYZ 81.077 134.212 null ] >>
endobj
4562 0 obj
-<< /D [ 4560 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 123.253 null ] >>
endobj
4563 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4515 0 R /XYZ 81.077 112.294 null ] >>
endobj
4564 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4515 0 R /XYZ 94.613 82.107 null ] >>
endobj
-4565 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 746.914 null ] >>
+4514 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F22 473 0 R /F20 186 0 R /F23 660 0 R /F27 4545 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4566 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 704.075 null ] >>
+4568 0 obj
+<< /Filter /FlateDecode /Length 2542 >>
+stream
+xڝZ[o~_bb]R-YhuM!жl%$'ËdI3/E|<<<7O<HçpĄb <!X"II$ ’Lɿ,abş>}$F,1fsA#iw"9&mvUfetYvoL{: -O_I2IJ>$Āebf ngsQdͦjUQۺVffs Iڶ;,ps3nRtrH)~ )#qrU -E2NQ$>qnq-ƈg܌0v@
++NW:E,*@]aSQ٣+E1!DnM7UQX˭U?[$p#0ū.&:ޫr<gZgEhQckj7SgY٧e}UFqN}$μbPtSUfs tĭ׾5ז>/},}Hq R#~H\|Wz̋iV*BD"F;uP64 ۴ a
+_ݿb`ԟke{lZ Z>fkkl/mj\ўtNiu{./h.S:3败9ǝpTx`I,Yh=oǽ0e( A2&AjQ;5\nEEq!u2UyKXyg%!D=6mHEoRmN7_/ĝa>uy7!  Ŭ7?-`HFpu0!(~ٻCWܯڴƁk_PxsٜU#$!0Zg0: ᧔`tv֐ZCojuٟ+ a.Si3 #{<( ?rqp'lʄiǓFAMbDhq6z"!"cHxCV~=䐾iU}=`BBsV+C@QCJ?E
+S` #^M0 C:geV;NF{_&H!uٯ`7NG>+nl<$DRJ0R[5zM`az@r+řuAyIo˄=~z;-C&M Qk \VSnng\
+QW:m5.R[Wm^%q=F0#7o 5dܻy.
+BDPBPiPw柰K<j׌t%J]RHU?s'uW#;8:ћ !v.L "Őe5|#8=^9U||v"aG9quJȯ)QpDY̌FdjnznؚnSi#M웳o j/&ćDzv 엀8#oA-{{q֯S@.>xa'/o
+tW s[FG%u7zLsTCe+18u7m>wp؛eӨNqF`W6N#}!VIs6Syٚk~ƛ\x6-ڦ8B&Zݔ 7w8dX)ƣE^xk ]gJ)X ߈yƎ(\ЕNŇ
+q"
+endstream
endobj
4567 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 693.116 null ] >>
-endobj
-4568 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 682.157 null ] >>
+<< /Type /Page /Contents 4568 0 R /Resources 4566 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4299 0 R >>
endobj
4569 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 671.198 null ] >>
+<< /D [ 4567 0 R /XYZ 78.37 808.885 null ] >>
endobj
4570 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 660.239 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 768.832 null ] >>
endobj
4571 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 649.28 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 757.873 null ] >>
endobj
4572 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 638.321 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 717.026 null ] >>
endobj
4573 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 627.362 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 652.269 null ] >>
endobj
4574 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 616.403 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 599.467 null ] >>
endobj
4575 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 583.527 null ] >>
endobj
4576 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 572.568 null ] >>
endobj
4577 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 561.609 null ] >>
endobj
4578 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 518.769 null ] >>
endobj
4579 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 507.811 null ] >>
endobj
4580 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 496.852 null ] >>
endobj
4581 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 485.893 null ] >>
endobj
4582 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 528.732 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 474.934 null ] >>
endobj
4583 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 463.975 null ] >>
endobj
4584 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 453.016 null ] >>
endobj
4585 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 495.855 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 442.057 null ] >>
endobj
4586 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 431.098 null ] >>
endobj
4587 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 420.139 null ] >>
endobj
4588 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 409.18 null ] >>
endobj
4589 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 410.177 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 398.221 null ] >>
endobj
4590 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 387.263 null ] >>
endobj
4591 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 310.55 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 376.304 null ] >>
endobj
4592 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 299.591 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 365.345 null ] >>
endobj
4593 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 240.812 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 354.386 null ] >>
endobj
4594 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 229.853 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 343.427 null ] >>
endobj
4595 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 218.894 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 332.468 null ] >>
endobj
4596 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 207.935 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 321.509 null ] >>
endobj
4597 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 196.976 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 310.55 null ] >>
endobj
4598 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 138.197 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 299.591 null ] >>
endobj
4599 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 127.238 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 288.632 null ] >>
endobj
4600 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 116.279 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 277.674 null ] >>
endobj
4601 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 224.872 null ] >>
endobj
4602 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 94.361 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 184.025 null ] >>
endobj
4603 0 obj
-<< /D [ 4560 0 R /XYZ 81.077 83.402 null ] >>
+<< /D [ 4567 0 R /XYZ 81.077 125.245 null ] >>
endobj
-4559 0 obj
+4604 0 obj
+<< /D [ 4567 0 R /XYZ 81.077 114.286 null ] >>
+endobj
+4566 0 obj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F75 317 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4607 0 obj
-<< /Filter /FlateDecode /Length 2753 >>
+4608 0 obj
+<< /Filter /FlateDecode /Length 3052 >>
stream
-xڵZ[o~ϯ0u 7b:N 4E0d[IcKItԅ!M9<<WJtv?^I2l^x^$0gw &E3n*{Zo+;3*%̔&`zyl Y|-Ǯ۷]S,VX,'o(alkz:鴅%L6;62(n_myYZrCLVA<bbp y9% T-r}~*\ۼkϿWZTL5T$нRݢ)?B>H"xTIF#i}
-R6OrvsʷŢ~]T.3``)O~\]vKy,,ŕ.-`P!>Wnj3)XۼY=I.b.wyYȇw=C5UWQn7ƀjWl)3M#/W[s?8)dScbr/ ̳C5;q R_Op^ʀ EfY帥gώ+P,^T/kuoڷaa˻rYn`c/Sv }t "Bj.t=89R1Js
-(iÎ8v|"{<A4YQ2co8eFwMTdc"LJ:)<3>"v7mT] Q :.~
-f |;lz௜S&hi7a%݌$zÂeuuĘ *?a[o.'Ch85DOw]ѼpB::AgImp= _=$ճL
-Hә1g "'<w$}&;z8$d(d<`f#u>ǵNRsuI_Pff ,)Dj-H'hccdWr#&P* I+BOJivwUqy]mǨ a}~â޳"D;_ؖ.PJki;}:zʛ{<>!}kSE "~%
-ݦ^}<mL{dA?'-!0{ 1I>!
-rO8;RX
-rf /
-r]9
-pa_zv
+xڵZIs6P"W6bәI&9xjW!I( H5I
+HMzᄎ][Teյ"޸- ц큵c_ZvVm7Aa$9ȳЄe}赶x>57guǴ!Z!BIp-fX" ©ha5 }շ ̭IhaS4򰬪͢q+
+8\Ev2.eO.FT&ožĕ7Ձ#
+=,by[LYp,i, HXEV(K'DL"$A#!fڸ.Nl
+w=rC'+7l]"\ݻvN*
+>a(ʛ7so79رrMa ]x뺷͛=V1YDkzZU꼋e)2 ",$rL(¸iF_;Avx]ŧ.W<ϓq )5#ڰjH{D65d
+^UޚrkB Ё@)V|kW>6I1CPf#j"V , J"ɸVxK(s;wE\#
+0` b,EyɁǕ|
+CW@"C>ƒދ #ՄX\ϕK~ܶRnwGz؅gQuӆm:TS^=~..wjb{Vn *} B͛H3F{ }!FNlZGa
+7baƛbo;ѩY25/MԺ4#\$0 9~MbK#U$Rу|:F>uy+lc [[f1%u+/#RL,Me8>SFp<@/h54;Aą žKsEAux;EV**9sEtn7ZBJ!Em_ /l:\}XnW>D{_Io7&E4|?BoGV]v|zD1_eݽ/jdm_e:¼]b[t1G66OԻ:ߗݖ̺1U /(Z)tGhNgDf1$N YpLK`lV-{ܕIК7:V!cYG5?|Hd 훟5
endstream
endobj
-4606 0 obj
-<< /Type /Page /Contents 4607 0 R /Resources 4605 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R /Annots 4650 0 R >>
-endobj
-4650 0 obj
-[ 4604 0 R ]
+4607 0 obj
+<< /Type /Page /Contents 4608 0 R /Resources 4606 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4299 0 R /Annots 4643 0 R >>
endobj
-4604 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 434.917 577.501 445.35 589.438 ]/A << /S /GoTo /D (Hfootnote.12) >> >>
+4643 0 obj
+[ 4605 0 R ]
endobj
-4608 0 obj
-<< /D [ 4606 0 R /XYZ 78.37 808.885 null ] >>
+4605 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 434.917 367.592 445.35 379.529 ]/A << /S /GoTo /D (Hfootnote.12) >> >>
endobj
4609 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4607 0 R /XYZ 78.37 808.885 null ] >>
endobj
4610 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 730.974 null ] >>
endobj
4611 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 720.015 null ] >>
endobj
4612 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 709.056 null ] >>
endobj
4613 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 698.097 null ] >>
endobj
4614 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 687.138 null ] >>
endobj
4615 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 628.358 null ] >>
endobj
4616 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 617.4 null ] >>
endobj
4617 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 606.441 null ] >>
endobj
4618 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 595.482 null ] >>
endobj
4619 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 584.523 null ] >>
endobj
4620 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 573.564 null ] >>
endobj
4621 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 562.605 null ] >>
endobj
4622 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 615.049 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 551.646 null ] >>
endobj
4623 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 604.09 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 540.687 null ] >>
endobj
4624 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 538.918 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 529.728 null ] >>
endobj
4625 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 527.959 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 518.769 null ] >>
endobj
4626 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 466.359 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 507.811 null ] >>
endobj
4627 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 455.4 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 496.852 null ] >>
endobj
4628 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 345.978 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 485.893 null ] >>
endobj
4629 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 335.019 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 474.934 null ] >>
endobj
4630 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 324.06 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 463.975 null ] >>
endobj
4631 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 313.102 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 453.016 null ] >>
endobj
4632 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 302.143 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 442.057 null ] >>
endobj
4633 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 274.303 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 431.098 null ] >>
endobj
4634 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 263.344 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 406.192 null ] >>
endobj
4635 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 252.385 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 395.233 null ] >>
endobj
4636 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 241.426 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 328.483 null ] >>
endobj
4637 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 230.468 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 317.524 null ] >>
endobj
4638 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 219.509 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 252.767 null ] >>
endobj
4639 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 208.55 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 241.808 null ] >>
endobj
4640 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 197.591 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 129.23 null ] >>
endobj
4641 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 186.632 null ] >>
+<< /D [ 4607 0 R /XYZ 81.077 118.271 null ] >>
endobj
4642 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 175.673 null ] >>
+<< /D [ 4607 0 R /XYZ 94.613 88.682 null ] >>
endobj
-4643 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 164.714 null ] >>
+4606 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F22 473 0 R /F70 185 0 R /F76 318 0 R /F26 662 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4644 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 153.755 null ] >>
+4646 0 obj
+<< /Filter /FlateDecode /Length 2008 >>
+stream
+xڵZK6004G|Ja1$`чHh[YXNc{"Mp>$XM֓hEti/\\| iB9,V:E:IQ4ĊHb;s*ՏJ' ILYDbϔV֭mWWR2ٿ[g?f͚Uv]5/m_}ɈЈ%E~ymlw悔&SBi)%m L1$N /6zv9jf,ޕ4n0b5@
+nX=7>Ji‚;ʉ1hL&vݾAFAib` 4=XYWbzPw]
+wũ2~q
+3=w;FY
+D5MǦ:SeDxJc14TTL[V3?T$eeY
+:% plk\0 uJAm_o5C[fɡ\E*nWq*wYtdUYv~<? { uѰM?_3U meòڻeCSÖ4/yVM!W1ʙ=%a4,O$gMdyϦidݍ
+
+=ɽz]E bׁiE ݤl{FTBN{eP2@rvHa,jq@/-^X
+j
+S/mRVⷉ* Bh/*,H@hFur}RQЧq"t\c1=TCX}&`aKcn,!WX̆
+}t!2lƶxWӴ仝]^,7K|.Ww2TƧ-n`(㒓(Gg_qK} Ñ)Nh:H c v1^oZ5miwZi4A1o!9hG^W6;f[~ӫj2
+yAZ 
+o,|\XhϪ'u>2sc4F{F?QO|8q
+OF%2^G\ 3SD;1AX)@ Mo?5lNV*eͯ P9|+vu~ \lʸVb໺
+GeVSG+ ¡:Z&AQ_+P1!;>6?[;3|X5}4^־ CxmצHٖHg3~WUKbc9@tW> $XG!#ޛ
+endstream
endobj
4645 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 142.796 null ] >>
-endobj
-4646 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 131.837 null ] >>
+<< /Type /Page /Contents 4646 0 R /Resources 4644 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4299 0 R >>
endobj
4647 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 120.879 null ] >>
+<< /D [ 4645 0 R /XYZ 78.37 808.885 null ] >>
endobj
4648 0 obj
-<< /D [ 4606 0 R /XYZ 81.077 109.92 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 768.832 null ] >>
endobj
4649 0 obj
-<< /D [ 4606 0 R /XYZ 94.613 80.331 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 757.873 null ] >>
endobj
-4605 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F22 473 0 R /F70 185 0 R /F76 318 0 R /F26 662 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+4650 0 obj
+<< /D [ 4645 0 R /XYZ 81.077 746.914 null ] >>
endobj
-4653 0 obj
-<< /Filter /FlateDecode /Length 2097 >>
-stream
-xڵZK8W62p0a=Lڢڑ%R?AE"?~,K~zC_G2iz:c3afF3B5]of'"wdgyU6޺,yc]W嗼+l_`p: ٕ~ٖngCHF
-̳oޮW;lf)L2jϜFR A4̹IW$)JP>RN˶qQYes&IIkдZT 0mn]3
-Y vx] P)[]iVOJa:q(vâhm{$:ZU<í%
- ot_-־C2Q5$Жg΄"\PSBrf
-~r(L,eOL5h.
-SǓf~}f)"2XmXoŲ)U]Q/wce]4˻;5@U0NU0z*#X/OU77w~*(\>,mG
-j*|IMd2S4krO G_ψ4T{<7,Y5U̹Nz훖f3 FІŃnΉq bssÓ`.',vPvCbOגoWdMv@] i5wB=rI"aWO(zbSNjOis}P fb3Gh 'f4؜[$=;϶iKaM͢!Bƛ<p$=@|
-2шsC7vΈoШ *7
-D:8Pဩt9PJDx"fHf
-h*R 5b
-f#!@h -Cp1Tx_m;]{quԾ& ۯN|L1I*](=?tbW
-endstream
+4651 0 obj
+<< /D [ 4645 0 R /XYZ 81.077 718.123 null ] >>
endobj
4652 0 obj
-<< /Type /Page /Contents 4653 0 R /Resources 4651 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+<< /D [ 4645 0 R /XYZ 81.077 707.164 null ] >>
+endobj
+4653 0 obj
+<< /D [ 4645 0 R /XYZ 81.077 696.205 null ] >>
endobj
4654 0 obj
-<< /D [ 4652 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 685.247 null ] >>
endobj
4655 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 674.288 null ] >>
endobj
4656 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 663.329 null ] >>
endobj
4657 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 652.37 null ] >>
endobj
4658 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 641.411 null ] >>
endobj
4659 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 630.452 null ] >>
endobj
4660 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 619.493 null ] >>
endobj
4661 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 608.534 null ] >>
endobj
4662 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 597.575 null ] >>
endobj
4663 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 586.616 null ] >>
endobj
4664 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 602.456 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 575.658 null ] >>
endobj
4665 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 591.497 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 564.699 null ] >>
endobj
4666 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 580.538 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 553.74 null ] >>
endobj
4667 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 569.579 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 489.286 null ] >>
endobj
4668 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 558.62 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 478.327 null ] >>
endobj
4669 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 547.661 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 467.368 null ] >>
endobj
4670 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 536.702 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 456.409 null ] >>
endobj
4671 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 525.743 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 445.45 null ] >>
endobj
4672 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 514.784 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 434.491 null ] >>
endobj
4673 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 503.825 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 423.532 null ] >>
endobj
4674 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 492.867 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 412.573 null ] >>
endobj
4675 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 401.614 null ] >>
endobj
4676 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 360.869 null ] >>
endobj
4677 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 349.91 null ] >>
endobj
4678 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 338.951 null ] >>
endobj
4679 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 327.992 null ] >>
endobj
4680 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 317.033 null ] >>
endobj
4681 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 306.074 null ] >>
endobj
4682 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 295.115 null ] >>
endobj
4683 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 284.156 null ] >>
endobj
4684 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 273.197 null ] >>
endobj
4685 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 262.239 null ] >>
endobj
4686 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 251.28 null ] >>
endobj
4687 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 220.749 null ] >>
endobj
4688 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 209.79 null ] >>
endobj
4689 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 198.831 null ] >>
endobj
4690 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 253.763 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 187.872 null ] >>
endobj
4691 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 242.804 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 176.913 null ] >>
endobj
4692 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 122.473 null ] >>
endobj
4693 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 220.887 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 111.514 null ] >>
endobj
4694 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 209.928 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 100.555 null ] >>
endobj
4695 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 198.969 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 89.596 null ] >>
endobj
4696 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 188.01 null ] >>
+<< /D [ 4645 0 R /XYZ 81.077 78.637 null ] >>
endobj
-4697 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 177.051 null ] >>
-endobj
-4698 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 124.249 null ] >>
+4644 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F76 318 0 R /F20 186 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4699 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 113.29 null ] >>
+<< /Filter /FlateDecode /Length 1942 >>
+stream
+xڽZIo6WiAfRȭ- Ŗ䑕%Pc9z[ ?od=OGO_\*6h~uA <!-$j$AXvהcA.?VFFJ` V0L>.啠[n^)/O7b{:"%`(Cwք3n6# ю(]<fyѷOT߃n*7RS^jzEnM˒d*ATx%L.G 6DZ\aD}sQ)=#H=bÈ41<#
+Haψ1"GbDsĸh#]t#|F4=#!b`t=|s /B"RRę{Q3AE} $0FFH#cynH
+caĜψ126>ABYH}}KX Q1:BS-#*lKI.-6JOyST(>]&:KMufW jͱ.GsǫhQ4YUSQ'_G'YEu!<_? tJJ
+c+shdTגьO`dՅ ePCȁ2&Ȑb?O.ϊxQ.mgͼ܉<O3 ,th/
+B!YOֲPABuyq^Idiu\OpDشah'"͓t,M_yN7d}x=w5ۜ-wj G8"_AM
+7򉓁WT"'>=2y|aia0!聓&mf#_b>sDS[8iFBABd`]
+endstream
+endobj
+4698 0 obj
+<< /Type /Page /Contents 4699 0 R /Resources 4697 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4299 0 R >>
endobj
4700 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 4698 0 R /XYZ 78.37 808.885 null ] >>
endobj
4701 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 768.832 null ] >>
endobj
4702 0 obj
-<< /D [ 4652 0 R /XYZ 81.077 80.413 null ] >>
-endobj
-4651 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F78 556 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 4698 0 R /XYZ 81.077 757.873 null ] >>
endobj
-4705 0 obj
-<< /Filter /FlateDecode /Length 3903 >>
-stream
-x[o_!/6kڇ)WZR"qw9pwz@Np~?3$3>Ofkf/~!@[f9+bn=ƝݟmyU ř0wgJm^mmfWWW>nWHmp?t ZWrSw{Gū}ԺM@V~Z
-)!7mVPk2/l:i:e2^vILpfab> Ha|d=2m[Y׎tZ|)PE94cea_ers:3WV#nBtZ]_5돇o^zz3_7W29H>9rAUmMhM6]8؎C2IzL56"{y芆
-vy9|x(_;b{7BWNeI'nwf~8]_#k[,}ӅvMf{8V~<3s2 YS7vVg݃_tz؟xO0Y(}7r"9~mWdxM+w;= ,1/ol^ ׌4&SRne=Y: 2)n:F/N &H5
-ReHĎD}fJ=(=;Rô"SCсɜ=RI!#9d7V\W:DmiZE)WZOEs`͓۞vXYlE *o&5*Qۉ9n*vbx; ~,=̈\g3̘F&5(!*YaZduaZ-=>' &%:2lqZvQJ8J#Lg$t)Sʇ{ilzNFawwN-ws%_& r{84vi#$%%s<<G?vϒx?_y!bji܈fs$Hrb\<~r5a$MAa2thZ՗ qvW(/)/n&^>0m~'=ژ?a;͝]oooC_Kܻ;x6mGGfA>tOqlkZGk~d/Q$yK;lDcB3d3<j$kx^v^Z?+ZJ1+}êa~iY;%!~b3{vVbR]xm$DqSѾꂁ0ϋsU vCt™bloȣ#Q;7uD[խ6MɌY?݊5ZnjEeP#zm;3Ku'T,wgRҝlfRw*&RcDbMV%J=g H)IQ`i :fm`&E"TKc 
-6 j/5^^@YÔWmŒ1*-YFB7E1~[{9h֨M,/iϳƒ~d-ߎq\)]:z]Ai
-tUb!XQ+>F$8,q% 0b꧊5gw(F"ta)J'G}x
-NQ<!!I Q.1 &J=pA]]{TQ*>>$#xZ
-E d?fn*j%rt  p+a1h$G؀E GPNK7U>Q[` ^  œ$ZZ*:@ 8[\A Cvq)9cGO=
-Llb#E0tGtnQº!a='9$ڄzu/(Cp
-9UyBI*)9UBGO}
-tUb!XV#'W0"!!]#z"K@ ̂SZƵuiLf\7U:1[tZ=
-endstream
+4703 0 obj
+<< /D [ 4698 0 R /XYZ 81.077 746.914 null ] >>
endobj
4704 0 obj
-<< /Type /Page /Contents 4705 0 R /Resources 4703 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4301 0 R >>
+<< /D [ 4698 0 R /XYZ 81.077 735.955 null ] >>
+endobj
+4705 0 obj
+<< /D [ 4698 0 R /XYZ 81.077 724.996 null ] >>
endobj
4706 0 obj
-<< /D [ 4704 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 714.037 null ] >>
endobj
4707 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 703.078 null ] >>
endobj
4708 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 692.119 null ] >>
endobj
4709 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 681.16 null ] >>
endobj
4710 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 670.202 null ] >>
endobj
4711 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 659.243 null ] >>
endobj
4712 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 648.284 null ] >>
endobj
4713 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 637.325 null ] >>
endobj
4714 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 587.698 null ] >>
endobj
4715 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 576.739 null ] >>
endobj
4716 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 565.78 null ] >>
endobj
4717 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 629.355 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 554.821 null ] >>
endobj
4718 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 618.396 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 543.862 null ] >>
endobj
4719 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 607.437 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 532.903 null ] >>
endobj
4720 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 596.478 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 521.944 null ] >>
endobj
4721 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 585.519 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 510.985 null ] >>
endobj
4722 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 574.56 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 500.027 null ] >>
endobj
4723 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 489.068 null ] >>
endobj
4724 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 478.109 null ] >>
endobj
4725 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 467.15 null ] >>
endobj
4726 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 456.191 null ] >>
endobj
4727 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 445.232 null ] >>
endobj
4728 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 434.273 null ] >>
endobj
4729 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 394.485 null ] >>
endobj
4730 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 383.526 null ] >>
endobj
4731 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 372.567 null ] >>
endobj
4732 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 361.608 null ] >>
endobj
4733 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 350.649 null ] >>
endobj
4734 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 339.69 null ] >>
endobj
4735 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 299.902 null ] >>
endobj
4736 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 288.943 null ] >>
endobj
4737 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 277.984 null ] >>
endobj
4738 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 267.025 null ] >>
endobj
4739 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 256.066 null ] >>
endobj
4740 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 245.107 null ] >>
endobj
4741 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 234.148 null ] >>
endobj
4742 0 obj
-<< /D [ 4704 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 223.189 null ] >>
endobj
-69 0 obj
-<< /D [ 4704 0 R /XYZ 79.37 302.032 null ] >>
+4743 0 obj
+<< /D [ 4698 0 R /XYZ 81.077 212.23 null ] >>
endobj
-4703 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R /F76 318 0 R /F32 1809 0 R /F26 662 0 R /F23 660 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
+4744 0 obj
+<< /D [ 4698 0 R /XYZ 81.077 201.271 null ] >>
endobj
4745 0 obj
-<< /Filter /FlateDecode /Length 1956 >>
-stream
-xZ[o6~0)@.1  Ca Ŗdr.ߡHQآ[t}dJυ*ݫ77)$|vzE"HtJ$%⟻? 9&#CqqKVi}޼oꂦIkFʝ׵77TA)C,rX-J3$HˏB$ziGz|PnJ`ޖue?b֍b='*PM/=UlȾ{W7Z}[F>IE(>T&*2_KkKh K!>̇DL?(ؔy|(GtȞ!Vл,m"ERWSs}uFX?(3?ݛr+"QYNH"=C@``C,T c]}C=I^1) q<:xgۢdԣTs$H1i[2ޘIY-@wa?gzf9DmEqsDe
- yU<ηMB(W[QP=5]νE\U<^a)Qik#1ͩ~:& ET
-0Оd$z;_teH@LdyZ4H(K3U3z! MݽO%kRVAiI;@B4?2c̹+fhzUgFk!5pz7:XCHG<q КD͚~UW=x],JtNe=Wm~/RWNJ0"hٌ 2'{b(@5_.O"*;3p(\q>=p ͯTcV゙ MϮ+fyM)z/3c9OD|Q
-MOxT 3 D~OS DF
-(,Fy7bG $
-3}xyet**h4d 8}tl"TN6}je]4|7s( V$4ԅ^:1+v.&I.ziCSVkIs8=pd-D
-A.^h5&92T=IAL<?M/RTaDqTj#W
-endstream
-endobj
-4744 0 obj
-<< /Type /Page /Contents 4745 0 R /Resources 4743 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 4698 0 R /XYZ 81.077 190.312 null ] >>
endobj
4746 0 obj
-<< /D [ 4744 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 179.354 null ] >>
endobj
4747 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 628.358 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 168.395 null ] >>
endobj
4748 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 157.436 null ] >>
endobj
4749 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 586.515 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 146.477 null ] >>
endobj
4750 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 557.624 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 135.518 null ] >>
endobj
4751 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 546.665 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 124.559 null ] >>
endobj
4752 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 535.706 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 113.6 null ] >>
endobj
4753 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 524.747 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 102.641 null ] >>
endobj
4754 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 4698 0 R /XYZ 81.077 91.682 null ] >>
endobj
-4755 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 460.986 null ] >>
+69 0 obj
+<< /D [ 4698 0 R /XYZ 79.37 70.866 null ] >>
endobj
-4756 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 450.027 null ] >>
+4697 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4757 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 439.068 null ] >>
+<< /Filter /FlateDecode /Length 4021 >>
+stream
+x[m_! _thnN:H?0` K{:Er݋ K7 y\60c^_߽3}63igVFY>{w7۫{VƖ(_ǕZZ5_mW_z/~oW۴o^s?7¨#Xgc߂T|vn_] 7Oݢ[~9Q=WY hך&ۣ_m߶wݾkc6}Q(,Շb>y؉^Nrڀ{u6g׺=8}vmsupۢov~ۯ͇ 2ݯ4,ѵ9vk!мoq[ $V/L4bH}9v>&菍 xhV8J<qoJ+)#x`O3sHӳًYSw|vih%|=Si}M}y7q-k ky 6I[ZyTEPx/TUޟԋkefP#ND0:z|8Yf8?;>pz=)yO 9h)34GX>иO\~M 5FFd;(7^xR-T;hݥ[cTOZ(Peڸ9xH's~SO ;IU.Σ<yX<9lVXS 4K&,Ac,D FLEֵɂcHqkg`@A9=\Kv6$_G̀SoxMff@Hk4P;cL0H;^巵u'a߫gP;vҼΪ0hCi cI87tR͚oG\捕Lذf`n R @H@ug Zg` sEE]J͡bs,Est4,0!^Fo,3 H[2dX!PA PR,a@3g}o4  lN"0Ƅ"(azc"dR\q|e
+%"Dh +BбҬ8b`w!30
+" a Q9,8'VY++K()taMe!e#UZa#!,)sJdl, 6<PM;@YhHE T=V|c:b`:%L(
+ Q^z|:E# Y 2wF>fo4  lA)!r 9Erz\L8T:Q{AJ<bDB]{7XXQ0lZ
+N LhTwȤa.fT$"D h+6_^,bp)!ꅻBZ>m
++OpN8PpfeFF:2|Exl3QMޔ=lPx̓e#uyqxr: :OO+cr}7ZSY[6^v wބg/7ٻpRAȗX'6~xk7+d3o^ۣxH5~m OԃLnEI.ۅx}/wɯ6^:";v{hWBgdTڙ]ѿ\,&
+'Q!)R!EuM8|&T;;mG1q4 \ŧilWZ뇖;U]rpo'Fkӈ֮DSzH iM:SaE~G#7l439qoJ_%HX0R6,X Me;&
+xXw%lf8y-C>)BX>܇nUˤ@jnWi@3w,ܤOoioS1sX)#̏!&<\ !P΅<P#$|0UcOoU/O~z9bbԡVVύe=}yO_ۺɢ:@ Ý!'C-!r/JGꝑS'\XsTo:?7}z5:
+ *aNyH">31Gs{Cfޑbҁ:uI4ש(|x6/e*d:>:-N N88%/̡p|7IǗ:*"T<uap8ȳn%
+Y.HD1U6O&J12|e[{|xHeRm}<ޜT
+ODv9 Jo=sT
+wޠ ˵ѫJCzSb&
+B"@X/UÙ;sj nD2r Jڿ%X;V=O'kq9 3)P=;8szʓ|lnrnR 2tlw2/<]*@cm/Q\
+endstream
+endobj
+4756 0 obj
+<< /Type /Page /Contents 4757 0 R /Resources 4755 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4783 0 R >>
endobj
4758 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 428.109 null ] >>
+<< /D [ 4756 0 R /XYZ 78.37 808.885 null ] >>
endobj
4759 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 399.218 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 427.447 null ] >>
endobj
4760 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 388.259 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 416.488 null ] >>
endobj
4761 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 377.3 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 385.897 null ] >>
endobj
4762 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 366.341 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 357.2 null ] >>
endobj
4763 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 355.382 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 346.241 null ] >>
endobj
4764 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 344.423 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 335.282 null ] >>
endobj
4765 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 333.464 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 324.324 null ] >>
endobj
4766 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 322.505 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 271.717 null ] >>
endobj
4767 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 311.547 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 260.758 null ] >>
endobj
4768 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 300.588 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 249.799 null ] >>
endobj
4769 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 289.629 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 238.84 null ] >>
endobj
4770 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 278.67 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 227.881 null ] >>
endobj
4771 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 267.711 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 199.185 null ] >>
endobj
4772 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 256.752 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 188.226 null ] >>
endobj
4773 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 177.267 null ] >>
endobj
4774 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 166.308 null ] >>
endobj
4775 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 155.349 null ] >>
endobj
4776 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 144.39 null ] >>
endobj
4777 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 133.431 null ] >>
endobj
4778 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 122.473 null ] >>
endobj
4779 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 111.514 null ] >>
endobj
4780 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 100.555 null ] >>
endobj
4781 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 158.122 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 89.596 null ] >>
endobj
4782 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 147.163 null ] >>
-endobj
-4783 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 136.204 null ] >>
+<< /D [ 4756 0 R /XYZ 81.077 78.637 null ] >>
endobj
-4784 0 obj
-<< /D [ 4744 0 R /XYZ 81.077 107.312 null ] >>
-endobj
-4743 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F79 668 0 R /F19 184 0 R /F26 662 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+4755 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F19 184 0 R /F76 318 0 R /F32 1809 0 R /F26 662 0 R /F23 660 0 R /F20 186 0 R /F79 668 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4788 0 obj
-<< /Filter /FlateDecode /Length 1986 >>
-stream
-xڽY[۸~_a+;\/H tۇ<Ma(<-<I!)Q=d_Lw۹xp_cu#1 /V;xA J%Yd^j{X}튣cYRyIu7-FߟAb &*DN!/ӣ4 |%1SxYu}Tݻ\/|{2q&<ic .[S8K#-ɏu_ES}]2Ue2Prhl jnyO> ^غ^ƲɺwMGm z^ޓ
-gpსe&?
-1( snXۋ]}YSte)DOE;
-\ /zLh$Fq}x.Sbt8I]1:7 RA7M=A'lRD,ie&?7#5O8LH4641zǢ)"̓2k1i 4Ost2 V41:v5LE lPfޢaL3F#*fp0XO;9{W>OV䯝7ؿEC4sqD$4ѳƹDu<id+$K!T|$#r)Qʫy BŦ&|b
--fY&ogNNM$!ՅXe_mQl
-
-7/eSWO7`ɏV@u=3즓q?\+ˬLCOKVP2c`v8ܲ!c2,+|:|П=huwTj|O`nnZ4[F܌N& :9aR1*>9V4@BE h)eNΑ!ZJ8r7-1$eXh{)I҈1B!I4mw R:ć.H6H˴uN׭426)2 :]7H1Ht5 U4۷ zNpM !~34).<띃ĹkhwV~br#&4;6Sֶʶ<;?.%TMR֧  WTۤ2kr =Ivַ[DCTS&k\TurU*t& :b:8?5a]C&"NWT4zE%[ tBX=$ Vn5T<nfzS6=T׳OPVS70~ְ} ^U=OoLűr ܬ2sƾ bۺ˝{[i J{nkkhbk+~Pez&}8>}
-2g 5\pkVa
+4786 0 obj
+<< /Filter /FlateDecode /Length 1964 >>
+stream
+xڽY[۸~_ak; hhۇ<Ma(&-f"E 6yh9/sDtDrի7F,$,|bЉ.jYl>.Wlz%` %Kf(aO̷13;&7x}ۮW׊+`5<Z4^;Q&El-yT@wa34fsavևMwjڍRfebq랣[A| sTu-q{.G;[Zva +}?ȑJAMBEm%Je+M:C\9tm3=H GZs"EkaqKß|-K2+/<($TZQyEJB)/xvM:mgs ZMEPcLﯷkӊe:BwÖ~+;_`c=?mfwPݝh>}s܏۳>n<X[[l"6-eEeȻʱh0{)^
+YaŝOp|g]K=JYYBeKz
+4B.!ۢD@
+AhR>>~|I&A%|(\@f"%.}(|J\([c/bH"^ELXKJ x'\*㚣QhMxZΆ_P):G__!!IX5( :="hJ$hLpN M"*wXOn֌GpWm⯛7ؽMp C#j㜣g2Xcj#/&c[SyWQ;@u<uKmps_m43;yA1D &]IjřLh5Cz,,)؅:Zlۀ,mwM.T'ǞX9[F LBm]7g)ބ0S6T!ו_7 s>PtLMH՞`Yw?K@=;΍,?ﻘxߺd`2̥[l UM?@Bk M;YCsnL~G$,-%-
+}34uwu"R*v3=29hrH"_l;ʥ3+˗o]~SGy^كI}]{llZal~q M>wMF3,ahLﻂ8T/:M4rt
+Bк[hLٴ4
+4*FX5^-6ԢXJ)Pԧ>$חh9Z]LOit7*GL ۑ89;]јD[9}Ec7z<jiӝn
+x6cPjF8Qz~-*ў-#Zv
+
+B. 3l^R\*93Z
+?Wt
endstream
endobj
+4785 0 obj
+<< /Type /Page /Contents 4786 0 R /Resources 4784 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4783 0 R >>
+endobj
4787 0 obj
-<< /Type /Page /Contents 4788 0 R /Resources 4786 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 4785 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+4788 0 obj
+<< /D [ 4785 0 R /XYZ 81.077 768.832 null ] >>
endobj
4789 0 obj
-<< /D [ 4787 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 757.873 null ] >>
endobj
4790 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 746.914 null ] >>
endobj
4791 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 735.955 null ] >>
endobj
4792 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 724.996 null ] >>
endobj
4793 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 714.037 null ] >>
endobj
4794 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 703.078 null ] >>
endobj
4795 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 692.119 null ] >>
endobj
4796 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 681.16 null ] >>
endobj
4797 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 670.202 null ] >>
endobj
4798 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 659.243 null ] >>
endobj
4799 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 648.284 null ] >>
endobj
4800 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 637.325 null ] >>
endobj
4801 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 608.433 null ] >>
endobj
4802 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 579.542 null ] >>
endobj
4803 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 568.583 null ] >>
endobj
4804 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 557.624 null ] >>
endobj
4805 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 546.665 null ] >>
endobj
4806 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 505.818 null ] >>
endobj
4807 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 494.859 null ] >>
endobj
4808 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 483.9 null ] >>
endobj
4809 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 472.941 null ] >>
endobj
4810 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 461.982 null ] >>
endobj
4811 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 451.023 null ] >>
endobj
4812 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 440.065 null ] >>
endobj
4813 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 429.106 null ] >>
endobj
4814 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 418.147 null ] >>
endobj
4815 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 407.188 null ] >>
endobj
4816 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 396.229 null ] >>
endobj
4817 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 385.27 null ] >>
endobj
4818 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 374.311 null ] >>
endobj
4819 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 363.352 null ] >>
endobj
4820 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 352.393 null ] >>
endobj
4821 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 341.434 null ] >>
endobj
4822 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 330.476 null ] >>
endobj
4823 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 319.517 null ] >>
endobj
4824 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 308.558 null ] >>
endobj
4825 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 297.599 null ] >>
endobj
4826 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 286.64 null ] >>
endobj
4827 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 204.033 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 209.928 null ] >>
endobj
4828 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 193.074 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 198.969 null ] >>
endobj
4829 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 182.115 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 188.01 null ] >>
endobj
4830 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 171.156 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 177.051 null ] >>
endobj
4831 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 160.197 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 166.092 null ] >>
endobj
4832 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 149.238 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 155.133 null ] >>
endobj
4833 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 138.279 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 144.174 null ] >>
endobj
4834 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 127.32 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 133.215 null ] >>
endobj
4835 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 116.362 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 122.256 null ] >>
endobj
4836 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 105.403 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 111.297 null ] >>
endobj
4837 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 94.444 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 100.339 null ] >>
endobj
4838 0 obj
-<< /D [ 4787 0 R /XYZ 81.077 83.485 null ] >>
+<< /D [ 4785 0 R /XYZ 81.077 89.38 null ] >>
endobj
-4786 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F73 189 0 R /F69 183 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+4784 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F76 318 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4841 0 obj
-<< /Filter /FlateDecode /Length 1589 >>
+<< /Filter /FlateDecode /Length 1424 >>
stream
-xڽYMoFWPMCh #@,QSTH:qkw)R]r8BwgRdѻ+r܂lﻫ77XC9WDFtd(GZQ ?Ƃ2k֛eGR܄`ڠOdr'(vII]>.N<.)i4k_. P¼v:Lsa4<F㹙j8[ 51,eq_,7gB۫k?ܲtv/C0H\
-(G66v*:]Oae) SP/mMB
-d
-GI̥iƕJ5VJ j#9(OE#~nC+6:̫7iqh-= +XrI tNh-1\h0c0o#o'yY]bڀQ>#MF.sNh1
-YreHV:[`o0w-U % .dK-Njf=ԛ(' ' );Dw_@7G36q"4[YkO9!|a@kM-jGw-4K=D[rtQq:2iez΄"z;efjYfw@޻ Sg,vvv=>hoݻ,Ov7mQҲ-홱?Q,*7YY?,%s
-l: |9q?3t2u6۽Uh}:<9qovE[ڱ-akv>6ӲΖK.
-s]Kݘb~H6:)Ͷ>~ir_TIN<5Z.q#mk\htQnu8Ay/g%u[!x(n6
-I\|iskG5~]5s&B2WӴ%)aYs`&ɪݳ|YQG._R]^֭2hƞE}ӶIC2GκUj$X>=>
+xڽZMo#7 W%9+4EPYr7vv'g .WHN6N\<<")juNɇK
+Ml6 ZZ$(0mú1VM)
+`]QIx{b?V!d Ehw4tr%%8jfч8.T)P^%Q-]iL:i)-rrObH$űM!PR7b.dh,Q29iQ}:x)[FP:dels]@lJ`
+IdsyK[AR52˨h^5$eQZ$ldst3#WIɲC-O]ܼvdb4YR($El9X<}V4Ix܍d
+aOeH+o =.
+
+0pq>_H
endstream
endobj
4840 0 obj
-<< /Type /Page /Contents 4841 0 R /Resources 4839 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /Type /Page /Contents 4841 0 R /Resources 4839 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4783 0 R >>
endobj
4842 0 obj
<< /D [ 4840 0 R /XYZ 78.37 808.885 null ] >>
endobj
4843 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 742.929 null ] >>
endobj
4844 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 731.97 null ] >>
endobj
4845 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 721.011 null ] >>
endobj
4846 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 710.052 null ] >>
endobj
4847 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 699.093 null ] >>
endobj
4848 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 688.134 null ] >>
endobj
4849 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 677.175 null ] >>
endobj
4850 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 666.217 null ] >>
endobj
4851 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 655.258 null ] >>
endobj
4852 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 644.299 null ] >>
endobj
4853 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 633.34 null ] >>
endobj
4854 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 622.381 null ] >>
endobj
4855 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 611.422 null ] >>
endobj
4856 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 600.463 null ] >>
endobj
4857 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 589.504 null ] >>
endobj
4858 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 578.545 null ] >>
endobj
4859 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 567.586 null ] >>
endobj
4860 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 556.627 null ] >>
endobj
4861 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 545.669 null ] >>
endobj
4862 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 534.71 null ] >>
endobj
4863 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 523.751 null ] >>
endobj
4864 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 512.792 null ] >>
endobj
4865 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 501.833 null ] >>
endobj
4866 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 490.874 null ] >>
endobj
4867 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 479.915 null ] >>
endobj
4868 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 468.956 null ] >>
endobj
4869 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 457.997 null ] >>
endobj
4870 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 447.038 null ] >>
endobj
4871 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 436.08 null ] >>
endobj
4872 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 425.121 null ] >>
endobj
4873 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 414.162 null ] >>
endobj
4874 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 403.203 null ] >>
endobj
4875 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 392.244 null ] >>
endobj
4876 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 381.285 null ] >>
endobj
4877 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 370.326 null ] >>
endobj
4878 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 359.367 null ] >>
endobj
4879 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 348.408 null ] >>
endobj
4880 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 337.449 null ] >>
endobj
4881 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 326.49 null ] >>
endobj
4882 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 315.532 null ] >>
endobj
4883 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 304.573 null ] >>
endobj
4884 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 293.614 null ] >>
endobj
4885 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 282.655 null ] >>
endobj
4886 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 271.696 null ] >>
endobj
4887 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 260.737 null ] >>
endobj
4888 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 249.778 null ] >>
endobj
4889 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 238.819 null ] >>
endobj
4890 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 253.763 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 227.86 null ] >>
endobj
4891 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 242.804 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 216.901 null ] >>
endobj
4892 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 205.943 null ] >>
endobj
4893 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 220.887 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 194.984 null ] >>
endobj
4894 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 209.928 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 184.025 null ] >>
endobj
4895 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 198.969 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 173.066 null ] >>
endobj
4896 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 188.01 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 162.107 null ] >>
endobj
4897 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 177.051 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 151.148 null ] >>
endobj
4898 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 166.092 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 140.189 null ] >>
endobj
4899 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 125.245 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 129.23 null ] >>
endobj
4900 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 114.286 null ] >>
+<< /D [ 4840 0 R /XYZ 81.077 118.271 null ] >>
endobj
4901 0 obj
-<< /D [ 4840 0 R /XYZ 81.077 103.327 null ] >>
-endobj
-4839 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 4840 0 R /XYZ 81.077 107.312 null ] >>
endobj
-4904 0 obj
-<< /Filter /FlateDecode /Length 2730 >>
-stream
-xڽZ[o~ϯx]H{МuhB%:f":"셗%$ۙg
-/.wtg,H*xA*AL-$K-<Vn
-OAf! a</./OK$B!tOͨL$qJ&e1C<-8J4aIV
-S?~Bl $V~T ^ۮ>}ZE^v Fǻ{wyѿ#/ћap>z^yx}@$$N>zh|?W(fhfF{;ܕ737(ҝwn;mUl&@G[O&1x|lB"D `ưd/qp s"M<ʍUi<%pP㦬}yX0hI5Ac:_gKC}E5*)X<8#쇵/pG&bgzY[Ⴧ#9c^ոB'*nA
- LCY&.dḃ!ø4)vJ?%8 Rb
-4I[ȗUVAmxpuy%0j"A}JZ[l> j"aF>3svJl8)H*&c49#x /R L3mH<cLcD`TGqjS};y]*a#wk9wϛs ~$y'xFlu#Gq^q+Ayha{2Qp$+/Ճ5aR/XRAO}Xaz8.= ƺR>{\g{[Ovmyg;k)3LeBK4 ۀNc[
-ɦsw&sڻsn j0-/:h4'5^ֵq۲
-njvM]ߧƼ5l5*w6k77mJ%lħԶ
-,lW
-mgu<:`t@Q^@i=x8bt&z-Zg$1M>{ {7 gr=^~AHa1%6!dc7TS7B}5 ⶿kqg^q>T_웽 |!ˍ2;nNoiƶ} ʺwa66;Lu]yP)ӧ%ACC
-BFB!P=s.C!b
-ЪPP%9eSrDN}γ#OJ1|D
-s[?)CRwׁaθ}p3Ai oFS5M4R oOOH5GŇ$1T
-endstream
+4902 0 obj
+<< /D [ 4840 0 R /XYZ 81.077 96.354 null ] >>
endobj
4903 0 obj
-<< /Type /Page /Contents 4904 0 R /Resources 4902 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 4840 0 R /XYZ 81.077 85.395 null ] >>
endobj
-4905 0 obj
-<< /D [ 4903 0 R /XYZ 78.37 808.885 null ] >>
+4839 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
4906 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 754.884 null ] >>
+<< /Filter /FlateDecode /Length 2942 >>
+stream
+xڽZ_oܸϧ0b)H\@]0ڇXȻd-I؎ҊLRp8PvO}8$Mg׷o g,D3sf4#T뇳/$?zQg Iɐ3IDԟE.wM~yu~]ˢ,",?Cu,bɨ(a2dHCѼEJ=o{H:? OKd/<IԒ!:6& ySM=o}o yTAMۜ[)R;?,ĤD
+mR
+CCwRM(UY5e`IB8Ħ`q/ۼ.?%p*:HJIHw@,'/=gÞCBޕL
+)S1; /j$u3钸yT }/ИȐt:AZI+n疂׃+ n@}A{ 4
+AD`SdЩX%Zü.6gVR!zCR r{#~WR[ ʆ=~ .Fj#aAkDaLn|H X,$F[52\n
+}Y)`jKhY#<c$
+: =M*A5⦪ >ܭpTב> #Ѳxf巼^ERsi`Z!Ns5q@=c
+̔G螲^ C5d Ds>% t4 ^@.AW7~\8
+s z,D˫q=v-$I :tyPR % #4H:V7?hq
+xʐd~Xň4n["Z:w-=b_ЬEx k_bv*cnmQ>Am@رk0>ryF@^&28wFKCi.G [Ez:?D鱐fBMBS1b#ٰ(%؀oRب+ ёngGe KGͦj팝*:}8fWY䰰29l$btB EӁ:~wN] p8󷢼d 1Ԑ֧RbS.{
+SG/4}ȸ3N5D>1*
+O,ʏaA
+endstream
+endobj
+4905 0 obj
+<< /Type /Page /Contents 4906 0 R /Resources 4904 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4783 0 R >>
endobj
4907 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 4905 0 R /XYZ 78.37 808.885 null ] >>
endobj
4908 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 768.832 null ] >>
endobj
4909 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 757.873 null ] >>
endobj
4910 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 746.914 null ] >>
endobj
4911 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 735.955 null ] >>
endobj
4912 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 724.996 null ] >>
endobj
4913 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 714.037 null ] >>
endobj
4914 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 703.078 null ] >>
endobj
4915 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 662.231 null ] >>
endobj
4916 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 651.273 null ] >>
endobj
4917 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 640.314 null ] >>
endobj
4918 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 599.467 null ] >>
endobj
4919 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 588.508 null ] >>
endobj
4920 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 577.549 null ] >>
endobj
4921 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 566.59 null ] >>
endobj
4922 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 436.08 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 555.631 null ] >>
endobj
4923 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 425.121 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 544.672 null ] >>
endobj
4924 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 414.162 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 450.027 null ] >>
endobj
4925 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 373.315 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 439.068 null ] >>
endobj
4926 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 362.356 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 428.109 null ] >>
endobj
4927 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 351.397 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 417.151 null ] >>
endobj
4928 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 406.192 null ] >>
endobj
4929 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 395.233 null ] >>
endobj
4930 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 384.274 null ] >>
endobj
4931 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 313.539 null ] >>
endobj
4932 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 302.58 null ] >>
endobj
4933 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 291.621 null ] >>
endobj
4934 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 226.864 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 280.662 null ] >>
endobj
4935 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 215.905 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 269.703 null ] >>
endobj
4936 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 204.946 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 258.745 null ] >>
endobj
4937 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 217.898 null ] >>
endobj
4938 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 183.028 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 206.939 null ] >>
endobj
4939 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 172.07 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 195.98 null ] >>
endobj
4940 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 161.111 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 137.2 null ] >>
endobj
4941 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 150.152 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 126.241 null ] >>
endobj
4942 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 139.193 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 115.283 null ] >>
endobj
4943 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 128.234 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 104.324 null ] >>
endobj
4944 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 117.275 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 93.365 null ] >>
endobj
4945 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 106.316 null ] >>
-endobj
-4946 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 95.357 null ] >>
-endobj
-4947 0 obj
-<< /D [ 4903 0 R /XYZ 81.077 84.398 null ] >>
+<< /D [ 4905 0 R /XYZ 81.077 82.406 null ] >>
endobj
-4902 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+4904 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-4950 0 obj
-<< /Filter /FlateDecode /Length 1421 >>
+4948 0 obj
+<< /Filter /FlateDecode /Length 1406 >>
stream
-xڵZMoF W؋t'|(h[0GNڒ6I-yvkI/,O"G#9>0۽ŕÑtq"9‚9 BZMW_Zy8msŕ #/)t<1GAC Uet @cLm}m "@ͬ*gM󶸛ܬFYS*v9殙Kh}blxޢm2$8JJ9z됻rHyrs3i9zJ~W '6mBX!&&aPZ
-k08AdE>:+euzNب% +6𢋢Dw&DP<}8'A` 6Չ ' :OŦ^nC.} P8<Gf'J)W;(u]Vm6Vpn'C`Cx*CRT scAȍ 22lmpRR4'QU^HeUEʀMy|~|eS6.QA^S:8'DJ/Ci){R7>C;
-!=幏ْʩdgm#&2g-A
-yP;bO3܅IC$RDOZ:]Liwfk+ $]do0&$hVg,iae=5ɼ`9e#U7uQ]..ǎ-fk#% Enj>[>q+3LFǜԴ:r\U1+4lS?*ߞmv|K*T'%_~dB gKOeNS.P)֛ kjYn<d?&I@_>쥙=&@PqJ':DsۛFv2#ˈu"0Gq;/tSd?cќL&dSMj%
-<Q4-UYMPnKgAxiM|Yy5&Cw/t"DYM!.)n>Ɔ#"˪.n.ݱvrth8W/u{yS?I#뫋i_ۣ݅ʏ޾nx\CYq9Wꦚn
-,
-SF@م1˒mdu"ϻ33OBD^AC$)jcQ4֧ڮѦ=ۻC%!qtk6kTU◢ -SEٶc~=gX>O؟r $J)di4hs^}}J"U">T[g
+xڭZMo7W,KrS('B0䕳R$v`w5"Y⵴z# WtBʭ_/~^|XY" 
+蕇PJ{ք]}JcK_iWl:]ԃy{oM!M V~QwD?Ƥ" As>yK=W=D30fF[SZccW-j~atu5ZGӦW{h;Q4)LެeۧAbyX{*p" Jg}*)z97<Jt@rFE Oۧ^:{,(9GܴBgw6H2sSiKNI˔]Ι:5T$g QcCT.qHF |lG1;Yz3bh~@eH-;: sBZ>״rթ[
+n93IEw S+G'QtnVF+<KZfQ192'։>u7\=i:hSN6xPkJhy\P!! 9.&M?*,UEkDZhqTX*uJ<6W>[Ώ KX`VF:GWH#R10iY(∰T<(Sb4Y̦vmӠ*xӐ-*hxlY(л-4QDLj5wM@˅Z #+ttvʖnvŞTQ#,@Ģ@:uϲ~37}:"zX029Z@{/RLQrء#u> -:C%8QuHl}EW傐>Adܫz܁b˄(0G-
+`@;R!s--5k3r NŃ
+p1my"V m$ZZ,6%ԢS{N7뷤ԃMAF=GÅU='M[gf\m jZ{RyI/
+7ʼ@fb2G+:/;OeVl<oإ˽5۠~&*>d:hl༆^K}~SgǙ R~>s.qr7cM,X/R=r(g miPFo.X3ifƹ<>*3q"ZN_ /|
endstream
endobj
+4947 0 obj
+<< /Type /Page /Contents 4948 0 R /Resources 4946 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4783 0 R >>
+endobj
4949 0 obj
-<< /Type /Page /Contents 4950 0 R /Resources 4948 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 4947 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+4950 0 obj
+<< /D [ 4947 0 R /XYZ 81.077 768.832 null ] >>
endobj
4951 0 obj
-<< /D [ 4949 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 757.873 null ] >>
endobj
4952 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 746.914 null ] >>
endobj
4953 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 735.955 null ] >>
endobj
4954 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 724.996 null ] >>
endobj
4955 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 722.097 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 714.037 null ] >>
endobj
4956 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 711.138 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 703.078 null ] >>
endobj
4957 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 700.18 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 692.119 null ] >>
endobj
4958 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 689.221 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 681.16 null ] >>
endobj
4959 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 678.262 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 670.202 null ] >>
endobj
4960 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 667.303 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 659.243 null ] >>
endobj
4961 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 656.344 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 648.284 null ] >>
endobj
4962 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 645.385 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 637.325 null ] >>
endobj
4963 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 634.426 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 626.366 null ] >>
endobj
4964 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 623.467 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 615.407 null ] >>
endobj
4965 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 612.508 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 604.448 null ] >>
endobj
4966 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 601.549 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 593.489 null ] >>
endobj
4967 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 590.591 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 568.583 null ] >>
endobj
4968 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 579.632 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 557.624 null ] >>
endobj
4969 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 568.673 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 546.665 null ] >>
endobj
4970 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 557.714 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 535.706 null ] >>
endobj
4971 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 546.755 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 524.747 null ] >>
endobj
4972 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 535.796 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 513.788 null ] >>
endobj
4973 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 524.837 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 502.829 null ] >>
endobj
4974 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 513.878 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 491.87 null ] >>
endobj
4975 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 502.919 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 480.911 null ] >>
endobj
4976 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 491.96 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 469.953 null ] >>
endobj
4977 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 481.001 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 458.994 null ] >>
endobj
4978 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 470.043 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 448.035 null ] >>
endobj
4979 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 459.084 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 437.076 null ] >>
endobj
4980 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 448.125 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 426.117 null ] >>
endobj
4981 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 437.166 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 415.158 null ] >>
endobj
4982 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 426.207 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 404.199 null ] >>
endobj
4983 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 415.248 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 393.24 null ] >>
endobj
4984 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 404.289 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 382.281 null ] >>
endobj
4985 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 393.33 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 371.322 null ] >>
endobj
4986 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 382.371 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 360.363 null ] >>
endobj
4987 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 366.467 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 349.405 null ] >>
endobj
4988 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 355.508 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 338.446 null ] >>
endobj
4989 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 344.549 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 327.487 null ] >>
endobj
4990 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 333.59 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 316.528 null ] >>
endobj
4991 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 322.632 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 305.569 null ] >>
endobj
4992 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 311.673 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 294.61 null ] >>
endobj
4993 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 300.714 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 283.651 null ] >>
endobj
4994 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 289.755 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 272.692 null ] >>
endobj
4995 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 278.796 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 261.733 null ] >>
endobj
4996 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 267.837 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 250.774 null ] >>
endobj
4997 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 256.878 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 239.816 null ] >>
endobj
4998 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 245.919 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 228.857 null ] >>
endobj
4999 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 234.96 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 212.916 null ] >>
endobj
5000 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 224.001 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 201.957 null ] >>
endobj
5001 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 213.043 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 190.999 null ] >>
endobj
5002 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 182.212 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 180.04 null ] >>
endobj
5003 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 171.253 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 169.081 null ] >>
endobj
5004 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 160.295 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 158.122 null ] >>
endobj
5005 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 149.336 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 147.163 null ] >>
endobj
5006 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 138.377 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 136.204 null ] >>
endobj
5007 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 127.418 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 125.245 null ] >>
endobj
5008 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 116.459 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 114.286 null ] >>
endobj
5009 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 103.327 null ] >>
endobj
5010 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 92.368 null ] >>
endobj
5011 0 obj
-<< /D [ 4949 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 4947 0 R /XYZ 81.077 81.41 null ] >>
endobj
-4948 0 obj
+4946 0 obj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5014 0 obj
-<< /Filter /FlateDecode /Length 2070 >>
-stream
-xڭZMo6W؋n[2P (,ZAzh
-ADJrlޡ(Q󱦷H hr7&΢ኸ~Z]\I:a(1% Ch'@ˉEO_SFՎuq%I!h1e6ڦyY䥚e9;w/2]uӦu.NӭmfE#,[++!ǭ3<7MfM;A^yhmeT=M;_.ɐY282 c꣟m\{lGLU>Mù|_v_#[KDVaVp Ds1I죵E
-,%#h$-y! 裟s"fĮ+[ץd2Y.IІ`mUIί7t&(b<¬/L7|xS 1bҪ;AA7l՝Em澸$̅QPe8;N\ٲ4+
-+sTEјjm:b)ZjmgDN#D<*+OWWQxRG_50F$~8 B<jUrsBڻ~Ó +9 A<H{A.KVTј|]ߖF>R Ga+vюJZp$QZdimInߏ1le9C1%üEo2(6GZlC#%{eYh%es7es<uroz7ZVCcV6*6=Vת^>1ZnJkb^d\~nd D"<F4;Bb̬^ Qc\ysei@նͫ ,PlZD%U鶮Zlj~-vUgU6c:$z>EH 9 t"b;7 Q*l7ٿ~+9Q4<Xakt2\I*%S+e",9pAtax! Rjjj@f %a&4nkW<Y]$4n>%THΈ>̴@~{wje0rWVtyxT1^:3lK^ޙj3 f2u}5MD"np?֠i,铔]ۗnw:jOL? ծm:j5`VN]M=TqS.9=?,Sѡ^BzrL>TVzKL{uH%0:.zA澪79#$p‰&agک ,2;3>U?91wG(w?g1$PdFDgG :+Fu~_fuТ;VZpZ6z^$zQ3[#{˃IaL;^ɴ >tX
+<< /Filter /FlateDecode /Length 2115 >>
+stream
+xZKo8W苍0|? 4,ibbӉm#yL}IQH' 0H"UWUtv'_̾_8dBb} 8AGb"8b;f[uqD9!Q(I @qkb4F/(
+<;'L=4l\[{Ro6{nWm۲G}' ebQ| XNW űWMdc$8 *FCm;弼.sY׳./Ǭ(7C6zR
+H.4KBs\k#Vmm`ۮ*v^:<q!rnkFeFϯ<Wֺǥ
+,$3I4g{DsK,PYZ 6ޙ)JsCEݴY]=dhnmmmk` K ::d"S3X4|HFP@ٸ<)?нw/Ee}[Y?}B/#qLDBt;0 њAD.]U' C`b#C
+L?`sr׋4BtΛA
+pGi;"B 1i
+сXIMD0<T 0fF$y
+ٝE}LK4՟T6ɪ22KJB"QUARʭ(ёx d09+BR|s0m{'ZS}eMnKǤ4CznB Ę
+!:yB@H"1Tl$w/,Rs s4m`re_z/^VCc^,6=ת^}juZ-ô|;Ý~ert3k#U@A{#;\M+`P:m]p)5FM\(()
+H@јEoܗELt.& kY޻+n9g}QWeNJr Vuk7ve5o\7s7>֘lom_ۨyI<SsEW)Vb 0tV;:9ݏSɄ)hiZ
+ٍ-;dL@!TIUe;%q _aYN4qB]ռ\\ϩ2B(eMGZ +v弻1>UH'=G(_9g&IG0-Ev\mnC)\94SewӞ_òRNXYy˅kra#|`1i
+vbn8ç^>`0_ۗR+<wpEX\NkG
+6n`kNEn[/HB.^SS$c슝r]osN}E1Pw&cfm#'Iz 5C9(i_8l$ Ӿ<2#X13 diW6%H맦>(F xث#9ՒI>>nk틕>#k7/^O')w'Ri2p)S2uZ_]1*Y SHTڝVN:$?ϩ
endstream
endobj
5013 0 obj
-<< /Type /Page /Contents 5014 0 R /Resources 5012 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /Type /Page /Contents 5014 0 R /Resources 5012 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4783 0 R >>
endobj
5015 0 obj
<< /D [ 5013 0 R /XYZ 78.37 808.885 null ] >>
@@ -15969,1533 +16035,1537 @@ endobj
<< /D [ 5013 0 R /XYZ 81.077 757.873 null ] >>
endobj
5018 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 728.598 null ] >>
endobj
5019 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 717.639 null ] >>
endobj
5020 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 706.68 null ] >>
endobj
5021 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 695.721 null ] >>
endobj
5022 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 684.762 null ] >>
endobj
5023 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 673.803 null ] >>
endobj
5024 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 662.844 null ] >>
endobj
5025 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 647.977 null ] >>
endobj
5026 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 637.018 null ] >>
endobj
5027 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 626.059 null ] >>
endobj
5028 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 615.1 null ] >>
endobj
5029 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 606.441 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 604.141 null ] >>
endobj
5030 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 595.482 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 593.183 null ] >>
endobj
5031 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 584.523 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 582.224 null ] >>
endobj
5032 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 573.564 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 571.265 null ] >>
endobj
5033 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 562.605 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 560.306 null ] >>
endobj
5034 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 551.646 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 549.347 null ] >>
endobj
5035 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 490.957 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 538.388 null ] >>
endobj
5036 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 479.998 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 527.429 null ] >>
endobj
5037 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 469.039 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 516.47 null ] >>
endobj
5038 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 458.08 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 505.511 null ] >>
endobj
5039 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 447.121 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 494.552 null ] >>
endobj
5040 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 436.162 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 465.277 null ] >>
endobj
5041 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 395.315 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 454.319 null ] >>
endobj
5042 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 384.357 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 443.36 null ] >>
endobj
5043 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 373.398 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 432.401 null ] >>
endobj
5044 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 362.439 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 421.442 null ] >>
endobj
5045 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 351.48 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 410.483 null ] >>
endobj
5046 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 310.633 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 399.524 null ] >>
endobj
5047 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 299.674 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 344.486 null ] >>
endobj
5048 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 288.715 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 333.527 null ] >>
endobj
5049 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 277.756 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 322.568 null ] >>
endobj
5050 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 266.797 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 311.61 null ] >>
endobj
5051 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 255.839 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 300.651 null ] >>
endobj
5052 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 244.88 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 289.692 null ] >>
endobj
5053 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 233.921 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 249.918 null ] >>
endobj
5054 0 obj
-<< /D [ 5013 0 R /XYZ 81.077 222.962 null ] >>
-endobj
-5012 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 5013 0 R /XYZ 81.077 238.959 null ] >>
endobj
-5057 0 obj
-<< /Filter /FlateDecode /Length 2419 >>
-stream
-xڭZ]oܺ}ϯX>t ļ>(jhn[>4 k]i#io IQX\JQgΐNVwd˻^xXHY*V7wn$+
-³URtusXk}s..9]w,[?4v⒮Om=6]kjsC-> jknx,yn~&2")vz~zV"L4"!
-z([PnT#DJ2^]U=Cwtsm2O ™LL)Ls3Ih!l,!/B4Fe\|ô/!PMیM/jK|,R*㩳/':::>J ',bp+@uEeMZ0KQFhkԧc״ƮwqJ w^rCm5(g }~ḯ@Kis}n:fgwh:& "ssqsa]orwj?[7a4ڷ/r"ϋ(
-/ԮiR9/hzD
-ݑxA>ғɫȉJ&-XI>8ԔyѿMNe 5ɂ4wyQ+5@GL K7?%&eeL3vQ^)}q)_Z/%lu;u^z
-G^.iJpچ{՚[Pk9Z<Qk )/IH%q1a^' ՛C'ndP?4{gKJsCAV1q &Ff`c,%7-ڠNcRLwn->z:\ʩKhOz4]thӃo`s N_mE7NF]1Xy~o찏owij*i?a<(]IK9M]Q=@ľ~},۴c8Lq-@G'pdEF|ە[3gSeS~+%Igʅ;^M{{5r3V Rd~":1 *iΝo4jSAh&,nnژJ7w
-ГupFw3J|,%n @/H>+rIN K
-F^:riYt̥tE)
-Ҏ{eЙEAҏNs`I9>z+Ub|cm='l*0(@{Zu62r׀Ժtg=<Y^#En0AHE2uj:\쩃0Ë2!=)1 $c4Fj3fAiXӭI$xkk2U]~S XaN͑ǣ9aBit6(Շ4#M[|VDk&iN`" #Q_@>N=k}m{xt^) <vu4[bӌxl+7o'wv9 R-Y:#//b2ߝ˚LFїv޿7KӕHFҳݟ?߼?Й
-endstream
+5055 0 obj
+<< /D [ 5013 0 R /XYZ 81.077 228 null ] >>
endobj
5056 0 obj
-<< /Type /Page /Contents 5057 0 R /Resources 5055 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 5013 0 R /XYZ 81.077 217.041 null ] >>
+endobj
+5057 0 obj
+<< /D [ 5013 0 R /XYZ 81.077 206.082 null ] >>
endobj
5058 0 obj
-<< /D [ 5056 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 166.308 null ] >>
endobj
5059 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 155.349 null ] >>
endobj
5060 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 144.39 null ] >>
endobj
5061 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 133.431 null ] >>
endobj
5062 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 122.473 null ] >>
endobj
5063 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 111.514 null ] >>
endobj
5064 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 100.555 null ] >>
endobj
5065 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 89.596 null ] >>
endobj
5066 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 678.172 null ] >>
-endobj
-5067 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 5013 0 R /XYZ 81.077 78.637 null ] >>
endobj
-5068 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 656.254 null ] >>
+5012 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5069 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 645.295 null ] >>
+<< /Filter /FlateDecode /Length 2005 >>
+stream
+xڭY[o6~0Ї9@.`ú %AP$9Q!K$ԅTt1>;G|‹^
+^}GE"I%_ܭ_/" $K,^=W׌eZo6I]s;)>'\ ʘ;{M.)C5>#vOv 8lǤ5t׺.}Q=[f[iљa+ȰKG &{3(33N`'1HʸQEDɥ\lo*f ť\LͫKB2$}ruQ]Ib3~)R$ 'pt)RqחpDpgB )B>K7O^k\_]JOIjė6̽{>LWHe*;洁G"r>r3ջE!aFI4vIF,tw`;m*ۦ˳<%j,"B y eTk$M1
+X䢕GTzu{nrөtW08(È}$
+1g.!?9>j>>ɊBNGR)ݓ!#l.M7kuYx*}fMPby}]e3F+ͻ8?2}XiCE#p.#*zsֶџd7(&kuSoJf9j˓3ra,Gc_ѧԱRG!<yR/;h
+OcSe_ܫJ[fT$'@?n)5 Eʐ;ɰ!t&4 pA=O\)rUΕhgI%!<+l>%- !Sѣ/lw8@d*zz_ݷzjH$UID0b)_dU2 ׭FC{6O 4 B2P7DP̝rMv'1_?c: V`؝mwy֧[\X4ɣ%&/,v?dpE>m9HfcFC'i^JyͼM
+}2p}H M/jZdvVݫV
+endstream
+endobj
+5068 0 obj
+<< /Type /Page /Contents 5069 0 R /Resources 5067 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4783 0 R >>
endobj
5070 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 5068 0 R /XYZ 78.37 808.885 null ] >>
endobj
5071 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 615.407 null ] >>
endobj
5072 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 612.418 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 604.448 null ] >>
endobj
5073 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 601.459 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 593.489 null ] >>
endobj
5074 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 590.5 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 582.53 null ] >>
endobj
5075 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 537.698 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 571.571 null ] >>
endobj
5076 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 526.74 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 560.613 null ] >>
endobj
5077 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 515.781 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 549.654 null ] >>
endobj
5078 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 504.822 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 538.695 null ] >>
endobj
5079 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 493.863 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 527.736 null ] >>
endobj
5080 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 482.904 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 516.777 null ] >>
endobj
5081 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 505.818 null ] >>
endobj
5082 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 460.986 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 494.859 null ] >>
endobj
5083 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 450.027 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 483.9 null ] >>
endobj
5084 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 439.068 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 472.941 null ] >>
endobj
5085 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 461.982 null ] >>
endobj
5086 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 451.023 null ] >>
endobj
5087 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 398.221 null ] >>
endobj
5088 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 387.263 null ] >>
endobj
5089 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 376.304 null ] >>
endobj
5090 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 365.345 null ] >>
endobj
5091 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 282.738 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 354.386 null ] >>
endobj
5092 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 271.779 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 343.427 null ] >>
endobj
5093 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 260.82 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 332.468 null ] >>
endobj
5094 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 249.861 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 321.509 null ] >>
endobj
5095 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 238.902 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 310.55 null ] >>
endobj
5096 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 227.943 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 299.591 null ] >>
endobj
5097 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 187.096 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 258.745 null ] >>
endobj
5098 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 176.137 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 247.786 null ] >>
endobj
5099 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 165.178 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 236.827 null ] >>
endobj
5100 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 154.22 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 225.868 null ] >>
endobj
5101 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 143.261 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 214.909 null ] >>
endobj
5102 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 102.414 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 203.95 null ] >>
endobj
5103 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 91.455 null ] >>
+<< /D [ 5068 0 R /XYZ 81.077 143.261 null ] >>
endobj
5104 0 obj
-<< /D [ 5056 0 R /XYZ 81.077 80.496 null ] >>
-endobj
-5055 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 5068 0 R /XYZ 81.077 132.302 null ] >>
endobj
-5107 0 obj
-<< /Filter /FlateDecode /Length 1587 >>
-stream
-xڵZ[OF~WXP0JUYRneyn;m{q2@ K||\\M'xwD?O~\\)pd4a4^;'$I% ’$E)T5=JD##%!p{S0OnҺ>;T>I9+ȻU0\_ yӵh'<#G ѽ<]YXv봹82۰fMլc6<{c ™X$=?.uwyU*~`VT#ceceWYݬeVs8bG#XG<FM%Rqs3Bs_\ eSg猱YX|9<Q' P{ہNuTUsF}Y Ų*ge7\嫛EQC:թg6 n!zk/0GTwKˮm8gխ#FdIEǒdeQg_ Ec(aU1uA#X*:&"'!hbF  Cb&Y]gUe;--
-9udzߖk{'kc-ɁD4j#״-zq X!ef5ID[,>x7חk(]fr.At#+joKi8P0MmW0Ct`tR  AXCtRz0$ڬcW)⃵_Ѝ\vF7P M~fK,{14wCBt\vw9ΨBZEP`b~C$2~N0Cc2gX,MS{>Z{} `S#.5 XWsk0w)BHPAiq Pu!]
-z
-![&-~ʘKDזi+D#4e8!a]Pt:^d-rDKtd ѻZ튥Yu]? ~_Ajo5]^}K$!\ڔ+BS z~eۥ) 1qIX~[pr9n/wtd[ԧOdk0=hCiݡ<21zlagL>VOXя@61WHOjd!z+Yݬ۱l=
-?p[ry[Du,G5V?qtmz?S
-endstream
+5105 0 obj
+<< /D [ 5068 0 R /XYZ 81.077 121.343 null ] >>
endobj
5106 0 obj
-<< /Type /Page /Contents 5107 0 R /Resources 5105 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 5068 0 R /XYZ 81.077 110.384 null ] >>
endobj
-5108 0 obj
-<< /D [ 5106 0 R /XYZ 78.37 808.885 null ] >>
+5107 0 obj
+<< /D [ 5068 0 R /XYZ 81.077 99.425 null ] >>
endobj
-5109 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 768.832 null ] >>
+5108 0 obj
+<< /D [ 5068 0 R /XYZ 81.077 88.466 null ] >>
endobj
-5110 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 757.873 null ] >>
+5067 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F79 668 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5111 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 746.914 null ] >>
+<< /Filter /FlateDecode /Length 1947 >>
+stream
+xڭZˎWFF|2 =@2E:T\VF,S|{.E=czSH*<{ϟp$(TrS3% ’̖_r͟(Ѯw,jmnLTE's-mNuّݦkvx4Ye[;`oJ[/ʴ%^^E.ouݶ~^\V#4bEiUfiiԍ(ol7WՇv3; e~6agלM0C6}?QWb$`1fŚ0:H Dbpΰ}Ao_e<`nLXLyoN%{ͫE0Q!Q06T|I]V%-${aj0:SWmo߲^T˯'AEn/"{0GLqdqX螊 ~UʴmOٷOM}(?\170A={+jkօʣ&+.vm ^DAﲦ`sMĉ  =//b~;F%kyQ4xꩿE6kiUg@2AB#Az7ш}4146
+ A.^JQGM^ɭ*@g/X$w~z_<}̊T?8"Gn,Kxtwy &y`B[
+ 1x6T^裇y6٢zb6_pqaCĀl"i}b((=CŜq?ĨF2ï
+ bStD!
+qk%[0=lټ<p0&;@q,b(}N?dHxs*]RECC6y`w"?S 7O>>ڧ&7הI^1wtT15ulxUcRAI ϘDPkxw֮w嗇61Fe<Zl
+
+*v a?:ewK3}H4#&`E k],LSR49bA<!TC3\+"D):8Phd0qEȠ~C^뮆̿Iȓu4W- 
+k6 t9um]jb(uLW(],:8{5l/c1/a2O-3N=Ȉ!]1r!A}T|#\֑a<M4rh hD] ais
+VЀ"n<tp$D b yh81AznNl8be*)?ET9 q0)>E߭32HE\$ú:6'H`"*h=tC
+endstream
+endobj
+5110 0 obj
+<< /Type /Page /Contents 5111 0 R /Resources 5109 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4783 0 R >>
endobj
5112 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5110 0 R /XYZ 78.37 808.885 null ] >>
endobj
5113 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 742.975 null ] >>
endobj
5114 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 732.017 null ] >>
endobj
5115 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 554.832 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 721.058 null ] >>
endobj
5116 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 543.873 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 710.099 null ] >>
endobj
5117 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 532.915 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 699.14 null ] >>
endobj
5118 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 521.956 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 658.386 null ] >>
endobj
5119 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 510.997 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 647.427 null ] >>
endobj
5120 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 500.038 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 636.468 null ] >>
endobj
5121 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 489.079 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 625.51 null ] >>
endobj
5122 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 478.12 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 614.551 null ] >>
endobj
5123 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 467.161 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 603.592 null ] >>
endobj
5124 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 456.202 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 592.633 null ] >>
endobj
5125 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 445.243 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 581.674 null ] >>
endobj
5126 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 434.284 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 570.715 null ] >>
endobj
5127 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 423.325 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 412.292 null ] >>
endobj
5128 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 412.367 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 401.333 null ] >>
endobj
5129 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 401.408 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 390.374 null ] >>
endobj
5130 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 390.449 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 379.415 null ] >>
endobj
5131 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 379.49 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 368.457 null ] >>
endobj
5132 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 368.531 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 357.498 null ] >>
endobj
5133 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 357.572 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 346.539 null ] >>
endobj
5134 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 346.613 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 335.58 null ] >>
endobj
5135 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 335.654 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 324.621 null ] >>
endobj
5136 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 324.695 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 313.662 null ] >>
endobj
5137 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 313.736 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 302.703 null ] >>
endobj
5138 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 302.778 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 291.744 null ] >>
endobj
5139 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 291.819 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 280.785 null ] >>
endobj
5140 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 280.86 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 269.826 null ] >>
endobj
5141 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 258.867 null ] >>
endobj
5142 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 247.909 null ] >>
endobj
5143 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 236.95 null ] >>
endobj
5144 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 225.991 null ] >>
endobj
5145 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 215.032 null ] >>
endobj
5146 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 204.073 null ] >>
endobj
5147 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 193.114 null ] >>
endobj
5148 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 182.155 null ] >>
endobj
5149 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 171.196 null ] >>
endobj
5150 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 160.237 null ] >>
endobj
5151 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 149.278 null ] >>
endobj
5152 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 138.32 null ] >>
endobj
5153 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 122.473 null ] >>
endobj
5154 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 111.514 null ] >>
endobj
5155 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 100.555 null ] >>
endobj
5156 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 89.596 null ] >>
endobj
5157 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5110 0 R /XYZ 81.077 78.637 null ] >>
endobj
-5158 0 obj
-<< /D [ 5106 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-5105 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
+5109 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F73 189 0 R /F69 183 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-5161 0 obj
-<< /Filter /FlateDecode /Length 1928 >>
+5160 0 obj
+<< /Filter /FlateDecode /Length 1866 >>
stream
-xڵZKo8W苳aO deg!(6mkF<I6E:ɏU,ͶhU4>_r :͖+
-%(bEIlg.D˝ҳhx)DBWric⾼LvmEz{>y<+RHI1d|_вaTp';9OLIn9jm(њD8My!o(;Γtkvs!R)t8|OwF2zJwSKc룅姩<:ǝɷ;&ߦY]g0vJK£ح;@CNB;u4^v8LFC.E
-O4Nqꑗ6m9@l-,4n*`m_j+}ؕD(pG_jJv@SToR7vZIq,)KAeٔ_}DZ1W^Ѻt>Āi`hÒ8Np"@r*C Cnr2YU5ZwrM>/^\p
-,=vw6L=:mf"mg09B>/eQJxI&|_kyhPTgHFbdSTㆭ!!8ߗˏ@!b
-%gph*
-fIQ9@Gŋᇳ
+xڽZ[o6~ϯ0gkX^%@`Z`y2bӶ6[r%mВ(IW$݋%S\$:YOD;}ͻTL$1 >.t6 IX:IFh&䏩sͻL41I"tf"&ɊUfM;[̻y'QIFB1Jq5ݯWuwi6߲\_g4lCcg7c6EYE
+k#ԫWIssM~n}Jatv: W\l- K c&I [,ӄ$V)ne!_YY$FAS/ CmzvZ[<9,w^-DH(EˬoYEA_=Uͩ
+o>ULe $#hCPnCQ2VhER$ ETo97.@#c%HS8BϽmREG+d6<tM[ZhZ~/mbi`}1b^DKOFv;DIAIFkEh@߆{58ҏ=3I1" )Phg1eİ'몵.g72Ы-WEQ +/@"hf#NT}*JQ!OVf?nn-)D[FzN=D
+Mk[E ڃ({UM vܳ{Z۪ͻgؕ$ͻdE9FhK>KVTb #Q\Jg/oK12^ 82C)B%%Ero0iץQb j#w2"}%OK)EX)%Q/
+ u#4~nK .hLs>rZ}CpC(Dp&b4u|
+Q/4%E&E>$F',\q5WʭoOzڞq3c0:?w* +I;f&.E@8
+")r)W+6\k˥Ӷ"]TCc^;[^t6='Euy`mjun7Av;/&=lmW!;YT$=CMsK()
++q- ݓv-sG}[TeC{.\RSL*Ju9}Y͘
+n'#t|a`pۺ_I*'3J%8.cu9j(uf
endstream
endobj
-5160 0 obj
-<< /Type /Page /Contents 5161 0 R /Resources 5159 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+5159 0 obj
+<< /Type /Page /Contents 5160 0 R /Resources 5158 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4783 0 R >>
+endobj
+5161 0 obj
+<< /D [ 5159 0 R /XYZ 78.37 808.885 null ] >>
endobj
5162 0 obj
-<< /D [ 5160 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 768.832 null ] >>
endobj
5163 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 757.873 null ] >>
endobj
5164 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 746.914 null ] >>
endobj
5165 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 735.955 null ] >>
endobj
5166 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 724.996 null ] >>
endobj
5167 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 714.037 null ] >>
endobj
5168 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 703.078 null ] >>
endobj
5169 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 692.119 null ] >>
endobj
5170 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 681.16 null ] >>
endobj
5171 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 670.202 null ] >>
endobj
5172 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 659.243 null ] >>
endobj
5173 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 648.284 null ] >>
endobj
5174 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 637.325 null ] >>
endobj
5175 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 626.366 null ] >>
endobj
5176 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 621.385 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 615.407 null ] >>
endobj
5177 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 610.426 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 604.448 null ] >>
endobj
5178 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 599.467 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 593.489 null ] >>
endobj
5179 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 588.508 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 582.53 null ] >>
endobj
5180 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 571.571 null ] >>
endobj
5181 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 560.613 null ] >>
endobj
5182 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 549.654 null ] >>
endobj
5183 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 538.695 null ] >>
endobj
5184 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 527.736 null ] >>
endobj
5185 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 512.142 null ] >>
endobj
5186 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 501.183 null ] >>
endobj
5187 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 490.224 null ] >>
endobj
5188 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 479.265 null ] >>
endobj
5189 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 468.306 null ] >>
endobj
5190 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 457.347 null ] >>
endobj
5191 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 446.389 null ] >>
endobj
5192 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 435.43 null ] >>
endobj
5193 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 424.471 null ] >>
endobj
5194 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 413.512 null ] >>
endobj
5195 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 381.285 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 402.553 null ] >>
endobj
5196 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 370.326 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 391.594 null ] >>
endobj
5197 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 359.367 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 380.635 null ] >>
endobj
5198 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 348.408 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 369.676 null ] >>
endobj
5199 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 337.449 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 358.717 null ] >>
endobj
5200 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 326.49 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 347.758 null ] >>
endobj
5201 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 285.644 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 336.8 null ] >>
endobj
5202 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 274.685 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 325.841 null ] >>
endobj
5203 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 263.726 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 314.882 null ] >>
endobj
5204 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 252.767 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 303.923 null ] >>
endobj
5205 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 241.808 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 292.964 null ] >>
endobj
5206 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 230.849 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 282.005 null ] >>
endobj
5207 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 219.89 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 239.685 null ] >>
endobj
5208 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 208.931 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 228.726 null ] >>
endobj
5209 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 197.972 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 217.767 null ] >>
endobj
5210 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 187.014 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 206.809 null ] >>
endobj
5211 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 176.055 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 195.85 null ] >>
endobj
5212 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 165.096 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 184.891 null ] >>
endobj
5213 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 154.137 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 144.39 null ] >>
endobj
5214 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 143.178 null ] >>
+<< /D [ 5159 0 R /XYZ 81.077 133.431 null ] >>
endobj
5215 0 obj
-<< /D [ 5160 0 R /XYZ 81.077 132.219 null ] >>
-endobj
-5159 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 5159 0 R /XYZ 81.077 122.473 null ] >>
endobj
-5218 0 obj
-<< /Filter /FlateDecode /Length 1875 >>
-stream
-xZMo6ϯF)bP`r
-r"<t)JT=)^BK#>/O^?޿{J#-;xEV JI$)R|L0GTф2!-+2?f߻L4]J&@y>uE([J(@EtaR !h5Ʉ"TBtH%T[r%"/2 Q1JRS10և, U뗢z4!S늺ֶY_|o=x^Xd}ݵ,HlHe؊#FD"i\P=Ӓԫ, D&!޵iM.oa}/(0u,_}h,AD2Q&T/ؙeh -*LeW}VGeQ 774YΆ[zюo}ƫk$kC[b:D'K4۪8]nV6 [e;fơ>mY.o8gC c.Cͧ'GgPOpt.+Tà^QwQeNZ0z `7:`|/sKͮ$MzOсLa,=)GjIY_D'`hSqhC RvZ_~yk2(׸f<@V
-Nm{ˈ?MI5eʈDZ~-1oH Sbl͒P )GPA$Hę0SUcVX6TEȪ9YCaЭY s
-0siN Z}h<Ji::-P(^DO
-L>){I>B/к*_71c9I kN"vr*sH~., H$ě޾t ?n=MQ]9n/T؇n`<m3_<%a eH2waC-E=707oeϙ\ "uOzp
-+w掫_ٌ6fߦd;ͬ@kSw%oȚ"52d
-|{U7=!(vRq'S4JEa>+ 4
-endstream
+5216 0 obj
+<< /D [ 5159 0 R /XYZ 81.077 111.514 null ] >>
endobj
5217 0 obj
-<< /Type /Page /Contents 5218 0 R /Resources 5216 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4785 0 R >>
+<< /D [ 5159 0 R /XYZ 81.077 100.555 null ] >>
endobj
-5219 0 obj
-<< /D [ 5217 0 R /XYZ 78.37 808.885 null ] >>
+5218 0 obj
+<< /D [ 5159 0 R /XYZ 81.077 89.596 null ] >>
endobj
-5220 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 656.924 null ] >>
+5219 0 obj
+<< /D [ 5159 0 R /XYZ 81.077 78.637 null ] >>
endobj
-5221 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 645.965 null ] >>
+5158 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5222 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 617.33 null ] >>
+<< /Filter /FlateDecode /Length 1725 >>
+stream
+xZMo6WFߤ Xh!=t AX,yey4ޡ%Ѣ6e%E> 3ȈNn'tvW}ťI"\t6hf&F3B5\o&Lb]:Xi-l̔%"!s ؊F[6VLȿӇ]KyQWRdtUvh.˲5߉)&G飝=ug8lyyprݻ>^yYuf-aVz>H&g?Ε'opG;~.Y$eſ9s4+ ڳ+h
+ЎmUqZ,DtN$ѤdFF[I%=mlƈ
+dLM,s !e)7O
+tF eg#zY/5Tj(Ja |iphG jgV=RD*:%06.}e?f?d@9@Lܴs)11aOVY? 7Vjeq[GQɢͅܢ e ګ(nB88,ض]GӖ|YT G74·<]YqhŚ 4ܟA)3mBz_Wɛ P+L1,\n `NZeeQM:4>
+]n]gs]։\tǕ"JoDC8uN@xA"[zW}4>A"[˛>*w`>@cDDt~"Ad[Kf8RlpNs>,J]eiRӾi!@QoB/Z,XU3/ZrL>%]3͈`Ön-f\O˳]K<y#('TnQd y_%Ѕ^㥉8@c]0Ke@lgUbYA"}r@:x!䃮/yH?08A{.:)v6REb$|1Ǐ0 CE|62=axD+ #P}| Kl_P<
+endstream
+endobj
+5221 0 obj
+<< /Type /Page /Contents 5222 0 R /Resources 5220 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4783 0 R >>
endobj
5223 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 588.695 null ] >>
+<< /D [ 5221 0 R /XYZ 78.37 808.885 null ] >>
endobj
5224 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 577.736 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 768.832 null ] >>
endobj
5225 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 566.777 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 757.873 null ] >>
endobj
5226 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 555.818 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 746.914 null ] >>
endobj
5227 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 527.183 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 735.955 null ] >>
endobj
5228 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 516.224 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 724.996 null ] >>
endobj
5229 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 505.265 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 714.037 null ] >>
endobj
5230 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 494.306 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 703.078 null ] >>
endobj
5231 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 483.347 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 692.119 null ] >>
endobj
5232 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 472.388 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 516.871 null ] >>
endobj
5233 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 461.429 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 505.912 null ] >>
endobj
5234 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 450.47 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 477.443 null ] >>
endobj
5235 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 439.512 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 448.975 null ] >>
endobj
5236 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 428.553 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 438.016 null ] >>
endobj
5237 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 417.594 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 427.057 null ] >>
endobj
5238 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 388.959 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 416.098 null ] >>
endobj
5239 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 378 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 387.629 null ] >>
endobj
5240 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 367.041 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 376.67 null ] >>
endobj
5241 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 356.082 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 365.711 null ] >>
endobj
5242 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 345.123 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 354.752 null ] >>
endobj
5243 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 334.164 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 343.794 null ] >>
endobj
5244 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 323.205 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 332.835 null ] >>
endobj
5245 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 294.57 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 321.876 null ] >>
endobj
5246 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 283.611 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 310.917 null ] >>
endobj
5247 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 272.652 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 299.958 null ] >>
endobj
5248 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 261.693 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 288.999 null ] >>
endobj
5249 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 250.734 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 278.04 null ] >>
endobj
5250 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 239.775 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 249.571 null ] >>
endobj
5251 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 228.816 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 238.613 null ] >>
endobj
5252 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 217.858 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 227.654 null ] >>
endobj
5253 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 216.695 null ] >>
endobj
5254 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 205.736 null ] >>
endobj
5255 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 194.777 null ] >>
endobj
5256 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 183.818 null ] >>
endobj
5257 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 155.349 null ] >>
endobj
5258 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 144.39 null ] >>
endobj
5259 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 133.431 null ] >>
endobj
5260 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 122.473 null ] >>
endobj
5261 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 111.514 null ] >>
endobj
5262 0 obj
-<< /D [ 5217 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 5221 0 R /XYZ 81.077 100.555 null ] >>
endobj
-5216 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F79 668 0 R /F20 186 0 R /F19 184 0 R /F73 189 0 R /F69 183 0 R /F26 662 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-5265 0 obj
-<< /Filter /FlateDecode /Length 2035 >>
-stream
-xڽZMo8W $lK f&ܶ"ӱfd+ɝd߷(R4v'bg.Mb**q,~J'mF S^a,"OQEbxq_{xFVm*9iJs !zߒdyt4DnXL
-(GpV$[>]n(%'C6]݋m(AvvNvvξTsܷ]ɖjki /((KKR#PU(&<(޾EC@X@߶73[#r"6o'@^OޮoW7)>~,)A'N'Ey/S!N9"zA`9exqhr2TJr(u TJuvj_mSݺ5<Z ;ӌiN<Nq5]ݝyݳ߼37)b8u(_ 9<cq;=MNG)T8I>@ga.%
-(RaqAi`a UITLP{硓{[ٛ4jT/7huXP @m:i9\;&ڎqQ[.8(:c`
-[@bw:T~9Eu앳(
-g 2GRLֆO%)B|)'
-_W
-::B"Q1@Eb:^v]/j
-M]1&Cc/G)Ll<6?]7rM#Oy!a1{&e9lٺ87
- i2.
-9CNU_8tjKzH쫟}d˟h
-S FਸO" 2'D
-.I,*g .\G} pH
-l
-P[C==lG<=&o1 Ρku/ !4"\Jݕ0Y΅=a~|;Վ0^<xeG>ٽOAڕy)!q4h qFAU`pmBVuQE~-o\AG:NfV*SMpcFzy'K\GkM(#Ѫ@q=Vɢ
-N]*_P;["!yb =<]k
-endstream
+5263 0 obj
+<< /D [ 5221 0 R /XYZ 81.077 89.596 null ] >>
endobj
5264 0 obj
-<< /Type /Page /Contents 5265 0 R /Resources 5263 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5221 0 R /XYZ 81.077 78.637 null ] >>
endobj
-5266 0 obj
-<< /D [ 5264 0 R /XYZ 78.37 808.885 null ] >>
+5220 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R /F26 662 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5267 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 768.832 null ] >>
+<< /Filter /FlateDecode /Length 2161 >>
+stream
+xڽZ[o~_a`_l .@bu
+CDJdoHѢMdƏƋ^/w~!zTxAFX ,֮h|Z]3Fq7l}ov/ onAT=Qgt1bX7ov%>ak{ET\9U4=0s7d=ڔMh&I$JD7[[O<WuTͮږ}h`([Џ>PW bK&ky;))R ¸8mܰD2p~0nonNGZFD2P2% %d0xmrDL&Nn¸LٗugַkAũÑ0Dy((Na_L}zcL6"g1'a0Ѷg[(ĴJ/vҾjER?hA):FѶl :qlmwfæl]7Kg㿟Ma8??EO}}cw⪈i)zgַq1E@]b94)ۉЮ:@lMK>P˟
+zMyknηM8#*/pr)%:ɮ AN޴#A(Q\QwFզWkPhD
+AOn_(@bD$
+pK$
+$/Q`PAN#/'$( ] Spv!O=/'ࠇN:ulR"ţ0P:ƨƀ!8A
+$8=bs}{s[
+:+ J Ơ!p% = WRLb ϋ 2EgwSR`mϋr((AN tBvnw.Rc3 oLD-2y=g; hZd-oUh;/
+$|T y%|۰R
+&m mcf:^Nѯ:~ҏTCHb!8 :][>o^vK~8V<.큋=gۉrEXn7+iP*BuOQ f/\,e@u_lvjNvרؙ;
+ٙ}y`s_@tum_YtlY9.Il'SyW`؇<bfS˲qeБ7.*IEbB#)Cds#-YnBӆK&Mh9ڽZg _v%7l8}
+~"JFO, #aY-AgO"Aݫ r :QnKԘ.oՈ,0KD^0 =Ƭw Ïu/U&Ɩ]Ir
+y2K$)<)t Mvvh*sgp! N;'M!<seB2&WT.?֌{u_<6??|Z ~Q'eG<x۝=+)% zQ=쯼k۶?Q]) 'gUvuݙY,|hc3?'ԫO\.]5`7l$P x=pLJzr1EL
+endstream
+endobj
+5266 0 obj
+<< /Type /Page /Contents 5267 0 R /Resources 5265 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5315 0 R >>
endobj
5268 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5266 0 R /XYZ 78.37 808.885 null ] >>
endobj
5269 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 728.981 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 742.929 null ] >>
endobj
5270 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 718.022 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 731.97 null ] >>
endobj
5271 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 707.063 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 721.011 null ] >>
endobj
5272 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 696.104 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 710.052 null ] >>
endobj
5273 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 685.146 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 699.093 null ] >>
endobj
5274 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 674.187 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 688.134 null ] >>
endobj
5275 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 663.228 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 677.175 null ] >>
endobj
5276 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 666.217 null ] >>
endobj
5277 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 655.258 null ] >>
endobj
5278 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 644.299 null ] >>
endobj
5279 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 589.504 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 633.34 null ] >>
endobj
5280 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 578.545 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 622.381 null ] >>
endobj
5281 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 567.586 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 593.489 null ] >>
endobj
5282 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 556.627 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 582.53 null ] >>
endobj
5283 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 545.669 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 571.571 null ] >>
endobj
5284 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 534.71 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 560.613 null ] >>
endobj
5285 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 549.654 null ] >>
endobj
5286 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 538.695 null ] >>
endobj
5287 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 527.736 null ] >>
endobj
5288 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 516.777 null ] >>
endobj
5289 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 505.818 null ] >>
endobj
5290 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 494.859 null ] >>
endobj
5291 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 454.012 null ] >>
endobj
5292 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 443.053 null ] >>
endobj
5293 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 436.08 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 432.094 null ] >>
endobj
5294 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 425.121 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 421.136 null ] >>
endobj
5295 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 328.566 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 410.177 null ] >>
endobj
5296 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 317.607 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 399.218 null ] >>
endobj
5297 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 306.648 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 388.259 null ] >>
endobj
5298 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 295.689 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 377.3 null ] >>
endobj
5299 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 284.73 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 366.341 null ] >>
endobj
5300 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 273.771 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 355.382 null ] >>
endobj
5301 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 232.924 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 344.423 null ] >>
endobj
5302 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 221.966 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 333.464 null ] >>
endobj
5303 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 211.007 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 322.505 null ] >>
endobj
5304 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 200.048 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 311.547 null ] >>
endobj
5305 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 189.089 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 300.588 null ] >>
endobj
5306 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 178.13 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 289.629 null ] >>
endobj
5307 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 167.171 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 193.074 null ] >>
endobj
5308 0 obj
-<< /D [ 5264 0 R /XYZ 81.077 156.212 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 182.115 null ] >>
endobj
-5263 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
+5309 0 obj
+<< /D [ 5266 0 R /XYZ 81.077 171.156 null ] >>
endobj
-5312 0 obj
-<< /Filter /FlateDecode /Length 2139 >>
-stream
-xڭZ[o6~_a`^n]A
-)I%_m? P -2Idq_g|߻yh)rW4O.f7<!N#"Hh[@b}
-O>*:k2LPN{DJ|H>4( LȒ@Ѐ.؂#FCx.$B Q'. mBEKKǛ HkZ?Omu7ۧZP1u(wci⟛VɄ3hN<cqcJHE4PlmQT61G\TILkS3.c0"t)18t*pmwSh7^*j64G OJ
-!Fdr$Eq)ߓ I![t;{tŶmEYv,t͡C]o~sМTwCnf>3OY9G+ϓ%I=B'K1$ <XGH*oNHc %0(vvlMha{LZoYL;5󖕦YZyc릅O?U2Чa*gK}u͈X>W4[~꾭WӬ7t}FO`δeUGAa_<h}.[7s7]ntrh@pV2< zS<
-j5u3Yp-
-endstream
+5310 0 obj
+<< /D [ 5266 0 R /XYZ 81.077 160.197 null ] >>
endobj
5311 0 obj
-<< /Type /Page /Contents 5312 0 R /Resources 5310 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5266 0 R /XYZ 81.077 149.238 null ] >>
+endobj
+5312 0 obj
+<< /D [ 5266 0 R /XYZ 81.077 138.279 null ] >>
endobj
5313 0 obj
-<< /D [ 5311 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 97.433 null ] >>
endobj
5314 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 691.01 null ] >>
+<< /D [ 5266 0 R /XYZ 81.077 86.474 null ] >>
endobj
-5315 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 680.051 null ] >>
+5265 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F76 318 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-5316 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 669.093 null ] >>
+5318 0 obj
+<< /Filter /FlateDecode /Length 2025 >>
+stream
+xڭZMoWi;~2P`PxoU.:ز֖$y`{)$&({fg^awE_~z،DFgw+̴DaIfws.)~72iHL84j?M, *_,.k>U6k;Z;:%Z`C3F۴X=,ɴoҎ}Uۀӽx&+f "Ӹц˖>nΞhVT#gcl
+Іզi^(?8!:~kDTJ?8onB9 If @cJS3 Ez{ȯ1jU5<QNy[d`Yc鴎׺nkOEMq[,>efK;7zu ,9d*josDlQm]EcV^J&@OMbur)
+Ɂ4)=;JJ"E}bh輇KI8cqs_#7ʲUjfaT<kZ/NHc`3u.sB i喉8QM&Nk
+vE_'h:M
+Z1w]v0vϩ E*o%Rllt2˄x98*
+0
+Ldo+6%'Qg9@GQUtJ7E#Sh:&=l"Yr6E;me)Čn0{%#}ʐT+ؘc#sp; [[Ծ6 1!g>qe/r-MlEF^S؃3BLiu@h/g㎃Q9QAkY/gm t-~1ÌhuH#<GDb&E$@㞙$HChMN.ZHĸ1'雯%4r({B(py]Rv /}Nӵl)wApUyѓĥ ~ OP&wR}V
+u<::"Qm(?2ѮؘrݖSMʷm:P_i3(i</QPV^V)S((Wqvϱb;CDGJyp·o`g2J&Qg)@SYB Icn1OV̝ ZW`#&UC2a1@ʼ颥v:j/+'}h⫎{2ޏl*󯩗HXO
+?Hx
+ap!F(I-HO8ęy2ٞG}!m ~Ιߠ9 9%1!WB~ !d1ԙgE{q$w*]l~PQKے ћaGo|)[ \t :AP5p I/`P`_ |
+endstream
endobj
5317 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 658.134 null ] >>
-endobj
-5318 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 647.175 null ] >>
+<< /Type /Page /Contents 5318 0 R /Resources 5316 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5315 0 R >>
endobj
5319 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 636.216 null ] >>
+<< /D [ 5317 0 R /XYZ 78.37 808.885 null ] >>
endobj
5320 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 625.257 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 768.832 null ] >>
endobj
5321 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 614.298 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 757.873 null ] >>
endobj
5322 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 603.339 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 746.914 null ] >>
endobj
5323 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 592.38 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 735.955 null ] >>
endobj
5324 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 581.421 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 724.996 null ] >>
endobj
5325 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 570.462 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 714.037 null ] >>
endobj
5326 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 559.504 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 550.245 null ] >>
endobj
5327 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 548.545 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 539.286 null ] >>
endobj
5328 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 505.97 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 528.327 null ] >>
endobj
5329 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 495.011 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 517.368 null ] >>
endobj
5330 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 484.052 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 506.409 null ] >>
endobj
5331 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 455.338 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 495.45 null ] >>
endobj
5332 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 402.712 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 484.491 null ] >>
endobj
5333 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 391.753 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 473.533 null ] >>
endobj
5334 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 380.794 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 462.574 null ] >>
endobj
5335 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 369.836 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 451.615 null ] >>
endobj
5336 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 358.877 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 440.656 null ] >>
endobj
5337 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 347.918 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 429.697 null ] >>
endobj
5338 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 307.248 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 418.738 null ] >>
endobj
5339 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 296.289 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 407.779 null ] >>
endobj
5340 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 285.33 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 365.147 null ] >>
endobj
5341 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 274.371 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 354.188 null ] >>
endobj
5342 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 263.412 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 343.229 null ] >>
endobj
5343 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 252.453 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 314.475 null ] >>
endobj
5344 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 241.494 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 261.811 null ] >>
endobj
5345 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 230.535 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 250.853 null ] >>
endobj
5346 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 219.576 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 239.894 null ] >>
endobj
5347 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 208.617 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 228.935 null ] >>
endobj
5348 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 197.659 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 217.976 null ] >>
endobj
5349 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 207.017 null ] >>
endobj
5350 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 166.308 null ] >>
endobj
5351 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 155.349 null ] >>
endobj
5352 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 144.39 null ] >>
endobj
5353 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 133.431 null ] >>
endobj
5354 0 obj
-<< /D [ 5311 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 5317 0 R /XYZ 81.077 122.473 null ] >>
endobj
-5310 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F79 668 0 R /F20 186 0 R /F19 184 0 R /F73 189 0 R /F69 183 0 R /F23 660 0 R /F27 4533 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-5357 0 obj
-<< /Filter /FlateDecode /Length 1544 >>
-stream
-xڭYˎ6Wn3& 
-4E tV5eY2$97HWMWIIE,vn^vfULj{Ca љVDV_CeU!+uZ}RlچSh3YIK7=̹>VUZM7>dUYwsV'k2YgvIX)&}{x~s>ߖUs,&O ]/gM?ScSg6վx
-tqSK|4ڊ`ac/zcQViAAJ`5t#g<$Ti]='!ʸ( N>T=Jmq[@ b]-Qz"A1RD+Z @_(qT.c eNy
-U󙢻k?WB@j5.@A' BlF[h
-endstream
+5355 0 obj
+<< /D [ 5317 0 R /XYZ 81.077 111.514 null ] >>
endobj
5356 0 obj
-<< /Type /Page /Contents 5357 0 R /Resources 5355 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5317 0 R /XYZ 81.077 100.555 null ] >>
endobj
-5358 0 obj
-<< /D [ 5356 0 R /XYZ 78.37 808.885 null ] >>
+5357 0 obj
+<< /D [ 5317 0 R /XYZ 81.077 89.596 null ] >>
endobj
-5359 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 742.929 null ] >>
+5358 0 obj
+<< /D [ 5317 0 R /XYZ 81.077 78.637 null ] >>
endobj
-5360 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 731.97 null ] >>
+5316 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R /F23 660 0 R /F27 4545 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5361 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 721.011 null ] >>
+<< /Filter /FlateDecode /Length 1792 >>
+stream
+xڭZ]۶}_a/^ ˈߤAhipSZ%Cq~Enb:}Yɒp8sfHo.o7tEn~yy^CZaJ _xX.(x[w׷>z^BZB01gggd-l3xhNM5Œz2lrmb66؍0eeW<u՘U2,!sqQ@Eh燷^hBԈʅ
+Q/~/vIK<RVŶmwl]-a˾؝>[U->mM,Pyʊ;;=(0gfNn{ؙZ 9@g
+'_~ȇ6bOSc}i F\&dB)MY"޹k.#ѣifw?:L!A皩VN%r[
+P+9ЧTMOCgvP>o75bFx;u+k(6jǪ=IBr7V A3oX~5'khtas}:fI5x ,:}]?+zCF2~p߼ \BxOx8ݴpEFoNJ}IW#]nw_a^{[F%>(vœsS0,-C q
+VMrGj.5'4yKbC\3$I-ͱ{3kuSSq|r^)yP}4m:f~8s sp=_uC߾/%YڄCTyácԥ$#yZ…9LS&a6oݤH*:ymQ/R&c8E.Y*7wH*xklF
+oںnmX±z*#Ѧfu;iX.,ODڿℌ[<l@QݐDSDK>'W*)bZs2czl:O1N(BOMf(D+WW&BTҗ "Pc*"x䞋(ΥX#E{lьB+<g:yD4A
+UeIm]bWyJ&0U)[Xvӽ}HRcRV!yE8ҧ4vx/T,mBtr[L)f;Dr6)>t./5lV񖣇=,gv؄H A|ISxbx2!:=+30TZ8+OI
+VVh|kO3Ǖ
+ṵҗSsĹbo u6q tQWbYuC%>>^c iwdoF
+endstream
+endobj
+5360 0 obj
+<< /Type /Page /Contents 5361 0 R /Resources 5359 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5315 0 R >>
endobj
5362 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 710.052 null ] >>
+<< /D [ 5360 0 R /XYZ 78.37 808.885 null ] >>
endobj
5363 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 699.093 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 768.832 null ] >>
endobj
5364 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 688.134 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 757.873 null ] >>
endobj
5365 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 677.175 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 746.914 null ] >>
endobj
5366 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 666.217 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 735.955 null ] >>
endobj
5367 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 724.996 null ] >>
endobj
5368 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 660.239 null ] >>
endobj
5369 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 649.28 null ] >>
endobj
5370 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 638.321 null ] >>
endobj
5371 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 627.362 null ] >>
endobj
5372 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 616.403 null ] >>
endobj
5373 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 605.444 null ] >>
endobj
5374 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 564.598 null ] >>
endobj
5375 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 553.639 null ] >>
endobj
5376 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 542.68 null ] >>
endobj
5377 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 531.721 null ] >>
endobj
5378 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 520.762 null ] >>
endobj
5379 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 509.803 null ] >>
endobj
5380 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 498.844 null ] >>
endobj
5381 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 487.885 null ] >>
endobj
5382 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 322.505 null ] >>
endobj
5383 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 311.547 null ] >>
endobj
5384 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 300.588 null ] >>
endobj
5385 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 289.629 null ] >>
endobj
5386 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 278.67 null ] >>
endobj
5387 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 267.711 null ] >>
endobj
5388 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 256.752 null ] >>
endobj
5389 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 245.793 null ] >>
endobj
5390 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 234.834 null ] >>
endobj
5391 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 223.875 null ] >>
endobj
5392 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 226.864 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 212.916 null ] >>
endobj
5393 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 215.905 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 201.957 null ] >>
endobj
5394 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 204.946 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 190.999 null ] >>
endobj
5395 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 180.04 null ] >>
endobj
5396 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 183.028 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 169.081 null ] >>
endobj
5397 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 172.07 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 158.122 null ] >>
endobj
5398 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 161.111 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 147.163 null ] >>
endobj
5399 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 150.152 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 136.204 null ] >>
endobj
5400 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 139.193 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 125.245 null ] >>
endobj
5401 0 obj
-<< /D [ 5356 0 R /XYZ 81.077 128.234 null ] >>
+<< /D [ 5360 0 R /XYZ 81.077 114.286 null ] >>
endobj
-73 0 obj
-<< /D [ 5356 0 R /XYZ 79.37 102.779 null ] >>
+5402 0 obj
+<< /D [ 5360 0 R /XYZ 81.077 103.327 null ] >>
endobj
-5355 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F73 189 0 R /F69 183 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
+5403 0 obj
+<< /D [ 5360 0 R /XYZ 81.077 92.368 null ] >>
endobj
5404 0 obj
-<< /Filter /FlateDecode /Length 1945 >>
-stream
-xڭYn6+ tQH8|
-4EE.:ز#,L&ȿRt&RHuν4gx{t{ZqAg3xFfR#&g2QK2uoIA}~~gv΋iݢ-Lո˲?Z1m/{YTG>}G?48F SFk532LzJl6Yx_ XORcj)_@)ARͽٕK'k`fӕd 2 "v2urjht~9l]Y5WRle(|}Vw:r6Wj˙P*Ro, }4,I¢|IhL&+M&@dN&%5z*
-QKi<m˱¶hZ-zk%zLp&AAAMol$,\c$8I
-Q`m-|ذKT|Ր$Jȸϣ=
-?:֏1:Zp
-$@\HwM5_q3I#iHբ6Ş冷n/wu]rr_d;8HQ(
-FH-d2
-?~uɖ:st )8~hxJ84J*@w0VbY8G
- 3)=2}
-`L43B?<]߇'xO/}E4$jc4CKx&SRtH~EZIPbĠH؟eY
-endstream
+<< /D [ 5360 0 R /XYZ 81.077 81.41 null ] >>
endobj
-5403 0 obj
-<< /Type /Page /Contents 5404 0 R /Resources 5402 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+5359 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-5405 0 obj
-<< /D [ 5403 0 R /XYZ 78.37 808.885 null ] >>
+5407 0 obj
+<< /Filter /FlateDecode /Length 1685 >>
+stream
+xڭYMo6Wvp%R4P`Q)CNzbˉPYr%ylGDɊ޽D2!Լ!gw3<(o_W%qbl ,H9 ,l=??]_H !p(~1_;ˆ`Ʀacc3gnl6m(FL>a|uۧu,oUD.1dE&IP%7Z'_T΃ƈ̓O:1$QicK1lvyS)tm^YQ!E1Fsꣃ#Tnl9ml%FA(2os.L?9b\9^q!h\j0H_
+
+"D=M*N RglNap@2pzߢ@)AR*:vqE%uh`04%Vnae]nLRs>5ߧ!䏦$|;rAmwrXEPaY@;}%o, 1t^ !A\2O!xS
+a(24ӈ0Gger[UE!؀Bg>1qDXDK"m6&Hܝ}]$zyرov$/<tyw{%!XGtv6& *]0 &HeoCU!RXgE9-[Hǖfɶiф0xo)c7Dkvz'E)jP>TI@Rd =s"ɷI__܌ONXn'MTdI[ EӂH덭֔S֔ҰY ю1Zg pR) sz.NYZBEt{ø Cn8"I2 eѥ ~kV
+ &N-i+gj޸u޹zh<8vkM;JtTH=(g<c <)upd=
+P-۱zhKg ((VU[,a
+J-m|kHǾH׶v7)PN&ʥ=>]nаt={.Y_32OiRlU0=A. 1$yj<p]U}~:%4 ۀC&\`
+Sw*,
+sܧPϷSPu []dp~_LBa9޼.ii* ?:՛\bd~嶧<B{lL{N2p:11ڧ:wbhf+DڏWEKvtj:qn̮ھO>&hCT '.L^rXq/G.7ur?pu0 IC7g҈$tKdԋ !8_Z eaCTU5CAb1ROF.UC,
+endstream
endobj
5406 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 575.085 null ] >>
-endobj
-5407 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 564.127 null ] >>
+<< /Type /Page /Contents 5407 0 R /Resources 5405 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5315 0 R >>
endobj
5408 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 553.168 null ] >>
+<< /D [ 5406 0 R /XYZ 78.37 808.885 null ] >>
endobj
5409 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 542.209 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 768.832 null ] >>
endobj
5410 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 531.25 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 757.873 null ] >>
endobj
5411 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 520.291 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 746.914 null ] >>
endobj
5412 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 509.332 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 735.955 null ] >>
endobj
5413 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 498.373 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 724.996 null ] >>
endobj
5414 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 487.414 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 714.037 null ] >>
endobj
5415 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 476.455 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 703.078 null ] >>
endobj
5416 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 427.884 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 692.119 null ] >>
endobj
5417 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 416.925 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 681.16 null ] >>
endobj
5418 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 405.966 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 670.202 null ] >>
endobj
5419 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 395.007 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 659.243 null ] >>
endobj
5420 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 384.048 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 648.284 null ] >>
endobj
5421 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 373.089 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 637.325 null ] >>
endobj
5422 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 317.446 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 626.366 null ] >>
endobj
5423 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 306.487 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 615.407 null ] >>
+endobj
+73 0 obj
+<< /D [ 5406 0 R /XYZ 79.37 589.953 null ] >>
endobj
5424 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 295.528 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 360.519 null ] >>
endobj
5425 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 284.569 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 349.56 null ] >>
endobj
5426 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 273.61 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 338.601 null ] >>
endobj
5427 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 262.651 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 327.642 null ] >>
endobj
5428 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 251.692 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 316.683 null ] >>
endobj
5429 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 240.733 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 305.724 null ] >>
endobj
5430 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 229.775 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 294.766 null ] >>
endobj
5431 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 283.807 null ] >>
endobj
5432 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 272.848 null ] >>
endobj
5433 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 261.889 null ] >>
endobj
5434 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 213.072 null ] >>
endobj
5435 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 202.113 null ] >>
endobj
5436 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 191.154 null ] >>
endobj
5437 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 180.195 null ] >>
endobj
5438 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 169.236 null ] >>
endobj
5439 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 158.277 null ] >>
endobj
5440 0 obj
-<< /D [ 5403 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 5406 0 R /XYZ 81.077 102.487 null ] >>
endobj
-5402 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R /F73 189 0 R /F69 183 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-5443 0 obj
-<< /Filter /FlateDecode /Length 2492 >>
-stream
-xڵZ[۸~ϯ0
-4I] %$g2 "E6'<nx.<<i[/xE_|ke)atq}@# T"IBI$mc}z-E2)Y:{jT$/m73UN!0"z=xstY׺[0Zr _(*,M,C38OYtF˦)")y9LYMΓ`pDTJ/;=GbXyT 10;@ˆ2?'<LnYmzuqf[O&I]y]m,-W5<yN,9uW<<f>8sezME*2@'@ϋ%K Ƨ6}cժ7zhǒmCZq)>$
-$Bݫnݴ/m
-(O 8┆֚]~+kn 63LîLaX0PES?4&c. >^t17Dں 0]DĐKzzմy_iz|($FiUB@,̭0׃])O\G' 0SRyhbЀA]P5t}79QqX,s\4$H6 ˆ{8C,#)9K40}gå1Z|l+g64E;B%g
-X6pm]6L:MAc.~B7<ŏb$D,?1K՛iYߋ%CVg=*M?QNP!Q0@)3B~f!
-̚@Q$hs;+/4(/Mm/4ڤ=KqqfaМ?G6DUT(H;|8·;%}S|
-zP&V|z,*1袕sSܧG3:NMoncW Tz~]̒b<g3x9Yj}"ɫHGhF2$@B-oA05U:*۶uFֿp&qŠiMaT67:Ndcnp#<0};m;Xy199CbD6¶`Z{/ +5WX ,cnp:j"S~EC7j6E[cf-[q5z4x}O|>\2^9ez_7FU%]Svuw)q,cջXL
-{ dT b%(j>{,~snO|e\"=wFc粼&iJ'ō}Z(ůc%f9drUd7M[~n>.FW=
-&QS=@PGk`Q>[8=`vn'GU¡n
-o+{A]Pp|gJ|sQk"΢9zbEmy^8E~=2Π ;cqϴ gIWrEA%_Y0GˆGqG:^=,*U!DԛmpU9" Ē)Z(/Srͷ[]<eUsC1y_T!( H)Fsn"ho]88>Z)O֫
-p_l$P$vW]AOL'+sH7ܚ0&7y^Ǿe(H4ҭªrj{&l}q\پL+rdIۦiI[wn
-endstream
+5441 0 obj
+<< /D [ 5406 0 R /XYZ 81.077 91.528 null ] >>
endobj
5442 0 obj
-<< /Type /Page /Contents 5443 0 R /Resources 5441 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5406 0 R /XYZ 81.077 80.569 null ] >>
endobj
-5444 0 obj
-<< /D [ 5442 0 R /XYZ 78.37 808.885 null ] >>
+5405 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5445 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 768.832 null ] >>
+<< /Filter /FlateDecode /Length 2357 >>
+stream
+xڵZ[o~ϯ0U GAg(YL!t]bb!I2HѢ8fX7~<~t]銸|u T)Y\ݜah/H`\fόIuB-
+i0g1}7LTiN*"M9 Y2C/&Yf4#ԙԩCHpBEBsBD:M%TN\ "$1R8[onuWz.?.wUՕme[]8 Z6u/ǖlf>j@"\ a/B:E<1McΉ^Q]w~8'"{j9zs7հx>Nuӻ_rzp '',!Ξ6:H~*ZP1۵<Z(Dq)#Ő_Ja9Cy<*}8.4!hjnʴַCݚKO@1C=Hѱӎ{k#EHAKp0\\pv򬍹[oT0YZ?tַu[va:+`<'FS~NM1L4$GFcu᧛VdJWW# crx@"/'KZU"trQAC!"MgZpeglPDeA#pH@؉"FZvO~kx!1remjH@Xf=uvf7%8*AҌ':bUOC@1:=E \HA ,@r](FhNܹ7X-yȼ 9ΑR!rty]UspdL3/Bif~~r$a$dG.(IN .R}}gB}B9 ʒͣP]Lʍa0??4ɆnT;oSZ{v4/rH*G+1Ktn8^qq3ZJ[2C/FB!Y|*=C֠J K<y*XTCwwZ^dnxS 8 uQ[a)bk.&P<K`/ q 1H~8nC$Tͫ0#xܷvviCFLbQ."bQ?L?t^
+ l'֏h7&H1ɵ
+2[/c=p&YNDZI}@@G:Bv;@Ay[%޻qbM $𸼩͊5zMv]HI;' 0B1Y6' [%s>Χq'#(CyZѣ2);'\XeZfO9#9GpZozw;+*ݸY,unF{=ol#ƋMTL x,"ӓQ[QrLC)g۲~0pK$ &"n@ͻ'ԔݭeEEtl;z*m^v^ 0ۦP50/=t_j[PV<Z)x7n* {ںvMo|f*aWޣC9{:W6 T{ t r<ٴLӳqȃB!RyqK
+endstream
+endobj
+5444 0 obj
+<< /Type /Page /Contents 5445 0 R /Resources 5443 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5315 0 R >>
endobj
5446 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5444 0 R /XYZ 78.37 808.885 null ] >>
endobj
5447 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 768.832 null ] >>
endobj
5448 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 757.873 null ] >>
endobj
5449 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 746.914 null ] >>
endobj
5450 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 735.955 null ] >>
endobj
5451 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 724.996 null ] >>
endobj
5452 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 675.765 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 714.037 null ] >>
endobj
5453 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 664.806 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 661.235 null ] >>
endobj
5454 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 582.674 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 650.276 null ] >>
endobj
5455 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 571.716 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 639.317 null ] >>
endobj
5456 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 560.757 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 628.358 null ] >>
endobj
5457 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 549.798 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 617.4 null ] >>
endobj
5458 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 538.839 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 606.441 null ] >>
endobj
5459 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 527.88 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 595.482 null ] >>
endobj
5460 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 516.921 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 584.523 null ] >>
endobj
5461 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 505.962 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 573.564 null ] >>
endobj
5462 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 495.003 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 562.605 null ] >>
endobj
5463 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 484.044 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 551.646 null ] >>
endobj
5464 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 473.085 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 540.687 null ] >>
endobj
5465 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 462.127 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 529.728 null ] >>
endobj
5466 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 451.168 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 518.769 null ] >>
endobj
5467 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 387.431 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 507.811 null ] >>
endobj
5468 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 376.472 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 496.852 null ] >>
endobj
5469 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 365.513 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 485.893 null ] >>
endobj
5470 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 354.554 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 455.009 null ] >>
endobj
5471 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 343.595 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 444.05 null ] >>
endobj
5472 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 315.724 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 359.367 null ] >>
endobj
5473 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 304.765 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 348.408 null ] >>
endobj
5474 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 293.806 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 337.449 null ] >>
endobj
5475 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 282.847 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 326.49 null ] >>
endobj
5476 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 271.888 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 315.532 null ] >>
endobj
5477 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 260.929 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 304.573 null ] >>
endobj
5478 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 249.97 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 293.614 null ] >>
endobj
5479 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 239.011 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 282.655 null ] >>
endobj
5480 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 228.053 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 271.696 null ] >>
endobj
5481 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 217.094 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 260.737 null ] >>
endobj
5482 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 206.135 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 249.778 null ] >>
endobj
5483 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 195.176 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 238.819 null ] >>
endobj
5484 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 184.217 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 227.86 null ] >>
endobj
5485 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 173.258 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 163.103 null ] >>
endobj
5486 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 152.144 null ] >>
endobj
5487 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 141.185 null ] >>
endobj
5488 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 130.226 null ] >>
endobj
5489 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 119.268 null ] >>
endobj
5490 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 90.376 null ] >>
endobj
5491 0 obj
-<< /D [ 5442 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 5444 0 R /XYZ 81.077 79.417 null ] >>
endobj
-5441 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R /F76 318 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+5443 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5494 0 obj
-<< /Filter /FlateDecode /Length 1926 >>
+<< /Filter /FlateDecode /Length 1989 >>
stream
-xZ[o~ϯpxi;mawjb-2<(d>%b$~<9Q͂.~(7t}.X_a0.hY5#T~k&sC5 C`F,Ƅ|苦z*vj{l?|*M?ͺź`ZW^vyE <ggRв%L _&SlE_ ^b?<B0#9q9Q2E rlylK<JmuSuTu pbˡƯidn&~Df7!Va^aVAF);2t+]5K}onJYWm$]r.MEG1MpY4'RCř%FW+Fd"x#Ϋ%Lc!Z#_ws-²8ebw^f![\Ix9"Dt+q_w_0 x5QyVl"93A6.A$ K'$?&~ԫ l N}VkRy Ѿ$#P}wW\~ g]faidC>۰t%@Go{5<(kK7^irB KF{5a :ޢ jXjEq87_H% g<Pu+ w
-Őpu G>F7RpmN4ט&(aNbt0
-BUU|.lҔ7$3AS.\BZsKDN(tC߃ )<9aL+*TMJRKZK{j-F&{~͏Ҁܺۑ @x {}Sv*
-]Durc91qw=7rvY#wI`Мr M/?~b`t'$% 15 Ye/PmfucqmW _uۜ,N*P=bt{cW5a;'ц@Jۂk܁WpJnM&&4"W/Q,kk6m,t7) Nx8O%_o_/6]{GKUHA|< v45nέ%& WQ9CZ뫗)C`6R/F3^G.a#5\kb0waa(&4 c1D)xZWva̘!4
-RC/,tN`x! աj9'=J0240CBgkٚ8:1NX0djB hPh3g>֡Οu| k2K ߓ W9waxdF"|<2%M Sȹ Pg}U{?'jݘ幚  %z玖~"eKrwsZm'%SDTw4!H&T>䪮k=bV5z]pHb5Ǥs7CݳoWv74YYWQ1cьߺr-u+Cٻ0qC9}ӼIΓv8 /cS} WqB޴C'X:-=GӸzn uh;a+R J# waϻS)?ji޾Q,rI)&;wΜ8B1\:]ʮZ5w*th_~H@>`tqф_AA rJMUS
-}#*o`:;; kB^fSd/o׍D
+xZ[6~_a0E@
+~D$ >z1xhY2J4#Tza,C's}0! K<Mۼ& \b(a{:ne.L
+/_'["?,Os>W\v6U_禊y]}50#FQk[5*pJRޫ.fյTe^7C&l~tV*J5Z{E.B4Zx\
+2a)n BX7~BSU*VH<bQVLRf_:o1; kO,@xYϟW0e_'FoMwyn9=6?0s$KYMX@vl,QA)щ'*mgJ5?DHM:yJCfZjUMx2~)ʅEǫ̷ӧ=7|=o{뽸wk0q`9
+A DQ@AUTgnOKԞ2{uеZy7ܪf̅e-CWvBYBñ)JoŦ ľ꽹1+cH2V]>Sd"T,IH"WL ' +Ӻg{pd>ZEy>VhU 5zDh/wy1XZYB-ɕ}+cD$BeNf#XM%UO|~Sk
++:0ԕRWMd60.D&4)DlNx_1Ь7YHrjBɍhH2j/E,P" '$pB}r;{m2Z):﫳76.n%[-3uQ8/ 7>8)tY@AA`?!mpO2!O&xM_ }(<xoT Õ^o$ Ч <6Z6!B |n@D KGr}2cy4N}KŽ/] gy0ԒD ap/pk=?MFnLq!BmX:Oo^{Ve9%G/WL q%BK\"#M>E~f Ay+} sBOЗ~mg0S=ǝFˆ?C:@!^m)BI8d[G[ei*O?guq<Y[Sg _8;dJ!z|tG7'i^æg2!xP
+\8%4[O ssێZsWfR4zn] \{YS7 Z._RuJN㭲?꘸:VӺz.gö7E1nOçC"6]0TFhthBX 4B;,`!7S(ʇ+rULW1Uy1f8Ҥϡ+{(7{\4=Gl-J8 #$Dڑ.VܭI\
+0t!#jryq=۴GUQN7҅_tǂxu CX[t#ƢN n. dssk`yuH$%vl`z
endstream
endobj
5493 0 obj
-<< /Type /Page /Contents 5494 0 R /Resources 5492 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /Type /Page /Contents 5494 0 R /Resources 5492 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5315 0 R >>
endobj
5495 0 obj
<< /D [ 5493 0 R /XYZ 78.37 808.885 null ] >>
@@ -17537,1246 +17607,1230 @@ endobj
<< /D [ 5493 0 R /XYZ 81.077 648.284 null ] >>
endobj
5508 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 607.437 null ] >>
endobj
5509 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 596.478 null ] >>
endobj
5510 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 585.519 null ] >>
endobj
5511 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 574.56 null ] >>
endobj
5512 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 563.601 null ] >>
endobj
5513 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 552.642 null ] >>
endobj
5514 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 536.702 null ] >>
endobj
5515 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 525.743 null ] >>
endobj
5516 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 514.784 null ] >>
endobj
5517 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 503.825 null ] >>
endobj
5518 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 492.867 null ] >>
endobj
5519 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 481.908 null ] >>
endobj
5520 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 470.949 null ] >>
endobj
5521 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 459.99 null ] >>
endobj
5522 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 449.031 null ] >>
endobj
5523 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 438.072 null ] >>
endobj
5524 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 427.113 null ] >>
endobj
5525 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 416.154 null ] >>
endobj
5526 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 405.195 null ] >>
endobj
5527 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 424.311 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 394.236 null ] >>
endobj
5528 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 370.169 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 383.278 null ] >>
endobj
5529 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 359.21 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 372.319 null ] >>
endobj
5530 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 348.251 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 361.36 null ] >>
endobj
5531 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 307.591 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 350.401 null ] >>
endobj
5532 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 296.632 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 339.442 null ] >>
endobj
5533 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 285.673 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 328.483 null ] >>
endobj
5534 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 274.714 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 317.524 null ] >>
endobj
5535 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 263.756 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 306.565 null ] >>
endobj
5536 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 252.797 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 295.606 null ] >>
endobj
5537 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 241.838 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 284.647 null ] >>
endobj
5538 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 230.879 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 273.688 null ] >>
endobj
5539 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 219.92 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 262.73 null ] >>
endobj
5540 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 208.961 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 251.771 null ] >>
endobj
5541 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 198.002 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 240.812 null ] >>
endobj
5542 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 187.043 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 229.853 null ] >>
endobj
5543 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 176.084 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 218.894 null ] >>
endobj
5544 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 207.935 null ] >>
endobj
5545 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 191.995 null ] >>
endobj
5546 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 137.2 null ] >>
endobj
5547 0 obj
-<< /D [ 5493 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 5493 0 R /XYZ 81.077 126.241 null ] >>
+endobj
+5548 0 obj
+<< /D [ 5493 0 R /XYZ 81.077 115.283 null ] >>
endobj
5492 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F70 185 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-5550 0 obj
-<< /Filter /FlateDecode /Length 1631 >>
+5551 0 obj
+<< /Filter /FlateDecode /Length 1789 >>
stream
-xZnH+t&NOAq0sɷɀ-!@EquYV |$_WޫvnFg.+#f8].436hffF3B5]g&
->+f8) Ib+r[SbџwM}IjyNDHtHDDnLceuN ©(ܚLѱ'\J["BqH[*כ1\~ /ݻn)][vo;2­Y\S42ePv}wF.2Aܡh֖Hjw%ŞM^nmUˬYºmLˢt!R:;-?`5UύdDD>X fYۺڶn [g_2q):|ގs]gM!4uz^~LX6EO 3IJ[ x W SDwtL9Cs>_!jMrs=o2WCލ-Ǡ
-aSqMU;ɛaz!p~g;
-bwJ FnxOMpb=JpN'zMeUSf'LxIxhEO Ȇ'
-D8FtMCiAQ\S⠒o?MW5Y2CW1\S 52oIm)-GiB7JbGIRɛs ySE- B#5T7(@y- O}Lu7'u >Tjy|L'gM?n A5mR7ˢ|;<e>}/ ӣ{tWc#Ã^LCAFj*A۝̠띍Ap
-z'O9["X`*FhHPp?ѝM`y?-fR -n`;#O2EN)JQ4E}xܜ51`O3L!6*/=_Zp4 (}8oOCw5ΨE*)뾰7ϺӶ/5QKKݟC+>ap r/Dyl@Ƚ~‚G"pǓJ+ t;{
-<ę1_Ji
+xڽYKo6Whw&Xh-Мm%Vf`{D{m/L|3"dqHJߏG??|!5Eɂ."V$.7?p. Jq3S*EDX*;9[K&2!-SϟqGPGp ywrV}r*x '$g F0 WiW;Th&Td`c" hERA9LM$<A=LfD) Z ;Ja %݋Oė2.' ip~_:i"DS*-Y1"xp9G>k'֔9\,=
+r +Z6'+{8.,@s8*VLev7Y=*\ovs?)ie-ʬ+@.\f˖%qjr*zϩA?Td+^\H-om;%6++^m!B0aD!ԍ{eATe\n+ձ`vʰ^1͊7"[]~mY~G_f~ү9\iش~8J:w~W&drE,*w:*[{{~}{㉺laEStzw7=.貨ٍ%Ljaf.DˁH7pkido6u3͎.iC6L0Ӟtֵ3%}H%!+zC
+FA9}h"G?/CD$>EOJ`oK.YNyOQO47kvd{s4.4!TI;suSooӼZ t"PD"#rQeZfܧYYTh:C#4AdHx@0L4v퓊 l6wו>cE$(ԡv4-B#Y eUkRxHޛb.70L qq!Be3Hɞ']eӫ ՄO@O)LF`e3W:s
+N]z9D'-+\ Уh\tR35`P7MIok3c y28"s(jbM*ZCRMeq BZ*~JsNP(B<UdяN%o^es6=P%BҎd *@#xUڊ/ *g뾎!Gp/G*yN~J"I{s
+qQ5BB&!o:ߡQ0;5\"ר7ETZ|r3Bi;sU'hHfH uIp;jSAݲQSeGV)6`\R Ci|>?G<
endstream
endobj
-5549 0 obj
-<< /Type /Page /Contents 5550 0 R /Resources 5548 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
-endobj
-5551 0 obj
-<< /D [ 5549 0 R /XYZ 78.37 808.885 null ] >>
+5550 0 obj
+<< /Type /Page /Contents 5551 0 R /Resources 5549 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5315 0 R >>
endobj
5552 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5550 0 R /XYZ 78.37 808.885 null ] >>
endobj
5553 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 768.832 null ] >>
endobj
5554 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 741.933 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 757.873 null ] >>
endobj
5555 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 746.914 null ] >>
endobj
5556 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 735.955 null ] >>
endobj
5557 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 724.996 null ] >>
endobj
5558 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 714.037 null ] >>
endobj
5559 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 703.078 null ] >>
endobj
5560 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 692.119 null ] >>
endobj
5561 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 681.16 null ] >>
endobj
5562 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 649.28 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 670.202 null ] >>
endobj
5563 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 633.34 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 659.243 null ] >>
endobj
5564 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 622.381 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 648.284 null ] >>
endobj
5565 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 591.497 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 637.325 null ] >>
endobj
5566 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 580.538 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 572.568 null ] >>
endobj
5567 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 569.579 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 561.609 null ] >>
endobj
5568 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 558.62 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 550.65 null ] >>
endobj
5569 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 547.661 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 539.691 null ] >>
endobj
5570 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 536.702 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 528.732 null ] >>
endobj
5571 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 525.743 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 517.773 null ] >>
endobj
5572 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 514.784 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 501.833 null ] >>
endobj
5573 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 503.825 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 490.874 null ] >>
endobj
5574 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 492.867 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 479.915 null ] >>
endobj
5575 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 468.956 null ] >>
endobj
5576 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 457.997 null ] >>
endobj
5577 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 447.038 null ] >>
endobj
5578 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 436.08 null ] >>
endobj
5579 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 425.121 null ] >>
endobj
5580 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 409.18 null ] >>
endobj
5581 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 393.24 null ] >>
endobj
5582 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 382.281 null ] >>
endobj
5583 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 351.397 null ] >>
endobj
5584 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 340.438 null ] >>
endobj
5585 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 329.479 null ] >>
endobj
5586 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 318.52 null ] >>
endobj
5587 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 307.561 null ] >>
endobj
5588 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 296.603 null ] >>
endobj
5589 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 285.644 null ] >>
endobj
5590 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 274.685 null ] >>
endobj
5591 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 263.726 null ] >>
endobj
5592 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 252.767 null ] >>
endobj
5593 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 205.943 null ] >>
endobj
5594 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 194.984 null ] >>
endobj
5595 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 184.025 null ] >>
endobj
5596 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 173.066 null ] >>
endobj
5597 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 162.107 null ] >>
endobj
5598 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 151.148 null ] >>
endobj
5599 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 140.189 null ] >>
endobj
5600 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 129.23 null ] >>
endobj
5601 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 118.271 null ] >>
endobj
5602 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 118.271 null ] >>
-endobj
-5603 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 5550 0 R /XYZ 81.077 107.312 null ] >>
endobj
-5604 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 96.354 null ] >>
-endobj
-5605 0 obj
-<< /D [ 5549 0 R /XYZ 81.077 85.395 null ] >>
-endobj
-5548 0 obj
+5549 0 obj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-5608 0 obj
-<< /Filter /FlateDecode /Length 1459 >>
+5605 0 obj
+<< /Filter /FlateDecode /Length 1689 >>
stream
-xZMo6WY@@{ʭ[-'BeɵAK9th/q`i7f&f_ǫN4Jήg?$f8,j5;}6<kO(8rgTnuQMVm۾;7lşզCὦVr6pB5F
-I4**
-RC .a AIC/]m2r[v/)5)fgB<c? *PPi
-h~l!A9<eX'Cɩ[zK p}x;Cc{6cO2^6~R?ֈQT/go˨Gy/TϚ)xǧj" XD<58qHOy3.P'Arf'3Hp􋉠yn95+)V$it<!hKN/fa#FAZ@ ]tuɪL
+xZK6Wh1cA&h9) M
+%W&.4xA.~f!e:t|{;&8͵\_0@'lbfb4#Tfr6BN;}PӢ͹Vk5/fN}U6Q7llf]pz9B|dB7o_yyV,v}$$F'+W' + gV+9/azn`a[$@:¨
+6#C;8$ht>@ 窃RX'T:$Ձ
+1$tzGю!AI8m<$ 
+ICf`' M )+[Eme{_&ǯh y;a-cx-_W}>CJ*TJc0e1L4 Af2:t N>+KAhYtHs"cqǣ[g{u]pQ@Dr6Ha79O:p1\h|"BaE zw;zCev9SH# Ͱ3e:wRp/͢ۺjn|t}Sjh.zQA;aj4Z+tD@LPPh؃7 ΍=Y@i5Z7D}U[TU'h|J& :nifmo@{Kj;I, }&9$'O\ĆB⸝D [6X86 v@bEIå.g(q&0,.%=ؗP_g2QnasG
+Ldv%iNOW]+ ss<F?]|Ʃ!L 8,FHiLPAQEì"O0ZC"brV1na.p|ܹb>;Ѽ5ݸcu'!D}p␠;w.lۇBU-z'B8Hh`| X$~ۼL Qž5;ZJлo hxr_^(1ԁ߅Pj0jH)AXÖ5+oKS Qr8?K=x 0",#hX2s-ACn/LjʊF'h7?ZqGȮ;v6!
endstream
endobj
+5604 0 obj
+<< /Type /Page /Contents 5605 0 R /Resources 5603 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5315 0 R >>
+endobj
+5606 0 obj
+<< /D [ 5604 0 R /XYZ 78.37 808.885 null ] >>
+endobj
5607 0 obj
-<< /Type /Page /Contents 5608 0 R /Resources 5606 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5604 0 R /XYZ 81.077 740.936 null ] >>
+endobj
+5608 0 obj
+<< /D [ 5604 0 R /XYZ 81.077 729.977 null ] >>
endobj
5609 0 obj
-<< /D [ 5607 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 719.019 null ] >>
endobj
5610 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 708.06 null ] >>
endobj
5611 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 697.101 null ] >>
endobj
5612 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 686.142 null ] >>
endobj
5613 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 675.183 null ] >>
endobj
5614 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 664.224 null ] >>
endobj
5615 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 653.265 null ] >>
endobj
5616 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 642.306 null ] >>
endobj
5617 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 631.347 null ] >>
endobj
5618 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 620.388 null ] >>
endobj
5619 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 609.429 null ] >>
endobj
5620 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 637.541 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 598.471 null ] >>
endobj
5621 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 626.582 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 587.512 null ] >>
endobj
5622 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 615.623 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 576.553 null ] >>
endobj
5623 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 604.664 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 565.594 null ] >>
endobj
5624 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 593.705 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 554.635 null ] >>
endobj
5625 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 582.747 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 543.676 null ] >>
endobj
5626 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 571.788 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 532.717 null ] >>
endobj
5627 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 560.829 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 521.758 null ] >>
endobj
5628 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 549.87 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 510.799 null ] >>
endobj
5629 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 538.911 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 499.84 null ] >>
endobj
5630 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 527.952 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 488.882 null ] >>
endobj
5631 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 516.993 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 477.923 null ] >>
endobj
5632 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 506.034 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 466.964 null ] >>
endobj
5633 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 495.075 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 456.005 null ] >>
endobj
5634 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 484.116 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 445.046 null ] >>
endobj
5635 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 473.157 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 434.087 null ] >>
endobj
5636 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 462.199 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 423.128 null ] >>
endobj
5637 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 451.24 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 412.169 null ] >>
endobj
5638 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 440.281 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 379.292 null ] >>
endobj
5639 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 429.322 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 368.334 null ] >>
endobj
5640 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 418.363 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 357.375 null ] >>
endobj
5641 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 407.404 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 346.416 null ] >>
endobj
5642 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 396.445 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 335.457 null ] >>
endobj
5643 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 385.486 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 324.498 null ] >>
endobj
5644 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 374.527 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 313.539 null ] >>
endobj
5645 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 363.568 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 302.58 null ] >>
endobj
5646 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 352.61 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 291.621 null ] >>
endobj
5647 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 341.651 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 280.662 null ] >>
endobj
5648 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 330.692 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 269.703 null ] >>
endobj
5649 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 319.733 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 258.745 null ] >>
endobj
5650 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 308.774 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 247.786 null ] >>
endobj
5651 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 297.815 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 236.827 null ] >>
endobj
5652 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 286.856 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 225.868 null ] >>
endobj
5653 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 275.897 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 214.909 null ] >>
endobj
5654 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 203.95 null ] >>
endobj
5655 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 192.991 null ] >>
endobj
5656 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 182.032 null ] >>
endobj
5657 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 171.073 null ] >>
endobj
5658 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 160.114 null ] >>
endobj
5659 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 149.155 null ] >>
endobj
5660 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 138.197 null ] >>
endobj
5661 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 127.238 null ] >>
endobj
5662 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 116.279 null ] >>
endobj
5663 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 105.32 null ] >>
endobj
5664 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 94.361 null ] >>
endobj
5665 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 144.39 null ] >>
-endobj
-5666 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5604 0 R /XYZ 81.077 83.402 null ] >>
endobj
-5667 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 122.473 null ] >>
+5603 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5668 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 111.514 null ] >>
+<< /Filter /FlateDecode /Length 2049 >>
+stream
+xZKoFW 6~䔾^B),I1ΒjWV$XǷqfYtt7(??_}}#IeoDGld5̌fj6^K'\ok7i-l f0E顑S%`[g#2~Vww~H8¤$Q^ۦ}Z;{7<fZ͓[¬ <g~)1?
+4.bWm :6ٖpҊ"`ۢl'/})XItQ% "V<&`ۦhoe^-wE[\ ͉AñMSa$ =K *F B8.1o[m,H:SA\J9E9OcWC
+BdP oY\4urJhv9[Ίպ}zzY_P 45D~J\_95AA%OVVY 4 a6ip.6+2]Hp>M٪ Ҡ~h|~(N ¦qʛ}~UM9v=+>e˷erevf/tdڠ.'h3a:PBMb Ըv9A._$:BiX*'tPDSZ_i 6HƵ ohxh5NԊq#F;xH% gA2 E-*a'A̫E-')4a"5 _<Q"v-T/-.Pꋻa-*861!tAAu= nf,``+"ʆ8TN/TD󠑖sz RA! 2F8'ٴ9A1bdK+pb)TGd:A_pA -NpcA4-5Fۆ,sAdA=1xx^zay(M9Sh!?W)p(R'v6`Ĝ! Rh{hz2FjyeƟ&2&/r{_x '?-\1MG{F~Ƚ=#yX~VݎK?&`VFSy0~}
+:~8i+N({uy'
+cP@zA8h]qV?_'mJ!$<?vo}L܎}NAj.Äq1/QfCz*A_XИ)w<c^<;VLr91zntJ18c֨{nt:qDe
+=Nz3es{gc;r;Aq{\Dl/_>,⻺ΞohS~Fmͺvø> @"I )Jxh)IMu|xhU+Iu"׎
+endstream
+endobj
+5667 0 obj
+<< /Type /Page /Contents 5668 0 R /Resources 5666 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5315 0 R >>
endobj
5669 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5667 0 R /XYZ 78.37 808.885 null ] >>
endobj
5670 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 768.832 null ] >>
endobj
5671 0 obj
-<< /D [ 5607 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 757.873 null ] >>
endobj
-5606 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-5674 0 obj
-<< /Filter /FlateDecode /Length 2335 >>
-stream
-xڵZ]s}P}Xj5|Ϩ*U{TON^r
-#$E@Zq
-C ϔ@˙nvΙfj񯛿ڱ>}z1 `@AGe\TEۦaFyg{~Z,9op(.`?ޅ0ev2jkֻ7:%"['eNR g.v ڦ&h& MquuX~>}6BsDie^ArO޶Cik_h[#tOX'^HӵJ&ʷYF
-AVָsh=ʋI{1b
-W~ތ`B
-R\GU4Q;2LG*w,Y+pS" V6EU0B\[5J4*8At:l-0ߒۣ@"AF
-m<*-y<|y#\QZKNq#yA{3K2ceA
-,
-?voz8'H1O #h
-UmEAߴWMd| .k0dN^#
-=~@ayǮԈз8NŒJ>.u+ZP<dYtkJ6Ovst'yrߝ`=|gɼ[7>}zf^vq¡PܘQу/
-18kB+1H^P?Aw!MBQPx>k1h:9qiu4],N54 rMqҳB.Q1.Îs
-32šγ C2/L}<G#Jv戡ڪ\z4`78oNkmgnR8cUEϧIM)27U/[N`< y<P8 @Y-YFpU=t/OdKcHFS  Uz2*AyE+z~C#ľnin@/Uwכ.^92Ǘhq!QL3eYZ7T:QS3O<x~ btwQ˲E+G(0
--#XE ~_p4"K0rIIBDO ]aX*)@Cm-[9Fܰ_ɾI:)Gݦ4)-,oM ゞR񨋹+o7a\U˅6E4
- &SA@) (Uݡ(Ol͏*((#y:vUG^* .389,TK࠽uǰ,vt>Yu҄yQF'KQ$6K bs5c:vBrCਇuo3F;q&>WP/
-dj.}>,I\9wp|h."~r,?âl"';6cyAJUv)<Fke2Ͻ}/܁6s)ֆNQҹ^[#B7f;IUvx?_
-5H?vyTUQ&E(ߤUT~ F
-hA/$0NMiPZ:;~F8Ow_Yрlthd/
-endstream
+5672 0 obj
+<< /D [ 5667 0 R /XYZ 81.077 746.914 null ] >>
endobj
5673 0 obj
-<< /Type /Page /Contents 5674 0 R /Resources 5672 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5667 0 R /XYZ 81.077 735.955 null ] >>
+endobj
+5674 0 obj
+<< /D [ 5667 0 R /XYZ 81.077 724.996 null ] >>
endobj
5675 0 obj
-<< /D [ 5673 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 714.037 null ] >>
endobj
5676 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 703.078 null ] >>
endobj
5677 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 692.119 null ] >>
endobj
5678 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 681.16 null ] >>
endobj
5679 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 670.202 null ] >>
endobj
5680 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 659.243 null ] >>
endobj
5681 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 648.284 null ] >>
endobj
5682 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 637.325 null ] >>
endobj
5683 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 626.366 null ] >>
endobj
5684 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 615.407 null ] >>
endobj
5685 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 604.448 null ] >>
endobj
5686 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 593.489 null ] >>
endobj
5687 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 582.53 null ] >>
endobj
5688 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 571.571 null ] >>
endobj
5689 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 560.613 null ] >>
endobj
5690 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 549.654 null ] >>
endobj
5691 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 538.695 null ] >>
endobj
5692 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 527.736 null ] >>
endobj
5693 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 516.777 null ] >>
endobj
5694 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 505.818 null ] >>
endobj
5695 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 494.859 null ] >>
endobj
5696 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 483.9 null ] >>
endobj
5697 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 472.941 null ] >>
endobj
5698 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 527.736 null ] >>
-endobj
-77 0 obj
-<< /D [ 5673 0 R /XYZ 79.37 502.281 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 461.982 null ] >>
endobj
5699 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 327.642 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 451.023 null ] >>
endobj
5700 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 316.683 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 440.065 null ] >>
endobj
5701 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 305.724 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 429.106 null ] >>
endobj
5702 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 294.766 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 418.147 null ] >>
endobj
5703 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 283.807 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 407.188 null ] >>
endobj
5704 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 272.848 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 396.229 null ] >>
endobj
5705 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 261.889 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 385.27 null ] >>
endobj
5706 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 250.93 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 374.311 null ] >>
endobj
5707 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 239.971 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 363.352 null ] >>
endobj
5708 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 229.012 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 352.393 null ] >>
endobj
5709 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 218.053 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 341.434 null ] >>
endobj
5710 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 207.094 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 330.476 null ] >>
endobj
5711 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 196.135 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 319.517 null ] >>
endobj
5712 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 185.176 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 308.558 null ] >>
endobj
5713 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 174.218 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 297.599 null ] >>
endobj
5714 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 163.259 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 286.64 null ] >>
endobj
5715 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 152.3 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 275.681 null ] >>
endobj
5716 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 141.341 null ] >>
+<< /D [ 5667 0 R /XYZ 81.077 264.722 null ] >>
endobj
-5717 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 130.382 null ] >>
+77 0 obj
+<< /D [ 5667 0 R /XYZ 79.37 242.175 null ] >>
endobj
-5718 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 119.423 null ] >>
+5666 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F76 318 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5719 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 108.464 null ] >>
+<< /Filter /FlateDecode /Length 1442 >>
+stream
+x͚KoFrqfP (
+
+×>E)Htp>{z8p$ŴIڙm&wgb{~;SQ K"[2gjz/)}K2Z0
+ P&דbPUWF}q;&nVT#y7WFtF
+"~^ U
+!4 `yAhv (%?VG0ZS%mrRK6HAjV"4m%oyR*>K]O'SJ*$x.B?W(A4g)'B%]tw{4({)Crk}>Ɓ '(Ɋ++~Ux1BŀT:J68liG+!4G/"Q3I)sK,$Ԟ,O*UcXQn;
+@/49ѥ6@XzGbhZ3Ղ% +v &YDВլ_[Z>{͛F~^ŏh
+ q'x.B?
+djqĐŦg]PZim{y{u3
+endstream
endobj
-5720 0 obj
-<< /D [ 5673 0 R /XYZ 81.077 97.505 null ] >>
+5718 0 obj
+<< /Type /Page /Contents 5719 0 R /Resources 5717 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5315 0 R >>
endobj
-5672 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F76 318 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
+5720 0 obj
+<< /D [ 5718 0 R /XYZ 78.37 808.885 null ] >>
endobj
-5723 0 obj
-<< /Filter /FlateDecode /Length 1475 >>
-stream
-xZn6}Wؗ2 o
-
-\Yɪ+K4o/ex
-WB4~mʯF 6\;OQy_ci E*j 5TyT)+u7X$iWG,i$x,"?u$bdig]{r<&iVÎA>\E&`Z_C݋ R8Y!|g?!z
-N>L{>)* pP8]E1NP`=7(eNtRHXܱK!qʉ28-:jO
-endstream
+5721 0 obj
+<< /D [ 5718 0 R /XYZ 81.077 768.832 null ] >>
endobj
5722 0 obj
-<< /Type /Page /Contents 5723 0 R /Resources 5721 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5309 0 R >>
+<< /D [ 5718 0 R /XYZ 81.077 757.873 null ] >>
+endobj
+5723 0 obj
+<< /D [ 5718 0 R /XYZ 81.077 746.914 null ] >>
endobj
5724 0 obj
-<< /D [ 5722 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 735.955 null ] >>
endobj
5725 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 724.996 null ] >>
endobj
5726 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 714.037 null ] >>
endobj
5727 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 703.078 null ] >>
endobj
5728 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 692.119 null ] >>
endobj
5729 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 681.16 null ] >>
endobj
5730 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 670.202 null ] >>
endobj
5731 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 659.243 null ] >>
endobj
5732 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 648.284 null ] >>
endobj
5733 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 637.325 null ] >>
endobj
5734 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 626.366 null ] >>
endobj
5735 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 615.407 null ] >>
endobj
5736 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 604.448 null ] >>
endobj
5737 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 593.489 null ] >>
endobj
5738 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 582.53 null ] >>
endobj
5739 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 571.571 null ] >>
endobj
5740 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 560.613 null ] >>
endobj
5741 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 549.654 null ] >>
endobj
5742 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 538.695 null ] >>
endobj
5743 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 549.762 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 506.139 null ] >>
endobj
5744 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 538.803 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 495.18 null ] >>
endobj
5745 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 527.844 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 484.221 null ] >>
endobj
5746 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 516.885 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 473.262 null ] >>
endobj
5747 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 505.926 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 462.304 null ] >>
endobj
5748 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 494.967 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 451.345 null ] >>
endobj
5749 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 484.008 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 440.386 null ] >>
endobj
5750 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 473.049 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 429.427 null ] >>
endobj
5751 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 462.09 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 418.468 null ] >>
endobj
5752 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 451.132 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 407.509 null ] >>
endobj
5753 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 440.173 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 396.55 null ] >>
endobj
5754 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 429.214 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 385.591 null ] >>
endobj
5755 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 418.255 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 374.632 null ] >>
endobj
5756 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 407.296 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 363.673 null ] >>
endobj
5757 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 396.337 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 352.714 null ] >>
endobj
5758 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 385.378 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 341.756 null ] >>
endobj
5759 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 374.419 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 330.797 null ] >>
endobj
5760 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 363.46 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 319.838 null ] >>
endobj
5761 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 330.692 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 287.282 null ] >>
endobj
5762 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 319.733 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 276.323 null ] >>
endobj
5763 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 308.774 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 265.364 null ] >>
endobj
5764 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 297.815 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 254.405 null ] >>
endobj
5765 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 286.856 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 243.447 null ] >>
endobj
5766 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 275.897 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 232.488 null ] >>
endobj
5767 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 221.529 null ] >>
endobj
5768 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 210.57 null ] >>
endobj
5769 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 199.611 null ] >>
endobj
5770 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 188.652 null ] >>
endobj
5771 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 177.693 null ] >>
endobj
5772 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 166.734 null ] >>
endobj
5773 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 155.775 null ] >>
endobj
5774 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 144.816 null ] >>
endobj
5775 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 133.858 null ] >>
endobj
5776 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 122.899 null ] >>
endobj
5777 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 111.94 null ] >>
endobj
5778 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 144.39 null ] >>
-endobj
-5779 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5718 0 R /XYZ 81.077 100.981 null ] >>
endobj
-5780 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 122.473 null ] >>
+5717 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5781 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 111.514 null ] >>
+<< /Filter /FlateDecode /Length 1640 >>
+stream
+xZIoFW싀
+e*!OYs"JHh*F\ܶ:i 1՞F hZ8D'=siczB2|ڶ8/D95ʼncF9hf8[ h@9vF۩f=mnMvW'u$7eu[n^OYߺg%ڷ_TFo 7u\M2fIshTS}m#2bтXû3hcbt{yϣEVDoyY*JMƹBӖXӅ3Y.`}~#4i`>0;T[;n6g.WEu۱n,JOSRljƚeHAJg 4^2\\1BN69n7"/dŠmj}7EhW@ztȀBJu!P0x~B
+(Ei:DPĒ`D!9
+>ۗ
+Q}8qB(^&!V?;g+!M[hCEhr`Y0-BDC
+>;L-BlL"
+#c9E\j¨O(7xB8JOKzU6p&D,&Bdؐn)'?oq! 1"gP=[F+YJDLXPbtGq-CqD
+endstream
+endobj
+5780 0 obj
+<< /Type /Page /Contents 5781 0 R /Resources 5779 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5841 0 R >>
endobj
5782 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5780 0 R /XYZ 78.37 808.885 null ] >>
endobj
5783 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 768.832 null ] >>
endobj
5784 0 obj
-<< /D [ 5722 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-5721 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 5780 0 R /XYZ 81.077 757.873 null ] >>
endobj
-5787 0 obj
-<< /Filter /FlateDecode /Length 2143 >>
-stream
-xڵZKoFϯ ! d8B@AK-kԒ8c۷ZlYŤD~Ud<O?}ç&M,'d%DM$K2Yl&
-,_>H3HLAwe'mJP>O>Nf<'K{k {
-^X>RX@ EMJŸ)F̱>%۪l첱8 LjU6uX"FRYh~ Yy&ʢ¾9ɺ//:H#렢,\mV<H{kncrIMܗ_.&uQ_V q0~oY"+dv^7,?g(EqoIKpQA'ɸn"@ٕnV(- kFIi$ iG~*R4G 4I̼,YF/yCtb9]υ/HOrd
-!:,B !w,
-
-1=B_Pϸ,G,-u>Ct EP21de
-m=D)'0;!ڝ}G8>li6U{SwKQ>+bV3,Lu<o]*تJ6b1^š9 G]Vp\ws<mç,xV܆oKUAkUq0DG͍FDT! {kC(}7G>Z<[?'m qI˕DDRTA>ESn^[ԻnT(U^K;.d
-=ަK;??\#1Y%x5Y(f~-C+LKBBlVS 90 V pOx؀ўk::RzޭG2>^
-?R -?Md>FnX@j()hlj _,6^O]w
-ͮa_gM{iQ9}p'G@0;aV,I yiһ]VMO]t=";f[/Y;
-e&ԕg="N&?8H#ݣ81&q_ IO.Aoo_CvBA\AAs-7bH=y
- t֡M+c7;OlOCs#pSsbNIyɩQhf!6q+}>Ud(`lgR1" SO:QXQKF}V'>6&5 O
-agXT451agx
-` :.8@{_pyQ,nbCi?B0q4Fl|Ulū_/Aۡ%<FvJ hv #-LBGr| ֻE6 ?.>P
-endstream
+5785 0 obj
+<< /D [ 5780 0 R /XYZ 81.077 746.914 null ] >>
endobj
5786 0 obj
-<< /Type /Page /Contents 5787 0 R /Resources 5785 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /D [ 5780 0 R /XYZ 81.077 735.955 null ] >>
+endobj
+5787 0 obj
+<< /D [ 5780 0 R /XYZ 81.077 724.996 null ] >>
endobj
5788 0 obj
-<< /D [ 5786 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 714.037 null ] >>
endobj
5789 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 703.078 null ] >>
endobj
5790 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 692.119 null ] >>
endobj
5791 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 725.046 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 681.16 null ] >>
endobj
5792 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 714.087 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 670.202 null ] >>
endobj
5793 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 703.128 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 659.243 null ] >>
endobj
5794 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 692.169 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 648.284 null ] >>
endobj
5795 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 681.21 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 637.325 null ] >>
endobj
5796 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 670.251 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 626.366 null ] >>
endobj
5797 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 659.292 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 615.407 null ] >>
endobj
5798 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 648.333 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 604.448 null ] >>
endobj
5799 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 637.374 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 593.489 null ] >>
endobj
5800 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 626.415 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 582.53 null ] >>
endobj
5801 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 615.456 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 571.571 null ] >>
endobj
5802 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 604.498 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 560.613 null ] >>
endobj
5803 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 593.539 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 549.654 null ] >>
endobj
5804 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 582.58 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 538.695 null ] >>
endobj
5805 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 571.621 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 527.736 null ] >>
endobj
5806 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 560.662 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 516.777 null ] >>
endobj
5807 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 549.703 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 505.818 null ] >>
endobj
5808 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 538.744 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 494.859 null ] >>
endobj
5809 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 527.785 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 462.098 null ] >>
endobj
5810 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 516.826 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 451.139 null ] >>
endobj
5811 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 505.867 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 440.18 null ] >>
endobj
5812 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 494.909 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 429.221 null ] >>
endobj
5813 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 483.95 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 418.262 null ] >>
endobj
5814 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 472.991 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 407.303 null ] >>
endobj
5815 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 462.032 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 396.344 null ] >>
endobj
5816 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 451.073 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 385.385 null ] >>
endobj
5817 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 396.322 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 374.426 null ] >>
endobj
5818 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 385.363 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 363.468 null ] >>
endobj
5819 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 374.404 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 352.509 null ] >>
endobj
5820 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 363.445 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 341.55 null ] >>
endobj
5821 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 352.486 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 330.591 null ] >>
endobj
5822 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 341.527 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 319.632 null ] >>
endobj
5823 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 300.717 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 308.673 null ] >>
endobj
5824 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 289.758 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 297.714 null ] >>
endobj
5825 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 278.8 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 286.755 null ] >>
endobj
5826 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 267.841 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 275.796 null ] >>
endobj
5827 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 256.882 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 264.837 null ] >>
endobj
5828 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 204.117 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 253.879 null ] >>
endobj
5829 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 242.92 null ] >>
endobj
5830 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 231.961 null ] >>
endobj
5831 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 221.002 null ] >>
endobj
5832 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 210.043 null ] >>
endobj
5833 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 199.084 null ] >>
endobj
5834 0 obj
-<< /D [ 5786 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 188.125 null ] >>
endobj
-5785 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+5835 0 obj
+<< /D [ 5780 0 R /XYZ 81.077 133.431 null ] >>
endobj
-5838 0 obj
-<< /Filter /FlateDecode /Length 1955 >>
-stream
-xZ]o6}ϯp1f8hM>"hvv Vlumɵ`>(Rq_E_,=$ﹼ4-GtDo7oIb&CtF&ьPFכѿNJZ{^i;JZ$! K?0!or=o'7q9{nVn6v=ؘ
->UQ(o2JO*11mz̤iUBMbsn]M项)jjOK D~(mh.Ε"p#~pm9Mt=dzs FC殭"]Za+I޶էYMT
-ȵ'5'R0߁ׁⵧ#Q1D 1(;13F~{kB%qE p.HnrIEI)
-KՀDo8,T"[Zíf,wG:L
-B9,ssq6OY'*mEPn,Ff$ƥt רּ&jV3iƧ~6p=W)L *C4ǍAoUֲtaE߽/ UOx.H#p*u7]i]|`
-Èwtʲ_59@͋QM(W!41=&QJb-cTɍNLe1u`U-a ]de&[Ţԅ)2@Z5qTl hyV"՛>1@b>fEMw賬u-l>֑6ǁ`חoYsos܌N)V֫18ׅhj]ni1icϫrlڴDqK,qu,vbDl:ݷTs:V?UC͓rS."Ey\K
- ="EQM$6$B9J)5écQyӼ&ehW:pڍ ~}p9Dg^np<XQAaDxBƫeDZ43(GhG-}[tĎ<H0J8oY3i\Y+qE:U5>}Su^ds|]i/Wx_I qu<
-8a@d'"H/r͋j[ɴoUޟd9e~/,5c)q,Ct?
-UD0Q -`-T?O NU[azݺCtXJ+h R^<}OEY 때
-ڸͩ]:DmO^YjnqC&_,٩+E(xGAQ %-C`( x.Guvc-a]r 7123DIw!µ? Xۮ:gP#tIL~$4!:(vdB݇"ڝFyo4m#H p2I"}\>Bm+WXv\RL]1M S/sW9AT2C4:`qwEr7(%wtޱ殆agK=[\14B@6/=^c&!;r庺w+ܿn$4UtU!ʫU9#tL÷*Ψj@Z/WЊa2DNc.78mni8M>99IwMFd{>+̻ß&`J~
-bLQ;4en>ϔ2Za vB祊F8$b(!a| mNo/$
-endstream
+5836 0 obj
+<< /D [ 5780 0 R /XYZ 81.077 122.473 null ] >>
endobj
5837 0 obj
-<< /Type /Page /Contents 5838 0 R /Resources 5836 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /D [ 5780 0 R /XYZ 81.077 111.514 null ] >>
+endobj
+5838 0 obj
+<< /D [ 5780 0 R /XYZ 81.077 100.555 null ] >>
endobj
5839 0 obj
-<< /D [ 5837 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 89.596 null ] >>
endobj
5840 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 5780 0 R /XYZ 81.077 78.637 null ] >>
endobj
-5841 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 757.873 null ] >>
+5779 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-5842 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 746.914 null ] >>
+5844 0 obj
+<< /Filter /FlateDecode /Length 2366 >>
+stream
+xڭZ[~PP@v2w(։AEдWJ)R) /CWr,o
+/v n};iI%_޿"^E $K=, c,Co;)'\ ʘ7o_cIV-Kri57T-,/i$*&Q8sj$-F!!.6'c yZ/SyzC4"jF -8Ҋ0:+$=0lЂ`,К^([28 6rڔQ<DSQ%*ٮ|y#`L"Je)$1*\Uhw8soRXA!Eʤ9Y{"Pr8V&ɲ|ӛ,YʏjټR~Ϳ C2(o`kҠ2S$qTe~:F)9!NBA6{ؖ(I .d4s8gU)!@z|)&`d7!aKł_OǸ, '0{ 9RX6;\=b"OU|wӴ" _]{7{kCZKsǃK!8;`'`Hw;c$;KAѴs:}n OWl f?{X(NKŕBYEUi$Q(!K)A\:%2q,^) //~OIiB#EGZ niE-mR^~*SmZUWxYv4ᘥjQZW߳:)z)cҥ1_\0?6L4(yyC=ᡨ mzю3O,N)
+͑P--M
+粋%!E
+dg#ƈh-*eo: V7گҼ 08^)N+q];~
+Զ$'~:~^]
+BmJWI堽_!
+{y[S\o97?=F`Ы<}MEmuI<> l
+)+'ͫ(>%":Zۼ[\QO=kfTVM߻7t,s[ Zͅ{f43w,m*9Ղ%yM%WJZ3-ur!LmNfvY0]8rj t&4|ʸ=~'G5JAj/M:h9H7vk
+؋`vn!(@od4B#v}+R2߰΅x[<Ͻј (mNLK6rGz>rșty>m-Pm4Oh5E#JBCΊ W
+{!hxAd~ Wyw]
+endstream
endobj
5843 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 735.955 null ] >>
-endobj
-5844 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 724.996 null ] >>
+<< /Type /Page /Contents 5844 0 R /Resources 5842 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5841 0 R >>
endobj
5845 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5843 0 R /XYZ 78.37 808.885 null ] >>
endobj
5846 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 754.948 null ] >>
endobj
5847 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 743.989 null ] >>
endobj
5848 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 733.03 null ] >>
endobj
5849 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 722.071 null ] >>
endobj
5850 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 711.112 null ] >>
endobj
5851 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 658.693 null ] >>
endobj
5852 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 595.94 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 588.469 null ] >>
endobj
5853 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 584.981 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 577.51 null ] >>
endobj
5854 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 574.022 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 566.551 null ] >>
endobj
5855 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 563.063 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 555.592 null ] >>
endobj
5856 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 522.674 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 544.633 null ] >>
endobj
5857 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 511.715 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 533.674 null ] >>
endobj
5858 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 500.756 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 522.715 null ] >>
endobj
5859 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 489.797 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 511.757 null ] >>
endobj
5860 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 478.838 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 500.798 null ] >>
endobj
5861 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 467.879 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 489.839 null ] >>
endobj
5862 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 456.921 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 478.88 null ] >>
endobj
5863 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 445.962 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 467.921 null ] >>
endobj
5864 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 435.003 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 456.962 null ] >>
endobj
5865 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 424.044 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 446.003 null ] >>
endobj
5866 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 413.085 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 435.044 null ] >>
endobj
5867 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 402.126 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 424.085 null ] >>
endobj
5868 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 391.167 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 413.126 null ] >>
endobj
5869 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 380.208 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 402.168 null ] >>
endobj
5870 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 369.249 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 349.493 null ] >>
endobj
5871 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 358.29 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 338.534 null ] >>
endobj
5872 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 347.331 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 327.575 null ] >>
endobj
5873 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 336.373 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 316.616 null ] >>
endobj
5874 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 325.414 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 275.897 null ] >>
endobj
5875 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 314.455 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 264.938 null ] >>
endobj
5876 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 303.496 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 253.979 null ] >>
endobj
5877 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 292.537 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 243.021 null ] >>
endobj
5878 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 281.578 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 232.062 null ] >>
endobj
5879 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 270.619 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 221.103 null ] >>
endobj
5880 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 259.66 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 210.144 null ] >>
endobj
5881 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 235.898 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 199.185 null ] >>
endobj
5882 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 224.939 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 188.226 null ] >>
endobj
5883 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 213.98 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 177.267 null ] >>
endobj
5884 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 203.022 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 166.308 null ] >>
endobj
5885 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 172.824 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 155.349 null ] >>
endobj
5886 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 161.865 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 144.39 null ] >>
endobj
5887 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 133.431 null ] >>
endobj
5888 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 122.473 null ] >>
endobj
5889 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 111.514 null ] >>
endobj
5890 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 100.555 null ] >>
endobj
5891 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 89.596 null ] >>
endobj
5892 0 obj
-<< /D [ 5837 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 5843 0 R /XYZ 81.077 78.637 null ] >>
endobj
-5836 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+5842 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
5895 0 obj
-<< /Filter /FlateDecode /Length 1872 >>
+<< /Filter /FlateDecode /Length 1515 >>
stream
-xڽY[oF~}0-hPD"$8k :r/93ՄN
-~ū#&$ >`D331v3u◿ՍN&$Z HELȬN=u3no='QI#1 7Ĥ{VJq5>-趵u?fh%J/E>n6?Z a^MX9\5hQ!+/ƉG?Y?{oxo~-3Մke6p umQ{G^kf }[gRm%2j%8B4:õL5EE`~%FӜHIZ3!]Y[Ӧzr[Whi#xט'q}bP89EXX@8%P<b.r]TnV (bí4N}]}/%*Ξ!-<jjM"фˋ0]s&~YMQ 6("ܫvv&+ajQޏx;I n
-cLc?ŠI,| _@ vL]ᲹJMߗ݃eYXu@Ҿa_&orW]:
-YŪ_+n.-Ҥ1ؔEƒP=y+ih?*6n _9=KfX+v۠7fe%3A 'UF bМ:RF[ߗt}hԍ2{ظݩClAra}&$( Fh|MRTF}E cl,UuٸDؿ38tUʛMGlMW:[yʀf5ޟ_1V!ўXiC,ceIq<?=dod#S$4k5-mGG#ykЭdq~6{ywe.7E<׈"W wlHy7cաsģv8
-nB]ժ}3?D; p)'`)&?c@,h="8^):$
+xڽZ[oF~ϯ@uT)lՇ<V!&q
+65fh{g >$͹|s1h N~I,70GzVLhFfg_1u>ҮgZ̔%C (ambB.U6-l?5F7n~E@8¤H
+Bt*YU;lw?/*-[ M!6Y U7ߴ"F] \mͶV2FmSM`tfF֖nf2XI>$˲i^/y_jVk>9ݔ)*6S b~B֔ i7ۜ_l1vUQ%7W0(yݘYMIL[4]鈤tgY6 'VlitfE*#WisRg>WU?3O'@>aP9'!^yWK Y);R58!:A,/pD(ZMCsцxܸʪdQ
+ USRwh(j߉߭V@qi @;ܠ7;ZJ14 T.FhmE堜Nl.ζpؕGzԫm*9܌65.C{;,g8 nU!ﰜjhh| 孶7Ehm3s"t_&WM }K4PP7:VEYGy7CDmM㿴,&c+I] qCAxZ̋2"gt1`jPoS[&q#Z˸m ?zo6 &΀7fy/&UQm iaLC[KE讱O%TI
endstream
endobj
5894 0 obj
-<< /Type /Page /Contents 5895 0 R /Resources 5893 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /Type /Page /Contents 5895 0 R /Resources 5893 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5841 0 R >>
endobj
5896 0 obj
<< /D [ 5894 0 R /XYZ 78.37 808.885 null ] >>
@@ -18800,4120 +18854,4127 @@ endobj
<< /D [ 5894 0 R /XYZ 81.077 714.037 null ] >>
endobj
5903 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 690.051 null ] >>
endobj
5904 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 679.092 null ] >>
endobj
5905 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 668.133 null ] >>
endobj
5906 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 657.174 null ] >>
endobj
5907 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 626.842 null ] >>
endobj
5908 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 615.883 null ] >>
endobj
5909 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 587.36 null ] >>
endobj
5910 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 576.401 null ] >>
endobj
5911 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 565.442 null ] >>
endobj
5912 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 554.483 null ] >>
endobj
5913 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 543.524 null ] >>
endobj
5914 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 532.565 null ] >>
endobj
5915 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 521.606 null ] >>
endobj
5916 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 510.647 null ] >>
endobj
5917 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 499.689 null ] >>
endobj
5918 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 488.73 null ] >>
endobj
5919 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 477.771 null ] >>
endobj
5920 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 466.812 null ] >>
endobj
5921 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 455.853 null ] >>
endobj
5922 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 444.894 null ] >>
endobj
5923 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 433.935 null ] >>
endobj
5924 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 422.976 null ] >>
endobj
5925 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 412.017 null ] >>
endobj
5926 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 401.058 null ] >>
endobj
5927 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 390.099 null ] >>
endobj
5928 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 379.141 null ] >>
endobj
5929 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 368.182 null ] >>
endobj
5930 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 357.223 null ] >>
endobj
5931 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 346.264 null ] >>
endobj
5932 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 335.305 null ] >>
endobj
5933 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 324.346 null ] >>
endobj
5934 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 313.387 null ] >>
endobj
5935 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 302.428 null ] >>
endobj
5936 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 291.469 null ] >>
endobj
5937 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 280.51 null ] >>
endobj
5938 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 269.552 null ] >>
endobj
5939 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 258.593 null ] >>
endobj
5940 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 242.804 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 247.634 null ] >>
endobj
5941 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 236.675 null ] >>
endobj
5942 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 220.887 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 225.716 null ] >>
endobj
5943 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 190.002 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 214.757 null ] >>
endobj
5944 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 179.043 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 203.798 null ] >>
endobj
5945 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 168.085 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 188.226 null ] >>
endobj
5946 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 177.267 null ] >>
endobj
5947 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 166.308 null ] >>
endobj
5948 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 155.349 null ] >>
endobj
5949 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 144.39 null ] >>
endobj
5950 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 133.431 null ] >>
endobj
5951 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 122.473 null ] >>
endobj
5952 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 111.514 null ] >>
endobj
5953 0 obj
-<< /D [ 5894 0 R /XYZ 81.077 80.413 null ] >>
+<< /D [ 5894 0 R /XYZ 81.077 100.555 null ] >>
+endobj
+5954 0 obj
+<< /D [ 5894 0 R /XYZ 81.077 89.596 null ] >>
+endobj
+5955 0 obj
+<< /D [ 5894 0 R /XYZ 81.077 78.637 null ] >>
endobj
5893 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-5956 0 obj
-<< /Filter /FlateDecode /Length 1423 >>
+5958 0 obj
+<< /Filter /FlateDecode /Length 1854 >>
stream
-xڽYMoFWȡ6ovvS@E
- dȤ*q #SZ#'!"->ۙ73KY\x'¬{?;vXh<*N/
- pP^%ߧzwlCE}
-GGmh0z9u~0G>84ܱYUOfAx,SK,?we
-˜(j$Ml&ЧBFJ UUTbvլ''fHOUH]GM{kF8q-cfkqZ(j+)gൣv^r</ɉuSwt^)ϲZ^M mAn}w dCYpA VxImSw?Wz]?/.AE=\ydr<t咽kkCJ)zY39y< '5" φx({cx}Vwuofb^Ϧ<i^\ә.IsҜ籆Hl*+<!<3O*\U~)yVosPmc3)7@B&/ -2P. DO/B Qb7MJ}QVU7+pа +)-$C/./<?VWmn7[|p9c4DaE✡t~IرG%qNч<Q;9Tc^Дn@GO-ySSg{aDw"ޢ,{w#)Qce]~.S^X%Z#ze 7Qy!N|OIK^pmX4Cm`hrR7d=Qӭo ](ڱV9}^YI~vcW?eiUުR{WCk ڥ`4
-fnJk%/Rt++ z[*En/)'IJij# ͶJ`:'qloYuY7bᕰ2
-{S7.VWdЄRv7R_l'f]H(ZR;n
-ӽs4
+xڽY]o}ʨ=|
+M׻(.PC 5R ,˺J<dHsǜwVhE4D+??\|&HSf^ft+iEIa=\2JWww*$Q>h4˻mV_e=.]JFF̱b8V>ڲZ5vjywGYx 07ӄqUFp6_̚ E497eMSe-zρE80ֆ_#&D*@gm?E3KsrV]MkLv̞Td{kQS(`JBEb/gDLpp=Ob|+_"La<25Ƭ0mZ?6
+5BB{_$%.>/E+!{v]>y|jgvvsuɋ
+VzoצyA&A=7ī&bSUɚ/ej fnLveu0PR<?8G2|? h|uPW\ט6Ϫ}JAbt޷}4H&ĭc
+C.T94ugrP0?]kʘ”n`k("\{Gjp
+\-3yޛ ^jyԖE2!1U, Fk0}궛3@[O|2]U5[|>2M%MDjDĉۺđу~vX=u{dq޵A&NjIC4>P{:qPFK1d"IslN2΁hOYlm,ogʋH4'(-,crXe>f
+ǜht~ En ,=aCs$GJGG/a'Ӕ6vnog ȔS
+.p}vs*gT䄕Kg.Ҝ[R&|JV[(?s@ҝrڃ4znH"T
+
+:aZ
+*~Kpv)ж(DMP}4Z9Kn \]qjkǬ 7]_TEWd%2:<4&e> Ǐ9G8e]WM-M~+Y 6ɞ(hw\iR^'^9R׊zJ{= ̓b!fP$hڞP?_Sػu yޔEn')΋>z5fQWwa#Zo3Ӻ2·2Flr4Z]~b2p̳bAnF pL6!n.>-34vlw,EcFTIQ15[0l4%l$GU N]+$@oVL>U囩~GBAKUJg}U߳r?>NLq7GW^;1Ti5M&p)c>zhT^ я$%8|4z'DkYEGbNT:wEQ}aՌ(vP] dvO
endstream
endobj
-5955 0 obj
-<< /Type /Page /Contents 5956 0 R /Resources 5954 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
-endobj
5957 0 obj
-<< /D [ 5955 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-5958 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 768.832 null ] >>
+<< /Type /Page /Contents 5958 0 R /Resources 5956 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5841 0 R >>
endobj
5959 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 5957 0 R /XYZ 78.37 808.885 null ] >>
endobj
5960 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 768.832 null ] >>
endobj
5961 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 757.873 null ] >>
endobj
5962 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 697.101 null ] >>
endobj
5963 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 686.142 null ] >>
endobj
5964 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 675.183 null ] >>
endobj
5965 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 644.299 null ] >>
endobj
5966 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 633.34 null ] >>
endobj
5967 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 622.381 null ] >>
endobj
5968 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 611.422 null ] >>
endobj
5969 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 600.463 null ] >>
endobj
5970 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 589.504 null ] >>
endobj
5971 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 578.545 null ] >>
endobj
5972 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 567.586 null ] >>
endobj
5973 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 556.627 null ] >>
endobj
5974 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 545.669 null ] >>
endobj
5975 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 540.687 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 534.71 null ] >>
endobj
5976 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 529.728 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 523.751 null ] >>
endobj
5977 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 512.792 null ] >>
endobj
5978 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 501.833 null ] >>
endobj
5979 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 490.874 null ] >>
endobj
5980 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 479.915 null ] >>
endobj
5981 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 468.956 null ] >>
endobj
5982 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 457.997 null ] >>
endobj
5983 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 447.038 null ] >>
endobj
5984 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 436.08 null ] >>
endobj
5985 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 425.121 null ] >>
endobj
5986 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 414.162 null ] >>
endobj
5987 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 403.203 null ] >>
endobj
5988 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 392.244 null ] >>
endobj
5989 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 359.367 null ] >>
endobj
5990 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 348.408 null ] >>
endobj
5991 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 337.449 null ] >>
endobj
5992 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 326.49 null ] >>
endobj
5993 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 295.606 null ] >>
endobj
5994 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 284.647 null ] >>
endobj
5995 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 255.756 null ] >>
endobj
5996 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 244.797 null ] >>
endobj
5997 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 233.838 null ] >>
endobj
5998 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 222.879 null ] >>
endobj
5999 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 211.92 null ] >>
endobj
6000 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 200.961 null ] >>
endobj
6001 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 190.002 null ] >>
endobj
6002 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 226.864 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 179.043 null ] >>
endobj
6003 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 215.905 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 168.085 null ] >>
endobj
6004 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 204.946 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 157.126 null ] >>
endobj
6005 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 146.167 null ] >>
endobj
6006 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 183.028 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 135.208 null ] >>
endobj
6007 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 172.07 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 124.249 null ] >>
endobj
6008 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 161.111 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 113.29 null ] >>
endobj
6009 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 150.152 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 102.331 null ] >>
endobj
6010 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 139.193 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 91.372 null ] >>
endobj
6011 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 128.234 null ] >>
+<< /D [ 5957 0 R /XYZ 81.077 80.413 null ] >>
endobj
-6012 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 117.275 null ] >>
-endobj
-6013 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 101.335 null ] >>
+5956 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6014 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 90.376 null ] >>
+<< /Filter /FlateDecode /Length 1775 >>
+stream
+xڽYnFS荌V9,\(»,l(R%8n<9hFqdN 7D ~9ӊp~9չb3&.O{ LK$)Idvw.d5\FFJc0aSF䟣-)8#L~C/>+&o/O|Cv~?2Wj21gA&g
+Q*T
+&U$jj+;xRfclx+=a֏`=I#*6 yRsĸh+ QC̾/~Y8rb;fqpwS ׃M=ЎNћkg~nm%Ak}mn YUŠxы3CjYk$YaL=eDŽe:!'+s WH9юR%S M,X`Rhp| Vr K_S_XaH20b_^aHk 2~ kI2q횀k
+( 7msɮMY`H Iޖۦ ء]aD5ڶY~2?ЗF
+aApTM0X]}[_\m/+_i:o-ahp冹r?A?5Fig!c9=f} ^nJ CkPJZʿ"n EAƉ -):t:Azkgt~])DC2&Nq8ZoesW]G޳=Jo"_;L#7wa*AoD^wyU=d63
+.*Ht v%]3ꜘqx*yW1G%áYѯO5gtEҰas'o [UW4uaڮꔪkx@S<P4baTsC0b:E'S8"t_X6_o몬$Zk~OCx2|8!Qq4~w!gSj=Oeq&>jnm/۲_L7VMmZ.i^e}uٗ˚l0K.)™qS_+}1z=#dQȝǻ f.χϻ-ʼ\H mt? |ouYyIIv㻁518{ݸFbR01!л kKt\`|-6`gT_4frn缴 1Α*,!6A?v@v:W سm jCDEY/j1ƹ!|K {*Ӌ()kgK!$ŖAz$O1.\}'[E8wpEci 8s8h]nmǭS_q'CǞϯTIiAOtT
+e=ic̕ͺM^nYY <8 cPLpupj hMS_ֻԋQFIa|FG1>br(C$_4 Npڮ9,b46Qh HK+{cԔP
+(m feŢoMEpcx|X.2<ɢaIwyug37]$y)L #v+ ~[7amao㗹1uԆ2aniK[R}lF$i|y0p!
+endstream
+endobj
+6013 0 obj
+<< /Type /Page /Contents 6014 0 R /Resources 6012 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5841 0 R >>
endobj
6015 0 obj
-<< /D [ 5955 0 R /XYZ 81.077 79.417 null ] >>
+<< /D [ 6013 0 R /XYZ 78.37 808.885 null ] >>
endobj
-5954 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+6016 0 obj
+<< /D [ 6013 0 R /XYZ 81.077 768.832 null ] >>
endobj
-6019 0 obj
-<< /Filter /FlateDecode /Length 2566 >>
-stream
-xڭZ[o6~c=xe]f]vd V&&$"u<ib~9箄mߝq;UDb) g@GA$0
-w+NDt^/DH Ai0g.z)˪Ζyvi[ۼn5,1|⟣ !(~OϦ1Œg'#?9h-lZ]oqQʷɫW+j"] az>4>LJO"S.G>.?;1MN;.Ekiݫ&iT{Yހ̌_LJM6 e)bh P/~M&jo/Q+
-I I[8לEj Q3?hMPf!-dS4TEё(G:Un /p
-#nvb(`-7*;T~cbEO_ x8TS2)ڻ gC$uZN{e{44SeMRPH8p6*lM-ݤͬv5*UބF 1xNO/X_YE%u6(!) AM8bLJ97jkrSi*}[8_vRb/3>ʪ I4+Όw]2Cc ^8螙iqP Ty7f_/U4F/bLeჀU]W5ϠHiQ Mx4BuD )  qo|z
-FF϶4t)B※.
-8[3>8`ǻT3>ܓX@@({g!ЯiaUZ&hfe\bD:O]
-ra]ơ6 ~_䪙@$l/PAtL57¸q
-vlz|ӷmbm2qEzỤioDcüj ֻ``'}uۅ"_X /XŭB9 1?l y~7{ 2x !G` +h{Spr9GB
-endstream
+6017 0 obj
+<< /D [ 6013 0 R /XYZ 81.077 757.873 null ] >>
endobj
6018 0 obj
-<< /Type /Page /Contents 6019 0 R /Resources 6017 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R /Annots 6052 0 R >>
-endobj
-6052 0 obj
-[ 6016 0 R ]
+<< /D [ 6013 0 R /XYZ 81.077 746.914 null ] >>
endobj
-6016 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 357.901 159.52 368.334 172.01 ]/A << /S /GoTo /D (Hfootnote.13) >> >>
+6019 0 obj
+<< /D [ 6013 0 R /XYZ 81.077 735.955 null ] >>
endobj
6020 0 obj
-<< /D [ 6018 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 724.996 null ] >>
endobj
6021 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 714.037 null ] >>
endobj
6022 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 703.078 null ] >>
endobj
6023 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 692.119 null ] >>
endobj
6024 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 681.16 null ] >>
endobj
6025 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 670.202 null ] >>
endobj
6026 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 659.243 null ] >>
endobj
6027 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 648.284 null ] >>
endobj
6028 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 637.325 null ] >>
endobj
6029 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 626.366 null ] >>
endobj
6030 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 620.388 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 615.407 null ] >>
endobj
6031 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 609.429 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 604.448 null ] >>
endobj
6032 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 598.471 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 593.489 null ] >>
endobj
6033 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 541.232 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 582.53 null ] >>
endobj
6034 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 530.274 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 571.571 null ] >>
endobj
6035 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 519.315 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 555.631 null ] >>
endobj
6036 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 508.356 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 544.672 null ] >>
endobj
6037 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 497.397 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 533.713 null ] >>
endobj
6038 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 486.438 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 522.754 null ] >>
endobj
6039 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 475.479 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 511.796 null ] >>
endobj
6040 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 464.52 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 500.837 null ] >>
endobj
6041 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 433.636 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 489.878 null ] >>
endobj
6042 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 422.677 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 478.919 null ] >>
endobj
6043 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 411.718 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 467.96 null ] >>
endobj
6044 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 400.759 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 457.001 null ] >>
endobj
6045 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 389.8 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 446.042 null ] >>
endobj
6046 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 378.841 null ] >>
-endobj
-81 0 obj
-<< /D [ 6018 0 R /XYZ 79.37 353.387 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 435.083 null ] >>
endobj
6047 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 156.83 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 374.311 null ] >>
endobj
6048 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 145.871 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 363.352 null ] >>
endobj
6049 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 134.912 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 352.393 null ] >>
endobj
6050 0 obj
-<< /D [ 6018 0 R /XYZ 81.077 123.953 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 295.155 null ] >>
endobj
6051 0 obj
-<< /D [ 6018 0 R /XYZ 94.613 94.364 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 284.196 null ] >>
endobj
-6017 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R /F26 662 0 R /F79 668 0 R /F76 318 0 R /F22 473 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+6052 0 obj
+<< /D [ 6013 0 R /XYZ 81.077 273.237 null ] >>
endobj
-6055 0 obj
-<< /Filter /FlateDecode /Length 2266 >>
-stream
-xZ[o~ϯp1u wI
-NXCȴ#D4<I&2%:#&Œ(<g|wW$|򷫓OqB$ f$K2~ BFERp & #"~<=T r{8+X}M8[r7mYH׸p F"D8i1AqZ inqYZ<{F_hH{~Gve}u
-$@; yjҤX\ ăy@H?yF` e9pxo;΂/q`u/u\@'櫐,jpZVqެYV"?Vhʭzb]_fGٽI>e3$b㲼K^8﷕Vq
-3 iC0np^iF`1ANHRL3@udсgۅWwǐ23j)xS5kths&9Mt7]ӂ~HF ST- x ?# IY5j 3[0`pН%XCY -y
-U%(; ,Blgҏ1*w;n_
-BxH~8);P
-tSNGp,\?k&:h2tDeqIOtu~v!X#k,?/!?F2Q.Fg`BKn(b ~ݼL%$_tr)!h^CmO
-endstream
+6053 0 obj
+<< /D [ 6013 0 R /XYZ 81.077 262.279 null ] >>
endobj
6054 0 obj
-<< /Type /Page /Contents 6055 0 R /Resources 6053 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /D [ 6013 0 R /XYZ 81.077 251.32 null ] >>
+endobj
+6055 0 obj
+<< /D [ 6013 0 R /XYZ 81.077 240.361 null ] >>
endobj
6056 0 obj
-<< /D [ 6054 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 229.402 null ] >>
endobj
6057 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 218.443 null ] >>
endobj
6058 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 187.559 null ] >>
endobj
6059 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 176.6 null ] >>
endobj
6060 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 165.641 null ] >>
endobj
6061 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 677.175 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 154.682 null ] >>
endobj
6062 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 666.217 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 143.723 null ] >>
endobj
6063 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 655.258 null ] >>
+<< /D [ 6013 0 R /XYZ 81.077 132.764 null ] >>
endobj
-6064 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 644.299 null ] >>
+81 0 obj
+<< /D [ 6013 0 R /XYZ 79.37 107.31 null ] >>
endobj
-6065 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 633.34 null ] >>
+6012 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+6067 0 obj
+<< /Filter /FlateDecode /Length 2689 >>
+stream
+xڽZ[۸~_"
+Ji@`dcN͞b˅rAJ` ㌄Bsyz[$ Bǂxȶ[Cwyr*&0 TcjDN"sI.*PY끂 P+<\wq4렶aLqy{إ9j@,d ݙL!j$ۀ$"Lbc
+t#^\1vh^28)]\RWd'`lQ8c6)nAȅ,{afEgK 0HjGc])<X1g]u>5#YVo{5HS4nPUSI
+rNzDop4Nh8QDp*9#5W ݞUsJ"`Qj=LdMKƺ8 xWU]M&Lyp&]'Ðu}fdRFUY}od>YYYA}LfrqK[*TGe4_lZÞ\cm<;2!|+IqlCe(Ơ7DfS um@g_I ^ٮkdBؤMpuyHpPZG8îd'@C w,M60)_*Qb_BGD!amh]iz4 jS
+tdN'u?xxH 0(WCJ5N]z"dv@Kd$Q;
+xB흴AI'?FR*WyK7lW@#}7GZtIc^37g,M)\)t]OmO28_^)Óybc!$ETl4dE:}5}AdӀx._u.wspAelGD'-~å7P@t H>}lr,Iwq]fM\_yi_.lߥw'Z1Wk? %dq5FEiX S# PǾ3#8nj$eԛv RioFό
++O&>T%LvdqׂПaGg-9 ,:܏}}zޅ.A \z݇4_{!hWtBPxz^zeڿo .HcpꖁG{;pb U` OfCdLuC^ F+
+n-Qا
+zӥ1oϠg _MGvn>ʗ$ ŀ^~AS
+ӣM2qr<6?՝WΫ54th-P]L~:la~"VJ iY6
+.}eS_=~/up=qL"Z7<=M;ȝܳa+fvi\,}=} gbD!(y&Rmo&ޛy
+caZ.=D7܉R3@
+endstream
endobj
6066 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 622.381 null ] >>
+<< /Type /Page /Contents 6067 0 R /Resources 6065 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5841 0 R /Annots 6107 0 R >>
endobj
-6067 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 611.422 null ] >>
+6107 0 obj
+[ 6064 0 R ]
+endobj
+6064 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 357.901 609.67 368.334 622.161 ]/A << /S /GoTo /D (Hfootnote.13) >> >>
endobj
6068 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 600.463 null ] >>
+<< /D [ 6066 0 R /XYZ 78.37 808.885 null ] >>
endobj
6069 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 589.504 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 606.981 null ] >>
endobj
6070 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 578.545 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 596.022 null ] >>
endobj
6071 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 567.586 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 585.063 null ] >>
endobj
6072 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 556.627 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 574.104 null ] >>
endobj
6073 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 545.669 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 563.145 null ] >>
endobj
6074 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 534.71 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 552.186 null ] >>
endobj
6075 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 541.227 null ] >>
endobj
6076 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 530.268 null ] >>
endobj
6077 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 471.489 null ] >>
endobj
6078 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 460.53 null ] >>
endobj
6079 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 449.571 null ] >>
endobj
6080 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 463.975 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 438.612 null ] >>
endobj
6081 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 453.016 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 427.653 null ] >>
endobj
6082 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 442.057 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 416.694 null ] >>
endobj
6083 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 431.098 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 405.735 null ] >>
endobj
6084 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 420.139 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 394.776 null ] >>
endobj
6085 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 383.817 null ] >>
endobj
6086 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 372.858 null ] >>
endobj
6087 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 361.9 null ] >>
endobj
6088 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 356.378 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 350.941 null ] >>
endobj
6089 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 345.42 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 339.982 null ] >>
endobj
6090 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 329.479 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 329.023 null ] >>
endobj
6091 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 318.52 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 318.064 null ] >>
endobj
6092 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 307.561 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 307.105 null ] >>
endobj
6093 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 296.603 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 296.146 null ] >>
endobj
6094 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 241.808 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 285.187 null ] >>
endobj
6095 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 230.849 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 274.228 null ] >>
endobj
6096 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 219.89 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 258.288 null ] >>
endobj
6097 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 208.931 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 247.329 null ] >>
endobj
6098 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 197.972 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 236.37 null ] >>
endobj
6099 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 225.411 null ] >>
endobj
6100 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 214.452 null ] >>
endobj
6101 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 203.494 null ] >>
endobj
6102 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 192.535 null ] >>
endobj
6103 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 181.576 null ] >>
endobj
6104 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 150.692 null ] >>
endobj
6105 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 6066 0 R /XYZ 81.077 139.733 null ] >>
endobj
6106 0 obj
-<< /D [ 6054 0 R /XYZ 81.077 80.413 null ] >>
+<< /D [ 6066 0 R /XYZ 94.613 110.144 null ] >>
endobj
-6053 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+6065 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R /F79 668 0 R /F76 318 0 R /F22 473 0 R /F73 189 0 R /F69 183 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-6109 0 obj
-<< /Filter /FlateDecode /Length 2350 >>
-stream
-xڵZKϯ0Cd#%#d$}HdC0~d0=U^tfgҴ(Xfh㻨_w?ܽI IL9QX,VDQ=ӊHaB/s~T2IĔEDħLfUm]H&|yˊ4_~}Ih^8L15
--(ѭ@&XNMrL:@+j0="lU>j ;l~!!¼m6eO6͊28a*j6ϊVʢ5Wl`r4 R"g4ԃlל'7uXK_Pkt{K_FVHЉU\HMc,
-RBr ͗#' /4Qkp
-ʸ>&c
-`z$.@2w%gߋFQR-\q:^I'ͪv4OG
-²IJ-/|
-%(U+8s1` {-<jԋW*ӠI) #I"q
-R"JN
-}6w$(bPcn0+S sǶpʷVUhv9-X+
-$?ڣ5xUP۽)LzH,-
-8J: e,K`%P/Ro#>77yvCϿ] qV
-#Gh$o2 p|L:,7y
-F$ 9V8G{vQoʼl] 7+2wE{aʣIu/mX:|ʺ.I .Ps#顔JOT 5=`밌3&>997ּ":@: 1q
-oP}w^sQ2f|S
+6110 0 obj
+<< /Filter /FlateDecode /Length 2480 >>
+stream
+xڭZKϯ0iߒd >dC&0dn -K^I,(RʶdbIX,V}qg? }?ç/qB$ f$K2{83>鋌f!da`"%ix<UMU,wVI7*3jk!z Z`ڮ"m FK,Bfnob.V\eeu,Jm*]_VϟW"~YIVIlW->  y+>M|*ܥ6DH} B S/B6W;FP8M}6wd2BV4WIn\ORm?Z1($ (^hVӷcN]IA]qIB!gU։9_y1:7!h}|28EFF`2%qNPp 1`:D 槲Ox^Ѱ#xM<}?'eNZj-=p|3^}.7j_ܕo򬬊#仆Y@a\laJr8`T0$.)d VFW}V0J_Iէ`yu[Iߧnj3E5jPXB 
+F
+ My(
+;~ٳCݤ4yU>>u^lU d=/ۯY.+>~IާbnêTJOuDx]%lS،_qAR?Sb][lJQԅSQo3#if:D]8[xzvI12
+:-2(&]* ",ͫrF䐎$29% Зl`b~>ۯӳ D(fq z>_g㓌gq(u[eA@B$`yce[sc*p6m{ 7Ħ3X 7`PBqS36ρMan;*(Jν2k|8y2ifď9.\ÂJ۸9:E*Mm/Qn}=Й#naD߹%)viT?W`dK/o~+b_eUVA{T.t-ڂZF?Uq]\wj
+h
+O[ͪ10(rw;NYH]TrN:7]ɺH>AzKhYa(
+^ԝS:Q{1ݰ.?D$F
+Ɂ}M-bP4h'7LYcs&:>"&_F,B%t}<ZnJB?Zw6;Dw @Evb?1zI'ZpcK`ATq:8? OmJ@ҩF+.%r14PNH
endstream
endobj
-6108 0 obj
-<< /Type /Page /Contents 6109 0 R /Resources 6107 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
-endobj
-6110 0 obj
-<< /D [ 6108 0 R /XYZ 78.37 808.885 null ] >>
+6109 0 obj
+<< /Type /Page /Contents 6110 0 R /Resources 6108 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5841 0 R >>
endobj
6111 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6109 0 R /XYZ 78.37 808.885 null ] >>
endobj
6112 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 768.832 null ] >>
endobj
6113 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 746.914 null ] >>
-endobj
-85 0 obj
-<< /D [ 6108 0 R /XYZ 79.37 697.798 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 757.873 null ] >>
endobj
6114 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 505.974 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 746.914 null ] >>
endobj
6115 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 495.015 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 735.955 null ] >>
endobj
6116 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 454.168 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 681.16 null ] >>
endobj
6117 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 443.209 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 670.202 null ] >>
endobj
6118 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 432.25 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 659.243 null ] >>
endobj
6119 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 421.291 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 648.284 null ] >>
endobj
6120 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 380.444 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 637.325 null ] >>
endobj
6121 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 369.485 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 596.478 null ] >>
endobj
6122 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 358.526 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 585.519 null ] >>
endobj
6123 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 317.68 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 574.56 null ] >>
endobj
6124 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 306.721 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 563.601 null ] >>
endobj
6125 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 295.762 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 552.642 null ] >>
endobj
6126 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 284.803 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 541.684 null ] >>
endobj
6127 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 259.896 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 530.725 null ] >>
endobj
6128 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 248.937 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 519.766 null ] >>
endobj
6129 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 237.978 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 508.807 null ] >>
endobj
6130 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 227.02 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 497.848 null ] >>
endobj
6131 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 216.061 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 486.889 null ] >>
+endobj
+85 0 obj
+<< /D [ 6109 0 R /XYZ 79.37 437.773 null ] >>
endobj
6132 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 205.102 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 245.949 null ] >>
endobj
6133 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 194.143 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 234.99 null ] >>
endobj
6134 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 183.184 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 194.143 null ] >>
endobj
6135 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 172.225 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 183.184 null ] >>
endobj
6136 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 161.266 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 172.225 null ] >>
endobj
6137 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 150.307 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 161.266 null ] >>
endobj
6138 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 139.348 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 120.419 null ] >>
endobj
6139 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 128.389 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 109.46 null ] >>
endobj
6140 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 117.431 null ] >>
+<< /D [ 6109 0 R /XYZ 81.077 98.502 null ] >>
endobj
-6141 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 106.472 null ] >>
-endobj
-6142 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 95.513 null ] >>
+6108 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F72 187 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6143 0 obj
-<< /D [ 6108 0 R /XYZ 81.077 84.554 null ] >>
-endobj
-6107 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-6146 0 obj
-<< /Filter /FlateDecode /Length 1908 >>
+<< /Filter /FlateDecode /Length 1918 >>
stream
-xڽZ[o6}ϯ0[.1bRt<`˞AP"K,粢 %#^*+!GO<y}+䇋M8R!atr:!I($$aI&ɟSB<gT))YGl.%'YtyȺ˗э~˨vd(0|h/^8"0"X_,}R]^xGg6":." ]tv97Lk"6N:*}R諳&KYiH-aG<͋qֳ0lLLD>z@?d,2~}vw 3̯aX(}Ԭ?jGWy!G^b8QqQ[RY1A`3^ }cotV78rƲp59v0A<0>w^#h)͈|.:μPvaHa?*}Lu\*ʏ/7"(ǭ~,J$U{t/Fb|&.<՟< CJ6?xxM.( %qArG 8
-Y-}vj"Y_H2 }H s&
-PD FCެfsش i!*%1 R! A^ǻٜSvW{8Ca >dͶ|8[aBZd~:c&jyRfpq;xMfTMr_0"77w&ͨЛjj". BDWx$.:nDjeR8t-9=Ugz~n`܈ΆЫxsͪ^oeT$ku6g[ȸ]`]+oGW2=f
-qėm J۞R#㑮P~j~2֩Ն%&atk=8|w˗ U}?7|Wyzd9̪6O7rf[oc '퟽~'oUrJb@9$)qZm(!CwɽA2 (ŘC@<a v4 !^\
-,k;hE7M#mC`N\()w>KK|0hN]1t b,v8h B=ꭸ
-$ڄn˝?sb1xDJagf:~+3ز淃hᄅЊ„{);$(ViUFIxȓ$32=rl2W/oO#B %z<&u"'3> =-uwxe&)$r[>z6iEdF5m(b]>=d|ʆy/s.y)$y/C}G{gG
-cmk70;v=U}ibf)>{~^xTA>mūRuH~ԯtco ^De0ޔ_7?p% ҸMF,^7jhUpi]%ٺ~̫t{L~ߙ2ko7 WNmJPs $ɷSg$ώ65E]E\7"Q76np/{Yu e۞wDm>ڿop[O9hHZaA@8WU
+xڽZ]o6}ϯ0{Y~ XCl:8Zmɕ&Y]D5d/uDKOV<yw.N^=HK* <!H#M"Idr96.~A{nd̷ aD2Dçٜ 9$eRŝ}WyQ?[4+§lLtsmaLpĹ/"/ rgZ ;sYH~IoL6VW$u,;7waJ ?@cAPHXApa߅H"B=Eu[>zdʳϡQ1}? *AmiV75o!ÞC5BS֎:?pۄ!ʝi}iB[QEZ
+g&>.rLf
+H<=ϺEz&8"W+kF"[.4Wi|ҥ$eϯFҗ tix`B  ggb1fa'&-A&p)q&1|P
+
+>82BsL#lg/A^6أJo&Y:_F/6#)n@2h.=tp"
+g;vVE J`**{*Jm-&)Z 'WqMqOCI4E 69?z.<3US(y
+ [S,=7 FX![XЃai0 ,ڠ=$wN*B5l/Yq^O._[ip|#]m{1S55&UPm R  1=t#l˻g6*A?f!Ҫ賴ؕv
+`W7TyƫWHWP3v~g[源W@jx9ePv0C
+#ƻJ?Mz9(e\@}ڤvI:=Pa/Q>j/C!@ o3Fm(P{HuvdV)G?6|02Vkӫ $D1DizGfa>Q?XIAy}mva飃3ԌH(\GIglAJ_\
+aKfs2zLdg>U Q놶Q29oR$]DmR@|]s
endstream
endobj
+6142 0 obj
+<< /Type /Page /Contents 6143 0 R /Resources 6141 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5841 0 R >>
+endobj
+6144 0 obj
+<< /D [ 6142 0 R /XYZ 78.37 808.885 null ] >>
+endobj
6145 0 obj
-<< /Type /Page /Contents 6146 0 R /Resources 6144 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /D [ 6142 0 R /XYZ 81.077 742.929 null ] >>
+endobj
+6146 0 obj
+<< /D [ 6142 0 R /XYZ 81.077 731.97 null ] >>
endobj
6147 0 obj
-<< /D [ 6145 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 721.011 null ] >>
endobj
6148 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 710.052 null ] >>
endobj
6149 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 685.146 null ] >>
endobj
6150 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 674.187 null ] >>
endobj
6151 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 663.228 null ] >>
endobj
6152 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 652.269 null ] >>
endobj
6153 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 641.31 null ] >>
endobj
6154 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 630.351 null ] >>
endobj
6155 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 619.392 null ] >>
endobj
6156 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 608.433 null ] >>
endobj
6157 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 597.474 null ] >>
endobj
6158 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 586.515 null ] >>
endobj
6159 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 575.556 null ] >>
endobj
6160 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 564.598 null ] >>
endobj
6161 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 553.639 null ] >>
endobj
6162 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 542.68 null ] >>
endobj
6163 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 531.721 null ] >>
endobj
6164 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 551.646 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 520.762 null ] >>
endobj
6165 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 540.687 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 509.803 null ] >>
endobj
6166 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 498.844 null ] >>
endobj
6167 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 487.885 null ] >>
endobj
6168 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 476.926 null ] >>
endobj
6169 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 460.986 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 465.967 null ] >>
endobj
6170 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 450.027 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 455.009 null ] >>
endobj
6171 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 439.068 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 444.05 null ] >>
endobj
6172 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 410.177 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 433.091 null ] >>
endobj
6173 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 399.218 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 400.214 null ] >>
endobj
6174 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 388.259 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 389.255 null ] >>
endobj
6175 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 377.3 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 378.296 null ] >>
endobj
6176 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 366.341 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 367.337 null ] >>
endobj
6177 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 355.382 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 356.378 null ] >>
endobj
6178 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 344.423 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 345.42 null ] >>
endobj
6179 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 333.464 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 334.461 null ] >>
endobj
6180 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 322.505 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 323.502 null ] >>
endobj
6181 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 311.547 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 312.543 null ] >>
endobj
6182 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 300.588 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 281.659 null ] >>
endobj
6183 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 289.629 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 270.7 null ] >>
endobj
6184 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 278.67 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 241.808 null ] >>
endobj
6185 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 230.849 null ] >>
endobj
6186 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 201.957 null ] >>
endobj
6187 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 190.999 null ] >>
endobj
6188 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 180.04 null ] >>
endobj
6189 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 169.081 null ] >>
endobj
6190 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 140.189 null ] >>
endobj
6191 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 166.092 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 129.23 null ] >>
endobj
6192 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 155.133 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 118.271 null ] >>
endobj
6193 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 144.174 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 107.312 null ] >>
endobj
6194 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 133.215 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 96.354 null ] >>
endobj
6195 0 obj
-<< /D [ 6145 0 R /XYZ 81.077 122.256 null ] >>
+<< /D [ 6142 0 R /XYZ 81.077 85.395 null ] >>
endobj
-6144 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+6141 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6198 0 obj
-<< /Filter /FlateDecode /Length 2149 >>
+<< /Filter /FlateDecode /Length 1695 >>
stream
-xڵZK6ϯ-2f"6{fȒWw0}$ &6X*WUTn?_~xOB#-;,FL-$KX&eٶ8,[D_C"1t{OK<Kԏs|\R^u=)H2Jژk=]WPt*3ХƠќl8]?ҽfV  0ruЊ-8)atN%\!BG NS?AKHAdib:D[٦>ƬjT\:&iqOh$"۴gءhT ek$QF0Ye~1;~Z%VU#(MQ7S㍄!(T:ʦ)b: ]AbVR|U ηvFr?vu1%HMn[T& )AD+lMhrc̳]TqLFm[4!YK5S^ɗhMFd8N!x:.SQe3)Q&7_
-4__l׌*?VCJXHr5R\م%pT0x{@IX2
-E{z.
-ЎV[=ebM8(&4F*j#hL%:De
-}S:dQEIvgoM}:f;j+EG<N)z<<A(@ɑgvIgWՍqmm*Ts⑶DJbT/PEa#{6¢nʩu_mdw%|ޏzHܿW[;tJ hn%gZ
-P0Y%f,
-IR 'Sk~`$``Z?~O^Mk^A̳1. c
-?sCpuR۰ڮ9mfFB5l{+m"<eppj ) ?yŎR{^u/[wqN!B%
-f?B\}:p,8tkB@B_JbRHoǥ@ʮvQjY\
+xZMo"GW "ū!D#y`zz[x ~utD溜H,|0]^0D330`1T˿>\i7i-l fNN2!Mr)_ۋXV}n_^6fKI+J!iK:F121<U ~h=z
+Gz)[¬ Y0Ec3C8W!6[›Vh|l :b h&%S4:vjBl/6j}_BWnjFߕپ~(':6U}r;~٨u?\q:p28" { yy.v]LҦ^ _&oTr8+|X-rx{08'K#-E>,E}6_! Qʥ@>"  s68sKkb ݥp}PlQAwUʹ먨{?F "ֹF[½
+MЎ(m[Ǔ/ݼ<Ti
+<-64~ -=p6El'dWnd&[+~geﲛ j+)J׳˹K wh?j/ꪽTw3V2 $ʲw?U{oQ5]ht~u:K[\.TKM{<\F#PEbv?~$tl/ |9NY׮=]=hҀeF42װ2hErKБab5rho
+HkPdR-AcTS*$>&
+jS5m$RdU]W>>J rK6HTx(Mx3 cD4E%.j.J \4nh #2iQ.*<l4~. .JQJJ%+ܹAOTD?AU^o
+4<LOǤ a:52$h4p A4:Aٖ E4\:g`Mw,ʰy
+"-'hPwDt2k$i=oBe Bdp =YduZ$6GWYz6` >#'>Ktb |g$.VSB 3
+H YL%P9/_Xq߸\7>e~c,a4418wd)726Ac;NLP$7onkt齭rT18v53Vج6.o'=cF;.tv˰F4
endstream
endobj
6197 0 obj
-<< /Type /Page /Contents 6198 0 R /Resources 6196 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /Type /Page /Contents 6198 0 R /Resources 6196 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5841 0 R >>
endobj
6199 0 obj
<< /D [ 6197 0 R /XYZ 78.37 808.885 null ] >>
endobj
6200 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 768.832 null ] >>
endobj
6201 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 757.873 null ] >>
endobj
6202 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 746.914 null ] >>
endobj
6203 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 735.955 null ] >>
endobj
6204 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 724.996 null ] >>
endobj
6205 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 714.037 null ] >>
endobj
6206 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 703.078 null ] >>
endobj
6207 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 674.628 null ] >>
endobj
6208 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 663.669 null ] >>
endobj
6209 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 656.254 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 652.711 null ] >>
endobj
6210 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 641.752 null ] >>
endobj
6211 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 616.403 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 630.793 null ] >>
endobj
6212 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 619.834 null ] >>
endobj
6213 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 591.384 null ] >>
endobj
6214 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 580.425 null ] >>
endobj
6215 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 569.466 null ] >>
endobj
6216 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 558.507 null ] >>
endobj
6217 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 547.548 null ] >>
endobj
6218 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 519.098 null ] >>
endobj
6219 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 510.799 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 508.14 null ] >>
endobj
6220 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 499.84 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 497.181 null ] >>
endobj
6221 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 488.882 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 486.222 null ] >>
endobj
6222 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 477.923 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 475.263 null ] >>
endobj
6223 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 466.964 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 464.304 null ] >>
endobj
6224 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 456.005 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 453.345 null ] >>
endobj
6225 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 445.046 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 442.386 null ] >>
endobj
6226 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 434.087 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 431.427 null ] >>
endobj
6227 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 423.128 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 420.468 null ] >>
endobj
6228 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 412.169 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 409.509 null ] >>
endobj
6229 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 401.21 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 381.059 null ] >>
endobj
6230 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 390.251 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 370.101 null ] >>
endobj
6231 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 379.292 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 359.142 null ] >>
endobj
6232 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 368.334 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 348.183 null ] >>
endobj
6233 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 357.375 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 337.224 null ] >>
endobj
6234 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 346.416 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 326.265 null ] >>
endobj
6235 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 335.457 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 315.306 null ] >>
endobj
6236 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 324.498 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 304.347 null ] >>
endobj
6237 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 275.897 null ] >>
endobj
6238 0 obj
-<< /D [ 6197 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 264.938 null ] >>
endobj
-89 0 obj
-<< /D [ 6197 0 R /XYZ 79.37 279.118 null ] >>
+6239 0 obj
+<< /D [ 6197 0 R /XYZ 81.077 253.979 null ] >>
endobj
-6196 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 186 0 R /F19 184 0 R /F73 189 0 R /F69 183 0 R /F72 187 0 R /F78 556 0 R /F79 668 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+6240 0 obj
+<< /D [ 6197 0 R /XYZ 81.077 243.021 null ] >>
endobj
6241 0 obj
-<< /Filter /FlateDecode /Length 3133 >>
-stream
-xڵ[[۸~ϯ`AFP,vChnahlVזIIP㑭A2(\CrMr7ÛXbSa‡XJ7ZQ(zpWF=xODG/t2|`Uo۞veZb}mݔYrn*I1J.yFu% r_N#vs}9{JSHM,L3=1t$a6,R?>?}i%R7ieQ]ez$V.m#,*P|kUl?fU־~)e
-EԜDikn9-o!& MhfAGHMDDn?,~6 YR@}jjPsޫ_ip|9y\8(FQ(j:O /,qb=-w. 7积U}vBHɆ#ɵ%
-?>- %xDK4?'$A?9O/:J3,TO٦>jXL09+y@J1ъĄevF
-BxIEyiDY!@Vc}ڧaὄ/Uy:O /xa`9S`BXt|R(=1-cbgȞǪl2wdr2y@iu s8Ļ%@1˘PM +
-uuuv$4ʘ7@-yuPrFW+k gXL6VYLIa
-]bޅ=UZ};l#^6u C;_s8=O= <$LEUZ</B'PWPq:,ˉgG!aIozV䉨ȳ=eow# E{.[*z7R
- L&g;C4"g(e$$xy4> $xh721/$xNtiWPR?1/6s>,>hֹ۶ }n쒈rE,x^L-`>s-Zuq8OrOz
-;Hrmf?P :[>ͮd ycjN697hD>?<PF萾t9$jstϏKв<(^Veʯf3;CUF!lT,԰wh5 Gn ? V]񹭍&}Kk $+ݧ0YFB5H,#{p{SDž;<zF*= Zeiݸh~Vqxݺ zCxU3L{k#j^QlP<VPv&6*"Qh0BIQQlq6
-Fh(
-endstream
-endobj
-6240 0 obj
-<< /Type /Page /Contents 6241 0 R /Resources 6239 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5835 0 R >>
+<< /D [ 6197 0 R /XYZ 81.077 232.062 null ] >>
endobj
6242 0 obj
-<< /D [ 6240 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 221.103 null ] >>
endobj
6243 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 651.273 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 210.144 null ] >>
endobj
6244 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 640.314 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 199.185 null ] >>
endobj
6245 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 599.467 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 188.226 null ] >>
endobj
6246 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 558.62 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 177.267 null ] >>
endobj
6247 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 547.661 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 166.308 null ] >>
endobj
6248 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 536.702 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 155.349 null ] >>
endobj
6249 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 525.743 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 144.39 null ] >>
endobj
6250 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 514.784 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 133.431 null ] >>
endobj
6251 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 503.825 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 122.473 null ] >>
endobj
6252 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 474.934 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 111.514 null ] >>
endobj
6253 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 463.975 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 100.555 null ] >>
endobj
6254 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 453.016 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 89.596 null ] >>
endobj
6255 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 442.057 null ] >>
+<< /D [ 6197 0 R /XYZ 81.077 78.637 null ] >>
endobj
-6256 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 401.21 null ] >>
-endobj
-6257 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 390.251 null ] >>
+6196 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F20 186 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6258 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 374.311 null ] >>
+<< /Filter /FlateDecode /Length 3141 >>
+stream
+xڭˎ6>_Aqc3هE6 -Bdɑx:njŢ(X*:mf7Ix#o}HL)g
+iEMg$Qt:ByefSJ g2r M 6D2A(a?eݴwx*=yY߸qSq:?Y/ZjfŔxNRP-i> n;†wL;7?C]mE#̏ۢeQ孛-kr7nkp\|[rO?0
+\)B ࡹN"͑HÇD&@XmjG.)S¸_
+<DNnߜ˶[*?IpZ_lU{ \vuMwE^{ޡ Ȭ7šwUW0{9b/0H&G&/V*
+NvKp®Qg~2Z?+]#I~P9$O05Smp` }wǽ$1,e!IԐ}Hd.,,Mw^{pG ɞ~ 8p4!oЇ~`E8w֭-U) G<" (CLD6ܢuTf#BOU` #<$S T?zr3MǑ[( [rlEUhz>qҐ x'l:w@3s=(9 eԔ-@QoP l'jdώi+3UW*ƈ}#r?Ǧ:D/._ &Bң*1xTsI<Np ̪zA.#AmcWtD]JJT;<M1 l8Q7`*YhNͩ#NZJAY)*㏐ށTc*$u&*4ёTj=;&X 4f+WG%6`|fNeDytOnM K(ʶv\n:۫/BiJ|rȪSVm^8N;gS, *LD4sL mB 3<<2리?f:b$ʰ&|.nR\`2\`XҸ5N_T$5b^-0|
+o@H7(2lOP=CT4dQd޻: \
+;xXmq IX,EkUPk?ԫ|㘡j}нB
+B=:S-ϮW9*&&#ܤ+oq37H >]@:Wpo%Y o
+Ց<m}Cc`ʏ}Sw9&kFEX 0|ۅ>N9O GPn("74UDYz(L!?W=_bQh`` k: s^JM
+:[PηEsV+?Gڲ #L(r٢aŌ@[DPݩNos8p'<E;҄V 6͵7`
+n/]ཉj]p\<4.+|+Z%~uSHD00doAʜ/LL4&FM}dndW14˃*4KzWCTvor 6P驫fAra=Q&eL "oòh\$Gxmmﰮ5W=XaUI}n_CnZr=p hPh ) `>! ~ @vsw9iއFA¹(֠'{/Do4$dDn1ɸ)2Mr#npH)<X<:O4^ (m <|\])
+2+/y/ƻěy0#WM6I"鸵 g3|@ 6T ,X:%Yh7Y9˱&\qd(ڐ^/D9nOB~썀z:%]!y%\`ž<던7}~种sb f?tlc3=ds8%QFM#SΤ;S1yו
+`{$6֡י81)?]qD}#ad4 NІYI]~Z4ÃeY7 ~*ᆑ4FO2>lJS<a>m;`&އzԮ벏Z
+endstream
+endobj
+6257 0 obj
+<< /Type /Page /Contents 6258 0 R /Resources 6256 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 5841 0 R >>
endobj
6259 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 6257 0 R /XYZ 78.37 808.885 null ] >>
endobj
6260 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 768.832 null ] >>
+endobj
+89 0 obj
+<< /D [ 6257 0 R /XYZ 79.37 746.372 null ] >>
endobj
6261 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 438.866 null ] >>
endobj
6262 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 427.907 null ] >>
endobj
6263 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 287.636 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 387.461 null ] >>
endobj
6264 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 258.745 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 347.015 null ] >>
endobj
6265 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 247.786 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 336.056 null ] >>
endobj
6266 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 236.827 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 325.098 null ] >>
endobj
6267 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 225.868 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 314.139 null ] >>
endobj
6268 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 214.909 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 303.18 null ] >>
endobj
6269 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 203.95 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 292.221 null ] >>
endobj
6270 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 192.991 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 263.73 null ] >>
endobj
6271 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 116.279 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 252.771 null ] >>
endobj
6272 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 241.812 null ] >>
endobj
6273 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 94.361 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 230.853 null ] >>
endobj
6274 0 obj
-<< /D [ 6240 0 R /XYZ 81.077 83.402 null ] >>
-endobj
-6239 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F79 668 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R /F70 185 0 R /F73 189 0 R /F69 183 0 R /F23 660 0 R /F76 318 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6257 0 R /XYZ 81.077 190.407 null ] >>
endobj
-6277 0 obj
-<< /Filter /FlateDecode /Length 2004 >>
-stream
-xYKoW6)(0hѹhY\xQSx+K,=ԃ"ӌ̢XxGjK?]ys+Il_m|DWliYl9VmzQUF"3'&qplʺ+vab(aL1hSUOÇgt[wmtÆߧ,aa "f81:"<Y0a |/-=shmk|W޸JɰJ~*!0`1San;FCM5Z%1bC[E5B$҆es[Mz~X&F11Tix}DtH~-g0:_n:rS|4p獒5'R 1?b-n]9{I_XiFQ"ssK
-. f"EfQ6'㸹c4^6!Zd
-K=ܺmWmv J,iIIHИ CLò@Xh*#wP_ ~cSZId%K oI&$ d,bsS˃^r\ s3 Ct>AvJr\sK*r
-6 ?wf͂J e/c&qmU_1hx]ўmջ~]ǵsCNHG|v7B:kn|f] 01DiL CIGhz JG
-):>GsTRVp B;\}h7\֠q kq83A޹M\~PmA
- wPЗ_˶dsYD fʭhÕ X ƆDc;<>o^# kF~BǓXwXb2mcǝ=*M+EŇ"DsqўA(y
-=A_ˠCOiપb
-
-áo!c ܗ-pMc_4PueQ mT@MjAbb /^c7OY9veS#ݟ#ǁoUZׯת/Ԇ uҎxz<X݃=<ڝ|Ki,ems{rG۰??}3s|8}=¢S^nM%@7uZ$%֌=kus8 `
-endstream
+6275 0 obj
+<< /D [ 6257 0 R /XYZ 81.077 179.448 null ] >>
endobj
6276 0 obj
-<< /Type /Page /Contents 6277 0 R /Resources 6275 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6257 0 R /XYZ 81.077 163.909 null ] >>
+endobj
+6277 0 obj
+<< /D [ 6257 0 R /XYZ 81.077 152.95 null ] >>
endobj
6278 0 obj
-<< /D [ 6276 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 111.514 null ] >>
endobj
6279 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 100.555 null ] >>
endobj
6280 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 89.596 null ] >>
endobj
6281 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6257 0 R /XYZ 81.077 78.637 null ] >>
endobj
-6282 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 735.955 null ] >>
-endobj
-6283 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 724.996 null ] >>
+6256 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F78 556 0 R /F20 186 0 R /F79 668 0 R /F76 318 0 R /F26 662 0 R /F70 185 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6284 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 714.037 null ] >>
+<< /Filter /FlateDecode /Length 2304 >>
+stream
+xZMϯ040 H}`w!mv[Y濧!ZtZs&rLI|,,
+~|7߿#zTFL$Kzد~Z?-clpS/<{맮P7ŗ&#-dZτoM?TlC=9R,q -fΑGv&!ȵb+ _FL
+$sqaX
+'nHV$` x9iG\wTDl3QQyT腑!D"ZDBu8,X62׵-
+t1^i`*&_GC*7
+Ǧ)߾-걄nͶ Tn}"kn"J&1тӸ5/BPJ8 ̦:8d}1_7 9cT]VAkim1jʇ)JM+Klvfen<tbdڤU^DeL3gd[AF9ޚ=ouUelG|r9[~!owhKʻ;v<xE3(#H?oQE`<EC/4*&C,
+Yf0F
+0cpqsL&cg0UWJ ) nǺka"q^"Ρi!
+7zcj7EKތބbM1ƺ})ex{8l,djZUL02ZjWИcU4$kd޼
+tsڽ_MaYR@~//%1G8b}]> O](`˚^8:_:<_%8[&h>,.)Bq}"!oolCP #MBNm6㮞DOv{DO]s5*e NǮkݙ}ҾKR)Yn>Agc"+rwq
+V\hNS,H1k̺r~.Y
+dDgfd8>ٔbo%UHϣy6Hy0DD%4oa߸0ͤ,k%l+?^)z/1 W"ISn⊦~wj |3uwm;[Toty׿s?7
+"1y=G-LިT=G*h)S1rAtW%# :m
+'>ɧΊut~2ἶ|
+-M_"+5tNzKFe,=Lq$2
+纝t
+"l,ՇڽIhxEDliyM/+3E3V6Hf_X
+endstream
+endobj
+6283 0 obj
+<< /Type /Page /Contents 6284 0 R /Resources 6282 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6334 0 R >>
endobj
6285 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 6283 0 R /XYZ 78.37 808.885 null ] >>
endobj
6286 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 754.884 null ] >>
endobj
6287 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 743.925 null ] >>
endobj
6288 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 732.966 null ] >>
endobj
6289 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 722.007 null ] >>
endobj
6290 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 711.048 null ] >>
endobj
6291 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 700.089 null ] >>
endobj
6292 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 689.131 null ] >>
endobj
6293 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 612.418 null ] >>
endobj
6294 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 601.459 null ] >>
endobj
6295 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 590.5 null ] >>
endobj
6296 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 579.542 null ] >>
endobj
6297 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 568.583 null ] >>
endobj
6298 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 557.624 null ] >>
endobj
6299 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 546.665 null ] >>
endobj
6300 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 535.706 null ] >>
endobj
6301 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 524.747 null ] >>
endobj
6302 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 513.788 null ] >>
endobj
6303 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 502.829 null ] >>
endobj
6304 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 491.87 null ] >>
endobj
6305 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 480.911 null ] >>
endobj
6306 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 456.717 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 469.953 null ] >>
endobj
6307 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 445.758 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 458.994 null ] >>
endobj
6308 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 398.081 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 448.035 null ] >>
endobj
6309 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 387.122 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 437.076 null ] >>
endobj
6310 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 376.163 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 426.117 null ] >>
endobj
6311 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 365.204 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 415.158 null ] >>
endobj
6312 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 326.065 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 404.199 null ] >>
endobj
6313 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 315.106 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 393.24 null ] >>
endobj
6314 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 304.147 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 382.281 null ] >>
endobj
6315 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 293.189 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 371.322 null ] >>
endobj
6316 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 282.23 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 360.363 null ] >>
endobj
6317 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 271.271 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 349.405 null ] >>
endobj
6318 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 260.312 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 338.446 null ] >>
endobj
6319 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 249.353 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 327.487 null ] >>
endobj
6320 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 238.394 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 316.528 null ] >>
endobj
6321 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 227.435 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 305.569 null ] >>
endobj
6322 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 216.476 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 294.61 null ] >>
endobj
6323 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 205.517 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 283.651 null ] >>
endobj
6324 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 194.558 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 254.759 null ] >>
endobj
6325 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 183.599 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 243.801 null ] >>
endobj
6326 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 172.641 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 190.999 null ] >>
endobj
6327 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 161.682 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 180.04 null ] >>
endobj
6328 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 150.723 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 169.081 null ] >>
endobj
6329 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 139.764 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 158.122 null ] >>
endobj
6330 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 128.805 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 117.275 null ] >>
endobj
6331 0 obj
-<< /D [ 6276 0 R /XYZ 81.077 117.846 null ] >>
+<< /D [ 6283 0 R /XYZ 81.077 106.316 null ] >>
endobj
-6275 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+6332 0 obj
+<< /D [ 6283 0 R /XYZ 81.077 95.357 null ] >>
endobj
-6335 0 obj
-<< /Filter /FlateDecode /Length 1672 >>
+6333 0 obj
+<< /D [ 6283 0 R /XYZ 81.077 84.398 null ] >>
+endobj
+6282 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R /F75 317 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+6337 0 obj
+<< /Filter /FlateDecode /Length 1898 >>
stream
-xYMo8WxыČMX؏t[ZMBlɕA#SHN<i %%=͐fIwd,]lﻳ?&gWr6(| (hEI` n+eX 4r1]{HWUYifUq>Ln߾}NEY**W+?+3ssKⴹYB
-[%(ЍE:]_n[r ft([nxܻuvuz_Ÿ(Z^-ʿߗ]. zwO;ow6zI`ci7d 6EY\ۀ,ۆyl㸹1|2k ?bKpBC0exN('&X?vh0]QjF6~y8:Ck޸t|=.9lyXDH/!t8CwOİTUIE谒"l^;(GLڍ}
-MqC>oY(lxk$OkJZ>J%I*jy 1h|A-xvU/ۚeWkg kyeULp5Q<kHЂDJXIT"pRgn)#HbmgAmОzoQ#'B&\߿U 4eŠw[JS-6.M2n׿e^Wf*)tk[T`/ݦҨӝ|Z#U[YE]
-VUP4"4^;0|v.3PN E5 ]3'&:n T;1Ul֥Od
- 4&0 xHzm"O6-P"2hzQftPhtbXnϝ@DBJĄo{#t@[)!]"ߓ
+xڵYMo6W%6\4P`я!- EaBl+˛ Mz'^,J#ߐ73T1OJo'?_|&5 E3()]fO쟫?c_o/b&S O eAh򸱥!ܚ7,6_˳sݻEUveXyŸeKXc%Th=ͫ@)\'Bǻ~_ę!ԈH\㈧
+ݪ\b&hBTNhORV^ilU0Cvwumj{LA=:ӆheUՏ?24/a"-.+vZ<ʶ8)SjEĤ9
+xF=W=A|Wb@쎌6BUƏM 6:2`p0fƏ]hxYu@BvEZ)A&Cyx{A)B%ShmAm\gL>͝$Ov*v? [sߕUn >;g];r:qŊC809&g6IKq%*&4u_M9/jd(]za|Ӆao$qq[jsOaJ<~蓆 ?L{U6nzIilc|89{!TYTDIЛXpbttf}dPPbi=,lw7^m,W`.E3,bi %<zW/VlkWaޣYтXQR_+,
+R ]>pT0121b. %bέ8J0PDļă ^~2${^p/4ؿ6dNh!g
+5㛫?~<j{Xͦq]CO-wQ(%vr. M2(8LNMx a%fն}UFKP
+S+$g`$ySxZ4A)ZP(wZ!f2
+Qr\uk,;-E{17C3oˬhʭʾ?2yV9pSqe).74P=8n N@j ZcpLfᝐ7FuP4Y_gL)\BZDaʰxVtkEd1`Cx eLMڣzv|_^t 5T|3lw}z_g@O%ŎY8SW_]<C5֙Ҩ Q7ZBtOY(bc23C'A;/qR!~mXМa,6ԐݑP4C<cLy LMd|U2kS9ÙD󢕢DwV+HLc@qu :bm:X&W-1)0ݩF_& `{gzVߠ) /k\sʟ-:q[LF}E2HiDq Y2:Ed㊈n| Pwؓ^A %GÞ |m`u-}'BK]D㨧#bMGXrFp;D|J-j7QO)r^_>+ Ď=s.ə@~r*F78/c!YC_d`=VHeΞWv7ڴ.h,T;g$XNTO3,.إ]mr,ys}1)U=3ǖJAHe߮N'ct
endstream
endobj
-6334 0 obj
-<< /Type /Page /Contents 6335 0 R /Resources 6333 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
-endobj
6336 0 obj
-<< /D [ 6334 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-6337 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 768.832 null ] >>
+<< /Type /Page /Contents 6337 0 R /Resources 6335 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6334 0 R >>
endobj
6338 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6336 0 R /XYZ 78.37 808.885 null ] >>
endobj
6339 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 768.832 null ] >>
endobj
6340 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 757.873 null ] >>
endobj
6341 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 746.914 null ] >>
endobj
6342 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 735.955 null ] >>
endobj
6343 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 661.235 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 724.996 null ] >>
endobj
6344 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 650.276 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 714.037 null ] >>
endobj
6345 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 639.317 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 703.078 null ] >>
endobj
6346 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 628.358 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 692.119 null ] >>
endobj
6347 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 587.512 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 681.16 null ] >>
endobj
6348 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 576.553 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 670.202 null ] >>
endobj
6349 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 565.594 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 659.243 null ] >>
endobj
6350 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 554.635 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 648.284 null ] >>
endobj
6351 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 543.676 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 637.325 null ] >>
endobj
6352 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 502.829 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 626.366 null ] >>
endobj
6353 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 491.87 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 615.407 null ] >>
endobj
6354 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 480.911 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 604.448 null ] >>
endobj
6355 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 469.953 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 551.646 null ] >>
endobj
6356 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 458.994 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 540.687 null ] >>
endobj
6357 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 428.109 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 529.728 null ] >>
endobj
6358 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 417.151 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 518.769 null ] >>
endobj
6359 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 406.192 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 507.811 null ] >>
endobj
6360 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 395.233 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 496.852 null ] >>
endobj
6361 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 384.274 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 444.05 null ] >>
endobj
6362 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 373.315 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 433.091 null ] >>
endobj
6363 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 422.132 null ] >>
endobj
6364 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 411.173 null ] >>
endobj
6365 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 370.326 null ] >>
endobj
6366 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 359.367 null ] >>
endobj
6367 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 348.408 null ] >>
endobj
6368 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 337.449 null ] >>
endobj
6369 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 326.49 null ] >>
endobj
6370 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 253.763 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 285.644 null ] >>
endobj
6371 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 242.804 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 274.685 null ] >>
endobj
6372 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 263.726 null ] >>
endobj
6373 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 252.767 null ] >>
endobj
6374 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 241.808 null ] >>
endobj
6375 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 210.924 null ] >>
endobj
6376 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 158.122 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 199.965 null ] >>
endobj
6377 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 147.163 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 189.006 null ] >>
endobj
6378 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 136.204 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 178.047 null ] >>
endobj
6379 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 125.245 null ] >>
+<< /D [ 6336 0 R /XYZ 81.077 167.088 null ] >>
endobj
6380 0 obj
-<< /D [ 6334 0 R /XYZ 81.077 114.286 null ] >>
-endobj
-6333 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6336 0 R /XYZ 81.077 156.129 null ] >>
endobj
-6383 0 obj
-<< /Filter /FlateDecode /Length 1546 >>
-stream
-xZMoFWEF~sW'i(ts i E*$]'߻%W4Gv"v̛{>هk={Ӈ3b^`xF|Iěνѯq_c|YGpHof]K|&Ư"UaƳ<͋eG?Z1[-X c$jOfyiEn$İ>"mBa(rbj]pM&~9=a]o^-7;V7L""5f"!Qᢗཀྵ@D 7gE> y0<ɮSC8LZzEnqp`%HW 0*VeegPVRSLoYay^wvoS?2Q.fiIIe.kv~i,'. JoLjcbePwFS7U!jԣO$H4OIòjdxG+X|TQ<v^"co#BLD=ʟ(eȒ8,K>=oA䠿: %OZPuph8uMB2F0b;6 Aj+&ɰnt.h#'H)fm{U4vo<z" H\c"I8D),~ E^Fq4Ydsjf9b΁y;hp)R-5 qЍfUgӷSM^zTKPVLT-90A`:K㰨|rKC/fAq(o?>頇PNabW˛c><5S8SnܖBa9GOL}N.7S
-Sso}0]tKi= 9M&^fŁ2m6EGm߱_/[d(;F&wWUXTqYIKz|܅seMHc'/T dHYRmu;ʩ@\}xs]55^Φx۔p
- nNpo hU>
-k^D û.twK\%ST+V@}<`bxmM8<bFRઽPX 4)`.$K,d1T
-sݧ^8ۧ' ۋΩWj*̻0,6hަľKF@I,6Y`O04X`.v$¦uZ_UnW 16囃;((kc^Fsx㜿>
-\,? upe6lT(sz!67l3*=5ǽ$ Ti4z'҇
-7 .a(i]`o4pBq .zW{qgGؒaCr 3$-6v55]w[68Fz?Ȏ2=i!D
-endstream
+6381 0 obj
+<< /D [ 6336 0 R /XYZ 81.077 113.29 null ] >>
endobj
6382 0 obj
-<< /Type /Page /Contents 6383 0 R /Resources 6381 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6336 0 R /XYZ 81.077 102.331 null ] >>
endobj
-6384 0 obj
-<< /D [ 6382 0 R /XYZ 78.37 808.885 null ] >>
+6383 0 obj
+<< /D [ 6336 0 R /XYZ 81.077 91.372 null ] >>
endobj
-6385 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 754.884 null ] >>
+6384 0 obj
+<< /D [ 6336 0 R /XYZ 81.077 80.413 null ] >>
endobj
-6386 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 743.925 null ] >>
+6335 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6387 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 732.966 null ] >>
+<< /Filter /FlateDecode /Length 1533 >>
+stream
+xZKOH+RGN}0=n#$Ʊ3߷8ݮW
+k~k3FGfW%C]qDD;Nku~9B\dE;8jt|Lsj`&Vì:v@ m.WlFq W^珿VY^6TYVNCF] k՚.rs9@4
+ܷSdn/h a5EM`u渪˼~n67$j.0taꡜ$qdK ǝ|%Uĩ
+M
+?P0`WHE y@p %Ye圛P!V\NLB=&}^a>Z==]4-b@H:.^m:
+W^f6MQY"T[ܙ89EDiH\m[M%uFPvB_1-N.̓2ߞ"3WDP >R!$Q<qqGXC217—{%EsA&/vaf꺧FWY7=K_x3<k?ϳ~TM0'jo _Sωޏ|/6Ngb:6pU>9b3Zkuc?7,C2+VptôY8SHrb~iX9'F
+ FCc̼5Y^s}we 2X{19TSZgPِ?
+endstream
+endobj
+6386 0 obj
+<< /Type /Page /Contents 6387 0 R /Resources 6385 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6334 0 R >>
endobj
6388 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 6386 0 R /XYZ 78.37 808.885 null ] >>
endobj
6389 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 768.832 null ] >>
endobj
6390 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 757.873 null ] >>
endobj
6391 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 746.914 null ] >>
endobj
6392 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 735.955 null ] >>
endobj
6393 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 724.996 null ] >>
endobj
6394 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 686.992 null ] >>
endobj
6395 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 676.033 null ] >>
endobj
6396 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 665.074 null ] >>
endobj
6397 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 654.115 null ] >>
endobj
6398 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 643.156 null ] >>
endobj
6399 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 632.197 null ] >>
endobj
6400 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 621.238 null ] >>
endobj
6401 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 610.279 null ] >>
endobj
6402 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 599.321 null ] >>
endobj
6403 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 497.848 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 561.316 null ] >>
endobj
6404 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 486.889 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 550.357 null ] >>
endobj
6405 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 475.93 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 539.398 null ] >>
endobj
6406 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 464.971 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 528.44 null ] >>
endobj
6407 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 454.012 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 517.481 null ] >>
endobj
6408 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 443.053 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 506.522 null ] >>
endobj
6409 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 432.094 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 495.563 null ] >>
endobj
6410 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 421.136 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 484.604 null ] >>
endobj
6411 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 410.177 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 473.645 null ] >>
endobj
6412 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 399.218 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 435.641 null ] >>
endobj
6413 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 424.682 null ] >>
endobj
6414 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 413.723 null ] >>
endobj
6415 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 306.565 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 402.764 null ] >>
endobj
6416 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 295.606 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 391.805 null ] >>
endobj
6417 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 284.647 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 380.846 null ] >>
endobj
6418 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 273.688 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 369.887 null ] >>
endobj
6419 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 262.73 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 358.928 null ] >>
endobj
6420 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 347.97 null ] >>
endobj
6421 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 220.887 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 309.965 null ] >>
endobj
6422 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 209.928 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 299.006 null ] >>
endobj
6423 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 198.969 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 288.047 null ] >>
endobj
6424 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 188.01 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 277.089 null ] >>
endobj
6425 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 177.051 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 266.13 null ] >>
endobj
6426 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 166.092 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 255.171 null ] >>
endobj
6427 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 155.133 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 244.212 null ] >>
endobj
6428 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 144.174 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 233.253 null ] >>
endobj
6429 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 133.215 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 222.294 null ] >>
endobj
6430 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 122.256 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 211.335 null ] >>
endobj
6431 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 111.297 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 171.436 null ] >>
endobj
6432 0 obj
-<< /D [ 6382 0 R /XYZ 81.077 100.339 null ] >>
-endobj
-6381 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6386 0 R /XYZ 81.077 160.477 null ] >>
endobj
-6435 0 obj
-<< /Filter /FlateDecode /Length 2674 >>
-stream
-xڭZߏ6~_C KtQ h-! խ,gH,zދeQȏ3̈xv7ó^awDRJ>^"
-1UDah:\\xﲢȊ;V/1L s[^eHJg"v]-@\!}ۊNݗ$7<q//4FrqIM+хQR%9Gj4ʺQ<1'h&v]Ԗy=i+:kۖgG&"DD/Ӳ*tSrAX<G-#a،#P@±D@!QHmn9 ,H{k6ڽһv[R#ˤm~{w_e݅NPD9'$MĨOcXh,崱)FS>IiwH&ɓkzܤ sqOBюw݅2/Wk~cV4mW]k8ߗqG٧܇8d{`#X/o*+(<+R/T宵\Qvϟn^ے$q> ZM^N,e~[l=A ZZҼnx<~&,l&CљI$ۼYDj$,C2V=aDCu4Qq͹"1{"
-c:Do9f(`ۗuUwzY7 Wh6{+:lR{TL 3#L'fF{0K`lx8DInrz*l3>8"XzUmƆ$K?eP8Ex\{\9cFnons4;|IR!GN޾>Rg}Q.3ǧ4YYKPAw㚣- AU1>٦hmdIM#(=f8I<ژn Y@ax8~  aꌲ(aTX2tngsTw&Ili|e0Ml2CN'B 9q06:bё4+p+'VDKz1BKODOM#׏~Hi|BQbXΏN.bTWh0-o<òNe.C䓌Ʀ6r0dcJI|:L:KmKM:ͺ&[e`/QγG!4:S^qO )g>ppꙶ5)
-H}気. h&&XW}=A<tGͲYJLjov}vd2FVCІxKRQ_aU3VVEIզ+=yeprs2Tº)YU 4J#*W.O4 n &ȗYќo!#܅ýh ܷUeLiLڇf_(&[ħuԷ[z8"6\wmXkP`?W$VG?uUH{Kĸ8HX\qnY,ڐ?Jz
-;5!T"nD*ȯySYcl{y'@<]F@)&s$h_EI/о/N ͽ.ٚ`i͙aM [gLh&wPUpЯ^*&ªrS@ׯ'
-endstream
+6433 0 obj
+<< /D [ 6386 0 R /XYZ 81.077 122.473 null ] >>
endobj
6434 0 obj
-<< /Type /Page /Contents 6435 0 R /Resources 6433 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6386 0 R /XYZ 81.077 111.514 null ] >>
+endobj
+6435 0 obj
+<< /D [ 6386 0 R /XYZ 81.077 100.555 null ] >>
endobj
6436 0 obj
-<< /D [ 6434 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 89.596 null ] >>
endobj
6437 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 6386 0 R /XYZ 81.077 78.637 null ] >>
endobj
-6438 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 720.015 null ] >>
-endobj
-6439 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 709.056 null ] >>
+6385 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6440 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 698.097 null ] >>
+<< /Filter /FlateDecode /Length 2320 >>
+stream
+xڭZ[o~P/2O~b`f}p}JkԒTTH~{pH qP3F ~ כqd4atvsA!<#3-$j$AX\Hn.?_if) &Ȑo}K<ټ~_<=%啠ݻ곭")VEVq/|oS!X`۰Fn{O!QѲA^6&bzYEtzx&H5"4 "xWQ;llO+"&%R4nj#@ ^&[hČѝrbE~!8u???~>lRsĸiiB`ކqfY1ݏ-і'onCcM(Z0
+#Zrwlv툊Ke:?DE8C&̋ZAGʶ,rywߡюi/R2*)}="L'E`DŽ7 P'6k]
+dLl;}6Pu\uZ6f%A}&m7(KT+ZMp$t[6 >_'+G1yvNpG[I(XbSB|u8dijٸhB )֬i\|8)&cZAKL琌ġlJ7k0kLҍ)sqTrį8E yQJ1
+:x2Zܵ[R>ְLU`HnF_؀: N<LrPtwH]m 9NsW}I֙]Gdi`p@?[m{m1,>GiQE A
+endstream
+endobj
+6439 0 obj
+<< /Type /Page /Contents 6440 0 R /Resources 6438 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6334 0 R >>
endobj
6441 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 6439 0 R /XYZ 78.37 808.885 null ] >>
endobj
6442 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 768.832 null ] >>
endobj
6443 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 757.873 null ] >>
endobj
6444 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 746.914 null ] >>
endobj
6445 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 735.955 null ] >>
endobj
6446 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 612.418 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 724.996 null ] >>
endobj
6447 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 601.459 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 714.037 null ] >>
endobj
6448 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 590.5 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 703.078 null ] >>
endobj
6449 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 579.542 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 692.119 null ] >>
endobj
6450 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 568.583 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 681.16 null ] >>
endobj
6451 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 557.624 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 670.202 null ] >>
endobj
6452 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 449.031 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 659.243 null ] >>
endobj
6453 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 438.072 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 648.284 null ] >>
endobj
6454 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 637.325 null ] >>
endobj
6455 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 570.575 null ] >>
endobj
6456 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 559.616 null ] >>
endobj
6457 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 548.657 null ] >>
endobj
6458 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 537.698 null ] >>
endobj
6459 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 526.74 null ] >>
endobj
6460 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 515.781 null ] >>
endobj
6461 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 484.896 null ] >>
endobj
6462 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 291.621 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 473.938 null ] >>
endobj
6463 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 280.662 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 462.979 null ] >>
endobj
6464 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 239.816 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 452.02 null ] >>
endobj
6465 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 228.857 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 441.061 null ] >>
endobj
6466 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 217.898 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 430.102 null ] >>
endobj
6467 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 206.939 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 419.143 null ] >>
endobj
6468 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 195.98 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 408.184 null ] >>
endobj
6469 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 185.021 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 397.225 null ] >>
endobj
6470 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 156.129 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 288.632 null ] >>
endobj
6471 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 145.17 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 277.674 null ] >>
endobj
6472 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 134.212 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 248.782 null ] >>
endobj
6473 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 123.253 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 237.823 null ] >>
endobj
6474 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 112.294 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 226.864 null ] >>
endobj
6475 0 obj
-<< /D [ 6434 0 R /XYZ 81.077 101.335 null ] >>
-endobj
-6433 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R /F76 318 0 R /F75 317 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6439 0 R /XYZ 81.077 215.905 null ] >>
endobj
-6478 0 obj
-<< /Filter /FlateDecode /Length 2380 >>
-stream
-xڭZ]۸}ϯ0/6voX춳m/a0d[%Gg{)){lsxxyy ~_tGL!%䳇wn%
-dH$}f?G)Tr٪+.HLY=]n};JNk-S|}nj7mg~4-3P ټ~ ډyQ]<-ga[s |֗~LY
-,>fӂs֟}gZr=
-*GpSF
-2FFK j5]Ye.4Pmnď2J7R>:odwrLd*hqjӼ7KUhm|u'9)7?IԟQu
-OV@͉w ( p
-Du./J *zaޜ }?a(֕=rAۻl>ϛ|sh,BD46jՕ&H=sӚ"ʾ
-3`*)|dT2% ::W&%KDh]o&tpwn+4GIn?1z 1P|ʨ_.yd ʕ
-h7
-|FMEuE=Hne;}ȫavV)`DLB0btII:aevYf͇.7o
-B<?, k p}E3nHtT;Cƭl8'h3՜I@m7)7EҔt,]PJ}FۦmǢ+5^CX`8J|=ӥ+T7Yp&OoqM
-b ~IY'E"
-endstream
+6476 0 obj
+<< /D [ 6439 0 R /XYZ 81.077 204.946 null ] >>
endobj
6477 0 obj
-<< /Type /Page /Contents 6478 0 R /Resources 6476 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6439 0 R /XYZ 81.077 193.987 null ] >>
+endobj
+6478 0 obj
+<< /D [ 6439 0 R /XYZ 81.077 153.141 null ] >>
endobj
6479 0 obj
-<< /D [ 6477 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 142.182 null ] >>
endobj
6480 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 743.569 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 131.223 null ] >>
endobj
6481 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 732.611 null ] >>
-endobj
-6482 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 721.652 null ] >>
+<< /D [ 6439 0 R /XYZ 81.077 120.264 null ] >>
endobj
-6483 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 710.693 null ] >>
+6438 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F76 318 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6484 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 699.734 null ] >>
+<< /Filter /FlateDecode /Length 2242 >>
+stream
+xڭZ]o6}_a`j o~( l݇<SLq$WǓR(Rqӝ&$+ŧ^}5 /nxd4bj$AXV [+r[?+[WT-möO쳹C
+ۤWfS|Pf1w; YṇK|;jlMm{0!_>b?bc @qcޙ˼^q_0 e 8ip9mKhı !0vϢdFΌnf\ ,>hbd?4`&_ kXiŻaC^nr{zk Vg HQ#iRdkdnx6` WBG:!]$IgL<?_KH`|LFh6Zܬi=~&SsßrDkG *0r$ͩ' xxs
+%FoSQ;5>]ۗ vgj$ Z8Iqm赻]ߔo3VH28(9СomZ!/ljmM#8mT[a;@{+E~lCpPV)y3EYˍՖfe`DCsC!BI*gSɉRչw8^mW^KE/Kx69fZ {qۉ"7sm>u~,R}f_ɢ "`dBH[YVWayHY0L0 .4JXv]Xkhfv1Ng>gE!p&n7( K7֛&%.CG׈hTvX!,N}xwUeb&G@&D65mm#JD)Eڥ
+8uq}30\dzBvY" /tK]*=m[7.;k(gl?tfpYS:N^%_*蕅z+? %<˸vtgjJ૾U`Ѣ%A$7™HI6+ޣDLגKDy=35-r>/p,aO|^
+ DEf>ᠼ!z;MDXe0kB.$ :ExHR&ET¬GfgUYdbRsnI<9Ctі .焖({~hw(NY#3'N_ə Asc"Ϥq$
+",z0Wiu817*f6/S |rF A<aL#7|[۳M(bp E.)DY`
+^6m+oˬD8$0S
+DNÚGW*f
+endstream
+endobj
+6483 0 obj
+<< /Type /Page /Contents 6484 0 R /Resources 6482 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6334 0 R >>
endobj
6485 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 688.775 null ] >>
+<< /D [ 6483 0 R /XYZ 78.37 808.885 null ] >>
endobj
6486 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 677.816 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 742.929 null ] >>
endobj
6487 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 650.206 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 731.97 null ] >>
endobj
6488 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 622.595 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 721.011 null ] >>
endobj
6489 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 611.636 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 710.052 null ] >>
endobj
6490 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 600.677 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 699.093 null ] >>
endobj
6491 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 589.718 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 688.134 null ] >>
endobj
6492 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 578.759 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 659.243 null ] >>
endobj
6493 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 551.149 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 648.284 null ] >>
endobj
6494 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 540.19 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 637.325 null ] >>
endobj
6495 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 529.231 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 626.366 null ] >>
endobj
6496 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 501.621 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 615.407 null ] >>
endobj
6497 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 490.662 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 604.448 null ] >>
endobj
6498 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 479.703 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 563.601 null ] >>
endobj
6499 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 468.744 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 552.642 null ] >>
endobj
6500 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 457.785 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 541.684 null ] >>
endobj
6501 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 446.826 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 530.725 null ] >>
endobj
6502 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 435.867 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 519.766 null ] >>
endobj
6503 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 424.908 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 508.807 null ] >>
endobj
6504 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 413.95 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 497.848 null ] >>
endobj
6505 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 402.991 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 468.956 null ] >>
endobj
6506 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 392.032 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 440.065 null ] >>
endobj
6507 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 381.073 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 429.106 null ] >>
endobj
6508 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 370.114 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 418.147 null ] >>
endobj
6509 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 359.155 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 407.188 null ] >>
endobj
6510 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 348.196 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 396.229 null ] >>
endobj
6511 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 337.237 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 367.337 null ] >>
endobj
6512 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 326.278 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 356.378 null ] >>
endobj
6513 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 315.319 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 345.42 null ] >>
endobj
6514 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 304.36 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 316.528 null ] >>
endobj
6515 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 293.402 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 305.569 null ] >>
endobj
6516 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 282.443 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 294.61 null ] >>
endobj
6517 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 271.484 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 283.651 null ] >>
endobj
6518 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 260.525 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 272.692 null ] >>
endobj
6519 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 249.566 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 261.733 null ] >>
endobj
6520 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 205.304 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 250.774 null ] >>
endobj
6521 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 194.345 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 239.816 null ] >>
endobj
6522 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 183.386 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 228.857 null ] >>
endobj
6523 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 172.427 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 217.898 null ] >>
endobj
6524 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 161.468 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 206.939 null ] >>
endobj
6525 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 150.509 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 195.98 null ] >>
endobj
6526 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 185.021 null ] >>
endobj
6527 0 obj
-<< /D [ 6477 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-6476 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6483 0 R /XYZ 81.077 174.062 null ] >>
endobj
-6530 0 obj
-<< /Filter /FlateDecode /Length 2055 >>
-stream
-xڭZMܸW4Xso,"94@@Ш3JRGRg5Sٔnk&"bztI7K~DMF2ŔQH7t3F+JRE7ߓ<y苲NXz+ǝs}x5Ʉ1Kep.1
-m3s1Pgz!H=WT -;5(
-&\Rs:6,RDH)h rQy[=Ǿrvdr1k~mk>Ew?%z^0/vۼӜ=6„ cf)<mu;ew8ŠosSM>9)a& )R诳=vC5n?Wm\7K0~d
-s"uϱSٵzh}jWT䈶^H"28-C 0A}m>m{)^q",3Էhj2x@#R=K4~`*1qHׂr}+?O]5^fm7/oh /Xq,(Ca\%&)p;B[eT9JKc:yG[ؘe8箒<F5 j<HziS:@m$5_n xMgdŃ]#ȦlTR[@|ky9ݩJ2$e! \,2 $'K|&?kh0Й \vo4^k/^f
-.q5B,zM{0q ̑\R6K a:X˱-r` X˱0T.Coɱؼ 9e2Dz9e29 ƶ]t׹pl[?K~v=QNE!q"CӸ.|D
-aˮyqX@uTO9^..|52#4IUֿ@ -QVw?
-
-;Rrzi,i9WI"_[
-2Y*EmuM^﷟mXK e<cEQ BvmDȭmh@d:H^Izu( A*d] I祺QICxf"uP%:/YH߉Ov
-CRM NkoTJOq!B}9ڿ(z=b K"Vp/oiʄȫ4j Fh[(h=BT4#4~ĺvA#4bGɷQT1STз0P|h.0O)Kz<Mz׾R{>};?'=-
-iʮ}L,J0'V@J")|=?urߺuRKه?NOI)֟ ԌB+gsBHF}wO]sPDB'rR` i8K~=C3fHN}s XÊVe .FC5E,EdMw|!g5~ t&I
-endstream
+6528 0 obj
+<< /D [ 6483 0 R /XYZ 81.077 163.103 null ] >>
endobj
6529 0 obj
-<< /Type /Page /Contents 6530 0 R /Resources 6528 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6483 0 R /XYZ 81.077 152.144 null ] >>
+endobj
+6530 0 obj
+<< /D [ 6483 0 R /XYZ 81.077 141.185 null ] >>
endobj
6531 0 obj
-<< /D [ 6529 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 130.226 null ] >>
endobj
6532 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 740.936 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 119.268 null ] >>
endobj
6533 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 729.977 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 108.309 null ] >>
endobj
6534 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 719.019 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 97.35 null ] >>
endobj
6535 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 708.06 null ] >>
-endobj
-6536 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 697.101 null ] >>
+<< /D [ 6483 0 R /XYZ 81.077 86.391 null ] >>
endobj
-6537 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 664.224 null ] >>
+6482 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F23 660 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6538 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 653.265 null ] >>
+<< /Filter /FlateDecode /Length 2343 >>
+stream
+xڭZKo8W t4Ѓn
+x8auMҘϕ.bV"9"$tT|
+  VIq$ T!+ӊN
+/fuDc{RYulUCOo{7]c2{'&{?o$A:d5_Xyʢ݉6ZN+ӭ-f{U浅}2\2H
+B Qd_3%*)ǖO^5g&ERN OR־XYD˛d.&P K>;/ϝT" `wLl4ϪV~9ٻS'2n/"PbC`kX dnsiU3Lqo
+gajmiS(N)pwG4YX,Q?Sk<ΦPW'ǵBX듫mlgvΝ΁ ky\t*!pUKٍyGu??Us뮢2կNE
+w B˷}fl̫R
+J۔GJ4!Hyrh,(<qI4@ /gS:BSe
+5?Itwš渻LhuXq_TO֤!ݱ}mɍN,yEr
+ers?wV2,Xէ+*]vtKvĦ Ww+">HR =79S-&ӴXwtۛ-ܴwQ.w YNFGZ2''Q=T<v_S !KyfH8#Z~=_W^qBO9w?tə_rp:ꮢgfy?y؛x&h|JF]d[8!l{S>ڽ{ "b2mΜi:5+-0*0:af0$`S?cD![Օ[Cy۪kvOo$H 5!8 /UY:woj˪ߘ` -
+d\$UqeTWUGx
+#EWT?`;MUČNweo ,;a0
+endstream
+endobj
+6537 0 obj
+<< /Type /Page /Contents 6538 0 R /Resources 6536 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6334 0 R >>
endobj
6539 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 642.306 null ] >>
+<< /D [ 6537 0 R /XYZ 78.37 808.885 null ] >>
endobj
6540 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 631.347 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 768.832 null ] >>
endobj
6541 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 620.388 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 757.873 null ] >>
endobj
6542 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 609.429 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 711.281 null ] >>
endobj
6543 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 598.471 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 700.322 null ] >>
endobj
6544 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 587.512 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 689.363 null ] >>
endobj
6545 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 576.553 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 678.404 null ] >>
endobj
6546 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 565.594 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 667.445 null ] >>
endobj
6547 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 656.486 null ] >>
endobj
6548 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 592.078 null ] >>
endobj
6549 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 581.119 null ] >>
endobj
6550 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 538.687 null ] >>
endobj
6551 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 527.728 null ] >>
endobj
6552 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 516.769 null ] >>
endobj
6553 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 505.81 null ] >>
endobj
6554 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 494.851 null ] >>
endobj
6555 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 462.439 null ] >>
endobj
6556 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 451.48 null ] >>
endobj
6557 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 323.502 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 440.521 null ] >>
endobj
6558 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 312.543 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 429.563 null ] >>
endobj
6559 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 301.584 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 418.604 null ] >>
endobj
6560 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 290.625 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 407.645 null ] >>
endobj
6561 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 279.666 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 396.686 null ] >>
endobj
6562 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 268.707 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 385.727 null ] >>
endobj
6563 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 257.748 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 374.768 null ] >>
endobj
6564 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 246.789 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 363.809 null ] >>
endobj
6565 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 235.83 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 321.377 null ] >>
endobj
6566 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 224.872 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 310.418 null ] >>
endobj
6567 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 213.913 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 299.459 null ] >>
endobj
6568 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 202.954 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 288.5 null ] >>
endobj
6569 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 277.541 null ] >>
endobj
6570 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 266.582 null ] >>
endobj
6571 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 255.623 null ] >>
endobj
6572 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 117.275 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 244.664 null ] >>
endobj
6573 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 106.316 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 233.705 null ] >>
endobj
6574 0 obj
-<< /D [ 6529 0 R /XYZ 81.077 95.357 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 222.746 null ] >>
endobj
-6528 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F23 660 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-6577 0 obj
-<< /Filter /FlateDecode /Length 1693 >>
-stream
-xZIoFWEF싀F:@:zh Be[E*(Yۣ} M;xA?^\2qiegpvX8"LhFfw++{w;yf[<Nl7WWWdOy-տ?.(Q%'#P2#LD3$ U1H׷u,ȣ Sb0!tY$<f4 ju&77 ]&E)4T0%#W\ŘZy#
-"JCd9),<RO1J# DW'74q&R78!W
-&bk˙
-q%<"Fm8n\$y<Ο&YeC>%ˢ VD y;;mT-(ЍLf?5X2Ӟ ):D>2(U!R|6'DF3 bOVwD8 ÝZ[LbhctaeQ@LD`L5Wp&"B`q,B6p}ַXx|0˓iV$KW<=IBi㺸zё T6ܡ"=BE2PӻPOg|+\>X[7G%]khC\Lt;Ks"/FIYp@/
- ÏQǮ/թKa`h턥
-5Dk@jşМ0k
-j#U<F5w (GhV}9`Jgɍ$Rp[}DkAZFG:WjV\2?̠"=Bu}?)yipEh/&--#4bެ0ah//-m#S-1͇|QQA5mEuvI%TF}[Us02_%8#({d;;xQ0H#3TDukQ/0Ƿh2lA8Sk罹~&;{dߒx}<-`,%|N.LDoD/-wh,/\$ {hw;mh8Ļ] u5kS:0&m z>q`й הi11EV>$+ljcC!8s3aZ-#̵
-endstream
+6575 0 obj
+<< /D [ 6537 0 R /XYZ 81.077 122.473 null ] >>
endobj
6576 0 obj
-<< /Type /Page /Contents 6577 0 R /Resources 6575 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6537 0 R /XYZ 81.077 111.514 null ] >>
+endobj
+6577 0 obj
+<< /D [ 6537 0 R /XYZ 81.077 100.555 null ] >>
endobj
6578 0 obj
-<< /D [ 6576 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 89.596 null ] >>
endobj
6579 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 755.2 null ] >>
-endobj
-6580 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 744.241 null ] >>
+<< /D [ 6537 0 R /XYZ 81.077 78.637 null ] >>
endobj
-6581 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 733.282 null ] >>
+6536 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6582 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 722.323 null ] >>
+<< /Filter /FlateDecode /Length 1763 >>
+stream
+xZ[oF~ϯ@ h/HVJ}Cԇne9I\f6x% ݗ@<ߜ9Fxo?hٿ.~_VlđфExDFZ"IHI$rX(e&sz-H##%>p{Q0EWWQ^,(uEEuxEJ`D0ݒFG7,E\IyG˰\Y305fQ#0j>7Ոh-4bFF,UQ\՟g7TP1hqQyRV"ɲ*tB
+GFW*dn/+s7v%>~@c>6BibX9jd,9bܸa{3듂hފYSv[+`O\$%EHa A̺A~MX܇(ݎ $XӲL1iqN7It_Ӫ[wɢu݅Fq]iD4˺)U~enMܯ{"Nrɫ\/U{R}eX_ʤZgu?BSz7s>kuwִd' h2圏[q^&Ċ"hqߥls I90c ,(O6Ѫ,jkfC%F# \+B8o5y!J^qh-UkAPz8"ƽiN:557Yaqm1O{%)w<̺zíSDgd[Ҫ*J,͓MEIc+\
+ns+  B&X*S[w`k/Wq:oU&(CL6FG7ꬩTܪ4S˙4\ym$
+;ź<zzLfG͢G;7uQ0>{zspl39Llfow(AMmc9#X=A.XrEl Ch 48qic6noj`E"nU1J!e2u>r~.3" r ߛ*dky7,距 О-OMngfV6,_DcNgpۮJyz~oL3ĕr547fAK\$H 
+3[yq65Ov)0hM?}+ $%HagŒGN Okc'U>Eg`=p_?Ӄb:M1HWNXJ<z=}3lM7r> <i
+Իtun}cne.YI
+{^SĶ
+^7ܗc?b *]@a4 K9,]qx50_gL $L>M0ʌ+ܨGq?=0Ū,;o6$D!$p`jМ7&X"A\m0L>H ,3 ? }YV_1$ݏ}4z? `Dq%BX\~_͌=
+endstream
+endobj
+6581 0 obj
+<< /Type /Page /Contents 6582 0 R /Resources 6580 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6334 0 R >>
endobj
6583 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 711.364 null ] >>
+<< /D [ 6581 0 R /XYZ 78.37 808.885 null ] >>
endobj
6584 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 700.405 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 768.832 null ] >>
endobj
6585 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 689.446 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 757.873 null ] >>
endobj
6586 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 678.487 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 746.914 null ] >>
endobj
6587 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 667.528 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 735.955 null ] >>
endobj
6588 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 656.569 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 724.996 null ] >>
endobj
6589 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 645.611 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 714.037 null ] >>
endobj
6590 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 634.652 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 703.078 null ] >>
endobj
6591 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 623.693 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 692.119 null ] >>
endobj
6592 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 612.734 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 681.16 null ] >>
endobj
6593 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 601.775 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 670.202 null ] >>
endobj
6594 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 590.816 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 617.4 null ] >>
endobj
6595 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 579.857 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 606.441 null ] >>
endobj
6596 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 568.898 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 595.482 null ] >>
endobj
6597 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 557.939 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 566.59 null ] >>
endobj
6598 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 546.98 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 555.631 null ] >>
endobj
6599 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 518.72 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 544.672 null ] >>
endobj
6600 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 507.761 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 533.713 null ] >>
endobj
6601 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 496.802 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 522.754 null ] >>
endobj
6602 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 485.843 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 511.796 null ] >>
endobj
6603 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 474.884 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 500.837 null ] >>
endobj
6604 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 463.925 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 489.878 null ] >>
endobj
6605 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 452.966 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 478.919 null ] >>
endobj
6606 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 424.706 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 467.96 null ] >>
endobj
6607 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 413.747 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 457.001 null ] >>
endobj
6608 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 402.788 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 446.042 null ] >>
endobj
6609 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 391.829 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 435.083 null ] >>
endobj
6610 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 380.87 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 424.124 null ] >>
endobj
6611 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 369.911 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 413.165 null ] >>
endobj
6612 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 358.952 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 402.207 null ] >>
endobj
6613 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 347.993 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 391.248 null ] >>
endobj
6614 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 337.035 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 380.289 null ] >>
endobj
6615 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 326.076 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 369.33 null ] >>
endobj
6616 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 315.117 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 358.371 null ] >>
endobj
6617 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 304.158 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 329.479 null ] >>
endobj
6618 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 293.199 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 318.52 null ] >>
endobj
6619 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 282.24 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 307.561 null ] >>
endobj
6620 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 271.281 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 296.603 null ] >>
endobj
6621 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 260.322 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 285.644 null ] >>
endobj
6622 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 249.363 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 274.685 null ] >>
endobj
6623 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 238.404 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 263.726 null ] >>
endobj
6624 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 227.445 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 234.834 null ] >>
endobj
6625 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 216.487 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 223.875 null ] >>
endobj
6626 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 212.916 null ] >>
endobj
6627 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 201.957 null ] >>
endobj
6628 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 190.999 null ] >>
endobj
6629 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 180.04 null ] >>
endobj
6630 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 169.081 null ] >>
endobj
6631 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 158.122 null ] >>
endobj
6632 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 147.163 null ] >>
endobj
6633 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 136.204 null ] >>
endobj
6634 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 125.245 null ] >>
endobj
6635 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 6581 0 R /XYZ 81.077 114.286 null ] >>
endobj
6636 0 obj
-<< /D [ 6576 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-6575 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F73 189 0 R /F69 183 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6581 0 R /XYZ 81.077 103.327 null ] >>
endobj
-6639 0 obj
-<< /Filter /FlateDecode /Length 2011 >>
-stream
-xZ[o~ Ѡ1wx>EaM!h5V#i%9"DQ<tx$υ<7o_ _M60 0 o&HxK$柑Hnw7Rmd&Ddh 6;6Kt8m&1*hK Q*b@rDzK'*5<Y7<%QUegEYډ4uYz7O
-_ܛ;"YfڧR]8z r
-a"ȿ"LbDAu1lh;^HΐP(p&~}7a+i+ʷ%1*ѬYsx8Ril Ob*Ip&BϧĐ/TD5tcZ܃@97/CAgc(q]6,N 2aKmgݗ?7>qȶq'A¸$"%D(Lj#ׄP֪|o^Hɼ,LB4?>4CQ![S8˜!*\z"D>d P "d>z;
-!}'At*# ꈪ]tEl}#Q5a* %1ʂ1 `nY ,gt`^d/x|Wq [w/§Eћf1Uצ'F1c}4/;{K%<(ou6؇Ƹ ,>fI~\JeN+eݸh_Ns{1#G814LLui+!=<Z7ZT삮iW<*4VD(?*7ejڑjPۙe)mw9^igR|X*rx^h$YbշFh؅橷ccBo썙c78r1j|<G8}y]ٖ fT] a.X8@@uhu]Z7CRS35J빏0n}/ٺ%1s[/&alܼ%"oyK8i|i3oapnƔ@;0XO&LAZs"oA9k{@l2<`ʉ)G\At|xQ#5k 9?].-j
-endstream
+6637 0 obj
+<< /D [ 6581 0 R /XYZ 81.077 92.368 null ] >>
endobj
6638 0 obj
-<< /Type /Page /Contents 6639 0 R /Resources 6637 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6581 0 R /XYZ 81.077 81.41 null ] >>
endobj
-6640 0 obj
-<< /D [ 6638 0 R /XYZ 78.37 808.885 null ] >>
+6580 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F78 556 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6641 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 768.832 null ] >>
+<< /Filter /FlateDecode /Length 1950 >>
+stream
+xZKoW4k"H`$@@t%R[3俧%ݏxXm7E O/>b!5LItFE-wG_Zn]bf
+fqL8aB6$HZqՎnf4qh$uVn%9aϊFY]ƳCKu֬ʣ|O&E<n"M?+I%ӗIc h<mn3ӎ/ քanV٪+k7N)%i&M*)BNՐgT- q-ŖrMoiB"*\Gϻ%75Ȫ{S>tO7lQխSwIuy3k q Gː%'`TkmOI ɎxfLʥ .F ( Эè[_9 `k`FR^yong2ԛjT^ /r]nPkM$^*j*9*hC?Ol}Uu3_l+-h)D8Qh&u8^|LӪJT%8O6 JX/!. Ü uΉF8Mg0F4Y8}|ul]V}X(%ZRƨ2@jkcAo2'ҠDgDhu|hxcCb94rOV<p
+5"Di+M G]1Jh<mۨ XD9@_*`r9Oc]+i2˧Ƿv[w?_ dq0}~6*7WA6eO{py>_?/rdۋfqeꥎc2}VUgDVQE~Յ2bY"{IUـ6$؀O[UyZ$K'EY\|K+ (e PAYՅaSey%uK[W
+endstream
+endobj
+6640 0 obj
+<< /Type /Page /Contents 6641 0 R /Resources 6639 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6334 0 R >>
endobj
6642 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6640 0 R /XYZ 78.37 808.885 null ] >>
endobj
6643 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 768.832 null ] >>
endobj
6644 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 706.067 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 757.873 null ] >>
endobj
6645 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 695.108 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 746.914 null ] >>
endobj
6646 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 684.149 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 735.955 null ] >>
endobj
6647 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 673.19 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 724.996 null ] >>
endobj
6648 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 644.299 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 696.104 null ] >>
endobj
6649 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 633.34 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 685.146 null ] >>
endobj
6650 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 622.381 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 674.187 null ] >>
endobj
6651 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 611.422 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 663.228 null ] >>
endobj
6652 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 600.463 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 652.269 null ] >>
endobj
6653 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 589.504 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 641.31 null ] >>
endobj
6654 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 578.545 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 630.351 null ] >>
endobj
6655 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 567.586 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 619.392 null ] >>
endobj
6656 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 608.433 null ] >>
endobj
6657 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 597.474 null ] >>
endobj
6658 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 586.515 null ] >>
endobj
6659 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 575.556 null ] >>
endobj
6660 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 564.598 null ] >>
endobj
6661 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 553.639 null ] >>
endobj
6662 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 512.792 null ] >>
endobj
6663 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 501.833 null ] >>
endobj
6664 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 490.874 null ] >>
endobj
6665 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 479.915 null ] >>
endobj
6666 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 451.023 null ] >>
endobj
6667 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 440.065 null ] >>
endobj
6668 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 429.106 null ] >>
endobj
6669 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 418.147 null ] >>
endobj
6670 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 407.188 null ] >>
endobj
6671 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 396.229 null ] >>
endobj
6672 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 385.27 null ] >>
endobj
6673 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 374.311 null ] >>
endobj
6674 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 345.42 null ] >>
endobj
6675 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 288.632 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 334.461 null ] >>
endobj
6676 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 323.502 null ] >>
endobj
6677 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 312.543 null ] >>
endobj
6678 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 301.584 null ] >>
endobj
6679 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 290.625 null ] >>
endobj
6680 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 279.666 null ] >>
endobj
6681 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 268.707 null ] >>
endobj
6682 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 257.748 null ] >>
endobj
6683 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 246.789 null ] >>
endobj
6684 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 235.83 null ] >>
endobj
6685 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 224.872 null ] >>
endobj
6686 0 obj
-<< /D [ 6638 0 R /XYZ 81.077 96.354 null ] >>
-endobj
-6637 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F23 660 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6640 0 R /XYZ 81.077 213.913 null ] >>
endobj
-6689 0 obj
-<< /Filter /FlateDecode /Length 2388 >>
-stream
-xZ[o~_/"~C1足@@`v(;䑔fԅ-δؗD9<<x(_w?~ faT;7,AL-$K~\~.V\]Umq1)n yo.VT/3Tg,
-~r*ʝkA6&Dݐv[4qz#>F[zM ^8zu.g&V,qШYٔe=ڇ>oܝ˛='px1W}*:.fh,MeSV뢸)2f&έcȭ.o٭#|1`8G #uSYgK8#~踟i(CLG&LzF&~04*b!`w!İ8ѳ Q SܯFbPˈq&ѡ!W)ζh6Ou+3FDT q!=Fwf^ XЏXė9wS
-x%6*ղ(+Xv 7K{H1خxر5G3b9f/`&m>1q5ֺ/j4mC`G5Kt)O5j0)@<?lSۃf-$mb4FO_o Iusژ}Jۅ !˾g[h[7a'%Hٖ`(̓7UY>L[שn|l98t"M`խuḠ}Ne‡tdj_G\-z눅l~.B%F ,CJQ26@#NJOwgrM\!e%0d $Dn]s_Sfw$j(&q;@ؐҐ4ʧnL46jlyZc $ ;qCU >:쓃†@ag2ހ|/AMncfM9 x<q\__ڞ59CuTPL3$N_羚)r!q:@_5]P 3$N_r u+CA>Kϳ}UCU c(n
-B).W gsxfYz#nC{:oΐ`bA>oAЊ<Q >@ϑAga'(DʄAvW&%Qv4_ 
-hAT8 ˬAAyBX6AvCkE@e,齷!=?lG~--;x9ԩ}K%꤭*@~#xYuⅽlԟvS{뵦vOlkwIeWG ^열ibyd\ۣ,F΍SjAQW[%@\dHyWt#+{Qk|o29n eQ~ `~
-endstream
+6687 0 obj
+<< /D [ 6640 0 R /XYZ 81.077 202.954 null ] >>
endobj
6688 0 obj
-<< /Type /Page /Contents 6689 0 R /Resources 6687 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6640 0 R /XYZ 81.077 191.995 null ] >>
+endobj
+6689 0 obj
+<< /D [ 6640 0 R /XYZ 81.077 181.036 null ] >>
endobj
6690 0 obj
-<< /D [ 6688 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 170.077 null ] >>
endobj
6691 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 731.316 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 159.118 null ] >>
endobj
6692 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 720.357 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 148.159 null ] >>
endobj
6693 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 709.398 null ] >>
-endobj
-6694 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 698.439 null ] >>
+<< /D [ 6640 0 R /XYZ 81.077 95.357 null ] >>
endobj
-6695 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 687.48 null ] >>
+6639 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6696 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 676.522 null ] >>
+<< /Filter /FlateDecode /Length 2384 >>
+stream
+xZKsϯPjl tHMe7Mޭbl3CZ{ABmɂ=\$_7ݍvg>=HK*xFfF,% ,r5}iEkN8#m\VBۻM] MEunjUKwOΨ :7&߯]c}r7;tr05gwe2 =eMQ]ӏvm|=_SFK']G 2պu(]wpK:ҽ1)59ޖKᵓž_\Ϧʭj٠Z֦Բml7fE]lN >0,AD\YexaBfa1M]ge梓6
+,y6H+蘂H`O9B):Mù3%SL&!07ienMޚb ӏ<۴)*SVu'ܢ{ߓh"ʹ/ObTA T ?vrms]eژ6#4k*6fWcJAf٪(KeѴ)aۤmϏmL<mG{>.]\HbDyBJ-^{#xP:G^e<m3,avU2՞'~5,]e봨ʢ+/'H?˚Ǔa<DG/cIBcØ(@2by =OvO7 я#nY䃟}S<sx='w-+058zdETT ߎB*(
+YAdHɳO&5L=XeU0OŊ}Bn((
+ |4m1p8=Xw_G?/B6.no~Sq6H`d#B%અ`Akk1+.CsAfC^ߣc,JB=/۬t `pz:U9Rɑ8 1G*a
+DANӡ ><J<Ns
+{Xbz8a &D2#5I.:/o;IѓN)>}AK\nS,f.Lɘ T
+$F;.M{<GN'`|2
+endstream
+endobj
+6695 0 obj
+<< /Type /Page /Contents 6696 0 R /Resources 6694 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6334 0 R >>
endobj
6697 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 665.563 null ] >>
+<< /D [ 6695 0 R /XYZ 78.37 808.885 null ] >>
endobj
6698 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 654.604 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 730.974 null ] >>
endobj
6699 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 643.645 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 720.015 null ] >>
endobj
6700 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 632.686 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 709.056 null ] >>
endobj
6701 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 621.727 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 698.097 null ] >>
endobj
6702 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 610.768 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 687.138 null ] >>
endobj
6703 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 599.809 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 658.246 null ] >>
endobj
6704 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 588.85 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 647.288 null ] >>
endobj
6705 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 577.891 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 636.329 null ] >>
endobj
6706 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 566.933 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 625.37 null ] >>
endobj
6707 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 555.974 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 614.411 null ] >>
endobj
6708 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 545.015 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 603.452 null ] >>
endobj
6709 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 534.056 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 538.695 null ] >>
endobj
6710 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 523.097 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 527.736 null ] >>
endobj
6711 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 512.138 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 516.777 null ] >>
endobj
6712 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 501.179 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 505.818 null ] >>
endobj
6713 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 490.22 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 494.859 null ] >>
endobj
6714 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 479.261 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 483.9 null ] >>
endobj
6715 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 428.514 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 472.941 null ] >>
endobj
6716 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 417.555 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 461.982 null ] >>
endobj
6717 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 406.596 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 451.023 null ] >>
endobj
6718 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 395.637 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 440.065 null ] >>
endobj
6719 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 384.678 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 429.106 null ] >>
endobj
6720 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 344.516 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 418.147 null ] >>
endobj
6721 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 333.557 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 407.188 null ] >>
endobj
6722 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 322.598 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 396.229 null ] >>
endobj
6723 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 311.639 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 385.27 null ] >>
endobj
6724 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 300.68 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 374.311 null ] >>
endobj
6725 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 249.933 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 363.352 null ] >>
endobj
6726 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 238.974 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 352.393 null ] >>
endobj
6727 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 228.015 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 341.434 null ] >>
endobj
6728 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 217.056 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 330.476 null ] >>
endobj
6729 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 206.097 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 319.517 null ] >>
endobj
6730 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 195.138 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 308.558 null ] >>
endobj
6731 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 184.179 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 297.599 null ] >>
endobj
6732 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 173.22 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 286.64 null ] >>
endobj
6733 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 162.261 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 233.838 null ] >>
endobj
6734 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 151.302 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 222.879 null ] >>
endobj
6735 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 140.344 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 211.92 null ] >>
endobj
6736 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 200.961 null ] >>
endobj
6737 0 obj
-<< /D [ 6688 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-6687 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6695 0 R /XYZ 81.077 190.002 null ] >>
endobj
-6740 0 obj
-<< /Filter /FlateDecode /Length 2676 >>
-stream
-xڵZo߿@
-`(7vW 3"AّŤ}HD7|Qa/~{n).d(JbE\^qΣ2[ʶrw(/'LSSQ%Uܟ9$!>Mvn4!B|r!FalG -,ջR4B#6KFQDGʔpyE
- zɒ<+%
-yvLsL?Z0|P7Ńm}s;)#cM (xY&y}0)1TuU5ɏ<N)vխ!Jc174 ARM9NQfm`BYeʤ?t۟Ӎynuؚd2z|{sm'~~ӎ}5} CVwK'f1Ix;֦P\#J4h 0HCjĴ74whA`H*!R: z^Ee'{"Bv
- ]"Uw8 11wU- ܗڬjs}/ _tRo<Z?T)2ga?ϰJ%+ 6h2&Js MaD:uf_LU60uyX՛]QMb2m\0 .S<7+k $ㅂ.WTL"$ u~֫_/Km`0uG&ByɛP;:`Č05Z2!4 8-'-{!LQɞ+Nd8,lZh<37]ؠTm6N%$Yfpc!6E[zWEJ@'1X튕)"|97% &jdvhDey0As,z_Sb\nk(cg"h)gxgLD3S`` фqFt2 J
-.pn/+<!hkL 9P12Ҽj$6ȘtnFã]p7hl6Wvh
-w)еn
-%wAWAiDYn(r}-=LLC:OHs*q7y.cmjAggw*pZ*mVxPJQ#v
-lUOR|SbųW1wxeP:QH}.
-ҮU=N*S/ͷ뛛~IKm^Nq: &0
--Sك<K Sj2&J(cqr-RMI'0 11M_H0௼)dJk#
-aC9Og5!}*Bk"  yifYn͟sİUh3ICJKѭ=:6
-z`7EtdaV6=P$"C94Ů(X+OC4G}+{#V͉蝡`aXQi:+k}4ISz"e!W o+_{VΞG6ERv%C!jll>||]%<D>ߘ{ zn4Yi\@oЛ]? cm؆h_'ȆSAcP@=N8ʅlc&Й6if}:ָuĎP\ajuw^iAc?bZ-P2ȌH-trAaE+.hbVPBڴ!M7ɐ1Dja
-,n#=a9p ϑ*K5IR1ۉ#9kfkC¸vǘIțk TE
- ih~5Cp`O5Ogݷ (V/acѝrXZ b4\%hꚘ%!ɴ\_T at/`\(rO6 ʳU⁒b&Zf5Ĕv* b`E"[{F C<$ĬF m1p)n?N]?JGr V݉!L1MĢ]O.O oM MZ#tvZ3o^i<Grk=8 ̰x\I8Œpo,̾`8cXbG2w_ez1OkLq2}d wJK|/Qrq8Y1߆@
-c}Gl|hW](j5J'UҀm7;',</䝼+ə q$D<_zf [Ӯl'gd|߃<2#*D_IuH<:W~A|tQ7X8DBR14$~Wh]`#U!y5oSLedtB҂ȴ2/ ÿ_Da(_P\wL1Iٿ޾/tQ
-endstream
+6738 0 obj
+<< /D [ 6695 0 R /XYZ 81.077 149.155 null ] >>
endobj
6739 0 obj
-<< /Type /Page /Contents 6740 0 R /Resources 6738 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6332 0 R >>
+<< /D [ 6695 0 R /XYZ 81.077 138.197 null ] >>
+endobj
+6740 0 obj
+<< /D [ 6695 0 R /XYZ 81.077 127.238 null ] >>
endobj
6741 0 obj
-<< /D [ 6739 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 116.279 null ] >>
endobj
6742 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 719.019 null ] >>
+<< /D [ 6695 0 R /XYZ 81.077 105.32 null ] >>
endobj
-6743 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 708.06 null ] >>
-endobj
-6744 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 697.101 null ] >>
+6694 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F70 185 0 R /F73 189 0 R /F69 183 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6745 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 686.142 null ] >>
+<< /Filter /FlateDecode /Length 2715 >>
+stream
+xڭZKoϯh˷H&nhm3jGRw`Ѓr[-9MQ,XA
+~o?3+n| *ՈT%YW%n*iiVK|2ɿ_~/XSP,<\hSU}+}O3IB\#㗪(K&qwp#.J<Ůjr?fBT萕τz
+"p$f!4,'#cIF
+{<+G{@<떝Z!c ʸ VZ%_"UHh$ !b$2|y" G@{YD@ũ'
+`=$.W2xmxDg,`Y@eW3)|n~ Σ-Nx
+I=c"* o ,7ȕIq< O<
+iپ#_
+ib QIE@mx"s3 $a~k"1g]_ߔ[g/_ԠMC띉ɽC.2$UT<-u~_yĦ^ua
++ F`.6OY ̾L/;Sboj kfsC6f}fw^~o8#W&:<nغI)O?>oRD) g@ B-^dv IЀMq`7}=~E)}6b~@g1H(YJPmL:D#ѹ3^cZry[Ch{ӓ kOIܽSg `>"&R^%J.JSP 卆:=m6aSE8S}&3FpCAkoY ǐxɇh?~F-
+endstream
+endobj
+6744 0 obj
+<< /Type /Page /Contents 6745 0 R /Resources 6743 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6334 0 R >>
endobj
6746 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 675.183 null ] >>
+<< /D [ 6744 0 R /XYZ 78.37 808.885 null ] >>
endobj
6747 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 664.224 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 742.929 null ] >>
endobj
6748 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 633.34 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 731.97 null ] >>
endobj
6749 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 622.381 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 721.011 null ] >>
endobj
6750 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 519.766 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 710.052 null ] >>
endobj
6751 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 508.807 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 699.093 null ] >>
endobj
6752 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 497.848 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 688.134 null ] >>
endobj
6753 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 486.889 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 677.175 null ] >>
endobj
6754 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 666.217 null ] >>
endobj
6755 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 655.258 null ] >>
endobj
6756 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 644.299 null ] >>
endobj
6757 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 633.34 null ] >>
endobj
6758 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 580.538 null ] >>
endobj
6759 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 569.579 null ] >>
endobj
6760 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 504.822 null ] >>
endobj
6761 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 493.863 null ] >>
endobj
6762 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 266.715 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 482.904 null ] >>
endobj
6763 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 471.945 null ] >>
endobj
6764 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 244.797 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 460.986 null ] >>
endobj
6765 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 450.027 null ] >>
endobj
6766 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 419.143 null ] >>
endobj
6767 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 408.184 null ] >>
endobj
6768 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 305.569 null ] >>
endobj
6769 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 158.122 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 294.61 null ] >>
endobj
6770 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 147.163 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 283.651 null ] >>
endobj
6771 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 136.204 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 272.692 null ] >>
endobj
6772 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 125.245 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 231.845 null ] >>
endobj
6773 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 114.286 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 220.887 null ] >>
endobj
6774 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 103.327 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 209.928 null ] >>
endobj
6775 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 92.368 null ] >>
+<< /D [ 6744 0 R /XYZ 81.077 198.969 null ] >>
endobj
6776 0 obj
-<< /D [ 6739 0 R /XYZ 81.077 81.41 null ] >>
-endobj
-6738 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6744 0 R /XYZ 81.077 188.01 null ] >>
endobj
-6779 0 obj
-<< /Filter /FlateDecode /Length 2145 >>
-stream
-xڭZM8Wa6oI> d7Y zb vkF:'oHѢvВ(=XXE.6 u7/^c"'Z.n_0xAlDT3B5[nsu-JۺnxfM2)hk{wwuͳvqSBu]]t<KC}ۙ>r7Tmc=~O0g&,s¨ܬ^^=vfUk\ 8$34H~<IYYx,1w)ϓT'vlWx9}ՐQ+9ȧ/1H S. vSL]ZBUaLƾ* D_`T,$3&|L̀8SaGU5|g-3e9~՘=8Q;r0#S\oaF_~ՖѴ'\JO]F1"
-_džLecsJRh
-L-WUSWY v#¬+.+( _ 9ZUղ˗/KroyXgDSUQ$QuLK.i_rw*&8QMi] ל&s9M7ԫnXua>Ɵuc2J4?Rs oއ 8!V.1!U4A{Uaug<S5|t},nk17)PF(̓O܇re"de ]5 m1&8ȑ]Ry;(C-O2ĥ.S,1'ڞ%ùB:|+`gGuJUR vܭ)ix(#V
->E3\_̫ue uu?2` 1rڭMG(8d"}"$}7`U
-Pa %@7A 8 ;ہ4yJ[Ƶ;"ue;V*ຳdﱊZOÉ9#tHЏ&,]n]z[d|6-ڡe
-!OET2kfX!*Ms{o>|WC;5T*C &ͧ2*= З#sWl ;<Ofn*ԭ6yՃ ë
-(~byK*Rgi9vD۷IJt
-endstream
+6777 0 obj
+<< /D [ 6744 0 R /XYZ 81.077 177.051 null ] >>
endobj
6778 0 obj
-<< /Type /Page /Contents 6779 0 R /Resources 6777 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 6744 0 R /XYZ 81.077 166.092 null ] >>
endobj
-6780 0 obj
-<< /D [ 6778 0 R /XYZ 78.37 808.885 null ] >>
+6779 0 obj
+<< /D [ 6744 0 R /XYZ 81.077 155.133 null ] >>
endobj
-6781 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 730.974 null ] >>
+6743 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6782 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 720.015 null ] >>
+<< /Filter /FlateDecode /Length 2337 >>
+stream
+xڵZoܸb|8i ish?@aP䂅m]Ҟ5wDnҹ^3/~~۫W?xT+/,
+X($AXfa}'PfT9cl9QW`
+7Rv=<LeYQH3ؖU \^lC6e+4v=>/*J0޵{u[1y9v Fj-8Ҋ0PI"4pZ2 ^(X_2 IJlwWٯ];`n..ٹ½}flq5׻VE|x4˳8"N[mĨHצ Q̦ikS
+SjVv-;s\6WNjʾfTnGM)x/JWLBf=;jve`̿>fj^n̦5<; MWr߭7a'P?tދV{kkiw=ݶ:<*o9R J#$BzuIl*i׬]o(KK,,צT}37YѾk-/
+!Ra[:ÐxJ8.nV]uw?\\Fq$ 4|Q1 .bK:;HrZ[F^%VC, o;Ƭ xY u@\4y!kR|]1U>mm,-FqiH?d>oWM;\4;X~p$'P,I#=嶉|*StX̐~X~boj}BS$m
+#jBm#g$B
+
+8$|Pw9O*H m gy}6띇B6x 6 Xqt,=;9RZAtMi AZ/{4L>.,lʉ~Fܴ0[ /5+QiO2'ݟL%(^"Fڀ7̅ۡ0kʩ_Wg _E؊#$CBwxSS86MG)
+CX:>Cو6b:'#&(/o:n<϶n8A\&
+||$ ya 54Ίw PܩL~[P~2%cBt`l[fp7@yqxƘ+1WmӘ9m0/X?'mkP@qg,pշ#ޛ ad7ah6y|V|$ $Oo
+ e?q[p̟(@ U
+endstream
+endobj
+6781 0 obj
+<< /Type /Page /Contents 6782 0 R /Resources 6780 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6821 0 R >>
endobj
6783 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 6781 0 R /XYZ 78.37 808.885 null ] >>
endobj
6784 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 752.891 null ] >>
endobj
6785 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 741.933 null ] >>
endobj
6786 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 730.974 null ] >>
endobj
6787 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 651.273 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 688.134 null ] >>
endobj
6788 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 640.314 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 677.175 null ] >>
endobj
6789 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 629.355 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 666.217 null ] >>
endobj
6790 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 618.396 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 655.258 null ] >>
endobj
6791 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 607.437 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 644.299 null ] >>
endobj
6792 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 633.34 null ] >>
endobj
6793 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 622.381 null ] >>
endobj
6794 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 611.422 null ] >>
endobj
6795 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 600.463 null ] >>
endobj
6796 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 589.504 null ] >>
endobj
6797 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 578.545 null ] >>
endobj
6798 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 567.586 null ] >>
endobj
6799 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 502.829 null ] >>
endobj
6800 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 491.87 null ] >>
endobj
6801 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 480.911 null ] >>
endobj
6802 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 469.953 null ] >>
endobj
6803 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 312.543 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 458.994 null ] >>
endobj
6804 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 301.584 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 448.035 null ] >>
endobj
6805 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 290.625 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 423.128 null ] >>
endobj
6806 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 279.666 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 412.169 null ] >>
endobj
6807 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 268.707 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 401.21 null ] >>
endobj
6808 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 257.748 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 390.251 null ] >>
endobj
6809 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 246.789 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 379.292 null ] >>
endobj
6810 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 235.83 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 310.55 null ] >>
endobj
6811 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 224.872 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 299.591 null ] >>
endobj
6812 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 213.913 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 256.752 null ] >>
endobj
6813 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 202.954 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 245.793 null ] >>
endobj
6814 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 181.036 null ] >>
endobj
6815 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 170.077 null ] >>
endobj
6816 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 159.118 null ] >>
endobj
6817 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 148.159 null ] >>
endobj
6818 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 137.2 null ] >>
endobj
6819 0 obj
-<< /D [ 6778 0 R /XYZ 81.077 137.2 null ] >>
+<< /D [ 6781 0 R /XYZ 81.077 126.241 null ] >>
endobj
-93 0 obj
-<< /D [ 6778 0 R /XYZ 79.37 111.746 null ] >>
+6820 0 obj
+<< /D [ 6781 0 R /XYZ 81.077 115.283 null ] >>
endobj
-6777 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+6780 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 186 0 R /F19 184 0 R /F75 317 0 R /F73 189 0 R /F69 183 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-6823 0 obj
-<< /Filter /FlateDecode /Length 2821 >>
-stream
-xڽ]o6}{ l\-hX`(֖RI-odQQl3W܋Eg3C&Y2]2~'fT.$]߽G23eW3j"]og3?zn&Ha¹₫ttm68"Yv=Tu*<ݟn7͇O:b$b0 !gy9+ʫbu_WF#
-,4L}`|5P ac5a?ibS !:I(ta|q 5Xu0n[$MEycu ޭ>?G#dJh*%"&
-%
-`2䬮AGQE8q~W|x
-$(;cJzݲMeǐ*/C$9'G Z@ ж
-bi[yݍg4$nBU捗<?\Vkrpi٩+EZ؄t%Ig`\].\pup{*X[얣 MSCeB#aԯT]Wưݢ8hP @t<aD(H$vu*ېŅTأO~L8N:"u\=ɧ%oDY]T{VBN۹[OE][',q-G@ZWEh;Q|(r[gm6Nɬ$׎꡻CHok#&#/pNmssNu:38*44\ItCX'\ iDx)t]N,G6'.to<΢-6 ɺ T6
-.*ECNR"eN ZGwx??TX${*9X<:td6pppBwS1ᔼ*(}F =<ڥ"`=sX#zd`usx$L/
-Hº|#a(őTN[BC8nwkt90
-3x3x(tۖc#cB=++G/,ACfzL6)HAf" x/]3^elAgz8ϳh0B:6ODl`? t b?sy&}e˜Jz1冟W
- "\& <шyP
-GH:0%='~7sqMJqBK7κ]K kGՌQ" QiC
-pCtSc<& ߘtg[r/\|
-о0ʨs7 M }MUT
-@GGa, :QW
-DpJF81#e
->LҎ?7wROl3G%h;_1"o)'\6.u\K.,
-CAdDWW-@|@oAd[7ob=;ZRGL5?!/KJ|u@=ww[ˊ]댼 ߛtx !B1ł
+6824 0 obj
+<< /Filter /FlateDecode /Length 2294 >>
+stream
+xڽZo_a _"
+O"Cx;1M8X{-/䝒>hUlnZg?}Zz˲7~v*•r'qrߔGbHUAZEIP;||j._u: 7s`[H"d՗+a҈:3DXX'L@|ճ}h]v+&ar
+bo)~8e*M`Ð: #R{f4tb喰y|g,N1iǁ?Rs#=q'=2fHzg".&Jxf2 y')<\D_F.}z;D$D3uQQU@!\N
+:q%_ &!F:Z~ΊgvAQ"wSca$:? QWӀڼ7vzǼn(n[HοP!Oр帅\`9B/ӍOZG_ 1ݭ5T 
+
+ݟRB0lܟP,#!BPN< iuJ5XAc?HA$-k;}&'=U}]?Yw] 
+8e
+8g@ _m`LJc޸(\> !EP2ʒ!<628$*ܷ1Eݤ}M-:iUӍ?JxQMRTݲxX7M5C=
+w[L]Xv5U^Ra;:uEd@[S=hJ>+|(9gǾ%xSO #y#z5$|mtCp$zSҵ^|eT:nT}pJn\2ܭRԿfЎW8;CВIϬLfك0nA}3[|Rކׄ0'ac\ycvm jZ;f4>g%@b@t\o_9D2'D~#XL!2I< /~*fW\(R}8,s}̘8:E Cg>BEe[c#SMVlЪ$.Ef2t?]I
endstream
endobj
-6822 0 obj
-<< /Type /Page /Contents 6823 0 R /Resources 6821 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
-endobj
-6824 0 obj
-<< /D [ 6822 0 R /XYZ 78.37 808.885 null ] >>
+6823 0 obj
+<< /Type /Page /Contents 6824 0 R /Resources 6822 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6821 0 R >>
endobj
6825 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 617.038 null ] >>
+<< /D [ 6823 0 R /XYZ 78.37 808.885 null ] >>
endobj
6826 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 568.23 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 768.832 null ] >>
endobj
6827 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 557.271 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 757.873 null ] >>
endobj
6828 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 546.313 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 746.914 null ] >>
endobj
6829 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 535.354 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 735.955 null ] >>
endobj
6830 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 524.395 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 724.996 null ] >>
endobj
6831 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 513.436 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 714.037 null ] >>
endobj
6832 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 502.477 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 703.078 null ] >>
endobj
6833 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 491.518 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 692.119 null ] >>
endobj
6834 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 480.559 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 681.16 null ] >>
endobj
6835 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 469.6 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 670.202 null ] >>
endobj
6836 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 458.641 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 659.243 null ] >>
endobj
6837 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 447.682 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 648.284 null ] >>
endobj
6838 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 436.724 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 637.325 null ] >>
endobj
6839 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 366.992 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 626.366 null ] >>
endobj
6840 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 356.033 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 615.407 null ] >>
endobj
6841 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 345.075 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 604.448 null ] >>
endobj
6842 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 334.116 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 593.489 null ] >>
+endobj
+93 0 obj
+<< /D [ 6823 0 R /XYZ 79.37 568.601 null ] >>
endobj
6843 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 323.157 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 382.645 null ] >>
endobj
6844 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 312.198 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 334.3 null ] >>
endobj
6845 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 301.239 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 323.341 null ] >>
endobj
6846 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 290.28 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 312.382 null ] >>
endobj
6847 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 279.321 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 301.423 null ] >>
endobj
6848 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 268.362 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 290.464 null ] >>
endobj
6849 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 257.403 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 279.505 null ] >>
endobj
6850 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 268.546 null ] >>
endobj
6851 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 257.587 null ] >>
endobj
6852 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 246.628 null ] >>
endobj
6853 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 235.669 null ] >>
endobj
6854 0 obj
-<< /D [ 6822 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-6821 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F80 749 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F76 318 0 R /F73 189 0 R /F69 183 0 R /F46 176 0 R /F23 660 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6823 0 R /XYZ 81.077 224.711 null ] >>
endobj
-6857 0 obj
-<< /Filter /FlateDecode /Length 2810 >>
-stream
-xڵZmoܸ_}5+^ &m)E&mZiOzqDy]:w0$ 9y?^ݯ'xfջ͸GJ̢ H8 -7/^ YA0ؖٹb:[jp
-x ޒV}zGY "4C0tgڡoo99UWE^Iەz>^ +)kKV%>9D]k%u]W 3x|iTEӑXN}ߣQlˠꈃfp(y&FUu=ƫ5,ז~ZgIQ̟KD5jI :Rx4Uz7)e S\%tpuK
-n' L<m>LAHoULϑ<G5MDLW*|R<4Y<I8yިuU78E  jI kV(oIos91$)
-t/CʩG8uC:GH>FHzgfF#"P4QQLA*<QVH]I`~4cYWu}Lֺ ưI(Π:텝K>C9)wQp_0V(A)ִ52.p/Jv+y۩B#&MP#'=ÏrCbV=NFl=1[ Y_6$3E8Vk;az-Ej)LO%} %w EΈ;  a?m(H<ҭiv 06#ZPX Ge>3kUR
-e-}%j$ぁפ?S
-p@e׸@}~4S Z~ez=D̤A<ɕ'ƧH::`<`)yMksA5hw$ƬfblpY-iT}c';m [:g]ˋN/6\Ar̰l.@6>F+9
-q*{)<ppb]&|YnҞfnpM=f]7L} iw,>NS0MnY
-UiouMV<,aCxeY/yy] A#>=,3
-` r |ݾ{16 Gk'琁Ti[rnI˩" |&?nG4Lһ&JzZ=h8L>3DђE޴]mDxD$1]1  -GfuO nkt{ðL!5q\ Kz`Tp7j||3$G_A/s(T?ji !܈%=d3jAe5CQ(KzWޕվ<JI/w×4"JM4F%%DLy1_ ,4A^yg+p`Q
-FO]>zgJy(q߲t'w7iGxڬ.FY <焉5pz8K7C
-gloi?Α}^-lv?>l"v9%mhVe_mR嶴<q$swN+Ӓ~<a%08+ M](ᙦfmWڶyU GK\b]]e7yp"Gen$CaS}^?W{gAv]9E2,-3C7F(/-NI?Õ6IC24)3yUUҤѥ=F_w,q|ZWl}{YkB޳ݦԽ7"ȸ, r$YtAM$5`Vʰ*7} -ffe&%*f/իDXu|=}"B1TM4F0DKJ^NBrXHS!ECVKwK H%-n ۤ~Y.G&al-]?L^K93"^_@ 8Pw)IG
-I~e'-ҡ
-endstream
+6855 0 obj
+<< /D [ 6823 0 R /XYZ 81.077 213.752 null ] >>
endobj
6856 0 obj
-<< /Type /Page /Contents 6857 0 R /Resources 6855 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 6823 0 R /XYZ 81.077 202.793 null ] >>
+endobj
+6857 0 obj
+<< /D [ 6823 0 R /XYZ 81.077 133.431 null ] >>
endobj
6858 0 obj
-<< /D [ 6856 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 122.473 null ] >>
endobj
6859 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 111.514 null ] >>
endobj
6860 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 100.555 null ] >>
endobj
6861 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 89.596 null ] >>
endobj
6862 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 735.955 null ] >>
-endobj
-6863 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 6823 0 R /XYZ 81.077 78.637 null ] >>
endobj
-6864 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 714.037 null ] >>
+6822 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F80 749 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6865 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 703.078 null ] >>
+<< /Filter /FlateDecode /Length 2962 >>
+stream
+xڵZmo8_a>4**z]="]ĺRVM~3$%#[83j>'؂/ޞx>3AM9_0(љVDx+J"EgOssz&R\TjR\eXVOɩd|Y߻_Z
+NS@'h vdE%ptfV˴v|יRH3p ܘݣDFhpB#шv2ّYF47M F´/acU'v"kb.HY 8٤%*4G؂ۼʍmuPznl
+i*^E Dddloj;Q^ͼp-cv|J#M"nzSIf!5ۻjf?11藖!te- 3&,ۻ%9xwMrr*X4[kdv7MA}}Mm{6Bh^<E޴5(ܿ1hI,׷'R{fL6Nqu\+"
+/`kۭ=I٪@a 4.NlKM6m=Xʞ/\/T&ee[^މqFrz^nk@]w3꺅:<u0Qj!(%F$4E
+M򲭶Mqo.j3Vs i 1[=^SIvȪ񂓈"4Yh_sDA
+C@EeD\7{BIYk9 u2XijĮ"Dojy=J>E1L<L>v$ܠJӨ@=߭v* "NAPgxL+\6֮͊ʰq9eUU"Ӱ펔?zm]Gi&5قݭs#׵{ͻ1w
+6;ܧeZ4OM9zO֧*ԧMHA?T#Yˡ~<:99TM9{0}b,8urXXicΕuCWVKS9laZ;
+wyf7ŝE>
+_``|"nxzu!ro|bAwvcB[$ێX6[Uf-Pz'Kߜᓓq&iخ8^xᚇd+D8;{7QI,ZKk`1Gj$ƏMb% *eHC*zd^^&rqc ;2T&܅
+endstream
+endobj
+6864 0 obj
+<< /Type /Page /Contents 6865 0 R /Resources 6863 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6821 0 R >>
endobj
6866 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 615.779 null ] >>
+<< /D [ 6864 0 R /XYZ 78.37 808.885 null ] >>
endobj
6867 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 604.82 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 768.832 null ] >>
endobj
6868 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 593.861 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 757.873 null ] >>
endobj
6869 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 582.902 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 746.914 null ] >>
endobj
6870 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 571.943 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 735.955 null ] >>
endobj
6871 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 560.984 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 724.996 null ] >>
endobj
6872 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 550.025 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 590.051 null ] >>
endobj
6873 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 473.328 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 579.092 null ] >>
endobj
6874 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 462.369 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 568.133 null ] >>
endobj
6875 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 451.41 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 557.174 null ] >>
endobj
6876 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 440.451 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 546.215 null ] >>
endobj
6877 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 429.492 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 535.257 null ] >>
endobj
6878 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 418.534 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 524.298 null ] >>
endobj
6879 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 379.025 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 513.339 null ] >>
endobj
6880 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 368.066 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 502.38 null ] >>
endobj
6881 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 357.107 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 491.421 null ] >>
endobj
6882 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 346.148 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 480.462 null ] >>
endobj
6883 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 335.189 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 469.503 null ] >>
endobj
6884 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 324.23 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 376.851 null ] >>
endobj
6885 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 313.272 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 365.892 null ] >>
endobj
6886 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 302.313 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 354.933 null ] >>
endobj
6887 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 291.354 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 343.974 null ] >>
endobj
6888 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 280.395 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 333.015 null ] >>
endobj
6889 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 211.452 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 322.056 null ] >>
endobj
6890 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 200.493 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 311.097 null ] >>
endobj
6891 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 172.94 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 232.392 null ] >>
endobj
6892 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 161.981 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 221.433 null ] >>
endobj
6893 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 151.022 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 210.474 null ] >>
endobj
6894 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 199.516 null ] >>
endobj
6895 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 188.557 null ] >>
endobj
6896 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 177.598 null ] >>
endobj
6897 0 obj
-<< /D [ 6856 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-6855 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F80 749 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 6864 0 R /XYZ 81.077 136.751 null ] >>
endobj
-6900 0 obj
-<< /Filter /FlateDecode /Length 2113 >>
-stream
-xZ[o~ϯ0pj.-9hd<t Aq]YJl)EkǙ!gg3<
-wHoW?>(6hl}E`H5S ,lc.ԋx#L##%C0?7Ⱦ%M-Wbq-pO?}Jm%e#e95FS&!Q_ 3* b 1D ˓zO:oļ&L eLy/l^,?To=}3*o͏;0)ʷTfX!YoU*P̟v36tcV4,­A5/d5:G@ c(e,Ńg󺴟s?< U[Cͷm}h^5(NQ79wX `3u`)fBսΓCV/WeɽoɶC\ '򰭷eb͒F"7D;MuOjٲ(VHCVuϊ;7kqML`@_cVCqĴz8=藓Dqڑ . ]xy, ײlmY,)z(d١QcW5?N.lAU v%v{,Qr Zd3INfƶ~%WfT^TS[?oi"4c*ʻ,70Rx7 ~:1h=r((UVറy[O^#y-ֹ+ko-E^CJ[+.6*!Ù
-&63 [B,=?o͏f1>}h!CKlQ鉙KhČ]?*zti>,-lZmlo5e7fveі0k'h m]wuؖ)XHWe1fjN\zA? % w5ǥ6'#{3󘅗596h:cl|]>qhID* 54)809D$3+Ztl ˨8Ct4pjDH$@w)$lY{~%WCĄ!:~1w6e[zwwgQ\7б!|^3$ʦ
-]݌ ^}ј=8z_QqY1Ap15C@@HwܾfċZs(e.IX]ш(uH! /^<膋h(J8賵#eGDTpoonlsoG޺wk,s9Qe E'sBdѡJ8CLyb&4*TCA@<Q5C UJF SjA<^NqhG2PqOd"K 37s8cFtլHhOdbPZ
-endstream
+6898 0 obj
+<< /D [ 6864 0 R /XYZ 81.077 125.792 null ] >>
endobj
6899 0 obj
-<< /Type /Page /Contents 6900 0 R /Resources 6898 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 6864 0 R /XYZ 81.077 114.833 null ] >>
+endobj
+6900 0 obj
+<< /D [ 6864 0 R /XYZ 81.077 103.874 null ] >>
endobj
6901 0 obj
-<< /D [ 6899 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 92.915 null ] >>
endobj
6902 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6864 0 R /XYZ 81.077 81.956 null ] >>
endobj
-6903 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 757.873 null ] >>
-endobj
-6904 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 715.033 null ] >>
+6863 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F46 176 0 R /F23 660 0 R /F80 749 0 R /F70 185 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6905 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 704.075 null ] >>
+<< /Filter /FlateDecode /Length 2473 >>
+stream
+xZs۸~_>~4Nt8D٬)R(;w@;޴LH\`wEvg?R}pnj8R0:^L
+$H6AXzDnwI`&Po|eJ=̻弱ە}L#S)K˾(<:5mx;bK}GvYNLD>/Wy3_˧Ӯ.h[QT""3Jf!4s(Lb0Ji d9#Iբtڪa<= I2ںniGYhYU]ۻK*AR.v}9|T5Q~
+Rirk~SV<Z9gK/U>ߖ}^~_]탢57.W?J JӘDiHk% l&5͛*H;M(EU_wbOW_Ͷd}}BT@^TҌLfY~~ٛ~[('ow$ٖвפ4ѤiwN"m[7ۍ-f\g[3te֖' i}WPumM>mZ5۾hq>*%lq>Q뗅{8S@ nv0iS? 5R <%XFq&MSgI㶊/=nn tj'!i&c5mm^)\9lybU
+M·ELgro$.Y{rVm%֢+tIXvŽTO [wUjIO)NihZXűJoBxJQ&U2
+i|_k5j14Y|o~u4DJq <v/7CU
+#F>d/52+QHJ qzҧk*<5Lm]a1BñLNi[bD
+@dQ9kjko۵AYyNt-_5cD`G CJLͼ (~Q#S*2Kօiy7ukX3MC Ƶ]1 &t81h^u?,CFb-MP4; īiA jYHSc)qh(0BFOxLML3 fiPG3/'"lC4 ᧋P AN^v^eDw&jL 8y *K!TF Pa2y-`
+3l+`_`c{ږ9ؗp/BJ5{'<Htp8aME6} }W\o Д6_sL0~?Dw.i N qor_λ &qK?GS#jOL]DLPz`]vEⲨZxBHG>̐ .R3q˺Wɺ\ݓb ԑ'Nl]3b?U?):̳B\N}՜PC]g>2fhۃc%סD"185|
+#h' hE.|"9 ғ&i4Gс;`]zWHK ?ɤ;ۗFX Q(HpZɟ?oi Et9
+endstream
+endobj
+6904 0 obj
+<< /Type /Page /Contents 6905 0 R /Resources 6903 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6821 0 R >>
endobj
6906 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 693.116 null ] >>
+<< /D [ 6904 0 R /XYZ 78.37 808.885 null ] >>
endobj
6907 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 682.157 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 768.832 null ] >>
endobj
6908 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 757.873 null ] >>
endobj
6909 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 606.441 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 746.914 null ] >>
endobj
6910 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 595.482 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 735.955 null ] >>
endobj
6911 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 584.523 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 665.767 null ] >>
endobj
6912 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 573.564 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 654.808 null ] >>
endobj
6913 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 562.605 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 625.917 null ] >>
endobj
6914 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 551.646 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 614.958 null ] >>
endobj
6915 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 540.687 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 603.999 null ] >>
endobj
6916 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 529.728 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 563.152 null ] >>
endobj
6917 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 518.769 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 552.193 null ] >>
endobj
6918 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 507.811 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 541.234 null ] >>
endobj
6919 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 466.964 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 530.275 null ] >>
endobj
6920 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 456.005 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 514.335 null ] >>
endobj
6921 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 445.046 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 503.376 null ] >>
endobj
6922 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 434.087 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 460.537 null ] >>
endobj
6923 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 423.128 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 449.578 null ] >>
endobj
6924 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 412.169 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 438.619 null ] >>
endobj
6925 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 401.21 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 427.66 null ] >>
endobj
6926 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 390.251 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 362.903 null ] >>
endobj
6927 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 379.292 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 351.944 null ] >>
endobj
6928 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 368.334 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 340.985 null ] >>
endobj
6929 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 357.375 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 330.026 null ] >>
endobj
6930 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 346.416 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 319.067 null ] >>
endobj
6931 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 335.457 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 308.108 null ] >>
endobj
6932 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 324.498 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 297.149 null ] >>
endobj
6933 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 286.191 null ] >>
endobj
6934 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 275.232 null ] >>
endobj
6935 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 291.621 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 264.273 null ] >>
endobj
6936 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 253.314 null ] >>
endobj
6937 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 212.467 null ] >>
endobj
6938 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 201.508 null ] >>
endobj
6939 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 190.549 null ] >>
endobj
6940 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 179.59 null ] >>
endobj
6941 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 168.631 null ] >>
endobj
6942 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 157.672 null ] >>
endobj
6943 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 146.714 null ] >>
endobj
6944 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 135.755 null ] >>
endobj
6945 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 124.796 null ] >>
endobj
6946 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 113.837 null ] >>
endobj
6947 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 102.878 null ] >>
endobj
6948 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 91.919 null ] >>
endobj
6949 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 118.271 null ] >>
-endobj
-6950 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 6904 0 R /XYZ 81.077 80.96 null ] >>
endobj
-6951 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 96.354 null ] >>
+6903 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F80 749 0 R /F19 184 0 R /F20 186 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
6952 0 obj
-<< /D [ 6899 0 R /XYZ 81.077 85.395 null ] >>
-endobj
-6898 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F20 186 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-6955 0 obj
-<< /Filter /FlateDecode /Length 1754 >>
+<< /Filter /FlateDecode /Length 1615 >>
stream
-xڵZMo6Wd0&Cl(P
-n!(2%$&l~8ެǻDG!gP vwW$Oogg׷M8J4at2_#<!-$j$AX|5\\3ݍu}+FL` J˴8T@[\Fx{.ezsuSMsSmjI)#_.[nj]9޺OKͧV}>w}T# ջ.jw2+[3'NeLT88Ɗ"Ac0|j,M͏Z0$sD [77H5{7<nn"Eh܂ *VH /o|NMݙ3l]y紂,*̓۟/5d1B *N1e4/Mքq;iW<~IMizr$ą-0!h{=_PΊuM4~/ZUwI!O0 +$F`h'r:\ԝQ:Ebʉ;RM1"t'q"@hGhpő;u|.[պ{>Y*B2+ؑRMbeM4w$K8 2s NBŽP' &z$B!D%02
-
-;DvmݺdM=2,x]~V+e~P#%d+_zދzsWxkm{ˀӶ`)C7Yb9DEo,DSRWϗ]*59hfU}t̮}Z? #>KEٗ4+_Pj K>|Cc/_b_k[ 5&]O1GS~i7B'T(p-$,E,ۿCOEYe~hf46vEr[޲sOʬzk!S/gcL 4Fhxq/a'zxiԛuzg
-S̬A~JH$ĉ z'bw9yTb*տ)T0[BKe=[iˆcqa请\9Sjzn# :B !,*1z
-?P6_C5 )Q]JJĹuEaBbP ѻ3̬{hLe}if9I /Q<4Nz^҄ٵ{A="]2P76]doZ.$w`*Bvӽa\{ 'dw?϶
+xڽZMoFWh7z?0Rz0zi
+I*w(J]q9rڋI|3of=#Q}{҈$2g׷' 36hffF3B5]fj_׿w_j7i-l f;&dQuYϯ^+"+E^fZfTOWƣ{E <781D>E峢KH((msKf1"JhF4˔bh?6lԝ_t~9ZW tKET>HQM'M(/AE6\i"RWꪺ[o&u?ztkq/j8m[K"!bb\HbAX4~Ε Rrm) 7:E_}Fs(5 p}蠚C —e {&%Q^{RG*F0{'nA/u>Ygp՛.Y6/[?0ax]`lqѶDPc0:P5İ ̂5A8PĨ Ԃ|&A@UZり
+#'jGR"(81LRkҊ*E7Ӫg26fu_F+Z%8F:& #$VqTXQc0~%݂MRURBG(*p ivU┠H?O@ƒPK_bEjC@gc74ᣃJ\IxR. K\ -=%hmhsnS*Loc'5Go\GT#M<HhPRt? ]-J7í%k6%Q[1F|>^ͻyG"Ukw ݾ)D*øo+2DQn`1:gq;J+$`;A8e ҡ(jW-Aq<B(q%phGs&]@WzQ0A5Q%\"EF91&J u8U
+: F*'%s3c]M۝BN 'ݞv˫e,^K)GDf}'U M>qsv9}P@Y
+'XH`Ua_Hqf7!m1( A{2$
+| snfeq.ˡdcݬpI2A󰾻]nx4`CG$F4~W7ZmuUWwM9I YJ3xZʪ4߶fhvVCj.F<~]C{6';MLF_DAnM􈮲yN btlY~x_4] qr8UXU;K@Q"J+ܠbtJ?XrPU}$h|2n'@́">G[&0{CrSBT5v9WXNf2Q¬M?O?XmʮXŢ+(>W#e)}O눶
+{n
endstream
endobj
+6951 0 obj
+<< /Type /Page /Contents 6952 0 R /Resources 6950 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6821 0 R >>
+endobj
+6953 0 obj
+<< /D [ 6951 0 R /XYZ 78.37 808.885 null ] >>
+endobj
6954 0 obj
-<< /Type /Page /Contents 6955 0 R /Resources 6953 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 6951 0 R /XYZ 81.077 768.832 null ] >>
+endobj
+6955 0 obj
+<< /D [ 6951 0 R /XYZ 81.077 757.873 null ] >>
endobj
6956 0 obj
-<< /D [ 6954 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 746.914 null ] >>
endobj
6957 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 735.955 null ] >>
endobj
6958 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 705.071 null ] >>
endobj
6959 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 694.112 null ] >>
endobj
6960 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 683.153 null ] >>
endobj
6961 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 672.194 null ] >>
endobj
6962 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 661.235 null ] >>
endobj
6963 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 650.276 null ] >>
endobj
6964 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 639.317 null ] >>
endobj
6965 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 628.358 null ] >>
endobj
6966 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 617.4 null ] >>
endobj
6967 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 606.441 null ] >>
endobj
6968 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 595.482 null ] >>
endobj
6969 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 584.523 null ] >>
endobj
6970 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 573.564 null ] >>
endobj
6971 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 562.605 null ] >>
endobj
6972 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 551.646 null ] >>
endobj
6973 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 540.687 null ] >>
endobj
6974 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 529.728 null ] >>
endobj
6975 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 518.769 null ] >>
endobj
6976 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 507.811 null ] >>
endobj
6977 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 495.855 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 496.852 null ] >>
endobj
6978 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 485.893 null ] >>
endobj
6979 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 474.934 null ] >>
endobj
6980 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 463.975 null ] >>
endobj
6981 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 453.016 null ] >>
endobj
6982 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 442.057 null ] >>
endobj
6983 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 409.18 null ] >>
endobj
6984 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 398.221 null ] >>
endobj
6985 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 387.263 null ] >>
endobj
6986 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 397.225 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 376.304 null ] >>
endobj
6987 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 386.266 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 365.345 null ] >>
endobj
6988 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 354.386 null ] >>
endobj
6989 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 343.427 null ] >>
endobj
6990 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 332.468 null ] >>
endobj
6991 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 321.509 null ] >>
endobj
6992 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 310.55 null ] >>
endobj
6993 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 299.591 null ] >>
endobj
6994 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 288.632 null ] >>
endobj
6995 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 245.793 null ] >>
endobj
6996 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 287.636 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 234.834 null ] >>
endobj
6997 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 276.677 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 223.875 null ] >>
endobj
6998 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 265.718 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 212.916 null ] >>
endobj
6999 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 254.759 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 201.957 null ] >>
endobj
7000 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 243.801 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 190.999 null ] >>
endobj
7001 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 232.842 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 180.04 null ] >>
endobj
7002 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 221.883 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 169.081 null ] >>
endobj
7003 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 210.924 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 158.122 null ] >>
endobj
7004 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 199.965 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 147.163 null ] >>
endobj
7005 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 189.006 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 136.204 null ] >>
endobj
7006 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 178.047 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 125.245 null ] >>
endobj
7007 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 167.088 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 114.286 null ] >>
endobj
7008 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 156.129 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 103.327 null ] >>
endobj
7009 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 145.17 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 92.368 null ] >>
endobj
7010 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 134.212 null ] >>
+<< /D [ 6951 0 R /XYZ 81.077 81.41 null ] >>
endobj
-7011 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 123.253 null ] >>
-endobj
-7012 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 112.294 null ] >>
+6950 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7013 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 101.335 null ] >>
+<< /Filter /FlateDecode /Length 1727 >>
+stream
+xZMo6W7EC.CN ۲#D ;%:i
+bFy3#V#:rA#Q?rH$ >./ #62h"l4] qw7קڎ Z $6DɄnʬh&j?TЎQqzCKy <X0relV0ʝgn.u\`́ z3apzZ^? K1-YYq|{MŒttit<8%C3,"+w{[R~}q^7IƛIqsI9z7&Y4,
+'&\kg=u-10s_׋_DVA#֢&oI>36i{҆6@ "[3ܭ=0:^D
+'Gk&(Fdtả8>d'9I*yy-s}+(->ڥ<0Cun4e,v`шhTڜ|$4"DYY8FNs͉BΆڤ/̨ZYZ{iЖE"fegd𫠠<|$I<RG`t(-N-CK
+MVIU˪HJqbyqG?U8YX[{(Ɉ1.5X# k-(,w[o!>;YKYxKYz(HKD#ZB.&@PF.@{.ӦGPdM>ڳ)ϊ&ZY>zGZU&I' >NVxK"9NqF.RIwƥ
+aͅ,8V:θ+@tE~pFP&\F 8]+*GN.}4Z"=)(M ]'TF\C2. nkGe˭""uq.@{^hM ÊkT]fQK88:>]ټVx.R͝*D=gfGm ʵ!p Lo+!xYyyɣCVS|<f؍GV?mwe,rLeӤ֗!kSnꧺI<r usg%Lc'&Iʈe!{_ oHH-As{t-41r
+}:/xD4ᶑtGJzVMYgMVeIV g[<E夌ڪ4OHٷt5ۮ k{2?W
+<9_;vfڜY~#pI>Lau]\(8>S,[2+|{_xX 
+-t3a>yޜgVf\jE;@o>`[R}6^#QtBEj8.wt=LCM`9ˢJ,BDLA*d]. US
+u8_S?ܦEn<.޵wL:֜c-v}{T-l<D+|k=to_>Q{A8d 
+~n
+endstream
+endobj
+7012 0 obj
+<< /Type /Page /Contents 7013 0 R /Resources 7011 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6821 0 R >>
endobj
7014 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 90.376 null ] >>
+<< /D [ 7012 0 R /XYZ 78.37 808.885 null ] >>
endobj
7015 0 obj
-<< /D [ 6954 0 R /XYZ 81.077 79.417 null ] >>
-endobj
-6953 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 7012 0 R /XYZ 81.077 768.832 null ] >>
endobj
-7018 0 obj
-<< /Filter /FlateDecode /Length 1919 >>
-stream
-xZKoFWV7&WE#E|k
-(E*ʎwV$\9<2&NV:pF_Hbb&zy`If$ҌP&כSs{m&11Zx fdBG;[.D„LjMzSf:P\M?*/pHf{,tI¤e)N1z$S/ݞD,K/É5F׫ζE>Om6+9ovݢ'^̋* Kq?FCM5Z36D
-~bDF>1*h:L%elH$;5uzm}ZFؠp8i]Sϳ(
-f;uVdii:M5[EgvKG tgП,lUn-J .Ϯ}:IC AS\2 оA T
-FbCo#bQ{! C f g<c4<&:Irqvo&[}8w
-iX6Ht~w~!]¾"ZdWg:;v#tܜs=}$9&<0?iXpҞCtSBGo.Hw
-{qe/'gP9;PTu&_d'!iz4ض1\;UԮS>u
-& i ;+Vah*a݉y7
-Ew1`ch~eA")΍1E  Ў-|d]Qlb 4Q%ҙB}bУnw6Z/_EMZֶ7~႙}偬/OR_3\_kw}
-endstream
+7016 0 obj
+<< /D [ 7012 0 R /XYZ 81.077 757.873 null ] >>
endobj
7017 0 obj
-<< /Type /Page /Contents 7018 0 R /Resources 7016 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 7012 0 R /XYZ 81.077 746.914 null ] >>
+endobj
+7018 0 obj
+<< /D [ 7012 0 R /XYZ 81.077 735.955 null ] >>
endobj
7019 0 obj
-<< /D [ 7017 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 724.996 null ] >>
endobj
7020 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 714.037 null ] >>
endobj
7021 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 703.078 null ] >>
endobj
7022 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 692.119 null ] >>
endobj
7023 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 681.16 null ] >>
endobj
7024 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 670.202 null ] >>
endobj
7025 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 659.243 null ] >>
endobj
7026 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 648.284 null ] >>
endobj
7027 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 637.325 null ] >>
endobj
7028 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 626.366 null ] >>
endobj
7029 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 615.407 null ] >>
endobj
7030 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 604.448 null ] >>
endobj
7031 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 593.489 null ] >>
endobj
7032 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 582.53 null ] >>
endobj
7033 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 571.571 null ] >>
endobj
7034 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 560.613 null ] >>
endobj
7035 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 549.654 null ] >>
endobj
7036 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 563.601 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 538.695 null ] >>
endobj
7037 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 552.642 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 527.736 null ] >>
endobj
7038 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 541.684 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 516.777 null ] >>
endobj
7039 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 530.725 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 505.818 null ] >>
endobj
7040 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 519.766 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 494.859 null ] >>
endobj
7041 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 508.807 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 483.9 null ] >>
endobj
7042 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 497.848 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 472.941 null ] >>
endobj
7043 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 486.889 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 461.982 null ] >>
endobj
7044 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 475.93 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 451.023 null ] >>
endobj
7045 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 464.971 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 440.065 null ] >>
endobj
7046 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 454.012 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 429.106 null ] >>
endobj
7047 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 443.053 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 418.147 null ] >>
endobj
7048 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 432.094 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 407.188 null ] >>
endobj
7049 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 421.136 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 396.229 null ] >>
endobj
7050 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 410.177 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 385.27 null ] >>
endobj
7051 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 399.218 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 374.311 null ] >>
endobj
7052 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 363.352 null ] >>
endobj
7053 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 352.393 null ] >>
endobj
7054 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 311.547 null ] >>
endobj
7055 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 283.651 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 300.588 null ] >>
endobj
7056 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 272.692 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 289.629 null ] >>
endobj
7057 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 261.733 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 278.67 null ] >>
endobj
7058 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 250.774 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 267.711 null ] >>
endobj
7059 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 239.816 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 256.752 null ] >>
endobj
7060 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 228.857 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 245.793 null ] >>
endobj
7061 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 217.898 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 234.834 null ] >>
endobj
7062 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 206.939 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 223.875 null ] >>
endobj
7063 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 195.98 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 212.916 null ] >>
endobj
7064 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 185.021 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 201.957 null ] >>
endobj
7065 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 174.062 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 190.999 null ] >>
endobj
7066 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 163.103 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 180.04 null ] >>
endobj
7067 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 152.144 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 169.081 null ] >>
endobj
7068 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 141.185 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 158.122 null ] >>
endobj
7069 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 130.226 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 147.163 null ] >>
endobj
7070 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 119.268 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 106.316 null ] >>
endobj
7071 0 obj
-<< /D [ 7017 0 R /XYZ 81.077 108.309 null ] >>
+<< /D [ 7012 0 R /XYZ 81.077 95.357 null ] >>
endobj
-7016 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
+7072 0 obj
+<< /D [ 7012 0 R /XYZ 81.077 84.398 null ] >>
endobj
-7074 0 obj
-<< /Filter /FlateDecode /Length 2422 >>
+7011 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+7075 0 obj
+<< /Filter /FlateDecode /Length 2253 >>
stream
-xڽZKoϯ0Ј$,0Ef
-8]sOu=E^,&c¨6Ph0
-|n6w`yv<ߩ F4n[A5=!
-M6 gTZ A:uՖv]*GKzϐC-CMGsh @(QW- I ni0n45{g/"E8>e$f0$ezuW@00
-$/u~ }Ҝ"w mOgk8~Q]`ŌG7YZaPMd*L $媲wհ5܇&{DE?Ǯm8:Ǚi~yz]`}U`O}<DiխpqظUhÖ>\MbǴ#Ǫ[ MhݱLűjIM N[$6ChnZͮ;ggC[mb8+zLwdү<bBbT4 KNIe-8R55
-*/[c@q &rۃ3r2?{V"y!<3wiR:X`-ر'zBIJ!_(l
+xڭZKo80ЇuoJ^
+(\f_%o7e'uVMߜkB!iK/
+EflԺI_pݥ   t0.`םD L atRaRhG bQo"=q{~)[5bRabs6|d3b5jB~!8/j߱ b<,{hA?ԋ҉AC2!獇Ykm3#KQ6 XUigmiC"2,yPMSrcc`2FJ 0.:;b_%yXЭ+϶tʹ&F?1yN۶TPm
+,ոhur<+t8\:1 hS=RԴ-$]% 7m%Y58zM/R_Ya%wyv?ڦCmy))٧u>kg;Ge1nt
+[zlKB57:BOUߪl R<Vt|a ۪Е#a|qRjd,&ADvv0,#BpcZ_N@x6B?%l pqsvEՈ#^+
+-xnC.r=ouwXEHRD!$(
+yh'%+<חխӰؘy$8YoI*'5C-h.:\vvsaDy}Ë* ׍<Xuqx1r !Ƈ.D vR5+ bѐ
+f.:xnCOg-T:x/H .+࡝MQe͸AgSLA=8\kX!+7͏Iܾa¸7/2?@{ANC+OI˶}:ϖ\P$!ȰPP!Hzx" #PWȭH"6/ GovIc1wGT|]y{@dOr2rxoKp\j~g~i2\mb
+bd]K{k(uYmY#7[-6m7c~ߎT[9xc)Fd!e>Lwag!l: pɃ܅~;es3.@͛V MAb4&2tɯa `"+ #TUWF~z E+h agRz?{tW%Pv, R2Fb_o o~t—`UN#%P4G2C>$ɂ-Hކ
+k5xqsa EcH aE!n( ["\"CA C|PX <RXp'0G RBeXLNs
endstream
endobj
-7073 0 obj
-<< /Type /Page /Contents 7074 0 R /Resources 7072 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
-endobj
-7075 0 obj
-<< /D [ 7073 0 R /XYZ 78.37 808.885 null ] >>
+7074 0 obj
+<< /Type /Page /Contents 7075 0 R /Resources 7073 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6821 0 R >>
endobj
7076 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 742.929 null ] >>
+<< /D [ 7074 0 R /XYZ 78.37 808.885 null ] >>
endobj
7077 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 731.97 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 730.974 null ] >>
endobj
7078 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 721.011 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 720.015 null ] >>
endobj
7079 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 710.052 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 709.056 null ] >>
endobj
7080 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 699.093 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 698.097 null ] >>
endobj
7081 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 688.134 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 687.138 null ] >>
endobj
7082 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 677.175 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 676.179 null ] >>
endobj
7083 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 666.217 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 665.22 null ] >>
endobj
7084 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 655.258 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 654.261 null ] >>
endobj
7085 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 644.299 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 643.302 null ] >>
endobj
7086 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 633.34 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 632.344 null ] >>
endobj
7087 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 622.381 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 621.385 null ] >>
endobj
7088 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 611.422 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 610.426 null ] >>
endobj
7089 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 600.463 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 599.467 null ] >>
endobj
7090 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 589.504 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 588.508 null ] >>
endobj
7091 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 507.361 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 577.549 null ] >>
endobj
7092 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 496.402 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 566.59 null ] >>
endobj
7093 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 467.511 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 555.631 null ] >>
endobj
7094 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 456.552 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 502.829 null ] >>
endobj
7095 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 445.593 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 491.87 null ] >>
endobj
7096 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 434.634 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 480.911 null ] >>
endobj
7097 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 423.675 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 469.953 null ] >>
endobj
7098 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 412.716 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 458.994 null ] >>
endobj
7099 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 401.757 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 448.035 null ] >>
endobj
7100 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 385.817 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 437.076 null ] >>
endobj
7101 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 374.858 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 426.117 null ] >>
endobj
7102 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 363.899 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 415.158 null ] >>
endobj
7103 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 352.94 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 404.199 null ] >>
endobj
7104 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 310.101 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 393.24 null ] >>
endobj
7105 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 299.142 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 382.281 null ] >>
endobj
7106 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 288.183 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 371.322 null ] >>
endobj
7107 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 277.224 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 360.363 null ] >>
endobj
7108 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 212.467 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 349.405 null ] >>
endobj
7109 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 201.508 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 267.262 null ] >>
endobj
7110 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 190.549 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 256.303 null ] >>
endobj
7111 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 179.59 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 227.411 null ] >>
endobj
7112 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 168.631 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 216.452 null ] >>
endobj
7113 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 157.672 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 205.493 null ] >>
endobj
7114 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 146.714 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 194.534 null ] >>
endobj
7115 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 135.755 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 183.575 null ] >>
endobj
7116 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 124.796 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 172.616 null ] >>
endobj
7117 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 113.837 null ] >>
+<< /D [ 7074 0 R /XYZ 81.077 161.658 null ] >>
endobj
7118 0 obj
-<< /D [ 7073 0 R /XYZ 81.077 102.878 null ] >>
-endobj
-7072 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F80 749 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 7074 0 R /XYZ 81.077 145.717 null ] >>
endobj
-7121 0 obj
-<< /Filter /FlateDecode /Length 1601 >>
-stream
-xZ]o6}ϯ! ? l(
-,=:J-TRIm2-tT鶗(ux%yϽDgoftgqk9[_1h36333l}3kŠy8.m]un6ݻƇ?ؼws쟽#׿WNʝ#}ńgϲUvye;גqbQOweUyZ“w]Mg7s4F﴾Dž8r9FNopAK:\~ p؈$2c&5g57wpX&,63É)\q}-j7{pFuU\747 ڱN
-g;FFۦzm-`==Lܦ͛b[SMhk?`$ PT`aFHi;ʹe 'bw5 C(
-t$]YnZ}_Bpb 觊2XZ$&ht (գ@Nj9͡>U!Dq ,v]v]銫6J0?]&Y"\67Q&K`HMjI) eTP _C^-w_5m/;"ZB:M a& 뒥hKb!.$! xװk4# D[+tPNm)}&85GiN[[ɺ_ըq#tRqey#'^uryqƻ?3h)gq!>Jَ0e=Ȳ1aJ-T. jb S RR"?A+z',dWkM+p|c4z1N8nm:H̳<u_HkZm7FSJN(1?RN5sdNt)jgQTT>!= pp(Z <
-:$Jx%m O0 AmkMpDm4޶B
-VV/˦펾U[3_.]͕o>iWTѻӮC<`I /F:#10)3lcqCtA&?àP,l0FEUCL3!Q00 )lO,>+t
-endstream
+7119 0 obj
+<< /D [ 7074 0 R /XYZ 81.077 134.758 null ] >>
endobj
7120 0 obj
-<< /Type /Page /Contents 7121 0 R /Resources 7119 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 7074 0 R /XYZ 81.077 123.799 null ] >>
endobj
-7122 0 obj
-<< /D [ 7120 0 R /XYZ 78.37 808.885 null ] >>
+7121 0 obj
+<< /D [ 7074 0 R /XYZ 81.077 112.841 null ] >>
endobj
-7123 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 742.982 null ] >>
+7073 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F78 556 0 R /F73 189 0 R /F69 183 0 R /F80 749 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7124 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 732.023 null ] >>
+<< /Filter /FlateDecode /Length 2141 >>
+stream
+xZMo#ϯ1 6A@=B[n[´5xgEʲ,F2|U,*Gx<\}AFRG))Id4[~+>yޔ{O
+}kVHstOU%T@~X7h|% -~]VhXc*o]0"-tDt$0 n.v}믥{mx<~_!|nھU p;9LHdM.# A06
+xz6)
+"Y]jBAbV21wq7CMh -Ey'냂*s7`1_N-Üyϫtv.,FӇɋ=72`L] )zw%I3;Xa̲t\Ș!kr5Puڒoތb]
+xw7O0ri
+.͇-ka+ Jۋe4|\G3$ݫ}'nW !0̆:H?]ˆ<XҥXe?x<]QރH藘3EpJ6i^ôr*يɕDjj?ð#pp:gIH-ۢ-I3}UDӿ-\!Fda w!39Fĩo>#w3W<Wri)A,,*Ϧ=C`p0:J޹e .&y$&'
+endstream
+endobj
+7123 0 obj
+<< /Type /Page /Contents 7124 0 R /Resources 7122 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6821 0 R >>
endobj
7125 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 721.064 null ] >>
+<< /D [ 7123 0 R /XYZ 78.37 808.885 null ] >>
endobj
7126 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 710.105 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 742.929 null ] >>
endobj
7127 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 699.146 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 731.97 null ] >>
endobj
7128 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 688.187 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 721.011 null ] >>
endobj
7129 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 677.228 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 710.052 null ] >>
endobj
7130 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 666.269 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 645.295 null ] >>
endobj
7131 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 655.31 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 634.336 null ] >>
endobj
7132 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 644.351 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 623.377 null ] >>
endobj
7133 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 633.393 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 612.418 null ] >>
endobj
7134 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 622.434 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 601.459 null ] >>
endobj
7135 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 611.475 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 590.5 null ] >>
endobj
7136 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 600.516 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 579.542 null ] >>
endobj
7137 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 589.557 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 568.583 null ] >>
endobj
7138 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 578.598 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 557.624 null ] >>
endobj
7139 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 567.639 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 546.665 null ] >>
endobj
7140 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 537.124 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 535.706 null ] >>
endobj
7141 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 526.165 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 494.859 null ] >>
endobj
7142 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 515.206 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 483.9 null ] >>
endobj
7143 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 504.247 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 472.941 null ] >>
endobj
7144 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 493.288 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 461.982 null ] >>
endobj
7145 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 482.329 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 451.023 null ] >>
endobj
7146 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 471.37 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 440.065 null ] >>
endobj
7147 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 460.412 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 429.106 null ] >>
endobj
7148 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 449.453 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 418.147 null ] >>
endobj
7149 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 438.494 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 407.188 null ] >>
endobj
7150 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 427.535 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 396.229 null ] >>
endobj
7151 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 416.576 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 385.27 null ] >>
endobj
7152 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 405.617 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 374.311 null ] >>
endobj
7153 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 394.658 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 363.352 null ] >>
endobj
7154 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 383.699 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 352.393 null ] >>
endobj
7155 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 372.74 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 341.434 null ] >>
endobj
7156 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 361.781 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 330.476 null ] >>
endobj
7157 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 350.823 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 319.517 null ] >>
endobj
7158 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 339.864 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 288.632 null ] >>
endobj
7159 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 328.905 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 277.674 null ] >>
endobj
7160 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 317.946 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 266.715 null ] >>
endobj
7161 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 306.987 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 255.756 null ] >>
endobj
7162 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 296.028 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 244.797 null ] >>
endobj
7163 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 285.069 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 233.838 null ] >>
endobj
7164 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 274.11 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 222.879 null ] >>
endobj
7165 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 241.655 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 211.92 null ] >>
endobj
7166 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 230.696 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 200.961 null ] >>
endobj
7167 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 219.737 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 190.002 null ] >>
endobj
7168 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 208.779 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 179.043 null ] >>
endobj
7169 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 197.82 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 168.085 null ] >>
endobj
7170 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 186.861 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 157.126 null ] >>
endobj
7171 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 175.902 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 146.167 null ] >>
endobj
7172 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 164.943 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 135.208 null ] >>
endobj
7173 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 153.984 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 124.249 null ] >>
endobj
7174 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 143.025 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 113.29 null ] >>
endobj
7175 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 132.066 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 102.331 null ] >>
endobj
7176 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 121.107 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 91.372 null ] >>
endobj
7177 0 obj
-<< /D [ 7120 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 7123 0 R /XYZ 81.077 80.413 null ] >>
endobj
-7119 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+7122 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 186 0 R /F19 184 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7180 0 obj
-<< /Filter /FlateDecode /Length 3207 >>
-stream
-x\Ko#7W^vLiI,
-:çaJE` v,nuL$s34\e%ᵎኢp3a8z \؈Jh.߯fຟ4'<Ŧ!wIO<nGm2> ):pnb~-{+hlE#@n"ofEƤ-겱ϵ/v|v ܋H~-+ "mbdő(Ks7)zٺw=
-\FOAIFwoV D+غ8I :nQVi2뗔P{{]&vi$De*~HBZHY%.f9]66K 8ʼnce'..>R2bDLd_8@/mB?̦u'Z )(1&V QV2kk.nŮXhi|`G SiY/e---]f+I3~ BLȺlbkK:_I;FXCjdEYYnb}YѤ61J^
-DiZb,EYt_?KZG$iF&{Bظ|HAUi{g=gp"0eȰWPsFVS`7]3kַvٮ8*Z"U1dY߻>dUSʭ%"mpEϬ hB03*+*v?,rYDؘUY]ɬSsGqJtVc H{rUvBȬ6]m~kO ŜT&l0-뱘Nl? sTZ% N:M^Oǔr$]ڠLzŭ
-h*@Y]ʬcx}l<#A0&f~]`.. :o
-cfb״(̺,.0mQ`Yef4h^qR+eO2kk;&$6_tY̬*:|>}H)KRXtYˬSϞ5{ RuYʬڻ]Z=/P6e`kv/Ҟ KBf=Q[K̕d-R*
-&Wwń[y~Y.7L\oH 0s>{U]5;ns34ïM׵[Çquo>vy=vDBs?pX({oeϯv>6`7nҟk.]pXj<O^ls6YcYˠP ܢÓm?LnZ!@z='b ݗYcm86G-~)'ceOjb_A-Ѩ#͉8,'6"J8d(̑ɲ4<Q hP]ZkeEHB{BZNoj,WluPW} ¸5XUsUCm`(xsZ!N2% ?lU %
-V*O_ =;>W>O-l38W_#K@PO
-.}8LSZכ%ikLSMS̃?NMijx0+& Qă x>M~6^mqk>6x푉&~f|;0gI)ьR|yD3:0'bJ1 e`" LS7_(|?
- m~I8h?Cކ{Bg'/KE $rD0$~= _de ={I4372Җr3UPRyèuz1"QW{Rj% "C%ca:" OUλũ;$QBD!f`RD0`{7 fDtYN
-w'oݣ !
-S%3$B i%q܌V h%: E7 0mb șfRFp 3X$wrKzDv֓}f,0w!Ҁ
-Rc̐饻Mc81E$ h9qÊD6pb8̕prRqF5:';}r$H7I%E ;@IN3
- X4?- XߪYscW91ܝ8^6HuO;$B i%q܌ V0= QJvZrʼnAHrE!QK=.NbzRIzzӌ€F),f׮>H 7)Jd;$B i@%q܌ V (}
+<< /Filter /FlateDecode /Length 1703 >>
+stream
+xڽZKoFW7;F~P)
+*?ֶy}-Wy?0:H`+Mp 4Ǚ ICR46Ոhml3۠ MTx8D"~/AmK͇Pf%O}묶O٪m:[tv>]!8mVS0O 4K-M ~[qSLS\D~*+*qV[|f]('-01h׽LF[.-?/:wz8_M`l1$A^8vvrt.^Gr HgN**AY %D#a drgN*Ao\dv_ٮIaU)OHf)zO&@hυ¸ <tHcȉ$$C{0mOУb&A1DĜ9W V]wo];w25~(7N>^]^v>~GxMSs|[ZFa64. Qi.Scxؘp݂ gaS7<9 Sfa. F'$&6KXPhrc}0ݯ~*nZ0־p #DZ;n uٕMԫvNQ)Dh-[[Oy-uH_jۈj5fI_V즽!S&Y5E.o=sȅ@%̱3a au߆{}0
+C<M` 9-{7?IpP;ًp
+ 4݀Ne`>o6w*".\Ex7:,$ʫĠlN`s=zJO)+=LF$}zHXkk?F/WP^eH N*Q4U9+30B
+dҰa7.]P|\mq\ÊJF@\{T4|;0Gzְ!AGIl>ٮf60C!8ȥyԿ8ңO:) C hYkzwvZg>('5Hr_z ~C~p9FfwAE>;g
endstream
endobj
7179 0 obj
-<< /Type /Page /Contents 7180 0 R /Resources 7178 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /Type /Page /Contents 7180 0 R /Resources 7178 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6821 0 R >>
endobj
7181 0 obj
<< /D [ 7179 0 R /XYZ 78.37 808.885 null ] >>
@@ -22934,14082 +22995,14172 @@ endobj
<< /D [ 7179 0 R /XYZ 81.077 724.996 null ] >>
endobj
7187 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 692.119 null ] >>
endobj
7188 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 681.16 null ] >>
endobj
7189 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 670.202 null ] >>
endobj
7190 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 659.243 null ] >>
endobj
7191 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 648.284 null ] >>
endobj
7192 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 637.325 null ] >>
endobj
7193 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 626.366 null ] >>
endobj
7194 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 615.407 null ] >>
endobj
7195 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 604.448 null ] >>
endobj
7196 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 593.489 null ] >>
endobj
7197 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 582.53 null ] >>
endobj
7198 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 571.571 null ] >>
endobj
7199 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 528.732 null ] >>
endobj
7200 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 517.773 null ] >>
endobj
7201 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 506.814 null ] >>
endobj
7202 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 495.855 null ] >>
endobj
7203 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 484.896 null ] >>
endobj
7204 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 473.938 null ] >>
endobj
7205 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 462.979 null ] >>
endobj
7206 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 452.02 null ] >>
endobj
7207 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 441.061 null ] >>
endobj
7208 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 430.102 null ] >>
endobj
7209 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 419.143 null ] >>
endobj
7210 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 461.982 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 408.184 null ] >>
endobj
7211 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 397.225 null ] >>
endobj
7212 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 386.266 null ] >>
endobj
7213 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 375.307 null ] >>
endobj
7214 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 364.349 null ] >>
endobj
7215 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 353.39 null ] >>
endobj
7216 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 342.431 null ] >>
endobj
7217 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 331.472 null ] >>
endobj
7218 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 320.513 null ] >>
endobj
7219 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 309.554 null ] >>
endobj
7220 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 298.595 null ] >>
endobj
7221 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 287.636 null ] >>
endobj
7222 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 276.677 null ] >>
endobj
7223 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 265.718 null ] >>
endobj
7224 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 254.759 null ] >>
endobj
7225 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 243.801 null ] >>
endobj
7226 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 232.842 null ] >>
endobj
7227 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 221.883 null ] >>
endobj
7228 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 210.924 null ] >>
endobj
7229 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 253.763 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 199.965 null ] >>
endobj
7230 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 242.804 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 189.006 null ] >>
endobj
7231 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 178.047 null ] >>
endobj
7232 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 220.887 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 167.088 null ] >>
endobj
7233 0 obj
-<< /D [ 7179 0 R /XYZ 81.077 209.928 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 156.129 null ] >>
endobj
-7178 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F32 1809 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7236 0 obj
-<< /Filter /FlateDecode /Length 3632 >>
-stream
-x\o7_;1\Z\
-p[[%GZI7peYK=ggJ'7:ᄆO7']}[JN.O0 hKJFnOLȫY~u,m[|?ҊTqug/ܿJJEVݮu#7 ,`F" 젒;UU^/dd}/S+*NPIC 36 Y%xgqY"jJɧ äV 89YON>L$ְQBH _J?}q7^"LdĂAGSēO27~!x.πo`J) ߳gA_*{_?~%Ƣ3 y4vDP+(FOQN.QX's
-3VZoRH,jp uP&#ndo{q4s%r
-Cy6o`2gX҆H7Du r7M/% AjpLԈ}`t4z0@L +$T// !(CL`8lBR6]Tf.`DYajˆiƙ6@dB| g5 8jh^bD =5Q)vbTTHPKYDT tZ0//HpAD`9 }ÌCR7
-M",AU<mÌAж5x&*>D*S=TR0^+CY3MΨ&%`ǓEi\d`bD0==Ii-)8L x<g iqЙ  5xbr<Q]B ČFP7'*'a h(pi\0GTn*d|覆GB:4J: '2St$ӝA8'Azګ*Oyڤ;"\O0X l]?^~.{7n̚_acvVҚvqv0QcC(cqc!1vnoö.6DBf237b[wWs5mYo>+PA ebiomM0sV_Wr +=:UfY~l7iZ5{0(FŠ2Paigֲb=0 W3`
-?]Acbbl,|Ϸb}9OLGxR
-CbxQvd~>)KGoGGa x/p&]"|=)Tc1qYQ
-
-0qgc2nXwa{Ρf_6kyl7Ġh\ƅY`zsŇzd|%!5q7>2ombWw-"FBCٞҵoaDh37wo)~]T;C5aw{׊2<Ӓ{#0Acۃd.J7_\)DZQ&\¨}0s8E)..Ҹ>FxV _g ʭbFpUF),94o/-(eW!\9pV|XѸ]ѫv2JrIj̙*h7'\Y!FeKォghڿI=' Blvʅ.hp{ں.N]|}$ v>nVx>&p hm1Su*)sM?p<.AD-PhtI~5]_!iݎ@={g +#2O{;oߥS
- 9J@92?XGx^Y'*B&ٍkӟ)ٶ3@A ?nd$f(dev3鯨k?TKͤQuw~ɺ2[s TQ) 4o/> v]eM<Xs,CXb~Ա)fe P&.Q0Q ++EeR&]3&^ ~$P@+E4BR&XgFPeכ,HwLz,BC-_Ŭr3>&wqps!_@IlLϘumx
-endstream
+7234 0 obj
+<< /D [ 7179 0 R /XYZ 81.077 145.17 null ] >>
endobj
7235 0 obj
-<< /Type /Page /Contents 7236 0 R /Resources 7234 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6820 0 R >>
+<< /D [ 7179 0 R /XYZ 81.077 134.212 null ] >>
+endobj
+7236 0 obj
+<< /D [ 7179 0 R /XYZ 81.077 123.253 null ] >>
endobj
7237 0 obj
-<< /D [ 7235 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 112.294 null ] >>
endobj
7238 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 687.148 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 101.335 null ] >>
endobj
7239 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 676.189 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 90.376 null ] >>
endobj
7240 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 665.23 null ] >>
-endobj
-7241 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 654.271 null ] >>
+<< /D [ 7179 0 R /XYZ 81.077 79.417 null ] >>
endobj
-7242 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 643.312 null ] >>
+7178 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7243 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 632.353 null ] >>
+<< /Filter /FlateDecode /Length 4623 >>
+stream
+x]]o#}_\o@
+>Ɣ["Grxxnsy%e-|dwZvC(SAˆІŠM]غ&uQۧ꘡u*xŌ],OwOqsmIѻOMbc11Cm0akiLts ,~mXTdE'‚a%En]vS*ͦC$v뇛nqSF(xU}۹~.wܵuEYx])#6/)]^iNx
+Eօ}$Pyv(Fުp,EZtϻX$%Bn'N<Wf=R;`”&1IT 臇
+zn^o/;X@ab5V{Wntv1WۻAg>]n]X>ԽɳwnYm\^)@W7<_=(]
+
+Ȕ%
+*(a%H u|',%6< >X0(8' *Q(agp9ah"*= J*9%Zε7gi8usngo-O=tj-q ¸;ZI 3_(Óhl.d8xhhFFN
+kpAb&E#; Ci.+ը0˳PWH %BX* i%ı,5><$_9Аg][q3.X@d!
+K#̀Ppְ\O)#8D)3X$wrl'&
+ X4,QHF"1m86h|bJ<]BĊFrW Nq"!J[ƥ&Z\Hza1MT@*WԼ`ǓEԩ]`RD0>=iqa@#\YcD3>H 7)Jd?;$BAҀ&KcYrbX1J!5%y5z4 ":s8%.Ӱ2D(5HDw qhg&F0kHMp
+P+*Jxg:IPn0` d[RD!3)΁&q!Fr J ʳIcQMNa#WHGtqRb`H-]`#[a}%ft|rX!.n "dE#enIܒKn\ㇹ#|&o$Et­`E9Z"Mk$$? AXX_߀R" l=)w`/ )BIN -N04͋a߬G9%#aa4g(tس{ao!aNEA3B|G(Х}iz(ԪzJ}SdʓOODlzlXFN-P^{bJ϶@MJ@-T&%?]~(P,PسUr<y%F Zb|m? t9[LĜ/PbU?Ybj׮&5=ĺ{񮳸{lpAճ}oA! *h{!ᒸyՓ9$=szd吸gؚC-9$
+˫8$hwoqH$xᎰ$LtK1{ 57ٽcEkE0]
+>.M#Z")yqMT~bEexNB|OtPv 0)}T N3: tKa."# aCx`" i ywH61`$wAN R%S XiN,؂ERa5U9 2R4]-H>2ؐ2XB5qi" *h*jʒBkRyB"$M#f3~MEY5qHi"Aeh*Ę#I3ލiD/$GQG]-G>@L>0f΢qib l7ʡk(a*8HrKpG,31$*S5ӂh)ٳXGVPBT# a\Q(Eiyw;-G>`$Q7l,[B|t,M!a(+hE*8֔F 8ir iao7KO 0#+TM$4iQa Yk2Z&XKefH9HQ9HU>0LU
+GRg$:<At#ߑBdN)Yx:[㾖;*bi?>]'tLmS]|]{hP!N[uQfKmېCۢiNbʬh; cŁ}}|8O[m7vj #;-!u|mCտۻz_]Oc12k??]oCvË4Ay^'߁[V+NPҭfyDUwZfWl|E+鰾l׺pm 6[wJ[f޶߽;@|`#E,dDPw[f0\lדz
+t;"sJz1_y=Wb?xOQz3al7 GJX鏢t;w(LGʌÂT_mfv8y~qgK
+endstream
+endobj
+7242 0 obj
+<< /Type /Page /Contents 7243 0 R /Resources 7241 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 6821 0 R >>
endobj
7244 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 621.394 null ] >>
+<< /D [ 7242 0 R /XYZ 78.37 808.885 null ] >>
endobj
7245 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 610.436 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 768.832 null ] >>
endobj
7246 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 599.477 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 757.873 null ] >>
endobj
7247 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 588.518 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 746.914 null ] >>
endobj
7248 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 577.559 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 735.955 null ] >>
endobj
7249 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 566.6 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 724.996 null ] >>
endobj
7250 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 555.641 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 714.037 null ] >>
endobj
7251 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 544.682 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 703.078 null ] >>
endobj
7252 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 533.723 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 692.119 null ] >>
endobj
7253 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 490.94 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 681.16 null ] >>
endobj
7254 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 479.981 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 670.202 null ] >>
endobj
7255 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 469.022 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 659.243 null ] >>
endobj
7256 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 458.063 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 427.707 null ] >>
endobj
7257 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 447.105 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 416.748 null ] >>
endobj
7258 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 436.146 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 405.789 null ] >>
endobj
7259 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 425.187 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 394.831 null ] >>
endobj
7260 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 414.228 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 383.872 null ] >>
endobj
7261 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 403.269 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 372.913 null ] >>
endobj
7262 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 392.31 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 361.954 null ] >>
endobj
7263 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 381.351 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 350.995 null ] >>
endobj
7264 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 370.392 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 340.036 null ] >>
endobj
7265 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 359.433 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 329.077 null ] >>
endobj
7266 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 348.474 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 318.118 null ] >>
endobj
7267 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 337.515 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 307.159 null ] >>
endobj
7268 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 326.557 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 296.2 null ] >>
endobj
7269 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 315.598 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 285.242 null ] >>
endobj
7270 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 262.908 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 274.283 null ] >>
endobj
7271 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 251.949 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 232.062 null ] >>
endobj
7272 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 240.99 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 221.103 null ] >>
endobj
7273 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 210.144 null ] >>
endobj
7274 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 199.185 null ] >>
endobj
7275 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 188.226 null ] >>
endobj
7276 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 177.267 null ] >>
endobj
7277 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 166.308 null ] >>
endobj
7278 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 155.349 null ] >>
endobj
7279 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 144.39 null ] >>
endobj
7280 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 133.431 null ] >>
endobj
7281 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 122.473 null ] >>
endobj
7282 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 111.514 null ] >>
endobj
7283 0 obj
-<< /D [ 7235 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 7242 0 R /XYZ 81.077 100.555 null ] >>
endobj
-7234 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 186 0 R /F32 1809 0 R /F23 660 0 R /F73 189 0 R /F69 183 0 R /F19 184 0 R /F76 318 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7286 0 obj
-<< /Filter /FlateDecode /Length 1919 >>
-stream
-xڭZMo8W3aߢ4vrX63IȒWN7OQ)Rq;.g/-鑯ŪWt,vDO\||&I)g
-/%3:KQTϴ$Qtv9Wt,%F)`Q.M7x)ovv29swf[ڬ+Io 5uv|]؁޷xk÷?Y?{|G {l`1D&!nɳU<yt;> >]^Tx?DO;?7K -0&]!jŖ M춍=7DER = =銚S"hC)wQz
-"ܿ!lxY&Di_Bѫ.p'*4P/E3+;kD˱ܞLy3}>ޓ08!:ZS^.WwG$όGI &!?`$>U ;DӍ`f̊oq}}5#CiȖev.XGh$$a36b.D9#jq]ݼa~4!4
-&DP"-ub®ojʩ=7n4s-Ɛdl)EhiJP#Bҫ~TWᜟثH8Gح
-R2υK^hvjڵq!y YO븊E ?BXt{ؾC&wa@FWҮ)e&
-K!|QD0$$-B;wl}lnr)t AH)y$36~qvD&pSz|ZOUv(!cBނKFG
-}~8Llj'͹iFQڗMd?71ǹQ%;4ǘۯLwIWU" @TCc=@Dح˺,ډ{c~s4%Ʃ!Ex:nX
-f5 K+P:BXo~I]oˮؔŲ^V9W˽8B},6ٓmb/hf;$*^w\y9y݃볦29/4geGCBߖx-p+B4Q
-/UBE 5I/:F(Ehh
-҅N.6!ZYȅi= Π}Fr ]S !_רHf52COQ*g&'p„%->]j Sjfn?~.
-endstream
+7284 0 obj
+<< /D [ 7242 0 R /XYZ 81.077 89.596 null ] >>
endobj
7285 0 obj
-<< /Type /Page /Contents 7286 0 R /Resources 7284 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7242 0 R /XYZ 81.077 78.637 null ] >>
endobj
-7287 0 obj
-<< /D [ 7285 0 R /XYZ 78.37 808.885 null ] >>
+7241 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F32 1809 0 R /F23 660 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7288 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 768.832 null ] >>
+<< /Filter /FlateDecode /Length 2422 >>
+stream
+xڭZMo6Wa#~^Z!EnBPl"K$' (Q\,C>/~b]Dqs]r{ T)Y_`-"H`HnR0_u'1RBx $B*S~{͡vs\xpD5 ƈi?aP
+HD-A_^QBeD.bk~uyyEJadehz:]Q֕{^vͪcNS&d_OK%FBL$(+&l爲"k{T[9NCݔ޴+Nv_r3);#؋7~wfX2XEXBWyV{@(F
+XBT(h4Qje]'~NUu7=l:'}z}<U0ER挚 CЯkKh쌘 .mmʫmL["Bv "c>=&UE{n,v
+;F:|}!Px)'jꦘpAxsi)ńT9 gaOONLI m/;.&H)YX|'~# ͈‚nB_IZmM9AS25SKIb cHU,EٌJ;Gٸ;uŐ`dAY6o{ -*d1zHg` xr15Jt5B2 EúzNGdQMp]ZlNjVŸƖl۫^iq؟m綶dҶi7j<U,&sKZLm3mL<v OmZ+7: jMOY i)ˍntS;/~Qb^iǦ-6eSwaDsm7loIVZ
+6ndܬDK #նv<`Vq<T *1A,vu=ńPq<{>10LhAgwuXË)$"c9 Qz0ܕeח5klW'f$YOO dIc$"09S"(8m߱ʂCgd ~7[Kg(#9\_gJXP<<GvLQ<
+[z" "
+=jp.!YY V6 CzGE*\A:NJe!buSܞO?})ܾ aҌѯoo'Fޑ]Ҕ^oqݒEi x:|mP4zNbAjCaD=3S_#ש f3SSygɐdg A!'!} ]w`UY}S[beRK9lwiSe_N L)8cI=pI4>egлmU$iƒ""Dj{̝W Q|^"GOۄ
+<]__R]l}}FĠs>o̘9l}y(6p}"Hs׫.2{SIa֏IwN}
+
+.0=tV`K4^}ێNخn`!"%L!"~}K}Aτ~Le($N$ b?M>[Mtcaӥc2,W6e.aȠ0<ȝOO?|Q
+endstream
+endobj
+7287 0 obj
+<< /Type /Page /Contents 7288 0 R /Resources 7286 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7337 0 R >>
endobj
7289 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7287 0 R /XYZ 78.37 808.885 null ] >>
endobj
7290 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 768.832 null ] >>
endobj
7291 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 757.873 null ] >>
endobj
7292 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 705.071 null ] >>
endobj
7293 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 694.112 null ] >>
endobj
7294 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 649.28 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 683.153 null ] >>
endobj
7295 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 638.321 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 630.351 null ] >>
endobj
7296 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 627.362 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 619.392 null ] >>
endobj
7297 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 616.403 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 608.433 null ] >>
endobj
7298 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 597.474 null ] >>
endobj
7299 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 586.515 null ] >>
endobj
7300 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 575.556 null ] >>
endobj
7301 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 564.598 null ] >>
endobj
7302 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 553.639 null ] >>
endobj
7303 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 542.68 null ] >>
endobj
7304 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 531.721 null ] >>
endobj
7305 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 528.732 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 520.762 null ] >>
endobj
7306 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 509.803 null ] >>
endobj
7307 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 498.844 null ] >>
endobj
7308 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 495.855 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 487.885 null ] >>
endobj
7309 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 460.986 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 476.926 null ] >>
endobj
7310 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 426.117 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 465.967 null ] >>
endobj
7311 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 415.158 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 455.009 null ] >>
endobj
7312 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 404.199 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 390.251 null ] >>
endobj
7313 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 393.24 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 379.292 null ] >>
endobj
7314 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 382.281 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 368.334 null ] >>
endobj
7315 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 371.322 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 357.375 null ] >>
endobj
7316 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 360.363 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 346.416 null ] >>
endobj
7317 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 349.405 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 335.457 null ] >>
endobj
7318 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 338.446 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 324.498 null ] >>
endobj
7319 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 322.505 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 313.539 null ] >>
endobj
7320 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 306.565 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 302.58 null ] >>
endobj
7321 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 295.606 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 291.621 null ] >>
endobj
7322 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 279.666 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 280.662 null ] >>
endobj
7323 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 268.707 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 269.703 null ] >>
endobj
7324 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 257.748 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 258.745 null ] >>
endobj
7325 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 246.789 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 247.786 null ] >>
endobj
7326 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 235.83 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 236.827 null ] >>
endobj
7327 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 224.872 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 201.957 null ] >>
endobj
7328 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 213.913 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 167.088 null ] >>
endobj
7329 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 202.954 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 156.129 null ] >>
endobj
7330 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 145.17 null ] >>
endobj
7331 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 134.212 null ] >>
endobj
7332 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 123.253 null ] >>
endobj
7333 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 112.294 null ] >>
endobj
7334 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 101.335 null ] >>
endobj
7335 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 137.2 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 90.376 null ] >>
endobj
7336 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 126.241 null ] >>
-endobj
-7337 0 obj
-<< /D [ 7285 0 R /XYZ 81.077 115.283 null ] >>
+<< /D [ 7287 0 R /XYZ 81.077 79.417 null ] >>
endobj
-7284 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+7286 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F78 556 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-7341 0 obj
-<< /Filter /FlateDecode /Length 2216 >>
+7340 0 obj
+<< /Filter /FlateDecode /Length 2097 >>
stream
-xڽZ[o~_a/0~1ŢEgECvbˉEr%y2=%zә%H~sSvg_} #;xFf fJ%]?~uCX]\2*:*>c悑{
-0+YS$u_3q/L$˼vMeF[悪-^dޕ%iLq1ieUcX!*L . r1$|&_yߖ_?mK a: `)"{ c^6B}r>(|By^m ם֪ƹHUCT)cHj3 nc"L<&/ EJPj쪏NSi<<ʽ<N˶6*Bg,pٻֲsmbwE͠Vo+ 㕀1?=&Q3
-1!T'#mX ~}ݴ?lq+ODZM#{ N!0\_^GFF)D_Gs)n~( npB`G`eciX,6p̂3'
-~1$sVJ=gugB"F?'-O2>mm
-7mEmr[\dUeVZf0*'h.4i<C <B3jF4DN*hϢ(Zz$fl,_O]WD4<QF4D[Byu=}v?;?о Pp#?kI,uu}q8Q˾8czrO{@FFpVm>8Kz״左-y\gj>4LVtnz7./Mƍ\'7&wNC <xy
-I ۾\$1]p<a~"nu5!y\%Aá9
-rb|áQ|. Ea!iB+~ nNj-6%[QRUt8&IN- Ku
-!x쿸]AqD1AIxB;R#a#W}
+xڽZn8}W3aw2
+dPjU0}[>|9WD wAZQ`JmA}M1wͲs
+fsE3~U k5䇨JP8f2 ~״% "uĶ(OP
+Cz=>7zEk~@ygSWaSƳẽY@=.6G6٭ߺO:O[~@=!!Gf|ft
+;!
+P`/`t=_f@k;PLBY8,
+%B[BEgsחu}ujZ|Lsf_/(ܿW a/lգ/}7?l '}i/p
+*GqːEk;3T*C:(9f u>ر} U+V7nUW7N$6UCoxoJo нK\l dOcKW6
+SD͋j^:$W$)PRA"tl,`A6RN8ԧKr4U *dӬ7E'G{9 :2w
+
+4St^mWfyDӷ;s*_8X(fi|(eg> H4St/35ԴJ@8B%B/l'eHӐUq%K^M0-C.*)tE䰩딨G^2_IdI>ApZbfB8$z
endstream
endobj
-7340 0 obj
-<< /Type /Page /Contents 7341 0 R /Resources 7339 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+7339 0 obj
+<< /Type /Page /Contents 7340 0 R /Resources 7338 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7337 0 R >>
+endobj
+7341 0 obj
+<< /D [ 7339 0 R /XYZ 78.37 808.885 null ] >>
endobj
7342 0 obj
-<< /D [ 7340 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 768.832 null ] >>
endobj
7343 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 694.652 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 752.891 null ] >>
endobj
7344 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 683.693 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 741.933 null ] >>
endobj
7345 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 672.734 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 725.992 null ] >>
endobj
7346 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 661.775 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 715.033 null ] >>
endobj
7347 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 650.816 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 704.075 null ] >>
endobj
7348 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 639.857 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 693.116 null ] >>
endobj
7349 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 628.898 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 682.157 null ] >>
endobj
7350 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 562.149 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 671.198 null ] >>
endobj
7351 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 551.19 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 660.239 null ] >>
endobj
7352 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 540.231 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 649.28 null ] >>
endobj
7353 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 529.272 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 638.321 null ] >>
endobj
7354 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 518.313 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 627.362 null ] >>
endobj
7355 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 507.354 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 616.403 null ] >>
endobj
7356 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 496.395 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 605.444 null ] >>
endobj
7357 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 485.436 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 594.486 null ] >>
endobj
7358 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 474.477 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 583.527 null ] >>
endobj
7359 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 458.537 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 572.568 null ] >>
endobj
7360 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 447.578 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 561.609 null ] >>
endobj
7361 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 436.619 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 461.533 null ] >>
endobj
7362 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 425.66 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 450.574 null ] >>
endobj
7363 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 414.701 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 439.615 null ] >>
endobj
7364 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 403.743 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 428.656 null ] >>
endobj
7365 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 392.784 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 417.697 null ] >>
endobj
7366 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 381.825 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 406.738 null ] >>
endobj
7367 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 370.866 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 395.78 null ] >>
endobj
7368 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 337.989 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 329.03 null ] >>
endobj
7369 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 327.03 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 318.071 null ] >>
endobj
7370 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 284.191 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 307.112 null ] >>
endobj
7371 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 273.232 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 296.153 null ] >>
endobj
7372 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 262.273 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 285.194 null ] >>
endobj
7373 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 246.333 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 274.235 null ] >>
endobj
7374 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 235.374 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 263.276 null ] >>
endobj
7375 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 224.415 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 252.318 null ] >>
endobj
7376 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 213.456 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 241.359 null ] >>
endobj
7377 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 202.497 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 225.418 null ] >>
endobj
7378 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 191.538 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 214.46 null ] >>
endobj
7379 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 180.579 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 203.501 null ] >>
endobj
7380 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 169.621 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 192.542 null ] >>
endobj
7381 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 158.662 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 181.583 null ] >>
endobj
7382 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 147.703 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 170.624 null ] >>
endobj
7383 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 136.744 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 159.665 null ] >>
endobj
7384 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 125.785 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 148.706 null ] >>
endobj
7385 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 114.826 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 137.747 null ] >>
endobj
7386 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 103.867 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 104.87 null ] >>
endobj
7387 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 92.908 null ] >>
-endobj
-7388 0 obj
-<< /D [ 7340 0 R /XYZ 81.077 81.949 null ] >>
+<< /D [ 7339 0 R /XYZ 81.077 93.912 null ] >>
endobj
-7339 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F80 749 0 R /F19 184 0 R /F20 186 0 R /F75 317 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+7338 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F80 749 0 R /F19 184 0 R /F20 186 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-7391 0 obj
-<< /Filter /FlateDecode /Length 2329 >>
-stream
-xZo~_> K
-zEP@Цnb1k!Jrr!)Ѥ8f\+G G3ߌ''x H;?^]&lQF'׷'& ILIdr8ӟ:$E,eH
-.+!II(P& Zۦ)BՃv>ퟱcN$Nb'/G]gj>E;b8qJQJhg$d
-iVhqzh4!:s2s-{y[$E"s ̅ZFRg[dpM\DdGD)@
-}$e]#K V~{~uCd9x[w-pWĩ遏5辶d(Ŏ#9! {sw&>`2`h~3Vv?O\#UIyM"HS!HM)MBtImWH ,X;מAhOhP
-f
- dO \C`0긁}AbF  / mξwvx8[Gޭ#ÊPmVs8,ʊ<Ӓ<'QYh6d9.R^u ؛i<1><fݴ|(H7 GaΜ֌bceC^FaP}I\ o˟Tw!k 8bRwa9~GѠZ!t03Otw6ЯA`kV#'0\聥ίYf\rDbc
- l][:qVY7tֳ-Kef$Ai⒉KzSC}8>??-+_!}uѨP# @ӗP-f~[GM=rda2b(y?
-˄BpWALCptGL8F)İBtMD2*I(&3e+&"!Ey7 H]7l"f2{6Vʐ(+X>(W+10ΨqČR像8mA@x n%RNfGz>|0
+7390 0 obj
+<< /Filter /FlateDecode /Length 2239 >>
+stream
+xڵZmo6E? \S Ep Pl%"K9INޡ(S-Q|șppH<pw?=HK*xB&J#&J%\n&L/lΤ^WEQͨ>-Hob_4:͛lWYg-m׳9U5fhjH6ׇMC7a yYUm JJHiru3%a!fYU}+l$bZ:sAI8 =x$ʶiͼ\kDՊ
+L0i` =4؄#F&$~@D$)( ԓ, )CGUU&kidgR,ƿb#꣏պ+% Qeqz#d\$)V9!yHr xVV'Wlu}o`|}~7
+#HpSQ+A8c藍݉_X#Ibh} 9rkH( ҌGY(@G?<Q z#/[pƳ[j-ȗy6*~7Z.2!Rڅq&K~ybJO_5YmsQ8W}s;Kf6kf"ܵgFPd`zdi":D>:~NlOfK@3ږ|_}kO剂`[m}VųUy匁 v8=p3D#͏\]DNB1V"oYr B)8H*AΏ\XB`*+{lvNȿ7.s'Yvh4B"SG?̆
+pCefmRM.S=eZ<6<TA :tcgWEWK. 鏘qhݶmxLښ-̴#Oߍ)\VuKq
+n;hs7<U2u:s)p Nm<Xk 8} Vy-VF 1|crKhjŻf4}#&yIh'YIx솎,a ~$P
+Qa˻0ŋ3f;&Z0Gr4Dq~afa|e Y1z:*.e`C[u3@-CA\GrE\4@Lr08x[-&%o>B]#_qA7N`;}$[I޲* !˹"0b6W?s0c?~~3jQ`7v9BƨM̑z!`Kpđca}^m&}$
+av=8"?+JERh
+f
+#d+ml:WGٵ6PGhҾEm7Yi#1 Zy 'ž`〶.1nmJ{32[{j5(_:5)$[\
+~J܉6y6Urci<|`sƒ> 'S-!a]%0/ay"aқx|
++qzubǔ^ A9+n6=ާ6[o^Dnmv
+#qD=@{/VeFB
+ćnHGQql<@ʼaDŽ˸z8?<'jf!#e>?:k@Z#UN>:ɎC|AJ; mզ!_rx
+vjLup*[yB.eA%HE^ u$r 7d?4=8
endstream
endobj
-7390 0 obj
-<< /Type /Page /Contents 7391 0 R /Resources 7389 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+7389 0 obj
+<< /Type /Page /Contents 7390 0 R /Resources 7388 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7337 0 R >>
+endobj
+7391 0 obj
+<< /D [ 7389 0 R /XYZ 78.37 808.885 null ] >>
endobj
7392 0 obj
-<< /D [ 7390 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 742.929 null ] >>
endobj
7393 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 731.97 null ] >>
endobj
7394 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 721.011 null ] >>
endobj
7395 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 705.071 null ] >>
endobj
7396 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 694.112 null ] >>
endobj
7397 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 683.153 null ] >>
endobj
7398 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 672.194 null ] >>
endobj
7399 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 661.235 null ] >>
endobj
7400 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 650.276 null ] >>
endobj
7401 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 639.317 null ] >>
endobj
7402 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 628.358 null ] >>
endobj
7403 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 617.4 null ] >>
endobj
7404 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 606.441 null ] >>
endobj
7405 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 595.482 null ] >>
endobj
7406 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 584.523 null ] >>
endobj
7407 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 573.564 null ] >>
endobj
7408 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 562.605 null ] >>
endobj
7409 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 551.646 null ] >>
endobj
7410 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 540.687 null ] >>
endobj
7411 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 460.986 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 529.728 null ] >>
endobj
7412 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 450.027 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 518.769 null ] >>
endobj
7413 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 439.068 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 507.811 null ] >>
endobj
7414 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 428.109 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 496.852 null ] >>
endobj
7415 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 417.151 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 485.893 null ] >>
endobj
7416 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 406.192 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 474.934 null ] >>
endobj
7417 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 395.233 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 463.975 null ] >>
endobj
7418 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 384.274 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 409.18 null ] >>
endobj
7419 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 373.315 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 398.221 null ] >>
endobj
7420 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 362.356 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 387.263 null ] >>
endobj
7421 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 351.397 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 376.304 null ] >>
endobj
7422 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 340.438 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 365.345 null ] >>
endobj
7423 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 329.479 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 354.386 null ] >>
endobj
7424 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 318.52 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 343.427 null ] >>
endobj
7425 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 307.561 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 332.468 null ] >>
endobj
7426 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 296.603 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 316.528 null ] >>
endobj
7427 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 285.644 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 305.569 null ] >>
endobj
7428 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 274.685 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 232.842 null ] >>
endobj
7429 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 233.838 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 221.883 null ] >>
endobj
7430 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 222.879 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 210.924 null ] >>
endobj
7431 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 211.92 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 199.965 null ] >>
endobj
7432 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 189.006 null ] >>
endobj
7433 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 178.047 null ] >>
endobj
7434 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 167.088 null ] >>
endobj
7435 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 156.129 null ] >>
endobj
7436 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 145.17 null ] >>
endobj
7437 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 134.212 null ] >>
endobj
7438 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 7389 0 R /XYZ 81.077 123.253 null ] >>
endobj
7439 0 obj
-<< /D [ 7390 0 R /XYZ 81.077 80.413 null ] >>
-endobj
-7389 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 7389 0 R /XYZ 81.077 112.294 null ] >>
endobj
-7442 0 obj
-<< /Filter /FlateDecode /Length 2330 >>
-stream
-xZ[o6}ϯ0sx`m;-
-4 ,C[Be#ɤ(FJϼKlQ:x9 ~'_W?lƑV̔D@%ݯgͥ_w(L!-%Sc0L躨l.BP1GQM2Mdy؏&;)#iG:~1uRGo-ihkb?\ӈpBE]'6X&H~'?EVInd}CXn$4O^U(DϋĨp_D4@cH fRkDu;+XRce `~'u/Ke曞e-g5FuwfA3c([sJJ^%%inҺ QYFૹ `m}OGy3U
->kGKsDžJarpKNtГ 9y'.z1qmV
-t7;A<CZ!K`CJ>mfc}{WLԺ ԧ# eXxI>4 iL"LugM>WRm{-mFi.qBc;>~Iԃ9^1Hnqćp!Qe<!n`8-n2@TN`<" Ia
-w_C,٨*{.=ABʬ(v 9g 2=Ӟ@rɗ:*{ϲr C^ϱ\D$sR&tDX7ƍH6wXCF"w-k,ڱlͭ_)L\g{79`udM:hC.ʧ.]c??v#] CFq_3FDp}c|Is(=iGznIq\_JqDU%߼ĥiHEO7 Lř5XF A
-)5^ڞn|Cɱv!0\ÉNTS9oOԐ)+~'|~M@eHZzyԨHcय़Ϻ G 0,$GŅr()' Կf/.w'bs)mJG{Q>JW`;hå'tiYɤMi2 #s֙7] }S%"ڜoU :=>DTܴ?o$^/ E5~誎z7WYX7YPos+t/{
-z==Ao*6k10y[&}g?'yfws*e}W8ޤ%OZj<F{k?P^L Sݷ2ZJOL\Rθ19-gx?
-endstream
+7440 0 obj
+<< /D [ 7389 0 R /XYZ 81.077 101.335 null ] >>
endobj
7441 0 obj
-<< /Type /Page /Contents 7442 0 R /Resources 7440 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7389 0 R /XYZ 81.077 90.376 null ] >>
endobj
-7443 0 obj
-<< /D [ 7441 0 R /XYZ 78.37 808.885 null ] >>
+7442 0 obj
+<< /D [ 7389 0 R /XYZ 81.077 79.417 null ] >>
endobj
-7444 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 768.832 null ] >>
+7388 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7445 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 757.873 null ] >>
+<< /Filter /FlateDecode /Length 2466 >>
+stream
+xZ]6}ϯ00?nif_fM*6'"K,w:4}/EJ&ml:Ӿ,G<\j ~|+/㳿>{VGZFgwt32S "gRݮg?E&鋟o9[g
+i!
+b$[Y4UӾh6Gfi^捻<ҍ=G6È`:eidC!_jg|ٕYڝ2ӈp6RiC\7@ܴm_?wMuv*k3LIaT!hXva F~<H G
+H3!wMU5/ߗ'ޚ/^Vu::::0FNM@htYNZArz .
+]aEz9=ca˜(P޻-8{=rqȵ4wZLs *܂ȝbH@Qj %
+Cˢ$i6lÒuS2M)Qj)hI6'o1NRCwOo:X(aRQ(@STŹʆ8q-Kәv'U{ 욮\}VgS'sߵpzQ#vS,ֿv׏/njR2W¶\X :Q zq9%Z nsfOM TVzKiKwoZuUr57vT?t0 :i gǤټ9oא)`9qu"͗uk\uѵo <]0dZ#!`I!B?&xL$U]E=x)V]5ݐC+$du$UR'm(%H*=rM׿JgYk!#t/&zAJ{8GJ; aʛ4kYZ,_C(<'W cJ](a/o0)IlL}<)ʀ,)F:Dtצ+N0T4EN3$D&1rt/Ĺ PgjfH5CӢYNSC%|WCk7Znx>]{ 7;`ۗە/0%} eu E`/мtwQΜk(- /Nzɾ2^h`Hf,gZ+c<BVk.ֽw>rwyJkkV2pb^>)apLeƑQޯʳu5r=1iL"*}
+aJ/<dK %JKDP
+HhOߧOk}%=!H=#I"t?r_X3 &9ąFP:~{\3Z!Q7k&s?fǯ:$q>rҸ\n_Mە >O簟 G@\^m|]lTF]/akC4TrҸǧ%D^k2
+exuzck2>ZNϊ
+endstream
+endobj
+7444 0 obj
+<< /Type /Page /Contents 7445 0 R /Resources 7443 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7337 0 R >>
endobj
7446 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7444 0 R /XYZ 78.37 808.885 null ] >>
endobj
7447 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 768.832 null ] >>
endobj
7448 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 669.205 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 757.873 null ] >>
endobj
7449 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 658.246 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 746.914 null ] >>
endobj
7450 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 735.955 null ] >>
endobj
7451 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 606.441 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 695.108 null ] >>
endobj
7452 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 595.482 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 684.149 null ] >>
endobj
7453 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 673.19 null ] >>
endobj
7454 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 618.396 null ] >>
endobj
7455 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 474.934 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 607.437 null ] >>
endobj
7456 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 463.975 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 596.478 null ] >>
endobj
7457 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 453.016 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 585.519 null ] >>
endobj
7458 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 442.057 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 574.56 null ] >>
endobj
7459 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 431.098 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 563.601 null ] >>
endobj
7460 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 420.139 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 552.642 null ] >>
endobj
7461 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 541.684 null ] >>
endobj
7462 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 530.725 null ] >>
endobj
7463 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 519.766 null ] >>
endobj
7464 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 508.807 null ] >>
endobj
7465 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 497.848 null ] >>
endobj
7466 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 431.098 null ] >>
endobj
7467 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 420.139 null ] >>
endobj
7468 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 332.468 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 379.292 null ] >>
endobj
7469 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 321.509 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 368.334 null ] >>
endobj
7470 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 280.662 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 357.375 null ] >>
endobj
7471 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 269.703 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 278.67 null ] >>
endobj
7472 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 258.745 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 267.711 null ] >>
endobj
7473 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 247.786 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 236.827 null ] >>
endobj
7474 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 236.827 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 225.868 null ] >>
endobj
7475 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 225.868 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 214.909 null ] >>
endobj
7476 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 214.909 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 203.95 null ] >>
endobj
7477 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 203.95 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 192.991 null ] >>
endobj
7478 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 192.991 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 182.032 null ] >>
endobj
7479 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 182.032 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 171.073 null ] >>
endobj
7480 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 171.073 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 160.114 null ] >>
endobj
7481 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 160.114 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 149.155 null ] >>
endobj
7482 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 149.155 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 138.197 null ] >>
endobj
7483 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 138.197 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 127.238 null ] >>
endobj
7484 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 127.238 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 116.279 null ] >>
endobj
7485 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 116.279 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 105.32 null ] >>
endobj
7486 0 obj
-<< /D [ 7441 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 7444 0 R /XYZ 81.077 94.361 null ] >>
endobj
-7440 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+7487 0 obj
+<< /D [ 7444 0 R /XYZ 81.077 83.402 null ] >>
endobj
-7489 0 obj
-<< /Filter /FlateDecode /Length 2058 >>
+7443 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+7490 0 obj
+<< /Filter /FlateDecode /Length 1828 >>
stream
-xڭZo~_/No4zŢEs] AD,"{DnxC$S8pJn,~9K+rϗ)_b4lq}{FS "U$.ߗJQv>_*(u %S.]Vٮmbծ>LO|vWEXnA,L@T Tp&cwlnf di*>ͫX]62Z_>Lf;ueP-k>Eצ+ӖL*!m7MnMaJymS!P<uuXq|wr]m.}7ۋ9[3TF~5ף]]]~(-iNӓC"FJ9^4KNmG!8;+FШy>)eWWsϠO7ZwsD>10gƻn'vbR|@Rb{ҧvbR)c4BTi|g'4Z&)Qvvbhb4B5!T
-pΗ}nnjY|,;dI`K6$&1PS I1m^oiϮ׃bhrӸyvyݕMM˨abr*B[ Uv=Ђo41dCEܒh$$',pxN:``n@SuCP-hj2^!?ư`}}Rd!%ł)/,h< nB4>HE♑0BOq{XEC\ \UFچqEQ':%r}wMW&?
-3+7_(ӆ?EJ'IB&WʇUW\I/#4:vq)>~ "4^D70-B->c$ryE"4jdwL0l7O-bXm*$Y"D۾*zVцZM{ݝ6[K\{ܻ3>;o;\CLQu:Ee:z/9]i?ӝy.? 'oEw
-62Fsa3}ru? pc8MUB d<~[!Ӊ@WDs|)S!pD /^ ~ }('K!txfSVvobVaU?5;/tqW1^%z~ 3ߗ.ߨq$C${Җ@Ԯ밴yM5D17yfR0X56NG9 2EmoHi"(R}!o^q?_!!ت9Vԋ7#yK%eTtLQԻ ^f.HT9$?S !-
-:D$pC?
-s'
+xڽZMo6W؋]3hES
+ߺJF\I$В)f5`/Q"q2tr;hyqvqt&a&F3B5,6uz>VO?P!qiR6iqʹi?gulfgM5Ogϕ&xdU^JMZ>[̡s )9IʹNeC0![h
+L2i8 !<e6Eش?_\r9Qh3nHJxϚuoyK؎;y80u'"LEBP" !Ȃ!(o
+'we봘߇]c퉴uS=mg=5Lv\<*]7󫇞m CVi,Wi@MW[dӵ8ݥUDۜmO鵋:MD"#㉰qD$D;AhϜ 6
+mUwhK]7Iմ4~j7m$4.q]9*V=;c7Do:kEǬhcϋ CSϲ jo z@r\I}rhLlt~5
+.O=$&hH*<y(n|*hmeI`jQ2)@mKA"㓈ir)1,v[Hm6DC^
+y,N&ɟVMvuk(
+uՅ.ĖRB>Gv
+WE|ߓ d9C*脻  9?אּ˶񺬲Oe<{ɗuoSt*53)M Xp{ <
+h'0\zqUQ>Wrw[O;2ͳ~ҥÀpW?3PB%n5@J#VpAJ#.Tҧ(VШ Jh/@*ٛ0rw+0TH.P=
+
endstream
endobj
-7488 0 obj
-<< /Type /Page /Contents 7489 0 R /Resources 7487 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
-endobj
-7490 0 obj
-<< /D [ 7488 0 R /XYZ 78.37 808.885 null ] >>
+7489 0 obj
+<< /Type /Page /Contents 7490 0 R /Resources 7488 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7337 0 R >>
endobj
7491 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7489 0 R /XYZ 78.37 808.885 null ] >>
endobj
7492 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 742.929 null ] >>
endobj
7493 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 731.97 null ] >>
endobj
7494 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 721.011 null ] >>
endobj
7495 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 710.052 null ] >>
endobj
7496 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 699.093 null ] >>
endobj
7497 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 688.134 null ] >>
endobj
7498 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 677.175 null ] >>
endobj
7499 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 666.217 null ] >>
endobj
7500 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 655.258 null ] >>
endobj
7501 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 644.299 null ] >>
endobj
7502 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 633.34 null ] >>
endobj
7503 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 622.381 null ] >>
endobj
7504 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 611.422 null ] >>
endobj
7505 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 600.463 null ] >>
endobj
7506 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 589.504 null ] >>
endobj
7507 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 578.545 null ] >>
endobj
7508 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 567.586 null ] >>
endobj
7509 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 551.646 null ] >>
endobj
7510 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 540.687 null ] >>
endobj
7511 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 529.728 null ] >>
endobj
7512 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 518.769 null ] >>
endobj
7513 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 523.579 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 507.811 null ] >>
endobj
7514 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 512.62 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 496.852 null ] >>
endobj
7515 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 501.662 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 485.893 null ] >>
endobj
7516 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 472.015 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 474.934 null ] >>
endobj
7517 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 461.056 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 463.975 null ] >>
endobj
7518 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 450.097 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 453.016 null ] >>
endobj
7519 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 439.138 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 442.057 null ] >>
endobj
7520 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 428.179 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 431.098 null ] >>
endobj
7521 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 417.22 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 420.139 null ] >>
endobj
7522 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 406.261 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 409.18 null ] >>
endobj
7523 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 395.302 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 398.221 null ] >>
endobj
7524 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 384.343 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 387.263 null ] >>
endobj
7525 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 373.384 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 376.304 null ] >>
endobj
7526 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 362.426 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 365.345 null ] >>
endobj
7527 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 351.467 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 354.386 null ] >>
endobj
7528 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 340.508 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 343.427 null ] >>
endobj
7529 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 325.392 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 332.468 null ] >>
endobj
7530 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 314.433 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 321.509 null ] >>
endobj
7531 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 305.569 null ] >>
endobj
7532 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 294.61 null ] >>
endobj
7533 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 283.651 null ] >>
endobj
7534 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 252.767 null ] >>
endobj
7535 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 241.808 null ] >>
endobj
7536 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 230.849 null ] >>
endobj
7537 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 219.89 null ] >>
endobj
7538 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 208.931 null ] >>
endobj
7539 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 197.972 null ] >>
endobj
7540 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 187.014 null ] >>
endobj
7541 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 176.055 null ] >>
endobj
7542 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 165.096 null ] >>
endobj
7543 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 154.137 null ] >>
endobj
7544 0 obj
-<< /D [ 7488 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 7489 0 R /XYZ 81.077 143.178 null ] >>
endobj
-7487 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F80 749 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7547 0 obj
-<< /Filter /FlateDecode /Length 1541 >>
-stream
-xYKo6W,nS-
-a+ +Wm8F{]l߼șH;f8͵-N|36333lq1;[C!D,/72suY-KgUY4dJW߃>#f8볚h
-!P_v3 ja`Fq,dB|[uX}W7ohl|͏ju~W2{¯_*
-Є)3cRZ7W9ui9%F÷ٶ\v1[xexk1cz.g3L.ttMsF. H*7vЉQ)A#)_@ v;g4g$"E-8OS,& a<~l>}g(E4! 0EGrncШݛ@Kƚo4g<HwUUM'˲)> NCZ_k022qc?Fus u$qcp ;Fu3E42֢nD:4Zu[% x:-9ђbLONAa0264PMR&c9$o('XʏĚD|ԉ=*TK@rNѭFђP =J_?H񱃼tϷ՜^Ta2TJ:0Akq&ᖎjP\*AEKX3+(.B 1'hn5sTaz&\>p}"Au E@D5ú) J{l<?z(1]Ƅ3DXAww\ Hs(В T e(:<Pk|KcbQB0 v4~}!a<H%h2s>uĨaq;R {(,1NFq;R ۂn܎T6֭&u׭𒡸v{PX3 lGq* \
-`Plv8}HCT|~V4zidr; PIͶjd]/\g76 2oʪ.IH* |t
-؜z{]Էet":>W{fyyYέȈwBdnf7ݠ{-ݛ
-W_"C:Aaܺ;{.^D/?.ߋ4Dn"tMV}>>Ghs!j9&)y e;.eMU]_HgNʱЧ0t+M򞴅k-BY7 9ڳ!=U'۝C]>-$*|H L\[m兟,6uJ<w>=Cn=N2~4!,c0nMi;g*%.oS̻
-endstream
+7545 0 obj
+<< /D [ 7489 0 R /XYZ 81.077 132.219 null ] >>
endobj
7546 0 obj
-<< /Type /Page /Contents 7547 0 R /Resources 7545 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7489 0 R /XYZ 81.077 121.26 null ] >>
endobj
-7548 0 obj
-<< /D [ 7546 0 R /XYZ 78.37 808.885 null ] >>
+7547 0 obj
+<< /D [ 7489 0 R /XYZ 81.077 105.32 null ] >>
endobj
-7549 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 754.884 null ] >>
+7548 0 obj
+<< /D [ 7489 0 R /XYZ 81.077 94.361 null ] >>
endobj
-7550 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 743.925 null ] >>
+7488 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F26 662 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7551 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 732.966 null ] >>
+<< /Filter /FlateDecode /Length 1688 >>
+stream
+xZKo7WEFc7
+4A{Idy-/,4P\s-k?r>-F|w?&G?9>ahrqG0I;70F'tr|u,a\| b|neUѡX1Px9X]Y-+1׫լ:mnh/{i*F5^ܸ^mYW͚f "+|Qކ7E_8-񠟔'ZNl.wzE9˄9/|(9`M]L⫬4س V0+] VrnfU;!>߅7x|[ uSWU-fve5-M?tYVYa|`<|tS1{Ų\mэ Njwfqo ˍ;.$F6ewH4یrc
+ζ圤J2#]Kτɶ MpzN9>KRdGx4劤J2CP<g2i52A|:3y!6-$)IeчPBK,M#i ZZJ(EmO
+endstream
+endobj
+7550 0 obj
+<< /Type /Page /Contents 7551 0 R /Resources 7549 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7337 0 R >>
endobj
7552 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 7550 0 R /XYZ 78.37 808.885 null ] >>
endobj
7553 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 700.629 null ] >>
endobj
7554 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 689.67 null ] >>
endobj
7555 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 678.711 null ] >>
endobj
7556 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 667.753 null ] >>
endobj
7557 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 656.794 null ] >>
endobj
7558 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 656.254 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 645.835 null ] >>
endobj
7559 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 634.876 null ] >>
endobj
7560 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 623.917 null ] >>
endobj
7561 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 612.958 null ] >>
endobj
7562 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 612.418 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 601.999 null ] >>
endobj
7563 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 596.478 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 591.04 null ] >>
endobj
7564 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 585.519 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 580.081 null ] >>
endobj
7565 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 574.56 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 569.122 null ] >>
endobj
7566 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 563.601 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 558.163 null ] >>
endobj
7567 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 552.642 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 529.272 null ] >>
endobj
7568 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 541.684 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 518.313 null ] >>
endobj
7569 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 530.725 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 507.354 null ] >>
endobj
7570 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 519.766 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 496.395 null ] >>
endobj
7571 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 508.807 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 485.436 null ] >>
endobj
7572 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 497.848 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 474.477 null ] >>
endobj
7573 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 486.889 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 463.518 null ] >>
endobj
7574 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 475.93 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 452.559 null ] >>
endobj
7575 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 464.971 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 441.601 null ] >>
endobj
7576 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 454.012 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 430.642 null ] >>
endobj
7577 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 443.053 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 419.683 null ] >>
endobj
7578 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 427.113 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 408.724 null ] >>
endobj
7579 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 416.154 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 397.765 null ] >>
endobj
7580 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 405.195 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 386.806 null ] >>
endobj
7581 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 394.236 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 370.866 null ] >>
endobj
7582 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 383.278 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 359.907 null ] >>
endobj
7583 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 372.319 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 348.948 null ] >>
endobj
7584 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 361.36 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 337.989 null ] >>
endobj
7585 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 350.401 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 327.03 null ] >>
endobj
7586 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 339.442 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 316.071 null ] >>
endobj
7587 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 328.483 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 305.112 null ] >>
endobj
7588 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 317.524 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 294.154 null ] >>
endobj
7589 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 306.565 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 283.195 null ] >>
endobj
7590 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 295.606 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 272.236 null ] >>
endobj
7591 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 284.647 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 261.277 null ] >>
endobj
7592 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 273.688 null ] >>
-endobj
-97 0 obj
-<< /D [ 7546 0 R /XYZ 79.37 248.234 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 250.318 null ] >>
endobj
7593 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 139.404 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 239.359 null ] >>
endobj
7594 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 128.445 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 228.4 null ] >>
endobj
7595 0 obj
-<< /D [ 7546 0 R /XYZ 81.077 85.606 null ] >>
-endobj
-7545 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F73 189 0 R /F69 183 0 R /F72 187 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 7550 0 R /XYZ 81.077 217.441 null ] >>
endobj
-7598 0 obj
-<< /Filter /FlateDecode /Length 2470 >>
-stream
-xڵZ[o~ϯ0˻$eq!=)Ŗueɕ\΢"E:clR~pf4x0ó_/PG^|ٌ4!n&%IbIdv#1a>Lg Jd &>0ʮ66+몬M=T 7˗lٴuv0S/#&->G,E38q 塕2͖yW,Z./:% " $p1a>:\;$F
-v|"A,M|1\ X"*% EwpvY>:1Nsȑax3m}m3--SӠ-zhogj[&1Q(EkW<>芘=ȹ;n7L6G1;ѥ3) E~ߙ}sXc) ۱6?9L#6P&רgnmQ
-caR{v%(Ժ-@|j
-cC%Y-Bg`[,3! 2= Q(՞+<nze
-p0Ia^ V$f4Rw^5j A}!Rv\%;~.Ty~]_l;_:]k0eXh7ݧ}xؓ8c}ERE_bđŘRrUyu0:.zL.ԷOR$(uu"]<M.g) '」GS:qr-
-= )C9۶M_,b֧ydƑGK`JfIЧt(ԩ>CJ )TPUy=4NTs":˨;7ȁi.e~_'F*rU扊ީ!ɖ:˨*n5.>Q@bYSMau]]D$
-HOܶŲTO.D4kS`)®JcSH`> 8DmI3dvo!/{bnKQ#eƪa"8ޞ
-M6:N"0#qڼԟthźR:k+(ú9d,ӽnv*<B!gl=RҖnjM} _2Ċq.XQ}{6*#Uo9BP~$LXmu9Is~$1M@oϢ/oWŹPog9 y& ><G`r=@@Z 7,/ _y9TV)jg >[~)m,_u<+mWCHc$a #U_B_ԯ e4X $G_>=tީbΩA>zWwT߅&L\0$A `DJ1%A#98b}MrP"3Qjv{?MA#
-endstream
+7596 0 obj
+<< /D [ 7550 0 R /XYZ 81.077 201.501 null ] >>
endobj
7597 0 obj
-<< /Type /Page /Contents 7598 0 R /Resources 7596 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7550 0 R /XYZ 81.077 190.542 null ] >>
+endobj
+7598 0 obj
+<< /D [ 7550 0 R /XYZ 81.077 179.583 null ] >>
endobj
7599 0 obj
-<< /D [ 7597 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 168.624 null ] >>
endobj
7600 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 157.665 null ] >>
endobj
7601 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 146.706 null ] >>
endobj
7602 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 135.748 null ] >>
endobj
7603 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 124.789 null ] >>
endobj
7604 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 113.83 null ] >>
endobj
7605 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 102.871 null ] >>
endobj
7606 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 91.912 null ] >>
endobj
7607 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 7550 0 R /XYZ 81.077 80.953 null ] >>
endobj
-7608 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 681.16 null ] >>
-endobj
-7609 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 670.202 null ] >>
+7549 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F80 749 0 R /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7610 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 659.243 null ] >>
+<< /Filter /FlateDecode /Length 2248 >>
+stream
+xڭZ[o۸~ϯ0hX%f_-!8`q]$:$7~QbNo8gFƋ^r }9U0=#0 /"HtJ$DT,z{%"CJJÌo:Z#_[[J6SpNMbTohJA>q*҅L3R NjH¹7")vݒId]7UѴ+
+XK%}Q&!I(Q| LBZsX vN([Bmy4m˼qϪM/L&fO?M㧗(mݿ$Sn70~S~×yz_l !MВ{1iM_7mFdɣQ&}o,i?j;þ+,z3S>}5׸ygĬI8F )L[ȈRĥS]`tb}Ua"f|HZx\=4uWbsy
+.gWE
+Zەj 6ݮQ^`Z%a瓵q{//H2eշv{`o=9\7qsxjlUS:`BH
+wl}Z\kꟁ66!`̃a|6os8!ioC ϳ!M!Z+ZoѦy=Mp vsKn˶[UYm˪^XόQҨ#@?GM!af.Wcj׬y[\VՕгωi KAƣ
+gqzst!%ʲB~WXK8e<ձjݷb9_=)
+FsVdT R_,HUSw_hy%ćUFE}UT+k
+ 0inu;ۂ :4ׇo3Qe}"f&p=Jn X$&%~cCtFG^8 –_Ecpʌ"|/xTs<@T)1ӟ7QYHr;XE{b͗)7EW4۾"K z|[{;צM,lFgܞv=uRW7[PĹV~]l6llןq؞rD8 9{2]!))8I64--
+u75l>Qt#p =k$?m.RUpoܙia#NxF " 12 $cu良QB'h47يa(,kcϖVg+9GsK$))_w{OBjSe[}o`>O:튇6Xk
+endstream
+endobj
+7609 0 obj
+<< /Type /Page /Contents 7610 0 R /Resources 7608 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7337 0 R >>
endobj
7611 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 7609 0 R /XYZ 78.37 808.885 null ] >>
endobj
7612 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 768.832 null ] >>
endobj
7613 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 757.873 null ] >>
endobj
7614 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 746.914 null ] >>
+endobj
+97 0 obj
+<< /D [ 7609 0 R /XYZ 79.37 722.92 null ] >>
endobj
7615 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 586.515 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 614.786 null ] >>
endobj
7616 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 575.556 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 603.827 null ] >>
endobj
7617 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 561.718 null ] >>
endobj
7618 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 550.759 null ] >>
endobj
7619 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 539.8 null ] >>
endobj
7620 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 528.841 null ] >>
endobj
7621 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 517.882 null ] >>
endobj
7622 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 506.923 null ] >>
endobj
7623 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 495.964 null ] >>
endobj
7624 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 301.584 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 485.006 null ] >>
endobj
7625 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 290.625 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 474.047 null ] >>
endobj
7626 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 211.92 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 463.088 null ] >>
endobj
7627 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 200.961 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 452.129 null ] >>
endobj
7628 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 190.002 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 441.17 null ] >>
endobj
7629 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 179.043 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 430.211 null ] >>
endobj
7630 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 168.085 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 419.252 null ] >>
endobj
7631 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 408.293 null ] >>
endobj
7632 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 397.334 null ] >>
endobj
7633 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 368.929 null ] >>
endobj
7634 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 357.971 null ] >>
endobj
7635 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 305.655 null ] >>
endobj
7636 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 294.696 null ] >>
endobj
7637 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 283.738 null ] >>
endobj
7638 0 obj
-<< /D [ 7597 0 R /XYZ 81.077 80.413 null ] >>
-endobj
-7596 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 7609 0 R /XYZ 81.077 272.779 null ] >>
endobj
-7641 0 obj
-<< /Filter /FlateDecode /Length 1810 >>
-stream
-xڵZKo8W6,6S=l AvĨmR7 Ejh\7XyGN'tvDUWş﯍H,|r`D331v3w◟oZ%NkaC00hE~nd+J^'[Y"џ<_'JqUrKZ;k'i /ϽBmrv !Y26))CU/k.>0+t!/¹8 dndfn
-!OvnWF勣III$nR "4i!d,PL<Ղ Z&UnuM ˬYY9=ٷt=,DةrNT7
-TYM8@h25ώZ}J3C:C@3{8c`dT c>*kO az.0Bo`,Q>:
-^ ՞.iB
-ZW.bat$N P!/+BO#4^61A/IU[ht}=f_iMS54nj&]
-5uiX(Wa>@æ>[.*[Evǰ" TZb(AʀgՌy>VnGM' KB^Mmd(*CA ^_Jbθe tۯkr ?F$
-Q?5Q1(@ ?.hV?s|&\㬝Z_ ~R_u9 \QARɢc|Nz 9ItL Y:7ѱ2mvHvE^f2Yy!1a
-aM&&By&h)GFכ̺~*:J
-endstream
+7639 0 obj
+<< /D [ 7609 0 R /XYZ 81.077 261.82 null ] >>
endobj
7640 0 obj
-<< /Type /Page /Contents 7641 0 R /Resources 7639 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7609 0 R /XYZ 81.077 250.861 null ] >>
+endobj
+7641 0 obj
+<< /D [ 7609 0 R /XYZ 81.077 239.902 null ] >>
endobj
7642 0 obj
-<< /D [ 7640 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 89.596 null ] >>
endobj
7643 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7609 0 R /XYZ 81.077 78.637 null ] >>
endobj
-7644 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 757.873 null ] >>
-endobj
-7645 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 746.914 null ] >>
+7608 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7646 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 735.955 null ] >>
+<< /Filter /FlateDecode /Length 1798 >>
+stream
+xڽZKoFWȡPm)(P'=4@˔MD"RK ;YnCq4ݍ\_|dn\tFaFF3B5]Fdc+OUY{_zWy[Y^݆8WEU/JeyS7b;s2{su9<-6ɛ8x~h._gbNkP3JGa󺩊& ajgٴv=%y'2kp-ڢYU}9eFo2ߴX[?9e8B fQU /pfYot<T&Du[.{)\{\TE^u<ٲ82qB$a<f7C?}PrPLir8Ԅ BE:pS`Zs]> r9kW|vSWyeU.}SoN6t_tF;d#[9,&a&pBlQ?T!)Q>%#IeY[M43#NGiLx@Q>^j7d-8%Fm5l/7j<Q\&D9Z!3)vhYU< ?}:Nx5 Ƣ.RñwlӫL~?&Mqȿ-@p 9sZ&wE)E2qQE
+A蹥$87?rnGAm/33Vzu,+v1_N|
+)"|
+}reE8 :ًɻ 6XH%Fƒ-n!:қJ'wc2DImb?mJc6GxFa%:P{8AG+Y"%7s=
+xqq
+X%ɕǧ* uPq^Zo}~pENl2kXHڽ}gp!NJA(SM{3ǃؘDM@VK l[3= )hYCJnʒCI]k4ZK9о2G>'htdа2[NgQ3Ay/|pzƠ]s.`>a_hKqe?AQ0D 12}d6>afLl-y>Q/}z.(k8oYĹq1AZ UF¸/ 5Uũ jg YzjMXM#S8T!R%^hZ$%tT
+endstream
+endobj
+7645 0 obj
+<< /Type /Page /Contents 7646 0 R /Resources 7644 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7337 0 R >>
endobj
7647 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7645 0 R /XYZ 78.37 808.885 null ] >>
endobj
7648 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 696.104 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 707.063 null ] >>
endobj
7649 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 685.146 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 696.104 null ] >>
endobj
7650 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 674.187 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 685.146 null ] >>
endobj
7651 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 663.228 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 674.187 null ] >>
endobj
7652 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 663.228 null ] >>
endobj
7653 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 652.269 null ] >>
endobj
7654 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 641.31 null ] >>
endobj
7655 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 619.392 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 630.351 null ] >>
endobj
7656 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 608.433 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 619.392 null ] >>
endobj
7657 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 597.474 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 608.433 null ] >>
endobj
7658 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 586.515 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 597.474 null ] >>
endobj
7659 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 575.556 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 586.515 null ] >>
endobj
7660 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 564.598 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 575.556 null ] >>
endobj
7661 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 553.639 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 564.598 null ] >>
endobj
7662 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 542.68 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 553.639 null ] >>
endobj
7663 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 531.721 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 542.68 null ] >>
endobj
7664 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 520.762 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 531.721 null ] >>
endobj
7665 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 509.803 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 520.762 null ] >>
endobj
7666 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 480.911 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 491.87 null ] >>
endobj
7667 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 469.953 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 480.911 null ] >>
endobj
7668 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 469.953 null ] >>
endobj
7669 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 458.994 null ] >>
endobj
7670 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 448.035 null ] >>
endobj
7671 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 437.076 null ] >>
endobj
7672 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 397.225 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 426.117 null ] >>
endobj
7673 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 386.266 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 415.158 null ] >>
endobj
7674 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 404.199 null ] >>
endobj
7675 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 393.24 null ] >>
endobj
7676 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 382.281 null ] >>
endobj
7677 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 371.322 null ] >>
endobj
7678 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 360.363 null ] >>
endobj
7679 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 349.405 null ] >>
endobj
7680 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 309.554 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 338.446 null ] >>
endobj
7681 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 298.595 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 327.487 null ] >>
endobj
7682 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 287.636 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 316.528 null ] >>
endobj
7683 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 276.677 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 305.569 null ] >>
endobj
7684 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 265.718 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 276.677 null ] >>
endobj
7685 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 254.759 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 265.718 null ] >>
endobj
7686 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 243.801 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 236.827 null ] >>
endobj
7687 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 232.842 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 225.868 null ] >>
endobj
7688 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 221.883 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 214.909 null ] >>
endobj
7689 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 210.924 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 203.95 null ] >>
endobj
7690 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 199.965 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 192.991 null ] >>
endobj
7691 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 182.032 null ] >>
endobj
7692 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 171.073 null ] >>
endobj
7693 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 160.114 null ] >>
endobj
7694 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 149.155 null ] >>
endobj
7695 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 138.197 null ] >>
endobj
7696 0 obj
-<< /D [ 7640 0 R /XYZ 81.077 80.413 null ] >>
+<< /D [ 7645 0 R /XYZ 81.077 127.238 null ] >>
endobj
-7639 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F23 660 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7699 0 obj
-<< /Filter /FlateDecode /Length 1799 >>
-stream
-xڵY[o6~ϯbXh8_l-3뾤OMa(cK,7CQE;x$? y>}cKߏ?\`Lg೛EtfVhFfL[/W,qZ ;3A S2ER\eL\t[TEQ׋^ܭuW18&wXu
-<ZgN1"JxBch{hʈc {.exl,ry=q/N|LJV Z5zh b.epޞe3N;i9%F]
-goQ4p2Kɳ*lu"Zp8E%N((S ɉ^:{8⌊,0hE{O;BY u&O,ΦϞ|{\.Th:m bE{OBO!{\ M>xNd<X<Afs~U+lifq=Ee3 ۶i )/
-u$XNQѲDxF8C] pR'r ٰY<-]桼Fee})XG6&;?!/(wmӺ1~Sf@kyt0T٪Y×ɞ
-߇j+X5ڼږaqm7~hֻM ?,NS//5^:˼
-],UUZ'޴poqH*9sK&ht" E ڇ
-WC{'YCÏHS({'hscDјMpz:$7e2"4jO6Lx5qhuᝠ>}q8ug^ǴGRf /PRͬgQ4vb~˧6z}o0o^ ~Ip_|Aj }'p|Ý&ŨE z|.WuESr$VWh!+pGQzp588E$
-endstream
+7697 0 obj
+<< /D [ 7645 0 R /XYZ 81.077 116.279 null ] >>
endobj
7698 0 obj
-<< /Type /Page /Contents 7699 0 R /Resources 7697 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7645 0 R /XYZ 81.077 105.32 null ] >>
endobj
-7700 0 obj
-<< /D [ 7698 0 R /XYZ 78.37 808.885 null ] >>
+7699 0 obj
+<< /D [ 7645 0 R /XYZ 81.077 94.361 null ] >>
endobj
-7701 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 768.832 null ] >>
+7700 0 obj
+<< /D [ 7645 0 R /XYZ 81.077 83.402 null ] >>
endobj
-7702 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 757.873 null ] >>
+7644 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F23 660 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7703 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 742.541 null ] >>
+<< /Filter /FlateDecode /Length 1816 >>
+stream
+xڭYo6~_!/603M*X[`iّm!J.HѢڢ>2OxwrGp7"aOWn>*6(ф"<"#-$j$AXfXj'uQ&#)I".7>7i],W]ict`At(+ u]:2w<_w)0&D8h>u2y̷hvT#gdžAse(^6&[* DTJ/[ aR-[&1l9L6<D1xjlB]h+#IF @}JqB!WdT2^Tu5jRK;ue|Q*oVym3;gNnUQX଱s<50A쫪|pBV);>3`3z<7vW:hVיYVZU r-/#o!D"[Ϊ/'(`
+zcH଀f"[lg鬪֧iY)A9Y{8O>wG^ߣJ5L&2tMNc#.7=)abi1FTZ{U^srsuOC f':.&Xd^a
+
+2~Ҳ F8lh}ԲҪ댴]fmePYa>eڦZ?oʝ6oH'
+"̗R$؇*(Iitԟ;߮rZb噻Y]7Kk+?U^;ulOk˽MQM{HBb:^`sh#
+|dJj0 wptӦ Q/(NN6'ݥ])if`6P|4*)
+M0oWh S SFEh^=:_b uWhpU.|ETϤ=J sO<8}ny]¶Sɾt!^VqtQ* sxAhcg';.
+1N!
+?ܷ KŻ Q탣㍦Px/qM>E9@m72oH o"胻bˑNvba2p"%T(Qʉ]V
+endstream
+endobj
+7702 0 obj
+<< /Type /Page /Contents 7703 0 R /Resources 7701 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7337 0 R >>
endobj
7704 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 731.582 null ] >>
+<< /D [ 7702 0 R /XYZ 78.37 808.885 null ] >>
endobj
7705 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 720.623 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 768.832 null ] >>
endobj
7706 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 709.664 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 757.873 null ] >>
endobj
7707 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 698.705 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 746.914 null ] >>
endobj
7708 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 687.746 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 735.955 null ] >>
endobj
7709 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 676.787 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 724.996 null ] >>
endobj
7710 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 665.829 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 714.037 null ] >>
endobj
7711 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 654.87 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 703.078 null ] >>
endobj
7712 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 643.911 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 692.119 null ] >>
endobj
7713 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 632.952 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 627.362 null ] >>
endobj
7714 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 621.993 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 616.403 null ] >>
endobj
7715 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 611.034 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 605.444 null ] >>
endobj
7716 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 600.075 null ] >>
-endobj
-101 0 obj
-<< /D [ 7698 0 R /XYZ 79.37 576.445 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 594.486 null ] >>
endobj
7717 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 482.129 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 583.527 null ] >>
endobj
7718 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 443.107 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 572.568 null ] >>
endobj
7719 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 432.148 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 561.609 null ] >>
endobj
7720 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 421.189 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 550.65 null ] >>
endobj
7721 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 410.23 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 534.71 null ] >>
endobj
7722 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 399.271 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 523.751 null ] >>
endobj
7723 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 388.312 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 512.792 null ] >>
endobj
7724 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 377.354 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 501.833 null ] >>
endobj
7725 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 366.395 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 490.874 null ] >>
endobj
7726 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 355.436 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 479.915 null ] >>
endobj
7727 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 326.68 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 468.956 null ] >>
endobj
7728 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 315.722 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 457.997 null ] >>
endobj
7729 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 304.763 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 447.038 null ] >>
endobj
7730 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 293.804 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 436.08 null ] >>
endobj
7731 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 282.845 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 425.121 null ] >>
endobj
7732 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 271.886 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 414.162 null ] >>
endobj
7733 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 260.927 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 403.203 null ] >>
endobj
7734 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 249.968 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 392.244 null ] >>
+endobj
+101 0 obj
+<< /D [ 7702 0 R /XYZ 79.37 366.789 null ] >>
endobj
7735 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 239.009 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 271.907 null ] >>
endobj
7736 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 228.05 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 231.06 null ] >>
endobj
7737 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 217.091 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 220.101 null ] >>
endobj
7738 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 206.132 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 209.142 null ] >>
endobj
7739 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 195.174 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 198.183 null ] >>
endobj
7740 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 184.215 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 187.225 null ] >>
endobj
7741 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 173.256 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 176.266 null ] >>
endobj
7742 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 162.297 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 165.307 null ] >>
endobj
7743 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 151.338 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 154.348 null ] >>
endobj
7744 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 140.379 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 143.389 null ] >>
endobj
7745 0 obj
-<< /D [ 7698 0 R /XYZ 81.077 129.42 null ] >>
+<< /D [ 7702 0 R /XYZ 81.077 112.505 null ] >>
endobj
-7697 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7748 0 obj
-<< /Filter /FlateDecode /Length 2687 >>
-stream
-xڭZo߿oU W&p9@eG{䍃7,*-}dÙ!7ä"]!히7뇟>|tVI/@˅/$Bq|߇k}z!1QCto"7ǛHRR]~Yeps gͱ.ݝeD!(G+߶SJ#CujeXa([trl{+J3/oLuU{k>䕓R Ґ]vhYxQN1#1p~tNQ8z-h}+/#qC-"Yoh~̛4i.oװ)MnIfV~9S%Y ƒM:Tqʒts ӫs1Y}ko~`[Y +(N@X/K5"^Fy,d(nnuw
-f.Br"Z($Dlgֈçתڛ[{[_eǶZP6b> ER}^h1Oh&8bX.
-Qbk]y,cTev<G~9=?mvg-2g ryHJӄб1y'$CӤqF;"[JDȈlY횼]`d&@1`Q_w<8Nu.
-1
-Eڡ(eyQ9"
-\~,|= #M|͙XJVN3yBG{6e9l7ny4-Pf'40S@A!K#Fc, NVϫm 4D5w++L(Ae
--
-w sT7e\{(C]g._6)oǦ2%P|v(cM9(I)(CREY֐8Fz:zPþ~|e^,8A+#F+sOt.U9Ġb}@!,=wFd7>ֹ}![UM5sF2~ foCs~ T^w,!tZ!1"o,R .Y,@*.xuV8̈1N `}:`kޛ/{6E z4n!ᗔ=C C
-ZLqJ.wr$ ܳWvԼy%Шj֔Qf_*϶S2;6I\m("%b
-{^6BOMuL6EiH0MG>_r^m<A>ØG9LI(
-gxOwoyѐh+M A$ ?Z¥2!3~TʽImN`'2oe!1}B
-1dWF9ɐA~ %F 1g\R%
-endstream
+7746 0 obj
+<< /D [ 7702 0 R /XYZ 81.077 101.546 null ] >>
endobj
7747 0 obj
-<< /Type /Page /Contents 7748 0 R /Resources 7746 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7338 0 R >>
+<< /D [ 7702 0 R /XYZ 81.077 90.587 null ] >>
endobj
-7749 0 obj
-<< /D [ 7747 0 R /XYZ 78.37 808.885 null ] >>
+7748 0 obj
+<< /D [ 7702 0 R /XYZ 81.077 79.628 null ] >>
endobj
-7750 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 768.832 null ] >>
+7701 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7751 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 757.873 null ] >>
+<< /Filter /FlateDecode /Length 2202 >>
+stream
+xڽZ[o~ϯ0PU]x'tɢ 4}X?,S,;RV-*L//BsxnV.ŏWxE~X]}tVjsaR %r!Fnk$g\VBZ`Lb$_0e_6inYUs£W{,ߥ]SPW;G{bŽ2#2)ڬ쾮ˤ,V+0O}W'Y]wU<!1`T#̨#-.#M,g>5X6Q+d ekᑇ6]I~(n`ᎌ AE}`H]zH,YT]oqhkt;}cn=:l=Stbr-ds>vE{ܨͶ]vtV봫3U QS|!SV>453.vf'?0-@ı'<pA:7.e9&3s`#&fG\~piydÔ:E&[B9 .+ĵsBE".;HP,ŅcD{h+- ""5rG$_XQ
+ggsϣ[sM
+>cd)<O\ ,4x<ߘ
+endstream
+endobj
+7750 0 obj
+<< /Type /Page /Contents 7751 0 R /Resources 7749 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7337 0 R >>
endobj
7752 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 717.026 null ] >>
+<< /D [ 7750 0 R /XYZ 78.37 808.885 null ] >>
endobj
7753 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 706.067 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 768.832 null ] >>
endobj
7754 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 695.108 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 757.873 null ] >>
endobj
7755 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 684.149 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 746.914 null ] >>
endobj
7756 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 673.19 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 735.955 null ] >>
endobj
7757 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 662.231 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 724.996 null ] >>
endobj
7758 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 651.273 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 714.037 null ] >>
endobj
7759 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 640.314 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 703.078 null ] >>
endobj
7760 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 629.355 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 692.119 null ] >>
endobj
7761 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 600.463 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 681.16 null ] >>
endobj
7762 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 589.504 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 670.202 null ] >>
endobj
7763 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 578.545 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 659.243 null ] >>
endobj
7764 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 567.586 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 648.284 null ] >>
endobj
7765 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 556.627 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 637.325 null ] >>
endobj
7766 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 545.669 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 626.366 null ] >>
endobj
7767 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 534.71 null ] >>
-endobj
-105 0 obj
-<< /D [ 7747 0 R /XYZ 79.37 523.203 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 615.407 null ] >>
endobj
7768 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 443.209 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 555.244 null ] >>
endobj
7769 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 432.25 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 544.285 null ] >>
endobj
7770 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 367.493 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 503.682 null ] >>
endobj
7771 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 356.534 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 492.723 null ] >>
endobj
7772 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 345.575 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 481.764 null ] >>
endobj
7773 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 334.616 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 470.805 null ] >>
endobj
7774 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 323.657 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 459.846 null ] >>
endobj
7775 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 312.698 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 448.887 null ] >>
endobj
7776 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 301.739 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 437.928 null ] >>
endobj
7777 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 290.78 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 426.969 null ] >>
endobj
7778 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 279.822 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 416.01 null ] >>
endobj
7779 0 obj
-<< /D [ 7747 0 R /XYZ 81.077 268.863 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 387.362 null ] >>
endobj
-7746 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F72 187 0 R /F26 662 0 R /F82 811 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7782 0 obj
-<< /Filter /FlateDecode /Length 2282 >>
-stream
-xZ[o6~_]hX/y
-/فNDt:cIgIdb
-UwQnA*ۻ_m?J]Q>jP}7JיZCc[dAf-K<Lc~&o*1»{=;!<\/t c[(O[qd4at I0ZjM\>}N%ؘ Cbp'y)͡| +zs{(m]k5RgCUo}qo>on2TϩcKmahlhb&ۙ)vӴaE.)uvSWOx}h{oӶj]-EJ!擠_6<FϪTHP 6H@Sm~Zgw6<kߓDaA+&xH` qTIQ 4K~0$A=Zmyc\$UPҤy>6HѐD N ctb4
-4 hkz4Td1 hĆ&<&5¡
-I˴\P\&).
-.Q!{
-aΨL=^%:\0)"ȹQh uS5ZԘbg6(a.]-کyi?dmY[k2;fmWV͙D
-LKr"LK3Q'}U(qqQgz<t>k>.sنk{^г!w]+9rΑGo!k}fQBfta? da(EZ B^)Pb=8p7oݥk;O^>z6s}aNyL`>bX# Pb]m]䏽)>м/JTkJtdAVnmΔ()$'*Eyi!O46Uv?YY9w#
-YN4ET ԅ'C"^R
-Qzv7[ONH P:s˶`LbؐdctrMz b/X41z(VzqZz/bXpsK!괵 MfuP wmKy',)]<S[L2N 0d67q^Vdə@"~ Y9)Ns0(#(3 
-56&J^(\ _ Nj6s<[_/bNj 8^Y"yGo(#_EݦqMEdGA]j0%eYѹۅSd4<k˗U)YG}eI^QJ$ G试Q,F#t2 #@,I'
-,5\dWA#")#{90ϸu6>0'MN _TJ
-:}l! _TJʼ:}l _<ʒ"LAykuXRGtp鞸B%nta_jwחFzݸZc)?)n@h[?ՎZ|:>:V>Qciq  )/I;5);I:''(LӾkτfKi9DJ1tl>[–8gNj_,XFcdwE }
-endstream
+7780 0 obj
+<< /D [ 7750 0 R /XYZ 81.077 376.403 null ] >>
endobj
7781 0 obj
-<< /Type /Page /Contents 7782 0 R /Resources 7780 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 7750 0 R /XYZ 81.077 365.444 null ] >>
+endobj
+7782 0 obj
+<< /D [ 7750 0 R /XYZ 81.077 354.486 null ] >>
endobj
7783 0 obj
-<< /D [ 7781 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 343.527 null ] >>
endobj
7784 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 719.129 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 332.568 null ] >>
endobj
7785 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 708.17 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 321.609 null ] >>
+endobj
+105 0 obj
+<< /D [ 7750 0 R /XYZ 79.37 310.224 null ] >>
endobj
7786 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 697.211 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 230.335 null ] >>
endobj
7787 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 686.252 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 219.376 null ] >>
endobj
7788 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 675.293 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 155.349 null ] >>
endobj
7789 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 664.334 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 144.39 null ] >>
endobj
7790 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 653.375 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 133.431 null ] >>
endobj
7791 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 642.416 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 122.473 null ] >>
endobj
7792 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 631.458 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 111.514 null ] >>
endobj
7793 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 620.499 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 100.555 null ] >>
endobj
7794 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 609.54 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 89.596 null ] >>
endobj
7795 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 598.581 null ] >>
-endobj
-7796 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 587.622 null ] >>
+<< /D [ 7750 0 R /XYZ 81.077 78.637 null ] >>
endobj
-7797 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 576.663 null ] >>
+7749 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F72 187 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7798 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 565.704 null ] >>
+<< /Filter /FlateDecode /Length 2852 >>
+stream
+xZIoW)rNFh|A(F7&)cB6C,rUUxs_ {͛w׊m820{C#!-$j$AXqF]Xﮥhddz& #"x~q)~$îps~vؽ;d}+ۼُίγ6~secK\ Ӟ++B"F]1
+j%Ӝr&Ӭ%`!N={en62r\D
+!ӹj)d,*Dcw/Y5Q9F!M |B㣛[P4dÈ}~8JGn':-T|<X!"+%.).b*\vqc肎04Ͷ^R2çu #tD@ɤM tF5#C:5: AJiAT:L=R$d,$ho6All~ 7X *!k-b%. ٻn0ltߩP8XN= `HM4/ ծ eқ}\\s$(rJ+ɺaY
+Ӵ0a.GU6@ѱ"1iPk¦-ÔѰ=H"#H=Gҁ)]SmBq9ϕ0 =L22BLS۾]o/E.,/Mq. r>PJu//a.";9j>~@Б|ٞ~1<H ׸ '$@T-£V MѷͺV4fWϻS]Vé{͗ d `GSU-Vb&F[ek{"tȯC9ڞ+u
+|~~w0mf)AIBo4i%BUjssC"h[^WV/^.a'/rr9}J^O>O#ovx>%.!!r= 4\W?\N-+<Q3OǶu'=:LxBt~NPp|0&MCt'CpF5~3dCGBxW8u,Od}"4!GV<߱f%_M/IExF5'-Rۘ> ?p<(l{ͧ5j߉7WÇW6lP+vY>:@vrFO{HC]2l7@UHHXUFBPk??'$Unn5w5v^G,|/*\-P
+E˅ Cl",ulCs=0Ϗ%5o̺$lwNb_Sri6&0d6fwmώ'UBcn풘,DKmUN(8CNxr6kpRqn՟ad/K93}:JL 龈qY1Е(C_҆db(CXy%]WJ`x֮68|
+8ʌ3>2 5(Pb[m]OA>z|
+֫-<JùТ`zzlp!YY81E!5ŔU}FYCd ~>$
+!"G;n* kI!VvFY3u@\'*x5SrYVuF GgTaʂI Z#e ]ڨ;ߜN'@10هMe}NEi>(S'R
+Q:B*H%kj8?##Fi\8їds6ʚƢ9уEEWO'F7W.O)L[!ڒ_l\?|%C[ve2kg
+ArNxQa,a1Bkʤ^o
+XC$N
+(cwO) LZWᐮtl2(#K11$r12"Cav{@oj
+endstream
+endobj
+7797 0 obj
+<< /Type /Page /Contents 7798 0 R /Resources 7796 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7834 0 R >>
endobj
7799 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 554.745 null ] >>
+<< /D [ 7797 0 R /XYZ 78.37 808.885 null ] >>
endobj
7800 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 526.074 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 768.832 null ] >>
endobj
7801 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 515.115 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 757.873 null ] >>
endobj
7802 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 504.156 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 519.766 null ] >>
endobj
7803 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 493.197 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 508.807 null ] >>
endobj
7804 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 452.571 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 497.848 null ] >>
endobj
7805 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 441.612 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 486.889 null ] >>
endobj
7806 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 430.653 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 475.93 null ] >>
endobj
7807 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 390.027 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 464.971 null ] >>
endobj
7808 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 379.068 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 454.012 null ] >>
endobj
7809 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 368.109 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 443.053 null ] >>
endobj
7810 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 357.15 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 432.094 null ] >>
endobj
7811 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 346.191 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 421.136 null ] >>
endobj
7812 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 335.232 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 410.177 null ] >>
endobj
7813 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 324.273 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 399.218 null ] >>
endobj
7814 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 313.314 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 388.259 null ] >>
endobj
7815 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 302.355 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 377.3 null ] >>
endobj
7816 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 261.729 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 366.341 null ] >>
endobj
7817 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 250.77 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 355.382 null ] >>
endobj
7818 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 239.811 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 326.49 null ] >>
endobj
7819 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 228.852 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 315.532 null ] >>
endobj
7820 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 217.893 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 304.573 null ] >>
endobj
7821 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 206.935 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 293.614 null ] >>
endobj
7822 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 195.976 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 252.767 null ] >>
endobj
7823 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 185.017 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 241.808 null ] >>
endobj
7824 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 174.058 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 230.849 null ] >>
endobj
7825 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 163.099 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 190.002 null ] >>
endobj
7826 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 152.14 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 179.043 null ] >>
endobj
7827 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 168.085 null ] >>
endobj
7828 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 157.126 null ] >>
endobj
7829 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 146.167 null ] >>
endobj
7830 0 obj
-<< /D [ 7781 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 7797 0 R /XYZ 81.077 135.208 null ] >>
endobj
-7780 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F26 662 0 R /F20 186 0 R /F82 811 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7835 0 obj
-<< /Filter /FlateDecode /Length 1936 >>
-stream
-xZKoFW(fM
-T%*.\YN8v Krٙݙofⶠ7Gn.^1Y&xq`0hf
-7◙v^>zFc0ЊwڊFyZM[[Y"ѿ2!_ku{]_^)@o*\u}y&Eo8;hrzɖY[mGv{jwz'Rn 2YpџuB2C8WR1OTuZ[L[[@<(kk&-)?~!燶?u~S]z8W/n;mmDHlS}hF@ ĥQj flwm}VFs"E"}aPΝku<T׋ x7\<˗na7A1"M>24$LcCe ~.{'K\ПRN3KK@r]|ƾT-Rʑt^\MJ924~ma6=11F ~k9G,aYdo=T\bUa
-ú]7uS۪*Z;Їé8FԽ6ՇnWMaW*7vFSѩ(N1m(:m70  "[*hv],]6.s{.-:`c|' SrAeLX`{28`Ԍhz"= .ʤWǬPJ%EĹכMw4~${Ɠq
-AFp9G*
-N
-XrN9)3`~ԍ0xz+2WϠkJz+2RJEMG RO+ $晄4:T7Ntg *@GwF=n ;MM3'J3Շ "!JTEIQ fHMe&$-GĜ8#>C1pG=_a t !x 8wF*3% zQn«Ef\װ(Y(EqE*cH?Ѧ=MxfuU-'LW?\W?es<p0#m?124+ 6L$\: ܃,82_p(Bb;]őI\H@7N n&I3nQ]Mt5hL51CSpMMF75)bFᚚ [I(\S_F;45
-dhjАR㚚 =s0uѝUcd(',Wfg̐O9(DU*{5П
-kofU8P0K+fh0ǡ֘ 2BYmvNڠ6.C3p(NLAQ~s*~I7sww2-2s
-T?-7(o9X̊wx ?Hw<6O?"f
-Qħ-uض+
-LG%)' N*.8XL
-endstream
+7831 0 obj
+<< /D [ 7797 0 R /XYZ 81.077 124.249 null ] >>
endobj
-7834 0 obj
-<< /Type /Page /Contents 7835 0 R /Resources 7833 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R /Annots 7882 0 R >>
+7832 0 obj
+<< /D [ 7797 0 R /XYZ 81.077 113.29 null ] >>
endobj
-7882 0 obj
-[ 7832 0 R ]
+7833 0 obj
+<< /D [ 7797 0 R /XYZ 81.077 102.331 null ] >>
endobj
-7832 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 228.711 364.603 239.144 376.54 ]/A << /S /GoTo /D (Hfootnote.14) >> >>
+7796 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R /F82 811 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-7836 0 obj
-<< /D [ 7834 0 R /XYZ 78.37 808.885 null ] >>
+7838 0 obj
+<< /Filter /FlateDecode /Length 2332 >>
+stream
+xڽZMo8Wa#
+ZncQ y. RF'!"'_EI5!OϢ "BW0 n_MYٍoɛLCxO퇯' Z#e ͊
+q|ic j
+
+2"tgHevcΠΛ,>MuH7QJ;TctەهheofnٮNNy]NY7F ܢ+0^bb-1!rΊn&VL\cL& oiԏ)-yx,PDf|\$d-]gV2!@7  -})K~IKuemweN I!&-$莌!{
+\}-ϊ\vSq>;} C.1l|#;vLS7n1 4ŴֈBBp 72MjGyҾMVLHd9Rm_w>&;S# X m 1"Nw8!N3M=E .Y9(p$G qq<::1%T++BJ&!P̅!U(ly(|1bLö kֵ\CnQ-J EQQq}eb
+endstream
endobj
7837 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 768.832 null ] >>
+<< /Type /Page /Contents 7838 0 R /Resources 7836 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7834 0 R /Annots 7883 0 R >>
endobj
-7838 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 757.873 null ] >>
+7883 0 obj
+[ 7835 0 R ]
+endobj
+7835 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 228.711 144.429 239.144 156.365 ]/A << /S /GoTo /D (Hfootnote.14) >> >>
endobj
7839 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7837 0 R /XYZ 78.37 808.885 null ] >>
endobj
7840 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 742.929 null ] >>
endobj
7841 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 731.97 null ] >>
endobj
7842 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 721.011 null ] >>
endobj
7843 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 710.052 null ] >>
endobj
7844 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 699.093 null ] >>
endobj
7845 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 688.134 null ] >>
endobj
7846 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 677.175 null ] >>
endobj
7847 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 666.217 null ] >>
endobj
7848 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 655.258 null ] >>
endobj
7849 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 644.299 null ] >>
endobj
7850 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 633.34 null ] >>
endobj
7851 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 592.493 null ] >>
endobj
7852 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 581.534 null ] >>
endobj
7853 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 570.575 null ] >>
endobj
7854 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 559.616 null ] >>
endobj
7855 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 548.657 null ] >>
endobj
7856 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 537.698 null ] >>
endobj
7857 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 526.74 null ] >>
endobj
7858 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 515.781 null ] >>
endobj
7859 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 504.822 null ] >>
endobj
7860 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 493.863 null ] >>
endobj
7861 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 482.904 null ] >>
endobj
7862 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 471.945 null ] >>
endobj
7863 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 460.986 null ] >>
endobj
7864 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 450.027 null ] >>
endobj
7865 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 439.068 null ] >>
endobj
7866 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 428.109 null ] >>
endobj
7867 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 417.151 null ] >>
endobj
7868 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 406.192 null ] >>
endobj
7869 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 395.233 null ] >>
endobj
7870 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 384.274 null ] >>
endobj
7871 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 373.315 null ] >>
endobj
7872 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 318.52 null ] >>
endobj
7873 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 226.864 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 307.561 null ] >>
endobj
7874 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 215.905 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 296.603 null ] >>
endobj
7875 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 199.965 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 285.644 null ] >>
endobj
7876 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 189.006 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 274.685 null ] >>
endobj
7877 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 178.047 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 263.726 null ] >>
endobj
7878 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 167.088 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 220.887 null ] >>
endobj
7879 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 156.129 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 209.928 null ] >>
endobj
7880 0 obj
-<< /D [ 7834 0 R /XYZ 81.077 145.17 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 198.969 null ] >>
endobj
7881 0 obj
-<< /D [ 7834 0 R /XYZ 94.613 82.511 null ] >>
+<< /D [ 7837 0 R /XYZ 81.077 188.01 null ] >>
endobj
-7833 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F22 473 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+7882 0 obj
+<< /D [ 7837 0 R /XYZ 94.613 85.223 null ] >>
endobj
-7885 0 obj
-<< /Filter /FlateDecode /Length 2259 >>
+7836 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F26 662 0 R /F73 189 0 R /F69 183 0 R /F22 473 0 R /F77 480 0 R /F63 205 0 R /F81 768 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+7886 0 obj
+<< /Filter /FlateDecode /Length 1956 >>
stream
-xZKo8W62Sc3氳Ԏ(,wzEQEQDw%D~*֛$^-+"a^YGFFIxAZ"IBI$~DEZgi) È"o!oҲzcT#ӧpnoisko_@^'m^7u59rV0gݳSMUyHUbFDsϞcoQb\t‹!DX"*gGcb
-і}>X籼H#Bb$کgb T!DĀԈc
-Z_ʻ=^brwںƤL>/J']RL[uuPMB%kBh1M 2$,LɥCHa@ \ `|ƈAԈhٷWE!2sZΰ42شh"a"
-I&8D2 {>f0e F +槫94\xyїN*'/їNIʳ!)=m?2Gj8Q3=3 _`sF%| w[^ܹȓ
-nHhaܞ^7v΂9(RDTba!1b=KMf9v7ruJ}nvs2kt)Pm4*`Lx#8 g$!q^N J$HG'|ۤlǰD׾x"qjv{{V tW8$n[3@Ϭ,ltsy Oy۸2@{h(Ȩc
-2 /6:xGqpl-ثR'M{@^lz;XryhN;ȃ)Ų 7]ƀAKm"04ȍ}fLNSEitb @V[(;=g];T4nag=* &<*gp1J!D ڼC7őH$ -2cf=#D 3^ljs z`68
+xZMoFWV 7SТ ڃڂ`dʦ!HiΊjWel_z72 |<Ñ(~<#&8\-Njlr:ΈW?w1QFK1!MVzSż-/.\q{}6y[d|sSdU}]4]S%Xc\ѱ#L[)dYyh"fe )')Vs l˺u~S-"3È b)K^zٔ|QMցűCi׫50Vu]X)" _~sz^7.|j2v(fww84o4 beSy;qL5'R)%. )E+F "kJd4~R![b,)c,_yu5aQI)h;i@Ch<oTt' I9/o'W&e9w2,Nxozr-GPҚ8ѿq3;;Mz:ϫdo.ps;
+͘S2;RN?,ީۦrY*Isi-0< G5%3p|yޖ=C`Ms!\.3ڟ)UwY\t s]Ջ'=܏sÌ-I<J>A?
+:0* %,_1G =8:15<E!M8z13iHT %&]ZhQ>p>OM
+Өv%Aa#R BM_f +kL5G Z|mMAtQt^nWU!zwmwYV/Y6ok:g>.;N{.)!MAs@曶wp_Ѵ>8f} ~F&vkqCCU͡4lAcd;aZfmˬڣ<*O?]|"$EBl0{<n*-'nc4z!)̕KiYC⏋{X6³yVWE)u ^H E=AWǕSX
+wBOo׽uwA
+v,}70s'$TPE[P`ng g1:Y[/?/J:(N ]zlx%Մ\H5JhWVH8Q {c7hpv]X#ɵvBs↏kȝ\gE*4!mD@]&hߕCFb~NGݗ=).0lѝ T \_ſ5"͡D00"*sF
+CaQtq;\ a:H/5aPnP#u1^/WMD>H:;:& g`O} Z5!30\4s}ysCw.Bc)Ph2LjdFTҵ9+%fm j1%hjG pOi_;''%IC ct#c#>ҿVu7ƪ^lw"ZW11I ݏѧM
+bdn%h;N Jc5*FˈM\f"XYmp_AFoGq 7!R:Uj
endstream
endobj
-7884 0 obj
-<< /Type /Page /Contents 7885 0 R /Resources 7883 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
-endobj
-7886 0 obj
-<< /D [ 7884 0 R /XYZ 78.37 808.885 null ] >>
+7885 0 obj
+<< /Type /Page /Contents 7886 0 R /Resources 7884 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7834 0 R >>
endobj
7887 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7885 0 R /XYZ 78.37 808.885 null ] >>
endobj
7888 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 768.832 null ] >>
endobj
7889 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 757.873 null ] >>
endobj
7890 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 746.914 null ] >>
endobj
7891 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 735.955 null ] >>
endobj
7892 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 724.996 null ] >>
endobj
7893 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 714.037 null ] >>
endobj
7894 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 650.276 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 703.078 null ] >>
endobj
7895 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 639.317 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 692.119 null ] >>
endobj
7896 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 628.358 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 681.16 null ] >>
endobj
7897 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 670.202 null ] >>
endobj
7898 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 576.553 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 659.243 null ] >>
endobj
7899 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 565.594 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 644.868 null ] >>
endobj
7900 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 554.635 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 633.91 null ] >>
endobj
7901 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 543.676 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 622.951 null ] >>
endobj
7902 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 532.717 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 611.992 null ] >>
endobj
7903 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 521.758 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 601.033 null ] >>
endobj
7904 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 510.799 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 590.074 null ] >>
endobj
7905 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 499.84 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 549.584 null ] >>
endobj
7906 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 488.882 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 538.625 null ] >>
endobj
7907 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 477.923 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 527.666 null ] >>
endobj
7908 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 466.964 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 516.707 null ] >>
endobj
7909 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 456.005 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 505.748 null ] >>
endobj
7910 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 445.046 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 494.789 null ] >>
endobj
7911 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 434.087 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 483.83 null ] >>
endobj
7912 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 423.128 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 435.726 null ] >>
endobj
7913 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 412.169 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 424.767 null ] >>
endobj
7914 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 401.21 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 413.808 null ] >>
endobj
7915 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 390.251 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 402.849 null ] >>
endobj
7916 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 379.292 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 363.568 null ] >>
endobj
7917 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 368.334 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 352.61 null ] >>
endobj
7918 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 357.375 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 341.651 null ] >>
endobj
7919 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 346.416 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 330.692 null ] >>
endobj
7920 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 335.457 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 319.733 null ] >>
endobj
7921 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 324.498 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 308.774 null ] >>
endobj
7922 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 297.815 null ] >>
endobj
7923 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 286.856 null ] >>
endobj
7924 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 291.621 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 275.897 null ] >>
endobj
7925 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 262.73 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 264.938 null ] >>
endobj
7926 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 251.771 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 253.979 null ] >>
endobj
7927 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 240.812 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 243.021 null ] >>
endobj
7928 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 229.853 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 232.062 null ] >>
endobj
7929 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 218.894 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 221.103 null ] >>
endobj
7930 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 207.935 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 210.144 null ] >>
endobj
7931 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 196.976 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 199.185 null ] >>
endobj
7932 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 188.226 null ] >>
endobj
7933 0 obj
-<< /D [ 7884 0 R /XYZ 81.077 85.395 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 177.267 null ] >>
endobj
-7883 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F82 811 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-7936 0 obj
-<< /Filter /FlateDecode /Length 2119 >>
-stream
-xZMo8WƮY~aQX`}
-BPm9Q+K$' wOq1M˒9oHμ!g3<xO$x퇀8Ҋ0:]x LI$I0 $AX~<D/og
-i)b0IVeۨHOiʲuX
-*i]K
-.ׇg晹[UIjL=M`D0Q<.oL[#__7yzƯy~+U(sӸqn3 * 4baHj
- Jvy+F90. cDeĦ Pi[׻ЌR[3(4ӌ]vX.n܇U(D%xh6ه2^m[퓴 }e,l兔8FEOIQ(I^I (q8zJʏ!z>#㣽B6U&0W'K>1$HW3a?hoy" El: D 6^pny&Qm&HdAs5.Esâ>?3/vYe&E_u}K5[xO߷C?^~|g SZ:0dD҈Y,Wj{xEQ|7<޸v 3jLSTpw@Rƨj7n"plU^$ѺudQ keu\C(wL4)+3"ãv
-WE_ji*(s6}$,gj`qҧ0
-|IꞶyLLjnؽT0K\۲֝|qض L5%&YH*ᶐ={N'bAY
-N
-U@} L='.I1J Yw!~>q!D&od
-[`?sm^Q#5AT~lH{tp[{woG T5`~Tm#s</R!fz_p?6"ذ3|$/+CZ}-"_ld
-qK!⧃qGit(w:D"kCGiA[%`AGiDs$>eJA?QŬϥ ?>L 8p}>ؓKW:(xpC
- K~1ֵ|_ { 5%V3.Ӵ9eKkSkc 4>¨?6"2c4|e% i,$Z,ɁAR&_n/ޢ9)$F6i}9i`f6)Pj|MN6QU$5gN 8iNa+#yHW~y?*n
-endstream
+7934 0 obj
+<< /D [ 7885 0 R /XYZ 81.077 166.308 null ] >>
endobj
7935 0 obj
-<< /Type /Page /Contents 7936 0 R /Resources 7934 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 7885 0 R /XYZ 81.077 155.349 null ] >>
+endobj
+7936 0 obj
+<< /D [ 7885 0 R /XYZ 81.077 144.39 null ] >>
endobj
7937 0 obj
-<< /D [ 7935 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 133.431 null ] >>
endobj
7938 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 122.473 null ] >>
endobj
7939 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 111.514 null ] >>
endobj
7940 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 100.555 null ] >>
endobj
7941 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 89.596 null ] >>
endobj
7942 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 707.972 null ] >>
+<< /D [ 7885 0 R /XYZ 81.077 78.637 null ] >>
endobj
-7943 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 697.013 null ] >>
-endobj
-7944 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 686.055 null ] >>
+7884 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F82 811 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7945 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 675.096 null ] >>
+<< /Filter /FlateDecode /Length 2540 >>
+stream
+xZo:0.6P[d-oaT[IԵԒߌRqd1Fgo]yGfX͵\ܾc@lX"E-n-b2gǣ>^*_0` ' S(bVWş AHϫ5
+ppB.N>wi}t )J
+As]upGu!3V#xu-nzkBZ@4AޞZ1dZ36_(Ddd6H98*FKZ´xRAFlFc3| 2J:wuPL,U[xTWG1
+>8ު\Z禦(>zڪrlUHgo[KU!̤UK#BDA1
+]b\l}J3k>o~g|rgWkANr7 ^pPiB5:!BP_)GR*Fȷ8Ri~g1kBt+mxKX/Z(jfq@Ö퐗Wz|<gX7qzhO/,`qc^,gtUҐ$}N8|<,ק(A8kvR܏$9Rǩx~>p>I(d>iqWG[kB'^GGI!Np
+ёg"b{fr DK_K\i\HG)oR^&QJE
+&zvy\l#A_;A^HJlwقn.n
+endstream
+endobj
+7944 0 obj
+<< /Type /Page /Contents 7945 0 R /Resources 7943 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7834 0 R >>
endobj
7946 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 664.137 null ] >>
+<< /D [ 7944 0 R /XYZ 78.37 808.885 null ] >>
endobj
7947 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 653.178 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 754.884 null ] >>
endobj
7948 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 642.219 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 743.925 null ] >>
endobj
7949 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 631.26 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 732.966 null ] >>
endobj
7950 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 620.301 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 722.007 null ] >>
endobj
7951 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 609.342 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 711.048 null ] >>
endobj
7952 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 598.383 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 700.089 null ] >>
endobj
7953 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 587.424 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 689.131 null ] >>
endobj
7954 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 576.466 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 588.508 null ] >>
endobj
7955 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 565.507 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 577.549 null ] >>
endobj
7956 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 513.614 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 566.59 null ] >>
endobj
7957 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 502.655 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 555.631 null ] >>
endobj
7958 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 491.696 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 544.672 null ] >>
endobj
7959 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 480.737 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 533.713 null ] >>
endobj
7960 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 469.778 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 504.822 null ] >>
endobj
7961 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 442.075 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 493.863 null ] >>
endobj
7962 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 431.117 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 482.904 null ] >>
endobj
7963 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 420.158 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 471.945 null ] >>
endobj
7964 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 409.199 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 460.986 null ] >>
endobj
7965 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 398.24 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 450.027 null ] >>
endobj
7966 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 344.809 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 439.068 null ] >>
endobj
7967 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 333.85 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 428.109 null ] >>
endobj
7968 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 322.891 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 417.151 null ] >>
endobj
7969 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 311.932 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 406.192 null ] >>
endobj
7970 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 300.973 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 395.233 null ] >>
endobj
7971 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 290.014 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 384.274 null ] >>
endobj
7972 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 279.055 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 373.315 null ] >>
endobj
7973 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 268.096 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 362.356 null ] >>
endobj
7974 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 257.138 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 309.554 null ] >>
endobj
7975 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 246.179 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 298.595 null ] >>
endobj
7976 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 235.22 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 287.636 null ] >>
endobj
7977 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 224.261 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 276.677 null ] >>
endobj
7978 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 213.302 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 265.718 null ] >>
endobj
7979 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 202.343 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 234.834 null ] >>
endobj
7980 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 191.384 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 223.875 null ] >>
endobj
7981 0 obj
-<< /D [ 7935 0 R /XYZ 81.077 180.425 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 212.916 null ] >>
endobj
-109 0 obj
-<< /D [ 7935 0 R /XYZ 79.37 159.236 null ] >>
+7982 0 obj
+<< /D [ 7944 0 R /XYZ 81.077 201.957 null ] >>
endobj
-7934 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R /F72 187 0 R >> /ProcSet [ /PDF /Text ] >>
+7983 0 obj
+<< /D [ 7944 0 R /XYZ 81.077 190.999 null ] >>
endobj
7984 0 obj
-<< /Filter /FlateDecode /Length 2196 >>
-stream
-xZ]o6}_>m8HmQdv }.YfbMdɕ}/EU4l`y=hr?&?XMR1d~Ãh'B!*&"(dw:_k*4yUn5laӮFVi@p>~ŔUA#,Fшs^5=LziQVo#/{dovҺNᑱzSh0)#ҦcַΣ風ZΙ>쁻=PuҖ=FE 5St]vX
-puӀ~һcˆ>4tmװqI>6(ܵ=t8
-y7#CLqG
-A' ))Q)BmJD1 t}&"*r`&R奞`'|j/y6u^lKMDs,Q}kp"7G@Y_؋nf宬H.Ymm0^M}!ԎXEg[TUa&Mg#ƛe}̋X8"SZ<"_.u9cȩ\cX$Wu.#' Ęr0s!d
-\EuTs(G<a ]O a\쌮N5S:4̜!:#bDI0C_@
-X9ma4:]q!/ X!!t0п\\".0タÙ@ra*;iTDVnNt7C8R Y\<s$DCD E Y=뙢ޓ0Ћ3~q9 9a"w3J2Ld=]s9qt%DC\L!ˍa;S%Q WzOؽ0Oי.ݿuxO%cD#&zs8>.EQH)\:6bQ'E*L6=tV/$EL8=QG#d!Ͱ f7b{ fLA; Q<m56kV'ƈsHI
-Kv`YISSŒ#þdJldic*eӿ:g\V2h:qbaz⡇ZzyƴNq&)lM.&[%D11wq4@ܶa$
-!OURBFmH{`Jx޾ɐdѧAl{vÓhlEe>a Lq;lBv#nG>N"m?3(/-:ȌbbX'M%|dT fѥaU2^fc$AR<k{">lS5ϕ$};܄ 6%ycy:<Ό"^[ƛ7&W#yE'^ZHhF8K#tkn4-m= WZ?`JD;MWVMVpL(ƑR|n(#>ۃ@B@J fSﴩjsJ239֏Ƹ<nly7Ƀ:XYܩGM]5}Ao7"]..Pwk0Iw2Ȧe6“|-BEX N2y3_^o_j5\ S$Oل!nt7̹$
-a4|Vb,Eʍ98Ȁ!8xtl׌}Gqظ
-9E*f)a
-endstream
-endobj
-7983 0 obj
-<< /Type /Page /Contents 7984 0 R /Resources 7982 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 7944 0 R /XYZ 81.077 136.204 null ] >>
endobj
7985 0 obj
-<< /D [ 7983 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 125.245 null ] >>
endobj
7986 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 114.286 null ] >>
endobj
7987 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 103.327 null ] >>
endobj
7988 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 92.368 null ] >>
endobj
7989 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 698.097 null ] >>
-endobj
-7990 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 7944 0 R /XYZ 81.077 81.41 null ] >>
endobj
-7991 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 676.179 null ] >>
+7943 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F82 811 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
7992 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 665.22 null ] >>
+<< /Filter /FlateDecode /Length 1760 >>
+stream
+xZ[o6}ϯY/) C Ae:Q#K$͂L Ŗ(Ï(pt30{d~;dDtqMpFHp GrX@zsH9>!|0DerYW_)ozΒvS_˼ M_Kӓ:a ӉttfUq,M ZWx_/G((q8_|Q:HRC`4hxIHr<]\_ RZeԉ%$
+0s)@[V7u, P8*b?*J3mdgNv IbIHBS'p^#z(lukT@**}p|J\Vp
+p+GrI^QmqmUkԹ2*<|2z]Jj̬úSndҭ䞫oa[hKlVUe4}izh|3߽N̘.
+9+%r̒<.#[O̪bX858QqT}t}DCS Tqr|t}jRe#Z*GJK1
+ɭ7@q\}`!\fRq6@?\VRq`!9PqI6@8
+endstream
+endobj
+7991 0 obj
+<< /Type /Page /Contents 7992 0 R /Resources 7990 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7834 0 R >>
endobj
7993 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 7991 0 R /XYZ 78.37 808.885 null ] >>
endobj
7994 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 768.832 null ] >>
endobj
7995 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 757.873 null ] >>
endobj
7996 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 621.385 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 746.914 null ] >>
endobj
7997 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 610.426 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 735.955 null ] >>
endobj
7998 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 599.467 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 724.996 null ] >>
endobj
7999 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 588.508 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 714.037 null ] >>
endobj
8000 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 703.078 null ] >>
endobj
8001 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 692.119 null ] >>
endobj
8002 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 681.16 null ] >>
endobj
8003 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 670.202 null ] >>
+endobj
+109 0 obj
+<< /D [ 7991 0 R /XYZ 79.37 647.685 null ] >>
endobj
8004 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 506.034 null ] >>
endobj
8005 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 495.075 null ] >>
endobj
8006 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 484.116 null ] >>
endobj
8007 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 473.157 null ] >>
endobj
8008 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 462.199 null ] >>
endobj
8009 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 451.24 null ] >>
endobj
8010 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 440.281 null ] >>
endobj
8011 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 429.322 null ] >>
endobj
8012 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 446.042 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 418.363 null ] >>
endobj
8013 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 407.404 null ] >>
endobj
8014 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 396.445 null ] >>
endobj
8015 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 385.486 null ] >>
endobj
8016 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 374.527 null ] >>
endobj
8017 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 363.568 null ] >>
endobj
8018 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 352.61 null ] >>
endobj
8019 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 341.651 null ] >>
endobj
8020 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 330.692 null ] >>
endobj
8021 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 319.733 null ] >>
endobj
8022 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 308.774 null ] >>
endobj
8023 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 297.815 null ] >>
endobj
8024 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 286.856 null ] >>
endobj
8025 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 275.897 null ] >>
endobj
8026 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 264.938 null ] >>
endobj
8027 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 253.979 null ] >>
endobj
8028 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 204.946 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 243.021 null ] >>
endobj
8029 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 232.062 null ] >>
endobj
8030 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 221.103 null ] >>
endobj
8031 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 210.144 null ] >>
endobj
8032 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 199.185 null ] >>
endobj
8033 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 188.226 null ] >>
endobj
8034 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 177.267 null ] >>
endobj
8035 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 166.308 null ] >>
endobj
8036 0 obj
-<< /D [ 7983 0 R /XYZ 81.077 85.395 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 155.349 null ] >>
endobj
-7982 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-8039 0 obj
-<< /Filter /FlateDecode /Length 2725 >>
-stream
-xڵZmo8_a6,_%@b{{Ez0d[iȒ+)uҢ/z(fˇX3<3cvO$˳7c6HId" nyL??޼L"ELDHĔѯb0yU75)aFNq0%߃f
-κG+b?ۏvhT""y'v|`*}t$Fnmyڄ (m~󞨙+Y"İ>`̛T_U9燬hmʢnMk=s ӻJ6w|9bim')p4:&[bp?OlR"SCb;H}^'bH
-9fv FҔսMVm<kFrĸ ؉t(ԯ#N+L">XM*b/ܬ^^ꣲE#qI~E<s1 IZ' س4\00|,Fr7z=ˡ}6_Hr9GA6zDմ I>Ŵp8A>`봀;%I/*"t~y4si-G[58t%c-B^.nLVIc|k<ujG}Uw٤u]Vv؄ mBԞIC',&̏nJ\x)g`Xq$eH 9te(czp?zmnAߺ3*!K ׻<{1śЂ0Dt4P
-&a!OV69XdQ wgNPN!
-qKL6oMp۸c&5OŖM&:5k1:2@<qJ<a
-2A ENnz % .hU'8QBoP>Cp+ȦԐ#kKHyj;B!JρDX1D;SG: dynMy2lٞFN1Og JF M
-1:)@+NN
->ʝ}`
-{Hi&ᢾ*$w,L8 &HW҇\L"!\O"bI}JȦII[nІ*"W_i|hkG%wYDQ}dDeKh;rDh &åߞHuRXOքZM Xi[`y`M>vY]wc]":uh>3,l(-P_0g qUS/2!P/wm(7JR
-[mh?u kjK38վJS(->^tDPq_]rp$s!;uڑ/Ӿ#:-ljk76' |1nԄ&nӏ#^eu@"z=$fS>ZuY<z*+H.CY3 CMʮV<)nVd ) =:eC@⺩gAbYAjV7T?TH顂=MrCjvd<L
-Kb<&4pԅM?|)XJt q*CCU?O<S<N\?E$S+I0V?IAp[\(nh@@XJǤn YNKڒŃ)ۧLLT_Mύy꾶fv<JHQC]ou/i<, )i Ц_LSDrDiZXMyhm0כ<ѯl+i޿rÑYU7NzP]#i^huaюXLp{P?S /o1C-[;S=nkK?0&H
-x&~)JI9Ix葔$Ucx!{e0e%0S3Htř2 G^ÆH8F*v{˳p'
-
-endstream
+8037 0 obj
+<< /D [ 7991 0 R /XYZ 81.077 144.39 null ] >>
endobj
8038 0 obj
-<< /Type /Page /Contents 8039 0 R /Resources 8037 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 7991 0 R /XYZ 81.077 133.431 null ] >>
+endobj
+8039 0 obj
+<< /D [ 7991 0 R /XYZ 81.077 122.473 null ] >>
endobj
8040 0 obj
-<< /D [ 8038 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 111.514 null ] >>
endobj
8041 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 100.555 null ] >>
endobj
8042 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 89.596 null ] >>
endobj
8043 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 746.914 null ] >>
-endobj
-8044 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 7991 0 R /XYZ 81.077 78.637 null ] >>
endobj
-8045 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 724.996 null ] >>
+7990 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8046 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 678.172 null ] >>
+<< /Filter /FlateDecode /Length 2963 >>
+stream
+xڵZK6WʇHoSq*M|ؚ6[*ıSBr<S p80aDFw+~+Ӌo^|&+I {%bX͢Un#7NV1I#+~% \1$J& 5C,YUEQmx~w8w{7%sS2!b_}v)C!/
+KkGalokESD'1eE Syih;e%R!hRVݹYʤb$V?}cEdz}(\IdɆ I}+$6oCY
+
+ͅ|=jdӜ'>I?#n8.o&/uZځU.w#Q; ^%DG'KSLHr"
+DۯPXӶ?aņ~;ڜ:g&\hˌe$a>hla{6۵ U\Ml{Շ%n?@u$HzEcs4鎭eh~?؟o7;>g͉sACqYRqrFU7k<[
+ι$81!vvJ 3,Ry!EOLZz5cf^Z9|&u=" V|(Ũ2>Cݦ S,W(`ǺD(q雤tmw M #1o.#v,*v\/ųY5DWgYP5`p0鐕&gJb=D
+\i7`|>-Gadv9ټjܱtѴ]nᒂEeSp
+ڡ>^N CcM wܽu.BjgWvДg ޠD!CN.DHh;
+H<t:4Y%[s_:QOGaې /qo-D$8>,HWFK
+t|k#E4Bq֜%w0b -9tb\axy]N0`FDg&RIb>V͌Xqk;Vq"Xղ#5JDV|}@+
+A3@1=ogyK'r^X}Dk=UX6+E9^]y㸀"7%Ej^c .| vrW4e(DB ryiل<`*;~wbq{WճJH%Kxey߷
+($e(<V jz˛ծ"Շt
+K<􌺐
+Tߝa!=*b %C5 =ik$9Xi-1Qclu7Y{vCmtkW"㛨B@a
+?޼SA^
+endstream
+endobj
+8045 0 obj
+<< /Type /Page /Contents 8046 0 R /Resources 8044 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7834 0 R >>
endobj
8047 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 625.37 null ] >>
+<< /D [ 8045 0 R /XYZ 78.37 808.885 null ] >>
endobj
8048 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 614.411 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 768.832 null ] >>
endobj
8049 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 603.452 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 714.037 null ] >>
endobj
8050 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 592.493 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 681.16 null ] >>
endobj
8051 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 670.202 null ] >>
endobj
8052 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 627.362 null ] >>
endobj
8053 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 440.065 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 616.403 null ] >>
endobj
8054 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 605.444 null ] >>
endobj
8055 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 594.486 null ] >>
endobj
8056 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 583.527 null ] >>
endobj
8057 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 572.568 null ] >>
endobj
8058 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 561.609 null ] >>
endobj
8059 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 550.65 null ] >>
endobj
8060 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 539.691 null ] >>
endobj
8061 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 528.732 null ] >>
endobj
8062 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 517.773 null ] >>
endobj
8063 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 306.565 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 506.814 null ] >>
endobj
8064 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 295.606 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 459.99 null ] >>
endobj
8065 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 284.647 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 407.188 null ] >>
endobj
8066 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 273.688 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 396.229 null ] >>
endobj
8067 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 262.73 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 385.27 null ] >>
endobj
8068 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 251.771 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 374.311 null ] >>
endobj
8069 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 240.812 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 315.532 null ] >>
endobj
8070 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 304.573 null ] >>
endobj
8071 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 176.055 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 221.883 null ] >>
endobj
8072 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 165.096 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 210.924 null ] >>
endobj
8073 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 154.137 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 199.965 null ] >>
endobj
8074 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 143.178 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 189.006 null ] >>
endobj
8075 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 132.219 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 178.047 null ] >>
endobj
8076 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 121.26 null ] >>
+<< /D [ 8045 0 R /XYZ 81.077 167.088 null ] >>
endobj
8077 0 obj
-<< /D [ 8038 0 R /XYZ 81.077 110.301 null ] >>
-endobj
-8037 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F26 662 0 R /F70 185 0 R /F20 186 0 R /F75 317 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8045 0 R /XYZ 81.077 156.129 null ] >>
endobj
-8080 0 obj
-<< /Filter /FlateDecode /Length 3330 >>
-stream
-xڽn}"
-$&!5 7)4Ikb¥t
-sD 14y89+#0ߗV,`+En_YR!:nyn7X8B؀ͨ$*"$KIM7 HO
-26P6>@¶*Uo=_T1RP*# ug(ݮ啥jqR %_#YFۮɃloU]8؂s"OC;˟6eL-l̴\Χ0X1A<A6$Z-V 5(RJ ~G;'h˳a?8A<4
-Y;wa|,yF~Fl ‘DCF#.3 zd ˈNȀe1v
-S.FUf>4 '̦P")IHB47C`Odݲ(w5T9"%)Q*(dB>"@Hr|KcrznSv_f/-VyB2H٤VzR<U ?5QZPB=`ȡRO%ؗ& WDe
-y0XBlXdH>Lg,Ru<V10<j; Fz7a{oznj OfZ@cu"\ @+"
-(gh5EB B_'?hzValy MW=?3@@}MBz-4$-l#;
-ҝW*Cnw>QL@A;2 lɃB1K?A~<
-=>j!e.WYoEr>yc8޵錷h<ګuI"gPsR:]|=u Q16hָA| 6%Љ$\@H֍HGxR,>v1l9J
-Qu<@`<4x8 t)EEwg\3D}/0!-wȘ2 U"ND7/؇+udڹ I9ŕ'bʢ٣Қkrro9Xsmy9Ir|Cc]lP x^}"QvĤ4] X{MhcK$!n!aQX;_a,B@OL(_I_I*>ce:1"vPL34,$Ol߷>W<.ե Pa[W>9": OM䥣YWT`H.=OEpJt vjdʴDq.{ Ac:b /'m1WK_S,_O $Lm$dw!:f3}f$x~$8qfD4#.CJe]gGI6 UFPݑ3J<B2E- _!H@F$ Ⴥ
-3UԘF<fP:c)/|42ZjP7dCXi%=)IWnV@Ͼ68Y}rU݋~\* %Pa2^r$QVvYj]d@mi)Bn!|Jc=j1Ƙ@b%&ͧwu\U|r%e1sfIΓ)RP׷ULVeHÀxaLCt>g޴ RQx>bZXz:h&{l<*Ч+dV2YcgQ@?fzg,Ss=‡rd`<rrd84y ? T]=-ymJe^ǫ#|hνlo#lY&9p;&qsK݁/>-V<1޼^&riz'`=K[)4}`]O,'mo*z0ʉ^GXV]=Q]FtH@bE51%ԝw"$d
-endstream
+8078 0 obj
+<< /D [ 8045 0 R /XYZ 81.077 145.17 null ] >>
endobj
8079 0 obj
-<< /Type /Page /Contents 8080 0 R /Resources 8078 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 8045 0 R /XYZ 81.077 134.212 null ] >>
endobj
-8081 0 obj
-<< /D [ 8079 0 R /XYZ 78.37 808.885 null ] >>
+8080 0 obj
+<< /D [ 8045 0 R /XYZ 81.077 123.253 null ] >>
endobj
-8082 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 689.131 null ] >>
+8044 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F26 662 0 R /F75 317 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8083 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 678.172 null ] >>
+<< /Filter /FlateDecode /Length 3224 >>
+stream
+xڽ[mo6"@&\ P~]Ple][IfsE _D#[ٶaErfH3do2wX_h _HLſg?<^PJgݪpu}uClqE죫+[U}׻Ms q3+=L*CZaJI@ìL"Ub
+!~{g"|?G?ɎDRX/q;aNN?NZn˖c lYQV,]Cz1+[7H躆f0Z
+`c!Έ6*SiSnwn'qaG gn\ʫ|?̪P?MvVYpVOrV QGPݯ*+Eɻ~u]ٴ@<%}mi޽XyW8q$XN1d5CB+$PG˄-Slp(do]4.cS\~s~- )drZP,>8 uF <MiXAiJ__{#x P`B}"w|_0SCҴ RE]Sd+3~(ĮaQ7MnmK]-꽫j
+K[ve7s[znp7G$'iwVU8kɬ+'=
+ܸRw4
+lk־Q|trypĶ!?Ff8(7eurSdz@D
+
+b@J`"_WpleO.ڳ56rEw"6fvuOI 2ҎJIGᄣZILQnFKW2-kx QvTYӟˊ}TcIJ@( pnTW06XgJf0Q0jW}M[EhM}TSBh%a86 XDIa?# 269sL6_cӖ'w(άdGce)1<oZ@ȭ!o|O Oolܸ*`OQ 0$zHnڢcNSM<2Gfx /o9߾SD8$P,I, ,O%?3t2Yٽ6?.eP T"T
+9*ӐiB=R 4%!ӄ`y `s0]Qk#WzJ!tkB֧Ӝ@Li3X hjS>3:vfzҷG])XvrZq|Q\[YogvC,-L31S:b8YZa
+|k3>vt!"xxDAxJ-99IwVwk㥅\ai6X^PjjaDzAъ
+mˢ+@75~(0 CkrgVW@1k e?
+cK g
+O@\ɆkQmO HVe{>㼱kOЦ$F%IziA,mƲL)M~TOcbtz4%16!&ÍYk#ФVw4k/(ٍGKWv3v"*7l~f%|Ƚ&G`A+6e71 ,u"TMf'7妨Z[7U: H0aG4p&\͠= !;8_CSX[DԾ-Feo#/%7YdfHh ~lyӼis/'߈kR;9Aaqų,aQU`jG> ?fy,R8@d,U/:~':fq|nا̥9)j^}O>;)A6k8h[oQA'n Tb a5D䑽Ab,.ftF\39ģ\k^M W).N5 Y5iN
+|Y jy1<llX;$!I2>(b}E-+Q:[UL.y0*prd7L*zÌLۈ<&71A !yٴ'K 6K.ىQ[d#]'Y?]a귻8`HӐ6߲v}69.ƭ[ ⰇbLFP-̩4/%7.zakOn/3`}D wPCq|*uf1&OڌG;5_tn[1\`\xr _J}2Ϳܿ?u
+endstream
+endobj
+8082 0 obj
+<< /Type /Page /Contents 8083 0 R /Resources 8081 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7834 0 R >>
endobj
8084 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 8082 0 R /XYZ 78.37 808.885 null ] >>
endobj
8085 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 656.254 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 754.884 null ] >>
endobj
8086 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 743.925 null ] >>
endobj
8087 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 732.966 null ] >>
endobj
8088 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 722.007 null ] >>
endobj
8089 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 546.665 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 711.048 null ] >>
endobj
8090 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 535.706 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 700.089 null ] >>
endobj
8091 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 524.747 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 689.131 null ] >>
endobj
8092 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 513.788 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 640.314 null ] >>
endobj
8093 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 502.829 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 624.373 null ] >>
endobj
8094 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 491.87 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 613.415 null ] >>
endobj
8095 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 480.911 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 602.456 null ] >>
endobj
8096 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 469.953 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 591.497 null ] >>
endobj
8097 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 458.994 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 580.538 null ] >>
endobj
8098 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 448.035 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 569.579 null ] >>
endobj
8099 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 311.547 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 558.62 null ] >>
endobj
8100 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 300.588 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 461.982 null ] >>
endobj
8101 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 289.629 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 451.023 null ] >>
endobj
8102 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 278.67 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 440.065 null ] >>
endobj
8103 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 267.711 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 429.106 null ] >>
endobj
8104 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 256.752 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 418.147 null ] >>
endobj
8105 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 407.188 null ] >>
endobj
8106 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 396.229 null ] >>
endobj
8107 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 319.517 null ] >>
endobj
8108 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 308.558 null ] >>
endobj
8109 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 297.599 null ] >>
endobj
8110 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 286.64 null ] >>
endobj
8111 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 275.681 null ] >>
endobj
8112 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 264.722 null ] >>
endobj
8113 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 158.122 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 253.763 null ] >>
endobj
8114 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 147.163 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 242.804 null ] >>
endobj
8115 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 136.204 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 231.845 null ] >>
endobj
8116 0 obj
-<< /D [ 8079 0 R /XYZ 81.077 125.245 null ] >>
+<< /D [ 8082 0 R /XYZ 81.077 220.887 null ] >>
endobj
-8078 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F75 317 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F78 556 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+8117 0 obj
+<< /D [ 8082 0 R /XYZ 81.077 84.398 null ] >>
endobj
-8119 0 obj
-<< /Filter /FlateDecode /Length 3046 >>
+8081 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F73 189 0 R /F69 183 0 R /F20 186 0 R /F75 317 0 R /F76 318 0 R /F78 556 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+8120 0 obj
+<< /Filter /FlateDecode /Length 2636 >>
stream
-xڭZo6߿"Eq Y~aQම>,^>،[YI&ifHJe6b$7Cћ }ӛd+ysAa7:#BhUnww&dSwyg,;EXF4!ӜYBccZSaK rVTm 63ϪvCpdڏ=*#e|A)Y6! s+۝xto^.ǻ/wm^dq qmۼڸNNG&rDBt݊mu嚬y )|cg$AA2ZHLdRET$-Y^])U4P NYH't*. gl`E_NJ%2~/6ު}[?_TrߚO&;^`ɣY.'|n1Yp<Ej *lHQdV}~ nP|ٷV \[t :5w*Y)RJ{IY(`MC~Kۢ9V@ŁΛƙ<3܏f{PRE=<A6[ |4~)ɍa5UG yu=]
-#`<d+YS4ю?тfx_pr-Jc!D _׆(уukCYRij1W_h$%wu CQX%
-1
-ZGlͥ& !iͪ[`YV 9(t dAY&%$ j,-{fJ@έcjLm3bƨg&ݚb!9%Vϻa[a @~Df
-Â N`זA< ({ґ/Vͦ!wc>P =!T 4gSEd&q*5pN]Dƀ[ƯX)2/_gߞW8S09@}[_hh,RW\A4]m>J ݿ'{3Fa^g8ࡨ1 $Sio.^-7?%8% S|&l? hIٱ
-Q8.7^VL@نKq_4q2īT~1q%O&k
-B x]WJw-u{,JgUek"_ӋA)ARnӎnI xs1QB{x}7  I
-WI)K=c1e!<d*3-*1IITIEq=F 2e d+is 2xYtF\GT} 5߬|lh 9o2Fw
-b{bliXl>5k83Ό&yO>p cFD%
-
+xZm۸_⮭ DJ
+)8,iYJrvΐ,j^+w@$Dp:7{Go>\yQ$I]o0XDgl+iUlv<,֋_Jf1I1FBGG:8#JegsJHBOLȼl׻b~ܭ߿_Uy}S=ad"!Le2 eͺ1Zf. ߕGЛ<ZX7XvzvdH=v&t;]xvB"
+Q&munjΪY붘 *•JzTAu(&"Cj#CZ_^V3X,IL^Liԏ CC=4fh޽?MFM9 ~ RߊQq"Eg5 z|Iw$*;{o(bD{'zGCK9IXzO8R?S]ݯka3SxQ>4:zdC_|DIA8\r@=l?M䳣ZgIG@y.+LZKs&É#yOGLE@5ê /]>O$vVƻ8ȒY(C:!8 :UZp=X(㋁(ܨ &Y[,y<5TuM*S$g
+<{;\BQik@5B
+'EA-4ׂO0W&<<D$#Ntk ;[B(hnnCqH*B>}?Xg}!nZCÅ+GQ18'J "ɶYe=/+Ҧ9sT4nrs)?D#8_Ht2&d`c٨'5=j̷kk?O)VsxR]P:7X YWuп<ꬫt3o Pu,Xi u_U/]@?n 8p5E"9B.{A389k/
+SHIm =Wy6zBӺU.o6H! P]^ys ?菥
+ep9<oM?g/( &`\$xHjdylwRWK8+TӹfD|m)?fYuU jA"֥A%Z/OQЂþA-.ě|[^V: ʬ)Qjd/"tgt_qr>tSSwMr_D?2q'Pw_SWr3/"SqxI!%M'l}|’(w.2*6z\eE8λ- pos6y;¼Ξ;U$=T &yYItL+W't֖}_[D9X?!X1P0ɼ/Hqi2Rá QG$Z{4y5~w5!{PlpbЎ3Cǭouu9-u.I^9"(aqߊnG0
+RFn]`ʉFDBqf[t>7P]%HL]1@|_9%|%H_ao'
+F-9oO/1r^Ne"Lwuw
+K!}yai /j݃`mhKZm0Nozz愫d A<s6ЧSye-,dO"(
+%=#uɤb¦#(zń=G8͔%K/xɯ$.S37 8
endstream
endobj
-8118 0 obj
-<< /Type /Page /Contents 8119 0 R /Resources 8117 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
-endobj
-8120 0 obj
-<< /D [ 8118 0 R /XYZ 78.37 808.885 null ] >>
+8119 0 obj
+<< /Type /Page /Contents 8120 0 R /Resources 8118 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7834 0 R >>
endobj
8121 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 742.94 null ] >>
+<< /D [ 8119 0 R /XYZ 78.37 808.885 null ] >>
endobj
8122 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 731.981 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 768.832 null ] >>
endobj
8123 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 721.022 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 757.873 null ] >>
endobj
8124 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 656.288 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 746.914 null ] >>
endobj
8125 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 645.329 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 735.955 null ] >>
endobj
8126 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 634.37 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 724.996 null ] >>
endobj
8127 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 581.591 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 714.037 null ] >>
endobj
8128 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 570.632 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 703.078 null ] >>
endobj
8129 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 559.673 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 692.119 null ] >>
endobj
8130 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 548.714 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 681.16 null ] >>
endobj
8131 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 537.755 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 670.202 null ] >>
endobj
8132 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 526.796 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 659.243 null ] >>
endobj
8133 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 515.838 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 648.284 null ] >>
endobj
8134 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 504.879 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 637.325 null ] >>
endobj
8135 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 493.92 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 626.366 null ] >>
endobj
8136 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 482.961 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 615.407 null ] >>
endobj
8137 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 454.092 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 604.448 null ] >>
endobj
8138 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 443.133 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 593.489 null ] >>
endobj
8139 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 414.264 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 528.732 null ] >>
endobj
8140 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 373.44 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 517.773 null ] >>
endobj
8141 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 290.796 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 506.814 null ] >>
endobj
8142 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 279.837 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 442.057 null ] >>
endobj
8143 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 268.878 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 431.098 null ] >>
endobj
8144 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 257.919 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 420.139 null ] >>
endobj
8145 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 246.96 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 367.337 null ] >>
endobj
8146 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 206.136 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 356.378 null ] >>
endobj
8147 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 195.177 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 345.42 null ] >>
endobj
8148 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 184.218 null ] >>
+<< /D [ 8119 0 R /XYZ 81.077 334.461 null ] >>
endobj
-8149 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 155.349 null ] >>
-endobj
-8150 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 144.39 null ] >>
+8118 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8151 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 133.431 null ] >>
+<< /Filter /FlateDecode /Length 2376 >>
+stream
+xڽZo8_C4,?Cpvva(*[>Yn P(RIe3H$pf~Cz`dh820:{C`H5S ,f;}(zQFFJc0Q
+Q:B"/C.]]__\
+*֟zyxaq}ɋt>`y
+hK
+o
+@9/Ur=l~G~uRENR# DcR;.zdl_@JW:ϯb N#8̗K]hf3nGRv?9n*dfRPI':${.ۢ-O
+8ϐFJWKED,JC;p@T2'XXlgV B
+נ*A S,8%Xj
+uo8NnnW
+Kw} c皌1f08NǪh“BeBA#I2b.֍[sqMrec7b]N %@Slvf\"Cff8+3'hm[lo>. 1GI&H5Ag_qѬS|?IW;0S>ĞnÍ˻H6q,>:A? ]*.ZuorISN?
+qISj`t9}.e]+înC}Œu)DjFɸ3|퉾ѕ\,`d`7y
+#*;O7p~p<4 Hձ g *b*h
+1M^D)4%(2-{ȑ6;72IiX׌o+;^/'hd|]ϪW ##^hJ [k5|l&]UfϤo[>EXTWHBG^. 3d ׻rݲ+KF'F#Ol=Q5Mq
+3[ɮ5yWwr^;$SY9**S %g"5)3xɊm,~Uf5?|j8 K_?DPN ]@mޤEAYϿȐP:EI&AtzfQe,`QBvd+.2"9gyANv֦LTw{:[5T",|;,AI!5l[zb.WUy:W㮦2JSpe^
+Q Wyc[-D8$.#wR+֢tE 7YĔϩcT}n wknumOmNܠSTy3T✥l-C}yVtG@&$^0J"A篟jY{>AMޱ^W<4_K$H`{!ў?$v6ͪ]狈4h$.<rْ5GZyI1$=Ex)a^`"cdz'2e޼?j
+endstream
+endobj
+8150 0 obj
+<< /Type /Page /Contents 8151 0 R /Resources 8149 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7834 0 R >>
endobj
8152 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 8150 0 R /XYZ 78.37 808.885 null ] >>
endobj
8153 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 768.832 null ] >>
endobj
8154 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 757.873 null ] >>
endobj
8155 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 746.914 null ] >>
endobj
8156 0 obj
-<< /D [ 8118 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-8117 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 186 0 R /F19 184 0 R /F73 189 0 R /F69 183 0 R /F70 185 0 R /F76 318 0 R /F46 176 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8150 0 R /XYZ 81.077 735.955 null ] >>
endobj
-8159 0 obj
-<< /Filter /FlateDecode /Length 2078 >>
-stream
-xڽZ]o}ϯ0PP Wݢ}ȓ߶rIE"mW(S$g4ΜΞf췛t%Ҵo7o>~LSf IrEf$Ut6ξ$c~D+L ZBߓ-SBSesD Pp1MxNR.fy{'Lg[7|4,'4^;9M;X0F[?S=
-*Ήڿ .9EhlƈM!D19.5EK)8?'iJI2SF˖&Y#8t<FOɊ2$sQIpiҤܻFݧL
-ٯܖ1O(7}iT%g$"7cn"̼xJ}* @!rs 2񙝨JJn|h;'Y TFƵ2}L'˶OvF}R_nm)I\}9J%1hv3P91laS{ޒ@Kꓗ8;DHiRz E! "[;K!$hdLD T6bQWtӦAkA8B3iE?'fB |8bJ LVVD/p3PFFhlEqggjQp
-; Z55CHS-DCqU0X;qU,ր<G'ҁ3Q)"(RFD|:ylǰ7G<:Zo6
-DeB1L7qfVg]SY
-x Ծ’B`mvߠPQ7퉀UJNf8B4~O8| 96h5wQ5avѥ76-zbxtd҈*hZ( xx(.hlw.>G) aqY{FFOWM쇂Ad,W+р= A?' g]O`f`ɲڙoZ@znjq i-H<Wڊ7~o=7>+ePK-`nx]U/VGݦ^]y÷;ǶAU!MܕpebeglG!MĤLLśRˈ᝘Mc1};CbFӂ0#Ia<85lTBmR|Q2=uzxrhO8+D_ѤqE
-endstream
+8157 0 obj
+<< /D [ 8150 0 R /XYZ 81.077 724.996 null ] >>
endobj
8158 0 obj
-<< /Type /Page /Contents 8159 0 R /Resources 8157 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 8150 0 R /XYZ 81.077 714.037 null ] >>
+endobj
+8159 0 obj
+<< /D [ 8150 0 R /XYZ 81.077 703.078 null ] >>
endobj
8160 0 obj
-<< /D [ 8158 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 692.119 null ] >>
endobj
8161 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 681.16 null ] >>
endobj
8162 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 670.202 null ] >>
endobj
8163 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 659.243 null ] >>
endobj
8164 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 648.284 null ] >>
endobj
8165 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 707.063 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 617.4 null ] >>
endobj
8166 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 696.104 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 606.441 null ] >>
endobj
8167 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 685.146 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 577.549 null ] >>
endobj
8168 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 674.187 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 536.702 null ] >>
endobj
8169 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 663.228 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 454.012 null ] >>
endobj
8170 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 443.053 null ] >>
endobj
8171 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 432.094 null ] >>
endobj
8172 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 421.136 null ] >>
endobj
8173 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 619.392 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 410.177 null ] >>
endobj
8174 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 608.433 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 369.33 null ] >>
endobj
8175 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 597.474 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 358.371 null ] >>
endobj
8176 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 556.627 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 347.412 null ] >>
endobj
8177 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 545.669 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 318.52 null ] >>
endobj
8178 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 534.71 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 307.561 null ] >>
endobj
8179 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 296.603 null ] >>
endobj
8180 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 285.644 null ] >>
endobj
8181 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 274.685 null ] >>
endobj
8182 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 263.726 null ] >>
endobj
8183 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 252.767 null ] >>
endobj
8184 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 241.808 null ] >>
endobj
8185 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 230.849 null ] >>
endobj
8186 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 219.89 null ] >>
endobj
8187 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 436.08 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 208.931 null ] >>
endobj
8188 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 425.121 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 197.972 null ] >>
endobj
8189 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 360.363 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 169.081 null ] >>
endobj
8190 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 158.122 null ] >>
endobj
8191 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 147.163 null ] >>
endobj
8192 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 136.204 null ] >>
endobj
8193 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 125.245 null ] >>
endobj
8194 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 114.286 null ] >>
endobj
8195 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 103.327 null ] >>
endobj
8196 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 253.763 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 92.368 null ] >>
endobj
8197 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 242.804 null ] >>
-endobj
-8198 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 8150 0 R /XYZ 81.077 81.41 null ] >>
endobj
-8199 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 220.887 null ] >>
+8149 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F46 176 0 R /F23 660 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8200 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 209.928 null ] >>
+<< /Filter /FlateDecode /Length 2062 >>
+stream
+xڽZKoW(
+(@wvUvm!(ƶ [i{(Ri{\qfp71E9:/~G
+=+<"aG>|RlƑфMxFfZ"ILI$BQa-43L`" Sglt-4&5KNO @1D@
+D E*FʖFdM1SMyiu ?O6[#4byh󡾭uPb[xVyMR8D+dׯrvw7~~^>
+xI9M_En_ۗz?W޿v|Xntf+1ގ~>RzuF鳈Y1%8 O5F˦ ̓<" F©p^}l_̋\ՄAHj ;U5R8UENo (Oz&tMD=2
+ XiªK^ڍ@`dE7l2aM.^@0U?UupmKT]o- L#mȆV\(Oe!>f6mWu&BHK"cr!}rj<zt®p+Dmaz]rhTma'Wɑ?XB;cUYND #bMnT]ˋ=:A8ͶEQ#d_EȘ'DE1R`ݳYݏIxxlPr80aUܥʨKC*}*]Mmoy]оvtSW=+aMW,\O$mW9nn[Ȑ/G
+͔fYmaեwqa}MZe_[ܝKdiDqlf$Y#A.^ZdU/{t$pV")hDY{z`=_9z:YD"z4=+9y\E =O Z,=\;sUK NIG-N3ix'vr%/:a; 6+j[7onv6v*¿uv<,Q59j޷g!
+S1Q'"?B^~+ppg룡DGq%Ii4Y4<-*SE&NI;xػQ߷s"o*z)b?,:'%q38bJooHQ_ A!t$׻}QovYYx6yAӗͲAMx{}~P(8<BJc8#BR$v꾆IR!͙ߕ$E[38GLpPXoc@:l3\AUH)DCUkYlDOLD=UzFBkl& M{ re&B}5:18_4Sh|6_.x0* zRy\* 2M$>1:?1 fm@(yЃg>.5dE2Y1q
+c brf?j @К
+endstream
+endobj
+8199 0 obj
+<< /Type /Page /Contents 8200 0 R /Resources 8198 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7834 0 R >>
endobj
8201 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 198.969 null ] >>
+<< /D [ 8199 0 R /XYZ 78.37 808.885 null ] >>
endobj
8202 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 768.832 null ] >>
endobj
8203 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 757.873 null ] >>
endobj
8204 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 94.361 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 717.026 null ] >>
endobj
8205 0 obj
-<< /D [ 8158 0 R /XYZ 81.077 83.402 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 706.067 null ] >>
endobj
-8157 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-8208 0 obj
-<< /Filter /FlateDecode /Length 1816 >>
-stream
-xZKo6W60P`@m9u Aq]Gr%evCJEjC/D gg݌ޝI^0b&LNtfVhFfosõY~Kv3KŽLJN7)e8W\ƻ͛zS>4}ANHRQ(ZiZ*Ac)ZpIei
-3sa(}`O&\(OmqBhol\aNAMTCLS1"KџҽtCK|{e=6rĠQ>keP|8<EANB1/Ys"E$HQ'#D4g1n,(L/#HQjGcWr
-DHE j -Cdf'Hi"AZ" He1
-0^-Q Kli$H;$282ҞHΜR3>Y|0EC7k#Gډ, qNJh.P0D~UO [b<k7acqDh@3lxRy{_3߬{n]We顁1JNՅYK( H4j/u8G1(8g?M\=>x@WmUw<`zwUmjowC *ztrǭ.&ifzT\kD}\$ T$>.CCqڅo
-K,;X';^h=Trg1M^bbH#ʩ8uAnh0g "Q$p<Yy--$D0\)2xe"Gm7 fLCM/R8A
-bx".KOx_I^C˽plY{e, ˏ L{)utWpI]^ΈTN>F)*.N* c07 - ;ho]g FKU㝋 IЏWg
-endstream
+8206 0 obj
+<< /D [ 8199 0 R /XYZ 81.077 695.108 null ] >>
endobj
8207 0 obj
-<< /Type /Page /Contents 8208 0 R /Resources 8206 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 7831 0 R >>
+<< /D [ 8199 0 R /XYZ 81.077 684.149 null ] >>
+endobj
+8208 0 obj
+<< /D [ 8199 0 R /XYZ 81.077 673.19 null ] >>
endobj
8209 0 obj
-<< /D [ 8207 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 662.231 null ] >>
endobj
8210 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 651.273 null ] >>
endobj
8211 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 640.314 null ] >>
endobj
8212 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 629.355 null ] >>
endobj
8213 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 618.396 null ] >>
endobj
8214 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 607.437 null ] >>
endobj
8215 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 596.478 null ] >>
endobj
8216 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 585.519 null ] >>
endobj
8217 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 520.762 null ] >>
endobj
8218 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 479.915 null ] >>
endobj
8219 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 468.956 null ] >>
endobj
8220 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 457.997 null ] >>
endobj
8221 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 447.038 null ] >>
endobj
8222 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 436.08 null ] >>
endobj
8223 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 425.121 null ] >>
endobj
8224 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 414.162 null ] >>
endobj
8225 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 403.203 null ] >>
endobj
8226 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 392.244 null ] >>
endobj
8227 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 381.285 null ] >>
endobj
8228 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 370.326 null ] >>
endobj
8229 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 359.367 null ] >>
endobj
8230 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 306.565 null ] >>
endobj
8231 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 295.606 null ] >>
endobj
8232 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 254.759 null ] >>
endobj
8233 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 243.801 null ] >>
endobj
8234 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 232.842 null ] >>
endobj
8235 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 423.128 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 221.883 null ] >>
endobj
8236 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 412.169 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 210.924 null ] >>
endobj
8237 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 401.21 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 199.965 null ] >>
endobj
8238 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 390.251 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 189.006 null ] >>
endobj
8239 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 379.292 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 178.047 null ] >>
endobj
8240 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 368.334 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 167.088 null ] >>
endobj
8241 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 357.375 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 156.129 null ] >>
endobj
8242 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 346.416 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 145.17 null ] >>
endobj
8243 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 335.457 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 134.212 null ] >>
endobj
8244 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 324.498 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 123.253 null ] >>
endobj
8245 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 112.294 null ] >>
endobj
8246 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 101.335 null ] >>
endobj
8247 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 291.621 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 90.376 null ] >>
endobj
8248 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 280.662 null ] >>
-endobj
-8249 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 8199 0 R /XYZ 81.077 79.417 null ] >>
endobj
-8250 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 238.819 null ] >>
+8198 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8251 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 227.86 null ] >>
+<< /Filter /FlateDecode /Length 1941 >>
+stream
+xZo6_a W& (z]PzGIؒOR>2%^}ؗ 3䳇Y>"=t#74 b lvsAaQ>3z%?湚+egX ?/%CCf-yr⹫ã @.qeNhqiՌH%THڜFZr,MxjDmO1M5aLh4,'pLW<l]=<CV hS*2JO)#5FDږH)A;I~-~yE)1kK869j*+7zamjnؙvZc2;~j əJ1٦3~;Gcq~I^W]` '~7m2mMˬ\M@ ,5
+p)%/8'F"\5)=NEBt)iSQ)ny#{%Km`RNe73?e@*<, wT*YXvaقɪmUޅQYȺiarU=6{uYLp$)ۦn?.rn(R9Ahq:wlpֿ7wWov@zR!kn`ۇ%<>̍[te=_y?sXQFV@ws[lڶ^wM}\:o|)o8_{pbI7qJx\-A+sś2vt릜Nx lϛoxr1-?TFZ))zu/p%\CLyL19EΪ&m|ذuw~,]ڽlbcG~t6KmPbTBI,A;6ͺX/o˾*h!j3*L^4İSy(St*Y'! }I?=1.C9\
+bPQ:0cmW}5d\g SzFyʸ^7͸BP[qoz-]Χvឧ eŔk$wM5sgeߠr3IfB>WmЗ!EA2\8ۨ֫
+?%f$-7}-+W 9tnjtF
+&1-jWwɄcV4!Saar 1e }?R% cUU zW? F3#d*2cQ1'A <+9;EǵpF53)Q"du%ruvq] ;kK EJ\[n
+"MW
+endstream
+endobj
+8250 0 obj
+<< /Type /Page /Contents 8251 0 R /Resources 8249 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8304 0 R >>
endobj
8252 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 8250 0 R /XYZ 78.37 808.885 null ] >>
endobj
8253 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 768.832 null ] >>
endobj
8254 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 757.873 null ] >>
endobj
8255 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 746.914 null ] >>
endobj
8256 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 735.955 null ] >>
endobj
8257 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 724.996 null ] >>
endobj
8258 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 714.037 null ] >>
endobj
8259 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 703.078 null ] >>
endobj
8260 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 638.321 null ] >>
endobj
8261 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 627.362 null ] >>
endobj
8262 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 616.403 null ] >>
endobj
8263 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 587.512 null ] >>
endobj
8264 0 obj
-<< /D [ 8207 0 R /XYZ 81.077 85.395 null ] >>
-endobj
-8206 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8250 0 R /XYZ 81.077 576.553 null ] >>
endobj
-8267 0 obj
-<< /Filter /FlateDecode /Length 2575 >>
-stream
-xZKo80pd`>,rY$ؒG4OI=j{v!(~b~A?͛?|\s-7wo| 09fa4#Ta?lsܵ ܵo!tqW7]y]zKhm3A#[:܋Uw!0-ǫ 7´Wp{jeo*VW.3:[>ٺmb۩i7 ώ
-*DJ?!Y7įmŜWE#BBeQb!I1L̀Y6m~~E"ڔ_f]i7ݮ>˫kŕky}[5,tJfKbٱ,.c1"џi3Az2ڜQ"({/զLfrbgF]ƌ)?{-ݯAGt]Ove>5vqrs8S3o,_RsF2ٯV'v 2Qe$m\ᱨX ܼz=Jx_4-ӳp4di-H+Z iDxr&vVo!-3B2v
-{~MrrCa^K*wVFAhSI6OT6a/-+L\Nd% Je앬=']sv ._Fh&c#.~zt46S
- cy0ޝVcHɁ0?FTxB2b- [ {wn3N 5x8 ?N*;`y<[5/HHnxqL}vь޹tth
-9w&¸hc4`;u5ۗ.
-60dEFNcpJ̗q*`'whjY<E_(њQx~ ՄC_ ȧPQ]
-kN,L#"nɢ8TC/'WB\t`U8Cf:_f!hls
-7#xpZ
-E6`}CV{mD_?3pZ)tѸb~fĕ\p~!"Rއ8A 3:}DSqb*(gtO[PEjc祇Ru?69ML͟j
-endstream
+8265 0 obj
+<< /D [ 8250 0 R /XYZ 81.077 565.594 null ] >>
endobj
8266 0 obj
-<< /Type /Page /Contents 8267 0 R /Resources 8265 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8250 0 R /XYZ 81.077 554.635 null ] >>
+endobj
+8267 0 obj
+<< /D [ 8250 0 R /XYZ 81.077 543.676 null ] >>
endobj
8268 0 obj
-<< /D [ 8266 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 532.717 null ] >>
endobj
8269 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 743.447 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 521.758 null ] >>
endobj
8270 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 732.488 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 510.799 null ] >>
endobj
8271 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 721.529 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 499.84 null ] >>
endobj
8272 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 710.57 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 488.882 null ] >>
endobj
8273 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 699.611 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 477.923 null ] >>
endobj
8274 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 688.652 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 466.964 null ] >>
endobj
8275 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 677.693 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 456.005 null ] >>
endobj
8276 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 666.734 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 445.046 null ] >>
endobj
8277 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 655.775 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 414.162 null ] >>
endobj
8278 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 644.816 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 403.203 null ] >>
endobj
8279 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 633.858 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 392.244 null ] >>
endobj
8280 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 622.899 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 381.285 null ] >>
endobj
8281 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 611.94 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 370.326 null ] >>
endobj
8282 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 600.981 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 359.367 null ] >>
endobj
8283 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 590.022 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 348.408 null ] >>
endobj
8284 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 579.063 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 337.449 null ] >>
endobj
8285 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 568.104 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 326.49 null ] >>
endobj
8286 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 557.145 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 315.532 null ] >>
endobj
8287 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 546.186 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 304.573 null ] >>
endobj
8288 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 535.227 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 293.614 null ] >>
endobj
8289 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 524.269 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 282.655 null ] >>
endobj
8290 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 513.31 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 271.696 null ] >>
endobj
8291 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 502.351 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 260.737 null ] >>
endobj
8292 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 491.392 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 249.778 null ] >>
endobj
8293 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 480.433 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 194.984 null ] >>
endobj
8294 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 469.474 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 184.025 null ] >>
endobj
8295 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 458.515 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 173.066 null ] >>
endobj
8296 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 447.556 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 162.107 null ] >>
endobj
8297 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 436.597 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 151.148 null ] >>
endobj
8298 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 425.638 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 140.189 null ] >>
endobj
8299 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 316.167 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 129.23 null ] >>
endobj
8300 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 305.208 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 118.271 null ] >>
endobj
8301 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 294.249 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 107.312 null ] >>
endobj
8302 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 283.291 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 96.354 null ] >>
endobj
8303 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 272.332 null ] >>
+<< /D [ 8250 0 R /XYZ 81.077 85.395 null ] >>
endobj
-8304 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 261.373 null ] >>
+8249 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-8305 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 250.414 null ] >>
+8307 0 obj
+<< /Filter /FlateDecode /Length 2471 >>
+stream
+xZK8WE L360@0f0{ȩo3CmݞؖG;oI=8,>(X/|뫼#_^y؂)+w(Lt%T-$tqwX)&͟wzN&FJ`*4aF?(/3b[|м!c[Qlzvj';w޿Gn ^`U>'oB9k.tڅ&T̯@ĂtT=mz"'խگvw3ljLRLi?ҖF6!^Eh#r}LfEs¸YI:MRMR*>߭H~ >X$QBաlWm-\>p{c"4r\pF{')bBN?,J NJAM?%Da<1sE$]iG>F'wHR_2CQT$ӥ8QA8SwJOL)aDhO;j c29&
+[vi]; r.Єͮݡ&1Zx{;YapA5_ +>`wC'w4m}^h)e]H'
+ȬyPv^=/ĦM]>
+ |H~DX> 4e%%ؼY ;cdk ^C
+K~p}hC>ǟn{=f^;9/=!{*wu3/($-4ƽPd )19>߂;Bwﯧs7YAPL<qD!!p^z61T䘤 4d1V.|V8`&Zﵘ@98bl`e\{]|
+k!I.QazER[(B;îiuoc
+13`Xt0|@<ځw )xʒ Զ9z#U]?WbĒh.P2^QCF˴sCv52)U15F&JJZ:`
+Ch}eA4=B 6[W}i벮@1p&3eMl0<$y܄,Q|W>?$n
+eN, \` rݸ^@NPy!ܰwz,aǃm^ZM}D/
+͕uvsiش/s}Bz"azlޖGz:UM>ؿ3ysP1ףFmn76 ӏHWS<Ri
+2`pޗ'FQ{dA 1i)xvu07%yL0"!~1<'L}i?O_
+) ωQE'1ݫ
+endstream
endobj
8306 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 239.455 null ] >>
-endobj
-8307 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 228.496 null ] >>
+<< /Type /Page /Contents 8307 0 R /Resources 8305 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8304 0 R >>
endobj
8308 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 217.537 null ] >>
+<< /D [ 8306 0 R /XYZ 78.37 808.885 null ] >>
endobj
8309 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 189.681 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 768.832 null ] >>
endobj
8310 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 178.722 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 757.873 null ] >>
endobj
8311 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 167.763 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 746.914 null ] >>
endobj
8312 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 156.804 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 735.955 null ] >>
endobj
8313 0 obj
-<< /D [ 8266 0 R /XYZ 81.077 145.845 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 724.996 null ] >>
endobj
-8265 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F76 318 0 R /F73 189 0 R /F69 183 0 R /F20 186 0 R /F26 662 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+8314 0 obj
+<< /D [ 8306 0 R /XYZ 81.077 714.037 null ] >>
endobj
-8317 0 obj
-<< /Filter /FlateDecode /Length 1593 >>
-stream
-xZMo8W%9>=ช-ԶҴВ)2u5m)O>ywƏG~wfvꭕż)&3&0vb 0n`2L_XiٟqWo8捑.C@+?T7u.J }(^.rV}YuYP q՜UpάQ9aΗžwmwuٝ>T3P2Mсݾd1pqa\?A?ceBFfʊ_~ۺ^P]?v7ƽ6{rˮ7z7#yr0aLM.E?tzM 3Ex$q&")&-v>V29֤3sT"Rl8n62O9z=$pfwgJ&1i=hrtނx z&1r*QX^\\̛Țl+ u2:hˬ9#A_n㠂?7.Z.1O`Nk^7}p ꂧk&$ÁeqZr!eh:"ŴT99[Zu.Dp.n.WOː'3@Xc6~W.ګy̿a)t"H<7(վpLۺY4Шbq@ڊ k$ήltnd(NHJHgْy{K$OCnx S?U⟲Mk6LP`XjgsEq+3)sFy*zDK֟Kzp,2{ -:Α MWGP{RG{PV9mj)7; e
-SUIZӊR-v; x/I/g
-~adiH%&IUd>C"!Sc{kRRQoHE?C_ިޒ: M^藢*G Mm z@rZhzlGqR|#@$c\TMyc}{t_mS iSBE7AO3E_U@{qak3|NV1t>/մolA$z$' „.C>ؖŮ[Xn;XE.TmnC]>ߪ?ÜqR)܎I좌GV<To|stX}wݵE발в}Q
-DIq24yxؚkn^SZh.lah<RCj7mVie9Y:kn4)_见{deTx(TTHӘ$;5Ϗ=6(i$SuS2
-!
-!hr`^$DmI*
-endstream
+8315 0 obj
+<< /D [ 8306 0 R /XYZ 81.077 703.078 null ] >>
endobj
8316 0 obj
-<< /Type /Page /Contents 8317 0 R /Resources 8315 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8306 0 R /XYZ 81.077 692.119 null ] >>
+endobj
+8317 0 obj
+<< /D [ 8306 0 R /XYZ 81.077 681.16 null ] >>
endobj
8318 0 obj
-<< /D [ 8316 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 670.202 null ] >>
endobj
8319 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 659.243 null ] >>
endobj
8320 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 648.284 null ] >>
endobj
8321 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 637.325 null ] >>
endobj
8322 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 626.366 null ] >>
endobj
8323 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 615.407 null ] >>
endobj
8324 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 604.448 null ] >>
endobj
8325 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 593.489 null ] >>
endobj
8326 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 582.53 null ] >>
endobj
8327 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 571.571 null ] >>
endobj
8328 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 458.994 null ] >>
endobj
8329 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 448.035 null ] >>
endobj
8330 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 437.076 null ] >>
endobj
8331 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 620.415 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 426.117 null ] >>
endobj
8332 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 609.456 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 415.158 null ] >>
endobj
8333 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 581.588 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 404.199 null ] >>
endobj
8334 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 570.629 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 393.24 null ] >>
endobj
8335 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 559.67 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 382.281 null ] >>
endobj
8336 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 548.711 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 371.322 null ] >>
endobj
8337 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 537.753 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 360.363 null ] >>
endobj
8338 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 526.794 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 331.472 null ] >>
endobj
8339 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 515.835 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 320.513 null ] >>
endobj
8340 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 504.876 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 309.554 null ] >>
endobj
8341 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 493.917 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 298.595 null ] >>
endobj
8342 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 482.958 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 287.636 null ] >>
endobj
8343 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 471.999 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 210.924 null ] >>
endobj
8344 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 461.04 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 199.965 null ] >>
endobj
8345 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 450.081 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 189.006 null ] >>
endobj
8346 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 439.122 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 178.047 null ] >>
endobj
8347 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 428.163 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 167.088 null ] >>
endobj
8348 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 417.205 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 156.129 null ] >>
endobj
8349 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 406.246 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 145.17 null ] >>
endobj
8350 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 395.287 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 134.212 null ] >>
endobj
8351 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 384.328 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 123.253 null ] >>
endobj
8352 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 373.369 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 112.294 null ] >>
endobj
8353 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 335.592 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 101.335 null ] >>
endobj
8354 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 324.633 null ] >>
-endobj
-8355 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 313.674 null ] >>
+<< /D [ 8306 0 R /XYZ 81.077 90.376 null ] >>
endobj
-8356 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 302.715 null ] >>
+8305 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F26 662 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8357 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 291.756 null ] >>
+<< /Filter /FlateDecode /Length 1832 >>
+stream
+xZo6~_a` ˟"i`@Q`baEm!IJ4$x)>;3t/p}, Or:c3m30B6ܸrq!-;Y^
+䩁Dʪ@O[gJ-T *p6@sQW宿? SrI&CvՏ'9 ƈ"Vuϧ)v1ҍ漣/=b&5L&! HMZR0۟;3@)&v!š-1ږN4c'&亮n[Cpnz\Um(}ۭ7ͲCX
+ @`1rN٘IYz"465 r0(m[ZKhp-tHxF
+.6i}]c}j,TbYk6\y__o9\EGB,XJ .h -Ϭw9{qm־MX~*M
+irHAp6" ,{Yn<(4BA1E?L[C;*~cD"kF0!Y"ά>D'1Pє$A2EXx^,B!Ǥ*$ߴ!3&BpQ3E ``e-sШ3e3 VDCg"Zp|ko0z&w4`DBƕ%h+h8t,P&B]/ F 旙Q$H1EwA!B8E8Ss
+|xZבRblFfzti"9EiF*Dž2Yw2&kwc8mQ*zjE zDyE fInb?XdeN}}rq!B0hSaaN~:ț 
+|WQ2~Dٟj
+
+endstream
+endobj
+8356 0 obj
+<< /Type /Page /Contents 8357 0 R /Resources 8355 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8304 0 R >>
endobj
8358 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 280.797 null ] >>
+<< /D [ 8356 0 R /XYZ 78.37 808.885 null ] >>
endobj
8359 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 269.839 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 754.893 null ] >>
endobj
8360 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 258.88 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 743.934 null ] >>
endobj
8361 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 247.921 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 715.06 null ] >>
endobj
8362 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 236.962 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 704.102 null ] >>
endobj
8363 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 226.003 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 693.143 null ] >>
endobj
8364 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 215.044 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 682.184 null ] >>
endobj
8365 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 204.085 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 671.225 null ] >>
endobj
8366 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 660.266 null ] >>
endobj
8367 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 649.307 null ] >>
endobj
8368 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 638.348 null ] >>
endobj
8369 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 627.389 null ] >>
endobj
8370 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 616.43 null ] >>
endobj
8371 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 605.471 null ] >>
endobj
8372 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 594.513 null ] >>
endobj
8373 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 583.554 null ] >>
endobj
8374 0 obj
-<< /D [ 8316 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 572.595 null ] >>
endobj
-8315 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F76 318 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-8377 0 obj
-<< /Filter /FlateDecode /Length 1915 >>
-stream
-xڽYmo6_a` w b6 [}XAX-,+>R)qܜKH|NwI<W|FZR'W<2Q15Q ,r=s,blvD44Y2fvFu^"i^'|叆8PET"d0fU78}4
-IKduO68ͨiv>;OaƫmgR^|iiuU%} orN,Ҭ\'t2k~nbsjUΨ!`_c1ú!c6Ϻ]_{}QQx-$+1ljگ;u&4?͸eX|t"rBDt~s89Hb%a$lol‘ "b&%11W]z%|0imdx-";/kӏ?'uy=Kbk_I#3?$B"D-53)CtdY^]Y7m[\۬>M{`mlq^-&_(1f~,nU)&9AGZH]gur@Q̥&c: dtMb(Qbب6:X7uS̳E=ipHryj2?ɴ>Ħ.U~4Vz5i!0|I]pv]>ڳpϪ΋d]^/]iA&) ^d&]Wه]^e E<?(NaP7øn& 'b( .zb:H;gFG{).Qť Y^3L:u!0 <՜
-('ɜr9@@ <Ɯè@8;+>x$!]5N";q' U+L}Ua/{
-vfPKYjGN9G,9~^6?wa'@媬PEN4 U ʠv2 JGHG`|(ʹB$?UDN~mNyDIr-`lp|[nx ^0[X !H Vyvى.Ba_wkp0v.`'@|nG6pCz
-Sw]% Ы>bƬu8ќj9,]] kst:9@s&۾F 6FVI0.4<'݉Ԉ
-F"BDV|\s`}SnԔ oStOt=G?t~͹jfH{
-VՈ\ 4GSq+>͈ƼhLDP7
-V}zDc"
-n`>x[euYM7f)e\{rP+|.x
-endstream
+8375 0 obj
+<< /D [ 8356 0 R /XYZ 81.077 561.636 null ] >>
endobj
8376 0 obj
-<< /Type /Page /Contents 8377 0 R /Resources 8375 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8356 0 R /XYZ 81.077 550.677 null ] >>
+endobj
+8377 0 obj
+<< /D [ 8356 0 R /XYZ 81.077 539.718 null ] >>
endobj
8378 0 obj
-<< /D [ 8376 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 528.759 null ] >>
endobj
8379 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 723.127 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 517.8 null ] >>
endobj
8380 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 712.168 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 506.841 null ] >>
endobj
8381 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 701.209 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 466.049 null ] >>
endobj
8382 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 690.25 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 455.09 null ] >>
endobj
8383 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 679.291 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 444.131 null ] >>
endobj
8384 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 668.333 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 433.172 null ] >>
endobj
8385 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 657.374 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 422.213 null ] >>
endobj
8386 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 646.415 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 411.254 null ] >>
endobj
8387 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 635.456 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 400.295 null ] >>
endobj
8388 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 624.497 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 389.336 null ] >>
endobj
8389 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 613.538 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 378.377 null ] >>
endobj
8390 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 602.579 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 367.418 null ] >>
endobj
8391 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 591.62 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 356.459 null ] >>
endobj
8392 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 580.661 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 345.501 null ] >>
endobj
8393 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 569.702 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 334.542 null ] >>
endobj
8394 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 558.744 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 293.749 null ] >>
endobj
8395 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 547.785 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 282.79 null ] >>
endobj
8396 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 536.826 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 271.831 null ] >>
endobj
8397 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 525.867 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 260.872 null ] >>
endobj
8398 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 514.908 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 249.913 null ] >>
endobj
8399 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 503.949 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 238.954 null ] >>
endobj
8400 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 492.99 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 227.995 null ] >>
endobj
8401 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 482.031 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 217.037 null ] >>
endobj
8402 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 471.072 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 206.078 null ] >>
endobj
8403 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 460.113 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 133.431 null ] >>
endobj
8404 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 449.155 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 122.473 null ] >>
endobj
8405 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 438.196 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 111.514 null ] >>
endobj
8406 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 427.237 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 100.555 null ] >>
endobj
8407 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 416.278 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 89.596 null ] >>
endobj
8408 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 405.319 null ] >>
+<< /D [ 8356 0 R /XYZ 81.077 78.637 null ] >>
endobj
-8409 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 394.36 null ] >>
-endobj
-8410 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 383.401 null ] >>
+8355 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F76 318 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8411 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 372.442 null ] >>
+<< /Filter /FlateDecode /Length 1708 >>
+stream
+xڽZ]o6}ϯXX~PtX EPl~[AX-">ʒ)I\EKJ<9^R =+O߷'o'.pd4at29!nH5Q ,du`gOե4L`0"nާ]zY>^ *Nm/uqOk)1<3y$ܣݑiOjS'Weo,ׯoD"ˏd$@u93Kt@[[ً|.y ,jD42dP O<MaNϝɇ%
+Q*<[coŢcU%RzJ! zuv #@ +ǀ2Btj*`*#͎0*!:Hleiݬ\R^\t!S%0iGq]RPG ҏRĕ7y`lCtJ~.'ۄ@ #%1M4u']K#g6<J0ޓ`
+!Z3W PwUދQG7@RD{G@8R~z"}ߤEݡ<%C{VF4DjS<lt<(@>THso
+Vt"W<9/
+V}"tV-*;+
+ozVl #ƽݛ0z!z d0 /5mn4ܛՏ}tZ!i+X#[:Dob쬷lQC6 OVrBpX QZ*O/2^uGpOe6!*kXБ:h'׋*Kp"jkXKKĘ| D9d/b;A DQxô<\f|iDÎ"# |uI̤1᫔qK9a A;Z:(ca3*OϨ>;eU7?Ӵynн^MBBUb\Fi9FbY,Rnu/K7N:Usv;譗] an"dO28D3qAjXPOvGڶ)R[Ъ>klTs漇nl3ib՞*ˡ»53z1C9{:ڎ(C#('*So F 6jԟJ$2n:YzIS~/``MRcꐮa0!{pĸ/t=E_FMi3_茆@+´/yÇ]\'V`ia+y*x(g:T`*xQP9#n ͈r C CW+!x9QFYG^Fכ^Y^wh@*
+w?O #ܓlD8ebBx)2WG 3s#t.gQE;>ĩB V#t@XHĕLVh#t(H{4@wf+U穵[ܼc|4A([b~'[o?tquY/+{̪yQ^3; ѬBQ${A88{pmrJ$<3xRN8FfCdkӓk)
+endstream
+endobj
+8410 0 obj
+<< /Type /Page /Contents 8411 0 R /Resources 8409 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8304 0 R >>
endobj
8412 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 361.483 null ] >>
+<< /D [ 8410 0 R /XYZ 78.37 808.885 null ] >>
endobj
8413 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 350.524 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 768.832 null ] >>
endobj
8414 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 339.565 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 757.873 null ] >>
endobj
8415 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 328.607 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 746.914 null ] >>
endobj
8416 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 317.648 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 735.955 null ] >>
endobj
8417 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 306.689 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 724.996 null ] >>
endobj
8418 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 295.73 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 714.037 null ] >>
endobj
8419 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 284.771 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 703.078 null ] >>
endobj
8420 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 692.119 null ] >>
endobj
8421 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 681.16 null ] >>
endobj
8422 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 670.202 null ] >>
endobj
8423 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 659.243 null ] >>
endobj
8424 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 648.284 null ] >>
endobj
8425 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 637.325 null ] >>
endobj
8426 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 626.366 null ] >>
endobj
8427 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 615.407 null ] >>
endobj
8428 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 604.448 null ] >>
endobj
8429 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 593.489 null ] >>
endobj
8430 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 582.53 null ] >>
endobj
8431 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 571.571 null ] >>
endobj
8432 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 560.613 null ] >>
endobj
8433 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 549.654 null ] >>
endobj
8434 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 538.695 null ] >>
endobj
8435 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 527.736 null ] >>
endobj
8436 0 obj
-<< /D [ 8376 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 516.777 null ] >>
endobj
-8375 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F76 318 0 R /F78 556 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-8439 0 obj
-<< /Filter /FlateDecode /Length 2470 >>
-stream
-xڵZ[o8~0Їu ˻Hc;(bb CGS[r$4=)t;}dsxnTh1£_ኄxݧ8Ҋ0:}C`HlI$q}zL(F1嬨TѪIedxFR`D0$ivfa0~Si[tӮrt=Yֳ/S3\QF3/
-K%D|͗bz[77|^T;RAJ"{<kc^n*L]s.q!J'.҈耸sSoʦ@5cLceUveܡLNj<,\nv]̺˼iG0nzc*ESTQdf>
-km/
-;XOʡ|G&g$A0nY41Bb
-#۪a:nmZ ',T5 1G,' iFb+h"~2CLe\h2֫HʀNw
--
- yMe&]5qy p{bxh] 6,8:yf)spi-MkK.>jhxk1g8`J]CٹdSqϘJGR~EZ0j|cڞJTih"aq qw:NrȼqT>ذ_ KC#fePi!:ֶfmV{ƕ}z\oz0J0v&>}pŒC{ )]Ճ?z83P29țbR]UCz^~a<aPVd8Kj<#tЃIt%ԶUP~8S!"QM.3Mtڷ}~~G"D짡 ( ߢ!iBS$a!H#rslc˗OSgmAXUBty(ea'L#Cڟ.oSh}&Qe*!0֞ω$Ei|u,:
-dY'D'ۆh6 S_˧IFA{
-rb.AO8X]9Vմ&GID6$F@15)IO!e.ODY*g*(λp㹫e,gwOjGO6 dc)M=De#>1ev&;J8(@U]"AωݔOu:U=o?V"J>S!:}mb +
-endstream
+8437 0 obj
+<< /D [ 8410 0 R /XYZ 81.077 505.818 null ] >>
endobj
8438 0 obj
-<< /Type /Page /Contents 8439 0 R /Resources 8437 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8410 0 R /XYZ 81.077 494.859 null ] >>
+endobj
+8439 0 obj
+<< /D [ 8410 0 R /XYZ 81.077 483.9 null ] >>
endobj
8440 0 obj
-<< /D [ 8438 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 472.941 null ] >>
endobj
8441 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 461.982 null ] >>
endobj
8442 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 451.023 null ] >>
endobj
8443 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 440.065 null ] >>
endobj
8444 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 429.106 null ] >>
endobj
8445 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 418.147 null ] >>
endobj
8446 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 407.188 null ] >>
endobj
8447 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 396.229 null ] >>
endobj
8448 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 365.345 null ] >>
endobj
8449 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 354.386 null ] >>
endobj
8450 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 343.427 null ] >>
endobj
8451 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 332.468 null ] >>
endobj
8452 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 321.509 null ] >>
endobj
8453 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 310.55 null ] >>
endobj
8454 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 299.591 null ] >>
endobj
8455 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 288.632 null ] >>
endobj
8456 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 277.674 null ] >>
endobj
8457 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 266.715 null ] >>
endobj
8458 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 528.732 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 255.756 null ] >>
endobj
8459 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 244.797 null ] >>
endobj
8460 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 233.838 null ] >>
endobj
8461 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 495.855 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 222.879 null ] >>
endobj
8462 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 211.92 null ] >>
endobj
8463 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 200.961 null ] >>
endobj
8464 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 426.117 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 190.002 null ] >>
endobj
8465 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 415.158 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 179.043 null ] >>
endobj
8466 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 326.49 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 168.085 null ] >>
endobj
8467 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 315.532 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 157.126 null ] >>
endobj
8468 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 146.167 null ] >>
endobj
8469 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 135.208 null ] >>
endobj
8470 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 124.249 null ] >>
endobj
8471 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 113.29 null ] >>
endobj
8472 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 102.331 null ] >>
endobj
8473 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 91.372 null ] >>
endobj
8474 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 238.819 null ] >>
-endobj
-8475 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 8410 0 R /XYZ 81.077 80.413 null ] >>
endobj
-8476 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 216.901 null ] >>
+8409 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8477 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 205.943 null ] >>
+<< /Filter /FlateDecode /Length 2359 >>
+stream
+xZKs۸Sh&3kIN>tpvHu<g" Jzh&0xv3ó__鉄}xs[fM]^ LK$)Idv{g{[if)bICW6mUpv.ܬE~COL2ں\P{]e*i>6' -۫jwׯnzp:߬G75%<cĨHWoPc2q \~
+ * M7W+GsF*0S2_U{tvCݻ4+?R^UmzpHw*,e[0ɼvq Rv3 $_gy<0~>:dW}SU7{,WUzOTAk栎IAXpUkïUW쓱R`Ez+#:Xb008FRhToUkId (挒1qFOMʮlfQO#081$[,ۮP]-.n$=RE\TT~>$ g$޷oY º}ae
+N'DG) !"/j(Ohٽ]]afqbB aBCY1Y6w25,4L4էb]ujq{cƹp)<;cd*ϋf^$'&BRj,GLgk
+9*K %O>o?e6wT$Y'pD&Cc dnL9X1.Vn+kWcԀqܕ,@0hwwo]5xui=Wc2(98z ŭNA6G <-Dd
+)ula BOc3_~-I$2J:M18:њWOhjI 򺶥}eWS.0hcmf2*wCewYWο܈崅: b#hJq%(3,Sh'Dy_<Gq:|cX2ն>g{WVKHnu9ʽ8dpxT+BΟ9zspIsmLM[xu?YVtm<ߜ`P[Sĵd0ٮr i;LcJA1)ޑ;,pwq> t= RUwU٠҈Po%4J7Q
+Gº: >[:ńmvŽ9ىhMsGONMG
+DMHz"/&|1K :ib[]S!c#T6LOtK
+#%Foi@(A\/t)1|N#.1yldAC@8~QVH%"$?O'K$ UҬp Q@rm^/@@F
+endstream
+endobj
+8476 0 obj
+<< /Type /Page /Contents 8477 0 R /Resources 8475 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8304 0 R >>
endobj
8478 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 8476 0 R /XYZ 78.37 808.885 null ] >>
endobj
8479 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 768.832 null ] >>
endobj
8480 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 757.873 null ] >>
endobj
8481 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 746.914 null ] >>
endobj
8482 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 735.955 null ] >>
endobj
8483 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 671.198 null ] >>
endobj
8484 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 660.239 null ] >>
endobj
8485 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 649.28 null ] >>
endobj
8486 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 638.321 null ] >>
endobj
8487 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 627.362 null ] >>
endobj
8488 0 obj
-<< /D [ 8438 0 R /XYZ 81.077 85.395 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 616.403 null ] >>
endobj
-8437 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-8491 0 obj
-<< /Filter /FlateDecode /Length 2139 >>
-stream
-xZ]o8}ϯ&,Ie1``` 2]M;Beɕ$ݠ{)ʔ,Lzg^ zw8J4atv P LK$)Idv>W&o;4Jdz &
-5 ϗWY\ :r_)ǯmU}-zmC.Agh07#~$19o ™ַЈ%:D{X>T#CO#C9BTx*,bRQ)=GeT0OEִi]=y@ +GD !EUGsx8>c~ęS%ᙨ8&#<3_*:oAWG;ѷ3d9T#ޣ)!v }S>ћbX4ڔZ>duM9h]l_ʝ}y_>xÙIf ٩1 8J/{syp2_UEQ]R5˵+ZTMV.&)>$Z3 Ǽ(l /#jyY
-4!3:6~;mJN%K!ܣɄ.;:ө/ZqoðÏWeD [~|'X#J!ykS6F|gPDI`lGw60ny8ؖ<l%n>p)<+v 06Qmۼ*,8={ֻ9gwJ2E {E4F]p.yLu՚Ek7k>v,{aԏTq"}Yl "3=3u]'/EHJySuT;h"'c2F[*Cf.ocGda6`Qi1a՝MUu&; <UTh#΄I0x/?GGPYT_Yt#F$"xEr$WiQk گ}Bu,/.A@HHI򣥀!2r}iwQ58~l_Y^7weM^.)zvkwzC4%GDyt~1-!Asd~e;k h\`Dpzhz[8wDáB]Uvm37͜mnz[>#Ó8hϸ9^|@0G9
-II8Rct?S"$P8#pt%6>1a )@gݵiAŞZCzil՚:m甁W^J:~K!qKOW3P>]-z6-+oy˜qKMIlw6cIᝩq(ڰt׼A;\gϴr$E]x XCm|J\( ^*d_+WiM7qB]DHKVeP 4X)A. ~W)AJ@o޻8%P8%P*G8%J@@8N t|US
-dޘO;Xl֣->K.QS5yw->Jt_̻LIpy״0, { >|v"%!Q"tɞ=ԒP^08~q?Y߭\9|wiܫEجy_3+ʽoK(8VW`+cc`Z{{}R <pE<[UOi$'#>k~鞕#D!>NU\¬1%
-"VWhX"1OU\jōD 뭗M:Xf3\%rcptϚ#D(Lȵ'r1JT$5ۋb
-endstream
+8489 0 obj
+<< /D [ 8476 0 R /XYZ 81.077 605.444 null ] >>
endobj
8490 0 obj
-<< /Type /Page /Contents 8491 0 R /Resources 8489 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8476 0 R /XYZ 81.077 589.504 null ] >>
+endobj
+8491 0 obj
+<< /D [ 8476 0 R /XYZ 81.077 578.545 null ] >>
endobj
8492 0 obj
-<< /D [ 8490 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 535.706 null ] >>
endobj
8493 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 524.747 null ] >>
endobj
8494 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 436.08 null ] >>
endobj
8495 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 425.121 null ] >>
endobj
8496 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 414.162 null ] >>
endobj
8497 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 403.203 null ] >>
endobj
8498 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 392.244 null ] >>
endobj
8499 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 381.285 null ] >>
endobj
8500 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 370.326 null ] >>
endobj
8501 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 359.367 null ] >>
endobj
8502 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 348.408 null ] >>
endobj
8503 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 337.449 null ] >>
endobj
8504 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 326.49 null ] >>
endobj
8505 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 315.532 null ] >>
endobj
8506 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 304.573 null ] >>
endobj
8507 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 293.614 null ] >>
endobj
8508 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 531.721 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 282.655 null ] >>
endobj
8509 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 520.762 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 271.696 null ] >>
endobj
8510 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 509.803 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 260.737 null ] >>
endobj
8511 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 498.844 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 249.778 null ] >>
endobj
8512 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 238.819 null ] >>
endobj
8513 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 442.057 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 227.86 null ] >>
endobj
8514 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 431.098 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 216.901 null ] >>
endobj
8515 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 420.139 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 205.943 null ] >>
endobj
8516 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 194.984 null ] >>
endobj
8517 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 184.025 null ] >>
endobj
8518 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 173.066 null ] >>
endobj
8519 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 162.107 null ] >>
endobj
8520 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 151.148 null ] >>
endobj
8521 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 140.189 null ] >>
endobj
8522 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 129.23 null ] >>
endobj
8523 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 332.468 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 118.271 null ] >>
endobj
8524 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 321.509 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 107.312 null ] >>
endobj
8525 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 310.55 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 96.354 null ] >>
endobj
8526 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 299.591 null ] >>
+<< /D [ 8476 0 R /XYZ 81.077 85.395 null ] >>
endobj
-8527 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 288.632 null ] >>
-endobj
-8528 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 277.674 null ] >>
+8475 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8529 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 266.715 null ] >>
+<< /Filter /FlateDecode /Length 2097 >>
+stream
+xZmo6_b.EP(-ܗۃش-Ddkިxć3Cg| "6H+~uEHhI$?HHv_z10>wl`&1*|tllqlL&>#a|Qk2Mi׷wYxntpM{M5iЎJ>.҈e0?+\0"ˊk͟|^-6ɗt %A[tJ3RdseNdQ, Oϗe(jyX
+ŭ)tl
+<,lo,Bui`NM|ntoRimi?!q!K3{GTPDi`l&Kz"qt,`*n>t-<!]y)xyZ(,qtz$b'B.cl-yweQEmw3 :R-3o[Ѷ24IgC>fGhf2Oj,_
+61pay&R"@yhDYm*K5aV4c ]R.c~wG6?Bu08}Uqe+a+<*~hL= !_HJVGƄi*.6=wMŽ72"_3*Ϯ("Ee6DI`n@$گ}{:u$ͫA@ȷ7 ;ylSL)闸Ed<~kG,p 31|abU2}JfyHv9DVeUZjÑV&$8 ! {,NW1|D1oK;CQdvu7w͜lw~[YKg9 |5Β>ǠWc~>+^榋{\*e D"L1]o[랗#} ^YHgq7b/d&NV):xMyLb8TGOE/̴EIW+c !I8^t6<P0/H { uv7C%q(aѣYiz:.g ڝbn]b%㈪>D+sp4eуM(bg%CTn'Ky+]q8(>0Ӷ3w
+endstream
+endobj
+8528 0 obj
+<< /Type /Page /Contents 8529 0 R /Resources 8527 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8304 0 R >>
endobj
8530 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 8528 0 R /XYZ 78.37 808.885 null ] >>
endobj
8531 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 244.797 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 768.832 null ] >>
endobj
8532 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 233.838 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 757.873 null ] >>
endobj
8533 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 222.879 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 741.933 null ] >>
endobj
8534 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 211.92 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 681.16 null ] >>
endobj
8535 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 200.961 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 670.202 null ] >>
endobj
8536 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 190.002 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 641.31 null ] >>
endobj
8537 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 179.043 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 630.351 null ] >>
endobj
8538 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 168.085 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 619.392 null ] >>
endobj
8539 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 125.245 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 608.433 null ] >>
endobj
8540 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 114.286 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 567.586 null ] >>
endobj
8541 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 103.327 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 551.646 null ] >>
endobj
8542 0 obj
-<< /D [ 8490 0 R /XYZ 81.077 92.368 null ] >>
-endobj
-8489 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8528 0 R /XYZ 81.077 540.687 null ] >>
endobj
-8545 0 obj
-<< /Filter /FlateDecode /Length 1481 >>
-stream
-xZMOH+"H+VZFؑe'X;&[v;C*j.8yC' |>Õ|܈$2'/ XM43Mfc;2ӿ\%NkaC0b_LȦHeݮɩ~|,>iBk.*J僋
-U6 yFLKBȹgP}A ge%BJ+fAgJ85DJ+
-4DS,D*-VQ'Bm[荹q#֌q_]/8$PcֻS&7) hqJ_ ONyxH88H|d&7h?BEMmy%k@' 1*AF"ݓMϰ#v-U&oϻ ё9'lOҥj}E^.'a jlҼV4yd7!-'B:#ϗL+Bm KF"d
-g:
-endstream
+8543 0 obj
+<< /D [ 8528 0 R /XYZ 81.077 529.728 null ] >>
endobj
8544 0 obj
-<< /Type /Page /Contents 8545 0 R /Resources 8543 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8528 0 R /XYZ 81.077 518.769 null ] >>
+endobj
+8545 0 obj
+<< /D [ 8528 0 R /XYZ 81.077 507.811 null ] >>
endobj
8546 0 obj
-<< /D [ 8544 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 496.852 null ] >>
endobj
8547 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 485.893 null ] >>
endobj
8548 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 474.934 null ] >>
endobj
8549 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 463.975 null ] >>
endobj
8550 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 453.016 null ] >>
endobj
8551 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 442.057 null ] >>
endobj
8552 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 431.098 null ] >>
endobj
8553 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 420.139 null ] >>
endobj
8554 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 672.93 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 409.18 null ] >>
endobj
8555 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 661.971 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 398.221 null ] >>
endobj
8556 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 651.013 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 387.263 null ] >>
endobj
8557 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 640.054 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 376.304 null ] >>
endobj
8558 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 629.095 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 365.345 null ] >>
endobj
8559 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 618.136 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 354.386 null ] >>
endobj
8560 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 607.177 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 343.427 null ] >>
endobj
8561 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 591.728 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 332.468 null ] >>
endobj
8562 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 580.769 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 321.509 null ] >>
endobj
8563 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 569.81 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 310.55 null ] >>
endobj
8564 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 558.851 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 299.591 null ] >>
endobj
8565 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 547.892 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 288.632 null ] >>
endobj
8566 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 536.933 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 277.674 null ] >>
endobj
8567 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 525.974 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 234.834 null ] >>
endobj
8568 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 515.015 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 223.875 null ] >>
endobj
8569 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 504.056 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 212.916 null ] >>
endobj
8570 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 493.097 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 201.957 null ] >>
endobj
8571 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 477.648 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 171.073 null ] >>
endobj
8572 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 466.689 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 160.114 null ] >>
endobj
8573 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 455.73 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 149.155 null ] >>
endobj
8574 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 444.771 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 138.197 null ] >>
endobj
8575 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 433.812 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 127.238 null ] >>
endobj
8576 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 422.853 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 116.279 null ] >>
endobj
8577 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 411.895 null ] >>
-endobj
-8578 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 400.936 null ] >>
+<< /D [ 8528 0 R /XYZ 81.077 105.32 null ] >>
endobj
-8579 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 389.977 null ] >>
+8527 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8580 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 379.018 null ] >>
+<< /Filter /FlateDecode /Length 1449 >>
+stream
+xZMOH+"qi?"4Zii#+X;--'N%i.8yWUDL׋OgJL"D\I@LG~~ryrlO^CD *
+GImYvUS6w`{" 뉁V]'M u|:sq!KoHӏVٓ?6㲨nZo/ :7^\eB*y\sܾ~ުC) *L̋Urz>^Z?٪+dv_]7UJZEib̷,4fL~utUg1_>nz^Z6-V]ܕuqhV]T`J-e$I*/jޖ.H0v#(ftV?EQ>=?{:WM{Sb=6WkD5ܔlFcEVtnAr1ϙ.g][=ܔ+ۢ[)kAR/9.%!Ԟ1Pt~ȴk63)
+ Am#v0&J;h(1?q>PGRC|+,+^I hm+A1x%{Vf
+o (|ޘiB*og ځۺmj#۶Jn k^'hmjn<𰖵Aл x9oPIގYAs7npP9/-Y AۛM{]m z+ C1.!49^ ˑt
+Mm 5ATmٟk~ < LT'pKa; >S'z7q4߶ ǣ9{fێ
+8~ޜ'M v)5|Yl~ Ux+NJ<Hc x[9xE/&F0gkRVĹ`8Ub
+endstream
+endobj
+8579 0 obj
+<< /Type /Page /Contents 8580 0 R /Resources 8578 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8304 0 R >>
endobj
8581 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 368.059 null ] >>
+<< /D [ 8579 0 R /XYZ 78.37 808.885 null ] >>
endobj
8582 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 357.1 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 754.977 null ] >>
endobj
8583 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 346.141 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 744.018 null ] >>
endobj
8584 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 335.182 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 733.059 null ] >>
endobj
8585 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 324.223 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 722.101 null ] >>
endobj
8586 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 313.264 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 711.142 null ] >>
endobj
8587 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 302.306 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 700.183 null ] >>
endobj
8588 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 291.347 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 689.224 null ] >>
endobj
8589 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 280.388 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 673.47 null ] >>
endobj
8590 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 269.429 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 662.511 null ] >>
endobj
8591 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 258.47 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 651.552 null ] >>
endobj
8592 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 247.511 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 640.593 null ] >>
endobj
8593 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 236.552 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 629.635 null ] >>
endobj
8594 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 225.593 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 618.676 null ] >>
endobj
8595 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 214.634 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 607.717 null ] >>
endobj
8596 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 203.675 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 596.758 null ] >>
endobj
8597 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 192.716 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 585.799 null ] >>
endobj
8598 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 181.758 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 574.84 null ] >>
endobj
8599 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 559.086 null ] >>
endobj
8600 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 548.127 null ] >>
endobj
8601 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 537.169 null ] >>
endobj
8602 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 526.21 null ] >>
endobj
8603 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 515.251 null ] >>
endobj
8604 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 504.292 null ] >>
endobj
8605 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 493.333 null ] >>
endobj
8606 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 482.374 null ] >>
endobj
8607 0 obj
-<< /D [ 8544 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-8543 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F20 186 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8579 0 R /XYZ 81.077 471.415 null ] >>
endobj
-8610 0 obj
-<< /Filter /FlateDecode /Length 2899 >>
-stream
-x\[oܺ~P]]F
-y 5 J9 8.w<(I^ w78R`! sYt\dl5wis:g3<+Tio>,S"fESx${<.ʬ9,! HFt:"Wy&IT_wAĢڴ]uuP@dܟڴn6,W8_}?,%
-U2+y$skY}c<G}YW
-(0Da̍W7uoPơ|[LUuղ}o6^h[D@Y?Zmw;س $i&zVKH0:>׋T s$!W'
-&
-8pCy#HGܳy: Xq*y410[A=yOm뚟ژFwi c(ќ".Q˟dhJMb9pMSwjxC|cB2("*9.[yG|pʠ G$!EAOa`^lnc(&?&b`= >ǔ9끰: tgPV%0QϒC6# PNއQXr]}'ah>cH'tkj
-puQa.1&!
-a#g.[Wo;nI횂 ?zSu nY[ >Œ,gE6.C-ӧIQcr&owʶXߢf24`F)$$ʙ@S̢FE'X t o32$׵Cbc
-Ji2BɧVc
-]#"L6BC+1kN
-(<KV~L’c<9$fbyޓ<wx-_Qc1Ls.!XgsÉ_ZQ/ Hl(~$$_7 =o邢;ۀ,GӨܫ+euJ5Ke{yrUC2An
-uTp1A\Ir[5TY^׽wup fSaҹܶv]ո [I^4H^2[Dٹ[ݮni \a܇҇v{7Ctu)_q:V'$L\;z|prDw+;uq1_I¶Hy5w8脅Ird%9'~ )Ifrt'j9H?&C'k.3J*FłiZ|(tcdg:c
-I6g-7CXq^5Y,UpҊ*c;ÒE@nãq; dSΤk$̝n#f`,G-aޗJ@w| z^zfx,ZogFB:.0XT"QL]ah}soqw, {C q?>vˤa6$"lC_sz׾~,\=XPޓ! Qp'=%Ntr!H>
-endstream
+8608 0 obj
+<< /D [ 8579 0 R /XYZ 81.077 460.456 null ] >>
endobj
8609 0 obj
-<< /Type /Page /Contents 8610 0 R /Resources 8608 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8579 0 R /XYZ 81.077 449.497 null ] >>
+endobj
+8610 0 obj
+<< /D [ 8579 0 R /XYZ 81.077 438.538 null ] >>
endobj
8611 0 obj
-<< /D [ 8609 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 427.579 null ] >>
endobj
8612 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 416.621 null ] >>
endobj
8613 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 405.662 null ] >>
endobj
8614 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 394.703 null ] >>
endobj
8615 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 383.744 null ] >>
endobj
8616 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 372.785 null ] >>
endobj
8617 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 361.826 null ] >>
endobj
8618 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 350.867 null ] >>
endobj
8619 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 339.908 null ] >>
endobj
8620 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 328.949 null ] >>
endobj
8621 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 317.99 null ] >>
endobj
8622 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 307.032 null ] >>
endobj
8623 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 296.073 null ] >>
endobj
8624 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 621.385 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 285.114 null ] >>
endobj
8625 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 610.426 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 274.155 null ] >>
endobj
8626 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 599.467 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 263.196 null ] >>
endobj
8627 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 342.02 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 247.442 null ] >>
endobj
8628 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 331.061 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 236.483 null ] >>
endobj
8629 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 320.102 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 225.524 null ] >>
endobj
8630 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 309.143 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 214.566 null ] >>
endobj
8631 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 298.184 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 203.607 null ] >>
endobj
8632 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 287.225 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 192.648 null ] >>
endobj
8633 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 276.266 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 181.689 null ] >>
endobj
8634 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 265.307 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 170.73 null ] >>
endobj
8635 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 254.348 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 159.771 null ] >>
endobj
8636 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 243.39 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 148.812 null ] >>
endobj
8637 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 232.431 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 137.853 null ] >>
endobj
8638 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 179.629 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 126.894 null ] >>
endobj
8639 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 168.67 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 100.555 null ] >>
endobj
8640 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 157.711 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 89.596 null ] >>
endobj
8641 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 146.752 null ] >>
+<< /D [ 8579 0 R /XYZ 81.077 78.637 null ] >>
endobj
-8642 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 135.793 null ] >>
-endobj
-8643 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 124.834 null ] >>
+8578 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 186 0 R /F19 184 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8644 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 113.875 null ] >>
+<< /Filter /FlateDecode /Length 2806 >>
+stream
+x[oۼBC&V|'((`P&jK4Q$R[@j[;xoOYrd۳{Eܾߞ<{F҄!0%,H`HQ&prJ9Bfk/T̘EECǖ[<C8#x\!US<_ru~]W՗ j큑iD 0~<O9} (8(>w
+KD8(>bV~k. s02M0{
+_ZM[B,`nW~DQX1 Q5 3)clJxgŵٴW;cM\VD-A]KNf/X~o#$زFtJg"oU7k(~QUy
+t{W,셻cQ.dkNljߪyJԍu[Sv~Un2]Y-U~} 6 nj. EoѺrw;Iauʤ)N\V.eTR&}ػwpk_X`-`eVC\:!8sKT  U?T}s$hS
+DJQ njY5o|n޼6+[p%/>T>ּ1rP!?ڑw/ߪC2ە- w=.OSqHdR ^ۍ<|{7lWuaW*AgYl5HA*suHuДdZ`BcXVAMP|%?(*õ-
+4Z`'YOeȦKCj2,B> ԩDL?X%CzVOR{s[M@yGhΆ~ ۦX)PWr)\B8Y |/eքn-yGݦ)+ϑջn-PS*L,)&Qw)G#P>'
+ =YOzCd
+:@ͱF <OT
+yUV$F?nM̱t* äqx}nXͷOzpwf5a܇ԻzO*+>ޫ jD%C1n7!}ܾͰS쟚Q2n>ADX"B8>wLL6w3R&s2t 'z_.:D.x+<6fX|(X{X#c
+X[Ⱦ\qfm@*7sZ_/޽lt>qP3Z_ku;fuX(Rݩe#(_b(;ZD=p }v;-hi;yĀXpի8/ʩQ4S%sޭ-,AQBUhG=p?X9eL=p?#VbqT{qsǯA'_;=E4ճ}hog?l
+endstream
+endobj
+8643 0 obj
+<< /Type /Page /Contents 8644 0 R /Resources 8642 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8304 0 R >>
endobj
8645 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 102.916 null ] >>
+<< /D [ 8643 0 R /XYZ 78.37 808.885 null ] >>
endobj
8646 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 91.957 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 768.832 null ] >>
endobj
8647 0 obj
-<< /D [ 8609 0 R /XYZ 81.077 80.998 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 757.873 null ] >>
endobj
-8608 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-8650 0 obj
-<< /Filter /FlateDecode /Length 2275 >>
-stream
-xZ[o8~0`W 0@ yX؇*r,Ԗ\KNZ"TL[;m_Ooϟͻ-8R0]! /B('Ţ 9YnfE^:W T3)#WmwWkf`M)3%/0F?]\
-*E˶~3gzf}*O$-dlKDDr?u84J&TcK| V]m~wMB<
-b1쌽.h=d9/hp-dVr0*7LqmK*ډmz\7~ڽi7ޗ*f?7v:۲; 36lF`qM;|_}S>Drĸ>V
-jy{z%PAzr$́0Hcyz**
-BwiJG`
-rNs{EINybT"X6wXkC)o-MJ)yl
-q499B`퓻faY ]5lwԒni:@&v[g#aF5A= CEs LAp=ށl쓲mq]]F
-Ml_W . b~+W,Cg-imQ>^c5%Ӹ:!|DC8h~q'HJG߰hRRo2w.mQCVHIbimx4ӺnzHA&ISEѭΛL]r/'_ɂN`({` ɜΕ'R?SZDO}I/u^ݴ׳Ĵ=lR=ʡWILќt ԙ$l,fhwN mEL я&%ν (M1D Ku3[Dw_;C3*(D12lI BMO*#9gK>OE<,f:[LmIWF˸{U'O2@wR,c{fqu 벷ClJ}ux|OZȩ@E?<q 0,^7%9~nGc?q*-+hvL%(W_9%VoS"`1G;O;{
-79U(&%<ID1UvWAܴ/Gqx
--2ANPHL P&U!1'àWm8O@BN g j.(V`!:US[Iڎ/઻i;<=1k\rJQi4m!,!๟ K1F,<moWI7F$U]?2x9,7%Im Il
-̕wCޢH!HR#%I$!RULGh1L <hbxAct_1#\x. $mb!M¿!>4e ֋L߮)Dx i<B'MA`X4}ǖ TI:}\ I _3(7:gg&r"trv&
-i{BRNKiX.@}] KC26(̐>R .T|SMA!%ny8לHr?fN $Fp. ?tͿV
-endstream
+8648 0 obj
+<< /D [ 8643 0 R /XYZ 81.077 746.914 null ] >>
endobj
8649 0 obj
-<< /Type /Page /Contents 8650 0 R /Resources 8648 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8643 0 R /XYZ 81.077 735.955 null ] >>
+endobj
+8650 0 obj
+<< /D [ 8643 0 R /XYZ 81.077 724.996 null ] >>
endobj
8651 0 obj
-<< /D [ 8649 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 714.037 null ] >>
endobj
8652 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 703.078 null ] >>
endobj
8653 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 692.119 null ] >>
endobj
8654 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 681.16 null ] >>
endobj
8655 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 423.713 null ] >>
endobj
8656 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 412.754 null ] >>
endobj
8657 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 401.795 null ] >>
endobj
8658 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 390.837 null ] >>
endobj
8659 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 379.878 null ] >>
endobj
8660 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 587.512 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 368.919 null ] >>
endobj
8661 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 576.553 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 357.96 null ] >>
endobj
8662 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 535.706 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 347.001 null ] >>
endobj
8663 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 524.747 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 336.042 null ] >>
endobj
8664 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 513.788 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 325.083 null ] >>
endobj
8665 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 502.829 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 314.124 null ] >>
endobj
8666 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 491.87 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 261.322 null ] >>
endobj
8667 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 480.911 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 250.363 null ] >>
endobj
8668 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 469.953 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 239.404 null ] >>
endobj
8669 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 458.994 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 228.446 null ] >>
endobj
8670 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 448.035 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 217.487 null ] >>
endobj
8671 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 437.076 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 206.528 null ] >>
endobj
8672 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 195.569 null ] >>
endobj
8673 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 184.61 null ] >>
endobj
8674 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 173.651 null ] >>
endobj
8675 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 162.692 null ] >>
endobj
8676 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 151.733 null ] >>
endobj
8677 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 140.774 null ] >>
endobj
8678 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 129.815 null ] >>
endobj
8679 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 118.857 null ] >>
endobj
8680 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 308.558 null ] >>
-endobj
-8681 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 8643 0 R /XYZ 81.077 107.898 null ] >>
endobj
-8682 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 286.64 null ] >>
+8642 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8683 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 275.681 null ] >>
+<< /Filter /FlateDecode /Length 2435 >>
+stream
+xZ[o~_a`VF",0hnQЇnahd9ƖINfE*N}%/߹Qċ^?߽{FZRww*,RXH%AX~^4yZ^3ɓ%IB%ySd}IbmtT%ʉ+zږe,+*lgKETv'ۃk׼]ͦ<dOInuWǷYWn&0> ׈`dוu&y06] hy9Oi`ţm8T]y& YH񩝣#.i8xͦJ#ghҔa nÈDP!5Hг:զnYW֕߄UO)г 00M]UgK`XϺ0[}vUoVvuygէޝZIj!А [5NJQ&3*
+\ShÔ:nˬlٮ-p5 v'FRƽZ&Zl cg p#S("ֈ
+?fb:G
+d*
+6b2&XۏkAE1[Z͖ayV)bKck$*@-Ups{;V?|ZA),_/dǞw 'dWji-]s4&?,pPtxeuA׮&J|So@}R5_
+Hמn2E zwWt;iX;R(yo{/G5LT蟭c%Yci;12m6L^׵kW;փ{GX8`8#N3-H4+Dj5S)𽬺UUYʪjTkM6ev~&ݨ<Δvul]JC [}J8*/V--iyfɅ5Wx\a<)2t?tNZQx|猌se=qn q&㸆P<2O ]v}\ P|)a u%9=]Q@ 3V&,4Ѡg
+H!T!U4!:^f J Q耫 yV'd-K%ң 2nS$ʼIVi%[WHaǟ 8~d +%*Lcsُs ??B~1^|g
+WVFN0:wx, 8{!1XqAZ7+_,~K!` 9$Ʃ/gxYfS;CiK-;s }Y[\⫑m}T&Q9"a59B>F8ONwӖ1|U泛+c(.DqTN{C@>p[ݽ14V<!,$L3h|)
+>փT} N1b7,nS"S;] =J-(X.k"J#al7j=sˡVmÙJz)Y*M՜I&@Fc
+g33'rDl)@GKQ>Xs.hO)nUkgTUBT 8LѧOGG~:EP?񿉘D<(@۲l^v}q%br\E З
+L3\i՝iXmuyܻSloBc=X6jyͱ=sp:/+HǢ0ĕ7cUeX|M-ϟ2ﬧ.sj-/19ypbO\\=Ve,sm].ٳdHәLr|ZABM z,} I)Q<rq[پB V_(#%L Qf
+>W No>g`zM
+endstream
+endobj
+8682 0 obj
+<< /Type /Page /Contents 8683 0 R /Resources 8681 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8304 0 R >>
endobj
8684 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 264.722 null ] >>
+<< /D [ 8682 0 R /XYZ 78.37 808.885 null ] >>
endobj
8685 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 253.763 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 717.026 null ] >>
endobj
8686 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 242.804 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 706.067 null ] >>
endobj
8687 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 231.845 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 695.108 null ] >>
endobj
8688 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 220.887 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 652.269 null ] >>
endobj
8689 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 209.928 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 641.31 null ] >>
endobj
8690 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 198.969 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 600.463 null ] >>
endobj
8691 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 188.01 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 589.504 null ] >>
endobj
8692 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 177.051 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 578.545 null ] >>
endobj
8693 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 166.092 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 567.586 null ] >>
endobj
8694 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 155.133 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 556.627 null ] >>
endobj
8695 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 144.174 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 545.669 null ] >>
endobj
8696 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 133.215 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 534.71 null ] >>
endobj
8697 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 122.256 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 523.751 null ] >>
endobj
8698 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 111.297 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 512.792 null ] >>
endobj
8699 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 100.339 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 501.833 null ] >>
endobj
8700 0 obj
-<< /D [ 8649 0 R /XYZ 81.077 89.38 null ] >>
-endobj
-8648 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8682 0 R /XYZ 81.077 460.986 null ] >>
endobj
-8703 0 obj
-<< /Filter /FlateDecode /Length 1799 >>
-stream
-xڽZKo6WPh)h,Þ|bˉ[r$9nzPz^g}bFI%>#2R15R ,h5c=2}ڼYiRm׏yx6]9'SǫOH3xS6ϊ)/)z<jҾO1s71b@vیZd*)ӿ "X6^eK7c"D#fb'b^Zd*eY7qSF63㍳8֨?qRviT~2%,ٵj(,\;cjT*8o*}. :{#A
-F#ڧY.@]rީZ!gQk9"tKHw6-ZBܸ9]Z8E%>_q[EMZr%]'N
-ĴO]>"t[=ֵ,BIGkwx %^ ov|W]b3\Qr̘3ĥW|aC4^@^慼 6^m/
-w=ÝiGR_1H/l{˄݂E讆V1{;aZ#_}3.pHT&`5B|ȋYt@$4!ڛiܕ;`6OAF*De$#kn)/e?mml6c}6"1l#<1j;eӆ$?BRJ6fYt?v< n¶F\")0B m}b to!wSZP.`q |`;Pe^ ġ9-ԈPߖSeDs/z>PW^R> W`R")D} Ё
-yrbtyQQaB4<<w'LS^ex1z~ݬAhA`vq%Q~Ոͯby fa`U7"t϶pyr<T8K"\8 BByiV
-F>Dݯdk F%
-?Q@îB[mQiVs+}fkvb!#) C
-endstream
+8701 0 obj
+<< /D [ 8682 0 R /XYZ 81.077 450.027 null ] >>
endobj
8702 0 obj
-<< /Type /Page /Contents 8703 0 R /Resources 8701 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8682 0 R /XYZ 81.077 439.068 null ] >>
+endobj
+8703 0 obj
+<< /D [ 8682 0 R /XYZ 81.077 428.109 null ] >>
endobj
8704 0 obj
-<< /D [ 8702 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 417.151 null ] >>
endobj
8705 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 743.205 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 406.192 null ] >>
endobj
8706 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 732.246 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 395.233 null ] >>
endobj
8707 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 721.287 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 384.274 null ] >>
endobj
8708 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 710.328 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 373.315 null ] >>
endobj
8709 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 699.369 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 362.356 null ] >>
endobj
8710 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 688.41 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 351.397 null ] >>
endobj
8711 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 677.452 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 340.438 null ] >>
endobj
8712 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 666.493 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 329.479 null ] >>
endobj
8713 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 655.534 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 318.52 null ] >>
endobj
8714 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 644.575 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 307.561 null ] >>
endobj
8715 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 633.616 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 296.603 null ] >>
endobj
8716 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 622.657 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 285.644 null ] >>
endobj
8717 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 611.698 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 274.685 null ] >>
endobj
8718 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 600.739 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 263.726 null ] >>
endobj
8719 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 589.78 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 252.767 null ] >>
endobj
8720 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 560.829 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 241.808 null ] >>
endobj
8721 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 549.87 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 230.849 null ] >>
endobj
8722 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 538.911 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 219.89 null ] >>
endobj
8723 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 527.952 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 208.931 null ] >>
endobj
8724 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 516.993 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 197.972 null ] >>
endobj
8725 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 506.034 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 187.014 null ] >>
endobj
8726 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 495.075 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 176.055 null ] >>
endobj
8727 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 484.116 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 165.096 null ] >>
endobj
8728 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 473.157 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 154.137 null ] >>
endobj
8729 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 462.199 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 107.312 null ] >>
endobj
8730 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 451.24 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 96.354 null ] >>
endobj
8731 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 440.281 null ] >>
+<< /D [ 8682 0 R /XYZ 81.077 85.395 null ] >>
endobj
-8732 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 429.322 null ] >>
-endobj
-8733 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 418.363 null ] >>
+8681 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8734 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 407.404 null ] >>
+<< /Filter /FlateDecode /Length 1613 >>
+stream
+xڽZMoFW0P$(<M|ҭ)Jl")h{ܥeG#'y3$N O/>||"d"2@Q=ъQt2_OzdGe'R܄`*Ic+ϔ,ʇpI,(:ɷY},I8Bt`vM]UϿʪn{̚6n
+!pO{3oyڽnM>},1ɨ( c%ǒ!
+R>HWddT8EڴI]=&,Se%p=SbOe#%opa=yZN< ֊nT['Y:b WzEQJrN2ɰ1o.^Չp8ʛNe34bA!*NTcJ;Eեjz=8Jt&-o,Mi (J<%C AP;_4}dml^evIݷQX1Tg
+\O8sBt/߲Jvl<G⥒ G2D$ϝ_$8neZV۲
+H|)p~(+DyY/} H>u^dЦj6ʪܤY[o9K}C)b>PY=ezM-[Eg(Xi<;\Ї~IN(]twG%`yq|Ct&_T,^2qDC+1!@|h#1…I1mC0UEKy!~/W#k+Z)îq+tUJ3+;Eh{_ xC^H`b8tZ`qZcN-*B=dcDZ#:?Zz071Q\yо/o_M2Sp+̚dw!FƲ#"R/|?RWTh)\kn 9"PDhĵa}05GhʷE~iY>kݏHðF(Zbj0B(5H Ѩm i{BsыmEh%>thbtu(uӞX*"G觗ۈCͽQy;o䔃^c-Qϛ},Q\.B4R0ˡ娌AFur(f
+"4:`W5+QߒQɤ^Beńvy=G=D?װ\¼>Z6Ghh؞YZ/ghT%{&..3(СAK:Zo:
+*DdRALG{/5~
+endstream
+endobj
+8733 0 obj
+<< /Type /Page /Contents 8734 0 R /Resources 8732 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8304 0 R >>
endobj
8735 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 396.445 null ] >>
+<< /D [ 8733 0 R /XYZ 78.37 808.885 null ] >>
endobj
8736 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 385.486 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 768.832 null ] >>
endobj
8737 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 374.527 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 757.873 null ] >>
endobj
8738 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 363.568 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 746.914 null ] >>
endobj
8739 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 352.61 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 735.955 null ] >>
endobj
8740 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 341.651 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 724.996 null ] >>
endobj
8741 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 330.692 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 714.037 null ] >>
endobj
8742 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 319.733 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 703.078 null ] >>
endobj
8743 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 308.774 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 692.119 null ] >>
endobj
8744 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 297.815 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 681.16 null ] >>
endobj
8745 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 286.856 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 670.202 null ] >>
endobj
8746 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 275.897 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 659.243 null ] >>
endobj
8747 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 648.284 null ] >>
endobj
8748 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 617.4 null ] >>
endobj
8749 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 606.441 null ] >>
endobj
8750 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 595.482 null ] >>
endobj
8751 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 584.523 null ] >>
endobj
8752 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 573.564 null ] >>
endobj
8753 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 562.605 null ] >>
endobj
8754 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 551.646 null ] >>
endobj
8755 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 540.687 null ] >>
endobj
8756 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 529.728 null ] >>
endobj
8757 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 518.769 null ] >>
endobj
8758 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 507.811 null ] >>
endobj
8759 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 496.852 null ] >>
endobj
8760 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 485.893 null ] >>
endobj
8761 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 474.934 null ] >>
endobj
8762 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 463.975 null ] >>
endobj
8763 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 453.016 null ] >>
endobj
8764 0 obj
-<< /D [ 8702 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-8701 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F78 556 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8733 0 R /XYZ 81.077 442.057 null ] >>
endobj
-8767 0 obj
-<< /Filter /FlateDecode /Length 1700 >>
-stream
-xZn8+ tSG&fUY ;, oʒ(RIZ_$6ţ{xl=ó7'xD}s fM]Ngd%D͔$K2Ε_]/idd:5몼% ΊMQL= [*6msvYTǖe~^3p晩Ø 1~$(<VgW`'M*igܨCiUA>
-^ՈhaJ-zTiQj[oUCTx>}%R >LTȽ0FؕYV41< r .}@j7^6=Lv4F**Y=+:YC&i*۳d4a
-qX h;5lwi<W7Ys^=vR=au䟞_%wӈFVC:re !{7
-f)!.h$wFX
-I6ry[> [1 RD{#t\&8Rs`!h/{ΊV>y=0䋭o`"ͩa4CtGhBqf``ˆ?Eym,qBg"t]*lbc
-6Ѫ4Q7a>z4:W\+w~BBHID (N)Y8Eyd]#L?}us,-%lz<1;?!.QDw{r#4\6%1숄A*UۏImԞSe,9*? <r/gH-/f A™Kݣ Vq1] ĕU[~ȖMY 7W4H>B %Ւ&:
-d5.[
-endstream
+8765 0 obj
+<< /D [ 8733 0 R /XYZ 81.077 431.098 null ] >>
endobj
8766 0 obj
-<< /Type /Page /Contents 8767 0 R /Resources 8765 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8314 0 R >>
+<< /D [ 8733 0 R /XYZ 81.077 420.139 null ] >>
+endobj
+8767 0 obj
+<< /D [ 8733 0 R /XYZ 81.077 409.18 null ] >>
endobj
8768 0 obj
-<< /D [ 8766 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 398.221 null ] >>
endobj
8769 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 387.263 null ] >>
endobj
8770 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 376.304 null ] >>
endobj
8771 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 365.345 null ] >>
endobj
8772 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 354.386 null ] >>
endobj
8773 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 343.427 null ] >>
endobj
8774 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 332.468 null ] >>
endobj
8775 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 321.509 null ] >>
endobj
8776 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 310.55 null ] >>
endobj
8777 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 299.591 null ] >>
endobj
8778 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 288.632 null ] >>
endobj
8779 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 277.674 null ] >>
endobj
8780 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 266.715 null ] >>
endobj
8781 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 255.756 null ] >>
endobj
8782 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 244.797 null ] >>
endobj
8783 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 233.838 null ] >>
endobj
8784 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 222.879 null ] >>
endobj
8785 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 211.92 null ] >>
endobj
8786 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 200.961 null ] >>
endobj
8787 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 190.002 null ] >>
endobj
8788 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 179.043 null ] >>
endobj
8789 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 168.085 null ] >>
endobj
8790 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 157.126 null ] >>
endobj
8791 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 146.167 null ] >>
endobj
8792 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 135.208 null ] >>
endobj
8793 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 124.249 null ] >>
endobj
8794 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 113.29 null ] >>
endobj
8795 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 102.331 null ] >>
endobj
8796 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 91.372 null ] >>
endobj
8797 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 461.982 null ] >>
-endobj
-8798 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 451.023 null ] >>
+<< /D [ 8733 0 R /XYZ 81.077 80.413 null ] >>
endobj
-8799 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 440.065 null ] >>
+8732 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8800 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 429.106 null ] >>
+<< /Filter /FlateDecode /Length 1722 >>
+stream
+xZn8}WpІ``M}S}h Ai[[Yr%%i߾%Sriw_"[g r'oD}{ћ &M\-'d%DM$K2ZOM&_\H3Ht&R!1=a|\lʬh_ `ih((A3o[gEs[Mڞɩb{3Oϓզ뼜}L 0MT4a1B]DZG o[eb1:o7z&l{]h0GG2?xX"*M7D~tǀg)@ ,)2BW?{Q;tf#ƍJV 4 Y[q楜2}?R.ND ۘ1۳휡c46wÈWwgef1/p7I k70hvK0^U{W[`X!ɼR ;_~@O8ujPKZ aRDl3 pQ-Hb
+"ͽ1+{F ڋ㠒.b5 P[gSv:4dq&2Xٺ96!Xĸs/{L"(Bmkd&n[ID8A3UOIeUvϢr7@į*WDv˪$i(2pQ3DF;]"ЭÏlTEx{4HB悘IVT bq{7ѯeyB1:mV2Ƨw+[7cVwO]EVuZ{?ƁJr,~{6uzij³9ͨ\D-Y;#/vtp[
+a|Cj/8ԠX#G{&Dm?IA:B(,k{.j9/ܕ
+:ʹۚ$ao"teu]~Ns
+.+hzתol*+ I.vE/Q-W;6n3Aazc 5n`'bli$O!o7Bn+zO]#ϫ6
+endstream
+endobj
+8799 0 obj
+<< /Type /Page /Contents 8800 0 R /Resources 8798 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8862 0 R >>
endobj
8801 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 8799 0 R /XYZ 78.37 808.885 null ] >>
endobj
8802 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 768.832 null ] >>
endobj
8803 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 757.873 null ] >>
endobj
8804 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 746.914 null ] >>
endobj
8805 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 735.955 null ] >>
endobj
8806 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 724.996 null ] >>
endobj
8807 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 714.037 null ] >>
endobj
8808 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 321.509 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 703.078 null ] >>
endobj
8809 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 310.55 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 692.119 null ] >>
endobj
8810 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 299.591 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 681.16 null ] >>
endobj
8811 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 288.632 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 670.202 null ] >>
endobj
8812 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 277.674 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 659.243 null ] >>
endobj
8813 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 266.715 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 648.284 null ] >>
endobj
8814 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 637.325 null ] >>
endobj
8815 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 244.797 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 626.366 null ] >>
endobj
8816 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 233.838 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 615.407 null ] >>
endobj
8817 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 222.879 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 604.448 null ] >>
endobj
8818 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 211.92 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 593.489 null ] >>
endobj
8819 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 200.961 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 582.53 null ] >>
endobj
8820 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 190.002 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 571.571 null ] >>
endobj
8821 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 179.043 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 560.613 null ] >>
endobj
8822 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 168.085 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 549.654 null ] >>
endobj
8823 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 538.695 null ] >>
endobj
8824 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 527.736 null ] >>
endobj
8825 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 516.777 null ] >>
endobj
8826 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 505.818 null ] >>
endobj
8827 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 494.859 null ] >>
endobj
8828 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 483.9 null ] >>
endobj
8829 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 472.941 null ] >>
endobj
8830 0 obj
-<< /D [ 8766 0 R /XYZ 81.077 80.413 null ] >>
-endobj
-8765 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8799 0 R /XYZ 81.077 461.982 null ] >>
endobj
-8833 0 obj
-<< /Filter /FlateDecode /Length 1847 >>
-stream
-xڽYo6~_a  ? ('}Cqڭ"y,-}GSH7K|NJ#t~B'ݓ(rIeOf'  XM43Mf7 c9-uV%NkaS03p Y5WSU%<nVj]__ )J呝=6&x&E-G+r46Y(v6o{fy3_Tu=0͢.J6d>nTOڳlz>{/j/re}[&r-Sa&Q"F/)70@h U]m_t/ouy9=嶨tqY0)G+M-Ur7,7DX3[in`pqG@
-IPDMQݬ{jF{h,<TPBbYnKU
-?/J^\0݄_
-1bUj0z0x@aŭ_qWZK"yQqƬ_WD RB!pDR@n˪ul/}w(9Qt<G1EtU]}*aY}zg'QDv
-.EGE?ofo|8 6(_ж#h\@v6GWH߁FϽ^{WϞQ^]UWA93)g٢\Kx65`ϻD5İ)%E3g:c41*fxI/OtF+b\4C -)6F8)i₸Aj̇.~^5م-?f!i^Eqo0>T}67ɁϪ#$m~B|ڽ4Lx琭 N4㑢}ޟU唅+a:
-rP?C!O\#zwbx~{\a(<B&u-y>ZԨ &`\&V _= R7C{
-kҔ }H)4vZ =Ƕhzʊ'ZcL
-YxLk+'ڶƀJ?֘%24c`=
-oex2s|/k}| z{x&ɧ.=)yLL&NCf<Զ5pJ)5 A74&D氄s яȘ Ò!.9K3ʵ9,R/)xwBM \g*_%G EQJy_*"CQJ^p!N.Xxp8;3I9o[cd9JSp<FX-
-){j7X: _"
-Ml^K8QFuj,058N)8=CD)ExS0[ ɟPQ\D@(ce*" Oxt5T2CώI d2COdT57dF/PSdv;YUN#\KgaPFIr8L8T2$% 9K~
-endstream
+8831 0 obj
+<< /D [ 8799 0 R /XYZ 81.077 451.023 null ] >>
endobj
8832 0 obj
-<< /Type /Page /Contents 8833 0 R /Resources 8831 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 8799 0 R /XYZ 81.077 440.065 null ] >>
+endobj
+8833 0 obj
+<< /D [ 8799 0 R /XYZ 81.077 409.18 null ] >>
endobj
8834 0 obj
-<< /D [ 8832 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 398.221 null ] >>
endobj
8835 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 387.263 null ] >>
endobj
8836 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 358.371 null ] >>
endobj
8837 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 347.412 null ] >>
endobj
8838 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 336.453 null ] >>
endobj
8839 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 325.494 null ] >>
endobj
8840 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 672.194 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 314.535 null ] >>
endobj
8841 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 661.235 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 303.576 null ] >>
endobj
8842 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 650.276 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 292.618 null ] >>
endobj
8843 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 639.317 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 281.659 null ] >>
endobj
8844 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 628.358 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 270.7 null ] >>
endobj
8845 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 617.4 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 259.741 null ] >>
endobj
8846 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 606.441 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 248.782 null ] >>
endobj
8847 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 595.482 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 237.823 null ] >>
endobj
8848 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 584.523 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 226.864 null ] >>
endobj
8849 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 573.564 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 215.905 null ] >>
endobj
8850 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 548.657 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 204.946 null ] >>
endobj
8851 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 193.987 null ] >>
endobj
8852 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 488.882 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 183.028 null ] >>
endobj
8853 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 477.923 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 172.07 null ] >>
endobj
8854 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 466.964 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 161.111 null ] >>
endobj
8855 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 456.005 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 150.152 null ] >>
endobj
8856 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 445.046 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 139.193 null ] >>
endobj
8857 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 416.154 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 128.234 null ] >>
endobj
8858 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 405.195 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 117.275 null ] >>
endobj
8859 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 394.236 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 106.316 null ] >>
endobj
8860 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 383.278 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 95.357 null ] >>
endobj
8861 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 8799 0 R /XYZ 81.077 84.398 null ] >>
endobj
-8862 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 331.472 null ] >>
+8798 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-8863 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 320.513 null ] >>
+8865 0 obj
+<< /Filter /FlateDecode /Length 1831 >>
+stream
+xڽZo6~_a  CPX!O ([EdYZtLnNJߑwΥ:yBwW"Aa&M"VP&o6ZLuNى!V)nb0uz*A3._M՟_4z|QGYuG~]"ӞKR(avqK$JЎeldӵ}Ws޽71;8-(O-H8tqzz5w
+,VuַQELQE{TqY8@)AN Ur~Yo7*eqŧ]
+ߋ&,0/|]0T{McQ?@1^UKbRPZ]?R384n)R1:.c~6W˥J9p`~4|HX 4=0>nެуϛ#ǽutKcيVF %=0sh)hE"c_RB3$oFW#!%ּ&.{yx@<)d
+z( LGPKQ6[YOCHa/I1q2)=rNNo(.êZϖ !v2/n_ڷ1ުb("|,F C<ʼnѻ]8&m0!մ*OQb!&XAu< cG̺ ≮#/ nmW ]1s]r7C _z+W./ }7 ݨ3&rKjGYU=ׇހN: pϥ=,POЏYaDžkHapJ]x'ז
+51.6Hձ
+ o0HAK<f$'%cl ^fȋD `¡1G*F gs
+Ƃ1)Fw g`d<ybǗ=f0,oNsc<K6>eA؁BI%Rt>i+a<Lг#uƹ
+2ABɸ&cd_RJ :ɦ\-w\1tS<L~V2* ?3[= 7[Ŷ
+endstream
endobj
8864 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 309.554 null ] >>
-endobj
-8865 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 298.595 null ] >>
+<< /Type /Page /Contents 8865 0 R /Resources 8863 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8862 0 R >>
endobj
8866 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 287.636 null ] >>
+<< /D [ 8864 0 R /XYZ 78.37 808.885 null ] >>
endobj
8867 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 276.677 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 768.832 null ] >>
endobj
8868 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 265.718 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 757.873 null ] >>
endobj
8869 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 254.759 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 705.071 null ] >>
endobj
8870 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 243.801 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 694.112 null ] >>
endobj
8871 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 232.842 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 683.153 null ] >>
endobj
8872 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 221.883 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 672.194 null ] >>
endobj
8873 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 210.924 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 661.235 null ] >>
endobj
8874 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 199.965 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 650.276 null ] >>
endobj
8875 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 189.006 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 639.317 null ] >>
endobj
8876 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 178.047 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 628.358 null ] >>
endobj
8877 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 167.088 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 617.4 null ] >>
endobj
8878 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 156.129 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 606.441 null ] >>
endobj
8879 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 145.17 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 581.534 null ] >>
endobj
8880 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 134.212 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 550.65 null ] >>
endobj
8881 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 123.253 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 521.758 null ] >>
endobj
8882 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 112.294 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 510.799 null ] >>
endobj
8883 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 101.335 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 499.84 null ] >>
endobj
8884 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 90.376 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 488.882 null ] >>
endobj
8885 0 obj
-<< /D [ 8832 0 R /XYZ 81.077 79.417 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 477.923 null ] >>
endobj
-8831 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
+8886 0 obj
+<< /D [ 8864 0 R /XYZ 81.077 449.031 null ] >>
endobj
-8889 0 obj
-<< /Filter /FlateDecode /Length 1570 >>
-stream
-xڽZKo8Wi`@S`9v!8u$WrݢE2E:q{4~3C|oL7gɻɛ3 ż @ aF؁5q#C33cp1X0+L4:R 5=,j}ݞ~onjxLpHHIŀM myb;h(N84LY餅eR`[d[xøBk7L(a/sΤTٴejn.oUYgr9Ç4$6TJd(lkZKгdkX`s24Nxҏ^H@bF,FW;id7h?4*|LEM-=:(8X2pL [& N[f 8P2)l[DHXhmǙa(ÅRt#ɫn|Mc<>MdoD?q ۤ-tU(bv]3VJ}<ZR<`0WiGtyq7n=L.941a}Ql17yWr̦y45jcJNM}(v;o}fQ BJ0$hm'")$ :'+;Rɒ P.($eLЋȫuj>DfٿyUfk2M  i[_C6誴 Et]eNf! 2)K0^-cUGKN4F1v%h(:.r5>Jk|L&^QA=@VxAnm92#DCgX1l%)
-vGfs:@lP+Z(a)Z-TJd)A7ғշb*gU5Z.eK:>V_#MUH͝\oJ|کۇtQj ɵΰYK4ҁ%7(9t[8i=.o6uuڤP̛Xaj]oV!f6kLΰR}P1Ek$L@Ek4Yu˜i-vw݄h?e|䞛~=7aW6Z 0#vGdiOB .T}n4E u#AϒEy}V?AiwL hbtpzZo_ ʪR rsSҤXGqڐt&B c3.'\''?]
-endstream
+8887 0 obj
+<< /D [ 8864 0 R /XYZ 81.077 438.072 null ] >>
endobj
8888 0 obj
-<< /Type /Page /Contents 8889 0 R /Resources 8887 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 8864 0 R /XYZ 81.077 427.113 null ] >>
+endobj
+8889 0 obj
+<< /D [ 8864 0 R /XYZ 81.077 416.154 null ] >>
endobj
8890 0 obj
-<< /D [ 8888 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 375.307 null ] >>
endobj
8891 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 364.349 null ] >>
endobj
8892 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 353.39 null ] >>
endobj
8893 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 342.431 null ] >>
endobj
8894 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 331.472 null ] >>
endobj
8895 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 320.513 null ] >>
endobj
8896 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 309.554 null ] >>
endobj
8897 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 298.595 null ] >>
endobj
8898 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 287.636 null ] >>
endobj
8899 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 276.677 null ] >>
endobj
8900 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 265.718 null ] >>
endobj
8901 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 254.759 null ] >>
endobj
8902 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 243.801 null ] >>
endobj
8903 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 232.842 null ] >>
endobj
8904 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 221.883 null ] >>
endobj
8905 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 210.924 null ] >>
endobj
8906 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 199.965 null ] >>
endobj
8907 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 588.508 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 189.006 null ] >>
endobj
8908 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 178.047 null ] >>
endobj
8909 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 167.088 null ] >>
endobj
8910 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 156.129 null ] >>
endobj
8911 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 145.17 null ] >>
endobj
8912 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 134.212 null ] >>
endobj
8913 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 123.253 null ] >>
endobj
8914 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 112.294 null ] >>
endobj
8915 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 101.335 null ] >>
endobj
8916 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 90.376 null ] >>
endobj
8917 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 8864 0 R /XYZ 81.077 79.417 null ] >>
endobj
-8918 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 467.96 null ] >>
-endobj
-8919 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 457.001 null ] >>
+8863 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8920 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 446.042 null ] >>
+<< /Filter /FlateDecode /Length 1653 >>
+stream
+xڽZMoIW bH+YH{ i!`̀l[ =]cx`2MMW=xƷߏggﮜiP7 D[f9+7y4DZ],X|
+0$FlIb1=*q~߿0Ҝ SP "w ͼI(]l<Ahe6]Uv3/_3LSz&4q4f H8&qbNXI@aXWIkJyȫՉl0t 3.0G30t$Yj/:TI&v
+GiOi:hhF@d"4D+udh-1[fL!uV
+ Bu9?N
+Cp!*h 蠠wHʈг"/ye3~8;/vv\{Ky&M*?'&D]5
+<L\F0BsxQd
+ehHѭ*y~h팲4F)NKǬjg UNXٺʳ۲Xw8ϡ=6o_ԧ9PÂW~w%B/
+&_~ڋN3i-Bʝ?B6^}W'4ٛ.1 险ӻli>=ʷM6XYʂ,ujM
+,CmY* n=KktE`i&鱽J%B
+'7^MJ' {[Uz"Hkq*P|Pr^ `@KxVk/G$ z6k'0p@!}ߘ|7eJz[>fA3$m\\]%/eD׷ޤPuE,RAMNǭ7)`hQ#[o$. Gk[Xϝ$N'K"C/Ol7X!ZEhzI!YI ֓0:=v~Kk9ӳmhRt81-\MqJ_^Ik@)[sڤcLW0s-׫71lD>O~n4a:6LGJ;8w͕oa_wX١B"hG+%"N=r??oM֣HP%}f;΁3a]@(]óPU
+endstream
+endobj
+8919 0 obj
+<< /Type /Page /Contents 8920 0 R /Resources 8918 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8862 0 R >>
endobj
8921 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 435.083 null ] >>
+<< /D [ 8919 0 R /XYZ 78.37 808.885 null ] >>
endobj
8922 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 768.832 null ] >>
endobj
8923 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 757.873 null ] >>
endobj
8924 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 746.914 null ] >>
endobj
8925 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 735.955 null ] >>
endobj
8926 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 360.363 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 724.996 null ] >>
endobj
8927 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 344.423 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 714.037 null ] >>
endobj
8928 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 333.464 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 703.078 null ] >>
endobj
8929 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 322.505 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 692.119 null ] >>
endobj
8930 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 311.547 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 681.16 null ] >>
endobj
8931 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 300.588 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 670.202 null ] >>
endobj
8932 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 289.629 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 659.243 null ] >>
endobj
8933 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 278.67 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 648.284 null ] >>
endobj
8934 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 267.711 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 637.325 null ] >>
endobj
8935 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 256.752 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 621.753 null ] >>
endobj
8936 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 225.868 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 610.794 null ] >>
endobj
8937 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 214.909 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 599.835 null ] >>
endobj
8938 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 203.95 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 588.876 null ] >>
endobj
8939 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 192.991 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 577.917 null ] >>
endobj
8940 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 182.032 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 566.958 null ] >>
endobj
8941 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 171.073 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 555.999 null ] >>
endobj
8942 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 160.114 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 545.04 null ] >>
endobj
8943 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 149.155 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 534.082 null ] >>
endobj
8944 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 138.197 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 523.123 null ] >>
endobj
8945 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 127.238 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 512.164 null ] >>
endobj
8946 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 116.279 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 501.205 null ] >>
endobj
8947 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 490.246 null ] >>
endobj
8948 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 94.361 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 479.287 null ] >>
endobj
8949 0 obj
-<< /D [ 8888 0 R /XYZ 81.077 83.402 null ] >>
-endobj
-8887 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8919 0 R /XYZ 81.077 468.328 null ] >>
endobj
-8952 0 obj
-<< /Filter /FlateDecode /Length 2091 >>
-stream
-xڵZ]o6}_a/pa`An}YĚȒGI$Ӥ㸦}#G<^s)O~x޽@ #䓻w2Q15Q ,n=?WM5clv?jSk{eX\Q5}tiUa*oDZãl5\.Sv9<wЧ}2B|$Me/#{&#PH8
-1EEwn/ˬ[olY{'$"{tI!z؎lGk7?o<ɛ4!z$_K̂pDܱ<R!x`]EW/!gDԹ&Mϛ[d.&md
-W=զn3C %ӄ 3Y OϛHzm9#A qiBtO.%5g\)ӈ51_N j>oJF,DˢH%ҧCuN$~C,PUZAIm[-z3=H>^tm^%Z# CRLް ,>RHq_8ԙɛX9&F;WjLMrYR"pH"t@#Lv~xh&o̒pYA2*b'"؇f TGxț<;Q BG;&]?ڡϪ:Ij[sv$5|Jmu5=|, tVv[w}MQ
-M mK{ 7]X8U3>bn-\8Ƕ:r?>C =]/E^ʵc"[s81,v8|:qهp= w\*(rPXAovC:~C mߑNN҈}8S+aP$YU)4u.g@۽ߐ$~Ckle"S*)Edm΅D{UtRޏ?E9r/I͛WJfOYW&cжj4NeZeaYT6{*jT̛&nK62X0^4jf@vds[XOlFx[,y;wcqKHHN^if[ޝB]SE(xFcv=HgS+ull 23Lzzw:Wȍf[fMgjg'؅1]o퇿&BAleJ/gT&;YPkRꌁvnA=,@3lL<ߢ.H ^9yMꀀ V3N`#H8QoɯWBZPB3>Z8, P_v;z%'?w~rqLVDΉ2(R*q%ӻk8vwao} PI'DLY\XVHeŤq
-/Ƭ~ۥz_ NJL:}n͐ͤI6-D.(t>#tB,7<iF藃e
-Ze6F+^gQ&u#H近$5 SMZsIѨwgeu7+[͞FM }nI& e>S>2B;3<o쬺>z˒ ^O
-Y$E7B'
-g'e|VG.}\^vv^]& {Ѥz:צw+/y/]&:KO \LD)ەeS%t4NN.Ҩ?;̘@*g,y}m'W=ѴE#IKn<o4B#X <L.<- ’׺vm7+@`̏
-31?;%Gyqb@ H9N2kcE+
-endstream
+8950 0 obj
+<< /D [ 8919 0 R /XYZ 81.077 457.369 null ] >>
endobj
8951 0 obj
-<< /Type /Page /Contents 8952 0 R /Resources 8950 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 8919 0 R /XYZ 81.077 446.41 null ] >>
+endobj
+8952 0 obj
+<< /D [ 8919 0 R /XYZ 81.077 435.451 null ] >>
endobj
8953 0 obj
-<< /D [ 8951 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 424.492 null ] >>
endobj
8954 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 754.884 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 394.16 null ] >>
endobj
8955 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 743.925 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 378.588 null ] >>
endobj
8956 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 732.966 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 367.629 null ] >>
endobj
8957 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 356.671 null ] >>
endobj
8958 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 345.712 null ] >>
endobj
8959 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 334.753 null ] >>
endobj
8960 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 323.794 null ] >>
endobj
8961 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 312.835 null ] >>
endobj
8962 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 301.876 null ] >>
endobj
8963 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 656.254 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 290.917 null ] >>
endobj
8964 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 260.585 null ] >>
endobj
8965 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 249.626 null ] >>
endobj
8966 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 238.667 null ] >>
endobj
8967 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 612.418 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 227.708 null ] >>
endobj
8968 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 601.459 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 216.75 null ] >>
endobj
8969 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 585.519 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 205.791 null ] >>
endobj
8970 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 574.56 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 194.832 null ] >>
endobj
8971 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 563.601 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 183.873 null ] >>
endobj
8972 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 552.642 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 172.914 null ] >>
endobj
8973 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 485.893 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 161.955 null ] >>
endobj
8974 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 474.934 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 150.996 null ] >>
endobj
8975 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 463.975 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 140.037 null ] >>
endobj
8976 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 453.016 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 129.078 null ] >>
endobj
8977 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 442.057 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 118.119 null ] >>
endobj
8978 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 431.098 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 89.596 null ] >>
endobj
8979 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 420.139 null ] >>
-endobj
-8980 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 8919 0 R /XYZ 81.077 78.637 null ] >>
endobj
-8981 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 398.221 null ] >>
+8918 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
8982 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 387.263 null ] >>
+<< /Filter /FlateDecode /Length 1990 >>
+stream
+xڵZMs8Wj.N'A嚩]6[,J-PTlkoȲZ\,~B'_( ~G-& >]1hD'l&$azFh&_ڤݿg>|L$%&IDJ0iĄUDb(a{<&a~y^quEW/f$ aRxF
+(D)ac'獝2b.'۶NYf77jSoyY/2h4\yL<FCD“ď7IUEa!P.(" S.Gm/%J"#orbZx^ +
+i^F;si$I csG}Q_:Q юJ[f7NfY[iN юʲXg[faYT6{,*fyͮ32'pю̃}v3xj:nV®)ǯnGǬc.RQ--DE.pa::B qDB@kf um90"PY=PiliU ~c-crg\ \
+endstream
+endobj
+8981 0 obj
+<< /Type /Page /Contents 8982 0 R /Resources 8980 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8862 0 R >>
endobj
8983 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 8981 0 R /XYZ 78.37 808.885 null ] >>
endobj
8984 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 335.457 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 768.832 null ] >>
endobj
8985 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 324.498 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 757.873 null ] >>
endobj
8986 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 746.914 null ] >>
endobj
8987 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 735.955 null ] >>
endobj
8988 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 291.621 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 724.996 null ] >>
endobj
8989 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 280.662 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 714.037 null ] >>
endobj
8990 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 269.703 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 703.078 null ] >>
endobj
8991 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 258.745 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 692.119 null ] >>
endobj
8992 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 247.786 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 681.16 null ] >>
endobj
8993 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 236.827 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 670.202 null ] >>
endobj
8994 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 225.868 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 659.243 null ] >>
endobj
8995 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 214.909 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 648.284 null ] >>
endobj
8996 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 203.95 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 637.325 null ] >>
endobj
8997 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 192.991 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 621.967 null ] >>
endobj
8998 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 182.032 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 611.008 null ] >>
endobj
8999 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 171.073 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 600.05 null ] >>
endobj
9000 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 160.114 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 589.091 null ] >>
endobj
9001 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 149.155 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 524.38 null ] >>
endobj
9002 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 138.197 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 513.422 null ] >>
endobj
9003 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 127.238 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 502.463 null ] >>
endobj
9004 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 116.279 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 491.504 null ] >>
endobj
9005 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 480.545 null ] >>
endobj
9006 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 94.361 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 469.586 null ] >>
endobj
9007 0 obj
-<< /D [ 8951 0 R /XYZ 81.077 83.402 null ] >>
-endobj
-8950 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 8981 0 R /XYZ 81.077 458.627 null ] >>
endobj
-9010 0 obj
-<< /Filter /FlateDecode /Length 1955 >>
-stream
-xZ]o:}ϯ0{[ 6we]$(*7;dtדKhQ<!9sF
-3krog_$b&Ij೫3͌&%D3B5]=57_?NgZ 2D&FbB~}nBq524m8X  2{^ uʬh/ l~TE ܛqhq]<d>///_PS_s{MWI
-}leVu^2f7UL GW|
-bem4\~OSPç dp(DA-1S) ~r. }DE
-u?z {eAqC#22^k)qA(*$mT|j햗v8C?/h_ >٭B}~׷.$M8!:X86c[RNCjEPzmYeM\G)'`[b 0h.GW,9}4=N#p ?B
-q`v|q+]EY HGrny"cXZO~K߄V;"ܶCʺ
-ǃ۶WàOTǢ.996i3R[D}+0"68俐*, S%:覐"%JN`;ʙs\Wc_ZDweލw\/v4Śdoh?/c]@IYֽ]vl)&:Abw|X3D*NFh>_NFo =ͼmg 5 aDq/3$NFh_8 ”(vSW8 ô ^mVQj̺A)K z֯S_ymrh
-ۜ/9_3Oq߽!&TsKag/?[[N)U$j|qc^l+O%1l;]oP7KN<ĤS:1ɂSp+B;l:DTDQ+_Q&>;(wJe&")QB"4 PЩU'}C7uW/*T
-ŵ)hg҉q2o^?:/
-endstream
+9008 0 obj
+<< /D [ 8981 0 R /XYZ 81.077 447.668 null ] >>
endobj
9009 0 obj
-<< /Type /Page /Contents 9010 0 R /Resources 9008 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 8981 0 R /XYZ 81.077 436.709 null ] >>
+endobj
+9010 0 obj
+<< /D [ 8981 0 R /XYZ 81.077 425.75 null ] >>
endobj
9011 0 obj
-<< /D [ 9009 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 414.791 null ] >>
endobj
9012 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 374.527 null ] >>
endobj
9013 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 363.568 null ] >>
endobj
9014 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 352.61 null ] >>
endobj
9015 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 341.651 null ] >>
endobj
9016 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 330.692 null ] >>
endobj
9017 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 319.733 null ] >>
endobj
9018 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 308.774 null ] >>
endobj
9019 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 297.815 null ] >>
endobj
9020 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 286.856 null ] >>
endobj
9021 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 275.897 null ] >>
endobj
9022 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 264.938 null ] >>
endobj
9023 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 253.979 null ] >>
endobj
9024 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 243.021 null ] >>
endobj
9025 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 232.062 null ] >>
endobj
9026 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 221.103 null ] >>
endobj
9027 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 210.144 null ] >>
endobj
9028 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 575.556 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 199.185 null ] >>
endobj
9029 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 564.598 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 188.226 null ] >>
endobj
9030 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 553.639 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 177.267 null ] >>
endobj
9031 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 542.68 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 166.308 null ] >>
endobj
9032 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 531.721 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 155.349 null ] >>
endobj
9033 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 520.762 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 144.39 null ] >>
endobj
9034 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 509.803 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 133.431 null ] >>
endobj
9035 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 498.844 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 122.473 null ] >>
endobj
9036 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 487.885 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 111.514 null ] >>
endobj
9037 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 476.926 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 100.555 null ] >>
endobj
9038 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 412.169 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 89.596 null ] >>
endobj
9039 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 401.21 null ] >>
-endobj
-9040 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 390.251 null ] >>
+<< /D [ 8981 0 R /XYZ 81.077 78.637 null ] >>
endobj
-9041 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 379.292 null ] >>
+8980 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9042 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 368.334 null ] >>
+<< /Filter /FlateDecode /Length 1930 >>
+stream
+xZ]o:}ϯ0{6wyټmb+6JMEZ2EIwYxfHΜBg3:D_w7oI,|vswD333i]]oY63ep6EgBnﺢʺx.Bq54\a߱~5]l]> ?"#eQ@R1z`m*VM[mf%aRV<Vxa4y͓kʺ?cY=(fhrK?g_f*U= :mXgju[ :#qv_mWZ;E5BKG%Adb*+ [It>F+R4~l#`yC RJ&`Ț)B9%R^\m[(Fbqў=lMh"ՙɃ1" <$aB^17s
+`۪mhN˪~Ar!ݹ= XT:(A,֓ߌjQdPDcHv^Uw*n_>ރ(|._y>^ѽ I|/A79Oyy/,NqBBsrQH&l玼f?Vv&fkw$]9ubNsrе˟b&³GKS 
+rHjnkLi!%~Gko5YSg/^ot}Pc6,QәƉ=꣫hwW1$4a9Cjv8yy%p6(JY ߽ 4tӡ8ə:y?,Z_<:
+b ?65Pn
+endstream
+endobj
+9041 0 obj
+<< /Type /Page /Contents 9042 0 R /Resources 9040 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8862 0 R >>
endobj
9043 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 357.375 null ] >>
+<< /D [ 9041 0 R /XYZ 78.37 808.885 null ] >>
endobj
9044 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 346.416 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 768.832 null ] >>
endobj
9045 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 335.457 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 757.873 null ] >>
endobj
9046 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 324.498 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 746.914 null ] >>
endobj
9047 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 735.955 null ] >>
endobj
9048 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 724.996 null ] >>
endobj
9049 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 291.621 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 714.037 null ] >>
endobj
9050 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 280.662 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 703.078 null ] >>
endobj
9051 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 269.703 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 692.119 null ] >>
endobj
9052 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 258.745 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 681.16 null ] >>
endobj
9053 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 247.786 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 670.202 null ] >>
endobj
9054 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 236.827 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 659.243 null ] >>
endobj
9055 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 225.868 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 648.284 null ] >>
endobj
9056 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 214.909 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 619.392 null ] >>
endobj
9057 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 203.95 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 608.433 null ] >>
endobj
9058 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 192.991 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 597.474 null ] >>
endobj
9059 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 182.032 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 586.515 null ] >>
endobj
9060 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 171.073 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 575.556 null ] >>
endobj
9061 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 160.114 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 564.598 null ] >>
endobj
9062 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 149.155 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 553.639 null ] >>
endobj
9063 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 138.197 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 542.68 null ] >>
endobj
9064 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 127.238 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 531.721 null ] >>
endobj
9065 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 116.279 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 520.762 null ] >>
endobj
9066 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 456.005 null ] >>
endobj
9067 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 94.361 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 445.046 null ] >>
endobj
9068 0 obj
-<< /D [ 9009 0 R /XYZ 81.077 83.402 null ] >>
-endobj
-9008 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9041 0 R /XYZ 81.077 434.087 null ] >>
endobj
-9071 0 obj
-<< /Filter /FlateDecode /Length 1923 >>
-stream
-xZn6+ A" hh1,3Er%̠R/t<_@7Ql^>i<x|"gpny&b3"Ζw32SI"Id|6WXߗ?H=SHKɔ&0~}&.xݘbty%ag\7_%##aD}tK4<nIW7Y$_/^큾=>2g꣏ɺ:G-+U(d%0Y}Hn6Ί<+̢(
-_
-[:R{)9XS-@;ZA"s35i"& mA52vq3UnQ҃|xn|NK 5G)I=L]|NaVyhV&
-'A`U!*Z.qxB!3XCǬ%ݦ06'x-<N}5ۋi"jBv{ۋu8<m@]MT+s.L&!5Ҵ o1ic֋ۭ3a; u&T*J%aGs75S"PǰlKBhv/J]nH@)dO
-1(П4UUV{`0kS9@$Ew 7Q*LMAv0inuz/531D'^MqQ
-A)bSEa
-cO_ƄtpX 1yLJajѯQ{3uX Cr*i(F嫲idzυTQM>MYeˢ9pԓ}5Qm״9)HE_^ L
-endstream
+9069 0 obj
+<< /D [ 9041 0 R /XYZ 81.077 423.128 null ] >>
endobj
9070 0 obj
-<< /Type /Page /Contents 9071 0 R /Resources 9069 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 9041 0 R /XYZ 81.077 412.169 null ] >>
+endobj
+9071 0 obj
+<< /D [ 9041 0 R /XYZ 81.077 401.21 null ] >>
endobj
9072 0 obj
-<< /D [ 9070 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 390.251 null ] >>
endobj
9073 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 379.292 null ] >>
endobj
9074 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 368.334 null ] >>
endobj
9075 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 357.375 null ] >>
endobj
9076 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 346.416 null ] >>
endobj
9077 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 335.457 null ] >>
endobj
9078 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 324.498 null ] >>
endobj
9079 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 313.539 null ] >>
endobj
9080 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 302.58 null ] >>
endobj
9081 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 291.621 null ] >>
endobj
9082 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 280.662 null ] >>
endobj
9083 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 269.703 null ] >>
endobj
9084 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 258.745 null ] >>
endobj
9085 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 247.786 null ] >>
endobj
9086 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 236.827 null ] >>
endobj
9087 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 225.868 null ] >>
endobj
9088 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 214.909 null ] >>
endobj
9089 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 203.95 null ] >>
endobj
9090 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 528.732 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 192.991 null ] >>
endobj
9091 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 182.032 null ] >>
endobj
9092 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 171.073 null ] >>
endobj
9093 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 495.855 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 160.114 null ] >>
endobj
9094 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 149.155 null ] >>
endobj
9095 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 138.197 null ] >>
endobj
9096 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 127.238 null ] >>
endobj
9097 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 116.279 null ] >>
endobj
9098 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 105.32 null ] >>
endobj
9099 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 94.361 null ] >>
endobj
9100 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 419.143 null ] >>
-endobj
-9101 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 9041 0 R /XYZ 81.077 83.402 null ] >>
endobj
-9102 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 397.225 null ] >>
+9040 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9103 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 386.266 null ] >>
+<< /Filter /FlateDecode /Length 1884 >>
+stream
+xڭZMo8W苃-.^L3Be&F<<tۗdtn3vl񑯪ȪzTO~O$__>ͯ>%l‘VAxB&J"II" ’Lɿ
+ky~wROR2 È_{hvLəkk$0m̀9g:?*S~m}B!Uvަ̬! T D hDTJ69oĭymuu}# e&@ '1m5]DLmȺfvGkϑ8hS-0,.5flkH2_x7o05fM
+HMm)ܯ}f&1"t;'B!$ш0ER n27LgxvK2͚T4vac36M`C6o~2niEYONReM ',ˢ~7.qvtq}Cմ &8cT/1sQnr#:LCL7TjKO͎inJ0M [nҧg,sѭ~_f0u7o_z:ٗ}Pp@`BN,"lL
+!9JX0A`w46siY7XKN\;O :|29! {ܯ NJ|&gkn;[#vPìif[C `6V
+'?Us5>*rκ|r>
+@P BqV DJd{qv OV]̭~r
+h&EQR gjҺJW/fC.z&#Ofr>(d>쒓B)bF9D-%]1R`C޽0F|Èѹ/%w7,a 8i0%3 [#)[غmJk_^(F}ZdՆL"4)B"+ڰ; _c$A2,x)}؜KWcKgjY;fKH
+W7wXqS*:Qv`Q-Uͣ ym*(D蓱&)R0XaZ>jo/lUey*گ|G$kF/.HT"<J*a. SO"4'#ݼY4ݿjMhf ~L1GdK#@1mΞf[|5Yق.Bm`"|۬=xȶN1x-83'$gyau<-ҢW=)Wݥ&Hn"4U!51
+.anq{F2 ?>s@
+endstream
+endobj
+9102 0 obj
+<< /Type /Page /Contents 9103 0 R /Resources 9101 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8862 0 R >>
endobj
9104 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 9102 0 R /XYZ 78.37 808.885 null ] >>
endobj
9105 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 768.832 null ] >>
endobj
9106 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 757.873 null ] >>
endobj
9107 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 746.914 null ] >>
endobj
9108 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 735.955 null ] >>
endobj
9109 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 320.513 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 724.996 null ] >>
endobj
9110 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 714.037 null ] >>
endobj
9111 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 703.078 null ] >>
endobj
9112 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 692.119 null ] >>
endobj
9113 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 681.16 null ] >>
endobj
9114 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 670.202 null ] >>
endobj
9115 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 659.243 null ] >>
endobj
9116 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 648.284 null ] >>
endobj
9117 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 637.325 null ] >>
endobj
9118 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 572.568 null ] >>
endobj
9119 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 200.961 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 561.609 null ] >>
endobj
9120 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 190.002 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 550.65 null ] >>
endobj
9121 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 179.043 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 539.691 null ] >>
endobj
9122 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 168.085 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 528.732 null ] >>
endobj
9123 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 517.773 null ] >>
endobj
9124 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 506.814 null ] >>
endobj
9125 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 135.208 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 495.855 null ] >>
endobj
9126 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 124.249 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 484.896 null ] >>
endobj
9127 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 113.29 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 473.938 null ] >>
endobj
9128 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 102.331 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 462.979 null ] >>
endobj
9129 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 91.372 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 452.02 null ] >>
endobj
9130 0 obj
-<< /D [ 9070 0 R /XYZ 81.077 80.413 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 441.061 null ] >>
endobj
-9069 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-9133 0 obj
-<< /Filter /FlateDecode /Length 1851 >>
-stream
-xYo6~_a/0M)Àmr"Ė\Yn߾)8>5)>}ߙznD;܈$i G >=K4fj{ O?N{ II8%F1#r<˗0(/f÷oe5ɪp{]rnq|xE ;`s@
-_FU6ϫ&!O*j+7Z\يоl^GÄ"03,뺜m\C/mm,/i(oX35rbRK^7Ey[<mܞMxVD LFh79K{)@mNP\C -r6+ŕ}$r>KjM]]뚊Yd3R҅<>IY"ֱa-U&X:Vp;o9}[*ѶR4%&<5#&BF`u
-$
-'#tc!BgW@)M/2J₵Ư$ S+-0:MDL]i.Dh gN<ewaQqjRnoǨA& Xoi[&"F[ף`|2-uw''dWP JPP
-RNSµєz)I)s7dAI,)L|4͖tcjzTT)U3Y#.Hk+M$[mdm(ЏPcv~(O>(@-4яۿ 
-[o"4pJ#
-rҁrg_Oz賔[*Ojѓ2)X'0P8f_?i+>ոF@ IVJp6c'g4Uk\ B&
-endstream
+9131 0 obj
+<< /D [ 9102 0 R /XYZ 81.077 430.102 null ] >>
endobj
9132 0 obj
-<< /Type /Page /Contents 9133 0 R /Resources 9131 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 9102 0 R /XYZ 81.077 419.143 null ] >>
+endobj
+9133 0 obj
+<< /D [ 9102 0 R /XYZ 81.077 408.184 null ] >>
endobj
9134 0 obj
-<< /D [ 9132 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 397.225 null ] >>
endobj
9135 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 386.266 null ] >>
endobj
9136 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 375.307 null ] >>
endobj
9137 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 364.349 null ] >>
endobj
9138 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 731.11 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 348.408 null ] >>
endobj
9139 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 720.151 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 337.449 null ] >>
endobj
9140 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 709.192 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 326.49 null ] >>
endobj
9141 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 698.233 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 315.532 null ] >>
endobj
9142 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 687.274 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 304.573 null ] >>
endobj
9143 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 676.315 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 293.614 null ] >>
endobj
9144 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 665.356 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 282.655 null ] >>
endobj
9145 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 654.397 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 271.696 null ] >>
endobj
9146 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 643.439 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 260.737 null ] >>
endobj
9147 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 632.48 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 244.797 null ] >>
endobj
9148 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 621.521 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 233.838 null ] >>
endobj
9149 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 610.562 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 222.879 null ] >>
endobj
9150 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 599.603 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 211.92 null ] >>
endobj
9151 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 551.126 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 200.961 null ] >>
endobj
9152 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 540.167 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 190.002 null ] >>
endobj
9153 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 529.209 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 179.043 null ] >>
endobj
9154 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 518.25 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 168.085 null ] >>
endobj
9155 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 507.291 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 157.126 null ] >>
endobj
9156 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 496.332 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 146.167 null ] >>
endobj
9157 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 485.373 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 135.208 null ] >>
endobj
9158 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 474.414 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 124.249 null ] >>
endobj
9159 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 463.455 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 113.29 null ] >>
endobj
9160 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 452.496 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 102.331 null ] >>
endobj
9161 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 441.537 null ] >>
+<< /D [ 9102 0 R /XYZ 81.077 91.372 null ] >>
endobj
-9162 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 430.578 null ] >>
-endobj
-9163 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 419.619 null ] >>
+9101 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9164 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 408.661 null ] >>
+<< /Filter /FlateDecode /Length 1869 >>
+stream
+xZKoFWEF;.
+=@%&,
+EvwVK.%kq)ٙF|8(N_0b L &ьPC˔8xkvK2X
+ y=.G:/8=S\ COm8^/2K񾬦Ywgs(Jy)U~pI߭{7)sC&1|M[¬aL)/d9ʯGC wOU)2C8}KHhɢ4{7
+5G,xY{jµX%}t UUY[-/5}rUk=Gvfoh&ZPޜ{y<[e*ʫluZeDzZuxrI":^ ǫ*뺜$3͉1kGϲ%)FA\ >on_XZѫ(G*!ꨘBײ1x7<y \h9.g}^Kb8)q1_0_Vl2uUyd3Rџ]q;l_hoA
+1W7yV>e`"b{'HQG8 ,tD&#I@
+#@K'R-M :M\Дpl4%^kJhJ= B?_I%%܉GBTRHRQi:EQy$QDXԎ!`H6ԏ
+ΓO?
+ `l%F?&`~-KYԭG(H@.7 F`]g5*M*܈.>z|Y9/@,׏%ٰc) X+Pt/5T2IXg0y'qQ4W%1beĪX;\' A\ĺX;\' Aٍy7
+endstream
+endobj
+9163 0 obj
+<< /Type /Page /Contents 9164 0 R /Resources 9162 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8862 0 R >>
endobj
9165 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 397.702 null ] >>
+<< /D [ 9163 0 R /XYZ 78.37 808.885 null ] >>
endobj
9166 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 386.743 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 768.832 null ] >>
endobj
9167 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 375.784 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 757.873 null ] >>
endobj
9168 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 364.825 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 746.914 null ] >>
endobj
9169 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 318.273 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 735.955 null ] >>
endobj
9170 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 307.314 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 724.996 null ] >>
endobj
9171 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 296.355 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 714.037 null ] >>
endobj
9172 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 285.396 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 703.078 null ] >>
endobj
9173 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 274.437 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 692.119 null ] >>
endobj
9174 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 263.478 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 681.16 null ] >>
endobj
9175 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 252.519 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 670.202 null ] >>
endobj
9176 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 241.561 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 659.243 null ] >>
endobj
9177 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 230.602 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 648.284 null ] >>
endobj
9178 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 219.643 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 637.325 null ] >>
endobj
9179 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 208.684 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 588.508 null ] >>
endobj
9180 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 197.725 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 577.549 null ] >>
endobj
9181 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 186.766 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 566.59 null ] >>
endobj
9182 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 175.807 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 555.631 null ] >>
endobj
9183 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 164.848 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 544.672 null ] >>
endobj
9184 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 153.889 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 533.713 null ] >>
endobj
9185 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 142.93 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 522.754 null ] >>
endobj
9186 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 131.971 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 511.796 null ] >>
endobj
9187 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 121.013 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 500.837 null ] >>
endobj
9188 0 obj
-<< /D [ 9132 0 R /XYZ 81.077 110.054 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 489.878 null ] >>
endobj
-9131 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-9191 0 obj
-<< /Filter /FlateDecode /Length 2033 >>
-stream
-xڭZ[o6~ϯ0ЇX.2Àغa2` bˉY2d嶮}L8y$ZϕBGW#:턮D;ɻ71&b~%:b#f(ьPFDZaN>_z^ۑ!Vka`F,bB䏫tϋ*?ɩj_΋ig6Ń~/zznfy#_+2AQ(&L`bla "
- svFPYx݊DIJvf^W[WlrLr"3-9|Dɚ.t
-D\TYh='*d8>'ٓz z-c_YAqiqU[41c'Sf %%O_,pz8\Sm7d(E8ܯ,%`1 [|5`Cg3p< TM+9.s .v绉co^t-j ("T`R)Yp=ַ=H69mQ^Kv#DXl{s8 pZzY?9
-<tYwbZðoa2Km2TM0YLPH[7?,Ӫ[/ _ˊn)Ĝ6t` &ѮơSChH{`+;J6!P CKVżUvMV8ݦ;58ՇoU?EYU=͑ذE<BF֒dR!z*4(M
-0Ժn0W:8CfA0׽ p: Pr- %.h<Pؼo,W<
-endstream
+9189 0 obj
+<< /D [ 9163 0 R /XYZ 81.077 478.919 null ] >>
endobj
9190 0 obj
-<< /Type /Page /Contents 9191 0 R /Resources 9189 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 9163 0 R /XYZ 81.077 467.96 null ] >>
+endobj
+9191 0 obj
+<< /D [ 9163 0 R /XYZ 81.077 457.001 null ] >>
endobj
9192 0 obj
-<< /D [ 9190 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 446.042 null ] >>
endobj
9193 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 435.083 null ] >>
endobj
9194 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 424.124 null ] >>
endobj
9195 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 413.165 null ] >>
endobj
9196 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 402.207 null ] >>
endobj
9197 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 355.382 null ] >>
endobj
9198 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 344.423 null ] >>
endobj
9199 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 333.464 null ] >>
endobj
9200 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 614.411 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 322.505 null ] >>
endobj
9201 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 603.452 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 311.547 null ] >>
endobj
9202 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 592.493 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 300.588 null ] >>
endobj
9203 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 581.534 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 289.629 null ] >>
endobj
9204 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 570.575 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 278.67 null ] >>
endobj
9205 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 559.616 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 267.711 null ] >>
endobj
9206 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 548.657 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 256.752 null ] >>
endobj
9207 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 537.698 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 245.793 null ] >>
endobj
9208 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 526.74 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 234.834 null ] >>
endobj
9209 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 515.781 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 223.875 null ] >>
endobj
9210 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 504.822 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 212.916 null ] >>
endobj
9211 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 493.863 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 201.957 null ] >>
endobj
9212 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 482.904 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 190.999 null ] >>
endobj
9213 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 471.945 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 180.04 null ] >>
endobj
9214 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 460.986 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 169.081 null ] >>
endobj
9215 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 450.027 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 158.122 null ] >>
endobj
9216 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 439.068 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 147.163 null ] >>
endobj
9217 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 428.109 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 106.316 null ] >>
endobj
9218 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 417.151 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 95.357 null ] >>
endobj
9219 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 406.192 null ] >>
+<< /D [ 9163 0 R /XYZ 81.077 84.398 null ] >>
endobj
-9220 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 395.233 null ] >>
-endobj
-9221 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 384.274 null ] >>
+9162 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9222 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 373.315 null ] >>
+<< /Filter /FlateDecode /Length 2256 >>
+stream
+xڭZ[۸~_a kFK&-)ǖȒ inPhxa( hv3f^DC~^|u3S2^`(Y,r&F<&\|GbA1I覺+7f2kŒ>G|Y46gLYSjAGCd$k8I0IoHm]ѭJOf{+m ̨̖Mӽ>Jl i1FpY""Da#se%dZ9ӵ{UnC^z$]ohٓeDSH! S36<N4C
+"6RNsOPMWZߞ@:
+vڈkۃŮ=K 0#aO&  r~)=W~4UWj6y5ִeMYLfʚr`K
+xRQ8%EROf<-]deP.n*i].)[%z5u*`!a"њUսc-Xߥ÷))/o5!1Nu#ZG<=P;O&VPr<78L&F]^Ǻp֫|yT1$;)8̜w'$2HPQ"Z [K,R"75 C^e?fH0br}u<:MDc!] ҹS"8oq= 2gn8`<͝_mQH'$<C9CF|"("aSZy٥ٽ*VGyX~0 J^g) wm=?%R{p Hx+ <tcߵG9KEPe ]*C}l <ejrUB<6};څPȃ$]eɶ'
+ǐ(Ta$a2[Ո^\():$NP<+͹g[:oUBγ?ć/,ͳ*=z-q]Q'sb\:P M@\aރcAªd=Ld? '
+tSn"أWO="B Xӄ G |5"Ha2mQNY$_㻄/]~P=rcOOnK=OT{j &8_PoT1o!Qƛ2>knOjYs',
+qc#U0.a83zglȦULnƎ>r|wRvgg$Hcv=|x]^/Zv{/iE=+J(]vh
+7>@%C|?*:s p.޷U =Jf<M4rb\&³>qncרUOToR
+d8S->ש<.f"
+:z Qo$03:.IN
+endstream
+endobj
+9221 0 obj
+<< /Type /Page /Contents 9222 0 R /Resources 9220 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8862 0 R >>
endobj
9223 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 362.356 null ] >>
+<< /D [ 9221 0 R /XYZ 78.37 808.885 null ] >>
endobj
9224 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 351.397 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 768.832 null ] >>
endobj
9225 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 340.438 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 757.873 null ] >>
endobj
9226 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 329.479 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 746.914 null ] >>
endobj
9227 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 735.955 null ] >>
endobj
9228 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 293.614 null ] >>
-endobj
-113 0 obj
-<< /D [ 9190 0 R /XYZ 79.37 279.517 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 647.288 null ] >>
endobj
9229 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 216.753 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 636.329 null ] >>
endobj
9230 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 205.794 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 625.37 null ] >>
endobj
9231 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 194.835 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 614.411 null ] >>
endobj
9232 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 183.876 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 603.452 null ] >>
endobj
9233 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 172.917 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 592.493 null ] >>
endobj
9234 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 161.958 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 581.534 null ] >>
endobj
9235 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 150.999 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 570.575 null ] >>
endobj
9236 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 140.04 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 559.616 null ] >>
endobj
9237 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 129.081 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 548.657 null ] >>
endobj
9238 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 118.122 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 537.698 null ] >>
endobj
9239 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 107.164 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 526.74 null ] >>
endobj
9240 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 96.205 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 515.781 null ] >>
endobj
9241 0 obj
-<< /D [ 9190 0 R /XYZ 81.077 85.246 null ] >>
-endobj
-9189 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F72 187 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9221 0 R /XYZ 81.077 504.822 null ] >>
endobj
-9244 0 obj
-<< /Filter /FlateDecode /Length 2052 >>
-stream
-xZk6>
-;n3Mh<Z;x z{^?Qm.
-!X`"Ӭ2l -h7Yfwy]E
-vY}e+b\
-e>=3xQe\v^dHJY}u.V?$ ^oG3xG`.]U*&uΔZŜDbJ
-Xܤ@lj<K<[}#TO33Zb@Yl"'E AzS^iz꽞z͒<[8[я'lψ{Û~C립ͻ͖
-6RĴS]^~! \kT v16mvWhQ":0j~E-}&uu9mڮכԶ#XJÇ+5cͮ2 RۏP۶I$'u: &
-^f&)JWXGz'6O|Dh,S`6 ߅bC*)O";7IFI.G3;3<+(!& ׎hEF+G0qmuڪ"/$KUUq3ZݻD -e.hSFgW(T@'* Q_}{@"4v\k>Jz֣\~~>LOݯ¢ǭuXeqnn0xf\ҸZ[탟PƋȠN ũGCb87 g>KU=F2nv;a!
-fM9]
-gj5uTQB1ȮqzC݂XǍMX(%t4aÜU$[rzC>N]vYj-I?mWN+ǃG@tf"ZC9 B#,c#-])e8*~z/RuNͷX%$p}yeU4dC\QUOvZ[s[pF%5FTL,/
-j#]Sc">43cN*j Ħ+aXO7e
-endstream
+9242 0 obj
+<< /D [ 9221 0 R /XYZ 81.077 493.863 null ] >>
endobj
9243 0 obj
-<< /Type /Page /Contents 9244 0 R /Resources 9242 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 9221 0 R /XYZ 81.077 482.904 null ] >>
+endobj
+9244 0 obj
+<< /D [ 9221 0 R /XYZ 81.077 471.945 null ] >>
endobj
9245 0 obj
-<< /D [ 9243 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 460.986 null ] >>
endobj
9246 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 450.027 null ] >>
endobj
9247 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 439.068 null ] >>
endobj
9248 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 428.109 null ] >>
endobj
9249 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 417.151 null ] >>
endobj
9250 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 724.996 null ] >>
-endobj
-117 0 obj
-<< /D [ 9243 0 R /XYZ 79.37 699.542 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 406.192 null ] >>
endobj
9251 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 644.44 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 395.233 null ] >>
endobj
9252 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 633.481 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 384.274 null ] >>
endobj
9253 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 622.522 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 373.315 null ] >>
endobj
9254 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 611.563 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 362.356 null ] >>
endobj
9255 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 600.604 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 337.449 null ] >>
endobj
9256 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 589.645 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 326.49 null ] >>
endobj
9257 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 578.687 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 259.741 null ] >>
endobj
9258 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 567.728 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 248.782 null ] >>
endobj
9259 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 556.769 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 237.823 null ] >>
endobj
9260 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 545.81 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 226.864 null ] >>
+endobj
+113 0 obj
+<< /D [ 9221 0 R /XYZ 79.37 215.357 null ] >>
endobj
9261 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 534.851 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 150.003 null ] >>
endobj
9262 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 523.892 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 139.044 null ] >>
endobj
9263 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 512.933 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 128.085 null ] >>
endobj
9264 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 501.974 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 117.126 null ] >>
endobj
9265 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 491.015 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 106.167 null ] >>
endobj
9266 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 480.056 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 95.208 null ] >>
endobj
9267 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 464.116 null ] >>
+<< /D [ 9221 0 R /XYZ 81.077 84.249 null ] >>
endobj
-9268 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 453.157 null ] >>
-endobj
-9269 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 442.198 null ] >>
+9220 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F72 187 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9270 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 426.258 null ] >>
+<< /Filter /FlateDecode /Length 2066 >>
+stream
+xZko_".j_#@,P) v?,ValɕLԃ"d
+_yr4e< N=XaQAGvXef a|g-)r<ZN-n;B?3[TORBA=[SPF;&Huf-nrzgEޱ4q'c
+ހCq c%2֗*$,'dڋ|G3 ǣփkKCD4w٪-̩%Jy4h9A){WEݺa#h/#C/y
+endstream
+endobj
+9269 0 obj
+<< /Type /Page /Contents 9270 0 R /Resources 9268 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8862 0 R >>
endobj
9271 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 415.299 null ] >>
+<< /D [ 9269 0 R /XYZ 78.37 808.885 null ] >>
endobj
9272 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 384.415 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 768.832 null ] >>
endobj
9273 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 373.456 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 757.873 null ] >>
endobj
9274 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 362.497 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 746.914 null ] >>
endobj
9275 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 351.538 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 735.955 null ] >>
endobj
9276 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 340.579 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 724.996 null ] >>
endobj
9277 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 329.621 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 714.037 null ] >>
endobj
9278 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 318.662 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 703.078 null ] >>
endobj
9279 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 307.703 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 692.119 null ] >>
endobj
9280 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 296.744 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 681.16 null ] >>
endobj
9281 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 285.785 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 670.202 null ] >>
endobj
9282 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 274.826 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 659.243 null ] >>
+endobj
+117 0 obj
+<< /D [ 9269 0 R /XYZ 79.37 633.788 null ] >>
endobj
9283 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 263.867 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 578.687 null ] >>
endobj
9284 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 252.908 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 567.728 null ] >>
endobj
9285 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 241.949 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 556.769 null ] >>
endobj
9286 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 230.99 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 545.81 null ] >>
endobj
9287 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 220.032 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 534.851 null ] >>
endobj
9288 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 209.073 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 523.892 null ] >>
endobj
9289 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 156.271 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 512.933 null ] >>
endobj
9290 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 145.312 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 501.974 null ] >>
endobj
9291 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 134.353 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 491.015 null ] >>
endobj
9292 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 123.394 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 480.056 null ] >>
endobj
9293 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 112.435 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 469.098 null ] >>
endobj
9294 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 101.476 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 458.139 null ] >>
endobj
9295 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 90.517 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 447.18 null ] >>
endobj
9296 0 obj
-<< /D [ 9243 0 R /XYZ 81.077 79.558 null ] >>
-endobj
-9242 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9269 0 R /XYZ 81.077 436.221 null ] >>
endobj
-9299 0 obj
-<< /Filter /FlateDecode /Length 2059 >>
-stream
-xڵZ]o6}ϯu%(0.X/BPl&jKYIg6KI<+{.5xv?ó"aOW\G*'nt32%$e ,f78i׻RrdyhLFDk ނ\66(c*0[A6jmUAo]ge
-<P46@fP
-[[&yQd}vW
->ūoL,! 3<,'"98cGYۦfvˣ(Ld"C+T o ƺi Ot9+NNhmǘbR>N`#WfH0bIs:}lʑ|P4k"qd0oB֑?8+T ̧V" h_1B5HO`d&c&P&|vQ2 ch<_G=L*9ʔO&*KO`xi#f
-C4 v;u-clֿ`kv2 Ds#3N'QJb;jWm~-4]_ljzgy? c`@Xh#e䒂 @%[$/ .f߻}Nq.[:GeMY?L' )uRI$N_<0NU\\!$Zcx<:R4\_M*lU~%Xj?+s&"E`iZo53yRDftF8b@w_&yRY6 fL[MWMm5wNc~Z71&{-<0$r":^,Q]l`
-M2P6
-WihsѕT1E-OALag<;L>Nƥ0WeĤnLjסsLnjwnr w}t@ 6qgnMbxd@mP2ZӴdS0i(N</90x;Ym"3<*2LkDL:amuD-;b4mU2q e$⊬/T:'X6Ɵ@]DT֋@CGs.u {}}@zu˩EkU_;rM,u6`,!W۹ݰ.'
-endstream
+9297 0 obj
+<< /D [ 9269 0 R /XYZ 81.077 425.262 null ] >>
endobj
9298 0 obj
-<< /Type /Page /Contents 9299 0 R /Resources 9297 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 9269 0 R /XYZ 81.077 414.303 null ] >>
+endobj
+9299 0 obj
+<< /D [ 9269 0 R /XYZ 81.077 398.363 null ] >>
endobj
9300 0 obj
-<< /D [ 9298 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 387.404 null ] >>
endobj
9301 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 376.445 null ] >>
endobj
9302 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 360.505 null ] >>
endobj
9303 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 349.546 null ] >>
endobj
9304 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 318.662 null ] >>
endobj
9305 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 307.703 null ] >>
endobj
9306 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 296.744 null ] >>
endobj
9307 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 285.785 null ] >>
endobj
9308 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 274.826 null ] >>
endobj
9309 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 263.867 null ] >>
endobj
9310 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 252.908 null ] >>
endobj
9311 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 241.949 null ] >>
endobj
9312 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 230.99 null ] >>
endobj
9313 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 220.032 null ] >>
endobj
9314 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 616.403 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 209.073 null ] >>
endobj
9315 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 198.114 null ] >>
endobj
9316 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 187.155 null ] >>
endobj
9317 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 176.196 null ] >>
endobj
9318 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 165.237 null ] >>
endobj
9319 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 529.728 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 154.278 null ] >>
endobj
9320 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 518.769 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 143.319 null ] >>
endobj
9321 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 507.811 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 90.517 null ] >>
endobj
9322 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 496.852 null ] >>
+<< /D [ 9269 0 R /XYZ 81.077 79.558 null ] >>
endobj
-9323 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 485.893 null ] >>
-endobj
-9324 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 474.934 null ] >>
+9268 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9325 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 463.975 null ] >>
+<< /Filter /FlateDecode /Length 2094 >>
+stream
+xڭZo6~_W
+>D$R&$:cT͒YnwTP~ܻ,%")JnD=/VʝnqnNI"Pg&dU틶;du->oC̣ !2¤pːq&uT:BQ(>W3Wm-(k-¹ruz_Quޖm,zp^9#6!.uPMnI:|K9؆G^{ŮTgJ(_SI̜,.i\zY-eMwut"NFpzs6DМH᨝p0FDU o x}aZd,F,+|6}b_~ !*﫺Ġ0x-E艉8Į$:Ja2Ή|\o0~,z|m
+Й:NQI%@zgf%#;"
+/<~;1Q} Y72̠=rAU T_v#,ekkH2"
+9OsX KNt<IiU]Ek
+@ф?h<D,{;pvmiMWMm5f쏓9gZ5=
+mcfODT{iߛ"* t7b! "r*@BqA<IOׄ@k<A,tbYt~
+; 8;\5&F%ynLVWס dܓrZ ^_u~; +?> Jep/J&X9O(ƖJXmK[<yk"M.</:DB+SJ75 H:em7P̋{|4iU<m1Ex2f4|K.-89,zx<0H7nzsQ=>l? G_n?cS7;VYˢ#j.;{)FkOrYK v R:aceRnj&
+" _:\UPu2H_\Cz6;)%ԉ| \ qN_W$ϱ_\Qg5p}nM1s-
+im wxPmav:#)a>Tw=o͗La cݘۦ^<bTLp?Ld?sRj+IihUb
+@8{72%t; éU{ '.䇕߫;w'-sxt)0T褻;o_n]b}QD
+$N*@AxzS_ֆ)(L`xn[տ܅+iD%K)WE/>Xř΀s'UKh.K?*e?D?Mӯgga.|!_p
+J
+\ |,=܍\P^VeGΆ Ǿ:RIIWsy{º
+endstream
endobj
-121 0 obj
-<< /D [ 9298 0 R /XYZ 79.37 440.513 null ] >>
+9324 0 obj
+<< /Type /Page /Contents 9325 0 R /Resources 9323 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8862 0 R >>
endobj
9326 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 372.17 null ] >>
+<< /D [ 9324 0 R /XYZ 78.37 808.885 null ] >>
endobj
9327 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 361.211 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 768.832 null ] >>
endobj
9328 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 350.252 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 757.873 null ] >>
endobj
9329 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 310.401 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 746.914 null ] >>
endobj
9330 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 299.443 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 735.955 null ] >>
endobj
9331 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 288.484 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 724.996 null ] >>
endobj
9332 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 238.67 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 714.037 null ] >>
endobj
9333 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 227.711 null ] >>
-endobj
-125 0 obj
-<< /D [ 9298 0 R /XYZ 79.37 203.004 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 703.078 null ] >>
endobj
9334 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 135.2 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 692.119 null ] >>
endobj
9335 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 124.241 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 681.16 null ] >>
endobj
9336 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 113.282 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 670.202 null ] >>
endobj
9337 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 102.324 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 654.294 null ] >>
endobj
9338 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 91.365 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 643.336 null ] >>
endobj
9339 0 obj
-<< /D [ 9298 0 R /XYZ 81.077 80.406 null ] >>
-endobj
-9297 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9324 0 R /XYZ 81.077 632.377 null ] >>
endobj
-9342 0 obj
-<< /Filter /FlateDecode /Length 2391 >>
-stream
-xڵZ[o~ϯ0цû
-D,"dZ,k(Uۦ>J:֪>b|]F24%q8dfv Qrzs4(g3S%˲|6Xe벧/op&9_Ԏv!gSQl/Sfg"W`ܪ
-9{ૢ"eHD֘6NxIdWɕ'SQh6&_뉔F(}v; ]}:*M 3e Mut]c€8<h;+3AV򲬬A,B9IS Y-6L&
-D݊
-"1\߉qau.]/fE&.AHGL_+ cZFY3ȼMT ;k[ }VeK5Tijr=]W~VYT*8s"S &M+Wjʗ3~С=˟=r{(W9pa",%zWlJf2XZXL$^:ˆhKU'T[BA.t`q;m5z2.лGuuvkN%& tQt>k+϶Wa|(/60.ڄ4]>}p2 0ӶLHK$o>|=
- 弌Β0.x/%.60.zCY?ԟOqn:*О1s&C?<94(ca=z`᠉81ɟ|8,ٹ(1Iꡯx=P1gץ^R^p]iecV20s{Sz}92>k:!}:̭j(
-G~(7R`4§Khc )-H7I 9_6Re铞8ǽ_vWr#5^
-oVD3pUuMqaDB+)~vn4
-O&ώd)- FE[2`>:~jcpcB1銰a"%SCOj9-L?A<g/7&"blL">+sp1;rC[]UR/ݛOτ1ħo~"TЖxUo_Oۨ/C֧njl"">}8qGgw9P}hZxk+PTq$LJg*ͪP}ж Ozs/ҍas _RlFСٌ `8~ Kc
-endstream
+9340 0 obj
+<< /D [ 9324 0 R /XYZ 81.077 621.418 null ] >>
endobj
9341 0 obj
-<< /Type /Page /Contents 9342 0 R /Resources 9340 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 8886 0 R >>
+<< /D [ 9324 0 R /XYZ 81.077 610.459 null ] >>
+endobj
+9342 0 obj
+<< /D [ 9324 0 R /XYZ 81.077 599.5 null ] >>
endobj
9343 0 obj
-<< /D [ 9341 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 588.541 null ] >>
endobj
9344 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 577.582 null ] >>
endobj
9345 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 566.623 null ] >>
endobj
9346 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 550.716 null ] >>
endobj
9347 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 668.209 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 539.757 null ] >>
endobj
9348 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 657.25 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 528.798 null ] >>
endobj
9349 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 646.291 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 517.839 null ] >>
endobj
9350 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 506.881 null ] >>
endobj
9351 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 464.157 null ] >>
endobj
9352 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 453.198 null ] >>
endobj
9353 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 442.239 null ] >>
endobj
9354 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 431.281 null ] >>
endobj
9355 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 420.322 null ] >>
endobj
9356 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 521.758 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 409.363 null ] >>
endobj
9357 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 510.799 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 398.404 null ] >>
+endobj
+121 0 obj
+<< /D [ 9324 0 R /XYZ 79.37 375.025 null ] >>
endobj
9358 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 499.84 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 306.696 null ] >>
endobj
9359 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 423.128 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 295.737 null ] >>
endobj
9360 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 412.169 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 284.778 null ] >>
endobj
9361 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 401.21 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 244.961 null ] >>
endobj
9362 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 390.251 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 234.002 null ] >>
endobj
9363 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 379.292 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 223.043 null ] >>
endobj
9364 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 368.334 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 173.246 null ] >>
endobj
9365 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 357.375 null ] >>
+<< /D [ 9324 0 R /XYZ 81.077 162.287 null ] >>
endobj
-9366 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 346.416 null ] >>
+125 0 obj
+<< /D [ 9324 0 R /XYZ 79.37 137.663 null ] >>
endobj
-9367 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 335.457 null ] >>
+9323 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9368 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 324.498 null ] >>
+<< /Filter /FlateDecode /Length 2341 >>
+stream
+xڵZ[o}ϯ0Ї;
+'a[uebۓLCx%]3̑G`3;c9KUejMmfѾx_dޱm;6l鮍?Ξ98L֡YIJ'GO$0v=`"_~>M05>彮*[h~:flA᣿k;(RrLFUczN\B!M]8J3<K8͉ rQ̭ɨ1 0 [닔HXx# a}9Uv:81̐ 68ޮo:{hIV\hZRWjy[y,ed"#x >b7& ^A=П}r4 3JfO O!%GʛtP2Q8<8-^]E1ld"N~h%I%8V<>$r#񤧅ba5^Uq,}iK񲤎ccmy:qI/!ؔ dl6w]nu+z\bt{~Gľz-ƽęG?@L!u&qT}SW$Qjz֚T8ZsE0;&@G--ڞA?cƫ!K rjy]f}\ߜodӷfh /׀A; \l(;|w117pd'a736L x!A 䭕AuTڒ!5y֥]~g,ϷqMy
+jTZ<2_ 6 ҳeLɏ`hdv+0Q]f6Ef}.2!Ip$tW–4Pڧԥ.w] ZeQAq <}Ic>YAr>z_D쑹#wG2zL#ɧ¢b{CH>£J
+^CmK 3'&1Ũ\cԌ:#X!$Rh1#$1g=7Lu( d/T\23:QQ%}}Juy؂7i]U넰ܫu݈kŨA(K= TGC> R[KTX/C{ J'7KEBmS
+]VR{_lwoe[ ҕ nԂQK7
+endstream
+endobj
+9367 0 obj
+<< /Type /Page /Contents 9368 0 R /Resources 9366 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9414 0 R >>
endobj
9369 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 313.539 null ] >>
+<< /D [ 9367 0 R /XYZ 78.37 808.885 null ] >>
endobj
9370 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 302.58 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 768.832 null ] >>
endobj
9371 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 291.621 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 757.873 null ] >>
endobj
9372 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 280.662 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 746.914 null ] >>
endobj
9373 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 269.703 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 735.955 null ] >>
endobj
9374 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 258.745 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 724.996 null ] >>
endobj
9375 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 217.898 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 714.037 null ] >>
endobj
9376 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 206.939 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 703.078 null ] >>
endobj
9377 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 195.98 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 692.119 null ] >>
endobj
9378 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 185.021 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 681.16 null ] >>
endobj
9379 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 174.062 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 602.456 null ] >>
endobj
9380 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 163.103 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 591.497 null ] >>
endobj
9381 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 152.144 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 580.538 null ] >>
endobj
9382 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 141.185 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 539.691 null ] >>
endobj
9383 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 130.226 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 528.732 null ] >>
endobj
9384 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 119.268 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 517.773 null ] >>
endobj
9385 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 108.309 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 506.814 null ] >>
endobj
9386 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 97.35 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 495.855 null ] >>
endobj
9387 0 obj
-<< /D [ 9341 0 R /XYZ 81.077 86.391 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 484.896 null ] >>
endobj
-9340 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F20 186 0 R /F19 184 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+9388 0 obj
+<< /D [ 9367 0 R /XYZ 81.077 456.005 null ] >>
endobj
-9391 0 obj
-<< /Filter /FlateDecode /Length 2186 >>
-stream
-xڭYKo8Wt~;a
-K[M}
-D1N8H49n[0wҫҀT"߬hڱtJ'NUZ䈤0 ZH!CRPio@4fp*-VDҧu,WC$VH7ΝGDJu
- f+xX.XW{hjەo[Ze]!OTe}Ia{xUBJ ZՇC(1`1>u1CR$06٫{L1Cw Zb;~+Ȑkpg9nA=vQe~fږ]aڗ۝惛O󽷇J(Φ .Iit!L$DzC'T:' qB=s
-
-wZ٫@]")CrU@hmʯ꣔#-h,~(xhMv3)!&*{<}Y}U"z€$/A1D}x
-.1<Cjдv뮏 0UjUw@HƳcSwjxɲZYv~Dyl;JpGšƫZևr.QcI#9bd,lAeU<vN5Zl 神ű˲|}FBpF,GyC vP%eECv‘A O#E
-C`U|# Ζ
-*%! 닊9#ҔiO+bi0c11%87tH$$(d2l"̩3) O [u-˗ls[~=:,A(Kdq] ٣qƨdHp]17HB&]߃c^Wώ!٬־
-i|L´=ya 0ϡ<(ϡ$RƲ$&n˦uD!B2  Uƒ߄S oBMU|<%fQV+DS$I
-6 RhDp*)~GNCM
-Zk1XS  &>"߹@AGf0,IjWkn5c7pɿ}=f'ܱ99Ӄ} XY)mLX(!i"8M ovLDhZ)]ExULqBY<C#ʉ9y1#+<mUqԶG6| վM VݿD"2Cx#2I" I{[Vlmvep  UcLDXOpWsh
-O[>݀\7(8WnykxdClO$8Nβ WHđ_ɲyJ#4i#{RPHCN${Çz԰l+>TJ&m9S
-endstream
+9389 0 obj
+<< /D [ 9367 0 R /XYZ 81.077 445.046 null ] >>
endobj
9390 0 obj
-<< /Type /Page /Contents 9391 0 R /Resources 9389 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R /Annots 9425 0 R >>
+<< /D [ 9367 0 R /XYZ 81.077 434.087 null ] >>
endobj
-9425 0 obj
-[ 9388 0 R ]
-endobj
-9388 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 89.997 482.318 101.952 492.521 ]/A << /S /GoTo /D (section.0.13) >> >>
+9391 0 obj
+<< /D [ 9367 0 R /XYZ 81.077 357.375 null ] >>
endobj
9392 0 obj
-<< /D [ 9390 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 346.416 null ] >>
endobj
9393 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 335.457 null ] >>
endobj
9394 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 324.498 null ] >>
endobj
9395 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 313.539 null ] >>
endobj
9396 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 302.58 null ] >>
endobj
9397 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 291.621 null ] >>
endobj
9398 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 280.662 null ] >>
endobj
9399 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 269.703 null ] >>
endobj
9400 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 258.745 null ] >>
endobj
9401 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 247.786 null ] >>
endobj
9402 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 236.827 null ] >>
endobj
9403 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 225.868 null ] >>
endobj
9404 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 214.909 null ] >>
endobj
9405 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 203.95 null ] >>
endobj
9406 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 192.991 null ] >>
endobj
9407 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 615.407 null ] >>
-endobj
-129 0 obj
-<< /D [ 9390 0 R /XYZ 79.37 591.945 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 152.144 null ] >>
endobj
9408 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 449.186 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 141.185 null ] >>
endobj
9409 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 400.37 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 130.226 null ] >>
endobj
9410 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 354.541 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 119.268 null ] >>
endobj
9411 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 343.582 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 108.309 null ] >>
endobj
9412 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 332.624 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 97.35 null ] >>
endobj
9413 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 321.665 null ] >>
+<< /D [ 9367 0 R /XYZ 81.077 86.391 null ] >>
endobj
-9414 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 310.706 null ] >>
-endobj
-9415 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 281.814 null ] >>
+9366 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F20 186 0 R /F19 184 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-9416 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 270.855 null ] >>
+9418 0 obj
+<< /Filter /FlateDecode /Length 2274 >>
+stream
+xZKۺϯ0HJ[tn]@0[ؒ+ə=GޢD4ŏ!ϋ.?-?|Wlф -$j$AXaL3-na,42R2=b&F?ƏMU?bvzD/T]֭?g
+S)(Ȁ%9)8pe><$E 4"St]Wntѩ #uYuc~ <L/U,j&-XD7n X0 ۤ,$O$wk҂E? I4f&-XDh˾ɷb/8
+I6:ڴ0_Z7ZScD7B)vi#B8RrX:-bLo B214S)4XǨu,WݩI[5t yUqOlѺ '8l%Ot A4a)}e$+?Gݬm7?&0$ݦ+7{bD_!3xX.XW{hjەo-D[¾#f*z~Z Zp=;/cL #XK.~.dH)!yN zsS BgZcP @ g!cl~Q۲2Zrs|p~vSi4Aե ?n2dlPI*8!xϟ>}1 M/Vakh2.|㯣Ma1HaXt>#&(Hy}U.jh!U* 6巫꣔#-h}u(xhMϤo) &?޺}Y}'X{Etu$8or:.1<CjдvjsAU9)ҪJ2c̨ƳcSwjxɲZYv~Dyl;JpW3^4^*>Ri(5F2(TcKF`Kz.c5hI8/.YQI jSmȓyC vLBGCv Gȋ6LyjWG4O0&,& ˮ>iS^Ae4K#g<a%-w]IHP"dA͆[>UM-W-˗D~a{ul6]Kdq] ٣qQȐa[c™t}'gy]HCY}*<7Sޅi{㽅~wXy,(GbfFy."pf",,I i#dȮ-m} MBuB8Ax!TŷΛ,e!}=~Hdkeb8(CzS$aEI*.#tUP9 )2'8ȎVnOݲ%ݯmq_@iGWem _,Ic~_CIa~~r M)zפ̾Rg^7βٞ&>>'0TxY)" Ѳ|G^p3|-jFr4jTWujRIxyIDUHGJp]:k|޿ >"$Ϣ/#n苊ۿ%lLwf8f2T&b=N6K>`Ћ_7voz3l]¼ZUf#pe<8w %C}H>Eh+~ہ]lſ~b8L7 ,b|Y,B?iezSeL8+S𪸞 (cѴsWNL.y1VxP(ڂr۳m-)
+ɶUcLdlc`?L
+Wsh
+:j۫G>>p<+땼= o5IU O 6 )>zoIyI~>ѣL<~ѓFC/IhMo;'C%JIR5#|%6] p(U rE|^[
+endstream
endobj
9417 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 230.008 null ] >>
+<< /Type /Page /Contents 9418 0 R /Resources 9416 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9414 0 R /Annots 9457 0 R >>
endobj
-9418 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 219.049 null ] >>
+9457 0 obj
+[ 9415 0 R ]
+endobj
+9415 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 89.997 423.245 101.952 433.449 ]/A << /S /GoTo /D (section.0.13) >> >>
endobj
9419 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 166.247 null ] >>
+<< /D [ 9417 0 R /XYZ 78.37 808.885 null ] >>
endobj
9420 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 155.289 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 768.832 null ] >>
endobj
9421 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 144.33 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 757.873 null ] >>
endobj
9422 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 133.371 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 746.914 null ] >>
endobj
9423 0 obj
-<< /D [ 9390 0 R /XYZ 81.077 122.412 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 735.955 null ] >>
endobj
-133 0 obj
-<< /D [ 9390 0 R /XYZ 79.37 110.905 null ] >>
+9424 0 obj
+<< /D [ 9417 0 R /XYZ 81.077 724.996 null ] >>
endobj
-9389 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+9425 0 obj
+<< /D [ 9417 0 R /XYZ 81.077 714.037 null ] >>
endobj
-9428 0 obj
-<< /Filter /FlateDecode /Length 2677 >>
-stream
-xڥZK8WƤ>00@f`h`鶰Hr;o*H-=SYb+t0_ѣow>~I"d'ww *M┈xȘMv?BZ2H$SFnD+wyڼ)n&~?~f$%i#yH,QxMn++9y&%{„iѣE1Ј<ۭrE<mQCWsSrUe37_7>/|egtSeM?Ǎ.lG(=gG[VAGRzS̿P!hXa3hŦ
-:6nòbTC"$ ;$sNMF)s Vrp,:Q)yE2Ͷ5iѺPeـ#11>fi娱6U8+1~ > g-ow&11 H0Svv\+IE$UBjֆ超f^gKm7m?Gm;Xî_rq7NR:E\Սyɪ5 *aRPhmj}; 7 _Pnӳ=J
-TK}l$q-J^Wоsd7etB F h<!&a]i S[V4벃Yuٯ`J*"]E& i]xz0pŤ<c⊑9G#ۜ f]8>
-BxmF=ڠh ?ݚigzY EDvqfY 8>3ot )YZP[~q{IRh[nfu_e^4s_LQ3K!U4 #`nvpgJ_;9LcR֣fA=c[h
-H'04;Gt5sdӞڡšCỹK!2<$Kz%P*An#Tȿ#{h"A)Ih3`WM
-R(޴yI'm5TYQjWou0\Bٳ¶+L
-8$R<y.)A9Ҟp\q9! Xt /wtiW~WͦŒx+_e }g<,kǎ ] K\akE
-vHp"K(Iw'z ͛VD$Z0Dt(zmNgrpi\+X "5C8 @.s_:xǝt]=,K\?ǔ/sYsѦVpީIN>Ɨf@mVР Iw `]4mK pwlM
-wYnj^Ŏ+ݟ
-B pxN{FehC<Ӄ|ƓEDR6R_ܽ?nop
-endstream
+9426 0 obj
+<< /D [ 9417 0 R /XYZ 81.077 703.078 null ] >>
endobj
9427 0 obj
-<< /Type /Page /Contents 9428 0 R /Resources 9426 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9417 0 R /XYZ 81.077 692.119 null ] >>
+endobj
+9428 0 obj
+<< /D [ 9417 0 R /XYZ 81.077 681.16 null ] >>
endobj
9429 0 obj
-<< /D [ 9427 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 670.202 null ] >>
endobj
9430 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 619.932 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 659.243 null ] >>
endobj
9431 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 608.973 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 648.284 null ] >>
endobj
9432 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 598.014 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 637.325 null ] >>
endobj
9433 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 587.055 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 626.366 null ] >>
endobj
9434 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 576.096 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 615.407 null ] >>
endobj
9435 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 527.279 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 604.448 null ] >>
endobj
9436 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 516.32 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 593.489 null ] >>
endobj
9437 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 505.362 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 582.53 null ] >>
endobj
9438 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 494.403 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 571.571 null ] >>
endobj
9439 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 447.578 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 560.613 null ] >>
endobj
9440 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 436.619 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 549.654 null ] >>
+endobj
+129 0 obj
+<< /D [ 9417 0 R /XYZ 79.37 530.441 null ] >>
endobj
9441 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 425.66 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 392.664 null ] >>
endobj
9442 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 414.702 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 348.096 null ] >>
endobj
9443 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 403.743 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 305.667 null ] >>
endobj
9444 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 392.784 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 294.708 null ] >>
endobj
9445 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 381.825 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 283.749 null ] >>
endobj
9446 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 370.866 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 272.791 null ] >>
endobj
9447 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 359.907 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 261.832 null ] >>
endobj
9448 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 348.948 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 234.64 null ] >>
endobj
9449 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 337.989 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 223.681 null ] >>
endobj
9450 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 327.03 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 184.534 null ] >>
endobj
9451 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 316.071 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 173.575 null ] >>
endobj
9452 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 305.113 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 122.473 null ] >>
endobj
9453 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 294.154 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 111.514 null ] >>
endobj
9454 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 265.262 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 100.555 null ] >>
endobj
9455 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 254.303 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 89.596 null ] >>
endobj
9456 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 243.344 null ] >>
+<< /D [ 9417 0 R /XYZ 81.077 78.637 null ] >>
endobj
-9457 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 232.385 null ] >>
-endobj
-9458 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 221.426 null ] >>
+133 0 obj
+<< /D [ 9417 0 R /XYZ 79.37 67.98 null ] >>
endobj
-9459 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 210.467 null ] >>
+9416 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R /F70 185 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9460 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 199.509 null ] >>
+<< /Filter /FlateDecode /Length 2679 >>
+stream
+xڥZo8~_a/6a_e`{` CX8[r%I)̾!?3ߐ&hݻ6phB'IJx2I"")?~녻Ro{ѳJo]6yaʦktq:i:IIXAbpwbeYtN
+AX*P.>}Z(EQ`<&QL^
+<l5bD1/RZx=o6iʈd͗HF,Q G{
+C#X0E:|-҄tDijO:DZ-lSN⧣Uy,yx6OW g";pGi5M
+a28o6tp!7hj+37 UB?u3_I>W2"A\2LQoW<Uu^mŷgt*`<$J{U]@y(+)UtT"ʊƞФwJs_޲v kA^Aa]i@բ_ux^~A:1dт#|E\zG/x]pw܍i^aׄAIq?q-<䪏 ",&y? XB $#p[6srȷlrQq|.7ܥlrݩ2)؇d(gO(31d"<˓;ѳ(tZ.3/L&bH ;M7.'1$D&idxVMv&_?=iVsIIJ2
+K
+aDiO$ t8؜iJa/Y,O~t4hV?fӏbIGSRFY =c{W";WfQ]5\dɰ(Iw'z ͛VD$$dȕ%Ci`I\+Xe"5C8 @.s_:xǭq BZʄ?E.Ac9̇n9BlhSwjo+N8T}$yS?˿_SlVOc
+endstream
+endobj
+9459 0 obj
+<< /Type /Page /Contents 9460 0 R /Resources 9458 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9414 0 R >>
endobj
9461 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 188.55 null ] >>
+<< /D [ 9459 0 R /XYZ 78.37 808.885 null ] >>
endobj
9462 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 177.591 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 619.932 null ] >>
endobj
9463 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 166.632 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 608.973 null ] >>
endobj
9464 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 155.673 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 598.014 null ] >>
endobj
9465 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 144.714 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 587.055 null ] >>
endobj
9466 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 115.822 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 576.096 null ] >>
endobj
9467 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 104.863 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 527.279 null ] >>
endobj
9468 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 93.905 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 516.32 null ] >>
endobj
9469 0 obj
-<< /D [ 9427 0 R /XYZ 81.077 82.946 null ] >>
-endobj
-9426 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F73 189 0 R /F69 183 0 R /F26 662 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9459 0 R /XYZ 81.077 505.362 null ] >>
endobj
-9472 0 obj
-<< /Filter /FlateDecode /Length 1568 >>
-stream
-xYMoFWE~Ҁ@@Cuk
-BVt)IwHJ]I5b>ΛY6ɛ~oN~_HZ&x2]0XDXM43ьP͒:sbM:ibI!(W~DŽquP0= u _Z?[~o}zŲ*4 n 08!;=S\uW+߮!+OG*eD4F,:s}U)˼gE+=XpMT);.]Xγ\]utfOLR/{b vFht~k*O!uMUY(Q\ ӲޚkWּb#RkNeX
-!z֬-\޻H1"/XaRd{C2KTCZ˱8
-!z4fJ}G*D)F9.7ڡPCES) j@r
- witЛh/
-O5W\76k#
-bk#u2x>m1se,oQf{sFb)PQT #4R)>6l+6x_ qYzBZ#SC,t]{k8ʚ5 m]Vy^igTSoXpM-U:Dnٜ}ܬ%:-4'FH-!-
-,wiBEis:XkisxٳbtJ(S0}?Om)aq2BT>6Nx#*"ug!f
-aqc|pcK64{pI9#'e4SnSWP^葘K5<hɔ+Wo
-wkCIVn)T׳OdS)S}c( `(~UXhܻ:s~$%`jXxIdYEuC^޶_j\mC2u?cs1p۝7F,~ѥyqŲ*ZVf[jMKUXҴf51;BBMYwX/dQ'1q}t`!#cth(_wF| h=d +t84cCRI#43
-endstream
+9470 0 obj
+<< /D [ 9459 0 R /XYZ 81.077 494.403 null ] >>
endobj
9471 0 obj
-<< /Type /Page /Contents 9472 0 R /Resources 9470 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9459 0 R /XYZ 81.077 447.578 null ] >>
+endobj
+9472 0 obj
+<< /D [ 9459 0 R /XYZ 81.077 436.619 null ] >>
endobj
9473 0 obj
-<< /D [ 9471 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 425.66 null ] >>
endobj
9474 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 414.702 null ] >>
endobj
9475 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 403.743 null ] >>
endobj
9476 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 392.784 null ] >>
endobj
9477 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 381.825 null ] >>
endobj
9478 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 370.866 null ] >>
endobj
9479 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 359.907 null ] >>
endobj
9480 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 348.948 null ] >>
endobj
9481 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 337.989 null ] >>
endobj
9482 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 327.03 null ] >>
endobj
9483 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 316.071 null ] >>
endobj
9484 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 305.113 null ] >>
endobj
9485 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 294.154 null ] >>
endobj
9486 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 265.262 null ] >>
endobj
9487 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 254.303 null ] >>
endobj
9488 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 615.407 null ] >>
-endobj
-137 0 obj
-<< /D [ 9471 0 R /XYZ 79.37 603.9 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 243.344 null ] >>
endobj
9489 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 538.546 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 232.385 null ] >>
endobj
9490 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 527.587 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 221.426 null ] >>
endobj
9491 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 516.628 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 210.467 null ] >>
endobj
9492 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 505.669 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 199.509 null ] >>
endobj
9493 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 494.71 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 188.55 null ] >>
endobj
9494 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 483.751 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 177.591 null ] >>
endobj
9495 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 472.792 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 166.632 null ] >>
endobj
9496 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 461.834 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 155.673 null ] >>
endobj
9497 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 450.875 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 144.714 null ] >>
endobj
9498 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 439.916 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 115.822 null ] >>
endobj
9499 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 428.957 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 104.863 null ] >>
endobj
9500 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 417.998 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 93.905 null ] >>
endobj
9501 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 407.039 null ] >>
-endobj
-9502 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 396.08 null ] >>
+<< /D [ 9459 0 R /XYZ 81.077 82.946 null ] >>
endobj
-9503 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 385.121 null ] >>
+9458 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R /F73 189 0 R /F69 183 0 R /F26 662 0 R /F78 556 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9504 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 374.162 null ] >>
+<< /Filter /FlateDecode /Length 1570 >>
+stream
+xYnF}Wȋ _ H 
+4}ߚE"]rIi+;㼘{93k:ɛ~oN~:94b"L":affb4#TzJO5<R%Nkac0()AcB}HDX(J偅8/Hџ{-L<noep6E(EM[¬ 4FnimOWoVxRU #ҥ"_gnV\="{:e"og,2^mՄkl28btمmVyvj1";b#bO̡6|[\WUˋ2IbKpqZ[ݒhʚldRj͉ 3F^ϚUT77{_)F %+ PLxoHXBI6w<6 \B96G!F,Q._s"pJ@Rt\,oy= 5DP4͑B6
+g-Ϊ}UO̽<Ao}!@vTjAY|,ka<p#ͶEn6:DU.Mȼ7q~qYk0umv8mNЉ;{VN `jprFz-%LANݓz[ʇ o^%D}T6ƌT9ANPtjC_U}/|`ئ\PgP^FR=xL 9)r6*84z$ƒp(Nbp'S^|G* 1H$+A?7~o&q©Y1 X)8LЭ}}*~UXΜ_27q
+endstream
+endobj
+9503 0 obj
+<< /Type /Page /Contents 9504 0 R /Resources 9502 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9414 0 R >>
endobj
9505 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 363.203 null ] >>
+<< /D [ 9503 0 R /XYZ 78.37 808.885 null ] >>
endobj
9506 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 352.244 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 768.832 null ] >>
endobj
9507 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 341.286 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 757.873 null ] >>
endobj
9508 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 330.327 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 746.914 null ] >>
endobj
9509 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 319.368 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 735.955 null ] >>
endobj
9510 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 308.409 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 724.996 null ] >>
endobj
9511 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 297.45 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 714.037 null ] >>
endobj
9512 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 286.491 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 703.078 null ] >>
endobj
9513 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 275.532 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 692.119 null ] >>
endobj
9514 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 264.573 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 681.16 null ] >>
endobj
9515 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 253.614 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 670.202 null ] >>
endobj
9516 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 242.655 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 659.243 null ] >>
endobj
9517 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 196.827 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 648.284 null ] >>
endobj
9518 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 185.868 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 637.325 null ] >>
endobj
9519 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 174.91 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 626.366 null ] >>
endobj
9520 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 163.951 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 615.407 null ] >>
+endobj
+137 0 obj
+<< /D [ 9503 0 R /XYZ 79.37 603.9 null ] >>
endobj
9521 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 152.992 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 538.546 null ] >>
endobj
9522 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 142.033 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 527.587 null ] >>
endobj
9523 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 131.074 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 516.628 null ] >>
endobj
9524 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 120.115 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 505.669 null ] >>
endobj
9525 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 109.156 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 494.71 null ] >>
endobj
9526 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 98.197 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 483.751 null ] >>
endobj
9527 0 obj
-<< /D [ 9471 0 R /XYZ 81.077 87.238 null ] >>
-endobj
-9470 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9503 0 R /XYZ 81.077 472.792 null ] >>
endobj
-9530 0 obj
-<< /Filter /FlateDecode /Length 1883 >>
-stream
-xڵZ]o6ϯ8/fߢ2lh׭ 0VYreIW}E8M|tsxx>H刎~<HxӗI&$:b#f(ьPF뱑9ٿK I&3A S2F̈́l,||8)O_OWuND@KHsL?E5GٳuU˟"?\N=@@IN)v aFzl?j{io]&<|tH'0¹jRhI&\k/['['^a*yy=130vd L|ԩ"&^ 3zVEϦmw狪V~qvF!SiNED;u5o5##yD
-G?D}X5Y_^jC1"*R-a}
-N/CP}Wdh|džeTy "#Wh
-4!ZhOaϔ) {0f}k{nh=JaLVFzU:$mڈ n޸36$x%NjhH pl[5W(ۄpkڴ&fMq(_-8!:`hU=6Dʷeu]w?:g# ZcWkPFhl7/zEIYuzef-|>-#Sz3A۹٨ FqhI((!]0B cP~m־6CYKh2: xs$]_0*" ",@o6
-Em;^4vKW3h}$xS)ږl*"3Fڞ|S<pWJXT}<biGhDS/;A5<ZFUҬ*z{Y;.YB6(_yLٌvY/CS 9G9DߋsׇpNQ#iʺpuy>VKW[iY`
- O
-хh&7˫}:Q'S9NiШ}N,z"gUUdMΕv(㠙zA$;OZб*D7h<'QECF'U IPʫB>/ X-hݱw]ѲyLm(1C (E`iuJҡ goo]=(y}٪
-v1/WPCG$8x!{RQ eC=[fj쬱'NpBB'D?O;`.knq4X BЫ
-
-ӗ,A\\2Kac{<B:[9݆fLD_Ĺu޻0(ӊ^qv<ΦN>nXŇ'{H<=+,ZNЈ\vAP~tӁbڷRnEҼl6kٳ1.Yap{ڃ?=y;]Д/h"->J>͉{C>{CAQ$CE"Lʜi AXuʅ焏6dVNnV['
-endstream
+9528 0 obj
+<< /D [ 9503 0 R /XYZ 81.077 461.834 null ] >>
endobj
9529 0 obj
-<< /Type /Page /Contents 9530 0 R /Resources 9528 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9503 0 R /XYZ 81.077 450.875 null ] >>
+endobj
+9530 0 obj
+<< /D [ 9503 0 R /XYZ 81.077 439.916 null ] >>
endobj
9531 0 obj
-<< /D [ 9529 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 428.957 null ] >>
endobj
9532 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 417.998 null ] >>
endobj
9533 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 407.039 null ] >>
endobj
9534 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 396.08 null ] >>
endobj
9535 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 385.121 null ] >>
endobj
9536 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 374.162 null ] >>
endobj
9537 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 363.203 null ] >>
endobj
9538 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 352.244 null ] >>
endobj
9539 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 341.286 null ] >>
endobj
9540 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 330.327 null ] >>
endobj
9541 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 319.368 null ] >>
endobj
9542 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 308.409 null ] >>
endobj
9543 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 297.45 null ] >>
endobj
9544 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 286.491 null ] >>
endobj
9545 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 275.532 null ] >>
endobj
9546 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 264.573 null ] >>
endobj
9547 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 253.614 null ] >>
endobj
9548 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 242.655 null ] >>
endobj
9549 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 196.827 null ] >>
endobj
9550 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 185.868 null ] >>
endobj
9551 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 174.91 null ] >>
endobj
9552 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 163.951 null ] >>
endobj
9553 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 152.992 null ] >>
endobj
9554 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 142.033 null ] >>
endobj
9555 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 131.074 null ] >>
endobj
9556 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 120.115 null ] >>
endobj
9557 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 109.156 null ] >>
endobj
9558 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 98.197 null ] >>
endobj
9559 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 457.997 null ] >>
-endobj
-9560 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 9503 0 R /XYZ 81.077 87.238 null ] >>
endobj
-9561 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 436.08 null ] >>
+9502 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9562 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 425.121 null ] >>
+<< /Filter /FlateDecode /Length 1884 >>
+stream
+xڵZ]o6ϯ8/fߢ2lh׭ 0VYreIW}E8ɍi|xsxx>(刎~<H?}wze"F >:8b0hY2J4#T|zloNk=}ӑ!„`&(aJ这M/'jnԉh~i{ɞS>{ٺ2bS~Zܺ'H0)<m?esC^vl V7|̮N}u~>k:z{O` \jqZ7)Մked1fi߹'A s:cMpk@*"h)8m,}Zl4}Ͽ~i5jg$2 v!:d^OK[hj\c0rq120KkNi+;bdu~y˿@ňL|!/[4=OP)Bes{npC4>E2CT:"#Wh
+4!Z.L)1zlVw醦^٪oPl#t*rMwV n6m2yşvCθ(08CtmR"I2x n[\n­=jӂ5š| /$p?u'F/m^o}tpF6X$#!\%mf
+~L\EXgWj۲yQ<27T۞Y0kE||3zF2;~8B;.} m^p1%8,*{uH8 U
+DEDXlv7hlB'f"ErTR-W{UEhgȵ=gO֧bSy੔\x$%ӎЯѲ9X>N*TmspeT%ͪO%D މkBU}͝h7+91>G9DߋsׇpiP#iʺpuy>VKW[iY`
+
+GT둤$M֫A?Jş
+endstream
+endobj
+9561 0 obj
+<< /Type /Page /Contents 9562 0 R /Resources 9560 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9414 0 R >>
endobj
9563 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 414.162 null ] >>
+<< /D [ 9561 0 R /XYZ 78.37 808.885 null ] >>
endobj
9564 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 403.203 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 768.832 null ] >>
endobj
9565 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 392.244 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 757.873 null ] >>
endobj
9566 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 381.285 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 746.914 null ] >>
endobj
9567 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 370.326 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 735.955 null ] >>
endobj
9568 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 359.367 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 724.996 null ] >>
endobj
9569 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 348.408 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 714.037 null ] >>
endobj
9570 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 337.449 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 703.078 null ] >>
endobj
9571 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 326.49 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 692.119 null ] >>
endobj
9572 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 315.532 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 681.16 null ] >>
endobj
9573 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 670.202 null ] >>
endobj
9574 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 288.632 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 659.243 null ] >>
endobj
9575 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 277.674 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 648.284 null ] >>
endobj
9576 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 266.715 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 637.325 null ] >>
endobj
9577 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 250.774 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 626.366 null ] >>
endobj
9578 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 239.816 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 615.407 null ] >>
endobj
9579 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 228.857 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 604.448 null ] >>
endobj
9580 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 217.898 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 593.489 null ] >>
endobj
9581 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 190.002 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 582.53 null ] >>
endobj
9582 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 179.043 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 571.571 null ] >>
endobj
9583 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 168.085 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 560.613 null ] >>
endobj
9584 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 157.126 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 549.654 null ] >>
endobj
9585 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 146.167 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 523.751 null ] >>
endobj
9586 0 obj
-<< /D [ 9529 0 R /XYZ 81.077 135.208 null ] >>
-endobj
-9528 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9561 0 R /XYZ 81.077 512.792 null ] >>
endobj
-9589 0 obj
-<< /Filter /FlateDecode /Length 2161 >>
-stream
-xڭZ[o~ϯXO8.Ҧ ƾ4-AcD$NduF%%~!?ι9ߙQ_D>z1Sbq}hA1%RVD./?0ES` 5طtrBJ 1Yu~9_x/Ybcvpm7w%۴.O~ػ}WD'SSrqH6
-:
-HBőY 1|xxɉdӞ;WP"d|s}\¹-sp?ϼ3,~Vcqೈr͚(#B͌#ngb} 7Ulն)1p<U)}&)c^nVa*vuV+.4E #Jugjm*.j7nuVO7պv5N;kT3=O7P? Y'Zw ܀K@3v4O`lx
-UsçdC"Ux׃T[B)nY_;%Qnڦp% jb1%4DC&ʪN>ڠBlSH|K~88-g
-,"xl^A#1
-Wݤsq ɎΝSU(cwܕu#%_aj\w<tbiԮlb6w5ے}w(6͍ns8ބP v4`( g#!PwhJ}` Ba ; u bq/knQ>ri>++?E niCnWww
-^L˓_/"B磿iX44)/f)Ƙ ]RGm׵ W詏MQVƮ"4rcWWGO INz=[ҟBhXu3di4%NJxZ >z/.NIB=6t%z^7D)1pwP}CRue*O?ℚT-
-hJ8k܉Dvv/]ҜwfkQ 7h<U/Ai{՞Uw^:<W4zYTn"9cVR %oF^
- FJK믓,U]zp`k#MvBLIQB]_@=8hϪ^$;%ʏ{w,S 5_28=͊A?fpb>:eQ^S)ǝbh9lFWf*:`diHj/N'ӭMa12
-%v2}<lm}m_; %.,ǁ(""qi7
-endstream
+9587 0 obj
+<< /D [ 9561 0 R /XYZ 81.077 501.833 null ] >>
endobj
9588 0 obj
-<< /Type /Page /Contents 9589 0 R /Resources 9587 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9561 0 R /XYZ 81.077 490.874 null ] >>
+endobj
+9589 0 obj
+<< /D [ 9561 0 R /XYZ 81.077 479.915 null ] >>
endobj
9590 0 obj
-<< /D [ 9588 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 468.956 null ] >>
endobj
9591 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 625.801 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 457.997 null ] >>
endobj
9592 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 614.842 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 447.038 null ] >>
endobj
9593 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 603.883 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 436.08 null ] >>
endobj
9594 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 592.924 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 425.121 null ] >>
endobj
9595 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 581.965 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 414.162 null ] >>
endobj
9596 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 571.006 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 403.203 null ] >>
endobj
9597 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 560.048 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 392.244 null ] >>
endobj
9598 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 549.089 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 381.285 null ] >>
endobj
9599 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 538.13 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 370.326 null ] >>
endobj
9600 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 527.171 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 359.367 null ] >>
endobj
9601 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 516.212 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 348.408 null ] >>
endobj
9602 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 505.253 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 337.449 null ] >>
endobj
9603 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 494.294 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 326.49 null ] >>
endobj
9604 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 436.161 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 315.532 null ] >>
endobj
9605 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 425.202 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 304.573 null ] >>
endobj
9606 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 414.243 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 288.632 null ] >>
endobj
9607 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 398.626 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 277.674 null ] >>
endobj
9608 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 387.667 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 266.715 null ] >>
endobj
9609 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 376.708 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 250.774 null ] >>
endobj
9610 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 365.749 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 239.816 null ] >>
endobj
9611 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 354.79 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 228.857 null ] >>
endobj
9612 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 343.832 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 217.898 null ] >>
endobj
9613 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 332.873 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 190.002 null ] >>
endobj
9614 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 321.914 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 179.043 null ] >>
endobj
9615 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 310.955 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 168.085 null ] >>
endobj
9616 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 299.996 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 157.126 null ] >>
endobj
9617 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 289.037 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 146.167 null ] >>
endobj
9618 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 278.078 null ] >>
+<< /D [ 9561 0 R /XYZ 81.077 135.208 null ] >>
endobj
-9619 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 267.119 null ] >>
-endobj
-9620 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 256.16 null ] >>
+9560 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F79 668 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9621 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 245.201 null ] >>
+<< /Filter /FlateDecode /Length 2167 >>
+stream
+xڭZ[o~_a /.EN7h
+t}鴂02Jf߾Ф#ۢg˔>xwHjg>zugiI%>!pL$x2K$AXfJnv &{ b^ Q b16oMw^^Q57<4Ҭˇ7YS基/yw^.*b" 6
+:
+ BCՉYRlt|"i?ǝ B\}9ǼrV%~c~f<W"FRnaBB)7'H*BL R"9>Osy*foTqJa
+*/4|&Aˢ>rɊ(H
+zBN9ҹKec֝y֯^VN8ס>"Pm?jxuY8CI'Kޯ
+~6?!ܘv*)M6̅mS&SlWkS1=dqYSa}9$DvH8mGZ(ZI$ `:0(e,
+ M,?s.{(
+b3/[74 $)A)AbT/s -!ͦM1Jք:M67ހ:}.ͪU5˴YgdoO ~]8hkfڬ1ƍU(hq
+h+ VMƼ_<<'}K+HMI㗕mN&έ[ZbkGMIm4 '#ʉV,DǛ sis V!$i$<me"A"I$U%FQnسbtT&&4
+bQ7@=Ju:ťDX-\rK
+Bh̲1aw@p@ou`+RQIx5s](@OhZ08rn 'ѓz%aݪ$Nx<A-䱢3;i>z
+D<m~##H7xo `qwͣ
+J4^ǁ(#=gץtxf
+endstream
+endobj
+9620 0 obj
+<< /Type /Page /Contents 9621 0 R /Resources 9619 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9414 0 R >>
endobj
9622 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 229.584 null ] >>
+<< /D [ 9620 0 R /XYZ 78.37 808.885 null ] >>
endobj
9623 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 218.625 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 625.801 null ] >>
endobj
9624 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 207.667 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 614.842 null ] >>
endobj
9625 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 603.883 null ] >>
endobj
9626 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 592.924 null ] >>
endobj
9627 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 581.965 null ] >>
endobj
9628 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 571.006 null ] >>
endobj
9629 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 560.048 null ] >>
endobj
9630 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 549.089 null ] >>
endobj
9631 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 538.13 null ] >>
endobj
9632 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 527.171 null ] >>
endobj
9633 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 516.212 null ] >>
endobj
9634 0 obj
-<< /D [ 9588 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-9587 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F79 668 0 R /F20 186 0 R /F19 184 0 R /F26 662 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9620 0 R /XYZ 81.077 505.253 null ] >>
endobj
-9637 0 obj
-<< /Filter /FlateDecode /Length 1857 >>
-stream
-xڽZKo6Wi.ߤ ,h!'BPl:QaK^Iybwd8b[>p^2 |Og>\1$Lxv!:`ff`4#Tx1sh5s}DkaC0 Qp+Bń\͖yz{D%rO∄Hnq몎в&/Xfwa1&(U1+YY_,xvf]BqBtǮvťjun^h$274yfʓg8!DR`ϣ<JӼ
-[۴t J8Y1/(/ҫ:BtO>ANF ^f9BKXb$LZ1:؀"/FE^||@^2_[ibkK?Ч3%!֓Q8Eǣ" M G/ MqA?ڝRj8ˎf$a^b8D\Y`)RNLe!zۗeϻ|YT$(ʞ#4~mK cүPYaƯ” WF͆M2 )^;;jVYc8 譳_UeͯbYu~;wߧjqծ?w&#,|Xa.Bp=<S1[ yR"bO0e*U~w0IoN V?ܦ]"ok":mba,Ϲ9wHo^[$Hه \'8BvƹHо/%c4^m[U[SbDW |XB5V>k*F\wMPwme&cȦ*f!_ja:59˄%l^CIm;k
-Tqp@tY6a;cZw{YƼ0V%ACXֆht`R@ \OYD2=$E#^۝kux#4~Yfew%tVUs0Z飖(CE[*67%UyWnK<sB-]| $̒t'myٿs
-endstream
+9635 0 obj
+<< /D [ 9620 0 R /XYZ 81.077 494.294 null ] >>
endobj
9636 0 obj
-<< /Type /Page /Contents 9637 0 R /Resources 9635 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9620 0 R /XYZ 81.077 436.161 null ] >>
+endobj
+9637 0 obj
+<< /D [ 9620 0 R /XYZ 81.077 425.202 null ] >>
endobj
9638 0 obj
-<< /D [ 9636 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 414.243 null ] >>
endobj
9639 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 398.626 null ] >>
endobj
9640 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 387.667 null ] >>
endobj
9641 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 376.708 null ] >>
endobj
9642 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 365.749 null ] >>
endobj
9643 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 354.79 null ] >>
endobj
9644 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 343.832 null ] >>
endobj
9645 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 685.146 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 332.873 null ] >>
endobj
9646 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 674.187 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 321.914 null ] >>
endobj
9647 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 663.228 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 310.955 null ] >>
endobj
9648 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 299.996 null ] >>
endobj
9649 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 289.037 null ] >>
endobj
9650 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 278.078 null ] >>
endobj
9651 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 619.392 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 267.119 null ] >>
endobj
9652 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 608.433 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 256.16 null ] >>
endobj
9653 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 597.474 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 245.201 null ] >>
endobj
9654 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 586.515 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 229.584 null ] >>
endobj
9655 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 575.556 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 218.625 null ] >>
endobj
9656 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 564.598 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 207.667 null ] >>
endobj
9657 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 553.639 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 177.267 null ] >>
endobj
9658 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 542.68 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 166.308 null ] >>
endobj
9659 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 531.721 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 155.349 null ] >>
endobj
9660 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 520.762 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 144.39 null ] >>
endobj
9661 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 509.803 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 133.431 null ] >>
endobj
9662 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 498.844 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 122.473 null ] >>
endobj
9663 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 487.885 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 111.514 null ] >>
endobj
9664 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 476.926 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 100.555 null ] >>
endobj
9665 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 465.967 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 89.596 null ] >>
endobj
9666 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 455.009 null ] >>
-endobj
-9667 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 444.05 null ] >>
+<< /D [ 9620 0 R /XYZ 81.077 78.637 null ] >>
endobj
-9668 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 433.091 null ] >>
+9619 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F79 668 0 R /F20 186 0 R /F19 184 0 R /F26 662 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9669 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 422.132 null ] >>
+<< /Filter /FlateDecode /Length 1862 >>
+stream
+xڽZ[oF~ϯ@ iYFZ)Ԭڇ<V!k\v{x/!3s; U$~u|^ QH9Wn
+t*hEI`9 7s}W $R<tGD%x^r  %pD\tG4+#TUZygEhr[GEwJ4OIV-*bɲ³c!B;ݱL}s+~m?,3W1؎67O/YjǾSM|#>@$<zxi.㻻%N3pd+:VfK=P)uP=doxeʭ []pOA .*s>\&Ut#0Y70ws`ߜTJʟafu\զ_eYvSh.ҪT çtffȤR2Nn*aY#2M=eG֓URK\-a˛\"N*`0>knViYq˝ 8hP>Bjk0̟ᖺ\kF뼆g(v ].+ٜ# gzTαyIz40Fd'x 灻 s~T kVy_&{
+I5}#_sCSJ@Cgo|lBNtJw.#dE^zyκ3՝T4FD6Ccf}$96-v6JQw>_]fpP)ʭ=4RJ<z&;
+縅pm"&9\ l4gF dDYTw6f(у+.K1`$6p2e>-j˕L@}h0xgvJm#TVV*za|U$%ٛbgOq_يTF6[As2/u~_yU>3P)8~wanÊv+´UxQC;'57$J" UĎR_+$.V'qסH9NXs-BND0
+wH\4<bD`{fM6;qCJD}!|Hᶾm+N a, G>zp)ul&"Lh]>g5Au܅kzqXhC6\71s1zNkӱiA&4RFvj
+j:2Dz[49pwKd3Pmt p~u R ҅ShJoL2yiL=]C7Tn
+p1CQسhTC,*oTqv8[6Ya;$a}WIܞh;ic-Pbs4mF *8+6h(\/YDP=TS#^] k\C㷞6uO*R;3ߕ,/ř
+4EY,: 7"C\)J^}4Q)y |KB,װWf
+endstream
+endobj
+9668 0 obj
+<< /Type /Page /Contents 9669 0 R /Resources 9667 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9414 0 R >>
endobj
9670 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 411.173 null ] >>
+<< /D [ 9668 0 R /XYZ 78.37 808.885 null ] >>
endobj
9671 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 400.214 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 768.832 null ] >>
endobj
9672 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 389.255 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 757.873 null ] >>
endobj
9673 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 378.296 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 746.914 null ] >>
endobj
9674 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 367.337 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 735.955 null ] >>
endobj
9675 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 326.49 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 724.996 null ] >>
endobj
9676 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 315.532 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 714.037 null ] >>
endobj
9677 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 685.146 null ] >>
endobj
9678 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 674.187 null ] >>
endobj
9679 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 663.228 null ] >>
endobj
9680 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 652.269 null ] >>
endobj
9681 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 260.737 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 641.31 null ] >>
endobj
9682 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 249.778 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 630.351 null ] >>
endobj
9683 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 238.819 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 619.392 null ] >>
endobj
9684 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 227.86 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 608.433 null ] >>
endobj
9685 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 216.901 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 597.474 null ] >>
endobj
9686 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 205.943 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 586.515 null ] >>
endobj
9687 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 194.984 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 575.556 null ] >>
endobj
9688 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 184.025 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 564.598 null ] >>
endobj
9689 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 173.066 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 553.639 null ] >>
endobj
9690 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 162.107 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 542.68 null ] >>
endobj
9691 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 151.148 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 531.721 null ] >>
endobj
9692 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 140.189 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 520.762 null ] >>
endobj
9693 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 129.23 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 509.803 null ] >>
endobj
9694 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 498.844 null ] >>
endobj
9695 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 487.885 null ] >>
endobj
9696 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 476.926 null ] >>
endobj
9697 0 obj
-<< /D [ 9636 0 R /XYZ 81.077 85.395 null ] >>
-endobj
-9635 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9668 0 R /XYZ 81.077 465.967 null ] >>
endobj
-9700 0 obj
-<< /Filter /FlateDecode /Length 2137 >>
-stream
-xڵZ[oH~ϯ4/z\M]FhWVڼyY!␘i nI߾
-/3:ӊ(BEIlwP[23MR\` CNXWQ%Ҫ^W\<F&&dr{zl7x?i5yX dqUGiTg~O`G*x)k3MfRnK4|)oìVzsiHeE[mT%.)=yEZ@T/"&
- L[IiI˛ M$<{ʥ=4~m-_OLf7CN/--Q쁿Xv_RJ1"xęE 80a%xhg<SkZߡS q^j2.hOqYƯ>K^HwX!.5n]4>& 9"EBsR˻8>,ݦuRVx4kff`n;whgPL|\/84C_pbyi^s UFW]d!J?7.pVb1G2 I(a'T mE*.OEQODq]yn@ j]VҤDS1.k@\,Qj-ZYQڎ+DVq.J 9% iֹ] !X*℘8Lϋ:SןhY;V-*Y\$]|+xk:!+iY[;j_}I'GjCOh˒d@ϭHLG; LTևF׳YM/lݾZb;!@aBdڑ5')~kI~= i_[]fS^5]tHg$QJ35]E`Rϛ* ?:
-*\ 肭
- rw:iUCCJõ2(\K衭5s15.e~F1-\ёK1+Sw!|?T
- x)pa)x[/G V9Ζyou7+~ϙ"< p %UP
-ou]AaTCݔrggӻ jVUF!s4)ٹy}hУS&7!ÁL8/ AݵVSey $tb*㙐vчSl.pݹtuGtBIPBSE;jQxRJ9Prѝ*z}呜ȁ><4A+/PWaþCT49~Jѐ`!04onGoN iN!wkl&L|o)ޕ{Y%=+h<r2 A1QܖvOmGZc|Cv˘$4"R 3
-r *9xQs8q :$.A.mia}NIhpQ@ IMSv@/zhk`?Fq
-9zv,,Y5\憟=
-Ԑ`Zq 4S{"Nh }i#"@)eF)dOTt^|!qg`'d5 CcqAu`f?;^E@L6p?9^c(N']#$X_q *<42:\У*ˢGoe?}%Ϳ ͡ݫ=S;~6NxSh@rf
-c7E~.ZWxx 0<A\~Y)_xyޓv3B3+M*}!Ҫk;
-zX+ܙZC2iuY+_JYy.f]@ !
-endstream
+9698 0 obj
+<< /D [ 9668 0 R /XYZ 81.077 455.009 null ] >>
endobj
9699 0 obj
-<< /Type /Page /Contents 9700 0 R /Resources 9698 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9668 0 R /XYZ 81.077 444.05 null ] >>
+endobj
+9700 0 obj
+<< /D [ 9668 0 R /XYZ 81.077 433.091 null ] >>
endobj
9701 0 obj
-<< /D [ 9699 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 422.132 null ] >>
endobj
9702 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 411.173 null ] >>
endobj
9703 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 400.214 null ] >>
endobj
9704 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 389.255 null ] >>
endobj
9705 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 378.296 null ] >>
endobj
9706 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 367.337 null ] >>
endobj
9707 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 326.49 null ] >>
endobj
9708 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 315.532 null ] >>
endobj
9709 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 304.573 null ] >>
endobj
9710 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 293.614 null ] >>
endobj
9711 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 282.655 null ] >>
endobj
9712 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 271.696 null ] >>
endobj
9713 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 260.737 null ] >>
endobj
9714 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 249.778 null ] >>
endobj
9715 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 238.819 null ] >>
endobj
9716 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 585.519 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 227.86 null ] >>
endobj
9717 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 574.56 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 216.901 null ] >>
endobj
9718 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 563.601 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 205.943 null ] >>
endobj
9719 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 552.642 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 194.984 null ] >>
endobj
9720 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 499.84 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 184.025 null ] >>
endobj
9721 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 488.882 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 173.066 null ] >>
endobj
9722 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 477.923 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 162.107 null ] >>
endobj
9723 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 466.964 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 151.148 null ] >>
endobj
9724 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 456.005 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 140.189 null ] >>
endobj
9725 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 445.046 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 129.23 null ] >>
endobj
9726 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 434.087 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 118.271 null ] >>
endobj
9727 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 405.195 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 107.312 null ] >>
endobj
9728 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 394.236 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 96.354 null ] >>
endobj
9729 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 383.278 null ] >>
+<< /D [ 9668 0 R /XYZ 81.077 85.395 null ] >>
endobj
-9730 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 372.319 null ] >>
-endobj
-9731 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 361.36 null ] >>
+9667 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9732 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 350.401 null ] >>
+<< /Filter /FlateDecode /Length 2140 >>
+stream
+xڵZKo8WŗHE
+8}+zm ­-5FhkcMRle{UYrlϵ7U1t8}.ۭY#^Ykx-bND3MX0D{淒bY5vW/g86Hʥ4~m-ƭM'&3RhڊٴYD =&T3"Y&R՗
+@ rq;@5Xp9`bwi&dkff`n neW3i(M|^.8,ϻ]\25ؼٶ/݆{#+}-ɢcK "XԊ[8)1̄p QBШV?o#hQ(=GG
+c}x%at^IR=O}+¯Jղ֛2/+ae!G[z!$ zw)8r!d ? x!&!f eO-jMwn#.һ Qon>dg{!+ݲOYU;;^}ά/GjCOhdHϭHLG7 LTևVYM/dݾ^db7!@aBT<_Ɂu#k@Rp2%{yVffzjvc^5}lH'$cԦ*H wkնxDPÉVFZ@lU
+=_bq>uȷqUha]{gb G-/V3
+EYmi/9O2OI,m}=v;Rx=g1qsq %UP
+կw}AeTCݔrgzuF!sڶ)ɻy}hУS&7@L =c{
+,dN8\;QQGN͒f+Ҧ|3է7\wDQKI"]Rũ=l j(<^XN) SǺ)Zɉt$HE>4A+j+sఊ%NHB?%Аh!04onGo iO!wkl&L/to)ޕvI%+& ӏ",P:vzz
+u[ƌ&ʌI]['EZg<eu:]{2Q}rC"FXDÉ!<unWՋuMdeLUCƎQl#@[pqyseزsc6$8`P!@Ñkб&q pnhO )= 9}g(!)1v@]/hk۲a?\+h9(E
+,H0Wq*42:2\ УFoUY<|%+ ϡO}6Nx#"֌
+#@ݧ쨟^EiH+9$ڷ!1!~gvZAk;X?a/Vu՟l g"?z
+endstream
+endobj
+9731 0 obj
+<< /Type /Page /Contents 9732 0 R /Resources 9730 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9414 0 R >>
endobj
9733 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 339.442 null ] >>
+<< /D [ 9731 0 R /XYZ 78.37 808.885 null ] >>
endobj
9734 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 768.832 null ] >>
endobj
9735 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 757.873 null ] >>
endobj
9736 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 746.914 null ] >>
endobj
9737 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 735.955 null ] >>
endobj
9738 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 724.996 null ] >>
endobj
9739 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 714.037 null ] >>
endobj
9740 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 226.864 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 703.078 null ] >>
endobj
9741 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 215.905 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 692.119 null ] >>
endobj
9742 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 204.946 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 681.16 null ] >>
endobj
9743 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 670.202 null ] >>
endobj
9744 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 183.028 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 659.243 null ] >>
endobj
9745 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 172.07 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 648.284 null ] >>
endobj
9746 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 161.111 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 637.325 null ] >>
endobj
9747 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 150.152 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 626.366 null ] >>
endobj
9748 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 139.193 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 585.519 null ] >>
endobj
9749 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 128.234 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 574.56 null ] >>
endobj
9750 0 obj
-<< /D [ 9699 0 R /XYZ 81.077 117.275 null ] >>
-endobj
-9698 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9731 0 R /XYZ 81.077 563.601 null ] >>
endobj
-9753 0 obj
-<< /Filter /FlateDecode /Length 2075 >>
-stream
-xZ]o}ϯ0/TPAf}]#ʒGg&^J2%:ɶ/l~4<L]rw⯳wFL$,|2[^0xNjl2[O~Zfzw%ŽSbDeB6y-Jq77q>ǫ<+:^Y -CIM91
-(%r>/
-(%CPV4qݤ8+Eѵ='ugeVkipAѣN׉8+0+} \yљ#)@2'= X&\!CyIъ7lzTi.Ql7_KZ0WP(DPax4sDVȆIcٻ#sG Gg"B-RKj|kN`>X1ip>F,A>lJpTgݍc_a?b-&xʵ{j"" JK+b<Tvn)6U٤!+,0Nx 'mdx(7Ph$ʆp?솏 9f?Yq}NRȚ{UmɊ]H) u4"fl)6}>mFp`+B>^*5Mm*~ttw) {F T<Ewvi'c͢c g@Y%yAԞ}^ep7(È17DDǺER?;bQ\h4w)|G3qBt+UaRu7%,Aq\Pc/!P>"hv>=SnnbDƯ=č1oV.ui
-endstream
+9751 0 obj
+<< /D [ 9731 0 R /XYZ 81.077 552.642 null ] >>
endobj
9752 0 obj
-<< /Type /Page /Contents 9753 0 R /Resources 9751 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9731 0 R /XYZ 81.077 499.84 null ] >>
+endobj
+9753 0 obj
+<< /D [ 9731 0 R /XYZ 81.077 488.882 null ] >>
endobj
9754 0 obj
-<< /D [ 9752 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 477.923 null ] >>
endobj
9755 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 466.964 null ] >>
endobj
9756 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 456.005 null ] >>
endobj
9757 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 445.046 null ] >>
endobj
9758 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 434.087 null ] >>
endobj
9759 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 405.195 null ] >>
endobj
9760 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 394.236 null ] >>
endobj
9761 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 383.278 null ] >>
endobj
9762 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 372.319 null ] >>
endobj
9763 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 361.36 null ] >>
endobj
9764 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 350.401 null ] >>
endobj
9765 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 339.442 null ] >>
endobj
9766 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 292.618 null ] >>
endobj
9767 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 601.459 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 281.659 null ] >>
endobj
9768 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 590.5 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 270.7 null ] >>
endobj
9769 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 579.542 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 259.741 null ] >>
endobj
9770 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 568.583 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 248.782 null ] >>
endobj
9771 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 557.624 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 237.823 null ] >>
endobj
9772 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 546.665 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 226.864 null ] >>
endobj
9773 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 535.706 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 215.905 null ] >>
endobj
9774 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 524.747 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 204.946 null ] >>
endobj
9775 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 513.788 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 193.987 null ] >>
endobj
9776 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 183.028 null ] >>
endobj
9777 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 172.07 null ] >>
endobj
9778 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 161.111 null ] >>
endobj
9779 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 150.152 null ] >>
endobj
9780 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 139.193 null ] >>
endobj
9781 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 128.234 null ] >>
endobj
9782 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 419.143 null ] >>
-endobj
-9783 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 9731 0 R /XYZ 81.077 117.275 null ] >>
endobj
-9784 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 397.225 null ] >>
+9730 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9785 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 386.266 null ] >>
+<< /Filter /FlateDecode /Length 2075 >>
+stream
+xZ]o}ϯ0/TPAf}]#ʒGg&^J2%:ɶ/l4<L]rw⯳wFL$,|2[^0xNjl2[O~ZowĒHka`)1"
+ѿ2!<Ζqnv{yj㛛ISeUi/n$&9FB
+M?_Z1M/m$*w+M&]4}/E^$I+2D,CG:)8I =~8w/ >#3~<ORϳ*϶d4RJ/äFDެ] Cȵ AOw#8!W/&uOe?tWylS=#gmӮ"AB=@XC:mSqiw=k$o:s?׫ .e1f l*^$31>#>M!lX\h4w)D{_W >Iov~lXHIݬ'F^Ksj;=o7$~ Σ1ڙL_4_{Hc4oXP  aIպ:ͳ\Z5͡O<dUee3w
+W~PzKҸ`~L|B*on~ˊoj94ʾEZwi IeP#c9*V0As'Nq=ɷ?U"Y'{wy4
+Q _^q;MӢ4-jgfsTF(<FuFŐ!O{3FJ`Y<y7ʜ3I?^(#x ̫NR̀f]c۫zԷ6(-i&|Ckzﶻn@N٠=SÂ[YԡtiNw*4wǏ]cxmĚbGIkE"拴3
+endstream
+endobj
+9784 0 obj
+<< /Type /Page /Contents 9785 0 R /Resources 9783 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9414 0 R >>
endobj
9786 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 9784 0 R /XYZ 78.37 808.885 null ] >>
endobj
9787 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 768.832 null ] >>
endobj
9788 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 757.873 null ] >>
endobj
9789 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 746.914 null ] >>
endobj
9790 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 295.606 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 735.955 null ] >>
endobj
9791 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 284.647 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 724.996 null ] >>
endobj
9792 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 273.688 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 714.037 null ] >>
endobj
9793 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 262.73 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 703.078 null ] >>
endobj
9794 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 251.771 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 692.119 null ] >>
endobj
9795 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 240.812 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 681.16 null ] >>
endobj
9796 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 229.853 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 670.202 null ] >>
endobj
9797 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 171.073 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 659.243 null ] >>
endobj
9798 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 160.114 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 630.351 null ] >>
endobj
9799 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 149.155 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 601.459 null ] >>
endobj
9800 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 138.197 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 590.5 null ] >>
endobj
9801 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 127.238 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 579.542 null ] >>
endobj
9802 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 116.279 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 568.583 null ] >>
endobj
9803 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 105.32 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 557.624 null ] >>
endobj
9804 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 94.361 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 546.665 null ] >>
endobj
9805 0 obj
-<< /D [ 9752 0 R /XYZ 81.077 83.402 null ] >>
-endobj
-9751 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9784 0 R /XYZ 81.077 535.706 null ] >>
endobj
-9808 0 obj
-<< /Filter /FlateDecode /Length 2653 >>
-stream
-xڭZ[ۺ~ϯ0z,e
-4-}9) +u"K$gw=CR7jYLbPx«_ ۂ_820۽!0JK$Z)IduwX{W{?Ҭ42R2=&& #"xHru-X$˦(M/K7<4U)C8;o9G_]eS3!e:-z[1w?20)|<2C UwW׌ic}ٻ|]e{;ti&Pr@^9:N9cjPFS%E+C`bQ{~L_bז!FD 6Hű̊hHMg,cCBY{"77f6q}" CSw`ؘMVdM6'Tr~#t/!؀:~mnW_Gހj
-w6<}Ա2DBĩjD| 9/!A-;T yـ:ȅ1ʭVcI#q0d\I/ V)ޯ-q2VzS&rs{;(pIݗU9᫛"ҽ$1h'm&զHo`lz{ލi;9IS6ɣYi{#TKBYaT迁ZiTj gy(>7j2~vuK2RpH \[R8 g?Q1BUy9$VϾ e._85ideQk_Wi\bmO ]۔f9쬰tU7(QL.+Y:t֪IU8f~d9dB2ڍ
-Wpf,wp`*;Ve-lphTgpJu:(S+ ;|IJqYCa=}[`ŠBBrf}O?՞},}Ƕ<cl틽7MϓM@`YJ4Ẇ$$w)nŖyd ^s26gm(0s]> kL!!Ch~H:Bv9`l;vE׻2̊;YCɳ‡pPbvLC"`
-fDm"X ́fC6XP%tX04-lJ]O DL_ {vr<ZM'fU}8A2\le|TMI8Wٰv=ต缬[]r40w{MD s8lC@"w ׫Cd ݃?}:Oy>Y3<Z&eOmgxPqC* u8GVPy<{=oZr8|6^;qU+>?5v:~SBZK$v K֗XMnn|e46TvdT9%2!J9q
-M_0HU G[0MQ67⠗P+NJ`HjvzDn0Iwn3<2mbnK~
-endstream
+9806 0 obj
+<< /D [ 9784 0 R /XYZ 81.077 524.747 null ] >>
endobj
9807 0 obj
-<< /Type /Page /Contents 9808 0 R /Resources 9806 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9784 0 R /XYZ 81.077 513.788 null ] >>
+endobj
+9808 0 obj
+<< /D [ 9784 0 R /XYZ 81.077 484.896 null ] >>
endobj
9809 0 obj
-<< /D [ 9807 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 473.938 null ] >>
endobj
9810 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 462.979 null ] >>
endobj
9811 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 452.02 null ] >>
endobj
9812 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 723.004 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 441.061 null ] >>
endobj
9813 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 712.045 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 430.102 null ] >>
endobj
9814 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 701.086 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 419.143 null ] >>
endobj
9815 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 690.127 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 408.184 null ] >>
endobj
9816 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 679.168 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 397.225 null ] >>
endobj
9817 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 668.209 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 386.266 null ] >>
endobj
9818 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 657.25 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 375.307 null ] >>
endobj
9819 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 646.291 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 364.349 null ] >>
endobj
9820 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 635.332 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 353.39 null ] >>
endobj
9821 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 624.373 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 342.431 null ] >>
endobj
9822 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 613.415 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 295.606 null ] >>
endobj
9823 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 602.456 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 284.647 null ] >>
endobj
9824 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 586.515 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 273.688 null ] >>
endobj
9825 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 575.556 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 262.73 null ] >>
endobj
9826 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 564.598 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 251.771 null ] >>
endobj
9827 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 553.639 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 240.812 null ] >>
endobj
9828 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 474.934 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 229.853 null ] >>
endobj
9829 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 386.266 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 171.073 null ] >>
endobj
9830 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 160.114 null ] >>
endobj
9831 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 149.155 null ] >>
endobj
9832 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 138.197 null ] >>
endobj
9833 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 127.238 null ] >>
endobj
9834 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 277.674 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 116.279 null ] >>
endobj
9835 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 266.715 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 105.32 null ] >>
endobj
9836 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 213.913 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 94.361 null ] >>
endobj
9837 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 202.954 null ] >>
+<< /D [ 9784 0 R /XYZ 81.077 83.402 null ] >>
endobj
-9838 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 191.995 null ] >>
-endobj
-9839 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 181.036 null ] >>
+9783 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9840 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 170.077 null ] >>
+<< /Filter /FlateDecode /Length 2652 >>
+stream
+xڭZ[ۺ~ϯ0z,e
+4-}9) +u"K$gw=CR7jYLbx«_morVM]Wd%D$K;JiV)<~T?eS&OwMQoq=7>}:$M=mnꦲx7[tHK ^vLvb&L} aWoc:bV&'U1`D񶼢j1~Զ>Mrz̚o5{ao6>ͳC֤V2+G)gLmhweul],?#xϏ31K0Ĉ 6Hű̊hHMg,cKBY{"77f6q}" q0cN,MVdM6'TrAWBgDYl@67+ӯMNo@m5ػvplon>\FX~FGbT5">ㄜ `}H
+l@^r-kLmrXư@e,9*"%#{|Y@Ham UiI<\RlelN馈_*oS[vyiRm6ȶh!381uo[{<.72 ?KEH$F6J?ps*`&3YgW'$!U-)xp& >#Th 90PCbu;-sw荬N&+]]sFlNhC~jڦd46sagkFbڦpY1, VME
+ >iT{v{LܷIkC6g?OV6M
+{@ٍ_c0 yb9SʪeDLɺwu_{yto5H5b, D1pC*B.Pj%+)"nBr8`I.06}V OcypCDHa rrT䂳'_+qvsڊ?13-$Ubhq6dbqdly˔6pa;&u{q+AyYe4h`(@ pL:́DfW-
+a:d ݋>Aɧ<}, -jlS鲧dl<!l:#xnf(uNpxڪV/+M|Ǝxg}@iON蔱@FR7}=ǰ_H7Ǫl-ps{,Od,ã)utE Pʉ Vnhg`dT 3o6E,^fvCL+ރ#9
+
+endstream
+endobj
+9839 0 obj
+<< /Type /Page /Contents 9840 0 R /Resources 9838 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9414 0 R >>
endobj
9841 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 9839 0 R /XYZ 78.37 808.885 null ] >>
endobj
9842 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 768.832 null ] >>
endobj
9843 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 117.275 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 757.873 null ] >>
endobj
9844 0 obj
-<< /D [ 9807 0 R /XYZ 81.077 106.316 null ] >>
-endobj
-9806 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9839 0 R /XYZ 81.077 723.004 null ] >>
endobj
-9847 0 obj
-<< /Filter /FlateDecode /Length 2491 >>
-stream
-xڵZ[۸~ϯ0;\/([) ŦJdɐ53n{(R$}Y?xra0H*~ eS % ’,/2nζ,YܒenZ~9l#4
-ע@}n0 Br3Nmv~*뱬a0'
-4 Mhx!4$Zpʹ+ N98]T,sRp7_JI@B@nJ֕+˶q=݋Hj˧*! P.
-a2,|<-bD\xd<XmʻE d<+vd'd㟟!x
-;)'+˓RN/&ztؕ0Dy]^y&G/Mw<)N‡Oo{pob'&xH,<G1Cڢ}DZs(EUlH`ެ˵][~* Vz[E;+h(ZHX |@k9PJ0d:h)fRZە/w[T,~͖2HaXl<E=-U]97d*}]r]u{rN:W?`l{\UyV]pCG uph,E[&-[hČN ۪xXEod^b-r<9G`'&_O"jl.JuܶHG]T@XOE5GXԳr-J}dU#z <oUwVM 9f\#Lsk=FOl/_ J ^)6fT3qeR J"/aDbKZ?Ή|]ӸS$
-8,œ@ng!MSzNčH!? pBl"-y Ԕr^M'&
-)qU_eX(
-͖_ eKFd-MHHh*.tZ<o_&B ~*+&|$NYef]0ɪۗ.T^|' Ʃ7&ctsjR8/k60G
-xbḰ(R&:dRn"D1Ϧ(0NY
-)˼e N%L~Y )A\e䝸%x{N bxԉ?7׈2#
-=A^,Xicr_vJ@,n7n֮Ccu7Xډe><wb&"ki:Ŕnh'vڗR98%8 J@JP#~N9#S' h(:Χ*P>ڽR{NRGL每\[S|,t/K
-1M%衬
-M{Lk!+X!5Ab$d\Q4F\"Y2F;Qֶv!W
- UDe9'neuYw [
- .1ybN]8d>8Xm}PAML˵ǟOmWE1/R' \n`,>M qh;/K'hgClPtLy4/;i-=*v18)
-#-c2k1IŁ^@
-endstream
+9845 0 obj
+<< /D [ 9839 0 R /XYZ 81.077 712.045 null ] >>
endobj
9846 0 obj
-<< /Type /Page /Contents 9847 0 R /Resources 9845 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9424 0 R >>
+<< /D [ 9839 0 R /XYZ 81.077 701.086 null ] >>
+endobj
+9847 0 obj
+<< /D [ 9839 0 R /XYZ 81.077 690.127 null ] >>
endobj
9848 0 obj
-<< /D [ 9846 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 679.168 null ] >>
endobj
9849 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 695.255 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 668.209 null ] >>
endobj
9850 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 684.297 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 657.25 null ] >>
endobj
9851 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 673.338 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 646.291 null ] >>
endobj
9852 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 662.379 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 635.332 null ] >>
endobj
9853 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 651.42 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 624.373 null ] >>
endobj
9854 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 640.461 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 613.415 null ] >>
endobj
9855 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 629.502 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 602.456 null ] >>
endobj
9856 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 618.543 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 586.515 null ] >>
endobj
9857 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 607.584 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 575.556 null ] >>
endobj
9858 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 596.625 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 564.598 null ] >>
endobj
9859 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 585.666 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 553.639 null ] >>
endobj
9860 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 557.069 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 474.934 null ] >>
endobj
9861 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 546.11 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 386.266 null ] >>
endobj
9862 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 494.192 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 375.307 null ] >>
endobj
9863 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 483.233 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 364.349 null ] >>
endobj
9864 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 472.274 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 353.39 null ] >>
endobj
9865 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 461.315 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 342.431 null ] >>
endobj
9866 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 450.356 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 277.674 null ] >>
endobj
9867 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 439.397 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 266.715 null ] >>
endobj
9868 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 428.438 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 213.913 null ] >>
endobj
9869 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 399.841 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 202.954 null ] >>
endobj
9870 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 388.882 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 191.995 null ] >>
endobj
9871 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 377.923 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 181.036 null ] >>
endobj
9872 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 366.965 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 170.077 null ] >>
endobj
9873 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 356.006 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 159.118 null ] >>
endobj
9874 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 297.815 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 148.159 null ] >>
endobj
9875 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 286.856 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 117.275 null ] >>
endobj
9876 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 275.897 null ] >>
-endobj
-9877 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 9839 0 R /XYZ 81.077 106.316 null ] >>
endobj
-9878 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 253.979 null ] >>
+9838 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F26 662 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9879 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 243.021 null ] >>
+<< /Filter /FlateDecode /Length 2492 >>
+stream
+xڵZߏ۸~_aEoyMj
+P4Z,v7kEu^ܤ/+Gg3ߐW+z_d eJ߿!JeaIVտ׿on4,Znnɺv7Tk޹GW0P(PƯ~9ƟrC9 f%y<ڿ`X6 l> 4@9 pɐH!ER7h1y2(1E-l3DtYoXCi~29o ᙗ_0|(upiK?𾩏1ۼ+j?foCxNZ+SUP(Ek-. &H 4 Mhx5$Z0ʚ˯rpL!"ֽZ$v)XP1Ě*@+릶=Oj*Psn̫{˺2֕]G}} H(0~z؟j{QT1@lĮU= 5
+a24ܞs Dx<򘗶ҙF l4+{fd+d힟yƦ)'p˓AߒN/&z0+aro]^py&ۺ|<OQPmN Po^^:%t}~bn?ɻ]z}s6O>=
+yYݢKx`֬9]S|^* iwz[E;+(ӄ)\QAgn
+u+ШYNdz07nnt
+ٗæ Hy-Jchi9[1d.x26AX:^v ׭G* `,FO2Oy9yXyYZ@F6u޳owK#z KiKuiDBKSWTFZ0N{.]p%u1+"Y6 82]q% 0:30El:M 8et?.p":ze@#, i @ω
+^NSK\p"cH2Dj@ӈURqA)l`P0H!j+8*"_)EDy6w?
+*oK&܁taµK^RG39pًgv})?=O8=/`i7h>C!Ɲ)ƈRO07+Dc~:zGձ`}jLVBgcgyiRJ EYFbpOMe~=UWa ;6Y~%/QE"t2#<qT}!
+.'?DR
+QIM+[P4鳝ᤍu~bHH,-B^.۝_S$2DgM):}ne!ϰ41*}"d{!.?.2ޙMiEǠS<hhbmrM;SǢsWb\tYm4f뻷o0b=Nq+X3t?,_K e18wsl5=D[ѤV} Ո]g~t"(tQDdNT
+4K!ƒeZI[&T}Qg/le
+xPpoC_Br?FzlΥѢP m|MDB0 Jf,3R Eڜev-?REk3#trrR#2\&f
+i2"PVroAʉKk΅q%2 0ݦt,/4{Te.Y L
+XWvWǼ;lIRDB0 <4hQ zF_Cl]W\ NBd,I݋sREq<4Qh+T<J!pHs
+0.r#l(*\Ęq7+wSdA&a|,r_~3M*(TrY\St/sN 8(L4ߞgoӢtJhFJfEJ'Ң҅7o! d( N𤙧'z&0e0(oGPs
+endstream
+endobj
+9878 0 obj
+<< /Type /Page /Contents 9879 0 R /Resources 9877 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9927 0 R >>
endobj
9880 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 9878 0 R /XYZ 78.37 808.885 null ] >>
endobj
9881 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 695.255 null ] >>
endobj
9882 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 684.297 null ] >>
endobj
9883 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 673.338 null ] >>
endobj
9884 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 662.379 null ] >>
endobj
9885 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 651.42 null ] >>
endobj
9886 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 640.461 null ] >>
endobj
9887 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 629.502 null ] >>
endobj
9888 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 618.543 null ] >>
endobj
9889 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 607.584 null ] >>
endobj
9890 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 596.625 null ] >>
endobj
9891 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 585.666 null ] >>
endobj
9892 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 557.069 null ] >>
endobj
9893 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 546.11 null ] >>
endobj
9894 0 obj
-<< /D [ 9846 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-9845 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F26 662 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9878 0 R /XYZ 81.077 494.192 null ] >>
endobj
-9897 0 obj
-<< /Filter /FlateDecode /Length 1875 >>
-stream
-xZ[o6~ϯ00/px`n
-^Eh(U٠i0g.= 힭g*k{p|%$*QUTua{}fܧlڗ<G3=JK/"Aн>Q3 h}5j 28!e0wX&x$D;&sXZH, <Qen%SR%YI)Pc^ юƪ uuA>fe|&!%T(OmHMLctla7t4gں:0^ӥ -|J MxM!-"D&?bb@ظpefכuy.c+Yr]l׳
-L|>臇St%T'1</ǚ
-Oq˽?prQ86TQG'ׂP*L9';?+5nsB C%\:%Zx4JB0:IǀQ ےڮm70kt\GINPžs8h5ӀMTr 7CEs"򙨦mbOؕO73fm Oe~m ϊ)Em s򵻒jvIk\cAYev~f K 4m.6sWָU "+$^mWU~]U6۫.9`3k4>} Ζ}pٮhȔs
-Җdff˪ ["ii$X tôW8_R }Țw*`c}kRNL(!8滶ldҟo>0LF#(Bi %[<_?mWh_ް-_ ș`P GA9p
-endstream
+9895 0 obj
+<< /D [ 9878 0 R /XYZ 81.077 483.233 null ] >>
endobj
9896 0 obj
-<< /Type /Page /Contents 9897 0 R /Resources 9895 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 9878 0 R /XYZ 81.077 472.274 null ] >>
+endobj
+9897 0 obj
+<< /D [ 9878 0 R /XYZ 81.077 461.315 null ] >>
endobj
9898 0 obj
-<< /D [ 9896 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 450.356 null ] >>
endobj
9899 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 439.397 null ] >>
endobj
9900 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 428.438 null ] >>
endobj
9901 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 699.507 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 399.841 null ] >>
endobj
9902 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 688.548 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 388.882 null ] >>
endobj
9903 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 677.589 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 377.923 null ] >>
endobj
9904 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 666.63 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 366.965 null ] >>
endobj
9905 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 655.671 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 356.006 null ] >>
endobj
9906 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 644.712 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 297.815 null ] >>
endobj
9907 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 633.753 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 286.856 null ] >>
endobj
9908 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 622.794 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 275.897 null ] >>
endobj
9909 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 611.836 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 264.938 null ] >>
endobj
9910 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 600.877 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 253.979 null ] >>
endobj
9911 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 589.918 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 243.021 null ] >>
endobj
9912 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 578.959 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 232.062 null ] >>
endobj
9913 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 568 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 221.103 null ] >>
endobj
9914 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 557.041 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 210.144 null ] >>
endobj
9915 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 546.082 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 199.185 null ] >>
endobj
9916 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 535.123 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 188.226 null ] >>
endobj
9917 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 524.164 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 177.267 null ] >>
endobj
9918 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 513.205 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 166.308 null ] >>
endobj
9919 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 502.246 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 155.349 null ] >>
endobj
9920 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 491.288 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 144.39 null ] >>
endobj
9921 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 480.329 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 133.431 null ] >>
endobj
9922 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 469.37 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 122.473 null ] >>
endobj
9923 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 458.411 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 111.514 null ] >>
endobj
9924 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 447.452 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 100.555 null ] >>
endobj
9925 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 436.493 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 89.596 null ] >>
endobj
9926 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 425.534 null ] >>
-endobj
-141 0 obj
-<< /D [ 9896 0 R /XYZ 79.37 402.589 null ] >>
+<< /D [ 9878 0 R /XYZ 81.077 78.637 null ] >>
endobj
-9927 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 317.91 null ] >>
+9877 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F26 662 0 R /F73 189 0 R /F69 183 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-9928 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 306.951 null ] >>
+9930 0 obj
+<< /Filter /FlateDecode /Length 1876 >>
+stream
+xZ[o~ϯ00/p;v
+Hi,OXXQi:jr>^f`~NL>d&m.u|3ME1:uѻ
+/)C_>dۻL`2a>?5mDMQcpw J%w32&Q eT /-ΈQ*(1nUߌ !x=ހ p?^F
+endstream
endobj
9929 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 295.992 null ] >>
-endobj
-9930 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 285.033 null ] >>
+<< /Type /Page /Contents 9930 0 R /Resources 9928 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9927 0 R >>
endobj
9931 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 274.074 null ] >>
+<< /D [ 9929 0 R /XYZ 78.37 808.885 null ] >>
endobj
9932 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 258.34 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 768.832 null ] >>
endobj
9933 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 247.382 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 757.873 null ] >>
endobj
9934 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 236.423 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 699.507 null ] >>
endobj
9935 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 225.464 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 688.548 null ] >>
endobj
9936 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 214.505 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 677.589 null ] >>
endobj
9937 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 666.63 null ] >>
endobj
9938 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 655.671 null ] >>
endobj
9939 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 644.712 null ] >>
endobj
9940 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 633.753 null ] >>
endobj
9941 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 622.794 null ] >>
endobj
9942 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 611.836 null ] >>
endobj
9943 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 600.877 null ] >>
endobj
9944 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 589.918 null ] >>
endobj
9945 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 578.959 null ] >>
endobj
9946 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 568 null ] >>
endobj
9947 0 obj
-<< /D [ 9896 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 557.041 null ] >>
endobj
-9895 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R >> /ProcSet [ /PDF /Text ] >>
+9948 0 obj
+<< /D [ 9929 0 R /XYZ 81.077 546.082 null ] >>
endobj
-9951 0 obj
-<< /Filter /FlateDecode /Length 2175 >>
-stream
-xZ[o~ϯ0h8M$bE@/٧n!(hF<d')Ѥq|6LPJ&I2$3ד_O>\
-:aHILz~MOdR,&"(Iz9"=?>\j"JS*C0& Tw3tk5˺hr?C׬;P~/ON+`|Ctķ1enXK*%re2ku7zE̺*ϺXD",`|CtO,!|+>WC [>~tp~sؗe^7/4WX$E$MJ00FԨ$(!) !B!*&dFl?eG` (J E{~A<;=i;cҞz>ѳ./Y}Ή8At;Pdk!#JŘO{F AD ~ff%.dT)s'ɄD<eɔ9ZAA)W290 s؆9Q1ߜn?iJ0{Ʃ@TciGUWU^_yX['^jvl<w7Ey-tw{GDiGP8eQc"9g6U^4Q*Ai:SߓCݓb20]߉c?[W/]&ݨnG7$qL]
-QV %DBK+ F6M]f~VMݙPa2ժ̀qZܑGj̮<5bԟkDA2B?eS8e3PM^e7zQTӽЇDO+Ml^{YY6><EFuit2kEխ{Y3.#&maCdv}s̻x/nᮘYwn8wW#Ӈb̭7;
-%q@<BeaȆ?z~-kS)BtE6[Jay0a)"~[av ۱U!lST
-DCCDmîh%_6fml RIS DYp D&
-#!xhbq ۷/BASZFY2/г_KSNS%D1§.* j8#@X~/ GdRXg7u1C"_y_t'5&G7c>MGb ?T4< AKڰ<]](4 JE)șCrqGF[>/u,
-endstream
+9949 0 obj
+<< /D [ 9929 0 R /XYZ 81.077 535.123 null ] >>
endobj
9950 0 obj
-<< /Type /Page /Contents 9951 0 R /Resources 9949 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 9929 0 R /XYZ 81.077 524.164 null ] >>
+endobj
+9951 0 obj
+<< /D [ 9929 0 R /XYZ 81.077 513.205 null ] >>
endobj
9952 0 obj
-<< /D [ 9950 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 502.246 null ] >>
endobj
9953 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 491.288 null ] >>
endobj
9954 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 480.329 null ] >>
endobj
9955 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 469.37 null ] >>
endobj
9956 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 458.411 null ] >>
endobj
9957 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 447.452 null ] >>
endobj
9958 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 436.493 null ] >>
endobj
9959 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 666.798 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 425.534 null ] >>
+endobj
+141 0 obj
+<< /D [ 9929 0 R /XYZ 79.37 402.589 null ] >>
endobj
9960 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 655.839 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 317.91 null ] >>
endobj
9961 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 644.88 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 306.951 null ] >>
endobj
9962 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 604.664 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 295.992 null ] >>
endobj
9963 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 593.705 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 285.033 null ] >>
endobj
9964 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 582.747 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 274.074 null ] >>
endobj
9965 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 571.788 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 258.34 null ] >>
endobj
9966 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 560.829 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 247.382 null ] >>
endobj
9967 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 549.87 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 236.423 null ] >>
endobj
9968 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 538.911 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 225.464 null ] >>
endobj
9969 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 527.952 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 214.505 null ] >>
endobj
9970 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 516.993 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 188.226 null ] >>
endobj
9971 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 506.034 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 177.267 null ] >>
endobj
9972 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 495.075 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 166.308 null ] >>
endobj
9973 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 484.116 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 155.349 null ] >>
endobj
9974 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 473.157 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 144.39 null ] >>
endobj
9975 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 462.199 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 133.431 null ] >>
endobj
9976 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 451.24 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 122.473 null ] >>
endobj
9977 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 440.281 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 111.514 null ] >>
endobj
9978 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 429.322 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 100.555 null ] >>
endobj
9979 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 418.363 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 89.596 null ] >>
endobj
9980 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 407.404 null ] >>
-endobj
-9981 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 396.445 null ] >>
+<< /D [ 9929 0 R /XYZ 81.077 78.637 null ] >>
endobj
-9982 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 385.486 null ] >>
+9928 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F72 187 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
9983 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 374.527 null ] >>
+<< /Filter /FlateDecode /Length 2173 >>
+stream
+xZ]o}ϯ0/ pM-h.Ї%N+K^IǦ^Ғ(R:g!%hxf<lp{o'^|PlƑN %IfJ%]f<M4g g R$b:F?5w=;Tؘ6_7ymnewn._0!:⛗ygńEUz4"yF9D/{m6_"\jmq,_ pW-"B
+O7 ћKY=Т1;ӧuUyzYV˯uM6 KD&L"1kJxAL[<(ɄaGw!4CN7g$vMXp{ZN͢~ۻ᪳srڟj3NqGb0C .`X!bA4ByItbNP f?I$^\[_NTQ$.-s 2oS:'MG^D*41v4vn̊WVn\L(݆y]PMFWbw D<fuNx,fc)ܟ q|hBDF7]c$a# [\~(6 9Myc'iU\P# :
+QV,aBai$%o&-CJ2ʒ.K~ܖ`xb[D@2B?f6q`Ǧ#B;f^ۼ^m>I_y_mE[eݞ{EQ9}x[wMN0Z=M4k;WӪ`dVv&wffs}:OT|g溫CD-iC&k͓۬% "tj޴&2 G"H3_X*"
+ˉ%{ԓIuQ=Mk֖e~b2|G5A)u؁K*doO^Jrv`jR}/8)]|q&#R+/;0841O VROݦ~MsywOCs{3>)j1(a^♄YᏞ1>0hi<dN\H́W^ o`XoSlEMN`&@毺X$ qaaib1u<L].~<͘ }6!<6a' -F8:)(Gh2Aڟk LG(D%kaсlYU떔,Ž`%70!:ES]ґ61RD}.5oY!c(mLSÖ"4eDeDAzh}qo9|H-`-L~,YeYϯ{EƑ̷L npKpPf,#T 9~2)`IbWJ%K`hsw_tO
+Xcv3ʭLvt/)RB,K`BP2Kڰ<²]]Dۃ)JI@O?pԏXvuu;
+endstream
+endobj
+9982 0 obj
+<< /Type /Page /Contents 9983 0 R /Resources 9981 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9927 0 R >>
endobj
9984 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 363.568 null ] >>
+<< /D [ 9982 0 R /XYZ 78.37 808.885 null ] >>
endobj
9985 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 352.61 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 768.832 null ] >>
endobj
9986 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 341.651 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 757.873 null ] >>
endobj
9987 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 330.692 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 746.914 null ] >>
endobj
9988 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 319.733 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 735.955 null ] >>
endobj
9989 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 308.774 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 724.996 null ] >>
endobj
9990 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 297.815 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 714.037 null ] >>
endobj
9991 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 286.856 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 666.798 null ] >>
endobj
9992 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 275.897 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 655.839 null ] >>
endobj
9993 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 264.938 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 644.88 null ] >>
endobj
9994 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 253.979 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 604.664 null ] >>
endobj
9995 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 243.021 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 593.705 null ] >>
endobj
9996 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 232.062 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 582.747 null ] >>
endobj
9997 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 221.103 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 571.788 null ] >>
endobj
9998 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 210.144 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 560.829 null ] >>
endobj
9999 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 199.185 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 549.87 null ] >>
endobj
10000 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 188.226 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 538.911 null ] >>
endobj
10001 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 177.267 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 527.952 null ] >>
endobj
10002 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 166.308 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 516.993 null ] >>
endobj
10003 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 506.034 null ] >>
endobj
10004 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 495.075 null ] >>
endobj
10005 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 484.116 null ] >>
endobj
10006 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 473.157 null ] >>
endobj
10007 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 462.199 null ] >>
endobj
10008 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 451.24 null ] >>
endobj
10009 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 440.281 null ] >>
endobj
10010 0 obj
-<< /D [ 9950 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-9949 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F20 186 0 R /F19 184 0 R /F26 662 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 9982 0 R /XYZ 81.077 429.322 null ] >>
endobj
-10013 0 obj
-<< /Filter /FlateDecode /Length 1591 >>
-stream
-xڵYMoFWEF~nmA2%H;F;a^L};}vDMBgtߟ86"Y&xX1DXM43ьP͒>sf/ﺺ.i-lfxaA_[Q(sisKiE-aRQ y[t(h:fcpUQ6i5/ƻݻ^7&=l˺Ɋ ǹ-tUeKyt]
-'oKq*/q_N]&Մkp عSDP3-鴹%F*Rjȁ z0*Cw-MOr{~.J"e!<jTG4i#`zϙ#å9 (A!Z΋"=dU߆sV’WH+8!sh4_:ZĹwY}*w Ø$W"t +:_s{C/7R8sQf(+4 -׬Us_gh.-|
-Jz)D])$ jtlڡ fLTO6bqw^c=p KR08x53 2DrliSn@agNy40/}㨇@QvwwW)l&_}u=:woCջ#F9$pK C.2f#Q"tȟ<,lQL .B767ر`&
-Ѷ@7m#t7/C+8{5ӔSuF~\3X<,F?J/W"؜jZ49ƽY#񟃂> @ysBfD$FhtH~:"?7|FnY;DWDpD()HEƞb*f\98_*!f6DaztRg[ [N9!mGCMP]m O{ljqjCm?ܵzIk53#
-endstream
+10011 0 obj
+<< /D [ 9982 0 R /XYZ 81.077 418.363 null ] >>
endobj
10012 0 obj
-<< /Type /Page /Contents 10013 0 R /Resources 10011 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 9982 0 R /XYZ 81.077 407.404 null ] >>
+endobj
+10013 0 obj
+<< /D [ 9982 0 R /XYZ 81.077 396.445 null ] >>
endobj
10014 0 obj
-<< /D [ 10012 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 385.486 null ] >>
endobj
10015 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 374.527 null ] >>
endobj
10016 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 363.568 null ] >>
endobj
10017 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 352.61 null ] >>
endobj
10018 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 341.651 null ] >>
endobj
10019 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 330.692 null ] >>
endobj
10020 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 319.733 null ] >>
endobj
10021 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 308.774 null ] >>
endobj
10022 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 297.815 null ] >>
endobj
10023 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 286.856 null ] >>
endobj
10024 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 275.897 null ] >>
endobj
10025 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 264.938 null ] >>
endobj
10026 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 253.979 null ] >>
endobj
10027 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 243.021 null ] >>
endobj
10028 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 232.062 null ] >>
endobj
10029 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 221.103 null ] >>
endobj
10030 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 210.144 null ] >>
endobj
10031 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 199.185 null ] >>
endobj
10032 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 558.62 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 188.226 null ] >>
endobj
10033 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 547.661 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 177.267 null ] >>
endobj
10034 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 536.702 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 166.308 null ] >>
endobj
10035 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 525.743 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 155.349 null ] >>
endobj
10036 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 514.784 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 144.39 null ] >>
endobj
10037 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 503.825 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 133.431 null ] >>
endobj
10038 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 492.867 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 122.473 null ] >>
endobj
10039 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 481.908 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 111.514 null ] >>
endobj
10040 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 470.949 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 100.555 null ] >>
endobj
10041 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 459.99 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 89.596 null ] >>
endobj
10042 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 449.031 null ] >>
-endobj
-10043 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 438.072 null ] >>
+<< /D [ 9982 0 R /XYZ 81.077 78.637 null ] >>
endobj
-10044 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 427.113 null ] >>
+9981 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F20 186 0 R /F19 184 0 R /F26 662 0 R /F75 317 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10045 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 416.154 null ] >>
+<< /Filter /FlateDecode /Length 1589 >>
+stream
+xڵYKoFWEF
+:z-'=`l(*>B0])|"7 "t7{VY忇t߮pw}O"^Xi|%0G>D|Udz!_F8U-&-.aXDeCٓw*޸8xNrc$s9wefr ]sM}nͅ/fd Xmj|0#KDK.}ޘXE zP#t넋K& \b`NKb\|I΅Eݥ7Ӫç١iWݍ9ӢߝcP&hπ2C2#+eı$Cߒ}YTJofW=wМaXORb`Q ^P,t)otMSWY %IzuC7Uު\UQlU@~'w+P)BSB~gi;VEZi@v'h;NE达QE,Ϫ,ԍ~., h/pF&|V~˓hsCTmU}_?AiVp6;ڲs^^ܠe ΃9
+J4S9mlI(AԠ؜A5n#4>>$7=2{鯲Nygh KR08 XNW&5dؙ١>%^%/G)Q5h#i%'!lztjo,-Y/8vQG~ 7w%Eo(,0gQ"tȟ<,lQ<FC͍&o푉O&.a1o7Zyz.2?FǶ~\3<%¨Gm
+Ad.8D؜jlP2B9cq堠PZ%B]Ȭ#ܞGv uD"46,#>1իLi"DL()HE+Lڋ!xLqIdߩU}!f{`ztTg/HְS!-GCʐ7KQ|ԜfEo{ypW{=Ɵ'Q
+endstream
+endobj
+10044 0 obj
+<< /Type /Page /Contents 10045 0 R /Resources 10043 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9927 0 R >>
endobj
10046 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 405.195 null ] >>
+<< /D [ 10044 0 R /XYZ 78.37 808.885 null ] >>
endobj
10047 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 394.236 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 768.832 null ] >>
endobj
10048 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 383.278 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 757.873 null ] >>
endobj
10049 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 372.319 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 746.914 null ] >>
endobj
10050 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 361.36 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 735.955 null ] >>
endobj
10051 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 350.401 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 724.996 null ] >>
endobj
10052 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 339.442 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 714.037 null ] >>
endobj
10053 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 328.483 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 703.078 null ] >>
endobj
10054 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 317.524 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 692.119 null ] >>
endobj
10055 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 306.565 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 681.16 null ] >>
endobj
10056 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 295.606 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 670.202 null ] >>
endobj
10057 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 284.647 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 659.243 null ] >>
endobj
10058 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 273.688 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 648.284 null ] >>
endobj
10059 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 262.73 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 637.325 null ] >>
endobj
10060 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 251.771 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 626.366 null ] >>
endobj
10061 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 240.812 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 615.407 null ] >>
endobj
10062 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 229.853 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 604.448 null ] >>
endobj
10063 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 218.894 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 593.489 null ] >>
endobj
10064 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 207.935 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 558.62 null ] >>
endobj
10065 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 196.976 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 547.661 null ] >>
endobj
10066 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 186.017 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 536.702 null ] >>
endobj
10067 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 525.743 null ] >>
endobj
10068 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 164.099 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 514.784 null ] >>
endobj
10069 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 153.141 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 503.825 null ] >>
endobj
10070 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 118.271 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 492.867 null ] >>
endobj
10071 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 107.312 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 481.908 null ] >>
endobj
10072 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 96.354 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 470.949 null ] >>
endobj
10073 0 obj
-<< /D [ 10012 0 R /XYZ 81.077 85.395 null ] >>
-endobj
-10011 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 10044 0 R /XYZ 81.077 459.99 null ] >>
endobj
-10076 0 obj
-<< /Filter /FlateDecode /Length 1450 >>
-stream
-xY]o6}ϯЗ[X^~+bC[`=ش#đEIoߥP[,jD{H{!ËuGt ?uvb)%^@ 3` kqؕ<{{;SHArZ.QՁK ^ۺ4p@P2ЇP9T }k ym7oU}=Tjo^Y
-8ӽYwo.U\N,BXZhzln0&va6SYR3mdQV C6~ެ7~T0f91J;FMSXHhd0Y͌LII2tȏu^W~]7gd*"R4*):Pw_tÎ<Lhb3hBR
-v.G_7!i"Xhʧ . ؁O_JifE%fREշkX|\zi{F(>wMa$s<D̩gpbpf jEiyзCs.뭦f譔!O7dJES#D-MKMKcZ9oU:UF$Fz=2gwQ:hڡ7n!|~sY_W$z1ߜs.&|"Bzm?!Yc4Zv
-/VL@T]$鱕dBG43G3%J+)(\
-H/
-,J*@=3=(64Oŵ%.t]<h5{wv'ii񢽺7Y}݉c<K72Tm+!8oMOg,F
-6=)[G!DnrA:>0%',Y\j`AV^?}W.
-endstream
+10074 0 obj
+<< /D [ 10044 0 R /XYZ 81.077 449.031 null ] >>
endobj
10075 0 obj
-<< /Type /Page /Contents 10076 0 R /Resources 10074 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 10044 0 R /XYZ 81.077 438.072 null ] >>
+endobj
+10076 0 obj
+<< /D [ 10044 0 R /XYZ 81.077 427.113 null ] >>
endobj
10077 0 obj
-<< /D [ 10075 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 416.154 null ] >>
endobj
10078 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 405.195 null ] >>
endobj
10079 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 394.236 null ] >>
endobj
10080 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 383.278 null ] >>
endobj
10081 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 372.319 null ] >>
endobj
10082 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 361.36 null ] >>
endobj
10083 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 350.401 null ] >>
endobj
10084 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 339.442 null ] >>
endobj
10085 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 328.483 null ] >>
endobj
10086 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 317.524 null ] >>
endobj
10087 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 306.565 null ] >>
endobj
10088 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 295.606 null ] >>
endobj
10089 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 284.647 null ] >>
endobj
10090 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 273.688 null ] >>
endobj
10091 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 262.73 null ] >>
endobj
10092 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 251.771 null ] >>
endobj
10093 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 240.812 null ] >>
endobj
10094 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 229.853 null ] >>
endobj
10095 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 218.894 null ] >>
endobj
10096 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 207.935 null ] >>
endobj
10097 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 196.976 null ] >>
endobj
10098 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 186.017 null ] >>
endobj
10099 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 175.058 null ] >>
endobj
10100 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 164.099 null ] >>
endobj
10101 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 153.141 null ] >>
endobj
10102 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 118.271 null ] >>
endobj
10103 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 107.312 null ] >>
endobj
10104 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 96.354 null ] >>
endobj
10105 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 10044 0 R /XYZ 81.077 85.395 null ] >>
endobj
-10106 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 461.982 null ] >>
-endobj
-10107 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 451.023 null ] >>
+10043 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10108 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 440.065 null ] >>
+<< /Filter /FlateDecode /Length 1446 >>
+stream
+xYMo6WK6 I(,CO[M;BlɐoZE:A%-=yl }m_G'Fd f' ^ˬ&hFfhuSyfI1 J)F4^(cΉG +r5j4C&E!!G+Rٹ+Ut x-(-NjbZ.g?yeVV ^t qKan7Ӆڜ3,nm9kUtͪ:f*LG5FǦp9%")zU=uX:WDPX
+$݆6nҎ m%2,Q1ꦽ"z29LF֜HTP%h_7n^Vh*i
+=ͤvyHx8OОM3P>A㣃Y\@!VҦh?Wh-ShZK(Kz
+1Cz%odڠc0mTm55AoTk
+gto]5E[i)8yKIEtRq1zkѻ%pbP
+"ω3@ fg}
+N59΄D]x -QzW˨LS8K 2xg:LPFr}B{-W`Iroӣ _I
+rv4Srk $&Dɜ2)A-<&bMQg B|2I=u~4/oU0? :bmS wIaCUקE Ke8iسjܤq߃qlQ-FGNukms>RaG m;Bx~NlkyL]&mYW/eKů{FU~b?M9m7g(goismpcфy.8k5z>Av'q(F;{ bļA =A,F?.D\IÆ
+\RD`"PDэ]U?VG;g}Cs|9ʹH
+Q(5D &-E= ;gRu&DFp<:p^mz
+endstream
+endobj
+10107 0 obj
+<< /Type /Page /Contents 10108 0 R /Resources 10106 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9927 0 R >>
endobj
10109 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 10107 0 R /XYZ 78.37 808.885 null ] >>
endobj
10110 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 768.832 null ] >>
endobj
10111 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 407.188 null ] >>
-endobj
-145 0 obj
-<< /D [ 10075 0 R /XYZ 79.37 383.726 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 757.873 null ] >>
endobj
10112 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 315.383 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 746.914 null ] >>
endobj
10113 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 304.424 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 735.955 null ] >>
endobj
10114 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 293.465 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 724.996 null ] >>
endobj
10115 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 282.506 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 714.037 null ] >>
endobj
10116 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 271.547 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 703.078 null ] >>
endobj
10117 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 260.588 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 692.119 null ] >>
endobj
10118 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 249.629 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 681.16 null ] >>
endobj
10119 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 238.67 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 670.202 null ] >>
endobj
10120 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 227.711 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 659.243 null ] >>
endobj
10121 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 216.753 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 648.284 null ] >>
endobj
10122 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 205.794 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 637.325 null ] >>
endobj
10123 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 194.835 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 626.366 null ] >>
endobj
10124 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 183.876 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 615.407 null ] >>
endobj
10125 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 172.917 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 604.448 null ] >>
endobj
10126 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 161.958 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 593.489 null ] >>
endobj
10127 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 150.999 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 582.53 null ] >>
endobj
10128 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 140.04 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 571.571 null ] >>
endobj
10129 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 129.081 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 560.613 null ] >>
endobj
10130 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 118.122 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 549.654 null ] >>
endobj
10131 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 107.164 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 538.695 null ] >>
endobj
10132 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 96.205 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 527.736 null ] >>
endobj
10133 0 obj
-<< /D [ 10075 0 R /XYZ 81.077 85.246 null ] >>
-endobj
-10074 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 10107 0 R /XYZ 81.077 516.777 null ] >>
endobj
-10136 0 obj
-<< /Filter /FlateDecode /Length 1716 >>
-stream
-xڽZKoFW:MEC hKBq\#%rvfgfY#:zuDW}u܈$2G舍&ьPFcG;ѹ%=Pxz}2X 9n,7h^uZ\OWſrv^ͪj>yݳVފ>e" [!cDpѲ% )1:]fev9;րYk#f~%c4FTu-vDmʛMr-bUE;E5AR%B{U:fR<5m]'wsFZ1Xp*h*xU;X.ڑ*gu{fEZcnob>[~o)݄
-*K@\5u!jjMq]ȊK"C-* FhKuPhɪ&q2͇ۼ*oyq -PVֆ-VJiby`I0pޑdNrϐHETkZ}Gz<lfHv ZNu~5ɦ*ld6)Ɖs9\bXQNd(ay$umilRL̿%d=sZ:SM90 ͘<b/}֔ZUTUЪ@f`(5Zm|d.wh|duG)
-kMY3!wz2fy|I vNyZzۼW[}N9,9 =X|$ᙱ8Uh ;3 qQ.-Y+`A_(';Ac>ܳs6ٝa)Sf -]oNg~us_Wo'߈׺9q+)O!aIÞPGb2}H7z=/:!SRk)= n>уw0@ڭ¹pDkHLAH\ ORQ6LTc[ >wb[mv(FhlˉU./Dȥ/avv)q"`л=Dk$q& daotص@KFY`1'q1-cT!uՍDhl A-9E , Be[ Tpmz_ҡ'mLsF:
-endstream
+10134 0 obj
+<< /D [ 10107 0 R /XYZ 81.077 505.818 null ] >>
endobj
10135 0 obj
-<< /Type /Page /Contents 10136 0 R /Resources 10134 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 10107 0 R /XYZ 81.077 494.859 null ] >>
+endobj
+10136 0 obj
+<< /D [ 10107 0 R /XYZ 81.077 483.9 null ] >>
endobj
10137 0 obj
-<< /D [ 10135 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 472.941 null ] >>
endobj
10138 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 461.982 null ] >>
endobj
10139 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 451.023 null ] >>
endobj
10140 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 440.065 null ] >>
endobj
10141 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 429.106 null ] >>
endobj
10142 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 418.147 null ] >>
endobj
10143 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 407.188 null ] >>
+endobj
+145 0 obj
+<< /D [ 10107 0 R /XYZ 79.37 383.726 null ] >>
endobj
10144 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 315.383 null ] >>
endobj
10145 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 663.228 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 304.424 null ] >>
endobj
10146 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 652.269 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 293.465 null ] >>
endobj
10147 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 641.31 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 282.506 null ] >>
endobj
10148 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 630.351 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 271.547 null ] >>
endobj
10149 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 619.392 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 260.588 null ] >>
endobj
10150 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 608.433 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 249.629 null ] >>
endobj
10151 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 597.474 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 238.67 null ] >>
endobj
10152 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 586.515 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 227.711 null ] >>
endobj
10153 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 575.556 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 216.753 null ] >>
endobj
10154 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 564.598 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 205.794 null ] >>
endobj
10155 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 553.639 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 194.835 null ] >>
endobj
10156 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 542.68 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 183.876 null ] >>
endobj
10157 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 531.721 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 172.917 null ] >>
endobj
10158 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 520.762 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 161.958 null ] >>
endobj
10159 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 509.803 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 150.999 null ] >>
endobj
10160 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 498.844 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 140.04 null ] >>
endobj
10161 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 487.885 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 129.081 null ] >>
endobj
10162 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 476.926 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 118.122 null ] >>
endobj
10163 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 465.967 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 107.164 null ] >>
endobj
10164 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 455.009 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 96.205 null ] >>
endobj
10165 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 444.05 null ] >>
-endobj
-10166 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 433.091 null ] >>
+<< /D [ 10107 0 R /XYZ 81.077 85.246 null ] >>
endobj
-10167 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 422.132 null ] >>
+10106 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10168 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 411.173 null ] >>
+<< /Filter /FlateDecode /Length 1717 >>
+stream
+xڽZYoF~ {z2AB)
+=@2%3HF;+JK8ȃI-;2tѫ#﫣fGF$q >-DGld5̌fj6G;jٯ(aڍ,qZ ۗ(#r~ΊE^Dqu|^+gg,廬{V{E힭
+,k#L`f!cDpѲ%ʽlK攀}t~.2G^k3{=0=,1# :e;Q>ZV&Ȗy1"@*]Y3)h|Ӧ߷q~v[{zȁ:\˾: !̮V8/[M7i^yVy>kHXU96/U^ݡOM8>@6Oo lMfZ-=iTk$O5@.~ߓ^bJx
+(FFO2 oPvN#:p.6o G_ݵw A3(U}wn|4M4ʣ FHg
+~u:$y72c@l:)Ū_mDm0hE墬Ul٭c>h9Qc α=Ntp%s Ϻj58u.d%^J֡#4zIuP8ɪ&q2ۼ*oyq PVֆLJVJiby`I'0pޑdN!HEIZ}'z<fHv 2koM&7eD_Gq\#gpQGaE9"P!B{_EMIޥU^I1-Z2hyd~Q> /jO5(6B}+-g"C|Ez·ٚRCtVՙ {`(5Zm|d.wh|dMG)6503@" c4ޡZo|'
+T8 x/&Ӈt7?Ek8,pch=#P;9\;'SPe
+H}T͗Ę@Lォ>ĝV{ jE#4^Ī "taĺ5qy"BkJ)*#.}lO?IG :x>Htn1h( ,9neh|sKhU*xhhF"4^6Մ@\Z͜"ud񲭄~*0Ehl#ׁz4lŨE!gm'v* $(}4DP;
+:nߨ#]%8.{`o |#p#Wa b}EQ<8{v^Hnj`4XE 4'4j^hIu}I*pxć~km03;^Ύ7q
+endstream
+endobj
+10167 0 obj
+<< /Type /Page /Contents 10168 0 R /Resources 10166 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9927 0 R >>
endobj
10169 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 400.214 null ] >>
+<< /D [ 10167 0 R /XYZ 78.37 808.885 null ] >>
endobj
10170 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 389.255 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 768.832 null ] >>
endobj
10171 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 378.296 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 757.873 null ] >>
endobj
10172 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 367.337 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 746.914 null ] >>
endobj
10173 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 356.378 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 735.955 null ] >>
endobj
10174 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 345.42 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 724.996 null ] >>
endobj
10175 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 334.461 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 714.037 null ] >>
endobj
10176 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 323.502 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 703.078 null ] >>
endobj
10177 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 312.543 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 663.228 null ] >>
endobj
10178 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 301.584 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 652.269 null ] >>
endobj
10179 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 290.625 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 641.31 null ] >>
endobj
10180 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 279.666 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 630.351 null ] >>
endobj
10181 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 268.707 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 619.392 null ] >>
endobj
10182 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 257.748 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 608.433 null ] >>
endobj
10183 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 246.789 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 597.474 null ] >>
endobj
10184 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 235.83 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 586.515 null ] >>
endobj
10185 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 224.872 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 575.556 null ] >>
endobj
10186 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 213.913 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 564.598 null ] >>
endobj
10187 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 202.954 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 553.639 null ] >>
endobj
10188 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 191.995 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 542.68 null ] >>
endobj
10189 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 181.036 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 531.721 null ] >>
endobj
10190 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 170.077 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 520.762 null ] >>
endobj
10191 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 159.118 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 509.803 null ] >>
endobj
10192 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 148.159 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 498.844 null ] >>
endobj
10193 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 137.2 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 487.885 null ] >>
endobj
10194 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 126.241 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 476.926 null ] >>
endobj
10195 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 115.283 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 465.967 null ] >>
endobj
10196 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 104.324 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 455.009 null ] >>
endobj
10197 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 444.05 null ] >>
endobj
10198 0 obj
-<< /D [ 10135 0 R /XYZ 81.077 82.406 null ] >>
-endobj
-10134 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 10167 0 R /XYZ 81.077 433.091 null ] >>
endobj
-10201 0 obj
-<< /Filter /FlateDecode /Length 1583 >>
-stream
-xڵYMoFW%F~dmnmAJV#$m .#q(v|0ml03\A?ލ޾78,G1xx j 4V_;Ocb@߾n`i6sd[Xotx]_(>xyYƛ/ۢ7jqXфE\bd-P@-,p+mf[0vstE+;.rQ:=/.=7 B { V2G#4mѶ>ODN=#d&pb~h"tuG?]h7uu2g%t=C* Mm5mIݜFb:j`0*7~ѭ?@TVrNo9W!{ߒȤCegεܭ|j&8mWԿj&"R9 m:pM0PFŌk`e:FŪ7U-j6x"oZOѠlv!h$St'^$U cD$hW!iSi5ILP"W+Q)N@F (V(-2CE.PlϜk04)0>asvRG9q6 K#_O%u??Cb}/ti#Д6/-,<{d4StR*YGh7S8s Ep*r)io'{cy2e GSʡze1 +N1#STA:dD]:RUJFAI㗢-]`0vH J MD)rQ!Zg:
-endstream
+10199 0 obj
+<< /D [ 10167 0 R /XYZ 81.077 422.132 null ] >>
endobj
10200 0 obj
-<< /Type /Page /Contents 10201 0 R /Resources 10199 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 10167 0 R /XYZ 81.077 411.173 null ] >>
+endobj
+10201 0 obj
+<< /D [ 10167 0 R /XYZ 81.077 400.214 null ] >>
endobj
10202 0 obj
-<< /D [ 10200 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 389.255 null ] >>
endobj
10203 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 378.296 null ] >>
endobj
10204 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 367.337 null ] >>
endobj
10205 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 356.378 null ] >>
endobj
10206 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 345.42 null ] >>
endobj
10207 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 334.461 null ] >>
endobj
10208 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 323.502 null ] >>
endobj
10209 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 312.543 null ] >>
endobj
10210 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 301.584 null ] >>
endobj
10211 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 681.16 null ] >>
-endobj
-149 0 obj
-<< /D [ 10200 0 R /XYZ 79.37 657.699 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 290.625 null ] >>
endobj
10212 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 617.236 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 279.666 null ] >>
endobj
10213 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 606.278 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 268.707 null ] >>
endobj
10214 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 595.319 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 257.748 null ] >>
endobj
10215 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 584.36 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 246.789 null ] >>
endobj
10216 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 573.401 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 235.83 null ] >>
endobj
10217 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 562.442 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 224.872 null ] >>
endobj
10218 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 551.483 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 213.913 null ] >>
endobj
10219 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 540.524 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 202.954 null ] >>
endobj
10220 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 529.565 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 191.995 null ] >>
endobj
10221 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 518.606 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 181.036 null ] >>
endobj
10222 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 507.647 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 170.077 null ] >>
endobj
10223 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 496.689 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 159.118 null ] >>
endobj
10224 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 485.73 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 148.159 null ] >>
endobj
10225 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 474.771 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 137.2 null ] >>
endobj
10226 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 463.812 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 126.241 null ] >>
endobj
10227 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 452.853 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 115.283 null ] >>
endobj
10228 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 441.894 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 104.324 null ] >>
endobj
10229 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 430.935 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 93.365 null ] >>
endobj
10230 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 419.976 null ] >>
+<< /D [ 10167 0 R /XYZ 81.077 82.406 null ] >>
endobj
-10231 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 409.017 null ] >>
-endobj
-10232 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 398.058 null ] >>
+10166 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F20 186 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10233 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 387.1 null ] >>
+<< /Filter /FlateDecode /Length 1584 >>
+stream
+xڵYKoFW%Fɾ:q
+m '<u8n te<u)G4024ݶ [ӆ)i&
+T"|^'-a=T{p6amIt34%M+ˣGc/y rȟaTGQ6ōjg~~[ ^i~^j#MU-lx=zR]Wb<ۅMQ?GQ:Ti4St*4KMT40mAG
+59,JH&ʍ(Z:C) X<bh2tҪeYܵ~o!Id6@ai&cs(k<$E%EzE10C?%$YAVDy0F9EpGϬ W4>7=qEW-(2) N{˱`>)JGձ[Ro%MGF9E<4T.BQqIe\Q,M73tojdjL5,M434yqfَe`gCTVrH?p O:GC`<ضp; ^'Nϋv`];Z` ,se8\.8䙣ѷU0H[|iwA{ Bh,։4f):aV'Q8霤URf?)Mb%0GӤ*ϭb`&ΐj%CgU gh7giQn[L/Zk:R1ehmv$z ehm@8=NчaA9i7t܀qyzJNˀ[ۋ@A8켤&E'' D#b/^q.zE+K'A82&%;S=1*QO{46aV7as Ԕ*ym‘ %]2<3c?OX
+endstream
+endobj
+10232 0 obj
+<< /Type /Page /Contents 10233 0 R /Resources 10231 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9927 0 R >>
endobj
10234 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 376.141 null ] >>
+<< /D [ 10232 0 R /XYZ 78.37 808.885 null ] >>
endobj
10235 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 365.182 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 768.832 null ] >>
endobj
10236 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 354.223 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 757.873 null ] >>
endobj
10237 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 343.264 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 746.914 null ] >>
endobj
10238 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 332.305 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 735.955 null ] >>
endobj
10239 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 321.346 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 724.996 null ] >>
endobj
10240 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 310.387 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 714.037 null ] >>
endobj
10241 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 299.428 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 703.078 null ] >>
endobj
10242 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 288.469 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 692.119 null ] >>
endobj
10243 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 277.51 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 681.16 null ] >>
+endobj
+149 0 obj
+<< /D [ 10232 0 R /XYZ 79.37 657.699 null ] >>
endobj
10244 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 266.552 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 617.236 null ] >>
endobj
10245 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 255.593 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 606.278 null ] >>
endobj
10246 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 244.634 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 595.319 null ] >>
endobj
10247 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 233.675 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 584.36 null ] >>
endobj
10248 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 222.716 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 573.401 null ] >>
endobj
10249 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 211.757 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 562.442 null ] >>
endobj
10250 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 200.798 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 551.483 null ] >>
endobj
10251 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 189.839 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 540.524 null ] >>
endobj
10252 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 178.88 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 529.565 null ] >>
endobj
10253 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 167.921 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 518.606 null ] >>
endobj
10254 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 156.963 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 507.647 null ] >>
endobj
10255 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 146.004 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 496.689 null ] >>
endobj
10256 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 135.045 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 485.73 null ] >>
endobj
10257 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 124.086 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 474.771 null ] >>
endobj
10258 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 113.127 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 463.812 null ] >>
endobj
10259 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 102.168 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 452.853 null ] >>
endobj
10260 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 91.209 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 441.894 null ] >>
endobj
10261 0 obj
-<< /D [ 10200 0 R /XYZ 81.077 80.25 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 430.935 null ] >>
endobj
-10199 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-10264 0 obj
-<< /Filter /FlateDecode /Length 1548 >>
-stream
-xڵZMoFW%i~d4moM!0JfA
-EI.-i+/&eqξ++ޝp;[+ q) _b/ma fxq*|/ot)k K^.κPʦ_ݺ]T_¢7ai=;hR]ߕ&2[mEO#=p%?ѷdw
-ml[Z+m=-<ѷ/^iGۛL]乜z>Vÿ;8K3 )R12]oyJ;r.A2L5)34ݶS Gۆ&3. J# Ks@T},01v$u4B)zh>tShʎitRtO\oC9>TůqThLST
-ƒ֨z2@{U'h*EAٗ̅Y0e)J&G}Z6w J鶝>RThmb9xps;^EyӮVes9.ؘ0joބ>/Wa}25nv8갳4hrA7鑊 UTۢf6iV.φyJajp)?Hu*:}8MT4zN#wD
-acMWm6rN)`cib~VHy[- w/I2~&
-˞y5ېY9 W\o3xם6<aa?MBF6E2u(V5gCQ(bTZ圂 Df1?ZNfI?&gmS4ݶ 9VjޭMU]r^33zb*X
-F :9oX\UJحbi,-sd qJe#A6$]K'cf$<+rWbY0E2~d%t 7VIC%ixl<4)(Hjc<{0`GF1E¦XYUJ Tq ::H.T0g y.kPH9# Mv0Td!E+LNhOՇ+9V.iS!5* MN:BsieWIp=㨛ܐ!C)ٳB2`u[F"w]~&GF7ES~]} rK NyGQcNÙ;8y{M)pJ q?FGqMh}L~J! $Ih3t׼יDmx>v6sfO<_h3]7mP)a|!\#hazpp4yƓI*;@L-Ia4Q~瑁4m*E_~+e?nrU՟h ]ȻށVn{
-,h<9u w)8ѐ^]||x’~O9k}UaTjUxܘBXcrqL!
-endstream
+10262 0 obj
+<< /D [ 10232 0 R /XYZ 81.077 419.976 null ] >>
endobj
10263 0 obj
-<< /Type /Page /Contents 10264 0 R /Resources 10262 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 10232 0 R /XYZ 81.077 409.017 null ] >>
+endobj
+10264 0 obj
+<< /D [ 10232 0 R /XYZ 81.077 398.058 null ] >>
endobj
10265 0 obj
-<< /D [ 10263 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 387.1 null ] >>
endobj
10266 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 376.141 null ] >>
endobj
10267 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 365.182 null ] >>
endobj
10268 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 354.223 null ] >>
endobj
10269 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 343.264 null ] >>
endobj
10270 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 332.305 null ] >>
endobj
10271 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 321.346 null ] >>
endobj
10272 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 310.387 null ] >>
endobj
10273 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 299.428 null ] >>
endobj
10274 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 288.469 null ] >>
endobj
10275 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 277.51 null ] >>
endobj
10276 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 266.552 null ] >>
endobj
10277 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 255.593 null ] >>
endobj
10278 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 244.634 null ] >>
endobj
10279 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 233.675 null ] >>
endobj
10280 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 222.716 null ] >>
endobj
10281 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 211.757 null ] >>
endobj
10282 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 200.798 null ] >>
endobj
10283 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 189.839 null ] >>
endobj
10284 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 178.88 null ] >>
endobj
10285 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 167.921 null ] >>
endobj
10286 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 156.963 null ] >>
endobj
10287 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 146.004 null ] >>
endobj
10288 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 135.045 null ] >>
endobj
10289 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 124.086 null ] >>
endobj
10290 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 113.127 null ] >>
endobj
10291 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 102.168 null ] >>
endobj
10292 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 91.209 null ] >>
endobj
10293 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 467.96 null ] >>
-endobj
-10294 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 457.001 null ] >>
+<< /D [ 10232 0 R /XYZ 81.077 80.25 null ] >>
endobj
-10295 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 446.042 null ] >>
+10231 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10296 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 435.083 null ] >>
+<< /Filter /FlateDecode /Length 1546 >>
+stream
+xڵZKoFWũɾ>M
+ԀAV)-=FŵWo/ ѠxAz L%Ibm$hjE<VUSc/
+k '?۷/ƭ7O[) tJR4 B@ť
+]
+H[WϪemYU;4+^g<KBj7S4G-6\x㳠∤-5v=ƪ[WCյ]*no
+4pjoq+5EoW U9/ h9G>X2\n9yWw}vVn5 92oaF4rŲVN-0% B۴
+
+bлMWw[%5 9d>$@OG1b"&Z%b%V=er[)9ՠc:8y.rʉ&f%E?i}3"hmdC`LVAqS !L1,hUt`cp{
+N4ݲʫdr=Bn
+ Uҧ˫WS?|5DG8Eﲑgx`_tb
+1F\<M #0@\nС:9h(*vn!~N#wfsaMC$C{ў>:ZѨ^>&CtL $ Jh3t׼יDmؐ}$l"C^$99_pO߯7PnB|! F2hr'gXvP!H&Y{X$G}v}S֋_~+׋ET&Z]_9n5 Em1SK ɑ4yDCnziE$h:X*S",T!V<q
+endstream
+endobj
+10295 0 obj
+<< /Type /Page /Contents 10296 0 R /Resources 10294 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9927 0 R >>
endobj
10297 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 10295 0 R /XYZ 78.37 808.885 null ] >>
endobj
10298 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 768.832 null ] >>
endobj
10299 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 402.207 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 757.873 null ] >>
endobj
10300 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 391.248 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 746.914 null ] >>
endobj
10301 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 380.289 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 735.955 null ] >>
endobj
10302 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 369.33 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 724.996 null ] >>
endobj
10303 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 358.371 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 714.037 null ] >>
endobj
10304 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 347.412 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 703.078 null ] >>
endobj
10305 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 336.453 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 692.119 null ] >>
endobj
10306 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 325.494 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 681.16 null ] >>
endobj
10307 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 314.535 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 670.202 null ] >>
endobj
10308 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 303.576 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 659.243 null ] >>
endobj
10309 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 292.618 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 648.284 null ] >>
endobj
10310 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 281.659 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 637.325 null ] >>
endobj
10311 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 270.7 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 626.366 null ] >>
endobj
10312 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 259.741 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 615.407 null ] >>
endobj
10313 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 248.782 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 604.448 null ] >>
endobj
10314 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 237.823 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 593.489 null ] >>
endobj
10315 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 226.864 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 577.549 null ] >>
endobj
10316 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 215.905 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 566.59 null ] >>
endobj
10317 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 204.946 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 555.631 null ] >>
endobj
10318 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 193.987 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 544.672 null ] >>
endobj
10319 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 183.028 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 533.713 null ] >>
endobj
10320 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 172.07 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 522.754 null ] >>
endobj
10321 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 161.111 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 511.796 null ] >>
endobj
10322 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 150.152 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 500.837 null ] >>
endobj
10323 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 139.193 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 489.878 null ] >>
endobj
10324 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 128.234 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 478.919 null ] >>
endobj
10325 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 117.275 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 467.96 null ] >>
endobj
10326 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 106.316 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 457.001 null ] >>
endobj
10327 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 95.357 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 446.042 null ] >>
endobj
10328 0 obj
-<< /D [ 10263 0 R /XYZ 81.077 84.398 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 435.083 null ] >>
endobj
-10262 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-10331 0 obj
-<< /Filter /FlateDecode /Length 1997 >>
-stream
-xڵZMoWdVh ma(6%%OMJ4Htxǹb_ÑH'XC9-(<TL(hEIn3}jg7CRܤ`,yCJ&oÛ7J?Z[tdAh"~%sWmn <ٖ(KsYϪ݇!zgffsMBT%M) 6Մ1m+TƤ`j~<
-ERFHmmV]M-W :2480|skes`Ven \H΢R(C+MiNx4-
-XYnUp5IV1"xHAQ=Qۦdਟ"煔%%BG G9E{ʋj3[7Gu|O MYc48)e,<5ZMpߙH)j \iTnn!YCK?KF 6v!qsKd72D@QNѯ聾Dhbf$\xXfFMMdfpRtU\jA1I.q}nM bc$%fhNJFBR2%l4% Yeƻ!>X/2Z0UT!XQ@bT] kYN!Ty}pc݋k(bJc>c >tzט"TxFDYg;ENR?hE(}ko[IB! ~
->L;/4~9_$!ط62)QUsBF"T~-0m2+c{P=R]Yl>T͇SJ*;E[6ci+YdCR"1DȨ
-:h
--r8g}i{H^b;p=a/~>Ԅ8|2C4 »CC+^6V:-=M?Լ+%a3ZÜE5/ZyFrn2sbiƎB@/#VJ“U۝H_@
-nqê? ١$:;4HO8[ɇ Y|V svkv
-t
-endstream
+10329 0 obj
+<< /D [ 10295 0 R /XYZ 81.077 424.124 null ] >>
endobj
10330 0 obj
-<< /Type /Page /Contents 10331 0 R /Resources 10329 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 10295 0 R /XYZ 81.077 413.165 null ] >>
+endobj
+10331 0 obj
+<< /D [ 10295 0 R /XYZ 81.077 402.207 null ] >>
endobj
10332 0 obj
-<< /D [ 10330 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 391.248 null ] >>
endobj
10333 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 380.289 null ] >>
endobj
10334 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 369.33 null ] >>
endobj
10335 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 358.371 null ] >>
endobj
10336 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 347.412 null ] >>
endobj
10337 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 336.453 null ] >>
endobj
10338 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 325.494 null ] >>
endobj
10339 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 314.535 null ] >>
endobj
10340 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 303.576 null ] >>
endobj
10341 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 292.618 null ] >>
endobj
10342 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 281.659 null ] >>
endobj
10343 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 270.7 null ] >>
endobj
10344 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 259.741 null ] >>
endobj
10345 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 248.782 null ] >>
endobj
10346 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 237.823 null ] >>
endobj
10347 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 226.864 null ] >>
endobj
10348 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 215.905 null ] >>
endobj
10349 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 204.946 null ] >>
endobj
10350 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 582.53 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 193.987 null ] >>
endobj
10351 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 571.571 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 183.028 null ] >>
endobj
10352 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 560.613 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 172.07 null ] >>
endobj
10353 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 549.654 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 161.111 null ] >>
endobj
10354 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 538.695 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 150.152 null ] >>
endobj
10355 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 527.736 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 139.193 null ] >>
endobj
10356 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 516.777 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 128.234 null ] >>
endobj
10357 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 505.818 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 117.275 null ] >>
endobj
10358 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 494.859 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 106.316 null ] >>
endobj
10359 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 483.9 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 95.357 null ] >>
endobj
10360 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 472.941 null ] >>
+<< /D [ 10295 0 R /XYZ 81.077 84.398 null ] >>
endobj
-10361 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 461.982 null ] >>
-endobj
-10362 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 451.023 null ] >>
+10294 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10363 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 440.065 null ] >>
+<< /Filter /FlateDecode /Length 1994 >>
+stream
+xڵZKoWFm&WAn E[4J"Rq !GVtzcR$9ߜ!]LVbUq8/W?]Dk(g E()m&O-Swk7)jF$o뷒捿ү0YZHGGq@-[By%'iֳjys{aP?ټYYnCSeP#"USSM5aLF1)+dZny94BT!Q<Rpswg۴UW5uSo˕v{4Ce%ᅎ a }*nX?nY[<9#6(HS>68 YnUp5qV1""-*/dhOmSMNwi`̟" )KJiT8)S^T٪u}u٬l3xb`}h1j1ZS3ѣ~;Y"eW`2tjII ,Vgxި!ƪ9no)s( 8)뽴pԱhʘ:W/H,3#&2S8f):g*\jAhqx
+$qoM bXc4$fhtC'%#Fbڔ ꛺F 9fJ,9^bf6gK&(C11*+
+pLhtWB/\)dN5g' 7{q E Bq{Lg8߿n]b֐BĤmʡ34^Ѥ01-`ҿTZbop%"Ce+Ih\OiAί_ [sAH Ձјߍ)!E.'L7HegX,npЯ0 `q3R]Yl>T͇eNͭ%b m1]K>8,!B<kq9>C
+/
+I,mQ6r93CP1(nQI"DKX9>3ϠA52B30a]H<E!
+][>lŵnw PHmifp㶜_b\T?W3R M5&p0#{`Rvr0i7<-p-xq\}D$- 8EnL8 sGO7pl6~S@wߺL6ZvoAiR 8dLU+GSp0G6`}_ W0UޚQpQsI,*
+-rW4=wbe0@zxn?b?֧8|2C4 ]ڕGȈ
+^VMMަj^ԕ-XaO]Y-yF@i2}liWȁ@ZFtJ“q|H; aO-w(MdNgmeW
+u>Z`){(ȇ}Kh
+endstream
+endobj
+10362 0 obj
+<< /Type /Page /Contents 10363 0 R /Resources 10361 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9927 0 R >>
endobj
10364 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 429.106 null ] >>
+<< /D [ 10362 0 R /XYZ 78.37 808.885 null ] >>
endobj
10365 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 418.147 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 768.832 null ] >>
endobj
10366 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 407.188 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 757.873 null ] >>
endobj
10367 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 396.229 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 746.914 null ] >>
endobj
10368 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 385.27 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 735.955 null ] >>
endobj
10369 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 374.311 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 724.996 null ] >>
endobj
10370 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 363.352 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 714.037 null ] >>
endobj
10371 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 352.393 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 703.078 null ] >>
endobj
10372 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 341.434 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 692.119 null ] >>
endobj
10373 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 330.476 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 681.16 null ] >>
endobj
10374 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 319.517 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 670.202 null ] >>
endobj
10375 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 308.558 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 659.243 null ] >>
endobj
10376 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 297.599 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 648.284 null ] >>
endobj
10377 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 286.64 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 637.325 null ] >>
endobj
10378 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 275.681 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 626.366 null ] >>
endobj
10379 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 264.722 null ] >>
-endobj
-153 0 obj
-<< /D [ 10330 0 R /XYZ 79.37 242.776 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 615.407 null ] >>
endobj
10380 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 123.122 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 604.448 null ] >>
endobj
10381 0 obj
-<< /D [ 10330 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-10329 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 10362 0 R /XYZ 81.077 593.489 null ] >>
endobj
-10384 0 obj
-<< /Filter /FlateDecode /Length 1952 >>
-stream
-xZmo_o޾shE/M^A4@K+8<{gtFrΔ(>gvggftDO/HLkEtfF͒Y\Zn?{0S0XeBWw=ZqulӺ~s)/{nE|N;pih!%?%ƈ*Fm K861zq퀴w
-Aq!B 9!%M+ zoI;w>wq1`ϊȕEA4pY)< -/n?'G kêŝ)xGa[ N5R<EԕeQ_NRS" N4xTPň맲XB'h?YW7!3r`{Eԇ,<erʙ7 {CZa 7S4Z
-[R
- cQ@7ldQn+Dh{PNDh Ǭ,{וo5BVv.zT =^l1}xXvфSB2΅ )=Cy*@Dw: D=/VNFYH.D%cA |P2e
-cXFoF n9*.kDhP rP@XB@
-PcM7 <$(ӂ: x3!spo&'"QRcK[y%IZP"I"pi 8SWڀÔN d)z5rX (k QLjs簙 ទDhtu`A6T$GfE O+P'SDb
-{w깪}C]t>gt_EkO|9ȇ=b'6W\_>w}6\y/W gVb_~|aAS=>L8gPk
-L*B ~7!jC$o;Nk1ǐđ L2ȡݾX M}isEѢ%ө8R4 K{&W{4,أ$e@!P1`Ȏnx ($`'B93O|%q< Mx.FM$ȗF;Y+xh]By
-endstream
+10382 0 obj
+<< /D [ 10362 0 R /XYZ 81.077 582.53 null ] >>
endobj
10383 0 obj
-<< /Type /Page /Contents 10384 0 R /Resources 10382 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 10362 0 R /XYZ 81.077 571.571 null ] >>
+endobj
+10384 0 obj
+<< /D [ 10362 0 R /XYZ 81.077 560.613 null ] >>
endobj
10385 0 obj
-<< /D [ 10383 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 549.654 null ] >>
endobj
10386 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 538.695 null ] >>
endobj
10387 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 527.736 null ] >>
endobj
10388 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 516.777 null ] >>
endobj
10389 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 505.818 null ] >>
endobj
10390 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 494.859 null ] >>
endobj
10391 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 483.9 null ] >>
endobj
10392 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 472.941 null ] >>
endobj
10393 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 461.982 null ] >>
endobj
10394 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 451.023 null ] >>
endobj
10395 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 440.065 null ] >>
endobj
10396 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 429.106 null ] >>
endobj
10397 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 418.147 null ] >>
endobj
10398 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 407.188 null ] >>
endobj
10399 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 396.229 null ] >>
endobj
10400 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 385.27 null ] >>
endobj
10401 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 599.772 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 374.311 null ] >>
endobj
10402 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 588.813 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 363.352 null ] >>
endobj
10403 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 577.854 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 352.393 null ] >>
endobj
10404 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 566.895 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 341.434 null ] >>
endobj
10405 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 555.936 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 330.476 null ] >>
endobj
10406 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 544.978 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 319.517 null ] >>
endobj
10407 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 534.019 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 308.558 null ] >>
endobj
10408 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 523.06 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 297.599 null ] >>
endobj
10409 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 512.101 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 286.64 null ] >>
endobj
10410 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 501.142 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 275.681 null ] >>
endobj
10411 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 490.183 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 264.722 null ] >>
+endobj
+153 0 obj
+<< /D [ 10362 0 R /XYZ 79.37 242.776 null ] >>
endobj
10412 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 479.224 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 123.122 null ] >>
endobj
10413 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 468.265 null ] >>
-endobj
-10414 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 457.306 null ] >>
+<< /D [ 10362 0 R /XYZ 81.077 78.637 null ] >>
endobj
-10415 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 425.651 null ] >>
+10361 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F72 187 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10416 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 414.692 null ] >>
+<< /Filter /FlateDecode /Length 1940 >>
+stream
+xZoD޿"h]B x_|M6u}ݖ;rM&)⤫Ǐgfwg泛}wƇ#3wiB|}&">2+YdV淳œ? z&%֪x
+\D`Bf]\iΟC-mZ_ѯ!o޻f]͇t>qG MLp9$a! 4D&
+a%gƵH3Y1 @!~ 0W?._4+bRLK!MV5w.#?yeDKOMZ#m͵k(TE$$ࡢy8E56۬bԐ(}mm2՛~KWߕ,LZմ54EׯM S<
+ 6Bׯ5S: -izѴ4i?Yޤٲ)ʕ+ᴸjF
+6y;΋ڽ`%*|'6t4~BduUjt+.]ᑆD<vU:ex72aڄХ**j4_]13IBIck\,U椢QM9HyX8RSjԖ[gڣv_Fe>b4Fh2I3ˊF=&r7(W?u'vW 9"hFQ-'W9
+.ܱNkI&4G^+W?aȻ]|57 Β?o|Xb0hp`('yAQ5#C ŜN@E(~?'ƒ kӪŝO RR4-)S@}Mo4c*St˦,*?r4Ж3,I 4ݶBaUET!_b V?"}aa`;rE4SNi'r6S4Y*'6PKkiaG=ͷ_ usWSYu4Unh+\e:yӨΜ4р87iդҥGpͶHWnF54M R!7'HFZ$4w3u &`Ee,R,* X<s(0}"=^(md>+u#V.eVzT =^liAE<,;4n6,?΅ )py(@;Aj?kz'K,jM:M.JhfjHB
+S"pPPhL),d"5ꢵ"0 ^( 
+2fsAW
+讇 9HP*%y(E IXi5$1f4 p60eNiJH|=im:Z8EH EC{F*9%:6O۩DE\H3?
+.)"Jci_\Ž|Mj# -fRiѹKoCEmWq[ *Cqw;걪mC]tǞ3/뢵_wGlBކ>oRBP 4#T8+uE愎
+}gȏ-!i|w\O(8p
+endstream
+endobj
+10415 0 obj
+<< /Type /Page /Contents 10416 0 R /Resources 10414 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9927 0 R >>
endobj
10417 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 403.733 null ] >>
+<< /D [ 10415 0 R /XYZ 78.37 808.885 null ] >>
endobj
10418 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 392.774 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 768.832 null ] >>
endobj
10419 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 381.815 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 757.873 null ] >>
endobj
10420 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 370.856 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 746.914 null ] >>
endobj
10421 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 359.897 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 735.955 null ] >>
endobj
10422 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 348.938 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 724.996 null ] >>
endobj
10423 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 337.979 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 714.037 null ] >>
endobj
10424 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 322.344 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 703.078 null ] >>
endobj
10425 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 311.385 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 692.119 null ] >>
endobj
10426 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 300.427 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 681.16 null ] >>
endobj
10427 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 289.468 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 670.202 null ] >>
endobj
10428 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 278.509 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 659.243 null ] >>
endobj
10429 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 267.55 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 648.284 null ] >>
endobj
10430 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 256.591 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 637.325 null ] >>
endobj
10431 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 245.632 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 626.366 null ] >>
endobj
10432 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 234.673 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 615.407 null ] >>
endobj
10433 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 208.69 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 599.772 null ] >>
endobj
10434 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 197.731 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 588.813 null ] >>
endobj
10435 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 577.854 null ] >>
endobj
10436 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 566.895 null ] >>
endobj
10437 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 555.936 null ] >>
endobj
10438 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 544.978 null ] >>
endobj
10439 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 534.019 null ] >>
endobj
10440 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 523.06 null ] >>
endobj
10441 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 512.101 null ] >>
endobj
10442 0 obj
-<< /D [ 10383 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-10382 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 10415 0 R /XYZ 81.077 501.142 null ] >>
endobj
-10445 0 obj
-<< /Filter /FlateDecode /Length 1721 >>
-stream
-xڵYMo6W6RP-6-ڴRV oP)q^"# 9f<^0wKat0x  H5P ,`=Fus B, &(&>uQ,lvq5 *y]2+:/jxeb^DT`D0uD>$ Q1bcHiH '˴ZЄrDףs:]DDHD/.M1sCU.UtRۇYѬnΐHňოެ"5w#mG`EU5P_J%! Qy̐gl)l{8>LQ}9f?[Nt|iC^yP2axx28.0`te/ Y'b\84xEҭ͎\;F~vsL'7\^>:T?I8U+?+&,ʋ;^.gbZfhY#¬{@{YJޜ c[>:|mEt2QEv]_
-P#vdC=B%Hr՗a`&Fd)~-&R$'9PΩ?1, VV*ޘ(y-"_>ػie/A8^o
- 6 AB]_tpk 3~<y:
-,h`EQ$uL|gAjPm_@ZA;<̑}tpe!\g*DP꡽GKxAlV{`O
- QQr;IRp冴cihSW5tLZYGb@N$;r}t,Bx&=׀**p";v̩EJW>Eq;(c'% }_o-&LRs]% B݋ª.A򪾸ʻщޥ2^F?T iRp S(w)PweByprF˺2L<tcEI7ˬ7lQq,7Mp7l~(u.-&1no-k+hQ7;?vMXGUI1K2A9(z!%:oߗ*M7c-(b.x88v IŮ^I& DgWP4K}ۑOFaC-#142NeTxtA{Jo/WGEkqU
-'8JivLHW:wd2{c6Q}
-endstream
+10443 0 obj
+<< /D [ 10415 0 R /XYZ 81.077 490.183 null ] >>
endobj
10444 0 obj
-<< /Type /Page /Contents 10445 0 R /Resources 10443 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 9948 0 R >>
+<< /D [ 10415 0 R /XYZ 81.077 479.224 null ] >>
+endobj
+10445 0 obj
+<< /D [ 10415 0 R /XYZ 81.077 468.265 null ] >>
endobj
10446 0 obj
-<< /D [ 10444 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 457.306 null ] >>
endobj
10447 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 425.651 null ] >>
endobj
10448 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 414.692 null ] >>
endobj
10449 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 715.033 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 403.733 null ] >>
endobj
10450 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 704.075 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 392.774 null ] >>
endobj
10451 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 693.116 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 381.815 null ] >>
endobj
10452 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 682.157 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 370.856 null ] >>
endobj
10453 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 671.198 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 359.897 null ] >>
endobj
10454 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 660.239 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 348.938 null ] >>
endobj
10455 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 649.28 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 337.979 null ] >>
endobj
10456 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 638.321 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 322.344 null ] >>
endobj
10457 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 627.362 null ] >>
-endobj
-157 0 obj
-<< /D [ 10444 0 R /XYZ 79.37 579.907 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 311.385 null ] >>
endobj
10458 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 483.059 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 300.427 null ] >>
endobj
10459 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 472.101 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 289.468 null ] >>
endobj
10460 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 461.142 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 278.509 null ] >>
endobj
10461 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 450.183 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 267.55 null ] >>
endobj
10462 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 434.243 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 256.591 null ] >>
endobj
10463 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 423.284 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 245.632 null ] >>
endobj
10464 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 412.325 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 234.673 null ] >>
endobj
10465 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 401.366 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 208.69 null ] >>
endobj
10466 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 390.407 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 197.731 null ] >>
endobj
10467 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 379.448 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 155.349 null ] >>
endobj
10468 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 368.489 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 144.39 null ] >>
endobj
10469 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 357.53 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 133.431 null ] >>
endobj
10470 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 346.571 null ] >>
-endobj
-161 0 obj
-<< /D [ 10444 0 R /XYZ 79.37 321.117 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 122.473 null ] >>
endobj
10471 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 252.774 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 111.514 null ] >>
endobj
10472 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 241.815 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 100.555 null ] >>
endobj
10473 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 230.856 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 89.596 null ] >>
endobj
10474 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 219.897 null ] >>
-endobj
-10475 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 208.938 null ] >>
+<< /D [ 10415 0 R /XYZ 81.077 78.637 null ] >>
endobj
-10476 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 197.979 null ] >>
+10414 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R /F70 185 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10477 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 182.039 null ] >>
+<< /Filter /FlateDecode /Length 1718 >>
+stream
+xڵYKoFWo0"M)Z hKCRv #R$We^Lro盙|<+~<{?>{{؀# Kx@Z"I@I$j0)Gmz{)@##%}0!_2JgWѹ^GE<JIלח
+-QuQBG?з @}28ƋdtδNqY6h 2GT xE/ O&n}򡬒5RrgňH"w#+"isMg-ؗDIyCkZ e2Eg
++D%kϔ>LQ3>ڞO-t|B]zPH0oyx28.0`-*2z&d]H\ ĸW8x,[qĴle#e$'g<XI2ĩjrXG NL"/.2(zxsVvistܪq6".u Ӧiۧ+ys6-ovZpٰEe>؋Xء< ći%ʰzD#U 3P31:'xlAb"BpN}\"N{ٔU)7Fue޼OKs-NieM5_VWF^9ULb\Vc|_C4MSn:lx=AP_; 'A`{+5l?ryzx R9|ܘ0V$IT hh 0B@r? U_ٖ,q7FxvaI^$GDCgpmo֥AVzoZ:8~_ܖݠ%j1z^Gkeºx0GhK(:J I `6ˋzp(4!>屖uMtH$
+0=p[ٲ_Ԗ6u9Nn\BxA\{ؗF/OkV`خB]_4
+pH;k@x**!tH`kEDuMire8Oi>YC1FyHjf>:xȲMdYP꡽GKx3àll{`K_d8E8_G_] 7 ځTˠC<vl7u9:&q=
+䮒c]|v)4aIC?u_[ `+?bij6B݋²*BeeuquK=e|L䡌MO_2uwMXym P:x\f]V<t˼ěeZV|(ڴ,7Mpl~P$պ~D.&E=tl7ay kk2gL%&*>0YoE&ޡfE ^88v MŮ^K& DgYcƥ}JMϬu'+ o5 2:<tCiPD^DQЎ*^F* s]-*%k;2{cdT(a|$>~D
+endstream
+endobj
+10476 0 obj
+<< /Type /Page /Contents 10477 0 R /Resources 10475 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10517 0 R >>
endobj
10478 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 171.08 null ] >>
+<< /D [ 10476 0 R /XYZ 78.37 808.885 null ] >>
endobj
10479 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 160.121 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 768.832 null ] >>
endobj
10480 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 149.162 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 757.873 null ] >>
endobj
10481 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 138.203 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 715.033 null ] >>
endobj
10482 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 127.244 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 704.075 null ] >>
endobj
10483 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 116.285 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 693.116 null ] >>
endobj
10484 0 obj
-<< /D [ 10444 0 R /XYZ 81.077 105.327 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 682.157 null ] >>
endobj
-10443 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F70 185 0 R /F20 186 0 R /F72 187 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-10487 0 obj
-<< /Filter /FlateDecode /Length 2331 >>
-stream
-xڽZ[o~ϯ[d ;9
--M
- b(i$K*I1o^F,(E_L7~1l&t;_<{'f&͵6 $ҌP&ݽѴPrgS[w<ݯwd=YaWn䫻lqz-A5Bʄqn˲(uQwvT~2BDp.BfcK"w޸N4$ aTwA{XuZ&i4]e{8*@r
-d<]᱘}h)%k8K9&n=0,&SKW.bLBC|X_WvNg\fTm]l $.QnēULwGKV
-4:!h$ P\>?<ILcM4
-}n>II j,jqvRoe 7=u,3֥16@;6$&D 8tUm5/s#eu|';;ӼK$1hws B
-gNmqOIvs=eeѱ/ȡ!oʽ>C}(x#Qt4 ߆J`ӆ!%V^hg]-J2yڡDLb6,@~ZwٶEYNM׼'>7 .>ۈK&7\ n
-ljگJRA\Trtgo1q12FC?0dY(PNJnݰ@! Ϛ%1Lah'2:Җz/׃n =٦m}c-"Ao$U(MhtRRF9P~ qO ň2ڳXOwܸn޾p~W)ȿ(.]@Q1 !M`Ն꾨
-&E.XLQ\IfP)} ҇ Q\ݘ9̓1+htR0h&r
-Ӹ@A,8H;$
-evUi|Mw –n yL gx )EߐWwT}vZ_k[z %#=pGW|$ٝ
-'0,ٻS3
-endstream
+10485 0 obj
+<< /D [ 10476 0 R /XYZ 81.077 671.198 null ] >>
endobj
10486 0 obj
-<< /Type /Page /Contents 10487 0 R /Resources 10485 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 10476 0 R /XYZ 81.077 660.239 null ] >>
+endobj
+10487 0 obj
+<< /D [ 10476 0 R /XYZ 81.077 649.28 null ] >>
endobj
10488 0 obj
-<< /D [ 10486 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 638.321 null ] >>
endobj
10489 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 722.007 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 627.362 null ] >>
+endobj
+157 0 obj
+<< /D [ 10476 0 R /XYZ 79.37 579.907 null ] >>
endobj
10490 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 711.048 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 483.059 null ] >>
endobj
10491 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 700.089 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 472.101 null ] >>
endobj
10492 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 689.131 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 461.142 null ] >>
endobj
10493 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 678.172 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 450.183 null ] >>
endobj
10494 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 667.213 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 434.243 null ] >>
endobj
10495 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 656.254 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 423.284 null ] >>
endobj
10496 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 645.295 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 412.325 null ] >>
endobj
10497 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 634.336 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 401.366 null ] >>
endobj
10498 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 623.377 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 390.407 null ] >>
endobj
10499 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 612.418 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 379.448 null ] >>
endobj
10500 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 601.459 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 368.489 null ] >>
endobj
10501 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 590.5 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 357.53 null ] >>
endobj
10502 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 579.542 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 346.571 null ] >>
+endobj
+161 0 obj
+<< /D [ 10476 0 R /XYZ 79.37 321.117 null ] >>
endobj
10503 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 568.583 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 252.774 null ] >>
endobj
10504 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 557.624 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 241.815 null ] >>
endobj
10505 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 546.665 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 230.856 null ] >>
endobj
10506 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 520.762 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 219.897 null ] >>
endobj
10507 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 509.803 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 208.938 null ] >>
endobj
10508 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 498.844 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 197.979 null ] >>
endobj
10509 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 487.885 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 182.039 null ] >>
endobj
10510 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 476.926 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 171.08 null ] >>
endobj
10511 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 160.121 null ] >>
endobj
10512 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 149.162 null ] >>
endobj
10513 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 441.061 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 138.203 null ] >>
endobj
10514 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 430.102 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 127.244 null ] >>
endobj
10515 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 419.143 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 116.285 null ] >>
endobj
10516 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 408.184 null ] >>
+<< /D [ 10476 0 R /XYZ 81.077 105.327 null ] >>
endobj
-10517 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 392.244 null ] >>
+10475 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F19 184 0 R /F70 185 0 R /F20 186 0 R /F72 187 0 R /F76 318 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-10518 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 381.285 null ] >>
+10520 0 obj
+<< /Filter /FlateDecode /Length 2330 >>
+stream
+xڽZ[o~ϯ[d ;I&ꇅv[4H 9q}1iߜmFtɏ層yO,$$\l :a(!"Dd2"6[jS wwljjAywil'2?qeۥ߳[cKPM!c2!?~*ySa-v^FXŲA*lLeV>Rz:ډdB=vVViV[W=X-{eH쯛ɪϸ[wljDVj6Y pMe_e+ϓL]C)"”bWIA
+d<[ϳᱜ}h)%kXKY&o=0.r]g
+{lykqBLi-?lBni4{vNg\(mS| $.QnSēו{#
+-I 8=NA!e
+ةE@Rm
+endstream
endobj
10519 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 370.326 null ] >>
-endobj
-10520 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 359.367 null ] >>
+<< /Type /Page /Contents 10520 0 R /Resources 10518 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10517 0 R >>
endobj
10521 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 348.408 null ] >>
+<< /D [ 10519 0 R /XYZ 78.37 808.885 null ] >>
endobj
10522 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 337.449 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 722.007 null ] >>
endobj
10523 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 326.49 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 711.048 null ] >>
endobj
10524 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 310.55 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 700.089 null ] >>
endobj
10525 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 299.591 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 689.131 null ] >>
endobj
10526 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 288.632 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 678.172 null ] >>
endobj
10527 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 277.674 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 667.213 null ] >>
endobj
10528 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 266.715 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 656.254 null ] >>
endobj
10529 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 645.295 null ] >>
endobj
10530 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 239.816 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 634.336 null ] >>
endobj
10531 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 228.857 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 623.377 null ] >>
endobj
10532 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 217.898 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 612.418 null ] >>
endobj
10533 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 206.939 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 601.459 null ] >>
endobj
10534 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 195.98 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 590.5 null ] >>
endobj
10535 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 185.021 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 579.542 null ] >>
endobj
10536 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 174.062 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 568.583 null ] >>
endobj
10537 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 163.103 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 557.624 null ] >>
endobj
10538 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 152.144 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 546.665 null ] >>
endobj
10539 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 136.204 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 520.762 null ] >>
endobj
10540 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 125.245 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 509.803 null ] >>
endobj
10541 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 114.286 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 498.844 null ] >>
endobj
10542 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 103.327 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 487.885 null ] >>
endobj
10543 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 92.368 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 476.926 null ] >>
endobj
10544 0 obj
-<< /D [ 10486 0 R /XYZ 81.077 81.41 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 462.979 null ] >>
endobj
-10485 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F74 264 0 R >> /ProcSet [ /PDF /Text ] >>
+10545 0 obj
+<< /D [ 10519 0 R /XYZ 81.077 452.02 null ] >>
endobj
-10548 0 obj
-<< /Filter /FlateDecode /Length 1773 >>
-stream
-xڵZM60CeMjOA$HPТ) M{c! 6%nGq/33H͌^'Q/OoIX&l`pD333l^zH=9֋7:Yh-8%F$1WumQ6ݺ+ҶTQwt7[un֕m杻o]ͻGxQ 1zX.=мzm <w$o *:/4!T>U7W4pnQ+xD/¤їڦ[nMg b۸ߞzZ_ {0+>nc'V]hEcލk)4PnnyySpa0i&4nc
-WBڦ9AӡpsƠzT][[AikSFA|(͢twe;OëbzNv b 6B9"xԉQH>ݱ .E8(0wʒ^t j {][T]UKY܋NT=6eZ+o/ɡv\Ӥ^Um5r9NHZ6 ==1KT4P )B{6 RӦm\
-_}1䜈a Zc4>`VvnZ++P$
-&0j
-SFW&>hDא,`
-p |XㆳW& mD3
-7Dh
-p C kpϣ\pBe04cph
-DT / FsFƪ}^ `F`qgq]X,ٰ 5%Yѿ?0MM-pu]sxZE|Pp7]!_, |rc-K1&C6P6?f$imd+ּJ۩*(V5F q"gu²lrԆ#Q"4%c0 q>N<^ђ_ jfYRA?:Pe7_b_bԥ nwjYs1ؕ4CO[$:{@BEvĴIJ+Zb7|=P
-endstream
+10546 0 obj
+<< /D [ 10519 0 R /XYZ 81.077 441.061 null ] >>
endobj
10547 0 obj
-<< /Type /Page /Contents 10548 0 R /Resources 10546 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 10519 0 R /XYZ 81.077 430.102 null ] >>
+endobj
+10548 0 obj
+<< /D [ 10519 0 R /XYZ 81.077 419.143 null ] >>
endobj
10549 0 obj
-<< /D [ 10547 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 408.184 null ] >>
endobj
10550 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 392.244 null ] >>
endobj
10551 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 381.285 null ] >>
endobj
10552 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 370.326 null ] >>
endobj
10553 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 359.367 null ] >>
endobj
10554 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 348.408 null ] >>
endobj
10555 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 337.449 null ] >>
endobj
10556 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 326.49 null ] >>
endobj
10557 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 310.55 null ] >>
endobj
10558 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 299.591 null ] >>
endobj
10559 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 288.632 null ] >>
endobj
10560 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 277.674 null ] >>
endobj
10561 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 266.715 null ] >>
endobj
10562 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 255.756 null ] >>
endobj
10563 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 239.816 null ] >>
endobj
10564 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 228.857 null ] >>
endobj
10565 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 217.898 null ] >>
endobj
10566 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 206.939 null ] >>
endobj
10567 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 195.98 null ] >>
endobj
10568 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 185.021 null ] >>
endobj
10569 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 174.062 null ] >>
endobj
10570 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 163.103 null ] >>
endobj
10571 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 152.144 null ] >>
endobj
10572 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 136.204 null ] >>
endobj
10573 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 125.245 null ] >>
endobj
10574 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 114.286 null ] >>
endobj
10575 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 103.327 null ] >>
endobj
10576 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 462.979 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 92.368 null ] >>
endobj
10577 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 452.02 null ] >>
+<< /D [ 10519 0 R /XYZ 81.077 81.41 null ] >>
endobj
-10578 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 441.061 null ] >>
-endobj
-10579 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 430.102 null ] >>
+10518 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F19 184 0 R /F20 186 0 R /F73 189 0 R /F69 183 0 R /F76 318 0 R /F74 264 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10580 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 414.162 null ] >>
+<< /Filter /FlateDecode /Length 1772 >>
+stream
+xڵZnF}WC{S 6}(Т)ZZlx1Hw\75"93djAoI }{- X^1.(^hUl,=^~eXD mqꮺU-ʦ.튴ݯM6]{uey[Wgpnb/)a ~sˀzv4/zKj[I |M*/*D y޿ʛ+jJ875T<"IDs\wmӭu ݦ3Dj۸ߞ(|Z_ {0}>hO>rVShV:-YߺO4 Hp|WP6 U+0#cg@ &6[2bY hV;/ݩ}^:}]ijւFl
+^Yq *u"r/GOw,'Dnqwe/uuALJSn~?KP%p zq^j۵5OyI+[(4ϫExT)iuF}\n|U[ &rM6P#-T>+o
+SFW0 Lơ}8Я!YJWv:;0(B{c[[<"HC􎵮"_$.0ݮ^4?tz"?}vr}z쪬jYм`ʄ/9LזDqmԄ<6 dba"4^>lqOl|fR)HBT!GǜNe$̓" ^8
+Mb1"M2*ƖVC6?"iT Nh"!#4EcT ^43B6IqcU>0
+pхlB6 5%ѿ⦦
+PN'-7&)9DI,`2dUnSoFқ6ʮڶMiͫ[x\D%xMcY]=tCX."l\9?HMyIF)x"L!"|p~%9<ZrkA,YJ9G
+endstream
+endobj
+10579 0 obj
+<< /Type /Page /Contents 10580 0 R /Resources 10578 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10517 0 R >>
endobj
10581 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 403.203 null ] >>
+<< /D [ 10579 0 R /XYZ 78.37 808.885 null ] >>
endobj
10582 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 392.244 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 768.832 null ] >>
endobj
10583 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 381.285 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 757.873 null ] >>
endobj
10584 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 370.326 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 746.914 null ] >>
endobj
10585 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 359.367 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 735.955 null ] >>
endobj
10586 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 724.996 null ] >>
endobj
10587 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 332.468 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 714.037 null ] >>
endobj
10588 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 321.509 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 692.119 null ] >>
endobj
10589 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 310.55 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 681.16 null ] >>
endobj
10590 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 299.591 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 670.202 null ] >>
endobj
10591 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 288.632 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 659.243 null ] >>
endobj
10592 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 272.692 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 648.284 null ] >>
endobj
10593 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 261.733 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 637.325 null ] >>
endobj
10594 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 250.774 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 626.366 null ] >>
endobj
10595 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 239.816 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 615.407 null ] >>
endobj
10596 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 228.857 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 604.448 null ] >>
endobj
10597 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 217.898 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 593.489 null ] >>
endobj
10598 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 577.549 null ] >>
endobj
10599 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 566.59 null ] >>
endobj
10600 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 555.631 null ] >>
endobj
10601 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 544.672 null ] >>
endobj
10602 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 158.122 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 533.713 null ] >>
endobj
10603 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 142.182 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 522.754 null ] >>
endobj
10604 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 131.223 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 511.796 null ] >>
endobj
10605 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 120.264 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 500.837 null ] >>
endobj
10606 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 109.305 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 484.896 null ] >>
endobj
10607 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 98.346 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 473.938 null ] >>
endobj
10608 0 obj
-<< /D [ 10547 0 R /XYZ 81.077 87.387 null ] >>
-endobj
-10546 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 10579 0 R /XYZ 81.077 462.979 null ] >>
endobj
-10611 0 obj
-<< /Filter /FlateDecode /Length 2064 >>
-stream
-xڭMoFB{h
-7S6I[!h h 5HʮE()are|9gfv-nEt|e\\^<{mB$R,.|f]XYdb]$Q O6"f12<,Xŋm}sUfK-U:krWysvM۽'LO##.s&d2a\޶<϶(۵]iK״:k۬}='S7ʲ>B7|ھЂi ͨE% J3N|ܘXi֌fZp,9p
--IOi$b꧑MP{ivxh֏?.O`ըϜ~oQh@%0u]e~lڴBna-ŪT@6IΚBFY-0H,a)!g)i tCP )yܱqUyyn"MVKv$SAʳ!59mrޑCTh0DCİ6T|
->µd 'cƒuv~5kWE}^;^I
-B8VpK^-2"& $j2 =`
-RXẊPQ5/יoI>AcL%0WM[t2}3ⱽOR{C;šoI%$ &9d$,Oѱ ָx'2D M6'v&-7i7f}{cIb`X!|6# }OgN89C9FQj&+|~?+ۼ 7fY٘Μ"5Xf:>RqiծHC|fcZiliKs-TSj5$<VCCVͪ~=t +8(l
-'t;],\s%%DԓZ&fK(\0~KR+('N9紩ٻ6p7q?"O^50(Ч8Vҵu)ۀ/=k[Pk%L>KZ-|*nKR-o=oHU"gv;"Я
-7]~mJZ {LSH4RN@:S)W>.'8e̠T'
-ĂO^^ mjRF%hPLË|wYQl5 iq t@xZB/@92`FvL̐= 4 =Oi*= XP̩y珂cIԵPH2AS;Kݎ.@Av9\B((P9Ś KOM31M6摚IT$3s lLⳳ :#5\q"+<UפܓS.劶749i;HEH3@#xf'vMpǜ3pp7$Y[J O<h'
-endstream
+10609 0 obj
+<< /D [ 10579 0 R /XYZ 81.077 452.02 null ] >>
endobj
10610 0 obj
-<< /Type /Page /Contents 10611 0 R /Resources 10609 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 10579 0 R /XYZ 81.077 441.061 null ] >>
+endobj
+10611 0 obj
+<< /D [ 10579 0 R /XYZ 81.077 430.102 null ] >>
endobj
10612 0 obj
-<< /D [ 10610 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 414.162 null ] >>
endobj
10613 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 403.203 null ] >>
endobj
10614 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 392.244 null ] >>
endobj
10615 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 381.285 null ] >>
endobj
10616 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 370.326 null ] >>
endobj
10617 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 359.367 null ] >>
endobj
10618 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 709.191 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 343.427 null ] >>
endobj
10619 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 698.232 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 332.468 null ] >>
endobj
10620 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 687.273 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 321.509 null ] >>
endobj
10621 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 676.314 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 310.55 null ] >>
endobj
10622 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 665.355 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 299.591 null ] >>
endobj
10623 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 654.396 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 288.632 null ] >>
endobj
10624 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 638.591 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 272.692 null ] >>
endobj
10625 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 627.632 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 261.733 null ] >>
endobj
10626 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 616.673 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 250.774 null ] >>
endobj
10627 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 605.714 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 239.816 null ] >>
endobj
10628 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 594.755 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 228.857 null ] >>
endobj
10629 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 583.796 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 217.898 null ] >>
endobj
10630 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 567.991 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 201.957 null ] >>
endobj
10631 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 557.032 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 190.999 null ] >>
endobj
10632 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 546.073 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 180.04 null ] >>
endobj
10633 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 535.114 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 169.081 null ] >>
endobj
10634 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 524.155 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 158.122 null ] >>
endobj
10635 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 513.196 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 142.182 null ] >>
endobj
10636 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 497.391 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 131.223 null ] >>
endobj
10637 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 486.432 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 120.264 null ] >>
endobj
10638 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 475.473 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 109.305 null ] >>
endobj
10639 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 464.514 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 98.346 null ] >>
endobj
10640 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 453.555 null ] >>
-endobj
-10641 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 442.596 null ] >>
+<< /D [ 10579 0 R /XYZ 81.077 87.387 null ] >>
endobj
-10642 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 431.637 null ] >>
+10578 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10643 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 415.832 null ] >>
+<< /Filter /FlateDecode /Length 2060 >>
+stream
+xڭMoFB{h
+7S6I[!h h 5HʮE()are|9gfv-nEt|e\\^<{mB$R,.|f]XYdb]$<O6"f12<,Xŋm}sUfK-U:krWysvM۽'LO##q]D9Bcm0dog[D XZϮشk]m־M eY }I>m_hXfԢ%R'>?nD,4kF3
+,9p
+-IOi$b꧑MP{ivxh֏?.O`ըϜ~oQh@%0u]e~lڴBna-ŪT@6IΚBFY-0H,a)!g)$i tCP)yܱqUyyn"MVKv$SC0& CeH?DA?dL ksHeSl/%30H83@44+7ώW_.:Jr
+ < !24&'T#E$-!5yAi(0 vtC%]y]cĀV ,-b-aB~ aha <
+տ:-I{g0z t>i n?Xyo]Y<i;Xjo{hx8-$5gV̙E9:ָarh# >g"(C͉IMZmƍYXX$5t{2 HCY*&cNqQP;7YYYe7 tVtV2;Y>RqiծHC|fcZiiijJjHrjYO#unwe @FkIgUz0}|ޏHG+xcvlSa>=5jКtz千e]dOʭdK@\VUܮ&CN 71mņj:-1
+4H1 =c}:HCBSihڑRI'58д# [:A؆E*
+(
+E#퉓>g:9m_/f܏H@w~qElz -?*7i?ǧtmos?}64uGֻ-TeZ@F SǚV 59DT x-[tARծݎ+= @jr ,~'
+ŕI6~3( F7Sh%Tӗ*4*F$b^+ˊbf!Ng-T1fh fxH<R6ai*= XP̩y珂cIԵPH2AS;Kݎ.@Av9\B((P9Ś KOM316摚IT$3s lLⳳ :#5\q"[<UפܓS.営749-mG
+endstream
+endobj
+10642 0 obj
+<< /Type /Page /Contents 10643 0 R /Resources 10641 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10517 0 R >>
endobj
10644 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 404.873 null ] >>
+<< /D [ 10642 0 R /XYZ 78.37 808.885 null ] >>
endobj
10645 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 393.914 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 768.832 null ] >>
endobj
10646 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 382.955 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 757.873 null ] >>
endobj
10647 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 371.996 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 746.914 null ] >>
endobj
10648 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 361.037 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 735.955 null ] >>
endobj
10649 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 350.078 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 724.996 null ] >>
endobj
10650 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 339.119 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 709.191 null ] >>
endobj
10651 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 328.16 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 698.232 null ] >>
endobj
10652 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 317.201 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 687.273 null ] >>
endobj
10653 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 301.396 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 676.314 null ] >>
endobj
10654 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 290.437 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 665.355 null ] >>
endobj
10655 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 279.478 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 654.396 null ] >>
endobj
10656 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 268.519 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 638.591 null ] >>
endobj
10657 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 257.56 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 627.632 null ] >>
endobj
10658 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 246.601 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 616.673 null ] >>
endobj
10659 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 230.796 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 605.714 null ] >>
endobj
10660 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 219.837 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 594.755 null ] >>
endobj
10661 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 208.878 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 583.796 null ] >>
endobj
10662 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 197.919 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 567.991 null ] >>
endobj
10663 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 186.96 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 557.032 null ] >>
endobj
10664 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 176.001 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 546.073 null ] >>
endobj
10665 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 165.042 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 535.114 null ] >>
endobj
10666 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 149.237 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 524.155 null ] >>
endobj
10667 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 138.278 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 513.196 null ] >>
endobj
10668 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 127.319 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 497.391 null ] >>
endobj
10669 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 116.36 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 486.432 null ] >>
endobj
10670 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 105.401 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 475.473 null ] >>
endobj
10671 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 94.442 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 464.514 null ] >>
endobj
10672 0 obj
-<< /D [ 10610 0 R /XYZ 81.077 78.637 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 453.555 null ] >>
endobj
-10609 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-10675 0 obj
-<< /Filter /FlateDecode /Length 2196 >>
-stream
-xڽ[]o6}ϯ0m +~yv-Z,"hbkb!HrtP-tfgq.)'M&^too7XC9ܿGɆn"V$n?R/{/QvcUL)% eBh<7[)Tv+rP9gNgΔDJC51 /5Z<
-o!P +=6mu-2ӰJ-QjC3H(Dvձ{|{ʋ{xYW|q+|uPM`ęۇ4/CtbJaJyD?J5;Bˣ2pa=AFvoLMYK">}|U.Js(gZ6
-Ma!StWc#4JGe:=AGPLKgS^>uJ"k Ďu wiKODdTZC4:i0Yk<a3C9gL+¾N?4$9Q2"w Ma JkgBBτ}UWYLWDhB2tQBB/,~LC*[cBwNs۴i ՌH!ZL{%agBBׄ:fFz\
-PE8M^rmVfr">1LheM4#
-0jEse$zjT>*h-ɍ%";Z#ɡN:Z;r S:H"4Zs^TܱG+h9!0Mn
-)[ɜfF4U0K=5NnFcpμY8a:09D(BMso!.5Bjt 1hFsO뚳/k!m6(oD1qkXmA
-]ٝ(".Xق]] ysW% 2Ojo8KF@?zBS==w;
-!MX,rQl ?(E~a;nӧ)/{
-K{9/XN6~bDt;:;Wv*ew.)PKZ;4ANK]1q>ෟڍ(Sl>ñ4qg
-endstream
+10673 0 obj
+<< /D [ 10642 0 R /XYZ 81.077 442.596 null ] >>
endobj
10674 0 obj
-<< /Type /Page /Contents 10675 0 R /Resources 10673 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 10642 0 R /XYZ 81.077 431.637 null ] >>
+endobj
+10675 0 obj
+<< /D [ 10642 0 R /XYZ 81.077 415.832 null ] >>
endobj
10676 0 obj
-<< /D [ 10674 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 404.873 null ] >>
endobj
10677 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 393.914 null ] >>
endobj
10678 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 382.955 null ] >>
endobj
10679 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 371.996 null ] >>
endobj
10680 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 361.037 null ] >>
endobj
10681 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 350.078 null ] >>
endobj
10682 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 339.119 null ] >>
endobj
10683 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 328.16 null ] >>
endobj
10684 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 317.201 null ] >>
endobj
10685 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 301.396 null ] >>
endobj
10686 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 290.437 null ] >>
endobj
10687 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 279.478 null ] >>
endobj
10688 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 268.519 null ] >>
endobj
10689 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 637.325 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 257.56 null ] >>
endobj
10690 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 626.366 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 246.601 null ] >>
endobj
10691 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 615.407 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 230.796 null ] >>
endobj
10692 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 604.448 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 219.837 null ] >>
endobj
10693 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 593.489 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 208.878 null ] >>
endobj
10694 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 197.919 null ] >>
endobj
10695 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 186.96 null ] >>
endobj
10696 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 176.001 null ] >>
endobj
10697 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 165.042 null ] >>
endobj
10698 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 149.237 null ] >>
endobj
10699 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 138.278 null ] >>
endobj
10700 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 127.319 null ] >>
endobj
10701 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 116.36 null ] >>
endobj
10702 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 489.878 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 105.401 null ] >>
endobj
10703 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 478.919 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 94.442 null ] >>
endobj
10704 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 467.96 null ] >>
+<< /D [ 10642 0 R /XYZ 81.077 78.637 null ] >>
endobj
-10705 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 457.001 null ] >>
-endobj
-10706 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 446.042 null ] >>
+10641 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10707 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 435.083 null ] >>
+<< /Filter /FlateDecode /Length 2198 >>
+stream
+xڽ[o6~_aVMiõhq(=R uEPhJ6 ÙoH:<mͷ7J{?o4b ls%1(7ZQ(o~JmY_~7!RJ81 q˄Є&YX+rP9gNΔ~xЊ"!ܚdØe qc-u?ڮeMqC1/pv{Q`9G`9ʫfeQ|&Fɵ%J\0bP#|1\>Ou_WoǢ,~L~u˛>oiW
+JFn)4{F<z&\v:k%rVFB+1z/)BB/,~LcKV8~ n^ å^C̵1P/35!Iš
+
+E6NΖ~Ϋvh H7u:ǝFY=Q4ht\qv|CNݧ]S6vz eZq>V[PHBqu3BWw |\ѡM]7}irW% 2OqB0:/8_ԏevfn:B+XL¢<ƫ<!#@ _lZ{IifCp<|
+ΞBR ]qA>[v:;)PKZe!;-uŌs!bF~j78/V#Ձ?o
+endstream
+endobj
+10706 0 obj
+<< /Type /Page /Contents 10707 0 R /Resources 10705 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10517 0 R >>
endobj
10708 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 424.124 null ] >>
+<< /D [ 10706 0 R /XYZ 78.37 808.885 null ] >>
endobj
10709 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 413.165 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 768.832 null ] >>
endobj
10710 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 397.225 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 757.873 null ] >>
endobj
10711 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 386.266 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 746.914 null ] >>
endobj
10712 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 375.307 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 735.955 null ] >>
endobj
10713 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 364.349 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 724.996 null ] >>
endobj
10714 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 353.39 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 714.037 null ] >>
endobj
10715 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 342.431 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 703.078 null ] >>
endobj
10716 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 331.472 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 692.119 null ] >>
endobj
10717 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 315.532 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 681.16 null ] >>
endobj
10718 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 304.573 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 670.202 null ] >>
endobj
10719 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 293.614 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 659.243 null ] >>
endobj
10720 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 282.655 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 648.284 null ] >>
endobj
10721 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 271.696 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 637.325 null ] >>
endobj
10722 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 255.756 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 626.366 null ] >>
endobj
10723 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 244.797 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 615.407 null ] >>
endobj
10724 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 233.838 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 604.448 null ] >>
endobj
10725 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 222.879 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 593.489 null ] >>
endobj
10726 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 211.92 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 577.549 null ] >>
endobj
10727 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 195.98 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 566.59 null ] >>
endobj
10728 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 185.021 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 555.631 null ] >>
endobj
10729 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 174.062 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 544.672 null ] >>
endobj
10730 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 163.103 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 533.713 null ] >>
endobj
10731 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 152.144 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 522.754 null ] >>
endobj
10732 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 141.185 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 511.796 null ] >>
endobj
10733 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 130.226 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 500.837 null ] >>
endobj
10734 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 114.286 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 489.878 null ] >>
endobj
10735 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 103.327 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 478.919 null ] >>
endobj
10736 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 92.368 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 467.96 null ] >>
endobj
10737 0 obj
-<< /D [ 10674 0 R /XYZ 81.077 81.41 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 457.001 null ] >>
endobj
-10673 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-10740 0 obj
-<< /Filter /FlateDecode /Length 2633 >>
-stream
-xڭ[MW)q$r쪤R=$U,%Q
-ߢbrjj?ED*HM.ZǠ.cJ-GZV)NwVל{\ȉ#C8<$u8dHus°Xz5#i#TmWBnuBCd"H !Y2p^Ol(4b&qzC7udCDSLUL @>
-d !չ:$J5
-C^S3@͸@HVfJ;L&ى@CFbf%
-ŗ)YQyŤh!؉k(yaC伻!25o<"np2Ҕ(Bi{ d@skJIbBHk}m( 'lm7uZ_P?7eՍM
-{ѩBˆh~s =MG:n97xH'2ԭW l?'X;rsʀKdEBoM"@ D壻R#54AyNjt9̋$ZhWVςAm;bwʍԃq]uINͿ"=ISQ߽R jvhѬ*l?UEkC^&nhrzIE-I"BбŶD/Uz "Pži|ɥP̛]#޸9!'%>#4 ]b!གUd]5<kPBJ85'X;Y7Vy.do`2D4M-ΗwRb t6~o$Lv;/b
-˯daĄ*Њ7B;'?&o#:N"VOv$ C*2eR;x{KJW49 c%rum %lOu]S ~fPT+<["䅧!H{05<TI1EDOEsٿ6+M/9Nl'[nʾ) +xC!41iy q1DA@2mB85C0$]>KeHS!vZMn}chD dFDB=q@rhLiy]Qmw[7ߙo<"^
-endstream
+10738 0 obj
+<< /D [ 10706 0 R /XYZ 81.077 446.042 null ] >>
endobj
10739 0 obj
-<< /Type /Page /Contents 10740 0 R /Resources 10738 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 10706 0 R /XYZ 81.077 435.083 null ] >>
+endobj
+10740 0 obj
+<< /D [ 10706 0 R /XYZ 81.077 424.124 null ] >>
endobj
10741 0 obj
-<< /D [ 10739 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 413.165 null ] >>
endobj
10742 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 397.225 null ] >>
endobj
10743 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 386.266 null ] >>
endobj
10744 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 375.307 null ] >>
endobj
10745 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 364.349 null ] >>
endobj
10746 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 353.39 null ] >>
endobj
10747 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 342.431 null ] >>
endobj
10748 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 331.472 null ] >>
endobj
10749 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 315.532 null ] >>
endobj
10750 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 304.573 null ] >>
endobj
10751 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 660.239 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 293.614 null ] >>
endobj
10752 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 649.28 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 282.655 null ] >>
endobj
10753 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 638.321 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 271.696 null ] >>
endobj
10754 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 627.362 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 255.756 null ] >>
endobj
10755 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 616.403 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 244.797 null ] >>
endobj
10756 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 233.838 null ] >>
endobj
10757 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 222.879 null ] >>
endobj
10758 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 211.92 null ] >>
endobj
10759 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 567.586 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 195.98 null ] >>
endobj
10760 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 556.627 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 185.021 null ] >>
endobj
10761 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 545.669 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 174.062 null ] >>
endobj
10762 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 534.71 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 163.103 null ] >>
endobj
10763 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 152.144 null ] >>
endobj
10764 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 141.185 null ] >>
endobj
10765 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 130.226 null ] >>
endobj
10766 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 114.286 null ] >>
endobj
10767 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 474.934 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 103.327 null ] >>
endobj
10768 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 463.975 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 92.368 null ] >>
endobj
10769 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 453.016 null ] >>
+<< /D [ 10706 0 R /XYZ 81.077 81.41 null ] >>
endobj
-10770 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 442.057 null ] >>
-endobj
-10771 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 431.098 null ] >>
+10705 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10772 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 420.139 null ] >>
+<< /Filter /FlateDecode /Length 2634 >>
+stream
+xڭ[MW)qF'KIUI{HbXXrv l
+4~ҌʁB"%$D\P K@h84 [W=9=ɻCQVoȇV{[az 7:hbH3Ԋu
+n5ec4Yy62hǘvÏ,ۣ;I@z>~J`uE=Z#i*#\LBoP yVc#RGF^#͆5& B/ vRϡu&BD raJ8(7S&v֙C']x梾}AZG/ESUnWDacCȄ&fVhq %Z,  ';BkAD.M_xӝ]Y ̆zL.B%g4 9 i3BS.p%+^ynL&XEnP ?Z?G.u[]w vڐE̢a4%B7;_"w4Jl7Dc4 '
++$o!4y0
+Оck 3ڵs|B?%dGՑW~HE*#Q*}>ŦQe -m-W[f:P\6f֏y˳ߺ X1$/< A뀹eR%XW_3=E[ V6;{/mQ_>.Nls̟\MK*'6-mʇĤB]<c&("dpYEqiKk `zI KeIS1v5ZuCciD(fFDB=q@z84m Mcܲi妎/,7ُwƈ#4
+{pcZCVztwhmba
+endstream
+endobj
+10771 0 obj
+<< /Type /Page /Contents 10772 0 R /Resources 10770 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10517 0 R >>
endobj
10773 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 10771 0 R /XYZ 78.37 808.885 null ] >>
endobj
10774 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 768.832 null ] >>
endobj
10775 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 757.873 null ] >>
endobj
10776 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 371.322 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 746.914 null ] >>
endobj
10777 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 360.363 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 730.974 null ] >>
endobj
10778 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 349.405 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 720.015 null ] >>
endobj
10779 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 338.446 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 709.056 null ] >>
endobj
10780 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 327.487 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 698.097 null ] >>
endobj
10781 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 316.528 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 687.138 null ] >>
endobj
10782 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 305.569 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 676.179 null ] >>
endobj
10783 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 294.61 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 660.239 null ] >>
endobj
10784 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 278.67 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 649.28 null ] >>
endobj
10785 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 267.711 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 638.321 null ] >>
endobj
10786 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 256.752 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 627.362 null ] >>
endobj
10787 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 616.403 null ] >>
endobj
10788 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 605.444 null ] >>
endobj
10789 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 594.486 null ] >>
endobj
10790 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 207.935 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 583.527 null ] >>
endobj
10791 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 196.976 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 567.586 null ] >>
endobj
10792 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 186.017 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 556.627 null ] >>
endobj
10793 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 545.669 null ] >>
endobj
10794 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 164.099 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 534.71 null ] >>
endobj
10795 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 153.141 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 523.751 null ] >>
endobj
10796 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 137.2 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 512.792 null ] >>
endobj
10797 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 126.241 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 501.833 null ] >>
endobj
10798 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 115.283 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 490.874 null ] >>
endobj
10799 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 104.324 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 474.934 null ] >>
endobj
10800 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 463.975 null ] >>
endobj
10801 0 obj
-<< /D [ 10739 0 R /XYZ 81.077 82.406 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 453.016 null ] >>
endobj
-10738 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-10804 0 obj
-<< /Filter /FlateDecode /Length 2167 >>
-stream
-xڭZMoFWC`d)X`&; d.l-64HʎVbL(CƖǪ|uo?7~HJ3
-%W_+J-"Y%V0nj_kgu9kU: YF,mn9sO3eI]LIm+̈́lls}ٷ*~WU߼5|?M] LpC5ů{-\E -bsdB2umi4GOAa!z?725ћ>y]wM3F ;V갿?\_ztS:Bt4!0\4m3;ƕ"1))ɫMWoڮyi8Iv>4xe}ɫwn1e2G[}U,v^])MbI5ɴl JDJqXmq[~ž2i`貤k&Ik.L3qu1"[R Ƙ*a) i}1`,Csk9<eVEO -s4>˲Y|ؽWb\@ĕhþ")?1>:붮Mqzgn}P7-&|jbXb"1X xHF>ԇrK碃]A1/2S3N@@eCP\I4I acysMi2VEMi}gB<fcKUGGf&Q KdD'j\캇?+D{%=iSLF65<dObK  3mmb. ŎIA2>Tf,t`WYRe0#)1T tgp8:rø:tBc $F6@hQ)4pf{&eH& cmv-EG = U`/9
-Y@!V01^mРX׻Cy&"X4Lm>UƤA/1ڄ=zB!ySjZ*+ڬBS=_嘌sst cۮru?e
-TӂVhz S&gS6-"NQ< ?]Xۢz;ȟ M_ri3yIFh2I1dMkcYO$ L-{]lʌR5ZЯ9Qʲ@,-q CB^Q)HRIIb5'#g ? f2v51U=].YsVSI o0y—~VN1
-8 ETi:ח0@; ۠ \~dee-mhr2Ɖ]Ch:Am Na^^a
-D=#Ql
-#{H*mt'LQb
-C!t
-ZeJE3,B@K kK72ڿ} aՙZ`[4wDY;U
-HƎVj|3nꪛe[8 #2}9 }~p<zDCh2풓/ us[vyuW
-a,,:MIlM 6욃Ocq}*+ʹrL҆\y3-Bxhjz
-⍸讉bxׄ ~A_x՛B*M&zoxSRɴW7GO̘ɴԩ9vL9̐׾~sUZkfE9xx<'%
-P+>* kA1A72KS
-endstream
+10802 0 obj
+<< /D [ 10771 0 R /XYZ 81.077 442.057 null ] >>
endobj
10803 0 obj
-<< /Type /Page /Contents 10804 0 R /Resources 10802 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 10771 0 R /XYZ 81.077 431.098 null ] >>
+endobj
+10804 0 obj
+<< /D [ 10771 0 R /XYZ 81.077 420.139 null ] >>
endobj
10805 0 obj
-<< /D [ 10803 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 409.18 null ] >>
endobj
10806 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 398.221 null ] >>
endobj
10807 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 387.263 null ] >>
endobj
10808 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 741.933 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 371.322 null ] >>
endobj
10809 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 730.974 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 360.363 null ] >>
endobj
10810 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 349.405 null ] >>
endobj
10811 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 338.446 null ] >>
endobj
10812 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 327.487 null ] >>
endobj
10813 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 316.528 null ] >>
endobj
10814 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 305.569 null ] >>
endobj
10815 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 660.239 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 294.61 null ] >>
endobj
10816 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 649.28 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 278.67 null ] >>
endobj
10817 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 638.321 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 267.711 null ] >>
endobj
10818 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 627.362 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 256.752 null ] >>
endobj
10819 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 616.403 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 245.793 null ] >>
endobj
10820 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 234.834 null ] >>
endobj
10821 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 223.875 null ] >>
endobj
10822 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 207.935 null ] >>
endobj
10823 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 196.976 null ] >>
endobj
10824 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 186.017 null ] >>
endobj
10825 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 545.669 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 175.058 null ] >>
endobj
10826 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 534.71 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 164.099 null ] >>
endobj
10827 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 153.141 null ] >>
endobj
10828 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 137.2 null ] >>
endobj
10829 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 126.241 null ] >>
endobj
10830 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 115.283 null ] >>
endobj
10831 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 104.324 null ] >>
endobj
10832 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 93.365 null ] >>
endobj
10833 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 457.997 null ] >>
-endobj
-10834 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 10771 0 R /XYZ 81.077 82.406 null ] >>
endobj
-10835 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 436.08 null ] >>
+10770 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10836 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 425.121 null ] >>
+<< /Filter /FlateDecode /Length 2166 >>
+stream
+xڭZM600$os
+K lBd!oߢdQ*g"9LcXdXUQ|uoLxZiRj}w#G|%VeV$
+ƭX~οqo?XJVs%ah/.澸&߱aٴp&sI?ȶfNe`N`BM?oi}xOSW,*pS<uMYK$Wq֊9wm!:ִ'< 8C>y]wM3F ;V갿ߏS_U:~xԯ/OD:XF.Q\6ZJaHSnapKr8B_j՛k}C>>(a^CP*盼zz7!+KS6+Kh+;Ŏݫ3)<SLI9ɴl;JDLqXmq[~ž4i`qʂ5GӤU𳘗 %\.p̸HBҦ5G%1f9KzX
+AZ_LSs@OUc&f|gryY>krJKM"- -#4B@uyW$e5S(nw>'v;uBlSM KL$3q!C@`C}(wx.:2 H:ßwPt,RM2qNbsܟkR%.ү/B <Q,UsF%,um5#ssb4tleNEz4zFh2=a1I98T S!.;R sLA^,e1 B _U>‡>*Y*4Blf$Ň*LbGg[nQGIBuڿS+CҚM>:Rl䣬Ԑ4=qP<~訡.;kW @=!mSEZ u;g\-u-1La ɪ~\YjL*9!OMأ$M!\7>:)દ۬*d1CS@K-HȎEoD)P$A-o)QX9Łnӑz9v i(,E70~Ww?`8f$9$Ǵh>B1e+|MQ;rGWQ4ejA汲l05KK2xl#UGAJ09*R9F|cR)XbQrLESA= %kdb1 k2U=].Yc4ؓA`@/}b6$phL /EA$ځ!xm0#7d5`L+sH,q@ulfwEavة!s4 lEeyT4uەS M 4oKX25X49~ꎫ՞tj8iZ?_p d!MSwwYȗaPxq$c.2VcS˼ 9Y =&{x{e˞oԴBӃjF.4.F4U^ |0n4B>,$}gX*A.J `od[?4p37)õ2iĹ݉z'Bw:BW!P{:و á?JI4AL><MWl72o' v J)3<L|21-Ҽ"҆}o_ӯɃ:*M sO ģVE2vDV uSVW<Ni(#U?Yh׾T ɌKN
+Ȑ_,D>m1K\)@(6 M!4Y8*ƍ5S_\J3-3&B"L9ǪA^.82Ewǻx#.kX95!pWo 9^$iE^B25vhw3N(yj]NS?|43`s=2ӟ#NmsyOb7%
+P+>* kA1A<v~}%K
+endstream
+endobj
+10835 0 obj
+<< /Type /Page /Contents 10836 0 R /Resources 10834 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10517 0 R >>
endobj
10837 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 10835 0 R /XYZ 78.37 808.885 null ] >>
endobj
10838 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 768.832 null ] >>
endobj
10839 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 757.873 null ] >>
endobj
10840 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 741.933 null ] >>
endobj
10841 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 730.974 null ] >>
endobj
10842 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 720.015 null ] >>
endobj
10843 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 709.056 null ] >>
endobj
10844 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 327.487 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 698.097 null ] >>
endobj
10845 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 316.528 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 687.138 null ] >>
endobj
10846 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 305.569 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 676.179 null ] >>
endobj
10847 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 294.61 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 660.239 null ] >>
endobj
10848 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 283.651 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 649.28 null ] >>
endobj
10849 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 267.711 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 638.321 null ] >>
endobj
10850 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 256.752 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 627.362 null ] >>
endobj
10851 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 616.403 null ] >>
endobj
10852 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 605.444 null ] >>
endobj
10853 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 594.486 null ] >>
endobj
10854 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 583.527 null ] >>
endobj
10855 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 572.568 null ] >>
endobj
10856 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 561.609 null ] >>
endobj
10857 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 545.669 null ] >>
endobj
10858 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 164.099 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 534.71 null ] >>
endobj
10859 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 153.141 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 523.751 null ] >>
endobj
10860 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 142.182 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 512.792 null ] >>
endobj
10861 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 131.223 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 501.833 null ] >>
endobj
10862 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 120.264 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 490.874 null ] >>
endobj
10863 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 104.324 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 479.915 null ] >>
endobj
10864 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 468.956 null ] >>
endobj
10865 0 obj
-<< /D [ 10803 0 R /XYZ 81.077 82.406 null ] >>
-endobj
-10802 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 10835 0 R /XYZ 81.077 457.997 null ] >>
endobj
-10868 0 obj
-<< /Filter /FlateDecode /Length 2121 >>
-stream
-xڭZ[o~M̈́s1"vhBM"{ϐҐ#ے Y|2ngdJ ~+gXC9ݬ/(|(љQDQ=ӊDf߯-|׷W Jq3Smܶmݴڵe?/i\զu[׮˪m\{N((^"4Q? /UB 1W(cI" JD+CڟŪ}S9'd˂'8c]V-Ls{fD3"ݼn[  o!2 b<HJp6
--plڏY fEYAk FmyPJ817l
-6VN(4{?@ly>^H&ܿ&\1kzy \%iiX&D!M *p"` EZbr<+m2C<[ZceZɉG! Đ}6mڮ)+K7
-ڳikyn, ,HpnbwV=VA9D (2A88F
-fwMLB77ř{\UA&L": EM[S@[c6gmq_v*~+ϠO\?}7
-Ӈ*y!v?FϗMЩ+dbGCqE2nU2Z}7F#VM :FV. t)H4:fWVeS¬M&f 4$U. :!CDkܠLI`Ja MjS"y%!%ؚj-C aԸ*+L5%CKqe} ('~& Fh|R1j9$A|
-<W)ʔ짚X;d n܋;! bDwS; 0o ~CR *Unof/+ݶW;fFk# e!aywj'x
-gOp\OXYubnش~N,O}[y?os(? Z;ƛ%a4
-ͰCH E(d|p63F  n5D7 nϧna.Y? NpKƟ:tC?qd`fcFH+b~O|
-endstream
+10866 0 obj
+<< /D [ 10835 0 R /XYZ 81.077 447.038 null ] >>
endobj
10867 0 obj
-<< /Type /Page /Contents 10868 0 R /Resources 10866 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 10835 0 R /XYZ 81.077 436.08 null ] >>
+endobj
+10868 0 obj
+<< /D [ 10835 0 R /XYZ 81.077 425.121 null ] >>
endobj
10869 0 obj
-<< /D [ 10867 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 409.18 null ] >>
endobj
10870 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 398.221 null ] >>
endobj
10871 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 387.263 null ] >>
endobj
10872 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 376.304 null ] >>
endobj
10873 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 365.345 null ] >>
endobj
10874 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 720.33 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 354.386 null ] >>
endobj
10875 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 709.371 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 343.427 null ] >>
endobj
10876 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 698.412 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 327.487 null ] >>
endobj
10877 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 687.454 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 316.528 null ] >>
endobj
10878 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 676.495 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 305.569 null ] >>
endobj
10879 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 665.536 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 294.61 null ] >>
endobj
10880 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 654.577 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 283.651 null ] >>
endobj
10881 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 638.952 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 267.711 null ] >>
endobj
10882 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 627.993 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 256.752 null ] >>
endobj
10883 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 617.034 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 245.793 null ] >>
endobj
10884 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 606.075 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 234.834 null ] >>
endobj
10885 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 595.117 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 223.875 null ] >>
endobj
10886 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 584.158 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 212.916 null ] >>
endobj
10887 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 573.199 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 201.957 null ] >>
endobj
10888 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 562.24 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 190.999 null ] >>
endobj
10889 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 546.615 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 175.058 null ] >>
endobj
10890 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 535.656 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 164.099 null ] >>
endobj
10891 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 524.697 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 153.141 null ] >>
endobj
10892 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 513.738 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 142.182 null ] >>
endobj
10893 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 502.78 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 131.223 null ] >>
endobj
10894 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 491.821 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 120.264 null ] >>
endobj
10895 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 480.862 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 104.324 null ] >>
endobj
10896 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 469.903 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 93.365 null ] >>
endobj
10897 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 458.944 null ] >>
-endobj
-10898 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 447.985 null ] >>
+<< /D [ 10835 0 R /XYZ 81.077 82.406 null ] >>
endobj
-10899 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 437.026 null ] >>
+10834 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10900 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 426.067 null ] >>
+<< /Filter /FlateDecode /Length 2120 >>
+stream
+xڭZ[o~M̈́s1"vhBM"{ϐҐ#ے@ҧsx.߹ ,}_w7^i>f}AGɌΌ"V$n6~eJ}{7c0e mM][<6wM64ߺv]Vms{v@A .eayY-b!EKiP,'Z$-V7<!^<AqG罰:na4M5#ň)潥usLX!I+DR*x6Y{i?fy.\eV 3iC)Lв)V [';
+dp/BY\0B<ʭMXGw"]hA a6t<^2;J]l:.tӨgo_} HY 1RiH0 S>>BWM~5qY [ nFgWh2L~_UemormzV>d Dh̚2 Yk !r|
+C<#gsH{t-n2|~pl#͡ٸ eo7E*>Q\o#N&ptcqj։tcqTG)?{V1I
+xUaU6\ I dbI`AuWA#4$04A6nP_$06("4$DJBK±5>Z&&-ZqUVj
+-AKBKa\Y;
+_t Ad80 `6B㓊_!$HW๪OQd?!q^g?t  W1"`ɩc
+ fPr}7{YYM]:ca6PVWxg}w@ q ['Fco~^<w#A B 6-t#tcawݍ7KxwѼA:  nQVGRl4gRCj.XazPSAt27D`0zH,Ou 'Z "K{!"HǹQYZ"!=d]^.{rz2Í:nݼm^E4&:m%dPW4KRfw#NzWdy.us#1*̲ yC#}z^+1)ťL Y5 ZbZ>
+endstream
+endobj
+10899 0 obj
+<< /Type /Page /Contents 10900 0 R /Resources 10898 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10517 0 R >>
endobj
10901 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 415.108 null ] >>
+<< /D [ 10899 0 R /XYZ 78.37 808.885 null ] >>
endobj
10902 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 399.484 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 768.832 null ] >>
endobj
10903 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 388.525 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 757.873 null ] >>
endobj
10904 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 377.566 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 746.914 null ] >>
endobj
10905 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 366.607 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 735.955 null ] >>
endobj
10906 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 355.648 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 720.33 null ] >>
endobj
10907 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 344.689 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 709.371 null ] >>
endobj
10908 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 333.73 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 698.412 null ] >>
endobj
10909 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 322.771 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 687.454 null ] >>
endobj
10910 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 307.147 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 676.495 null ] >>
endobj
10911 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 296.188 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 665.536 null ] >>
endobj
10912 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 285.229 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 654.577 null ] >>
endobj
10913 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 274.27 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 638.952 null ] >>
endobj
10914 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 263.311 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 627.993 null ] >>
endobj
10915 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 252.352 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 617.034 null ] >>
endobj
10916 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 236.727 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 606.075 null ] >>
endobj
10917 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 225.768 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 595.117 null ] >>
endobj
10918 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 214.81 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 584.158 null ] >>
endobj
10919 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 203.851 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 573.199 null ] >>
endobj
10920 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 192.892 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 562.24 null ] >>
endobj
10921 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 181.933 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 546.615 null ] >>
endobj
10922 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 170.974 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 535.656 null ] >>
endobj
10923 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 155.349 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 524.697 null ] >>
endobj
10924 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 144.39 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 513.738 null ] >>
endobj
10925 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 133.431 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 502.78 null ] >>
endobj
10926 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 122.473 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 491.821 null ] >>
endobj
10927 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 111.514 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 480.862 null ] >>
endobj
10928 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 100.555 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 469.903 null ] >>
endobj
10929 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 89.596 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 458.944 null ] >>
endobj
10930 0 obj
-<< /D [ 10867 0 R /XYZ 81.077 78.637 null ] >>
-endobj
-10866 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 10899 0 R /XYZ 81.077 447.985 null ] >>
endobj
-10933 0 obj
-<< /Filter /FlateDecode /Length 1916 >>
-stream
-xڵZnF}W&@%Oi$mѦC/)Zli]~{g)iU]8eA39gf(:3KTxߟxgHg舍&ьPF菧8Z/i7i-l%L}:^rA(.H ]_\e|sqΦWE+;+rK.;Npt:4z *cHPG)GȄ ? G1aa$RrQ:.i,—s^Vҟ~qQU>#h?%~AUƧ&˃m0۔Rp8W&bR/b[,Cʼɫ͛uh.uDXS$gtEamkGvJ}Q6m=C um\\vfEo3% HΔ%upMyM6)I DR#pi {䝃kSxs)]t[UV>@,%PՕѕA%~B
-cpfN.Z]4%Zh[2~,.Rmdtɠ\J.JRo87esoSXaQ'Jeڞ 70BZf5I]tp^璄7Hri~]|PFtHЭTldBiIg(4tU  _(Y<K8fӇ4M>Tu-a.kD:R"/u B逿/Z۝|\NlO7m1=D*By{v,C,{gaGbZ P4$)$F7r=tآ0\+osG (=V݀Ԛ*G!\"WGhH6`" ,O'Ȁ#Á,'5:isc r3njБ} 7'h4K  x~5>#R*el8N4ZGؒphGG$p['q:A%s|.q"tB.P꒠. .c;uI .P21](nڒ-Łڂז("#Ů MJDmV=kK;,2.r.D88; !"0͵ ()EJ*pXMn}['Ae<aϟ< VUyXI'v9bXTgSBZ2uˆY rAq/prە6a6@%?{!0
-2<A+[F:Fm0I@&jAV $\9"ܘ?v_=*lu#Uܻhm/+r]Lh&Й◰\XBy3[&\YL'z5)8'ޠsC%pꑠ[ -`hb9^d髿ޔng-5!9u/t
-VD5AGihcH%ݗ"=v >rDh)j  >n cr%4t
-3*(MJ.[:Li卑 L*h]l & z>'.&T?ajB~d0Pf$XD <0@ڃ IJ,0Ǯ@⺂]^U0ydK<IÈp;& `6?F=%bѤ> }h|wdn=Pz2qPYZ$%=x;>4KZf
-endstream
+10931 0 obj
+<< /D [ 10899 0 R /XYZ 81.077 437.026 null ] >>
endobj
10932 0 obj
-<< /Type /Page /Contents 10933 0 R /Resources 10931 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 10899 0 R /XYZ 81.077 426.067 null ] >>
+endobj
+10933 0 obj
+<< /D [ 10899 0 R /XYZ 81.077 415.108 null ] >>
endobj
10934 0 obj
-<< /D [ 10932 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 399.484 null ] >>
endobj
10935 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 388.525 null ] >>
endobj
10936 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 377.566 null ] >>
endobj
10937 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 366.607 null ] >>
endobj
10938 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 355.648 null ] >>
endobj
10939 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 720.015 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 344.689 null ] >>
endobj
10940 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 709.056 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 333.73 null ] >>
endobj
10941 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 322.771 null ] >>
endobj
10942 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 307.147 null ] >>
endobj
10943 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 296.188 null ] >>
endobj
10944 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 285.229 null ] >>
endobj
10945 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 274.27 null ] >>
endobj
10946 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 638.321 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 263.311 null ] >>
endobj
10947 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 627.362 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 252.352 null ] >>
endobj
10948 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 616.403 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 236.727 null ] >>
endobj
10949 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 605.444 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 225.768 null ] >>
endobj
10950 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 214.81 null ] >>
endobj
10951 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 203.851 null ] >>
endobj
10952 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 192.892 null ] >>
endobj
10953 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 556.627 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 181.933 null ] >>
endobj
10954 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 545.669 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 170.974 null ] >>
endobj
10955 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 534.71 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 155.349 null ] >>
endobj
10956 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 523.751 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 144.39 null ] >>
endobj
10957 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 512.792 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 133.431 null ] >>
endobj
10958 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 501.833 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 122.473 null ] >>
endobj
10959 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 111.514 null ] >>
endobj
10960 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 100.555 null ] >>
endobj
10961 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 463.975 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 89.596 null ] >>
endobj
10962 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 453.016 null ] >>
-endobj
-10963 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 442.057 null ] >>
+<< /D [ 10899 0 R /XYZ 81.077 78.637 null ] >>
endobj
-10964 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 431.098 null ] >>
+10898 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
10965 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 420.139 null ] >>
+<< /Filter /FlateDecode /Length 1917 >>
+stream
+xڵZnF}W&@%Oi$mѦC/)Zli]~{g)iU]8eA39gf(:3KTxߟxgHg舍&ьPF菧rZ/i7i-l%L}:^rA(.p ]_\e|sqΦWE+;+rK.;Npt:4z *cHPG)GȄ ? G1aa$RrQ:.i,—s^Vҟ~qQU>#h?%|AUƧ&˃m0۔Rp8W&bR/b[,Cʼɫ͛uh.uDXS$gt\EamkG6J}Q6m=C umD,Υ.7`iV8ShȀ_LY"M!_׹7ܔWy1iIT/?l"$ΠhK$12.<fM96G; \RԴ\bٔڏ)45螊-8~B
+cpfN.Z]4%ZBH\uяEMP.%h %qQrQhBZ7R297FKC(C%U
+jomO훀KQ! rc3 vˤ.:8zYNsI›VSK.?T(Q#ARϓ %1.v¢/AIWQYu0:bi,|n6m1}XLo*ۄOCXIqњ&NĮC2\*uo,r]LN,8Οe݉V$/n^~j]C_"Gb?IJw>A,Foydp,
+eLCB1Bbot-OW:I-ĵ( 6a`{CYn HYrJׯ$TѐXmEYOGYN Iktƾ=@0fcWԠ#1` MRiG?eMOꈔp[$)$6$7Z'V nNР$}k#dP1$臩KA N]c TrpCEE8J:A'h$iKjq %<tPzFQ`UO)K̪ܳ ,Ht8AEDHF:psm>
+`Jm*2=AVSm)?[vP!O'<<OUVݿ?`Y9A֫ |ݲaloqP%0k\'v mXo G rpg9 OHh O8&J['h4p刋DqcfX<mb,ʳ2Tqu=(u1@g_ra Q4n pnf1դO㜀{B :*ƩG/֫n7/(zzS.឵ؿZ ܦO ܾ)Xr5?
+NKI;kpGs_4pvZb9llu :
+FL!OX?U2Jq(3Lku
+ ,}w c{`pAbUgqcW`p]An.*{<k%ր$a5mFU0LvhR f>` ;B27_s(n8,Ggv Y^-Z
+endstream
+endobj
+10964 0 obj
+<< /Type /Page /Contents 10965 0 R /Resources 10963 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10517 0 R >>
endobj
10966 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 10964 0 R /XYZ 78.37 808.885 null ] >>
endobj
10967 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 768.832 null ] >>
endobj
10968 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 757.873 null ] >>
endobj
10969 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 371.322 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 746.914 null ] >>
endobj
10970 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 360.363 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 735.955 null ] >>
endobj
10971 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 349.405 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 720.015 null ] >>
endobj
10972 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 338.446 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 709.056 null ] >>
endobj
10973 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 327.487 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 698.097 null ] >>
endobj
10974 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 316.528 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 687.138 null ] >>
endobj
10975 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 305.569 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 676.179 null ] >>
endobj
10976 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 289.629 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 665.22 null ] >>
endobj
10977 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 278.67 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 654.261 null ] >>
endobj
10978 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 267.711 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 638.321 null ] >>
endobj
10979 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 256.752 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 627.362 null ] >>
endobj
10980 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 616.403 null ] >>
endobj
10981 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 605.444 null ] >>
endobj
10982 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 594.486 null ] >>
endobj
10983 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 583.527 null ] >>
endobj
10984 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 572.568 null ] >>
endobj
10985 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 556.627 null ] >>
endobj
10986 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 545.669 null ] >>
endobj
10987 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 164.099 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 534.71 null ] >>
endobj
10988 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 153.141 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 523.751 null ] >>
endobj
10989 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 142.182 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 512.792 null ] >>
endobj
10990 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 131.223 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 501.833 null ] >>
endobj
10991 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 120.264 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 490.874 null ] >>
endobj
10992 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 109.305 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 479.915 null ] >>
endobj
10993 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 463.975 null ] >>
endobj
10994 0 obj
-<< /D [ 10932 0 R /XYZ 81.077 82.406 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 453.016 null ] >>
endobj
-10931 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-10997 0 obj
-<< /Filter /FlateDecode /Length 2019 >>
-stream
-xڽZMoHW6A26a.v-6a $*Y')٥5$l!,鱊UUu/|銏tOWWo?:,xby{%G|!2+YfW. ςʧ`!9s*`lݮrsJwWL:Lp]4R>O]j+yei<mTr0j5~Ҋi'IVZ[Tc߶]߿ݗum#bZ⴨V1-mz5.oJ/z&35T`A VCh}/-93uL% E5>k!˟[1)Mt\K{|-͚ddwe莟LjB)9ls뻪:ne&ooM^/>uϖɶgh[J?a
-Wׂ٘3 &\ͼ̛UΦe y0E@´yhMBTrЊ7m~)GWn=>W4|KpMV|(jԬiv_ZK]kI&tl@hi >c_zxv;僚6ezinh!<uC ԍ`rT7l0Y6|Cj;jGu}OWsX^bUsK#m Ϋ8RH$9c6\H%c i-(B T3hT,Jc5I~iɫhMBNIaC
-BUG
-F)N3g&ےB|攪xǟ EH\Y5BEH«W} )]8^@3Fh#}
-O>)ₑgqAj;iF~`f`џ`E\F[rR-|'chBZm]>D,"Op՘L<2S g0PjyMYT}OBhKt" >6f4_ȠcFhs7B1ϬD^g&ӤTC04rM
-=G~[TER.Ű&r>ļ_#r YG'p pw(`$mYIch'4={:D~PVd![5,;ɤ qZGЇ
-endstream
+10995 0 obj
+<< /D [ 10964 0 R /XYZ 81.077 442.057 null ] >>
endobj
10996 0 obj
-<< /Type /Page /Contents 10997 0 R /Resources 10995 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 10964 0 R /XYZ 81.077 431.098 null ] >>
+endobj
+10997 0 obj
+<< /D [ 10964 0 R /XYZ 81.077 420.139 null ] >>
endobj
10998 0 obj
-<< /D [ 10996 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 409.18 null ] >>
endobj
10999 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 398.221 null ] >>
endobj
11000 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 387.263 null ] >>
endobj
11001 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 371.322 null ] >>
endobj
11002 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 360.363 null ] >>
endobj
11003 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 349.405 null ] >>
endobj
11004 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 338.446 null ] >>
endobj
11005 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 698.097 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 327.487 null ] >>
endobj
11006 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 687.138 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 316.528 null ] >>
endobj
11007 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 305.569 null ] >>
endobj
11008 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 289.629 null ] >>
endobj
11009 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 278.67 null ] >>
endobj
11010 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 267.711 null ] >>
endobj
11011 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 256.752 null ] >>
endobj
11012 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 621.385 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 245.793 null ] >>
endobj
11013 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 610.426 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 234.834 null ] >>
endobj
11014 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 599.467 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 223.875 null ] >>
endobj
11015 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 212.916 null ] >>
endobj
11016 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 201.957 null ] >>
endobj
11017 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 190.999 null ] >>
endobj
11018 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 175.058 null ] >>
endobj
11019 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 164.099 null ] >>
endobj
11020 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 528.732 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 153.141 null ] >>
endobj
11021 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 142.182 null ] >>
endobj
11022 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 131.223 null ] >>
endobj
11023 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 120.264 null ] >>
endobj
11024 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 109.305 null ] >>
endobj
11025 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 93.365 null ] >>
endobj
11026 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 457.997 null ] >>
-endobj
-11027 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 447.038 null ] >>
+<< /D [ 10964 0 R /XYZ 81.077 82.406 null ] >>
endobj
-11028 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 436.08 null ] >>
+10963 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
11029 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 425.121 null ] >>
+<< /Filter /FlateDecode /Length 2022 >>
+stream
+xڽMoHMvt9el\F, ZmPTN)~Ģ9$%buu=䫻_}+3;ՇۏN4Pr#2+YnW>I?Wۏ֯UI,3<VH*m?gOtob% gYR_ '-OiQV$7L;I"ڼlCv!~Peˮ˻>oԯ}{(kɺ̫â<ZaQaտv_Ӳi=쳶L ^Lr%FC0YK2o}u(-y
+*/7a f4!52-[hu*t $\2k<dHk^MweUg[2ҌP"V< iHMƃq9sMBGMUozlg3&@)OT 8{h7sʐ2$2$9 nj
+2 ˇiMR*
+͚͐Շbд7U
+ݐpݐd&'aR1-ϚUl7JR\Xm'vt^||5Pj4<RI<mH=dt;/b<%&d$:-HrP΄HL@z!I铕]d.NIÊ*&SG9}]]m
+I^
+endstream
+endobj
+11028 0 obj
+<< /Type /Page /Contents 11029 0 R /Resources 11027 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10517 0 R >>
endobj
11030 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 11028 0 R /XYZ 78.37 808.885 null ] >>
endobj
11031 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 768.832 null ] >>
endobj
11032 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 757.873 null ] >>
endobj
11033 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 746.914 null ] >>
endobj
11034 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 735.955 null ] >>
endobj
11035 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 724.996 null ] >>
endobj
11036 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 343.427 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 714.037 null ] >>
endobj
11037 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 332.468 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 698.097 null ] >>
endobj
11038 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 316.528 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 687.138 null ] >>
endobj
11039 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 305.569 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 676.179 null ] >>
endobj
11040 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 294.61 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 665.22 null ] >>
endobj
11041 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 283.651 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 654.261 null ] >>
endobj
11042 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 272.692 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 643.302 null ] >>
endobj
11043 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 261.733 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 632.344 null ] >>
endobj
11044 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 621.385 null ] >>
endobj
11045 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 610.426 null ] >>
endobj
11046 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 599.467 null ] >>
endobj
11047 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 583.527 null ] >>
endobj
11048 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 572.568 null ] >>
endobj
11049 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 190.999 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 561.609 null ] >>
endobj
11050 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 180.04 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 550.65 null ] >>
endobj
11051 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 169.081 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 539.691 null ] >>
endobj
11052 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 153.141 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 528.732 null ] >>
endobj
11053 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 142.182 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 517.773 null ] >>
endobj
11054 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 131.223 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 506.814 null ] >>
endobj
11055 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 120.264 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 490.874 null ] >>
endobj
11056 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 109.305 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 479.915 null ] >>
endobj
11057 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 98.346 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 468.956 null ] >>
endobj
11058 0 obj
-<< /D [ 10996 0 R /XYZ 81.077 87.387 null ] >>
-endobj
-10995 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 11028 0 R /XYZ 81.077 457.997 null ] >>
endobj
-11061 0 obj
-<< /Filter /FlateDecode /Length 2177 >>
-stream
-xڭZߏ6~߿o (\
-+K$v %&T}Y'473ߐ]tEDϟ\_}c&V b%b\ͲUw~c Y*'Fk`F1,ʄ|zֵ}zU߾T\}ix*f߻MS5˲ʭyy=粢Q\\Oh&E.)d~wvk[7nY7^ͺWolU {1y:| .˰.[Wgu-*>BaW2aߏ+p+_OIl{۴{np9AU[w_<ZO{ϣOڣȉ"}[RvH|Ҟ1cOP S+kMPnU]]Bm4 aP?
-cFe64$>2feUwyEKM b۶mj;/Q"W.qw+ Lg~aPpSK=NO!cq?֛8iX5443k2$8Qg;z;"AIV)YKB!t*?4t.p r^~/7hr*ith^N7&>wNe
- LLb %\)č2!
-ecjƐCsBَ1V9Ni'KTN N)rjsTy0BQ 4Gv^Uƺmm
-x%D9*~zF ;1J(O+@sUT7A*AҒd&HkAQXݍm EqpQ$˲&x""^Lǃi*/Kkt1Πo BӢ뤒Yv#Fu"<@t:
-3oe'(÷
-(6 3H[rp4)FԌ<;JmC]8Цw=Z*ߗf8͐FY+WA sX9LC,0 Z$N$k_am5SyaڠkKIZƧ DD@]e%p
- T :J #.MH |:çLs<vn wP_FG] #
-ӥr~PZ D l o|R?~8Ʊ
-3cdi+WP7Ot~W{Sv Yvnw%"Wd <C@,3óYd9̺g/1WZ2?{;{
-endstream
+11059 0 obj
+<< /D [ 11028 0 R /XYZ 81.077 447.038 null ] >>
endobj
11060 0 obj
-<< /Type /Page /Contents 11061 0 R /Resources 11059 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 10545 0 R >>
+<< /D [ 11028 0 R /XYZ 81.077 436.08 null ] >>
+endobj
+11061 0 obj
+<< /D [ 11028 0 R /XYZ 81.077 425.121 null ] >>
endobj
11062 0 obj
-<< /D [ 11060 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 409.18 null ] >>
endobj
11063 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 398.221 null ] >>
endobj
11064 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 387.263 null ] >>
endobj
11065 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 376.304 null ] >>
endobj
11066 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 365.345 null ] >>
endobj
11067 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 354.386 null ] >>
endobj
11068 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 343.427 null ] >>
endobj
11069 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 332.468 null ] >>
endobj
11070 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 316.528 null ] >>
endobj
11071 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 676.179 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 305.569 null ] >>
endobj
11072 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 665.22 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 294.61 null ] >>
endobj
11073 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 654.261 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 283.651 null ] >>
endobj
11074 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 643.302 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 272.692 null ] >>
endobj
11075 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 261.733 null ] >>
endobj
11076 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 621.385 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 245.793 null ] >>
endobj
11077 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 610.426 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 234.834 null ] >>
endobj
11078 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 594.486 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 223.875 null ] >>
endobj
11079 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 583.527 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 212.916 null ] >>
endobj
11080 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 572.568 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 201.957 null ] >>
endobj
11081 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 561.609 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 190.999 null ] >>
endobj
11082 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 550.65 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 180.04 null ] >>
endobj
11083 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 539.691 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 169.081 null ] >>
endobj
11084 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 528.732 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 153.141 null ] >>
endobj
11085 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 517.773 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 142.182 null ] >>
endobj
11086 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 506.814 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 131.223 null ] >>
endobj
11087 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 490.874 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 120.264 null ] >>
endobj
11088 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 479.915 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 109.305 null ] >>
endobj
11089 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 468.956 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 98.346 null ] >>
endobj
11090 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 457.997 null ] >>
+<< /D [ 11028 0 R /XYZ 81.077 87.387 null ] >>
endobj
-11091 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 447.038 null ] >>
-endobj
-11092 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 436.08 null ] >>
+11027 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
11093 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 420.139 null ] >>
+<< /Filter /FlateDecode /Length 2183 >>
+stream
+xڭZmoF_ov_)P\-m]7͒Ғm>XÇ3;3]tEODϟ\_}+Ieo<DWle5̬fjޭs}w}v+KŽ2X
+ zW߭K,}S7աi7UQ_eo}?{#\V0ʣ2# m[8¤e9%LnjCz庩uOESuqKq]1~nIE^7#ve~Z­lNjj_TutWkHbg>l6}ϽOګDroG׭s);C$y>i9XTB*ex&CXί}.vj~~$@MVwU[ @]ܖvgYWeMоZtW* ]Pm;LI}U͡n"/}Kg!r莢&`c*}uC/gPD^94F+l0) 7:Mg?K+RȈ ՆZbq4<}(70ph!, g+h>ib5Gor;"AIV),]JO[
+I Y盆.!0Q)KOM*htlANN;C^G 2\p&CA 6}Lx6BuO1d6A$h:A9ƐPz}),*mS 2e )ETX z2OV(9ʒcH ΋67H[hER>FńO4ꦅ!i,"FqCT4Z(-qQZ+ʄǢ<n~QJ+U!eM,kH K ay٬x0-@Z@0ZSi٣뤒X5:':t;ۼ9e
+3v7+ϝ z-UKTI'm7mi xAM8b9%0 GG5.Hc49KQhܹW~
+!6eS/R5ivOe翅3=`K^73i_̣pEƉ}*Y0mص $-AӅq"PUV럏
+endstream
+endobj
+11092 0 obj
+<< /Type /Page /Contents 11093 0 R /Resources 11091 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11155 0 R >>
endobj
11094 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 409.18 null ] >>
+<< /D [ 11092 0 R /XYZ 78.37 808.885 null ] >>
endobj
11095 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 398.221 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 768.832 null ] >>
endobj
11096 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 387.263 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 757.873 null ] >>
endobj
11097 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 376.304 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 746.914 null ] >>
endobj
11098 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 365.345 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 735.955 null ] >>
endobj
11099 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 354.386 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 724.996 null ] >>
endobj
11100 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 338.446 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 714.037 null ] >>
endobj
11101 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 327.487 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 703.078 null ] >>
endobj
11102 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 316.528 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 692.119 null ] >>
endobj
11103 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 305.569 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 676.179 null ] >>
endobj
11104 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 294.61 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 665.22 null ] >>
endobj
11105 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 283.651 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 654.261 null ] >>
endobj
11106 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 267.711 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 643.302 null ] >>
endobj
11107 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 256.752 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 632.344 null ] >>
endobj
11108 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 245.793 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 621.385 null ] >>
endobj
11109 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 234.834 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 610.426 null ] >>
endobj
11110 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 223.875 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 594.486 null ] >>
endobj
11111 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 212.916 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 583.527 null ] >>
endobj
11112 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 201.957 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 572.568 null ] >>
endobj
11113 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 186.017 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 561.609 null ] >>
endobj
11114 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 175.058 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 550.65 null ] >>
endobj
11115 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 164.099 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 539.691 null ] >>
endobj
11116 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 153.141 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 528.732 null ] >>
endobj
11117 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 142.182 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 517.773 null ] >>
endobj
11118 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 131.223 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 506.814 null ] >>
endobj
11119 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 120.264 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 490.874 null ] >>
endobj
11120 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 104.324 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 479.915 null ] >>
endobj
11121 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 93.365 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 468.956 null ] >>
endobj
11122 0 obj
-<< /D [ 11060 0 R /XYZ 81.077 82.406 null ] >>
-endobj
-11059 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 11092 0 R /XYZ 81.077 457.997 null ] >>
endobj
-11125 0 obj
-<< /Filter /FlateDecode /Length 1696 >>
-stream
-xڵMoF: M9.=P4AKE" oďv4j 5eY36<P,bqq}_X'p`/.v?p.uw-,8ca.$ann W'j$p1}<$c#pٴa+}BtyݗePvUݥ]}_dĄE Og_f?C۷4/ҫ";L01UWrTS9H1[XV -vLC*C섶1}ͺq!¡hκLn^emzm#e1\K모%Yq$KF
-t2G?q 3򮹹,7eYZi}f?} I}\1oZZD49o&1oZZDt4%vED4uG?_s4pC ; <46+/*zy1lֱDXZ@t?"؟_!/*򛲪 >$fG)>+~Y>VI'좕wr:ɹEK%Dd߭ru6]..7d#jٝ/\d6uiXv"/3S¿^J+]6C>ui҃ժrmH.[GZv5?I[esWl`
-"C<0)'}g9tM>*I)SMN&G܌9ڄ4!Ip X9?=os9@ KC8N9< d!lB^97~9LχL6?6:?-%ȡ [Д) V8~Wb eYeB .!eODശsYȮU6+)vI@ FYDxl#) z}~",dڀNrDk+zlu daJZ=eBh{2B80ISl jxf5ʹ(qZH̔9-#F8EsA'9Dl2!?VUS㴾'/"Q`T8]C K{ m`ENBp)qrJ
-U
-endstream
+11123 0 obj
+<< /D [ 11092 0 R /XYZ 81.077 447.038 null ] >>
endobj
11124 0 obj
-<< /Type /Page /Contents 11125 0 R /Resources 11123 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R >>
+<< /D [ 11092 0 R /XYZ 81.077 436.08 null ] >>
+endobj
+11125 0 obj
+<< /D [ 11092 0 R /XYZ 81.077 420.139 null ] >>
endobj
11126 0 obj
-<< /D [ 11124 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 409.18 null ] >>
endobj
11127 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 768.832 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 398.221 null ] >>
endobj
11128 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 757.873 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 387.263 null ] >>
endobj
11129 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 746.914 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 376.304 null ] >>
endobj
11130 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 735.955 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 365.345 null ] >>
endobj
11131 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 724.996 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 354.386 null ] >>
endobj
11132 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 714.037 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 338.446 null ] >>
endobj
11133 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 703.078 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 327.487 null ] >>
endobj
11134 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 692.119 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 316.528 null ] >>
endobj
11135 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 681.16 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 305.569 null ] >>
endobj
11136 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 670.202 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 294.61 null ] >>
endobj
11137 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 659.243 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 283.651 null ] >>
endobj
11138 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 648.284 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 267.711 null ] >>
endobj
11139 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 632.344 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 256.752 null ] >>
endobj
11140 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 621.385 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 245.793 null ] >>
endobj
11141 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 610.426 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 234.834 null ] >>
endobj
11142 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 599.467 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 223.875 null ] >>
endobj
11143 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 588.508 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 212.916 null ] >>
endobj
11144 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 577.549 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 201.957 null ] >>
endobj
11145 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 566.59 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 186.017 null ] >>
endobj
11146 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 555.631 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 175.058 null ] >>
endobj
11147 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 544.672 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 164.099 null ] >>
endobj
11148 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 533.713 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 153.141 null ] >>
endobj
11149 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 522.754 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 142.182 null ] >>
endobj
11150 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 511.796 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 131.223 null ] >>
endobj
11151 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 500.837 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 120.264 null ] >>
endobj
11152 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 484.896 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 104.324 null ] >>
endobj
11153 0 obj
-<< /D [ 11124 0 R /XYZ 81.077 473.938 null ] >>
+<< /D [ 11092 0 R /XYZ 81.077 93.365 null ] >>
endobj
11154 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 462.979 null ] >>
+<< /D [ 11092 0 R /XYZ 82.402 82.406 null ] >>
endobj
-11155 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 452.02 null ] >>
+11091 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-11156 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 441.061 null ] >>
+11158 0 obj
+<< /Filter /FlateDecode /Length 1666 >>
+stream
+xڽMoF: MdNh9Ma"LIqw3FhK3\μ/WbqN;x^:9=;y! E.Z]Ob!"IN.v?Bϳ_N+9R tAnt'4Ha)B4Aȟ"6yǗ~^ tFiNXeBψirnk1<t6VPio1߿?/?U]^~?:#IK NiҒ\ s^p.3P,O-`lǧ{F?? +f,myj=wcnd+(R/mvKv
+ERX)|!7Mry9`|w[M]~F&)x 7)0:Uu)xY`|Zev(]J0Y*tR5řo23I,>sR",BB9]uwMӼYYeC>>4?cc9+J N
+*y
+gS
+Jp4([-$"UHɫa k"L:NGMD
+g׼nwXbJC{ }78YH^ xfZ&inLazcuմSeyJ]~DfDe5`-sk5AU/6jHM< hoVUqw>,!mųXb7^[aI,m]5>|p>Grg/w(MW^]{l&h.%7~=ʮ+Ò:$=,dz: +&f_0 Wwr?ld
+ 'Z[^&@*q+~1΁t7dg#c-(ڃCc@!3x,CAf*FGCWOcB* b| 5J</H'dR
+42r ~tyf*FR'(ό`ԼhgD`lȚg .: Y.ͳ#rX۶|4e`S<HڢTVmg_|D۰%YO]؉[ͳX'25Xpȯ7'1_
+s@FBYO;^p+2
+ 2CcLi ¤fixލ_W*}N+R2<+FDE44Ut "= }&Xt,:&<z1L!68E=ފثqb5aG&%D3&(@"ofyavU_qL,rHX x_6п3PȥY x,Xu9
+'O/>(di9PY$8H'@=Fk8z3GsJSF;ם nRGEJCRKA66YIj̔Ԍ ǐR:0ȡ[ %uhȥ[!%uh63fWfp)p&uNq K`!r-2~g'~0
+endstream
endobj
11157 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 430.102 null ] >>
-endobj
-11158 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 419.143 null ] >>
+<< /Type /Page /Contents 11158 0 R /Resources 11156 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11155 0 R >>
endobj
11159 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 408.184 null ] >>
+<< /D [ 11157 0 R /XYZ 78.37 808.885 null ] >>
endobj
11160 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 397.225 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 768.832 null ] >>
endobj
11161 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 386.266 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 757.873 null ] >>
endobj
11162 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 375.307 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 746.914 null ] >>
endobj
11163 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 364.349 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 735.955 null ] >>
endobj
11164 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 353.39 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 724.996 null ] >>
endobj
11165 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 337.449 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 714.037 null ] >>
endobj
11166 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 326.49 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 703.078 null ] >>
endobj
11167 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 315.532 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 692.119 null ] >>
endobj
11168 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 304.573 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 681.16 null ] >>
endobj
11169 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 293.614 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 670.202 null ] >>
endobj
11170 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 282.655 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 659.243 null ] >>
endobj
11171 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 271.696 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 648.284 null ] >>
endobj
11172 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 260.737 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 632.344 null ] >>
endobj
11173 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 249.778 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 621.385 null ] >>
endobj
11174 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 238.819 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 610.426 null ] >>
endobj
11175 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 227.86 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 599.467 null ] >>
endobj
11176 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 216.901 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 588.508 null ] >>
endobj
11177 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 205.943 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 577.549 null ] >>
endobj
11178 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 194.984 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 566.59 null ] >>
endobj
11179 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 184.025 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 555.631 null ] >>
endobj
11180 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 168.085 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 544.672 null ] >>
endobj
11181 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 157.126 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 533.713 null ] >>
endobj
11182 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 146.167 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 522.754 null ] >>
endobj
11183 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 135.208 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 511.796 null ] >>
endobj
11184 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 124.249 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 500.837 null ] >>
endobj
11185 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 113.29 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 484.896 null ] >>
endobj
11186 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 102.331 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 473.938 null ] >>
endobj
11187 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 91.372 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 462.979 null ] >>
endobj
11188 0 obj
-<< /D [ 11124 0 R /XYZ 82.402 80.413 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 452.02 null ] >>
endobj
-11123 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+11189 0 obj
+<< /D [ 11157 0 R /XYZ 82.402 441.061 null ] >>
endobj
-11192 0 obj
-<< /Filter /FlateDecode /Length 1906 >>
-stream
-xڽKoF5;9
-ƭ]nf+?[fk90Ƣeyݬbs09w gKsXղm_+C*0萣9n1ݶ>nOo`dg=LIdB1g NB7o6U^urnyeWn>_;nNsɬ7kN _mI7%p 4֏H?\M}B4116.OJ1',ŬTi0җm}60èiuD(_ľm\bKph/.*Uߴ 8aLWڐ6.Q*˂4G i똈4-!|إbX:m_l.)u_Tbr7U59qZacrЧ/ĆtiZ;&#<u#zr͸,TxJm1_f=}ʐ z]!>*d8I!)uUֱ=R!!"d6^2mMgj}8+%:zL &ܘbLq Rn]gvsLJGw، 򨏢Ly
-+Idd U+01!!Ҧj5/ D&(#,S`dMg*{BF0u,K r~3<F]cԅHFB3-ŔO.jrݷkE}-+W
-#J Mg 3Wɱ2R#Q>ydWǦ`"d7:DA3mAH#5hr|tt)fMMk;46uV$8yʤS\`.ii`?l:jicRH&kV!1q.o8sLJ%"Zi*`ki+si
-oOk
- <?$_)qZ_ixC
-endstream
+11190 0 obj
+<< /D [ 11157 0 R /XYZ 82.402 430.102 null ] >>
endobj
11191 0 obj
-<< /Type /Page /Contents 11192 0 R /Resources 11190 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R >>
+<< /D [ 11157 0 R /XYZ 82.402 419.143 null ] >>
+endobj
+11192 0 obj
+<< /D [ 11157 0 R /XYZ 82.402 408.184 null ] >>
endobj
11193 0 obj
-<< /D [ 11191 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 397.225 null ] >>
endobj
11194 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 768.832 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 386.266 null ] >>
endobj
11195 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 757.873 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 375.307 null ] >>
endobj
11196 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 746.914 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 364.349 null ] >>
endobj
11197 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 735.955 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 353.39 null ] >>
endobj
11198 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 721.415 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 337.449 null ] >>
endobj
11199 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 710.456 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 326.49 null ] >>
endobj
11200 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 699.497 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 315.532 null ] >>
endobj
11201 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 688.538 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 304.573 null ] >>
endobj
11202 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 677.58 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 293.614 null ] >>
endobj
11203 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 666.621 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 282.655 null ] >>
endobj
11204 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 655.662 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 271.696 null ] >>
endobj
11205 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 644.703 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 260.737 null ] >>
endobj
11206 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 633.744 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 249.778 null ] >>
endobj
11207 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 622.785 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 238.819 null ] >>
endobj
11208 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 611.826 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 227.86 null ] >>
endobj
11209 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 600.867 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 216.901 null ] >>
endobj
11210 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 589.908 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 205.943 null ] >>
endobj
11211 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 578.949 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 194.984 null ] >>
endobj
11212 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 567.991 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 184.025 null ] >>
endobj
11213 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 557.032 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 168.085 null ] >>
endobj
11214 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 546.073 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 157.126 null ] >>
endobj
11215 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 535.114 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 146.167 null ] >>
endobj
11216 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 524.155 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 135.208 null ] >>
endobj
11217 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 513.196 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 124.249 null ] >>
endobj
11218 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 502.237 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 113.29 null ] >>
endobj
11219 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 487.697 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 102.331 null ] >>
endobj
11220 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 476.738 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 91.372 null ] >>
endobj
11221 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 465.779 null ] >>
+<< /D [ 11157 0 R /XYZ 82.402 80.413 null ] >>
endobj
-11222 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 454.821 null ] >>
-endobj
-11223 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 443.862 null ] >>
+11156 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
11224 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 432.903 null ] >>
+<< /Filter /FlateDecode /Length 1914 >>
+stream
+xڽKoF5;MqOMaP"BH w(YvX'[f泛++_./^jwB?31sy+fƍ]nf?[gycôYS| eP]ÐG)8\Fw4B]m>lW˶nYR C!wwէ^.܇mYso FvO:&<`J)l\(f42ns A(զji^ Yrxشt]Ý|}/tϹdsG _ƍJ{ҒJp$ 48`/a
+9B P ݙt$S q 2iLm0x[\ ı S4q0)Fp?uβIiI1A&d8X>ΔM Oˢ5Phxө L~I*ϔ#!g-q  rLPjbZth
+a<S!ls!g\KcȾzzإ?H dY)  l}Xr>Ǚ7-yόpK
+2&EU~Ғ $KJd U 8M[\Z͋C>ea
+\AS`PLe FoǨK4F]dx)4sPLIYEغZw]ݢ>oe=JHn a;IL
+yr+{dl! ~~(9:{# MmSHkMޜ%L<3/qGO'4q>ݴ=ĬiimbS<M2L"GsIO'ș!0wI1MLc0YĹtq,Jk%"z7Thi+@YO '8=bp$f䈡dM0=-&K+($'zKPKfHe)zGvu(<t(ӞF&ޏE 8E=W~eO9
+endstream
+endobj
+11223 0 obj
+<< /Type /Page /Contents 11224 0 R /Resources 11222 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11155 0 R >>
endobj
11225 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 421.944 null ] >>
+<< /D [ 11223 0 R /XYZ 78.37 808.885 null ] >>
endobj
11226 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 410.985 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 768.832 null ] >>
endobj
11227 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 400.026 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 757.873 null ] >>
endobj
11228 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 389.067 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 746.914 null ] >>
endobj
11229 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 378.108 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 735.955 null ] >>
endobj
11230 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 367.149 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 721.415 null ] >>
endobj
11231 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 356.19 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 710.456 null ] >>
endobj
11232 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 345.232 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 699.497 null ] >>
endobj
11233 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 334.273 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 688.538 null ] >>
endobj
11234 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 323.314 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 677.58 null ] >>
endobj
11235 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 312.355 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 666.621 null ] >>
endobj
11236 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 301.396 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 655.662 null ] >>
endobj
11237 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 290.437 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 644.703 null ] >>
endobj
11238 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 279.478 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 633.744 null ] >>
endobj
11239 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 264.938 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 622.785 null ] >>
endobj
11240 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 253.979 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 611.826 null ] >>
endobj
11241 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 243.021 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 600.867 null ] >>
endobj
11242 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 232.062 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 589.908 null ] >>
endobj
11243 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 221.103 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 578.949 null ] >>
endobj
11244 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 210.144 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 567.991 null ] >>
endobj
11245 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 199.185 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 557.032 null ] >>
endobj
11246 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 188.226 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 546.073 null ] >>
endobj
11247 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 177.267 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 535.114 null ] >>
endobj
11248 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 166.308 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 524.155 null ] >>
endobj
11249 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 155.349 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 513.196 null ] >>
endobj
11250 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 144.39 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 502.237 null ] >>
endobj
11251 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 133.431 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 487.697 null ] >>
endobj
11252 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 122.473 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 476.738 null ] >>
endobj
11253 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 111.514 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 465.779 null ] >>
endobj
11254 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 100.555 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 454.821 null ] >>
endobj
11255 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 89.596 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 443.862 null ] >>
endobj
11256 0 obj
-<< /D [ 11191 0 R /XYZ 82.402 78.637 null ] >>
-endobj
-11190 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /D [ 11223 0 R /XYZ 82.402 432.903 null ] >>
endobj
-11259 0 obj
-<< /Filter /FlateDecode /Length 1766 >>
-stream
-xڭ]o6+|9toɮ!Ud:CEGَIfi"cyCQdv=#g/췋7s>`4lv<KdFg,WfϜb.23 F)C5%#'Żwp}۶m3Mmݍ-~*WwǪkkb?hZ P| Z@)p&ctpn
-܅YpFIcyA04P-/Vv?X+I?%qK֗.0ٰsȩ„e\`<a94)Gk]}Os`nF>O1v73~<,-%)}sP~*VuzxEe$p{e1OKⶨ⪶i00
-g'?w?H~S#(hHqh䱝 ht$/u8L0A pHfXjbđ픤Y*_@'84vQmdC:=őh.k'W@ ő8qMHBI@v:ڗ}QT*N`;)Q@Cr$i} H %8f<I03piڦ, JǑ7nMpc@ɏ&wK]9mR<i Bzqz#yz|8F+ kjlH R’ z5f};w N
-(ǒ雁 F*qDȶZg#qzBhL$8P)cIZ2`]<%p)3MQ'0ך Re$w/@R/#yvj7(˔nL@;S.,T=yjfӽ56^뛹+e02QSjLNInv"d 909[~_A<Fp@ D#'Ϸ%7eoxr=og 7͙X:rDcđ8y zQ+𳜹Oc gc5K8)p3O)A
-endstream
+11257 0 obj
+<< /D [ 11223 0 R /XYZ 82.402 421.944 null ] >>
endobj
11258 0 obj
-<< /Type /Page /Contents 11259 0 R /Resources 11257 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R >>
+<< /D [ 11223 0 R /XYZ 82.402 410.985 null ] >>
+endobj
+11259 0 obj
+<< /D [ 11223 0 R /XYZ 82.402 400.026 null ] >>
endobj
11260 0 obj
-<< /D [ 11258 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 389.067 null ] >>
endobj
11261 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 768.832 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 378.108 null ] >>
endobj
11262 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 757.873 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 367.149 null ] >>
endobj
11263 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 746.914 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 356.19 null ] >>
endobj
11264 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 735.955 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 345.232 null ] >>
endobj
11265 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 724.996 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 334.273 null ] >>
endobj
11266 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 714.037 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 323.314 null ] >>
endobj
11267 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 703.078 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 312.355 null ] >>
endobj
11268 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 692.119 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 301.396 null ] >>
endobj
11269 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 681.16 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 290.437 null ] >>
endobj
11270 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 670.202 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 279.478 null ] >>
endobj
11271 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 659.243 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 264.938 null ] >>
endobj
11272 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 648.284 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 253.979 null ] >>
endobj
11273 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 637.325 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 243.021 null ] >>
endobj
11274 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 626.366 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 232.062 null ] >>
endobj
11275 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 615.407 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 221.103 null ] >>
endobj
11276 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 604.448 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 210.144 null ] >>
endobj
11277 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 593.489 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 199.185 null ] >>
endobj
11278 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 582.53 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 188.226 null ] >>
endobj
11279 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 571.571 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 177.267 null ] >>
endobj
11280 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 560.613 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 166.308 null ] >>
endobj
11281 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 549.654 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 155.349 null ] >>
endobj
11282 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 538.695 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 144.39 null ] >>
endobj
11283 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 527.736 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 133.431 null ] >>
endobj
11284 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 516.777 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 122.473 null ] >>
endobj
11285 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 505.818 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 111.514 null ] >>
endobj
11286 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 494.859 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 100.555 null ] >>
endobj
11287 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 483.9 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 89.596 null ] >>
endobj
11288 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 472.941 null ] >>
+<< /D [ 11223 0 R /XYZ 82.402 78.637 null ] >>
endobj
-11289 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 461.982 null ] >>
-endobj
-11290 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 451.023 null ] >>
+11222 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
11291 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 440.065 null ] >>
+<< /Filter /FlateDecode /Length 1767 >>
+stream
+xڭnF~
+Z(O~*-(t㮚¡E"AJfuqeI??̮fd<9?v~3PfDftf8XMgZQ WN)L{bo+;3`&Vo}Dxb5\]m۶gduݶkw]tc]?˱Zu}k$@ -/kL_*xn^TuL}90Ԉ
+>xR) pkR7){\ͅ7L.6,4Um=l7~&\uUη辧Q} ccwڋ:"Y֜!
+R7rMۺin[_]毴NtP*oʺ)/vSc[Dܯ[bGj4b xH\#O94umٻ'"Inf,/XWۮ޿MߢW)+XSQeU/x#t5H,/-uSW芶\K̂!cp\KjU}D HayUYݍ˰B4((pDOkbX+.qVESoJZJ
+ydj&c>`Duvi:43n
+_Ƣ 71$RXOf ,8v'򣟦A@DCs"O'`Y:W]zfև8$'j3Ly5@Hp$NU$ƾ,Z?P""$ljgfmh &OPr~ ~p,N䇉mFJ
+X=w,Ѯ$܍f;l.Rq*3IJNȃ 8'Wd(0'qNHL ԓ8&4ms%Ațȗ7& Ճn"?ܭz紉d HpM |S8&+цI '~fؐ A67r,v,2)OyڵLy%AhphMݽ7~nVP댌MN)Jr
+Dv)yizq_̻m-3 p"__-vcUL +ڀQzD޻vәzb2|HVFFp
+(Sx@
+WSɀ=ܸ-\1}uër G=N(ahVp_h [V7VG݃{֜Ӝ5|#M1H<s
+endstream
+endobj
+11290 0 obj
+<< /Type /Page /Contents 11291 0 R /Resources 11289 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11155 0 R >>
endobj
11292 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 429.106 null ] >>
+<< /D [ 11290 0 R /XYZ 78.37 808.885 null ] >>
endobj
11293 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 418.147 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 768.832 null ] >>
endobj
11294 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 407.188 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 757.873 null ] >>
endobj
11295 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 396.229 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 746.914 null ] >>
endobj
11296 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 385.27 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 735.955 null ] >>
endobj
11297 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 374.311 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 724.996 null ] >>
endobj
11298 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 363.352 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 714.037 null ] >>
endobj
11299 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 352.393 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 703.078 null ] >>
endobj
11300 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 341.434 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 692.119 null ] >>
endobj
11301 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 330.476 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 681.16 null ] >>
endobj
11302 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 319.517 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 670.202 null ] >>
endobj
11303 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 308.558 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 659.243 null ] >>
endobj
11304 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 297.599 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 648.284 null ] >>
endobj
11305 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 286.64 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 637.325 null ] >>
endobj
11306 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 275.681 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 626.366 null ] >>
endobj
11307 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 264.722 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 615.407 null ] >>
endobj
11308 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 253.763 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 604.448 null ] >>
endobj
11309 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 242.804 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 593.489 null ] >>
endobj
11310 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 231.845 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 582.53 null ] >>
endobj
11311 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 220.887 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 571.571 null ] >>
endobj
11312 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 209.928 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 560.613 null ] >>
endobj
11313 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 198.969 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 549.654 null ] >>
endobj
11314 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 188.01 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 538.695 null ] >>
endobj
11315 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 177.051 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 527.736 null ] >>
endobj
11316 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 137.2 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 516.777 null ] >>
endobj
11317 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 126.241 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 505.818 null ] >>
endobj
11318 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 115.283 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 494.859 null ] >>
endobj
11319 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 104.324 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 483.9 null ] >>
endobj
11320 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 93.365 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 472.941 null ] >>
endobj
11321 0 obj
-<< /D [ 11258 0 R /XYZ 82.402 82.406 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 461.982 null ] >>
endobj
-11257 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-11324 0 obj
-<< /Filter /FlateDecode /Length 1744 >>
-stream
-xڭMoF:6n#@@{rOMaP"BI1wVn"g=&$G;wfh_ЇD#I,|v`!:c3+3lf4#Tf%L<w,qZ ?0!7oԟꦭ筿Ǜq'MȞR041,ƈ*E0)bp ʿsK18%$_1}=hv~j~X^foh^fo+py/> Tu8T^o~n D V!] qS}t"Hԋ)imq[/|5里Tmi(ň47'P]*c,8TLx#JE4 GWjCDlęj T-E48sLg<iM73L֥ˣ"وL㔭$¹o
-~D$=8]pN M< 笙|/~?-
-:}18Źl&Y{$(ҚHsL>`$U#sL>Z?n5z?~x'qud?$ߎx+\30
-%{pgS KIFcHJH$ L\nlc.n\n ' [$UT]pc+MJa&/T9p0vp!EW3d\j$;\jTULy ; \QN#  1\AG!U'X74+Ld~}(13a?f /0@C{XF<sP7PN8~  @6 G= kvؒjBnm8%t]?%c14W\_ޟEb
-P=Y牸t~9d!<&1MY ,~Iן_e  =/x̓%}60E0sp> I_eHBቍoo6 oW_>v]Cqxdx5
-y`%'B4mG53<<rtw Omg+Pa2$˶{=F&7~wZ^s
-,p[&?]:]ބ;7=`pkR[iۮ򅀖 [<kR&6zJ_(S`d uH{ʹ]_ D
-endstream
+11322 0 obj
+<< /D [ 11290 0 R /XYZ 82.402 451.023 null ] >>
endobj
11323 0 obj
-<< /Type /Page /Contents 11324 0 R /Resources 11322 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R >>
+<< /D [ 11290 0 R /XYZ 82.402 440.065 null ] >>
+endobj
+11324 0 obj
+<< /D [ 11290 0 R /XYZ 82.402 429.106 null ] >>
endobj
11325 0 obj
-<< /D [ 11323 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 418.147 null ] >>
endobj
11326 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 768.832 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 407.188 null ] >>
endobj
11327 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 757.873 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 396.229 null ] >>
endobj
11328 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 746.914 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 385.27 null ] >>
endobj
11329 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 735.955 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 374.311 null ] >>
endobj
11330 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 724.996 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 363.352 null ] >>
endobj
11331 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 714.037 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 352.393 null ] >>
endobj
11332 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 703.078 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 341.434 null ] >>
endobj
11333 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 692.119 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 330.476 null ] >>
endobj
11334 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 681.16 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 319.517 null ] >>
endobj
11335 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 670.202 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 308.558 null ] >>
endobj
11336 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 659.243 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 297.599 null ] >>
endobj
11337 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 648.284 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 286.64 null ] >>
endobj
11338 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 637.325 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 275.681 null ] >>
endobj
11339 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 626.366 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 264.722 null ] >>
endobj
11340 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 615.407 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 253.763 null ] >>
endobj
11341 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 604.448 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 242.804 null ] >>
endobj
11342 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 593.489 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 231.845 null ] >>
endobj
11343 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 582.53 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 220.887 null ] >>
endobj
11344 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 571.571 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 209.928 null ] >>
endobj
11345 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 560.613 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 198.969 null ] >>
endobj
11346 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 549.654 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 188.01 null ] >>
endobj
11347 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 538.695 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 177.051 null ] >>
endobj
11348 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 527.736 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 137.2 null ] >>
endobj
11349 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 516.777 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 126.241 null ] >>
endobj
11350 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 505.818 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 115.283 null ] >>
endobj
11351 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 494.859 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 104.324 null ] >>
endobj
11352 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 483.9 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 93.365 null ] >>
endobj
11353 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 472.941 null ] >>
+<< /D [ 11290 0 R /XYZ 82.402 82.406 null ] >>
endobj
-11354 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 461.982 null ] >>
-endobj
-11355 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 451.023 null ] >>
+11289 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
11356 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 440.065 null ] >>
+<< /Filter /FlateDecode /Length 1748 >>
+stream
+xڭMoF:6n#@@{rOMaP"BI1wVn"g=&$G;wfh_ЇD#I,|v`!:c3+3lf4#Tf%̚<w,qZ ?0!7oԟꦭ筿Ǜq'MȞR0#1,ƈ*E0)bp ʿsK%$_1}=hv~j~X^foh^fopy/> Tu8T^o~n D V!] /qS}t"Hԋ)9mq[/|5里Tmi(ň4q3yu)٥>Ƣ9I o;TGWjCDGgęj T-<8Oxϣ&ژȃ3L֥ˣ"وL㔭$¹o
+L&9L#i/aimr(AؓڳIpAR$j/>c=MO\XH W8DǕL^YssB?}
+@"T:(pu0Au?LƩJ%&V!<]A(a, +<É~\ !+H/ #%eLd~}(13a?f /0@C{XF<sP7PN8~  @]zϯ?g0X4+ƖTwcoC_B#+,Q<:z@C }`~Y$
+;MgCV *
+&S2$js+-c qK&Oօ% ?hێ&kkf2yx#l6
+endstream
+endobj
+11355 0 obj
+<< /Type /Page /Contents 11356 0 R /Resources 11354 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11155 0 R >>
endobj
11357 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 429.106 null ] >>
+<< /D [ 11355 0 R /XYZ 78.37 808.885 null ] >>
endobj
11358 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 418.147 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 768.832 null ] >>
endobj
11359 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 407.188 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 757.873 null ] >>
endobj
11360 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 396.229 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 746.914 null ] >>
endobj
11361 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 385.27 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 735.955 null ] >>
endobj
11362 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 374.311 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 724.996 null ] >>
endobj
11363 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 363.352 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 714.037 null ] >>
endobj
11364 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 352.393 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 703.078 null ] >>
endobj
11365 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 341.434 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 692.119 null ] >>
endobj
11366 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 330.476 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 681.16 null ] >>
endobj
11367 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 319.517 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 670.202 null ] >>
endobj
11368 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 308.558 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 659.243 null ] >>
endobj
11369 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 297.599 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 648.284 null ] >>
endobj
11370 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 286.64 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 637.325 null ] >>
endobj
11371 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 275.681 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 626.366 null ] >>
endobj
11372 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 264.722 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 615.407 null ] >>
endobj
11373 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 253.763 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 604.448 null ] >>
endobj
11374 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 242.804 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 593.489 null ] >>
endobj
11375 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 231.845 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 582.53 null ] >>
endobj
11376 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 220.887 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 571.571 null ] >>
endobj
11377 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 209.928 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 560.613 null ] >>
endobj
11378 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 198.969 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 549.654 null ] >>
endobj
11379 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 155.349 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 538.695 null ] >>
endobj
11380 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 144.39 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 527.736 null ] >>
endobj
11381 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 133.431 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 516.777 null ] >>
endobj
11382 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 122.473 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 505.818 null ] >>
endobj
11383 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 111.514 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 494.859 null ] >>
endobj
11384 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 100.555 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 483.9 null ] >>
endobj
11385 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 89.596 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 472.941 null ] >>
endobj
11386 0 obj
-<< /D [ 11323 0 R /XYZ 82.402 78.637 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 461.982 null ] >>
endobj
-11322 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-11389 0 obj
-<< /Filter /FlateDecode /Length 1525 >>
-stream
-xڥMoF: PN{9
-JǥXwW<<I(-_YÁZVLOO)WJcKi9H1~A?*8₁%{?W_6q?f5\}SSC5?1M_+6m_S1IpXuWDO-Po23˜X^ʧ}t”$1!@xQ)-|׾mXվ94SF(+A&-SB'Y2v1LdWҤxgˣ9( (-QnCFƣ$?Ckq*#J:
-NLgy6#w7I.ŸU0 FFInd. 'iExXf`4XbXLwǜ$VMM)N FcQz`Ѕa!#T9y^|MCUtaQS4"!o!;dP(<E0p2TS4#rZCtqX IKQMETsQw&^;*k8)u_f \oSz57V x!jZs2) B'9T
-eԚy24"<JRLFMS*_%SY{Ed񮛪oI4MOXu[͈d-2LӔ:dLH>&Ӕ|L֠͜]5ͩNmmspJbfVov)OF)Є,*34"|ͽ"UQfT~<z*aiSqΑ,<V34"uáp%8fh~EП'/a8}fhEpjx~Ixڜ_k??id"lz ~_TPE+~I*|i`T W?"C$+Y>ƆqкaJ͘BR' h/І#e "<\!&c3oߝo BI>_~|WS5\6:]Һ!q e̎pdiM(N! /92!KkYoTwr|d%}fG./ٟ쁌/Bg.Շׇ: Oﻮ{[h_}nyyWSu9հ<@edSQ@V.o08KciEx4' GY|``L/6_p MJ2)-_ÐSú/q|້p|P:-!|YX\nv*j:oۦm獟9CheGkY_AGO|lEF=;NLJ THr !6܃W"^D
-endstream
+11387 0 obj
+<< /D [ 11355 0 R /XYZ 82.402 451.023 null ] >>
endobj
11388 0 obj
-<< /Type /Page /Contents 11389 0 R /Resources 11387 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R >>
+<< /D [ 11355 0 R /XYZ 82.402 440.065 null ] >>
+endobj
+11389 0 obj
+<< /D [ 11355 0 R /XYZ 82.402 429.106 null ] >>
endobj
11390 0 obj
-<< /D [ 11388 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 418.147 null ] >>
endobj
11391 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 768.832 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 407.188 null ] >>
endobj
11392 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 757.873 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 396.229 null ] >>
endobj
11393 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 746.914 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 385.27 null ] >>
endobj
11394 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 735.955 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 374.311 null ] >>
endobj
11395 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 724.996 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 363.352 null ] >>
endobj
11396 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 714.037 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 352.393 null ] >>
endobj
11397 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 703.078 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 341.434 null ] >>
endobj
11398 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 692.119 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 330.476 null ] >>
endobj
11399 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 681.16 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 319.517 null ] >>
endobj
11400 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 670.202 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 308.558 null ] >>
endobj
11401 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 659.243 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 297.599 null ] >>
endobj
11402 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 648.284 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 286.64 null ] >>
endobj
11403 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 637.325 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 275.681 null ] >>
endobj
11404 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 626.366 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 264.722 null ] >>
endobj
11405 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 615.407 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 253.763 null ] >>
endobj
11406 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 604.448 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 242.804 null ] >>
endobj
11407 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 593.489 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 231.845 null ] >>
endobj
11408 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 582.53 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 220.887 null ] >>
endobj
11409 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 571.571 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 209.928 null ] >>
endobj
11410 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 560.613 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 198.969 null ] >>
endobj
11411 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 549.654 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 155.349 null ] >>
endobj
11412 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 538.695 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 144.39 null ] >>
endobj
11413 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 527.736 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 133.431 null ] >>
endobj
11414 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 516.777 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 122.473 null ] >>
endobj
11415 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 505.818 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 111.514 null ] >>
endobj
11416 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 494.859 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 100.555 null ] >>
endobj
11417 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 483.9 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 89.596 null ] >>
endobj
11418 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 472.941 null ] >>
+<< /D [ 11355 0 R /XYZ 82.402 78.637 null ] >>
endobj
-11419 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 461.982 null ] >>
-endobj
-11420 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 451.023 null ] >>
+11354 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R /F20 186 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
11421 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 440.065 null ] >>
+<< /Filter /FlateDecode /Length 1526 >>
+stream
+xڥMoF: PN#@SSP@Rq]Jw'1h^/Jb[}bA/?ů~zʕb+r+k80Wׇ?8ʽϧ'{ot99)4ƿ^Ьkf*``>iuO~!fM7q_l~؆!yS^hysuo>уܩӂx}8aq "@(aL*/is|]m@OalJH))(HSyM+жx7Z94SA(+Af -SFgY
+v1LӖ&dz8S,^Ad@hr|oCU0Pa<3?Ckq6}[Gx: Lo ]A@7C.Ÿu0 F&nM34"<Gtc-Pv,w) MINncIfW&~ql}A#$=CS07a T򜡙!S—i.ޒ<sw]?9ms: ȄG0pp%Y~RmM!fj8cv4"ghnywT2 /hY`.ċtGe p<K.]a BmN?F
+O4"!D&8/֒LJB<L4"dJ'Yg^>.)ALf4"|JRFGS*_$S=^q4"=ktKA@/G($96l "Y '9RՇQd]_3K9ݩm}KR)0"Y̊ r)"%]P^pPBeIe&T wWs*Mx !Lsd]/bjWiXU|-I>4"|8a<~Lyڇy<ϯ4FQ{27?ٯ oY_xBїX̱yO SJ>^%9꟭$y\ (G16N sz<m&vh}="\!&S/ߜo BxZC%ȸ)t8Cqԅ<"
+](]ւhM(N! jC fٿRݷa\ez#H2NzGNjd1~2 Tۛ8<u~Su濚MקqR쒶p9N~YZli`Y9O$)_>0\g/d |&J%Yf/7qPq`B܌aݗLl }wDWJ<>(m:—%mT?Wަ|}=7]Ӷ:ma҈efeZBRsu{^X̡mgOLN TH jyB,m<GQQE7
+endstream
+endobj
+11420 0 obj
+<< /Type /Page /Contents 11421 0 R /Resources 11419 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11155 0 R >>
endobj
11422 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 429.106 null ] >>
+<< /D [ 11420 0 R /XYZ 78.37 808.885 null ] >>
endobj
11423 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 418.147 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 768.832 null ] >>
endobj
11424 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 407.188 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 757.873 null ] >>
endobj
11425 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 396.229 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 746.914 null ] >>
endobj
11426 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 385.27 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 735.955 null ] >>
endobj
11427 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 374.311 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 724.996 null ] >>
endobj
11428 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 363.352 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 714.037 null ] >>
endobj
11429 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 352.393 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 703.078 null ] >>
endobj
11430 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 341.434 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 692.119 null ] >>
endobj
11431 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 330.476 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 681.16 null ] >>
endobj
11432 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 319.517 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 670.202 null ] >>
endobj
11433 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 308.558 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 659.243 null ] >>
endobj
11434 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 297.599 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 648.284 null ] >>
endobj
11435 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 286.64 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 637.325 null ] >>
endobj
11436 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 275.681 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 626.366 null ] >>
endobj
11437 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 264.722 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 615.407 null ] >>
endobj
11438 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 253.763 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 604.448 null ] >>
endobj
11439 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 242.804 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 593.489 null ] >>
endobj
11440 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 231.845 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 582.53 null ] >>
endobj
11441 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 220.887 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 571.571 null ] >>
endobj
11442 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 209.928 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 560.613 null ] >>
endobj
11443 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 198.969 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 549.654 null ] >>
endobj
11444 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 188.01 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 538.695 null ] >>
endobj
11445 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 174.062 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 527.736 null ] >>
endobj
11446 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 163.103 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 516.777 null ] >>
endobj
11447 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 152.144 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 505.818 null ] >>
endobj
11448 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 141.185 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 494.859 null ] >>
endobj
11449 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 130.226 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 483.9 null ] >>
endobj
11450 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 119.268 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 472.941 null ] >>
endobj
11451 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 108.309 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 461.982 null ] >>
endobj
11452 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 97.35 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 451.023 null ] >>
endobj
11453 0 obj
-<< /D [ 11388 0 R /XYZ 82.402 86.391 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 440.065 null ] >>
endobj
-11387 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-11456 0 obj
-<< /Filter /FlateDecode /Length 1732 >>
-stream
-xڥ]o+|~\hw^f-ZfbaeɐwddM29 $laoطov{Zn8˥p#+|Sa8V~<Om,8cM\0Gv~ۅp?WY/;6m .2aFK 3*o*SնߦAd4T0N}
-HXVE CJۂ!t _§BD
-KH =q$cxG
-ۡ/
-r/ Ry vPu j 2a4D ]X
-RJFsFy8/hkfÙvs 8h/Xݷ4WZGSs4xᩀ[.l&|vhs΀9fr\dim5Fgr$9zjw
-N1[v-\o Д# fu %
-RJ0&nl&?>_ZDz!fl3T$C f1L̕G1M86:Yo&\(+ fq8W`M:AL>j2÷ b! La~q|!1{3H㋤@Թd[r SHwڑÛ:R ]ֹ̄:ZL~+ڀ df{\48{I|k,
-}Ab%3h?+V3f=U.
-{Lv".Ymwvkw;{QWR
-aL1y9MawpZJNݮq'B1~0~hU\&VSX~i|< mOKX?o9Ye88-8yZ.[Lf5h+T_8_vQ-@LNWWL}fW#mIw;<8!2/O<,So'uM$UBaCX_GuTB{g>{Yלּ*dO[քu9B\ g&S`-cXHʍAuW 
-endstream
+11454 0 obj
+<< /D [ 11420 0 R /XYZ 82.402 429.106 null ] >>
endobj
11455 0 obj
-<< /Type /Page /Contents 11456 0 R /Resources 11454 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R >>
+<< /D [ 11420 0 R /XYZ 82.402 418.147 null ] >>
+endobj
+11456 0 obj
+<< /D [ 11420 0 R /XYZ 82.402 407.188 null ] >>
endobj
11457 0 obj
-<< /D [ 11455 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 396.229 null ] >>
endobj
11458 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 768.832 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 385.27 null ] >>
endobj
11459 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 757.873 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 374.311 null ] >>
endobj
11460 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 746.914 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 363.352 null ] >>
endobj
11461 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 735.955 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 352.393 null ] >>
endobj
11462 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 724.996 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 341.434 null ] >>
endobj
11463 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 714.037 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 330.476 null ] >>
endobj
11464 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 703.078 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 319.517 null ] >>
endobj
11465 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 692.119 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 308.558 null ] >>
endobj
11466 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 681.16 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 297.599 null ] >>
endobj
11467 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 670.202 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 286.64 null ] >>
endobj
11468 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 659.243 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 275.681 null ] >>
endobj
11469 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 648.284 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 264.722 null ] >>
endobj
11470 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 637.325 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 253.763 null ] >>
endobj
11471 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 626.366 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 242.804 null ] >>
endobj
11472 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 615.407 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 231.845 null ] >>
endobj
11473 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 604.448 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 220.887 null ] >>
endobj
11474 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 593.489 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 209.928 null ] >>
endobj
11475 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 582.53 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 198.969 null ] >>
endobj
11476 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 571.571 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 188.01 null ] >>
endobj
11477 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 560.613 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 174.062 null ] >>
endobj
11478 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 549.654 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 163.103 null ] >>
endobj
11479 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 538.695 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 152.144 null ] >>
endobj
11480 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 527.736 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 141.185 null ] >>
endobj
11481 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 516.777 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 130.226 null ] >>
endobj
11482 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 505.818 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 119.268 null ] >>
endobj
11483 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 494.859 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 108.309 null ] >>
endobj
11484 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 483.9 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 97.35 null ] >>
endobj
11485 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 472.941 null ] >>
+<< /D [ 11420 0 R /XYZ 82.402 86.391 null ] >>
endobj
-11486 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 461.982 null ] >>
-endobj
-11487 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 451.023 null ] >>
+11419 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
11488 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 440.065 null ] >>
+<< /Filter /FlateDecode /Length 1729 >>
+stream
+xڥo6Wikob{˰-ӶPY2$91LNSA䘇6k;tYŧ7/7>ĖL[XF3B5[aT0?=Gm%Z2V3N6n]ݸe/4LghNoҏu5u2{?]E(a7PmlވIXv{]/ +e0$qb2#<3s+\Xtogp s+|xmԄ>Wn?]aDHL8MS {Wbٍc+zW "dq"ud%#UD
+kE‚ț3JS;NʒH&q(MHkW~a"ma5n/ I4HPcuI5JUR⸚nVpw4m|#aMJy6ny{hz}*V]εtGD]
+D߬{UcYΉs
+Ds1bd
+8ݱX=TbN-PPEą
+h$(|LkU}&f"
+endstream
+endobj
+11487 0 obj
+<< /Type /Page /Contents 11488 0 R /Resources 11486 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11155 0 R >>
endobj
11489 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 429.106 null ] >>
+<< /D [ 11487 0 R /XYZ 78.37 808.885 null ] >>
endobj
11490 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 418.147 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 768.832 null ] >>
endobj
11491 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 407.188 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 757.873 null ] >>
endobj
11492 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 396.229 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 746.914 null ] >>
endobj
11493 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 385.27 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 735.955 null ] >>
endobj
11494 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 374.311 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 724.996 null ] >>
endobj
11495 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 363.352 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 714.037 null ] >>
endobj
11496 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 352.393 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 703.078 null ] >>
endobj
11497 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 341.434 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 692.119 null ] >>
endobj
11498 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 330.476 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 681.16 null ] >>
endobj
11499 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 319.517 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 670.202 null ] >>
endobj
11500 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 308.558 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 659.243 null ] >>
endobj
11501 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 297.599 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 648.284 null ] >>
endobj
11502 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 286.64 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 637.325 null ] >>
endobj
11503 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 275.681 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 626.366 null ] >>
endobj
11504 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 264.722 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 615.407 null ] >>
endobj
11505 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 253.763 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 604.448 null ] >>
endobj
11506 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 242.804 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 593.489 null ] >>
endobj
11507 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 231.845 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 582.53 null ] >>
endobj
11508 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 220.887 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 571.571 null ] >>
endobj
11509 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 209.928 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 560.613 null ] >>
endobj
11510 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 198.969 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 549.654 null ] >>
endobj
11511 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 188.01 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 538.695 null ] >>
endobj
11512 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 177.051 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 527.736 null ] >>
endobj
11513 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 161.111 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 516.777 null ] >>
endobj
11514 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 150.152 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 505.818 null ] >>
endobj
11515 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 139.193 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 494.859 null ] >>
endobj
11516 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 128.234 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 483.9 null ] >>
endobj
11517 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 117.275 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 472.941 null ] >>
endobj
11518 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 106.316 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 461.982 null ] >>
endobj
11519 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 95.357 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 451.023 null ] >>
endobj
11520 0 obj
-<< /D [ 11455 0 R /XYZ 82.402 84.398 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 440.065 null ] >>
endobj
-11454 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
-endobj
-11523 0 obj
-<< /Filter /FlateDecode /Length 1049 >>
-stream
-xڝXnF}W l~"('(P'zHe$"Ů`xK]\U<zD<3sfU|Eb8
-&&o820͖n4CFLI$l`g}{X@L##%c4)fRO;kiĹJ!;yk7*vo[{5忟3:<H#j04>{FbHI4*N?YJCsU^.7QU]m[l/]Mee> "EeY*x
-ܳv/|UwK߭@Uc]\n{gGscAz#2 FE
-'
-cpaGpp,2'dg߽]]olhCJ#*r |(4u}ReCN^Srٳxq  Rjı˂c zt5*A}CE9uU7[_XR#L1\Oi\m]b;L $?\o4'qB#ft
-_T] r bHqŇ
-NV%8<DKPUs7u/H"µHX4NEz\_4 Z |u͋yvNwv!18~#0~ȸe_UNn){T4lM)N2φ͢ o
-xԈ(( (o 6R4-1so
-endstream
+11521 0 obj
+<< /D [ 11487 0 R /XYZ 82.402 429.106 null ] >>
endobj
11522 0 obj
-<< /Type /Page /Contents 11523 0 R /Resources 11521 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R >>
+<< /D [ 11487 0 R /XYZ 82.402 418.147 null ] >>
+endobj
+11523 0 obj
+<< /D [ 11487 0 R /XYZ 82.402 407.188 null ] >>
endobj
11524 0 obj
-<< /D [ 11522 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 396.229 null ] >>
endobj
11525 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 768.832 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 385.27 null ] >>
endobj
11526 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 757.873 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 374.311 null ] >>
endobj
11527 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 746.914 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 363.352 null ] >>
endobj
11528 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 735.955 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 352.393 null ] >>
endobj
11529 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 724.996 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 341.434 null ] >>
endobj
11530 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 714.037 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 330.476 null ] >>
endobj
11531 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 703.078 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 319.517 null ] >>
endobj
11532 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 692.119 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 308.558 null ] >>
endobj
11533 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 676.179 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 297.599 null ] >>
endobj
11534 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 665.22 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 286.64 null ] >>
endobj
11535 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 654.261 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 275.681 null ] >>
endobj
11536 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 643.302 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 264.722 null ] >>
endobj
11537 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 632.344 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 253.763 null ] >>
endobj
11538 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 621.385 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 242.804 null ] >>
endobj
11539 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 605.444 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 231.845 null ] >>
endobj
11540 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 594.486 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 220.887 null ] >>
endobj
11541 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 583.527 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 209.928 null ] >>
endobj
11542 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 572.568 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 198.969 null ] >>
endobj
11543 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 561.609 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 188.01 null ] >>
endobj
11544 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 550.65 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 177.051 null ] >>
endobj
11545 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 534.71 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 161.111 null ] >>
endobj
11546 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 523.751 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 150.152 null ] >>
endobj
11547 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 512.792 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 139.193 null ] >>
endobj
11548 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 501.833 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 128.234 null ] >>
endobj
11549 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 490.874 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 117.275 null ] >>
endobj
11550 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 479.915 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 106.316 null ] >>
endobj
11551 0 obj
-<< /D [ 11522 0 R /XYZ 82.402 468.956 null ] >>
+<< /D [ 11487 0 R /XYZ 82.402 95.357 null ] >>
endobj
-11521 0 obj
+11552 0 obj
+<< /D [ 11487 0 R /XYZ 82.402 84.398 null ] >>
+endobj
+11486 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F69 183 0 R /F74 264 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+11555 0 obj
+<< /Filter /FlateDecode /Length 1050 >>
+stream
+xڝXnF}W l~"('(P'zHe$"Ů`xK]\U<zD<3sfep?\>x{XƑфl &L3dɔ$KMW3_=a3LфbIloy"*|#wmL_Tl_7Ϣk?vgDuxF`D1O!h=|v:#iTR)Ç3窼\L$ݻ|m۶X6_&tg|LD8(@Ucy_l;[Y_/[;v}S,O5"Ge AN)O5,
+!߇}b4Q)$-AXhPDÐG$6<H8Jh K1|*eUvÛ1 9M|aA3aj\Cq>݌9yZhɺ;lPZ"ET HB Dj lRHϫrv;#ec>6vaL1=8C[,xݽ ۍK_:jpU
+NV 8<DsPUѧs׳uϭH"µHX4NEz_Q Z |U͊YN{v!18FFv gܢV'=Yb*6Ѧ l'fц`QtE<LjD? JLfJ~7 a}PӋ
+endstream
+endobj
+11554 0 obj
+<< /Type /Page /Contents 11555 0 R /Resources 11553 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11155 0 R >>
+endobj
+11556 0 obj
+<< /D [ 11554 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+11557 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 768.832 null ] >>
+endobj
+11558 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 757.873 null ] >>
+endobj
+11559 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 746.914 null ] >>
+endobj
+11560 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 735.955 null ] >>
+endobj
+11561 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 724.996 null ] >>
+endobj
+11562 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 714.037 null ] >>
+endobj
+11563 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 703.078 null ] >>
+endobj
+11564 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 692.119 null ] >>
+endobj
+11565 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 676.179 null ] >>
+endobj
+11566 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 665.22 null ] >>
+endobj
+11567 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 654.261 null ] >>
+endobj
+11568 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 643.302 null ] >>
+endobj
+11569 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 632.344 null ] >>
+endobj
+11570 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 621.385 null ] >>
+endobj
+11571 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 605.444 null ] >>
+endobj
+11572 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 594.486 null ] >>
+endobj
+11573 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 583.527 null ] >>
+endobj
+11574 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 572.568 null ] >>
+endobj
+11575 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 561.609 null ] >>
+endobj
+11576 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 550.65 null ] >>
+endobj
+11577 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 534.71 null ] >>
+endobj
+11578 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 523.751 null ] >>
+endobj
+11579 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 512.792 null ] >>
+endobj
+11580 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 501.833 null ] >>
+endobj
+11581 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 490.874 null ] >>
+endobj
+11582 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 479.915 null ] >>
+endobj
+11583 0 obj
+<< /D [ 11554 0 R /XYZ 82.402 468.956 null ] >>
+endobj
+11553 0 obj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F73 189 0 R /F74 264 0 R /F69 183 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-11585 0 obj
+11617 0 obj
<< /Filter /FlateDecode /Length 1225 >>
stream
-xڝo6W/Ivah=tEfHtv>J$eIvOiwqr)I!I67g` $B4MR.K!VWu2=m>g%J(D(%I9(Wot^fMf
-Joi>;[Uۣ_n:mO 0!Sp-ă)̚WO[z"ƩN 2 [꫺,unֻs_{,aSY+yg]UY՟0eU1Aœ-s6yAxSS-"2w!?LvA\F& 1&b!K'`DpS7C!)Yu[zEԉZwP\PDt{kA%:{3 Gw_Nh_X7,v28vPP\U k"(RęI
-#0@k,]DaaG_-1
+xڝo6WO1In6 XL"TNG,ɎI6-x_4Nn;y9{VLdss@"2<ELB%jMae{7}xJLqDA IsP̚V9M骾qOs݇,~nBVm~i*l=]040piCB1bA0kJV_=n͢Z2lqԹ)[} cNfJwUgV”UEDhQspgw6nv*N%(s[D0=d^vC ~zo>Mb,8rD@=rMxFyĆ<jldm>kQ'jIAqAQۓνAXqZ B8^}ofXۻ`5މ]<<"Mk sFŮ}ZfsP
+1j˺غ
+ėr|MqD0Gphj$?褉6WH_2x}!r,+s3luob]Ysax <I<6;9m}ݹy]w2XKVFI";3_&혭
+ӺMSo9' cR
+)=Zߠ\=~z5B ?c*.i*⾞7{Ɲ!*J\NTB L}y"׶N6Ѷ6&Ҳ.LviqCe AtYnnv"@G'r
endstream
endobj
-11584 0 obj
-<< /Type /Page /Contents 11585 0 R /Resources 11583 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R /Annots 11587 0 R >>
+11616 0 obj
+<< /Type /Page /Contents 11617 0 R /Resources 11615 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11155 0 R /Annots 11619 0 R >>
endobj
-11587 0 obj
-[ 11552 0 R 11553 0 R 11554 0 R 11555 0 R 11556 0 R 11557 0 R 11558 0 R 11559 0 R 11560 0 R 11561 0 R 11562 0 R 11563 0 R 11564 0 R 11565 0 R 11566 0 R 11567 0 R 11568 0 R 11569 0 R 11570 0 R 11571 0 R 11572 0 R 11573 0 R 11574 0 R 11575 0 R 11576 0 R 11577 0 R 11578 0 R 11579 0 R 11580 0 R 11581 0 R ]
+11619 0 obj
+[ 11584 0 R 11585 0 R 11586 0 R 11587 0 R 11588 0 R 11589 0 R 11590 0 R 11591 0 R 11592 0 R 11593 0 R 11594 0 R 11595 0 R 11596 0 R 11597 0 R 11598 0 R 11599 0 R 11600 0 R 11601 0 R 11602 0 R 11603 0 R 11604 0 R 11605 0 R 11606 0 R 11607 0 R 11608 0 R 11609 0 R 11610 0 R 11611 0 R 11612 0 R 11613 0 R ]
endobj
-11552 0 obj
+11584 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 713.79 345.275 724.684 ]/A << /S /GoTo /D (section.0.1) >> >>
endobj
-11553 0 obj
+11585 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 691.872 168.931 702.766 ]/A << /S /GoTo /D (section.0.2) >> >>
endobj
-11554 0 obj
+11586 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 669.954 195.879 680.848 ]/A << /S /GoTo /D (section.0.3) >> >>
endobj
-11555 0 obj
+11587 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 649.973 207.669 658.93 ]/A << /S /GoTo /D (section.0.4) >> >>
endobj
-11556 0 obj
+11588 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 628.056 162.385 637.012 ]/A << /S /GoTo /D (section.0.5) >> >>
endobj
-11557 0 obj
+11589 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 603.647 244.465 615.602 ]/A << /S /GoTo /D (section.0.6) >> >>
endobj
-11558 0 obj
+11590 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 582.283 313.465 593.177 ]/A << /S /GoTo /D (section.0.7) >> >>
endobj
-11559 0 obj
+11591 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 560.365 165.023 571.259 ]/A << /S /GoTo /D (section.0.8) >> >>
endobj
-11560 0 obj
+11592 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 537.894 356.927 549.849 ]/A << /S /GoTo /D (section.0.9) >> >>
endobj
-11561 0 obj
+11593 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 515.976 192.945 527.931 ]/A << /S /GoTo /D (section.0.10) >> >>
endobj
-11562 0 obj
+11594 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 494.058 318.799 506.013 ]/A << /S /GoTo /D (section.0.11) >> >>
endobj
-11563 0 obj
+11595 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 472.694 304.727 483.588 ]/A << /S /GoTo /D (section.0.12) >> >>
endobj
-11564 0 obj
+11596 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 450.222 271.2 462.178 ]/A << /S /GoTo /D (section.0.13) >> >>
endobj
-11565 0 obj
+11597 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 428.305 345.319 440.26 ]/A << /S /GoTo /D (section.0.14) >> >>
endobj
-11566 0 obj
+11598 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 406.387 370.804 418.342 ]/A << /S /GoTo /D (section.0.15) >> >>
endobj
-11567 0 obj
+11599 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 385.022 280.698 395.917 ]/A << /S /GoTo /D (section.0.16) >> >>
endobj
-11568 0 obj
+11600 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 365.042 232.492 373.999 ]/A << /S /GoTo /D (section.0.17) >> >>
endobj
-11569 0 obj
+11601 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 341.187 418.007 352.081 ]/A << /S /GoTo /D (section.0.18) >> >>
endobj
-11570 0 obj
+11602 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 321.206 359.856 330.163 ]/A << /S /GoTo /D (section.0.19) >> >>
endobj
-11571 0 obj
+11603 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 296.798 323.519 308.753 ]/A << /S /GoTo /D (section.0.20) >> >>
endobj
-11572 0 obj
+11604 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 274.88 233.701 286.835 ]/A << /S /GoTo /D (section.0.21) >> >>
endobj
-11573 0 obj
+11605 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 253.516 272.181 264.41 ]/A << /S /GoTo /D (section.0.22) >> >>
endobj
-11574 0 obj
+11606 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 233.535 269.72 242.492 ]/A << /S /GoTo /D (section.0.23) >> >>
endobj
-11575 0 obj
+11607 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 209.68 200.238 220.574 ]/A << /S /GoTo /D (section.0.24) >> >>
endobj
-11576 0 obj
+11608 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 187.209 292.135 199.164 ]/A << /S /GoTo /D (section.0.25) >> >>
endobj
-11577 0 obj
+11609 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 167.782 187.086 176.738 ]/A << /S /GoTo /D (section.0.26) >> >>
endobj
-11578 0 obj
+11610 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 145.864 159.613 154.821 ]/A << /S /GoTo /D (section.0.27) >> >>
endobj
-11579 0 obj
+11611 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 122.009 324.087 132.903 ]/A << /S /GoTo /D (section.0.28) >> >>
endobj
-11580 0 obj
+11612 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 100.091 192.653 110.985 ]/A << /S /GoTo /D (section.0.29) >> >>
endobj
-11581 0 obj
+11613 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 77.62 313.527 89.575 ]/A << /S /GoTo /D (section.0.30) >> >>
endobj
-11586 0 obj
-<< /D [ 11584 0 R /XYZ 78.37 808.885 null ] >>
+11618 0 obj
+<< /D [ 11616 0 R /XYZ 78.37 808.885 null ] >>
endobj
165 0 obj
-<< /D [ 11584 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 11616 0 R /XYZ 79.37 771.024 null ] >>
endobj
-11583 0 obj
+11615 0 obj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F72 187 0 R /F80 749 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-11599 0 obj
-<< /Filter /FlateDecode /Length 499 >>
+11631 0 obj
+<< /Filter /FlateDecode /Length 498 >>
stream
-xڍK0
-W `q&~9>č7X'т
-
+xڍK0
+C4  łم7", .KM ßI~ F`Y7$,)ħCսw0NswY0Xr%˳"kW}sɻhyE8m N/͇lF$FPaU#%l)_dur{~usAVΖ5T+yٚ1.g1É9S4R$j|KMED93DP-4"}
+\Nr[WU^< l[!I2et>TpfUw:#׹]նn,iA#Dɐ}UҕWsa2?ndԚ{ 6zvȁx.
endstream
endobj
-11598 0 obj
-<< /Type /Page /Contents 11599 0 R /Resources 11597 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11189 0 R /Annots 11601 0 R >>
+11630 0 obj
+<< /Type /Page /Contents 11631 0 R /Resources 11629 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 11155 0 R /Annots 11633 0 R >>
endobj
-11601 0 obj
-[ 11582 0 R 11588 0 R 11589 0 R 11590 0 R 11591 0 R 11592 0 R 11593 0 R 11594 0 R 11595 0 R 11596 0 R ]
+11633 0 obj
+[ 11614 0 R 11620 0 R 11621 0 R 11622 0 R 11623 0 R 11624 0 R 11625 0 R 11626 0 R 11627 0 R 11628 0 R ]
endobj
-11582 0 obj
+11614 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 757.574 225.426 769.529 ]/A << /S /GoTo /D (section.0.31) >> >>
endobj
-11588 0 obj
+11620 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 735.656 232.547 747.611 ]/A << /S /GoTo /D (section.0.32) >> >>
endobj
-11589 0 obj
+11621 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 714.292 261.342 725.186 ]/A << /S /GoTo /D (section.0.33) >> >>
endobj
-11590 0 obj
+11622 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 691.821 240.384 703.776 ]/A << /S /GoTo /D (section.0.34) >> >>
endobj
-11591 0 obj
+11623 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 669.903 329.738 681.858 ]/A << /S /GoTo /D (section.0.35) >> >>
endobj
-11592 0 obj
+11624 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 648.538 252.167 659.432 ]/A << /S /GoTo /D (section.0.36) >> >>
endobj
-11593 0 obj
+11625 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 626.067 266.6 638.022 ]/A << /S /GoTo /D (section.0.37) >> >>
endobj
-11594 0 obj
+11626 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 604.703 318.705 615.597 ]/A << /S /GoTo /D (section.0.38) >> >>
endobj
-11595 0 obj
+11627 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 582.785 258.373 593.679 ]/A << /S /GoTo /D (section.0.39) >> >>
endobj
-11596 0 obj
+11628 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 78.374 560.867 257.469 571.761 ]/A << /S /GoTo /D (section.0.40) >> >>
endobj
-11600 0 obj
-<< /D [ 11598 0 R /XYZ 78.37 808.885 null ] >>
+11632 0 obj
+<< /D [ 11630 0 R /XYZ 78.37 808.885 null ] >>
endobj
-11597 0 obj
+11629 0 obj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F80 749 0 R /F19 184 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1 0 obj
@@ -37021,106 +37172,106 @@ endobj
3 0 obj
<< /pgfprgb [/Pattern /DeviceRGB] >>
endobj
-11603 0 obj
+11635 0 obj
[647.8 579.4 ]
endobj
-11605 0 obj
+11637 0 obj
[875 875 666.7 666.7 666.7 666.7 0 0 0 0 0 0 0 0 0 0 875 875 ]
endobj
-11607 0 obj
+11639 0 obj
[525 525 0 0 525 525 0 525 525 525 0 525 0 525 525 0 0 525 0 525 525 0 0 525 ]
endobj
-11609 0 obj
+11641 0 obj
[531.3 531.3 ]
endobj
-11611 0 obj
+11643 0 obj
[826.4 ]
endobj
-11612 0 obj
+11644 0 obj
[531.3 531.3 531.3 0 531.3 0 0 0 0 531.3 0 0 0 0 531.3 0 0 0 0 0 531.3 531.3 0 531.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 531.3 531.3 531.3 0 531.3 0 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 0 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 0 531.3 ]
endobj
-11613 0 obj
+11645 0 obj
[575 0 0 0 0 0 0 638.9 638.9 0 0 0 0 0 0 0 0 0 0 0 0 575 0 319.5 383.3 0 0 575 575 575 575 575 575 575 575 575 575 0 0 0 0 0 0 0 869.4 818 830.6 881.9 755.5 723.6 904.2 900 436.1 0 0 691.7 1091.7 900 863.9 786.1 0 862.5 638.9 800 884.7 869.4 1188.9 869.4 0 0 0 575 0 0 0 0 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.5 0 607 319.5 958.3 638.9 575 638.9 0 473.6 453.6 447.2 638.9 607 830.6 607 607 511.1 575 0 575 ]
endobj
-11615 0 obj
+11647 0 obj
[777.8 ]
endobj
-11616 0 obj
+11648 0 obj
[777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 416.7 528.6 429.2 432.8 0 0 0 0 0 344.5 411.8 520.6 298.4 0 600.2 0 0 0 0 0 0 0 0 0 571.5 490.3 ]
endobj
-11617 0 obj
+11649 0 obj
[833.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 777.8 0 0 0 0 500 500 500 500 500 500 500 500 ]
endobj
-11618 0 obj
+11650 0 obj
[613.3 0 591.1 624.5 0 535.5 641.1 0 302.2 0 0 0 0 0 0 557.8 0 0 457.8 ]
endobj
-11619 0 obj
+11651 0 obj
[611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 ]
endobj
-11620 0 obj
+11652 0 obj
[569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 ]
endobj
-11621 0 obj
+11653 0 obj
[562.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 357.8 306.7 0 0 0 0 0 0 0 0 0 0 0 306.7 0 0 0 0 0 0 0 703.9 715.6 0 678.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.5 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.5 ]
endobj
-11622 0 obj
+11654 0 obj
[388.9 388.9 0 0 0 333.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 444.5 0 444.5 305.5 0 0 277.8 305.5 527.8 277.8 833.3 555.5 500 555.5 0 0 394.4 388.9 555.5 527.8 0 527.8 527.8 ]
endobj
-11623 0 obj
+11655 0 obj
[525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 ]
endobj
-11624 0 obj
+11656 0 obj
[502.3 502.3 0 0 0 0 1062.5 0 0 0 0 0 590.3 0 0 0 0 0 0 0 0 0 0 295.1 413.2 413.2 0 0 295.1 0 295.1 531.3 531.3 531.3 531.3 0 531.3 0 531.3 0 531.3 531.3 0 0 0 0 0 0 0 795.9 0 0 0 722.6 0 0 0 382.6 0 0 663.5 972.9 0 0 0 0 0 590.3 767.4 0 0 1091 795.9 0 0 0 0 0 0 0 0 531.3 590.3 472.2 590.3 472.2 324.7 531.3 590.3 295.1 0 560.7 295.1 885.4 590.3 531.3 590.3 560.7 414.1 419.1 413.2 590.3 560.7 767.4 560.7 560.7 472.2 ]
endobj
-11625 0 obj
+11657 0 obj
[638.9 ]
endobj
-11626 0 obj
+11658 0 obj
[531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 510.4 0 472.2 0 472.2 0 0 0 253.5 0 0 0 843.8 548.6 0 0 0 362.8 0 383.7 0 0 0 489.6 ]
endobj
-11627 0 obj
+11659 0 obj
[625 0 0 0 0 0 0 0 0 0 0 0 0 0 562.5 0 312.5 375 0 0 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 0 0 0 0 0 0 0 849.5 799.7 812.5 862.3 738.4 0 0 879.6 419 0 0 675.9 1067.2 879.6 844.9 768.5 0 839.2 625 782.4 864.6 0 1162 849.5 0 0 0 575 0 0 0 0 546.9 625 500 625 513.3 343.7 562.5 625 312.5 0 593.7 312.5 937.5 625 562.5 625 0 459.5 443.7 437.5 625 593.7 812.5 593.7 593.7 500 575 0 575 ]
endobj
-11628 0 obj
-[525 0 525 525 0 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 0 525 525 525 525 525 525 525 525 525 525 0 0 525 525 525 525 525 0 525 525 525 525 525 525 525 0 0 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ]
+11660 0 obj
+[525 0 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 0 525 525 525 525 525 525 525 525 525 525 0 0 525 525 525 525 525 0 525 525 525 525 525 525 525 0 0 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ]
endobj
-11629 0 obj
+11661 0 obj
[583.3 0 536.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333.3 0 0 0 500 500 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 480.5 516.7 444.5 516.7 444.5 305.5 500 516.7 238.9 0 488.9 238.9 794.5 516.7 500 516.7 0 341.7 383.3 361.1 516.7 461.1 683.3 461.1 461.1 ]
endobj
-11630 0 obj
+11662 0 obj
[472 472 0 0 0 500 1000 0 0 0 0 583.3 555.5 555.5 833.3 0 0 277.8 0 0 0 0 0 277.8 388.9 388.9 0 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 777.8 777.8 472.2 777.8 750 708.3 722.2 763.9 680.5 652.8 784.7 750 361.1 513.9 0 625 916.7 750 777.8 680.5 0 736.1 555.5 722.2 750 0 1027.8 750 750 611.1 277.8 0 277.8 0 0 277.8 500 555.5 444.5 555.5 444.5 305.5 500 555.5 277.8 305.5 527.8 277.8 833.3 555.5 500 555.5 527.8 391.7 394.4 388.9 555.5 527.8 722.2 527.8 527.8 444.5 ]
endobj
-11631 0 obj
+11663 0 obj
[525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ]
endobj
-11632 0 obj
+11664 0 obj
[577.2 524.7 0 0 0 0 341.1 ]
endobj
-11633 0 obj
+11665 0 obj
[493.8 0 456.8 0 456.8 0 0 0 245.4 0 0 0 816.3 530.8 0 0 0 351.1 0 371.1 0 0 0 473.8 ]
endobj
-11634 0 obj
+11666 0 obj
[285.5 399.7 399.7 0 0 0 0 285.5 0 0 0 0 0 0 0 0 0 0 0 285.5 0 0 0 0 0 0 0 0 0 0 0 670.8 0 0 371 0 0 642.3 0 0 0 0 0 0 0 742.3 0 0 0 770.7 0 0 0 0 0 0 0 0 513.9 0 456.8 571 457.2 314 513.9 571 285.5 0 542.4 285.5 856.4 571 513.9 571 0 402 405.4 399.7 571 0 742.3 ]
endobj
-11635 0 obj
+11667 0 obj
[892.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 575.2 657.4 525.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 488.1 466.7 460.2 ]
endobj
-11636 0 obj
+11668 0 obj
[514.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 514.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 514.6 0 0 514.6 0 514.6 514.6 0 514.6 0 0 0 0 514.6 514.6 514.6 0 514.6 0 514.6 0 0 514.6 0 514.6 ]
endobj
-11637 0 obj
-[272 0 272 0 489.6 0 489.6 0 489.6 0 0 0 0 489.6 0 0 0 0 0 0 0 0 0 0 0 0 639 0 0 0 503 0 0 0 0 0 666.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 489.6 0 0 0 435.2 0 489.6 0 272 0 0 0 0 544 0 0 0 0 0 380.8 544 0 0 0 516.8 ]
+11669 0 obj
+[272 0 272 0 489.6 0 489.6 0 489.6 0 0 0 0 0 0 0 0 0 0 0 0 734 0 0 0 0 639 0 0 0 0 0 0 0 0 0 666.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 489.6 0 0 0 0 0 489.6 0 272 0 0 0 0 544 0 0 0 0 386.2 380.8 544 0 0 0 516.8 ]
endobj
-11638 0 obj
+11670 0 obj
[777.8 0 0 500 ]
endobj
-11639 0 obj
+11671 0 obj
[450.9 0 417.9 0 417.9 0 0 0 222.6 0 0 0 745.1 483.9 0 0 0 320.3 0 339.6 0 0 0 431.6 ]
endobj
-11640 0 obj
+11672 0 obj
[667.6 0 0 0 0 0 0 0 0 0 0 0 0 458.6 0 406.4 510.9 406.4 275.8 458.6 510.9 0 0 484.7 0 0 0 458.6 510.9 0 0 0 354.1 ]
endobj
-11642 0 obj
+11674 0 obj
<< /Length1 2610 /Length2 30311 /Length3 0 /Filter /FlateDecode /Length 31774 >>
stream
xڴzeTup'8ww {pw ݝorν7 fvuÛTYQd
@@ -37266,10 +37417,10 @@ Dmu44)BA?22nXщ0*%:1"-2" IH
9J<pgfie!fes1ۢc1KkM~yuݑĶiC٤_^h SD]m^Cg/SQ7(8BF- RfO#=k; C
endstream
endobj
-11641 0 obj
-<< /Type /FontDescriptor /FontName /OCVDMH+LMRoman10-Bold /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /Ascent 699 /CapHeight 699 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet( /A /B /C /D /E /F /G /H /I /L /M /N /O /P /R /S /T /U /V /W /X /a /asterisk /b /backslash /braceleft /braceright /c /comma /d /e /eight /endash /f /fi /five /fl /four /g /h /hyphen /i /k /l /m /n /nine /o /one /p /r /s /seven /six /t /three /two /u /v /w /x /y /z /zero) /FontFile 11642 0 R >>
+11673 0 obj
+<< /Type /FontDescriptor /FontName /OCVDMH+LMRoman10-Bold /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /Ascent 699 /CapHeight 699 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet( /A /B /C /D /E /F /G /H /I /L /M /N /O /P /R /S /T /U /V /W /X /a /asterisk /b /backslash /braceleft /braceright /c /comma /d /e /eight /endash /f /fi /five /fl /four /g /h /hyphen /i /k /l /m /n /nine /o /one /p /r /s /seven /six /t /three /two /u /v /w /x /y /z /zero) /FontFile 11674 0 R >>
endobj
-11644 0 obj
+11676 0 obj
<< /Length1 2532 /Length2 28425 /Length3 0 /Filter /FlateDecode /Length 29858 >>
stream
xڴzePݲ5
@@ -37390,10 +37541,10 @@ a1_9R}=Q(-+H2Cw%js1ј=i g;?1@;U집&B}h
W(nQ[̋B̓-zPx)4ۀ=(_7` /(P<.YZՓ*􋖂<+*jm\{wе82}f`NYҋ59.[= t+թN65 l3(h :qCAқ#B ڿ;bZFt膳^tRS&1',mc@^c .~}g5XJ:،g9{AG/jEf<?(:5T)Vgmxwi]L[-HBqAÅme.?8-sl3z ^y+#+ܿ`b<gW'w-)W +h΂oIb.<$n\ng
endstream
endobj
-11643 0 obj
-<< /Type /FontDescriptor /FontName /LCRVQF+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 684 /CapHeight 684 /Descent -194 /ItalicAngle 0 /StemV 109 /XHeight 444 /CharSet( /A /B /C /D /E /H /I /L /M /N /O /P /R /S /T /U /W /X /a /asterisk /b /backslash /braceleft /braceright /c /comma /d /e /eight /f /fi /five /four /g /h /hyphen /i /k /l /m /n /nine /o /one /p /r /s /seven /six /t /three /two /u /v /w /x /y /z /zero) /FontFile 11644 0 R >>
+11675 0 obj
+<< /Type /FontDescriptor /FontName /LCRVQF+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 684 /CapHeight 684 /Descent -194 /ItalicAngle 0 /StemV 109 /XHeight 444 /CharSet( /A /B /C /D /E /H /I /L /M /N /O /P /R /S /T /U /W /X /a /asterisk /b /backslash /braceleft /braceright /c /comma /d /e /eight /f /fi /five /four /g /h /hyphen /i /k /l /m /n /nine /o /one /p /r /s /seven /six /t /three /two /u /v /w /x /y /z /zero) /FontFile 11676 0 R >>
endobj
-11646 0 obj
+11678 0 obj
<< /Length1 1705 /Length2 21472 /Length3 0 /Filter /FlateDecode /Length 22554 >>
stream
xڴspݺ>LI2ѱmۜضmcLlۚdm֗y9sW]<}^׺UUPAV(fkDHU62010
@@ -37490,10 +37641,10 @@ zeE<$8Mjl N8.奵g[AR8 8/ח)Bk.h!kյ is'qnpҲ̠
7%G"2 Lç#\1P?+ i:L8
endstream
endobj
-11645 0 obj
-<< /Type /FontDescriptor /FontName /WCAPHI+LMRoman9-Bold /Flags 4 /FontBBox [ -501 -299 1649 1136 ] /Ascent 700 /CapHeight 700 /Descent -194 /ItalicAngle 0 /StemV 117 /XHeight 444 /CharSet( /A /a /b /c /r /s /t) /FontFile 11646 0 R >>
+11677 0 obj
+<< /Type /FontDescriptor /FontName /WCAPHI+LMRoman9-Bold /Flags 4 /FontBBox [ -501 -299 1649 1136 ] /Ascent 700 /CapHeight 700 /Descent -194 /ItalicAngle 0 /StemV 117 /XHeight 444 /CharSet( /A /a /b /c /r /s /t) /FontFile 11678 0 R >>
endobj
-11648 0 obj
+11680 0 obj
<< /Length1 1769 /Length2 19553 /Length3 0 /Filter /FlateDecode /Length 20656 >>
stream
xڴeXݶ6C ݽ).݋Cqw-Nqw(o{uy\ɓass{<I(HDL ,̼
@@ -37574,10 +37725,10 @@ w 9ʺ&` $2"*Vb*ɪK v03=ph)͑ex%M
DzTf2L~+,ү|j ڹxtqy0r%~smFm&vmGlF[hlj2WZ*V4Q@
endstream
endobj
-11647 0 obj
-<< /Type /FontDescriptor /FontName /YSYFAJ+LMRomanCaps10-Regular /Flags 4 /FontBBox [ -496 -290 1501 1100 ] /Ascent 527 /CapHeight 689 /Descent 0 /ItalicAngle 0 /StemV 89 /XHeight 431 /CharSet( /a /c /d /f /g /i /p /s) /FontFile 11648 0 R >>
+11679 0 obj
+<< /Type /FontDescriptor /FontName /YSYFAJ+LMRomanCaps10-Regular /Flags 4 /FontBBox [ -496 -290 1501 1100 ] /Ascent 527 /CapHeight 689 /Descent 0 /ItalicAngle 0 /StemV 89 /XHeight 431 /CharSet( /a /c /d /f /g /i /p /s) /FontFile 11680 0 R >>
endobj
-11650 0 obj
+11682 0 obj
<< /Length1 1881 /Length2 2001 /Length3 0 /Filter /FlateDecode /Length 3102 >>
stream
xڵUy<T{o_FԯLaΥ C 33gfq5JHRнEѢ}Rn"nJxό33g}=\/(Ѩ&6łf#2!LVr1nbB"1 a@C
@@ -37588,10 +37739,10 @@ x-/w2;37m'-~?uKGw_Ȣ5k?/Iړh3t)~!Uxݼ+楔m'j=ƪ
P=q{"|h\BS, ̸$N=\aQJ /,Oҡ'7f:74Ox~<MM#
endstream
endobj
-11649 0 obj
-<< /Type /FontDescriptor /FontName /WOCBGC+LMMathExtension10-Regular /Flags 4 /FontBBox [ -24 -2960 1454 772 ] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /bracketleftbt /bracketlefttp /bracketrightbt /bracketrighttp /parenleftbt /parenlefttp /parenrightbt /parenrighttp) /FontFile 11650 0 R >>
+11681 0 obj
+<< /Type /FontDescriptor /FontName /WOCBGC+LMMathExtension10-Regular /Flags 4 /FontBBox [ -24 -2960 1454 772 ] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /bracketleftbt /bracketlefttp /bracketrightbt /bracketrighttp /parenleftbt /parenlefttp /parenrightbt /parenrighttp) /FontFile 11682 0 R >>
endobj
-11652 0 obj
+11684 0 obj
<< /Length1 1853 /Length2 4159 /Length3 0 /Filter /FlateDecode /Length 5318 >>
stream
xڵUy8mG%"u6kֲcoc13%$[RBD-*= )Klef<~sw5NC4#h Z% C$`p#JPT甕5L2@
@@ -37621,10 +37772,10 @@ rW?JЧU'ΘcJlvب˅OX7RM͓R/ ]xUfA?pA?V8^+>&)M
'"Y{CWDYkW69ZKͣCs[a&^]2]n-H?tZf
endstream
endobj
-11651 0 obj
-<< /Type /FontDescriptor /FontName /YCPAMU+LMMathItalic10-Regular /Flags 4 /FontBBox [ -32 -250 1048 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 60 /XHeight 431 /CharSet( /a /b /c /greater /i /j /k /l /lscript /n /x /y) /FontFile 11652 0 R >>
+11683 0 obj
+<< /Type /FontDescriptor /FontName /YCPAMU+LMMathItalic10-Regular /Flags 4 /FontBBox [ -32 -250 1048 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 60 /XHeight 431 /CharSet( /a /b /c /greater /i /j /k /l /lscript /n /x /y) /FontFile 11684 0 R >>
endobj
-11654 0 obj
+11686 0 obj
<< /Length1 1688 /Length2 1921 /Length3 0 /Filter /FlateDecode /Length 2966 >>
stream
xڵT{<Ti/ITj)!$57\kV(3g1qLfQ(*Z"%-+* kRIEQ[yϜ3}xy4rBL,; ,^F^ , )4I_X8",t3!!B B,HB s@C8G*%_x"n h1b
@@ -37640,10 +37791,10 @@ xڵT{<Ti/ITj)!$57\kV(3g1qLfQ(*Z"%-+* kRIEQ[y
dfok2Gg)}$\tMΪu?Xg^Le%YwsB3ScJFliꙙCs{lP>Oᤓ> KݼWsNJ@rĪBlu^)q7)iZyb#ݶ܆h?TiJ_y4ΦpjBlE~Q ]d! x681} J|C(
endstream
endobj
-11653 0 obj
-<< /Type /FontDescriptor /FontName /JMCQJH+LMMathItalic7-Regular /Flags 4 /FontBBox [ -1 -250 1171 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet( /x /y) /FontFile 11654 0 R >>
+11685 0 obj
+<< /Type /FontDescriptor /FontName /JMCQJH+LMMathItalic7-Regular /Flags 4 /FontBBox [ -1 -250 1171 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet( /x /y) /FontFile 11686 0 R >>
endobj
-11656 0 obj
+11688 0 obj
<< /Length1 3033 /Length2 34723 /Length3 0 /Filter /FlateDecode /Length 36368 >>
stream
xڴuX= (ݰ
@@ -37831,97 +37982,84 @@ aK鲋VJBjW0JoՏ]˟ 7s*:C#ϭښ@@#ʱzPU!
~3^<@ sS:xư֧>O?`$Ic|քMDRQ|8g
endstream
endobj
-11655 0 obj
-<< /Type /FontDescriptor /FontName /CVXELO+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 0 /CapHeight 0 /Descent 0 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /A /B /C /D /Delta /E /F /G /H /I /J /L /M /N /O /P /R /S /T /U /W /X /Y /Z /a /at /b /bracketleft /bracketright /bullet /c /colon /comma /d /e /eight /emdash /endash /equal /exclam /f /ff /ffi /fi /five /fl /four /g /greater /h /hyphen /i /j /k /l /less /m /n /nine /o /one /p /parenleft /parenright /period /plus /q /question /quotedblleft /quotedblright /quoteleft /quoteright /r /s /semicolon /seven /six /slash /t /three /two /u /v /w /x /y /z /zero) /FontFile 11656 0 R >>
+11687 0 obj
+<< /Type /FontDescriptor /FontName /CVXELO+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 0 /CapHeight 0 /Descent 0 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /A /B /C /D /Delta /E /F /G /H /I /J /L /M /N /O /P /R /S /T /U /W /X /Y /Z /a /at /b /bracketleft /bracketright /bullet /c /colon /comma /d /e /eight /emdash /endash /equal /exclam /f /ff /ffi /fi /five /fl /four /g /greater /h /hyphen /i /j /k /l /less /m /n /nine /o /one /p /parenleft /parenright /period /plus /q /question /quotedblleft /quotedblright /quoteleft /quoteright /r /s /semicolon /seven /six /slash /t /three /two /u /v /w /x /y /z /zero) /FontFile 11688 0 R >>
endobj
-11658 0 obj
-<< /Length1 1892 /Length2 20973 /Length3 0 /Filter /FlateDecode /Length 22119 >>
-stream
-xڴeP\55@#qw w@5%{GcgιjUuSi0ٛd,l
-@go0Ym
-rrSѼ! [_
-Ji-.KrR'>JL M- hϠ)W`WKkޜX1qm^lK&->͢P!'_+tFK\;ȑ$kgW̫d
-o-ynE8N6XDmċm{h`Ìq~(ވCW~%h. ^D78i2PJ3ozםZj<OXb +L6I8D;c(:(W|>P_X^BEԨ-Q{. +. dEՀI-Krp>Qv&-hKjYe ͝2 ғ>C` Ge&>C{6F☡?NN<mJn:j<g'<r^Dԉo43)g2t2zMDC[Fx3fS/FI'ws,T%2楕cVsEѳu_]ZyQ>"
-repL{H/h"}̧sqd53qٞAryy[GtL40J>u)5iQ"DU""pJ~h9Pq-q
- _b`T%PZY!LV@苚^}z3w6LW#- ˢ+itN8.-9K~uu[
-ul({BѓQze/!3g:f
-!)KlG./03N`Q.xc<̵҆Ԙo=Lޡ&Qz~4?F{ZX=4yҲ1O*tse] { BWNT(0~χA3_Gx
-Nեv~H`_! G?HEP ͊OKP QJaGcy3yvb/
-= ҁ+δ5ofji
-$,BFPZDv>KבqեOҌYHHe?#~#=+ ]׿B䌘`\ERV01Cˈ$=: - ~6ĺlSM?{4#âƎgr`cBq7ݡoĥ C=/@BGo#{[,kNkҬV֞*}gr W![''e?q9aE8aۧN-_ iC/RN]Ҡ ^eDn<W}]:@0Đ ?#P(:i;1PA'u5Ip`сUBg+&*ulـ",ૺN҈+!A&*zYF9VlW7|6w"'>/~͖7bwٟR$9Rה b#o Nz?9SLz$aV,D=FIi4>N\$MN"hkēg[93wf`/!?E=iO.1 jt;>iu PC#N:®edߙʩ|D)Mzm,BM#S6ȭ%QCH굁RNq*E+ҏHDt Hޝ !0 tȹk-!
-=X[W+
-^ 'gM#/.sЄ8߽12Fw+)C8:6A| ި:ن9ËY.CQ|@޶+Js3FrpgkHJqh)7*߹"%muYT{%JZb
-1Gh7 >|Px\o3?a,̝]}.>R64$F|d٢IZbasE }o_:8@|`CݒUk]"^[t'Sp4l2PڛæG-SpJ+KD7(3S(/`I3zi[kz=PVfkL|eM.a./&oaJF v#SIitԃS.Ncܭ}0,/*rghԊ'a:[|J+:sU5B:=S7m_;ACHPrR.R/ؾx (<YR0Ӽ€}%WAЭk㭉MA`E܌2ED=aj?{'oҭ?a蕝Hl/"(wпqצB
-8⸕
-TNqPy*ʴnյ7?Oۡu ;g=bsֹ6ի~J
-Mʋ0ticb#B,P kxkU}Y\qKؤ?Ҳ[Cه=4G*V944L7ڕv`W*˜W%ʲ )62?h rcm%uaȋq-nMpp+>JQ{%tk|m"K(kvX젨ߝCA g+$ 6\mP]ٜSxڿ =}.'UB)7,W2x~azB<`t,W̱ĉ׆MCex{c:0Ä[rhm 3'nu$ a*94n) EUDufMYZQGṢf j
--IK> P~t;ň,2ˠs`bW [([benP-!ܷyf{p$]9b<mн3xm.Qr561<d
-GE mٍa
-K>w\M;&Q8_4Ikx{Kö 8 jtWK ]YļaO),Tog wg'6I|ۼ_OҋH}؇ɃA:f'5.֯Oe5IAx[|Yv:SB]"agb"j~>u;-NB껇QKF,li<$s-"u
-_6@F1ya]V p^9ͰsڥG%W u;7FlĕH+"bz٥rɺ\`Y+tFoԂ㭬#^bW, D.H<7Q>ר])iJpQ2,*X(KA
- \
-u c)rﳢvߋsk-@ذ1";x&ίX
-}B*m(ok+Gw\3Am2\`9imƈUG+5xFjMBѮ>Kl}@{3%_׳<J$rF}
-R=p\.cn=qvŪ%$*okI8[`"gE]ӺV}:2e E49C#!lv#F-)~1$DB[rຊG[a[Wh_-&ܳ6v;焏k}#@߬&9xqKEUy_{YԺJ.׆O{ڞ`l.2|qSra!V _
-d,jbzQ9ɱSp{U^U?n
-u+q
-d wv8)C~{5K>_ZWIȫ'.@wM4_"
-xeKxDPRy% $t_yoHE`#8i|:<uz7,Q9rZmfnJlP`2y4=SlSJ )_ހ&<
-(JlfPd:3 eVNt~ǯHgwh(<¹%ͳ V'.]
-
-: C}u=RY.«W-eΑ olZDjz/3]l Qڠs4~Aߔ3Ex\x[FʋM;΢pQ̍WY?X~FI`h %0sU-f=z.P逢ck|C6_Bc,W.'ߗZ~Wj"<bN9i,gno4Rt?94֬Cm_t4g!Gc}egu$H "0G̢awu,y8oQ&¾ESD"j$Ԕ={psU|(pN Yׅ&XWAW;ۍ&FXקtaӌ}ugO .mh~Tcdd&n'E
-w-iF A$)I+:Y~bKuXgZ>S^̞!q)-
-dREfK)!1DHل԰
-|b~ Gsq4ߛtCU4hTI 5. ni*8U [K?Nپu,V'½""'bng͑vT0v[.S!<
-^ƅm`ƢtF."< -_wJ'aܐX2w7YSqF@'/5/Nc_[
-q0㖖 ]ܰ;}j7#`<B?LrG@J|uuHa_„P n2I]jd]ݔesⵛRxxo*;
-FW/S+M/\D{Kb9 ߽M%}M+6jGѪ C7=ԪЕ'։w|
-4CC&&ߨ3^Ao[n:.%H pi\&"V7*ɤ"tB {9!>98.لC&kd=đ
-Iqޓ97\0XLn*2dJO`o5Rbm}UiLvvAtMQ]ɇb8o (,Q%W ek,E^κQdtb IC&\݄5 CN6.ג/
-zWGh^]
-u[w0_1´ϙzx8e8xnY>D&a >-@gW"R=UpF.T( qP㧥Y3jV
-a$*,6& G@R\PXfmQ{itqKqe@ }' -%cӞu'+^D="]Vn$E>3vlԆɧdDeb8q;oX3"ez$Q6w"Kb C//֐0"D%'ZK+MT]8`-}fg|/<{ONQd$b)m4͂+ Wd{
-!U^-S6o~^wZ i!S|BCX}&# +4;i<sA)ĵ3=ae?;1qݣ AU,:# |N[Ɓ>1*VF/ʼn4Ŋ}
-bE$))48Îzb,KZ54,\FdD/
-B90JaHRvIS'e3<*+TUAH{S !ngE,X F.r joDd_V$a+0OGyUdO B5d⦻b';ZV*` !{} < yqlT?r7M8pXO).&MUXx
-I.n*zq+_ò .@/wObY`ӫ`wGfۦ3!ry!Q;|p"n{[ 1h= ܺ@ui;Etqw|O ۯԫGkcis֕"nt&`"pB@ifqR{IfQiX@'v%Nsv>!`E  B[[|3??
-Α8Ģ|<Fc4jlP<Szں'SU bfjv;l+ q6K&˻
-F.V$y ,31&l}g3h;n w]e)D\ξkoۭQX3W}ӈp[z'ģ eg 5L0FwZ m?.o'*1nF7~@-9-|L8u)ȸKtU)&d>% LqG݆u3s75c vGOc)FJapq!}>ɚIVOmbK5URil5yFi5pɘ #fq{:U
-#g!,ы1cGjub\rC5yi>lOE~NYlc~,Ln ;ccj{̴ vϾ'SڞG0h@V#{K`)'э4~\N1Q[4 ҹ#q!o1f4c=' 0b$N+3HbAD.zB6%U$z͆.|Sy{4U ߗ%&[},'u Wxq-Wȝqbey?ZM(s){iA"V0Oo#}0(:T"%IY<ē0EOc*ׅ:?;m8H)&v\OY''@TQܖΡm 0Ӕ\k9Uw
-Ύ|?}cs q:z/̲$Nd}ՙ+z(yKrbةȚͧ<3W&eh9) că[
-`
-UUK/&ߧ!~ [р}y
-$YuϮ̽02,.e%lfNRƘ $qDF8ւ;C ޶ӎE4A%dܶ>& (&@cgNk͖[j/]wD#VJ;hu[YV?- //4=ڿ ͘SDZg]Hiw)buҧjͷQ7Q/*Sn3(EE{q w]Ԝ,ry~PnFk ǯx}]Z+rW)Ewd~RI<AEi<,3hOԼMFhz7<pCئ)j8<#WD;S5GwbK}z_~KMS@-Ճ&ZU] zYpo#j
-';mgLp |RvA<Mp-Xا=6S;6> hI6 H<^nWɂ\v,ЅwuB_]ք Ho=IA̬PNhA3k.7/9S)%*йֽU(6:-qcbR)p"4!G b\$ڛS<]өn߱ΨR[[D}FMV)\fx\D4.fx]7,4 MiK,QV@s1VO06U9COD[~؅8{Csk]1ʡ[Ე)k0AgI⒟87VMBÁ GP˰Ӕz[]gfv}@!h@xI <Yy:21Ɲ
-~q~]f)ozVno4)Rcת~Awވ]Om4ﭗ,6k~L6yļ^"jb)t.sB<mɻ ׸/EXK{uD: 
-3s 9':hNy PgߝUVl%T:z")d/&1&(F/)._aj+иqm&_u`,6P6[Wv6UxW0sF,L ~׭:8^.g=)Wj2`aunW_JP3 򟥾,ߦ @|/#xj.nI<gn:MF B=Q/뼂us;g뗨ҳ;`>d6K@/*]5D,4Ϯ} e b{+ߩyse7-,ZYlk!T0ƭ9x]..f.EKXrEynS*u%`/SPauMse$pF4c)*F3MHťc64Ngp*s#',D%1V>x3ƨM1Cuc԰2JgN
-哃E;- "E9wIiRE~tL
-ݓ<+%">
-ر5PEX5L#i?Ys{F0-adM?Pv`ݪh8?b|c?:M9Ծj\cwzbfl|%~ (ETһE:\Ò(}\ο *k2/4W+o ڥ}͑/ܲOj?6UOPmt&yaKqe\1*'9<6L24 G%C+-7~x2 ۪сhx$R~}g8<m&TF\6+uū}&l
-dL=dxغb~o@WKJT a1wX<\?e0KŇ)$T
-usyck7HM&Ɖ<1#ҁ W7jH\]u2t,tl]sA#̌/tG.e #WU*Hh q!(nqZ2|YؑP n]o
-"F񅊻^{^MNHۇ*ņQEFV ‚-sjV<p=wCߘm[vatyYaNؼ#Γ:XBܿ
-E;\3Wly@DI5vH-Ļx./$cͪ-
-
-|Nd |~W^ΧL= f,ľ ?R݅iC C%ob 5C0[[d ɪ+TJ@SBt~n&TH-ƅVY*LCFMq꯹TI9ݰ^7&s#4-ŕAn'-X_m"#r93ؐUkfj3'MR#Mn]JpyF~dJb 4PW&<7Ҋ< (Uꗭaid^ ] .@Pfo1
-! uGG n\,YL7XF`ʳ?/P zppm93J=+1HK^5$x[),=۲?Xea让3n+f1089fϻ֤g!㓈[{p 2Mh M3 Ijlͽ10Y=ӭ;2!6+~T0#r ) quK6<6Kül\aeZw Ԫ<x~rrPsd[}I&:~n>;sd Ja w|KgptL{FZk++cLy
-vKY5*<A钯Rٳw9i5™(~c'ΫMٵF4sfA7xMj< /gB \'
-tKg<
-$Af)_Lʁ}/O0,,G+
-]?%S2҉ _vfnBW40rOr jKx񿤪)Ѩ@s7@wӝ[f"$E4U :6M=חoU*qIS#ߧhjI<Co a>ҞU>rD}3fCF\p2&pcuuPn6p駻[_{㩸 UI薊adQOMH
-Lf$CH/V1Gzŭj2Ls5.qlZ5->Ow:0oF*e%9oFTORLy|ymkO;X#M3 q?MD \D#y 7 1y:b*UzTK
-c_HRh?v?mXaޜV
-UpWe(B. FY*3b1f`z!w.ABF
-{%lYnۜå7wpMrPE( ;f?P4NLsZS/ި4Zgؼ|hхy,gQs0VIef*4~_S9i2'}St~^(=D\2YJ:&!y순 ]. \yt!gM2FkWY6]7s:g8K&'k6=(DV)?TlLO3GAt_uT:o&h4QVDL,T Pr
-Ӳy>]k/TlZ}eL1w,Be7 "
-"hmDvSΔ^8ҴJ[W/
-a8`d]v|; FYگG@V lҍWȓ;㻖pY>޶-AҚ(GAp jn:$ef# ڸ督>³)a̸C2C)V)-me4@?q̹7zCXq %)J¡aj I9i-Igׯ`U7MmCa oel8%s$ʒ$#aʀ,{Ƿh-D߻eɤ9 h;K°Etg9*GQj M#JSɫaη?m.o(*5 %^d߶uKId);0%6׿VϽPoÀeCZSUq]U ,l6meF#Y٭@CO_-븹`oikܯё3H_TT*_.(/3'FTpqODC[oslv;pkFUjoY#^)j:Wj0kn%b**6lI3{ϋ^Q:UjzVuR+t5}'5˳>1&DT7ЯǪbuF-g7eҹBM? ǼO%ԍ$Hq|ye<A(49
+11690 0 obj
+<< /Length1 1875 /Length2 20880 /Length3 0 /Filter /FlateDecode /Length 22069 >>
+stream
+xڴzcXmv&\ٶ9vje۶milN1Y1 S_smm:_gQ(2$\Xyr*@;V GA!Xۉ]@
+K,
+[
+}P$Ͷf~!yr<EzY^+86mҷniJ^1ͼ3󛫯a8ZY˭rY]r&Rw \y:R"[ p,~Z }øa rQL8//`6 rc*z\*Vg9ƷPL Q)O*ջoz.q879Gu!t 
+q x4YyghE"NP~PtMtpX,*{2Q/&4aļg!|jh_qŞ%'Gw)BFA!(2 :%:숸3 B~Y̐՜.dz./Rl!,UL s 1.c$#_FRuf}$72hrVD!_+"?e(dX]lHk^45̍<HE cm?rI] {cA. _$,dcq -F|5KۑIPh-ݢkcP[|;¥+5|<JCB)HG-b#0(X hS&gJ5w#iofz`AQ1||Xq%ݪnn\VGLV{Wurfwqct+(jz:)G Ad 'ޤ|#;h7 u4 'J," L3 Szd ԣ5I=4Drm$ u<5Ϙ6H3^gxsq^-a*X9HI7 ~'=^Fv##w F$M/0V!
+<,C>"SY4Bs}^H
+4-,LD_u -R:zf8ED<墫L{;!]0GW=95}٪F;o
+U:+ze-g!<&Wy ^
+Uh?@[2L5|wL*L. Jz.eUFN Ė"Yxvs[F
+n>"oԪh^`c&BPـP؅1<h@+e&z OP؉B= MU][TbQ<#ug]%OK,Գ{+θ`ŨC[ p?[$#L}2͍aQ(e<zctވi=9ͨ^V7RM+L<>WW˪aH&'kV/rXٛ{;'8u$X},Z$5u#%7BS8q]?9;3:I$#Ɲ4Up%J%,,Y\B` @8=m=~%bϗMI2M,?HĘvse:gK\uKLjg:-Vw(< ^ X+7%kuu%},;ef\!&a>Qި9H_im~TLf k 9ؘy}?su!x䓫 &?2g8
+o
+d ?A ]0G{
+қ)zkN[w١/?j7E
+~!(5zj8H2Vt| 3oq˵_V]3cII˶ݙ$bG $#R!
+qJ!܏E,BafOz2.k_k{*S\D]e2}~WŽu&IL23(US?E*gQnZ}<I5ޞCi;kd]U7M% +2Q)hq+'RM%r\Fdd)(ŵIQOk'@ C}ίx{_W;ǥVUŻoMɆFO 5`\1јg zڼl=1ɦjclh=
+Tg`۪#r7{lC\ M4=WkXq^\MWx{j':9Z"4)4?5PU~1Ģ${ӹmH.9(?(!pr,*S 0 Lv waϻZ*ۨe/^=7Y}>Bh' @qjڇt.saVp)(diě;[G,'"W}((K_é ײ1:6&4\8tm=%lm=@:-XP,Ȧw ~dM굈Bc9+\L j$}/ rdCrTҢ4뢴8|o@kCT3K]P<Ő\#g*Ug8bUxNY'ZrEg6UՔ>W ;yQ:{.ºsGWuYer`3ER:8,Z*BlӪT#}y$iFĩtď±m&0,[ nH4yy@la"-7Vrvrgm0.C+)S"
+Nh^gqG^WԽj| Twq0K\Nda&7J4f&ekXa7&xJis)iCFMS#Eq.8O9qn)ܥB8M# C1ubX,\`KKR_7 ;O,IWOֆ 4gfMHH}TL6bjQ3TTO<
+V"跳d .":grQ'CSAI#dmes]ӣP&[Hk8B o^2n f&Gz zl)l>튛`%=,#ؑk)ALGǢ>nۚRП{tS I޽:;J^v`I@pvGv-W[tc_=eJ .?a俐l"?ЉԧTeꠇ ׇx@u6y dM|=ڗ<WŞa)xKS&uK!Ć&ks4`~JN. sڗV?8Ubvʱ*Yau!^gT`Ř{\[u2+kۀPV|2"3k}\T h0[$<2(xūת,{xKG#s1l\4=fC+Dc{y=%Ufz/ŽY*6惌d:+u:Dz6VIН}[&0`ܘRx6q:M429{)//5'`*XA1&b6yrB3@De0yLw sG-ӯNWy ѱ*ALQY/O36ll6':1W/QwiBPM&Pi^'Ld'VG# ];!b;`9&Ol£=AFUn:`!4?LvK㲣L̍e˺<QFL.4]xo7rjEr҆dȸ!v*rNN4| f7=ewh{7^{C~U+ 6/)U*VUMGe?GӋ(m
+
+48  _;هk49yV4(]M˦q-`Mg ]܃]Ҵw*ZN&ތۧ[mp+Ϟ1JQaluqiy!@yгZ"tױ9nWO*`q& y;F~@Ֆ 1t2Pzpj `Lcb0"s n0s~.BsFTsYY*3zdZMs&Hmv
+W!+džX
+~)@owƐRM x,fkgXFD"V`jJ,APƽhb,UTϥD@et' V^9t"6Ζ P#m(
+J;(r\)վ]Jt4m
+cmXC!"B n$v<ŮJ;ǏVVdigĘ(dEuH!gj! QHܚLI@,n;0QHIr0hiU+`Ҧ.BBGQ~BF]r<,$a)gYMļ7[1%mC裡:g.kØ3Q <U$|W27.(0*lsbJ5C ~lKh,fZ
+F"QqN* 3;t -FvO%P#%pwU4*N1V8p#>QW_Z%-x~ EiVUoG|C6T}%`eQVAmG ,ByG')Z e_` p0rIb#z [ZX@m)=:k'0<aA
+9Ki&^aa]OY&vi4_vBsM'_9(:s= s33i>Uc鸟>4bW6أHV@GPC%i!
+KĊe%{]]Fn}M2KJ3iQ-+zlWP:"Q$oɯ᥁A&,2ϪJtx?ŧ&O͵\O1@ە(qU*u]OB<)^HDOoC/*e^8Ohѐ>GDO7Chk]>"Ի>h%p[CqJ7e&~k:s- Ab@hDH9&v"#}'&#-f7*i>[\'3wcs`S~K!JDЀlR|ܬ!OYFrXt TIBq=~yh
+#_^HEP⟘֪% }8l_>Fc@G(:^p;)%9h=r^!F,l@<a0AgO6D>:P%l@_hpb@˥V7ÝjNm;[l/wП>Dfdz"J=N:b*$U𡁥\S;2{VJ
+ '!G p3LhH4 ON wL2X)Ykl :ًkV˵e9E k:#r],C:QDr,m:aՙZDv9R [&G[gU4i/*wCXteWoo iQTqD| ̥e"/o5ȏЋB)_wP!JؘUg@0¯=FS h7elߡc .l̀ˉօ"2(vog?C/3z6[5Gb, N:=p*ʌ?䔼RsJzQwl
+#`?vj,E;<7[zƅVTʼn)km( t۩wxjhiBZe50PA@4ai9| blajӽvUc*GTq}ǁ׈&%WS
+#kZs|O# 39xt+Ǧ҇sztoW߬Z1҈;-HBve$iX/CN"[3^F,8QqbەޗFKà( P.hC>\aچvBw3NiӠ(+,g>ʃVLBBJ%irPLL.,@~.YP
+#4[cj*qOxykw̡
+j/T=G"M=[%{>ML"BQ鯠(;15:!ҦZPQr%&\К'BIgKGi®[nDž*1}r:~ĥZBnFe5=J0Ĵb;O؏S:jD> BgJחy[C8V9ȐϿq+&}}kSAÔzq6Z4ءKTvk -ԍw[ ݒQŗ;@8wsc?=B9wIb.%ji'y}]硫%u28[=棔88EjFϐߔ&8.J@heQ^Uub#BI-*7f t&maKB5 f(g C͑ 0$H22%B̅k1<{(fc0^gB yq {mkzk S@ՊσγRzXvWҳe/af/So,a|ENbNxQq7R7hAm '9WDgPzxX1zQTV9spIyj|rF<#+xΔ$gr.3L_Rg2cu;2}CvH4΀dmVjvX)MĦfI?vͽ^.
++zU<z1jw%NX#5GﷷNޱYV{POv5dcl{sC0
+NZ%RiV]6]+m
+^Z!
+]㴤Ib(hp͕4ꡘxL*Dt9*=G _ />[ډ-, J~5Zۥ% H &^ @f!{Dbd[P |M;\Q^fb4C6F"fjaG۰۽y]}n)0:Ƶ)ѱ)ſ/7 J1
+{ݹ'FVv1x<Hצ8oKs  K<XL( }<)82sFzl7O%PU:K%\C_֒r3|G=y%SP$Fp|AݽMtV:Ehc[dLt?iH W6q$yt.WMoNd꾉H;A eAU{WP Ѥ[LY w|Z/wfڶ5KFyTa=jxXp?;NNjuw~t
+G:˙8w&5X\XpY9+
+=G3Hф)ɶ; -כ- [s0QC!MOa= cOʓANgaE:?Gk xN|h6KdA('YcjنM;3VFo`Tb^GNQFt
+7iا pq/[|Y[#6p5̴giL= ?ѾSo|n|Y.j5Jq(S-c
+yQ$,A+F>3o L@81eЁ?{A8^gV _\ F$8e"ݕ7"8%V)zY슘 -3/&tGw
+A«!ԣ=d3i$Pt4 2 s.fG)b7
+HE:?po->9/ʽMC;/5a+W2"7`;ڶC ND;}*
+/R7"gez7WjM欎 4ps
+#
+SR}unw1oʓ(3C^,6&sh,
+HFi)6QQx[N]I(g se&Ys͉^a
+QBo Doغ}IZµL㋍qhaT{H~WDK
+Fp,$ tjwTB-E4[]/n^Kj},X1 }`Z~cp?._*
+G2U9]fOC4ذzɞӞ6ˣCx-4un'烥SY*D5'h`{!7L|Vo
+7>wɅ\:
+t¼Œ.桚hN#j4hE1&ØSa*E4
+hp# ?Z<JK_
+odTjІt+%F)<&{
+4%dC4aEyڈmHE-VwF.ƞzhy u MW;5yGн⒒jfT\̒2MɲZ;]f@޽]G}ǚ߆=v$mW{/_<,Tcci1K|9H7!5uc3{`4N+%0h-eH\o!9/)[>B
+K*2_3pʼnns5"qFI\0,{ I$Jt R 0&v`20;aq)H';sm
+uʶ)PvvHx{ȗre>3m4 sP/?[v0{L[
+dmj"YAb}7mXJg3sͬo" ُ8.6`GueOW ^R3jhנɠvtQeW{z0񙘔ZԨz2OݫttF2lƺjAZ`\F>qWWY$t*LѻxmX 2n?ݮH:"@\@xV@l#SǛOW@l"dΟR|IyzH~#-C(>ܫa5P*6sJCJr#OJ @Z+~OVrD5$JtoC,E_EFk\y<[04
+Yyach7H;IAZتm%nJP`c(>K֛-a~ؾcǽBKt ^ 3xv%k?$'*fwul
+FT閁ڰ=EEeP kSpjYzo(u#E!!l"glA\[w=S]R/YF^DuyVƭq#h"2vDI_P>"@|0Gy<pVPNe/Œs 9x1Q1)<s> M6dDie>X<yA˔}g ]n*se}4>aTM
+m5O$56~$SO(<5<s@ )r]or*4D:p:oyn_xJ6%ۓ*B?$Wz.TRG.`$$̆$U+ OY< TU??ko!c~uQG`%UcȍYK%: PZ˶YKwY8UOH=(^A)rǪk;*04?KÙLvysw.rU~f(!a>]</ɩ?'R/؜Ϗ2Ͳ)KىO(}܎?>0*Jb6Uh'a-,bx /$2*>qB1T.GaՄt+?D$J'ڣm+~E {'g7 C,
+0Zр9_QhX)p4\7JJN/fFطjX.F&GlG>9b
+%ƃ$p4Z@ "wu0ٲ1 !h|qXv^ҍ<-UĜD(bG 6ރGU&"q+-G#w.\Ԗau6>0V5u47N Ҏe
+KC 0;#(jGni9'^|@Dpz
+'
endstream
endobj
-11657 0 obj
-<< /Type /FontDescriptor /FontName /MTUVDN+LMRoman12-Regular /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet( /F /J /P /a /comma /e /four /g /i /n /nine /period /t /two /u /y /zero) /FontFile 11658 0 R >>
+11689 0 obj
+<< /Type /FontDescriptor /FontName /RBJMPF+LMRoman12-Regular /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet( /A /F /P /a /comma /four /g /i /n /period /s /t /two /u /y /zero) /FontFile 11690 0 R >>
endobj
-11660 0 obj
+11692 0 obj
<< /Length1 1804 /Length2 21821 /Length3 0 /Filter /FlateDecode /Length 22965 >>
stream
xڴct-mUlv۶ӱձm_]{>72{^w*2"%:!c[C=#7 "L
@@ -38007,10 +38145,10 @@ G> -ZG#T,293cp׿| Q1̕eF9<_?駘؁RU7Z]C
r$`4TV+;_q/MAFGہė`WRޢ IGɶA5q$, zV<'Q'6UQ&tf=C-rq_Sa7E=r9|WxF9wIܶhhJ;̝UHaH@dg|3P.NDhzcsK3
endstream
endobj
-11659 0 obj
-<< /Type /FontDescriptor /FontName /JTSGNV+LMRoman17-Regular /Flags 4 /FontBBox [ -400 -286 1338 1125 ] /Ascent 683 /CapHeight 683 /Descent -195 /ItalicAngle 0 /StemV 18 /XHeight 430 /CharSet( /T /a /c /d /e /f /g /h /k /o /p /t) /FontFile 11660 0 R >>
+11691 0 obj
+<< /Type /FontDescriptor /FontName /JTSGNV+LMRoman17-Regular /Flags 4 /FontBBox [ -400 -286 1338 1125 ] /Ascent 683 /CapHeight 683 /Descent -195 /ItalicAngle 0 /StemV 18 /XHeight 430 /CharSet( /T /a /c /d /e /f /g /h /k /o /p /t) /FontFile 11692 0 R >>
endobj
-11662 0 obj
+11694 0 obj
<< /Length1 1790 /Length2 21416 /Length3 0 /Filter /FlateDecode /Length 22479 >>
stream
xڴzeT\˺m ;ww ܡ=ww];<==RӚ5zMNL/dlkqgf`)Zm8@V@
@@ -38099,10 +38237,10 @@ Hp{${9XGm犨L rEU%-DvnWP
HrFWjXr
endstream
endobj
-11661 0 obj
-<< /Type /FontDescriptor /FontName /HUFBEO+LMRoman6-Regular /Flags 4 /FontBBox [ -515 -298 1647 1125 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 83 /XHeight 431 /CharSet( /eight /five /four /nine /one /seven /six /three /two /zero) /FontFile 11662 0 R >>
+11693 0 obj
+<< /Type /FontDescriptor /FontName /HUFBEO+LMRoman6-Regular /Flags 4 /FontBBox [ -515 -298 1647 1125 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 83 /XHeight 431 /CharSet( /eight /five /four /nine /one /seven /six /three /two /zero) /FontFile 11694 0 R >>
endobj
-11664 0 obj
+11696 0 obj
<< /Length1 1791 /Length2 20995 /Length3 0 /Filter /FlateDecode /Length 22169 >>
stream
xڴeX\ͺ-{pݝ
@@ -38193,10 +38331,10 @@ R{
1 HΫ8yQ+z-V&9^<.vٛuaa]PX
endstream
endobj
-11663 0 obj
-<< /Type /FontDescriptor /FontName /SXHXQW+LMRoman7-Regular /Flags 4 /FontBBox [ -483 -292 1562 1124 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet( /eight /five /four /nine /one /seven /six /three /two /zero) /FontFile 11664 0 R >>
+11695 0 obj
+<< /Type /FontDescriptor /FontName /SXHXQW+LMRoman7-Regular /Flags 4 /FontBBox [ -483 -292 1562 1124 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet( /eight /five /four /nine /one /seven /six /three /two /zero) /FontFile 11696 0 R >>
endobj
-11666 0 obj
+11698 0 obj
<< /Length1 2449 /Length2 28789 /Length3 0 /Filter /FlateDecode /Length 30195 >>
stream
xڴzeT˶-nin qw @pw .-x瞓Ͻ`@3Κ>"WRe37Jۃ\ؘY
@@ -38329,10 +38467,10 @@ c(
)^2ň!+
endstream
endobj
-11665 0 obj
-<< /Type /FontDescriptor /FontName /PQFDKJ+LMRoman8-Regular /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet( /A /E /I /L /M /S /T /W /X /a /b /c /comma /d /e /eight /emdash /f /fi /four /g /h /i /k /l /m /n /nine /o /one /p /parenleft /parenright /period /q /quotedblleft /quotedblright /quoteright /r /s /six /slash /t /two /u /v /w /x /y /z /zero) /FontFile 11666 0 R >>
+11697 0 obj
+<< /Type /FontDescriptor /FontName /PQFDKJ+LMRoman8-Regular /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet( /A /E /I /L /M /S /T /W /X /a /b /c /comma /d /e /eight /emdash /f /fi /four /g /h /i /k /l /m /n /nine /o /one /p /parenleft /parenright /period /q /quotedblleft /quotedblright /quoteright /r /s /six /slash /t /two /u /v /w /x /y /z /zero) /FontFile 11698 0 R >>
endobj
-11668 0 obj
+11700 0 obj
<< /Length1 2080 /Length2 24299 /Length3 0 /Filter /FlateDecode /Length 25582 >>
stream
xڴcx]>QcOlmۚض4Xݤqcvcu=L΅νo> 2P֙ #dgchI4s6t032‘ ; -lE \
@@ -38440,10 +38578,10 @@ Z7&r`SWm/
31`l>2a+ß
endstream
endobj
-11667 0 obj
-<< /Type /FontDescriptor /FontName /BYGIQZ+LMRoman9-Regular /Flags 4 /FontBBox [ -443 -292 1454 1128 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 90 /XHeight 431 /CharSet( /F /I /L /T /X /a /c /colon /d /e /f /g /h /i /k /l /m /n /o /p /parenleft /parenright /period /quoteright /r /s /t /u /w) /FontFile 11668 0 R >>
+11699 0 obj
+<< /Type /FontDescriptor /FontName /BYGIQZ+LMRoman9-Regular /Flags 4 /FontBBox [ -443 -292 1454 1128 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 90 /XHeight 431 /CharSet( /F /I /L /T /X /a /c /colon /d /e /f /g /h /i /k /l /m /n /o /p /parenleft /parenright /period /quoteright /r /s /t /u /w) /FontFile 11700 0 R >>
endobj
-11670 0 obj
+11702 0 obj
<< /Length1 2115 /Length2 16804 /Length3 0 /Filter /FlateDecode /Length 18109 >>
stream
xڴeP]۶5;!H` pww n݂gsWLZ6hcZUPNF
@@ -38507,10 +38645,10 @@ jT<ۻUCq;΄x>t@;AUKeFǎ?TY[h8;( ɰpwna1JV
a̚;uPM`v{'k4x9*37ΨxVuV#^R
endstream
endobj
-11669 0 obj
-<< /Type /FontDescriptor /FontName /NRYMBG+LMRoman10-Italic /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle -14 /StemV 56 /XHeight 431 /CharSet( /B /C /E /a /b /c /colon /d /e /f /fi /g /h /hyphen /i /j /k /l /m /n /o /p /period /q /r /s /t /u /v /w /x /y) /FontFile 11670 0 R >>
+11701 0 obj
+<< /Type /FontDescriptor /FontName /NRYMBG+LMRoman10-Italic /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle -14 /StemV 56 /XHeight 431 /CharSet( /B /C /E /a /b /c /colon /d /e /f /fi /g /h /hyphen /i /j /k /l /m /n /o /p /period /q /r /s /t /u /v /w /x /y) /FontFile 11702 0 R >>
endobj
-11672 0 obj
+11704 0 obj
<< /Length1 1668 /Length2 6617 /Length3 0 /Filter /FlateDecode /Length 7718 >>
stream
xڵWuTKT>@:I`dIiDZD% N%%;9fM<]kؘ !H[ J:Hg0BO
@@ -38544,10 +38682,10 @@ WHt=Ho
H"s}|pC
endstream
endobj
-11671 0 obj
-<< /Type /FontDescriptor /FontName /TXCPTT+LMRoman9-Italic /Flags 4 /FontBBox [ -469 -292 1419 1127 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle -14 /StemV 65 /XHeight 431 /CharSet( /n /o /t) /FontFile 11672 0 R >>
+11703 0 obj
+<< /Type /FontDescriptor /FontName /TXCPTT+LMRoman9-Italic /Flags 4 /FontBBox [ -469 -292 1419 1127 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle -14 /StemV 65 /XHeight 431 /CharSet( /n /o /t) /FontFile 11704 0 R >>
endobj
-11674 0 obj
+11706 0 obj
<< /Length1 2013 /Length2 26872 /Length3 0 /Filter /FlateDecode /Length 28072 >>
stream
xڴeT\5@nAC4]Kg3 螥sSU-,
@@ -38652,10 +38790,10 @@ vkHEQ.ێ#N7
Q[~]x<1\e\^l?ըi?5|JX 4T}~0* _xnn SZѵ(`_
endstream
endobj
-11673 0 obj
-<< /Type /FontDescriptor /FontName /IATCRU+LMRomanSlant10-Regular /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle -9 /StemV 89 /XHeight 431 /CharSet( /a /c /e /equal /f /hyphen /i /j /k /l /m /n /o /p /parenleft /parenright /s /t /u /v /x /y) /FontFile 11674 0 R >>
+11705 0 obj
+<< /Type /FontDescriptor /FontName /IATCRU+LMRomanSlant10-Regular /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle -9 /StemV 89 /XHeight 431 /CharSet( /a /c /e /equal /f /hyphen /i /j /k /l /m /n /o /p /parenleft /parenright /s /t /u /v /x /y) /FontFile 11706 0 R >>
endobj
-11676 0 obj
+11708 0 obj
<< /Length1 2065 /Length2 17708 /Length3 0 /Filter /FlateDecode /Length 18980 >>
stream
xڴeTʶ5h !84];[>s tϥVͪ2!PƉ #l`H4u2p
@@ -38736,10 +38874,10 @@ Rz;pBg5Ϣ1`é%S +DƥnQIgS${#ш$2[#caQ6
󹬞"Upwq@Ow}XL!cu(w)kO5!9a=sb k(j?P,EƝ{n> ՅcKN%U#$QAK>ICQU7yѸ!۶%0]zqyoRLhc=.2hEeC8"NqfAΗ-5T)-[
endstream
endobj
-11675 0 obj
-<< /Type /FontDescriptor /FontName /DXGFLV+LMSans10-Regular /Flags 4 /FontBBox [ -420 -309 1431 1154 ] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 78 /XHeight 444 /CharSet( /a /b /c /d /e /f /ff /fl /four /g /h /hyphen /i /k /l /m /n /o /one /p /r /s /t /three /two /u /v /w /x /y) /FontFile 11676 0 R >>
+11707 0 obj
+<< /Type /FontDescriptor /FontName /DXGFLV+LMSans10-Regular /Flags 4 /FontBBox [ -420 -309 1431 1154 ] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 78 /XHeight 444 /CharSet( /a /b /c /d /e /f /ff /fl /four /g /h /hyphen /i /k /l /m /n /o /one /p /r /s /t /three /two /u /v /w /x /y) /FontFile 11708 0 R >>
endobj
-11678 0 obj
+11710 0 obj
<< /Length1 1754 /Length2 13064 /Length3 0 /Filter /FlateDecode /Length 14154 >>
stream
xڵzeT۶6Npwwŋ$+.-.šPh#FFf\zJFQdY
@@ -38803,10 +38941,10 @@ T6WAv=T3\ OO,eI
<}ʤ}PwnՊxZǀf\1]e!5nV*98j><$Z;Q(5\Wd{n7QrAADX7nE2=U]G5+;ror_bfML<c f5O_~bgaexqYx_V̓V&)(h䲣pO־=Tv6R<uGHQ^ bA~|Aoq==z'(lţg#/
endstream
endobj
-11677 0 obj
-<< /Type /FontDescriptor /FontName /MOYMBT+LMSans17-Regular /Flags 4 /FontBBox [ -395 -305 1355 1159 ] /Ascent 705 /CapHeight 705 /Descent -195 /ItalicAngle 0 /StemV 76 /XHeight 430 /CharSet( /a /c /e /i /m /n /r /t /x) /FontFile 11678 0 R >>
+11709 0 obj
+<< /Type /FontDescriptor /FontName /MOYMBT+LMSans17-Regular /Flags 4 /FontBBox [ -395 -305 1355 1159 ] /Ascent 705 /CapHeight 705 /Descent -195 /ItalicAngle 0 /StemV 76 /XHeight 430 /CharSet( /a /c /e /i /m /n /r /t /x) /FontFile 11710 0 R >>
endobj
-11680 0 obj
+11712 0 obj
<< /Length1 1918 /Length2 13058 /Length3 0 /Filter /FlateDecode /Length 14258 >>
stream
xڵxeT˶-N]6X#AKp !@ܳy Xs٬YtTl`K)PQնpv`z8Z99yP݀YC
@@ -38856,10 +38994,10 @@ k$5-Oz`¿1)j` +Ѭz?fCo(-vP@_U~l< g 25H
rqʴ҂_"DlԸ6]P3ҹ1`Px[#YW\N(i6'<~ kYnVpl{.Ps+KnQgD`{48k1d{| t["^9Яۻ l`ڕ<'v-yFkG>i3?Ä7YX1 E+ᤩ|}6hp~ X>FEN4k_;9!q~ߌfU?Ux\웺vIȣK#iCU<fƫ'w%0Gu`N^IR3n=}Qn=.Ch?fD
endstream
endobj
-11679 0 obj
-<< /Type /FontDescriptor /FontName /MMROMK+LMSans8-Regular /Flags 4 /FontBBox [ -446 -314 1510 1154 ] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 87 /XHeight 444 /CharSet( /a /c /e /eight /five /four /i /m /n /nine /one /r /seven /six /t /three /two /x /zero) /FontFile 11680 0 R >>
+11711 0 obj
+<< /Type /FontDescriptor /FontName /MMROMK+LMSans8-Regular /Flags 4 /FontBBox [ -446 -314 1510 1154 ] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 87 /XHeight 444 /CharSet( /a /c /e /eight /five /four /i /m /n /nine /one /r /seven /six /t /three /two /x /zero) /FontFile 11712 0 R >>
endobj
-11682 0 obj
+11714 0 obj
<< /Length1 1748 /Length2 12258 /Length3 0 /Filter /FlateDecode /Length 13383 >>
stream
xڵuX[۶>\bHZܭkInťKqEkqѽ'O2|wcP3f i(&
@@ -38912,10 +39050,10 @@ y]݈lUNkSFJenl;E0s
*_a.Ͻ &9Aa+Zlt})C-ߧ,vB WQ8
endstream
endobj
-11681 0 obj
-<< /Type /FontDescriptor /FontName /JJEEWR+LMSans9-Regular /Flags 4 /FontBBox [ -433 -313 1466 1155 ] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 96 /XHeight 444 /CharSet( /a /c /e /i /m /n /r /t /x) /FontFile 11682 0 R >>
+11713 0 obj
+<< /Type /FontDescriptor /FontName /JJEEWR+LMSans9-Regular /Flags 4 /FontBBox [ -433 -313 1466 1155 ] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 96 /XHeight 444 /CharSet( /a /c /e /i /m /n /r /t /x) /FontFile 11714 0 R >>
endobj
-11684 0 obj
+11716 0 obj
<< /Length1 1716 /Length2 1755 /Length3 0 /Filter /FlateDecode /Length 2818 >>
stream
xڵT{<TiM5[L(3cu4 ׉J3d1qɥ*V)]h)]mlWQU)VZSH۟g>gy~i&=11."b$BL3miAp\
@@ -38929,10 +39067,10 @@ sZxӮ1nJ5"5J-$ Wp}fREj7ϳYd!fTܶ
zwr ?QUYU<?n]:l*VK;srܐcLHmPd nީSLGṔuu&}.S].;X t;=*W|޷x;7hrfpuI'~gt_~{֥IΪm([}_yi/&4d.WxҚǻլ]ba{?(*0u-MI//^guW=uW ]^u8:6kwF쳛-<ΜHXP}M{4C[2"/׋m*ȕڅ3֖S~vvJ+Z-{%`=8+SV7v٣C9ɮd|ϓeMᠼ윃U=;]}/(A$΂.izKYw;{ ?d[sugnq8٥1\JMUss'/ZiW3K=h2\u.i ~O$s{4_Y]%w^ܢrK˔>wf8
endstream
endobj
-11683 0 obj
-<< /Type /FontDescriptor /FontName /FACRCI+LMMathSymbols10-Regular /Flags 4 /FontBBox [ -29 -960 1116 775 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet( /asteriskmath /minus) /FontFile 11684 0 R >>
+11715 0 obj
+<< /Type /FontDescriptor /FontName /FACRCI+LMMathSymbols10-Regular /Flags 4 /FontBBox [ -29 -960 1116 775 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet( /asteriskmath /minus) /FontFile 11716 0 R >>
endobj
-11686 0 obj
+11718 0 obj
<< /Length1 1689 /Length2 1347 /Length3 0 /Filter /FlateDecode /Length 2378 >>
stream
xڵTyTv5R
@@ -38949,10 +39087,10 @@ ckG<<[$[nt`1@Y(u/=_z;+ªqPî.ͼ
zFyrݮ,Б9vBG/Nr
endstream
endobj
-11685 0 obj
-<< /Type /FontDescriptor /FontName /DTFCKV+LMMathSymbols6-Regular /Flags 4 /FontBBox [ -4 -948 1329 786 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 52 /XHeight 431 /CharSet( /asteriskmath) /FontFile 11686 0 R >>
+11717 0 obj
+<< /Type /FontDescriptor /FontName /DTFCKV+LMMathSymbols6-Regular /Flags 4 /FontBBox [ -4 -948 1329 786 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 52 /XHeight 431 /CharSet( /asteriskmath) /FontFile 11718 0 R >>
endobj
-11688 0 obj
+11720 0 obj
<< /Length1 1684 /Length2 1579 /Length3 0 /Filter /FlateDecode /Length 2629 >>
stream
xڵT{\LvI1QYR6SS*SHjJhN3gf9g9S. B7eV&hlEmZTr۵L,9|_l՝^S4;bAcBj ,TJ 9(ffr pНp2r@0(fFa9p`8U`:4 6ᐂpèAaK"P5T|!R
@@ -38964,153 +39102,131 @@ I!
4)~Y|AZIlQ οsi͘ecut{or];"Qj`Íjá'ft_]imsY-cE䥨)^w\!פ+spj0+)o﷌-~xs:gg IonN6YB/s~~-;CH;g|@xC_.qzW%L c3j7pe|Eփ%|ͧ5T_}mwt[IșG{۸?B/m$s]s5^,m9ӻRRlT$&fT䴝;zWU8}i[LB-Aϙ~ {av ˏ/nj!Ѵ*6EGWr19h%%6Zj1ik-VM8fPPܴJ4SczՐ!@o-gS%!ǞLz|aʤ5OnS} pm7MY<Iػø8?dAĖXvz$ 7K_᝺)[,J_9&R!I1YGP*7\Zfze<nj֐>j޹gP?<jmE-ouuGK)UNƲ^{1Cm.awj\6w٭c}E];wCAo7l[秓0{?w+ҚҘt?7.Dz䗴|X`>/_캐qPf§)~UG5<<ҧ<u갞/bE2w͙hRϫ*B*6][iX=3}C.޲`o9ؠs} oQY f:`
endstream
endobj
-11687 0 obj
-<< /Type /FontDescriptor /FontName /ANTVSN+LMMathSymbols8-Regular /Flags 4 /FontBBox [ -30 -955 1185 779 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 46 /XHeight 431 /CharSet( /minus) /FontFile 11688 0 R >>
+11719 0 obj
+<< /Type /FontDescriptor /FontName /ANTVSN+LMMathSymbols8-Regular /Flags 4 /FontBBox [ -30 -955 1185 779 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 46 /XHeight 431 /CharSet( /minus) /FontFile 11720 0 R >>
endobj
-11690 0 obj
-<< /Length1 2980 /Length2 30802 /Length3 0 /Filter /FlateDecode /Length 32446 >>
-stream
-xڴuX>L ))94 %Hw 9[}~׳g͐+ ['zf&D 4s6t
-`bF$H
-he05H31
-d 0Z@
-6.'*(
-p-W_FꯍJ ޥ& [kw Qw7R/kghca/
-؁cdhlaal`l󏜍 `h_N}~#x+8Z:#efa%vC
-fצW'
-g+`ɹΪ4aV3fqEH2)@<z>%AoړgnM }|Qń&r2>UtP-*exP8깏f~AN!ѭȇu-^dnrp#ُN/XQB4 !pv}=iS T5O{=ڮ*-ok!f
-(/6 ,Ӊ)|Xaam6k Fq̳H%bMYN-u-m,OXugB'j{}2r{C,z+9D^rkp 8uDICWFSz.>4Jy8d7!pSv`lɣ~^q0G X!Lfc^Η
-aKeEZhׯ<oaBV="0Љ P1{#7~Y=d~J5\??~k汨ZS9*G΅i@5*ε_}7;fL؈2!70jc֛aYk'[Ol#E;ߦ1+;n5P( Yx*wxfF͇W8rOg\&,S)@Bl{g,pB,[!v \
-e6\u݂]j $;!&k=-K) ZfMIڷdn{":
-3XK>ͅS.j7DxWIJ@ݬD x&>1l}*RRII÷yMȯz8*Rҙ?q0K[o6*a꾅Ѧh0.'tqZMC M6-{HY<ߋg.ő
-d'gY'id:rSJ}3" UvFS4{5eoJşK PAK/sG13c{d@l/D'?_ax@_)_8'42Z`jWӃ2f~lV'Ǭ0t> iKV!59p1Z(]
-Xos^G^?] 8<t ^߯L\*ڞ~wuMst+AN/%s(ywɰ-2%&C*5aC0XXW=(Lh.jn 1Z"#\0F+Mn:[bS~3^ʄ $e|]lf-Zg]ݽ0ڎ_Bs:ﰣ=inqj[%;9$dq~Wj}Ğ.ϣem00}1_ i?@B+*Y1U9Jb@k]Z"mᣌ7Ѡl^= 3Ǚc&)3]"@Nmeo3#q^^e;2۬s>T fI E(!:G{J<y]U<JgS9x❷%)xѢURBmZ1OIB:
-΢U=)Du&AGX^4**.nG;aӏcb)<ʣrm5Ps6zzW5GZ
-[#B
-:: )z?\Lb{K r<v'
-D˞0ԗ#?nd:*yVE訐Y}{nAnY:01ZF,;5%&ZݿxĿߊ"?`˂$3~E(ѢGcQ>Y/#Ձ+Tz!Y?Brlb|u<p#JGgA2,4
-3XHM۴ꁚƧVkS>#wozvs
-1#{Rod 5DH%od54NAm`+QÁN™)>w^(QqN@)~|:~p+ ÀWIr_`9yyFN(Yo_Fw ءo/Xi1`VF~;xQW4kYIMOZc1/D,+oY7~n”H.1 e9!:O.Hg]I{_4CMI.${e#8WjdӭW*d[[&:
-Ė[~-~D2+B8/?7ެѽ`msؙ$
-hLl$w8:(d/N+kqe$=si°"o ʗ!8[wY%Gk@܊yA޼-Xýď|G%5BfgE|cNg9M.k%
-Q0 L5lɌ)Y.g[aIpzqx6Gx]Kcя xJ,(N) Bl童6djN?'Vt[ ԽF0ĺAZ]ʴA
-̼jh=e!}?6=ŎB/Z"StoS\ݎ"WLx5`A2n
-fLDC#|N[[PH*DFݖ՝l|lӆ}r,;ϡSN><:ҏJj*,핝p̒˾
-G>8MgJhI4=Ƀ*lreJn{ZzDKYUŠbbl`K;#|M!H_bS/{{2Tf Jo?}LHypwYKyQnYVOB.g%kޭ29TglhgDSk  Ʀrީ3# R.^Je/4$P6"Zo7jZRd;1ZҲjY
-GI !<!?d&~*!Z5+'tTgH=Y)"PtdZ SX$=sL36*So]&6 >ZVgbQvлV.ROǢGո w'rfv(wu+dM,J-`AXy{_'̺ZCC%pF^XBF8Bx`q>Jk>E> A oO-V%9ը%_ Z7Zwę3 FOAVgS7'8כƛvo
-ʴ3rж/?OJ""sAwBیP_}(nL M %ֵiJgkL0Ee{пmcAܩbqMLe65rLY)e\L袛إ/WPN\Z@2 gu Hoi+C4kjM4||{q4`MW6lENZ3}8;G2!t4JFt'p~4d||kDѴLep
-˞XsgjRp`.Os*(G
-Fck ǁoG%!މ`k@=KdGŝ>F޺0($w;(/'lڸ
-wT ;tk
-0+|eԄB6@\%MH(S?wU摎Мk_1.+9ԯ
-kzecj#|eD!gaViFVJǑ]#T򕫪kO #&D.(#:C#mGZ]-E"?߮v ƻ%Z{!Cwd5B#,qi\p>5\7R]GEooC`-DfrW̿TnސjSF(aFWMlscH,cd0u Cp6ю3(Hx'}O=S+,YA0?_B)X>.U8Z\dbbsݤޢL5`ggyIg %}z~b4.(wWJ8?tq,"稂&Svʲ;.j祏lPد1i8\EVOgqP6x̳r0<gt!P{"p| k笝x҇ia!$k'P?G #q,?kIv z;WdI/O  vxdѧqQ99xcCF>U(mF<P6XC2 f8u3Q3ڜΞwf#pJKKVejkujo)|M}Yԙt+lG_2$* -IKv{ew%UP[ Zbf~ 9~@z WyX&sEw)}rh4CoVݡ3C(nWVM r!8A?Sy.x5E V&&Sf1)VwIj
-
-B5hh"EYk]ըI,E|%Xѽ NlzØO:sbhe:0d'3N ֟q]8e[^<~Z+uJfd9#
-"Ba TJȒCDT _Ζ-?Rp,Z8mieUkD/p]%Ԏ\Vs?P G6DӸ.yG1,xeD7h ݲ4zyl,oqeVeE%ldXɮݿXA)O{+z]'sJ< J9[PWWݗ"%PL!ge‰Z.Y^fPeG:9|pg7'/ۡQǒ穑ْ7=k>zKgִe׃.{
- 1ѕAA{̴ШT5G\s{L";)f{TW}, K)%欲a^e&=ACWzp%n;qJKUMn+65
-hJQ2~gNc"`]
-w1aTkm쿌La̘Ojl hkzlM1sjƽ0W`t(υ_3j..zfLWtmBou"=ueZ942yɮ߳5%pgarX\cv;'lr!|&q3ţ>@B~6/I0-<pJ^!0#~Z4PNv]k@F'xz䛸~uAf,ڜ,i2heS{M!zC^w̭Ywi!wK֭xGRtXvQd8<a|</<͌8:lV
-?" rIy4j)W逍INK,w 7%t ( BRL!(jp%|s4Xm5ܹ|=+A_pNMH&_ͯA kd.ȢU:I銓)I=aH
-|\FLg G2+|,e; \Aip`k{!!8CAʅUPݮûX;Ksnya&Yr~ aoK+,.{5lwYSu_AR찾0$[T֬&9=,^*IKq&5#kg=h/7&{2RʺKm- ȜF:X_eg<
-W*
- oE:ٯN̰P޸G8ӝXӐ
-0Zu waihqjR{H~zZ0=uTj 쑅P18kGM)7rJE?12։ɐ3?k+yF2|cF-U&}Yn&m=͟MzIh%)WRxQ=yBxڌC361uĶk9y.^x9ZjYzis6^7?wR=;/9pQOWX(EѾ츴=T}Y{\(&nNlb񭘯3i+qC{ߥFfh;xQoveáO&2rS[l&qWWQ1c
-j3Rp(>No}j@uHb}R7̪;R59񅗈ۻ)^J/I>'~SnPmءX=vmEB.vt2桥ssZ:T#o,wj?s~'jW08L}pPw@>zy7n-g Kل)S~ʻnt% F/Xo_"\s*-Wnehc~
-M(mr_//$EEqarP׬rBM1hq9&)&zK5œ`2FX<0sH8*9yֹa}ĀC1dr4?Ňt(wՙ]s^6sc
-8Uk,©/h ꏖڨJ,
-4{CRn*Vۨy共XRnRbCh$[n! 3[S^GCio]ȾD}/}dYl$ eZRFl07Mm}Q1̥љt` Sq޽'Yk2Uǹ*l7  %ܾP`5b 
-J(2*"<Ul]|X+oeƃ>*L{n͍.(Rhl`-@#J_|^/)G3f#9s?XilQwX7vK'ED^]ߑ(K{
-U2侦L/5OD/L}Hk~~"Ǒ0s
-/_gjMd7ڧT5ڿ6VNK\|
-T#Dw>USt/2zk:&.[O]9k^w XR˭E)gZ4=Tf+BW-8 m84r{mh&|~ UN:<3u$4+rq667ơZ ïa5PG,i {1H9sNsdqΤ=Ij Meos* ǺIBDV`BXXN,3#Syn\>
-{ ldABb멹Cqa0`!ѫ
-(~;c fဝ5-!U/n7V&2p6,=!~^G"Oz/J~wD$ 3@8&mb̧5掯ݎ,"|VlXIvo}Z$EAfG^<PoVﯶ7TniҢ^N$No%q.y2. _H= wpZ^jgpe rNMaL\9;ŷd_{Iqmth$յd/- X%aVVdMl`^fgkNMq1 A*]AٰmƔL٥hYRޛ&~hƋv,75~u.qCS_jvRUsI>.a[=n[?vְSr_g m㹌V$W|B7yI?>q`fj,khw8^^ ;R6qF}xQK‘ XM0U\D52F)7istrc;NTAObPi9N_n9iɌ׼3&! ] ־II'VUy:ѳɼruH XS!E,ziT?CEfuuDZʄ+.`Trۛ m :1v~sHOTS;`]_
-]z!cs1U脉%k B+&²̹} R[b7=t.m<f*ڇ/d$c_t Jx5;Ǖ8l`zl^kzMvM8,mEg1K<a{tC b mD݆;Mo: zuէݮ ߷Bjpϔ2*!Hw0n4>BH9OT?&iBٌ+
-T0\U1U
-k;LO6^_l :]Hu8}:Ѹ-'|7`<6Yቡ'yH~H]#VI^͕˷ZԎĒhX_6UœP6ZV9zf3M]B5Y@~@ch9F'N\?$4wRwHWND+b*lv1O-d)%m$w1O_S7 @ JLt}jCLH?t]ww񑦅)4
-*[SKi,TGJB~ !00z:a)gɎ ڡώ\91{""(S_wi"ޝvJ GN?N~oTqBU-zߺ*Y 4ɀ wpja:QH$
-)tލ0ɚ8~3#
-exsb`շQ7{s6Eyˡ:NfFwt%Y\ { 'LR)
-sl
-ev+Xܸ$idrEs>t%#{Uc)ᝤUcVzRq4,F:<:KX:Fȩh@(ioѓ\ slPŽ(Ob90Ozhu=V6d^Tppdm;jnJߓUl ,&驽^ۜ&[8J=T䍬%hFaVZ!0XiH}D/JмfS3IyA1Uw^y}fm!lNBMgnJnk>
-/=Vf&b}nViol Nj{'&S5Vap|2).郞PAyZbeHHh%E)Gq&#bzEp*>&x S[y2cpjßZ>r--UUThu(sU)D/bo7=F0E[lN
-](VF/v>exoq
-A"bfwilIMiD{v0D$mio,EQR۱.割&«%j
-+?hea}6w` C MUİ֑+ zA]rH O<[ |b4T&Je;hcğCW(1?_F"=cR¦؅
-:~C7["%
-0=*5z-?or<'! ~6tk~ pq ߃5Jq[pr]IƇuve)bHg"1Ahs6/i"SF<͓ИRz| ^ عDŽR$DZ
-Q{F{6 qS\3vnj0U۟\$L,JN׵]KvQE/II3(YC#t'*Ue^
-?v%'eXj})O=%ܩ?;W$$4A[rm?jWJ#QM4dH@5;RI shΦ@XQ7!u[硰
-7 i2Jk,6r]FTmc)YI(vC
-^K8:9f+<o`Xs\+uɧ&Lx5 ;#c!}^ܘFKw s8Tr( BD
-%e` Rh\l=99wy{5iؗ:
-qoE7JE(#6$sxB_֚ /u= rTTI Ъz1O!aSkH"rl Y+}%dɹD<EN3ڛF`Px$Q5wAy3NvކZpz7w
-ɨ<?F8p?ĕQi8d̬1ǤK'^QF68@^Zhga%…Ydt9 %GkV h"ث5<F }K&NI!rj,r>D7qԹ![pnQD6[Qsyg1U?ہT䩪x1I.RΜѴ!a놹9ROEL7޶'dZDzFJs%vYROg!.o&K2tc)Rh"ʵCrӝ
-ZRp*_ߞ
- 3m,-"Ȳhu"(E
-xƣ'e])oY}
-}o9O󍏫s4Qc(ٱ;R+"{d;Ȇ8_
-I~`̹g<zV\6OXzB‡ ѼK79NRi@Q:qZ Rx%0qRVNՏ }z}ɡB
-`Y8
-P3viz1
->L'*Lq~  V
-}&$.\ڎG\Jh~6zXw0; G fARC9*O6u3`2L ,a~Ƶ^Ԭ oE/
-m({K:~%TYA3{p3=6iFZd]PqD]ܔvmqkW\RsTs+|f oAxW% q72lJ.{gk+
-|[0/Sd:
-? =ܔO{QZC!I#cGgw pc!N^Na v~^ν`&ўav}`/cU6#|)\V+/jӈ)t ]HNP;Aܝx2Pr
-Jd~i0/
-=zVh?|ojxwM';B Eq:_Bf‡ nݮ PyaLRBUt&GJt 5Z3 @;ĉx&,<HݠQo2ypc$UT@Mrghcn%"2c<'yv;鳻 I^ -XQې+8V CU<_kVMgl_ PJqCQyiM;c:CBipփi//9Ie_tZiJ9P}Yڹam. X=B_%RKkiSXfݑFn5)y5ADRiR[{'0N6b_:|1?W"#:S1'Q
-daCP!7]^.-Iϋr0ΧN`h-= B* ʣ$QSMC0(h, ]ASxe&IPFn
-z#`5铠XzdxޚrxzkmЌ)S 7I`2wS叩*Of#tMk.|i)[`mяZPqiwo[9#ݜs`ޡ-ܣ^,<7h"v+zSwfDqi i( =+n_o~[ªxynr>j/r[~aV՝}
-Suٰat~Z!MNIV6ꔺ7yI4 C(C\eGU`
-+݂腀 {Fzt, n\d@c?Ζ`z--DzfZƼ~ O,8I/'ֻr%WΤ_
-RITuGWSz6B76 ;`)&`.+%b (4Ű4/6AJn-
-}F3>Tm!GZ?1`T1z* ',-.eE~ kQ,Eu[zxS#\m0zGem任-c',.ȏ8rTP9OC4;Am#uݭrfgLN
-y;t.UNF:XQdL/N3(#N΂i:KQ4ZbÙf\qqp/^zY.t1ػNTޔ{7bHGli6$Nk!4iP_IK*AkFa-RzG Ó
-¹S%l?<
- @KY)EHdr~N{X6C) 6 \S
-oa-Xo9G~XPZv{hRβWB0fu,ʱ5͡r\
-O6'lj*}ӿ\sm&֧հ^>I`L{0yߔ?j}=^&,} m;sLHn}`c$(hsOO%Rm.}rO#0"\37 G}|]xN.Ee!Зl''mxr؇S|OAۊw%|Sn BL k
-+.En5ƿK=a;V8 ?(1)$m [%i<sc){<0\}murM`!A[PM)4zLl3J#ƓhW0QL5e!7 55a{XƂШa!eZvDNks.c2nm* A*
-fku#vʘ9h 5Yuj!qrEy]~feVW(+vs۫2[ v
-,7z;-S,LEp2ÌN5״<s
-=TuLi]¬4l#@\<~(>6[QS
->&x78J$dȪOKpv;1Z5>_C$8N
-iWfsZ̒w=K4Tc~tZc4lY aFC?<IU<%
-, r37IJM
-9Oِ75BD1:Y?t!f{@
-لpZhVli}v/& 21WRwn""UBe6 S-(ALi& qXe ErX/vIm
-\&D,f)>;h,]V|~@`# F-̨5s߶綺_QLYCdTE|
- l>1OTPD[ A>gH㧘
-@sVמ(,U dQ FaD"ռ!@)g/>q!xE7K7(= XPqAgt@== 69=e-m5pVA׎وyv1JBԀvCda~uV(G>'vS..ݒ [Įc]ս]͚-8i\Fti ᜫR(޹fg%;&f+HB(:qɺF2mDE﷒Dh#*57V bߦ,;
-j;o|&p~kǔE2HLшǵ_b-ܡѲƙ-(a)4?j 0;h["s 0mb'+OGe?9fA$t*pB^L!)ދ9!"APN wB.sZ! 6:4ȴ+'QkC$pE5%O* sGYGtE Y#e|weFݳGsyJQzS`՛YD'DV #D [RK~_8u!}<sGPw .iTS@٧ *= G9AZM֒xQ|^;DUc/`4v@,yy;lE#cDL}#&$?I_r1j]lZbDMJ-1Fyhkq _(ZwRmXxocSbH'e^QKzS2y;d pگ_{@\?: v3dy={e?2}F UZwӧ曀Ji{6"+)p4Zwj6rYFq#*ǧdcc0]ZpPM}eZþ:AP(&p`06wP}~8Pv=fUߑo;nT<YSacW"?CK7vm1C0{9~͝7k
-ɞBMo.!d/0u,wRvc
-Yf6Ed+' ǎF ՝XQ?TZ+ff2 Tmv ?FGlUU9x@? 9R_,$`-U4͈~NIgڰvVF`(ԩ
-|Yw6W QvJ"_G6,Y NYHNql3NvYjQY iߍ˸¢
-7$3
-5F( "be~bxx,v
-y;12GQ0j
-gE=*m21F2Qyp&lkz_VH-[Py4ѰB VΧ$'{ <\l=_ VMAI,
-eQ,NP](G;Z!t[D'%.wFю5<םy<KG}"SFG"}@XGЪL͞rXn+r o))R162Ӭڢ J\A%S4➇_RzܐR/jF~5(,$IGn2U,G!LG;ZڀE=qCuQ9|U=7C/O[<qf~7?4R_OZ\hk+_GrJ>H$
-,R*,."/͑%Ghxm`YhXb v18 d[^,5XՂMzIBJ-0X3ҝ.Wx \B LKY!"Zpe &|<o46-bd s !+뀐i8-|g䃵Y2n?~m7|XgBB'$.d J\@Ej{sB/"
-QrqC65br # 0R}pBQd/`,L{*r5%?,(A7 |}-ql/9 ~'E0U"C`IR
-.[DIEݽ\{(hGFq_X4y%Q47ݵdbQ1r xk<4r5wN[N89q ?lyzAg4Ўv' ,mW>zߟTt9txP5ahFA2 wkg֦RI!G]50Uռ|v;K# |PN&X =ÉQ(*7vw
-~zTQr*ids: 4 0\-XݖV.tN."͑A"h?uX"y̖ΐb1+ivw*-kH6։z[ٗˊHBP]1dc"i*Ǡ-v_ ~ ͑6y
-&; iJL,|goL!iqNCwd %v w1 taƧSLԼsNn:ÁQW3jlp%eU[iJkmV&dͱR tlwcU9Sq^DݿL-S(EnL-і!tJxSR{Wj?w!"(tƬx3Ў^:OY
-q*[HO`,$Zsrky(h`m9Y0ěRT;=niu慱ΈldۆTAxLS0
-.#AR͒Y!PQ~od`KJ_7|ii%AK^[
-cP_i@zeM
-ȴF
- WhK2;JWDIC6RDBqL$O6,8z8)#Wd`|Z{'e  hGOnU
-<vwSi[Iv|0®\1S=yyH)qoeYၓ[/-sM?'-vOe@
-2?_}0Z"-O:cmv
-b^԰<錩qy;<$Y4P=~ۮG4+MR\a=7zz%^k~Εa]soHآ(d?MQي mb(۱>I%R hUy->' 0>n*L&6%2H>5д9GOt Hr *#NN5'9I*eeĨ)M;Nad!M+>=]~0eb=[twU[f
+11722 0 obj
+<< /Length1 3000 /Length2 31036 /Length3 0 /Filter /FlateDecode /Length 32693 >>
+stream
+xڴuX=L,SSrѰ.FCI{uwqb9| Ċ*B& #8։ +'13+͜ 
+5XؚX9
+8史 ?ۂC~7~+[m6v@?"6? <#V@^qNJ[kقE
+a.@*pQ? oJ@NS?
+aa"g>n:Lw-3ozj@G0͓ ,=+X=NV___z̓Fſ<
+"f5feB;w" >G8׵$+<b՝ `GףUIeW`y)
+˭%vg' ^MQ((!VNd@xmgX`Oatډ&jky%GT1bn2Qg[Uz9_&*-US]Mk]Mzׇ
+Y8GfT"C'Rw@K#Neܗg*q+n(sY&[ǢjM9bxȦE֨8?uELPLD;1c#s"4;kUZo%f Ϯ o?|Ƭ[#Њ*׫@P6fa@;y7^H.y?qTO
+_Q*6!"6:En
+hQjF6t[0qxIjH`O~ ?o_nHrG2Cj+gaq;:?+NV㚻L˅.,?=;F}ײs4qJ*^Ԗ$F~oE%ep[o3><%9(cC2"yqzv-x}2i6sh{Upj5 :qBJ%öЗ< ׄ b)b[^ 2|17ļkrx$s! 6Z\oMyόz)&D c*?ӻou<eC=h u'v&h;:| MITÎ|+qNEƩm &Գ~^`AQ.VW\]{pN>Y@d2N=|%` 
+hdᮖWPt+ZʫQ
+ti2D^yl4<gkoK;w
+SfP03#u2xP2,f䌇<Hrl #
+v-v%~q 5%>TZ썗L?\5M^=Daln!`
+K  
+??M>8i'7
+`lhcNAh5JW(6k0<]2`|Z5rGTꗒg澨{(>3J!S=U-6y?Ȭi\_&f9C5^IΥls8o-POo? ߸1!iO*Vho@="K£ Nh}`q=v!-| T8dШ\viII񃨹hDM"b fih&sjgmS4N24X4]|){m! TTSct#ӪXϳu!uI0RM(:)kC6^\IIcZf6pEMgHʪ"wj
+X ȉyVs$M^ørI} ROLy <]1WUW2̮ Wҕ l9z]ȓq`4:mc(kߪO|zuQlZW{ROSbmKAUZEs$h3t$LIwЌev:v{'BV߿33*0_toH;
+}\hLѽMqe?t;`_2Հ)h'(P.2Y L-6:mmeB#/w[>Tw>ܳ cMȥ~>N:dKlHxH?+D³BWv1K.ܴ6|Bv;${&#Djr{w~ P~dqy-1mpJRvޘĜfȝtiP7DC@JNK asyaͅ1'einwYMv\G kp|p!=j(hO>ֲ?7U|Zl3\Q&au<|P;i/BiZ $?]?+6\Q`mz&_SC)4)a\&'n?p>i*IJ"Wif"-eg+bT"
++׋#I@/9<xn5\#}v;"PNOAIP5{&(o1}+#Me/q:EwBeZ=
+eNc{ ^0P-M-H4yPh/Ҷzn3Hsz)p~SC{Nh)ajJUj1J˪<BEPO<J
+Hxl~~bllj(yQF-ZbIrܾ#Μa(>6o}p 8Ý)?i4#fVPK其-~I~R>` "ļJfUCqkdohZFxf-68MSR?[#gz(/ۃ5hÐ Ns@k:d*@=) gDU`rMy.*`G.}O܀r?(,7IE>C<8xF~K[QA_S߷o4ދ Ʀ{of3,(RvҲݔ>qٱ?ŵؔA4;Q2Z};![#5ˌgJ=,-SH^;cTS.Nʅ=+t}bSNG9W0[K
+n\U]xZ1!dF rAבh[>^"}-mo)~QvK0ޭ/1 *< [ԬἮZa1܎KO#⦀ux`$w云BO>*}{#l!҅7cbwktTh*4B9 3jbCzg Lv4GAʬcu|>{ZѸeyX%.OVP&QuJѢRG'cD&f{=;0(K:=k(
+eхMng']<g[>N !Y[>Ѕ~8J^ǎdф'Y3OK(oiW$#\M|18{Z8X_#45.>>)82zAx/.| Gi3Z1ég8t~0%SZZ.3T[-~P{K'k"ˢΤ[a[=Jv QOGhIZ+ ?5//4J3O"K2+"޿~N#+Dz*^EiEgw:}hbHzk tă)T^01j7IA2M*'W! L@{!f?hF"+y$ij.V>P(*~oԮGEc5.]FĢZQ=![R%PT7417/:6QsAv!l<"i_X6Ø筵rPojVA992 "!`!@,<JJ@ll/P)ǢV]\5FUB8jj5: 9mx* ry_}dC4i|Â'| ^Y
+=!|Op;-k5fHCW&kUfZTF|ɩ0Ny2שtHʘԚ쟮(Ju}%M})h_rV&5HPue UvcxMw w|CzZʹa~-y߳VTnM[y=']ia1L *LE^zu=GO/$⺓BLlVGA!|շ0NzKhQb*KX=MhQq`~^-1n4x[Pw W2v)䏼T,iS0%gziIj4&ʮ.FpnIhl<p/^zvabpc?+X ax,*
+10֩iO&(Vk:e#=0^YAoiOFpMPmnpIVaȌid ) b9(6w6:f ýqL\>:S9<& gT*}UzM&AK 6]'[]I:A]v{U<3^NN+Sg=kZSz&</@0{og=~(!rj?cX<yY+gڜt
+ ;Vc[ݓ8T ThDl" F,ZO8ٞٓt] G!et}+øYhP\V'<fr<\X J1従{4gf؝_.g?҉rW!vK5Udl}!u+\ 3*@JNhjaj?힓cl~謒ľ0^9G.aQ =vֳrsa'( +AݒjȀmԪuQȻo~ƣ/
+a-7l؂;PelҗfVM#$*W_dl^r5,ՉHjJ'D>܋8tث>SmSGl0X5\f1gHIiu3s'ӼkёtuR4NˎKC7Lo!zߊ:7
+~]jdF+a8 8wfGI]?
+d,*>տUf7x*]p=vOf?C,ӾaH [$&h'uìڏ#M +Us_x
+[|a8l7E}!߉:%@ch\L+toG*cjZ:w15Ae:r}@S:'}޹L|\t!W
+uzw&ݲoxưH>.M1GYH8J7YЉaT5)57ϬҲ_p5Xj*\]6PqQ?T&w(8Ϟ?IRā]&^
+V3(2I *#?+SwVƉl<xgk঍܈"E;b
+4b:Ur4l03w&58y*|>,/kWT:zRD|ϟ|=U)tOQx1-q= !g
+ V0ux@݄ g_Uh62~ *(!A*؈:_˓TȬ -qrqỊ34g:^-۩󝮨p9ɳ~n)7F[?$<CxF&Y˳vOZ
+
+k
+<FoQO#7߆\lא;YtX~ۭ3QGBAb)/wW.nmcqck~0Z^XC; uz"f=АNl;>JVL:5]muU#AX7P\WS q։ř~fD>Vt*ύg?"PcoỀ,HHl=5w(/ô,$z*eE M>Pkn*t2gv ʃeƒsj*0Lm\1JIUǸ"hDe5ogl 7ZYE0D%3<DΆE4OHC%^IdGӤM1EU1<V]ϊ QV\? Q/\Hސ6c؋**ƃ9-MZCˉ6:%[ƅ` aT+xZ LwSΩi;L1?g k/)Vw5РNM6E<7^d=ʊm̫`ܩ)N4!p8Pe9(aݘ <-+Z{oxܮ%n(tRMŽY*y.ɧڥ9}5lcmB<^6tJnk o<Ѫp~⻀OThfR#y>/:gQ]:,Cqb9{y}s~dGц76nߨr_ jI8 xV;=mN.{lyI J=IJ77Gkߍ? m>wFܤ:$ܴ>S=`+!Cy7)=6);J*^g z0W)q=
+ \EDNL7Ӈ%&ԎXzzBׄ^H\iLU1:abA}}1Aɳl0s{,Ȧw3Ku[*0:f=C-}XE6znNq:Zyc,]{nQbx~Llc#^3P;B$EQNqD{8l]ik43:gz)R/92M;RՏ-mfu|6#ʬ(23WlpULQ2\*1wKC|F C^ U@8BRX}wrQ0C7Dnv=<bi-`eONopJΎ!+ "dY!uY4S.m_1\Iڕ{%ǝTǬD ]}lq | dS Ce97GovF;GpŪo޸GΨLkZEȊi op?vHZ2?[J6u0{<p+LTL--Hx$K of0f*T0#,DĞn1|/~K)#ƴ qD,{:I9,?$f$Y]^ߒA)!1x.3ymBF^BL(?h."@1OBj9rC3]pA/vv;U(ggn:>Z ZTyf -!XL|%8`^*сGfM+1ٙ-&c>/&PKQ=0Ywd!fpS d&!yǪJ~{6|ZN/ӓ<ͥ>1gNWRN}4>e _ 2MaxbI^-(_=R.6gts*>B8&7M`hEq_<@U^7~SWPrkazP_{<z&X!ZNɣScO< .͝ҕ
+ E̓~ =|YwI۹3jfy]Te-4#7]ePk:]$]]|i!nb
+ ,ewPxCK0Fb:z o(?j,\<MaD-a<kC|7/{҄¼VDg dQ뿐ndmH4 L="{š$$hJ@vcv賣8W`n H7
+G;׮5ǝrڰ9w‘ӏ#dPkUˮJV}2 ].Ɵ"D
+1<7.)?IdY\l]^Xhx'i՘"UT 7Β/{r*;JiZ꛶8e$9["#c̓)Zx~(=d W?-.\i
+pOy'Lkiv$[ӪCq;ыG[,@oB{'q_Ӛb|R^h7[Ö@Y.hD2wSxA ^nrN
++X%֙bj su{eWTBLKYJ2N>;0!&*SbXȉ䊋͕g=pˠF|{G'uqq?1*d%[2^yUimLT1OuH+njG/#̎ 1)aNicBR|h?ߊbDW=m7i{?X `w?πӂv5b}لY8-8$ кq21E|YUb4ݹ дKr)#IhLCv)=p/Vy_c`]a)Er`_mDq]Fkb|[<}) ac1蕟@ak>;sеOjQDw)oķO\.3pQGtS}=^8S*LQ
+;4W.gUVOt;\gNODVe L Tő֢O*%m1ڋQO#x
+ o\E"^EB5]V
+(=#[=8)xECe;cLIiM*O.|F@D% 'dȮ%{$ܤ,y!cecuw2mf;eSP2m,z@5l>cҧԟ+-s˶+SDL%(}&@n$lR ǚ)$Lb4I_gM B˨:-PX݄gwɍJkDIk5Z}H[9.p61zì$ox!Ki^P_AZIBK7k0,G9^tA:h&[<ڱ>/n|Z{%;S׌Ɋ9E@Es}]r"20)4. n
+4~
+b6g!85{8WmHU§tDX4}F9
+el }'9>\hMk&RV,Rυhwݻ9f%$BfPEVDAOf7=m93씕
+wO8
+Ѷy2NHRTlż$ 3 덅ȡVk <HHL9IB#Lꐨ+'/q"䘜,oT;E6nE|OeCUj2$ʼn~˫y0
+3%!Ɨנּ2l%Q&\s=`w,ǰ)*67MQz$웝^BtF2j&ec*K% "
+'eݩ -}%;*y\,>hԃKx}E?68e9XL6Nw
+\3 1{sK>z8ʃ
+.vPgIc*+3Adk{Soqa<y_̅eV0עV~.,}!=z0e Z" 64W"
+Q~";S~D)3_(_2NTl/0scC{"k"pYlJN6/I?s/5ݼFz m!YE4w\9B=7,E.G$-mRB){aքv9E~_t_Kà
+њWh~MnUJ,D+aDŽhPbjB74kE,2r%ʮ'!B"C= XMea}̝f7K)}
+q"Pe0M2o`.GMݭی@AwQ^y"pIt]6\k 3gOy82Y!j4^ݛ+'\8e"8"}gY_+8<c8RV}|w93<ۄI{U[Q&D8h=ו;O<'*FY =G8Ucj(ږhaァ OxEH{R
+Aj{4 ^Zl| =[5,RZ⪊JiZSpYkDY86q`io>B1ߍv\1r-kzuo٠{Ӑ{[t~2R)MR K+KӶ|̛ Ţq@I}vu+rG?rp9l%šq} mK<?"j4[m3<R@vR7j7@;T}QЈݐjT}m?W> $1uYd\\ujxy/E%-`Hf$UD@;0҈cWD,v\)VUP\L Mtİ
+ x@;L
+ N
+monѩ&67UL* 0kzPR&qW5hyM_
+Mt<`r5<Ƨ,2>c^ёFvUmJ]9o(ᘩ9}uk5.$ZOXY>4>߾8}_DD.:2_)븷%lMb#hY)*d3AFѣG7.ƅ
+kᅢ5AyRh?ُ
+h{7DDƅc>C_V}LtY'FA=H64| .:ЮbV=[%pg~
+=q(,TXPl%s}=e
+.S)`dG_I*e5e, wY\;zdk7MPH^Q>):C+v=jj\6`|$v7pG-Q*ժd_@,p5ϥK\EɿDbXk N̤WLF/=0>W)talK(5FׁK5<\MX<,/|FcK -21fI )e<Co}U5a7i #޳/el6עf!sF3s@ʷ7<og
+mϯKjOrEutMr
+(
+׉K\)J*N:J]J72V3so<t|JNk$}ʺX<V%3Tz65󈵓>5T5ivqStC٪6t nF_VPSk\E(?@q#<Fj%FU'p8b #'qJRFR#&cTS}̬~c
+#7ۇl> [V@qPG ?
+6;Q kSR_܊5,FxO>Mރ{UP(TBfT1@g,dEunNCʊ4O^
+ftR,A^E.@LPv+\sn*xs}Zgǵ7u_LOyC&l
+:"z_O&1cOY4|e1XZ(ӳ #*/ŶtZ 0Aba?45q
+!R'*ƅ q+}ǁTB l;-)
+㯎1Qµq^( ;H{q8B<BmHAEeY6jND2=+o
+ȞZ‚L0r8uCtԛ<F1Mr+`{)_$Nc5 a3z-􈧥ɦі7dorPY+r`N"vy/Y7%"MVn=@G~{ GUH ɒ`*W|cI}ny9NW᝭xDɝq*>@
+_g+<<͋T? ,S08X
+𾓇V[xiȴic%Q8_ Oz+4@if<_u(41V95p= e+sثh#$]}@k"N%SKd:d>)2(oÈ cC|COQJdp '>A{
+m
+#`̒m z.SWLl:&-B}FgyEaP{MH2&Bf=5+tJs *(n"e+'sDlr 76-B^? l{bzjߛ6ZHէac>7| $K ,a|уdZ
+&eks);z0ߛqE6USxlєvW
+7>vZ]g/p0ARk=H_vԖ5pzI~*,woD4|x;R
+u0ezF:PCD<YZa10JDL\`H+blbٙ#ԩowG&(Wwn*5BЕ峬p랞R4`vewO}TXfjKI=tS0416xc!ӥn!^8_rAymv[IʴERRUB:@(˲q|pA87{uͨ_xlyVվb٨䧙pj4ȢC VC=Wԟhc\z#fiV֕40IGEvS0B!_ +^,s1~2 ? 
+_Vuav% N |]ɼgo.U%9[pqaDCױ
+J>9UG JUvUn Upi`c5ۢ췵iyYe@
+ K=Qω*sjGK04U6\wLд֟d A25P'@v=in<QM#3V➝>ID(پB:QվJO5;!@@Rq'#@ˑ>9YMeCIXm[?\f;SxYgCޓ %%u8i@a´
+ PH̑T9xaf-;-kueⲵ{!\ ~~9Z @ a)ive䇥mA}B( V~R U{I]C/ڔ[ozQ<a'Xe|-|쏅'e !}x~\+pV%G&\.ʏt!!%e3,zZQc ۩ aǑ*~p :k8@0q=W
+Fr=u =Qs:#j0O>Dy% h` ;)B@1=cTEYĆ>&>77(cc;3 C.@UQfe{z$#>81<A.h@|⽗5<
+hȟA /O=G$ z=6_sb0Y"f`ˋ0\1VНD?[
+įtMk)kѷ#Wd`r0iOo1Ux́-JAjW5CO$q^VQ`
+@^Y[\iS{9@{%%=oA =pAQ=ɲd<e#4ZzfD8pܖ@K+UjWm4YyFu݊ [,IY?v8~[4;Lpa4}k\Hfi%LkXC~"{ZpNU-ƽ4(1gPAF$ĦE!@_JVOUE'>bhBv2 auziqUf J4C#OD)2!{'tl8E^40aH'],cn.gjݵuh,ZQLY}bY9ֻx |uϼ-Op
+g<G30R:L, ?sscuV СzNSc|e2/]!NgSGJ'SoRdJ߲% /b0hmTO9dW3ۀUqO:Vo'r25RVM/@48B ]z6w$Cw@ADqȘwޱ3Ճ6-?~ / 4^j V" Ofhl$nveu~44܂ (
+F+)]58}[E1&d Lq..o(j ?%gR#.WZ0fؒ.J2
+d/G:wGgLt瘷`jH5ŗ%&c
+UBI^͌, %
+ g}5C^ ץ7
+96 7s"Ȼ㟻,fP i\9CPwkY(|YNeTXhXrʚԛqeLp*l^w[kq5j:f;j6O#qR7D܊gV7$ԏ~hL+G5?=7ZCTպ$cAԷ9W曟/kS_4J|mm{ԃiy~{a}v:gM#(JܪU;B1$E?*kD]*)νtֺ%!)۹)P9db^\YLr92
+7}czB+Ӱ^rd~(K (UX{;$LxpWI"$8;>3sgnPavM`L)
+^Hw]?y"3r0Z.&d݃V^.˝uQL{X^[qăq{_l4_ ltoq@+d o3imȼ4&Ndq"- Y'`(|irY!M'Lv%װ[V}Y: 򌿴>s=FO:w~!%swH6ғ\$dZ[P94rN~hu2w9wF{p A`ع_0#re&yk
+"d8d烿fMEl9fZR̝hK'zvw,jضq#&=2,vL+
+T"E} Oxf$€W" V{Uy A#Ї.-IT9W;L"RT/,o+\n I9\}Ac;U4<:Y祖wa?m_Ikxjoz_NX_*DUP7E6~B-#VU'ԐO?AG^[\nm'dCrh mdw۲1?цODd.5@b|Av9CP!@ LlKx%p@s3,ӶeͿtƘEbFH@V;%%"C41 kSL"ɕR0QY ܔҫtTU h`F9Hk "_NWDiO٪-UklqH[{6̩OxLگ ak4^
+/9M+[6J,vs#1Q%tU^4cKR9{Q&M4%RHcE啵}XjF4<)°oזt=fB î}ٓ
+|NWAD~7ّw e
+dfĢ??Itq)m_@;;_[?5*>cH#ηw$hp2S#`YkY0zKmP[ͨv|O9!tgUF'nr%iz]%LQawRzS19j U N[wT~~5+((%{tGc-ԾHg穆x;Dh^6HDYU_5xޱELjVé^2(WĹ<+yv(!sowvDKپߝd-:^}d6]Ļ+bO8jxQVv=h-Vk'݃%1֖^{YNgOS>P
+d=<
+E><,B=x
+y_I^'k_E5_ ӌ7Bm39"{1q`؜l{hLohXi:
+&&e>P֕w5qOjIm[$$o9h/2qo^[]B4@)N#crѷ
+J ,".~"OtM1 /7{'~IJ̊qtƒEb<p_w<
+lj0.mnK%or@SP`#;A,rH(q1o".WU2\nf;V&o4`]mR80 DYC7#=H-NTXR9L*zgݡiISm
endstream
endobj
-11689 0 obj
-<< /Type /FontDescriptor /FontName /HNJOVH+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 599 /CapHeight 599 /Descent -222 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /A /B /C /D /E /F /G /H /I /L /M /N /O /P /R /S /T /U /V /W /X /a /ampersand /asciicircum /asterisk /at /b /backslash /bar /braceleft /braceright /bracketleft /bracketright /c /colon /comma /d /dollar /e /eight /equal /exclam /f /five /four /g /greater /h /hyphen /i /j /k /l /less /m /n /nine /numbersign /o /one /p /parenleft /parenright /period /plus /q /r /s /seven /six /slash /t /three /two /u /underscore /v /w /x /y /z /zero) /FontFile 11690 0 R >>
+11721 0 obj
+<< /Type /FontDescriptor /FontName /JLHGIY+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 599 /CapHeight 599 /Descent -222 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /A /B /C /D /E /F /G /H /I /L /M /N /O /P /R /S /T /U /V /W /X /a /ampersand /asciicircum /asterisk /at /b /backslash /bar /braceleft /braceright /bracketleft /bracketright /c /colon /comma /d /dollar /e /eight /equal /exclam /f /five /four /g /greater /h /hyphen /i /j /k /l /less /m /n /nine /numbersign /o /one /p /parenleft /parenright /percent /period /plus /q /r /s /seven /six /slash /t /three /two /u /underscore /v /w /x /y /z /zero) /FontFile 11722 0 R >>
endobj
-11692 0 obj
+11724 0 obj
<< /Length1 1832 /Length2 18448 /Length3 0 /Filter /FlateDecode /Length 19593 >>
stream
xڴst\>n8m۶4v5vضmml7V/}οߚ53n^Y!'VR6s0J8ػ330
@@ -39197,10 +39313,10 @@ N3(P8քdl9S{s 1ܰ5݂GͥEyg{$EgCiHjӴ~&F
!j nЁyFV+G 8El)OkB:!$3SfbMLDBK2q^&1{Jki`'69ej꘢
endstream
endobj
-11691 0 obj
-<< /Type /FontDescriptor /FontName /NRLLYV+LMMono12-Regular /Flags 4 /FontBBox [ -444 -311 715 1019 ] /Ascent 618 /CapHeight 618 /Descent -222 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet( /a /at /d /f /g /i /n /o /p /period /r /t /w /y) /FontFile 11692 0 R >>
+11723 0 obj
+<< /Type /FontDescriptor /FontName /NRLLYV+LMMono12-Regular /Flags 4 /FontBBox [ -444 -311 715 1019 ] /Ascent 618 /CapHeight 618 /Descent -222 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet( /a /at /d /f /g /i /n /o /p /period /r /t /w /y) /FontFile 11724 0 R >>
endobj
-11694 0 obj
+11726 0 obj
<< /Length1 2277 /Length2 23448 /Length3 0 /Filter /FlateDecode /Length 24809 >>
stream
xڴeX
@@ -39301,10 +39417,10 @@ U<|Uk-KW
8--#^4 .Y C񩐲T< GnRӋ;3)LO.Gsv
endstream
endobj
-11693 0 obj
-<< /Type /FontDescriptor /FontName /REBVUK+LMMono8-Regular /Flags 4 /FontBBox [ -456 -320 743 1014 ] /Ascent 601 /CapHeight 601 /Descent -222 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet( /A /C /a /at /b /backslash /braceleft /braceright /bracketleft /bracketright /c /colon /comma /d /e /f /five /g /h /hyphen /i /k /l /m /n /o /p /period /q /r /s /t /u /underscore /v /w /x /y /z /zero) /FontFile 11694 0 R >>
+11725 0 obj
+<< /Type /FontDescriptor /FontName /REBVUK+LMMono8-Regular /Flags 4 /FontBBox [ -456 -320 743 1014 ] /Ascent 601 /CapHeight 601 /Descent -222 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet( /A /C /a /at /b /backslash /braceleft /braceright /bracketleft /bracketright /c /colon /comma /d /e /f /five /g /h /hyphen /i /k /l /m /n /o /p /period /q /r /s /t /u /underscore /v /w /x /y /z /zero) /FontFile 11726 0 R >>
endobj
-11696 0 obj
+11728 0 obj
<< /Length1 3124 /Length2 30450 /Length3 0 /Filter /FlateDecode /Length 32183 >>
stream
xڴuXJtHoJBCCZE@;;K@ns|g;Y볨ȔUDMv. ,̼
@@ -39439,10 +39555,10 @@ o!%B:>X1sa )AC1 ݘf\"SƻynwDIYg`,,h
z i-XBcАC-~bHAV0eq(cpK%S#T2N~.O)i4ڈٗ96྆#&߃Vt<~\m45AWDa_ ^jV-fQ)Go[=tlf-;
endstream
endobj
-11695 0 obj
-<< /Type /FontDescriptor /FontName /GVYJDY+LMMono9-Regular /Flags 4 /FontBBox [ -451 -318 734 1016 ] /Ascent 0 /CapHeight 0 /Descent 0 /ItalicAngle 0 /StemV 74 /XHeight 431 /CharSet( /A /B /C /D /E /F /G /H /I /K /L /M /N /O /P /R /S /T /U /V /W /X /Y /Z /a /ampersand /asciicircum /asciitilde /asterisk /at /b /backslash /bar /braceleft /braceright /bracketleft /bracketright /c /colon /comma /d /dollar /e /eight /equal /exclam /f /five /four /g /grave.ts1 /greater /h /hyphen /i /j /k /l /less /m /n /nine /numbersign /o /one /p /parenleft /parenright /percent /period /plus /q /question /quotedbl /quotesingle.ts1 /r /s /semicolon /seven /six /slash /t /three /two /u /underscore /v /w /x /y /z /zero) /FontFile 11696 0 R >>
+11727 0 obj
+<< /Type /FontDescriptor /FontName /GVYJDY+LMMono9-Regular /Flags 4 /FontBBox [ -451 -318 734 1016 ] /Ascent 0 /CapHeight 0 /Descent 0 /ItalicAngle 0 /StemV 74 /XHeight 431 /CharSet( /A /B /C /D /E /F /G /H /I /K /L /M /N /O /P /R /S /T /U /V /W /X /Y /Z /a /ampersand /asciicircum /asciitilde /asterisk /at /b /backslash /bar /braceleft /braceright /bracketleft /bracketright /c /colon /comma /d /dollar /e /eight /equal /exclam /f /five /four /g /grave.ts1 /greater /h /hyphen /i /j /k /l /less /m /n /nine /numbersign /o /one /p /parenleft /parenright /percent /period /plus /q /question /quotedbl /quotesingle.ts1 /r /s /semicolon /seven /six /slash /t /three /two /u /underscore /v /w /x /y /z /zero) /FontFile 11728 0 R >>
endobj
-11698 0 obj
+11730 0 obj
<< /Length1 1863 /Length2 22779 /Length3 0 /Filter /FlateDecode /Length 23842 >>
stream
xڴyeX[m.Z܃CqwwwIp/P(E7߼3gsJv^ZOޡ&W`
@@ -39540,8193 +39656,8194 @@ ip6?2M /2ܵKo~X:S\<=:\UTQ '2\lDa1wµd[,64ą
/)1fXf5DJhl3:ei+-aʤe[
endstream
endobj
-11697 0 obj
-<< /Type /FontDescriptor /FontName /NWBRFF+LMMonoSlant10-Regular /Flags 4 /FontBBox [ -477 -316 786 1016 ] /Ascent 599 /CapHeight 599 /Descent -222 /ItalicAngle -9 /StemV 69 /XHeight 431 /CharSet( /a /b /e /f /h /i /j /l /n /o /r /t /u /x) /FontFile 11698 0 R >>
+11729 0 obj
+<< /Type /FontDescriptor /FontName /NWBRFF+LMMonoSlant10-Regular /Flags 4 /FontBBox [ -477 -316 786 1016 ] /Ascent 599 /CapHeight 599 /Descent -222 /ItalicAngle -9 /StemV 69 /XHeight 431 /CharSet( /a /b /e /f /h /i /j /l /n /o /r /t /u /x) /FontFile 11730 0 R >>
endobj
-11606 0 obj
+11638 0 obj
<< /Type /Encoding /Differences [ 16 /quotedblleft /quotedblright 21 /endash /emdash 27 /ff /fi /fl /ffi 33 /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P 82 /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde ] >>
endobj
-11604 0 obj
+11636 0 obj
<< /Type /Encoding /Differences [ 48 /parenlefttp /parenrighttp /bracketlefttp /bracketrighttp /bracketleftbt /bracketrightbt 64 /parenleftbt /parenrightbt ] >>
endobj
-11602 0 obj
+11634 0 obj
<< /Type /Encoding /Differences [ 62 /greater 96 /lscript /a /b /c 105 /i /j /k /l 110 /n 120 /x /y ] >>
endobj
-11610 0 obj
+11642 0 obj
<< /Type /Encoding /Differences [ 0 /minus 3 /asteriskmath ] >>
endobj
-11608 0 obj
+11640 0 obj
<< /Type /Encoding /Differences [ 1 /Delta 43 /plus 48 /zero /one /two /three /four /five /six /seven ] >>
endobj
-11614 0 obj
+11646 0 obj
<< /Type /Encoding /Differences [ 39 /quotesingle.ts1 96 /grave.ts1 136 /bullet ] >>
endobj
749 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /OCVDMH+LMRoman10-Bold /FontDescriptor 11641 0 R /FirstChar 21 /LastChar 125 /Widths 11613 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /OCVDMH+LMRoman10-Bold /FontDescriptor 11673 0 R /FirstChar 21 /LastChar 125 /Widths 11645 0 R /Encoding 11638 0 R >>
endobj
187 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /LCRVQF+LMRoman12-Bold /FontDescriptor 11643 0 R /FirstChar 28 /LastChar 125 /Widths 11627 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /LCRVQF+LMRoman12-Bold /FontDescriptor 11675 0 R /FirstChar 28 /LastChar 125 /Widths 11659 0 R /Encoding 11638 0 R >>
endobj
179 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /WCAPHI+LMRoman9-Bold /FontDescriptor 11645 0 R /FirstChar 65 /LastChar 116 /Widths 11635 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /WCAPHI+LMRoman9-Bold /FontDescriptor 11677 0 R /FirstChar 65 /LastChar 116 /Widths 11667 0 R /Encoding 11638 0 R >>
endobj
556 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /YSYFAJ+LMRomanCaps10-Regular /FontDescriptor 11647 0 R /FirstChar 97 /LastChar 115 /Widths 11618 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /YSYFAJ+LMRomanCaps10-Regular /FontDescriptor 11679 0 R /FirstChar 97 /LastChar 115 /Widths 11650 0 R /Encoding 11638 0 R >>
endobj
184 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CVXELO+LMRoman10-Regular /FontDescriptor 11655 0 R /FirstChar 16 /LastChar 122 /Widths 11630 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CVXELO+LMRoman10-Regular /FontDescriptor 11687 0 R /FirstChar 16 /LastChar 122 /Widths 11662 0 R /Encoding 11638 0 R >>
endobj
177 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /MTUVDN+LMRoman12-Regular /FontDescriptor 11657 0 R /FirstChar 44 /LastChar 121 /Widths 11637 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /RBJMPF+LMRoman12-Regular /FontDescriptor 11689 0 R /FirstChar 44 /LastChar 121 /Widths 11669 0 R /Encoding 11638 0 R >>
endobj
174 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /JTSGNV+LMRoman17-Regular /FontDescriptor 11659 0 R /FirstChar 84 /LastChar 116 /Widths 11640 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /JTSGNV+LMRoman17-Regular /FontDescriptor 11691 0 R /FirstChar 84 /LastChar 116 /Widths 11672 0 R /Encoding 11638 0 R >>
endobj
480 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /HUFBEO+LMRoman6-Regular /FontDescriptor 11661 0 R /FirstChar 48 /LastChar 57 /Widths 11619 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /HUFBEO+LMRoman6-Regular /FontDescriptor 11693 0 R /FirstChar 48 /LastChar 57 /Widths 11651 0 R /Encoding 11638 0 R >>
endobj
473 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /SXHXQW+LMRoman7-Regular /FontDescriptor 11663 0 R /FirstChar 48 /LastChar 57 /Widths 11620 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /SXHXQW+LMRoman7-Regular /FontDescriptor 11695 0 R /FirstChar 48 /LastChar 57 /Widths 11652 0 R /Encoding 11638 0 R >>
endobj
205 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /PQFDKJ+LMRoman8-Regular /FontDescriptor 11665 0 R /FirstChar 16 /LastChar 122 /Widths 11624 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /PQFDKJ+LMRoman8-Regular /FontDescriptor 11697 0 R /FirstChar 16 /LastChar 122 /Widths 11656 0 R /Encoding 11638 0 R >>
endobj
180 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /BYGIQZ+LMRoman9-Regular /FontDescriptor 11667 0 R /FirstChar 39 /LastChar 119 /Widths 11634 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /BYGIQZ+LMRoman9-Regular /FontDescriptor 11699 0 R /FirstChar 39 /LastChar 119 /Widths 11666 0 R /Encoding 11638 0 R >>
endobj
318 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /NRYMBG+LMRoman10-Italic /FontDescriptor 11669 0 R /FirstChar 28 /LastChar 121 /Widths 11621 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /NRYMBG+LMRoman10-Italic /FontDescriptor 11701 0 R /FirstChar 28 /LastChar 121 /Widths 11653 0 R /Encoding 11638 0 R >>
endobj
182 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /TXCPTT+LMRoman9-Italic /FontDescriptor 11671 0 R /FirstChar 110 /LastChar 116 /Widths 11632 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /TXCPTT+LMRoman9-Italic /FontDescriptor 11703 0 R /FirstChar 110 /LastChar 116 /Widths 11664 0 R /Encoding 11638 0 R >>
endobj
317 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /IATCRU+LMRomanSlant10-Regular /FontDescriptor 11673 0 R /FirstChar 40 /LastChar 121 /Widths 11622 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /IATCRU+LMRomanSlant10-Regular /FontDescriptor 11705 0 R /FirstChar 40 /LastChar 121 /Widths 11654 0 R /Encoding 11638 0 R >>
endobj
185 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /DXGFLV+LMSans10-Regular /FontDescriptor 11675 0 R /FirstChar 27 /LastChar 121 /Widths 11629 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /DXGFLV+LMSans10-Regular /FontDescriptor 11707 0 R /FirstChar 27 /LastChar 121 /Widths 11661 0 R /Encoding 11638 0 R >>
endobj
175 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /MOYMBT+LMSans17-Regular /FontDescriptor 11677 0 R /FirstChar 97 /LastChar 120 /Widths 11639 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /MOYMBT+LMSans17-Regular /FontDescriptor 11709 0 R /FirstChar 97 /LastChar 120 /Widths 11671 0 R /Encoding 11638 0 R >>
endobj
189 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /MMROMK+LMSans8-Regular /FontDescriptor 11679 0 R /FirstChar 48 /LastChar 120 /Widths 11626 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /MMROMK+LMSans8-Regular /FontDescriptor 11711 0 R /FirstChar 48 /LastChar 120 /Widths 11658 0 R /Encoding 11638 0 R >>
endobj
181 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /JJEEWR+LMSans9-Regular /FontDescriptor 11681 0 R /FirstChar 97 /LastChar 120 /Widths 11633 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /JJEEWR+LMSans9-Regular /FontDescriptor 11713 0 R /FirstChar 97 /LastChar 120 /Widths 11665 0 R /Encoding 11638 0 R >>
endobj
186 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /HNJOVH+LMMono10-Regular /FontDescriptor 11689 0 R /FirstChar 33 /LastChar 125 /Widths 11628 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /JLHGIY+LMMono10-Regular /FontDescriptor 11721 0 R /FirstChar 33 /LastChar 125 /Widths 11660 0 R /Encoding 11638 0 R >>
endobj
178 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /NRLLYV+LMMono12-Regular /FontDescriptor 11691 0 R /FirstChar 46 /LastChar 121 /Widths 11636 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /NRLLYV+LMMono12-Regular /FontDescriptor 11723 0 R /FirstChar 46 /LastChar 121 /Widths 11668 0 R /Encoding 11638 0 R >>
endobj
768 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /REBVUK+LMMono8-Regular /FontDescriptor 11693 0 R /FirstChar 44 /LastChar 125 /Widths 11612 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /REBVUK+LMMono8-Regular /FontDescriptor 11725 0 R /FirstChar 44 /LastChar 125 /Widths 11644 0 R /Encoding 11638 0 R >>
endobj
183 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /GVYJDY+LMMono9-Regular /FontDescriptor 11695 0 R /FirstChar 33 /LastChar 126 /Widths 11631 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /GVYJDY+LMMono9-Regular /FontDescriptor 11727 0 R /FirstChar 33 /LastChar 126 /Widths 11663 0 R /Encoding 11638 0 R >>
endobj
811 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /NWBRFF+LMMonoSlant10-Regular /FontDescriptor 11697 0 R /FirstChar 97 /LastChar 120 /Widths 11607 0 R /Encoding 11606 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /NWBRFF+LMMonoSlant10-Regular /FontDescriptor 11729 0 R /FirstChar 97 /LastChar 120 /Widths 11639 0 R /Encoding 11638 0 R >>
endobj
1809 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /WOCBGC+LMMathExtension10-Regular /FontDescriptor 11649 0 R /FirstChar 48 /LastChar 65 /Widths 11605 0 R /Encoding 11604 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /WOCBGC+LMMathExtension10-Regular /FontDescriptor 11681 0 R /FirstChar 48 /LastChar 65 /Widths 11637 0 R /Encoding 11636 0 R >>
endobj
662 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /YCPAMU+LMMathItalic10-Regular /FontDescriptor 11651 0 R /FirstChar 62 /LastChar 121 /Widths 11616 0 R /Encoding 11602 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /YCPAMU+LMMathItalic10-Regular /FontDescriptor 11683 0 R /FirstChar 62 /LastChar 121 /Widths 11648 0 R /Encoding 11634 0 R >>
endobj
-4533 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /JMCQJH+LMMathItalic7-Regular /FontDescriptor 11653 0 R /FirstChar 120 /LastChar 121 /Widths 11603 0 R /Encoding 11602 0 R >>
+4545 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /JMCQJH+LMMathItalic7-Regular /FontDescriptor 11685 0 R /FirstChar 120 /LastChar 121 /Widths 11635 0 R /Encoding 11634 0 R >>
endobj
176 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /FACRCI+LMMathSymbols10-Regular /FontDescriptor 11683 0 R /FirstChar 0 /LastChar 3 /Widths 11638 0 R /Encoding 11610 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /FACRCI+LMMathSymbols10-Regular /FontDescriptor 11715 0 R /FirstChar 0 /LastChar 3 /Widths 11670 0 R /Encoding 11642 0 R >>
endobj
204 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /DTFCKV+LMMathSymbols6-Regular /FontDescriptor 11685 0 R /FirstChar 3 /LastChar 3 /Widths 11625 0 R /Encoding 11610 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /DTFCKV+LMMathSymbols6-Regular /FontDescriptor 11717 0 R /FirstChar 3 /LastChar 3 /Widths 11657 0 R /Encoding 11642 0 R >>
endobj
769 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /ANTVSN+LMMathSymbols8-Regular /FontDescriptor 11687 0 R /FirstChar 0 /LastChar 0 /Widths 11611 0 R /Encoding 11610 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /ANTVSN+LMMathSymbols8-Regular /FontDescriptor 11719 0 R /FirstChar 0 /LastChar 0 /Widths 11643 0 R /Encoding 11642 0 R >>
endobj
660 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CVXELO+LMRoman10-Regular /FontDescriptor 11655 0 R /FirstChar 1 /LastChar 55 /Widths 11617 0 R /Encoding 11608 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CVXELO+LMRoman10-Regular /FontDescriptor 11687 0 R /FirstChar 1 /LastChar 55 /Widths 11649 0 R /Encoding 11640 0 R >>
endobj
770 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /PQFDKJ+LMRoman8-Regular /FontDescriptor 11665 0 R /FirstChar 48 /LastChar 49 /Widths 11609 0 R /Encoding 11608 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /PQFDKJ+LMRoman8-Regular /FontDescriptor 11697 0 R /FirstChar 48 /LastChar 49 /Widths 11641 0 R /Encoding 11640 0 R >>
endobj
668 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CVXELO+LMRoman10-Regular /FontDescriptor 11655 0 R /FirstChar 136 /LastChar 136 /Widths 11615 0 R /Encoding 11614 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CVXELO+LMRoman10-Regular /FontDescriptor 11687 0 R /FirstChar 136 /LastChar 136 /Widths 11647 0 R /Encoding 11646 0 R >>
endobj
264 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /GVYJDY+LMMono9-Regular /FontDescriptor 11695 0 R /FirstChar 39 /LastChar 96 /Widths 11623 0 R /Encoding 11614 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /GVYJDY+LMMono9-Regular /FontDescriptor 11727 0 R /FirstChar 39 /LastChar 96 /Widths 11655 0 R /Encoding 11646 0 R >>
endobj
206 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 169 0 R 208 0 R 255 0 R 302 0 R 341 0 R 385 0 R 431 0 R 484 0 R 532 0 R 564 0 R ] >>
+<< /Type /Pages /Parent 11731 0 R /Count 10 /Kids [ 169 0 R 208 0 R 255 0 R 302 0 R 341 0 R 385 0 R 431 0 R 484 0 R 532 0 R 564 0 R ] >>
endobj
603 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 584 0 R 605 0 R 632 0 R 656 0 R 679 0 R 699 0 R 726 0 R 754 0 R 773 0 R 808 0 R ] >>
+<< /Type /Pages /Parent 11731 0 R /Count 10 /Kids [ 584 0 R 605 0 R 632 0 R 656 0 R 679 0 R 699 0 R 726 0 R 754 0 R 773 0 R 808 0 R ] >>
endobj
871 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 829 0 R 873 0 R 921 0 R 965 0 R 1010 0 R 1055 0 R 1083 0 R 1104 0 R 1144 0 R 1198 0 R ] >>
+<< /Type /Pages /Parent 11731 0 R /Count 10 /Kids [ 829 0 R 873 0 R 921 0 R 965 0 R 1010 0 R 1055 0 R 1083 0 R 1104 0 R 1144 0 R 1198 0 R ] >>
endobj
1316 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 1260 0 R 1318 0 R 1381 0 R 1440 0 R 1486 0 R 1541 0 R 1569 0 R 1618 0 R 1681 0 R 1715 0 R ] >>
+<< /Type /Pages /Parent 11731 0 R /Count 10 /Kids [ 1260 0 R 1318 0 R 1381 0 R 1440 0 R 1486 0 R 1541 0 R 1569 0 R 1618 0 R 1681 0 R 1715 0 R ] >>
endobj
1810 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 1768 0 R 1812 0 R 1857 0 R 1914 0 R 1964 0 R 2007 0 R 2062 0 R 2099 0 R 2132 0 R 2170 0 R ] >>
+<< /Type /Pages /Parent 11731 0 R /Count 10 /Kids [ 1768 0 R 1812 0 R 1857 0 R 1914 0 R 1964 0 R 2007 0 R 2062 0 R 2099 0 R 2132 0 R 2170 0 R ] >>
endobj
2254 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 2213 0 R 2256 0 R 2313 0 R 2368 0 R 2409 0 R 2457 0 R 2513 0 R 2565 0 R 2607 0 R 2656 0 R ] >>
+<< /Type /Pages /Parent 11731 0 R /Count 10 /Kids [ 2213 0 R 2256 0 R 2313 0 R 2368 0 R 2409 0 R 2457 0 R 2513 0 R 2565 0 R 2607 0 R 2656 0 R ] >>
endobj
2759 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 2705 0 R 2762 0 R 2817 0 R 2877 0 R 2929 0 R 2967 0 R 3017 0 R 3068 0 R 3123 0 R 3180 0 R ] >>
+<< /Type /Pages /Parent 11731 0 R /Count 10 /Kids [ 2705 0 R 2762 0 R 2817 0 R 2877 0 R 2929 0 R 2967 0 R 3017 0 R 3068 0 R 3123 0 R 3180 0 R ] >>
endobj
3298 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 3240 0 R 3300 0 R 3335 0 R 3382 0 R 3427 0 R 3483 0 R 3539 0 R 3592 0 R 3637 0 R 3678 0 R ] >>
+<< /Type /Pages /Parent 11731 0 R /Count 10 /Kids [ 3240 0 R 3300 0 R 3335 0 R 3382 0 R 3427 0 R 3483 0 R 3537 0 R 3588 0 R 3638 0 R 3683 0 R ] >>
endobj
-3783 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 3734 0 R 3785 0 R 3845 0 R 3882 0 R 3922 0 R 3973 0 R 4033 0 R 4090 0 R 4152 0 R 4201 0 R ] >>
+3784 0 obj
+<< /Type /Pages /Parent 11731 0 R /Count 10 /Kids [ 3733 0 R 3786 0 R 3845 0 R 3889 0 R 3926 0 R 3974 0 R 4030 0 R 4090 0 R 4149 0 R 4202 0 R ] >>
endobj
-4301 0 obj
-<< /Type /Pages /Parent 11699 0 R /Count 10 /Kids [ 4253 0 R 4303 0 R 4358 0 R 4422 0 R 4461 0 R 4521 0 R 4560 0 R 4606 0 R 4652 0 R 4704 0 R ] >>
+4299 0 obj
+<< /Type /Pages /Parent 11731 0 R /Count 10 /Kids [ 4255 0 R 4301 0 R 4360 0 R 4418 0 R 4467 0 R 4515 0 R 4567 0 R 4607 0 R 4645 0 R 4698 0 R ] >>
endobj
-4785 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 4744 0 R 4787 0 R 4840 0 R 4903 0 R 4949 0 R 5013 0 R 5056 0 R 5106 0 R 5160 0 R 5217 0 R ] >>
+4783 0 obj
+<< /Type /Pages /Parent 11732 0 R /Count 10 /Kids [ 4756 0 R 4785 0 R 4840 0 R 4905 0 R 4947 0 R 5013 0 R 5068 0 R 5110 0 R 5159 0 R 5221 0 R ] >>
endobj
-5309 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 5264 0 R 5311 0 R 5356 0 R 5403 0 R 5442 0 R 5493 0 R 5549 0 R 5607 0 R 5673 0 R 5722 0 R ] >>
+5315 0 obj
+<< /Type /Pages /Parent 11732 0 R /Count 10 /Kids [ 5266 0 R 5317 0 R 5360 0 R 5406 0 R 5444 0 R 5493 0 R 5550 0 R 5604 0 R 5667 0 R 5718 0 R ] >>
endobj
-5835 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 5786 0 R 5837 0 R 5894 0 R 5955 0 R 6018 0 R 6054 0 R 6108 0 R 6145 0 R 6197 0 R 6240 0 R ] >>
+5841 0 obj
+<< /Type /Pages /Parent 11732 0 R /Count 10 /Kids [ 5780 0 R 5843 0 R 5894 0 R 5957 0 R 6013 0 R 6066 0 R 6109 0 R 6142 0 R 6197 0 R 6257 0 R ] >>
endobj
-6332 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 6276 0 R 6334 0 R 6382 0 R 6434 0 R 6477 0 R 6529 0 R 6576 0 R 6638 0 R 6688 0 R 6739 0 R ] >>
+6334 0 obj
+<< /Type /Pages /Parent 11732 0 R /Count 10 /Kids [ 6283 0 R 6336 0 R 6386 0 R 6439 0 R 6483 0 R 6537 0 R 6581 0 R 6640 0 R 6695 0 R 6744 0 R ] >>
endobj
-6820 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 6778 0 R 6822 0 R 6856 0 R 6899 0 R 6954 0 R 7017 0 R 7073 0 R 7120 0 R 7179 0 R 7235 0 R ] >>
+6821 0 obj
+<< /Type /Pages /Parent 11732 0 R /Count 10 /Kids [ 6781 0 R 6823 0 R 6864 0 R 6904 0 R 6951 0 R 7012 0 R 7074 0 R 7123 0 R 7179 0 R 7242 0 R ] >>
endobj
-7338 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 7285 0 R 7340 0 R 7390 0 R 7441 0 R 7488 0 R 7546 0 R 7597 0 R 7640 0 R 7698 0 R 7747 0 R ] >>
+7337 0 obj
+<< /Type /Pages /Parent 11732 0 R /Count 10 /Kids [ 7287 0 R 7339 0 R 7389 0 R 7444 0 R 7489 0 R 7550 0 R 7609 0 R 7645 0 R 7702 0 R 7750 0 R ] >>
endobj
-7831 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 7781 0 R 7834 0 R 7884 0 R 7935 0 R 7983 0 R 8038 0 R 8079 0 R 8118 0 R 8158 0 R 8207 0 R ] >>
+7834 0 obj
+<< /Type /Pages /Parent 11732 0 R /Count 10 /Kids [ 7797 0 R 7837 0 R 7885 0 R 7944 0 R 7991 0 R 8045 0 R 8082 0 R 8119 0 R 8150 0 R 8199 0 R ] >>
endobj
-8314 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 8266 0 R 8316 0 R 8376 0 R 8438 0 R 8490 0 R 8544 0 R 8609 0 R 8649 0 R 8702 0 R 8766 0 R ] >>
+8304 0 obj
+<< /Type /Pages /Parent 11732 0 R /Count 10 /Kids [ 8250 0 R 8306 0 R 8356 0 R 8410 0 R 8476 0 R 8528 0 R 8579 0 R 8643 0 R 8682 0 R 8733 0 R ] >>
endobj
-8886 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 8832 0 R 8888 0 R 8951 0 R 9009 0 R 9070 0 R 9132 0 R 9190 0 R 9243 0 R 9298 0 R 9341 0 R ] >>
+8862 0 obj
+<< /Type /Pages /Parent 11732 0 R /Count 10 /Kids [ 8799 0 R 8864 0 R 8919 0 R 8981 0 R 9041 0 R 9102 0 R 9163 0 R 9221 0 R 9269 0 R 9324 0 R ] >>
endobj
-9424 0 obj
-<< /Type /Pages /Parent 11700 0 R /Count 10 /Kids [ 9390 0 R 9427 0 R 9471 0 R 9529 0 R 9588 0 R 9636 0 R 9699 0 R 9752 0 R 9807 0 R 9846 0 R ] >>
+9414 0 obj
+<< /Type /Pages /Parent 11732 0 R /Count 10 /Kids [ 9367 0 R 9417 0 R 9459 0 R 9503 0 R 9561 0 R 9620 0 R 9668 0 R 9731 0 R 9784 0 R 9839 0 R ] >>
endobj
-9948 0 obj
-<< /Type /Pages /Parent 11701 0 R /Count 10 /Kids [ 9896 0 R 9950 0 R 10012 0 R 10075 0 R 10135 0 R 10200 0 R 10263 0 R 10330 0 R 10383 0 R 10444 0 R ] >>
+9927 0 obj
+<< /Type /Pages /Parent 11733 0 R /Count 10 /Kids [ 9878 0 R 9929 0 R 9982 0 R 10044 0 R 10107 0 R 10167 0 R 10232 0 R 10295 0 R 10362 0 R 10415 0 R ] >>
endobj
-10545 0 obj
-<< /Type /Pages /Parent 11701 0 R /Count 10 /Kids [ 10486 0 R 10547 0 R 10610 0 R 10674 0 R 10739 0 R 10803 0 R 10867 0 R 10932 0 R 10996 0 R 11060 0 R ] >>
+10517 0 obj
+<< /Type /Pages /Parent 11733 0 R /Count 10 /Kids [ 10476 0 R 10519 0 R 10579 0 R 10642 0 R 10706 0 R 10771 0 R 10835 0 R 10899 0 R 10964 0 R 11028 0 R ] >>
endobj
-11189 0 obj
-<< /Type /Pages /Parent 11701 0 R /Count 9 /Kids [ 11124 0 R 11191 0 R 11258 0 R 11323 0 R 11388 0 R 11455 0 R 11522 0 R 11584 0 R 11598 0 R ] >>
+11155 0 obj
+<< /Type /Pages /Parent 11733 0 R /Count 10 /Kids [ 11092 0 R 11157 0 R 11223 0 R 11290 0 R 11355 0 R 11420 0 R 11487 0 R 11554 0 R 11616 0 R 11630 0 R ] >>
endobj
-11699 0 obj
-<< /Type /Pages /Parent 11702 0 R /Count 100 /Kids [ 206 0 R 603 0 R 871 0 R 1316 0 R 1810 0 R 2254 0 R 2759 0 R 3298 0 R 3783 0 R 4301 0 R ] >>
+11731 0 obj
+<< /Type /Pages /Parent 11734 0 R /Count 100 /Kids [ 206 0 R 603 0 R 871 0 R 1316 0 R 1810 0 R 2254 0 R 2759 0 R 3298 0 R 3784 0 R 4299 0 R ] >>
endobj
-11700 0 obj
-<< /Type /Pages /Parent 11702 0 R /Count 100 /Kids [ 4785 0 R 5309 0 R 5835 0 R 6332 0 R 6820 0 R 7338 0 R 7831 0 R 8314 0 R 8886 0 R 9424 0 R ] >>
+11732 0 obj
+<< /Type /Pages /Parent 11734 0 R /Count 100 /Kids [ 4783 0 R 5315 0 R 5841 0 R 6334 0 R 6821 0 R 7337 0 R 7834 0 R 8304 0 R 8862 0 R 9414 0 R ] >>
endobj
-11701 0 obj
-<< /Type /Pages /Parent 11702 0 R /Count 29 /Kids [ 9948 0 R 10545 0 R 11189 0 R ] >>
+11733 0 obj
+<< /Type /Pages /Parent 11734 0 R /Count 30 /Kids [ 9927 0 R 10517 0 R 11155 0 R ] >>
endobj
-11702 0 obj
-<< /Type /Pages /Count 229 /Kids [ 11699 0 R 11700 0 R 11701 0 R ] >>
+11734 0 obj
+<< /Type /Pages /Count 230 /Kids [ 11731 0 R 11732 0 R 11733 0 R ] >>
endobj
-11703 0 obj
+11735 0 obj
<< /Type /Outlines /First 6 0 R /Last 166 0 R /Count 41 >>
endobj
166 0 obj
-<< /Title 167 0 R /A 164 0 R /Parent 11703 0 R /Prev 162 0 R >>
+<< /Title 167 0 R /A 164 0 R /Parent 11735 0 R /Prev 162 0 R >>
endobj
162 0 obj
-<< /Title 163 0 R /A 160 0 R /Parent 11703 0 R /Prev 158 0 R /Next 166 0 R >>
+<< /Title 163 0 R /A 160 0 R /Parent 11735 0 R /Prev 158 0 R /Next 166 0 R >>
endobj
158 0 obj
-<< /Title 159 0 R /A 156 0 R /Parent 11703 0 R /Prev 154 0 R /Next 162 0 R >>
+<< /Title 159 0 R /A 156 0 R /Parent 11735 0 R /Prev 154 0 R /Next 162 0 R >>
endobj
154 0 obj
-<< /Title 155 0 R /A 152 0 R /Parent 11703 0 R /Prev 150 0 R /Next 158 0 R >>
+<< /Title 155 0 R /A 152 0 R /Parent 11735 0 R /Prev 150 0 R /Next 158 0 R >>
endobj
150 0 obj
-<< /Title 151 0 R /A 148 0 R /Parent 11703 0 R /Prev 146 0 R /Next 154 0 R >>
+<< /Title 151 0 R /A 148 0 R /Parent 11735 0 R /Prev 146 0 R /Next 154 0 R >>
endobj
146 0 obj
-<< /Title 147 0 R /A 144 0 R /Parent 11703 0 R /Prev 142 0 R /Next 150 0 R >>
+<< /Title 147 0 R /A 144 0 R /Parent 11735 0 R /Prev 142 0 R /Next 150 0 R >>
endobj
142 0 obj
-<< /Title 143 0 R /A 140 0 R /Parent 11703 0 R /Prev 138 0 R /Next 146 0 R >>
+<< /Title 143 0 R /A 140 0 R /Parent 11735 0 R /Prev 138 0 R /Next 146 0 R >>
endobj
138 0 obj
-<< /Title 139 0 R /A 136 0 R /Parent 11703 0 R /Prev 134 0 R /Next 142 0 R >>
+<< /Title 139 0 R /A 136 0 R /Parent 11735 0 R /Prev 134 0 R /Next 142 0 R >>
endobj
134 0 obj
-<< /Title 135 0 R /A 132 0 R /Parent 11703 0 R /Prev 130 0 R /Next 138 0 R >>
+<< /Title 135 0 R /A 132 0 R /Parent 11735 0 R /Prev 130 0 R /Next 138 0 R >>
endobj
130 0 obj
-<< /Title 131 0 R /A 128 0 R /Parent 11703 0 R /Prev 126 0 R /Next 134 0 R >>
+<< /Title 131 0 R /A 128 0 R /Parent 11735 0 R /Prev 126 0 R /Next 134 0 R >>
endobj
126 0 obj
-<< /Title 127 0 R /A 124 0 R /Parent 11703 0 R /Prev 122 0 R /Next 130 0 R >>
+<< /Title 127 0 R /A 124 0 R /Parent 11735 0 R /Prev 122 0 R /Next 130 0 R >>
endobj
122 0 obj
-<< /Title 123 0 R /A 120 0 R /Parent 11703 0 R /Prev 118 0 R /Next 126 0 R >>
+<< /Title 123 0 R /A 120 0 R /Parent 11735 0 R /Prev 118 0 R /Next 126 0 R >>
endobj
118 0 obj
-<< /Title 119 0 R /A 116 0 R /Parent 11703 0 R /Prev 114 0 R /Next 122 0 R >>
+<< /Title 119 0 R /A 116 0 R /Parent 11735 0 R /Prev 114 0 R /Next 122 0 R >>
endobj
114 0 obj
-<< /Title 115 0 R /A 112 0 R /Parent 11703 0 R /Prev 110 0 R /Next 118 0 R >>
+<< /Title 115 0 R /A 112 0 R /Parent 11735 0 R /Prev 110 0 R /Next 118 0 R >>
endobj
110 0 obj
-<< /Title 111 0 R /A 108 0 R /Parent 11703 0 R /Prev 106 0 R /Next 114 0 R >>
+<< /Title 111 0 R /A 108 0 R /Parent 11735 0 R /Prev 106 0 R /Next 114 0 R >>
endobj
106 0 obj
-<< /Title 107 0 R /A 104 0 R /Parent 11703 0 R /Prev 102 0 R /Next 110 0 R >>
+<< /Title 107 0 R /A 104 0 R /Parent 11735 0 R /Prev 102 0 R /Next 110 0 R >>
endobj
102 0 obj
-<< /Title 103 0 R /A 100 0 R /Parent 11703 0 R /Prev 98 0 R /Next 106 0 R >>
+<< /Title 103 0 R /A 100 0 R /Parent 11735 0 R /Prev 98 0 R /Next 106 0 R >>
endobj
98 0 obj
-<< /Title 99 0 R /A 96 0 R /Parent 11703 0 R /Prev 94 0 R /Next 102 0 R >>
+<< /Title 99 0 R /A 96 0 R /Parent 11735 0 R /Prev 94 0 R /Next 102 0 R >>
endobj
94 0 obj
-<< /Title 95 0 R /A 92 0 R /Parent 11703 0 R /Prev 90 0 R /Next 98 0 R >>
+<< /Title 95 0 R /A 92 0 R /Parent 11735 0 R /Prev 90 0 R /Next 98 0 R >>
endobj
90 0 obj
-<< /Title 91 0 R /A 88 0 R /Parent 11703 0 R /Prev 86 0 R /Next 94 0 R >>
+<< /Title 91 0 R /A 88 0 R /Parent 11735 0 R /Prev 86 0 R /Next 94 0 R >>
endobj
86 0 obj
-<< /Title 87 0 R /A 84 0 R /Parent 11703 0 R /Prev 82 0 R /Next 90 0 R >>
+<< /Title 87 0 R /A 84 0 R /Parent 11735 0 R /Prev 82 0 R /Next 90 0 R >>
endobj
82 0 obj
-<< /Title 83 0 R /A 80 0 R /Parent 11703 0 R /Prev 78 0 R /Next 86 0 R >>
+<< /Title 83 0 R /A 80 0 R /Parent 11735 0 R /Prev 78 0 R /Next 86 0 R >>
endobj
78 0 obj
-<< /Title 79 0 R /A 76 0 R /Parent 11703 0 R /Prev 74 0 R /Next 82 0 R >>
+<< /Title 79 0 R /A 76 0 R /Parent 11735 0 R /Prev 74 0 R /Next 82 0 R >>
endobj
74 0 obj
-<< /Title 75 0 R /A 72 0 R /Parent 11703 0 R /Prev 70 0 R /Next 78 0 R >>
+<< /Title 75 0 R /A 72 0 R /Parent 11735 0 R /Prev 70 0 R /Next 78 0 R >>
endobj
70 0 obj
-<< /Title 71 0 R /A 68 0 R /Parent 11703 0 R /Prev 66 0 R /Next 74 0 R >>
+<< /Title 71 0 R /A 68 0 R /Parent 11735 0 R /Prev 66 0 R /Next 74 0 R >>
endobj
66 0 obj
-<< /Title 67 0 R /A 64 0 R /Parent 11703 0 R /Prev 62 0 R /Next 70 0 R >>
+<< /Title 67 0 R /A 64 0 R /Parent 11735 0 R /Prev 62 0 R /Next 70 0 R >>
endobj
62 0 obj
-<< /Title 63 0 R /A 60 0 R /Parent 11703 0 R /Prev 58 0 R /Next 66 0 R >>
+<< /Title 63 0 R /A 60 0 R /Parent 11735 0 R /Prev 58 0 R /Next 66 0 R >>
endobj
58 0 obj
-<< /Title 59 0 R /A 56 0 R /Parent 11703 0 R /Prev 54 0 R /Next 62 0 R >>
+<< /Title 59 0 R /A 56 0 R /Parent 11735 0 R /Prev 54 0 R /Next 62 0 R >>
endobj
54 0 obj
-<< /Title 55 0 R /A 52 0 R /Parent 11703 0 R /Prev 50 0 R /Next 58 0 R >>
+<< /Title 55 0 R /A 52 0 R /Parent 11735 0 R /Prev 50 0 R /Next 58 0 R >>
endobj
50 0 obj
-<< /Title 51 0 R /A 48 0 R /Parent 11703 0 R /Prev 46 0 R /Next 54 0 R >>
+<< /Title 51 0 R /A 48 0 R /Parent 11735 0 R /Prev 46 0 R /Next 54 0 R >>
endobj
46 0 obj
-<< /Title 47 0 R /A 44 0 R /Parent 11703 0 R /Prev 42 0 R /Next 50 0 R >>
+<< /Title 47 0 R /A 44 0 R /Parent 11735 0 R /Prev 42 0 R /Next 50 0 R >>
endobj
42 0 obj
-<< /Title 43 0 R /A 40 0 R /Parent 11703 0 R /Prev 38 0 R /Next 46 0 R >>
+<< /Title 43 0 R /A 40 0 R /Parent 11735 0 R /Prev 38 0 R /Next 46 0 R >>
endobj
38 0 obj
-<< /Title 39 0 R /A 36 0 R /Parent 11703 0 R /Prev 34 0 R /Next 42 0 R >>
+<< /Title 39 0 R /A 36 0 R /Parent 11735 0 R /Prev 34 0 R /Next 42 0 R >>
endobj
34 0 obj
-<< /Title 35 0 R /A 32 0 R /Parent 11703 0 R /Prev 30 0 R /Next 38 0 R >>
+<< /Title 35 0 R /A 32 0 R /Parent 11735 0 R /Prev 30 0 R /Next 38 0 R >>
endobj
30 0 obj
-<< /Title 31 0 R /A 28 0 R /Parent 11703 0 R /Prev 26 0 R /Next 34 0 R >>
+<< /Title 31 0 R /A 28 0 R /Parent 11735 0 R /Prev 26 0 R /Next 34 0 R >>
endobj
26 0 obj
-<< /Title 27 0 R /A 24 0 R /Parent 11703 0 R /Prev 22 0 R /Next 30 0 R >>
+<< /Title 27 0 R /A 24 0 R /Parent 11735 0 R /Prev 22 0 R /Next 30 0 R >>
endobj
22 0 obj
-<< /Title 23 0 R /A 20 0 R /Parent 11703 0 R /Prev 18 0 R /Next 26 0 R >>
+<< /Title 23 0 R /A 20 0 R /Parent 11735 0 R /Prev 18 0 R /Next 26 0 R >>
endobj
18 0 obj
-<< /Title 19 0 R /A 16 0 R /Parent 11703 0 R /Prev 14 0 R /Next 22 0 R >>
+<< /Title 19 0 R /A 16 0 R /Parent 11735 0 R /Prev 14 0 R /Next 22 0 R >>
endobj
14 0 obj
-<< /Title 15 0 R /A 12 0 R /Parent 11703 0 R /Prev 10 0 R /Next 18 0 R >>
+<< /Title 15 0 R /A 12 0 R /Parent 11735 0 R /Prev 10 0 R /Next 18 0 R >>
endobj
10 0 obj
-<< /Title 11 0 R /A 8 0 R /Parent 11703 0 R /Prev 6 0 R /Next 14 0 R >>
+<< /Title 11 0 R /A 8 0 R /Parent 11735 0 R /Prev 6 0 R /Next 14 0 R >>
endobj
6 0 obj
-<< /Title 7 0 R /A 4 0 R /Parent 11703 0 R /Next 10 0 R >>
-endobj
-11704 0 obj
-<< /Names [ (Doc-Start) 173 0 R (HD.1) 188 0 R (HD.10) 198 0 R (HD.100) 300 0 R (HD.1000) 1341 0 R (HD.10000) 11154 0 R (HD.10001) 11155 0 R (HD.10002) 11156 0 R (HD.10003) 11157 0 R (HD.10004) 11158 0 R (HD.10005) 11159 0 R (HD.10006) 11160 0 R (HD.10007) 11161 0 R (HD.10008) 11162 0 R (HD.10009) 11163 0 R (HD.1001) 1342 0 R (HD.10010) 11164 0 R (HD.10011) 11165 0 R (HD.10012) 11166 0 R (HD.10013) 11167 0 R (HD.10014) 11168 0 R (HD.10015) 11169 0 R (HD.10016) 11170 0 R (HD.10017) 11171 0 R (HD.10018) 11172 0 R (HD.10019) 11173 0 R (HD.1002) 1343 0 R (HD.10020) 11174 0 R (HD.10021) 11175 0 R (HD.10022) 11176 0 R (HD.10023) 11177 0 R (HD.10024) 11178 0 R ] /Limits [ (Doc-Start) (HD.10024) ] >>
-endobj
-11705 0 obj
-<< /Names [ (HD.10025) 11179 0 R (HD.10026) 11180 0 R (HD.10027) 11181 0 R (HD.10028) 11182 0 R (HD.10029) 11183 0 R (HD.1003) 1344 0 R (HD.10030) 11184 0 R (HD.10031) 11185 0 R (HD.10032) 11186 0 R (HD.10033) 11187 0 R (HD.10034) 11188 0 R (HD.10035) 11194 0 R (HD.10036) 11195 0 R (HD.10037) 11196 0 R (HD.10038) 11197 0 R (HD.10039) 11198 0 R (HD.1004) 1345 0 R (HD.10040) 11199 0 R (HD.10041) 11200 0 R (HD.10042) 11201 0 R (HD.10043) 11202 0 R (HD.10044) 11203 0 R (HD.10045) 11204 0 R (HD.10046) 11205 0 R (HD.10047) 11206 0 R (HD.10048) 11207 0 R (HD.10049) 11208 0 R (HD.1005) 1346 0 R (HD.10050) 11209 0 R (HD.10051) 11210 0 R (HD.10052) 11211 0 R (HD.10053) 11212 0 R ] /Limits [ (HD.10025) (HD.10053) ] >>
-endobj
-11706 0 obj
-<< /Names [ (HD.10054) 11213 0 R (HD.10055) 11214 0 R (HD.10056) 11215 0 R (HD.10057) 11216 0 R (HD.10058) 11217 0 R (HD.10059) 11218 0 R (HD.1006) 1347 0 R (HD.10060) 11219 0 R (HD.10061) 11220 0 R (HD.10062) 11221 0 R (HD.10063) 11222 0 R (HD.10064) 11223 0 R (HD.10065) 11224 0 R (HD.10066) 11225 0 R (HD.10067) 11226 0 R (HD.10068) 11227 0 R (HD.10069) 11228 0 R (HD.1007) 1348 0 R (HD.10070) 11229 0 R (HD.10071) 11230 0 R (HD.10072) 11231 0 R (HD.10073) 11232 0 R (HD.10074) 11233 0 R (HD.10075) 11234 0 R (HD.10076) 11235 0 R (HD.10077) 11236 0 R (HD.10078) 11237 0 R (HD.10079) 11238 0 R (HD.1008) 1349 0 R (HD.10080) 11239 0 R (HD.10081) 11240 0 R (HD.10082) 11241 0 R ] /Limits [ (HD.10054) (HD.10082) ] >>
-endobj
-11707 0 obj
-<< /Names [ (HD.10083) 11242 0 R (HD.10084) 11243 0 R (HD.10085) 11244 0 R (HD.10086) 11245 0 R (HD.10087) 11246 0 R (HD.10088) 11247 0 R (HD.10089) 11248 0 R (HD.1009) 1350 0 R (HD.10090) 11249 0 R (HD.10091) 11250 0 R (HD.10092) 11251 0 R (HD.10093) 11252 0 R (HD.10094) 11253 0 R (HD.10095) 11254 0 R (HD.10096) 11255 0 R (HD.10097) 11256 0 R (HD.10098) 11261 0 R (HD.10099) 11262 0 R (HD.101) 305 0 R (HD.1010) 1351 0 R (HD.10100) 11263 0 R (HD.10101) 11264 0 R (HD.10102) 11265 0 R (HD.10103) 11266 0 R (HD.10104) 11267 0 R (HD.10105) 11268 0 R (HD.10106) 11269 0 R (HD.10107) 11270 0 R (HD.10108) 11271 0 R (HD.10109) 11272 0 R (HD.1011) 1352 0 R (HD.10110) 11273 0 R ] /Limits [ (HD.10083) (HD.10110) ] >>
-endobj
-11708 0 obj
-<< /Names [ (HD.10111) 11274 0 R (HD.10112) 11275 0 R (HD.10113) 11276 0 R (HD.10114) 11277 0 R (HD.10115) 11278 0 R (HD.10116) 11279 0 R (HD.10117) 11280 0 R (HD.10118) 11281 0 R (HD.10119) 11282 0 R (HD.1012) 1353 0 R (HD.10120) 11283 0 R (HD.10121) 11284 0 R (HD.10122) 11285 0 R (HD.10123) 11286 0 R (HD.10124) 11287 0 R (HD.10125) 11288 0 R (HD.10126) 11289 0 R (HD.10127) 11290 0 R (HD.10128) 11291 0 R (HD.10129) 11292 0 R (HD.1013) 1354 0 R (HD.10130) 11293 0 R (HD.10131) 11294 0 R (HD.10132) 11295 0 R (HD.10133) 11296 0 R (HD.10134) 11297 0 R (HD.10135) 11298 0 R (HD.10136) 11299 0 R (HD.10137) 11300 0 R (HD.10138) 11301 0 R (HD.10139) 11302 0 R (HD.1014) 1355 0 R ] /Limits [ (HD.10111) (HD.1014) ] >>
-endobj
-11709 0 obj
-<< /Names [ (HD.10140) 11303 0 R (HD.10141) 11304 0 R (HD.10142) 11305 0 R (HD.10143) 11306 0 R (HD.10144) 11307 0 R (HD.10145) 11308 0 R (HD.10146) 11309 0 R (HD.10147) 11310 0 R (HD.10148) 11311 0 R (HD.10149) 11312 0 R (HD.1015) 1356 0 R (HD.10150) 11313 0 R (HD.10151) 11314 0 R (HD.10152) 11315 0 R (HD.10153) 11316 0 R (HD.10154) 11317 0 R (HD.10155) 11318 0 R (HD.10156) 11319 0 R (HD.10157) 11320 0 R (HD.10158) 11321 0 R (HD.10159) 11326 0 R (HD.1016) 1357 0 R (HD.10160) 11327 0 R (HD.10161) 11328 0 R (HD.10162) 11329 0 R (HD.10163) 11330 0 R (HD.10164) 11331 0 R (HD.10165) 11332 0 R (HD.10166) 11333 0 R (HD.10167) 11334 0 R (HD.10168) 11335 0 R (HD.10169) 11336 0 R ] /Limits [ (HD.10140) (HD.10169) ] >>
-endobj
-11710 0 obj
-<< /Names [ (HD.1017) 1358 0 R (HD.10170) 11337 0 R (HD.10171) 11338 0 R (HD.10172) 11339 0 R (HD.10173) 11340 0 R (HD.10174) 11341 0 R (HD.10175) 11342 0 R (HD.10176) 11343 0 R (HD.10177) 11344 0 R (HD.10178) 11345 0 R (HD.10179) 11346 0 R (HD.1018) 1359 0 R (HD.10180) 11347 0 R (HD.10181) 11348 0 R (HD.10182) 11349 0 R (HD.10183) 11350 0 R (HD.10184) 11351 0 R (HD.10185) 11352 0 R (HD.10186) 11353 0 R (HD.10187) 11354 0 R (HD.10188) 11355 0 R (HD.10189) 11356 0 R (HD.1019) 1360 0 R (HD.10190) 11357 0 R (HD.10191) 11358 0 R (HD.10192) 11359 0 R (HD.10193) 11360 0 R (HD.10194) 11361 0 R (HD.10195) 11362 0 R (HD.10196) 11363 0 R (HD.10197) 11364 0 R (HD.10198) 11365 0 R ] /Limits [ (HD.1017) (HD.10198) ] >>
-endobj
-11711 0 obj
-<< /Names [ (HD.10199) 11366 0 R (HD.102) 306 0 R (HD.1020) 1361 0 R (HD.10200) 11367 0 R (HD.10201) 11368 0 R (HD.10202) 11369 0 R (HD.10203) 11370 0 R (HD.10204) 11371 0 R (HD.10205) 11372 0 R (HD.10206) 11373 0 R (HD.10207) 11374 0 R (HD.10208) 11375 0 R (HD.10209) 11376 0 R (HD.1021) 1362 0 R (HD.10210) 11377 0 R (HD.10211) 11378 0 R (HD.10212) 11379 0 R (HD.10213) 11380 0 R (HD.10214) 11381 0 R (HD.10215) 11382 0 R (HD.10216) 11383 0 R (HD.10217) 11384 0 R (HD.10218) 11385 0 R (HD.10219) 11386 0 R (HD.1022) 1363 0 R (HD.10220) 11391 0 R (HD.10221) 11392 0 R (HD.10222) 11393 0 R (HD.10223) 11394 0 R (HD.10224) 11395 0 R (HD.10225) 11396 0 R (HD.10226) 11397 0 R ] /Limits [ (HD.10199) (HD.10226) ] >>
-endobj
-11712 0 obj
-<< /Names [ (HD.10227) 11398 0 R (HD.10228) 11399 0 R (HD.10229) 11400 0 R (HD.1023) 1364 0 R (HD.10230) 11401 0 R (HD.10231) 11402 0 R (HD.10232) 11403 0 R (HD.10233) 11404 0 R (HD.10234) 11405 0 R (HD.10235) 11406 0 R (HD.10236) 11407 0 R (HD.10237) 11408 0 R (HD.10238) 11409 0 R (HD.10239) 11410 0 R (HD.1024) 1365 0 R (HD.10240) 11411 0 R (HD.10241) 11412 0 R (HD.10242) 11413 0 R (HD.10243) 11414 0 R (HD.10244) 11415 0 R (HD.10245) 11416 0 R (HD.10246) 11417 0 R (HD.10247) 11418 0 R (HD.10248) 11419 0 R (HD.10249) 11420 0 R (HD.1025) 1366 0 R (HD.10250) 11421 0 R (HD.10251) 11422 0 R (HD.10252) 11423 0 R (HD.10253) 11424 0 R (HD.10254) 11425 0 R (HD.10255) 11426 0 R ] /Limits [ (HD.10227) (HD.10255) ] >>
-endobj
-11713 0 obj
-<< /Names [ (HD.10256) 11427 0 R (HD.10257) 11428 0 R (HD.10258) 11429 0 R (HD.10259) 11430 0 R (HD.1026) 1367 0 R (HD.10260) 11431 0 R (HD.10261) 11432 0 R (HD.10262) 11433 0 R (HD.10263) 11434 0 R (HD.10264) 11435 0 R (HD.10265) 11436 0 R (HD.10266) 11437 0 R (HD.10267) 11438 0 R (HD.10268) 11439 0 R (HD.10269) 11440 0 R (HD.1027) 1368 0 R (HD.10270) 11441 0 R (HD.10271) 11442 0 R (HD.10272) 11443 0 R (HD.10273) 11444 0 R (HD.10274) 11445 0 R (HD.10275) 11446 0 R (HD.10276) 11447 0 R (HD.10277) 11448 0 R (HD.10278) 11449 0 R (HD.10279) 11450 0 R (HD.1028) 1369 0 R (HD.10280) 11451 0 R (HD.10281) 11452 0 R (HD.10282) 11453 0 R (HD.10283) 11458 0 R (HD.10284) 11459 0 R ] /Limits [ (HD.10256) (HD.10284) ] >>
-endobj
-11714 0 obj
-<< /Names [ (HD.10285) 11460 0 R (HD.10286) 11461 0 R (HD.10287) 11462 0 R (HD.10288) 11463 0 R (HD.10289) 11464 0 R (HD.1029) 1370 0 R (HD.10290) 11465 0 R (HD.10291) 11466 0 R (HD.10292) 11467 0 R (HD.10293) 11468 0 R (HD.10294) 11469 0 R (HD.10295) 11470 0 R (HD.10296) 11471 0 R (HD.10297) 11472 0 R (HD.10298) 11473 0 R (HD.10299) 11474 0 R (HD.103) 307 0 R (HD.1030) 1371 0 R (HD.10300) 11475 0 R (HD.10301) 11476 0 R (HD.10302) 11477 0 R (HD.10303) 11478 0 R (HD.10304) 11479 0 R (HD.10305) 11480 0 R (HD.10306) 11481 0 R (HD.10307) 11482 0 R (HD.10308) 11483 0 R (HD.10309) 11484 0 R (HD.1031) 1372 0 R (HD.10310) 11485 0 R (HD.10311) 11486 0 R (HD.10312) 11487 0 R ] /Limits [ (HD.10285) (HD.10312) ] >>
-endobj
-11715 0 obj
-<< /Names [ (HD.10313) 11488 0 R (HD.10314) 11489 0 R (HD.10315) 11490 0 R (HD.10316) 11491 0 R (HD.10317) 11492 0 R (HD.10318) 11493 0 R (HD.10319) 11494 0 R (HD.1032) 1373 0 R (HD.10320) 11495 0 R (HD.10321) 11496 0 R (HD.10322) 11497 0 R (HD.10323) 11498 0 R (HD.10324) 11499 0 R (HD.10325) 11500 0 R (HD.10326) 11501 0 R (HD.10327) 11502 0 R (HD.10328) 11503 0 R (HD.10329) 11504 0 R (HD.1033) 1374 0 R (HD.10330) 11505 0 R (HD.10331) 11506 0 R (HD.10332) 11507 0 R (HD.10333) 11508 0 R (HD.10334) 11509 0 R (HD.10335) 11510 0 R (HD.10336) 11511 0 R (HD.10337) 11512 0 R (HD.10338) 11513 0 R (HD.10339) 11514 0 R (HD.1034) 1375 0 R (HD.10340) 11515 0 R (HD.10341) 11516 0 R ] /Limits [ (HD.10313) (HD.10341) ] >>
-endobj
-11716 0 obj
-<< /Names [ (HD.10342) 11517 0 R (HD.10343) 11518 0 R (HD.10344) 11519 0 R (HD.10345) 11520 0 R (HD.10346) 11525 0 R (HD.10347) 11526 0 R (HD.10348) 11527 0 R (HD.10349) 11528 0 R (HD.1035) 1376 0 R (HD.10350) 11529 0 R (HD.10351) 11530 0 R (HD.10352) 11531 0 R (HD.10353) 11532 0 R (HD.10354) 11533 0 R (HD.10355) 11534 0 R (HD.10356) 11535 0 R (HD.10357) 11536 0 R (HD.10358) 11537 0 R (HD.10359) 11538 0 R (HD.1036) 1377 0 R (HD.10360) 11539 0 R (HD.10361) 11540 0 R (HD.10362) 11541 0 R (HD.10363) 11542 0 R (HD.10364) 11543 0 R (HD.10365) 11544 0 R (HD.10366) 11545 0 R (HD.10367) 11546 0 R (HD.10368) 11547 0 R (HD.10369) 11548 0 R (HD.1037) 1378 0 R (HD.10370) 11549 0 R ] /Limits [ (HD.10342) (HD.10370) ] >>
-endobj
-11717 0 obj
-<< /Names [ (HD.10371) 11550 0 R (HD.10372) 11551 0 R (HD.1038) 1379 0 R (HD.1039) 1384 0 R (HD.104) 308 0 R (HD.1040) 1385 0 R (HD.1041) 1386 0 R (HD.1042) 1387 0 R (HD.1043) 1388 0 R (HD.1044) 1389 0 R (HD.1045) 1390 0 R (HD.1046) 1391 0 R (HD.1047) 1392 0 R (HD.1048) 1393 0 R (HD.1049) 1394 0 R (HD.105) 309 0 R (HD.1050) 1395 0 R (HD.1051) 1396 0 R (HD.1052) 1397 0 R (HD.1053) 1398 0 R (HD.1054) 1399 0 R (HD.1055) 1400 0 R (HD.1056) 1401 0 R (HD.1057) 1402 0 R (HD.1058) 1403 0 R (HD.1059) 1404 0 R (HD.106) 310 0 R (HD.1060) 1405 0 R (HD.1061) 1406 0 R (HD.1062) 1407 0 R (HD.1063) 1408 0 R (HD.1064) 1409 0 R ] /Limits [ (HD.10371) (HD.1064) ] >>
-endobj
-11718 0 obj
-<< /Names [ (HD.1065) 1410 0 R (HD.1066) 1411 0 R (HD.1067) 1412 0 R (HD.1068) 1413 0 R (HD.1069) 1414 0 R (HD.107) 311 0 R (HD.1070) 1415 0 R (HD.1071) 1416 0 R (HD.1072) 1417 0 R (HD.1073) 1418 0 R (HD.1074) 1419 0 R (HD.1075) 1420 0 R (HD.1076) 1421 0 R (HD.1077) 1422 0 R (HD.1078) 1423 0 R (HD.1079) 1424 0 R (HD.108) 312 0 R (HD.1080) 1425 0 R (HD.1081) 1426 0 R (HD.1082) 1427 0 R (HD.1083) 1428 0 R (HD.1084) 1429 0 R (HD.1085) 1430 0 R (HD.1086) 1431 0 R (HD.1087) 1432 0 R (HD.1088) 1433 0 R (HD.1089) 1434 0 R (HD.109) 313 0 R (HD.1090) 1435 0 R (HD.1091) 1436 0 R (HD.1092) 1437 0 R (HD.1093) 1438 0 R ] /Limits [ (HD.1065) (HD.1093) ] >>
-endobj
-11719 0 obj
-<< /Names [ (HD.1094) 1443 0 R (HD.1095) 1444 0 R (HD.1096) 1445 0 R (HD.1097) 1446 0 R (HD.1098) 1447 0 R (HD.1099) 1448 0 R (HD.11) 199 0 R (HD.110) 314 0 R (HD.1100) 1449 0 R (HD.1101) 1450 0 R (HD.1102) 1451 0 R (HD.1103) 1452 0 R (HD.1104) 1453 0 R (HD.1105) 1454 0 R (HD.1106) 1455 0 R (HD.1107) 1456 0 R (HD.1108) 1457 0 R (HD.1109) 1458 0 R (HD.111) 315 0 R (HD.1110) 1459 0 R (HD.1111) 1460 0 R (HD.1112) 1461 0 R (HD.1113) 1462 0 R (HD.1114) 1463 0 R (HD.1115) 1464 0 R (HD.1116) 1465 0 R (HD.1117) 1466 0 R (HD.1118) 1467 0 R (HD.1119) 1468 0 R (HD.112) 316 0 R (HD.1120) 1469 0 R (HD.1121) 1470 0 R ] /Limits [ (HD.1094) (HD.1121) ] >>
-endobj
-11720 0 obj
-<< /Names [ (HD.1122) 1471 0 R (HD.1123) 1472 0 R (HD.1124) 1473 0 R (HD.1125) 1474 0 R (HD.1126) 1475 0 R (HD.1127) 1476 0 R (HD.1128) 1477 0 R (HD.1129) 1478 0 R (HD.113) 319 0 R (HD.1130) 1479 0 R (HD.1131) 1480 0 R (HD.1132) 1481 0 R (HD.1133) 1482 0 R (HD.1134) 1483 0 R (HD.1135) 1484 0 R (HD.1136) 1489 0 R (HD.1137) 1490 0 R (HD.1138) 1491 0 R (HD.1139) 1492 0 R (HD.114) 320 0 R (HD.1140) 1493 0 R (HD.1141) 1494 0 R (HD.1142) 1495 0 R (HD.1143) 1496 0 R (HD.1144) 1497 0 R (HD.1145) 1498 0 R (HD.1146) 1499 0 R (HD.1147) 1500 0 R (HD.1148) 1501 0 R (HD.1149) 1502 0 R (HD.115) 321 0 R (HD.1150) 1503 0 R ] /Limits [ (HD.1122) (HD.1150) ] >>
-endobj
-11721 0 obj
-<< /Names [ (HD.1151) 1504 0 R (HD.1152) 1505 0 R (HD.1153) 1506 0 R (HD.1154) 1507 0 R (HD.1155) 1508 0 R (HD.1156) 1509 0 R (HD.1157) 1510 0 R (HD.1158) 1511 0 R (HD.1159) 1512 0 R (HD.116) 322 0 R (HD.1160) 1513 0 R (HD.1161) 1514 0 R (HD.1162) 1515 0 R (HD.1163) 1516 0 R (HD.1164) 1517 0 R (HD.1165) 1518 0 R (HD.1166) 1519 0 R (HD.1167) 1520 0 R (HD.1168) 1521 0 R (HD.1169) 1522 0 R (HD.117) 323 0 R (HD.1170) 1523 0 R (HD.1171) 1524 0 R (HD.1172) 1525 0 R (HD.1173) 1526 0 R (HD.1174) 1527 0 R (HD.1175) 1528 0 R (HD.1176) 1529 0 R (HD.1177) 1530 0 R (HD.1178) 1531 0 R (HD.1179) 1532 0 R (HD.118) 324 0 R ] /Limits [ (HD.1151) (HD.118) ] >>
-endobj
-11722 0 obj
-<< /Names [ (HD.1180) 1533 0 R (HD.1181) 1534 0 R (HD.1182) 1535 0 R (HD.1183) 1536 0 R (HD.1184) 1537 0 R (HD.1185) 1538 0 R (HD.1186) 1539 0 R (HD.1187) 1544 0 R (HD.1188) 1545 0 R (HD.1189) 1546 0 R (HD.119) 325 0 R (HD.1190) 1547 0 R (HD.1191) 1548 0 R (HD.1192) 1549 0 R (HD.1193) 1550 0 R (HD.1194) 1551 0 R (HD.1195) 1552 0 R (HD.1196) 1553 0 R (HD.1197) 1554 0 R (HD.1198) 1555 0 R (HD.1199) 1556 0 R (HD.12) 200 0 R (HD.120) 326 0 R (HD.1200) 1557 0 R (HD.1201) 1558 0 R (HD.1202) 1559 0 R (HD.1203) 1560 0 R (HD.1204) 1561 0 R (HD.1205) 1562 0 R (HD.1206) 1563 0 R (HD.1207) 1564 0 R (HD.1208) 1565 0 R ] /Limits [ (HD.1180) (HD.1208) ] >>
-endobj
-11723 0 obj
-<< /Names [ (HD.1209) 1566 0 R (HD.121) 327 0 R (HD.1210) 1567 0 R (HD.1211) 1572 0 R (HD.1212) 1573 0 R (HD.1213) 1574 0 R (HD.1214) 1575 0 R (HD.1215) 1576 0 R (HD.1216) 1577 0 R (HD.1217) 1578 0 R (HD.1218) 1579 0 R (HD.1219) 1580 0 R (HD.122) 328 0 R (HD.1220) 1581 0 R (HD.1221) 1582 0 R (HD.1222) 1583 0 R (HD.1223) 1584 0 R (HD.1224) 1585 0 R (HD.1225) 1586 0 R (HD.1226) 1587 0 R (HD.1227) 1588 0 R (HD.1228) 1589 0 R (HD.1229) 1590 0 R (HD.123) 329 0 R (HD.1230) 1591 0 R (HD.1231) 1592 0 R (HD.1232) 1593 0 R (HD.1233) 1594 0 R (HD.1234) 1595 0 R (HD.1235) 1596 0 R (HD.1236) 1597 0 R (HD.1237) 1598 0 R ] /Limits [ (HD.1209) (HD.1237) ] >>
-endobj
-11724 0 obj
-<< /Names [ (HD.1238) 1599 0 R (HD.1239) 1600 0 R (HD.124) 330 0 R (HD.1240) 1601 0 R (HD.1241) 1602 0 R (HD.1242) 1603 0 R (HD.1243) 1604 0 R (HD.1244) 1605 0 R (HD.1245) 1606 0 R (HD.1246) 1607 0 R (HD.1247) 1608 0 R (HD.1248) 1609 0 R (HD.1249) 1610 0 R (HD.125) 331 0 R (HD.1250) 1611 0 R (HD.1251) 1612 0 R (HD.1252) 1613 0 R (HD.1253) 1614 0 R (HD.1254) 1615 0 R (HD.1255) 1616 0 R (HD.1256) 1621 0 R (HD.1257) 1622 0 R (HD.1258) 1623 0 R (HD.1259) 1624 0 R (HD.126) 332 0 R (HD.1260) 1625 0 R (HD.1261) 1626 0 R (HD.1262) 1627 0 R (HD.1263) 1628 0 R (HD.1264) 1629 0 R (HD.1265) 1630 0 R (HD.1266) 1631 0 R ] /Limits [ (HD.1238) (HD.1266) ] >>
-endobj
-11725 0 obj
-<< /Names [ (HD.1267) 1632 0 R (HD.1268) 1633 0 R (HD.1269) 1634 0 R (HD.127) 333 0 R (HD.1270) 1635 0 R (HD.1271) 1636 0 R (HD.1272) 1637 0 R (HD.1273) 1638 0 R (HD.1274) 1639 0 R (HD.1275) 1640 0 R (HD.1276) 1641 0 R (HD.1277) 1642 0 R (HD.1278) 1643 0 R (HD.1279) 1644 0 R (HD.128) 334 0 R (HD.1280) 1645 0 R (HD.1281) 1646 0 R (HD.1282) 1647 0 R (HD.1283) 1648 0 R (HD.1284) 1649 0 R (HD.1285) 1650 0 R (HD.1286) 1651 0 R (HD.1287) 1652 0 R (HD.1288) 1653 0 R (HD.1289) 1654 0 R (HD.129) 335 0 R (HD.1290) 1655 0 R (HD.1291) 1656 0 R (HD.1292) 1657 0 R (HD.1293) 1658 0 R (HD.1294) 1659 0 R (HD.1295) 1660 0 R ] /Limits [ (HD.1267) (HD.1295) ] >>
-endobj
-11726 0 obj
-<< /Names [ (HD.1296) 1661 0 R (HD.1297) 1662 0 R (HD.1298) 1663 0 R (HD.1299) 1664 0 R (HD.13) 201 0 R (HD.130) 336 0 R (HD.1300) 1665 0 R (HD.1301) 1666 0 R (HD.1302) 1667 0 R (HD.1303) 1668 0 R (HD.1304) 1669 0 R (HD.1305) 1670 0 R (HD.1306) 1671 0 R (HD.1307) 1672 0 R (HD.1308) 1673 0 R (HD.1309) 1674 0 R (HD.131) 337 0 R (HD.1310) 1675 0 R (HD.1311) 1676 0 R (HD.1312) 1677 0 R (HD.1313) 1678 0 R (HD.1314) 1679 0 R (HD.1315) 1684 0 R (HD.1316) 1685 0 R (HD.1317) 1686 0 R (HD.1318) 1687 0 R (HD.1319) 1688 0 R (HD.132) 338 0 R (HD.1320) 1689 0 R (HD.1321) 1690 0 R (HD.1322) 1691 0 R (HD.1323) 1692 0 R ] /Limits [ (HD.1296) (HD.1323) ] >>
-endobj
-11727 0 obj
-<< /Names [ (HD.1324) 1693 0 R (HD.1325) 1694 0 R (HD.1326) 1695 0 R (HD.1327) 1696 0 R (HD.1328) 1697 0 R (HD.1329) 1698 0 R (HD.133) 339 0 R (HD.1330) 1699 0 R (HD.1331) 1700 0 R (HD.1332) 1701 0 R (HD.1333) 1702 0 R (HD.1334) 1703 0 R (HD.1335) 1704 0 R (HD.1336) 1705 0 R (HD.1337) 1706 0 R (HD.1338) 1707 0 R (HD.1339) 1708 0 R (HD.134) 344 0 R (HD.1340) 1709 0 R (HD.1341) 1710 0 R (HD.1342) 1711 0 R (HD.1343) 1712 0 R (HD.1344) 1713 0 R (HD.1345) 1718 0 R (HD.1346) 1719 0 R (HD.1347) 1720 0 R (HD.1348) 1721 0 R (HD.1349) 1722 0 R (HD.135) 345 0 R (HD.1350) 1723 0 R (HD.1351) 1724 0 R (HD.1352) 1725 0 R ] /Limits [ (HD.1324) (HD.1352) ] >>
-endobj
-11728 0 obj
-<< /Names [ (HD.1353) 1726 0 R (HD.1354) 1727 0 R (HD.1355) 1728 0 R (HD.1356) 1729 0 R (HD.1357) 1730 0 R (HD.1358) 1731 0 R (HD.1359) 1732 0 R (HD.136) 346 0 R (HD.1360) 1733 0 R (HD.1361) 1734 0 R (HD.1362) 1735 0 R (HD.1363) 1736 0 R (HD.1364) 1737 0 R (HD.1365) 1738 0 R (HD.1366) 1739 0 R (HD.1367) 1740 0 R (HD.1368) 1741 0 R (HD.1369) 1742 0 R (HD.137) 347 0 R (HD.1370) 1743 0 R (HD.1371) 1744 0 R (HD.1372) 1745 0 R (HD.1373) 1746 0 R (HD.1374) 1747 0 R (HD.1375) 1748 0 R (HD.1376) 1749 0 R (HD.1377) 1750 0 R (HD.1378) 1751 0 R (HD.1379) 1752 0 R (HD.138) 348 0 R (HD.1380) 1753 0 R (HD.1381) 1754 0 R ] /Limits [ (HD.1353) (HD.1381) ] >>
-endobj
-11729 0 obj
-<< /Names [ (HD.1382) 1755 0 R (HD.1383) 1756 0 R (HD.1384) 1757 0 R (HD.1385) 1758 0 R (HD.1386) 1759 0 R (HD.1387) 1760 0 R (HD.1388) 1761 0 R (HD.1389) 1762 0 R (HD.139) 349 0 R (HD.1390) 1763 0 R (HD.1391) 1764 0 R (HD.1392) 1765 0 R (HD.1393) 1766 0 R (HD.1394) 1771 0 R (HD.1395) 1772 0 R (HD.1396) 1773 0 R (HD.1397) 1774 0 R (HD.1398) 1775 0 R (HD.1399) 1776 0 R (HD.14) 202 0 R (HD.140) 350 0 R (HD.1400) 1777 0 R (HD.1401) 1778 0 R (HD.1402) 1779 0 R (HD.1403) 1780 0 R (HD.1404) 1781 0 R (HD.1405) 1782 0 R (HD.1406) 1783 0 R (HD.1407) 1784 0 R (HD.1408) 1785 0 R (HD.1409) 1786 0 R (HD.141) 351 0 R ] /Limits [ (HD.1382) (HD.141) ] >>
-endobj
-11730 0 obj
-<< /Names [ (HD.1410) 1787 0 R (HD.1411) 1788 0 R (HD.1412) 1789 0 R (HD.1413) 1790 0 R (HD.1414) 1791 0 R (HD.1415) 1792 0 R (HD.1416) 1793 0 R (HD.1417) 1794 0 R (HD.1418) 1795 0 R (HD.1419) 1796 0 R (HD.142) 352 0 R (HD.1420) 1797 0 R (HD.1421) 1798 0 R (HD.1422) 1799 0 R (HD.1423) 1800 0 R (HD.1424) 1801 0 R (HD.1425) 1802 0 R (HD.1426) 1803 0 R (HD.1427) 1804 0 R (HD.1428) 1805 0 R (HD.1429) 1806 0 R (HD.143) 353 0 R (HD.1430) 1807 0 R (HD.1431) 1808 0 R (HD.1432) 1815 0 R (HD.1433) 1816 0 R (HD.1434) 1817 0 R (HD.1435) 1818 0 R (HD.1436) 1819 0 R (HD.1437) 1820 0 R (HD.1438) 1821 0 R (HD.1439) 1822 0 R ] /Limits [ (HD.1410) (HD.1439) ] >>
-endobj
-11731 0 obj
-<< /Names [ (HD.144) 354 0 R (HD.1440) 1823 0 R (HD.1441) 1824 0 R (HD.1442) 1825 0 R (HD.1443) 1826 0 R (HD.1444) 1827 0 R (HD.1445) 1828 0 R (HD.1446) 1829 0 R (HD.1447) 1830 0 R (HD.1448) 1831 0 R (HD.1449) 1832 0 R (HD.145) 355 0 R (HD.1450) 1833 0 R (HD.1451) 1834 0 R (HD.1452) 1835 0 R (HD.1453) 1836 0 R (HD.1454) 1837 0 R (HD.1455) 1838 0 R (HD.1456) 1839 0 R (HD.1457) 1840 0 R (HD.1458) 1841 0 R (HD.1459) 1842 0 R (HD.146) 356 0 R (HD.1460) 1843 0 R (HD.1461) 1844 0 R (HD.1462) 1845 0 R (HD.1463) 1846 0 R (HD.1464) 1847 0 R (HD.1465) 1848 0 R (HD.1466) 1849 0 R (HD.1467) 1850 0 R (HD.1468) 1851 0 R ] /Limits [ (HD.144) (HD.1468) ] >>
-endobj
-11732 0 obj
-<< /Names [ (HD.1469) 1852 0 R (HD.147) 357 0 R (HD.1470) 1853 0 R (HD.1471) 1854 0 R (HD.1472) 1855 0 R (HD.1473) 1860 0 R (HD.1474) 1861 0 R (HD.1475) 1862 0 R (HD.1476) 1863 0 R (HD.1477) 1864 0 R (HD.1478) 1865 0 R (HD.1479) 1866 0 R (HD.148) 358 0 R (HD.1480) 1867 0 R (HD.1481) 1868 0 R (HD.1482) 1869 0 R (HD.1483) 1870 0 R (HD.1484) 1871 0 R (HD.1485) 1872 0 R (HD.1486) 1873 0 R (HD.1487) 1874 0 R (HD.1488) 1875 0 R (HD.1489) 1876 0 R (HD.149) 359 0 R (HD.1490) 1877 0 R (HD.1491) 1878 0 R (HD.1492) 1879 0 R (HD.1493) 1880 0 R (HD.1494) 1881 0 R (HD.1495) 1882 0 R (HD.1496) 1883 0 R (HD.1497) 1884 0 R ] /Limits [ (HD.1469) (HD.1497) ] >>
-endobj
-11733 0 obj
-<< /Names [ (HD.1498) 1885 0 R (HD.1499) 1886 0 R (HD.15) 203 0 R (HD.150) 360 0 R (HD.1500) 1887 0 R (HD.1501) 1888 0 R (HD.1502) 1889 0 R (HD.1503) 1890 0 R (HD.1504) 1891 0 R (HD.1505) 1892 0 R (HD.1506) 1893 0 R (HD.1507) 1894 0 R (HD.1508) 1895 0 R (HD.1509) 1896 0 R (HD.151) 361 0 R (HD.1510) 1897 0 R (HD.1511) 1898 0 R (HD.1512) 1899 0 R (HD.1513) 1900 0 R (HD.1514) 1901 0 R (HD.1515) 1902 0 R (HD.1516) 1903 0 R (HD.1517) 1904 0 R (HD.1518) 1905 0 R (HD.1519) 1906 0 R (HD.152) 362 0 R (HD.1520) 1907 0 R (HD.1521) 1908 0 R (HD.1522) 1909 0 R (HD.1523) 1910 0 R (HD.1524) 1917 0 R (HD.1525) 1918 0 R ] /Limits [ (HD.1498) (HD.1525) ] >>
-endobj
-11734 0 obj
-<< /Names [ (HD.1526) 1919 0 R (HD.1527) 1920 0 R (HD.1528) 1921 0 R (HD.1529) 1922 0 R (HD.153) 363 0 R (HD.1530) 1923 0 R (HD.1531) 1924 0 R (HD.1532) 1925 0 R (HD.1533) 1926 0 R (HD.1534) 1927 0 R (HD.1535) 1928 0 R (HD.1536) 1929 0 R (HD.1537) 1930 0 R (HD.1538) 1931 0 R (HD.1539) 1932 0 R (HD.154) 364 0 R (HD.1540) 1933 0 R (HD.1541) 1934 0 R (HD.1542) 1935 0 R (HD.1543) 1936 0 R (HD.1544) 1937 0 R (HD.1545) 1938 0 R (HD.1546) 1939 0 R (HD.1547) 1940 0 R (HD.1548) 1941 0 R (HD.1549) 1942 0 R (HD.155) 365 0 R (HD.1550) 1943 0 R (HD.1551) 1944 0 R (HD.1552) 1945 0 R (HD.1553) 1946 0 R (HD.1554) 1947 0 R ] /Limits [ (HD.1526) (HD.1554) ] >>
-endobj
-11735 0 obj
-<< /Names [ (HD.1555) 1948 0 R (HD.1556) 1949 0 R (HD.1557) 1950 0 R (HD.1558) 1951 0 R (HD.1559) 1952 0 R (HD.156) 366 0 R (HD.1560) 1953 0 R (HD.1561) 1954 0 R (HD.1562) 1955 0 R (HD.1563) 1956 0 R (HD.1564) 1957 0 R (HD.1565) 1958 0 R (HD.1566) 1959 0 R (HD.1567) 1967 0 R (HD.1568) 1968 0 R (HD.1569) 1969 0 R (HD.157) 367 0 R (HD.1570) 1970 0 R (HD.1571) 1971 0 R (HD.1572) 1972 0 R (HD.1573) 1973 0 R (HD.1574) 1974 0 R (HD.1575) 1975 0 R (HD.1576) 1976 0 R (HD.1577) 1977 0 R (HD.1578) 1978 0 R (HD.1579) 1979 0 R (HD.158) 368 0 R (HD.1580) 1980 0 R (HD.1581) 1981 0 R (HD.1582) 1982 0 R (HD.1583) 1983 0 R ] /Limits [ (HD.1555) (HD.1583) ] >>
+<< /Title 7 0 R /A 4 0 R /Parent 11735 0 R /Next 10 0 R >>
endobj
11736 0 obj
-<< /Names [ (HD.1584) 1984 0 R (HD.1585) 1985 0 R (HD.1586) 1986 0 R (HD.1587) 1987 0 R (HD.1588) 1988 0 R (HD.1589) 1989 0 R (HD.159) 369 0 R (HD.1590) 1990 0 R (HD.1591) 1991 0 R (HD.1592) 1992 0 R (HD.1593) 1993 0 R (HD.1594) 1994 0 R (HD.1595) 1995 0 R (HD.1596) 1996 0 R (HD.1597) 1997 0 R (HD.1598) 1998 0 R (HD.1599) 1999 0 R (HD.16) 211 0 R (HD.160) 370 0 R (HD.1600) 2000 0 R (HD.1601) 2001 0 R (HD.1602) 2002 0 R (HD.1603) 2003 0 R (HD.1604) 2004 0 R (HD.1605) 2005 0 R (HD.1606) 2010 0 R (HD.1607) 2011 0 R (HD.1608) 2012 0 R (HD.1609) 2013 0 R (HD.161) 371 0 R (HD.1610) 2014 0 R (HD.1611) 2015 0 R ] /Limits [ (HD.1584) (HD.1611) ] >>
+<< /Names [ (Doc-Start) 173 0 R (HD.1) 188 0 R (HD.10) 198 0 R (HD.100) 300 0 R (HD.1000) 1341 0 R (HD.10000) 11154 0 R (HD.10001) 11160 0 R (HD.10002) 11161 0 R (HD.10003) 11162 0 R (HD.10004) 11163 0 R (HD.10005) 11164 0 R (HD.10006) 11165 0 R (HD.10007) 11166 0 R (HD.10008) 11167 0 R (HD.10009) 11168 0 R (HD.1001) 1342 0 R (HD.10010) 11169 0 R (HD.10011) 11170 0 R (HD.10012) 11171 0 R (HD.10013) 11172 0 R (HD.10014) 11173 0 R (HD.10015) 11174 0 R (HD.10016) 11175 0 R (HD.10017) 11176 0 R (HD.10018) 11177 0 R (HD.10019) 11178 0 R (HD.1002) 1343 0 R (HD.10020) 11179 0 R (HD.10021) 11180 0 R (HD.10022) 11181 0 R (HD.10023) 11182 0 R (HD.10024) 11183 0 R ] /Limits [ (Doc-Start) (HD.10024) ] >>
endobj
11737 0 obj
-<< /Names [ (HD.1612) 2016 0 R (HD.1613) 2017 0 R (HD.1614) 2018 0 R (HD.1615) 2019 0 R (HD.1616) 2020 0 R (HD.1617) 2021 0 R (HD.1618) 2022 0 R (HD.1619) 2023 0 R (HD.162) 372 0 R (HD.1620) 2024 0 R (HD.1621) 2025 0 R (HD.1622) 2026 0 R (HD.1623) 2027 0 R (HD.1624) 2028 0 R (HD.1625) 2029 0 R (HD.1626) 2030 0 R (HD.1627) 2031 0 R (HD.1628) 2032 0 R (HD.1629) 2033 0 R (HD.163) 373 0 R (HD.1630) 2034 0 R (HD.1631) 2035 0 R (HD.1632) 2036 0 R (HD.1633) 2037 0 R (HD.1634) 2038 0 R (HD.1635) 2039 0 R (HD.1636) 2040 0 R (HD.1637) 2041 0 R (HD.1638) 2042 0 R (HD.1639) 2043 0 R (HD.164) 374 0 R (HD.1640) 2044 0 R ] /Limits [ (HD.1612) (HD.1640) ] >>
+<< /Names [ (HD.10025) 11184 0 R (HD.10026) 11185 0 R (HD.10027) 11186 0 R (HD.10028) 11187 0 R (HD.10029) 11188 0 R (HD.1003) 1344 0 R (HD.10030) 11189 0 R (HD.10031) 11190 0 R (HD.10032) 11191 0 R (HD.10033) 11192 0 R (HD.10034) 11193 0 R (HD.10035) 11194 0 R (HD.10036) 11195 0 R (HD.10037) 11196 0 R (HD.10038) 11197 0 R (HD.10039) 11198 0 R (HD.1004) 1345 0 R (HD.10040) 11199 0 R (HD.10041) 11200 0 R (HD.10042) 11201 0 R (HD.10043) 11202 0 R (HD.10044) 11203 0 R (HD.10045) 11204 0 R (HD.10046) 11205 0 R (HD.10047) 11206 0 R (HD.10048) 11207 0 R (HD.10049) 11208 0 R (HD.1005) 1346 0 R (HD.10050) 11209 0 R (HD.10051) 11210 0 R (HD.10052) 11211 0 R (HD.10053) 11212 0 R ] /Limits [ (HD.10025) (HD.10053) ] >>
endobj
11738 0 obj
-<< /Names [ (HD.1641) 2045 0 R (HD.1642) 2046 0 R (HD.1643) 2047 0 R (HD.1644) 2048 0 R (HD.1645) 2049 0 R (HD.1646) 2050 0 R (HD.1647) 2051 0 R (HD.1648) 2052 0 R (HD.1649) 2053 0 R (HD.165) 375 0 R (HD.1650) 2054 0 R (HD.1651) 2055 0 R (HD.1652) 2056 0 R (HD.1653) 2057 0 R (HD.1654) 2058 0 R (HD.1655) 2059 0 R (HD.1656) 2060 0 R (HD.1657) 2065 0 R (HD.1658) 2066 0 R (HD.1659) 2067 0 R (HD.166) 376 0 R (HD.1660) 2068 0 R (HD.1661) 2069 0 R (HD.1662) 2070 0 R (HD.1663) 2071 0 R (HD.1664) 2072 0 R (HD.1665) 2073 0 R (HD.1666) 2074 0 R (HD.1667) 2075 0 R (HD.1668) 2076 0 R (HD.1669) 2077 0 R (HD.167) 377 0 R ] /Limits [ (HD.1641) (HD.167) ] >>
+<< /Names [ (HD.10054) 11213 0 R (HD.10055) 11214 0 R (HD.10056) 11215 0 R (HD.10057) 11216 0 R (HD.10058) 11217 0 R (HD.10059) 11218 0 R (HD.1006) 1347 0 R (HD.10060) 11219 0 R (HD.10061) 11220 0 R (HD.10062) 11221 0 R (HD.10063) 11226 0 R (HD.10064) 11227 0 R (HD.10065) 11228 0 R (HD.10066) 11229 0 R (HD.10067) 11230 0 R (HD.10068) 11231 0 R (HD.10069) 11232 0 R (HD.1007) 1348 0 R (HD.10070) 11233 0 R (HD.10071) 11234 0 R (HD.10072) 11235 0 R (HD.10073) 11236 0 R (HD.10074) 11237 0 R (HD.10075) 11238 0 R (HD.10076) 11239 0 R (HD.10077) 11240 0 R (HD.10078) 11241 0 R (HD.10079) 11242 0 R (HD.1008) 1349 0 R (HD.10080) 11243 0 R (HD.10081) 11244 0 R (HD.10082) 11245 0 R ] /Limits [ (HD.10054) (HD.10082) ] >>
endobj
11739 0 obj
-<< /Names [ (HD.1670) 2078 0 R (HD.1671) 2079 0 R (HD.1672) 2080 0 R (HD.1673) 2081 0 R (HD.1674) 2082 0 R (HD.1675) 2083 0 R (HD.1676) 2084 0 R (HD.1677) 2085 0 R (HD.1678) 2086 0 R (HD.1679) 2087 0 R (HD.168) 378 0 R (HD.1680) 2088 0 R (HD.1681) 2089 0 R (HD.1682) 2090 0 R (HD.1683) 2091 0 R (HD.1684) 2092 0 R (HD.1685) 2093 0 R (HD.1686) 2094 0 R (HD.1687) 2095 0 R (HD.1688) 2096 0 R (HD.1689) 2097 0 R (HD.169) 379 0 R (HD.1690) 2102 0 R (HD.1691) 2103 0 R (HD.1692) 2104 0 R (HD.1693) 2105 0 R (HD.1694) 2106 0 R (HD.1695) 2107 0 R (HD.1696) 2108 0 R (HD.1697) 2109 0 R (HD.1698) 2110 0 R (HD.1699) 2111 0 R ] /Limits [ (HD.1670) (HD.1699) ] >>
+<< /Names [ (HD.10083) 11246 0 R (HD.10084) 11247 0 R (HD.10085) 11248 0 R (HD.10086) 11249 0 R (HD.10087) 11250 0 R (HD.10088) 11251 0 R (HD.10089) 11252 0 R (HD.1009) 1350 0 R (HD.10090) 11253 0 R (HD.10091) 11254 0 R (HD.10092) 11255 0 R (HD.10093) 11256 0 R (HD.10094) 11257 0 R (HD.10095) 11258 0 R (HD.10096) 11259 0 R (HD.10097) 11260 0 R (HD.10098) 11261 0 R (HD.10099) 11262 0 R (HD.101) 305 0 R (HD.1010) 1351 0 R (HD.10100) 11263 0 R (HD.10101) 11264 0 R (HD.10102) 11265 0 R (HD.10103) 11266 0 R (HD.10104) 11267 0 R (HD.10105) 11268 0 R (HD.10106) 11269 0 R (HD.10107) 11270 0 R (HD.10108) 11271 0 R (HD.10109) 11272 0 R (HD.1011) 1352 0 R (HD.10110) 11273 0 R ] /Limits [ (HD.10083) (HD.10110) ] >>
endobj
11740 0 obj
-<< /Names [ (HD.17) 212 0 R (HD.170) 380 0 R (HD.1700) 2112 0 R (HD.1701) 2113 0 R (HD.1702) 2114 0 R (HD.1703) 2115 0 R (HD.1704) 2116 0 R (HD.1705) 2117 0 R (HD.1706) 2118 0 R (HD.1707) 2119 0 R (HD.1708) 2120 0 R (HD.1709) 2121 0 R (HD.171) 381 0 R (HD.1710) 2122 0 R (HD.1711) 2123 0 R (HD.1712) 2124 0 R (HD.1713) 2125 0 R (HD.1714) 2126 0 R (HD.1715) 2127 0 R (HD.1716) 2128 0 R (HD.1717) 2129 0 R (HD.1718) 2130 0 R (HD.1719) 2135 0 R (HD.172) 382 0 R (HD.1720) 2136 0 R (HD.1721) 2137 0 R (HD.1722) 2138 0 R (HD.1723) 2139 0 R (HD.1724) 2140 0 R (HD.1725) 2141 0 R (HD.1726) 2142 0 R (HD.1727) 2143 0 R ] /Limits [ (HD.17) (HD.1727) ] >>
+<< /Names [ (HD.10111) 11274 0 R (HD.10112) 11275 0 R (HD.10113) 11276 0 R (HD.10114) 11277 0 R (HD.10115) 11278 0 R (HD.10116) 11279 0 R (HD.10117) 11280 0 R (HD.10118) 11281 0 R (HD.10119) 11282 0 R (HD.1012) 1353 0 R (HD.10120) 11283 0 R (HD.10121) 11284 0 R (HD.10122) 11285 0 R (HD.10123) 11286 0 R (HD.10124) 11287 0 R (HD.10125) 11288 0 R (HD.10126) 11293 0 R (HD.10127) 11294 0 R (HD.10128) 11295 0 R (HD.10129) 11296 0 R (HD.1013) 1354 0 R (HD.10130) 11297 0 R (HD.10131) 11298 0 R (HD.10132) 11299 0 R (HD.10133) 11300 0 R (HD.10134) 11301 0 R (HD.10135) 11302 0 R (HD.10136) 11303 0 R (HD.10137) 11304 0 R (HD.10138) 11305 0 R (HD.10139) 11306 0 R (HD.1014) 1355 0 R ] /Limits [ (HD.10111) (HD.1014) ] >>
endobj
11741 0 obj
-<< /Names [ (HD.1728) 2144 0 R (HD.1729) 2145 0 R (HD.173) 383 0 R (HD.1730) 2146 0 R (HD.1731) 2147 0 R (HD.1732) 2148 0 R (HD.1733) 2149 0 R (HD.1734) 2150 0 R (HD.1735) 2151 0 R (HD.1736) 2152 0 R (HD.1737) 2153 0 R (HD.1738) 2154 0 R (HD.1739) 2155 0 R (HD.174) 388 0 R (HD.1740) 2156 0 R (HD.1741) 2157 0 R (HD.1742) 2158 0 R (HD.1743) 2159 0 R (HD.1744) 2160 0 R (HD.1745) 2161 0 R (HD.1746) 2162 0 R (HD.1747) 2163 0 R (HD.1748) 2164 0 R (HD.1749) 2165 0 R (HD.175) 389 0 R (HD.1750) 2166 0 R (HD.1751) 2167 0 R (HD.1752) 2168 0 R (HD.1753) 2173 0 R (HD.1754) 2174 0 R (HD.1755) 2175 0 R (HD.1756) 2176 0 R ] /Limits [ (HD.1728) (HD.1756) ] >>
+<< /Names [ (HD.10140) 11307 0 R (HD.10141) 11308 0 R (HD.10142) 11309 0 R (HD.10143) 11310 0 R (HD.10144) 11311 0 R (HD.10145) 11312 0 R (HD.10146) 11313 0 R (HD.10147) 11314 0 R (HD.10148) 11315 0 R (HD.10149) 11316 0 R (HD.1015) 1356 0 R (HD.10150) 11317 0 R (HD.10151) 11318 0 R (HD.10152) 11319 0 R (HD.10153) 11320 0 R (HD.10154) 11321 0 R (HD.10155) 11322 0 R (HD.10156) 11323 0 R (HD.10157) 11324 0 R (HD.10158) 11325 0 R (HD.10159) 11326 0 R (HD.1016) 1357 0 R (HD.10160) 11327 0 R (HD.10161) 11328 0 R (HD.10162) 11329 0 R (HD.10163) 11330 0 R (HD.10164) 11331 0 R (HD.10165) 11332 0 R (HD.10166) 11333 0 R (HD.10167) 11334 0 R (HD.10168) 11335 0 R (HD.10169) 11336 0 R ] /Limits [ (HD.10140) (HD.10169) ] >>
endobj
11742 0 obj
-<< /Names [ (HD.1757) 2177 0 R (HD.1758) 2178 0 R (HD.1759) 2179 0 R (HD.176) 390 0 R (HD.1760) 2180 0 R (HD.1761) 2181 0 R (HD.1762) 2182 0 R (HD.1763) 2183 0 R (HD.1764) 2184 0 R (HD.1765) 2185 0 R (HD.1766) 2186 0 R (HD.1767) 2187 0 R (HD.1768) 2188 0 R (HD.1769) 2189 0 R (HD.177) 391 0 R (HD.1770) 2190 0 R (HD.1771) 2191 0 R (HD.1772) 2192 0 R (HD.1773) 2193 0 R (HD.1774) 2194 0 R (HD.1775) 2195 0 R (HD.1776) 2196 0 R (HD.1777) 2197 0 R (HD.1778) 2198 0 R (HD.1779) 2199 0 R (HD.178) 392 0 R (HD.1780) 2200 0 R (HD.1781) 2201 0 R (HD.1782) 2202 0 R (HD.1783) 2203 0 R (HD.1784) 2204 0 R (HD.1785) 2205 0 R ] /Limits [ (HD.1757) (HD.1785) ] >>
+<< /Names [ (HD.1017) 1358 0 R (HD.10170) 11337 0 R (HD.10171) 11338 0 R (HD.10172) 11339 0 R (HD.10173) 11340 0 R (HD.10174) 11341 0 R (HD.10175) 11342 0 R (HD.10176) 11343 0 R (HD.10177) 11344 0 R (HD.10178) 11345 0 R (HD.10179) 11346 0 R (HD.1018) 1359 0 R (HD.10180) 11347 0 R (HD.10181) 11348 0 R (HD.10182) 11349 0 R (HD.10183) 11350 0 R (HD.10184) 11351 0 R (HD.10185) 11352 0 R (HD.10186) 11353 0 R (HD.10187) 11358 0 R (HD.10188) 11359 0 R (HD.10189) 11360 0 R (HD.1019) 1360 0 R (HD.10190) 11361 0 R (HD.10191) 11362 0 R (HD.10192) 11363 0 R (HD.10193) 11364 0 R (HD.10194) 11365 0 R (HD.10195) 11366 0 R (HD.10196) 11367 0 R (HD.10197) 11368 0 R (HD.10198) 11369 0 R ] /Limits [ (HD.1017) (HD.10198) ] >>
endobj
11743 0 obj
-<< /Names [ (HD.1786) 2206 0 R (HD.1787) 2207 0 R (HD.1788) 2208 0 R (HD.1789) 2209 0 R (HD.179) 393 0 R (HD.1790) 2210 0 R (HD.1791) 2211 0 R (HD.1792) 2216 0 R (HD.1793) 2217 0 R (HD.1794) 2218 0 R (HD.1795) 2219 0 R (HD.1796) 2220 0 R (HD.1797) 2221 0 R (HD.1798) 2222 0 R (HD.1799) 2223 0 R (HD.18) 213 0 R (HD.180) 394 0 R (HD.1800) 2224 0 R (HD.1801) 2225 0 R (HD.1802) 2226 0 R (HD.1803) 2227 0 R (HD.1804) 2228 0 R (HD.1805) 2229 0 R (HD.1806) 2230 0 R (HD.1807) 2231 0 R (HD.1808) 2232 0 R (HD.1809) 2233 0 R (HD.181) 395 0 R (HD.1810) 2234 0 R (HD.1811) 2235 0 R (HD.1812) 2236 0 R (HD.1813) 2237 0 R ] /Limits [ (HD.1786) (HD.1813) ] >>
+<< /Names [ (HD.10199) 11370 0 R (HD.102) 306 0 R (HD.1020) 1361 0 R (HD.10200) 11371 0 R (HD.10201) 11372 0 R (HD.10202) 11373 0 R (HD.10203) 11374 0 R (HD.10204) 11375 0 R (HD.10205) 11376 0 R (HD.10206) 11377 0 R (HD.10207) 11378 0 R (HD.10208) 11379 0 R (HD.10209) 11380 0 R (HD.1021) 1362 0 R (HD.10210) 11381 0 R (HD.10211) 11382 0 R (HD.10212) 11383 0 R (HD.10213) 11384 0 R (HD.10214) 11385 0 R (HD.10215) 11386 0 R (HD.10216) 11387 0 R (HD.10217) 11388 0 R (HD.10218) 11389 0 R (HD.10219) 11390 0 R (HD.1022) 1363 0 R (HD.10220) 11391 0 R (HD.10221) 11392 0 R (HD.10222) 11393 0 R (HD.10223) 11394 0 R (HD.10224) 11395 0 R (HD.10225) 11396 0 R (HD.10226) 11397 0 R ] /Limits [ (HD.10199) (HD.10226) ] >>
endobj
11744 0 obj
-<< /Names [ (HD.1814) 2238 0 R (HD.1815) 2239 0 R (HD.1816) 2240 0 R (HD.1817) 2241 0 R (HD.1818) 2242 0 R (HD.1819) 2243 0 R (HD.182) 396 0 R (HD.1820) 2244 0 R (HD.1821) 2245 0 R (HD.1822) 2246 0 R (HD.1823) 2247 0 R (HD.1824) 2248 0 R (HD.1825) 2249 0 R (HD.1826) 2250 0 R (HD.1827) 2251 0 R (HD.1828) 2252 0 R (HD.1829) 2253 0 R (HD.183) 397 0 R (HD.1830) 2259 0 R (HD.1831) 2260 0 R (HD.1832) 2261 0 R (HD.1833) 2262 0 R (HD.1834) 2263 0 R (HD.1835) 2264 0 R (HD.1836) 2265 0 R (HD.1837) 2266 0 R (HD.1838) 2267 0 R (HD.1839) 2268 0 R (HD.184) 398 0 R (HD.1840) 2269 0 R (HD.1841) 2270 0 R (HD.1842) 2271 0 R ] /Limits [ (HD.1814) (HD.1842) ] >>
+<< /Names [ (HD.10227) 11398 0 R (HD.10228) 11399 0 R (HD.10229) 11400 0 R (HD.1023) 1364 0 R (HD.10230) 11401 0 R (HD.10231) 11402 0 R (HD.10232) 11403 0 R (HD.10233) 11404 0 R (HD.10234) 11405 0 R (HD.10235) 11406 0 R (HD.10236) 11407 0 R (HD.10237) 11408 0 R (HD.10238) 11409 0 R (HD.10239) 11410 0 R (HD.1024) 1365 0 R (HD.10240) 11411 0 R (HD.10241) 11412 0 R (HD.10242) 11413 0 R (HD.10243) 11414 0 R (HD.10244) 11415 0 R (HD.10245) 11416 0 R (HD.10246) 11417 0 R (HD.10247) 11418 0 R (HD.10248) 11423 0 R (HD.10249) 11424 0 R (HD.1025) 1366 0 R (HD.10250) 11425 0 R (HD.10251) 11426 0 R (HD.10252) 11427 0 R (HD.10253) 11428 0 R (HD.10254) 11429 0 R (HD.10255) 11430 0 R ] /Limits [ (HD.10227) (HD.10255) ] >>
endobj
11745 0 obj
-<< /Names [ (HD.1843) 2272 0 R (HD.1844) 2273 0 R (HD.1845) 2274 0 R (HD.1846) 2275 0 R (HD.1847) 2276 0 R (HD.1848) 2277 0 R (HD.1849) 2278 0 R (HD.185) 399 0 R (HD.1850) 2279 0 R (HD.1851) 2280 0 R (HD.1852) 2281 0 R (HD.1853) 2282 0 R (HD.1854) 2283 0 R (HD.1855) 2284 0 R (HD.1856) 2285 0 R (HD.1857) 2286 0 R (HD.1858) 2287 0 R (HD.1859) 2288 0 R (HD.186) 400 0 R (HD.1860) 2289 0 R (HD.1861) 2290 0 R (HD.1862) 2291 0 R (HD.1863) 2292 0 R (HD.1864) 2293 0 R (HD.1865) 2294 0 R (HD.1866) 2295 0 R (HD.1867) 2296 0 R (HD.1868) 2297 0 R (HD.1869) 2298 0 R (HD.187) 401 0 R (HD.1870) 2299 0 R (HD.1871) 2300 0 R ] /Limits [ (HD.1843) (HD.1871) ] >>
+<< /Names [ (HD.10256) 11431 0 R (HD.10257) 11432 0 R (HD.10258) 11433 0 R (HD.10259) 11434 0 R (HD.1026) 1367 0 R (HD.10260) 11435 0 R (HD.10261) 11436 0 R (HD.10262) 11437 0 R (HD.10263) 11438 0 R (HD.10264) 11439 0 R (HD.10265) 11440 0 R (HD.10266) 11441 0 R (HD.10267) 11442 0 R (HD.10268) 11443 0 R (HD.10269) 11444 0 R (HD.1027) 1368 0 R (HD.10270) 11445 0 R (HD.10271) 11446 0 R (HD.10272) 11447 0 R (HD.10273) 11448 0 R (HD.10274) 11449 0 R (HD.10275) 11450 0 R (HD.10276) 11451 0 R (HD.10277) 11452 0 R (HD.10278) 11453 0 R (HD.10279) 11454 0 R (HD.1028) 1369 0 R (HD.10280) 11455 0 R (HD.10281) 11456 0 R (HD.10282) 11457 0 R (HD.10283) 11458 0 R (HD.10284) 11459 0 R ] /Limits [ (HD.10256) (HD.10284) ] >>
endobj
11746 0 obj
-<< /Names [ (HD.1872) 2301 0 R (HD.1873) 2302 0 R (HD.1874) 2303 0 R (HD.1875) 2304 0 R (HD.1876) 2305 0 R (HD.1877) 2306 0 R (HD.1878) 2307 0 R (HD.1879) 2308 0 R (HD.188) 402 0 R (HD.1880) 2309 0 R (HD.1881) 2310 0 R (HD.1882) 2316 0 R (HD.1883) 2317 0 R (HD.1884) 2318 0 R (HD.1885) 2319 0 R (HD.1886) 2320 0 R (HD.1887) 2321 0 R (HD.1888) 2322 0 R (HD.1889) 2323 0 R (HD.189) 403 0 R (HD.1890) 2324 0 R (HD.1891) 2325 0 R (HD.1892) 2326 0 R (HD.1893) 2327 0 R (HD.1894) 2328 0 R (HD.1895) 2329 0 R (HD.1896) 2330 0 R (HD.1897) 2331 0 R (HD.1898) 2332 0 R (HD.1899) 2333 0 R (HD.19) 214 0 R (HD.190) 404 0 R ] /Limits [ (HD.1872) (HD.190) ] >>
+<< /Names [ (HD.10285) 11460 0 R (HD.10286) 11461 0 R (HD.10287) 11462 0 R (HD.10288) 11463 0 R (HD.10289) 11464 0 R (HD.1029) 1370 0 R (HD.10290) 11465 0 R (HD.10291) 11466 0 R (HD.10292) 11467 0 R (HD.10293) 11468 0 R (HD.10294) 11469 0 R (HD.10295) 11470 0 R (HD.10296) 11471 0 R (HD.10297) 11472 0 R (HD.10298) 11473 0 R (HD.10299) 11474 0 R (HD.103) 307 0 R (HD.1030) 1371 0 R (HD.10300) 11475 0 R (HD.10301) 11476 0 R (HD.10302) 11477 0 R (HD.10303) 11478 0 R (HD.10304) 11479 0 R (HD.10305) 11480 0 R (HD.10306) 11481 0 R (HD.10307) 11482 0 R (HD.10308) 11483 0 R (HD.10309) 11484 0 R (HD.1031) 1372 0 R (HD.10310) 11485 0 R (HD.10311) 11490 0 R (HD.10312) 11491 0 R ] /Limits [ (HD.10285) (HD.10312) ] >>
endobj
11747 0 obj
-<< /Names [ (HD.1900) 2334 0 R (HD.1901) 2335 0 R (HD.1902) 2336 0 R (HD.1903) 2337 0 R (HD.1904) 2338 0 R (HD.1905) 2339 0 R (HD.1906) 2340 0 R (HD.1907) 2341 0 R (HD.1908) 2342 0 R (HD.1909) 2343 0 R (HD.191) 405 0 R (HD.1910) 2344 0 R (HD.1911) 2345 0 R (HD.1912) 2346 0 R (HD.1913) 2347 0 R (HD.1914) 2348 0 R (HD.1915) 2349 0 R (HD.1916) 2350 0 R (HD.1917) 2351 0 R (HD.1918) 2352 0 R (HD.1919) 2353 0 R (HD.192) 406 0 R (HD.1920) 2354 0 R (HD.1921) 2355 0 R (HD.1922) 2356 0 R (HD.1923) 2357 0 R (HD.1924) 2358 0 R (HD.1925) 2359 0 R (HD.1926) 2360 0 R (HD.1927) 2361 0 R (HD.1928) 2362 0 R (HD.1929) 2363 0 R ] /Limits [ (HD.1900) (HD.1929) ] >>
+<< /Names [ (HD.10313) 11492 0 R (HD.10314) 11493 0 R (HD.10315) 11494 0 R (HD.10316) 11495 0 R (HD.10317) 11496 0 R (HD.10318) 11497 0 R (HD.10319) 11498 0 R (HD.1032) 1373 0 R (HD.10320) 11499 0 R (HD.10321) 11500 0 R (HD.10322) 11501 0 R (HD.10323) 11502 0 R (HD.10324) 11503 0 R (HD.10325) 11504 0 R (HD.10326) 11505 0 R (HD.10327) 11506 0 R (HD.10328) 11507 0 R (HD.10329) 11508 0 R (HD.1033) 1374 0 R (HD.10330) 11509 0 R (HD.10331) 11510 0 R (HD.10332) 11511 0 R (HD.10333) 11512 0 R (HD.10334) 11513 0 R (HD.10335) 11514 0 R (HD.10336) 11515 0 R (HD.10337) 11516 0 R (HD.10338) 11517 0 R (HD.10339) 11518 0 R (HD.1034) 1375 0 R (HD.10340) 11519 0 R (HD.10341) 11520 0 R ] /Limits [ (HD.10313) (HD.10341) ] >>
endobj
11748 0 obj
-<< /Names [ (HD.193) 407 0 R (HD.1930) 2371 0 R (HD.1931) 2372 0 R (HD.1932) 2373 0 R (HD.1933) 2374 0 R (HD.1934) 2375 0 R (HD.1935) 2376 0 R (HD.1936) 2377 0 R (HD.1937) 2378 0 R (HD.1938) 2379 0 R (HD.1939) 2380 0 R (HD.194) 408 0 R (HD.1940) 2381 0 R (HD.1941) 2382 0 R (HD.1942) 2383 0 R (HD.1943) 2384 0 R (HD.1944) 2385 0 R (HD.1945) 2386 0 R (HD.1946) 2387 0 R (HD.1947) 2388 0 R (HD.1948) 2389 0 R (HD.1949) 2390 0 R (HD.195) 409 0 R (HD.1950) 2391 0 R (HD.1951) 2392 0 R (HD.1952) 2393 0 R (HD.1953) 2394 0 R (HD.1954) 2395 0 R (HD.1955) 2396 0 R (HD.1956) 2397 0 R (HD.1957) 2398 0 R (HD.1958) 2399 0 R ] /Limits [ (HD.193) (HD.1958) ] >>
+<< /Names [ (HD.10342) 11521 0 R (HD.10343) 11522 0 R (HD.10344) 11523 0 R (HD.10345) 11524 0 R (HD.10346) 11525 0 R (HD.10347) 11526 0 R (HD.10348) 11527 0 R (HD.10349) 11528 0 R (HD.1035) 1376 0 R (HD.10350) 11529 0 R (HD.10351) 11530 0 R (HD.10352) 11531 0 R (HD.10353) 11532 0 R (HD.10354) 11533 0 R (HD.10355) 11534 0 R (HD.10356) 11535 0 R (HD.10357) 11536 0 R (HD.10358) 11537 0 R (HD.10359) 11538 0 R (HD.1036) 1377 0 R (HD.10360) 11539 0 R (HD.10361) 11540 0 R (HD.10362) 11541 0 R (HD.10363) 11542 0 R (HD.10364) 11543 0 R (HD.10365) 11544 0 R (HD.10366) 11545 0 R (HD.10367) 11546 0 R (HD.10368) 11547 0 R (HD.10369) 11548 0 R (HD.1037) 1378 0 R (HD.10370) 11549 0 R ] /Limits [ (HD.10342) (HD.10370) ] >>
endobj
11749 0 obj
-<< /Names [ (HD.1959) 2400 0 R (HD.196) 410 0 R (HD.1960) 2401 0 R (HD.1961) 2402 0 R (HD.1962) 2403 0 R (HD.1963) 2404 0 R (HD.1964) 2405 0 R (HD.1965) 2412 0 R (HD.1966) 2413 0 R (HD.1967) 2414 0 R (HD.1968) 2415 0 R (HD.1969) 2416 0 R (HD.197) 411 0 R (HD.1970) 2417 0 R (HD.1971) 2418 0 R (HD.1972) 2419 0 R (HD.1973) 2420 0 R (HD.1974) 2421 0 R (HD.1975) 2422 0 R (HD.1976) 2423 0 R (HD.1977) 2424 0 R (HD.1978) 2425 0 R (HD.1979) 2426 0 R (HD.198) 412 0 R (HD.1980) 2427 0 R (HD.1981) 2428 0 R (HD.1982) 2429 0 R (HD.1983) 2430 0 R (HD.1984) 2431 0 R (HD.1985) 2432 0 R (HD.1986) 2433 0 R (HD.1987) 2434 0 R ] /Limits [ (HD.1959) (HD.1987) ] >>
+<< /Names [ (HD.10371) 11550 0 R (HD.10372) 11551 0 R (HD.10373) 11552 0 R (HD.10374) 11557 0 R (HD.10375) 11558 0 R (HD.10376) 11559 0 R (HD.10377) 11560 0 R (HD.10378) 11561 0 R (HD.10379) 11562 0 R (HD.1038) 1379 0 R (HD.10380) 11563 0 R (HD.10381) 11564 0 R (HD.10382) 11565 0 R (HD.10383) 11566 0 R (HD.10384) 11567 0 R (HD.10385) 11568 0 R (HD.10386) 11569 0 R (HD.10387) 11570 0 R (HD.10388) 11571 0 R (HD.10389) 11572 0 R (HD.1039) 1384 0 R (HD.10390) 11573 0 R (HD.10391) 11574 0 R (HD.10392) 11575 0 R (HD.10393) 11576 0 R (HD.10394) 11577 0 R (HD.10395) 11578 0 R (HD.10396) 11579 0 R (HD.10397) 11580 0 R (HD.10398) 11581 0 R (HD.10399) 11582 0 R (HD.104) 308 0 R ] /Limits [ (HD.10371) (HD.104) ] >>
endobj
11750 0 obj
-<< /Names [ (HD.1988) 2435 0 R (HD.1989) 2436 0 R (HD.199) 413 0 R (HD.1990) 2437 0 R (HD.1991) 2438 0 R (HD.1992) 2439 0 R (HD.1993) 2440 0 R (HD.1994) 2441 0 R (HD.1995) 2442 0 R (HD.1996) 2443 0 R (HD.1997) 2444 0 R (HD.1998) 2445 0 R (HD.1999) 2446 0 R (HD.2) 190 0 R (HD.20) 215 0 R (HD.200) 414 0 R (HD.2000) 2447 0 R (HD.2001) 2448 0 R (HD.2002) 2449 0 R (HD.2003) 2450 0 R (HD.2004) 2451 0 R (HD.2005) 2452 0 R (HD.2006) 2453 0 R (HD.2007) 2454 0 R (HD.2008) 2460 0 R (HD.2009) 2461 0 R (HD.201) 415 0 R (HD.2010) 2462 0 R (HD.2011) 2463 0 R (HD.2012) 2464 0 R (HD.2013) 2465 0 R (HD.2014) 2466 0 R ] /Limits [ (HD.1988) (HD.2014) ] >>
+<< /Names [ (HD.1040) 1385 0 R (HD.10400) 11583 0 R (HD.1041) 1386 0 R (HD.1042) 1387 0 R (HD.1043) 1388 0 R (HD.1044) 1389 0 R (HD.1045) 1390 0 R (HD.1046) 1391 0 R (HD.1047) 1392 0 R (HD.1048) 1393 0 R (HD.1049) 1394 0 R (HD.105) 309 0 R (HD.1050) 1395 0 R (HD.1051) 1396 0 R (HD.1052) 1397 0 R (HD.1053) 1398 0 R (HD.1054) 1399 0 R (HD.1055) 1400 0 R (HD.1056) 1401 0 R (HD.1057) 1402 0 R (HD.1058) 1403 0 R (HD.1059) 1404 0 R (HD.106) 310 0 R (HD.1060) 1405 0 R (HD.1061) 1406 0 R (HD.1062) 1407 0 R (HD.1063) 1408 0 R (HD.1064) 1409 0 R (HD.1065) 1410 0 R (HD.1066) 1411 0 R (HD.1067) 1412 0 R (HD.1068) 1413 0 R ] /Limits [ (HD.1040) (HD.1068) ] >>
endobj
11751 0 obj
-<< /Names [ (HD.2015) 2467 0 R (HD.2016) 2468 0 R (HD.2017) 2469 0 R (HD.2018) 2470 0 R (HD.2019) 2471 0 R (HD.202) 416 0 R (HD.2020) 2472 0 R (HD.2021) 2473 0 R (HD.2022) 2474 0 R (HD.2023) 2475 0 R (HD.2024) 2476 0 R (HD.2025) 2477 0 R (HD.2026) 2478 0 R (HD.2027) 2479 0 R (HD.2028) 2480 0 R (HD.2029) 2481 0 R (HD.203) 417 0 R (HD.2030) 2482 0 R (HD.2031) 2483 0 R (HD.2032) 2484 0 R (HD.2033) 2485 0 R (HD.2034) 2486 0 R (HD.2035) 2487 0 R (HD.2036) 2488 0 R (HD.2037) 2489 0 R (HD.2038) 2490 0 R (HD.2039) 2491 0 R (HD.204) 418 0 R (HD.2040) 2492 0 R (HD.2041) 2493 0 R (HD.2042) 2494 0 R (HD.2043) 2495 0 R ] /Limits [ (HD.2015) (HD.2043) ] >>
+<< /Names [ (HD.1069) 1414 0 R (HD.107) 311 0 R (HD.1070) 1415 0 R (HD.1071) 1416 0 R (HD.1072) 1417 0 R (HD.1073) 1418 0 R (HD.1074) 1419 0 R (HD.1075) 1420 0 R (HD.1076) 1421 0 R (HD.1077) 1422 0 R (HD.1078) 1423 0 R (HD.1079) 1424 0 R (HD.108) 312 0 R (HD.1080) 1425 0 R (HD.1081) 1426 0 R (HD.1082) 1427 0 R (HD.1083) 1428 0 R (HD.1084) 1429 0 R (HD.1085) 1430 0 R (HD.1086) 1431 0 R (HD.1087) 1432 0 R (HD.1088) 1433 0 R (HD.1089) 1434 0 R (HD.109) 313 0 R (HD.1090) 1435 0 R (HD.1091) 1436 0 R (HD.1092) 1437 0 R (HD.1093) 1438 0 R (HD.1094) 1443 0 R (HD.1095) 1444 0 R (HD.1096) 1445 0 R (HD.1097) 1446 0 R ] /Limits [ (HD.1069) (HD.1097) ] >>
endobj
11752 0 obj
-<< /Names [ (HD.2044) 2496 0 R (HD.2045) 2497 0 R (HD.2046) 2498 0 R (HD.2047) 2499 0 R (HD.2048) 2500 0 R (HD.2049) 2501 0 R (HD.205) 419 0 R (HD.2050) 2502 0 R (HD.2051) 2503 0 R (HD.2052) 2504 0 R (HD.2053) 2505 0 R (HD.2054) 2506 0 R (HD.2055) 2507 0 R (HD.2056) 2516 0 R (HD.2057) 2517 0 R (HD.2058) 2518 0 R (HD.2059) 2519 0 R (HD.206) 420 0 R (HD.2060) 2520 0 R (HD.2061) 2521 0 R (HD.2062) 2522 0 R (HD.2063) 2523 0 R (HD.2064) 2524 0 R (HD.2065) 2525 0 R (HD.2066) 2526 0 R (HD.2067) 2527 0 R (HD.2068) 2528 0 R (HD.2069) 2529 0 R (HD.207) 421 0 R (HD.2070) 2530 0 R (HD.2071) 2531 0 R (HD.2072) 2532 0 R ] /Limits [ (HD.2044) (HD.2072) ] >>
+<< /Names [ (HD.1098) 1447 0 R (HD.1099) 1448 0 R (HD.11) 199 0 R (HD.110) 314 0 R (HD.1100) 1449 0 R (HD.1101) 1450 0 R (HD.1102) 1451 0 R (HD.1103) 1452 0 R (HD.1104) 1453 0 R (HD.1105) 1454 0 R (HD.1106) 1455 0 R (HD.1107) 1456 0 R (HD.1108) 1457 0 R (HD.1109) 1458 0 R (HD.111) 315 0 R (HD.1110) 1459 0 R (HD.1111) 1460 0 R (HD.1112) 1461 0 R (HD.1113) 1462 0 R (HD.1114) 1463 0 R (HD.1115) 1464 0 R (HD.1116) 1465 0 R (HD.1117) 1466 0 R (HD.1118) 1467 0 R (HD.1119) 1468 0 R (HD.112) 316 0 R (HD.1120) 1469 0 R (HD.1121) 1470 0 R (HD.1122) 1471 0 R (HD.1123) 1472 0 R (HD.1124) 1473 0 R (HD.1125) 1474 0 R ] /Limits [ (HD.1098) (HD.1125) ] >>
endobj
11753 0 obj
-<< /Names [ (HD.2073) 2533 0 R (HD.2074) 2534 0 R (HD.2075) 2535 0 R (HD.2076) 2536 0 R (HD.2077) 2537 0 R (HD.2078) 2538 0 R (HD.2079) 2539 0 R (HD.208) 422 0 R (HD.2080) 2540 0 R (HD.2081) 2541 0 R (HD.2082) 2542 0 R (HD.2083) 2543 0 R (HD.2084) 2544 0 R (HD.2085) 2545 0 R (HD.2086) 2546 0 R (HD.2087) 2547 0 R (HD.2088) 2548 0 R (HD.2089) 2549 0 R (HD.209) 423 0 R (HD.2090) 2550 0 R (HD.2091) 2551 0 R (HD.2092) 2552 0 R (HD.2093) 2553 0 R (HD.2094) 2554 0 R (HD.2095) 2555 0 R (HD.2096) 2556 0 R (HD.2097) 2557 0 R (HD.2098) 2558 0 R (HD.2099) 2559 0 R (HD.21) 216 0 R (HD.210) 424 0 R (HD.2100) 2560 0 R ] /Limits [ (HD.2073) (HD.2100) ] >>
+<< /Names [ (HD.1126) 1475 0 R (HD.1127) 1476 0 R (HD.1128) 1477 0 R (HD.1129) 1478 0 R (HD.113) 319 0 R (HD.1130) 1479 0 R (HD.1131) 1480 0 R (HD.1132) 1481 0 R (HD.1133) 1482 0 R (HD.1134) 1483 0 R (HD.1135) 1484 0 R (HD.1136) 1489 0 R (HD.1137) 1490 0 R (HD.1138) 1491 0 R (HD.1139) 1492 0 R (HD.114) 320 0 R (HD.1140) 1493 0 R (HD.1141) 1494 0 R (HD.1142) 1495 0 R (HD.1143) 1496 0 R (HD.1144) 1497 0 R (HD.1145) 1498 0 R (HD.1146) 1499 0 R (HD.1147) 1500 0 R (HD.1148) 1501 0 R (HD.1149) 1502 0 R (HD.115) 321 0 R (HD.1150) 1503 0 R (HD.1151) 1504 0 R (HD.1152) 1505 0 R (HD.1153) 1506 0 R (HD.1154) 1507 0 R ] /Limits [ (HD.1126) (HD.1154) ] >>
endobj
11754 0 obj
-<< /Names [ (HD.2101) 2568 0 R (HD.2102) 2569 0 R (HD.2103) 2570 0 R (HD.2104) 2571 0 R (HD.2105) 2572 0 R (HD.2106) 2573 0 R (HD.2107) 2574 0 R (HD.2108) 2575 0 R (HD.2109) 2576 0 R (HD.211) 425 0 R (HD.2110) 2577 0 R (HD.2111) 2578 0 R (HD.2112) 2579 0 R (HD.2113) 2580 0 R (HD.2114) 2581 0 R (HD.2115) 2582 0 R (HD.2116) 2583 0 R (HD.2117) 2584 0 R (HD.2118) 2585 0 R (HD.2119) 2586 0 R (HD.212) 426 0 R (HD.2120) 2587 0 R (HD.2121) 2588 0 R (HD.2122) 2589 0 R (HD.2123) 2590 0 R (HD.2124) 2591 0 R (HD.2125) 2592 0 R (HD.2126) 2593 0 R (HD.2127) 2594 0 R (HD.2128) 2595 0 R (HD.2129) 2596 0 R (HD.213) 427 0 R ] /Limits [ (HD.2101) (HD.213) ] >>
+<< /Names [ (HD.1155) 1508 0 R (HD.1156) 1509 0 R (HD.1157) 1510 0 R (HD.1158) 1511 0 R (HD.1159) 1512 0 R (HD.116) 322 0 R (HD.1160) 1513 0 R (HD.1161) 1514 0 R (HD.1162) 1515 0 R (HD.1163) 1516 0 R (HD.1164) 1517 0 R (HD.1165) 1518 0 R (HD.1166) 1519 0 R (HD.1167) 1520 0 R (HD.1168) 1521 0 R (HD.1169) 1522 0 R (HD.117) 323 0 R (HD.1170) 1523 0 R (HD.1171) 1524 0 R (HD.1172) 1525 0 R (HD.1173) 1526 0 R (HD.1174) 1527 0 R (HD.1175) 1528 0 R (HD.1176) 1529 0 R (HD.1177) 1530 0 R (HD.1178) 1531 0 R (HD.1179) 1532 0 R (HD.118) 324 0 R (HD.1180) 1533 0 R (HD.1181) 1534 0 R (HD.1182) 1535 0 R (HD.1183) 1536 0 R ] /Limits [ (HD.1155) (HD.1183) ] >>
endobj
11755 0 obj
-<< /Names [ (HD.2130) 2597 0 R (HD.2131) 2598 0 R (HD.2132) 2599 0 R (HD.2133) 2600 0 R (HD.2134) 2601 0 R (HD.2135) 2602 0 R (HD.2136) 2603 0 R (HD.2137) 2604 0 R (HD.2138) 2610 0 R (HD.2139) 2611 0 R (HD.214) 428 0 R (HD.2140) 2612 0 R (HD.2141) 2613 0 R (HD.2142) 2614 0 R (HD.2143) 2615 0 R (HD.2144) 2616 0 R (HD.2145) 2617 0 R (HD.2146) 2618 0 R (HD.2147) 2619 0 R (HD.2148) 2620 0 R (HD.2149) 2621 0 R (HD.215) 434 0 R (HD.2150) 2622 0 R (HD.2151) 2623 0 R (HD.2152) 2624 0 R (HD.2153) 2625 0 R (HD.2154) 2626 0 R (HD.2155) 2627 0 R (HD.2156) 2628 0 R (HD.2157) 2629 0 R (HD.2158) 2630 0 R (HD.2159) 2631 0 R ] /Limits [ (HD.2130) (HD.2159) ] >>
+<< /Names [ (HD.1184) 1537 0 R (HD.1185) 1538 0 R (HD.1186) 1539 0 R (HD.1187) 1544 0 R (HD.1188) 1545 0 R (HD.1189) 1546 0 R (HD.119) 325 0 R (HD.1190) 1547 0 R (HD.1191) 1548 0 R (HD.1192) 1549 0 R (HD.1193) 1550 0 R (HD.1194) 1551 0 R (HD.1195) 1552 0 R (HD.1196) 1553 0 R (HD.1197) 1554 0 R (HD.1198) 1555 0 R (HD.1199) 1556 0 R (HD.12) 200 0 R (HD.120) 326 0 R (HD.1200) 1557 0 R (HD.1201) 1558 0 R (HD.1202) 1559 0 R (HD.1203) 1560 0 R (HD.1204) 1561 0 R (HD.1205) 1562 0 R (HD.1206) 1563 0 R (HD.1207) 1564 0 R (HD.1208) 1565 0 R (HD.1209) 1566 0 R (HD.121) 327 0 R (HD.1210) 1567 0 R (HD.1211) 1572 0 R ] /Limits [ (HD.1184) (HD.1211) ] >>
endobj
11756 0 obj
-<< /Names [ (HD.216) 435 0 R (HD.2160) 2632 0 R (HD.2161) 2633 0 R (HD.2162) 2634 0 R (HD.2163) 2635 0 R (HD.2164) 2636 0 R (HD.2165) 2637 0 R (HD.2166) 2638 0 R (HD.2167) 2639 0 R (HD.2168) 2640 0 R (HD.2169) 2641 0 R (HD.217) 436 0 R (HD.2170) 2642 0 R (HD.2171) 2643 0 R (HD.2172) 2644 0 R (HD.2173) 2645 0 R (HD.2174) 2646 0 R (HD.2175) 2647 0 R (HD.2176) 2648 0 R (HD.2177) 2649 0 R (HD.2178) 2650 0 R (HD.2179) 2651 0 R (HD.218) 437 0 R (HD.2180) 2652 0 R (HD.2181) 2653 0 R (HD.2182) 2659 0 R (HD.2183) 2660 0 R (HD.2184) 2661 0 R (HD.2185) 2662 0 R (HD.2186) 2663 0 R (HD.2187) 2664 0 R (HD.2188) 2665 0 R ] /Limits [ (HD.216) (HD.2188) ] >>
+<< /Names [ (HD.1212) 1573 0 R (HD.1213) 1574 0 R (HD.1214) 1575 0 R (HD.1215) 1576 0 R (HD.1216) 1577 0 R (HD.1217) 1578 0 R (HD.1218) 1579 0 R (HD.1219) 1580 0 R (HD.122) 328 0 R (HD.1220) 1581 0 R (HD.1221) 1582 0 R (HD.1222) 1583 0 R (HD.1223) 1584 0 R (HD.1224) 1585 0 R (HD.1225) 1586 0 R (HD.1226) 1587 0 R (HD.1227) 1588 0 R (HD.1228) 1589 0 R (HD.1229) 1590 0 R (HD.123) 329 0 R (HD.1230) 1591 0 R (HD.1231) 1592 0 R (HD.1232) 1593 0 R (HD.1233) 1594 0 R (HD.1234) 1595 0 R (HD.1235) 1596 0 R (HD.1236) 1597 0 R (HD.1237) 1598 0 R (HD.1238) 1599 0 R (HD.1239) 1600 0 R (HD.124) 330 0 R (HD.1240) 1601 0 R ] /Limits [ (HD.1212) (HD.1240) ] >>
endobj
11757 0 obj
-<< /Names [ (HD.2189) 2666 0 R (HD.219) 438 0 R (HD.2190) 2667 0 R (HD.2191) 2668 0 R (HD.2192) 2669 0 R (HD.2193) 2670 0 R (HD.2194) 2671 0 R (HD.2195) 2672 0 R (HD.2196) 2673 0 R (HD.2197) 2674 0 R (HD.2198) 2675 0 R (HD.2199) 2676 0 R (HD.22) 217 0 R (HD.220) 439 0 R (HD.2200) 2677 0 R (HD.2201) 2678 0 R (HD.2202) 2679 0 R (HD.2203) 2680 0 R (HD.2204) 2681 0 R (HD.2205) 2682 0 R (HD.2206) 2683 0 R (HD.2207) 2684 0 R (HD.2208) 2685 0 R (HD.2209) 2686 0 R (HD.221) 440 0 R (HD.2210) 2687 0 R (HD.2211) 2688 0 R (HD.2212) 2689 0 R (HD.2213) 2690 0 R (HD.2214) 2691 0 R (HD.2215) 2692 0 R (HD.2216) 2693 0 R ] /Limits [ (HD.2189) (HD.2216) ] >>
+<< /Names [ (HD.1241) 1602 0 R (HD.1242) 1603 0 R (HD.1243) 1604 0 R (HD.1244) 1605 0 R (HD.1245) 1606 0 R (HD.1246) 1607 0 R (HD.1247) 1608 0 R (HD.1248) 1609 0 R (HD.1249) 1610 0 R (HD.125) 331 0 R (HD.1250) 1611 0 R (HD.1251) 1612 0 R (HD.1252) 1613 0 R (HD.1253) 1614 0 R (HD.1254) 1615 0 R (HD.1255) 1616 0 R (HD.1256) 1621 0 R (HD.1257) 1622 0 R (HD.1258) 1623 0 R (HD.1259) 1624 0 R (HD.126) 332 0 R (HD.1260) 1625 0 R (HD.1261) 1626 0 R (HD.1262) 1627 0 R (HD.1263) 1628 0 R (HD.1264) 1629 0 R (HD.1265) 1630 0 R (HD.1266) 1631 0 R (HD.1267) 1632 0 R (HD.1268) 1633 0 R (HD.1269) 1634 0 R (HD.127) 333 0 R ] /Limits [ (HD.1241) (HD.127) ] >>
endobj
11758 0 obj
-<< /Names [ (HD.2217) 2694 0 R (HD.2218) 2695 0 R (HD.2219) 2696 0 R (HD.222) 441 0 R (HD.2220) 2697 0 R (HD.2221) 2698 0 R (HD.2222) 2699 0 R (HD.2223) 2700 0 R (HD.2224) 2701 0 R (HD.2225) 2702 0 R (HD.2226) 2703 0 R (HD.2227) 2708 0 R (HD.2228) 2709 0 R (HD.2229) 2710 0 R (HD.223) 442 0 R (HD.2230) 2711 0 R (HD.2231) 2712 0 R (HD.2232) 2713 0 R (HD.2233) 2714 0 R (HD.2234) 2715 0 R (HD.2235) 2716 0 R (HD.2236) 2717 0 R (HD.2237) 2718 0 R (HD.2238) 2719 0 R (HD.2239) 2720 0 R (HD.224) 443 0 R (HD.2240) 2721 0 R (HD.2241) 2722 0 R (HD.2242) 2723 0 R (HD.2243) 2724 0 R (HD.2244) 2725 0 R (HD.2245) 2726 0 R ] /Limits [ (HD.2217) (HD.2245) ] >>
+<< /Names [ (HD.1270) 1635 0 R (HD.1271) 1636 0 R (HD.1272) 1637 0 R (HD.1273) 1638 0 R (HD.1274) 1639 0 R (HD.1275) 1640 0 R (HD.1276) 1641 0 R (HD.1277) 1642 0 R (HD.1278) 1643 0 R (HD.1279) 1644 0 R (HD.128) 334 0 R (HD.1280) 1645 0 R (HD.1281) 1646 0 R (HD.1282) 1647 0 R (HD.1283) 1648 0 R (HD.1284) 1649 0 R (HD.1285) 1650 0 R (HD.1286) 1651 0 R (HD.1287) 1652 0 R (HD.1288) 1653 0 R (HD.1289) 1654 0 R (HD.129) 335 0 R (HD.1290) 1655 0 R (HD.1291) 1656 0 R (HD.1292) 1657 0 R (HD.1293) 1658 0 R (HD.1294) 1659 0 R (HD.1295) 1660 0 R (HD.1296) 1661 0 R (HD.1297) 1662 0 R (HD.1298) 1663 0 R (HD.1299) 1664 0 R ] /Limits [ (HD.1270) (HD.1299) ] >>
endobj
11759 0 obj
-<< /Names [ (HD.2246) 2727 0 R (HD.2247) 2728 0 R (HD.2248) 2729 0 R (HD.2249) 2730 0 R (HD.225) 444 0 R (HD.2250) 2731 0 R (HD.2251) 2732 0 R (HD.2252) 2733 0 R (HD.2253) 2734 0 R (HD.2254) 2735 0 R (HD.2255) 2736 0 R (HD.2256) 2737 0 R (HD.2257) 2738 0 R (HD.2258) 2739 0 R (HD.2259) 2740 0 R (HD.226) 445 0 R (HD.2260) 2741 0 R (HD.2261) 2742 0 R (HD.2262) 2743 0 R (HD.2263) 2744 0 R (HD.2264) 2745 0 R (HD.2265) 2746 0 R (HD.2266) 2747 0 R (HD.2267) 2748 0 R (HD.2268) 2749 0 R (HD.2269) 2750 0 R (HD.227) 446 0 R (HD.2270) 2751 0 R (HD.2271) 2752 0 R (HD.2272) 2753 0 R (HD.2273) 2754 0 R (HD.2274) 2755 0 R ] /Limits [ (HD.2246) (HD.2274) ] >>
+<< /Names [ (HD.13) 201 0 R (HD.130) 336 0 R (HD.1300) 1665 0 R (HD.1301) 1666 0 R (HD.1302) 1667 0 R (HD.1303) 1668 0 R (HD.1304) 1669 0 R (HD.1305) 1670 0 R (HD.1306) 1671 0 R (HD.1307) 1672 0 R (HD.1308) 1673 0 R (HD.1309) 1674 0 R (HD.131) 337 0 R (HD.1310) 1675 0 R (HD.1311) 1676 0 R (HD.1312) 1677 0 R (HD.1313) 1678 0 R (HD.1314) 1679 0 R (HD.1315) 1684 0 R (HD.1316) 1685 0 R (HD.1317) 1686 0 R (HD.1318) 1687 0 R (HD.1319) 1688 0 R (HD.132) 338 0 R (HD.1320) 1689 0 R (HD.1321) 1690 0 R (HD.1322) 1691 0 R (HD.1323) 1692 0 R (HD.1324) 1693 0 R (HD.1325) 1694 0 R (HD.1326) 1695 0 R (HD.1327) 1696 0 R ] /Limits [ (HD.13) (HD.1327) ] >>
endobj
11760 0 obj
-<< /Names [ (HD.2275) 2756 0 R (HD.2276) 2757 0 R (HD.2277) 2765 0 R (HD.2278) 2766 0 R (HD.2279) 2767 0 R (HD.228) 447 0 R (HD.2280) 2768 0 R (HD.2281) 2769 0 R (HD.2282) 2770 0 R (HD.2283) 2771 0 R (HD.2284) 2772 0 R (HD.2285) 2773 0 R (HD.2286) 2774 0 R (HD.2287) 2775 0 R (HD.2288) 2776 0 R (HD.2289) 2777 0 R (HD.229) 448 0 R (HD.2290) 2778 0 R (HD.2291) 2779 0 R (HD.2292) 2780 0 R (HD.2293) 2781 0 R (HD.2294) 2782 0 R (HD.2295) 2783 0 R (HD.2296) 2784 0 R (HD.2297) 2785 0 R (HD.2298) 2786 0 R (HD.2299) 2787 0 R (HD.23) 218 0 R (HD.230) 449 0 R (HD.2300) 2788 0 R (HD.2301) 2789 0 R (HD.2302) 2790 0 R ] /Limits [ (HD.2275) (HD.2302) ] >>
+<< /Names [ (HD.1328) 1697 0 R (HD.1329) 1698 0 R (HD.133) 339 0 R (HD.1330) 1699 0 R (HD.1331) 1700 0 R (HD.1332) 1701 0 R (HD.1333) 1702 0 R (HD.1334) 1703 0 R (HD.1335) 1704 0 R (HD.1336) 1705 0 R (HD.1337) 1706 0 R (HD.1338) 1707 0 R (HD.1339) 1708 0 R (HD.134) 344 0 R (HD.1340) 1709 0 R (HD.1341) 1710 0 R (HD.1342) 1711 0 R (HD.1343) 1712 0 R (HD.1344) 1713 0 R (HD.1345) 1718 0 R (HD.1346) 1719 0 R (HD.1347) 1720 0 R (HD.1348) 1721 0 R (HD.1349) 1722 0 R (HD.135) 345 0 R (HD.1350) 1723 0 R (HD.1351) 1724 0 R (HD.1352) 1725 0 R (HD.1353) 1726 0 R (HD.1354) 1727 0 R (HD.1355) 1728 0 R (HD.1356) 1729 0 R ] /Limits [ (HD.1328) (HD.1356) ] >>
endobj
11761 0 obj
-<< /Names [ (HD.2303) 2791 0 R (HD.2304) 2792 0 R (HD.2305) 2793 0 R (HD.2306) 2794 0 R (HD.2307) 2795 0 R (HD.2308) 2796 0 R (HD.2309) 2797 0 R (HD.231) 450 0 R (HD.2310) 2798 0 R (HD.2311) 2799 0 R (HD.2312) 2800 0 R (HD.2313) 2801 0 R (HD.2314) 2802 0 R (HD.2315) 2803 0 R (HD.2316) 2804 0 R (HD.2317) 2805 0 R (HD.2318) 2806 0 R (HD.2319) 2807 0 R (HD.232) 451 0 R (HD.2320) 2808 0 R (HD.2321) 2809 0 R (HD.2322) 2810 0 R (HD.2323) 2811 0 R (HD.2324) 2812 0 R (HD.2325) 2813 0 R (HD.2326) 2814 0 R (HD.2327) 2815 0 R (HD.2328) 2820 0 R (HD.2329) 2821 0 R (HD.233) 452 0 R (HD.2330) 2822 0 R (HD.2331) 2823 0 R ] /Limits [ (HD.2303) (HD.2331) ] >>
+<< /Names [ (HD.1357) 1730 0 R (HD.1358) 1731 0 R (HD.1359) 1732 0 R (HD.136) 346 0 R (HD.1360) 1733 0 R (HD.1361) 1734 0 R (HD.1362) 1735 0 R (HD.1363) 1736 0 R (HD.1364) 1737 0 R (HD.1365) 1738 0 R (HD.1366) 1739 0 R (HD.1367) 1740 0 R (HD.1368) 1741 0 R (HD.1369) 1742 0 R (HD.137) 347 0 R (HD.1370) 1743 0 R (HD.1371) 1744 0 R (HD.1372) 1745 0 R (HD.1373) 1746 0 R (HD.1374) 1747 0 R (HD.1375) 1748 0 R (HD.1376) 1749 0 R (HD.1377) 1750 0 R (HD.1378) 1751 0 R (HD.1379) 1752 0 R (HD.138) 348 0 R (HD.1380) 1753 0 R (HD.1381) 1754 0 R (HD.1382) 1755 0 R (HD.1383) 1756 0 R (HD.1384) 1757 0 R (HD.1385) 1758 0 R ] /Limits [ (HD.1357) (HD.1385) ] >>
endobj
11762 0 obj
-<< /Names [ (HD.2332) 2824 0 R (HD.2333) 2825 0 R (HD.2334) 2826 0 R (HD.2335) 2827 0 R (HD.2336) 2828 0 R (HD.2337) 2829 0 R (HD.2338) 2830 0 R (HD.2339) 2831 0 R (HD.234) 453 0 R (HD.2340) 2832 0 R (HD.2341) 2833 0 R (HD.2342) 2834 0 R (HD.2343) 2835 0 R (HD.2344) 2836 0 R (HD.2345) 2837 0 R (HD.2346) 2838 0 R (HD.2347) 2839 0 R (HD.2348) 2840 0 R (HD.2349) 2841 0 R (HD.235) 454 0 R (HD.2350) 2842 0 R (HD.2351) 2843 0 R (HD.2352) 2844 0 R (HD.2353) 2845 0 R (HD.2354) 2846 0 R (HD.2355) 2847 0 R (HD.2356) 2848 0 R (HD.2357) 2849 0 R (HD.2358) 2850 0 R (HD.2359) 2851 0 R (HD.236) 455 0 R (HD.2360) 2852 0 R ] /Limits [ (HD.2332) (HD.2360) ] >>
+<< /Names [ (HD.1386) 1759 0 R (HD.1387) 1760 0 R (HD.1388) 1761 0 R (HD.1389) 1762 0 R (HD.139) 349 0 R (HD.1390) 1763 0 R (HD.1391) 1764 0 R (HD.1392) 1765 0 R (HD.1393) 1766 0 R (HD.1394) 1771 0 R (HD.1395) 1772 0 R (HD.1396) 1773 0 R (HD.1397) 1774 0 R (HD.1398) 1775 0 R (HD.1399) 1776 0 R (HD.14) 202 0 R (HD.140) 350 0 R (HD.1400) 1777 0 R (HD.1401) 1778 0 R (HD.1402) 1779 0 R (HD.1403) 1780 0 R (HD.1404) 1781 0 R (HD.1405) 1782 0 R (HD.1406) 1783 0 R (HD.1407) 1784 0 R (HD.1408) 1785 0 R (HD.1409) 1786 0 R (HD.141) 351 0 R (HD.1410) 1787 0 R (HD.1411) 1788 0 R (HD.1412) 1789 0 R (HD.1413) 1790 0 R ] /Limits [ (HD.1386) (HD.1413) ] >>
endobj
11763 0 obj
-<< /Names [ (HD.2361) 2853 0 R (HD.2362) 2854 0 R (HD.2363) 2855 0 R (HD.2364) 2856 0 R (HD.2365) 2857 0 R (HD.2366) 2858 0 R (HD.2367) 2859 0 R (HD.2368) 2860 0 R (HD.2369) 2861 0 R (HD.237) 456 0 R (HD.2370) 2862 0 R (HD.2371) 2863 0 R (HD.2372) 2864 0 R (HD.2373) 2865 0 R (HD.2374) 2866 0 R (HD.2375) 2867 0 R (HD.2376) 2868 0 R (HD.2377) 2869 0 R (HD.2378) 2870 0 R (HD.2379) 2871 0 R (HD.238) 457 0 R (HD.2380) 2872 0 R (HD.2381) 2873 0 R (HD.2382) 2874 0 R (HD.2383) 2875 0 R (HD.2384) 2880 0 R (HD.2385) 2881 0 R (HD.2386) 2882 0 R (HD.2387) 2883 0 R (HD.2388) 2884 0 R (HD.2389) 2885 0 R (HD.239) 458 0 R ] /Limits [ (HD.2361) (HD.239) ] >>
+<< /Names [ (HD.1414) 1791 0 R (HD.1415) 1792 0 R (HD.1416) 1793 0 R (HD.1417) 1794 0 R (HD.1418) 1795 0 R (HD.1419) 1796 0 R (HD.142) 352 0 R (HD.1420) 1797 0 R (HD.1421) 1798 0 R (HD.1422) 1799 0 R (HD.1423) 1800 0 R (HD.1424) 1801 0 R (HD.1425) 1802 0 R (HD.1426) 1803 0 R (HD.1427) 1804 0 R (HD.1428) 1805 0 R (HD.1429) 1806 0 R (HD.143) 353 0 R (HD.1430) 1807 0 R (HD.1431) 1808 0 R (HD.1432) 1815 0 R (HD.1433) 1816 0 R (HD.1434) 1817 0 R (HD.1435) 1818 0 R (HD.1436) 1819 0 R (HD.1437) 1820 0 R (HD.1438) 1821 0 R (HD.1439) 1822 0 R (HD.144) 354 0 R (HD.1440) 1823 0 R (HD.1441) 1824 0 R (HD.1442) 1825 0 R ] /Limits [ (HD.1414) (HD.1442) ] >>
endobj
11764 0 obj
-<< /Names [ (HD.2390) 2886 0 R (HD.2391) 2887 0 R (HD.2392) 2888 0 R (HD.2393) 2889 0 R (HD.2394) 2890 0 R (HD.2395) 2891 0 R (HD.2396) 2892 0 R (HD.2397) 2893 0 R (HD.2398) 2894 0 R (HD.2399) 2895 0 R (HD.24) 219 0 R (HD.240) 459 0 R (HD.2400) 2896 0 R (HD.2401) 2897 0 R (HD.2402) 2898 0 R (HD.2403) 2899 0 R (HD.2404) 2900 0 R (HD.2405) 2901 0 R (HD.2406) 2902 0 R (HD.2407) 2903 0 R (HD.2408) 2904 0 R (HD.2409) 2905 0 R (HD.241) 460 0 R (HD.2410) 2906 0 R (HD.2411) 2907 0 R (HD.2412) 2908 0 R (HD.2413) 2909 0 R (HD.2414) 2910 0 R (HD.2415) 2911 0 R (HD.2416) 2912 0 R (HD.2417) 2913 0 R (HD.2418) 2914 0 R ] /Limits [ (HD.2390) (HD.2418) ] >>
+<< /Names [ (HD.1443) 1826 0 R (HD.1444) 1827 0 R (HD.1445) 1828 0 R (HD.1446) 1829 0 R (HD.1447) 1830 0 R (HD.1448) 1831 0 R (HD.1449) 1832 0 R (HD.145) 355 0 R (HD.1450) 1833 0 R (HD.1451) 1834 0 R (HD.1452) 1835 0 R (HD.1453) 1836 0 R (HD.1454) 1837 0 R (HD.1455) 1838 0 R (HD.1456) 1839 0 R (HD.1457) 1840 0 R (HD.1458) 1841 0 R (HD.1459) 1842 0 R (HD.146) 356 0 R (HD.1460) 1843 0 R (HD.1461) 1844 0 R (HD.1462) 1845 0 R (HD.1463) 1846 0 R (HD.1464) 1847 0 R (HD.1465) 1848 0 R (HD.1466) 1849 0 R (HD.1467) 1850 0 R (HD.1468) 1851 0 R (HD.1469) 1852 0 R (HD.147) 357 0 R (HD.1470) 1853 0 R (HD.1471) 1854 0 R ] /Limits [ (HD.1443) (HD.1471) ] >>
endobj
11765 0 obj
-<< /Names [ (HD.2419) 2915 0 R (HD.242) 461 0 R (HD.2420) 2916 0 R (HD.2421) 2917 0 R (HD.2422) 2918 0 R (HD.2423) 2919 0 R (HD.2424) 2920 0 R (HD.2425) 2921 0 R (HD.2426) 2922 0 R (HD.2427) 2923 0 R (HD.2428) 2924 0 R (HD.2429) 2925 0 R (HD.243) 462 0 R (HD.2430) 2926 0 R (HD.2431) 2927 0 R (HD.2432) 2932 0 R (HD.2433) 2933 0 R (HD.2434) 2934 0 R (HD.2435) 2935 0 R (HD.2436) 2936 0 R (HD.2437) 2937 0 R (HD.2438) 2938 0 R (HD.2439) 2939 0 R (HD.244) 463 0 R (HD.2440) 2940 0 R (HD.2441) 2941 0 R (HD.2442) 2942 0 R (HD.2443) 2943 0 R (HD.2444) 2944 0 R (HD.2445) 2945 0 R (HD.2446) 2946 0 R (HD.2447) 2947 0 R ] /Limits [ (HD.2419) (HD.2447) ] >>
+<< /Names [ (HD.1472) 1855 0 R (HD.1473) 1860 0 R (HD.1474) 1861 0 R (HD.1475) 1862 0 R (HD.1476) 1863 0 R (HD.1477) 1864 0 R (HD.1478) 1865 0 R (HD.1479) 1866 0 R (HD.148) 358 0 R (HD.1480) 1867 0 R (HD.1481) 1868 0 R (HD.1482) 1869 0 R (HD.1483) 1870 0 R (HD.1484) 1871 0 R (HD.1485) 1872 0 R (HD.1486) 1873 0 R (HD.1487) 1874 0 R (HD.1488) 1875 0 R (HD.1489) 1876 0 R (HD.149) 359 0 R (HD.1490) 1877 0 R (HD.1491) 1878 0 R (HD.1492) 1879 0 R (HD.1493) 1880 0 R (HD.1494) 1881 0 R (HD.1495) 1882 0 R (HD.1496) 1883 0 R (HD.1497) 1884 0 R (HD.1498) 1885 0 R (HD.1499) 1886 0 R (HD.15) 203 0 R (HD.150) 360 0 R ] /Limits [ (HD.1472) (HD.150) ] >>
endobj
11766 0 obj
-<< /Names [ (HD.2448) 2948 0 R (HD.2449) 2949 0 R (HD.245) 464 0 R (HD.2450) 2950 0 R (HD.2451) 2951 0 R (HD.2452) 2952 0 R (HD.2453) 2953 0 R (HD.2454) 2954 0 R (HD.2455) 2955 0 R (HD.2456) 2956 0 R (HD.2457) 2957 0 R (HD.2458) 2958 0 R (HD.2459) 2959 0 R (HD.246) 465 0 R (HD.2460) 2960 0 R (HD.2461) 2961 0 R (HD.2462) 2962 0 R (HD.2463) 2963 0 R (HD.2464) 2964 0 R (HD.2465) 2965 0 R (HD.2466) 2970 0 R (HD.2467) 2971 0 R (HD.2468) 2972 0 R (HD.2469) 2973 0 R (HD.247) 466 0 R (HD.2470) 2974 0 R (HD.2471) 2975 0 R (HD.2472) 2976 0 R (HD.2473) 2977 0 R (HD.2474) 2978 0 R (HD.2475) 2979 0 R (HD.2476) 2980 0 R ] /Limits [ (HD.2448) (HD.2476) ] >>
+<< /Names [ (HD.1500) 1887 0 R (HD.1501) 1888 0 R (HD.1502) 1889 0 R (HD.1503) 1890 0 R (HD.1504) 1891 0 R (HD.1505) 1892 0 R (HD.1506) 1893 0 R (HD.1507) 1894 0 R (HD.1508) 1895 0 R (HD.1509) 1896 0 R (HD.151) 361 0 R (HD.1510) 1897 0 R (HD.1511) 1898 0 R (HD.1512) 1899 0 R (HD.1513) 1900 0 R (HD.1514) 1901 0 R (HD.1515) 1902 0 R (HD.1516) 1903 0 R (HD.1517) 1904 0 R (HD.1518) 1905 0 R (HD.1519) 1906 0 R (HD.152) 362 0 R (HD.1520) 1907 0 R (HD.1521) 1908 0 R (HD.1522) 1909 0 R (HD.1523) 1910 0 R (HD.1524) 1917 0 R (HD.1525) 1918 0 R (HD.1526) 1919 0 R (HD.1527) 1920 0 R (HD.1528) 1921 0 R (HD.1529) 1922 0 R ] /Limits [ (HD.1500) (HD.1529) ] >>
endobj
11767 0 obj
-<< /Names [ (HD.2477) 2981 0 R (HD.2478) 2982 0 R (HD.2479) 2983 0 R (HD.248) 467 0 R (HD.2480) 2984 0 R (HD.2481) 2985 0 R (HD.2482) 2986 0 R (HD.2483) 2987 0 R (HD.2484) 2988 0 R (HD.2485) 2989 0 R (HD.2486) 2990 0 R (HD.2487) 2991 0 R (HD.2488) 2992 0 R (HD.2489) 2993 0 R (HD.249) 468 0 R (HD.2490) 2994 0 R (HD.2491) 2995 0 R (HD.2492) 2996 0 R (HD.2493) 2997 0 R (HD.2494) 2998 0 R (HD.2495) 2999 0 R (HD.2496) 3000 0 R (HD.2497) 3001 0 R (HD.2498) 3002 0 R (HD.2499) 3003 0 R (HD.25) 220 0 R (HD.250) 469 0 R (HD.2500) 3004 0 R (HD.2501) 3005 0 R (HD.2502) 3006 0 R (HD.2503) 3007 0 R (HD.2504) 3008 0 R ] /Limits [ (HD.2477) (HD.2504) ] >>
+<< /Names [ (HD.153) 363 0 R (HD.1530) 1923 0 R (HD.1531) 1924 0 R (HD.1532) 1925 0 R (HD.1533) 1926 0 R (HD.1534) 1927 0 R (HD.1535) 1928 0 R (HD.1536) 1929 0 R (HD.1537) 1930 0 R (HD.1538) 1931 0 R (HD.1539) 1932 0 R (HD.154) 364 0 R (HD.1540) 1933 0 R (HD.1541) 1934 0 R (HD.1542) 1935 0 R (HD.1543) 1936 0 R (HD.1544) 1937 0 R (HD.1545) 1938 0 R (HD.1546) 1939 0 R (HD.1547) 1940 0 R (HD.1548) 1941 0 R (HD.1549) 1942 0 R (HD.155) 365 0 R (HD.1550) 1943 0 R (HD.1551) 1944 0 R (HD.1552) 1945 0 R (HD.1553) 1946 0 R (HD.1554) 1947 0 R (HD.1555) 1948 0 R (HD.1556) 1949 0 R (HD.1557) 1950 0 R (HD.1558) 1951 0 R ] /Limits [ (HD.153) (HD.1558) ] >>
endobj
11768 0 obj
-<< /Names [ (HD.2505) 3009 0 R (HD.2506) 3010 0 R (HD.2507) 3011 0 R (HD.2508) 3012 0 R (HD.2509) 3013 0 R (HD.251) 470 0 R (HD.2510) 3014 0 R (HD.2511) 3015 0 R (HD.2512) 3020 0 R (HD.2513) 3021 0 R (HD.2514) 3022 0 R (HD.2515) 3023 0 R (HD.2516) 3024 0 R (HD.2517) 3025 0 R (HD.2518) 3026 0 R (HD.2519) 3027 0 R (HD.252) 471 0 R (HD.2520) 3028 0 R (HD.2521) 3029 0 R (HD.2522) 3030 0 R (HD.2523) 3031 0 R (HD.2524) 3032 0 R (HD.2525) 3033 0 R (HD.2526) 3034 0 R (HD.2527) 3035 0 R (HD.2528) 3036 0 R (HD.2529) 3037 0 R (HD.253) 472 0 R (HD.2530) 3038 0 R (HD.2531) 3039 0 R (HD.2532) 3040 0 R (HD.2533) 3041 0 R ] /Limits [ (HD.2505) (HD.2533) ] >>
+<< /Names [ (HD.1559) 1952 0 R (HD.156) 366 0 R (HD.1560) 1953 0 R (HD.1561) 1954 0 R (HD.1562) 1955 0 R (HD.1563) 1956 0 R (HD.1564) 1957 0 R (HD.1565) 1958 0 R (HD.1566) 1959 0 R (HD.1567) 1967 0 R (HD.1568) 1968 0 R (HD.1569) 1969 0 R (HD.157) 367 0 R (HD.1570) 1970 0 R (HD.1571) 1971 0 R (HD.1572) 1972 0 R (HD.1573) 1973 0 R (HD.1574) 1974 0 R (HD.1575) 1975 0 R (HD.1576) 1976 0 R (HD.1577) 1977 0 R (HD.1578) 1978 0 R (HD.1579) 1979 0 R (HD.158) 368 0 R (HD.1580) 1980 0 R (HD.1581) 1981 0 R (HD.1582) 1982 0 R (HD.1583) 1983 0 R (HD.1584) 1984 0 R (HD.1585) 1985 0 R (HD.1586) 1986 0 R (HD.1587) 1987 0 R ] /Limits [ (HD.1559) (HD.1587) ] >>
endobj
11769 0 obj
-<< /Names [ (HD.2534) 3042 0 R (HD.2535) 3043 0 R (HD.2536) 3044 0 R (HD.2537) 3045 0 R (HD.2538) 3046 0 R (HD.2539) 3047 0 R (HD.254) 474 0 R (HD.2540) 3048 0 R (HD.2541) 3049 0 R (HD.2542) 3050 0 R (HD.2543) 3051 0 R (HD.2544) 3052 0 R (HD.2545) 3053 0 R (HD.2546) 3054 0 R (HD.2547) 3055 0 R (HD.2548) 3056 0 R (HD.2549) 3057 0 R (HD.255) 475 0 R (HD.2550) 3058 0 R (HD.2551) 3059 0 R (HD.2552) 3060 0 R (HD.2553) 3061 0 R (HD.2554) 3062 0 R (HD.2555) 3063 0 R (HD.2556) 3064 0 R (HD.2557) 3065 0 R (HD.2558) 3066 0 R (HD.2559) 3071 0 R (HD.256) 476 0 R (HD.2560) 3072 0 R (HD.2561) 3073 0 R (HD.2562) 3074 0 R ] /Limits [ (HD.2534) (HD.2562) ] >>
+<< /Names [ (HD.1588) 1988 0 R (HD.1589) 1989 0 R (HD.159) 369 0 R (HD.1590) 1990 0 R (HD.1591) 1991 0 R (HD.1592) 1992 0 R (HD.1593) 1993 0 R (HD.1594) 1994 0 R (HD.1595) 1995 0 R (HD.1596) 1996 0 R (HD.1597) 1997 0 R (HD.1598) 1998 0 R (HD.1599) 1999 0 R (HD.16) 211 0 R (HD.160) 370 0 R (HD.1600) 2000 0 R (HD.1601) 2001 0 R (HD.1602) 2002 0 R (HD.1603) 2003 0 R (HD.1604) 2004 0 R (HD.1605) 2005 0 R (HD.1606) 2010 0 R (HD.1607) 2011 0 R (HD.1608) 2012 0 R (HD.1609) 2013 0 R (HD.161) 371 0 R (HD.1610) 2014 0 R (HD.1611) 2015 0 R (HD.1612) 2016 0 R (HD.1613) 2017 0 R (HD.1614) 2018 0 R (HD.1615) 2019 0 R ] /Limits [ (HD.1588) (HD.1615) ] >>
endobj
11770 0 obj
-<< /Names [ (HD.2563) 3075 0 R (HD.2564) 3076 0 R (HD.2565) 3077 0 R (HD.2566) 3078 0 R (HD.2567) 3079 0 R (HD.2568) 3080 0 R (HD.2569) 3081 0 R (HD.257) 477 0 R (HD.2570) 3082 0 R (HD.2571) 3083 0 R (HD.2572) 3084 0 R (HD.2573) 3085 0 R (HD.2574) 3086 0 R (HD.2575) 3087 0 R (HD.2576) 3088 0 R (HD.2577) 3089 0 R (HD.2578) 3090 0 R (HD.2579) 3091 0 R (HD.258) 478 0 R (HD.2580) 3092 0 R (HD.2581) 3093 0 R (HD.2582) 3094 0 R (HD.2583) 3095 0 R (HD.2584) 3096 0 R (HD.2585) 3097 0 R (HD.2586) 3098 0 R (HD.2587) 3099 0 R (HD.2588) 3100 0 R (HD.2589) 3101 0 R (HD.259) 479 0 R (HD.2590) 3102 0 R (HD.2591) 3103 0 R ] /Limits [ (HD.2563) (HD.2591) ] >>
+<< /Names [ (HD.1616) 2020 0 R (HD.1617) 2021 0 R (HD.1618) 2022 0 R (HD.1619) 2023 0 R (HD.162) 372 0 R (HD.1620) 2024 0 R (HD.1621) 2025 0 R (HD.1622) 2026 0 R (HD.1623) 2027 0 R (HD.1624) 2028 0 R (HD.1625) 2029 0 R (HD.1626) 2030 0 R (HD.1627) 2031 0 R (HD.1628) 2032 0 R (HD.1629) 2033 0 R (HD.163) 373 0 R (HD.1630) 2034 0 R (HD.1631) 2035 0 R (HD.1632) 2036 0 R (HD.1633) 2037 0 R (HD.1634) 2038 0 R (HD.1635) 2039 0 R (HD.1636) 2040 0 R (HD.1637) 2041 0 R (HD.1638) 2042 0 R (HD.1639) 2043 0 R (HD.164) 374 0 R (HD.1640) 2044 0 R (HD.1641) 2045 0 R (HD.1642) 2046 0 R (HD.1643) 2047 0 R (HD.1644) 2048 0 R ] /Limits [ (HD.1616) (HD.1644) ] >>
endobj
11771 0 obj
-<< /Names [ (HD.2592) 3104 0 R (HD.2593) 3105 0 R (HD.2594) 3106 0 R (HD.2595) 3107 0 R (HD.2596) 3108 0 R (HD.2597) 3109 0 R (HD.2598) 3110 0 R (HD.2599) 3111 0 R (HD.26) 221 0 R (HD.260) 487 0 R (HD.2600) 3112 0 R (HD.2601) 3113 0 R (HD.2602) 3114 0 R (HD.2603) 3115 0 R (HD.2604) 3116 0 R (HD.2605) 3117 0 R (HD.2606) 3118 0 R (HD.2607) 3119 0 R (HD.2608) 3120 0 R (HD.2609) 3121 0 R (HD.261) 488 0 R (HD.2610) 3126 0 R (HD.2611) 3127 0 R (HD.2612) 3128 0 R (HD.2613) 3129 0 R (HD.2614) 3130 0 R (HD.2615) 3131 0 R (HD.2616) 3132 0 R (HD.2617) 3133 0 R (HD.2618) 3134 0 R (HD.2619) 3135 0 R (HD.262) 489 0 R ] /Limits [ (HD.2592) (HD.262) ] >>
+<< /Names [ (HD.1645) 2049 0 R (HD.1646) 2050 0 R (HD.1647) 2051 0 R (HD.1648) 2052 0 R (HD.1649) 2053 0 R (HD.165) 375 0 R (HD.1650) 2054 0 R (HD.1651) 2055 0 R (HD.1652) 2056 0 R (HD.1653) 2057 0 R (HD.1654) 2058 0 R (HD.1655) 2059 0 R (HD.1656) 2060 0 R (HD.1657) 2065 0 R (HD.1658) 2066 0 R (HD.1659) 2067 0 R (HD.166) 376 0 R (HD.1660) 2068 0 R (HD.1661) 2069 0 R (HD.1662) 2070 0 R (HD.1663) 2071 0 R (HD.1664) 2072 0 R (HD.1665) 2073 0 R (HD.1666) 2074 0 R (HD.1667) 2075 0 R (HD.1668) 2076 0 R (HD.1669) 2077 0 R (HD.167) 377 0 R (HD.1670) 2078 0 R (HD.1671) 2079 0 R (HD.1672) 2080 0 R (HD.1673) 2081 0 R ] /Limits [ (HD.1645) (HD.1673) ] >>
endobj
11772 0 obj
-<< /Names [ (HD.2620) 3136 0 R (HD.2621) 3137 0 R (HD.2622) 3138 0 R (HD.2623) 3139 0 R (HD.2624) 3140 0 R (HD.2625) 3141 0 R (HD.2626) 3142 0 R (HD.2627) 3143 0 R (HD.2628) 3144 0 R (HD.2629) 3145 0 R (HD.263) 490 0 R (HD.2630) 3146 0 R (HD.2631) 3147 0 R (HD.2632) 3148 0 R (HD.2633) 3149 0 R (HD.2634) 3150 0 R (HD.2635) 3151 0 R (HD.2636) 3152 0 R (HD.2637) 3153 0 R (HD.2638) 3154 0 R (HD.2639) 3155 0 R (HD.264) 491 0 R (HD.2640) 3156 0 R (HD.2641) 3157 0 R (HD.2642) 3158 0 R (HD.2643) 3159 0 R (HD.2644) 3160 0 R (HD.2645) 3161 0 R (HD.2646) 3162 0 R (HD.2647) 3163 0 R (HD.2648) 3164 0 R (HD.2649) 3165 0 R ] /Limits [ (HD.2620) (HD.2649) ] >>
+<< /Names [ (HD.1674) 2082 0 R (HD.1675) 2083 0 R (HD.1676) 2084 0 R (HD.1677) 2085 0 R (HD.1678) 2086 0 R (HD.1679) 2087 0 R (HD.168) 378 0 R (HD.1680) 2088 0 R (HD.1681) 2089 0 R (HD.1682) 2090 0 R (HD.1683) 2091 0 R (HD.1684) 2092 0 R (HD.1685) 2093 0 R (HD.1686) 2094 0 R (HD.1687) 2095 0 R (HD.1688) 2096 0 R (HD.1689) 2097 0 R (HD.169) 379 0 R (HD.1690) 2102 0 R (HD.1691) 2103 0 R (HD.1692) 2104 0 R (HD.1693) 2105 0 R (HD.1694) 2106 0 R (HD.1695) 2107 0 R (HD.1696) 2108 0 R (HD.1697) 2109 0 R (HD.1698) 2110 0 R (HD.1699) 2111 0 R (HD.17) 212 0 R (HD.170) 380 0 R (HD.1700) 2112 0 R (HD.1701) 2113 0 R ] /Limits [ (HD.1674) (HD.1701) ] >>
endobj
11773 0 obj
-<< /Names [ (HD.265) 492 0 R (HD.2650) 3166 0 R (HD.2651) 3167 0 R (HD.2652) 3168 0 R (HD.2653) 3169 0 R (HD.2654) 3170 0 R (HD.2655) 3171 0 R (HD.2656) 3172 0 R (HD.2657) 3173 0 R (HD.2658) 3174 0 R (HD.2659) 3175 0 R (HD.266) 493 0 R (HD.2660) 3176 0 R (HD.2661) 3177 0 R (HD.2662) 3178 0 R (HD.2663) 3183 0 R (HD.2664) 3184 0 R (HD.2665) 3185 0 R (HD.2666) 3186 0 R (HD.2667) 3187 0 R (HD.2668) 3188 0 R (HD.2669) 3189 0 R (HD.267) 494 0 R (HD.2670) 3190 0 R (HD.2671) 3191 0 R (HD.2672) 3192 0 R (HD.2673) 3193 0 R (HD.2674) 3194 0 R (HD.2675) 3195 0 R (HD.2676) 3196 0 R (HD.2677) 3197 0 R (HD.2678) 3198 0 R ] /Limits [ (HD.265) (HD.2678) ] >>
+<< /Names [ (HD.1702) 2114 0 R (HD.1703) 2115 0 R (HD.1704) 2116 0 R (HD.1705) 2117 0 R (HD.1706) 2118 0 R (HD.1707) 2119 0 R (HD.1708) 2120 0 R (HD.1709) 2121 0 R (HD.171) 381 0 R (HD.1710) 2122 0 R (HD.1711) 2123 0 R (HD.1712) 2124 0 R (HD.1713) 2125 0 R (HD.1714) 2126 0 R (HD.1715) 2127 0 R (HD.1716) 2128 0 R (HD.1717) 2129 0 R (HD.1718) 2130 0 R (HD.1719) 2135 0 R (HD.172) 382 0 R (HD.1720) 2136 0 R (HD.1721) 2137 0 R (HD.1722) 2138 0 R (HD.1723) 2139 0 R (HD.1724) 2140 0 R (HD.1725) 2141 0 R (HD.1726) 2142 0 R (HD.1727) 2143 0 R (HD.1728) 2144 0 R (HD.1729) 2145 0 R (HD.173) 383 0 R (HD.1730) 2146 0 R ] /Limits [ (HD.1702) (HD.1730) ] >>
endobj
11774 0 obj
-<< /Names [ (HD.2679) 3199 0 R (HD.268) 495 0 R (HD.2680) 3200 0 R (HD.2681) 3201 0 R (HD.2682) 3202 0 R (HD.2683) 3203 0 R (HD.2684) 3204 0 R (HD.2685) 3205 0 R (HD.2686) 3206 0 R (HD.2687) 3207 0 R (HD.2688) 3208 0 R (HD.2689) 3209 0 R (HD.269) 496 0 R (HD.2690) 3210 0 R (HD.2691) 3211 0 R (HD.2692) 3212 0 R (HD.2693) 3213 0 R (HD.2694) 3214 0 R (HD.2695) 3215 0 R (HD.2696) 3216 0 R (HD.2697) 3217 0 R (HD.2698) 3218 0 R (HD.2699) 3219 0 R (HD.27) 222 0 R (HD.270) 497 0 R (HD.2700) 3220 0 R (HD.2701) 3221 0 R (HD.2702) 3222 0 R (HD.2703) 3223 0 R (HD.2704) 3224 0 R (HD.2705) 3225 0 R (HD.2706) 3226 0 R ] /Limits [ (HD.2679) (HD.2706) ] >>
+<< /Names [ (HD.1731) 2147 0 R (HD.1732) 2148 0 R (HD.1733) 2149 0 R (HD.1734) 2150 0 R (HD.1735) 2151 0 R (HD.1736) 2152 0 R (HD.1737) 2153 0 R (HD.1738) 2154 0 R (HD.1739) 2155 0 R (HD.174) 388 0 R (HD.1740) 2156 0 R (HD.1741) 2157 0 R (HD.1742) 2158 0 R (HD.1743) 2159 0 R (HD.1744) 2160 0 R (HD.1745) 2161 0 R (HD.1746) 2162 0 R (HD.1747) 2163 0 R (HD.1748) 2164 0 R (HD.1749) 2165 0 R (HD.175) 389 0 R (HD.1750) 2166 0 R (HD.1751) 2167 0 R (HD.1752) 2168 0 R (HD.1753) 2173 0 R (HD.1754) 2174 0 R (HD.1755) 2175 0 R (HD.1756) 2176 0 R (HD.1757) 2177 0 R (HD.1758) 2178 0 R (HD.1759) 2179 0 R (HD.176) 390 0 R ] /Limits [ (HD.1731) (HD.176) ] >>
endobj
11775 0 obj
-<< /Names [ (HD.2707) 3227 0 R (HD.2708) 3228 0 R (HD.2709) 3229 0 R (HD.271) 498 0 R (HD.2710) 3230 0 R (HD.2711) 3231 0 R (HD.2712) 3232 0 R (HD.2713) 3233 0 R (HD.2714) 3234 0 R (HD.2715) 3235 0 R (HD.2716) 3236 0 R (HD.2717) 3237 0 R (HD.2718) 3238 0 R (HD.2719) 3243 0 R (HD.272) 499 0 R (HD.2720) 3244 0 R (HD.2721) 3245 0 R (HD.2722) 3246 0 R (HD.2723) 3247 0 R (HD.2724) 3248 0 R (HD.2725) 3249 0 R (HD.2726) 3250 0 R (HD.2727) 3251 0 R (HD.2728) 3252 0 R (HD.2729) 3253 0 R (HD.273) 500 0 R (HD.2730) 3254 0 R (HD.2731) 3255 0 R (HD.2732) 3256 0 R (HD.2733) 3257 0 R (HD.2734) 3258 0 R (HD.2735) 3259 0 R ] /Limits [ (HD.2707) (HD.2735) ] >>
+<< /Names [ (HD.1760) 2180 0 R (HD.1761) 2181 0 R (HD.1762) 2182 0 R (HD.1763) 2183 0 R (HD.1764) 2184 0 R (HD.1765) 2185 0 R (HD.1766) 2186 0 R (HD.1767) 2187 0 R (HD.1768) 2188 0 R (HD.1769) 2189 0 R (HD.177) 391 0 R (HD.1770) 2190 0 R (HD.1771) 2191 0 R (HD.1772) 2192 0 R (HD.1773) 2193 0 R (HD.1774) 2194 0 R (HD.1775) 2195 0 R (HD.1776) 2196 0 R (HD.1777) 2197 0 R (HD.1778) 2198 0 R (HD.1779) 2199 0 R (HD.178) 392 0 R (HD.1780) 2200 0 R (HD.1781) 2201 0 R (HD.1782) 2202 0 R (HD.1783) 2203 0 R (HD.1784) 2204 0 R (HD.1785) 2205 0 R (HD.1786) 2206 0 R (HD.1787) 2207 0 R (HD.1788) 2208 0 R (HD.1789) 2209 0 R ] /Limits [ (HD.1760) (HD.1789) ] >>
endobj
11776 0 obj
-<< /Names [ (HD.2736) 3260 0 R (HD.2737) 3261 0 R (HD.2738) 3262 0 R (HD.2739) 3263 0 R (HD.274) 501 0 R (HD.2740) 3264 0 R (HD.2741) 3265 0 R (HD.2742) 3266 0 R (HD.2743) 3267 0 R (HD.2744) 3268 0 R (HD.2745) 3269 0 R (HD.2746) 3270 0 R (HD.2747) 3271 0 R (HD.2748) 3272 0 R (HD.2749) 3273 0 R (HD.275) 502 0 R (HD.2750) 3274 0 R (HD.2751) 3275 0 R (HD.2752) 3276 0 R (HD.2753) 3277 0 R (HD.2754) 3278 0 R (HD.2755) 3279 0 R (HD.2756) 3280 0 R (HD.2757) 3281 0 R (HD.2758) 3282 0 R (HD.2759) 3283 0 R (HD.276) 503 0 R (HD.2760) 3284 0 R (HD.2761) 3285 0 R (HD.2762) 3286 0 R (HD.2763) 3287 0 R (HD.2764) 3288 0 R ] /Limits [ (HD.2736) (HD.2764) ] >>
+<< /Names [ (HD.179) 393 0 R (HD.1790) 2210 0 R (HD.1791) 2211 0 R (HD.1792) 2216 0 R (HD.1793) 2217 0 R (HD.1794) 2218 0 R (HD.1795) 2219 0 R (HD.1796) 2220 0 R (HD.1797) 2221 0 R (HD.1798) 2222 0 R (HD.1799) 2223 0 R (HD.18) 213 0 R (HD.180) 394 0 R (HD.1800) 2224 0 R (HD.1801) 2225 0 R (HD.1802) 2226 0 R (HD.1803) 2227 0 R (HD.1804) 2228 0 R (HD.1805) 2229 0 R (HD.1806) 2230 0 R (HD.1807) 2231 0 R (HD.1808) 2232 0 R (HD.1809) 2233 0 R (HD.181) 395 0 R (HD.1810) 2234 0 R (HD.1811) 2235 0 R (HD.1812) 2236 0 R (HD.1813) 2237 0 R (HD.1814) 2238 0 R (HD.1815) 2239 0 R (HD.1816) 2240 0 R (HD.1817) 2241 0 R ] /Limits [ (HD.179) (HD.1817) ] >>
endobj
11777 0 obj
-<< /Names [ (HD.2765) 3289 0 R (HD.2766) 3290 0 R (HD.2767) 3291 0 R (HD.2768) 3292 0 R (HD.2769) 3293 0 R (HD.277) 504 0 R (HD.2770) 3294 0 R (HD.2771) 3295 0 R (HD.2772) 3296 0 R (HD.2773) 3297 0 R (HD.2774) 3303 0 R (HD.2775) 3304 0 R (HD.2776) 3305 0 R (HD.2777) 3306 0 R (HD.2778) 3307 0 R (HD.2779) 3308 0 R (HD.278) 505 0 R (HD.2780) 3309 0 R (HD.2781) 3310 0 R (HD.2782) 3311 0 R (HD.2783) 3312 0 R (HD.2784) 3313 0 R (HD.2785) 3314 0 R (HD.2786) 3315 0 R (HD.2787) 3316 0 R (HD.2788) 3317 0 R (HD.2789) 3318 0 R (HD.279) 506 0 R (HD.2790) 3319 0 R (HD.2791) 3320 0 R (HD.2792) 3321 0 R (HD.2793) 3322 0 R ] /Limits [ (HD.2765) (HD.2793) ] >>
+<< /Names [ (HD.1818) 2242 0 R (HD.1819) 2243 0 R (HD.182) 396 0 R (HD.1820) 2244 0 R (HD.1821) 2245 0 R (HD.1822) 2246 0 R (HD.1823) 2247 0 R (HD.1824) 2248 0 R (HD.1825) 2249 0 R (HD.1826) 2250 0 R (HD.1827) 2251 0 R (HD.1828) 2252 0 R (HD.1829) 2253 0 R (HD.183) 397 0 R (HD.1830) 2259 0 R (HD.1831) 2260 0 R (HD.1832) 2261 0 R (HD.1833) 2262 0 R (HD.1834) 2263 0 R (HD.1835) 2264 0 R (HD.1836) 2265 0 R (HD.1837) 2266 0 R (HD.1838) 2267 0 R (HD.1839) 2268 0 R (HD.184) 398 0 R (HD.1840) 2269 0 R (HD.1841) 2270 0 R (HD.1842) 2271 0 R (HD.1843) 2272 0 R (HD.1844) 2273 0 R (HD.1845) 2274 0 R (HD.1846) 2275 0 R ] /Limits [ (HD.1818) (HD.1846) ] >>
endobj
11778 0 obj
-<< /Names [ (HD.2794) 3323 0 R (HD.2795) 3324 0 R (HD.2796) 3325 0 R (HD.2797) 3326 0 R (HD.2798) 3327 0 R (HD.2799) 3328 0 R (HD.28) 223 0 R (HD.280) 507 0 R (HD.2800) 3329 0 R (HD.2801) 3330 0 R (HD.2802) 3331 0 R (HD.2803) 3332 0 R (HD.2804) 3333 0 R (HD.2805) 3338 0 R (HD.2806) 3339 0 R (HD.2807) 3340 0 R (HD.2808) 3341 0 R (HD.2809) 3342 0 R (HD.281) 508 0 R (HD.2810) 3343 0 R (HD.2811) 3344 0 R (HD.2812) 3345 0 R (HD.2813) 3346 0 R (HD.2814) 3347 0 R (HD.2815) 3348 0 R (HD.2816) 3349 0 R (HD.2817) 3350 0 R (HD.2818) 3351 0 R (HD.2819) 3352 0 R (HD.282) 509 0 R (HD.2820) 3353 0 R (HD.2821) 3354 0 R ] /Limits [ (HD.2794) (HD.2821) ] >>
+<< /Names [ (HD.1847) 2276 0 R (HD.1848) 2277 0 R (HD.1849) 2278 0 R (HD.185) 399 0 R (HD.1850) 2279 0 R (HD.1851) 2280 0 R (HD.1852) 2281 0 R (HD.1853) 2282 0 R (HD.1854) 2283 0 R (HD.1855) 2284 0 R (HD.1856) 2285 0 R (HD.1857) 2286 0 R (HD.1858) 2287 0 R (HD.1859) 2288 0 R (HD.186) 400 0 R (HD.1860) 2289 0 R (HD.1861) 2290 0 R (HD.1862) 2291 0 R (HD.1863) 2292 0 R (HD.1864) 2293 0 R (HD.1865) 2294 0 R (HD.1866) 2295 0 R (HD.1867) 2296 0 R (HD.1868) 2297 0 R (HD.1869) 2298 0 R (HD.187) 401 0 R (HD.1870) 2299 0 R (HD.1871) 2300 0 R (HD.1872) 2301 0 R (HD.1873) 2302 0 R (HD.1874) 2303 0 R (HD.1875) 2304 0 R ] /Limits [ (HD.1847) (HD.1875) ] >>
endobj
11779 0 obj
-<< /Names [ (HD.2822) 3355 0 R (HD.2823) 3356 0 R (HD.2824) 3357 0 R (HD.2825) 3358 0 R (HD.2826) 3359 0 R (HD.2827) 3360 0 R (HD.2828) 3361 0 R (HD.2829) 3362 0 R (HD.283) 510 0 R (HD.2830) 3363 0 R (HD.2831) 3364 0 R (HD.2832) 3365 0 R (HD.2833) 3366 0 R (HD.2834) 3367 0 R (HD.2835) 3368 0 R (HD.2836) 3369 0 R (HD.2837) 3370 0 R (HD.2838) 3371 0 R (HD.2839) 3372 0 R (HD.284) 511 0 R (HD.2840) 3373 0 R (HD.2841) 3374 0 R (HD.2842) 3375 0 R (HD.2843) 3376 0 R (HD.2844) 3377 0 R (HD.2845) 3378 0 R (HD.2846) 3379 0 R (HD.2847) 3380 0 R (HD.2848) 3385 0 R (HD.2849) 3386 0 R (HD.285) 512 0 R (HD.2850) 3387 0 R ] /Limits [ (HD.2822) (HD.2850) ] >>
+<< /Names [ (HD.1876) 2305 0 R (HD.1877) 2306 0 R (HD.1878) 2307 0 R (HD.1879) 2308 0 R (HD.188) 402 0 R (HD.1880) 2309 0 R (HD.1881) 2310 0 R (HD.1882) 2316 0 R (HD.1883) 2317 0 R (HD.1884) 2318 0 R (HD.1885) 2319 0 R (HD.1886) 2320 0 R (HD.1887) 2321 0 R (HD.1888) 2322 0 R (HD.1889) 2323 0 R (HD.189) 403 0 R (HD.1890) 2324 0 R (HD.1891) 2325 0 R (HD.1892) 2326 0 R (HD.1893) 2327 0 R (HD.1894) 2328 0 R (HD.1895) 2329 0 R (HD.1896) 2330 0 R (HD.1897) 2331 0 R (HD.1898) 2332 0 R (HD.1899) 2333 0 R (HD.19) 214 0 R (HD.190) 404 0 R (HD.1900) 2334 0 R (HD.1901) 2335 0 R (HD.1902) 2336 0 R (HD.1903) 2337 0 R ] /Limits [ (HD.1876) (HD.1903) ] >>
endobj
11780 0 obj
-<< /Names [ (HD.2851) 3388 0 R (HD.2852) 3389 0 R (HD.2853) 3390 0 R (HD.2854) 3391 0 R (HD.2855) 3392 0 R (HD.2856) 3393 0 R (HD.2857) 3394 0 R (HD.2858) 3395 0 R (HD.2859) 3396 0 R (HD.286) 513 0 R (HD.2860) 3397 0 R (HD.2861) 3398 0 R (HD.2862) 3399 0 R (HD.2863) 3400 0 R (HD.2864) 3401 0 R (HD.2865) 3402 0 R (HD.2866) 3403 0 R (HD.2867) 3404 0 R (HD.2868) 3405 0 R (HD.2869) 3406 0 R (HD.287) 514 0 R (HD.2870) 3407 0 R (HD.2871) 3408 0 R (HD.2872) 3409 0 R (HD.2873) 3410 0 R (HD.2874) 3411 0 R (HD.2875) 3412 0 R (HD.2876) 3413 0 R (HD.2877) 3414 0 R (HD.2878) 3415 0 R (HD.2879) 3416 0 R (HD.288) 515 0 R ] /Limits [ (HD.2851) (HD.288) ] >>
+<< /Names [ (HD.1904) 2338 0 R (HD.1905) 2339 0 R (HD.1906) 2340 0 R (HD.1907) 2341 0 R (HD.1908) 2342 0 R (HD.1909) 2343 0 R (HD.191) 405 0 R (HD.1910) 2344 0 R (HD.1911) 2345 0 R (HD.1912) 2346 0 R (HD.1913) 2347 0 R (HD.1914) 2348 0 R (HD.1915) 2349 0 R (HD.1916) 2350 0 R (HD.1917) 2351 0 R (HD.1918) 2352 0 R (HD.1919) 2353 0 R (HD.192) 406 0 R (HD.1920) 2354 0 R (HD.1921) 2355 0 R (HD.1922) 2356 0 R (HD.1923) 2357 0 R (HD.1924) 2358 0 R (HD.1925) 2359 0 R (HD.1926) 2360 0 R (HD.1927) 2361 0 R (HD.1928) 2362 0 R (HD.1929) 2363 0 R (HD.193) 407 0 R (HD.1930) 2371 0 R (HD.1931) 2372 0 R (HD.1932) 2373 0 R ] /Limits [ (HD.1904) (HD.1932) ] >>
endobj
11781 0 obj
-<< /Names [ (HD.2880) 3417 0 R (HD.2881) 3418 0 R (HD.2882) 3419 0 R (HD.2883) 3420 0 R (HD.2884) 3421 0 R (HD.2885) 3422 0 R (HD.2886) 3423 0 R (HD.2887) 3424 0 R (HD.2888) 3425 0 R (HD.2889) 3430 0 R (HD.289) 516 0 R (HD.2890) 3431 0 R (HD.2891) 3432 0 R (HD.2892) 3433 0 R (HD.2893) 3434 0 R (HD.2894) 3435 0 R (HD.2895) 3436 0 R (HD.2896) 3437 0 R (HD.2897) 3438 0 R (HD.2898) 3439 0 R (HD.2899) 3440 0 R (HD.29) 224 0 R (HD.290) 517 0 R (HD.2900) 3441 0 R (HD.2901) 3442 0 R (HD.2902) 3443 0 R (HD.2903) 3444 0 R (HD.2904) 3445 0 R (HD.2905) 3446 0 R (HD.2906) 3447 0 R (HD.2907) 3448 0 R (HD.2908) 3449 0 R ] /Limits [ (HD.2880) (HD.2908) ] >>
+<< /Names [ (HD.1933) 2374 0 R (HD.1934) 2375 0 R (HD.1935) 2376 0 R (HD.1936) 2377 0 R (HD.1937) 2378 0 R (HD.1938) 2379 0 R (HD.1939) 2380 0 R (HD.194) 408 0 R (HD.1940) 2381 0 R (HD.1941) 2382 0 R (HD.1942) 2383 0 R (HD.1943) 2384 0 R (HD.1944) 2385 0 R (HD.1945) 2386 0 R (HD.1946) 2387 0 R (HD.1947) 2388 0 R (HD.1948) 2389 0 R (HD.1949) 2390 0 R (HD.195) 409 0 R (HD.1950) 2391 0 R (HD.1951) 2392 0 R (HD.1952) 2393 0 R (HD.1953) 2394 0 R (HD.1954) 2395 0 R (HD.1955) 2396 0 R (HD.1956) 2397 0 R (HD.1957) 2398 0 R (HD.1958) 2399 0 R (HD.1959) 2400 0 R (HD.196) 410 0 R (HD.1960) 2401 0 R (HD.1961) 2402 0 R ] /Limits [ (HD.1933) (HD.1961) ] >>
endobj
11782 0 obj
-<< /Names [ (HD.2909) 3450 0 R (HD.291) 518 0 R (HD.2910) 3451 0 R (HD.2911) 3452 0 R (HD.2912) 3453 0 R (HD.2913) 3454 0 R (HD.2914) 3455 0 R (HD.2915) 3456 0 R (HD.2916) 3457 0 R (HD.2917) 3458 0 R (HD.2918) 3459 0 R (HD.2919) 3460 0 R (HD.292) 519 0 R (HD.2920) 3461 0 R (HD.2921) 3462 0 R (HD.2922) 3463 0 R (HD.2923) 3464 0 R (HD.2924) 3465 0 R (HD.2925) 3466 0 R (HD.2926) 3467 0 R (HD.2927) 3468 0 R (HD.2928) 3469 0 R (HD.2929) 3470 0 R (HD.293) 520 0 R (HD.2930) 3471 0 R (HD.2931) 3472 0 R (HD.2932) 3473 0 R (HD.2933) 3474 0 R (HD.2934) 3475 0 R (HD.2935) 3476 0 R (HD.2936) 3477 0 R (HD.2937) 3478 0 R ] /Limits [ (HD.2909) (HD.2937) ] >>
+<< /Names [ (HD.1962) 2403 0 R (HD.1963) 2404 0 R (HD.1964) 2405 0 R (HD.1965) 2412 0 R (HD.1966) 2413 0 R (HD.1967) 2414 0 R (HD.1968) 2415 0 R (HD.1969) 2416 0 R (HD.197) 411 0 R (HD.1970) 2417 0 R (HD.1971) 2418 0 R (HD.1972) 2419 0 R (HD.1973) 2420 0 R (HD.1974) 2421 0 R (HD.1975) 2422 0 R (HD.1976) 2423 0 R (HD.1977) 2424 0 R (HD.1978) 2425 0 R (HD.1979) 2426 0 R (HD.198) 412 0 R (HD.1980) 2427 0 R (HD.1981) 2428 0 R (HD.1982) 2429 0 R (HD.1983) 2430 0 R (HD.1984) 2431 0 R (HD.1985) 2432 0 R (HD.1986) 2433 0 R (HD.1987) 2434 0 R (HD.1988) 2435 0 R (HD.1989) 2436 0 R (HD.199) 413 0 R (HD.1990) 2437 0 R ] /Limits [ (HD.1962) (HD.1990) ] >>
endobj
11783 0 obj
-<< /Names [ (HD.2938) 3479 0 R (HD.2939) 3480 0 R (HD.294) 521 0 R (HD.2940) 3481 0 R (HD.2941) 3486 0 R (HD.2942) 3487 0 R (HD.2943) 3488 0 R (HD.2944) 3489 0 R (HD.2945) 3490 0 R (HD.2946) 3491 0 R (HD.2947) 3492 0 R (HD.2948) 3493 0 R (HD.2949) 3494 0 R (HD.295) 522 0 R (HD.2950) 3495 0 R (HD.2951) 3496 0 R (HD.2952) 3497 0 R (HD.2953) 3498 0 R (HD.2954) 3499 0 R (HD.2955) 3500 0 R (HD.2956) 3501 0 R (HD.2957) 3502 0 R (HD.2958) 3503 0 R (HD.2959) 3504 0 R (HD.296) 523 0 R (HD.2960) 3505 0 R (HD.2961) 3506 0 R (HD.2962) 3507 0 R (HD.2963) 3508 0 R (HD.2964) 3509 0 R (HD.2965) 3510 0 R (HD.2966) 3511 0 R ] /Limits [ (HD.2938) (HD.2966) ] >>
+<< /Names [ (HD.1991) 2438 0 R (HD.1992) 2439 0 R (HD.1993) 2440 0 R (HD.1994) 2441 0 R (HD.1995) 2442 0 R (HD.1996) 2443 0 R (HD.1997) 2444 0 R (HD.1998) 2445 0 R (HD.1999) 2446 0 R (HD.2) 190 0 R (HD.20) 215 0 R (HD.200) 414 0 R (HD.2000) 2447 0 R (HD.2001) 2448 0 R (HD.2002) 2449 0 R (HD.2003) 2450 0 R (HD.2004) 2451 0 R (HD.2005) 2452 0 R (HD.2006) 2453 0 R (HD.2007) 2454 0 R (HD.2008) 2460 0 R (HD.2009) 2461 0 R (HD.201) 415 0 R (HD.2010) 2462 0 R (HD.2011) 2463 0 R (HD.2012) 2464 0 R (HD.2013) 2465 0 R (HD.2014) 2466 0 R (HD.2015) 2467 0 R (HD.2016) 2468 0 R (HD.2017) 2469 0 R (HD.2018) 2470 0 R ] /Limits [ (HD.1991) (HD.2018) ] >>
endobj
11784 0 obj
-<< /Names [ (HD.2967) 3512 0 R (HD.2968) 3513 0 R (HD.2969) 3514 0 R (HD.297) 524 0 R (HD.2970) 3515 0 R (HD.2971) 3516 0 R (HD.2972) 3517 0 R (HD.2973) 3518 0 R (HD.2974) 3519 0 R (HD.2975) 3520 0 R (HD.2976) 3521 0 R (HD.2977) 3522 0 R (HD.2978) 3523 0 R (HD.2979) 3524 0 R (HD.298) 525 0 R (HD.2980) 3525 0 R (HD.2981) 3526 0 R (HD.2982) 3527 0 R (HD.2983) 3528 0 R (HD.2984) 3529 0 R (HD.2985) 3530 0 R (HD.2986) 3531 0 R (HD.2987) 3532 0 R (HD.2988) 3533 0 R (HD.2989) 3534 0 R (HD.299) 526 0 R (HD.2990) 3535 0 R (HD.2991) 3536 0 R (HD.2992) 3537 0 R (HD.2993) 3542 0 R (HD.2994) 3543 0 R (HD.2995) 3544 0 R ] /Limits [ (HD.2967) (HD.2995) ] >>
+<< /Names [ (HD.2019) 2471 0 R (HD.202) 416 0 R (HD.2020) 2472 0 R (HD.2021) 2473 0 R (HD.2022) 2474 0 R (HD.2023) 2475 0 R (HD.2024) 2476 0 R (HD.2025) 2477 0 R (HD.2026) 2478 0 R (HD.2027) 2479 0 R (HD.2028) 2480 0 R (HD.2029) 2481 0 R (HD.203) 417 0 R (HD.2030) 2482 0 R (HD.2031) 2483 0 R (HD.2032) 2484 0 R (HD.2033) 2485 0 R (HD.2034) 2486 0 R (HD.2035) 2487 0 R (HD.2036) 2488 0 R (HD.2037) 2489 0 R (HD.2038) 2490 0 R (HD.2039) 2491 0 R (HD.204) 418 0 R (HD.2040) 2492 0 R (HD.2041) 2493 0 R (HD.2042) 2494 0 R (HD.2043) 2495 0 R (HD.2044) 2496 0 R (HD.2045) 2497 0 R (HD.2046) 2498 0 R (HD.2047) 2499 0 R ] /Limits [ (HD.2019) (HD.2047) ] >>
endobj
11785 0 obj
-<< /Names [ (HD.2996) 3545 0 R (HD.2997) 3546 0 R (HD.2998) 3547 0 R (HD.2999) 3548 0 R (HD.3) 191 0 R (HD.30) 225 0 R (HD.300) 527 0 R (HD.3000) 3549 0 R (HD.3001) 3550 0 R (HD.3002) 3551 0 R (HD.3003) 3552 0 R (HD.3004) 3553 0 R (HD.3005) 3554 0 R (HD.3006) 3555 0 R (HD.3007) 3556 0 R (HD.3008) 3557 0 R (HD.3009) 3558 0 R (HD.301) 528 0 R (HD.3010) 3559 0 R (HD.3011) 3560 0 R (HD.3012) 3561 0 R (HD.3013) 3562 0 R (HD.3014) 3563 0 R (HD.3015) 3564 0 R (HD.3016) 3565 0 R (HD.3017) 3566 0 R (HD.3018) 3567 0 R (HD.3019) 3568 0 R (HD.302) 529 0 R (HD.3020) 3569 0 R (HD.3021) 3570 0 R (HD.3022) 3571 0 R ] /Limits [ (HD.2996) (HD.3022) ] >>
+<< /Names [ (HD.2048) 2500 0 R (HD.2049) 2501 0 R (HD.205) 419 0 R (HD.2050) 2502 0 R (HD.2051) 2503 0 R (HD.2052) 2504 0 R (HD.2053) 2505 0 R (HD.2054) 2506 0 R (HD.2055) 2507 0 R (HD.2056) 2516 0 R (HD.2057) 2517 0 R (HD.2058) 2518 0 R (HD.2059) 2519 0 R (HD.206) 420 0 R (HD.2060) 2520 0 R (HD.2061) 2521 0 R (HD.2062) 2522 0 R (HD.2063) 2523 0 R (HD.2064) 2524 0 R (HD.2065) 2525 0 R (HD.2066) 2526 0 R (HD.2067) 2527 0 R (HD.2068) 2528 0 R (HD.2069) 2529 0 R (HD.207) 421 0 R (HD.2070) 2530 0 R (HD.2071) 2531 0 R (HD.2072) 2532 0 R (HD.2073) 2533 0 R (HD.2074) 2534 0 R (HD.2075) 2535 0 R (HD.2076) 2536 0 R ] /Limits [ (HD.2048) (HD.2076) ] >>
endobj
11786 0 obj
-<< /Names [ (HD.3023) 3572 0 R (HD.3024) 3573 0 R (HD.3025) 3574 0 R (HD.3026) 3575 0 R (HD.3027) 3576 0 R (HD.3028) 3577 0 R (HD.3029) 3578 0 R (HD.303) 530 0 R (HD.3030) 3579 0 R (HD.3031) 3580 0 R (HD.3032) 3581 0 R (HD.3033) 3582 0 R (HD.3034) 3583 0 R (HD.3035) 3584 0 R (HD.3036) 3585 0 R (HD.3037) 3586 0 R (HD.3038) 3587 0 R (HD.3039) 3588 0 R (HD.304) 535 0 R (HD.3040) 3589 0 R (HD.3041) 3590 0 R (HD.3042) 3595 0 R (HD.3043) 3596 0 R (HD.3044) 3597 0 R (HD.3045) 3598 0 R (HD.3046) 3599 0 R (HD.3047) 3600 0 R (HD.3048) 3601 0 R (HD.3049) 3602 0 R (HD.305) 536 0 R (HD.3050) 3603 0 R (HD.3051) 3604 0 R ] /Limits [ (HD.3023) (HD.3051) ] >>
+<< /Names [ (HD.2077) 2537 0 R (HD.2078) 2538 0 R (HD.2079) 2539 0 R (HD.208) 422 0 R (HD.2080) 2540 0 R (HD.2081) 2541 0 R (HD.2082) 2542 0 R (HD.2083) 2543 0 R (HD.2084) 2544 0 R (HD.2085) 2545 0 R (HD.2086) 2546 0 R (HD.2087) 2547 0 R (HD.2088) 2548 0 R (HD.2089) 2549 0 R (HD.209) 423 0 R (HD.2090) 2550 0 R (HD.2091) 2551 0 R (HD.2092) 2552 0 R (HD.2093) 2553 0 R (HD.2094) 2554 0 R (HD.2095) 2555 0 R (HD.2096) 2556 0 R (HD.2097) 2557 0 R (HD.2098) 2558 0 R (HD.2099) 2559 0 R (HD.21) 216 0 R (HD.210) 424 0 R (HD.2100) 2560 0 R (HD.2101) 2568 0 R (HD.2102) 2569 0 R (HD.2103) 2570 0 R (HD.2104) 2571 0 R ] /Limits [ (HD.2077) (HD.2104) ] >>
endobj
11787 0 obj
-<< /Names [ (HD.3052) 3605 0 R (HD.3053) 3606 0 R (HD.3054) 3607 0 R (HD.3055) 3608 0 R (HD.3056) 3609 0 R (HD.3057) 3610 0 R (HD.3058) 3611 0 R (HD.3059) 3612 0 R (HD.306) 537 0 R (HD.3060) 3613 0 R (HD.3061) 3614 0 R (HD.3062) 3615 0 R (HD.3063) 3616 0 R (HD.3064) 3617 0 R (HD.3065) 3618 0 R (HD.3066) 3619 0 R (HD.3067) 3620 0 R (HD.3068) 3621 0 R (HD.3069) 3622 0 R (HD.307) 538 0 R (HD.3070) 3623 0 R (HD.3071) 3624 0 R (HD.3072) 3625 0 R (HD.3073) 3626 0 R (HD.3074) 3627 0 R (HD.3075) 3628 0 R (HD.3076) 3629 0 R (HD.3077) 3630 0 R (HD.3078) 3631 0 R (HD.3079) 3632 0 R (HD.308) 539 0 R (HD.3080) 3633 0 R ] /Limits [ (HD.3052) (HD.3080) ] >>
+<< /Names [ (HD.2105) 2572 0 R (HD.2106) 2573 0 R (HD.2107) 2574 0 R (HD.2108) 2575 0 R (HD.2109) 2576 0 R (HD.211) 425 0 R (HD.2110) 2577 0 R (HD.2111) 2578 0 R (HD.2112) 2579 0 R (HD.2113) 2580 0 R (HD.2114) 2581 0 R (HD.2115) 2582 0 R (HD.2116) 2583 0 R (HD.2117) 2584 0 R (HD.2118) 2585 0 R (HD.2119) 2586 0 R (HD.212) 426 0 R (HD.2120) 2587 0 R (HD.2121) 2588 0 R (HD.2122) 2589 0 R (HD.2123) 2590 0 R (HD.2124) 2591 0 R (HD.2125) 2592 0 R (HD.2126) 2593 0 R (HD.2127) 2594 0 R (HD.2128) 2595 0 R (HD.2129) 2596 0 R (HD.213) 427 0 R (HD.2130) 2597 0 R (HD.2131) 2598 0 R (HD.2132) 2599 0 R (HD.2133) 2600 0 R ] /Limits [ (HD.2105) (HD.2133) ] >>
endobj
11788 0 obj
-<< /Names [ (HD.3081) 3634 0 R (HD.3082) 3635 0 R (HD.3083) 3640 0 R (HD.3084) 3641 0 R (HD.3085) 3642 0 R (HD.3086) 3643 0 R (HD.3087) 3644 0 R (HD.3088) 3645 0 R (HD.3089) 3646 0 R (HD.309) 540 0 R (HD.3090) 3647 0 R (HD.3091) 3648 0 R (HD.3092) 3649 0 R (HD.3093) 3650 0 R (HD.3094) 3651 0 R (HD.3095) 3652 0 R (HD.3096) 3653 0 R (HD.3097) 3654 0 R (HD.3098) 3655 0 R (HD.3099) 3656 0 R (HD.31) 226 0 R (HD.310) 541 0 R (HD.3100) 3657 0 R (HD.3101) 3658 0 R (HD.3102) 3659 0 R (HD.3103) 3660 0 R (HD.3104) 3661 0 R (HD.3105) 3662 0 R (HD.3106) 3663 0 R (HD.3107) 3664 0 R (HD.3108) 3665 0 R (HD.3109) 3666 0 R ] /Limits [ (HD.3081) (HD.3109) ] >>
+<< /Names [ (HD.2134) 2601 0 R (HD.2135) 2602 0 R (HD.2136) 2603 0 R (HD.2137) 2604 0 R (HD.2138) 2610 0 R (HD.2139) 2611 0 R (HD.214) 428 0 R (HD.2140) 2612 0 R (HD.2141) 2613 0 R (HD.2142) 2614 0 R (HD.2143) 2615 0 R (HD.2144) 2616 0 R (HD.2145) 2617 0 R (HD.2146) 2618 0 R (HD.2147) 2619 0 R (HD.2148) 2620 0 R (HD.2149) 2621 0 R (HD.215) 434 0 R (HD.2150) 2622 0 R (HD.2151) 2623 0 R (HD.2152) 2624 0 R (HD.2153) 2625 0 R (HD.2154) 2626 0 R (HD.2155) 2627 0 R (HD.2156) 2628 0 R (HD.2157) 2629 0 R (HD.2158) 2630 0 R (HD.2159) 2631 0 R (HD.216) 435 0 R (HD.2160) 2632 0 R (HD.2161) 2633 0 R (HD.2162) 2634 0 R ] /Limits [ (HD.2134) (HD.2162) ] >>
endobj
11789 0 obj
-<< /Names [ (HD.311) 542 0 R (HD.3110) 3667 0 R (HD.3111) 3668 0 R (HD.3112) 3669 0 R (HD.3113) 3670 0 R (HD.3114) 3671 0 R (HD.3115) 3672 0 R (HD.3116) 3673 0 R (HD.3117) 3674 0 R (HD.3118) 3675 0 R (HD.3119) 3676 0 R (HD.312) 543 0 R (HD.3120) 3681 0 R (HD.3121) 3682 0 R (HD.3122) 3683 0 R (HD.3123) 3684 0 R (HD.3124) 3685 0 R (HD.3125) 3686 0 R (HD.3126) 3687 0 R (HD.3127) 3688 0 R (HD.3128) 3689 0 R (HD.3129) 3690 0 R (HD.313) 544 0 R (HD.3130) 3691 0 R (HD.3131) 3692 0 R (HD.3132) 3693 0 R (HD.3133) 3694 0 R (HD.3134) 3695 0 R (HD.3135) 3696 0 R (HD.3136) 3697 0 R (HD.3137) 3698 0 R (HD.3138) 3699 0 R ] /Limits [ (HD.311) (HD.3138) ] >>
+<< /Names [ (HD.2163) 2635 0 R (HD.2164) 2636 0 R (HD.2165) 2637 0 R (HD.2166) 2638 0 R (HD.2167) 2639 0 R (HD.2168) 2640 0 R (HD.2169) 2641 0 R (HD.217) 436 0 R (HD.2170) 2642 0 R (HD.2171) 2643 0 R (HD.2172) 2644 0 R (HD.2173) 2645 0 R (HD.2174) 2646 0 R (HD.2175) 2647 0 R (HD.2176) 2648 0 R (HD.2177) 2649 0 R (HD.2178) 2650 0 R (HD.2179) 2651 0 R (HD.218) 437 0 R (HD.2180) 2652 0 R (HD.2181) 2653 0 R (HD.2182) 2659 0 R (HD.2183) 2660 0 R (HD.2184) 2661 0 R (HD.2185) 2662 0 R (HD.2186) 2663 0 R (HD.2187) 2664 0 R (HD.2188) 2665 0 R (HD.2189) 2666 0 R (HD.219) 438 0 R (HD.2190) 2667 0 R (HD.2191) 2668 0 R ] /Limits [ (HD.2163) (HD.2191) ] >>
endobj
11790 0 obj
-<< /Names [ (HD.3139) 3700 0 R (HD.314) 545 0 R (HD.3140) 3701 0 R (HD.3141) 3702 0 R (HD.3142) 3703 0 R (HD.3143) 3704 0 R (HD.3144) 3705 0 R (HD.3145) 3706 0 R (HD.3146) 3707 0 R (HD.3147) 3708 0 R (HD.3148) 3709 0 R (HD.3149) 3710 0 R (HD.315) 546 0 R (HD.3150) 3711 0 R (HD.3151) 3712 0 R (HD.3152) 3713 0 R (HD.3153) 3714 0 R (HD.3154) 3715 0 R (HD.3155) 3716 0 R (HD.3156) 3717 0 R (HD.3157) 3718 0 R (HD.3158) 3719 0 R (HD.3159) 3720 0 R (HD.316) 547 0 R (HD.3160) 3721 0 R (HD.3161) 3722 0 R (HD.3162) 3723 0 R (HD.3163) 3724 0 R (HD.3164) 3725 0 R (HD.3165) 3726 0 R (HD.3166) 3727 0 R (HD.3167) 3728 0 R ] /Limits [ (HD.3139) (HD.3167) ] >>
+<< /Names [ (HD.2192) 2669 0 R (HD.2193) 2670 0 R (HD.2194) 2671 0 R (HD.2195) 2672 0 R (HD.2196) 2673 0 R (HD.2197) 2674 0 R (HD.2198) 2675 0 R (HD.2199) 2676 0 R (HD.22) 217 0 R (HD.220) 439 0 R (HD.2200) 2677 0 R (HD.2201) 2678 0 R (HD.2202) 2679 0 R (HD.2203) 2680 0 R (HD.2204) 2681 0 R (HD.2205) 2682 0 R (HD.2206) 2683 0 R (HD.2207) 2684 0 R (HD.2208) 2685 0 R (HD.2209) 2686 0 R (HD.221) 440 0 R (HD.2210) 2687 0 R (HD.2211) 2688 0 R (HD.2212) 2689 0 R (HD.2213) 2690 0 R (HD.2214) 2691 0 R (HD.2215) 2692 0 R (HD.2216) 2693 0 R (HD.2217) 2694 0 R (HD.2218) 2695 0 R (HD.2219) 2696 0 R (HD.222) 441 0 R ] /Limits [ (HD.2192) (HD.222) ] >>
endobj
11791 0 obj
-<< /Names [ (HD.3168) 3729 0 R (HD.3169) 3730 0 R (HD.317) 548 0 R (HD.3170) 3731 0 R (HD.3171) 3732 0 R (HD.3172) 3737 0 R (HD.3173) 3738 0 R (HD.3174) 3739 0 R (HD.3175) 3740 0 R (HD.3176) 3741 0 R (HD.3177) 3742 0 R (HD.3178) 3743 0 R (HD.3179) 3744 0 R (HD.318) 549 0 R (HD.3180) 3745 0 R (HD.3181) 3746 0 R (HD.3182) 3747 0 R (HD.3183) 3748 0 R (HD.3184) 3749 0 R (HD.3185) 3750 0 R (HD.3186) 3751 0 R (HD.3187) 3752 0 R (HD.3188) 3753 0 R (HD.3189) 3754 0 R (HD.319) 550 0 R (HD.3190) 3755 0 R (HD.3191) 3756 0 R (HD.3192) 3757 0 R (HD.3193) 3758 0 R (HD.3194) 3759 0 R (HD.3195) 3760 0 R (HD.3196) 3761 0 R ] /Limits [ (HD.3168) (HD.3196) ] >>
+<< /Names [ (HD.2220) 2697 0 R (HD.2221) 2698 0 R (HD.2222) 2699 0 R (HD.2223) 2700 0 R (HD.2224) 2701 0 R (HD.2225) 2702 0 R (HD.2226) 2703 0 R (HD.2227) 2708 0 R (HD.2228) 2709 0 R (HD.2229) 2710 0 R (HD.223) 442 0 R (HD.2230) 2711 0 R (HD.2231) 2712 0 R (HD.2232) 2713 0 R (HD.2233) 2714 0 R (HD.2234) 2715 0 R (HD.2235) 2716 0 R (HD.2236) 2717 0 R (HD.2237) 2718 0 R (HD.2238) 2719 0 R (HD.2239) 2720 0 R (HD.224) 443 0 R (HD.2240) 2721 0 R (HD.2241) 2722 0 R (HD.2242) 2723 0 R (HD.2243) 2724 0 R (HD.2244) 2725 0 R (HD.2245) 2726 0 R (HD.2246) 2727 0 R (HD.2247) 2728 0 R (HD.2248) 2729 0 R (HD.2249) 2730 0 R ] /Limits [ (HD.2220) (HD.2249) ] >>
endobj
11792 0 obj
-<< /Names [ (HD.3197) 3762 0 R (HD.3198) 3763 0 R (HD.3199) 3764 0 R (HD.32) 227 0 R (HD.320) 551 0 R (HD.3200) 3765 0 R (HD.3201) 3766 0 R (HD.3202) 3767 0 R (HD.3203) 3768 0 R (HD.3204) 3769 0 R (HD.3205) 3770 0 R (HD.3206) 3771 0 R (HD.3207) 3772 0 R (HD.3208) 3773 0 R (HD.3209) 3774 0 R (HD.321) 552 0 R (HD.3210) 3775 0 R (HD.3211) 3776 0 R (HD.3212) 3777 0 R (HD.3213) 3778 0 R (HD.3214) 3779 0 R (HD.3215) 3780 0 R (HD.3216) 3781 0 R (HD.3217) 3782 0 R (HD.3218) 3788 0 R (HD.3219) 3789 0 R (HD.322) 553 0 R (HD.3220) 3790 0 R (HD.3221) 3791 0 R (HD.3222) 3792 0 R (HD.3223) 3793 0 R (HD.3224) 3794 0 R ] /Limits [ (HD.3197) (HD.3224) ] >>
+<< /Names [ (HD.225) 444 0 R (HD.2250) 2731 0 R (HD.2251) 2732 0 R (HD.2252) 2733 0 R (HD.2253) 2734 0 R (HD.2254) 2735 0 R (HD.2255) 2736 0 R (HD.2256) 2737 0 R (HD.2257) 2738 0 R (HD.2258) 2739 0 R (HD.2259) 2740 0 R (HD.226) 445 0 R (HD.2260) 2741 0 R (HD.2261) 2742 0 R (HD.2262) 2743 0 R (HD.2263) 2744 0 R (HD.2264) 2745 0 R (HD.2265) 2746 0 R (HD.2266) 2747 0 R (HD.2267) 2748 0 R (HD.2268) 2749 0 R (HD.2269) 2750 0 R (HD.227) 446 0 R (HD.2270) 2751 0 R (HD.2271) 2752 0 R (HD.2272) 2753 0 R (HD.2273) 2754 0 R (HD.2274) 2755 0 R (HD.2275) 2756 0 R (HD.2276) 2757 0 R (HD.2277) 2765 0 R (HD.2278) 2766 0 R ] /Limits [ (HD.225) (HD.2278) ] >>
endobj
11793 0 obj
-<< /Names [ (HD.3225) 3795 0 R (HD.3226) 3796 0 R (HD.3227) 3797 0 R (HD.3228) 3798 0 R (HD.3229) 3799 0 R (HD.323) 554 0 R (HD.3230) 3800 0 R (HD.3231) 3801 0 R (HD.3232) 3802 0 R (HD.3233) 3803 0 R (HD.3234) 3804 0 R (HD.3235) 3805 0 R (HD.3236) 3806 0 R (HD.3237) 3807 0 R (HD.3238) 3808 0 R (HD.3239) 3809 0 R (HD.324) 555 0 R (HD.3240) 3810 0 R (HD.3241) 3811 0 R (HD.3242) 3812 0 R (HD.3243) 3813 0 R (HD.3244) 3814 0 R (HD.3245) 3815 0 R (HD.3246) 3816 0 R (HD.3247) 3817 0 R (HD.3248) 3818 0 R (HD.3249) 3819 0 R (HD.325) 557 0 R (HD.3250) 3820 0 R (HD.3251) 3821 0 R (HD.3252) 3822 0 R (HD.3253) 3823 0 R ] /Limits [ (HD.3225) (HD.3253) ] >>
+<< /Names [ (HD.2279) 2767 0 R (HD.228) 447 0 R (HD.2280) 2768 0 R (HD.2281) 2769 0 R (HD.2282) 2770 0 R (HD.2283) 2771 0 R (HD.2284) 2772 0 R (HD.2285) 2773 0 R (HD.2286) 2774 0 R (HD.2287) 2775 0 R (HD.2288) 2776 0 R (HD.2289) 2777 0 R (HD.229) 448 0 R (HD.2290) 2778 0 R (HD.2291) 2779 0 R (HD.2292) 2780 0 R (HD.2293) 2781 0 R (HD.2294) 2782 0 R (HD.2295) 2783 0 R (HD.2296) 2784 0 R (HD.2297) 2785 0 R (HD.2298) 2786 0 R (HD.2299) 2787 0 R (HD.23) 218 0 R (HD.230) 449 0 R (HD.2300) 2788 0 R (HD.2301) 2789 0 R (HD.2302) 2790 0 R (HD.2303) 2791 0 R (HD.2304) 2792 0 R (HD.2305) 2793 0 R (HD.2306) 2794 0 R ] /Limits [ (HD.2279) (HD.2306) ] >>
endobj
11794 0 obj
-<< /Names [ (HD.3254) 3824 0 R (HD.3255) 3825 0 R (HD.3256) 3826 0 R (HD.3257) 3827 0 R (HD.3258) 3828 0 R (HD.3259) 3829 0 R (HD.326) 558 0 R (HD.3260) 3830 0 R (HD.3261) 3831 0 R (HD.3262) 3832 0 R (HD.3263) 3833 0 R (HD.3264) 3834 0 R (HD.3265) 3835 0 R (HD.3266) 3836 0 R (HD.3267) 3837 0 R (HD.3268) 3838 0 R (HD.3269) 3839 0 R (HD.327) 559 0 R (HD.3270) 3840 0 R (HD.3271) 3841 0 R (HD.3272) 3842 0 R (HD.3273) 3843 0 R (HD.3274) 3848 0 R (HD.3275) 3849 0 R (HD.3276) 3850 0 R (HD.3277) 3851 0 R (HD.3278) 3852 0 R (HD.3279) 3853 0 R (HD.328) 560 0 R (HD.3280) 3854 0 R (HD.3281) 3855 0 R (HD.3282) 3856 0 R ] /Limits [ (HD.3254) (HD.3282) ] >>
+<< /Names [ (HD.2307) 2795 0 R (HD.2308) 2796 0 R (HD.2309) 2797 0 R (HD.231) 450 0 R (HD.2310) 2798 0 R (HD.2311) 2799 0 R (HD.2312) 2800 0 R (HD.2313) 2801 0 R (HD.2314) 2802 0 R (HD.2315) 2803 0 R (HD.2316) 2804 0 R (HD.2317) 2805 0 R (HD.2318) 2806 0 R (HD.2319) 2807 0 R (HD.232) 451 0 R (HD.2320) 2808 0 R (HD.2321) 2809 0 R (HD.2322) 2810 0 R (HD.2323) 2811 0 R (HD.2324) 2812 0 R (HD.2325) 2813 0 R (HD.2326) 2814 0 R (HD.2327) 2815 0 R (HD.2328) 2820 0 R (HD.2329) 2821 0 R (HD.233) 452 0 R (HD.2330) 2822 0 R (HD.2331) 2823 0 R (HD.2332) 2824 0 R (HD.2333) 2825 0 R (HD.2334) 2826 0 R (HD.2335) 2827 0 R ] /Limits [ (HD.2307) (HD.2335) ] >>
endobj
11795 0 obj
-<< /Names [ (HD.3283) 3857 0 R (HD.3284) 3858 0 R (HD.3285) 3859 0 R (HD.3286) 3860 0 R (HD.3287) 3861 0 R (HD.3288) 3862 0 R (HD.3289) 3863 0 R (HD.329) 561 0 R (HD.3290) 3864 0 R (HD.3291) 3865 0 R (HD.3292) 3866 0 R (HD.3293) 3867 0 R (HD.3294) 3868 0 R (HD.3295) 3869 0 R (HD.3296) 3870 0 R (HD.3297) 3871 0 R (HD.3298) 3872 0 R (HD.3299) 3873 0 R (HD.33) 228 0 R (HD.330) 562 0 R (HD.3300) 3874 0 R (HD.3301) 3875 0 R (HD.3302) 3876 0 R (HD.3303) 3877 0 R (HD.3304) 3878 0 R (HD.3305) 3879 0 R (HD.3306) 3880 0 R (HD.3307) 3885 0 R (HD.3308) 3886 0 R (HD.3309) 3887 0 R (HD.331) 567 0 R (HD.3310) 3888 0 R ] /Limits [ (HD.3283) (HD.3310) ] >>
+<< /Names [ (HD.2336) 2828 0 R (HD.2337) 2829 0 R (HD.2338) 2830 0 R (HD.2339) 2831 0 R (HD.234) 453 0 R (HD.2340) 2832 0 R (HD.2341) 2833 0 R (HD.2342) 2834 0 R (HD.2343) 2835 0 R (HD.2344) 2836 0 R (HD.2345) 2837 0 R (HD.2346) 2838 0 R (HD.2347) 2839 0 R (HD.2348) 2840 0 R (HD.2349) 2841 0 R (HD.235) 454 0 R (HD.2350) 2842 0 R (HD.2351) 2843 0 R (HD.2352) 2844 0 R (HD.2353) 2845 0 R (HD.2354) 2846 0 R (HD.2355) 2847 0 R (HD.2356) 2848 0 R (HD.2357) 2849 0 R (HD.2358) 2850 0 R (HD.2359) 2851 0 R (HD.236) 455 0 R (HD.2360) 2852 0 R (HD.2361) 2853 0 R (HD.2362) 2854 0 R (HD.2363) 2855 0 R (HD.2364) 2856 0 R ] /Limits [ (HD.2336) (HD.2364) ] >>
endobj
11796 0 obj
-<< /Names [ (HD.3311) 3889 0 R (HD.3312) 3890 0 R (HD.3313) 3891 0 R (HD.3314) 3892 0 R (HD.3315) 3893 0 R (HD.3316) 3894 0 R (HD.3317) 3895 0 R (HD.3318) 3896 0 R (HD.3319) 3897 0 R (HD.332) 568 0 R (HD.3320) 3898 0 R (HD.3321) 3899 0 R (HD.3322) 3900 0 R (HD.3323) 3901 0 R (HD.3324) 3902 0 R (HD.3325) 3903 0 R (HD.3326) 3904 0 R (HD.3327) 3905 0 R (HD.3328) 3906 0 R (HD.3329) 3907 0 R (HD.333) 569 0 R (HD.3330) 3908 0 R (HD.3331) 3909 0 R (HD.3332) 3910 0 R (HD.3333) 3911 0 R (HD.3334) 3912 0 R (HD.3335) 3913 0 R (HD.3336) 3914 0 R (HD.3337) 3915 0 R (HD.3338) 3916 0 R (HD.3339) 3917 0 R (HD.334) 570 0 R ] /Limits [ (HD.3311) (HD.334) ] >>
+<< /Names [ (HD.2365) 2857 0 R (HD.2366) 2858 0 R (HD.2367) 2859 0 R (HD.2368) 2860 0 R (HD.2369) 2861 0 R (HD.237) 456 0 R (HD.2370) 2862 0 R (HD.2371) 2863 0 R (HD.2372) 2864 0 R (HD.2373) 2865 0 R (HD.2374) 2866 0 R (HD.2375) 2867 0 R (HD.2376) 2868 0 R (HD.2377) 2869 0 R (HD.2378) 2870 0 R (HD.2379) 2871 0 R (HD.238) 457 0 R (HD.2380) 2872 0 R (HD.2381) 2873 0 R (HD.2382) 2874 0 R (HD.2383) 2875 0 R (HD.2384) 2880 0 R (HD.2385) 2881 0 R (HD.2386) 2882 0 R (HD.2387) 2883 0 R (HD.2388) 2884 0 R (HD.2389) 2885 0 R (HD.239) 458 0 R (HD.2390) 2886 0 R (HD.2391) 2887 0 R (HD.2392) 2888 0 R (HD.2393) 2889 0 R ] /Limits [ (HD.2365) (HD.2393) ] >>
endobj
11797 0 obj
-<< /Names [ (HD.3340) 3918 0 R (HD.3341) 3919 0 R (HD.3342) 3920 0 R (HD.3343) 3925 0 R (HD.3344) 3926 0 R (HD.3345) 3927 0 R (HD.3346) 3928 0 R (HD.3347) 3929 0 R (HD.3348) 3930 0 R (HD.3349) 3931 0 R (HD.335) 571 0 R (HD.3350) 3932 0 R (HD.3351) 3933 0 R (HD.3352) 3934 0 R (HD.3353) 3935 0 R (HD.3354) 3936 0 R (HD.3355) 3937 0 R (HD.3356) 3938 0 R (HD.3357) 3939 0 R (HD.3358) 3940 0 R (HD.3359) 3941 0 R (HD.336) 572 0 R (HD.3360) 3942 0 R (HD.3361) 3943 0 R (HD.3362) 3944 0 R (HD.3363) 3945 0 R (HD.3364) 3946 0 R (HD.3365) 3947 0 R (HD.3366) 3948 0 R (HD.3367) 3949 0 R (HD.3368) 3950 0 R (HD.3369) 3951 0 R ] /Limits [ (HD.3340) (HD.3369) ] >>
+<< /Names [ (HD.2394) 2890 0 R (HD.2395) 2891 0 R (HD.2396) 2892 0 R (HD.2397) 2893 0 R (HD.2398) 2894 0 R (HD.2399) 2895 0 R (HD.24) 219 0 R (HD.240) 459 0 R (HD.2400) 2896 0 R (HD.2401) 2897 0 R (HD.2402) 2898 0 R (HD.2403) 2899 0 R (HD.2404) 2900 0 R (HD.2405) 2901 0 R (HD.2406) 2902 0 R (HD.2407) 2903 0 R (HD.2408) 2904 0 R (HD.2409) 2905 0 R (HD.241) 460 0 R (HD.2410) 2906 0 R (HD.2411) 2907 0 R (HD.2412) 2908 0 R (HD.2413) 2909 0 R (HD.2414) 2910 0 R (HD.2415) 2911 0 R (HD.2416) 2912 0 R (HD.2417) 2913 0 R (HD.2418) 2914 0 R (HD.2419) 2915 0 R (HD.242) 461 0 R (HD.2420) 2916 0 R (HD.2421) 2917 0 R ] /Limits [ (HD.2394) (HD.2421) ] >>
endobj
11798 0 obj
-<< /Names [ (HD.337) 573 0 R (HD.3370) 3952 0 R (HD.3371) 3953 0 R (HD.3372) 3954 0 R (HD.3373) 3955 0 R (HD.3374) 3956 0 R (HD.3375) 3957 0 R (HD.3376) 3958 0 R (HD.3377) 3959 0 R (HD.3378) 3960 0 R (HD.3379) 3961 0 R (HD.338) 574 0 R (HD.3380) 3962 0 R (HD.3381) 3963 0 R (HD.3382) 3964 0 R (HD.3383) 3965 0 R (HD.3384) 3966 0 R (HD.3385) 3967 0 R (HD.3386) 3968 0 R (HD.3387) 3969 0 R (HD.3388) 3970 0 R (HD.3389) 3971 0 R (HD.339) 575 0 R (HD.3390) 3976 0 R (HD.3391) 3977 0 R (HD.3392) 3978 0 R (HD.3393) 3979 0 R (HD.3394) 3980 0 R (HD.3395) 3981 0 R (HD.3396) 3982 0 R (HD.3397) 3983 0 R (HD.3398) 3984 0 R ] /Limits [ (HD.337) (HD.3398) ] >>
+<< /Names [ (HD.2422) 2918 0 R (HD.2423) 2919 0 R (HD.2424) 2920 0 R (HD.2425) 2921 0 R (HD.2426) 2922 0 R (HD.2427) 2923 0 R (HD.2428) 2924 0 R (HD.2429) 2925 0 R (HD.243) 462 0 R (HD.2430) 2926 0 R (HD.2431) 2927 0 R (HD.2432) 2932 0 R (HD.2433) 2933 0 R (HD.2434) 2934 0 R (HD.2435) 2935 0 R (HD.2436) 2936 0 R (HD.2437) 2937 0 R (HD.2438) 2938 0 R (HD.2439) 2939 0 R (HD.244) 463 0 R (HD.2440) 2940 0 R (HD.2441) 2941 0 R (HD.2442) 2942 0 R (HD.2443) 2943 0 R (HD.2444) 2944 0 R (HD.2445) 2945 0 R (HD.2446) 2946 0 R (HD.2447) 2947 0 R (HD.2448) 2948 0 R (HD.2449) 2949 0 R (HD.245) 464 0 R (HD.2450) 2950 0 R ] /Limits [ (HD.2422) (HD.2450) ] >>
endobj
11799 0 obj
-<< /Names [ (HD.3399) 3985 0 R (HD.34) 229 0 R (HD.340) 576 0 R (HD.3400) 3986 0 R (HD.3401) 3987 0 R (HD.3402) 3988 0 R (HD.3403) 3989 0 R (HD.3404) 3990 0 R (HD.3405) 3991 0 R (HD.3406) 3992 0 R (HD.3407) 3993 0 R (HD.3408) 3994 0 R (HD.3409) 3995 0 R (HD.341) 577 0 R (HD.3410) 3996 0 R (HD.3411) 3997 0 R (HD.3412) 3998 0 R (HD.3413) 3999 0 R (HD.3414) 4000 0 R (HD.3415) 4001 0 R (HD.3416) 4002 0 R (HD.3417) 4003 0 R (HD.3418) 4004 0 R (HD.3419) 4005 0 R (HD.342) 578 0 R (HD.3420) 4006 0 R (HD.3421) 4007 0 R (HD.3422) 4008 0 R (HD.3423) 4009 0 R (HD.3424) 4010 0 R (HD.3425) 4011 0 R (HD.3426) 4012 0 R ] /Limits [ (HD.3399) (HD.3426) ] >>
+<< /Names [ (HD.2451) 2951 0 R (HD.2452) 2952 0 R (HD.2453) 2953 0 R (HD.2454) 2954 0 R (HD.2455) 2955 0 R (HD.2456) 2956 0 R (HD.2457) 2957 0 R (HD.2458) 2958 0 R (HD.2459) 2959 0 R (HD.246) 465 0 R (HD.2460) 2960 0 R (HD.2461) 2961 0 R (HD.2462) 2962 0 R (HD.2463) 2963 0 R (HD.2464) 2964 0 R (HD.2465) 2965 0 R (HD.2466) 2970 0 R (HD.2467) 2971 0 R (HD.2468) 2972 0 R (HD.2469) 2973 0 R (HD.247) 466 0 R (HD.2470) 2974 0 R (HD.2471) 2975 0 R (HD.2472) 2976 0 R (HD.2473) 2977 0 R (HD.2474) 2978 0 R (HD.2475) 2979 0 R (HD.2476) 2980 0 R (HD.2477) 2981 0 R (HD.2478) 2982 0 R (HD.2479) 2983 0 R (HD.248) 467 0 R ] /Limits [ (HD.2451) (HD.248) ] >>
endobj
11800 0 obj
-<< /Names [ (HD.3427) 4013 0 R (HD.3428) 4014 0 R (HD.3429) 4015 0 R (HD.343) 579 0 R (HD.3430) 4016 0 R (HD.3431) 4017 0 R (HD.3432) 4018 0 R (HD.3433) 4019 0 R (HD.3434) 4020 0 R (HD.3435) 4021 0 R (HD.3436) 4022 0 R (HD.3437) 4023 0 R (HD.3438) 4024 0 R (HD.3439) 4025 0 R (HD.344) 580 0 R (HD.3440) 4026 0 R (HD.3441) 4027 0 R (HD.3442) 4028 0 R (HD.3443) 4029 0 R (HD.3444) 4030 0 R (HD.3445) 4031 0 R (HD.3446) 4036 0 R (HD.3447) 4037 0 R (HD.3448) 4038 0 R (HD.3449) 4039 0 R (HD.345) 581 0 R (HD.3450) 4040 0 R (HD.3451) 4041 0 R (HD.3452) 4042 0 R (HD.3453) 4043 0 R (HD.3454) 4044 0 R (HD.3455) 4045 0 R ] /Limits [ (HD.3427) (HD.3455) ] >>
+<< /Names [ (HD.2480) 2984 0 R (HD.2481) 2985 0 R (HD.2482) 2986 0 R (HD.2483) 2987 0 R (HD.2484) 2988 0 R (HD.2485) 2989 0 R (HD.2486) 2990 0 R (HD.2487) 2991 0 R (HD.2488) 2992 0 R (HD.2489) 2993 0 R (HD.249) 468 0 R (HD.2490) 2994 0 R (HD.2491) 2995 0 R (HD.2492) 2996 0 R (HD.2493) 2997 0 R (HD.2494) 2998 0 R (HD.2495) 2999 0 R (HD.2496) 3000 0 R (HD.2497) 3001 0 R (HD.2498) 3002 0 R (HD.2499) 3003 0 R (HD.25) 220 0 R (HD.250) 469 0 R (HD.2500) 3004 0 R (HD.2501) 3005 0 R (HD.2502) 3006 0 R (HD.2503) 3007 0 R (HD.2504) 3008 0 R (HD.2505) 3009 0 R (HD.2506) 3010 0 R (HD.2507) 3011 0 R (HD.2508) 3012 0 R ] /Limits [ (HD.2480) (HD.2508) ] >>
endobj
11801 0 obj
-<< /Names [ (HD.3456) 4046 0 R (HD.3457) 4047 0 R (HD.3458) 4048 0 R (HD.3459) 4049 0 R (HD.346) 582 0 R (HD.3460) 4050 0 R (HD.3461) 4051 0 R (HD.3462) 4052 0 R (HD.3463) 4053 0 R (HD.3464) 4054 0 R (HD.3465) 4055 0 R (HD.3466) 4056 0 R (HD.3467) 4057 0 R (HD.3468) 4058 0 R (HD.3469) 4059 0 R (HD.347) 587 0 R (HD.3470) 4060 0 R (HD.3471) 4061 0 R (HD.3472) 4062 0 R (HD.3473) 4063 0 R (HD.3474) 4064 0 R (HD.3475) 4065 0 R (HD.3476) 4066 0 R (HD.3477) 4067 0 R (HD.3478) 4068 0 R (HD.3479) 4069 0 R (HD.348) 588 0 R (HD.3480) 4070 0 R (HD.3481) 4071 0 R (HD.3482) 4072 0 R (HD.3483) 4073 0 R (HD.3484) 4074 0 R ] /Limits [ (HD.3456) (HD.3484) ] >>
+<< /Names [ (HD.2509) 3013 0 R (HD.251) 470 0 R (HD.2510) 3014 0 R (HD.2511) 3015 0 R (HD.2512) 3020 0 R (HD.2513) 3021 0 R (HD.2514) 3022 0 R (HD.2515) 3023 0 R (HD.2516) 3024 0 R (HD.2517) 3025 0 R (HD.2518) 3026 0 R (HD.2519) 3027 0 R (HD.252) 471 0 R (HD.2520) 3028 0 R (HD.2521) 3029 0 R (HD.2522) 3030 0 R (HD.2523) 3031 0 R (HD.2524) 3032 0 R (HD.2525) 3033 0 R (HD.2526) 3034 0 R (HD.2527) 3035 0 R (HD.2528) 3036 0 R (HD.2529) 3037 0 R (HD.253) 472 0 R (HD.2530) 3038 0 R (HD.2531) 3039 0 R (HD.2532) 3040 0 R (HD.2533) 3041 0 R (HD.2534) 3042 0 R (HD.2535) 3043 0 R (HD.2536) 3044 0 R (HD.2537) 3045 0 R ] /Limits [ (HD.2509) (HD.2537) ] >>
endobj
11802 0 obj
-<< /Names [ (HD.3485) 4075 0 R (HD.3486) 4076 0 R (HD.3487) 4077 0 R (HD.3488) 4078 0 R (HD.3489) 4079 0 R (HD.349) 589 0 R (HD.3490) 4080 0 R (HD.3491) 4081 0 R (HD.3492) 4082 0 R (HD.3493) 4083 0 R (HD.3494) 4084 0 R (HD.3495) 4085 0 R (HD.3496) 4086 0 R (HD.3497) 4087 0 R (HD.3498) 4088 0 R (HD.3499) 4093 0 R (HD.35) 230 0 R (HD.350) 590 0 R (HD.3500) 4094 0 R (HD.3501) 4095 0 R (HD.3502) 4096 0 R (HD.3503) 4097 0 R (HD.3504) 4098 0 R (HD.3505) 4099 0 R (HD.3506) 4100 0 R (HD.3507) 4101 0 R (HD.3508) 4102 0 R (HD.3509) 4103 0 R (HD.351) 591 0 R (HD.3510) 4104 0 R (HD.3511) 4105 0 R (HD.3512) 4106 0 R ] /Limits [ (HD.3485) (HD.3512) ] >>
+<< /Names [ (HD.2538) 3046 0 R (HD.2539) 3047 0 R (HD.254) 474 0 R (HD.2540) 3048 0 R (HD.2541) 3049 0 R (HD.2542) 3050 0 R (HD.2543) 3051 0 R (HD.2544) 3052 0 R (HD.2545) 3053 0 R (HD.2546) 3054 0 R (HD.2547) 3055 0 R (HD.2548) 3056 0 R (HD.2549) 3057 0 R (HD.255) 475 0 R (HD.2550) 3058 0 R (HD.2551) 3059 0 R (HD.2552) 3060 0 R (HD.2553) 3061 0 R (HD.2554) 3062 0 R (HD.2555) 3063 0 R (HD.2556) 3064 0 R (HD.2557) 3065 0 R (HD.2558) 3066 0 R (HD.2559) 3071 0 R (HD.256) 476 0 R (HD.2560) 3072 0 R (HD.2561) 3073 0 R (HD.2562) 3074 0 R (HD.2563) 3075 0 R (HD.2564) 3076 0 R (HD.2565) 3077 0 R (HD.2566) 3078 0 R ] /Limits [ (HD.2538) (HD.2566) ] >>
endobj
11803 0 obj
-<< /Names [ (HD.3513) 4107 0 R (HD.3514) 4108 0 R (HD.3515) 4109 0 R (HD.3516) 4110 0 R (HD.3517) 4111 0 R (HD.3518) 4112 0 R (HD.3519) 4113 0 R (HD.352) 592 0 R (HD.3520) 4114 0 R (HD.3521) 4115 0 R (HD.3522) 4116 0 R (HD.3523) 4117 0 R (HD.3524) 4118 0 R (HD.3525) 4119 0 R (HD.3526) 4120 0 R (HD.3527) 4121 0 R (HD.3528) 4122 0 R (HD.3529) 4123 0 R (HD.353) 593 0 R (HD.3530) 4124 0 R (HD.3531) 4125 0 R (HD.3532) 4126 0 R (HD.3533) 4127 0 R (HD.3534) 4128 0 R (HD.3535) 4129 0 R (HD.3536) 4130 0 R (HD.3537) 4131 0 R (HD.3538) 4132 0 R (HD.3539) 4133 0 R (HD.354) 594 0 R (HD.3540) 4134 0 R (HD.3541) 4135 0 R ] /Limits [ (HD.3513) (HD.3541) ] >>
+<< /Names [ (HD.2567) 3079 0 R (HD.2568) 3080 0 R (HD.2569) 3081 0 R (HD.257) 477 0 R (HD.2570) 3082 0 R (HD.2571) 3083 0 R (HD.2572) 3084 0 R (HD.2573) 3085 0 R (HD.2574) 3086 0 R (HD.2575) 3087 0 R (HD.2576) 3088 0 R (HD.2577) 3089 0 R (HD.2578) 3090 0 R (HD.2579) 3091 0 R (HD.258) 478 0 R (HD.2580) 3092 0 R (HD.2581) 3093 0 R (HD.2582) 3094 0 R (HD.2583) 3095 0 R (HD.2584) 3096 0 R (HD.2585) 3097 0 R (HD.2586) 3098 0 R (HD.2587) 3099 0 R (HD.2588) 3100 0 R (HD.2589) 3101 0 R (HD.259) 479 0 R (HD.2590) 3102 0 R (HD.2591) 3103 0 R (HD.2592) 3104 0 R (HD.2593) 3105 0 R (HD.2594) 3106 0 R (HD.2595) 3107 0 R ] /Limits [ (HD.2567) (HD.2595) ] >>
endobj
11804 0 obj
-<< /Names [ (HD.3542) 4136 0 R (HD.3543) 4137 0 R (HD.3544) 4138 0 R (HD.3545) 4139 0 R (HD.3546) 4140 0 R (HD.3547) 4141 0 R (HD.3548) 4142 0 R (HD.3549) 4143 0 R (HD.355) 595 0 R (HD.3550) 4144 0 R (HD.3551) 4145 0 R (HD.3552) 4146 0 R (HD.3553) 4147 0 R (HD.3554) 4148 0 R (HD.3555) 4149 0 R (HD.3556) 4150 0 R (HD.3557) 4155 0 R (HD.3558) 4156 0 R (HD.3559) 4157 0 R (HD.356) 596 0 R (HD.3560) 4158 0 R (HD.3561) 4159 0 R (HD.3562) 4160 0 R (HD.3563) 4161 0 R (HD.3564) 4162 0 R (HD.3565) 4163 0 R (HD.3566) 4164 0 R (HD.3567) 4165 0 R (HD.3568) 4166 0 R (HD.3569) 4167 0 R (HD.357) 597 0 R (HD.3570) 4168 0 R ] /Limits [ (HD.3542) (HD.3570) ] >>
+<< /Names [ (HD.2596) 3108 0 R (HD.2597) 3109 0 R (HD.2598) 3110 0 R (HD.2599) 3111 0 R (HD.26) 221 0 R (HD.260) 487 0 R (HD.2600) 3112 0 R (HD.2601) 3113 0 R (HD.2602) 3114 0 R (HD.2603) 3115 0 R (HD.2604) 3116 0 R (HD.2605) 3117 0 R (HD.2606) 3118 0 R (HD.2607) 3119 0 R (HD.2608) 3120 0 R (HD.2609) 3121 0 R (HD.261) 488 0 R (HD.2610) 3126 0 R (HD.2611) 3127 0 R (HD.2612) 3128 0 R (HD.2613) 3129 0 R (HD.2614) 3130 0 R (HD.2615) 3131 0 R (HD.2616) 3132 0 R (HD.2617) 3133 0 R (HD.2618) 3134 0 R (HD.2619) 3135 0 R (HD.262) 489 0 R (HD.2620) 3136 0 R (HD.2621) 3137 0 R (HD.2622) 3138 0 R (HD.2623) 3139 0 R ] /Limits [ (HD.2596) (HD.2623) ] >>
endobj
11805 0 obj
-<< /Names [ (HD.3571) 4169 0 R (HD.3572) 4170 0 R (HD.3573) 4171 0 R (HD.3574) 4172 0 R (HD.3575) 4173 0 R (HD.3576) 4174 0 R (HD.3577) 4175 0 R (HD.3578) 4176 0 R (HD.3579) 4177 0 R (HD.358) 598 0 R (HD.3580) 4178 0 R (HD.3581) 4179 0 R (HD.3582) 4180 0 R (HD.3583) 4181 0 R (HD.3584) 4182 0 R (HD.3585) 4183 0 R (HD.3586) 4184 0 R (HD.3587) 4185 0 R (HD.3588) 4186 0 R (HD.3589) 4187 0 R (HD.359) 599 0 R (HD.3590) 4188 0 R (HD.3591) 4189 0 R (HD.3592) 4190 0 R (HD.3593) 4191 0 R (HD.3594) 4192 0 R (HD.3595) 4193 0 R (HD.3596) 4194 0 R (HD.3597) 4195 0 R (HD.3598) 4196 0 R (HD.3599) 4197 0 R (HD.36) 231 0 R ] /Limits [ (HD.3571) (HD.36) ] >>
+<< /Names [ (HD.2624) 3140 0 R (HD.2625) 3141 0 R (HD.2626) 3142 0 R (HD.2627) 3143 0 R (HD.2628) 3144 0 R (HD.2629) 3145 0 R (HD.263) 490 0 R (HD.2630) 3146 0 R (HD.2631) 3147 0 R (HD.2632) 3148 0 R (HD.2633) 3149 0 R (HD.2634) 3150 0 R (HD.2635) 3151 0 R (HD.2636) 3152 0 R (HD.2637) 3153 0 R (HD.2638) 3154 0 R (HD.2639) 3155 0 R (HD.264) 491 0 R (HD.2640) 3156 0 R (HD.2641) 3157 0 R (HD.2642) 3158 0 R (HD.2643) 3159 0 R (HD.2644) 3160 0 R (HD.2645) 3161 0 R (HD.2646) 3162 0 R (HD.2647) 3163 0 R (HD.2648) 3164 0 R (HD.2649) 3165 0 R (HD.265) 492 0 R (HD.2650) 3166 0 R (HD.2651) 3167 0 R (HD.2652) 3168 0 R ] /Limits [ (HD.2624) (HD.2652) ] >>
endobj
11806 0 obj
-<< /Names [ (HD.360) 600 0 R (HD.3600) 4198 0 R (HD.3601) 4199 0 R (HD.3602) 4204 0 R (HD.3603) 4205 0 R (HD.3604) 4206 0 R (HD.3605) 4207 0 R (HD.3606) 4208 0 R (HD.3607) 4209 0 R (HD.3608) 4210 0 R (HD.3609) 4211 0 R (HD.361) 601 0 R (HD.3610) 4212 0 R (HD.3611) 4213 0 R (HD.3612) 4214 0 R (HD.3613) 4215 0 R (HD.3614) 4216 0 R (HD.3615) 4217 0 R (HD.3616) 4218 0 R (HD.3617) 4219 0 R (HD.3618) 4220 0 R (HD.3619) 4221 0 R (HD.362) 602 0 R (HD.3620) 4222 0 R (HD.3621) 4223 0 R (HD.3622) 4224 0 R (HD.3623) 4225 0 R (HD.3624) 4226 0 R (HD.3625) 4227 0 R (HD.3626) 4228 0 R (HD.3627) 4229 0 R (HD.3628) 4230 0 R ] /Limits [ (HD.360) (HD.3628) ] >>
+<< /Names [ (HD.2653) 3169 0 R (HD.2654) 3170 0 R (HD.2655) 3171 0 R (HD.2656) 3172 0 R (HD.2657) 3173 0 R (HD.2658) 3174 0 R (HD.2659) 3175 0 R (HD.266) 493 0 R (HD.2660) 3176 0 R (HD.2661) 3177 0 R (HD.2662) 3178 0 R (HD.2663) 3183 0 R (HD.2664) 3184 0 R (HD.2665) 3185 0 R (HD.2666) 3186 0 R (HD.2667) 3187 0 R (HD.2668) 3188 0 R (HD.2669) 3189 0 R (HD.267) 494 0 R (HD.2670) 3190 0 R (HD.2671) 3191 0 R (HD.2672) 3192 0 R (HD.2673) 3193 0 R (HD.2674) 3194 0 R (HD.2675) 3195 0 R (HD.2676) 3196 0 R (HD.2677) 3197 0 R (HD.2678) 3198 0 R (HD.2679) 3199 0 R (HD.268) 495 0 R (HD.2680) 3200 0 R (HD.2681) 3201 0 R ] /Limits [ (HD.2653) (HD.2681) ] >>
endobj
11807 0 obj
-<< /Names [ (HD.3629) 4231 0 R (HD.363) 608 0 R (HD.3630) 4232 0 R (HD.3631) 4233 0 R (HD.3632) 4234 0 R (HD.3633) 4235 0 R (HD.3634) 4236 0 R (HD.3635) 4237 0 R (HD.3636) 4238 0 R (HD.3637) 4239 0 R (HD.3638) 4240 0 R (HD.3639) 4241 0 R (HD.364) 609 0 R (HD.3640) 4242 0 R (HD.3641) 4243 0 R (HD.3642) 4244 0 R (HD.3643) 4245 0 R (HD.3644) 4246 0 R (HD.3645) 4247 0 R (HD.3646) 4248 0 R (HD.3647) 4249 0 R (HD.3648) 4250 0 R (HD.3649) 4251 0 R (HD.365) 610 0 R (HD.3650) 4256 0 R (HD.3651) 4257 0 R (HD.3652) 4258 0 R (HD.3653) 4259 0 R (HD.3654) 4260 0 R (HD.3655) 4261 0 R (HD.3656) 4262 0 R (HD.3657) 4263 0 R ] /Limits [ (HD.3629) (HD.3657) ] >>
+<< /Names [ (HD.2682) 3202 0 R (HD.2683) 3203 0 R (HD.2684) 3204 0 R (HD.2685) 3205 0 R (HD.2686) 3206 0 R (HD.2687) 3207 0 R (HD.2688) 3208 0 R (HD.2689) 3209 0 R (HD.269) 496 0 R (HD.2690) 3210 0 R (HD.2691) 3211 0 R (HD.2692) 3212 0 R (HD.2693) 3213 0 R (HD.2694) 3214 0 R (HD.2695) 3215 0 R (HD.2696) 3216 0 R (HD.2697) 3217 0 R (HD.2698) 3218 0 R (HD.2699) 3219 0 R (HD.27) 222 0 R (HD.270) 497 0 R (HD.2700) 3220 0 R (HD.2701) 3221 0 R (HD.2702) 3222 0 R (HD.2703) 3223 0 R (HD.2704) 3224 0 R (HD.2705) 3225 0 R (HD.2706) 3226 0 R (HD.2707) 3227 0 R (HD.2708) 3228 0 R (HD.2709) 3229 0 R (HD.271) 498 0 R ] /Limits [ (HD.2682) (HD.271) ] >>
endobj
11808 0 obj
-<< /Names [ (HD.3658) 4264 0 R (HD.3659) 4265 0 R (HD.366) 611 0 R (HD.3660) 4266 0 R (HD.3661) 4267 0 R (HD.3662) 4268 0 R (HD.3663) 4269 0 R (HD.3664) 4270 0 R (HD.3665) 4271 0 R (HD.3666) 4272 0 R (HD.3667) 4273 0 R (HD.3668) 4274 0 R (HD.3669) 4275 0 R (HD.367) 612 0 R (HD.3670) 4276 0 R (HD.3671) 4277 0 R (HD.3672) 4278 0 R (HD.3673) 4279 0 R (HD.3674) 4280 0 R (HD.3675) 4281 0 R (HD.3676) 4282 0 R (HD.3677) 4283 0 R (HD.3678) 4284 0 R (HD.3679) 4285 0 R (HD.368) 613 0 R (HD.3680) 4286 0 R (HD.3681) 4287 0 R (HD.3682) 4288 0 R (HD.3683) 4289 0 R (HD.3684) 4290 0 R (HD.3685) 4291 0 R (HD.3686) 4292 0 R ] /Limits [ (HD.3658) (HD.3686) ] >>
+<< /Names [ (HD.2710) 3230 0 R (HD.2711) 3231 0 R (HD.2712) 3232 0 R (HD.2713) 3233 0 R (HD.2714) 3234 0 R (HD.2715) 3235 0 R (HD.2716) 3236 0 R (HD.2717) 3237 0 R (HD.2718) 3238 0 R (HD.2719) 3243 0 R (HD.272) 499 0 R (HD.2720) 3244 0 R (HD.2721) 3245 0 R (HD.2722) 3246 0 R (HD.2723) 3247 0 R (HD.2724) 3248 0 R (HD.2725) 3249 0 R (HD.2726) 3250 0 R (HD.2727) 3251 0 R (HD.2728) 3252 0 R (HD.2729) 3253 0 R (HD.273) 500 0 R (HD.2730) 3254 0 R (HD.2731) 3255 0 R (HD.2732) 3256 0 R (HD.2733) 3257 0 R (HD.2734) 3258 0 R (HD.2735) 3259 0 R (HD.2736) 3260 0 R (HD.2737) 3261 0 R (HD.2738) 3262 0 R (HD.2739) 3263 0 R ] /Limits [ (HD.2710) (HD.2739) ] >>
endobj
11809 0 obj
-<< /Names [ (HD.3687) 4293 0 R (HD.3688) 4294 0 R (HD.3689) 4295 0 R (HD.369) 614 0 R (HD.3690) 4296 0 R (HD.3691) 4297 0 R (HD.3692) 4298 0 R (HD.3693) 4299 0 R (HD.3694) 4300 0 R (HD.3695) 4306 0 R (HD.3696) 4307 0 R (HD.3697) 4308 0 R (HD.3698) 4309 0 R (HD.3699) 4310 0 R (HD.37) 232 0 R (HD.370) 615 0 R (HD.3700) 4311 0 R (HD.3701) 4312 0 R (HD.3702) 4313 0 R (HD.3703) 4314 0 R (HD.3704) 4315 0 R (HD.3705) 4316 0 R (HD.3706) 4317 0 R (HD.3707) 4318 0 R (HD.3708) 4319 0 R (HD.3709) 4320 0 R (HD.371) 616 0 R (HD.3710) 4321 0 R (HD.3711) 4322 0 R (HD.3712) 4323 0 R (HD.3713) 4324 0 R (HD.3714) 4325 0 R ] /Limits [ (HD.3687) (HD.3714) ] >>
+<< /Names [ (HD.274) 501 0 R (HD.2740) 3264 0 R (HD.2741) 3265 0 R (HD.2742) 3266 0 R (HD.2743) 3267 0 R (HD.2744) 3268 0 R (HD.2745) 3269 0 R (HD.2746) 3270 0 R (HD.2747) 3271 0 R (HD.2748) 3272 0 R (HD.2749) 3273 0 R (HD.275) 502 0 R (HD.2750) 3274 0 R (HD.2751) 3275 0 R (HD.2752) 3276 0 R (HD.2753) 3277 0 R (HD.2754) 3278 0 R (HD.2755) 3279 0 R (HD.2756) 3280 0 R (HD.2757) 3281 0 R (HD.2758) 3282 0 R (HD.2759) 3283 0 R (HD.276) 503 0 R (HD.2760) 3284 0 R (HD.2761) 3285 0 R (HD.2762) 3286 0 R (HD.2763) 3287 0 R (HD.2764) 3288 0 R (HD.2765) 3289 0 R (HD.2766) 3290 0 R (HD.2767) 3291 0 R (HD.2768) 3292 0 R ] /Limits [ (HD.274) (HD.2768) ] >>
endobj
11810 0 obj
-<< /Names [ (HD.3715) 4326 0 R (HD.3716) 4327 0 R (HD.3717) 4328 0 R (HD.3718) 4329 0 R (HD.3719) 4330 0 R (HD.372) 617 0 R (HD.3720) 4331 0 R (HD.3721) 4332 0 R (HD.3722) 4333 0 R (HD.3723) 4334 0 R (HD.3724) 4335 0 R (HD.3725) 4336 0 R (HD.3726) 4337 0 R (HD.3727) 4338 0 R (HD.3728) 4339 0 R (HD.3729) 4340 0 R (HD.373) 618 0 R (HD.3730) 4341 0 R (HD.3731) 4342 0 R (HD.3732) 4343 0 R (HD.3733) 4344 0 R (HD.3734) 4345 0 R (HD.3735) 4346 0 R (HD.3736) 4347 0 R (HD.3737) 4348 0 R (HD.3738) 4349 0 R (HD.3739) 4350 0 R (HD.374) 619 0 R (HD.3740) 4351 0 R (HD.3741) 4352 0 R (HD.3742) 4353 0 R (HD.3743) 4354 0 R ] /Limits [ (HD.3715) (HD.3743) ] >>
+<< /Names [ (HD.2769) 3293 0 R (HD.277) 504 0 R (HD.2770) 3294 0 R (HD.2771) 3295 0 R (HD.2772) 3296 0 R (HD.2773) 3297 0 R (HD.2774) 3303 0 R (HD.2775) 3304 0 R (HD.2776) 3305 0 R (HD.2777) 3306 0 R (HD.2778) 3307 0 R (HD.2779) 3308 0 R (HD.278) 505 0 R (HD.2780) 3309 0 R (HD.2781) 3310 0 R (HD.2782) 3311 0 R (HD.2783) 3312 0 R (HD.2784) 3313 0 R (HD.2785) 3314 0 R (HD.2786) 3315 0 R (HD.2787) 3316 0 R (HD.2788) 3317 0 R (HD.2789) 3318 0 R (HD.279) 506 0 R (HD.2790) 3319 0 R (HD.2791) 3320 0 R (HD.2792) 3321 0 R (HD.2793) 3322 0 R (HD.2794) 3323 0 R (HD.2795) 3324 0 R (HD.2796) 3325 0 R (HD.2797) 3326 0 R ] /Limits [ (HD.2769) (HD.2797) ] >>
endobj
11811 0 obj
-<< /Names [ (HD.3744) 4355 0 R (HD.3745) 4356 0 R (HD.3746) 4361 0 R (HD.3747) 4362 0 R (HD.3748) 4363 0 R (HD.3749) 4364 0 R (HD.375) 620 0 R (HD.3750) 4365 0 R (HD.3751) 4366 0 R (HD.3752) 4367 0 R (HD.3753) 4368 0 R (HD.3754) 4369 0 R (HD.3755) 4370 0 R (HD.3756) 4371 0 R (HD.3757) 4372 0 R (HD.3758) 4373 0 R (HD.3759) 4374 0 R (HD.376) 621 0 R (HD.3760) 4375 0 R (HD.3761) 4376 0 R (HD.3762) 4377 0 R (HD.3763) 4378 0 R (HD.3764) 4379 0 R (HD.3765) 4380 0 R (HD.3766) 4381 0 R (HD.3767) 4382 0 R (HD.3768) 4383 0 R (HD.3769) 4384 0 R (HD.377) 622 0 R (HD.3770) 4385 0 R (HD.3771) 4386 0 R (HD.3772) 4387 0 R ] /Limits [ (HD.3744) (HD.3772) ] >>
+<< /Names [ (HD.2798) 3327 0 R (HD.2799) 3328 0 R (HD.28) 223 0 R (HD.280) 507 0 R (HD.2800) 3329 0 R (HD.2801) 3330 0 R (HD.2802) 3331 0 R (HD.2803) 3332 0 R (HD.2804) 3333 0 R (HD.2805) 3338 0 R (HD.2806) 3339 0 R (HD.2807) 3340 0 R (HD.2808) 3341 0 R (HD.2809) 3342 0 R (HD.281) 508 0 R (HD.2810) 3343 0 R (HD.2811) 3344 0 R (HD.2812) 3345 0 R (HD.2813) 3346 0 R (HD.2814) 3347 0 R (HD.2815) 3348 0 R (HD.2816) 3349 0 R (HD.2817) 3350 0 R (HD.2818) 3351 0 R (HD.2819) 3352 0 R (HD.282) 509 0 R (HD.2820) 3353 0 R (HD.2821) 3354 0 R (HD.2822) 3355 0 R (HD.2823) 3356 0 R (HD.2824) 3357 0 R (HD.2825) 3358 0 R ] /Limits [ (HD.2798) (HD.2825) ] >>
endobj
11812 0 obj
-<< /Names [ (HD.3773) 4388 0 R (HD.3774) 4389 0 R (HD.3775) 4390 0 R (HD.3776) 4391 0 R (HD.3777) 4392 0 R (HD.3778) 4393 0 R (HD.3779) 4394 0 R (HD.378) 623 0 R (HD.3780) 4395 0 R (HD.3781) 4396 0 R (HD.3782) 4397 0 R (HD.3783) 4398 0 R (HD.3784) 4399 0 R (HD.3785) 4400 0 R (HD.3786) 4401 0 R (HD.3787) 4402 0 R (HD.3788) 4403 0 R (HD.3789) 4404 0 R (HD.379) 624 0 R (HD.3790) 4405 0 R (HD.3791) 4406 0 R (HD.3792) 4407 0 R (HD.3793) 4408 0 R (HD.3794) 4409 0 R (HD.3795) 4410 0 R (HD.3796) 4411 0 R (HD.3797) 4412 0 R (HD.3798) 4413 0 R (HD.3799) 4414 0 R (HD.38) 233 0 R (HD.380) 625 0 R (HD.3800) 4415 0 R ] /Limits [ (HD.3773) (HD.3800) ] >>
+<< /Names [ (HD.2826) 3359 0 R (HD.2827) 3360 0 R (HD.2828) 3361 0 R (HD.2829) 3362 0 R (HD.283) 510 0 R (HD.2830) 3363 0 R (HD.2831) 3364 0 R (HD.2832) 3365 0 R (HD.2833) 3366 0 R (HD.2834) 3367 0 R (HD.2835) 3368 0 R (HD.2836) 3369 0 R (HD.2837) 3370 0 R (HD.2838) 3371 0 R (HD.2839) 3372 0 R (HD.284) 511 0 R (HD.2840) 3373 0 R (HD.2841) 3374 0 R (HD.2842) 3375 0 R (HD.2843) 3376 0 R (HD.2844) 3377 0 R (HD.2845) 3378 0 R (HD.2846) 3379 0 R (HD.2847) 3380 0 R (HD.2848) 3385 0 R (HD.2849) 3386 0 R (HD.285) 512 0 R (HD.2850) 3387 0 R (HD.2851) 3388 0 R (HD.2852) 3389 0 R (HD.2853) 3390 0 R (HD.2854) 3391 0 R ] /Limits [ (HD.2826) (HD.2854) ] >>
endobj
11813 0 obj
-<< /Names [ (HD.3801) 4416 0 R (HD.3802) 4417 0 R (HD.3803) 4418 0 R (HD.3804) 4419 0 R (HD.3805) 4420 0 R (HD.3806) 4425 0 R (HD.3807) 4426 0 R (HD.3808) 4427 0 R (HD.3809) 4428 0 R (HD.381) 626 0 R (HD.3810) 4429 0 R (HD.3811) 4430 0 R (HD.3812) 4431 0 R (HD.3813) 4432 0 R (HD.3814) 4433 0 R (HD.3815) 4434 0 R (HD.3816) 4435 0 R (HD.3817) 4436 0 R (HD.3818) 4437 0 R (HD.3819) 4438 0 R (HD.382) 627 0 R (HD.3820) 4439 0 R (HD.3821) 4440 0 R (HD.3822) 4441 0 R (HD.3823) 4442 0 R (HD.3824) 4443 0 R (HD.3825) 4444 0 R (HD.3826) 4445 0 R (HD.3827) 4446 0 R (HD.3828) 4447 0 R (HD.3829) 4448 0 R (HD.383) 628 0 R ] /Limits [ (HD.3801) (HD.383) ] >>
+<< /Names [ (HD.2855) 3392 0 R (HD.2856) 3393 0 R (HD.2857) 3394 0 R (HD.2858) 3395 0 R (HD.2859) 3396 0 R (HD.286) 513 0 R (HD.2860) 3397 0 R (HD.2861) 3398 0 R (HD.2862) 3399 0 R (HD.2863) 3400 0 R (HD.2864) 3401 0 R (HD.2865) 3402 0 R (HD.2866) 3403 0 R (HD.2867) 3404 0 R (HD.2868) 3405 0 R (HD.2869) 3406 0 R (HD.287) 514 0 R (HD.2870) 3407 0 R (HD.2871) 3408 0 R (HD.2872) 3409 0 R (HD.2873) 3410 0 R (HD.2874) 3411 0 R (HD.2875) 3412 0 R (HD.2876) 3413 0 R (HD.2877) 3414 0 R (HD.2878) 3415 0 R (HD.2879) 3416 0 R (HD.288) 515 0 R (HD.2880) 3417 0 R (HD.2881) 3418 0 R (HD.2882) 3419 0 R (HD.2883) 3420 0 R ] /Limits [ (HD.2855) (HD.2883) ] >>
endobj
11814 0 obj
-<< /Names [ (HD.3830) 4449 0 R (HD.3831) 4450 0 R (HD.3832) 4451 0 R (HD.3833) 4452 0 R (HD.3834) 4453 0 R (HD.3835) 4454 0 R (HD.3836) 4455 0 R (HD.3837) 4456 0 R (HD.3838) 4457 0 R (HD.3839) 4458 0 R (HD.384) 629 0 R (HD.3840) 4459 0 R (HD.3841) 4464 0 R (HD.3842) 4465 0 R (HD.3843) 4466 0 R (HD.3844) 4467 0 R (HD.3845) 4468 0 R (HD.3846) 4469 0 R (HD.3847) 4470 0 R (HD.3848) 4471 0 R (HD.3849) 4472 0 R (HD.385) 630 0 R (HD.3850) 4473 0 R (HD.3851) 4474 0 R (HD.3852) 4475 0 R (HD.3853) 4476 0 R (HD.3854) 4477 0 R (HD.3855) 4478 0 R (HD.3856) 4479 0 R (HD.3857) 4480 0 R (HD.3858) 4481 0 R (HD.3859) 4482 0 R ] /Limits [ (HD.3830) (HD.3859) ] >>
+<< /Names [ (HD.2884) 3421 0 R (HD.2885) 3422 0 R (HD.2886) 3423 0 R (HD.2887) 3424 0 R (HD.2888) 3425 0 R (HD.2889) 3430 0 R (HD.289) 516 0 R (HD.2890) 3431 0 R (HD.2891) 3432 0 R (HD.2892) 3433 0 R (HD.2893) 3434 0 R (HD.2894) 3435 0 R (HD.2895) 3436 0 R (HD.2896) 3437 0 R (HD.2897) 3438 0 R (HD.2898) 3439 0 R (HD.2899) 3440 0 R (HD.29) 224 0 R (HD.290) 517 0 R (HD.2900) 3441 0 R (HD.2901) 3442 0 R (HD.2902) 3443 0 R (HD.2903) 3444 0 R (HD.2904) 3445 0 R (HD.2905) 3446 0 R (HD.2906) 3447 0 R (HD.2907) 3448 0 R (HD.2908) 3449 0 R (HD.2909) 3450 0 R (HD.291) 518 0 R (HD.2910) 3451 0 R (HD.2911) 3452 0 R ] /Limits [ (HD.2884) (HD.2911) ] >>
endobj
11815 0 obj
-<< /Names [ (HD.386) 635 0 R (HD.3860) 4483 0 R (HD.3861) 4484 0 R (HD.3862) 4485 0 R (HD.3863) 4486 0 R (HD.3864) 4487 0 R (HD.3865) 4488 0 R (HD.3866) 4489 0 R (HD.3867) 4490 0 R (HD.3868) 4491 0 R (HD.3869) 4492 0 R (HD.387) 636 0 R (HD.3870) 4493 0 R (HD.3871) 4494 0 R (HD.3872) 4495 0 R (HD.3873) 4496 0 R (HD.3874) 4497 0 R (HD.3875) 4498 0 R (HD.3876) 4499 0 R (HD.3877) 4500 0 R (HD.3878) 4501 0 R (HD.3879) 4502 0 R (HD.388) 637 0 R (HD.3880) 4503 0 R (HD.3881) 4504 0 R (HD.3882) 4505 0 R (HD.3883) 4506 0 R (HD.3884) 4507 0 R (HD.3885) 4508 0 R (HD.3886) 4509 0 R (HD.3887) 4510 0 R (HD.3888) 4511 0 R ] /Limits [ (HD.386) (HD.3888) ] >>
+<< /Names [ (HD.2912) 3453 0 R (HD.2913) 3454 0 R (HD.2914) 3455 0 R (HD.2915) 3456 0 R (HD.2916) 3457 0 R (HD.2917) 3458 0 R (HD.2918) 3459 0 R (HD.2919) 3460 0 R (HD.292) 519 0 R (HD.2920) 3461 0 R (HD.2921) 3462 0 R (HD.2922) 3463 0 R (HD.2923) 3464 0 R (HD.2924) 3465 0 R (HD.2925) 3466 0 R (HD.2926) 3467 0 R (HD.2927) 3468 0 R (HD.2928) 3469 0 R (HD.2929) 3470 0 R (HD.293) 520 0 R (HD.2930) 3471 0 R (HD.2931) 3472 0 R (HD.2932) 3473 0 R (HD.2933) 3474 0 R (HD.2934) 3475 0 R (HD.2935) 3476 0 R (HD.2936) 3477 0 R (HD.2937) 3478 0 R (HD.2938) 3479 0 R (HD.2939) 3480 0 R (HD.294) 521 0 R (HD.2940) 3481 0 R ] /Limits [ (HD.2912) (HD.2940) ] >>
endobj
11816 0 obj
-<< /Names [ (HD.3889) 4512 0 R (HD.389) 638 0 R (HD.3890) 4513 0 R (HD.3891) 4514 0 R (HD.3892) 4515 0 R (HD.3893) 4516 0 R (HD.3894) 4517 0 R (HD.3895) 4518 0 R (HD.3896) 4524 0 R (HD.3897) 4525 0 R (HD.3898) 4526 0 R (HD.3899) 4527 0 R (HD.39) 234 0 R (HD.390) 639 0 R (HD.3900) 4528 0 R (HD.3901) 4529 0 R (HD.3902) 4530 0 R (HD.3903) 4531 0 R (HD.3904) 4532 0 R (HD.3905) 4534 0 R (HD.3906) 4535 0 R (HD.3907) 4536 0 R (HD.3908) 4537 0 R (HD.3909) 4538 0 R (HD.391) 640 0 R (HD.3910) 4539 0 R (HD.3911) 4540 0 R (HD.3912) 4541 0 R (HD.3913) 4542 0 R (HD.3914) 4543 0 R (HD.3915) 4544 0 R (HD.3916) 4545 0 R ] /Limits [ (HD.3889) (HD.3916) ] >>
+<< /Names [ (HD.2941) 3486 0 R (HD.2942) 3487 0 R (HD.2943) 3488 0 R (HD.2944) 3489 0 R (HD.2945) 3490 0 R (HD.2946) 3491 0 R (HD.2947) 3492 0 R (HD.2948) 3493 0 R (HD.2949) 3494 0 R (HD.295) 522 0 R (HD.2950) 3495 0 R (HD.2951) 3496 0 R (HD.2952) 3497 0 R (HD.2953) 3498 0 R (HD.2954) 3499 0 R (HD.2955) 3500 0 R (HD.2956) 3501 0 R (HD.2957) 3502 0 R (HD.2958) 3503 0 R (HD.2959) 3504 0 R (HD.296) 523 0 R (HD.2960) 3505 0 R (HD.2961) 3506 0 R (HD.2962) 3507 0 R (HD.2963) 3508 0 R (HD.2964) 3509 0 R (HD.2965) 3510 0 R (HD.2966) 3511 0 R (HD.2967) 3512 0 R (HD.2968) 3513 0 R (HD.2969) 3514 0 R (HD.297) 524 0 R ] /Limits [ (HD.2941) (HD.297) ] >>
endobj
11817 0 obj
-<< /Names [ (HD.3917) 4546 0 R (HD.3918) 4547 0 R (HD.3919) 4548 0 R (HD.392) 641 0 R (HD.3920) 4549 0 R (HD.3921) 4550 0 R (HD.3922) 4551 0 R (HD.3923) 4552 0 R (HD.3924) 4553 0 R (HD.3925) 4554 0 R (HD.3926) 4555 0 R (HD.3927) 4556 0 R (HD.3928) 4563 0 R (HD.3929) 4564 0 R (HD.393) 642 0 R (HD.3930) 4565 0 R (HD.3931) 4566 0 R (HD.3932) 4567 0 R (HD.3933) 4568 0 R (HD.3934) 4569 0 R (HD.3935) 4570 0 R (HD.3936) 4571 0 R (HD.3937) 4572 0 R (HD.3938) 4573 0 R (HD.3939) 4574 0 R (HD.394) 643 0 R (HD.3940) 4575 0 R (HD.3941) 4576 0 R (HD.3942) 4577 0 R (HD.3943) 4578 0 R (HD.3944) 4579 0 R (HD.3945) 4580 0 R ] /Limits [ (HD.3917) (HD.3945) ] >>
+<< /Names [ (HD.2970) 3515 0 R (HD.2971) 3516 0 R (HD.2972) 3517 0 R (HD.2973) 3518 0 R (HD.2974) 3519 0 R (HD.2975) 3520 0 R (HD.2976) 3521 0 R (HD.2977) 3522 0 R (HD.2978) 3523 0 R (HD.2979) 3524 0 R (HD.298) 525 0 R (HD.2980) 3525 0 R (HD.2981) 3526 0 R (HD.2982) 3527 0 R (HD.2983) 3528 0 R (HD.2984) 3529 0 R (HD.2985) 3530 0 R (HD.2986) 3531 0 R (HD.2987) 3532 0 R (HD.2988) 3533 0 R (HD.2989) 3534 0 R (HD.299) 526 0 R (HD.2990) 3535 0 R (HD.2991) 3540 0 R (HD.2992) 3541 0 R (HD.2993) 3542 0 R (HD.2994) 3543 0 R (HD.2995) 3544 0 R (HD.2996) 3545 0 R (HD.2997) 3546 0 R (HD.2998) 3547 0 R (HD.2999) 3548 0 R ] /Limits [ (HD.2970) (HD.2999) ] >>
endobj
11818 0 obj
-<< /Names [ (HD.3946) 4581 0 R (HD.3947) 4582 0 R (HD.3948) 4583 0 R (HD.3949) 4584 0 R (HD.395) 644 0 R (HD.3950) 4585 0 R (HD.3951) 4586 0 R (HD.3952) 4587 0 R (HD.3953) 4588 0 R (HD.3954) 4589 0 R (HD.3955) 4590 0 R (HD.3956) 4591 0 R (HD.3957) 4592 0 R (HD.3958) 4593 0 R (HD.3959) 4594 0 R (HD.396) 645 0 R (HD.3960) 4595 0 R (HD.3961) 4596 0 R (HD.3962) 4597 0 R (HD.3963) 4598 0 R (HD.3964) 4599 0 R (HD.3965) 4600 0 R (HD.3966) 4601 0 R (HD.3967) 4602 0 R (HD.3968) 4603 0 R (HD.3969) 4609 0 R (HD.397) 646 0 R (HD.3970) 4610 0 R (HD.3971) 4611 0 R (HD.3972) 4612 0 R (HD.3973) 4613 0 R (HD.3974) 4614 0 R ] /Limits [ (HD.3946) (HD.3974) ] >>
+<< /Names [ (HD.3) 191 0 R (HD.30) 225 0 R (HD.300) 527 0 R (HD.3000) 3549 0 R (HD.3001) 3550 0 R (HD.3002) 3551 0 R (HD.3003) 3552 0 R (HD.3004) 3553 0 R (HD.3005) 3554 0 R (HD.3006) 3555 0 R (HD.3007) 3556 0 R (HD.3008) 3557 0 R (HD.3009) 3558 0 R (HD.301) 528 0 R (HD.3010) 3559 0 R (HD.3011) 3560 0 R (HD.3012) 3561 0 R (HD.3013) 3562 0 R (HD.3014) 3563 0 R (HD.3015) 3564 0 R (HD.3016) 3565 0 R (HD.3017) 3566 0 R (HD.3018) 3567 0 R (HD.3019) 3568 0 R (HD.302) 529 0 R (HD.3020) 3569 0 R (HD.3021) 3570 0 R (HD.3022) 3571 0 R (HD.3023) 3572 0 R (HD.3024) 3573 0 R (HD.3025) 3574 0 R (HD.3026) 3575 0 R ] /Limits [ (HD.3) (HD.3026) ] >>
endobj
11819 0 obj
-<< /Names [ (HD.3975) 4615 0 R (HD.3976) 4616 0 R (HD.3977) 4617 0 R (HD.3978) 4618 0 R (HD.3979) 4619 0 R (HD.398) 647 0 R (HD.3980) 4620 0 R (HD.3981) 4621 0 R (HD.3982) 4622 0 R (HD.3983) 4623 0 R (HD.3984) 4624 0 R (HD.3985) 4625 0 R (HD.3986) 4626 0 R (HD.3987) 4627 0 R (HD.3988) 4628 0 R (HD.3989) 4629 0 R (HD.399) 648 0 R (HD.3990) 4630 0 R (HD.3991) 4631 0 R (HD.3992) 4632 0 R (HD.3993) 4633 0 R (HD.3994) 4634 0 R (HD.3995) 4635 0 R (HD.3996) 4636 0 R (HD.3997) 4637 0 R (HD.3998) 4638 0 R (HD.3999) 4639 0 R (HD.4) 192 0 R (HD.40) 235 0 R (HD.400) 649 0 R (HD.4000) 4640 0 R (HD.4001) 4641 0 R ] /Limits [ (HD.3975) (HD.4001) ] >>
+<< /Names [ (HD.3027) 3576 0 R (HD.3028) 3577 0 R (HD.3029) 3578 0 R (HD.303) 530 0 R (HD.3030) 3579 0 R (HD.3031) 3580 0 R (HD.3032) 3581 0 R (HD.3033) 3582 0 R (HD.3034) 3583 0 R (HD.3035) 3584 0 R (HD.3036) 3585 0 R (HD.3037) 3586 0 R (HD.3038) 3591 0 R (HD.3039) 3592 0 R (HD.304) 535 0 R (HD.3040) 3593 0 R (HD.3041) 3594 0 R (HD.3042) 3595 0 R (HD.3043) 3596 0 R (HD.3044) 3597 0 R (HD.3045) 3598 0 R (HD.3046) 3599 0 R (HD.3047) 3600 0 R (HD.3048) 3601 0 R (HD.3049) 3602 0 R (HD.305) 536 0 R (HD.3050) 3603 0 R (HD.3051) 3604 0 R (HD.3052) 3605 0 R (HD.3053) 3606 0 R (HD.3054) 3607 0 R (HD.3055) 3608 0 R ] /Limits [ (HD.3027) (HD.3055) ] >>
endobj
11820 0 obj
-<< /Names [ (HD.4002) 4642 0 R (HD.4003) 4643 0 R (HD.4004) 4644 0 R (HD.4005) 4645 0 R (HD.4006) 4646 0 R (HD.4007) 4647 0 R (HD.4008) 4648 0 R (HD.4009) 4655 0 R (HD.401) 650 0 R (HD.4010) 4656 0 R (HD.4011) 4657 0 R (HD.4012) 4658 0 R (HD.4013) 4659 0 R (HD.4014) 4660 0 R (HD.4015) 4661 0 R (HD.4016) 4662 0 R (HD.4017) 4663 0 R (HD.4018) 4664 0 R (HD.4019) 4665 0 R (HD.402) 651 0 R (HD.4020) 4666 0 R (HD.4021) 4667 0 R (HD.4022) 4668 0 R (HD.4023) 4669 0 R (HD.4024) 4670 0 R (HD.4025) 4671 0 R (HD.4026) 4672 0 R (HD.4027) 4673 0 R (HD.4028) 4674 0 R (HD.4029) 4675 0 R (HD.403) 652 0 R (HD.4030) 4676 0 R ] /Limits [ (HD.4002) (HD.4030) ] >>
+<< /Names [ (HD.3056) 3609 0 R (HD.3057) 3610 0 R (HD.3058) 3611 0 R (HD.3059) 3612 0 R (HD.306) 537 0 R (HD.3060) 3613 0 R (HD.3061) 3614 0 R (HD.3062) 3615 0 R (HD.3063) 3616 0 R (HD.3064) 3617 0 R (HD.3065) 3618 0 R (HD.3066) 3619 0 R (HD.3067) 3620 0 R (HD.3068) 3621 0 R (HD.3069) 3622 0 R (HD.307) 538 0 R (HD.3070) 3623 0 R (HD.3071) 3624 0 R (HD.3072) 3625 0 R (HD.3073) 3626 0 R (HD.3074) 3627 0 R (HD.3075) 3628 0 R (HD.3076) 3629 0 R (HD.3077) 3630 0 R (HD.3078) 3631 0 R (HD.3079) 3632 0 R (HD.308) 539 0 R (HD.3080) 3633 0 R (HD.3081) 3634 0 R (HD.3082) 3635 0 R (HD.3083) 3636 0 R (HD.3084) 3641 0 R ] /Limits [ (HD.3056) (HD.3084) ] >>
endobj
11821 0 obj
-<< /Names [ (HD.4031) 4677 0 R (HD.4032) 4678 0 R (HD.4033) 4679 0 R (HD.4034) 4680 0 R (HD.4035) 4681 0 R (HD.4036) 4682 0 R (HD.4037) 4683 0 R (HD.4038) 4684 0 R (HD.4039) 4685 0 R (HD.404) 653 0 R (HD.4040) 4686 0 R (HD.4041) 4687 0 R (HD.4042) 4688 0 R (HD.4043) 4689 0 R (HD.4044) 4690 0 R (HD.4045) 4691 0 R (HD.4046) 4692 0 R (HD.4047) 4693 0 R (HD.4048) 4694 0 R (HD.4049) 4695 0 R (HD.405) 654 0 R (HD.4050) 4696 0 R (HD.4051) 4697 0 R (HD.4052) 4698 0 R (HD.4053) 4699 0 R (HD.4054) 4700 0 R (HD.4055) 4701 0 R (HD.4056) 4702 0 R (HD.4057) 4707 0 R (HD.4058) 4708 0 R (HD.4059) 4709 0 R (HD.406) 659 0 R ] /Limits [ (HD.4031) (HD.406) ] >>
+<< /Names [ (HD.3085) 3642 0 R (HD.3086) 3643 0 R (HD.3087) 3644 0 R (HD.3088) 3645 0 R (HD.3089) 3646 0 R (HD.309) 540 0 R (HD.3090) 3647 0 R (HD.3091) 3648 0 R (HD.3092) 3649 0 R (HD.3093) 3650 0 R (HD.3094) 3651 0 R (HD.3095) 3652 0 R (HD.3096) 3653 0 R (HD.3097) 3654 0 R (HD.3098) 3655 0 R (HD.3099) 3656 0 R (HD.31) 226 0 R (HD.310) 541 0 R (HD.3100) 3657 0 R (HD.3101) 3658 0 R (HD.3102) 3659 0 R (HD.3103) 3660 0 R (HD.3104) 3661 0 R (HD.3105) 3662 0 R (HD.3106) 3663 0 R (HD.3107) 3664 0 R (HD.3108) 3665 0 R (HD.3109) 3666 0 R (HD.311) 542 0 R (HD.3110) 3667 0 R (HD.3111) 3668 0 R (HD.3112) 3669 0 R ] /Limits [ (HD.3085) (HD.3112) ] >>
endobj
11822 0 obj
-<< /Names [ (HD.4060) 4710 0 R (HD.4061) 4711 0 R (HD.4062) 4712 0 R (HD.4063) 4713 0 R (HD.4064) 4714 0 R (HD.4065) 4715 0 R (HD.4066) 4716 0 R (HD.4067) 4717 0 R (HD.4068) 4718 0 R (HD.4069) 4719 0 R (HD.407) 661 0 R (HD.4070) 4720 0 R (HD.4071) 4721 0 R (HD.4072) 4722 0 R (HD.4073) 4723 0 R (HD.4074) 4724 0 R (HD.4075) 4725 0 R (HD.4076) 4726 0 R (HD.4077) 4727 0 R (HD.4078) 4728 0 R (HD.4079) 4729 0 R (HD.408) 663 0 R (HD.4080) 4730 0 R (HD.4081) 4731 0 R (HD.4082) 4732 0 R (HD.4083) 4733 0 R (HD.4084) 4734 0 R (HD.4085) 4735 0 R (HD.4086) 4736 0 R (HD.4087) 4737 0 R (HD.4088) 4738 0 R (HD.4089) 4739 0 R ] /Limits [ (HD.4060) (HD.4089) ] >>
+<< /Names [ (HD.3113) 3670 0 R (HD.3114) 3671 0 R (HD.3115) 3672 0 R (HD.3116) 3673 0 R (HD.3117) 3674 0 R (HD.3118) 3675 0 R (HD.3119) 3676 0 R (HD.312) 543 0 R (HD.3120) 3677 0 R (HD.3121) 3678 0 R (HD.3122) 3679 0 R (HD.3123) 3680 0 R (HD.3124) 3681 0 R (HD.3125) 3686 0 R (HD.3126) 3687 0 R (HD.3127) 3688 0 R (HD.3128) 3689 0 R (HD.3129) 3690 0 R (HD.313) 544 0 R (HD.3130) 3691 0 R (HD.3131) 3692 0 R (HD.3132) 3693 0 R (HD.3133) 3694 0 R (HD.3134) 3695 0 R (HD.3135) 3696 0 R (HD.3136) 3697 0 R (HD.3137) 3698 0 R (HD.3138) 3699 0 R (HD.3139) 3700 0 R (HD.314) 545 0 R (HD.3140) 3701 0 R (HD.3141) 3702 0 R ] /Limits [ (HD.3113) (HD.3141) ] >>
endobj
11823 0 obj
-<< /Names [ (HD.409) 664 0 R (HD.4090) 4740 0 R (HD.4091) 4741 0 R (HD.4092) 4742 0 R (HD.4093) 4747 0 R (HD.4094) 4748 0 R (HD.4095) 4749 0 R (HD.4096) 4750 0 R (HD.4097) 4751 0 R (HD.4098) 4752 0 R (HD.4099) 4753 0 R (HD.41) 236 0 R (HD.410) 665 0 R (HD.4100) 4754 0 R (HD.4101) 4755 0 R (HD.4102) 4756 0 R (HD.4103) 4757 0 R (HD.4104) 4758 0 R (HD.4105) 4759 0 R (HD.4106) 4760 0 R (HD.4107) 4761 0 R (HD.4108) 4762 0 R (HD.4109) 4763 0 R (HD.411) 666 0 R (HD.4110) 4764 0 R (HD.4111) 4765 0 R (HD.4112) 4766 0 R (HD.4113) 4767 0 R (HD.4114) 4768 0 R (HD.4115) 4769 0 R (HD.4116) 4770 0 R (HD.4117) 4771 0 R ] /Limits [ (HD.409) (HD.4117) ] >>
+<< /Names [ (HD.3142) 3703 0 R (HD.3143) 3704 0 R (HD.3144) 3705 0 R (HD.3145) 3706 0 R (HD.3146) 3707 0 R (HD.3147) 3708 0 R (HD.3148) 3709 0 R (HD.3149) 3710 0 R (HD.315) 546 0 R (HD.3150) 3711 0 R (HD.3151) 3712 0 R (HD.3152) 3713 0 R (HD.3153) 3714 0 R (HD.3154) 3715 0 R (HD.3155) 3716 0 R (HD.3156) 3717 0 R (HD.3157) 3718 0 R (HD.3158) 3719 0 R (HD.3159) 3720 0 R (HD.316) 547 0 R (HD.3160) 3721 0 R (HD.3161) 3722 0 R (HD.3162) 3723 0 R (HD.3163) 3724 0 R (HD.3164) 3725 0 R (HD.3165) 3726 0 R (HD.3166) 3727 0 R (HD.3167) 3728 0 R (HD.3168) 3729 0 R (HD.3169) 3730 0 R (HD.317) 548 0 R (HD.3170) 3731 0 R ] /Limits [ (HD.3142) (HD.3170) ] >>
endobj
11824 0 obj
-<< /Names [ (HD.4118) 4772 0 R (HD.4119) 4773 0 R (HD.412) 667 0 R (HD.4120) 4774 0 R (HD.4121) 4775 0 R (HD.4122) 4776 0 R (HD.4123) 4777 0 R (HD.4124) 4778 0 R (HD.4125) 4779 0 R (HD.4126) 4780 0 R (HD.4127) 4781 0 R (HD.4128) 4782 0 R (HD.4129) 4783 0 R (HD.413) 669 0 R (HD.4130) 4784 0 R (HD.4131) 4790 0 R (HD.4132) 4791 0 R (HD.4133) 4792 0 R (HD.4134) 4793 0 R (HD.4135) 4794 0 R (HD.4136) 4795 0 R (HD.4137) 4796 0 R (HD.4138) 4797 0 R (HD.4139) 4798 0 R (HD.414) 670 0 R (HD.4140) 4799 0 R (HD.4141) 4800 0 R (HD.4142) 4801 0 R (HD.4143) 4802 0 R (HD.4144) 4803 0 R (HD.4145) 4804 0 R (HD.4146) 4805 0 R ] /Limits [ (HD.4118) (HD.4146) ] >>
+<< /Names [ (HD.3171) 3736 0 R (HD.3172) 3737 0 R (HD.3173) 3738 0 R (HD.3174) 3739 0 R (HD.3175) 3740 0 R (HD.3176) 3741 0 R (HD.3177) 3742 0 R (HD.3178) 3743 0 R (HD.3179) 3744 0 R (HD.318) 549 0 R (HD.3180) 3745 0 R (HD.3181) 3746 0 R (HD.3182) 3747 0 R (HD.3183) 3748 0 R (HD.3184) 3749 0 R (HD.3185) 3750 0 R (HD.3186) 3751 0 R (HD.3187) 3752 0 R (HD.3188) 3753 0 R (HD.3189) 3754 0 R (HD.319) 550 0 R (HD.3190) 3755 0 R (HD.3191) 3756 0 R (HD.3192) 3757 0 R (HD.3193) 3758 0 R (HD.3194) 3759 0 R (HD.3195) 3760 0 R (HD.3196) 3761 0 R (HD.3197) 3762 0 R (HD.3198) 3763 0 R (HD.3199) 3764 0 R (HD.32) 227 0 R ] /Limits [ (HD.3171) (HD.32) ] >>
endobj
11825 0 obj
-<< /Names [ (HD.4147) 4806 0 R (HD.4148) 4807 0 R (HD.4149) 4808 0 R (HD.415) 671 0 R (HD.4150) 4809 0 R (HD.4151) 4810 0 R (HD.4152) 4811 0 R (HD.4153) 4812 0 R (HD.4154) 4813 0 R (HD.4155) 4814 0 R (HD.4156) 4815 0 R (HD.4157) 4816 0 R (HD.4158) 4817 0 R (HD.4159) 4818 0 R (HD.416) 672 0 R (HD.4160) 4819 0 R (HD.4161) 4820 0 R (HD.4162) 4821 0 R (HD.4163) 4822 0 R (HD.4164) 4823 0 R (HD.4165) 4824 0 R (HD.4166) 4825 0 R (HD.4167) 4826 0 R (HD.4168) 4827 0 R (HD.4169) 4828 0 R (HD.417) 673 0 R (HD.4170) 4829 0 R (HD.4171) 4830 0 R (HD.4172) 4831 0 R (HD.4173) 4832 0 R (HD.4174) 4833 0 R (HD.4175) 4834 0 R ] /Limits [ (HD.4147) (HD.4175) ] >>
+<< /Names [ (HD.320) 551 0 R (HD.3200) 3765 0 R (HD.3201) 3766 0 R (HD.3202) 3767 0 R (HD.3203) 3768 0 R (HD.3204) 3769 0 R (HD.3205) 3770 0 R (HD.3206) 3771 0 R (HD.3207) 3772 0 R (HD.3208) 3773 0 R (HD.3209) 3774 0 R (HD.321) 552 0 R (HD.3210) 3775 0 R (HD.3211) 3776 0 R (HD.3212) 3777 0 R (HD.3213) 3778 0 R (HD.3214) 3779 0 R (HD.3215) 3780 0 R (HD.3216) 3781 0 R (HD.3217) 3782 0 R (HD.3218) 3783 0 R (HD.3219) 3789 0 R (HD.322) 553 0 R (HD.3220) 3790 0 R (HD.3221) 3791 0 R (HD.3222) 3792 0 R (HD.3223) 3793 0 R (HD.3224) 3794 0 R (HD.3225) 3795 0 R (HD.3226) 3796 0 R (HD.3227) 3797 0 R (HD.3228) 3798 0 R ] /Limits [ (HD.320) (HD.3228) ] >>
endobj
11826 0 obj
-<< /Names [ (HD.4176) 4835 0 R (HD.4177) 4836 0 R (HD.4178) 4837 0 R (HD.4179) 4838 0 R (HD.418) 674 0 R (HD.4180) 4843 0 R (HD.4181) 4844 0 R (HD.4182) 4845 0 R (HD.4183) 4846 0 R (HD.4184) 4847 0 R (HD.4185) 4848 0 R (HD.4186) 4849 0 R (HD.4187) 4850 0 R (HD.4188) 4851 0 R (HD.4189) 4852 0 R (HD.419) 675 0 R (HD.4190) 4853 0 R (HD.4191) 4854 0 R (HD.4192) 4855 0 R (HD.4193) 4856 0 R (HD.4194) 4857 0 R (HD.4195) 4858 0 R (HD.4196) 4859 0 R (HD.4197) 4860 0 R (HD.4198) 4861 0 R (HD.4199) 4862 0 R (HD.42) 237 0 R (HD.420) 676 0 R (HD.4200) 4863 0 R (HD.4201) 4864 0 R (HD.4202) 4865 0 R (HD.4203) 4866 0 R ] /Limits [ (HD.4176) (HD.4203) ] >>
+<< /Names [ (HD.3229) 3799 0 R (HD.323) 554 0 R (HD.3230) 3800 0 R (HD.3231) 3801 0 R (HD.3232) 3802 0 R (HD.3233) 3803 0 R (HD.3234) 3804 0 R (HD.3235) 3805 0 R (HD.3236) 3806 0 R (HD.3237) 3807 0 R (HD.3238) 3808 0 R (HD.3239) 3809 0 R (HD.324) 555 0 R (HD.3240) 3810 0 R (HD.3241) 3811 0 R (HD.3242) 3812 0 R (HD.3243) 3813 0 R (HD.3244) 3814 0 R (HD.3245) 3815 0 R (HD.3246) 3816 0 R (HD.3247) 3817 0 R (HD.3248) 3818 0 R (HD.3249) 3819 0 R (HD.325) 557 0 R (HD.3250) 3820 0 R (HD.3251) 3821 0 R (HD.3252) 3822 0 R (HD.3253) 3823 0 R (HD.3254) 3824 0 R (HD.3255) 3825 0 R (HD.3256) 3826 0 R (HD.3257) 3827 0 R ] /Limits [ (HD.3229) (HD.3257) ] >>
endobj
11827 0 obj
-<< /Names [ (HD.4204) 4867 0 R (HD.4205) 4868 0 R (HD.4206) 4869 0 R (HD.4207) 4870 0 R (HD.4208) 4871 0 R (HD.4209) 4872 0 R (HD.421) 677 0 R (HD.4210) 4873 0 R (HD.4211) 4874 0 R (HD.4212) 4875 0 R (HD.4213) 4876 0 R (HD.4214) 4877 0 R (HD.4215) 4878 0 R (HD.4216) 4879 0 R (HD.4217) 4880 0 R (HD.4218) 4881 0 R (HD.4219) 4882 0 R (HD.422) 682 0 R (HD.4220) 4883 0 R (HD.4221) 4884 0 R (HD.4222) 4885 0 R (HD.4223) 4886 0 R (HD.4224) 4887 0 R (HD.4225) 4888 0 R (HD.4226) 4889 0 R (HD.4227) 4890 0 R (HD.4228) 4891 0 R (HD.4229) 4892 0 R (HD.423) 683 0 R (HD.4230) 4893 0 R (HD.4231) 4894 0 R (HD.4232) 4895 0 R ] /Limits [ (HD.4204) (HD.4232) ] >>
+<< /Names [ (HD.3258) 3828 0 R (HD.3259) 3829 0 R (HD.326) 558 0 R (HD.3260) 3830 0 R (HD.3261) 3831 0 R (HD.3262) 3832 0 R (HD.3263) 3833 0 R (HD.3264) 3834 0 R (HD.3265) 3835 0 R (HD.3266) 3836 0 R (HD.3267) 3837 0 R (HD.3268) 3838 0 R (HD.3269) 3839 0 R (HD.327) 559 0 R (HD.3270) 3840 0 R (HD.3271) 3841 0 R (HD.3272) 3842 0 R (HD.3273) 3843 0 R (HD.3274) 3848 0 R (HD.3275) 3849 0 R (HD.3276) 3850 0 R (HD.3277) 3851 0 R (HD.3278) 3852 0 R (HD.3279) 3853 0 R (HD.328) 560 0 R (HD.3280) 3854 0 R (HD.3281) 3855 0 R (HD.3282) 3856 0 R (HD.3283) 3857 0 R (HD.3284) 3858 0 R (HD.3285) 3859 0 R (HD.3286) 3860 0 R ] /Limits [ (HD.3258) (HD.3286) ] >>
endobj
11828 0 obj
-<< /Names [ (HD.4233) 4896 0 R (HD.4234) 4897 0 R (HD.4235) 4898 0 R (HD.4236) 4899 0 R (HD.4237) 4900 0 R (HD.4238) 4901 0 R (HD.4239) 4906 0 R (HD.424) 684 0 R (HD.4240) 4907 0 R (HD.4241) 4908 0 R (HD.4242) 4909 0 R (HD.4243) 4910 0 R (HD.4244) 4911 0 R (HD.4245) 4912 0 R (HD.4246) 4913 0 R (HD.4247) 4914 0 R (HD.4248) 4915 0 R (HD.4249) 4916 0 R (HD.425) 685 0 R (HD.4250) 4917 0 R (HD.4251) 4918 0 R (HD.4252) 4919 0 R (HD.4253) 4920 0 R (HD.4254) 4921 0 R (HD.4255) 4922 0 R (HD.4256) 4923 0 R (HD.4257) 4924 0 R (HD.4258) 4925 0 R (HD.4259) 4926 0 R (HD.426) 686 0 R (HD.4260) 4927 0 R (HD.4261) 4928 0 R ] /Limits [ (HD.4233) (HD.4261) ] >>
+<< /Names [ (HD.3287) 3861 0 R (HD.3288) 3862 0 R (HD.3289) 3863 0 R (HD.329) 561 0 R (HD.3290) 3864 0 R (HD.3291) 3865 0 R (HD.3292) 3866 0 R (HD.3293) 3867 0 R (HD.3294) 3868 0 R (HD.3295) 3869 0 R (HD.3296) 3870 0 R (HD.3297) 3871 0 R (HD.3298) 3872 0 R (HD.3299) 3873 0 R (HD.33) 228 0 R (HD.330) 562 0 R (HD.3300) 3874 0 R (HD.3301) 3875 0 R (HD.3302) 3876 0 R (HD.3303) 3877 0 R (HD.3304) 3878 0 R (HD.3305) 3879 0 R (HD.3306) 3880 0 R (HD.3307) 3881 0 R (HD.3308) 3882 0 R (HD.3309) 3883 0 R (HD.331) 567 0 R (HD.3310) 3884 0 R (HD.3311) 3885 0 R (HD.3312) 3886 0 R (HD.3313) 3887 0 R (HD.3314) 3892 0 R ] /Limits [ (HD.3287) (HD.3314) ] >>
endobj
11829 0 obj
-<< /Names [ (HD.4262) 4929 0 R (HD.4263) 4930 0 R (HD.4264) 4931 0 R (HD.4265) 4932 0 R (HD.4266) 4933 0 R (HD.4267) 4934 0 R (HD.4268) 4935 0 R (HD.4269) 4936 0 R (HD.427) 687 0 R (HD.4270) 4937 0 R (HD.4271) 4938 0 R (HD.4272) 4939 0 R (HD.4273) 4940 0 R (HD.4274) 4941 0 R (HD.4275) 4942 0 R (HD.4276) 4943 0 R (HD.4277) 4944 0 R (HD.4278) 4945 0 R (HD.4279) 4946 0 R (HD.428) 688 0 R (HD.4280) 4947 0 R (HD.4281) 4952 0 R (HD.4282) 4953 0 R (HD.4283) 4954 0 R (HD.4284) 4955 0 R (HD.4285) 4956 0 R (HD.4286) 4957 0 R (HD.4287) 4958 0 R (HD.4288) 4959 0 R (HD.4289) 4960 0 R (HD.429) 689 0 R (HD.4290) 4961 0 R ] /Limits [ (HD.4262) (HD.4290) ] >>
+<< /Names [ (HD.3315) 3893 0 R (HD.3316) 3894 0 R (HD.3317) 3895 0 R (HD.3318) 3896 0 R (HD.3319) 3897 0 R (HD.332) 568 0 R (HD.3320) 3898 0 R (HD.3321) 3899 0 R (HD.3322) 3900 0 R (HD.3323) 3901 0 R (HD.3324) 3902 0 R (HD.3325) 3903 0 R (HD.3326) 3904 0 R (HD.3327) 3905 0 R (HD.3328) 3906 0 R (HD.3329) 3907 0 R (HD.333) 569 0 R (HD.3330) 3908 0 R (HD.3331) 3909 0 R (HD.3332) 3910 0 R (HD.3333) 3911 0 R (HD.3334) 3912 0 R (HD.3335) 3913 0 R (HD.3336) 3914 0 R (HD.3337) 3915 0 R (HD.3338) 3916 0 R (HD.3339) 3917 0 R (HD.334) 570 0 R (HD.3340) 3918 0 R (HD.3341) 3919 0 R (HD.3342) 3920 0 R (HD.3343) 3921 0 R ] /Limits [ (HD.3315) (HD.3343) ] >>
endobj
11830 0 obj
-<< /Names [ (HD.4291) 4962 0 R (HD.4292) 4963 0 R (HD.4293) 4964 0 R (HD.4294) 4965 0 R (HD.4295) 4966 0 R (HD.4296) 4967 0 R (HD.4297) 4968 0 R (HD.4298) 4969 0 R (HD.4299) 4970 0 R (HD.43) 238 0 R (HD.430) 690 0 R (HD.4300) 4971 0 R (HD.4301) 4972 0 R (HD.4302) 4973 0 R (HD.4303) 4974 0 R (HD.4304) 4975 0 R (HD.4305) 4976 0 R (HD.4306) 4977 0 R (HD.4307) 4978 0 R (HD.4308) 4979 0 R (HD.4309) 4980 0 R (HD.431) 691 0 R (HD.4310) 4981 0 R (HD.4311) 4982 0 R (HD.4312) 4983 0 R (HD.4313) 4984 0 R (HD.4314) 4985 0 R (HD.4315) 4986 0 R (HD.4316) 4987 0 R (HD.4317) 4988 0 R (HD.4318) 4989 0 R (HD.4319) 4990 0 R ] /Limits [ (HD.4291) (HD.4319) ] >>
+<< /Names [ (HD.3344) 3922 0 R (HD.3345) 3923 0 R (HD.3346) 3924 0 R (HD.3347) 3929 0 R (HD.3348) 3930 0 R (HD.3349) 3931 0 R (HD.335) 571 0 R (HD.3350) 3932 0 R (HD.3351) 3933 0 R (HD.3352) 3934 0 R (HD.3353) 3935 0 R (HD.3354) 3936 0 R (HD.3355) 3937 0 R (HD.3356) 3938 0 R (HD.3357) 3939 0 R (HD.3358) 3940 0 R (HD.3359) 3941 0 R (HD.336) 572 0 R (HD.3360) 3942 0 R (HD.3361) 3943 0 R (HD.3362) 3944 0 R (HD.3363) 3945 0 R (HD.3364) 3946 0 R (HD.3365) 3947 0 R (HD.3366) 3948 0 R (HD.3367) 3949 0 R (HD.3368) 3950 0 R (HD.3369) 3951 0 R (HD.337) 573 0 R (HD.3370) 3952 0 R (HD.3371) 3953 0 R (HD.3372) 3954 0 R ] /Limits [ (HD.3344) (HD.3372) ] >>
endobj
11831 0 obj
-<< /Names [ (HD.432) 692 0 R (HD.4320) 4991 0 R (HD.4321) 4992 0 R (HD.4322) 4993 0 R (HD.4323) 4994 0 R (HD.4324) 4995 0 R (HD.4325) 4996 0 R (HD.4326) 4997 0 R (HD.4327) 4998 0 R (HD.4328) 4999 0 R (HD.4329) 5000 0 R (HD.433) 693 0 R (HD.4330) 5001 0 R (HD.4331) 5002 0 R (HD.4332) 5003 0 R (HD.4333) 5004 0 R (HD.4334) 5005 0 R (HD.4335) 5006 0 R (HD.4336) 5007 0 R (HD.4337) 5008 0 R (HD.4338) 5009 0 R (HD.4339) 5010 0 R (HD.434) 694 0 R (HD.4340) 5011 0 R (HD.4341) 5016 0 R (HD.4342) 5017 0 R (HD.4343) 5018 0 R (HD.4344) 5019 0 R (HD.4345) 5020 0 R (HD.4346) 5021 0 R (HD.4347) 5022 0 R (HD.4348) 5023 0 R ] /Limits [ (HD.432) (HD.4348) ] >>
+<< /Names [ (HD.3373) 3955 0 R (HD.3374) 3956 0 R (HD.3375) 3957 0 R (HD.3376) 3958 0 R (HD.3377) 3959 0 R (HD.3378) 3960 0 R (HD.3379) 3961 0 R (HD.338) 574 0 R (HD.3380) 3962 0 R (HD.3381) 3963 0 R (HD.3382) 3964 0 R (HD.3383) 3965 0 R (HD.3384) 3966 0 R (HD.3385) 3967 0 R (HD.3386) 3968 0 R (HD.3387) 3969 0 R (HD.3388) 3970 0 R (HD.3389) 3971 0 R (HD.339) 575 0 R (HD.3390) 3972 0 R (HD.3391) 3977 0 R (HD.3392) 3978 0 R (HD.3393) 3979 0 R (HD.3394) 3980 0 R (HD.3395) 3981 0 R (HD.3396) 3982 0 R (HD.3397) 3983 0 R (HD.3398) 3984 0 R (HD.3399) 3985 0 R (HD.34) 229 0 R (HD.340) 576 0 R (HD.3400) 3986 0 R ] /Limits [ (HD.3373) (HD.3400) ] >>
endobj
11832 0 obj
-<< /Names [ (HD.4349) 5024 0 R (HD.435) 695 0 R (HD.4350) 5025 0 R (HD.4351) 5026 0 R (HD.4352) 5027 0 R (HD.4353) 5028 0 R (HD.4354) 5029 0 R (HD.4355) 5030 0 R (HD.4356) 5031 0 R (HD.4357) 5032 0 R (HD.4358) 5033 0 R (HD.4359) 5034 0 R (HD.436) 696 0 R (HD.4360) 5035 0 R (HD.4361) 5036 0 R (HD.4362) 5037 0 R (HD.4363) 5038 0 R (HD.4364) 5039 0 R (HD.4365) 5040 0 R (HD.4366) 5041 0 R (HD.4367) 5042 0 R (HD.4368) 5043 0 R (HD.4369) 5044 0 R (HD.437) 697 0 R (HD.4370) 5045 0 R (HD.4371) 5046 0 R (HD.4372) 5047 0 R (HD.4373) 5048 0 R (HD.4374) 5049 0 R (HD.4375) 5050 0 R (HD.4376) 5051 0 R (HD.4377) 5052 0 R ] /Limits [ (HD.4349) (HD.4377) ] >>
+<< /Names [ (HD.3401) 3987 0 R (HD.3402) 3988 0 R (HD.3403) 3989 0 R (HD.3404) 3990 0 R (HD.3405) 3991 0 R (HD.3406) 3992 0 R (HD.3407) 3993 0 R (HD.3408) 3994 0 R (HD.3409) 3995 0 R (HD.341) 577 0 R (HD.3410) 3996 0 R (HD.3411) 3997 0 R (HD.3412) 3998 0 R (HD.3413) 3999 0 R (HD.3414) 4000 0 R (HD.3415) 4001 0 R (HD.3416) 4002 0 R (HD.3417) 4003 0 R (HD.3418) 4004 0 R (HD.3419) 4005 0 R (HD.342) 578 0 R (HD.3420) 4006 0 R (HD.3421) 4007 0 R (HD.3422) 4008 0 R (HD.3423) 4009 0 R (HD.3424) 4010 0 R (HD.3425) 4011 0 R (HD.3426) 4012 0 R (HD.3427) 4013 0 R (HD.3428) 4014 0 R (HD.3429) 4015 0 R (HD.343) 579 0 R ] /Limits [ (HD.3401) (HD.343) ] >>
endobj
11833 0 obj
-<< /Names [ (HD.4378) 5053 0 R (HD.4379) 5054 0 R (HD.438) 702 0 R (HD.4380) 5059 0 R (HD.4381) 5060 0 R (HD.4382) 5061 0 R (HD.4383) 5062 0 R (HD.4384) 5063 0 R (HD.4385) 5064 0 R (HD.4386) 5065 0 R (HD.4387) 5066 0 R (HD.4388) 5067 0 R (HD.4389) 5068 0 R (HD.439) 703 0 R (HD.4390) 5069 0 R (HD.4391) 5070 0 R (HD.4392) 5071 0 R (HD.4393) 5072 0 R (HD.4394) 5073 0 R (HD.4395) 5074 0 R (HD.4396) 5075 0 R (HD.4397) 5076 0 R (HD.4398) 5077 0 R (HD.4399) 5078 0 R (HD.44) 239 0 R (HD.440) 704 0 R (HD.4400) 5079 0 R (HD.4401) 5080 0 R (HD.4402) 5081 0 R (HD.4403) 5082 0 R (HD.4404) 5083 0 R (HD.4405) 5084 0 R ] /Limits [ (HD.4378) (HD.4405) ] >>
+<< /Names [ (HD.3430) 4016 0 R (HD.3431) 4017 0 R (HD.3432) 4018 0 R (HD.3433) 4019 0 R (HD.3434) 4020 0 R (HD.3435) 4021 0 R (HD.3436) 4022 0 R (HD.3437) 4023 0 R (HD.3438) 4024 0 R (HD.3439) 4025 0 R (HD.344) 580 0 R (HD.3440) 4026 0 R (HD.3441) 4027 0 R (HD.3442) 4028 0 R (HD.3443) 4033 0 R (HD.3444) 4034 0 R (HD.3445) 4035 0 R (HD.3446) 4036 0 R (HD.3447) 4037 0 R (HD.3448) 4038 0 R (HD.3449) 4039 0 R (HD.345) 581 0 R (HD.3450) 4040 0 R (HD.3451) 4041 0 R (HD.3452) 4042 0 R (HD.3453) 4043 0 R (HD.3454) 4044 0 R (HD.3455) 4045 0 R (HD.3456) 4046 0 R (HD.3457) 4047 0 R (HD.3458) 4048 0 R (HD.3459) 4049 0 R ] /Limits [ (HD.3430) (HD.3459) ] >>
endobj
11834 0 obj
-<< /Names [ (HD.4406) 5085 0 R (HD.4407) 5086 0 R (HD.4408) 5087 0 R (HD.4409) 5088 0 R (HD.441) 705 0 R (HD.4410) 5089 0 R (HD.4411) 5090 0 R (HD.4412) 5091 0 R (HD.4413) 5092 0 R (HD.4414) 5093 0 R (HD.4415) 5094 0 R (HD.4416) 5095 0 R (HD.4417) 5096 0 R (HD.4418) 5097 0 R (HD.4419) 5098 0 R (HD.442) 706 0 R (HD.4420) 5099 0 R (HD.4421) 5100 0 R (HD.4422) 5101 0 R (HD.4423) 5102 0 R (HD.4424) 5103 0 R (HD.4425) 5104 0 R (HD.4426) 5109 0 R (HD.4427) 5110 0 R (HD.4428) 5111 0 R (HD.4429) 5112 0 R (HD.443) 707 0 R (HD.4430) 5113 0 R (HD.4431) 5114 0 R (HD.4432) 5115 0 R (HD.4433) 5116 0 R (HD.4434) 5117 0 R ] /Limits [ (HD.4406) (HD.4434) ] >>
+<< /Names [ (HD.346) 582 0 R (HD.3460) 4050 0 R (HD.3461) 4051 0 R (HD.3462) 4052 0 R (HD.3463) 4053 0 R (HD.3464) 4054 0 R (HD.3465) 4055 0 R (HD.3466) 4056 0 R (HD.3467) 4057 0 R (HD.3468) 4058 0 R (HD.3469) 4059 0 R (HD.347) 587 0 R (HD.3470) 4060 0 R (HD.3471) 4061 0 R (HD.3472) 4062 0 R (HD.3473) 4063 0 R (HD.3474) 4064 0 R (HD.3475) 4065 0 R (HD.3476) 4066 0 R (HD.3477) 4067 0 R (HD.3478) 4068 0 R (HD.3479) 4069 0 R (HD.348) 588 0 R (HD.3480) 4070 0 R (HD.3481) 4071 0 R (HD.3482) 4072 0 R (HD.3483) 4073 0 R (HD.3484) 4074 0 R (HD.3485) 4075 0 R (HD.3486) 4076 0 R (HD.3487) 4077 0 R (HD.3488) 4078 0 R ] /Limits [ (HD.346) (HD.3488) ] >>
endobj
11835 0 obj
-<< /Names [ (HD.4435) 5118 0 R (HD.4436) 5119 0 R (HD.4437) 5120 0 R (HD.4438) 5121 0 R (HD.4439) 5122 0 R (HD.444) 708 0 R (HD.4440) 5123 0 R (HD.4441) 5124 0 R (HD.4442) 5125 0 R (HD.4443) 5126 0 R (HD.4444) 5127 0 R (HD.4445) 5128 0 R (HD.4446) 5129 0 R (HD.4447) 5130 0 R (HD.4448) 5131 0 R (HD.4449) 5132 0 R (HD.445) 709 0 R (HD.4450) 5133 0 R (HD.4451) 5134 0 R (HD.4452) 5135 0 R (HD.4453) 5136 0 R (HD.4454) 5137 0 R (HD.4455) 5138 0 R (HD.4456) 5139 0 R (HD.4457) 5140 0 R (HD.4458) 5141 0 R (HD.4459) 5142 0 R (HD.446) 710 0 R (HD.4460) 5143 0 R (HD.4461) 5144 0 R (HD.4462) 5145 0 R (HD.4463) 5146 0 R ] /Limits [ (HD.4435) (HD.4463) ] >>
+<< /Names [ (HD.3489) 4079 0 R (HD.349) 589 0 R (HD.3490) 4080 0 R (HD.3491) 4081 0 R (HD.3492) 4082 0 R (HD.3493) 4083 0 R (HD.3494) 4084 0 R (HD.3495) 4085 0 R (HD.3496) 4086 0 R (HD.3497) 4087 0 R (HD.3498) 4088 0 R (HD.3499) 4093 0 R (HD.35) 230 0 R (HD.350) 590 0 R (HD.3500) 4094 0 R (HD.3501) 4095 0 R (HD.3502) 4096 0 R (HD.3503) 4097 0 R (HD.3504) 4098 0 R (HD.3505) 4099 0 R (HD.3506) 4100 0 R (HD.3507) 4101 0 R (HD.3508) 4102 0 R (HD.3509) 4103 0 R (HD.351) 591 0 R (HD.3510) 4104 0 R (HD.3511) 4105 0 R (HD.3512) 4106 0 R (HD.3513) 4107 0 R (HD.3514) 4108 0 R (HD.3515) 4109 0 R (HD.3516) 4110 0 R ] /Limits [ (HD.3489) (HD.3516) ] >>
endobj
11836 0 obj
-<< /Names [ (HD.4464) 5147 0 R (HD.4465) 5148 0 R (HD.4466) 5149 0 R (HD.4467) 5150 0 R (HD.4468) 5151 0 R (HD.4469) 5152 0 R (HD.447) 711 0 R (HD.4470) 5153 0 R (HD.4471) 5154 0 R (HD.4472) 5155 0 R (HD.4473) 5156 0 R (HD.4474) 5157 0 R (HD.4475) 5158 0 R (HD.4476) 5163 0 R (HD.4477) 5164 0 R (HD.4478) 5165 0 R (HD.4479) 5166 0 R (HD.448) 712 0 R (HD.4480) 5167 0 R (HD.4481) 5168 0 R (HD.4482) 5169 0 R (HD.4483) 5170 0 R (HD.4484) 5171 0 R (HD.4485) 5172 0 R (HD.4486) 5173 0 R (HD.4487) 5174 0 R (HD.4488) 5175 0 R (HD.4489) 5176 0 R (HD.449) 713 0 R (HD.4490) 5177 0 R (HD.4491) 5178 0 R (HD.4492) 5179 0 R ] /Limits [ (HD.4464) (HD.4492) ] >>
+<< /Names [ (HD.3517) 4111 0 R (HD.3518) 4112 0 R (HD.3519) 4113 0 R (HD.352) 592 0 R (HD.3520) 4114 0 R (HD.3521) 4115 0 R (HD.3522) 4116 0 R (HD.3523) 4117 0 R (HD.3524) 4118 0 R (HD.3525) 4119 0 R (HD.3526) 4120 0 R (HD.3527) 4121 0 R (HD.3528) 4122 0 R (HD.3529) 4123 0 R (HD.353) 593 0 R (HD.3530) 4124 0 R (HD.3531) 4125 0 R (HD.3532) 4126 0 R (HD.3533) 4127 0 R (HD.3534) 4128 0 R (HD.3535) 4129 0 R (HD.3536) 4130 0 R (HD.3537) 4131 0 R (HD.3538) 4132 0 R (HD.3539) 4133 0 R (HD.354) 594 0 R (HD.3540) 4134 0 R (HD.3541) 4135 0 R (HD.3542) 4136 0 R (HD.3543) 4137 0 R (HD.3544) 4138 0 R (HD.3545) 4139 0 R ] /Limits [ (HD.3517) (HD.3545) ] >>
endobj
11837 0 obj
-<< /Names [ (HD.4493) 5180 0 R (HD.4494) 5181 0 R (HD.4495) 5182 0 R (HD.4496) 5183 0 R (HD.4497) 5184 0 R (HD.4498) 5185 0 R (HD.4499) 5186 0 R (HD.45) 240 0 R (HD.450) 714 0 R (HD.4500) 5187 0 R (HD.4501) 5188 0 R (HD.4502) 5189 0 R (HD.4503) 5190 0 R (HD.4504) 5191 0 R (HD.4505) 5192 0 R (HD.4506) 5193 0 R (HD.4507) 5194 0 R (HD.4508) 5195 0 R (HD.4509) 5196 0 R (HD.451) 715 0 R (HD.4510) 5197 0 R (HD.4511) 5198 0 R (HD.4512) 5199 0 R (HD.4513) 5200 0 R (HD.4514) 5201 0 R (HD.4515) 5202 0 R (HD.4516) 5203 0 R (HD.4517) 5204 0 R (HD.4518) 5205 0 R (HD.4519) 5206 0 R (HD.452) 716 0 R (HD.4520) 5207 0 R ] /Limits [ (HD.4493) (HD.4520) ] >>
+<< /Names [ (HD.3546) 4140 0 R (HD.3547) 4141 0 R (HD.3548) 4142 0 R (HD.3549) 4143 0 R (HD.355) 595 0 R (HD.3550) 4144 0 R (HD.3551) 4145 0 R (HD.3552) 4146 0 R (HD.3553) 4147 0 R (HD.3554) 4152 0 R (HD.3555) 4153 0 R (HD.3556) 4154 0 R (HD.3557) 4155 0 R (HD.3558) 4156 0 R (HD.3559) 4157 0 R (HD.356) 596 0 R (HD.3560) 4158 0 R (HD.3561) 4159 0 R (HD.3562) 4160 0 R (HD.3563) 4161 0 R (HD.3564) 4162 0 R (HD.3565) 4163 0 R (HD.3566) 4164 0 R (HD.3567) 4165 0 R (HD.3568) 4166 0 R (HD.3569) 4167 0 R (HD.357) 597 0 R (HD.3570) 4168 0 R (HD.3571) 4169 0 R (HD.3572) 4170 0 R (HD.3573) 4171 0 R (HD.3574) 4172 0 R ] /Limits [ (HD.3546) (HD.3574) ] >>
endobj
11838 0 obj
-<< /Names [ (HD.4521) 5208 0 R (HD.4522) 5209 0 R (HD.4523) 5210 0 R (HD.4524) 5211 0 R (HD.4525) 5212 0 R (HD.4526) 5213 0 R (HD.4527) 5214 0 R (HD.4528) 5215 0 R (HD.4529) 5220 0 R (HD.453) 717 0 R (HD.4530) 5221 0 R (HD.4531) 5222 0 R (HD.4532) 5223 0 R (HD.4533) 5224 0 R (HD.4534) 5225 0 R (HD.4535) 5226 0 R (HD.4536) 5227 0 R (HD.4537) 5228 0 R (HD.4538) 5229 0 R (HD.4539) 5230 0 R (HD.454) 718 0 R (HD.4540) 5231 0 R (HD.4541) 5232 0 R (HD.4542) 5233 0 R (HD.4543) 5234 0 R (HD.4544) 5235 0 R (HD.4545) 5236 0 R (HD.4546) 5237 0 R (HD.4547) 5238 0 R (HD.4548) 5239 0 R (HD.4549) 5240 0 R (HD.455) 719 0 R ] /Limits [ (HD.4521) (HD.455) ] >>
+<< /Names [ (HD.3575) 4173 0 R (HD.3576) 4174 0 R (HD.3577) 4175 0 R (HD.3578) 4176 0 R (HD.3579) 4177 0 R (HD.358) 598 0 R (HD.3580) 4178 0 R (HD.3581) 4179 0 R (HD.3582) 4180 0 R (HD.3583) 4181 0 R (HD.3584) 4182 0 R (HD.3585) 4183 0 R (HD.3586) 4184 0 R (HD.3587) 4185 0 R (HD.3588) 4186 0 R (HD.3589) 4187 0 R (HD.359) 599 0 R (HD.3590) 4188 0 R (HD.3591) 4189 0 R (HD.3592) 4190 0 R (HD.3593) 4191 0 R (HD.3594) 4192 0 R (HD.3595) 4193 0 R (HD.3596) 4194 0 R (HD.3597) 4195 0 R (HD.3598) 4196 0 R (HD.3599) 4197 0 R (HD.36) 231 0 R (HD.360) 600 0 R (HD.3600) 4198 0 R (HD.3601) 4199 0 R (HD.3602) 4200 0 R ] /Limits [ (HD.3575) (HD.3602) ] >>
endobj
11839 0 obj
-<< /Names [ (HD.4550) 5241 0 R (HD.4551) 5242 0 R (HD.4552) 5243 0 R (HD.4553) 5244 0 R (HD.4554) 5245 0 R (HD.4555) 5246 0 R (HD.4556) 5247 0 R (HD.4557) 5248 0 R (HD.4558) 5249 0 R (HD.4559) 5250 0 R (HD.456) 720 0 R (HD.4560) 5251 0 R (HD.4561) 5252 0 R (HD.4562) 5253 0 R (HD.4563) 5254 0 R (HD.4564) 5255 0 R (HD.4565) 5256 0 R (HD.4566) 5257 0 R (HD.4567) 5258 0 R (HD.4568) 5259 0 R (HD.4569) 5260 0 R (HD.457) 721 0 R (HD.4570) 5261 0 R (HD.4571) 5262 0 R (HD.4572) 5267 0 R (HD.4573) 5268 0 R (HD.4574) 5269 0 R (HD.4575) 5270 0 R (HD.4576) 5271 0 R (HD.4577) 5272 0 R (HD.4578) 5273 0 R (HD.4579) 5274 0 R ] /Limits [ (HD.4550) (HD.4579) ] >>
+<< /Names [ (HD.3603) 4205 0 R (HD.3604) 4206 0 R (HD.3605) 4207 0 R (HD.3606) 4208 0 R (HD.3607) 4209 0 R (HD.3608) 4210 0 R (HD.3609) 4211 0 R (HD.361) 601 0 R (HD.3610) 4212 0 R (HD.3611) 4213 0 R (HD.3612) 4214 0 R (HD.3613) 4215 0 R (HD.3614) 4216 0 R (HD.3615) 4217 0 R (HD.3616) 4218 0 R (HD.3617) 4219 0 R (HD.3618) 4220 0 R (HD.3619) 4221 0 R (HD.362) 602 0 R (HD.3620) 4222 0 R (HD.3621) 4223 0 R (HD.3622) 4224 0 R (HD.3623) 4225 0 R (HD.3624) 4226 0 R (HD.3625) 4227 0 R (HD.3626) 4228 0 R (HD.3627) 4229 0 R (HD.3628) 4230 0 R (HD.3629) 4231 0 R (HD.363) 608 0 R (HD.3630) 4232 0 R (HD.3631) 4233 0 R ] /Limits [ (HD.3603) (HD.3631) ] >>
endobj
11840 0 obj
-<< /Names [ (HD.458) 722 0 R (HD.4580) 5275 0 R (HD.4581) 5276 0 R (HD.4582) 5277 0 R (HD.4583) 5278 0 R (HD.4584) 5279 0 R (HD.4585) 5280 0 R (HD.4586) 5281 0 R (HD.4587) 5282 0 R (HD.4588) 5283 0 R (HD.4589) 5284 0 R (HD.459) 723 0 R (HD.4590) 5285 0 R (HD.4591) 5286 0 R (HD.4592) 5287 0 R (HD.4593) 5288 0 R (HD.4594) 5289 0 R (HD.4595) 5290 0 R (HD.4596) 5291 0 R (HD.4597) 5292 0 R (HD.4598) 5293 0 R (HD.4599) 5294 0 R (HD.46) 241 0 R (HD.460) 724 0 R (HD.4600) 5295 0 R (HD.4601) 5296 0 R (HD.4602) 5297 0 R (HD.4603) 5298 0 R (HD.4604) 5299 0 R (HD.4605) 5300 0 R (HD.4606) 5301 0 R (HD.4607) 5302 0 R ] /Limits [ (HD.458) (HD.4607) ] >>
+<< /Names [ (HD.3632) 4234 0 R (HD.3633) 4235 0 R (HD.3634) 4236 0 R (HD.3635) 4237 0 R (HD.3636) 4238 0 R (HD.3637) 4239 0 R (HD.3638) 4240 0 R (HD.3639) 4241 0 R (HD.364) 609 0 R (HD.3640) 4242 0 R (HD.3641) 4243 0 R (HD.3642) 4244 0 R (HD.3643) 4245 0 R (HD.3644) 4246 0 R (HD.3645) 4247 0 R (HD.3646) 4248 0 R (HD.3647) 4249 0 R (HD.3648) 4250 0 R (HD.3649) 4251 0 R (HD.365) 610 0 R (HD.3650) 4252 0 R (HD.3651) 4253 0 R (HD.3652) 4258 0 R (HD.3653) 4259 0 R (HD.3654) 4260 0 R (HD.3655) 4261 0 R (HD.3656) 4262 0 R (HD.3657) 4263 0 R (HD.3658) 4264 0 R (HD.3659) 4265 0 R (HD.366) 611 0 R (HD.3660) 4266 0 R ] /Limits [ (HD.3632) (HD.3660) ] >>
endobj
11841 0 obj
-<< /Names [ (HD.4608) 5303 0 R (HD.4609) 5304 0 R (HD.461) 729 0 R (HD.4610) 5305 0 R (HD.4611) 5306 0 R (HD.4612) 5307 0 R (HD.4613) 5308 0 R (HD.4614) 5314 0 R (HD.4615) 5315 0 R (HD.4616) 5316 0 R (HD.4617) 5317 0 R (HD.4618) 5318 0 R (HD.4619) 5319 0 R (HD.462) 730 0 R (HD.4620) 5320 0 R (HD.4621) 5321 0 R (HD.4622) 5322 0 R (HD.4623) 5323 0 R (HD.4624) 5324 0 R (HD.4625) 5325 0 R (HD.4626) 5326 0 R (HD.4627) 5327 0 R (HD.4628) 5328 0 R (HD.4629) 5329 0 R (HD.463) 731 0 R (HD.4630) 5330 0 R (HD.4631) 5331 0 R (HD.4632) 5332 0 R (HD.4633) 5333 0 R (HD.4634) 5334 0 R (HD.4635) 5335 0 R (HD.4636) 5336 0 R ] /Limits [ (HD.4608) (HD.4636) ] >>
+<< /Names [ (HD.3661) 4267 0 R (HD.3662) 4268 0 R (HD.3663) 4269 0 R (HD.3664) 4270 0 R (HD.3665) 4271 0 R (HD.3666) 4272 0 R (HD.3667) 4273 0 R (HD.3668) 4274 0 R (HD.3669) 4275 0 R (HD.367) 612 0 R (HD.3670) 4276 0 R (HD.3671) 4277 0 R (HD.3672) 4278 0 R (HD.3673) 4279 0 R (HD.3674) 4280 0 R (HD.3675) 4281 0 R (HD.3676) 4282 0 R (HD.3677) 4283 0 R (HD.3678) 4284 0 R (HD.3679) 4285 0 R (HD.368) 613 0 R (HD.3680) 4286 0 R (HD.3681) 4287 0 R (HD.3682) 4288 0 R (HD.3683) 4289 0 R (HD.3684) 4290 0 R (HD.3685) 4291 0 R (HD.3686) 4292 0 R (HD.3687) 4293 0 R (HD.3688) 4294 0 R (HD.3689) 4295 0 R (HD.369) 614 0 R ] /Limits [ (HD.3661) (HD.369) ] >>
endobj
11842 0 obj
-<< /Names [ (HD.4637) 5337 0 R (HD.4638) 5338 0 R (HD.4639) 5339 0 R (HD.464) 732 0 R (HD.4640) 5340 0 R (HD.4641) 5341 0 R (HD.4642) 5342 0 R (HD.4643) 5343 0 R (HD.4644) 5344 0 R (HD.4645) 5345 0 R (HD.4646) 5346 0 R (HD.4647) 5347 0 R (HD.4648) 5348 0 R (HD.4649) 5349 0 R (HD.465) 733 0 R (HD.4650) 5350 0 R (HD.4651) 5351 0 R (HD.4652) 5352 0 R (HD.4653) 5353 0 R (HD.4654) 5354 0 R (HD.4655) 5359 0 R (HD.4656) 5360 0 R (HD.4657) 5361 0 R (HD.4658) 5362 0 R (HD.4659) 5363 0 R (HD.466) 734 0 R (HD.4660) 5364 0 R (HD.4661) 5365 0 R (HD.4662) 5366 0 R (HD.4663) 5367 0 R (HD.4664) 5368 0 R (HD.4665) 5369 0 R ] /Limits [ (HD.4637) (HD.4665) ] >>
+<< /Names [ (HD.3690) 4296 0 R (HD.3691) 4297 0 R (HD.3692) 4298 0 R (HD.3693) 4304 0 R (HD.3694) 4305 0 R (HD.3695) 4306 0 R (HD.3696) 4307 0 R (HD.3697) 4308 0 R (HD.3698) 4309 0 R (HD.3699) 4310 0 R (HD.37) 232 0 R (HD.370) 615 0 R (HD.3700) 4311 0 R (HD.3701) 4312 0 R (HD.3702) 4313 0 R (HD.3703) 4314 0 R (HD.3704) 4315 0 R (HD.3705) 4316 0 R (HD.3706) 4317 0 R (HD.3707) 4318 0 R (HD.3708) 4319 0 R (HD.3709) 4320 0 R (HD.371) 616 0 R (HD.3710) 4321 0 R (HD.3711) 4322 0 R (HD.3712) 4323 0 R (HD.3713) 4324 0 R (HD.3714) 4325 0 R (HD.3715) 4326 0 R (HD.3716) 4327 0 R (HD.3717) 4328 0 R (HD.3718) 4329 0 R ] /Limits [ (HD.3690) (HD.3718) ] >>
endobj
11843 0 obj
-<< /Names [ (HD.4666) 5370 0 R (HD.4667) 5371 0 R (HD.4668) 5372 0 R (HD.4669) 5373 0 R (HD.467) 735 0 R (HD.4670) 5374 0 R (HD.4671) 5375 0 R (HD.4672) 5376 0 R (HD.4673) 5377 0 R (HD.4674) 5378 0 R (HD.4675) 5379 0 R (HD.4676) 5380 0 R (HD.4677) 5381 0 R (HD.4678) 5382 0 R (HD.4679) 5383 0 R (HD.468) 736 0 R (HD.4680) 5384 0 R (HD.4681) 5385 0 R (HD.4682) 5386 0 R (HD.4683) 5387 0 R (HD.4684) 5388 0 R (HD.4685) 5389 0 R (HD.4686) 5390 0 R (HD.4687) 5391 0 R (HD.4688) 5392 0 R (HD.4689) 5393 0 R (HD.469) 737 0 R (HD.4690) 5394 0 R (HD.4691) 5395 0 R (HD.4692) 5396 0 R (HD.4693) 5397 0 R (HD.4694) 5398 0 R ] /Limits [ (HD.4666) (HD.4694) ] >>
+<< /Names [ (HD.3719) 4330 0 R (HD.372) 617 0 R (HD.3720) 4331 0 R (HD.3721) 4332 0 R (HD.3722) 4333 0 R (HD.3723) 4334 0 R (HD.3724) 4335 0 R (HD.3725) 4336 0 R (HD.3726) 4337 0 R (HD.3727) 4338 0 R (HD.3728) 4339 0 R (HD.3729) 4340 0 R (HD.373) 618 0 R (HD.3730) 4341 0 R (HD.3731) 4342 0 R (HD.3732) 4343 0 R (HD.3733) 4344 0 R (HD.3734) 4345 0 R (HD.3735) 4346 0 R (HD.3736) 4347 0 R (HD.3737) 4348 0 R (HD.3738) 4349 0 R (HD.3739) 4350 0 R (HD.374) 619 0 R (HD.3740) 4351 0 R (HD.3741) 4352 0 R (HD.3742) 4353 0 R (HD.3743) 4354 0 R (HD.3744) 4355 0 R (HD.3745) 4356 0 R (HD.3746) 4357 0 R (HD.3747) 4358 0 R ] /Limits [ (HD.3719) (HD.3747) ] >>
endobj
11844 0 obj
-<< /Names [ (HD.4695) 5399 0 R (HD.4696) 5400 0 R (HD.4697) 5401 0 R (HD.4698) 5406 0 R (HD.4699) 5407 0 R (HD.47) 242 0 R (HD.470) 738 0 R (HD.4700) 5408 0 R (HD.4701) 5409 0 R (HD.4702) 5410 0 R (HD.4703) 5411 0 R (HD.4704) 5412 0 R (HD.4705) 5413 0 R (HD.4706) 5414 0 R (HD.4707) 5415 0 R (HD.4708) 5416 0 R (HD.4709) 5417 0 R (HD.471) 739 0 R (HD.4710) 5418 0 R (HD.4711) 5419 0 R (HD.4712) 5420 0 R (HD.4713) 5421 0 R (HD.4714) 5422 0 R (HD.4715) 5423 0 R (HD.4716) 5424 0 R (HD.4717) 5425 0 R (HD.4718) 5426 0 R (HD.4719) 5427 0 R (HD.472) 740 0 R (HD.4720) 5428 0 R (HD.4721) 5429 0 R (HD.4722) 5430 0 R ] /Limits [ (HD.4695) (HD.4722) ] >>
+<< /Names [ (HD.3748) 4363 0 R (HD.3749) 4364 0 R (HD.375) 620 0 R (HD.3750) 4365 0 R (HD.3751) 4366 0 R (HD.3752) 4367 0 R (HD.3753) 4368 0 R (HD.3754) 4369 0 R (HD.3755) 4370 0 R (HD.3756) 4371 0 R (HD.3757) 4372 0 R (HD.3758) 4373 0 R (HD.3759) 4374 0 R (HD.376) 621 0 R (HD.3760) 4375 0 R (HD.3761) 4376 0 R (HD.3762) 4377 0 R (HD.3763) 4378 0 R (HD.3764) 4379 0 R (HD.3765) 4380 0 R (HD.3766) 4381 0 R (HD.3767) 4382 0 R (HD.3768) 4383 0 R (HD.3769) 4384 0 R (HD.377) 622 0 R (HD.3770) 4385 0 R (HD.3771) 4386 0 R (HD.3772) 4387 0 R (HD.3773) 4388 0 R (HD.3774) 4389 0 R (HD.3775) 4390 0 R (HD.3776) 4391 0 R ] /Limits [ (HD.3748) (HD.3776) ] >>
endobj
11845 0 obj
-<< /Names [ (HD.4723) 5431 0 R (HD.4724) 5432 0 R (HD.4725) 5433 0 R (HD.4726) 5434 0 R (HD.4727) 5435 0 R (HD.4728) 5436 0 R (HD.4729) 5437 0 R (HD.473) 741 0 R (HD.4730) 5438 0 R (HD.4731) 5439 0 R (HD.4732) 5440 0 R (HD.4733) 5445 0 R (HD.4734) 5446 0 R (HD.4735) 5447 0 R (HD.4736) 5448 0 R (HD.4737) 5449 0 R (HD.4738) 5450 0 R (HD.4739) 5451 0 R (HD.474) 742 0 R (HD.4740) 5452 0 R (HD.4741) 5453 0 R (HD.4742) 5454 0 R (HD.4743) 5455 0 R (HD.4744) 5456 0 R (HD.4745) 5457 0 R (HD.4746) 5458 0 R (HD.4747) 5459 0 R (HD.4748) 5460 0 R (HD.4749) 5461 0 R (HD.475) 743 0 R (HD.4750) 5462 0 R (HD.4751) 5463 0 R ] /Limits [ (HD.4723) (HD.4751) ] >>
+<< /Names [ (HD.3777) 4392 0 R (HD.3778) 4393 0 R (HD.3779) 4394 0 R (HD.378) 623 0 R (HD.3780) 4395 0 R (HD.3781) 4396 0 R (HD.3782) 4397 0 R (HD.3783) 4398 0 R (HD.3784) 4399 0 R (HD.3785) 4400 0 R (HD.3786) 4401 0 R (HD.3787) 4402 0 R (HD.3788) 4403 0 R (HD.3789) 4404 0 R (HD.379) 624 0 R (HD.3790) 4405 0 R (HD.3791) 4406 0 R (HD.3792) 4407 0 R (HD.3793) 4408 0 R (HD.3794) 4409 0 R (HD.3795) 4410 0 R (HD.3796) 4411 0 R (HD.3797) 4412 0 R (HD.3798) 4413 0 R (HD.3799) 4414 0 R (HD.38) 233 0 R (HD.380) 625 0 R (HD.3800) 4415 0 R (HD.3801) 4416 0 R (HD.3802) 4421 0 R (HD.3803) 4422 0 R (HD.3804) 4423 0 R ] /Limits [ (HD.3777) (HD.3804) ] >>
endobj
11846 0 obj
-<< /Names [ (HD.4752) 5464 0 R (HD.4753) 5465 0 R (HD.4754) 5466 0 R (HD.4755) 5467 0 R (HD.4756) 5468 0 R (HD.4757) 5469 0 R (HD.4758) 5470 0 R (HD.4759) 5471 0 R (HD.476) 744 0 R (HD.4760) 5472 0 R (HD.4761) 5473 0 R (HD.4762) 5474 0 R (HD.4763) 5475 0 R (HD.4764) 5476 0 R (HD.4765) 5477 0 R (HD.4766) 5478 0 R (HD.4767) 5479 0 R (HD.4768) 5480 0 R (HD.4769) 5481 0 R (HD.477) 745 0 R (HD.4770) 5482 0 R (HD.4771) 5483 0 R (HD.4772) 5484 0 R (HD.4773) 5485 0 R (HD.4774) 5486 0 R (HD.4775) 5487 0 R (HD.4776) 5488 0 R (HD.4777) 5489 0 R (HD.4778) 5490 0 R (HD.4779) 5491 0 R (HD.478) 746 0 R (HD.4780) 5496 0 R ] /Limits [ (HD.4752) (HD.4780) ] >>
+<< /Names [ (HD.3805) 4424 0 R (HD.3806) 4425 0 R (HD.3807) 4426 0 R (HD.3808) 4427 0 R (HD.3809) 4428 0 R (HD.381) 626 0 R (HD.3810) 4429 0 R (HD.3811) 4430 0 R (HD.3812) 4431 0 R (HD.3813) 4432 0 R (HD.3814) 4433 0 R (HD.3815) 4434 0 R (HD.3816) 4435 0 R (HD.3817) 4436 0 R (HD.3818) 4437 0 R (HD.3819) 4438 0 R (HD.382) 627 0 R (HD.3820) 4439 0 R (HD.3821) 4440 0 R (HD.3822) 4441 0 R (HD.3823) 4442 0 R (HD.3824) 4443 0 R (HD.3825) 4444 0 R (HD.3826) 4445 0 R (HD.3827) 4446 0 R (HD.3828) 4447 0 R (HD.3829) 4448 0 R (HD.383) 628 0 R (HD.3830) 4449 0 R (HD.3831) 4450 0 R (HD.3832) 4451 0 R (HD.3833) 4452 0 R ] /Limits [ (HD.3805) (HD.3833) ] >>
endobj
11847 0 obj
-<< /Names [ (HD.4781) 5497 0 R (HD.4782) 5498 0 R (HD.4783) 5499 0 R (HD.4784) 5500 0 R (HD.4785) 5501 0 R (HD.4786) 5502 0 R (HD.4787) 5503 0 R (HD.4788) 5504 0 R (HD.4789) 5505 0 R (HD.479) 747 0 R (HD.4790) 5506 0 R (HD.4791) 5507 0 R (HD.4792) 5508 0 R (HD.4793) 5509 0 R (HD.4794) 5510 0 R (HD.4795) 5511 0 R (HD.4796) 5512 0 R (HD.4797) 5513 0 R (HD.4798) 5514 0 R (HD.4799) 5515 0 R (HD.48) 243 0 R (HD.480) 748 0 R (HD.4800) 5516 0 R (HD.4801) 5517 0 R (HD.4802) 5518 0 R (HD.4803) 5519 0 R (HD.4804) 5520 0 R (HD.4805) 5521 0 R (HD.4806) 5522 0 R (HD.4807) 5523 0 R (HD.4808) 5524 0 R (HD.4809) 5525 0 R ] /Limits [ (HD.4781) (HD.4809) ] >>
+<< /Names [ (HD.3834) 4453 0 R (HD.3835) 4454 0 R (HD.3836) 4455 0 R (HD.3837) 4456 0 R (HD.3838) 4457 0 R (HD.3839) 4458 0 R (HD.384) 629 0 R (HD.3840) 4459 0 R (HD.3841) 4460 0 R (HD.3842) 4461 0 R (HD.3843) 4462 0 R (HD.3844) 4463 0 R (HD.3845) 4464 0 R (HD.3846) 4465 0 R (HD.3847) 4470 0 R (HD.3848) 4471 0 R (HD.3849) 4472 0 R (HD.385) 630 0 R (HD.3850) 4473 0 R (HD.3851) 4474 0 R (HD.3852) 4475 0 R (HD.3853) 4476 0 R (HD.3854) 4477 0 R (HD.3855) 4478 0 R (HD.3856) 4479 0 R (HD.3857) 4480 0 R (HD.3858) 4481 0 R (HD.3859) 4482 0 R (HD.386) 635 0 R (HD.3860) 4483 0 R (HD.3861) 4484 0 R (HD.3862) 4485 0 R ] /Limits [ (HD.3834) (HD.3862) ] >>
endobj
11848 0 obj
-<< /Names [ (HD.481) 750 0 R (HD.4810) 5526 0 R (HD.4811) 5527 0 R (HD.4812) 5528 0 R (HD.4813) 5529 0 R (HD.4814) 5530 0 R (HD.4815) 5531 0 R (HD.4816) 5532 0 R (HD.4817) 5533 0 R (HD.4818) 5534 0 R (HD.4819) 5535 0 R (HD.482) 751 0 R (HD.4820) 5536 0 R (HD.4821) 5537 0 R (HD.4822) 5538 0 R (HD.4823) 5539 0 R (HD.4824) 5540 0 R (HD.4825) 5541 0 R (HD.4826) 5542 0 R (HD.4827) 5543 0 R (HD.4828) 5544 0 R (HD.4829) 5545 0 R (HD.483) 757 0 R (HD.4830) 5546 0 R (HD.4831) 5547 0 R (HD.4832) 5552 0 R (HD.4833) 5553 0 R (HD.4834) 5554 0 R (HD.4835) 5555 0 R (HD.4836) 5556 0 R (HD.4837) 5557 0 R (HD.4838) 5558 0 R ] /Limits [ (HD.481) (HD.4838) ] >>
+<< /Names [ (HD.3863) 4486 0 R (HD.3864) 4487 0 R (HD.3865) 4488 0 R (HD.3866) 4489 0 R (HD.3867) 4490 0 R (HD.3868) 4491 0 R (HD.3869) 4492 0 R (HD.387) 636 0 R (HD.3870) 4493 0 R (HD.3871) 4494 0 R (HD.3872) 4495 0 R (HD.3873) 4496 0 R (HD.3874) 4497 0 R (HD.3875) 4498 0 R (HD.3876) 4499 0 R (HD.3877) 4500 0 R (HD.3878) 4501 0 R (HD.3879) 4502 0 R (HD.388) 637 0 R (HD.3880) 4503 0 R (HD.3881) 4504 0 R (HD.3882) 4505 0 R (HD.3883) 4506 0 R (HD.3884) 4507 0 R (HD.3885) 4508 0 R (HD.3886) 4509 0 R (HD.3887) 4510 0 R (HD.3888) 4511 0 R (HD.3889) 4512 0 R (HD.389) 638 0 R (HD.3890) 4518 0 R (HD.3891) 4519 0 R ] /Limits [ (HD.3863) (HD.3891) ] >>
endobj
11849 0 obj
-<< /Names [ (HD.4839) 5559 0 R (HD.484) 758 0 R (HD.4840) 5560 0 R (HD.4841) 5561 0 R (HD.4842) 5562 0 R (HD.4843) 5563 0 R (HD.4844) 5564 0 R (HD.4845) 5565 0 R (HD.4846) 5566 0 R (HD.4847) 5567 0 R (HD.4848) 5568 0 R (HD.4849) 5569 0 R (HD.485) 759 0 R (HD.4850) 5570 0 R (HD.4851) 5571 0 R (HD.4852) 5572 0 R (HD.4853) 5573 0 R (HD.4854) 5574 0 R (HD.4855) 5575 0 R (HD.4856) 5576 0 R (HD.4857) 5577 0 R (HD.4858) 5578 0 R (HD.4859) 5579 0 R (HD.486) 760 0 R (HD.4860) 5580 0 R (HD.4861) 5581 0 R (HD.4862) 5582 0 R (HD.4863) 5583 0 R (HD.4864) 5584 0 R (HD.4865) 5585 0 R (HD.4866) 5586 0 R (HD.4867) 5587 0 R ] /Limits [ (HD.4839) (HD.4867) ] >>
+<< /Names [ (HD.3892) 4520 0 R (HD.3893) 4521 0 R (HD.3894) 4522 0 R (HD.3895) 4523 0 R (HD.3896) 4524 0 R (HD.3897) 4525 0 R (HD.3898) 4526 0 R (HD.3899) 4527 0 R (HD.39) 234 0 R (HD.390) 639 0 R (HD.3900) 4528 0 R (HD.3901) 4529 0 R (HD.3902) 4530 0 R (HD.3903) 4531 0 R (HD.3904) 4532 0 R (HD.3905) 4533 0 R (HD.3906) 4534 0 R (HD.3907) 4535 0 R (HD.3908) 4536 0 R (HD.3909) 4537 0 R (HD.391) 640 0 R (HD.3910) 4538 0 R (HD.3911) 4539 0 R (HD.3912) 4540 0 R (HD.3913) 4541 0 R (HD.3914) 4542 0 R (HD.3915) 4543 0 R (HD.3916) 4544 0 R (HD.3917) 4546 0 R (HD.3918) 4547 0 R (HD.3919) 4548 0 R (HD.392) 641 0 R ] /Limits [ (HD.3892) (HD.392) ] >>
endobj
11850 0 obj
-<< /Names [ (HD.4868) 5588 0 R (HD.4869) 5589 0 R (HD.487) 761 0 R (HD.4870) 5590 0 R (HD.4871) 5591 0 R (HD.4872) 5592 0 R (HD.4873) 5593 0 R (HD.4874) 5594 0 R (HD.4875) 5595 0 R (HD.4876) 5596 0 R (HD.4877) 5597 0 R (HD.4878) 5598 0 R (HD.4879) 5599 0 R (HD.488) 762 0 R (HD.4880) 5600 0 R (HD.4881) 5601 0 R (HD.4882) 5602 0 R (HD.4883) 5603 0 R (HD.4884) 5604 0 R (HD.4885) 5605 0 R (HD.4886) 5610 0 R (HD.4887) 5611 0 R (HD.4888) 5612 0 R (HD.4889) 5613 0 R (HD.489) 763 0 R (HD.4890) 5614 0 R (HD.4891) 5615 0 R (HD.4892) 5616 0 R (HD.4893) 5617 0 R (HD.4894) 5618 0 R (HD.4895) 5619 0 R (HD.4896) 5620 0 R ] /Limits [ (HD.4868) (HD.4896) ] >>
+<< /Names [ (HD.3920) 4549 0 R (HD.3921) 4550 0 R (HD.3922) 4551 0 R (HD.3923) 4552 0 R (HD.3924) 4553 0 R (HD.3925) 4554 0 R (HD.3926) 4555 0 R (HD.3927) 4556 0 R (HD.3928) 4557 0 R (HD.3929) 4558 0 R (HD.393) 642 0 R (HD.3930) 4559 0 R (HD.3931) 4560 0 R (HD.3932) 4561 0 R (HD.3933) 4562 0 R (HD.3934) 4563 0 R (HD.3935) 4570 0 R (HD.3936) 4571 0 R (HD.3937) 4572 0 R (HD.3938) 4573 0 R (HD.3939) 4574 0 R (HD.394) 643 0 R (HD.3940) 4575 0 R (HD.3941) 4576 0 R (HD.3942) 4577 0 R (HD.3943) 4578 0 R (HD.3944) 4579 0 R (HD.3945) 4580 0 R (HD.3946) 4581 0 R (HD.3947) 4582 0 R (HD.3948) 4583 0 R (HD.3949) 4584 0 R ] /Limits [ (HD.3920) (HD.3949) ] >>
endobj
11851 0 obj
-<< /Names [ (HD.4897) 5621 0 R (HD.4898) 5622 0 R (HD.4899) 5623 0 R (HD.49) 244 0 R (HD.490) 764 0 R (HD.4900) 5624 0 R (HD.4901) 5625 0 R (HD.4902) 5626 0 R (HD.4903) 5627 0 R (HD.4904) 5628 0 R (HD.4905) 5629 0 R (HD.4906) 5630 0 R (HD.4907) 5631 0 R (HD.4908) 5632 0 R (HD.4909) 5633 0 R (HD.491) 765 0 R (HD.4910) 5634 0 R (HD.4911) 5635 0 R (HD.4912) 5636 0 R (HD.4913) 5637 0 R (HD.4914) 5638 0 R (HD.4915) 5639 0 R (HD.4916) 5640 0 R (HD.4917) 5641 0 R (HD.4918) 5642 0 R (HD.4919) 5643 0 R (HD.492) 766 0 R (HD.4920) 5644 0 R (HD.4921) 5645 0 R (HD.4922) 5646 0 R (HD.4923) 5647 0 R (HD.4924) 5648 0 R ] /Limits [ (HD.4897) (HD.4924) ] >>
+<< /Names [ (HD.395) 644 0 R (HD.3950) 4585 0 R (HD.3951) 4586 0 R (HD.3952) 4587 0 R (HD.3953) 4588 0 R (HD.3954) 4589 0 R (HD.3955) 4590 0 R (HD.3956) 4591 0 R (HD.3957) 4592 0 R (HD.3958) 4593 0 R (HD.3959) 4594 0 R (HD.396) 645 0 R (HD.3960) 4595 0 R (HD.3961) 4596 0 R (HD.3962) 4597 0 R (HD.3963) 4598 0 R (HD.3964) 4599 0 R (HD.3965) 4600 0 R (HD.3966) 4601 0 R (HD.3967) 4602 0 R (HD.3968) 4603 0 R (HD.3969) 4604 0 R (HD.397) 646 0 R (HD.3970) 4610 0 R (HD.3971) 4611 0 R (HD.3972) 4612 0 R (HD.3973) 4613 0 R (HD.3974) 4614 0 R (HD.3975) 4615 0 R (HD.3976) 4616 0 R (HD.3977) 4617 0 R (HD.3978) 4618 0 R ] /Limits [ (HD.395) (HD.3978) ] >>
endobj
11852 0 obj
-<< /Names [ (HD.4925) 5649 0 R (HD.4926) 5650 0 R (HD.4927) 5651 0 R (HD.4928) 5652 0 R (HD.4929) 5653 0 R (HD.493) 776 0 R (HD.4930) 5654 0 R (HD.4931) 5655 0 R (HD.4932) 5656 0 R (HD.4933) 5657 0 R (HD.4934) 5658 0 R (HD.4935) 5659 0 R (HD.4936) 5660 0 R (HD.4937) 5661 0 R (HD.4938) 5662 0 R (HD.4939) 5663 0 R (HD.494) 777 0 R (HD.4940) 5664 0 R (HD.4941) 5665 0 R (HD.4942) 5666 0 R (HD.4943) 5667 0 R (HD.4944) 5668 0 R (HD.4945) 5669 0 R (HD.4946) 5670 0 R (HD.4947) 5671 0 R (HD.4948) 5676 0 R (HD.4949) 5677 0 R (HD.495) 778 0 R (HD.4950) 5678 0 R (HD.4951) 5679 0 R (HD.4952) 5680 0 R (HD.4953) 5681 0 R ] /Limits [ (HD.4925) (HD.4953) ] >>
+<< /Names [ (HD.3979) 4619 0 R (HD.398) 647 0 R (HD.3980) 4620 0 R (HD.3981) 4621 0 R (HD.3982) 4622 0 R (HD.3983) 4623 0 R (HD.3984) 4624 0 R (HD.3985) 4625 0 R (HD.3986) 4626 0 R (HD.3987) 4627 0 R (HD.3988) 4628 0 R (HD.3989) 4629 0 R (HD.399) 648 0 R (HD.3990) 4630 0 R (HD.3991) 4631 0 R (HD.3992) 4632 0 R (HD.3993) 4633 0 R (HD.3994) 4634 0 R (HD.3995) 4635 0 R (HD.3996) 4636 0 R (HD.3997) 4637 0 R (HD.3998) 4638 0 R (HD.3999) 4639 0 R (HD.4) 192 0 R (HD.40) 235 0 R (HD.400) 649 0 R (HD.4000) 4640 0 R (HD.4001) 4641 0 R (HD.4002) 4648 0 R (HD.4003) 4649 0 R (HD.4004) 4650 0 R (HD.4005) 4651 0 R ] /Limits [ (HD.3979) (HD.4005) ] >>
endobj
11853 0 obj
-<< /Names [ (HD.4954) 5682 0 R (HD.4955) 5683 0 R (HD.4956) 5684 0 R (HD.4957) 5685 0 R (HD.4958) 5686 0 R (HD.4959) 5687 0 R (HD.496) 779 0 R (HD.4960) 5688 0 R (HD.4961) 5689 0 R (HD.4962) 5690 0 R (HD.4963) 5691 0 R (HD.4964) 5692 0 R (HD.4965) 5693 0 R (HD.4966) 5694 0 R (HD.4967) 5695 0 R (HD.4968) 5696 0 R (HD.4969) 5697 0 R (HD.497) 780 0 R (HD.4970) 5698 0 R (HD.4971) 5699 0 R (HD.4972) 5700 0 R (HD.4973) 5701 0 R (HD.4974) 5702 0 R (HD.4975) 5703 0 R (HD.4976) 5704 0 R (HD.4977) 5705 0 R (HD.4978) 5706 0 R (HD.4979) 5707 0 R (HD.498) 781 0 R (HD.4980) 5708 0 R (HD.4981) 5709 0 R (HD.4982) 5710 0 R ] /Limits [ (HD.4954) (HD.4982) ] >>
+<< /Names [ (HD.4006) 4652 0 R (HD.4007) 4653 0 R (HD.4008) 4654 0 R (HD.4009) 4655 0 R (HD.401) 650 0 R (HD.4010) 4656 0 R (HD.4011) 4657 0 R (HD.4012) 4658 0 R (HD.4013) 4659 0 R (HD.4014) 4660 0 R (HD.4015) 4661 0 R (HD.4016) 4662 0 R (HD.4017) 4663 0 R (HD.4018) 4664 0 R (HD.4019) 4665 0 R (HD.402) 651 0 R (HD.4020) 4666 0 R (HD.4021) 4667 0 R (HD.4022) 4668 0 R (HD.4023) 4669 0 R (HD.4024) 4670 0 R (HD.4025) 4671 0 R (HD.4026) 4672 0 R (HD.4027) 4673 0 R (HD.4028) 4674 0 R (HD.4029) 4675 0 R (HD.403) 652 0 R (HD.4030) 4676 0 R (HD.4031) 4677 0 R (HD.4032) 4678 0 R (HD.4033) 4679 0 R (HD.4034) 4680 0 R ] /Limits [ (HD.4006) (HD.4034) ] >>
endobj
11854 0 obj
-<< /Names [ (HD.4983) 5711 0 R (HD.4984) 5712 0 R (HD.4985) 5713 0 R (HD.4986) 5714 0 R (HD.4987) 5715 0 R (HD.4988) 5716 0 R (HD.4989) 5717 0 R (HD.499) 782 0 R (HD.4990) 5718 0 R (HD.4991) 5719 0 R (HD.4992) 5720 0 R (HD.4993) 5725 0 R (HD.4994) 5726 0 R (HD.4995) 5727 0 R (HD.4996) 5728 0 R (HD.4997) 5729 0 R (HD.4998) 5730 0 R (HD.4999) 5731 0 R (HD.5) 193 0 R (HD.50) 245 0 R (HD.500) 783 0 R (HD.5000) 5732 0 R (HD.5001) 5733 0 R (HD.5002) 5734 0 R (HD.5003) 5735 0 R (HD.5004) 5736 0 R (HD.5005) 5737 0 R (HD.5006) 5738 0 R (HD.5007) 5739 0 R (HD.5008) 5740 0 R (HD.5009) 5741 0 R (HD.501) 784 0 R ] /Limits [ (HD.4983) (HD.501) ] >>
+<< /Names [ (HD.4035) 4681 0 R (HD.4036) 4682 0 R (HD.4037) 4683 0 R (HD.4038) 4684 0 R (HD.4039) 4685 0 R (HD.404) 653 0 R (HD.4040) 4686 0 R (HD.4041) 4687 0 R (HD.4042) 4688 0 R (HD.4043) 4689 0 R (HD.4044) 4690 0 R (HD.4045) 4691 0 R (HD.4046) 4692 0 R (HD.4047) 4693 0 R (HD.4048) 4694 0 R (HD.4049) 4695 0 R (HD.405) 654 0 R (HD.4050) 4696 0 R (HD.4051) 4701 0 R (HD.4052) 4702 0 R (HD.4053) 4703 0 R (HD.4054) 4704 0 R (HD.4055) 4705 0 R (HD.4056) 4706 0 R (HD.4057) 4707 0 R (HD.4058) 4708 0 R (HD.4059) 4709 0 R (HD.406) 659 0 R (HD.4060) 4710 0 R (HD.4061) 4711 0 R (HD.4062) 4712 0 R (HD.4063) 4713 0 R ] /Limits [ (HD.4035) (HD.4063) ] >>
endobj
11855 0 obj
-<< /Names [ (HD.5010) 5742 0 R (HD.5011) 5743 0 R (HD.5012) 5744 0 R (HD.5013) 5745 0 R (HD.5014) 5746 0 R (HD.5015) 5747 0 R (HD.5016) 5748 0 R (HD.5017) 5749 0 R (HD.5018) 5750 0 R (HD.5019) 5751 0 R (HD.502) 785 0 R (HD.5020) 5752 0 R (HD.5021) 5753 0 R (HD.5022) 5754 0 R (HD.5023) 5755 0 R (HD.5024) 5756 0 R (HD.5025) 5757 0 R (HD.5026) 5758 0 R (HD.5027) 5759 0 R (HD.5028) 5760 0 R (HD.5029) 5761 0 R (HD.503) 786 0 R (HD.5030) 5762 0 R (HD.5031) 5763 0 R (HD.5032) 5764 0 R (HD.5033) 5765 0 R (HD.5034) 5766 0 R (HD.5035) 5767 0 R (HD.5036) 5768 0 R (HD.5037) 5769 0 R (HD.5038) 5770 0 R (HD.5039) 5771 0 R ] /Limits [ (HD.5010) (HD.5039) ] >>
+<< /Names [ (HD.4064) 4714 0 R (HD.4065) 4715 0 R (HD.4066) 4716 0 R (HD.4067) 4717 0 R (HD.4068) 4718 0 R (HD.4069) 4719 0 R (HD.407) 661 0 R (HD.4070) 4720 0 R (HD.4071) 4721 0 R (HD.4072) 4722 0 R (HD.4073) 4723 0 R (HD.4074) 4724 0 R (HD.4075) 4725 0 R (HD.4076) 4726 0 R (HD.4077) 4727 0 R (HD.4078) 4728 0 R (HD.4079) 4729 0 R (HD.408) 663 0 R (HD.4080) 4730 0 R (HD.4081) 4731 0 R (HD.4082) 4732 0 R (HD.4083) 4733 0 R (HD.4084) 4734 0 R (HD.4085) 4735 0 R (HD.4086) 4736 0 R (HD.4087) 4737 0 R (HD.4088) 4738 0 R (HD.4089) 4739 0 R (HD.409) 664 0 R (HD.4090) 4740 0 R (HD.4091) 4741 0 R (HD.4092) 4742 0 R ] /Limits [ (HD.4064) (HD.4092) ] >>
endobj
11856 0 obj
-<< /Names [ (HD.504) 787 0 R (HD.5040) 5772 0 R (HD.5041) 5773 0 R (HD.5042) 5774 0 R (HD.5043) 5775 0 R (HD.5044) 5776 0 R (HD.5045) 5777 0 R (HD.5046) 5778 0 R (HD.5047) 5779 0 R (HD.5048) 5780 0 R (HD.5049) 5781 0 R (HD.505) 788 0 R (HD.5050) 5782 0 R (HD.5051) 5783 0 R (HD.5052) 5784 0 R (HD.5053) 5789 0 R (HD.5054) 5790 0 R (HD.5055) 5791 0 R (HD.5056) 5792 0 R (HD.5057) 5793 0 R (HD.5058) 5794 0 R (HD.5059) 5795 0 R (HD.506) 789 0 R (HD.5060) 5796 0 R (HD.5061) 5797 0 R (HD.5062) 5798 0 R (HD.5063) 5799 0 R (HD.5064) 5800 0 R (HD.5065) 5801 0 R (HD.5066) 5802 0 R (HD.5067) 5803 0 R (HD.5068) 5804 0 R ] /Limits [ (HD.504) (HD.5068) ] >>
+<< /Names [ (HD.4093) 4743 0 R (HD.4094) 4744 0 R (HD.4095) 4745 0 R (HD.4096) 4746 0 R (HD.4097) 4747 0 R (HD.4098) 4748 0 R (HD.4099) 4749 0 R (HD.41) 236 0 R (HD.410) 665 0 R (HD.4100) 4750 0 R (HD.4101) 4751 0 R (HD.4102) 4752 0 R (HD.4103) 4753 0 R (HD.4104) 4754 0 R (HD.4105) 4759 0 R (HD.4106) 4760 0 R (HD.4107) 4761 0 R (HD.4108) 4762 0 R (HD.4109) 4763 0 R (HD.411) 666 0 R (HD.4110) 4764 0 R (HD.4111) 4765 0 R (HD.4112) 4766 0 R (HD.4113) 4767 0 R (HD.4114) 4768 0 R (HD.4115) 4769 0 R (HD.4116) 4770 0 R (HD.4117) 4771 0 R (HD.4118) 4772 0 R (HD.4119) 4773 0 R (HD.412) 667 0 R (HD.4120) 4774 0 R ] /Limits [ (HD.4093) (HD.4120) ] >>
endobj
11857 0 obj
-<< /Names [ (HD.5069) 5805 0 R (HD.507) 790 0 R (HD.5070) 5806 0 R (HD.5071) 5807 0 R (HD.5072) 5808 0 R (HD.5073) 5809 0 R (HD.5074) 5810 0 R (HD.5075) 5811 0 R (HD.5076) 5812 0 R (HD.5077) 5813 0 R (HD.5078) 5814 0 R (HD.5079) 5815 0 R (HD.508) 791 0 R (HD.5080) 5816 0 R (HD.5081) 5817 0 R (HD.5082) 5818 0 R (HD.5083) 5819 0 R (HD.5084) 5820 0 R (HD.5085) 5821 0 R (HD.5086) 5822 0 R (HD.5087) 5823 0 R (HD.5088) 5824 0 R (HD.5089) 5825 0 R (HD.509) 792 0 R (HD.5090) 5826 0 R (HD.5091) 5827 0 R (HD.5092) 5828 0 R (HD.5093) 5829 0 R (HD.5094) 5830 0 R (HD.5095) 5831 0 R (HD.5096) 5832 0 R (HD.5097) 5833 0 R ] /Limits [ (HD.5069) (HD.5097) ] >>
+<< /Names [ (HD.4121) 4775 0 R (HD.4122) 4776 0 R (HD.4123) 4777 0 R (HD.4124) 4778 0 R (HD.4125) 4779 0 R (HD.4126) 4780 0 R (HD.4127) 4781 0 R (HD.4128) 4782 0 R (HD.4129) 4788 0 R (HD.413) 669 0 R (HD.4130) 4789 0 R (HD.4131) 4790 0 R (HD.4132) 4791 0 R (HD.4133) 4792 0 R (HD.4134) 4793 0 R (HD.4135) 4794 0 R (HD.4136) 4795 0 R (HD.4137) 4796 0 R (HD.4138) 4797 0 R (HD.4139) 4798 0 R (HD.414) 670 0 R (HD.4140) 4799 0 R (HD.4141) 4800 0 R (HD.4142) 4801 0 R (HD.4143) 4802 0 R (HD.4144) 4803 0 R (HD.4145) 4804 0 R (HD.4146) 4805 0 R (HD.4147) 4806 0 R (HD.4148) 4807 0 R (HD.4149) 4808 0 R (HD.415) 671 0 R ] /Limits [ (HD.4121) (HD.415) ] >>
endobj
11858 0 obj
-<< /Names [ (HD.5098) 5834 0 R (HD.5099) 5840 0 R (HD.51) 246 0 R (HD.510) 793 0 R (HD.5100) 5841 0 R (HD.5101) 5842 0 R (HD.5102) 5843 0 R (HD.5103) 5844 0 R (HD.5104) 5845 0 R (HD.5105) 5846 0 R (HD.5106) 5847 0 R (HD.5107) 5848 0 R (HD.5108) 5849 0 R (HD.5109) 5850 0 R (HD.511) 794 0 R (HD.5110) 5851 0 R (HD.5111) 5852 0 R (HD.5112) 5853 0 R (HD.5113) 5854 0 R (HD.5114) 5855 0 R (HD.5115) 5856 0 R (HD.5116) 5857 0 R (HD.5117) 5858 0 R (HD.5118) 5859 0 R (HD.5119) 5860 0 R (HD.512) 795 0 R (HD.5120) 5861 0 R (HD.5121) 5862 0 R (HD.5122) 5863 0 R (HD.5123) 5864 0 R (HD.5124) 5865 0 R (HD.5125) 5866 0 R ] /Limits [ (HD.5098) (HD.5125) ] >>
+<< /Names [ (HD.4150) 4809 0 R (HD.4151) 4810 0 R (HD.4152) 4811 0 R (HD.4153) 4812 0 R (HD.4154) 4813 0 R (HD.4155) 4814 0 R (HD.4156) 4815 0 R (HD.4157) 4816 0 R (HD.4158) 4817 0 R (HD.4159) 4818 0 R (HD.416) 672 0 R (HD.4160) 4819 0 R (HD.4161) 4820 0 R (HD.4162) 4821 0 R (HD.4163) 4822 0 R (HD.4164) 4823 0 R (HD.4165) 4824 0 R (HD.4166) 4825 0 R (HD.4167) 4826 0 R (HD.4168) 4827 0 R (HD.4169) 4828 0 R (HD.417) 673 0 R (HD.4170) 4829 0 R (HD.4171) 4830 0 R (HD.4172) 4831 0 R (HD.4173) 4832 0 R (HD.4174) 4833 0 R (HD.4175) 4834 0 R (HD.4176) 4835 0 R (HD.4177) 4836 0 R (HD.4178) 4837 0 R (HD.4179) 4838 0 R ] /Limits [ (HD.4150) (HD.4179) ] >>
endobj
11859 0 obj
-<< /Names [ (HD.5126) 5867 0 R (HD.5127) 5868 0 R (HD.5128) 5869 0 R (HD.5129) 5870 0 R (HD.513) 796 0 R (HD.5130) 5871 0 R (HD.5131) 5872 0 R (HD.5132) 5873 0 R (HD.5133) 5874 0 R (HD.5134) 5875 0 R (HD.5135) 5876 0 R (HD.5136) 5877 0 R (HD.5137) 5878 0 R (HD.5138) 5879 0 R (HD.5139) 5880 0 R (HD.514) 797 0 R (HD.5140) 5881 0 R (HD.5141) 5882 0 R (HD.5142) 5883 0 R (HD.5143) 5884 0 R (HD.5144) 5885 0 R (HD.5145) 5886 0 R (HD.5146) 5887 0 R (HD.5147) 5888 0 R (HD.5148) 5889 0 R (HD.5149) 5890 0 R (HD.515) 798 0 R (HD.5150) 5891 0 R (HD.5151) 5892 0 R (HD.5152) 5897 0 R (HD.5153) 5898 0 R (HD.5154) 5899 0 R ] /Limits [ (HD.5126) (HD.5154) ] >>
+<< /Names [ (HD.418) 674 0 R (HD.4180) 4843 0 R (HD.4181) 4844 0 R (HD.4182) 4845 0 R (HD.4183) 4846 0 R (HD.4184) 4847 0 R (HD.4185) 4848 0 R (HD.4186) 4849 0 R (HD.4187) 4850 0 R (HD.4188) 4851 0 R (HD.4189) 4852 0 R (HD.419) 675 0 R (HD.4190) 4853 0 R (HD.4191) 4854 0 R (HD.4192) 4855 0 R (HD.4193) 4856 0 R (HD.4194) 4857 0 R (HD.4195) 4858 0 R (HD.4196) 4859 0 R (HD.4197) 4860 0 R (HD.4198) 4861 0 R (HD.4199) 4862 0 R (HD.42) 237 0 R (HD.420) 676 0 R (HD.4200) 4863 0 R (HD.4201) 4864 0 R (HD.4202) 4865 0 R (HD.4203) 4866 0 R (HD.4204) 4867 0 R (HD.4205) 4868 0 R (HD.4206) 4869 0 R (HD.4207) 4870 0 R ] /Limits [ (HD.418) (HD.4207) ] >>
endobj
11860 0 obj
-<< /Names [ (HD.5155) 5900 0 R (HD.5156) 5901 0 R (HD.5157) 5902 0 R (HD.5158) 5903 0 R (HD.5159) 5904 0 R (HD.516) 799 0 R (HD.5160) 5905 0 R (HD.5161) 5906 0 R (HD.5162) 5907 0 R (HD.5163) 5908 0 R (HD.5164) 5909 0 R (HD.5165) 5910 0 R (HD.5166) 5911 0 R (HD.5167) 5912 0 R (HD.5168) 5913 0 R (HD.5169) 5914 0 R (HD.517) 800 0 R (HD.5170) 5915 0 R (HD.5171) 5916 0 R (HD.5172) 5917 0 R (HD.5173) 5918 0 R (HD.5174) 5919 0 R (HD.5175) 5920 0 R (HD.5176) 5921 0 R (HD.5177) 5922 0 R (HD.5178) 5923 0 R (HD.5179) 5924 0 R (HD.518) 801 0 R (HD.5180) 5925 0 R (HD.5181) 5926 0 R (HD.5182) 5927 0 R (HD.5183) 5928 0 R ] /Limits [ (HD.5155) (HD.5183) ] >>
+<< /Names [ (HD.4208) 4871 0 R (HD.4209) 4872 0 R (HD.421) 677 0 R (HD.4210) 4873 0 R (HD.4211) 4874 0 R (HD.4212) 4875 0 R (HD.4213) 4876 0 R (HD.4214) 4877 0 R (HD.4215) 4878 0 R (HD.4216) 4879 0 R (HD.4217) 4880 0 R (HD.4218) 4881 0 R (HD.4219) 4882 0 R (HD.422) 682 0 R (HD.4220) 4883 0 R (HD.4221) 4884 0 R (HD.4222) 4885 0 R (HD.4223) 4886 0 R (HD.4224) 4887 0 R (HD.4225) 4888 0 R (HD.4226) 4889 0 R (HD.4227) 4890 0 R (HD.4228) 4891 0 R (HD.4229) 4892 0 R (HD.423) 683 0 R (HD.4230) 4893 0 R (HD.4231) 4894 0 R (HD.4232) 4895 0 R (HD.4233) 4896 0 R (HD.4234) 4897 0 R (HD.4235) 4898 0 R (HD.4236) 4899 0 R ] /Limits [ (HD.4208) (HD.4236) ] >>
endobj
11861 0 obj
-<< /Names [ (HD.5184) 5929 0 R (HD.5185) 5930 0 R (HD.5186) 5931 0 R (HD.5187) 5932 0 R (HD.5188) 5933 0 R (HD.5189) 5934 0 R (HD.519) 802 0 R (HD.5190) 5935 0 R (HD.5191) 5936 0 R (HD.5192) 5937 0 R (HD.5193) 5938 0 R (HD.5194) 5939 0 R (HD.5195) 5940 0 R (HD.5196) 5941 0 R (HD.5197) 5942 0 R (HD.5198) 5943 0 R (HD.5199) 5944 0 R (HD.52) 247 0 R (HD.520) 803 0 R (HD.5200) 5945 0 R (HD.5201) 5946 0 R (HD.5202) 5947 0 R (HD.5203) 5948 0 R (HD.5204) 5949 0 R (HD.5205) 5950 0 R (HD.5206) 5951 0 R (HD.5207) 5952 0 R (HD.5208) 5953 0 R (HD.5209) 5958 0 R (HD.521) 804 0 R (HD.5210) 5959 0 R (HD.5211) 5960 0 R ] /Limits [ (HD.5184) (HD.5211) ] >>
+<< /Names [ (HD.4237) 4900 0 R (HD.4238) 4901 0 R (HD.4239) 4902 0 R (HD.424) 684 0 R (HD.4240) 4903 0 R (HD.4241) 4908 0 R (HD.4242) 4909 0 R (HD.4243) 4910 0 R (HD.4244) 4911 0 R (HD.4245) 4912 0 R (HD.4246) 4913 0 R (HD.4247) 4914 0 R (HD.4248) 4915 0 R (HD.4249) 4916 0 R (HD.425) 685 0 R (HD.4250) 4917 0 R (HD.4251) 4918 0 R (HD.4252) 4919 0 R (HD.4253) 4920 0 R (HD.4254) 4921 0 R (HD.4255) 4922 0 R (HD.4256) 4923 0 R (HD.4257) 4924 0 R (HD.4258) 4925 0 R (HD.4259) 4926 0 R (HD.426) 686 0 R (HD.4260) 4927 0 R (HD.4261) 4928 0 R (HD.4262) 4929 0 R (HD.4263) 4930 0 R (HD.4264) 4931 0 R (HD.4265) 4932 0 R ] /Limits [ (HD.4237) (HD.4265) ] >>
endobj
11862 0 obj
-<< /Names [ (HD.5212) 5961 0 R (HD.5213) 5962 0 R (HD.5214) 5963 0 R (HD.5215) 5964 0 R (HD.5216) 5965 0 R (HD.5217) 5966 0 R (HD.5218) 5967 0 R (HD.5219) 5968 0 R (HD.522) 805 0 R (HD.5220) 5969 0 R (HD.5221) 5970 0 R (HD.5222) 5971 0 R (HD.5223) 5972 0 R (HD.5224) 5973 0 R (HD.5225) 5974 0 R (HD.5226) 5975 0 R (HD.5227) 5976 0 R (HD.5228) 5977 0 R (HD.5229) 5978 0 R (HD.523) 812 0 R (HD.5230) 5979 0 R (HD.5231) 5980 0 R (HD.5232) 5981 0 R (HD.5233) 5982 0 R (HD.5234) 5983 0 R (HD.5235) 5984 0 R (HD.5236) 5985 0 R (HD.5237) 5986 0 R (HD.5238) 5987 0 R (HD.5239) 5988 0 R (HD.524) 813 0 R (HD.5240) 5989 0 R ] /Limits [ (HD.5212) (HD.5240) ] >>
+<< /Names [ (HD.4266) 4933 0 R (HD.4267) 4934 0 R (HD.4268) 4935 0 R (HD.4269) 4936 0 R (HD.427) 687 0 R (HD.4270) 4937 0 R (HD.4271) 4938 0 R (HD.4272) 4939 0 R (HD.4273) 4940 0 R (HD.4274) 4941 0 R (HD.4275) 4942 0 R (HD.4276) 4943 0 R (HD.4277) 4944 0 R (HD.4278) 4945 0 R (HD.4279) 4950 0 R (HD.428) 688 0 R (HD.4280) 4951 0 R (HD.4281) 4952 0 R (HD.4282) 4953 0 R (HD.4283) 4954 0 R (HD.4284) 4955 0 R (HD.4285) 4956 0 R (HD.4286) 4957 0 R (HD.4287) 4958 0 R (HD.4288) 4959 0 R (HD.4289) 4960 0 R (HD.429) 689 0 R (HD.4290) 4961 0 R (HD.4291) 4962 0 R (HD.4292) 4963 0 R (HD.4293) 4964 0 R (HD.4294) 4965 0 R ] /Limits [ (HD.4266) (HD.4294) ] >>
endobj
11863 0 obj
-<< /Names [ (HD.5241) 5990 0 R (HD.5242) 5991 0 R (HD.5243) 5992 0 R (HD.5244) 5993 0 R (HD.5245) 5994 0 R (HD.5246) 5995 0 R (HD.5247) 5996 0 R (HD.5248) 5997 0 R (HD.5249) 5998 0 R (HD.525) 814 0 R (HD.5250) 5999 0 R (HD.5251) 6000 0 R (HD.5252) 6001 0 R (HD.5253) 6002 0 R (HD.5254) 6003 0 R (HD.5255) 6004 0 R (HD.5256) 6005 0 R (HD.5257) 6006 0 R (HD.5258) 6007 0 R (HD.5259) 6008 0 R (HD.526) 815 0 R (HD.5260) 6009 0 R (HD.5261) 6010 0 R (HD.5262) 6011 0 R (HD.5263) 6012 0 R (HD.5264) 6013 0 R (HD.5265) 6014 0 R (HD.5266) 6015 0 R (HD.5267) 6021 0 R (HD.5268) 6022 0 R (HD.5269) 6023 0 R (HD.527) 816 0 R ] /Limits [ (HD.5241) (HD.527) ] >>
+<< /Names [ (HD.4295) 4966 0 R (HD.4296) 4967 0 R (HD.4297) 4968 0 R (HD.4298) 4969 0 R (HD.4299) 4970 0 R (HD.43) 238 0 R (HD.430) 690 0 R (HD.4300) 4971 0 R (HD.4301) 4972 0 R (HD.4302) 4973 0 R (HD.4303) 4974 0 R (HD.4304) 4975 0 R (HD.4305) 4976 0 R (HD.4306) 4977 0 R (HD.4307) 4978 0 R (HD.4308) 4979 0 R (HD.4309) 4980 0 R (HD.431) 691 0 R (HD.4310) 4981 0 R (HD.4311) 4982 0 R (HD.4312) 4983 0 R (HD.4313) 4984 0 R (HD.4314) 4985 0 R (HD.4315) 4986 0 R (HD.4316) 4987 0 R (HD.4317) 4988 0 R (HD.4318) 4989 0 R (HD.4319) 4990 0 R (HD.432) 692 0 R (HD.4320) 4991 0 R (HD.4321) 4992 0 R (HD.4322) 4993 0 R ] /Limits [ (HD.4295) (HD.4322) ] >>
endobj
11864 0 obj
-<< /Names [ (HD.5270) 6024 0 R (HD.5271) 6025 0 R (HD.5272) 6026 0 R (HD.5273) 6027 0 R (HD.5274) 6028 0 R (HD.5275) 6029 0 R (HD.5276) 6030 0 R (HD.5277) 6031 0 R (HD.5278) 6032 0 R (HD.5279) 6033 0 R (HD.528) 817 0 R (HD.5280) 6034 0 R (HD.5281) 6035 0 R (HD.5282) 6036 0 R (HD.5283) 6037 0 R (HD.5284) 6038 0 R (HD.5285) 6039 0 R (HD.5286) 6040 0 R (HD.5287) 6041 0 R (HD.5288) 6042 0 R (HD.5289) 6043 0 R (HD.529) 818 0 R (HD.5290) 6044 0 R (HD.5291) 6045 0 R (HD.5292) 6046 0 R (HD.5293) 6047 0 R (HD.5294) 6048 0 R (HD.5295) 6049 0 R (HD.5296) 6050 0 R (HD.5297) 6057 0 R (HD.5298) 6058 0 R (HD.5299) 6059 0 R ] /Limits [ (HD.5270) (HD.5299) ] >>
+<< /Names [ (HD.4323) 4994 0 R (HD.4324) 4995 0 R (HD.4325) 4996 0 R (HD.4326) 4997 0 R (HD.4327) 4998 0 R (HD.4328) 4999 0 R (HD.4329) 5000 0 R (HD.433) 693 0 R (HD.4330) 5001 0 R (HD.4331) 5002 0 R (HD.4332) 5003 0 R (HD.4333) 5004 0 R (HD.4334) 5005 0 R (HD.4335) 5006 0 R (HD.4336) 5007 0 R (HD.4337) 5008 0 R (HD.4338) 5009 0 R (HD.4339) 5010 0 R (HD.434) 694 0 R (HD.4340) 5011 0 R (HD.4341) 5016 0 R (HD.4342) 5017 0 R (HD.4343) 5018 0 R (HD.4344) 5019 0 R (HD.4345) 5020 0 R (HD.4346) 5021 0 R (HD.4347) 5022 0 R (HD.4348) 5023 0 R (HD.4349) 5024 0 R (HD.435) 695 0 R (HD.4350) 5025 0 R (HD.4351) 5026 0 R ] /Limits [ (HD.4323) (HD.4351) ] >>
endobj
11865 0 obj
-<< /Names [ (HD.53) 248 0 R (HD.530) 819 0 R (HD.5300) 6060 0 R (HD.5301) 6061 0 R (HD.5302) 6062 0 R (HD.5303) 6063 0 R (HD.5304) 6064 0 R (HD.5305) 6065 0 R (HD.5306) 6066 0 R (HD.5307) 6067 0 R (HD.5308) 6068 0 R (HD.5309) 6069 0 R (HD.531) 820 0 R (HD.5310) 6070 0 R (HD.5311) 6071 0 R (HD.5312) 6072 0 R (HD.5313) 6073 0 R (HD.5314) 6074 0 R (HD.5315) 6075 0 R (HD.5316) 6076 0 R (HD.5317) 6077 0 R (HD.5318) 6078 0 R (HD.5319) 6079 0 R (HD.532) 821 0 R (HD.5320) 6080 0 R (HD.5321) 6081 0 R (HD.5322) 6082 0 R (HD.5323) 6083 0 R (HD.5324) 6084 0 R (HD.5325) 6085 0 R (HD.5326) 6086 0 R (HD.5327) 6087 0 R ] /Limits [ (HD.53) (HD.5327) ] >>
+<< /Names [ (HD.4352) 5027 0 R (HD.4353) 5028 0 R (HD.4354) 5029 0 R (HD.4355) 5030 0 R (HD.4356) 5031 0 R (HD.4357) 5032 0 R (HD.4358) 5033 0 R (HD.4359) 5034 0 R (HD.436) 696 0 R (HD.4360) 5035 0 R (HD.4361) 5036 0 R (HD.4362) 5037 0 R (HD.4363) 5038 0 R (HD.4364) 5039 0 R (HD.4365) 5040 0 R (HD.4366) 5041 0 R (HD.4367) 5042 0 R (HD.4368) 5043 0 R (HD.4369) 5044 0 R (HD.437) 697 0 R (HD.4370) 5045 0 R (HD.4371) 5046 0 R (HD.4372) 5047 0 R (HD.4373) 5048 0 R (HD.4374) 5049 0 R (HD.4375) 5050 0 R (HD.4376) 5051 0 R (HD.4377) 5052 0 R (HD.4378) 5053 0 R (HD.4379) 5054 0 R (HD.438) 702 0 R (HD.4380) 5055 0 R ] /Limits [ (HD.4352) (HD.4380) ] >>
endobj
11866 0 obj
-<< /Names [ (HD.5328) 6088 0 R (HD.5329) 6089 0 R (HD.533) 822 0 R (HD.5330) 6090 0 R (HD.5331) 6091 0 R (HD.5332) 6092 0 R (HD.5333) 6093 0 R (HD.5334) 6094 0 R (HD.5335) 6095 0 R (HD.5336) 6096 0 R (HD.5337) 6097 0 R (HD.5338) 6098 0 R (HD.5339) 6099 0 R (HD.534) 823 0 R (HD.5340) 6100 0 R (HD.5341) 6101 0 R (HD.5342) 6102 0 R (HD.5343) 6103 0 R (HD.5344) 6104 0 R (HD.5345) 6105 0 R (HD.5346) 6106 0 R (HD.5347) 6111 0 R (HD.5348) 6112 0 R (HD.5349) 6113 0 R (HD.535) 824 0 R (HD.5350) 6114 0 R (HD.5351) 6115 0 R (HD.5352) 6116 0 R (HD.5353) 6117 0 R (HD.5354) 6118 0 R (HD.5355) 6119 0 R (HD.5356) 6120 0 R ] /Limits [ (HD.5328) (HD.5356) ] >>
+<< /Names [ (HD.4381) 5056 0 R (HD.4382) 5057 0 R (HD.4383) 5058 0 R (HD.4384) 5059 0 R (HD.4385) 5060 0 R (HD.4386) 5061 0 R (HD.4387) 5062 0 R (HD.4388) 5063 0 R (HD.4389) 5064 0 R (HD.439) 703 0 R (HD.4390) 5065 0 R (HD.4391) 5066 0 R (HD.4392) 5071 0 R (HD.4393) 5072 0 R (HD.4394) 5073 0 R (HD.4395) 5074 0 R (HD.4396) 5075 0 R (HD.4397) 5076 0 R (HD.4398) 5077 0 R (HD.4399) 5078 0 R (HD.44) 239 0 R (HD.440) 704 0 R (HD.4400) 5079 0 R (HD.4401) 5080 0 R (HD.4402) 5081 0 R (HD.4403) 5082 0 R (HD.4404) 5083 0 R (HD.4405) 5084 0 R (HD.4406) 5085 0 R (HD.4407) 5086 0 R (HD.4408) 5087 0 R (HD.4409) 5088 0 R ] /Limits [ (HD.4381) (HD.4409) ] >>
endobj
11867 0 obj
-<< /Names [ (HD.5357) 6121 0 R (HD.5358) 6122 0 R (HD.5359) 6123 0 R (HD.536) 825 0 R (HD.5360) 6124 0 R (HD.5361) 6125 0 R (HD.5362) 6126 0 R (HD.5363) 6127 0 R (HD.5364) 6128 0 R (HD.5365) 6129 0 R (HD.5366) 6130 0 R (HD.5367) 6131 0 R (HD.5368) 6132 0 R (HD.5369) 6133 0 R (HD.537) 832 0 R (HD.5370) 6134 0 R (HD.5371) 6135 0 R (HD.5372) 6136 0 R (HD.5373) 6137 0 R (HD.5374) 6138 0 R (HD.5375) 6139 0 R (HD.5376) 6140 0 R (HD.5377) 6141 0 R (HD.5378) 6142 0 R (HD.5379) 6143 0 R (HD.538) 833 0 R (HD.5380) 6148 0 R (HD.5381) 6149 0 R (HD.5382) 6150 0 R (HD.5383) 6151 0 R (HD.5384) 6152 0 R (HD.5385) 6153 0 R ] /Limits [ (HD.5357) (HD.5385) ] >>
+<< /Names [ (HD.441) 705 0 R (HD.4410) 5089 0 R (HD.4411) 5090 0 R (HD.4412) 5091 0 R (HD.4413) 5092 0 R (HD.4414) 5093 0 R (HD.4415) 5094 0 R (HD.4416) 5095 0 R (HD.4417) 5096 0 R (HD.4418) 5097 0 R (HD.4419) 5098 0 R (HD.442) 706 0 R (HD.4420) 5099 0 R (HD.4421) 5100 0 R (HD.4422) 5101 0 R (HD.4423) 5102 0 R (HD.4424) 5103 0 R (HD.4425) 5104 0 R (HD.4426) 5105 0 R (HD.4427) 5106 0 R (HD.4428) 5107 0 R (HD.4429) 5108 0 R (HD.443) 707 0 R (HD.4430) 5113 0 R (HD.4431) 5114 0 R (HD.4432) 5115 0 R (HD.4433) 5116 0 R (HD.4434) 5117 0 R (HD.4435) 5118 0 R (HD.4436) 5119 0 R (HD.4437) 5120 0 R (HD.4438) 5121 0 R ] /Limits [ (HD.441) (HD.4438) ] >>
endobj
11868 0 obj
-<< /Names [ (HD.5386) 6154 0 R (HD.5387) 6155 0 R (HD.5388) 6156 0 R (HD.5389) 6157 0 R (HD.539) 834 0 R (HD.5390) 6158 0 R (HD.5391) 6159 0 R (HD.5392) 6160 0 R (HD.5393) 6161 0 R (HD.5394) 6162 0 R (HD.5395) 6163 0 R (HD.5396) 6164 0 R (HD.5397) 6165 0 R (HD.5398) 6166 0 R (HD.5399) 6167 0 R (HD.54) 249 0 R (HD.540) 835 0 R (HD.5400) 6168 0 R (HD.5401) 6169 0 R (HD.5402) 6170 0 R (HD.5403) 6171 0 R (HD.5404) 6172 0 R (HD.5405) 6173 0 R (HD.5406) 6174 0 R (HD.5407) 6175 0 R (HD.5408) 6176 0 R (HD.5409) 6177 0 R (HD.541) 836 0 R (HD.5410) 6178 0 R (HD.5411) 6179 0 R (HD.5412) 6180 0 R (HD.5413) 6181 0 R ] /Limits [ (HD.5386) (HD.5413) ] >>
+<< /Names [ (HD.4439) 5122 0 R (HD.444) 708 0 R (HD.4440) 5123 0 R (HD.4441) 5124 0 R (HD.4442) 5125 0 R (HD.4443) 5126 0 R (HD.4444) 5127 0 R (HD.4445) 5128 0 R (HD.4446) 5129 0 R (HD.4447) 5130 0 R (HD.4448) 5131 0 R (HD.4449) 5132 0 R (HD.445) 709 0 R (HD.4450) 5133 0 R (HD.4451) 5134 0 R (HD.4452) 5135 0 R (HD.4453) 5136 0 R (HD.4454) 5137 0 R (HD.4455) 5138 0 R (HD.4456) 5139 0 R (HD.4457) 5140 0 R (HD.4458) 5141 0 R (HD.4459) 5142 0 R (HD.446) 710 0 R (HD.4460) 5143 0 R (HD.4461) 5144 0 R (HD.4462) 5145 0 R (HD.4463) 5146 0 R (HD.4464) 5147 0 R (HD.4465) 5148 0 R (HD.4466) 5149 0 R (HD.4467) 5150 0 R ] /Limits [ (HD.4439) (HD.4467) ] >>
endobj
11869 0 obj
-<< /Names [ (HD.5414) 6182 0 R (HD.5415) 6183 0 R (HD.5416) 6184 0 R (HD.5417) 6185 0 R (HD.5418) 6186 0 R (HD.5419) 6187 0 R (HD.542) 837 0 R (HD.5420) 6188 0 R (HD.5421) 6189 0 R (HD.5422) 6190 0 R (HD.5423) 6191 0 R (HD.5424) 6192 0 R (HD.5425) 6193 0 R (HD.5426) 6194 0 R (HD.5427) 6195 0 R (HD.5428) 6200 0 R (HD.5429) 6201 0 R (HD.543) 838 0 R (HD.5430) 6202 0 R (HD.5431) 6203 0 R (HD.5432) 6204 0 R (HD.5433) 6205 0 R (HD.5434) 6206 0 R (HD.5435) 6207 0 R (HD.5436) 6208 0 R (HD.5437) 6209 0 R (HD.5438) 6210 0 R (HD.5439) 6211 0 R (HD.544) 839 0 R (HD.5440) 6212 0 R (HD.5441) 6213 0 R (HD.5442) 6214 0 R ] /Limits [ (HD.5414) (HD.5442) ] >>
+<< /Names [ (HD.4468) 5151 0 R (HD.4469) 5152 0 R (HD.447) 711 0 R (HD.4470) 5153 0 R (HD.4471) 5154 0 R (HD.4472) 5155 0 R (HD.4473) 5156 0 R (HD.4474) 5157 0 R (HD.4475) 5162 0 R (HD.4476) 5163 0 R (HD.4477) 5164 0 R (HD.4478) 5165 0 R (HD.4479) 5166 0 R (HD.448) 712 0 R (HD.4480) 5167 0 R (HD.4481) 5168 0 R (HD.4482) 5169 0 R (HD.4483) 5170 0 R (HD.4484) 5171 0 R (HD.4485) 5172 0 R (HD.4486) 5173 0 R (HD.4487) 5174 0 R (HD.4488) 5175 0 R (HD.4489) 5176 0 R (HD.449) 713 0 R (HD.4490) 5177 0 R (HD.4491) 5178 0 R (HD.4492) 5179 0 R (HD.4493) 5180 0 R (HD.4494) 5181 0 R (HD.4495) 5182 0 R (HD.4496) 5183 0 R ] /Limits [ (HD.4468) (HD.4496) ] >>
endobj
11870 0 obj
-<< /Names [ (HD.5443) 6215 0 R (HD.5444) 6216 0 R (HD.5445) 6217 0 R (HD.5446) 6218 0 R (HD.5447) 6219 0 R (HD.5448) 6220 0 R (HD.5449) 6221 0 R (HD.545) 840 0 R (HD.5450) 6222 0 R (HD.5451) 6223 0 R (HD.5452) 6224 0 R (HD.5453) 6225 0 R (HD.5454) 6226 0 R (HD.5455) 6227 0 R (HD.5456) 6228 0 R (HD.5457) 6229 0 R (HD.5458) 6230 0 R (HD.5459) 6231 0 R (HD.546) 841 0 R (HD.5460) 6232 0 R (HD.5461) 6233 0 R (HD.5462) 6234 0 R (HD.5463) 6235 0 R (HD.5464) 6236 0 R (HD.5465) 6237 0 R (HD.5466) 6238 0 R (HD.5467) 6243 0 R (HD.5468) 6244 0 R (HD.5469) 6245 0 R (HD.547) 842 0 R (HD.5470) 6246 0 R (HD.5471) 6247 0 R ] /Limits [ (HD.5443) (HD.5471) ] >>
+<< /Names [ (HD.4497) 5184 0 R (HD.4498) 5185 0 R (HD.4499) 5186 0 R (HD.45) 240 0 R (HD.450) 714 0 R (HD.4500) 5187 0 R (HD.4501) 5188 0 R (HD.4502) 5189 0 R (HD.4503) 5190 0 R (HD.4504) 5191 0 R (HD.4505) 5192 0 R (HD.4506) 5193 0 R (HD.4507) 5194 0 R (HD.4508) 5195 0 R (HD.4509) 5196 0 R (HD.451) 715 0 R (HD.4510) 5197 0 R (HD.4511) 5198 0 R (HD.4512) 5199 0 R (HD.4513) 5200 0 R (HD.4514) 5201 0 R (HD.4515) 5202 0 R (HD.4516) 5203 0 R (HD.4517) 5204 0 R (HD.4518) 5205 0 R (HD.4519) 5206 0 R (HD.452) 716 0 R (HD.4520) 5207 0 R (HD.4521) 5208 0 R (HD.4522) 5209 0 R (HD.4523) 5210 0 R (HD.4524) 5211 0 R ] /Limits [ (HD.4497) (HD.4524) ] >>
endobj
11871 0 obj
-<< /Names [ (HD.5472) 6248 0 R (HD.5473) 6249 0 R (HD.5474) 6250 0 R (HD.5475) 6251 0 R (HD.5476) 6252 0 R (HD.5477) 6253 0 R (HD.5478) 6254 0 R (HD.5479) 6255 0 R (HD.548) 843 0 R (HD.5480) 6256 0 R (HD.5481) 6257 0 R (HD.5482) 6258 0 R (HD.5483) 6259 0 R (HD.5484) 6260 0 R (HD.5485) 6261 0 R (HD.5486) 6262 0 R (HD.5487) 6263 0 R (HD.5488) 6264 0 R (HD.5489) 6265 0 R (HD.549) 844 0 R (HD.5490) 6266 0 R (HD.5491) 6267 0 R (HD.5492) 6268 0 R (HD.5493) 6269 0 R (HD.5494) 6270 0 R (HD.5495) 6271 0 R (HD.5496) 6272 0 R (HD.5497) 6273 0 R (HD.5498) 6274 0 R (HD.5499) 6279 0 R (HD.55) 250 0 R (HD.550) 845 0 R ] /Limits [ (HD.5472) (HD.550) ] >>
+<< /Names [ (HD.4525) 5212 0 R (HD.4526) 5213 0 R (HD.4527) 5214 0 R (HD.4528) 5215 0 R (HD.4529) 5216 0 R (HD.453) 717 0 R (HD.4530) 5217 0 R (HD.4531) 5218 0 R (HD.4532) 5219 0 R (HD.4533) 5224 0 R (HD.4534) 5225 0 R (HD.4535) 5226 0 R (HD.4536) 5227 0 R (HD.4537) 5228 0 R (HD.4538) 5229 0 R (HD.4539) 5230 0 R (HD.454) 718 0 R (HD.4540) 5231 0 R (HD.4541) 5232 0 R (HD.4542) 5233 0 R (HD.4543) 5234 0 R (HD.4544) 5235 0 R (HD.4545) 5236 0 R (HD.4546) 5237 0 R (HD.4547) 5238 0 R (HD.4548) 5239 0 R (HD.4549) 5240 0 R (HD.455) 719 0 R (HD.4550) 5241 0 R (HD.4551) 5242 0 R (HD.4552) 5243 0 R (HD.4553) 5244 0 R ] /Limits [ (HD.4525) (HD.4553) ] >>
endobj
11872 0 obj
-<< /Names [ (HD.5500) 6280 0 R (HD.5501) 6281 0 R (HD.5502) 6282 0 R (HD.5503) 6283 0 R (HD.5504) 6284 0 R (HD.5505) 6285 0 R (HD.5506) 6286 0 R (HD.5507) 6287 0 R (HD.5508) 6288 0 R (HD.5509) 6289 0 R (HD.551) 846 0 R (HD.5510) 6290 0 R (HD.5511) 6291 0 R (HD.5512) 6292 0 R (HD.5513) 6293 0 R (HD.5514) 6294 0 R (HD.5515) 6295 0 R (HD.5516) 6296 0 R (HD.5517) 6297 0 R (HD.5518) 6298 0 R (HD.5519) 6299 0 R (HD.552) 847 0 R (HD.5520) 6300 0 R (HD.5521) 6301 0 R (HD.5522) 6302 0 R (HD.5523) 6303 0 R (HD.5524) 6304 0 R (HD.5525) 6305 0 R (HD.5526) 6306 0 R (HD.5527) 6307 0 R (HD.5528) 6308 0 R (HD.5529) 6309 0 R ] /Limits [ (HD.5500) (HD.5529) ] >>
+<< /Names [ (HD.4554) 5245 0 R (HD.4555) 5246 0 R (HD.4556) 5247 0 R (HD.4557) 5248 0 R (HD.4558) 5249 0 R (HD.4559) 5250 0 R (HD.456) 720 0 R (HD.4560) 5251 0 R (HD.4561) 5252 0 R (HD.4562) 5253 0 R (HD.4563) 5254 0 R (HD.4564) 5255 0 R (HD.4565) 5256 0 R (HD.4566) 5257 0 R (HD.4567) 5258 0 R (HD.4568) 5259 0 R (HD.4569) 5260 0 R (HD.457) 721 0 R (HD.4570) 5261 0 R (HD.4571) 5262 0 R (HD.4572) 5263 0 R (HD.4573) 5264 0 R (HD.4574) 5269 0 R (HD.4575) 5270 0 R (HD.4576) 5271 0 R (HD.4577) 5272 0 R (HD.4578) 5273 0 R (HD.4579) 5274 0 R (HD.458) 722 0 R (HD.4580) 5275 0 R (HD.4581) 5276 0 R (HD.4582) 5277 0 R ] /Limits [ (HD.4554) (HD.4582) ] >>
endobj
11873 0 obj
-<< /Names [ (HD.553) 848 0 R (HD.5530) 6310 0 R (HD.5531) 6311 0 R (HD.5532) 6312 0 R (HD.5533) 6313 0 R (HD.5534) 6314 0 R (HD.5535) 6315 0 R (HD.5536) 6316 0 R (HD.5537) 6317 0 R (HD.5538) 6318 0 R (HD.5539) 6319 0 R (HD.554) 849 0 R (HD.5540) 6320 0 R (HD.5541) 6321 0 R (HD.5542) 6322 0 R (HD.5543) 6323 0 R (HD.5544) 6324 0 R (HD.5545) 6325 0 R (HD.5546) 6326 0 R (HD.5547) 6327 0 R (HD.5548) 6328 0 R (HD.5549) 6329 0 R (HD.555) 850 0 R (HD.5550) 6330 0 R (HD.5551) 6331 0 R (HD.5552) 6337 0 R (HD.5553) 6338 0 R (HD.5554) 6339 0 R (HD.5555) 6340 0 R (HD.5556) 6341 0 R (HD.5557) 6342 0 R (HD.5558) 6343 0 R ] /Limits [ (HD.553) (HD.5558) ] >>
+<< /Names [ (HD.4583) 5278 0 R (HD.4584) 5279 0 R (HD.4585) 5280 0 R (HD.4586) 5281 0 R (HD.4587) 5282 0 R (HD.4588) 5283 0 R (HD.4589) 5284 0 R (HD.459) 723 0 R (HD.4590) 5285 0 R (HD.4591) 5286 0 R (HD.4592) 5287 0 R (HD.4593) 5288 0 R (HD.4594) 5289 0 R (HD.4595) 5290 0 R (HD.4596) 5291 0 R (HD.4597) 5292 0 R (HD.4598) 5293 0 R (HD.4599) 5294 0 R (HD.46) 241 0 R (HD.460) 724 0 R (HD.4600) 5295 0 R (HD.4601) 5296 0 R (HD.4602) 5297 0 R (HD.4603) 5298 0 R (HD.4604) 5299 0 R (HD.4605) 5300 0 R (HD.4606) 5301 0 R (HD.4607) 5302 0 R (HD.4608) 5303 0 R (HD.4609) 5304 0 R (HD.461) 729 0 R (HD.4610) 5305 0 R ] /Limits [ (HD.4583) (HD.4610) ] >>
endobj
11874 0 obj
-<< /Names [ (HD.5559) 6344 0 R (HD.556) 851 0 R (HD.5560) 6345 0 R (HD.5561) 6346 0 R (HD.5562) 6347 0 R (HD.5563) 6348 0 R (HD.5564) 6349 0 R (HD.5565) 6350 0 R (HD.5566) 6351 0 R (HD.5567) 6352 0 R (HD.5568) 6353 0 R (HD.5569) 6354 0 R (HD.557) 852 0 R (HD.5570) 6355 0 R (HD.5571) 6356 0 R (HD.5572) 6357 0 R (HD.5573) 6358 0 R (HD.5574) 6359 0 R (HD.5575) 6360 0 R (HD.5576) 6361 0 R (HD.5577) 6362 0 R (HD.5578) 6363 0 R (HD.5579) 6364 0 R (HD.558) 853 0 R (HD.5580) 6365 0 R (HD.5581) 6366 0 R (HD.5582) 6367 0 R (HD.5583) 6368 0 R (HD.5584) 6369 0 R (HD.5585) 6370 0 R (HD.5586) 6371 0 R (HD.5587) 6372 0 R ] /Limits [ (HD.5559) (HD.5587) ] >>
+<< /Names [ (HD.4611) 5306 0 R (HD.4612) 5307 0 R (HD.4613) 5308 0 R (HD.4614) 5309 0 R (HD.4615) 5310 0 R (HD.4616) 5311 0 R (HD.4617) 5312 0 R (HD.4618) 5313 0 R (HD.4619) 5314 0 R (HD.462) 730 0 R (HD.4620) 5320 0 R (HD.4621) 5321 0 R (HD.4622) 5322 0 R (HD.4623) 5323 0 R (HD.4624) 5324 0 R (HD.4625) 5325 0 R (HD.4626) 5326 0 R (HD.4627) 5327 0 R (HD.4628) 5328 0 R (HD.4629) 5329 0 R (HD.463) 731 0 R (HD.4630) 5330 0 R (HD.4631) 5331 0 R (HD.4632) 5332 0 R (HD.4633) 5333 0 R (HD.4634) 5334 0 R (HD.4635) 5335 0 R (HD.4636) 5336 0 R (HD.4637) 5337 0 R (HD.4638) 5338 0 R (HD.4639) 5339 0 R (HD.464) 732 0 R ] /Limits [ (HD.4611) (HD.464) ] >>
endobj
11875 0 obj
-<< /Names [ (HD.5588) 6373 0 R (HD.5589) 6374 0 R (HD.559) 854 0 R (HD.5590) 6375 0 R (HD.5591) 6376 0 R (HD.5592) 6377 0 R (HD.5593) 6378 0 R (HD.5594) 6379 0 R (HD.5595) 6380 0 R (HD.5596) 6385 0 R (HD.5597) 6386 0 R (HD.5598) 6387 0 R (HD.5599) 6388 0 R (HD.56) 251 0 R (HD.560) 855 0 R (HD.5600) 6389 0 R (HD.5601) 6390 0 R (HD.5602) 6391 0 R (HD.5603) 6392 0 R (HD.5604) 6393 0 R (HD.5605) 6394 0 R (HD.5606) 6395 0 R (HD.5607) 6396 0 R (HD.5608) 6397 0 R (HD.5609) 6398 0 R (HD.561) 856 0 R (HD.5610) 6399 0 R (HD.5611) 6400 0 R (HD.5612) 6401 0 R (HD.5613) 6402 0 R (HD.5614) 6403 0 R (HD.5615) 6404 0 R ] /Limits [ (HD.5588) (HD.5615) ] >>
+<< /Names [ (HD.4640) 5340 0 R (HD.4641) 5341 0 R (HD.4642) 5342 0 R (HD.4643) 5343 0 R (HD.4644) 5344 0 R (HD.4645) 5345 0 R (HD.4646) 5346 0 R (HD.4647) 5347 0 R (HD.4648) 5348 0 R (HD.4649) 5349 0 R (HD.465) 733 0 R (HD.4650) 5350 0 R (HD.4651) 5351 0 R (HD.4652) 5352 0 R (HD.4653) 5353 0 R (HD.4654) 5354 0 R (HD.4655) 5355 0 R (HD.4656) 5356 0 R (HD.4657) 5357 0 R (HD.4658) 5358 0 R (HD.4659) 5363 0 R (HD.466) 734 0 R (HD.4660) 5364 0 R (HD.4661) 5365 0 R (HD.4662) 5366 0 R (HD.4663) 5367 0 R (HD.4664) 5368 0 R (HD.4665) 5369 0 R (HD.4666) 5370 0 R (HD.4667) 5371 0 R (HD.4668) 5372 0 R (HD.4669) 5373 0 R ] /Limits [ (HD.4640) (HD.4669) ] >>
endobj
11876 0 obj
-<< /Names [ (HD.5616) 6405 0 R (HD.5617) 6406 0 R (HD.5618) 6407 0 R (HD.5619) 6408 0 R (HD.562) 857 0 R (HD.5620) 6409 0 R (HD.5621) 6410 0 R (HD.5622) 6411 0 R (HD.5623) 6412 0 R (HD.5624) 6413 0 R (HD.5625) 6414 0 R (HD.5626) 6415 0 R (HD.5627) 6416 0 R (HD.5628) 6417 0 R (HD.5629) 6418 0 R (HD.563) 858 0 R (HD.5630) 6419 0 R (HD.5631) 6420 0 R (HD.5632) 6421 0 R (HD.5633) 6422 0 R (HD.5634) 6423 0 R (HD.5635) 6424 0 R (HD.5636) 6425 0 R (HD.5637) 6426 0 R (HD.5638) 6427 0 R (HD.5639) 6428 0 R (HD.564) 859 0 R (HD.5640) 6429 0 R (HD.5641) 6430 0 R (HD.5642) 6431 0 R (HD.5643) 6432 0 R (HD.5644) 6437 0 R ] /Limits [ (HD.5616) (HD.5644) ] >>
+<< /Names [ (HD.467) 735 0 R (HD.4670) 5374 0 R (HD.4671) 5375 0 R (HD.4672) 5376 0 R (HD.4673) 5377 0 R (HD.4674) 5378 0 R (HD.4675) 5379 0 R (HD.4676) 5380 0 R (HD.4677) 5381 0 R (HD.4678) 5382 0 R (HD.4679) 5383 0 R (HD.468) 736 0 R (HD.4680) 5384 0 R (HD.4681) 5385 0 R (HD.4682) 5386 0 R (HD.4683) 5387 0 R (HD.4684) 5388 0 R (HD.4685) 5389 0 R (HD.4686) 5390 0 R (HD.4687) 5391 0 R (HD.4688) 5392 0 R (HD.4689) 5393 0 R (HD.469) 737 0 R (HD.4690) 5394 0 R (HD.4691) 5395 0 R (HD.4692) 5396 0 R (HD.4693) 5397 0 R (HD.4694) 5398 0 R (HD.4695) 5399 0 R (HD.4696) 5400 0 R (HD.4697) 5401 0 R (HD.4698) 5402 0 R ] /Limits [ (HD.467) (HD.4698) ] >>
endobj
11877 0 obj
-<< /Names [ (HD.5645) 6438 0 R (HD.5646) 6439 0 R (HD.5647) 6440 0 R (HD.5648) 6441 0 R (HD.5649) 6442 0 R (HD.565) 860 0 R (HD.5650) 6443 0 R (HD.5651) 6444 0 R (HD.5652) 6445 0 R (HD.5653) 6446 0 R (HD.5654) 6447 0 R (HD.5655) 6448 0 R (HD.5656) 6449 0 R (HD.5657) 6450 0 R (HD.5658) 6451 0 R (HD.5659) 6452 0 R (HD.566) 861 0 R (HD.5660) 6453 0 R (HD.5661) 6454 0 R (HD.5662) 6455 0 R (HD.5663) 6456 0 R (HD.5664) 6457 0 R (HD.5665) 6458 0 R (HD.5666) 6459 0 R (HD.5667) 6460 0 R (HD.5668) 6461 0 R (HD.5669) 6462 0 R (HD.567) 862 0 R (HD.5670) 6463 0 R (HD.5671) 6464 0 R (HD.5672) 6465 0 R (HD.5673) 6466 0 R ] /Limits [ (HD.5645) (HD.5673) ] >>
+<< /Names [ (HD.4699) 5403 0 R (HD.47) 242 0 R (HD.470) 738 0 R (HD.4700) 5404 0 R (HD.4701) 5409 0 R (HD.4702) 5410 0 R (HD.4703) 5411 0 R (HD.4704) 5412 0 R (HD.4705) 5413 0 R (HD.4706) 5414 0 R (HD.4707) 5415 0 R (HD.4708) 5416 0 R (HD.4709) 5417 0 R (HD.471) 739 0 R (HD.4710) 5418 0 R (HD.4711) 5419 0 R (HD.4712) 5420 0 R (HD.4713) 5421 0 R (HD.4714) 5422 0 R (HD.4715) 5423 0 R (HD.4716) 5424 0 R (HD.4717) 5425 0 R (HD.4718) 5426 0 R (HD.4719) 5427 0 R (HD.472) 740 0 R (HD.4720) 5428 0 R (HD.4721) 5429 0 R (HD.4722) 5430 0 R (HD.4723) 5431 0 R (HD.4724) 5432 0 R (HD.4725) 5433 0 R (HD.4726) 5434 0 R ] /Limits [ (HD.4699) (HD.4726) ] >>
endobj
11878 0 obj
-<< /Names [ (HD.5674) 6467 0 R (HD.5675) 6468 0 R (HD.5676) 6469 0 R (HD.5677) 6470 0 R (HD.5678) 6471 0 R (HD.5679) 6472 0 R (HD.568) 863 0 R (HD.5680) 6473 0 R (HD.5681) 6474 0 R (HD.5682) 6475 0 R (HD.5683) 6480 0 R (HD.5684) 6481 0 R (HD.5685) 6482 0 R (HD.5686) 6483 0 R (HD.5687) 6484 0 R (HD.5688) 6485 0 R (HD.5689) 6486 0 R (HD.569) 864 0 R (HD.5690) 6487 0 R (HD.5691) 6488 0 R (HD.5692) 6489 0 R (HD.5693) 6490 0 R (HD.5694) 6491 0 R (HD.5695) 6492 0 R (HD.5696) 6493 0 R (HD.5697) 6494 0 R (HD.5698) 6495 0 R (HD.5699) 6496 0 R (HD.57) 252 0 R (HD.570) 865 0 R (HD.5700) 6497 0 R (HD.5701) 6498 0 R ] /Limits [ (HD.5674) (HD.5701) ] >>
+<< /Names [ (HD.4727) 5435 0 R (HD.4728) 5436 0 R (HD.4729) 5437 0 R (HD.473) 741 0 R (HD.4730) 5438 0 R (HD.4731) 5439 0 R (HD.4732) 5440 0 R (HD.4733) 5441 0 R (HD.4734) 5442 0 R (HD.4735) 5447 0 R (HD.4736) 5448 0 R (HD.4737) 5449 0 R (HD.4738) 5450 0 R (HD.4739) 5451 0 R (HD.474) 742 0 R (HD.4740) 5452 0 R (HD.4741) 5453 0 R (HD.4742) 5454 0 R (HD.4743) 5455 0 R (HD.4744) 5456 0 R (HD.4745) 5457 0 R (HD.4746) 5458 0 R (HD.4747) 5459 0 R (HD.4748) 5460 0 R (HD.4749) 5461 0 R (HD.475) 743 0 R (HD.4750) 5462 0 R (HD.4751) 5463 0 R (HD.4752) 5464 0 R (HD.4753) 5465 0 R (HD.4754) 5466 0 R (HD.4755) 5467 0 R ] /Limits [ (HD.4727) (HD.4755) ] >>
endobj
11879 0 obj
-<< /Names [ (HD.5702) 6499 0 R (HD.5703) 6500 0 R (HD.5704) 6501 0 R (HD.5705) 6502 0 R (HD.5706) 6503 0 R (HD.5707) 6504 0 R (HD.5708) 6505 0 R (HD.5709) 6506 0 R (HD.571) 866 0 R (HD.5710) 6507 0 R (HD.5711) 6508 0 R (HD.5712) 6509 0 R (HD.5713) 6510 0 R (HD.5714) 6511 0 R (HD.5715) 6512 0 R (HD.5716) 6513 0 R (HD.5717) 6514 0 R (HD.5718) 6515 0 R (HD.5719) 6516 0 R (HD.572) 867 0 R (HD.5720) 6517 0 R (HD.5721) 6518 0 R (HD.5722) 6519 0 R (HD.5723) 6520 0 R (HD.5724) 6521 0 R (HD.5725) 6522 0 R (HD.5726) 6523 0 R (HD.5727) 6524 0 R (HD.5728) 6525 0 R (HD.5729) 6526 0 R (HD.573) 868 0 R (HD.5730) 6527 0 R ] /Limits [ (HD.5702) (HD.5730) ] >>
+<< /Names [ (HD.4756) 5468 0 R (HD.4757) 5469 0 R (HD.4758) 5470 0 R (HD.4759) 5471 0 R (HD.476) 744 0 R (HD.4760) 5472 0 R (HD.4761) 5473 0 R (HD.4762) 5474 0 R (HD.4763) 5475 0 R (HD.4764) 5476 0 R (HD.4765) 5477 0 R (HD.4766) 5478 0 R (HD.4767) 5479 0 R (HD.4768) 5480 0 R (HD.4769) 5481 0 R (HD.477) 745 0 R (HD.4770) 5482 0 R (HD.4771) 5483 0 R (HD.4772) 5484 0 R (HD.4773) 5485 0 R (HD.4774) 5486 0 R (HD.4775) 5487 0 R (HD.4776) 5488 0 R (HD.4777) 5489 0 R (HD.4778) 5490 0 R (HD.4779) 5491 0 R (HD.478) 746 0 R (HD.4780) 5496 0 R (HD.4781) 5497 0 R (HD.4782) 5498 0 R (HD.4783) 5499 0 R (HD.4784) 5500 0 R ] /Limits [ (HD.4756) (HD.4784) ] >>
endobj
11880 0 obj
-<< /Names [ (HD.5731) 6532 0 R (HD.5732) 6533 0 R (HD.5733) 6534 0 R (HD.5734) 6535 0 R (HD.5735) 6536 0 R (HD.5736) 6537 0 R (HD.5737) 6538 0 R (HD.5738) 6539 0 R (HD.5739) 6540 0 R (HD.574) 869 0 R (HD.5740) 6541 0 R (HD.5741) 6542 0 R (HD.5742) 6543 0 R (HD.5743) 6544 0 R (HD.5744) 6545 0 R (HD.5745) 6546 0 R (HD.5746) 6547 0 R (HD.5747) 6548 0 R (HD.5748) 6549 0 R (HD.5749) 6550 0 R (HD.575) 870 0 R (HD.5750) 6551 0 R (HD.5751) 6552 0 R (HD.5752) 6553 0 R (HD.5753) 6554 0 R (HD.5754) 6555 0 R (HD.5755) 6556 0 R (HD.5756) 6557 0 R (HD.5757) 6558 0 R (HD.5758) 6559 0 R (HD.5759) 6560 0 R (HD.576) 876 0 R ] /Limits [ (HD.5731) (HD.576) ] >>
+<< /Names [ (HD.4785) 5501 0 R (HD.4786) 5502 0 R (HD.4787) 5503 0 R (HD.4788) 5504 0 R (HD.4789) 5505 0 R (HD.479) 747 0 R (HD.4790) 5506 0 R (HD.4791) 5507 0 R (HD.4792) 5508 0 R (HD.4793) 5509 0 R (HD.4794) 5510 0 R (HD.4795) 5511 0 R (HD.4796) 5512 0 R (HD.4797) 5513 0 R (HD.4798) 5514 0 R (HD.4799) 5515 0 R (HD.48) 243 0 R (HD.480) 748 0 R (HD.4800) 5516 0 R (HD.4801) 5517 0 R (HD.4802) 5518 0 R (HD.4803) 5519 0 R (HD.4804) 5520 0 R (HD.4805) 5521 0 R (HD.4806) 5522 0 R (HD.4807) 5523 0 R (HD.4808) 5524 0 R (HD.4809) 5525 0 R (HD.481) 750 0 R (HD.4810) 5526 0 R (HD.4811) 5527 0 R (HD.4812) 5528 0 R ] /Limits [ (HD.4785) (HD.4812) ] >>
endobj
11881 0 obj
-<< /Names [ (HD.5760) 6561 0 R (HD.5761) 6562 0 R (HD.5762) 6563 0 R (HD.5763) 6564 0 R (HD.5764) 6565 0 R (HD.5765) 6566 0 R (HD.5766) 6567 0 R (HD.5767) 6568 0 R (HD.5768) 6569 0 R (HD.5769) 6570 0 R (HD.577) 877 0 R (HD.5770) 6571 0 R (HD.5771) 6572 0 R (HD.5772) 6573 0 R (HD.5773) 6574 0 R (HD.5774) 6579 0 R (HD.5775) 6580 0 R (HD.5776) 6581 0 R (HD.5777) 6582 0 R (HD.5778) 6583 0 R (HD.5779) 6584 0 R (HD.578) 878 0 R (HD.5780) 6585 0 R (HD.5781) 6586 0 R (HD.5782) 6587 0 R (HD.5783) 6588 0 R (HD.5784) 6589 0 R (HD.5785) 6590 0 R (HD.5786) 6591 0 R (HD.5787) 6592 0 R (HD.5788) 6593 0 R (HD.5789) 6594 0 R ] /Limits [ (HD.5760) (HD.5789) ] >>
+<< /Names [ (HD.4813) 5529 0 R (HD.4814) 5530 0 R (HD.4815) 5531 0 R (HD.4816) 5532 0 R (HD.4817) 5533 0 R (HD.4818) 5534 0 R (HD.4819) 5535 0 R (HD.482) 751 0 R (HD.4820) 5536 0 R (HD.4821) 5537 0 R (HD.4822) 5538 0 R (HD.4823) 5539 0 R (HD.4824) 5540 0 R (HD.4825) 5541 0 R (HD.4826) 5542 0 R (HD.4827) 5543 0 R (HD.4828) 5544 0 R (HD.4829) 5545 0 R (HD.483) 757 0 R (HD.4830) 5546 0 R (HD.4831) 5547 0 R (HD.4832) 5548 0 R (HD.4833) 5553 0 R (HD.4834) 5554 0 R (HD.4835) 5555 0 R (HD.4836) 5556 0 R (HD.4837) 5557 0 R (HD.4838) 5558 0 R (HD.4839) 5559 0 R (HD.484) 758 0 R (HD.4840) 5560 0 R (HD.4841) 5561 0 R ] /Limits [ (HD.4813) (HD.4841) ] >>
endobj
11882 0 obj
-<< /Names [ (HD.579) 879 0 R (HD.5790) 6595 0 R (HD.5791) 6596 0 R (HD.5792) 6597 0 R (HD.5793) 6598 0 R (HD.5794) 6599 0 R (HD.5795) 6600 0 R (HD.5796) 6601 0 R (HD.5797) 6602 0 R (HD.5798) 6603 0 R (HD.5799) 6604 0 R (HD.58) 253 0 R (HD.580) 880 0 R (HD.5800) 6605 0 R (HD.5801) 6606 0 R (HD.5802) 6607 0 R (HD.5803) 6608 0 R (HD.5804) 6609 0 R (HD.5805) 6610 0 R (HD.5806) 6611 0 R (HD.5807) 6612 0 R (HD.5808) 6613 0 R (HD.5809) 6614 0 R (HD.581) 881 0 R (HD.5810) 6615 0 R (HD.5811) 6616 0 R (HD.5812) 6617 0 R (HD.5813) 6618 0 R (HD.5814) 6619 0 R (HD.5815) 6620 0 R (HD.5816) 6621 0 R (HD.5817) 6622 0 R ] /Limits [ (HD.579) (HD.5817) ] >>
+<< /Names [ (HD.4842) 5562 0 R (HD.4843) 5563 0 R (HD.4844) 5564 0 R (HD.4845) 5565 0 R (HD.4846) 5566 0 R (HD.4847) 5567 0 R (HD.4848) 5568 0 R (HD.4849) 5569 0 R (HD.485) 759 0 R (HD.4850) 5570 0 R (HD.4851) 5571 0 R (HD.4852) 5572 0 R (HD.4853) 5573 0 R (HD.4854) 5574 0 R (HD.4855) 5575 0 R (HD.4856) 5576 0 R (HD.4857) 5577 0 R (HD.4858) 5578 0 R (HD.4859) 5579 0 R (HD.486) 760 0 R (HD.4860) 5580 0 R (HD.4861) 5581 0 R (HD.4862) 5582 0 R (HD.4863) 5583 0 R (HD.4864) 5584 0 R (HD.4865) 5585 0 R (HD.4866) 5586 0 R (HD.4867) 5587 0 R (HD.4868) 5588 0 R (HD.4869) 5589 0 R (HD.487) 761 0 R (HD.4870) 5590 0 R ] /Limits [ (HD.4842) (HD.4870) ] >>
endobj
11883 0 obj
-<< /Names [ (HD.5818) 6623 0 R (HD.5819) 6624 0 R (HD.582) 882 0 R (HD.5820) 6625 0 R (HD.5821) 6626 0 R (HD.5822) 6627 0 R (HD.5823) 6628 0 R (HD.5824) 6629 0 R (HD.5825) 6630 0 R (HD.5826) 6631 0 R (HD.5827) 6632 0 R (HD.5828) 6633 0 R (HD.5829) 6634 0 R (HD.583) 883 0 R (HD.5830) 6635 0 R (HD.5831) 6636 0 R (HD.5832) 6641 0 R (HD.5833) 6642 0 R (HD.5834) 6643 0 R (HD.5835) 6644 0 R (HD.5836) 6645 0 R (HD.5837) 6646 0 R (HD.5838) 6647 0 R (HD.5839) 6648 0 R (HD.584) 884 0 R (HD.5840) 6649 0 R (HD.5841) 6650 0 R (HD.5842) 6651 0 R (HD.5843) 6652 0 R (HD.5844) 6653 0 R (HD.5845) 6654 0 R (HD.5846) 6655 0 R ] /Limits [ (HD.5818) (HD.5846) ] >>
+<< /Names [ (HD.4871) 5591 0 R (HD.4872) 5592 0 R (HD.4873) 5593 0 R (HD.4874) 5594 0 R (HD.4875) 5595 0 R (HD.4876) 5596 0 R (HD.4877) 5597 0 R (HD.4878) 5598 0 R (HD.4879) 5599 0 R (HD.488) 762 0 R (HD.4880) 5600 0 R (HD.4881) 5601 0 R (HD.4882) 5602 0 R (HD.4883) 5607 0 R (HD.4884) 5608 0 R (HD.4885) 5609 0 R (HD.4886) 5610 0 R (HD.4887) 5611 0 R (HD.4888) 5612 0 R (HD.4889) 5613 0 R (HD.489) 763 0 R (HD.4890) 5614 0 R (HD.4891) 5615 0 R (HD.4892) 5616 0 R (HD.4893) 5617 0 R (HD.4894) 5618 0 R (HD.4895) 5619 0 R (HD.4896) 5620 0 R (HD.4897) 5621 0 R (HD.4898) 5622 0 R (HD.4899) 5623 0 R (HD.49) 244 0 R ] /Limits [ (HD.4871) (HD.49) ] >>
endobj
11884 0 obj
-<< /Names [ (HD.5847) 6656 0 R (HD.5848) 6657 0 R (HD.5849) 6658 0 R (HD.585) 885 0 R (HD.5850) 6659 0 R (HD.5851) 6660 0 R (HD.5852) 6661 0 R (HD.5853) 6662 0 R (HD.5854) 6663 0 R (HD.5855) 6664 0 R (HD.5856) 6665 0 R (HD.5857) 6666 0 R (HD.5858) 6667 0 R (HD.5859) 6668 0 R (HD.586) 886 0 R (HD.5860) 6669 0 R (HD.5861) 6670 0 R (HD.5862) 6671 0 R (HD.5863) 6672 0 R (HD.5864) 6673 0 R (HD.5865) 6674 0 R (HD.5866) 6675 0 R (HD.5867) 6676 0 R (HD.5868) 6677 0 R (HD.5869) 6678 0 R (HD.587) 887 0 R (HD.5870) 6679 0 R (HD.5871) 6680 0 R (HD.5872) 6681 0 R (HD.5873) 6682 0 R (HD.5874) 6683 0 R (HD.5875) 6684 0 R ] /Limits [ (HD.5847) (HD.5875) ] >>
+<< /Names [ (HD.490) 764 0 R (HD.4900) 5624 0 R (HD.4901) 5625 0 R (HD.4902) 5626 0 R (HD.4903) 5627 0 R (HD.4904) 5628 0 R (HD.4905) 5629 0 R (HD.4906) 5630 0 R (HD.4907) 5631 0 R (HD.4908) 5632 0 R (HD.4909) 5633 0 R (HD.491) 765 0 R (HD.4910) 5634 0 R (HD.4911) 5635 0 R (HD.4912) 5636 0 R (HD.4913) 5637 0 R (HD.4914) 5638 0 R (HD.4915) 5639 0 R (HD.4916) 5640 0 R (HD.4917) 5641 0 R (HD.4918) 5642 0 R (HD.4919) 5643 0 R (HD.492) 766 0 R (HD.4920) 5644 0 R (HD.4921) 5645 0 R (HD.4922) 5646 0 R (HD.4923) 5647 0 R (HD.4924) 5648 0 R (HD.4925) 5649 0 R (HD.4926) 5650 0 R (HD.4927) 5651 0 R (HD.4928) 5652 0 R ] /Limits [ (HD.490) (HD.4928) ] >>
endobj
11885 0 obj
-<< /Names [ (HD.5876) 6685 0 R (HD.5877) 6686 0 R (HD.5878) 6691 0 R (HD.5879) 6692 0 R (HD.588) 888 0 R (HD.5880) 6693 0 R (HD.5881) 6694 0 R (HD.5882) 6695 0 R (HD.5883) 6696 0 R (HD.5884) 6697 0 R (HD.5885) 6698 0 R (HD.5886) 6699 0 R (HD.5887) 6700 0 R (HD.5888) 6701 0 R (HD.5889) 6702 0 R (HD.589) 889 0 R (HD.5890) 6703 0 R (HD.5891) 6704 0 R (HD.5892) 6705 0 R (HD.5893) 6706 0 R (HD.5894) 6707 0 R (HD.5895) 6708 0 R (HD.5896) 6709 0 R (HD.5897) 6710 0 R (HD.5898) 6711 0 R (HD.5899) 6712 0 R (HD.59) 258 0 R (HD.590) 890 0 R (HD.5900) 6713 0 R (HD.5901) 6714 0 R (HD.5902) 6715 0 R (HD.5903) 6716 0 R ] /Limits [ (HD.5876) (HD.5903) ] >>
+<< /Names [ (HD.4929) 5653 0 R (HD.493) 776 0 R (HD.4930) 5654 0 R (HD.4931) 5655 0 R (HD.4932) 5656 0 R (HD.4933) 5657 0 R (HD.4934) 5658 0 R (HD.4935) 5659 0 R (HD.4936) 5660 0 R (HD.4937) 5661 0 R (HD.4938) 5662 0 R (HD.4939) 5663 0 R (HD.494) 777 0 R (HD.4940) 5664 0 R (HD.4941) 5665 0 R (HD.4942) 5670 0 R (HD.4943) 5671 0 R (HD.4944) 5672 0 R (HD.4945) 5673 0 R (HD.4946) 5674 0 R (HD.4947) 5675 0 R (HD.4948) 5676 0 R (HD.4949) 5677 0 R (HD.495) 778 0 R (HD.4950) 5678 0 R (HD.4951) 5679 0 R (HD.4952) 5680 0 R (HD.4953) 5681 0 R (HD.4954) 5682 0 R (HD.4955) 5683 0 R (HD.4956) 5684 0 R (HD.4957) 5685 0 R ] /Limits [ (HD.4929) (HD.4957) ] >>
endobj
11886 0 obj
-<< /Names [ (HD.5904) 6717 0 R (HD.5905) 6718 0 R (HD.5906) 6719 0 R (HD.5907) 6720 0 R (HD.5908) 6721 0 R (HD.5909) 6722 0 R (HD.591) 891 0 R (HD.5910) 6723 0 R (HD.5911) 6724 0 R (HD.5912) 6725 0 R (HD.5913) 6726 0 R (HD.5914) 6727 0 R (HD.5915) 6728 0 R (HD.5916) 6729 0 R (HD.5917) 6730 0 R (HD.5918) 6731 0 R (HD.5919) 6732 0 R (HD.592) 892 0 R (HD.5920) 6733 0 R (HD.5921) 6734 0 R (HD.5922) 6735 0 R (HD.5923) 6736 0 R (HD.5924) 6737 0 R (HD.5925) 6742 0 R (HD.5926) 6743 0 R (HD.5927) 6744 0 R (HD.5928) 6745 0 R (HD.5929) 6746 0 R (HD.593) 893 0 R (HD.5930) 6747 0 R (HD.5931) 6748 0 R (HD.5932) 6749 0 R ] /Limits [ (HD.5904) (HD.5932) ] >>
+<< /Names [ (HD.4958) 5686 0 R (HD.4959) 5687 0 R (HD.496) 779 0 R (HD.4960) 5688 0 R (HD.4961) 5689 0 R (HD.4962) 5690 0 R (HD.4963) 5691 0 R (HD.4964) 5692 0 R (HD.4965) 5693 0 R (HD.4966) 5694 0 R (HD.4967) 5695 0 R (HD.4968) 5696 0 R (HD.4969) 5697 0 R (HD.497) 780 0 R (HD.4970) 5698 0 R (HD.4971) 5699 0 R (HD.4972) 5700 0 R (HD.4973) 5701 0 R (HD.4974) 5702 0 R (HD.4975) 5703 0 R (HD.4976) 5704 0 R (HD.4977) 5705 0 R (HD.4978) 5706 0 R (HD.4979) 5707 0 R (HD.498) 781 0 R (HD.4980) 5708 0 R (HD.4981) 5709 0 R (HD.4982) 5710 0 R (HD.4983) 5711 0 R (HD.4984) 5712 0 R (HD.4985) 5713 0 R (HD.4986) 5714 0 R ] /Limits [ (HD.4958) (HD.4986) ] >>
endobj
11887 0 obj
-<< /Names [ (HD.5933) 6750 0 R (HD.5934) 6751 0 R (HD.5935) 6752 0 R (HD.5936) 6753 0 R (HD.5937) 6754 0 R (HD.5938) 6755 0 R (HD.5939) 6756 0 R (HD.594) 894 0 R (HD.5940) 6757 0 R (HD.5941) 6758 0 R (HD.5942) 6759 0 R (HD.5943) 6760 0 R (HD.5944) 6761 0 R (HD.5945) 6762 0 R (HD.5946) 6763 0 R (HD.5947) 6764 0 R (HD.5948) 6765 0 R (HD.5949) 6766 0 R (HD.595) 895 0 R (HD.5950) 6767 0 R (HD.5951) 6768 0 R (HD.5952) 6769 0 R (HD.5953) 6770 0 R (HD.5954) 6771 0 R (HD.5955) 6772 0 R (HD.5956) 6773 0 R (HD.5957) 6774 0 R (HD.5958) 6775 0 R (HD.5959) 6776 0 R (HD.596) 896 0 R (HD.5960) 6781 0 R (HD.5961) 6782 0 R ] /Limits [ (HD.5933) (HD.5961) ] >>
+<< /Names [ (HD.4987) 5715 0 R (HD.4988) 5716 0 R (HD.4989) 5721 0 R (HD.499) 782 0 R (HD.4990) 5722 0 R (HD.4991) 5723 0 R (HD.4992) 5724 0 R (HD.4993) 5725 0 R (HD.4994) 5726 0 R (HD.4995) 5727 0 R (HD.4996) 5728 0 R (HD.4997) 5729 0 R (HD.4998) 5730 0 R (HD.4999) 5731 0 R (HD.5) 193 0 R (HD.50) 245 0 R (HD.500) 783 0 R (HD.5000) 5732 0 R (HD.5001) 5733 0 R (HD.5002) 5734 0 R (HD.5003) 5735 0 R (HD.5004) 5736 0 R (HD.5005) 5737 0 R (HD.5006) 5738 0 R (HD.5007) 5739 0 R (HD.5008) 5740 0 R (HD.5009) 5741 0 R (HD.501) 784 0 R (HD.5010) 5742 0 R (HD.5011) 5743 0 R (HD.5012) 5744 0 R (HD.5013) 5745 0 R ] /Limits [ (HD.4987) (HD.5013) ] >>
endobj
11888 0 obj
-<< /Names [ (HD.5962) 6783 0 R (HD.5963) 6784 0 R (HD.5964) 6785 0 R (HD.5965) 6786 0 R (HD.5966) 6787 0 R (HD.5967) 6788 0 R (HD.5968) 6789 0 R (HD.5969) 6790 0 R (HD.597) 897 0 R (HD.5970) 6791 0 R (HD.5971) 6792 0 R (HD.5972) 6793 0 R (HD.5973) 6794 0 R (HD.5974) 6795 0 R (HD.5975) 6796 0 R (HD.5976) 6797 0 R (HD.5977) 6798 0 R (HD.5978) 6799 0 R (HD.5979) 6800 0 R (HD.598) 898 0 R (HD.5980) 6801 0 R (HD.5981) 6802 0 R (HD.5982) 6803 0 R (HD.5983) 6804 0 R (HD.5984) 6805 0 R (HD.5985) 6806 0 R (HD.5986) 6807 0 R (HD.5987) 6808 0 R (HD.5988) 6809 0 R (HD.5989) 6810 0 R (HD.599) 899 0 R (HD.5990) 6811 0 R ] /Limits [ (HD.5962) (HD.5990) ] >>
+<< /Names [ (HD.5014) 5746 0 R (HD.5015) 5747 0 R (HD.5016) 5748 0 R (HD.5017) 5749 0 R (HD.5018) 5750 0 R (HD.5019) 5751 0 R (HD.502) 785 0 R (HD.5020) 5752 0 R (HD.5021) 5753 0 R (HD.5022) 5754 0 R (HD.5023) 5755 0 R (HD.5024) 5756 0 R (HD.5025) 5757 0 R (HD.5026) 5758 0 R (HD.5027) 5759 0 R (HD.5028) 5760 0 R (HD.5029) 5761 0 R (HD.503) 786 0 R (HD.5030) 5762 0 R (HD.5031) 5763 0 R (HD.5032) 5764 0 R (HD.5033) 5765 0 R (HD.5034) 5766 0 R (HD.5035) 5767 0 R (HD.5036) 5768 0 R (HD.5037) 5769 0 R (HD.5038) 5770 0 R (HD.5039) 5771 0 R (HD.504) 787 0 R (HD.5040) 5772 0 R (HD.5041) 5773 0 R (HD.5042) 5774 0 R ] /Limits [ (HD.5014) (HD.5042) ] >>
endobj
11889 0 obj
-<< /Names [ (HD.5991) 6812 0 R (HD.5992) 6813 0 R (HD.5993) 6814 0 R (HD.5994) 6815 0 R (HD.5995) 6816 0 R (HD.5996) 6817 0 R (HD.5997) 6818 0 R (HD.5998) 6819 0 R (HD.5999) 6825 0 R (HD.6) 194 0 R (HD.60) 259 0 R (HD.600) 900 0 R (HD.6000) 6826 0 R (HD.6001) 6827 0 R (HD.6002) 6828 0 R (HD.6003) 6829 0 R (HD.6004) 6830 0 R (HD.6005) 6831 0 R (HD.6006) 6832 0 R (HD.6007) 6833 0 R (HD.6008) 6834 0 R (HD.6009) 6835 0 R (HD.601) 901 0 R (HD.6010) 6836 0 R (HD.6011) 6837 0 R (HD.6012) 6838 0 R (HD.6013) 6839 0 R (HD.6014) 6840 0 R (HD.6015) 6841 0 R (HD.6016) 6842 0 R (HD.6017) 6843 0 R (HD.6018) 6844 0 R ] /Limits [ (HD.5991) (HD.6018) ] >>
+<< /Names [ (HD.5043) 5775 0 R (HD.5044) 5776 0 R (HD.5045) 5777 0 R (HD.5046) 5778 0 R (HD.5047) 5783 0 R (HD.5048) 5784 0 R (HD.5049) 5785 0 R (HD.505) 788 0 R (HD.5050) 5786 0 R (HD.5051) 5787 0 R (HD.5052) 5788 0 R (HD.5053) 5789 0 R (HD.5054) 5790 0 R (HD.5055) 5791 0 R (HD.5056) 5792 0 R (HD.5057) 5793 0 R (HD.5058) 5794 0 R (HD.5059) 5795 0 R (HD.506) 789 0 R (HD.5060) 5796 0 R (HD.5061) 5797 0 R (HD.5062) 5798 0 R (HD.5063) 5799 0 R (HD.5064) 5800 0 R (HD.5065) 5801 0 R (HD.5066) 5802 0 R (HD.5067) 5803 0 R (HD.5068) 5804 0 R (HD.5069) 5805 0 R (HD.507) 790 0 R (HD.5070) 5806 0 R (HD.5071) 5807 0 R ] /Limits [ (HD.5043) (HD.5071) ] >>
endobj
11890 0 obj
-<< /Names [ (HD.6019) 6845 0 R (HD.602) 902 0 R (HD.6020) 6846 0 R (HD.6021) 6847 0 R (HD.6022) 6848 0 R (HD.6023) 6849 0 R (HD.6024) 6850 0 R (HD.6025) 6851 0 R (HD.6026) 6852 0 R (HD.6027) 6853 0 R (HD.6028) 6854 0 R (HD.6029) 6859 0 R (HD.603) 903 0 R (HD.6030) 6860 0 R (HD.6031) 6861 0 R (HD.6032) 6862 0 R (HD.6033) 6863 0 R (HD.6034) 6864 0 R (HD.6035) 6865 0 R (HD.6036) 6866 0 R (HD.6037) 6867 0 R (HD.6038) 6868 0 R (HD.6039) 6869 0 R (HD.604) 904 0 R (HD.6040) 6870 0 R (HD.6041) 6871 0 R (HD.6042) 6872 0 R (HD.6043) 6873 0 R (HD.6044) 6874 0 R (HD.6045) 6875 0 R (HD.6046) 6876 0 R (HD.6047) 6877 0 R ] /Limits [ (HD.6019) (HD.6047) ] >>
+<< /Names [ (HD.5072) 5808 0 R (HD.5073) 5809 0 R (HD.5074) 5810 0 R (HD.5075) 5811 0 R (HD.5076) 5812 0 R (HD.5077) 5813 0 R (HD.5078) 5814 0 R (HD.5079) 5815 0 R (HD.508) 791 0 R (HD.5080) 5816 0 R (HD.5081) 5817 0 R (HD.5082) 5818 0 R (HD.5083) 5819 0 R (HD.5084) 5820 0 R (HD.5085) 5821 0 R (HD.5086) 5822 0 R (HD.5087) 5823 0 R (HD.5088) 5824 0 R (HD.5089) 5825 0 R (HD.509) 792 0 R (HD.5090) 5826 0 R (HD.5091) 5827 0 R (HD.5092) 5828 0 R (HD.5093) 5829 0 R (HD.5094) 5830 0 R (HD.5095) 5831 0 R (HD.5096) 5832 0 R (HD.5097) 5833 0 R (HD.5098) 5834 0 R (HD.5099) 5835 0 R (HD.51) 246 0 R (HD.510) 793 0 R ] /Limits [ (HD.5072) (HD.510) ] >>
endobj
11891 0 obj
-<< /Names [ (HD.6048) 6878 0 R (HD.6049) 6879 0 R (HD.605) 905 0 R (HD.6050) 6880 0 R (HD.6051) 6881 0 R (HD.6052) 6882 0 R (HD.6053) 6883 0 R (HD.6054) 6884 0 R (HD.6055) 6885 0 R (HD.6056) 6886 0 R (HD.6057) 6887 0 R (HD.6058) 6888 0 R (HD.6059) 6889 0 R (HD.606) 906 0 R (HD.6060) 6890 0 R (HD.6061) 6891 0 R (HD.6062) 6892 0 R (HD.6063) 6893 0 R (HD.6064) 6894 0 R (HD.6065) 6895 0 R (HD.6066) 6896 0 R (HD.6067) 6897 0 R (HD.6068) 6902 0 R (HD.6069) 6903 0 R (HD.607) 907 0 R (HD.6070) 6904 0 R (HD.6071) 6905 0 R (HD.6072) 6906 0 R (HD.6073) 6907 0 R (HD.6074) 6908 0 R (HD.6075) 6909 0 R (HD.6076) 6910 0 R ] /Limits [ (HD.6048) (HD.6076) ] >>
+<< /Names [ (HD.5100) 5836 0 R (HD.5101) 5837 0 R (HD.5102) 5838 0 R (HD.5103) 5839 0 R (HD.5104) 5840 0 R (HD.5105) 5846 0 R (HD.5106) 5847 0 R (HD.5107) 5848 0 R (HD.5108) 5849 0 R (HD.5109) 5850 0 R (HD.511) 794 0 R (HD.5110) 5851 0 R (HD.5111) 5852 0 R (HD.5112) 5853 0 R (HD.5113) 5854 0 R (HD.5114) 5855 0 R (HD.5115) 5856 0 R (HD.5116) 5857 0 R (HD.5117) 5858 0 R (HD.5118) 5859 0 R (HD.5119) 5860 0 R (HD.512) 795 0 R (HD.5120) 5861 0 R (HD.5121) 5862 0 R (HD.5122) 5863 0 R (HD.5123) 5864 0 R (HD.5124) 5865 0 R (HD.5125) 5866 0 R (HD.5126) 5867 0 R (HD.5127) 5868 0 R (HD.5128) 5869 0 R (HD.5129) 5870 0 R ] /Limits [ (HD.5100) (HD.5129) ] >>
endobj
11892 0 obj
-<< /Names [ (HD.6077) 6911 0 R (HD.6078) 6912 0 R (HD.6079) 6913 0 R (HD.608) 908 0 R (HD.6080) 6914 0 R (HD.6081) 6915 0 R (HD.6082) 6916 0 R (HD.6083) 6917 0 R (HD.6084) 6918 0 R (HD.6085) 6919 0 R (HD.6086) 6920 0 R (HD.6087) 6921 0 R (HD.6088) 6922 0 R (HD.6089) 6923 0 R (HD.609) 909 0 R (HD.6090) 6924 0 R (HD.6091) 6925 0 R (HD.6092) 6926 0 R (HD.6093) 6927 0 R (HD.6094) 6928 0 R (HD.6095) 6929 0 R (HD.6096) 6930 0 R (HD.6097) 6931 0 R (HD.6098) 6932 0 R (HD.6099) 6933 0 R (HD.61) 260 0 R (HD.610) 910 0 R (HD.6100) 6934 0 R (HD.6101) 6935 0 R (HD.6102) 6936 0 R (HD.6103) 6937 0 R (HD.6104) 6938 0 R ] /Limits [ (HD.6077) (HD.6104) ] >>
+<< /Names [ (HD.513) 796 0 R (HD.5130) 5871 0 R (HD.5131) 5872 0 R (HD.5132) 5873 0 R (HD.5133) 5874 0 R (HD.5134) 5875 0 R (HD.5135) 5876 0 R (HD.5136) 5877 0 R (HD.5137) 5878 0 R (HD.5138) 5879 0 R (HD.5139) 5880 0 R (HD.514) 797 0 R (HD.5140) 5881 0 R (HD.5141) 5882 0 R (HD.5142) 5883 0 R (HD.5143) 5884 0 R (HD.5144) 5885 0 R (HD.5145) 5886 0 R (HD.5146) 5887 0 R (HD.5147) 5888 0 R (HD.5148) 5889 0 R (HD.5149) 5890 0 R (HD.515) 798 0 R (HD.5150) 5891 0 R (HD.5151) 5892 0 R (HD.5152) 5897 0 R (HD.5153) 5898 0 R (HD.5154) 5899 0 R (HD.5155) 5900 0 R (HD.5156) 5901 0 R (HD.5157) 5902 0 R (HD.5158) 5903 0 R ] /Limits [ (HD.513) (HD.5158) ] >>
endobj
11893 0 obj
-<< /Names [ (HD.6105) 6939 0 R (HD.6106) 6940 0 R (HD.6107) 6941 0 R (HD.6108) 6942 0 R (HD.6109) 6943 0 R (HD.611) 911 0 R (HD.6110) 6944 0 R (HD.6111) 6945 0 R (HD.6112) 6946 0 R (HD.6113) 6947 0 R (HD.6114) 6948 0 R (HD.6115) 6949 0 R (HD.6116) 6950 0 R (HD.6117) 6951 0 R (HD.6118) 6952 0 R (HD.6119) 6957 0 R (HD.612) 912 0 R (HD.6120) 6958 0 R (HD.6121) 6959 0 R (HD.6122) 6960 0 R (HD.6123) 6961 0 R (HD.6124) 6962 0 R (HD.6125) 6963 0 R (HD.6126) 6964 0 R (HD.6127) 6965 0 R (HD.6128) 6966 0 R (HD.6129) 6967 0 R (HD.613) 913 0 R (HD.6130) 6968 0 R (HD.6131) 6969 0 R (HD.6132) 6970 0 R (HD.6133) 6971 0 R ] /Limits [ (HD.6105) (HD.6133) ] >>
+<< /Names [ (HD.5159) 5904 0 R (HD.516) 799 0 R (HD.5160) 5905 0 R (HD.5161) 5906 0 R (HD.5162) 5907 0 R (HD.5163) 5908 0 R (HD.5164) 5909 0 R (HD.5165) 5910 0 R (HD.5166) 5911 0 R (HD.5167) 5912 0 R (HD.5168) 5913 0 R (HD.5169) 5914 0 R (HD.517) 800 0 R (HD.5170) 5915 0 R (HD.5171) 5916 0 R (HD.5172) 5917 0 R (HD.5173) 5918 0 R (HD.5174) 5919 0 R (HD.5175) 5920 0 R (HD.5176) 5921 0 R (HD.5177) 5922 0 R (HD.5178) 5923 0 R (HD.5179) 5924 0 R (HD.518) 801 0 R (HD.5180) 5925 0 R (HD.5181) 5926 0 R (HD.5182) 5927 0 R (HD.5183) 5928 0 R (HD.5184) 5929 0 R (HD.5185) 5930 0 R (HD.5186) 5931 0 R (HD.5187) 5932 0 R ] /Limits [ (HD.5159) (HD.5187) ] >>
endobj
11894 0 obj
-<< /Names [ (HD.6134) 6972 0 R (HD.6135) 6973 0 R (HD.6136) 6974 0 R (HD.6137) 6975 0 R (HD.6138) 6976 0 R (HD.6139) 6977 0 R (HD.614) 914 0 R (HD.6140) 6978 0 R (HD.6141) 6979 0 R (HD.6142) 6980 0 R (HD.6143) 6981 0 R (HD.6144) 6982 0 R (HD.6145) 6983 0 R (HD.6146) 6984 0 R (HD.6147) 6985 0 R (HD.6148) 6986 0 R (HD.6149) 6987 0 R (HD.615) 915 0 R (HD.6150) 6988 0 R (HD.6151) 6989 0 R (HD.6152) 6990 0 R (HD.6153) 6991 0 R (HD.6154) 6992 0 R (HD.6155) 6993 0 R (HD.6156) 6994 0 R (HD.6157) 6995 0 R (HD.6158) 6996 0 R (HD.6159) 6997 0 R (HD.616) 916 0 R (HD.6160) 6998 0 R (HD.6161) 6999 0 R (HD.6162) 7000 0 R ] /Limits [ (HD.6134) (HD.6162) ] >>
+<< /Names [ (HD.5188) 5933 0 R (HD.5189) 5934 0 R (HD.519) 802 0 R (HD.5190) 5935 0 R (HD.5191) 5936 0 R (HD.5192) 5937 0 R (HD.5193) 5938 0 R (HD.5194) 5939 0 R (HD.5195) 5940 0 R (HD.5196) 5941 0 R (HD.5197) 5942 0 R (HD.5198) 5943 0 R (HD.5199) 5944 0 R (HD.52) 247 0 R (HD.520) 803 0 R (HD.5200) 5945 0 R (HD.5201) 5946 0 R (HD.5202) 5947 0 R (HD.5203) 5948 0 R (HD.5204) 5949 0 R (HD.5205) 5950 0 R (HD.5206) 5951 0 R (HD.5207) 5952 0 R (HD.5208) 5953 0 R (HD.5209) 5954 0 R (HD.521) 804 0 R (HD.5210) 5955 0 R (HD.5211) 5960 0 R (HD.5212) 5961 0 R (HD.5213) 5962 0 R (HD.5214) 5963 0 R (HD.5215) 5964 0 R ] /Limits [ (HD.5188) (HD.5215) ] >>
endobj
11895 0 obj
-<< /Names [ (HD.6163) 7001 0 R (HD.6164) 7002 0 R (HD.6165) 7003 0 R (HD.6166) 7004 0 R (HD.6167) 7005 0 R (HD.6168) 7006 0 R (HD.6169) 7007 0 R (HD.617) 917 0 R (HD.6170) 7008 0 R (HD.6171) 7009 0 R (HD.6172) 7010 0 R (HD.6173) 7011 0 R (HD.6174) 7012 0 R (HD.6175) 7013 0 R (HD.6176) 7014 0 R (HD.6177) 7015 0 R (HD.6178) 7020 0 R (HD.6179) 7021 0 R (HD.618) 918 0 R (HD.6180) 7022 0 R (HD.6181) 7023 0 R (HD.6182) 7024 0 R (HD.6183) 7025 0 R (HD.6184) 7026 0 R (HD.6185) 7027 0 R (HD.6186) 7028 0 R (HD.6187) 7029 0 R (HD.6188) 7030 0 R (HD.6189) 7031 0 R (HD.619) 919 0 R (HD.6190) 7032 0 R (HD.6191) 7033 0 R ] /Limits [ (HD.6163) (HD.6191) ] >>
+<< /Names [ (HD.5216) 5965 0 R (HD.5217) 5966 0 R (HD.5218) 5967 0 R (HD.5219) 5968 0 R (HD.522) 805 0 R (HD.5220) 5969 0 R (HD.5221) 5970 0 R (HD.5222) 5971 0 R (HD.5223) 5972 0 R (HD.5224) 5973 0 R (HD.5225) 5974 0 R (HD.5226) 5975 0 R (HD.5227) 5976 0 R (HD.5228) 5977 0 R (HD.5229) 5978 0 R (HD.523) 812 0 R (HD.5230) 5979 0 R (HD.5231) 5980 0 R (HD.5232) 5981 0 R (HD.5233) 5982 0 R (HD.5234) 5983 0 R (HD.5235) 5984 0 R (HD.5236) 5985 0 R (HD.5237) 5986 0 R (HD.5238) 5987 0 R (HD.5239) 5988 0 R (HD.524) 813 0 R (HD.5240) 5989 0 R (HD.5241) 5990 0 R (HD.5242) 5991 0 R (HD.5243) 5992 0 R (HD.5244) 5993 0 R ] /Limits [ (HD.5216) (HD.5244) ] >>
endobj
11896 0 obj
-<< /Names [ (HD.6192) 7034 0 R (HD.6193) 7035 0 R (HD.6194) 7036 0 R (HD.6195) 7037 0 R (HD.6196) 7038 0 R (HD.6197) 7039 0 R (HD.6198) 7040 0 R (HD.6199) 7041 0 R (HD.62) 261 0 R (HD.620) 924 0 R (HD.6200) 7042 0 R (HD.6201) 7043 0 R (HD.6202) 7044 0 R (HD.6203) 7045 0 R (HD.6204) 7046 0 R (HD.6205) 7047 0 R (HD.6206) 7048 0 R (HD.6207) 7049 0 R (HD.6208) 7050 0 R (HD.6209) 7051 0 R (HD.621) 925 0 R (HD.6210) 7052 0 R (HD.6211) 7053 0 R (HD.6212) 7054 0 R (HD.6213) 7055 0 R (HD.6214) 7056 0 R (HD.6215) 7057 0 R (HD.6216) 7058 0 R (HD.6217) 7059 0 R (HD.6218) 7060 0 R (HD.6219) 7061 0 R (HD.622) 926 0 R ] /Limits [ (HD.6192) (HD.622) ] >>
+<< /Names [ (HD.5245) 5994 0 R (HD.5246) 5995 0 R (HD.5247) 5996 0 R (HD.5248) 5997 0 R (HD.5249) 5998 0 R (HD.525) 814 0 R (HD.5250) 5999 0 R (HD.5251) 6000 0 R (HD.5252) 6001 0 R (HD.5253) 6002 0 R (HD.5254) 6003 0 R (HD.5255) 6004 0 R (HD.5256) 6005 0 R (HD.5257) 6006 0 R (HD.5258) 6007 0 R (HD.5259) 6008 0 R (HD.526) 815 0 R (HD.5260) 6009 0 R (HD.5261) 6010 0 R (HD.5262) 6011 0 R (HD.5263) 6016 0 R (HD.5264) 6017 0 R (HD.5265) 6018 0 R (HD.5266) 6019 0 R (HD.5267) 6020 0 R (HD.5268) 6021 0 R (HD.5269) 6022 0 R (HD.527) 816 0 R (HD.5270) 6023 0 R (HD.5271) 6024 0 R (HD.5272) 6025 0 R (HD.5273) 6026 0 R ] /Limits [ (HD.5245) (HD.5273) ] >>
endobj
11897 0 obj
-<< /Names [ (HD.6220) 7062 0 R (HD.6221) 7063 0 R (HD.6222) 7064 0 R (HD.6223) 7065 0 R (HD.6224) 7066 0 R (HD.6225) 7067 0 R (HD.6226) 7068 0 R (HD.6227) 7069 0 R (HD.6228) 7070 0 R (HD.6229) 7071 0 R (HD.623) 927 0 R (HD.6230) 7076 0 R (HD.6231) 7077 0 R (HD.6232) 7078 0 R (HD.6233) 7079 0 R (HD.6234) 7080 0 R (HD.6235) 7081 0 R (HD.6236) 7082 0 R (HD.6237) 7083 0 R (HD.6238) 7084 0 R (HD.6239) 7085 0 R (HD.624) 928 0 R (HD.6240) 7086 0 R (HD.6241) 7087 0 R (HD.6242) 7088 0 R (HD.6243) 7089 0 R (HD.6244) 7090 0 R (HD.6245) 7091 0 R (HD.6246) 7092 0 R (HD.6247) 7093 0 R (HD.6248) 7094 0 R (HD.6249) 7095 0 R ] /Limits [ (HD.6220) (HD.6249) ] >>
+<< /Names [ (HD.5274) 6027 0 R (HD.5275) 6028 0 R (HD.5276) 6029 0 R (HD.5277) 6030 0 R (HD.5278) 6031 0 R (HD.5279) 6032 0 R (HD.528) 817 0 R (HD.5280) 6033 0 R (HD.5281) 6034 0 R (HD.5282) 6035 0 R (HD.5283) 6036 0 R (HD.5284) 6037 0 R (HD.5285) 6038 0 R (HD.5286) 6039 0 R (HD.5287) 6040 0 R (HD.5288) 6041 0 R (HD.5289) 6042 0 R (HD.529) 818 0 R (HD.5290) 6043 0 R (HD.5291) 6044 0 R (HD.5292) 6045 0 R (HD.5293) 6046 0 R (HD.5294) 6047 0 R (HD.5295) 6048 0 R (HD.5296) 6049 0 R (HD.5297) 6050 0 R (HD.5298) 6051 0 R (HD.5299) 6052 0 R (HD.53) 248 0 R (HD.530) 819 0 R (HD.5300) 6053 0 R (HD.5301) 6054 0 R ] /Limits [ (HD.5274) (HD.5301) ] >>
endobj
11898 0 obj
-<< /Names [ (HD.625) 929 0 R (HD.6250) 7096 0 R (HD.6251) 7097 0 R (HD.6252) 7098 0 R (HD.6253) 7099 0 R (HD.6254) 7100 0 R (HD.6255) 7101 0 R (HD.6256) 7102 0 R (HD.6257) 7103 0 R (HD.6258) 7104 0 R (HD.6259) 7105 0 R (HD.626) 930 0 R (HD.6260) 7106 0 R (HD.6261) 7107 0 R (HD.6262) 7108 0 R (HD.6263) 7109 0 R (HD.6264) 7110 0 R (HD.6265) 7111 0 R (HD.6266) 7112 0 R (HD.6267) 7113 0 R (HD.6268) 7114 0 R (HD.6269) 7115 0 R (HD.627) 931 0 R (HD.6270) 7116 0 R (HD.6271) 7117 0 R (HD.6272) 7118 0 R (HD.6273) 7123 0 R (HD.6274) 7124 0 R (HD.6275) 7125 0 R (HD.6276) 7126 0 R (HD.6277) 7127 0 R (HD.6278) 7128 0 R ] /Limits [ (HD.625) (HD.6278) ] >>
+<< /Names [ (HD.5302) 6055 0 R (HD.5303) 6056 0 R (HD.5304) 6057 0 R (HD.5305) 6058 0 R (HD.5306) 6059 0 R (HD.5307) 6060 0 R (HD.5308) 6061 0 R (HD.5309) 6062 0 R (HD.531) 820 0 R (HD.5310) 6063 0 R (HD.5311) 6069 0 R (HD.5312) 6070 0 R (HD.5313) 6071 0 R (HD.5314) 6072 0 R (HD.5315) 6073 0 R (HD.5316) 6074 0 R (HD.5317) 6075 0 R (HD.5318) 6076 0 R (HD.5319) 6077 0 R (HD.532) 821 0 R (HD.5320) 6078 0 R (HD.5321) 6079 0 R (HD.5322) 6080 0 R (HD.5323) 6081 0 R (HD.5324) 6082 0 R (HD.5325) 6083 0 R (HD.5326) 6084 0 R (HD.5327) 6085 0 R (HD.5328) 6086 0 R (HD.5329) 6087 0 R (HD.533) 822 0 R (HD.5330) 6088 0 R ] /Limits [ (HD.5302) (HD.5330) ] >>
endobj
11899 0 obj
-<< /Names [ (HD.6279) 7129 0 R (HD.628) 932 0 R (HD.6280) 7130 0 R (HD.6281) 7131 0 R (HD.6282) 7132 0 R (HD.6283) 7133 0 R (HD.6284) 7134 0 R (HD.6285) 7135 0 R (HD.6286) 7136 0 R (HD.6287) 7137 0 R (HD.6288) 7138 0 R (HD.6289) 7139 0 R (HD.629) 933 0 R (HD.6290) 7140 0 R (HD.6291) 7141 0 R (HD.6292) 7142 0 R (HD.6293) 7143 0 R (HD.6294) 7144 0 R (HD.6295) 7145 0 R (HD.6296) 7146 0 R (HD.6297) 7147 0 R (HD.6298) 7148 0 R (HD.6299) 7149 0 R (HD.63) 262 0 R (HD.630) 934 0 R (HD.6300) 7150 0 R (HD.6301) 7151 0 R (HD.6302) 7152 0 R (HD.6303) 7153 0 R (HD.6304) 7154 0 R (HD.6305) 7155 0 R (HD.6306) 7156 0 R ] /Limits [ (HD.6279) (HD.6306) ] >>
+<< /Names [ (HD.5331) 6089 0 R (HD.5332) 6090 0 R (HD.5333) 6091 0 R (HD.5334) 6092 0 R (HD.5335) 6093 0 R (HD.5336) 6094 0 R (HD.5337) 6095 0 R (HD.5338) 6096 0 R (HD.5339) 6097 0 R (HD.534) 823 0 R (HD.5340) 6098 0 R (HD.5341) 6099 0 R (HD.5342) 6100 0 R (HD.5343) 6101 0 R (HD.5344) 6102 0 R (HD.5345) 6103 0 R (HD.5346) 6104 0 R (HD.5347) 6105 0 R (HD.5348) 6112 0 R (HD.5349) 6113 0 R (HD.535) 824 0 R (HD.5350) 6114 0 R (HD.5351) 6115 0 R (HD.5352) 6116 0 R (HD.5353) 6117 0 R (HD.5354) 6118 0 R (HD.5355) 6119 0 R (HD.5356) 6120 0 R (HD.5357) 6121 0 R (HD.5358) 6122 0 R (HD.5359) 6123 0 R (HD.536) 825 0 R ] /Limits [ (HD.5331) (HD.536) ] >>
endobj
11900 0 obj
-<< /Names [ (HD.6307) 7157 0 R (HD.6308) 7158 0 R (HD.6309) 7159 0 R (HD.631) 935 0 R (HD.6310) 7160 0 R (HD.6311) 7161 0 R (HD.6312) 7162 0 R (HD.6313) 7163 0 R (HD.6314) 7164 0 R (HD.6315) 7165 0 R (HD.6316) 7166 0 R (HD.6317) 7167 0 R (HD.6318) 7168 0 R (HD.6319) 7169 0 R (HD.632) 936 0 R (HD.6320) 7170 0 R (HD.6321) 7171 0 R (HD.6322) 7172 0 R (HD.6323) 7173 0 R (HD.6324) 7174 0 R (HD.6325) 7175 0 R (HD.6326) 7176 0 R (HD.6327) 7177 0 R (HD.6328) 7182 0 R (HD.6329) 7183 0 R (HD.633) 937 0 R (HD.6330) 7184 0 R (HD.6331) 7185 0 R (HD.6332) 7186 0 R (HD.6333) 7187 0 R (HD.6334) 7188 0 R (HD.6335) 7189 0 R ] /Limits [ (HD.6307) (HD.6335) ] >>
+<< /Names [ (HD.5360) 6124 0 R (HD.5361) 6125 0 R (HD.5362) 6126 0 R (HD.5363) 6127 0 R (HD.5364) 6128 0 R (HD.5365) 6129 0 R (HD.5366) 6130 0 R (HD.5367) 6131 0 R (HD.5368) 6132 0 R (HD.5369) 6133 0 R (HD.537) 832 0 R (HD.5370) 6134 0 R (HD.5371) 6135 0 R (HD.5372) 6136 0 R (HD.5373) 6137 0 R (HD.5374) 6138 0 R (HD.5375) 6139 0 R (HD.5376) 6140 0 R (HD.5377) 6145 0 R (HD.5378) 6146 0 R (HD.5379) 6147 0 R (HD.538) 833 0 R (HD.5380) 6148 0 R (HD.5381) 6149 0 R (HD.5382) 6150 0 R (HD.5383) 6151 0 R (HD.5384) 6152 0 R (HD.5385) 6153 0 R (HD.5386) 6154 0 R (HD.5387) 6155 0 R (HD.5388) 6156 0 R (HD.5389) 6157 0 R ] /Limits [ (HD.5360) (HD.5389) ] >>
endobj
11901 0 obj
-<< /Names [ (HD.6336) 7190 0 R (HD.6337) 7191 0 R (HD.6338) 7192 0 R (HD.6339) 7193 0 R (HD.634) 938 0 R (HD.6340) 7194 0 R (HD.6341) 7195 0 R (HD.6342) 7196 0 R (HD.6343) 7197 0 R (HD.6344) 7198 0 R (HD.6345) 7199 0 R (HD.6346) 7200 0 R (HD.6347) 7201 0 R (HD.6348) 7202 0 R (HD.6349) 7203 0 R (HD.635) 939 0 R (HD.6350) 7204 0 R (HD.6351) 7205 0 R (HD.6352) 7206 0 R (HD.6353) 7207 0 R (HD.6354) 7208 0 R (HD.6355) 7209 0 R (HD.6356) 7210 0 R (HD.6357) 7211 0 R (HD.6358) 7212 0 R (HD.6359) 7213 0 R (HD.636) 940 0 R (HD.6360) 7214 0 R (HD.6361) 7215 0 R (HD.6362) 7216 0 R (HD.6363) 7217 0 R (HD.6364) 7218 0 R ] /Limits [ (HD.6336) (HD.6364) ] >>
+<< /Names [ (HD.539) 834 0 R (HD.5390) 6158 0 R (HD.5391) 6159 0 R (HD.5392) 6160 0 R (HD.5393) 6161 0 R (HD.5394) 6162 0 R (HD.5395) 6163 0 R (HD.5396) 6164 0 R (HD.5397) 6165 0 R (HD.5398) 6166 0 R (HD.5399) 6167 0 R (HD.54) 249 0 R (HD.540) 835 0 R (HD.5400) 6168 0 R (HD.5401) 6169 0 R (HD.5402) 6170 0 R (HD.5403) 6171 0 R (HD.5404) 6172 0 R (HD.5405) 6173 0 R (HD.5406) 6174 0 R (HD.5407) 6175 0 R (HD.5408) 6176 0 R (HD.5409) 6177 0 R (HD.541) 836 0 R (HD.5410) 6178 0 R (HD.5411) 6179 0 R (HD.5412) 6180 0 R (HD.5413) 6181 0 R (HD.5414) 6182 0 R (HD.5415) 6183 0 R (HD.5416) 6184 0 R (HD.5417) 6185 0 R ] /Limits [ (HD.539) (HD.5417) ] >>
endobj
11902 0 obj
-<< /Names [ (HD.6365) 7219 0 R (HD.6366) 7220 0 R (HD.6367) 7221 0 R (HD.6368) 7222 0 R (HD.6369) 7223 0 R (HD.637) 941 0 R (HD.6370) 7224 0 R (HD.6371) 7225 0 R (HD.6372) 7226 0 R (HD.6373) 7227 0 R (HD.6374) 7228 0 R (HD.6375) 7229 0 R (HD.6376) 7230 0 R (HD.6377) 7231 0 R (HD.6378) 7232 0 R (HD.6379) 7233 0 R (HD.638) 942 0 R (HD.6380) 7238 0 R (HD.6381) 7239 0 R (HD.6382) 7240 0 R (HD.6383) 7241 0 R (HD.6384) 7242 0 R (HD.6385) 7243 0 R (HD.6386) 7244 0 R (HD.6387) 7245 0 R (HD.6388) 7246 0 R (HD.6389) 7247 0 R (HD.639) 943 0 R (HD.6390) 7248 0 R (HD.6391) 7249 0 R (HD.6392) 7250 0 R (HD.6393) 7251 0 R ] /Limits [ (HD.6365) (HD.6393) ] >>
+<< /Names [ (HD.5418) 6186 0 R (HD.5419) 6187 0 R (HD.542) 837 0 R (HD.5420) 6188 0 R (HD.5421) 6189 0 R (HD.5422) 6190 0 R (HD.5423) 6191 0 R (HD.5424) 6192 0 R (HD.5425) 6193 0 R (HD.5426) 6194 0 R (HD.5427) 6195 0 R (HD.5428) 6200 0 R (HD.5429) 6201 0 R (HD.543) 838 0 R (HD.5430) 6202 0 R (HD.5431) 6203 0 R (HD.5432) 6204 0 R (HD.5433) 6205 0 R (HD.5434) 6206 0 R (HD.5435) 6207 0 R (HD.5436) 6208 0 R (HD.5437) 6209 0 R (HD.5438) 6210 0 R (HD.5439) 6211 0 R (HD.544) 839 0 R (HD.5440) 6212 0 R (HD.5441) 6213 0 R (HD.5442) 6214 0 R (HD.5443) 6215 0 R (HD.5444) 6216 0 R (HD.5445) 6217 0 R (HD.5446) 6218 0 R ] /Limits [ (HD.5418) (HD.5446) ] >>
endobj
11903 0 obj
-<< /Names [ (HD.6394) 7252 0 R (HD.6395) 7253 0 R (HD.6396) 7254 0 R (HD.6397) 7255 0 R (HD.6398) 7256 0 R (HD.6399) 7257 0 R (HD.64) 263 0 R (HD.640) 944 0 R (HD.6400) 7258 0 R (HD.6401) 7259 0 R (HD.6402) 7260 0 R (HD.6403) 7261 0 R (HD.6404) 7262 0 R (HD.6405) 7263 0 R (HD.6406) 7264 0 R (HD.6407) 7265 0 R (HD.6408) 7266 0 R (HD.6409) 7267 0 R (HD.641) 945 0 R (HD.6410) 7268 0 R (HD.6411) 7269 0 R (HD.6412) 7270 0 R (HD.6413) 7271 0 R (HD.6414) 7272 0 R (HD.6415) 7273 0 R (HD.6416) 7274 0 R (HD.6417) 7275 0 R (HD.6418) 7276 0 R (HD.6419) 7277 0 R (HD.642) 946 0 R (HD.6420) 7278 0 R (HD.6421) 7279 0 R ] /Limits [ (HD.6394) (HD.6421) ] >>
+<< /Names [ (HD.5447) 6219 0 R (HD.5448) 6220 0 R (HD.5449) 6221 0 R (HD.545) 840 0 R (HD.5450) 6222 0 R (HD.5451) 6223 0 R (HD.5452) 6224 0 R (HD.5453) 6225 0 R (HD.5454) 6226 0 R (HD.5455) 6227 0 R (HD.5456) 6228 0 R (HD.5457) 6229 0 R (HD.5458) 6230 0 R (HD.5459) 6231 0 R (HD.546) 841 0 R (HD.5460) 6232 0 R (HD.5461) 6233 0 R (HD.5462) 6234 0 R (HD.5463) 6235 0 R (HD.5464) 6236 0 R (HD.5465) 6237 0 R (HD.5466) 6238 0 R (HD.5467) 6239 0 R (HD.5468) 6240 0 R (HD.5469) 6241 0 R (HD.547) 842 0 R (HD.5470) 6242 0 R (HD.5471) 6243 0 R (HD.5472) 6244 0 R (HD.5473) 6245 0 R (HD.5474) 6246 0 R (HD.5475) 6247 0 R ] /Limits [ (HD.5447) (HD.5475) ] >>
endobj
11904 0 obj
-<< /Names [ (HD.6422) 7280 0 R (HD.6423) 7281 0 R (HD.6424) 7282 0 R (HD.6425) 7283 0 R (HD.6426) 7288 0 R (HD.6427) 7289 0 R (HD.6428) 7290 0 R (HD.6429) 7291 0 R (HD.643) 947 0 R (HD.6430) 7292 0 R (HD.6431) 7293 0 R (HD.6432) 7294 0 R (HD.6433) 7295 0 R (HD.6434) 7296 0 R (HD.6435) 7297 0 R (HD.6436) 7298 0 R (HD.6437) 7299 0 R (HD.6438) 7300 0 R (HD.6439) 7301 0 R (HD.644) 948 0 R (HD.6440) 7302 0 R (HD.6441) 7303 0 R (HD.6442) 7304 0 R (HD.6443) 7305 0 R (HD.6444) 7306 0 R (HD.6445) 7307 0 R (HD.6446) 7308 0 R (HD.6447) 7309 0 R (HD.6448) 7310 0 R (HD.6449) 7311 0 R (HD.645) 949 0 R (HD.6450) 7312 0 R ] /Limits [ (HD.6422) (HD.6450) ] >>
+<< /Names [ (HD.5476) 6248 0 R (HD.5477) 6249 0 R (HD.5478) 6250 0 R (HD.5479) 6251 0 R (HD.548) 843 0 R (HD.5480) 6252 0 R (HD.5481) 6253 0 R (HD.5482) 6254 0 R (HD.5483) 6255 0 R (HD.5484) 6260 0 R (HD.5485) 6261 0 R (HD.5486) 6262 0 R (HD.5487) 6263 0 R (HD.5488) 6264 0 R (HD.5489) 6265 0 R (HD.549) 844 0 R (HD.5490) 6266 0 R (HD.5491) 6267 0 R (HD.5492) 6268 0 R (HD.5493) 6269 0 R (HD.5494) 6270 0 R (HD.5495) 6271 0 R (HD.5496) 6272 0 R (HD.5497) 6273 0 R (HD.5498) 6274 0 R (HD.5499) 6275 0 R (HD.55) 250 0 R (HD.550) 845 0 R (HD.5500) 6276 0 R (HD.5501) 6277 0 R (HD.5502) 6278 0 R (HD.5503) 6279 0 R ] /Limits [ (HD.5476) (HD.5503) ] >>
endobj
11905 0 obj
-<< /Names [ (HD.6451) 7313 0 R (HD.6452) 7314 0 R (HD.6453) 7315 0 R (HD.6454) 7316 0 R (HD.6455) 7317 0 R (HD.6456) 7318 0 R (HD.6457) 7319 0 R (HD.6458) 7320 0 R (HD.6459) 7321 0 R (HD.646) 950 0 R (HD.6460) 7322 0 R (HD.6461) 7323 0 R (HD.6462) 7324 0 R (HD.6463) 7325 0 R (HD.6464) 7326 0 R (HD.6465) 7327 0 R (HD.6466) 7328 0 R (HD.6467) 7329 0 R (HD.6468) 7330 0 R (HD.6469) 7331 0 R (HD.647) 951 0 R (HD.6470) 7332 0 R (HD.6471) 7333 0 R (HD.6472) 7334 0 R (HD.6473) 7335 0 R (HD.6474) 7336 0 R (HD.6475) 7337 0 R (HD.6476) 7343 0 R (HD.6477) 7344 0 R (HD.6478) 7345 0 R (HD.6479) 7346 0 R (HD.648) 952 0 R ] /Limits [ (HD.6451) (HD.648) ] >>
+<< /Names [ (HD.5504) 6280 0 R (HD.5505) 6281 0 R (HD.5506) 6286 0 R (HD.5507) 6287 0 R (HD.5508) 6288 0 R (HD.5509) 6289 0 R (HD.551) 846 0 R (HD.5510) 6290 0 R (HD.5511) 6291 0 R (HD.5512) 6292 0 R (HD.5513) 6293 0 R (HD.5514) 6294 0 R (HD.5515) 6295 0 R (HD.5516) 6296 0 R (HD.5517) 6297 0 R (HD.5518) 6298 0 R (HD.5519) 6299 0 R (HD.552) 847 0 R (HD.5520) 6300 0 R (HD.5521) 6301 0 R (HD.5522) 6302 0 R (HD.5523) 6303 0 R (HD.5524) 6304 0 R (HD.5525) 6305 0 R (HD.5526) 6306 0 R (HD.5527) 6307 0 R (HD.5528) 6308 0 R (HD.5529) 6309 0 R (HD.553) 848 0 R (HD.5530) 6310 0 R (HD.5531) 6311 0 R (HD.5532) 6312 0 R ] /Limits [ (HD.5504) (HD.5532) ] >>
endobj
11906 0 obj
-<< /Names [ (HD.6480) 7347 0 R (HD.6481) 7348 0 R (HD.6482) 7349 0 R (HD.6483) 7350 0 R (HD.6484) 7351 0 R (HD.6485) 7352 0 R (HD.6486) 7353 0 R (HD.6487) 7354 0 R (HD.6488) 7355 0 R (HD.6489) 7356 0 R (HD.649) 953 0 R (HD.6490) 7357 0 R (HD.6491) 7358 0 R (HD.6492) 7359 0 R (HD.6493) 7360 0 R (HD.6494) 7361 0 R (HD.6495) 7362 0 R (HD.6496) 7363 0 R (HD.6497) 7364 0 R (HD.6498) 7365 0 R (HD.6499) 7366 0 R (HD.65) 265 0 R (HD.650) 954 0 R (HD.6500) 7367 0 R (HD.6501) 7368 0 R (HD.6502) 7369 0 R (HD.6503) 7370 0 R (HD.6504) 7371 0 R (HD.6505) 7372 0 R (HD.6506) 7373 0 R (HD.6507) 7374 0 R (HD.6508) 7375 0 R ] /Limits [ (HD.6480) (HD.6508) ] >>
+<< /Names [ (HD.5533) 6313 0 R (HD.5534) 6314 0 R (HD.5535) 6315 0 R (HD.5536) 6316 0 R (HD.5537) 6317 0 R (HD.5538) 6318 0 R (HD.5539) 6319 0 R (HD.554) 849 0 R (HD.5540) 6320 0 R (HD.5541) 6321 0 R (HD.5542) 6322 0 R (HD.5543) 6323 0 R (HD.5544) 6324 0 R (HD.5545) 6325 0 R (HD.5546) 6326 0 R (HD.5547) 6327 0 R (HD.5548) 6328 0 R (HD.5549) 6329 0 R (HD.555) 850 0 R (HD.5550) 6330 0 R (HD.5551) 6331 0 R (HD.5552) 6332 0 R (HD.5553) 6333 0 R (HD.5554) 6339 0 R (HD.5555) 6340 0 R (HD.5556) 6341 0 R (HD.5557) 6342 0 R (HD.5558) 6343 0 R (HD.5559) 6344 0 R (HD.556) 851 0 R (HD.5560) 6345 0 R (HD.5561) 6346 0 R ] /Limits [ (HD.5533) (HD.5561) ] >>
endobj
11907 0 obj
-<< /Names [ (HD.6509) 7376 0 R (HD.651) 955 0 R (HD.6510) 7377 0 R (HD.6511) 7378 0 R (HD.6512) 7379 0 R (HD.6513) 7380 0 R (HD.6514) 7381 0 R (HD.6515) 7382 0 R (HD.6516) 7383 0 R (HD.6517) 7384 0 R (HD.6518) 7385 0 R (HD.6519) 7386 0 R (HD.652) 956 0 R (HD.6520) 7387 0 R (HD.6521) 7388 0 R (HD.6522) 7393 0 R (HD.6523) 7394 0 R (HD.6524) 7395 0 R (HD.6525) 7396 0 R (HD.6526) 7397 0 R (HD.6527) 7398 0 R (HD.6528) 7399 0 R (HD.6529) 7400 0 R (HD.653) 957 0 R (HD.6530) 7401 0 R (HD.6531) 7402 0 R (HD.6532) 7403 0 R (HD.6533) 7404 0 R (HD.6534) 7405 0 R (HD.6535) 7406 0 R (HD.6536) 7407 0 R (HD.6537) 7408 0 R ] /Limits [ (HD.6509) (HD.6537) ] >>
+<< /Names [ (HD.5562) 6347 0 R (HD.5563) 6348 0 R (HD.5564) 6349 0 R (HD.5565) 6350 0 R (HD.5566) 6351 0 R (HD.5567) 6352 0 R (HD.5568) 6353 0 R (HD.5569) 6354 0 R (HD.557) 852 0 R (HD.5570) 6355 0 R (HD.5571) 6356 0 R (HD.5572) 6357 0 R (HD.5573) 6358 0 R (HD.5574) 6359 0 R (HD.5575) 6360 0 R (HD.5576) 6361 0 R (HD.5577) 6362 0 R (HD.5578) 6363 0 R (HD.5579) 6364 0 R (HD.558) 853 0 R (HD.5580) 6365 0 R (HD.5581) 6366 0 R (HD.5582) 6367 0 R (HD.5583) 6368 0 R (HD.5584) 6369 0 R (HD.5585) 6370 0 R (HD.5586) 6371 0 R (HD.5587) 6372 0 R (HD.5588) 6373 0 R (HD.5589) 6374 0 R (HD.559) 854 0 R (HD.5590) 6375 0 R ] /Limits [ (HD.5562) (HD.5590) ] >>
endobj
11908 0 obj
-<< /Names [ (HD.6538) 7409 0 R (HD.6539) 7410 0 R (HD.654) 958 0 R (HD.6540) 7411 0 R (HD.6541) 7412 0 R (HD.6542) 7413 0 R (HD.6543) 7414 0 R (HD.6544) 7415 0 R (HD.6545) 7416 0 R (HD.6546) 7417 0 R (HD.6547) 7418 0 R (HD.6548) 7419 0 R (HD.6549) 7420 0 R (HD.655) 959 0 R (HD.6550) 7421 0 R (HD.6551) 7422 0 R (HD.6552) 7423 0 R (HD.6553) 7424 0 R (HD.6554) 7425 0 R (HD.6555) 7426 0 R (HD.6556) 7427 0 R (HD.6557) 7428 0 R (HD.6558) 7429 0 R (HD.6559) 7430 0 R (HD.656) 960 0 R (HD.6560) 7431 0 R (HD.6561) 7432 0 R (HD.6562) 7433 0 R (HD.6563) 7434 0 R (HD.6564) 7435 0 R (HD.6565) 7436 0 R (HD.6566) 7437 0 R ] /Limits [ (HD.6538) (HD.6566) ] >>
+<< /Names [ (HD.5591) 6376 0 R (HD.5592) 6377 0 R (HD.5593) 6378 0 R (HD.5594) 6379 0 R (HD.5595) 6380 0 R (HD.5596) 6381 0 R (HD.5597) 6382 0 R (HD.5598) 6383 0 R (HD.5599) 6384 0 R (HD.56) 251 0 R (HD.560) 855 0 R (HD.5600) 6389 0 R (HD.5601) 6390 0 R (HD.5602) 6391 0 R (HD.5603) 6392 0 R (HD.5604) 6393 0 R (HD.5605) 6394 0 R (HD.5606) 6395 0 R (HD.5607) 6396 0 R (HD.5608) 6397 0 R (HD.5609) 6398 0 R (HD.561) 856 0 R (HD.5610) 6399 0 R (HD.5611) 6400 0 R (HD.5612) 6401 0 R (HD.5613) 6402 0 R (HD.5614) 6403 0 R (HD.5615) 6404 0 R (HD.5616) 6405 0 R (HD.5617) 6406 0 R (HD.5618) 6407 0 R (HD.5619) 6408 0 R ] /Limits [ (HD.5591) (HD.5619) ] >>
endobj
11909 0 obj
-<< /Names [ (HD.6567) 7438 0 R (HD.6568) 7439 0 R (HD.6569) 7444 0 R (HD.657) 961 0 R (HD.6570) 7445 0 R (HD.6571) 7446 0 R (HD.6572) 7447 0 R (HD.6573) 7448 0 R (HD.6574) 7449 0 R (HD.6575) 7450 0 R (HD.6576) 7451 0 R (HD.6577) 7452 0 R (HD.6578) 7453 0 R (HD.6579) 7454 0 R (HD.658) 962 0 R (HD.6580) 7455 0 R (HD.6581) 7456 0 R (HD.6582) 7457 0 R (HD.6583) 7458 0 R (HD.6584) 7459 0 R (HD.6585) 7460 0 R (HD.6586) 7461 0 R (HD.6587) 7462 0 R (HD.6588) 7463 0 R (HD.6589) 7464 0 R (HD.659) 963 0 R (HD.6590) 7465 0 R (HD.6591) 7466 0 R (HD.6592) 7467 0 R (HD.6593) 7468 0 R (HD.6594) 7469 0 R (HD.6595) 7470 0 R ] /Limits [ (HD.6567) (HD.6595) ] >>
+<< /Names [ (HD.562) 857 0 R (HD.5620) 6409 0 R (HD.5621) 6410 0 R (HD.5622) 6411 0 R (HD.5623) 6412 0 R (HD.5624) 6413 0 R (HD.5625) 6414 0 R (HD.5626) 6415 0 R (HD.5627) 6416 0 R (HD.5628) 6417 0 R (HD.5629) 6418 0 R (HD.563) 858 0 R (HD.5630) 6419 0 R (HD.5631) 6420 0 R (HD.5632) 6421 0 R (HD.5633) 6422 0 R (HD.5634) 6423 0 R (HD.5635) 6424 0 R (HD.5636) 6425 0 R (HD.5637) 6426 0 R (HD.5638) 6427 0 R (HD.5639) 6428 0 R (HD.564) 859 0 R (HD.5640) 6429 0 R (HD.5641) 6430 0 R (HD.5642) 6431 0 R (HD.5643) 6432 0 R (HD.5644) 6433 0 R (HD.5645) 6434 0 R (HD.5646) 6435 0 R (HD.5647) 6436 0 R (HD.5648) 6437 0 R ] /Limits [ (HD.562) (HD.5648) ] >>
endobj
11910 0 obj
-<< /Names [ (HD.6596) 7471 0 R (HD.6597) 7472 0 R (HD.6598) 7473 0 R (HD.6599) 7474 0 R (HD.66) 266 0 R (HD.660) 968 0 R (HD.6600) 7475 0 R (HD.6601) 7476 0 R (HD.6602) 7477 0 R (HD.6603) 7478 0 R (HD.6604) 7479 0 R (HD.6605) 7480 0 R (HD.6606) 7481 0 R (HD.6607) 7482 0 R (HD.6608) 7483 0 R (HD.6609) 7484 0 R (HD.661) 969 0 R (HD.6610) 7485 0 R (HD.6611) 7486 0 R (HD.6612) 7491 0 R (HD.6613) 7492 0 R (HD.6614) 7493 0 R (HD.6615) 7494 0 R (HD.6616) 7495 0 R (HD.6617) 7496 0 R (HD.6618) 7497 0 R (HD.6619) 7498 0 R (HD.662) 970 0 R (HD.6620) 7499 0 R (HD.6621) 7500 0 R (HD.6622) 7501 0 R (HD.6623) 7502 0 R ] /Limits [ (HD.6596) (HD.6623) ] >>
+<< /Names [ (HD.5649) 6442 0 R (HD.565) 860 0 R (HD.5650) 6443 0 R (HD.5651) 6444 0 R (HD.5652) 6445 0 R (HD.5653) 6446 0 R (HD.5654) 6447 0 R (HD.5655) 6448 0 R (HD.5656) 6449 0 R (HD.5657) 6450 0 R (HD.5658) 6451 0 R (HD.5659) 6452 0 R (HD.566) 861 0 R (HD.5660) 6453 0 R (HD.5661) 6454 0 R (HD.5662) 6455 0 R (HD.5663) 6456 0 R (HD.5664) 6457 0 R (HD.5665) 6458 0 R (HD.5666) 6459 0 R (HD.5667) 6460 0 R (HD.5668) 6461 0 R (HD.5669) 6462 0 R (HD.567) 862 0 R (HD.5670) 6463 0 R (HD.5671) 6464 0 R (HD.5672) 6465 0 R (HD.5673) 6466 0 R (HD.5674) 6467 0 R (HD.5675) 6468 0 R (HD.5676) 6469 0 R (HD.5677) 6470 0 R ] /Limits [ (HD.5649) (HD.5677) ] >>
endobj
11911 0 obj
-<< /Names [ (HD.6624) 7503 0 R (HD.6625) 7504 0 R (HD.6626) 7505 0 R (HD.6627) 7506 0 R (HD.6628) 7507 0 R (HD.6629) 7508 0 R (HD.663) 971 0 R (HD.6630) 7509 0 R (HD.6631) 7510 0 R (HD.6632) 7511 0 R (HD.6633) 7512 0 R (HD.6634) 7513 0 R (HD.6635) 7514 0 R (HD.6636) 7515 0 R (HD.6637) 7516 0 R (HD.6638) 7517 0 R (HD.6639) 7518 0 R (HD.664) 972 0 R (HD.6640) 7519 0 R (HD.6641) 7520 0 R (HD.6642) 7521 0 R (HD.6643) 7522 0 R (HD.6644) 7523 0 R (HD.6645) 7524 0 R (HD.6646) 7525 0 R (HD.6647) 7526 0 R (HD.6648) 7527 0 R (HD.6649) 7528 0 R (HD.665) 973 0 R (HD.6650) 7529 0 R (HD.6651) 7530 0 R (HD.6652) 7531 0 R ] /Limits [ (HD.6624) (HD.6652) ] >>
+<< /Names [ (HD.5678) 6471 0 R (HD.5679) 6472 0 R (HD.568) 863 0 R (HD.5680) 6473 0 R (HD.5681) 6474 0 R (HD.5682) 6475 0 R (HD.5683) 6476 0 R (HD.5684) 6477 0 R (HD.5685) 6478 0 R (HD.5686) 6479 0 R (HD.5687) 6480 0 R (HD.5688) 6481 0 R (HD.5689) 6486 0 R (HD.569) 864 0 R (HD.5690) 6487 0 R (HD.5691) 6488 0 R (HD.5692) 6489 0 R (HD.5693) 6490 0 R (HD.5694) 6491 0 R (HD.5695) 6492 0 R (HD.5696) 6493 0 R (HD.5697) 6494 0 R (HD.5698) 6495 0 R (HD.5699) 6496 0 R (HD.57) 252 0 R (HD.570) 865 0 R (HD.5700) 6497 0 R (HD.5701) 6498 0 R (HD.5702) 6499 0 R (HD.5703) 6500 0 R (HD.5704) 6501 0 R (HD.5705) 6502 0 R ] /Limits [ (HD.5678) (HD.5705) ] >>
endobj
11912 0 obj
-<< /Names [ (HD.6653) 7532 0 R (HD.6654) 7533 0 R (HD.6655) 7534 0 R (HD.6656) 7535 0 R (HD.6657) 7536 0 R (HD.6658) 7537 0 R (HD.6659) 7538 0 R (HD.666) 974 0 R (HD.6660) 7539 0 R (HD.6661) 7540 0 R (HD.6662) 7541 0 R (HD.6663) 7542 0 R (HD.6664) 7543 0 R (HD.6665) 7544 0 R (HD.6666) 7549 0 R (HD.6667) 7550 0 R (HD.6668) 7551 0 R (HD.6669) 7552 0 R (HD.667) 975 0 R (HD.6670) 7553 0 R (HD.6671) 7554 0 R (HD.6672) 7555 0 R (HD.6673) 7556 0 R (HD.6674) 7557 0 R (HD.6675) 7558 0 R (HD.6676) 7559 0 R (HD.6677) 7560 0 R (HD.6678) 7561 0 R (HD.6679) 7562 0 R (HD.668) 976 0 R (HD.6680) 7563 0 R (HD.6681) 7564 0 R ] /Limits [ (HD.6653) (HD.6681) ] >>
+<< /Names [ (HD.5706) 6503 0 R (HD.5707) 6504 0 R (HD.5708) 6505 0 R (HD.5709) 6506 0 R (HD.571) 866 0 R (HD.5710) 6507 0 R (HD.5711) 6508 0 R (HD.5712) 6509 0 R (HD.5713) 6510 0 R (HD.5714) 6511 0 R (HD.5715) 6512 0 R (HD.5716) 6513 0 R (HD.5717) 6514 0 R (HD.5718) 6515 0 R (HD.5719) 6516 0 R (HD.572) 867 0 R (HD.5720) 6517 0 R (HD.5721) 6518 0 R (HD.5722) 6519 0 R (HD.5723) 6520 0 R (HD.5724) 6521 0 R (HD.5725) 6522 0 R (HD.5726) 6523 0 R (HD.5727) 6524 0 R (HD.5728) 6525 0 R (HD.5729) 6526 0 R (HD.573) 868 0 R (HD.5730) 6527 0 R (HD.5731) 6528 0 R (HD.5732) 6529 0 R (HD.5733) 6530 0 R (HD.5734) 6531 0 R ] /Limits [ (HD.5706) (HD.5734) ] >>
endobj
11913 0 obj
-<< /Names [ (HD.6682) 7565 0 R (HD.6683) 7566 0 R (HD.6684) 7567 0 R (HD.6685) 7568 0 R (HD.6686) 7569 0 R (HD.6687) 7570 0 R (HD.6688) 7571 0 R (HD.6689) 7572 0 R (HD.669) 977 0 R (HD.6690) 7573 0 R (HD.6691) 7574 0 R (HD.6692) 7575 0 R (HD.6693) 7576 0 R (HD.6694) 7577 0 R (HD.6695) 7578 0 R (HD.6696) 7579 0 R (HD.6697) 7580 0 R (HD.6698) 7581 0 R (HD.6699) 7582 0 R (HD.67) 267 0 R (HD.670) 978 0 R (HD.6700) 7583 0 R (HD.6701) 7584 0 R (HD.6702) 7585 0 R (HD.6703) 7586 0 R (HD.6704) 7587 0 R (HD.6705) 7588 0 R (HD.6706) 7589 0 R (HD.6707) 7590 0 R (HD.6708) 7591 0 R (HD.6709) 7592 0 R (HD.671) 979 0 R ] /Limits [ (HD.6682) (HD.671) ] >>
+<< /Names [ (HD.5735) 6532 0 R (HD.5736) 6533 0 R (HD.5737) 6534 0 R (HD.5738) 6535 0 R (HD.5739) 6540 0 R (HD.574) 869 0 R (HD.5740) 6541 0 R (HD.5741) 6542 0 R (HD.5742) 6543 0 R (HD.5743) 6544 0 R (HD.5744) 6545 0 R (HD.5745) 6546 0 R (HD.5746) 6547 0 R (HD.5747) 6548 0 R (HD.5748) 6549 0 R (HD.5749) 6550 0 R (HD.575) 870 0 R (HD.5750) 6551 0 R (HD.5751) 6552 0 R (HD.5752) 6553 0 R (HD.5753) 6554 0 R (HD.5754) 6555 0 R (HD.5755) 6556 0 R (HD.5756) 6557 0 R (HD.5757) 6558 0 R (HD.5758) 6559 0 R (HD.5759) 6560 0 R (HD.576) 876 0 R (HD.5760) 6561 0 R (HD.5761) 6562 0 R (HD.5762) 6563 0 R (HD.5763) 6564 0 R ] /Limits [ (HD.5735) (HD.5763) ] >>
endobj
11914 0 obj
-<< /Names [ (HD.6710) 7593 0 R (HD.6711) 7594 0 R (HD.6712) 7595 0 R (HD.6713) 7600 0 R (HD.6714) 7601 0 R (HD.6715) 7602 0 R (HD.6716) 7603 0 R (HD.6717) 7604 0 R (HD.6718) 7605 0 R (HD.6719) 7606 0 R (HD.672) 980 0 R (HD.6720) 7607 0 R (HD.6721) 7608 0 R (HD.6722) 7609 0 R (HD.6723) 7610 0 R (HD.6724) 7611 0 R (HD.6725) 7612 0 R (HD.6726) 7613 0 R (HD.6727) 7614 0 R (HD.6728) 7615 0 R (HD.6729) 7616 0 R (HD.673) 981 0 R (HD.6730) 7617 0 R (HD.6731) 7618 0 R (HD.6732) 7619 0 R (HD.6733) 7620 0 R (HD.6734) 7621 0 R (HD.6735) 7622 0 R (HD.6736) 7623 0 R (HD.6737) 7624 0 R (HD.6738) 7625 0 R (HD.6739) 7626 0 R ] /Limits [ (HD.6710) (HD.6739) ] >>
+<< /Names [ (HD.5764) 6565 0 R (HD.5765) 6566 0 R (HD.5766) 6567 0 R (HD.5767) 6568 0 R (HD.5768) 6569 0 R (HD.5769) 6570 0 R (HD.577) 877 0 R (HD.5770) 6571 0 R (HD.5771) 6572 0 R (HD.5772) 6573 0 R (HD.5773) 6574 0 R (HD.5774) 6575 0 R (HD.5775) 6576 0 R (HD.5776) 6577 0 R (HD.5777) 6578 0 R (HD.5778) 6579 0 R (HD.5779) 6584 0 R (HD.578) 878 0 R (HD.5780) 6585 0 R (HD.5781) 6586 0 R (HD.5782) 6587 0 R (HD.5783) 6588 0 R (HD.5784) 6589 0 R (HD.5785) 6590 0 R (HD.5786) 6591 0 R (HD.5787) 6592 0 R (HD.5788) 6593 0 R (HD.5789) 6594 0 R (HD.579) 879 0 R (HD.5790) 6595 0 R (HD.5791) 6596 0 R (HD.5792) 6597 0 R ] /Limits [ (HD.5764) (HD.5792) ] >>
endobj
11915 0 obj
-<< /Names [ (HD.674) 982 0 R (HD.6740) 7627 0 R (HD.6741) 7628 0 R (HD.6742) 7629 0 R (HD.6743) 7630 0 R (HD.6744) 7631 0 R (HD.6745) 7632 0 R (HD.6746) 7633 0 R (HD.6747) 7634 0 R (HD.6748) 7635 0 R (HD.6749) 7636 0 R (HD.675) 983 0 R (HD.6750) 7637 0 R (HD.6751) 7638 0 R (HD.6752) 7643 0 R (HD.6753) 7644 0 R (HD.6754) 7645 0 R (HD.6755) 7646 0 R (HD.6756) 7647 0 R (HD.6757) 7648 0 R (HD.6758) 7649 0 R (HD.6759) 7650 0 R (HD.676) 984 0 R (HD.6760) 7651 0 R (HD.6761) 7652 0 R (HD.6762) 7653 0 R (HD.6763) 7654 0 R (HD.6764) 7655 0 R (HD.6765) 7656 0 R (HD.6766) 7657 0 R (HD.6767) 7658 0 R (HD.6768) 7659 0 R ] /Limits [ (HD.674) (HD.6768) ] >>
+<< /Names [ (HD.5793) 6598 0 R (HD.5794) 6599 0 R (HD.5795) 6600 0 R (HD.5796) 6601 0 R (HD.5797) 6602 0 R (HD.5798) 6603 0 R (HD.5799) 6604 0 R (HD.58) 253 0 R (HD.580) 880 0 R (HD.5800) 6605 0 R (HD.5801) 6606 0 R (HD.5802) 6607 0 R (HD.5803) 6608 0 R (HD.5804) 6609 0 R (HD.5805) 6610 0 R (HD.5806) 6611 0 R (HD.5807) 6612 0 R (HD.5808) 6613 0 R (HD.5809) 6614 0 R (HD.581) 881 0 R (HD.5810) 6615 0 R (HD.5811) 6616 0 R (HD.5812) 6617 0 R (HD.5813) 6618 0 R (HD.5814) 6619 0 R (HD.5815) 6620 0 R (HD.5816) 6621 0 R (HD.5817) 6622 0 R (HD.5818) 6623 0 R (HD.5819) 6624 0 R (HD.582) 882 0 R (HD.5820) 6625 0 R ] /Limits [ (HD.5793) (HD.5820) ] >>
endobj
11916 0 obj
-<< /Names [ (HD.6769) 7660 0 R (HD.677) 985 0 R (HD.6770) 7661 0 R (HD.6771) 7662 0 R (HD.6772) 7663 0 R (HD.6773) 7664 0 R (HD.6774) 7665 0 R (HD.6775) 7666 0 R (HD.6776) 7667 0 R (HD.6777) 7668 0 R (HD.6778) 7669 0 R (HD.6779) 7670 0 R (HD.678) 986 0 R (HD.6780) 7671 0 R (HD.6781) 7672 0 R (HD.6782) 7673 0 R (HD.6783) 7674 0 R (HD.6784) 7675 0 R (HD.6785) 7676 0 R (HD.6786) 7677 0 R (HD.6787) 7678 0 R (HD.6788) 7679 0 R (HD.6789) 7680 0 R (HD.679) 987 0 R (HD.6790) 7681 0 R (HD.6791) 7682 0 R (HD.6792) 7683 0 R (HD.6793) 7684 0 R (HD.6794) 7685 0 R (HD.6795) 7686 0 R (HD.6796) 7687 0 R (HD.6797) 7688 0 R ] /Limits [ (HD.6769) (HD.6797) ] >>
+<< /Names [ (HD.5821) 6626 0 R (HD.5822) 6627 0 R (HD.5823) 6628 0 R (HD.5824) 6629 0 R (HD.5825) 6630 0 R (HD.5826) 6631 0 R (HD.5827) 6632 0 R (HD.5828) 6633 0 R (HD.5829) 6634 0 R (HD.583) 883 0 R (HD.5830) 6635 0 R (HD.5831) 6636 0 R (HD.5832) 6637 0 R (HD.5833) 6638 0 R (HD.5834) 6643 0 R (HD.5835) 6644 0 R (HD.5836) 6645 0 R (HD.5837) 6646 0 R (HD.5838) 6647 0 R (HD.5839) 6648 0 R (HD.584) 884 0 R (HD.5840) 6649 0 R (HD.5841) 6650 0 R (HD.5842) 6651 0 R (HD.5843) 6652 0 R (HD.5844) 6653 0 R (HD.5845) 6654 0 R (HD.5846) 6655 0 R (HD.5847) 6656 0 R (HD.5848) 6657 0 R (HD.5849) 6658 0 R (HD.585) 885 0 R ] /Limits [ (HD.5821) (HD.585) ] >>
endobj
11917 0 obj
-<< /Names [ (HD.6798) 7689 0 R (HD.6799) 7690 0 R (HD.68) 268 0 R (HD.680) 988 0 R (HD.6800) 7691 0 R (HD.6801) 7692 0 R (HD.6802) 7693 0 R (HD.6803) 7694 0 R (HD.6804) 7695 0 R (HD.6805) 7696 0 R (HD.6806) 7701 0 R (HD.6807) 7702 0 R (HD.6808) 7703 0 R (HD.6809) 7704 0 R (HD.681) 989 0 R (HD.6810) 7705 0 R (HD.6811) 7706 0 R (HD.6812) 7707 0 R (HD.6813) 7708 0 R (HD.6814) 7709 0 R (HD.6815) 7710 0 R (HD.6816) 7711 0 R (HD.6817) 7712 0 R (HD.6818) 7713 0 R (HD.6819) 7714 0 R (HD.682) 990 0 R (HD.6820) 7715 0 R (HD.6821) 7716 0 R (HD.6822) 7717 0 R (HD.6823) 7718 0 R (HD.6824) 7719 0 R (HD.6825) 7720 0 R ] /Limits [ (HD.6798) (HD.6825) ] >>
+<< /Names [ (HD.5850) 6659 0 R (HD.5851) 6660 0 R (HD.5852) 6661 0 R (HD.5853) 6662 0 R (HD.5854) 6663 0 R (HD.5855) 6664 0 R (HD.5856) 6665 0 R (HD.5857) 6666 0 R (HD.5858) 6667 0 R (HD.5859) 6668 0 R (HD.586) 886 0 R (HD.5860) 6669 0 R (HD.5861) 6670 0 R (HD.5862) 6671 0 R (HD.5863) 6672 0 R (HD.5864) 6673 0 R (HD.5865) 6674 0 R (HD.5866) 6675 0 R (HD.5867) 6676 0 R (HD.5868) 6677 0 R (HD.5869) 6678 0 R (HD.587) 887 0 R (HD.5870) 6679 0 R (HD.5871) 6680 0 R (HD.5872) 6681 0 R (HD.5873) 6682 0 R (HD.5874) 6683 0 R (HD.5875) 6684 0 R (HD.5876) 6685 0 R (HD.5877) 6686 0 R (HD.5878) 6687 0 R (HD.5879) 6688 0 R ] /Limits [ (HD.5850) (HD.5879) ] >>
endobj
11918 0 obj
-<< /Names [ (HD.6826) 7721 0 R (HD.6827) 7722 0 R (HD.6828) 7723 0 R (HD.6829) 7724 0 R (HD.683) 991 0 R (HD.6830) 7725 0 R (HD.6831) 7726 0 R (HD.6832) 7727 0 R (HD.6833) 7728 0 R (HD.6834) 7729 0 R (HD.6835) 7730 0 R (HD.6836) 7731 0 R (HD.6837) 7732 0 R (HD.6838) 7733 0 R (HD.6839) 7734 0 R (HD.684) 992 0 R (HD.6840) 7735 0 R (HD.6841) 7736 0 R (HD.6842) 7737 0 R (HD.6843) 7738 0 R (HD.6844) 7739 0 R (HD.6845) 7740 0 R (HD.6846) 7741 0 R (HD.6847) 7742 0 R (HD.6848) 7743 0 R (HD.6849) 7744 0 R (HD.685) 993 0 R (HD.6850) 7745 0 R (HD.6851) 7750 0 R (HD.6852) 7751 0 R (HD.6853) 7752 0 R (HD.6854) 7753 0 R ] /Limits [ (HD.6826) (HD.6854) ] >>
+<< /Names [ (HD.588) 888 0 R (HD.5880) 6689 0 R (HD.5881) 6690 0 R (HD.5882) 6691 0 R (HD.5883) 6692 0 R (HD.5884) 6693 0 R (HD.5885) 6698 0 R (HD.5886) 6699 0 R (HD.5887) 6700 0 R (HD.5888) 6701 0 R (HD.5889) 6702 0 R (HD.589) 889 0 R (HD.5890) 6703 0 R (HD.5891) 6704 0 R (HD.5892) 6705 0 R (HD.5893) 6706 0 R (HD.5894) 6707 0 R (HD.5895) 6708 0 R (HD.5896) 6709 0 R (HD.5897) 6710 0 R (HD.5898) 6711 0 R (HD.5899) 6712 0 R (HD.59) 258 0 R (HD.590) 890 0 R (HD.5900) 6713 0 R (HD.5901) 6714 0 R (HD.5902) 6715 0 R (HD.5903) 6716 0 R (HD.5904) 6717 0 R (HD.5905) 6718 0 R (HD.5906) 6719 0 R (HD.5907) 6720 0 R ] /Limits [ (HD.588) (HD.5907) ] >>
endobj
11919 0 obj
-<< /Names [ (HD.6855) 7754 0 R (HD.6856) 7755 0 R (HD.6857) 7756 0 R (HD.6858) 7757 0 R (HD.6859) 7758 0 R (HD.686) 994 0 R (HD.6860) 7759 0 R (HD.6861) 7760 0 R (HD.6862) 7761 0 R (HD.6863) 7762 0 R (HD.6864) 7763 0 R (HD.6865) 7764 0 R (HD.6866) 7765 0 R (HD.6867) 7766 0 R (HD.6868) 7767 0 R (HD.6869) 7768 0 R (HD.687) 995 0 R (HD.6870) 7769 0 R (HD.6871) 7770 0 R (HD.6872) 7771 0 R (HD.6873) 7772 0 R (HD.6874) 7773 0 R (HD.6875) 7774 0 R (HD.6876) 7775 0 R (HD.6877) 7776 0 R (HD.6878) 7777 0 R (HD.6879) 7778 0 R (HD.688) 996 0 R (HD.6880) 7779 0 R (HD.6881) 7784 0 R (HD.6882) 7785 0 R (HD.6883) 7786 0 R ] /Limits [ (HD.6855) (HD.6883) ] >>
+<< /Names [ (HD.5908) 6721 0 R (HD.5909) 6722 0 R (HD.591) 891 0 R (HD.5910) 6723 0 R (HD.5911) 6724 0 R (HD.5912) 6725 0 R (HD.5913) 6726 0 R (HD.5914) 6727 0 R (HD.5915) 6728 0 R (HD.5916) 6729 0 R (HD.5917) 6730 0 R (HD.5918) 6731 0 R (HD.5919) 6732 0 R (HD.592) 892 0 R (HD.5920) 6733 0 R (HD.5921) 6734 0 R (HD.5922) 6735 0 R (HD.5923) 6736 0 R (HD.5924) 6737 0 R (HD.5925) 6738 0 R (HD.5926) 6739 0 R (HD.5927) 6740 0 R (HD.5928) 6741 0 R (HD.5929) 6742 0 R (HD.593) 893 0 R (HD.5930) 6747 0 R (HD.5931) 6748 0 R (HD.5932) 6749 0 R (HD.5933) 6750 0 R (HD.5934) 6751 0 R (HD.5935) 6752 0 R (HD.5936) 6753 0 R ] /Limits [ (HD.5908) (HD.5936) ] >>
endobj
11920 0 obj
-<< /Names [ (HD.6884) 7787 0 R (HD.6885) 7788 0 R (HD.6886) 7789 0 R (HD.6887) 7790 0 R (HD.6888) 7791 0 R (HD.6889) 7792 0 R (HD.689) 997 0 R (HD.6890) 7793 0 R (HD.6891) 7794 0 R (HD.6892) 7795 0 R (HD.6893) 7796 0 R (HD.6894) 7797 0 R (HD.6895) 7798 0 R (HD.6896) 7799 0 R (HD.6897) 7800 0 R (HD.6898) 7801 0 R (HD.6899) 7802 0 R (HD.69) 269 0 R (HD.690) 998 0 R (HD.6900) 7803 0 R (HD.6901) 7804 0 R (HD.6902) 7805 0 R (HD.6903) 7806 0 R (HD.6904) 7807 0 R (HD.6905) 7808 0 R (HD.6906) 7809 0 R (HD.6907) 7810 0 R (HD.6908) 7811 0 R (HD.6909) 7812 0 R (HD.691) 999 0 R (HD.6910) 7813 0 R (HD.6911) 7814 0 R ] /Limits [ (HD.6884) (HD.6911) ] >>
+<< /Names [ (HD.5937) 6754 0 R (HD.5938) 6755 0 R (HD.5939) 6756 0 R (HD.594) 894 0 R (HD.5940) 6757 0 R (HD.5941) 6758 0 R (HD.5942) 6759 0 R (HD.5943) 6760 0 R (HD.5944) 6761 0 R (HD.5945) 6762 0 R (HD.5946) 6763 0 R (HD.5947) 6764 0 R (HD.5948) 6765 0 R (HD.5949) 6766 0 R (HD.595) 895 0 R (HD.5950) 6767 0 R (HD.5951) 6768 0 R (HD.5952) 6769 0 R (HD.5953) 6770 0 R (HD.5954) 6771 0 R (HD.5955) 6772 0 R (HD.5956) 6773 0 R (HD.5957) 6774 0 R (HD.5958) 6775 0 R (HD.5959) 6776 0 R (HD.596) 896 0 R (HD.5960) 6777 0 R (HD.5961) 6778 0 R (HD.5962) 6779 0 R (HD.5963) 6784 0 R (HD.5964) 6785 0 R (HD.5965) 6786 0 R ] /Limits [ (HD.5937) (HD.5965) ] >>
endobj
11921 0 obj
-<< /Names [ (HD.6912) 7815 0 R (HD.6913) 7816 0 R (HD.6914) 7817 0 R (HD.6915) 7818 0 R (HD.6916) 7819 0 R (HD.6917) 7820 0 R (HD.6918) 7821 0 R (HD.6919) 7822 0 R (HD.692) 1000 0 R (HD.6920) 7823 0 R (HD.6921) 7824 0 R (HD.6922) 7825 0 R (HD.6923) 7826 0 R (HD.6924) 7827 0 R (HD.6925) 7828 0 R (HD.6926) 7829 0 R (HD.6927) 7830 0 R (HD.6928) 7837 0 R (HD.6929) 7838 0 R (HD.693) 1001 0 R (HD.6930) 7839 0 R (HD.6931) 7840 0 R (HD.6932) 7841 0 R (HD.6933) 7842 0 R (HD.6934) 7843 0 R (HD.6935) 7844 0 R (HD.6936) 7845 0 R (HD.6937) 7846 0 R (HD.6938) 7847 0 R (HD.6939) 7848 0 R (HD.694) 1002 0 R (HD.6940) 7849 0 R ] /Limits [ (HD.6912) (HD.6940) ] >>
+<< /Names [ (HD.5966) 6787 0 R (HD.5967) 6788 0 R (HD.5968) 6789 0 R (HD.5969) 6790 0 R (HD.597) 897 0 R (HD.5970) 6791 0 R (HD.5971) 6792 0 R (HD.5972) 6793 0 R (HD.5973) 6794 0 R (HD.5974) 6795 0 R (HD.5975) 6796 0 R (HD.5976) 6797 0 R (HD.5977) 6798 0 R (HD.5978) 6799 0 R (HD.5979) 6800 0 R (HD.598) 898 0 R (HD.5980) 6801 0 R (HD.5981) 6802 0 R (HD.5982) 6803 0 R (HD.5983) 6804 0 R (HD.5984) 6805 0 R (HD.5985) 6806 0 R (HD.5986) 6807 0 R (HD.5987) 6808 0 R (HD.5988) 6809 0 R (HD.5989) 6810 0 R (HD.599) 899 0 R (HD.5990) 6811 0 R (HD.5991) 6812 0 R (HD.5992) 6813 0 R (HD.5993) 6814 0 R (HD.5994) 6815 0 R ] /Limits [ (HD.5966) (HD.5994) ] >>
endobj
11922 0 obj
-<< /Names [ (HD.6941) 7850 0 R (HD.6942) 7851 0 R (HD.6943) 7852 0 R (HD.6944) 7853 0 R (HD.6945) 7854 0 R (HD.6946) 7855 0 R (HD.6947) 7856 0 R (HD.6948) 7857 0 R (HD.6949) 7858 0 R (HD.695) 1003 0 R (HD.6950) 7859 0 R (HD.6951) 7860 0 R (HD.6952) 7861 0 R (HD.6953) 7862 0 R (HD.6954) 7863 0 R (HD.6955) 7864 0 R (HD.6956) 7865 0 R (HD.6957) 7866 0 R (HD.6958) 7867 0 R (HD.6959) 7868 0 R (HD.696) 1004 0 R (HD.6960) 7869 0 R (HD.6961) 7870 0 R (HD.6962) 7871 0 R (HD.6963) 7872 0 R (HD.6964) 7873 0 R (HD.6965) 7874 0 R (HD.6966) 7875 0 R (HD.6967) 7876 0 R (HD.6968) 7877 0 R (HD.6969) 7878 0 R (HD.697) 1005 0 R ] /Limits [ (HD.6941) (HD.697) ] >>
+<< /Names [ (HD.5995) 6816 0 R (HD.5996) 6817 0 R (HD.5997) 6818 0 R (HD.5998) 6819 0 R (HD.5999) 6820 0 R (HD.6) 194 0 R (HD.60) 259 0 R (HD.600) 900 0 R (HD.6000) 6826 0 R (HD.6001) 6827 0 R (HD.6002) 6828 0 R (HD.6003) 6829 0 R (HD.6004) 6830 0 R (HD.6005) 6831 0 R (HD.6006) 6832 0 R (HD.6007) 6833 0 R (HD.6008) 6834 0 R (HD.6009) 6835 0 R (HD.601) 901 0 R (HD.6010) 6836 0 R (HD.6011) 6837 0 R (HD.6012) 6838 0 R (HD.6013) 6839 0 R (HD.6014) 6840 0 R (HD.6015) 6841 0 R (HD.6016) 6842 0 R (HD.6017) 6843 0 R (HD.6018) 6844 0 R (HD.6019) 6845 0 R (HD.602) 902 0 R (HD.6020) 6846 0 R (HD.6021) 6847 0 R ] /Limits [ (HD.5995) (HD.6021) ] >>
endobj
11923 0 obj
-<< /Names [ (HD.6970) 7879 0 R (HD.6971) 7880 0 R (HD.6972) 7887 0 R (HD.6973) 7888 0 R (HD.6974) 7889 0 R (HD.6975) 7890 0 R (HD.6976) 7891 0 R (HD.6977) 7892 0 R (HD.6978) 7893 0 R (HD.6979) 7894 0 R (HD.698) 1006 0 R (HD.6980) 7895 0 R (HD.6981) 7896 0 R (HD.6982) 7897 0 R (HD.6983) 7898 0 R (HD.6984) 7899 0 R (HD.6985) 7900 0 R (HD.6986) 7901 0 R (HD.6987) 7902 0 R (HD.6988) 7903 0 R (HD.6989) 7904 0 R (HD.699) 1007 0 R (HD.6990) 7905 0 R (HD.6991) 7906 0 R (HD.6992) 7907 0 R (HD.6993) 7908 0 R (HD.6994) 7909 0 R (HD.6995) 7910 0 R (HD.6996) 7911 0 R (HD.6997) 7912 0 R (HD.6998) 7913 0 R (HD.6999) 7914 0 R ] /Limits [ (HD.6970) (HD.6999) ] >>
+<< /Names [ (HD.6022) 6848 0 R (HD.6023) 6849 0 R (HD.6024) 6850 0 R (HD.6025) 6851 0 R (HD.6026) 6852 0 R (HD.6027) 6853 0 R (HD.6028) 6854 0 R (HD.6029) 6855 0 R (HD.603) 903 0 R (HD.6030) 6856 0 R (HD.6031) 6857 0 R (HD.6032) 6858 0 R (HD.6033) 6859 0 R (HD.6034) 6860 0 R (HD.6035) 6861 0 R (HD.6036) 6862 0 R (HD.6037) 6867 0 R (HD.6038) 6868 0 R (HD.6039) 6869 0 R (HD.604) 904 0 R (HD.6040) 6870 0 R (HD.6041) 6871 0 R (HD.6042) 6872 0 R (HD.6043) 6873 0 R (HD.6044) 6874 0 R (HD.6045) 6875 0 R (HD.6046) 6876 0 R (HD.6047) 6877 0 R (HD.6048) 6878 0 R (HD.6049) 6879 0 R (HD.605) 905 0 R (HD.6050) 6880 0 R ] /Limits [ (HD.6022) (HD.6050) ] >>
endobj
11924 0 obj
-<< /Names [ (HD.7) 195 0 R (HD.70) 270 0 R (HD.700) 1008 0 R (HD.7000) 7915 0 R (HD.7001) 7916 0 R (HD.7002) 7917 0 R (HD.7003) 7918 0 R (HD.7004) 7919 0 R (HD.7005) 7920 0 R (HD.7006) 7921 0 R (HD.7007) 7922 0 R (HD.7008) 7923 0 R (HD.7009) 7924 0 R (HD.701) 1013 0 R (HD.7010) 7925 0 R (HD.7011) 7926 0 R (HD.7012) 7927 0 R (HD.7013) 7928 0 R (HD.7014) 7929 0 R (HD.7015) 7930 0 R (HD.7016) 7931 0 R (HD.7017) 7932 0 R (HD.7018) 7933 0 R (HD.7019) 7938 0 R (HD.702) 1014 0 R (HD.7020) 7939 0 R (HD.7021) 7940 0 R (HD.7022) 7941 0 R (HD.7023) 7942 0 R (HD.7024) 7943 0 R (HD.7025) 7944 0 R (HD.7026) 7945 0 R ] /Limits [ (HD.7) (HD.7026) ] >>
+<< /Names [ (HD.6051) 6881 0 R (HD.6052) 6882 0 R (HD.6053) 6883 0 R (HD.6054) 6884 0 R (HD.6055) 6885 0 R (HD.6056) 6886 0 R (HD.6057) 6887 0 R (HD.6058) 6888 0 R (HD.6059) 6889 0 R (HD.606) 906 0 R (HD.6060) 6890 0 R (HD.6061) 6891 0 R (HD.6062) 6892 0 R (HD.6063) 6893 0 R (HD.6064) 6894 0 R (HD.6065) 6895 0 R (HD.6066) 6896 0 R (HD.6067) 6897 0 R (HD.6068) 6898 0 R (HD.6069) 6899 0 R (HD.607) 907 0 R (HD.6070) 6900 0 R (HD.6071) 6901 0 R (HD.6072) 6902 0 R (HD.6073) 6907 0 R (HD.6074) 6908 0 R (HD.6075) 6909 0 R (HD.6076) 6910 0 R (HD.6077) 6911 0 R (HD.6078) 6912 0 R (HD.6079) 6913 0 R (HD.608) 908 0 R ] /Limits [ (HD.6051) (HD.608) ] >>
endobj
11925 0 obj
-<< /Names [ (HD.7027) 7946 0 R (HD.7028) 7947 0 R (HD.7029) 7948 0 R (HD.703) 1015 0 R (HD.7030) 7949 0 R (HD.7031) 7950 0 R (HD.7032) 7951 0 R (HD.7033) 7952 0 R (HD.7034) 7953 0 R (HD.7035) 7954 0 R (HD.7036) 7955 0 R (HD.7037) 7956 0 R (HD.7038) 7957 0 R (HD.7039) 7958 0 R (HD.704) 1016 0 R (HD.7040) 7959 0 R (HD.7041) 7960 0 R (HD.7042) 7961 0 R (HD.7043) 7962 0 R (HD.7044) 7963 0 R (HD.7045) 7964 0 R (HD.7046) 7965 0 R (HD.7047) 7966 0 R (HD.7048) 7967 0 R (HD.7049) 7968 0 R (HD.705) 1017 0 R (HD.7050) 7969 0 R (HD.7051) 7970 0 R (HD.7052) 7971 0 R (HD.7053) 7972 0 R (HD.7054) 7973 0 R (HD.7055) 7974 0 R ] /Limits [ (HD.7027) (HD.7055) ] >>
+<< /Names [ (HD.6080) 6914 0 R (HD.6081) 6915 0 R (HD.6082) 6916 0 R (HD.6083) 6917 0 R (HD.6084) 6918 0 R (HD.6085) 6919 0 R (HD.6086) 6920 0 R (HD.6087) 6921 0 R (HD.6088) 6922 0 R (HD.6089) 6923 0 R (HD.609) 909 0 R (HD.6090) 6924 0 R (HD.6091) 6925 0 R (HD.6092) 6926 0 R (HD.6093) 6927 0 R (HD.6094) 6928 0 R (HD.6095) 6929 0 R (HD.6096) 6930 0 R (HD.6097) 6931 0 R (HD.6098) 6932 0 R (HD.6099) 6933 0 R (HD.61) 260 0 R (HD.610) 910 0 R (HD.6100) 6934 0 R (HD.6101) 6935 0 R (HD.6102) 6936 0 R (HD.6103) 6937 0 R (HD.6104) 6938 0 R (HD.6105) 6939 0 R (HD.6106) 6940 0 R (HD.6107) 6941 0 R (HD.6108) 6942 0 R ] /Limits [ (HD.6080) (HD.6108) ] >>
endobj
11926 0 obj
-<< /Names [ (HD.7056) 7975 0 R (HD.7057) 7976 0 R (HD.7058) 7977 0 R (HD.7059) 7978 0 R (HD.706) 1018 0 R (HD.7060) 7979 0 R (HD.7061) 7980 0 R (HD.7062) 7981 0 R (HD.7063) 7986 0 R (HD.7064) 7987 0 R (HD.7065) 7988 0 R (HD.7066) 7989 0 R (HD.7067) 7990 0 R (HD.7068) 7991 0 R (HD.7069) 7992 0 R (HD.707) 1019 0 R (HD.7070) 7993 0 R (HD.7071) 7994 0 R (HD.7072) 7995 0 R (HD.7073) 7996 0 R (HD.7074) 7997 0 R (HD.7075) 7998 0 R (HD.7076) 7999 0 R (HD.7077) 8000 0 R (HD.7078) 8001 0 R (HD.7079) 8002 0 R (HD.708) 1020 0 R (HD.7080) 8003 0 R (HD.7081) 8004 0 R (HD.7082) 8005 0 R (HD.7083) 8006 0 R (HD.7084) 8007 0 R ] /Limits [ (HD.7056) (HD.7084) ] >>
+<< /Names [ (HD.6109) 6943 0 R (HD.611) 911 0 R (HD.6110) 6944 0 R (HD.6111) 6945 0 R (HD.6112) 6946 0 R (HD.6113) 6947 0 R (HD.6114) 6948 0 R (HD.6115) 6949 0 R (HD.6116) 6954 0 R (HD.6117) 6955 0 R (HD.6118) 6956 0 R (HD.6119) 6957 0 R (HD.612) 912 0 R (HD.6120) 6958 0 R (HD.6121) 6959 0 R (HD.6122) 6960 0 R (HD.6123) 6961 0 R (HD.6124) 6962 0 R (HD.6125) 6963 0 R (HD.6126) 6964 0 R (HD.6127) 6965 0 R (HD.6128) 6966 0 R (HD.6129) 6967 0 R (HD.613) 913 0 R (HD.6130) 6968 0 R (HD.6131) 6969 0 R (HD.6132) 6970 0 R (HD.6133) 6971 0 R (HD.6134) 6972 0 R (HD.6135) 6973 0 R (HD.6136) 6974 0 R (HD.6137) 6975 0 R ] /Limits [ (HD.6109) (HD.6137) ] >>
endobj
11927 0 obj
-<< /Names [ (HD.7085) 8008 0 R (HD.7086) 8009 0 R (HD.7087) 8010 0 R (HD.7088) 8011 0 R (HD.7089) 8012 0 R (HD.709) 1021 0 R (HD.7090) 8013 0 R (HD.7091) 8014 0 R (HD.7092) 8015 0 R (HD.7093) 8016 0 R (HD.7094) 8017 0 R (HD.7095) 8018 0 R (HD.7096) 8019 0 R (HD.7097) 8020 0 R (HD.7098) 8021 0 R (HD.7099) 8022 0 R (HD.71) 271 0 R (HD.710) 1022 0 R (HD.7100) 8023 0 R (HD.7101) 8024 0 R (HD.7102) 8025 0 R (HD.7103) 8026 0 R (HD.7104) 8027 0 R (HD.7105) 8028 0 R (HD.7106) 8029 0 R (HD.7107) 8030 0 R (HD.7108) 8031 0 R (HD.7109) 8032 0 R (HD.711) 1023 0 R (HD.7110) 8033 0 R (HD.7111) 8034 0 R (HD.7112) 8035 0 R ] /Limits [ (HD.7085) (HD.7112) ] >>
+<< /Names [ (HD.6138) 6976 0 R (HD.6139) 6977 0 R (HD.614) 914 0 R (HD.6140) 6978 0 R (HD.6141) 6979 0 R (HD.6142) 6980 0 R (HD.6143) 6981 0 R (HD.6144) 6982 0 R (HD.6145) 6983 0 R (HD.6146) 6984 0 R (HD.6147) 6985 0 R (HD.6148) 6986 0 R (HD.6149) 6987 0 R (HD.615) 915 0 R (HD.6150) 6988 0 R (HD.6151) 6989 0 R (HD.6152) 6990 0 R (HD.6153) 6991 0 R (HD.6154) 6992 0 R (HD.6155) 6993 0 R (HD.6156) 6994 0 R (HD.6157) 6995 0 R (HD.6158) 6996 0 R (HD.6159) 6997 0 R (HD.616) 916 0 R (HD.6160) 6998 0 R (HD.6161) 6999 0 R (HD.6162) 7000 0 R (HD.6163) 7001 0 R (HD.6164) 7002 0 R (HD.6165) 7003 0 R (HD.6166) 7004 0 R ] /Limits [ (HD.6138) (HD.6166) ] >>
endobj
11928 0 obj
-<< /Names [ (HD.7113) 8036 0 R (HD.7114) 8041 0 R (HD.7115) 8042 0 R (HD.7116) 8043 0 R (HD.7117) 8044 0 R (HD.7118) 8045 0 R (HD.7119) 8046 0 R (HD.712) 1024 0 R (HD.7120) 8047 0 R (HD.7121) 8048 0 R (HD.7122) 8049 0 R (HD.7123) 8050 0 R (HD.7124) 8051 0 R (HD.7125) 8052 0 R (HD.7126) 8053 0 R (HD.7127) 8054 0 R (HD.7128) 8055 0 R (HD.7129) 8056 0 R (HD.713) 1025 0 R (HD.7130) 8057 0 R (HD.7131) 8058 0 R (HD.7132) 8059 0 R (HD.7133) 8060 0 R (HD.7134) 8061 0 R (HD.7135) 8062 0 R (HD.7136) 8063 0 R (HD.7137) 8064 0 R (HD.7138) 8065 0 R (HD.7139) 8066 0 R (HD.714) 1026 0 R (HD.7140) 8067 0 R (HD.7141) 8068 0 R ] /Limits [ (HD.7113) (HD.7141) ] >>
+<< /Names [ (HD.6167) 7005 0 R (HD.6168) 7006 0 R (HD.6169) 7007 0 R (HD.617) 917 0 R (HD.6170) 7008 0 R (HD.6171) 7009 0 R (HD.6172) 7010 0 R (HD.6173) 7015 0 R (HD.6174) 7016 0 R (HD.6175) 7017 0 R (HD.6176) 7018 0 R (HD.6177) 7019 0 R (HD.6178) 7020 0 R (HD.6179) 7021 0 R (HD.618) 918 0 R (HD.6180) 7022 0 R (HD.6181) 7023 0 R (HD.6182) 7024 0 R (HD.6183) 7025 0 R (HD.6184) 7026 0 R (HD.6185) 7027 0 R (HD.6186) 7028 0 R (HD.6187) 7029 0 R (HD.6188) 7030 0 R (HD.6189) 7031 0 R (HD.619) 919 0 R (HD.6190) 7032 0 R (HD.6191) 7033 0 R (HD.6192) 7034 0 R (HD.6193) 7035 0 R (HD.6194) 7036 0 R (HD.6195) 7037 0 R ] /Limits [ (HD.6167) (HD.6195) ] >>
endobj
11929 0 obj
-<< /Names [ (HD.7142) 8069 0 R (HD.7143) 8070 0 R (HD.7144) 8071 0 R (HD.7145) 8072 0 R (HD.7146) 8073 0 R (HD.7147) 8074 0 R (HD.7148) 8075 0 R (HD.7149) 8076 0 R (HD.715) 1027 0 R (HD.7150) 8077 0 R (HD.7151) 8082 0 R (HD.7152) 8083 0 R (HD.7153) 8084 0 R (HD.7154) 8085 0 R (HD.7155) 8086 0 R (HD.7156) 8087 0 R (HD.7157) 8088 0 R (HD.7158) 8089 0 R (HD.7159) 8090 0 R (HD.716) 1028 0 R (HD.7160) 8091 0 R (HD.7161) 8092 0 R (HD.7162) 8093 0 R (HD.7163) 8094 0 R (HD.7164) 8095 0 R (HD.7165) 8096 0 R (HD.7166) 8097 0 R (HD.7167) 8098 0 R (HD.7168) 8099 0 R (HD.7169) 8100 0 R (HD.717) 1029 0 R (HD.7170) 8101 0 R ] /Limits [ (HD.7142) (HD.7170) ] >>
+<< /Names [ (HD.6196) 7038 0 R (HD.6197) 7039 0 R (HD.6198) 7040 0 R (HD.6199) 7041 0 R (HD.62) 261 0 R (HD.620) 924 0 R (HD.6200) 7042 0 R (HD.6201) 7043 0 R (HD.6202) 7044 0 R (HD.6203) 7045 0 R (HD.6204) 7046 0 R (HD.6205) 7047 0 R (HD.6206) 7048 0 R (HD.6207) 7049 0 R (HD.6208) 7050 0 R (HD.6209) 7051 0 R (HD.621) 925 0 R (HD.6210) 7052 0 R (HD.6211) 7053 0 R (HD.6212) 7054 0 R (HD.6213) 7055 0 R (HD.6214) 7056 0 R (HD.6215) 7057 0 R (HD.6216) 7058 0 R (HD.6217) 7059 0 R (HD.6218) 7060 0 R (HD.6219) 7061 0 R (HD.622) 926 0 R (HD.6220) 7062 0 R (HD.6221) 7063 0 R (HD.6222) 7064 0 R (HD.6223) 7065 0 R ] /Limits [ (HD.6196) (HD.6223) ] >>
endobj
11930 0 obj
-<< /Names [ (HD.7171) 8102 0 R (HD.7172) 8103 0 R (HD.7173) 8104 0 R (HD.7174) 8105 0 R (HD.7175) 8106 0 R (HD.7176) 8107 0 R (HD.7177) 8108 0 R (HD.7178) 8109 0 R (HD.7179) 8110 0 R (HD.718) 1030 0 R (HD.7180) 8111 0 R (HD.7181) 8112 0 R (HD.7182) 8113 0 R (HD.7183) 8114 0 R (HD.7184) 8115 0 R (HD.7185) 8116 0 R (HD.7186) 8121 0 R (HD.7187) 8122 0 R (HD.7188) 8123 0 R (HD.7189) 8124 0 R (HD.719) 1031 0 R (HD.7190) 8125 0 R (HD.7191) 8126 0 R (HD.7192) 8127 0 R (HD.7193) 8128 0 R (HD.7194) 8129 0 R (HD.7195) 8130 0 R (HD.7196) 8131 0 R (HD.7197) 8132 0 R (HD.7198) 8133 0 R (HD.7199) 8134 0 R (HD.72) 272 0 R ] /Limits [ (HD.7171) (HD.72) ] >>
+<< /Names [ (HD.6224) 7066 0 R (HD.6225) 7067 0 R (HD.6226) 7068 0 R (HD.6227) 7069 0 R (HD.6228) 7070 0 R (HD.6229) 7071 0 R (HD.623) 927 0 R (HD.6230) 7072 0 R (HD.6231) 7077 0 R (HD.6232) 7078 0 R (HD.6233) 7079 0 R (HD.6234) 7080 0 R (HD.6235) 7081 0 R (HD.6236) 7082 0 R (HD.6237) 7083 0 R (HD.6238) 7084 0 R (HD.6239) 7085 0 R (HD.624) 928 0 R (HD.6240) 7086 0 R (HD.6241) 7087 0 R (HD.6242) 7088 0 R (HD.6243) 7089 0 R (HD.6244) 7090 0 R (HD.6245) 7091 0 R (HD.6246) 7092 0 R (HD.6247) 7093 0 R (HD.6248) 7094 0 R (HD.6249) 7095 0 R (HD.625) 929 0 R (HD.6250) 7096 0 R (HD.6251) 7097 0 R (HD.6252) 7098 0 R ] /Limits [ (HD.6224) (HD.6252) ] >>
endobj
11931 0 obj
-<< /Names [ (HD.720) 1032 0 R (HD.7200) 8135 0 R (HD.7201) 8136 0 R (HD.7202) 8137 0 R (HD.7203) 8138 0 R (HD.7204) 8139 0 R (HD.7205) 8140 0 R (HD.7206) 8141 0 R (HD.7207) 8142 0 R (HD.7208) 8143 0 R (HD.7209) 8144 0 R (HD.721) 1033 0 R (HD.7210) 8145 0 R (HD.7211) 8146 0 R (HD.7212) 8147 0 R (HD.7213) 8148 0 R (HD.7214) 8149 0 R (HD.7215) 8150 0 R (HD.7216) 8151 0 R (HD.7217) 8152 0 R (HD.7218) 8153 0 R (HD.7219) 8154 0 R (HD.722) 1034 0 R (HD.7220) 8155 0 R (HD.7221) 8156 0 R (HD.7222) 8161 0 R (HD.7223) 8162 0 R (HD.7224) 8163 0 R (HD.7225) 8164 0 R (HD.7226) 8165 0 R (HD.7227) 8166 0 R (HD.7228) 8167 0 R ] /Limits [ (HD.720) (HD.7228) ] >>
+<< /Names [ (HD.6253) 7099 0 R (HD.6254) 7100 0 R (HD.6255) 7101 0 R (HD.6256) 7102 0 R (HD.6257) 7103 0 R (HD.6258) 7104 0 R (HD.6259) 7105 0 R (HD.626) 930 0 R (HD.6260) 7106 0 R (HD.6261) 7107 0 R (HD.6262) 7108 0 R (HD.6263) 7109 0 R (HD.6264) 7110 0 R (HD.6265) 7111 0 R (HD.6266) 7112 0 R (HD.6267) 7113 0 R (HD.6268) 7114 0 R (HD.6269) 7115 0 R (HD.627) 931 0 R (HD.6270) 7116 0 R (HD.6271) 7117 0 R (HD.6272) 7118 0 R (HD.6273) 7119 0 R (HD.6274) 7120 0 R (HD.6275) 7121 0 R (HD.6276) 7126 0 R (HD.6277) 7127 0 R (HD.6278) 7128 0 R (HD.6279) 7129 0 R (HD.628) 932 0 R (HD.6280) 7130 0 R (HD.6281) 7131 0 R ] /Limits [ (HD.6253) (HD.6281) ] >>
endobj
11932 0 obj
-<< /Names [ (HD.7229) 8168 0 R (HD.723) 1035 0 R (HD.7230) 8169 0 R (HD.7231) 8170 0 R (HD.7232) 8171 0 R (HD.7233) 8172 0 R (HD.7234) 8173 0 R (HD.7235) 8174 0 R (HD.7236) 8175 0 R (HD.7237) 8176 0 R (HD.7238) 8177 0 R (HD.7239) 8178 0 R (HD.724) 1036 0 R (HD.7240) 8179 0 R (HD.7241) 8180 0 R (HD.7242) 8181 0 R (HD.7243) 8182 0 R (HD.7244) 8183 0 R (HD.7245) 8184 0 R (HD.7246) 8185 0 R (HD.7247) 8186 0 R (HD.7248) 8187 0 R (HD.7249) 8188 0 R (HD.725) 1037 0 R (HD.7250) 8189 0 R (HD.7251) 8190 0 R (HD.7252) 8191 0 R (HD.7253) 8192 0 R (HD.7254) 8193 0 R (HD.7255) 8194 0 R (HD.7256) 8195 0 R (HD.7257) 8196 0 R ] /Limits [ (HD.7229) (HD.7257) ] >>
+<< /Names [ (HD.6282) 7132 0 R (HD.6283) 7133 0 R (HD.6284) 7134 0 R (HD.6285) 7135 0 R (HD.6286) 7136 0 R (HD.6287) 7137 0 R (HD.6288) 7138 0 R (HD.6289) 7139 0 R (HD.629) 933 0 R (HD.6290) 7140 0 R (HD.6291) 7141 0 R (HD.6292) 7142 0 R (HD.6293) 7143 0 R (HD.6294) 7144 0 R (HD.6295) 7145 0 R (HD.6296) 7146 0 R (HD.6297) 7147 0 R (HD.6298) 7148 0 R (HD.6299) 7149 0 R (HD.63) 262 0 R (HD.630) 934 0 R (HD.6300) 7150 0 R (HD.6301) 7151 0 R (HD.6302) 7152 0 R (HD.6303) 7153 0 R (HD.6304) 7154 0 R (HD.6305) 7155 0 R (HD.6306) 7156 0 R (HD.6307) 7157 0 R (HD.6308) 7158 0 R (HD.6309) 7159 0 R (HD.631) 935 0 R ] /Limits [ (HD.6282) (HD.631) ] >>
endobj
11933 0 obj
-<< /Names [ (HD.7258) 8197 0 R (HD.7259) 8198 0 R (HD.726) 1038 0 R (HD.7260) 8199 0 R (HD.7261) 8200 0 R (HD.7262) 8201 0 R (HD.7263) 8202 0 R (HD.7264) 8203 0 R (HD.7265) 8204 0 R (HD.7266) 8205 0 R (HD.7267) 8210 0 R (HD.7268) 8211 0 R (HD.7269) 8212 0 R (HD.727) 1039 0 R (HD.7270) 8213 0 R (HD.7271) 8214 0 R (HD.7272) 8215 0 R (HD.7273) 8216 0 R (HD.7274) 8217 0 R (HD.7275) 8218 0 R (HD.7276) 8219 0 R (HD.7277) 8220 0 R (HD.7278) 8221 0 R (HD.7279) 8222 0 R (HD.728) 1040 0 R (HD.7280) 8223 0 R (HD.7281) 8224 0 R (HD.7282) 8225 0 R (HD.7283) 8226 0 R (HD.7284) 8227 0 R (HD.7285) 8228 0 R (HD.7286) 8229 0 R ] /Limits [ (HD.7258) (HD.7286) ] >>
+<< /Names [ (HD.6310) 7160 0 R (HD.6311) 7161 0 R (HD.6312) 7162 0 R (HD.6313) 7163 0 R (HD.6314) 7164 0 R (HD.6315) 7165 0 R (HD.6316) 7166 0 R (HD.6317) 7167 0 R (HD.6318) 7168 0 R (HD.6319) 7169 0 R (HD.632) 936 0 R (HD.6320) 7170 0 R (HD.6321) 7171 0 R (HD.6322) 7172 0 R (HD.6323) 7173 0 R (HD.6324) 7174 0 R (HD.6325) 7175 0 R (HD.6326) 7176 0 R (HD.6327) 7177 0 R (HD.6328) 7182 0 R (HD.6329) 7183 0 R (HD.633) 937 0 R (HD.6330) 7184 0 R (HD.6331) 7185 0 R (HD.6332) 7186 0 R (HD.6333) 7187 0 R (HD.6334) 7188 0 R (HD.6335) 7189 0 R (HD.6336) 7190 0 R (HD.6337) 7191 0 R (HD.6338) 7192 0 R (HD.6339) 7193 0 R ] /Limits [ (HD.6310) (HD.6339) ] >>
endobj
11934 0 obj
-<< /Names [ (HD.7287) 8230 0 R (HD.7288) 8231 0 R (HD.7289) 8232 0 R (HD.729) 1041 0 R (HD.7290) 8233 0 R (HD.7291) 8234 0 R (HD.7292) 8235 0 R (HD.7293) 8236 0 R (HD.7294) 8237 0 R (HD.7295) 8238 0 R (HD.7296) 8239 0 R (HD.7297) 8240 0 R (HD.7298) 8241 0 R (HD.7299) 8242 0 R (HD.73) 273 0 R (HD.730) 1042 0 R (HD.7300) 8243 0 R (HD.7301) 8244 0 R (HD.7302) 8245 0 R (HD.7303) 8246 0 R (HD.7304) 8247 0 R (HD.7305) 8248 0 R (HD.7306) 8249 0 R (HD.7307) 8250 0 R (HD.7308) 8251 0 R (HD.7309) 8252 0 R (HD.731) 1043 0 R (HD.7310) 8253 0 R (HD.7311) 8254 0 R (HD.7312) 8255 0 R (HD.7313) 8256 0 R (HD.7314) 8257 0 R ] /Limits [ (HD.7287) (HD.7314) ] >>
+<< /Names [ (HD.634) 938 0 R (HD.6340) 7194 0 R (HD.6341) 7195 0 R (HD.6342) 7196 0 R (HD.6343) 7197 0 R (HD.6344) 7198 0 R (HD.6345) 7199 0 R (HD.6346) 7200 0 R (HD.6347) 7201 0 R (HD.6348) 7202 0 R (HD.6349) 7203 0 R (HD.635) 939 0 R (HD.6350) 7204 0 R (HD.6351) 7205 0 R (HD.6352) 7206 0 R (HD.6353) 7207 0 R (HD.6354) 7208 0 R (HD.6355) 7209 0 R (HD.6356) 7210 0 R (HD.6357) 7211 0 R (HD.6358) 7212 0 R (HD.6359) 7213 0 R (HD.636) 940 0 R (HD.6360) 7214 0 R (HD.6361) 7215 0 R (HD.6362) 7216 0 R (HD.6363) 7217 0 R (HD.6364) 7218 0 R (HD.6365) 7219 0 R (HD.6366) 7220 0 R (HD.6367) 7221 0 R (HD.6368) 7222 0 R ] /Limits [ (HD.634) (HD.6368) ] >>
endobj
11935 0 obj
-<< /Names [ (HD.7315) 8258 0 R (HD.7316) 8259 0 R (HD.7317) 8260 0 R (HD.7318) 8261 0 R (HD.7319) 8262 0 R (HD.732) 1044 0 R (HD.7320) 8263 0 R (HD.7321) 8264 0 R (HD.7322) 8269 0 R (HD.7323) 8270 0 R (HD.7324) 8271 0 R (HD.7325) 8272 0 R (HD.7326) 8273 0 R (HD.7327) 8274 0 R (HD.7328) 8275 0 R (HD.7329) 8276 0 R (HD.733) 1045 0 R (HD.7330) 8277 0 R (HD.7331) 8278 0 R (HD.7332) 8279 0 R (HD.7333) 8280 0 R (HD.7334) 8281 0 R (HD.7335) 8282 0 R (HD.7336) 8283 0 R (HD.7337) 8284 0 R (HD.7338) 8285 0 R (HD.7339) 8286 0 R (HD.734) 1046 0 R (HD.7340) 8287 0 R (HD.7341) 8288 0 R (HD.7342) 8289 0 R (HD.7343) 8290 0 R ] /Limits [ (HD.7315) (HD.7343) ] >>
+<< /Names [ (HD.6369) 7223 0 R (HD.637) 941 0 R (HD.6370) 7224 0 R (HD.6371) 7225 0 R (HD.6372) 7226 0 R (HD.6373) 7227 0 R (HD.6374) 7228 0 R (HD.6375) 7229 0 R (HD.6376) 7230 0 R (HD.6377) 7231 0 R (HD.6378) 7232 0 R (HD.6379) 7233 0 R (HD.638) 942 0 R (HD.6380) 7234 0 R (HD.6381) 7235 0 R (HD.6382) 7236 0 R (HD.6383) 7237 0 R (HD.6384) 7238 0 R (HD.6385) 7239 0 R (HD.6386) 7240 0 R (HD.6387) 7245 0 R (HD.6388) 7246 0 R (HD.6389) 7247 0 R (HD.639) 943 0 R (HD.6390) 7248 0 R (HD.6391) 7249 0 R (HD.6392) 7250 0 R (HD.6393) 7251 0 R (HD.6394) 7252 0 R (HD.6395) 7253 0 R (HD.6396) 7254 0 R (HD.6397) 7255 0 R ] /Limits [ (HD.6369) (HD.6397) ] >>
endobj
11936 0 obj
-<< /Names [ (HD.7344) 8291 0 R (HD.7345) 8292 0 R (HD.7346) 8293 0 R (HD.7347) 8294 0 R (HD.7348) 8295 0 R (HD.7349) 8296 0 R (HD.735) 1047 0 R (HD.7350) 8297 0 R (HD.7351) 8298 0 R (HD.7352) 8299 0 R (HD.7353) 8300 0 R (HD.7354) 8301 0 R (HD.7355) 8302 0 R (HD.7356) 8303 0 R (HD.7357) 8304 0 R (HD.7358) 8305 0 R (HD.7359) 8306 0 R (HD.736) 1048 0 R (HD.7360) 8307 0 R (HD.7361) 8308 0 R (HD.7362) 8309 0 R (HD.7363) 8310 0 R (HD.7364) 8311 0 R (HD.7365) 8312 0 R (HD.7366) 8313 0 R (HD.7367) 8319 0 R (HD.7368) 8320 0 R (HD.7369) 8321 0 R (HD.737) 1049 0 R (HD.7370) 8322 0 R (HD.7371) 8323 0 R (HD.7372) 8324 0 R ] /Limits [ (HD.7344) (HD.7372) ] >>
+<< /Names [ (HD.6398) 7256 0 R (HD.6399) 7257 0 R (HD.64) 263 0 R (HD.640) 944 0 R (HD.6400) 7258 0 R (HD.6401) 7259 0 R (HD.6402) 7260 0 R (HD.6403) 7261 0 R (HD.6404) 7262 0 R (HD.6405) 7263 0 R (HD.6406) 7264 0 R (HD.6407) 7265 0 R (HD.6408) 7266 0 R (HD.6409) 7267 0 R (HD.641) 945 0 R (HD.6410) 7268 0 R (HD.6411) 7269 0 R (HD.6412) 7270 0 R (HD.6413) 7271 0 R (HD.6414) 7272 0 R (HD.6415) 7273 0 R (HD.6416) 7274 0 R (HD.6417) 7275 0 R (HD.6418) 7276 0 R (HD.6419) 7277 0 R (HD.642) 946 0 R (HD.6420) 7278 0 R (HD.6421) 7279 0 R (HD.6422) 7280 0 R (HD.6423) 7281 0 R (HD.6424) 7282 0 R (HD.6425) 7283 0 R ] /Limits [ (HD.6398) (HD.6425) ] >>
endobj
11937 0 obj
-<< /Names [ (HD.7373) 8325 0 R (HD.7374) 8326 0 R (HD.7375) 8327 0 R (HD.7376) 8328 0 R (HD.7377) 8329 0 R (HD.7378) 8330 0 R (HD.7379) 8331 0 R (HD.738) 1050 0 R (HD.7380) 8332 0 R (HD.7381) 8333 0 R (HD.7382) 8334 0 R (HD.7383) 8335 0 R (HD.7384) 8336 0 R (HD.7385) 8337 0 R (HD.7386) 8338 0 R (HD.7387) 8339 0 R (HD.7388) 8340 0 R (HD.7389) 8341 0 R (HD.739) 1051 0 R (HD.7390) 8342 0 R (HD.7391) 8343 0 R (HD.7392) 8344 0 R (HD.7393) 8345 0 R (HD.7394) 8346 0 R (HD.7395) 8347 0 R (HD.7396) 8348 0 R (HD.7397) 8349 0 R (HD.7398) 8350 0 R (HD.7399) 8351 0 R (HD.74) 274 0 R (HD.740) 1052 0 R (HD.7400) 8352 0 R ] /Limits [ (HD.7373) (HD.7400) ] >>
+<< /Names [ (HD.6426) 7284 0 R (HD.6427) 7285 0 R (HD.6428) 7290 0 R (HD.6429) 7291 0 R (HD.643) 947 0 R (HD.6430) 7292 0 R (HD.6431) 7293 0 R (HD.6432) 7294 0 R (HD.6433) 7295 0 R (HD.6434) 7296 0 R (HD.6435) 7297 0 R (HD.6436) 7298 0 R (HD.6437) 7299 0 R (HD.6438) 7300 0 R (HD.6439) 7301 0 R (HD.644) 948 0 R (HD.6440) 7302 0 R (HD.6441) 7303 0 R (HD.6442) 7304 0 R (HD.6443) 7305 0 R (HD.6444) 7306 0 R (HD.6445) 7307 0 R (HD.6446) 7308 0 R (HD.6447) 7309 0 R (HD.6448) 7310 0 R (HD.6449) 7311 0 R (HD.645) 949 0 R (HD.6450) 7312 0 R (HD.6451) 7313 0 R (HD.6452) 7314 0 R (HD.6453) 7315 0 R (HD.6454) 7316 0 R ] /Limits [ (HD.6426) (HD.6454) ] >>
endobj
11938 0 obj
-<< /Names [ (HD.7401) 8353 0 R (HD.7402) 8354 0 R (HD.7403) 8355 0 R (HD.7404) 8356 0 R (HD.7405) 8357 0 R (HD.7406) 8358 0 R (HD.7407) 8359 0 R (HD.7408) 8360 0 R (HD.7409) 8361 0 R (HD.741) 1053 0 R (HD.7410) 8362 0 R (HD.7411) 8363 0 R (HD.7412) 8364 0 R (HD.7413) 8365 0 R (HD.7414) 8366 0 R (HD.7415) 8367 0 R (HD.7416) 8368 0 R (HD.7417) 8369 0 R (HD.7418) 8370 0 R (HD.7419) 8371 0 R (HD.742) 1058 0 R (HD.7420) 8372 0 R (HD.7421) 8373 0 R (HD.7422) 8374 0 R (HD.7423) 8379 0 R (HD.7424) 8380 0 R (HD.7425) 8381 0 R (HD.7426) 8382 0 R (HD.7427) 8383 0 R (HD.7428) 8384 0 R (HD.7429) 8385 0 R (HD.743) 1059 0 R ] /Limits [ (HD.7401) (HD.743) ] >>
+<< /Names [ (HD.6455) 7317 0 R (HD.6456) 7318 0 R (HD.6457) 7319 0 R (HD.6458) 7320 0 R (HD.6459) 7321 0 R (HD.646) 950 0 R (HD.6460) 7322 0 R (HD.6461) 7323 0 R (HD.6462) 7324 0 R (HD.6463) 7325 0 R (HD.6464) 7326 0 R (HD.6465) 7327 0 R (HD.6466) 7328 0 R (HD.6467) 7329 0 R (HD.6468) 7330 0 R (HD.6469) 7331 0 R (HD.647) 951 0 R (HD.6470) 7332 0 R (HD.6471) 7333 0 R (HD.6472) 7334 0 R (HD.6473) 7335 0 R (HD.6474) 7336 0 R (HD.6475) 7342 0 R (HD.6476) 7343 0 R (HD.6477) 7344 0 R (HD.6478) 7345 0 R (HD.6479) 7346 0 R (HD.648) 952 0 R (HD.6480) 7347 0 R (HD.6481) 7348 0 R (HD.6482) 7349 0 R (HD.6483) 7350 0 R ] /Limits [ (HD.6455) (HD.6483) ] >>
endobj
11939 0 obj
-<< /Names [ (HD.7430) 8386 0 R (HD.7431) 8387 0 R (HD.7432) 8388 0 R (HD.7433) 8389 0 R (HD.7434) 8390 0 R (HD.7435) 8391 0 R (HD.7436) 8392 0 R (HD.7437) 8393 0 R (HD.7438) 8394 0 R (HD.7439) 8395 0 R (HD.744) 1060 0 R (HD.7440) 8396 0 R (HD.7441) 8397 0 R (HD.7442) 8398 0 R (HD.7443) 8399 0 R (HD.7444) 8400 0 R (HD.7445) 8401 0 R (HD.7446) 8402 0 R (HD.7447) 8403 0 R (HD.7448) 8404 0 R (HD.7449) 8405 0 R (HD.745) 1061 0 R (HD.7450) 8406 0 R (HD.7451) 8407 0 R (HD.7452) 8408 0 R (HD.7453) 8409 0 R (HD.7454) 8410 0 R (HD.7455) 8411 0 R (HD.7456) 8412 0 R (HD.7457) 8413 0 R (HD.7458) 8414 0 R (HD.7459) 8415 0 R ] /Limits [ (HD.7430) (HD.7459) ] >>
+<< /Names [ (HD.6484) 7351 0 R (HD.6485) 7352 0 R (HD.6486) 7353 0 R (HD.6487) 7354 0 R (HD.6488) 7355 0 R (HD.6489) 7356 0 R (HD.649) 953 0 R (HD.6490) 7357 0 R (HD.6491) 7358 0 R (HD.6492) 7359 0 R (HD.6493) 7360 0 R (HD.6494) 7361 0 R (HD.6495) 7362 0 R (HD.6496) 7363 0 R (HD.6497) 7364 0 R (HD.6498) 7365 0 R (HD.6499) 7366 0 R (HD.65) 265 0 R (HD.650) 954 0 R (HD.6500) 7367 0 R (HD.6501) 7368 0 R (HD.6502) 7369 0 R (HD.6503) 7370 0 R (HD.6504) 7371 0 R (HD.6505) 7372 0 R (HD.6506) 7373 0 R (HD.6507) 7374 0 R (HD.6508) 7375 0 R (HD.6509) 7376 0 R (HD.651) 955 0 R (HD.6510) 7377 0 R (HD.6511) 7378 0 R ] /Limits [ (HD.6484) (HD.6511) ] >>
endobj
11940 0 obj
-<< /Names [ (HD.746) 1062 0 R (HD.7460) 8416 0 R (HD.7461) 8417 0 R (HD.7462) 8418 0 R (HD.7463) 8419 0 R (HD.7464) 8420 0 R (HD.7465) 8421 0 R (HD.7466) 8422 0 R (HD.7467) 8423 0 R (HD.7468) 8424 0 R (HD.7469) 8425 0 R (HD.747) 1063 0 R (HD.7470) 8426 0 R (HD.7471) 8427 0 R (HD.7472) 8428 0 R (HD.7473) 8429 0 R (HD.7474) 8430 0 R (HD.7475) 8431 0 R (HD.7476) 8432 0 R (HD.7477) 8433 0 R (HD.7478) 8434 0 R (HD.7479) 8435 0 R (HD.748) 1064 0 R (HD.7480) 8436 0 R (HD.7481) 8441 0 R (HD.7482) 8442 0 R (HD.7483) 8443 0 R (HD.7484) 8444 0 R (HD.7485) 8445 0 R (HD.7486) 8446 0 R (HD.7487) 8447 0 R (HD.7488) 8448 0 R ] /Limits [ (HD.746) (HD.7488) ] >>
+<< /Names [ (HD.6512) 7379 0 R (HD.6513) 7380 0 R (HD.6514) 7381 0 R (HD.6515) 7382 0 R (HD.6516) 7383 0 R (HD.6517) 7384 0 R (HD.6518) 7385 0 R (HD.6519) 7386 0 R (HD.652) 956 0 R (HD.6520) 7387 0 R (HD.6521) 7392 0 R (HD.6522) 7393 0 R (HD.6523) 7394 0 R (HD.6524) 7395 0 R (HD.6525) 7396 0 R (HD.6526) 7397 0 R (HD.6527) 7398 0 R (HD.6528) 7399 0 R (HD.6529) 7400 0 R (HD.653) 957 0 R (HD.6530) 7401 0 R (HD.6531) 7402 0 R (HD.6532) 7403 0 R (HD.6533) 7404 0 R (HD.6534) 7405 0 R (HD.6535) 7406 0 R (HD.6536) 7407 0 R (HD.6537) 7408 0 R (HD.6538) 7409 0 R (HD.6539) 7410 0 R (HD.654) 958 0 R (HD.6540) 7411 0 R ] /Limits [ (HD.6512) (HD.6540) ] >>
endobj
11941 0 obj
-<< /Names [ (HD.7489) 8449 0 R (HD.749) 1065 0 R (HD.7490) 8450 0 R (HD.7491) 8451 0 R (HD.7492) 8452 0 R (HD.7493) 8453 0 R (HD.7494) 8454 0 R (HD.7495) 8455 0 R (HD.7496) 8456 0 R (HD.7497) 8457 0 R (HD.7498) 8458 0 R (HD.7499) 8459 0 R (HD.75) 275 0 R (HD.750) 1066 0 R (HD.7500) 8460 0 R (HD.7501) 8461 0 R (HD.7502) 8462 0 R (HD.7503) 8463 0 R (HD.7504) 8464 0 R (HD.7505) 8465 0 R (HD.7506) 8466 0 R (HD.7507) 8467 0 R (HD.7508) 8468 0 R (HD.7509) 8469 0 R (HD.751) 1067 0 R (HD.7510) 8470 0 R (HD.7511) 8471 0 R (HD.7512) 8472 0 R (HD.7513) 8473 0 R (HD.7514) 8474 0 R (HD.7515) 8475 0 R (HD.7516) 8476 0 R ] /Limits [ (HD.7489) (HD.7516) ] >>
+<< /Names [ (HD.6541) 7412 0 R (HD.6542) 7413 0 R (HD.6543) 7414 0 R (HD.6544) 7415 0 R (HD.6545) 7416 0 R (HD.6546) 7417 0 R (HD.6547) 7418 0 R (HD.6548) 7419 0 R (HD.6549) 7420 0 R (HD.655) 959 0 R (HD.6550) 7421 0 R (HD.6551) 7422 0 R (HD.6552) 7423 0 R (HD.6553) 7424 0 R (HD.6554) 7425 0 R (HD.6555) 7426 0 R (HD.6556) 7427 0 R (HD.6557) 7428 0 R (HD.6558) 7429 0 R (HD.6559) 7430 0 R (HD.656) 960 0 R (HD.6560) 7431 0 R (HD.6561) 7432 0 R (HD.6562) 7433 0 R (HD.6563) 7434 0 R (HD.6564) 7435 0 R (HD.6565) 7436 0 R (HD.6566) 7437 0 R (HD.6567) 7438 0 R (HD.6568) 7439 0 R (HD.6569) 7440 0 R (HD.657) 961 0 R ] /Limits [ (HD.6541) (HD.657) ] >>
endobj
11942 0 obj
-<< /Names [ (HD.7517) 8477 0 R (HD.7518) 8478 0 R (HD.7519) 8479 0 R (HD.752) 1068 0 R (HD.7520) 8480 0 R (HD.7521) 8481 0 R (HD.7522) 8482 0 R (HD.7523) 8483 0 R (HD.7524) 8484 0 R (HD.7525) 8485 0 R (HD.7526) 8486 0 R (HD.7527) 8487 0 R (HD.7528) 8488 0 R (HD.7529) 8493 0 R (HD.753) 1069 0 R (HD.7530) 8494 0 R (HD.7531) 8495 0 R (HD.7532) 8496 0 R (HD.7533) 8497 0 R (HD.7534) 8498 0 R (HD.7535) 8499 0 R (HD.7536) 8500 0 R (HD.7537) 8501 0 R (HD.7538) 8502 0 R (HD.7539) 8503 0 R (HD.754) 1070 0 R (HD.7540) 8504 0 R (HD.7541) 8505 0 R (HD.7542) 8506 0 R (HD.7543) 8507 0 R (HD.7544) 8508 0 R (HD.7545) 8509 0 R ] /Limits [ (HD.7517) (HD.7545) ] >>
+<< /Names [ (HD.6570) 7441 0 R (HD.6571) 7442 0 R (HD.6572) 7447 0 R (HD.6573) 7448 0 R (HD.6574) 7449 0 R (HD.6575) 7450 0 R (HD.6576) 7451 0 R (HD.6577) 7452 0 R (HD.6578) 7453 0 R (HD.6579) 7454 0 R (HD.658) 962 0 R (HD.6580) 7455 0 R (HD.6581) 7456 0 R (HD.6582) 7457 0 R (HD.6583) 7458 0 R (HD.6584) 7459 0 R (HD.6585) 7460 0 R (HD.6586) 7461 0 R (HD.6587) 7462 0 R (HD.6588) 7463 0 R (HD.6589) 7464 0 R (HD.659) 963 0 R (HD.6590) 7465 0 R (HD.6591) 7466 0 R (HD.6592) 7467 0 R (HD.6593) 7468 0 R (HD.6594) 7469 0 R (HD.6595) 7470 0 R (HD.6596) 7471 0 R (HD.6597) 7472 0 R (HD.6598) 7473 0 R (HD.6599) 7474 0 R ] /Limits [ (HD.6570) (HD.6599) ] >>
endobj
11943 0 obj
-<< /Names [ (HD.7546) 8510 0 R (HD.7547) 8511 0 R (HD.7548) 8512 0 R (HD.7549) 8513 0 R (HD.755) 1071 0 R (HD.7550) 8514 0 R (HD.7551) 8515 0 R (HD.7552) 8516 0 R (HD.7553) 8517 0 R (HD.7554) 8518 0 R (HD.7555) 8519 0 R (HD.7556) 8520 0 R (HD.7557) 8521 0 R (HD.7558) 8522 0 R (HD.7559) 8523 0 R (HD.756) 1072 0 R (HD.7560) 8524 0 R (HD.7561) 8525 0 R (HD.7562) 8526 0 R (HD.7563) 8527 0 R (HD.7564) 8528 0 R (HD.7565) 8529 0 R (HD.7566) 8530 0 R (HD.7567) 8531 0 R (HD.7568) 8532 0 R (HD.7569) 8533 0 R (HD.757) 1073 0 R (HD.7570) 8534 0 R (HD.7571) 8535 0 R (HD.7572) 8536 0 R (HD.7573) 8537 0 R (HD.7574) 8538 0 R ] /Limits [ (HD.7546) (HD.7574) ] >>
+<< /Names [ (HD.66) 266 0 R (HD.660) 968 0 R (HD.6600) 7475 0 R (HD.6601) 7476 0 R (HD.6602) 7477 0 R (HD.6603) 7478 0 R (HD.6604) 7479 0 R (HD.6605) 7480 0 R (HD.6606) 7481 0 R (HD.6607) 7482 0 R (HD.6608) 7483 0 R (HD.6609) 7484 0 R (HD.661) 969 0 R (HD.6610) 7485 0 R (HD.6611) 7486 0 R (HD.6612) 7487 0 R (HD.6613) 7492 0 R (HD.6614) 7493 0 R (HD.6615) 7494 0 R (HD.6616) 7495 0 R (HD.6617) 7496 0 R (HD.6618) 7497 0 R (HD.6619) 7498 0 R (HD.662) 970 0 R (HD.6620) 7499 0 R (HD.6621) 7500 0 R (HD.6622) 7501 0 R (HD.6623) 7502 0 R (HD.6624) 7503 0 R (HD.6625) 7504 0 R (HD.6626) 7505 0 R (HD.6627) 7506 0 R ] /Limits [ (HD.66) (HD.6627) ] >>
endobj
11944 0 obj
-<< /Names [ (HD.7575) 8539 0 R (HD.7576) 8540 0 R (HD.7577) 8541 0 R (HD.7578) 8542 0 R (HD.7579) 8547 0 R (HD.758) 1074 0 R (HD.7580) 8548 0 R (HD.7581) 8549 0 R (HD.7582) 8550 0 R (HD.7583) 8551 0 R (HD.7584) 8552 0 R (HD.7585) 8553 0 R (HD.7586) 8554 0 R (HD.7587) 8555 0 R (HD.7588) 8556 0 R (HD.7589) 8557 0 R (HD.759) 1075 0 R (HD.7590) 8558 0 R (HD.7591) 8559 0 R (HD.7592) 8560 0 R (HD.7593) 8561 0 R (HD.7594) 8562 0 R (HD.7595) 8563 0 R (HD.7596) 8564 0 R (HD.7597) 8565 0 R (HD.7598) 8566 0 R (HD.7599) 8567 0 R (HD.76) 276 0 R (HD.760) 1076 0 R (HD.7600) 8568 0 R (HD.7601) 8569 0 R (HD.7602) 8570 0 R ] /Limits [ (HD.7575) (HD.7602) ] >>
+<< /Names [ (HD.6628) 7507 0 R (HD.6629) 7508 0 R (HD.663) 971 0 R (HD.6630) 7509 0 R (HD.6631) 7510 0 R (HD.6632) 7511 0 R (HD.6633) 7512 0 R (HD.6634) 7513 0 R (HD.6635) 7514 0 R (HD.6636) 7515 0 R (HD.6637) 7516 0 R (HD.6638) 7517 0 R (HD.6639) 7518 0 R (HD.664) 972 0 R (HD.6640) 7519 0 R (HD.6641) 7520 0 R (HD.6642) 7521 0 R (HD.6643) 7522 0 R (HD.6644) 7523 0 R (HD.6645) 7524 0 R (HD.6646) 7525 0 R (HD.6647) 7526 0 R (HD.6648) 7527 0 R (HD.6649) 7528 0 R (HD.665) 973 0 R (HD.6650) 7529 0 R (HD.6651) 7530 0 R (HD.6652) 7531 0 R (HD.6653) 7532 0 R (HD.6654) 7533 0 R (HD.6655) 7534 0 R (HD.6656) 7535 0 R ] /Limits [ (HD.6628) (HD.6656) ] >>
endobj
11945 0 obj
-<< /Names [ (HD.7603) 8571 0 R (HD.7604) 8572 0 R (HD.7605) 8573 0 R (HD.7606) 8574 0 R (HD.7607) 8575 0 R (HD.7608) 8576 0 R (HD.7609) 8577 0 R (HD.761) 1077 0 R (HD.7610) 8578 0 R (HD.7611) 8579 0 R (HD.7612) 8580 0 R (HD.7613) 8581 0 R (HD.7614) 8582 0 R (HD.7615) 8583 0 R (HD.7616) 8584 0 R (HD.7617) 8585 0 R (HD.7618) 8586 0 R (HD.7619) 8587 0 R (HD.762) 1078 0 R (HD.7620) 8588 0 R (HD.7621) 8589 0 R (HD.7622) 8590 0 R (HD.7623) 8591 0 R (HD.7624) 8592 0 R (HD.7625) 8593 0 R (HD.7626) 8594 0 R (HD.7627) 8595 0 R (HD.7628) 8596 0 R (HD.7629) 8597 0 R (HD.763) 1079 0 R (HD.7630) 8598 0 R (HD.7631) 8599 0 R ] /Limits [ (HD.7603) (HD.7631) ] >>
+<< /Names [ (HD.6657) 7536 0 R (HD.6658) 7537 0 R (HD.6659) 7538 0 R (HD.666) 974 0 R (HD.6660) 7539 0 R (HD.6661) 7540 0 R (HD.6662) 7541 0 R (HD.6663) 7542 0 R (HD.6664) 7543 0 R (HD.6665) 7544 0 R (HD.6666) 7545 0 R (HD.6667) 7546 0 R (HD.6668) 7547 0 R (HD.6669) 7548 0 R (HD.667) 975 0 R (HD.6670) 7553 0 R (HD.6671) 7554 0 R (HD.6672) 7555 0 R (HD.6673) 7556 0 R (HD.6674) 7557 0 R (HD.6675) 7558 0 R (HD.6676) 7559 0 R (HD.6677) 7560 0 R (HD.6678) 7561 0 R (HD.6679) 7562 0 R (HD.668) 976 0 R (HD.6680) 7563 0 R (HD.6681) 7564 0 R (HD.6682) 7565 0 R (HD.6683) 7566 0 R (HD.6684) 7567 0 R (HD.6685) 7568 0 R ] /Limits [ (HD.6657) (HD.6685) ] >>
endobj
11946 0 obj
-<< /Names [ (HD.7632) 8600 0 R (HD.7633) 8601 0 R (HD.7634) 8602 0 R (HD.7635) 8603 0 R (HD.7636) 8604 0 R (HD.7637) 8605 0 R (HD.7638) 8606 0 R (HD.7639) 8607 0 R (HD.764) 1080 0 R (HD.7640) 8612 0 R (HD.7641) 8613 0 R (HD.7642) 8614 0 R (HD.7643) 8615 0 R (HD.7644) 8616 0 R (HD.7645) 8617 0 R (HD.7646) 8618 0 R (HD.7647) 8619 0 R (HD.7648) 8620 0 R (HD.7649) 8621 0 R (HD.765) 1081 0 R (HD.7650) 8622 0 R (HD.7651) 8623 0 R (HD.7652) 8624 0 R (HD.7653) 8625 0 R (HD.7654) 8626 0 R (HD.7655) 8627 0 R (HD.7656) 8628 0 R (HD.7657) 8629 0 R (HD.7658) 8630 0 R (HD.7659) 8631 0 R (HD.766) 1086 0 R (HD.7660) 8632 0 R ] /Limits [ (HD.7632) (HD.7660) ] >>
+<< /Names [ (HD.6686) 7569 0 R (HD.6687) 7570 0 R (HD.6688) 7571 0 R (HD.6689) 7572 0 R (HD.669) 977 0 R (HD.6690) 7573 0 R (HD.6691) 7574 0 R (HD.6692) 7575 0 R (HD.6693) 7576 0 R (HD.6694) 7577 0 R (HD.6695) 7578 0 R (HD.6696) 7579 0 R (HD.6697) 7580 0 R (HD.6698) 7581 0 R (HD.6699) 7582 0 R (HD.67) 267 0 R (HD.670) 978 0 R (HD.6700) 7583 0 R (HD.6701) 7584 0 R (HD.6702) 7585 0 R (HD.6703) 7586 0 R (HD.6704) 7587 0 R (HD.6705) 7588 0 R (HD.6706) 7589 0 R (HD.6707) 7590 0 R (HD.6708) 7591 0 R (HD.6709) 7592 0 R (HD.671) 979 0 R (HD.6710) 7593 0 R (HD.6711) 7594 0 R (HD.6712) 7595 0 R (HD.6713) 7596 0 R ] /Limits [ (HD.6686) (HD.6713) ] >>
endobj
11947 0 obj
-<< /Names [ (HD.7661) 8633 0 R (HD.7662) 8634 0 R (HD.7663) 8635 0 R (HD.7664) 8636 0 R (HD.7665) 8637 0 R (HD.7666) 8638 0 R (HD.7667) 8639 0 R (HD.7668) 8640 0 R (HD.7669) 8641 0 R (HD.767) 1087 0 R (HD.7670) 8642 0 R (HD.7671) 8643 0 R (HD.7672) 8644 0 R (HD.7673) 8645 0 R (HD.7674) 8646 0 R (HD.7675) 8647 0 R (HD.7676) 8652 0 R (HD.7677) 8653 0 R (HD.7678) 8654 0 R (HD.7679) 8655 0 R (HD.768) 1088 0 R (HD.7680) 8656 0 R (HD.7681) 8657 0 R (HD.7682) 8658 0 R (HD.7683) 8659 0 R (HD.7684) 8660 0 R (HD.7685) 8661 0 R (HD.7686) 8662 0 R (HD.7687) 8663 0 R (HD.7688) 8664 0 R (HD.7689) 8665 0 R (HD.769) 1089 0 R ] /Limits [ (HD.7661) (HD.769) ] >>
+<< /Names [ (HD.6714) 7597 0 R (HD.6715) 7598 0 R (HD.6716) 7599 0 R (HD.6717) 7600 0 R (HD.6718) 7601 0 R (HD.6719) 7602 0 R (HD.672) 980 0 R (HD.6720) 7603 0 R (HD.6721) 7604 0 R (HD.6722) 7605 0 R (HD.6723) 7606 0 R (HD.6724) 7607 0 R (HD.6725) 7612 0 R (HD.6726) 7613 0 R (HD.6727) 7614 0 R (HD.6728) 7615 0 R (HD.6729) 7616 0 R (HD.673) 981 0 R (HD.6730) 7617 0 R (HD.6731) 7618 0 R (HD.6732) 7619 0 R (HD.6733) 7620 0 R (HD.6734) 7621 0 R (HD.6735) 7622 0 R (HD.6736) 7623 0 R (HD.6737) 7624 0 R (HD.6738) 7625 0 R (HD.6739) 7626 0 R (HD.674) 982 0 R (HD.6740) 7627 0 R (HD.6741) 7628 0 R (HD.6742) 7629 0 R ] /Limits [ (HD.6714) (HD.6742) ] >>
endobj
11948 0 obj
-<< /Names [ (HD.7690) 8666 0 R (HD.7691) 8667 0 R (HD.7692) 8668 0 R (HD.7693) 8669 0 R (HD.7694) 8670 0 R (HD.7695) 8671 0 R (HD.7696) 8672 0 R (HD.7697) 8673 0 R (HD.7698) 8674 0 R (HD.7699) 8675 0 R (HD.77) 277 0 R (HD.770) 1090 0 R (HD.7700) 8676 0 R (HD.7701) 8677 0 R (HD.7702) 8678 0 R (HD.7703) 8679 0 R (HD.7704) 8680 0 R (HD.7705) 8681 0 R (HD.7706) 8682 0 R (HD.7707) 8683 0 R (HD.7708) 8684 0 R (HD.7709) 8685 0 R (HD.771) 1091 0 R (HD.7710) 8686 0 R (HD.7711) 8687 0 R (HD.7712) 8688 0 R (HD.7713) 8689 0 R (HD.7714) 8690 0 R (HD.7715) 8691 0 R (HD.7716) 8692 0 R (HD.7717) 8693 0 R (HD.7718) 8694 0 R ] /Limits [ (HD.7690) (HD.7718) ] >>
+<< /Names [ (HD.6743) 7630 0 R (HD.6744) 7631 0 R (HD.6745) 7632 0 R (HD.6746) 7633 0 R (HD.6747) 7634 0 R (HD.6748) 7635 0 R (HD.6749) 7636 0 R (HD.675) 983 0 R (HD.6750) 7637 0 R (HD.6751) 7638 0 R (HD.6752) 7639 0 R (HD.6753) 7640 0 R (HD.6754) 7641 0 R (HD.6755) 7642 0 R (HD.6756) 7643 0 R (HD.6757) 7648 0 R (HD.6758) 7649 0 R (HD.6759) 7650 0 R (HD.676) 984 0 R (HD.6760) 7651 0 R (HD.6761) 7652 0 R (HD.6762) 7653 0 R (HD.6763) 7654 0 R (HD.6764) 7655 0 R (HD.6765) 7656 0 R (HD.6766) 7657 0 R (HD.6767) 7658 0 R (HD.6768) 7659 0 R (HD.6769) 7660 0 R (HD.677) 985 0 R (HD.6770) 7661 0 R (HD.6771) 7662 0 R ] /Limits [ (HD.6743) (HD.6771) ] >>
endobj
11949 0 obj
-<< /Names [ (HD.7719) 8695 0 R (HD.772) 1092 0 R (HD.7720) 8696 0 R (HD.7721) 8697 0 R (HD.7722) 8698 0 R (HD.7723) 8699 0 R (HD.7724) 8700 0 R (HD.7725) 8705 0 R (HD.7726) 8706 0 R (HD.7727) 8707 0 R (HD.7728) 8708 0 R (HD.7729) 8709 0 R (HD.773) 1093 0 R (HD.7730) 8710 0 R (HD.7731) 8711 0 R (HD.7732) 8712 0 R (HD.7733) 8713 0 R (HD.7734) 8714 0 R (HD.7735) 8715 0 R (HD.7736) 8716 0 R (HD.7737) 8717 0 R (HD.7738) 8718 0 R (HD.7739) 8719 0 R (HD.774) 1094 0 R (HD.7740) 8720 0 R (HD.7741) 8721 0 R (HD.7742) 8722 0 R (HD.7743) 8723 0 R (HD.7744) 8724 0 R (HD.7745) 8725 0 R (HD.7746) 8726 0 R (HD.7747) 8727 0 R ] /Limits [ (HD.7719) (HD.7747) ] >>
+<< /Names [ (HD.6772) 7663 0 R (HD.6773) 7664 0 R (HD.6774) 7665 0 R (HD.6775) 7666 0 R (HD.6776) 7667 0 R (HD.6777) 7668 0 R (HD.6778) 7669 0 R (HD.6779) 7670 0 R (HD.678) 986 0 R (HD.6780) 7671 0 R (HD.6781) 7672 0 R (HD.6782) 7673 0 R (HD.6783) 7674 0 R (HD.6784) 7675 0 R (HD.6785) 7676 0 R (HD.6786) 7677 0 R (HD.6787) 7678 0 R (HD.6788) 7679 0 R (HD.6789) 7680 0 R (HD.679) 987 0 R (HD.6790) 7681 0 R (HD.6791) 7682 0 R (HD.6792) 7683 0 R (HD.6793) 7684 0 R (HD.6794) 7685 0 R (HD.6795) 7686 0 R (HD.6796) 7687 0 R (HD.6797) 7688 0 R (HD.6798) 7689 0 R (HD.6799) 7690 0 R (HD.68) 268 0 R (HD.680) 988 0 R ] /Limits [ (HD.6772) (HD.680) ] >>
endobj
11950 0 obj
-<< /Names [ (HD.7748) 8728 0 R (HD.7749) 8729 0 R (HD.775) 1095 0 R (HD.7750) 8730 0 R (HD.7751) 8731 0 R (HD.7752) 8732 0 R (HD.7753) 8733 0 R (HD.7754) 8734 0 R (HD.7755) 8735 0 R (HD.7756) 8736 0 R (HD.7757) 8737 0 R (HD.7758) 8738 0 R (HD.7759) 8739 0 R (HD.776) 1096 0 R (HD.7760) 8740 0 R (HD.7761) 8741 0 R (HD.7762) 8742 0 R (HD.7763) 8743 0 R (HD.7764) 8744 0 R (HD.7765) 8745 0 R (HD.7766) 8746 0 R (HD.7767) 8747 0 R (HD.7768) 8748 0 R (HD.7769) 8749 0 R (HD.777) 1097 0 R (HD.7770) 8750 0 R (HD.7771) 8751 0 R (HD.7772) 8752 0 R (HD.7773) 8753 0 R (HD.7774) 8754 0 R (HD.7775) 8755 0 R (HD.7776) 8756 0 R ] /Limits [ (HD.7748) (HD.7776) ] >>
+<< /Names [ (HD.6800) 7691 0 R (HD.6801) 7692 0 R (HD.6802) 7693 0 R (HD.6803) 7694 0 R (HD.6804) 7695 0 R (HD.6805) 7696 0 R (HD.6806) 7697 0 R (HD.6807) 7698 0 R (HD.6808) 7699 0 R (HD.6809) 7700 0 R (HD.681) 989 0 R (HD.6810) 7705 0 R (HD.6811) 7706 0 R (HD.6812) 7707 0 R (HD.6813) 7708 0 R (HD.6814) 7709 0 R (HD.6815) 7710 0 R (HD.6816) 7711 0 R (HD.6817) 7712 0 R (HD.6818) 7713 0 R (HD.6819) 7714 0 R (HD.682) 990 0 R (HD.6820) 7715 0 R (HD.6821) 7716 0 R (HD.6822) 7717 0 R (HD.6823) 7718 0 R (HD.6824) 7719 0 R (HD.6825) 7720 0 R (HD.6826) 7721 0 R (HD.6827) 7722 0 R (HD.6828) 7723 0 R (HD.6829) 7724 0 R ] /Limits [ (HD.6800) (HD.6829) ] >>
endobj
11951 0 obj
-<< /Names [ (HD.7777) 8757 0 R (HD.7778) 8758 0 R (HD.7779) 8759 0 R (HD.778) 1098 0 R (HD.7780) 8760 0 R (HD.7781) 8761 0 R (HD.7782) 8762 0 R (HD.7783) 8763 0 R (HD.7784) 8764 0 R (HD.7785) 8769 0 R (HD.7786) 8770 0 R (HD.7787) 8771 0 R (HD.7788) 8772 0 R (HD.7789) 8773 0 R (HD.779) 1099 0 R (HD.7790) 8774 0 R (HD.7791) 8775 0 R (HD.7792) 8776 0 R (HD.7793) 8777 0 R (HD.7794) 8778 0 R (HD.7795) 8779 0 R (HD.7796) 8780 0 R (HD.7797) 8781 0 R (HD.7798) 8782 0 R (HD.7799) 8783 0 R (HD.78) 278 0 R (HD.780) 1100 0 R (HD.7800) 8784 0 R (HD.7801) 8785 0 R (HD.7802) 8786 0 R (HD.7803) 8787 0 R (HD.7804) 8788 0 R ] /Limits [ (HD.7777) (HD.7804) ] >>
+<< /Names [ (HD.683) 991 0 R (HD.6830) 7725 0 R (HD.6831) 7726 0 R (HD.6832) 7727 0 R (HD.6833) 7728 0 R (HD.6834) 7729 0 R (HD.6835) 7730 0 R (HD.6836) 7731 0 R (HD.6837) 7732 0 R (HD.6838) 7733 0 R (HD.6839) 7734 0 R (HD.684) 992 0 R (HD.6840) 7735 0 R (HD.6841) 7736 0 R (HD.6842) 7737 0 R (HD.6843) 7738 0 R (HD.6844) 7739 0 R (HD.6845) 7740 0 R (HD.6846) 7741 0 R (HD.6847) 7742 0 R (HD.6848) 7743 0 R (HD.6849) 7744 0 R (HD.685) 993 0 R (HD.6850) 7745 0 R (HD.6851) 7746 0 R (HD.6852) 7747 0 R (HD.6853) 7748 0 R (HD.6854) 7753 0 R (HD.6855) 7754 0 R (HD.6856) 7755 0 R (HD.6857) 7756 0 R (HD.6858) 7757 0 R ] /Limits [ (HD.683) (HD.6858) ] >>
endobj
11952 0 obj
-<< /Names [ (HD.7805) 8789 0 R (HD.7806) 8790 0 R (HD.7807) 8791 0 R (HD.7808) 8792 0 R (HD.7809) 8793 0 R (HD.781) 1101 0 R (HD.7810) 8794 0 R (HD.7811) 8795 0 R (HD.7812) 8796 0 R (HD.7813) 8797 0 R (HD.7814) 8798 0 R (HD.7815) 8799 0 R (HD.7816) 8800 0 R (HD.7817) 8801 0 R (HD.7818) 8802 0 R (HD.7819) 8803 0 R (HD.782) 1102 0 R (HD.7820) 8804 0 R (HD.7821) 8805 0 R (HD.7822) 8806 0 R (HD.7823) 8807 0 R (HD.7824) 8808 0 R (HD.7825) 8809 0 R (HD.7826) 8810 0 R (HD.7827) 8811 0 R (HD.7828) 8812 0 R (HD.7829) 8813 0 R (HD.783) 1107 0 R (HD.7830) 8814 0 R (HD.7831) 8815 0 R (HD.7832) 8816 0 R (HD.7833) 8817 0 R ] /Limits [ (HD.7805) (HD.7833) ] >>
+<< /Names [ (HD.6859) 7758 0 R (HD.686) 994 0 R (HD.6860) 7759 0 R (HD.6861) 7760 0 R (HD.6862) 7761 0 R (HD.6863) 7762 0 R (HD.6864) 7763 0 R (HD.6865) 7764 0 R (HD.6866) 7765 0 R (HD.6867) 7766 0 R (HD.6868) 7767 0 R (HD.6869) 7768 0 R (HD.687) 995 0 R (HD.6870) 7769 0 R (HD.6871) 7770 0 R (HD.6872) 7771 0 R (HD.6873) 7772 0 R (HD.6874) 7773 0 R (HD.6875) 7774 0 R (HD.6876) 7775 0 R (HD.6877) 7776 0 R (HD.6878) 7777 0 R (HD.6879) 7778 0 R (HD.688) 996 0 R (HD.6880) 7779 0 R (HD.6881) 7780 0 R (HD.6882) 7781 0 R (HD.6883) 7782 0 R (HD.6884) 7783 0 R (HD.6885) 7784 0 R (HD.6886) 7785 0 R (HD.6887) 7786 0 R ] /Limits [ (HD.6859) (HD.6887) ] >>
endobj
11953 0 obj
-<< /Names [ (HD.7834) 8818 0 R (HD.7835) 8819 0 R (HD.7836) 8820 0 R (HD.7837) 8821 0 R (HD.7838) 8822 0 R (HD.7839) 8823 0 R (HD.784) 1108 0 R (HD.7840) 8824 0 R (HD.7841) 8825 0 R (HD.7842) 8826 0 R (HD.7843) 8827 0 R (HD.7844) 8828 0 R (HD.7845) 8829 0 R (HD.7846) 8830 0 R (HD.7847) 8835 0 R (HD.7848) 8836 0 R (HD.7849) 8837 0 R (HD.785) 1109 0 R (HD.7850) 8838 0 R (HD.7851) 8839 0 R (HD.7852) 8840 0 R (HD.7853) 8841 0 R (HD.7854) 8842 0 R (HD.7855) 8843 0 R (HD.7856) 8844 0 R (HD.7857) 8845 0 R (HD.7858) 8846 0 R (HD.7859) 8847 0 R (HD.786) 1110 0 R (HD.7860) 8848 0 R (HD.7861) 8849 0 R (HD.7862) 8850 0 R ] /Limits [ (HD.7834) (HD.7862) ] >>
+<< /Names [ (HD.6888) 7787 0 R (HD.6889) 7788 0 R (HD.689) 997 0 R (HD.6890) 7789 0 R (HD.6891) 7790 0 R (HD.6892) 7791 0 R (HD.6893) 7792 0 R (HD.6894) 7793 0 R (HD.6895) 7794 0 R (HD.6896) 7795 0 R (HD.6897) 7800 0 R (HD.6898) 7801 0 R (HD.6899) 7802 0 R (HD.69) 269 0 R (HD.690) 998 0 R (HD.6900) 7803 0 R (HD.6901) 7804 0 R (HD.6902) 7805 0 R (HD.6903) 7806 0 R (HD.6904) 7807 0 R (HD.6905) 7808 0 R (HD.6906) 7809 0 R (HD.6907) 7810 0 R (HD.6908) 7811 0 R (HD.6909) 7812 0 R (HD.691) 999 0 R (HD.6910) 7813 0 R (HD.6911) 7814 0 R (HD.6912) 7815 0 R (HD.6913) 7816 0 R (HD.6914) 7817 0 R (HD.6915) 7818 0 R ] /Limits [ (HD.6888) (HD.6915) ] >>
endobj
11954 0 obj
-<< /Names [ (HD.7863) 8851 0 R (HD.7864) 8852 0 R (HD.7865) 8853 0 R (HD.7866) 8854 0 R (HD.7867) 8855 0 R (HD.7868) 8856 0 R (HD.7869) 8857 0 R (HD.787) 1111 0 R (HD.7870) 8858 0 R (HD.7871) 8859 0 R (HD.7872) 8860 0 R (HD.7873) 8861 0 R (HD.7874) 8862 0 R (HD.7875) 8863 0 R (HD.7876) 8864 0 R (HD.7877) 8865 0 R (HD.7878) 8866 0 R (HD.7879) 8867 0 R (HD.788) 1112 0 R (HD.7880) 8868 0 R (HD.7881) 8869 0 R (HD.7882) 8870 0 R (HD.7883) 8871 0 R (HD.7884) 8872 0 R (HD.7885) 8873 0 R (HD.7886) 8874 0 R (HD.7887) 8875 0 R (HD.7888) 8876 0 R (HD.7889) 8877 0 R (HD.789) 1113 0 R (HD.7890) 8878 0 R (HD.7891) 8879 0 R ] /Limits [ (HD.7863) (HD.7891) ] >>
+<< /Names [ (HD.6916) 7819 0 R (HD.6917) 7820 0 R (HD.6918) 7821 0 R (HD.6919) 7822 0 R (HD.692) 1000 0 R (HD.6920) 7823 0 R (HD.6921) 7824 0 R (HD.6922) 7825 0 R (HD.6923) 7826 0 R (HD.6924) 7827 0 R (HD.6925) 7828 0 R (HD.6926) 7829 0 R (HD.6927) 7830 0 R (HD.6928) 7831 0 R (HD.6929) 7832 0 R (HD.693) 1001 0 R (HD.6930) 7833 0 R (HD.6931) 7840 0 R (HD.6932) 7841 0 R (HD.6933) 7842 0 R (HD.6934) 7843 0 R (HD.6935) 7844 0 R (HD.6936) 7845 0 R (HD.6937) 7846 0 R (HD.6938) 7847 0 R (HD.6939) 7848 0 R (HD.694) 1002 0 R (HD.6940) 7849 0 R (HD.6941) 7850 0 R (HD.6942) 7851 0 R (HD.6943) 7852 0 R (HD.6944) 7853 0 R ] /Limits [ (HD.6916) (HD.6944) ] >>
endobj
11955 0 obj
-<< /Names [ (HD.7892) 8880 0 R (HD.7893) 8881 0 R (HD.7894) 8882 0 R (HD.7895) 8883 0 R (HD.7896) 8884 0 R (HD.7897) 8885 0 R (HD.7898) 8891 0 R (HD.7899) 8892 0 R (HD.79) 279 0 R (HD.790) 1114 0 R (HD.7900) 8893 0 R (HD.7901) 8894 0 R (HD.7902) 8895 0 R (HD.7903) 8896 0 R (HD.7904) 8897 0 R (HD.7905) 8898 0 R (HD.7906) 8899 0 R (HD.7907) 8900 0 R (HD.7908) 8901 0 R (HD.7909) 8902 0 R (HD.791) 1115 0 R (HD.7910) 8903 0 R (HD.7911) 8904 0 R (HD.7912) 8905 0 R (HD.7913) 8906 0 R (HD.7914) 8907 0 R (HD.7915) 8908 0 R (HD.7916) 8909 0 R (HD.7917) 8910 0 R (HD.7918) 8911 0 R (HD.7919) 8912 0 R (HD.792) 1116 0 R ] /Limits [ (HD.7892) (HD.792) ] >>
+<< /Names [ (HD.6945) 7854 0 R (HD.6946) 7855 0 R (HD.6947) 7856 0 R (HD.6948) 7857 0 R (HD.6949) 7858 0 R (HD.695) 1003 0 R (HD.6950) 7859 0 R (HD.6951) 7860 0 R (HD.6952) 7861 0 R (HD.6953) 7862 0 R (HD.6954) 7863 0 R (HD.6955) 7864 0 R (HD.6956) 7865 0 R (HD.6957) 7866 0 R (HD.6958) 7867 0 R (HD.6959) 7868 0 R (HD.696) 1004 0 R (HD.6960) 7869 0 R (HD.6961) 7870 0 R (HD.6962) 7871 0 R (HD.6963) 7872 0 R (HD.6964) 7873 0 R (HD.6965) 7874 0 R (HD.6966) 7875 0 R (HD.6967) 7876 0 R (HD.6968) 7877 0 R (HD.6969) 7878 0 R (HD.697) 1005 0 R (HD.6970) 7879 0 R (HD.6971) 7880 0 R (HD.6972) 7881 0 R (HD.6973) 7888 0 R ] /Limits [ (HD.6945) (HD.6973) ] >>
endobj
11956 0 obj
-<< /Names [ (HD.7920) 8913 0 R (HD.7921) 8914 0 R (HD.7922) 8915 0 R (HD.7923) 8916 0 R (HD.7924) 8917 0 R (HD.7925) 8918 0 R (HD.7926) 8919 0 R (HD.7927) 8920 0 R (HD.7928) 8921 0 R (HD.7929) 8922 0 R (HD.793) 1117 0 R (HD.7930) 8923 0 R (HD.7931) 8924 0 R (HD.7932) 8925 0 R (HD.7933) 8926 0 R (HD.7934) 8927 0 R (HD.7935) 8928 0 R (HD.7936) 8929 0 R (HD.7937) 8930 0 R (HD.7938) 8931 0 R (HD.7939) 8932 0 R (HD.794) 1118 0 R (HD.7940) 8933 0 R (HD.7941) 8934 0 R (HD.7942) 8935 0 R (HD.7943) 8936 0 R (HD.7944) 8937 0 R (HD.7945) 8938 0 R (HD.7946) 8939 0 R (HD.7947) 8940 0 R (HD.7948) 8941 0 R (HD.7949) 8942 0 R ] /Limits [ (HD.7920) (HD.7949) ] >>
+<< /Names [ (HD.6974) 7889 0 R (HD.6975) 7890 0 R (HD.6976) 7891 0 R (HD.6977) 7892 0 R (HD.6978) 7893 0 R (HD.6979) 7894 0 R (HD.698) 1006 0 R (HD.6980) 7895 0 R (HD.6981) 7896 0 R (HD.6982) 7897 0 R (HD.6983) 7898 0 R (HD.6984) 7899 0 R (HD.6985) 7900 0 R (HD.6986) 7901 0 R (HD.6987) 7902 0 R (HD.6988) 7903 0 R (HD.6989) 7904 0 R (HD.699) 1007 0 R (HD.6990) 7905 0 R (HD.6991) 7906 0 R (HD.6992) 7907 0 R (HD.6993) 7908 0 R (HD.6994) 7909 0 R (HD.6995) 7910 0 R (HD.6996) 7911 0 R (HD.6997) 7912 0 R (HD.6998) 7913 0 R (HD.6999) 7914 0 R (HD.7) 195 0 R (HD.70) 270 0 R (HD.700) 1008 0 R (HD.7000) 7915 0 R ] /Limits [ (HD.6974) (HD.7000) ] >>
endobj
11957 0 obj
-<< /Names [ (HD.795) 1119 0 R (HD.7950) 8943 0 R (HD.7951) 8944 0 R (HD.7952) 8945 0 R (HD.7953) 8946 0 R (HD.7954) 8947 0 R (HD.7955) 8948 0 R (HD.7956) 8949 0 R (HD.7957) 8954 0 R (HD.7958) 8955 0 R (HD.7959) 8956 0 R (HD.796) 1120 0 R (HD.7960) 8957 0 R (HD.7961) 8958 0 R (HD.7962) 8959 0 R (HD.7963) 8960 0 R (HD.7964) 8961 0 R (HD.7965) 8962 0 R (HD.7966) 8963 0 R (HD.7967) 8964 0 R (HD.7968) 8965 0 R (HD.7969) 8966 0 R (HD.797) 1121 0 R (HD.7970) 8967 0 R (HD.7971) 8968 0 R (HD.7972) 8969 0 R (HD.7973) 8970 0 R (HD.7974) 8971 0 R (HD.7975) 8972 0 R (HD.7976) 8973 0 R (HD.7977) 8974 0 R (HD.7978) 8975 0 R ] /Limits [ (HD.795) (HD.7978) ] >>
+<< /Names [ (HD.7001) 7916 0 R (HD.7002) 7917 0 R (HD.7003) 7918 0 R (HD.7004) 7919 0 R (HD.7005) 7920 0 R (HD.7006) 7921 0 R (HD.7007) 7922 0 R (HD.7008) 7923 0 R (HD.7009) 7924 0 R (HD.701) 1013 0 R (HD.7010) 7925 0 R (HD.7011) 7926 0 R (HD.7012) 7927 0 R (HD.7013) 7928 0 R (HD.7014) 7929 0 R (HD.7015) 7930 0 R (HD.7016) 7931 0 R (HD.7017) 7932 0 R (HD.7018) 7933 0 R (HD.7019) 7934 0 R (HD.702) 1014 0 R (HD.7020) 7935 0 R (HD.7021) 7936 0 R (HD.7022) 7937 0 R (HD.7023) 7938 0 R (HD.7024) 7939 0 R (HD.7025) 7940 0 R (HD.7026) 7941 0 R (HD.7027) 7942 0 R (HD.7028) 7947 0 R (HD.7029) 7948 0 R (HD.703) 1015 0 R ] /Limits [ (HD.7001) (HD.703) ] >>
endobj
11958 0 obj
-<< /Names [ (HD.7979) 8976 0 R (HD.798) 1122 0 R (HD.7980) 8977 0 R (HD.7981) 8978 0 R (HD.7982) 8979 0 R (HD.7983) 8980 0 R (HD.7984) 8981 0 R (HD.7985) 8982 0 R (HD.7986) 8983 0 R (HD.7987) 8984 0 R (HD.7988) 8985 0 R (HD.7989) 8986 0 R (HD.799) 1123 0 R (HD.7990) 8987 0 R (HD.7991) 8988 0 R (HD.7992) 8989 0 R (HD.7993) 8990 0 R (HD.7994) 8991 0 R (HD.7995) 8992 0 R (HD.7996) 8993 0 R (HD.7997) 8994 0 R (HD.7998) 8995 0 R (HD.7999) 8996 0 R (HD.8) 196 0 R (HD.80) 280 0 R (HD.800) 1124 0 R (HD.8000) 8997 0 R (HD.8001) 8998 0 R (HD.8002) 8999 0 R (HD.8003) 9000 0 R (HD.8004) 9001 0 R (HD.8005) 9002 0 R ] /Limits [ (HD.7979) (HD.8005) ] >>
+<< /Names [ (HD.7030) 7949 0 R (HD.7031) 7950 0 R (HD.7032) 7951 0 R (HD.7033) 7952 0 R (HD.7034) 7953 0 R (HD.7035) 7954 0 R (HD.7036) 7955 0 R (HD.7037) 7956 0 R (HD.7038) 7957 0 R (HD.7039) 7958 0 R (HD.704) 1016 0 R (HD.7040) 7959 0 R (HD.7041) 7960 0 R (HD.7042) 7961 0 R (HD.7043) 7962 0 R (HD.7044) 7963 0 R (HD.7045) 7964 0 R (HD.7046) 7965 0 R (HD.7047) 7966 0 R (HD.7048) 7967 0 R (HD.7049) 7968 0 R (HD.705) 1017 0 R (HD.7050) 7969 0 R (HD.7051) 7970 0 R (HD.7052) 7971 0 R (HD.7053) 7972 0 R (HD.7054) 7973 0 R (HD.7055) 7974 0 R (HD.7056) 7975 0 R (HD.7057) 7976 0 R (HD.7058) 7977 0 R (HD.7059) 7978 0 R ] /Limits [ (HD.7030) (HD.7059) ] >>
endobj
11959 0 obj
-<< /Names [ (HD.8006) 9003 0 R (HD.8007) 9004 0 R (HD.8008) 9005 0 R (HD.8009) 9006 0 R (HD.801) 1125 0 R (HD.8010) 9007 0 R (HD.8011) 9012 0 R (HD.8012) 9013 0 R (HD.8013) 9014 0 R (HD.8014) 9015 0 R (HD.8015) 9016 0 R (HD.8016) 9017 0 R (HD.8017) 9018 0 R (HD.8018) 9019 0 R (HD.8019) 9020 0 R (HD.802) 1126 0 R (HD.8020) 9021 0 R (HD.8021) 9022 0 R (HD.8022) 9023 0 R (HD.8023) 9024 0 R (HD.8024) 9025 0 R (HD.8025) 9026 0 R (HD.8026) 9027 0 R (HD.8027) 9028 0 R (HD.8028) 9029 0 R (HD.8029) 9030 0 R (HD.803) 1127 0 R (HD.8030) 9031 0 R (HD.8031) 9032 0 R (HD.8032) 9033 0 R (HD.8033) 9034 0 R (HD.8034) 9035 0 R ] /Limits [ (HD.8006) (HD.8034) ] >>
+<< /Names [ (HD.706) 1018 0 R (HD.7060) 7979 0 R (HD.7061) 7980 0 R (HD.7062) 7981 0 R (HD.7063) 7982 0 R (HD.7064) 7983 0 R (HD.7065) 7984 0 R (HD.7066) 7985 0 R (HD.7067) 7986 0 R (HD.7068) 7987 0 R (HD.7069) 7988 0 R (HD.707) 1019 0 R (HD.7070) 7989 0 R (HD.7071) 7994 0 R (HD.7072) 7995 0 R (HD.7073) 7996 0 R (HD.7074) 7997 0 R (HD.7075) 7998 0 R (HD.7076) 7999 0 R (HD.7077) 8000 0 R (HD.7078) 8001 0 R (HD.7079) 8002 0 R (HD.708) 1020 0 R (HD.7080) 8003 0 R (HD.7081) 8004 0 R (HD.7082) 8005 0 R (HD.7083) 8006 0 R (HD.7084) 8007 0 R (HD.7085) 8008 0 R (HD.7086) 8009 0 R (HD.7087) 8010 0 R (HD.7088) 8011 0 R ] /Limits [ (HD.706) (HD.7088) ] >>
endobj
11960 0 obj
-<< /Names [ (HD.8035) 9036 0 R (HD.8036) 9037 0 R (HD.8037) 9038 0 R (HD.8038) 9039 0 R (HD.8039) 9040 0 R (HD.804) 1128 0 R (HD.8040) 9041 0 R (HD.8041) 9042 0 R (HD.8042) 9043 0 R (HD.8043) 9044 0 R (HD.8044) 9045 0 R (HD.8045) 9046 0 R (HD.8046) 9047 0 R (HD.8047) 9048 0 R (HD.8048) 9049 0 R (HD.8049) 9050 0 R (HD.805) 1129 0 R (HD.8050) 9051 0 R (HD.8051) 9052 0 R (HD.8052) 9053 0 R (HD.8053) 9054 0 R (HD.8054) 9055 0 R (HD.8055) 9056 0 R (HD.8056) 9057 0 R (HD.8057) 9058 0 R (HD.8058) 9059 0 R (HD.8059) 9060 0 R (HD.806) 1130 0 R (HD.8060) 9061 0 R (HD.8061) 9062 0 R (HD.8062) 9063 0 R (HD.8063) 9064 0 R ] /Limits [ (HD.8035) (HD.8063) ] >>
+<< /Names [ (HD.7089) 8012 0 R (HD.709) 1021 0 R (HD.7090) 8013 0 R (HD.7091) 8014 0 R (HD.7092) 8015 0 R (HD.7093) 8016 0 R (HD.7094) 8017 0 R (HD.7095) 8018 0 R (HD.7096) 8019 0 R (HD.7097) 8020 0 R (HD.7098) 8021 0 R (HD.7099) 8022 0 R (HD.71) 271 0 R (HD.710) 1022 0 R (HD.7100) 8023 0 R (HD.7101) 8024 0 R (HD.7102) 8025 0 R (HD.7103) 8026 0 R (HD.7104) 8027 0 R (HD.7105) 8028 0 R (HD.7106) 8029 0 R (HD.7107) 8030 0 R (HD.7108) 8031 0 R (HD.7109) 8032 0 R (HD.711) 1023 0 R (HD.7110) 8033 0 R (HD.7111) 8034 0 R (HD.7112) 8035 0 R (HD.7113) 8036 0 R (HD.7114) 8037 0 R (HD.7115) 8038 0 R (HD.7116) 8039 0 R ] /Limits [ (HD.7089) (HD.7116) ] >>
endobj
11961 0 obj
-<< /Names [ (HD.8064) 9065 0 R (HD.8065) 9066 0 R (HD.8066) 9067 0 R (HD.8067) 9068 0 R (HD.8068) 9073 0 R (HD.8069) 9074 0 R (HD.807) 1131 0 R (HD.8070) 9075 0 R (HD.8071) 9076 0 R (HD.8072) 9077 0 R (HD.8073) 9078 0 R (HD.8074) 9079 0 R (HD.8075) 9080 0 R (HD.8076) 9081 0 R (HD.8077) 9082 0 R (HD.8078) 9083 0 R (HD.8079) 9084 0 R (HD.808) 1132 0 R (HD.8080) 9085 0 R (HD.8081) 9086 0 R (HD.8082) 9087 0 R (HD.8083) 9088 0 R (HD.8084) 9089 0 R (HD.8085) 9090 0 R (HD.8086) 9091 0 R (HD.8087) 9092 0 R (HD.8088) 9093 0 R (HD.8089) 9094 0 R (HD.809) 1133 0 R (HD.8090) 9095 0 R (HD.8091) 9096 0 R (HD.8092) 9097 0 R ] /Limits [ (HD.8064) (HD.8092) ] >>
+<< /Names [ (HD.7117) 8040 0 R (HD.7118) 8041 0 R (HD.7119) 8042 0 R (HD.712) 1024 0 R (HD.7120) 8043 0 R (HD.7121) 8048 0 R (HD.7122) 8049 0 R (HD.7123) 8050 0 R (HD.7124) 8051 0 R (HD.7125) 8052 0 R (HD.7126) 8053 0 R (HD.7127) 8054 0 R (HD.7128) 8055 0 R (HD.7129) 8056 0 R (HD.713) 1025 0 R (HD.7130) 8057 0 R (HD.7131) 8058 0 R (HD.7132) 8059 0 R (HD.7133) 8060 0 R (HD.7134) 8061 0 R (HD.7135) 8062 0 R (HD.7136) 8063 0 R (HD.7137) 8064 0 R (HD.7138) 8065 0 R (HD.7139) 8066 0 R (HD.714) 1026 0 R (HD.7140) 8067 0 R (HD.7141) 8068 0 R (HD.7142) 8069 0 R (HD.7143) 8070 0 R (HD.7144) 8071 0 R (HD.7145) 8072 0 R ] /Limits [ (HD.7117) (HD.7145) ] >>
endobj
11962 0 obj
-<< /Names [ (HD.8093) 9098 0 R (HD.8094) 9099 0 R (HD.8095) 9100 0 R (HD.8096) 9101 0 R (HD.8097) 9102 0 R (HD.8098) 9103 0 R (HD.8099) 9104 0 R (HD.81) 281 0 R (HD.810) 1134 0 R (HD.8100) 9105 0 R (HD.8101) 9106 0 R (HD.8102) 9107 0 R (HD.8103) 9108 0 R (HD.8104) 9109 0 R (HD.8105) 9110 0 R (HD.8106) 9111 0 R (HD.8107) 9112 0 R (HD.8108) 9113 0 R (HD.8109) 9114 0 R (HD.811) 1135 0 R (HD.8110) 9115 0 R (HD.8111) 9116 0 R (HD.8112) 9117 0 R (HD.8113) 9118 0 R (HD.8114) 9119 0 R (HD.8115) 9120 0 R (HD.8116) 9121 0 R (HD.8117) 9122 0 R (HD.8118) 9123 0 R (HD.8119) 9124 0 R (HD.812) 1136 0 R (HD.8120) 9125 0 R ] /Limits [ (HD.8093) (HD.8120) ] >>
+<< /Names [ (HD.7146) 8073 0 R (HD.7147) 8074 0 R (HD.7148) 8075 0 R (HD.7149) 8076 0 R (HD.715) 1027 0 R (HD.7150) 8077 0 R (HD.7151) 8078 0 R (HD.7152) 8079 0 R (HD.7153) 8080 0 R (HD.7154) 8085 0 R (HD.7155) 8086 0 R (HD.7156) 8087 0 R (HD.7157) 8088 0 R (HD.7158) 8089 0 R (HD.7159) 8090 0 R (HD.716) 1028 0 R (HD.7160) 8091 0 R (HD.7161) 8092 0 R (HD.7162) 8093 0 R (HD.7163) 8094 0 R (HD.7164) 8095 0 R (HD.7165) 8096 0 R (HD.7166) 8097 0 R (HD.7167) 8098 0 R (HD.7168) 8099 0 R (HD.7169) 8100 0 R (HD.717) 1029 0 R (HD.7170) 8101 0 R (HD.7171) 8102 0 R (HD.7172) 8103 0 R (HD.7173) 8104 0 R (HD.7174) 8105 0 R ] /Limits [ (HD.7146) (HD.7174) ] >>
endobj
11963 0 obj
-<< /Names [ (HD.8121) 9126 0 R (HD.8122) 9127 0 R (HD.8123) 9128 0 R (HD.8124) 9129 0 R (HD.8125) 9130 0 R (HD.8126) 9135 0 R (HD.8127) 9136 0 R (HD.8128) 9137 0 R (HD.8129) 9138 0 R (HD.813) 1137 0 R (HD.8130) 9139 0 R (HD.8131) 9140 0 R (HD.8132) 9141 0 R (HD.8133) 9142 0 R (HD.8134) 9143 0 R (HD.8135) 9144 0 R (HD.8136) 9145 0 R (HD.8137) 9146 0 R (HD.8138) 9147 0 R (HD.8139) 9148 0 R (HD.814) 1138 0 R (HD.8140) 9149 0 R (HD.8141) 9150 0 R (HD.8142) 9151 0 R (HD.8143) 9152 0 R (HD.8144) 9153 0 R (HD.8145) 9154 0 R (HD.8146) 9155 0 R (HD.8147) 9156 0 R (HD.8148) 9157 0 R (HD.8149) 9158 0 R (HD.815) 1139 0 R ] /Limits [ (HD.8121) (HD.815) ] >>
+<< /Names [ (HD.7175) 8106 0 R (HD.7176) 8107 0 R (HD.7177) 8108 0 R (HD.7178) 8109 0 R (HD.7179) 8110 0 R (HD.718) 1030 0 R (HD.7180) 8111 0 R (HD.7181) 8112 0 R (HD.7182) 8113 0 R (HD.7183) 8114 0 R (HD.7184) 8115 0 R (HD.7185) 8116 0 R (HD.7186) 8117 0 R (HD.7187) 8122 0 R (HD.7188) 8123 0 R (HD.7189) 8124 0 R (HD.719) 1031 0 R (HD.7190) 8125 0 R (HD.7191) 8126 0 R (HD.7192) 8127 0 R (HD.7193) 8128 0 R (HD.7194) 8129 0 R (HD.7195) 8130 0 R (HD.7196) 8131 0 R (HD.7197) 8132 0 R (HD.7198) 8133 0 R (HD.7199) 8134 0 R (HD.72) 272 0 R (HD.720) 1032 0 R (HD.7200) 8135 0 R (HD.7201) 8136 0 R (HD.7202) 8137 0 R ] /Limits [ (HD.7175) (HD.7202) ] >>
endobj
11964 0 obj
-<< /Names [ (HD.8150) 9159 0 R (HD.8151) 9160 0 R (HD.8152) 9161 0 R (HD.8153) 9162 0 R (HD.8154) 9163 0 R (HD.8155) 9164 0 R (HD.8156) 9165 0 R (HD.8157) 9166 0 R (HD.8158) 9167 0 R (HD.8159) 9168 0 R (HD.816) 1140 0 R (HD.8160) 9169 0 R (HD.8161) 9170 0 R (HD.8162) 9171 0 R (HD.8163) 9172 0 R (HD.8164) 9173 0 R (HD.8165) 9174 0 R (HD.8166) 9175 0 R (HD.8167) 9176 0 R (HD.8168) 9177 0 R (HD.8169) 9178 0 R (HD.817) 1141 0 R (HD.8170) 9179 0 R (HD.8171) 9180 0 R (HD.8172) 9181 0 R (HD.8173) 9182 0 R (HD.8174) 9183 0 R (HD.8175) 9184 0 R (HD.8176) 9185 0 R (HD.8177) 9186 0 R (HD.8178) 9187 0 R (HD.8179) 9188 0 R ] /Limits [ (HD.8150) (HD.8179) ] >>
+<< /Names [ (HD.7203) 8138 0 R (HD.7204) 8139 0 R (HD.7205) 8140 0 R (HD.7206) 8141 0 R (HD.7207) 8142 0 R (HD.7208) 8143 0 R (HD.7209) 8144 0 R (HD.721) 1033 0 R (HD.7210) 8145 0 R (HD.7211) 8146 0 R (HD.7212) 8147 0 R (HD.7213) 8148 0 R (HD.7214) 8153 0 R (HD.7215) 8154 0 R (HD.7216) 8155 0 R (HD.7217) 8156 0 R (HD.7218) 8157 0 R (HD.7219) 8158 0 R (HD.722) 1034 0 R (HD.7220) 8159 0 R (HD.7221) 8160 0 R (HD.7222) 8161 0 R (HD.7223) 8162 0 R (HD.7224) 8163 0 R (HD.7225) 8164 0 R (HD.7226) 8165 0 R (HD.7227) 8166 0 R (HD.7228) 8167 0 R (HD.7229) 8168 0 R (HD.723) 1035 0 R (HD.7230) 8169 0 R (HD.7231) 8170 0 R ] /Limits [ (HD.7203) (HD.7231) ] >>
endobj
11965 0 obj
-<< /Names [ (HD.818) 1142 0 R (HD.8180) 9193 0 R (HD.8181) 9194 0 R (HD.8182) 9195 0 R (HD.8183) 9196 0 R (HD.8184) 9197 0 R (HD.8185) 9198 0 R (HD.8186) 9199 0 R (HD.8187) 9200 0 R (HD.8188) 9201 0 R (HD.8189) 9202 0 R (HD.819) 1147 0 R (HD.8190) 9203 0 R (HD.8191) 9204 0 R (HD.8192) 9205 0 R (HD.8193) 9206 0 R (HD.8194) 9207 0 R (HD.8195) 9208 0 R (HD.8196) 9209 0 R (HD.8197) 9210 0 R (HD.8198) 9211 0 R (HD.8199) 9212 0 R (HD.82) 282 0 R (HD.820) 1148 0 R (HD.8200) 9213 0 R (HD.8201) 9214 0 R (HD.8202) 9215 0 R (HD.8203) 9216 0 R (HD.8204) 9217 0 R (HD.8205) 9218 0 R (HD.8206) 9219 0 R (HD.8207) 9220 0 R ] /Limits [ (HD.818) (HD.8207) ] >>
+<< /Names [ (HD.7232) 8171 0 R (HD.7233) 8172 0 R (HD.7234) 8173 0 R (HD.7235) 8174 0 R (HD.7236) 8175 0 R (HD.7237) 8176 0 R (HD.7238) 8177 0 R (HD.7239) 8178 0 R (HD.724) 1036 0 R (HD.7240) 8179 0 R (HD.7241) 8180 0 R (HD.7242) 8181 0 R (HD.7243) 8182 0 R (HD.7244) 8183 0 R (HD.7245) 8184 0 R (HD.7246) 8185 0 R (HD.7247) 8186 0 R (HD.7248) 8187 0 R (HD.7249) 8188 0 R (HD.725) 1037 0 R (HD.7250) 8189 0 R (HD.7251) 8190 0 R (HD.7252) 8191 0 R (HD.7253) 8192 0 R (HD.7254) 8193 0 R (HD.7255) 8194 0 R (HD.7256) 8195 0 R (HD.7257) 8196 0 R (HD.7258) 8197 0 R (HD.7259) 8202 0 R (HD.726) 1038 0 R (HD.7260) 8203 0 R ] /Limits [ (HD.7232) (HD.7260) ] >>
endobj
11966 0 obj
-<< /Names [ (HD.8208) 9221 0 R (HD.8209) 9222 0 R (HD.821) 1149 0 R (HD.8210) 9223 0 R (HD.8211) 9224 0 R (HD.8212) 9225 0 R (HD.8213) 9226 0 R (HD.8214) 9227 0 R (HD.8215) 9228 0 R (HD.8216) 9229 0 R (HD.8217) 9230 0 R (HD.8218) 9231 0 R (HD.8219) 9232 0 R (HD.822) 1150 0 R (HD.8220) 9233 0 R (HD.8221) 9234 0 R (HD.8222) 9235 0 R (HD.8223) 9236 0 R (HD.8224) 9237 0 R (HD.8225) 9238 0 R (HD.8226) 9239 0 R (HD.8227) 9240 0 R (HD.8228) 9241 0 R (HD.8229) 9246 0 R (HD.823) 1151 0 R (HD.8230) 9247 0 R (HD.8231) 9248 0 R (HD.8232) 9249 0 R (HD.8233) 9250 0 R (HD.8234) 9251 0 R (HD.8235) 9252 0 R (HD.8236) 9253 0 R ] /Limits [ (HD.8208) (HD.8236) ] >>
+<< /Names [ (HD.7261) 8204 0 R (HD.7262) 8205 0 R (HD.7263) 8206 0 R (HD.7264) 8207 0 R (HD.7265) 8208 0 R (HD.7266) 8209 0 R (HD.7267) 8210 0 R (HD.7268) 8211 0 R (HD.7269) 8212 0 R (HD.727) 1039 0 R (HD.7270) 8213 0 R (HD.7271) 8214 0 R (HD.7272) 8215 0 R (HD.7273) 8216 0 R (HD.7274) 8217 0 R (HD.7275) 8218 0 R (HD.7276) 8219 0 R (HD.7277) 8220 0 R (HD.7278) 8221 0 R (HD.7279) 8222 0 R (HD.728) 1040 0 R (HD.7280) 8223 0 R (HD.7281) 8224 0 R (HD.7282) 8225 0 R (HD.7283) 8226 0 R (HD.7284) 8227 0 R (HD.7285) 8228 0 R (HD.7286) 8229 0 R (HD.7287) 8230 0 R (HD.7288) 8231 0 R (HD.7289) 8232 0 R (HD.729) 1041 0 R ] /Limits [ (HD.7261) (HD.729) ] >>
endobj
11967 0 obj
-<< /Names [ (HD.8237) 9254 0 R (HD.8238) 9255 0 R (HD.8239) 9256 0 R (HD.824) 1152 0 R (HD.8240) 9257 0 R (HD.8241) 9258 0 R (HD.8242) 9259 0 R (HD.8243) 9260 0 R (HD.8244) 9261 0 R (HD.8245) 9262 0 R (HD.8246) 9263 0 R (HD.8247) 9264 0 R (HD.8248) 9265 0 R (HD.8249) 9266 0 R (HD.825) 1153 0 R (HD.8250) 9267 0 R (HD.8251) 9268 0 R (HD.8252) 9269 0 R (HD.8253) 9270 0 R (HD.8254) 9271 0 R (HD.8255) 9272 0 R (HD.8256) 9273 0 R (HD.8257) 9274 0 R (HD.8258) 9275 0 R (HD.8259) 9276 0 R (HD.826) 1154 0 R (HD.8260) 9277 0 R (HD.8261) 9278 0 R (HD.8262) 9279 0 R (HD.8263) 9280 0 R (HD.8264) 9281 0 R (HD.8265) 9282 0 R ] /Limits [ (HD.8237) (HD.8265) ] >>
+<< /Names [ (HD.7290) 8233 0 R (HD.7291) 8234 0 R (HD.7292) 8235 0 R (HD.7293) 8236 0 R (HD.7294) 8237 0 R (HD.7295) 8238 0 R (HD.7296) 8239 0 R (HD.7297) 8240 0 R (HD.7298) 8241 0 R (HD.7299) 8242 0 R (HD.73) 273 0 R (HD.730) 1042 0 R (HD.7300) 8243 0 R (HD.7301) 8244 0 R (HD.7302) 8245 0 R (HD.7303) 8246 0 R (HD.7304) 8247 0 R (HD.7305) 8248 0 R (HD.7306) 8253 0 R (HD.7307) 8254 0 R (HD.7308) 8255 0 R (HD.7309) 8256 0 R (HD.731) 1043 0 R (HD.7310) 8257 0 R (HD.7311) 8258 0 R (HD.7312) 8259 0 R (HD.7313) 8260 0 R (HD.7314) 8261 0 R (HD.7315) 8262 0 R (HD.7316) 8263 0 R (HD.7317) 8264 0 R (HD.7318) 8265 0 R ] /Limits [ (HD.7290) (HD.7318) ] >>
endobj
11968 0 obj
-<< /Names [ (HD.8266) 9283 0 R (HD.8267) 9284 0 R (HD.8268) 9285 0 R (HD.8269) 9286 0 R (HD.827) 1155 0 R (HD.8270) 9287 0 R (HD.8271) 9288 0 R (HD.8272) 9289 0 R (HD.8273) 9290 0 R (HD.8274) 9291 0 R (HD.8275) 9292 0 R (HD.8276) 9293 0 R (HD.8277) 9294 0 R (HD.8278) 9295 0 R (HD.8279) 9296 0 R (HD.828) 1156 0 R (HD.8280) 9301 0 R (HD.8281) 9302 0 R (HD.8282) 9303 0 R (HD.8283) 9304 0 R (HD.8284) 9305 0 R (HD.8285) 9306 0 R (HD.8286) 9307 0 R (HD.8287) 9308 0 R (HD.8288) 9309 0 R (HD.8289) 9310 0 R (HD.829) 1157 0 R (HD.8290) 9311 0 R (HD.8291) 9312 0 R (HD.8292) 9313 0 R (HD.8293) 9314 0 R (HD.8294) 9315 0 R ] /Limits [ (HD.8266) (HD.8294) ] >>
+<< /Names [ (HD.7319) 8266 0 R (HD.732) 1044 0 R (HD.7320) 8267 0 R (HD.7321) 8268 0 R (HD.7322) 8269 0 R (HD.7323) 8270 0 R (HD.7324) 8271 0 R (HD.7325) 8272 0 R (HD.7326) 8273 0 R (HD.7327) 8274 0 R (HD.7328) 8275 0 R (HD.7329) 8276 0 R (HD.733) 1045 0 R (HD.7330) 8277 0 R (HD.7331) 8278 0 R (HD.7332) 8279 0 R (HD.7333) 8280 0 R (HD.7334) 8281 0 R (HD.7335) 8282 0 R (HD.7336) 8283 0 R (HD.7337) 8284 0 R (HD.7338) 8285 0 R (HD.7339) 8286 0 R (HD.734) 1046 0 R (HD.7340) 8287 0 R (HD.7341) 8288 0 R (HD.7342) 8289 0 R (HD.7343) 8290 0 R (HD.7344) 8291 0 R (HD.7345) 8292 0 R (HD.7346) 8293 0 R (HD.7347) 8294 0 R ] /Limits [ (HD.7319) (HD.7347) ] >>
endobj
11969 0 obj
-<< /Names [ (HD.8295) 9316 0 R (HD.8296) 9317 0 R (HD.8297) 9318 0 R (HD.8298) 9319 0 R (HD.8299) 9320 0 R (HD.83) 283 0 R (HD.830) 1158 0 R (HD.8300) 9321 0 R (HD.8301) 9322 0 R (HD.8302) 9323 0 R (HD.8303) 9324 0 R (HD.8304) 9325 0 R (HD.8305) 9326 0 R (HD.8306) 9327 0 R (HD.8307) 9328 0 R (HD.8308) 9329 0 R (HD.8309) 9330 0 R (HD.831) 1159 0 R (HD.8310) 9331 0 R (HD.8311) 9332 0 R (HD.8312) 9333 0 R (HD.8313) 9334 0 R (HD.8314) 9335 0 R (HD.8315) 9336 0 R (HD.8316) 9337 0 R (HD.8317) 9338 0 R (HD.8318) 9339 0 R (HD.8319) 9344 0 R (HD.832) 1160 0 R (HD.8320) 9345 0 R (HD.8321) 9346 0 R (HD.8322) 9347 0 R ] /Limits [ (HD.8295) (HD.8322) ] >>
+<< /Names [ (HD.7348) 8295 0 R (HD.7349) 8296 0 R (HD.735) 1047 0 R (HD.7350) 8297 0 R (HD.7351) 8298 0 R (HD.7352) 8299 0 R (HD.7353) 8300 0 R (HD.7354) 8301 0 R (HD.7355) 8302 0 R (HD.7356) 8303 0 R (HD.7357) 8309 0 R (HD.7358) 8310 0 R (HD.7359) 8311 0 R (HD.736) 1048 0 R (HD.7360) 8312 0 R (HD.7361) 8313 0 R (HD.7362) 8314 0 R (HD.7363) 8315 0 R (HD.7364) 8316 0 R (HD.7365) 8317 0 R (HD.7366) 8318 0 R (HD.7367) 8319 0 R (HD.7368) 8320 0 R (HD.7369) 8321 0 R (HD.737) 1049 0 R (HD.7370) 8322 0 R (HD.7371) 8323 0 R (HD.7372) 8324 0 R (HD.7373) 8325 0 R (HD.7374) 8326 0 R (HD.7375) 8327 0 R (HD.7376) 8328 0 R ] /Limits [ (HD.7348) (HD.7376) ] >>
endobj
11970 0 obj
-<< /Names [ (HD.8323) 9348 0 R (HD.8324) 9349 0 R (HD.8325) 9350 0 R (HD.8326) 9351 0 R (HD.8327) 9352 0 R (HD.8328) 9353 0 R (HD.8329) 9354 0 R (HD.833) 1161 0 R (HD.8330) 9355 0 R (HD.8331) 9356 0 R (HD.8332) 9357 0 R (HD.8333) 9358 0 R (HD.8334) 9359 0 R (HD.8335) 9360 0 R (HD.8336) 9361 0 R (HD.8337) 9362 0 R (HD.8338) 9363 0 R (HD.8339) 9364 0 R (HD.834) 1162 0 R (HD.8340) 9365 0 R (HD.8341) 9366 0 R (HD.8342) 9367 0 R (HD.8343) 9368 0 R (HD.8344) 9369 0 R (HD.8345) 9370 0 R (HD.8346) 9371 0 R (HD.8347) 9372 0 R (HD.8348) 9373 0 R (HD.8349) 9374 0 R (HD.835) 1163 0 R (HD.8350) 9375 0 R (HD.8351) 9376 0 R ] /Limits [ (HD.8323) (HD.8351) ] >>
+<< /Names [ (HD.7377) 8329 0 R (HD.7378) 8330 0 R (HD.7379) 8331 0 R (HD.738) 1050 0 R (HD.7380) 8332 0 R (HD.7381) 8333 0 R (HD.7382) 8334 0 R (HD.7383) 8335 0 R (HD.7384) 8336 0 R (HD.7385) 8337 0 R (HD.7386) 8338 0 R (HD.7387) 8339 0 R (HD.7388) 8340 0 R (HD.7389) 8341 0 R (HD.739) 1051 0 R (HD.7390) 8342 0 R (HD.7391) 8343 0 R (HD.7392) 8344 0 R (HD.7393) 8345 0 R (HD.7394) 8346 0 R (HD.7395) 8347 0 R (HD.7396) 8348 0 R (HD.7397) 8349 0 R (HD.7398) 8350 0 R (HD.7399) 8351 0 R (HD.74) 274 0 R (HD.740) 1052 0 R (HD.7400) 8352 0 R (HD.7401) 8353 0 R (HD.7402) 8354 0 R (HD.7403) 8359 0 R (HD.7404) 8360 0 R ] /Limits [ (HD.7377) (HD.7404) ] >>
endobj
11971 0 obj
-<< /Names [ (HD.8352) 9377 0 R (HD.8353) 9378 0 R (HD.8354) 9379 0 R (HD.8355) 9380 0 R (HD.8356) 9381 0 R (HD.8357) 9382 0 R (HD.8358) 9383 0 R (HD.8359) 9384 0 R (HD.836) 1164 0 R (HD.8360) 9385 0 R (HD.8361) 9386 0 R (HD.8362) 9387 0 R (HD.8363) 9393 0 R (HD.8364) 9394 0 R (HD.8365) 9395 0 R (HD.8366) 9396 0 R (HD.8367) 9397 0 R (HD.8368) 9398 0 R (HD.8369) 9399 0 R (HD.837) 1165 0 R (HD.8370) 9400 0 R (HD.8371) 9401 0 R (HD.8372) 9402 0 R (HD.8373) 9403 0 R (HD.8374) 9404 0 R (HD.8375) 9405 0 R (HD.8376) 9406 0 R (HD.8377) 9407 0 R (HD.8378) 9408 0 R (HD.8379) 9409 0 R (HD.838) 1166 0 R (HD.8380) 9410 0 R ] /Limits [ (HD.8352) (HD.8380) ] >>
+<< /Names [ (HD.7405) 8361 0 R (HD.7406) 8362 0 R (HD.7407) 8363 0 R (HD.7408) 8364 0 R (HD.7409) 8365 0 R (HD.741) 1053 0 R (HD.7410) 8366 0 R (HD.7411) 8367 0 R (HD.7412) 8368 0 R (HD.7413) 8369 0 R (HD.7414) 8370 0 R (HD.7415) 8371 0 R (HD.7416) 8372 0 R (HD.7417) 8373 0 R (HD.7418) 8374 0 R (HD.7419) 8375 0 R (HD.742) 1058 0 R (HD.7420) 8376 0 R (HD.7421) 8377 0 R (HD.7422) 8378 0 R (HD.7423) 8379 0 R (HD.7424) 8380 0 R (HD.7425) 8381 0 R (HD.7426) 8382 0 R (HD.7427) 8383 0 R (HD.7428) 8384 0 R (HD.7429) 8385 0 R (HD.743) 1059 0 R (HD.7430) 8386 0 R (HD.7431) 8387 0 R (HD.7432) 8388 0 R (HD.7433) 8389 0 R ] /Limits [ (HD.7405) (HD.7433) ] >>
endobj
11972 0 obj
-<< /Names [ (HD.8381) 9411 0 R (HD.8382) 9412 0 R (HD.8383) 9413 0 R (HD.8384) 9414 0 R (HD.8385) 9415 0 R (HD.8386) 9416 0 R (HD.8387) 9417 0 R (HD.8388) 9418 0 R (HD.8389) 9419 0 R (HD.839) 1167 0 R (HD.8390) 9420 0 R (HD.8391) 9421 0 R (HD.8392) 9422 0 R (HD.8393) 9423 0 R (HD.8394) 9430 0 R (HD.8395) 9431 0 R (HD.8396) 9432 0 R (HD.8397) 9433 0 R (HD.8398) 9434 0 R (HD.8399) 9435 0 R (HD.84) 284 0 R (HD.840) 1168 0 R (HD.8400) 9436 0 R (HD.8401) 9437 0 R (HD.8402) 9438 0 R (HD.8403) 9439 0 R (HD.8404) 9440 0 R (HD.8405) 9441 0 R (HD.8406) 9442 0 R (HD.8407) 9443 0 R (HD.8408) 9444 0 R (HD.8409) 9445 0 R ] /Limits [ (HD.8381) (HD.8409) ] >>
+<< /Names [ (HD.7434) 8390 0 R (HD.7435) 8391 0 R (HD.7436) 8392 0 R (HD.7437) 8393 0 R (HD.7438) 8394 0 R (HD.7439) 8395 0 R (HD.744) 1060 0 R (HD.7440) 8396 0 R (HD.7441) 8397 0 R (HD.7442) 8398 0 R (HD.7443) 8399 0 R (HD.7444) 8400 0 R (HD.7445) 8401 0 R (HD.7446) 8402 0 R (HD.7447) 8403 0 R (HD.7448) 8404 0 R (HD.7449) 8405 0 R (HD.745) 1061 0 R (HD.7450) 8406 0 R (HD.7451) 8407 0 R (HD.7452) 8408 0 R (HD.7453) 8413 0 R (HD.7454) 8414 0 R (HD.7455) 8415 0 R (HD.7456) 8416 0 R (HD.7457) 8417 0 R (HD.7458) 8418 0 R (HD.7459) 8419 0 R (HD.746) 1062 0 R (HD.7460) 8420 0 R (HD.7461) 8421 0 R (HD.7462) 8422 0 R ] /Limits [ (HD.7434) (HD.7462) ] >>
endobj
11973 0 obj
-<< /Names [ (HD.841) 1169 0 R (HD.8410) 9446 0 R (HD.8411) 9447 0 R (HD.8412) 9448 0 R (HD.8413) 9449 0 R (HD.8414) 9450 0 R (HD.8415) 9451 0 R (HD.8416) 9452 0 R (HD.8417) 9453 0 R (HD.8418) 9454 0 R (HD.8419) 9455 0 R (HD.842) 1170 0 R (HD.8420) 9456 0 R (HD.8421) 9457 0 R (HD.8422) 9458 0 R (HD.8423) 9459 0 R (HD.8424) 9460 0 R (HD.8425) 9461 0 R (HD.8426) 9462 0 R (HD.8427) 9463 0 R (HD.8428) 9464 0 R (HD.8429) 9465 0 R (HD.843) 1171 0 R (HD.8430) 9466 0 R (HD.8431) 9467 0 R (HD.8432) 9468 0 R (HD.8433) 9469 0 R (HD.8434) 9474 0 R (HD.8435) 9475 0 R (HD.8436) 9476 0 R (HD.8437) 9477 0 R (HD.8438) 9478 0 R ] /Limits [ (HD.841) (HD.8438) ] >>
+<< /Names [ (HD.7463) 8423 0 R (HD.7464) 8424 0 R (HD.7465) 8425 0 R (HD.7466) 8426 0 R (HD.7467) 8427 0 R (HD.7468) 8428 0 R (HD.7469) 8429 0 R (HD.747) 1063 0 R (HD.7470) 8430 0 R (HD.7471) 8431 0 R (HD.7472) 8432 0 R (HD.7473) 8433 0 R (HD.7474) 8434 0 R (HD.7475) 8435 0 R (HD.7476) 8436 0 R (HD.7477) 8437 0 R (HD.7478) 8438 0 R (HD.7479) 8439 0 R (HD.748) 1064 0 R (HD.7480) 8440 0 R (HD.7481) 8441 0 R (HD.7482) 8442 0 R (HD.7483) 8443 0 R (HD.7484) 8444 0 R (HD.7485) 8445 0 R (HD.7486) 8446 0 R (HD.7487) 8447 0 R (HD.7488) 8448 0 R (HD.7489) 8449 0 R (HD.749) 1065 0 R (HD.7490) 8450 0 R (HD.7491) 8451 0 R ] /Limits [ (HD.7463) (HD.7491) ] >>
endobj
11974 0 obj
-<< /Names [ (HD.8439) 9479 0 R (HD.844) 1172 0 R (HD.8440) 9480 0 R (HD.8441) 9481 0 R (HD.8442) 9482 0 R (HD.8443) 9483 0 R (HD.8444) 9484 0 R (HD.8445) 9485 0 R (HD.8446) 9486 0 R (HD.8447) 9487 0 R (HD.8448) 9488 0 R (HD.8449) 9489 0 R (HD.845) 1173 0 R (HD.8450) 9490 0 R (HD.8451) 9491 0 R (HD.8452) 9492 0 R (HD.8453) 9493 0 R (HD.8454) 9494 0 R (HD.8455) 9495 0 R (HD.8456) 9496 0 R (HD.8457) 9497 0 R (HD.8458) 9498 0 R (HD.8459) 9499 0 R (HD.846) 1174 0 R (HD.8460) 9500 0 R (HD.8461) 9501 0 R (HD.8462) 9502 0 R (HD.8463) 9503 0 R (HD.8464) 9504 0 R (HD.8465) 9505 0 R (HD.8466) 9506 0 R (HD.8467) 9507 0 R ] /Limits [ (HD.8439) (HD.8467) ] >>
+<< /Names [ (HD.7492) 8452 0 R (HD.7493) 8453 0 R (HD.7494) 8454 0 R (HD.7495) 8455 0 R (HD.7496) 8456 0 R (HD.7497) 8457 0 R (HD.7498) 8458 0 R (HD.7499) 8459 0 R (HD.75) 275 0 R (HD.750) 1066 0 R (HD.7500) 8460 0 R (HD.7501) 8461 0 R (HD.7502) 8462 0 R (HD.7503) 8463 0 R (HD.7504) 8464 0 R (HD.7505) 8465 0 R (HD.7506) 8466 0 R (HD.7507) 8467 0 R (HD.7508) 8468 0 R (HD.7509) 8469 0 R (HD.751) 1067 0 R (HD.7510) 8470 0 R (HD.7511) 8471 0 R (HD.7512) 8472 0 R (HD.7513) 8473 0 R (HD.7514) 8474 0 R (HD.7515) 8479 0 R (HD.7516) 8480 0 R (HD.7517) 8481 0 R (HD.7518) 8482 0 R (HD.7519) 8483 0 R (HD.752) 1068 0 R ] /Limits [ (HD.7492) (HD.752) ] >>
endobj
11975 0 obj
-<< /Names [ (HD.8468) 9508 0 R (HD.8469) 9509 0 R (HD.847) 1175 0 R (HD.8470) 9510 0 R (HD.8471) 9511 0 R (HD.8472) 9512 0 R (HD.8473) 9513 0 R (HD.8474) 9514 0 R (HD.8475) 9515 0 R (HD.8476) 9516 0 R (HD.8477) 9517 0 R (HD.8478) 9518 0 R (HD.8479) 9519 0 R (HD.848) 1176 0 R (HD.8480) 9520 0 R (HD.8481) 9521 0 R (HD.8482) 9522 0 R (HD.8483) 9523 0 R (HD.8484) 9524 0 R (HD.8485) 9525 0 R (HD.8486) 9526 0 R (HD.8487) 9527 0 R (HD.8488) 9532 0 R (HD.8489) 9533 0 R (HD.849) 1177 0 R (HD.8490) 9534 0 R (HD.8491) 9535 0 R (HD.8492) 9536 0 R (HD.8493) 9537 0 R (HD.8494) 9538 0 R (HD.8495) 9539 0 R (HD.8496) 9540 0 R ] /Limits [ (HD.8468) (HD.8496) ] >>
+<< /Names [ (HD.7520) 8484 0 R (HD.7521) 8485 0 R (HD.7522) 8486 0 R (HD.7523) 8487 0 R (HD.7524) 8488 0 R (HD.7525) 8489 0 R (HD.7526) 8490 0 R (HD.7527) 8491 0 R (HD.7528) 8492 0 R (HD.7529) 8493 0 R (HD.753) 1069 0 R (HD.7530) 8494 0 R (HD.7531) 8495 0 R (HD.7532) 8496 0 R (HD.7533) 8497 0 R (HD.7534) 8498 0 R (HD.7535) 8499 0 R (HD.7536) 8500 0 R (HD.7537) 8501 0 R (HD.7538) 8502 0 R (HD.7539) 8503 0 R (HD.754) 1070 0 R (HD.7540) 8504 0 R (HD.7541) 8505 0 R (HD.7542) 8506 0 R (HD.7543) 8507 0 R (HD.7544) 8508 0 R (HD.7545) 8509 0 R (HD.7546) 8510 0 R (HD.7547) 8511 0 R (HD.7548) 8512 0 R (HD.7549) 8513 0 R ] /Limits [ (HD.7520) (HD.7549) ] >>
endobj
11976 0 obj
-<< /Names [ (HD.8497) 9541 0 R (HD.8498) 9542 0 R (HD.8499) 9543 0 R (HD.85) 285 0 R (HD.850) 1178 0 R (HD.8500) 9544 0 R (HD.8501) 9545 0 R (HD.8502) 9546 0 R (HD.8503) 9547 0 R (HD.8504) 9548 0 R (HD.8505) 9549 0 R (HD.8506) 9550 0 R (HD.8507) 9551 0 R (HD.8508) 9552 0 R (HD.8509) 9553 0 R (HD.851) 1179 0 R (HD.8510) 9554 0 R (HD.8511) 9555 0 R (HD.8512) 9556 0 R (HD.8513) 9557 0 R (HD.8514) 9558 0 R (HD.8515) 9559 0 R (HD.8516) 9560 0 R (HD.8517) 9561 0 R (HD.8518) 9562 0 R (HD.8519) 9563 0 R (HD.852) 1180 0 R (HD.8520) 9564 0 R (HD.8521) 9565 0 R (HD.8522) 9566 0 R (HD.8523) 9567 0 R (HD.8524) 9568 0 R ] /Limits [ (HD.8497) (HD.8524) ] >>
+<< /Names [ (HD.755) 1071 0 R (HD.7550) 8514 0 R (HD.7551) 8515 0 R (HD.7552) 8516 0 R (HD.7553) 8517 0 R (HD.7554) 8518 0 R (HD.7555) 8519 0 R (HD.7556) 8520 0 R (HD.7557) 8521 0 R (HD.7558) 8522 0 R (HD.7559) 8523 0 R (HD.756) 1072 0 R (HD.7560) 8524 0 R (HD.7561) 8525 0 R (HD.7562) 8526 0 R (HD.7563) 8531 0 R (HD.7564) 8532 0 R (HD.7565) 8533 0 R (HD.7566) 8534 0 R (HD.7567) 8535 0 R (HD.7568) 8536 0 R (HD.7569) 8537 0 R (HD.757) 1073 0 R (HD.7570) 8538 0 R (HD.7571) 8539 0 R (HD.7572) 8540 0 R (HD.7573) 8541 0 R (HD.7574) 8542 0 R (HD.7575) 8543 0 R (HD.7576) 8544 0 R (HD.7577) 8545 0 R (HD.7578) 8546 0 R ] /Limits [ (HD.755) (HD.7578) ] >>
endobj
11977 0 obj
-<< /Names [ (HD.8525) 9569 0 R (HD.8526) 9570 0 R (HD.8527) 9571 0 R (HD.8528) 9572 0 R (HD.8529) 9573 0 R (HD.853) 1181 0 R (HD.8530) 9574 0 R (HD.8531) 9575 0 R (HD.8532) 9576 0 R (HD.8533) 9577 0 R (HD.8534) 9578 0 R (HD.8535) 9579 0 R (HD.8536) 9580 0 R (HD.8537) 9581 0 R (HD.8538) 9582 0 R (HD.8539) 9583 0 R (HD.854) 1182 0 R (HD.8540) 9584 0 R (HD.8541) 9585 0 R (HD.8542) 9586 0 R (HD.8543) 9591 0 R (HD.8544) 9592 0 R (HD.8545) 9593 0 R (HD.8546) 9594 0 R (HD.8547) 9595 0 R (HD.8548) 9596 0 R (HD.8549) 9597 0 R (HD.855) 1183 0 R (HD.8550) 9598 0 R (HD.8551) 9599 0 R (HD.8552) 9600 0 R (HD.8553) 9601 0 R ] /Limits [ (HD.8525) (HD.8553) ] >>
+<< /Names [ (HD.7579) 8547 0 R (HD.758) 1074 0 R (HD.7580) 8548 0 R (HD.7581) 8549 0 R (HD.7582) 8550 0 R (HD.7583) 8551 0 R (HD.7584) 8552 0 R (HD.7585) 8553 0 R (HD.7586) 8554 0 R (HD.7587) 8555 0 R (HD.7588) 8556 0 R (HD.7589) 8557 0 R (HD.759) 1075 0 R (HD.7590) 8558 0 R (HD.7591) 8559 0 R (HD.7592) 8560 0 R (HD.7593) 8561 0 R (HD.7594) 8562 0 R (HD.7595) 8563 0 R (HD.7596) 8564 0 R (HD.7597) 8565 0 R (HD.7598) 8566 0 R (HD.7599) 8567 0 R (HD.76) 276 0 R (HD.760) 1076 0 R (HD.7600) 8568 0 R (HD.7601) 8569 0 R (HD.7602) 8570 0 R (HD.7603) 8571 0 R (HD.7604) 8572 0 R (HD.7605) 8573 0 R (HD.7606) 8574 0 R ] /Limits [ (HD.7579) (HD.7606) ] >>
endobj
11978 0 obj
-<< /Names [ (HD.8554) 9602 0 R (HD.8555) 9603 0 R (HD.8556) 9604 0 R (HD.8557) 9605 0 R (HD.8558) 9606 0 R (HD.8559) 9607 0 R (HD.856) 1184 0 R (HD.8560) 9608 0 R (HD.8561) 9609 0 R (HD.8562) 9610 0 R (HD.8563) 9611 0 R (HD.8564) 9612 0 R (HD.8565) 9613 0 R (HD.8566) 9614 0 R (HD.8567) 9615 0 R (HD.8568) 9616 0 R (HD.8569) 9617 0 R (HD.857) 1185 0 R (HD.8570) 9618 0 R (HD.8571) 9619 0 R (HD.8572) 9620 0 R (HD.8573) 9621 0 R (HD.8574) 9622 0 R (HD.8575) 9623 0 R (HD.8576) 9624 0 R (HD.8577) 9625 0 R (HD.8578) 9626 0 R (HD.8579) 9627 0 R (HD.858) 1186 0 R (HD.8580) 9628 0 R (HD.8581) 9629 0 R (HD.8582) 9630 0 R ] /Limits [ (HD.8554) (HD.8582) ] >>
+<< /Names [ (HD.7607) 8575 0 R (HD.7608) 8576 0 R (HD.7609) 8577 0 R (HD.761) 1077 0 R (HD.7610) 8582 0 R (HD.7611) 8583 0 R (HD.7612) 8584 0 R (HD.7613) 8585 0 R (HD.7614) 8586 0 R (HD.7615) 8587 0 R (HD.7616) 8588 0 R (HD.7617) 8589 0 R (HD.7618) 8590 0 R (HD.7619) 8591 0 R (HD.762) 1078 0 R (HD.7620) 8592 0 R (HD.7621) 8593 0 R (HD.7622) 8594 0 R (HD.7623) 8595 0 R (HD.7624) 8596 0 R (HD.7625) 8597 0 R (HD.7626) 8598 0 R (HD.7627) 8599 0 R (HD.7628) 8600 0 R (HD.7629) 8601 0 R (HD.763) 1079 0 R (HD.7630) 8602 0 R (HD.7631) 8603 0 R (HD.7632) 8604 0 R (HD.7633) 8605 0 R (HD.7634) 8606 0 R (HD.7635) 8607 0 R ] /Limits [ (HD.7607) (HD.7635) ] >>
endobj
11979 0 obj
-<< /Names [ (HD.8583) 9631 0 R (HD.8584) 9632 0 R (HD.8585) 9633 0 R (HD.8586) 9634 0 R (HD.8587) 9639 0 R (HD.8588) 9640 0 R (HD.8589) 9641 0 R (HD.859) 1187 0 R (HD.8590) 9642 0 R (HD.8591) 9643 0 R (HD.8592) 9644 0 R (HD.8593) 9645 0 R (HD.8594) 9646 0 R (HD.8595) 9647 0 R (HD.8596) 9648 0 R (HD.8597) 9649 0 R (HD.8598) 9650 0 R (HD.8599) 9651 0 R (HD.86) 286 0 R (HD.860) 1188 0 R (HD.8600) 9652 0 R (HD.8601) 9653 0 R (HD.8602) 9654 0 R (HD.8603) 9655 0 R (HD.8604) 9656 0 R (HD.8605) 9657 0 R (HD.8606) 9658 0 R (HD.8607) 9659 0 R (HD.8608) 9660 0 R (HD.8609) 9661 0 R (HD.861) 1189 0 R (HD.8610) 9662 0 R ] /Limits [ (HD.8583) (HD.8610) ] >>
+<< /Names [ (HD.7636) 8608 0 R (HD.7637) 8609 0 R (HD.7638) 8610 0 R (HD.7639) 8611 0 R (HD.764) 1080 0 R (HD.7640) 8612 0 R (HD.7641) 8613 0 R (HD.7642) 8614 0 R (HD.7643) 8615 0 R (HD.7644) 8616 0 R (HD.7645) 8617 0 R (HD.7646) 8618 0 R (HD.7647) 8619 0 R (HD.7648) 8620 0 R (HD.7649) 8621 0 R (HD.765) 1081 0 R (HD.7650) 8622 0 R (HD.7651) 8623 0 R (HD.7652) 8624 0 R (HD.7653) 8625 0 R (HD.7654) 8626 0 R (HD.7655) 8627 0 R (HD.7656) 8628 0 R (HD.7657) 8629 0 R (HD.7658) 8630 0 R (HD.7659) 8631 0 R (HD.766) 1086 0 R (HD.7660) 8632 0 R (HD.7661) 8633 0 R (HD.7662) 8634 0 R (HD.7663) 8635 0 R (HD.7664) 8636 0 R ] /Limits [ (HD.7636) (HD.7664) ] >>
endobj
11980 0 obj
-<< /Names [ (HD.8611) 9663 0 R (HD.8612) 9664 0 R (HD.8613) 9665 0 R (HD.8614) 9666 0 R (HD.8615) 9667 0 R (HD.8616) 9668 0 R (HD.8617) 9669 0 R (HD.8618) 9670 0 R (HD.8619) 9671 0 R (HD.862) 1190 0 R (HD.8620) 9672 0 R (HD.8621) 9673 0 R (HD.8622) 9674 0 R (HD.8623) 9675 0 R (HD.8624) 9676 0 R (HD.8625) 9677 0 R (HD.8626) 9678 0 R (HD.8627) 9679 0 R (HD.8628) 9680 0 R (HD.8629) 9681 0 R (HD.863) 1191 0 R (HD.8630) 9682 0 R (HD.8631) 9683 0 R (HD.8632) 9684 0 R (HD.8633) 9685 0 R (HD.8634) 9686 0 R (HD.8635) 9687 0 R (HD.8636) 9688 0 R (HD.8637) 9689 0 R (HD.8638) 9690 0 R (HD.8639) 9691 0 R (HD.864) 1192 0 R ] /Limits [ (HD.8611) (HD.864) ] >>
+<< /Names [ (HD.7665) 8637 0 R (HD.7666) 8638 0 R (HD.7667) 8639 0 R (HD.7668) 8640 0 R (HD.7669) 8641 0 R (HD.767) 1087 0 R (HD.7670) 8646 0 R (HD.7671) 8647 0 R (HD.7672) 8648 0 R (HD.7673) 8649 0 R (HD.7674) 8650 0 R (HD.7675) 8651 0 R (HD.7676) 8652 0 R (HD.7677) 8653 0 R (HD.7678) 8654 0 R (HD.7679) 8655 0 R (HD.768) 1088 0 R (HD.7680) 8656 0 R (HD.7681) 8657 0 R (HD.7682) 8658 0 R (HD.7683) 8659 0 R (HD.7684) 8660 0 R (HD.7685) 8661 0 R (HD.7686) 8662 0 R (HD.7687) 8663 0 R (HD.7688) 8664 0 R (HD.7689) 8665 0 R (HD.769) 1089 0 R (HD.7690) 8666 0 R (HD.7691) 8667 0 R (HD.7692) 8668 0 R (HD.7693) 8669 0 R ] /Limits [ (HD.7665) (HD.7693) ] >>
endobj
11981 0 obj
-<< /Names [ (HD.8640) 9692 0 R (HD.8641) 9693 0 R (HD.8642) 9694 0 R (HD.8643) 9695 0 R (HD.8644) 9696 0 R (HD.8645) 9697 0 R (HD.8646) 9702 0 R (HD.8647) 9703 0 R (HD.8648) 9704 0 R (HD.8649) 9705 0 R (HD.865) 1193 0 R (HD.8650) 9706 0 R (HD.8651) 9707 0 R (HD.8652) 9708 0 R (HD.8653) 9709 0 R (HD.8654) 9710 0 R (HD.8655) 9711 0 R (HD.8656) 9712 0 R (HD.8657) 9713 0 R (HD.8658) 9714 0 R (HD.8659) 9715 0 R (HD.866) 1194 0 R (HD.8660) 9716 0 R (HD.8661) 9717 0 R (HD.8662) 9718 0 R (HD.8663) 9719 0 R (HD.8664) 9720 0 R (HD.8665) 9721 0 R (HD.8666) 9722 0 R (HD.8667) 9723 0 R (HD.8668) 9724 0 R (HD.8669) 9725 0 R ] /Limits [ (HD.8640) (HD.8669) ] >>
+<< /Names [ (HD.7694) 8670 0 R (HD.7695) 8671 0 R (HD.7696) 8672 0 R (HD.7697) 8673 0 R (HD.7698) 8674 0 R (HD.7699) 8675 0 R (HD.77) 277 0 R (HD.770) 1090 0 R (HD.7700) 8676 0 R (HD.7701) 8677 0 R (HD.7702) 8678 0 R (HD.7703) 8679 0 R (HD.7704) 8680 0 R (HD.7705) 8685 0 R (HD.7706) 8686 0 R (HD.7707) 8687 0 R (HD.7708) 8688 0 R (HD.7709) 8689 0 R (HD.771) 1091 0 R (HD.7710) 8690 0 R (HD.7711) 8691 0 R (HD.7712) 8692 0 R (HD.7713) 8693 0 R (HD.7714) 8694 0 R (HD.7715) 8695 0 R (HD.7716) 8696 0 R (HD.7717) 8697 0 R (HD.7718) 8698 0 R (HD.7719) 8699 0 R (HD.772) 1092 0 R (HD.7720) 8700 0 R (HD.7721) 8701 0 R ] /Limits [ (HD.7694) (HD.7721) ] >>
endobj
11982 0 obj
-<< /Names [ (HD.867) 1195 0 R (HD.8670) 9726 0 R (HD.8671) 9727 0 R (HD.8672) 9728 0 R (HD.8673) 9729 0 R (HD.8674) 9730 0 R (HD.8675) 9731 0 R (HD.8676) 9732 0 R (HD.8677) 9733 0 R (HD.8678) 9734 0 R (HD.8679) 9735 0 R (HD.868) 1196 0 R (HD.8680) 9736 0 R (HD.8681) 9737 0 R (HD.8682) 9738 0 R (HD.8683) 9739 0 R (HD.8684) 9740 0 R (HD.8685) 9741 0 R (HD.8686) 9742 0 R (HD.8687) 9743 0 R (HD.8688) 9744 0 R (HD.8689) 9745 0 R (HD.869) 1201 0 R (HD.8690) 9746 0 R (HD.8691) 9747 0 R (HD.8692) 9748 0 R (HD.8693) 9749 0 R (HD.8694) 9750 0 R (HD.8695) 9755 0 R (HD.8696) 9756 0 R (HD.8697) 9757 0 R (HD.8698) 9758 0 R ] /Limits [ (HD.867) (HD.8698) ] >>
+<< /Names [ (HD.7722) 8702 0 R (HD.7723) 8703 0 R (HD.7724) 8704 0 R (HD.7725) 8705 0 R (HD.7726) 8706 0 R (HD.7727) 8707 0 R (HD.7728) 8708 0 R (HD.7729) 8709 0 R (HD.773) 1093 0 R (HD.7730) 8710 0 R (HD.7731) 8711 0 R (HD.7732) 8712 0 R (HD.7733) 8713 0 R (HD.7734) 8714 0 R (HD.7735) 8715 0 R (HD.7736) 8716 0 R (HD.7737) 8717 0 R (HD.7738) 8718 0 R (HD.7739) 8719 0 R (HD.774) 1094 0 R (HD.7740) 8720 0 R (HD.7741) 8721 0 R (HD.7742) 8722 0 R (HD.7743) 8723 0 R (HD.7744) 8724 0 R (HD.7745) 8725 0 R (HD.7746) 8726 0 R (HD.7747) 8727 0 R (HD.7748) 8728 0 R (HD.7749) 8729 0 R (HD.775) 1095 0 R (HD.7750) 8730 0 R ] /Limits [ (HD.7722) (HD.7750) ] >>
endobj
11983 0 obj
-<< /Names [ (HD.8699) 9759 0 R (HD.87) 287 0 R (HD.870) 1202 0 R (HD.8700) 9760 0 R (HD.8701) 9761 0 R (HD.8702) 9762 0 R (HD.8703) 9763 0 R (HD.8704) 9764 0 R (HD.8705) 9765 0 R (HD.8706) 9766 0 R (HD.8707) 9767 0 R (HD.8708) 9768 0 R (HD.8709) 9769 0 R (HD.871) 1203 0 R (HD.8710) 9770 0 R (HD.8711) 9771 0 R (HD.8712) 9772 0 R (HD.8713) 9773 0 R (HD.8714) 9774 0 R (HD.8715) 9775 0 R (HD.8716) 9776 0 R (HD.8717) 9777 0 R (HD.8718) 9778 0 R (HD.8719) 9779 0 R (HD.872) 1204 0 R (HD.8720) 9780 0 R (HD.8721) 9781 0 R (HD.8722) 9782 0 R (HD.8723) 9783 0 R (HD.8724) 9784 0 R (HD.8725) 9785 0 R (HD.8726) 9786 0 R ] /Limits [ (HD.8699) (HD.8726) ] >>
+<< /Names [ (HD.7751) 8731 0 R (HD.7752) 8736 0 R (HD.7753) 8737 0 R (HD.7754) 8738 0 R (HD.7755) 8739 0 R (HD.7756) 8740 0 R (HD.7757) 8741 0 R (HD.7758) 8742 0 R (HD.7759) 8743 0 R (HD.776) 1096 0 R (HD.7760) 8744 0 R (HD.7761) 8745 0 R (HD.7762) 8746 0 R (HD.7763) 8747 0 R (HD.7764) 8748 0 R (HD.7765) 8749 0 R (HD.7766) 8750 0 R (HD.7767) 8751 0 R (HD.7768) 8752 0 R (HD.7769) 8753 0 R (HD.777) 1097 0 R (HD.7770) 8754 0 R (HD.7771) 8755 0 R (HD.7772) 8756 0 R (HD.7773) 8757 0 R (HD.7774) 8758 0 R (HD.7775) 8759 0 R (HD.7776) 8760 0 R (HD.7777) 8761 0 R (HD.7778) 8762 0 R (HD.7779) 8763 0 R (HD.778) 1098 0 R ] /Limits [ (HD.7751) (HD.778) ] >>
endobj
11984 0 obj
-<< /Names [ (HD.8727) 9787 0 R (HD.8728) 9788 0 R (HD.8729) 9789 0 R (HD.873) 1205 0 R (HD.8730) 9790 0 R (HD.8731) 9791 0 R (HD.8732) 9792 0 R (HD.8733) 9793 0 R (HD.8734) 9794 0 R (HD.8735) 9795 0 R (HD.8736) 9796 0 R (HD.8737) 9797 0 R (HD.8738) 9798 0 R (HD.8739) 9799 0 R (HD.874) 1206 0 R (HD.8740) 9800 0 R (HD.8741) 9801 0 R (HD.8742) 9802 0 R (HD.8743) 9803 0 R (HD.8744) 9804 0 R (HD.8745) 9805 0 R (HD.8746) 9810 0 R (HD.8747) 9811 0 R (HD.8748) 9812 0 R (HD.8749) 9813 0 R (HD.875) 1207 0 R (HD.8750) 9814 0 R (HD.8751) 9815 0 R (HD.8752) 9816 0 R (HD.8753) 9817 0 R (HD.8754) 9818 0 R (HD.8755) 9819 0 R ] /Limits [ (HD.8727) (HD.8755) ] >>
+<< /Names [ (HD.7780) 8764 0 R (HD.7781) 8765 0 R (HD.7782) 8766 0 R (HD.7783) 8767 0 R (HD.7784) 8768 0 R (HD.7785) 8769 0 R (HD.7786) 8770 0 R (HD.7787) 8771 0 R (HD.7788) 8772 0 R (HD.7789) 8773 0 R (HD.779) 1099 0 R (HD.7790) 8774 0 R (HD.7791) 8775 0 R (HD.7792) 8776 0 R (HD.7793) 8777 0 R (HD.7794) 8778 0 R (HD.7795) 8779 0 R (HD.7796) 8780 0 R (HD.7797) 8781 0 R (HD.7798) 8782 0 R (HD.7799) 8783 0 R (HD.78) 278 0 R (HD.780) 1100 0 R (HD.7800) 8784 0 R (HD.7801) 8785 0 R (HD.7802) 8786 0 R (HD.7803) 8787 0 R (HD.7804) 8788 0 R (HD.7805) 8789 0 R (HD.7806) 8790 0 R (HD.7807) 8791 0 R (HD.7808) 8792 0 R ] /Limits [ (HD.7780) (HD.7808) ] >>
endobj
11985 0 obj
-<< /Names [ (HD.8756) 9820 0 R (HD.8757) 9821 0 R (HD.8758) 9822 0 R (HD.8759) 9823 0 R (HD.876) 1208 0 R (HD.8760) 9824 0 R (HD.8761) 9825 0 R (HD.8762) 9826 0 R (HD.8763) 9827 0 R (HD.8764) 9828 0 R (HD.8765) 9829 0 R (HD.8766) 9830 0 R (HD.8767) 9831 0 R (HD.8768) 9832 0 R (HD.8769) 9833 0 R (HD.877) 1209 0 R (HD.8770) 9834 0 R (HD.8771) 9835 0 R (HD.8772) 9836 0 R (HD.8773) 9837 0 R (HD.8774) 9838 0 R (HD.8775) 9839 0 R (HD.8776) 9840 0 R (HD.8777) 9841 0 R (HD.8778) 9842 0 R (HD.8779) 9843 0 R (HD.878) 1210 0 R (HD.8780) 9844 0 R (HD.8781) 9849 0 R (HD.8782) 9850 0 R (HD.8783) 9851 0 R (HD.8784) 9852 0 R ] /Limits [ (HD.8756) (HD.8784) ] >>
+<< /Names [ (HD.7809) 8793 0 R (HD.781) 1101 0 R (HD.7810) 8794 0 R (HD.7811) 8795 0 R (HD.7812) 8796 0 R (HD.7813) 8797 0 R (HD.7814) 8802 0 R (HD.7815) 8803 0 R (HD.7816) 8804 0 R (HD.7817) 8805 0 R (HD.7818) 8806 0 R (HD.7819) 8807 0 R (HD.782) 1102 0 R (HD.7820) 8808 0 R (HD.7821) 8809 0 R (HD.7822) 8810 0 R (HD.7823) 8811 0 R (HD.7824) 8812 0 R (HD.7825) 8813 0 R (HD.7826) 8814 0 R (HD.7827) 8815 0 R (HD.7828) 8816 0 R (HD.7829) 8817 0 R (HD.783) 1107 0 R (HD.7830) 8818 0 R (HD.7831) 8819 0 R (HD.7832) 8820 0 R (HD.7833) 8821 0 R (HD.7834) 8822 0 R (HD.7835) 8823 0 R (HD.7836) 8824 0 R (HD.7837) 8825 0 R ] /Limits [ (HD.7809) (HD.7837) ] >>
endobj
11986 0 obj
-<< /Names [ (HD.8785) 9853 0 R (HD.8786) 9854 0 R (HD.8787) 9855 0 R (HD.8788) 9856 0 R (HD.8789) 9857 0 R (HD.879) 1211 0 R (HD.8790) 9858 0 R (HD.8791) 9859 0 R (HD.8792) 9860 0 R (HD.8793) 9861 0 R (HD.8794) 9862 0 R (HD.8795) 9863 0 R (HD.8796) 9864 0 R (HD.8797) 9865 0 R (HD.8798) 9866 0 R (HD.8799) 9867 0 R (HD.88) 288 0 R (HD.880) 1212 0 R (HD.8800) 9868 0 R (HD.8801) 9869 0 R (HD.8802) 9870 0 R (HD.8803) 9871 0 R (HD.8804) 9872 0 R (HD.8805) 9873 0 R (HD.8806) 9874 0 R (HD.8807) 9875 0 R (HD.8808) 9876 0 R (HD.8809) 9877 0 R (HD.881) 1213 0 R (HD.8810) 9878 0 R (HD.8811) 9879 0 R (HD.8812) 9880 0 R ] /Limits [ (HD.8785) (HD.8812) ] >>
+<< /Names [ (HD.7838) 8826 0 R (HD.7839) 8827 0 R (HD.784) 1108 0 R (HD.7840) 8828 0 R (HD.7841) 8829 0 R (HD.7842) 8830 0 R (HD.7843) 8831 0 R (HD.7844) 8832 0 R (HD.7845) 8833 0 R (HD.7846) 8834 0 R (HD.7847) 8835 0 R (HD.7848) 8836 0 R (HD.7849) 8837 0 R (HD.785) 1109 0 R (HD.7850) 8838 0 R (HD.7851) 8839 0 R (HD.7852) 8840 0 R (HD.7853) 8841 0 R (HD.7854) 8842 0 R (HD.7855) 8843 0 R (HD.7856) 8844 0 R (HD.7857) 8845 0 R (HD.7858) 8846 0 R (HD.7859) 8847 0 R (HD.786) 1110 0 R (HD.7860) 8848 0 R (HD.7861) 8849 0 R (HD.7862) 8850 0 R (HD.7863) 8851 0 R (HD.7864) 8852 0 R (HD.7865) 8853 0 R (HD.7866) 8854 0 R ] /Limits [ (HD.7838) (HD.7866) ] >>
endobj
11987 0 obj
-<< /Names [ (HD.8813) 9881 0 R (HD.8814) 9882 0 R (HD.8815) 9883 0 R (HD.8816) 9884 0 R (HD.8817) 9885 0 R (HD.8818) 9886 0 R (HD.8819) 9887 0 R (HD.882) 1214 0 R (HD.8820) 9888 0 R (HD.8821) 9889 0 R (HD.8822) 9890 0 R (HD.8823) 9891 0 R (HD.8824) 9892 0 R (HD.8825) 9893 0 R (HD.8826) 9894 0 R (HD.8827) 9899 0 R (HD.8828) 9900 0 R (HD.8829) 9901 0 R (HD.883) 1215 0 R (HD.8830) 9902 0 R (HD.8831) 9903 0 R (HD.8832) 9904 0 R (HD.8833) 9905 0 R (HD.8834) 9906 0 R (HD.8835) 9907 0 R (HD.8836) 9908 0 R (HD.8837) 9909 0 R (HD.8838) 9910 0 R (HD.8839) 9911 0 R (HD.884) 1216 0 R (HD.8840) 9912 0 R (HD.8841) 9913 0 R ] /Limits [ (HD.8813) (HD.8841) ] >>
+<< /Names [ (HD.7867) 8855 0 R (HD.7868) 8856 0 R (HD.7869) 8857 0 R (HD.787) 1111 0 R (HD.7870) 8858 0 R (HD.7871) 8859 0 R (HD.7872) 8860 0 R (HD.7873) 8861 0 R (HD.7874) 8867 0 R (HD.7875) 8868 0 R (HD.7876) 8869 0 R (HD.7877) 8870 0 R (HD.7878) 8871 0 R (HD.7879) 8872 0 R (HD.788) 1112 0 R (HD.7880) 8873 0 R (HD.7881) 8874 0 R (HD.7882) 8875 0 R (HD.7883) 8876 0 R (HD.7884) 8877 0 R (HD.7885) 8878 0 R (HD.7886) 8879 0 R (HD.7887) 8880 0 R (HD.7888) 8881 0 R (HD.7889) 8882 0 R (HD.789) 1113 0 R (HD.7890) 8883 0 R (HD.7891) 8884 0 R (HD.7892) 8885 0 R (HD.7893) 8886 0 R (HD.7894) 8887 0 R (HD.7895) 8888 0 R ] /Limits [ (HD.7867) (HD.7895) ] >>
endobj
11988 0 obj
-<< /Names [ (HD.8842) 9914 0 R (HD.8843) 9915 0 R (HD.8844) 9916 0 R (HD.8845) 9917 0 R (HD.8846) 9918 0 R (HD.8847) 9919 0 R (HD.8848) 9920 0 R (HD.8849) 9921 0 R (HD.885) 1217 0 R (HD.8850) 9922 0 R (HD.8851) 9923 0 R (HD.8852) 9924 0 R (HD.8853) 9925 0 R (HD.8854) 9926 0 R (HD.8855) 9927 0 R (HD.8856) 9928 0 R (HD.8857) 9929 0 R (HD.8858) 9930 0 R (HD.8859) 9931 0 R (HD.886) 1218 0 R (HD.8860) 9932 0 R (HD.8861) 9933 0 R (HD.8862) 9934 0 R (HD.8863) 9935 0 R (HD.8864) 9936 0 R (HD.8865) 9937 0 R (HD.8866) 9938 0 R (HD.8867) 9939 0 R (HD.8868) 9940 0 R (HD.8869) 9941 0 R (HD.887) 1219 0 R (HD.8870) 9942 0 R ] /Limits [ (HD.8842) (HD.8870) ] >>
+<< /Names [ (HD.7896) 8889 0 R (HD.7897) 8890 0 R (HD.7898) 8891 0 R (HD.7899) 8892 0 R (HD.79) 279 0 R (HD.790) 1114 0 R (HD.7900) 8893 0 R (HD.7901) 8894 0 R (HD.7902) 8895 0 R (HD.7903) 8896 0 R (HD.7904) 8897 0 R (HD.7905) 8898 0 R (HD.7906) 8899 0 R (HD.7907) 8900 0 R (HD.7908) 8901 0 R (HD.7909) 8902 0 R (HD.791) 1115 0 R (HD.7910) 8903 0 R (HD.7911) 8904 0 R (HD.7912) 8905 0 R (HD.7913) 8906 0 R (HD.7914) 8907 0 R (HD.7915) 8908 0 R (HD.7916) 8909 0 R (HD.7917) 8910 0 R (HD.7918) 8911 0 R (HD.7919) 8912 0 R (HD.792) 1116 0 R (HD.7920) 8913 0 R (HD.7921) 8914 0 R (HD.7922) 8915 0 R (HD.7923) 8916 0 R ] /Limits [ (HD.7896) (HD.7923) ] >>
endobj
11989 0 obj
-<< /Names [ (HD.8871) 9943 0 R (HD.8872) 9944 0 R (HD.8873) 9945 0 R (HD.8874) 9946 0 R (HD.8875) 9947 0 R (HD.8876) 9953 0 R (HD.8877) 9954 0 R (HD.8878) 9955 0 R (HD.8879) 9956 0 R (HD.888) 1220 0 R (HD.8880) 9957 0 R (HD.8881) 9958 0 R (HD.8882) 9959 0 R (HD.8883) 9960 0 R (HD.8884) 9961 0 R (HD.8885) 9962 0 R (HD.8886) 9963 0 R (HD.8887) 9964 0 R (HD.8888) 9965 0 R (HD.8889) 9966 0 R (HD.889) 1221 0 R (HD.8890) 9967 0 R (HD.8891) 9968 0 R (HD.8892) 9969 0 R (HD.8893) 9970 0 R (HD.8894) 9971 0 R (HD.8895) 9972 0 R (HD.8896) 9973 0 R (HD.8897) 9974 0 R (HD.8898) 9975 0 R (HD.8899) 9976 0 R (HD.89) 289 0 R ] /Limits [ (HD.8871) (HD.89) ] >>
+<< /Names [ (HD.7924) 8917 0 R (HD.7925) 8922 0 R (HD.7926) 8923 0 R (HD.7927) 8924 0 R (HD.7928) 8925 0 R (HD.7929) 8926 0 R (HD.793) 1117 0 R (HD.7930) 8927 0 R (HD.7931) 8928 0 R (HD.7932) 8929 0 R (HD.7933) 8930 0 R (HD.7934) 8931 0 R (HD.7935) 8932 0 R (HD.7936) 8933 0 R (HD.7937) 8934 0 R (HD.7938) 8935 0 R (HD.7939) 8936 0 R (HD.794) 1118 0 R (HD.7940) 8937 0 R (HD.7941) 8938 0 R (HD.7942) 8939 0 R (HD.7943) 8940 0 R (HD.7944) 8941 0 R (HD.7945) 8942 0 R (HD.7946) 8943 0 R (HD.7947) 8944 0 R (HD.7948) 8945 0 R (HD.7949) 8946 0 R (HD.795) 1119 0 R (HD.7950) 8947 0 R (HD.7951) 8948 0 R (HD.7952) 8949 0 R ] /Limits [ (HD.7924) (HD.7952) ] >>
endobj
11990 0 obj
-<< /Names [ (HD.890) 1222 0 R (HD.8900) 9977 0 R (HD.8901) 9978 0 R (HD.8902) 9979 0 R (HD.8903) 9980 0 R (HD.8904) 9981 0 R (HD.8905) 9982 0 R (HD.8906) 9983 0 R (HD.8907) 9984 0 R (HD.8908) 9985 0 R (HD.8909) 9986 0 R (HD.891) 1223 0 R (HD.8910) 9987 0 R (HD.8911) 9988 0 R (HD.8912) 9989 0 R (HD.8913) 9990 0 R (HD.8914) 9991 0 R (HD.8915) 9992 0 R (HD.8916) 9993 0 R (HD.8917) 9994 0 R (HD.8918) 9995 0 R (HD.8919) 9996 0 R (HD.892) 1224 0 R (HD.8920) 9997 0 R (HD.8921) 9998 0 R (HD.8922) 9999 0 R (HD.8923) 10000 0 R (HD.8924) 10001 0 R (HD.8925) 10002 0 R (HD.8926) 10003 0 R (HD.8927) 10004 0 R (HD.8928) 10005 0 R ] /Limits [ (HD.890) (HD.8928) ] >>
+<< /Names [ (HD.7953) 8950 0 R (HD.7954) 8951 0 R (HD.7955) 8952 0 R (HD.7956) 8953 0 R (HD.7957) 8954 0 R (HD.7958) 8955 0 R (HD.7959) 8956 0 R (HD.796) 1120 0 R (HD.7960) 8957 0 R (HD.7961) 8958 0 R (HD.7962) 8959 0 R (HD.7963) 8960 0 R (HD.7964) 8961 0 R (HD.7965) 8962 0 R (HD.7966) 8963 0 R (HD.7967) 8964 0 R (HD.7968) 8965 0 R (HD.7969) 8966 0 R (HD.797) 1121 0 R (HD.7970) 8967 0 R (HD.7971) 8968 0 R (HD.7972) 8969 0 R (HD.7973) 8970 0 R (HD.7974) 8971 0 R (HD.7975) 8972 0 R (HD.7976) 8973 0 R (HD.7977) 8974 0 R (HD.7978) 8975 0 R (HD.7979) 8976 0 R (HD.798) 1122 0 R (HD.7980) 8977 0 R (HD.7981) 8978 0 R ] /Limits [ (HD.7953) (HD.7981) ] >>
endobj
11991 0 obj
-<< /Names [ (HD.8929) 10006 0 R (HD.893) 1225 0 R (HD.8930) 10007 0 R (HD.8931) 10008 0 R (HD.8932) 10009 0 R (HD.8933) 10010 0 R (HD.8934) 10015 0 R (HD.8935) 10016 0 R (HD.8936) 10017 0 R (HD.8937) 10018 0 R (HD.8938) 10019 0 R (HD.8939) 10020 0 R (HD.894) 1226 0 R (HD.8940) 10021 0 R (HD.8941) 10022 0 R (HD.8942) 10023 0 R (HD.8943) 10024 0 R (HD.8944) 10025 0 R (HD.8945) 10026 0 R (HD.8946) 10027 0 R (HD.8947) 10028 0 R (HD.8948) 10029 0 R (HD.8949) 10030 0 R (HD.895) 1227 0 R (HD.8950) 10031 0 R (HD.8951) 10032 0 R (HD.8952) 10033 0 R (HD.8953) 10034 0 R (HD.8954) 10035 0 R (HD.8955) 10036 0 R (HD.8956) 10037 0 R (HD.8957) 10038 0 R ] /Limits [ (HD.8929) (HD.8957) ] >>
+<< /Names [ (HD.7982) 8979 0 R (HD.7983) 8984 0 R (HD.7984) 8985 0 R (HD.7985) 8986 0 R (HD.7986) 8987 0 R (HD.7987) 8988 0 R (HD.7988) 8989 0 R (HD.7989) 8990 0 R (HD.799) 1123 0 R (HD.7990) 8991 0 R (HD.7991) 8992 0 R (HD.7992) 8993 0 R (HD.7993) 8994 0 R (HD.7994) 8995 0 R (HD.7995) 8996 0 R (HD.7996) 8997 0 R (HD.7997) 8998 0 R (HD.7998) 8999 0 R (HD.7999) 9000 0 R (HD.8) 196 0 R (HD.80) 280 0 R (HD.800) 1124 0 R (HD.8000) 9001 0 R (HD.8001) 9002 0 R (HD.8002) 9003 0 R (HD.8003) 9004 0 R (HD.8004) 9005 0 R (HD.8005) 9006 0 R (HD.8006) 9007 0 R (HD.8007) 9008 0 R (HD.8008) 9009 0 R (HD.8009) 9010 0 R ] /Limits [ (HD.7982) (HD.8009) ] >>
endobj
11992 0 obj
-<< /Names [ (HD.8958) 10039 0 R (HD.8959) 10040 0 R (HD.896) 1228 0 R (HD.8960) 10041 0 R (HD.8961) 10042 0 R (HD.8962) 10043 0 R (HD.8963) 10044 0 R (HD.8964) 10045 0 R (HD.8965) 10046 0 R (HD.8966) 10047 0 R (HD.8967) 10048 0 R (HD.8968) 10049 0 R (HD.8969) 10050 0 R (HD.897) 1229 0 R (HD.8970) 10051 0 R (HD.8971) 10052 0 R (HD.8972) 10053 0 R (HD.8973) 10054 0 R (HD.8974) 10055 0 R (HD.8975) 10056 0 R (HD.8976) 10057 0 R (HD.8977) 10058 0 R (HD.8978) 10059 0 R (HD.8979) 10060 0 R (HD.898) 1230 0 R (HD.8980) 10061 0 R (HD.8981) 10062 0 R (HD.8982) 10063 0 R (HD.8983) 10064 0 R (HD.8984) 10065 0 R (HD.8985) 10066 0 R (HD.8986) 10067 0 R ] /Limits [ (HD.8958) (HD.8986) ] >>
+<< /Names [ (HD.801) 1125 0 R (HD.8010) 9011 0 R (HD.8011) 9012 0 R (HD.8012) 9013 0 R (HD.8013) 9014 0 R (HD.8014) 9015 0 R (HD.8015) 9016 0 R (HD.8016) 9017 0 R (HD.8017) 9018 0 R (HD.8018) 9019 0 R (HD.8019) 9020 0 R (HD.802) 1126 0 R (HD.8020) 9021 0 R (HD.8021) 9022 0 R (HD.8022) 9023 0 R (HD.8023) 9024 0 R (HD.8024) 9025 0 R (HD.8025) 9026 0 R (HD.8026) 9027 0 R (HD.8027) 9028 0 R (HD.8028) 9029 0 R (HD.8029) 9030 0 R (HD.803) 1127 0 R (HD.8030) 9031 0 R (HD.8031) 9032 0 R (HD.8032) 9033 0 R (HD.8033) 9034 0 R (HD.8034) 9035 0 R (HD.8035) 9036 0 R (HD.8036) 9037 0 R (HD.8037) 9038 0 R (HD.8038) 9039 0 R ] /Limits [ (HD.801) (HD.8038) ] >>
endobj
11993 0 obj
-<< /Names [ (HD.8987) 10068 0 R (HD.8988) 10069 0 R (HD.8989) 10070 0 R (HD.899) 1231 0 R (HD.8990) 10071 0 R (HD.8991) 10072 0 R (HD.8992) 10073 0 R (HD.8993) 10078 0 R (HD.8994) 10079 0 R (HD.8995) 10080 0 R (HD.8996) 10081 0 R (HD.8997) 10082 0 R (HD.8998) 10083 0 R (HD.8999) 10084 0 R (HD.9) 197 0 R (HD.90) 290 0 R (HD.900) 1232 0 R (HD.9000) 10085 0 R (HD.9001) 10086 0 R (HD.9002) 10087 0 R (HD.9003) 10088 0 R (HD.9004) 10089 0 R (HD.9005) 10090 0 R (HD.9006) 10091 0 R (HD.9007) 10092 0 R (HD.9008) 10093 0 R (HD.9009) 10094 0 R (HD.901) 1233 0 R (HD.9010) 10095 0 R (HD.9011) 10096 0 R (HD.9012) 10097 0 R (HD.9013) 10098 0 R ] /Limits [ (HD.8987) (HD.9013) ] >>
+<< /Names [ (HD.8039) 9044 0 R (HD.804) 1128 0 R (HD.8040) 9045 0 R (HD.8041) 9046 0 R (HD.8042) 9047 0 R (HD.8043) 9048 0 R (HD.8044) 9049 0 R (HD.8045) 9050 0 R (HD.8046) 9051 0 R (HD.8047) 9052 0 R (HD.8048) 9053 0 R (HD.8049) 9054 0 R (HD.805) 1129 0 R (HD.8050) 9055 0 R (HD.8051) 9056 0 R (HD.8052) 9057 0 R (HD.8053) 9058 0 R (HD.8054) 9059 0 R (HD.8055) 9060 0 R (HD.8056) 9061 0 R (HD.8057) 9062 0 R (HD.8058) 9063 0 R (HD.8059) 9064 0 R (HD.806) 1130 0 R (HD.8060) 9065 0 R (HD.8061) 9066 0 R (HD.8062) 9067 0 R (HD.8063) 9068 0 R (HD.8064) 9069 0 R (HD.8065) 9070 0 R (HD.8066) 9071 0 R (HD.8067) 9072 0 R ] /Limits [ (HD.8039) (HD.8067) ] >>
endobj
11994 0 obj
-<< /Names [ (HD.9014) 10099 0 R (HD.9015) 10100 0 R (HD.9016) 10101 0 R (HD.9017) 10102 0 R (HD.9018) 10103 0 R (HD.9019) 10104 0 R (HD.902) 1234 0 R (HD.9020) 10105 0 R (HD.9021) 10106 0 R (HD.9022) 10107 0 R (HD.9023) 10108 0 R (HD.9024) 10109 0 R (HD.9025) 10110 0 R (HD.9026) 10111 0 R (HD.9027) 10112 0 R (HD.9028) 10113 0 R (HD.9029) 10114 0 R (HD.903) 1235 0 R (HD.9030) 10115 0 R (HD.9031) 10116 0 R (HD.9032) 10117 0 R (HD.9033) 10118 0 R (HD.9034) 10119 0 R (HD.9035) 10120 0 R (HD.9036) 10121 0 R (HD.9037) 10122 0 R (HD.9038) 10123 0 R (HD.9039) 10124 0 R (HD.904) 1236 0 R (HD.9040) 10125 0 R (HD.9041) 10126 0 R (HD.9042) 10127 0 R ] /Limits [ (HD.9014) (HD.9042) ] >>
+<< /Names [ (HD.8068) 9073 0 R (HD.8069) 9074 0 R (HD.807) 1131 0 R (HD.8070) 9075 0 R (HD.8071) 9076 0 R (HD.8072) 9077 0 R (HD.8073) 9078 0 R (HD.8074) 9079 0 R (HD.8075) 9080 0 R (HD.8076) 9081 0 R (HD.8077) 9082 0 R (HD.8078) 9083 0 R (HD.8079) 9084 0 R (HD.808) 1132 0 R (HD.8080) 9085 0 R (HD.8081) 9086 0 R (HD.8082) 9087 0 R (HD.8083) 9088 0 R (HD.8084) 9089 0 R (HD.8085) 9090 0 R (HD.8086) 9091 0 R (HD.8087) 9092 0 R (HD.8088) 9093 0 R (HD.8089) 9094 0 R (HD.809) 1133 0 R (HD.8090) 9095 0 R (HD.8091) 9096 0 R (HD.8092) 9097 0 R (HD.8093) 9098 0 R (HD.8094) 9099 0 R (HD.8095) 9100 0 R (HD.8096) 9105 0 R ] /Limits [ (HD.8068) (HD.8096) ] >>
endobj
11995 0 obj
-<< /Names [ (HD.9043) 10128 0 R (HD.9044) 10129 0 R (HD.9045) 10130 0 R (HD.9046) 10131 0 R (HD.9047) 10132 0 R (HD.9048) 10133 0 R (HD.9049) 10138 0 R (HD.905) 1237 0 R (HD.9050) 10139 0 R (HD.9051) 10140 0 R (HD.9052) 10141 0 R (HD.9053) 10142 0 R (HD.9054) 10143 0 R (HD.9055) 10144 0 R (HD.9056) 10145 0 R (HD.9057) 10146 0 R (HD.9058) 10147 0 R (HD.9059) 10148 0 R (HD.906) 1238 0 R (HD.9060) 10149 0 R (HD.9061) 10150 0 R (HD.9062) 10151 0 R (HD.9063) 10152 0 R (HD.9064) 10153 0 R (HD.9065) 10154 0 R (HD.9066) 10155 0 R (HD.9067) 10156 0 R (HD.9068) 10157 0 R (HD.9069) 10158 0 R (HD.907) 1239 0 R (HD.9070) 10159 0 R (HD.9071) 10160 0 R ] /Limits [ (HD.9043) (HD.9071) ] >>
+<< /Names [ (HD.8097) 9106 0 R (HD.8098) 9107 0 R (HD.8099) 9108 0 R (HD.81) 281 0 R (HD.810) 1134 0 R (HD.8100) 9109 0 R (HD.8101) 9110 0 R (HD.8102) 9111 0 R (HD.8103) 9112 0 R (HD.8104) 9113 0 R (HD.8105) 9114 0 R (HD.8106) 9115 0 R (HD.8107) 9116 0 R (HD.8108) 9117 0 R (HD.8109) 9118 0 R (HD.811) 1135 0 R (HD.8110) 9119 0 R (HD.8111) 9120 0 R (HD.8112) 9121 0 R (HD.8113) 9122 0 R (HD.8114) 9123 0 R (HD.8115) 9124 0 R (HD.8116) 9125 0 R (HD.8117) 9126 0 R (HD.8118) 9127 0 R (HD.8119) 9128 0 R (HD.812) 1136 0 R (HD.8120) 9129 0 R (HD.8121) 9130 0 R (HD.8122) 9131 0 R (HD.8123) 9132 0 R (HD.8124) 9133 0 R ] /Limits [ (HD.8097) (HD.8124) ] >>
endobj
11996 0 obj
-<< /Names [ (HD.9072) 10161 0 R (HD.9073) 10162 0 R (HD.9074) 10163 0 R (HD.9075) 10164 0 R (HD.9076) 10165 0 R (HD.9077) 10166 0 R (HD.9078) 10167 0 R (HD.9079) 10168 0 R (HD.908) 1240 0 R (HD.9080) 10169 0 R (HD.9081) 10170 0 R (HD.9082) 10171 0 R (HD.9083) 10172 0 R (HD.9084) 10173 0 R (HD.9085) 10174 0 R (HD.9086) 10175 0 R (HD.9087) 10176 0 R (HD.9088) 10177 0 R (HD.9089) 10178 0 R (HD.909) 1241 0 R (HD.9090) 10179 0 R (HD.9091) 10180 0 R (HD.9092) 10181 0 R (HD.9093) 10182 0 R (HD.9094) 10183 0 R (HD.9095) 10184 0 R (HD.9096) 10185 0 R (HD.9097) 10186 0 R (HD.9098) 10187 0 R (HD.9099) 10188 0 R (HD.91) 291 0 R (HD.910) 1242 0 R ] /Limits [ (HD.9072) (HD.910) ] >>
+<< /Names [ (HD.8125) 9134 0 R (HD.8126) 9135 0 R (HD.8127) 9136 0 R (HD.8128) 9137 0 R (HD.8129) 9138 0 R (HD.813) 1137 0 R (HD.8130) 9139 0 R (HD.8131) 9140 0 R (HD.8132) 9141 0 R (HD.8133) 9142 0 R (HD.8134) 9143 0 R (HD.8135) 9144 0 R (HD.8136) 9145 0 R (HD.8137) 9146 0 R (HD.8138) 9147 0 R (HD.8139) 9148 0 R (HD.814) 1138 0 R (HD.8140) 9149 0 R (HD.8141) 9150 0 R (HD.8142) 9151 0 R (HD.8143) 9152 0 R (HD.8144) 9153 0 R (HD.8145) 9154 0 R (HD.8146) 9155 0 R (HD.8147) 9156 0 R (HD.8148) 9157 0 R (HD.8149) 9158 0 R (HD.815) 1139 0 R (HD.8150) 9159 0 R (HD.8151) 9160 0 R (HD.8152) 9161 0 R (HD.8153) 9166 0 R ] /Limits [ (HD.8125) (HD.8153) ] >>
endobj
11997 0 obj
-<< /Names [ (HD.9100) 10189 0 R (HD.9101) 10190 0 R (HD.9102) 10191 0 R (HD.9103) 10192 0 R (HD.9104) 10193 0 R (HD.9105) 10194 0 R (HD.9106) 10195 0 R (HD.9107) 10196 0 R (HD.9108) 10197 0 R (HD.9109) 10198 0 R (HD.911) 1243 0 R (HD.9110) 10203 0 R (HD.9111) 10204 0 R (HD.9112) 10205 0 R (HD.9113) 10206 0 R (HD.9114) 10207 0 R (HD.9115) 10208 0 R (HD.9116) 10209 0 R (HD.9117) 10210 0 R (HD.9118) 10211 0 R (HD.9119) 10212 0 R (HD.912) 1244 0 R (HD.9120) 10213 0 R (HD.9121) 10214 0 R (HD.9122) 10215 0 R (HD.9123) 10216 0 R (HD.9124) 10217 0 R (HD.9125) 10218 0 R (HD.9126) 10219 0 R (HD.9127) 10220 0 R (HD.9128) 10221 0 R (HD.9129) 10222 0 R ] /Limits [ (HD.9100) (HD.9129) ] >>
+<< /Names [ (HD.8154) 9167 0 R (HD.8155) 9168 0 R (HD.8156) 9169 0 R (HD.8157) 9170 0 R (HD.8158) 9171 0 R (HD.8159) 9172 0 R (HD.816) 1140 0 R (HD.8160) 9173 0 R (HD.8161) 9174 0 R (HD.8162) 9175 0 R (HD.8163) 9176 0 R (HD.8164) 9177 0 R (HD.8165) 9178 0 R (HD.8166) 9179 0 R (HD.8167) 9180 0 R (HD.8168) 9181 0 R (HD.8169) 9182 0 R (HD.817) 1141 0 R (HD.8170) 9183 0 R (HD.8171) 9184 0 R (HD.8172) 9185 0 R (HD.8173) 9186 0 R (HD.8174) 9187 0 R (HD.8175) 9188 0 R (HD.8176) 9189 0 R (HD.8177) 9190 0 R (HD.8178) 9191 0 R (HD.8179) 9192 0 R (HD.818) 1142 0 R (HD.8180) 9193 0 R (HD.8181) 9194 0 R (HD.8182) 9195 0 R ] /Limits [ (HD.8154) (HD.8182) ] >>
endobj
11998 0 obj
-<< /Names [ (HD.913) 1245 0 R (HD.9130) 10223 0 R (HD.9131) 10224 0 R (HD.9132) 10225 0 R (HD.9133) 10226 0 R (HD.9134) 10227 0 R (HD.9135) 10228 0 R (HD.9136) 10229 0 R (HD.9137) 10230 0 R (HD.9138) 10231 0 R (HD.9139) 10232 0 R (HD.914) 1246 0 R (HD.9140) 10233 0 R (HD.9141) 10234 0 R (HD.9142) 10235 0 R (HD.9143) 10236 0 R (HD.9144) 10237 0 R (HD.9145) 10238 0 R (HD.9146) 10239 0 R (HD.9147) 10240 0 R (HD.9148) 10241 0 R (HD.9149) 10242 0 R (HD.915) 1247 0 R (HD.9150) 10243 0 R (HD.9151) 10244 0 R (HD.9152) 10245 0 R (HD.9153) 10246 0 R (HD.9154) 10247 0 R (HD.9155) 10248 0 R (HD.9156) 10249 0 R (HD.9157) 10250 0 R (HD.9158) 10251 0 R ] /Limits [ (HD.913) (HD.9158) ] >>
+<< /Names [ (HD.8183) 9196 0 R (HD.8184) 9197 0 R (HD.8185) 9198 0 R (HD.8186) 9199 0 R (HD.8187) 9200 0 R (HD.8188) 9201 0 R (HD.8189) 9202 0 R (HD.819) 1147 0 R (HD.8190) 9203 0 R (HD.8191) 9204 0 R (HD.8192) 9205 0 R (HD.8193) 9206 0 R (HD.8194) 9207 0 R (HD.8195) 9208 0 R (HD.8196) 9209 0 R (HD.8197) 9210 0 R (HD.8198) 9211 0 R (HD.8199) 9212 0 R (HD.82) 282 0 R (HD.820) 1148 0 R (HD.8200) 9213 0 R (HD.8201) 9214 0 R (HD.8202) 9215 0 R (HD.8203) 9216 0 R (HD.8204) 9217 0 R (HD.8205) 9218 0 R (HD.8206) 9219 0 R (HD.8207) 9224 0 R (HD.8208) 9225 0 R (HD.8209) 9226 0 R (HD.821) 1149 0 R (HD.8210) 9227 0 R ] /Limits [ (HD.8183) (HD.8210) ] >>
endobj
11999 0 obj
-<< /Names [ (HD.9159) 10252 0 R (HD.916) 1248 0 R (HD.9160) 10253 0 R (HD.9161) 10254 0 R (HD.9162) 10255 0 R (HD.9163) 10256 0 R (HD.9164) 10257 0 R (HD.9165) 10258 0 R (HD.9166) 10259 0 R (HD.9167) 10260 0 R (HD.9168) 10261 0 R (HD.9169) 10266 0 R (HD.917) 1249 0 R (HD.9170) 10267 0 R (HD.9171) 10268 0 R (HD.9172) 10269 0 R (HD.9173) 10270 0 R (HD.9174) 10271 0 R (HD.9175) 10272 0 R (HD.9176) 10273 0 R (HD.9177) 10274 0 R (HD.9178) 10275 0 R (HD.9179) 10276 0 R (HD.918) 1250 0 R (HD.9180) 10277 0 R (HD.9181) 10278 0 R (HD.9182) 10279 0 R (HD.9183) 10280 0 R (HD.9184) 10281 0 R (HD.9185) 10282 0 R (HD.9186) 10283 0 R (HD.9187) 10284 0 R ] /Limits [ (HD.9159) (HD.9187) ] >>
+<< /Names [ (HD.8211) 9228 0 R (HD.8212) 9229 0 R (HD.8213) 9230 0 R (HD.8214) 9231 0 R (HD.8215) 9232 0 R (HD.8216) 9233 0 R (HD.8217) 9234 0 R (HD.8218) 9235 0 R (HD.8219) 9236 0 R (HD.822) 1150 0 R (HD.8220) 9237 0 R (HD.8221) 9238 0 R (HD.8222) 9239 0 R (HD.8223) 9240 0 R (HD.8224) 9241 0 R (HD.8225) 9242 0 R (HD.8226) 9243 0 R (HD.8227) 9244 0 R (HD.8228) 9245 0 R (HD.8229) 9246 0 R (HD.823) 1151 0 R (HD.8230) 9247 0 R (HD.8231) 9248 0 R (HD.8232) 9249 0 R (HD.8233) 9250 0 R (HD.8234) 9251 0 R (HD.8235) 9252 0 R (HD.8236) 9253 0 R (HD.8237) 9254 0 R (HD.8238) 9255 0 R (HD.8239) 9256 0 R (HD.824) 1152 0 R ] /Limits [ (HD.8211) (HD.824) ] >>
endobj
12000 0 obj
-<< /Names [ (HD.9188) 10285 0 R (HD.9189) 10286 0 R (HD.919) 1251 0 R (HD.9190) 10287 0 R (HD.9191) 10288 0 R (HD.9192) 10289 0 R (HD.9193) 10290 0 R (HD.9194) 10291 0 R (HD.9195) 10292 0 R (HD.9196) 10293 0 R (HD.9197) 10294 0 R (HD.9198) 10295 0 R (HD.9199) 10296 0 R (HD.92) 292 0 R (HD.920) 1252 0 R (HD.9200) 10297 0 R (HD.9201) 10298 0 R (HD.9202) 10299 0 R (HD.9203) 10300 0 R (HD.9204) 10301 0 R (HD.9205) 10302 0 R (HD.9206) 10303 0 R (HD.9207) 10304 0 R (HD.9208) 10305 0 R (HD.9209) 10306 0 R (HD.921) 1253 0 R (HD.9210) 10307 0 R (HD.9211) 10308 0 R (HD.9212) 10309 0 R (HD.9213) 10310 0 R (HD.9214) 10311 0 R (HD.9215) 10312 0 R ] /Limits [ (HD.9188) (HD.9215) ] >>
+<< /Names [ (HD.8240) 9257 0 R (HD.8241) 9258 0 R (HD.8242) 9259 0 R (HD.8243) 9260 0 R (HD.8244) 9261 0 R (HD.8245) 9262 0 R (HD.8246) 9263 0 R (HD.8247) 9264 0 R (HD.8248) 9265 0 R (HD.8249) 9266 0 R (HD.825) 1153 0 R (HD.8250) 9267 0 R (HD.8251) 9272 0 R (HD.8252) 9273 0 R (HD.8253) 9274 0 R (HD.8254) 9275 0 R (HD.8255) 9276 0 R (HD.8256) 9277 0 R (HD.8257) 9278 0 R (HD.8258) 9279 0 R (HD.8259) 9280 0 R (HD.826) 1154 0 R (HD.8260) 9281 0 R (HD.8261) 9282 0 R (HD.8262) 9283 0 R (HD.8263) 9284 0 R (HD.8264) 9285 0 R (HD.8265) 9286 0 R (HD.8266) 9287 0 R (HD.8267) 9288 0 R (HD.8268) 9289 0 R (HD.8269) 9290 0 R ] /Limits [ (HD.8240) (HD.8269) ] >>
endobj
12001 0 obj
-<< /Names [ (HD.9216) 10313 0 R (HD.9217) 10314 0 R (HD.9218) 10315 0 R (HD.9219) 10316 0 R (HD.922) 1254 0 R (HD.9220) 10317 0 R (HD.9221) 10318 0 R (HD.9222) 10319 0 R (HD.9223) 10320 0 R (HD.9224) 10321 0 R (HD.9225) 10322 0 R (HD.9226) 10323 0 R (HD.9227) 10324 0 R (HD.9228) 10325 0 R (HD.9229) 10326 0 R (HD.923) 1255 0 R (HD.9230) 10327 0 R (HD.9231) 10328 0 R (HD.9232) 10333 0 R (HD.9233) 10334 0 R (HD.9234) 10335 0 R (HD.9235) 10336 0 R (HD.9236) 10337 0 R (HD.9237) 10338 0 R (HD.9238) 10339 0 R (HD.9239) 10340 0 R (HD.924) 1256 0 R (HD.9240) 10341 0 R (HD.9241) 10342 0 R (HD.9242) 10343 0 R (HD.9243) 10344 0 R (HD.9244) 10345 0 R ] /Limits [ (HD.9216) (HD.9244) ] >>
+<< /Names [ (HD.827) 1155 0 R (HD.8270) 9291 0 R (HD.8271) 9292 0 R (HD.8272) 9293 0 R (HD.8273) 9294 0 R (HD.8274) 9295 0 R (HD.8275) 9296 0 R (HD.8276) 9297 0 R (HD.8277) 9298 0 R (HD.8278) 9299 0 R (HD.8279) 9300 0 R (HD.828) 1156 0 R (HD.8280) 9301 0 R (HD.8281) 9302 0 R (HD.8282) 9303 0 R (HD.8283) 9304 0 R (HD.8284) 9305 0 R (HD.8285) 9306 0 R (HD.8286) 9307 0 R (HD.8287) 9308 0 R (HD.8288) 9309 0 R (HD.8289) 9310 0 R (HD.829) 1157 0 R (HD.8290) 9311 0 R (HD.8291) 9312 0 R (HD.8292) 9313 0 R (HD.8293) 9314 0 R (HD.8294) 9315 0 R (HD.8295) 9316 0 R (HD.8296) 9317 0 R (HD.8297) 9318 0 R (HD.8298) 9319 0 R ] /Limits [ (HD.827) (HD.8298) ] >>
endobj
12002 0 obj
-<< /Names [ (HD.9245) 10346 0 R (HD.9246) 10347 0 R (HD.9247) 10348 0 R (HD.9248) 10349 0 R (HD.9249) 10350 0 R (HD.925) 1257 0 R (HD.9250) 10351 0 R (HD.9251) 10352 0 R (HD.9252) 10353 0 R (HD.9253) 10354 0 R (HD.9254) 10355 0 R (HD.9255) 10356 0 R (HD.9256) 10357 0 R (HD.9257) 10358 0 R (HD.9258) 10359 0 R (HD.9259) 10360 0 R (HD.926) 1258 0 R (HD.9260) 10361 0 R (HD.9261) 10362 0 R (HD.9262) 10363 0 R (HD.9263) 10364 0 R (HD.9264) 10365 0 R (HD.9265) 10366 0 R (HD.9266) 10367 0 R (HD.9267) 10368 0 R (HD.9268) 10369 0 R (HD.9269) 10370 0 R (HD.927) 1263 0 R (HD.9270) 10371 0 R (HD.9271) 10372 0 R (HD.9272) 10373 0 R (HD.9273) 10374 0 R ] /Limits [ (HD.9245) (HD.9273) ] >>
+<< /Names [ (HD.8299) 9320 0 R (HD.83) 283 0 R (HD.830) 1158 0 R (HD.8300) 9321 0 R (HD.8301) 9322 0 R (HD.8302) 9327 0 R (HD.8303) 9328 0 R (HD.8304) 9329 0 R (HD.8305) 9330 0 R (HD.8306) 9331 0 R (HD.8307) 9332 0 R (HD.8308) 9333 0 R (HD.8309) 9334 0 R (HD.831) 1159 0 R (HD.8310) 9335 0 R (HD.8311) 9336 0 R (HD.8312) 9337 0 R (HD.8313) 9338 0 R (HD.8314) 9339 0 R (HD.8315) 9340 0 R (HD.8316) 9341 0 R (HD.8317) 9342 0 R (HD.8318) 9343 0 R (HD.8319) 9344 0 R (HD.832) 1160 0 R (HD.8320) 9345 0 R (HD.8321) 9346 0 R (HD.8322) 9347 0 R (HD.8323) 9348 0 R (HD.8324) 9349 0 R (HD.8325) 9350 0 R (HD.8326) 9351 0 R ] /Limits [ (HD.8299) (HD.8326) ] >>
endobj
12003 0 obj
-<< /Names [ (HD.9274) 10375 0 R (HD.9275) 10376 0 R (HD.9276) 10377 0 R (HD.9277) 10378 0 R (HD.9278) 10379 0 R (HD.9279) 10380 0 R (HD.928) 1264 0 R (HD.9280) 10381 0 R (HD.9281) 10386 0 R (HD.9282) 10387 0 R (HD.9283) 10388 0 R (HD.9284) 10389 0 R (HD.9285) 10390 0 R (HD.9286) 10391 0 R (HD.9287) 10392 0 R (HD.9288) 10393 0 R (HD.9289) 10394 0 R (HD.929) 1265 0 R (HD.9290) 10395 0 R (HD.9291) 10396 0 R (HD.9292) 10397 0 R (HD.9293) 10398 0 R (HD.9294) 10399 0 R (HD.9295) 10400 0 R (HD.9296) 10401 0 R (HD.9297) 10402 0 R (HD.9298) 10403 0 R (HD.9299) 10404 0 R (HD.93) 293 0 R (HD.930) 1266 0 R (HD.9300) 10405 0 R (HD.9301) 10406 0 R ] /Limits [ (HD.9274) (HD.9301) ] >>
+<< /Names [ (HD.8327) 9352 0 R (HD.8328) 9353 0 R (HD.8329) 9354 0 R (HD.833) 1161 0 R (HD.8330) 9355 0 R (HD.8331) 9356 0 R (HD.8332) 9357 0 R (HD.8333) 9358 0 R (HD.8334) 9359 0 R (HD.8335) 9360 0 R (HD.8336) 9361 0 R (HD.8337) 9362 0 R (HD.8338) 9363 0 R (HD.8339) 9364 0 R (HD.834) 1162 0 R (HD.8340) 9365 0 R (HD.8341) 9370 0 R (HD.8342) 9371 0 R (HD.8343) 9372 0 R (HD.8344) 9373 0 R (HD.8345) 9374 0 R (HD.8346) 9375 0 R (HD.8347) 9376 0 R (HD.8348) 9377 0 R (HD.8349) 9378 0 R (HD.835) 1163 0 R (HD.8350) 9379 0 R (HD.8351) 9380 0 R (HD.8352) 9381 0 R (HD.8353) 9382 0 R (HD.8354) 9383 0 R (HD.8355) 9384 0 R ] /Limits [ (HD.8327) (HD.8355) ] >>
endobj
12004 0 obj
-<< /Names [ (HD.9302) 10407 0 R (HD.9303) 10408 0 R (HD.9304) 10409 0 R (HD.9305) 10410 0 R (HD.9306) 10411 0 R (HD.9307) 10412 0 R (HD.9308) 10413 0 R (HD.9309) 10414 0 R (HD.931) 1267 0 R (HD.9310) 10415 0 R (HD.9311) 10416 0 R (HD.9312) 10417 0 R (HD.9313) 10418 0 R (HD.9314) 10419 0 R (HD.9315) 10420 0 R (HD.9316) 10421 0 R (HD.9317) 10422 0 R (HD.9318) 10423 0 R (HD.9319) 10424 0 R (HD.932) 1268 0 R (HD.9320) 10425 0 R (HD.9321) 10426 0 R (HD.9322) 10427 0 R (HD.9323) 10428 0 R (HD.9324) 10429 0 R (HD.9325) 10430 0 R (HD.9326) 10431 0 R (HD.9327) 10432 0 R (HD.9328) 10433 0 R (HD.9329) 10434 0 R (HD.933) 1269 0 R (HD.9330) 10435 0 R ] /Limits [ (HD.9302) (HD.9330) ] >>
+<< /Names [ (HD.8356) 9385 0 R (HD.8357) 9386 0 R (HD.8358) 9387 0 R (HD.8359) 9388 0 R (HD.836) 1164 0 R (HD.8360) 9389 0 R (HD.8361) 9390 0 R (HD.8362) 9391 0 R (HD.8363) 9392 0 R (HD.8364) 9393 0 R (HD.8365) 9394 0 R (HD.8366) 9395 0 R (HD.8367) 9396 0 R (HD.8368) 9397 0 R (HD.8369) 9398 0 R (HD.837) 1165 0 R (HD.8370) 9399 0 R (HD.8371) 9400 0 R (HD.8372) 9401 0 R (HD.8373) 9402 0 R (HD.8374) 9403 0 R (HD.8375) 9404 0 R (HD.8376) 9405 0 R (HD.8377) 9406 0 R (HD.8378) 9407 0 R (HD.8379) 9408 0 R (HD.838) 1166 0 R (HD.8380) 9409 0 R (HD.8381) 9410 0 R (HD.8382) 9411 0 R (HD.8383) 9412 0 R (HD.8384) 9413 0 R ] /Limits [ (HD.8356) (HD.8384) ] >>
endobj
12005 0 obj
-<< /Names [ (HD.9331) 10436 0 R (HD.9332) 10437 0 R (HD.9333) 10438 0 R (HD.9334) 10439 0 R (HD.9335) 10440 0 R (HD.9336) 10441 0 R (HD.9337) 10442 0 R (HD.9338) 10447 0 R (HD.9339) 10448 0 R (HD.934) 1270 0 R (HD.9340) 10449 0 R (HD.9341) 10450 0 R (HD.9342) 10451 0 R (HD.9343) 10452 0 R (HD.9344) 10453 0 R (HD.9345) 10454 0 R (HD.9346) 10455 0 R (HD.9347) 10456 0 R (HD.9348) 10457 0 R (HD.9349) 10458 0 R (HD.935) 1271 0 R (HD.9350) 10459 0 R (HD.9351) 10460 0 R (HD.9352) 10461 0 R (HD.9353) 10462 0 R (HD.9354) 10463 0 R (HD.9355) 10464 0 R (HD.9356) 10465 0 R (HD.9357) 10466 0 R (HD.9358) 10467 0 R (HD.9359) 10468 0 R (HD.936) 1272 0 R ] /Limits [ (HD.9331) (HD.936) ] >>
+<< /Names [ (HD.8385) 9420 0 R (HD.8386) 9421 0 R (HD.8387) 9422 0 R (HD.8388) 9423 0 R (HD.8389) 9424 0 R (HD.839) 1167 0 R (HD.8390) 9425 0 R (HD.8391) 9426 0 R (HD.8392) 9427 0 R (HD.8393) 9428 0 R (HD.8394) 9429 0 R (HD.8395) 9430 0 R (HD.8396) 9431 0 R (HD.8397) 9432 0 R (HD.8398) 9433 0 R (HD.8399) 9434 0 R (HD.84) 284 0 R (HD.840) 1168 0 R (HD.8400) 9435 0 R (HD.8401) 9436 0 R (HD.8402) 9437 0 R (HD.8403) 9438 0 R (HD.8404) 9439 0 R (HD.8405) 9440 0 R (HD.8406) 9441 0 R (HD.8407) 9442 0 R (HD.8408) 9443 0 R (HD.8409) 9444 0 R (HD.841) 1169 0 R (HD.8410) 9445 0 R (HD.8411) 9446 0 R (HD.8412) 9447 0 R ] /Limits [ (HD.8385) (HD.8412) ] >>
endobj
12006 0 obj
-<< /Names [ (HD.9360) 10469 0 R (HD.9361) 10470 0 R (HD.9362) 10471 0 R (HD.9363) 10472 0 R (HD.9364) 10473 0 R (HD.9365) 10474 0 R (HD.9366) 10475 0 R (HD.9367) 10476 0 R (HD.9368) 10477 0 R (HD.9369) 10478 0 R (HD.937) 1273 0 R (HD.9370) 10479 0 R (HD.9371) 10480 0 R (HD.9372) 10481 0 R (HD.9373) 10482 0 R (HD.9374) 10483 0 R (HD.9375) 10484 0 R (HD.9376) 10489 0 R (HD.9377) 10490 0 R (HD.9378) 10491 0 R (HD.9379) 10492 0 R (HD.938) 1274 0 R (HD.9380) 10493 0 R (HD.9381) 10494 0 R (HD.9382) 10495 0 R (HD.9383) 10496 0 R (HD.9384) 10497 0 R (HD.9385) 10498 0 R (HD.9386) 10499 0 R (HD.9387) 10500 0 R (HD.9388) 10501 0 R (HD.9389) 10502 0 R ] /Limits [ (HD.9360) (HD.9389) ] >>
+<< /Names [ (HD.8413) 9448 0 R (HD.8414) 9449 0 R (HD.8415) 9450 0 R (HD.8416) 9451 0 R (HD.8417) 9452 0 R (HD.8418) 9453 0 R (HD.8419) 9454 0 R (HD.842) 1170 0 R (HD.8420) 9455 0 R (HD.8421) 9456 0 R (HD.8422) 9462 0 R (HD.8423) 9463 0 R (HD.8424) 9464 0 R (HD.8425) 9465 0 R (HD.8426) 9466 0 R (HD.8427) 9467 0 R (HD.8428) 9468 0 R (HD.8429) 9469 0 R (HD.843) 1171 0 R (HD.8430) 9470 0 R (HD.8431) 9471 0 R (HD.8432) 9472 0 R (HD.8433) 9473 0 R (HD.8434) 9474 0 R (HD.8435) 9475 0 R (HD.8436) 9476 0 R (HD.8437) 9477 0 R (HD.8438) 9478 0 R (HD.8439) 9479 0 R (HD.844) 1172 0 R (HD.8440) 9480 0 R (HD.8441) 9481 0 R ] /Limits [ (HD.8413) (HD.8441) ] >>
endobj
12007 0 obj
-<< /Names [ (HD.939) 1275 0 R (HD.9390) 10503 0 R (HD.9391) 10504 0 R (HD.9392) 10505 0 R (HD.9393) 10506 0 R (HD.9394) 10507 0 R (HD.9395) 10508 0 R (HD.9396) 10509 0 R (HD.9397) 10510 0 R (HD.9398) 10511 0 R (HD.9399) 10512 0 R (HD.94) 294 0 R (HD.940) 1276 0 R (HD.9400) 10513 0 R (HD.9401) 10514 0 R (HD.9402) 10515 0 R (HD.9403) 10516 0 R (HD.9404) 10517 0 R (HD.9405) 10518 0 R (HD.9406) 10519 0 R (HD.9407) 10520 0 R (HD.9408) 10521 0 R (HD.9409) 10522 0 R (HD.941) 1277 0 R (HD.9410) 10523 0 R (HD.9411) 10524 0 R (HD.9412) 10525 0 R (HD.9413) 10526 0 R (HD.9414) 10527 0 R (HD.9415) 10528 0 R (HD.9416) 10529 0 R (HD.9417) 10530 0 R ] /Limits [ (HD.939) (HD.9417) ] >>
+<< /Names [ (HD.8442) 9482 0 R (HD.8443) 9483 0 R (HD.8444) 9484 0 R (HD.8445) 9485 0 R (HD.8446) 9486 0 R (HD.8447) 9487 0 R (HD.8448) 9488 0 R (HD.8449) 9489 0 R (HD.845) 1173 0 R (HD.8450) 9490 0 R (HD.8451) 9491 0 R (HD.8452) 9492 0 R (HD.8453) 9493 0 R (HD.8454) 9494 0 R (HD.8455) 9495 0 R (HD.8456) 9496 0 R (HD.8457) 9497 0 R (HD.8458) 9498 0 R (HD.8459) 9499 0 R (HD.846) 1174 0 R (HD.8460) 9500 0 R (HD.8461) 9501 0 R (HD.8462) 9506 0 R (HD.8463) 9507 0 R (HD.8464) 9508 0 R (HD.8465) 9509 0 R (HD.8466) 9510 0 R (HD.8467) 9511 0 R (HD.8468) 9512 0 R (HD.8469) 9513 0 R (HD.847) 1175 0 R (HD.8470) 9514 0 R ] /Limits [ (HD.8442) (HD.8470) ] >>
endobj
12008 0 obj
-<< /Names [ (HD.9418) 10531 0 R (HD.9419) 10532 0 R (HD.942) 1278 0 R (HD.9420) 10533 0 R (HD.9421) 10534 0 R (HD.9422) 10535 0 R (HD.9423) 10536 0 R (HD.9424) 10537 0 R (HD.9425) 10538 0 R (HD.9426) 10539 0 R (HD.9427) 10540 0 R (HD.9428) 10541 0 R (HD.9429) 10542 0 R (HD.943) 1279 0 R (HD.9430) 10543 0 R (HD.9431) 10544 0 R (HD.9432) 10550 0 R (HD.9433) 10551 0 R (HD.9434) 10552 0 R (HD.9435) 10553 0 R (HD.9436) 10554 0 R (HD.9437) 10555 0 R (HD.9438) 10556 0 R (HD.9439) 10557 0 R (HD.944) 1280 0 R (HD.9440) 10558 0 R (HD.9441) 10559 0 R (HD.9442) 10560 0 R (HD.9443) 10561 0 R (HD.9444) 10562 0 R (HD.9445) 10563 0 R (HD.9446) 10564 0 R ] /Limits [ (HD.9418) (HD.9446) ] >>
+<< /Names [ (HD.8471) 9515 0 R (HD.8472) 9516 0 R (HD.8473) 9517 0 R (HD.8474) 9518 0 R (HD.8475) 9519 0 R (HD.8476) 9520 0 R (HD.8477) 9521 0 R (HD.8478) 9522 0 R (HD.8479) 9523 0 R (HD.848) 1176 0 R (HD.8480) 9524 0 R (HD.8481) 9525 0 R (HD.8482) 9526 0 R (HD.8483) 9527 0 R (HD.8484) 9528 0 R (HD.8485) 9529 0 R (HD.8486) 9530 0 R (HD.8487) 9531 0 R (HD.8488) 9532 0 R (HD.8489) 9533 0 R (HD.849) 1177 0 R (HD.8490) 9534 0 R (HD.8491) 9535 0 R (HD.8492) 9536 0 R (HD.8493) 9537 0 R (HD.8494) 9538 0 R (HD.8495) 9539 0 R (HD.8496) 9540 0 R (HD.8497) 9541 0 R (HD.8498) 9542 0 R (HD.8499) 9543 0 R (HD.85) 285 0 R ] /Limits [ (HD.8471) (HD.85) ] >>
endobj
12009 0 obj
-<< /Names [ (HD.9447) 10565 0 R (HD.9448) 10566 0 R (HD.9449) 10567 0 R (HD.945) 1281 0 R (HD.9450) 10568 0 R (HD.9451) 10569 0 R (HD.9452) 10570 0 R (HD.9453) 10571 0 R (HD.9454) 10572 0 R (HD.9455) 10573 0 R (HD.9456) 10574 0 R (HD.9457) 10575 0 R (HD.9458) 10576 0 R (HD.9459) 10577 0 R (HD.946) 1282 0 R (HD.9460) 10578 0 R (HD.9461) 10579 0 R (HD.9462) 10580 0 R (HD.9463) 10581 0 R (HD.9464) 10582 0 R (HD.9465) 10583 0 R (HD.9466) 10584 0 R (HD.9467) 10585 0 R (HD.9468) 10586 0 R (HD.9469) 10587 0 R (HD.947) 1283 0 R (HD.9470) 10588 0 R (HD.9471) 10589 0 R (HD.9472) 10590 0 R (HD.9473) 10591 0 R (HD.9474) 10592 0 R (HD.9475) 10593 0 R ] /Limits [ (HD.9447) (HD.9475) ] >>
+<< /Names [ (HD.850) 1178 0 R (HD.8500) 9544 0 R (HD.8501) 9545 0 R (HD.8502) 9546 0 R (HD.8503) 9547 0 R (HD.8504) 9548 0 R (HD.8505) 9549 0 R (HD.8506) 9550 0 R (HD.8507) 9551 0 R (HD.8508) 9552 0 R (HD.8509) 9553 0 R (HD.851) 1179 0 R (HD.8510) 9554 0 R (HD.8511) 9555 0 R (HD.8512) 9556 0 R (HD.8513) 9557 0 R (HD.8514) 9558 0 R (HD.8515) 9559 0 R (HD.8516) 9564 0 R (HD.8517) 9565 0 R (HD.8518) 9566 0 R (HD.8519) 9567 0 R (HD.852) 1180 0 R (HD.8520) 9568 0 R (HD.8521) 9569 0 R (HD.8522) 9570 0 R (HD.8523) 9571 0 R (HD.8524) 9572 0 R (HD.8525) 9573 0 R (HD.8526) 9574 0 R (HD.8527) 9575 0 R (HD.8528) 9576 0 R ] /Limits [ (HD.850) (HD.8528) ] >>
endobj
12010 0 obj
-<< /Names [ (HD.9476) 10594 0 R (HD.9477) 10595 0 R (HD.9478) 10596 0 R (HD.9479) 10597 0 R (HD.948) 1284 0 R (HD.9480) 10598 0 R (HD.9481) 10599 0 R (HD.9482) 10600 0 R (HD.9483) 10601 0 R (HD.9484) 10602 0 R (HD.9485) 10603 0 R (HD.9486) 10604 0 R (HD.9487) 10605 0 R (HD.9488) 10606 0 R (HD.9489) 10607 0 R (HD.949) 1285 0 R (HD.9490) 10608 0 R (HD.9491) 10613 0 R (HD.9492) 10614 0 R (HD.9493) 10615 0 R (HD.9494) 10616 0 R (HD.9495) 10617 0 R (HD.9496) 10618 0 R (HD.9497) 10619 0 R (HD.9498) 10620 0 R (HD.9499) 10621 0 R (HD.95) 295 0 R (HD.950) 1286 0 R (HD.9500) 10622 0 R (HD.9501) 10623 0 R (HD.9502) 10624 0 R (HD.9503) 10625 0 R ] /Limits [ (HD.9476) (HD.9503) ] >>
+<< /Names [ (HD.8529) 9577 0 R (HD.853) 1181 0 R (HD.8530) 9578 0 R (HD.8531) 9579 0 R (HD.8532) 9580 0 R (HD.8533) 9581 0 R (HD.8534) 9582 0 R (HD.8535) 9583 0 R (HD.8536) 9584 0 R (HD.8537) 9585 0 R (HD.8538) 9586 0 R (HD.8539) 9587 0 R (HD.854) 1182 0 R (HD.8540) 9588 0 R (HD.8541) 9589 0 R (HD.8542) 9590 0 R (HD.8543) 9591 0 R (HD.8544) 9592 0 R (HD.8545) 9593 0 R (HD.8546) 9594 0 R (HD.8547) 9595 0 R (HD.8548) 9596 0 R (HD.8549) 9597 0 R (HD.855) 1183 0 R (HD.8550) 9598 0 R (HD.8551) 9599 0 R (HD.8552) 9600 0 R (HD.8553) 9601 0 R (HD.8554) 9602 0 R (HD.8555) 9603 0 R (HD.8556) 9604 0 R (HD.8557) 9605 0 R ] /Limits [ (HD.8529) (HD.8557) ] >>
endobj
12011 0 obj
-<< /Names [ (HD.9504) 10626 0 R (HD.9505) 10627 0 R (HD.9506) 10628 0 R (HD.9507) 10629 0 R (HD.9508) 10630 0 R (HD.9509) 10631 0 R (HD.951) 1287 0 R (HD.9510) 10632 0 R (HD.9511) 10633 0 R (HD.9512) 10634 0 R (HD.9513) 10635 0 R (HD.9514) 10636 0 R (HD.9515) 10637 0 R (HD.9516) 10638 0 R (HD.9517) 10639 0 R (HD.9518) 10640 0 R (HD.9519) 10641 0 R (HD.952) 1288 0 R (HD.9520) 10642 0 R (HD.9521) 10643 0 R (HD.9522) 10644 0 R (HD.9523) 10645 0 R (HD.9524) 10646 0 R (HD.9525) 10647 0 R (HD.9526) 10648 0 R (HD.9527) 10649 0 R (HD.9528) 10650 0 R (HD.9529) 10651 0 R (HD.953) 1289 0 R (HD.9530) 10652 0 R (HD.9531) 10653 0 R (HD.9532) 10654 0 R ] /Limits [ (HD.9504) (HD.9532) ] >>
+<< /Names [ (HD.8558) 9606 0 R (HD.8559) 9607 0 R (HD.856) 1184 0 R (HD.8560) 9608 0 R (HD.8561) 9609 0 R (HD.8562) 9610 0 R (HD.8563) 9611 0 R (HD.8564) 9612 0 R (HD.8565) 9613 0 R (HD.8566) 9614 0 R (HD.8567) 9615 0 R (HD.8568) 9616 0 R (HD.8569) 9617 0 R (HD.857) 1185 0 R (HD.8570) 9618 0 R (HD.8571) 9623 0 R (HD.8572) 9624 0 R (HD.8573) 9625 0 R (HD.8574) 9626 0 R (HD.8575) 9627 0 R (HD.8576) 9628 0 R (HD.8577) 9629 0 R (HD.8578) 9630 0 R (HD.8579) 9631 0 R (HD.858) 1186 0 R (HD.8580) 9632 0 R (HD.8581) 9633 0 R (HD.8582) 9634 0 R (HD.8583) 9635 0 R (HD.8584) 9636 0 R (HD.8585) 9637 0 R (HD.8586) 9638 0 R ] /Limits [ (HD.8558) (HD.8586) ] >>
endobj
12012 0 obj
-<< /Names [ (HD.9533) 10655 0 R (HD.9534) 10656 0 R (HD.9535) 10657 0 R (HD.9536) 10658 0 R (HD.9537) 10659 0 R (HD.9538) 10660 0 R (HD.9539) 10661 0 R (HD.954) 1290 0 R (HD.9540) 10662 0 R (HD.9541) 10663 0 R (HD.9542) 10664 0 R (HD.9543) 10665 0 R (HD.9544) 10666 0 R (HD.9545) 10667 0 R (HD.9546) 10668 0 R (HD.9547) 10669 0 R (HD.9548) 10670 0 R (HD.9549) 10671 0 R (HD.955) 1291 0 R (HD.9550) 10672 0 R (HD.9551) 10677 0 R (HD.9552) 10678 0 R (HD.9553) 10679 0 R (HD.9554) 10680 0 R (HD.9555) 10681 0 R (HD.9556) 10682 0 R (HD.9557) 10683 0 R (HD.9558) 10684 0 R (HD.9559) 10685 0 R (HD.956) 1292 0 R (HD.9560) 10686 0 R (HD.9561) 10687 0 R ] /Limits [ (HD.9533) (HD.9561) ] >>
+<< /Names [ (HD.8587) 9639 0 R (HD.8588) 9640 0 R (HD.8589) 9641 0 R (HD.859) 1187 0 R (HD.8590) 9642 0 R (HD.8591) 9643 0 R (HD.8592) 9644 0 R (HD.8593) 9645 0 R (HD.8594) 9646 0 R (HD.8595) 9647 0 R (HD.8596) 9648 0 R (HD.8597) 9649 0 R (HD.8598) 9650 0 R (HD.8599) 9651 0 R (HD.86) 286 0 R (HD.860) 1188 0 R (HD.8600) 9652 0 R (HD.8601) 9653 0 R (HD.8602) 9654 0 R (HD.8603) 9655 0 R (HD.8604) 9656 0 R (HD.8605) 9657 0 R (HD.8606) 9658 0 R (HD.8607) 9659 0 R (HD.8608) 9660 0 R (HD.8609) 9661 0 R (HD.861) 1189 0 R (HD.8610) 9662 0 R (HD.8611) 9663 0 R (HD.8612) 9664 0 R (HD.8613) 9665 0 R (HD.8614) 9666 0 R ] /Limits [ (HD.8587) (HD.8614) ] >>
endobj
12013 0 obj
-<< /Names [ (HD.9562) 10688 0 R (HD.9563) 10689 0 R (HD.9564) 10690 0 R (HD.9565) 10691 0 R (HD.9566) 10692 0 R (HD.9567) 10693 0 R (HD.9568) 10694 0 R (HD.9569) 10695 0 R (HD.957) 1293 0 R (HD.9570) 10696 0 R (HD.9571) 10697 0 R (HD.9572) 10698 0 R (HD.9573) 10699 0 R (HD.9574) 10700 0 R (HD.9575) 10701 0 R (HD.9576) 10702 0 R (HD.9577) 10703 0 R (HD.9578) 10704 0 R (HD.9579) 10705 0 R (HD.958) 1294 0 R (HD.9580) 10706 0 R (HD.9581) 10707 0 R (HD.9582) 10708 0 R (HD.9583) 10709 0 R (HD.9584) 10710 0 R (HD.9585) 10711 0 R (HD.9586) 10712 0 R (HD.9587) 10713 0 R (HD.9588) 10714 0 R (HD.9589) 10715 0 R (HD.959) 1295 0 R (HD.9590) 10716 0 R ] /Limits [ (HD.9562) (HD.9590) ] >>
+<< /Names [ (HD.8615) 9671 0 R (HD.8616) 9672 0 R (HD.8617) 9673 0 R (HD.8618) 9674 0 R (HD.8619) 9675 0 R (HD.862) 1190 0 R (HD.8620) 9676 0 R (HD.8621) 9677 0 R (HD.8622) 9678 0 R (HD.8623) 9679 0 R (HD.8624) 9680 0 R (HD.8625) 9681 0 R (HD.8626) 9682 0 R (HD.8627) 9683 0 R (HD.8628) 9684 0 R (HD.8629) 9685 0 R (HD.863) 1191 0 R (HD.8630) 9686 0 R (HD.8631) 9687 0 R (HD.8632) 9688 0 R (HD.8633) 9689 0 R (HD.8634) 9690 0 R (HD.8635) 9691 0 R (HD.8636) 9692 0 R (HD.8637) 9693 0 R (HD.8638) 9694 0 R (HD.8639) 9695 0 R (HD.864) 1192 0 R (HD.8640) 9696 0 R (HD.8641) 9697 0 R (HD.8642) 9698 0 R (HD.8643) 9699 0 R ] /Limits [ (HD.8615) (HD.8643) ] >>
endobj
12014 0 obj
-<< /Names [ (HD.9591) 10717 0 R (HD.9592) 10718 0 R (HD.9593) 10719 0 R (HD.9594) 10720 0 R (HD.9595) 10721 0 R (HD.9596) 10722 0 R (HD.9597) 10723 0 R (HD.9598) 10724 0 R (HD.9599) 10725 0 R (HD.96) 296 0 R (HD.960) 1296 0 R (HD.9600) 10726 0 R (HD.9601) 10727 0 R (HD.9602) 10728 0 R (HD.9603) 10729 0 R (HD.9604) 10730 0 R (HD.9605) 10731 0 R (HD.9606) 10732 0 R (HD.9607) 10733 0 R (HD.9608) 10734 0 R (HD.9609) 10735 0 R (HD.961) 1297 0 R (HD.9610) 10736 0 R (HD.9611) 10737 0 R (HD.9612) 10742 0 R (HD.9613) 10743 0 R (HD.9614) 10744 0 R (HD.9615) 10745 0 R (HD.9616) 10746 0 R (HD.9617) 10747 0 R (HD.9618) 10748 0 R (HD.9619) 10749 0 R ] /Limits [ (HD.9591) (HD.9619) ] >>
+<< /Names [ (HD.8644) 9700 0 R (HD.8645) 9701 0 R (HD.8646) 9702 0 R (HD.8647) 9703 0 R (HD.8648) 9704 0 R (HD.8649) 9705 0 R (HD.865) 1193 0 R (HD.8650) 9706 0 R (HD.8651) 9707 0 R (HD.8652) 9708 0 R (HD.8653) 9709 0 R (HD.8654) 9710 0 R (HD.8655) 9711 0 R (HD.8656) 9712 0 R (HD.8657) 9713 0 R (HD.8658) 9714 0 R (HD.8659) 9715 0 R (HD.866) 1194 0 R (HD.8660) 9716 0 R (HD.8661) 9717 0 R (HD.8662) 9718 0 R (HD.8663) 9719 0 R (HD.8664) 9720 0 R (HD.8665) 9721 0 R (HD.8666) 9722 0 R (HD.8667) 9723 0 R (HD.8668) 9724 0 R (HD.8669) 9725 0 R (HD.867) 1195 0 R (HD.8670) 9726 0 R (HD.8671) 9727 0 R (HD.8672) 9728 0 R ] /Limits [ (HD.8644) (HD.8672) ] >>
endobj
12015 0 obj
-<< /Names [ (HD.962) 1298 0 R (HD.9620) 10750 0 R (HD.9621) 10751 0 R (HD.9622) 10752 0 R (HD.9623) 10753 0 R (HD.9624) 10754 0 R (HD.9625) 10755 0 R (HD.9626) 10756 0 R (HD.9627) 10757 0 R (HD.9628) 10758 0 R (HD.9629) 10759 0 R (HD.963) 1299 0 R (HD.9630) 10760 0 R (HD.9631) 10761 0 R (HD.9632) 10762 0 R (HD.9633) 10763 0 R (HD.9634) 10764 0 R (HD.9635) 10765 0 R (HD.9636) 10766 0 R (HD.9637) 10767 0 R (HD.9638) 10768 0 R (HD.9639) 10769 0 R (HD.964) 1300 0 R (HD.9640) 10770 0 R (HD.9641) 10771 0 R (HD.9642) 10772 0 R (HD.9643) 10773 0 R (HD.9644) 10774 0 R (HD.9645) 10775 0 R (HD.9646) 10776 0 R (HD.9647) 10777 0 R (HD.9648) 10778 0 R ] /Limits [ (HD.962) (HD.9648) ] >>
+<< /Names [ (HD.8673) 9729 0 R (HD.8674) 9734 0 R (HD.8675) 9735 0 R (HD.8676) 9736 0 R (HD.8677) 9737 0 R (HD.8678) 9738 0 R (HD.8679) 9739 0 R (HD.868) 1196 0 R (HD.8680) 9740 0 R (HD.8681) 9741 0 R (HD.8682) 9742 0 R (HD.8683) 9743 0 R (HD.8684) 9744 0 R (HD.8685) 9745 0 R (HD.8686) 9746 0 R (HD.8687) 9747 0 R (HD.8688) 9748 0 R (HD.8689) 9749 0 R (HD.869) 1201 0 R (HD.8690) 9750 0 R (HD.8691) 9751 0 R (HD.8692) 9752 0 R (HD.8693) 9753 0 R (HD.8694) 9754 0 R (HD.8695) 9755 0 R (HD.8696) 9756 0 R (HD.8697) 9757 0 R (HD.8698) 9758 0 R (HD.8699) 9759 0 R (HD.87) 287 0 R (HD.870) 1202 0 R (HD.8700) 9760 0 R ] /Limits [ (HD.8673) (HD.8700) ] >>
endobj
12016 0 obj
-<< /Names [ (HD.9649) 10779 0 R (HD.965) 1301 0 R (HD.9650) 10780 0 R (HD.9651) 10781 0 R (HD.9652) 10782 0 R (HD.9653) 10783 0 R (HD.9654) 10784 0 R (HD.9655) 10785 0 R (HD.9656) 10786 0 R (HD.9657) 10787 0 R (HD.9658) 10788 0 R (HD.9659) 10789 0 R (HD.966) 1302 0 R (HD.9660) 10790 0 R (HD.9661) 10791 0 R (HD.9662) 10792 0 R (HD.9663) 10793 0 R (HD.9664) 10794 0 R (HD.9665) 10795 0 R (HD.9666) 10796 0 R (HD.9667) 10797 0 R (HD.9668) 10798 0 R (HD.9669) 10799 0 R (HD.967) 1303 0 R (HD.9670) 10800 0 R (HD.9671) 10801 0 R (HD.9672) 10806 0 R (HD.9673) 10807 0 R (HD.9674) 10808 0 R (HD.9675) 10809 0 R (HD.9676) 10810 0 R (HD.9677) 10811 0 R ] /Limits [ (HD.9649) (HD.9677) ] >>
+<< /Names [ (HD.8701) 9761 0 R (HD.8702) 9762 0 R (HD.8703) 9763 0 R (HD.8704) 9764 0 R (HD.8705) 9765 0 R (HD.8706) 9766 0 R (HD.8707) 9767 0 R (HD.8708) 9768 0 R (HD.8709) 9769 0 R (HD.871) 1203 0 R (HD.8710) 9770 0 R (HD.8711) 9771 0 R (HD.8712) 9772 0 R (HD.8713) 9773 0 R (HD.8714) 9774 0 R (HD.8715) 9775 0 R (HD.8716) 9776 0 R (HD.8717) 9777 0 R (HD.8718) 9778 0 R (HD.8719) 9779 0 R (HD.872) 1204 0 R (HD.8720) 9780 0 R (HD.8721) 9781 0 R (HD.8722) 9782 0 R (HD.8723) 9787 0 R (HD.8724) 9788 0 R (HD.8725) 9789 0 R (HD.8726) 9790 0 R (HD.8727) 9791 0 R (HD.8728) 9792 0 R (HD.8729) 9793 0 R (HD.873) 1205 0 R ] /Limits [ (HD.8701) (HD.873) ] >>
endobj
12017 0 obj
-<< /Names [ (HD.9678) 10812 0 R (HD.9679) 10813 0 R (HD.968) 1304 0 R (HD.9680) 10814 0 R (HD.9681) 10815 0 R (HD.9682) 10816 0 R (HD.9683) 10817 0 R (HD.9684) 10818 0 R (HD.9685) 10819 0 R (HD.9686) 10820 0 R (HD.9687) 10821 0 R (HD.9688) 10822 0 R (HD.9689) 10823 0 R (HD.969) 1305 0 R (HD.9690) 10824 0 R (HD.9691) 10825 0 R (HD.9692) 10826 0 R (HD.9693) 10827 0 R (HD.9694) 10828 0 R (HD.9695) 10829 0 R (HD.9696) 10830 0 R (HD.9697) 10831 0 R (HD.9698) 10832 0 R (HD.9699) 10833 0 R (HD.97) 297 0 R (HD.970) 1306 0 R (HD.9700) 10834 0 R (HD.9701) 10835 0 R (HD.9702) 10836 0 R (HD.9703) 10837 0 R (HD.9704) 10838 0 R (HD.9705) 10839 0 R ] /Limits [ (HD.9678) (HD.9705) ] >>
+<< /Names [ (HD.8730) 9794 0 R (HD.8731) 9795 0 R (HD.8732) 9796 0 R (HD.8733) 9797 0 R (HD.8734) 9798 0 R (HD.8735) 9799 0 R (HD.8736) 9800 0 R (HD.8737) 9801 0 R (HD.8738) 9802 0 R (HD.8739) 9803 0 R (HD.874) 1206 0 R (HD.8740) 9804 0 R (HD.8741) 9805 0 R (HD.8742) 9806 0 R (HD.8743) 9807 0 R (HD.8744) 9808 0 R (HD.8745) 9809 0 R (HD.8746) 9810 0 R (HD.8747) 9811 0 R (HD.8748) 9812 0 R (HD.8749) 9813 0 R (HD.875) 1207 0 R (HD.8750) 9814 0 R (HD.8751) 9815 0 R (HD.8752) 9816 0 R (HD.8753) 9817 0 R (HD.8754) 9818 0 R (HD.8755) 9819 0 R (HD.8756) 9820 0 R (HD.8757) 9821 0 R (HD.8758) 9822 0 R (HD.8759) 9823 0 R ] /Limits [ (HD.8730) (HD.8759) ] >>
endobj
12018 0 obj
-<< /Names [ (HD.9706) 10840 0 R (HD.9707) 10841 0 R (HD.9708) 10842 0 R (HD.9709) 10843 0 R (HD.971) 1307 0 R (HD.9710) 10844 0 R (HD.9711) 10845 0 R (HD.9712) 10846 0 R (HD.9713) 10847 0 R (HD.9714) 10848 0 R (HD.9715) 10849 0 R (HD.9716) 10850 0 R (HD.9717) 10851 0 R (HD.9718) 10852 0 R (HD.9719) 10853 0 R (HD.972) 1308 0 R (HD.9720) 10854 0 R (HD.9721) 10855 0 R (HD.9722) 10856 0 R (HD.9723) 10857 0 R (HD.9724) 10858 0 R (HD.9725) 10859 0 R (HD.9726) 10860 0 R (HD.9727) 10861 0 R (HD.9728) 10862 0 R (HD.9729) 10863 0 R (HD.973) 1309 0 R (HD.9730) 10864 0 R (HD.9731) 10865 0 R (HD.9732) 10870 0 R (HD.9733) 10871 0 R (HD.9734) 10872 0 R ] /Limits [ (HD.9706) (HD.9734) ] >>
+<< /Names [ (HD.876) 1208 0 R (HD.8760) 9824 0 R (HD.8761) 9825 0 R (HD.8762) 9826 0 R (HD.8763) 9827 0 R (HD.8764) 9828 0 R (HD.8765) 9829 0 R (HD.8766) 9830 0 R (HD.8767) 9831 0 R (HD.8768) 9832 0 R (HD.8769) 9833 0 R (HD.877) 1209 0 R (HD.8770) 9834 0 R (HD.8771) 9835 0 R (HD.8772) 9836 0 R (HD.8773) 9837 0 R (HD.8774) 9842 0 R (HD.8775) 9843 0 R (HD.8776) 9844 0 R (HD.8777) 9845 0 R (HD.8778) 9846 0 R (HD.8779) 9847 0 R (HD.878) 1210 0 R (HD.8780) 9848 0 R (HD.8781) 9849 0 R (HD.8782) 9850 0 R (HD.8783) 9851 0 R (HD.8784) 9852 0 R (HD.8785) 9853 0 R (HD.8786) 9854 0 R (HD.8787) 9855 0 R (HD.8788) 9856 0 R ] /Limits [ (HD.876) (HD.8788) ] >>
endobj
12019 0 obj
-<< /Names [ (HD.9735) 10873 0 R (HD.9736) 10874 0 R (HD.9737) 10875 0 R (HD.9738) 10876 0 R (HD.9739) 10877 0 R (HD.974) 1310 0 R (HD.9740) 10878 0 R (HD.9741) 10879 0 R (HD.9742) 10880 0 R (HD.9743) 10881 0 R (HD.9744) 10882 0 R (HD.9745) 10883 0 R (HD.9746) 10884 0 R (HD.9747) 10885 0 R (HD.9748) 10886 0 R (HD.9749) 10887 0 R (HD.975) 1311 0 R (HD.9750) 10888 0 R (HD.9751) 10889 0 R (HD.9752) 10890 0 R (HD.9753) 10891 0 R (HD.9754) 10892 0 R (HD.9755) 10893 0 R (HD.9756) 10894 0 R (HD.9757) 10895 0 R (HD.9758) 10896 0 R (HD.9759) 10897 0 R (HD.976) 1312 0 R (HD.9760) 10898 0 R (HD.9761) 10899 0 R (HD.9762) 10900 0 R (HD.9763) 10901 0 R ] /Limits [ (HD.9735) (HD.9763) ] >>
+<< /Names [ (HD.8789) 9857 0 R (HD.879) 1211 0 R (HD.8790) 9858 0 R (HD.8791) 9859 0 R (HD.8792) 9860 0 R (HD.8793) 9861 0 R (HD.8794) 9862 0 R (HD.8795) 9863 0 R (HD.8796) 9864 0 R (HD.8797) 9865 0 R (HD.8798) 9866 0 R (HD.8799) 9867 0 R (HD.88) 288 0 R (HD.880) 1212 0 R (HD.8800) 9868 0 R (HD.8801) 9869 0 R (HD.8802) 9870 0 R (HD.8803) 9871 0 R (HD.8804) 9872 0 R (HD.8805) 9873 0 R (HD.8806) 9874 0 R (HD.8807) 9875 0 R (HD.8808) 9876 0 R (HD.8809) 9881 0 R (HD.881) 1213 0 R (HD.8810) 9882 0 R (HD.8811) 9883 0 R (HD.8812) 9884 0 R (HD.8813) 9885 0 R (HD.8814) 9886 0 R (HD.8815) 9887 0 R (HD.8816) 9888 0 R ] /Limits [ (HD.8789) (HD.8816) ] >>
endobj
12020 0 obj
-<< /Names [ (HD.9764) 10902 0 R (HD.9765) 10903 0 R (HD.9766) 10904 0 R (HD.9767) 10905 0 R (HD.9768) 10906 0 R (HD.9769) 10907 0 R (HD.977) 1313 0 R (HD.9770) 10908 0 R (HD.9771) 10909 0 R (HD.9772) 10910 0 R (HD.9773) 10911 0 R (HD.9774) 10912 0 R (HD.9775) 10913 0 R (HD.9776) 10914 0 R (HD.9777) 10915 0 R (HD.9778) 10916 0 R (HD.9779) 10917 0 R (HD.978) 1314 0 R (HD.9780) 10918 0 R (HD.9781) 10919 0 R (HD.9782) 10920 0 R (HD.9783) 10921 0 R (HD.9784) 10922 0 R (HD.9785) 10923 0 R (HD.9786) 10924 0 R (HD.9787) 10925 0 R (HD.9788) 10926 0 R (HD.9789) 10927 0 R (HD.979) 1315 0 R (HD.9790) 10928 0 R (HD.9791) 10929 0 R (HD.9792) 10930 0 R ] /Limits [ (HD.9764) (HD.9792) ] >>
+<< /Names [ (HD.8817) 9889 0 R (HD.8818) 9890 0 R (HD.8819) 9891 0 R (HD.882) 1214 0 R (HD.8820) 9892 0 R (HD.8821) 9893 0 R (HD.8822) 9894 0 R (HD.8823) 9895 0 R (HD.8824) 9896 0 R (HD.8825) 9897 0 R (HD.8826) 9898 0 R (HD.8827) 9899 0 R (HD.8828) 9900 0 R (HD.8829) 9901 0 R (HD.883) 1215 0 R (HD.8830) 9902 0 R (HD.8831) 9903 0 R (HD.8832) 9904 0 R (HD.8833) 9905 0 R (HD.8834) 9906 0 R (HD.8835) 9907 0 R (HD.8836) 9908 0 R (HD.8837) 9909 0 R (HD.8838) 9910 0 R (HD.8839) 9911 0 R (HD.884) 1216 0 R (HD.8840) 9912 0 R (HD.8841) 9913 0 R (HD.8842) 9914 0 R (HD.8843) 9915 0 R (HD.8844) 9916 0 R (HD.8845) 9917 0 R ] /Limits [ (HD.8817) (HD.8845) ] >>
endobj
12021 0 obj
-<< /Names [ (HD.9793) 10935 0 R (HD.9794) 10936 0 R (HD.9795) 10937 0 R (HD.9796) 10938 0 R (HD.9797) 10939 0 R (HD.9798) 10940 0 R (HD.9799) 10941 0 R (HD.98) 298 0 R (HD.980) 1321 0 R (HD.9800) 10942 0 R (HD.9801) 10943 0 R (HD.9802) 10944 0 R (HD.9803) 10945 0 R (HD.9804) 10946 0 R (HD.9805) 10947 0 R (HD.9806) 10948 0 R (HD.9807) 10949 0 R (HD.9808) 10950 0 R (HD.9809) 10951 0 R (HD.981) 1322 0 R (HD.9810) 10952 0 R (HD.9811) 10953 0 R (HD.9812) 10954 0 R (HD.9813) 10955 0 R (HD.9814) 10956 0 R (HD.9815) 10957 0 R (HD.9816) 10958 0 R (HD.9817) 10959 0 R (HD.9818) 10960 0 R (HD.9819) 10961 0 R (HD.982) 1323 0 R (HD.9820) 10962 0 R ] /Limits [ (HD.9793) (HD.9820) ] >>
+<< /Names [ (HD.8846) 9918 0 R (HD.8847) 9919 0 R (HD.8848) 9920 0 R (HD.8849) 9921 0 R (HD.885) 1217 0 R (HD.8850) 9922 0 R (HD.8851) 9923 0 R (HD.8852) 9924 0 R (HD.8853) 9925 0 R (HD.8854) 9926 0 R (HD.8855) 9932 0 R (HD.8856) 9933 0 R (HD.8857) 9934 0 R (HD.8858) 9935 0 R (HD.8859) 9936 0 R (HD.886) 1218 0 R (HD.8860) 9937 0 R (HD.8861) 9938 0 R (HD.8862) 9939 0 R (HD.8863) 9940 0 R (HD.8864) 9941 0 R (HD.8865) 9942 0 R (HD.8866) 9943 0 R (HD.8867) 9944 0 R (HD.8868) 9945 0 R (HD.8869) 9946 0 R (HD.887) 1219 0 R (HD.8870) 9947 0 R (HD.8871) 9948 0 R (HD.8872) 9949 0 R (HD.8873) 9950 0 R (HD.8874) 9951 0 R ] /Limits [ (HD.8846) (HD.8874) ] >>
endobj
12022 0 obj
-<< /Names [ (HD.9821) 10963 0 R (HD.9822) 10964 0 R (HD.9823) 10965 0 R (HD.9824) 10966 0 R (HD.9825) 10967 0 R (HD.9826) 10968 0 R (HD.9827) 10969 0 R (HD.9828) 10970 0 R (HD.9829) 10971 0 R (HD.983) 1324 0 R (HD.9830) 10972 0 R (HD.9831) 10973 0 R (HD.9832) 10974 0 R (HD.9833) 10975 0 R (HD.9834) 10976 0 R (HD.9835) 10977 0 R (HD.9836) 10978 0 R (HD.9837) 10979 0 R (HD.9838) 10980 0 R (HD.9839) 10981 0 R (HD.984) 1325 0 R (HD.9840) 10982 0 R (HD.9841) 10983 0 R (HD.9842) 10984 0 R (HD.9843) 10985 0 R (HD.9844) 10986 0 R (HD.9845) 10987 0 R (HD.9846) 10988 0 R (HD.9847) 10989 0 R (HD.9848) 10990 0 R (HD.9849) 10991 0 R (HD.985) 1326 0 R ] /Limits [ (HD.9821) (HD.985) ] >>
+<< /Names [ (HD.8875) 9952 0 R (HD.8876) 9953 0 R (HD.8877) 9954 0 R (HD.8878) 9955 0 R (HD.8879) 9956 0 R (HD.888) 1220 0 R (HD.8880) 9957 0 R (HD.8881) 9958 0 R (HD.8882) 9959 0 R (HD.8883) 9960 0 R (HD.8884) 9961 0 R (HD.8885) 9962 0 R (HD.8886) 9963 0 R (HD.8887) 9964 0 R (HD.8888) 9965 0 R (HD.8889) 9966 0 R (HD.889) 1221 0 R (HD.8890) 9967 0 R (HD.8891) 9968 0 R (HD.8892) 9969 0 R (HD.8893) 9970 0 R (HD.8894) 9971 0 R (HD.8895) 9972 0 R (HD.8896) 9973 0 R (HD.8897) 9974 0 R (HD.8898) 9975 0 R (HD.8899) 9976 0 R (HD.89) 289 0 R (HD.890) 1222 0 R (HD.8900) 9977 0 R (HD.8901) 9978 0 R (HD.8902) 9979 0 R ] /Limits [ (HD.8875) (HD.8902) ] >>
endobj
12023 0 obj
-<< /Names [ (HD.9850) 10992 0 R (HD.9851) 10993 0 R (HD.9852) 10994 0 R (HD.9853) 10999 0 R (HD.9854) 11000 0 R (HD.9855) 11001 0 R (HD.9856) 11002 0 R (HD.9857) 11003 0 R (HD.9858) 11004 0 R (HD.9859) 11005 0 R (HD.986) 1327 0 R (HD.9860) 11006 0 R (HD.9861) 11007 0 R (HD.9862) 11008 0 R (HD.9863) 11009 0 R (HD.9864) 11010 0 R (HD.9865) 11011 0 R (HD.9866) 11012 0 R (HD.9867) 11013 0 R (HD.9868) 11014 0 R (HD.9869) 11015 0 R (HD.987) 1328 0 R (HD.9870) 11016 0 R (HD.9871) 11017 0 R (HD.9872) 11018 0 R (HD.9873) 11019 0 R (HD.9874) 11020 0 R (HD.9875) 11021 0 R (HD.9876) 11022 0 R (HD.9877) 11023 0 R (HD.9878) 11024 0 R (HD.9879) 11025 0 R ] /Limits [ (HD.9850) (HD.9879) ] >>
+<< /Names [ (HD.8903) 9980 0 R (HD.8904) 9985 0 R (HD.8905) 9986 0 R (HD.8906) 9987 0 R (HD.8907) 9988 0 R (HD.8908) 9989 0 R (HD.8909) 9990 0 R (HD.891) 1223 0 R (HD.8910) 9991 0 R (HD.8911) 9992 0 R (HD.8912) 9993 0 R (HD.8913) 9994 0 R (HD.8914) 9995 0 R (HD.8915) 9996 0 R (HD.8916) 9997 0 R (HD.8917) 9998 0 R (HD.8918) 9999 0 R (HD.8919) 10000 0 R (HD.892) 1224 0 R (HD.8920) 10001 0 R (HD.8921) 10002 0 R (HD.8922) 10003 0 R (HD.8923) 10004 0 R (HD.8924) 10005 0 R (HD.8925) 10006 0 R (HD.8926) 10007 0 R (HD.8927) 10008 0 R (HD.8928) 10009 0 R (HD.8929) 10010 0 R (HD.893) 1225 0 R (HD.8930) 10011 0 R (HD.8931) 10012 0 R ] /Limits [ (HD.8903) (HD.8931) ] >>
endobj
12024 0 obj
-<< /Names [ (HD.988) 1329 0 R (HD.9880) 11026 0 R (HD.9881) 11027 0 R (HD.9882) 11028 0 R (HD.9883) 11029 0 R (HD.9884) 11030 0 R (HD.9885) 11031 0 R (HD.9886) 11032 0 R (HD.9887) 11033 0 R (HD.9888) 11034 0 R (HD.9889) 11035 0 R (HD.989) 1330 0 R (HD.9890) 11036 0 R (HD.9891) 11037 0 R (HD.9892) 11038 0 R (HD.9893) 11039 0 R (HD.9894) 11040 0 R (HD.9895) 11041 0 R (HD.9896) 11042 0 R (HD.9897) 11043 0 R (HD.9898) 11044 0 R (HD.9899) 11045 0 R (HD.99) 299 0 R (HD.990) 1331 0 R (HD.9900) 11046 0 R (HD.9901) 11047 0 R (HD.9902) 11048 0 R (HD.9903) 11049 0 R (HD.9904) 11050 0 R (HD.9905) 11051 0 R (HD.9906) 11052 0 R (HD.9907) 11053 0 R ] /Limits [ (HD.988) (HD.9907) ] >>
+<< /Names [ (HD.8932) 10013 0 R (HD.8933) 10014 0 R (HD.8934) 10015 0 R (HD.8935) 10016 0 R (HD.8936) 10017 0 R (HD.8937) 10018 0 R (HD.8938) 10019 0 R (HD.8939) 10020 0 R (HD.894) 1226 0 R (HD.8940) 10021 0 R (HD.8941) 10022 0 R (HD.8942) 10023 0 R (HD.8943) 10024 0 R (HD.8944) 10025 0 R (HD.8945) 10026 0 R (HD.8946) 10027 0 R (HD.8947) 10028 0 R (HD.8948) 10029 0 R (HD.8949) 10030 0 R (HD.895) 1227 0 R (HD.8950) 10031 0 R (HD.8951) 10032 0 R (HD.8952) 10033 0 R (HD.8953) 10034 0 R (HD.8954) 10035 0 R (HD.8955) 10036 0 R (HD.8956) 10037 0 R (HD.8957) 10038 0 R (HD.8958) 10039 0 R (HD.8959) 10040 0 R (HD.896) 1228 0 R (HD.8960) 10041 0 R ] /Limits [ (HD.8932) (HD.8960) ] >>
endobj
12025 0 obj
-<< /Names [ (HD.9908) 11054 0 R (HD.9909) 11055 0 R (HD.991) 1332 0 R (HD.9910) 11056 0 R (HD.9911) 11057 0 R (HD.9912) 11058 0 R (HD.9913) 11063 0 R (HD.9914) 11064 0 R (HD.9915) 11065 0 R (HD.9916) 11066 0 R (HD.9917) 11067 0 R (HD.9918) 11068 0 R (HD.9919) 11069 0 R (HD.992) 1333 0 R (HD.9920) 11070 0 R (HD.9921) 11071 0 R (HD.9922) 11072 0 R (HD.9923) 11073 0 R (HD.9924) 11074 0 R (HD.9925) 11075 0 R (HD.9926) 11076 0 R (HD.9927) 11077 0 R (HD.9928) 11078 0 R (HD.9929) 11079 0 R (HD.993) 1334 0 R (HD.9930) 11080 0 R (HD.9931) 11081 0 R (HD.9932) 11082 0 R (HD.9933) 11083 0 R (HD.9934) 11084 0 R (HD.9935) 11085 0 R (HD.9936) 11086 0 R ] /Limits [ (HD.9908) (HD.9936) ] >>
+<< /Names [ (HD.8961) 10042 0 R (HD.8962) 10047 0 R (HD.8963) 10048 0 R (HD.8964) 10049 0 R (HD.8965) 10050 0 R (HD.8966) 10051 0 R (HD.8967) 10052 0 R (HD.8968) 10053 0 R (HD.8969) 10054 0 R (HD.897) 1229 0 R (HD.8970) 10055 0 R (HD.8971) 10056 0 R (HD.8972) 10057 0 R (HD.8973) 10058 0 R (HD.8974) 10059 0 R (HD.8975) 10060 0 R (HD.8976) 10061 0 R (HD.8977) 10062 0 R (HD.8978) 10063 0 R (HD.8979) 10064 0 R (HD.898) 1230 0 R (HD.8980) 10065 0 R (HD.8981) 10066 0 R (HD.8982) 10067 0 R (HD.8983) 10068 0 R (HD.8984) 10069 0 R (HD.8985) 10070 0 R (HD.8986) 10071 0 R (HD.8987) 10072 0 R (HD.8988) 10073 0 R (HD.8989) 10074 0 R (HD.899) 1231 0 R ] /Limits [ (HD.8961) (HD.899) ] >>
endobj
12026 0 obj
-<< /Names [ (HD.9937) 11087 0 R (HD.9938) 11088 0 R (HD.9939) 11089 0 R (HD.994) 1335 0 R (HD.9940) 11090 0 R (HD.9941) 11091 0 R (HD.9942) 11092 0 R (HD.9943) 11093 0 R (HD.9944) 11094 0 R (HD.9945) 11095 0 R (HD.9946) 11096 0 R (HD.9947) 11097 0 R (HD.9948) 11098 0 R (HD.9949) 11099 0 R (HD.995) 1336 0 R (HD.9950) 11100 0 R (HD.9951) 11101 0 R (HD.9952) 11102 0 R (HD.9953) 11103 0 R (HD.9954) 11104 0 R (HD.9955) 11105 0 R (HD.9956) 11106 0 R (HD.9957) 11107 0 R (HD.9958) 11108 0 R (HD.9959) 11109 0 R (HD.996) 1337 0 R (HD.9960) 11110 0 R (HD.9961) 11111 0 R (HD.9962) 11112 0 R (HD.9963) 11113 0 R (HD.9964) 11114 0 R (HD.9965) 11115 0 R ] /Limits [ (HD.9937) (HD.9965) ] >>
+<< /Names [ (HD.8990) 10075 0 R (HD.8991) 10076 0 R (HD.8992) 10077 0 R (HD.8993) 10078 0 R (HD.8994) 10079 0 R (HD.8995) 10080 0 R (HD.8996) 10081 0 R (HD.8997) 10082 0 R (HD.8998) 10083 0 R (HD.8999) 10084 0 R (HD.9) 197 0 R (HD.90) 290 0 R (HD.900) 1232 0 R (HD.9000) 10085 0 R (HD.9001) 10086 0 R (HD.9002) 10087 0 R (HD.9003) 10088 0 R (HD.9004) 10089 0 R (HD.9005) 10090 0 R (HD.9006) 10091 0 R (HD.9007) 10092 0 R (HD.9008) 10093 0 R (HD.9009) 10094 0 R (HD.901) 1233 0 R (HD.9010) 10095 0 R (HD.9011) 10096 0 R (HD.9012) 10097 0 R (HD.9013) 10098 0 R (HD.9014) 10099 0 R (HD.9015) 10100 0 R (HD.9016) 10101 0 R (HD.9017) 10102 0 R ] /Limits [ (HD.8990) (HD.9017) ] >>
endobj
12027 0 obj
-<< /Names [ (HD.9966) 11116 0 R (HD.9967) 11117 0 R (HD.9968) 11118 0 R (HD.9969) 11119 0 R (HD.997) 1338 0 R (HD.9970) 11120 0 R (HD.9971) 11121 0 R (HD.9972) 11122 0 R (HD.9973) 11127 0 R (HD.9974) 11128 0 R (HD.9975) 11129 0 R (HD.9976) 11130 0 R (HD.9977) 11131 0 R (HD.9978) 11132 0 R (HD.9979) 11133 0 R (HD.998) 1339 0 R (HD.9980) 11134 0 R (HD.9981) 11135 0 R (HD.9982) 11136 0 R (HD.9983) 11137 0 R (HD.9984) 11138 0 R (HD.9985) 11139 0 R (HD.9986) 11140 0 R (HD.9987) 11141 0 R (HD.9988) 11142 0 R (HD.9989) 11143 0 R (HD.999) 1340 0 R (HD.9990) 11144 0 R (HD.9991) 11145 0 R (HD.9992) 11146 0 R (HD.9993) 11147 0 R (HD.9994) 11148 0 R ] /Limits [ (HD.9966) (HD.9994) ] >>
+<< /Names [ (HD.9018) 10103 0 R (HD.9019) 10104 0 R (HD.902) 1234 0 R (HD.9020) 10105 0 R (HD.9021) 10110 0 R (HD.9022) 10111 0 R (HD.9023) 10112 0 R (HD.9024) 10113 0 R (HD.9025) 10114 0 R (HD.9026) 10115 0 R (HD.9027) 10116 0 R (HD.9028) 10117 0 R (HD.9029) 10118 0 R (HD.903) 1235 0 R (HD.9030) 10119 0 R (HD.9031) 10120 0 R (HD.9032) 10121 0 R (HD.9033) 10122 0 R (HD.9034) 10123 0 R (HD.9035) 10124 0 R (HD.9036) 10125 0 R (HD.9037) 10126 0 R (HD.9038) 10127 0 R (HD.9039) 10128 0 R (HD.904) 1236 0 R (HD.9040) 10129 0 R (HD.9041) 10130 0 R (HD.9042) 10131 0 R (HD.9043) 10132 0 R (HD.9044) 10133 0 R (HD.9045) 10134 0 R (HD.9046) 10135 0 R ] /Limits [ (HD.9018) (HD.9046) ] >>
endobj
12028 0 obj
-<< /Names [ (HD.9995) 11149 0 R (HD.9996) 11150 0 R (HD.9997) 11151 0 R (HD.9998) 11152 0 R (HD.9999) 11153 0 R (Hfootnote.1) 481 0 R (Hfootnote.10) 2758 0 R (Hfootnote.11) 4557 0 R (Hfootnote.12) 4649 0 R (Hfootnote.13) 6051 0 R (Hfootnote.14) 7881 0 R (Hfootnote.2) 767 0 R (Hfootnote.3) 826 0 R (Hfootnote.4) 1960 0 R (Hfootnote.5) 1961 0 R (Hfootnote.6) 2364 0 R (Hfootnote.7) 2406 0 R (Hfootnote.8) 2508 0 R (Hfootnote.9) 2561 0 R (page.1) 172 0 R (page.10) 566 0 R (page.100) 4706 0 R (page.101) 4746 0 R (page.102) 4789 0 R (page.103) 4842 0 R (page.104) 4905 0 R (page.105) 4951 0 R (page.106) 5015 0 R (page.107) 5058 0 R (page.108) 5108 0 R (page.109) 5162 0 R (page.11) 586 0 R ] /Limits [ (HD.9995) (page.11) ] >>
+<< /Names [ (HD.9047) 10136 0 R (HD.9048) 10137 0 R (HD.9049) 10138 0 R (HD.905) 1237 0 R (HD.9050) 10139 0 R (HD.9051) 10140 0 R (HD.9052) 10141 0 R (HD.9053) 10142 0 R (HD.9054) 10143 0 R (HD.9055) 10144 0 R (HD.9056) 10145 0 R (HD.9057) 10146 0 R (HD.9058) 10147 0 R (HD.9059) 10148 0 R (HD.906) 1238 0 R (HD.9060) 10149 0 R (HD.9061) 10150 0 R (HD.9062) 10151 0 R (HD.9063) 10152 0 R (HD.9064) 10153 0 R (HD.9065) 10154 0 R (HD.9066) 10155 0 R (HD.9067) 10156 0 R (HD.9068) 10157 0 R (HD.9069) 10158 0 R (HD.907) 1239 0 R (HD.9070) 10159 0 R (HD.9071) 10160 0 R (HD.9072) 10161 0 R (HD.9073) 10162 0 R (HD.9074) 10163 0 R (HD.9075) 10164 0 R ] /Limits [ (HD.9047) (HD.9075) ] >>
endobj
12029 0 obj
-<< /Names [ (page.110) 5219 0 R (page.111) 5266 0 R (page.112) 5313 0 R (page.113) 5358 0 R (page.114) 5405 0 R (page.115) 5444 0 R (page.116) 5495 0 R (page.117) 5551 0 R (page.118) 5609 0 R (page.119) 5675 0 R (page.12) 607 0 R (page.120) 5724 0 R (page.121) 5788 0 R (page.122) 5839 0 R (page.123) 5896 0 R (page.124) 5957 0 R (page.125) 6020 0 R (page.126) 6056 0 R (page.127) 6110 0 R (page.128) 6147 0 R (page.129) 6199 0 R (page.13) 634 0 R (page.130) 6242 0 R (page.131) 6278 0 R (page.132) 6336 0 R (page.133) 6384 0 R (page.134) 6436 0 R (page.135) 6479 0 R (page.136) 6531 0 R (page.137) 6578 0 R (page.138) 6640 0 R (page.139) 6690 0 R ] /Limits [ (page.110) (page.139) ] >>
+<< /Names [ (HD.9076) 10165 0 R (HD.9077) 10170 0 R (HD.9078) 10171 0 R (HD.9079) 10172 0 R (HD.908) 1240 0 R (HD.9080) 10173 0 R (HD.9081) 10174 0 R (HD.9082) 10175 0 R (HD.9083) 10176 0 R (HD.9084) 10177 0 R (HD.9085) 10178 0 R (HD.9086) 10179 0 R (HD.9087) 10180 0 R (HD.9088) 10181 0 R (HD.9089) 10182 0 R (HD.909) 1241 0 R (HD.9090) 10183 0 R (HD.9091) 10184 0 R (HD.9092) 10185 0 R (HD.9093) 10186 0 R (HD.9094) 10187 0 R (HD.9095) 10188 0 R (HD.9096) 10189 0 R (HD.9097) 10190 0 R (HD.9098) 10191 0 R (HD.9099) 10192 0 R (HD.91) 291 0 R (HD.910) 1242 0 R (HD.9100) 10193 0 R (HD.9101) 10194 0 R (HD.9102) 10195 0 R (HD.9103) 10196 0 R ] /Limits [ (HD.9076) (HD.9103) ] >>
endobj
12030 0 obj
-<< /Names [ (page.14) 658 0 R (page.140) 6741 0 R (page.141) 6780 0 R (page.142) 6824 0 R (page.143) 6858 0 R (page.144) 6901 0 R (page.145) 6956 0 R (page.146) 7019 0 R (page.147) 7075 0 R (page.148) 7122 0 R (page.149) 7181 0 R (page.15) 681 0 R (page.150) 7237 0 R (page.151) 7287 0 R (page.152) 7342 0 R (page.153) 7392 0 R (page.154) 7443 0 R (page.155) 7490 0 R (page.156) 7548 0 R (page.157) 7599 0 R (page.158) 7642 0 R (page.159) 7700 0 R (page.16) 701 0 R (page.160) 7749 0 R (page.161) 7783 0 R (page.162) 7836 0 R (page.163) 7886 0 R (page.164) 7937 0 R (page.165) 7985 0 R (page.166) 8040 0 R (page.167) 8081 0 R (page.168) 8120 0 R ] /Limits [ (page.14) (page.168) ] >>
+<< /Names [ (HD.9104) 10197 0 R (HD.9105) 10198 0 R (HD.9106) 10199 0 R (HD.9107) 10200 0 R (HD.9108) 10201 0 R (HD.9109) 10202 0 R (HD.911) 1243 0 R (HD.9110) 10203 0 R (HD.9111) 10204 0 R (HD.9112) 10205 0 R (HD.9113) 10206 0 R (HD.9114) 10207 0 R (HD.9115) 10208 0 R (HD.9116) 10209 0 R (HD.9117) 10210 0 R (HD.9118) 10211 0 R (HD.9119) 10212 0 R (HD.912) 1244 0 R (HD.9120) 10213 0 R (HD.9121) 10214 0 R (HD.9122) 10215 0 R (HD.9123) 10216 0 R (HD.9124) 10217 0 R (HD.9125) 10218 0 R (HD.9126) 10219 0 R (HD.9127) 10220 0 R (HD.9128) 10221 0 R (HD.9129) 10222 0 R (HD.913) 1245 0 R (HD.9130) 10223 0 R (HD.9131) 10224 0 R (HD.9132) 10225 0 R ] /Limits [ (HD.9104) (HD.9132) ] >>
endobj
12031 0 obj
-<< /Names [ (page.169) 8160 0 R (page.17) 728 0 R (page.170) 8209 0 R (page.171) 8268 0 R (page.172) 8318 0 R (page.173) 8378 0 R (page.174) 8440 0 R (page.175) 8492 0 R (page.176) 8546 0 R (page.177) 8611 0 R (page.178) 8651 0 R (page.179) 8704 0 R (page.18) 756 0 R (page.180) 8768 0 R (page.181) 8834 0 R (page.182) 8890 0 R (page.183) 8953 0 R (page.184) 9011 0 R (page.185) 9072 0 R (page.186) 9134 0 R (page.187) 9192 0 R (page.188) 9245 0 R (page.189) 9300 0 R (page.19) 775 0 R (page.190) 9343 0 R (page.191) 9392 0 R (page.192) 9429 0 R (page.193) 9473 0 R (page.194) 9531 0 R (page.195) 9590 0 R (page.196) 9638 0 R (page.197) 9701 0 R ] /Limits [ (page.169) (page.197) ] >>
+<< /Names [ (HD.9133) 10226 0 R (HD.9134) 10227 0 R (HD.9135) 10228 0 R (HD.9136) 10229 0 R (HD.9137) 10230 0 R (HD.9138) 10235 0 R (HD.9139) 10236 0 R (HD.914) 1246 0 R (HD.9140) 10237 0 R (HD.9141) 10238 0 R (HD.9142) 10239 0 R (HD.9143) 10240 0 R (HD.9144) 10241 0 R (HD.9145) 10242 0 R (HD.9146) 10243 0 R (HD.9147) 10244 0 R (HD.9148) 10245 0 R (HD.9149) 10246 0 R (HD.915) 1247 0 R (HD.9150) 10247 0 R (HD.9151) 10248 0 R (HD.9152) 10249 0 R (HD.9153) 10250 0 R (HD.9154) 10251 0 R (HD.9155) 10252 0 R (HD.9156) 10253 0 R (HD.9157) 10254 0 R (HD.9158) 10255 0 R (HD.9159) 10256 0 R (HD.916) 1248 0 R (HD.9160) 10257 0 R (HD.9161) 10258 0 R ] /Limits [ (HD.9133) (HD.9161) ] >>
endobj
12032 0 obj
-<< /Names [ (page.198) 9754 0 R (page.199) 9809 0 R (page.2) 210 0 R (page.20) 810 0 R (page.200) 9848 0 R (page.201) 9898 0 R (page.202) 9952 0 R (page.203) 10014 0 R (page.204) 10077 0 R (page.205) 10137 0 R (page.206) 10202 0 R (page.207) 10265 0 R (page.208) 10332 0 R (page.209) 10385 0 R (page.21) 831 0 R (page.210) 10446 0 R (page.211) 10488 0 R (page.212) 10549 0 R (page.213) 10612 0 R (page.214) 10676 0 R (page.215) 10741 0 R (page.216) 10805 0 R (page.217) 10869 0 R (page.218) 10934 0 R (page.219) 10998 0 R (page.22) 875 0 R (page.220) 11062 0 R (page.221) 11126 0 R (page.222) 11193 0 R (page.223) 11260 0 R (page.224) 11325 0 R (page.225) 11390 0 R ] /Limits [ (page.198) (page.225) ] >>
+<< /Names [ (HD.9162) 10259 0 R (HD.9163) 10260 0 R (HD.9164) 10261 0 R (HD.9165) 10262 0 R (HD.9166) 10263 0 R (HD.9167) 10264 0 R (HD.9168) 10265 0 R (HD.9169) 10266 0 R (HD.917) 1249 0 R (HD.9170) 10267 0 R (HD.9171) 10268 0 R (HD.9172) 10269 0 R (HD.9173) 10270 0 R (HD.9174) 10271 0 R (HD.9175) 10272 0 R (HD.9176) 10273 0 R (HD.9177) 10274 0 R (HD.9178) 10275 0 R (HD.9179) 10276 0 R (HD.918) 1250 0 R (HD.9180) 10277 0 R (HD.9181) 10278 0 R (HD.9182) 10279 0 R (HD.9183) 10280 0 R (HD.9184) 10281 0 R (HD.9185) 10282 0 R (HD.9186) 10283 0 R (HD.9187) 10284 0 R (HD.9188) 10285 0 R (HD.9189) 10286 0 R (HD.919) 1251 0 R (HD.9190) 10287 0 R ] /Limits [ (HD.9162) (HD.9190) ] >>
endobj
12033 0 obj
-<< /Names [ (page.226) 11457 0 R (page.227) 11524 0 R (page.228) 11586 0 R (page.229) 11600 0 R (page.23) 923 0 R (page.24) 967 0 R (page.25) 1012 0 R (page.26) 1057 0 R (page.27) 1085 0 R (page.28) 1106 0 R (page.29) 1146 0 R (page.3) 257 0 R (page.30) 1200 0 R (page.31) 1262 0 R (page.32) 1320 0 R (page.33) 1383 0 R (page.34) 1442 0 R (page.35) 1488 0 R (page.36) 1543 0 R (page.37) 1571 0 R (page.38) 1620 0 R (page.39) 1683 0 R (page.4) 304 0 R (page.40) 1717 0 R (page.41) 1770 0 R (page.42) 1814 0 R (page.43) 1859 0 R (page.44) 1916 0 R (page.45) 1966 0 R (page.46) 2009 0 R (page.47) 2064 0 R (page.48) 2101 0 R ] /Limits [ (page.226) (page.48) ] >>
+<< /Names [ (HD.9191) 10288 0 R (HD.9192) 10289 0 R (HD.9193) 10290 0 R (HD.9194) 10291 0 R (HD.9195) 10292 0 R (HD.9196) 10293 0 R (HD.9197) 10298 0 R (HD.9198) 10299 0 R (HD.9199) 10300 0 R (HD.92) 292 0 R (HD.920) 1252 0 R (HD.9200) 10301 0 R (HD.9201) 10302 0 R (HD.9202) 10303 0 R (HD.9203) 10304 0 R (HD.9204) 10305 0 R (HD.9205) 10306 0 R (HD.9206) 10307 0 R (HD.9207) 10308 0 R (HD.9208) 10309 0 R (HD.9209) 10310 0 R (HD.921) 1253 0 R (HD.9210) 10311 0 R (HD.9211) 10312 0 R (HD.9212) 10313 0 R (HD.9213) 10314 0 R (HD.9214) 10315 0 R (HD.9215) 10316 0 R (HD.9216) 10317 0 R (HD.9217) 10318 0 R (HD.9218) 10319 0 R (HD.9219) 10320 0 R ] /Limits [ (HD.9191) (HD.9219) ] >>
endobj
12034 0 obj
-<< /Names [ (page.49) 2134 0 R (page.5) 343 0 R (page.50) 2172 0 R (page.51) 2215 0 R (page.52) 2258 0 R (page.53) 2315 0 R (page.54) 2370 0 R (page.55) 2411 0 R (page.56) 2459 0 R (page.57) 2515 0 R (page.58) 2567 0 R (page.59) 2609 0 R (page.6) 387 0 R (page.60) 2658 0 R (page.61) 2707 0 R (page.62) 2764 0 R (page.63) 2819 0 R (page.64) 2879 0 R (page.65) 2931 0 R (page.66) 2969 0 R (page.67) 3019 0 R (page.68) 3070 0 R (page.69) 3125 0 R (page.7) 433 0 R (page.70) 3182 0 R (page.71) 3242 0 R (page.72) 3302 0 R (page.73) 3337 0 R (page.74) 3384 0 R (page.75) 3429 0 R (page.76) 3485 0 R (page.77) 3541 0 R ] /Limits [ (page.49) (page.77) ] >>
+<< /Names [ (HD.922) 1254 0 R (HD.9220) 10321 0 R (HD.9221) 10322 0 R (HD.9222) 10323 0 R (HD.9223) 10324 0 R (HD.9224) 10325 0 R (HD.9225) 10326 0 R (HD.9226) 10327 0 R (HD.9227) 10328 0 R (HD.9228) 10329 0 R (HD.9229) 10330 0 R (HD.923) 1255 0 R (HD.9230) 10331 0 R (HD.9231) 10332 0 R (HD.9232) 10333 0 R (HD.9233) 10334 0 R (HD.9234) 10335 0 R (HD.9235) 10336 0 R (HD.9236) 10337 0 R (HD.9237) 10338 0 R (HD.9238) 10339 0 R (HD.9239) 10340 0 R (HD.924) 1256 0 R (HD.9240) 10341 0 R (HD.9241) 10342 0 R (HD.9242) 10343 0 R (HD.9243) 10344 0 R (HD.9244) 10345 0 R (HD.9245) 10346 0 R (HD.9246) 10347 0 R (HD.9247) 10348 0 R (HD.9248) 10349 0 R ] /Limits [ (HD.922) (HD.9248) ] >>
endobj
12035 0 obj
-<< /Names [ (page.78) 3594 0 R (page.79) 3639 0 R (page.8) 486 0 R (page.80) 3680 0 R (page.81) 3736 0 R (page.82) 3787 0 R (page.83) 3847 0 R (page.84) 3884 0 R (page.85) 3924 0 R (page.86) 3975 0 R (page.87) 4035 0 R (page.88) 4092 0 R (page.89) 4154 0 R (page.9) 534 0 R (page.90) 4203 0 R (page.91) 4255 0 R (page.92) 4305 0 R (page.93) 4360 0 R (page.94) 4424 0 R (page.95) 4463 0 R (page.96) 4523 0 R (page.97) 4562 0 R (page.98) 4608 0 R (page.99) 4654 0 R (section.0.1) 5 0 R (section.0.10) 41 0 R (section.0.11) 45 0 R (section.0.12) 49 0 R (section.0.13) 53 0 R (section.0.14) 57 0 R (section.0.15) 61 0 R (section.0.16) 65 0 R ] /Limits [ (page.78) (section.0.16) ] >>
+<< /Names [ (HD.9249) 10350 0 R (HD.925) 1257 0 R (HD.9250) 10351 0 R (HD.9251) 10352 0 R (HD.9252) 10353 0 R (HD.9253) 10354 0 R (HD.9254) 10355 0 R (HD.9255) 10356 0 R (HD.9256) 10357 0 R (HD.9257) 10358 0 R (HD.9258) 10359 0 R (HD.9259) 10360 0 R (HD.926) 1258 0 R (HD.9260) 10365 0 R (HD.9261) 10366 0 R (HD.9262) 10367 0 R (HD.9263) 10368 0 R (HD.9264) 10369 0 R (HD.9265) 10370 0 R (HD.9266) 10371 0 R (HD.9267) 10372 0 R (HD.9268) 10373 0 R (HD.9269) 10374 0 R (HD.927) 1263 0 R (HD.9270) 10375 0 R (HD.9271) 10376 0 R (HD.9272) 10377 0 R (HD.9273) 10378 0 R (HD.9274) 10379 0 R (HD.9275) 10380 0 R (HD.9276) 10381 0 R (HD.9277) 10382 0 R ] /Limits [ (HD.9249) (HD.9277) ] >>
endobj
12036 0 obj
-<< /Names [ (section.0.17) 69 0 R (section.0.18) 73 0 R (section.0.19) 77 0 R (section.0.2) 9 0 R (section.0.20) 81 0 R (section.0.21) 85 0 R (section.0.22) 89 0 R (section.0.23) 93 0 R (section.0.24) 97 0 R (section.0.25) 101 0 R (section.0.26) 105 0 R (section.0.27) 109 0 R (section.0.28) 113 0 R (section.0.29) 117 0 R (section.0.3) 13 0 R (section.0.30) 121 0 R (section.0.31) 125 0 R (section.0.32) 129 0 R (section.0.33) 133 0 R (section.0.34) 137 0 R (section.0.35) 141 0 R (section.0.36) 145 0 R (section.0.37) 149 0 R (section.0.38) 153 0 R (section.0.39) 157 0 R (section.0.4) 17 0 R (section.0.40) 161 0 R (section.0.5) 21 0 R (section.0.6) 25 0 R (section.0.7) 29 0 R (section.0.8) 33 0 R (section.0.9) 37 0 R ] /Limits [ (section.0.17) (section.0.9) ] >>
+<< /Names [ (HD.9278) 10383 0 R (HD.9279) 10384 0 R (HD.928) 1264 0 R (HD.9280) 10385 0 R (HD.9281) 10386 0 R (HD.9282) 10387 0 R (HD.9283) 10388 0 R (HD.9284) 10389 0 R (HD.9285) 10390 0 R (HD.9286) 10391 0 R (HD.9287) 10392 0 R (HD.9288) 10393 0 R (HD.9289) 10394 0 R (HD.929) 1265 0 R (HD.9290) 10395 0 R (HD.9291) 10396 0 R (HD.9292) 10397 0 R (HD.9293) 10398 0 R (HD.9294) 10399 0 R (HD.9295) 10400 0 R (HD.9296) 10401 0 R (HD.9297) 10402 0 R (HD.9298) 10403 0 R (HD.9299) 10404 0 R (HD.93) 293 0 R (HD.930) 1266 0 R (HD.9300) 10405 0 R (HD.9301) 10406 0 R (HD.9302) 10407 0 R (HD.9303) 10408 0 R (HD.9304) 10409 0 R (HD.9305) 10410 0 R ] /Limits [ (HD.9278) (HD.9305) ] >>
endobj
12037 0 obj
-<< /Names [ (toc1.1) 165 0 R ] /Limits [ (toc1.1) (toc1.1) ] >>
+<< /Names [ (HD.9306) 10411 0 R (HD.9307) 10412 0 R (HD.9308) 10413 0 R (HD.9309) 10418 0 R (HD.931) 1267 0 R (HD.9310) 10419 0 R (HD.9311) 10420 0 R (HD.9312) 10421 0 R (HD.9313) 10422 0 R (HD.9314) 10423 0 R (HD.9315) 10424 0 R (HD.9316) 10425 0 R (HD.9317) 10426 0 R (HD.9318) 10427 0 R (HD.9319) 10428 0 R (HD.932) 1268 0 R (HD.9320) 10429 0 R (HD.9321) 10430 0 R (HD.9322) 10431 0 R (HD.9323) 10432 0 R (HD.9324) 10433 0 R (HD.9325) 10434 0 R (HD.9326) 10435 0 R (HD.9327) 10436 0 R (HD.9328) 10437 0 R (HD.9329) 10438 0 R (HD.933) 1269 0 R (HD.9330) 10439 0 R (HD.9331) 10440 0 R (HD.9332) 10441 0 R (HD.9333) 10442 0 R (HD.9334) 10443 0 R ] /Limits [ (HD.9306) (HD.9334) ] >>
endobj
12038 0 obj
-<< /Kids [ 11704 0 R 11705 0 R 11706 0 R 11707 0 R 11708 0 R 11709 0 R 11710 0 R 11711 0 R 11712 0 R 11713 0 R 11714 0 R 11715 0 R 11716 0 R 11717 0 R 11718 0 R 11719 0 R 11720 0 R 11721 0 R 11722 0 R 11723 0 R 11724 0 R 11725 0 R 11726 0 R 11727 0 R 11728 0 R 11729 0 R 11730 0 R 11731 0 R 11732 0 R 11733 0 R 11734 0 R 11735 0 R ] /Limits [ (Doc-Start) (HD.1583) ] >>
+<< /Names [ (HD.9335) 10444 0 R (HD.9336) 10445 0 R (HD.9337) 10446 0 R (HD.9338) 10447 0 R (HD.9339) 10448 0 R (HD.934) 1270 0 R (HD.9340) 10449 0 R (HD.9341) 10450 0 R (HD.9342) 10451 0 R (HD.9343) 10452 0 R (HD.9344) 10453 0 R (HD.9345) 10454 0 R (HD.9346) 10455 0 R (HD.9347) 10456 0 R (HD.9348) 10457 0 R (HD.9349) 10458 0 R (HD.935) 1271 0 R (HD.9350) 10459 0 R (HD.9351) 10460 0 R (HD.9352) 10461 0 R (HD.9353) 10462 0 R (HD.9354) 10463 0 R (HD.9355) 10464 0 R (HD.9356) 10465 0 R (HD.9357) 10466 0 R (HD.9358) 10467 0 R (HD.9359) 10468 0 R (HD.936) 1272 0 R (HD.9360) 10469 0 R (HD.9361) 10470 0 R (HD.9362) 10471 0 R (HD.9363) 10472 0 R ] /Limits [ (HD.9335) (HD.9363) ] >>
endobj
12039 0 obj
-<< /Kids [ 11736 0 R 11737 0 R 11738 0 R 11739 0 R 11740 0 R 11741 0 R 11742 0 R 11743 0 R 11744 0 R 11745 0 R 11746 0 R 11747 0 R 11748 0 R 11749 0 R 11750 0 R 11751 0 R 11752 0 R 11753 0 R 11754 0 R 11755 0 R 11756 0 R 11757 0 R 11758 0 R 11759 0 R 11760 0 R 11761 0 R 11762 0 R 11763 0 R 11764 0 R 11765 0 R 11766 0 R 11767 0 R ] /Limits [ (HD.1584) (HD.2504) ] >>
+<< /Names [ (HD.9364) 10473 0 R (HD.9365) 10474 0 R (HD.9366) 10479 0 R (HD.9367) 10480 0 R (HD.9368) 10481 0 R (HD.9369) 10482 0 R (HD.937) 1273 0 R (HD.9370) 10483 0 R (HD.9371) 10484 0 R (HD.9372) 10485 0 R (HD.9373) 10486 0 R (HD.9374) 10487 0 R (HD.9375) 10488 0 R (HD.9376) 10489 0 R (HD.9377) 10490 0 R (HD.9378) 10491 0 R (HD.9379) 10492 0 R (HD.938) 1274 0 R (HD.9380) 10493 0 R (HD.9381) 10494 0 R (HD.9382) 10495 0 R (HD.9383) 10496 0 R (HD.9384) 10497 0 R (HD.9385) 10498 0 R (HD.9386) 10499 0 R (HD.9387) 10500 0 R (HD.9388) 10501 0 R (HD.9389) 10502 0 R (HD.939) 1275 0 R (HD.9390) 10503 0 R (HD.9391) 10504 0 R (HD.9392) 10505 0 R ] /Limits [ (HD.9364) (HD.9392) ] >>
endobj
12040 0 obj
-<< /Kids [ 11768 0 R 11769 0 R 11770 0 R 11771 0 R 11772 0 R 11773 0 R 11774 0 R 11775 0 R 11776 0 R 11777 0 R 11778 0 R 11779 0 R 11780 0 R 11781 0 R 11782 0 R 11783 0 R 11784 0 R 11785 0 R 11786 0 R 11787 0 R 11788 0 R 11789 0 R 11790 0 R 11791 0 R 11792 0 R 11793 0 R 11794 0 R 11795 0 R 11796 0 R 11797 0 R 11798 0 R 11799 0 R ] /Limits [ (HD.2505) (HD.3426) ] >>
+<< /Names [ (HD.9393) 10506 0 R (HD.9394) 10507 0 R (HD.9395) 10508 0 R (HD.9396) 10509 0 R (HD.9397) 10510 0 R (HD.9398) 10511 0 R (HD.9399) 10512 0 R (HD.94) 294 0 R (HD.940) 1276 0 R (HD.9400) 10513 0 R (HD.9401) 10514 0 R (HD.9402) 10515 0 R (HD.9403) 10516 0 R (HD.9404) 10522 0 R (HD.9405) 10523 0 R (HD.9406) 10524 0 R (HD.9407) 10525 0 R (HD.9408) 10526 0 R (HD.9409) 10527 0 R (HD.941) 1277 0 R (HD.9410) 10528 0 R (HD.9411) 10529 0 R (HD.9412) 10530 0 R (HD.9413) 10531 0 R (HD.9414) 10532 0 R (HD.9415) 10533 0 R (HD.9416) 10534 0 R (HD.9417) 10535 0 R (HD.9418) 10536 0 R (HD.9419) 10537 0 R (HD.942) 1278 0 R (HD.9420) 10538 0 R ] /Limits [ (HD.9393) (HD.9420) ] >>
endobj
12041 0 obj
-<< /Kids [ 11800 0 R 11801 0 R 11802 0 R 11803 0 R 11804 0 R 11805 0 R 11806 0 R 11807 0 R 11808 0 R 11809 0 R 11810 0 R 11811 0 R 11812 0 R 11813 0 R 11814 0 R 11815 0 R 11816 0 R 11817 0 R 11818 0 R 11819 0 R 11820 0 R 11821 0 R 11822 0 R 11823 0 R 11824 0 R 11825 0 R 11826 0 R 11827 0 R 11828 0 R 11829 0 R 11830 0 R 11831 0 R ] /Limits [ (HD.3427) (HD.4348) ] >>
+<< /Names [ (HD.9421) 10539 0 R (HD.9422) 10540 0 R (HD.9423) 10541 0 R (HD.9424) 10542 0 R (HD.9425) 10543 0 R (HD.9426) 10544 0 R (HD.9427) 10545 0 R (HD.9428) 10546 0 R (HD.9429) 10547 0 R (HD.943) 1279 0 R (HD.9430) 10548 0 R (HD.9431) 10549 0 R (HD.9432) 10550 0 R (HD.9433) 10551 0 R (HD.9434) 10552 0 R (HD.9435) 10553 0 R (HD.9436) 10554 0 R (HD.9437) 10555 0 R (HD.9438) 10556 0 R (HD.9439) 10557 0 R (HD.944) 1280 0 R (HD.9440) 10558 0 R (HD.9441) 10559 0 R (HD.9442) 10560 0 R (HD.9443) 10561 0 R (HD.9444) 10562 0 R (HD.9445) 10563 0 R (HD.9446) 10564 0 R (HD.9447) 10565 0 R (HD.9448) 10566 0 R (HD.9449) 10567 0 R (HD.945) 1281 0 R ] /Limits [ (HD.9421) (HD.945) ] >>
endobj
12042 0 obj
-<< /Kids [ 11832 0 R 11833 0 R 11834 0 R 11835 0 R 11836 0 R 11837 0 R 11838 0 R 11839 0 R 11840 0 R 11841 0 R 11842 0 R 11843 0 R 11844 0 R 11845 0 R 11846 0 R 11847 0 R 11848 0 R 11849 0 R 11850 0 R 11851 0 R 11852 0 R 11853 0 R 11854 0 R 11855 0 R 11856 0 R 11857 0 R 11858 0 R 11859 0 R 11860 0 R 11861 0 R 11862 0 R 11863 0 R ] /Limits [ (HD.4349) (HD.527) ] >>
+<< /Names [ (HD.9450) 10568 0 R (HD.9451) 10569 0 R (HD.9452) 10570 0 R (HD.9453) 10571 0 R (HD.9454) 10572 0 R (HD.9455) 10573 0 R (HD.9456) 10574 0 R (HD.9457) 10575 0 R (HD.9458) 10576 0 R (HD.9459) 10577 0 R (HD.946) 1282 0 R (HD.9460) 10582 0 R (HD.9461) 10583 0 R (HD.9462) 10584 0 R (HD.9463) 10585 0 R (HD.9464) 10586 0 R (HD.9465) 10587 0 R (HD.9466) 10588 0 R (HD.9467) 10589 0 R (HD.9468) 10590 0 R (HD.9469) 10591 0 R (HD.947) 1283 0 R (HD.9470) 10592 0 R (HD.9471) 10593 0 R (HD.9472) 10594 0 R (HD.9473) 10595 0 R (HD.9474) 10596 0 R (HD.9475) 10597 0 R (HD.9476) 10598 0 R (HD.9477) 10599 0 R (HD.9478) 10600 0 R (HD.9479) 10601 0 R ] /Limits [ (HD.9450) (HD.9479) ] >>
endobj
12043 0 obj
-<< /Kids [ 11864 0 R 11865 0 R 11866 0 R 11867 0 R 11868 0 R 11869 0 R 11870 0 R 11871 0 R 11872 0 R 11873 0 R 11874 0 R 11875 0 R 11876 0 R 11877 0 R 11878 0 R 11879 0 R 11880 0 R 11881 0 R 11882 0 R 11883 0 R 11884 0 R 11885 0 R 11886 0 R 11887 0 R 11888 0 R 11889 0 R 11890 0 R 11891 0 R 11892 0 R 11893 0 R 11894 0 R 11895 0 R ] /Limits [ (HD.5270) (HD.6191) ] >>
+<< /Names [ (HD.948) 1284 0 R (HD.9480) 10602 0 R (HD.9481) 10603 0 R (HD.9482) 10604 0 R (HD.9483) 10605 0 R (HD.9484) 10606 0 R (HD.9485) 10607 0 R (HD.9486) 10608 0 R (HD.9487) 10609 0 R (HD.9488) 10610 0 R (HD.9489) 10611 0 R (HD.949) 1285 0 R (HD.9490) 10612 0 R (HD.9491) 10613 0 R (HD.9492) 10614 0 R (HD.9493) 10615 0 R (HD.9494) 10616 0 R (HD.9495) 10617 0 R (HD.9496) 10618 0 R (HD.9497) 10619 0 R (HD.9498) 10620 0 R (HD.9499) 10621 0 R (HD.95) 295 0 R (HD.950) 1286 0 R (HD.9500) 10622 0 R (HD.9501) 10623 0 R (HD.9502) 10624 0 R (HD.9503) 10625 0 R (HD.9504) 10626 0 R (HD.9505) 10627 0 R (HD.9506) 10628 0 R (HD.9507) 10629 0 R ] /Limits [ (HD.948) (HD.9507) ] >>
endobj
12044 0 obj
-<< /Kids [ 11896 0 R 11897 0 R 11898 0 R 11899 0 R 11900 0 R 11901 0 R 11902 0 R 11903 0 R 11904 0 R 11905 0 R 11906 0 R 11907 0 R 11908 0 R 11909 0 R 11910 0 R 11911 0 R 11912 0 R 11913 0 R 11914 0 R 11915 0 R 11916 0 R 11917 0 R 11918 0 R 11919 0 R 11920 0 R 11921 0 R 11922 0 R 11923 0 R 11924 0 R 11925 0 R 11926 0 R 11927 0 R ] /Limits [ (HD.6192) (HD.7112) ] >>
+<< /Names [ (HD.9508) 10630 0 R (HD.9509) 10631 0 R (HD.951) 1287 0 R (HD.9510) 10632 0 R (HD.9511) 10633 0 R (HD.9512) 10634 0 R (HD.9513) 10635 0 R (HD.9514) 10636 0 R (HD.9515) 10637 0 R (HD.9516) 10638 0 R (HD.9517) 10639 0 R (HD.9518) 10640 0 R (HD.9519) 10645 0 R (HD.952) 1288 0 R (HD.9520) 10646 0 R (HD.9521) 10647 0 R (HD.9522) 10648 0 R (HD.9523) 10649 0 R (HD.9524) 10650 0 R (HD.9525) 10651 0 R (HD.9526) 10652 0 R (HD.9527) 10653 0 R (HD.9528) 10654 0 R (HD.9529) 10655 0 R (HD.953) 1289 0 R (HD.9530) 10656 0 R (HD.9531) 10657 0 R (HD.9532) 10658 0 R (HD.9533) 10659 0 R (HD.9534) 10660 0 R (HD.9535) 10661 0 R (HD.9536) 10662 0 R ] /Limits [ (HD.9508) (HD.9536) ] >>
endobj
12045 0 obj
-<< /Kids [ 11928 0 R 11929 0 R 11930 0 R 11931 0 R 11932 0 R 11933 0 R 11934 0 R 11935 0 R 11936 0 R 11937 0 R 11938 0 R 11939 0 R 11940 0 R 11941 0 R 11942 0 R 11943 0 R 11944 0 R 11945 0 R 11946 0 R 11947 0 R 11948 0 R 11949 0 R 11950 0 R 11951 0 R 11952 0 R 11953 0 R 11954 0 R 11955 0 R 11956 0 R 11957 0 R 11958 0 R 11959 0 R ] /Limits [ (HD.7113) (HD.8034) ] >>
+<< /Names [ (HD.9537) 10663 0 R (HD.9538) 10664 0 R (HD.9539) 10665 0 R (HD.954) 1290 0 R (HD.9540) 10666 0 R (HD.9541) 10667 0 R (HD.9542) 10668 0 R (HD.9543) 10669 0 R (HD.9544) 10670 0 R (HD.9545) 10671 0 R (HD.9546) 10672 0 R (HD.9547) 10673 0 R (HD.9548) 10674 0 R (HD.9549) 10675 0 R (HD.955) 1291 0 R (HD.9550) 10676 0 R (HD.9551) 10677 0 R (HD.9552) 10678 0 R (HD.9553) 10679 0 R (HD.9554) 10680 0 R (HD.9555) 10681 0 R (HD.9556) 10682 0 R (HD.9557) 10683 0 R (HD.9558) 10684 0 R (HD.9559) 10685 0 R (HD.956) 1292 0 R (HD.9560) 10686 0 R (HD.9561) 10687 0 R (HD.9562) 10688 0 R (HD.9563) 10689 0 R (HD.9564) 10690 0 R (HD.9565) 10691 0 R ] /Limits [ (HD.9537) (HD.9565) ] >>
endobj
12046 0 obj
-<< /Kids [ 11960 0 R 11961 0 R 11962 0 R 11963 0 R 11964 0 R 11965 0 R 11966 0 R 11967 0 R 11968 0 R 11969 0 R 11970 0 R 11971 0 R 11972 0 R 11973 0 R 11974 0 R 11975 0 R 11976 0 R 11977 0 R 11978 0 R 11979 0 R 11980 0 R 11981 0 R 11982 0 R 11983 0 R 11984 0 R 11985 0 R 11986 0 R 11987 0 R 11988 0 R 11989 0 R 11990 0 R 11991 0 R ] /Limits [ (HD.8035) (HD.8957) ] >>
+<< /Names [ (HD.9566) 10692 0 R (HD.9567) 10693 0 R (HD.9568) 10694 0 R (HD.9569) 10695 0 R (HD.957) 1293 0 R (HD.9570) 10696 0 R (HD.9571) 10697 0 R (HD.9572) 10698 0 R (HD.9573) 10699 0 R (HD.9574) 10700 0 R (HD.9575) 10701 0 R (HD.9576) 10702 0 R (HD.9577) 10703 0 R (HD.9578) 10704 0 R (HD.9579) 10709 0 R (HD.958) 1294 0 R (HD.9580) 10710 0 R (HD.9581) 10711 0 R (HD.9582) 10712 0 R (HD.9583) 10713 0 R (HD.9584) 10714 0 R (HD.9585) 10715 0 R (HD.9586) 10716 0 R (HD.9587) 10717 0 R (HD.9588) 10718 0 R (HD.9589) 10719 0 R (HD.959) 1295 0 R (HD.9590) 10720 0 R (HD.9591) 10721 0 R (HD.9592) 10722 0 R (HD.9593) 10723 0 R (HD.9594) 10724 0 R ] /Limits [ (HD.9566) (HD.9594) ] >>
endobj
12047 0 obj
-<< /Kids [ 11992 0 R 11993 0 R 11994 0 R 11995 0 R 11996 0 R 11997 0 R 11998 0 R 11999 0 R 12000 0 R 12001 0 R 12002 0 R 12003 0 R 12004 0 R 12005 0 R 12006 0 R 12007 0 R 12008 0 R 12009 0 R 12010 0 R 12011 0 R 12012 0 R 12013 0 R 12014 0 R 12015 0 R 12016 0 R 12017 0 R 12018 0 R 12019 0 R 12020 0 R 12021 0 R 12022 0 R 12023 0 R ] /Limits [ (HD.8958) (HD.9879) ] >>
+<< /Names [ (HD.9595) 10725 0 R (HD.9596) 10726 0 R (HD.9597) 10727 0 R (HD.9598) 10728 0 R (HD.9599) 10729 0 R (HD.96) 296 0 R (HD.960) 1296 0 R (HD.9600) 10730 0 R (HD.9601) 10731 0 R (HD.9602) 10732 0 R (HD.9603) 10733 0 R (HD.9604) 10734 0 R (HD.9605) 10735 0 R (HD.9606) 10736 0 R (HD.9607) 10737 0 R (HD.9608) 10738 0 R (HD.9609) 10739 0 R (HD.961) 1297 0 R (HD.9610) 10740 0 R (HD.9611) 10741 0 R (HD.9612) 10742 0 R (HD.9613) 10743 0 R (HD.9614) 10744 0 R (HD.9615) 10745 0 R (HD.9616) 10746 0 R (HD.9617) 10747 0 R (HD.9618) 10748 0 R (HD.9619) 10749 0 R (HD.962) 1298 0 R (HD.9620) 10750 0 R (HD.9621) 10751 0 R (HD.9622) 10752 0 R ] /Limits [ (HD.9595) (HD.9622) ] >>
endobj
12048 0 obj
-<< /Kids [ 12024 0 R 12025 0 R 12026 0 R 12027 0 R 12028 0 R 12029 0 R 12030 0 R 12031 0 R 12032 0 R 12033 0 R 12034 0 R 12035 0 R 12036 0 R 12037 0 R ] /Limits [ (HD.988) (toc1.1) ] >>
+<< /Names [ (HD.9623) 10753 0 R (HD.9624) 10754 0 R (HD.9625) 10755 0 R (HD.9626) 10756 0 R (HD.9627) 10757 0 R (HD.9628) 10758 0 R (HD.9629) 10759 0 R (HD.963) 1299 0 R (HD.9630) 10760 0 R (HD.9631) 10761 0 R (HD.9632) 10762 0 R (HD.9633) 10763 0 R (HD.9634) 10764 0 R (HD.9635) 10765 0 R (HD.9636) 10766 0 R (HD.9637) 10767 0 R (HD.9638) 10768 0 R (HD.9639) 10769 0 R (HD.964) 1300 0 R (HD.9640) 10774 0 R (HD.9641) 10775 0 R (HD.9642) 10776 0 R (HD.9643) 10777 0 R (HD.9644) 10778 0 R (HD.9645) 10779 0 R (HD.9646) 10780 0 R (HD.9647) 10781 0 R (HD.9648) 10782 0 R (HD.9649) 10783 0 R (HD.965) 1301 0 R (HD.9650) 10784 0 R (HD.9651) 10785 0 R ] /Limits [ (HD.9623) (HD.9651) ] >>
endobj
12049 0 obj
-<< /Kids [ 12038 0 R 12039 0 R 12040 0 R 12041 0 R 12042 0 R 12043 0 R 12044 0 R 12045 0 R 12046 0 R 12047 0 R 12048 0 R ] /Limits [ (Doc-Start) (toc1.1) ] >>
+<< /Names [ (HD.9652) 10786 0 R (HD.9653) 10787 0 R (HD.9654) 10788 0 R (HD.9655) 10789 0 R (HD.9656) 10790 0 R (HD.9657) 10791 0 R (HD.9658) 10792 0 R (HD.9659) 10793 0 R (HD.966) 1302 0 R (HD.9660) 10794 0 R (HD.9661) 10795 0 R (HD.9662) 10796 0 R (HD.9663) 10797 0 R (HD.9664) 10798 0 R (HD.9665) 10799 0 R (HD.9666) 10800 0 R (HD.9667) 10801 0 R (HD.9668) 10802 0 R (HD.9669) 10803 0 R (HD.967) 1303 0 R (HD.9670) 10804 0 R (HD.9671) 10805 0 R (HD.9672) 10806 0 R (HD.9673) 10807 0 R (HD.9674) 10808 0 R (HD.9675) 10809 0 R (HD.9676) 10810 0 R (HD.9677) 10811 0 R (HD.9678) 10812 0 R (HD.9679) 10813 0 R (HD.968) 1304 0 R (HD.9680) 10814 0 R ] /Limits [ (HD.9652) (HD.9680) ] >>
endobj
12050 0 obj
-<< /Dests 12049 0 R >>
+<< /Names [ (HD.9681) 10815 0 R (HD.9682) 10816 0 R (HD.9683) 10817 0 R (HD.9684) 10818 0 R (HD.9685) 10819 0 R (HD.9686) 10820 0 R (HD.9687) 10821 0 R (HD.9688) 10822 0 R (HD.9689) 10823 0 R (HD.969) 1305 0 R (HD.9690) 10824 0 R (HD.9691) 10825 0 R (HD.9692) 10826 0 R (HD.9693) 10827 0 R (HD.9694) 10828 0 R (HD.9695) 10829 0 R (HD.9696) 10830 0 R (HD.9697) 10831 0 R (HD.9698) 10832 0 R (HD.9699) 10833 0 R (HD.97) 297 0 R (HD.970) 1306 0 R (HD.9700) 10838 0 R (HD.9701) 10839 0 R (HD.9702) 10840 0 R (HD.9703) 10841 0 R (HD.9704) 10842 0 R (HD.9705) 10843 0 R (HD.9706) 10844 0 R (HD.9707) 10845 0 R (HD.9708) 10846 0 R (HD.9709) 10847 0 R ] /Limits [ (HD.9681) (HD.9709) ] >>
endobj
12051 0 obj
-<< /Type /Catalog /Pages 11702 0 R /Outlines 11703 0 R /Names 12050 0 R /PageMode/UseOutlines /OpenAction 168 0 R >>
+<< /Names [ (HD.971) 1307 0 R (HD.9710) 10848 0 R (HD.9711) 10849 0 R (HD.9712) 10850 0 R (HD.9713) 10851 0 R (HD.9714) 10852 0 R (HD.9715) 10853 0 R (HD.9716) 10854 0 R (HD.9717) 10855 0 R (HD.9718) 10856 0 R (HD.9719) 10857 0 R (HD.972) 1308 0 R (HD.9720) 10858 0 R (HD.9721) 10859 0 R (HD.9722) 10860 0 R (HD.9723) 10861 0 R (HD.9724) 10862 0 R (HD.9725) 10863 0 R (HD.9726) 10864 0 R (HD.9727) 10865 0 R (HD.9728) 10866 0 R (HD.9729) 10867 0 R (HD.973) 1309 0 R (HD.9730) 10868 0 R (HD.9731) 10869 0 R (HD.9732) 10870 0 R (HD.9733) 10871 0 R (HD.9734) 10872 0 R (HD.9735) 10873 0 R (HD.9736) 10874 0 R (HD.9737) 10875 0 R (HD.9738) 10876 0 R ] /Limits [ (HD.971) (HD.9738) ] >>
endobj
12052 0 obj
-<< /Author(\376\377\000F\000.\000\040\000P\000a\000n\000t\000i\000g\000n\000y)/Title(\376\377\000T\000h\000e\000\040\000c\000o\000d\000e\000\040\000o\000f\000\040\000t\000h\000e\000\040\000p\000a\000c\000k\000a\000g\000e\000\040\000'\000n\000i\000c\000e\000m\000a\000t\000r\000i\000x\000')/Subject(\376\377\000A\000\040\000L\000a\000T\000e\000X\000\040\000p\000a\000c\000k\000a\000g\000e)/Creator(LaTeX with hyperref)/Keywords() /Producer (LuaTeX-1.18.1) /CreationDate (D:20240629143946+02'00') /ModDate (D:20240629143946+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.1 (MiKTeX 24.4)) >>
+<< /Names [ (HD.9739) 10877 0 R (HD.974) 1310 0 R (HD.9740) 10878 0 R (HD.9741) 10879 0 R (HD.9742) 10880 0 R (HD.9743) 10881 0 R (HD.9744) 10882 0 R (HD.9745) 10883 0 R (HD.9746) 10884 0 R (HD.9747) 10885 0 R (HD.9748) 10886 0 R (HD.9749) 10887 0 R (HD.975) 1311 0 R (HD.9750) 10888 0 R (HD.9751) 10889 0 R (HD.9752) 10890 0 R (HD.9753) 10891 0 R (HD.9754) 10892 0 R (HD.9755) 10893 0 R (HD.9756) 10894 0 R (HD.9757) 10895 0 R (HD.9758) 10896 0 R (HD.9759) 10897 0 R (HD.976) 1312 0 R (HD.9760) 10902 0 R (HD.9761) 10903 0 R (HD.9762) 10904 0 R (HD.9763) 10905 0 R (HD.9764) 10906 0 R (HD.9765) 10907 0 R (HD.9766) 10908 0 R (HD.9767) 10909 0 R ] /Limits [ (HD.9739) (HD.9767) ] >>
+endobj
+12053 0 obj
+<< /Names [ (HD.9768) 10910 0 R (HD.9769) 10911 0 R (HD.977) 1313 0 R (HD.9770) 10912 0 R (HD.9771) 10913 0 R (HD.9772) 10914 0 R (HD.9773) 10915 0 R (HD.9774) 10916 0 R (HD.9775) 10917 0 R (HD.9776) 10918 0 R (HD.9777) 10919 0 R (HD.9778) 10920 0 R (HD.9779) 10921 0 R (HD.978) 1314 0 R (HD.9780) 10922 0 R (HD.9781) 10923 0 R (HD.9782) 10924 0 R (HD.9783) 10925 0 R (HD.9784) 10926 0 R (HD.9785) 10927 0 R (HD.9786) 10928 0 R (HD.9787) 10929 0 R (HD.9788) 10930 0 R (HD.9789) 10931 0 R (HD.979) 1315 0 R (HD.9790) 10932 0 R (HD.9791) 10933 0 R (HD.9792) 10934 0 R (HD.9793) 10935 0 R (HD.9794) 10936 0 R (HD.9795) 10937 0 R (HD.9796) 10938 0 R ] /Limits [ (HD.9768) (HD.9796) ] >>
+endobj
+12054 0 obj
+<< /Names [ (HD.9797) 10939 0 R (HD.9798) 10940 0 R (HD.9799) 10941 0 R (HD.98) 298 0 R (HD.980) 1321 0 R (HD.9800) 10942 0 R (HD.9801) 10943 0 R (HD.9802) 10944 0 R (HD.9803) 10945 0 R (HD.9804) 10946 0 R (HD.9805) 10947 0 R (HD.9806) 10948 0 R (HD.9807) 10949 0 R (HD.9808) 10950 0 R (HD.9809) 10951 0 R (HD.981) 1322 0 R (HD.9810) 10952 0 R (HD.9811) 10953 0 R (HD.9812) 10954 0 R (HD.9813) 10955 0 R (HD.9814) 10956 0 R (HD.9815) 10957 0 R (HD.9816) 10958 0 R (HD.9817) 10959 0 R (HD.9818) 10960 0 R (HD.9819) 10961 0 R (HD.982) 1323 0 R (HD.9820) 10962 0 R (HD.9821) 10967 0 R (HD.9822) 10968 0 R (HD.9823) 10969 0 R (HD.9824) 10970 0 R ] /Limits [ (HD.9797) (HD.9824) ] >>
+endobj
+12055 0 obj
+<< /Names [ (HD.9825) 10971 0 R (HD.9826) 10972 0 R (HD.9827) 10973 0 R (HD.9828) 10974 0 R (HD.9829) 10975 0 R (HD.983) 1324 0 R (HD.9830) 10976 0 R (HD.9831) 10977 0 R (HD.9832) 10978 0 R (HD.9833) 10979 0 R (HD.9834) 10980 0 R (HD.9835) 10981 0 R (HD.9836) 10982 0 R (HD.9837) 10983 0 R (HD.9838) 10984 0 R (HD.9839) 10985 0 R (HD.984) 1325 0 R (HD.9840) 10986 0 R (HD.9841) 10987 0 R (HD.9842) 10988 0 R (HD.9843) 10989 0 R (HD.9844) 10990 0 R (HD.9845) 10991 0 R (HD.9846) 10992 0 R (HD.9847) 10993 0 R (HD.9848) 10994 0 R (HD.9849) 10995 0 R (HD.985) 1326 0 R (HD.9850) 10996 0 R (HD.9851) 10997 0 R (HD.9852) 10998 0 R (HD.9853) 10999 0 R ] /Limits [ (HD.9825) (HD.9853) ] >>
+endobj
+12056 0 obj
+<< /Names [ (HD.9854) 11000 0 R (HD.9855) 11001 0 R (HD.9856) 11002 0 R (HD.9857) 11003 0 R (HD.9858) 11004 0 R (HD.9859) 11005 0 R (HD.986) 1327 0 R (HD.9860) 11006 0 R (HD.9861) 11007 0 R (HD.9862) 11008 0 R (HD.9863) 11009 0 R (HD.9864) 11010 0 R (HD.9865) 11011 0 R (HD.9866) 11012 0 R (HD.9867) 11013 0 R (HD.9868) 11014 0 R (HD.9869) 11015 0 R (HD.987) 1328 0 R (HD.9870) 11016 0 R (HD.9871) 11017 0 R (HD.9872) 11018 0 R (HD.9873) 11019 0 R (HD.9874) 11020 0 R (HD.9875) 11021 0 R (HD.9876) 11022 0 R (HD.9877) 11023 0 R (HD.9878) 11024 0 R (HD.9879) 11025 0 R (HD.988) 1329 0 R (HD.9880) 11026 0 R (HD.9881) 11031 0 R (HD.9882) 11032 0 R ] /Limits [ (HD.9854) (HD.9882) ] >>
+endobj
+12057 0 obj
+<< /Names [ (HD.9883) 11033 0 R (HD.9884) 11034 0 R (HD.9885) 11035 0 R (HD.9886) 11036 0 R (HD.9887) 11037 0 R (HD.9888) 11038 0 R (HD.9889) 11039 0 R (HD.989) 1330 0 R (HD.9890) 11040 0 R (HD.9891) 11041 0 R (HD.9892) 11042 0 R (HD.9893) 11043 0 R (HD.9894) 11044 0 R (HD.9895) 11045 0 R (HD.9896) 11046 0 R (HD.9897) 11047 0 R (HD.9898) 11048 0 R (HD.9899) 11049 0 R (HD.99) 299 0 R (HD.990) 1331 0 R (HD.9900) 11050 0 R (HD.9901) 11051 0 R (HD.9902) 11052 0 R (HD.9903) 11053 0 R (HD.9904) 11054 0 R (HD.9905) 11055 0 R (HD.9906) 11056 0 R (HD.9907) 11057 0 R (HD.9908) 11058 0 R (HD.9909) 11059 0 R (HD.991) 1332 0 R (HD.9910) 11060 0 R ] /Limits [ (HD.9883) (HD.9910) ] >>
+endobj
+12058 0 obj
+<< /Names [ (HD.9911) 11061 0 R (HD.9912) 11062 0 R (HD.9913) 11063 0 R (HD.9914) 11064 0 R (HD.9915) 11065 0 R (HD.9916) 11066 0 R (HD.9917) 11067 0 R (HD.9918) 11068 0 R (HD.9919) 11069 0 R (HD.992) 1333 0 R (HD.9920) 11070 0 R (HD.9921) 11071 0 R (HD.9922) 11072 0 R (HD.9923) 11073 0 R (HD.9924) 11074 0 R (HD.9925) 11075 0 R (HD.9926) 11076 0 R (HD.9927) 11077 0 R (HD.9928) 11078 0 R (HD.9929) 11079 0 R (HD.993) 1334 0 R (HD.9930) 11080 0 R (HD.9931) 11081 0 R (HD.9932) 11082 0 R (HD.9933) 11083 0 R (HD.9934) 11084 0 R (HD.9935) 11085 0 R (HD.9936) 11086 0 R (HD.9937) 11087 0 R (HD.9938) 11088 0 R (HD.9939) 11089 0 R (HD.994) 1335 0 R ] /Limits [ (HD.9911) (HD.994) ] >>
+endobj
+12059 0 obj
+<< /Names [ (HD.9940) 11090 0 R (HD.9941) 11095 0 R (HD.9942) 11096 0 R (HD.9943) 11097 0 R (HD.9944) 11098 0 R (HD.9945) 11099 0 R (HD.9946) 11100 0 R (HD.9947) 11101 0 R (HD.9948) 11102 0 R (HD.9949) 11103 0 R (HD.995) 1336 0 R (HD.9950) 11104 0 R (HD.9951) 11105 0 R (HD.9952) 11106 0 R (HD.9953) 11107 0 R (HD.9954) 11108 0 R (HD.9955) 11109 0 R (HD.9956) 11110 0 R (HD.9957) 11111 0 R (HD.9958) 11112 0 R (HD.9959) 11113 0 R (HD.996) 1337 0 R (HD.9960) 11114 0 R (HD.9961) 11115 0 R (HD.9962) 11116 0 R (HD.9963) 11117 0 R (HD.9964) 11118 0 R (HD.9965) 11119 0 R (HD.9966) 11120 0 R (HD.9967) 11121 0 R (HD.9968) 11122 0 R (HD.9969) 11123 0 R ] /Limits [ (HD.9940) (HD.9969) ] >>
+endobj
+12060 0 obj
+<< /Names [ (HD.997) 1338 0 R (HD.9970) 11124 0 R (HD.9971) 11125 0 R (HD.9972) 11126 0 R (HD.9973) 11127 0 R (HD.9974) 11128 0 R (HD.9975) 11129 0 R (HD.9976) 11130 0 R (HD.9977) 11131 0 R (HD.9978) 11132 0 R (HD.9979) 11133 0 R (HD.998) 1339 0 R (HD.9980) 11134 0 R (HD.9981) 11135 0 R (HD.9982) 11136 0 R (HD.9983) 11137 0 R (HD.9984) 11138 0 R (HD.9985) 11139 0 R (HD.9986) 11140 0 R (HD.9987) 11141 0 R (HD.9988) 11142 0 R (HD.9989) 11143 0 R (HD.999) 1340 0 R (HD.9990) 11144 0 R (HD.9991) 11145 0 R (HD.9992) 11146 0 R (HD.9993) 11147 0 R (HD.9994) 11148 0 R (HD.9995) 11149 0 R (HD.9996) 11150 0 R (HD.9997) 11151 0 R (HD.9998) 11152 0 R ] /Limits [ (HD.997) (HD.9998) ] >>
+endobj
+12061 0 obj
+<< /Names [ (HD.9999) 11153 0 R (Hfootnote.1) 481 0 R (Hfootnote.10) 2758 0 R (Hfootnote.11) 4564 0 R (Hfootnote.12) 4642 0 R (Hfootnote.13) 6106 0 R (Hfootnote.14) 7882 0 R (Hfootnote.2) 767 0 R (Hfootnote.3) 826 0 R (Hfootnote.4) 1960 0 R (Hfootnote.5) 1961 0 R (Hfootnote.6) 2364 0 R (Hfootnote.7) 2406 0 R (Hfootnote.8) 2508 0 R (Hfootnote.9) 2561 0 R (page.1) 172 0 R (page.10) 566 0 R (page.100) 4700 0 R (page.101) 4758 0 R (page.102) 4787 0 R (page.103) 4842 0 R (page.104) 4907 0 R (page.105) 4949 0 R (page.106) 5015 0 R (page.107) 5070 0 R (page.108) 5112 0 R (page.109) 5161 0 R (page.11) 586 0 R (page.110) 5223 0 R (page.111) 5268 0 R (page.112) 5319 0 R (page.113) 5362 0 R ] /Limits [ (HD.9999) (page.113) ] >>
+endobj
+12062 0 obj
+<< /Names [ (page.114) 5408 0 R (page.115) 5446 0 R (page.116) 5495 0 R (page.117) 5552 0 R (page.118) 5606 0 R (page.119) 5669 0 R (page.12) 607 0 R (page.120) 5720 0 R (page.121) 5782 0 R (page.122) 5845 0 R (page.123) 5896 0 R (page.124) 5959 0 R (page.125) 6015 0 R (page.126) 6068 0 R (page.127) 6111 0 R (page.128) 6144 0 R (page.129) 6199 0 R (page.13) 634 0 R (page.130) 6259 0 R (page.131) 6285 0 R (page.132) 6338 0 R (page.133) 6388 0 R (page.134) 6441 0 R (page.135) 6485 0 R (page.136) 6539 0 R (page.137) 6583 0 R (page.138) 6642 0 R (page.139) 6697 0 R (page.14) 658 0 R (page.140) 6746 0 R (page.141) 6783 0 R (page.142) 6825 0 R ] /Limits [ (page.114) (page.142) ] >>
+endobj
+12063 0 obj
+<< /Names [ (page.143) 6866 0 R (page.144) 6906 0 R (page.145) 6953 0 R (page.146) 7014 0 R (page.147) 7076 0 R (page.148) 7125 0 R (page.149) 7181 0 R (page.15) 681 0 R (page.150) 7244 0 R (page.151) 7289 0 R (page.152) 7341 0 R (page.153) 7391 0 R (page.154) 7446 0 R (page.155) 7491 0 R (page.156) 7552 0 R (page.157) 7611 0 R (page.158) 7647 0 R (page.159) 7704 0 R (page.16) 701 0 R (page.160) 7752 0 R (page.161) 7799 0 R (page.162) 7839 0 R (page.163) 7887 0 R (page.164) 7946 0 R (page.165) 7993 0 R (page.166) 8047 0 R (page.167) 8084 0 R (page.168) 8121 0 R (page.169) 8152 0 R (page.17) 728 0 R (page.170) 8201 0 R (page.171) 8252 0 R ] /Limits [ (page.143) (page.171) ] >>
+endobj
+12064 0 obj
+<< /Names [ (page.172) 8308 0 R (page.173) 8358 0 R (page.174) 8412 0 R (page.175) 8478 0 R (page.176) 8530 0 R (page.177) 8581 0 R (page.178) 8645 0 R (page.179) 8684 0 R (page.18) 756 0 R (page.180) 8735 0 R (page.181) 8801 0 R (page.182) 8866 0 R (page.183) 8921 0 R (page.184) 8983 0 R (page.185) 9043 0 R (page.186) 9104 0 R (page.187) 9165 0 R (page.188) 9223 0 R (page.189) 9271 0 R (page.19) 775 0 R (page.190) 9326 0 R (page.191) 9369 0 R (page.192) 9419 0 R (page.193) 9461 0 R (page.194) 9505 0 R (page.195) 9563 0 R (page.196) 9622 0 R (page.197) 9670 0 R (page.198) 9733 0 R (page.199) 9786 0 R (page.2) 210 0 R (page.20) 810 0 R ] /Limits [ (page.172) (page.20) ] >>
+endobj
+12065 0 obj
+<< /Names [ (page.200) 9841 0 R (page.201) 9880 0 R (page.202) 9931 0 R (page.203) 9984 0 R (page.204) 10046 0 R (page.205) 10109 0 R (page.206) 10169 0 R (page.207) 10234 0 R (page.208) 10297 0 R (page.209) 10364 0 R (page.21) 831 0 R (page.210) 10417 0 R (page.211) 10478 0 R (page.212) 10521 0 R (page.213) 10581 0 R (page.214) 10644 0 R (page.215) 10708 0 R (page.216) 10773 0 R (page.217) 10837 0 R (page.218) 10901 0 R (page.219) 10966 0 R (page.22) 875 0 R (page.220) 11030 0 R (page.221) 11094 0 R (page.222) 11159 0 R (page.223) 11225 0 R (page.224) 11292 0 R (page.225) 11357 0 R (page.226) 11422 0 R (page.227) 11489 0 R (page.228) 11556 0 R (page.229) 11618 0 R ] /Limits [ (page.200) (page.229) ] >>
+endobj
+12066 0 obj
+<< /Names [ (page.23) 923 0 R (page.230) 11632 0 R (page.24) 967 0 R (page.25) 1012 0 R (page.26) 1057 0 R (page.27) 1085 0 R (page.28) 1106 0 R (page.29) 1146 0 R (page.3) 257 0 R (page.30) 1200 0 R (page.31) 1262 0 R (page.32) 1320 0 R (page.33) 1383 0 R (page.34) 1442 0 R (page.35) 1488 0 R (page.36) 1543 0 R (page.37) 1571 0 R (page.38) 1620 0 R (page.39) 1683 0 R (page.4) 304 0 R (page.40) 1717 0 R (page.41) 1770 0 R (page.42) 1814 0 R (page.43) 1859 0 R (page.44) 1916 0 R (page.45) 1966 0 R (page.46) 2009 0 R (page.47) 2064 0 R (page.48) 2101 0 R (page.49) 2134 0 R (page.5) 343 0 R (page.50) 2172 0 R ] /Limits [ (page.23) (page.50) ] >>
+endobj
+12067 0 obj
+<< /Names [ (page.51) 2215 0 R (page.52) 2258 0 R (page.53) 2315 0 R (page.54) 2370 0 R (page.55) 2411 0 R (page.56) 2459 0 R (page.57) 2515 0 R (page.58) 2567 0 R (page.59) 2609 0 R (page.6) 387 0 R (page.60) 2658 0 R (page.61) 2707 0 R (page.62) 2764 0 R (page.63) 2819 0 R (page.64) 2879 0 R (page.65) 2931 0 R (page.66) 2969 0 R (page.67) 3019 0 R (page.68) 3070 0 R (page.69) 3125 0 R (page.7) 433 0 R (page.70) 3182 0 R (page.71) 3242 0 R (page.72) 3302 0 R (page.73) 3337 0 R (page.74) 3384 0 R (page.75) 3429 0 R (page.76) 3485 0 R (page.77) 3539 0 R (page.78) 3590 0 R (page.79) 3640 0 R (page.8) 486 0 R ] /Limits [ (page.51) (page.8) ] >>
+endobj
+12068 0 obj
+<< /Names [ (page.80) 3685 0 R (page.81) 3735 0 R (page.82) 3788 0 R (page.83) 3847 0 R (page.84) 3891 0 R (page.85) 3928 0 R (page.86) 3976 0 R (page.87) 4032 0 R (page.88) 4092 0 R (page.89) 4151 0 R (page.9) 534 0 R (page.90) 4204 0 R (page.91) 4257 0 R (page.92) 4303 0 R (page.93) 4362 0 R (page.94) 4420 0 R (page.95) 4469 0 R (page.96) 4517 0 R (page.97) 4569 0 R (page.98) 4609 0 R (page.99) 4647 0 R (section.0.1) 5 0 R (section.0.10) 41 0 R (section.0.11) 45 0 R (section.0.12) 49 0 R (section.0.13) 53 0 R (section.0.14) 57 0 R (section.0.15) 61 0 R (section.0.16) 65 0 R (section.0.17) 69 0 R (section.0.18) 73 0 R (section.0.19) 77 0 R ] /Limits [ (page.80) (section.0.19) ] >>
+endobj
+12069 0 obj
+<< /Names [ (section.0.2) 9 0 R (section.0.20) 81 0 R (section.0.21) 85 0 R (section.0.22) 89 0 R (section.0.23) 93 0 R (section.0.24) 97 0 R (section.0.25) 101 0 R (section.0.26) 105 0 R (section.0.27) 109 0 R (section.0.28) 113 0 R (section.0.29) 117 0 R (section.0.3) 13 0 R (section.0.30) 121 0 R (section.0.31) 125 0 R (section.0.32) 129 0 R (section.0.33) 133 0 R (section.0.34) 137 0 R (section.0.35) 141 0 R (section.0.36) 145 0 R (section.0.37) 149 0 R (section.0.38) 153 0 R (section.0.39) 157 0 R (section.0.4) 17 0 R (section.0.40) 161 0 R (section.0.5) 21 0 R (section.0.6) 25 0 R (section.0.7) 29 0 R (section.0.8) 33 0 R (section.0.9) 37 0 R (toc1.1) 165 0 R ] /Limits [ (section.0.2) (toc1.1) ] >>
+endobj
+12070 0 obj
+<< /Kids [ 11736 0 R 11737 0 R 11738 0 R 11739 0 R 11740 0 R 11741 0 R 11742 0 R 11743 0 R 11744 0 R 11745 0 R 11746 0 R 11747 0 R 11748 0 R 11749 0 R 11750 0 R 11751 0 R 11752 0 R 11753 0 R 11754 0 R 11755 0 R 11756 0 R 11757 0 R 11758 0 R 11759 0 R 11760 0 R 11761 0 R 11762 0 R 11763 0 R 11764 0 R 11765 0 R 11766 0 R 11767 0 R ] /Limits [ (Doc-Start) (HD.1558) ] >>
+endobj
+12071 0 obj
+<< /Kids [ 11768 0 R 11769 0 R 11770 0 R 11771 0 R 11772 0 R 11773 0 R 11774 0 R 11775 0 R 11776 0 R 11777 0 R 11778 0 R 11779 0 R 11780 0 R 11781 0 R 11782 0 R 11783 0 R 11784 0 R 11785 0 R 11786 0 R 11787 0 R 11788 0 R 11789 0 R 11790 0 R 11791 0 R 11792 0 R 11793 0 R 11794 0 R 11795 0 R 11796 0 R 11797 0 R 11798 0 R 11799 0 R ] /Limits [ (HD.1559) (HD.248) ] >>
+endobj
+12072 0 obj
+<< /Kids [ 11800 0 R 11801 0 R 11802 0 R 11803 0 R 11804 0 R 11805 0 R 11806 0 R 11807 0 R 11808 0 R 11809 0 R 11810 0 R 11811 0 R 11812 0 R 11813 0 R 11814 0 R 11815 0 R 11816 0 R 11817 0 R 11818 0 R 11819 0 R 11820 0 R 11821 0 R 11822 0 R 11823 0 R 11824 0 R 11825 0 R 11826 0 R 11827 0 R 11828 0 R 11829 0 R 11830 0 R 11831 0 R ] /Limits [ (HD.2480) (HD.3400) ] >>
+endobj
+12073 0 obj
+<< /Kids [ 11832 0 R 11833 0 R 11834 0 R 11835 0 R 11836 0 R 11837 0 R 11838 0 R 11839 0 R 11840 0 R 11841 0 R 11842 0 R 11843 0 R 11844 0 R 11845 0 R 11846 0 R 11847 0 R 11848 0 R 11849 0 R 11850 0 R 11851 0 R 11852 0 R 11853 0 R 11854 0 R 11855 0 R 11856 0 R 11857 0 R 11858 0 R 11859 0 R 11860 0 R 11861 0 R 11862 0 R 11863 0 R ] /Limits [ (HD.3401) (HD.4322) ] >>
+endobj
+12074 0 obj
+<< /Kids [ 11864 0 R 11865 0 R 11866 0 R 11867 0 R 11868 0 R 11869 0 R 11870 0 R 11871 0 R 11872 0 R 11873 0 R 11874 0 R 11875 0 R 11876 0 R 11877 0 R 11878 0 R 11879 0 R 11880 0 R 11881 0 R 11882 0 R 11883 0 R 11884 0 R 11885 0 R 11886 0 R 11887 0 R 11888 0 R 11889 0 R 11890 0 R 11891 0 R 11892 0 R 11893 0 R 11894 0 R 11895 0 R ] /Limits [ (HD.4323) (HD.5244) ] >>
+endobj
+12075 0 obj
+<< /Kids [ 11896 0 R 11897 0 R 11898 0 R 11899 0 R 11900 0 R 11901 0 R 11902 0 R 11903 0 R 11904 0 R 11905 0 R 11906 0 R 11907 0 R 11908 0 R 11909 0 R 11910 0 R 11911 0 R 11912 0 R 11913 0 R 11914 0 R 11915 0 R 11916 0 R 11917 0 R 11918 0 R 11919 0 R 11920 0 R 11921 0 R 11922 0 R 11923 0 R 11924 0 R 11925 0 R 11926 0 R 11927 0 R ] /Limits [ (HD.5245) (HD.6166) ] >>
+endobj
+12076 0 obj
+<< /Kids [ 11928 0 R 11929 0 R 11930 0 R 11931 0 R 11932 0 R 11933 0 R 11934 0 R 11935 0 R 11936 0 R 11937 0 R 11938 0 R 11939 0 R 11940 0 R 11941 0 R 11942 0 R 11943 0 R 11944 0 R 11945 0 R 11946 0 R 11947 0 R 11948 0 R 11949 0 R 11950 0 R 11951 0 R 11952 0 R 11953 0 R 11954 0 R 11955 0 R 11956 0 R 11957 0 R 11958 0 R 11959 0 R ] /Limits [ (HD.6167) (HD.7088) ] >>
+endobj
+12077 0 obj
+<< /Kids [ 11960 0 R 11961 0 R 11962 0 R 11963 0 R 11964 0 R 11965 0 R 11966 0 R 11967 0 R 11968 0 R 11969 0 R 11970 0 R 11971 0 R 11972 0 R 11973 0 R 11974 0 R 11975 0 R 11976 0 R 11977 0 R 11978 0 R 11979 0 R 11980 0 R 11981 0 R 11982 0 R 11983 0 R 11984 0 R 11985 0 R 11986 0 R 11987 0 R 11988 0 R 11989 0 R 11990 0 R 11991 0 R ] /Limits [ (HD.7089) (HD.8009) ] >>
+endobj
+12078 0 obj
+<< /Kids [ 11992 0 R 11993 0 R 11994 0 R 11995 0 R 11996 0 R 11997 0 R 11998 0 R 11999 0 R 12000 0 R 12001 0 R 12002 0 R 12003 0 R 12004 0 R 12005 0 R 12006 0 R 12007 0 R 12008 0 R 12009 0 R 12010 0 R 12011 0 R 12012 0 R 12013 0 R 12014 0 R 12015 0 R 12016 0 R 12017 0 R 12018 0 R 12019 0 R 12020 0 R 12021 0 R 12022 0 R 12023 0 R ] /Limits [ (HD.801) (HD.8931) ] >>
+endobj
+12079 0 obj
+<< /Kids [ 12024 0 R 12025 0 R 12026 0 R 12027 0 R 12028 0 R 12029 0 R 12030 0 R 12031 0 R 12032 0 R 12033 0 R 12034 0 R 12035 0 R 12036 0 R 12037 0 R 12038 0 R 12039 0 R 12040 0 R 12041 0 R 12042 0 R 12043 0 R 12044 0 R 12045 0 R 12046 0 R 12047 0 R 12048 0 R 12049 0 R 12050 0 R 12051 0 R 12052 0 R 12053 0 R 12054 0 R 12055 0 R ] /Limits [ (HD.8932) (HD.9853) ] >>
+endobj
+12080 0 obj
+<< /Kids [ 12056 0 R 12057 0 R 12058 0 R 12059 0 R 12060 0 R 12061 0 R 12062 0 R 12063 0 R 12064 0 R 12065 0 R 12066 0 R 12067 0 R 12068 0 R 12069 0 R ] /Limits [ (HD.9854) (toc1.1) ] >>
+endobj
+12081 0 obj
+<< /Kids [ 12070 0 R 12071 0 R 12072 0 R 12073 0 R 12074 0 R 12075 0 R 12076 0 R 12077 0 R 12078 0 R 12079 0 R 12080 0 R ] /Limits [ (Doc-Start) (toc1.1) ] >>
+endobj
+12082 0 obj
+<< /Dests 12081 0 R >>
+endobj
+12083 0 obj
+<< /Type /Catalog /Pages 11734 0 R /Outlines 11735 0 R /Names 12082 0 R /PageMode/UseOutlines /OpenAction 168 0 R >>
+endobj
+12084 0 obj
+<< /Author(\376\377\000F\000.\000\040\000P\000a\000n\000t\000i\000g\000n\000y)/Title(\376\377\000T\000h\000e\000\040\000c\000o\000d\000e\000\040\000o\000f\000\040\000t\000h\000e\000\040\000p\000a\000c\000k\000a\000g\000e\000\040\000'\000n\000i\000c\000e\000m\000a\000t\000r\000i\000x\000')/Subject(\376\377\000A\000\040\000L\000a\000T\000e\000X\000\040\000p\000a\000c\000k\000a\000g\000e)/Creator(LaTeX with hyperref)/Keywords() /Producer (LuaTeX-1.18.1) /CreationDate (D:20240822114251+02'00') /ModDate (D:20240822114251+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.1 (MiKTeX 24.4)) >>
endobj
xref
-0 12053
+0 12085
0000000000 65535 f
-0001305862 00000 n
-0001305916 00000 n
-0001305936 00000 n
+0001309914 00000 n
+0001309968 00000 n
+0001309988 00000 n
0000000020 00000 n
-0000012824 00000 n
-0001895173 00000 n
+0000012831 00000 n
+0001899433 00000 n
0000000067 00000 n
0000000355 00000 n
-0000019117 00000 n
-0001895085 00000 n
+0000019124 00000 n
+0001899345 00000 n
0000000402 00000 n
0000000511 00000 n
-0000027612 00000 n
-0001894995 00000 n
+0000027619 00000 n
+0001899255 00000 n
0000000559 00000 n
0000000693 00000 n
-0000028805 00000 n
-0001894905 00000 n
+0000028812 00000 n
+0001899165 00000 n
0000000741 00000 n
0000000890 00000 n
-0000055792 00000 n
-0001894815 00000 n
+0000055799 00000 n
+0001899075 00000 n
0000000938 00000 n
0000001029 00000 n
-0000101646 00000 n
-0001894725 00000 n
+0000101653 00000 n
+0001898985 00000 n
0000001077 00000 n
0000001247 00000 n
-0000128392 00000 n
-0001894635 00000 n
+0000128399 00000 n
+0001898895 00000 n
0000001295 00000 n
0000001546 00000 n
-0000133986 00000 n
-0001894545 00000 n
+0000133993 00000 n
+0001898805 00000 n
0000001594 00000 n
0000001693 00000 n
-0000193350 00000 n
-0001894455 00000 n
+0000193371 00000 n
+0001898715 00000 n
0000001741 00000 n
0000002028 00000 n
-0000268848 00000 n
-0001894365 00000 n
+0000268869 00000 n
+0001898625 00000 n
0000002077 00000 n
0000002204 00000 n
-0000291658 00000 n
-0001894275 00000 n
+0000291675 00000 n
+0001898535 00000 n
0000002253 00000 n
0000002496 00000 n
-0000321712 00000 n
-0001894185 00000 n
+0000321728 00000 n
+0001898445 00000 n
0000002545 00000 n
0000002799 00000 n
-0000410858 00000 n
-0001894095 00000 n
+0000410874 00000 n
+0001898355 00000 n
0000002848 00000 n
0000003066 00000 n
-0000508736 00000 n
-0001894005 00000 n
+0000509734 00000 n
+0001898265 00000 n
0000003115 00000 n
0000003407 00000 n
-0000514851 00000 n
-0001893915 00000 n
+0000518029 00000 n
+0001898175 00000 n
0000003456 00000 n
0000003769 00000 n
-0000524392 00000 n
-0001893825 00000 n
+0000524976 00000 n
+0001898085 00000 n
0000003818 00000 n
0000004054 00000 n
-0000562493 00000 n
-0001893735 00000 n
+0000561606 00000 n
+0001897995 00000 n
0000004103 00000 n
0000004281 00000 n
-0000633002 00000 n
-0001893645 00000 n
+0000636689 00000 n
+0001897905 00000 n
0000004330 00000 n
0000004713 00000 n
-0000665269 00000 n
-0001893555 00000 n
+0000666603 00000 n
+0001897815 00000 n
0000004762 00000 n
0000005061 00000 n
-0000700508 00000 n
-0001893465 00000 n
+0000700803 00000 n
+0001897725 00000 n
0000005110 00000 n
0000005384 00000 n
-0000709934 00000 n
-0001893375 00000 n
+0000710978 00000 n
+0001897635 00000 n
0000005433 00000 n
0000005593 00000 n
-0000722555 00000 n
-0001893285 00000 n
+0000726728 00000 n
+0001897545 00000 n
0000005642 00000 n
0000005868 00000 n
-0000789037 00000 n
-0001893195 00000 n
+0000792897 00000 n
+0001897455 00000 n
0000005917 00000 n
0000006140 00000 n
-0000876767 00000 n
-0001893104 00000 n
+0000880415 00000 n
+0001897364 00000 n
0000006189 00000 n
0000006326 00000 n
-0000891534 00000 n
-0001893010 00000 n
+0000892264 00000 n
+0001897270 00000 n
0000006376 00000 n
0000006600 00000 n
-0000897782 00000 n
-0001892915 00000 n
+0000898028 00000 n
+0001897175 00000 n
0000006650 00000 n
0000006778 00000 n
-0000921180 00000 n
-0001892820 00000 n
+0000924722 00000 n
+0001897080 00000 n
0000006828 00000 n
0000006928 00000 n
-0001055792 00000 n
-0001892725 00000 n
+0001059741 00000 n
+0001896985 00000 n
0000006978 00000 n
0000007253 00000 n
-0001059536 00000 n
-0001892630 00000 n
+0001063499 00000 n
+0001896890 00000 n
0000007303 00000 n
0000007433 00000 n
-0001066716 00000 n
-0001892535 00000 n
+0001070712 00000 n
+0001896795 00000 n
0000007483 00000 n
0000007756 00000 n
-0001067297 00000 n
-0001892440 00000 n
+0001071295 00000 n
+0001896700 00000 n
0000007806 00000 n
0000007962 00000 n
-0001077264 00000 n
-0001892345 00000 n
+0001081306 00000 n
+0001896605 00000 n
0000008012 00000 n
0000008178 00000 n
-0001078365 00000 n
-0001892250 00000 n
+0001082406 00000 n
+0001896510 00000 n
0000008228 00000 n
0000008437 00000 n
-0001087204 00000 n
-0001892155 00000 n
+0001091247 00000 n
+0001896415 00000 n
0000008487 00000 n
0000008653 00000 n
-0001134326 00000 n
-0001892060 00000 n
+0001138385 00000 n
+0001896320 00000 n
0000008703 00000 n
0000008963 00000 n
-0001152306 00000 n
-0001891965 00000 n
+0001156389 00000 n
+0001896225 00000 n
0000009013 00000 n
0000009191 00000 n
-0001162718 00000 n
-0001891870 00000 n
+0001166803 00000 n
+0001896130 00000 n
0000009241 00000 n
0000009427 00000 n
-0001177896 00000 n
-0001891775 00000 n
+0001181976 00000 n
+0001896035 00000 n
0000009477 00000 n
0000009747 00000 n
-0001187226 00000 n
-0001891680 00000 n
+0001191292 00000 n
+0001895940 00000 n
0000009797 00000 n
0000009993 00000 n
-0001188160 00000 n
-0001891585 00000 n
+0001192226 00000 n
+0001895845 00000 n
0000010043 00000 n
0000010247 00000 n
-0001303010 00000 n
-0001891504 00000 n
+0001307063 00000 n
+0001895764 00000 n
0000010291 00000 n
0000010360 00000 n
-0000012579 00000 n
-0000013827 00000 n
+0000012586 00000 n
+0000013834 00000 n
0000010424 00000 n
-0000012700 00000 n
-0000012762 00000 n
-0001882271 00000 n
-0001883878 00000 n
-0001885859 00000 n
-0001882092 00000 n
-0001884588 00000 n
-0001881555 00000 n
-0001882982 00000 n
-0001884233 00000 n
-0001883338 00000 n
-0001884943 00000 n
-0001881913 00000 n
-0001883700 00000 n
-0001884410 00000 n
-0001881379 00000 n
-0000012884 00000 n
-0001884056 00000 n
-0000012947 00000 n
-0000013009 00000 n
-0000013072 00000 n
-0000013135 00000 n
-0000013198 00000 n
-0000013261 00000 n
-0000013324 00000 n
-0000013387 00000 n
-0000013450 00000 n
-0000013513 00000 n
-0000013576 00000 n
-0000013639 00000 n
-0000013702 00000 n
-0000013765 00000 n
-0001886041 00000 n
-0001882804 00000 n
-0001887113 00000 n
-0000019177 00000 n
-0000016231 00000 n
-0000014159 00000 n
-0000016352 00000 n
-0000016414 00000 n
-0000016477 00000 n
-0000016540 00000 n
-0000016603 00000 n
-0000016666 00000 n
-0000016729 00000 n
-0000016792 00000 n
-0000016855 00000 n
-0000016918 00000 n
-0000016980 00000 n
-0000017043 00000 n
-0000017106 00000 n
-0000017169 00000 n
-0000017232 00000 n
-0000017295 00000 n
-0000017358 00000 n
-0000017421 00000 n
-0000017484 00000 n
-0000017547 00000 n
-0000017609 00000 n
-0000017672 00000 n
-0000017735 00000 n
-0000017798 00000 n
-0000017861 00000 n
-0000017923 00000 n
-0000017986 00000 n
-0000018049 00000 n
-0000018112 00000 n
-0000018175 00000 n
-0000018238 00000 n
-0000018301 00000 n
-0000018364 00000 n
-0000018427 00000 n
-0000018488 00000 n
-0000018551 00000 n
-0000018614 00000 n
-0000018677 00000 n
-0000018740 00000 n
-0000018803 00000 n
-0000018866 00000 n
-0000018929 00000 n
-0000018992 00000 n
-0000019055 00000 n
-0000024628 00000 n
-0000021807 00000 n
-0000019340 00000 n
-0000021928 00000 n
-0000021990 00000 n
-0000022053 00000 n
-0000022116 00000 n
-0000022179 00000 n
-0000022242 00000 n
-0000022305 00000 n
-0001886937 00000 n
-0000022368 00000 n
-0000022431 00000 n
-0000022493 00000 n
-0000022556 00000 n
-0000022618 00000 n
-0000022681 00000 n
-0000022744 00000 n
-0000022807 00000 n
-0000022870 00000 n
-0000022933 00000 n
-0000022996 00000 n
-0000023059 00000 n
-0000023122 00000 n
-0000023185 00000 n
-0000023247 00000 n
-0000023310 00000 n
-0000023372 00000 n
-0000023435 00000 n
-0000023498 00000 n
-0000023561 00000 n
-0000023624 00000 n
-0000023687 00000 n
-0000023750 00000 n
-0000023813 00000 n
-0000023876 00000 n
-0000023937 00000 n
-0000024000 00000 n
-0000024063 00000 n
-0000024126 00000 n
-0000024189 00000 n
-0000024252 00000 n
-0000024315 00000 n
-0000024378 00000 n
-0000024441 00000 n
-0000024504 00000 n
-0000024566 00000 n
-0000029053 00000 n
-0000026674 00000 n
-0000024830 00000 n
-0000026795 00000 n
-0000026857 00000 n
-0000026920 00000 n
-0000026983 00000 n
-0000027046 00000 n
-0000027109 00000 n
-0000027172 00000 n
-0000027235 00000 n
-0000027298 00000 n
-0000027361 00000 n
-0000027423 00000 n
-0000027486 00000 n
-0000027549 00000 n
-0001883516 00000 n
-0001883160 00000 n
-0000027673 00000 n
-0000027736 00000 n
-0000027798 00000 n
-0000027861 00000 n
-0000027924 00000 n
-0000027987 00000 n
-0000028050 00000 n
-0000028113 00000 n
-0000028176 00000 n
-0000028239 00000 n
-0000028302 00000 n
-0000028364 00000 n
-0000028427 00000 n
-0000028490 00000 n
-0000028553 00000 n
-0000028616 00000 n
-0000028679 00000 n
-0000028742 00000 n
-0000028866 00000 n
-0000028929 00000 n
-0000028991 00000 n
-0000034564 00000 n
-0000031863 00000 n
-0000029255 00000 n
-0000031984 00000 n
-0000032046 00000 n
-0000032109 00000 n
-0000032172 00000 n
-0000032235 00000 n
-0000032298 00000 n
-0000032361 00000 n
-0000032424 00000 n
-0000032487 00000 n
-0000032550 00000 n
-0000032612 00000 n
-0000032675 00000 n
-0000032738 00000 n
-0000032801 00000 n
-0000032864 00000 n
-0000032927 00000 n
-0000032990 00000 n
-0000033053 00000 n
-0000033116 00000 n
-0000033179 00000 n
-0000033242 00000 n
-0000033305 00000 n
-0000033368 00000 n
-0000033431 00000 n
-0000033493 00000 n
-0000033556 00000 n
-0000033619 00000 n
-0000033682 00000 n
-0000033745 00000 n
-0000033808 00000 n
-0000033871 00000 n
-0000033934 00000 n
-0000033997 00000 n
-0000034060 00000 n
-0000034123 00000 n
-0000034186 00000 n
-0000034249 00000 n
-0000034312 00000 n
-0000034375 00000 n
-0000034438 00000 n
-0000034501 00000 n
-0000040313 00000 n
-0000037551 00000 n
-0000034753 00000 n
-0000037672 00000 n
-0000037734 00000 n
-0000037797 00000 n
-0000037859 00000 n
-0000037922 00000 n
-0000037985 00000 n
-0000038048 00000 n
-0000038111 00000 n
-0000038174 00000 n
-0000038237 00000 n
-0000038300 00000 n
-0000038363 00000 n
-0000038426 00000 n
-0000038489 00000 n
-0000038552 00000 n
-0000038615 00000 n
-0000038678 00000 n
-0000038741 00000 n
-0000038804 00000 n
-0000038867 00000 n
-0000038929 00000 n
-0000038992 00000 n
-0000039055 00000 n
-0000039118 00000 n
-0000039181 00000 n
-0000039244 00000 n
-0000039307 00000 n
-0000039370 00000 n
-0000039433 00000 n
-0000039496 00000 n
-0000039558 00000 n
-0000039621 00000 n
-0000039684 00000 n
-0000039747 00000 n
-0000039810 00000 n
-0000039873 00000 n
-0000039936 00000 n
-0000039999 00000 n
-0000040062 00000 n
-0000040125 00000 n
-0000040188 00000 n
-0000040251 00000 n
-0000043176 00000 n
-0000046286 00000 n
-0000043010 00000 n
-0000040489 00000 n
-0000043332 00000 n
-0000043394 00000 n
-0000043457 00000 n
-0000043520 00000 n
-0000043583 00000 n
-0000043646 00000 n
-0000043709 00000 n
-0000043772 00000 n
-0000043834 00000 n
-0000043897 00000 n
-0000043960 00000 n
-0000044023 00000 n
-0000044086 00000 n
-0000044149 00000 n
-0000044212 00000 n
-0000044275 00000 n
-0000044338 00000 n
-0000044401 00000 n
-0000044464 00000 n
-0000044526 00000 n
-0000044589 00000 n
-0000044652 00000 n
-0000044715 00000 n
-0000044778 00000 n
-0000044841 00000 n
-0000044904 00000 n
-0000044967 00000 n
-0000045030 00000 n
-0000045092 00000 n
-0000045155 00000 n
-0000045218 00000 n
-0000045280 00000 n
-0000045343 00000 n
-0000045406 00000 n
-0000045469 00000 n
-0000045532 00000 n
-0000045595 00000 n
-0000045658 00000 n
-0000045721 00000 n
-0000045784 00000 n
-0001882627 00000 n
-0000045846 00000 n
-0000045909 00000 n
-0000045972 00000 n
-0000046035 00000 n
-0000046098 00000 n
-0000046161 00000 n
-0001882450 00000 n
-0000046224 00000 n
-0000043147 00000 n
-0000051950 00000 n
-0000049003 00000 n
-0000046527 00000 n
-0000049124 00000 n
-0000049186 00000 n
-0000049249 00000 n
-0000049310 00000 n
-0000049373 00000 n
-0000049436 00000 n
-0000049499 00000 n
-0000049560 00000 n
-0000049623 00000 n
-0000049686 00000 n
-0000049749 00000 n
-0000049812 00000 n
-0000049875 00000 n
-0000049938 00000 n
-0000050001 00000 n
-0000050064 00000 n
-0000050126 00000 n
-0000050189 00000 n
-0000050252 00000 n
-0000050315 00000 n
-0000050378 00000 n
-0000050441 00000 n
-0000050504 00000 n
-0000050567 00000 n
-0000050630 00000 n
-0000050693 00000 n
-0000050756 00000 n
-0000050819 00000 n
-0000050882 00000 n
-0000050945 00000 n
-0000051008 00000 n
-0000051071 00000 n
-0000051134 00000 n
-0000051197 00000 n
-0000051260 00000 n
-0000051323 00000 n
-0000051386 00000 n
-0000051449 00000 n
-0000051512 00000 n
-0000051574 00000 n
-0000051637 00000 n
-0000051700 00000 n
-0000051763 00000 n
-0000051826 00000 n
-0000051888 00000 n
-0000056293 00000 n
-0000054350 00000 n
-0000052139 00000 n
-0000054471 00000 n
-0000054533 00000 n
-0000054596 00000 n
-0000054658 00000 n
-0000054721 00000 n
-0000054784 00000 n
-0000054847 00000 n
-0000054910 00000 n
-0000054973 00000 n
-0000055036 00000 n
-0000055099 00000 n
-0000055162 00000 n
-0000055225 00000 n
-0000055288 00000 n
-0000055351 00000 n
-0000055414 00000 n
-0000055477 00000 n
-0000055540 00000 n
-0000055603 00000 n
-0000055666 00000 n
-0000055729 00000 n
-0000055853 00000 n
-0001881730 00000 n
-0000055916 00000 n
-0000055979 00000 n
-0000056042 00000 n
-0000056105 00000 n
-0000056168 00000 n
-0000056230 00000 n
-0000060748 00000 n
-0000059559 00000 n
-0000056508 00000 n
-0000059680 00000 n
-0000059742 00000 n
-0000059805 00000 n
-0000059867 00000 n
-0000059930 00000 n
-0000059993 00000 n
-0000060056 00000 n
-0000060119 00000 n
-0000060182 00000 n
-0000060245 00000 n
-0000060308 00000 n
-0000060371 00000 n
-0000060434 00000 n
-0000060497 00000 n
-0000060560 00000 n
-0000060622 00000 n
-0000060685 00000 n
-0000064767 00000 n
-0000063579 00000 n
-0000060924 00000 n
-0000063700 00000 n
-0000063762 00000 n
-0000063825 00000 n
-0000063888 00000 n
-0000063951 00000 n
-0000064014 00000 n
-0000064077 00000 n
-0000064140 00000 n
-0000064202 00000 n
-0000064265 00000 n
-0000064328 00000 n
-0000064391 00000 n
-0000064453 00000 n
-0000064516 00000 n
-0000064579 00000 n
-0000064642 00000 n
-0000064705 00000 n
-0001887267 00000 n
-0000069178 00000 n
-0000067549 00000 n
-0000064956 00000 n
-0000067670 00000 n
-0000067732 00000 n
-0000067795 00000 n
-0000067858 00000 n
-0000067921 00000 n
-0000067984 00000 n
-0000068047 00000 n
-0000068110 00000 n
-0000068173 00000 n
-0000068236 00000 n
-0000068299 00000 n
-0000068362 00000 n
-0000068425 00000 n
-0000068488 00000 n
-0000068551 00000 n
-0000068614 00000 n
-0000068677 00000 n
-0000068740 00000 n
-0000068803 00000 n
-0000068866 00000 n
-0000068927 00000 n
-0000068990 00000 n
-0000069053 00000 n
-0000069116 00000 n
-0000073738 00000 n
-0000072299 00000 n
-0000069367 00000 n
-0000072420 00000 n
-0000072482 00000 n
-0000072545 00000 n
-0000072608 00000 n
-0000072671 00000 n
-0000072734 00000 n
-0000072797 00000 n
-0000072859 00000 n
-0000072922 00000 n
-0000072985 00000 n
-0000073048 00000 n
-0000073110 00000 n
-0000073173 00000 n
-0000073236 00000 n
-0000073299 00000 n
-0000073362 00000 n
-0000073425 00000 n
-0000073487 00000 n
-0000073550 00000 n
-0000073613 00000 n
-0000073676 00000 n
-0000078236 00000 n
-0000077047 00000 n
-0000073940 00000 n
-0000077168 00000 n
-0000077230 00000 n
-0001886403 00000 n
-0000077293 00000 n
-0001885490 00000 n
-0000077356 00000 n
-0000077419 00000 n
-0000077482 00000 n
-0000077545 00000 n
-0000077608 00000 n
-0001886757 00000 n
-0000077671 00000 n
-0000077733 00000 n
-0000077796 00000 n
-0000077859 00000 n
-0000077921 00000 n
-0000077984 00000 n
-0000078047 00000 n
-0000078110 00000 n
-0000078173 00000 n
-0000082943 00000 n
-0000081755 00000 n
-0000078464 00000 n
-0000081876 00000 n
-0000081938 00000 n
-0000082001 00000 n
-0000082064 00000 n
-0000082127 00000 n
-0000082190 00000 n
-0000082253 00000 n
-0000082316 00000 n
-0000082379 00000 n
-0000082442 00000 n
-0000082505 00000 n
-0000082568 00000 n
-0000082631 00000 n
-0000082692 00000 n
-0000082755 00000 n
-0000082817 00000 n
-0000082880 00000 n
-0000088116 00000 n
-0000086485 00000 n
-0000083132 00000 n
-0000086606 00000 n
-0000086668 00000 n
-0000086731 00000 n
-0000086794 00000 n
-0000086857 00000 n
-0000086920 00000 n
-0000086983 00000 n
-0000087046 00000 n
-0000087109 00000 n
-0000087172 00000 n
-0000087235 00000 n
-0000087298 00000 n
-0000087361 00000 n
-0000087424 00000 n
-0000087487 00000 n
-0000087550 00000 n
-0000087613 00000 n
-0000087676 00000 n
-0000087739 00000 n
-0000087802 00000 n
-0000087865 00000 n
-0000087928 00000 n
-0000087991 00000 n
-0000088054 00000 n
-0000092765 00000 n
-0000091200 00000 n
-0000088318 00000 n
-0000091321 00000 n
-0000091383 00000 n
-0000091445 00000 n
-0000091508 00000 n
-0000091571 00000 n
-0000091634 00000 n
-0000091697 00000 n
-0000091760 00000 n
-0000091823 00000 n
-0000091886 00000 n
-0000091949 00000 n
-0000092012 00000 n
-0000092075 00000 n
-0000092138 00000 n
-0000092201 00000 n
-0000092264 00000 n
-0000092327 00000 n
-0000092389 00000 n
-0000092452 00000 n
-0000092515 00000 n
-0000092578 00000 n
-0001881203 00000 n
-0000092641 00000 n
-0000092703 00000 n
-0000096090 00000 n
-0000096997 00000 n
-0000095924 00000 n
-0000092967 00000 n
-0000096245 00000 n
-0000096307 00000 n
-0000096369 00000 n
-0000096432 00000 n
-0000096495 00000 n
-0000096558 00000 n
-0000096621 00000 n
-0000096684 00000 n
-0000096746 00000 n
-0000096809 00000 n
-0000096872 00000 n
-0000096935 00000 n
-0001884766 00000 n
-0001886222 00000 n
-0001886580 00000 n
-0000096061 00000 n
-0000101707 00000 n
-0000099577 00000 n
-0000097290 00000 n
-0000099698 00000 n
-0000099760 00000 n
-0000099823 00000 n
-0000099886 00000 n
-0000099949 00000 n
-0000100012 00000 n
-0000100075 00000 n
-0000100138 00000 n
-0000100201 00000 n
-0000100264 00000 n
-0000100327 00000 n
-0000100390 00000 n
-0000100453 00000 n
-0000100515 00000 n
-0000100578 00000 n
-0000100641 00000 n
-0000100704 00000 n
-0000100767 00000 n
-0000100830 00000 n
-0000100893 00000 n
-0000100956 00000 n
-0000101019 00000 n
-0000101080 00000 n
-0000101143 00000 n
-0000101206 00000 n
-0000101269 00000 n
-0000101332 00000 n
-0000101395 00000 n
-0000101458 00000 n
-0000101521 00000 n
-0000101584 00000 n
-0000105517 00000 n
-0000106678 00000 n
-0000105351 00000 n
-0000101922 00000 n
-0000105673 00000 n
-0001885120 00000 n
-0000105735 00000 n
-0000105798 00000 n
-0000105860 00000 n
-0000105923 00000 n
-0000105986 00000 n
-0000106049 00000 n
-0000106112 00000 n
-0000106175 00000 n
-0000106238 00000 n
-0000106301 00000 n
-0000106364 00000 n
-0000106426 00000 n
-0000106489 00000 n
-0000106552 00000 n
-0000106615 00000 n
-0000105488 00000 n
-0000112386 00000 n
-0000109754 00000 n
-0000106971 00000 n
-0000109875 00000 n
-0000109937 00000 n
-0000110000 00000 n
-0000110063 00000 n
-0000110125 00000 n
-0000110188 00000 n
-0000110251 00000 n
-0000110314 00000 n
-0000110377 00000 n
-0000110440 00000 n
-0000110502 00000 n
-0000110565 00000 n
-0000110628 00000 n
-0000110691 00000 n
-0000110754 00000 n
-0000110817 00000 n
-0000110880 00000 n
-0000110943 00000 n
-0000111006 00000 n
-0000111067 00000 n
-0000111130 00000 n
-0000111193 00000 n
-0000111256 00000 n
-0000111319 00000 n
-0000111382 00000 n
-0000111445 00000 n
-0000111508 00000 n
-0000111571 00000 n
-0000111634 00000 n
-0000111697 00000 n
-0000111760 00000 n
-0000111822 00000 n
-0000111885 00000 n
-0000111948 00000 n
-0000112011 00000 n
-0000112074 00000 n
-0000112137 00000 n
-0000112200 00000 n
-0000112263 00000 n
-0000112325 00000 n
-0001887421 00000 n
-0000118031 00000 n
-0000115081 00000 n
-0000112562 00000 n
-0000115202 00000 n
-0000115264 00000 n
-0000115327 00000 n
-0000115390 00000 n
-0000115453 00000 n
-0000115516 00000 n
-0000115579 00000 n
-0000115642 00000 n
-0000115705 00000 n
-0000115768 00000 n
-0000115830 00000 n
-0000115893 00000 n
-0000115956 00000 n
-0000116019 00000 n
-0000116082 00000 n
-0000116145 00000 n
-0000116208 00000 n
-0000116271 00000 n
-0000116334 00000 n
-0000116397 00000 n
-0000116459 00000 n
-0000116522 00000 n
-0000116585 00000 n
-0000116648 00000 n
-0000116711 00000 n
-0000116774 00000 n
-0000116837 00000 n
-0000116900 00000 n
-0000116963 00000 n
-0000117026 00000 n
-0000117089 00000 n
-0000117152 00000 n
-0000117215 00000 n
-0000117278 00000 n
-0000117341 00000 n
-0000117404 00000 n
-0000117467 00000 n
-0000117530 00000 n
-0000117593 00000 n
-0000117655 00000 n
-0000117718 00000 n
-0000117781 00000 n
-0000117844 00000 n
-0000117907 00000 n
-0000117969 00000 n
-0000123692 00000 n
-0000120993 00000 n
-0000118207 00000 n
-0000121114 00000 n
-0000121176 00000 n
-0000121239 00000 n
-0000121302 00000 n
-0000121365 00000 n
-0000121428 00000 n
-0000121491 00000 n
-0000121554 00000 n
-0000121617 00000 n
-0000121680 00000 n
-0000121742 00000 n
-0000121805 00000 n
-0000121868 00000 n
-0000121931 00000 n
-0000121994 00000 n
-0000122057 00000 n
-0000122120 00000 n
-0000122183 00000 n
-0000122246 00000 n
-0000122309 00000 n
-0000122372 00000 n
-0000122435 00000 n
-0000122498 00000 n
-0000122561 00000 n
-0000122624 00000 n
-0000122687 00000 n
-0000122750 00000 n
-0000122812 00000 n
-0000122875 00000 n
-0000122938 00000 n
-0000123001 00000 n
-0000123064 00000 n
-0000123127 00000 n
-0000123190 00000 n
-0000123253 00000 n
-0000123316 00000 n
-0000123379 00000 n
-0000123442 00000 n
-0000123505 00000 n
-0000123568 00000 n
-0000123630 00000 n
-0000129151 00000 n
-0000126322 00000 n
-0000123881 00000 n
-0000126443 00000 n
-0000126505 00000 n
-0000126568 00000 n
-0000126631 00000 n
-0000126694 00000 n
-0000126757 00000 n
-0000126819 00000 n
-0000126882 00000 n
-0000126945 00000 n
-0000127008 00000 n
-0000127071 00000 n
-0000127134 00000 n
-0000127197 00000 n
-0000127260 00000 n
-0000127323 00000 n
-0000127386 00000 n
-0000127449 00000 n
-0000127512 00000 n
-0000127575 00000 n
-0000127637 00000 n
-0000127700 00000 n
-0000127763 00000 n
-0000127826 00000 n
-0000127889 00000 n
-0000127952 00000 n
-0000128015 00000 n
-0000128078 00000 n
-0000128141 00000 n
-0000128203 00000 n
-0000128266 00000 n
-0000128329 00000 n
-0000128452 00000 n
-0000128515 00000 n
-0000128578 00000 n
-0000128642 00000 n
-0000128706 00000 n
-0000128769 00000 n
-0000128833 00000 n
-0000128897 00000 n
-0000128961 00000 n
-0000129025 00000 n
-0000129088 00000 n
-0000134371 00000 n
-0000131463 00000 n
-0000129340 00000 n
-0000131587 00000 n
-0000131651 00000 n
-0000131716 00000 n
-0000131781 00000 n
-0000131846 00000 n
-0000131911 00000 n
-0000131976 00000 n
-0000132041 00000 n
-0000132106 00000 n
-0000132171 00000 n
-0000132235 00000 n
-0000132300 00000 n
-0000132365 00000 n
-0000132430 00000 n
-0000132495 00000 n
-0000132558 00000 n
-0000132623 00000 n
-0000132688 00000 n
-0000132753 00000 n
-0000132818 00000 n
-0000132883 00000 n
-0000132948 00000 n
-0000133013 00000 n
-0000133078 00000 n
-0000133142 00000 n
-0000133207 00000 n
-0000133272 00000 n
-0000133337 00000 n
-0000133402 00000 n
-0000133467 00000 n
-0000133532 00000 n
-0000133597 00000 n
-0000133662 00000 n
-0000133726 00000 n
-0000133791 00000 n
-0000133856 00000 n
-0000133921 00000 n
-0000134048 00000 n
-0000134112 00000 n
-0000134177 00000 n
-0000134242 00000 n
-0000134307 00000 n
-0000139157 00000 n
-0000137412 00000 n
-0000134561 00000 n
-0000137536 00000 n
-0000137600 00000 n
-0000137665 00000 n
-0000137730 00000 n
-0000137795 00000 n
-0000137860 00000 n
-0000137925 00000 n
-0000137990 00000 n
-0000138055 00000 n
-0000138120 00000 n
-0000138185 00000 n
-0000138250 00000 n
-0000138315 00000 n
-0000138380 00000 n
-0000138445 00000 n
-0000138510 00000 n
-0000138575 00000 n
-0000138640 00000 n
-0000138705 00000 n
-0000138770 00000 n
-0000138835 00000 n
-0000138900 00000 n
-0000138964 00000 n
-0000139029 00000 n
-0000139093 00000 n
-0000143283 00000 n
-0000141992 00000 n
-0000139334 00000 n
-0000142116 00000 n
-0000142180 00000 n
-0000142245 00000 n
-0000142310 00000 n
-0000142375 00000 n
-0000142440 00000 n
-0000142505 00000 n
-0000142569 00000 n
-0000142634 00000 n
-0000142699 00000 n
-0000142764 00000 n
-0000142829 00000 n
-0000142894 00000 n
-0000142959 00000 n
-0000143023 00000 n
-0000143088 00000 n
-0000143153 00000 n
-0000143218 00000 n
-0000148766 00000 n
-0000146244 00000 n
-0000143460 00000 n
-0000146368 00000 n
-0000146432 00000 n
-0000146497 00000 n
-0000146562 00000 n
-0000146627 00000 n
-0000146692 00000 n
-0000146757 00000 n
-0000146822 00000 n
-0000146887 00000 n
-0000146952 00000 n
-0000147017 00000 n
-0000147082 00000 n
-0000147147 00000 n
-0000147211 00000 n
-0000147276 00000 n
-0000147341 00000 n
-0000147406 00000 n
-0000147471 00000 n
-0000147536 00000 n
-0000147601 00000 n
-0000147666 00000 n
-0000147731 00000 n
-0000147796 00000 n
-0000147860 00000 n
-0000147925 00000 n
-0000147990 00000 n
-0000148055 00000 n
-0000148120 00000 n
-0000148185 00000 n
-0000148250 00000 n
-0000148315 00000 n
-0000148380 00000 n
-0000148443 00000 n
-0000148508 00000 n
-0000148573 00000 n
-0000148638 00000 n
-0000148702 00000 n
-0000154749 00000 n
-0000151319 00000 n
-0000148943 00000 n
-0000151443 00000 n
-0000151507 00000 n
-0000151572 00000 n
-0000151637 00000 n
-0000151702 00000 n
-0000151767 00000 n
-0000151832 00000 n
-0000151897 00000 n
-0000151962 00000 n
-0000152027 00000 n
-0000152091 00000 n
-0000152156 00000 n
-0000152221 00000 n
-0000152286 00000 n
-0000152351 00000 n
-0000152415 00000 n
-0000152480 00000 n
-0000152545 00000 n
-0000152610 00000 n
-0000152675 00000 n
-0000152740 00000 n
-0000152805 00000 n
-0000152869 00000 n
-0000152934 00000 n
-0000152999 00000 n
-0000153064 00000 n
-0000153129 00000 n
-0000153194 00000 n
-0000153259 00000 n
-0000153324 00000 n
-0000153388 00000 n
-0000153453 00000 n
-0000153518 00000 n
-0000153583 00000 n
-0000153648 00000 n
-0000153713 00000 n
-0000153778 00000 n
-0000153843 00000 n
-0000153908 00000 n
-0000153972 00000 n
-0000154037 00000 n
-0000154102 00000 n
-0000154167 00000 n
-0000154232 00000 n
-0000154297 00000 n
-0000154362 00000 n
-0000154427 00000 n
-0000154492 00000 n
-0000154556 00000 n
-0000154621 00000 n
-0000154685 00000 n
-0000160904 00000 n
-0000156954 00000 n
-0000154913 00000 n
-0000157078 00000 n
-0000157142 00000 n
-0000157207 00000 n
-0000157272 00000 n
-0000157337 00000 n
-0000157402 00000 n
-0000157467 00000 n
-0000157532 00000 n
-0000157597 00000 n
-0000157662 00000 n
-0000157726 00000 n
-0000157791 00000 n
-0000157856 00000 n
-0000157921 00000 n
-0000157986 00000 n
-0000158051 00000 n
-0000158116 00000 n
-0000158181 00000 n
-0000158246 00000 n
-0000158310 00000 n
-0000158375 00000 n
-0000158440 00000 n
-0000158505 00000 n
-0000158570 00000 n
-0000158635 00000 n
-0000158700 00000 n
-0000158765 00000 n
-0000158830 00000 n
-0000158893 00000 n
-0000158958 00000 n
-0000159023 00000 n
-0000159088 00000 n
-0000159153 00000 n
-0000159218 00000 n
-0000159283 00000 n
-0000159348 00000 n
-0000159413 00000 n
-0000159478 00000 n
-0000159543 00000 n
-0000159608 00000 n
-0000159673 00000 n
-0000159738 00000 n
-0000159802 00000 n
-0000159867 00000 n
-0000159932 00000 n
-0000159997 00000 n
-0000160062 00000 n
-0000160127 00000 n
-0000160192 00000 n
-0000160257 00000 n
-0000160322 00000 n
-0000160386 00000 n
-0000160451 00000 n
-0000160516 00000 n
-0000160581 00000 n
-0000160646 00000 n
-0000160711 00000 n
-0000160776 00000 n
-0000160840 00000 n
-0000166892 00000 n
-0000163265 00000 n
-0000161068 00000 n
-0000163390 00000 n
-0000163454 00000 n
-0000163519 00000 n
-0000163584 00000 n
-0000163649 00000 n
-0000163714 00000 n
-0000163779 00000 n
-0000163844 00000 n
-0000163909 00000 n
-0000163974 00000 n
-0000164038 00000 n
-0000164103 00000 n
-0000164168 00000 n
-0000164233 00000 n
-0000164298 00000 n
-0000164363 00000 n
-0000164428 00000 n
-0000164493 00000 n
-0000164558 00000 n
-0000164622 00000 n
-0000164687 00000 n
-0000164752 00000 n
-0000164817 00000 n
-0000164882 00000 n
-0000164947 00000 n
-0000165012 00000 n
-0000165077 00000 n
-0000165142 00000 n
-0000165207 00000 n
-0000165272 00000 n
-0000165337 00000 n
-0000165401 00000 n
-0000165466 00000 n
-0000165531 00000 n
-0000165596 00000 n
-0000165661 00000 n
-0000165726 00000 n
-0000165791 00000 n
-0000165856 00000 n
-0000165921 00000 n
-0000165986 00000 n
-0000166051 00000 n
-0000166116 00000 n
-0000166180 00000 n
-0000166245 00000 n
-0000166310 00000 n
-0000166375 00000 n
-0000166440 00000 n
-0000166505 00000 n
-0000166570 00000 n
-0000166634 00000 n
-0000166699 00000 n
-0000166764 00000 n
-0000166828 00000 n
-0001887581 00000 n
-0000172825 00000 n
-0000168809 00000 n
-0000167069 00000 n
-0000168934 00000 n
-0000168998 00000 n
-0000169063 00000 n
-0000169128 00000 n
-0000169193 00000 n
-0000169258 00000 n
-0000169323 00000 n
-0000169388 00000 n
-0000169453 00000 n
-0000169518 00000 n
-0000169583 00000 n
-0000169647 00000 n
-0000169712 00000 n
-0000169777 00000 n
-0000169842 00000 n
-0000169907 00000 n
-0000169972 00000 n
-0000170037 00000 n
-0000170102 00000 n
-0000170167 00000 n
-0000170231 00000 n
-0000170296 00000 n
-0000170361 00000 n
-0000170426 00000 n
-0000170491 00000 n
-0000170556 00000 n
-0000170621 00000 n
-0000170686 00000 n
-0000170751 00000 n
-0000170815 00000 n
-0000170880 00000 n
-0000170945 00000 n
-0000171010 00000 n
-0000171075 00000 n
-0000171140 00000 n
-0000171205 00000 n
-0000171270 00000 n
-0000171335 00000 n
-0000171399 00000 n
-0000171464 00000 n
-0000171529 00000 n
-0000171594 00000 n
-0000171659 00000 n
-0000171724 00000 n
-0000171789 00000 n
-0000171854 00000 n
-0000171919 00000 n
-0000171982 00000 n
-0000172047 00000 n
-0000172112 00000 n
-0000172177 00000 n
-0000172242 00000 n
-0000172307 00000 n
-0000172372 00000 n
-0000172437 00000 n
-0000172502 00000 n
-0000172567 00000 n
-0000172632 00000 n
-0000172697 00000 n
-0000172761 00000 n
-0000178530 00000 n
-0000174774 00000 n
-0000172976 00000 n
-0000174899 00000 n
-0000174963 00000 n
-0000175028 00000 n
-0000175093 00000 n
-0000175158 00000 n
-0000175223 00000 n
-0000175288 00000 n
-0000175353 00000 n
-0000175418 00000 n
-0000175483 00000 n
-0000175547 00000 n
-0000175612 00000 n
-0000175677 00000 n
-0000175742 00000 n
-0000175807 00000 n
-0000175872 00000 n
-0000175937 00000 n
-0000176002 00000 n
-0000176067 00000 n
-0000176131 00000 n
-0000176196 00000 n
-0000176261 00000 n
-0000176326 00000 n
-0000176391 00000 n
-0000176456 00000 n
-0000176521 00000 n
-0000176586 00000 n
-0000176651 00000 n
-0000176714 00000 n
-0000176779 00000 n
-0000176844 00000 n
-0000176909 00000 n
-0000176974 00000 n
-0000177039 00000 n
-0000177104 00000 n
-0000177169 00000 n
-0000177234 00000 n
-0000177298 00000 n
-0000177363 00000 n
-0000177428 00000 n
-0000177492 00000 n
-0000177557 00000 n
-0000177622 00000 n
-0000177687 00000 n
-0000177752 00000 n
-0000177817 00000 n
-0000177882 00000 n
-0000177947 00000 n
-0000178012 00000 n
-0000178076 00000 n
-0000178141 00000 n
-0000178206 00000 n
-0000178271 00000 n
-0000178336 00000 n
-0000178401 00000 n
-0000178466 00000 n
-0000183991 00000 n
-0000181075 00000 n
-0000178707 00000 n
-0000181200 00000 n
-0000181264 00000 n
-0000181329 00000 n
-0000181394 00000 n
-0000181459 00000 n
-0000181524 00000 n
-0000181588 00000 n
-0000181653 00000 n
-0000181718 00000 n
-0000181783 00000 n
-0000181848 00000 n
-0000181913 00000 n
-0000181978 00000 n
-0000182042 00000 n
-0000182107 00000 n
-0000182172 00000 n
-0000182237 00000 n
-0000182302 00000 n
-0000182367 00000 n
-0000182432 00000 n
-0000182497 00000 n
-0000182562 00000 n
-0000182627 00000 n
-0000182692 00000 n
-0000182757 00000 n
-0000182822 00000 n
-0000182887 00000 n
-0000182952 00000 n
-0000183017 00000 n
-0000183082 00000 n
-0000183147 00000 n
-0000183212 00000 n
-0000183277 00000 n
-0000183342 00000 n
-0000183407 00000 n
-0000183472 00000 n
-0000183537 00000 n
-0000183602 00000 n
-0000183667 00000 n
-0000183732 00000 n
-0000183796 00000 n
-0000183861 00000 n
-0000183926 00000 n
-0000189716 00000 n
-0000186218 00000 n
-0000184168 00000 n
-0000186343 00000 n
-0000186407 00000 n
-0000186471 00000 n
-0000186536 00000 n
-0000186601 00000 n
-0000186666 00000 n
-0000186730 00000 n
-0000186795 00000 n
-0000186860 00000 n
-0000186925 00000 n
-0000186990 00000 n
-0000187055 00000 n
-0000187120 00000 n
-0000187185 00000 n
-0000187250 00000 n
-0000187315 00000 n
-0000187380 00000 n
-0000187445 00000 n
-0000187510 00000 n
-0000187575 00000 n
-0000187640 00000 n
-0000187705 00000 n
-0000187770 00000 n
-0000187835 00000 n
-0000187900 00000 n
-0000187965 00000 n
-0000188030 00000 n
-0000188095 00000 n
-0000188160 00000 n
-0000188225 00000 n
-0000188290 00000 n
-0000188354 00000 n
-0000188419 00000 n
-0000188484 00000 n
-0000188549 00000 n
-0000188614 00000 n
-0000188679 00000 n
-0000188744 00000 n
-0000188809 00000 n
-0000188874 00000 n
-0000188939 00000 n
-0000189004 00000 n
-0000189069 00000 n
-0000189134 00000 n
-0000189199 00000 n
-0000189264 00000 n
-0000189328 00000 n
-0000189393 00000 n
-0000189458 00000 n
-0000189523 00000 n
-0000189588 00000 n
-0000189652 00000 n
-0000194257 00000 n
-0000192446 00000 n
-0000189880 00000 n
-0000192571 00000 n
-0000192635 00000 n
-0000192700 00000 n
-0000192765 00000 n
-0000192830 00000 n
-0000192895 00000 n
-0000192960 00000 n
-0000193025 00000 n
-0000193090 00000 n
-0000193155 00000 n
-0000193220 00000 n
-0000193285 00000 n
-0000193412 00000 n
-0000193477 00000 n
-0000193542 00000 n
-0000193607 00000 n
-0000193672 00000 n
-0000193737 00000 n
-0000193802 00000 n
-0000193867 00000 n
-0000193932 00000 n
-0000193997 00000 n
-0000194062 00000 n
-0000194127 00000 n
-0000194192 00000 n
-0000199735 00000 n
-0000196625 00000 n
-0000194473 00000 n
-0000196750 00000 n
-0000196814 00000 n
-0000196879 00000 n
-0000196944 00000 n
-0000197009 00000 n
-0000197074 00000 n
-0000197139 00000 n
-0000197204 00000 n
-0000197269 00000 n
-0000197334 00000 n
-0000197399 00000 n
-0000197464 00000 n
-0000197529 00000 n
-0000197594 00000 n
-0000197659 00000 n
-0000197723 00000 n
-0000197788 00000 n
-0000197853 00000 n
-0000197918 00000 n
-0000197983 00000 n
-0000198048 00000 n
-0000198113 00000 n
-0000198178 00000 n
-0000198243 00000 n
-0000198308 00000 n
-0000198373 00000 n
-0000198438 00000 n
-0000198503 00000 n
-0000198568 00000 n
-0000198633 00000 n
-0000198698 00000 n
-0000198763 00000 n
-0000198826 00000 n
-0000198891 00000 n
-0000198956 00000 n
-0000199021 00000 n
-0000199086 00000 n
-0000199151 00000 n
-0000199216 00000 n
-0000199281 00000 n
-0000199346 00000 n
-0000199410 00000 n
-0000199475 00000 n
-0000199540 00000 n
-0000199605 00000 n
-0000199670 00000 n
-0000205767 00000 n
-0000201751 00000 n
-0000199925 00000 n
-0000201876 00000 n
-0000201940 00000 n
-0000202005 00000 n
-0000202070 00000 n
-0000202135 00000 n
-0000202200 00000 n
-0000202265 00000 n
-0000202330 00000 n
-0000202394 00000 n
-0000202459 00000 n
-0000202524 00000 n
-0000202589 00000 n
-0000202654 00000 n
-0000202719 00000 n
-0000202784 00000 n
-0000202849 00000 n
-0000202914 00000 n
-0000202978 00000 n
-0000203043 00000 n
-0000203108 00000 n
-0000203173 00000 n
-0000203238 00000 n
-0000203303 00000 n
-0000203368 00000 n
-0000203433 00000 n
-0000203498 00000 n
-0000203563 00000 n
-0000203627 00000 n
-0000203692 00000 n
-0000203757 00000 n
-0000203822 00000 n
-0000203887 00000 n
-0000203952 00000 n
-0000204017 00000 n
-0000204082 00000 n
-0000204147 00000 n
-0000204211 00000 n
-0000204276 00000 n
-0000204341 00000 n
-0000204406 00000 n
-0000204471 00000 n
-0000204536 00000 n
-0000204601 00000 n
-0000204666 00000 n
-0000204731 00000 n
-0000204796 00000 n
-0000204861 00000 n
-0000204925 00000 n
-0000204990 00000 n
-0000205055 00000 n
-0000205120 00000 n
-0000205185 00000 n
-0000205250 00000 n
-0000205315 00000 n
-0000205380 00000 n
-0000205445 00000 n
-0000205509 00000 n
-0000205574 00000 n
-0000205639 00000 n
-0000205703 00000 n
-0000211070 00000 n
-0000208936 00000 n
-0000205931 00000 n
-0000209061 00000 n
-0000209125 00000 n
-0000209190 00000 n
-0000209255 00000 n
-0000209320 00000 n
-0000209385 00000 n
-0000209450 00000 n
-0000209515 00000 n
-0000209580 00000 n
-0000209645 00000 n
-0000209709 00000 n
-0000209774 00000 n
-0000209839 00000 n
-0000209904 00000 n
-0000209969 00000 n
-0000210034 00000 n
-0000210098 00000 n
-0000210163 00000 n
-0000210228 00000 n
-0000210293 00000 n
-0000210358 00000 n
-0000210423 00000 n
-0000210488 00000 n
-0000210553 00000 n
-0000210618 00000 n
-0000210682 00000 n
-0000210747 00000 n
-0000210812 00000 n
-0000210877 00000 n
-0000210942 00000 n
-0000211006 00000 n
-0000216683 00000 n
-0000213314 00000 n
-0000211286 00000 n
-0000213439 00000 n
-0000213503 00000 n
-0000213568 00000 n
-0000213633 00000 n
-0000213698 00000 n
-0000213763 00000 n
-0000213828 00000 n
-0000213893 00000 n
-0000213958 00000 n
-0000214023 00000 n
-0000214088 00000 n
-0000214153 00000 n
-0000214218 00000 n
-0000214283 00000 n
-0000214348 00000 n
-0000214413 00000 n
-0000214477 00000 n
-0000214542 00000 n
-0000214607 00000 n
-0000214672 00000 n
-0000214737 00000 n
-0000214802 00000 n
-0000214867 00000 n
-0000214932 00000 n
-0000214997 00000 n
-0000215061 00000 n
-0000215126 00000 n
-0000215191 00000 n
-0000215256 00000 n
-0000215321 00000 n
-0000215386 00000 n
-0000215451 00000 n
-0000215516 00000 n
-0000215581 00000 n
-0000215646 00000 n
-0000215711 00000 n
-0000215776 00000 n
-0000215840 00000 n
-0000215905 00000 n
-0000215970 00000 n
-0000216035 00000 n
-0000216100 00000 n
-0000216165 00000 n
-0000216230 00000 n
-0000216295 00000 n
-0000216360 00000 n
-0000216425 00000 n
-0000216490 00000 n
-0000216555 00000 n
-0000216619 00000 n
-0000223820 00000 n
-0000221166 00000 n
-0000216860 00000 n
-0000221291 00000 n
-0000221355 00000 n
-0000221420 00000 n
-0000221485 00000 n
-0000221550 00000 n
-0000221615 00000 n
-0000221680 00000 n
-0000221745 00000 n
-0000221810 00000 n
-0000221875 00000 n
-0000221940 00000 n
-0000222005 00000 n
-0000222069 00000 n
-0000222134 00000 n
-0000222199 00000 n
-0000222264 00000 n
-0000222329 00000 n
-0000222394 00000 n
-0000222459 00000 n
-0000222524 00000 n
-0000222589 00000 n
-0000222654 00000 n
-0000222719 00000 n
-0000222784 00000 n
-0000222848 00000 n
-0000222913 00000 n
-0000222978 00000 n
-0000223043 00000 n
-0000223108 00000 n
-0000223173 00000 n
-0000223238 00000 n
-0000223303 00000 n
-0000223368 00000 n
-0000223432 00000 n
-0000223497 00000 n
-0000223562 00000 n
-0000223627 00000 n
-0000223692 00000 n
-0000223755 00000 n
-0001885303 00000 n
-0001887746 00000 n
-0000229485 00000 n
-0000226637 00000 n
-0000224024 00000 n
-0000226762 00000 n
-0000226826 00000 n
-0000226891 00000 n
-0000226956 00000 n
-0000227021 00000 n
-0000227086 00000 n
-0000227151 00000 n
-0000227216 00000 n
-0000227280 00000 n
-0000227345 00000 n
-0000227410 00000 n
-0000227475 00000 n
-0000227540 00000 n
-0000227604 00000 n
-0000227669 00000 n
-0000227734 00000 n
-0000227799 00000 n
-0000227864 00000 n
-0000227929 00000 n
-0000227994 00000 n
-0000228059 00000 n
-0000228124 00000 n
-0000228189 00000 n
-0000228254 00000 n
-0000228319 00000 n
-0000228384 00000 n
-0000228448 00000 n
-0000228513 00000 n
-0000228577 00000 n
-0000228642 00000 n
-0000228707 00000 n
-0000228772 00000 n
-0000228837 00000 n
-0000228902 00000 n
-0000228967 00000 n
-0000229032 00000 n
-0000229097 00000 n
-0000229162 00000 n
-0000229227 00000 n
-0000229292 00000 n
-0000229357 00000 n
-0000229421 00000 n
-0000235217 00000 n
-0000231721 00000 n
-0000229662 00000 n
-0000231846 00000 n
-0000231910 00000 n
-0000231975 00000 n
-0000232040 00000 n
-0000232105 00000 n
-0000232170 00000 n
-0000232235 00000 n
-0000232300 00000 n
-0000232365 00000 n
-0000232430 00000 n
-0000232494 00000 n
-0000232559 00000 n
-0000232624 00000 n
-0000232689 00000 n
-0000232754 00000 n
-0000232819 00000 n
-0000232884 00000 n
-0000232949 00000 n
-0000233014 00000 n
-0000233078 00000 n
-0000233143 00000 n
-0000233208 00000 n
-0000233272 00000 n
-0000233337 00000 n
-0000233402 00000 n
-0000233467 00000 n
-0000233532 00000 n
-0000233597 00000 n
-0000233662 00000 n
-0000233727 00000 n
-0000233792 00000 n
-0000233856 00000 n
-0000233921 00000 n
-0000233986 00000 n
-0000234051 00000 n
-0000234116 00000 n
-0000234181 00000 n
-0000234246 00000 n
-0000234311 00000 n
-0000234376 00000 n
-0000234439 00000 n
-0000234504 00000 n
-0000234569 00000 n
-0000234634 00000 n
-0000234699 00000 n
-0000234764 00000 n
-0000234829 00000 n
-0000234894 00000 n
-0000234959 00000 n
-0000235022 00000 n
-0000235087 00000 n
-0000235152 00000 n
-0000238420 00000 n
-0000238577 00000 n
-0000241720 00000 n
-0000238238 00000 n
-0000235433 00000 n
-0000238734 00000 n
-0000238798 00000 n
-0000238863 00000 n
-0000238928 00000 n
-0000238993 00000 n
-0000239058 00000 n
-0000239123 00000 n
-0000239188 00000 n
-0000239253 00000 n
-0000239318 00000 n
-0000239383 00000 n
-0000239448 00000 n
-0000239513 00000 n
-0000239578 00000 n
-0000239643 00000 n
-0000239708 00000 n
-0000239773 00000 n
-0000239838 00000 n
-0000239903 00000 n
-0000239968 00000 n
-0000240033 00000 n
-0000240098 00000 n
-0000240163 00000 n
-0000240228 00000 n
-0000240293 00000 n
-0000240358 00000 n
-0000240423 00000 n
-0000240487 00000 n
-0000240552 00000 n
-0000240617 00000 n
-0000240682 00000 n
-0000240747 00000 n
-0000240812 00000 n
-0000240877 00000 n
-0000240942 00000 n
-0000241007 00000 n
-0000241072 00000 n
-0000241137 00000 n
-0000241202 00000 n
-0000241267 00000 n
-0000241332 00000 n
-0000241397 00000 n
-0000241461 00000 n
-0000241526 00000 n
-0000241591 00000 n
-0000241656 00000 n
-0000238380 00000 n
-0000247234 00000 n
-0000244516 00000 n
-0000241962 00000 n
-0000244641 00000 n
-0000244705 00000 n
-0000244770 00000 n
-0000244834 00000 n
-0000244899 00000 n
-0000244964 00000 n
-0000245029 00000 n
-0000245094 00000 n
-0000245159 00000 n
-0000245224 00000 n
-0000245289 00000 n
-0000245354 00000 n
-0000245419 00000 n
-0000245483 00000 n
-0000245548 00000 n
-0000245613 00000 n
-0000245678 00000 n
-0000245743 00000 n
-0000245808 00000 n
-0000245873 00000 n
-0000245937 00000 n
-0000246001 00000 n
-0000246066 00000 n
-0000246131 00000 n
-0000246196 00000 n
-0000246261 00000 n
-0000246326 00000 n
-0000246391 00000 n
-0000246456 00000 n
-0000246521 00000 n
-0000246586 00000 n
-0000246651 00000 n
-0000246716 00000 n
-0000246781 00000 n
-0000246846 00000 n
-0000246911 00000 n
-0000246976 00000 n
-0000247041 00000 n
-0000247106 00000 n
-0000247171 00000 n
-0000253488 00000 n
-0000249991 00000 n
-0000247424 00000 n
-0000250116 00000 n
-0000250180 00000 n
-0000250245 00000 n
-0000250309 00000 n
-0000250374 00000 n
-0000250439 00000 n
-0000250504 00000 n
-0000250569 00000 n
-0000250634 00000 n
-0000250699 00000 n
-0000250763 00000 n
-0000250828 00000 n
-0000250893 00000 n
-0000250958 00000 n
-0000251023 00000 n
-0000251088 00000 n
-0000251153 00000 n
-0000251218 00000 n
-0000251283 00000 n
-0000251348 00000 n
-0000251413 00000 n
-0000251478 00000 n
-0000251542 00000 n
-0000251607 00000 n
-0000251672 00000 n
-0000251737 00000 n
-0000251802 00000 n
-0000251867 00000 n
-0000251932 00000 n
-0000251997 00000 n
-0000252062 00000 n
-0000252126 00000 n
-0000252191 00000 n
-0000252256 00000 n
-0000252321 00000 n
-0000252386 00000 n
-0000252451 00000 n
-0000252516 00000 n
-0000252581 00000 n
-0000252646 00000 n
-0000252711 00000 n
-0000252776 00000 n
-0000252841 00000 n
-0000252906 00000 n
-0000252971 00000 n
-0000253036 00000 n
-0000253101 00000 n
-0000253166 00000 n
-0000253231 00000 n
-0000253296 00000 n
-0000253360 00000 n
-0000253425 00000 n
-0000258944 00000 n
-0000256613 00000 n
-0000253665 00000 n
-0000256738 00000 n
-0000256802 00000 n
-0000256867 00000 n
-0000256932 00000 n
-0000256997 00000 n
-0000257062 00000 n
-0000257127 00000 n
-0000257192 00000 n
-0000257257 00000 n
-0000257322 00000 n
-0000257387 00000 n
-0000257452 00000 n
-0000257517 00000 n
-0000257582 00000 n
-0000257647 00000 n
-0000257712 00000 n
-0000257777 00000 n
-0000257842 00000 n
-0000257907 00000 n
-0000257972 00000 n
-0000258037 00000 n
-0000258102 00000 n
-0000258167 00000 n
-0000258232 00000 n
-0000258297 00000 n
-0000258361 00000 n
-0000258426 00000 n
-0000258491 00000 n
-0000258556 00000 n
-0000258621 00000 n
-0000258686 00000 n
-0000258751 00000 n
-0000258816 00000 n
-0000258880 00000 n
-0000263896 00000 n
-0000261826 00000 n
-0000259147 00000 n
-0000261951 00000 n
-0000262015 00000 n
-0000262080 00000 n
-0000262145 00000 n
-0000262209 00000 n
-0000262274 00000 n
-0000262339 00000 n
-0000262404 00000 n
-0000262469 00000 n
-0000262534 00000 n
-0000262599 00000 n
-0000262664 00000 n
-0000262729 00000 n
-0000262794 00000 n
-0000262859 00000 n
-0000262924 00000 n
-0000262988 00000 n
-0000263053 00000 n
-0000263118 00000 n
-0000263183 00000 n
-0000263248 00000 n
-0000263313 00000 n
-0000263378 00000 n
-0000263443 00000 n
-0000263508 00000 n
-0000263573 00000 n
-0000263638 00000 n
-0000263703 00000 n
-0000263768 00000 n
-0000263833 00000 n
-0000268910 00000 n
-0000266452 00000 n
-0000264112 00000 n
-0000266577 00000 n
-0000266641 00000 n
-0000266706 00000 n
-0000266771 00000 n
-0000266836 00000 n
-0000266901 00000 n
-0000266966 00000 n
-0000267031 00000 n
-0000267096 00000 n
-0000267161 00000 n
-0000267226 00000 n
-0000267289 00000 n
-0000267354 00000 n
-0000267419 00000 n
-0000267484 00000 n
-0000267549 00000 n
-0000267614 00000 n
-0000267679 00000 n
-0000267743 00000 n
-0000267808 00000 n
-0000267873 00000 n
-0000267938 00000 n
-0000268003 00000 n
-0000268068 00000 n
-0000268133 00000 n
-0000268198 00000 n
-0000268263 00000 n
-0000268328 00000 n
-0000268393 00000 n
-0000268458 00000 n
-0000268523 00000 n
-0000268588 00000 n
-0000268653 00000 n
-0000268718 00000 n
-0000268783 00000 n
-0000274391 00000 n
-0000271671 00000 n
-0000269087 00000 n
-0000271796 00000 n
-0000271860 00000 n
-0000271925 00000 n
-0000271990 00000 n
-0000272054 00000 n
-0000272119 00000 n
-0000272184 00000 n
-0000272249 00000 n
-0000272314 00000 n
-0000272379 00000 n
-0000272444 00000 n
-0000272509 00000 n
-0000272574 00000 n
-0000272639 00000 n
-0000272704 00000 n
-0000272769 00000 n
-0000272834 00000 n
-0000272899 00000 n
-0000272964 00000 n
-0000273029 00000 n
-0000273094 00000 n
-0000273159 00000 n
-0000273224 00000 n
-0000273289 00000 n
-0000273354 00000 n
-0000273419 00000 n
-0000273484 00000 n
-0000273549 00000 n
-0000273614 00000 n
-0000273679 00000 n
-0000273744 00000 n
-0000273809 00000 n
-0000273874 00000 n
-0000273939 00000 n
-0000274003 00000 n
-0000274068 00000 n
-0000274133 00000 n
-0000274198 00000 n
-0000274263 00000 n
-0000274327 00000 n
-0000280155 00000 n
-0000277504 00000 n
-0000274581 00000 n
-0000277629 00000 n
-0000277693 00000 n
-0000277758 00000 n
-0000277823 00000 n
-0000277888 00000 n
-0000277953 00000 n
-0000278018 00000 n
-0000278083 00000 n
-0000278148 00000 n
-0000278213 00000 n
-0000278277 00000 n
-0000278342 00000 n
-0000278407 00000 n
-0000278472 00000 n
-0000278537 00000 n
-0000278602 00000 n
-0000278667 00000 n
-0000278732 00000 n
-0000278796 00000 n
-0000278861 00000 n
-0000278926 00000 n
-0000278990 00000 n
-0000279055 00000 n
-0000279120 00000 n
-0000279183 00000 n
-0000279248 00000 n
-0000279313 00000 n
-0000279378 00000 n
-0000279443 00000 n
-0000279508 00000 n
-0000279573 00000 n
-0000279638 00000 n
-0000279703 00000 n
-0000279768 00000 n
-0000279833 00000 n
-0000279898 00000 n
-0000279963 00000 n
-0000280028 00000 n
-0000280091 00000 n
-0001887911 00000 n
-0000286080 00000 n
-0000282516 00000 n
-0000280358 00000 n
-0000282641 00000 n
-0000282705 00000 n
-0000282770 00000 n
-0000282835 00000 n
-0000282900 00000 n
-0000282965 00000 n
-0000283030 00000 n
-0000283095 00000 n
-0000283160 00000 n
-0000283225 00000 n
-0000283290 00000 n
-0000283355 00000 n
-0000283420 00000 n
-0000283485 00000 n
-0000283550 00000 n
-0000283615 00000 n
-0000283680 00000 n
-0000283745 00000 n
-0000283808 00000 n
-0000283873 00000 n
-0000283938 00000 n
-0000284003 00000 n
-0000284068 00000 n
-0000284133 00000 n
-0000284198 00000 n
-0000284263 00000 n
-0000284328 00000 n
-0000284392 00000 n
-0000284457 00000 n
-0000284522 00000 n
-0000284587 00000 n
-0000284652 00000 n
-0000284717 00000 n
-0000284782 00000 n
-0000284847 00000 n
-0000284912 00000 n
-0000284976 00000 n
-0000285041 00000 n
-0000285106 00000 n
-0000285171 00000 n
-0000285236 00000 n
-0000285301 00000 n
-0000285366 00000 n
-0000285431 00000 n
-0000285496 00000 n
-0000285560 00000 n
-0000285625 00000 n
-0000285690 00000 n
-0000285755 00000 n
-0000285820 00000 n
-0000285885 00000 n
-0000285950 00000 n
-0000286015 00000 n
-0000288515 00000 n
-0000291979 00000 n
-0000288342 00000 n
-0000286244 00000 n
-0000288672 00000 n
-0000288736 00000 n
-0000288801 00000 n
-0000288866 00000 n
-0000288931 00000 n
-0000288996 00000 n
-0000289061 00000 n
-0000289126 00000 n
-0000289191 00000 n
-0000289256 00000 n
-0000289320 00000 n
-0000289385 00000 n
-0000289450 00000 n
-0000289515 00000 n
-0000289580 00000 n
-0000289645 00000 n
-0000289710 00000 n
-0000289775 00000 n
-0000289840 00000 n
-0000289905 00000 n
-0000289970 00000 n
-0000290035 00000 n
-0000290099 00000 n
-0000290164 00000 n
-0000290229 00000 n
-0000290294 00000 n
-0000290359 00000 n
-0000290424 00000 n
-0000290489 00000 n
-0000290554 00000 n
-0000290619 00000 n
-0000290684 00000 n
-0000290749 00000 n
-0000290814 00000 n
-0000290879 00000 n
-0000290943 00000 n
-0000291008 00000 n
-0000291073 00000 n
-0000291138 00000 n
-0000291203 00000 n
-0000291268 00000 n
-0000291333 00000 n
-0000291398 00000 n
-0000291463 00000 n
-0000291528 00000 n
-0000291593 00000 n
-0000291720 00000 n
-0000291785 00000 n
-0000291850 00000 n
-0000291915 00000 n
-0000288484 00000 n
-0000295450 00000 n
-0000298006 00000 n
-0000295277 00000 n
-0000292208 00000 n
-0000295606 00000 n
-0000295670 00000 n
-0000295735 00000 n
-0000295800 00000 n
-0000295865 00000 n
-0000295930 00000 n
-0000295995 00000 n
-0000296060 00000 n
-0000296125 00000 n
-0000296190 00000 n
-0000296255 00000 n
-0000296320 00000 n
-0000296384 00000 n
-0000296449 00000 n
-0000296514 00000 n
-0000296579 00000 n
-0000296644 00000 n
-0000296709 00000 n
-0000296774 00000 n
-0000296839 00000 n
-0000296904 00000 n
-0000296969 00000 n
-0000297034 00000 n
-0000297099 00000 n
-0000297164 00000 n
-0000297228 00000 n
-0000297293 00000 n
-0000297358 00000 n
-0000297423 00000 n
-0000297488 00000 n
-0000297553 00000 n
-0000297618 00000 n
-0000297683 00000 n
-0000297747 00000 n
-0000297812 00000 n
-0000297877 00000 n
-0000297942 00000 n
-0000295419 00000 n
-0000303805 00000 n
-0000300825 00000 n
-0000298261 00000 n
-0000300950 00000 n
-0000301014 00000 n
-0000301079 00000 n
-0000301144 00000 n
-0000301209 00000 n
-0000301274 00000 n
-0000301339 00000 n
-0000301404 00000 n
-0000301469 00000 n
-0000301534 00000 n
-0000301599 00000 n
-0000301664 00000 n
-0000301729 00000 n
-0000301794 00000 n
-0000301859 00000 n
-0000301924 00000 n
-0000301989 00000 n
-0000302054 00000 n
-0000302119 00000 n
-0000302184 00000 n
-0000302249 00000 n
-0000302314 00000 n
-0000302379 00000 n
-0000302444 00000 n
-0000302509 00000 n
-0000302574 00000 n
-0000302639 00000 n
-0000302704 00000 n
-0000302768 00000 n
-0000302833 00000 n
-0000302898 00000 n
-0000302963 00000 n
-0000303028 00000 n
-0000303093 00000 n
-0000303158 00000 n
-0000303223 00000 n
-0000303288 00000 n
-0000303352 00000 n
-0000303417 00000 n
-0000303482 00000 n
-0000303547 00000 n
-0000303612 00000 n
-0000303677 00000 n
-0000303741 00000 n
-0000306606 00000 n
-0000310005 00000 n
-0000306433 00000 n
-0000303969 00000 n
-0000306763 00000 n
-0000306827 00000 n
-0000306892 00000 n
-0000306957 00000 n
-0000307022 00000 n
-0000307087 00000 n
-0000307152 00000 n
-0000307217 00000 n
-0000307282 00000 n
-0000307346 00000 n
-0000307411 00000 n
-0000307476 00000 n
-0000307541 00000 n
-0000307606 00000 n
-0000307671 00000 n
-0000307736 00000 n
-0000307801 00000 n
-0000307866 00000 n
-0000307930 00000 n
-0000307995 00000 n
-0000308060 00000 n
-0000308125 00000 n
-0000308190 00000 n
-0000308255 00000 n
-0000308320 00000 n
-0000308385 00000 n
-0000308450 00000 n
-0000308514 00000 n
-0000308579 00000 n
-0000308644 00000 n
-0000308709 00000 n
-0000308773 00000 n
-0000308838 00000 n
-0000308903 00000 n
-0000308968 00000 n
-0000309033 00000 n
-0000309098 00000 n
-0000309163 00000 n
-0000309228 00000 n
-0000309293 00000 n
-0000309358 00000 n
-0000309422 00000 n
-0000309487 00000 n
-0000309551 00000 n
-0000309616 00000 n
-0000309681 00000 n
-0000309746 00000 n
-0000309811 00000 n
-0000309876 00000 n
-0000309941 00000 n
-0000306575 00000 n
-0000313157 00000 n
-0000313315 00000 n
-0000316521 00000 n
-0000312975 00000 n
-0000310247 00000 n
-0000313472 00000 n
-0000313536 00000 n
-0000313601 00000 n
-0000313666 00000 n
-0000313731 00000 n
-0000313796 00000 n
-0000313861 00000 n
-0000313926 00000 n
-0000313991 00000 n
-0000314056 00000 n
-0000314120 00000 n
-0000314185 00000 n
-0000314250 00000 n
-0000314315 00000 n
-0000314380 00000 n
-0000314445 00000 n
-0000314510 00000 n
-0000314575 00000 n
-0000314639 00000 n
-0000314704 00000 n
-0000314769 00000 n
-0000314834 00000 n
-0000314899 00000 n
-0000314964 00000 n
-0000315029 00000 n
-0000315094 00000 n
-0000315158 00000 n
-0000315223 00000 n
-0000315288 00000 n
-0000315353 00000 n
-0000315418 00000 n
-0000315483 00000 n
-0000315548 00000 n
-0000315613 00000 n
-0000315678 00000 n
-0000315743 00000 n
-0000315808 00000 n
-0000315873 00000 n
-0000315938 00000 n
-0000316003 00000 n
-0000316068 00000 n
-0000316133 00000 n
-0000316198 00000 n
-0000316262 00000 n
-0000316327 00000 n
-0000316392 00000 n
-0000316457 00000 n
-0000313117 00000 n
-0000319416 00000 n
-0000322097 00000 n
-0000319243 00000 n
-0000316802 00000 n
-0000319573 00000 n
-0000319637 00000 n
-0000319702 00000 n
-0000319767 00000 n
-0000319832 00000 n
-0000319897 00000 n
-0000319962 00000 n
-0000320027 00000 n
-0000320092 00000 n
-0000320157 00000 n
-0000320222 00000 n
-0000320287 00000 n
-0000320350 00000 n
-0000320415 00000 n
-0000320480 00000 n
-0000320545 00000 n
-0000320610 00000 n
-0000320675 00000 n
-0000320740 00000 n
-0000320805 00000 n
-0000320870 00000 n
-0000320934 00000 n
-0000320999 00000 n
-0000321064 00000 n
-0000321129 00000 n
-0000321194 00000 n
-0000321259 00000 n
-0000321324 00000 n
-0000321388 00000 n
-0000321453 00000 n
-0000321518 00000 n
-0000321583 00000 n
-0000321647 00000 n
-0000321774 00000 n
-0000321839 00000 n
-0000321904 00000 n
-0000321969 00000 n
-0000322033 00000 n
-0000319385 00000 n
-0000327607 00000 n
-0000324564 00000 n
-0000322287 00000 n
-0000324689 00000 n
-0000324753 00000 n
-0000324818 00000 n
-0000324883 00000 n
-0000324948 00000 n
-0000325013 00000 n
-0000325077 00000 n
-0000325142 00000 n
-0000325207 00000 n
-0000325271 00000 n
-0000325336 00000 n
-0000325401 00000 n
-0000325466 00000 n
-0000325531 00000 n
-0000325596 00000 n
-0000325661 00000 n
-0000325726 00000 n
-0000325791 00000 n
-0000325856 00000 n
-0000325921 00000 n
-0000325986 00000 n
-0000326051 00000 n
-0000326116 00000 n
-0000326181 00000 n
-0000326246 00000 n
-0000326311 00000 n
-0000326376 00000 n
-0000326441 00000 n
-0000326506 00000 n
-0000326571 00000 n
-0000326636 00000 n
-0000326701 00000 n
-0000326765 00000 n
-0000326830 00000 n
-0000326895 00000 n
-0000326960 00000 n
-0000327025 00000 n
-0000327090 00000 n
-0000327155 00000 n
-0000327220 00000 n
-0000327285 00000 n
-0000327349 00000 n
-0000327414 00000 n
-0000327479 00000 n
-0000327543 00000 n
-0000335477 00000 n
-0000333020 00000 n
-0000329913 00000 n
-0000327784 00000 n
-0000330038 00000 n
-0000330102 00000 n
-0000330167 00000 n
-0000330231 00000 n
-0000330296 00000 n
-0000330361 00000 n
-0000330426 00000 n
-0000330491 00000 n
-0000330556 00000 n
-0000330621 00000 n
-0000330686 00000 n
-0000330749 00000 n
-0000330814 00000 n
-0000330879 00000 n
-0000330944 00000 n
-0000331009 00000 n
-0000331074 00000 n
-0000331139 00000 n
-0000331204 00000 n
-0000331269 00000 n
-0000331333 00000 n
-0000331398 00000 n
-0000331463 00000 n
-0000331528 00000 n
-0000331593 00000 n
-0000331658 00000 n
-0000331723 00000 n
-0000331788 00000 n
-0000331853 00000 n
-0000331917 00000 n
-0000331982 00000 n
-0000332047 00000 n
-0000332112 00000 n
-0000332177 00000 n
-0000332242 00000 n
-0000332307 00000 n
-0000332372 00000 n
-0000332437 00000 n
-0000332501 00000 n
-0000332566 00000 n
-0000332631 00000 n
-0000332695 00000 n
-0000332760 00000 n
-0000332825 00000 n
-0000332890 00000 n
-0000332955 00000 n
-0000339005 00000 n
-0000335304 00000 n
-0000333184 00000 n
-0000335634 00000 n
-0000335698 00000 n
-0000335763 00000 n
-0000335828 00000 n
-0000335892 00000 n
-0000335957 00000 n
-0000336022 00000 n
-0000336087 00000 n
-0000336151 00000 n
-0000336216 00000 n
-0000336281 00000 n
-0000336346 00000 n
-0000336411 00000 n
-0000336476 00000 n
-0000336541 00000 n
-0000336606 00000 n
-0000336671 00000 n
-0000336736 00000 n
-0000336801 00000 n
-0000336866 00000 n
-0000336930 00000 n
-0000336995 00000 n
-0000337060 00000 n
-0000337125 00000 n
-0000337189 00000 n
-0000337254 00000 n
-0000337318 00000 n
-0000337383 00000 n
-0000337448 00000 n
-0000337513 00000 n
-0000337578 00000 n
-0000337643 00000 n
-0000337708 00000 n
-0000337773 00000 n
-0000337838 00000 n
-0000337902 00000 n
-0000337967 00000 n
-0000338032 00000 n
-0000338097 00000 n
-0000338162 00000 n
-0000338227 00000 n
-0000338292 00000 n
-0000338357 00000 n
-0000338422 00000 n
-0000338487 00000 n
-0000338552 00000 n
-0000338617 00000 n
-0000338681 00000 n
-0000338746 00000 n
-0000338811 00000 n
-0000338876 00000 n
-0000338941 00000 n
-0001888076 00000 n
-0000335446 00000 n
-0000344570 00000 n
-0000341076 00000 n
-0000339234 00000 n
-0000341201 00000 n
-0000341265 00000 n
-0000341330 00000 n
-0000341395 00000 n
-0000341460 00000 n
-0000341525 00000 n
-0000341589 00000 n
-0000341654 00000 n
-0000341719 00000 n
-0000341783 00000 n
-0000341848 00000 n
-0000341913 00000 n
-0000341978 00000 n
-0000342043 00000 n
-0000342108 00000 n
-0000342172 00000 n
-0000342237 00000 n
-0000342302 00000 n
-0000342367 00000 n
-0000342432 00000 n
-0000342497 00000 n
-0000342562 00000 n
-0000342625 00000 n
-0000342690 00000 n
-0000342755 00000 n
-0000342820 00000 n
-0000342885 00000 n
-0000342950 00000 n
-0000343015 00000 n
-0000343079 00000 n
-0000343144 00000 n
-0000343209 00000 n
-0000343274 00000 n
-0000343339 00000 n
-0000343404 00000 n
-0000343469 00000 n
-0000343534 00000 n
-0000343599 00000 n
-0000343663 00000 n
-0000343728 00000 n
-0000343793 00000 n
-0000343858 00000 n
-0000343923 00000 n
-0000343987 00000 n
-0000344052 00000 n
-0000344117 00000 n
-0000344182 00000 n
-0000344247 00000 n
-0000344312 00000 n
-0000344377 00000 n
-0000344442 00000 n
-0000344506 00000 n
-0000350470 00000 n
-0000346646 00000 n
-0000344734 00000 n
-0000346771 00000 n
-0000346835 00000 n
-0000346900 00000 n
-0000346965 00000 n
-0000347030 00000 n
-0000347095 00000 n
-0000347160 00000 n
-0000347225 00000 n
-0000347290 00000 n
-0000347355 00000 n
-0000347420 00000 n
-0000347485 00000 n
-0000347550 00000 n
-0000347615 00000 n
-0000347680 00000 n
-0000347745 00000 n
-0000347810 00000 n
-0000347875 00000 n
-0000347940 00000 n
-0000348004 00000 n
-0000348069 00000 n
-0000348134 00000 n
-0000348199 00000 n
-0000348264 00000 n
-0000348329 00000 n
-0000348394 00000 n
-0000348459 00000 n
-0000348524 00000 n
-0000348588 00000 n
-0000348653 00000 n
-0000348718 00000 n
-0000348783 00000 n
-0000348848 00000 n
-0000348913 00000 n
-0000348978 00000 n
-0000349043 00000 n
-0000349108 00000 n
-0000349172 00000 n
-0000349237 00000 n
-0000349302 00000 n
-0000349367 00000 n
-0000349432 00000 n
-0000349497 00000 n
-0000349562 00000 n
-0000349627 00000 n
-0000349692 00000 n
-0000349757 00000 n
-0000349822 00000 n
-0000349887 00000 n
-0000349952 00000 n
-0000350017 00000 n
-0000350082 00000 n
-0000350147 00000 n
-0000350212 00000 n
-0000350277 00000 n
-0000350342 00000 n
-0000350406 00000 n
-0000356367 00000 n
-0000353065 00000 n
-0000350647 00000 n
-0000353190 00000 n
-0000353254 00000 n
-0000353319 00000 n
-0000353384 00000 n
-0000353449 00000 n
-0000353514 00000 n
-0000353579 00000 n
-0000353644 00000 n
-0000353709 00000 n
-0000353773 00000 n
-0000353838 00000 n
-0000353903 00000 n
-0000353967 00000 n
-0000354032 00000 n
-0000354097 00000 n
-0000354162 00000 n
-0000354227 00000 n
-0000354292 00000 n
-0000354357 00000 n
-0000354422 00000 n
-0000354487 00000 n
-0000354551 00000 n
-0000354616 00000 n
-0000354681 00000 n
-0000354746 00000 n
-0000354811 00000 n
-0000354876 00000 n
-0000354941 00000 n
-0000355006 00000 n
-0000355071 00000 n
-0000355135 00000 n
-0000355200 00000 n
-0000355265 00000 n
-0000355330 00000 n
-0000355395 00000 n
-0000355460 00000 n
-0000355525 00000 n
-0000355590 00000 n
-0000355655 00000 n
-0000355719 00000 n
-0000355784 00000 n
-0000355849 00000 n
-0000355914 00000 n
-0000355979 00000 n
-0000356044 00000 n
-0000356109 00000 n
-0000356174 00000 n
-0000356239 00000 n
-0000356303 00000 n
-0000362150 00000 n
-0000359756 00000 n
-0000356544 00000 n
-0000359881 00000 n
-0000359945 00000 n
-0000360010 00000 n
-0000360075 00000 n
-0000360140 00000 n
-0000360205 00000 n
-0000360270 00000 n
-0000360335 00000 n
-0000360400 00000 n
-0000360465 00000 n
-0000360529 00000 n
-0000360594 00000 n
-0000360659 00000 n
-0000360724 00000 n
-0000360789 00000 n
-0000360854 00000 n
-0000360919 00000 n
-0000360983 00000 n
-0000361048 00000 n
-0000361113 00000 n
-0000361178 00000 n
-0000361243 00000 n
-0000361308 00000 n
-0000361373 00000 n
-0000361438 00000 n
-0000361503 00000 n
-0000361568 00000 n
-0000361632 00000 n
-0000361697 00000 n
-0000361762 00000 n
-0000361827 00000 n
-0000361892 00000 n
-0000361957 00000 n
-0000362022 00000 n
-0000362086 00000 n
-0000367857 00000 n
-0000364683 00000 n
-0000362340 00000 n
-0000364808 00000 n
-0000364872 00000 n
-0000364937 00000 n
-0000365002 00000 n
-0000365067 00000 n
-0000365132 00000 n
-0000365197 00000 n
-0000365262 00000 n
-0000365327 00000 n
-0000365392 00000 n
-0000365457 00000 n
-0000365522 00000 n
-0000365587 00000 n
-0000365652 00000 n
-0000365717 00000 n
-0000365781 00000 n
-0000365846 00000 n
-0000365911 00000 n
-0000365976 00000 n
-0000366041 00000 n
-0000366106 00000 n
-0000366171 00000 n
-0000366236 00000 n
-0000366301 00000 n
-0000366365 00000 n
-0000366430 00000 n
-0000366495 00000 n
-0000366560 00000 n
-0000366625 00000 n
-0000366690 00000 n
-0000366755 00000 n
-0000366820 00000 n
-0000366885 00000 n
-0000366950 00000 n
-0000367015 00000 n
-0000367080 00000 n
-0000367145 00000 n
-0000367210 00000 n
-0000367275 00000 n
-0000367340 00000 n
-0000367404 00000 n
-0000367469 00000 n
-0000367534 00000 n
-0000367599 00000 n
-0000367664 00000 n
-0000367729 00000 n
-0000367793 00000 n
-0000373543 00000 n
-0000370306 00000 n
-0000368034 00000 n
-0000370431 00000 n
-0000370495 00000 n
-0000370560 00000 n
-0000370624 00000 n
-0000370689 00000 n
-0000370754 00000 n
-0000370819 00000 n
-0000370884 00000 n
-0000370949 00000 n
-0000371014 00000 n
-0000371079 00000 n
-0000371144 00000 n
-0000371209 00000 n
-0000371274 00000 n
-0000371339 00000 n
-0000371403 00000 n
-0000371468 00000 n
-0000371533 00000 n
-0000371598 00000 n
-0000371663 00000 n
-0000371728 00000 n
-0000371793 00000 n
-0000371858 00000 n
-0000371923 00000 n
-0000371987 00000 n
-0000372052 00000 n
-0000372117 00000 n
-0000372182 00000 n
-0000372247 00000 n
-0000372312 00000 n
-0000372377 00000 n
-0000372442 00000 n
-0000372507 00000 n
-0000372572 00000 n
-0000372636 00000 n
-0000372701 00000 n
-0000372766 00000 n
-0000372831 00000 n
-0000372896 00000 n
-0000372961 00000 n
-0000373026 00000 n
-0000373091 00000 n
-0000373156 00000 n
-0000373221 00000 n
-0000373284 00000 n
-0000373349 00000 n
-0000373414 00000 n
-0000373479 00000 n
-0000379260 00000 n
-0000375763 00000 n
-0000373733 00000 n
-0000375888 00000 n
-0000375952 00000 n
-0000376017 00000 n
-0000376082 00000 n
-0000376147 00000 n
-0000376212 00000 n
-0000376277 00000 n
-0000376342 00000 n
-0000376406 00000 n
-0000376471 00000 n
-0000376536 00000 n
-0000376601 00000 n
-0000376666 00000 n
-0000376731 00000 n
-0000376796 00000 n
-0000376861 00000 n
-0000376926 00000 n
-0000376990 00000 n
-0000377055 00000 n
-0000377120 00000 n
-0000377185 00000 n
-0000377250 00000 n
-0000377315 00000 n
-0000377380 00000 n
-0000377444 00000 n
-0000377509 00000 n
-0000377574 00000 n
-0000377639 00000 n
-0000377704 00000 n
-0000377769 00000 n
-0000377834 00000 n
-0000377898 00000 n
-0000377963 00000 n
-0000378028 00000 n
-0000378093 00000 n
-0000378158 00000 n
-0000378223 00000 n
-0000378288 00000 n
-0000378353 00000 n
-0000378418 00000 n
-0000378483 00000 n
-0000378548 00000 n
-0000378613 00000 n
-0000378678 00000 n
-0000378743 00000 n
-0000378808 00000 n
-0000378873 00000 n
-0000378938 00000 n
-0000379002 00000 n
-0000379067 00000 n
-0000379132 00000 n
-0000379196 00000 n
-0000385055 00000 n
-0000381430 00000 n
-0000379437 00000 n
-0000381555 00000 n
-0000381619 00000 n
-0000381684 00000 n
-0000381749 00000 n
-0000381814 00000 n
-0000381879 00000 n
-0000381943 00000 n
-0000382008 00000 n
-0000382073 00000 n
-0000382138 00000 n
-0000382202 00000 n
-0000382267 00000 n
-0000382332 00000 n
-0000382397 00000 n
-0000382462 00000 n
-0000382527 00000 n
-0000382592 00000 n
-0000382657 00000 n
-0000382722 00000 n
-0000382786 00000 n
-0000382851 00000 n
-0000382916 00000 n
-0000382981 00000 n
-0000383046 00000 n
-0000383111 00000 n
-0000383176 00000 n
-0000383241 00000 n
-0000383305 00000 n
-0000383370 00000 n
-0000383435 00000 n
-0000383500 00000 n
-0000383565 00000 n
-0000383630 00000 n
-0000383695 00000 n
-0000383760 00000 n
-0000383825 00000 n
-0000383890 00000 n
-0000383954 00000 n
-0000384019 00000 n
-0000384084 00000 n
-0000384149 00000 n
-0000384213 00000 n
-0000384278 00000 n
-0000384343 00000 n
-0000384408 00000 n
-0000384473 00000 n
-0000384538 00000 n
-0000384603 00000 n
-0000384668 00000 n
-0000384733 00000 n
-0000384797 00000 n
-0000384862 00000 n
-0000384927 00000 n
-0000384991 00000 n
-0000391068 00000 n
-0000387245 00000 n
-0000385232 00000 n
-0000387370 00000 n
-0000387434 00000 n
-0000387499 00000 n
-0000387564 00000 n
-0000387629 00000 n
-0000387694 00000 n
-0000387759 00000 n
-0000387824 00000 n
-0000387889 00000 n
-0000387954 00000 n
-0000388019 00000 n
-0000388084 00000 n
-0000388149 00000 n
-0000388214 00000 n
-0000388279 00000 n
-0000388343 00000 n
-0000388408 00000 n
-0000388473 00000 n
-0000388538 00000 n
-0000388603 00000 n
-0000388668 00000 n
-0000388733 00000 n
-0000388798 00000 n
-0000388863 00000 n
-0000388928 00000 n
-0000388992 00000 n
-0000389057 00000 n
-0000389122 00000 n
-0000389187 00000 n
-0000389252 00000 n
-0000389317 00000 n
-0000389382 00000 n
-0000389447 00000 n
-0000389512 00000 n
-0000389576 00000 n
-0000389641 00000 n
-0000389706 00000 n
-0000389771 00000 n
-0000389836 00000 n
-0000389901 00000 n
-0000389966 00000 n
-0000390031 00000 n
-0000390096 00000 n
-0000390161 00000 n
-0000390226 00000 n
-0000390291 00000 n
-0000390356 00000 n
-0000390421 00000 n
-0000390486 00000 n
-0000390551 00000 n
-0000390616 00000 n
-0000390680 00000 n
-0000390745 00000 n
-0000390810 00000 n
-0000390875 00000 n
-0000390940 00000 n
-0000391004 00000 n
-0000396992 00000 n
-0000393235 00000 n
-0000391232 00000 n
-0000393360 00000 n
-0000393424 00000 n
-0000393489 00000 n
-0000393554 00000 n
-0000393619 00000 n
-0000393684 00000 n
-0000393749 00000 n
-0000393813 00000 n
-0000393878 00000 n
-0000393942 00000 n
-0000394007 00000 n
-0000394072 00000 n
-0000394137 00000 n
-0000394202 00000 n
-0000394267 00000 n
-0000394332 00000 n
-0000394397 00000 n
-0000394462 00000 n
-0000394526 00000 n
-0000394591 00000 n
-0000394656 00000 n
-0000394721 00000 n
-0000394786 00000 n
-0000394851 00000 n
-0000394916 00000 n
-0000394981 00000 n
-0000395046 00000 n
-0000395111 00000 n
-0000395176 00000 n
-0000395241 00000 n
-0000395306 00000 n
-0000395371 00000 n
-0000395436 00000 n
-0000395501 00000 n
-0000395566 00000 n
-0000395631 00000 n
-0000395696 00000 n
-0000395760 00000 n
-0000395825 00000 n
-0000395890 00000 n
-0000395955 00000 n
-0000396020 00000 n
-0000396085 00000 n
-0000396150 00000 n
-0000396215 00000 n
-0000396280 00000 n
-0000396345 00000 n
-0000396410 00000 n
-0000396475 00000 n
-0000396540 00000 n
-0000396604 00000 n
-0000396669 00000 n
-0000396734 00000 n
-0000396799 00000 n
-0000396864 00000 n
-0000396928 00000 n
-0001888241 00000 n
-0000402325 00000 n
-0000400122 00000 n
-0000397156 00000 n
-0000400247 00000 n
-0000400311 00000 n
-0000400376 00000 n
-0000400441 00000 n
-0000400506 00000 n
-0000400571 00000 n
-0000400636 00000 n
-0000400701 00000 n
-0000400766 00000 n
-0000400831 00000 n
-0000400896 00000 n
-0000400961 00000 n
-0000401026 00000 n
-0000401091 00000 n
-0000401156 00000 n
-0000401221 00000 n
-0000401286 00000 n
-0000401350 00000 n
-0000401415 00000 n
-0000401480 00000 n
-0000401545 00000 n
-0000401610 00000 n
-0000401675 00000 n
-0000401740 00000 n
-0000401805 00000 n
-0000401870 00000 n
-0000401935 00000 n
-0000402000 00000 n
-0000402065 00000 n
-0000402130 00000 n
-0000402195 00000 n
-0000402260 00000 n
-0000407896 00000 n
-0000404918 00000 n
-0000402528 00000 n
-0000405043 00000 n
-0000405107 00000 n
-0000405172 00000 n
-0000405236 00000 n
-0000405301 00000 n
-0000405366 00000 n
-0000405431 00000 n
-0000405496 00000 n
-0000405561 00000 n
-0000405626 00000 n
-0000405691 00000 n
-0000405756 00000 n
-0000405820 00000 n
-0000405885 00000 n
-0000405950 00000 n
-0000406015 00000 n
-0000406080 00000 n
-0000406145 00000 n
-0000406210 00000 n
-0000406275 00000 n
-0000406339 00000 n
-0000406404 00000 n
-0000406469 00000 n
-0000406534 00000 n
-0000406599 00000 n
-0000406664 00000 n
-0000406729 00000 n
-0000406794 00000 n
-0000406859 00000 n
-0000406923 00000 n
-0000406988 00000 n
-0000407053 00000 n
-0000407118 00000 n
-0000407183 00000 n
-0000407248 00000 n
-0000407313 00000 n
-0000407378 00000 n
-0000407443 00000 n
-0000407508 00000 n
-0000407572 00000 n
-0000407637 00000 n
-0000407702 00000 n
-0000407767 00000 n
-0000407832 00000 n
-0000413256 00000 n
-0000410345 00000 n
-0000408060 00000 n
-0000410470 00000 n
-0000410534 00000 n
-0000410599 00000 n
-0000410664 00000 n
-0000410729 00000 n
-0000410793 00000 n
-0000410920 00000 n
-0000410985 00000 n
-0000411050 00000 n
-0000411115 00000 n
-0000411180 00000 n
-0000411245 00000 n
-0000411309 00000 n
-0000411374 00000 n
-0000411439 00000 n
-0000411504 00000 n
-0000411569 00000 n
-0000411634 00000 n
-0000411699 00000 n
-0000411764 00000 n
-0000411829 00000 n
-0000411894 00000 n
-0000411959 00000 n
-0000412024 00000 n
-0000412089 00000 n
-0000412154 00000 n
-0000412219 00000 n
-0000412284 00000 n
-0000412349 00000 n
-0000412414 00000 n
-0000412479 00000 n
-0000412544 00000 n
-0000412609 00000 n
-0000412674 00000 n
-0000412739 00000 n
-0000412804 00000 n
-0000412868 00000 n
-0000412933 00000 n
-0000412998 00000 n
-0000413063 00000 n
-0000413128 00000 n
-0000413192 00000 n
-0000418870 00000 n
-0000415309 00000 n
-0000413459 00000 n
-0000415434 00000 n
-0000415498 00000 n
-0000415563 00000 n
-0000415628 00000 n
-0000415693 00000 n
-0000415758 00000 n
-0000415823 00000 n
-0000415887 00000 n
-0000415952 00000 n
-0000416017 00000 n
-0000416082 00000 n
-0000416147 00000 n
-0000416212 00000 n
-0000416277 00000 n
-0000416342 00000 n
-0000416407 00000 n
-0000416472 00000 n
-0000416537 00000 n
-0000416602 00000 n
-0000416667 00000 n
-0000416732 00000 n
-0000416795 00000 n
-0000416860 00000 n
-0000416925 00000 n
-0000416990 00000 n
-0000417055 00000 n
-0000417120 00000 n
-0000417185 00000 n
-0000417250 00000 n
-0000417315 00000 n
-0000417379 00000 n
-0000417444 00000 n
-0000417509 00000 n
-0000417574 00000 n
-0000417639 00000 n
-0000417704 00000 n
-0000417769 00000 n
-0000417834 00000 n
-0000417899 00000 n
-0000417963 00000 n
-0000418028 00000 n
-0000418093 00000 n
-0000418158 00000 n
-0000418223 00000 n
-0000418288 00000 n
-0000418353 00000 n
-0000418417 00000 n
-0000418482 00000 n
-0000418547 00000 n
-0000418612 00000 n
-0000418677 00000 n
-0000418742 00000 n
-0000418806 00000 n
-0000424179 00000 n
-0000420618 00000 n
-0000419034 00000 n
-0000420743 00000 n
-0000420807 00000 n
-0000420872 00000 n
-0000420937 00000 n
-0000421002 00000 n
-0000421067 00000 n
-0000421132 00000 n
-0000421197 00000 n
-0000421261 00000 n
-0000421326 00000 n
-0000421391 00000 n
-0000421456 00000 n
-0000421521 00000 n
-0000421586 00000 n
-0000421651 00000 n
-0000421716 00000 n
-0000421781 00000 n
-0000421845 00000 n
-0000421910 00000 n
-0000421975 00000 n
-0000422040 00000 n
-0000422105 00000 n
-0000422170 00000 n
-0000422235 00000 n
-0000422300 00000 n
-0000422365 00000 n
-0000422429 00000 n
-0000422494 00000 n
-0000422559 00000 n
-0000422624 00000 n
-0000422689 00000 n
-0000422754 00000 n
-0000422819 00000 n
-0000422884 00000 n
-0000422949 00000 n
-0000423014 00000 n
-0000423079 00000 n
-0000423144 00000 n
-0000423207 00000 n
-0000423272 00000 n
-0000423337 00000 n
-0000423402 00000 n
-0000423467 00000 n
-0000423532 00000 n
-0000423597 00000 n
-0000423662 00000 n
-0000423727 00000 n
-0000423791 00000 n
-0000423856 00000 n
-0000423921 00000 n
-0000423986 00000 n
-0000424051 00000 n
-0000424115 00000 n
-0000429961 00000 n
-0000426593 00000 n
-0000424343 00000 n
-0000426718 00000 n
-0000426782 00000 n
-0000426847 00000 n
-0000426912 00000 n
-0000426977 00000 n
-0000427042 00000 n
-0000427107 00000 n
-0000427170 00000 n
-0000427235 00000 n
-0000427300 00000 n
-0000427365 00000 n
-0000427430 00000 n
-0000427495 00000 n
-0000427560 00000 n
-0000427625 00000 n
-0000427690 00000 n
-0000427754 00000 n
-0000427819 00000 n
-0000427884 00000 n
-0000427949 00000 n
-0000428014 00000 n
-0000428079 00000 n
-0000428144 00000 n
-0000428209 00000 n
-0000428274 00000 n
-0000428339 00000 n
-0000428404 00000 n
-0000428469 00000 n
-0000428534 00000 n
-0000428599 00000 n
-0000428664 00000 n
-0000428729 00000 n
-0000428794 00000 n
-0000428859 00000 n
-0000428924 00000 n
-0000428989 00000 n
-0000429054 00000 n
-0000429119 00000 n
-0000429184 00000 n
-0000429249 00000 n
-0000429314 00000 n
-0000429379 00000 n
-0000429444 00000 n
-0000429509 00000 n
-0000429573 00000 n
-0000429638 00000 n
-0000429703 00000 n
-0000429768 00000 n
-0000429833 00000 n
-0000429897 00000 n
-0000435506 00000 n
-0000432654 00000 n
-0000430138 00000 n
-0000432779 00000 n
-0000432843 00000 n
-0000432908 00000 n
-0000432973 00000 n
-0000433038 00000 n
-0000433103 00000 n
-0000433168 00000 n
-0000433233 00000 n
-0000433298 00000 n
-0000433363 00000 n
-0000433428 00000 n
-0000433493 00000 n
-0000433558 00000 n
-0000433623 00000 n
-0000433688 00000 n
-0000433753 00000 n
-0000433816 00000 n
-0000433881 00000 n
-0000433946 00000 n
-0000434011 00000 n
-0000434076 00000 n
-0000434141 00000 n
-0000434206 00000 n
-0000434271 00000 n
-0000434336 00000 n
-0000434401 00000 n
-0000434466 00000 n
-0000434531 00000 n
-0000434596 00000 n
-0000434661 00000 n
-0000434726 00000 n
-0000434791 00000 n
-0000434856 00000 n
-0000434921 00000 n
-0000434986 00000 n
-0000435051 00000 n
-0000435116 00000 n
-0000435181 00000 n
-0000435246 00000 n
-0000435311 00000 n
-0000435376 00000 n
-0000435441 00000 n
-0000440917 00000 n
-0000438328 00000 n
-0000435696 00000 n
-0000438453 00000 n
-0000438517 00000 n
-0000438582 00000 n
-0000438646 00000 n
-0000438711 00000 n
-0000438776 00000 n
-0000438841 00000 n
-0000438906 00000 n
-0000438971 00000 n
-0000439036 00000 n
-0000439101 00000 n
-0000439166 00000 n
-0000439231 00000 n
-0000439295 00000 n
-0000439360 00000 n
-0000439425 00000 n
-0000439490 00000 n
-0000439555 00000 n
-0000439620 00000 n
-0000439685 00000 n
-0000439750 00000 n
-0000439815 00000 n
-0000439880 00000 n
-0000439945 00000 n
-0000440010 00000 n
-0000440075 00000 n
-0000440140 00000 n
-0000440204 00000 n
-0000440269 00000 n
-0000440334 00000 n
-0000440399 00000 n
-0000440464 00000 n
-0000440529 00000 n
-0000440594 00000 n
-0000440659 00000 n
-0000440724 00000 n
-0000440789 00000 n
-0000440854 00000 n
-0000446933 00000 n
-0000443371 00000 n
-0000441094 00000 n
-0000443496 00000 n
-0000443560 00000 n
-0000443625 00000 n
-0000443690 00000 n
-0000443755 00000 n
-0000443819 00000 n
-0000443884 00000 n
-0000443949 00000 n
-0000444014 00000 n
-0000444079 00000 n
-0000444144 00000 n
-0000444209 00000 n
-0000444274 00000 n
-0000444339 00000 n
-0000444404 00000 n
-0000444469 00000 n
-0000444533 00000 n
-0000444598 00000 n
-0000444663 00000 n
-0000444728 00000 n
-0000444793 00000 n
-0000444858 00000 n
-0000444923 00000 n
-0000444988 00000 n
-0000445053 00000 n
-0000445118 00000 n
-0000445183 00000 n
-0000445247 00000 n
-0000445312 00000 n
-0000445376 00000 n
-0000445441 00000 n
-0000445506 00000 n
-0000445571 00000 n
-0000445636 00000 n
-0000445701 00000 n
-0000445766 00000 n
-0000445831 00000 n
-0000445896 00000 n
-0000445961 00000 n
-0000446026 00000 n
-0000446090 00000 n
-0000446155 00000 n
-0000446220 00000 n
-0000446285 00000 n
-0000446350 00000 n
-0000446415 00000 n
-0000446480 00000 n
-0000446545 00000 n
-0000446610 00000 n
-0000446674 00000 n
-0000446739 00000 n
-0000446804 00000 n
-0000446869 00000 n
-0000452767 00000 n
-0000449594 00000 n
-0000447110 00000 n
-0000449719 00000 n
-0000449783 00000 n
-0000449848 00000 n
-0000449913 00000 n
-0000449978 00000 n
-0000450043 00000 n
-0000450108 00000 n
-0000450173 00000 n
-0000450238 00000 n
-0000450303 00000 n
-0000450368 00000 n
-0000450433 00000 n
-0000450498 00000 n
-0000450562 00000 n
-0000450627 00000 n
-0000450692 00000 n
-0000450757 00000 n
-0000450822 00000 n
-0000450887 00000 n
-0000450952 00000 n
-0000451017 00000 n
-0000451082 00000 n
-0000451147 00000 n
-0000451212 00000 n
-0000451277 00000 n
-0000451342 00000 n
-0000451407 00000 n
-0000451472 00000 n
-0000451537 00000 n
-0000451602 00000 n
-0000451667 00000 n
-0000451732 00000 n
-0000451796 00000 n
-0000451861 00000 n
-0000451926 00000 n
-0000451991 00000 n
-0000452056 00000 n
-0000452121 00000 n
-0000452186 00000 n
-0000452251 00000 n
-0000452316 00000 n
-0000452381 00000 n
-0000452444 00000 n
-0000452509 00000 n
-0000452574 00000 n
-0000452639 00000 n
-0000452703 00000 n
-0001888406 00000 n
-0000458703 00000 n
-0000454879 00000 n
-0000452944 00000 n
-0000455004 00000 n
-0000455068 00000 n
-0000455133 00000 n
-0000455198 00000 n
-0000455263 00000 n
-0000455328 00000 n
-0000455393 00000 n
-0000455458 00000 n
-0000455523 00000 n
-0000455588 00000 n
-0000455652 00000 n
-0000455717 00000 n
-0000455782 00000 n
-0000455847 00000 n
-0000455912 00000 n
-0000455977 00000 n
-0000456042 00000 n
-0000456107 00000 n
-0000456172 00000 n
-0000456236 00000 n
-0000456301 00000 n
-0000456366 00000 n
-0000456431 00000 n
-0000456496 00000 n
-0000456561 00000 n
-0000456626 00000 n
-0000456691 00000 n
-0000456756 00000 n
-0000456821 00000 n
-0000456886 00000 n
-0000456951 00000 n
-0000457016 00000 n
-0000457081 00000 n
-0000457146 00000 n
-0000457211 00000 n
-0000457276 00000 n
-0000457341 00000 n
-0000457406 00000 n
-0000457471 00000 n
-0000457536 00000 n
-0000457601 00000 n
-0000457665 00000 n
-0000457730 00000 n
-0000457795 00000 n
-0000457860 00000 n
-0000457925 00000 n
-0000457990 00000 n
-0000458055 00000 n
-0000458120 00000 n
-0000458185 00000 n
-0000458249 00000 n
-0000458314 00000 n
-0000458379 00000 n
-0000458444 00000 n
-0000458509 00000 n
-0000458574 00000 n
-0000458639 00000 n
-0000464147 00000 n
-0000461817 00000 n
-0000458867 00000 n
-0000461942 00000 n
-0000462006 00000 n
-0000462071 00000 n
-0000462136 00000 n
-0000462201 00000 n
-0000462266 00000 n
-0000462331 00000 n
-0000462396 00000 n
-0000462461 00000 n
-0000462525 00000 n
-0000462590 00000 n
-0000462655 00000 n
-0000462720 00000 n
-0000462785 00000 n
-0000462850 00000 n
-0000462915 00000 n
-0000462979 00000 n
-0000463044 00000 n
-0000463109 00000 n
-0000463174 00000 n
-0000463239 00000 n
-0000463304 00000 n
-0000463369 00000 n
-0000463434 00000 n
-0000463499 00000 n
-0000463564 00000 n
-0000463629 00000 n
-0000463694 00000 n
-0000463759 00000 n
-0000463824 00000 n
-0000463889 00000 n
-0000463953 00000 n
-0000464018 00000 n
-0000464083 00000 n
-0000469811 00000 n
-0000467288 00000 n
-0000464337 00000 n
-0000467413 00000 n
-0000467477 00000 n
-0000467542 00000 n
-0000467607 00000 n
-0000467672 00000 n
-0000467737 00000 n
-0000467802 00000 n
-0000467867 00000 n
-0000467931 00000 n
-0000467996 00000 n
-0000468061 00000 n
-0000468125 00000 n
-0000468190 00000 n
-0000468255 00000 n
-0000468320 00000 n
-0000468385 00000 n
-0000468450 00000 n
-0000468515 00000 n
-0000468580 00000 n
-0000468644 00000 n
-0000468709 00000 n
-0000468774 00000 n
-0000468839 00000 n
-0000468904 00000 n
-0000468969 00000 n
-0000469034 00000 n
-0000469099 00000 n
-0000469164 00000 n
-0000469229 00000 n
-0000469294 00000 n
-0000469358 00000 n
-0000469423 00000 n
-0000469488 00000 n
-0000469553 00000 n
-0000469618 00000 n
-0000469683 00000 n
-0000469747 00000 n
-0000475632 00000 n
-0000472394 00000 n
-0000470001 00000 n
-0000472519 00000 n
-0000472583 00000 n
-0000472648 00000 n
-0000472713 00000 n
-0000472778 00000 n
-0000472843 00000 n
-0000472908 00000 n
-0000472973 00000 n
-0000473038 00000 n
-0000473103 00000 n
-0000473167 00000 n
-0000473232 00000 n
-0000473297 00000 n
-0000473362 00000 n
-0000473427 00000 n
-0000473492 00000 n
-0000473557 00000 n
-0000473622 00000 n
-0000473687 00000 n
-0000473752 00000 n
-0000473817 00000 n
-0000473882 00000 n
-0000473947 00000 n
-0000474011 00000 n
-0000474076 00000 n
-0000474141 00000 n
-0000474206 00000 n
-0000474271 00000 n
-0000474335 00000 n
-0000474400 00000 n
-0000474465 00000 n
-0000474530 00000 n
-0000474595 00000 n
-0000474660 00000 n
-0000474725 00000 n
-0000474790 00000 n
-0000474855 00000 n
-0000474919 00000 n
-0000474984 00000 n
-0000475049 00000 n
-0000475114 00000 n
-0000475179 00000 n
-0000475244 00000 n
-0000475309 00000 n
-0000475374 00000 n
-0000475439 00000 n
-0000475504 00000 n
-0000475568 00000 n
-0000481571 00000 n
-0000477750 00000 n
-0000475809 00000 n
-0000477875 00000 n
-0000477939 00000 n
-0000478004 00000 n
-0000478069 00000 n
-0000478134 00000 n
-0000478199 00000 n
-0000478264 00000 n
-0000478329 00000 n
-0000478394 00000 n
-0000478459 00000 n
-0000478523 00000 n
-0000478588 00000 n
-0000478653 00000 n
-0000478718 00000 n
-0000478783 00000 n
-0000478848 00000 n
-0000478913 00000 n
-0000478978 00000 n
-0000479043 00000 n
-0000479107 00000 n
-0000479172 00000 n
-0000479237 00000 n
-0000479302 00000 n
-0000479367 00000 n
-0000479432 00000 n
-0000479497 00000 n
-0000479562 00000 n
-0000479627 00000 n
-0000479690 00000 n
-0000479755 00000 n
-0000479820 00000 n
-0000479885 00000 n
-0000479950 00000 n
-0000480015 00000 n
-0000480080 00000 n
-0000480145 00000 n
-0000480210 00000 n
-0000480275 00000 n
-0000480340 00000 n
-0000480405 00000 n
-0000480470 00000 n
-0000480535 00000 n
-0000480600 00000 n
-0000480665 00000 n
-0000480729 00000 n
-0000480794 00000 n
-0000480859 00000 n
-0000480924 00000 n
-0000480989 00000 n
-0000481054 00000 n
-0000481119 00000 n
-0000481184 00000 n
-0000481249 00000 n
-0000481313 00000 n
-0000481378 00000 n
-0000481443 00000 n
-0000481507 00000 n
-0000487343 00000 n
-0000483718 00000 n
-0000481735 00000 n
-0000483843 00000 n
-0000483907 00000 n
-0000483972 00000 n
-0000484037 00000 n
-0000484102 00000 n
-0000484167 00000 n
-0000484232 00000 n
-0000484297 00000 n
-0000484362 00000 n
-0000484427 00000 n
-0000484491 00000 n
-0000484556 00000 n
-0000484621 00000 n
-0000484686 00000 n
-0000484751 00000 n
-0000484816 00000 n
-0000484881 00000 n
-0000484945 00000 n
-0000485010 00000 n
-0000485075 00000 n
-0000485140 00000 n
-0000485205 00000 n
-0000485270 00000 n
-0000485335 00000 n
-0000485400 00000 n
-0000485465 00000 n
-0000485530 00000 n
-0000485595 00000 n
-0000485659 00000 n
-0000485724 00000 n
-0000485789 00000 n
-0000485853 00000 n
-0000485918 00000 n
-0000485983 00000 n
-0000486048 00000 n
-0000486113 00000 n
-0000486178 00000 n
-0000486243 00000 n
-0000486308 00000 n
-0000486373 00000 n
-0000486437 00000 n
-0000486502 00000 n
-0000486567 00000 n
-0000486632 00000 n
-0000486697 00000 n
-0000486761 00000 n
-0000486826 00000 n
-0000486891 00000 n
-0000486956 00000 n
-0000487021 00000 n
-0000487086 00000 n
-0000487151 00000 n
-0000487216 00000 n
-0000487280 00000 n
-0000493254 00000 n
-0000489303 00000 n
-0000487507 00000 n
-0000489428 00000 n
-0000489492 00000 n
-0000489557 00000 n
-0000489622 00000 n
-0000489687 00000 n
-0000489752 00000 n
-0000489817 00000 n
-0000489882 00000 n
-0000489947 00000 n
-0000490012 00000 n
-0000490077 00000 n
-0000490142 00000 n
-0000490205 00000 n
-0000490270 00000 n
-0000490335 00000 n
-0000490400 00000 n
-0000490465 00000 n
-0000490530 00000 n
-0000490595 00000 n
-0000490660 00000 n
-0000490725 00000 n
-0000490790 00000 n
-0000490855 00000 n
-0000490920 00000 n
-0000490985 00000 n
-0000491050 00000 n
-0000491115 00000 n
-0000491180 00000 n
-0000491245 00000 n
-0000491310 00000 n
-0000491375 00000 n
-0000491439 00000 n
-0000491504 00000 n
-0000491569 00000 n
-0000491634 00000 n
-0000491699 00000 n
-0000491764 00000 n
-0000491829 00000 n
-0000491894 00000 n
-0000491959 00000 n
-0000492024 00000 n
-0000492089 00000 n
-0000492154 00000 n
-0000492219 00000 n
-0000492284 00000 n
-0000492348 00000 n
-0000492413 00000 n
-0000492478 00000 n
-0000492543 00000 n
-0000492608 00000 n
-0000492673 00000 n
-0000492738 00000 n
-0000492803 00000 n
-0000492868 00000 n
-0000492931 00000 n
-0000492996 00000 n
-0000493061 00000 n
-0000493126 00000 n
-0000493190 00000 n
-0000498837 00000 n
-0000495731 00000 n
-0000493418 00000 n
-0000495856 00000 n
-0000495920 00000 n
-0000495985 00000 n
-0000496050 00000 n
-0000496115 00000 n
-0000496180 00000 n
-0000496245 00000 n
-0000496310 00000 n
-0000496375 00000 n
-0000496440 00000 n
-0000496505 00000 n
-0000496570 00000 n
-0000496635 00000 n
-0000496700 00000 n
-0000496765 00000 n
-0000496829 00000 n
-0000496894 00000 n
-0000496959 00000 n
-0000497024 00000 n
-0000497089 00000 n
-0000497153 00000 n
-0000497218 00000 n
-0000497283 00000 n
-0000497348 00000 n
-0000497413 00000 n
-0000497478 00000 n
-0000497543 00000 n
-0000497608 00000 n
-0000497673 00000 n
-0000497737 00000 n
-0000497802 00000 n
-0000497867 00000 n
-0000497932 00000 n
-0000497997 00000 n
-0000498062 00000 n
-0000498127 00000 n
-0000498191 00000 n
-0000498256 00000 n
-0000498321 00000 n
-0000498386 00000 n
-0000498451 00000 n
-0000498516 00000 n
-0000498581 00000 n
-0000498646 00000 n
-0000498711 00000 n
-0000498775 00000 n
-0000504540 00000 n
-0000501239 00000 n
+0000012707 00000 n
+0000012769 00000 n
+0001886521 00000 n
+0001888128 00000 n
+0001890109 00000 n
+0001886342 00000 n
+0001888838 00000 n
+0001885805 00000 n
+0001887232 00000 n
+0001888483 00000 n
+0001887588 00000 n
+0001889193 00000 n
+0001886163 00000 n
+0001887950 00000 n
+0001888660 00000 n
+0001885629 00000 n
+0000012891 00000 n
+0001888306 00000 n
+0000012954 00000 n
+0000013016 00000 n
+0000013079 00000 n
+0000013142 00000 n
+0000013205 00000 n
+0000013268 00000 n
+0000013331 00000 n
+0000013394 00000 n
+0000013457 00000 n
+0000013520 00000 n
+0000013583 00000 n
+0000013646 00000 n
+0000013709 00000 n
+0000013772 00000 n
+0001890291 00000 n
+0001887054 00000 n
+0001891363 00000 n
+0000019184 00000 n
+0000016238 00000 n
+0000014166 00000 n
+0000016359 00000 n
+0000016421 00000 n
+0000016484 00000 n
+0000016547 00000 n
+0000016610 00000 n
+0000016673 00000 n
+0000016736 00000 n
+0000016799 00000 n
+0000016862 00000 n
+0000016925 00000 n
+0000016987 00000 n
+0000017050 00000 n
+0000017113 00000 n
+0000017176 00000 n
+0000017239 00000 n
+0000017302 00000 n
+0000017365 00000 n
+0000017428 00000 n
+0000017491 00000 n
+0000017554 00000 n
+0000017616 00000 n
+0000017679 00000 n
+0000017742 00000 n
+0000017805 00000 n
+0000017868 00000 n
+0000017930 00000 n
+0000017993 00000 n
+0000018056 00000 n
+0000018119 00000 n
+0000018182 00000 n
+0000018245 00000 n
+0000018308 00000 n
+0000018371 00000 n
+0000018434 00000 n
+0000018495 00000 n
+0000018558 00000 n
+0000018621 00000 n
+0000018684 00000 n
+0000018747 00000 n
+0000018810 00000 n
+0000018873 00000 n
+0000018936 00000 n
+0000018999 00000 n
+0000019062 00000 n
+0000024635 00000 n
+0000021814 00000 n
+0000019347 00000 n
+0000021935 00000 n
+0000021997 00000 n
+0000022060 00000 n
+0000022123 00000 n
+0000022186 00000 n
+0000022249 00000 n
+0000022312 00000 n
+0001891187 00000 n
+0000022375 00000 n
+0000022438 00000 n
+0000022500 00000 n
+0000022563 00000 n
+0000022625 00000 n
+0000022688 00000 n
+0000022751 00000 n
+0000022814 00000 n
+0000022877 00000 n
+0000022940 00000 n
+0000023003 00000 n
+0000023066 00000 n
+0000023129 00000 n
+0000023192 00000 n
+0000023254 00000 n
+0000023317 00000 n
+0000023379 00000 n
+0000023442 00000 n
+0000023505 00000 n
+0000023568 00000 n
+0000023631 00000 n
+0000023694 00000 n
+0000023757 00000 n
+0000023820 00000 n
+0000023883 00000 n
+0000023944 00000 n
+0000024007 00000 n
+0000024070 00000 n
+0000024133 00000 n
+0000024196 00000 n
+0000024259 00000 n
+0000024322 00000 n
+0000024385 00000 n
+0000024448 00000 n
+0000024511 00000 n
+0000024573 00000 n
+0000029060 00000 n
+0000026681 00000 n
+0000024837 00000 n
+0000026802 00000 n
+0000026864 00000 n
+0000026927 00000 n
+0000026990 00000 n
+0000027053 00000 n
+0000027116 00000 n
+0000027179 00000 n
+0000027242 00000 n
+0000027305 00000 n
+0000027368 00000 n
+0000027430 00000 n
+0000027493 00000 n
+0000027556 00000 n
+0001887766 00000 n
+0001887410 00000 n
+0000027680 00000 n
+0000027743 00000 n
+0000027805 00000 n
+0000027868 00000 n
+0000027931 00000 n
+0000027994 00000 n
+0000028057 00000 n
+0000028120 00000 n
+0000028183 00000 n
+0000028246 00000 n
+0000028309 00000 n
+0000028371 00000 n
+0000028434 00000 n
+0000028497 00000 n
+0000028560 00000 n
+0000028623 00000 n
+0000028686 00000 n
+0000028749 00000 n
+0000028873 00000 n
+0000028936 00000 n
+0000028998 00000 n
+0000034571 00000 n
+0000031870 00000 n
+0000029262 00000 n
+0000031991 00000 n
+0000032053 00000 n
+0000032116 00000 n
+0000032179 00000 n
+0000032242 00000 n
+0000032305 00000 n
+0000032368 00000 n
+0000032431 00000 n
+0000032494 00000 n
+0000032557 00000 n
+0000032619 00000 n
+0000032682 00000 n
+0000032745 00000 n
+0000032808 00000 n
+0000032871 00000 n
+0000032934 00000 n
+0000032997 00000 n
+0000033060 00000 n
+0000033123 00000 n
+0000033186 00000 n
+0000033249 00000 n
+0000033312 00000 n
+0000033375 00000 n
+0000033438 00000 n
+0000033500 00000 n
+0000033563 00000 n
+0000033626 00000 n
+0000033689 00000 n
+0000033752 00000 n
+0000033815 00000 n
+0000033878 00000 n
+0000033941 00000 n
+0000034004 00000 n
+0000034067 00000 n
+0000034130 00000 n
+0000034193 00000 n
+0000034256 00000 n
+0000034319 00000 n
+0000034382 00000 n
+0000034445 00000 n
+0000034508 00000 n
+0000040320 00000 n
+0000037558 00000 n
+0000034760 00000 n
+0000037679 00000 n
+0000037741 00000 n
+0000037804 00000 n
+0000037866 00000 n
+0000037929 00000 n
+0000037992 00000 n
+0000038055 00000 n
+0000038118 00000 n
+0000038181 00000 n
+0000038244 00000 n
+0000038307 00000 n
+0000038370 00000 n
+0000038433 00000 n
+0000038496 00000 n
+0000038559 00000 n
+0000038622 00000 n
+0000038685 00000 n
+0000038748 00000 n
+0000038811 00000 n
+0000038874 00000 n
+0000038936 00000 n
+0000038999 00000 n
+0000039062 00000 n
+0000039125 00000 n
+0000039188 00000 n
+0000039251 00000 n
+0000039314 00000 n
+0000039377 00000 n
+0000039440 00000 n
+0000039503 00000 n
+0000039565 00000 n
+0000039628 00000 n
+0000039691 00000 n
+0000039754 00000 n
+0000039817 00000 n
+0000039880 00000 n
+0000039943 00000 n
+0000040006 00000 n
+0000040069 00000 n
+0000040132 00000 n
+0000040195 00000 n
+0000040258 00000 n
+0000043183 00000 n
+0000046293 00000 n
+0000043017 00000 n
+0000040496 00000 n
+0000043339 00000 n
+0000043401 00000 n
+0000043464 00000 n
+0000043527 00000 n
+0000043590 00000 n
+0000043653 00000 n
+0000043716 00000 n
+0000043779 00000 n
+0000043841 00000 n
+0000043904 00000 n
+0000043967 00000 n
+0000044030 00000 n
+0000044093 00000 n
+0000044156 00000 n
+0000044219 00000 n
+0000044282 00000 n
+0000044345 00000 n
+0000044408 00000 n
+0000044471 00000 n
+0000044533 00000 n
+0000044596 00000 n
+0000044659 00000 n
+0000044722 00000 n
+0000044785 00000 n
+0000044848 00000 n
+0000044911 00000 n
+0000044974 00000 n
+0000045037 00000 n
+0000045099 00000 n
+0000045162 00000 n
+0000045225 00000 n
+0000045287 00000 n
+0000045350 00000 n
+0000045413 00000 n
+0000045476 00000 n
+0000045539 00000 n
+0000045602 00000 n
+0000045665 00000 n
+0000045728 00000 n
+0000045791 00000 n
+0001886877 00000 n
+0000045853 00000 n
+0000045916 00000 n
+0000045979 00000 n
+0000046042 00000 n
+0000046105 00000 n
+0000046168 00000 n
+0001886700 00000 n
+0000046231 00000 n
+0000043154 00000 n
+0000051957 00000 n
+0000049010 00000 n
+0000046534 00000 n
+0000049131 00000 n
+0000049193 00000 n
+0000049256 00000 n
+0000049317 00000 n
+0000049380 00000 n
+0000049443 00000 n
+0000049506 00000 n
+0000049567 00000 n
+0000049630 00000 n
+0000049693 00000 n
+0000049756 00000 n
+0000049819 00000 n
+0000049882 00000 n
+0000049945 00000 n
+0000050008 00000 n
+0000050071 00000 n
+0000050133 00000 n
+0000050196 00000 n
+0000050259 00000 n
+0000050322 00000 n
+0000050385 00000 n
+0000050448 00000 n
+0000050511 00000 n
+0000050574 00000 n
+0000050637 00000 n
+0000050700 00000 n
+0000050763 00000 n
+0000050826 00000 n
+0000050889 00000 n
+0000050952 00000 n
+0000051015 00000 n
+0000051078 00000 n
+0000051141 00000 n
+0000051204 00000 n
+0000051267 00000 n
+0000051330 00000 n
+0000051393 00000 n
+0000051456 00000 n
+0000051519 00000 n
+0000051581 00000 n
+0000051644 00000 n
+0000051707 00000 n
+0000051770 00000 n
+0000051833 00000 n
+0000051895 00000 n
+0000056300 00000 n
+0000054357 00000 n
+0000052146 00000 n
+0000054478 00000 n
+0000054540 00000 n
+0000054603 00000 n
+0000054665 00000 n
+0000054728 00000 n
+0000054791 00000 n
+0000054854 00000 n
+0000054917 00000 n
+0000054980 00000 n
+0000055043 00000 n
+0000055106 00000 n
+0000055169 00000 n
+0000055232 00000 n
+0000055295 00000 n
+0000055358 00000 n
+0000055421 00000 n
+0000055484 00000 n
+0000055547 00000 n
+0000055610 00000 n
+0000055673 00000 n
+0000055736 00000 n
+0000055860 00000 n
+0001885980 00000 n
+0000055923 00000 n
+0000055986 00000 n
+0000056049 00000 n
+0000056112 00000 n
+0000056175 00000 n
+0000056237 00000 n
+0000060755 00000 n
+0000059566 00000 n
+0000056515 00000 n
+0000059687 00000 n
+0000059749 00000 n
+0000059812 00000 n
+0000059874 00000 n
+0000059937 00000 n
+0000060000 00000 n
+0000060063 00000 n
+0000060126 00000 n
+0000060189 00000 n
+0000060252 00000 n
+0000060315 00000 n
+0000060378 00000 n
+0000060441 00000 n
+0000060504 00000 n
+0000060567 00000 n
+0000060629 00000 n
+0000060692 00000 n
+0000064774 00000 n
+0000063586 00000 n
+0000060931 00000 n
+0000063707 00000 n
+0000063769 00000 n
+0000063832 00000 n
+0000063895 00000 n
+0000063958 00000 n
+0000064021 00000 n
+0000064084 00000 n
+0000064147 00000 n
+0000064209 00000 n
+0000064272 00000 n
+0000064335 00000 n
+0000064398 00000 n
+0000064460 00000 n
+0000064523 00000 n
+0000064586 00000 n
+0000064649 00000 n
+0000064712 00000 n
+0001891517 00000 n
+0000069185 00000 n
+0000067556 00000 n
+0000064963 00000 n
+0000067677 00000 n
+0000067739 00000 n
+0000067802 00000 n
+0000067865 00000 n
+0000067928 00000 n
+0000067991 00000 n
+0000068054 00000 n
+0000068117 00000 n
+0000068180 00000 n
+0000068243 00000 n
+0000068306 00000 n
+0000068369 00000 n
+0000068432 00000 n
+0000068495 00000 n
+0000068558 00000 n
+0000068621 00000 n
+0000068684 00000 n
+0000068747 00000 n
+0000068810 00000 n
+0000068873 00000 n
+0000068934 00000 n
+0000068997 00000 n
+0000069060 00000 n
+0000069123 00000 n
+0000073745 00000 n
+0000072306 00000 n
+0000069374 00000 n
+0000072427 00000 n
+0000072489 00000 n
+0000072552 00000 n
+0000072615 00000 n
+0000072678 00000 n
+0000072741 00000 n
+0000072804 00000 n
+0000072866 00000 n
+0000072929 00000 n
+0000072992 00000 n
+0000073055 00000 n
+0000073117 00000 n
+0000073180 00000 n
+0000073243 00000 n
+0000073306 00000 n
+0000073369 00000 n
+0000073432 00000 n
+0000073494 00000 n
+0000073557 00000 n
+0000073620 00000 n
+0000073683 00000 n
+0000078243 00000 n
+0000077054 00000 n
+0000073947 00000 n
+0000077175 00000 n
+0000077237 00000 n
+0001890653 00000 n
+0000077300 00000 n
+0001889740 00000 n
+0000077363 00000 n
+0000077426 00000 n
+0000077489 00000 n
+0000077552 00000 n
+0000077615 00000 n
+0001891007 00000 n
+0000077678 00000 n
+0000077740 00000 n
+0000077803 00000 n
+0000077866 00000 n
+0000077928 00000 n
+0000077991 00000 n
+0000078054 00000 n
+0000078117 00000 n
+0000078180 00000 n
+0000082950 00000 n
+0000081762 00000 n
+0000078471 00000 n
+0000081883 00000 n
+0000081945 00000 n
+0000082008 00000 n
+0000082071 00000 n
+0000082134 00000 n
+0000082197 00000 n
+0000082260 00000 n
+0000082323 00000 n
+0000082386 00000 n
+0000082449 00000 n
+0000082512 00000 n
+0000082575 00000 n
+0000082638 00000 n
+0000082699 00000 n
+0000082762 00000 n
+0000082824 00000 n
+0000082887 00000 n
+0000088123 00000 n
+0000086492 00000 n
+0000083139 00000 n
+0000086613 00000 n
+0000086675 00000 n
+0000086738 00000 n
+0000086801 00000 n
+0000086864 00000 n
+0000086927 00000 n
+0000086990 00000 n
+0000087053 00000 n
+0000087116 00000 n
+0000087179 00000 n
+0000087242 00000 n
+0000087305 00000 n
+0000087368 00000 n
+0000087431 00000 n
+0000087494 00000 n
+0000087557 00000 n
+0000087620 00000 n
+0000087683 00000 n
+0000087746 00000 n
+0000087809 00000 n
+0000087872 00000 n
+0000087935 00000 n
+0000087998 00000 n
+0000088061 00000 n
+0000092772 00000 n
+0000091207 00000 n
+0000088325 00000 n
+0000091328 00000 n
+0000091390 00000 n
+0000091452 00000 n
+0000091515 00000 n
+0000091578 00000 n
+0000091641 00000 n
+0000091704 00000 n
+0000091767 00000 n
+0000091830 00000 n
+0000091893 00000 n
+0000091956 00000 n
+0000092019 00000 n
+0000092082 00000 n
+0000092145 00000 n
+0000092208 00000 n
+0000092271 00000 n
+0000092334 00000 n
+0000092396 00000 n
+0000092459 00000 n
+0000092522 00000 n
+0000092585 00000 n
+0001885453 00000 n
+0000092648 00000 n
+0000092710 00000 n
+0000096097 00000 n
+0000097004 00000 n
+0000095931 00000 n
+0000092974 00000 n
+0000096252 00000 n
+0000096314 00000 n
+0000096376 00000 n
+0000096439 00000 n
+0000096502 00000 n
+0000096565 00000 n
+0000096628 00000 n
+0000096691 00000 n
+0000096753 00000 n
+0000096816 00000 n
+0000096879 00000 n
+0000096942 00000 n
+0001889016 00000 n
+0001890472 00000 n
+0001890830 00000 n
+0000096068 00000 n
+0000101714 00000 n
+0000099584 00000 n
+0000097297 00000 n
+0000099705 00000 n
+0000099767 00000 n
+0000099830 00000 n
+0000099893 00000 n
+0000099956 00000 n
+0000100019 00000 n
+0000100082 00000 n
+0000100145 00000 n
+0000100208 00000 n
+0000100271 00000 n
+0000100334 00000 n
+0000100397 00000 n
+0000100460 00000 n
+0000100522 00000 n
+0000100585 00000 n
+0000100648 00000 n
+0000100711 00000 n
+0000100774 00000 n
+0000100837 00000 n
+0000100900 00000 n
+0000100963 00000 n
+0000101026 00000 n
+0000101087 00000 n
+0000101150 00000 n
+0000101213 00000 n
+0000101276 00000 n
+0000101339 00000 n
+0000101402 00000 n
+0000101465 00000 n
+0000101528 00000 n
+0000101591 00000 n
+0000105524 00000 n
+0000106685 00000 n
+0000105358 00000 n
+0000101929 00000 n
+0000105680 00000 n
+0001889370 00000 n
+0000105742 00000 n
+0000105805 00000 n
+0000105867 00000 n
+0000105930 00000 n
+0000105993 00000 n
+0000106056 00000 n
+0000106119 00000 n
+0000106182 00000 n
+0000106245 00000 n
+0000106308 00000 n
+0000106371 00000 n
+0000106433 00000 n
+0000106496 00000 n
+0000106559 00000 n
+0000106622 00000 n
+0000105495 00000 n
+0000112393 00000 n
+0000109761 00000 n
+0000106978 00000 n
+0000109882 00000 n
+0000109944 00000 n
+0000110007 00000 n
+0000110070 00000 n
+0000110132 00000 n
+0000110195 00000 n
+0000110258 00000 n
+0000110321 00000 n
+0000110384 00000 n
+0000110447 00000 n
+0000110509 00000 n
+0000110572 00000 n
+0000110635 00000 n
+0000110698 00000 n
+0000110761 00000 n
+0000110824 00000 n
+0000110887 00000 n
+0000110950 00000 n
+0000111013 00000 n
+0000111074 00000 n
+0000111137 00000 n
+0000111200 00000 n
+0000111263 00000 n
+0000111326 00000 n
+0000111389 00000 n
+0000111452 00000 n
+0000111515 00000 n
+0000111578 00000 n
+0000111641 00000 n
+0000111704 00000 n
+0000111767 00000 n
+0000111829 00000 n
+0000111892 00000 n
+0000111955 00000 n
+0000112018 00000 n
+0000112081 00000 n
+0000112144 00000 n
+0000112207 00000 n
+0000112270 00000 n
+0000112332 00000 n
+0001891671 00000 n
+0000118038 00000 n
+0000115088 00000 n
+0000112569 00000 n
+0000115209 00000 n
+0000115271 00000 n
+0000115334 00000 n
+0000115397 00000 n
+0000115460 00000 n
+0000115523 00000 n
+0000115586 00000 n
+0000115649 00000 n
+0000115712 00000 n
+0000115775 00000 n
+0000115837 00000 n
+0000115900 00000 n
+0000115963 00000 n
+0000116026 00000 n
+0000116089 00000 n
+0000116152 00000 n
+0000116215 00000 n
+0000116278 00000 n
+0000116341 00000 n
+0000116404 00000 n
+0000116466 00000 n
+0000116529 00000 n
+0000116592 00000 n
+0000116655 00000 n
+0000116718 00000 n
+0000116781 00000 n
+0000116844 00000 n
+0000116907 00000 n
+0000116970 00000 n
+0000117033 00000 n
+0000117096 00000 n
+0000117159 00000 n
+0000117222 00000 n
+0000117285 00000 n
+0000117348 00000 n
+0000117411 00000 n
+0000117474 00000 n
+0000117537 00000 n
+0000117600 00000 n
+0000117662 00000 n
+0000117725 00000 n
+0000117788 00000 n
+0000117851 00000 n
+0000117914 00000 n
+0000117976 00000 n
+0000123699 00000 n
+0000121000 00000 n
+0000118214 00000 n
+0000121121 00000 n
+0000121183 00000 n
+0000121246 00000 n
+0000121309 00000 n
+0000121372 00000 n
+0000121435 00000 n
+0000121498 00000 n
+0000121561 00000 n
+0000121624 00000 n
+0000121687 00000 n
+0000121749 00000 n
+0000121812 00000 n
+0000121875 00000 n
+0000121938 00000 n
+0000122001 00000 n
+0000122064 00000 n
+0000122127 00000 n
+0000122190 00000 n
+0000122253 00000 n
+0000122316 00000 n
+0000122379 00000 n
+0000122442 00000 n
+0000122505 00000 n
+0000122568 00000 n
+0000122631 00000 n
+0000122694 00000 n
+0000122757 00000 n
+0000122819 00000 n
+0000122882 00000 n
+0000122945 00000 n
+0000123008 00000 n
+0000123071 00000 n
+0000123134 00000 n
+0000123197 00000 n
+0000123260 00000 n
+0000123323 00000 n
+0000123386 00000 n
+0000123449 00000 n
+0000123512 00000 n
+0000123575 00000 n
+0000123637 00000 n
+0000129158 00000 n
+0000126329 00000 n
+0000123888 00000 n
+0000126450 00000 n
+0000126512 00000 n
+0000126575 00000 n
+0000126638 00000 n
+0000126701 00000 n
+0000126764 00000 n
+0000126826 00000 n
+0000126889 00000 n
+0000126952 00000 n
+0000127015 00000 n
+0000127078 00000 n
+0000127141 00000 n
+0000127204 00000 n
+0000127267 00000 n
+0000127330 00000 n
+0000127393 00000 n
+0000127456 00000 n
+0000127519 00000 n
+0000127582 00000 n
+0000127644 00000 n
+0000127707 00000 n
+0000127770 00000 n
+0000127833 00000 n
+0000127896 00000 n
+0000127959 00000 n
+0000128022 00000 n
+0000128085 00000 n
+0000128148 00000 n
+0000128210 00000 n
+0000128273 00000 n
+0000128336 00000 n
+0000128459 00000 n
+0000128522 00000 n
+0000128585 00000 n
+0000128649 00000 n
+0000128713 00000 n
+0000128776 00000 n
+0000128840 00000 n
+0000128904 00000 n
+0000128968 00000 n
+0000129032 00000 n
+0000129095 00000 n
+0000134378 00000 n
+0000131470 00000 n
+0000129347 00000 n
+0000131594 00000 n
+0000131658 00000 n
+0000131723 00000 n
+0000131788 00000 n
+0000131853 00000 n
+0000131918 00000 n
+0000131983 00000 n
+0000132048 00000 n
+0000132113 00000 n
+0000132178 00000 n
+0000132242 00000 n
+0000132307 00000 n
+0000132372 00000 n
+0000132437 00000 n
+0000132502 00000 n
+0000132565 00000 n
+0000132630 00000 n
+0000132695 00000 n
+0000132760 00000 n
+0000132825 00000 n
+0000132890 00000 n
+0000132955 00000 n
+0000133020 00000 n
+0000133085 00000 n
+0000133149 00000 n
+0000133214 00000 n
+0000133279 00000 n
+0000133344 00000 n
+0000133409 00000 n
+0000133474 00000 n
+0000133539 00000 n
+0000133604 00000 n
+0000133669 00000 n
+0000133733 00000 n
+0000133798 00000 n
+0000133863 00000 n
+0000133928 00000 n
+0000134055 00000 n
+0000134119 00000 n
+0000134184 00000 n
+0000134249 00000 n
+0000134314 00000 n
+0000139164 00000 n
+0000137419 00000 n
+0000134568 00000 n
+0000137543 00000 n
+0000137607 00000 n
+0000137672 00000 n
+0000137737 00000 n
+0000137802 00000 n
+0000137867 00000 n
+0000137932 00000 n
+0000137997 00000 n
+0000138062 00000 n
+0000138127 00000 n
+0000138192 00000 n
+0000138257 00000 n
+0000138322 00000 n
+0000138387 00000 n
+0000138452 00000 n
+0000138517 00000 n
+0000138582 00000 n
+0000138647 00000 n
+0000138712 00000 n
+0000138777 00000 n
+0000138842 00000 n
+0000138907 00000 n
+0000138971 00000 n
+0000139036 00000 n
+0000139100 00000 n
+0000143290 00000 n
+0000141999 00000 n
+0000139341 00000 n
+0000142123 00000 n
+0000142187 00000 n
+0000142252 00000 n
+0000142317 00000 n
+0000142382 00000 n
+0000142447 00000 n
+0000142512 00000 n
+0000142576 00000 n
+0000142641 00000 n
+0000142706 00000 n
+0000142771 00000 n
+0000142836 00000 n
+0000142901 00000 n
+0000142966 00000 n
+0000143030 00000 n
+0000143095 00000 n
+0000143160 00000 n
+0000143225 00000 n
+0000148777 00000 n
+0000146255 00000 n
+0000143467 00000 n
+0000146379 00000 n
+0000146443 00000 n
+0000146508 00000 n
+0000146573 00000 n
+0000146638 00000 n
+0000146703 00000 n
+0000146768 00000 n
+0000146833 00000 n
+0000146898 00000 n
+0000146963 00000 n
+0000147028 00000 n
+0000147093 00000 n
+0000147158 00000 n
+0000147222 00000 n
+0000147287 00000 n
+0000147352 00000 n
+0000147417 00000 n
+0000147482 00000 n
+0000147547 00000 n
+0000147612 00000 n
+0000147677 00000 n
+0000147742 00000 n
+0000147807 00000 n
+0000147871 00000 n
+0000147936 00000 n
+0000148001 00000 n
+0000148066 00000 n
+0000148131 00000 n
+0000148196 00000 n
+0000148261 00000 n
+0000148326 00000 n
+0000148391 00000 n
+0000148454 00000 n
+0000148519 00000 n
+0000148584 00000 n
+0000148649 00000 n
+0000148713 00000 n
+0000154759 00000 n
+0000151329 00000 n
+0000148954 00000 n
+0000151453 00000 n
+0000151517 00000 n
+0000151582 00000 n
+0000151647 00000 n
+0000151712 00000 n
+0000151777 00000 n
+0000151842 00000 n
+0000151907 00000 n
+0000151972 00000 n
+0000152037 00000 n
+0000152101 00000 n
+0000152166 00000 n
+0000152231 00000 n
+0000152296 00000 n
+0000152361 00000 n
+0000152425 00000 n
+0000152490 00000 n
+0000152555 00000 n
+0000152620 00000 n
+0000152685 00000 n
+0000152750 00000 n
+0000152815 00000 n
+0000152879 00000 n
+0000152944 00000 n
+0000153009 00000 n
+0000153074 00000 n
+0000153139 00000 n
+0000153204 00000 n
+0000153269 00000 n
+0000153334 00000 n
+0000153398 00000 n
+0000153463 00000 n
+0000153528 00000 n
+0000153593 00000 n
+0000153658 00000 n
+0000153723 00000 n
+0000153788 00000 n
+0000153853 00000 n
+0000153918 00000 n
+0000153982 00000 n
+0000154047 00000 n
+0000154112 00000 n
+0000154177 00000 n
+0000154242 00000 n
+0000154307 00000 n
+0000154372 00000 n
+0000154437 00000 n
+0000154502 00000 n
+0000154566 00000 n
+0000154631 00000 n
+0000154695 00000 n
+0000160913 00000 n
+0000156963 00000 n
+0000154923 00000 n
+0000157087 00000 n
+0000157151 00000 n
+0000157216 00000 n
+0000157281 00000 n
+0000157346 00000 n
+0000157411 00000 n
+0000157476 00000 n
+0000157541 00000 n
+0000157606 00000 n
+0000157671 00000 n
+0000157735 00000 n
+0000157800 00000 n
+0000157865 00000 n
+0000157930 00000 n
+0000157995 00000 n
+0000158060 00000 n
+0000158125 00000 n
+0000158190 00000 n
+0000158255 00000 n
+0000158319 00000 n
+0000158384 00000 n
+0000158449 00000 n
+0000158514 00000 n
+0000158579 00000 n
+0000158644 00000 n
+0000158709 00000 n
+0000158774 00000 n
+0000158839 00000 n
+0000158902 00000 n
+0000158967 00000 n
+0000159032 00000 n
+0000159097 00000 n
+0000159162 00000 n
+0000159227 00000 n
+0000159292 00000 n
+0000159357 00000 n
+0000159422 00000 n
+0000159487 00000 n
+0000159552 00000 n
+0000159617 00000 n
+0000159682 00000 n
+0000159747 00000 n
+0000159811 00000 n
+0000159876 00000 n
+0000159941 00000 n
+0000160006 00000 n
+0000160071 00000 n
+0000160136 00000 n
+0000160201 00000 n
+0000160266 00000 n
+0000160331 00000 n
+0000160395 00000 n
+0000160460 00000 n
+0000160525 00000 n
+0000160590 00000 n
+0000160655 00000 n
+0000160720 00000 n
+0000160785 00000 n
+0000160849 00000 n
+0000166905 00000 n
+0000163278 00000 n
+0000161077 00000 n
+0000163403 00000 n
+0000163467 00000 n
+0000163532 00000 n
+0000163597 00000 n
+0000163662 00000 n
+0000163727 00000 n
+0000163792 00000 n
+0000163857 00000 n
+0000163922 00000 n
+0000163987 00000 n
+0000164051 00000 n
+0000164116 00000 n
+0000164181 00000 n
+0000164246 00000 n
+0000164311 00000 n
+0000164376 00000 n
+0000164441 00000 n
+0000164506 00000 n
+0000164571 00000 n
+0000164635 00000 n
+0000164700 00000 n
+0000164765 00000 n
+0000164830 00000 n
+0000164895 00000 n
+0000164960 00000 n
+0000165025 00000 n
+0000165090 00000 n
+0000165155 00000 n
+0000165220 00000 n
+0000165285 00000 n
+0000165350 00000 n
+0000165414 00000 n
+0000165479 00000 n
+0000165544 00000 n
+0000165609 00000 n
+0000165674 00000 n
+0000165739 00000 n
+0000165804 00000 n
+0000165869 00000 n
+0000165934 00000 n
+0000165999 00000 n
+0000166064 00000 n
+0000166129 00000 n
+0000166193 00000 n
+0000166258 00000 n
+0000166323 00000 n
+0000166388 00000 n
+0000166453 00000 n
+0000166518 00000 n
+0000166583 00000 n
+0000166647 00000 n
+0000166712 00000 n
+0000166777 00000 n
+0000166841 00000 n
+0001891831 00000 n
+0000172842 00000 n
+0000168826 00000 n
+0000167082 00000 n
+0000168951 00000 n
+0000169015 00000 n
+0000169080 00000 n
+0000169145 00000 n
+0000169210 00000 n
+0000169275 00000 n
+0000169340 00000 n
+0000169405 00000 n
+0000169470 00000 n
+0000169535 00000 n
+0000169600 00000 n
+0000169664 00000 n
+0000169729 00000 n
+0000169794 00000 n
+0000169859 00000 n
+0000169924 00000 n
+0000169989 00000 n
+0000170054 00000 n
+0000170119 00000 n
+0000170184 00000 n
+0000170248 00000 n
+0000170313 00000 n
+0000170378 00000 n
+0000170443 00000 n
+0000170508 00000 n
+0000170573 00000 n
+0000170638 00000 n
+0000170703 00000 n
+0000170768 00000 n
+0000170832 00000 n
+0000170897 00000 n
+0000170962 00000 n
+0000171027 00000 n
+0000171092 00000 n
+0000171157 00000 n
+0000171222 00000 n
+0000171287 00000 n
+0000171352 00000 n
+0000171416 00000 n
+0000171481 00000 n
+0000171546 00000 n
+0000171611 00000 n
+0000171676 00000 n
+0000171741 00000 n
+0000171806 00000 n
+0000171871 00000 n
+0000171936 00000 n
+0000171999 00000 n
+0000172064 00000 n
+0000172129 00000 n
+0000172194 00000 n
+0000172259 00000 n
+0000172324 00000 n
+0000172389 00000 n
+0000172454 00000 n
+0000172519 00000 n
+0000172584 00000 n
+0000172649 00000 n
+0000172714 00000 n
+0000172778 00000 n
+0000178553 00000 n
+0000174797 00000 n
+0000172993 00000 n
+0000174922 00000 n
+0000174986 00000 n
+0000175051 00000 n
+0000175116 00000 n
+0000175181 00000 n
+0000175246 00000 n
+0000175311 00000 n
+0000175376 00000 n
+0000175441 00000 n
+0000175506 00000 n
+0000175570 00000 n
+0000175635 00000 n
+0000175700 00000 n
+0000175765 00000 n
+0000175830 00000 n
+0000175895 00000 n
+0000175960 00000 n
+0000176025 00000 n
+0000176090 00000 n
+0000176154 00000 n
+0000176219 00000 n
+0000176284 00000 n
+0000176349 00000 n
+0000176414 00000 n
+0000176479 00000 n
+0000176544 00000 n
+0000176609 00000 n
+0000176674 00000 n
+0000176737 00000 n
+0000176802 00000 n
+0000176867 00000 n
+0000176932 00000 n
+0000176997 00000 n
+0000177062 00000 n
+0000177127 00000 n
+0000177192 00000 n
+0000177257 00000 n
+0000177321 00000 n
+0000177386 00000 n
+0000177451 00000 n
+0000177515 00000 n
+0000177580 00000 n
+0000177645 00000 n
+0000177710 00000 n
+0000177775 00000 n
+0000177840 00000 n
+0000177905 00000 n
+0000177970 00000 n
+0000178035 00000 n
+0000178099 00000 n
+0000178164 00000 n
+0000178229 00000 n
+0000178294 00000 n
+0000178359 00000 n
+0000178424 00000 n
+0000178489 00000 n
+0000184012 00000 n
+0000181096 00000 n
+0000178730 00000 n
+0000181221 00000 n
+0000181285 00000 n
+0000181350 00000 n
+0000181415 00000 n
+0000181480 00000 n
+0000181545 00000 n
+0000181609 00000 n
+0000181674 00000 n
+0000181739 00000 n
+0000181804 00000 n
+0000181869 00000 n
+0000181934 00000 n
+0000181999 00000 n
+0000182063 00000 n
+0000182128 00000 n
+0000182193 00000 n
+0000182258 00000 n
+0000182323 00000 n
+0000182388 00000 n
+0000182453 00000 n
+0000182518 00000 n
+0000182583 00000 n
+0000182648 00000 n
+0000182713 00000 n
+0000182778 00000 n
+0000182843 00000 n
+0000182908 00000 n
+0000182973 00000 n
+0000183038 00000 n
+0000183103 00000 n
+0000183168 00000 n
+0000183233 00000 n
+0000183298 00000 n
+0000183363 00000 n
+0000183428 00000 n
+0000183493 00000 n
+0000183558 00000 n
+0000183623 00000 n
+0000183688 00000 n
+0000183753 00000 n
+0000183817 00000 n
+0000183882 00000 n
+0000183947 00000 n
+0000189738 00000 n
+0000186240 00000 n
+0000184189 00000 n
+0000186365 00000 n
+0000186429 00000 n
+0000186493 00000 n
+0000186558 00000 n
+0000186623 00000 n
+0000186688 00000 n
+0000186752 00000 n
+0000186817 00000 n
+0000186882 00000 n
+0000186947 00000 n
+0000187012 00000 n
+0000187077 00000 n
+0000187142 00000 n
+0000187207 00000 n
+0000187272 00000 n
+0000187337 00000 n
+0000187402 00000 n
+0000187467 00000 n
+0000187532 00000 n
+0000187597 00000 n
+0000187662 00000 n
+0000187727 00000 n
+0000187792 00000 n
+0000187857 00000 n
+0000187922 00000 n
+0000187987 00000 n
+0000188052 00000 n
+0000188117 00000 n
+0000188182 00000 n
+0000188247 00000 n
+0000188312 00000 n
+0000188376 00000 n
+0000188441 00000 n
+0000188506 00000 n
+0000188571 00000 n
+0000188636 00000 n
+0000188701 00000 n
+0000188766 00000 n
+0000188831 00000 n
+0000188896 00000 n
+0000188961 00000 n
+0000189026 00000 n
+0000189091 00000 n
+0000189156 00000 n
+0000189221 00000 n
+0000189286 00000 n
+0000189350 00000 n
+0000189415 00000 n
+0000189480 00000 n
+0000189545 00000 n
+0000189610 00000 n
+0000189674 00000 n
+0000194278 00000 n
+0000192467 00000 n
+0000189902 00000 n
+0000192592 00000 n
+0000192656 00000 n
+0000192721 00000 n
+0000192786 00000 n
+0000192851 00000 n
+0000192916 00000 n
+0000192981 00000 n
+0000193046 00000 n
+0000193111 00000 n
+0000193176 00000 n
+0000193241 00000 n
+0000193306 00000 n
+0000193433 00000 n
+0000193498 00000 n
+0000193563 00000 n
+0000193628 00000 n
+0000193693 00000 n
+0000193758 00000 n
+0000193823 00000 n
+0000193888 00000 n
+0000193953 00000 n
+0000194018 00000 n
+0000194083 00000 n
+0000194148 00000 n
+0000194213 00000 n
+0000199756 00000 n
+0000196646 00000 n
+0000194494 00000 n
+0000196771 00000 n
+0000196835 00000 n
+0000196900 00000 n
+0000196965 00000 n
+0000197030 00000 n
+0000197095 00000 n
+0000197160 00000 n
+0000197225 00000 n
+0000197290 00000 n
+0000197355 00000 n
+0000197420 00000 n
+0000197485 00000 n
+0000197550 00000 n
+0000197615 00000 n
+0000197680 00000 n
+0000197744 00000 n
+0000197809 00000 n
+0000197874 00000 n
+0000197939 00000 n
+0000198004 00000 n
+0000198069 00000 n
+0000198134 00000 n
+0000198199 00000 n
+0000198264 00000 n
+0000198329 00000 n
+0000198394 00000 n
+0000198459 00000 n
+0000198524 00000 n
+0000198589 00000 n
+0000198654 00000 n
+0000198719 00000 n
+0000198784 00000 n
+0000198847 00000 n
+0000198912 00000 n
+0000198977 00000 n
+0000199042 00000 n
+0000199107 00000 n
+0000199172 00000 n
+0000199237 00000 n
+0000199302 00000 n
+0000199367 00000 n
+0000199431 00000 n
+0000199496 00000 n
+0000199561 00000 n
+0000199626 00000 n
+0000199691 00000 n
+0000205788 00000 n
+0000201772 00000 n
+0000199946 00000 n
+0000201897 00000 n
+0000201961 00000 n
+0000202026 00000 n
+0000202091 00000 n
+0000202156 00000 n
+0000202221 00000 n
+0000202286 00000 n
+0000202351 00000 n
+0000202415 00000 n
+0000202480 00000 n
+0000202545 00000 n
+0000202610 00000 n
+0000202675 00000 n
+0000202740 00000 n
+0000202805 00000 n
+0000202870 00000 n
+0000202935 00000 n
+0000202999 00000 n
+0000203064 00000 n
+0000203129 00000 n
+0000203194 00000 n
+0000203259 00000 n
+0000203324 00000 n
+0000203389 00000 n
+0000203454 00000 n
+0000203519 00000 n
+0000203584 00000 n
+0000203648 00000 n
+0000203713 00000 n
+0000203778 00000 n
+0000203843 00000 n
+0000203908 00000 n
+0000203973 00000 n
+0000204038 00000 n
+0000204103 00000 n
+0000204168 00000 n
+0000204232 00000 n
+0000204297 00000 n
+0000204362 00000 n
+0000204427 00000 n
+0000204492 00000 n
+0000204557 00000 n
+0000204622 00000 n
+0000204687 00000 n
+0000204752 00000 n
+0000204817 00000 n
+0000204882 00000 n
+0000204946 00000 n
+0000205011 00000 n
+0000205076 00000 n
+0000205141 00000 n
+0000205206 00000 n
+0000205271 00000 n
+0000205336 00000 n
+0000205401 00000 n
+0000205466 00000 n
+0000205530 00000 n
+0000205595 00000 n
+0000205660 00000 n
+0000205724 00000 n
+0000211091 00000 n
+0000208957 00000 n
+0000205952 00000 n
+0000209082 00000 n
+0000209146 00000 n
+0000209211 00000 n
+0000209276 00000 n
+0000209341 00000 n
+0000209406 00000 n
+0000209471 00000 n
+0000209536 00000 n
+0000209601 00000 n
+0000209666 00000 n
+0000209730 00000 n
+0000209795 00000 n
+0000209860 00000 n
+0000209925 00000 n
+0000209990 00000 n
+0000210055 00000 n
+0000210119 00000 n
+0000210184 00000 n
+0000210249 00000 n
+0000210314 00000 n
+0000210379 00000 n
+0000210444 00000 n
+0000210509 00000 n
+0000210574 00000 n
+0000210639 00000 n
+0000210703 00000 n
+0000210768 00000 n
+0000210833 00000 n
+0000210898 00000 n
+0000210963 00000 n
+0000211027 00000 n
+0000216704 00000 n
+0000213335 00000 n
+0000211307 00000 n
+0000213460 00000 n
+0000213524 00000 n
+0000213589 00000 n
+0000213654 00000 n
+0000213719 00000 n
+0000213784 00000 n
+0000213849 00000 n
+0000213914 00000 n
+0000213979 00000 n
+0000214044 00000 n
+0000214109 00000 n
+0000214174 00000 n
+0000214239 00000 n
+0000214304 00000 n
+0000214369 00000 n
+0000214434 00000 n
+0000214498 00000 n
+0000214563 00000 n
+0000214628 00000 n
+0000214693 00000 n
+0000214758 00000 n
+0000214823 00000 n
+0000214888 00000 n
+0000214953 00000 n
+0000215018 00000 n
+0000215082 00000 n
+0000215147 00000 n
+0000215212 00000 n
+0000215277 00000 n
+0000215342 00000 n
+0000215407 00000 n
+0000215472 00000 n
+0000215537 00000 n
+0000215602 00000 n
+0000215667 00000 n
+0000215732 00000 n
+0000215797 00000 n
+0000215861 00000 n
+0000215926 00000 n
+0000215991 00000 n
+0000216056 00000 n
+0000216121 00000 n
+0000216186 00000 n
+0000216251 00000 n
+0000216316 00000 n
+0000216381 00000 n
+0000216446 00000 n
+0000216511 00000 n
+0000216576 00000 n
+0000216640 00000 n
+0000223841 00000 n
+0000221187 00000 n
+0000216881 00000 n
+0000221312 00000 n
+0000221376 00000 n
+0000221441 00000 n
+0000221506 00000 n
+0000221571 00000 n
+0000221636 00000 n
+0000221701 00000 n
+0000221766 00000 n
+0000221831 00000 n
+0000221896 00000 n
+0000221961 00000 n
+0000222026 00000 n
+0000222090 00000 n
+0000222155 00000 n
+0000222220 00000 n
+0000222285 00000 n
+0000222350 00000 n
+0000222415 00000 n
+0000222480 00000 n
+0000222545 00000 n
+0000222610 00000 n
+0000222675 00000 n
+0000222740 00000 n
+0000222805 00000 n
+0000222869 00000 n
+0000222934 00000 n
+0000222999 00000 n
+0000223064 00000 n
+0000223129 00000 n
+0000223194 00000 n
+0000223259 00000 n
+0000223324 00000 n
+0000223389 00000 n
+0000223453 00000 n
+0000223518 00000 n
+0000223583 00000 n
+0000223648 00000 n
+0000223713 00000 n
+0000223776 00000 n
+0001889553 00000 n
+0001891996 00000 n
+0000229506 00000 n
+0000226658 00000 n
+0000224045 00000 n
+0000226783 00000 n
+0000226847 00000 n
+0000226912 00000 n
+0000226977 00000 n
+0000227042 00000 n
+0000227107 00000 n
+0000227172 00000 n
+0000227237 00000 n
+0000227301 00000 n
+0000227366 00000 n
+0000227431 00000 n
+0000227496 00000 n
+0000227561 00000 n
+0000227625 00000 n
+0000227690 00000 n
+0000227755 00000 n
+0000227820 00000 n
+0000227885 00000 n
+0000227950 00000 n
+0000228015 00000 n
+0000228080 00000 n
+0000228145 00000 n
+0000228210 00000 n
+0000228275 00000 n
+0000228340 00000 n
+0000228405 00000 n
+0000228469 00000 n
+0000228534 00000 n
+0000228598 00000 n
+0000228663 00000 n
+0000228728 00000 n
+0000228793 00000 n
+0000228858 00000 n
+0000228923 00000 n
+0000228988 00000 n
+0000229053 00000 n
+0000229118 00000 n
+0000229183 00000 n
+0000229248 00000 n
+0000229313 00000 n
+0000229378 00000 n
+0000229442 00000 n
+0000235238 00000 n
+0000231742 00000 n
+0000229683 00000 n
+0000231867 00000 n
+0000231931 00000 n
+0000231996 00000 n
+0000232061 00000 n
+0000232126 00000 n
+0000232191 00000 n
+0000232256 00000 n
+0000232321 00000 n
+0000232386 00000 n
+0000232451 00000 n
+0000232515 00000 n
+0000232580 00000 n
+0000232645 00000 n
+0000232710 00000 n
+0000232775 00000 n
+0000232840 00000 n
+0000232905 00000 n
+0000232970 00000 n
+0000233035 00000 n
+0000233099 00000 n
+0000233164 00000 n
+0000233229 00000 n
+0000233293 00000 n
+0000233358 00000 n
+0000233423 00000 n
+0000233488 00000 n
+0000233553 00000 n
+0000233618 00000 n
+0000233683 00000 n
+0000233748 00000 n
+0000233813 00000 n
+0000233877 00000 n
+0000233942 00000 n
+0000234007 00000 n
+0000234072 00000 n
+0000234137 00000 n
+0000234202 00000 n
+0000234267 00000 n
+0000234332 00000 n
+0000234397 00000 n
+0000234460 00000 n
+0000234525 00000 n
+0000234590 00000 n
+0000234655 00000 n
+0000234720 00000 n
+0000234785 00000 n
+0000234850 00000 n
+0000234915 00000 n
+0000234980 00000 n
+0000235043 00000 n
+0000235108 00000 n
+0000235173 00000 n
+0000238441 00000 n
+0000238598 00000 n
+0000241741 00000 n
+0000238259 00000 n
+0000235454 00000 n
+0000238755 00000 n
+0000238819 00000 n
+0000238884 00000 n
+0000238949 00000 n
+0000239014 00000 n
+0000239079 00000 n
+0000239144 00000 n
+0000239209 00000 n
+0000239274 00000 n
+0000239339 00000 n
+0000239404 00000 n
+0000239469 00000 n
+0000239534 00000 n
+0000239599 00000 n
+0000239664 00000 n
+0000239729 00000 n
+0000239794 00000 n
+0000239859 00000 n
+0000239924 00000 n
+0000239989 00000 n
+0000240054 00000 n
+0000240119 00000 n
+0000240184 00000 n
+0000240249 00000 n
+0000240314 00000 n
+0000240379 00000 n
+0000240444 00000 n
+0000240508 00000 n
+0000240573 00000 n
+0000240638 00000 n
+0000240703 00000 n
+0000240768 00000 n
+0000240833 00000 n
+0000240898 00000 n
+0000240963 00000 n
+0000241028 00000 n
+0000241093 00000 n
+0000241158 00000 n
+0000241223 00000 n
+0000241288 00000 n
+0000241353 00000 n
+0000241418 00000 n
+0000241482 00000 n
+0000241547 00000 n
+0000241612 00000 n
+0000241677 00000 n
+0000238401 00000 n
+0000247255 00000 n
+0000244537 00000 n
+0000241983 00000 n
+0000244662 00000 n
+0000244726 00000 n
+0000244791 00000 n
+0000244855 00000 n
+0000244920 00000 n
+0000244985 00000 n
+0000245050 00000 n
+0000245115 00000 n
+0000245180 00000 n
+0000245245 00000 n
+0000245310 00000 n
+0000245375 00000 n
+0000245440 00000 n
+0000245504 00000 n
+0000245569 00000 n
+0000245634 00000 n
+0000245699 00000 n
+0000245764 00000 n
+0000245829 00000 n
+0000245894 00000 n
+0000245958 00000 n
+0000246022 00000 n
+0000246087 00000 n
+0000246152 00000 n
+0000246217 00000 n
+0000246282 00000 n
+0000246347 00000 n
+0000246412 00000 n
+0000246477 00000 n
+0000246542 00000 n
+0000246607 00000 n
+0000246672 00000 n
+0000246737 00000 n
+0000246802 00000 n
+0000246867 00000 n
+0000246932 00000 n
+0000246997 00000 n
+0000247062 00000 n
+0000247127 00000 n
+0000247192 00000 n
+0000253509 00000 n
+0000250012 00000 n
+0000247445 00000 n
+0000250137 00000 n
+0000250201 00000 n
+0000250266 00000 n
+0000250330 00000 n
+0000250395 00000 n
+0000250460 00000 n
+0000250525 00000 n
+0000250590 00000 n
+0000250655 00000 n
+0000250720 00000 n
+0000250784 00000 n
+0000250849 00000 n
+0000250914 00000 n
+0000250979 00000 n
+0000251044 00000 n
+0000251109 00000 n
+0000251174 00000 n
+0000251239 00000 n
+0000251304 00000 n
+0000251369 00000 n
+0000251434 00000 n
+0000251499 00000 n
+0000251563 00000 n
+0000251628 00000 n
+0000251693 00000 n
+0000251758 00000 n
+0000251823 00000 n
+0000251888 00000 n
+0000251953 00000 n
+0000252018 00000 n
+0000252083 00000 n
+0000252147 00000 n
+0000252212 00000 n
+0000252277 00000 n
+0000252342 00000 n
+0000252407 00000 n
+0000252472 00000 n
+0000252537 00000 n
+0000252602 00000 n
+0000252667 00000 n
+0000252732 00000 n
+0000252797 00000 n
+0000252862 00000 n
+0000252927 00000 n
+0000252992 00000 n
+0000253057 00000 n
+0000253122 00000 n
+0000253187 00000 n
+0000253252 00000 n
+0000253317 00000 n
+0000253381 00000 n
+0000253446 00000 n
+0000258965 00000 n
+0000256634 00000 n
+0000253686 00000 n
+0000256759 00000 n
+0000256823 00000 n
+0000256888 00000 n
+0000256953 00000 n
+0000257018 00000 n
+0000257083 00000 n
+0000257148 00000 n
+0000257213 00000 n
+0000257278 00000 n
+0000257343 00000 n
+0000257408 00000 n
+0000257473 00000 n
+0000257538 00000 n
+0000257603 00000 n
+0000257668 00000 n
+0000257733 00000 n
+0000257798 00000 n
+0000257863 00000 n
+0000257928 00000 n
+0000257993 00000 n
+0000258058 00000 n
+0000258123 00000 n
+0000258188 00000 n
+0000258253 00000 n
+0000258318 00000 n
+0000258382 00000 n
+0000258447 00000 n
+0000258512 00000 n
+0000258577 00000 n
+0000258642 00000 n
+0000258707 00000 n
+0000258772 00000 n
+0000258837 00000 n
+0000258901 00000 n
+0000263917 00000 n
+0000261847 00000 n
+0000259168 00000 n
+0000261972 00000 n
+0000262036 00000 n
+0000262101 00000 n
+0000262166 00000 n
+0000262230 00000 n
+0000262295 00000 n
+0000262360 00000 n
+0000262425 00000 n
+0000262490 00000 n
+0000262555 00000 n
+0000262620 00000 n
+0000262685 00000 n
+0000262750 00000 n
+0000262815 00000 n
+0000262880 00000 n
+0000262945 00000 n
+0000263009 00000 n
+0000263074 00000 n
+0000263139 00000 n
+0000263204 00000 n
+0000263269 00000 n
+0000263334 00000 n
+0000263399 00000 n
+0000263464 00000 n
+0000263529 00000 n
+0000263594 00000 n
+0000263659 00000 n
+0000263724 00000 n
+0000263789 00000 n
+0000263854 00000 n
+0000268931 00000 n
+0000266473 00000 n
+0000264133 00000 n
+0000266598 00000 n
+0000266662 00000 n
+0000266727 00000 n
+0000266792 00000 n
+0000266857 00000 n
+0000266922 00000 n
+0000266987 00000 n
+0000267052 00000 n
+0000267117 00000 n
+0000267182 00000 n
+0000267247 00000 n
+0000267310 00000 n
+0000267375 00000 n
+0000267440 00000 n
+0000267505 00000 n
+0000267570 00000 n
+0000267635 00000 n
+0000267700 00000 n
+0000267764 00000 n
+0000267829 00000 n
+0000267894 00000 n
+0000267959 00000 n
+0000268024 00000 n
+0000268089 00000 n
+0000268154 00000 n
+0000268219 00000 n
+0000268284 00000 n
+0000268349 00000 n
+0000268414 00000 n
+0000268479 00000 n
+0000268544 00000 n
+0000268609 00000 n
+0000268674 00000 n
+0000268739 00000 n
+0000268804 00000 n
+0000274412 00000 n
+0000271692 00000 n
+0000269108 00000 n
+0000271817 00000 n
+0000271881 00000 n
+0000271946 00000 n
+0000272011 00000 n
+0000272075 00000 n
+0000272140 00000 n
+0000272205 00000 n
+0000272270 00000 n
+0000272335 00000 n
+0000272400 00000 n
+0000272465 00000 n
+0000272530 00000 n
+0000272595 00000 n
+0000272660 00000 n
+0000272725 00000 n
+0000272790 00000 n
+0000272855 00000 n
+0000272920 00000 n
+0000272985 00000 n
+0000273050 00000 n
+0000273115 00000 n
+0000273180 00000 n
+0000273245 00000 n
+0000273310 00000 n
+0000273375 00000 n
+0000273440 00000 n
+0000273505 00000 n
+0000273570 00000 n
+0000273635 00000 n
+0000273700 00000 n
+0000273765 00000 n
+0000273830 00000 n
+0000273895 00000 n
+0000273960 00000 n
+0000274024 00000 n
+0000274089 00000 n
+0000274154 00000 n
+0000274219 00000 n
+0000274284 00000 n
+0000274348 00000 n
+0000280173 00000 n
+0000277522 00000 n
+0000274602 00000 n
+0000277647 00000 n
+0000277711 00000 n
+0000277776 00000 n
+0000277841 00000 n
+0000277906 00000 n
+0000277971 00000 n
+0000278036 00000 n
+0000278101 00000 n
+0000278166 00000 n
+0000278231 00000 n
+0000278295 00000 n
+0000278360 00000 n
+0000278425 00000 n
+0000278490 00000 n
+0000278555 00000 n
+0000278620 00000 n
+0000278685 00000 n
+0000278750 00000 n
+0000278814 00000 n
+0000278879 00000 n
+0000278944 00000 n
+0000279008 00000 n
+0000279073 00000 n
+0000279138 00000 n
+0000279201 00000 n
+0000279266 00000 n
+0000279331 00000 n
+0000279396 00000 n
+0000279461 00000 n
+0000279526 00000 n
+0000279591 00000 n
+0000279656 00000 n
+0000279721 00000 n
+0000279786 00000 n
+0000279851 00000 n
+0000279916 00000 n
+0000279981 00000 n
+0000280046 00000 n
+0000280109 00000 n
+0001892161 00000 n
+0000286097 00000 n
+0000282533 00000 n
+0000280376 00000 n
+0000282658 00000 n
+0000282722 00000 n
+0000282787 00000 n
+0000282852 00000 n
+0000282917 00000 n
+0000282982 00000 n
+0000283047 00000 n
+0000283112 00000 n
+0000283177 00000 n
+0000283242 00000 n
+0000283307 00000 n
+0000283372 00000 n
+0000283437 00000 n
+0000283502 00000 n
+0000283567 00000 n
+0000283632 00000 n
+0000283697 00000 n
+0000283762 00000 n
+0000283825 00000 n
+0000283890 00000 n
+0000283955 00000 n
+0000284020 00000 n
+0000284085 00000 n
+0000284150 00000 n
+0000284215 00000 n
+0000284280 00000 n
+0000284345 00000 n
+0000284409 00000 n
+0000284474 00000 n
+0000284539 00000 n
+0000284604 00000 n
+0000284669 00000 n
+0000284734 00000 n
+0000284799 00000 n
+0000284864 00000 n
+0000284929 00000 n
+0000284993 00000 n
+0000285058 00000 n
+0000285123 00000 n
+0000285188 00000 n
+0000285253 00000 n
+0000285318 00000 n
+0000285383 00000 n
+0000285448 00000 n
+0000285513 00000 n
+0000285577 00000 n
+0000285642 00000 n
+0000285707 00000 n
+0000285772 00000 n
+0000285837 00000 n
+0000285902 00000 n
+0000285967 00000 n
+0000286032 00000 n
+0000288532 00000 n
+0000291996 00000 n
+0000288359 00000 n
+0000286261 00000 n
+0000288689 00000 n
+0000288753 00000 n
+0000288818 00000 n
+0000288883 00000 n
+0000288948 00000 n
+0000289013 00000 n
+0000289078 00000 n
+0000289143 00000 n
+0000289208 00000 n
+0000289273 00000 n
+0000289337 00000 n
+0000289402 00000 n
+0000289467 00000 n
+0000289532 00000 n
+0000289597 00000 n
+0000289662 00000 n
+0000289727 00000 n
+0000289792 00000 n
+0000289857 00000 n
+0000289922 00000 n
+0000289987 00000 n
+0000290052 00000 n
+0000290116 00000 n
+0000290181 00000 n
+0000290246 00000 n
+0000290311 00000 n
+0000290376 00000 n
+0000290441 00000 n
+0000290506 00000 n
+0000290571 00000 n
+0000290636 00000 n
+0000290701 00000 n
+0000290766 00000 n
+0000290831 00000 n
+0000290896 00000 n
+0000290960 00000 n
+0000291025 00000 n
+0000291090 00000 n
+0000291155 00000 n
+0000291220 00000 n
+0000291285 00000 n
+0000291350 00000 n
+0000291415 00000 n
+0000291480 00000 n
+0000291545 00000 n
+0000291610 00000 n
+0000291737 00000 n
+0000291802 00000 n
+0000291867 00000 n
+0000291932 00000 n
+0000288501 00000 n
+0000295467 00000 n
+0000298023 00000 n
+0000295294 00000 n
+0000292225 00000 n
+0000295623 00000 n
+0000295687 00000 n
+0000295752 00000 n
+0000295817 00000 n
+0000295882 00000 n
+0000295947 00000 n
+0000296012 00000 n
+0000296077 00000 n
+0000296142 00000 n
+0000296207 00000 n
+0000296272 00000 n
+0000296337 00000 n
+0000296401 00000 n
+0000296466 00000 n
+0000296531 00000 n
+0000296596 00000 n
+0000296661 00000 n
+0000296726 00000 n
+0000296791 00000 n
+0000296856 00000 n
+0000296921 00000 n
+0000296986 00000 n
+0000297051 00000 n
+0000297116 00000 n
+0000297181 00000 n
+0000297245 00000 n
+0000297310 00000 n
+0000297375 00000 n
+0000297440 00000 n
+0000297505 00000 n
+0000297570 00000 n
+0000297635 00000 n
+0000297700 00000 n
+0000297764 00000 n
+0000297829 00000 n
+0000297894 00000 n
+0000297959 00000 n
+0000295436 00000 n
+0000303821 00000 n
+0000300841 00000 n
+0000298278 00000 n
+0000300966 00000 n
+0000301030 00000 n
+0000301095 00000 n
+0000301160 00000 n
+0000301225 00000 n
+0000301290 00000 n
+0000301355 00000 n
+0000301420 00000 n
+0000301485 00000 n
+0000301550 00000 n
+0000301615 00000 n
+0000301680 00000 n
+0000301745 00000 n
+0000301810 00000 n
+0000301875 00000 n
+0000301940 00000 n
+0000302005 00000 n
+0000302070 00000 n
+0000302135 00000 n
+0000302200 00000 n
+0000302265 00000 n
+0000302330 00000 n
+0000302395 00000 n
+0000302460 00000 n
+0000302525 00000 n
+0000302590 00000 n
+0000302655 00000 n
+0000302720 00000 n
+0000302784 00000 n
+0000302849 00000 n
+0000302914 00000 n
+0000302979 00000 n
+0000303044 00000 n
+0000303109 00000 n
+0000303174 00000 n
+0000303239 00000 n
+0000303304 00000 n
+0000303368 00000 n
+0000303433 00000 n
+0000303498 00000 n
+0000303563 00000 n
+0000303628 00000 n
+0000303693 00000 n
+0000303757 00000 n
+0000306622 00000 n
+0000310021 00000 n
+0000306449 00000 n
+0000303985 00000 n
+0000306779 00000 n
+0000306843 00000 n
+0000306908 00000 n
+0000306973 00000 n
+0000307038 00000 n
+0000307103 00000 n
+0000307168 00000 n
+0000307233 00000 n
+0000307298 00000 n
+0000307362 00000 n
+0000307427 00000 n
+0000307492 00000 n
+0000307557 00000 n
+0000307622 00000 n
+0000307687 00000 n
+0000307752 00000 n
+0000307817 00000 n
+0000307882 00000 n
+0000307946 00000 n
+0000308011 00000 n
+0000308076 00000 n
+0000308141 00000 n
+0000308206 00000 n
+0000308271 00000 n
+0000308336 00000 n
+0000308401 00000 n
+0000308466 00000 n
+0000308530 00000 n
+0000308595 00000 n
+0000308660 00000 n
+0000308725 00000 n
+0000308789 00000 n
+0000308854 00000 n
+0000308919 00000 n
+0000308984 00000 n
+0000309049 00000 n
+0000309114 00000 n
+0000309179 00000 n
+0000309244 00000 n
+0000309309 00000 n
+0000309374 00000 n
+0000309438 00000 n
+0000309503 00000 n
+0000309567 00000 n
+0000309632 00000 n
+0000309697 00000 n
+0000309762 00000 n
+0000309827 00000 n
+0000309892 00000 n
+0000309957 00000 n
+0000306591 00000 n
+0000313173 00000 n
+0000313331 00000 n
+0000316537 00000 n
+0000312991 00000 n
+0000310263 00000 n
+0000313488 00000 n
+0000313552 00000 n
+0000313617 00000 n
+0000313682 00000 n
+0000313747 00000 n
+0000313812 00000 n
+0000313877 00000 n
+0000313942 00000 n
+0000314007 00000 n
+0000314072 00000 n
+0000314136 00000 n
+0000314201 00000 n
+0000314266 00000 n
+0000314331 00000 n
+0000314396 00000 n
+0000314461 00000 n
+0000314526 00000 n
+0000314591 00000 n
+0000314655 00000 n
+0000314720 00000 n
+0000314785 00000 n
+0000314850 00000 n
+0000314915 00000 n
+0000314980 00000 n
+0000315045 00000 n
+0000315110 00000 n
+0000315174 00000 n
+0000315239 00000 n
+0000315304 00000 n
+0000315369 00000 n
+0000315434 00000 n
+0000315499 00000 n
+0000315564 00000 n
+0000315629 00000 n
+0000315694 00000 n
+0000315759 00000 n
+0000315824 00000 n
+0000315889 00000 n
+0000315954 00000 n
+0000316019 00000 n
+0000316084 00000 n
+0000316149 00000 n
+0000316214 00000 n
+0000316278 00000 n
+0000316343 00000 n
+0000316408 00000 n
+0000316473 00000 n
+0000313133 00000 n
+0000319432 00000 n
+0000322113 00000 n
+0000319259 00000 n
+0000316818 00000 n
+0000319589 00000 n
+0000319653 00000 n
+0000319718 00000 n
+0000319783 00000 n
+0000319848 00000 n
+0000319913 00000 n
+0000319978 00000 n
+0000320043 00000 n
+0000320108 00000 n
+0000320173 00000 n
+0000320238 00000 n
+0000320303 00000 n
+0000320366 00000 n
+0000320431 00000 n
+0000320496 00000 n
+0000320561 00000 n
+0000320626 00000 n
+0000320691 00000 n
+0000320756 00000 n
+0000320821 00000 n
+0000320886 00000 n
+0000320950 00000 n
+0000321015 00000 n
+0000321080 00000 n
+0000321145 00000 n
+0000321210 00000 n
+0000321275 00000 n
+0000321340 00000 n
+0000321404 00000 n
+0000321469 00000 n
+0000321534 00000 n
+0000321599 00000 n
+0000321663 00000 n
+0000321790 00000 n
+0000321855 00000 n
+0000321920 00000 n
+0000321985 00000 n
+0000322049 00000 n
+0000319401 00000 n
+0000327623 00000 n
+0000324580 00000 n
+0000322303 00000 n
+0000324705 00000 n
+0000324769 00000 n
+0000324834 00000 n
+0000324899 00000 n
+0000324964 00000 n
+0000325029 00000 n
+0000325093 00000 n
+0000325158 00000 n
+0000325223 00000 n
+0000325287 00000 n
+0000325352 00000 n
+0000325417 00000 n
+0000325482 00000 n
+0000325547 00000 n
+0000325612 00000 n
+0000325677 00000 n
+0000325742 00000 n
+0000325807 00000 n
+0000325872 00000 n
+0000325937 00000 n
+0000326002 00000 n
+0000326067 00000 n
+0000326132 00000 n
+0000326197 00000 n
+0000326262 00000 n
+0000326327 00000 n
+0000326392 00000 n
+0000326457 00000 n
+0000326522 00000 n
+0000326587 00000 n
+0000326652 00000 n
+0000326717 00000 n
+0000326781 00000 n
+0000326846 00000 n
+0000326911 00000 n
+0000326976 00000 n
+0000327041 00000 n
+0000327106 00000 n
+0000327171 00000 n
+0000327236 00000 n
+0000327301 00000 n
+0000327365 00000 n
+0000327430 00000 n
+0000327495 00000 n
+0000327559 00000 n
+0000335493 00000 n
+0000333036 00000 n
+0000329929 00000 n
+0000327800 00000 n
+0000330054 00000 n
+0000330118 00000 n
+0000330183 00000 n
+0000330247 00000 n
+0000330312 00000 n
+0000330377 00000 n
+0000330442 00000 n
+0000330507 00000 n
+0000330572 00000 n
+0000330637 00000 n
+0000330702 00000 n
+0000330765 00000 n
+0000330830 00000 n
+0000330895 00000 n
+0000330960 00000 n
+0000331025 00000 n
+0000331090 00000 n
+0000331155 00000 n
+0000331220 00000 n
+0000331285 00000 n
+0000331349 00000 n
+0000331414 00000 n
+0000331479 00000 n
+0000331544 00000 n
+0000331609 00000 n
+0000331674 00000 n
+0000331739 00000 n
+0000331804 00000 n
+0000331869 00000 n
+0000331933 00000 n
+0000331998 00000 n
+0000332063 00000 n
+0000332128 00000 n
+0000332193 00000 n
+0000332258 00000 n
+0000332323 00000 n
+0000332388 00000 n
+0000332453 00000 n
+0000332517 00000 n
+0000332582 00000 n
+0000332647 00000 n
+0000332711 00000 n
+0000332776 00000 n
+0000332841 00000 n
+0000332906 00000 n
+0000332971 00000 n
+0000339021 00000 n
+0000335320 00000 n
+0000333200 00000 n
+0000335650 00000 n
+0000335714 00000 n
+0000335779 00000 n
+0000335844 00000 n
+0000335908 00000 n
+0000335973 00000 n
+0000336038 00000 n
+0000336103 00000 n
+0000336167 00000 n
+0000336232 00000 n
+0000336297 00000 n
+0000336362 00000 n
+0000336427 00000 n
+0000336492 00000 n
+0000336557 00000 n
+0000336622 00000 n
+0000336687 00000 n
+0000336752 00000 n
+0000336817 00000 n
+0000336882 00000 n
+0000336946 00000 n
+0000337011 00000 n
+0000337076 00000 n
+0000337141 00000 n
+0000337205 00000 n
+0000337270 00000 n
+0000337334 00000 n
+0000337399 00000 n
+0000337464 00000 n
+0000337529 00000 n
+0000337594 00000 n
+0000337659 00000 n
+0000337724 00000 n
+0000337789 00000 n
+0000337854 00000 n
+0000337918 00000 n
+0000337983 00000 n
+0000338048 00000 n
+0000338113 00000 n
+0000338178 00000 n
+0000338243 00000 n
+0000338308 00000 n
+0000338373 00000 n
+0000338438 00000 n
+0000338503 00000 n
+0000338568 00000 n
+0000338633 00000 n
+0000338697 00000 n
+0000338762 00000 n
+0000338827 00000 n
+0000338892 00000 n
+0000338957 00000 n
+0001892326 00000 n
+0000335462 00000 n
+0000344586 00000 n
+0000341092 00000 n
+0000339250 00000 n
+0000341217 00000 n
+0000341281 00000 n
+0000341346 00000 n
+0000341411 00000 n
+0000341476 00000 n
+0000341541 00000 n
+0000341605 00000 n
+0000341670 00000 n
+0000341735 00000 n
+0000341799 00000 n
+0000341864 00000 n
+0000341929 00000 n
+0000341994 00000 n
+0000342059 00000 n
+0000342124 00000 n
+0000342188 00000 n
+0000342253 00000 n
+0000342318 00000 n
+0000342383 00000 n
+0000342448 00000 n
+0000342513 00000 n
+0000342578 00000 n
+0000342641 00000 n
+0000342706 00000 n
+0000342771 00000 n
+0000342836 00000 n
+0000342901 00000 n
+0000342966 00000 n
+0000343031 00000 n
+0000343095 00000 n
+0000343160 00000 n
+0000343225 00000 n
+0000343290 00000 n
+0000343355 00000 n
+0000343420 00000 n
+0000343485 00000 n
+0000343550 00000 n
+0000343615 00000 n
+0000343679 00000 n
+0000343744 00000 n
+0000343809 00000 n
+0000343874 00000 n
+0000343939 00000 n
+0000344003 00000 n
+0000344068 00000 n
+0000344133 00000 n
+0000344198 00000 n
+0000344263 00000 n
+0000344328 00000 n
+0000344393 00000 n
+0000344458 00000 n
+0000344522 00000 n
+0000350486 00000 n
+0000346662 00000 n
+0000344750 00000 n
+0000346787 00000 n
+0000346851 00000 n
+0000346916 00000 n
+0000346981 00000 n
+0000347046 00000 n
+0000347111 00000 n
+0000347176 00000 n
+0000347241 00000 n
+0000347306 00000 n
+0000347371 00000 n
+0000347436 00000 n
+0000347501 00000 n
+0000347566 00000 n
+0000347631 00000 n
+0000347696 00000 n
+0000347761 00000 n
+0000347826 00000 n
+0000347891 00000 n
+0000347956 00000 n
+0000348020 00000 n
+0000348085 00000 n
+0000348150 00000 n
+0000348215 00000 n
+0000348280 00000 n
+0000348345 00000 n
+0000348410 00000 n
+0000348475 00000 n
+0000348540 00000 n
+0000348604 00000 n
+0000348669 00000 n
+0000348734 00000 n
+0000348799 00000 n
+0000348864 00000 n
+0000348929 00000 n
+0000348994 00000 n
+0000349059 00000 n
+0000349124 00000 n
+0000349188 00000 n
+0000349253 00000 n
+0000349318 00000 n
+0000349383 00000 n
+0000349448 00000 n
+0000349513 00000 n
+0000349578 00000 n
+0000349643 00000 n
+0000349708 00000 n
+0000349773 00000 n
+0000349838 00000 n
+0000349903 00000 n
+0000349968 00000 n
+0000350033 00000 n
+0000350098 00000 n
+0000350163 00000 n
+0000350228 00000 n
+0000350293 00000 n
+0000350358 00000 n
+0000350422 00000 n
+0000356383 00000 n
+0000353081 00000 n
+0000350663 00000 n
+0000353206 00000 n
+0000353270 00000 n
+0000353335 00000 n
+0000353400 00000 n
+0000353465 00000 n
+0000353530 00000 n
+0000353595 00000 n
+0000353660 00000 n
+0000353725 00000 n
+0000353789 00000 n
+0000353854 00000 n
+0000353919 00000 n
+0000353983 00000 n
+0000354048 00000 n
+0000354113 00000 n
+0000354178 00000 n
+0000354243 00000 n
+0000354308 00000 n
+0000354373 00000 n
+0000354438 00000 n
+0000354503 00000 n
+0000354567 00000 n
+0000354632 00000 n
+0000354697 00000 n
+0000354762 00000 n
+0000354827 00000 n
+0000354892 00000 n
+0000354957 00000 n
+0000355022 00000 n
+0000355087 00000 n
+0000355151 00000 n
+0000355216 00000 n
+0000355281 00000 n
+0000355346 00000 n
+0000355411 00000 n
+0000355476 00000 n
+0000355541 00000 n
+0000355606 00000 n
+0000355671 00000 n
+0000355735 00000 n
+0000355800 00000 n
+0000355865 00000 n
+0000355930 00000 n
+0000355995 00000 n
+0000356060 00000 n
+0000356125 00000 n
+0000356190 00000 n
+0000356255 00000 n
+0000356319 00000 n
+0000362166 00000 n
+0000359772 00000 n
+0000356560 00000 n
+0000359897 00000 n
+0000359961 00000 n
+0000360026 00000 n
+0000360091 00000 n
+0000360156 00000 n
+0000360221 00000 n
+0000360286 00000 n
+0000360351 00000 n
+0000360416 00000 n
+0000360481 00000 n
+0000360545 00000 n
+0000360610 00000 n
+0000360675 00000 n
+0000360740 00000 n
+0000360805 00000 n
+0000360870 00000 n
+0000360935 00000 n
+0000360999 00000 n
+0000361064 00000 n
+0000361129 00000 n
+0000361194 00000 n
+0000361259 00000 n
+0000361324 00000 n
+0000361389 00000 n
+0000361454 00000 n
+0000361519 00000 n
+0000361584 00000 n
+0000361648 00000 n
+0000361713 00000 n
+0000361778 00000 n
+0000361843 00000 n
+0000361908 00000 n
+0000361973 00000 n
+0000362038 00000 n
+0000362102 00000 n
+0000367873 00000 n
+0000364699 00000 n
+0000362356 00000 n
+0000364824 00000 n
+0000364888 00000 n
+0000364953 00000 n
+0000365018 00000 n
+0000365083 00000 n
+0000365148 00000 n
+0000365213 00000 n
+0000365278 00000 n
+0000365343 00000 n
+0000365408 00000 n
+0000365473 00000 n
+0000365538 00000 n
+0000365603 00000 n
+0000365668 00000 n
+0000365733 00000 n
+0000365797 00000 n
+0000365862 00000 n
+0000365927 00000 n
+0000365992 00000 n
+0000366057 00000 n
+0000366122 00000 n
+0000366187 00000 n
+0000366252 00000 n
+0000366317 00000 n
+0000366381 00000 n
+0000366446 00000 n
+0000366511 00000 n
+0000366576 00000 n
+0000366641 00000 n
+0000366706 00000 n
+0000366771 00000 n
+0000366836 00000 n
+0000366901 00000 n
+0000366966 00000 n
+0000367031 00000 n
+0000367096 00000 n
+0000367161 00000 n
+0000367226 00000 n
+0000367291 00000 n
+0000367356 00000 n
+0000367420 00000 n
+0000367485 00000 n
+0000367550 00000 n
+0000367615 00000 n
+0000367680 00000 n
+0000367745 00000 n
+0000367809 00000 n
+0000373559 00000 n
+0000370322 00000 n
+0000368050 00000 n
+0000370447 00000 n
+0000370511 00000 n
+0000370576 00000 n
+0000370640 00000 n
+0000370705 00000 n
+0000370770 00000 n
+0000370835 00000 n
+0000370900 00000 n
+0000370965 00000 n
+0000371030 00000 n
+0000371095 00000 n
+0000371160 00000 n
+0000371225 00000 n
+0000371290 00000 n
+0000371355 00000 n
+0000371419 00000 n
+0000371484 00000 n
+0000371549 00000 n
+0000371614 00000 n
+0000371679 00000 n
+0000371744 00000 n
+0000371809 00000 n
+0000371874 00000 n
+0000371939 00000 n
+0000372003 00000 n
+0000372068 00000 n
+0000372133 00000 n
+0000372198 00000 n
+0000372263 00000 n
+0000372328 00000 n
+0000372393 00000 n
+0000372458 00000 n
+0000372523 00000 n
+0000372588 00000 n
+0000372652 00000 n
+0000372717 00000 n
+0000372782 00000 n
+0000372847 00000 n
+0000372912 00000 n
+0000372977 00000 n
+0000373042 00000 n
+0000373107 00000 n
+0000373172 00000 n
+0000373237 00000 n
+0000373300 00000 n
+0000373365 00000 n
+0000373430 00000 n
+0000373495 00000 n
+0000379276 00000 n
+0000375779 00000 n
+0000373749 00000 n
+0000375904 00000 n
+0000375968 00000 n
+0000376033 00000 n
+0000376098 00000 n
+0000376163 00000 n
+0000376228 00000 n
+0000376293 00000 n
+0000376358 00000 n
+0000376422 00000 n
+0000376487 00000 n
+0000376552 00000 n
+0000376617 00000 n
+0000376682 00000 n
+0000376747 00000 n
+0000376812 00000 n
+0000376877 00000 n
+0000376942 00000 n
+0000377006 00000 n
+0000377071 00000 n
+0000377136 00000 n
+0000377201 00000 n
+0000377266 00000 n
+0000377331 00000 n
+0000377396 00000 n
+0000377460 00000 n
+0000377525 00000 n
+0000377590 00000 n
+0000377655 00000 n
+0000377720 00000 n
+0000377785 00000 n
+0000377850 00000 n
+0000377914 00000 n
+0000377979 00000 n
+0000378044 00000 n
+0000378109 00000 n
+0000378174 00000 n
+0000378239 00000 n
+0000378304 00000 n
+0000378369 00000 n
+0000378434 00000 n
+0000378499 00000 n
+0000378564 00000 n
+0000378629 00000 n
+0000378694 00000 n
+0000378759 00000 n
+0000378824 00000 n
+0000378889 00000 n
+0000378954 00000 n
+0000379018 00000 n
+0000379083 00000 n
+0000379148 00000 n
+0000379212 00000 n
+0000385071 00000 n
+0000381446 00000 n
+0000379453 00000 n
+0000381571 00000 n
+0000381635 00000 n
+0000381700 00000 n
+0000381765 00000 n
+0000381830 00000 n
+0000381895 00000 n
+0000381959 00000 n
+0000382024 00000 n
+0000382089 00000 n
+0000382154 00000 n
+0000382218 00000 n
+0000382283 00000 n
+0000382348 00000 n
+0000382413 00000 n
+0000382478 00000 n
+0000382543 00000 n
+0000382608 00000 n
+0000382673 00000 n
+0000382738 00000 n
+0000382802 00000 n
+0000382867 00000 n
+0000382932 00000 n
+0000382997 00000 n
+0000383062 00000 n
+0000383127 00000 n
+0000383192 00000 n
+0000383257 00000 n
+0000383321 00000 n
+0000383386 00000 n
+0000383451 00000 n
+0000383516 00000 n
+0000383581 00000 n
+0000383646 00000 n
+0000383711 00000 n
+0000383776 00000 n
+0000383841 00000 n
+0000383906 00000 n
+0000383970 00000 n
+0000384035 00000 n
+0000384100 00000 n
+0000384165 00000 n
+0000384229 00000 n
+0000384294 00000 n
+0000384359 00000 n
+0000384424 00000 n
+0000384489 00000 n
+0000384554 00000 n
+0000384619 00000 n
+0000384684 00000 n
+0000384749 00000 n
+0000384813 00000 n
+0000384878 00000 n
+0000384943 00000 n
+0000385007 00000 n
+0000391084 00000 n
+0000387261 00000 n
+0000385248 00000 n
+0000387386 00000 n
+0000387450 00000 n
+0000387515 00000 n
+0000387580 00000 n
+0000387645 00000 n
+0000387710 00000 n
+0000387775 00000 n
+0000387840 00000 n
+0000387905 00000 n
+0000387970 00000 n
+0000388035 00000 n
+0000388100 00000 n
+0000388165 00000 n
+0000388230 00000 n
+0000388295 00000 n
+0000388359 00000 n
+0000388424 00000 n
+0000388489 00000 n
+0000388554 00000 n
+0000388619 00000 n
+0000388684 00000 n
+0000388749 00000 n
+0000388814 00000 n
+0000388879 00000 n
+0000388944 00000 n
+0000389008 00000 n
+0000389073 00000 n
+0000389138 00000 n
+0000389203 00000 n
+0000389268 00000 n
+0000389333 00000 n
+0000389398 00000 n
+0000389463 00000 n
+0000389528 00000 n
+0000389592 00000 n
+0000389657 00000 n
+0000389722 00000 n
+0000389787 00000 n
+0000389852 00000 n
+0000389917 00000 n
+0000389982 00000 n
+0000390047 00000 n
+0000390112 00000 n
+0000390177 00000 n
+0000390242 00000 n
+0000390307 00000 n
+0000390372 00000 n
+0000390437 00000 n
+0000390502 00000 n
+0000390567 00000 n
+0000390632 00000 n
+0000390696 00000 n
+0000390761 00000 n
+0000390826 00000 n
+0000390891 00000 n
+0000390956 00000 n
+0000391020 00000 n
+0000397008 00000 n
+0000393251 00000 n
+0000391248 00000 n
+0000393376 00000 n
+0000393440 00000 n
+0000393505 00000 n
+0000393570 00000 n
+0000393635 00000 n
+0000393700 00000 n
+0000393765 00000 n
+0000393829 00000 n
+0000393894 00000 n
+0000393958 00000 n
+0000394023 00000 n
+0000394088 00000 n
+0000394153 00000 n
+0000394218 00000 n
+0000394283 00000 n
+0000394348 00000 n
+0000394413 00000 n
+0000394478 00000 n
+0000394542 00000 n
+0000394607 00000 n
+0000394672 00000 n
+0000394737 00000 n
+0000394802 00000 n
+0000394867 00000 n
+0000394932 00000 n
+0000394997 00000 n
+0000395062 00000 n
+0000395127 00000 n
+0000395192 00000 n
+0000395257 00000 n
+0000395322 00000 n
+0000395387 00000 n
+0000395452 00000 n
+0000395517 00000 n
+0000395582 00000 n
+0000395647 00000 n
+0000395712 00000 n
+0000395776 00000 n
+0000395841 00000 n
+0000395906 00000 n
+0000395971 00000 n
+0000396036 00000 n
+0000396101 00000 n
+0000396166 00000 n
+0000396231 00000 n
+0000396296 00000 n
+0000396361 00000 n
+0000396426 00000 n
+0000396491 00000 n
+0000396556 00000 n
+0000396620 00000 n
+0000396685 00000 n
+0000396750 00000 n
+0000396815 00000 n
+0000396880 00000 n
+0000396944 00000 n
+0001892491 00000 n
+0000402341 00000 n
+0000400138 00000 n
+0000397172 00000 n
+0000400263 00000 n
+0000400327 00000 n
+0000400392 00000 n
+0000400457 00000 n
+0000400522 00000 n
+0000400587 00000 n
+0000400652 00000 n
+0000400717 00000 n
+0000400782 00000 n
+0000400847 00000 n
+0000400912 00000 n
+0000400977 00000 n
+0000401042 00000 n
+0000401107 00000 n
+0000401172 00000 n
+0000401237 00000 n
+0000401302 00000 n
+0000401366 00000 n
+0000401431 00000 n
+0000401496 00000 n
+0000401561 00000 n
+0000401626 00000 n
+0000401691 00000 n
+0000401756 00000 n
+0000401821 00000 n
+0000401886 00000 n
+0000401951 00000 n
+0000402016 00000 n
+0000402081 00000 n
+0000402146 00000 n
+0000402211 00000 n
+0000402276 00000 n
+0000407912 00000 n
+0000404934 00000 n
+0000402544 00000 n
+0000405059 00000 n
+0000405123 00000 n
+0000405188 00000 n
+0000405252 00000 n
+0000405317 00000 n
+0000405382 00000 n
+0000405447 00000 n
+0000405512 00000 n
+0000405577 00000 n
+0000405642 00000 n
+0000405707 00000 n
+0000405772 00000 n
+0000405836 00000 n
+0000405901 00000 n
+0000405966 00000 n
+0000406031 00000 n
+0000406096 00000 n
+0000406161 00000 n
+0000406226 00000 n
+0000406291 00000 n
+0000406355 00000 n
+0000406420 00000 n
+0000406485 00000 n
+0000406550 00000 n
+0000406615 00000 n
+0000406680 00000 n
+0000406745 00000 n
+0000406810 00000 n
+0000406875 00000 n
+0000406939 00000 n
+0000407004 00000 n
+0000407069 00000 n
+0000407134 00000 n
+0000407199 00000 n
+0000407264 00000 n
+0000407329 00000 n
+0000407394 00000 n
+0000407459 00000 n
+0000407524 00000 n
+0000407588 00000 n
+0000407653 00000 n
+0000407718 00000 n
+0000407783 00000 n
+0000407848 00000 n
+0000413272 00000 n
+0000410361 00000 n
+0000408076 00000 n
+0000410486 00000 n
+0000410550 00000 n
+0000410615 00000 n
+0000410680 00000 n
+0000410745 00000 n
+0000410809 00000 n
+0000410936 00000 n
+0000411001 00000 n
+0000411066 00000 n
+0000411131 00000 n
+0000411196 00000 n
+0000411261 00000 n
+0000411325 00000 n
+0000411390 00000 n
+0000411455 00000 n
+0000411520 00000 n
+0000411585 00000 n
+0000411650 00000 n
+0000411715 00000 n
+0000411780 00000 n
+0000411845 00000 n
+0000411910 00000 n
+0000411975 00000 n
+0000412040 00000 n
+0000412105 00000 n
+0000412170 00000 n
+0000412235 00000 n
+0000412300 00000 n
+0000412365 00000 n
+0000412430 00000 n
+0000412495 00000 n
+0000412560 00000 n
+0000412625 00000 n
+0000412690 00000 n
+0000412755 00000 n
+0000412820 00000 n
+0000412884 00000 n
+0000412949 00000 n
+0000413014 00000 n
+0000413079 00000 n
+0000413144 00000 n
+0000413208 00000 n
+0000419024 00000 n
+0000415463 00000 n
+0000413475 00000 n
+0000415588 00000 n
+0000415652 00000 n
+0000415717 00000 n
+0000415782 00000 n
+0000415847 00000 n
+0000415912 00000 n
+0000415977 00000 n
+0000416042 00000 n
+0000416105 00000 n
+0000416170 00000 n
+0000416235 00000 n
+0000416300 00000 n
+0000416365 00000 n
+0000416430 00000 n
+0000416495 00000 n
+0000416560 00000 n
+0000416625 00000 n
+0000416690 00000 n
+0000416755 00000 n
+0000416820 00000 n
+0000416885 00000 n
+0000416948 00000 n
+0000417013 00000 n
+0000417078 00000 n
+0000417143 00000 n
+0000417208 00000 n
+0000417273 00000 n
+0000417338 00000 n
+0000417402 00000 n
+0000417467 00000 n
+0000417532 00000 n
+0000417597 00000 n
+0000417662 00000 n
+0000417727 00000 n
+0000417792 00000 n
+0000417857 00000 n
+0000417922 00000 n
+0000417987 00000 n
+0000418052 00000 n
+0000418117 00000 n
+0000418182 00000 n
+0000418247 00000 n
+0000418312 00000 n
+0000418377 00000 n
+0000418442 00000 n
+0000418507 00000 n
+0000418572 00000 n
+0000418636 00000 n
+0000418701 00000 n
+0000418766 00000 n
+0000418831 00000 n
+0000418896 00000 n
+0000418960 00000 n
+0000424165 00000 n
+0000420733 00000 n
+0000419201 00000 n
+0000420858 00000 n
+0000420922 00000 n
+0000420987 00000 n
+0000421052 00000 n
+0000421117 00000 n
+0000421182 00000 n
+0000421247 00000 n
+0000421312 00000 n
+0000421377 00000 n
+0000421442 00000 n
+0000421507 00000 n
+0000421572 00000 n
+0000421637 00000 n
+0000421702 00000 n
+0000421767 00000 n
+0000421832 00000 n
+0000421897 00000 n
+0000421962 00000 n
+0000422027 00000 n
+0000422092 00000 n
+0000422157 00000 n
+0000422222 00000 n
+0000422287 00000 n
+0000422352 00000 n
+0000422417 00000 n
+0000422482 00000 n
+0000422545 00000 n
+0000422610 00000 n
+0000422675 00000 n
+0000422740 00000 n
+0000422805 00000 n
+0000422870 00000 n
+0000422935 00000 n
+0000423000 00000 n
+0000423065 00000 n
+0000423129 00000 n
+0000423194 00000 n
+0000423259 00000 n
+0000423324 00000 n
+0000423389 00000 n
+0000423454 00000 n
+0000423519 00000 n
+0000423584 00000 n
+0000423648 00000 n
+0000423713 00000 n
+0000423777 00000 n
+0000423842 00000 n
+0000423907 00000 n
+0000423972 00000 n
+0000424037 00000 n
+0000424101 00000 n
+0000429852 00000 n
+0000426613 00000 n
+0000424329 00000 n
+0000426738 00000 n
+0000426802 00000 n
+0000426867 00000 n
+0000426932 00000 n
+0000426997 00000 n
+0000427062 00000 n
+0000427127 00000 n
+0000427192 00000 n
+0000427257 00000 n
+0000427322 00000 n
+0000427386 00000 n
+0000427451 00000 n
+0000427516 00000 n
+0000427581 00000 n
+0000427646 00000 n
+0000427711 00000 n
+0000427776 00000 n
+0000427840 00000 n
+0000427905 00000 n
+0000427970 00000 n
+0000428035 00000 n
+0000428100 00000 n
+0000428165 00000 n
+0000428230 00000 n
+0000428295 00000 n
+0000428360 00000 n
+0000428425 00000 n
+0000428490 00000 n
+0000428554 00000 n
+0000428619 00000 n
+0000428684 00000 n
+0000428749 00000 n
+0000428814 00000 n
+0000428879 00000 n
+0000428944 00000 n
+0000429009 00000 n
+0000429074 00000 n
+0000429139 00000 n
+0000429204 00000 n
+0000429269 00000 n
+0000429334 00000 n
+0000429399 00000 n
+0000429464 00000 n
+0000429529 00000 n
+0000429594 00000 n
+0000429659 00000 n
+0000429724 00000 n
+0000429788 00000 n
+0000435523 00000 n
+0000432349 00000 n
+0000430029 00000 n
+0000432474 00000 n
+0000432538 00000 n
+0000432603 00000 n
+0000432668 00000 n
+0000432733 00000 n
+0000432798 00000 n
+0000432863 00000 n
+0000432928 00000 n
+0000432993 00000 n
+0000433058 00000 n
+0000433122 00000 n
+0000433187 00000 n
+0000433252 00000 n
+0000433317 00000 n
+0000433382 00000 n
+0000433447 00000 n
+0000433512 00000 n
+0000433577 00000 n
+0000433642 00000 n
+0000433706 00000 n
+0000433771 00000 n
+0000433836 00000 n
+0000433901 00000 n
+0000433966 00000 n
+0000434031 00000 n
+0000434096 00000 n
+0000434161 00000 n
+0000434226 00000 n
+0000434291 00000 n
+0000434356 00000 n
+0000434421 00000 n
+0000434485 00000 n
+0000434550 00000 n
+0000434615 00000 n
+0000434679 00000 n
+0000434744 00000 n
+0000434809 00000 n
+0000434874 00000 n
+0000434939 00000 n
+0000435004 00000 n
+0000435069 00000 n
+0000435133 00000 n
+0000435198 00000 n
+0000435263 00000 n
+0000435328 00000 n
+0000435393 00000 n
+0000435458 00000 n
+0000440998 00000 n
+0000438149 00000 n
+0000435713 00000 n
+0000438274 00000 n
+0000438338 00000 n
+0000438403 00000 n
+0000438468 00000 n
+0000438533 00000 n
+0000438598 00000 n
+0000438663 00000 n
+0000438728 00000 n
+0000438792 00000 n
+0000438857 00000 n
+0000438922 00000 n
+0000438987 00000 n
+0000439052 00000 n
+0000439117 00000 n
+0000439182 00000 n
+0000439246 00000 n
+0000439311 00000 n
+0000439376 00000 n
+0000439441 00000 n
+0000439506 00000 n
+0000439571 00000 n
+0000439636 00000 n
+0000439701 00000 n
+0000439766 00000 n
+0000439831 00000 n
+0000439895 00000 n
+0000439960 00000 n
+0000440025 00000 n
+0000440090 00000 n
+0000440155 00000 n
+0000440219 00000 n
+0000440284 00000 n
+0000440349 00000 n
+0000440414 00000 n
+0000440479 00000 n
+0000440544 00000 n
+0000440609 00000 n
+0000440674 00000 n
+0000440739 00000 n
+0000440804 00000 n
+0000440869 00000 n
+0000440934 00000 n
+0000446986 00000 n
+0000443812 00000 n
+0000441175 00000 n
+0000443937 00000 n
+0000444001 00000 n
+0000444066 00000 n
+0000444131 00000 n
+0000444196 00000 n
+0000444261 00000 n
+0000444326 00000 n
+0000444391 00000 n
+0000444455 00000 n
+0000444520 00000 n
+0000444585 00000 n
+0000444649 00000 n
+0000444714 00000 n
+0000444779 00000 n
+0000444844 00000 n
+0000444909 00000 n
+0000444974 00000 n
+0000445039 00000 n
+0000445104 00000 n
+0000445169 00000 n
+0000445234 00000 n
+0000445298 00000 n
+0000445363 00000 n
+0000445428 00000 n
+0000445493 00000 n
+0000445558 00000 n
+0000445623 00000 n
+0000445688 00000 n
+0000445753 00000 n
+0000445818 00000 n
+0000445883 00000 n
+0000445948 00000 n
+0000446013 00000 n
+0000446078 00000 n
+0000446143 00000 n
+0000446208 00000 n
+0000446273 00000 n
+0000446338 00000 n
+0000446403 00000 n
+0000446468 00000 n
+0000446533 00000 n
+0000446598 00000 n
+0000446663 00000 n
+0000446728 00000 n
+0000446793 00000 n
+0000446858 00000 n
+0000446922 00000 n
+0000453001 00000 n
+0000449697 00000 n
+0000447163 00000 n
+0000449822 00000 n
+0000449886 00000 n
+0000449951 00000 n
+0000450016 00000 n
+0000450081 00000 n
+0000450146 00000 n
+0000450211 00000 n
+0000450276 00000 n
+0000450341 00000 n
+0000450406 00000 n
+0000450470 00000 n
+0000450535 00000 n
+0000450600 00000 n
+0000450665 00000 n
+0000450730 00000 n
+0000450795 00000 n
+0000450860 00000 n
+0000450925 00000 n
+0000450990 00000 n
+0000451055 00000 n
+0000451120 00000 n
+0000451185 00000 n
+0000451249 00000 n
+0000451314 00000 n
+0000451379 00000 n
+0000451444 00000 n
+0000451509 00000 n
+0000451574 00000 n
+0000451639 00000 n
+0000451704 00000 n
+0000451769 00000 n
+0000451834 00000 n
+0000451899 00000 n
+0000451963 00000 n
+0000452028 00000 n
+0000452093 00000 n
+0000452158 00000 n
+0000452223 00000 n
+0000452288 00000 n
+0000452353 00000 n
+0000452418 00000 n
+0000452483 00000 n
+0000452548 00000 n
+0000452613 00000 n
+0000452678 00000 n
+0000452743 00000 n
+0000452808 00000 n
+0000452873 00000 n
+0000452937 00000 n
+0001892656 00000 n
+0000458966 00000 n
+0000455210 00000 n
+0000453178 00000 n
+0000455335 00000 n
+0000455399 00000 n
+0000455464 00000 n
+0000455528 00000 n
+0000455593 00000 n
+0000455658 00000 n
+0000455723 00000 n
+0000455788 00000 n
+0000455853 00000 n
+0000455918 00000 n
+0000455983 00000 n
+0000456048 00000 n
+0000456112 00000 n
+0000456177 00000 n
+0000456242 00000 n
+0000456307 00000 n
+0000456372 00000 n
+0000456437 00000 n
+0000456502 00000 n
+0000456567 00000 n
+0000456632 00000 n
+0000456696 00000 n
+0000456761 00000 n
+0000456826 00000 n
+0000456891 00000 n
+0000456956 00000 n
+0000457021 00000 n
+0000457086 00000 n
+0000457151 00000 n
+0000457216 00000 n
+0000457280 00000 n
+0000457345 00000 n
+0000457410 00000 n
+0000457475 00000 n
+0000457540 00000 n
+0000457605 00000 n
+0000457670 00000 n
+0000457735 00000 n
+0000457799 00000 n
+0000457864 00000 n
+0000457929 00000 n
+0000457994 00000 n
+0000458059 00000 n
+0000458124 00000 n
+0000458189 00000 n
+0000458254 00000 n
+0000458319 00000 n
+0000458384 00000 n
+0000458449 00000 n
+0000458514 00000 n
+0000458578 00000 n
+0000458643 00000 n
+0000458708 00000 n
+0000458773 00000 n
+0000458838 00000 n
+0000458902 00000 n
+0000464519 00000 n
+0000461735 00000 n
+0000459130 00000 n
+0000461860 00000 n
+0000461924 00000 n
+0000461989 00000 n
+0000462054 00000 n
+0000462119 00000 n
+0000462184 00000 n
+0000462249 00000 n
+0000462314 00000 n
+0000462379 00000 n
+0000462444 00000 n
+0000462508 00000 n
+0000462573 00000 n
+0000462638 00000 n
+0000462703 00000 n
+0000462768 00000 n
+0000462833 00000 n
+0000462898 00000 n
+0000462963 00000 n
+0000463028 00000 n
+0000463093 00000 n
+0000463156 00000 n
+0000463221 00000 n
+0000463286 00000 n
+0000463351 00000 n
+0000463416 00000 n
+0000463481 00000 n
+0000463546 00000 n
+0000463611 00000 n
+0000463676 00000 n
+0000463741 00000 n
+0000463806 00000 n
+0000463871 00000 n
+0000463936 00000 n
+0000464001 00000 n
+0000464066 00000 n
+0000464131 00000 n
+0000464196 00000 n
+0000464261 00000 n
+0000464326 00000 n
+0000464391 00000 n
+0000464455 00000 n
+0000470112 00000 n
+0000467783 00000 n
+0000464696 00000 n
+0000467908 00000 n
+0000467972 00000 n
+0000468037 00000 n
+0000468102 00000 n
+0000468167 00000 n
+0000468232 00000 n
+0000468296 00000 n
+0000468361 00000 n
+0000468426 00000 n
+0000468490 00000 n
+0000468555 00000 n
+0000468620 00000 n
+0000468685 00000 n
+0000468750 00000 n
+0000468815 00000 n
+0000468880 00000 n
+0000468945 00000 n
+0000469009 00000 n
+0000469074 00000 n
+0000469139 00000 n
+0000469203 00000 n
+0000469268 00000 n
+0000469333 00000 n
+0000469397 00000 n
+0000469462 00000 n
+0000469527 00000 n
+0000469592 00000 n
+0000469657 00000 n
+0000469722 00000 n
+0000469787 00000 n
+0000469852 00000 n
+0000469917 00000 n
+0000469982 00000 n
+0000470047 00000 n
+0000475880 00000 n
+0000472837 00000 n
+0000470315 00000 n
+0000472962 00000 n
+0000473026 00000 n
+0000473091 00000 n
+0000473156 00000 n
+0000473221 00000 n
+0000473286 00000 n
+0000473351 00000 n
+0000473416 00000 n
+0000473481 00000 n
+0000473546 00000 n
+0000473611 00000 n
+0000473676 00000 n
+0000473741 00000 n
+0000473806 00000 n
+0000473870 00000 n
+0000473935 00000 n
+0000474000 00000 n
+0000474065 00000 n
+0000474130 00000 n
+0000474195 00000 n
+0000474260 00000 n
+0000474325 00000 n
+0000474390 00000 n
+0000474454 00000 n
+0000474519 00000 n
+0000474584 00000 n
+0000474649 00000 n
+0000474714 00000 n
+0000474779 00000 n
+0000474844 00000 n
+0000474909 00000 n
+0000474973 00000 n
+0000475038 00000 n
+0000475103 00000 n
+0000475168 00000 n
+0000475233 00000 n
+0000475298 00000 n
+0000475363 00000 n
+0000475428 00000 n
+0000475492 00000 n
+0000475557 00000 n
+0000475622 00000 n
+0000475687 00000 n
+0000475752 00000 n
+0000475816 00000 n
+0000481762 00000 n
+0000478200 00000 n
+0000476057 00000 n
+0000478325 00000 n
+0000478389 00000 n
+0000478454 00000 n
+0000478519 00000 n
+0000478584 00000 n
+0000478649 00000 n
+0000478714 00000 n
+0000478779 00000 n
+0000478844 00000 n
+0000478909 00000 n
+0000478974 00000 n
+0000479039 00000 n
+0000479104 00000 n
+0000479169 00000 n
+0000479234 00000 n
+0000479299 00000 n
+0000479364 00000 n
+0000479429 00000 n
+0000479494 00000 n
+0000479558 00000 n
+0000479623 00000 n
+0000479688 00000 n
+0000479753 00000 n
+0000479818 00000 n
+0000479883 00000 n
+0000479948 00000 n
+0000480013 00000 n
+0000480078 00000 n
+0000480142 00000 n
+0000480207 00000 n
+0000480272 00000 n
+0000480337 00000 n
+0000480402 00000 n
+0000480467 00000 n
+0000480532 00000 n
+0000480597 00000 n
+0000480662 00000 n
+0000480727 00000 n
+0000480791 00000 n
+0000480856 00000 n
+0000480921 00000 n
+0000480986 00000 n
+0000481051 00000 n
+0000481116 00000 n
+0000481181 00000 n
+0000481246 00000 n
+0000481311 00000 n
+0000481375 00000 n
+0000481440 00000 n
+0000481505 00000 n
+0000481570 00000 n
+0000481635 00000 n
+0000481699 00000 n
+0000487591 00000 n
+0000483766 00000 n
+0000481939 00000 n
+0000483891 00000 n
+0000483955 00000 n
+0000484020 00000 n
+0000484085 00000 n
+0000484150 00000 n
+0000484215 00000 n
+0000484280 00000 n
+0000484345 00000 n
+0000484410 00000 n
+0000484475 00000 n
+0000484539 00000 n
+0000484604 00000 n
+0000484669 00000 n
+0000484734 00000 n
+0000484799 00000 n
+0000484864 00000 n
+0000484929 00000 n
+0000484994 00000 n
+0000485059 00000 n
+0000485123 00000 n
+0000485188 00000 n
+0000485253 00000 n
+0000485318 00000 n
+0000485383 00000 n
+0000485448 00000 n
+0000485513 00000 n
+0000485578 00000 n
+0000485643 00000 n
+0000485708 00000 n
+0000485773 00000 n
+0000485838 00000 n
+0000485903 00000 n
+0000485968 00000 n
+0000486033 00000 n
+0000486098 00000 n
+0000486163 00000 n
+0000486228 00000 n
+0000486293 00000 n
+0000486357 00000 n
+0000486422 00000 n
+0000486487 00000 n
+0000486552 00000 n
+0000486617 00000 n
+0000486682 00000 n
+0000486747 00000 n
+0000486812 00000 n
+0000486877 00000 n
+0000486942 00000 n
+0000487007 00000 n
+0000487071 00000 n
+0000487136 00000 n
+0000487201 00000 n
+0000487266 00000 n
+0000487331 00000 n
+0000487396 00000 n
+0000487461 00000 n
+0000487526 00000 n
+0000493499 00000 n
+0000489745 00000 n
+0000487755 00000 n
+0000489870 00000 n
+0000489934 00000 n
+0000489999 00000 n
+0000490064 00000 n
+0000490129 00000 n
+0000490194 00000 n
+0000490259 00000 n
+0000490324 00000 n
+0000490389 00000 n
+0000490454 00000 n
+0000490518 00000 n
+0000490583 00000 n
+0000490648 00000 n
+0000490713 00000 n
+0000490778 00000 n
+0000490843 00000 n
+0000490908 00000 n
+0000490973 00000 n
+0000491038 00000 n
+0000491102 00000 n
+0000491167 00000 n
+0000491232 00000 n
+0000491296 00000 n
+0000491361 00000 n
+0000491426 00000 n
+0000491491 00000 n
+0000491556 00000 n
+0000491621 00000 n
+0000491686 00000 n
+0000491751 00000 n
+0000491816 00000 n
+0000491879 00000 n
+0000491944 00000 n
+0000492009 00000 n
+0000492074 00000 n
+0000492139 00000 n
+0000492204 00000 n
+0000492269 00000 n
+0000492334 00000 n
+0000492399 00000 n
+0000492463 00000 n
+0000492528 00000 n
+0000492593 00000 n
+0000492658 00000 n
+0000492723 00000 n
+0000492788 00000 n
+0000492853 00000 n
+0000492918 00000 n
+0000492983 00000 n
+0000493047 00000 n
+0000493112 00000 n
+0000493177 00000 n
+0000493242 00000 n
+0000493307 00000 n
+0000493371 00000 n
+0000493435 00000 n
+0000499194 00000 n
+0000495827 00000 n
+0000493663 00000 n
+0000495952 00000 n
+0000496016 00000 n
+0000496081 00000 n
+0000496146 00000 n
+0000496211 00000 n
+0000496276 00000 n
+0000496341 00000 n
+0000496406 00000 n
+0000496471 00000 n
+0000496536 00000 n
+0000496600 00000 n
+0000496665 00000 n
+0000496730 00000 n
+0000496795 00000 n
+0000496860 00000 n
+0000496925 00000 n
+0000496990 00000 n
+0000497055 00000 n
+0000497120 00000 n
+0000497184 00000 n
+0000497249 00000 n
+0000497314 00000 n
+0000497379 00000 n
+0000497444 00000 n
+0000497509 00000 n
+0000497574 00000 n
+0000497638 00000 n
+0000497703 00000 n
+0000497768 00000 n
+0000497833 00000 n
+0000497898 00000 n
+0000497963 00000 n
+0000498028 00000 n
+0000498093 00000 n
+0000498158 00000 n
+0000498223 00000 n
+0000498288 00000 n
+0000498353 00000 n
+0000498417 00000 n
+0000498482 00000 n
+0000498547 00000 n
+0000498612 00000 n
+0000498677 00000 n
+0000498742 00000 n
+0000498807 00000 n
+0000498872 00000 n
+0000498936 00000 n
0000499001 00000 n
-0000501364 00000 n
-0000501428 00000 n
-0000501493 00000 n
-0000501558 00000 n
-0000501623 00000 n
-0000501688 00000 n
-0000501753 00000 n
-0000501818 00000 n
-0000501883 00000 n
-0000501948 00000 n
-0000502013 00000 n
-0000502078 00000 n
-0000502142 00000 n
-0000502207 00000 n
-0000502272 00000 n
-0000502337 00000 n
-0000502402 00000 n
-0000502467 00000 n
-0000502532 00000 n
-0000502597 00000 n
-0000502661 00000 n
-0000502726 00000 n
-0000502791 00000 n
-0000502856 00000 n
-0000502921 00000 n
-0000502986 00000 n
-0000503051 00000 n
-0000503115 00000 n
-0000503180 00000 n
-0000503245 00000 n
-0000503310 00000 n
-0000503375 00000 n
-0000503440 00000 n
-0000503505 00000 n
-0000503570 00000 n
-0000503635 00000 n
-0000503698 00000 n
-0000503763 00000 n
-0000503828 00000 n
-0000503893 00000 n
-0000503958 00000 n
-0000504023 00000 n
-0000504088 00000 n
-0000504153 00000 n
-0000504218 00000 n
-0000504283 00000 n
-0000504347 00000 n
-0000504412 00000 n
-0000504476 00000 n
-0000509705 00000 n
-0000506533 00000 n
-0000504704 00000 n
-0000506658 00000 n
-0000506722 00000 n
-0000506787 00000 n
-0000506852 00000 n
-0000506917 00000 n
-0000506982 00000 n
-0000507047 00000 n
-0000507112 00000 n
-0000507177 00000 n
-0000507242 00000 n
-0000507307 00000 n
-0000507372 00000 n
-0000507437 00000 n
-0000507502 00000 n
-0000507567 00000 n
-0000507632 00000 n
-0000507696 00000 n
-0000507761 00000 n
-0000507826 00000 n
-0000507891 00000 n
-0000507956 00000 n
-0000508021 00000 n
-0000508086 00000 n
-0000508151 00000 n
-0000508216 00000 n
-0000508281 00000 n
-0000508346 00000 n
-0000508411 00000 n
-0000508476 00000 n
-0000508541 00000 n
-0000508606 00000 n
-0000508671 00000 n
-0000508798 00000 n
-0000508861 00000 n
-0000508926 00000 n
-0000508991 00000 n
-0000509056 00000 n
-0000509121 00000 n
-0000509186 00000 n
-0000509251 00000 n
-0000509316 00000 n
-0000509381 00000 n
-0000509446 00000 n
-0000509511 00000 n
-0000509576 00000 n
-0000509641 00000 n
-0001888571 00000 n
-0000515430 00000 n
-0000511872 00000 n
-0000509895 00000 n
-0000511997 00000 n
-0000512061 00000 n
-0000512126 00000 n
-0000512191 00000 n
-0000512256 00000 n
-0000512321 00000 n
-0000512386 00000 n
-0000512451 00000 n
-0000512516 00000 n
-0000512581 00000 n
-0000512646 00000 n
-0000512711 00000 n
-0000512776 00000 n
-0000512841 00000 n
-0000512906 00000 n
-0000512971 00000 n
-0000513036 00000 n
-0000513101 00000 n
-0000513162 00000 n
-0000513227 00000 n
-0000513292 00000 n
-0000513357 00000 n
-0000513422 00000 n
-0000513487 00000 n
-0000513552 00000 n
-0000513617 00000 n
-0000513682 00000 n
-0000513747 00000 n
-0000513812 00000 n
-0000513877 00000 n
-0000513942 00000 n
-0000514007 00000 n
-0000514072 00000 n
-0000514137 00000 n
-0000514202 00000 n
-0000514266 00000 n
-0000514331 00000 n
-0000514396 00000 n
-0000514461 00000 n
-0000514526 00000 n
-0000514591 00000 n
-0000514656 00000 n
-0000514721 00000 n
-0000514786 00000 n
-0000514913 00000 n
-0000514977 00000 n
-0000515042 00000 n
-0000515107 00000 n
-0000515172 00000 n
-0000515237 00000 n
-0000515302 00000 n
-0000515366 00000 n
-0000521350 00000 n
-0000517271 00000 n
-0000515633 00000 n
-0000517396 00000 n
-0000517460 00000 n
-0000517525 00000 n
-0000517590 00000 n
-0000517655 00000 n
-0000517720 00000 n
-0000517785 00000 n
-0000517850 00000 n
-0000517915 00000 n
-0000517980 00000 n
-0000518044 00000 n
-0000518109 00000 n
-0000518174 00000 n
-0000518239 00000 n
-0000518304 00000 n
-0000518369 00000 n
-0000518434 00000 n
-0000518499 00000 n
-0000518564 00000 n
-0000518628 00000 n
-0000518693 00000 n
-0000518758 00000 n
-0000518823 00000 n
-0000518888 00000 n
-0000518953 00000 n
-0000519018 00000 n
-0000519083 00000 n
-0000519148 00000 n
-0000519211 00000 n
-0000519276 00000 n
-0000519341 00000 n
-0000519406 00000 n
-0000519471 00000 n
-0000519536 00000 n
-0000519601 00000 n
-0000519666 00000 n
-0000519730 00000 n
-0000519795 00000 n
-0000519860 00000 n
-0000519925 00000 n
-0000519990 00000 n
-0000520055 00000 n
-0000520119 00000 n
-0000520184 00000 n
-0000520249 00000 n
-0000520314 00000 n
-0000520379 00000 n
-0000520444 00000 n
-0000520509 00000 n
-0000520574 00000 n
-0000520639 00000 n
-0000520703 00000 n
-0000520768 00000 n
-0000520833 00000 n
-0000520898 00000 n
-0000520963 00000 n
-0000521028 00000 n
-0000521092 00000 n
-0000521157 00000 n
-0000521222 00000 n
-0000521286 00000 n
-0000526724 00000 n
-0000524203 00000 n
-0000521501 00000 n
-0000524328 00000 n
-0000524454 00000 n
-0000524519 00000 n
-0000524584 00000 n
-0000524649 00000 n
-0000524714 00000 n
-0000524777 00000 n
-0000524842 00000 n
-0000524907 00000 n
-0000524972 00000 n
-0000525037 00000 n
-0000525102 00000 n
-0000525167 00000 n
-0000525232 00000 n
+0000499066 00000 n
+0000499130 00000 n
+0000504980 00000 n
+0000501613 00000 n
+0000499358 00000 n
+0000501738 00000 n
+0000501802 00000 n
+0000501867 00000 n
+0000501932 00000 n
+0000501997 00000 n
+0000502062 00000 n
+0000502126 00000 n
+0000502190 00000 n
+0000502255 00000 n
+0000502320 00000 n
+0000502385 00000 n
+0000502450 00000 n
+0000502515 00000 n
+0000502580 00000 n
+0000502645 00000 n
+0000502710 00000 n
+0000502774 00000 n
+0000502839 00000 n
+0000502904 00000 n
+0000502969 00000 n
+0000503034 00000 n
+0000503099 00000 n
+0000503164 00000 n
+0000503229 00000 n
+0000503294 00000 n
+0000503359 00000 n
+0000503424 00000 n
+0000503489 00000 n
+0000503554 00000 n
+0000503618 00000 n
+0000503683 00000 n
+0000503748 00000 n
+0000503813 00000 n
+0000503878 00000 n
+0000503943 00000 n
+0000504008 00000 n
+0000504073 00000 n
+0000504138 00000 n
+0000504203 00000 n
+0000504268 00000 n
+0000504333 00000 n
+0000504398 00000 n
+0000504463 00000 n
+0000504528 00000 n
+0000504592 00000 n
+0000504657 00000 n
+0000504722 00000 n
+0000504787 00000 n
+0000504852 00000 n
+0000504916 00000 n
+0000509796 00000 n
+0000506884 00000 n
+0000505144 00000 n
+0000507009 00000 n
+0000507073 00000 n
+0000507138 00000 n
+0000507202 00000 n
+0000507267 00000 n
+0000507332 00000 n
+0000507396 00000 n
+0000507461 00000 n
+0000507526 00000 n
+0000507591 00000 n
+0000507656 00000 n
+0000507721 00000 n
+0000507786 00000 n
+0000507851 00000 n
+0000507916 00000 n
+0000507980 00000 n
+0000508045 00000 n
+0000508110 00000 n
+0000508175 00000 n
+0000508240 00000 n
+0000508305 00000 n
+0000508370 00000 n
+0000508435 00000 n
+0000508500 00000 n
+0000508565 00000 n
+0000508630 00000 n
+0000508695 00000 n
+0000508760 00000 n
+0000508825 00000 n
+0000508890 00000 n
+0000508955 00000 n
+0000509020 00000 n
+0000509085 00000 n
+0000509150 00000 n
+0000509214 00000 n
+0000509279 00000 n
+0000509344 00000 n
+0000509409 00000 n
+0000509474 00000 n
+0000509539 00000 n
+0000509604 00000 n
+0000509669 00000 n
+0001892821 00000 n
+0000515558 00000 n
+0000511801 00000 n
+0000509960 00000 n
+0000511926 00000 n
+0000511990 00000 n
+0000512055 00000 n
+0000512120 00000 n
+0000512185 00000 n
+0000512250 00000 n
+0000512315 00000 n
+0000512378 00000 n
+0000512443 00000 n
+0000512508 00000 n
+0000512573 00000 n
+0000512638 00000 n
+0000512703 00000 n
+0000512768 00000 n
+0000512833 00000 n
+0000512898 00000 n
+0000512963 00000 n
+0000513028 00000 n
+0000513093 00000 n
+0000513158 00000 n
+0000513223 00000 n
+0000513288 00000 n
+0000513352 00000 n
+0000513417 00000 n
+0000513482 00000 n
+0000513547 00000 n
+0000513612 00000 n
+0000513677 00000 n
+0000513742 00000 n
+0000513807 00000 n
+0000513872 00000 n
+0000513937 00000 n
+0000514001 00000 n
+0000514066 00000 n
+0000514131 00000 n
+0000514196 00000 n
+0000514261 00000 n
+0000514326 00000 n
+0000514391 00000 n
+0000514456 00000 n
+0000514521 00000 n
+0000514586 00000 n
+0000514650 00000 n
+0000514715 00000 n
+0000514780 00000 n
+0000514845 00000 n
+0000514910 00000 n
+0000514975 00000 n
+0000515040 00000 n
+0000515105 00000 n
+0000515170 00000 n
+0000515234 00000 n
+0000515299 00000 n
+0000515364 00000 n
+0000515429 00000 n
+0000515494 00000 n
+0000521463 00000 n
+0000517710 00000 n
+0000515748 00000 n
+0000517835 00000 n
+0000517899 00000 n
+0000517964 00000 n
+0000518091 00000 n
+0000518156 00000 n
+0000518221 00000 n
+0000518286 00000 n
+0000518351 00000 n
+0000518416 00000 n
+0000518481 00000 n
+0000518546 00000 n
+0000518610 00000 n
+0000518675 00000 n
+0000518740 00000 n
+0000518805 00000 n
+0000518870 00000 n
+0000518935 00000 n
+0000519000 00000 n
+0000519065 00000 n
+0000519130 00000 n
+0000519194 00000 n
+0000519259 00000 n
+0000519324 00000 n
+0000519389 00000 n
+0000519454 00000 n
+0000519519 00000 n
+0000519584 00000 n
+0000519649 00000 n
+0000519714 00000 n
+0000519778 00000 n
+0000519843 00000 n
+0000519908 00000 n
+0000519973 00000 n
+0000520038 00000 n
+0000520103 00000 n
+0000520168 00000 n
+0000520233 00000 n
+0000520298 00000 n
+0000520362 00000 n
+0000520427 00000 n
+0000520492 00000 n
+0000520557 00000 n
+0000520622 00000 n
+0000520687 00000 n
+0000520752 00000 n
+0000520817 00000 n
+0000520881 00000 n
+0000520946 00000 n
+0000521011 00000 n
+0000521075 00000 n
+0000521140 00000 n
+0000521205 00000 n
+0000521270 00000 n
+0000521335 00000 n
+0000521399 00000 n
+0000526918 00000 n
+0000523747 00000 n
+0000521666 00000 n
+0000523872 00000 n
+0000523936 00000 n
+0000524001 00000 n
+0000524066 00000 n
+0000524131 00000 n
+0000524196 00000 n
+0000524261 00000 n
+0000524326 00000 n
+0000524391 00000 n
+0000524456 00000 n
+0000524521 00000 n
+0000524586 00000 n
+0000524651 00000 n
+0000524716 00000 n
+0000524781 00000 n
+0000524846 00000 n
+0000524911 00000 n
+0000525038 00000 n
+0000525103 00000 n
+0000525168 00000 n
+0000525233 00000 n
0000525297 00000 n
-0000525361 00000 n
-0000525426 00000 n
-0000525491 00000 n
-0000525556 00000 n
-0000525621 00000 n
-0000525686 00000 n
-0000525751 00000 n
-0000525816 00000 n
+0000525362 00000 n
+0000525427 00000 n
+0000525492 00000 n
+0000525557 00000 n
+0000525622 00000 n
+0000525687 00000 n
+0000525752 00000 n
+0000525817 00000 n
0000525881 00000 n
-0000525945 00000 n
-0000526010 00000 n
-0000526075 00000 n
-0000526140 00000 n
-0000526205 00000 n
-0000526270 00000 n
-0000526335 00000 n
-0000526399 00000 n
+0000525946 00000 n
+0000526011 00000 n
+0000526076 00000 n
+0000526141 00000 n
+0000526206 00000 n
+0000526271 00000 n
+0000526336 00000 n
+0000526401 00000 n
0000526464 00000 n
0000526529 00000 n
0000526594 00000 n
0000526659 00000 n
-0000532500 00000 n
-0000528745 00000 n
-0000526927 00000 n
-0000528870 00000 n
-0000528934 00000 n
-0000528999 00000 n
-0000529064 00000 n
-0000529129 00000 n
-0000529194 00000 n
-0000529259 00000 n
-0000529324 00000 n
-0000529389 00000 n
-0000529454 00000 n
-0000529518 00000 n
-0000529583 00000 n
-0000529648 00000 n
-0000529713 00000 n
-0000529778 00000 n
-0000529842 00000 n
-0000529907 00000 n
-0000529972 00000 n
-0000530037 00000 n
-0000530102 00000 n
-0000530167 00000 n
-0000530232 00000 n
-0000530297 00000 n
-0000530362 00000 n
-0000530425 00000 n
-0000530490 00000 n
-0000530555 00000 n
-0000530620 00000 n
-0000530685 00000 n
-0000530750 00000 n
-0000530815 00000 n
-0000530880 00000 n
-0000530945 00000 n
-0000531010 00000 n
-0000531074 00000 n
-0000531139 00000 n
-0000531204 00000 n
-0000531269 00000 n
-0000531334 00000 n
-0000531399 00000 n
-0000531464 00000 n
-0000531529 00000 n
-0000531594 00000 n
-0000531658 00000 n
-0000531723 00000 n
-0000531788 00000 n
-0000531853 00000 n
-0000531918 00000 n
-0000531983 00000 n
-0000532048 00000 n
-0000532113 00000 n
-0000532178 00000 n
-0000532242 00000 n
-0000532307 00000 n
-0000532372 00000 n
-0000532436 00000 n
-0000535768 00000 n
-0000538131 00000 n
-0000535595 00000 n
-0000532664 00000 n
-0000535926 00000 n
-0000535990 00000 n
-0000536055 00000 n
-0000536120 00000 n
-0000536185 00000 n
-0000536250 00000 n
-0000536315 00000 n
-0000536380 00000 n
-0000536445 00000 n
-0000536510 00000 n
-0001885674 00000 n
-0000536575 00000 n
-0000536639 00000 n
-0000536704 00000 n
-0000536769 00000 n
-0000536834 00000 n
-0000536899 00000 n
-0000536964 00000 n
-0000537029 00000 n
-0000537094 00000 n
-0000537159 00000 n
-0000537224 00000 n
-0000537288 00000 n
-0000537353 00000 n
-0000537418 00000 n
-0000537483 00000 n
-0000537548 00000 n
-0000537613 00000 n
-0000537678 00000 n
-0000537743 00000 n
-0000537808 00000 n
-0000537873 00000 n
-0000537938 00000 n
-0000538003 00000 n
-0000538067 00000 n
-0000535737 00000 n
-0000543978 00000 n
-0000541131 00000 n
-0000538374 00000 n
-0000541256 00000 n
-0000541320 00000 n
-0000541385 00000 n
-0000541450 00000 n
-0000541515 00000 n
-0000541580 00000 n
-0000541645 00000 n
-0000541710 00000 n
-0000541775 00000 n
-0000541840 00000 n
-0000541904 00000 n
-0000541969 00000 n
-0000542034 00000 n
-0000542099 00000 n
-0000542164 00000 n
-0000542229 00000 n
-0000542294 00000 n
-0000542359 00000 n
-0000542424 00000 n
-0000542488 00000 n
-0000542553 00000 n
-0000542618 00000 n
-0000542683 00000 n
-0000542748 00000 n
-0000542813 00000 n
-0000542878 00000 n
-0000542943 00000 n
-0000543008 00000 n
-0000543073 00000 n
-0000543137 00000 n
-0000543201 00000 n
-0000543266 00000 n
-0000543331 00000 n
-0000543396 00000 n
-0000543461 00000 n
-0000543526 00000 n
-0000543591 00000 n
-0000543656 00000 n
-0000543721 00000 n
-0000543786 00000 n
-0000543850 00000 n
-0000543914 00000 n
-0000547177 00000 n
-0000550055 00000 n
-0000547004 00000 n
-0000544168 00000 n
-0000547334 00000 n
-0000547398 00000 n
-0000547463 00000 n
-0000547528 00000 n
-0000547593 00000 n
-0000547658 00000 n
-0000547723 00000 n
-0000547788 00000 n
-0000547853 00000 n
-0000547918 00000 n
-0000547982 00000 n
-0000548047 00000 n
-0000548112 00000 n
-0000548177 00000 n
-0000548242 00000 n
-0000548307 00000 n
-0000548371 00000 n
-0000548436 00000 n
-0000548501 00000 n
-0000548566 00000 n
-0000548629 00000 n
-0000548694 00000 n
-0000548759 00000 n
-0000548823 00000 n
-0000548888 00000 n
-0000548953 00000 n
-0000549018 00000 n
-0000549083 00000 n
-0000549148 00000 n
-0000549213 00000 n
-0000549278 00000 n
-0000549343 00000 n
-0000549407 00000 n
-0000549472 00000 n
-0000549537 00000 n
-0000549602 00000 n
-0000549667 00000 n
-0000549732 00000 n
-0000549797 00000 n
-0000549862 00000 n
-0000549927 00000 n
-0000549991 00000 n
-0000547146 00000 n
-0000555792 00000 n
-0000552490 00000 n
-0000550310 00000 n
-0000552615 00000 n
-0000552679 00000 n
-0000552744 00000 n
-0000552809 00000 n
-0000552874 00000 n
-0000552939 00000 n
-0000553004 00000 n
-0000553069 00000 n
-0000553133 00000 n
-0000553198 00000 n
-0000553263 00000 n
-0000553328 00000 n
-0000553393 00000 n
-0000553458 00000 n
-0000553523 00000 n
-0000553587 00000 n
-0000553652 00000 n
-0000553717 00000 n
-0000553782 00000 n
-0000553847 00000 n
-0000553912 00000 n
-0000553977 00000 n
-0000554042 00000 n
-0000554107 00000 n
-0000554172 00000 n
-0000554237 00000 n
-0000554302 00000 n
-0000554367 00000 n
-0000554432 00000 n
-0000554497 00000 n
-0000554562 00000 n
-0000554627 00000 n
-0000554692 00000 n
-0000554757 00000 n
-0000554821 00000 n
-0000554886 00000 n
-0000554951 00000 n
-0000555016 00000 n
-0000555081 00000 n
-0000555146 00000 n
-0000555211 00000 n
-0000555276 00000 n
-0000555341 00000 n
-0000555405 00000 n
-0000555470 00000 n
-0000555535 00000 n
-0000555599 00000 n
-0000555664 00000 n
-0000555728 00000 n
-0000562555 00000 n
-0000559968 00000 n
-0000555982 00000 n
-0000560093 00000 n
-0000560157 00000 n
-0000560222 00000 n
-0000560287 00000 n
-0000560352 00000 n
-0000560417 00000 n
-0000560482 00000 n
-0000560547 00000 n
-0000560612 00000 n
-0000560677 00000 n
-0000560741 00000 n
-0000560806 00000 n
-0000560871 00000 n
-0000560936 00000 n
-0000561001 00000 n
-0000561066 00000 n
-0000561131 00000 n
-0000561195 00000 n
-0000561260 00000 n
-0000561325 00000 n
-0000561390 00000 n
-0000561455 00000 n
-0000561520 00000 n
-0000561585 00000 n
-0000561649 00000 n
-0000561714 00000 n
-0000561779 00000 n
-0000561844 00000 n
-0000561909 00000 n
-0000561974 00000 n
-0000562039 00000 n
-0000562104 00000 n
-0000562169 00000 n
-0000562233 00000 n
-0000562298 00000 n
-0000562363 00000 n
-0000562428 00000 n
-0000567490 00000 n
-0000564837 00000 n
-0000562798 00000 n
-0000564962 00000 n
-0000565026 00000 n
-0000565091 00000 n
-0000565154 00000 n
-0000565219 00000 n
-0000565284 00000 n
-0000565349 00000 n
-0000565414 00000 n
-0000565479 00000 n
-0000565544 00000 n
-0000565609 00000 n
-0000565674 00000 n
-0000565739 00000 n
-0000565804 00000 n
-0000565869 00000 n
-0000565934 00000 n
-0000565997 00000 n
-0000566062 00000 n
-0000566127 00000 n
-0000566192 00000 n
-0000566257 00000 n
-0000566322 00000 n
-0000566387 00000 n
-0000566452 00000 n
-0000566517 00000 n
-0000566581 00000 n
-0000566646 00000 n
-0000566711 00000 n
-0000566776 00000 n
-0000566841 00000 n
-0000566906 00000 n
-0000566971 00000 n
-0000567036 00000 n
-0000567101 00000 n
-0000567165 00000 n
-0000567230 00000 n
-0000567295 00000 n
-0000567360 00000 n
-0000567425 00000 n
-0001888736 00000 n
-0000573127 00000 n
-0000569762 00000 n
-0000567693 00000 n
-0000569887 00000 n
-0000569951 00000 n
-0000570016 00000 n
-0000570081 00000 n
-0000570146 00000 n
-0000570211 00000 n
-0000570275 00000 n
-0000570340 00000 n
-0000570405 00000 n
-0000570470 00000 n
-0000570535 00000 n
-0000570600 00000 n
-0000570665 00000 n
-0000570730 00000 n
-0000570795 00000 n
-0000570859 00000 n
-0000570924 00000 n
-0000570989 00000 n
-0000571054 00000 n
-0000571119 00000 n
-0000571184 00000 n
-0000571249 00000 n
-0000571314 00000 n
-0000571379 00000 n
-0000571442 00000 n
-0000571507 00000 n
-0000571572 00000 n
-0000571636 00000 n
-0000571701 00000 n
-0000571766 00000 n
-0000571831 00000 n
-0000571896 00000 n
-0000571961 00000 n
-0000572026 00000 n
-0000572091 00000 n
-0000572156 00000 n
-0000572220 00000 n
-0000572285 00000 n
-0000572350 00000 n
-0000572415 00000 n
-0000572480 00000 n
-0000572545 00000 n
-0000572610 00000 n
-0000572675 00000 n
-0000572740 00000 n
-0000572805 00000 n
-0000572869 00000 n
-0000572934 00000 n
-0000572999 00000 n
-0000573063 00000 n
-0000578980 00000 n
-0000574963 00000 n
-0000573291 00000 n
-0000575088 00000 n
-0000575152 00000 n
-0000575217 00000 n
-0000575282 00000 n
-0000575347 00000 n
-0000575412 00000 n
-0000575477 00000 n
-0000575542 00000 n
-0000575607 00000 n
-0000575672 00000 n
-0000575736 00000 n
-0000575801 00000 n
-0000575866 00000 n
-0000575931 00000 n
-0000575996 00000 n
-0000576061 00000 n
-0000576126 00000 n
-0000576191 00000 n
-0000576256 00000 n
-0000576320 00000 n
-0000576385 00000 n
-0000576450 00000 n
-0000576515 00000 n
-0000576580 00000 n
-0000576645 00000 n
-0000576710 00000 n
-0000576775 00000 n
-0000576840 00000 n
-0000576903 00000 n
-0000576968 00000 n
-0000577033 00000 n
-0000577098 00000 n
-0000577163 00000 n
-0000577228 00000 n
-0000577293 00000 n
-0000577358 00000 n
-0000577423 00000 n
-0000577487 00000 n
-0000577552 00000 n
-0000577617 00000 n
-0000577682 00000 n
-0000577747 00000 n
-0000577812 00000 n
-0000577877 00000 n
-0000577942 00000 n
-0000578007 00000 n
-0000578071 00000 n
-0000578136 00000 n
-0000578201 00000 n
-0000578266 00000 n
-0000578331 00000 n
-0000578396 00000 n
-0000578461 00000 n
-0000578526 00000 n
-0000578591 00000 n
-0000578655 00000 n
-0000578720 00000 n
-0000578785 00000 n
-0000578850 00000 n
-0000578915 00000 n
-0000584869 00000 n
-0000581957 00000 n
-0000579144 00000 n
-0000582082 00000 n
-0000582146 00000 n
-0000582211 00000 n
-0000582276 00000 n
-0000582341 00000 n
-0000582406 00000 n
-0000582471 00000 n
-0000582536 00000 n
-0000582601 00000 n
-0000582666 00000 n
-0000582731 00000 n
-0000582796 00000 n
-0000582861 00000 n
-0000582925 00000 n
-0000582990 00000 n
-0000583055 00000 n
-0000583120 00000 n
-0000583185 00000 n
-0000583249 00000 n
-0000583314 00000 n
-0000583379 00000 n
-0000583444 00000 n
-0000583509 00000 n
-0000583574 00000 n
-0000583639 00000 n
-0000583704 00000 n
-0000583767 00000 n
-0000583832 00000 n
-0000583897 00000 n
-0000583962 00000 n
-0000584027 00000 n
-0000584092 00000 n
-0000584157 00000 n
-0000584222 00000 n
-0000584287 00000 n
-0000584351 00000 n
-0000584416 00000 n
-0000584481 00000 n
-0000584546 00000 n
-0000584611 00000 n
-0000584676 00000 n
-0000584741 00000 n
-0000584805 00000 n
-0000590645 00000 n
-0000586563 00000 n
-0000585059 00000 n
-0000586688 00000 n
-0000586752 00000 n
-0000586817 00000 n
-0000586882 00000 n
-0000586947 00000 n
-0000587012 00000 n
-0000587077 00000 n
-0000587141 00000 n
-0000587206 00000 n
-0000587271 00000 n
-0000587336 00000 n
-0000587401 00000 n
-0000587466 00000 n
-0000587531 00000 n
-0000587596 00000 n
-0000587661 00000 n
-0000587726 00000 n
-0000587791 00000 n
-0000587856 00000 n
-0000587921 00000 n
-0000587986 00000 n
-0000588051 00000 n
-0000588116 00000 n
-0000588181 00000 n
-0000588246 00000 n
-0000588311 00000 n
-0000588375 00000 n
-0000588440 00000 n
-0000588505 00000 n
-0000588570 00000 n
-0000588635 00000 n
-0000588700 00000 n
-0000588765 00000 n
-0000588830 00000 n
-0000588895 00000 n
-0000588959 00000 n
-0000589024 00000 n
-0000589089 00000 n
-0000589154 00000 n
-0000589219 00000 n
-0000589283 00000 n
-0000589348 00000 n
-0000589413 00000 n
-0000589478 00000 n
-0000589543 00000 n
-0000589608 00000 n
-0000589673 00000 n
-0000589738 00000 n
-0000589803 00000 n
-0000589867 00000 n
-0000589932 00000 n
-0000589997 00000 n
-0000590062 00000 n
-0000590127 00000 n
-0000590192 00000 n
-0000590257 00000 n
-0000590322 00000 n
-0000590387 00000 n
-0000590452 00000 n
-0000590517 00000 n
-0000590581 00000 n
-0000595667 00000 n
-0000592949 00000 n
-0000590796 00000 n
-0000593074 00000 n
-0000593138 00000 n
-0000593203 00000 n
-0000593268 00000 n
-0000593333 00000 n
-0000593398 00000 n
-0000593463 00000 n
-0000593528 00000 n
-0000593593 00000 n
-0000593658 00000 n
-0000593722 00000 n
-0000593787 00000 n
-0000593852 00000 n
-0000593917 00000 n
-0000593980 00000 n
-0000594045 00000 n
-0000594110 00000 n
-0000594175 00000 n
-0000594240 00000 n
-0000594305 00000 n
-0000594370 00000 n
-0000594435 00000 n
-0000594500 00000 n
-0000594565 00000 n
-0000594629 00000 n
-0000594694 00000 n
-0000594759 00000 n
-0000594824 00000 n
-0000594889 00000 n
-0000594954 00000 n
-0000595019 00000 n
-0000595083 00000 n
-0000595148 00000 n
-0000595213 00000 n
-0000595278 00000 n
-0000595343 00000 n
-0000595408 00000 n
-0000595473 00000 n
-0000595537 00000 n
-0000595602 00000 n
-0000601518 00000 n
-0000598346 00000 n
-0000595844 00000 n
-0000598471 00000 n
-0000598535 00000 n
-0000598600 00000 n
-0000598665 00000 n
-0000598730 00000 n
-0000598795 00000 n
-0000598860 00000 n
-0000598925 00000 n
-0000598990 00000 n
-0000599055 00000 n
-0000599120 00000 n
-0000599185 00000 n
-0000599250 00000 n
-0000599315 00000 n
-0000599380 00000 n
-0000599445 00000 n
-0000599510 00000 n
-0000599573 00000 n
-0000599638 00000 n
-0000599702 00000 n
-0000599767 00000 n
-0000599832 00000 n
-0000599897 00000 n
-0000599962 00000 n
-0000600027 00000 n
-0000600092 00000 n
-0000600157 00000 n
-0000600222 00000 n
-0000600287 00000 n
-0000600352 00000 n
-0000600417 00000 n
-0000600482 00000 n
-0000600547 00000 n
-0000600612 00000 n
-0000600677 00000 n
-0000600742 00000 n
-0000600806 00000 n
-0000600871 00000 n
-0000600936 00000 n
-0000601001 00000 n
-0000601066 00000 n
-0000601131 00000 n
-0000601196 00000 n
-0000601260 00000 n
-0000601325 00000 n
-0000601390 00000 n
-0000601454 00000 n
-0000606785 00000 n
-0000603352 00000 n
-0000601682 00000 n
-0000603477 00000 n
-0000603541 00000 n
-0000603606 00000 n
-0000603671 00000 n
-0000603736 00000 n
-0000603801 00000 n
-0000603866 00000 n
-0000603931 00000 n
-0000603996 00000 n
-0000604061 00000 n
-0000604126 00000 n
-0000604191 00000 n
-0000604256 00000 n
-0000604321 00000 n
-0000604386 00000 n
-0000604450 00000 n
-0000604515 00000 n
-0000604580 00000 n
-0000604645 00000 n
-0000604710 00000 n
-0000604775 00000 n
-0000604840 00000 n
-0000604905 00000 n
-0000604970 00000 n
-0000605034 00000 n
-0000605099 00000 n
-0000605164 00000 n
-0000605229 00000 n
-0000605294 00000 n
-0000605359 00000 n
-0000605424 00000 n
-0000605489 00000 n
-0000605554 00000 n
-0000605618 00000 n
-0000605683 00000 n
-0000605748 00000 n
-0000605813 00000 n
-0000605878 00000 n
-0000605943 00000 n
-0000606008 00000 n
-0000606073 00000 n
-0000606138 00000 n
-0000606203 00000 n
-0000606268 00000 n
-0000606333 00000 n
-0000606397 00000 n
-0000606462 00000 n
-0000606527 00000 n
-0000606592 00000 n
-0000606657 00000 n
-0000606721 00000 n
-0000612602 00000 n
-0000608973 00000 n
-0000606962 00000 n
-0000609098 00000 n
-0000609162 00000 n
-0000609227 00000 n
-0000609292 00000 n
-0000609357 00000 n
-0000609422 00000 n
-0000609487 00000 n
-0000609552 00000 n
-0000609617 00000 n
-0000609682 00000 n
-0000609746 00000 n
-0000609811 00000 n
-0000609876 00000 n
-0000609941 00000 n
-0000610006 00000 n
-0000610071 00000 n
-0000610136 00000 n
-0000610201 00000 n
-0000610266 00000 n
-0000610331 00000 n
-0000610395 00000 n
-0000610460 00000 n
-0000610525 00000 n
-0000610590 00000 n
-0000610655 00000 n
-0000610720 00000 n
-0000610785 00000 n
-0000610850 00000 n
-0000610915 00000 n
-0000610979 00000 n
-0000611044 00000 n
-0000611109 00000 n
-0000611174 00000 n
-0000611239 00000 n
-0000611304 00000 n
-0000611369 00000 n
-0000611434 00000 n
-0000611499 00000 n
-0000611564 00000 n
-0000611628 00000 n
-0000611693 00000 n
-0000611758 00000 n
-0000611823 00000 n
-0000611888 00000 n
-0000611953 00000 n
-0000612018 00000 n
-0000612082 00000 n
-0000612147 00000 n
-0000612212 00000 n
-0000612277 00000 n
-0000612342 00000 n
-0000612407 00000 n
-0000612472 00000 n
-0000612537 00000 n
-0000617711 00000 n
-0000614737 00000 n
-0000612779 00000 n
-0000614862 00000 n
-0000614926 00000 n
-0000614991 00000 n
-0000615056 00000 n
-0000615120 00000 n
-0000615185 00000 n
-0000615250 00000 n
-0000615315 00000 n
-0000615380 00000 n
-0000615445 00000 n
-0000615510 00000 n
-0000615575 00000 n
-0000615640 00000 n
-0000615705 00000 n
-0000615770 00000 n
-0000615835 00000 n
-0000615899 00000 n
-0000615964 00000 n
-0000616029 00000 n
-0000616094 00000 n
-0000616159 00000 n
-0000616220 00000 n
-0000616285 00000 n
-0000616350 00000 n
-0000616415 00000 n
-0000616480 00000 n
-0000616545 00000 n
-0000616609 00000 n
-0000616674 00000 n
-0000616739 00000 n
-0000616804 00000 n
-0000616869 00000 n
-0000616934 00000 n
-0000616999 00000 n
-0000617064 00000 n
-0000617129 00000 n
-0000617194 00000 n
-0000617259 00000 n
-0000617323 00000 n
-0000617388 00000 n
-0000617453 00000 n
-0000617518 00000 n
-0000617583 00000 n
-0000617647 00000 n
-0000622946 00000 n
-0000620032 00000 n
-0000617914 00000 n
-0000620157 00000 n
-0000620221 00000 n
-0000620286 00000 n
-0000620351 00000 n
-0000620416 00000 n
-0000620481 00000 n
-0000620546 00000 n
-0000620611 00000 n
-0000620676 00000 n
-0000620741 00000 n
-0000620806 00000 n
-0000620871 00000 n
-0000620935 00000 n
-0000621000 00000 n
-0000621065 00000 n
-0000621130 00000 n
-0000621195 00000 n
-0000621260 00000 n
-0000621325 00000 n
-0000621389 00000 n
-0000621454 00000 n
-0000621519 00000 n
-0000621584 00000 n
-0000621649 00000 n
-0000621714 00000 n
-0000621779 00000 n
-0000621844 00000 n
-0000621909 00000 n
-0000621973 00000 n
-0000622038 00000 n
-0000622103 00000 n
-0000622168 00000 n
-0000622233 00000 n
-0000622298 00000 n
-0000622362 00000 n
-0000622427 00000 n
-0000622492 00000 n
-0000622557 00000 n
-0000622622 00000 n
-0000622687 00000 n
-0000622752 00000 n
-0000622816 00000 n
-0000622881 00000 n
-0001888901 00000 n
-0000628193 00000 n
-0000625345 00000 n
-0000623123 00000 n
-0000625470 00000 n
-0000625534 00000 n
-0000625598 00000 n
-0000625663 00000 n
-0000625728 00000 n
-0000625793 00000 n
-0000625858 00000 n
-0000625923 00000 n
-0000625988 00000 n
-0000626053 00000 n
-0000626118 00000 n
-0000626182 00000 n
-0000626247 00000 n
-0000626312 00000 n
-0000626377 00000 n
-0000626442 00000 n
-0000626506 00000 n
-0000626571 00000 n
-0000626636 00000 n
-0000626701 00000 n
-0000626766 00000 n
-0000626831 00000 n
-0000626896 00000 n
-0000626961 00000 n
-0000627026 00000 n
-0000627091 00000 n
-0000627156 00000 n
-0000627221 00000 n
-0000627285 00000 n
-0000627350 00000 n
-0000627415 00000 n
-0000627480 00000 n
-0000627545 00000 n
-0000627610 00000 n
-0000627675 00000 n
-0000627740 00000 n
-0000627805 00000 n
-0000627870 00000 n
-0000627935 00000 n
-0000628000 00000 n
-0000628065 00000 n
-0000628129 00000 n
-0000633064 00000 n
-0000630024 00000 n
+0000526724 00000 n
+0000526789 00000 n
+0000526854 00000 n
+0000532639 00000 n
+0000529662 00000 n
+0000527121 00000 n
+0000529787 00000 n
+0000529851 00000 n
+0000529916 00000 n
+0000529981 00000 n
+0000530045 00000 n
+0000530110 00000 n
+0000530174 00000 n
+0000530239 00000 n
+0000530304 00000 n
+0000530369 00000 n
+0000530434 00000 n
+0000530499 00000 n
+0000530564 00000 n
+0000530629 00000 n
+0000530694 00000 n
+0000530759 00000 n
+0000530823 00000 n
+0000530888 00000 n
+0000530953 00000 n
+0000531018 00000 n
+0000531083 00000 n
+0000531148 00000 n
+0000531213 00000 n
+0000531277 00000 n
+0000531342 00000 n
+0000531407 00000 n
+0000531472 00000 n
+0000531537 00000 n
+0000531602 00000 n
+0000531667 00000 n
+0000531732 00000 n
+0000531797 00000 n
+0000531861 00000 n
+0000531926 00000 n
+0000531991 00000 n
+0000532056 00000 n
+0000532121 00000 n
+0000532186 00000 n
+0000532251 00000 n
+0000532316 00000 n
+0000532381 00000 n
+0000532446 00000 n
+0000532511 00000 n
+0000532575 00000 n
+0000535592 00000 n
+0000538798 00000 n
+0000535419 00000 n
+0000532803 00000 n
+0000535750 00000 n
+0000535814 00000 n
+0000535879 00000 n
+0000535944 00000 n
+0000536009 00000 n
+0000536074 00000 n
+0000536139 00000 n
+0000536204 00000 n
+0000536269 00000 n
+0000536334 00000 n
+0000536398 00000 n
+0000536463 00000 n
+0000536528 00000 n
+0000536593 00000 n
+0000536658 00000 n
+0000536723 00000 n
+0000536788 00000 n
+0000536853 00000 n
+0000536918 00000 n
+0000536982 00000 n
+0000537047 00000 n
+0000537112 00000 n
+0000537177 00000 n
+0000537242 00000 n
+0000537307 00000 n
+0000537372 00000 n
+0000537437 00000 n
+0000537502 00000 n
+0001889924 00000 n
+0000537567 00000 n
+0000537630 00000 n
+0000537695 00000 n
+0000537760 00000 n
+0000537825 00000 n
+0000537890 00000 n
+0000537955 00000 n
+0000538020 00000 n
+0000538085 00000 n
+0000538150 00000 n
+0000538215 00000 n
+0000538279 00000 n
+0000538344 00000 n
+0000538409 00000 n
+0000538474 00000 n
+0000538539 00000 n
+0000538604 00000 n
+0000538669 00000 n
+0000538734 00000 n
+0000535561 00000 n
+0000544128 00000 n
+0000541666 00000 n
+0000539041 00000 n
+0000541791 00000 n
+0000541855 00000 n
+0000541920 00000 n
+0000541985 00000 n
+0000542050 00000 n
+0000542115 00000 n
+0000542180 00000 n
+0000542245 00000 n
+0000542310 00000 n
+0000542375 00000 n
+0000542440 00000 n
+0000542505 00000 n
+0000542570 00000 n
+0000542635 00000 n
+0000542700 00000 n
+0000542765 00000 n
+0000542830 00000 n
+0000542895 00000 n
+0000542960 00000 n
+0000543025 00000 n
+0000543089 00000 n
+0000543154 00000 n
+0000543219 00000 n
+0000543284 00000 n
+0000543349 00000 n
+0000543414 00000 n
+0000543479 00000 n
+0000543544 00000 n
+0000543609 00000 n
+0000543673 00000 n
+0000543738 00000 n
+0000543803 00000 n
+0000543868 00000 n
+0000543933 00000 n
+0000543998 00000 n
+0000544063 00000 n
+0000547626 00000 n
+0000549988 00000 n
+0000547453 00000 n
+0000544318 00000 n
+0000547783 00000 n
+0000547847 00000 n
+0000547912 00000 n
+0000547977 00000 n
+0000548042 00000 n
+0000548107 00000 n
+0000548172 00000 n
+0000548237 00000 n
+0000548300 00000 n
+0000548365 00000 n
+0000548430 00000 n
+0000548495 00000 n
+0000548560 00000 n
+0000548625 00000 n
+0000548690 00000 n
+0000548755 00000 n
+0000548820 00000 n
+0000548885 00000 n
+0000548950 00000 n
+0000549015 00000 n
+0000549080 00000 n
+0000549145 00000 n
+0000549210 00000 n
+0000549275 00000 n
+0000549340 00000 n
+0000549405 00000 n
+0000549470 00000 n
+0000549535 00000 n
+0000549600 00000 n
+0000549665 00000 n
+0000549730 00000 n
+0000549795 00000 n
+0000549859 00000 n
+0000549924 00000 n
+0000547595 00000 n
+0000555700 00000 n
+0000552334 00000 n
+0000550243 00000 n
+0000552459 00000 n
+0000552523 00000 n
+0000552588 00000 n
+0000552653 00000 n
+0000552718 00000 n
+0000552783 00000 n
+0000552848 00000 n
+0000552913 00000 n
+0000552978 00000 n
+0000553043 00000 n
+0000553108 00000 n
+0000553172 00000 n
+0000553237 00000 n
+0000553302 00000 n
+0000553367 00000 n
+0000553432 00000 n
+0000553497 00000 n
+0000553562 00000 n
+0000553627 00000 n
+0000553692 00000 n
+0000553756 00000 n
+0000553821 00000 n
+0000553886 00000 n
+0000553951 00000 n
+0000554016 00000 n
+0000554080 00000 n
+0000554145 00000 n
+0000554210 00000 n
+0000554275 00000 n
+0000554340 00000 n
+0000554405 00000 n
+0000554469 00000 n
+0000554534 00000 n
+0000554599 00000 n
+0000554664 00000 n
+0000554729 00000 n
+0000554794 00000 n
+0000554859 00000 n
+0000554924 00000 n
+0000554989 00000 n
+0000555053 00000 n
+0000555118 00000 n
+0000555182 00000 n
+0000555247 00000 n
+0000555312 00000 n
+0000555377 00000 n
+0000555442 00000 n
+0000555507 00000 n
+0000555572 00000 n
+0000555636 00000 n
+0000561667 00000 n
+0000557915 00000 n
+0000555890 00000 n
+0000558040 00000 n
+0000558104 00000 n
+0000558169 00000 n
+0000558234 00000 n
+0000558299 00000 n
+0000558364 00000 n
+0000558429 00000 n
+0000558494 00000 n
+0000558559 00000 n
+0000558624 00000 n
+0000558688 00000 n
+0000558753 00000 n
+0000558818 00000 n
+0000558883 00000 n
+0000558948 00000 n
+0000559013 00000 n
+0000559078 00000 n
+0000559142 00000 n
+0000559207 00000 n
+0000559272 00000 n
+0000559337 00000 n
+0000559402 00000 n
+0000559467 00000 n
+0000559532 00000 n
+0000559597 00000 n
+0000559662 00000 n
+0000559726 00000 n
+0000559791 00000 n
+0000559856 00000 n
+0000559921 00000 n
+0000559986 00000 n
+0000560051 00000 n
+0000560116 00000 n
+0000560181 00000 n
+0000560246 00000 n
+0000560310 00000 n
+0000560375 00000 n
+0000560440 00000 n
+0000560505 00000 n
+0000560570 00000 n
+0000560635 00000 n
+0000560700 00000 n
+0000560765 00000 n
+0000560830 00000 n
+0000560894 00000 n
+0000560959 00000 n
+0000561024 00000 n
+0000561089 00000 n
+0000561154 00000 n
+0000561219 00000 n
+0000561284 00000 n
+0000561349 00000 n
+0000561414 00000 n
+0000561477 00000 n
+0000561542 00000 n
+0000567678 00000 n
+0000565935 00000 n
+0000561831 00000 n
+0000566060 00000 n
+0000566124 00000 n
+0000566189 00000 n
+0000566254 00000 n
+0000566319 00000 n
+0000566382 00000 n
+0000566447 00000 n
+0000566512 00000 n
+0000566577 00000 n
+0000566642 00000 n
+0000566707 00000 n
+0000566772 00000 n
+0000566836 00000 n
+0000566901 00000 n
+0000566966 00000 n
+0000567031 00000 n
+0000567096 00000 n
+0000567161 00000 n
+0000567226 00000 n
+0000567290 00000 n
+0000567355 00000 n
+0000567420 00000 n
+0000567485 00000 n
+0000567550 00000 n
+0000567614 00000 n
+0001892986 00000 n
+0000573464 00000 n
+0000569968 00000 n
+0000567921 00000 n
+0000570093 00000 n
+0000570157 00000 n
+0000570222 00000 n
+0000570287 00000 n
+0000570352 00000 n
+0000570417 00000 n
+0000570482 00000 n
+0000570547 00000 n
+0000570612 00000 n
+0000570677 00000 n
+0000570741 00000 n
+0000570806 00000 n
+0000570871 00000 n
+0000570936 00000 n
+0000571001 00000 n
+0000571066 00000 n
+0000571131 00000 n
+0000571196 00000 n
+0000571261 00000 n
+0000571326 00000 n
+0000571391 00000 n
+0000571456 00000 n
+0000571519 00000 n
+0000571584 00000 n
+0000571649 00000 n
+0000571714 00000 n
+0000571779 00000 n
+0000571844 00000 n
+0000571909 00000 n
+0000571974 00000 n
+0000572039 00000 n
+0000572103 00000 n
+0000572168 00000 n
+0000572233 00000 n
+0000572298 00000 n
+0000572363 00000 n
+0000572428 00000 n
+0000572493 00000 n
+0000572558 00000 n
+0000572623 00000 n
+0000572687 00000 n
+0000572752 00000 n
+0000572817 00000 n
+0000572881 00000 n
+0000572946 00000 n
+0000573011 00000 n
+0000573076 00000 n
+0000573141 00000 n
+0000573206 00000 n
+0000573271 00000 n
+0000573336 00000 n
+0000573401 00000 n
+0000579293 00000 n
+0000575148 00000 n
+0000573641 00000 n
+0000575273 00000 n
+0000575337 00000 n
+0000575402 00000 n
+0000575466 00000 n
+0000575531 00000 n
+0000575596 00000 n
+0000575661 00000 n
+0000575726 00000 n
+0000575791 00000 n
+0000575856 00000 n
+0000575921 00000 n
+0000575986 00000 n
+0000576050 00000 n
+0000576115 00000 n
+0000576180 00000 n
+0000576245 00000 n
+0000576310 00000 n
+0000576375 00000 n
+0000576440 00000 n
+0000576505 00000 n
+0000576570 00000 n
+0000576634 00000 n
+0000576699 00000 n
+0000576764 00000 n
+0000576829 00000 n
+0000576894 00000 n
+0000576959 00000 n
+0000577024 00000 n
+0000577089 00000 n
+0000577154 00000 n
+0000577218 00000 n
+0000577283 00000 n
+0000577348 00000 n
+0000577413 00000 n
+0000577478 00000 n
+0000577543 00000 n
+0000577608 00000 n
+0000577673 00000 n
+0000577738 00000 n
+0000577803 00000 n
+0000577867 00000 n
+0000577932 00000 n
+0000577997 00000 n
+0000578062 00000 n
+0000578127 00000 n
+0000578192 00000 n
+0000578257 00000 n
+0000578322 00000 n
+0000578387 00000 n
+0000578451 00000 n
+0000578516 00000 n
+0000578581 00000 n
+0000578646 00000 n
+0000578711 00000 n
+0000578776 00000 n
+0000578841 00000 n
+0000578906 00000 n
+0000578971 00000 n
+0000579035 00000 n
+0000579100 00000 n
+0000579165 00000 n
+0000579229 00000 n
+0000585134 00000 n
+0000582482 00000 n
+0000579457 00000 n
+0000582607 00000 n
+0000582671 00000 n
+0000582736 00000 n
+0000582801 00000 n
+0000582866 00000 n
+0000582931 00000 n
+0000582996 00000 n
+0000583061 00000 n
+0000583126 00000 n
+0000583191 00000 n
+0000583256 00000 n
+0000583321 00000 n
+0000583386 00000 n
+0000583451 00000 n
+0000583516 00000 n
+0000583580 00000 n
+0000583645 00000 n
+0000583710 00000 n
+0000583775 00000 n
+0000583840 00000 n
+0000583905 00000 n
+0000583970 00000 n
+0000584035 00000 n
+0000584100 00000 n
+0000584165 00000 n
+0000584230 00000 n
+0000584294 00000 n
+0000584359 00000 n
+0000584424 00000 n
+0000584489 00000 n
+0000584554 00000 n
+0000584619 00000 n
+0000584684 00000 n
+0000584748 00000 n
+0000584811 00000 n
+0000584876 00000 n
+0000584941 00000 n
+0000585006 00000 n
+0000585070 00000 n
+0000591024 00000 n
+0000586813 00000 n
+0000585324 00000 n
+0000586938 00000 n
+0000587002 00000 n
+0000587067 00000 n
+0000587132 00000 n
+0000587197 00000 n
+0000587262 00000 n
+0000587327 00000 n
+0000587392 00000 n
+0000587457 00000 n
+0000587522 00000 n
+0000587586 00000 n
+0000587651 00000 n
+0000587716 00000 n
+0000587781 00000 n
+0000587846 00000 n
+0000587911 00000 n
+0000587976 00000 n
+0000588041 00000 n
+0000588106 00000 n
+0000588171 00000 n
+0000588236 00000 n
+0000588301 00000 n
+0000588366 00000 n
+0000588431 00000 n
+0000588496 00000 n
+0000588561 00000 n
+0000588625 00000 n
+0000588690 00000 n
+0000588755 00000 n
+0000588820 00000 n
+0000588885 00000 n
+0000588950 00000 n
+0000589015 00000 n
+0000589080 00000 n
+0000589145 00000 n
+0000589209 00000 n
+0000589274 00000 n
+0000589339 00000 n
+0000589404 00000 n
+0000589469 00000 n
+0000589534 00000 n
+0000589599 00000 n
+0000589664 00000 n
+0000589729 00000 n
+0000589793 00000 n
+0000589858 00000 n
+0000589923 00000 n
+0000589988 00000 n
+0000590053 00000 n
+0000590118 00000 n
+0000590183 00000 n
+0000590248 00000 n
+0000590313 00000 n
+0000590378 00000 n
+0000590442 00000 n
+0000590507 00000 n
+0000590572 00000 n
+0000590637 00000 n
+0000590702 00000 n
+0000590767 00000 n
+0000590832 00000 n
+0000590897 00000 n
+0000590961 00000 n
+0000596864 00000 n
+0000593373 00000 n
+0000591175 00000 n
+0000593498 00000 n
+0000593562 00000 n
+0000593627 00000 n
+0000593692 00000 n
+0000593757 00000 n
+0000593822 00000 n
+0000593886 00000 n
+0000593951 00000 n
+0000594016 00000 n
+0000594081 00000 n
+0000594146 00000 n
+0000594211 00000 n
+0000594276 00000 n
+0000594341 00000 n
+0000594404 00000 n
+0000594469 00000 n
+0000594534 00000 n
+0000594599 00000 n
+0000594664 00000 n
+0000594729 00000 n
+0000594794 00000 n
+0000594859 00000 n
+0000594924 00000 n
+0000594988 00000 n
+0000595053 00000 n
+0000595118 00000 n
+0000595183 00000 n
+0000595248 00000 n
+0000595312 00000 n
+0000595377 00000 n
+0000595442 00000 n
+0000595507 00000 n
+0000595572 00000 n
+0000595637 00000 n
+0000595702 00000 n
+0000595767 00000 n
+0000595831 00000 n
+0000595896 00000 n
+0000595961 00000 n
+0000596026 00000 n
+0000596091 00000 n
+0000596152 00000 n
+0000596217 00000 n
+0000596282 00000 n
+0000596347 00000 n
+0000596412 00000 n
+0000596476 00000 n
+0000596541 00000 n
+0000596606 00000 n
+0000596671 00000 n
+0000596736 00000 n
+0000596800 00000 n
+0000601768 00000 n
+0000599116 00000 n
+0000597028 00000 n
+0000599241 00000 n
+0000599305 00000 n
+0000599370 00000 n
+0000599435 00000 n
+0000599500 00000 n
+0000599564 00000 n
+0000599629 00000 n
+0000599694 00000 n
+0000599759 00000 n
+0000599824 00000 n
+0000599889 00000 n
+0000599954 00000 n
+0000600019 00000 n
+0000600084 00000 n
+0000600147 00000 n
+0000600212 00000 n
+0000600277 00000 n
+0000600342 00000 n
+0000600407 00000 n
+0000600472 00000 n
+0000600537 00000 n
+0000600602 00000 n
+0000600667 00000 n
+0000600732 00000 n
+0000600797 00000 n
+0000600862 00000 n
+0000600926 00000 n
+0000600991 00000 n
+0000601056 00000 n
+0000601121 00000 n
+0000601186 00000 n
+0000601251 00000 n
+0000601316 00000 n
+0000601380 00000 n
+0000601445 00000 n
+0000601510 00000 n
+0000601575 00000 n
+0000601640 00000 n
+0000601704 00000 n
+0000607082 00000 n
+0000603975 00000 n
+0000601945 00000 n
+0000604100 00000 n
+0000604164 00000 n
+0000604229 00000 n
+0000604294 00000 n
+0000604359 00000 n
+0000604424 00000 n
+0000604488 00000 n
+0000604553 00000 n
+0000604618 00000 n
+0000604683 00000 n
+0000604747 00000 n
+0000604812 00000 n
+0000604877 00000 n
+0000604942 00000 n
+0000605007 00000 n
+0000605072 00000 n
+0000605137 00000 n
+0000605202 00000 n
+0000605267 00000 n
+0000605332 00000 n
+0000605397 00000 n
+0000605462 00000 n
+0000605527 00000 n
+0000605591 00000 n
+0000605656 00000 n
+0000605721 00000 n
+0000605786 00000 n
+0000605851 00000 n
+0000605916 00000 n
+0000605981 00000 n
+0000606046 00000 n
+0000606111 00000 n
+0000606175 00000 n
+0000606240 00000 n
+0000606305 00000 n
+0000606370 00000 n
+0000606435 00000 n
+0000606500 00000 n
+0000606565 00000 n
+0000606630 00000 n
+0000606695 00000 n
+0000606759 00000 n
+0000606824 00000 n
+0000606889 00000 n
+0000606954 00000 n
+0000607018 00000 n
+0000613158 00000 n
+0000609208 00000 n
+0000607259 00000 n
+0000609333 00000 n
+0000609397 00000 n
+0000609462 00000 n
+0000609527 00000 n
+0000609592 00000 n
+0000609657 00000 n
+0000609722 00000 n
+0000609787 00000 n
+0000609852 00000 n
+0000609917 00000 n
+0000609981 00000 n
+0000610046 00000 n
+0000610111 00000 n
+0000610176 00000 n
+0000610241 00000 n
+0000610306 00000 n
+0000610371 00000 n
+0000610436 00000 n
+0000610501 00000 n
+0000610565 00000 n
+0000610630 00000 n
+0000610695 00000 n
+0000610760 00000 n
+0000610825 00000 n
+0000610890 00000 n
+0000610955 00000 n
+0000611020 00000 n
+0000611085 00000 n
+0000611150 00000 n
+0000611215 00000 n
+0000611280 00000 n
+0000611345 00000 n
+0000611409 00000 n
+0000611474 00000 n
+0000611539 00000 n
+0000611604 00000 n
+0000611669 00000 n
+0000611734 00000 n
+0000611799 00000 n
+0000611864 00000 n
+0000611929 00000 n
+0000611992 00000 n
+0000612057 00000 n
+0000612122 00000 n
+0000612187 00000 n
+0000612252 00000 n
+0000612317 00000 n
+0000612382 00000 n
+0000612447 00000 n
+0000612512 00000 n
+0000612577 00000 n
+0000612641 00000 n
+0000612706 00000 n
+0000612770 00000 n
+0000612835 00000 n
+0000612900 00000 n
+0000612965 00000 n
+0000613030 00000 n
+0000613094 00000 n
+0000617966 00000 n
+0000615117 00000 n
+0000613309 00000 n
+0000615242 00000 n
+0000615306 00000 n
+0000615371 00000 n
+0000615436 00000 n
+0000615501 00000 n
+0000615566 00000 n
+0000615631 00000 n
+0000615696 00000 n
+0000615761 00000 n
+0000615826 00000 n
+0000615891 00000 n
+0000615956 00000 n
+0000616021 00000 n
+0000616086 00000 n
+0000616151 00000 n
+0000616216 00000 n
+0000616281 00000 n
+0000616346 00000 n
+0000616410 00000 n
+0000616475 00000 n
+0000616540 00000 n
+0000616605 00000 n
+0000616670 00000 n
+0000616735 00000 n
+0000616800 00000 n
+0000616865 00000 n
+0000616930 00000 n
+0000616994 00000 n
+0000617059 00000 n
+0000617124 00000 n
+0000617189 00000 n
+0000617254 00000 n
+0000617319 00000 n
+0000617384 00000 n
+0000617449 00000 n
+0000617514 00000 n
+0000617578 00000 n
+0000617643 00000 n
+0000617708 00000 n
+0000617773 00000 n
+0000617838 00000 n
+0000617902 00000 n
+0000623585 00000 n
+0000620413 00000 n
+0000618169 00000 n
+0000620538 00000 n
+0000620602 00000 n
+0000620667 00000 n
+0000620731 00000 n
+0000620796 00000 n
+0000620861 00000 n
+0000620926 00000 n
+0000620991 00000 n
+0000621056 00000 n
+0000621121 00000 n
+0000621186 00000 n
+0000621251 00000 n
+0000621315 00000 n
+0000621380 00000 n
+0000621445 00000 n
+0000621509 00000 n
+0000621574 00000 n
+0000621639 00000 n
+0000621704 00000 n
+0000621769 00000 n
+0000621834 00000 n
+0000621899 00000 n
+0000621964 00000 n
+0000622029 00000 n
+0000622094 00000 n
+0000622159 00000 n
+0000622224 00000 n
+0000622289 00000 n
+0000622354 00000 n
+0000622419 00000 n
+0000622484 00000 n
+0000622547 00000 n
+0000622612 00000 n
+0000622677 00000 n
+0000622742 00000 n
+0000622807 00000 n
+0000622872 00000 n
+0000622937 00000 n
+0000623002 00000 n
+0000623067 00000 n
+0000623132 00000 n
+0000623197 00000 n
+0000623262 00000 n
+0000623327 00000 n
+0000623392 00000 n
+0000623457 00000 n
+0000623521 00000 n
+0001893151 00000 n
+0000628590 00000 n
+0000625870 00000 n
+0000623762 00000 n
+0000625995 00000 n
+0000626059 00000 n
+0000626124 00000 n
+0000626189 00000 n
+0000626254 00000 n
+0000626319 00000 n
+0000626384 00000 n
+0000626449 00000 n
+0000626514 00000 n
+0000626579 00000 n
+0000626644 00000 n
+0000626709 00000 n
+0000626774 00000 n
+0000626838 00000 n
+0000626903 00000 n
+0000626968 00000 n
+0000627033 00000 n
+0000627098 00000 n
+0000627163 00000 n
+0000627228 00000 n
+0000627293 00000 n
+0000627358 00000 n
+0000627423 00000 n
+0000627488 00000 n
+0000627553 00000 n
+0000627618 00000 n
+0000627683 00000 n
+0000627748 00000 n
+0000627813 00000 n
+0000627878 00000 n
+0000627943 00000 n
+0000628008 00000 n
+0000628073 00000 n
+0000628138 00000 n
+0000628202 00000 n
+0000628267 00000 n
+0000628332 00000 n
0000628397 00000 n
-0000630149 00000 n
-0000630213 00000 n
-0000630278 00000 n
-0000630342 00000 n
-0000630407 00000 n
-0000630472 00000 n
-0000630537 00000 n
-0000630602 00000 n
-0000630667 00000 n
-0000630732 00000 n
-0000630797 00000 n
-0000630862 00000 n
-0000630927 00000 n
-0000630991 00000 n
-0000631056 00000 n
-0000631121 00000 n
-0000631186 00000 n
-0000631251 00000 n
-0000631316 00000 n
-0000631381 00000 n
-0000631446 00000 n
-0000631511 00000 n
-0000631575 00000 n
-0000631640 00000 n
-0000631705 00000 n
-0000631770 00000 n
-0000631835 00000 n
-0000631900 00000 n
-0000631965 00000 n
-0000632030 00000 n
-0000632095 00000 n
-0000632158 00000 n
-0000632223 00000 n
-0000632288 00000 n
-0000632353 00000 n
-0000632418 00000 n
-0000632483 00000 n
-0000632548 00000 n
-0000632613 00000 n
-0000632678 00000 n
-0000632742 00000 n
-0000632807 00000 n
-0000632872 00000 n
-0000632937 00000 n
-0000637728 00000 n
-0000635269 00000 n
-0000633241 00000 n
-0000635394 00000 n
-0000635458 00000 n
-0000635523 00000 n
-0000635588 00000 n
-0000635653 00000 n
-0000635718 00000 n
-0000635782 00000 n
-0000635847 00000 n
-0000635912 00000 n
-0000635977 00000 n
-0000636042 00000 n
-0000636107 00000 n
-0000636172 00000 n
-0000636237 00000 n
-0000636302 00000 n
-0000636367 00000 n
-0000636432 00000 n
-0000636497 00000 n
-0000636562 00000 n
-0000636627 00000 n
-0000636692 00000 n
-0000636757 00000 n
-0000636821 00000 n
-0000636886 00000 n
-0000636951 00000 n
-0000637016 00000 n
-0000637081 00000 n
-0000637146 00000 n
-0000637211 00000 n
-0000637276 00000 n
-0000637340 00000 n
-0000637405 00000 n
-0000637470 00000 n
-0000637535 00000 n
-0000637600 00000 n
-0000637664 00000 n
-0000643746 00000 n
-0000640506 00000 n
-0000637931 00000 n
-0000640631 00000 n
-0000640695 00000 n
-0000640760 00000 n
-0000640825 00000 n
-0000640890 00000 n
-0000640955 00000 n
-0000641020 00000 n
-0000641085 00000 n
-0000641150 00000 n
-0000641215 00000 n
-0000641280 00000 n
-0000641345 00000 n
-0000641410 00000 n
-0000641475 00000 n
-0000641540 00000 n
-0000641605 00000 n
-0000641669 00000 n
-0000641734 00000 n
-0000641799 00000 n
-0000641864 00000 n
-0000641929 00000 n
-0000641994 00000 n
-0000642059 00000 n
-0000642124 00000 n
-0000642189 00000 n
-0000642254 00000 n
-0000642319 00000 n
-0000642384 00000 n
-0000642449 00000 n
-0000642514 00000 n
-0000642579 00000 n
-0000642644 00000 n
-0000642709 00000 n
-0000642774 00000 n
-0000642839 00000 n
-0000642903 00000 n
-0000642968 00000 n
-0000643033 00000 n
-0000643098 00000 n
-0000643163 00000 n
-0000643228 00000 n
-0000643293 00000 n
-0000643358 00000 n
-0000643423 00000 n
-0000643488 00000 n
-0000643553 00000 n
-0000643618 00000 n
-0000643682 00000 n
-0000649519 00000 n
-0000645958 00000 n
-0000643949 00000 n
-0000646083 00000 n
-0000646147 00000 n
-0000646212 00000 n
-0000646277 00000 n
-0000646342 00000 n
-0000646407 00000 n
-0000646472 00000 n
-0000646537 00000 n
-0000646602 00000 n
-0000646667 00000 n
-0000646731 00000 n
-0000646796 00000 n
-0000646861 00000 n
-0000646926 00000 n
-0000646991 00000 n
-0000647056 00000 n
-0000647121 00000 n
-0000647186 00000 n
-0000647251 00000 n
-0000647315 00000 n
-0000647380 00000 n
-0000647445 00000 n
-0000647510 00000 n
-0000647575 00000 n
-0000647640 00000 n
-0000647705 00000 n
-0000647770 00000 n
-0000647835 00000 n
-0000647898 00000 n
-0000647963 00000 n
-0000648028 00000 n
-0000648093 00000 n
-0000648158 00000 n
-0000648223 00000 n
-0000648288 00000 n
-0000648352 00000 n
-0000648417 00000 n
-0000648482 00000 n
-0000648547 00000 n
-0000648612 00000 n
-0000648677 00000 n
-0000648742 00000 n
-0000648807 00000 n
-0000648872 00000 n
-0000648937 00000 n
-0000649001 00000 n
-0000649066 00000 n
-0000649131 00000 n
-0000649196 00000 n
-0000649261 00000 n
-0000649326 00000 n
-0000649391 00000 n
-0000649455 00000 n
-0000655100 00000 n
-0000651410 00000 n
-0000649696 00000 n
-0000651535 00000 n
-0000651599 00000 n
-0000651664 00000 n
-0000651729 00000 n
-0000651794 00000 n
-0000651859 00000 n
-0000651924 00000 n
-0000651989 00000 n
-0000652054 00000 n
-0000652119 00000 n
-0000652184 00000 n
-0000652248 00000 n
-0000652312 00000 n
-0000652376 00000 n
-0000652441 00000 n
-0000652506 00000 n
-0000652571 00000 n
-0000652636 00000 n
-0000652700 00000 n
-0000652765 00000 n
-0000652830 00000 n
-0000652895 00000 n
-0000652960 00000 n
-0000653025 00000 n
-0000653090 00000 n
-0000653155 00000 n
-0000653220 00000 n
-0000653285 00000 n
-0000653350 00000 n
-0000653415 00000 n
-0000653480 00000 n
-0000653545 00000 n
-0000653609 00000 n
-0000653674 00000 n
-0000653739 00000 n
-0000653804 00000 n
-0000653869 00000 n
-0000653934 00000 n
-0000653999 00000 n
-0000654064 00000 n
-0000654129 00000 n
-0000654194 00000 n
-0000654258 00000 n
-0000654323 00000 n
-0000654388 00000 n
-0000654453 00000 n
-0000654518 00000 n
-0000654583 00000 n
-0000654648 00000 n
-0000654713 00000 n
-0000654778 00000 n
-0000654842 00000 n
-0000654907 00000 n
-0000654972 00000 n
-0000655036 00000 n
-0000661018 00000 n
-0000656806 00000 n
-0000655264 00000 n
-0000656931 00000 n
-0000656995 00000 n
-0000657060 00000 n
-0000657125 00000 n
-0000657190 00000 n
-0000657255 00000 n
-0000657320 00000 n
-0000657385 00000 n
-0000657450 00000 n
-0000657515 00000 n
-0000657579 00000 n
-0000657644 00000 n
-0000657709 00000 n
-0000657774 00000 n
-0000657839 00000 n
-0000657904 00000 n
-0000657969 00000 n
-0000658034 00000 n
-0000658099 00000 n
-0000658164 00000 n
-0000658228 00000 n
-0000658293 00000 n
-0000658358 00000 n
-0000658423 00000 n
-0000658488 00000 n
-0000658553 00000 n
-0000658618 00000 n
-0000658683 00000 n
-0000658748 00000 n
-0000658812 00000 n
-0000658877 00000 n
-0000658942 00000 n
-0000659007 00000 n
-0000659072 00000 n
-0000659137 00000 n
-0000659202 00000 n
-0000659267 00000 n
-0000659332 00000 n
-0000659396 00000 n
-0000659461 00000 n
-0000659526 00000 n
-0000659591 00000 n
-0000659656 00000 n
-0000659721 00000 n
-0000659786 00000 n
-0000659851 00000 n
-0000659916 00000 n
-0000659981 00000 n
-0000660046 00000 n
-0000660111 00000 n
-0000660176 00000 n
-0000660241 00000 n
-0000660306 00000 n
-0000660371 00000 n
-0000660436 00000 n
-0000660501 00000 n
-0000660566 00000 n
-0000660630 00000 n
-0000660695 00000 n
-0000660760 00000 n
-0000660825 00000 n
-0000660890 00000 n
-0000660954 00000 n
-0000666757 00000 n
-0000663587 00000 n
-0000661169 00000 n
-0000663712 00000 n
-0000663776 00000 n
-0000663841 00000 n
-0000663906 00000 n
-0000663971 00000 n
-0000664036 00000 n
-0000664101 00000 n
-0000664166 00000 n
-0000664231 00000 n
-0000664296 00000 n
-0000664360 00000 n
-0000664425 00000 n
-0000664490 00000 n
-0000664555 00000 n
-0000664620 00000 n
-0000664685 00000 n
-0000664750 00000 n
-0000664815 00000 n
-0000664880 00000 n
-0000664944 00000 n
-0000665009 00000 n
-0000665074 00000 n
-0000665139 00000 n
-0000665204 00000 n
-0000665331 00000 n
-0000665396 00000 n
-0000665461 00000 n
-0000665526 00000 n
-0000665591 00000 n
-0000665656 00000 n
-0000665721 00000 n
-0000665786 00000 n
-0000665850 00000 n
-0000665915 00000 n
-0000665980 00000 n
-0000666045 00000 n
-0000666110 00000 n
-0000666175 00000 n
-0000666240 00000 n
-0000666305 00000 n
-0000666370 00000 n
-0000666433 00000 n
-0000666498 00000 n
-0000666563 00000 n
-0000666628 00000 n
-0000666693 00000 n
-0000672613 00000 n
+0000628462 00000 n
+0000628526 00000 n
+0000633581 00000 n
+0000630669 00000 n
+0000628794 00000 n
+0000630794 00000 n
+0000630858 00000 n
+0000630923 00000 n
+0000630988 00000 n
+0000631053 00000 n
+0000631118 00000 n
+0000631183 00000 n
+0000631248 00000 n
+0000631312 00000 n
+0000631377 00000 n
+0000631442 00000 n
+0000631507 00000 n
+0000631572 00000 n
+0000631637 00000 n
+0000631702 00000 n
+0000631766 00000 n
+0000631831 00000 n
+0000631896 00000 n
+0000631961 00000 n
+0000632026 00000 n
+0000632091 00000 n
+0000632156 00000 n
+0000632221 00000 n
+0000632286 00000 n
+0000632351 00000 n
+0000632415 00000 n
+0000632480 00000 n
+0000632545 00000 n
+0000632610 00000 n
+0000632675 00000 n
+0000632740 00000 n
+0000632805 00000 n
+0000632870 00000 n
+0000632935 00000 n
+0000632999 00000 n
+0000633064 00000 n
+0000633129 00000 n
+0000633194 00000 n
+0000633259 00000 n
+0000633324 00000 n
+0000633389 00000 n
+0000633454 00000 n
+0000633518 00000 n
+0000637983 00000 n
+0000635526 00000 n
+0000633758 00000 n
+0000635651 00000 n
+0000635715 00000 n
+0000635780 00000 n
+0000635845 00000 n
+0000635910 00000 n
+0000635975 00000 n
+0000636040 00000 n
+0000636105 00000 n
+0000636170 00000 n
+0000636235 00000 n
+0000636299 00000 n
+0000636364 00000 n
+0000636429 00000 n
+0000636494 00000 n
+0000636559 00000 n
+0000636624 00000 n
+0000636751 00000 n
+0000636816 00000 n
+0000636880 00000 n
+0000636945 00000 n
+0000637010 00000 n
+0000637075 00000 n
+0000637140 00000 n
+0000637205 00000 n
+0000637270 00000 n
+0000637335 00000 n
+0000637400 00000 n
+0000637465 00000 n
+0000637530 00000 n
+0000637595 00000 n
+0000637660 00000 n
+0000637725 00000 n
+0000637790 00000 n
+0000637855 00000 n
+0000637919 00000 n
+0000643733 00000 n
+0000640626 00000 n
+0000638186 00000 n
+0000640751 00000 n
+0000640815 00000 n
+0000640880 00000 n
+0000640945 00000 n
+0000641010 00000 n
+0000641075 00000 n
+0000641140 00000 n
+0000641205 00000 n
+0000641270 00000 n
+0000641335 00000 n
+0000641400 00000 n
+0000641465 00000 n
+0000641528 00000 n
+0000641593 00000 n
+0000641658 00000 n
+0000641723 00000 n
+0000641788 00000 n
+0000641853 00000 n
+0000641918 00000 n
+0000641983 00000 n
+0000642048 00000 n
+0000642113 00000 n
+0000642178 00000 n
+0000642243 00000 n
+0000642308 00000 n
+0000642373 00000 n
+0000642437 00000 n
+0000642502 00000 n
+0000642567 00000 n
+0000642632 00000 n
+0000642696 00000 n
+0000642761 00000 n
+0000642826 00000 n
+0000642891 00000 n
+0000642956 00000 n
+0000643021 00000 n
+0000643086 00000 n
+0000643151 00000 n
+0000643216 00000 n
+0000643280 00000 n
+0000643345 00000 n
+0000643410 00000 n
+0000643475 00000 n
+0000643540 00000 n
+0000643605 00000 n
+0000643669 00000 n
+0000649609 00000 n
+0000645982 00000 n
+0000643910 00000 n
+0000646107 00000 n
+0000646171 00000 n
+0000646236 00000 n
+0000646301 00000 n
+0000646366 00000 n
+0000646431 00000 n
+0000646496 00000 n
+0000646561 00000 n
+0000646626 00000 n
+0000646691 00000 n
+0000646755 00000 n
+0000646820 00000 n
+0000646885 00000 n
+0000646950 00000 n
+0000647015 00000 n
+0000647080 00000 n
+0000647145 00000 n
+0000647209 00000 n
+0000647274 00000 n
+0000647339 00000 n
+0000647404 00000 n
+0000647469 00000 n
+0000647534 00000 n
+0000647599 00000 n
+0000647664 00000 n
+0000647729 00000 n
+0000647794 00000 n
+0000647858 00000 n
+0000647923 00000 n
+0000647988 00000 n
+0000648053 00000 n
+0000648118 00000 n
+0000648183 00000 n
+0000648248 00000 n
+0000648313 00000 n
+0000648378 00000 n
+0000648442 00000 n
+0000648507 00000 n
+0000648572 00000 n
+0000648637 00000 n
+0000648702 00000 n
+0000648767 00000 n
+0000648832 00000 n
+0000648897 00000 n
+0000648962 00000 n
+0000649026 00000 n
+0000649091 00000 n
+0000649156 00000 n
+0000649221 00000 n
+0000649286 00000 n
+0000649351 00000 n
+0000649416 00000 n
+0000649479 00000 n
+0000649544 00000 n
+0000655116 00000 n
+0000651684 00000 n
+0000649812 00000 n
+0000651809 00000 n
+0000651873 00000 n
+0000651938 00000 n
+0000652003 00000 n
+0000652068 00000 n
+0000652133 00000 n
+0000652198 00000 n
+0000652263 00000 n
+0000652328 00000 n
+0000652393 00000 n
+0000652457 00000 n
+0000652522 00000 n
+0000652587 00000 n
+0000652652 00000 n
+0000652717 00000 n
+0000652782 00000 n
+0000652847 00000 n
+0000652911 00000 n
+0000652976 00000 n
+0000653041 00000 n
+0000653106 00000 n
+0000653171 00000 n
+0000653236 00000 n
+0000653301 00000 n
+0000653366 00000 n
+0000653431 00000 n
+0000653496 00000 n
+0000653560 00000 n
+0000653625 00000 n
+0000653689 00000 n
+0000653753 00000 n
+0000653818 00000 n
+0000653883 00000 n
+0000653948 00000 n
+0000654013 00000 n
+0000654077 00000 n
+0000654142 00000 n
+0000654207 00000 n
+0000654272 00000 n
+0000654337 00000 n
+0000654402 00000 n
+0000654467 00000 n
+0000654532 00000 n
+0000654597 00000 n
+0000654662 00000 n
+0000654727 00000 n
+0000654792 00000 n
+0000654857 00000 n
+0000654922 00000 n
+0000654986 00000 n
+0000655051 00000 n
+0000661069 00000 n
+0000657052 00000 n
+0000655280 00000 n
+0000657177 00000 n
+0000657241 00000 n
+0000657306 00000 n
+0000657371 00000 n
+0000657436 00000 n
+0000657500 00000 n
+0000657565 00000 n
+0000657630 00000 n
+0000657695 00000 n
+0000657760 00000 n
+0000657825 00000 n
+0000657890 00000 n
+0000657955 00000 n
+0000658020 00000 n
+0000658085 00000 n
+0000658150 00000 n
+0000658215 00000 n
+0000658280 00000 n
+0000658345 00000 n
+0000658410 00000 n
+0000658475 00000 n
+0000658540 00000 n
+0000658605 00000 n
+0000658670 00000 n
+0000658734 00000 n
+0000658799 00000 n
+0000658864 00000 n
+0000658929 00000 n
+0000658994 00000 n
+0000659059 00000 n
+0000659124 00000 n
+0000659189 00000 n
+0000659254 00000 n
+0000659319 00000 n
+0000659384 00000 n
+0000659449 00000 n
+0000659514 00000 n
+0000659579 00000 n
+0000659644 00000 n
+0000659709 00000 n
+0000659773 00000 n
+0000659838 00000 n
+0000659903 00000 n
+0000659968 00000 n
+0000660033 00000 n
+0000660098 00000 n
+0000660163 00000 n
+0000660228 00000 n
+0000660293 00000 n
+0000660357 00000 n
+0000660422 00000 n
+0000660487 00000 n
+0000660552 00000 n
+0000660617 00000 n
+0000660682 00000 n
+0000660747 00000 n
+0000660812 00000 n
+0000660877 00000 n
+0000660941 00000 n
+0000661005 00000 n
+0000666665 00000 n
+0000663365 00000 n
+0000661233 00000 n
+0000663490 00000 n
+0000663554 00000 n
+0000663619 00000 n
+0000663684 00000 n
+0000663749 00000 n
+0000663814 00000 n
+0000663879 00000 n
+0000663944 00000 n
+0000664009 00000 n
+0000664074 00000 n
+0000664138 00000 n
+0000664203 00000 n
+0000664268 00000 n
+0000664333 00000 n
+0000664398 00000 n
+0000664463 00000 n
+0000664528 00000 n
+0000664593 00000 n
+0000664658 00000 n
+0000664722 00000 n
+0000664787 00000 n
+0000664852 00000 n
+0000664917 00000 n
+0000664982 00000 n
+0000665047 00000 n
+0000665112 00000 n
+0000665177 00000 n
+0000665242 00000 n
+0000665305 00000 n
+0000665370 00000 n
+0000665435 00000 n
+0000665500 00000 n
+0000665565 00000 n
+0000665630 00000 n
+0000665695 00000 n
+0000665760 00000 n
+0000665825 00000 n
+0000665889 00000 n
+0000665954 00000 n
+0000666019 00000 n
+0000666084 00000 n
+0000666149 00000 n
+0000666214 00000 n
+0000666279 00000 n
+0000666344 00000 n
+0000666409 00000 n
+0000666473 00000 n
+0000666538 00000 n
+0000672359 00000 n
+0000668406 00000 n
+0000666881 00000 n
0000668531 00000 n
-0000666973 00000 n
-0000668656 00000 n
-0000668720 00000 n
-0000668785 00000 n
-0000668850 00000 n
-0000668915 00000 n
-0000668980 00000 n
-0000669045 00000 n
-0000669110 00000 n
-0000669175 00000 n
-0000669240 00000 n
-0000669304 00000 n
-0000669369 00000 n
-0000669434 00000 n
-0000669499 00000 n
-0000669564 00000 n
-0000669629 00000 n
-0000669694 00000 n
-0000669759 00000 n
-0000669824 00000 n
-0000669888 00000 n
-0000669953 00000 n
-0000670018 00000 n
-0000670083 00000 n
-0000670148 00000 n
-0000670213 00000 n
-0000670278 00000 n
-0000670343 00000 n
-0000670408 00000 n
-0000670472 00000 n
-0000670537 00000 n
-0000670602 00000 n
-0000670667 00000 n
-0000670732 00000 n
-0000670797 00000 n
-0000670862 00000 n
-0000670927 00000 n
-0000670992 00000 n
-0000671056 00000 n
-0000671121 00000 n
-0000671186 00000 n
-0000671251 00000 n
-0000671316 00000 n
-0000671381 00000 n
-0000671446 00000 n
-0000671511 00000 n
-0000671576 00000 n
-0000671641 00000 n
-0000671706 00000 n
-0000671771 00000 n
-0000671836 00000 n
-0000671901 00000 n
-0000671966 00000 n
-0000672031 00000 n
-0000672096 00000 n
-0000672161 00000 n
-0000672225 00000 n
-0000672290 00000 n
-0000672355 00000 n
-0000672420 00000 n
-0000672485 00000 n
-0000672549 00000 n
-0000678162 00000 n
-0000674990 00000 n
-0000672764 00000 n
-0000675115 00000 n
-0000675179 00000 n
-0000675244 00000 n
-0000675309 00000 n
-0000675374 00000 n
-0000675439 00000 n
-0000675504 00000 n
-0000675569 00000 n
-0000675633 00000 n
-0000675698 00000 n
-0000675763 00000 n
-0000675828 00000 n
-0000675893 00000 n
-0000675958 00000 n
-0000676023 00000 n
-0000676088 00000 n
-0000676153 00000 n
-0000676217 00000 n
-0000676282 00000 n
-0000676347 00000 n
-0000676412 00000 n
-0000676477 00000 n
-0000676542 00000 n
-0000676607 00000 n
-0000676672 00000 n
-0000676737 00000 n
-0000676801 00000 n
-0000676866 00000 n
-0000676931 00000 n
-0000676996 00000 n
-0000677061 00000 n
-0000677126 00000 n
-0000677191 00000 n
-0000677256 00000 n
-0000677321 00000 n
-0000677386 00000 n
-0000677451 00000 n
-0000677516 00000 n
-0000677579 00000 n
-0000677644 00000 n
-0000677709 00000 n
-0000677774 00000 n
-0000677839 00000 n
-0000677904 00000 n
-0000677969 00000 n
-0000678034 00000 n
-0000678098 00000 n
-0001889066 00000 n
-0000684004 00000 n
-0000680377 00000 n
-0000678339 00000 n
-0000680502 00000 n
-0000680566 00000 n
-0000680631 00000 n
-0000680696 00000 n
-0000680761 00000 n
-0000680826 00000 n
-0000680891 00000 n
-0000680956 00000 n
-0000681021 00000 n
-0000681086 00000 n
-0000681150 00000 n
-0000681215 00000 n
-0000681280 00000 n
-0000681345 00000 n
-0000681409 00000 n
-0000681474 00000 n
-0000681539 00000 n
-0000681604 00000 n
-0000681669 00000 n
-0000681734 00000 n
-0000681799 00000 n
-0000681864 00000 n
-0000681929 00000 n
-0000681994 00000 n
-0000682059 00000 n
-0000682124 00000 n
-0000682189 00000 n
-0000682254 00000 n
-0000682319 00000 n
-0000682384 00000 n
-0000682449 00000 n
-0000682514 00000 n
-0000682579 00000 n
-0000682643 00000 n
-0000682708 00000 n
-0000682773 00000 n
-0000682838 00000 n
-0000682903 00000 n
-0000682968 00000 n
-0000683033 00000 n
-0000683098 00000 n
-0000683163 00000 n
-0000683227 00000 n
-0000683292 00000 n
-0000683357 00000 n
-0000683421 00000 n
-0000683486 00000 n
-0000683551 00000 n
-0000683616 00000 n
-0000683681 00000 n
-0000683746 00000 n
-0000683811 00000 n
-0000683876 00000 n
-0000683940 00000 n
-0000690009 00000 n
-0000686123 00000 n
-0000684168 00000 n
-0000686248 00000 n
-0000686312 00000 n
-0000686377 00000 n
-0000686442 00000 n
-0000686507 00000 n
-0000686572 00000 n
-0000686637 00000 n
-0000686702 00000 n
-0000686767 00000 n
-0000686832 00000 n
-0000686896 00000 n
-0000686961 00000 n
-0000687026 00000 n
-0000687091 00000 n
-0000687156 00000 n
-0000687221 00000 n
-0000687286 00000 n
-0000687351 00000 n
-0000687416 00000 n
-0000687480 00000 n
-0000687545 00000 n
-0000687610 00000 n
-0000687675 00000 n
-0000687740 00000 n
-0000687805 00000 n
-0000687870 00000 n
-0000687935 00000 n
-0000688000 00000 n
-0000688063 00000 n
-0000688128 00000 n
-0000688193 00000 n
-0000688258 00000 n
-0000688323 00000 n
-0000688388 00000 n
-0000688453 00000 n
-0000688518 00000 n
-0000688583 00000 n
-0000688648 00000 n
-0000688712 00000 n
-0000688777 00000 n
-0000688842 00000 n
-0000688907 00000 n
-0000688972 00000 n
-0000689037 00000 n
-0000689102 00000 n
-0000689167 00000 n
-0000689232 00000 n
-0000689297 00000 n
-0000689362 00000 n
-0000689427 00000 n
-0000689492 00000 n
-0000689557 00000 n
-0000689622 00000 n
-0000689687 00000 n
-0000689752 00000 n
-0000689816 00000 n
-0000689881 00000 n
-0000689945 00000 n
-0000695629 00000 n
-0000691679 00000 n
-0000690173 00000 n
-0000691804 00000 n
-0000691868 00000 n
-0000691933 00000 n
-0000691998 00000 n
-0000692063 00000 n
-0000692128 00000 n
-0000692193 00000 n
-0000692258 00000 n
-0000692323 00000 n
-0000692388 00000 n
-0000692452 00000 n
-0000692517 00000 n
-0000692582 00000 n
-0000692647 00000 n
-0000692712 00000 n
-0000692777 00000 n
-0000692842 00000 n
-0000692906 00000 n
-0000692971 00000 n
-0000693036 00000 n
-0000693101 00000 n
-0000693166 00000 n
-0000693231 00000 n
-0000693296 00000 n
-0000693360 00000 n
-0000693425 00000 n
-0000693490 00000 n
-0000693555 00000 n
-0000693620 00000 n
-0000693685 00000 n
-0000693750 00000 n
-0000693815 00000 n
-0000693880 00000 n
-0000693944 00000 n
-0000694009 00000 n
-0000694074 00000 n
-0000694139 00000 n
-0000694204 00000 n
-0000694269 00000 n
-0000694334 00000 n
-0000694399 00000 n
-0000694464 00000 n
-0000694527 00000 n
-0000694592 00000 n
-0000694657 00000 n
-0000694722 00000 n
-0000694787 00000 n
-0000694852 00000 n
-0000694917 00000 n
-0000694982 00000 n
-0000695047 00000 n
-0000695111 00000 n
-0000695176 00000 n
-0000695241 00000 n
-0000695306 00000 n
-0000695371 00000 n
-0000695436 00000 n
-0000695501 00000 n
-0000695565 00000 n
-0000698602 00000 n
-0000700893 00000 n
-0000698429 00000 n
-0000695780 00000 n
-0000698758 00000 n
-0000698822 00000 n
-0000698887 00000 n
-0000698952 00000 n
-0000699017 00000 n
-0000699082 00000 n
-0000699147 00000 n
-0000699212 00000 n
-0000699277 00000 n
-0000699342 00000 n
-0000699406 00000 n
-0000699471 00000 n
-0000699536 00000 n
-0000699601 00000 n
-0000699666 00000 n
-0000699731 00000 n
-0000699796 00000 n
-0000699861 00000 n
-0000699926 00000 n
-0000699991 00000 n
-0000700056 00000 n
-0000700120 00000 n
-0000700185 00000 n
-0000700250 00000 n
-0000700315 00000 n
-0000700380 00000 n
-0000700443 00000 n
-0000700570 00000 n
-0000700634 00000 n
-0000700699 00000 n
-0000700764 00000 n
-0000700829 00000 n
-0000698571 00000 n
-0000706940 00000 n
-0000703510 00000 n
-0000701161 00000 n
-0000703635 00000 n
-0000703699 00000 n
-0000703764 00000 n
-0000703829 00000 n
-0000703894 00000 n
-0000703959 00000 n
-0000704024 00000 n
-0000704089 00000 n
-0000704154 00000 n
-0000704219 00000 n
-0000704283 00000 n
-0000704348 00000 n
-0000704413 00000 n
-0000704478 00000 n
-0000704543 00000 n
-0000704608 00000 n
-0000704673 00000 n
-0000704738 00000 n
-0000704803 00000 n
-0000704867 00000 n
-0000704932 00000 n
-0000704997 00000 n
-0000705062 00000 n
-0000705127 00000 n
-0000705192 00000 n
-0000705257 00000 n
-0000705322 00000 n
-0000705387 00000 n
-0000705452 00000 n
-0000705517 00000 n
-0000705581 00000 n
-0000705646 00000 n
-0000705711 00000 n
-0000705776 00000 n
-0000705840 00000 n
-0000705905 00000 n
-0000705969 00000 n
-0000706034 00000 n
-0000706099 00000 n
-0000706164 00000 n
-0000706229 00000 n
-0000706293 00000 n
-0000706358 00000 n
-0000706423 00000 n
-0000706488 00000 n
-0000706553 00000 n
-0000706618 00000 n
-0000706683 00000 n
-0000706747 00000 n
-0000706812 00000 n
-0000706876 00000 n
-0000711941 00000 n
-0000709550 00000 n
-0000707117 00000 n
-0000709675 00000 n
-0000709739 00000 n
-0000709804 00000 n
-0000709869 00000 n
-0000709996 00000 n
-0000710061 00000 n
-0000710126 00000 n
-0000710191 00000 n
-0000710256 00000 n
-0000710320 00000 n
-0000710385 00000 n
-0000710450 00000 n
-0000710515 00000 n
-0000710580 00000 n
-0000710644 00000 n
-0000710709 00000 n
-0000710774 00000 n
-0000710839 00000 n
-0000710904 00000 n
-0000710969 00000 n
-0000711034 00000 n
-0000711098 00000 n
-0000711163 00000 n
-0000711228 00000 n
-0000711293 00000 n
-0000711358 00000 n
-0000711423 00000 n
-0000711488 00000 n
-0000711553 00000 n
-0000711618 00000 n
-0000711683 00000 n
-0000711748 00000 n
-0000711813 00000 n
-0000711877 00000 n
-0000717426 00000 n
-0000714122 00000 n
-0000712131 00000 n
-0000714247 00000 n
-0000714311 00000 n
-0000714376 00000 n
-0000714441 00000 n
-0000714506 00000 n
-0000714571 00000 n
-0000714636 00000 n
-0000714701 00000 n
-0000714766 00000 n
-0000714831 00000 n
-0000714896 00000 n
-0000714961 00000 n
-0000715026 00000 n
-0000715091 00000 n
-0000715156 00000 n
-0000715221 00000 n
-0000715286 00000 n
-0000715350 00000 n
-0000715415 00000 n
-0000715480 00000 n
-0000715545 00000 n
-0000715610 00000 n
-0000715675 00000 n
-0000715740 00000 n
-0000715805 00000 n
-0000715870 00000 n
-0000715935 00000 n
-0000716000 00000 n
-0000716065 00000 n
-0000716128 00000 n
-0000716193 00000 n
-0000716258 00000 n
-0000716323 00000 n
-0000716388 00000 n
-0000716453 00000 n
-0000716518 00000 n
-0000716583 00000 n
-0000716648 00000 n
-0000716712 00000 n
-0000716777 00000 n
-0000716842 00000 n
-0000716906 00000 n
-0000716971 00000 n
-0000717036 00000 n
-0000717101 00000 n
-0000717166 00000 n
-0000717231 00000 n
-0000717296 00000 n
-0000717361 00000 n
-0000722617 00000 n
-0000719835 00000 n
-0000717603 00000 n
-0000719960 00000 n
-0000720024 00000 n
-0000720089 00000 n
-0000720154 00000 n
-0000720219 00000 n
-0000720284 00000 n
-0000720349 00000 n
-0000720414 00000 n
-0000720479 00000 n
-0000720544 00000 n
-0000720609 00000 n
-0000720674 00000 n
-0000720739 00000 n
-0000720804 00000 n
-0000720869 00000 n
-0000720934 00000 n
-0000720999 00000 n
-0000721064 00000 n
-0000721129 00000 n
-0000721193 00000 n
-0000721258 00000 n
-0000721323 00000 n
-0000721387 00000 n
-0000721452 00000 n
-0000721517 00000 n
-0000721582 00000 n
-0000721647 00000 n
-0000721712 00000 n
-0000721777 00000 n
-0000721842 00000 n
-0000721907 00000 n
-0000721971 00000 n
-0000722036 00000 n
-0000722101 00000 n
-0000722166 00000 n
-0000722231 00000 n
-0000722296 00000 n
-0000722361 00000 n
-0000722426 00000 n
-0000722491 00000 n
-0000728312 00000 n
-0000726049 00000 n
-0000722833 00000 n
-0000726174 00000 n
-0000726238 00000 n
-0000726303 00000 n
-0000726368 00000 n
-0000726433 00000 n
-0000726497 00000 n
-0000726562 00000 n
-0000726627 00000 n
-0000726692 00000 n
-0000726757 00000 n
-0000726822 00000 n
-0000726887 00000 n
-0000726952 00000 n
-0000727017 00000 n
-0000727082 00000 n
-0000727146 00000 n
-0000727211 00000 n
-0000727276 00000 n
-0000727341 00000 n
-0000727406 00000 n
-0000727471 00000 n
-0000727536 00000 n
-0000727601 00000 n
-0000727666 00000 n
-0000727731 00000 n
-0000727796 00000 n
-0000727861 00000 n
-0000727926 00000 n
-0000727990 00000 n
-0000728055 00000 n
-0000728120 00000 n
-0000728184 00000 n
-0000728248 00000 n
-0000734270 00000 n
-0000730641 00000 n
-0000728554 00000 n
-0000730766 00000 n
-0000730830 00000 n
-0000730895 00000 n
-0000730960 00000 n
-0000731025 00000 n
-0000731090 00000 n
-0000731155 00000 n
-0000731220 00000 n
-0000731285 00000 n
-0000731350 00000 n
-0000731414 00000 n
-0000731479 00000 n
-0000731544 00000 n
-0000731609 00000 n
-0000731674 00000 n
-0000731739 00000 n
-0000731804 00000 n
-0000731869 00000 n
-0000731934 00000 n
-0000731998 00000 n
-0000732063 00000 n
-0000732128 00000 n
-0000732193 00000 n
-0000732258 00000 n
-0000732323 00000 n
-0000732388 00000 n
-0000732453 00000 n
-0000732518 00000 n
-0000732581 00000 n
-0000732646 00000 n
-0000732711 00000 n
-0000732776 00000 n
-0000732841 00000 n
-0000732906 00000 n
-0000732971 00000 n
-0000733036 00000 n
-0000733101 00000 n
-0000733166 00000 n
-0000733231 00000 n
-0000733295 00000 n
-0000733360 00000 n
-0000733425 00000 n
-0000733490 00000 n
-0000733555 00000 n
-0000733620 00000 n
-0000733685 00000 n
-0000733750 00000 n
-0000733815 00000 n
-0000733880 00000 n
-0000733945 00000 n
-0000734010 00000 n
-0000734075 00000 n
-0000734140 00000 n
-0000734205 00000 n
-0001889231 00000 n
-0000739248 00000 n
-0000736202 00000 n
-0000734447 00000 n
-0000736327 00000 n
-0000736391 00000 n
-0000736456 00000 n
-0000736521 00000 n
-0000736586 00000 n
-0000736651 00000 n
-0000736716 00000 n
-0000736781 00000 n
-0000736846 00000 n
-0000736911 00000 n
-0000736976 00000 n
-0000737041 00000 n
-0000737106 00000 n
-0000737171 00000 n
-0000737236 00000 n
-0000737301 00000 n
-0000737366 00000 n
-0000737431 00000 n
-0000737495 00000 n
-0000737560 00000 n
-0000737625 00000 n
-0000737690 00000 n
-0000737755 00000 n
-0000737820 00000 n
-0000737885 00000 n
-0000737950 00000 n
-0000738015 00000 n
-0000738080 00000 n
-0000738145 00000 n
-0000738210 00000 n
-0000738275 00000 n
-0000738340 00000 n
-0000738404 00000 n
-0000738469 00000 n
-0000738534 00000 n
-0000738599 00000 n
-0000738664 00000 n
-0000738729 00000 n
-0000738794 00000 n
-0000738858 00000 n
-0000738923 00000 n
-0000738988 00000 n
-0000739053 00000 n
-0000739118 00000 n
-0000739183 00000 n
-0000744346 00000 n
-0000741041 00000 n
-0000739412 00000 n
-0000741166 00000 n
+0000668595 00000 n
+0000668660 00000 n
+0000668725 00000 n
+0000668790 00000 n
+0000668855 00000 n
+0000668920 00000 n
+0000668985 00000 n
+0000669050 00000 n
+0000669115 00000 n
+0000669179 00000 n
+0000669244 00000 n
+0000669309 00000 n
+0000669374 00000 n
+0000669439 00000 n
+0000669504 00000 n
+0000669569 00000 n
+0000669634 00000 n
+0000669699 00000 n
+0000669763 00000 n
+0000669828 00000 n
+0000669893 00000 n
+0000669958 00000 n
+0000670023 00000 n
+0000670088 00000 n
+0000670152 00000 n
+0000670217 00000 n
+0000670282 00000 n
+0000670347 00000 n
+0000670412 00000 n
+0000670477 00000 n
+0000670542 00000 n
+0000670607 00000 n
+0000670672 00000 n
+0000670736 00000 n
+0000670801 00000 n
+0000670866 00000 n
+0000670931 00000 n
+0000670996 00000 n
+0000671061 00000 n
+0000671126 00000 n
+0000671191 00000 n
+0000671256 00000 n
+0000671321 00000 n
+0000671386 00000 n
+0000671451 00000 n
+0000671516 00000 n
+0000671581 00000 n
+0000671646 00000 n
+0000671710 00000 n
+0000671775 00000 n
+0000671840 00000 n
+0000671905 00000 n
+0000671970 00000 n
+0000672035 00000 n
+0000672100 00000 n
+0000672165 00000 n
+0000672230 00000 n
+0000672294 00000 n
+0000678185 00000 n
+0000674233 00000 n
+0000672510 00000 n
+0000674358 00000 n
+0000674422 00000 n
+0000674487 00000 n
+0000674552 00000 n
+0000674617 00000 n
+0000674682 00000 n
+0000674747 00000 n
+0000674812 00000 n
+0000674877 00000 n
+0000674942 00000 n
+0000675006 00000 n
+0000675071 00000 n
+0000675136 00000 n
+0000675201 00000 n
+0000675266 00000 n
+0000675331 00000 n
+0000675396 00000 n
+0000675461 00000 n
+0000675526 00000 n
+0000675590 00000 n
+0000675655 00000 n
+0000675720 00000 n
+0000675785 00000 n
+0000675850 00000 n
+0000675915 00000 n
+0000675980 00000 n
+0000676045 00000 n
+0000676110 00000 n
+0000676175 00000 n
+0000676240 00000 n
+0000676304 00000 n
+0000676369 00000 n
+0000676434 00000 n
+0000676499 00000 n
+0000676564 00000 n
+0000676629 00000 n
+0000676694 00000 n
+0000676759 00000 n
+0000676824 00000 n
+0000676888 00000 n
+0000676953 00000 n
+0000677018 00000 n
+0000677083 00000 n
+0000677148 00000 n
+0000677213 00000 n
+0000677278 00000 n
+0000677343 00000 n
+0000677408 00000 n
+0000677472 00000 n
+0000677537 00000 n
+0000677602 00000 n
+0000677667 00000 n
+0000677732 00000 n
+0000677797 00000 n
+0000677862 00000 n
+0000677927 00000 n
+0000677992 00000 n
+0000678057 00000 n
+0000678121 00000 n
+0001893316 00000 n
+0000684036 00000 n
+0000680798 00000 n
+0000678349 00000 n
+0000680923 00000 n
+0000680987 00000 n
+0000681052 00000 n
+0000681117 00000 n
+0000681181 00000 n
+0000681246 00000 n
+0000681311 00000 n
+0000681376 00000 n
+0000681441 00000 n
+0000681505 00000 n
+0000681570 00000 n
+0000681635 00000 n
+0000681700 00000 n
+0000681765 00000 n
+0000681830 00000 n
+0000681895 00000 n
+0000681960 00000 n
+0000682025 00000 n
+0000682089 00000 n
+0000682154 00000 n
+0000682219 00000 n
+0000682284 00000 n
+0000682349 00000 n
+0000682414 00000 n
+0000682479 00000 n
+0000682544 00000 n
+0000682609 00000 n
+0000682674 00000 n
+0000682739 00000 n
+0000682804 00000 n
+0000682869 00000 n
+0000682934 00000 n
+0000682999 00000 n
+0000683064 00000 n
+0000683129 00000 n
+0000683194 00000 n
+0000683259 00000 n
+0000683324 00000 n
+0000683389 00000 n
+0000683454 00000 n
+0000683519 00000 n
+0000683584 00000 n
+0000683648 00000 n
+0000683713 00000 n
+0000683778 00000 n
+0000683843 00000 n
+0000683908 00000 n
+0000683972 00000 n
+0000689829 00000 n
+0000685811 00000 n
+0000684213 00000 n
+0000685936 00000 n
+0000686000 00000 n
+0000686065 00000 n
+0000686130 00000 n
+0000686195 00000 n
+0000686260 00000 n
+0000686325 00000 n
+0000686390 00000 n
+0000686455 00000 n
+0000686520 00000 n
+0000686585 00000 n
+0000686650 00000 n
+0000686715 00000 n
+0000686780 00000 n
+0000686844 00000 n
+0000686909 00000 n
+0000686974 00000 n
+0000687039 00000 n
+0000687104 00000 n
+0000687169 00000 n
+0000687234 00000 n
+0000687299 00000 n
+0000687364 00000 n
+0000687428 00000 n
+0000687493 00000 n
+0000687558 00000 n
+0000687623 00000 n
+0000687688 00000 n
+0000687753 00000 n
+0000687818 00000 n
+0000687883 00000 n
+0000687948 00000 n
+0000688013 00000 n
+0000688078 00000 n
+0000688143 00000 n
+0000688208 00000 n
+0000688273 00000 n
+0000688338 00000 n
+0000688403 00000 n
+0000688468 00000 n
+0000688533 00000 n
+0000688598 00000 n
+0000688662 00000 n
+0000688727 00000 n
+0000688792 00000 n
+0000688857 00000 n
+0000688922 00000 n
+0000688987 00000 n
+0000689052 00000 n
+0000689117 00000 n
+0000689182 00000 n
+0000689247 00000 n
+0000689312 00000 n
+0000689377 00000 n
+0000689441 00000 n
+0000689506 00000 n
+0000689571 00000 n
+0000689636 00000 n
+0000689701 00000 n
+0000689765 00000 n
+0000695478 00000 n
+0000691917 00000 n
+0000689980 00000 n
+0000692042 00000 n
+0000692106 00000 n
+0000692171 00000 n
+0000692236 00000 n
+0000692301 00000 n
+0000692366 00000 n
+0000692431 00000 n
+0000692496 00000 n
+0000692560 00000 n
+0000692625 00000 n
+0000692690 00000 n
+0000692755 00000 n
+0000692820 00000 n
+0000692885 00000 n
+0000692950 00000 n
+0000693015 00000 n
+0000693080 00000 n
+0000693144 00000 n
+0000693209 00000 n
+0000693274 00000 n
+0000693339 00000 n
+0000693404 00000 n
+0000693469 00000 n
+0000693534 00000 n
+0000693599 00000 n
+0000693664 00000 n
+0000693728 00000 n
+0000693793 00000 n
+0000693858 00000 n
+0000693923 00000 n
+0000693988 00000 n
+0000694053 00000 n
+0000694118 00000 n
+0000694183 00000 n
+0000694247 00000 n
+0000694312 00000 n
+0000694377 00000 n
+0000694442 00000 n
+0000694507 00000 n
+0000694572 00000 n
+0000694637 00000 n
+0000694701 00000 n
+0000694766 00000 n
+0000694831 00000 n
+0000694896 00000 n
+0000694961 00000 n
+0000695026 00000 n
+0000695091 00000 n
+0000695156 00000 n
+0000695221 00000 n
+0000695285 00000 n
+0000695350 00000 n
+0000695414 00000 n
+0000700864 00000 n
+0000697500 00000 n
+0000695642 00000 n
+0000697625 00000 n
+0000697689 00000 n
+0000697754 00000 n
+0000697819 00000 n
+0000697884 00000 n
+0000697949 00000 n
+0000698014 00000 n
+0000698079 00000 n
+0000698144 00000 n
+0000698209 00000 n
+0000698273 00000 n
+0000698338 00000 n
+0000698403 00000 n
+0000698468 00000 n
+0000698533 00000 n
+0000698598 00000 n
+0000698663 00000 n
+0000698728 00000 n
+0000698793 00000 n
+0000698857 00000 n
+0000698922 00000 n
+0000698987 00000 n
+0000699052 00000 n
+0000699117 00000 n
+0000699182 00000 n
+0000699247 00000 n
+0000699312 00000 n
+0000699377 00000 n
+0000699442 00000 n
+0000699506 00000 n
+0000699571 00000 n
+0000699636 00000 n
+0000699701 00000 n
+0000699766 00000 n
+0000699831 00000 n
+0000699896 00000 n
+0000699961 00000 n
+0000700026 00000 n
+0000700091 00000 n
+0000700156 00000 n
+0000700220 00000 n
+0000700285 00000 n
+0000700350 00000 n
+0000700415 00000 n
+0000700480 00000 n
+0000700543 00000 n
+0000700608 00000 n
+0000700673 00000 n
+0000700738 00000 n
+0000703973 00000 n
+0000706660 00000 n
+0000703800 00000 n
+0000701028 00000 n
+0000704130 00000 n
+0000704194 00000 n
+0000704259 00000 n
+0000704324 00000 n
+0000704389 00000 n
+0000704454 00000 n
+0000704519 00000 n
+0000704584 00000 n
+0000704649 00000 n
+0000704714 00000 n
+0000704779 00000 n
+0000704843 00000 n
+0000704908 00000 n
+0000704973 00000 n
+0000705038 00000 n
+0000705103 00000 n
+0000705168 00000 n
+0000705233 00000 n
+0000705298 00000 n
+0000705363 00000 n
+0000705426 00000 n
+0000705491 00000 n
+0000705556 00000 n
+0000705621 00000 n
+0000705686 00000 n
+0000705751 00000 n
+0000705816 00000 n
+0000705881 00000 n
+0000705946 00000 n
+0000706011 00000 n
+0000706076 00000 n
+0000706140 00000 n
+0000706205 00000 n
+0000706270 00000 n
+0000706335 00000 n
+0000706400 00000 n
+0000706465 00000 n
+0000706530 00000 n
+0000706595 00000 n
+0000703942 00000 n
+0000711622 00000 n
+0000709491 00000 n
+0000706928 00000 n
+0000709616 00000 n
+0000709680 00000 n
+0000709745 00000 n
+0000709810 00000 n
+0000709875 00000 n
+0000709940 00000 n
+0000710004 00000 n
+0000710069 00000 n
+0000710134 00000 n
+0000710199 00000 n
+0000710264 00000 n
+0000710329 00000 n
+0000710394 00000 n
+0000710458 00000 n
+0000710523 00000 n
+0000710588 00000 n
+0000710653 00000 n
+0000710718 00000 n
+0000710783 00000 n
+0000710848 00000 n
+0000710913 00000 n
+0000711040 00000 n
+0000711105 00000 n
+0000711169 00000 n
+0000711234 00000 n
+0000711299 00000 n
+0000711364 00000 n
+0000711429 00000 n
+0000711494 00000 n
+0000711558 00000 n
+0000717306 00000 n
+0000713813 00000 n
+0000711812 00000 n
+0000713938 00000 n
+0000714002 00000 n
+0000714067 00000 n
+0000714131 00000 n
+0000714196 00000 n
+0000714261 00000 n
+0000714326 00000 n
+0000714391 00000 n
+0000714456 00000 n
+0000714521 00000 n
+0000714585 00000 n
+0000714650 00000 n
+0000714715 00000 n
+0000714780 00000 n
+0000714845 00000 n
+0000714910 00000 n
+0000714975 00000 n
+0000715040 00000 n
+0000715105 00000 n
+0000715169 00000 n
+0000715234 00000 n
+0000715299 00000 n
+0000715364 00000 n
+0000715429 00000 n
+0000715494 00000 n
+0000715559 00000 n
+0000715624 00000 n
+0000715689 00000 n
+0000715753 00000 n
+0000715818 00000 n
+0000715883 00000 n
+0000715948 00000 n
+0000716013 00000 n
+0000716078 00000 n
+0000716143 00000 n
+0000716207 00000 n
+0000716272 00000 n
+0000716337 00000 n
+0000716402 00000 n
+0000716467 00000 n
+0000716530 00000 n
+0000716595 00000 n
+0000716660 00000 n
+0000716725 00000 n
+0000716790 00000 n
+0000716854 00000 n
+0000716919 00000 n
+0000716984 00000 n
+0000717048 00000 n
+0000717113 00000 n
+0000717178 00000 n
+0000717242 00000 n
+0000723086 00000 n
+0000719261 00000 n
+0000717483 00000 n
+0000719386 00000 n
+0000719450 00000 n
+0000719515 00000 n
+0000719580 00000 n
+0000719645 00000 n
+0000719710 00000 n
+0000719775 00000 n
+0000719840 00000 n
+0000719905 00000 n
+0000719970 00000 n
+0000720035 00000 n
+0000720100 00000 n
+0000720165 00000 n
+0000720230 00000 n
+0000720295 00000 n
+0000720360 00000 n
+0000720425 00000 n
+0000720490 00000 n
+0000720555 00000 n
+0000720620 00000 n
+0000720685 00000 n
+0000720749 00000 n
+0000720814 00000 n
+0000720879 00000 n
+0000720944 00000 n
+0000721009 00000 n
+0000721074 00000 n
+0000721139 00000 n
+0000721204 00000 n
+0000721269 00000 n
+0000721334 00000 n
+0000721399 00000 n
+0000721464 00000 n
+0000721529 00000 n
+0000721594 00000 n
+0000721659 00000 n
+0000721724 00000 n
+0000721789 00000 n
+0000721854 00000 n
+0000721919 00000 n
+0000721984 00000 n
+0000722049 00000 n
+0000722114 00000 n
+0000722179 00000 n
+0000722244 00000 n
+0000722309 00000 n
+0000722374 00000 n
+0000722439 00000 n
+0000722504 00000 n
+0000722569 00000 n
+0000722634 00000 n
+0000722698 00000 n
+0000722763 00000 n
+0000722828 00000 n
+0000722893 00000 n
+0000722958 00000 n
+0000723022 00000 n
+0000728150 00000 n
+0000726474 00000 n
+0000723250 00000 n
+0000726599 00000 n
+0000726663 00000 n
+0000726790 00000 n
+0000726855 00000 n
+0000726920 00000 n
+0000726985 00000 n
+0000727050 00000 n
+0000727115 00000 n
+0000727180 00000 n
+0000727245 00000 n
+0000727309 00000 n
+0000727374 00000 n
+0000727438 00000 n
+0000727503 00000 n
+0000727568 00000 n
+0000727633 00000 n
+0000727698 00000 n
+0000727763 00000 n
+0000727828 00000 n
+0000727892 00000 n
+0000727957 00000 n
+0000728022 00000 n
+0000728086 00000 n
+0000734093 00000 n
+0000730792 00000 n
+0000728405 00000 n
+0000730917 00000 n
+0000730981 00000 n
+0000731046 00000 n
+0000731111 00000 n
+0000731176 00000 n
+0000731241 00000 n
+0000731306 00000 n
+0000731371 00000 n
+0000731436 00000 n
+0000731501 00000 n
+0000731566 00000 n
+0000731629 00000 n
+0000731694 00000 n
+0000731759 00000 n
+0000731824 00000 n
+0000731889 00000 n
+0000731954 00000 n
+0000732019 00000 n
+0000732084 00000 n
+0000732149 00000 n
+0000732213 00000 n
+0000732278 00000 n
+0000732343 00000 n
+0000732408 00000 n
+0000732473 00000 n
+0000732538 00000 n
+0000732603 00000 n
+0000732668 00000 n
+0000732733 00000 n
+0000732797 00000 n
+0000732862 00000 n
+0000732927 00000 n
+0000732992 00000 n
+0000733057 00000 n
+0000733122 00000 n
+0000733187 00000 n
+0000733252 00000 n
+0000733317 00000 n
+0000733381 00000 n
+0000733446 00000 n
+0000733511 00000 n
+0000733576 00000 n
+0000733641 00000 n
+0000733705 00000 n
+0000733770 00000 n
+0000733835 00000 n
+0000733900 00000 n
+0000733965 00000 n
+0000734029 00000 n
+0001893481 00000 n
+0000739450 00000 n
+0000736277 00000 n
+0000734296 00000 n
+0000736402 00000 n
+0000736466 00000 n
+0000736531 00000 n
+0000736596 00000 n
+0000736661 00000 n
+0000736726 00000 n
+0000736791 00000 n
+0000736856 00000 n
+0000736921 00000 n
+0000736986 00000 n
+0000737050 00000 n
+0000737115 00000 n
+0000737180 00000 n
+0000737245 00000 n
+0000737310 00000 n
+0000737375 00000 n
+0000737440 00000 n
+0000737505 00000 n
+0000737570 00000 n
+0000737635 00000 n
+0000737700 00000 n
+0000737765 00000 n
+0000737830 00000 n
+0000737895 00000 n
+0000737959 00000 n
+0000738024 00000 n
+0000738089 00000 n
+0000738154 00000 n
+0000738219 00000 n
+0000738284 00000 n
+0000738349 00000 n
+0000738414 00000 n
+0000738478 00000 n
+0000738543 00000 n
+0000738608 00000 n
+0000738673 00000 n
+0000738738 00000 n
+0000738803 00000 n
+0000738868 00000 n
+0000738933 00000 n
+0000738998 00000 n
+0000739063 00000 n
+0000739128 00000 n
+0000739193 00000 n
+0000739257 00000 n
+0000739322 00000 n
+0000739386 00000 n
+0000744599 00000 n
0000741230 00000 n
-0000741295 00000 n
-0000741360 00000 n
-0000741425 00000 n
-0000741490 00000 n
-0000741555 00000 n
-0000741620 00000 n
-0000741685 00000 n
-0000741750 00000 n
-0000741815 00000 n
-0000741880 00000 n
-0000741945 00000 n
-0000742010 00000 n
-0000742075 00000 n
-0000742139 00000 n
-0000742204 00000 n
-0000742269 00000 n
-0000742334 00000 n
-0000742399 00000 n
-0000742464 00000 n
-0000742529 00000 n
-0000742593 00000 n
-0000742658 00000 n
-0000742723 00000 n
-0000742788 00000 n
-0000742853 00000 n
-0000742918 00000 n
-0000742983 00000 n
-0000743048 00000 n
-0000743113 00000 n
-0000743178 00000 n
-0000743243 00000 n
-0000743308 00000 n
-0000743373 00000 n
-0000743438 00000 n
-0000743502 00000 n
-0000743567 00000 n
-0000743632 00000 n
-0000743697 00000 n
-0000743762 00000 n
-0000743826 00000 n
-0000743891 00000 n
-0000743956 00000 n
-0000744021 00000 n
-0000744086 00000 n
-0000744151 00000 n
-0000744216 00000 n
-0000744281 00000 n
-0000749985 00000 n
-0000747267 00000 n
-0000744510 00000 n
-0000747392 00000 n
-0000747456 00000 n
-0000747521 00000 n
-0000747586 00000 n
-0000747651 00000 n
-0000747716 00000 n
-0000747781 00000 n
-0000747846 00000 n
-0000747911 00000 n
-0000747976 00000 n
-0000748041 00000 n
-0000748106 00000 n
-0000748171 00000 n
-0000748234 00000 n
-0000748299 00000 n
-0000748364 00000 n
-0000748429 00000 n
-0000748494 00000 n
-0000748559 00000 n
-0000748623 00000 n
-0000748688 00000 n
-0000748753 00000 n
-0000748818 00000 n
-0000748883 00000 n
-0000748948 00000 n
-0000749013 00000 n
-0000749077 00000 n
-0000749142 00000 n
-0000749207 00000 n
-0000749272 00000 n
-0000749337 00000 n
-0000749402 00000 n
-0000749467 00000 n
-0000749531 00000 n
-0000749596 00000 n
-0000749661 00000 n
-0000749725 00000 n
-0000749790 00000 n
-0000749855 00000 n
-0000749920 00000 n
-0000755968 00000 n
-0000752664 00000 n
-0000750201 00000 n
-0000752789 00000 n
-0000752853 00000 n
-0000752918 00000 n
-0000752983 00000 n
-0000753048 00000 n
-0000753113 00000 n
-0000753178 00000 n
-0000753243 00000 n
-0000753308 00000 n
-0000753373 00000 n
-0000753438 00000 n
-0000753503 00000 n
-0000753568 00000 n
-0000753633 00000 n
-0000753698 00000 n
-0000753763 00000 n
-0000753827 00000 n
-0000753892 00000 n
-0000753957 00000 n
-0000754022 00000 n
-0000754087 00000 n
-0000754152 00000 n
-0000754217 00000 n
-0000754282 00000 n
-0000754347 00000 n
-0000754412 00000 n
-0000754476 00000 n
-0000754541 00000 n
-0000754606 00000 n
-0000754671 00000 n
-0000754736 00000 n
-0000754801 00000 n
-0000754866 00000 n
-0000754931 00000 n
-0000754996 00000 n
-0000755061 00000 n
-0000755125 00000 n
-0000755190 00000 n
-0000755255 00000 n
-0000755320 00000 n
-0000755385 00000 n
-0000755450 00000 n
-0000755515 00000 n
-0000755580 00000 n
-0000755645 00000 n
-0000755710 00000 n
-0000755775 00000 n
-0000755840 00000 n
-0000755904 00000 n
-0000761250 00000 n
-0000758270 00000 n
-0000756132 00000 n
-0000758395 00000 n
-0000758459 00000 n
-0000758524 00000 n
-0000758589 00000 n
-0000758654 00000 n
-0000758718 00000 n
-0000758783 00000 n
-0000758848 00000 n
-0000758913 00000 n
-0000758978 00000 n
-0000759043 00000 n
-0000759108 00000 n
-0000759173 00000 n
-0000759238 00000 n
-0000759303 00000 n
-0000759368 00000 n
-0000759433 00000 n
-0000759498 00000 n
-0000759563 00000 n
-0000759628 00000 n
-0000759693 00000 n
-0000759758 00000 n
-0000759822 00000 n
-0000759887 00000 n
-0000759952 00000 n
-0000760017 00000 n
-0000760082 00000 n
-0000760147 00000 n
-0000760212 00000 n
-0000760277 00000 n
-0000760342 00000 n
-0000760407 00000 n
-0000760472 00000 n
-0000760537 00000 n
-0000760602 00000 n
-0000760666 00000 n
-0000760731 00000 n
-0000760796 00000 n
-0000760861 00000 n
-0000760926 00000 n
-0000760991 00000 n
-0000761056 00000 n
-0000761121 00000 n
-0000761186 00000 n
-0000767179 00000 n
-0000763229 00000 n
-0000761453 00000 n
-0000763354 00000 n
-0000763418 00000 n
-0000763481 00000 n
-0000763546 00000 n
-0000763611 00000 n
-0000763676 00000 n
-0000763741 00000 n
-0000763806 00000 n
-0000763871 00000 n
-0000763936 00000 n
-0000764001 00000 n
-0000764066 00000 n
-0000764131 00000 n
-0000764196 00000 n
-0000764261 00000 n
-0000764326 00000 n
-0000764391 00000 n
-0000764456 00000 n
-0000764521 00000 n
-0000764586 00000 n
-0000764651 00000 n
-0000764715 00000 n
-0000764779 00000 n
-0000764844 00000 n
-0000764909 00000 n
-0000764974 00000 n
-0000765039 00000 n
-0000765104 00000 n
-0000765169 00000 n
-0000765234 00000 n
-0000765299 00000 n
-0000765364 00000 n
-0000765429 00000 n
-0000765493 00000 n
-0000765558 00000 n
-0000765623 00000 n
-0000765688 00000 n
-0000765753 00000 n
-0000765818 00000 n
-0000765883 00000 n
-0000765948 00000 n
-0000766013 00000 n
-0000766077 00000 n
-0000766142 00000 n
-0000766207 00000 n
-0000766272 00000 n
-0000766337 00000 n
-0000766402 00000 n
-0000766467 00000 n
-0000766532 00000 n
-0000766597 00000 n
-0000766662 00000 n
-0000766727 00000 n
-0000766791 00000 n
-0000766856 00000 n
-0000766921 00000 n
-0000766986 00000 n
-0000767051 00000 n
-0000767115 00000 n
-0000772608 00000 n
-0000769437 00000 n
-0000767343 00000 n
-0000769562 00000 n
-0000769626 00000 n
-0000769691 00000 n
-0000769756 00000 n
-0000769821 00000 n
-0000769886 00000 n
-0000769951 00000 n
-0000770016 00000 n
-0000770080 00000 n
-0000770145 00000 n
-0000770209 00000 n
-0000770274 00000 n
-0000770339 00000 n
-0000770404 00000 n
-0000770469 00000 n
-0000770534 00000 n
-0000770599 00000 n
-0000770664 00000 n
-0000770729 00000 n
-0000770794 00000 n
-0000770859 00000 n
-0000770924 00000 n
-0000770987 00000 n
-0000771052 00000 n
-0000771117 00000 n
-0000771182 00000 n
-0000771247 00000 n
-0000771312 00000 n
-0000771377 00000 n
-0000771442 00000 n
-0000771507 00000 n
-0000771571 00000 n
-0000771636 00000 n
-0000771701 00000 n
-0000771766 00000 n
-0000771831 00000 n
-0000771896 00000 n
-0000771961 00000 n
-0000772026 00000 n
-0000772091 00000 n
-0000772156 00000 n
-0000772220 00000 n
-0000772285 00000 n
-0000772350 00000 n
-0000772414 00000 n
-0000772479 00000 n
-0000772544 00000 n
-0000778506 00000 n
-0000775269 00000 n
-0000772798 00000 n
-0000775394 00000 n
-0000775458 00000 n
-0000775523 00000 n
-0000775588 00000 n
-0000775653 00000 n
-0000775718 00000 n
-0000775782 00000 n
-0000775847 00000 n
-0000775912 00000 n
-0000775977 00000 n
-0000776042 00000 n
-0000776107 00000 n
-0000776172 00000 n
-0000776237 00000 n
-0000776302 00000 n
-0000776366 00000 n
-0000776431 00000 n
-0000776496 00000 n
-0000776561 00000 n
-0000776626 00000 n
-0000776691 00000 n
-0000776756 00000 n
-0000776821 00000 n
-0000776886 00000 n
-0000776950 00000 n
-0000777015 00000 n
-0000777080 00000 n
-0000777145 00000 n
-0000777210 00000 n
-0000777275 00000 n
-0000777340 00000 n
-0000777405 00000 n
-0000777470 00000 n
-0000777535 00000 n
-0000777600 00000 n
-0000777664 00000 n
-0000777729 00000 n
-0000777794 00000 n
-0000777859 00000 n
-0000777924 00000 n
-0000777989 00000 n
-0000778054 00000 n
-0000778119 00000 n
-0000778183 00000 n
-0000778248 00000 n
-0000778313 00000 n
-0000778378 00000 n
-0000778442 00000 n
-0000783899 00000 n
-0000781442 00000 n
-0000778683 00000 n
-0000781567 00000 n
-0000781631 00000 n
-0000781696 00000 n
-0000781760 00000 n
-0000781825 00000 n
-0000781890 00000 n
-0000781955 00000 n
-0000782020 00000 n
-0000782084 00000 n
-0000782149 00000 n
-0000782214 00000 n
-0000782279 00000 n
-0000782344 00000 n
-0000782409 00000 n
-0000782474 00000 n
-0000782539 00000 n
-0000782604 00000 n
-0000782669 00000 n
-0000782734 00000 n
-0000782799 00000 n
-0000782864 00000 n
-0000782928 00000 n
-0000782993 00000 n
-0000783058 00000 n
-0000783123 00000 n
-0000783188 00000 n
-0000783253 00000 n
-0000783317 00000 n
-0000783382 00000 n
-0000783447 00000 n
-0000783512 00000 n
-0000783577 00000 n
-0000783642 00000 n
-0000783707 00000 n
-0000783772 00000 n
-0000783836 00000 n
-0000789099 00000 n
-0000786317 00000 n
-0000784089 00000 n
-0000786442 00000 n
-0000786506 00000 n
-0000786571 00000 n
-0000786636 00000 n
-0000786701 00000 n
-0000786766 00000 n
-0000786831 00000 n
-0000786896 00000 n
-0000786961 00000 n
-0000787026 00000 n
-0000787091 00000 n
-0000787156 00000 n
-0000787221 00000 n
-0000787286 00000 n
-0000787351 00000 n
-0000787416 00000 n
-0000787481 00000 n
-0000787545 00000 n
-0000787610 00000 n
-0000787675 00000 n
-0000787740 00000 n
-0000787805 00000 n
-0000787870 00000 n
-0000787935 00000 n
-0000788000 00000 n
-0000788065 00000 n
-0000788130 00000 n
+0000739614 00000 n
+0000741355 00000 n
+0000741419 00000 n
+0000741484 00000 n
+0000741549 00000 n
+0000741614 00000 n
+0000741679 00000 n
+0000741744 00000 n
+0000741809 00000 n
+0000741874 00000 n
+0000741939 00000 n
+0000742004 00000 n
+0000742069 00000 n
+0000742134 00000 n
+0000742199 00000 n
+0000742264 00000 n
+0000742329 00000 n
+0000742394 00000 n
+0000742459 00000 n
+0000742524 00000 n
+0000742588 00000 n
+0000742653 00000 n
+0000742718 00000 n
+0000742783 00000 n
+0000742848 00000 n
+0000742913 00000 n
+0000742978 00000 n
+0000743043 00000 n
+0000743108 00000 n
+0000743173 00000 n
+0000743238 00000 n
+0000743303 00000 n
+0000743368 00000 n
+0000743433 00000 n
+0000743497 00000 n
+0000743562 00000 n
+0000743627 00000 n
+0000743692 00000 n
+0000743757 00000 n
+0000743821 00000 n
+0000743886 00000 n
+0000743951 00000 n
+0000744016 00000 n
+0000744081 00000 n
+0000744146 00000 n
+0000744211 00000 n
+0000744276 00000 n
+0000744341 00000 n
+0000744406 00000 n
+0000744471 00000 n
+0000744535 00000 n
+0000749952 00000 n
+0000747166 00000 n
+0000744763 00000 n
+0000747291 00000 n
+0000747355 00000 n
+0000747420 00000 n
+0000747485 00000 n
+0000747550 00000 n
+0000747615 00000 n
+0000747680 00000 n
+0000747745 00000 n
+0000747810 00000 n
+0000747875 00000 n
+0000747939 00000 n
+0000748004 00000 n
+0000748069 00000 n
+0000748134 00000 n
+0000748199 00000 n
+0000748264 00000 n
+0000748329 00000 n
+0000748394 00000 n
+0000748459 00000 n
+0000748523 00000 n
+0000748588 00000 n
+0000748653 00000 n
+0000748718 00000 n
+0000748783 00000 n
+0000748847 00000 n
+0000748912 00000 n
+0000748977 00000 n
+0000749042 00000 n
+0000749107 00000 n
+0000749172 00000 n
+0000749237 00000 n
+0000749302 00000 n
+0000749367 00000 n
+0000749432 00000 n
+0000749497 00000 n
+0000749562 00000 n
+0000749627 00000 n
+0000749692 00000 n
+0000749757 00000 n
+0000749822 00000 n
+0000749887 00000 n
+0000755912 00000 n
+0000752480 00000 n
+0000750155 00000 n
+0000752605 00000 n
+0000752669 00000 n
+0000752734 00000 n
+0000752798 00000 n
+0000752863 00000 n
+0000752928 00000 n
+0000752993 00000 n
+0000753058 00000 n
+0000753123 00000 n
+0000753188 00000 n
+0000753253 00000 n
+0000753318 00000 n
+0000753383 00000 n
+0000753448 00000 n
+0000753513 00000 n
+0000753578 00000 n
+0000753643 00000 n
+0000753708 00000 n
+0000753773 00000 n
+0000753838 00000 n
+0000753903 00000 n
+0000753968 00000 n
+0000754033 00000 n
+0000754098 00000 n
+0000754163 00000 n
+0000754228 00000 n
+0000754293 00000 n
+0000754358 00000 n
+0000754423 00000 n
+0000754487 00000 n
+0000754552 00000 n
+0000754617 00000 n
+0000754681 00000 n
+0000754746 00000 n
+0000754811 00000 n
+0000754876 00000 n
+0000754941 00000 n
+0000755006 00000 n
+0000755071 00000 n
+0000755136 00000 n
+0000755201 00000 n
+0000755265 00000 n
+0000755330 00000 n
+0000755395 00000 n
+0000755460 00000 n
+0000755525 00000 n
+0000755590 00000 n
+0000755655 00000 n
+0000755720 00000 n
+0000755785 00000 n
+0000755848 00000 n
+0000761298 00000 n
+0000758515 00000 n
+0000756089 00000 n
+0000758640 00000 n
+0000758704 00000 n
+0000758769 00000 n
+0000758834 00000 n
+0000758899 00000 n
+0000758964 00000 n
+0000759029 00000 n
+0000759094 00000 n
+0000759159 00000 n
+0000759224 00000 n
+0000759289 00000 n
+0000759354 00000 n
+0000759419 00000 n
+0000759484 00000 n
+0000759549 00000 n
+0000759613 00000 n
+0000759678 00000 n
+0000759743 00000 n
+0000759807 00000 n
+0000759872 00000 n
+0000759937 00000 n
+0000760002 00000 n
+0000760067 00000 n
+0000760132 00000 n
+0000760197 00000 n
+0000760262 00000 n
+0000760327 00000 n
+0000760392 00000 n
+0000760457 00000 n
+0000760522 00000 n
+0000760585 00000 n
+0000760650 00000 n
+0000760715 00000 n
+0000760780 00000 n
+0000760845 00000 n
+0000760910 00000 n
+0000760975 00000 n
+0000761040 00000 n
+0000761105 00000 n
+0000761170 00000 n
+0000761234 00000 n
+0000767087 00000 n
+0000763334 00000 n
+0000761488 00000 n
+0000763459 00000 n
+0000763523 00000 n
+0000763588 00000 n
+0000763653 00000 n
+0000763718 00000 n
+0000763783 00000 n
+0000763848 00000 n
+0000763913 00000 n
+0000763978 00000 n
+0000764043 00000 n
+0000764107 00000 n
+0000764172 00000 n
+0000764235 00000 n
+0000764300 00000 n
+0000764365 00000 n
+0000764429 00000 n
+0000764494 00000 n
+0000764559 00000 n
+0000764624 00000 n
+0000764689 00000 n
+0000764754 00000 n
+0000764819 00000 n
+0000764884 00000 n
+0000764949 00000 n
+0000765013 00000 n
+0000765078 00000 n
+0000765143 00000 n
+0000765208 00000 n
+0000765273 00000 n
+0000765338 00000 n
+0000765403 00000 n
+0000765468 00000 n
+0000765533 00000 n
+0000765597 00000 n
+0000765662 00000 n
+0000765727 00000 n
+0000765791 00000 n
+0000765856 00000 n
+0000765921 00000 n
+0000765986 00000 n
+0000766051 00000 n
+0000766116 00000 n
+0000766181 00000 n
+0000766246 00000 n
+0000766311 00000 n
+0000766376 00000 n
+0000766441 00000 n
+0000766505 00000 n
+0000766570 00000 n
+0000766635 00000 n
+0000766700 00000 n
+0000766765 00000 n
+0000766830 00000 n
+0000766895 00000 n
+0000766960 00000 n
+0000767024 00000 n
+0000772796 00000 n
+0000769297 00000 n
+0000767264 00000 n
+0000769422 00000 n
+0000769486 00000 n
+0000769551 00000 n
+0000769616 00000 n
+0000769681 00000 n
+0000769746 00000 n
+0000769811 00000 n
+0000769876 00000 n
+0000769941 00000 n
+0000770006 00000 n
+0000770071 00000 n
+0000770136 00000 n
+0000770200 00000 n
+0000770265 00000 n
+0000770330 00000 n
+0000770395 00000 n
+0000770460 00000 n
+0000770525 00000 n
+0000770590 00000 n
+0000770655 00000 n
+0000770720 00000 n
+0000770785 00000 n
+0000770850 00000 n
+0000770915 00000 n
+0000770980 00000 n
+0000771045 00000 n
+0000771110 00000 n
+0000771175 00000 n
+0000771240 00000 n
+0000771305 00000 n
+0000771370 00000 n
+0000771434 00000 n
+0000771499 00000 n
+0000771563 00000 n
+0000771628 00000 n
+0000771693 00000 n
+0000771758 00000 n
+0000771823 00000 n
+0000771888 00000 n
+0000771953 00000 n
+0000772018 00000 n
+0000772083 00000 n
+0000772148 00000 n
+0000772212 00000 n
+0000772277 00000 n
+0000772342 00000 n
+0000772407 00000 n
+0000772472 00000 n
+0000772537 00000 n
+0000772602 00000 n
+0000772667 00000 n
+0000772732 00000 n
+0000778547 00000 n
+0000775440 00000 n
+0000772973 00000 n
+0000775565 00000 n
+0000775629 00000 n
+0000775694 00000 n
+0000775759 00000 n
+0000775824 00000 n
+0000775889 00000 n
+0000775954 00000 n
+0000776019 00000 n
+0000776084 00000 n
+0000776149 00000 n
+0000776213 00000 n
+0000776278 00000 n
+0000776343 00000 n
+0000776408 00000 n
+0000776473 00000 n
+0000776538 00000 n
+0000776603 00000 n
+0000776668 00000 n
+0000776731 00000 n
+0000776796 00000 n
+0000776861 00000 n
+0000776926 00000 n
+0000776991 00000 n
+0000777056 00000 n
+0000777121 00000 n
+0000777186 00000 n
+0000777251 00000 n
+0000777315 00000 n
+0000777380 00000 n
+0000777445 00000 n
+0000777510 00000 n
+0000777575 00000 n
+0000777640 00000 n
+0000777705 00000 n
+0000777770 00000 n
+0000777835 00000 n
+0000777899 00000 n
+0000777964 00000 n
+0000778029 00000 n
+0000778093 00000 n
+0000778158 00000 n
+0000778223 00000 n
+0000778288 00000 n
+0000778353 00000 n
+0000778418 00000 n
+0000778483 00000 n
+0000783852 00000 n
+0000781522 00000 n
+0000778724 00000 n
+0000781647 00000 n
+0000781711 00000 n
+0000781776 00000 n
+0000781840 00000 n
+0000781905 00000 n
+0000781970 00000 n
+0000782035 00000 n
+0000782100 00000 n
+0000782165 00000 n
+0000782230 00000 n
+0000782295 00000 n
+0000782360 00000 n
+0000782424 00000 n
+0000782489 00000 n
+0000782554 00000 n
+0000782619 00000 n
+0000782684 00000 n
+0000782749 00000 n
+0000782814 00000 n
+0000782879 00000 n
+0000782944 00000 n
+0000783009 00000 n
+0000783074 00000 n
+0000783139 00000 n
+0000783203 00000 n
+0000783268 00000 n
+0000783333 00000 n
+0000783398 00000 n
+0000783463 00000 n
+0000783528 00000 n
+0000783593 00000 n
+0000783657 00000 n
+0000783722 00000 n
+0000783787 00000 n
+0000789037 00000 n
+0000786449 00000 n
+0000784029 00000 n
+0000786574 00000 n
+0000786638 00000 n
+0000786703 00000 n
+0000786768 00000 n
+0000786833 00000 n
+0000786898 00000 n
+0000786963 00000 n
+0000787028 00000 n
+0000787093 00000 n
+0000787158 00000 n
+0000787222 00000 n
+0000787287 00000 n
+0000787352 00000 n
+0000787417 00000 n
+0000787482 00000 n
+0000787547 00000 n
+0000787612 00000 n
+0000787677 00000 n
+0000787741 00000 n
+0000787806 00000 n
+0000787871 00000 n
+0000787936 00000 n
+0000788001 00000 n
+0000788066 00000 n
+0000788131 00000 n
0000788195 00000 n
0000788260 00000 n
0000788325 00000 n
-0000788390 00000 n
+0000788389 00000 n
0000788454 00000 n
0000788519 00000 n
0000788584 00000 n
@@ -47734,857 +47851,863 @@ xref
0000788714 00000 n
0000788779 00000 n
0000788844 00000 n
-0000788909 00000 n
-0000788974 00000 n
-0001889396 00000 n
-0000794313 00000 n
-0000792180 00000 n
-0000789276 00000 n
-0000792305 00000 n
-0000792369 00000 n
-0000792434 00000 n
-0000792498 00000 n
-0000792563 00000 n
-0000792628 00000 n
-0000792693 00000 n
-0000792758 00000 n
-0000792823 00000 n
-0000792888 00000 n
-0000792953 00000 n
-0000793018 00000 n
-0000793081 00000 n
-0000793146 00000 n
-0000793211 00000 n
-0000793276 00000 n
-0000793341 00000 n
-0000793406 00000 n
-0000793471 00000 n
-0000793536 00000 n
-0000793601 00000 n
-0000793666 00000 n
-0000793731 00000 n
-0000793795 00000 n
-0000793860 00000 n
-0000793925 00000 n
-0000793990 00000 n
-0000794055 00000 n
-0000794120 00000 n
-0000794185 00000 n
-0000794249 00000 n
-0000800179 00000 n
-0000797461 00000 n
-0000794568 00000 n
-0000797586 00000 n
-0000797650 00000 n
-0000797715 00000 n
-0000797780 00000 n
-0000797845 00000 n
-0000797910 00000 n
-0000797975 00000 n
-0000798040 00000 n
-0000798105 00000 n
-0000798170 00000 n
-0000798234 00000 n
-0000798299 00000 n
-0000798364 00000 n
-0000798429 00000 n
-0000798494 00000 n
-0000798559 00000 n
-0000798624 00000 n
-0000798689 00000 n
-0000798753 00000 n
-0000798818 00000 n
-0000798883 00000 n
-0000798948 00000 n
-0000799013 00000 n
-0000799078 00000 n
-0000799143 00000 n
-0000799208 00000 n
-0000799273 00000 n
-0000799337 00000 n
-0000799402 00000 n
-0000799467 00000 n
-0000799532 00000 n
-0000799597 00000 n
-0000799662 00000 n
-0000799727 00000 n
-0000799791 00000 n
-0000799856 00000 n
-0000799921 00000 n
-0000799986 00000 n
-0000800051 00000 n
-0000800115 00000 n
-0000806061 00000 n
-0000802565 00000 n
-0000800369 00000 n
-0000802690 00000 n
-0000802754 00000 n
-0000802819 00000 n
-0000802884 00000 n
-0000802949 00000 n
-0000803014 00000 n
-0000803079 00000 n
-0000803144 00000 n
-0000803207 00000 n
-0000803272 00000 n
-0000803337 00000 n
-0000803402 00000 n
-0000803467 00000 n
-0000803532 00000 n
-0000803597 00000 n
-0000803662 00000 n
-0000803727 00000 n
-0000803792 00000 n
-0000803857 00000 n
-0000803922 00000 n
-0000803987 00000 n
-0000804052 00000 n
-0000804117 00000 n
-0000804182 00000 n
-0000804247 00000 n
-0000804311 00000 n
-0000804376 00000 n
-0000804441 00000 n
-0000804506 00000 n
-0000804571 00000 n
-0000804636 00000 n
-0000804701 00000 n
-0000804766 00000 n
-0000804831 00000 n
-0000804895 00000 n
-0000804960 00000 n
-0000805025 00000 n
-0000805090 00000 n
-0000805155 00000 n
-0000805219 00000 n
-0000805284 00000 n
-0000805349 00000 n
-0000805414 00000 n
-0000805479 00000 n
-0000805544 00000 n
-0000805609 00000 n
-0000805674 00000 n
-0000805739 00000 n
-0000805803 00000 n
-0000805868 00000 n
-0000805933 00000 n
-0000805997 00000 n
-0000812080 00000 n
-0000808062 00000 n
-0000806225 00000 n
-0000808187 00000 n
-0000808251 00000 n
-0000808316 00000 n
-0000808381 00000 n
-0000808446 00000 n
-0000808511 00000 n
-0000808576 00000 n
-0000808641 00000 n
-0000808706 00000 n
-0000808771 00000 n
-0000808836 00000 n
-0000808901 00000 n
-0000808966 00000 n
-0000809031 00000 n
-0000809096 00000 n
-0000809161 00000 n
-0000809226 00000 n
-0000809290 00000 n
-0000809355 00000 n
-0000809420 00000 n
-0000809485 00000 n
-0000809550 00000 n
-0000809615 00000 n
-0000809680 00000 n
-0000809745 00000 n
-0000809810 00000 n
-0000809874 00000 n
-0000809939 00000 n
-0000810004 00000 n
-0000810069 00000 n
-0000810134 00000 n
-0000810199 00000 n
-0000810264 00000 n
-0000810329 00000 n
-0000810394 00000 n
-0000810458 00000 n
-0000810523 00000 n
-0000810588 00000 n
-0000810653 00000 n
-0000810718 00000 n
-0000810783 00000 n
-0000810848 00000 n
-0000810913 00000 n
-0000810978 00000 n
-0000811043 00000 n
-0000811108 00000 n
-0000811173 00000 n
-0000811238 00000 n
-0000811303 00000 n
-0000811368 00000 n
-0000811433 00000 n
-0000811498 00000 n
-0000811563 00000 n
-0000811628 00000 n
-0000811692 00000 n
-0000811757 00000 n
-0000811822 00000 n
-0000811887 00000 n
-0000811952 00000 n
-0000812016 00000 n
-0000817812 00000 n
-0000814246 00000 n
-0000812244 00000 n
-0000814371 00000 n
-0000814435 00000 n
-0000814500 00000 n
-0000814565 00000 n
-0000814630 00000 n
-0000814695 00000 n
-0000814760 00000 n
-0000814825 00000 n
-0000814890 00000 n
-0000814955 00000 n
-0000815019 00000 n
-0000815084 00000 n
-0000815149 00000 n
-0000815214 00000 n
-0000815279 00000 n
-0000815344 00000 n
-0000815409 00000 n
-0000815474 00000 n
-0000815539 00000 n
-0000815604 00000 n
-0000815669 00000 n
-0000815734 00000 n
-0000815799 00000 n
-0000815864 00000 n
-0000815929 00000 n
-0000815994 00000 n
-0000816058 00000 n
-0000816123 00000 n
-0000816188 00000 n
-0000816253 00000 n
-0000816318 00000 n
-0000816383 00000 n
-0000816448 00000 n
-0000816513 00000 n
-0000816578 00000 n
-0000816643 00000 n
-0000816708 00000 n
-0000816773 00000 n
-0000816838 00000 n
-0000816903 00000 n
-0000816968 00000 n
-0000817033 00000 n
-0000817098 00000 n
-0000817163 00000 n
-0000817228 00000 n
-0000817292 00000 n
-0000817357 00000 n
-0000817422 00000 n
-0000817487 00000 n
-0000817552 00000 n
-0000817617 00000 n
-0000817682 00000 n
-0000817747 00000 n
-0000823474 00000 n
-0000820494 00000 n
-0000817989 00000 n
-0000820619 00000 n
-0000820683 00000 n
-0000820748 00000 n
-0000820812 00000 n
-0000820877 00000 n
-0000820942 00000 n
-0000821007 00000 n
-0000821072 00000 n
-0000821137 00000 n
-0000821202 00000 n
-0000821267 00000 n
-0000821332 00000 n
-0000821396 00000 n
-0000821461 00000 n
-0000821526 00000 n
-0000821591 00000 n
-0000821656 00000 n
-0000821721 00000 n
-0000821786 00000 n
-0000821851 00000 n
-0000821916 00000 n
-0000821981 00000 n
-0000822046 00000 n
-0000822111 00000 n
-0000822176 00000 n
-0000822241 00000 n
-0000822306 00000 n
-0000822371 00000 n
-0000822436 00000 n
-0000822500 00000 n
-0000822565 00000 n
-0000822630 00000 n
-0000822695 00000 n
-0000822760 00000 n
-0000822825 00000 n
-0000822890 00000 n
-0000822955 00000 n
-0000823019 00000 n
-0000823084 00000 n
-0000823149 00000 n
-0000823214 00000 n
-0000823279 00000 n
-0000823344 00000 n
-0000823409 00000 n
-0000829106 00000 n
-0000825348 00000 n
-0000823664 00000 n
-0000825473 00000 n
-0000825537 00000 n
-0000825602 00000 n
-0000825667 00000 n
-0000825732 00000 n
-0000825797 00000 n
-0000825862 00000 n
-0000825927 00000 n
-0000825992 00000 n
-0000826057 00000 n
-0000826121 00000 n
-0000826186 00000 n
-0000826251 00000 n
-0000826316 00000 n
-0000826381 00000 n
-0000826446 00000 n
-0000826511 00000 n
-0000826576 00000 n
-0000826641 00000 n
-0000826706 00000 n
-0000826771 00000 n
-0000826836 00000 n
-0000826901 00000 n
-0000826966 00000 n
-0000827031 00000 n
-0000827095 00000 n
-0000827160 00000 n
-0000827225 00000 n
-0000827290 00000 n
-0000827355 00000 n
-0000827420 00000 n
-0000827485 00000 n
-0000827550 00000 n
-0000827615 00000 n
-0000827679 00000 n
-0000827744 00000 n
-0000827809 00000 n
-0000827874 00000 n
-0000827939 00000 n
-0000828004 00000 n
-0000828069 00000 n
-0000828134 00000 n
-0000828199 00000 n
-0000828263 00000 n
-0000828328 00000 n
-0000828393 00000 n
-0000828458 00000 n
-0000828523 00000 n
-0000828587 00000 n
-0000828652 00000 n
-0000828717 00000 n
-0000828782 00000 n
-0000828847 00000 n
-0000828912 00000 n
-0000828977 00000 n
-0000829042 00000 n
-0000836123 00000 n
-0000832560 00000 n
-0000829270 00000 n
-0000832685 00000 n
-0000832749 00000 n
-0000832814 00000 n
-0000832879 00000 n
-0000832944 00000 n
-0000833009 00000 n
-0000833074 00000 n
-0000833139 00000 n
-0000833204 00000 n
-0000833269 00000 n
-0000833333 00000 n
-0000833398 00000 n
-0000833463 00000 n
-0000833528 00000 n
-0000833593 00000 n
-0000833658 00000 n
-0000833723 00000 n
-0000833788 00000 n
-0000833853 00000 n
-0000833917 00000 n
-0000833982 00000 n
-0000834047 00000 n
-0000834112 00000 n
-0000834177 00000 n
-0000834242 00000 n
-0000834307 00000 n
-0000834372 00000 n
-0000834437 00000 n
-0000834500 00000 n
-0000834565 00000 n
-0000834630 00000 n
-0000834695 00000 n
-0000834760 00000 n
-0000834825 00000 n
-0000834890 00000 n
-0000834955 00000 n
-0000835020 00000 n
-0000835084 00000 n
-0000835149 00000 n
-0000835214 00000 n
-0000835279 00000 n
-0000835344 00000 n
-0000835409 00000 n
-0000835474 00000 n
-0000835539 00000 n
-0000835604 00000 n
-0000835668 00000 n
-0000835733 00000 n
-0000835798 00000 n
-0000835863 00000 n
-0000835928 00000 n
-0000835993 00000 n
-0000836058 00000 n
-0000843199 00000 n
-0000840029 00000 n
-0000836314 00000 n
-0000840154 00000 n
-0000840218 00000 n
-0000840283 00000 n
-0000840348 00000 n
-0000840412 00000 n
-0000840477 00000 n
-0000840542 00000 n
-0000840607 00000 n
-0000840672 00000 n
-0000840737 00000 n
-0000840802 00000 n
-0000840867 00000 n
-0000840932 00000 n
-0000840995 00000 n
-0000841060 00000 n
-0000841125 00000 n
-0000841190 00000 n
-0000841254 00000 n
-0000841319 00000 n
-0000841384 00000 n
-0000841449 00000 n
-0000841514 00000 n
-0000841579 00000 n
-0000841644 00000 n
-0000841709 00000 n
-0000841774 00000 n
-0000841838 00000 n
-0000841903 00000 n
-0000841968 00000 n
-0000842033 00000 n
-0000842098 00000 n
-0000842163 00000 n
-0000842228 00000 n
-0000842293 00000 n
-0000842358 00000 n
-0000842423 00000 n
-0000842487 00000 n
-0000842552 00000 n
-0000842617 00000 n
-0000842682 00000 n
-0000842747 00000 n
-0000842811 00000 n
-0000842876 00000 n
-0000842941 00000 n
-0000843006 00000 n
-0000843071 00000 n
-0000843135 00000 n
-0000848851 00000 n
-0000845418 00000 n
-0000843416 00000 n
-0000845543 00000 n
-0000845607 00000 n
-0000845672 00000 n
-0000845737 00000 n
-0000845802 00000 n
-0000845867 00000 n
-0000845932 00000 n
-0000845997 00000 n
-0000846061 00000 n
-0000846126 00000 n
-0000846191 00000 n
-0000846256 00000 n
-0000846321 00000 n
-0000846386 00000 n
-0000846451 00000 n
-0000846516 00000 n
-0000846581 00000 n
-0000846645 00000 n
-0000846710 00000 n
-0000846775 00000 n
-0000846840 00000 n
-0000846905 00000 n
-0000846970 00000 n
-0000847035 00000 n
-0000847100 00000 n
-0000847165 00000 n
-0000847230 00000 n
-0000847294 00000 n
-0000847359 00000 n
-0000847424 00000 n
-0000847489 00000 n
-0000847554 00000 n
-0000847619 00000 n
-0000847684 00000 n
-0000847749 00000 n
-0000847814 00000 n
-0000847879 00000 n
-0000847944 00000 n
-0000848009 00000 n
-0000848074 00000 n
-0000848138 00000 n
-0000848203 00000 n
-0000848268 00000 n
-0000848333 00000 n
-0000848398 00000 n
-0000848463 00000 n
-0000848528 00000 n
-0000848593 00000 n
-0000848658 00000 n
-0000848721 00000 n
-0000848786 00000 n
-0001889561 00000 n
-0000854501 00000 n
-0000851327 00000 n
-0000849028 00000 n
-0000851452 00000 n
-0000851516 00000 n
-0000851581 00000 n
-0000851646 00000 n
-0000851711 00000 n
-0000851776 00000 n
-0000851841 00000 n
-0000851906 00000 n
-0000851971 00000 n
-0000852036 00000 n
-0000852100 00000 n
-0000852165 00000 n
-0000852230 00000 n
-0000852295 00000 n
-0000852360 00000 n
-0000852425 00000 n
-0000852490 00000 n
-0000852555 00000 n
-0000852620 00000 n
-0000852685 00000 n
-0000852750 00000 n
-0000852814 00000 n
-0000852879 00000 n
-0000852944 00000 n
-0000853009 00000 n
-0000853074 00000 n
-0000853139 00000 n
-0000853204 00000 n
-0000853268 00000 n
-0000853333 00000 n
-0000853398 00000 n
-0000853463 00000 n
-0000853528 00000 n
-0000853593 00000 n
-0000853658 00000 n
-0000853723 00000 n
-0000853788 00000 n
-0000853853 00000 n
-0000853918 00000 n
-0000853983 00000 n
-0000854048 00000 n
-0000854113 00000 n
-0000854178 00000 n
-0000854243 00000 n
-0000854308 00000 n
-0000854373 00000 n
-0000854437 00000 n
-0000860341 00000 n
-0000857103 00000 n
-0000854691 00000 n
-0000857228 00000 n
-0000857292 00000 n
-0000857357 00000 n
-0000857422 00000 n
-0000857487 00000 n
-0000857552 00000 n
-0000857617 00000 n
-0000857682 00000 n
-0000857747 00000 n
-0000857812 00000 n
-0000857877 00000 n
-0000857942 00000 n
-0000858007 00000 n
-0000858072 00000 n
-0000858137 00000 n
-0000858201 00000 n
-0000858266 00000 n
-0000858331 00000 n
-0000858396 00000 n
-0000858461 00000 n
-0000858526 00000 n
-0000858591 00000 n
-0000858656 00000 n
-0000858721 00000 n
-0000858786 00000 n
-0000858851 00000 n
-0000858916 00000 n
-0000858981 00000 n
-0000859046 00000 n
-0000859111 00000 n
-0000859176 00000 n
-0000859241 00000 n
-0000859306 00000 n
-0000859370 00000 n
-0000859435 00000 n
-0000859500 00000 n
-0000859565 00000 n
-0000859630 00000 n
-0000859695 00000 n
-0000859760 00000 n
-0000859824 00000 n
-0000859889 00000 n
-0000859954 00000 n
-0000860019 00000 n
-0000860084 00000 n
-0000860148 00000 n
-0000860213 00000 n
-0000860277 00000 n
-0000865897 00000 n
-0000862918 00000 n
-0000860505 00000 n
-0000863043 00000 n
-0000863107 00000 n
-0000863172 00000 n
-0000863237 00000 n
-0000863302 00000 n
-0000863367 00000 n
-0000863432 00000 n
-0000863497 00000 n
-0000863560 00000 n
-0000863625 00000 n
-0000863690 00000 n
-0000863755 00000 n
-0000863820 00000 n
-0000863885 00000 n
-0000863950 00000 n
-0000864015 00000 n
-0000864080 00000 n
-0000864145 00000 n
-0000864210 00000 n
-0000864274 00000 n
-0000864339 00000 n
-0000864404 00000 n
-0000864469 00000 n
-0000864534 00000 n
-0000864599 00000 n
-0000864664 00000 n
-0000864729 00000 n
-0000864794 00000 n
-0000864859 00000 n
-0000864924 00000 n
-0000864989 00000 n
-0000865054 00000 n
-0000865119 00000 n
-0000865184 00000 n
-0000865249 00000 n
-0000865313 00000 n
-0000865378 00000 n
-0000865443 00000 n
-0000865508 00000 n
-0000865573 00000 n
-0000865638 00000 n
-0000865703 00000 n
-0000865768 00000 n
-0000865833 00000 n
-0000871920 00000 n
-0000868228 00000 n
-0000866087 00000 n
-0000868353 00000 n
-0000868417 00000 n
-0000868482 00000 n
-0000868547 00000 n
-0000868612 00000 n
-0000868677 00000 n
-0000868742 00000 n
-0000868807 00000 n
-0000868872 00000 n
-0000868937 00000 n
-0000869001 00000 n
-0000869066 00000 n
-0000869131 00000 n
-0000869196 00000 n
-0000869261 00000 n
-0000869326 00000 n
-0000869391 00000 n
-0000869456 00000 n
-0000869521 00000 n
-0000869585 00000 n
-0000869650 00000 n
-0000869715 00000 n
-0000869780 00000 n
-0000869845 00000 n
-0000869910 00000 n
-0000869974 00000 n
-0000870039 00000 n
-0000870104 00000 n
-0000870169 00000 n
-0000870234 00000 n
-0000870299 00000 n
-0000870364 00000 n
-0000870428 00000 n
-0000870493 00000 n
-0000870558 00000 n
-0000870623 00000 n
-0000870688 00000 n
-0000870753 00000 n
-0000870818 00000 n
-0000870883 00000 n
-0000870948 00000 n
-0000871013 00000 n
-0000871078 00000 n
-0000871143 00000 n
-0000871208 00000 n
-0000871273 00000 n
-0000871338 00000 n
-0000871403 00000 n
-0000871468 00000 n
-0000871532 00000 n
-0000871597 00000 n
-0000871662 00000 n
-0000871727 00000 n
-0000871792 00000 n
-0000871856 00000 n
-0000877023 00000 n
-0000873721 00000 n
-0000872097 00000 n
-0000873846 00000 n
-0000873910 00000 n
-0000873975 00000 n
-0000874040 00000 n
-0000874105 00000 n
-0000874170 00000 n
-0000874235 00000 n
-0000874300 00000 n
-0000874365 00000 n
-0000874430 00000 n
-0000874495 00000 n
-0000874560 00000 n
-0000874625 00000 n
-0000874690 00000 n
-0000874755 00000 n
-0000874820 00000 n
-0000874885 00000 n
-0000874950 00000 n
-0000875014 00000 n
-0000875079 00000 n
-0000875144 00000 n
-0000875209 00000 n
-0000875274 00000 n
-0000875339 00000 n
-0000875404 00000 n
-0000875469 00000 n
-0000875534 00000 n
-0000875598 00000 n
-0000875663 00000 n
-0000875728 00000 n
-0000875793 00000 n
-0000875858 00000 n
-0000875923 00000 n
-0000875988 00000 n
-0000876053 00000 n
-0000876118 00000 n
-0000876183 00000 n
-0000876247 00000 n
-0000876312 00000 n
-0000876377 00000 n
-0000876442 00000 n
-0000876507 00000 n
-0000876572 00000 n
-0000876637 00000 n
-0000876702 00000 n
-0000876829 00000 n
-0000876894 00000 n
-0000876959 00000 n
-0000882471 00000 n
-0000879753 00000 n
-0000877200 00000 n
-0000879878 00000 n
-0000879942 00000 n
-0000880007 00000 n
-0000880072 00000 n
-0000880137 00000 n
-0000880202 00000 n
-0000880267 00000 n
-0000880332 00000 n
-0000880397 00000 n
-0000880462 00000 n
-0000880526 00000 n
-0000880591 00000 n
-0000880656 00000 n
-0000880721 00000 n
-0000880786 00000 n
-0000880851 00000 n
-0000880916 00000 n
-0000880981 00000 n
-0000881046 00000 n
-0000881111 00000 n
-0000881176 00000 n
-0000881241 00000 n
-0000881306 00000 n
-0000881371 00000 n
-0000881435 00000 n
-0000881500 00000 n
-0000881565 00000 n
-0000881630 00000 n
-0000881694 00000 n
-0000881759 00000 n
-0000881824 00000 n
-0000881889 00000 n
-0000881954 00000 n
-0000882019 00000 n
-0000882084 00000 n
-0000882149 00000 n
-0000882214 00000 n
-0000882278 00000 n
-0000882343 00000 n
-0000882407 00000 n
-0000888247 00000 n
-0000884554 00000 n
-0000882661 00000 n
-0000884679 00000 n
-0000884743 00000 n
-0000884808 00000 n
-0000884873 00000 n
-0000884938 00000 n
-0000885003 00000 n
-0000885068 00000 n
-0000885133 00000 n
-0000885198 00000 n
-0000885263 00000 n
-0000885328 00000 n
-0000885393 00000 n
-0000885457 00000 n
-0000885522 00000 n
-0000885587 00000 n
-0000885652 00000 n
-0000885717 00000 n
-0000885782 00000 n
+0000788907 00000 n
+0000788972 00000 n
+0001893646 00000 n
+0000794255 00000 n
+0000791604 00000 n
+0000789227 00000 n
+0000791729 00000 n
+0000791793 00000 n
+0000791858 00000 n
+0000791923 00000 n
+0000791988 00000 n
+0000792053 00000 n
+0000792118 00000 n
+0000792183 00000 n
+0000792248 00000 n
+0000792313 00000 n
+0000792377 00000 n
+0000792442 00000 n
+0000792507 00000 n
+0000792572 00000 n
+0000792637 00000 n
+0000792702 00000 n
+0000792767 00000 n
+0000792832 00000 n
+0000792959 00000 n
+0000793024 00000 n
+0000793087 00000 n
+0000793152 00000 n
+0000793217 00000 n
+0000793282 00000 n
+0000793347 00000 n
+0000793412 00000 n
+0000793477 00000 n
+0000793542 00000 n
+0000793607 00000 n
+0000793672 00000 n
+0000793737 00000 n
+0000793802 00000 n
+0000793867 00000 n
+0000793932 00000 n
+0000793997 00000 n
+0000794062 00000 n
+0000794127 00000 n
+0000794191 00000 n
+0000800042 00000 n
+0000797516 00000 n
+0000794471 00000 n
+0000797641 00000 n
+0000797705 00000 n
+0000797770 00000 n
+0000797835 00000 n
+0000797900 00000 n
+0000797965 00000 n
+0000798030 00000 n
+0000798095 00000 n
+0000798160 00000 n
+0000798225 00000 n
+0000798290 00000 n
+0000798355 00000 n
+0000798420 00000 n
+0000798485 00000 n
+0000798550 00000 n
+0000798614 00000 n
+0000798679 00000 n
+0000798744 00000 n
+0000798809 00000 n
+0000798874 00000 n
+0000798939 00000 n
+0000799004 00000 n
+0000799069 00000 n
+0000799134 00000 n
+0000799199 00000 n
+0000799264 00000 n
+0000799329 00000 n
+0000799394 00000 n
+0000799459 00000 n
+0000799524 00000 n
+0000799589 00000 n
+0000799654 00000 n
+0000799719 00000 n
+0000799784 00000 n
+0000799849 00000 n
+0000799914 00000 n
+0000799978 00000 n
+0000805806 00000 n
+0000802827 00000 n
+0000800271 00000 n
+0000802952 00000 n
+0000803016 00000 n
+0000803081 00000 n
+0000803146 00000 n
+0000803211 00000 n
+0000803276 00000 n
+0000803341 00000 n
+0000803406 00000 n
+0000803471 00000 n
+0000803536 00000 n
+0000803601 00000 n
+0000803666 00000 n
+0000803731 00000 n
+0000803796 00000 n
+0000803861 00000 n
+0000803926 00000 n
+0000803991 00000 n
+0000804056 00000 n
+0000804121 00000 n
+0000804186 00000 n
+0000804250 00000 n
+0000804315 00000 n
+0000804380 00000 n
+0000804445 00000 n
+0000804510 00000 n
+0000804575 00000 n
+0000804640 00000 n
+0000804705 00000 n
+0000804770 00000 n
+0000804835 00000 n
+0000804900 00000 n
+0000804965 00000 n
+0000805030 00000 n
+0000805095 00000 n
+0000805160 00000 n
+0000805224 00000 n
+0000805289 00000 n
+0000805354 00000 n
+0000805419 00000 n
+0000805484 00000 n
+0000805549 00000 n
+0000805614 00000 n
+0000805679 00000 n
+0000805743 00000 n
+0000811580 00000 n
+0000807694 00000 n
+0000805996 00000 n
+0000807819 00000 n
+0000807883 00000 n
+0000807948 00000 n
+0000808013 00000 n
+0000808078 00000 n
+0000808143 00000 n
+0000808208 00000 n
+0000808273 00000 n
+0000808338 00000 n
+0000808403 00000 n
+0000808468 00000 n
+0000808533 00000 n
+0000808598 00000 n
+0000808663 00000 n
+0000808726 00000 n
+0000808791 00000 n
+0000808856 00000 n
+0000808921 00000 n
+0000808986 00000 n
+0000809051 00000 n
+0000809116 00000 n
+0000809181 00000 n
+0000809246 00000 n
+0000809311 00000 n
+0000809376 00000 n
+0000809441 00000 n
+0000809506 00000 n
+0000809571 00000 n
+0000809636 00000 n
+0000809701 00000 n
+0000809766 00000 n
+0000809830 00000 n
+0000809895 00000 n
+0000809960 00000 n
+0000810025 00000 n
+0000810090 00000 n
+0000810155 00000 n
+0000810220 00000 n
+0000810285 00000 n
+0000810350 00000 n
+0000810414 00000 n
+0000810479 00000 n
+0000810544 00000 n
+0000810609 00000 n
+0000810674 00000 n
+0000810739 00000 n
+0000810804 00000 n
+0000810869 00000 n
+0000810934 00000 n
+0000810998 00000 n
+0000811063 00000 n
+0000811128 00000 n
+0000811193 00000 n
+0000811258 00000 n
+0000811323 00000 n
+0000811388 00000 n
+0000811453 00000 n
+0000811517 00000 n
+0000817504 00000 n
+0000813554 00000 n
+0000811744 00000 n
+0000813679 00000 n
+0000813743 00000 n
+0000813808 00000 n
+0000813873 00000 n
+0000813938 00000 n
+0000814003 00000 n
+0000814068 00000 n
+0000814133 00000 n
+0000814198 00000 n
+0000814263 00000 n
+0000814327 00000 n
+0000814392 00000 n
+0000814457 00000 n
+0000814522 00000 n
+0000814587 00000 n
+0000814652 00000 n
+0000814717 00000 n
+0000814782 00000 n
+0000814847 00000 n
+0000814911 00000 n
+0000814976 00000 n
+0000815041 00000 n
+0000815106 00000 n
+0000815171 00000 n
+0000815236 00000 n
+0000815301 00000 n
+0000815366 00000 n
+0000815431 00000 n
+0000815494 00000 n
+0000815559 00000 n
+0000815624 00000 n
+0000815689 00000 n
+0000815754 00000 n
+0000815819 00000 n
+0000815884 00000 n
+0000815949 00000 n
+0000816014 00000 n
+0000816078 00000 n
+0000816143 00000 n
+0000816208 00000 n
+0000816273 00000 n
+0000816338 00000 n
+0000816403 00000 n
+0000816468 00000 n
+0000816532 00000 n
+0000816597 00000 n
+0000816662 00000 n
+0000816727 00000 n
+0000816792 00000 n
+0000816857 00000 n
+0000816922 00000 n
+0000816987 00000 n
+0000817052 00000 n
+0000817116 00000 n
+0000817181 00000 n
+0000817246 00000 n
+0000817311 00000 n
+0000817376 00000 n
+0000817440 00000 n
+0000823114 00000 n
+0000820004 00000 n
+0000817668 00000 n
+0000820129 00000 n
+0000820193 00000 n
+0000820258 00000 n
+0000820323 00000 n
+0000820388 00000 n
+0000820453 00000 n
+0000820518 00000 n
+0000820583 00000 n
+0000820647 00000 n
+0000820712 00000 n
+0000820777 00000 n
+0000820842 00000 n
+0000820907 00000 n
+0000820972 00000 n
+0000821037 00000 n
+0000821102 00000 n
+0000821167 00000 n
+0000821231 00000 n
+0000821296 00000 n
+0000821361 00000 n
+0000821425 00000 n
+0000821490 00000 n
+0000821555 00000 n
+0000821620 00000 n
+0000821685 00000 n
+0000821750 00000 n
+0000821815 00000 n
+0000821880 00000 n
+0000821945 00000 n
+0000822009 00000 n
+0000822074 00000 n
+0000822139 00000 n
+0000822204 00000 n
+0000822269 00000 n
+0000822334 00000 n
+0000822399 00000 n
+0000822464 00000 n
+0000822529 00000 n
+0000822594 00000 n
+0000822659 00000 n
+0000822724 00000 n
+0000822789 00000 n
+0000822854 00000 n
+0000822919 00000 n
+0000822984 00000 n
+0000823049 00000 n
+0000829100 00000 n
+0000825541 00000 n
+0000823317 00000 n
+0000825666 00000 n
+0000825730 00000 n
+0000825795 00000 n
+0000825859 00000 n
+0000825924 00000 n
+0000825989 00000 n
+0000826054 00000 n
+0000826119 00000 n
+0000826184 00000 n
+0000826249 00000 n
+0000826314 00000 n
+0000826377 00000 n
+0000826442 00000 n
+0000826507 00000 n
+0000826572 00000 n
+0000826637 00000 n
+0000826702 00000 n
+0000826767 00000 n
+0000826830 00000 n
+0000826895 00000 n
+0000826960 00000 n
+0000827025 00000 n
+0000827090 00000 n
+0000827155 00000 n
+0000827220 00000 n
+0000827285 00000 n
+0000827350 00000 n
+0000827414 00000 n
+0000827479 00000 n
+0000827544 00000 n
+0000827609 00000 n
+0000827674 00000 n
+0000827739 00000 n
+0000827804 00000 n
+0000827869 00000 n
+0000827934 00000 n
+0000827999 00000 n
+0000828064 00000 n
+0000828129 00000 n
+0000828194 00000 n
+0000828259 00000 n
+0000828323 00000 n
+0000828388 00000 n
+0000828453 00000 n
+0000828518 00000 n
+0000828583 00000 n
+0000828648 00000 n
+0000828713 00000 n
+0000828778 00000 n
+0000828843 00000 n
+0000828907 00000 n
+0000828972 00000 n
+0000829036 00000 n
+0000835067 00000 n
+0000831050 00000 n
+0000829264 00000 n
+0000831175 00000 n
+0000831239 00000 n
+0000831304 00000 n
+0000831369 00000 n
+0000831434 00000 n
+0000831499 00000 n
+0000831564 00000 n
+0000831629 00000 n
+0000831693 00000 n
+0000831758 00000 n
+0000831823 00000 n
+0000831888 00000 n
+0000831953 00000 n
+0000832018 00000 n
+0000832083 00000 n
+0000832148 00000 n
+0000832213 00000 n
+0000832277 00000 n
+0000832342 00000 n
+0000832407 00000 n
+0000832472 00000 n
+0000832537 00000 n
+0000832602 00000 n
+0000832667 00000 n
+0000832732 00000 n
+0000832797 00000 n
+0000832861 00000 n
+0000832926 00000 n
+0000832991 00000 n
+0000833056 00000 n
+0000833121 00000 n
+0000833186 00000 n
+0000833251 00000 n
+0000833316 00000 n
+0000833381 00000 n
+0000833445 00000 n
+0000833510 00000 n
+0000833575 00000 n
+0000833640 00000 n
+0000833705 00000 n
+0000833770 00000 n
+0000833835 00000 n
+0000833900 00000 n
+0000833965 00000 n
+0000834030 00000 n
+0000834095 00000 n
+0000834160 00000 n
+0000834225 00000 n
+0000834290 00000 n
+0000834355 00000 n
+0000834420 00000 n
+0000834485 00000 n
+0000834550 00000 n
+0000834615 00000 n
+0000834679 00000 n
+0000834744 00000 n
+0000834809 00000 n
+0000834874 00000 n
+0000834939 00000 n
+0000835003 00000 n
+0000842785 00000 n
+0000839937 00000 n
+0000835231 00000 n
+0000840062 00000 n
+0000840126 00000 n
+0000840191 00000 n
+0000840256 00000 n
+0000840321 00000 n
+0000840386 00000 n
+0000840451 00000 n
+0000840516 00000 n
+0000840581 00000 n
+0000840646 00000 n
+0000840710 00000 n
+0000840775 00000 n
+0000840840 00000 n
+0000840905 00000 n
+0000840970 00000 n
+0000841035 00000 n
+0000841100 00000 n
+0000841165 00000 n
+0000841230 00000 n
+0000841295 00000 n
+0000841360 00000 n
+0000841425 00000 n
+0000841490 00000 n
+0000841555 00000 n
+0000841620 00000 n
+0000841683 00000 n
+0000841748 00000 n
+0000841813 00000 n
+0000841878 00000 n
+0000841943 00000 n
+0000842008 00000 n
+0000842073 00000 n
+0000842138 00000 n
+0000842203 00000 n
+0000842268 00000 n
+0000842333 00000 n
+0000842397 00000 n
+0000842462 00000 n
+0000842527 00000 n
+0000842592 00000 n
+0000842657 00000 n
+0000842721 00000 n
+0000848733 00000 n
+0000845494 00000 n
+0000842989 00000 n
+0000845619 00000 n
+0000845683 00000 n
+0000845748 00000 n
+0000845813 00000 n
+0000845878 00000 n
+0000845943 00000 n
+0000846008 00000 n
+0000846073 00000 n
+0000846138 00000 n
+0000846203 00000 n
+0000846268 00000 n
+0000846333 00000 n
+0000846398 00000 n
+0000846463 00000 n
+0000846528 00000 n
+0000846592 00000 n
+0000846657 00000 n
+0000846722 00000 n
+0000846787 00000 n
+0000846852 00000 n
+0000846917 00000 n
+0000846982 00000 n
+0000847047 00000 n
+0000847112 00000 n
+0000847177 00000 n
+0000847242 00000 n
+0000847307 00000 n
+0000847372 00000 n
+0000847437 00000 n
+0000847502 00000 n
+0000847567 00000 n
+0000847632 00000 n
+0000847696 00000 n
+0000847761 00000 n
+0000847826 00000 n
+0000847891 00000 n
+0000847956 00000 n
+0000848021 00000 n
+0000848086 00000 n
+0000848151 00000 n
+0000848216 00000 n
+0000848281 00000 n
+0000848345 00000 n
+0000848410 00000 n
+0000848475 00000 n
+0000848540 00000 n
+0000848605 00000 n
+0000848669 00000 n
+0001893811 00000 n
+0000854276 00000 n
+0000851103 00000 n
+0000848923 00000 n
+0000851228 00000 n
+0000851292 00000 n
+0000851357 00000 n
+0000851422 00000 n
+0000851487 00000 n
+0000851552 00000 n
+0000851617 00000 n
+0000851682 00000 n
+0000851747 00000 n
+0000851812 00000 n
+0000851877 00000 n
+0000851942 00000 n
+0000852006 00000 n
+0000852071 00000 n
+0000852136 00000 n
+0000852201 00000 n
+0000852266 00000 n
+0000852331 00000 n
+0000852396 00000 n
+0000852461 00000 n
+0000852526 00000 n
+0000852591 00000 n
+0000852656 00000 n
+0000852721 00000 n
+0000852786 00000 n
+0000852851 00000 n
+0000852916 00000 n
+0000852980 00000 n
+0000853044 00000 n
+0000853109 00000 n
+0000853174 00000 n
+0000853239 00000 n
+0000853304 00000 n
+0000853369 00000 n
+0000853434 00000 n
+0000853499 00000 n
+0000853564 00000 n
+0000853629 00000 n
+0000853693 00000 n
+0000853758 00000 n
+0000853823 00000 n
+0000853888 00000 n
+0000853953 00000 n
+0000854018 00000 n
+0000854083 00000 n
+0000854148 00000 n
+0000854212 00000 n
+0000860285 00000 n
+0000856788 00000 n
+0000854466 00000 n
+0000856913 00000 n
+0000856977 00000 n
+0000857042 00000 n
+0000857106 00000 n
+0000857171 00000 n
+0000857236 00000 n
+0000857301 00000 n
+0000857366 00000 n
+0000857431 00000 n
+0000857496 00000 n
+0000857561 00000 n
+0000857626 00000 n
+0000857691 00000 n
+0000857754 00000 n
+0000857819 00000 n
+0000857884 00000 n
+0000857949 00000 n
+0000858014 00000 n
+0000858079 00000 n
+0000858144 00000 n
+0000858209 00000 n
+0000858274 00000 n
+0000858339 00000 n
+0000858404 00000 n
+0000858469 00000 n
+0000858534 00000 n
+0000858599 00000 n
+0000858664 00000 n
+0000858728 00000 n
+0000858793 00000 n
+0000858858 00000 n
+0000858923 00000 n
+0000858988 00000 n
+0000859053 00000 n
+0000859118 00000 n
+0000859183 00000 n
+0000859248 00000 n
+0000859313 00000 n
+0000859378 00000 n
+0000859443 00000 n
+0000859508 00000 n
+0000859573 00000 n
+0000859638 00000 n
+0000859703 00000 n
+0000859768 00000 n
+0000859833 00000 n
+0000859897 00000 n
+0000859962 00000 n
+0000860027 00000 n
+0000860092 00000 n
+0000860157 00000 n
+0000860221 00000 n
+0000865845 00000 n
+0000862998 00000 n
+0000860449 00000 n
+0000863123 00000 n
+0000863187 00000 n
+0000863252 00000 n
+0000863317 00000 n
+0000863382 00000 n
+0000863447 00000 n
+0000863512 00000 n
+0000863577 00000 n
+0000863641 00000 n
+0000863706 00000 n
+0000863771 00000 n
+0000863836 00000 n
+0000863901 00000 n
+0000863965 00000 n
+0000864030 00000 n
+0000864095 00000 n
+0000864160 00000 n
+0000864225 00000 n
+0000864290 00000 n
+0000864355 00000 n
+0000864420 00000 n
+0000864485 00000 n
+0000864550 00000 n
+0000864615 00000 n
+0000864680 00000 n
+0000864745 00000 n
+0000864809 00000 n
+0000864874 00000 n
+0000864939 00000 n
+0000865004 00000 n
+0000865069 00000 n
+0000865133 00000 n
+0000865198 00000 n
+0000865263 00000 n
+0000865328 00000 n
+0000865393 00000 n
+0000865458 00000 n
+0000865523 00000 n
+0000865588 00000 n
+0000865653 00000 n
+0000865717 00000 n
+0000865781 00000 n
+0000871819 00000 n
+0000867933 00000 n
+0000866022 00000 n
+0000868058 00000 n
+0000868122 00000 n
+0000868187 00000 n
+0000868251 00000 n
+0000868316 00000 n
+0000868381 00000 n
+0000868446 00000 n
+0000868511 00000 n
+0000868576 00000 n
+0000868641 00000 n
+0000868706 00000 n
+0000868771 00000 n
+0000868835 00000 n
+0000868900 00000 n
+0000868965 00000 n
+0000869030 00000 n
+0000869095 00000 n
+0000869160 00000 n
+0000869225 00000 n
+0000869290 00000 n
+0000869355 00000 n
+0000869420 00000 n
+0000869485 00000 n
+0000869550 00000 n
+0000869615 00000 n
+0000869680 00000 n
+0000869745 00000 n
+0000869810 00000 n
+0000869875 00000 n
+0000869940 00000 n
+0000870005 00000 n
+0000870070 00000 n
+0000870134 00000 n
+0000870199 00000 n
+0000870264 00000 n
+0000870329 00000 n
+0000870394 00000 n
+0000870459 00000 n
+0000870524 00000 n
+0000870589 00000 n
+0000870654 00000 n
+0000870719 00000 n
+0000870783 00000 n
+0000870848 00000 n
+0000870913 00000 n
+0000870978 00000 n
+0000871043 00000 n
+0000871107 00000 n
+0000871172 00000 n
+0000871237 00000 n
+0000871302 00000 n
+0000871367 00000 n
+0000871432 00000 n
+0000871497 00000 n
+0000871562 00000 n
+0000871627 00000 n
+0000871691 00000 n
+0000871755 00000 n
+0000877523 00000 n
+0000873767 00000 n
+0000871996 00000 n
+0000873892 00000 n
+0000873956 00000 n
+0000874021 00000 n
+0000874085 00000 n
+0000874150 00000 n
+0000874215 00000 n
+0000874280 00000 n
+0000874345 00000 n
+0000874410 00000 n
+0000874475 00000 n
+0000874540 00000 n
+0000874605 00000 n
+0000874669 00000 n
+0000874734 00000 n
+0000874799 00000 n
+0000874864 00000 n
+0000874929 00000 n
+0000874994 00000 n
+0000875059 00000 n
+0000875124 00000 n
+0000875189 00000 n
+0000875254 00000 n
+0000875319 00000 n
+0000875384 00000 n
+0000875449 00000 n
+0000875514 00000 n
+0000875579 00000 n
+0000875644 00000 n
+0000875709 00000 n
+0000875774 00000 n
+0000875839 00000 n
+0000875904 00000 n
+0000875969 00000 n
+0000876034 00000 n
+0000876098 00000 n
+0000876163 00000 n
+0000876228 00000 n
+0000876293 00000 n
+0000876358 00000 n
+0000876423 00000 n
+0000876488 00000 n
+0000876553 00000 n
+0000876618 00000 n
+0000876681 00000 n
+0000876746 00000 n
+0000876811 00000 n
+0000876876 00000 n
+0000876941 00000 n
+0000877006 00000 n
+0000877071 00000 n
+0000877136 00000 n
+0000877201 00000 n
+0000877266 00000 n
+0000877330 00000 n
+0000877395 00000 n
+0000877459 00000 n
+0000882355 00000 n
+0000880031 00000 n
+0000877700 00000 n
+0000880156 00000 n
+0000880220 00000 n
+0000880285 00000 n
+0000880350 00000 n
+0000880476 00000 n
+0000880541 00000 n
+0000880606 00000 n
+0000880671 00000 n
+0000880736 00000 n
+0000880799 00000 n
+0000880864 00000 n
+0000880929 00000 n
+0000880994 00000 n
+0000881059 00000 n
+0000881124 00000 n
+0000881189 00000 n
+0000881254 00000 n
+0000881319 00000 n
+0000881383 00000 n
+0000881448 00000 n
+0000881513 00000 n
+0000881578 00000 n
+0000881643 00000 n
+0000881708 00000 n
+0000881773 00000 n
+0000881838 00000 n
+0000881903 00000 n
+0000881968 00000 n
+0000882033 00000 n
+0000882097 00000 n
+0000882162 00000 n
+0000882227 00000 n
+0000882291 00000 n
+0000888052 00000 n
+0000884426 00000 n
+0000882545 00000 n
+0000884551 00000 n
+0000884615 00000 n
+0000884680 00000 n
+0000884745 00000 n
+0000884810 00000 n
+0000884875 00000 n
+0000884940 00000 n
+0000885005 00000 n
+0000885069 00000 n
+0000885134 00000 n
+0000885199 00000 n
+0000885264 00000 n
+0000885329 00000 n
+0000885394 00000 n
+0000885459 00000 n
+0000885524 00000 n
+0000885589 00000 n
+0000885653 00000 n
+0000885718 00000 n
+0000885783 00000 n
0000885847 00000 n
0000885912 00000 n
0000885977 00000 n
-0000886041 00000 n
-0000886106 00000 n
-0000886171 00000 n
-0000886236 00000 n
-0000886301 00000 n
-0000886366 00000 n
+0000886042 00000 n
+0000886107 00000 n
+0000886172 00000 n
+0000886237 00000 n
+0000886302 00000 n
+0000886367 00000 n
0000886431 00000 n
0000886496 00000 n
0000886561 00000 n
@@ -48593,12 +48716,12 @@ xref
0000886756 00000 n
0000886821 00000 n
0000886886 00000 n
-0000886950 00000 n
-0000887015 00000 n
-0000887080 00000 n
-0000887145 00000 n
-0000887210 00000 n
-0000887275 00000 n
+0000886951 00000 n
+0000887016 00000 n
+0000887081 00000 n
+0000887146 00000 n
+0000887211 00000 n
+0000887276 00000 n
0000887340 00000 n
0000887405 00000 n
0000887470 00000 n
@@ -48608,2163 +48731,2167 @@ xref
0000887730 00000 n
0000887795 00000 n
0000887860 00000 n
-0000887925 00000 n
-0000887990 00000 n
-0000888054 00000 n
-0000888119 00000 n
-0000888183 00000 n
-0000893478 00000 n
-0000890306 00000 n
-0000888424 00000 n
-0000890431 00000 n
-0000890495 00000 n
-0000890560 00000 n
-0000890625 00000 n
-0000890690 00000 n
-0000890755 00000 n
-0000890820 00000 n
-0000890885 00000 n
-0000890950 00000 n
-0000891015 00000 n
-0000891080 00000 n
-0000891145 00000 n
-0000891209 00000 n
-0000891274 00000 n
-0000891339 00000 n
-0000891404 00000 n
-0000891469 00000 n
-0000891597 00000 n
-0000891662 00000 n
-0000891727 00000 n
-0000891792 00000 n
-0000891857 00000 n
-0000891921 00000 n
-0000891986 00000 n
-0000892051 00000 n
-0000892116 00000 n
-0000892181 00000 n
-0000892246 00000 n
-0000892310 00000 n
-0000892375 00000 n
-0000892440 00000 n
-0000892505 00000 n
-0000892570 00000 n
-0000892635 00000 n
-0000892700 00000 n
-0000892765 00000 n
-0000892830 00000 n
-0000892894 00000 n
-0000892959 00000 n
-0000893024 00000 n
-0000893089 00000 n
-0000893154 00000 n
-0000893219 00000 n
-0000893284 00000 n
-0000893349 00000 n
-0000893414 00000 n
-0000898623 00000 n
-0000896425 00000 n
-0000893655 00000 n
-0000896550 00000 n
-0000896614 00000 n
-0000896679 00000 n
-0000896744 00000 n
-0000896809 00000 n
-0000896874 00000 n
-0000896939 00000 n
-0000897004 00000 n
-0000897068 00000 n
-0000897133 00000 n
-0000897198 00000 n
-0000897263 00000 n
-0000897328 00000 n
-0000897393 00000 n
-0000897458 00000 n
-0000897523 00000 n
-0000897588 00000 n
-0000897653 00000 n
-0000897718 00000 n
-0000897845 00000 n
-0000897910 00000 n
-0000897974 00000 n
-0000898039 00000 n
-0000898104 00000 n
-0000898169 00000 n
-0000898234 00000 n
-0000898299 00000 n
-0000898364 00000 n
-0000898429 00000 n
-0000898493 00000 n
-0000898558 00000 n
-0000904441 00000 n
-0000901204 00000 n
-0000898839 00000 n
-0000901329 00000 n
-0000901393 00000 n
-0000901458 00000 n
-0000901522 00000 n
-0000901587 00000 n
-0000901652 00000 n
-0000901717 00000 n
-0000901782 00000 n
-0000901847 00000 n
-0000901912 00000 n
-0000901977 00000 n
-0000902042 00000 n
-0000902106 00000 n
-0000902171 00000 n
-0000902236 00000 n
-0000902301 00000 n
-0000902366 00000 n
-0000902431 00000 n
-0000902496 00000 n
-0000902561 00000 n
-0000902626 00000 n
-0000902691 00000 n
-0000902756 00000 n
-0000902821 00000 n
-0000902886 00000 n
-0000902951 00000 n
-0000903016 00000 n
-0000903081 00000 n
-0000903145 00000 n
-0000903210 00000 n
-0000903275 00000 n
-0000903340 00000 n
-0000903405 00000 n
-0000903470 00000 n
-0000903535 00000 n
-0000903599 00000 n
-0000903664 00000 n
-0000903729 00000 n
-0000903794 00000 n
-0000903859 00000 n
-0000903924 00000 n
-0000903989 00000 n
-0000904054 00000 n
-0000904119 00000 n
-0000904183 00000 n
-0000904248 00000 n
-0000904313 00000 n
-0000904377 00000 n
-0001889726 00000 n
-0000906823 00000 n
-0000909962 00000 n
-0000906650 00000 n
-0000904631 00000 n
-0000906980 00000 n
-0000907044 00000 n
-0000907109 00000 n
-0000907174 00000 n
-0000907239 00000 n
-0000907304 00000 n
-0000907369 00000 n
-0000907434 00000 n
-0000907499 00000 n
-0000907564 00000 n
-0000907628 00000 n
-0000907693 00000 n
-0000907758 00000 n
-0000907823 00000 n
-0000907888 00000 n
-0000907953 00000 n
-0000908018 00000 n
-0000908083 00000 n
-0000908148 00000 n
-0000908213 00000 n
-0000908278 00000 n
-0000908343 00000 n
-0000908408 00000 n
-0000908473 00000 n
-0000908536 00000 n
-0000908601 00000 n
-0000908666 00000 n
-0000908731 00000 n
-0000908796 00000 n
-0000908861 00000 n
-0000908926 00000 n
-0000908991 00000 n
-0000909056 00000 n
-0000909121 00000 n
-0000909184 00000 n
-0000909249 00000 n
-0000909314 00000 n
-0000909379 00000 n
-0000909444 00000 n
-0000909509 00000 n
-0000909574 00000 n
-0000909639 00000 n
-0000909704 00000 n
-0000909769 00000 n
-0000909834 00000 n
-0000909898 00000 n
-0000906792 00000 n
-0000915756 00000 n
-0000912520 00000 n
-0000910178 00000 n
-0000912645 00000 n
-0000912709 00000 n
-0000912774 00000 n
-0000912839 00000 n
-0000912904 00000 n
-0000912969 00000 n
-0000913034 00000 n
-0000913099 00000 n
-0000913164 00000 n
-0000913229 00000 n
-0000913294 00000 n
-0000913359 00000 n
-0000913422 00000 n
-0000913487 00000 n
-0000913552 00000 n
-0000913617 00000 n
-0000913682 00000 n
-0000913747 00000 n
-0000913812 00000 n
-0000913877 00000 n
-0000913941 00000 n
-0000914006 00000 n
-0000914071 00000 n
-0000914136 00000 n
-0000914201 00000 n
-0000914266 00000 n
-0000914331 00000 n
-0000914396 00000 n
-0000914461 00000 n
-0000914525 00000 n
-0000914590 00000 n
-0000914655 00000 n
-0000914720 00000 n
-0000914785 00000 n
-0000914850 00000 n
-0000914915 00000 n
-0000914980 00000 n
-0000915045 00000 n
-0000915109 00000 n
-0000915174 00000 n
-0000915238 00000 n
-0000915303 00000 n
-0000915368 00000 n
-0000915433 00000 n
-0000915498 00000 n
-0000915563 00000 n
-0000915628 00000 n
-0000915692 00000 n
-0000921243 00000 n
-0000918135 00000 n
-0000915933 00000 n
-0000918260 00000 n
-0000918324 00000 n
-0000918389 00000 n
-0000918454 00000 n
-0000918519 00000 n
-0000918584 00000 n
-0000918649 00000 n
-0000918714 00000 n
-0000918779 00000 n
-0000918844 00000 n
-0000918909 00000 n
-0000918974 00000 n
-0000919039 00000 n
-0000919103 00000 n
-0000919168 00000 n
-0000919233 00000 n
-0000919298 00000 n
-0000919363 00000 n
-0000919428 00000 n
-0000919493 00000 n
-0000919558 00000 n
-0000919623 00000 n
-0000919688 00000 n
-0000919753 00000 n
-0000919818 00000 n
-0000919883 00000 n
-0000919948 00000 n
-0000920013 00000 n
-0000920078 00000 n
-0000920142 00000 n
-0000920207 00000 n
-0000920271 00000 n
-0000920336 00000 n
-0000920401 00000 n
-0000920466 00000 n
-0000920531 00000 n
-0000920596 00000 n
-0000920661 00000 n
-0000920726 00000 n
-0000920791 00000 n
-0000920855 00000 n
-0000920920 00000 n
-0000920985 00000 n
-0000921050 00000 n
-0000921115 00000 n
-0000927209 00000 n
-0000923712 00000 n
-0000921433 00000 n
-0000923837 00000 n
-0000923901 00000 n
-0000923966 00000 n
-0000924031 00000 n
-0000924096 00000 n
-0000924161 00000 n
-0000924226 00000 n
-0000924291 00000 n
-0000924355 00000 n
-0000924420 00000 n
-0000924485 00000 n
-0000924550 00000 n
-0000924615 00000 n
-0000924680 00000 n
-0000924745 00000 n
-0000924810 00000 n
-0000924875 00000 n
-0000924939 00000 n
-0000925004 00000 n
-0000925069 00000 n
-0000925134 00000 n
-0000925199 00000 n
-0000925264 00000 n
-0000925329 00000 n
-0000925394 00000 n
-0000925459 00000 n
-0000925523 00000 n
-0000925588 00000 n
-0000925653 00000 n
-0000925718 00000 n
-0000925783 00000 n
-0000925848 00000 n
-0000925913 00000 n
-0000925978 00000 n
-0000926043 00000 n
-0000926107 00000 n
-0000926172 00000 n
-0000926237 00000 n
-0000926302 00000 n
-0000926367 00000 n
-0000926432 00000 n
-0000926497 00000 n
-0000926562 00000 n
-0000926627 00000 n
-0000926692 00000 n
-0000926757 00000 n
-0000926822 00000 n
-0000926887 00000 n
-0000926951 00000 n
-0000927016 00000 n
-0000927081 00000 n
-0000927145 00000 n
-0000932797 00000 n
-0000930207 00000 n
-0000927399 00000 n
-0000930332 00000 n
-0000930396 00000 n
-0000930461 00000 n
-0000930526 00000 n
-0000930591 00000 n
-0000930656 00000 n
-0000930721 00000 n
-0000930786 00000 n
-0000930850 00000 n
-0000930915 00000 n
-0000930980 00000 n
-0000931045 00000 n
-0000931110 00000 n
-0000931175 00000 n
-0000931240 00000 n
-0000931305 00000 n
-0000931370 00000 n
-0000931435 00000 n
-0000931500 00000 n
-0000931564 00000 n
-0000931629 00000 n
-0000931694 00000 n
-0000931759 00000 n
-0000931824 00000 n
-0000931889 00000 n
-0000931954 00000 n
-0000932019 00000 n
-0000932084 00000 n
-0000932148 00000 n
-0000932213 00000 n
-0000932278 00000 n
-0000932343 00000 n
-0000932408 00000 n
-0000932473 00000 n
-0000932538 00000 n
-0000932603 00000 n
-0000932668 00000 n
-0000932732 00000 n
-0000938887 00000 n
-0000936426 00000 n
-0000933013 00000 n
-0000936551 00000 n
-0000936615 00000 n
-0000936680 00000 n
-0000936745 00000 n
-0000936810 00000 n
-0000936875 00000 n
-0000936940 00000 n
-0000937005 00000 n
-0000937070 00000 n
-0000937135 00000 n
-0000937200 00000 n
-0000937265 00000 n
-0000937330 00000 n
-0000937395 00000 n
-0000937459 00000 n
-0000937524 00000 n
-0000937589 00000 n
-0000937654 00000 n
-0000937719 00000 n
-0000937784 00000 n
-0000937849 00000 n
-0000937914 00000 n
-0000937978 00000 n
-0000938043 00000 n
-0000938108 00000 n
-0000938173 00000 n
-0000938238 00000 n
-0000938303 00000 n
-0000938368 00000 n
-0000938433 00000 n
-0000938498 00000 n
-0000938562 00000 n
-0000938627 00000 n
-0000938692 00000 n
-0000938757 00000 n
-0000938822 00000 n
-0000944753 00000 n
-0000942232 00000 n
-0000939103 00000 n
-0000942357 00000 n
-0000942421 00000 n
-0000942485 00000 n
-0000942550 00000 n
-0000942615 00000 n
-0000942680 00000 n
-0000942745 00000 n
-0000942809 00000 n
-0000942874 00000 n
-0000942939 00000 n
-0000943004 00000 n
-0000943069 00000 n
-0000943134 00000 n
-0000943199 00000 n
-0000943264 00000 n
-0000943329 00000 n
-0000943393 00000 n
-0000943458 00000 n
-0000943523 00000 n
-0000943588 00000 n
-0000943653 00000 n
-0000943717 00000 n
-0000943782 00000 n
-0000943847 00000 n
-0000943912 00000 n
-0000943977 00000 n
-0000944041 00000 n
-0000944106 00000 n
-0000944171 00000 n
-0000944236 00000 n
-0000944301 00000 n
-0000944365 00000 n
-0000944430 00000 n
-0000944495 00000 n
-0000944560 00000 n
-0000944625 00000 n
-0000944689 00000 n
-0000950238 00000 n
-0000947130 00000 n
-0000944969 00000 n
-0000947255 00000 n
-0000947319 00000 n
-0000947384 00000 n
-0000947449 00000 n
-0000947514 00000 n
-0000947579 00000 n
-0000947644 00000 n
-0000947709 00000 n
-0000947774 00000 n
-0000947839 00000 n
-0000947904 00000 n
-0000947969 00000 n
-0000948033 00000 n
-0000948098 00000 n
-0000948163 00000 n
-0000948228 00000 n
-0000948293 00000 n
-0000948358 00000 n
-0000948423 00000 n
-0000948487 00000 n
-0000948552 00000 n
-0000948617 00000 n
-0000948682 00000 n
-0000948747 00000 n
-0000948812 00000 n
-0000948877 00000 n
-0000948942 00000 n
-0000949007 00000 n
-0000949071 00000 n
-0000949136 00000 n
-0000949201 00000 n
-0000949266 00000 n
-0000949331 00000 n
-0000949396 00000 n
-0000949460 00000 n
-0000949525 00000 n
-0000949590 00000 n
-0000949655 00000 n
-0000949720 00000 n
-0000949785 00000 n
-0000949850 00000 n
-0000949915 00000 n
-0000949980 00000 n
-0000950045 00000 n
-0000950110 00000 n
-0000950174 00000 n
-0000956056 00000 n
-0000952301 00000 n
-0000950402 00000 n
-0000952426 00000 n
-0000952490 00000 n
-0000952555 00000 n
-0000952620 00000 n
-0000952685 00000 n
-0000952750 00000 n
-0000952815 00000 n
-0000952880 00000 n
-0000952945 00000 n
-0000953010 00000 n
-0000953074 00000 n
-0000953139 00000 n
-0000953204 00000 n
-0000953269 00000 n
-0000953334 00000 n
-0000953399 00000 n
-0000953464 00000 n
-0000953529 00000 n
-0000953594 00000 n
-0000953658 00000 n
-0000953723 00000 n
-0000953788 00000 n
-0000953853 00000 n
-0000953918 00000 n
-0000953983 00000 n
-0000954048 00000 n
-0000954112 00000 n
-0000954177 00000 n
-0000954242 00000 n
-0000954306 00000 n
-0000954371 00000 n
-0000954436 00000 n
-0000954501 00000 n
-0000954566 00000 n
-0000954631 00000 n
-0000954696 00000 n
-0000954761 00000 n
-0000954826 00000 n
-0000954890 00000 n
-0000954955 00000 n
-0000955020 00000 n
-0000955085 00000 n
-0000955150 00000 n
-0000955214 00000 n
-0000955279 00000 n
-0000955344 00000 n
-0000955409 00000 n
-0000955474 00000 n
-0000955539 00000 n
-0000955604 00000 n
-0000955669 00000 n
-0000955734 00000 n
-0000955798 00000 n
-0000955863 00000 n
-0000955928 00000 n
-0000955992 00000 n
-0000961989 00000 n
-0000958878 00000 n
-0000956220 00000 n
-0000959003 00000 n
-0000959067 00000 n
-0000959132 00000 n
-0000959197 00000 n
-0000959262 00000 n
-0000959326 00000 n
-0000959391 00000 n
-0000959456 00000 n
-0000959521 00000 n
-0000959586 00000 n
-0000959651 00000 n
-0000959716 00000 n
-0000959781 00000 n
-0000959846 00000 n
-0000959910 00000 n
-0000959975 00000 n
-0000960040 00000 n
-0000960105 00000 n
-0000960170 00000 n
-0000960235 00000 n
-0000960300 00000 n
-0000960365 00000 n
-0000960430 00000 n
-0000960494 00000 n
-0000960559 00000 n
-0000960624 00000 n
-0000960689 00000 n
-0000960754 00000 n
-0000960819 00000 n
-0000960884 00000 n
-0000960949 00000 n
-0000961014 00000 n
-0000961079 00000 n
-0000961144 00000 n
-0000961209 00000 n
-0000961274 00000 n
-0000961339 00000 n
-0000961404 00000 n
-0000961469 00000 n
-0000961534 00000 n
-0000961599 00000 n
-0000961664 00000 n
-0000961729 00000 n
-0000961794 00000 n
-0000961859 00000 n
-0000961924 00000 n
-0001889891 00000 n
-0000967690 00000 n
-0000963868 00000 n
-0000962192 00000 n
-0000963993 00000 n
-0000964057 00000 n
-0000964122 00000 n
-0000964187 00000 n
-0000964252 00000 n
-0000964317 00000 n
-0000964382 00000 n
-0000964447 00000 n
-0000964512 00000 n
-0000964577 00000 n
-0000964641 00000 n
-0000964706 00000 n
-0000964771 00000 n
-0000964836 00000 n
-0000964901 00000 n
-0000964966 00000 n
-0000965031 00000 n
-0000965096 00000 n
-0000965160 00000 n
-0000965225 00000 n
-0000965290 00000 n
-0000965355 00000 n
-0000965420 00000 n
-0000965485 00000 n
-0000965550 00000 n
-0000965615 00000 n
-0000965680 00000 n
-0000965744 00000 n
-0000965809 00000 n
-0000965874 00000 n
-0000965939 00000 n
-0000966004 00000 n
-0000966069 00000 n
-0000966134 00000 n
-0000966199 00000 n
-0000966264 00000 n
-0000966329 00000 n
-0000966394 00000 n
-0000966459 00000 n
-0000966524 00000 n
-0000966589 00000 n
-0000966654 00000 n
-0000966719 00000 n
-0000966783 00000 n
-0000966848 00000 n
-0000966913 00000 n
-0000966978 00000 n
-0000967043 00000 n
-0000967108 00000 n
-0000967173 00000 n
-0000967238 00000 n
-0000967302 00000 n
-0000967367 00000 n
-0000967432 00000 n
-0000967497 00000 n
-0000967562 00000 n
-0000967626 00000 n
-0000973816 00000 n
-0000969865 00000 n
-0000967867 00000 n
-0000969990 00000 n
-0000970054 00000 n
-0000970119 00000 n
-0000970184 00000 n
-0000970249 00000 n
-0000970313 00000 n
-0000970378 00000 n
-0000970443 00000 n
-0000970508 00000 n
-0000970573 00000 n
-0000970638 00000 n
-0000970703 00000 n
-0000970768 00000 n
-0000970833 00000 n
-0000970897 00000 n
-0000970962 00000 n
-0000971027 00000 n
-0000971092 00000 n
-0000971157 00000 n
-0000971222 00000 n
-0000971287 00000 n
-0000971352 00000 n
-0000971417 00000 n
-0000971481 00000 n
-0000971546 00000 n
-0000971611 00000 n
-0000971676 00000 n
-0000971741 00000 n
-0000971806 00000 n
-0000971871 00000 n
-0000971936 00000 n
-0000972001 00000 n
-0000972065 00000 n
-0000972130 00000 n
-0000972195 00000 n
-0000972260 00000 n
-0000972325 00000 n
-0000972390 00000 n
-0000972455 00000 n
-0000972520 00000 n
-0000972585 00000 n
-0000972649 00000 n
-0000972714 00000 n
-0000972779 00000 n
-0000972844 00000 n
-0000972909 00000 n
-0000972974 00000 n
-0000973039 00000 n
-0000973104 00000 n
-0000973169 00000 n
-0000973234 00000 n
-0000973299 00000 n
-0000973364 00000 n
-0000973428 00000 n
-0000973493 00000 n
-0000973558 00000 n
-0000973623 00000 n
-0000973688 00000 n
-0000973752 00000 n
-0000979861 00000 n
-0000976559 00000 n
-0000974006 00000 n
-0000976684 00000 n
-0000976748 00000 n
-0000976813 00000 n
-0000976878 00000 n
-0000976943 00000 n
-0000977008 00000 n
-0000977073 00000 n
-0000977138 00000 n
-0000977203 00000 n
-0000977268 00000 n
-0000977332 00000 n
-0000977397 00000 n
-0000977462 00000 n
-0000977527 00000 n
-0000977592 00000 n
-0000977657 00000 n
-0000977722 00000 n
-0000977786 00000 n
-0000977851 00000 n
-0000977916 00000 n
-0000977981 00000 n
-0000978046 00000 n
-0000978111 00000 n
-0000978176 00000 n
-0000978241 00000 n
-0000978306 00000 n
-0000978371 00000 n
-0000978435 00000 n
+0000887924 00000 n
+0000887988 00000 n
+0000893234 00000 n
+0000890128 00000 n
+0000888229 00000 n
+0000890253 00000 n
+0000890317 00000 n
+0000890382 00000 n
+0000890447 00000 n
+0000890512 00000 n
+0000890577 00000 n
+0000890642 00000 n
+0000890707 00000 n
+0000890772 00000 n
+0000890837 00000 n
+0000890902 00000 n
+0000890967 00000 n
+0000891032 00000 n
+0000891097 00000 n
+0000891162 00000 n
+0000891227 00000 n
+0000891292 00000 n
+0000891356 00000 n
+0000891420 00000 n
+0000891485 00000 n
+0000891550 00000 n
+0000891615 00000 n
+0000891680 00000 n
+0000891745 00000 n
+0000891810 00000 n
+0000891875 00000 n
+0000891940 00000 n
+0000892004 00000 n
+0000892069 00000 n
+0000892134 00000 n
+0000892199 00000 n
+0000892327 00000 n
+0000892392 00000 n
+0000892456 00000 n
+0000892521 00000 n
+0000892586 00000 n
+0000892651 00000 n
+0000892716 00000 n
+0000892781 00000 n
+0000892846 00000 n
+0000892911 00000 n
+0000892976 00000 n
+0000893041 00000 n
+0000893106 00000 n
+0000893170 00000 n
+0000898738 00000 n
+0000895696 00000 n
+0000893411 00000 n
+0000895821 00000 n
+0000895885 00000 n
+0000895950 00000 n
+0000896015 00000 n
+0000896080 00000 n
+0000896145 00000 n
+0000896210 00000 n
+0000896275 00000 n
+0000896340 00000 n
+0000896405 00000 n
+0000896469 00000 n
+0000896534 00000 n
+0000896599 00000 n
+0000896664 00000 n
+0000896729 00000 n
+0000896794 00000 n
+0000896859 00000 n
+0000896924 00000 n
+0000896989 00000 n
+0000897054 00000 n
+0000897119 00000 n
+0000897184 00000 n
+0000897249 00000 n
+0000897314 00000 n
+0000897379 00000 n
+0000897444 00000 n
+0000897509 00000 n
+0000897573 00000 n
+0000897638 00000 n
+0000897703 00000 n
+0000897768 00000 n
+0000897833 00000 n
+0000897898 00000 n
+0000897963 00000 n
+0000898091 00000 n
+0000898156 00000 n
+0000898221 00000 n
+0000898286 00000 n
+0000898350 00000 n
+0000898415 00000 n
+0000898480 00000 n
+0000898545 00000 n
+0000898610 00000 n
+0000898674 00000 n
+0000904257 00000 n
+0000901863 00000 n
+0000898928 00000 n
+0000901988 00000 n
+0000902052 00000 n
+0000902117 00000 n
+0000902182 00000 n
+0000902247 00000 n
+0000902312 00000 n
+0000902377 00000 n
+0000902442 00000 n
+0000902506 00000 n
+0000902571 00000 n
+0000902636 00000 n
+0000902701 00000 n
+0000902766 00000 n
+0000902831 00000 n
+0000902896 00000 n
+0000902961 00000 n
+0000903026 00000 n
+0000903089 00000 n
+0000903154 00000 n
+0000903219 00000 n
+0000903283 00000 n
+0000903348 00000 n
+0000903413 00000 n
+0000903478 00000 n
+0000903543 00000 n
+0000903608 00000 n
+0000903673 00000 n
+0000903738 00000 n
+0000903803 00000 n
+0000903868 00000 n
+0000903933 00000 n
+0000903998 00000 n
+0000904063 00000 n
+0000904128 00000 n
+0000904192 00000 n
+0001893976 00000 n
+0000907035 00000 n
+0000910046 00000 n
+0000906862 00000 n
+0000904447 00000 n
+0000907193 00000 n
+0000907257 00000 n
+0000907322 00000 n
+0000907386 00000 n
+0000907451 00000 n
+0000907516 00000 n
+0000907581 00000 n
+0000907646 00000 n
+0000907711 00000 n
+0000907776 00000 n
+0000907841 00000 n
+0000907906 00000 n
+0000907970 00000 n
+0000908035 00000 n
+0000908100 00000 n
+0000908165 00000 n
+0000908230 00000 n
+0000908295 00000 n
+0000908360 00000 n
+0000908424 00000 n
+0000908489 00000 n
+0000908554 00000 n
+0000908619 00000 n
+0000908684 00000 n
+0000908749 00000 n
+0000908814 00000 n
+0000908879 00000 n
+0000908944 00000 n
+0000909009 00000 n
+0000909074 00000 n
+0000909139 00000 n
+0000909204 00000 n
+0000909269 00000 n
+0000909334 00000 n
+0000909398 00000 n
+0000909463 00000 n
+0000909528 00000 n
+0000909593 00000 n
+0000909658 00000 n
+0000909723 00000 n
+0000909788 00000 n
+0000909853 00000 n
+0000909918 00000 n
+0000909982 00000 n
+0000907004 00000 n
+0000916071 00000 n
+0000912314 00000 n
+0000910275 00000 n
+0000912439 00000 n
+0000912503 00000 n
+0000912568 00000 n
+0000912633 00000 n
+0000912698 00000 n
+0000912763 00000 n
+0000912828 00000 n
+0000912893 00000 n
+0000912958 00000 n
+0000913023 00000 n
+0000913087 00000 n
+0000913152 00000 n
+0000913217 00000 n
+0000913282 00000 n
+0000913346 00000 n
+0000913411 00000 n
+0000913476 00000 n
+0000913541 00000 n
+0000913606 00000 n
+0000913671 00000 n
+0000913736 00000 n
+0000913801 00000 n
+0000913866 00000 n
+0000913931 00000 n
+0000913996 00000 n
+0000914060 00000 n
+0000914125 00000 n
+0000914190 00000 n
+0000914255 00000 n
+0000914320 00000 n
+0000914385 00000 n
+0000914449 00000 n
+0000914514 00000 n
+0000914579 00000 n
+0000914644 00000 n
+0000914709 00000 n
+0000914774 00000 n
+0000914839 00000 n
+0000914904 00000 n
+0000914969 00000 n
+0000915034 00000 n
+0000915099 00000 n
+0000915164 00000 n
+0000915229 00000 n
+0000915294 00000 n
+0000915359 00000 n
+0000915424 00000 n
+0000915489 00000 n
+0000915554 00000 n
+0000915619 00000 n
+0000915683 00000 n
+0000915748 00000 n
+0000915813 00000 n
+0000915878 00000 n
+0000915943 00000 n
+0000916007 00000 n
+0000921851 00000 n
+0000918871 00000 n
+0000916248 00000 n
+0000918996 00000 n
+0000919060 00000 n
+0000919125 00000 n
+0000919190 00000 n
+0000919255 00000 n
+0000919320 00000 n
+0000919385 00000 n
+0000919450 00000 n
+0000919515 00000 n
+0000919580 00000 n
+0000919645 00000 n
+0000919709 00000 n
+0000919774 00000 n
+0000919839 00000 n
+0000919904 00000 n
+0000919969 00000 n
+0000920034 00000 n
+0000920099 00000 n
+0000920164 00000 n
+0000920229 00000 n
+0000920294 00000 n
+0000920359 00000 n
+0000920424 00000 n
+0000920489 00000 n
+0000920554 00000 n
+0000920619 00000 n
+0000920684 00000 n
+0000920749 00000 n
+0000920814 00000 n
+0000920879 00000 n
+0000920944 00000 n
+0000921009 00000 n
+0000921074 00000 n
+0000921139 00000 n
+0000921204 00000 n
+0000921269 00000 n
+0000921334 00000 n
+0000921399 00000 n
+0000921464 00000 n
+0000921529 00000 n
+0000921594 00000 n
+0000921659 00000 n
+0000921724 00000 n
+0000921788 00000 n
+0000927380 00000 n
+0000923884 00000 n
+0000922041 00000 n
+0000924009 00000 n
+0000924073 00000 n
+0000924138 00000 n
+0000924203 00000 n
+0000924268 00000 n
+0000924333 00000 n
+0000924398 00000 n
+0000924463 00000 n
+0000924528 00000 n
+0000924593 00000 n
+0000924657 00000 n
+0000924785 00000 n
+0000924850 00000 n
+0000924915 00000 n
+0000924980 00000 n
+0000925045 00000 n
+0000925110 00000 n
+0000925174 00000 n
+0000925239 00000 n
+0000925304 00000 n
+0000925369 00000 n
+0000925434 00000 n
+0000925499 00000 n
+0000925564 00000 n
+0000925629 00000 n
+0000925694 00000 n
+0000925758 00000 n
+0000925823 00000 n
+0000925888 00000 n
+0000925953 00000 n
+0000926018 00000 n
+0000926083 00000 n
+0000926148 00000 n
+0000926213 00000 n
+0000926278 00000 n
+0000926343 00000 n
+0000926408 00000 n
+0000926473 00000 n
+0000926538 00000 n
+0000926603 00000 n
+0000926668 00000 n
+0000926733 00000 n
+0000926798 00000 n
+0000926863 00000 n
+0000926928 00000 n
+0000926992 00000 n
+0000927057 00000 n
+0000927122 00000 n
+0000927187 00000 n
+0000927252 00000 n
+0000927316 00000 n
+0000932932 00000 n
+0000930603 00000 n
+0000927557 00000 n
+0000930728 00000 n
+0000930792 00000 n
+0000930857 00000 n
+0000930922 00000 n
+0000930986 00000 n
+0000931051 00000 n
+0000931116 00000 n
+0000931181 00000 n
+0000931246 00000 n
+0000931311 00000 n
+0000931376 00000 n
+0000931441 00000 n
+0000931506 00000 n
+0000931570 00000 n
+0000931635 00000 n
+0000931700 00000 n
+0000931765 00000 n
+0000931830 00000 n
+0000931894 00000 n
+0000931959 00000 n
+0000932024 00000 n
+0000932088 00000 n
+0000932153 00000 n
+0000932218 00000 n
+0000932283 00000 n
+0000932348 00000 n
+0000932413 00000 n
+0000932478 00000 n
+0000932543 00000 n
+0000932608 00000 n
+0000932673 00000 n
+0000932738 00000 n
+0000932802 00000 n
+0000932867 00000 n
+0000938786 00000 n
+0000936455 00000 n
+0000933148 00000 n
+0000936580 00000 n
+0000936644 00000 n
+0000936709 00000 n
+0000936774 00000 n
+0000936839 00000 n
+0000936904 00000 n
+0000936969 00000 n
+0000937034 00000 n
+0000937099 00000 n
+0000937164 00000 n
+0000937229 00000 n
+0000937294 00000 n
+0000937359 00000 n
+0000937424 00000 n
+0000937489 00000 n
+0000937554 00000 n
+0000937618 00000 n
+0000937683 00000 n
+0000937748 00000 n
+0000937813 00000 n
+0000937878 00000 n
+0000937943 00000 n
+0000938008 00000 n
+0000938073 00000 n
+0000938138 00000 n
+0000938203 00000 n
+0000938268 00000 n
+0000938332 00000 n
+0000938397 00000 n
+0000938462 00000 n
+0000938527 00000 n
+0000938592 00000 n
+0000938657 00000 n
+0000938722 00000 n
+0000943663 00000 n
+0000941721 00000 n
+0000939002 00000 n
+0000941846 00000 n
+0000941910 00000 n
+0000941975 00000 n
+0000942040 00000 n
+0000942105 00000 n
+0000942170 00000 n
+0000942235 00000 n
+0000942300 00000 n
+0000942365 00000 n
+0000942430 00000 n
+0000942494 00000 n
+0000942559 00000 n
+0000942624 00000 n
+0000942689 00000 n
+0000942754 00000 n
+0000942819 00000 n
+0000942884 00000 n
+0000942949 00000 n
+0000943014 00000 n
+0000943079 00000 n
+0000943144 00000 n
+0000943209 00000 n
+0000943274 00000 n
+0000943339 00000 n
+0000943404 00000 n
+0000943469 00000 n
+0000943534 00000 n
+0000943598 00000 n
+0000949417 00000 n
+0000946312 00000 n
+0000943853 00000 n
+0000946437 00000 n
+0000946501 00000 n
+0000946566 00000 n
+0000946631 00000 n
+0000946696 00000 n
+0000946761 00000 n
+0000946826 00000 n
+0000946891 00000 n
+0000946956 00000 n
+0000947021 00000 n
+0000947085 00000 n
+0000947150 00000 n
+0000947215 00000 n
+0000947280 00000 n
+0000947343 00000 n
+0000947408 00000 n
+0000947473 00000 n
+0000947538 00000 n
+0000947603 00000 n
+0000947668 00000 n
+0000947733 00000 n
+0000947798 00000 n
+0000947863 00000 n
+0000947927 00000 n
+0000947992 00000 n
+0000948057 00000 n
+0000948121 00000 n
+0000948186 00000 n
+0000948251 00000 n
+0000948316 00000 n
+0000948381 00000 n
+0000948446 00000 n
+0000948511 00000 n
+0000948576 00000 n
+0000948641 00000 n
+0000948705 00000 n
+0000948770 00000 n
+0000948835 00000 n
+0000948900 00000 n
+0000948965 00000 n
+0000949030 00000 n
+0000949095 00000 n
+0000949160 00000 n
+0000949225 00000 n
+0000949290 00000 n
+0000949354 00000 n
+0000955004 00000 n
+0000951765 00000 n
+0000949620 00000 n
+0000951890 00000 n
+0000951954 00000 n
+0000952019 00000 n
+0000952084 00000 n
+0000952149 00000 n
+0000952214 00000 n
+0000952279 00000 n
+0000952344 00000 n
+0000952408 00000 n
+0000952473 00000 n
+0000952538 00000 n
+0000952603 00000 n
+0000952668 00000 n
+0000952733 00000 n
+0000952798 00000 n
+0000952863 00000 n
+0000952928 00000 n
+0000952993 00000 n
+0000953058 00000 n
+0000953123 00000 n
+0000953188 00000 n
+0000953253 00000 n
+0000953317 00000 n
+0000953382 00000 n
+0000953447 00000 n
+0000953512 00000 n
+0000953577 00000 n
+0000953642 00000 n
+0000953707 00000 n
+0000953772 00000 n
+0000953837 00000 n
+0000953902 00000 n
+0000953967 00000 n
+0000954032 00000 n
+0000954097 00000 n
+0000954162 00000 n
+0000954227 00000 n
+0000954292 00000 n
+0000954357 00000 n
+0000954422 00000 n
+0000954487 00000 n
+0000954552 00000 n
+0000954616 00000 n
+0000954681 00000 n
+0000954746 00000 n
+0000954811 00000 n
+0000954876 00000 n
+0000954940 00000 n
+0000960691 00000 n
+0000957192 00000 n
+0000955168 00000 n
+0000957317 00000 n
+0000957381 00000 n
+0000957446 00000 n
+0000957511 00000 n
+0000957576 00000 n
+0000957641 00000 n
+0000957706 00000 n
+0000957771 00000 n
+0000957836 00000 n
+0000957901 00000 n
+0000957966 00000 n
+0000958031 00000 n
+0000958096 00000 n
+0000958161 00000 n
+0000958226 00000 n
+0000958291 00000 n
+0000958356 00000 n
+0000958421 00000 n
+0000958486 00000 n
+0000958551 00000 n
+0000958615 00000 n
+0000958680 00000 n
+0000958745 00000 n
+0000958810 00000 n
+0000958875 00000 n
+0000958940 00000 n
+0000959005 00000 n
+0000959070 00000 n
+0000959135 00000 n
+0000959200 00000 n
+0000959265 00000 n
+0000959330 00000 n
+0000959395 00000 n
+0000959460 00000 n
+0000959524 00000 n
+0000959589 00000 n
+0000959654 00000 n
+0000959719 00000 n
+0000959784 00000 n
+0000959849 00000 n
+0000959914 00000 n
+0000959979 00000 n
+0000960044 00000 n
+0000960109 00000 n
+0000960174 00000 n
+0000960239 00000 n
+0000960304 00000 n
+0000960369 00000 n
+0000960433 00000 n
+0000960498 00000 n
+0000960563 00000 n
+0000960627 00000 n
+0001894141 00000 n
+0000966596 00000 n
+0000963422 00000 n
+0000960868 00000 n
+0000963547 00000 n
+0000963611 00000 n
+0000963676 00000 n
+0000963741 00000 n
+0000963806 00000 n
+0000963871 00000 n
+0000963936 00000 n
+0000964001 00000 n
+0000964066 00000 n
+0000964131 00000 n
+0000964195 00000 n
+0000964260 00000 n
+0000964325 00000 n
+0000964390 00000 n
+0000964455 00000 n
+0000964520 00000 n
+0000964585 00000 n
+0000964650 00000 n
+0000964715 00000 n
+0000964779 00000 n
+0000964844 00000 n
+0000964909 00000 n
+0000964974 00000 n
+0000965039 00000 n
+0000965104 00000 n
+0000965169 00000 n
+0000965234 00000 n
+0000965298 00000 n
+0000965363 00000 n
+0000965428 00000 n
+0000965493 00000 n
+0000965558 00000 n
+0000965623 00000 n
+0000965688 00000 n
+0000965753 00000 n
+0000965818 00000 n
+0000965883 00000 n
+0000965948 00000 n
+0000966013 00000 n
+0000966078 00000 n
+0000966143 00000 n
+0000966208 00000 n
+0000966272 00000 n
+0000966337 00000 n
+0000966402 00000 n
+0000966467 00000 n
+0000966532 00000 n
+0000972145 00000 n
+0000968714 00000 n
+0000966799 00000 n
+0000968839 00000 n
+0000968903 00000 n
+0000968968 00000 n
+0000969033 00000 n
+0000969097 00000 n
+0000969162 00000 n
+0000969227 00000 n
+0000969292 00000 n
+0000969357 00000 n
+0000969422 00000 n
+0000969487 00000 n
+0000969552 00000 n
+0000969617 00000 n
+0000969681 00000 n
+0000969746 00000 n
+0000969811 00000 n
+0000969876 00000 n
+0000969941 00000 n
+0000970006 00000 n
+0000970071 00000 n
+0000970136 00000 n
+0000970201 00000 n
+0000970264 00000 n
+0000970329 00000 n
+0000970394 00000 n
+0000970458 00000 n
+0000970523 00000 n
+0000970588 00000 n
+0000970653 00000 n
+0000970718 00000 n
+0000970783 00000 n
+0000970848 00000 n
+0000970913 00000 n
+0000970978 00000 n
+0000971043 00000 n
+0000971108 00000 n
+0000971173 00000 n
+0000971238 00000 n
+0000971302 00000 n
+0000971367 00000 n
+0000971432 00000 n
+0000971497 00000 n
+0000971562 00000 n
+0000971627 00000 n
+0000971692 00000 n
+0000971757 00000 n
+0000971822 00000 n
+0000971887 00000 n
+0000971952 00000 n
+0000972017 00000 n
+0000972081 00000 n
+0000978336 00000 n
+0000974126 00000 n
+0000972335 00000 n
+0000974251 00000 n
+0000974315 00000 n
+0000974380 00000 n
+0000974445 00000 n
+0000974510 00000 n
+0000974575 00000 n
+0000974640 00000 n
+0000974705 00000 n
+0000974770 00000 n
+0000974835 00000 n
+0000974899 00000 n
+0000974964 00000 n
+0000975029 00000 n
+0000975094 00000 n
+0000975159 00000 n
+0000975224 00000 n
+0000975289 00000 n
+0000975354 00000 n
+0000975419 00000 n
+0000975483 00000 n
+0000975548 00000 n
+0000975613 00000 n
+0000975678 00000 n
+0000975743 00000 n
+0000975808 00000 n
+0000975873 00000 n
+0000975938 00000 n
+0000976003 00000 n
+0000976066 00000 n
+0000976131 00000 n
+0000976196 00000 n
+0000976261 00000 n
+0000976326 00000 n
+0000976391 00000 n
+0000976456 00000 n
+0000976521 00000 n
+0000976586 00000 n
+0000976651 00000 n
+0000976716 00000 n
+0000976781 00000 n
+0000976846 00000 n
+0000976911 00000 n
+0000976975 00000 n
+0000977040 00000 n
+0000977105 00000 n
+0000977170 00000 n
+0000977235 00000 n
+0000977300 00000 n
+0000977365 00000 n
+0000977430 00000 n
+0000977495 00000 n
+0000977559 00000 n
+0000977624 00000 n
+0000977689 00000 n
+0000977754 00000 n
+0000977819 00000 n
+0000977884 00000 n
+0000977949 00000 n
+0000978014 00000 n
+0000978079 00000 n
+0000978143 00000 n
+0000978208 00000 n
+0000978272 00000 n
+0000984244 00000 n
+0000980942 00000 n
0000978500 00000 n
-0000978565 00000 n
-0000978630 00000 n
-0000978695 00000 n
-0000978760 00000 n
-0000978825 00000 n
-0000978890 00000 n
-0000978955 00000 n
-0000979019 00000 n
-0000979084 00000 n
-0000979149 00000 n
-0000979214 00000 n
-0000979279 00000 n
-0000979344 00000 n
-0000979409 00000 n
-0000979474 00000 n
-0000979539 00000 n
-0000979603 00000 n
-0000979668 00000 n
-0000979733 00000 n
-0000979797 00000 n
-0000985694 00000 n
-0000982260 00000 n
-0000980038 00000 n
-0000982385 00000 n
-0000982449 00000 n
-0000982514 00000 n
-0000982579 00000 n
-0000982644 00000 n
-0000982709 00000 n
-0000982774 00000 n
-0000982839 00000 n
-0000982904 00000 n
-0000982969 00000 n
-0000983033 00000 n
-0000983098 00000 n
-0000983163 00000 n
-0000983228 00000 n
-0000983293 00000 n
-0000983358 00000 n
-0000983423 00000 n
-0000983488 00000 n
-0000983553 00000 n
-0000983618 00000 n
-0000983683 00000 n
-0000983748 00000 n
-0000983813 00000 n
-0000983878 00000 n
-0000983943 00000 n
-0000984007 00000 n
-0000984072 00000 n
-0000984137 00000 n
-0000984202 00000 n
-0000984267 00000 n
-0000984332 00000 n
-0000984397 00000 n
-0000984462 00000 n
-0000984527 00000 n
-0000984591 00000 n
-0000984656 00000 n
-0000984721 00000 n
-0000984786 00000 n
-0000984851 00000 n
-0000984916 00000 n
-0000984981 00000 n
-0000985046 00000 n
-0000985111 00000 n
-0000985175 00000 n
-0000985240 00000 n
-0000985305 00000 n
-0000985370 00000 n
-0000985435 00000 n
-0000985500 00000 n
-0000985565 00000 n
-0000985630 00000 n
-0000991580 00000 n
-0000987435 00000 n
-0000985871 00000 n
-0000987560 00000 n
-0000987624 00000 n
-0000987689 00000 n
-0000987754 00000 n
-0000987819 00000 n
-0000987884 00000 n
-0000987949 00000 n
-0000988014 00000 n
-0000988079 00000 n
-0000988143 00000 n
-0000988208 00000 n
-0000988273 00000 n
-0000988338 00000 n
-0000988403 00000 n
-0000988468 00000 n
-0000988533 00000 n
-0000988598 00000 n
-0000988663 00000 n
-0000988727 00000 n
-0000988792 00000 n
-0000988857 00000 n
-0000988922 00000 n
-0000988987 00000 n
-0000989052 00000 n
-0000989117 00000 n
-0000989182 00000 n
-0000989247 00000 n
-0000989312 00000 n
-0000989376 00000 n
-0000989441 00000 n
-0000989506 00000 n
-0000989571 00000 n
-0000989636 00000 n
-0000989701 00000 n
-0000989766 00000 n
-0000989831 00000 n
-0000989896 00000 n
-0000989959 00000 n
-0000990024 00000 n
-0000990089 00000 n
-0000990154 00000 n
-0000990219 00000 n
-0000990284 00000 n
-0000990349 00000 n
-0000990414 00000 n
-0000990479 00000 n
-0000990543 00000 n
-0000990608 00000 n
-0000990673 00000 n
-0000990738 00000 n
-0000990803 00000 n
-0000990868 00000 n
-0000990933 00000 n
-0000990998 00000 n
-0000991063 00000 n
-0000991128 00000 n
-0000991192 00000 n
-0000991257 00000 n
-0000991322 00000 n
-0000991387 00000 n
-0000991452 00000 n
-0000991516 00000 n
-0000997249 00000 n
-0000994726 00000 n
-0000991744 00000 n
-0000994851 00000 n
-0000994915 00000 n
-0000994980 00000 n
-0000995045 00000 n
-0000995110 00000 n
-0000995175 00000 n
-0000995240 00000 n
-0000995305 00000 n
-0000995370 00000 n
-0000995435 00000 n
-0000995499 00000 n
-0000995564 00000 n
-0000995629 00000 n
-0000995694 00000 n
-0000995759 00000 n
-0000995824 00000 n
-0000995889 00000 n
-0000995953 00000 n
-0000996018 00000 n
-0000996083 00000 n
-0000996148 00000 n
-0000996213 00000 n
-0000996278 00000 n
-0000996343 00000 n
-0000996408 00000 n
-0000996473 00000 n
-0000996537 00000 n
-0000996602 00000 n
-0000996667 00000 n
-0000996731 00000 n
-0000996796 00000 n
-0000996861 00000 n
-0000996926 00000 n
-0000996991 00000 n
-0000997056 00000 n
-0000997121 00000 n
-0000997185 00000 n
-0001003151 00000 n
-0000999784 00000 n
-0000997426 00000 n
-0000999909 00000 n
-0000999973 00000 n
-0001000038 00000 n
-0001000103 00000 n
-0001000168 00000 n
-0001000233 00000 n
-0001000298 00000 n
-0001000363 00000 n
-0001000427 00000 n
-0001000492 00000 n
-0001000557 00000 n
-0001000622 00000 n
-0001000687 00000 n
-0001000752 00000 n
-0001000817 00000 n
-0001000882 00000 n
-0001000946 00000 n
-0001001011 00000 n
-0001001076 00000 n
-0001001141 00000 n
-0001001206 00000 n
-0001001271 00000 n
-0001001336 00000 n
-0001001400 00000 n
-0001001465 00000 n
-0001001530 00000 n
-0001001595 00000 n
-0001001660 00000 n
-0001001725 00000 n
-0001001790 00000 n
-0001001855 00000 n
-0001001920 00000 n
-0001001984 00000 n
-0001002049 00000 n
-0001002114 00000 n
-0001002179 00000 n
-0001002244 00000 n
-0001002309 00000 n
-0001002374 00000 n
-0001002439 00000 n
-0001002504 00000 n
-0001002568 00000 n
-0001002633 00000 n
-0001002698 00000 n
-0001002763 00000 n
-0001002828 00000 n
-0001002893 00000 n
-0001002958 00000 n
-0001003023 00000 n
-0001003088 00000 n
-0001009291 00000 n
-0001005210 00000 n
-0001003328 00000 n
-0001005335 00000 n
-0001005399 00000 n
-0001005464 00000 n
-0001005529 00000 n
-0001005594 00000 n
-0001005659 00000 n
-0001005724 00000 n
-0001005788 00000 n
-0001005853 00000 n
-0001005918 00000 n
-0001005983 00000 n
-0001006048 00000 n
-0001006113 00000 n
-0001006178 00000 n
-0001006243 00000 n
-0001006308 00000 n
-0001006372 00000 n
-0001006437 00000 n
-0001006501 00000 n
-0001006566 00000 n
-0001006631 00000 n
-0001006696 00000 n
-0001006761 00000 n
-0001006826 00000 n
-0001006891 00000 n
-0001006956 00000 n
-0001007021 00000 n
-0001007085 00000 n
-0001007150 00000 n
-0001007215 00000 n
-0001007280 00000 n
-0001007345 00000 n
-0001007410 00000 n
-0001007475 00000 n
-0001007540 00000 n
-0001007605 00000 n
-0001007669 00000 n
-0001007734 00000 n
-0001007799 00000 n
-0001007864 00000 n
-0001007929 00000 n
-0001007994 00000 n
-0001008059 00000 n
-0001008124 00000 n
-0001008189 00000 n
-0001008254 00000 n
-0001008319 00000 n
-0001008384 00000 n
-0001008449 00000 n
-0001008514 00000 n
-0001008579 00000 n
-0001008644 00000 n
-0001008709 00000 n
-0001008774 00000 n
-0001008839 00000 n
-0001008903 00000 n
-0001008968 00000 n
-0001009033 00000 n
-0001009098 00000 n
-0001009163 00000 n
-0001009227 00000 n
-0001015460 00000 n
-0001011251 00000 n
-0001009468 00000 n
-0001011376 00000 n
-0001011440 00000 n
-0001011505 00000 n
-0001011570 00000 n
-0001011635 00000 n
-0001011700 00000 n
-0001011765 00000 n
-0001011830 00000 n
-0001011895 00000 n
-0001011960 00000 n
-0001012024 00000 n
-0001012089 00000 n
-0001012154 00000 n
-0001012219 00000 n
-0001012284 00000 n
-0001012349 00000 n
-0001012414 00000 n
-0001012479 00000 n
-0001012544 00000 n
-0001012608 00000 n
-0001012673 00000 n
-0001012738 00000 n
-0001012803 00000 n
-0001012868 00000 n
-0001012933 00000 n
-0001012998 00000 n
-0001013063 00000 n
-0001013128 00000 n
-0001013191 00000 n
-0001013256 00000 n
-0001013321 00000 n
-0001013386 00000 n
-0001013451 00000 n
-0001013516 00000 n
-0001013581 00000 n
-0001013646 00000 n
-0001013711 00000 n
-0001013775 00000 n
-0001013840 00000 n
-0001013905 00000 n
-0001013970 00000 n
-0001014035 00000 n
-0001014099 00000 n
-0001014164 00000 n
-0001014229 00000 n
-0001014294 00000 n
-0001014359 00000 n
-0001014424 00000 n
-0001014489 00000 n
-0001014554 00000 n
-0001014619 00000 n
-0001014683 00000 n
-0001014748 00000 n
-0001014813 00000 n
-0001014878 00000 n
-0001014943 00000 n
-0001015008 00000 n
-0001015073 00000 n
-0001015138 00000 n
-0001015203 00000 n
-0001015267 00000 n
-0001015332 00000 n
-0001015396 00000 n
-0001021053 00000 n
-0001017554 00000 n
-0001015624 00000 n
-0001017679 00000 n
-0001017743 00000 n
-0001017808 00000 n
-0001017873 00000 n
-0001017938 00000 n
-0001018003 00000 n
-0001018068 00000 n
-0001018133 00000 n
-0001018198 00000 n
-0001018263 00000 n
-0001018328 00000 n
-0001018393 00000 n
-0001018456 00000 n
-0001018521 00000 n
-0001018586 00000 n
-0001018651 00000 n
-0001018716 00000 n
-0001018781 00000 n
-0001018846 00000 n
-0001018911 00000 n
-0001018976 00000 n
-0001019041 00000 n
-0001019106 00000 n
-0001019171 00000 n
-0001019236 00000 n
-0001019301 00000 n
-0001019366 00000 n
-0001019431 00000 n
-0001019496 00000 n
-0001019561 00000 n
-0001019626 00000 n
-0001019691 00000 n
-0001019756 00000 n
-0001019821 00000 n
-0001019886 00000 n
-0001019951 00000 n
-0001020016 00000 n
-0001020081 00000 n
-0001020146 00000 n
-0001020211 00000 n
-0001020276 00000 n
-0001020341 00000 n
-0001020406 00000 n
-0001020471 00000 n
-0001020536 00000 n
-0001020601 00000 n
-0001020665 00000 n
-0001020730 00000 n
-0001020795 00000 n
-0001020860 00000 n
-0001020925 00000 n
-0001020989 00000 n
-0001890056 00000 n
-0001026899 00000 n
-0001022883 00000 n
-0001021230 00000 n
-0001023008 00000 n
-0001023072 00000 n
-0001023137 00000 n
-0001023202 00000 n
-0001023267 00000 n
-0001023332 00000 n
-0001023397 00000 n
-0001023462 00000 n
-0001023527 00000 n
-0001023592 00000 n
-0001023656 00000 n
-0001023721 00000 n
-0001023786 00000 n
-0001023851 00000 n
-0001023916 00000 n
-0001023981 00000 n
-0001024046 00000 n
-0001024111 00000 n
-0001024176 00000 n
-0001024241 00000 n
-0001024305 00000 n
-0001024370 00000 n
-0001024435 00000 n
-0001024500 00000 n
-0001024565 00000 n
-0001024630 00000 n
-0001024695 00000 n
-0001024760 00000 n
-0001024825 00000 n
-0001024889 00000 n
-0001024954 00000 n
-0001025019 00000 n
-0001025084 00000 n
-0001025149 00000 n
-0001025214 00000 n
-0001025279 00000 n
-0001025344 00000 n
-0001025409 00000 n
-0001025474 00000 n
-0001025539 00000 n
-0001025604 00000 n
-0001025669 00000 n
-0001025734 00000 n
-0001025799 00000 n
-0001025863 00000 n
-0001025928 00000 n
-0001025993 00000 n
-0001026058 00000 n
-0001026123 00000 n
-0001026187 00000 n
-0001026252 00000 n
-0001026317 00000 n
-0001026382 00000 n
-0001026447 00000 n
-0001026512 00000 n
-0001026577 00000 n
-0001026642 00000 n
-0001026707 00000 n
-0001026771 00000 n
-0001026835 00000 n
-0001032942 00000 n
-0001029250 00000 n
-0001027076 00000 n
-0001029375 00000 n
-0001029439 00000 n
-0001029504 00000 n
-0001029569 00000 n
-0001029634 00000 n
-0001029699 00000 n
-0001029764 00000 n
-0001029829 00000 n
-0001029894 00000 n
-0001029959 00000 n
-0001030024 00000 n
-0001030089 00000 n
-0001030154 00000 n
-0001030219 00000 n
-0001030284 00000 n
-0001030349 00000 n
-0001030414 00000 n
-0001030479 00000 n
-0001030543 00000 n
-0001030608 00000 n
-0001030673 00000 n
-0001030738 00000 n
-0001030803 00000 n
-0001030868 00000 n
-0001030933 00000 n
-0001030998 00000 n
-0001031063 00000 n
-0001031128 00000 n
-0001031192 00000 n
-0001031257 00000 n
-0001031322 00000 n
-0001031387 00000 n
-0001031452 00000 n
-0001031517 00000 n
-0001031582 00000 n
-0001031646 00000 n
-0001031711 00000 n
-0001031776 00000 n
-0001031841 00000 n
-0001031906 00000 n
-0001031971 00000 n
-0001032036 00000 n
-0001032101 00000 n
-0001032166 00000 n
-0001032230 00000 n
-0001032295 00000 n
-0001032360 00000 n
-0001032425 00000 n
-0001032490 00000 n
-0001032555 00000 n
-0001032620 00000 n
-0001032685 00000 n
-0001032750 00000 n
-0001032814 00000 n
-0001032878 00000 n
-0001039043 00000 n
-0001035157 00000 n
-0001033119 00000 n
-0001035282 00000 n
-0001035346 00000 n
-0001035411 00000 n
-0001035476 00000 n
-0001035541 00000 n
-0001035606 00000 n
-0001035671 00000 n
-0001035736 00000 n
-0001035801 00000 n
-0001035866 00000 n
-0001035930 00000 n
-0001035995 00000 n
-0001036060 00000 n
-0001036125 00000 n
-0001036190 00000 n
-0001036255 00000 n
-0001036320 00000 n
-0001036385 00000 n
-0001036450 00000 n
-0001036515 00000 n
-0001036580 00000 n
-0001036644 00000 n
-0001036709 00000 n
-0001036774 00000 n
-0001036839 00000 n
-0001036904 00000 n
-0001036969 00000 n
-0001037034 00000 n
-0001037099 00000 n
-0001037163 00000 n
-0001037228 00000 n
-0001037293 00000 n
-0001037358 00000 n
-0001037423 00000 n
-0001037488 00000 n
-0001037553 00000 n
-0001037618 00000 n
-0001037683 00000 n
-0001037747 00000 n
-0001037812 00000 n
-0001037877 00000 n
-0001037942 00000 n
-0001038007 00000 n
-0001038072 00000 n
-0001038137 00000 n
-0001038202 00000 n
-0001038267 00000 n
-0001038331 00000 n
-0001038396 00000 n
-0001038461 00000 n
-0001038526 00000 n
-0001038591 00000 n
-0001038656 00000 n
-0001038721 00000 n
-0001038786 00000 n
-0001038851 00000 n
-0001038915 00000 n
-0001038979 00000 n
-0001045178 00000 n
-0001041226 00000 n
-0001039220 00000 n
-0001041351 00000 n
-0001041415 00000 n
-0001041480 00000 n
-0001041545 00000 n
-0001041610 00000 n
-0001041675 00000 n
-0001041740 00000 n
-0001041805 00000 n
-0001041870 00000 n
-0001041935 00000 n
-0001041999 00000 n
-0001042064 00000 n
-0001042129 00000 n
-0001042194 00000 n
-0001042259 00000 n
-0001042324 00000 n
-0001042389 00000 n
-0001042454 00000 n
-0001042519 00000 n
-0001042584 00000 n
-0001042649 00000 n
-0001042714 00000 n
-0001042779 00000 n
-0001042844 00000 n
-0001042909 00000 n
-0001042974 00000 n
-0001043038 00000 n
-0001043103 00000 n
-0001043168 00000 n
-0001043233 00000 n
-0001043298 00000 n
-0001043363 00000 n
-0001043428 00000 n
-0001043493 00000 n
-0001043558 00000 n
-0001043622 00000 n
-0001043687 00000 n
-0001043752 00000 n
-0001043817 00000 n
-0001043882 00000 n
-0001043947 00000 n
-0001044012 00000 n
-0001044077 00000 n
-0001044142 00000 n
-0001044207 00000 n
-0001044272 00000 n
-0001044336 00000 n
-0001044401 00000 n
-0001044466 00000 n
-0001044531 00000 n
-0001044596 00000 n
-0001044661 00000 n
-0001044726 00000 n
-0001044791 00000 n
-0001044856 00000 n
-0001044921 00000 n
-0001044985 00000 n
-0001045050 00000 n
-0001045114 00000 n
-0001050984 00000 n
-0001047289 00000 n
-0001045355 00000 n
-0001047414 00000 n
-0001047478 00000 n
-0001047543 00000 n
-0001047608 00000 n
-0001047673 00000 n
-0001047737 00000 n
-0001047802 00000 n
-0001047867 00000 n
-0001047932 00000 n
-0001047997 00000 n
-0001048062 00000 n
-0001048127 00000 n
-0001048192 00000 n
-0001048257 00000 n
-0001048321 00000 n
-0001048386 00000 n
-0001048451 00000 n
-0001048516 00000 n
-0001048581 00000 n
-0001048646 00000 n
-0001048711 00000 n
-0001048775 00000 n
-0001048840 00000 n
-0001048905 00000 n
-0001048970 00000 n
-0001049035 00000 n
-0001049100 00000 n
-0001049165 00000 n
-0001049230 00000 n
-0001049295 00000 n
-0001049360 00000 n
-0001049425 00000 n
-0001049490 00000 n
-0001049555 00000 n
-0001049620 00000 n
-0001049685 00000 n
-0001049750 00000 n
-0001049815 00000 n
-0001049880 00000 n
-0001049945 00000 n
-0001050010 00000 n
-0001050075 00000 n
-0001050140 00000 n
-0001050205 00000 n
-0001050270 00000 n
-0001050335 00000 n
-0001050400 00000 n
-0001050465 00000 n
-0001050530 00000 n
-0001050595 00000 n
-0001050660 00000 n
-0001050725 00000 n
-0001050789 00000 n
-0001050854 00000 n
-0001050919 00000 n
-0001056697 00000 n
-0001053264 00000 n
-0001051148 00000 n
-0001053389 00000 n
-0001053453 00000 n
-0001053518 00000 n
-0001053583 00000 n
-0001053648 00000 n
-0001053713 00000 n
-0001053778 00000 n
-0001053843 00000 n
-0001053908 00000 n
-0001053973 00000 n
-0001054038 00000 n
-0001054103 00000 n
-0001054168 00000 n
-0001054233 00000 n
-0001054298 00000 n
-0001054363 00000 n
-0001054428 00000 n
-0001054492 00000 n
-0001054557 00000 n
-0001054622 00000 n
-0001054687 00000 n
-0001054752 00000 n
-0001054817 00000 n
-0001054882 00000 n
-0001054947 00000 n
-0001055012 00000 n
-0001055077 00000 n
-0001055142 00000 n
-0001055207 00000 n
-0001055272 00000 n
-0001055337 00000 n
-0001055402 00000 n
-0001055467 00000 n
-0001055532 00000 n
-0001055597 00000 n
-0001055662 00000 n
-0001055727 00000 n
-0001055855 00000 n
-0001055920 00000 n
-0001055985 00000 n
-0001056050 00000 n
-0001056115 00000 n
-0001056180 00000 n
-0001056245 00000 n
-0001056310 00000 n
-0001056374 00000 n
-0001056439 00000 n
-0001056504 00000 n
-0001056569 00000 n
-0001056633 00000 n
-0001062584 00000 n
-0001059022 00000 n
-0001056887 00000 n
-0001059147 00000 n
-0001059211 00000 n
-0001059276 00000 n
-0001059341 00000 n
-0001059406 00000 n
-0001059471 00000 n
-0001059599 00000 n
-0001059663 00000 n
-0001059728 00000 n
-0001059793 00000 n
-0001059858 00000 n
-0001059923 00000 n
-0001059988 00000 n
-0001060053 00000 n
-0001060118 00000 n
-0001060183 00000 n
-0001060247 00000 n
-0001060312 00000 n
-0001060377 00000 n
-0001060442 00000 n
-0001060507 00000 n
-0001060572 00000 n
-0001060637 00000 n
-0001060702 00000 n
-0001060767 00000 n
-0001060832 00000 n
-0001060897 00000 n
-0001060962 00000 n
-0001061027 00000 n
-0001061092 00000 n
-0001061157 00000 n
-0001061222 00000 n
-0001061287 00000 n
-0001061352 00000 n
-0001061417 00000 n
-0001061482 00000 n
-0001061547 00000 n
-0001061612 00000 n
-0001061677 00000 n
-0001061742 00000 n
-0001061807 00000 n
-0001061872 00000 n
-0001061936 00000 n
-0001062001 00000 n
-0001062066 00000 n
-0001062131 00000 n
-0001062196 00000 n
-0001062261 00000 n
-0001062326 00000 n
-0001062391 00000 n
-0001062456 00000 n
-0001062520 00000 n
-0001067746 00000 n
-0001064903 00000 n
-0001062761 00000 n
-0001065028 00000 n
-0001065092 00000 n
-0001065157 00000 n
-0001065222 00000 n
-0001065287 00000 n
-0001065352 00000 n
-0001065417 00000 n
-0001065482 00000 n
-0001065547 00000 n
-0001065612 00000 n
-0001065677 00000 n
-0001065741 00000 n
-0001065806 00000 n
-0001065871 00000 n
-0001065936 00000 n
-0001066001 00000 n
-0001066066 00000 n
-0001066131 00000 n
-0001066196 00000 n
-0001066261 00000 n
-0001066326 00000 n
-0001066391 00000 n
-0001066456 00000 n
-0001066521 00000 n
-0001066586 00000 n
-0001066651 00000 n
-0001066779 00000 n
-0001066843 00000 n
-0001066908 00000 n
-0001066973 00000 n
-0001067038 00000 n
-0001067103 00000 n
-0001067168 00000 n
-0001067232 00000 n
-0001067360 00000 n
-0001067423 00000 n
-0001067488 00000 n
-0001067553 00000 n
-0001067618 00000 n
-0001067682 00000 n
-0001073450 00000 n
-0001070410 00000 n
-0001067936 00000 n
-0001070535 00000 n
-0001070599 00000 n
-0001070664 00000 n
-0001070729 00000 n
-0001070794 00000 n
-0001070859 00000 n
-0001070923 00000 n
-0001070988 00000 n
-0001071053 00000 n
-0001071118 00000 n
-0001071183 00000 n
-0001071248 00000 n
-0001071313 00000 n
-0001071377 00000 n
-0001071442 00000 n
-0001071507 00000 n
-0001071571 00000 n
-0001071636 00000 n
-0001071701 00000 n
-0001071765 00000 n
-0001071830 00000 n
-0001071895 00000 n
-0001071960 00000 n
-0001072025 00000 n
-0001072090 00000 n
-0001072155 00000 n
-0001072220 00000 n
-0001072285 00000 n
-0001072349 00000 n
-0001072414 00000 n
-0001072479 00000 n
-0001072544 00000 n
-0001072609 00000 n
-0001072674 00000 n
-0001072739 00000 n
-0001072803 00000 n
-0001072868 00000 n
-0001072933 00000 n
-0001072998 00000 n
-0001073063 00000 n
-0001073128 00000 n
-0001073193 00000 n
-0001073258 00000 n
-0001073323 00000 n
-0001073386 00000 n
-0001076069 00000 n
-0001078428 00000 n
-0001075896 00000 n
-0001073627 00000 n
-0001076226 00000 n
-0001076290 00000 n
-0001076355 00000 n
-0001076420 00000 n
-0001076485 00000 n
-0001076550 00000 n
-0001076615 00000 n
-0001076680 00000 n
-0001076745 00000 n
-0001076810 00000 n
-0001076874 00000 n
-0001076939 00000 n
-0001077004 00000 n
-0001077069 00000 n
-0001077134 00000 n
-0001077199 00000 n
-0001077327 00000 n
-0001077392 00000 n
-0001077456 00000 n
-0001077521 00000 n
-0001077586 00000 n
-0001077651 00000 n
-0001077716 00000 n
-0001077781 00000 n
-0001077846 00000 n
-0001077911 00000 n
-0001077976 00000 n
-0001078041 00000 n
-0001078106 00000 n
-0001078171 00000 n
-0001078235 00000 n
-0001078300 00000 n
-0001890221 00000 n
-0001076038 00000 n
-0001084174 00000 n
-0001081391 00000 n
-0001078631 00000 n
-0001081516 00000 n
-0001081580 00000 n
-0001081645 00000 n
-0001081710 00000 n
-0001081775 00000 n
-0001081840 00000 n
-0001081905 00000 n
-0001081970 00000 n
-0001082034 00000 n
-0001082099 00000 n
-0001082164 00000 n
-0001082229 00000 n
-0001082294 00000 n
-0001082358 00000 n
-0001082423 00000 n
-0001082488 00000 n
-0001082553 00000 n
-0001082618 00000 n
-0001082683 00000 n
-0001082748 00000 n
-0001082813 00000 n
-0001082878 00000 n
-0001082942 00000 n
-0001083007 00000 n
-0001083072 00000 n
-0001083137 00000 n
-0001083202 00000 n
-0001083267 00000 n
-0001083332 00000 n
-0001083397 00000 n
-0001083462 00000 n
-0001083527 00000 n
-0001083592 00000 n
-0001083656 00000 n
-0001083721 00000 n
-0001083786 00000 n
-0001083851 00000 n
-0001083916 00000 n
-0001083981 00000 n
-0001084046 00000 n
-0001084110 00000 n
-0001089794 00000 n
-0001086041 00000 n
-0001084390 00000 n
-0001086166 00000 n
-0001086230 00000 n
-0001086295 00000 n
-0001086360 00000 n
-0001086425 00000 n
-0001086490 00000 n
-0001086555 00000 n
-0001086620 00000 n
-0001086685 00000 n
-0001086750 00000 n
-0001086814 00000 n
-0001086879 00000 n
-0001086944 00000 n
-0001087009 00000 n
-0001087074 00000 n
-0001087139 00000 n
-0001087265 00000 n
-0001087330 00000 n
-0001087395 00000 n
-0001087460 00000 n
-0001087525 00000 n
-0001087589 00000 n
-0001087654 00000 n
-0001087719 00000 n
-0001087784 00000 n
-0001087849 00000 n
-0001087914 00000 n
-0001087979 00000 n
-0001088044 00000 n
-0001088109 00000 n
-0001088173 00000 n
-0001088238 00000 n
-0001088303 00000 n
-0001088368 00000 n
-0001088433 00000 n
-0001088498 00000 n
-0001088563 00000 n
-0001088628 00000 n
-0001088693 00000 n
-0001088757 00000 n
-0001088822 00000 n
-0001088887 00000 n
-0001088952 00000 n
-0001089017 00000 n
-0001089082 00000 n
-0001089147 00000 n
-0001089212 00000 n
-0001089276 00000 n
-0001089341 00000 n
-0001089406 00000 n
-0001089471 00000 n
-0001089536 00000 n
-0001089601 00000 n
-0001089666 00000 n
-0001089730 00000 n
-0001095697 00000 n
-0001091937 00000 n
-0001089971 00000 n
-0001092062 00000 n
-0001092126 00000 n
-0001092191 00000 n
-0001092256 00000 n
-0001092321 00000 n
-0001092386 00000 n
-0001092451 00000 n
-0001092516 00000 n
-0001092581 00000 n
-0001092646 00000 n
-0001092710 00000 n
-0001092775 00000 n
-0001092840 00000 n
-0001092905 00000 n
-0001092970 00000 n
-0001093035 00000 n
-0001093100 00000 n
-0001093165 00000 n
-0001093230 00000 n
-0001093294 00000 n
-0001093359 00000 n
-0001093424 00000 n
-0001093489 00000 n
-0001093554 00000 n
-0001093619 00000 n
-0001093684 00000 n
-0001093749 00000 n
-0001093814 00000 n
-0001093879 00000 n
-0001093944 00000 n
-0001094009 00000 n
-0001094073 00000 n
-0001094138 00000 n
-0001094203 00000 n
-0001094268 00000 n
-0001094333 00000 n
-0001094398 00000 n
-0001094463 00000 n
-0001094528 00000 n
-0001094593 00000 n
-0001094658 00000 n
-0001094722 00000 n
-0001094787 00000 n
-0001094852 00000 n
-0001094917 00000 n
-0001094982 00000 n
-0001095047 00000 n
-0001095112 00000 n
-0001095177 00000 n
-0001095242 00000 n
-0001095307 00000 n
-0001095372 00000 n
-0001095437 00000 n
-0001095502 00000 n
-0001095567 00000 n
-0001095632 00000 n
-0001101161 00000 n
-0001098118 00000 n
-0001095874 00000 n
-0001098243 00000 n
-0001098307 00000 n
-0001098372 00000 n
-0001098437 00000 n
-0001098502 00000 n
-0001098567 00000 n
-0001098632 00000 n
-0001098697 00000 n
-0001098762 00000 n
-0001098827 00000 n
-0001098891 00000 n
-0001098956 00000 n
-0001099021 00000 n
-0001099086 00000 n
-0001099151 00000 n
-0001099216 00000 n
-0001099281 00000 n
-0001099346 00000 n
-0001099411 00000 n
-0001099476 00000 n
-0001099541 00000 n
-0001099606 00000 n
-0001099670 00000 n
-0001099735 00000 n
-0001099800 00000 n
-0001099865 00000 n
-0001099930 00000 n
-0001099995 00000 n
-0001100060 00000 n
-0001100125 00000 n
-0001100190 00000 n
-0001100254 00000 n
-0001100319 00000 n
-0001100384 00000 n
-0001100449 00000 n
-0001100514 00000 n
-0001100579 00000 n
-0001100644 00000 n
-0001100709 00000 n
-0001100773 00000 n
-0001100838 00000 n
-0001100903 00000 n
-0001100968 00000 n
-0001101033 00000 n
-0001101097 00000 n
-0001107307 00000 n
-0001103291 00000 n
-0001101351 00000 n
-0001103416 00000 n
-0001103480 00000 n
-0001103545 00000 n
-0001103610 00000 n
-0001103675 00000 n
-0001103740 00000 n
-0001103805 00000 n
-0001103870 00000 n
-0001103935 00000 n
-0001104000 00000 n
-0001104065 00000 n
-0001104130 00000 n
-0001104194 00000 n
-0001104259 00000 n
-0001104324 00000 n
-0001104389 00000 n
-0001104454 00000 n
-0001104519 00000 n
-0001104584 00000 n
-0001104649 00000 n
-0001104714 00000 n
-0001104778 00000 n
-0001104843 00000 n
-0001104908 00000 n
-0001104973 00000 n
-0001105038 00000 n
-0001105103 00000 n
-0001105168 00000 n
-0001105233 00000 n
-0001105298 00000 n
-0001105362 00000 n
-0001105427 00000 n
-0001105492 00000 n
-0001105557 00000 n
-0001105622 00000 n
-0001105687 00000 n
-0001105752 00000 n
-0001105817 00000 n
-0001105881 00000 n
-0001105946 00000 n
-0001106011 00000 n
-0001106076 00000 n
-0001106141 00000 n
-0001106206 00000 n
-0001106271 00000 n
-0001106336 00000 n
-0001106401 00000 n
-0001106465 00000 n
-0001106530 00000 n
-0001106595 00000 n
-0001106660 00000 n
-0001106725 00000 n
-0001106790 00000 n
-0001106855 00000 n
-0001106920 00000 n
-0001106985 00000 n
-0001107049 00000 n
-0001107114 00000 n
-0001107179 00000 n
-0001107243 00000 n
-0001113058 00000 n
-0001109691 00000 n
+0000981067 00000 n
+0000981131 00000 n
+0000981196 00000 n
+0000981261 00000 n
+0000981326 00000 n
+0000981391 00000 n
+0000981456 00000 n
+0000981521 00000 n
+0000981585 00000 n
+0000981650 00000 n
+0000981715 00000 n
+0000981780 00000 n
+0000981845 00000 n
+0000981910 00000 n
+0000981975 00000 n
+0000982040 00000 n
+0000982105 00000 n
+0000982169 00000 n
+0000982234 00000 n
+0000982299 00000 n
+0000982364 00000 n
+0000982429 00000 n
+0000982494 00000 n
+0000982559 00000 n
+0000982624 00000 n
+0000982689 00000 n
+0000982754 00000 n
+0000982818 00000 n
+0000982883 00000 n
+0000982948 00000 n
+0000983013 00000 n
+0000983078 00000 n
+0000983143 00000 n
+0000983208 00000 n
+0000983273 00000 n
+0000983338 00000 n
+0000983402 00000 n
+0000983467 00000 n
+0000983532 00000 n
+0000983597 00000 n
+0000983662 00000 n
+0000983727 00000 n
+0000983792 00000 n
+0000983857 00000 n
+0000983922 00000 n
+0000983986 00000 n
+0000984051 00000 n
+0000984116 00000 n
+0000984180 00000 n
+0000989840 00000 n
+0000986601 00000 n
+0000984421 00000 n
+0000986726 00000 n
+0000986790 00000 n
+0000986855 00000 n
+0000986920 00000 n
+0000986985 00000 n
+0000987049 00000 n
+0000987114 00000 n
+0000987178 00000 n
+0000987243 00000 n
+0000987308 00000 n
+0000987373 00000 n
+0000987438 00000 n
+0000987503 00000 n
+0000987568 00000 n
+0000987633 00000 n
+0000987698 00000 n
+0000987763 00000 n
+0000987828 00000 n
+0000987893 00000 n
+0000987958 00000 n
+0000988023 00000 n
+0000988088 00000 n
+0000988153 00000 n
+0000988218 00000 n
+0000988283 00000 n
+0000988347 00000 n
+0000988412 00000 n
+0000988477 00000 n
+0000988542 00000 n
+0000988607 00000 n
+0000988672 00000 n
+0000988737 00000 n
+0000988802 00000 n
+0000988867 00000 n
+0000988931 00000 n
+0000988996 00000 n
+0000989061 00000 n
+0000989126 00000 n
+0000989191 00000 n
+0000989256 00000 n
+0000989321 00000 n
+0000989386 00000 n
+0000989451 00000 n
+0000989516 00000 n
+0000989581 00000 n
+0000989646 00000 n
+0000989711 00000 n
+0000989776 00000 n
+0000995631 00000 n
+0000991549 00000 n
+0000990017 00000 n
+0000991674 00000 n
+0000991738 00000 n
+0000991803 00000 n
+0000991868 00000 n
+0000991933 00000 n
+0000991998 00000 n
+0000992063 00000 n
+0000992128 00000 n
+0000992193 00000 n
+0000992257 00000 n
+0000992322 00000 n
+0000992387 00000 n
+0000992452 00000 n
+0000992517 00000 n
+0000992582 00000 n
+0000992647 00000 n
+0000992712 00000 n
+0000992777 00000 n
+0000992841 00000 n
+0000992906 00000 n
+0000992971 00000 n
+0000993036 00000 n
+0000993100 00000 n
+0000993165 00000 n
+0000993230 00000 n
+0000993295 00000 n
+0000993360 00000 n
+0000993425 00000 n
+0000993490 00000 n
+0000993555 00000 n
+0000993620 00000 n
+0000993685 00000 n
+0000993750 00000 n
+0000993815 00000 n
+0000993880 00000 n
+0000993945 00000 n
+0000994010 00000 n
+0000994075 00000 n
+0000994140 00000 n
+0000994205 00000 n
+0000994270 00000 n
+0000994334 00000 n
+0000994399 00000 n
+0000994464 00000 n
+0000994529 00000 n
+0000994594 00000 n
+0000994659 00000 n
+0000994724 00000 n
+0000994789 00000 n
+0000994854 00000 n
+0000994919 00000 n
+0000994984 00000 n
+0000995049 00000 n
+0000995114 00000 n
+0000995178 00000 n
+0000995243 00000 n
+0000995308 00000 n
+0000995373 00000 n
+0000995438 00000 n
+0000995503 00000 n
+0000995567 00000 n
+0001001145 00000 n
+0000998684 00000 n
+0000995795 00000 n
+0000998809 00000 n
+0000998873 00000 n
+0000998938 00000 n
+0000999003 00000 n
+0000999068 00000 n
+0000999133 00000 n
+0000999198 00000 n
+0000999263 00000 n
+0000999328 00000 n
+0000999393 00000 n
+0000999457 00000 n
+0000999522 00000 n
+0000999587 00000 n
+0000999652 00000 n
+0000999717 00000 n
+0000999782 00000 n
+0000999847 00000 n
+0000999911 00000 n
+0000999976 00000 n
+0001000041 00000 n
+0001000106 00000 n
+0001000171 00000 n
+0001000236 00000 n
+0001000301 00000 n
+0001000366 00000 n
+0001000431 00000 n
+0001000496 00000 n
+0001000561 00000 n
+0001000626 00000 n
+0001000690 00000 n
+0001000755 00000 n
+0001000820 00000 n
+0001000885 00000 n
+0001000950 00000 n
+0001001015 00000 n
+0001001080 00000 n
+0001007078 00000 n
+0001003840 00000 n
+0001001322 00000 n
+0001003965 00000 n
+0001004029 00000 n
+0001004094 00000 n
+0001004159 00000 n
+0001004224 00000 n
+0001004289 00000 n
+0001004353 00000 n
+0001004418 00000 n
+0001004483 00000 n
+0001004548 00000 n
+0001004613 00000 n
+0001004678 00000 n
+0001004743 00000 n
+0001004807 00000 n
+0001004872 00000 n
+0001004937 00000 n
+0001005002 00000 n
+0001005067 00000 n
+0001005132 00000 n
+0001005197 00000 n
+0001005262 00000 n
+0001005327 00000 n
+0001005392 00000 n
+0001005457 00000 n
+0001005522 00000 n
+0001005587 00000 n
+0001005652 00000 n
+0001005717 00000 n
+0001005782 00000 n
+0001005847 00000 n
+0001005911 00000 n
+0001005976 00000 n
+0001006041 00000 n
+0001006106 00000 n
+0001006171 00000 n
+0001006236 00000 n
+0001006301 00000 n
+0001006366 00000 n
+0001006431 00000 n
+0001006495 00000 n
+0001006560 00000 n
+0001006625 00000 n
+0001006690 00000 n
+0001006755 00000 n
+0001006820 00000 n
+0001006885 00000 n
+0001006950 00000 n
+0001007014 00000 n
+0001013174 00000 n
+0001008964 00000 n
+0001007268 00000 n
+0001009089 00000 n
+0001009153 00000 n
+0001009218 00000 n
+0001009283 00000 n
+0001009348 00000 n
+0001009413 00000 n
+0001009478 00000 n
+0001009543 00000 n
+0001009608 00000 n
+0001009673 00000 n
+0001009737 00000 n
+0001009802 00000 n
+0001009867 00000 n
+0001009932 00000 n
+0001009995 00000 n
+0001010060 00000 n
+0001010125 00000 n
+0001010190 00000 n
+0001010255 00000 n
+0001010320 00000 n
+0001010385 00000 n
+0001010450 00000 n
+0001010515 00000 n
+0001010580 00000 n
+0001010645 00000 n
+0001010710 00000 n
+0001010775 00000 n
+0001010840 00000 n
+0001010905 00000 n
+0001010970 00000 n
+0001011035 00000 n
+0001011100 00000 n
+0001011165 00000 n
+0001011229 00000 n
+0001011294 00000 n
+0001011359 00000 n
+0001011424 00000 n
+0001011489 00000 n
+0001011554 00000 n
+0001011619 00000 n
+0001011684 00000 n
+0001011749 00000 n
+0001011813 00000 n
+0001011878 00000 n
+0001011943 00000 n
+0001012008 00000 n
+0001012073 00000 n
+0001012138 00000 n
+0001012203 00000 n
+0001012268 00000 n
+0001012333 00000 n
+0001012397 00000 n
+0001012462 00000 n
+0001012527 00000 n
+0001012592 00000 n
+0001012657 00000 n
+0001012722 00000 n
+0001012787 00000 n
+0001012852 00000 n
+0001012917 00000 n
+0001012981 00000 n
+0001013046 00000 n
+0001013110 00000 n
+0001019209 00000 n
+0001015130 00000 n
+0001013325 00000 n
+0001015255 00000 n
+0001015319 00000 n
+0001015384 00000 n
+0001015449 00000 n
+0001015514 00000 n
+0001015579 00000 n
+0001015644 00000 n
+0001015709 00000 n
+0001015774 00000 n
+0001015839 00000 n
+0001015903 00000 n
+0001015968 00000 n
+0001016033 00000 n
+0001016098 00000 n
+0001016163 00000 n
+0001016228 00000 n
+0001016293 00000 n
+0001016358 00000 n
+0001016423 00000 n
+0001016487 00000 n
+0001016552 00000 n
+0001016617 00000 n
+0001016682 00000 n
+0001016747 00000 n
+0001016812 00000 n
+0001016877 00000 n
+0001016942 00000 n
+0001017007 00000 n
+0001017070 00000 n
+0001017135 00000 n
+0001017200 00000 n
+0001017265 00000 n
+0001017330 00000 n
+0001017394 00000 n
+0001017459 00000 n
+0001017524 00000 n
+0001017589 00000 n
+0001017654 00000 n
+0001017719 00000 n
+0001017784 00000 n
+0001017849 00000 n
+0001017914 00000 n
+0001017979 00000 n
+0001018044 00000 n
+0001018107 00000 n
+0001018172 00000 n
+0001018237 00000 n
+0001018302 00000 n
+0001018367 00000 n
+0001018432 00000 n
+0001018497 00000 n
+0001018562 00000 n
+0001018627 00000 n
+0001018691 00000 n
+0001018756 00000 n
+0001018821 00000 n
+0001018886 00000 n
+0001018951 00000 n
+0001019016 00000 n
+0001019081 00000 n
+0001019145 00000 n
+0001894306 00000 n
+0001024783 00000 n
+0001021287 00000 n
+0001019373 00000 n
+0001021412 00000 n
+0001021476 00000 n
+0001021541 00000 n
+0001021606 00000 n
+0001021671 00000 n
+0001021736 00000 n
+0001021801 00000 n
+0001021866 00000 n
+0001021931 00000 n
+0001021996 00000 n
+0001022061 00000 n
+0001022126 00000 n
+0001022189 00000 n
+0001022254 00000 n
+0001022319 00000 n
+0001022383 00000 n
+0001022448 00000 n
+0001022513 00000 n
+0001022577 00000 n
+0001022642 00000 n
+0001022707 00000 n
+0001022772 00000 n
+0001022837 00000 n
+0001022902 00000 n
+0001022967 00000 n
+0001023032 00000 n
+0001023097 00000 n
+0001023161 00000 n
+0001023226 00000 n
+0001023291 00000 n
+0001023356 00000 n
+0001023421 00000 n
+0001023486 00000 n
+0001023551 00000 n
+0001023616 00000 n
+0001023681 00000 n
+0001023746 00000 n
+0001023811 00000 n
+0001023876 00000 n
+0001023941 00000 n
+0001024006 00000 n
+0001024071 00000 n
+0001024136 00000 n
+0001024201 00000 n
+0001024266 00000 n
+0001024331 00000 n
+0001024395 00000 n
+0001024460 00000 n
+0001024525 00000 n
+0001024590 00000 n
+0001024655 00000 n
+0001024719 00000 n
+0001030648 00000 n
+0001026696 00000 n
+0001024960 00000 n
+0001026821 00000 n
+0001026885 00000 n
+0001026950 00000 n
+0001027015 00000 n
+0001027080 00000 n
+0001027145 00000 n
+0001027210 00000 n
+0001027275 00000 n
+0001027340 00000 n
+0001027405 00000 n
+0001027469 00000 n
+0001027534 00000 n
+0001027599 00000 n
+0001027664 00000 n
+0001027729 00000 n
+0001027794 00000 n
+0001027859 00000 n
+0001027924 00000 n
+0001027989 00000 n
+0001028054 00000 n
+0001028119 00000 n
+0001028184 00000 n
+0001028248 00000 n
+0001028313 00000 n
+0001028378 00000 n
+0001028443 00000 n
+0001028508 00000 n
+0001028573 00000 n
+0001028638 00000 n
+0001028703 00000 n
+0001028768 00000 n
+0001028832 00000 n
+0001028897 00000 n
+0001028962 00000 n
+0001029026 00000 n
+0001029091 00000 n
+0001029156 00000 n
+0001029221 00000 n
+0001029286 00000 n
+0001029351 00000 n
+0001029416 00000 n
+0001029481 00000 n
+0001029546 00000 n
+0001029611 00000 n
+0001029676 00000 n
+0001029741 00000 n
+0001029806 00000 n
+0001029871 00000 n
+0001029935 00000 n
+0001030000 00000 n
+0001030065 00000 n
+0001030130 00000 n
+0001030195 00000 n
+0001030260 00000 n
+0001030325 00000 n
+0001030390 00000 n
+0001030455 00000 n
+0001030520 00000 n
+0001030584 00000 n
+0001036719 00000 n
+0001032898 00000 n
+0001030825 00000 n
+0001033023 00000 n
+0001033087 00000 n
+0001033152 00000 n
+0001033217 00000 n
+0001033282 00000 n
+0001033347 00000 n
+0001033412 00000 n
+0001033477 00000 n
+0001033542 00000 n
+0001033607 00000 n
+0001033671 00000 n
+0001033736 00000 n
+0001033801 00000 n
+0001033866 00000 n
+0001033931 00000 n
+0001033996 00000 n
+0001034061 00000 n
+0001034125 00000 n
+0001034190 00000 n
+0001034254 00000 n
+0001034319 00000 n
+0001034384 00000 n
+0001034449 00000 n
+0001034514 00000 n
+0001034579 00000 n
+0001034644 00000 n
+0001034709 00000 n
+0001034774 00000 n
+0001034838 00000 n
+0001034903 00000 n
+0001034968 00000 n
+0001035033 00000 n
+0001035097 00000 n
+0001035162 00000 n
+0001035227 00000 n
+0001035292 00000 n
+0001035357 00000 n
+0001035422 00000 n
+0001035487 00000 n
+0001035552 00000 n
+0001035617 00000 n
+0001035682 00000 n
+0001035747 00000 n
+0001035812 00000 n
+0001035877 00000 n
+0001035942 00000 n
+0001036007 00000 n
+0001036072 00000 n
+0001036137 00000 n
+0001036202 00000 n
+0001036267 00000 n
+0001036331 00000 n
+0001036396 00000 n
+0001036461 00000 n
+0001036526 00000 n
+0001036591 00000 n
+0001036655 00000 n
+0001042795 00000 n
+0001038909 00000 n
+0001036896 00000 n
+0001039034 00000 n
+0001039098 00000 n
+0001039163 00000 n
+0001039228 00000 n
+0001039293 00000 n
+0001039358 00000 n
+0001039423 00000 n
+0001039488 00000 n
+0001039553 00000 n
+0001039618 00000 n
+0001039682 00000 n
+0001039747 00000 n
+0001039812 00000 n
+0001039877 00000 n
+0001039942 00000 n
+0001040007 00000 n
+0001040072 00000 n
+0001040137 00000 n
+0001040202 00000 n
+0001040267 00000 n
+0001040332 00000 n
+0001040396 00000 n
+0001040461 00000 n
+0001040526 00000 n
+0001040591 00000 n
+0001040656 00000 n
+0001040721 00000 n
+0001040786 00000 n
+0001040851 00000 n
+0001040915 00000 n
+0001040980 00000 n
+0001041045 00000 n
+0001041110 00000 n
+0001041175 00000 n
+0001041240 00000 n
+0001041305 00000 n
+0001041370 00000 n
+0001041435 00000 n
+0001041499 00000 n
+0001041564 00000 n
+0001041629 00000 n
+0001041694 00000 n
+0001041759 00000 n
+0001041824 00000 n
+0001041889 00000 n
+0001041954 00000 n
+0001042019 00000 n
+0001042083 00000 n
+0001042148 00000 n
+0001042213 00000 n
+0001042278 00000 n
+0001042343 00000 n
+0001042408 00000 n
+0001042473 00000 n
+0001042538 00000 n
+0001042603 00000 n
+0001042667 00000 n
+0001042731 00000 n
+0001048826 00000 n
+0001044939 00000 n
+0001042972 00000 n
+0001045064 00000 n
+0001045128 00000 n
+0001045193 00000 n
+0001045258 00000 n
+0001045323 00000 n
+0001045388 00000 n
+0001045453 00000 n
+0001045518 00000 n
+0001045583 00000 n
+0001045648 00000 n
+0001045712 00000 n
+0001045777 00000 n
+0001045842 00000 n
+0001045907 00000 n
+0001045972 00000 n
+0001046037 00000 n
+0001046102 00000 n
+0001046166 00000 n
+0001046231 00000 n
+0001046296 00000 n
+0001046361 00000 n
+0001046426 00000 n
+0001046491 00000 n
+0001046556 00000 n
+0001046621 00000 n
+0001046686 00000 n
+0001046750 00000 n
+0001046815 00000 n
+0001046880 00000 n
+0001046945 00000 n
+0001047010 00000 n
+0001047075 00000 n
+0001047140 00000 n
+0001047205 00000 n
+0001047270 00000 n
+0001047335 00000 n
+0001047400 00000 n
+0001047464 00000 n
+0001047529 00000 n
+0001047594 00000 n
+0001047659 00000 n
+0001047724 00000 n
+0001047789 00000 n
+0001047854 00000 n
+0001047919 00000 n
+0001047984 00000 n
+0001048049 00000 n
+0001048113 00000 n
+0001048178 00000 n
+0001048243 00000 n
+0001048308 00000 n
+0001048373 00000 n
+0001048438 00000 n
+0001048503 00000 n
+0001048568 00000 n
+0001048633 00000 n
+0001048697 00000 n
+0001048762 00000 n
+0001054647 00000 n
+0001050955 00000 n
+0001049003 00000 n
+0001051080 00000 n
+0001051144 00000 n
+0001051209 00000 n
+0001051274 00000 n
+0001051339 00000 n
+0001051404 00000 n
+0001051469 00000 n
+0001051534 00000 n
+0001051599 00000 n
+0001051664 00000 n
+0001051728 00000 n
+0001051793 00000 n
+0001051858 00000 n
+0001051923 00000 n
+0001051988 00000 n
+0001052053 00000 n
+0001052118 00000 n
+0001052182 00000 n
+0001052247 00000 n
+0001052312 00000 n
+0001052377 00000 n
+0001052442 00000 n
+0001052507 00000 n
+0001052572 00000 n
+0001052637 00000 n
+0001052702 00000 n
+0001052766 00000 n
+0001052831 00000 n
+0001052896 00000 n
+0001052961 00000 n
+0001053026 00000 n
+0001053091 00000 n
+0001053156 00000 n
+0001053221 00000 n
+0001053286 00000 n
+0001053351 00000 n
+0001053416 00000 n
+0001053481 00000 n
+0001053546 00000 n
+0001053611 00000 n
+0001053675 00000 n
+0001053740 00000 n
+0001053805 00000 n
+0001053870 00000 n
+0001053935 00000 n
+0001054000 00000 n
+0001054065 00000 n
+0001054130 00000 n
+0001054195 00000 n
+0001054259 00000 n
+0001054324 00000 n
+0001054389 00000 n
+0001054454 00000 n
+0001054519 00000 n
+0001054583 00000 n
+0001060257 00000 n
+0001057150 00000 n
+0001054811 00000 n
+0001057275 00000 n
+0001057339 00000 n
+0001057404 00000 n
+0001057469 00000 n
+0001057534 00000 n
+0001057599 00000 n
+0001057664 00000 n
+0001057729 00000 n
+0001057793 00000 n
+0001057858 00000 n
+0001057923 00000 n
+0001057988 00000 n
+0001058053 00000 n
+0001058118 00000 n
+0001058183 00000 n
+0001058248 00000 n
+0001058313 00000 n
+0001058377 00000 n
+0001058442 00000 n
+0001058507 00000 n
+0001058572 00000 n
+0001058637 00000 n
+0001058702 00000 n
+0001058767 00000 n
+0001058832 00000 n
+0001058897 00000 n
+0001058962 00000 n
+0001059027 00000 n
+0001059092 00000 n
+0001059157 00000 n
+0001059222 00000 n
+0001059287 00000 n
+0001059352 00000 n
+0001059417 00000 n
+0001059481 00000 n
+0001059546 00000 n
+0001059611 00000 n
+0001059676 00000 n
+0001059804 00000 n
+0001059869 00000 n
+0001059934 00000 n
+0001059999 00000 n
+0001060064 00000 n
+0001060129 00000 n
+0001060193 00000 n
+0001066157 00000 n
+0001062596 00000 n
+0001060447 00000 n
+0001062721 00000 n
+0001062785 00000 n
+0001062850 00000 n
+0001062915 00000 n
+0001062980 00000 n
+0001063045 00000 n
+0001063110 00000 n
+0001063175 00000 n
+0001063240 00000 n
+0001063305 00000 n
+0001063369 00000 n
+0001063434 00000 n
+0001063562 00000 n
+0001063627 00000 n
+0001063692 00000 n
+0001063757 00000 n
+0001063821 00000 n
+0001063886 00000 n
+0001063951 00000 n
+0001064016 00000 n
+0001064081 00000 n
+0001064146 00000 n
+0001064211 00000 n
+0001064276 00000 n
+0001064341 00000 n
+0001064405 00000 n
+0001064470 00000 n
+0001064535 00000 n
+0001064600 00000 n
+0001064665 00000 n
+0001064730 00000 n
+0001064795 00000 n
+0001064860 00000 n
+0001064925 00000 n
+0001064990 00000 n
+0001065055 00000 n
+0001065120 00000 n
+0001065185 00000 n
+0001065250 00000 n
+0001065315 00000 n
+0001065380 00000 n
+0001065445 00000 n
+0001065509 00000 n
+0001065574 00000 n
+0001065639 00000 n
+0001065704 00000 n
+0001065769 00000 n
+0001065834 00000 n
+0001065899 00000 n
+0001065964 00000 n
+0001066029 00000 n
+0001066093 00000 n
+0001071358 00000 n
+0001068511 00000 n
+0001066334 00000 n
+0001068636 00000 n
+0001068700 00000 n
+0001068765 00000 n
+0001068830 00000 n
+0001068895 00000 n
+0001068960 00000 n
+0001069025 00000 n
+0001069090 00000 n
+0001069155 00000 n
+0001069220 00000 n
+0001069284 00000 n
+0001069349 00000 n
+0001069414 00000 n
+0001069479 00000 n
+0001069544 00000 n
+0001069609 00000 n
+0001069674 00000 n
+0001069737 00000 n
+0001069802 00000 n
+0001069867 00000 n
+0001069932 00000 n
+0001069997 00000 n
+0001070062 00000 n
+0001070127 00000 n
+0001070192 00000 n
+0001070257 00000 n
+0001070322 00000 n
+0001070387 00000 n
+0001070452 00000 n
+0001070517 00000 n
+0001070582 00000 n
+0001070647 00000 n
+0001070775 00000 n
+0001070840 00000 n
+0001070905 00000 n
+0001070970 00000 n
+0001071035 00000 n
+0001071100 00000 n
+0001071165 00000 n
+0001071230 00000 n
+0001077015 00000 n
+0001073972 00000 n
+0001071548 00000 n
+0001074097 00000 n
+0001074161 00000 n
+0001074226 00000 n
+0001074291 00000 n
+0001074356 00000 n
+0001074421 00000 n
+0001074486 00000 n
+0001074551 00000 n
+0001074616 00000 n
+0001074681 00000 n
+0001074745 00000 n
+0001074810 00000 n
+0001074875 00000 n
+0001074940 00000 n
+0001075005 00000 n
+0001075070 00000 n
+0001075135 00000 n
+0001075200 00000 n
+0001075265 00000 n
+0001075330 00000 n
+0001075395 00000 n
+0001075460 00000 n
+0001075525 00000 n
+0001075590 00000 n
+0001075655 00000 n
+0001075720 00000 n
+0001075785 00000 n
+0001075850 00000 n
+0001075914 00000 n
+0001075979 00000 n
+0001076044 00000 n
+0001076109 00000 n
+0001076174 00000 n
+0001076239 00000 n
+0001076304 00000 n
+0001076369 00000 n
+0001076434 00000 n
+0001076498 00000 n
+0001076563 00000 n
+0001076628 00000 n
+0001076693 00000 n
+0001076758 00000 n
+0001076823 00000 n
+0001076888 00000 n
+0001076951 00000 n
+0001894471 00000 n
+0001079722 00000 n
+0001082467 00000 n
+0001079549 00000 n
+0001077192 00000 n
+0001079879 00000 n
+0001079943 00000 n
+0001080008 00000 n
+0001080073 00000 n
+0001080138 00000 n
+0001080203 00000 n
+0001080268 00000 n
+0001080333 00000 n
+0001080398 00000 n
+0001080463 00000 n
+0001080527 00000 n
+0001080592 00000 n
+0001080657 00000 n
+0001080722 00000 n
+0001080787 00000 n
+0001080852 00000 n
+0001080917 00000 n
+0001080982 00000 n
+0001081047 00000 n
+0001081111 00000 n
+0001081176 00000 n
+0001081241 00000 n
+0001081369 00000 n
+0001081434 00000 n
+0001081499 00000 n
+0001081564 00000 n
+0001081629 00000 n
+0001081694 00000 n
+0001081759 00000 n
+0001081824 00000 n
+0001081888 00000 n
+0001081953 00000 n
+0001082018 00000 n
+0001082083 00000 n
+0001082148 00000 n
+0001082213 00000 n
+0001082278 00000 n
+0001082342 00000 n
+0001079691 00000 n
+0001088215 00000 n
+0001085432 00000 n
+0001082670 00000 n
+0001085557 00000 n
+0001085621 00000 n
+0001085686 00000 n
+0001085751 00000 n
+0001085816 00000 n
+0001085881 00000 n
+0001085946 00000 n
+0001086011 00000 n
+0001086075 00000 n
+0001086140 00000 n
+0001086205 00000 n
+0001086270 00000 n
+0001086335 00000 n
+0001086399 00000 n
+0001086464 00000 n
+0001086529 00000 n
+0001086594 00000 n
+0001086659 00000 n
+0001086724 00000 n
+0001086789 00000 n
+0001086854 00000 n
+0001086919 00000 n
+0001086983 00000 n
+0001087048 00000 n
+0001087113 00000 n
+0001087178 00000 n
+0001087243 00000 n
+0001087308 00000 n
+0001087373 00000 n
+0001087438 00000 n
+0001087503 00000 n
+0001087568 00000 n
+0001087633 00000 n
+0001087697 00000 n
+0001087762 00000 n
+0001087827 00000 n
+0001087892 00000 n
+0001087957 00000 n
+0001088022 00000 n
+0001088087 00000 n
+0001088151 00000 n
+0001093837 00000 n
+0001090084 00000 n
+0001088431 00000 n
+0001090209 00000 n
+0001090273 00000 n
+0001090338 00000 n
+0001090403 00000 n
+0001090468 00000 n
+0001090533 00000 n
+0001090598 00000 n
+0001090663 00000 n
+0001090728 00000 n
+0001090793 00000 n
+0001090857 00000 n
+0001090922 00000 n
+0001090987 00000 n
+0001091052 00000 n
+0001091117 00000 n
+0001091182 00000 n
+0001091308 00000 n
+0001091373 00000 n
+0001091438 00000 n
+0001091503 00000 n
+0001091568 00000 n
+0001091632 00000 n
+0001091697 00000 n
+0001091762 00000 n
+0001091827 00000 n
+0001091892 00000 n
+0001091957 00000 n
+0001092022 00000 n
+0001092087 00000 n
+0001092152 00000 n
+0001092216 00000 n
+0001092281 00000 n
+0001092346 00000 n
+0001092411 00000 n
+0001092476 00000 n
+0001092541 00000 n
+0001092606 00000 n
+0001092671 00000 n
+0001092736 00000 n
+0001092800 00000 n
+0001092865 00000 n
+0001092930 00000 n
+0001092995 00000 n
+0001093060 00000 n
+0001093125 00000 n
+0001093190 00000 n
+0001093255 00000 n
+0001093319 00000 n
+0001093384 00000 n
+0001093449 00000 n
+0001093514 00000 n
+0001093579 00000 n
+0001093644 00000 n
+0001093709 00000 n
+0001093773 00000 n
+0001099741 00000 n
+0001095981 00000 n
+0001094014 00000 n
+0001096106 00000 n
+0001096170 00000 n
+0001096235 00000 n
+0001096300 00000 n
+0001096365 00000 n
+0001096430 00000 n
+0001096495 00000 n
+0001096560 00000 n
+0001096625 00000 n
+0001096690 00000 n
+0001096754 00000 n
+0001096819 00000 n
+0001096884 00000 n
+0001096949 00000 n
+0001097014 00000 n
+0001097079 00000 n
+0001097144 00000 n
+0001097209 00000 n
+0001097274 00000 n
+0001097338 00000 n
+0001097403 00000 n
+0001097468 00000 n
+0001097533 00000 n
+0001097598 00000 n
+0001097663 00000 n
+0001097728 00000 n
+0001097793 00000 n
+0001097858 00000 n
+0001097923 00000 n
+0001097988 00000 n
+0001098053 00000 n
+0001098117 00000 n
+0001098182 00000 n
+0001098247 00000 n
+0001098312 00000 n
+0001098377 00000 n
+0001098442 00000 n
+0001098507 00000 n
+0001098572 00000 n
+0001098637 00000 n
+0001098702 00000 n
+0001098766 00000 n
+0001098831 00000 n
+0001098896 00000 n
+0001098961 00000 n
+0001099026 00000 n
+0001099091 00000 n
+0001099156 00000 n
+0001099221 00000 n
+0001099286 00000 n
+0001099351 00000 n
+0001099416 00000 n
+0001099481 00000 n
+0001099546 00000 n
+0001099611 00000 n
+0001099676 00000 n
+0001105211 00000 n
+0001102168 00000 n
+0001099918 00000 n
+0001102293 00000 n
+0001102357 00000 n
+0001102422 00000 n
+0001102487 00000 n
+0001102552 00000 n
+0001102617 00000 n
+0001102682 00000 n
+0001102747 00000 n
+0001102812 00000 n
+0001102877 00000 n
+0001102941 00000 n
+0001103006 00000 n
+0001103071 00000 n
+0001103136 00000 n
+0001103201 00000 n
+0001103266 00000 n
+0001103331 00000 n
+0001103396 00000 n
+0001103461 00000 n
+0001103526 00000 n
+0001103591 00000 n
+0001103656 00000 n
+0001103720 00000 n
+0001103785 00000 n
+0001103850 00000 n
+0001103915 00000 n
+0001103980 00000 n
+0001104045 00000 n
+0001104110 00000 n
+0001104175 00000 n
+0001104240 00000 n
+0001104304 00000 n
+0001104369 00000 n
+0001104434 00000 n
+0001104499 00000 n
+0001104564 00000 n
+0001104629 00000 n
+0001104694 00000 n
+0001104759 00000 n
+0001104823 00000 n
+0001104888 00000 n
+0001104953 00000 n
+0001105018 00000 n
+0001105083 00000 n
+0001105147 00000 n
+0001111362 00000 n
+0001107346 00000 n
+0001105401 00000 n
0001107471 00000 n
-0001109816 00000 n
-0001109880 00000 n
-0001109945 00000 n
-0001110010 00000 n
-0001110075 00000 n
-0001110140 00000 n
-0001110205 00000 n
-0001110270 00000 n
-0001110335 00000 n
-0001110400 00000 n
-0001110464 00000 n
-0001110529 00000 n
-0001110594 00000 n
-0001110659 00000 n
-0001110724 00000 n
-0001110789 00000 n
-0001110854 00000 n
-0001110918 00000 n
-0001110983 00000 n
-0001111048 00000 n
-0001111112 00000 n
-0001111177 00000 n
-0001111242 00000 n
-0001111307 00000 n
-0001111372 00000 n
-0001111437 00000 n
-0001111502 00000 n
-0001111567 00000 n
-0001111632 00000 n
-0001111697 00000 n
-0001111762 00000 n
-0001111826 00000 n
-0001111891 00000 n
-0001111956 00000 n
-0001112021 00000 n
-0001112086 00000 n
-0001112149 00000 n
-0001112214 00000 n
-0001112279 00000 n
-0001112344 00000 n
-0001112409 00000 n
-0001112474 00000 n
-0001112539 00000 n
-0001112604 00000 n
-0001112669 00000 n
-0001112733 00000 n
-0001112798 00000 n
-0001112863 00000 n
-0001112928 00000 n
-0001112993 00000 n
-0001118875 00000 n
-0001115380 00000 n
-0001113222 00000 n
-0001115505 00000 n
-0001115569 00000 n
-0001115634 00000 n
-0001115699 00000 n
-0001115764 00000 n
-0001115829 00000 n
-0001115894 00000 n
-0001115959 00000 n
-0001116024 00000 n
-0001116089 00000 n
-0001116153 00000 n
-0001116218 00000 n
-0001116283 00000 n
-0001116348 00000 n
-0001116413 00000 n
-0001116476 00000 n
-0001116541 00000 n
-0001116606 00000 n
-0001116671 00000 n
-0001116736 00000 n
-0001116801 00000 n
-0001116866 00000 n
-0001116931 00000 n
-0001116996 00000 n
-0001117061 00000 n
-0001117126 00000 n
-0001117190 00000 n
-0001117255 00000 n
-0001117320 00000 n
-0001117385 00000 n
-0001117450 00000 n
-0001117515 00000 n
-0001117580 00000 n
-0001117645 00000 n
-0001117710 00000 n
-0001117774 00000 n
-0001117839 00000 n
-0001117904 00000 n
-0001117969 00000 n
-0001118034 00000 n
-0001118098 00000 n
-0001118163 00000 n
-0001118228 00000 n
-0001118293 00000 n
-0001118358 00000 n
-0001118423 00000 n
-0001118488 00000 n
-0001118553 00000 n
-0001118618 00000 n
-0001118683 00000 n
-0001118747 00000 n
-0001118811 00000 n
-0001124250 00000 n
-0001121788 00000 n
-0001119052 00000 n
-0001121913 00000 n
-0001121977 00000 n
-0001122042 00000 n
-0001122107 00000 n
-0001122172 00000 n
-0001122237 00000 n
-0001122302 00000 n
-0001122367 00000 n
-0001122432 00000 n
-0001122497 00000 n
-0001122561 00000 n
-0001122626 00000 n
-0001122691 00000 n
-0001122756 00000 n
-0001122821 00000 n
-0001122886 00000 n
-0001122951 00000 n
-0001123016 00000 n
-0001123081 00000 n
-0001123146 00000 n
-0001123211 00000 n
-0001123276 00000 n
-0001123341 00000 n
-0001123406 00000 n
-0001123470 00000 n
-0001123535 00000 n
-0001123600 00000 n
-0001123665 00000 n
-0001123730 00000 n
-0001123795 00000 n
-0001123860 00000 n
-0001123925 00000 n
-0001123990 00000 n
-0001124055 00000 n
-0001124120 00000 n
-0001124185 00000 n
-0001130188 00000 n
-0001127014 00000 n
-0001124440 00000 n
-0001127139 00000 n
+0001107535 00000 n
+0001107600 00000 n
+0001107665 00000 n
+0001107730 00000 n
+0001107795 00000 n
+0001107860 00000 n
+0001107925 00000 n
+0001107990 00000 n
+0001108055 00000 n
+0001108120 00000 n
+0001108185 00000 n
+0001108249 00000 n
+0001108314 00000 n
+0001108379 00000 n
+0001108444 00000 n
+0001108509 00000 n
+0001108574 00000 n
+0001108639 00000 n
+0001108704 00000 n
+0001108769 00000 n
+0001108833 00000 n
+0001108898 00000 n
+0001108963 00000 n
+0001109028 00000 n
+0001109093 00000 n
+0001109158 00000 n
+0001109223 00000 n
+0001109288 00000 n
+0001109353 00000 n
+0001109417 00000 n
+0001109482 00000 n
+0001109547 00000 n
+0001109612 00000 n
+0001109677 00000 n
+0001109742 00000 n
+0001109807 00000 n
+0001109872 00000 n
+0001109936 00000 n
+0001110001 00000 n
+0001110066 00000 n
+0001110131 00000 n
+0001110196 00000 n
+0001110261 00000 n
+0001110326 00000 n
+0001110391 00000 n
+0001110456 00000 n
+0001110520 00000 n
+0001110585 00000 n
+0001110650 00000 n
+0001110715 00000 n
+0001110780 00000 n
+0001110845 00000 n
+0001110910 00000 n
+0001110975 00000 n
+0001111040 00000 n
+0001111104 00000 n
+0001111169 00000 n
+0001111234 00000 n
+0001111298 00000 n
+0001117116 00000 n
+0001113749 00000 n
+0001111526 00000 n
+0001113874 00000 n
+0001113938 00000 n
+0001114003 00000 n
+0001114068 00000 n
+0001114133 00000 n
+0001114198 00000 n
+0001114263 00000 n
+0001114328 00000 n
+0001114393 00000 n
+0001114458 00000 n
+0001114522 00000 n
+0001114587 00000 n
+0001114652 00000 n
+0001114717 00000 n
+0001114782 00000 n
+0001114847 00000 n
+0001114912 00000 n
+0001114976 00000 n
+0001115041 00000 n
+0001115106 00000 n
+0001115170 00000 n
+0001115235 00000 n
+0001115300 00000 n
+0001115365 00000 n
+0001115430 00000 n
+0001115495 00000 n
+0001115560 00000 n
+0001115625 00000 n
+0001115690 00000 n
+0001115755 00000 n
+0001115820 00000 n
+0001115884 00000 n
+0001115949 00000 n
+0001116014 00000 n
+0001116079 00000 n
+0001116144 00000 n
+0001116207 00000 n
+0001116272 00000 n
+0001116337 00000 n
+0001116402 00000 n
+0001116467 00000 n
+0001116532 00000 n
+0001116597 00000 n
+0001116662 00000 n
+0001116727 00000 n
+0001116791 00000 n
+0001116856 00000 n
+0001116921 00000 n
+0001116986 00000 n
+0001117051 00000 n
+0001122933 00000 n
+0001119438 00000 n
+0001117280 00000 n
+0001119563 00000 n
+0001119627 00000 n
+0001119692 00000 n
+0001119757 00000 n
+0001119822 00000 n
+0001119887 00000 n
+0001119952 00000 n
+0001120017 00000 n
+0001120082 00000 n
+0001120147 00000 n
+0001120211 00000 n
+0001120276 00000 n
+0001120341 00000 n
+0001120406 00000 n
+0001120471 00000 n
+0001120534 00000 n
+0001120599 00000 n
+0001120664 00000 n
+0001120729 00000 n
+0001120794 00000 n
+0001120859 00000 n
+0001120924 00000 n
+0001120989 00000 n
+0001121054 00000 n
+0001121119 00000 n
+0001121184 00000 n
+0001121248 00000 n
+0001121313 00000 n
+0001121378 00000 n
+0001121443 00000 n
+0001121508 00000 n
+0001121573 00000 n
+0001121638 00000 n
+0001121703 00000 n
+0001121768 00000 n
+0001121832 00000 n
+0001121897 00000 n
+0001121962 00000 n
+0001122027 00000 n
+0001122092 00000 n
+0001122156 00000 n
+0001122221 00000 n
+0001122286 00000 n
+0001122351 00000 n
+0001122416 00000 n
+0001122481 00000 n
+0001122546 00000 n
+0001122611 00000 n
+0001122676 00000 n
+0001122741 00000 n
+0001122805 00000 n
+0001122869 00000 n
+0001128307 00000 n
+0001125845 00000 n
+0001123110 00000 n
+0001125970 00000 n
+0001126034 00000 n
+0001126099 00000 n
+0001126164 00000 n
+0001126229 00000 n
+0001126294 00000 n
+0001126359 00000 n
+0001126424 00000 n
+0001126489 00000 n
+0001126554 00000 n
+0001126618 00000 n
+0001126683 00000 n
+0001126748 00000 n
+0001126813 00000 n
+0001126878 00000 n
+0001126943 00000 n
+0001127008 00000 n
+0001127073 00000 n
+0001127138 00000 n
0001127203 00000 n
0001127268 00000 n
0001127333 00000 n
@@ -50778,223 +50905,207 @@ xref
0001127852 00000 n
0001127917 00000 n
0001127982 00000 n
-0001128046 00000 n
-0001128111 00000 n
-0001128176 00000 n
-0001128241 00000 n
-0001128306 00000 n
-0001128371 00000 n
-0001128436 00000 n
-0001128501 00000 n
-0001128566 00000 n
-0001128631 00000 n
-0001128696 00000 n
-0001128761 00000 n
-0001128826 00000 n
-0001128891 00000 n
-0001128956 00000 n
-0001129021 00000 n
-0001129086 00000 n
-0001129151 00000 n
-0001129216 00000 n
-0001129281 00000 n
-0001129346 00000 n
-0001129411 00000 n
-0001129476 00000 n
-0001129541 00000 n
-0001129606 00000 n
-0001129671 00000 n
-0001129736 00000 n
-0001129800 00000 n
-0001129865 00000 n
-0001129930 00000 n
-0001129995 00000 n
-0001130060 00000 n
-0001130124 00000 n
-0001135749 00000 n
-0001132323 00000 n
-0001130365 00000 n
-0001132448 00000 n
-0001132512 00000 n
-0001132577 00000 n
-0001132642 00000 n
-0001132707 00000 n
-0001132772 00000 n
-0001132837 00000 n
-0001132901 00000 n
-0001132966 00000 n
-0001133031 00000 n
-0001133096 00000 n
-0001133161 00000 n
-0001133226 00000 n
-0001133291 00000 n
-0001133356 00000 n
-0001133421 00000 n
-0001133482 00000 n
-0001133547 00000 n
-0001133612 00000 n
-0001133677 00000 n
-0001133742 00000 n
-0001133807 00000 n
-0001133872 00000 n
-0001133937 00000 n
-0001134002 00000 n
-0001134066 00000 n
-0001134131 00000 n
-0001134196 00000 n
-0001134261 00000 n
-0001134389 00000 n
-0001134453 00000 n
-0001134518 00000 n
-0001134583 00000 n
-0001134648 00000 n
-0001134713 00000 n
-0001134777 00000 n
-0001134842 00000 n
-0001134907 00000 n
-0001134972 00000 n
-0001135037 00000 n
-0001135102 00000 n
-0001135167 00000 n
-0001135232 00000 n
-0001135297 00000 n
-0001135361 00000 n
-0001135426 00000 n
-0001135491 00000 n
-0001135556 00000 n
-0001135621 00000 n
-0001135685 00000 n
-0001890386 00000 n
-0001142147 00000 n
-0001138184 00000 n
-0001135926 00000 n
-0001138309 00000 n
-0001138373 00000 n
-0001138438 00000 n
-0001138503 00000 n
-0001138568 00000 n
-0001138633 00000 n
-0001138698 00000 n
-0001138763 00000 n
-0001138828 00000 n
-0001138893 00000 n
-0001138957 00000 n
-0001139022 00000 n
-0001139087 00000 n
-0001139152 00000 n
-0001139217 00000 n
-0001139282 00000 n
-0001139346 00000 n
-0001139411 00000 n
-0001139476 00000 n
-0001139541 00000 n
-0001139606 00000 n
-0001139671 00000 n
-0001139736 00000 n
-0001139801 00000 n
-0001139866 00000 n
-0001139930 00000 n
-0001139995 00000 n
-0001140060 00000 n
-0001140125 00000 n
-0001140190 00000 n
-0001140255 00000 n
-0001140320 00000 n
-0001140385 00000 n
-0001140450 00000 n
-0001140514 00000 n
-0001140579 00000 n
-0001140644 00000 n
-0001140709 00000 n
-0001140774 00000 n
-0001140839 00000 n
-0001140904 00000 n
-0001140969 00000 n
-0001141034 00000 n
-0001141099 00000 n
-0001141164 00000 n
-0001141229 00000 n
-0001141294 00000 n
-0001141359 00000 n
-0001141424 00000 n
-0001141490 00000 n
-0001141556 00000 n
-0001141622 00000 n
-0001141688 00000 n
-0001141753 00000 n
-0001141819 00000 n
-0001141885 00000 n
-0001141951 00000 n
-0001142017 00000 n
-0001142082 00000 n
-0001148152 00000 n
-0001144012 00000 n
-0001142337 00000 n
-0001144140 00000 n
-0001144206 00000 n
-0001144273 00000 n
-0001144340 00000 n
-0001144407 00000 n
-0001144474 00000 n
-0001144541 00000 n
-0001144608 00000 n
-0001144675 00000 n
-0001144742 00000 n
-0001144808 00000 n
-0001144875 00000 n
-0001144942 00000 n
-0001145009 00000 n
-0001145076 00000 n
-0001145143 00000 n
-0001145210 00000 n
-0001145277 00000 n
-0001145344 00000 n
-0001145410 00000 n
-0001145477 00000 n
-0001145544 00000 n
-0001145611 00000 n
-0001145678 00000 n
-0001145745 00000 n
-0001145812 00000 n
-0001145879 00000 n
-0001145946 00000 n
-0001146012 00000 n
-0001146079 00000 n
-0001146146 00000 n
-0001146213 00000 n
-0001146280 00000 n
-0001146347 00000 n
-0001146414 00000 n
-0001146481 00000 n
-0001146548 00000 n
-0001146614 00000 n
-0001146681 00000 n
-0001146748 00000 n
-0001146815 00000 n
-0001146882 00000 n
-0001146949 00000 n
-0001147016 00000 n
-0001147083 00000 n
-0001147150 00000 n
-0001147216 00000 n
-0001147283 00000 n
-0001147350 00000 n
-0001147417 00000 n
-0001147484 00000 n
-0001147551 00000 n
-0001147618 00000 n
-0001147685 00000 n
-0001147752 00000 n
-0001147819 00000 n
-0001147886 00000 n
-0001147953 00000 n
-0001148020 00000 n
-0001148086 00000 n
-0001153840 00000 n
-0001149838 00000 n
-0001148304 00000 n
+0001128047 00000 n
+0001128112 00000 n
+0001128177 00000 n
+0001128242 00000 n
+0001134246 00000 n
+0001131072 00000 n
+0001128497 00000 n
+0001131197 00000 n
+0001131261 00000 n
+0001131326 00000 n
+0001131391 00000 n
+0001131456 00000 n
+0001131521 00000 n
+0001131585 00000 n
+0001131650 00000 n
+0001131715 00000 n
+0001131780 00000 n
+0001131845 00000 n
+0001131910 00000 n
+0001131975 00000 n
+0001132040 00000 n
+0001132104 00000 n
+0001132169 00000 n
+0001132234 00000 n
+0001132299 00000 n
+0001132364 00000 n
+0001132429 00000 n
+0001132494 00000 n
+0001132559 00000 n
+0001132624 00000 n
+0001132689 00000 n
+0001132754 00000 n
+0001132819 00000 n
+0001132884 00000 n
+0001132949 00000 n
+0001133014 00000 n
+0001133079 00000 n
+0001133144 00000 n
+0001133209 00000 n
+0001133274 00000 n
+0001133339 00000 n
+0001133404 00000 n
+0001133469 00000 n
+0001133534 00000 n
+0001133599 00000 n
+0001133664 00000 n
+0001133729 00000 n
+0001133794 00000 n
+0001133858 00000 n
+0001133923 00000 n
+0001133988 00000 n
+0001134053 00000 n
+0001134118 00000 n
+0001134182 00000 n
+0001894636 00000 n
+0001139808 00000 n
+0001136382 00000 n
+0001134423 00000 n
+0001136507 00000 n
+0001136571 00000 n
+0001136636 00000 n
+0001136701 00000 n
+0001136766 00000 n
+0001136831 00000 n
+0001136896 00000 n
+0001136960 00000 n
+0001137025 00000 n
+0001137090 00000 n
+0001137155 00000 n
+0001137220 00000 n
+0001137285 00000 n
+0001137350 00000 n
+0001137415 00000 n
+0001137480 00000 n
+0001137541 00000 n
+0001137606 00000 n
+0001137671 00000 n
+0001137736 00000 n
+0001137801 00000 n
+0001137866 00000 n
+0001137931 00000 n
+0001137996 00000 n
+0001138061 00000 n
+0001138125 00000 n
+0001138190 00000 n
+0001138255 00000 n
+0001138320 00000 n
+0001138448 00000 n
+0001138512 00000 n
+0001138577 00000 n
+0001138642 00000 n
+0001138707 00000 n
+0001138772 00000 n
+0001138836 00000 n
+0001138901 00000 n
+0001138966 00000 n
+0001139031 00000 n
+0001139096 00000 n
+0001139161 00000 n
+0001139226 00000 n
+0001139291 00000 n
+0001139356 00000 n
+0001139420 00000 n
+0001139485 00000 n
+0001139550 00000 n
+0001139615 00000 n
+0001139680 00000 n
+0001139744 00000 n
+0001146236 00000 n
+0001142241 00000 n
+0001139985 00000 n
+0001142366 00000 n
+0001142430 00000 n
+0001142495 00000 n
+0001142560 00000 n
+0001142625 00000 n
+0001142690 00000 n
+0001142755 00000 n
+0001142820 00000 n
+0001142885 00000 n
+0001142950 00000 n
+0001143014 00000 n
+0001143079 00000 n
+0001143144 00000 n
+0001143209 00000 n
+0001143274 00000 n
+0001143339 00000 n
+0001143403 00000 n
+0001143469 00000 n
+0001143535 00000 n
+0001143601 00000 n
+0001143667 00000 n
+0001143733 00000 n
+0001143799 00000 n
+0001143865 00000 n
+0001143931 00000 n
+0001143996 00000 n
+0001144062 00000 n
+0001144128 00000 n
+0001144194 00000 n
+0001144260 00000 n
+0001144326 00000 n
+0001144392 00000 n
+0001144458 00000 n
+0001144524 00000 n
+0001144589 00000 n
+0001144655 00000 n
+0001144721 00000 n
+0001144787 00000 n
+0001144853 00000 n
+0001144919 00000 n
+0001144985 00000 n
+0001145051 00000 n
+0001145117 00000 n
+0001145183 00000 n
+0001145249 00000 n
+0001145315 00000 n
+0001145381 00000 n
+0001145447 00000 n
+0001145513 00000 n
+0001145579 00000 n
+0001145645 00000 n
+0001145711 00000 n
+0001145777 00000 n
+0001145842 00000 n
+0001145908 00000 n
+0001145974 00000 n
+0001146040 00000 n
+0001146106 00000 n
+0001146171 00000 n
+0001152239 00000 n
+0001148099 00000 n
+0001146426 00000 n
+0001148227 00000 n
+0001148293 00000 n
+0001148360 00000 n
+0001148427 00000 n
+0001148494 00000 n
+0001148561 00000 n
+0001148628 00000 n
+0001148695 00000 n
+0001148762 00000 n
+0001148829 00000 n
+0001148895 00000 n
+0001148962 00000 n
+0001149029 00000 n
+0001149096 00000 n
+0001149163 00000 n
+0001149230 00000 n
+0001149297 00000 n
+0001149364 00000 n
+0001149431 00000 n
+0001149497 00000 n
+0001149564 00000 n
+0001149631 00000 n
+0001149698 00000 n
+0001149765 00000 n
+0001149832 00000 n
+0001149899 00000 n
0001149966 00000 n
-0001150032 00000 n
+0001150033 00000 n
0001150099 00000 n
0001150166 00000 n
0001150233 00000 n
@@ -51003,7 +51114,7 @@ xref
0001150434 00000 n
0001150501 00000 n
0001150568 00000 n
-0001150634 00000 n
+0001150635 00000 n
0001150701 00000 n
0001150768 00000 n
0001150835 00000 n
@@ -51012,7 +51123,7 @@ xref
0001151036 00000 n
0001151103 00000 n
0001151170 00000 n
-0001151236 00000 n
+0001151237 00000 n
0001151303 00000 n
0001151370 00000 n
0001151437 00000 n
@@ -51021,1310 +51132,1312 @@ xref
0001151638 00000 n
0001151705 00000 n
0001151772 00000 n
-0001151837 00000 n
-0001151904 00000 n
-0001151971 00000 n
-0001152038 00000 n
-0001152105 00000 n
-0001152172 00000 n
-0001152239 00000 n
-0001152370 00000 n
-0001152437 00000 n
-0001152504 00000 n
-0001152571 00000 n
-0001152638 00000 n
-0001152705 00000 n
-0001152772 00000 n
-0001152839 00000 n
-0001152905 00000 n
-0001152972 00000 n
-0001153039 00000 n
-0001153106 00000 n
-0001153173 00000 n
-0001153240 00000 n
-0001153307 00000 n
-0001153374 00000 n
-0001153441 00000 n
-0001153507 00000 n
-0001153574 00000 n
-0001153641 00000 n
-0001153708 00000 n
-0001153774 00000 n
-0001160077 00000 n
-0001155805 00000 n
-0001154005 00000 n
-0001155933 00000 n
-0001155999 00000 n
-0001156066 00000 n
-0001156133 00000 n
-0001156200 00000 n
-0001156267 00000 n
-0001156334 00000 n
-0001156401 00000 n
-0001156468 00000 n
-0001156535 00000 n
-0001156602 00000 n
-0001156668 00000 n
-0001156735 00000 n
-0001156802 00000 n
-0001156869 00000 n
-0001156936 00000 n
-0001157003 00000 n
-0001157070 00000 n
-0001157137 00000 n
-0001157204 00000 n
-0001157270 00000 n
-0001157337 00000 n
-0001157404 00000 n
-0001157471 00000 n
-0001157538 00000 n
-0001157605 00000 n
-0001157672 00000 n
-0001157739 00000 n
-0001157806 00000 n
-0001157872 00000 n
-0001157939 00000 n
-0001158006 00000 n
-0001158073 00000 n
-0001158140 00000 n
-0001158207 00000 n
-0001158274 00000 n
-0001158341 00000 n
-0001158408 00000 n
-0001158474 00000 n
-0001158541 00000 n
-0001158608 00000 n
-0001158675 00000 n
-0001158742 00000 n
-0001158809 00000 n
-0001158876 00000 n
-0001158943 00000 n
-0001159010 00000 n
-0001159077 00000 n
-0001159143 00000 n
-0001159210 00000 n
-0001159277 00000 n
-0001159344 00000 n
-0001159411 00000 n
-0001159478 00000 n
-0001159545 00000 n
-0001159612 00000 n
-0001159679 00000 n
-0001159744 00000 n
-0001159811 00000 n
-0001159878 00000 n
-0001159945 00000 n
-0001160011 00000 n
-0001166123 00000 n
-0001161922 00000 n
-0001160255 00000 n
-0001162050 00000 n
-0001162116 00000 n
-0001162183 00000 n
-0001162250 00000 n
-0001162317 00000 n
-0001162384 00000 n
-0001162451 00000 n
-0001162518 00000 n
-0001162585 00000 n
-0001162652 00000 n
-0001162782 00000 n
-0001162849 00000 n
-0001162916 00000 n
-0001162983 00000 n
-0001163049 00000 n
-0001163116 00000 n
-0001163183 00000 n
-0001163250 00000 n
-0001163317 00000 n
-0001163384 00000 n
-0001163451 00000 n
-0001163518 00000 n
-0001163585 00000 n
-0001163651 00000 n
-0001163718 00000 n
-0001163785 00000 n
-0001163852 00000 n
-0001163919 00000 n
-0001163986 00000 n
-0001164053 00000 n
-0001164120 00000 n
-0001164187 00000 n
-0001164252 00000 n
-0001164319 00000 n
-0001164386 00000 n
-0001164453 00000 n
-0001164520 00000 n
-0001164587 00000 n
-0001164654 00000 n
-0001164721 00000 n
-0001164788 00000 n
-0001164855 00000 n
-0001164921 00000 n
-0001164988 00000 n
-0001165055 00000 n
-0001165122 00000 n
-0001165189 00000 n
-0001165256 00000 n
-0001165323 00000 n
-0001165390 00000 n
-0001165457 00000 n
-0001165523 00000 n
-0001165590 00000 n
-0001165657 00000 n
-0001165724 00000 n
-0001165791 00000 n
-0001165858 00000 n
-0001165925 00000 n
-0001165992 00000 n
-0001166058 00000 n
-0001172326 00000 n
-0001167920 00000 n
-0001166288 00000 n
-0001168048 00000 n
-0001168114 00000 n
-0001168181 00000 n
-0001168248 00000 n
-0001168315 00000 n
-0001168382 00000 n
-0001168449 00000 n
-0001168516 00000 n
-0001168583 00000 n
-0001168650 00000 n
-0001168716 00000 n
-0001168783 00000 n
-0001168850 00000 n
-0001168917 00000 n
-0001168984 00000 n
-0001169051 00000 n
-0001169118 00000 n
-0001169185 00000 n
-0001169252 00000 n
-0001169319 00000 n
-0001169385 00000 n
-0001169452 00000 n
-0001169519 00000 n
-0001169586 00000 n
-0001169653 00000 n
-0001169720 00000 n
-0001169787 00000 n
-0001169854 00000 n
-0001169921 00000 n
-0001169987 00000 n
-0001170054 00000 n
-0001170121 00000 n
-0001170188 00000 n
-0001170255 00000 n
-0001170322 00000 n
-0001170389 00000 n
-0001170456 00000 n
-0001170523 00000 n
-0001170589 00000 n
-0001170656 00000 n
-0001170723 00000 n
-0001170790 00000 n
-0001170857 00000 n
-0001170924 00000 n
-0001170991 00000 n
-0001171058 00000 n
-0001171125 00000 n
-0001171190 00000 n
-0001171257 00000 n
-0001171324 00000 n
-0001171391 00000 n
-0001171458 00000 n
-0001171525 00000 n
-0001171592 00000 n
-0001171659 00000 n
-0001171726 00000 n
-0001171792 00000 n
-0001171859 00000 n
-0001171926 00000 n
-0001171993 00000 n
-0001172060 00000 n
-0001172127 00000 n
-0001172194 00000 n
-0001172260 00000 n
-0001178093 00000 n
-0001174559 00000 n
-0001172478 00000 n
-0001174687 00000 n
-0001174753 00000 n
-0001174820 00000 n
-0001174887 00000 n
-0001174954 00000 n
-0001175021 00000 n
-0001175088 00000 n
-0001175155 00000 n
-0001175222 00000 n
-0001175289 00000 n
-0001175355 00000 n
-0001175422 00000 n
-0001175489 00000 n
-0001175556 00000 n
-0001175623 00000 n
-0001175690 00000 n
-0001175757 00000 n
-0001175824 00000 n
-0001175891 00000 n
-0001175957 00000 n
-0001176024 00000 n
-0001176091 00000 n
-0001176158 00000 n
-0001176225 00000 n
-0001176292 00000 n
-0001176359 00000 n
-0001176426 00000 n
-0001176493 00000 n
-0001176558 00000 n
-0001176625 00000 n
-0001176692 00000 n
-0001176759 00000 n
-0001176826 00000 n
-0001176893 00000 n
-0001176960 00000 n
-0001177027 00000 n
-0001177094 00000 n
-0001177160 00000 n
-0001177227 00000 n
-0001177294 00000 n
-0001177361 00000 n
-0001177428 00000 n
-0001177495 00000 n
-0001177562 00000 n
-0001177629 00000 n
-0001177696 00000 n
-0001177762 00000 n
-0001177829 00000 n
-0001177960 00000 n
-0001178027 00000 n
-0001184313 00000 n
-0001180307 00000 n
-0001178271 00000 n
-0001180435 00000 n
-0001180501 00000 n
-0001180568 00000 n
-0001180635 00000 n
-0001180702 00000 n
-0001180769 00000 n
-0001180836 00000 n
-0001180903 00000 n
-0001180970 00000 n
-0001181037 00000 n
-0001181103 00000 n
-0001181170 00000 n
-0001181237 00000 n
-0001181304 00000 n
-0001181371 00000 n
-0001181438 00000 n
-0001181505 00000 n
-0001181572 00000 n
-0001181639 00000 n
-0001181706 00000 n
-0001181773 00000 n
-0001181840 00000 n
-0001181907 00000 n
-0001181974 00000 n
+0001151839 00000 n
+0001151906 00000 n
+0001151973 00000 n
+0001152040 00000 n
+0001152107 00000 n
+0001152173 00000 n
+0001157923 00000 n
+0001153921 00000 n
+0001152391 00000 n
+0001154049 00000 n
+0001154115 00000 n
+0001154182 00000 n
+0001154249 00000 n
+0001154316 00000 n
+0001154383 00000 n
+0001154450 00000 n
+0001154517 00000 n
+0001154584 00000 n
+0001154651 00000 n
+0001154717 00000 n
+0001154784 00000 n
+0001154851 00000 n
+0001154918 00000 n
+0001154985 00000 n
+0001155052 00000 n
+0001155119 00000 n
+0001155186 00000 n
+0001155253 00000 n
+0001155319 00000 n
+0001155386 00000 n
+0001155453 00000 n
+0001155520 00000 n
+0001155587 00000 n
+0001155654 00000 n
+0001155721 00000 n
+0001155788 00000 n
+0001155855 00000 n
+0001155920 00000 n
+0001155987 00000 n
+0001156054 00000 n
+0001156121 00000 n
+0001156188 00000 n
+0001156255 00000 n
+0001156322 00000 n
+0001156453 00000 n
+0001156520 00000 n
+0001156587 00000 n
+0001156654 00000 n
+0001156721 00000 n
+0001156788 00000 n
+0001156855 00000 n
+0001156922 00000 n
+0001156988 00000 n
+0001157055 00000 n
+0001157122 00000 n
+0001157189 00000 n
+0001157256 00000 n
+0001157323 00000 n
+0001157390 00000 n
+0001157457 00000 n
+0001157524 00000 n
+0001157590 00000 n
+0001157657 00000 n
+0001157724 00000 n
+0001157791 00000 n
+0001157857 00000 n
+0001164161 00000 n
+0001159889 00000 n
+0001158088 00000 n
+0001160017 00000 n
+0001160083 00000 n
+0001160150 00000 n
+0001160217 00000 n
+0001160284 00000 n
+0001160351 00000 n
+0001160418 00000 n
+0001160485 00000 n
+0001160552 00000 n
+0001160619 00000 n
+0001160686 00000 n
+0001160752 00000 n
+0001160819 00000 n
+0001160886 00000 n
+0001160953 00000 n
+0001161020 00000 n
+0001161087 00000 n
+0001161154 00000 n
+0001161221 00000 n
+0001161288 00000 n
+0001161354 00000 n
+0001161421 00000 n
+0001161488 00000 n
+0001161555 00000 n
+0001161622 00000 n
+0001161689 00000 n
+0001161756 00000 n
+0001161823 00000 n
+0001161890 00000 n
+0001161956 00000 n
+0001162023 00000 n
+0001162090 00000 n
+0001162157 00000 n
+0001162224 00000 n
+0001162291 00000 n
+0001162358 00000 n
+0001162425 00000 n
+0001162492 00000 n
+0001162558 00000 n
+0001162625 00000 n
+0001162692 00000 n
+0001162759 00000 n
+0001162826 00000 n
+0001162893 00000 n
+0001162960 00000 n
+0001163027 00000 n
+0001163094 00000 n
+0001163161 00000 n
+0001163227 00000 n
+0001163294 00000 n
+0001163361 00000 n
+0001163428 00000 n
+0001163495 00000 n
+0001163562 00000 n
+0001163629 00000 n
+0001163696 00000 n
+0001163763 00000 n
+0001163828 00000 n
+0001163895 00000 n
+0001163962 00000 n
+0001164029 00000 n
+0001164095 00000 n
+0001170208 00000 n
+0001166007 00000 n
+0001164339 00000 n
+0001166135 00000 n
+0001166201 00000 n
+0001166268 00000 n
+0001166335 00000 n
+0001166402 00000 n
+0001166469 00000 n
+0001166536 00000 n
+0001166603 00000 n
+0001166670 00000 n
+0001166737 00000 n
+0001166867 00000 n
+0001166934 00000 n
+0001167001 00000 n
+0001167068 00000 n
+0001167134 00000 n
+0001167201 00000 n
+0001167268 00000 n
+0001167335 00000 n
+0001167402 00000 n
+0001167469 00000 n
+0001167536 00000 n
+0001167603 00000 n
+0001167670 00000 n
+0001167736 00000 n
+0001167803 00000 n
+0001167870 00000 n
+0001167937 00000 n
+0001168004 00000 n
+0001168071 00000 n
+0001168138 00000 n
+0001168205 00000 n
+0001168272 00000 n
+0001168337 00000 n
+0001168404 00000 n
+0001168471 00000 n
+0001168538 00000 n
+0001168605 00000 n
+0001168672 00000 n
+0001168739 00000 n
+0001168806 00000 n
+0001168873 00000 n
+0001168940 00000 n
+0001169006 00000 n
+0001169073 00000 n
+0001169140 00000 n
+0001169207 00000 n
+0001169274 00000 n
+0001169341 00000 n
+0001169408 00000 n
+0001169475 00000 n
+0001169542 00000 n
+0001169608 00000 n
+0001169675 00000 n
+0001169742 00000 n
+0001169809 00000 n
+0001169876 00000 n
+0001169943 00000 n
+0001170010 00000 n
+0001170077 00000 n
+0001170143 00000 n
+0001176409 00000 n
+0001172003 00000 n
+0001170373 00000 n
+0001172131 00000 n
+0001172197 00000 n
+0001172264 00000 n
+0001172331 00000 n
+0001172398 00000 n
+0001172465 00000 n
+0001172532 00000 n
+0001172599 00000 n
+0001172666 00000 n
+0001172733 00000 n
+0001172799 00000 n
+0001172866 00000 n
+0001172933 00000 n
+0001173000 00000 n
+0001173067 00000 n
+0001173134 00000 n
+0001173201 00000 n
+0001173268 00000 n
+0001173335 00000 n
+0001173402 00000 n
+0001173468 00000 n
+0001173535 00000 n
+0001173602 00000 n
+0001173669 00000 n
+0001173736 00000 n
+0001173803 00000 n
+0001173870 00000 n
+0001173937 00000 n
+0001174004 00000 n
+0001174070 00000 n
+0001174137 00000 n
+0001174204 00000 n
+0001174271 00000 n
+0001174338 00000 n
+0001174405 00000 n
+0001174472 00000 n
+0001174539 00000 n
+0001174606 00000 n
+0001174672 00000 n
+0001174739 00000 n
+0001174806 00000 n
+0001174873 00000 n
+0001174940 00000 n
+0001175007 00000 n
+0001175074 00000 n
+0001175141 00000 n
+0001175208 00000 n
+0001175273 00000 n
+0001175340 00000 n
+0001175407 00000 n
+0001175474 00000 n
+0001175541 00000 n
+0001175608 00000 n
+0001175675 00000 n
+0001175742 00000 n
+0001175809 00000 n
+0001175875 00000 n
+0001175942 00000 n
+0001176009 00000 n
+0001176076 00000 n
+0001176143 00000 n
+0001176210 00000 n
+0001176277 00000 n
+0001176343 00000 n
+0001182173 00000 n
+0001178639 00000 n
+0001176561 00000 n
+0001178767 00000 n
+0001178833 00000 n
+0001178900 00000 n
+0001178967 00000 n
+0001179034 00000 n
+0001179101 00000 n
+0001179168 00000 n
+0001179235 00000 n
+0001179302 00000 n
+0001179369 00000 n
+0001179435 00000 n
+0001179502 00000 n
+0001179569 00000 n
+0001179636 00000 n
+0001179703 00000 n
+0001179770 00000 n
+0001179837 00000 n
+0001179904 00000 n
+0001179971 00000 n
+0001180037 00000 n
+0001180104 00000 n
+0001180171 00000 n
+0001180238 00000 n
+0001180305 00000 n
+0001180372 00000 n
+0001180439 00000 n
+0001180506 00000 n
+0001180573 00000 n
+0001180638 00000 n
+0001180705 00000 n
+0001180772 00000 n
+0001180839 00000 n
+0001180906 00000 n
+0001180973 00000 n
+0001181040 00000 n
+0001181107 00000 n
+0001181174 00000 n
+0001181240 00000 n
+0001181307 00000 n
+0001181374 00000 n
+0001181441 00000 n
+0001181508 00000 n
+0001181575 00000 n
+0001181642 00000 n
+0001181709 00000 n
+0001181776 00000 n
+0001181842 00000 n
+0001181909 00000 n
0001182040 00000 n
0001182107 00000 n
-0001182174 00000 n
-0001182241 00000 n
-0001182308 00000 n
-0001182375 00000 n
-0001182442 00000 n
-0001182509 00000 n
-0001182576 00000 n
-0001182643 00000 n
-0001182710 00000 n
-0001182777 00000 n
-0001182844 00000 n
-0001182911 00000 n
-0001182978 00000 n
-0001183045 00000 n
-0001183112 00000 n
-0001183179 00000 n
-0001183246 00000 n
-0001183313 00000 n
-0001183380 00000 n
-0001183446 00000 n
-0001183513 00000 n
-0001183580 00000 n
-0001183647 00000 n
-0001183713 00000 n
-0001183780 00000 n
-0001183847 00000 n
-0001183913 00000 n
-0001183980 00000 n
-0001184047 00000 n
-0001184114 00000 n
-0001184181 00000 n
-0001184247 00000 n
-0001189161 00000 n
-0001186296 00000 n
-0001184491 00000 n
-0001186424 00000 n
-0001186490 00000 n
-0001186557 00000 n
-0001186624 00000 n
-0001186691 00000 n
-0001186758 00000 n
-0001186825 00000 n
-0001186892 00000 n
-0001186959 00000 n
-0001187026 00000 n
-0001187092 00000 n
-0001187159 00000 n
-0001187290 00000 n
-0001187357 00000 n
-0001187424 00000 n
-0001187491 00000 n
-0001187558 00000 n
-0001187625 00000 n
-0001187692 00000 n
-0001187759 00000 n
-0001187826 00000 n
-0001187893 00000 n
-0001187960 00000 n
-0001188027 00000 n
-0001188093 00000 n
-0001188224 00000 n
-0001188291 00000 n
-0001188358 00000 n
-0001188425 00000 n
-0001188492 00000 n
+0001188381 00000 n
+0001184375 00000 n
+0001182351 00000 n
+0001184503 00000 n
+0001184569 00000 n
+0001184636 00000 n
+0001184703 00000 n
+0001184770 00000 n
+0001184837 00000 n
+0001184904 00000 n
+0001184971 00000 n
+0001185038 00000 n
+0001185105 00000 n
+0001185171 00000 n
+0001185238 00000 n
+0001185305 00000 n
+0001185372 00000 n
+0001185439 00000 n
+0001185506 00000 n
+0001185573 00000 n
+0001185640 00000 n
+0001185707 00000 n
+0001185774 00000 n
+0001185841 00000 n
+0001185908 00000 n
+0001185975 00000 n
+0001186042 00000 n
+0001186108 00000 n
+0001186175 00000 n
+0001186242 00000 n
+0001186309 00000 n
+0001186376 00000 n
+0001186443 00000 n
+0001186510 00000 n
+0001186577 00000 n
+0001186644 00000 n
+0001186711 00000 n
+0001186778 00000 n
+0001186845 00000 n
+0001186912 00000 n
+0001186979 00000 n
+0001187046 00000 n
+0001187113 00000 n
+0001187180 00000 n
+0001187247 00000 n
+0001187314 00000 n
+0001187381 00000 n
+0001187448 00000 n
+0001187514 00000 n
+0001187581 00000 n
+0001187648 00000 n
+0001187715 00000 n
+0001187781 00000 n
+0001187848 00000 n
+0001187915 00000 n
+0001187981 00000 n
+0001188048 00000 n
+0001188115 00000 n
+0001188182 00000 n
+0001188249 00000 n
+0001188315 00000 n
+0001193227 00000 n
+0001190361 00000 n
0001188559 00000 n
-0001188626 00000 n
-0001188693 00000 n
-0001188759 00000 n
-0001188826 00000 n
-0001188893 00000 n
-0001188960 00000 n
-0001189027 00000 n
-0001189094 00000 n
-0001195718 00000 n
-0001191780 00000 n
-0001189365 00000 n
-0001191909 00000 n
-0001191975 00000 n
-0001192042 00000 n
-0001192109 00000 n
-0001192176 00000 n
-0001192243 00000 n
-0001192310 00000 n
-0001192377 00000 n
-0001192444 00000 n
-0001192511 00000 n
-0001192578 00000 n
-0001192645 00000 n
-0001192712 00000 n
-0001192779 00000 n
-0001192844 00000 n
-0001192911 00000 n
-0001192978 00000 n
-0001193045 00000 n
-0001193112 00000 n
-0001193179 00000 n
-0001193246 00000 n
-0001193313 00000 n
-0001193380 00000 n
-0001193447 00000 n
-0001193514 00000 n
-0001193580 00000 n
-0001193647 00000 n
-0001193714 00000 n
-0001193781 00000 n
-0001193848 00000 n
-0001193915 00000 n
-0001193982 00000 n
-0001194049 00000 n
-0001194116 00000 n
-0001194183 00000 n
-0001194250 00000 n
-0001194316 00000 n
-0001194382 00000 n
-0001194449 00000 n
-0001194516 00000 n
-0001194583 00000 n
-0001194650 00000 n
-0001194717 00000 n
-0001194784 00000 n
-0001194851 00000 n
-0001194918 00000 n
-0001194985 00000 n
-0001195051 00000 n
-0001195118 00000 n
-0001195185 00000 n
-0001195252 00000 n
-0001195319 00000 n
-0001195386 00000 n
-0001195453 00000 n
-0001195520 00000 n
-0001195587 00000 n
-0001195653 00000 n
-0001890559 00000 n
-0001201907 00000 n
-0001197766 00000 n
-0001195909 00000 n
-0001197895 00000 n
-0001197961 00000 n
-0001198028 00000 n
-0001198095 00000 n
-0001198162 00000 n
-0001198229 00000 n
-0001198296 00000 n
-0001198363 00000 n
-0001198430 00000 n
-0001198496 00000 n
-0001198563 00000 n
-0001198630 00000 n
-0001198697 00000 n
-0001198764 00000 n
-0001198831 00000 n
-0001198898 00000 n
-0001198965 00000 n
-0001199032 00000 n
-0001199099 00000 n
-0001199165 00000 n
-0001199232 00000 n
-0001199299 00000 n
-0001199366 00000 n
-0001199433 00000 n
-0001199500 00000 n
-0001199567 00000 n
-0001199634 00000 n
-0001199701 00000 n
-0001199768 00000 n
-0001199834 00000 n
-0001199901 00000 n
-0001199968 00000 n
-0001200035 00000 n
-0001200102 00000 n
-0001200169 00000 n
-0001200236 00000 n
-0001200303 00000 n
-0001200370 00000 n
-0001200437 00000 n
-0001200504 00000 n
-0001200571 00000 n
-0001200637 00000 n
-0001200704 00000 n
-0001200771 00000 n
-0001200838 00000 n
-0001200905 00000 n
-0001200972 00000 n
-0001201039 00000 n
-0001201106 00000 n
-0001201173 00000 n
-0001201240 00000 n
-0001201307 00000 n
-0001201373 00000 n
-0001201440 00000 n
-0001201507 00000 n
-0001201574 00000 n
-0001201641 00000 n
-0001201708 00000 n
-0001201775 00000 n
-0001201841 00000 n
-0001208429 00000 n
-0001204220 00000 n
-0001202072 00000 n
-0001204349 00000 n
-0001204415 00000 n
-0001204482 00000 n
-0001204549 00000 n
-0001204616 00000 n
-0001204683 00000 n
-0001204750 00000 n
-0001204817 00000 n
-0001204884 00000 n
-0001204951 00000 n
-0001205018 00000 n
-0001205085 00000 n
-0001205152 00000 n
-0001205219 00000 n
-0001205286 00000 n
-0001205353 00000 n
-0001205420 00000 n
-0001205487 00000 n
-0001205554 00000 n
-0001205621 00000 n
-0001205688 00000 n
-0001205755 00000 n
-0001205822 00000 n
-0001205889 00000 n
-0001205956 00000 n
-0001206023 00000 n
-0001206090 00000 n
-0001206157 00000 n
-0001206224 00000 n
-0001206291 00000 n
-0001206358 00000 n
-0001206425 00000 n
-0001206492 00000 n
-0001206559 00000 n
-0001206626 00000 n
-0001206693 00000 n
-0001206760 00000 n
-0001206827 00000 n
-0001206894 00000 n
-0001206961 00000 n
-0001207027 00000 n
-0001207094 00000 n
-0001207161 00000 n
-0001207228 00000 n
-0001207295 00000 n
-0001207362 00000 n
-0001207428 00000 n
-0001207495 00000 n
-0001207562 00000 n
-0001207629 00000 n
-0001207696 00000 n
-0001207763 00000 n
-0001207829 00000 n
-0001207896 00000 n
-0001207963 00000 n
-0001208030 00000 n
-0001208097 00000 n
-0001208164 00000 n
-0001208230 00000 n
-0001208297 00000 n
-0001208363 00000 n
-0001215147 00000 n
-0001210874 00000 n
-0001208594 00000 n
-0001211003 00000 n
-0001211069 00000 n
-0001211136 00000 n
-0001211203 00000 n
-0001211270 00000 n
-0001211337 00000 n
-0001211404 00000 n
-0001211471 00000 n
-0001211538 00000 n
-0001211605 00000 n
-0001211671 00000 n
-0001211738 00000 n
-0001211805 00000 n
-0001211872 00000 n
-0001211939 00000 n
-0001212006 00000 n
-0001212073 00000 n
-0001212140 00000 n
-0001212207 00000 n
-0001212274 00000 n
-0001212340 00000 n
-0001212407 00000 n
-0001212474 00000 n
-0001212541 00000 n
-0001212608 00000 n
-0001212675 00000 n
-0001212742 00000 n
-0001212809 00000 n
-0001212876 00000 n
-0001212942 00000 n
-0001213009 00000 n
-0001213076 00000 n
-0001213143 00000 n
-0001213210 00000 n
-0001213277 00000 n
-0001213344 00000 n
-0001213411 00000 n
-0001213478 00000 n
-0001213545 00000 n
-0001213611 00000 n
-0001213678 00000 n
-0001213745 00000 n
-0001213812 00000 n
-0001213879 00000 n
-0001213946 00000 n
-0001214013 00000 n
-0001214080 00000 n
-0001214147 00000 n
-0001214214 00000 n
-0001214281 00000 n
-0001214348 00000 n
-0001214414 00000 n
-0001214480 00000 n
-0001214547 00000 n
-0001214614 00000 n
-0001214681 00000 n
-0001214748 00000 n
-0001214815 00000 n
-0001214882 00000 n
-0001214949 00000 n
-0001215016 00000 n
-0001215082 00000 n
-0001222235 00000 n
-0001218029 00000 n
-0001215312 00000 n
-0001218158 00000 n
-0001218224 00000 n
-0001218291 00000 n
-0001218358 00000 n
-0001218425 00000 n
-0001218492 00000 n
-0001218559 00000 n
-0001218626 00000 n
-0001218693 00000 n
-0001218760 00000 n
-0001218827 00000 n
-0001218894 00000 n
-0001218960 00000 n
-0001219027 00000 n
-0001219094 00000 n
-0001219161 00000 n
-0001219228 00000 n
-0001219295 00000 n
-0001219362 00000 n
-0001219429 00000 n
-0001219496 00000 n
-0001219563 00000 n
-0001219629 00000 n
-0001219696 00000 n
-0001219763 00000 n
-0001219830 00000 n
-0001219897 00000 n
-0001219964 00000 n
-0001220031 00000 n
-0001220098 00000 n
-0001220165 00000 n
-0001220232 00000 n
-0001220299 00000 n
-0001220365 00000 n
-0001220432 00000 n
-0001220499 00000 n
-0001220566 00000 n
-0001220633 00000 n
-0001220700 00000 n
-0001220767 00000 n
-0001220834 00000 n
-0001220901 00000 n
-0001220968 00000 n
-0001221034 00000 n
-0001221100 00000 n
-0001221167 00000 n
-0001221234 00000 n
-0001221301 00000 n
-0001221368 00000 n
-0001221435 00000 n
-0001221502 00000 n
-0001221569 00000 n
-0001221636 00000 n
-0001221703 00000 n
-0001221770 00000 n
-0001221837 00000 n
-0001221902 00000 n
-0001221969 00000 n
-0001222036 00000 n
-0001222103 00000 n
-0001222169 00000 n
-0001228859 00000 n
-0001224651 00000 n
-0001222400 00000 n
-0001224780 00000 n
-0001224846 00000 n
-0001224913 00000 n
-0001224980 00000 n
-0001225047 00000 n
-0001225114 00000 n
-0001225181 00000 n
-0001225248 00000 n
-0001225315 00000 n
-0001225382 00000 n
-0001225449 00000 n
-0001225516 00000 n
-0001225582 00000 n
-0001225649 00000 n
-0001225716 00000 n
-0001225783 00000 n
-0001225850 00000 n
-0001225917 00000 n
-0001225984 00000 n
-0001226051 00000 n
-0001226118 00000 n
-0001226185 00000 n
-0001226251 00000 n
-0001226318 00000 n
-0001226385 00000 n
-0001226452 00000 n
-0001226519 00000 n
-0001226586 00000 n
-0001226653 00000 n
-0001226720 00000 n
-0001226787 00000 n
-0001226853 00000 n
-0001226920 00000 n
-0001226986 00000 n
-0001227053 00000 n
-0001227120 00000 n
-0001227187 00000 n
-0001227254 00000 n
-0001227321 00000 n
-0001227388 00000 n
-0001227455 00000 n
-0001227522 00000 n
-0001227589 00000 n
-0001227655 00000 n
-0001227722 00000 n
-0001227789 00000 n
-0001227856 00000 n
-0001227923 00000 n
-0001227990 00000 n
-0001228057 00000 n
-0001228124 00000 n
-0001228191 00000 n
-0001228258 00000 n
-0001228325 00000 n
-0001228392 00000 n
-0001228459 00000 n
-0001228526 00000 n
-0001228593 00000 n
-0001228660 00000 n
-0001228727 00000 n
-0001228793 00000 n
-0001235502 00000 n
-0001231229 00000 n
-0001229024 00000 n
-0001231358 00000 n
-0001231424 00000 n
-0001231491 00000 n
-0001231558 00000 n
-0001231625 00000 n
-0001231692 00000 n
-0001231758 00000 n
-0001231825 00000 n
-0001231892 00000 n
-0001231959 00000 n
-0001232026 00000 n
-0001232093 00000 n
-0001232160 00000 n
-0001232227 00000 n
-0001232294 00000 n
-0001232361 00000 n
-0001232428 00000 n
-0001232495 00000 n
-0001232562 00000 n
-0001232629 00000 n
-0001232695 00000 n
-0001232762 00000 n
-0001232829 00000 n
-0001232896 00000 n
-0001232963 00000 n
-0001233029 00000 n
-0001233096 00000 n
-0001233163 00000 n
-0001233230 00000 n
-0001233297 00000 n
-0001233364 00000 n
-0001233431 00000 n
-0001233498 00000 n
-0001233565 00000 n
-0001233632 00000 n
-0001233699 00000 n
-0001233766 00000 n
-0001233833 00000 n
-0001233900 00000 n
-0001233967 00000 n
-0001234033 00000 n
-0001234100 00000 n
-0001234167 00000 n
-0001234234 00000 n
-0001234301 00000 n
-0001234367 00000 n
-0001234434 00000 n
-0001234501 00000 n
-0001234568 00000 n
-0001234635 00000 n
-0001234701 00000 n
-0001234768 00000 n
-0001234835 00000 n
-0001234902 00000 n
-0001234969 00000 n
-0001235036 00000 n
-0001235102 00000 n
-0001235169 00000 n
-0001235236 00000 n
-0001235303 00000 n
-0001235370 00000 n
-0001235436 00000 n
-0001241876 00000 n
-0001237667 00000 n
-0001235667 00000 n
-0001237796 00000 n
-0001237862 00000 n
-0001237929 00000 n
-0001237996 00000 n
-0001238063 00000 n
-0001238130 00000 n
-0001238197 00000 n
-0001238264 00000 n
-0001238331 00000 n
-0001238398 00000 n
-0001238465 00000 n
-0001238531 00000 n
-0001238598 00000 n
-0001238665 00000 n
-0001238732 00000 n
-0001238799 00000 n
-0001238866 00000 n
-0001238933 00000 n
-0001239000 00000 n
-0001239067 00000 n
-0001239134 00000 n
-0001239201 00000 n
-0001239267 00000 n
-0001239334 00000 n
-0001239401 00000 n
-0001239468 00000 n
-0001239535 00000 n
-0001239602 00000 n
-0001239669 00000 n
-0001239736 00000 n
-0001239803 00000 n
-0001239870 00000 n
-0001239937 00000 n
-0001240003 00000 n
-0001240070 00000 n
-0001240137 00000 n
-0001240204 00000 n
-0001240271 00000 n
-0001240338 00000 n
-0001240405 00000 n
-0001240472 00000 n
-0001240539 00000 n
-0001240606 00000 n
-0001240673 00000 n
-0001240739 00000 n
-0001240806 00000 n
-0001240873 00000 n
-0001240940 00000 n
-0001241007 00000 n
-0001241074 00000 n
-0001241141 00000 n
-0001241208 00000 n
-0001241275 00000 n
-0001241342 00000 n
-0001241409 00000 n
-0001241476 00000 n
-0001241543 00000 n
-0001241610 00000 n
-0001241677 00000 n
-0001241744 00000 n
-0001241810 00000 n
-0001248351 00000 n
-0001244144 00000 n
-0001242041 00000 n
-0001244273 00000 n
-0001244339 00000 n
-0001244406 00000 n
-0001244473 00000 n
-0001244540 00000 n
-0001244607 00000 n
-0001244674 00000 n
-0001244741 00000 n
-0001244808 00000 n
-0001244875 00000 n
-0001244942 00000 n
-0001245008 00000 n
-0001245075 00000 n
-0001245142 00000 n
-0001245209 00000 n
-0001245276 00000 n
-0001245343 00000 n
-0001245410 00000 n
-0001245477 00000 n
-0001245544 00000 n
-0001245611 00000 n
-0001245677 00000 n
-0001245744 00000 n
-0001245811 00000 n
-0001245878 00000 n
-0001245945 00000 n
-0001246012 00000 n
-0001246079 00000 n
-0001246146 00000 n
-0001246213 00000 n
-0001246280 00000 n
-0001246346 00000 n
-0001246413 00000 n
-0001246479 00000 n
-0001246546 00000 n
-0001246613 00000 n
-0001246680 00000 n
-0001246747 00000 n
-0001246814 00000 n
-0001246881 00000 n
-0001246948 00000 n
-0001247015 00000 n
-0001247082 00000 n
-0001247148 00000 n
-0001247215 00000 n
-0001247282 00000 n
-0001247349 00000 n
-0001247416 00000 n
-0001247483 00000 n
-0001247550 00000 n
-0001247617 00000 n
-0001247684 00000 n
-0001247751 00000 n
-0001247817 00000 n
-0001247884 00000 n
-0001247951 00000 n
-0001248018 00000 n
-0001248085 00000 n
-0001248152 00000 n
-0001248219 00000 n
-0001248285 00000 n
-0001254985 00000 n
-0001250777 00000 n
-0001248516 00000 n
-0001250906 00000 n
-0001250972 00000 n
-0001251039 00000 n
-0001251106 00000 n
-0001251173 00000 n
-0001251240 00000 n
-0001251307 00000 n
-0001251374 00000 n
-0001251441 00000 n
-0001251508 00000 n
-0001251575 00000 n
-0001251641 00000 n
-0001251708 00000 n
-0001251775 00000 n
-0001251842 00000 n
-0001251909 00000 n
-0001251976 00000 n
-0001252043 00000 n
-0001252110 00000 n
-0001252177 00000 n
-0001252244 00000 n
-0001252310 00000 n
-0001252377 00000 n
-0001252444 00000 n
-0001252511 00000 n
-0001252578 00000 n
-0001252645 00000 n
-0001252712 00000 n
-0001252779 00000 n
-0001252846 00000 n
-0001252913 00000 n
-0001252979 00000 n
-0001253046 00000 n
-0001253112 00000 n
-0001253179 00000 n
-0001253246 00000 n
-0001253313 00000 n
-0001253380 00000 n
-0001253447 00000 n
-0001253514 00000 n
-0001253581 00000 n
-0001253648 00000 n
-0001253715 00000 n
-0001253781 00000 n
-0001253848 00000 n
-0001253915 00000 n
-0001253982 00000 n
-0001254049 00000 n
-0001254116 00000 n
-0001254183 00000 n
-0001254250 00000 n
-0001254317 00000 n
-0001254384 00000 n
-0001254451 00000 n
-0001254518 00000 n
-0001254585 00000 n
-0001254652 00000 n
-0001254719 00000 n
-0001254786 00000 n
-0001254853 00000 n
-0001254919 00000 n
-0001261270 00000 n
-0001256930 00000 n
-0001255150 00000 n
-0001257059 00000 n
-0001257125 00000 n
-0001257192 00000 n
-0001257259 00000 n
-0001257326 00000 n
-0001257393 00000 n
-0001257460 00000 n
-0001257527 00000 n
-0001257594 00000 n
-0001257661 00000 n
-0001257727 00000 n
-0001257794 00000 n
-0001257861 00000 n
-0001257928 00000 n
-0001257995 00000 n
-0001258062 00000 n
-0001258129 00000 n
-0001258196 00000 n
-0001258263 00000 n
-0001258330 00000 n
-0001258396 00000 n
-0001258463 00000 n
-0001258530 00000 n
-0001258597 00000 n
-0001258664 00000 n
-0001258731 00000 n
-0001258798 00000 n
-0001258865 00000 n
-0001258932 00000 n
-0001258999 00000 n
-0001259065 00000 n
-0001259132 00000 n
-0001259199 00000 n
-0001259266 00000 n
-0001259333 00000 n
-0001259400 00000 n
-0001259467 00000 n
-0001259534 00000 n
-0001259601 00000 n
-0001259667 00000 n
-0001259734 00000 n
-0001259800 00000 n
-0001259867 00000 n
-0001259934 00000 n
-0001260001 00000 n
-0001260068 00000 n
-0001260135 00000 n
-0001260202 00000 n
-0001260269 00000 n
-0001260336 00000 n
-0001260402 00000 n
-0001260469 00000 n
-0001260536 00000 n
-0001260603 00000 n
-0001260670 00000 n
-0001260737 00000 n
-0001260804 00000 n
-0001260871 00000 n
-0001260938 00000 n
-0001261005 00000 n
-0001261071 00000 n
-0001261138 00000 n
-0001261204 00000 n
-0001890735 00000 n
-0001267836 00000 n
-0001263425 00000 n
-0001261435 00000 n
-0001263554 00000 n
-0001263620 00000 n
-0001263687 00000 n
-0001263754 00000 n
-0001263821 00000 n
-0001263888 00000 n
-0001263955 00000 n
-0001264022 00000 n
-0001264089 00000 n
-0001264156 00000 n
-0001264222 00000 n
-0001264289 00000 n
-0001264356 00000 n
-0001264423 00000 n
-0001264490 00000 n
-0001264557 00000 n
-0001264624 00000 n
-0001264691 00000 n
-0001264758 00000 n
-0001264825 00000 n
-0001264892 00000 n
-0001264959 00000 n
-0001265026 00000 n
-0001265093 00000 n
-0001265160 00000 n
-0001265227 00000 n
-0001265294 00000 n
-0001265361 00000 n
-0001265428 00000 n
-0001265495 00000 n
-0001265562 00000 n
-0001265629 00000 n
-0001265696 00000 n
-0001265763 00000 n
-0001265830 00000 n
-0001265897 00000 n
-0001265964 00000 n
-0001266031 00000 n
-0001266098 00000 n
-0001266164 00000 n
-0001266231 00000 n
-0001266298 00000 n
-0001266365 00000 n
-0001266432 00000 n
-0001266499 00000 n
-0001266566 00000 n
-0001266633 00000 n
-0001266700 00000 n
-0001266767 00000 n
-0001266834 00000 n
-0001266901 00000 n
-0001266968 00000 n
-0001267035 00000 n
-0001267102 00000 n
-0001267169 00000 n
-0001267236 00000 n
-0001267303 00000 n
-0001267370 00000 n
-0001267436 00000 n
-0001267503 00000 n
-0001267570 00000 n
-0001267637 00000 n
-0001267704 00000 n
-0001267770 00000 n
-0001274122 00000 n
-0001269851 00000 n
-0001268001 00000 n
-0001269980 00000 n
-0001270046 00000 n
-0001270113 00000 n
-0001270180 00000 n
-0001270247 00000 n
-0001270314 00000 n
-0001270381 00000 n
-0001270448 00000 n
-0001270515 00000 n
-0001270582 00000 n
-0001270648 00000 n
-0001270715 00000 n
-0001270782 00000 n
-0001270849 00000 n
-0001270916 00000 n
-0001270983 00000 n
-0001271050 00000 n
-0001271117 00000 n
-0001271184 00000 n
-0001271250 00000 n
-0001271317 00000 n
-0001271384 00000 n
-0001271451 00000 n
-0001271518 00000 n
-0001271585 00000 n
-0001271652 00000 n
-0001271719 00000 n
-0001271786 00000 n
-0001271851 00000 n
-0001271918 00000 n
-0001271985 00000 n
-0001272052 00000 n
-0001272119 00000 n
-0001272186 00000 n
-0001272253 00000 n
-0001272320 00000 n
-0001272387 00000 n
-0001272453 00000 n
-0001272520 00000 n
-0001272587 00000 n
-0001272654 00000 n
-0001272721 00000 n
-0001272788 00000 n
-0001272855 00000 n
-0001272922 00000 n
-0001272989 00000 n
-0001273055 00000 n
-0001273122 00000 n
-0001273189 00000 n
-0001273256 00000 n
-0001273323 00000 n
-0001273390 00000 n
-0001273457 00000 n
-0001273524 00000 n
-0001273591 00000 n
-0001273657 00000 n
-0001273724 00000 n
-0001273789 00000 n
-0001273856 00000 n
-0001273923 00000 n
-0001273990 00000 n
-0001274056 00000 n
-0001280401 00000 n
-0001276128 00000 n
-0001274300 00000 n
-0001276257 00000 n
-0001276323 00000 n
-0001276390 00000 n
-0001276457 00000 n
-0001276524 00000 n
-0001276591 00000 n
-0001276658 00000 n
-0001276725 00000 n
-0001276792 00000 n
-0001276859 00000 n
-0001276925 00000 n
-0001276992 00000 n
-0001277059 00000 n
-0001277126 00000 n
-0001277193 00000 n
-0001277260 00000 n
-0001277327 00000 n
-0001277394 00000 n
-0001277461 00000 n
-0001277527 00000 n
-0001277594 00000 n
-0001277661 00000 n
-0001277728 00000 n
-0001277795 00000 n
-0001277862 00000 n
-0001277929 00000 n
-0001277996 00000 n
-0001278063 00000 n
-0001278128 00000 n
-0001278195 00000 n
-0001278262 00000 n
-0001278329 00000 n
-0001278396 00000 n
-0001278463 00000 n
-0001278530 00000 n
-0001278597 00000 n
-0001278664 00000 n
-0001278730 00000 n
-0001278797 00000 n
-0001278864 00000 n
-0001278931 00000 n
-0001278998 00000 n
-0001279065 00000 n
-0001279132 00000 n
-0001279199 00000 n
-0001279266 00000 n
-0001279332 00000 n
-0001279399 00000 n
-0001279466 00000 n
-0001279533 00000 n
-0001279600 00000 n
-0001279667 00000 n
-0001279734 00000 n
-0001279801 00000 n
-0001279868 00000 n
-0001279935 00000 n
-0001280001 00000 n
-0001280068 00000 n
-0001280135 00000 n
-0001280202 00000 n
-0001280269 00000 n
-0001280335 00000 n
-0001286594 00000 n
-0001282188 00000 n
-0001280579 00000 n
-0001282317 00000 n
+0001190490 00000 n
+0001190556 00000 n
+0001190623 00000 n
+0001190690 00000 n
+0001190757 00000 n
+0001190824 00000 n
+0001190891 00000 n
+0001190958 00000 n
+0001191025 00000 n
+0001191092 00000 n
+0001191158 00000 n
+0001191225 00000 n
+0001191356 00000 n
+0001191423 00000 n
+0001191490 00000 n
+0001191557 00000 n
+0001191624 00000 n
+0001191691 00000 n
+0001191758 00000 n
+0001191825 00000 n
+0001191892 00000 n
+0001191959 00000 n
+0001192026 00000 n
+0001192093 00000 n
+0001192159 00000 n
+0001192290 00000 n
+0001192357 00000 n
+0001192424 00000 n
+0001192491 00000 n
+0001192558 00000 n
+0001192625 00000 n
+0001192692 00000 n
+0001192759 00000 n
+0001192825 00000 n
+0001192892 00000 n
+0001192959 00000 n
+0001193026 00000 n
+0001193093 00000 n
+0001193160 00000 n
+0001894808 00000 n
+0001199783 00000 n
+0001195845 00000 n
+0001193431 00000 n
+0001195974 00000 n
+0001196040 00000 n
+0001196107 00000 n
+0001196174 00000 n
+0001196241 00000 n
+0001196308 00000 n
+0001196375 00000 n
+0001196442 00000 n
+0001196509 00000 n
+0001196576 00000 n
+0001196643 00000 n
+0001196710 00000 n
+0001196777 00000 n
+0001196844 00000 n
+0001196909 00000 n
+0001196976 00000 n
+0001197043 00000 n
+0001197110 00000 n
+0001197177 00000 n
+0001197244 00000 n
+0001197311 00000 n
+0001197378 00000 n
+0001197445 00000 n
+0001197512 00000 n
+0001197579 00000 n
+0001197645 00000 n
+0001197712 00000 n
+0001197779 00000 n
+0001197846 00000 n
+0001197913 00000 n
+0001197980 00000 n
+0001198047 00000 n
+0001198114 00000 n
+0001198181 00000 n
+0001198248 00000 n
+0001198315 00000 n
+0001198381 00000 n
+0001198447 00000 n
+0001198514 00000 n
+0001198581 00000 n
+0001198648 00000 n
+0001198715 00000 n
+0001198782 00000 n
+0001198849 00000 n
+0001198916 00000 n
+0001198983 00000 n
+0001199050 00000 n
+0001199116 00000 n
+0001199183 00000 n
+0001199250 00000 n
+0001199317 00000 n
+0001199384 00000 n
+0001199451 00000 n
+0001199518 00000 n
+0001199585 00000 n
+0001199652 00000 n
+0001199718 00000 n
+0001205971 00000 n
+0001201830 00000 n
+0001199974 00000 n
+0001201959 00000 n
+0001202025 00000 n
+0001202092 00000 n
+0001202159 00000 n
+0001202226 00000 n
+0001202293 00000 n
+0001202360 00000 n
+0001202427 00000 n
+0001202494 00000 n
+0001202560 00000 n
+0001202627 00000 n
+0001202694 00000 n
+0001202761 00000 n
+0001202828 00000 n
+0001202895 00000 n
+0001202962 00000 n
+0001203029 00000 n
+0001203096 00000 n
+0001203163 00000 n
+0001203229 00000 n
+0001203296 00000 n
+0001203363 00000 n
+0001203430 00000 n
+0001203497 00000 n
+0001203564 00000 n
+0001203631 00000 n
+0001203698 00000 n
+0001203765 00000 n
+0001203832 00000 n
+0001203898 00000 n
+0001203965 00000 n
+0001204032 00000 n
+0001204099 00000 n
+0001204166 00000 n
+0001204233 00000 n
+0001204300 00000 n
+0001204367 00000 n
+0001204434 00000 n
+0001204501 00000 n
+0001204568 00000 n
+0001204635 00000 n
+0001204701 00000 n
+0001204768 00000 n
+0001204835 00000 n
+0001204902 00000 n
+0001204969 00000 n
+0001205036 00000 n
+0001205103 00000 n
+0001205170 00000 n
+0001205237 00000 n
+0001205304 00000 n
+0001205371 00000 n
+0001205437 00000 n
+0001205504 00000 n
+0001205571 00000 n
+0001205638 00000 n
+0001205705 00000 n
+0001205772 00000 n
+0001205839 00000 n
+0001205905 00000 n
+0001212489 00000 n
+0001208280 00000 n
+0001206136 00000 n
+0001208409 00000 n
+0001208475 00000 n
+0001208542 00000 n
+0001208609 00000 n
+0001208676 00000 n
+0001208743 00000 n
+0001208810 00000 n
+0001208877 00000 n
+0001208944 00000 n
+0001209011 00000 n
+0001209078 00000 n
+0001209145 00000 n
+0001209212 00000 n
+0001209279 00000 n
+0001209346 00000 n
+0001209413 00000 n
+0001209480 00000 n
+0001209547 00000 n
+0001209614 00000 n
+0001209681 00000 n
+0001209748 00000 n
+0001209815 00000 n
+0001209882 00000 n
+0001209949 00000 n
+0001210016 00000 n
+0001210083 00000 n
+0001210150 00000 n
+0001210217 00000 n
+0001210284 00000 n
+0001210351 00000 n
+0001210418 00000 n
+0001210485 00000 n
+0001210552 00000 n
+0001210619 00000 n
+0001210686 00000 n
+0001210753 00000 n
+0001210820 00000 n
+0001210887 00000 n
+0001210954 00000 n
+0001211021 00000 n
+0001211087 00000 n
+0001211154 00000 n
+0001211221 00000 n
+0001211288 00000 n
+0001211355 00000 n
+0001211422 00000 n
+0001211488 00000 n
+0001211555 00000 n
+0001211622 00000 n
+0001211689 00000 n
+0001211756 00000 n
+0001211823 00000 n
+0001211889 00000 n
+0001211956 00000 n
+0001212023 00000 n
+0001212090 00000 n
+0001212157 00000 n
+0001212224 00000 n
+0001212290 00000 n
+0001212357 00000 n
+0001212423 00000 n
+0001219209 00000 n
+0001214936 00000 n
+0001212654 00000 n
+0001215065 00000 n
+0001215131 00000 n
+0001215198 00000 n
+0001215265 00000 n
+0001215332 00000 n
+0001215399 00000 n
+0001215466 00000 n
+0001215533 00000 n
+0001215600 00000 n
+0001215667 00000 n
+0001215733 00000 n
+0001215800 00000 n
+0001215867 00000 n
+0001215934 00000 n
+0001216001 00000 n
+0001216068 00000 n
+0001216135 00000 n
+0001216202 00000 n
+0001216269 00000 n
+0001216336 00000 n
+0001216402 00000 n
+0001216469 00000 n
+0001216536 00000 n
+0001216603 00000 n
+0001216670 00000 n
+0001216737 00000 n
+0001216804 00000 n
+0001216871 00000 n
+0001216938 00000 n
+0001217004 00000 n
+0001217071 00000 n
+0001217138 00000 n
+0001217205 00000 n
+0001217272 00000 n
+0001217339 00000 n
+0001217406 00000 n
+0001217473 00000 n
+0001217540 00000 n
+0001217607 00000 n
+0001217673 00000 n
+0001217740 00000 n
+0001217807 00000 n
+0001217874 00000 n
+0001217941 00000 n
+0001218008 00000 n
+0001218075 00000 n
+0001218142 00000 n
+0001218209 00000 n
+0001218276 00000 n
+0001218343 00000 n
+0001218410 00000 n
+0001218476 00000 n
+0001218542 00000 n
+0001218609 00000 n
+0001218676 00000 n
+0001218743 00000 n
+0001218810 00000 n
+0001218877 00000 n
+0001218944 00000 n
+0001219011 00000 n
+0001219078 00000 n
+0001219144 00000 n
+0001226298 00000 n
+0001222092 00000 n
+0001219374 00000 n
+0001222221 00000 n
+0001222287 00000 n
+0001222354 00000 n
+0001222421 00000 n
+0001222488 00000 n
+0001222555 00000 n
+0001222622 00000 n
+0001222689 00000 n
+0001222756 00000 n
+0001222823 00000 n
+0001222890 00000 n
+0001222957 00000 n
+0001223023 00000 n
+0001223090 00000 n
+0001223157 00000 n
+0001223224 00000 n
+0001223291 00000 n
+0001223358 00000 n
+0001223425 00000 n
+0001223492 00000 n
+0001223559 00000 n
+0001223626 00000 n
+0001223692 00000 n
+0001223759 00000 n
+0001223826 00000 n
+0001223893 00000 n
+0001223960 00000 n
+0001224027 00000 n
+0001224094 00000 n
+0001224161 00000 n
+0001224228 00000 n
+0001224295 00000 n
+0001224362 00000 n
+0001224428 00000 n
+0001224495 00000 n
+0001224562 00000 n
+0001224629 00000 n
+0001224696 00000 n
+0001224763 00000 n
+0001224830 00000 n
+0001224897 00000 n
+0001224964 00000 n
+0001225031 00000 n
+0001225097 00000 n
+0001225163 00000 n
+0001225230 00000 n
+0001225297 00000 n
+0001225364 00000 n
+0001225431 00000 n
+0001225498 00000 n
+0001225565 00000 n
+0001225632 00000 n
+0001225699 00000 n
+0001225766 00000 n
+0001225833 00000 n
+0001225900 00000 n
+0001225965 00000 n
+0001226032 00000 n
+0001226099 00000 n
+0001226166 00000 n
+0001226232 00000 n
+0001232921 00000 n
+0001228713 00000 n
+0001226463 00000 n
+0001228842 00000 n
+0001228908 00000 n
+0001228975 00000 n
+0001229042 00000 n
+0001229109 00000 n
+0001229176 00000 n
+0001229243 00000 n
+0001229310 00000 n
+0001229377 00000 n
+0001229444 00000 n
+0001229511 00000 n
+0001229578 00000 n
+0001229644 00000 n
+0001229711 00000 n
+0001229778 00000 n
+0001229845 00000 n
+0001229912 00000 n
+0001229979 00000 n
+0001230046 00000 n
+0001230113 00000 n
+0001230180 00000 n
+0001230247 00000 n
+0001230313 00000 n
+0001230380 00000 n
+0001230447 00000 n
+0001230514 00000 n
+0001230581 00000 n
+0001230648 00000 n
+0001230715 00000 n
+0001230782 00000 n
+0001230849 00000 n
+0001230915 00000 n
+0001230982 00000 n
+0001231048 00000 n
+0001231115 00000 n
+0001231182 00000 n
+0001231249 00000 n
+0001231316 00000 n
+0001231383 00000 n
+0001231450 00000 n
+0001231517 00000 n
+0001231584 00000 n
+0001231651 00000 n
+0001231717 00000 n
+0001231784 00000 n
+0001231851 00000 n
+0001231918 00000 n
+0001231985 00000 n
+0001232052 00000 n
+0001232119 00000 n
+0001232186 00000 n
+0001232253 00000 n
+0001232320 00000 n
+0001232387 00000 n
+0001232454 00000 n
+0001232521 00000 n
+0001232588 00000 n
+0001232655 00000 n
+0001232722 00000 n
+0001232789 00000 n
+0001232855 00000 n
+0001239563 00000 n
+0001235290 00000 n
+0001233086 00000 n
+0001235419 00000 n
+0001235485 00000 n
+0001235552 00000 n
+0001235619 00000 n
+0001235686 00000 n
+0001235753 00000 n
+0001235819 00000 n
+0001235886 00000 n
+0001235953 00000 n
+0001236020 00000 n
+0001236087 00000 n
+0001236154 00000 n
+0001236221 00000 n
+0001236288 00000 n
+0001236355 00000 n
+0001236422 00000 n
+0001236489 00000 n
+0001236556 00000 n
+0001236623 00000 n
+0001236690 00000 n
+0001236756 00000 n
+0001236823 00000 n
+0001236890 00000 n
+0001236957 00000 n
+0001237024 00000 n
+0001237090 00000 n
+0001237157 00000 n
+0001237224 00000 n
+0001237291 00000 n
+0001237358 00000 n
+0001237425 00000 n
+0001237492 00000 n
+0001237559 00000 n
+0001237626 00000 n
+0001237693 00000 n
+0001237760 00000 n
+0001237827 00000 n
+0001237894 00000 n
+0001237961 00000 n
+0001238028 00000 n
+0001238094 00000 n
+0001238161 00000 n
+0001238228 00000 n
+0001238295 00000 n
+0001238362 00000 n
+0001238428 00000 n
+0001238495 00000 n
+0001238562 00000 n
+0001238629 00000 n
+0001238696 00000 n
+0001238762 00000 n
+0001238829 00000 n
+0001238896 00000 n
+0001238963 00000 n
+0001239030 00000 n
+0001239097 00000 n
+0001239163 00000 n
+0001239230 00000 n
+0001239297 00000 n
+0001239364 00000 n
+0001239431 00000 n
+0001239497 00000 n
+0001245938 00000 n
+0001241729 00000 n
+0001239728 00000 n
+0001241858 00000 n
+0001241924 00000 n
+0001241991 00000 n
+0001242058 00000 n
+0001242125 00000 n
+0001242192 00000 n
+0001242259 00000 n
+0001242326 00000 n
+0001242393 00000 n
+0001242460 00000 n
+0001242527 00000 n
+0001242593 00000 n
+0001242660 00000 n
+0001242727 00000 n
+0001242794 00000 n
+0001242861 00000 n
+0001242928 00000 n
+0001242995 00000 n
+0001243062 00000 n
+0001243129 00000 n
+0001243196 00000 n
+0001243263 00000 n
+0001243329 00000 n
+0001243396 00000 n
+0001243463 00000 n
+0001243530 00000 n
+0001243597 00000 n
+0001243664 00000 n
+0001243731 00000 n
+0001243798 00000 n
+0001243865 00000 n
+0001243932 00000 n
+0001243999 00000 n
+0001244065 00000 n
+0001244132 00000 n
+0001244199 00000 n
+0001244266 00000 n
+0001244333 00000 n
+0001244400 00000 n
+0001244467 00000 n
+0001244534 00000 n
+0001244601 00000 n
+0001244668 00000 n
+0001244735 00000 n
+0001244801 00000 n
+0001244868 00000 n
+0001244935 00000 n
+0001245002 00000 n
+0001245069 00000 n
+0001245136 00000 n
+0001245203 00000 n
+0001245270 00000 n
+0001245337 00000 n
+0001245404 00000 n
+0001245471 00000 n
+0001245538 00000 n
+0001245605 00000 n
+0001245672 00000 n
+0001245739 00000 n
+0001245806 00000 n
+0001245872 00000 n
+0001252416 00000 n
+0001248209 00000 n
+0001246103 00000 n
+0001248338 00000 n
+0001248404 00000 n
+0001248471 00000 n
+0001248538 00000 n
+0001248605 00000 n
+0001248672 00000 n
+0001248739 00000 n
+0001248806 00000 n
+0001248873 00000 n
+0001248940 00000 n
+0001249007 00000 n
+0001249073 00000 n
+0001249140 00000 n
+0001249207 00000 n
+0001249274 00000 n
+0001249341 00000 n
+0001249408 00000 n
+0001249475 00000 n
+0001249542 00000 n
+0001249609 00000 n
+0001249676 00000 n
+0001249742 00000 n
+0001249809 00000 n
+0001249876 00000 n
+0001249943 00000 n
+0001250010 00000 n
+0001250077 00000 n
+0001250144 00000 n
+0001250211 00000 n
+0001250278 00000 n
+0001250345 00000 n
+0001250411 00000 n
+0001250478 00000 n
+0001250544 00000 n
+0001250611 00000 n
+0001250678 00000 n
+0001250745 00000 n
+0001250812 00000 n
+0001250879 00000 n
+0001250946 00000 n
+0001251013 00000 n
+0001251080 00000 n
+0001251147 00000 n
+0001251213 00000 n
+0001251280 00000 n
+0001251347 00000 n
+0001251414 00000 n
+0001251481 00000 n
+0001251548 00000 n
+0001251615 00000 n
+0001251682 00000 n
+0001251749 00000 n
+0001251816 00000 n
+0001251882 00000 n
+0001251949 00000 n
+0001252016 00000 n
+0001252083 00000 n
+0001252150 00000 n
+0001252217 00000 n
+0001252284 00000 n
+0001252350 00000 n
+0001259056 00000 n
+0001254848 00000 n
+0001252581 00000 n
+0001254977 00000 n
+0001255043 00000 n
+0001255110 00000 n
+0001255177 00000 n
+0001255244 00000 n
+0001255311 00000 n
+0001255378 00000 n
+0001255445 00000 n
+0001255512 00000 n
+0001255579 00000 n
+0001255646 00000 n
+0001255712 00000 n
+0001255779 00000 n
+0001255846 00000 n
+0001255913 00000 n
+0001255980 00000 n
+0001256047 00000 n
+0001256114 00000 n
+0001256181 00000 n
+0001256248 00000 n
+0001256315 00000 n
+0001256381 00000 n
+0001256448 00000 n
+0001256515 00000 n
+0001256582 00000 n
+0001256649 00000 n
+0001256716 00000 n
+0001256783 00000 n
+0001256850 00000 n
+0001256917 00000 n
+0001256984 00000 n
+0001257050 00000 n
+0001257117 00000 n
+0001257183 00000 n
+0001257250 00000 n
+0001257317 00000 n
+0001257384 00000 n
+0001257451 00000 n
+0001257518 00000 n
+0001257585 00000 n
+0001257652 00000 n
+0001257719 00000 n
+0001257786 00000 n
+0001257852 00000 n
+0001257919 00000 n
+0001257986 00000 n
+0001258053 00000 n
+0001258120 00000 n
+0001258187 00000 n
+0001258254 00000 n
+0001258321 00000 n
+0001258388 00000 n
+0001258455 00000 n
+0001258522 00000 n
+0001258589 00000 n
+0001258656 00000 n
+0001258723 00000 n
+0001258790 00000 n
+0001258857 00000 n
+0001258924 00000 n
+0001258990 00000 n
+0001894984 00000 n
+0001265311 00000 n
+0001260971 00000 n
+0001259221 00000 n
+0001261100 00000 n
+0001261166 00000 n
+0001261233 00000 n
+0001261300 00000 n
+0001261367 00000 n
+0001261434 00000 n
+0001261501 00000 n
+0001261568 00000 n
+0001261635 00000 n
+0001261702 00000 n
+0001261768 00000 n
+0001261835 00000 n
+0001261902 00000 n
+0001261969 00000 n
+0001262036 00000 n
+0001262103 00000 n
+0001262170 00000 n
+0001262237 00000 n
+0001262304 00000 n
+0001262371 00000 n
+0001262437 00000 n
+0001262504 00000 n
+0001262571 00000 n
+0001262638 00000 n
+0001262705 00000 n
+0001262772 00000 n
+0001262839 00000 n
+0001262906 00000 n
+0001262973 00000 n
+0001263040 00000 n
+0001263106 00000 n
+0001263173 00000 n
+0001263240 00000 n
+0001263307 00000 n
+0001263374 00000 n
+0001263441 00000 n
+0001263508 00000 n
+0001263575 00000 n
+0001263642 00000 n
+0001263708 00000 n
+0001263775 00000 n
+0001263841 00000 n
+0001263908 00000 n
+0001263975 00000 n
+0001264042 00000 n
+0001264109 00000 n
+0001264176 00000 n
+0001264243 00000 n
+0001264310 00000 n
+0001264377 00000 n
+0001264443 00000 n
+0001264510 00000 n
+0001264577 00000 n
+0001264644 00000 n
+0001264711 00000 n
+0001264778 00000 n
+0001264845 00000 n
+0001264912 00000 n
+0001264979 00000 n
+0001265046 00000 n
+0001265112 00000 n
+0001265179 00000 n
+0001265245 00000 n
+0001271885 00000 n
+0001267474 00000 n
+0001265476 00000 n
+0001267603 00000 n
+0001267669 00000 n
+0001267736 00000 n
+0001267803 00000 n
+0001267870 00000 n
+0001267937 00000 n
+0001268004 00000 n
+0001268071 00000 n
+0001268138 00000 n
+0001268205 00000 n
+0001268271 00000 n
+0001268338 00000 n
+0001268405 00000 n
+0001268472 00000 n
+0001268539 00000 n
+0001268606 00000 n
+0001268673 00000 n
+0001268740 00000 n
+0001268807 00000 n
+0001268874 00000 n
+0001268941 00000 n
+0001269008 00000 n
+0001269075 00000 n
+0001269142 00000 n
+0001269209 00000 n
+0001269276 00000 n
+0001269343 00000 n
+0001269410 00000 n
+0001269477 00000 n
+0001269544 00000 n
+0001269611 00000 n
+0001269678 00000 n
+0001269745 00000 n
+0001269812 00000 n
+0001269879 00000 n
+0001269946 00000 n
+0001270013 00000 n
+0001270080 00000 n
+0001270147 00000 n
+0001270213 00000 n
+0001270280 00000 n
+0001270347 00000 n
+0001270414 00000 n
+0001270481 00000 n
+0001270548 00000 n
+0001270615 00000 n
+0001270682 00000 n
+0001270749 00000 n
+0001270816 00000 n
+0001270883 00000 n
+0001270950 00000 n
+0001271017 00000 n
+0001271084 00000 n
+0001271151 00000 n
+0001271218 00000 n
+0001271285 00000 n
+0001271352 00000 n
+0001271419 00000 n
+0001271485 00000 n
+0001271552 00000 n
+0001271619 00000 n
+0001271686 00000 n
+0001271753 00000 n
+0001271819 00000 n
+0001278172 00000 n
+0001273901 00000 n
+0001272050 00000 n
+0001274030 00000 n
+0001274096 00000 n
+0001274163 00000 n
+0001274230 00000 n
+0001274297 00000 n
+0001274364 00000 n
+0001274431 00000 n
+0001274498 00000 n
+0001274565 00000 n
+0001274632 00000 n
+0001274698 00000 n
+0001274765 00000 n
+0001274832 00000 n
+0001274899 00000 n
+0001274966 00000 n
+0001275033 00000 n
+0001275100 00000 n
+0001275167 00000 n
+0001275234 00000 n
+0001275300 00000 n
+0001275367 00000 n
+0001275434 00000 n
+0001275501 00000 n
+0001275568 00000 n
+0001275635 00000 n
+0001275702 00000 n
+0001275769 00000 n
+0001275836 00000 n
+0001275901 00000 n
+0001275968 00000 n
+0001276035 00000 n
+0001276102 00000 n
+0001276169 00000 n
+0001276236 00000 n
+0001276303 00000 n
+0001276370 00000 n
+0001276437 00000 n
+0001276503 00000 n
+0001276570 00000 n
+0001276637 00000 n
+0001276704 00000 n
+0001276771 00000 n
+0001276838 00000 n
+0001276905 00000 n
+0001276972 00000 n
+0001277039 00000 n
+0001277105 00000 n
+0001277172 00000 n
+0001277239 00000 n
+0001277306 00000 n
+0001277373 00000 n
+0001277440 00000 n
+0001277507 00000 n
+0001277574 00000 n
+0001277641 00000 n
+0001277707 00000 n
+0001277774 00000 n
+0001277839 00000 n
+0001277906 00000 n
+0001277973 00000 n
+0001278040 00000 n
+0001278106 00000 n
+0001284455 00000 n
+0001280182 00000 n
+0001278350 00000 n
+0001280311 00000 n
+0001280377 00000 n
+0001280444 00000 n
+0001280511 00000 n
+0001280578 00000 n
+0001280645 00000 n
+0001280712 00000 n
+0001280779 00000 n
+0001280846 00000 n
+0001280913 00000 n
+0001280979 00000 n
+0001281046 00000 n
+0001281113 00000 n
+0001281180 00000 n
+0001281247 00000 n
+0001281314 00000 n
+0001281381 00000 n
+0001281448 00000 n
+0001281515 00000 n
+0001281581 00000 n
+0001281648 00000 n
+0001281715 00000 n
+0001281782 00000 n
+0001281849 00000 n
+0001281916 00000 n
+0001281983 00000 n
+0001282050 00000 n
+0001282117 00000 n
+0001282182 00000 n
+0001282249 00000 n
+0001282316 00000 n
0001282383 00000 n
0001282450 00000 n
0001282517 00000 n
0001282584 00000 n
0001282651 00000 n
0001282718 00000 n
-0001282785 00000 n
-0001282852 00000 n
-0001282919 00000 n
+0001282784 00000 n
+0001282851 00000 n
+0001282918 00000 n
0001282985 00000 n
0001283052 00000 n
0001283119 00000 n
0001283186 00000 n
0001283253 00000 n
0001283320 00000 n
-0001283387 00000 n
-0001283454 00000 n
-0001283521 00000 n
+0001283386 00000 n
+0001283453 00000 n
+0001283520 00000 n
0001283587 00000 n
0001283654 00000 n
0001283721 00000 n
@@ -52332,645 +52445,680 @@ xref
0001283855 00000 n
0001283922 00000 n
0001283989 00000 n
-0001284056 00000 n
-0001284123 00000 n
-0001284188 00000 n
-0001284255 00000 n
-0001284322 00000 n
+0001284055 00000 n
+0001284122 00000 n
+0001284189 00000 n
+0001284256 00000 n
+0001284323 00000 n
0001284389 00000 n
-0001284456 00000 n
-0001284523 00000 n
-0001284590 00000 n
-0001284657 00000 n
-0001284724 00000 n
-0001284790 00000 n
-0001284857 00000 n
-0001284924 00000 n
-0001284991 00000 n
-0001285058 00000 n
-0001285125 00000 n
-0001285192 00000 n
-0001285259 00000 n
-0001285326 00000 n
-0001285392 00000 n
-0001285459 00000 n
-0001285526 00000 n
-0001285593 00000 n
-0001285660 00000 n
-0001285727 00000 n
-0001285794 00000 n
-0001285861 00000 n
-0001285928 00000 n
-0001285994 00000 n
-0001286061 00000 n
-0001286128 00000 n
-0001286195 00000 n
-0001286262 00000 n
-0001286329 00000 n
-0001286396 00000 n
-0001286463 00000 n
-0001286528 00000 n
-0001292982 00000 n
-0001288575 00000 n
-0001286759 00000 n
-0001288704 00000 n
-0001288770 00000 n
-0001288837 00000 n
-0001288904 00000 n
-0001288971 00000 n
-0001289038 00000 n
-0001289105 00000 n
-0001289172 00000 n
-0001289239 00000 n
-0001289306 00000 n
-0001289372 00000 n
-0001289439 00000 n
-0001289506 00000 n
-0001289573 00000 n
-0001289640 00000 n
-0001289707 00000 n
-0001289774 00000 n
-0001289841 00000 n
-0001289908 00000 n
-0001289974 00000 n
-0001290041 00000 n
-0001290108 00000 n
-0001290175 00000 n
-0001290242 00000 n
-0001290309 00000 n
-0001290376 00000 n
-0001290443 00000 n
-0001290510 00000 n
-0001290575 00000 n
-0001290642 00000 n
-0001290709 00000 n
-0001290776 00000 n
-0001290843 00000 n
-0001290910 00000 n
-0001290977 00000 n
-0001291044 00000 n
-0001291111 00000 n
-0001291177 00000 n
-0001291244 00000 n
-0001291311 00000 n
-0001291378 00000 n
-0001291445 00000 n
-0001291512 00000 n
-0001291579 00000 n
-0001291646 00000 n
-0001291713 00000 n
-0001291779 00000 n
-0001291846 00000 n
-0001291913 00000 n
-0001291980 00000 n
-0001292047 00000 n
-0001292114 00000 n
-0001292181 00000 n
-0001292248 00000 n
-0001292315 00000 n
-0001292381 00000 n
-0001292448 00000 n
-0001292515 00000 n
-0001292582 00000 n
-0001292649 00000 n
-0001292716 00000 n
-0001292783 00000 n
-0001292850 00000 n
-0001292916 00000 n
-0001296281 00000 n
-0001294280 00000 n
-0001293147 00000 n
-0001294409 00000 n
-0001294475 00000 n
-0001294542 00000 n
-0001294609 00000 n
-0001294676 00000 n
-0001294743 00000 n
-0001294810 00000 n
-0001294877 00000 n
-0001294944 00000 n
-0001295011 00000 n
-0001295078 00000 n
-0001295144 00000 n
-0001295211 00000 n
-0001295278 00000 n
-0001295345 00000 n
-0001295412 00000 n
-0001295479 00000 n
-0001295546 00000 n
-0001295613 00000 n
-0001295680 00000 n
-0001295747 00000 n
-0001295813 00000 n
-0001295879 00000 n
-0001295946 00000 n
-0001296013 00000 n
-0001296080 00000 n
-0001296147 00000 n
-0001296214 00000 n
-0001298225 00000 n
-0001298381 00000 n
-0001298538 00000 n
-0001298695 00000 n
-0001298851 00000 n
-0001299008 00000 n
-0001299165 00000 n
-0001299322 00000 n
-0001299479 00000 n
-0001299636 00000 n
-0001299794 00000 n
-0001299952 00000 n
-0001300110 00000 n
-0001300266 00000 n
-0001300423 00000 n
-0001300581 00000 n
-0001300739 00000 n
-0001300897 00000 n
-0001301055 00000 n
-0001301213 00000 n
-0001301371 00000 n
-0001301528 00000 n
-0001301685 00000 n
-0001301842 00000 n
-0001301999 00000 n
-0001302157 00000 n
-0001302315 00000 n
-0001302473 00000 n
-0001302631 00000 n
-0001302789 00000 n
-0001304079 00000 n
-0001303074 00000 n
-0001297755 00000 n
-0001296446 00000 n
-0001302944 00000 n
-0001297902 00000 n
-0001304237 00000 n
-0001304395 00000 n
-0001304553 00000 n
-0001304711 00000 n
-0001304869 00000 n
-0001305027 00000 n
-0001305183 00000 n
-0001305341 00000 n
-0001305499 00000 n
-0001305723 00000 n
-0001303809 00000 n
-0001303226 00000 n
-0001305657 00000 n
-0001303956 00000 n
-0001880766 00000 n
-0001305989 00000 n
-0001880586 00000 n
-0001306023 00000 n
-0001879931 00000 n
-0001306105 00000 n
-0001880973 00000 n
-0001306203 00000 n
-0001880890 00000 n
-0001306237 00000 n
-0001306265 00000 n
-0001306611 00000 n
-0001881099 00000 n
-0001307049 00000 n
-0001307077 00000 n
-0001307267 00000 n
-0001307423 00000 n
-0001307515 00000 n
-0001307597 00000 n
-0001307679 00000 n
-0001308003 00000 n
-0001308273 00000 n
-0001308415 00000 n
-0001308855 00000 n
-0001308883 00000 n
-0001309127 00000 n
+0001290649 00000 n
+0001286243 00000 n
+0001284633 00000 n
+0001286372 00000 n
+0001286438 00000 n
+0001286505 00000 n
+0001286572 00000 n
+0001286639 00000 n
+0001286706 00000 n
+0001286773 00000 n
+0001286840 00000 n
+0001286907 00000 n
+0001286974 00000 n
+0001287040 00000 n
+0001287107 00000 n
+0001287174 00000 n
+0001287241 00000 n
+0001287308 00000 n
+0001287375 00000 n
+0001287442 00000 n
+0001287509 00000 n
+0001287576 00000 n
+0001287642 00000 n
+0001287709 00000 n
+0001287776 00000 n
+0001287843 00000 n
+0001287910 00000 n
+0001287977 00000 n
+0001288044 00000 n
+0001288111 00000 n
+0001288178 00000 n
+0001288243 00000 n
+0001288310 00000 n
+0001288377 00000 n
+0001288444 00000 n
+0001288511 00000 n
+0001288578 00000 n
+0001288645 00000 n
+0001288712 00000 n
+0001288779 00000 n
+0001288845 00000 n
+0001288912 00000 n
+0001288979 00000 n
+0001289046 00000 n
+0001289113 00000 n
+0001289180 00000 n
+0001289247 00000 n
+0001289314 00000 n
+0001289381 00000 n
+0001289447 00000 n
+0001289514 00000 n
+0001289581 00000 n
+0001289648 00000 n
+0001289715 00000 n
+0001289782 00000 n
+0001289849 00000 n
+0001289916 00000 n
+0001289983 00000 n
+0001290049 00000 n
+0001290116 00000 n
+0001290183 00000 n
+0001290250 00000 n
+0001290317 00000 n
+0001290384 00000 n
+0001290451 00000 n
+0001290518 00000 n
+0001290583 00000 n
+0001297034 00000 n
+0001292627 00000 n
+0001290814 00000 n
+0001292756 00000 n
+0001292822 00000 n
+0001292889 00000 n
+0001292956 00000 n
+0001293023 00000 n
+0001293090 00000 n
+0001293157 00000 n
+0001293224 00000 n
+0001293291 00000 n
+0001293358 00000 n
+0001293424 00000 n
+0001293491 00000 n
+0001293558 00000 n
+0001293625 00000 n
+0001293692 00000 n
+0001293759 00000 n
+0001293826 00000 n
+0001293893 00000 n
+0001293960 00000 n
+0001294026 00000 n
+0001294093 00000 n
+0001294160 00000 n
+0001294227 00000 n
+0001294294 00000 n
+0001294361 00000 n
+0001294428 00000 n
+0001294495 00000 n
+0001294562 00000 n
+0001294627 00000 n
+0001294694 00000 n
+0001294761 00000 n
+0001294828 00000 n
+0001294895 00000 n
+0001294962 00000 n
+0001295029 00000 n
+0001295096 00000 n
+0001295163 00000 n
+0001295229 00000 n
+0001295296 00000 n
+0001295363 00000 n
+0001295430 00000 n
+0001295497 00000 n
+0001295564 00000 n
+0001295631 00000 n
+0001295698 00000 n
+0001295765 00000 n
+0001295831 00000 n
+0001295898 00000 n
+0001295965 00000 n
+0001296032 00000 n
+0001296099 00000 n
+0001296166 00000 n
+0001296233 00000 n
+0001296300 00000 n
+0001296367 00000 n
+0001296433 00000 n
+0001296500 00000 n
+0001296567 00000 n
+0001296634 00000 n
+0001296701 00000 n
+0001296768 00000 n
+0001296835 00000 n
+0001296902 00000 n
+0001296968 00000 n
+0001300334 00000 n
+0001298333 00000 n
+0001297199 00000 n
+0001298462 00000 n
+0001298528 00000 n
+0001298595 00000 n
+0001298662 00000 n
+0001298729 00000 n
+0001298796 00000 n
+0001298863 00000 n
+0001298930 00000 n
+0001298997 00000 n
+0001299064 00000 n
+0001299131 00000 n
+0001299197 00000 n
+0001299264 00000 n
+0001299331 00000 n
+0001299398 00000 n
+0001299465 00000 n
+0001299532 00000 n
+0001299599 00000 n
+0001299666 00000 n
+0001299733 00000 n
+0001299800 00000 n
+0001299866 00000 n
+0001299932 00000 n
+0001299999 00000 n
+0001300066 00000 n
+0001300133 00000 n
+0001300200 00000 n
+0001300267 00000 n
+0001302278 00000 n
+0001302434 00000 n
+0001302591 00000 n
+0001302748 00000 n
+0001302904 00000 n
+0001303061 00000 n
+0001303218 00000 n
+0001303375 00000 n
+0001303532 00000 n
+0001303689 00000 n
+0001303847 00000 n
+0001304005 00000 n
+0001304163 00000 n
+0001304319 00000 n
+0001304476 00000 n
+0001304634 00000 n
+0001304792 00000 n
+0001304950 00000 n
+0001305108 00000 n
+0001305266 00000 n
+0001305424 00000 n
+0001305581 00000 n
+0001305738 00000 n
+0001305895 00000 n
+0001306052 00000 n
+0001306210 00000 n
+0001306368 00000 n
+0001306526 00000 n
+0001306684 00000 n
+0001306842 00000 n
+0001308131 00000 n
+0001307127 00000 n
+0001301808 00000 n
+0001300499 00000 n
+0001306997 00000 n
+0001301955 00000 n
+0001308289 00000 n
+0001308447 00000 n
+0001308605 00000 n
+0001308763 00000 n
+0001308921 00000 n
+0001309079 00000 n
+0001309235 00000 n
+0001309393 00000 n
0001309551 00000 n
-0001309923 00000 n
-0001310243 00000 n
-0001310775 00000 n
-0001311165 00000 n
-0001311213 00000 n
+0001309775 00000 n
+0001307861 00000 n
+0001307279 00000 n
+0001309709 00000 n
+0001308008 00000 n
+0001885016 00000 n
+0001310041 00000 n
+0001884836 00000 n
+0001310075 00000 n
+0001884181 00000 n
+0001310157 00000 n
+0001885223 00000 n
+0001310255 00000 n
+0001885140 00000 n
+0001310289 00000 n
+0001310317 00000 n
+0001310663 00000 n
+0001885349 00000 n
+0001311101 00000 n
+0001311129 00000 n
0001311319 00000 n
-0001311603 00000 n
-0001311757 00000 n
-0001311987 00000 n
-0001312219 00000 n
-0001312255 00000 n
-0001312361 00000 n
-0001344395 00000 n
-0001312497 00000 n
-0001374881 00000 n
-0001344899 00000 n
-0001398042 00000 n
-0001375364 00000 n
-0001419076 00000 n
-0001398296 00000 n
-0001422562 00000 n
-0001419337 00000 n
-0001428359 00000 n
-0001422918 00000 n
-0001431737 00000 n
-0001428648 00000 n
-0001468474 00000 n
-0001431982 00000 n
-0001491401 00000 n
-0001469158 00000 n
-0001514797 00000 n
-0001491708 00000 n
-0001537672 00000 n
-0001515069 00000 n
-0001560260 00000 n
-0001537967 00000 n
-0001590874 00000 n
-0001560555 00000 n
-0001617055 00000 n
-0001591349 00000 n
-0001635645 00000 n
-0001617412 00000 n
-0001643834 00000 n
-0001635993 00000 n
-0001672275 00000 n
-0001644079 00000 n
-0001691713 00000 n
-0001672609 00000 n
-0001706334 00000 n
-0001692056 00000 n
-0001720978 00000 n
-0001706596 00000 n
-0001734806 00000 n
-0001721299 00000 n
-0001738008 00000 n
-0001735067 00000 n
-0001740772 00000 n
-0001738271 00000 n
-0001743778 00000 n
-0001741026 00000 n
-0001776596 00000 n
-0001744026 00000 n
-0001796980 00000 n
-0001777263 00000 n
-0001822195 00000 n
-0001797262 00000 n
-0001854935 00000 n
-0001822628 00000 n
-0001879649 00000 n
-0001855683 00000 n
-0001890900 00000 n
-0001891064 00000 n
-0001891231 00000 n
-0001891336 00000 n
-0001891426 00000 n
-0001895247 00000 n
-0001895968 00000 n
-0001896704 00000 n
-0001897440 00000 n
-0001898172 00000 n
-0001898907 00000 n
-0001899645 00000 n
-0001900380 00000 n
-0001901112 00000 n
-0001901848 00000 n
-0001902584 00000 n
-0001903316 00000 n
-0001904052 00000 n
-0001904788 00000 n
-0001905463 00000 n
-0001906133 00000 n
-0001906800 00000 n
-0001907470 00000 n
-0001908139 00000 n
-0001908808 00000 n
-0001909478 00000 n
-0001910148 00000 n
-0001910818 00000 n
-0001911485 00000 n
-0001912155 00000 n
-0001912825 00000 n
-0001913491 00000 n
-0001914163 00000 n
-0001914832 00000 n
-0001915502 00000 n
-0001916169 00000 n
-0001916839 00000 n
-0001917509 00000 n
-0001918176 00000 n
-0001918846 00000 n
-0001919515 00000 n
-0001920187 00000 n
-0001920852 00000 n
-0001921522 00000 n
-0001922192 00000 n
-0001922859 00000 n
-0001923529 00000 n
-0001924199 00000 n
-0001924865 00000 n
-0001925537 00000 n
-0001926206 00000 n
-0001926876 00000 n
-0001927539 00000 n
-0001928209 00000 n
-0001928879 00000 n
-0001929546 00000 n
-0001930215 00000 n
-0001930887 00000 n
-0001931556 00000 n
-0001932223 00000 n
-0001932893 00000 n
-0001933563 00000 n
-0001934230 00000 n
-0001934900 00000 n
-0001935570 00000 n
-0001936239 00000 n
-0001936908 00000 n
-0001937578 00000 n
-0001938248 00000 n
-0001938915 00000 n
-0001939585 00000 n
-0001940255 00000 n
-0001940925 00000 n
-0001941591 00000 n
-0001942263 00000 n
-0001942932 00000 n
-0001943599 00000 n
-0001944269 00000 n
-0001944939 00000 n
-0001945609 00000 n
-0001946276 00000 n
-0001946946 00000 n
-0001947615 00000 n
-0001948284 00000 n
-0001948954 00000 n
-0001949624 00000 n
-0001950294 00000 n
-0001950957 00000 n
-0001951627 00000 n
-0001952297 00000 n
-0001952966 00000 n
-0001953635 00000 n
-0001954305 00000 n
-0001954975 00000 n
-0001955642 00000 n
-0001956312 00000 n
-0001956982 00000 n
-0001957649 00000 n
-0001958318 00000 n
-0001958990 00000 n
-0001959659 00000 n
-0001960326 00000 n
-0001960996 00000 n
-0001961666 00000 n
-0001962333 00000 n
-0001963003 00000 n
-0001963673 00000 n
-0001964340 00000 n
-0001965009 00000 n
-0001965679 00000 n
-0001966349 00000 n
-0001967016 00000 n
-0001967686 00000 n
-0001968356 00000 n
-0001969023 00000 n
-0001969692 00000 n
-0001970364 00000 n
-0001971033 00000 n
-0001971700 00000 n
-0001972370 00000 n
-0001973040 00000 n
-0001973703 00000 n
-0001974373 00000 n
-0001975042 00000 n
-0001975714 00000 n
-0001976380 00000 n
-0001977050 00000 n
-0001977720 00000 n
-0001978387 00000 n
-0001979057 00000 n
-0001979727 00000 n
-0001980397 00000 n
-0001981066 00000 n
-0001981735 00000 n
-0001982405 00000 n
-0001983072 00000 n
-0001983742 00000 n
-0001984412 00000 n
-0001985082 00000 n
-0001985749 00000 n
-0001986418 00000 n
-0001987090 00000 n
-0001987756 00000 n
-0001988426 00000 n
-0001989096 00000 n
-0001989766 00000 n
-0001990433 00000 n
-0001991103 00000 n
-0001991773 00000 n
-0001992442 00000 n
-0001993111 00000 n
-0001993781 00000 n
-0001994451 00000 n
-0001995118 00000 n
-0001995788 00000 n
-0001996458 00000 n
-0001997120 00000 n
-0001997792 00000 n
-0001998461 00000 n
-0001999131 00000 n
-0001999798 00000 n
-0002000468 00000 n
-0002001138 00000 n
-0002001805 00000 n
-0002002475 00000 n
-0002003144 00000 n
-0002003816 00000 n
-0002004481 00000 n
-0002005151 00000 n
-0002005821 00000 n
-0002006488 00000 n
-0002007158 00000 n
-0002007828 00000 n
-0002008494 00000 n
-0002009166 00000 n
-0002009835 00000 n
-0002010505 00000 n
-0002011172 00000 n
-0002011842 00000 n
-0002012512 00000 n
-0002013179 00000 n
-0002013849 00000 n
-0002014518 00000 n
-0002015190 00000 n
-0002015856 00000 n
-0002016526 00000 n
-0002017196 00000 n
-0002017863 00000 n
-0002018533 00000 n
-0002019203 00000 n
-0002019873 00000 n
-0002020538 00000 n
-0002021208 00000 n
-0002021878 00000 n
-0002022545 00000 n
-0002023215 00000 n
-0002023885 00000 n
-0002024555 00000 n
-0002025221 00000 n
-0002025893 00000 n
-0002026562 00000 n
-0002027229 00000 n
-0002027899 00000 n
-0002028569 00000 n
-0002029239 00000 n
-0002029906 00000 n
-0002030576 00000 n
-0002031245 00000 n
-0002031914 00000 n
-0002032584 00000 n
-0002033254 00000 n
-0002033924 00000 n
-0002034591 00000 n
-0002035261 00000 n
-0002035931 00000 n
-0002036597 00000 n
-0002037269 00000 n
-0002037938 00000 n
-0002038608 00000 n
-0002039275 00000 n
-0002039945 00000 n
-0002040615 00000 n
-0002041282 00000 n
-0002041955 00000 n
-0002042627 00000 n
-0002043301 00000 n
-0002043964 00000 n
-0002044637 00000 n
-0002045310 00000 n
-0002045980 00000 n
-0002046653 00000 n
-0002047326 00000 n
-0002047995 00000 n
-0002048667 00000 n
-0002049340 00000 n
-0002050013 00000 n
-0002050683 00000 n
-0002051356 00000 n
-0002052029 00000 n
-0002052699 00000 n
-0002053371 00000 n
-0002054045 00000 n
-0002054717 00000 n
-0002055387 00000 n
-0002056060 00000 n
-0002056733 00000 n
-0002057403 00000 n
-0002058076 00000 n
-0002058749 00000 n
-0002059421 00000 n
-0002060092 00000 n
-0002060765 00000 n
-0002061438 00000 n
-0002062108 00000 n
-0002062781 00000 n
-0002063454 00000 n
-0002064127 00000 n
-0002064796 00000 n
-0002065470 00000 n
-0002066142 00000 n
-0002066808 00000 n
-0002067481 00000 n
-0002068154 00000 n
-0002068827 00000 n
-0002069497 00000 n
-0002070169 00000 n
-0002070843 00000 n
-0002071512 00000 n
-0002072185 00000 n
-0002072858 00000 n
-0002073531 00000 n
-0002074201 00000 n
-0002074874 00000 n
-0002075547 00000 n
-0002076218 00000 n
-0002076890 00000 n
-0002077563 00000 n
-0002078236 00000 n
-0002078906 00000 n
-0002079579 00000 n
-0002080252 00000 n
-0002080922 00000 n
-0002081594 00000 n
-0002082268 00000 n
-0002082940 00000 n
-0002083610 00000 n
-0002084283 00000 n
-0002084956 00000 n
-0002085626 00000 n
-0002086299 00000 n
-0002086972 00000 n
-0002087641 00000 n
-0002088319 00000 n
-0002089021 00000 n
-0002089723 00000 n
-0002090416 00000 n
-0002091118 00000 n
-0002091820 00000 n
-0002092517 00000 n
-0002093221 00000 n
-0002093922 00000 n
-0002094624 00000 n
-0002095322 00000 n
-0002096024 00000 n
-0002096726 00000 n
-0002097424 00000 n
-0002098126 00000 n
-0002098827 00000 n
-0002099531 00000 n
-0002100228 00000 n
-0002100930 00000 n
-0002101632 00000 n
-0002102330 00000 n
-0002103032 00000 n
-0002103734 00000 n
-0002104436 00000 n
-0002105136 00000 n
-0002105837 00000 n
-0002106539 00000 n
-0002107237 00000 n
-0002107939 00000 n
-0002108641 00000 n
-0002109343 00000 n
-0002110041 00000 n
-0002110742 00000 n
-0002111446 00000 n
-0002112143 00000 n
-0002112845 00000 n
-0002113547 00000 n
-0002114249 00000 n
-0002114994 00000 n
-0002115700 00000 n
-0002116403 00000 n
-0002117107 00000 n
-0002117831 00000 n
-0002118510 00000 n
-0002119180 00000 n
-0002119879 00000 n
-0002120667 00000 n
-0002120750 00000 n
-0002121139 00000 n
-0002121526 00000 n
-0002121913 00000 n
-0002122300 00000 n
-0002122686 00000 n
-0002123073 00000 n
-0002123460 00000 n
-0002123847 00000 n
-0002124234 00000 n
-0002124621 00000 n
-0002124826 00000 n
-0002125004 00000 n
-0002125046 00000 n
-0002125182 00000 n
+0001311475 00000 n
+0001311567 00000 n
+0001311649 00000 n
+0001311731 00000 n
+0001312055 00000 n
+0001312325 00000 n
+0001312467 00000 n
+0001312907 00000 n
+0001312935 00000 n
+0001313179 00000 n
+0001313603 00000 n
+0001313977 00000 n
+0001314297 00000 n
+0001314829 00000 n
+0001315219 00000 n
+0001315267 00000 n
+0001315373 00000 n
+0001315657 00000 n
+0001315811 00000 n
+0001316041 00000 n
+0001316269 00000 n
+0001316305 00000 n
+0001316411 00000 n
+0001348445 00000 n
+0001316547 00000 n
+0001378931 00000 n
+0001348949 00000 n
+0001402092 00000 n
+0001379414 00000 n
+0001423126 00000 n
+0001402346 00000 n
+0001426612 00000 n
+0001423387 00000 n
+0001432409 00000 n
+0001426968 00000 n
+0001435787 00000 n
+0001432698 00000 n
+0001472524 00000 n
+0001436032 00000 n
+0001495401 00000 n
+0001473208 00000 n
+0001518791 00000 n
+0001495702 00000 n
+0001541666 00000 n
+0001519063 00000 n
+0001564254 00000 n
+0001541961 00000 n
+0001594868 00000 n
+0001564549 00000 n
+0001621049 00000 n
+0001595343 00000 n
+0001639639 00000 n
+0001621406 00000 n
+0001647828 00000 n
+0001639987 00000 n
+0001676269 00000 n
+0001648073 00000 n
+0001695707 00000 n
+0001676603 00000 n
+0001710328 00000 n
+0001696050 00000 n
+0001724972 00000 n
+0001710590 00000 n
+0001738800 00000 n
+0001725293 00000 n
+0001742002 00000 n
+0001739061 00000 n
+0001744766 00000 n
+0001742265 00000 n
+0001747772 00000 n
+0001745020 00000 n
+0001780837 00000 n
+0001748020 00000 n
+0001801230 00000 n
+0001781513 00000 n
+0001826445 00000 n
+0001801512 00000 n
+0001859185 00000 n
+0001826878 00000 n
+0001883899 00000 n
+0001859933 00000 n
+0001895160 00000 n
+0001895324 00000 n
+0001895491 00000 n
+0001895596 00000 n
+0001895686 00000 n
+0001899507 00000 n
+0001900228 00000 n
+0001900964 00000 n
+0001901700 00000 n
+0001902432 00000 n
+0001903167 00000 n
+0001903905 00000 n
+0001904640 00000 n
+0001905372 00000 n
+0001906108 00000 n
+0001906844 00000 n
+0001907576 00000 n
+0001908312 00000 n
+0001909048 00000 n
+0001909780 00000 n
+0001910454 00000 n
+0001911124 00000 n
+0001911791 00000 n
+0001912461 00000 n
+0001913131 00000 n
+0001913798 00000 n
+0001914468 00000 n
+0001915137 00000 n
+0001915809 00000 n
+0001916474 00000 n
+0001917144 00000 n
+0001917814 00000 n
+0001918481 00000 n
+0001919151 00000 n
+0001919821 00000 n
+0001920487 00000 n
+0001921159 00000 n
+0001921828 00000 n
+0001922498 00000 n
+0001923165 00000 n
+0001923835 00000 n
+0001924505 00000 n
+0001925172 00000 n
+0001925842 00000 n
+0001926511 00000 n
+0001927183 00000 n
+0001927849 00000 n
+0001928519 00000 n
+0001929189 00000 n
+0001929856 00000 n
+0001930526 00000 n
+0001931196 00000 n
+0001931866 00000 n
+0001932531 00000 n
+0001933201 00000 n
+0001933871 00000 n
+0001934538 00000 n
+0001935208 00000 n
+0001935878 00000 n
+0001936548 00000 n
+0001937214 00000 n
+0001937886 00000 n
+0001938555 00000 n
+0001939222 00000 n
+0001939892 00000 n
+0001940562 00000 n
+0001941232 00000 n
+0001941899 00000 n
+0001942569 00000 n
+0001943238 00000 n
+0001943907 00000 n
+0001944577 00000 n
+0001945247 00000 n
+0001945917 00000 n
+0001946584 00000 n
+0001947254 00000 n
+0001947924 00000 n
+0001948590 00000 n
+0001949262 00000 n
+0001949931 00000 n
+0001950601 00000 n
+0001951268 00000 n
+0001951938 00000 n
+0001952608 00000 n
+0001953275 00000 n
+0001953945 00000 n
+0001954614 00000 n
+0001955286 00000 n
+0001955946 00000 n
+0001956616 00000 n
+0001957286 00000 n
+0001957953 00000 n
+0001958623 00000 n
+0001959293 00000 n
+0001959960 00000 n
+0001960629 00000 n
+0001961299 00000 n
+0001961969 00000 n
+0001962636 00000 n
+0001963306 00000 n
+0001963976 00000 n
+0001964643 00000 n
+0001965312 00000 n
+0001965984 00000 n
+0001966653 00000 n
+0001967320 00000 n
+0001967990 00000 n
+0001968660 00000 n
+0001969327 00000 n
+0001969997 00000 n
+0001970667 00000 n
+0001971336 00000 n
+0001972005 00000 n
+0001972675 00000 n
+0001973345 00000 n
+0001974012 00000 n
+0001974682 00000 n
+0001975352 00000 n
+0001976022 00000 n
+0001976688 00000 n
+0001977360 00000 n
+0001978029 00000 n
+0001978692 00000 n
+0001979362 00000 n
+0001980032 00000 n
+0001980702 00000 n
+0001981369 00000 n
+0001982038 00000 n
+0001982710 00000 n
+0001983376 00000 n
+0001984046 00000 n
+0001984716 00000 n
+0001985386 00000 n
+0001986053 00000 n
+0001986723 00000 n
+0001987393 00000 n
+0001988062 00000 n
+0001988731 00000 n
+0001989401 00000 n
+0001990071 00000 n
+0001990738 00000 n
+0001991408 00000 n
+0001992078 00000 n
+0001992745 00000 n
+0001993414 00000 n
+0001994086 00000 n
+0001994755 00000 n
+0001995422 00000 n
+0001996092 00000 n
+0001996762 00000 n
+0001997429 00000 n
+0001998099 00000 n
+0001998769 00000 n
+0001999436 00000 n
+0002000105 00000 n
+0002000775 00000 n
+0002001445 00000 n
+0002002108 00000 n
+0002002778 00000 n
+0002003448 00000 n
+0002004114 00000 n
+0002004786 00000 n
+0002005455 00000 n
+0002006125 00000 n
+0002006792 00000 n
+0002007462 00000 n
+0002008132 00000 n
+0002008799 00000 n
+0002009469 00000 n
+0002010138 00000 n
+0002010810 00000 n
+0002011476 00000 n
+0002012146 00000 n
+0002012816 00000 n
+0002013483 00000 n
+0002014153 00000 n
+0002014823 00000 n
+0002015493 00000 n
+0002016162 00000 n
+0002016831 00000 n
+0002017501 00000 n
+0002018168 00000 n
+0002018838 00000 n
+0002019508 00000 n
+0002020178 00000 n
+0002020845 00000 n
+0002021514 00000 n
+0002022186 00000 n
+0002022852 00000 n
+0002023522 00000 n
+0002024192 00000 n
+0002024862 00000 n
+0002025525 00000 n
+0002026195 00000 n
+0002026864 00000 n
+0002027533 00000 n
+0002028203 00000 n
+0002028873 00000 n
+0002029543 00000 n
+0002030210 00000 n
+0002030880 00000 n
+0002031550 00000 n
+0002032216 00000 n
+0002032888 00000 n
+0002033557 00000 n
+0002034227 00000 n
+0002034894 00000 n
+0002035564 00000 n
+0002036234 00000 n
+0002036901 00000 n
+0002037571 00000 n
+0002038240 00000 n
+0002038912 00000 n
+0002039577 00000 n
+0002040247 00000 n
+0002040917 00000 n
+0002041584 00000 n
+0002042254 00000 n
+0002042924 00000 n
+0002043590 00000 n
+0002044262 00000 n
+0002044931 00000 n
+0002045601 00000 n
+0002046268 00000 n
+0002046941 00000 n
+0002047614 00000 n
+0002048280 00000 n
+0002048952 00000 n
+0002049626 00000 n
+0002050298 00000 n
+0002050968 00000 n
+0002051641 00000 n
+0002052314 00000 n
+0002052984 00000 n
+0002053657 00000 n
+0002054330 00000 n
+0002055002 00000 n
+0002055673 00000 n
+0002056346 00000 n
+0002057019 00000 n
+0002057689 00000 n
+0002058362 00000 n
+0002059035 00000 n
+0002059708 00000 n
+0002060377 00000 n
+0002061051 00000 n
+0002061723 00000 n
+0002062393 00000 n
+0002063066 00000 n
+0002063739 00000 n
+0002064412 00000 n
+0002065082 00000 n
+0002065755 00000 n
+0002066427 00000 n
+0002067098 00000 n
+0002067771 00000 n
+0002068444 00000 n
+0002069117 00000 n
+0002069787 00000 n
+0002070460 00000 n
+0002071133 00000 n
+0002071800 00000 n
+0002072472 00000 n
+0002073145 00000 n
+0002073818 00000 n
+0002074488 00000 n
+0002075161 00000 n
+0002075834 00000 n
+0002076504 00000 n
+0002077176 00000 n
+0002077850 00000 n
+0002078522 00000 n
+0002079192 00000 n
+0002079865 00000 n
+0002080538 00000 n
+0002081208 00000 n
+0002081881 00000 n
+0002082554 00000 n
+0002083223 00000 n
+0002083895 00000 n
+0002084568 00000 n
+0002085241 00000 n
+0002085911 00000 n
+0002086584 00000 n
+0002087257 00000 n
+0002087927 00000 n
+0002088599 00000 n
+0002089273 00000 n
+0002089945 00000 n
+0002090615 00000 n
+0002091288 00000 n
+0002091961 00000 n
+0002092631 00000 n
+0002093317 00000 n
+0002094019 00000 n
+0002094720 00000 n
+0002095415 00000 n
+0002096117 00000 n
+0002096819 00000 n
+0002097517 00000 n
+0002098219 00000 n
+0002098921 00000 n
+0002099623 00000 n
+0002100323 00000 n
+0002101024 00000 n
+0002101726 00000 n
+0002102424 00000 n
+0002103126 00000 n
+0002103828 00000 n
+0002104530 00000 n
+0002105228 00000 n
+0002105929 00000 n
+0002106633 00000 n
+0002107330 00000 n
+0002108032 00000 n
+0002108734 00000 n
+0002109436 00000 n
+0002110134 00000 n
+0002110836 00000 n
+0002111538 00000 n
+0002112238 00000 n
+0002112939 00000 n
+0002113641 00000 n
+0002114343 00000 n
+0002115041 00000 n
+0002115743 00000 n
+0002116445 00000 n
+0002117143 00000 n
+0002117844 00000 n
+0002118548 00000 n
+0002119249 00000 n
+0002119995 00000 n
+0002120699 00000 n
+0002121403 00000 n
+0002122103 00000 n
+0002122835 00000 n
+0002123505 00000 n
+0002124174 00000 n
+0002124884 00000 n
+0002125617 00000 n
+0002126006 00000 n
+0002126392 00000 n
+0002126779 00000 n
+0002127166 00000 n
+0002127553 00000 n
+0002127940 00000 n
+0002128327 00000 n
+0002128714 00000 n
+0002129100 00000 n
+0002129487 00000 n
+0002129693 00000 n
+0002129871 00000 n
+0002129913 00000 n
+0002130049 00000 n
trailer
-<< /Size 12053 /Root 12051 0 R /Info 12052 0 R /ID [ <CA251DB2BC22EE21E6499B02093467F6> <CA251DB2BC22EE21E6499B02093467F6> ] >>
+<< /Size 12085 /Root 12083 0 R /Info 12084 0 R /ID [ <98F62B4A9AC68BA1D34CCE3C0BBC1EE2> <98F62B4A9AC68BA1D34CCE3C0BBC1EE2> ] >>
startxref
-2125816
+2130683
%%EOF
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
index 1365e805e3..3b6a3171cd 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
@@ -627,56 +627,56 @@ endobj
<< /S /GoTo /D [ 361 0 R /Fit ] >>
endobj
364 0 obj
-<< /Filter /FlateDecode /Length 10172 >>
-stream
-x}I%9=;VZ2^@c.9]Fѝ5.Dg#2+tgI-&3O?ywfl _~s7ger_oɘ}OxgLƤo3 E?+~'pC,kt5-!ڃv1ڬDeЖ]B$5cR|7y˃X>
-$ o)ggPH*
-}ksfs&XBZ?ĸU iawV@h Xq<ZMJ ]lץ2:}bh]<egE#-߷K頋⮍~-_Me$?E]8,(Q״6IAO)ڢS_utF
-&1Ќi} A4!Zc(Tjf!^9n{A8rcb?#u jUFuחS7x/~:~8s ȺOD#; <8 V<SG2BHc,6H(ZC{t0ﮢ eR|nL\;l=N]a]>P'sa`SQkР O5< h1l1ˠ g@u+hEuО 8fp3b3gP_p|!b) "~8r0q?@*eQ+vZF\#=ǠE38A{0#'0qX#v)&1ƿZq3&\e3.]~}ew*D& 'v6pڏ>09uvVxvgm~9{qnYv QjJ~ 3+o0B,0\VTnr7I.G'37` yô -}x N7MA~:/l9((c3
- 
-ǡ/m>MSa]1ALʢAQHRP> KRkJa/su(᧰:k%4XL"ip$zWS ,%<JwoK$ dn;xO+d \B!Ru!rHF WL:BǩJ;4PUI"ﰒ@@~IXtb 9z[')%W
- Wڬ7U'mDN6I6rfJ @e$<Y-W%b0y<E¿
-lb$0܊ġ*L*̩P_vSd+YԩOFidde*vS#IaWGdQKJtm=Wwc sg$BUe'-2IF\Iq *x+l)qu{o
-_] &oYՌ)Sd)YGS(.6٦G$jS2b*A]LK!3
-∕,hT֧"/%$mpsz&L1uZ("DuoAWRG8N2N&\]9@Isj:%;k)I3KS֩Widn;xP1X9dN3N*Op]$ Ê<UhX:Y$r5GBM+L Fc<RB.S|5+@L$|GQ81A)
-bsXͳFݰ6="Q!Pnq51Qpkh!f;>H̳IMa dso Q5h5͋!mՆF 0FOQGd0}2 ć5[&1*o)\hSмPO QD!!AO[' Q8&4k7&#8
-!!T
-H_B
-*(wJeoւ(# i9WJUU!Bf5ei3JZd/
-pFȀGx $BLEe Hb$TMY KE*RΨo,^Cyc:<xbD7H
-A%X*x(#q; !t
-ŕuz0.\p 6J`f,y)m6Jް2Uؐ}OFv8B& 'E\R15T('K󲱝 IyC1BaΤVy"`v8ˆBJGC"&pˢpb5
-Gv;Ev~A)
-
-x0:= k 0 ȏaH0gLPzJqLR*gV+a{6e-19QW
-) _MJEH$U(Fvk94'
-U _*4.TFS8&)huҦϬVMFېvh O g8\F*T8&Ip$3Sg'ٷ!mZhF?&N_fS)D0R"1IA#6=f
-o2NφյQp?/T7LPpz"1I#ݗ)e6n KQ<BP R@#CU`ZEcBFP7,mj4lddXZ(8۟P\(pQ|\ˆ"
-KbwF4m2
-kYLBP b@Bu`jEcFP;,mj8lddXZHD]z_T[_<W6fr "h-V]T8\j;i"DzBj's:"{uSVTzY/'B y(UB&($TrkʛO
-idސȽYϨ=kA?* 5ꕢX{USHIX)Ldv 0TNHw]g<ՆS*"`
-FQah,I&ϦȉԮNV !ߡFbШ+ըiŠԊ6R *adĝXZ( =2
-zQx !5M
-'R2NgoU9oy5
-FQFV,ԀV"DŽH@hP C'tD}{Fɳ^3ʐ5"HRRł$ bqX4mӗ)qu[VK嶿)ͻ>xU{whfkl|cx^'Ƣ*J-9ď֢"f)_'/&EU~[q_iZƫ|ٸ?'O[Ѧ~Pl̽=]4_Kj`WŏK%kVCůC&f.!FH@(^
-,}i 5[]1/,G!؞ݿ_߿d{~dk7gۿ𳸄2\~kMx]kN9l\E=<> ?= nb9
-[Wt|Nb|rI_7(ާ7byAm8zBNDs|ĿD |Itva1'z$h#-|a;XҳۇzIT|U\`S {70[z?pxVc@}^*;@`
-#NhL:K+\}'YU0w,HEp59RH:rbu
-0? ?#_Cf,w_fMr g
-sh)tŦ0_39?^Ma,ׇًxRiZ&.#>L]%Z<L\G~Ǽ-f0MW{kMCLKk%xcNC}0g=)) ~<zϠO%x^ nZCaR_&ڗȊ4" GdD6yIAݥk(S
- oM,29[{ZH.OJ
-UGy&,l<`YkB.
-;j m&ؔ!3ې
- $s7;oR6Ü&]{qŌ,v#~z|aLĔ69)N'h;|^x:ї;udl>s7!2ާS};OE[S>
-nٳ,%8pk[h@*>{o?u\uB(yFxFc1_9Fikh+ \[PhOb;u{ErGԤ%7cL6?ۜX6]H=qk[?Y4fzRpB Lt(cp8ҟd>QO_ByUCz󍙎e0ߐY/Ym-qմ- e!j&W:ijfvOkj!Ƌ]
-'0Ek~.v@kKŭm)i'27օ7{Now㕑Yu0;ϼdUx."48x"I,mĝY'vFg}f7jisk{}؂{*XypYh0) 40ITʌ1;Ix/fnYvw/
-VJNj[3~hR6rh2tu1_l |K$9K;*Yd7Ϯ
-B9ɯ-qܴ>i<Ml<B(9Lm"R.'w.ЇD, w;q-A΃†
-"gΘڅKK l]ݵ s丳jja NrU9-흢:[\SU!q_xx0`Г\6GRp
-f[.j`B-p? #hN;6g33YՎ9 U4reߙǢL?2߃zٰKhޥ$)gvj]njT_ ۜ] 䱺 sRdVnCK1׸}aKY3*#B0F6#*<!;>UF@ףŜm?n.bqltɷMmo/\:u_fR/@*y &VMqb|hM("aGR4Ճ*\Atַ JX@g)/h3px*h b!'ҚU]8Jct-)ho3־3Uٛh~ܶH?%p!kp\n O+N ѧ Ƒ'kM[Ϥ})c/KpqBlƫ$D D$8Y.MVu¨&|Á
-<%T-|
-adG.|thKjE>Z>ڵ7<P~c7~ J9bNruՊ:QѪz1;2QVGI~3"A>]oht%-2]KۣHxr^[G\=#$B,n^HpV Sԉ}|
-B~ Z+%Pn0X 2W7_cޜlHV+GbS|N.BZtШ9h8j$w3t#]~QT?l, ;Z&Ar^iH??~8YlFYC4FVh#`dd#l[(a1?\ė$S1EH)Q͙cLM̛ahu4%Wr^ZaҘcw o@7|\|Wk›T輋1wyȾԤ[gKyw2Gxtf|iЄ2 #cl'x'CV_;ʡ5:
+<< /Filter /FlateDecode /Length 10261 >>
+stream
+x}͏%7;E
+5as9b[1}j5z}mѨxV [G/n 5z]cd&}oVI|L:?6ĸU -|kwHi q<MJK#l׵4Ĥ>0'19# vߎ^>ZLE
+B퇿~6ۅ{{)Zj fm7/uI?:$0dUt-J5fDJ`'ާ?n EWo5BB(W0B3 U0;3X&GXXj={HRUzo3Trcb?#p*(O
+kq8TXBFcȾ(| d#
+K!c5Ĉ z x]{omZ
+
+;
+D ;aeK5&w4rx2}Ɛ3L0` )̇@NtiOt䧳|>-|ebeL{;LkX1e6@
+Ub!ƹF7$o3H`ї)+9C<O!+2X-H)9h}AfT&YmYC=T'`K[d𸄴<)w4@eb3a %bWRa6 fYyFb(aʵ 
+KMb[0Z[Tvu-k>%L
+ Đ->l+ QD!!cuXT)"4K7lZ}-XTqOP9S (4SraBW0,8S \IRhF6pzҖc04Vk
+_ l[5)RT=,
+S.N!wLpTT)FiV$V3Y3UP "+#VNA3>y.8]bi+&'ˀ##TPY#YS8
+SԌR]M2NXc T!Y?GRtIpB$Ɉ+#:Dbo]d;x W33LZXEዏCI[ `bVl5FrqD)jFөQiG$j,w˩%tA0u/"p+ S,ȦCUa*LL1-=l[)jPd/Y،T_6_$n
+ 2Hꈘ}U(/#R$q4Y W`6$nc T 2Y?GVb0XJ$dV5]v*${wX8B PhJIĴ0r)Y-b=$ @:4DL>EALw(a7#8Pw# -x9 g:%E|LH/a 69H0(t!mp1DڐH&x}$@=dˀ$BD9 ƨ*RBrSAr慂 lJ^"
+i z>4(_0F(|FMKi0}SA&c6dBĴ*P3|9paaLJGC"1.LQ0~ H_6f1Fy3Ԟj[;w\#ErbR3@d36&W)nHok+kM9KDzQ:7%xPؖP"#Z
+ux>
+OA#C_%ߟSbgN:ACKBْ<@%2+\j,BIіw{<ZZqd[B^(*РL/y&
+MQ"F[sI#B rUډ6d<QATYŷ?/P` y&Xh{∍!E&j6DϤO6IqDzGIY8VLDm2pBH@@U! 2d*_
+ &M5D Kq$>^ Ȍ9*'TsJ%KLaYfUEO3")I$;S;Mj8<7]#i;of$PPASk-Ȉ2`+ 8P{T5_1^ (dH(wmQ5]jq
+D|?؄3*# 2
+A%oT+M6D.B Cukn 2@`|1H&I"GOid^Y
+d耟b&-ccFNL&)dSf'ئg,kq"'
+R *%N B\
+Lg(T0RYehIIh|
+8vFr ]AKeƅ*Hu7I
+ALiT1mHyV4
+OӛY2ϳPD0R"MGR;,mj%8ld i;oגF01}AxLjH7I
+ALiT1#{65`v,B_/UIHjMV4ل_CӥP?+T5P"V&I!#Û)]j4>8}oתF0 uz3ky
+*E_+W0Hd2%MwYąMcFst-k4O
+ _*4.TFVIRpgJcZδO2Nߦ۵0}qSQdo}4sp(&jX{bHIEɥ&Bdݬ ,v:'/kG&z9H+XD2AI$[,g
+)Y7$r.|3jp<E!.Hz(^%R+E ]%  u#gp
+^E^85M%dX eVu!ߡFbШ+ըiŠԊP)K *a(
+Hq],gj
+@X'(q셐ӊ&drESiZ)*u"#F(;ԨyŠЊH)pL
+'Q/,qu[V)ͻװ>xU1l{<fE3h^cnc*>)7mWz+y?+~6H 9=y1h-C܊kZƫ|Yz;m<kh-i;s9]ѣ,EכoKvL[Tf<p-z0=TMu]WL!XLdz)x(-/xJh 7巔]A=c_~/7<ٞ no?, _4gn~`|S!ej[5-#DѾAq<<npQPZ?]6uu&}۠tx†G_܊cCMBᨇ}y~¿DM|&Itv_9'F$~#-@uى{~U|`b^T|U\`S {0[8pxV}(xk
+^';@`
+iƾ$(=e?]<\&ZpAt'W
+|oҶɃrNz9{K/@P./
+Pa!.<
+A ϓZ?dvi×/fMMr$2ìNo8UVLfլ"\*ìrwUL\`x6ξx FG\]iMyV3 5㵅@5ޝoBF^O]Gܛt^A7v<ƺOPدw.16GD1vK~ĘC5 (q\`a%fLkyF6gdy.\ÙbD ?^<?ޛ|=Zcd? q+N% f|GCOTLg+X*z۝ `v㐤*),\*)+UpmuR䤴 e? A9Bh~WO^4>oa~ߊ|>4wG.OB̏vsh mh<THد^Ah0,MpGnow >ھpEz h{hG:.@9ɏ&/χ_yZi7׵5<#ܸN V7}UNHuw*w#  N5- {men/}
+;j] m&^vӔ!mH9jR<69M CqŌ,6?oGLLĔS06r*JџW)2 ڀ <}V|x @XE%ZԃC60)2^S;OE[S>
+nOY+5Ki׶ThN4>령ꈅ(飄_? (mzn%}k
+movtY 漛|#+uQǘlp#~9`9 {+ppLg3Ew42ZaC3#*I}Ne fiWl:|Ef?eXv}fl6UӚ/7[< [ǵeYXȮ;J<>]ܮGbxB@<gQ1yzCXffKd]xvs[puYW3׵DqPdz,[4~Wpfuå8YiYD|{\'ތtxy R*
+tkX;&!Ԣ
+99Fb99^<FΛ'dXt1<Z dn/^ow!Emv[,V<nKk6Nxu0@]ؼڌ.XփT,qqO•Us]}m5,oQr"$)D+)*HA{a2Pr{H ZG.d Glɶؽ:~2?;[k~ZM7-yYSgڜ!fTfs'Ĩc'2H;U0P _q 5tˤ?_GFXь0iz"srcs ŬTt>pLCO[ٞtYk(xǃWWZ3,q]aݑ;=#o:-NC@QVAt;
+pl95pq8&ߝU{bsw9ۖ<q79z/g y҃'v5 }fk.lxXĶw/VrO84>5|jwy.z5@
+[?!Hk6N s-+ȓ(ۧa6]̹—pWL5NIOp[mmġJQ U݀y|ίr1gK'-*Sd.Ϸ݇O,'CN
endstream
endobj
361 0 obj
@@ -686,8 +686,8 @@ endobj
[ 362 0 R ]
endobj
362 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 78.374 76.495 499.819 87.953 ]
- /Subtype/Link/A<</Type/Action/S/URI/URI(https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty)>>
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 78.374 76.495 306.319 87.952 ]
+ /Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/fpantigny/nicematrix/releases)>>
>>
endobj
365 0 obj
@@ -697,30 +697,33 @@ endobj
<< /D [ 361 0 R /XYZ 79.37 771.024 null ] >>
endobj
363 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F28 367 0 R /F29 368 0 R /F38 369 0 R /F47 370 0 R /F52 371 0 R /F51 372 0 R /F53 373 0 R /F54 374 0 R /F25 375 0 R /F20 376 0 R /F18 377 0 R /F21 378 0 R /F19 379 0 R /F17 380 0 R /F15 381 0 R /F16 382 0 R /F55 383 0 R /F56 384 0 R /F57 385 0 R /F58 386 0 R /F65 387 0 R /F66 388 0 R /F67 389 0 R /F49 390 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F28 367 0 R /F29 368 0 R /F38 369 0 R /F47 370 0 R /F52 371 0 R /F51 372 0 R /F53 373 0 R /F54 374 0 R /F25 375 0 R /F20 376 0 R /F18 377 0 R /F21 378 0 R /F19 379 0 R /F17 380 0 R /F15 381 0 R /F16 382 0 R /F55 383 0 R /F56 384 0 R /F57 385 0 R /F58 386 0 R /F64 387 0 R /F65 388 0 R /F66 389 0 R /F49 390 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
400 0 obj
-<< /Filter /FlateDecode /Length 4030 >>
+<< /Filter /FlateDecode /Length 4028 >>
stream
x5hgR0u`h
-XG7a ( /PvJtBO|}$R? [#,FY" [~_~yT_\籌2bGKCj,zU0^R·by1vvx~o˯46qjd~W<w tcjqi\M ‰tm&8 _
+XG7a ( /PvJtBO|}$R? [#,FY" [~_~yT_\籌2bGKCj,zU0^R·by1vvx~o˯46qjd~W<w tcjqi\M ‰tm&8 _
'O)e&X
P+yiPL~̦D+F5l>`ъPj10A3v%Uow3̶^Ak<b[ֈiG= 'l~Bـ!ną iDn&"R~7;
dp6ɞV p,~5sɡuPK
o^CЊ,M$HSl  +ؙRGpS/Xx[i@qa8m
`>{ 1ڶz9T/Qr,&`[y-bZżHVo9o]kYSa!&Ƹ~+ljS1}(فpG%
-Rn}!6jV0dCDo$Xڵ@$?M " T} uw] c\tM%,ʳZ.G|6pI`"!n۱A#p"ayGL%Ԁ>XzˆA/鍡DC*Яm#AEBh В(pr}öU@ح˶ٕk 끔#iyy3Y;2OJ[yp9p=[?Q&'Z[!,^((8⌰j c&[zE MŀЄ
-mC}
-?"aJ 'K ]*pFU۪qͥDŽD["^ϲqĬ96 &f5Ȫ
-emز˨qVTy]eNfkѾFR-z #zD4-!R+,q%&w T RU t)..*M.aHܤH49^P#R1*M0\Zc'>Ve(iYa Z!
-AXm&Cq6 "m:Dze7S9
-Dv. eSp">ձ]nxV<r
-eV6v[-ͱYoQEjh}-$^懞]'zjλ3;y#;gBt!*p'dKX|}e2a–Ziwg꛵[@#܁xzHLSCL􇚝;U2a܏9A: aJr~kR)}ECf\I4?@CW
-3sP*[Zp
-Ju01 ryL,
-)z:-̮kN/=9$&!-`"F5F<hcx.ʰG,ze~-AdEoeT5jZEX:VTMc(a͊>p7@M$v_=yQL}JyTC4h'"qqb³&ܫyiƪG<j"? W||@x,MKl:K?
-ms7"x
-6A^
+Rn}!6jV0dCDo$Xڵ@$?M " T} uw] c\tM%,ʳZ.G|6pI`"!n۱A#p"ayGL%Ԁ>XzˆA/鍡DC*Яm#AEBh В(pr}öU@ح˶ٕk 끔#iyy3Y;2OJ[yp9p=[?Q&'Z[!,^((8⌰j c&[zE MŀЄ
+m7S8gT)j8,\d)KeNu2
+p[59"zrK uY65&߄ YU 1oYX݉ի.IO(c+0i'XT
+TH@ [}"jJ0il-"׈BtUoaRú%DVq%aT= Αj^꺪b.%;E%S29L1 BpD"Fxf{K3qJp %W:1u#]=U]kX#dvW!C"Hkd" nFAMHO]f4;GLO*xq979)_X
+|Hkp~Tue*DC^2OZ1k8Jmfb<a3t1[g <(UcהK5E>" %l/X8IB<m⅋4Ǩ2S02 I<.RۖONne
+P'8U-oqhUc:d3&mZaJ2jv*ošGԕ*M|6ztT> s8ň2ߙ\ 2磌cضs!JdVkhe"zNݚZxޕXN1 +AJ@\=|ÊvR@j"&څ\F1Kun}%ŬeA_׋IK[{!oI xLe)F<px-ݳ |^V LȔL6*"]@҂w Sd!_~7 0"`?_#{3B]>~q#,z%XJ$uXqIJ,:`9gT2`&EI Z(+ ^^'Q& } L͸/rΠf_ ra!6"?n3
+m'dH:LyM=#疘7KT XcYH[`Ub- .o5uR`t~XwG@|q 2847p#)3XPnw^WH(+
+_23p)azdpv ⴭˍ!Z!nҙ!ƴI,]kCu2ޭ7pm۵e5 *{P|%$Z
+
+ס 6-zaXz;ˆPBN:]ׅZ4}CE9b-o0@?nˀ#L4%
+D +ܤ OZ@nFBB\l? tt Svv0, (Y6(+TSI\|yآ) $5Oclgd2w`ԥqj?i&ǎ0uLq/ {͎ə}uPaWZFκ0\ zN:v-wJGNʦn9v> 4<r_mMګq7āWOywf'tԴy,Ԑ5R."^%dslL&80\_K/]9,W}=h;OijPsJ]21'UBgغ?L 7tBxM]J"hHl+gh
+
+xl~^"Lsu{:o6Xgb~lZѱZ
+"}卙C0 v jgJoM9HЀ1wFqF\~$&&B>p0jd\n3)}ln[*d56U4m7ut4&inIm $/b9T73I(l¨EB>!w
+D7t>tozZ2T[G+@4Ҡ~9rWVFڎB%)Ȯ\C=^
endstream
endobj
399 0 obj
@@ -745,12 +748,12 @@ endobj
<< /D [ 399 0 R /XYZ 79.37 443.151 null ] >>
endobj
398 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F58 386 0 R /F67 389 0 R /F70 403 0 R /F65 387 0 R /F25 375 0 R /F17 380 0 R /F22 404 0 R /F16 382 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F58 386 0 R /F66 389 0 R /F69 403 0 R /F64 387 0 R /F25 375 0 R /F17 380 0 R /F22 404 0 R /F16 382 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
408 0 obj
-<< /Filter /FlateDecode /Length 5117 >>
+<< /Filter /FlateDecode /Length 5118 >>
stream
-x]K$ׯ ~
+x]K$ׯ ~
r%i)tp\ ϣ ߣQ<W ±U}Qa9B.?h ߃daעӁFc`Q.
~C <phxD.-FNnm`?]vV|K`8Ɖ)TaIԑk`~Gܚ_^|;sshN@za0v&|<9VX|l2Du]fV*h0_5^ b1OspD|8ZX_2Ff,dݹ:)}oћ5?S/goӡ4
K8t^zdm: `/Jjg&%nvƚ5Z&hM*F$uE-&б儗VvFkeKvGkf$ M(9Ț9L9:KO!72Btsfc{9k٣^bo?CM<m7bQoފΟo| navq6+;<nB6l|Unv۹w.b,4 $R+d94v>>9A&^aSDCVp]x&"-1<T&*8M⌲ٱؤxJ5u JjxSK[Աmɛ lŎ$WV?.o\N%p۶E-Dqv%NKp HEoy;Vz>)u C40뒽47:$ē)&-XШpL`*I_=70y\vp;7TeɟKjNJRi:^:DnU/InNޕ%z)500{{wDnO\w\JͰ!R)m|D v3ɿA:cKӍrJDSj:p#U%1#[[VG0N~޽K(URR
@@ -759,15 +762,12 @@ K8t^zdm: `/Jjg&%nvƚ5Z&hM*F$uE-&б儗VvFke
R:{rst;E(H ǓVt `u5x0mL9ǨCZeG7+y_RHe#\;Qjuqy-:dŦRFkl]~}
v'WlZ,80 NZV Qy3j'Sغ<W/]os,R;MRXBYBEY]D~5n
ҦqBH+\TɇI%@+bK}%[@ ,_ >/:۽{oWY_f )W,WJˑh"rEP:EsGl4whL?o4!T ya!DS60<tz>!Y6. 7RM
-0rS+pɧ8Z
-/ .'Ԭxb*(enb:)O؝!ʈ\`ay ;L#U.Znr>9%p\ۘ+5&2ؖBqD3$bm
- ZqEv/a[NK@j?s&:c```B:뙀"0C}qkѢL<9]:~|2k ﰚ
-M`oA-3G5Ik}{j f`FfOz>4DZ.
-^hVeg"NafC
--pχaF$,
-,YY
-l\j5iz$2].& Ys3Xah;qK 0%&]!)OCzwS+ն^dn;=v8/RNEkK8
-(N5y?y
+0rS+pɧ8Z
+O-ŀO#%A̺ w5 5+=7
+t٩ؽEJvg2b6<fXaH4Kƭ\"5dOorI$6
+cͷI8 P6 XBV\];c aŖ@1}윉<9X3{kz&`3xGL'Fo0i{_q(OyN<+;8=ԅ$z)B[P Qfm=kc_6ž?QYy.$ ,־
+E;w}azs#D냅SZx'.g/
+ )bs"tVzSqyc ыځʟS/)G'
endstream
endobj
407 0 obj
@@ -792,33 +792,32 @@ endobj
<< /D [ 407 0 R /XYZ 337.806 305.56 null ] >>
endobj
406 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F17 380 0 R /F26 410 0 R /F20 376 0 R /F18 377 0 R /F22 404 0 R /F65 387 0 R /F57 385 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F17 380 0 R /F26 410 0 R /F20 376 0 R /F18 377 0 R /F22 404 0 R /F64 387 0 R /F57 385 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
421 0 obj
<< /Filter /FlateDecode /Length 5798 >>
stream
-x=ˎ$9n8*VPhkr}[k7)"2;3SAQ|$]ӓ>/_xuqfƩ/OE.>/ކx|u:~˗[
+x=ˎ$9n8*VPhkr}[k7)"2;3SAQ|$]ӓ>/_xuafƩ/OE.>/ކx|u:~˗[
+\}#PC ԇg-( A+Db%=H3ArJ?H58O6Ĩv( Uq>
!?q4r??&$J5:̄&WLcZZ%ݤ!Ke^?(AT¨ܮ.% "&9^uŧJ;R nL-JIT3oWƮ Iךω$N(
-*BHQT!ᩁ Lq3u-T5܂q"0ҮakUDM&2B'+XP>/Ÿ{KtSHDlZ0Ms;IX*1*Ri)5Z5URTTV5k FuyB3Y#>*>Lua*V%^`Y҃3G#k!MizU1WZR&lK?n^=Qw+"%[d5ÈJ+C*4*7n)]o:Usq~5uCMRy6툍!S
-iGwwv>mg7۾]EMqOd}f`v~| ؏ }7gC Unl56QtaW۬>Z/uHTQ+[Խ_39ݿ3}Wq[Ҝt"iNeji<|]?Bƴ2@Jb"pR|g6hF!* =0jW(&w8H?ʠ]ip4E :2> .NSWϼVeiL`|ܿBt ROK)Wi3ecR+/Qs6'gj! Zq8}x?%f 326Jo~U}FoWDTFk.>pU_<᫐.=kZzO|kZ oMhn*
-}N [oVQ,0 ?~3
-
-}^{FC5a0係>mmG=z>է$DcW]E L|hwl>0pdR 3a-Tsx.7-jm*mX}xSPڝ/MjWH,. n2ύmGAN+t0:<5Q}Xtqal@Xhk$ IOԒG>S=n*^R50<FFpYI?6uAK]gӳDm#
-1EAx
-al6 4.@H~jȁbUast6[R\Թ<o|U0|Bm6|AXC Ŭ!;CWzp+cE^&fs\(о&fkQ/$&*Ս\&"9n:@/.J.RkEX8`aբj'Q;ϤvgRK:Xcb%2܉Pe.[MF)d2 :9X@)cr
-
-#L+x";5މ䠅8]YjiwăڄueҪAJPlP;0&%Vxbq.%" ¸ỈV)ߜzFc
-l$~oxi<Q(O`͎j2iI{XD7]ߖR1ݼϵbd 7$( f48!vڣ{rRvj6~l}{ADMNR6S1֎JFj ?(c pWqo1ۨh]K\(qjTfG+рD C,x!P[MUy=Ym?ԘW+ǜck޴M;>M9&O˸M2tټyD̙#IX9V$q{NGߝlat0臖]1Wֻg
-K|El.vq lw@xd@ٺٺᑭ}d>uٺlG#[}d>uٺlG#[nf*Hn @}HK)[[~NdBu|}~<Oc?֪/8R(w˚*]6_G|-)D|Aw
-zfzMOm*lܝqΨw]&\&t`jKnrnbMN2uvV#/Shm!Ye~S>B}::zY^'ufuR"^ľm#|>Pj2/),<};N?"f<6l)mD{29b팶=;cDyߜqOg9f}|Iؿd/>G2LLH}h
-ȳAK,AW0iYw[gOsX7xwz 5_%kz}kZ';,Xo<&>l FLn8! +9{֐;h0d4`M<;ϐ#=ix nOr#֩uYφp7-CvYARbj-\Y]RytCpiM<Deq wK&O|= qX:uGb:")`fëּ']CM$ykPfzu5t
-
-澐bh (#{Ȓi8s=(7Fa$=ã2ױv ew&mۜ=`Ǣ!Q38.mۄxZg/'J s;F^ȼZKU:ΑsSHvǜ#dʶs{
-m _ٌĥ<Ϻu҆S+DGA)FgV27n#g]`@\ V򥕺`9Nh{I+hV %6LSl%{RnHvBn=
-QMN7?QwLĠYSK 1):.=HqRBn@Vv+2]/S0tG_ѵhr×?68ܝǀؖ~T62NW:':[Oj$<2Q*@iUt§쐫ͅ[7 Q`.E8«C)&N~i Gӱo᧔\wzԮ1;&YPg)(j c<ƥɳ;EG޿oj
-cU+44䱮)6d} qS);Rэ[3Ne2,xslP{V׽hnb=Ӻ;=G<XQs^<{܎|+_ü'#oaԃӋ
-\T51T6to&dMQ 7
+*BHQT!ᩁ Lq3u-T5܂q"0ҮakUDM&2B'+XP>/Ÿ{Ktsش~av$*UȫcT S:k$AKjV'jn*,̭`;vfkF|T|™>H}U2FMK пg
+FLB* <,b]MT~ܬzNX',LWD(Kd}6k#5
+ PW\UiVUnXS#t6 jlXIlC
+YrUXpyNIץ5j!/
+Sj9+CQj% `WU8*_ph8rɸzAŘ"f^ctE,)*q-TUi0\Q1jIӎt*q<PmF]`W2 {-An+xchW0DLIi
+nӷ}w48Y0.n^_ϖjn4تkmR®Y}給 ^xW{)i7gr݋ӓgⶤ9ADQ+2>j'y* )~fie-TEVԥl*9CTpz` !ZlM 5#).P7P-LpڕAQi%tƧ/,hse|\,+5yEk6U2eϥO#RcEggV^mNΪB8p:1&J̤;fdlzÃݕߪ3:6ޮ0r֞]l}RtkyW!#O#]{ֆŵ66ז;Л*U+N]0٘?9ZtGĜbU,
+xGj{'Iٙ(8}`DȤ;fZ,u*\dol![8,oۆUڰ5.; _"X*8B;Y]AeҟێVa&`5uyTk<t9VwgZ֎I@Aڟty+%-;-W}{0U2н$(i˥3pk`Ry&.U[l:GQT)ϺgFbI|hm, Ji\Ƒ#}Ūf5Z:#ZQmm 0lsyj)-50b`zl&02(5YCvBစWBNJRL
+3P}#L֢^,HLTlLD
+2ﴉ'| 8Uv
+9$( "3cedyJ)H̷;)rC7|W11<_!.dqUD#Y^jTJS cc5$PPn8/r"N^i
++Tח,\2QP0`hCbn̋HJ8j؈qjA++qtIw->(-,haƹ ,87
+3DA}ΨL|MхC :4*܀HJTJ,FblLCasDҰ0<۔ɼX(4g@@jʚX)1EwjKA+?ryTT/'a⩃6U-?":<iʬ^{떿.O,5gH('/QhC(9Sі=5eT_Yrw  >ї>C%弦:{[>2lͰL&+xv8e%v7IH#H.:L"xPȟf'dҒ oJ.ٿ-חbyickZ-nnHLSQ48ipBGJtm/,G+* ߛ8 mbH+'z#ԍ8XQsW54 b*>LQZPԈ-8̎V~50٣.1 8YvCCšrPD{^610W9ּiv}rLퟪqdNy|3G߱BsILgn0;da-P PUIcw϶$nrnY ;[hPE##t(Sin=&X4s1}=F/dJĪ
+wja<Ni܅d3e+s@(G܆.:ݷNGxw'jk~ &muW ]+iƵÄ^Tۃ`p^#?3:udX>,pGb5HC-'KS`~u/d
+}.Y&㿂='vs/D
+LJ}K /tWfS_?jqF.-#ǙFA6f,8[jٺ]X;ϳ=v7[9iuÛu#[}d>uٺlG#[}d>uٺlG#[3[-U%:&{o- PL5SeFq|qy< U;9_p*ե&Qn5W%UlPlaW!$ZS䉞
+5ICIgT/"f]s a;]B1r/}!ʈydڭ2ΜtʍQx𨭌Du)mٝ}[G<d:6g.)?o9رx|H l g6#.Kezɥ\2iRi!NFsܔ0Ҿ1fpf#ޯB»W6#q>zFJ4ёo0{PʁǙ꿕 `Yfsm9Pk?å|i.XcSg.9t
+8ڤ&{[ު2Ї[7@lx#Up<"]O7&ۼYO{zmn+[}uh-p^z<Ҷt1;\K W7#&Em_;K)hfjBd?6rM:]twٗ;|Y7vpZ1xkPl.-^ib.Zn4-,/9$@upRëf*7F-}ߣm԰j?7O9ov9Gl_vs|FZuN4JO6Wؗ ̅yJʅ :_k ފ3|9l5>L^ߚ/IO0x*tQ`'CNo~]xACqAmc:SRKu^]z⤄~'݀v:/Wdg^(aDk!/lp;-fۯmRdtO u$I$yxeq{TCӪ…O!WM ]W6n\2 lqW:SLH"c4O)Wrw]cv
+LlSP03xKgw >2{Ԧ1 6 Vi(bibc]_Sl& Ʉr?PR`wLDfdY~24{)BY)zfu 5wl' {nxF bx2WyOG#:4NgueG&:;<jbr)m>LȢ)yp 4
endstream
endobj
420 0 obj
@@ -849,24 +848,30 @@ endobj
<< /D [ 420 0 R /XYZ 79.37 734.627 null ] >>
endobj
419 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F58 386 0 R /F19 379 0 R /F25 375 0 R /F16 382 0 R /F57 385 0 R /F32 423 0 R /F65 387 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F58 386 0 R /F19 379 0 R /F25 375 0 R /F16 382 0 R /F57 385 0 R /F32 423 0 R /F64 387 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
436 0 obj
-<< /Filter /FlateDecode /Length 4708 >>
-stream
-xڵ$-߯D
-_?ehnJΠMJJ).]J}]A*aY<Jf]ᬈ-]ӈ|+w jeCq
-H9V@7?@+$S: jbX)lU7%oWWoym`%Lp3ooF#yyCHLITݖt]ZE~.dc+:O++TP ˮNeWR޻MHR0Z 'ݴUqQh|!FL<P:W(:ڙ6/,#Zkhle<'QH9\oވOWY+ ~¨mpPigiLp'fzYfr懮$>7#"rջW
-Fv(lWWf@j}}66^On\
-D WC+ad1z$=Neќ</ QY#4|w$[anEx~^y]yh
-oV6g ?+,oݭ̢Dk+e-=2"<*LEnWRtg0eշFzrŦh9HPGV*ՙF*7x8@O-sx0Ruu:h e[EAIsI?( 1NЬ2Akw+*tlWJ KE4d< w $nǗWo_0ciBi$_ml,DmLĠ|[=ٽn#BFܖU UU<y{Ms!#} Q יA&^
-RG
- -}4i J[QV1I[u
-
-mvxg 20ԗzH;B{~cR{ -G<M9&6my"=3ۣ1yLćlVoێqYQ4gXHa%-^ָ.9,O0B?㝓VdRU(>f7O]Yd\M+>L.LTv ݶQx,j2- Q"ތOmg%5@/U5EY 8zL9h]`h6ux: zف]^_l"m)89I
-~`otܙL,zȚ}Nc֡()wrBN
-9q~X 2Y K49BYmqx q\UӹXU;X3f,do#WRDѡC[7$r{ʺmeiK]E'OuI..m/[Jף+C5]7Ԝma/3E ;zgS,3$ZYmrz5IrՕs|}p*+Z^+JJ^q&iw}-U?g~z2AӾbʈSrپJ v~2=zw
-C@O@+Fw[ٕ@]V<O/Nu^{1lae; o?ucX"Kߎ}?dm;Jk2 _ h)7@lޖAL@x4<yddut@YLI͟¨:k l`ݵ _۷|e7.d|=GΒtwH_{W*ab\*Y4 H+2ޅu$n $mh~n3W^mrni}-i}:COx_͙=R?O{W#E(#߅<GT򐂦C6NBFۧ~?.#ˇJO)y</G,Dc/*)pfģN<b 0x f$s7u,RlȃP83}pE;)6rm#03-aK_8sJo/9])Yǃq2Ċg[X?0< 3 DWhTF5_7OT 8xj&G%1xpN3WeuTFo6}5&չ[S4cpf?g494ĭ`J%34a:w-vu=|l/2ѽϜY&0=1, ۥJ9ne?^ 'Ӻ*9W
+<< /Filter /FlateDecode /Length 4652 >>
+stream
+xڵ$-߯D]jhT%G*oRd[lv7xy+ow
+gE,`nFXq;HT&i5+H4 #4P v7'f~/w
+Q?s&@04^ ~u ~Jc0ffvՕygJiyMU9Vi{LJ:Ë+D\!9tz4P BUVz(rY~Ve~F(I6n{U{Q:"UgQi@
+ %6-麴\2ƸWt(+TP ˮN+)]tq$K GZ- 'ݴUqQh|!FL< t:P!ڙ6/,-Zil֥='QH8P6r|כ7U֊|0j[8TAB܉^T_@CWwTYT9@|sZFG;]FJ+3q~RQؾ>
+?'7NW#+wšp.IwYO"'^9aNK^ygJ"JaOMu+tTխ+/P |W;l1@K3k9 P~t󒒇ٜFXzZMʗ˭ͦ T*By@%ߥ'
+%oG8e^v40U$n90u[65y^fwɎ$Ө̉#$s']֊ (Z,1"|Ǒdž+piLJZ%o)IyUiQjorC<~鑊O8F=QqA@Xf*;mNeMZPw5OhIH)8BhN;Yp°2Ϻ-3 D;o#m[*7
+`Y6FS=g
+J7B826LWRUAlc,J ;K[4d<4w!$nǗɯWo,1״?!״`-07|lW6p g N0mu 'dqYQU_Ȯʘ':8>2ieD4i21McZkAH]-8YύFiޢ]En칱r~= RȒs=73F
+i&MP(*teŲu0BH_;ój*1,q Aj 7p's,Z蠗[CQZPL
+e|2iBmrr0<.(^6%EA W8E': I͌o!NnžXCL>#eqoff;-.WߣXrwחh͌oOiHT,M1ND69%Lj~CB
+ƅFjYY+9='11ͫm>T@!٤ʲCˊ4煀V'{憡ߚg3o1޳Ji."-G<<"U
+7 <9 x|_v|uu܇gNqׄe e԰#?Gnn:|Oh  vf:V Xk]x=q ga8`.&/VԳTbYŌeإ(Qbudž
+)u~⓰ E`?sޅ-f]_4DY8^hT1
+ UxZؖ$㶳⠠d7zw($,C鲭C(+Km7!Op ?۾dԐQkm1e$pQ6YUƲJM{Z*{U3\q;:hCMd&?Ar$׮hYCT<a힓ޭ
+³ ui%£[ɭ5j5L^x)d8iI_*W29\] cVw~
+#Ȏ@ڹ:s#2߳=f[*= }`Mls#4nDsG'=>b2yaP` b‚6 JYڷn;ite#i׏H%QnK>[oMa 
+gLƿڀ_YP@^Cor<3ѓNLEwX91NLW~WH/,TS⨝wQ!IxҘV, Ϫ/Lghxg^V<G ,,M,RorUObU^h]4iU `d=e'Wk+#ѿ߄M]&-02>ycz gwipyBofoq=۸ahr}wTE걋C#9Mw!Ie5sҼ2^klǹD+Ȼ~WITpWՅ$W͇e⎟!mSrLa:X )s0P8;G)ҞiOrhk^a٩TК0pεD%e,x.<^;;jc1nǂ⻼}<NS;v KE1s۱ {t)bM+n- 0|i^}1" *H8 e3O`f0])CQ[䞔5z#JE#9t,u(Y,nqlm49Xa|JlĪU\D@y-,K?p_n?ѻuOx3 Y*=F?24{ m/v_RP&
+? ??.#ˇqJO?L /5.J{[CzfMmRGmyIOq34<7#{c1$jG9gleu˶/>V9QlOG&5T/sߚ{S}s-yX.֔ s=Ob8Ə]0 ?! BF;Q䕮fm1Ƈ; S-q8@3Z\u3T~EȒt„a(qLٹU٢_ࣝo*}n}4^r ƴ3 "5? .VԈCuܝǴפj ӱTmqˮ_{
+M#tz
endstream
endobj
435 0 obj
@@ -876,46 +881,46 @@ endobj
[ 425 0 R 426 0 R 427 0 R 428 0 R 429 0 R 430 0 R 431 0 R 432 0 R 433 0 R ]
endobj
425 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 328.934 600.532 340.889 612.487 ]/A << /S /GoTo /D (subsection.18.6) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 328.934 597.971 340.889 609.926 ]/A << /S /GoTo /D (subsection.18.6) >> >>
endobj
426 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 214.424 550.783 226.379 561.662 ]/A << /S /GoTo /D (subsection.18.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 214.424 547.672 226.379 558.551 ]/A << /S /GoTo /D (subsection.18.1) >> >>
endobj
427 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 302.553 443.49 314.508 455.446 ]/A << /S /GoTo /D (section.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 302.553 438.368 314.508 450.323 ]/A << /S /GoTo /D (section.12) >> >>
endobj
428 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.536 389.91 143.51 403.426 ]/A << /S /GoTo /D (section.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.536 383.688 143.51 397.204 ]/A << /S /GoTo /D (section.5) >> >>
endobj
429 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 156.461 389.91 168.416 403.426 ]/A << /S /GoTo /D (section.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 156.461 383.688 168.416 397.204 ]/A << /S /GoTo /D (section.5) >> >>
endobj
430 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 247.43 377.937 267.136 388.896 ]/A << /S /GoTo /D (subsection.18.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 247.43 371.44 267.136 382.399 ]/A << /S /GoTo /D (subsection.18.1) >> >>
endobj
431 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 294.474 377.937 306.429 388.896 ]/A << /S /GoTo /D (subsection.18.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 294.474 371.44 306.429 382.399 ]/A << /S /GoTo /D (subsection.18.1) >> >>
endobj
432 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 95.809 337.903 110.533 349.858 ]/A << /S /GoTo /D (subsection.4.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 95.809 330.582 110.533 342.537 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
433 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 123.485 337.903 130.459 349.858 ]/A << /S /GoTo /D (subsection.4.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 123.485 330.582 130.459 342.537 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
437 0 obj
<< /D [ 435 0 R /XYZ 78.37 808.885 null ] >>
endobj
434 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F66 388 0 R /F65 387 0 R /F16 382 0 R /F67 389 0 R /F48 391 0 R /F72 438 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F65 388 0 R /F64 387 0 R /F16 382 0 R /F66 389 0 R /F48 391 0 R /F71 438 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
449 0 obj
-<< /Filter /FlateDecode /Length 5236 >>
+<< /Filter /FlateDecode /Length 5237 >>
stream
x=ێ\Jhp]߂<"
@M0|?_n + A6 ᑾD9I?c7}%*`R9k4hsğ2vO~_͇Y诸۲@8ϔQFސM홐aJl4KumDq\EܼF!"5T)}$Vڀ##B1`([⢴ piZ=B)W[@ѵ)s󏮕V(H)O;<b[YeI S\l,8AIc9mPԳQ
[@S;,G뢎kd/J+f9, > INQI|^@dП:\P7is;f ;e8+ifN9иAY@mV`ւeVm( sPDzi˅EpQ9-`R AJJ٢Cx3[wV#Am=-yD(\\pn$YM?*NJV՞`JaZ]Ӽ\\"#Ada[TwM#b/f
|XxT7{}A)&:æ`[gzW3tC!h۩o$N1cJ_ Vg<o` q ^R3'þR3 pa颇zsCϘzH-ē@n4'BG[!/^A^8[^>n VY Ygd6y)Bd ɰ->Uos-2״"Aa"l9>1 vgV_O[W|CcZ8PB~Uf69 1ފM3c!40o<BI֞Z}k*m#(2L
-ku]Mm""Ej-Z8K'UKyhn;J%j$.OY2Y#X0¶z&xEFcz/xk#E:4l"kTY4g//Odz)Ӛai<r`(!$C+GR:&*C1顄)6W337)bAa4BM+jjo(>#'gNI8׭(Qhy!""}nB҈6%*Wf9]刐x#VQ% ,Z絗;':Bawrl*@Bq3-Yڃ
+ku]Mm""Ej-Z8K'UKyhn;J%j$.OY2Y#X#<G¶z&xEFcz/xk#E:4l"kTY4g//Odz)Ӛai<r`(!$C+GR:&*C1顄)6W337)bAa4BM+jjo(>#'gNI8׭(Qhy!""}nB҈6%*Wf9]刐x#VQ% ,Z絗;':Bawrl*@Bq3-Yڃ
eZP˙_IIh biYg;IYց,B!m $b즥457A/۽;=<ݻTq!g{Y}wPn@04G*ĞHH3r$ކ#aO2Yqte
t'*y=`' 1%)b豴C]յekݚOҨӣΠ\u;1闭OٻO ]j⻭{GG11iD57~[|yntÖakKBqnI<ޫo=KN *3rK5IT TC#!k[>
ׇ ;ܷM hkǘcf_9t *lÓרSn?W~џ)
@@ -933,7 +938,7 @@ t'*y=`' 1%)b豴C]յekݚOҨӣΠ\u;1闭OٻO ]j⻭
T@q/_VCouhǢ %4#NP耩Ř`'W_Pl_3ހ uaw/ 3CoitAHqeA/k}V>>VMFU鶬B'e!t(GqxS3:֛}CN#gÛzj uYin?2pQ!)hNg39C<QQk5+ՕP3)RB[`ʹ/։)#E6Q!VYҘ˜?;
vjZj>:C.*{' ]/Y!)Uv+c_ȠɰYv%:1 y"EzyjSޞc/[#ı2i~X:j]]OnP֑ˮ~1: Ξ,Pv숹UZiR9Z­`
8(MC̀~eTtCYUDtșW*֭25
-;T,ϜME>;KD>N5y<wZm^ }UZ Ngj/FyQB..0!V N"_K0^`Ef-N$sqOe8uC]<2`XOwy{O*mWᵜwxHz4m w=(
+;T,ϜME>;KD>N5y<wZm^ }UZ Ngj/FyQB..0!V N"_K0^`Ef-N$sqOe8uC]<2`XOwy{O*mWᵜwxHz4m e=%
endstream
endobj
448 0 obj
@@ -976,17 +981,17 @@ endobj
<< /D [ 448 0 R /XYZ 79.37 261.892 null ] >>
endobj
447 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F28 367 0 R /F69 402 0 R /F56 384 0 R /F57 385 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F28 367 0 R /F68 402 0 R /F56 384 0 R /F57 385 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
454 0 obj
-<< /Filter /FlateDecode /Length 5835 >>
+<< /Filter /FlateDecode /Length 5834 >>
stream
x]Kd'ׯȥ{y?RI7}}-yV+ϸGH
>Y.%r=-
D
[4$+O͢HVrj1ڌ5NR@z!ҙXFrq\ҁ2y@=
Ɇ* 2ǻ%]TcD9<h`#ŗj \?Ѩw, D>
-<O72c Oʺ(=W`Q<} ɹ-ՃZdBeK֤_*<j7/4%0hy ]<c6t_>Z k ]M4j
+<O72c Oʺ(=W`Q<} ɹ-ՃZdBeK֤_*<j7/4%0hy ]<c6t_\@>Z k ]M4j
3a*5Egÿye/ڛ$}-ͩ&Jj^ʑ^k6_nҨC"N{ (^72=2QmSuI2I\a7nֹxƨ?"w Bm
EKc#=JLT KFŴDc[Eh -oTmO ^$'fW;vDfymSȥuN]S{"."f$v+~
*^e_wt7}哋NCjDxμ99Q'_fupzc5{\YԽdòj [O6,~aUg꬛@vδĖ|6B|݆,>hhjȉzF \IE53OOć!DM;I I6͌\ؚ0x!Éf*DDhԵE󒗳nu|w,&wo@#yn9LUl%S[;dz$7
@@ -1009,7 +1014,7 @@ t̸+0g=\|=B
qxs;O
<UFɻ*JI<]|>C-U"FZGwUgf*a\JBYu/^>f%Zu<WBR\+X: 2;<dE[ڨEkj~@fzZG.y:o!x)]h+^+yyn&0\^֬7{b֚"gx;)̷6ulϰBMjKY3wxX}
+)-T:W?h9_y9`lN3rK߻RjL秕g3o0gʣَ` W źf)_CL*g߮ _C8]}33QZTt^uQ#^3'
-n噴/Tײ=쳇zgA ,2p*@ x#tcRi+1Vdw32ҝ*ڍ]@{i6Lg{a\ۯm
+n噴/Tײ=쳇zgA ,2p*@ x#tcRi+1Vdw32ҝ*ڍ]@{i6Lg{a\ۯm
endstream
endobj
453 0 obj
@@ -1022,7 +1027,7 @@ endobj
<< /D [ 453 0 R /XYZ 79.37 616.605 null ] >>
endobj
452 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F58 386 0 R /F69 402 0 R /F25 375 0 R /F16 382 0 R /F32 423 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F58 386 0 R /F68 402 0 R /F25 375 0 R /F16 382 0 R /F32 423 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
458 0 obj
<< /Filter /FlateDecode /Length 5026 >>
@@ -1035,21 +1040,24 @@ x]IoWtPOOOs'}ϫ}aY9EZz[˗/?<]??
kS{N {ss'G$O9|c'?Ip}H<C&G4'-uQN~>C;wS$=
\&޹%>(yஓ$;)P_䏃rɇ5
D5m Sf[@RA +B̄* dQaÐ2X HnItÅ1ۤ'\fWg-j%}<]δ\`]5\d<y
-XEo]>zM]}+`26iKbϑx3k۞iVBÓy3ܶ '~ݮv>|5 h#¨P7^ƹ#>fw`Dd^&*UϘh06K{~h!裷-n luc#vQK9i~  i`;!3NӸ^qBlho/1*$CB!4 :׼yG}躲{x{:'f}!f)Ș4+&x@~tt\yV.i\>PS6/'S^ݱ>KP<IHrkNt H=[wseoFjw[bVKHB"_,O:–J2hLi=Q
-TF[R@IzrBk
-!~bB7TQlsbDȺvy%0/Ͽk6%dS@J=x]V{ÑlɅv!)С*z~~"RIG$R:->2 Xx٪X:v˜%=^0aqfwV\γ/i36=Y̦U7o)]VرM#Qi"k*Oi*􁚖Ku;C758^>ܓt;ǽ)w9 )69Jf“"
-sĴ7[j]\mOL}A3F@&1l-ua+0Qx?n41>ȖЦ 쌀d͍oaPמ[N [=DOѼ|Z.h^w<+iBnWG\Cje:a
-6/@ոSI\B#B^ݱ%ҖFJDƈ|=n{ū,ZjW~x^1WFCfGZ>~[u$VS
-qZK .*`^UM),㘚j$5Ytaʩ
-ޓӆfr,~oSd1!oe|]3^ QIrpT2œ1ze/eWGd
-<Us ;и?)Lb81Ho0 #{ &+ mސ! UlHw2.u=
-shB$"F*Q*=lNxV!(~@c˝
-ȬS]7s !uBSGަ;QY7:1bb5wZaZqѨt~SCJ'a >K'Wzk6Z5P] +Sǡ89! if}[򩞯Sݫ*`|.,g6)p#es L(WS{8DmNj9|PDUʷ;SaQ.{+M8t+AW% *JgkŒDǤnUn}3 Sńi蜾)i?Q}iH&s9JskUIw.<Yۋ͂v!vIª`bpbmjK *LAXӬǐ@Eb3^^BTM<
--:8oS.(t~^pQSK7 ESxM\|~'{QV^U<lŗ#N<X3̐ڀ4Hë;sCTi1_!T`ºs_0*d?qx[fU^CVc}XGH9S՗Sk#orN=<H\s]35O_Tg3!pֺ md%]_܅>2;R~"&Ғ1GW&MN~.nʒu^FU
-'׌l6`7f$OA5hG[/sݴE)fQb$L #'ƠMI4eT0mwtDч & <vpZm)aR #rqŗ Dل` 8~.-%!}f\'X`n7Q؉n 0}K?3/ڮAy/K@xN^%^.֠ ~۶[=lH!FI7s}ܦc ]
-)&(.u],->GK1uz;faQNc@b_Spn9~ k$F䑺p_/ACX~H 'ԅÆq -PTdN?-Zg`gQDm]#yӓCa;4PVg "3f[>~db?9<Rw5s8Wb=8{XY<")<Z578wp4掆>rDC
-"/v0 I&mSfGcȜyg8mU$~Y" m
-tUknċ=8QZW'q,s
+XEo]>zM]}+`26iKbϑx3k۞iVBÓy3ܶ '~ݮv>|5 h#¨P7^ƹ#>fw`Dd^&*^5ELE`=v?J
+`D[[:ۥ4SV40杏aircn kpM !fFk޼#¾Vgt]=lpQqF<ƍ=eu>TJ|dLNe~ ?m:.漋i+ ʊ4nz){)OyXl|D($$5'A:-]CRlﻹB
+7p܍eO-Xw%B$! OJ^t I/NKJ['xnaQJ%TG[
+ZTK6T2w5i֨H,ƎqL2J+SO,YK!r8O3<Ye Fi7>y$(D*ى
+my6?1Fh(AZE1Esdq<i|k
+ fm5^{F M.+ =m [ni6B吔XbPtJ= e?KTl܉$#Htr) LQڅ,<lU,euS؁0K8o3;qMT+.SYrrgrڞJfӁz
+^D\֪.F@tئ45`4rHjl @M%FqںK /I:P^EIn%_t3I9bZ-5..t6 &վ  [# 6:ǰZNvCt(^rb7muJtdKchƆvF@2ƷJk-P-מЧh^ L>D-΋vcv4/
+CV;A_ʹ\m+Gj#VZ.^q52 0
+=>GBZA )8[kJ^anuÓ- ^]oe3} +R"M,VcYB9Y@8"
+Qjܩ$MJA!xad!sXiK#o%{cD]pWU7=U~- 5+YU_J] l<+r!I3#q\w-:)s?)kwcg&RK8qNY0RmBqLM5RŊ0tTRiCN9up7FӐv̀kp@`98*Sɘu2v2QezY?t鹆h\|&sW7ZEAr `MUޑ=DaoH鐆SX*FqO@M:ڞzƹWwzU4]q!hm ^Clk'Q<y@hET~1Nfd֩T߮BݐFgyȩأ} oS{1;0P8hT:U!%0%F+=5Fv-.){FPy4>-TUZ{0D>SS^ٳxi8ߑVt]h&Pӽu"6MYLނŜA>yzF"*[]0(ҕ&|pp:@ڕ 3NbIcRrT*7>ċFmswbB4tNp|㴟ִZ$p{ݵ*;RfA|$aUI0eHKC6p{u`iVcH"1//!khc
+r)mo:|/apzࢩQ<GDpѦ .hQR?E͓Oc ~(C*ZLTFz,FfHm{nYUSם!4☯*t a]N{Pux2՟8GJ!爱>UX~a#$͜)vͷya9'CٞU$@W9.}ç/tD8k
+綊s/|`Wfb)\Z Q
+ZH|Fiɘ[#+&
+'Nbr7eIk:/xv kF
+
+B]6AKewWEd4nz" aYި\1xt&]P~'ͦ$d|*NqX"L;rG8R{0)l˃"wlBUJL?pmvٖ>3s,]0(@BGDG7y{ ΥFm ޼%z pb{T/|Z/kЌ̆m[뭌{C RTj󛎹>rnӱ̮ i .Oɣ%:v S(z]/`Jfcn?]#JvFH] reg8an/j EYN?EߓGaø(*
+Gd&ue;\p~p ~$:el͋
+=Ն8Sv^ٍ\]Ɗő$duvES0X3k
endstream
endobj
457 0 obj
@@ -1062,10 +1070,10 @@ endobj
<< /D [ 457 0 R /XYZ 79.37 429.973 null ] >>
endobj
456 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F67 389 0 R /F69 402 0 R /F58 386 0 R /F28 367 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F66 389 0 R /F68 402 0 R /F58 386 0 R /F28 367 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
462 0 obj
-<< /Filter /FlateDecode /Length 4964 >>
+<< /Filter /FlateDecode /Length 4965 >>
stream
x˒_?0 ߏ*<R>%Re_Ivn$@
@B^m_
@@ -1077,23 +1085,16 @@ b5 Kb6ਉf_[=R̤j3_NJܜf<Umwxm Aww$GhTԍ1\
y-Pa­ TTȫ N@Qn B^ O3h OB>!z$~Ӂ4D3s0C@B>A@HH ČB7QPG!@HP D!(ʃ
T]}c@!~ȃ@;a6IpFu
y}Έ&[A4XkAT$AuD%p
-T]Ճ0B :AJgo )"#̎@U1Ϸb P ۍGR 9G. z1_l]'kAVHQ5^ Rq$31 ՂAނ oA?R79
-$8ܯBX'i yMZA/vVLDoy`kG9
-v˹LJ"\IO
-\yяx<[ƯTA@ׅІ0R Fjp GAW7a,HD(] Rm:),y3 d2@ Wϥ:D-+>Qb> 1 E I14UfRyՌϧy:LL/' ':3][)\
-uӰR Lp0 
-*.;
-8N),,p+|Mncj]ͬu芵e6*DtϤṕUȟχR*3Ϸ1qѹj8BcEl\
-K(B[B$d{+BrC%Ӷ3KNT+B FwA  GW'ХS
-c
-ک9&nXΊPuQ kn8G"EaV/]ZF\O$ ڵ_
-'<LA]E፡qwH]; q\\ٱfX Zv_!f$pm+e 3Ag̨Ykq/_M @Uř(WO?߮QZ6-Zv㖵l"h$U.暡J dL6nNp<tIR襣2>v#Lp[~5е:^8Y9WD~PuI_v-jyΞ8f\Pڱ,C٥ИƔcMSS. CL=~WVK ~{r"bJN/XRՏRJcXT)Jp҂nSnU{{@tBw:Ŋ|a v[{uLKB}P=w<Zx'E ?|=Y<FI;jy"BphdKB\'ڽx;A'*_s^yuŒS3u`]gb;6]fB"\)CÓ_OO=W
- pw#tָZnqy L#ֈN٘첺4J틳ZDw :]Vw0C )z*Cj3ΜF;Cڟ{^ǒP/w9Y:!=k1Ƃ/IT,%k:+L/Asm s4G҄2U0xG/[) QrFPSMwiȗ<. ^i$D3w$HZ^kr[D"|2[(C>LXj2*lcZ n*nI%?s65%`ˎ=f/;o,\pQ=S:] BηC8Bo΍cC8W>BuaxGӶ‘85ڴ%`WH|6qO־iZHɣE(8J[ۨldHBMᐚ'.AG+n+ʡ>8*EߺغSku~yϋ=`'ЪE/o;0E"(锶b5x{;ڶmtsn(8B8l1xGՎ:W7k>B.܀x8l_vWǿJD1m28} ;iXk
-{V5/}qfs`[@ +={ qD.Ѽ6[5V뚭ah ovflsfk1e 5֌y|~dZ)I6 ,ܚ o?ϏS3(I4jp 0_5-0g(tbocs9cΡ!'Yκ'Lo28u",Gp}<]0ch<Gon^.Qĵ猗e.q&=,VvN (LY
-\䊤,^OVV2$wX({AcBs*PiWl YV2qVZLlIjy dUB
-<
-VݩiXjPf4fĄ.r⛜AT.L᭒^yeJ> ]rd,nӄZ5mƷЀY'&hWP?[LĒt#auhne{9PѰucSmxkF(1uvۭI"复v
-@&f>W8qML^tCm!ߔE]ok?e|zNN&m:<Z%*\û?<[}e*G;jJ}aL1e1
+T]Ճ0B :AJgo )"#̎@U1Ϸb P ۍGR 9G. z1_l]'kAVHQ5^ Rq$31 ՂAނ oA?R79
+ۆl';i⌰AKvH!i!X=Eتrȩ
+HZ|(K?|1hzJ,4V)_5"]+_HSp{oEHn{vu҉JqEh4=7!bR#44wJalYA; s5Ķ-5pCY|ٜu.Ja _(ЊEµKvD`aUK[)hâQ#1"iYシrg$!˞+; _ˮ>+DԌ3me>a&վ<K{b-嫩Uj85J˦wEqܲVM-*V\3\IwP .>R
+txBw4#ǢڮvInVG ?K=gCε4ˮE- 1, *P;e~(tZ٘r̰qj
+Vw֥_]}hgoj"ow\sQNQB ])p=EKóPa~QJi˂j41@ {]Zr-uܭjV}0SHn^X1#l_n˵|iIhJ]wa?ܵ\/}:ؗ'(@#: iGR-O[b;[-8l PH$Qo'\KuK3غXrjYlߦkl\ȴUks6y(Ӗxx Jasan<BpwB29A>I`vq :]VϳZ?W}qV+_莲:AgC3Y}f;EOTeP-z&ߙp|gCS4`X%.g;KGuC=$ԾtY" XE?)D4|[sZ=%hN=m<aHpU
+%{+%#4[ji[.1: +=Mh排I kMwԕHđRo}2`(Ӈ T-Wմx]%RzC^vbL dM%0Cz8sy~nƁ1w1ޠ{: e+.
+{JC tAhtHGmչqyȳGh;LShV"=R_8ǾF
+|~]# 9m6 7-ulM#lÚ5oϯ_|#Ys_+%†?[3`'qw<7
+\.k%z/hLhC*튭<`!KߪZ&Ϊ\I 6I1oJPHBX;0:K ʌٌEn^A|3hRe)U=LGt[z33K#-#rP&p2
+j⧜~XRNyD8Lմͭl;g;n}lPoȢB/&n5!I亜ڎ^>6d'Nr܋n
endstream
endobj
461 0 obj
@@ -1106,10 +1107,10 @@ endobj
<< /D [ 461 0 R /XYZ 79.37 431.402 null ] >>
endobj
460 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F28 367 0 R /F15 381 0 R /F69 402 0 R /F67 389 0 R /F55 383 0 R /F58 386 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F28 367 0 R /F15 381 0 R /F68 402 0 R /F66 389 0 R /F55 383 0 R /F58 386 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
469 0 obj
-<< /Filter /FlateDecode /Length 5084 >>
+<< /Filter /FlateDecode /Length 5083 >>
stream
x=ˎ$<ڇ~
m|yfvs0BӖgM*,LHpTs'G<)h)M2\fgGjKS;z&ԝXY)oEoEJsg cwLۦSEUwв fQ>q.ƭԑl]g6fXSٰ#+ >]18 xÍF^r6 kqˌ1#yD%=TɃJ^=OTk9ohfvMWT(ڽ5u| ­ϚtD;zc/MާhƳ_we W?ų̆²
@@ -1119,23 +1120,26 @@ m|yfvs0BӖgM*,LHpTs'G<)h)M2\fgGjKS;z&
\1B
hhbK)#^)DN,0gL[b!JQ9> >(e=T@d"R3֌RbtӊM ȽB)LX4g2~{WaA8J@P a 8
gZ K&e5nV7QbJ$6/`цbF]ҡw2< mFL):pFO-:ĶA7692Ը!]4]$uV}NtƚŁ˹fpw.mhaW@+ M &o[spi^X٣ק=v?C|2-ƭ|Zl<eJi
-k3hRN,6/GL\"] 2jZ25qsa=ia1%&<PGs5kHGVv~FC\lᬂi>JFQ!Ȓ)02EW)4SdcZWuS VۻD>z@>~'vJ5oE>:#zHG_`|o{wy[ƄEgF<􌷭ʱnLѪTiE6ؾVpo˂x+[F9Pz/zZ^ʼnv@EvL*veQVV˹%"8R% u5u뚎eqtcOX(,K2o 3m85BkG٨ V\ErՔUJ[}*JJyua=RBɡ`Tˉ\8WaR
-^RZSH];~4/*6HVK%##ťZT[jVmZ{<S~;hv$0O H9P''t.WiFd*m*ƍZFBu?#.kuN60L_ ly ]&[cIfMNt^XJz m@`*S+uZw
--#OEt >ɲXHtKSVd/"ȡbw+qe$ToEqXA` *a ɍI#0bOG]nNIJNu)ͤDxR`햴5 ゙dޙښЛTk[!v wWݿt߁
-"(Fbsy2d~ʎ-~ bc+Uc^ĦёYfG[{YOԠ Pk s)-_ $֏ҢN X`B.LK>7K&C<  9N =cdͳ#9 Y}#[ʹ
-#_FAf\&:G:XS볪Gztdh; v{;"m F.Wǵ"/-"
-Ucj U';<`qNv0uy;dGKD([0J+uCuW=q>eI/u
-yk[~R<b Vv6餍C ahzLsAv<&]P5i3/%JD֫8͢uۅBpBQýfv⛽mfw74\<շ\ۏŶA);Pz$=ޫDj͘K𠓥mL`?XR]$op
-#GٻBs9s\/VAfJyQh<aHSr=g-d e7n != /Sr,}Yxd "u> ҍRʟ9>JIFIRB xUARwZ_>;lkq Z6xҶ]$Ϛݴsq%`R,V-
-ob,Rm5r*Eо0]wXq22ܒ˦ahLS7ʲv- +R0!¢Ϧ7
-E K?fp6Ϥ gN/x)Qg6ӂ%DH.`BwE+>ܩZ^7^G;L$VT
-Z]k79VXܼN
- k1zk~h){jeWPrj@<P̪ }:I4}a3efw}bv0{wBB]6J0ݬ
-xQ=Rx'>py;z͜7Z'`ߑ
-zTټ +]H.\$t\/ݛ&)MfPuެx%a:n6_Şk#7%vl: 1'/Tx:⣼uAv}ҫmK.=!>CSC#_g@lo׿u0z4ڿ]3%uTc')o)xc?s^fNyP
-αS94ЯV2#&ޙrM]˗ |Wɨ w&@S%).o>^/AԊQ9J 37
-E܆݋b(tO`a>RE<jTc^~-+ۈm{~)kf@[8OΑvg"b)p䕵G.6JJIϘԈM՟ʿ|OWY3f#l (p v >_9`GoV[vkn\fN¸n4nm/+N'N)*[seH*QEE@)nuGnjVݑ<l!"s.?E;ޥL>敯U3\<g7^ao{=#x\ЏV2Zz[VZ3y(/F9竹@Ngp$iǼ)$\HOyt*S4f=( 0/4v2 FJvY\v䷫ jo\羗G5,ao%/мNJ4Uĺ+*k~uN)MR'ER9XܔJ'=}]zOSzHeTtxZl[NXh$ _DCa[i'?29X"-f5{GIPɠ?:#LB'Hk*cI
--~7R
+k3hRN,6/GL\"] 2jZ25qsa=ia1%&<PGs5kHGVv~FC\lᬂi>JFQ!Ȓ)02EW)4SdcZWuS VۻD>z@>~'vJ5oE>:#zHG_`|o{wy[ƄEgF<􌷭ʱnLѪTiE6ؾVpo˂x+[F9Pz/zZ^ʼnv@EvL*veQVV˹%"8R% u5u뚎eqtcOp0 (m҄ [a(Nڑ-9gA6}WQ\5|ձr|_u`F]hEwƮPkr%=r":ΕjE[~jr|D„ĺ>4RN:
+3^&]ZtkEیadW6ʷ"NY}4zRlYYq~k!rUn=-
+ӱ$i1$?9!yϣ
+PS# ?G&
+?"#з&?ozz4v$/cY1 x>E=! M$Z~Z
+}.VMjYu>0[ujY( 'dS C|4NbNietR7\|=}>?N
+=
+xNN^~ iG'Gwc"ÉLzs$upk:89A+K^F7+n 6hH|4fϜ#`T #VX:;_"l.&k&=,d9ٓ52Aɪ~H߿t%* T?ߺ1hZ K,H{黈|<!I,i'JYfzK ^QIxü$9S$ixȎ4Vtӛ-Ll%"\`dM~Ƿ1?M-͞_Lf]P_.=;۟}w/o]8p^.(}\<oxkJY &h$W Dқ
+TLP6@e=۞eDu|vR"Nk,'v>WH6)7",Y5ПCz`Ř0V
+oC
+\/w3
+טwjZS/
+
+yh{BYi)> )௛
+Gͻ҅$O9Oҽi"toU/x@[coC U6<}SiǦ SzRMn^
+/>ʫ]lh*i Ϻr34^94</E 6vP˛Y'=Lu1SWA?v2̜
+83hPU9;
+KÈNj;Q,31ދ`)Є^| gL
+4Ur"1_+mnD˨dݐ8sPm߽H(vB,\CK5Vׂk0+[Ѷgkhf siwz*"b I^Y{bmﬔITɨWt5c>–ڀ`<Z̡{|4VnU:ٸUi eMO,F3/;?tz2 %[O<Yv:5
+^Di۹Y4{X_ 韟&]wk%Ö"=3OqZ]c^Z~ <sN~l݃=2h%c翥n52\0ms tF;z 'N6~̛rOʍwLb9AcvÍ
endstream
endobj
468 0 obj
@@ -1169,32 +1173,32 @@ endobj
<< /D [ 468 0 R /XYZ 79.37 129.534 null ] >>
endobj
467 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F69 402 0 R /F55 383 0 R /F67 389 0 R /F19 379 0 R /F16 382 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F68 402 0 R /F55 383 0 R /F66 389 0 R /F19 379 0 R /F16 382 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
476 0 obj
-<< /Filter /FlateDecode /Length 4371 >>
+<< /Filter /FlateDecode /Length 4372 >>
stream
x<ˎ]H u}] dVF LtPy]=rΑ(K$u7~內/zӠ/^Ǥ-_?qg\?~
s.@~9 9#$v *= {xd- wa# <NaĦ1.P\p~q zy EhW
90B  XVLd>>23 AR1u^*)a=NL o[_`{ܿvn:RSf{$L9S^_6!Q!9sL1Hqϼc*Fu2D:QꟃYqY8ƅDF,(8y_^ DCϵpv7M+j‹_kxjҾEuGYIHqT>"L2Ӡj%< dBug93iHfߪ0
朼mKcъL2.]eWAzkZoꌐ\#ɘYc%V$Iϱ(F0KE6޷OU˗mbYzYX"?d wbxbpru/z#Әa.F'<T>e R5N+ULޮT V0qx߿C%+gvC P<[<aP$doϘGvqQ+KS|G6'2
(RE? bU㟼+.ٳarqZ1y\H4a%C a&_9h;%OX2u#f#*fn8rmd@ o7-&6Hgo/|5>^c=g*-'hQpc0;_ş!E6ԩ)y%4 85dr?6b2'y,gy<
-ɉR
-U˵7PCóڡl&3_[r\nT$G\N.,\bǽC,aڝ n.|Ž7AWir~ٲ_'ř}5&EA$b![$?XE{k$@`z(e&;rw\dhE)I;= Jxs/0H"]+S,8G;Y
- 5(F<ߖiTU"뼻8B
-p*
-VQ=q}eArg:Kmw.>;7Eg
-1]5hV*\D$TrY:PMX{eز6޲i
-ȸs
-'z#-նvsAlHQ%L[&<ɍ<FղsGRh&{|8͍4~Hɝ + IO&z`_SB$ svOA]:cMvoV\-~9˝<|:aάxV9/]l`JCOyTL ͪ2u?
-M$q}KgW,iQY)ĻfkũN\Wr/6/͔wOﵕUν?:Bw_پ,pQW4)63V&R1U[6<ezؾ\RZY'H
-jVAri?H]?Tu-a&)yh[fӖJ¥g@-)=88r\dmmQ5!Cc2B޶|`_t(\ I[weeo[=ڣ hO!m퀔StvWOf=͗h[gal!Zjh} aaα¡
-mIq7rQg̵gWcbE38(`8S0A <G9b_zLxFZX &Z pt
-!Arp+K YJoZܼv5#Ys~.E-@Y~~e!;6ֈs ֶ 'k j/BVKd{1s=ã8u#t=
-w; 4N {uG<CɈ!Of>9Dʗ$6]K{ޟ _z?0
-@O3?$f}|6}k݆>m$A56ER0ȴhCI2*FADT4O׆ 7zrU'
-
--a'q݀Xy!Vs\JnĴx&A4.+iw#Cn㜸`荛{<$)Ղ:򙃔,s56reFj/N7>3|f5͹*
+ɉR
+&>IHb5F%S`JŻN+k ( ,z=0Vuj&piT 2FjMi9pJÇJ_rlހXKb=e/}ZS-"\u'%&pe34y2-ߒr2W$1>=<v|wrfyWW?;՝f \Uu[vv|żvrHe͖:
+jG&# :')5^*b]+,%`JӻFD8/c-u0Aِ޷';@+:HHɽYP{WGWZy*f=u2TXA1"lNSڮ!\ݕ/_8yAg:34m84v SqhahšmAznX}U@7qt٧<ɔ.v8đMf=Hxm'|U]kȽvXPWyGuoFiTbSk74|9ǛȌ9񓌝L92e'xOQ`9'5L7 W=?>Ksֶ=0 ߴ!>9yVG$7:Vн$,ѬS@zS;|5,s?;DCݴ"s-)2`%iȚIVaws~Kc 1rFAE8ɔr0O$|(R[3dY
+7G(ЁD8l]_/;ƖMS
+RuIc#1ٜroUԳg<dr
+NJ>0M^ {f4upo0Dk^%zZ*T00?ii箶;bC*fڪgu0iIn=7zܞ ?B3aݓP[in=7CMYiH:PT}Z4)?^"aô8|
+k
+춻~{@o xVocYw@4sfų:}<͙4|F~b{
++aO$%1qohUPl%_?gI{rGH[&5[+Nu˼ڔ{ho{|ztr}ёZ=f
+`li'OA24я*?Ym.3$3w@-t
+(@ϢW?F:
+|Oi!ܪw2V.7 [ھ
+mlx_a*]|+]ـ|Yn.>̖n:+?lP3OP{\BJ{V@4
+ƕOq{`]3;Rt:Yٲ.m W{WiliX?`m.kR|l0ګv"4oN{S/;3<S7LAg1cpǸC@30~8Wgy3h/bYiMd|MRlӥw}
+Y /#wK 4ORiqΡIkݷm8cFTSm_) L Qj!;6d߹(b^IKOOtmʀ|=)W%|Э n{¡o57̕LL o"DcRRvW<8>.=Ή;Q
+6޸)CIQ-xk^!#9H1'\wa#W6krx>t3WhZ3ۜۯz"J_wdf/5:*
endstream
endobj
475 0 obj
@@ -1216,37 +1220,33 @@ endobj
<< /D [ 475 0 R /XYZ 79.37 254.904 null ] >>
endobj
474 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F74 478 0 R /F69 402 0 R /F67 389 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F74 478 0 R /F68 402 0 R /F66 389 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
486 0 obj
-<< /Filter /FlateDecode /Length 5326 >>
+<< /Filter /FlateDecode /Length 5330 >>
stream
x=ɮ$7<ڇ KӀTuk=\f!K)"]ω9%"(J(R(]za?\]4hy? p'Pb4_.8OA=q:h703*wEZjkH髒*ho/`>{*MQ)=au;=UַkR
jro͕S)}ZQd%ax-†=ؗLo߉^;L?poAi
-R%
-
-n3dr=hA6/Ԗ2պ×5%.9#xCvC=|EU*qiL'6kXLjL][OXϤh\HФĭH( r};6/$?OZM(
-MIϱFao?.THMBϚi$/iIXRָv8 hQa ήo>%
-O.0. " \QT&8ıQN :*Ӻ~O= 8
-yƜdu8;, @+г {Ɓ+"K-5qEeyUVN#˖zn? Oǂ`L˕>i#9=+`8P
-݂ˇ#_p~{R埗)ϿFym\aۮ$(<!*8257&ě\c5,gfL2
-őDdeguI<g4i/U;x͖3Iz;7_?x 9]jX=oۦ<
-^4鰓 Sy =ۮ pcϨQ^ZWF(;E2e3Q|}W{WJ;]kKA]_JYī$
-&{ZԂ;jqm$-fڪ*@~ePk~e%/}P6=_3z4er([G!p$y8밶=
-ޒ8bgb}5'樏EH[rNٝ@ȝWoA ҉Ω+ԷKk/2P}/uITN8k&ttseTff2Mrݱ[KXˆK^*_lu+ݚK%HkhU-zy4ݞG"_6)du3i%pz{[uXj]xIXoy&6J'0p(7H7<WMScr$SRڛ=9o[.xkn$[ QՖ5ojrZ_'\䥹`c|Wlߦ i\yy bD?@9{;.oe%z;.2_<Ⱥ(j~mvj-.NLRE|RnyϏJ`;qIjyo7ۺ yX};8฀I>!¥y,Znyh .9V>egv?A#פxPa)px/V*N/Q?7U;99
-(z{
-Y"`t Lvk?)ovR#ɣsݠ;ԅv@_Elgܤ\B8Xvu؇!?:%;̒ QQeKYܱ*nnQD9ܱl+G"w sZoЇ(bP _;t8q痏=Ɲ_>; 1ܡǙnp˸Ziђ7T[]RNڛ]{g}"!P S.SRi)Iisl.jl O:mÊj]9>hb$@ =p#+g#M8 9.3Wt MD$X3<#UY*%èfQcLǞ ǧ6kJ L(hTC
-9¤
-PHVjɇh.C6;2$B~5:ZǕ-ER?
-"|L:%T?aiq=Xh"k:3cnbz:۷K1<q--pt[Nsu,Yrz4Ƕ@Ks 1x†NP@6߸_y5L ]?:]f4pP`™#S܉)
-rd>H}}|N;h(|Ў<-x7.|K.f
-8r$K y 5 6yJ XKyo)OO_6l<vp9LJBgAz)06cd)T=|șQQtۙlc+gmʶ>gl+͌{3gZXYOגWrh
-q,o-# ?y rLykP}:dtt8i/UoWY <~Jʝ8Nqʨړ7nԗȕl%t'TsJr RܪY峋w2I1AܨK? ՚sR<Z(ܫHX&H[%2pfאՇXYUx|J-+rb+^O[/N|!jL^'Zڻo%$r-A#WHrlW)Y??]ue[U0É?|
--i/ 3EZ
-g
-sMQ: ]ϗ7
-fݛ/}>j-*J4;E0QO{meF&̶$ŖoO
-:~MlF"7Aۂ+$,0ie:L)tǕicUԷ -*E{KBmg%륪%nur3$Ac{ǝCw4rH2if7aT55%|} ڍKeV;Q%͂VGtV߾E'pɶ!)H]߿ԨBIeG(?NY gU
+R%
+fn0Q7<=#g:$LͅimL&j4\l5fsF F
+\~h2ϓVʀgyaslQDK/(Rгf*Fl~ZRzw358N&:},u>Z@TXú+kx=z[OĿD<]\Q9ݪmu Z6nÆ֨a.*%'#X^ψksQ^@pԤ/~ ܏-]>çK.rAu9Z&u_
+??LK(`/W4qlxx΢ʴ
+,HqJR 'eCz\fg3gQY^n@<Ag%pu۹ pc,Hӱ+p+,8=,;rOn
+X'-R
+rKbk)xUw s,xM%swmr`ڽlbp!rE|^qqp{󯑴q^[ Wض-!<+|!5 ` ,&C@XMz|' ř2Bqd=3Y鍥'MмӦZ/pT8J7[rV'|M+d"<
+oa}tq'a1zmV (ԛ:`m8J<b#qf_6Oɑ *NIjoDmٮl94pDU[ּW2˵k}~SpK?mϏ7r\}6q==HPK{=8-M|Q<j~ ΣLgd7_81I_I1=?*5% M߰o& a<DB'Vh !03[m{OОU5`}'\=@0Jnȇ5;৤pMA#xCX 8I0~Gu/W+QtCZ%>F|f2n\#xC^%+-=Wf>Q3Lffd9jw3Sp`ffd8j*Ocfƨ&~̜pòߘ
+Wk43 zŤSS ̼ 43G]3NAtC9GA#xC9.X9i HoR@~((8Fg509ڍfQ;J)&>Iw$R
+ck.aaX40K:DEa?:-E;BNf gpDzEqpDz ܡ1jMCV^C1|ሳƝ_>;8w~6pg_..C$*ki6›>FKnJk{DOHSm1wK9iowV>EW:@Y3LLKMOl&ͱ5< +v3hFY&.:~Q
+ur̎4U6\-*6uTcP0@?WeF1{:,ڬ)10hgģ'R 3rN
+
+nӳf} +@Jb+C!Y =& ,hf& qdn8hWiJ%J
+ u&Ϗa kdF_< qϸ総!c_2"oCVy~0;c
+w~f*wD>(ps8([W[ʥB,-1R/z()][$`-婾m<m g<} ۰̧e0)UX
+g0؜ P&p!gvGEmgIZH@SS)%r\
+$63v͜%Zkce?]K^M4ˡ)ı$.p % 0筕BMfpQXR:W]e1*m+wb8)jOF޸[NSs[S_"WɖӥS͵Z*Y%Jq
+f].ޕc&̮=r.$ֶWkIht:^s"ar :odʨé[^CVkV\`uf9T)Q&[]=R{}<n8;1yhIhjr ;/բ8%_"ʱK_1jVgQ#3ts<mW 'f)LT6μukQ+LD`15Ke%e}b.\U%D#g/`P%6oF]sl敬PCj7ͱ[qoe+Ö{WJ:
+af2|Kbq$QO ;2.h:u=1|P r[E
+VHw)YW \󮒐vn.7oXI/%gW6B9ݦ(ѮKLR
endstream
endobj
485 0 obj
@@ -1277,17 +1277,17 @@ endobj
<< /D [ 485 0 R /XYZ 79.37 241.685 null ] >>
endobj
484 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F65 387 0 R /F58 386 0 R /F67 389 0 R /F25 375 0 R /F16 382 0 R /F19 379 0 R /F48 391 0 R /F59 393 0 R /F72 438 0 R /F41 488 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F64 387 0 R /F58 386 0 R /F66 389 0 R /F25 375 0 R /F16 382 0 R /F19 379 0 R /F48 391 0 R /F59 393 0 R /F71 438 0 R /F41 488 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
498 0 obj
<< /Filter /FlateDecode /Length 6100 >>
stream
x]KWq}(@RO =wZƗgYɬj*+"H~ F ~⧯ƿO$c2sqOP}=ENyDX0tLY3>mވτ*w~SԷ,4Y (/œVZ}J_ ?r΍%J~jI~d֛mC;&<B2nr${\{PtUtI=:IKx\L#3FO0 O&ŗ7꒠R2}G+H B{hHl`f*P5^./[BjYr1#
unP6/cYύ۪ ô7Ϲ񎲹a1pTq2adyޤSʫS{=ǯX
-~JoY7T%Rҁ
+~JoY7T%Rҁ
sdn]Mw1?s{Tk`>ZZ!&-K_jT#_řB63ћBaz#
vB,Z
-:q]kL9D,LVcS1ZNyR*@^m69)WXlKLFs 8(ƭF}FlVv
+:q]kL9D,LVcS1ZNyR*@^m69)WXlKLFs 8(ƭF}FlVv
wur$D%CKliA RyEy١ Rw:зԇѻijCe/,b:_(;elm>=|:*EX6 8JjB%+[pZX猯uU
I1hKel,]Yx :%Wnp uk7OkZays)3E nQFO$f#4^0 >PLp@We,4!E#/E
'ZwrC!H 忠.Z^r8bZ8;y1>mȢJ5پP)
@@ -1297,7 +1297,7 @@ j+&s,iW @kyVw<0|^ὺ5no'US0;m07aOrIP'A
Sf1 aP|4s;9 O``xn'4A) 0(>eV'腯aY -pxbP1aP 4Ó.g@;PONĿOį,;$f
Kf1|u>z4O|Hds;_2gK1aP|4s;) /`dxqmo[L;k{'s/tmŔNc00ܸ:?cqY*fS
z&߈g5P#?˧Bf<^Ï {<V`"|)  =A<6l>ucu?ˇ'l3!^uS<f`<'OHmH# \Vc|Tq\ph&_=7oJPsΜSt Ϭ;f{݊9%YύwQ+>ȇQTsrŒ=ؑrYwCu[Y|ι[-Üy|y|i4qgcDaÔpLr Ҡ27N'%5dc-KoLvy)R׷ MKr7C..=Ep4Ӣ2d%lo cPӷ;yv)TcTw*|A]]M^5yw˅қz3AWc:OFZ˜6SIg@A)K?l^_kKh) kظ-9MF..IpgIblnΫQT/Վ&(G-lX$֦v{E7V[Ⱥz7.[\|[hǂn]&HmԩK ՙ\Zn2p,ekviT4,Opf};7=KaCKK%R+m+Sxz$w(p
-!^k@ea1E]f\82}0U_oh#Vͬ@[p9<Dž` ΰEcMYZdS+ٗ41^*ύ="f/W.қE3Uƶ`y.WnҺE*rnQ% CkL"/b˷gW*{.۵z]
+!^k@ea1E]f\82}0U_oh#Vͬ@[p9<Dž` ΰEcMYZdS+ٗ41^*ύ="f/W.қE3Uƶ`y.WnҺE*rnQ% CkL"/b˷gW*{.۵z]
endstream
endobj
497 0 obj
@@ -1331,33 +1331,34 @@ endobj
<< /D [ 497 0 R /XYZ 79.37 618.598 null ] >>
endobj
496 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F28 367 0 R /F56 384 0 R /F55 383 0 R /F67 389 0 R /F57 385 0 R /F58 386 0 R /F16 382 0 R /F22 404 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F28 367 0 R /F56 384 0 R /F55 383 0 R /F66 389 0 R /F57 385 0 R /F58 386 0 R /F16 382 0 R /F22 404 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
505 0 obj
-<< /Filter /FlateDecode /Length 5319 >>
+<< /Filter /FlateDecode /Length 5320 >>
stream
x]K\WԲ€շYt{`
z_yGHQ7i}n[jCc]Y&>!Ϯoc8s: Ħ}bm&]D]r۲T%r=+W2f9@QM02kTJÌ֔V܎Ōc{)jQZa}`-W!0}^1'Ue]qi/kZ*r&k/:t`gV\>Dj00/o>^j9 'rm/(Oߟ~$FIZ<'A*GAapj [J
pt2< N@YK̺ocq1GNԅX= m'8~y ezWѧ
yy/SV]۶iFS^~I(-MLc/uyFKR rF>}w$mMl
V -zk[.xl*Z
-7'kz)C%s p
-
-@Z%s)~.gS{$=D"GNvEfin`Z?sR7cTLc-462J~8G?39>lqXz<cYUE{>-VRikuɅ;5ߌ3!a
-I݉& ģ_Azc'̈i35Ӧ=BSdsMYg1W-aL&/ 3PDos
-(9)T
-8 |_H;TX lP
--N* O*`78{?
-(>-~E{a@׳
->-~ŕ DŴ2y_RϻwVucH:0qfnťx~Pqf?O?PT7n#1B)]%ԯ8ޏ5ZidN-~u ࡊƜ2y{`Kg;|.О8ӃkNHL-Q|L]Q|2#}je lRTx1
-myYO!N`֟d֒c Ɣ~R׹h-3?bg[hK\S?.P?5vqmihV1_1+1]y߲;ʃRXd Aǘ1 1OcFק1Oly}nc!b,j C08NL,1LLy2R2Xk]MR*O:Ŧ>~,f<řOZf9!/*õf|0c~Q•0slnSk5<Z,:?Ë 0 T7ش
+7'kz)C%s p
+81kv#P Ngm(@*x1MNvfŁ1۰l )?fzS-E628u3BlFHM x<njEa[l2^% >X) -C$**YZ74PrA^ @e dc,S B3m q
+3ߖp=pg`Ƒ1w&$ `X3'<3g ,tw*Xk 4J=݂B~[ӝ䏫rFs>
+T@ iPГ*k7}
+R>iY$_i!"21"9]l
+
+mf rq30kOl >u{9]98tnytz_#kBIdI vgCrRS=ԯ7w/lzVS=ԯaȵV@&RyWn֛;^"Bb I&6ϯ*!gI
+&mC:&P; P =L)=ԯ<TߘS@&yl)ls'؞E3y=sz0ܩ%jҺ+
+OfO!"MJ?>o"YM3<\?D sZr
+UIԧ֏Ō8Iˌ3's<E%Vl^Xfs7Tt͍}j]G8Qsx϶{F C]GJCV/8ї7cr m
+o^OydZ#*Q)Fs?uԺJH'*]\'͠3ͪ-"nPDJ UrxV8/܍dBNКsA^iY9|pi;%M!4.ᣙUQr\^7aܭ%v9R(id;VuBJ٭ud'eCWr]"T>\ˠ%,NW 虯b`by 3j#Y\gZ[.6c_}9ǚadA%ެ˗fX%i-˂ZzN[]jC$eۡ-\9J>ު-ydEl"x{M֞%h`RSWmRJ- 0 iҕ0}2ZYy雳$M4դD>.TUAKԻMR2'>I rKվ\)nKM]emZvK
5!('e#5t=fh̺CA $+!L%Bw87Pב
WP[iISӊ\(j" 67-eF?R?[^<IsIJ}{D|ְ~@.wzrzVZqvi
Yyr821#E ћ!ǂ+AݑPVG'WBC-47*ZMGm{<iLv9ar{Ե~T<t
`Xx5()~T:5] Xbߺ[-Y
G{[gFI?'gY)H r[&T>.WM$)mɮwgRrgghHCnΗB`){/ ~G5KgXկ+>Unw y`tD)hS?Kc&OY;ӝ9&TOܺkY q:9ɐ7 OzzޭXMg׮ߕ_pER|w1Ӄn03f7<=[Ru?“r|''hIs{Ol9rjPcY-hiڬ% 2$ X/fu3݀u":[ɄQ 7 r~z[}zRL?i:|(0LZ0)W
-\FD4nWltNX̆"߷6‚94-O?V
+\FD4nWltNX̆"߷6‚94-O? 5
endstream
endobj
504 0 obj
@@ -1382,7 +1383,7 @@ endobj
<< /D [ 504 0 R /XYZ 79.37 436.2 null ] >>
endobj
503 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F19 379 0 R /F67 389 0 R /F55 383 0 R /F65 387 0 R /F58 386 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F19 379 0 R /F66 389 0 R /F55 383 0 R /F64 387 0 R /F58 386 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
510 0 obj
<< /Filter /FlateDecode /Length 4149 >>
@@ -1401,8 +1402,9 @@ x\I7̡ h <-)3!q2HTk;C("OD/,|/ 
e
ȼѲuB0aίh J~y48N ᰃuLwIc+oTU{ -OJPR靍m3 =xq0Jk焑{a4jS}+ys
@,ԥ"loY
-'!n]>ƒ3fu4DŅ\<fO2Ų^t(`iCb\ڛG ʧJ>ac>i&cZEOlϖ (~P28JExl=33fY_:4PN{*x6,[ e5Tr [~ނl\|o.[O[ziy ątOp\/!!|x9@Pq~Lb5d6ϓv\yKvrʗJ
-\>͍k9J{UHU}: gf-驺~MCԉK.mZ5vTv,p{ ={J;AҜ2*Cy5t7qL=8_05\" W+"#FU!$4[ PsՆ̙
+'!n]>ƒ3fu4DŅ\<fO2Ų^t(`iCb\ڛG ʧJ>ac>i&cZEOlϖ (~P28JExl=33fY_:4PN{*x6,[ e5Tr [~ނl\|o.[O[ziy ątOp\/!!|x9@Pq~Lb5d6ϓv\yKvrʗJ
+Oe/,5Q@!;ڮI7LDo햀0V|ts҂w(W2ߧćt1Opn{ If'[6ljf`.j^+sa^%6zjW2=Ǵ5Q [)ڶPV
+OQq'kmYi:~t>v̓J5[Ϊj 0moJ U]΄VPCF}6Mrū>/.;tZ .[pSu~,zA]p۴k6쨪Xb;x{9ti)v9e*QU&L'knlR{pv0a}kfE HӯVD\uGɏB2Hfuiޅ?>)̗
endstream
endobj
509 0 obj
@@ -1412,30 +1414,36 @@ endobj
<< /D [ 509 0 R /XYZ 78.37 808.885 null ] >>
endobj
508 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F16 382 0 R /F55 383 0 R /F57 385 0 R /F66 388 0 R /F65 387 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F16 382 0 R /F55 383 0 R /F57 385 0 R /F65 388 0 R /F64 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
515 0 obj
-<< /Filter /FlateDecode /Length 5989 >>
-stream
-x]M$7!5
-r 0{joO, x/DRDdFVu{ ]UL{(JPj.h_?h 
-⥨m`@I_hlJ\~zIkៅߟvڀ,g |,ۏ?mM(#Sg㾶KjR[uk _n/?;_ ʔpT-S*HwMnu+{ٯLes_[-U
-J5ߗg^voL.<{i_ ʄc(J?_B[uدӶlo mNIt&1(o7@tԺ4!6no̍$mjeP{y-*/}ȃ%½„BH4vFT({_$I՗X`jAEXmBZKǴ|6g5uԦoiqiFX~pɗY}oPjCwb]>×;sfb9]*pW S OKԀ6Y}(:7:iO{RR*~YipQN`@ۈpکY"H}!bGgB$-#›;HQ7i;G^&R2(6\a2TU%1^?<,#lް}s8W
-4LŷӠ\(g!y;s⽣ƷQsSsS!K5
-hwO`!l10iRo8ГsKl~W/3uZfj]mdC5JG<s'BTSG!RjܜW!Cd6Fj􀨕s;
-H2_yNt9'bC"/qwB} nw&y8؜wc
-ww+zLG:˜ ݚg=nqio0
-Z;K*AZz]?{/N%Xo$y LC[ɮגnE] nĠ]&+]g|T`yc!BpIޯk^dk@z:qY\j3OS9Sbgƫl"m&Vzf Wp!2^ l0xS }#'pqO0 cXߏX(!Iq ,4O\MϷS(Ua)e2;.o %e0>4%N#|rH4.*QXӃ`]g~9y/|i^1B)Żg\u(}.n=yIDwGS3 O-o-u:R0gk5;ZJ|Ļ7=lUwԴ b;8_zv/
-VƇ׹>9'on~l@EFt~ӞCˣp}WCӗ1>~٢8AƳqkW8˶q9%t7#sPq q:%r/~ޏgl[lPNo>783ohѤy4жBwsPQ; ;bXwCmS'FvVߒmMl>
-^#>ke}s<ZxȧP_̴D*rӺ䳃uW1ZO=唉b)?T+{;N<N{v/yEJ)t%OEl=e˃|\tmzVt]/M|#є
-‹1XL) ,y҂ K,at;!U&i R: sYuGB^CJ"`tIt Q.Ojt.#
-`s|G>H6Z }b8i # pV'1_ 0!T`a8$tdcY`^V2˲Kw|<\+,FoJl  ]F,GC&++2bgĦb-[w$-1 b R<[XHO7er '%24:EN 7hh#}%푐ȢQ
- Jr+?'S$r$$ dh$P"
-`hh gll*▙A-Dy^cWe9H\n,D@B@xoW7mM6Nuzlpθƶp\*ʁ\b)b\LC rY1bUeFƚW$VݙDvo)\
-1Z YgpBX"!!!KvT82}ILv2ѻciP~
-D2g=[VZQˀ%E"R5G
-)|Ӧo6^3nfǭ
-ʕ~S_+‡0?z/xkZTz1$З^Kx>_ MPO Rvā6H^e'Y6Y#;-mWPN/WʻZKv$9ƕ=\}M7 J\mޞvzږ}<~*+&_bz =~^x<pSqk`T׎>doC؅^0o 7wp;}@ػ̗!6]#ܐ_@|)Mm9jaZ:W ݛEܜ7qmS൉xu |MXXPo
+<< /Filter /FlateDecode /Length 5974 >>
+stream
+x]K$7rϯs~
+u&QM).]yѮ\
+|K^d+G}fk<o.*H?wCn ;*{^+~mrPLf+l b.Ly{ߊ"y|~yyH;-{Y,=å}OOt\.2ͥyMe_
+6
+Fa8l6q:iO{RS*CӖS>̓qo#A >"d-<QqTiF]y#!8|t_!%sbGGh6Œ_IPVx 5ylջ{rp.F^мw:Lc=K /0 τ(7| X
+1L
+!T\nR~z݂uq N$ÖC89 ~O[/$ShòlG'.X^ş[y(%jc.W~ xR-ZW-}[M8(o܏&>1UG2-s|k;o. O9O)ڏV6m3H |h&lK/Yvߎ
+6,O!=(eu-SFfnVh<ag~װ:r!WpZvK?-PaVt
+u֍|+>+c?1O`c s4!KirRŸru '}mY 0>Йy+ԁ'Ջ):^ %Phh!8Ze0@[?QE¤ͣ%'sOl~(3uVfQjQ]kdCN5JJDayԯ:7'U,6ٵRfXnPP?r1r}yMW-ԗ`?K蒇c+jL!zcezO69hmЭy6 
+lr4rѾWH E[GJ~G.A|gJ?#WŠTR_F 5Rt#+%?ĸv^n
+CŢvVC ٠B̕Vvdń Ox6ë)3
+l.8!)Zn;?!ͥ<iTOOk m1ӯJyXi惯JORxy%0_r}-[X(\,<^6Wddm緷E'Z iR92-zwS ,ؘV٬͉W˒lՌZ1|(']P9Rc
+ـP4USDwTjTD"\!H)"'N A9ʑ|C)
+hi[4[n3%LD@B@"Ui R[ ]@hB:A s )Y7i%SD"Dp@`CjS<KC^A<W%wBraJÃ$Ṽ7KUj0UQ bT&RJo2#"w-ncpb$fM1ib|˓ZC{b
+ !w$$=3TIi wERÃ`$2 :9beGL:Ӂl8/Q{J
+
+5J"4p
+UŐѢb5ŨH3Do)\
+4̍8'Tr,ږ)nX*`ؚ@Z'n;Qd bnVPݱt/# x'n@XC reZ$܈5,jn;80hs XVPB=ҁD85@js*hD`IH92TƄp8vM (-J:0 :m]eM1xj{(ղ/UwO-bDX#Z53(21+kAXp0m01r6čc+Ƭ-DCBB-W8ŽiX$Z
+!A;tS%+0^b'뤖!ѳ 3"e0b!KNہ"CQ,
+Tw03[kVZ1耥E*ddlMAU"މb fd
+|gK I ܢ|#%$hn @D
+&`։N+ bnQPTu\ca֦eGtϦX$U҉M2@ SC Cp /Iz:W<Arcd1`Q! -1LO^)9G`ޓûqq4uV+|\Xz@ʲzz7<n7$6+.;ګv_k_'ڕ'A^o/ݸ߹
+^n{Av^=|IuEixb{sc"VE#> 7ڶFqW-!|>x2q/{~KzvQ
+kw"1Ħu[.;_#0\L\ea߳Y=9i'-*^tj. 6q >}~
endstream
endobj
514 0 obj
@@ -1445,7 +1453,7 @@ endobj
[ 512 0 R ]
endobj
512 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 138.738 432.711 150.693 444.666 ]/A << /S /GoTo /D (section.10) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 138.738 438.716 150.693 450.671 ]/A << /S /GoTo /D (section.10) >> >>
endobj
516 0 obj
<< /D [ 514 0 R /XYZ 78.37 808.885 null ] >>
@@ -1454,24 +1462,28 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F57 385 0 R /F55 383 0 R /F58 386 0 R /F25 375 0 R /F16 382 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
521 0 obj
-<< /Filter /FlateDecode /Length 4839 >>
-stream
-x=ˎ$9n<z`}o=洿oA""#jsLEŗ򏋼$U7/I$| yQ%!\WªH-)^y)<_똾V)x>Ì/-8 ->G'Mk+\3i_ޘD˄n(mYt[}+l9"= ¦+z7`'LqHWN8y-cw++#\LT Q}7/b%p i
-`MNm1fB3.k|Q.#Nsn ?'
-U٤p.Ȥ!r>("g0!y}Ƀ $M!BGh 9">&We.
-˨
-& DႡp_e`*jLcY^WGha-βٖ^)լJJiL:<fTll38Q40yd ]$1.|R";4kU#pol4 NjZ(Ƶ7!d0AP/lkWN<[2P?PԫgCgs˭ Q>} H] W,*RS"9†tj-2R#75z8b}2m!b?ڛXBz0/:6Ryi*uo AJ8uuNl*Ȍ*qn8  y/X=(9៙UMAP</2/:d&#
-'TOY1g8(X$_qyl]#ikcϾ=B"r'MAʎͭ:Kh<móDe `X$8#S_ tU'FR.GH`/;17hN2{yG/<$ >>qTx~{P^P
-o1B 'pF)RNMՕK)HU "t;\Wi ,am@l5!:DnюkC^nw:VEzs=Bλ\AkfwkwMv* dПw暿hDok9 /Csr/hFRM݃·`n!Lm<9-UOғq#%:1'FCW/,Lli[ħIvMK͘8w,v줵
-BG5Mr{D[GƤJOxkNV*CE}1);/>SJfw(tZS90Rk긩JBr6 ~]xv%^BK\tg05ĜMRﲩicV1by4\GXS]҈\K5#Ff ju}mn
-uF2L;}mI5w Bl-єBkUl{g+d +ڧ8} rJu H^G
-֥q⎥b]gIWvhV(L(N7nذY>\DOS8kll^)I3jT%9*+vp4|`
-#;JzTc1F/X}xpXn(g<C"2^sط=y>ֶW03c^cbdhuoNs#솳37zUbRq`LWhi$mhF~{l\ۻ-#Mu/4>jC*zSD豪)["5N_j1&_5DšlӍΘǟ[^=U~9v6Y\5h uI3y[;-)e©%_[RYkGϮ7RNؓ
-cњ8QG]ѝk&&Dn3c,?~fTy5c{fZ.B˾Ag{긏]8^'K LFӇC'+bvHŨj nxSZޥw#VUsFk_BnKfPұgNo_F{tcnU]RBu5
-L:@ ?+h&̂3”$$nhF؋6']J8'8qYI~0| }3hdMTgg,/uh$W'x<0j+-6UXrkiDm1ZhKa,]DoLsqeKr^,fzB t-}E4>춆whRhX& l*asv@AKgK*"pi+
-B3A:#gPۛp=aga^; g&]zuԀE K 6G}ﺻU"(Pziبblf('L.b|6r{ֲdj9ӺBNxT@d~\/c!:4ͫlМv[Gn$_CcѨy+Byu<c=Qu,|QOd4t|A]۷s5!V&:{N+0af
-9ۡH[j4FnhʱY~5_q⋾R
-Q`&b)4J)) |= cqu-IvN%@LcƢ)ۋA6J1μssx뤅PHv
+<< /Filter /FlateDecode /Length 4804 >>
+stream
+x<ˎ$7<уzVvu=7cN _A""#+SAQ$E%f?/㓤¦OOoOYw":O
+E]x˷?I)W)+9)->/eL_ ¿(S |>_6oiiZͤ}(:{}BA.Һ>OZ(AZ!u{(`{EH+:;
+`]FO_ak|A!Ns_.
+c4|r0:DC_L 1r H^ļf_FJ\cS2
+m<)4N! RP[FʂPP(`2 zM_tN:a9ı8c `M[M[LEh`*lrLeLLBm P4s8Icq)
+:DrQ:٪u`Kb|I.;"ª 2"F)=#FFp/ֆʲ`*jD bp ¶p;f[
+hxT*)1:xxbQ<de{HcuQ@8,L:צQF Hg)1yb5*s s8gy8#P`pC`%<`_.lWV+> k2P_攫Ϣ+Zn"D;IMhb^Xм[&zG|!m2K"p$27K[L7sʅth0Zӽ:Tryei*eo3AJ}pj*H1
+qv81p y#3uzPR?3ͪ+yZ3OUZiSGNک`N7q\I,S[1K$mK٘]6Եg_Z_Ǟ@1AOph>Q'E0CS}sˆR5}$+c>P<F3= +DfdKjHZrwQXz CxCV(טwaҰ#:HϱE/=P e6li: D} z-'} kͧkA5Ww2_6L@0°&86B'!ʦL{m 3f6hH1.4aSA8 h
+!OBG{B]Bw$H9E6eVQ*LF,ֱX; Fr[`$ Vi b BE;2=vH;,(BB`ɛr޵
+3_3cYhSgO
+|=_6VMԦ9l >aCZ(rZ= 9Rkyb4z{Ŵ3-s4=Z]ԮQfLHJ;vZy&sAQ
+#ӭ#SY$ymx5FI+DC|DL kL)mBwJʧ~X:W9OyUuT@%19VUq<z;c/m%T*3ch'h_wu1Xfv yv<ӣUF(ګNO)ˌ\254y3w ?'yd0Yhks.PN+QSh0v,E.]PeN5r$s%!"[5V^^#e{%(ڿZ.A9+#jt,:B-D|rEfGq' q;ņr^:%,;0I%=LI:5T(1QI( 'KԩjOg`BI]5eS` CEZ+,\ғY6Z}]Ȯ9ܰ)2Nm}~ƺd8s2nCe/yؚס'0 UVB\juxlyG 09Ac-o$THk4@m.HY:@R4 NHF܉r-_c%Ҏ0Y#JqJk)uv#97I۪^qLfhz2װ=j6bZSЬ
+khTCs
+M;Ɩ kjL UKrEwόQ"H`Q Ԍ/zu}:U^ƍu2䝰_O<;t#$z*Tb\t]"w.F`Zў6ZRwT-BI9maoӍ߻1
+jV6wIvKV{ ޗ
+7LB
+yℹמ"% QsT3v^6H¼b
+"4M7Q<е G:AQ[n?VŒ[5ʼncZhKa̷]ow8r
+͟{0/5R{ֲzd9:!uf?.*~Wp8Fi?v`_ udw#RF_VǬ6y޳
+^WBy*zր S\Pk,ru} SBaŔK/˘$Ƚ) ;F97K]p*ͻ+ZpVoF-J{ VVp(R[<i|;oe*ʜ)ڡѡŔwr,Ȝ^s0{
endstream
endobj
520 0 obj
@@ -1490,34 +1502,29 @@ endobj
<< /D [ 520 0 R /XYZ 79.37 340.527 null ] >>
endobj
519 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F16 382 0 R /F69 402 0 R /F15 381 0 R /F55 383 0 R /F66 388 0 R /F58 386 0 R /F74 478 0 R /F65 387 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F16 382 0 R /F68 402 0 R /F15 381 0 R /F55 383 0 R /F65 388 0 R /F58 386 0 R /F74 478 0 R /F64 387 0 R /F48 391 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
530 0 obj
-<< /Filter /FlateDecode /Length 4986 >>
-stream
-x]K$ׯ!e@S O3'c^`|_Ro)Aۇ쮌(")R|z߽284r0ьP͖_?>ST)$|7JT~6|ojy 1p5%<RO2<RnijSAJ &$|^BͩB5m2p;lҵMMm(+Wo =lN@hveĵ&*&d*KG} Vs%k"\qo H.GmGfr;.@vq=+AgۣJ+ztawOhsV^BX06
-Nm |* F_R-zciC^lW%-)|PC}x Q-^(,9=A;+>yl?/'s
-bSRH/ÌTRJ.i@8ȂԝS3bK^0*ٯrb׭9*ule<h3d_irq4tP%w-s?
-sXe_.t=2]r^+LN뜀e}d~eS)H4pK{NPיjIiwSeys[䪕^ RZ/_6VKhUoV B''T3JsЫ"pV}"g Szs4L1
-8 VZ>WV1Y y|}YCq8SDݕ&HsT`ө\D zT5%G㦣 q\v^orciZ2HV W| q!,l'Qu1*YCn mӮ=ZFZ/<‰fܷ+H$w83Z웋g(Q>xQ>hxk
-4&E.@i0AbequԠ\3>T-񅫲?u d]]pɆIw},]+VAO򏥫. РfR]
--'y:0 s.q\ 
-ggc yCdR` sPQ$BA|V'O,Yrh(H-&°%-1ÿw5lE}0hun6;{&y. s2qK_mR[" "HI@3N-B6+
-n!y!θs
-AtbYǢ䣉Qy
-~B'_~\)x 7ɗ/O.O+ <㷇8)1$3!TG<f-1A!i1ojWkT){ME
-HoA8s 2mL^OzG/nLSt.J?ijyVuxxzDw<L;nyo,](FS 586c3w`GX;q3FБx aes[嘪
-l@Q&MF.:  to 9o ܷ$FBmo m
-ËJ-H(,.*6p<_ =_8x
-)94Ghx4SϜy'cgK'
-<")h:=̣;ΝD}#H'H1-sI'/ !T>› wF'E_Jgꪟ&AZ1\ & (х+M<V?<c^I+%1Lڝ/C 1u؁MO<[8.sm3FfpƨԴɕE/5dL/@a=(5ڈW4<%dNZu.?0;sGD|CozƂ3; A'o`~Ŝ? }CF?7~IuH3*8vG_&)z.7$`ܝݔ{݂q|rfxB9LumA;(/)/UD;젨ӎ7%90yܶ#8ME~#@{>œ$V\} },f
-7Pry˨=,zcNBLv
-Jf1m% &iRpP#<b3gaX*x 'dqtUA(,_da ͖mԋh'qJpQADTGtQ$pcT)$X|T!e "]-=QiaѹMhAhb>SVlx(;}]2 Dg 8'D3X^xmg+AM8z\gC; 1plx[Z
-ut;޺*1)VbU?W"(m~-1;h5-zf,$ag\~42( 1PGv& mkgWWU;3ZJh9:4@*M"?4N15a<ݢjj4Mvn|Tv`>?N }O3ڒrWjlS~bcD%f JI/X^d:x )-\M6¼`G%~؜ݟR=r>A4BB([ޏd*y&HܣQ|W'/q 퉿I.xðQ! Qc
-Sxg .VYSp^6Z
-w=I$_R$(ߔX]07MΠmN(q,,nAI:Y0+$Y!?ijr/Jmw0R:ߍ oߐ>k<b׾Z\VጏһRRWbʒM!GA[5+dꎮ_a-(}cՊ8|(ٿ?15t_"F/hz`Du]jSpT[u_-W~}Uh|x_!@[
-M
-Q'w۲i:Sm޷d#S>q; )@X?H|
+<< /Filter /FlateDecode /Length 5003 >>
+stream
+x]K$ ϯ}hE0Xdz{gd{oONl$p.!JU1zw$H}%=r4gN8͵<}zb'0'>}>H)@RHWJT}~^{8j)vJ)34<ࢯZbpWAg~ ADpS950Q(>Ж0~MFnMI͑eu9 a Ю1:DaBlbTeo!jqM -a%ب-uhPL@;:.NVp%@=(G{j 0"ι:U2-
+.ESd-zZCKV4ԡwO6ΉYB¡Jcө=RaiAϨꄩ ׂ;+Fyl?9;sQHƼpot,.%_LĶ/D]SZ9NdL_ \LŖu쀪6/*H + TUll!Jhl#.6RZ`^ 2TU
+n'_Yvf֡o۠<m%%%$"^_\=H+<I-IC\g2$fsc:XY /=UiI),C6cKmB\H1ynZ*)al!4 \ŠX֩I/%>+=a\].[s\"69Nf1ɾ܄h_5{֡R#[K$Zva`}\@vr\Ŧ)Al 5z`ݛZ\EbĒc&`^&GsL v[ME8NBFFY,XBx&U;!![FKmB-(X0FDlҭ;ؑ-*28Xyut oB)7i!-ulm6&%9ÿ?|zT!*cD[v>83F÷-0YYXG:u g# QIj&Fa5(ۥ꼙#''-K޹=]Ld78Zu9;=eSH4pK{NxיjIywISeys]䪕^ RZ'YsMe4*n+~R }Mcciq\5?~ ^ ;󰲭9KR}ECcqeq!ϑ^euUP{H+M-ri+t<RŬ"(Ǹ[)6ȐC8`PmJ'ce=0}^T1&,ׇr 'q xhJB[ޔiw ,w㙖| q=,l'Ru*YCn mӮUGZ=ʼnf]Mו$lWlEh;q㖕())
+G'8@7(.e͗c'cZS
+Q朌P&޳aA̯n},QE)_Q>:5)|H_؞\ e,`DlUᵾk7&RN刺Ñ$Vf3kB}}#w9񺣦*tXmD}9Ȯ)9JvȪĀXGAf 1B!X^bZ ><1pq;: GaNgȳ} ̀9hCT5~q7A|ucSccp_A"8K X* O}*poC{WS}ZN ea<n qP:cFo[۬LttBC,A8#` , Bq׮O~>eMʽKr4Ф&ⰳ%FB:{S]V;/QJY0(œכw'y. t2IbSy'.DE=fG$ٍZ mV
+j&햆d#uM[v[F^ի-H0R>L'nZ]W?fklk9$NoY[]7{ -Wjo>3-H@[\[`ro#7] DǛ>E(
+|[֗_[z7t$}k7+<p،܀ (GeCB`0NjEZ([T}OTF`+:
+&"{#M._#hQ bDf?վQhp-&* LAok P8ko/T Q}%
+|X|U\Ǽa\GhnTO:zשؿY\gN>&L
+u:??S Sۅvd{;c-tgR.
+ю+׵$ZC"Ij
+h$Os*,.]7*h4v,t=kׄUD~LiIc^kJy&]f']<hθmw&ܪl;-*gz8a%Ҋ,p^ &Rm+o&`MIDO4$Tǹ[yȭbKs.dnsmX4("BRI[s<L Gx7}sl aD7x=}m ɇq]DҞ qWσ VTح}lI˾
+Y'3xӸQq uX'3U+K @d12D^Ђ:@Kܧ+!b
+OCR_zpp')_5`B|٥[ r;SRU ho xu+1r1ྶvi^Ԭ;>G*WRB5
+}̶2cnl_
+X^x]RHlmGrJv
+} MATtWnR*Lo|}{JvpHYR{1H
+5%
endstream
endobj
529 0 obj
@@ -1527,25 +1534,25 @@ endobj
[ 523 0 R 524 0 R 525 0 R 526 0 R 518 0 R ]
endobj
523 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 291.425 694.371 303.38 705.32 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 291.425 705.765 303.38 716.714 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
524 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 494.426 677.873 514.132 689.828 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 494.426 688.705 514.132 700.66 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
525 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 90 665.918 101.955 677.873 ]/A << /S /GoTo /D (subsection.14.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 90 676.75 101.955 688.705 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
526 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.42 272.601 366.375 284.556 ]/A << /S /GoTo /D (section.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.42 275.63 366.375 287.585 ]/A << /S /GoTo /D (section.9) >> >>
endobj
518 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 307.993 84.779 318.45 96.236 ]/A << /S /GoTo /D (subsection.15.3) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 307.993 85.96 318.45 97.417 ]/A << /S /GoTo /D (subsection.15.3) >> >>
endobj
531 0 obj
<< /D [ 529 0 R /XYZ 78.37 808.885 null ] >>
endobj
528 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F74 478 0 R /F19 379 0 R /F25 375 0 R /F16 382 0 R /F22 404 0 R /F48 391 0 R /F59 393 0 R /F66 388 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F74 478 0 R /F19 379 0 R /F25 375 0 R /F16 382 0 R /F22 404 0 R /F48 391 0 R /F59 393 0 R /F65 388 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
536 0 obj
<< /Filter /FlateDecode /Length 4763 >>
@@ -1569,11 +1576,14 @@ J(ƞjWG5 qUCU_*R~</A䯓_*+f_*kI\w){3
쥅d=g IrWYRžb1ma?U<V&U0ؕE0 @DʻTdB#L˰4y.YhYA^/y(C'> c9ٽDIy暌mn$7Gӝ<E<jXt֪Nk3~
vE]2޵Z#Ug x֤Q˗TEUTưrXȮw XJWHU4rDZ-E;p4R[a2\=6$N׎fCrU[("Md!Cq0ϒnt\%qO<NHu]&c)nfX'K{2.Kϛ|(*&m[+pѮxq+aEMVDfUDVXar 2v1R5J=ˤ?LU&Oߑ>KfQngKV#rB\Bkm+Ntg f
*|y9ʊ6qJ̮
-{w= +>0m GʥI{)|~*y*4fP.VJg/ozSS+t
-~".UEb{8`œڒZ>M9!'r`K^f鲎OKD̟7޶ yF.
-[Mu0U#M1Gbd'^Z&KZ'f /)mӲEvqE$vf+`Ofuկvwv7#R+Ә1ԯz Mb+i}gxdi%ZHqC2X%ӮVPZ>}-K[<KPN9|u`tr^-fi`AY's?@maygK-Ɛ_%I"em~9ү #nn9be9)b=<a0{}M;<h1U3립&6bf1=*]ooɷ'P\VyJavn@Qw4@NuLQ9Fmz5h@%zjASJ/O..=7G'͋ip M1W^UKcUN:\v ĔZ;J׊ ѤזPl=rOW͉F\sB;%D@tߣS{^ݵۓ LSZVj{a?ߌ[&APeIE[7J,"`+d@ ]waZ3Uz}\cksxB'$Mo _+z-B4nߓS,?9$4k@pj0
-t<9WŶq7EQoXQQbgi~;!$ۧzS‚I=&8CҷK),MPWamVTCݽ]\2XH]K}]0jOE[.Q/$LJA|͘u Vo{W)Y`޹Ժ:!wU:,Di _Y+of ×0ЦH
-̟映+ TnzRѝDW橖<:-gJRɽGlPsɩH\(^?I)Ժf}f2)W[z%溑Iv cBN4X)ʔC0
+{w= +>0m GʥI{)|~*y*4fP.VJg/o־0Е+ @\T sjKj4z焄Wȁ- JxҚ
+:>e.1xۂ*l55V6OʋVMhx_jmF,i>
+%MTۙ=nrU냂_ݬH4OcXP%k4 *B=ᑥjm8|" q<c=LZBi/;p,eoi
+es
+Ήc
+ӳT=ZLόV؈QlĪ|wsn'ߞ@?rYc#*E!8xrF٦
+f1Btp?=Uy%N YmTrQh)v4?\{r*Ҽu7W6Olflx
+YLV|佹nd /a2P5a% 
endstream
endobj
535 0 obj
@@ -1592,7 +1602,7 @@ endobj
<< /D [ 535 0 R /XYZ 78.37 808.885 null ] >>
endobj
534 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F19 379 0 R /F17 380 0 R /F57 385 0 R /F65 387 0 R /F58 386 0 R /F48 391 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F19 379 0 R /F17 380 0 R /F57 385 0 R /F64 387 0 R /F58 386 0 R /F48 391 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
542 0 obj
<< /Filter /FlateDecode /Length 5028 >>
@@ -1613,12 +1623,8 @@ H~4R1q
Ξ o*Dh!'0=+]
WEyW^k |cayyWÙ=&0&bS? @~m)Rp}_ \P[[ d&iIuc
W31 !$ f&dQX7%_$nJkUΜrm5Qq[. Z+ dpx5c<
-Lt̆դ^ҸMD'\jk](ll _$l^xI7t59]5vEf/QگKMkZyPyi{6\Fn-2,nlC
-ݼ-M&uzj6=8#8`OS#JQ*E
-ڌ'pHZɫ_ qO
-%yo~7ؤlPꩂ
-a5u=wS^Cfsʬ2
-
+Lt̆դ^ҸMD'\jk](ll _$l^xI7t59]5vEf/QگKMkZyPyi{6\Fn-2,nlC
+$ڽF5ԕ Ye
endstream
endobj
541 0 obj
@@ -1637,32 +1643,25 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
548 0 obj
-<< /Filter /FlateDecode /Length 5243 >>
-stream
-x]I#9ڗ@Nf"'JRmY75~.gfIrR̙|?W|mݾ~͛V_
-eB[Z,x,kl(6 v/^u'LߡXKÌs3Vy80fY8;mmѲbۍ<e?4k5̪>o.ƕYW S{b;1>9ǜThͨfy9;VaⴱTrОQ̋{hQڠA6Mf $d޷5#<6{cA6YĞ++ܰd3
-+=U!{iTZo58nY..ӿ/ KV/53F]VA.Z >,ڿC5%j7UPLY N)GFyվ?jԽퟔW{ǤR^`"7鏗t9?ߗF)4 Ca=6pny/qXl3# .Ji|-NjŴ
-R<8^K1_*=Wl8ck<^,io#u;_"iHtQ >Y^"Z ?vN{HnY_̍. 5[ŎMV`%fi(M(XK !R}sSGV3i8]K1 }8Ӡ w
-7E7g00X:1aCB#}| *aA(]/d}}
-p;r(uzZ<a~jwK|NC6wd Y=`
-"CPmAa
-)Gx6?B
-t/C0,!cP j6F``M">bෞhΘd  fAkv
->S3#CE=O';~N XlTAy死灎_<)=H=(h!=aSY2I.ٰ3YaW'ڃ©ÎFQ!V!8S0("p%' \A`P GBƥfgZLSO]ގ
-N<40*gJ<4 0`P8uAy p.u YLi.5&=^iy̡m )wgJc$}'~TK<Ͷ{,5cF?Qx.@^@q cok(һ©+ ,=*
- ,d7~jCJĠ`$ePqhh<DSʣ֞aT OTh8`YĨplx:M͍‘H7-AQqޟ
-4*g4 `P8w=auyɠtzL¡nz;!}Y4>ULġQ?GM%Fs?bF
-ј%ݑ5 {՗T.~PIު<]UH6,5pwMGD]*7νbg]ɷ6Io߳fSk{78':)ѵs; ނ$Ml,1)z)pi-7/c+9\V84 | /Q~vE-ud6VCjސ&:VPdP,EZHR1'8=F0A\7p
-ʾN|X@pCByTIFxm%OI-Z&I2m&u(a#ҦJhZJ)mZ+i“Z>J1L;ɦ 눠8`qR#oyM׼ ZՠZ A(]k`6Kku-[̾VYT5q?Iz;/Fww;/slwVN)OwkxL?T ěCbކGD3 X.tvj횏ܡ2H };TTN*z
-_\wVSdܡG@qBc«;THϤ2/;4CD#;
- .}졍{o#t׸C0Uq6kܡEcwwh*`&C5Pɡ)Z(qG'w;C:,xo^t|.[Dlwbg
-;r[n JzKTqM=5d*y'bP ÿ3MSCpoN @]*^3|wA0اb3>9y"E|`>'OĠKzoUba2d_ޣ']O 3T&6n4
-0I,AIZ.h.adiÎA uNvD 8 3/6q
-O֒x+1$&G3ij
- #d7Nxh`!C0(y#aTxb@&6ϛ|i`.! $UΔ|i`.%pK
-<i2QkcB=^LW
-4 ~@!j]lC-/Zq8Q+"~FSqK ©@#bP5bTx>ZDO'Q듨I$j}>ZQֆ`44ϤZZ 9\KbLKK ^i̦+{nYrq4QY _(+\"<3pBpo遖 QܕJӳ14UҘ jlO။@Z/$)4+jVdsyk6LEo)Fm<І|"
-&v="=Lgٖ̊55>o!k&kzȮH)|b
+<< /Filter /FlateDecode /Length 5277 >>
+stream
+x]I$;ϯ#x_HSk$8=℀<$ ;FnY=UiNg~řo>.v_?[`Jo_IIn
+O?>s.5)Ε;^ 鳼O[Ϲ$oAF ʥttÙpnNg2Mǣe%)tŚu/Is @o5["䱭Բ֒XĖž^2!'YIΆl3cz{-*YF帓K3&OfhJÌFqvy bWX,ek\0jvXuڔuO9*"F摨ٱb sW܆;6f`(؞ 䅝gY҂ySdd%ib5j/%DWϨ=^dKsVk=0(Fl
+LEG8 r\SE cH !upI.Ze妺h=䪹hNnspU\ jyp\ o©&7Z1C%"4W
+hwؾP<؇Lڝ2/9O:@
+INA@uܦ:xEu|=TsBx,Y4W]*(Lq5A`B
+RC@
+}^anDAP1_V7 .@ Ɛ1 Hx c1~뮋^Q;_dq f@
+yR;3{_o˶
+x/HDdqFF
+|3o.q1c%>HG8p/,N
+gx/΃GUeǴjl7>LON,On}2=9w'wuxHyU>h|W3C~v(;ZG>zIOGDEYLEc2FC2FCmF/0. O;юL )Tu'&Q*Zđ*yܛ}:mobf'YiOB4J(Q :Pj%({JqIBZ"JQ)z2jhA冪ګa^X_eת-LNy0ۓoQ'KM4a>7.ütR2kD|۔('\&S)Q @UH@qhäwit U&亲0 FwVw;ZHwtb>{)c|{/Kp5-6Y1r^ [قv:ƽ"5@fZ` KR[?rv+z&=˟9+^Teh | /q"^L:2R+Z7I!:Z-\q!5\Bxf#9&va1)/?L
+pz..3*b\aQAϨ7ֱFiFOfTh͸˨?(;.2*$?n$"@$;B2˅?G2)
+ phF2*LS$ɨG9NydTrx-ڝɨP=G2)h]:,xoɁ9%Fxk`
+w{ݶHŽ\ۂf6p.I[*#I7i2ckg71}֪D8`u<HMcv[{,0gl= {<,1elrF18v[c~^0T"Mfl_>"eb1B:AB]2JYɌz @dµ4 TR`l-a5ĉEڙn (Q4B@Uv4 J
+WE#+dlf}yEڙnAPr!BpKàR K'_%3^8Z%APs) ¥7dqr6
+XDŽ2i2ckgA)'#
+ RNn.G غh8C8`K3q(X[D 897bwelv=6$LkmƯ[I/u?J@T]I
endstream
endobj
547 0 obj
@@ -1672,7 +1671,7 @@ endobj
[ 545 0 R ]
endobj
545 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 261.027 345.178 272.982 357.133 ]/A << /S /GoTo /D (section.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 261.027 362.899 272.982 374.854 ]/A << /S /GoTo /D (section.9) >> >>
endobj
549 0 obj
<< /D [ 547 0 R /XYZ 78.37 808.885 null ] >>
@@ -1681,24 +1680,31 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F57 385 0 R /F16 382 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
555 0 obj
-<< /Filter /FlateDecode /Length 5069 >>
-stream
-x]KWG x $+%Y%k[gfZFgU,~'ᷟn;^~3xw/ VZ};M\`ݜLۗoϹ8W~ko~J==s)FДKioV?}Ǘ?bѝ97%'e˥c?Jx)tuy" Һ<?X̉o3ӷ1g`}o,0#[eC|#yrŌalPI}ȑ fU7K6$&hB=/n#]A6qO,&&+<2#.'X瘓j:t6^Ud+@Y7&ÙTLNkQ|!&2C\Cn~eͰF1/zTu^;:Q!#Qi
-z@:^^7Z w(cAQEèP/gG`|=>3rE憅 :{3g]5> =Iqrwe'r ((Cq_Vn~ln#//LȊ7Ff!zOWvA}pr̛-Q1jo`eR8ʷXzyX/g) !QwޠDT\x=!3 y8d&<?9~u qsN1%pW) 5!+0Ԅx!6r gjB<:B_P⑿L;f^_P]PՃ1<Q&!HWH4!PV0ݏjB O1Tb.a) ZYb'ςw5,H#-ZGpһtt8p _gtA{lsԠ7}Đ8#ԹgUewˏ^SQD5PtU\( @KC 3! ㍌+s(f2`޺<K<{Hτߝfpn}Q\h
-*0qF=D$!Ψ8Ƹ"l4/K4=i|3itG0RC)V1(G #A|k֮dmA
- Vw!Ά};} O_Z4kQ.:Զ[]g.v3$
-8*SsO}[~ ;uMђ2}Ae %:6kEKU 743´.!6Еw;򋛗},w GU^y'성ؚk}A@ kͿAa(b$f7ap.Μ"˖X!P!<+c"eJ֛߲Cc"튞qR }T:#M]J2{<B>6mJ"ͱm]D$v250 v,陗e4eʧB:W)qS##}] ƒpohoFt(C8]-8iN}xRJϐ}8(SWU?_ {#)O\*}dʇ]T`C@(g` ރ<\VgJslm{[ qV""w!`nS<0 %o(gSP|Jv{qdܝi1ΔO.
-&EQm*xʯ}~前mkg:0|@KZTu]<YON<#u"+C-i89C?e{00+2|rUH%)cm +f)v`]Vm&
-)+ A)!JyK;K!ܦ_ x:!*[
-Ee" E MעIވ;>*>8r8]ZY"G*φi,#2ɇMZvp U`Npģӡ nƨ)Z7d/WȡtmW40棯 "Z%[
-m .huT?¨12E6{\m4~`pWl-SAQ o]|j[դ MÂ%3+u\PN&YF N1Ď1
-/YDgrQ!N
-՘"CRO =lmK,i.}RE~e_#Eg$}J7RȁiwYM'
-0τtP硨%QKg7U-1'Oo{9*4*$3}QG^Qcf:i6ČmBGU^T}j_c,RP+ֲ828Unjs?D$VE\as
-Tݪ{>ϊGԲ0|_4APOQ;Tut ^:)UQ_q EKxUd7A4QmړɲYzDǛ
-&{R ܎{r~/Ǎg Q_oWn+wq_glF^,KЮ~p\oeZ{( oeBR_]y?S}_k#Ao=XIZrE2K 0 S^2yFҳ)T;1Q\jw&FybT{V:Ыc{
-M(ߧ>rzxۮ(v,<O҈z4"߀"-x
- aG5F6v#lI5=CP޿;9T~2ȩ?
+<< /Filter /FlateDecode /Length 5272 >>
+stream
+x]K9rWq\ @V/>ɫbOk
+/DuyCܯgاocXaFG2F'2:LeHÙ3,!ϭ#G.U,ِ8< yf.̺t DGی=!8دLȌxbcN~Lxɫ"\8k:#[>cd~8Ӗ5i s?6$̐WkN7b?fX=y:^;:Q!#QitDt\?zyh%Sލvg]GHe=.\,Fz9-}^nAh,rl͜%­WW4('mfC(9swȭ2l "K}[u:j_r;΄xmD_l2ɮt~=};+τcTmQX-Qe5erdkNI\E ퟿ rAD i ,!3Y篑˭헞t .;Jd]g_ _y= Wp&#;o@?Sⁿ
+P
+äFFɳu (Hd V`n"oepFc\)>D~|O+=65 joTbB
+3րv(i~5 o:݀*T`R.K}EߥDIFF`FC9m $30of%de=gN3s>(.4_j#W4gTc,3+u@>mo& ~]ՙBZjHe*`$1 o0|.ŵ pJ* An>@^v!zܓ &_Y[^A5 aGs.aeįsYR/u4Qb d֥qM:?<I~cɠd,Y7
+OOƯo#@~{
+ɼ23.L0_YCW.Üw
+OKXr俰IYIfx`_GhdžM_ $9ּUX٥MHb'(\ `y hYf.NS|*s57>>ו@/ 7!6nD;
+HnnI;vÓRxAuf? N(ܻY4؇lO|4HkLb7l{glXi؏tvow !]}JD5DT,mF2Ճru*On6Ξ35ƙ~'̅f9C%"֨6 b<\W65\Dg@,|@KZT5]<XON<=ĺAiv |4G鲽Rxgj>l
+v16_gkdrXX]Vm&
+)+ A)!JyK;K!ܦ/lh:dgFm
+mq.huT?l¨3E6{,Dh
+'~`pWx[ޣ@܊\}w05O3竩F|>6 r,@θgױ^Lj+8;F_L3fa9n>G=88!Hޓp881==W6H_aT.TLKuV+kLL)|1"~'IL6%L4Ŝ>r#"/Ǣ
+RQIy1jr`ZkV@¨x[0ꂨ4
+(v'FgvK3vZC:\}o@oϺ7O%C; q2B<$ϘS7z^C㈭WXl;܅Dk-wԧ>9YzLnRԶyl[ގ5Ҫ#5Q`ɍo&
+ xnHMz)n2"t܎}gӶޡ鍒E?$4 O{nBl+mڴ ᆂTw}XPpmMUKۨe'e^e5N%z: hkQWtԘFڪ9 MDc\WJڃo}UKrVjC">*te=H*u6q|+zAr(k @t>h(c`I M9DND0{Ny fחn<]S[΄qo<:< E*0X.x-@Xʥ{qx!Ry^%Cn
+Y]ɖP={Sي
+T]L*ϳ+*!z/w=<}{ Ga<kulS
+'7Z^1ten9>:_5D )1S%ӽ2vACRu4ӴtRnb2hemx{~we50G~^1#PiF~ yn/^exoحnS=d_rawhnh;B8'|[+f1I='CM$iXf Iԯ=כ^5ym{Ome|.`'Eo@B8
+xsP7[ۏ:ce"a_wC¥b#w;k N+&Gfv@*|?)᯾N!<E6r>Hboj@֖ SΚ^ĝ7"4yFKҳ)uv'4{cdr!0`_n'B<"isz!J&k+1y6(5*زUы)40Ȝ/|*"(%$Z!!N,Mlm1\g
+/<4+FyZZMkczƣit„ 2~QxaؠK+
+ew .+ ve,tfk4#Z&8۸zKCyA K|: džpD#=
+2$Ssl=;%.7M:.͇2Hf(x USF3S7J02{2F?zƑ2\yn;Vz)хS~eP.(қFt?i4xF̻ɝ\<E!iJ bE<`h%m5 m4x7I ,'/=VƎ[dX?缿XD#uŲד0H(
endstream
endobj
554 0 obj
@@ -1708,7 +1714,7 @@ endobj
[ 552 0 R ]
endobj
552 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 139.975 87.384 150.432 98.841 ]/A << /S /GoTo /D (section.7) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 139.975 89.875 150.432 101.332 ]/A << /S /GoTo /D (section.7) >> >>
endobj
556 0 obj
<< /D [ 554 0 R /XYZ 78.37 808.885 null ] >>
@@ -1717,34 +1723,26 @@ endobj
<< /D [ 554 0 R /XYZ 79.37 505.126 null ] >>
endobj
553 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F16 382 0 R /F19 379 0 R /F55 383 0 R /F69 402 0 R /F58 386 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R /F72 438 0 R /F50 392 0 R /F41 488 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F16 382 0 R /F19 379 0 R /F55 383 0 R /F68 402 0 R /F58 386 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R /F71 438 0 R /F50 392 0 R /F41 488 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
561 0 obj
-<< /Filter /FlateDecode /Length 4476 >>
-stream
-xڵˎ#7_Q?`E@q=%"lfl.%sLRER$Egz}7N7wm&ϼ/ ⓘgNƍ|ιK?H#7<~7E~?{w>5WO%Mx! }_&k-f'U7%x5ϲG?o/-"OD1>)Uiϛ2ׅ̈́geL\h][M-!El
-={b"y?+` MELP8nE[Vy@NXZC~$zGn-.k?1C(b^0&G f Z\TYjU5K4S>-l ny6Ρ5l
-4jjDDa鳢ЈnY$A:mk63$f&- 4S) >HF$=){7X/q_]8p/V3i^iɢMm3l8ǜOvFp߈F SF&ꘖbˈx.##6Wi 6S3'Y7c% )K4}e!]MOhjʌu5'] vt2 3Q)z~3)[u'^b,_N4= IsS6[2#)6L[i:knAi=mߔgoL2->
-a}b{bY=m&P'm\2^ eAB*SeFu6e6nљaPPCq<sJ17<gRp u a-8&Lk[B |P.]zfٳf.FT'
-ٯWJ|R(f.4GۏUUFN#<bkKf06}гpZXl62w[@ |PWrɅG 2m^2Nۼa|a@·M~}LɛwBppRQbx?Ǵ\25=VPJu<#^*xy3ef$KEO3LheDKA)f#ʧ4# q(i"%AHGo4
-NXk!Y{F9_GiwKMvx-gB'*1DX#p|Kg}qcd3u
-Ls?r*PV/oB$|XfjqHiV%ɕؔ~M'Ee
--糳6 {6l*Bk#iUϪj>W@ݒТLP>hnL
-L5 ym5+"HjVFT-Kݯ-l8 ׇ/H(sOdM%ERΖiV8ֳe&cJ]LkYLgD!ړSZU7_ՔrdȬt2dNYf%cj6\H:@B7t %\gtV 3ک_RpWF.vPq1
- . κ]mիYKڷC桌P8F1vajNC
-K~6c7ȫ0wѰЯȫ>޳WWU2O/QG=W'WUjI-O1@O..Hҡ]Dy
-[I{;dd j}|0bA?|
-v?:/&p{73xQ8zlfKG{ ͖3,zᶈ[&BWWx3
-o0ȸ(fC <C/&TEuLUo7Sл0xH+j&1=zܚP/wH8j `&Gx@(pT+UɌ;A-D1'ZЖh
-øljV%PCqe+ )餢0}?%I}ALo?LG<|rPER.Lh{ӣgFM)ʤUO<}vN׫F}mڞt~ NgÝ<3Mg9Sפ
-EۜI?; A=J%t7la|G,!Abz>8[8;F0!|-1!̋ L(,Xa%W0CKsNxifQEqnKWm3[7G]jjWH#sN
-
-kV\$(`Z_ʺZ7jG˨RP_Q" #Ƽex䍥d4HE2z7%[ǎoQk=UF9LŌJijgryQVV
-b}SPW[w,d\Ψvo/ TWekOfےtڽյiѾO4szm./ bc2o emg
-'c7KZ8l͐Se~
-mڼ,VZ}ԇz`+_40q]k3(M#"Ћ+4W+X?c 鷷zR!˷)2 ,{
-S xg-, Fˇk79VvXGr^QjxV2Dxy"i-"QeALYh?MBrGɖ_q
-Ba}ɥ^S.?
+<< /Filter /FlateDecode /Length 4500 >>
+stream
+xڵˎ#7_"z$s[䰙
+/Z& ~h2lt.wngZWOL*yj㩑_oKNJnKhqkO @I{ Q jOH+I|P0׈֚Ѯ㟗w2w]?O_^L.Д5OsiP0z.ELʣןtʐ]ad`NPVFc%{л=B_E[ {oOˏ6<9Zl8*h~Ы5JV5X3ޜ 2a!4I\ tىvq`^T.fS:
+ML"dw"PiŕaC0A2h1)ݒ!
+I9-xvJ&I"Ƿ+"++}r8ՙ4l%UxM~nS%@xbap(D'YheEb 5mk&kf-JhXtLmi 6R3'x欗K(ZsOZx2G= P$IO3 [:|K3̩7kG4o)\ Lۀ7od}-i:Oh5SxGofX۷cJo1->
+nybn=ABͨq6LpWB|P,;/ecafn=ƛQ>)3ظo 8%ܞ
+VF3tmY? Ė0>i tā)evK(U۬77࠴5sQ\+_v2(P,F-ޮ)2\+iS؋Θx WƯ)a:/ibe8ݳ˘^ e`t K A8e@[;2nO[fNd^8q [1;>_ ih]d1z2;ߟ~Gٸ8Ec);fh20.FĽVqH'kE0t((`DkA)hf@#/iA*mQz=E ;&)K:!Z?yRry.T!%&/m ˙D3BGaג*|鱌S23<I<R\%-jK&o`Dh]NV3)_Z<̓.+mVzr[VfCʞT<B SYB\ ;兆X5,TJG6^aYQX`-v
+
+E9ϒ}lMd2Pf/oBpy ͼ$%Wҏ <LA~ibN JjωuS ?
++<*j"K$H
+!؏!|QFleڪ Rȡ?gq #_͂S?v9)RԷt2dXf%cj6\6|#TooxQ-]۸~mZxoz+v7 {moIk5_r2}$.ϥ=CrC]NfLF{ن4NΥq)ǩmߜ ^U 7nI(uv|G Yu+㊎ x\2amLUV).:
+~|ip{{5=գ]noj!>%hf)}ړ+z~EҧL9u~E׆9NүSx"Ǔ+z0lw#R@'PJeVkBrEEdw5Jv+voH^-ETGpѰIf\2\=N_m8_֗ۺ6Vj'uNlx5J]6{ZGew~Uom?%wHރgihxO-^@:|
+|݁]
+U;8T+
+U˴'<D Mi5`I?8ъ g-J ./IwUR^n/ F8?./?tG|rTD r^Mqը[n>D9%-=r!Q;mCߖG(wx yfKv-%<_8;4([ XߋZOkj)<u#?!A @zy?Űz #5FLb{2K#FJ2M慰cj)<Ǎi7o!0{_D/禨t U%56+jlMM7l4D0vM}o#{MN~{"; "`gZewށͦcl=k?ƢLg~G{[pM
+D㠾}l:ˆe_N&J.Gm(A/8"U$F> -b
endstream
endobj
560 0 obj
@@ -1754,43 +1752,45 @@ endobj
[ 558 0 R ]
endobj
558 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.097 123.183 415.071 135.138 ]/A << /S /GoTo /D (section.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.097 111.228 415.071 123.183 ]/A << /S /GoTo /D (section.2) >> >>
endobj
562 0 obj
<< /D [ 560 0 R /XYZ 78.37 808.885 null ] >>
endobj
109 0 obj
-<< /D [ 560 0 R /XYZ 79.37 380.034 null ] >>
+<< /D [ 560 0 R /XYZ 79.37 368.079 null ] >>
endobj
113 0 obj
-<< /D [ 560 0 R /XYZ 79.37 258.993 null ] >>
+<< /D [ 560 0 R /XYZ 79.37 247.038 null ] >>
endobj
559 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F58 386 0 R /F69 402 0 R /F55 383 0 R /F65 387 0 R /F48 391 0 R /F72 438 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R /F58 386 0 R /F68 402 0 R /F55 383 0 R /F64 387 0 R /F48 391 0 R /F71 438 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
568 0 obj
-<< /Filter /FlateDecode /Length 5527 >>
-stream
-x]Idm!iQ.DOcMI "}ܗfVCugA#
-:iMjGLѨ/W^$"{%FAw~!t|SíRƧ%} ebz"mXVf +"(PIez} 5Iwmkf9 מx"7l֎0jhxKyD})ߖP~
-HSm~Fr` PbjQ PeRL/gk.ӈR%m,Cݟ Lmm/ן - ۥoWvFɮg^I#"TS)]]x)Uu%Λ&*DGS5=/#+ 2 )S VUWsaTdEԁtB-mh?C}٢ϒAeT#h4B FY!9|[DO6ȊeC#@dnՖQAӺJ8k42%uQ,}ss_Czf>ۛ#6[Al_,8;Q | 3x\equ%fKpzB¿9R_8㻓SJ+ϥ##ǓO?.ߕ3tQ"\qg6EW>gF\F"9 kD]~ c뢗iӟ/P
-~司Re5a':0 d7գiqMoFe|
-/W:HNCxC?nl3yޝ&hdoji2rQðz<=jV%P:=5\K[sPXSa}X-n0zuumgZXV@+oNX#EQph Hn/NXty\Z)dʋ#Pɿb[S%\dR2XzlGL]ֳZniM7o:A~L4gØ$sd(x
-Ɣ8=0"|Du0$߅d(x\H:e NnÅhP?np)MPdٵ[<S} 7yny*Ϝ1I3&ѵy
-=b'pɫϡ<IES2H [w,ZK6A兲ֆJh)ީl-lzV8-J>[xXO&Ji{4UGm-ɉMuM/!&bv<F[jJ6J
-([cd(e/)66Ni94+UP5!^ ˓0o׆<zx˴p Q,?"FTL[*|; g Ѭzn$`-rmmJ&R*CN2hBmmrvM\ -i)-Ny]aFLXba@iB.I(eY4VlG2,L݆䲫B.Z5욫Ɋ Ħ{Kn đq7InMuJg c)vT /%qT
- .DR)o>嘀>uۮOZyoe)$]As 7 s䚐Ԥil홝NcRzN$q"C{hRRIA궙 qzxk|L *eF!3P{0!MjD'fuMQf}M+y+C)4WIiϹ]ν[oPd^UeQODa⌻ESU\mI#
-vw6'CnW1*m䰳䙺H4ib90Momyw$nQ\]D8xijr~6}P"E8ua#Jq <MWfP&8O,ki%;Õ
-kϤ1HĎ
-'CSʪ
-LQyNaG51%QX2
-E&0NqQ%yJ3{F=zVMD<:x G9WЋZi:D4J?O]2>DǫfZ RETϣg8͆@Ke7ގIb*Σ|"&Z!(E˧9eQDPO|-fMf=2-KK'٢)U1n]A( {y 81/Ob&M"1^ю1ƭTJ/OCĭhbn[PM0+C;s,M9tt1*5b
-0!Vzb)jH:ȿ.QEY^%iWsbl2r#u=ɇdz7x,Գam<2'*
-Cmgqg(|>r@isD?HXVŷk[Cdo=1m,'e-ڊ_3db1i-nZ50om(˰c-C /Kba2E՛d8Lr7<rJ޿K +]8axX)5<݉
-=X 6#? 90Kg$.|=ڊ\Wlh)5O6%c;ܲr\.PK[{ptwsu&5omz_ኡM0m]wE:ɓ?TkѳQv}Kq<yq<~@9@3KBo$qsr''qI`<s"!?p5)1.<<Sz;Ɍ@ ?DwcSP͹(ޣbJ/Rwߏ ^_Bo] ϓ:O ᑫtnwQHwCx=I)yeaQMG
-KlEz#鷏 ,ּ),-z
-uӓ7rO.!V%Ǜ ܀U_vn9?o0]h#^'*/›@X@N5/hfatVU:]+4(w 8yp硕Cb<59b"~t֎W9B 3⟯ry_b*xxbu/L0L})i 5yauA'NE[=3sq
-w,gKqY`ƋXǔ2٪o͢lRI ,lXﻔKVN1*+JKNQty*oMWdi!+{Zl78 [4D CUhLLaD垔[QG2]^Sx˸V \=ьRm#%uI,}G馼.JS%9 QCFdLWRNpٜBZu;UfxG pGǩ7KtЪMg>G4˘ [&N52.njTTU7uc'T#Oɰ|ݥbs9Qi8Yihzdlf̯6|ݵ]L/k1g4Iܧ)mvp 5bVkWx_4w\;$AJs{7?&uʯ-S'N9Ssn^h{=g&wW4p s'
+<< /Filter /FlateDecode /Length 5529 >>
+stream
+x]Idm!iQ.DOcMI "}ܗfVCugA#
+qg|w*C{@9tSxo$Cc~xpSǥ2@?c.S@+צ(JyG8>Z̈H#gQaK/~u`]R"W 3~O
+ =}OMWuCQ2᤿Wg&,zT9;; ӨOW%*A ioǍ&Իd0MM6m_Fnz#JsVT/`ZêQaT#
+V0m5R.֡C Њh% K|z
+n"-bu݁m0ũ 66ؑC+Lyqx$#W,skqjL*QKHz[-醂=MG5Lz{D>`bn Oar˜'AF$"2yBqsc$  IgaI<-wma.ib3v+gO޷[}#-ϟR噳0&|$63peI3[T}DaVu'Qr<U|Bxp
+<k؎-8z`3XLrP.y59>赖|J DpxEk&3"8w<Px#ڐTM?;EB9
+GֽE7Ug+OaD77mV
+P=b%0 79q=Dq5D ]ڎcK] &Rט[ 2G(?m4s8Ez Vo ~o|2-ht[.t1nڸ9q@R}* }B/oshDoCӻbZN^YEUPcɞ(OZѰ<yh cvm;p h㯩+I!L
+g Ųm#_jJaWϪ@Y|ͪF"Z6ۦ$.QVMTdЄVJA[
+*]P˲h؎3dX"ڙ eW\QJk25W)l=c1M8j16#n*'0$u %,RZ.^K.l\ Rf}1S}]6L 3(JS1-NItnL)D5!w/Iӆl/3;CCǤHE!XѤ4!҃m3Ak1psqa@U%ˌCgġ:aBE5N@PWVRhTc˧sۻԝ{C_m.|Ɋսȣ$wVt8,Տ^F
+ZCly,Û/:lOܮ@;bdyU2agۗ3uёhz=Yr`28=LTq'cI W%Iܢ%TVqZ4l6D~Sg4q"G-*.=Ax>Lp Y JwB+i֞IOc&N䇦U P; WjcJdYt]g{&,MoYɬ"c)d~ͰPx@+8iu<5>?*;WZ;)wgH,o:B<&4)yL>@a\RKg
+Wiʹ>C %:CNG'3p qW)rk-<<n3gSk):TGq+DL,-%-lBBQV>/O sʢ /8[͚4}{eZOEaS0-c"X#P0=9A,)qc^>żMЫEzcV 5)b[ޕ^ [)ܶ\`VvX^98wrpcTj`B:RKQ) %t9eQ]%~,(KҮ
+58oUdjGg{agzDgo .8Ygx9eNT|uP6\}H6ԉ[o׉׶pAq&‰=zbeeYNiOZN7{ f nb[dc-nzk"(<Nj;aPaZN@12^ !d>87S9p* nlyM9[8VcK!p8i癗Rjhy9
+*8
+WsC{`F˺YqTKqhGz-61shI`rk-<nCz$0J&jKwP|4y(X:uǍ\ݱn2u &rjf:<f ejrZ~<;x.+{>r=_YjNg2-m;ch9GgȣyRdnS8;vֵfN;p]Zx&s*d5ht"Σ*f멆p5:
+\9 N2qInl2L[.o ҆KN+`sSz nLyy$5RjZ{" CA8xs F \ӻ!z,lF`+r`I\z8>F*SDk^mJvw䭹e{\:mW|W>*"M> j ;C&aںpOF$nZlo,F<e_ROz<ch%Gk0'̒[<qܜ I\X!ϜHp\ jq=e${N2?%G?Q_'#}s.Eċ]cxrBm=W[=@Cx*![~T!g^O~RJG^YXt`Q
+@ Sf/g$s$~Y:6V"4bxz 7}$Jxբt_A%Kaq؍ 혓z'Mвqg/)ҲJa jzR(-[HE#5z
+K 'B\Ӳ~z롬ea &B"G~097`t病ݪi"Al=Lxڈ K&+V/C Gq3aUxN~J0 ]p{i9y!N:yhߐ|`_ K i[H:}kG+\ktÅVWBdsle9Tڼ/1@d<j:I&䴄Ѽ0xN "ә98
+ HCkl
+[8Mx{E=QFcSu`v[R; %,0Ec
+XlUfQ6$Ey6]%mSL%'ߨRi
+Ѧ+Di4Ƈ=ehmc -Z"g!ڪntJ4{YI&0rO-Ө}خNjpze m+?U]hF $C]澣tSP(ɡ_[@lh&+)'l|fl*3e#[ qu8w#T⥿:ghۦ3U#_eLl-ceX~EY75EvժNݛ`˺1g`dMzKfR|Μ(4,4Y4l2D3A|Z.53 l$KIӶNA8Fi1+xѯj;Qo DɟS쁺{tW^ΖΈV )̹B7/ 4fs3AKC;+mf_pv'
endstream
endobj
567 0 obj
@@ -1815,24 +1815,34 @@ endobj
<< /D [ 567 0 R /XYZ 79.37 542.025 null ] >>
endobj
566 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F69 402 0 R /F57 385 0 R /F25 375 0 R /F16 382 0 R /F22 404 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F68 402 0 R /F57 385 0 R /F25 375 0 R /F16 382 0 R /F22 404 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
574 0 obj
-<< /Filter /FlateDecode /Length 4584 >>
-stream
-xd1
-"xjrf{;׀"Yٲt{ūXwəO3f}u_~~ǜ-/$+q1-/߿ps~S\3w}W2>ϔmulYzF嵾f@@D߯%xǏuk J5
-6^r@QK!Ydhs,eEH:@JRC߷ 2ݹSá=\_t2lEֈ܆M}؁}ɬ*Za
-Jxeʯ~Li$x~jCLG)o񬎦HBw}ߴt SQGw3kΒ w(U y7'C>Q-,,ҊkByDKǵmj錬V(h+\:do{ޑ懗{DGbL!Vw`_bH 2`ihn ZXWX-/Su= a s](r+(yd$U۶!Vy+#LB-|D,ᝂYi
-ʯ+\U0qx uƷӶmޮoؚ+dL:L!L.dz[{_zzvd:[C.ϒ TK)ӼzB0 Vy2TGz*:"嚴JuZa#^E 'u\>V\H+1J{lx0 ?2 Jɽ^#A<$5ь+6ܯԒWB&Y0sS) Pz4#"Cҍ~ai˵Z=_IEYd)"}t$J6CLzR5RoI=eVcۄ+dp}("D=GOKIL9Z?y5!gD iRFUp9Rԁ O(]xq;`Ω#
-ٷ`%p1+j&O9eI1- ,RdW.3$'7B=d7q&Ļcy;I5|@_|Zg6od9f:Fq|OƓN3T5^Ma3fCF{']wHƊ!`L 'Y~ >|8 ̉OlO.JS\IJ2xrx,K*޾|tN+x~aV0hhì;Nfb;;& w]$d0jgrAkJk)n~wu<_Þ| Qgni>gnIDx<$NL|K˽00L[ jTP 2G]rESӍ(w#QK+6fdՌ$mS͠YC;9ou/$GKa [}VRmd&=ڙnVLeZb!O
-
-J}-ALSSZh~J2AB!XZqYBf8Yp듈{i_f8JOѐfVMfd?7
-$#bΞ!rZ_^kq>=\ߧ[M|ݯ3AIaYWT[]ĆMFCak8׶A8MX7fK iOr l8&)^B&K\Ѧ^K"RZs.M2|yN2DADʥBDf).Rh>Mm:J]H@Mz4~*zؤ,Jhz y>}5H.\rįP QbeѺ/,,M~c{ۊ
-9XNYİlh -Ԥ:'SdUm*4X1r!T]S,M4)mqd6ћ%fl@ ЍA#]=9O5S3+#+R1T/muY˕v>xw(+j35Yz;WVu/]D/#b@٢'3B*+LZe+:ۂKjոT2ݥ)\iQxLwvVE<`Dq~VX@2N)V9BmpjgE;>/B`H>Z< r6UURɖN|aMG:}/sMJ{~koe5::f\VmڸZ㙣"we5RHcը؈֍wmQY= i`PI 6|GivaOU ,R{z)T[%)q3zV 9hf\ g)nَ(`س[ޣ"S,)42ު
-xBK&=t 1l|<`d~TN6MNk()T] 
-i+;ޯt +XoƂ:P=^EdH@J9OzA+KW
-Ui@|zBo9-^|nL'UFS årdkDj-qαMwtoE(ÔC[ "$6\eIX|Iѳz!.~LU0Qؽ?Q0Zani3լ+p3_VT
+<< /Filter /FlateDecode /Length 4586 >>
+stream
+x<Ɏcq
+C2#r 4͡
+ )YPkGNA-1
+W^O-o+$S3AU+طchÇ
+ģB%h-npՏMWZ+". 4
+D*V\wT~Oe'O.t>]TN0ԙTxGI0Rʒm}:~f5̘Җq{
+u}ON)2+̙asͣPM\ e%%lXe["G` /Oyn3wf:Ny|/ƓN3T-^]a3fCF
+V'nl"`
+91D,bXIf6ĞjEBO[)Ī6F̘Z^خ)ۧPdö8HǨ6ћ%flD ЍA#]}pBk$N3#+R~1TomJR;
+;YJҙ,j:."r1lQz깐F+jbVƾ RmW_2+>k5 2UOQߡn/7V'̣SUPr18\Dюϋ; 8t|+sV65\M!qա.~w 2E\R-_ZYNm &6U6xhl覈e+rF
+ivغqֶ"ö-* ga4 *i(6t3}JeXjO/j$} ~d쬞jB,ڽ>YJ8[v`=)
+ Gd
+ )d E4BT& ZšMsz85%[(5s\Dh`C?m# ;Vя:;@UDF%ؕ3Fo1]db+bH1tpw fӓۣr#ޖ}flX.q
+2Dq!
+.N;lPߪоU_-zʹ*[[H6,֥#
+!GX9NaӫUpädޚaxPާ|$a]b˂hHsTXX+KLrnEYދ+ $4I ZqlObUh0# 0Zi4^ڑPZc՛Yf!%ΉFbVaf$AkK<<<k8##hS6IwD"mnԥI'̘h/I{rľ>W
+S胅\Lc9ቘ'#MNR(Hl䳈 ""yjU>
+
+zCO z {&x<WEswfzyO zO F|Arݴ V:I/9N=9s+}(Rez徸u4m F&&;`" Ji~tz&7}Qj<aʹ{J+:I~p Un\wPꀺaݡuI@.ufIDye Bt{ij$gï.w6&gKзe i=jxN1~B>s Dk";qiL87O{\$`5?rKwwjԗUU3'1Kϱl'@LNZǨڶČWt4qrIs4b2\_">6χІdSMFSSh<}֢GN Z80Zo/?p og2Qo_\;Q!;ɐP.ZF#*2PbT]ZR%7Ut<C23M7s<U;_[a+]qa~,+0Z.(jˊ5lbS8m[Mg&,>'A)Ws
+!4+ID[H݇dK&W³\W[<Ȝ;2MPmɼ>(TMW$|1>iU
+xBK&=t 1l|<`d~T.6MNk()[T] 
+i+;ޯ5xzL ,7cATu#2$ yBetc'}A+KW
+UӀ zBo9-^znL'*)t,6׽%9x*00eqH W'n. o:?zQ^ORltؘI Xe sU;qWj:Sk1n3V\
endstream
endobj
573 0 obj
@@ -1851,26 +1861,25 @@ endobj
<< /D [ 573 0 R /XYZ 79.37 460.244 null ] >>
endobj
572 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F16 382 0 R /F15 381 0 R /F58 386 0 R /F22 404 0 R /F69 402 0 R /F55 383 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R /F72 438 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F16 382 0 R /F15 381 0 R /F58 386 0 R /F22 404 0 R /F68 402 0 R /F55 383 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R /F71 438 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
582 0 obj
-<< /Filter /FlateDecode /Length 3554 >>
-stream
-xɮah+ i 8'>9ȂX|笠/̓n6kcQ|ħ^ʿ擘7#9F0/jTiFOˌ'ʹ~/pnOׯSճu4Y*
-DG `*wXE2Du&kH}VAڥ {,2Fp C
-/oUJL. 8:RLș?q4G\}5*`Ybw4TԦ\f>EK2skŔw
-' @%J@`z`T <?4-/܊a=2[C/oޭզ0fvQb2H&E&!#5Ƒ# zsEfCg-)p,ir@vӨ P$(}+o'!"#jRG| ԭę4L:[[-/5|kHH80 R?ҍ(6b493ؠ Akی%c n
-($[rhqe]l
-<~,AJ_ߢ%{/*aKxufVa-N^ݢQh
-'њNAR-![!X8xCOZ6, t&YU=B˚JŅ//7% `F{.)3/o)攎_'(ϕ駗MaΈE&7.VB`ˌKˎKM&Vʣ\*ŰO3R"C܄K$~.cKO2U6|yn%>Rx >4Lg?6Y}nm$4}FoeM Qه12q7Zh9\u* F_c%lF~Ok݃!}(]`*z}¢y~.b|Z-iY>cJofDdDlG#`+ĥ ̿8E/wXZaYw*Bz˿!+J g]˵% (E|
-J=w_G+0f赲4rR)?BS; #3U+e Iˉ#f#*tܫ\0܊e(fs~ K9rtlͳ۲uR#zWy.x
-jdz伔Y`>'}=\;tAr.))s#ԮlEx:}7lւ8t'=wd9lے2Rf} B0kX_% z:V2X],Ks O1H^rvTGə|)#G #Kt@%CIǞ1mwqY!MoT8m}~;  d e?IMϾ_M|D`gR]JMQ鶔kLf,_=H}]ߜMOwvj[ݟ^l=]5Y&9S  pèF䪄Aqr{yxN7TGp}g׬aHa} @DcW5;BSq4Zo3[ mWW8ɬoޒƺ! aI73]ixuP}4<K7F$N21Fǩz,hpj5;Ì'Z0 O0ahӿX̝nOs/u/f0 ɞ8RI.}qLde7Nxds <՜C dϽ<?6m(;*ڶybXwťk>=h&NjnkSՆ
+<< /Filter /FlateDecode /Length 3553 >>
+stream
+xɮahX
+S~?}}f$MwX?&>W7$ gܸ8ח'p&UL/2O3ith{xL>:'&:EP=[AQ)(a\|jri8}{#8<u#"Os ̿\|_яK߮N<RVxˏsJ Bi¸ACyox unߵԅD!?}Y&~E >"0aISa I*Htİrԝ%t^FX(nԪ,2Z5,@T̔3d#ń{s9Ksȥ'\-\%vLC%Om5kSĺ80n!>'񁸻PL8t BkƝ\~u$%sFTPȜp^@FjP幗:s.d:<M-3˪mJaJ?aqz2F =}x}mz~A*e[Ko4-/܊a=2[C/oޭզ0fvA1 FI&E` 0Gt2%Fқ+2[:UlLg1M3F@5ȣ%(Iъ-Pfgh:[[-5$F0$n:NL\閦(6b493AK(LO(F9QHIф@G,ҧfsC&fKP
+.vm.}2љ"UtZdE^ļt`:inV94RPm(]##X? f,d?'K(tqG%fS
+TrYwP8jGnyM1bE$CN>b@"rH욌m!=K)[0S5-LzU޴՘hDemHkxwxu2K)M?`mV~Ŷ 1pL kdˋX[3>%ҒzQ,`aZB+L9!loG¬1$gH RZiEG
+MN{/^Z Jq3]\m`^KJ/r ~hKG 4GeڊV\DG1LaU@eP[1B̒,)zdJekI9sĿU(UvV5zr H\H:k &Zղ3@#HahulkS{?g -{!xTP v,c'&C6
+nq
+?B_F~BjNur\M?|8挘QX10*](lq@8j7׆T{ GLZ&)Cml8
+HjÑ2UT>W )߆1~ 'aV%ddÝAa&Pf#M0Z/>AV)MH`e
+]$iSd%f)-
+)h,_M}F6qi&n_]qy
+!,0֝^6E<fJHLc֣ARO]ɺ(rc Vf_n}]*eV]hj=B}adbf㔵jewb<i9e}G Cm:rHǽʵʭHY& aO0r)VRMۺy][NVjdRO<#oץORLT$9/= d_$W~6]y
- H vP̱|v=4P=VF>B1]+%( /yzmn$fn =éiUpQ
-#{Op5jܣ])l)?鮿\
-Զ~X/21NMD3'pTJV
-dg2#݌FV|Э1*J (*\έJݴJ)wTw9TzG]"Qu"p(+ׄxL:~\Ƽ%VmۊJv'z~yK<4s'n۵G:Zw~/S.f~29oP`Kg\(0nNP*+Yc*qrK-O84=W;=BBVrA/\dgQ6ןݖ%3ʓFYmef&mS Dq
-ӡ
+ H vP̱|v=4P=VF>bĻVJ:Q&_10(Hj -zSӪࢶݻщ)=m?5mGfjcG"Rj.S&o]E6m^dbgNqR9+Y)XzF^8>t3naVWWj8E U/pn%VjUzN鵾kK; 쎪߸G5_GH&c(ldgZ|
+;ZO84=W;=BBV.K(`OnI,62B3)ocL?hu$ɂ5\%$.sicSwV\NǏ⒎q;Ǝ Bu;+'lS G]a͵^sjڀ-n~[=h"%b$l:`aN5 epbwոtlLQ|ˮ(1;q{,8;EBdTګרp1yRLj/ ;e{Avnju'j6?֞nI͵V/DZA,el[m@BЛOqS/} 0^ fZ+v3-nBXE w@m[e%-C ӱyt1EM\a:@JȮ1+G3`Qю^m(TrXp>X(R4)xX
endstream
endobj
581 0 obj
@@ -1895,38 +1904,35 @@ endobj
<< /D [ 581 0 R /XYZ 79.37 678.801 null ] >>
endobj
580 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F69 402 0 R /F56 384 0 R /F55 383 0 R /F57 385 0 R /F22 404 0 R /F65 387 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F68 402 0 R /F56 384 0 R /F55 383 0 R /F57 385 0 R /F22 404 0 R /F64 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
590 0 obj
-<< /Filter /FlateDecode /Length 6932 >>
+<< /Filter /FlateDecode /Length 6935 >>
stream
-x]Ke7nKgQz?B#U} dcĻ,
+x]Ke7nKgQz?B#U} dcĻ,
401@h&pUS4u)EK5(->l:ϋ~rd bChf~fzBj;dB®rj1ʬ6G<wUM]|DЕ̋odJFYk.cW|FIeʃ48)Nl eցƉ{Fwu~oMUIP] ,ISj jj+ Rǹꠙ JŬ쨱XZdP'=
m{~oZڧg$Co!?Q_qslU 'Q}KkB6=GL&iI0*
ߙUs#7ynͨeN^Z9}yԪaE7]9{A܈r"b)U+o~xaQuZxbTse(cXbʷ_ V-js>7-9SZlP O~7nۏݚqXAFH3ED]y\nܝ0-'9F]DXW[!~u"`}0 NBs{M,سCOu<;ם_<x ̟;;rWءaG
rIvIe3_]Qpx?{d$Z4uNjq*0h /D" aߩ@XyDÝ2ldJ]a9x=ȴd`,!ie`l
qLj͎x,2gq!q4#
-6fdmg||fqIc$cw9Q!y38 F`#FFSWlAPf&f3*l%0@SNcw6DYRնGtVQ#<t F$+C'Wm)[_ԸD;K׃4A$,HT:E7 rh= iM V6$6!h4LUi Lƨ,Ɏ 2=J$A&=ݐ(IԢL^BIh^G2[j| H$TEH"ZbA9y1Bm@IhLBzSePLF11I$ ̂m<]_24a$1PtCL( "0'B)#x$D4Y6SQ&<rj3ZƒRO(7P2Z 'Aq
-[6́4 #RLdJ!L; O4: .4 d6J%d1i$(+\4@:(72FR VD5a&ę|vkӸ|l
-MPIOEcDl`>B=*~P! i$Tı 'aB29}j&E`Y-ǜ&pFA*ZdjUb4K[[+ߧ"8~
-RCY2*#PPADcHLؐvl@q+c;6R@*Xoh 0OƑI6k'l4D긒1(N:8!QV"<B(-n .FKT?"< , Yln#] +( #
- ʙMQhdYl zȡ эwgqD*ZCfjw
- Jۧ1n)_yH6&d61e(HAE{H[M(@q+{!JS>aSYV UrlU\G-F%$ x!qd5+a%#ŭHDާ"<B32pFPӏwgqDbx$!ql5;C
-20ŭExP}2*K3{]^bWHQD%ӆjtdmU4l{(H 2"ZuɚTr
-Q,
-Ai?VwT9[*bڀ$]$%RBMb7,K ,v օ
-KґUH PI2"~n}eVa%J\>#$T.'X$@Q*9&,!%NddQ
-ՑUH HI2"
-ViXHB@.JVܰ}.'T%3XXJ2wdm(iHF[bEUډ"׶󀊨כqk؛ܶ\"'2_@:<:Z;8lm}ozs=)x_9ϼnI_>ӭ
-:::a+sV 3co%x.Ϸ#4Ԝww^^ >ѝ/xE2]%M<xoK ٻGbn):a'0GrܳѧaxcsxLz3K/1*-=9 dVRx
-I7\Ne?[Gv6>"W9Rlϔq>a}a|->Y+V.hL}OW[n 3Ju]8nOO}i7_({ !FL/>|Z+ۉ[E#ԚZ"T쀏k#y涬[s{\irhk\4T1=gǁdPio~ay
-"J,t_G8Q|U jgg.&LJx .?* !O%YaIÕ:z/tXdѹfTA?sv/ETh/jwjs^d_:%טz{~y}8'jYxP$tT4 E?&5ewM2e|>rQOdE.[ WG=9I+Wl&=Ea Vjt&U++]9rt}kڧխM>Ljb+QƹD]4OW}
-9mWd>XF[ Cz)f\_Ik Wz'@δ][&'B5 ts,As⠟2? \{p㓔V
-o;xW"0<>ihvCe^pwgoxzmӯnRU_*pG:w^U;6 >~۽my$ʍ,Z d;0ly7NVLbm;UWԁD( %cWi+uX(aTd [hݴ_)pQ L[1._q |{GsZQ;yׯsk4ùnIRwWo(*rؐGiOMsԕ{OUU'S\ PҞKx.DTNl)/˖?*`|Qw|):Su[-V
-?7HڛYҖɋU9xF'I5Gy+}r5xռuڐۈ)!L4+r;pf5JF
-Xr}]^TQf+۲
-V4SEƥ|\}+)qo>+q i7mSbw}L"xt%8׆M<z\:e%#/x>t<:HGڪwx~t-h@wӭ~Ge F[._?ܾ-.9*˽~IyǭmN &5ҿ7&a.@,Qy07n%RiRvk;!=(^ig8Ɛ\}kq<-pw&diN,4_jI!ȹgPmwԦ\Mjgo\NK>3-p[
-FF sd(sL"'n%
+6fdmg||fqIc$cw9Q!y38 F`#FFSWlAPf&f3*l%0@SNcw6DYRնGtVQ#<t F$+C'Wm)[_ԸD;K׃4A$,HT:E7 rh= iM V6$6!h4LU_ʹz`Zja L4KNa D-z .Ԝu|+e)`HLU>$ )2I1%+04YaD)7EYdDRii=m,ؖL@]%!IIuH7DR  zb@);)b:@BAk3eeRO-(gH(6e,IP(Z$r5(%Pq47eH@a. 9"eD֡"d!= ԜLBCHh IvH j3;[YAF蝖lMxQABKN3 Tr#c) Rk?KTfnBY7=lI6~6(0(o@NT4A4~-#4S| &HAEkHȐz@i+k(D)sܧvkbY$ 6Jb|ia)(-$5(MV%61J#*`r!}*0h XNP>%cX2 D4d i'2c#
+v@
+dd~FCd+I#hcR(ne/#2ނQO
+>])S5@^ /)ti ,G$14ڍaqd15+!$V✇E
+ @[Bܧ1Ҩd$)Xu#cJY686!QV":B(D2O2IF ݔ\^`Ht┕cJPA춐(2Ȱn,@i+S;2Rθ}*hǁd1aBAlSQ&$Tı
+::J6eP,VUexlTrJGPGVsVP2]*(Kd1}*!4:#S9j5Ș}{G$GRVS< 3
+3P^G% *'AhI-=u!z/KNT1mFGVeJLö-Y)*uZGI%̞ vl~^M@a1)96
+
+"Tb*E2M5eB$! Z` E%+ۉ"׶J/l~
+'$Y[:D
+ wl|'\Y[U;Dڀ$a,XQfvȵs<B.,jS @%WR $RڭbqdhX$tl"J\= X%,,;XKN8a);w*IFX$#`*DkyDj]2YFE@* ,,l%XXJ6%h$D,de; yB+]2% ,*sGV "&hd,VY(rm\>y&?m%.y"EtclӫynCæ_F1Cgs$I3
+`^榳x8QB=Nq#Mz 5p%\A dW{MplB'# XNۭ;1I 6oHli9_jn֯;t@c`̍>{=t;Br4~@ uCԳ_w9ڔc*HKgu픞+e'e~:T疇jnWfǎc|Q*ĬQX|nrGN!Tk߽/Og<}V]I7_{BG<W[>~tf4\G.Qͭci2g՟>3fQR›|;BCywy@*g_$/eZăz{$.ٚv
+ st!G=}]G>67Δi74aR\B3;!)ߠNf=.nL
+pQ&Ljr&]U@9
+P]~ 6Bvs+}z~X4xGou;*!ؕS K>-9yC"Х9mPeB$ (C*ƑO<>tN4>3e\OXm_Xx|3uOnJ. n$ouՖHÌRpW?mmSto5BQ.ӷǪfeV
+Ǯv↩;/w~GF|fH:;d-^#hW/z#&ULq g>*G`in7K}?]Ǘ`/y}f2_Ut1ھ  ~3;/ކϢ'{+.>H%GqImiGVnhcXipjNK7V~1蟷
+`ŕ +3R69_Dү7\Kf z|1h9ڃPlUx[6vqICkWʮ.S-v;{k~p*絨R?ҁzpEܱam['Wndf*]du%&L%]rD +j{& n?ж*M+om"v璱4da
+A=C_=m6jR; ~㒧tJ_i/x^84Lg[/XVLVocb`Z_y༻CE&TUet{v,}U?7ʗ?6j-&%@`9Yv+a<
endstream
endobj
589 0 obj
@@ -1951,10 +1957,10 @@ endobj
<< /D [ 589 0 R /XYZ 79.37 771.024 null ] >>
endobj
588 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F16 382 0 R /F25 375 0 R /F19 379 0 R /F17 380 0 R /F58 386 0 R /F65 387 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F55 383 0 R /F56 384 0 R /F16 382 0 R /F25 375 0 R /F19 379 0 R /F17 380 0 R /F58 386 0 R /F64 387 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
600 0 obj
-<< /Filter /FlateDecode /Length 11374 >>
+<< /Filter /FlateDecode /Length 11375 >>
stream
x}K&^[v/n:&0uU.xŠ
Aе[4I]'f+2$ WmU7Po@L,OH  xŽ~l)g'!n9{::ށtz
@@ -1979,27 +1985,40 @@ SJ6e,-&dbR, T
ذxgIP34z~/̽245$8ѻGPg94|
r|3UOg#Μ?H~ʈ:P,\{
KLM$Ri̊ſY~pxC
-puڬ󂀧r_M[ݻ)K9HkbUԉQ
-\R j8רzտ.ڲx_: cMj+wm,zspK^Ã%"d.}⶜}6'lh<_]}y:t??S\ػJԞ:,+Cg6?[m rb]xγ<\Ϻ4C5yYdQ0' \g,=kq5}M~a|M>_~k8zF\n\lVi}<nM*UhC%_@
-~X0ڥ
-~@ml+ϔ17ZA->@i| t4<K,*NR%'vMb:p(a .DY:" /֟Ŗg[ +wNip9zI?
-‘?Gf{
-e3f9{1 +3[qF꧜<P4\6`=Tږ[}%tW_8)f$!EUSS?ʅ.TtEt* ]]JEUDib=R,cOf(K6kgK#ܭ 5xM]lW~0(L+t&M"pev'<a-/5KOX)ir"m
-t콽;q'PphnZ쫲J|]ŘcQw;/enl6eUR^I4/ቢ1Xi0e(Ax{#,3Zq"X4ZjPyDQdb)#*;n0\m%ßᗸ)dE T[.IdhQ*|2wrA
-2=psdsdUI(DӼYf11)rt
-FY$aY
-J, 4 hI FPŔ 7 9/KNIdX1@-PWb.8ugN7|`Ƿt$"s,"VSmE܂@90-x$w$"sJ4Zz~[_7-G2@>0tLpo
-
-mWe>ʒ/CzqF4͉!;ڛ|
-#3鄭W3He95ACV|ATq_xR^#gĸw'H /C2I&P$_2" y06|)>yكHoL"2bɠ`ݎn5%0I U<wOj$ZYУ۷тH!!B)c8/I0a3-lO*cJͻBsEB
-|M ?I&feF-[L]+Y2>f[8i[bK|DMa(iSmeQ8n~Jh8 ؤ1!>E_ƕ-<+BۯKӹ: =MYM@%t;zKĊ2s(4GƎ-4T hXRsUƔd8aqyMe46Kmgl(8jE M\
-"
-] (psKZJ$LyMww.Ҝz5 '"e0dK GFJ=9$NMc.cDŽWtWke!eTRij&  "Qq @J#1,hͲZ:Q/\C2X㗔+$ 9 +"%8bm"BFJ?9\P8av)$2^ :S!]ZR<LgK%E<FTHR/;Upl4g3+HDA]K'
-\9Isr0XŖgk,NDJ`ڄ+Nt8z6s@I ýR]ՙރgdl7+kJHa)ak|*N82љѳJ"E z</z7DYR@Xp$ [Xş"af`T+ej{
-Y;'tdS1ɭJK ~͖ +S`
-R PFD1#BB/4plZT"FpR & wy$&aaQj+hͱH҉G1j
-?_3XQRB15paLsGD2Dp;ӁSЏ)fb Atut(gab`K#>vXN>ߧtm7w՛{9 ,xH6uޤ=<o@N;]'6}wؿPmaLx_kxsZ~7m=Tӆ_pvCElyP=}
-rlT]Sfm1)yѳ{\1G݌mQn9^"#x@?4蒏Ο#pLQ/IfMdbȟla/NA9F(fΥ8RSI|DnOtldYFgCO1>QٟSwvzՑn*zJ"[P=NI7w憻yTo+R^Şבn}s.y_%?ć9ݴ#zlPwx,kog3}bj ~RxEdN/È䲊{k/MS/4,"9y=Mͤ5=ѳvwp.Q=b\we;ƃ_{s5ѿ=3)M=ѻm:7L1eX|VR^ǃm0{SD` EW
+puڬ󂀧r_M[ݻ)K9HkbUԉQ
+ߓ`SÏPLE +wxU]Rްs1:N<^QRIrU[~Xu5m
+N{A)1b;<_2us{Sc !w5_.n+;ƗײUwGW*=^=dS_J;Zz9!ZPz!Al[[(/7@=>3UVwZzoBA(F0pm۴L]~
+`-5}
+ڬGSrc1 <nVj-Ғ>?sy& qZ
+eIlH5OgĽ\_"INvZ(.bhMK MtKhvϽހ^z{E/N;Y
+^յ6UߵNO[oyT~"%(!{ïh{> Aw7pg18ő,pIVb䫧cY7j(鸾ÝO|z^Vvy}ФZ pfmb+ 
+=Ӵ#&5wWTXW龫>sk|agb[p~o' nQ;R}a9 N>iZ=WK"65odp*v5jcg/{r~Njqʃyo79?-z!L|0ے= ûOkr0}>Mؗ>?;l:t|=t@–<~Ly|rS`>c>(S{\`:o-?ʉv]9s=^ gv2(3ǞV͵嚾m?0mNO]/5=#n.7.6}~Lqdg&*/T YFW?,wR?wU Xt6ߕ
+gʘ㛍q-ry^ OG_>:aB{tT'g?)Py@tv&yoP8^|eMSMb˳-;4_=ܤzϟr
+\cad:ޝ
+]Y(8X47LK-UYXḇg76j2*XK)$DQVk2yIew `kf< ཎD8ks,~-5p<IK"ˍ(2 1w{`WpkB ͊|c 7gsS`QJÒKD{-k$2(E>;\i
+~3,Ȱc'jmEï'ms75|6C 16uz`會A=WM ",,hʼnWcQwkyBs\5ڃ"R#
+[9e2qiA S$\i, ܘn9Cjq:,`,MJU
+'%wjH\4w$Q#bJIKCnYl %j$2EF +1@d ϺR\'>w[s:LYrDQ9_KnRvܩ6"KVdpbn{D[ixRU;EYzDQ9%~-=mkE֭wYίɖUX\ :&~^xj߈V
+;'5CC,[hlҐy! SO1P$׍XKᙖglόpb]s"WLO
+ݟ$}W
+-H., x--%IXGd0MS\?sy R%|lXA՘wN/C%mE_fA&ݒhi=% PbEdB9fo}wUocGK [s[TS4wTOi܉^*cJ2 0C˸ʦ2~W%636VlU`g 5kvq.
+peBiF\*pXԲ_.b53d%iS2]S'X6Ѥ a.c\.qe
+J-nΰ+;L`%B
+Q./.E-S Wp<R8&ٗ7Ȫ
+4xHx~ Ԃ;HtqrtE8
+
+4V|EasQ?K V_dVhN)~@ֆ޴r |Div86B
+K [٧"ΌQR.z9ѥt-%N;[ZHi[Jv22Fp٥##%P'
+&1MRc+:U52[*)NX℄M\8Div e%pfY-(V.!w,KJIĕhr6SEb#%pRy@(̰]
+).-)&"G#*sJHa)ak*R86Q᳙$Q  ܮĤ9I x H b˳5 '"%0bm F:=9RaPK)@L~
+K3c2yΕ5%RѰ5L>'%"=҉CZM
+Xv,) V^kf8Va-MOHCg3T0v2=]K Dla
+iwe4l{9%R5BN-( Bppw҉G<^OQ- H!QFӢvr꾨E6SEb#%pJ Y=s_
+k믣`9|?bPyf Y4Bu*X+kJ4kY_`s0e6Ds
+7=@V4]QoR0f ~T_͚p%9%R()asn8@0/ѣ
+\+c҉'Z u?.O&4;hW]u^[S"aGK'1Ǡ٭&G=:XNfKfBn[x(PnJ!A!S]b86*
+8uj)k;<|0(5_EX$h#H`^(._5|VJ~n;Xz++nau-)GI jEAx"`S}Z:eK@b\5 D ɚcУcW#Axi*" W2Si@I-xle~ȸRɓ5%R()Aasf(>7!'  C u:xRx@b믍s,R()asf8@V0#^Ge"~@_пOwv3MӃ{GP::Utlh3pώ0GOI;,S:Mӽg<w$:o7҃C@ƾ;_z۰E~_
+?/o5-u?
endstream
endobj
599 0 obj
@@ -2030,10 +2049,10 @@ endobj
<< /D [ 599 0 R /XYZ 79.37 408.994 null ] >>
endobj
598 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F17 380 0 R /F57 385 0 R /F15 381 0 R /F55 383 0 R /F69 402 0 R /F58 386 0 R /F20 376 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R /F75 602 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F17 380 0 R /F57 385 0 R /F15 381 0 R /F55 383 0 R /F68 402 0 R /F58 386 0 R /F20 376 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R /F75 602 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
607 0 obj
-<< /Filter /FlateDecode /Length 10102 >>
+<< /Filter /FlateDecode /Length 10103 >>
stream
x]M$WQ:t:MFNۣvXݼ>͆׻6'_0I
bXW0b\.ŅutL+Fˎr3f^_e]NM\2́45tTx<ɇ8O|4 Kݪ%CN)~E.IE۵%GLYSsNe.;{SCv1>Ҹ,{d(&]v ez2iг-$D:R5$頼D.\H%FK#CnIkdzҔ <ź } @J^]7,@5FFL3X%q;!> q!4M y$nzE42(ڄr~Xl3(ۓ>U-hEc ;0#ED#3(u pgEӖ 90/r' 9!iYa;Ÿ @") (d8JX7K3Ee}c2A%E9|Pj
@@ -2048,7 +2067,7 @@ EYp5A޶gҎ9E\͑}+j6G*&#>(RrT*pԜVȎCr}"j״:k*
[|
k:ܽ|.ϚSa?n[ _%}MAe,ưu%ߧ"ִOGסS3t:x'`y jYƱҮF)FTv
v%o7
-MU3W'}:>GhzQEK_~ -r|^6
+MU3W'}:>GhzQEK_~ -r|^6
.D\T`>Q%D3]]sriCo;ŧm=ߖV1'vBCӚʶ9'v6x=yڵzIG3?G/:Ցc %5S&*ڤ
傊~ u@kkEbkUE[=@T0o:1\ ŻE,9W<(\+.洠\ *
6û琈\~޵\,5֠TK\/2Z.J^`άǢlr1x2s5BT1-6CQ[9`(V!c);kX.@T)h}Mi9{J90TkL!P}rRu_bZ\gV} 1 65Y8<oXk$]aP5@*Պs1et(_P#Ps;31' u""v.j*
@@ -2059,8 +2078,8 @@ F)dq;P#񩢀Ps; `Q"*x.mpHBD%fGr" SQeFD, \hhWk;ܜ
a d+[UokD P#R"T1$mR k960$qY|Ӫ]{]PZ%@HZyP@cRn@_\y4>s@L_i_Y[>`U1҆M(3*U0bM!ہOۡզEhGCy5v|QuHFlr^hx' ls=x &S5EbbTd(boyz31r{s)? OUkѤʔ#
&5@
G,p(Bd~.U
- H8R!Rc"C!21<
-إm7x[i̳W7&n09_m9N]`qd/c$?\~y6ZMM~N>xxc/S_'Su2%ȭo)JF1]/{xnK}V<90/=~__|]iTMuwO1Bދm(c?&֮"rcot6֬z WuݤV˴3:noIO;Js{pwY1^qV~yp{3L(yS0344lv5Hn[ی?6şn&Z.kaI\aɁ+Pc<[zdWlq&dykZ.UVҳwdȿ5ueJ[cD]4]{˔ix=z=滶uCcm_7]gg4 vnS7+mdw#de=wrA'sFl#Y@}L{LlܽArh=k9.oPB+X{OW ķ{93Ւν Qr}IX:zk; oiu[*!W[&S DG\
+ H8R!Rc"C!21<
+إm7x[i̳W7&n09_m9N]`qd/c$?\~y6ZMM~N>xxc/S_'Su2%ȭo)JF1]/{xnK}V<90/=~__|]iTMuwO1Bދm(c?&֮"rcot6֬z WuݤV˴3:noIO;Js{pwY1^qV~yp{3L(yS0344lv5Hn[ی?6şn&Z.kaI\aɁ+Pc<[zdWlq&dykZ.UVҳwdȿ5ueJ[cD]4]{˔ix=z=滶uCcm_7]gg4 vnS7+mdw#de=wrA'sFl#Y@}L{LlܽArh=k9.oPB+X{OW ķ{93Ւν Qr}IX:zk; oiu[*!W[&S DG\
endstream
endobj
606 0 obj
@@ -2079,42 +2098,62 @@ endobj
<< /D [ 606 0 R /XYZ 79.37 276.233 null ] >>
endobj
605 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F16 382 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F69 402 0 R /F19 379 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F16 382 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F68 402 0 R /F19 379 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
612 0 obj
-<< /Filter /FlateDecode /Length 8674 >>
-stream
-x]˒ݸ+R^cBUϪýx4^y>2  y/UI]TYDC Y.7?7ӥ.5.?'s\/9%ˏ/g78gL~:٘
-Qۢc}w}voW]{ǹzx{ #v-'ÜP17K1vRX`X?S(y/֧޸ z.C
-k{.8OwocNN6{|4S'NZzS 
-]:D,#:L3>9͸ OCvgO;7ٝr`oO9N )Ŕ>p)K)?*Ǻ$gWo~H`X
-7{yEjR<ŧr @IO/-PcO2#%&1{wx铩 !.f,)Coxa ƞO?៽G* .;ο#t>C&p;A1-ї'?%Uo?yWi}C<
-'݁NP;vnQ`+zh$4P#b1 FGK7l0N s71J($8S٤rl`L6,Ԓ \^-;KYW3mn*p8`v57v0$oGQDXE/cر0G֔M
-&сNN`%jpT|[yh`2;WFjr^d{B2^/mnp$v5;v0$ogGQDrքc+i}A0PtQ2\q91Y9d0K s782 K($B峞֎LP .%` nRYBE0mvx$v5=v0$oGQD! h.%`
-Grs$]IVA3; #h3XFA6d;_ǵF=VR+p9+>A0mnh$Cv57 $m'GcQ4b!˦Jo/.& 6)r*p8fn8=cm(BseBM֎L9X}a]nH]bF0mRܰUP4̭jn$=vmQP Cpl%rX$i5O*HS."ܰQp,̍pvڱc&D`NVBc,`V>+Ǩ6)v*x8vz8AqdnQ`+Fo2f]K
-0 rX$S&GG1jiW# jCvz4E졑Xe .ctۉʱ8&Wڤapď0H*./R N)TNVQw0Wp$܈H8,jn$AapN91c+N*<9 lގ~)A;l8N@S91AKlNx`e,4a+L'u ĢQkR(yMI97hTzFp0磷BOP{xETe!2QͅU" E5?a(8l(c%K ]WX *
-UǼ#)d;挠Gʽ(2iHk#cU:#aMWe>#9( $&u+툺GnXyGCh 1DU+PC+>ߑ؄筿ߚ4qcKIıiHu9#d+V397-&"?@E?%BT7x `+GvɭY5/]-gUF0w-\bͺ/uK?5RJ;:ң=߅E9
-1mRU+z8spH($ QP+᭄Vh%AKOBnq͙|ulR/DÉ_ t -)E7
-Be%8p]~2_2vxMjZEnفNOD۠%rvJc+ɐ2TF?I2L
-kEMxYKXksuMJVQ5q85qԎ7%Yge#!TVh/f>&Rq2[ W | &@m3
-/@VR!,b0%,j*K4ܷ@:ؤDMl;8Aap^5)08[Ͳm%<pM>
-"NUr>m%<ư(L.
-'فNOu:ڄ(JVgEY_L`b0 j W j/eRj/>É^82 Kr/Fa[ӼO[ 膚삝p_kX\tn֑EqCF-]k0790ùiǎ@m3
-Ҽtc+TeŒ+:r5Bet &W:2)1[EDr8NP%9s]GО3r<LO=2*BQN-X D$a5kU{w$z\ΚޔŹ Hf@.hMU@
-27̨iM/8Lu&~;Btd#8aVa]zbVq%w+C>M F[lJ;cR9z^kTv]#=+c6o|,<8T,vi"mF#,W鞶=RRBc%YJ*5\I"\q7Wp% xIՇKXB)G}Uu`!JB0Wcj\}{{X}E(1>u?z7
-X}NjUKW 7][~B_3n
--G>
-_`xڗ{/7JyMsya4m͹u2؛ܦ.혲:QԯNiޢ0GPwx8OVx6]-\}a}IU Sk37 ďf`m{p{^Kl^,VaF,yÏbɁoWl`J0cy &J0LuFpsl{nj&P|7pϱs`~aw;[)m+pG]voT0)/eNtgSrn]lSF/pe>NA!Zh=<a&V., lDlSqM ݫ3/g3`:dGCy:'~sw1XC.>S`5}CZۗ7.Q _ `q] Zj3|ۋ]&T0ۺ<.pc긷1q]icMp_ #eg{xzQMa#h*6J=OγS[2SC GY>w+&WIEil9M@wLޯ
-8ZjTĢ `PZĭ.&D
-W"l1p(-j6(/RH3BZU+r#C
-P8c+ū6$YdJ6(-%Ҍ`
-Z,B JK(u4#$:3T_0%y
-NߨeW{=95EAFA(8Ai1A㖚xd(lʆ2R[
-M A #0 \pNFyK-_}R7W:>ܨfY3lVN-άNS{$:cWbծ$R[ze+@N{HgJu cq`
-m
-d{ [DpNys fMF<ŕ&sMy %[SH5Y3L=@%Z:
-Nb20uДڃ谴2x*u)ށ =M۾Bwkomq٬9濐gy+;"~so F@3"%n91uB4@?:E\ܖSg7˖
-Y)+< #Eve#;6kr~gvõf.,c]A̟@N~#!t2|d~!ypꊽr:WʹM n :;D<(f:͉-0ޞEŎދ}x$yڥ6
+<< /Filter /FlateDecode /Length 8696 >>
+stream
+x]˒嶑+(DOtU&<~i"|d@^խ <@$@\ 7TKLRo,8|.^~xcsƤ  3|[2&[??vn.%6309jØcr}^3]..10yy9sn\qֽnSZltp<4=
+Cv{i9{?C
+h%OpY/~n5,ťWӯlݟg_ ?7{~u AY ~~pyšGkV=ĿI4qI
+|8ĥ
+}c]cO ~sY
+?./R{Z,>7W.Ol05H$.O8Rbcw8x;y>b"~o˒B< J;`Y>{įK{(>BL 9$`;
+vr-7d[k游MqCZ'U H`#0,͊_p}lfdP}RK6晬XH 0u_L**XOG8Q!7)I(K]q摵PUc^aŧ%&4%q &!IH1piWS$ #Ðp F'gk&GQ$8f'.ݭ۬) jnwԎ%z! jŭ'n'0& [  ~m1
+
+']͍$; `f)%|l%<+dŤ 'v,̑5ehG?c" djt? 6X"d8UVZ;w&k<6ΕYK2 Ǡ]͎$; `p5Jx`ZsХL!T3]3=WkvFE  g'Am7
+dhK j{Ti>P}%L2 Ǩ]M$; `pbHFB0ZK BǑ{.92I0mRUp8pH($ QP qmhQԊn"@r%L2 ǐ] :AX ~|l%8*c;0i&R[ M
+'فNOD۠%r\PӱSV*<EtyWRz&L7l4M sIGۢ%nECP9[h!+I@yZӵ
+=,˱7l0K s7vt lF#Q,|,F)qc!1M
+'݁NP%z!ck&Y0t+LB>/1II+pZHڱ& F+;{h$4*c ü;vr+G6)n*`8@vn(?# lJ($ˋ)ck&7`J6r̕ņ>$)2 7be81KIP;v:܄ӣ("}NLJxӷ
+Oj~*`)_Jv{&[@'~ Bm9E=c+=,XpMn<
+r]l.C0GdǚJ~rcRM;v:*/;Гz-?^'gYATsv
++Jثv_Hպ-Vh1H#w1H
+َ9#lǑr/
+LZa8H6>XvyU7HXUYO0Ńt@,ʴ:I]J;c۵ֻ;h:H̤l0QESk3
+D$/6!y&Aao}h)qlRD:GD]NJlLMGH31;PяmU k:,krvc >zWKwE)]"l
+{X]ݱq1 v;( c~?Cu5)+)* 0H/*XaFdu֯@Z[DM6HI`(
+;1Ђv|Ewy5@eΙhڤ$_l<NPs=82 K/Fgc#1K6 =.!k⌕+czL9l
+Nz98
+6%j%Jx+걕$Z qcn[esGq"pv:mBK/E
+"ΖulG[ beO!ݚq*@;
+'݁NP%z_5_F"
+uqX %MTI,DFq3l;H(?g+ՌM
+"`EJ鮏;L*qXۖALJVA1;0 #ÐpDSܼO[ z1,Sf*8` ư4ý\(cb hjv ~6%ru%㱕Yb֗qS.L&Z`fKڋpv'( CmKQD4/Vc*)`g1W0ZudQܐQKZ(Mpnڱ#hČ¡4o!JUz}0
+N`fsɕLJ Vѯq8QqG!6xI\#' .:SϺL⾊>l"PmTS ֿ0fsM㰊p
+l>[IE0bńqh55=lRDR赴3Ѕ; ۞8 PI֓REq=%]Є²~<1ٶ ]ñu/KQ_q9CiYLQ|"$ZV9sq?$yѧLB},}:%1,nIi5ҳ#%?TYvq|QBβϾyj5F;rE;_uG*::n"q;UBہp&x.i>$WVE'ۊHvՓ+(^>4񱷷A >jb;[yތKs[#w礶]%t4\_?!ׯxsD Qi᜕wIM57xՙ0Z9x k(s{%PI<~-e[_,Gpu`J!G(.WW/4y^U/-%ۑ7sqpbbywOoK/Q%Q6UEӔ6^G׵tc_s,dDQ:cnBޏ`L?][׹}T,^<-7spIoֶw
+<*ܼF͆ło$^a993Α(v諨LXț>1F3`
+owg7Pˆ(|m"]ui;
+לq)}0Q9"Fi7/aw. } .pJϟm]`U}eݻoy&/aP2x<{8tgy%'Y)-!| _,|rU$&C&7I
+>vO_ZO i֟˹Ӻ&e|Pk/o
+>Ov}p=G
+H_]|ۺ]1qAdeI.%z$%`#[bpeg
+%"I^LPi 9\[$ˏ-ՖvkK#
+;wFR3~k\p)ɦ\br-5PbQtQ0P(I-tPbsH@"C
+I% VJ
+6ݿVIux_LKVR2uEE@%&n1!A{81.d(I
+;k5b
+Pɏ-6$Y!dJR!QjHpi4b1! `G6P2z&a`SPEAF@&٠ך9Q_HdD-DU#L/nr "dQ0P(ċRH3B(8C5 YGI4}ZF:pד\QNYdJRvkK#!;niMGƎ&l-#K@.zޔ 1
+ 1$nDraɞa'u{sCij(ZejaguJE#a%jDv=Ջ,hm-:-@]
+PW?ۯݯ3%xǺM1jY
+pOGWzշ.Ձ~tuWt{R^ab|zU o*7Z4W YV9~Ĺ -FD\?RmTEA/oiWO\H{% f<)jm>w
+Dkvd" i-b&&
+I=@i"8'9Ќ3~զx`#Jku`<ƒb)Śe@&ɞBjm n-qjG3^PH%obN B9I57z%i"\MP$AI dP^FK !!
+-BZ4y׺-bPS!l=E@%n-s 4`#$ydX0z`1C* `W^rUH,L8{=%Z:ЀU`vӘl>~'i&SL% -6(X
+K(w 5!$.
+Nb20uДڃ谴2:R6J{n#}'|iKM㶳Ys!H;nmnWvDc VRVOgDJ<.rbVuh~.u ع-n'7-W&'{M̩Hߦ!2'*̷c6ZjE3OQP7RVxFH%F~wl>kq̀]`IvҮ OFBE!v[\OO{u^9F+YgܦąV7OL yo3yĖK
+?oO쁢bGKI>^se^bY[}
+XR
endstream
endobj
611 0 obj
@@ -2127,10 +2166,10 @@ endobj
<< /D [ 611 0 R /XYZ 79.37 460.075 null ] >>
endobj
610 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F15 381 0 R /F55 383 0 R /F69 402 0 R /F57 385 0 R /F58 386 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F15 381 0 R /F55 383 0 R /F66 389 0 R /F68 402 0 R /F57 385 0 R /F58 386 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
617 0 obj
-<< /Filter /FlateDecode /Length 22480 >>
+<< /Filter /FlateDecode /Length 22481 >>
stream
xݽO$%xO;O
R)ѭBl5O׌=GDFJF]/I:<>ߟ? 㼝5[jQ_~##|Ǒq|οП?_]xae2ğ+7aBky1:P9;sɓs+/8IӗTˏ%eʑaӳXNrHuD-^)z=I~ #sߏ2kYg:v/:v_BU_U<)o~k0tH?ڎFMI+._*(+*:>RɹzN.)yu;PhjT+X^FkԆ?Z?clL񷏭R;p|yo{qKga\u
@@ -2201,32 +2240,27 @@ v>YZ"[|BEj|@MíDt"Tӏxn?~]wVJ~M(SV.d Z0^Zŀ<
ܧ:I]Bd4Ep\6DcV*آiXLlw@GD[@B $
5e?1*8 8\S0sS0|(|,!,lfIY]g
-Uea ǟ~"o%g?p }z=o-׏v~?_RNv]=]y/Oӗ
-Gѿ"!B""ԧ:3_+E\} 6@YX&d-(}K+Iƹ_RiYĘE/7.?ATAu@/Wm
-وL+9OE(׏
-@mٻJmV/`'B~1]8UumcFgx5
+Uea ǟ~"o%g?哈oBw_}Ѓ_~n'HxQӿ_.Pnn5_~J?}Ip +//$"B}#1/.O\H`#_H  en2L"߇d 篡|Tn%uu(KYOYG .~֯0I9ȔRS{9,T2j?kn|X
+٦f%|@z,߅3?[UQ[;f^iDyFW2 
+U"nLct/^l`,z#/_7Q)T15JX,Gn8c w'nݳkyȘO<ws-?ӛ/%H!ޒ^Dp-?h3ތ_W2?F\u\~2FjwS*@%ܩ[mg >> ACa^kY~a@㻍Tf`MzJqJx2
+ZȪtU+Z[2TYmC\m_#iNZNs#8^U|{/I\nq}GqG4҉#)[;~~w[s$̤,p!jrp:^\zN}8;5{z'>=beSljg+Q~,?%>^eq||<[ |dqOrVy 9'yR4^h60tIxߏ#jazS<5vŞzÎw:&n`wFA-w&|uttڭeyK'sxL-õ.}@?=Q{7]~/
uIC7/TFRy A5:!>n'2ό{?W~K7T̯ o gw.rHkD/u5ݒ
NDqM1*6*|tSzeOTtM|y
-fq,ٕf0+=·6=c2vKGx߁ LZbIX{Euo_L~wНjx.Ϝ.);N,ށ"{>Lw>notκ3˃ViLOV~Un:e9]6n־vCq|k.lx*\6H:5|z'% ޟ|?YY|/_m˜ߔ<>| [~Ko8m[Ckuކc$ 8f֮:~h/ϝ~57< kyHrGQc4Ѩ<y-?ͅ+$?e58iśU/_oa_,8Z?16iۤkB}js9bIwX,Kwy]-SS ^./i߂c'qO|э=FCQaVf,4OjVþPigqSY_˺˪j/詖^9Wk1)54!xkWkכo5o7ood/La0 7.x;/9G>4/>fuǖy[p$`wAG`gA~r7>
+fq,ٕf0+=·6=c2vKGx߁ LZbIX{Euo_L~wНjx.Ϝ.);N,ށ"{>Lw>notκ3˃ViLOV~Un:e9]6n־vCq|k.lx*\6H:5|z'% ޟ|?YY|/_m˜ߔ<>| [~Ko58m[Ckuކc$ 8f֮:~h/ϝ~57< kyHrGQc4Ѩ<y-?ͅ+$?e58iśU/_oa_,8Z?16iۤkB}js9bIwX,Kwy]-SS ^./i߂c'qO|э=FCQaVf,4OjVþPigqSY_˺˪j/詖^9Wk1)54!xkWkכo5o7ood/La0 7.x;/9G>4/>fuǖy[p$`wAG`gA~r7>
93Yi]Z@WBdr
&4:uްܥ2y ӓJMd,Ϲf~PQE*zaQ+s#Vܓn%iejʴLxj
? -%$3 [y1@ԭP#\
= "]#oc F EzJm4PQnIٛIVO#%UJ̛dQ//.!_ elc^nk<ygrOcd'۞/Ze^uHJc4E)OB-bj$;;kV*&sNmAR3ѹаԅeѮr£w0Z)܎
隣7$@Q lb78#;&-"A^_ /F˭p&B"5 e~Po9N>=CuJ‘yMx4]*zYsnQZB>g+9SBu*zV^(BwñR5- Or&Z6M(Uh@`
->ȊY h̲d;$.DfiHXTp40h<+D; 1ֱ f6'GGƦU44w:\lMP։+7RY"Tv)0B0GR>zvo>u7ypq4F|F]`UF6u5V |dgjc.Q
-0]'cv:BAzn䱣HHhV# kgiTׅU??С@A>g3/ Ӯp@y;ȤJC/ {n c[FviddGqxesu2d.0FRr;;?x|<gV$/]x!l(;15%=F
-FWJcn?6^L,ȍtavQ&Vqe~ ˜X:0A>g3' -i'Fi&jV^x$Ѹ<xo?O1FȌj9jtPnD k[JBіy2Qs830"L^2Tp'1&[t^PN0F[ūR뀌
-4\YZJR8 H25#rGZsOPd0F4g@<^/
-but HXQ(|eBMP^QHlŸM_yc¨Ɖ,TacL<
-6 [1-𸻍ҰYxdGte 9S4-5
-[&+Vmx@p[3 JFB-лDl;a4Fz.RK*z\|BQbɚ]quJ7L.y̹鄔s~ аTdMĻ~bXmQ2K\N0$<br2Ѩ(]ХIIJ˳%{/;A.rKkwgQ6Fܕf~-Ț ǏaHV*Cfs A[;N^@y Xͬ h&4^M!H&5J>剉9&=9{1 5 s8t
-]A(P& Zly, %cAo;Cc?֔
-IZEsN<ftjm.dM'4 Ex Cna4 yKed7Š5;psvޝ'F,w\gFG=^h%66àbqIޒ֘qw0*A?1@À
-PP"J9c2Q) }d޽ONP5pER-qirirLHP#
-7'#w<ΛijSJ`
-cQ:S:{4A \2W 8|P|bö$嚶Gy
-c@q{5=Jg\g&h*.zcFYCpw)x27 1E*R')BfTX8U.^Mp~+cTDަt5W\-uKB`&FL뜑,L%E%+hK A <+WMٶUk%R_drNE[h%K]:Q#
-]>4iν`% ~I?U7nQ<kE!!ӗ:]UED
+>ȊY h̲d;$.DfiHXTp40h<F]w
+ʕc:cZi͐mO! M!)v]hitӛVnER``
+IZEkᏱѭ/X$-]di6&(hwid:3s2!#5ɠ]qS@Q"
+, cq:40;ƄQ-+g/Xžǘxlcn[(Uqwau9*s.iZ(j]LV"ۀJ*+xA׷މ#Ɖ#9~ogLyX݅[wG(|]-(w<i\*2 9s<1TEĒ5Py< nl\s )g;@aȚȉwİ3?2d.`IydQQKy X
+3+ ĕfgg=J _wЃ\R4l3+c[5@J=T?$vL@YALh<BM6k|+ sLN{sbAk pdX[
+@k!~+oZe \"l2a YơEv,s /Ʀ |eRz>Zo{X-GXmc1@kZL]>FVht&R w6j_W?xK7XxK=<v>d\ճ;;
+[L aU^ Nh oSCUѩf+ͱ1p0]P)VTmǨM# I<7k",[\42EMҙb)9#YJ0V{!JV=FJ-xV͛mJ`Gȼ1TrK 蕹uFn3_w~/<rLynr7&X|MY\HY-tXB0B8btW6PEOGM>(^8Ck(0ގ }*cl}4a4|X(HSM]ې4%Ѩ8?E0Kuӭ;E7=:B&EMҩv+M !PU /L~gҔW^b G=fu rgHa (
+G,M 5wGALXRUD%ŵϒ6r~7qm+O
+=hƼk3N QG|-N>Ȭ>V8ώ;|{l\k?헹%?Od抻.w͛5~[.Z4^0Wג?p *Ĩ}xHNKq?ɮ?* "DwB~"
endstream
endobj
616 0 obj
@@ -2239,12 +2273,12 @@ endobj
<< /D [ 616 0 R /XYZ 79.37 400.5 null ] >>
endobj
615 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F56 384 0 R /F54 374 0 R /F25 375 0 R /F19 379 0 R /F16 382 0 R /F17 380 0 R /F20 376 0 R /F69 402 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F56 384 0 R /F54 374 0 R /F25 375 0 R /F19 379 0 R /F16 382 0 R /F17 380 0 R /F20 376 0 R /F68 402 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
625 0 obj
<< /Filter /FlateDecode /Length 5486 >>
stream
-x=M7w:]0{2`O,
+x=M7w:]0{2`O,
H.'<
0t ɷe4<!7Ws%$,} qptoB7aesx;;(ux0mm%E't"9`LHAO*И| '# $qpj(V7߈!y !W0Ƥ[hUJ4K#"R"j%{ bYH"cSH
$fNpnxXn:J$$^R>h51>2y;7OZAyS{hTG4 ZٗN%*v ڞ#_cm2H~ihÿ`:OS{C5eԚ,s{CR|i@(ˆ.zWݎìkz?GSܕB\Qc >s!^tim
@@ -2268,12 +2302,8 @@ Hǜkp!K&3DX5Hn163'Hk-YU2#+4NMa*B CfT8a)^
,"11F?nGE$0! 7%Q9Dιc<xPDjCW;׶ʳ\ VCrTԳs%kHwI_CW2ɹFjHﷆ3jH_D^9WCEy I]AQ~EPZ߫!Q}ՐאG5$5$歆䭆䭆䭆䭆䭆䭆䭆䭆䭆䭆䭆䭆䭆䭆䭆_$@(x%kjHD J*jݵ,ĵV>(>!t>U|q$Ovp ٭q59q)Maq 5=zzMh8&t$]tجCf&oŋu݋l8NٸwߑgLTc _1g4yx^20zp9gmW#>Lx/VrZ:e3/J,ƝK^~')zF9H5WZl`zFRU
).BjGב4{i\pj _w x;
xRa @F.5MGBΖ&R}58K\ҽkHKЕLRz~҄.#=b ;&sètL+~V_RwhI#]
-YzJ<"Eh[>;륌tewѭqiw<J},eq\oSGW{NΘ?N
-\f_vZ~۞]OMC!=efxH+گ6w:ccܖǧp 2]A<h}+uitnu>X#  m83k⾌4a#ml͑ގ]Mf=]W7^L=^u+6n Jr`57v8/ꍯO{k9YŒ&Z;]ůgݚ zmīwx2Džu*
-ki_JGʷ](WgeWo䷒H [=(ҩN}<rc+ RztԻ
-]]Dy3?^~=`m<
-7+;ŷB2` !%Jsb.Sj
-O8Ƿ $"پe*$A‚7Tް{2JC<5,53XF#,w僧8aV3;9^u_ 1`43[Kcrac5Lv2M~f+DXf(K7+tʸ[zD[!nIF\jC=L+HG wӚNMorq̍|TP⪿p-/ JS dM2滓ZN۩VI/ ឆxf|ˁ.},;9nU,fQU IBjtRxtL[Oz<%"ў^ 8)*Tuڂz_>>X_tڢR#W_Ve-q۞e9 psS C q,dxuknnug +o:w|+1Rz]q39m\3gJq׉.qL#0~:/Ц])SlX5&̯
+YzJ<"Eh[>;륌tewѭqiw<J},eq\oSGW{NΘ?N
+ ăFR{FNǁV5pQN3/HV<26[kvuu5^aNhѠ Vs{mNjjX^QEY,iUUzܭ0~FZzW,s\X7ժt|ŏzu֌?]qF~+O.۱"j{,_'7`Р)իMGET=c=pES Vpw5~4msW,w GI8;>J /wqOa*X\}|-ol.ƘwV1eZ%Dw{{,RwQ|+!R49(1ƭs|@" _O Lr4|,,8zC k`z,4ijM9\bP_??UaJ;ɲ{W>xJh58U F3ÿT<(&=Vsd/naB)h֌_qLaKڸ{~RNE0p?l?}N5XH<dĵ6ӏ$Rtd0p7^?/Ⱦf([GxG%b 2T1@f$o;崝zym$]; =i誋gv˗ݽ~;̲6~H_k/>oU5 Мt*J~,Gwt_ љmo _"B?H군^/ABU-X૧N哏^%O-(>r5`[7Y
endstream
endobj
624 0 obj
@@ -2304,42 +2334,38 @@ endobj
<< /D [ 624 0 R /XYZ 79.37 473.533 null ] >>
endobj
623 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F57 385 0 R /F25 375 0 R /F16 382 0 R /F20 376 0 R /F58 386 0 R /F65 387 0 R /F19 379 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F57 385 0 R /F25 375 0 R /F16 382 0 R /F20 376 0 R /F58 386 0 R /F64 387 0 R /F19 379 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
632 0 obj
-<< /Filter /FlateDecode /Length 7272 >>
+<< /Filter /FlateDecode /Length 7271 >>
stream
x=M$n}|>t=}Ew<^N K~HI(!dz(")JE?.Q~~7i/qN9shN.ˏ_/?aZ ǫ6
Z Zo ?tWRE}@HVEpKSn݌r)=V#
(q(I2j X/"OfJ%,ѿiYiJ*oJ#}T%ɲh%jifO߰=!,sn¥+<+?oU`ʭ(L\p\PI"GMѽb]]Vk^/|"SO:(~HL$TP;7
7Ϡj<Ga S,HqR[Q E&WkBM!⣵E+u(
OfYT 7螏$9Y4f]gY4@v=黽!@өv12t=9Z'#E
-Z:#O-8cI(Y4WA 抔#Rg~NsZ$ݵ4fi3ʟ",KJԔƆ ϑIӞE@Dz xu|`jݍHNǽ.'`[<&)MHx4D/ y5/͊-FJ"M:dע\@?^L_ßF}KS-^xܧlѹ^<t9Fkז72V.vй;.XXG˾3e*^xR˲n/ |%&\vk./|f#`w*rk.ּ5@W 4Ӽmw<z";qFKe!iDb0kSQRԗo1km5 lzXǍqc2 Sǵ2SKIyO∨oaK%U䛐v>,s'
-LIuԲET
-B0
+Z:#O-8cI(Y4WA 抔#Rg~NsZ$ݵ4fi3ʟ",KJԔƆ ϑIӞE@Dz xu|`jݍHNm>tQ?4H5mB
+ǣ%xihȫٸX`~iVoy5V)hYo&jd"87^/mO;>Ug, Ε䉤{.x5]rqyƺŢ?]}-S]zE^w{e{,4lvVU~W;XW`~AwkInj;B34/l[]5ϳCRbdY-sHyZ+sZT:gT5[ Z[ m&^?qcܘqԒ@R8"m2r@ qU4&O/܉=tNM-k"S) KۦM$vΩAY-̬!&NsSzy]${Ey E.ҺM&e)=7d
+|Y=QWū~bU'ȿEb;
+kW)n|]=4aĀ~. D#/ t)-rQY{R~|F.^aR?.~%4F9->Җz4^Pdf)j;POM3+Z 'R׿JĒ sg࣭sh:\NLG5N *[ah :]';T6 L#F/"/T#6ڶ
Sȿ+&|># GN͵7ͱ H)T^Jny[ J@Bda5).R`79RJk&8j ~ {{,҈TG6vf-ժtBcl܌!=*4&/-5-.κרoێ_ZGݳ-O)}hkv^qf'}5p`#TZ{7J4=`w4k hDZGYVūz2E9ҙ
}co\lQWϦ /RԠ18VW1{Q綎앐0ﮞ_$Y|-c0>އc|vpc"d{vg&>OGexh{G!<⦅m1}I>{w}zsh-y<fO6O_y:gS3Y`߂?iѽrڌհ8L*!nzBJAdʑ v.d>-^5G*L)RDj_;oJfA^!xZ_1o]sXL@1SMIP|*o
Ԁb·WM*s9%:q 8Aگyze}'.QN
1?I\I+;INR I;I
$lT1>ƹ\ Hr[~FqrmhO`}/A{d5p{^7 Oz|چ
惴q>/ neg$TL#e,wR@clB)I0|T:j*elV׀?Ώ(piSN
-{jE%<mZqM96fEy}93`Q#F;{U{ׂ'N_Ź7}=y+URFbd"TP=˧O`(2L 1-@FH
-*Zx#-JڡcRoK}r{VwU0ue P Ln}a?iSnhc=B^r$V?[q0|u6RHVҞ T /98SX1[cC)W}}M0Vnٔґ*y񎬦i[\FRFjU'^גC[1iglMU!Kh,ơl*ŪXyn+ݯ^<5~e
-Gu@Ե];S߳5#>%
-B<NwT㢶P5m>?>?8&n䷴(0@~] <=Ɖ/َqj0d%ޛI}C.ohs<c+22Z,}[yfɵ#KoUY3 "eR.3L߈cvQ<uufzUnXhVց+\G71;ƛ.]h[Ax <
--lqK&7eF Z`j*ܹb
-qYP9'AqM$Jָic a
-j·AC6K[RJ,568R#CV tQI&N[6[K :N{9JI.Β61QRo%{Rr. s[Eb1csCk
-o !t.BsY'4AK[SZxj+md.$F#lEHmOGlgu6
-P7mPKk$yR#r m[a
-'fk ڜxmQbK`uG Y,lmLN]kaܳqI(WAuxH0JڸD 2
-
-ebhspJjUظowjt6P%\qNxH4LnMvCK4AHʣOc,!lmLH]ka*GF:MOtlm >;oma?,hdޣ6.$JL56x'Fg\$(Ds]Š?o(E'NS˒PkN?<{+o*I88r:
-nZ|ŀg?|
-äaLzt\ /ǠWvya
- įMx^9uR;_TdƦ]Vv3*u$̯)O*gB<ꐹY.]ZU: b}_DPTrIEw糡!Ə # ʁ#y[+!kwu-^R3e1l"s4 s%=z5ϩ1齪ƌWrTE)#~ G^קJc'܏]WٍWwW:(dӝu gZƎ+~%wr;]Meiri)Kveq X?/Bp԰0 #vT.5Q+[.)OWNXgRl{HEҼ$/4/-'
-ՊfjDeRx6a:e|.!ZS5Rt3oiw%[j5嘷{>w7P#eȥ-!7?p{\Jӱ-땋gϹ
-2+QgPdba wbD"_PnRD64Sa9N;;%r[9Zu9qzRU'tUWj7t<n`-qHqp?#
+{jE%<mZqM96fEy}93`Q#F;{U{ׂ'N_Ź7}=y+URFbd"TP=˧O`(2L 1-@FH
+HU+LHqfՒNoj[,dCm,}L?ȡ}?dB;@ٸLxRܪhVwfS~aSj<[:{}\ز v-*@?yazq"^Ǫض>b62>8QڡbE:F
+8뾉f?YH <h!i"l!}򊏾m""_a_+z-ˡ} ̈iZ",~ʜX>L T$>خҧyIfoU/=5-KQ!Z*iaHyބZDc)۽{2b핕ee(]ԁCI.pS0M]*aV !SI)Dx˹ M8Q(/$8A''T}Z4UzYm::g{7M$%,! pT
+A]kѵ3=Y32ha[0!OS-}'Ou>.jk~ UF1GcF~K[;(~P
++VB̝+ƙ ]5:`Ro5'z4oCǚҰ\ .D.xԋ2.J63)-E#`wcZKN#5i冎hN4q< tri`-B52:Je*~ltoւ\"G".+֐d1 '"L7-th`nB57b62XIc`nhtQvTTB#vP A Z:4yx =7JfX+~H`sV6Nó6$m2 A)KS0.J &K&"(gP.r6yۿikX7u@mG)Ř9[q䠍KBVt)fkJ੧:WtBi[q謠sDi6V0N
+ uC1
+4qF⨡k;!5"(gP&!qUpBoV)'%1 [)~$ܐԵ= AryTTP+ N4@` 0Y,F076.(J\56x'Fg\$(D+Ol9D<N4&ёƄԵ9 R+oddKS6f\
+=ƈI=JjBTxowBjt6P%\qNxI$?X S]a]^tq
+!0,
+s֫#3PFW x~P0LDد AK߬"| ze6࿼NtEZS+EEVmluae`7RZJObؿ} K,ϣѥEx] ֗řLT
+8JR:z扞z7@K]*:S3϶+2;
+J0<WߣG^ PޫZpjw%0I]Y1BpԻ)q}4vrص}Uxwl2L?Y`xeWrW*W˱dY&V9ͯrj̾tm7:YF1"kO [j0<mL%Rt儊u&.JGT+/K~H BLr8YYnƮF_M}MQ)gSƗ*:5^s)k*Ew <vW^^[jQ[ys 5rQ&\rKrCwZʥ4kв^x DIfʬIM^'}g\IjEfBf>I0PRݘHN(|WeV#g9Ƒ:"}X;rjKonX3+dwT)R:Ȯ%)WWWše`.C: ^=NYnܐ(ET/-TH> 厮TCA|V]A^j"Gv\صy ^1Ctc#D#Ϫkwa=S{DD1o<Sz=g RƷ b1CӒ=^UL^X7[}iLҋ`bA"0 2YE15OB*x=.,{lkg޵-D-l41R0t+gG3MOFb띁xm&3E).K69_n~"LC] [toC$/BujpǼBQݜJ־n葽bV6]]{>+q)O4yuאwn԰4)8FmF@ArD2F^lO֚&="yˋ| R~@!vn@IULp:츗ma8j]I]WU]꫍jߨ񸁽!!
endstream
endobj
631 0 obj
@@ -2363,28 +2389,27 @@ endobj
<< /D [ 631 0 R /XYZ 79.37 336.159 null ] >>
endobj
630 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F16 382 0 R /F19 379 0 R /F58 386 0 R /F67 389 0 R /F77 634 0 R /F57 385 0 R /F55 383 0 R /F25 375 0 R /F69 402 0 R /F32 423 0 R /F48 391 0 R /F59 393 0 R /F66 388 0 R /F54 374 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F16 382 0 R /F19 379 0 R /F58 386 0 R /F66 389 0 R /F77 634 0 R /F57 385 0 R /F55 383 0 R /F25 375 0 R /F68 402 0 R /F32 423 0 R /F48 391 0 R /F59 393 0 R /F65 388 0 R /F54 374 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
644 0 obj
-<< /Filter /FlateDecode /Length 4958 >>
-stream
-x]K[WhiWJlV,l\U^:LW?
-XUebP_4HVxac[ O
-җc"8t 1UPqi[s )nd) bN"Ar5' (Kn?68QF
-ctr"\tH*c
-α9 2wJTI^G O(UJE +i5Ach5MvM9|$⎍8s X!d=7ED4*#H) W@@~ʧA
- `,gB`q`;$tC? +0N}y1,S)1 o̩r xi*I~}
-B]}ҡ׺, ݶ6|< w]Fk/&`y{-5V-g[%97Xڪ|3 X? س"BM~
-7)wvfc
-<
-Vɖ3_-n06'Z%,4Ӭha3ZyT%a+=Vi դm7x ۪ O5:/ +\agD`reh9GAKD>d;+,@e?8)bҼ}t0#KS/Nʞ ԫx?niú-$VSW퀍Oo`p"jMzٺ$Vt淴/E0u =0Qϱ<iIz<K4o+kyw+
-Lm̯{f$ nw}fƆBL$1 >bBf{eo7b_bP㣓kk 롊Z@`޻rsCi'VQ
-y̬beM`1 {v3hV.C@tj& dj&pO\-cO`&$嵐r׵ʘ[u-rЫn Rqq{~<'~
-X`HJ˜5o$PNS2eM\3(
-\ϯ'I3+h"kha44b "SܬD>D2D2Hrx*D`V:¬kgm0xvZxwVr8-}ut^C~]Qp)EzާzjnoϤ1މ^n@Zi3)Zɪ")uq박.mI_s&*_kGɏxvQgrмlDJm;"\\˹2ޢF}G9M6;\9,d9
-uPۙ|*TU*w3I |SkmoƇocꇲ,So}=FNwҙDn+] +,NH)S[kuaK)9i_XjCMTMqR=nuTww=Q{"x9ߘ؆d?ޛT9F2}*KRnF0d_?I.TG׹>8FYUCKh⢋*LG$2b5y-E~t|fJL~nVH\ӂ/lǼ)tpp{D)
-L85W~?;UO\{m0lvar
-k<hwXrEz}+~"],ޭ4Dպ'?2sTM3woTgVP1DE<ԙ+
+<< /Filter /FlateDecode /Length 4956 >>
+stream
+x]K[WhiWJlV,l\U^:LW?
+\WJY_H΅wa^-QҀag#W4plV!je9B)j:S4\ގ'uqh+C|Q6dzPKO#IΌ!΍D?1ΞIG3 Ǖ f <)jORx-#5N^?]ZPb4N *\+ȥ?mOւh(F)=?Qyhm)@ ( ER6=%HQ͒wmesTIU/m[ <sj:R!6VWI]msqRLj:nq(Qo=rCm Zh2zQ@ K[ȍ,[z8kˌRܵ r͉r$ Hb!(܍$Ʊ8G@\Q`_}޿#^ Wtµm7Ռe,m[!sޣB鈮eǿsم.2F!newk?O?׷8uFGg~vmNyO1=AhV;M$hG4sM@$h$hi$wI>Aa?h}{E ۞]%kj
+F\0L=`9='sITNS*.8Ю8K+˂choR
+/JSr@n8osD"kxS vo6)ی{ҰRo/ANc0jx]RT#.
+ùCqi.tl["3+]h͇Yp'vͨNbȪYg5v~ 1= 2$ /"0Wn|VُY ,MY7T BIr0'VEuDN۹{8#jC ("dp N+ussh+i˹+?}Z#ܕ:W0N.lS`v&`ʯӎ̽$G&=&L9]eAy1ף暀-'L)~o%~n܄+wi%Y|7}[wxea}cx7MpUckI7VoHl!lѵy<aU6$y"e0=q:1QSh֢0ERA}/.HLˌ&)Q%y!10S?I<<V)1ո*SEՠ6ّ6, x;6]l `зB >5Ҩ@& $P|^KwU`*&+c4 5f3WD\cf ƉuTp3w̯x8=iĔwOk\{6p1ˁ٪*&a}Vg0dGZU39 NZ ,N@( uI^zD7tۂ?}6<uUQJeך0.sZ~4ȱtT-lAgZ~1gE D9kg#xwB(53ᇩaoϼ`~tY{xTC97;lLKGLx;GC3F
+DTҫܩTt*C;SٔgPȳX_osqFH8$,VV|5/|O?Ʀܶ$dD)EvWbHqJ%mAvSidw?Eע.9Mef8\F )Σ* _W[ 2TLS%6<"j̾4pŞjtɕ=,m[JUN8hI?
+:t~1ŒRoM:B\T
+ 1Wʃ
+K%o7mI 1Ia4~,DGrxÞܝ,JM헾L :[[^K/T|,N:T3Ms_N b|HNi Jt(DPqFrVӜD$YQM"4NHP9%{9Q$5r
+P D|@m "E !E搢scǓ`ⓢS`:":zbb@3!ALsK,
+X߼f"f&Ldшs
+MPu@#D=3ɾ~f}M$s -FFL4wAp*XRgH&H&I33/E
+VHn{c$fJk5\?n][|>-y񁸉W5Q#2{.^f.4/j++"ubjp{/Bn˹2ޢFc9ҏrڔTpᰐ=\ȿ*`A{ngq^0SUW2I |Sk<ۺ-e]}:5>
+#'HYw.sv_ )-z`K)9i_XjCMTMqR=nuT{VшDs~bsƒlxoRe쫆oWж?)ew>C䒟_:ל(jg2Gg⢋*LG}0}ITWa<bWV恶Aú22ؙ̔|v#_yS;V'QU~(맞0:3
+Uى06jޏh?zsޜ"}bqEp~ŨS]NiNS`>ތhE668
+Z5FhwXrEzTEzx%VjT\PαR?|?U=a;CT$OzM7î
endstream
endobj
643 0 obj
@@ -2415,81 +2440,78 @@ endobj
<< /D [ 643 0 R /XYZ 79.37 771.024 null ] >>
endobj
642 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F56 384 0 R /F58 386 0 R /F25 375 0 R /F16 382 0 R /F20 376 0 R /F18 377 0 R /F23 646 0 R /F17 380 0 R /F19 379 0 R /F22 404 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F58 386 0 R /F25 375 0 R /F16 382 0 R /F20 376 0 R /F18 377 0 R /F23 646 0 R /F17 380 0 R /F19 379 0 R /F22 404 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
653 0 obj
-<< /Filter /FlateDecode /Length 16839 >>
-stream
-x}ˎ,7^_EF9$ ԭ[Uak*
-7{OzTwADQoPQWSp?M&@g*ϟ<!#\+OԙH孾딄4?ÍV%!ڄ*vC}ҙ? ovVE{ iIH# 1wGpxXu/w+dWߨ*>YkyB3G=6b{O5-_kZ}[Wd͍{kb&ȰHU6%!7X)-mBM1<UAA'fJmb0Q=q*ڗ{Vqx-\Ig~Zצ=}L|uԑoekB=X%:{ejk^導]ǩv|7: "(uj=^~Zٟߜz@`8ݫnQRwFS֣*u͟=!1݃Dւv)ջEgݩj9JǶ5e:h}߇iK%L;kZ7B^SL<)hb>'iڷrU`ca9BO=7?1;q4Q>*$'BN^zU$| +%qNM#RģT(CjM</\Yor3J|Dm^jQ\j=;
-'A5SI%]Dw[7vdٵ?ZGpyxXdU K_>^[{9)zݮ{۝-!8gq_,<0~%m%=˹$ec2Yj}8<Q 6v! y <|5{H5Ctٟ<
-gOtҭCl-2hubQR6eҧ':)S>a-Vܯ6p%&.v1. ('kטwA9l=/PU^j%RSZd
-gґLr~isPU}>L#Oh3-}}>7Lc旛bm]{8gďPM։ 59l@e5_WZcўySw*{%)xmrӝb N }r"bs5 'g 5onIAcf%kOcIqOd<cӆ#sYҺ;|ș:|xS|0%BF,"fxdO>i ~?T^]UH ( 9:o
-O=<}hm}_\c'SpZO&bה2i[c;7&~tm6kdp0 KN—{56yޤɳB~Y^s57{b|>vkxYo<=#yj/ϣ߽?ù7aTg}&Ta.Na__pEaM&}17ω8aŔu]|7ZuH}%XM(mb}(qM(orQSt F^L:q!!zj\vh.oѓÌ6?W"\!]sw\ROX%Vk}v"_ o8;<H"Pz@> /COF;P~~j|[NՏrNе~Rz;[;W3j
--?\CXfz5t;32_ _hljYOw !}Jo:R{0VPi.hY_ק?iԧiM.-|M)إk]ݞW:i"wҿ3530~\Rs>Tέk'xCz*E TOz0z+[Gon1 ~oG&0z{`G&6z4z#GTq>:J&u%FKڿ97tvxlx^&Wn~FO:Wʅ{ >?ot [roˆ9tבI,#u7 7`m.f磮K 3_[R8Y="uF[QHa
-5Shk{]]+** sw{ܻm`#9QA
-3zdHӨnS_ P-L=2Yt13_\4wQO4`lRGZQZ (f)d9@oc"Ig'q\rPg/BZ=lp5Yq ?5'Ȣhc+aNp9<AJb
-)uQ݅yAZ[iĄVvWJ0FVe;F2T=GixtCᤁ6'y <wX܊RU 35qzѫB3E1VC+q)[UؘˍI&R"ǎA?~XJP%8H@ 쨯/3CFB|qmE
-tP)9]48x)"IOhME[Wxsߨ3Dؑ aW;yͰrŝByR xqԉ gtjUQ<\ipG]dzZ[9"zqѧ})
-whhjbB
-8M1IwJWrhίPo3BIu8f<oyq\< *)PLa9С:=5Wok>IriED?w)l^3 z(pQ*d(IqdfD<DshUEn+J 9Qsa(v(SPi'lG!=2˪;yrwQS\n# *9qw+#FpB1&ʴ҅w UHϛ1R]B&2=OT"=٤F+ixD
- C≨8P ̌xJ^k94yꠤyT/,HV9S%"=>R3S.x@ |QO%6A
-F#PIMwgSt
-P"u>c#DsO9t? 
-4$62. Ϸ&Ͼ3
-]X+.,N#ݑ!=L^-v˒QZ`zDH]H){;ZƢp,y<Arq.3
-l,1q1g2lBF utG2Y\IXP`sלg ,uͬLsMGzbAVSq)[9N0ؘo 9 SG)PDki $oMkYcu4~)%4gGK;FM<t-~+,wh¼d)Sgv
- lx<(,P-.]K]28Ȥ1Tɘ;eŢ2M
-U*1 zjDICT Ċ{VvMp$x4p Σ;@E3Z"hJܝ:@Ƅ:b1:T";`}ғUBiK< 1mT.J [f`xBrz
-zjr,ܔ<] @ Gk-wGDIm|aRGȘV(1<F'[ <40jl"@ Gk-
-М0p1w'2ÁL3xr^
-(0ؘ3qHBùR[| -!ї\Whf#WPH%ĭPTCaa΄-6.&e.x5cч6.mL[_VL
-O)ܹWm^x9D~&֯U4ZE;~OOo)jTQiS?
-KäM,G[>]:>)*dY4z3ϟ&cuy(eDl,J(W(kr-RYbNx Β0h ZM50--.\&׷9ATuS>cpn16gP]iϬ䐰x
-YJ[|S)wA%H-w75p
-#u<ir^!.-TKPh; 4ؒCshIb:LY2+-9,4KiT
- uk7r-RIbYM-18,|in \Z
- 1,&eu{ܞo:U
-j槮Fri! Y=m:ܧ I`325 Tg/j`6+@4SlduHS?-sD K ikq6&DDNdO<aN( n lP0Mč&xRIfIp.?MJN@'Qɠկ_03l&hA8)s=D,f'qIh
-}tg(z-RQcV+_E*0D6L;/htFC.wQWהqrt[1!)Ur}%\R\Vn3w".b!'7 xzهaS~cXsG$:j+6`JUFryp}.tn3j剻@;؇o9Ù&}_ڡpͼIH@/V蹸Rh**|a:;V@r,x<3VJ\ gORsX:^pO<$CM<C] sa@`XÏCa}^6A)pQ'"rBAx W@Ri}KO< NSa`5tb#Hy+Дy
-]K''MQyo[_git@ j;>%=cMAp㹙F% nZ>̡!=~Jo;FZA q,vx+|KmX@Ro1,V1* xx OoG~BBrKRRG jX
-A\v|\:!}UKm<33`v @ +5Nhs_"gЈgx60sjǑ͠Q\;P>⬟e9r͐{| v*qA?p gC!g97xCymS f'݌EFqf(u\)(o7zHYߕt
-&Ic1VhE8r܍=)Jܼ3X
-փ%8.uE哇}-awkXL.a;o 9 u]Oȩ r2HwZ?10<B{)6bi# p X/\(=m[tq[f3N0U>rgB)z\M:R(ITk<Xu vl˛E)gmqh(Z(1'' V`q1\㉶@χ,|y7.NϖcH
-h!Ư;F:(-830RDn3
-jЀ|g_AM<J_S鍙&Fn2wmjʃ6nSu?`G\rZZ^JLJ.r㮃$j?eWt9̡tp
-@<'>Ss1-|H e7ߌ\!* py"
-!8)vv1Rϒ+9=ic3>,Q`2)ֶ~>%xh RltGBXJ6A)PT;m
-PG䓖|G:1}v{'0"hWfyf#
-'*U''0#,|0(ͶkG;U
-OFT/hE( rd7]B 1VZ^XZw̒fZcָ<:ZJ\XJ@bCXX|ו;a3Qx<y6]u He13e.<qex>t?qY>-yefZxcu00S'3(-P%M *BlaAKK[j ?[\]0P`e.(q.a!wښ%
+<< /Filter /FlateDecode /Length 16844 >>
+stream
+x}ˎ$9==6I Q،̞SƜbQOJRU4wfQ 5ISfqqcOk_~_w)ʥz]~ǑqQbv b9x %O>ҟ/ƿ>Jin|2ͥKs|⾒Ğݏq|2ΗϣolyLT: Ssܯ:LVkH={0*8b
+>QIeG)?BEE?tZoM=8m_&ž: 9V,JQ~ԮGJ'^'/o_$!
+_c̻'m@t$yp=-p|{~>!pnZ\~8ߺ'kn^[ˀ''w tYeaSz["?+R ?])r9*h?#,ZM &޽6N墿CzK"Q<n+lݡ:ߠs][/UӺ*_y`Y؅yjWS1O
+Iҽsbzn~bϷ;q4Q>*$'BN^U$| ׿&qNM#RģTo(Cj펆M<ͯ\Yor3J|Dm^jQ\j=;
+'A5SI%]Dw[7vdٵ_#Q<<,Y*W
+/RM=՜ulc^vgK2YWK.O-=:L_~(D[Itr.Io;% p!5AvD ]sȻƿE@Ch'?>vMV8i7]s'/3
+ SMpwmԵ;X
+MvLE`=]솪6<_Q*e%TV=ƿڧown5==ekAs՗Y/>;_9H* [i~}+1qywa@O>YsƼwʡdOq9R_V+"%{'V8<dj/MvS&OiFeQ~@x>i3Q?=e3?k{Ŏ9#~ڧm W<oNod-rm4ۈțʽSɏWfnޫ'}PM-IOlS䔣W[pzoՕpi89Ha~sK[5+\{0-wMnn'sec6!˺݈Dԩ7wYw-i2B`ye!7#{LYWc7OOxygz:F0]hG wgEYv~Ιys^xf~2si?/szYgiޘn&۔ d2#~/Vý(<X,pw}qmLikg>L)epsoL<lFMd p0ߥ&>+/jl<٭N+Igz|dk2nwj|޳vkxYo<=#yj/ݽ?ùxwaTG}&Wa.Na\pEaM&}17ω}mF-m1z]&wA$ RA1ǁ?-VJaz5JFcʛ\|hrhЄno/?x˧\H^tBOq]Fvwy@$}f֔Q-o\uk|{|/bݕ*(Zw$i
+:FM|G#M]|0ZA)4] 5=.\s h ;=sSFR6׌W ZA 2
+]iTek,/v(7'Fw06ģt-XYA] 2J\w H7N`C$rոIR| XA3Q~Ld`6[,pK ďpە0?.zO?
+-z25wrI<@o7NdQ͔ڨѠP4 Qb+\+%@2jhBU~Σ4<:ߡ\Vqp@wߓ<pܻrFrPs,Unt*q@U!~آ-*bjl$M m)Acǿlhu y͟NP?i,vĒAkI vחՙ!yW긶"zP)9]48x)"IOhMEKWxsߨ3Dؑ aW;yͰrŝByR xqԉ gtjUQ<\ipG]dzZ[9"zqѧ})
+whhjbB
+R|M}} '\.(ãthg,kDE.ꃚZ % 6B1O;7gGչ>vu[RCN\JGT}TZ 1[QfH ?ƲN!)w^h\s,W  ;#8U!_eZ» HQ*.^!So'GUl@Xej< "̡wDxo(ǑxJ^k94yꠤyT/,HV9S%O{ԙYf <  ʨ'iDF#PIMwgSt
+P"u>c#DsO9t? 
+KޠYK .!?;ZZ4n䧻.l\f3@3m'kM
+<SHdEF7dj1w*W_@&J)c-lR0g'Rq hS#JB!Vܳmڄ+%Aţ!cp(jtԝrq4@3TW2&Cɇycە|H]9pfirQWJ؊De,63TDU4}TS;caLHL<74ڜm
+TCcc%_DN Jm,hR{kG_r]qgX^AY" hԗBQ!  ;ڸM֖OF޺v֌EJ"Pu3mY]f2
+o2뛁XJ_ ƟB`'A(oԏ!yZ_'Nݜf 2
+$rq%8kxzV]Q6<cra\GLoFzԍ
+t}'|9&_B)6q FCc0Qgh׾+k>h&=[)UЈ3^I坍\OoY/Q)Hߎx4f"P
+C6OYl6S3=xu)HFhZqGoT{VP;`+E**k!-]Up0w''yn {iDCi"oT¨~G)l$\_p'NKhd1FDm/3. bҘ6wW^評 ,kVlh5\I{O;U;n WM*35̥aR&C.iHRZLg,U=_鱺<W2SS\"6Jk%B+j[a^c],Y;w^C<gIMk-@a.^ۜ[o1 eq{Cr(}W*i3+%9$,;AIXF||4o'K]&’KK"%ߴ@S%.OE0t|K5BXCH MEt [h.g*iE[i!NO+D%9-4Ki|TyK,DtfВH+{7-TǝY,i jF%TJ`(Ao*j 4R]M p14$m!Kё'jɚH37 G~\M@%ATOFjK-H$OfWGxK#o*!0 7 ZiE/N.D$=A`K-K"o30UbKp}$J_M t1U;XwTY*%9,4KiT
+Y:OQR3}xZܠ a3"5OJ`4,L7q yFymܢ`=g$'If2h x$NJ\O"Q#}loq\
+zԱx=:B7;EݢW)ܢ-#>%%e OUr]MLJ^uy)oP艀4`Չ=!Vm1KO| x]bhgw7yt10o 3 NOrݘjlQNʥ4Z,'ŝԕY^kȮ/:@%❥ K5lH`2VD7p&~٧5 mJ-B6ޥbTTGشl
+ <S?k: ]9 r+rǾ5e(VGLpH|
+*x"jFV )O-,WOOJ}FV"e 6q./ª%c4C4ҟWy>Ífj7&o:zf SBL4
+Zhg[^jbbG|`V*Qx7tcN(e}z;{<J<U7+]B=EWWRx ʵӗy ZDf#:3
+j*
+ۍRpw%jI3tX<nU!Z~=?NGE,(w<}AG_87 ` ξgi'GzrDa{ sg`l[tBN o]rj‡(=$OL Oƻ{X#<`\ 'JOGz܇wV`o3'*p3WHBqi.ʦy L)Xd*[5M:g;6MǢZ384h-gwܓ+Xq1\㉶@χ,|y7.NϖcH
+4@}Di(gj(ڣOe^b7ccM
+<ѭ!>;Fr@%[/i)u"o3 sS@ UpBCU̍oP[P*$qjg HszcHylP0W;UUx48R j 8WJo61uL&&syܦ<8o6u(]|N%'tb: -.7:HZJ[Xl.3\Ƹ({ENJ s35<!i@Z zxL.
+'*U'0#,|0(ͶkG;U
+OFT/hE( rd7]B 1
0R@_
-_u0RseR Y\-O`EX>x1OXm]H(TT
-1uiXVb: 3wZJz>a+Q9?Ňg<1velVkN#*x:hM)D'/KGEPv~T,pKvPuI
-GOôPv,.~K$ mL U7@E3Zćv:[04()/'E$S*|ΤUcK uLax`+Eȴ1T;l6* sw;A2 $Ky
-Oc[Dwl}rc|-R(jtԝbq4<$ۉcTL\ A36lVi䖁!%-c3@LRV$
-c20o'r2
-H]c)C,8ȳa#-s<ugE  ' sw+
-nI ٵqVg
-8fE 씂9;qiiVr$GtjL{ =^Jr eSFAbXth89Y9!
-ts
-ϟ.Huuv)̲:SQ;c.hf4݉dL?T1:jYys/<,J#YuŰ[LB&)k+
-᪗B%`!k.xIp:!`窫]BdD/FA|
-/'<Kq1<+|GsSG1%JcR}Y'x
-F *\% .OzC.Z5W~)6- ܪᢩZ|"WoUj86^ͻq_[Q7Á51,E7 L<{WOP!G[U#OdW
-x3n<^
-TCccUMRs!&M,aG@&TV8ʤQݤ6
-G,L546L|_i_%ѥ'k@_Wt}Me]"fJ
-w&/o̥Ǩ]7d|5+G@&TV8ʤQR1o'6+ O`}nemXVT%b0iMךKֵqCac}r|O?un{.x/}{_d Xg_s
-jUY!,2IuU~ _HL[my*CD?[G4ʎwJ'hΜGD͎w͙!y
-F<T' gM_I<&] ihh~$t9/U7gFV+m;C;%v" x4J9wqnk`l~AE;!sihǻFMY̜ H|OosJdN|NK/ubqS}2 D0DFcɄue1-o<ySHʝ*y]sR'2ggt`ĦUVAQxwyWJt߇bP(}/]Z}mRЎE7g2uǚ#^?(O9'>B3a$v6-{#xO~QԄWqg޲H'aj`xV_ RPtVZ=(Ȝ0W;Gw>;[yxzD'.L.WIvz=2>2rLC
-*ܗuX<Q׏|,i)8itv hNrAzd:/Ue<FӨ0bF3>3f֧S;Hf4}Cb  yqR2;/Ű2O|c) qYb*[4Dw*8 \A=7!@y5srnިGVD Nt"*
+_u0RseR Y\-`EX>x1OXm]H(TT
+1uiXVb: 3wZJz>a+Q9?Ňg<1velVkN#*x:hM)D'/KGEPv~T,pKvPuI
+GOôPv,.~K$ mL U7@E3Zćv:[04()/'E$S*|ΤUcK uLax`+Eȴ1T;l6* sw;A2 $K
+Oc[Dwl}rc|-R(jtԝbq4<$ۉcTL\ A36lVi䖁!%-c3@LRV$
+c20o'r2
+H]c)C,qgt GZ&y5>Xk< NW2&D_
+OyXScW}V?[ySQȨ;.H|jىL@p}t}G U ƱW 5L!djtԝqrQ  ' sw+gy:|
+G2 g(%fjƩ[)(jlěQBi48S
+U1"A[ʑ ё1YN7x) 5E@LRV(Jcѡ`Nd``*Н:ϭ"*l<Z,>"mIh0jXlN!PGQȣ0w'"1!|P)eY" +go.3i<*s\DIܝNy  x6;F 3n=2_M$͛BFFe-wF3;`v" 0JYGe_8U@JRGX'Ly/
+Q%P9v eyy-K)?
+/axǡ
+f Uh{ͭNȂ{
+:W+sKEffiY
+x~"Ky+@ܚ"k
+\%PՀxI2z-L"DުZ~/JVD 7VP6Ms^/5vϲt*& (,Kfd+;("@  EMY}
+`Rw&goXhɊ1җeM)YFSYFR3sXᨔ U]}
+z8 ޫ
+wf/ozzXH6rUM&Y_M0`cf.U
+ `  ;ߗ>
+)Pq ~AxA~ۜ2
+0PO߷SW=oŊm;cC'
+6baN|E BGü3S
+F<T' gM_I<&] ihh~$t9/U7gFV+ۈwvBKDEh
+Usܬo+}wj9C"ЎwKBT9x? *Ȝѡo;W5&o_6dA`a(;Z b[ynt;U4 ƻ<悥NdtLMW'6˭M\N.%AءP^>)O,unly/&"e&Ə5QG̙Q sN|ąfH<mN[^}?FpsXjأ̩ pϼeaIOԚ,+Ay""z(Q9=C3a$v"9||Aw
+<N]\ I{d|Poe&)̇
+Nzˍsg'!*q1Ymt8@bFz/F2Q.h<o
+*xFgAܝ::k,eSUE>4}:;4'CƠaj}S2J*Z2yiTXF3>3f֧S;Hf4}Cb  yqR2;/Ű2O|c) qYb*[4Dw*8 \A=7!@y5srnިGVD Nt"*
hNKft㙹L )$rW#=3X` Huq
-<h}c]zHG?LMi5g7tL_%P3EB]BZ
-H٧y|^c`~h98bP D9ր
-<=xr~A4q% C@M3=b^ZPbɦ# j_1_ifj|剹 DDqEܞz+aDğ›/?r#?T㛟 c9Ig~~!qV:aXqXF%R0%W 6G.HRw{>䒔&>2WO篔Yv(йz}N Òt&+yNt|^T􂮙es2TQ>n_p슬"Z79,mvEh?M|FJU}q!"mG|1-E.~~$YtȼY<VyS+.-u9 @eʨi$OGk#Fd'N˵?#2Zӿ?
-"OrFG/ PB_.>^+<c $skiwy]kuHQIz865
-{2yS*Yo}om"יT|]:~]:]1C`= ~ye7.Q|YdzZ2OS [o}h,%7AW}>[-:j v }mTz;^}>.wY[<ןO,ujyzڊBk0%z1MF6w' &iF_w|>i|<ja|xK
+<h}c]zHG?LMi5g7tL_{Kf噻h@>O;; [7]>vXspŠj] s2N4bxK+Z"4S#b.ϜE$$dj]d'TT9S)? ?A4}a4)KzjA&6O4 }
+l|uq1'z&Ip'Ϗ_?9qEܞzO0*0 Y/(݅7O)^~Ǒ_o?˩ 7?r虓'.J^u CðeXFh)ꃆ\G&}B
+·\D]z?f̕#Sr|"s7
+t^u7SBq{$?m_?#`ճ`^5l?z*="^kZn]UD˲2E2W ۮhǩw<[H鶊3>.=X֔}{ѯ֯r7w#"?owre~.~HV]~L5IhxĈ,DӫrWܩW^{DKw>c
+eb|맿>^+<c $
+o8$Ŵw'7Eܸ~ݍ&}WqAz-|(w@~{|jl ?Y
endstream
endobj
652 0 obj
@@ -2523,32 +2545,29 @@ endobj
<< /D [ 652 0 R /XYZ 79.37 161.114 null ] >>
endobj
651 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F56 384 0 R /F57 385 0 R /F58 386 0 R /F55 383 0 R /F19 379 0 R /F25 375 0 R /F16 382 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F57 385 0 R /F58 386 0 R /F55 383 0 R /F19 379 0 R /F25 375 0 R /F16 382 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
660 0 obj
-<< /Filter /FlateDecode /Length 5685 >>
-stream
-x=ˮ$m^,Z r 8Afx_?&>ԛRT=]EQ"EREI=v/_?=uDq2ϧ|]^~ץ|fTnLMT𗳠 ~)I z-A[}P .
-8~R%>>R+ꆧ|9ssHl. tmNAXm+J5t#[y\%(<=I:$“bW7GŔ&RR82,]!PbQne8q8}(z>5"Q}_}'pD!1M~ "#; 6g &m 6$I۸Wa[4"YEOM<]X:kFGv7R+"XڶKBb(z`LC"kPEC F"Nߒ4q+J
-FN I$CXՖQW0T׺AZ
-oGKl`aQ會vD
-֍(NxȀ=&Q2SiOjWWx18f 4]/+@3d</ksMC]`a C\ -ޔgęE˒mp?/j5s
-:e㜜zqg|ј@n_q zn7<@I'${:OjQ,?#:[9yS(5撶laQ BgpxXKuS8t+AIշq(
-s R|+S]/y~r*LLg92-N뱛*˵p;k_vT׷muԧ'o}_G;KbXwqqgoO]Y
-T64:by~v7&C)P&&B [4?k g0a[y]wޡF2?|rbk/N?
-D`ߧ9}rLldb'T3fϧ 6%T GLxdie-4e4 ]
-\ujDz B M93$5%dpy+#cyo6]P\{~ʠy-%O W}t!oZ4VVH`MהXnM^N.
-kW(;!-}JnEj2w3u ǂ墝-CXd;~+g yrd4o %w)b_JhJCU, ~G 8DDIY'G2M%F.:/t}9vM3HuD{ͻxn((s5$L9|iܛ!aCܻ/h>e3`jP@I$]%үL2y@apt)#JqCfG 1{- 2 O2~ PK@d@.3_ @< ^V9@4հN56FAD3܃T0=!a,~{&3RHٻJgùLgs(;} `j_5<C?ťv'I~. .{f@q) fu)3{f"`ɀUsu`ث|V2܂Agid钾utdL
-L."~߫):I6~q>Bw,} =ײ}F4[
-Qf&R_QdQ)1ĩ`*e|.w֢:Q8ew0
-$R>NH V@<6!@] 6ZMEdǹ/E88/UsL /yyY\,g/#;Df33<+¯۲m-YC&%Tf]pu:RVB/Ӯ{8ֱuҮ4[q쟸W#"t^?oN˧kZ/3>N@z,o&We<:AzV6(ڔ E((RQp++ߔL-Î$ZbyJ icŒSFPiޝ,~}Me_?h/^u.zުsnjm{l^-G]9;5]Y5]M,$ kuFp v _h'^{VK61Hݡ%qX⿬(;yDE"dzTdVeH \ `
-sIB:RaPP
-B)z㯏NmdD8c(אY|*RɻG
-s8qFCzhsJGcI\먁2z%‚k 6 ޴542<+[nY%(M#$\,zp.$8q܃{.U7]cvEk'3R6@CަI붒ׯQTN5[H[3!IcE;O5m[1 ]2ʨ茻-_w&AۻU3xJ3߼V~T pIױim5Ɏh
-g}my
-}Eʍd$
-IsRXD[{c
-qרSK 67UR C'jxO+e/52ϋSq̊: 4UjSB%['z؍Ӓw?>!~̯99]Dy4vG;v%~M_a qnQĭ'[~v+BP[y[F1I"s6e&+~c`ێp}ù:3`A\
+<< /Filter /FlateDecode /Length 5822 >>
+stream
+x=ˎ$9n<h49pv`z~~I=)"B3.,5]IQERI }x#|_ 8H)/~>sam͔cLW8c' ~D0
+ă-~HƧw/O-%ñ|AW G8Bc{r^U[uTBኮVR3WRdjHS^_<1fQ=hZّg#Ve-V~_V,}YoV=۟׋j+55!"NAH19fw`ϏArw$mEH$bSrWimAFH&W
+9yjvzh+9)&NsElm-i~$n.V^
+hwjƧly@G0Z&R+_P@pcu
+p*w"<AV*{COtV}U"L2p[T(͘}cJ()أ,2pke08ƋE*=:-t7lv]S{h1df7xMwa9Qs&E鈠D/qCNcVAWDf uTp-pq X|F;Ћ5UA6kXdߔcj~iw1pҐNm+4lEeW@$,!ޒSQ3=~?ɂ+:FL{Y]6ǥnhem٣c@3Ėͨ:(9@XKao~$8 (fx&2b^j4;ν
+K=f#t[g_A@Ƅ-cPi"H .R1iD83.o3C?eQ\ gB.s8b9/[h=IVt<eS*hd7ي!0) & ;1ۀI[4 3 q);"Xzqf3Qr-}Se(F{#MIֹ7W"<!buhU
+Vjt_:g:fne³g F0zL.
+6Z/kZ5~$FX/Ū^2vk?27$ NcP^V()4Kgps%1ZZ+By[#I0' v=04_񫱽f5)mߙU=]og4&US=D稢gn;Zo4Sv?S?K"(gvj&6ѩE #쩙*wl[s{_9Z47_8g|y:Ѽ Y}Mv>n
+4%J9poc t~qhI eFѰʗhϴ4[QC2DRߪ{#L,;nqӇ/
+|%p2?]"օsUL.hW '5%=<g7IBGaHf ' AKIyH
+ؐmS%7{=5Oq޿m_;CË<ճ:X}tFZ
+I݁M* 4"cCYEʙuʓ+/\W]Y<CZ#cˑ*|yv |r O:wfd
+/}Z-ok8+cf=fSotnʁcy ׽^P[&cjo23`(d\N(__.Gkm=R |lAd:…|\Nm1H\s$`gw1jDL?-/":tk[I-1Ky+ui]QbbPp~chOI
+Uۄ7 lvn}f] (r32ӂ`[#;tZ ]xKr~V)Y+i 4ELZsY
+8%XJF΅E`-0[0QWh(C\đ/V7dWwOO2bFSG8yk
+Gؼà惶XAisPGh~\1_hD.Q!lp27*pVϠy<S6pk:~7͢1P[ z^CFDzӎ2e+E/2+zaPKFk
+¬R{e"k.W+Sɵ+86dTSFVEK{Z`kUѯmzp% fx`iFMG20ki_ =岺CImM}Y?6Z*u,9?Q RK<8amR/5؄{FՅ~&^?> C5>Š~ؽݷuŴbll 5FiW:oyfkd9Ɵ<^H۽e-^ +wBEiT7wgiH*j'a9`
+Nrk+ ^|Q^qBȪwp./qы.5/B}=o!
endstream
endobj
659 0 obj
@@ -2558,39 +2577,42 @@ endobj
[ 656 0 R 657 0 R ]
endobj
656 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.656 487.577 392.611 499.532 ]/A << /S /GoTo /D (section.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.656 502.863 392.611 514.818 ]/A << /S /GoTo /D (section.11) >> >>
endobj
657 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.423 487.577 421.378 499.532 ]/A << /S /GoTo /D (section.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.423 502.863 421.378 514.818 ]/A << /S /GoTo /D (section.11) >> >>
endobj
661 0 obj
<< /D [ 659 0 R /XYZ 78.37 808.885 null ] >>
endobj
658 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F19 379 0 R /F65 387 0 R /F58 386 0 R /F57 385 0 R /F16 382 0 R /F25 375 0 R /F20 376 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F19 379 0 R /F64 387 0 R /F58 386 0 R /F57 385 0 R /F16 382 0 R /F25 375 0 R /F20 376 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
668 0 obj
-<< /Filter /FlateDecode /Length 4642 >>
-stream
-x=M$+zo6-}Ky~A8=l{ٿ%JRu]EQEYߗ򻗥{\_<Fu7 8Ϥk8[ |o m姂/ k/V[fK!%V]&/ZHmFDE.ˢ||ޖE_# Dqce<`~~f^{Ja÷7!\ 2#zG7p+`9c4c~qzgyRiW >4RM!]-8kƎ—JFJr ]/j+~<RDQ)yGxWA|W⭌TxWl#<Q
-+6J)V땛[S\gq |C0~}mP"uF $+,@?DeU?"]H
-.C3VS,vb#[MjSB?f@y>,kxږ$s:}u[l;9vx[m2Cd7L"O16=3ڢ @ՓD'9.8m`3gl~Tٌɡ@3p@KNDiʸHpFNsTiUu5dhpunk) a01\'Lw)'{@\$2 m 
-ZZVWiNF2#USzcXo6K)hT[&4ZxQ킣W`hTm7r "EJnw݈rx?H}X{'Va*Uf~k%E`BՇWn1HM-w7&,fk)yQ4
-H6ஔ8Goڻ!'x'\]kk3mL?`5
->98՝A
- wЪJI":@v)?Dr>Ff[Ĭw&V,|6)xHx}Ꚉ8l_WZƸ}pt{f>ʦȗmO-,L  .9IZYe`,[42Q?G?η-;_ACuu#zd\;_Dtm8K[<^f4?LHa0W/8moB\5?̿ǿ@(_ri{}n<2E;89nt]"4{靾埗OAO^|ajӣ$$3
-};v<As~K>*)2uj+3211o%FwB'AQoȚ'
-N&>vKX?^$LOSSCXT2oķB[TU`z_U3%ܿ ّI=ΤдF>YZ1XinuY=гrZ2fULϪ}B+fI~KKQVcW;B
->+>,,C_:
-m_BR^+g
-3RyM 7v^sh^?5#RܩbR!+%O X.yO.W㘓i#',)ֱZA%.PskIz}uy-C[4%aOiʄs4>-%h*% ,>5
-%DcUfWLni%ݣD{s)c. ngvL.̪.-|RWae|D9*wr
--Zکh m#=Tg{ݬ0wzQ[8P gxrSn٨FvB# V˜dg3VsÎ,*tZ`پ,gKZ%ꬵ^31Vl-M/* h6U@S]ِ{uk\/
-"Ȳaӝ۴]Qv>=Prz==*Yi}}eve5
-hrknm">s,l:`׮FV:s0B6>A3m1*D-jGڱB}s9T(tYu{֧wڛ+̊;=b+$V%<v骧"c%s.8vg}a%7rv/շgޗPdTnOj~SCh6U- Rg}ᜡ[*[bҨ$/Q ݉*HOu Wi 1WUSpԦbpNkUQRa
-Wf%
-˵gʠZ@Um|RAwcҵńNj'CR>j2p1ϚLmwMek<4J]!\lGޣﴝP{w|1_S2TYMe蕦ơ̓4VI#ܯ5E5fN,(a{ޘ
-B-#%*|LYbU%`5>UQsQAPZ3WoH*pB!Q[7 *x:Gt(% gHx?3AM8cӝX
+<< /Filter /FlateDecode /Length 4826 >>
+stream
+xˎ_1,h5;!Q
+O+&Ɋ~j/ V bH:+)L{jݙ6qm#=[5T XKɃK6j)Yp%DvI 'hXXtI3&Nfx `~b6dĜTy4
+u ,qXXsDmesxV]/a/1O![,Y=-|v}%θA"n: EsI,[X~0kiwCūC+#0TrV9
+xE,L6 -&V ^ZTn6\$$eʼ o3KiZmZkljѢ~w%B~wklA6<v5j` ZnW:p'Gv~
+G $`4lܙXXs`762 8/l]6>[JtKg
+ÿNOu%OgF1;J(„>U ̲\KOOS,鬩
+R$= vg8͡cMۜLsLN;aͭVmgbbɢsŭ,D[,Ý7L%&Ʃcsb 
+e) ZWx`DKErb`1M @=r
+8^>~
+5Q쟩-Z"\}A$0QUe(7 A#_F;G[nT1Cc\օcYi8};# ,86!5[
+QY:ͺͥ!s)]{J%#RKQOqvC;~AK*NvIbv!Rgupqix~+h-Ij187B#~I92xtzJRO!=1!I=P?<jݑ$
+1Amm$YjaJ8Kpw6"yxe2 8, 9~el`V n4i6\EhqV~mU6G[JUN]g?h̐o-iڱV*m}bt%xZ+ڊh 8+{awkΗxuJT5ݟ
+Ʒ ZG6zVa2
+ nsVi,7U[oއڪl8Z.]/0wzAv#J.obC`vMns6눾=bnD;CᲘs=6i37є
+v[K%Ͷ\i?cŶh.|Pa֪vXt0znKT-@P4v렳ӆE3YզeHIUj"N52bͯWLx^eNl. * UM59JkziE;Lqyhn;'qS0i%`1^*nݳ q} CFrDR;&R24J u/>n^\ZF ɞ{XŅ\ڃ3EXꗶ#/W} GPNoXJA[gPåmm@FL5oqyvvn 6jzy! 3U6o*߹ hgSXcOgY$ѕi{,-͉W *jcِQЉK ܺmY*;ܾpM/5g^Y=׳kiv419n<Hh[K['~ԘXda 7P,rͲf3 (kkX弖gs}/c,y:3_Cq\R2>yn*ا\
+v&-rTBʙ3gC?["Y^SĹm퉝Tslч4 'ncB_`)u T2o gL|U ?\u~KlCaKˎд+/2$
+'k`IZh jR`J8Nf+^%&IpevY2+羸\Y}k{ O*(2b
+&c<mgM&A&֛-N% #aQX:5adӋ;A/45cJ"~$cg7[8]@ɚPDn'j, ?-?Z2ױ⡝A<o#+[n㮺7|A( 3BLD?Th`
+u̠osܕ4%rPC8XMFEY$UeЗ+J j_jJS[ csm.n|Qܔ VHluPڤa_ff#:GTxDT,}vAP@t#~[Tz^ !!e# [/Ɣ#;ʛ?1mԅ/Ы1nB_JS͇N#GɕHв9Pp/z wj:86C;Jo0#ԁt6ԠC4PYNlmdQ s
+ZTwWWP*!ȧNCqrPvkr `dwmiBW dx0l~p^/7%i
+oo#VQ=+^~dZ2.C$}
+B9!U=,$br/lWEM_?fwiT bv*X"v%cN0^a+a; kev/m
endstream
endobj
667 0 obj
@@ -2600,50 +2622,34 @@ endobj
[ 663 0 R 664 0 R 665 0 R ]
endobj
663 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 402.269 316.805 414.224 327.754 ]/A << /S /GoTo /D (subsection.15.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 402.269 349.38 414.224 360.329 ]/A << /S /GoTo /D (subsection.15.4) >> >>
endobj
664 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.2 245.074 197.906 255.913 ]/A << /S /GoTo /D (subsection.18.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.2 279.028 197.906 289.868 ]/A << /S /GoTo /D (subsection.18.9) >> >>
endobj
665 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 210.857 245.074 222.812 255.913 ]/A << /S /GoTo /D (subsection.18.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 210.857 279.028 222.812 289.868 ]/A << /S /GoTo /D (subsection.18.9) >> >>
endobj
669 0 obj
<< /D [ 667 0 R /XYZ 78.37 808.885 null ] >>
endobj
666 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F17 380 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F17 380 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F57 385 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
674 0 obj
-<< /Filter /FlateDecode /Length 4958 >>
-stream
-xˎ$>_Ge`{s|rb#7} ǿgTX7CN)()zDO(tU#Ns-O~c=qDьPN>]*k?S*Vo
-D i :x"rWzFfqqiZUYɷեZt+eW1Nc
-HXoi2kdBᇹ^
-+e)),NTLet
-g),WK8%)sR2π 'QV)4OdkScjMI$s3ɓ
-^
-%Zl.PۆI8A7L-]?|>J5GrZ4(Q<{go:{kjۮcNЦnmm %`tbǸ
-a'e ~|c "2Ca c.5>i[d۰+bXYy·WץkN"
-QX'MDMK0ibUv*DaU[k&1XAUPmZpSnn"miONh<f`
-D_.t!.G}/yr<u`B^=yF%OW.ت+Z荚kem܈ƈpzmE(Oh7|}bh<9tݵ7?KYDh̒{`WWWVk7[ܣ*@ũP*J
-(]T
-jyUmNlnkwM50֫~3eБ%ַy=
-C=W,duU <eFQ@~҄JzxZ_KX(CaiA,e/%F iVKk e(,ň6wɜ%5hr}RRN?|N~x*ttDh7Iq☁?;Rϧ)2r-PvVv FܝW!0ͥhެI(DSq!k8['MP`b[
-6DÞj[ <AaB XnS ]n[,9T @.__n|v!r+oxM /)зP-
-
-xfWrMY dPfoPOr3 u 84,s5׈:Gwڠޗj^4ܴFCkYi\WlО0hgF#ȎJ'|YWd3 َ+t9йP
--qХVlWZA?+
-"m#N*Y9%7.䀹]b
-!w5laӁ E/! !e0"c KК=#A]0hS9JتB[)BD9;kr 93pD\%/ωKɈеtS\z LRL +xw(f>O Ok~C<5@z^hXDU 8o=J_7/M3h fKm[a Q e6a(`qh7ŲY^"̳1^pXwZ蚜M,F鋺N= eATU&-㜲O[4YѡO/}y;K )=Ui{jK+y9urhe6P#! ,*<S>S
-QQV{2ٹVu~"[T)h{7g^ V–ιͤ1t6Y$AG[d>B֥bK;Vx RR&&G\:aP;o`Ro‹6 S(O kء_+Y9y: Oq֏#:[:$TNV뉗nsCc\S_l[_^'tI=Q7XhpKU`!r2~e6|Z/1.PR\n.Ś02: G0qg1Q̴ŦefkDFf}\7^g] ckvJ MJ;\=jvj,*nrzPq6c2qLa
-ݤşX,D+%t3&Ci^P)IAW
-hl3}G;ʽq#9՛5 xaqnw>GEg=vSVoD:2DSӍZ\)~[/!adE$duȾ%,cO8e?^NQA4cp,<Y)2~nHll$-4*,@Õy3,t=,:=$#Lgsthl[qik}6vk# +
-nOZUe8QnVM',r]0R @YJ0sкô hWb73
-Py,- )? g$Qh 1Sa 4k+xz\*Oyf^rDSٞzao}ƙ] rgȅ۟z)`8|R7foS,`拭CotifAY n+ VsQxns*.J/^9Ngcw+3/#2ǿ9l 8{_],S
-Nxkg_
-j6 _j;~L}OP3Z{me [_O/aFopDRi}}
-5Bb͛VfnaT{ ]>fKɅ&8/r&lew"1nDK5<z'eCQ"c J0Do-9mz+vd:k.8QGl;~kuN71,֗ĵuœԾ~6*^7׆6FbGy9slۓ#2{Jzu>NV,a/I8܄ *>LwC)fy``|6EҞ H꯺(Ҵ<Ģ*>XХmV2o$(j˽Cmh܈Tf%p;bĻhu?ۘWa K!ҫ_Go;DؠA$iJ9{d=qֺ:*dtVVi4iJ7'ĉZ&]=?\L)Uj%^~t^3Q.'xtVZEU#ljV> d=#B\
+<< /Filter /FlateDecode /Length 5087 >>
+stream
+xˎ#_},2ZY&{KrJb#S7nf-$Zbb'z_>O߽c=qDьPN~<RsTK+`ޟ%s0J8vn oF?'8>/LpJHQz$ CZ>} 2Tz$C-R e0ւpz :=%Ts$UH3ahe7i-1V-yG:K]rmE+0Ә$`WEB p%\֓zK<&ڼ-D^ӨKԤ-4̈/.5Bi^8GhZ<W-Y)'LuęWIXO9{v D {2Ë(`7U/@BꉁoCb/΢"07akiG1to_sFMaS.}o^5//9=qrpdi2n@B,=Y6{1iQ˱idF$_g[15]#x:/K\u#쑵5Gڸ)dœd(|9wG(T11Ajy𿝚X#V q Hڥ,[QZ^!+>&!뾮bb))]mmvnCŤqUT4B QX<Wsu=8-rsI..7AsLez42̏2R1$%kSBILAgZW1b)e#-k*cCz~ZJX,#a)v^j,KDz:HX,CaYCh]
+g)d.DifAm@"㻟N
+BVYN!s>VD" /"ͥfrM@Q%׏ Y3"[P͋&`*AK nPQ
+’b(.1ƒ,D|E>,NXbX[h) uPi3S78BZbіM a7>7)j'̵7߼ HH"x\cM`R\A
+7\ֆisn/%NɉR㥍N9i&w]˧}TL߰$إɯid JJ޺ogxNZC`O/5˽uFMqJخt^ܪT-t֝fEjv{vJ xf9֚ ؊V
+ P S~QY(u?P[cPG"iey+"=yoﻬ,5žv[v Vz;qY>'-f
+Tl\?OXdзIzZT&mЂϹ]'tPAhW!%F
+6)P<_&ݞؽxm?GJ/W^N?sk6Լ ClOy}F"dZRlp$nĢ/hh0 hhCNR cqҧ:K]-Md>@VI3^i᪭ %{BϤ\krĥh_ L#|Kd^nqᛍyxT(էdua\ΐxNV[`?Y~_6H9V/
+>ͪ΢0.#TOY'mdۙjEt6 bEn&GPdaE?HڂǸ;>SaC ڶ6f EYW 2 +Ib0tdήRS VTz5Aa]?fhJqPӱ Vk|uLa%$l1^o1X;D.-75AL&#LV@RrPv"Aa5P6=gtN2;梹3< 2֟XG1ܫZkym{Iszǥ=+)vlS-WBC,@)̓/~OU) (.y1D`5>
+e
++rǕeohZKKmbA2=-[B4?<Ώ;Dl_ܝVl]xG:
endstream
endobj
673 0 obj
@@ -2653,7 +2659,7 @@ endobj
[ 671 0 R ]
endobj
671 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 161.072 86.225 357.742 97.682 ]
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 161.072 67.03 357.742 78.488 ]
/Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/685755)>>
>>
endobj
@@ -2661,141 +2667,129 @@ endobj
<< /D [ 673 0 R /XYZ 78.37 808.885 null ] >>
endobj
181 0 obj
-<< /D [ 673 0 R /XYZ 79.37 420.104 null ] >>
+<< /D [ 673 0 R /XYZ 79.37 456.079 null ] >>
endobj
672 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F57 385 0 R /F15 381 0 R /F56 384 0 R /F58 386 0 R /F22 404 0 R /F16 382 0 R /F25 375 0 R /F69 402 0 R /F19 379 0 R /F55 383 0 R /F66 388 0 R /F65 387 0 R /F48 391 0 R /F59 393 0 R /F72 438 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F57 385 0 R /F58 386 0 R /F22 404 0 R /F16 382 0 R /F25 375 0 R /F68 402 0 R /F19 379 0 R /F55 383 0 R /F65 388 0 R /F64 387 0 R /F48 391 0 R /F59 393 0 R /F71 438 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-683 0 obj
-<< /Filter /FlateDecode /Length 4627 >>
-stream
-x]K# 1{"Q h4^o/["
-c˱k VR|[#M6߲/g/ZzZ*^=05 #mMzKV5żBE}T9<\8~
-.F,V[9-V0pG/KԲ,|KGzUbۥdkY*ޫ͟*MoCu,Zkk3%Z U*$Ϙu.,9v=x5uE53"IY_sjXByuSx9#4 D0|EsmraN= J~{E-6RbI?0us CTd)>I#B~lGd觡;=GAŠ:6Ms
-!9LSZϜSt|h0m0t6%OX̱X-smyda
-FzH(206ZTit =v )lڽvH C^;v/41tKnty
-oZ}潅z[;zn7c@Re,ڕV>&
-WL[ ;jXQ`L >;Bn伴 S_%@^%S{ġ8T\4zx1f}2yr+N6_Sf"%'-յ5}L^eM줮eal8eV_oO~.rߺ2;nKH
-ߢk4TťFf|8QFrnձA۸hOlzK7hr݊~59Q*-抚,Y.ZQ>`bf˯Ksj\3$8[o$m{!AU
-I&& YA)LXȟ57=B+IsF 'Vw-R]AMp+EswK>g 0օo<l['7T"o߬\&y W-aoBz
-oE/o7M@B>Ψr]_ڙ8uZȟxF1( :[ Kok M C![`MK #q< iP7ҌKNE:0Қ$0OP4md;
-p "iuQoTSH;!sgQvN +IFV
-t {CͨCn̗:p'.>OީygGfF-B7Cʶ!Uw/(rí@Wm%Z8.FAh[gEeK {gRA'r)|۩,S(Iej &C O e"` f׋-U/^/́niLI%v6
-eYD9PjxX&À_+r#'[z̰F]'$eb@vZ^I)ANBVC.Yfse;k'ϓogz\L
-pw>lJLx{9ީȥV.(+d\_6қ}
- u اa)o/d uEJN^7Ȱև .OHg ;kKX&k6PŘ-|-g}\G湧e6[5~}()pbuᵌ}'4[AeWsAI5Tjpȱ
-,L ( nֹf?!ZИʩz'-7I1{CBw/l0mK$^`woBiͨBH*t"%h.{JI_^V=R:;M,sv5v75/6M.)3;&v{\Jc0saM}a~ ۶Ё;I,&<Eƣ\;cs! k3q_q}7Msm֣m=>Y=̒cOH䞚٫ a4R-5\ǵC(#TzT
-{
-ȏ ( X8xϵJ:4WۃpX3W|5 Yk-3mߨ̂
-2''Y9'-uo re ݢ%/ͅR?uA|GO[ nDLJY)S ®OYH¡ ;z t</ h8X;juUԼxisR(} ܭ8m`M݃#L;7*8b
-bqIKZmD=Az^jBdϲ RPԶON˒\;U/}N>^_B6Boq JHDɐF|APФ{4vax'7JRP¯Gfm#i/G^Ξ!쾑+llƊب:=:- k=9?'8yJY%zQm|C^m.m'՝VH._q6h"+(X&j7Ƨzf 8M:!\ qDy
+681 0 obj
+<< /Filter /FlateDecode /Length 5301 >>
+stream
+x]ˏ$m_QЊ`7i99q7K<zKRUό>N(jB}/\0x@XGьP͖??<Q_ ~/fNJY2X| FS"9[ߖ?}2Tz$$
+XRR)՜RJĿ -0D+s/_o
+
+!ɌK=UOC]Q_jx.)mkM OaYmZJG-|qQ|i"yzӒ`},TW@giOv_ulZy ΂Ӓ) $Vi"yΊӒ) acF 9-<ges-Z\"ݤrIyhRU*cV[VoY"pJؤn3ΈjajBǺR[ǝrŒ'lO5ojr`'ŎUs͎3(
+KiZQ9j"h7e9;=9E10Gshg};_a[O8f2hg\.Q #Usr%`Nw<p0VNOw8 :`bkL ޏG=h>O\nJ䥃}*c)g}IF a Ö)NWQ3?}Bk
+mni 6|W*̋gqI5i3[g!X5Pž6[ʀ8oS궦70\߆h~pyٷ$k@A?6RTB{x-q
+BD <` Aq/]6nh0M 2FkC '1yrL0vJa >Z£֡cRR}$6!;u+ma s0x
+ӶoY~|i&uUrI<M
+A+pcM6&&Tcg,r ;;5Bk0ڡ`5'a*3ŒGD<h[kZYz߆(]DeHVxNiH(h뽲S$a- +,EÉSY:1I91URLhz]T0oC<?L>k0aL):@3 kNӚ@rJyҹu
+d QVg2[NLڊeH%z(}8bKd>ʵ%%˞Ǽxގ[ka-<ؘ\Olj6x7>pm[=1KqJ0.$O?,[~Aŭt!,;V-_jWrq7[⽿5 +}jH6i&Pq3p:x4+'f>ZOU7i.cI.u灭6~DcQӛPu,M[@չ]쎚R55JZ#sK9w$~I1Ax]KoHah2k+?ϛᔣ d6Ԟ3VrmyD}sSgB&1w2RK ^d^ ~6^[BɴG\ĭeٓ!%7W&h3<;j*RW]sGlwOԪ3r$3r{JQۚL|Fp2u
+ֳfybWpvS;@EYFNbw!"dR.
+$ɉCP,J$Ju3exaԝE_Co5~`zwGDOmiSJYΡ4QMޭ`D8=RV x䖳}]h:X`b0O$tR[iv?V\qNy_3l1QMpP̳Wud"9R;-GoJhw bdsvhNv ݺ~Mg
+) HuK3Dܷq"܀vj2Y ȻW .F}FoT֯)K~+ui2PEݜfUsH5`ݩְyXxMbv [ʼn ,v.RK}ݣRAv^,T(+ Z/
+ <WAx.wʒrU\?-E_d@l;0oWK>v=*O`c
+&fLk,\=J4JFl+2gr͛ Km6y^ yy2~{3NTCq*e,<T#<雨 ?aGoP
+6Jw!aՔS6ËQ| 9QV-m%aN.KhS{^K{: qΉz%G߮J]1`+Őpκw#1}km9`W/j?*+m9mGuV;v8ЎQV)Ӝp8ZbpXh#:WFGLXb凄IXT3+a{Ͽ>}2FHӖKlUh+WZgN``tD&1=t;V1ȂT i "ye;V1Ȃ0'$bX҃DfؐA|D^1*\
+Ã>Rzq'l
+ E*`޻=GY"u`{_m,5^<r@u]nw"EA#_mMe }c'<h<Q''Z[#]Sx{s$`bޞ֏x{>3bHcU֞Λ\=`p Rwgp+,pH[ zU%ݼb!lzm,z @ iA9s}QVM>7vo)}ȟaiUniFFn]pD+ !|xr޷œlwMz6 ,;P
+kiC{Ԁl6 w옛)s܂yuqfHAWۮBƼ}LeHpxov>]p&MA" Puw]8X%!Ӡ0= Շݝ2rgz,b?yc69I "yF0|`Sff1HFYߺI㎴'];>=6bd#yn_a}
+d1;91 :lK02\ ciaF8<ƸVa{W{se \`kǘ{աc-\xOsCsE¥a[)AmJ+SRzXX#j{_&Wby\ZKhPԋQ^8~#Ai%]geGKqQȬ?(l,uj1&(ye?.'ΆͪǸZꇒߥrz..\:ؿӝ].yP^eѼZ ^0JG//[wD՝WGݷF㽶hZ:
endstream
endobj
-682 0 obj
-<< /Type /Page /Contents 683 0 R /Resources 681 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 685 0 R >>
+680 0 obj
+<< /Type /Page /Contents 681 0 R /Resources 679 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 683 0 R >>
endobj
-685 0 obj
+683 0 obj
[ 677 0 R 678 0 R ]
endobj
677 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 501.071 483.206 513.026 495.161 ]/A << /S /GoTo /D (section.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 501.071 549.852 513.026 561.807 ]/A << /S /GoTo /D (section.9) >> >>
endobj
678 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.774 471.251 441.729 483.206 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.774 537.897 441.729 549.852 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-684 0 obj
-<< /D [ 682 0 R /XYZ 78.37 808.885 null ] >>
+682 0 obj
+<< /D [ 680 0 R /XYZ 78.37 808.885 null ] >>
endobj
185 0 obj
-<< /D [ 682 0 R /XYZ 79.37 553.861 null ] >>
-endobj
-189 0 obj
-<< /D [ 682 0 R /XYZ 79.37 163.506 null ] >>
+<< /D [ 680 0 R /XYZ 79.37 620.507 null ] >>
endobj
-193 0 obj
-<< /D [ 682 0 R /XYZ 79.37 124.001 null ] >>
-endobj
-681 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F25 375 0 R /F16 382 0 R /F19 379 0 R /F69 402 0 R /F65 387 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
+679 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F25 375 0 R /F16 382 0 R /F19 379 0 R /F68 402 0 R /F64 387 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
692 0 obj
-<< /Filter /FlateDecode /Length 3409 >>
-stream
-x#1  v`S"Gwx֨,} ?\ VZ}o^8+ߗ]9׎O 38oɹߥ Fj{˫.?-aqV$}ݷ"x&qO΍nXKbD\
-M'lM=?)%-E-q*|p_SKX7G|P^3F>yg.LUq}u>o%ӛ0Q&'}x'g ˉ{{tlr}=32J j{o^*OJ1rtbHitT 
-ӝ'n4_g4|Q3պ
-F 崳3'qYFJ)5_Y흍Ol#QvvߋzZR$!Q/
-SEh 25)gm}J5Gԋ3F'hH|#bRo,* !M+>GВy.dzܯ; 1d:4c܅vޯ|L6nO(] [ݽokym'p F$yj-̵ NKk+n9PT֐W<K>Vi󲺦^),ͣ6f"qGsj '=pF's%9~j2z yS-{ &Q?3~^u Ǹ+gP_)#IbIkFXI4u!qdTxɨOӔ$"3yGR14М-Yۡ~RjƅrIzzІİ7`
-
-Pp=n>PU{9W(<:EIT$fNhOsC _K={0UMë)SXodUujBNXd}fHſ,ޠW%vւd?]qς #^+=P(˙mFZ#
-*UD
-;B~$`oDaZ8^+-kڷoHw6iEMlU㖋: {ˬh<SEIӇ dO|k\eJV)f]X a ^  nJIτIr?:%wT?#Āk<w,00Ă z @U7,1RQ}`.<jD"A%Vm9Lã,1LƙUQ}fy2Z*'V,jZ&Qz+JZ>J unt'~2~/mj>BzPj쬡aFe!g0aGˆg<uӌ||/x7„micppOI?R;Ō3kj JG))w^U^ø$gԙSo?vNx@ՋT10 N͚hsb ~h+dŽ@yC+ȼ|pت9Y/[&enW}d!h?bYf1BV5mT'ku,^}{M-f\2cdžFaBd$.,~)ӪynSIztdvl/xJuAuf};c Ђ
-Zue |O!V " YkCm(9d AaQBy:)Ep]NQ ! SWV!Nc8tu.iE. p _Ri:\騉(::\PN܉mO]Fi@-X:6~u4uReTLK؅O\<yfD!cȅuK앤Ho"7Ҡcj@R^`*@=$>t򍮃J蝒}8\ƢBmgף@+k))N+Md;c jY~;aw
-Aۯ(}=)nJ9PԚ!~_b!nkY~trLULON@C#Kцi.o `i
-'urS_6Q\PFCcfZeuQu:D_Ԁ<:Dpߏ:'7?JSn'
-ǡ~spL l"wQtꁻ3ɸ5I˖Ғ߃\9-RCvO}ZӖNƭ`C%p{_
-z:xi5a}04֞5 #.WQy%uzč<
-NOfRBzFu&Ky^eĔN`OHlJ|\IF iVp4II;6pۺ*Pf? @G9pX큿akC!Xz3kf?O~: bt86Ҷ~:=RO2</Kz~6T}3.L5Dɜ=Qp]:it}T3\i5g3x8%zFjnosФ],
-WP}jP}7'Mw3j!mץWҳi
-5[..M}zpuEoO4EPLnƯb0 >uV!^q=-m#g<쇛1m _@<@!X.<{,&;צbl_u(
+<< /Filter /FlateDecode /Length 3665 >>
+stream
+x$-߯X=; v`SDQ3U%Q$ER4ooՅ7e6~JzQhmƫ~ۻt?/W2L0^J'&Hy|J W><E:AIc K#Uqyfz|.f"HhGgȿy
+.POzeT6sq "dGZ[Bܢ2ݲ㌊G6g] m)jK!
+'0E\+jo5A$lӭt;J&bވY/BԜu`oz$g'b1HE} -OˆHsN1W;;
+Ucg5l^ #*aIHV9^,=^XlQܚfHXw6jn_1 Q_"XX :=YHZR[ci*
+P_tғd
+vͳҠRCkqgA&t娠&n_e+ݟ0Z8~=&szwU!)vGi_-?vyi'/0%0 Id餧?P;0 Uei(}>XYvcJ ;:It^'ЬgMO,>?d] 3b
+An`f3VGׄCwnطcw=j= OȀJ&*rʃx$AP}!6CNF8 ,<b{|9OD`n fdq"w)Uq07c]aab{S*-y G',UK_
+R|Z_a&`iwwmU j-%K;m;UT<Zn=+?9'|6RrXgEooM#S2g]7P?F
+v¶q\$;Fv#*oxJ|, ^&w):®Ow&A[KJ85MǦ$2:Z5^"ys<M0WaCTD:iORr4Mqw6gecW6!sS=kd8)bZօ\B19iҔE|iye+PAX9ӻCZE]/D *~AK/6I0kSxRt}h]N蕒}{&FlWFw(7ﴹnxغTG6ԛ <]`<nbtA=AikIǜr^(4>+@Rkyvn$K(6ѿzѿθѿ?Yd',LƤXFVVf6w.oK}aOb)'է-+NKLr]Mm#r#Ǚ[w{^6^+<2{u]`9jd9r*
+}NOm6F/LҼ*W%%޿0I@[/ 蒵}S*!b
endstream
endobj
691 0 obj
<< /Type /Page /Contents 692 0 R /Resources 690 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 694 0 R >>
endobj
694 0 obj
-[ 679 0 R 680 0 R 686 0 R 687 0 R 688 0 R 689 0 R ]
+[ 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R 689 0 R ]
endobj
-679 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.306 733.664 212.28 745.619 ]/A << /S /GoTo /D (section.9) >> >>
+684 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.306 649.028 212.28 660.983 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-680 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 228.048 733.664 240.003 745.619 ]/A << /S /GoTo /D (section.9) >> >>
+685 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 228.048 649.028 240.003 660.983 ]/A << /S /GoTo /D (section.9) >> >>
endobj
686 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 124.899 653.245 131.873 664.403 ]/A << /S /GoTo /D (table.caption.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 124.899 568.61 131.873 579.768 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
687 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.594 653.245 159.549 664.403 ]/A << /S /GoTo /D (table.caption.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.594 568.61 159.549 579.768 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
688 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.528 363.024 417.502 374.979 ]/A << /S /GoTo /D (section.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.528 278.388 417.502 290.343 ]/A << /S /GoTo /D (section.9) >> >>
endobj
689 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.1 363.024 446.055 374.979 ]/A << /S /GoTo /D (section.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.1 278.388 446.055 290.343 ]/A << /S /GoTo /D (section.9) >> >>
endobj
693 0 obj
<< /D [ 691 0 R /XYZ 78.37 808.885 null ] >>
endobj
+189 0 obj
+<< /D [ 691 0 R /XYZ 79.37 771.024 null ] >>
+endobj
+193 0 obj
+<< /D [ 691 0 R /XYZ 79.37 734.627 null ] >>
+endobj
197 0 obj
-<< /D [ 691 0 R /XYZ 79.37 620.254 null ] >>
+<< /D [ 691 0 R /XYZ 79.37 535.618 null ] >>
endobj
201 0 obj
-<< /D [ 691 0 R /XYZ 79.37 422.869 null ] >>
+<< /D [ 691 0 R /XYZ 79.37 338.234 null ] >>
endobj
690 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F69 402 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
700 0 obj
-<< /Filter /FlateDecode /Length 4565 >>
-stream
-xڽ\Ɏ$W4} Luȧ&$C>2%KU|L2H#^l^/|㯀E\D[}qN0.?yV?]R/志/|v9xXK|"_~ g.8hc;f/hg!X0p6u ngkBZâaRGe=^]/m3wK\~y\sn:ʏ7;0~Ya9"0'sF2Y^`Fqn9+vė1*{3Z3-֟ 68#\o/ʫxN"b-]k/'A{NO| YX(3FfNwpDGt'qG<\y$ѠTfIJ"#&}W݋()ip,8 8NКJ|787 hnγ2GA[+l*1EUuLkM\1cL$2i%,{TGW^oG=*S?@i+OwY֐(&7, (.K*
-Tmߏ7(;YJ#WI!z?0:cfa
-i!46$sz# 2@g6@EٔpE dtl(ViK )!@/!LJ
-~%Kh.MP.l2lz{d D>8}( "D;WZW%ݳ|tw7.RD$VM
-#pĈ t F!'࿋(sח@pf.]_j߁6@L
-g;Ԟ=]
-(^r\2fADƠH9gfY9x8:=ډxd4.W]
-ȴDb;S@r `慠3QSd-'{c G$anY9Duo0j svd
- o63b7
-A,0bjR$[uGrO7Mˍ6Q^ojHu5ZA4P xBtbC !T N딸*1i ZGǪ}_=aZߪ8s:@һ&?Y%$sxmmH;^rQ
- Cpc̐VqN`6|A:-p.*%_3h2W3k˜L[[t=#{\`ԒcI4≹=0iFC!' B1/jʾ LΦ>qU'C]꭯S:< g p&;aV8_
->ة\BK|B[,;G| L/Bxp7*Z!e~rjVô`;NӞ䠔
-?RIz } =dsT5svf'(ӱ߂~+M ܉zȊG)Ϩ 뙐X$6ɡ
-zMJkzC|M]:VQ`1;ƨi%vk:8AXZR|z y#;Lxu JWs^q>ВUN3#Z
-:S$tV1t?Xݘ\B(9[c6>}Rz.G'0?yl/v[K,ui i(m;P!rV)Ô|m0Y$^WQR]Vt-hZz$կLFM܇^aISjίu)IV1oF 0S=f:_Ey*)~z+`޵s*ܴ-K>Ҿ;RVq26F8@j|]R ͼ#(3R/O[e(%+v]Ta!b8k6/߷ֵhف|ug!Q}^MMU;u-$kK3r]|!B$q˝ª7u}|đjjӦUMaLTMLrhp~jNSmBW#̄SMi-ƘJ`''
-6Thϛ$CHy[eWTY{JB c5_FJ TGRe-uABfO | 󙒊 l-?+O8_f5'CK5ہgum@V`&w7o }K0T@sJ`J^b  z.낌
-Ň^|Tқ-j2M`lKtr,k5ԃ\uBZ~5YnlcLVLWNځO$ֻג
+<< /Filter /FlateDecode /Length 4564 >>
+stream
+xڽ\Ɏ$W4} Luȧ&$C>2%KU|L2H#^l^/|㯀E\D[}qN0.?yV?]R/志/|v9xXK|"_~ g.8hc;f/hg!X0p6u ngkBZâaRGe=^]/m^ V³-qsι(?~ìmd?BɸWgy^Ź߯_F"_j&8xihͼ{RJZ3|sbJ(;mv嗮ᾼ9IW?qE.XgaZ9qagkyLpq^{HD6sSeD]$)Q*_u/2ãŲ,L;m@k*CHj$0&9V˼rSlxҳUƨB~U)!0CV4qGpŤ;R3)“Ȥ]{Q tfN}û&^zYM,,\ SLIy<Arf[C?سPZ,*\&P(a H
+P9B6 ͨ]=a?
+x[yWbE}5GȰ]!୑]iY`P,!k+:'#0(dr I+20ǀApS
+/E7x
+\]tg H9VRZ
+'܏^*tًJv.GNɒ~q
+{o}|@0 19
+zزFPD mmr<0~@_=@P2 Q'9MX [W
+h0_t[߱~%;*:ڠ<ܐ=N]Qhr!~¨\;l8\7μy9SV|@_0JZ &%DL(==CbZr
+^R5-s=&iQڮ˴iHW`P߳:L-)9FD#j4<Drx f;YlW9}0<sΓx
+EO.)ĸEβzėkt!G(_=p(տRFq'fe0Lqc4NJɬ#7Pw pSA6GuI.~^3gg|2-'94|?˝x)oˎhߺyt: 9EbiX)xzqܤ,:tԵcn6#cJKvI^r0nCzs'T%'G7ÄW' dzm1w<] -͞X43bN+.v]ؖšIJWRQbB3@)
+aՁ'L4o}Ag=>a1)< %"
endstream
endobj
699 0 obj
@@ -2826,29 +2820,24 @@ endobj
<< /D [ 699 0 R /XYZ 198.864 677.06 null ] >>
endobj
698 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F67 389 0 R /F15 381 0 R /F79 703 0 R /F56 384 0 R /F55 383 0 R /F57 385 0 R /F58 386 0 R /F54 374 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F66 389 0 R /F15 381 0 R /F79 703 0 R /F56 384 0 R /F55 383 0 R /F57 385 0 R /F58 386 0 R /F54 374 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
711 0 obj
-<< /Filter /FlateDecode /Length 3083 >>
-stream
-x\Ko$ W19X06A|[iL9U]
-*~%T/]2 d
-={.&_H<hh )'=h,StK4wD&5:k)ymYq4>S5ZF6e+dYR|es=)'e峵O}/ϏR6_LMۄE}>?
-u_m<B)37ȧf_sLU+P@5Y{ \|p=Ou*SIغSCçFBF,t|D+K%<"Z3u8*02˟ky{~?<5DszzyGWw~Ơ #ѷl#O{Z33ޕ&G}x`4|f^krXXᪿ-* ˼ G4`~y' H=,zt 1ú6w}U4"yF^ҟ&2]#2624pt'2ubD!08ce\iDEt@)$f+яa ]XㆄX7qCyJ&?n.ƍHU4Riڍ#
- V]H. m}/RQ7p0Sщ8qb݉8%ڱ1MӅѸu?ٙZc1J s9t⋁i
-zpGXf|ײ!W'`_^DꦖױXO}K|/Χn_
-BZ7ߊ~gAEgU9u)|@aFN|PJ٢iрeS9#lBYp) n:2Ce]\:F]uއ .>v
-Xe@9
-GyS* tCϭM*`8DI_3=˳H#<'\):"i;l2!TݴX~-np&$de` QIhJJ43]iPa|R-6yZ[isQ|IBOjq-pU
-MsN1DF}ma{: ›g#&` FÛ{oogĦO!ڨ.$&
-0*&n>xҝּVNZC"}s'=/gz8L-OXG- 4w)NY(J|da2<{|/4h,hټF|7 & qWΐ[M9 ^M~-Rׄ$9#sڵ"/B! o׺FOH~9x-mېKʎJOkhXFmp 2i-6X4S(}
-k](|/ӳBy 'E[
-*ų`O+/7^y1#ǙQuZ["VYKh3)“$Gֶ!DL!qK)', ~=rI9wQKL+C{!
-g#p=nINVlU|L]Z0j΅g7sϕ.i0OUM*ʄ/{zMiP9Tʭ&)6OCqyDΈ{ n!!TXOc:--X>N's&{'i]ðIa V{k7;pryUl
-#̽b7ܛbF%PD2u :pIN[o RCb4R9|
-
-yZ)*D:J
- >60@½c30nժގAq՛R29X]Ybs Eڮq#'HX0)ʁjW` qu;6U)s$С>3ŲI6gr]/$%G%{J\ʝ:q 4(Z'z4?!Mʦ9#o{o&-# L ,XA0YԦmî𤪰FqĹD/h3IzbXw-'^Kn?Vxz;eEXd?Z~mv׊RїWkGtHs |2N d:o$e;w
+<< /Filter /FlateDecode /Length 3068 >>
+stream
+x\Ko$ W19X06A|[iL9T#
+اlD;E5 ]yuTaG=_"^un8O~K-nȈkC<6G͹JlLH:xm%,ԕsX}5F-?h p
+3<P
+?a=ѷXߧ=|3&|x`4|nP?䰛U[6@&6DI}M#i{z=MLfC=0ú(6wcU4"yFި&2]'242Z+22r'2ubD!l?}eHiDEt@)$f*ю J78ߐKVvo~L~߀߈[֭]?R
+f~d Ft?dP%O`|!IewL+VJ@!۵"F-DB@w&`%-k f KXy#c
+O:0NJrd`BK;mLߊ_n뤢nh%vLjcF ĉu h>c&4yfBR[
+1@ݏsf@R¸\iv0$SQ$pF*\&.o>"uAW̢,j]{/ll
+h@XXVXj}cX2[k e}vħ@o8 ԑ*oÖky=%xke
+Jܕ&{Wm6@9
+uekZjqH6]H'DC(#T>ե;N\QQ+!B)IKOEB-\(x{]0hpꪪ!qί eXl!|/4`xm6/2G-'ⅴjj iQHB _p36.mväHSiƥm׻f ǘcǶi7^6~Si5t
+ut^BŠh@ESYꤕ nUGaT7y36QOvj-!dҲey,kf\' kԶAb d&1zREN{E gU (%ƾ<J&-q"¶Y*SK-ᴩ5sϕtf0Kq*FVezw<=Dqf4)
+*eVckӐּ]qd-$],zSb_}8<So04HҺay;3ܩ&{JW֜؜=vzTn],JCشdQV)l$V!qn!a{wH
+OjKFJ6N'މe^kyŸ^Z`$* Oo ?/${5a64H:c,%_/5^a>=X@}') r fߍC1%AOh':t}m>{)ˀw-\z}*Ė-p=HeA6 Z~]
endstream
endobj
710 0 obj
@@ -2858,55 +2847,57 @@ endobj
<< /D [ 710 0 R /XYZ 78.37 808.885 null ] >>
endobj
695 0 obj
-<< /D [ 710 0 R /XYZ 79.37 608.164 null ] >>
+<< /D [ 710 0 R /XYZ 79.37 619.348 null ] >>
endobj
713 0 obj
-<< /D [ 710 0 R /XYZ 257.051 527.346 null ] >>
+<< /D [ 710 0 R /XYZ 257.051 538.53 null ] >>
endobj
714 0 obj
-<< /D [ 710 0 R /XYZ 316.728 527.346 null ] >>
+<< /D [ 710 0 R /XYZ 316.728 538.53 null ] >>
endobj
715 0 obj
-<< /D [ 710 0 R /XYZ 365.552 515.297 null ] >>
+<< /D [ 710 0 R /XYZ 365.552 526.481 null ] >>
endobj
716 0 obj
-<< /D [ 710 0 R /XYZ 304.972 503.342 null ] >>
+<< /D [ 710 0 R /XYZ 304.972 514.526 null ] >>
endobj
717 0 obj
-<< /D [ 710 0 R /XYZ 207.228 446.904 null ] >>
+<< /D [ 710 0 R /XYZ 207.228 458.088 null ] >>
endobj
718 0 obj
-<< /D [ 710 0 R /XYZ 207.228 424.937 null ] >>
+<< /D [ 710 0 R /XYZ 207.228 436.121 null ] >>
endobj
719 0 obj
-<< /D [ 710 0 R /XYZ 207.228 411.158 null ] >>
+<< /D [ 710 0 R /XYZ 207.228 422.342 null ] >>
endobj
720 0 obj
-<< /D [ 710 0 R /XYZ 207.228 389.071 null ] >>
+<< /D [ 710 0 R /XYZ 207.228 400.255 null ] >>
endobj
205 0 obj
-<< /D [ 710 0 R /XYZ 79.37 339.96 null ] >>
+<< /D [ 710 0 R /XYZ 79.37 351.467 null ] >>
endobj
709 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 374 0 R /F66 388 0 R /F15 381 0 R /F56 384 0 R /F20 376 0 R /F79 703 0 R /F58 386 0 R /F69 402 0 R /F65 387 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 374 0 R /F65 388 0 R /F15 381 0 R /F56 384 0 R /F20 376 0 R /F79 703 0 R /F58 386 0 R /F68 402 0 R /F64 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
725 0 obj
-<< /Filter /FlateDecode /Length 3487 >>
-stream
-x\ˎ ++Q  vwA*zQU]mO,hJ$")j0o~߿}[=Z~닊zsAhҪyǻ@KiT'}[.{)5Զ<BI22#]x<B}e4^֘JP{Cmhw^s/+suy[SK~~wmڍ
-pYΥYN9H:- ,BΨ-d | 4L*ID薵„*c b PGeme7DR(r$Cm
-,ϒ޳]_n,ʰʵLBR~fF{>M"h em Z֯rGL։rSKo_،u~4p+Le7є8}}d8JRZ 'ȡ@s C0þ:'VX52߱ =}
-" <?m6%`u5Gk
-V(0K`/ l` ~EݙqiohKH&{Gr*] ʒ{y1ި.0S3xfت(4q4"tjwZB~ߐh98q6qJMTPB̕c+'٩41ޔaLG!yY50a` ·Y5fpZ"<ⱙAk')I0M_ jM5[,f[eW-gEX.[ D0q(ͽs6$:%,p MOCry䷰R%4
-蟪0@e{f( Hܷ~1![`|8
-rg[i_D0"w-kx[Bγ1-98`!W #-U-~VO!|!h7
-Ž[1Mu331KPC
-/a~+]̛ ;Y (B ;o<GCϣ`M qĐNq=_
-ȥ@ɾpG|ǵ>(US W//58;䯠̛<nǸXb eG눓+"9nH}QB0fv3ħla)EZd@渾FNwdd|`HwO tup?Fuiz
-r]s|y<>d5i/
-FG+x$֒Bh7X*sH$d,G
-!Qդ~G*:;S<Of˾rG;>J2q3[,;5rz\ |ݏoi­C:jbP.
-P~Kw7Xn><C39)[WD0 _ w4Sp20ZrXE$OF3㯘UgR(\-M U Y7vp"oC?| W
+<< /Filter /FlateDecode /Length 3471 >>
+stream
+x\ɒ)IELLZ#|}_͖,U]--|h
+F
+7ٳۏ/< y?H7vo*!z񯷿Ki'H鬔Pk,?7?xF
+%xi =e;%1}i>{+fn:tCV撟<mev% Jiᡴ}uiYi[c`ձ;MBc,Ч$,ԋiֶd<y ѼjVFZ R>n݆l,6J?3Mwy}D9۴ */<Pm$
+pnj-1+T0pݡKi- D!bhX^*Ii3SN'wQHh8/[בf9s{[I"ZDmLt 2;{Z>xl1麒NH#TwԎ geSl
+#uuSZ1|kZ%5j%zTY`3}&^,on^usA*-ɸ͈q5j'i,9h;QIǫsObV.zu$ڿI<B$!X@
+hcDyףS{C:D
+X;cGFPIx4|8f cƵgEY
+r}0 0D H'z!CLj|sֶK{CԒ|IWtq[ K2G#uSL KN3L} 8~S&3lU8`{jyytjOO[iBB_QG -f75TI "\7FrFaL{ yY0&`͝"T.NckV#IN"rz <Yc%Jj/mVJU&q5rVB
+۱AC><bSFh[V `Zn@nb}ͰS'nW#XUᲘ~?Dm:!S b=;Xg~[Q:)i8ST/'\@sqPL!Ahδ\Ǿ_0ױLÄ=@&Xa.2F!Bm3"HbǚC`S0 %P٣94`4֏3
+7Gor566zO E^"[hYvy \r|[R\GOPķk.{Љvv笊]--'pqc0e2mUipV?3,=ʂ/bnNXuubl1ԯan+_`=/ȴ j#LDߒzR_WY=Z6FŒ+@;ecPkg`zэp6mD~g` Rvb׶=6&r@p0VGjʻgS¸1t:X3rpa*o3/O +:]<ςL?[H?Az8h^@{E47?coZM8Ùjsg LSͺVBtOyW
+/a~0], ےYQDփ*DGgZG]1l/=g
+rg=>0Dუjʻ<kغ^
+Ϣv .OΤhqrEd= =:,1g#9xqP>;z&vxBÑ=2qsk_w';J[th|=ZSV8~*OBf^iDHث(4*Ἒ3rՔwF!o[Zw
+r^]s|}y<>e5J9yznӜɔ!iП`y.i~HV<*'XK~<i<VHJ׹&T:H~kӡr4_f9w[(皖G>r9_8'$d> x~T^刺rG;>J2q3\,;rz|Ton
+'Po$";+ħ~8ɢ 'sͥ
endstream
endobj
724 0 obj
@@ -2916,10 +2907,10 @@ endobj
[ 721 0 R 722 0 R ]
endobj
721 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 507.158 110.852 514.132 122.807 ]/A << /S /GoTo /D (table.caption.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 507.158 120.711 514.132 132.666 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
722 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 114.907 98.897 126.862 110.852 ]/A << /S /GoTo /D (table.caption.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 114.907 108.756 126.862 120.711 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
726 0 obj
<< /D [ 724 0 R /XYZ 78.37 808.885 null ] >>
@@ -2928,16 +2919,23 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 374 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F57 385 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
735 0 obj
-<< /Filter /FlateDecode /Length 3525 >>
-stream
-xڽ[͎ )`^`oA|[)rGDn:qTERG%/˯{闇 g.I.[ZwJH.߾_~Jno|O4FKT_>MGúJD.UR .gphcҵew=g eb13DzF*hCs$$A#7\-+>ho௴:zsԻ̎8QjH5e޳3lע
-_5MM2Ea4uaظpú+)<-J"YU4\xN2eKv™Fna#wPVGwSuŁHךY}ZzW/A4ovQЀpj3w7:|ݽ":Sݒ"LA4or',`ZtA:ڨ9(ا&D#U0R.}iJE|Eb)+FQZ$%{'hRi;f _
-,.JuD3D)Bߕ F+VD( W}Mg9>Ao|lCJҵJ; 6yU@dW@ svVytgiy~ϒ[%0Y@NT8BOA
-Ā(*%(T45 Y OȯοZ]ij~25'޹glGgWg2Uȇ?XfnP- v)PR8}T
-3/Z*B kFZ?oĝ4Ywљ HO5]INLMuάMa =/ōAŘSflB1#'B,^w/)FLeҏs<T~Rm;*5[7u++D nz%ؘI?m헎I&1LvoZP \&*/nnZ qqv"=ji ڍ$[E8r٥+,&&,ҖuN7^k }hr}#)B^'sף۫LG<L͝ƛ2ccE~On˝@eFi8þ2|L`D;n;<aTOA^bTjK_d^b)Hn)j`Au8w6 0}ip}ga@?;nk<1J:Hv(SPّ,mӿZ[0Qߺ{4SO jWK݆r@}\w5cKZf$UR&aAݣ?0oOF)$ZaNB_ϵWj^9FI,mS'{2<Co-F%h* i߫bخ?[5l8:k" znO~T`Yy<"DA܇$jA6WUGn¡!T{ˏjбEV3C<&XhO1Zۧ HAi%L?xE
-p
-?n6G^vLXD|e 0՛ {<֌VdO}е[sHu`r[4VR\=a?rꙢZf03~uxpHv=C[t@Xzt:| kϻ L>
-ȸˉex=ŗi
+<< /Filter /FlateDecode /Length 3526 >>
+stream
+xڽ[ˮ +W h\=x7U&^dߏ(nqRII]Or}CK3oyQ-;%So/_R?VߧJR/ou
+n&#úJ4]JtAJ \?>sƤk8{x$-^Db&h͉x)U*m0 ,h|Jc>R#̮] \Q:nWG|D)#p5oa+"&]0A(]q4
+NK
+מފJl)q&y:JHy!X!ͿmZŃ8C'D%2CPMqHv7_8>!}NP&9λ8 eNA`hT[i',<*Hz044Wx <?ZOЮRmJmږ) ACS6]I5mdTΪrX$e…8S$h'YJtx/&8[|i
+l5tg6UW[*Xp7ygqG+ZFzۍAn6^Ѐpjfgև"6yGu=.{+nE}>%Yh?NX8ٵutPsBE?pNMJ`)*͞ѡ_.lsED^_Gn3IUi7H($cq[e&N=C*]Y}>[Hih4ٸ.2ig3s_,'HM8m(]WPZ0HC^l,F89OCGt Yjf_$ Vrq3uD?; ~S  fϠ`]rJF/D-7\\mfĞ4+1[΂
+=6K47xIMjսudez[~Uʸ za7nN\M"8L1u$>%4%Su{B[Bzu "u`<M"&={rVYK'1͡Ґ!V1 ?zܹ. 빯A8MQZډy/&]TT+W__%E`oV*H)-x{)mPVH{pei~T\ ')R{hqﬔ݃DҸ0A,]!-ۼrLvCSm6+CҴ h">֤H3*Bm'!c VfեzYYp^sBfS~"V we{;k`+8u 8B͜!~tŲ"²V8mԣ\K$ɖ<#'Md拏eH~ʊvKO `O9c5
+!s դǭe5wj0XK^_["U X RBI[E=:x$ uu]OF{|wݪYz!A!7\4`
+@xh</,q^G me}GVȓ~Mh%c.{GGq<=g:%"~قkGv>u }WXOb2G쥻8K[*3co?%:_ɭ`&vvT:: ZDOSr>en|Ӈev/Fh`A1t+vuI/[/HVk~&SFQ>Xkގ9ˆ[uߔd40s. B.!5\?nĝ۴XW f R˓X;kW}SޗDSZ 0vݙ5{;a־;
+[<X ѱ:5Iv-3rL2Ŋx2;˖-vJ?qW=JDn^j` !#{Fccd&t_*Mxm~ɖ=ưرiC}3c08"{k&oy֖n!ғ.wWcv'Uod',‘&^!Š11@ft\gC{q:ٝo*y&%X43m5woʊL=)ܖ;(ʐvq"x}fxVc|AFE)M魶Eu L)&ϚBo"|h{PTg 
+w:25v[{deT HVw $K#*&[7rz/Ifq!{l/Vjm1ιxz I-A}3U[ Ӑk}姹F.Zœ<K߯fռ-1hsRXUOdF)yH/2{[~0 5JTgW=
+J+aƿ.R]F~(oS޿/q.>d
+@m+èh L=|f^5S'gZ9@i:09- +.`pEhLR`u_3i֋t,c\)vwsL]]Latq}Z-tkZ^e#Kn~$?NNrP6r\i
+j,H>#@/4p?(#Tgd?-zlP
+t㲕oL}୚/rSJLӮoMR8[lʚcaG4Z̞㫦M&
+ȸˉi
endstream
endobj
734 0 obj
@@ -2974,39 +2972,33 @@ endobj
<< /D [ 734 0 R /XYZ 79.37 291.272 null ] >>
endobj
733 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F65 387 0 R /F69 402 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F55 383 0 R /F64 387 0 R /F68 402 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
740 0 obj
-<< /Filter /FlateDecode /Length 8481 >>
+<< /Filter /FlateDecode /Length 8477 >>
stream
x]K$qW<tF9&6Q|Z>X>86LZ6I[zg״+$}x?*1_~̗3>o^M,m拹er钢h.|yyK컫<>3JWtIb_AI)& /U#,%1Fd)fb')/l2U/MYtsc;ϽJ
vrf͗>J<Ե7ϓ] [66 ҶJ#^٧)ݒ/7dR\#91ZssIyUڏu=`>[bI;X:rzSZ9Z%rݡS0Մ)
=8- t%;؈ze$mL9/0*4 ΢1-u Y@5^|iJ&0} Iz1A\{`{c)Z# ?#!t1'&.Ը7Z
-++f@!f =f 3f^7jaT|!ny=CoДїhZt80'7cU~DO$q,n9ZCp8疲5U~,7/yc<a%rvo<}ВrZx}%1h/|sUiAqQ`XKFbJ)ܬ%,}8@Qj^~
-_J/&@>$mSwW[m4z;g&};F-8 l~Z\7{?dR<',˛@m~ jpHe>+Nn문HW%@q . !T =K:%NCܟo;[N e*uuR^m1,CMGv냅,T9εO=X6-R&6w7ύaWN̷PY̐ͿSX|t*ytF7,Y2 﫮4wnQ%{M`hj5J #oPu+/
-~/75/W >Fݎ,gXOZO8zCygUDE9RnXPkR8ZG#zNOeRfĩU\߄J @,oNj~\Ϫ
-<K>'7_򔖱Hؒ8a~3O!1 ^…iݖBQ:k.gwcFk%ܯ^CS6zKټpAU}oZ*byVS/}[yf;G}]~Ӽ7JG%S7&DEG=z&tjTo]}jy29} z(QwvVN9pƛ_w
-7 ;lzk": }nk=~a'kWm8)_C瞒9ě2-6qd3ڷnWT3#i7偻 \2jߌ[70gk*`&푻[eպm۸׺qo}>ֺIX~uL6[} X~2=ھ@߁.lpMm}Tww6o׶^eZR8v̻06/ulH?_qZKev,syWuheq59lN`ƕ]8Fa}=6ݷ>GןSKky^e&uweM:k2;@AHޅDr4M-j.U::L oIyԺ0kۚRNջR!."ѝ>u
-eAiz_Zpysz^u.wܹY]ȣ?);GwkE;λc2O~Y~
-GaaU]EjCTWRנV}o&TvkYue]ZWw`\%ė^gKϹkww0lGN_VrNvn}a)l/QbUtS{Z7u=e*z*C*[dTi/HHJܜW9\+UwsZ4U2LUxwf.>WXٺ<fϭmO޵+]7$F~v~Gt}~)k_ t;-m<}`V<n1ߺto+7\z;;iIT]|򔭿a'ߖht8R|\ TWe} Tm]]S|nʅt7?]"F%{H
-~D!5,Hӣ-R%o<ioeM7"a6 S(7.$էzd]N kDeM [MOwbf;s7ޥ@U!e0n[?;1w<hݱT}} 0&$`>N :X {~IC+wurIWuҮͱ6l:oӽOHLFh6 GPZG馭T8X:w U|BUCkz Lh6v:T:"IݡW
-~ 3^,~o:iM Pb*g_wDSq:}#RrZ_(O^nIvaNOn>&R1nrOђr=&7_`Np_(9N&c$<rI(Ӗ/v%? S9j
-SBbh[o Z D$8zIɳdpA*CtL(Wl,!1(F"b9F͇*@PPv
-O֔HQ dʶc=9bSX)2ە64{Ŕc8?8DZZ$hiC䪹"kƍ6h0߇})1/fݨ0copsu5(nDH`ؖ@L;n;QT
-,q
- .K8*cǍèbfۨ ;Z9F-jzA0
-oGUD@qծX} d2c~"n^1Hѣ jηḘ=ʨaLʻ†$rkA%ê|ʕ+ ~u"!GK1ǘ%_M8 Y6jIłiaٗXa8BZ/-sԍT3JJX؜
-0LC.{f8^om:c$QA!K3ԤcoV(eQl[`Wp`0SP`]2H 0Q'H̵9%^kYrÜwJ!4S+4SPF#J g`
-GdU1#)5LOYTXF2
- >uDhKfXQ>閩E%mX\5-kЈ8Q>5Qw eq8kľc^5%Vk3Uo
-x=̺Qj [cȜfSj M Pi,*K[wZK5ӼL.cN1Vɜ)^ak sռw&'1?9=PC?bE m iȺՀVY6)2ʽ[ߴx$@ 9v[Lk654j^L{M1 xɸI|U ,a˅Dzj<,_Z@7d$3rd)G$k
-b`ջbAFt
-'\m64}`Zڢ:`I/wL0qS]1O(^1u]-LՉ.eK'hjdq|X }W,hʯL~Zڤ:I!@rG#qҳs]1#㥀ffYmmkzX1 xX|db{\ L~W,<@~/5*-HIi:1!€ޑ%jU)&G2f`
-?-hѫ56)*-&\bRKU⨨*dq|\tp@Oo<QT4(>e 2~^cd']/܍ڸ85h_oǜWleL51NF^w D9m 0XEb6vĄF nX6^Nk m>ozot\Ca\(tfbS>BE v˭C˜4"WYxmTRt|J:<m?"oHzl鲄 M*nIoԛ$ MM^nsNZf!cnxqqqy˯{]McyENgֽO-ue\=^%Hr Xiif,_C݉ #!Cׂ1<@mv-,ux1D~<P`X~oMh>Suj{6GVAԪ3$3A8d@[^Œ^~oRō&ZVZ5CЗv]gzXaǝ*LCuH~a\ߛ[l;W8!p)yv@2ZO
-疕~\nШtwC&o7lt}W>mvaϕpdCrj?`x’v89r'Väa$/3{QҪ6)>nI0cٍyg0S8Wi9O~ɏfm| ;c3[U۱`f]!l(٣cۊn>7gZ2.X}-X<&|^c}547ZCC_@
-ǍXj~_񘸼u5Rׇp>Dۘʼn^<9ZŵOF΃[gwezڛ݉k-ȫQ/V/FahNf
- גsrp- 6dw%POUw<W-CXMG[o\6)OeSˀ2^F&dew๵-Zq^ \#&O;Yv0dCuˎlP|yM 1Uכڷ=\ޡv~ ۔hɾvTڦ}9YS}nܸ}~΢:c~osɫuzE,C
+++f@!f =f 3f^7jaT|!ny=CoДїhZt80'7cU~DO$q,n9ZCp8疲5U~,7/yc<a%rvo<}ВrZx}%1h/|sUiAqQ`XKFbJ)ܬ%,}8@Qj^~
+=2N3e*HbV.oB%tLcW ѷn'i?PZ.YgUT % zL=䒧EĖp wW|
+YIxŤm.LmYs?뼸-0Bx\+ ~=J==v|Xj{2{NW?]ϳ˜X0<G=7}%V?/A&/6!*:zĝ(3Sؤ}S'͓+ft{@;尚4p")3zl3 w6uҦZݵݽ!q); @Cgx
+󝄟e[0~oؖ~ܦ[Qor 7=-z.ǥ.*ϘP/QY 97l rw'`+ڤp#[k;.~|+!gxwBUApG=gjC‘* ߌ>X'@HPj/ޣHqpa
+ȏ_8~&{J`oʴ{>%&hߺ_ _RMvݔ7pd}3n_u#<热GnVf_mV:s~^eX&eb֭2l݂[7b;,hn}d7/BcQSݡ~ߡ^ۂ+c{YiIE2dۼHE!aiu^/C[\ڵX]֡orvJc;Ww1f 4wS^NH/yc^yoLߕ7u謝x!y~4dupV`f3%X
+NA$=Pxok &K9}VJػDwNp*:s}jUJlyehnZ|qfwirk VܖݍsB8<e-*<UI[vuUQq^{\I]Z]S5i~f}vk]asї<c_{IĞ}Ro,>Ziܑ}zr:4;}Y%;مӻ܇DU)E? Li ΫU2ꪔҪlSK"3")qs^pT=izlV3U*~EQXZP
+9ס[ҫlGjӡzO r rƓts@Ɨfb") JΆ" lI". /χ`6Fʴ%$aċbO..&T}m,P/|#kaVs2C-. :N^+DR(E%%`ʐ$''S#'[7E7qL4{D
+P1f#Pc`2#IG 4؄ 1QkǴ,^Ut5CtjԼj1W^.cbΊ$&N۪Rla~-u[W M$ U*K$5 tTKmu(Eq7Y! a<#Ruq2S$zIʹc&Mi1VUئu$EQPmA2vpDcv n@IaS.=RĨc.uk4HjkVP9X@Z
+ɚG1G"W)<Z؆ c
+窇N15B]EY#g̃
+[C5*HG%l⁅s;1lb}CI[]< AJFģ !Jdj[>X<tp<==1Q#8fUDVdd;H z$6xH<ˆE= QdbNd06~9e$_=Za=pDk+QJ-.Q\5= Rg{d)QͶe)Heǚ:ou$T]n k#ƒ6XX'ؕ شh̶TH>:?Arښ)nа9Lv԰{ZA-#6 G%d9e,=9 lz
+\^̭“5%R()asaDO k+D<FJƧv >D1{r<Ώ9q* 7Zа5,jn= ڀq* a_Jp Y7*o'?\zd]gM$%9ӎN2K(‚K
+*MExRb-X)0(sɤmdeN3J5̹jf;VSTbFY`*#&ݕ6(N7-e1aȥҊb}E7%-fkYrÜwJ!4S+4SLB㾩OZŒhA`)5V1OejEIx9WM 9Z34$N9sM`T]i"kYw8XmBdM-`L)k)
+(MĠ"
+Ra`=3AoN^ȡE$6(drqԴ%,*8(%RZgX "#^l':nZ$hi2窙aC`ST*]!nRp4/y1SUr2D%m`\5/ fiI({Lz_T1Ͻ1xg(@zZ.n5UiMr7-^/ Pw]$$k``ͻbAFp
+%Y\W6%?\6)/O M0OY ;_&IW˻w6.oA>1r<[S /nES<㶑]¶=+k;Qg[0 Q<Xô91%f==WڂD *
+P_w2עV/NDl?ŕ#ivv0%
+`Ȇ 1Y٢݃1TAL/c~ 7o-{<C)Oђ}j]M$;r*#:Nyݸq%NEu;v))$3>ȓW5*'YƇm
endstream
endobj
739 0 obj
@@ -3025,13 +3017,13 @@ endobj
<< /D [ 739 0 R /XYZ 79.37 260.473 null ] >>
endobj
738 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F56 384 0 R /F69 402 0 R /F19 379 0 R /F66 388 0 R /F70 403 0 R /F25 375 0 R /F17 380 0 R /F20 376 0 R /F16 382 0 R /F57 385 0 R /F22 404 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F56 384 0 R /F68 402 0 R /F19 379 0 R /F65 388 0 R /F69 403 0 R /F25 375 0 R /F17 380 0 R /F20 376 0 R /F16 382 0 R /F57 385 0 R /F22 404 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
745 0 obj
-<< /Filter /FlateDecode /Length 5114 >>
+<< /Filter /FlateDecode /Length 5113 >>
stream
-x]Ko$ Wq3{<^` sKrS~H=(J qWSHQ%}T~/wzacN/| LYӗ97s̫0iۂq.>~(g O#> ʙJsny!Q@I)`՝kΌ~j@5(5<pZKO|_ēMO݉CȒE.(ș֊53'|ef-R\1Us3J1qiIet0Yo:
-?yM*zVӻzzӳ46[5z }Qc')cklnc3clhRnCs2<87 tŌB竚d`8 x6kj=ie/fi8@T¥{QWl0˺i%Z#48׃[!64Vl!O'Å/ߋV!=/Ʀ'^?YqUr+Β3)3軓f=6ԩmLI هސx%o]th7i_JljҙNts{K;Kyge`3g@e!6_SV́"y3)k&]_3zG.ākic0%'@j?W^{bVz.Cg2',9̏Y|<#(zr!SP&eu҇OԍկC=ZS]=?oخ_:斠77voVoS8'Ы0#(34[U*2&t')iyRN Z)}S׹h*Pĥ D &uM9⬤P_~@((Qe3}r,x1]4rbBߡy!jX3ONSZYt.J?$VY|F1S6nnfowyD[IJEpE$+%ĪWdWJ,Zw fКNAݗ_ ^=~r2vTL*LIL}j}M[_.1ak)fxl.$a"-Pp6Hp*V1OfBM_a]9V5iss`azXRT@C. + W
+x]Ko$ Wq3{<^` sKrS~H=(J qWSHQ%}T~/wz~cN/| LYӗ97s̫0iۂq.>~(g O#> ʙJsny!Q@I)`՝kΌ~j@5(5<pZKO|_ēMO݉CȒE.(ș֊53'|ef-R\1Us3J1qiIet0Yo:
+?yM*zVӻzzӳ46[5z }Qc')cklnc3clhRnCs2<87 tŌB竚d`8 x6kj=ie/fi8@T¥{QWl0˺i%Z#48׃[!64Vl!O'Å/ߋV!=/Ʀ'^?YqUr+Β3)3h-_3qS6FlCoB+y%o]th7i_JljҙNts{K;Kyge`3g@e!6_SV́"y3)k&]_3zG.ākic0%'@j?W^{bVz.Cg2',9̏Y|<#(zr!SP&eu҇OԍկC=ZS]=?oخ_:斠77voVoS8'Ы0#(34[U*2&t')iyRN Z)}S׹h*Pĥ D &uM9⬤P_~@((Qe3}r,x1]4rbBߡy!jX3ONSZYt.J?$VY|F1S6nnfowyD[IJEpE$+%ĪWdWJ,Zw fКNAݗ_ ^=~r2vTL*LIL}j}M[_.1ak)fxl.$a"-Pp6Hp*V1OfBM_a]9V5iss`azXRT@C. + W
P
hO(
q#tMrUڿu8?#o\}zzD' *%/8
@@ -3041,18 +3033,16 @@ OskDBB.8O*_'~`)6f4[TV>-@e97hxZ4@
QD\~/@u۶g?pcZn0!Vk@NҁgYpE=G
XX:5lY56h8S{,|P@u=J3mZa^:G%,wgg
LgG}j#P5oJa~Bvm?)„hFǼ>tp&0+yZ˹oܶ]FS1s˷m*I"dh ^e _C쪦'iR[}q9r
-f-+=oNݳ! 6sm89DAc<a506ҹ1z4`/ .ȻeQ$)'v)Lհhۻ1ov3F nD״ZleYll<#{6v&hM_WZ3[+xʶ#8
+f-+=oNݳ! 6sm89DAc<a56ҹ1z4`/ .ȻeQ$)'v)Lհhۻ1ov3F nD״ZleYll<#{6v&hM_WZ3[+xʶ#8
(ȯm#6f&쌒A2gk~ff0|_]i}xVf(E.rro=x%bܖ}ZYLhw/e˪9W5fa2H9=?=Eځ/F*<>\r"e6|‰kY04*-f+zhB^Q-u q̊a<<Oي/UWD]IG0Gڸ[
7U*#>Se1g&+7- P
-+a!Xz j" ^PGXW$aiӚ\Q_/Q}qmřڍ VjgڦMu}ـQC!nC< á@ 7LT~q
-cP`L2PP`Ler
--
-xP`L<SQ()V( ,HX 
-$󡺦0X`m%86v0JN+<mg S7-Cg̹0:~Pg$wr,e-Y0LFj!Nv$j+u?s;xbèI\>S)z6RnR॔lL9\.^[_/sk.Y
-6|ѬoK/-AjQ.&0!+}%btg[c<LD0\fxFis{?vL: h+@gU9d%M"6'ا
-{A
-:0x|OS>@z] l}»opL8r:}Ի05*Tlt6K&^+Ym6Y7g ɔX|6[p)sSnK6晖T"efVާ"c,blNC ϙ"< |~b\ ,~c+ؿ}N09яL3om4$6UFūěӜ'%IΖrr~qnr(d#Dy-<23Ej70k%9+z ~x;ļ)vҼz DX
-U
++aP ^*ZtHW#TkIXڴ9WGl)q>t8b_kFg[qvmfڙih<꨺cm_6kbTPkP
+lJ
+8< R>7h?Fc|8h-$h[NMmu2Riӊ/fthÔ5=%}"Й%s.cԙ$'8ɝ) ' oY@K={HZ>g]v"01bRE=T^MTobdT.x)% 0Ӆ3}m*5<V˜K _ca4[撄dmZfßri-4L~JF=~m/ф1/WQ/1N()
+zUYi%H ɿ0)A^K/6m ,K cL}Q xm]I6ɹ5\7Ios.V05.Θild967gun.k
+p;qFYGu-(_H9ӻ T-~fUY?ʦ`0^* (ܽ8ω:(Ap 7O% Ye\}:9J-[-Mk?ZdnbD2A+# o"oԿ$὞8f=c6::p_~+Ϊ,:Ϋi_D<>̡zʲ|z:U(A͒WJyMF2%V5"f25\TےMy%y!UHu*$[Fe밓},}nzs&}|B,_
+,wS(#qxN!0[[>Me'M9F*4IIe4_l''&
+Ȁ<kE Lj ̚iIΊ/"F$$71o8s|E4^VB`p%
endstream
endobj
744 0 obj
@@ -3074,26 +3064,34 @@ endobj
<< /D [ 744 0 R /XYZ 79.37 353.704 null ] >>
endobj
743 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F58 386 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F20 376 0 R /F18 377 0 R /F17 380 0 R /F23 646 0 R /F21 378 0 R /F24 747 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F58 386 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F20 376 0 R /F18 377 0 R /F17 380 0 R /F23 646 0 R /F21 378 0 R /F24 747 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
756 0 obj
-<< /Filter /FlateDecode /Length 5030 >>
+<< /Filter /FlateDecode /Length 5029 >>
stream
x]9d9W9k}@3A6`m0KZ}RGJ)=m0jԑ>T/o_>EK`J/_A ~R`܊˗.|B>jy$\3@͵\IέtqnOW d3JlX}owGzZ3;ZNƆ7$cgRr;/u36h9s@ia4S2-X5*Ofݚ֘J'fyĿc瑑L#e! 3>dSm;|tT >yXR8ߔaZBJFaN7[,KbdyG3U!-:|Jf=Δ C<ɜ~ۺm;){LќbΎ*W <xEQ oyؽa0'>
uh^7G k5 E$
-oqyOZ"ϱHӛ;A[wT0lq
-x jGYxs ˔ ^ܡ0uȚ~&Dt@6<r/T.opwCCC6_@7KY^2\V'/,`ZQMI[JihZ} 6V8m r/2&yt`vb\et53O
-sp%p
-RZZ%oCq")ųЋMxCiюnpEJMpk#3Oā)u~/3fjkG8@[3͑\Xf*R^R7~nI26H7_ ^SiChtq~OFs- $RKY:xk?%ŚS)~!:]R4o;ZU01癶m~&Ό>]SN8a%vQpO𮆮[K!(%Aehk`ssy.
-ۜ.q%Ӧ@lF_W ̴[[]\ȼ[iS/:'nN=щX o~ZOk80 5qWp٠zgd̀m~/FOdw}]]KܒXCȅtf4hf\uzWt
-+0Gt WY?nL݆ǸXv2j\2YEg'K7EcmMFr,boߞmX+{lpJA6٦% zy_UǩX%ziDZHy6{Ӓ?2SdK/H Fn=֧HV+ey<Ʀƅkzvt;řբB%}Xz5~@vc}!f~TUq.AT[۱ll~&ل鹉 uzc]>-vp6=nYjd^3dX/oԩI?jO|gu\oqLr5򁧓uߎ:sa[muo2&8}N˷fwgu߰$n:ݖ4LhfR'q%:~?,a8rlȡۤ峸-,S[P' Roz".,rHovԊU|8#+gwn\Bѵ
-e7/*Hf kZOhpˇ.id3-$aPnԈZ0xV>s
- n/W%N:RSarN7Tzj{w#)b
-y'W0PP{=X
-q(
-v%eAȱilGdMœҰ tۀ'3Ԍqo]9(1<X䮅㜓])(YV2%EP8)0c& vS^a|ܕL|rO4?շ\@0*6չgO8D9ݜڞD끖$G ۠CQ!;d<ֶ}-a2.I {`)՛2-Q; q_3 oO Khh\7
-Řvj\RKR? 7z%%:`a?n_փ;vC]п2yP'8>euVw-]×ݽ$[K wok9{uBlo!!t;Ũi Z& jDȩ{Gm Xr /]zpo];$[dof[␺q7"Y )ړn\,)(o}.HATM];MZ3 ?/II:_  qؚ"sWߖO_ yF,Wb81yc_"~isx,ʽŚW3Q+Zlq`:u\.F%k2B}L:XԤX\g{Yn"1IOi /uWWmxAG$8@)u`+yX'N[6gt)$ VUGJ?R$a 
-eDR{x֦ś.r
+oqyOZ"ϱHӛ;A[wT0lq
+s":u o{TSt*7I;ES
+!_C%, OUI.
++js\0-(ܤ-4D4bm+d⇶gcZDy`9q<&>;Ÿcjf,%׹)J.2\JPYF-DRgߡҢ& F~gH=4]iS
+5^fԆi%׎ fq*Af#?T <7T&
+&BuHi$6uůw쵪`b23mLe}Fq@9J@] ]?,C2uQJԣ<j]9]JMr,iG=Jyy9?Ҙ^4tNn j{ys,3!م+?p`fV1 kֱ A5t36Ț(^i|~<%< viN[4웯Va ) ?qbeeոQe
+(VO9.no#f39zp>/Y޲3=豆W<xi;":"M)lM-[K@8[PS
+NUKt~Y=kOp؞C=Igq[z=XxOn3iOOS{D~]X>吾fpm5#ثpF W<,ݸk 0oɷ_UB:n׀~Ç.o/ `*xsÏ]Ȃg
+Z?ZHàܠ_ `|p5 W@*^KƝu-/,HDo:PFS?,
+@aN
+`-z.
+8x8MFb5x奭i֙xnÒ3D|vdk6V(΂,rg{%k>"10_m,>s0500P;u fA-ۃm ~0;0 w++={Nʽ݅Uva=&
+S@g_»'>޺vHbTaͶ!u"ozQuE%zћS'&IXRzQv7,V]j i v7ݵg"_p u: >ㆱ5E%-@EY$sp%XKcÏ(".E[X{;5$
+fVbͥLzu\JwתeytI'
+3B
+9R:s(2֏EbB>˟^įI #HrqoS:$pWN
+ (lD `SIt!A
+,,n(hIJA3JIǕR). Ǖr9PRcL8 R1 !~ZiqT<e#[xwR^/O^
+byZ/dG ӿgȌ*sY@ia@Գ !Ȥ!~!ZlBqT<LZb2W ^*؜ B dKe#[yZ/'!]]wʀŨ8hE>6"X5eκrcr
+0R11 SGKոF}q(k|%4\Fl`2 ifr01h&ker^rgF?)l:؛qPaXTu|>ޭWc 0]2*EM~e' W?8 v7h]^vˆ fn$jKΛ_"Gٍ ¼5Ef'P<kO+RcX>5Yew>-3^<շT6*s4ȁ'%oF~۟ˍ߫xџ8OcMcVNj򙔦?[,fv2(tT,Y4> Ɨ*5tn=g2a^P%VKk;%45-no@Sߣ6 AAP4ؖ-DgwǬ%>_yvS_GN,$wMO[N@Ψ[Mm$}\aOw -P,jvH:c$t'<n9h<2C}&4Z
+eDR{x֦ś.r
endstream
endobj
755 0 obj
@@ -3127,33 +3125,35 @@ endobj
<< /D [ 755 0 R /XYZ 79.37 197.296 null ] >>
endobj
754 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F16 382 0 R /F19 379 0 R /F55 383 0 R /F69 402 0 R /F58 386 0 R /F25 375 0 R /F82 758 0 R /F17 380 0 R /F20 376 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F16 382 0 R /F19 379 0 R /F55 383 0 R /F68 402 0 R /F58 386 0 R /F25 375 0 R /F82 758 0 R /F17 380 0 R /F20 376 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
765 0 obj
-<< /Filter /FlateDecode /Length 4322 >>
+<< /Filter /FlateDecode /Length 4323 >>
stream
xˎ>_GA
}*B 珧) ULNjSr <+g ?&27eR
P Ťq]0=ڶ_Eϰs@}3 l%'s ;gum&-5-
R{lM$Gr[ ۳b{:8eq8G1أɺCPĬM;KD9hN!|a;MROؽ`ll툽 z ,bw;,&m.Pu@St<'쾖9s= .v;u>?+N
XK@sY(/,}bhr1ܭ;Y8\onZc䏡NydQU/~(sV4'\1ɩ4t{o,c&M(Os˓9&2坆e(bHa^QUH0ZJ6).3B}͓ODJ)!^S|kb-KbSakU St_z!b[,ZPJM)!뀆ЕC~i!c0(IJXnYHP2GJd76T0ObQʸBS*ɷ**WER]~bт2&cɲZIQ3[e`YQ
-6@#Vecej5F7n6" b3PF.=B23tZwk"I>% 5I\Y\<C2{HD $:I*! Ba\ ^Fj!NբuNnzmURhmRNe_dhNj,tZF9_W&ngLE㕓_P݋ug%]`?,m˵8$i-2ϫ\y*J菚n Py3uȼoYWu7\WGE\q^k,5:[>"P[$/誰Jj͐-+kz)<i% a&j!m91HD^Iq qJ/rF׍qKAI~Oih έlKq!?u_c
-!`7'ٻsqONd_,W=
-W`a PԣHTNMnoF*Qc*pȄjc܂n8 խ9Kŀ3&uE[5Ehd4 3d.q]N6[\XمKf،)RA*
-P^k8gb
-ۥ|ȧygYaxrX3C~UaS/'~ɳ-XSЋ&L=RD-7}*SF3hWKs
-w(]'oJOB%iB!e-qZ}WDz#]·V!mi
-g~p
-u@knJá'mVS`w^nDI8 dzv lj~˽Op,J`}Ɓ2>DZOeAԮ&(
-m*@?r2:kb>GCHKW+)kf201I"DRi=(wn#ƒH ҥ~x"s:u@IsA+{%2n9늹Fݠ5Scs2b 'ȯ6'Fg<-rQEԫ$›Q
-~\m*ϒWJSc撰ˉzbnԡnA8Tdk[R=M w!WNN,SBC**"~rpX@qjqTf9eԎ˻G;^3\)؊M>wIHwNo8iDn0^(oWG:!]ꢖϴD8M*%y?<6Q9ֱҤb"GV<gHs"Q{!J.K)5P8>9%iól:p;^f,;pV~
-nC֫7_.6Tg۵kZǎ&^ ^N\.+|DKٲM+BbZr ;Œ^ՂklV0f eOD cҴI[S95>lvG)>,]>ml5fl>is:-;JRs6^/)sCX&pQZ%nIU;nXTo/J!o ͝`p X'vmZĚjçHVMQud=[ƒi 8Kb ?9p׫p[*>Բy[*"!8wvD@:,ږ@tǾ'N%iL9#53tv
- <Cq }R- ޚ=@a r' _,ABK; rx7gi'W*f*kf C̬rlp(zblr(f̎t45}gáM3[1}'ˡ-3;{cfShL+=y,۝di! ,fd9C $Cv!h1/fTwUuMFcM4\vsPZ+M&؏:<f`/g쁻M8|\3YM=$_ji{Rꍵ 蘲Bsm绎h .4!Jؗݰ`1gM(<*f] 4Iݕ<Ku囯*~2Ǖh/ /̽&EYjZw`R>jHw5^5{vͱ<9ҴK[W\?d\@+7LNnT.ەv(Qӟ}(
-]i(Vsנ˸NYS[rHPz%X.OAd1=72ug†7ݢћoWo5rJޓмx` 0]LH|L-.K,8n\x9lk
-c?|\.'_k&-B,ObQ# 8o?afJωh, Kd{Q;:IC )mo:(z\΀-!?P@RԌǻ-e(<39oDs4Vl#$G n΁Gۜ[<FtNFneϨ|#P>Oq]>[tmfKT⑆0A#Qc6,JLTƧ%p3xw+7q|%~Z^“"d# tڍ. sNLCUxx4 P\ӘlN.\Ɋb<Zv
-ؽz&FۤE|CJx͕{aF>Sv"2O42j6<J Zn͠evI7ڸ^ ,
+6@#Vecej5F7n6" b3PF.=B23tZwk"I>% 5I\Y\<C2{HD $:I*! Ba\ ^Fj!NբuNnzmURhmRNe_dhNj,tZF9_W&ngLE㕓_P݋ug%]`?,m˵8$i-2U.J<ua% OGM[7o:d+Y.@rSt.~_8st5cJg׌j- tUXJ%f斕5PDE紒vj0vݘa$
+I T/8PȂ8E%uF̸LB $}44V%}F䟺f/AF]J9`߸''/L+00ƣ<+S,[l
+sث
+x62!+/$j¾l5yu#Fqδ>r1I}%VMr Ō#>ٮK\ ֽ:>1uv#.(6=fmʶT~6."{ *{
+V&L?0C|FV<!ʉ 2wvE2i;YVx(̐dFؠe t6<yl ֔>I9)_&b~'Qu_ư
+攑 %1Dܡ#}WI`ғdvIPHYDVձH9E;$a!f2-tH[>$c21XWT#@Q}?cvl&_ѦI`T R><%f6(\M#èp&@e
+܎)OyV&_N-Q+p?쳋g^\Y~ `h>&1YCL$ o׎;Y+YD Vv(x#
+Cݸ8¾Yd2@ة :H]P:DBPâ8}ဳphIT.$~rj3irt{q์$3fSY>j<A6ʶBn92\LeDXO=U6BJJŹ0LL0rZʝ戱#RsBl!t}{fPAR\
+^&h/bQn7(F؜X Iљ)hD,>zf\poa=*9fT¿׬ `eʳ`RTX$r'ue$!*U8"TOS]:5ն!{А
+>??mEk PGdZ\:UYN⷗t; y1Wa>F]A}S4>vt7ѡ6W5
+CQGHe3)NJIOj%jTu,4푷|x$G9ҜH^KRE
+t T|&ONI,;Ďץ,8_f(_iEې&vֱxׅS,0<+68R,CJeG){ƇN$WU3̟5H5qQ4mARhzQKcOGB͵O\NҸԜKG \irtRv<)==[RCs'܅|B8I}貅8w[yV/hjZ-|x9UST>~OAZ.h#Ēv8?6259Ozn*O*l|
+HΝ]F1"˩%n'/ISo;k0>qSȯfLhCݫBmФi2pBTCfPXows_P'҄zN#tü\dYIjJhY&53\36ʿ4E3}ʼ2f fpw$m7ͬrlp(nblr(~̎ޘ}>};JO˃?vg:7,gd9C BY*eZL;r~ad]X; =ױ]
+rgN#ehX{`?-#_5?LV$(jSOh3I闚zZ5Tļzc-C|/:졐\g;Zv6M@e78Xx
+OwBFnrr8M-.Dvw%m"R]7~kƲuk-ʅq,x2'8*Z KsIkVl]wW͞]z`s,!j4-R*!W-PfM:Sv0}gi_>B&rJUnv52F/CiAF>c|I8D){̢eo`Lw|0vhf[5z5$4/hap1;Rj.%+Sy ^?{N=X ~ĚI<3|~8B0/cs"/K:q^ԎB
+Dy_ۛ6!3`Kyc815{c
+ i s۽#=\<Ƿ~Q[+s`66xr+4+Qy3h<|ӫqfpeW.(ϳ1]x! m/gHԘ1ry{: ռ)d \< /MC\_oV.|#&#d|v#%
9z@>
-H
+IL]
endstream
endobj
764 0 obj
@@ -3186,24 +3186,24 @@ endobj
<< /D [ 764 0 R /XYZ 79.37 267.098 null ] >>
endobj
763 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F16 382 0 R /F15 381 0 R /F58 386 0 R /F69 402 0 R /F55 383 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F16 382 0 R /F15 381 0 R /F58 386 0 R /F68 402 0 R /F55 383 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
774 0 obj
-<< /Filter /FlateDecode /Length 4963 >>
-stream
-x=Ɏd8vRH$QYـp ژ{ i~dUCVTC&o?}?xSFh?(|!omƫ/<JiAJOmjda}Ŀ(&O=
-?_^q
-o1NJ~zY>5;5/s07JDk_PΏTkj(+/9`'|R0o2 + B-$]d*{3V\ RB{ë(gԓJԫ+0qKrlAx|5~}VGi42sby,'{<v7rps"z,&"Lmr ,Eb}rK%2qi"yWB7YڤIc.AVh#" ؈όޓuTT޼5Y&AB-@$
-2o+ḯC:װ݂P!揶ꨵq
-U' #S{DAKc#.ȰJ[V~䀾L,?%5h9+;_1COGޓ;'9om^-1K$$øqEAɤBv;ÅGd9[j j&)B֌b:vԻC5fJGm3 1Ja2c#4~%3gH!I6X*%*258` N\"YB> `+4{
-ݨ&` yG]hv\ s!
-k%CiR0MB0gG.pHќŁX"t<3\$V$ ,5k"l`4}D7>КoIi3>j@[W>Lv&Js8~&ݬ5ondd\]!|B\-敋*UtDo̰`SR97lA_"Lc$)훶*Cr/"_@
-:[%n6ti}i
-z-2&Ypsx}=Q>V)z\+^㙉sQdnK\u '':p{d.e6;!~F!k}
-e[0/!ƣ`&Pq j@bA<; TvfġJXzyR^:ogB̈́'A#x"PǪN~u~(eo2Ffʄy|2*Ktez/}eDۙ_7bSl^SvF5 Nl"}sו Pv'h12:Sh݀!`Ȧ)C4lx̻?TZ)uߍB$*;0"{Z3D.ώ.ǵcg=1) ndlN!ou* &ߨ?rGᵿ^k@8Kŀ[MAtj'qi<mBC "oq;Fo5'cg85S 4<E:~ﲒ!>vQG>z<.>m SM::9maN]E" &0>KoϥmJlaU5zWK&]0ub;t)}H|9VJy"3NtAD4I)ZWA(+iꥈ0wT|5v)Of-Qb9Ra24n\-Kɴ
- a>}ڭ(ͩu&/#^B )]bB鿊~m>wZ_'(.!l_#i=KFt(iu&9>kW3I{7I>ߝJڛ 𻖴d؝jӨu&?46D5$iѯ㙤
-WXi#=|G:c4]K6'3TVfx11z_5(kY铬ImoY$)Z{Zքnw._ZeM5t|4kv&4#KeMWҮ_5y7I>4kv&`PMeMWҮ_5y7I>4kv_˚IŬ&{5I&i(Eb˜fH@e Ɠ$m%IT:X Iz4K~Ќc c >ڌ$eIYI*O?0>͓DT\WDuQ ]a }q6T"~UpSJ0xQVJ K܆*lqvʻeq(b?TbkYKifcVC3(uh-RmViyS 5R0'I)-9,T٦P|FGd43xe ^ʞ^>n]>q*{F$RPs^$H5!ݾ>c[a݆^`FݺVO!Hm7#QQB[=: ܫBuF^{1Wv.s"^nm.Br,W܎(Ի[u;iG_יhMW|7-G_pp*۟?\ 7*ln|J⇥PuQ6_oYu`v2 SBV∛"ȮF0|˭U劐:U63%tpBڣ),[C8cKq-xqYIN. B
- TrFi*AVZjGڞW)yru{w"K f/y>EQ'"l#g4*٬lYAzy=ެdgMb5ݥ= \ L)smNR0o {n.[s2525+O2 "=QIo-+Fѳ57^7'KLmRN"GM[Nf`ajp"[^'DYձvoU؃FD~f>'!s>w~(L8p(OuQ#SO?z4U|MO6L]m}/ToD:•'[~.OWy-:߳FlX+ߔ ˸@nE:z,noWz[;ekopڒkqe*U0^\[ZPip uacTt =rVS< t#QK#5yӰ2MLSqoj]۳v}յ-?Sm-!cu<\J
+<< /Filter /FlateDecode /Length 4965 >>
+stream
+x=ˎ]9n{]v/J#QoPdewYudx^C=(Q::+B'=GHOQҕ/yO/.ܔ8}
+_ț(yRZR}sA핌"l:O4фOVӃ{ >I==UO/˧p{yc}<y3QDV@L憲'υ&a80Nrl.l+yΦ؛ho[YDߟ^ftX MO/ޢYpO*fLP/P2( <_=m9AL^U@f:#aw#7B] 7'r\ Ja216-R% 0SB<ݒD DeE'v~zXt8?M3s|6iB,2h
+]X`$/l"l1FBLӺu\T<-Y&aL-B Q;eU oЊ6o+aDC:רݢ0!䣑6hݾqޠ>u@82OthD/uEUrڲYpgFe!).P9M Lz:j9)4K@;Ы,f9u*>883W3^y4?z9lM.% ᤚ8
+p5DՋzw(@6]Z; nVINZx.8g@h7bΓ"a3 4ib%gI5XZ$
+)28-` M\  =0،d3QIcS!4L܁v{GUѡ.bmpZ!3zς#ix8dˉ@"unZ({ުJ iZp]SQ LOzUސoVU4&Zq1)-x&&]8|3dRT~ SԲ& >JƊ8a 7.lK)0h*UQtDo0c]RR%7l&IDJfJCKHW|>0+S-_n0):{FPƠI[ţ|xl "6M0w1kYG#뵙٘B0 a鞵k7S]mh6ںqssBCKkbC|+̐xC=Q>V)z\;,^ƟsQlqKF[u$':p{d󷮴e"!}F!k}e0O!c`&TՀ0edx,)&$: V:^Ҫ*!;7P>Ý Aa~<Vh_+^H?t:8eY3 >?\*Lɔ 3|.oqM*^:#lԥR ~
+ ϜۭIu7O|Z);E@#_}r8 _ng!FW;Xk%Yۭ@w?9r4V'y۽rȢ3|æyMx,3w>YėƜvإ}h.IdY_]ש? {,gChau9U5p홖gꛚ]#TN hSQji մD5iɯ㙦ӴKuwc<q'Kxb0cT5Q9*7q Lꢘb0q/Ce܂p%޿|h]'Ȩ!$I]\z_.>7B1gJ
+EkӢM"% ~5Uy8gUwM}ӴkpO&gju֋V[_0WӮ_V5y7MF>jz_
+)~_geZD,j
+D2#*uh-fS XHX$T,tMi+
+#@"=$kif
++8RpPdd"Ky]7#uϜ|Y it3EHoL-Q3o9v af&9O,FC.7Pk@ұnv)Ih=>աlSB ܎}w1Fn"옓ʍŽD1SzQ*̦w$6 lI='=]D ٓ!o #wpHsD[s@SyԆ,̫瞛c\=o|_ks ޚͧ3=3[Wg:Kj=y8^$<޲S[IWh 2Wrˉ,
+3NfğWC"oڬnvoi?2̼Mc
+0op|_ec| :ʨ|-)mxsua`CU_|ꍦ'>ؗڷ{"mII[ʓ-ߖ֑,߳}MvY6 5mJ,\%֭h~叩Ħp5lM-M[2qsZ\J
endstream
endobj
773 0 obj
@@ -3234,28 +3234,31 @@ endobj
<< /D [ 773 0 R /XYZ 79.37 734.627 null ] >>
endobj
772 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F67 389 0 R /F56 384 0 R /F19 379 0 R /F65 387 0 R /F66 388 0 R /F25 375 0 R /F16 382 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R /F72 438 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F66 389 0 R /F56 384 0 R /F19 379 0 R /F64 387 0 R /F65 388 0 R /F25 375 0 R /F16 382 0 R /F48 391 0 R /F50 392 0 R /F59 393 0 R /F71 438 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
782 0 obj
-<< /Filter /FlateDecode /Length 4201 >>
-stream
-xM$9> !q'MsC`E ÉJUW8*ql_IF^vyw(g.N yQ0Nh/F᜻|__o F uMCY)d0yAd6Ic_ӥ\O#pȈ<GH?7׌ʋ"_/Q2
-e߿R.
-.Woa,}/%,Y"<Hx
-x5ąQYEU
-Pxgq:FJAEYSh+B0#{f0{&\р"\ϻP# \hПK\>iyUK<t4"6geG z 偷/w#nЙyz" PlVϹNݜ9sZw3ILYUsϋkX*>
-¡
-&)z4]|᪍$|#lMjX''X n ~?WY
-kfKgbN H@056ӊzFAcc/s+浡N1U2'IWԆK
-|$qkp EY$OO&ʨ9D.gP[Vɸ ]vg99*q%&wJBofQڣ8Yf0IQ43K +Xх':--0Yܓ<Ynfin{v&MH9^|֘gNW'[wB!”1 c]eχ~S.4Q Z{^J[K^EޝnKJa^ 0CU1Z_d{J[m~?6)\} ]zi+#:f+evAjX(7ؚ^,oEʹ.tnϧ1IU*'}MiĐ f.Suvy1Ick:'-;b?6`7\DN!"p$%5&O[wByrr`:4wYSyy԰82LBy祧BwA4D~;rjjpVDiJV,%/OV}>ISlefKsfYyKe1
-4o[A"RS0qr n$t~ D{R7^⍲'W(x#ӛy5oiMlM[joD,kfTʒ&f̈́QO$xd0q;c4[ kDcVqs>Q}O
-&+e>q3fj&<sjߘq:Ly]Vh"g<Є{b-ggst<Gu]0ey6Uۑ)cejrp`9- .d@v·gg,QnH!-X"R/뻣rB(cqwd3$[|GBu)|4K(mD0|äbn]RHpC5ͷ<
-u#_-v;N}Eg~[c7O}Gjoolv[qKwwGFRQ=u)94/T}>A3TTn]PTmsh.Zj=dsŊ3!^/-svXa/\JG ?XJa7XY
-x)<
-/JRz=A2W%noD :a
-Y[B$k5&ʮc͏ܹlT|A8Ϻbgviصb JS'']!)5yO.y߷sy1=1!{+Zmt iExlhEoL"i =G%v,s;+*ݎUVx ՆK}<^L7y6Hi7v<4G7Hɢ^ ʗ~./m36k:._}佅_pBpSˇS!c|Msm 8P6^$#JvqDiy~$ݣq{_{@L6q}{vBQWo9b;Kg˯qmxǭiC` -Tj7I-Hc|c |q6ĪJaPi7uÎgvj,ȣ}o~Z+:cw
-y}/XD tE~D;9\.d_+Mw}&ۋ ʤg/ആ0UxB Y(<Jnt AW`E_Iֿ,k}қ^ӓYyJJSWY׀ L|IgNM fb9U*~\Zm2KSXJmxC-x]T\ T{DtE撨ԊEo;Y ikO ii?͒.Tx*!Ijmin
-hMҹ{wb@R0sZm@f^MN?-ғo`(.=9MM7Jp)k
+<< /Filter /FlateDecode /Length 4197 >>
+stream
+xM$9> !q'msC`E ÉJUWϾpxU؎"/~ï`/QD\.`N_9wnA^ ͗e1^ w?|9 ^}ˇϗgD r 8D<!#
+W
+#72\_QYʯe=J@F?*hiFEgUbWPGt*B Q +e O(4
+7VpEr?BJǓ.sOB.q UO
+l>/h?wш ڜ/dm&pލ(Ag鉠w3B[>n:&wsN^@ li$1VDgVk>/aW(D*t t 6V(7ᯫahtc5jj\ kd5*.Q s#A8e/ }L+~iŏ ϑ׆:Q<WlJ$]QS/ (2Mշ4
+iClJ>pWFK"48Hg^/ͪDEKKhdRb uLmUN*o.]O*] $N7n5=
+|$ *|xޭJfi^Edm'J& P1Pdo` 涘O ht
+}{B, K%IW)<I@
+Op(X
+-lf%dʮEs$Q;B?=NP|qL{t3XiOpc|Te1^M~ӂ1:_a=jeK q2bfDңVV-y*ѼLӫ$'kEU, Va
+VYf>Z52Gb 6^OS3$(='Q_
+eH+=kg7n@irڄ㵯1g ytu9x("Lc >fU|x7N?Nc`E%eT_)KXP(浺3Tc>q٩ulKg v5܁O71xW>zMG
+3tNV"1=@ϑ-Pnj5Xhi?/]9Ocvr<TN2d7iUӈ! A\X#Y#\c!7x5ktN[vtmlGo4lCDe39)LIJjjMM14tWuh7-a+pdԅ"KO7F3hΉvଈܕYJ^}na#z˶FL󠻗 jˈc>h,ηZ(SEEB`~DIn*
+֥n$e7OPFH7~5oiMlM[joD,kfTʒ&f̈́QO$xd0q;c4[ kDcVqs>QH
+&+e>q3fj&<sjߘq:Ly]Vh"g<Є{b-ggst<Gu]0ey6Uۑ)ce#՞n8rZ@\ɊoϦX㫣ݎBJ[3;t#7,U]ۓEl^XwG?tnQr[g-HR[RhחPچ$`6TIܺp joo=*yB[NaG9Ƀ?[Z%<w,
+y}/XD tU*mN׻ <.׽J]b2b 8!!</tU
+8ְp̒R;p깼P ?dյ0WB2^3eQ$*"AێwVB#$fkeZO JHZeZb0Bt.af~k;=̜cf֠x;WOd[&JxϮFN`oS\[
+h p+Ǟ0*D<zxZej)E
+_Q6䈍(KƤĞQ(2|)T6>NDc=J$1\_]4
+mBipj{fWemKجU,ݴso'ˣI,Ac76=:yvi9-EW~s8w6zyXNF$?ghRա_mu^կ`W8l{=;_g0vm(+# nvcu|&&9_S*iJww"yI'dd77Zz<_xtnQ6ɻḦۻݩMoR[߽ct4$_"Yn~VSͪ}wK1S5 d{~W^bZX_b-D |wB='fb0+Ŝ9,-ʤU}Qru@!j_#^dH'+Zv6e)U|yG`!ZsY
endstream
endobj
781 0 obj
@@ -3286,30 +3289,23 @@ endobj
<< /D [ 781 0 R /XYZ 79.37 129.3 null ] >>
endobj
780 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F25 375 0 R /F19 379 0 R /F16 382 0 R /F15 381 0 R /F56 384 0 R /F67 389 0 R /F55 383 0 R /F69 402 0 R /F57 385 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F25 375 0 R /F19 379 0 R /F16 382 0 R /F15 381 0 R /F56 384 0 R /F66 389 0 R /F55 383 0 R /F68 402 0 R /F57 385 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
789 0 obj
-<< /Filter /FlateDecode /Length 6928 >>
-stream
-x]KWe
-+J/(JкTļO.ᯱȰcYC?q1j.ԓ}Qkʟ~=`(aL(x;1xEggD 9oClq '$]] cKS=0f#%05D'X[aU+ea'g|?C?#`9]i !{!@j|ʦ_u[x)eJxRK=銷wކvhBl7zϽ7#.Ҿe=#cKbE e]3B%vdBDM$+L|a;)]zKy&i -LlvtxB} ƤR@8W{uǻ|}mvڢZTk*A΍v`fDe~^B3G|~@?G[G G Y!!_`-ŮEҵÃwlUkP?•ޒw,
-ա~x_$/ÎK5|=𗨟͒We1ٖFĘgk];y+#bJgύ<S&:VP?0#L>P"t}\N9_1q f 㣪JsC3_"+N?s8+*Oҕ0T,1Pꢍ(Rd0})# J]ge'Hg ʢ# oGsZ S($nYTf "zϞ>`8nX8QDba]EPc']+(=`mĮ/IzKF 
-F=Ċ-+ ؎̗6D+Ķ$&V
-b;V2b?}WϿ/Y"uҏKU!T aURY<>Mԃ)WFRvJ^+3zÓXID84bJMjVl;^]83TnÎZ6FPX^.YVj_{OU+b^Sl<G
-DUJEj: X%0q3VPαrZjZ^b%W=iS;߫:j骾VqR+>.M+too}Qo z0'+8Me!Y Rz,SUmƒ!t*
->BW
-EF˅`_Eї";5caڱ3 Ra͖YHm-BQT{rv<՞6E )- ذbЍ>B*ŒYMrBR
-W"AəRC1Y$E;(xw2]EQ;C`O #=Y*ފuwLk;M%,%](̺fkbuZ[
-J.K ڰmjĶ]amuPQǡarB>S㎈zʳ˸BD=%,4#UGD=ixzE4-^%^izJ:b٣PU*+kgV"aJؤf"<AlJBlb c%#6%#ЬDO۲X)XɈV4= 
-A/T=G yZN<(ǀ{j`z*ne`)4-a^.wizՊ{g<=aB܄,%L_OO1.5/z1Ioy,WK1j)Ao{-AFv: wRj3o܆<K`h\-GXxm<*/g},W}Ḧy18zyJbbe:t暑.9~ϔ%mo|/ǃe 2M
-tC}hG6ԣDQªn%OQ%ϵ'7ԣ'xrώ(:џ1#&x͎ŘXR C*AߨxOT~ꌊ<a*<.I:c#irESI_Ԟt-kH\[I9"WUjޢ|yj4,*?J4[0c @ygK7Sd;,ӕIslҐYQeL>jb(U2XJ#]-͍[qWx: UfbzQxEa29(e9ZV9EǤLIH)؅"DM,1:ZVdJs(( q׫ i4L)XdӃi ]R競W4_};LI~S°̆9.VT go%ojFlm} :Tp+-LBX§Sxz[񥛍#~g=YQkc<vǶfC7$-_מф)SUJaqKPGo̺/y[ufW&`-`Eb?3֗\xXs5'JW=3ΫX~5'JW=7*L%,eJW`޹=r00ve'] ',zM t*~GS~pvm
-s0Ď]pesb=CC?Q*/] ٛ0HggVcܴdĤ&\"V'mYIMvdfdĔ6+Ķ$&V
-b;V2b?I6saMVk.==Ͱ 9&G-U?0b7 1X`%nB`9c3ߤG-[*7<baeJv_v9T98*7n[5σEnpj{1ZrZsrq995 [`E`E 'wc
-[y<I"OQ=l`zQk)6dddX` c~twhrNgXsZې +~ P
-d&;e~5<]fƁF;+Ɖpie.p ĩਲ_`@fL= ͥA•JZ"Ѝ%s"X.^d^'BbJ7k PTfj(ُ?y&(FW9N{>K|-_RAOk19_4o2*7:\0Ej}`'5xïm!jklEj>F`I\kz .seM*& n\.ҕ|*<eI{*&H$kҕzT(;bر4(;b9&egTA:J/ҏ #V=*&ʞS1S$lQ11O- (|n|FY2١bhcFX+\ܦYat7$/1 X e%!6R۱0r"<AlJBlb c%#[Q1MAq׸A61-̈d u151Bl w1s\c 2j#db\cbKcF-{|- 21Z%\.12of%ƐdhHɌ|GCUN&6MNfrkj}LKuNǠv̼7$}|ڟ~ d
-*S$R%DS2
-<הBB@M1E?DŲ6R >:ݞsIa>i*dX7sdweO#9g놨Fͷg;}<:JL]::Ɖ3N tf}/W= #_Yց3LђSPaz}vǗbj֘'J1z[U2zҧ?q/D`9i7cq,}Glttd/O'`⮼ŰrIaVQ-(AV$ /)!ec(şQȴz:h* ؒWڝV^YwZ!;^%.[xFhf"iPI]2K}Шp޻Nvcx9Ĵ󎱩^@A0_RH̥w]#̪ދŇi-~~ZBٵq
-~Xmnrփd5fJA<r$u@ƍ(/?K+,zNF$==ch Y?j*\ kPE'v2G~2ra+A*ff`#f==KUo܄3˔?zҿ Hp\ 8D[}<3Khƣ?xCst|aD= ;/'/izn^:EmɝԤ7;H)Jjyp'=͞!==:uh-Z^wm;zt*iS Iݿz-L57|p~T_M3xfm}8/x=Je=aOXD `u figE.!,%ނw};v0U$YhM%"cs,.:h=ƲYs:Mo>F䝉,,caR:v此o*Wˏ܋/.)10\2O-}S< |N > bc9-߇Yx$ ;=ϊvEH
+<< /Filter /FlateDecode /Length 6926 >>
+stream
+x]KWe
++J/(JкTļO.ᯱȰcYC?q1j.ԓ}Qkʟ~=`(aL(x;1xEggD 9oClq '$]] cKS=0f#%05D'X[aU+ea'g|)JK!>/1R ;P6cb;O)VZģz_MW}_F6CbCe{qw-y\+z؀L.*>ؑ ?60 7dC[t-ކ/䙤6D;\J2%*څIf I kL;^.u_Dp#|N[TBj-ZeT13йlL蠌pKhho'DCy{~ppĀA>!~ 6ޒ^(:^OZ4-];<h|Ͷ\c \-QxGYxK QEvO^PQhtmD<lW_[9ٖFĘgydjJF잝UV칑S?d,5҄Bax#r-͉
+b;V2b3_2b~ ͊MĊ-+ ؎Xo_LXAw 3D4%WP+.l1}e 1Z-~4g܃ zyȰQUG%/Yu敪h@9\U0*=^ޥ^e[R*⩡<WԒr8/r7< ü0|/1|%X%[^Smռ$BKr橝9j|W͸hzʯ{(~SMxzR¤akͱ[֜(zC7~Xxady
+ K6AXw iMQ6A8j٬:H5~pI@D%_2/Av*=89=&=8j٢PF)T;8)9}r%PIUo1ܶjEnpj{1Zrsrq999 K`E`E 'wc
+=_R%~-_RAOkqs!idU] aeo`uҹ Ej}`'R`5xïm!jklEj>F`I\kJԅ G&ҵ{ .dҕ&|*<eI{*&H$kҕzT(;bرmTQvFcM'Ψ-*&tJ_
+JEF{TL=bHآbb%[P܂Lfi:d ƆA\+\ܦYat7$/1 X e%!6R۱0r"<AlJBlb c%#[Q1MAq׸A61-̈d u151Bl w1s\cdԲGhĖnjZ)Z.2c;%db2K\bdb;ܕCn"%36MJ&F%3Ll蛜̨&'/ZAHy6oH:)?FU4z5HKJ;d.
+\5r%iR'B~kv:E}<hdBRr>x嵯Iike^|wx'a"XմxO@;h+?$L1jR~gjִOU~r*9ۉQ=fl`nL8ۖo; `
++[ +`n,݂2N
+G*^$? _xI LD*(Xq<DAS<f0Ė4bj]|
+9Z,~(vbFАf]C%uEG??
+g>,#pC>^C"w{":ۍ;Ʀg{>|K!KG.U˽\Ӟ[lxkO[s1σYS\zSIaS{]wZ&#;Dvi{-^}5[(hGTގ(N(/M^:D{¡^) L-IQN2e_p
+7SMǃ:87 ^㠃9/d_oðѣvs^E=M/]͋Pg? Z^ԖM|RGQ%hjyp'=͚!==:uh-Z^wm;zt*iS Iݿz-L5~7|p~T_ҦIY[-h? :^kRifa5.dVV<R-vH1&T"26HECM4'Xv0J}QRgBFd@;֩IGuh 5oerxɽ(=]N1\җyobiĠ}*6>.} a'INr/WRG
endstream
endobj
788 0 obj
@@ -3325,10 +3321,10 @@ endobj
<< /D [ 788 0 R /XYZ 78.37 808.885 null ] >>
endobj
787 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F25 375 0 R /F19 379 0 R /F16 382 0 R /F67 389 0 R /F38 369 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F25 375 0 R /F19 379 0 R /F16 382 0 R /F66 389 0 R /F38 369 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
796 0 obj
-<< /Filter /FlateDecode /Length 5734 >>
+<< /Filter /FlateDecode /Length 5733 >>
stream
x]K$7rϯȣFQ|?jw綻CwK#H&dx
ZAhMU&" "#iohoZqk| taqDH%wJ%?
@@ -3346,12 +3342,8 @@ NnQN'7819}>λ><1؝}lf/l`NU
$3bZt0m RleNk^o[6^_L7.e)Dk5u5!ķ)>Ĩ!Gʟq܏yǃ`L)B)>Q)}Ѕ
MŨZZ.o֧հˀ`ڣM;%h
^W%Rz}b^Zœ %?7%r?K׋e[$v†:\-2F뗛
-o15
- 5RU9pŗd%*hL"J="hSEyF>~2ЖںX)@lͯ䮋<AFՊ:*ː9Ӄƶw`R?Ȕ
-yq-#
-&o=oDR@OubFP.<쮴7OX bIP
-메>+?"ʳΣU} c%nWkײzkWe9Dtź^]vOp,5T#z;je W80`bl<ls T@%91P9ʶC 4J@Lmg1k UugmUތJ"e]r6W W4Zi^*Nie5.[ bizq(Y TgAؠp?UT<s;ʳ;!,E+k[Jp]k_ɔQr! U_K׿XxS0j "«Ffs?ypQQLO|[| lE
-~xUz<UzPlWAW  PcEzUPVHiK6 3ީx;q!Y?٧n,ގcJ
+o15
+&d=fzlr~Hsb|w6lDUumuf?#ԬfuDZ/\Iߍnkbf?[ZК24: BJRV*
endstream
endobj
795 0 obj
@@ -3373,7 +3365,7 @@ endobj
<< /D [ 795 0 R /XYZ 79.37 188.613 null ] >>
endobj
794 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F38 369 0 R /F19 379 0 R /F17 380 0 R /F22 404 0 R /F16 382 0 R /F20 376 0 R /F23 646 0 R /F69 402 0 R /F55 383 0 R /F67 389 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F38 369 0 R /F19 379 0 R /F17 380 0 R /F22 404 0 R /F16 382 0 R /F20 376 0 R /F23 646 0 R /F68 402 0 R /F55 383 0 R /F66 389 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
802 0 obj
<< /Filter /FlateDecode /Length 6278 >>
@@ -3390,25 +3382,26 @@ b 0`$HlZ;ZÞ㌩`N$(J%>X
9T-I1S#%2H%Q酋FëY$F`щ*9=N8юDkQKw*K]͡@"!+ୱMxC,iTRaUd+Z UC
3N)Be :54!x8$.eb-Eh1̀W2ʍJBD,`T:e_
4PQe&W3Q}LTr/*3 :3ItA,퀩
-*3#^i2f, ;WpEa.kBu>̥`HA<S3*p z k:yYk⵬k~Q+'7 J3 :pءx r1[k\oJT6qx!"3"6R_-@S77j-AUI+-
-bPxO]$у2>NVrؓ7ڳv m<a6'H%yTRTf*Fa$v9jdЙq<&{[FD(?b\q j8d]} |NXaᑫ^FwJ+]YRB:(٩a Vf>2Fw#^KG˭Bq{ƞm\5^@^M=ʰ>v(qFgiK`FAY#PtDJdx,YGA2qUag<lh#wT< Q}8cj{#2NOxN7 KՆNeU)$L=FI{x| ><Uv^]ޅۨG˶Vx^iWFa`y?Rs{Uu-~xΣqˣ\e;+~eYnq3Y<oj-kM-zaoSƙƚQ "©srg琘eEaA:y-aWќql~ĮA׸1l
-, a|\-P;}ĮW{h`=R)1~Į6
-;ic
-H}V8i
-=mL)P3
-Q~,q=^˿h$&]9ߕ
-QGM}ǎfLu
-f^ь) Z+͘u@=hM)B|t!O˿GG동 Gtzwh\g
-=85pgǠ"x"5Ǡ"xC"} Q1>h==C~~cCA}cИ2k $` P1*ݷ¹/,3SjGKGdx0" .~4sJ„p/%bj{)=u*!<3
-Y#
->JqǷ Z̔0燏 c$=`΀]p)A]4 <"fMΈO|;ӕ0qS0Ћ+ad 3x>a Aah?[{=_0DOXoB8̒ t#Ka|\PGFi= DM -r#xuzbEaJw>U{Ͼ;}bl]1o_3&~+1$Q+L+56F=k*wkЃwkŏT@opk0kdcٞ@\ JV*A9fR˚Im'VjL<ZAԂKDɕz)ߢLyn?`^2j w[;G:f~QK1p ?p,zs MlOc4JEӛ÷T:µ!b.]eV \X}ln"|
-1jo+\WyXY_0'сR x^M;f
-J>c~3)%Ж 0WKq8J<Ӑ3-%
-g-s(y*< *f@MU(/2dlz.>Yfo1؊5@@OܾbOvzKC>$n?f4T!jkzhٺWbyݳ{ByŜ
-x-*\يC_?&[:~h+`{y̭-֎}cDύF1:n74ڧJjozjё(y,}MCms(0jj{a|{Jp<qP_f@Iɜ{E5t!  (RfRdrkSeJ| It˛f{`F(WtՁޟI4gWYS@>xwCɆ-ZV&IGㄚW|Й{aOs9dyL/;% q-tS!y1Q?khpنA6a4q|?9gN{JjOԿݶoݿO$QwsvYxWr^=ut)@jޱ#Js:ı7@cDj@rQQt},
->X%ؘET}FιP""S=7X[q呯+$;1Ǚ<=Եy/{e9#vKQuko #`$Կq#0S B ¬ Y!@0G0ft&#!4uRAOEr|qOa-
-|=o]^-ÐSf9јvPQہ_Ο1~u,|8j 7RjFw#SMT WQN3<,ܸt;95X_0|]k<AyZ>7uapVA DFB߃'7p;C*nV̫1$7)Oδ
-nu;~vO, 8u@ZV:3gi B7Rٳٛ*~yC*HЭ]=ߔ0{{3&~l?o-a0o('Zj1sXEr8&~.J~fHHot?3&~nl3?)K65,L 
+*3#^i2f, ;WpEa.kBu>̥`HA<S3*p z k:yYk⵬k~Q+'7 J3 :pءx r1[k\oJT6qx!"3"6R_-@S77j-AUI+-
+HV:u
+s᭎K"xktӶ*iÉ?:>|Rol4X'_uQxa/`=18ITpÙn"pShp34
+Чͼp34~4NM p34~mS5UDq6Ё5h@A@}[_8Ɓz|4uD]n ;nZtW7nZvLi5 p{x@?5Ёp > zW/1ގ) C~_MQ"Rt
+eEX(H[a
+{Ow@x]m)Fy#\2 C]SRW`9
+%aB^
+SLu5{Ľ:L,RK_
+OlTH)9Prɹha/&>*ɭhOyU"8)#cH+erT2 i~1RP8C{ȅfĔ{[馦0r]l z+|jLa|X?*ʗ"DcE}n
+H9Qk=0;|g_G}M>1}͘}߷?yZ~vk |͘pk}asqM55A[5GFS_s * 7
+85
+5w1lTQRL.Sy%a{R+ O3eͤ6ԓڇ~R+5DRu]jA å JwD~߁oKH<0/}E໭#Q3foo(¥\8
+Y]9&᱿T^w *Z1BSY
+ۇdl{kMRٮ2@%#NIa.ؾJs7H_>Uul.+<, C,B~ / FUcB^H<cb/ HJ%1?DhKf+Oe8j%goiOd泖Po wK<gr3~*s26H=eki,f|sl?_V 'ܿPn_'xEF|KlYX3T55x=}Cpl^+1<=@!sǼbNH<lE-?
+ingZpxxI]AG;
+[Pο|[ -|zƉT♉4 XYM|?!$ήo콽?Bswp670q7hOL~9^" _9?Bgk%}?3$}ng~f񿁟?B7Oݙٔ%AskȚ xjzaP…;
+ur&MH(]kϤezm6H6RͭN e6%õW5єͿu_(|>6^
+nG[ b]peirD$ʼ%VxBk|@͘ox ZϿ}+<b8h0NE';
+ay8c(]QW %e<5T W8(Pj'[>!n
+o8o?}_oyQqT,iE!G,uf/~^6jF%3qZ>X1.uv$cV2 Q>:-2ϓ/xeVL U"i"Mޥ|,03xCb?Cm
endstream
endobj
801 0 obj
@@ -3427,30 +3420,30 @@ endobj
<< /D [ 801 0 R /XYZ 79.37 249.733 null ] >>
endobj
800 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F76 804 0 R /F55 383 0 R /F66 388 0 R /F56 384 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F69 402 0 R /F74 478 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F76 804 0 R /F55 383 0 R /F65 388 0 R /F56 384 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F68 402 0 R /F74 478 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
809 0 obj
<< /Filter /FlateDecode /Length 3561 >>
stream
-xˎ7>_Q?Њ``-)a(QGWLtH⛒re˧9~}٧EYaן E-! ࢰA-_-?<J鴔޽FL"Vo
+xˎ7>_Q?Њ``-)a(QGWLtH⛒re˧9~}EYaן E-! ࢰA-_-?<J鴔޽FL"Vo
(IC6JipMO@"wG
qe2Z&ё[H^{0턑OzN
-'YWŋLt|&JG{z=IZx?lp0f `IR
-V&lIKx
-, b>tǐN ̡7G
-_*M(ngaiŝ+XcL[nZI'iڕH+=-<.XXhܻ =#Kgr+-)%NXޱSNډxuz
-Ḱ,PEu eECEX h^4B?΋)ԕI!WS`
-=G58J ׈wkC}+l;_!<ATߘlfȓL pRu>x٬>`n1N8ϬԍT%T5RR<<="3Rhէ&&o1j`|U2 {,:A(ռ-ZJ%d3esM;X2mj炚"J*^k'{1`ƀZFK}wJHP@[Z=fsxӁ<gI3{,jfm,j o(a*OzYǡa^dw<aX!o+kӬY iBMulPC]J8T=_O #lҴW5o]Ƀi!I9$ֆJڭuhH&<NXٙT iD# ֬#U8t/2n%$&La.AUYL]<QS=#9Dvy:UfI-87\gkibٸlJz.S_Yh؍%X&Rn\#ee6!6/eϹ(r)jh)aTFnc1W6 H ްb >Qeɝ\o*hLM b/yfFOV'qv޶t.aK"݊9Vcr R3! +WU̺fq n(c؎V Xlf|l/Xc+[UMu;O1$H\k9Ե" z
-.{ǷUؽ[m[?&%19fV vg)"B$qk.}i+ɇI8f,@Oq&>ż-˴Jx򹣊sYnjr8S(Da$t: Ԫ$tfu3N3uZw<99nyi
-,=ZfyM
-wJ>[kJd!c=4ᰴC{PŃűV".`E]2o$VkR&mP\3{sDs>~8?ٛosSCEZ =CI
-iʵg-
-MfWsYmo7"_sr|`R*S&uJb׵'=!"4ˡFӲ0|Y`i
- "Op[-o>g}OB`pxso,jv ZDٖ4J$36m2|)𥽰U-7U*1o
-|)ݔ6ӵCXKzro~ht莙
-|h}`yȫռhXh1pzqAT=E##w H[?9&g޻$7Guz10vff @?r^/EӨbQӝc41O^peݙ(N۴ `c?
-Ӽ؃K_٧X$; ӧӥ;Ck-T/3т/UD<l 5 !IEYvs|&\_xeMAտT}5 miSz4h(V_Am{j@p5MstΝdM}-Oi]|P,w%xɤ*:ΌjL~Rǯ,<7Tvo
-s^% %nF#8A߬\TVRVH h,Y$uk0P"_n5{4@/\-oZg"@cZk3LF\gERGe$QW^PzsR=bu*:̃2\.2_h=`M~KDF0 YuЌPA&zYju_B<u?I4hWKC(X":&w -|)U/*sh }[+KBuB׫(ΫҜ:R;_ȶ˥5Kgs ֏/H=}L74huAa_Ia"
+'YWŋLt|&JG{4c]Ijæ G c
+6Ɛ5UL믪셲!7 Vbk{*Δϙ6dK`nWT j|(q$n t\x\{!ueƀJLj>Ttk. !)n+C#}CQniqOO(qz'b)tlj)#Js3v@~r<AdO{ib^MVf%^
+5ֱA u){'FSDO| >uڃ H^A׼fw&9Hd&X*k֡"8{룣zcegfRn,4F8hz0X"Wr2н?˸CH
+3͆ T d2vefkDiNHj$漷zs,W՚2Br$mpQeJ)PN}ea7~`֛$kHq-\ؼ=z΢駨YpQmT_ݎ;2, x~..k(F%w&sR$352=gZ䣃yӹ`-t+m [u˩&hHTs86\VٚV0뺇G5Cc;Z&6c 3³c \@>oI6W5iت <IƐܮ{#rPH3p)ܷ[;Vnbo 6CڒИ3gl+3XC܈CqܔZ!MԸ5I>봕C$]3UCQbޖeZ%]QŹ7`T9V{RܰY:OjU:׺ZI;Rg jyduQb4+^@iMjq"pPd%|s
+u;)47y!`;sQ:WQ
+"f[{![|_2e5w poR8<?yu҉0lpReD
+ǭkZ^n .M͝}
+fo-3ռ]T&fD5E%~O pXΡ?@ul+X@{}"N7]g5[H6n(Pkؽ9RKK}?K7N"qo-q޿^$_ciZa VA3 F&c ~sT99>Gk0)
+PM: %ړRaPiYOMAHy,hO|i'IfO-ݖ7tFųg!08a75ddl} z~6QXpg^X*y*[q7nlWj!N%tC?4artL>>0lUxj^l{OO4t j88R*M쏞p㢑ʼnS$X̃3]~txgopq 9I"iTVFs(1'd/82
+LCqmZJ^aF؃i^aAV׀S{ ,fߡIݙhA쪉 GE[{Cv,M9{>N B/첦_*f>) f=~4vDa6=5QC9Q:NV>rZݧ4M.Hv|(oodRc`gF|N 5]v p)W҃ *
+c];;"Nh8V<!+Y7 qKSRC$(~ZZz?P }?0x"%%iXth8 _EKV13[ 0zDWҷ {Ӓ1"J*iTI2YpW2I2l5k8t</2X4Cg%Cdn=)')tQ<^l d97VQ^ vsoOG M`+Z+{
+Jek4tt|κ
+5ЉʍJn?mkta= .7@WUOt s
+Bo")DƲ}W(s/uO( 9)
+ezMLfD./E&%"O#լxhFN ( C,?!KGr}+楡NA,{;IWԆ~]DC94YEn-ԇߥy!:!U[UiNK≯mdۃWRݚ%ij9GTa$ޞ`Vr
+'
endstream
endobj
808 0 obj
@@ -3469,84 +3462,67 @@ endobj
<< /D [ 808 0 R /XYZ 79.37 771.024 null ] >>
endobj
807 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F56 384 0 R /F57 385 0 R /F65 387 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F56 384 0 R /F57 385 0 R /F64 387 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
817 0 obj
-<< /Filter /FlateDecode /Length 12534 >>
+<< /Filter /FlateDecode /Length 12532 >>
stream
-x}[%z`t 0nkZ%`4X-.C6`=w#dsԌ'T}d{/O߹otT˟?RKHտ޹+
+x}[%z`t 0nkZ%`4X-.C6`=w#dsԌ'T}d{/O߹otT˟?RKHտ޹+
͹ҫsh
--_%vaMA)G`5Ns?zξ[X' T?ߞ,|>BJ#sN2_eSC-@SOF|;z`Hoez;j<2Rhtrgw_J G}^%8|c0Q2>ڌf$uf} QM ǜ2So?꾧.WD'$G)/܂\Յ/z?0ѯ63埯C#u1Bj̤'DZH9G͌a䧬]4qԪ̾嫬k`0O5ݍǶ3"F^$KIf=ѣ1 ч1ޜg뵀5+H활AkvkD+zx{{sa# f_֓qVkp/#Y<+]M, 4CFalPA$l 4_Z uY<\nͦ0\<لkXy^rC 髍`ۣxHDbkAK\tE' N:z Y%,<D%R:yruGµ[[l*T *e'RW.ߋv.@^ Ќ _)#1vipձ^uN^I5{罧g
-<i y`-gBfj-+L\#c Wf0`&w H^Wpbض_nmUVǕ|@l>\WGD摭a#7K딟v?jC~Y~:4xpy~ vWfYa^t,_ޛ7>Лύg[ _O*v+m/ =v5Ny 1@Y4$^6j8j"X&6S@];"H%= ֧P$#X$M㟍xK,ѿ__ zIk4vX!ݏ/z#O툥?(Ÿ?
-Ƨ>@
-*i@"<oǝ* o<9>sEw_CށDԧM::vǧ;ZOgۊ|#emIEz=Z;zܚ'irJoGimէSmrν
-Ӓhz٠nMO7$⸘>8>6[ PʳC?2l'm!<; 5Cb:*O&Z?hXG im{2ѻOHtEd3%f^=}<5MDz4$;Ğo)Aus#MuNo}յK9El!S[1N/\<;EK9 KeV'm*x#>[~M7/ZW ?IM5ezK~"Q[I>VVZ}/g3BkZk,>[m"v1Qc֮@1r(CN^&P51V\6NhI"Hm"Kb|9Z)XDrhmJDB\W{{>nctFRe6Za9JfatF*QOvkU%%*-SNn(&V,5f;1MYa(Lդ[QqL6`*ͅJh oOŭQ]uc\a#D
-M,ͳR?X-Al*5CE[L{b
-#`5lRi3A4X1
-R5 .k\Bd]0r*ۣSr;|FiSM
-9ohMxUۄꚘ|9ղ|T8В\PO~TXob`R@ivК+6m@s] mWl4*9G*=ef":!"TvqS5CD[ґ}qmI G ź`kT(
-OadKRq&~O40
-NcVWU{aʂ?(tDmQ8a%<SPZb%\nBbw  QC],38QwwΝDd=zmv2nddOU!kfRfFd
-f
-r)3sٸWA_:lh͎
-ΰU1 mb9bE2xFE9
-N{*7Pmh%AfF| ÚS$(A',7*cJqƐԗ1YA)r&4vsct,'$ ^Nhk^Afa~УI~f븧Pz@dp4htN[hL
-F1+7Wm[iwЉW\Oh&U@ h-4wj׻LFFAhfPc/ Zqas씕-DIF< OtAБ+^[2qGKi)D("Hcz'g3+S@08H!`
-+s}QEXRD9!4 -xH$Ciܩ桀0DOQ6vx*$* |-r@rMMwj
-AఏT"dq4T0T,ܧ&j"=yef saP!(+n` CG|$h᝝S6x001R
-MU)B!va;uxSQmN蝼%A
-h؏Hw p֯9n(ζ
-
-K%
-Vrc,qDr'+|cf(
-A@U02| x"VVH d[N' ֆPbFz'w94S 5EZ ;8iEp+6"(N1UF1=&Df-}/F]+eUPPm{B<z|_;F)$,gJ́ /c`I5
-&©ĨUqsS%Mdj5 _ƃTz>G?ǗP> Aı:wj y!sLF ӣEkxd4BtfVr
-נ%GVbϳ`N'A \4,FPM!zPQ"
-uGih12I,+w z;9N9 ej;-Tl@3sqK\$5"5C_H |cKF
-
-aT ߓ$MGVV=khz"~/Bi9+8ltC$
-d
-e\ɪ@dNVa^68`CmSz":M
-AAQ
-5u:OJH[ytY,~< DVD{nX:,ǓjW >i!TNce{ 7XI \
- 7T
-m7ӘDL&|<@ &NhH,iΆQy: @g4O
-Aتeתf:І3%hN F!O G3j$(Zh\-p WnfT={΄AI/.Ej+-*-F堆ae`Tœuغ8jE% r]On4]ŽdT|8Bn*]tA~i0d|ZqSE\:Ynhg:^+Ǹ;
-w,A(Tt4hn]Q%7-wf5}ıF!]韕 -Z8c1iJ8h1X4XʕV} d3Q gӠ쒛 T)Z%B (G^,
-Vrc",vzr4 xI@(<_rh7*~fGQ]uPg_0D@w}1D3 xPPI[C<9uQg j4S<.əZABfw}Twt쵂wۆ3;^+U5<[MfT!OKnĿ)ALmhԌŤ!˹G9`^,jA>_!9h3&GQ gӠŬ͍g8vVGi(3 |7Վt' [DOF>س#/;ML_d3
-bd]nO1`н&Qq6i%oܭ1iJ6{| <vWU<YIaKUոɓqS5҈L>|'iÒ1VAh7$'ejK>i Q))*CݺcR:KDmXIM
-(m3IRXR3|5nӤnNAF<٘4%]<9,ՆX)-SCeIT*4I؍]$@=fݼk8&߮,1yB2 QI}i;`5`&O
-kdr&@LSPQ}%S6&M hG0X%/S]yޏoxmL3eQ) 0MFPus1͔EI_n~~Ogp="NJì&N-a*J_Jo({SWN?Ahi[^ԭj>D#A0rK~ xiA0lƎCY(oow ]p8.SG7:E)~`\"\ߍ?pU&BO]&ϑ.MIj"Gǟ\{)b !!d|{if~-H \w~<?^lKSl#L/mۻwDL!|OwDl!|X?~r_?|_?|_?|_?+HSB-,x/v8^p!Sco)Ox׈ajʠaM
-=yIA۞6TcP~͒b⺨#'5t` XW?<{{H0 $ f: ]0qL=Xh 2_D Ug5E f*8NАOhHĨw!CC?f RVyFdO`Ryҋ*w3S= eymRGf&AT6񁓔N$qނ
-3H^2ަܨeUfWs:T!EVH՚H]7+8#mP ( KxyOpfytdc$x!ak 
-kX1$vD#`6mC+eU'N*Tjev4
-9@eN+kԕh
-f?+8ڶh|dbҀ=E¡΍# |B[
-k]e!ӘMaQi1έЛ֛0ةqTQk<G^ R1?%8a  E4?a
-*벫Fņin-hF>a$b\0a0!7Ur
-Tdc~
-(5]3 QwW_oJM"0e! =74aO,zz5 L 1^[[YoUǐmXl2"<3SQs*K|!ra_F<tj _GG:${j-
-$~Q5Z)
-M((QS"G
-5z,L;~gC;aDGT K
-z~UfUa|4{zyl4/}iCnDLtIVi+xaۗVvv|ԝGzc#6d_UEn(`L*M4ҙb⼨cWH;\ Q/F3[GK}p47v Px$)pCjӊkU b
-ar /{=pLF$%!PcǒF,%`zMq0'(]'PXA$EFّ`E#a=EBdwUGZތYA,r3vV[ d!CqB4%BuP
-⛈=$@dNĂךBn2NwFjF NJbF(
-l2^j DF-c zV Ze䝼%?l!* AcG~VkǢJ(^TCmT*S8.pAڪP»gD@d0QlS`
-vA+8Pu[431Ϗ2NySw(񱲈e nxпRunpjӨįqD,uF<.MV%4Aa6cD"Ƥay`6 rPwQU@0<7D!vմ`\TQEUÖ<٘4!?8F k8t>]`EgatĠ{xQRR@d 1KF2W ØMVTQ{Bb@m׏VQ! ~g ö`˝ػqfE5'$xGP,HՌմ`x6HQy\{Tl E)L8+i&>cㅃ#ń7jJ:7WA3mTqŇ%w#pC3c2))cFSCZH7=4Fs_J#Yei4*& Տ*+Sָ@BnZIR4#73%?|3_?|3_?|3_?|3_?|3_?|3_?\~3'!E"y|!}&g
-VT]I\RdrWZJVȬp]ۨnPwh
-"\ T)ZKҚZb_(kM^E򫬃 b"FiWS6| QRud
->߽ET΄&Nꛬd_O T=rB[E`OL </*cjQo né2ИcVnڶ81Yiwug\OhUaJ6EL[{7"__Kި1c:b Zs2q)+7=WU[DD#G.wVFW'xt4^]!aX=b Rlr;i":kgkP ~=*;D3
-
-$v
-D)TɌDs/:V<ƽHa#0iۈs!0[U7!2m[/]-;jۃKM(& 聏=o(^$볜gBA(e'w4/{D{m|\TsJ\a.7g?U(
-Oa ʪ$dKD0=}Os \w,Wz<Ǵh0=Z[GKF#DG1c즕5h}OYl ~Si„o7d=-ih12.s $N4nmUgrI(S9hC<7>8v}pcǮ]|pӽt/:݋Nӽt/:݋Nӽt/:݋Nӽt/:݋Nӽt/:݋Nӽt/:݋N*M7t#>P: 9XshuOs7&5̺ȈKRQ(e)R>˩ompXu؝ ho&-t(=J~ N+=+į! M"
- l
-.QY|:vwI̛,J|8QAϢTxnߋ.|sT*= mR22KroLY?i13
-ʩ͋~o
-rM o7 gL OUq6F _E4 !173rܟcT/>Xu{"e/>PV? _ :?4Ar Kfi~cE]DŽ|d]'Mߘ/[×هҡv(u 1)֮ZbI}{{5ӝ߇9I7f}Nԡ75};{~"zk'P@A8^lc D$c~h!հKN_΋n/}`
+-_%vaMA)G`5Ns?zξ[X' T?ߞ,|>BJ#sN2_eSC-@SOF|;z`Hoez;j<2Rhtrgw_J G}^%8^1Q(NKcmJE:Rަ^cNsOǷϟBux+B"?#}nAZVLj^^WWrI˺|]fғX$͜ˆ#f0S.8jUFfUV]ʎ^B50g`omFϧc#e%KBOј?qPo3AGZLc꠵L~~q=jス9DȰDB]Ƀs~skp58,Ӯ@lw!0hZbe o/,SVvv.fS.lB_?j5<^|GF0gi|<$f"gе%QʂY.F=,HeTwsju<p:#Z- Ft*i)+E;}/xnƄphFȄ/񔑏awִ\F^X
+:'l/$ܚs={}wo3i4d<3{!zm&Ui.[rܑf3q0vX;G$/P8?l[/zJ>_6?ẹ"ְnإum;5Cw,WaRm<<m?SMGV,NS{:/G`hF3z쯏
+<%_/?5;}N˧vҟnUOF?O/i=aA XP iykͷq[GDpl"\ ᯡB@"Ӄ&J-m?>2q\"=U=nM4m6ک69^iW=lPQ}vq\LC]PG!BɓC6BP!N1V'-H4Gp#ƶ=ݧ$:?v x t3O/Aߞ>&?J{\l|Lvb7: ]Z"ᎈ)B-B^.o"%\6qGLh-?ͦ  -+憟ÚƲAP%xp(͍$O+ka+c-䗀3pǙC\^wl [556Un;јpݨ1kWwS9ABEvs`ssa(͚@J+.'$fx6%1,"U]9JF6%"!==C]S۱:I\2m鰂j30f#l(ħR*ВX)'7od +a˘&U,bjR-٨8@o&0JRBsUVź` i. ^``IH&FY\,Ɩ 6~!-=[~rGw064 K Bd|5.dPܮ |9q_Q)~>L#)&蜷
+
+rmBbuML>jY]>*LvLhIi`ykA?*7eq10s) 4;OhMxU6b܀չ.C+Fs3PvUYz*]F)ؚET"W-IȾ$ #b]5I*ibOY UHz8A' ]fdiJOO
+ʨ!k֮@Kj;ŻgN"2Oh6;\N2f͈*53p)d3S`#zFZ3c9Uw
+9l\+/6qU
+fGgتNLjކÇ61c"Te<mNJjy
+r/'
+[/ 0 |?$S3uӊ iEc 28Z4q
+-t4&a옕-NɊ4;Dܫ
+r'4
+* R]qoe;݈x|&#y dn43 JLk9vMU$D# JC}F'A:r B/-#Vեv´"xMvVdU)PNd LPfv0,<mu@!FPG@K2G#%oMr3RLE0qȠz'_1+8ce{sa:s-}3ݎUZZj7 .wGP&`
+m'gaz^D ̼%AErHiQi0kĸéF6
+Gl
+>o1| xz*><y+ +$Ue2-'ZUkC(1Y
+D)TɌDs`\"ZBôm|8pB'*Uu"ܖ>
+B۲*(Q=XN d!=q #ދfOڳw 1{D{m|\TUbTŒu9&FQx
+[dlDA~*=@QܟK(s \X;5<T9Eņڢx<Z2!^_ M+9QkВ#tfvcYo It}#} (bi:棴h$Ոfg'2[*6й% OQF/Dx@>%#0^_hdO]PaQ̇L ¦#+F^54=jMx?4On6:P!Rtk^
+0VSފri щ! D)T=d&xtà(K@ƚ:N%-A ټB|T,
+?DPm"v=7,]UIx+*1=TɋDsm礄Z.
+Ia쒌`ͭe@d277n԰=[ ;3 UwW_f0&x-q qh*"|\W1-'#>oacFiLlRaF> ]k '4$|4{\gè<NF3[RF' lղkh3YM Bth𙎒kv'ƆC#jdfHxh5F~-4.8ǂ+R@3=g g̤"#rP0LY~20*aŇź`l]UǮ'7_.a2*>!7i.uMؠA ?n|42>J-и)"N.V,e3x/L|cv;
+JmVn:P4 t.(GPSC ϊ܌;X>nT[HsF͐ծqVu4@_EOAF%x vv,qUuz\J>Zm2ə3ibvtOfVf}`/
+}MN'3Ɂkc pT Z쨃Vðx1D`oE%=P 8|Ĥ'!l[zmÓ9L5QOKfo*8#PmP%3&(aQ ؖaGz*[f` 5Ug j<SF=.ZAC՝`4Xv}mjԹ
+0T)^-g0&a}T c_gj-ۄ"6{~f j8S-fLNJr4Br4Xn_ښ@sN~U6!M3Q6V63
+T)Vc1IϦthc-^,
+WKK,fƥ*gjɸ)TwZdiD&u>4av 4_Tp2
+^5ݥE4I֨T]LMa!n]1N ݇%"OD$y|&MfN$)qiR7F΁KlLخB\`PjԔۖ$*WdXHӤJIƮIJ Vn5 o<NumX$Hƴ^0'52U9m)Ѩs)os4#,)e
+ǀKmж\ 2̨&SM#(X}{ູטfJ/a? ?'C38%aVG 0Hz/E)+yޟAh| 4޴-Ig/V~5 "ߑ V%?@4y 6cG!,7ỆSiD8b|HD?#Ns"?~.|.]Fx8]\p']EK]&$w5#=~avGmM=4_3?s$Z?h~.ѻOn~S/A6^nf%)B6AR]
+;"'a
+;",\~ ?p/~/~/~/~W)@q;^Td/ )|'Vzk05eP&Ȟɠmϋj
+HZ1(fI~Y1q]TF^:VnQz+sb==N$xG[BP.Zb[ _|rOS̄ªN鳚 3~q'hl'4G$yAbT;ZY !!cN)|xH'l<\wE;뙩Yٞ@lնE#3 *IJ'O8noAiȉJM k oSn2*S
++P9fv"+jM
+$ԮSUj%DZ W'8<e:@ 1wku<ʐAb[5vPzeu0۲*huxsd*5x؈\2T;[Am
+VMUMƸ`D~5#ׇTUX0LuHlE"0KuUb44# Q0Xa1.0*9Q{xH1?z/vE6c*x;Y_+2yj\/YeA3q:6
+"<ީ Lb<
+UgǗG6f|$(Ej (DFRB#86Ui@؝P܈aQjG$|%qK!w,w 4A}7>*4!3fS{֮@ZBZ;ū7M& 2ݐΰ'=g&KD℘YD-¬cHrۉw׍6,JrV@nX)TɌѨ9
+%R9{#H]:n#TNKUGmQgav45+SUCfr?
+(T&)I#R-8}*
+ݙ^m]±)$VAjcDrCREԄsZlL4&QG))Q=šLH0L#숅%
+ӢG q 1AzSbS}hwMbd+6*8Cn !1G~ 񉩁do-X9v /Lm4 R逕)xk\ b7F)ϑLޙg/~拟g/~拟g/~拟g/~拟g/~拟g/~拟?.?ِ"W~<>Y`3l:f 9}mLGxaEWGXE
+A>Üvuc*@װbWcͿj6wF8>XǃD= % N{ݗ&|\h`U=g}=jV-A\ȩZg!{S(FzeneI#q |x>Bfl[<e스12moPV~((7󳨌ۯ9|I*c~X5
+2C>.3y$oʘ~xX?C4yviMZϢ2.?8<*ۣ2A$dZ<9~Lo9s,OxsM`cs3!{q{ؔɋ;"#bJ{#bK߻\ Ko^_|__|__|__|_ſ
+AAu(3+lQ^J.ʤ{.)2\m-%@dVEmTR7j4f?rOf%siBȊ zVv&/q[U1~t\)UCbv(SI:wb2fyޢ{*gBmhMVi'F{9 Yq0 |'&y]EJ1 z DQىF7T\anhL
+F1+7Wm[4q3r'40hY"TC_ %o1IDGb1 J9kӸ䔕-D}"V"БE#; E+`:r|
+ 6hK:M
+ 6c)F,ب l!HH1+8ce{[t3LgEQb VjD ;  ,)Eh c˜M8Q ̼%Aޙ{8b(BSk\#-N=܎ :Njp+tߘ9X.M {l`0vsHMz}pMs䕊jP828(`Rϑ&A2z v`^bCe"* vX%E!b
+H9E0 7'7#TL!E{|VӸS6p&jWc`>гȩS&O϶}bP'8#UYir&|[>`sǧ5<}JW#2Āk@p!",F8sldd8s3LcF,;UEnH loXN]x8]m
+<w
+D)XɍQjA
+ l[?é4aB̎^Y7j
+lŞQ|Ŵh9a]'p6C39i$!t\>8v}pcǮv>8v^tE{^tE{^tE{^tE{^tE{^tE{FtlZ(`,wJ9Tf]d%)EHNMQ}68|:NH|:o%REVX'ڕcxcא&d6 fH N,>Zq$MU%A>SKDĨ[ gBS*<E|~G9ieixֆ[жXHiC9G7&|4_hg}idųP vN OUq6F _E4 !173rܟcT/>Xu{"e/>PV? _ :?4Ar Kfi~cE]DŽ|d]'Mߘ/[×هҡv(u 1)֮ZbI}{{5ӝ߇9I7f}Nԡ75};{~"zk'P@A8^lc D$c~h!հKN_΋n/}`
&ůџ_o1VC7mzEJ$Zp.x% L%g?L%AE1n%u@_I/v:}aU"-vgeJ;iI?^N&J+iz.kBe9P\=hl˼XgĒYzG[Lһ}MFFweWuSlڸSA\>P6?yv&UvQ&YGe|]ǻ2ڒ/y׏,UG'_y"5VεwJ7)>&Xcb+G;#G
-o͂oӫVũA=2Okβ~m)hP8~bB]V>xs;S'ԓn^ޖ _hDMk9D-~, _o:FX<}T+[+:8翦e3|٨Moݿ+`}!t{:v埿NnR{G\X J\q34J سYNi+̝۞&K5uڑҬߊg<|Ql]wMsDPDF͈&Tݱikwo7:l%NGJ~8SvSx.BJ=ZA>wAk.oM^ ;]=Yl
+o͂oӫVũA=2Okβ~m)hP8~bB]V>xs;S'ԓn^ޖ _hDMk9D-~, _o:FX<}T+[+:8翦e3|٨Moݿ+`}!t{:v埿NnR{G\X J\q3Tc"g91<3wNo{,F`ʷjGJ~+%-G9`wZ5Aْ5#P vǦEݽVJ8ͦ%*pҲOYkN:T׷ *I\kyо5y<Oo t?Yk
endstream
endobj
816 0 obj
@@ -3571,23 +3547,25 @@ endobj
<< /D [ 816 0 R /XYZ 79.37 298.711 null ] >>
endobj
815 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F56 384 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F55 383 0 R /F58 386 0 R /F56 384 0 R /F19 379 0 R /F16 382 0 R /F25 375 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
826 0 obj
-<< /Filter /FlateDecode /Length 4503 >>
+<< /Filter /FlateDecode /Length 4502 >>
stream
xnd_hj .k܂-S9P\$jw$>ɧ>ɧ__>Ev Sҩ?Y*uyz$4[ZCt/ D 8qJї2/4F蛋w^/sBu}ifA=5J?HVY %GZUYϲFp*wUɉM*'7iһ
-gK,98h4bj1 zBޒs."Żx+5 +́ں*PѣE:AC8ҶCKgrcQ Q.ҮGۘ[yR=Ҵ\^Bсxyd!^MJR]]&4Uf_
-W'[(nF#ULCt |9MP #;wܹFs9rIJ:;&UF,½e(W&ꕑ[ΪRQ%EXQ߰(RӦU7"i5/؏>+!7B[lv} }:YG D NwB3^k^Z1NJ 4e+22+*ZoZ[hHB%)[2" rӽTP½dwQe6\[{iqtoq`w?8f] -قTk/C:+>4Z4x&
-=Y-橘+T$ ЁeLJV]=<V%C~QF[^"xU |OkGIʿ Zc5i^h/]0.)A2F2(JUhW~τOJ*R! Ӵ$;P4 - =F] m? =7&&Ha_d!*By \%O_,І]*7ːCѬk9r;頖(9Fx[QUJre0 ›bO= fk؝WUE*6
-%#Jx&i#=QGwIB\4(IЈgD]R1s4gmXn:%vG#e*D])͸^׍B;cvY5 bpuo9}'9 !v=fG iA
-3#:֝%xpw=Viwd>>Iڟ &Ƥ
-5X<k.f\j6ET&q
-@cJ:}ՍH5ݴHLA49|znWR RnWߕB@<ߕOin jᴂ;hI5>t=fAnEݢ4aOՠٻ7Wýұ$xUl?=no]t;[Э}N6CE퍝͔P)Yr!M2bx,W|_۾ނJ恵WFPj z~T@Ia6aL Z=emCJy59D@V'g9v^/}j'4[mx9\ͅt<k)SIT ÓwB86@fO;5*PB`\ 4(TyM^9
-6 ,C%Qf"5cxyW\efClQxRfi !r]kA~HN-Ԩ*LW'5[5f^);7ə;oBX)4ol][;G/7Q-mrI탊<+94+'JK7(ʅ@4kދi4*8i
-gFbY PV%MZR:JA|`s&kFggb(<<c>0˄G-İOu])FHF ?ܼ
->. s6uo_qaaSSG;OtPԫ7aǛ^&XXVBE<ÅVyjîK2zFzEE绞1hoF
-Q39cwc~̍PHTMX-ђ%)hFFsj=ΙqE d62u@Ga.@']9Z
+zYXxpeWzsi4Baj)F*NN7.- 8"Y눗R3ϰh+۪=:pp_4H9!m;t*7
+!.%mB#Qe!xeixf4RŤ9A''{X4^
+V$[%)# <G *KIv9z'Ufϵ
+%=s>M =<4 o;:UhxdG;8b 0~2'5J .|4y 玧U"Pq^
+"c<=@Ҳ'^Ҝ,òRQ Vɳ4LLr*,Fftyn1D ~r>h #'$<
+DBܙe ~`DBh[T&D~WJq,hӃȼw R5g8;16Wu(ݴBsb+Ao<<3NK<m2?t
+OQ#ӀQ`xn˻Iܙ%!j[s|Ulu
+J`58@}]tѩv(,M5gZe3t
+҄KۢB'- w8,Ʌ<,__k!F
+(3 +TU;>[i5CwTVxg ̒GN¹0C5<D;ùy!tx2 <"Ը/m82+9{%6ѸChM Tͭ] mbiH|}cMQd4))gPsw ~x0OM .g Sex`dn8c@\V1,144Sjյ ~1x\8_nz4zOdˋRr<7灐G"TTÅ2rֲgxXEݮ٭# sa^qCKDkfrU@]1G*WJj7ñ*;b}_(Bk=C K ow3XoC %ևy_ѺvYs^o4CYQݨ݁tA]6@g
+ԳtZ@r
+'ڨ|Jk wklP <AK2y 7 r+u餀~.%ƫ"giw|sݑݲnUszxiV(:oo<loMϪ )tlL[cuT2m2*VfSӕrXI῿0s-Ǟ2PxUڶ!mv" ]+k쳜g;J՗>GNyIӭwjued. mS:O5ܔe;!CFm 'ȇwio(t!0IȌh&/FFyxOZ1X+.ā2^ !Gi6](<)HrS9Ѯv?FjFL@筚DG~3hț̝7 y!^j}7sJiz#ǗΛЖжb$AEZ%]B 5XEhsMm4[ͳm]DG`,^(@~]J-} {bk|wZl#3Z_aU ?xe£[bXm槺ʮ#$#n^9诸۩#u'~:SKE(UR߂M/{,Mo,+"w}+ݼz5aץ_=tR#}n="΢]OFSB7H A  +S%KqZAhw8[q.)YkX oK8`H!.OK4qǶZݛxG^,&oHoo8w ep?y8Siݿ;"KŠnEIB_RJzs o΁rd902J/LYT)%aAR!yFaYճFR~7Z]v⾅rzkBBg׬= aMv&jtm]um٪kYo\` 57wi cpZ/3}}8\8ɘ qcb{*HGaƧ@E ; O+A`>sc8
+9 X`AcA|>Xg)K/Wn6XH3g-v96tg<*37B9 3Si7cdR+VGK\ri͑ Z8gR<RIu-
endstream
endobj
825 0 obj
@@ -3617,7 +3595,7 @@ endobj
<< /D [ 825 0 R /XYZ 79.37 418.093 null ] >>
endobj
824 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F69 402 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R /F72 438 0 R /F88 828 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F68 402 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R /F50 392 0 R /F71 438 0 R /F88 828 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
830 0 obj
<< /Type /Pattern /PatternType 1 /PaintType 2 /TilingType 1 /BBox [-0.99628 -0.99628 3.9851 3.9851] /XStep 2.98883 /YStep 2.98883 /Matrix [1.0 0.0 0.0 1.0 0.0 0.0] /Resources <</Pattern<<>>>> /Filter /FlateDecode /Length 45 >>
@@ -3660,25 +3638,24 @@ endobj
<< /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 100.00128] /Coords [0 0.0 0 100.00128] /Function << /FunctionType 3 /Domain [0.0 100.00128] /Functions [ << /FunctionType 2 /Domain [0.0 100.00128] /C0 [1 1 1] /C1 [1 1 1] /N 1 >> << /FunctionType 2 /Domain [0.0 100.00128] /C0 [1 1 1] /C1 [0.75 0.75 1] /N 1 >> << /FunctionType 2 /Domain [0.0 100.00128] /C0 [0.75 0.75 1] /C1 [0.5 0.5 1] /N 1 >> << /FunctionType 2 /Domain [0.0 100.00128] /C0 [0.5 0.5 1] /C1 [0.5 0.5 1] /N 1 >> ] /Bounds [ 25.00032 50.00064 75.00096] /Encode [0 1 0 1 0 1 0 1] >> /Extend [false false] >> >> /ProcSet [ /PDF ] >>
endobj
841 0 obj
-<< /Filter /FlateDecode /Length 4237 >>
-stream
-x\K ϯ?в`0^`s2@=$g'RU?`VIE~")$x ?'eoN VZ냀|'v.0v
-ƭ}|ȹ~˹xs+JK/%'TJ sZGZ"!=#rЉ*ұ]ӡKm)e.qxPiBzH )]>|cjiHS"G|4a2;
-ϔ:R2cHɤVbBy&n#IrPy ~LIe RN7&c ʶ
-vC\k&xgmPrܲG:)Xia s:$T:?Hep3q$xklkPa{bR|ԗ*+t챷=QxjS'Z3a:o;@Q:TWNe SJ%UY< ߬ W]R0c @[y ph=|Tg%6y,Zm%PvZ^ ˓bb3 ϶*D\ZviiWtE'ovn[103V܀GIuV<I+GuVe](u;eֆ 0. llPg
-
-@% _"mڌDtyc#0"g ;D 9Rqb,<Uo e=OImn~y"UvIi$x¤iǣp1;I:–!G֑vnHN&贤juEG^˷I7TWaiO~E\ͭZkcKALc{ ޑྭWZ@PErO%I_t(8bsrNzq!ꮹnSFC %CllGDͥ<*xBe||S(~
-\uE%)C{F 7 rls 9ZxRڬȚnԲL%b=E ;K]_Z M) T
-
-ܞL "*,?E((C_L} wk8oaq6\L'`Q+{H]0~nEc*4*l2)%+pMΝ@+o ɻXyN28҂<SfM *(|W5Bg’?p`|~U:&Kpt'Fh2.uNW_gRNcoMvʦiT60{xٽapq5Ckx-I.\7grxXnj.8ƌ6̆-
-u<&EHVf?wuP:̀'2 HQ] %ۯ,?fS"[EL
-~&O@M"& T
- rReQ;\=,r`26-A1^i;?!1B
-DT1؊<$ a{`3(|i7;Cwd~ϛ_5gژͼ7 i^=P3Q:40f\-AwZDT؞ڲb8!Uv=S{Vr\ lL]<7
-rCl:ҿ\sqou
-W)wgr}V%nB2tvV=McU
- vER,;sqU6\hD6^UG8OhQVMeOj+w_}uQ'KviH%:(u
-sYkJ#V}xBǃ\uWS=ıDCď)>yUwU]*)f=W%"ӡCX#Sw[J+ѐ(v){2va>,˕s nALL|AWZՂecv*cJfOZ_魮u|t{A;B`I
+<< /Filter /FlateDecode /Length 4234 >>
+stream
+x\Y~_)X@p ȃd[@O.sh6Ѓ fMU$)Qo x>>9184rtaqDhFfǗGJ[J;j
+!/i/ /9<q O}YPK3OOԧ+4dŶL1e.rhh-вF.<%OYf>Ṡ<Ɩ4)pAj )CJDiS9QZTli^
+¸-7t:8n,ݱ0Uc$Pu*xQИ1D+=\ @ܨ%xW4; 4&XL`bE<u_LL?^)󦣚Ô
+}'3=QCm۾Ť(E7~Ji&F3U$mJ2x_6Icu
+b >-ƁVi]c?UEcƬ]ic#8L.>z=;p fP0J]3c?[<> b͏`.NBs?HI4sQ?芳Bid7e'H}\ UZg[$X&EV-ϣb2}l-jj t9)sۆ=
+PV+UЊ!{jEE<O'[ WބS}@%[uڼ8>\y5X}żtGij$'bagTAlU Y<U# ܮ8 OT͝!ng4-MjxViŭ&!݅YMP> vd M4]5\)a`;]+ 0z^0pڎ)*za5DF8! 2 &%>M
+N\kQ처QKIuhShSۗnC!l譑e>cp#iq㐡D :4_U$gAxu*U Yqk]O(!/`t#D*ȅ7$Zg#)q='
+VBQ:ϿI|N}TX#5lp"jdTaLQ5a:d uL0_`|e9{MwY+a
+WLI +vVߟ_B 7--?4&Z l!tR:kj9kcͲ
+F+5<}on%W_ , RZ
+jE!j&k  Y}O B:ZS67\]r33}e̷пBUڨ(禴 vRF> (~BJ܀$Ŀ/ߕQǿgv@oQ˟ϿOΤ ރ˪>M_P>|G7`Pdʨܗ:MFYw|{prГW2mZ܂bVSw~Bg9Pb/QϷ6
+"ft}޾j9,9nGu=_ܸ BӞŨ%e7yppTF 3 :l4IѼ,7x82O+{f{A]C;ub|p d-`d֩J<c5{܊Wqw@Ewk-1Ѧp~%l=Ch48ķh  $IQuwcqJ.GSn7vZ_l\֍!nhK|-]ԭA14BUiu Fn<)
+aE ֒\g꟮<}ݳnB>}n_
+{k]kT 2K4?JL:!\2+ JGc!~: TP!2u|]QLG'vQ^z+s\v}'<,kHt+ֿ /_^q1={
+KA"kU7% iS"I>^zP_k)ڈv[P|L\4uWs?()q<Xi!8j Tec*n*!E̝=-\xU0t]o;=M1բzܺ"*ݝ9lE ~@ZDW!fc@UoSf^?O_>*_yS`7Mۄ|hҘIAL΋c? ~λ-i/!&8]xSE~,SDN䮍k9e?^pad,gM3 ڽC@Ѿ$s‘{E<4h ӭxNS@r|䉡Qd Y((K|.n%ϊZ~:wZ '~?.a]
+QX9!|nd2[/.1ʤo;Sr\1bU8\ WJvql*(c]{l\ni4$ WREAG*M@6Xw:t}bjbTr/PR@i3.yKPo<l;06ԇ[DbrN5Ṻ<u3 _n;Ǫdj^\;Wy%tD-m%2'l%t
endstream
endobj
840 0 obj
@@ -3712,23 +3689,28 @@ endobj
<< /D [ 840 0 R /XYZ 79.37 565.845 null ] >>
endobj
839 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F56 384 0 R /F69 402 0 R /F58 386 0 R /F54 374 0 R /F48 391 0 R /F50 392 0 R /F66 388 0 R /F59 393 0 R >> /XObject << /Fm1 832 0 R /Fm2 835 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F56 384 0 R /F68 402 0 R /F58 386 0 R /F54 374 0 R /F48 391 0 R /F50 392 0 R /F65 388 0 R /F59 393 0 R >> /XObject << /Fm1 832 0 R /Fm2 835 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
848 0 obj
-<< /Filter /FlateDecode /Length 3552 >>
-stream
-xڵ\ێ7}(Y`wڀiyHfcXO ԽTiJ#R"%vy;-_>b*rx~{^363nтcq _OK}&uC犁q_ &9?Q7a%S㟩b|P]p%53cJ m,~kmWʕW?SYi@0
-DdJR} ~tL͸ HBS(]w mw ^kHnFlR2L^OIm2 )I8%B3]1@"_It&Xzm #"d0 w]Vn4`BNc!8Us)))ÿDϙN*XN O׳mst7l3tbڦŀ
-paM{iyJ.;KM'|7,Er@k-lZ(t%`KuנS3Ф)d .5Fi=y-ߴc~K4)5=<kAC8Rd )Nפ;:դ'BcJ\M A̹3KQ gwU8Dsn$q2(ȁb,3A OcdmVHb~aQ̒
-UeJ"93;YaxȍsI#hԼ5 b֙;(.ۙ<H<r6RMOH%覿yul:͟unl%$Ѫ @YaiA9IS} ؤN# a Gh!j{jZ}xzCRkx>1]}u=Rd/.2ɢYa8:E_BukғnJ58z2$t4sWMab+:$>CIac6>$1wʬ]"e-(*a} M ! I$?#DǿaiI.ٸ{"=,
-pV '7oqe A]OMY`®OEU6M#뛵qu,Io`7`lkJc0~sv
-InhdL-<Fün nְ~hu o+q2cơ
-U5mUG(H΄K̂SznA=lI1LK m/Ai}x;4,01s5rLsC+[yn+10X~xw{)u6wo/U|k+>|OYQ}-pGL_023L- 1J1a>X&, ÝtmYzm:}w6
-q~m"Қ6fnnWLJD]L}]CߧL +E `i2q&%m+7]`Az aYWrK`nB^CK}͵:LQvǭ!'vsU
-:kG
-KVXa"%Ls"%fjI}̳2/wXR.s:d\Ф4ˇ;e!h}FÝqw!SC6W)ضnF{F=xOpG*+)-v8Xiǰ]x,Nʹc%,W(DpF(Bҙu`n"-߽?C2חm4Ip cP~CFm<af fj%S:; gtҺ=ߡ1%+RSk>^r0eŦoM;B:x7j*uR]UKdzkWECZ;@FAiT.ҫow%
-14=t7ښ2g:,q'
-Np)'2eMqt5-q.I0LrC긹:5 4kB52,Ao%nP`|׶ae wjPa^@~C W _aqg ?E2t7ploDq1_O·vt/'ZUɷWCϸ>:[քapipҎdĸi9(#kZ%~PR;J2 .r8E!TZK @FJ
+<< /Filter /FlateDecode /Length 3554 >>
+stream
+xڵ\ێ7}(Y`$~ ] {Uc RyDJ^>|+@)-׻?q]8a9v-8f7e?ڧa"
+Q7O`BuCh@Z21!Ʒ7_R33a~é\y;řRJ&52nr÷w_bOo/Ӏ?NT{ЃC^ZFɌ3
+i]sBE;0+ w#q
+$~;QA :5CoMJBr.[*z9aVӛ)M8<DCHqR3؃kc84D-,E֐}Mc0*)YMz!1$,Dʜk;cJpk
+ 6YS<ǰMD1rp¨fnշo<$ߌMߩZף+K=",:->Z[XJkz*%Tq+=YT'sKBG3WyEtH9/f*Cq3 ^=i?zKBs7ڕ/R0K}.M߷4А+, bTLc 0rA|; &ѝ˜;G.2YZꘚ7` ?Z{rS_WkPQ5*ٔ &T$Pe3i$<¸YW2K{~s k氦;v [g[1gW
+h֘|FVTbʿc4pf HVi*x}';6i
+
+#SX]:
+ 0 AzIyQUӖPuL,:8w.Ɯt+#ɴ{H('׾O1 ~:W#jd:O9eHi\ڜ6
+q~m"Қ6fz.XLJDuL}]C \L +E `i2w&Um+7]_`Az aYWrK`nB^CK}:Rv!'Žsa
+,@*~8`⽝|ػECp_T.
+j)Xpa
+k%Zn=?"ԏeg
+i9{j%2:qN);mG|p!nmu+&a@3OTeiAyCqM_{n! c„wHsniڜɜ43[ҍ~,Wot8A;k5Tvi??iFkæi~
+FdsD|hGzRĪU-b|5su!
+KNhM7/:anIFZș;sB:PHU+uS+N^q0#(IA~킇ߎS B%
+ mq]
endstream
endobj
847 0 obj
@@ -3753,26 +3735,24 @@ endobj
<< /D [ 847 0 R /XYZ 79.37 180.575 null ] >>
endobj
846 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F69 402 0 R /F56 384 0 R /F55 383 0 R /F67 389 0 R /F58 386 0 R /F48 391 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F68 402 0 R /F56 384 0 R /F55 383 0 R /F66 389 0 R /F58 386 0 R /F48 391 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
853 0 obj
-<< /Filter /FlateDecode /Length 3469 >>
-stream
-xڽn,񮯘crMw@P,!f 9$/;S\,==hdْ^Y_~xWEt?>uQhN /ORZ)y{~
-62
-*\PvPxᡉW'RJa¿?VByŭU$v]#yx4TsBOc l8PUeo+"1/p׮
-׼X,#1+X+$9`gKu,Ϡr)sq>s|&ZVx{9q< hZ}I0}wš.=QO
-Sjӻӧn`J)c{UM='zʕz"Ε1_SyRe^o]Ѱ[0hiDvmS(8@,OāPC@t]Ne=;y~[9C[h3C9\C-E燜B\R {/=r
-IarYW&-vya4s!̠,@]A[KeB^^1Y|KT.# OE 0og}e7s HH
-)M )\_ a
-1}_|>2WsnFRGӣHU X;`7j%?KU?\\Gr;?E%{/6r}i(Y-О
-(n%bWea!~8}av݈q;gnՊR=qPs.7(T jEPog4$ k 1bcqv"*3ϸqġxzRG yD
-|e,BjJ;Cgz\y%3{,R /ٽ!0vkdƿ> %
-G nsݭt=*[lV&tgX,+0Iq0qsOM!]Aot
-j9d_HD#@{%stS|F9r~tKe cW`]Ex51jEu.Ԇ3{=kBk85iOI:&#UptKMBTPdfkx;¤ZbXsIU12oG1ut#Wu:YwŜ
-QF?=ǯl ۷钡Qu ?/۴~/'² s,jߗ=|>z6ݕ k{~dJVI- C+s|e[7 X2kr̬Z`̇xI^ċ]_I&0j6ACڝLj05Or'ΌIC -.q"yё '~$TX,Zik7~Ġo9G H=KtdKB¡իߋwq
-V
-+JaovOp 7uF3u}s&կ6ө$u|}ԗs[brv)hic&8TYuʞn~P3 LJx]UJ,bvVxDJoG7u=JgVkjiA<m_OǖF~ t\=̧q=K>qm&f ʛ=,$+ V}?.`jaHgN|9qJb*3(?M_EW^>_Lcջr5?
+<< /Filter /FlateDecode /Length 3594 >>
+stream
+xڽn%crF\vHs 9$OJJIEwQ͗.|waV/ _SnqV0nsߞ$WE/k(ߕD(9[Fl27x_y"4{@3*r=!aM6pm`Cz\#%Ґ}Y߆4ktHĜ]f5kY8 Rer=di.7ގ- ^!EmbB.v3g0# (RlC(׺eKu>)Ah,GE2Ǩ&wwKd'd ڷ22B)\|%F
+%UWƔ ȃStBHd^t,᜙h߯gۭNV"j`fvvm#Z>[8߀S&8kEy"7(߅Ng̐= eL0[׎M"GWWq'Ut<+u$#_PZێdSV;Y8s*tQrZf2 Ǝx&<0ݽR\*nG[gmo(z(xjZWܽe#+}j-u<yzoп'HO~Oȹ<&Qؽ<[)2 n %oX#:5܌ۮ>I=(+#ʒ_@GRs@Ydhˆ> ]~m"V3 ]Pr5ڷ9br!L'*=&Jip{B[DuLEYIL񈯈<kYQqqau0`H4#}A$W`U(͘)d~Yw̺D9'nU5(0),3f=Q4ЊIpu JoDfIK]^.Oµ0<5bK,Me"J9zY+.L@_7 =nF?3:uJ\X=ߕ (T̛FB˶8MuuPp :JI2dg*>ke騕;$ȿC-dn)#&HhJ KHaaP" F؟@f*C8} 7|Oy+kϩRo<U ꀁ^A\*),sNv<Ju J-_%Ԩy&QN// V3>1J<@j
+-H\i~IB?+COm)vaQR=r)Ss-װ"aW]I+7"!1MM#
+Պ39g>QRlqvK`Y9?n˾ʵ?9D=Wk?$b^R|`)]8oP%j
+k";dͧ<w‚0u ^/e9Jwnw{hЇ&o2¢f9߾?X
+A {H2 {, $gi hZ0|߿}/f]I!& ~ kmmKfN
+pDΊElN_ڕv2"B0&^L,x;DgҋA3}
+1^Ҩ ndz;"u 
+cA`HDĶ,Sed@׬MIӻN%)a^
+o @j 26/, v u=P
+let ZS ¹E zKbA֪=[S0c%iÞA!)7dҐ5J}=ݳ'f4vi"$άaV;A(yw[ ~| t-<{j22a2RqG֨2/K OW / ZsK>r)}>igT\Uaƞ[ǴYTV}_!Y&\)T;\ztਸ਼MjAUKuv_QT~ΟJ֡+Ȏ anyi))T0{ȣ(^f 4Cƛb`<׍Bp ƀ "6f5]UlH[=ibSu/BRqCc\G;\pǓUH4xBM]-.8sq3ߠju롦91gF}N@vr &pFhݷm(]3^wX j(^S\ yS1O2 |.Ȝ`y9N݆>v0A.InC>֑=^ކ3J~A'|ҼQvw6G~Ia&=vb UU>n)F؎D/:nV*AJ]/:xY8LmCJK 6
+iwxde;0a_ }܀LѕK:m[(E/7b6%8Pa1:BlRt[v>>Xfd;mFWR8`uڦ&4uxpa\$ -hS˴Ļ/?3b#Lr(WO:2_&^ܭIDo $4⾂6\r~4M;4cBɕ~ zA"
+Ks8_DR g<6Kx;.`qKv2W_H^HO?D/;m F /Cן|Ѧ{vVb7`g D
endstream
endobj
852 0 obj
@@ -3782,118 +3762,111 @@ endobj
<< /D [ 852 0 R /XYZ 78.37 808.885 null ] >>
endobj
855 0 obj
-<< /D [ 852 0 R /XYZ 227.982 267.704 null ] >>
+<< /D [ 852 0 R /XYZ 227.982 315.525 null ] >>
endobj
856 0 obj
-<< /D [ 852 0 R /XYZ 233.651 255.749 null ] >>
+<< /D [ 852 0 R /XYZ 233.651 303.57 null ] >>
endobj
857 0 obj
-<< /D [ 852 0 R /XYZ 196.679 222.946 null ] >>
+<< /D [ 852 0 R /XYZ 196.679 270.767 null ] >>
endobj
858 0 obj
-<< /D [ 852 0 R /XYZ 196.679 202.752 null ] >>
+<< /D [ 852 0 R /XYZ 196.679 250.573 null ] >>
endobj
329 0 obj
-<< /D [ 852 0 R /XYZ 79.37 156.042 null ] >>
+<< /D [ 852 0 R /XYZ 79.37 203.863 null ] >>
endobj
851 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F67 389 0 R /F20 376 0 R /F69 402 0 R /F48 391 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F58 386 0 R /F55 383 0 R /F66 389 0 R /F20 376 0 R /F68 402 0 R /F48 391 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
861 0 obj
-<< /Filter /FlateDecode /Length 19584 >>
-stream
-x}M%9rݾ[j*MBS] ;I #/܂g<A}v[1S'2Hf$y˿\_ڭeΑ^JR]ٽ?ux]_Wv]?ǯ/ ?]o%0~ζ eϗ]d8\Dy eGV6?lg:lס5} IڽBw~$>ֲbÚ~x/&n=&61ǏC7ַ!vg? 7-}_gB?r7_ϟ)~=] a\TzѴ/փqX3q}s}Ş颟rEQ/H!d?}vr2O>ݛor/9^ϗ֩U<w||hoŷ\au+%~dE--`ZU>GV5jZ]Z?lW֏ra>JJ꺵ab])?
-i~,_nW;?!OƳ秗_ .z %QO?e]}yu4]"uBzle
-֔TS>~e0[/԰kcaSwOsj.]Bu7<^B& &nrg^UPs]2w+'D h4|ϊ&F}W-9h]4 yw kZ>ݫ&W@_1^=?ӫ/et՜s~J4t(ړ)vګyzw.p7I
- ?X?z4)҇#3QI@ɧGa:m!}QoxJ?$zp噁 <z4\'ZzoA嘡O 5CYܳM=[%jF)#-ێOi)j8ǁ=;|b'ߚ>=V֩ǵ'LN>A6wkAc֡g5sٿ;|$f_MAѭC'ح_o>7~&j}MJgn"6gS"_osM9 g%s#O ԧf}oj@>">w=!\Y/.J%Ϲ[&}"rÆEdzwyYV."/EdzyYV."/EdzwyYV."/Ed5zwyYV-"z<Zzr6pĤSu]=_}5&yu]phg>}]WEdg絯⍽4zɸ\Wo4RT'ǥʍϱ$v]&ps_%Ӥ\XH<֮X&kY6/o͈Yd(
-d2 mJݗ$Qf尡9N4VÃR J@'%C3xLĪf2@a@?dR:UJ8.>*H;Rr&&A9SVmˌh1gdWN|s#JFơ`Nq0{xEKڈ4$~N2
-dYh[2)w-E+ 5 ;=+M.EJw4oyՇT54ye8ٗ
-Wg
-r_#IۅjpW^{&AHl Fe&a*?#+=v9PpKp40wIO>;zx(BU)!d
-]PCV6Eī&R
-^utM4h *ȱkԩ[q&bQ3 yq4ZmGԦ|s^ڠaڀ
-kBJyr:X]XP Wé@= $D$ϳSHkMt)JW@4W2` '?DnGbN(ato-UJ:P"6[ ef=+I(P=Rn0HѶUWLSdZ+E0ɔh4/3TX*]۔Bd<#?z ´xѕҌRHR6
-Q"֝[<M@Qf1:W*eLg<@yD~*uW^k$^)1NȪ W¶qiDiK>hW6cbFh3CGr
-5p not'XmJ-ӥDlxĪ4X+3BPbW%гJjӂفg?պŬX`
-
-!#UxFfpdalk.%b&V?T3xl MW@By~u_蹈>"
-ғgDÎWYT
-yT
-eLg
-s@<e#uoѹ`V(0pP&v8{{PtF+zrȦ2&!ldZK,&2<3w:aOe\Ӽ)Rө
-_5\0{ 5RV?'%[uoZpW- 0D~ji o-(:u^= sm{ Ba;V)=Z ͈US;R@([z=G.0jMkh r<Qyhwe jVKr%$Nw3aK2]6/<cJ Glx+iLâW0ﳡtd(E, Uq.5^k% GVcQFso4YWci6 r¾i99Q@fgL##f 8A ?hV+iBY$#9ǾʵߍF zC ԭf>gzn4勿XzDC  E& 9*6Y6F_pľzDR/6Ӛiڲ rJ Z Ƶ`rl%B4JyB1JBDr4[{~?ؚ;@d _6!{W(%GS. *,##`\xA %0]0>i,g8q\@7.jWn0?ws0ʆ]kɘ@crVIIVN>lT.` ⵇTN{-3RBHRP.#07;} z/Wuu],C+45Τ[.W9R:`fN{MDaL¯je1W.K&QG69O}X֋gնYV-ĵ\+hw!UǂųC3l Q iR 0bgȜJPr^?S&"ۼRQ-S[h8?6 aOK4߳Tc-l]8P4h2-qYwwmK0XI Fsij;cJÔJĻ\p޽ ř/φSS)U, Uː'O?!2?h(]\CZ'k
-f(jEy|wr.ll'B<JG.J!/HBg*3(v4HKϙ_qh'MtxkW]n4ʵt0rxq+lhIGh(רtGm/[xHKx<p_Yۼz.
-+Dʔu
-W[(} 5^kďW/fwBJESOQ׿q"oejAM#̩
-2B&/#@S_,xsЍA%YXoC|z,kHX:y./q Wyl2\QH
-׍k;߂/5*/W|9CpUBoږ y.:oܜtMe,
-4xE ]BPy`
-q~h_Og}_/jW&fOihP7B:y>ш볖׉ց0P2p?Hw4yyEQ\$WWiW7+ ƬKd
-6;4Ev*h K_yxN] >5D(9~9FY Fzg8chh-Nw^(v(t
-h_浳#);z=%姈S//w{~ZITtKi"l24kG^Q[dkNNgnHE({WKdFF.b%=6#ѸHoQrRD\+#}^d?3]FSFsgP#TH*s g;JDλNx
-4[f"2蹷le <BޯВ l 1uNVArIhXƵ`M!<>@6An;)OZ_C
-`K1u h*H n A/ BJBk:2[G%UE!Ni!RB6J4Tl: <xӳjt.-Ru VA-0*qg|e
-2k9j;ܖSX«\ [ 2 V{/FɋX/PւXQa)'&m-qhyւ))gG-ȦC8`K'Jcp_
- Zna1bM)m%P-X oHYԡ(f+A6J"55ǷÑ;ha :4TL:y$S.-R V2('\CKRk<!bQB Z2$l! H.Flwz" !;BދA6-&zwXP}1e ưw
-h]J8xg9ⱪB1Sa-{%h6ڿw[t([`Qα "u /uiarB1[сRw[Ap +(޹J35T-cSE^ؙA
-%5ي42 `,m-簦RqFix+TٴoVx2 ’NJ
-l95EHxpiQk6h
-q*Qб"5}zЫwp|_%PuXQa(mqG9$`l+f+<-%
-a [p eůB2=^9t))
-@x *C MhTA"XfrR Nbh4J: ~_(aG()
+<< /Filter /FlateDecode /Length 19506 >>
+stream
+xM$9%x_Y+IQ{)lf@[+BROH3w 33*)T%{z_~O_ÿ[s|o?82[iPJv+_ܟ+R?o<~f7?WlwweCn n;¹k}w:t~W(w+q}{=nϮ{Owү׳>op$8dnNM3\B]/?6W_==\glXqXz5|jJY|Ov>*{jr%Ϯ|f=uvx5~fq#+/v|/]R>mڕZWW??kW^ 36{oot44Vz?~^W釯o7"5ПcWLK=5v˵ݽѧq\\W׊.)oJKh$BhZ?h2o9e.ʽVB' w򫢉|(Z48h]4 漻t |W4r_ՙ2?ݧz5ܫ_M;b~Irtx7uxLSU~ߨĻ+g}Ms~7*%OPg#+QIpկF31/ <-/>j=OiL+'^x\gϕH(ݚG=~JP~fy;j6jdnj<u}EQmǁ45{q@ܧ~qV/_tkWn=ҭ9dsz[J ŽLJgOAb:_;nzf}뾖ƫN|5J&r%RMw_ 7+)DRgNW;dbn$⩁2㣩|©^RxpW辸(>%s"9l)X}Y>|>zV>E^V<EV"ՇOGOç꣧jSd))Z}yY}Y>|,V?E^V=EVϞ"F5<J{q6pD]EwYJ/L
+8kon왼RWEym]@1ѠBTj絷u~{~կko⍽4Zd\/r+Hw߾H<.]Wn>֨^y/M/Jιֱ#]L,'N{r2W2 rw( BPc;]O *^̆RkrFX)&jQz/GR#2з`PTcJCAci 17(9
+!S!/R4FǡK:)⎔IncΔUj2#5Z
+dAC Cxy
+AB}tpA4L^T .ƴ`jx'O(FJ0l^{Ųcq%r"=r bXfZHwhۅ<[# F 4 ƣ.L.8ґ]ALT F-;)vAʳ
+=h>a< >;Z<Znr*2v_.`!+"J) ?utM4h *ȱkԩ[q&bQ3 yq4Zm#j9NYmpư`m@5Yˍ{!ēXQN}*
+0y8DPѐyv^t
+y)q=e~3S*}y6 58; H +M;H "͖YTCJĆw_L6~ bE3 eQ*=ӃzB 1#-m[u4UMeb_ LFb:t9lS
+MW&ft@
+)LW
+i2,йbV)c:#SCFpeRi鄬Jp.l Fш&,e3&*i+@<>Dz&GP F'ZRMWlSj.%b&Vdj\X$&**]{O gmuYT
+?q?sғUMeX XP͠@^mb
+H(O=}^WPAzlahJ1+@0n"8P+r
+&G*+Iw}脂p<C.-CR8\!a\3W%)yT\LK )JĆyk=^Fo >/ ]POLXU6,yG 庩UU'J)i`Vh*,ʅMT4ЏT4^7p.&2(T$4|U¾Հ>ũʘ#B÷yFꦵd fS G(iRWsU@l&$E0DH9
+dZPQ2=փ_ZsPx[kތYT
+dD)ym3DU$5ʋZ8,CHFr)+WHPBuYf/Y#0M#a[H4PZdP2
+\il Xzccih,e=m3-(- Z>w`\ &WV)DG*$O$GN D<oaiyu-Rr4B226wR\ &G; 0nThB%"iGj x7W8_ lص6 4U*)i'M@ʅL3_T졯J`ųyTS#`QQ
+%x4FfrG^?æW.~+shk䉕FQkgR-+|͜^) 03WϦvF U& WY5ژv+{ rTQdSVlYm'hK8 q-
+g>t?oHձ`rl2 [ub2/eڱr%ؙ:2/JgDzR*7JŰ@p<.%^6 !,3_߳Tc-l}p1 4h2-qYwwmK0XI Fsij;cJÔJĻ\p޽!Ǚ/φSS)U, Uʏ!K/
+>[<vѪ8
+@?5**3ݑ@[,|tc}g@
+ ډ;\ᢣ٩3v":
+QbɟE6D҂>Kp;Uԅ%΢
+4 \+
+aۃi Pxb[ҽ_""ÿFo,_P.\խeZ2!Å@כ%_@4Kj0?@08GFҢ8gߟ^ٗ5O&f.`4d4mv!@VQCFhYDGgLCTGSd FWhW;J⇢4I:?]_D0 43#@v o@ijpR
+>;4Ev*h K_yu<h^}?D,
+q#yg1l4K;U~kCN:~
+h_浳#);z=%姈Ҫw{~ZITtKi"l24k%?Q[dkNNgnHE({؟ Ȍ\TJt{6#ѸHo(`FsQ)".畊Ƒ>/.˩@qhq K~*xmJ3_]'
+U
+2k9j;ܖSXOǷ˹@-!e<"kA$Zr/FɋX/PւXQa)'&m-]JX ⸈xl fkA3dSE!e0ѥ1?
+ Zna1bM)m%P-X oHhoP TJQb%ޚaJSZcAX=CbM)` Ʋyij fAƩGG=UE+# ! P#np~(C![b-G6|ۊ$ # 6_u=Sf! RZB=^˻J,>E2c؋;k}x4 4*\,
+hփ1~ڰbK!"6Z`>0 G`uH* ҏX3
+GK@D:`/ .WB AL R`3x *=OVlq/KUqWQx-]?N+'@ @x_ dZ^9t))
NJjN&2 pu[S
RWɄB 
-Q;
-ȔCbhTA+"[|$`
-._BB 71N2P#޽
-!U8KP
-@(wS˫6δ*+dC!Sa GE)ҝJa葱@>1ULڿ0AvkZRA#T^`=p, ԣY1B=՗T
-`*=Jl[ \@1@QTO}Gb<o, ʃO7 &<7dZ9y:l{e(SrTt٬ o9c"XʡFBGwqmk#׭wAu*Xw3ɦC1[aMGxf<`)kϤk fK9#cDFK>╋/@ 4
-4S CĒ*6`KQx袧(]=T^MTzG eSgUeP? xs)}BԃW ,D*W "8ڰx
-g&VnFG~"d?ZVbmgA
-.PUh3i`[
-bzpԯlh^<
-BZT( - [ 1+?
-kB]%
-~b(=u4jH-~" 3,tԨ Ϧ~00F#r8 ZRcYG{M&Tz'
-H(*MOI3p}c9-G?*Rk8J`TpH#M?"Q=Ò
-Dΐm͌BI ^oK)=/}B9Y&R.;737dF~7n炙4x|/HIOlSi`jQU޲ SQR, 禮P6@>u͖sLupq|$J>)6`A U-}f|b*XYAS)AʅwSsӓڰc{B'^c2W~u7]C[FJ-L556Hmr(MƆ˻`Pq:Fzw__^pCz~ޮBX_h]LP)AKrBP3ıԋqt
--Hk}ViV.u"ou` 3ԩ2Ӏ&.Q>)2oYept VSEYP
-dAҝ"y,;<\2gP N!qk!0#ħpjhv
-<7knh*\WQf+^BdD^eEt
-duAҝ׀+~*J8UطZ$~<qUkL_<hM3CBp<6Q>3<_cQ!#2ԨBï'˓^Ѹ(o
-ĒÁ uxwcpeTȳ 5Ek!Ȩ+ F4:4݆:4{BV5\*݂įQ8Wo*jܤ;=+oU?רodb
-qƬl9# EEVaQHc 5Iwĺ+s_zFj( /љ&2VJ he 4`έaꠐ 5IwFzrW޽,咮9|7ү`fR2<]d+ͤqWnwOi˅oK0KKQ<XV2=|ZZxL&3`&M##uY6'ND['6A j* ã18cL2vJ$P?َ0wMڷ[ʻy.P 5E k!">OIʀF6`wi}o9/\Fl_6jBV:_ <lI+U 5Iw{s_.9(^iA-T7(Uh%`ӹըhTj!YrRB=O)?k
-'fs $h8T^xr#fp-ئX&坰O »R C<$w*fZKEi݊ fwXTR;b=R% $]Xڐnmb)(7rv^BФ)}UFĝ<wGFPl:4n
-}S<XޙN1+1NXTIp('Lw}I`n6PJ X\g~%&X:۝OAו  hP `Jj
-+-7Ik&lKTr&)}Ub䯏^$-#R`Ve
- M(z(,#&ۄBͤ<>PRO8-2 diAJfw@Ǒ.@ˤ(m"w>UGfe_IzlC⏄7_1+2]
-,J V:ZZx %.˘&PȫVr9-Ǘ_w+ A^~^h*/?Op]_ !mϱr""[f<\#~3Ȳ?|/?w ?Q)
-y7? w|awr.<4}"d|:\O-fJgbӏcF3fwNgo;޽oqTc Oί
-?Pp9y=υ/" _—_]OůSۑ
-v|m\o§ږx۹T%N+(Ymm=^[g8~ &G[+=gW['])w_31_p_>ײL#x-^>ײ_ˆh懭p#3P(W}S~b|6c\.λEߏ$U.ݙĆ6W׾wBB3Ȉ?=|K7Ɵ$o5z\-2uTܘsݻoU>yO ҏ{kxk(|&hOy•\}#P)Q^r;y`'ȀN!;U4G4Wu"ou`M#T)q{7ݸk8,CwZ]7gaZߙWA0h!!= &_I :ޛI[,r>A(Lb]TG# .V@ZxG?EL"=]2yn`!ΆZkʳvT~Q5LZ.T{G+o c9{g bYf+p)$N(C ;d軭-]FtP܂ݥyB"ǔW~1.F:P^t
-~wݙ<7Ζ-Cm";]Mkm ?g$.w=@ KB'.BGY]!_Ȏ@]*':A4F^{?:_ bzKu[z^@oF1f/#]{>X P;V
-h6D.AK#VN 2O=C{n~7`ec\z`@'L`xC1xpLBT#2V/=]A[TAz͇b脠E\`ے5|>1
-b_fBG7W{<(=u8~+"F=J`C-^y9Pr`M_dG"Oy F^ڽ.UA0r D|]h13(duYWOpDy"a hJa^!F%iuhR.aV.LWYG8ep}9m9-mδ0БoBjFc7f
-iL1@!<>Dz$GCr;a>QY?tvŌJh8G>gR'@G$RCbYuV>%Mt#:{TW#s?k7tI 70ˁ^T uQk2(X sѮe.T[;–LHuϕ< p
-t
-MEE𾉕}"9˻`X3Sx>
-(S ("=] {87Nn28yx+2N 9cDC/l5"Bv\ 0uoѸL|6K mĪ.-ZȧrE
-dy97,.ζ-CK؎P4H
-$z/loX.)-8
-[d&#+W@x ۭ-fG}vV :S=w!r7zGAFSGl4~Q1NA =ߓd?kBzx!nԂwXm\[)crȶ, Ѐ58 P9 GMqh!,:q, ñ>݅ Y'u~+,ܿe8rB|b+АӍ:U EYVѼeB\{S74ZK4b^w$k‹aa۸Oxm s;O3L'~p:h:-CCm"z |j.TS~oiHqwGJUHRESp/ƙC?|D
-6Z;4&ڂEO.Q
-0cH&9$6KWR(r]]l"Ԥ,]t*p
-dR\04|c]HZK>:U
-T %:_np3)5HyO{ :~qy~ K^6 |䴋 侎w\lK
-hY{G
-lՐܐyw]>]Q1ә#bݵ̈́ŋ`L4wsL6 A 1D>B0j+~l&|Vo-c&`(.4<\ Y1iȊ 3cbقW?:@b̯]g=hRMzqa&ggx`"=#MF5z̟aҳ+Y}q1D' ]U!0AȤʀJtWHqjR=R $nǝdˊzI\͖ kd.̓p de@%O&S֦3 l"R
-a*\dd91cTHVflwY)WbZ<3-ʕ>{jCSƤGDi|tNnK0 <d;PF3M.-dL'JVm$#f
-i?fLZ)AQvI)겜F\\Ƈ"FF
-Zqha,-5)3茧 晱y*gΚЋ% 3apCelBTVـpKQqJQrD߿yА"!PGVȣ DC CxE ]B̻Բ 8ήɷm"4Q35,uvxhɃgi/ʳ ! ;56 U!+P` \XZwggNP1;[1[#%`ûۏ:^^++ Y !;>t#Ȝ`3/W:}tFydFy
-G(c/;Pc̫MѲ.ꆸhAl!\%=$Pѐԡ__z~K
-c5yroz~S 4\"%jQ klWivŗwprZfC8O\n-5ꆸF jm51`e=UPݐrB7ɔg#UvxẅM9~.+ŒnKݠx [QzkW!?o,~_y:SKnu0αˀ !1.ZPcJ Ҟ:tH]wg|H`9w.`oMfC
-ۗ&5ݻnB՘X Ü {Kݳv_H2{ɵގ ىվ0;}}!?W{OnjgvZyG|z*8{6^5y;۸>,imo)S {~ϲ~|wśc~\7}[NU<>v|Gު0^Vϩw=97n^h
+Q;V Sa 5Egݫ?Pl}P#qWp502`(5@5-F#T83;,:QC Nx
++TEpRB?P>/A/<_.
+
+c6
+; T
+@(wS˫6δ*+dC!Sa GE)ҝJahXF
+?Ue&_T{{ɇ _ ~yn- */0Jj8BCSQܬփV'J/&Va6?b PAS_2e&j!ã uMu2V=c^w^A3}7&T\ 1h64gÛ-Cb-erju+j[q|井q.]8n}7l
+9thXʉw[q5K9n}?r.-@SSȏJMfOx<X7.¿̖20 h8EAZ+?-D1[aM5>8 Z)ڕe/Z[u l#R,Vrc)06j~ Z/τ@hc3Ѐ(%~ g uS
+V,Vvl^ð"[`k;1GfXy8_i`b\zhxXqȁ74Qxr{,ږXMmf\6v \dh3?(ٶA@[ڢ}QK$E<?t7ҀӸ6RI`FX0Rah(muG1ĢVmfB]cH xj{
+S/C 4U$
+XG%F,npxq$U}v\1h+J(1 BiKҒ8˻d3^A)Qh3+0QM }9MgAciҏښxTVG l ?+cY"8ۂԘQ 1N\L
+4S CĒ*6`KQxUEZ.pFc>,HYU/oN<žO(zS- pJAUk6)\l,+Dz ^b%4C<Ju!my@Q 19*4UP۰ť?#vΛP*VU_s|вW:fJF*VCVF P}.*hc4^Y ki>}^ _G <ۊW,HAJ`.*?)&-
+GʦVn՞: 5M[ kQ
+"8ڰU~s]XW@*X
+ hw
++XxP\{"?hJ-~" 3,tԨ Ϧ~00F#
+p.ƲM+
+`(l M rf^<\3e0h
+^ I"!}P!0TX0SR炔u"k0h y{~8XS)# Wع(ʓ$(}0-'Y)AS)zAJĢc`T}zCJ'o3%2t$g{̦ԏBm rXNQsd!T$Dl62ܿz2HӏHT03`Q3d[3cjcjmJK߾PkNf*g騉 M ߡ`M1<" i$Rgғ(Tn砚1Z[d*jReJb(yçr.2o56$R'&;huϬOl]+ 36h*4H0njnzRPVa#|O;Kp Zr㗡QwE8%yaĹqԲ,TXQi ߦ(aJCJtnlX 9h^c_~?N+K7Zg#wD$g(5>chAKxG!A*
+[#x >U[8PCtG6U๩^sPDS(M亊w F5[
+"å%~b?.S.h8#P3C6uz~_EiBV5\Q+݂į27T;W +jp8Aό, O%?eTȳ 5Ek W4.:[(N!#10&.!xk6POM(+u2
+dQ-HZyj_.:ug+<hM3CBi)p9HG0\2,Cz!4y-2ꊮo"4tD>:F|s?v=MޭE WJ ku}Uۨ~ڠ7xy
+AU05sf218PcV6DUCEVx(d1ä;bݕy-F~JÏL`eF+Z%Zxsi_0uPʂ֤;#=ty(^KrIoWW bQ3 X
+r\rR!#1O#]VuKn{lMn?uBFe/_# dq=IP&*f:ݥyNԫpI|ڨ
+Y~6X7'˯@V40&!c!x@qSQto:bVe"_MV~P7ͭB02<#?z" RJ>a׼OD&hI !v3p'f3IS`Jhb>ez,NK '  mŒtɪj.w+oIts. f2R>*O%҆toTdlKMA4𾉕ňE]?.&&O6*p&d湫827bL0)w+VEc1{g;ŬXTRb=S%F0&\ׂRSP@) 6obqI }z@P`bl>Uz"\Wj'y4C.,m*)޷?C$ |ٛJ-BSəAXU>'z%i!R-S_ ]oBZ$8W0&h&p>\.©oi H "W2 HG
+ƻyvB}AxflA"Lb.ĩɰ3`*jdA-]'*-r:PqLoʸ,Cz4Zy(hcU>Y;g+ 5 ;=!Fݑ vee@iH]/i^Α tٚ5>!p 2|ʾl4ugCtz:h^8[ tm:Q<Rj&@x֚?X.h6F.AO ZK~GY]!_Ȏ@]*_(:?A4F^{?:_ bzKu'\3z^@oF1f/#]'{>] PV
+h6D.AK#OVq\N 2O=CGƚn~<`ec$\z`@'L`xC1x q+EBT#2V/=]A{TH3})&
+9PȎwExkRoF~{])f#`4$~"34^eBTBvzX>X
+.h6F.AO_Er3c,ue"<=y,'zsn?v˙:MH<["FtUhlٌ[6)(gЇH|Pn'g6*׳-ήQ gȧlUlD~4M"5(&)(Y//i.`qؤ<kOiv<Z,>{Q-; F(c}GjPmʶߋ ֏-R< p
+t
+dACh8q2X3kF`bYg؇Lw>!uW.i`Th*
+,JĆMLeBPw6)$gXU|
+,oK{JmLBS%bûS[>E@r5K +2\,3slIpB[EToAPE_ \gD Qґg_#:&H
+`Ep4a׍9H J1MlmB`
+nMb+pZvdu8ĂXMuzN-&lM`@S7oTLsfODVm[iz}F%866;ܺYR3!\p-
+1ǂQ`
+(V ('#]O)pnݨeq<ly8h^ZLj1V#)$n
+ҢU|+WQp\uӷ$Uጠ86Zk`vrr֮@&8
+CDQxξr)hl2uJA~qoe+~˜t Hiv^>/f|bZ7/`ԏS*Vy BE'ZCؔuUfHwrYR{8#4/Ձ[mmƬX yYVrHyFEwF|Q+Z1_&#+@xm ۽o0fGj!pT]Hܝ}g`(hh/=)
+wϣ/Ґϕ3ʫFݑP)$祊O^l3~z}v4niLµ)
+dR\04Y. %*NL @ïvoqJtWdORNJךj$xV M޸?a?N\%?6 |䴋 侎ϭw\l ~_4],=#jHn!22I3g}b663Fĺk 7;h*.炙l,!!܃>bTc|`*9x򁅾)blb>x1N}g|f`BP=#+2̌?
+MhZZJx4m$ {4Sf,%S3Oy3lRX0Pj 1GXP.}YgNX&/RgƨU$]p;cʣWLgx@gpoRmh5֘_Ȗ0m Gx;h} 7å$Cʺ->d$l76VMPA*Э&ntʄZQ.iV*qg.mnr1M :e`Ԥc \PZy$\6ەy":e w&+n ?7wNܜI[7C <Rg`5^i8qi J, 㒢q4`M kL[ D]} p_an7/FMk¡jibf<
+i?fLZ)AQvI)겜F\\Vx0bԸkTh g*!@?X*=GEx-z`jkcv4ֈd
+a'v~U
+hwd7(/dŏޜ8XnKӦhYhuC\\ jM h Pؿ|
+l>w%5jFJUTLW7 ~?e3;y,4%u!# evJOf0`Gvfd?b`d豭v#C0"0/`YQ֣`P§ p[bß[_g/HiŻ2)8G~a5]{("5[F?ΡkMnh<";"UaW(yPQm̳}i9q?emkcmѫʣ[dosf0ǁɈj˯Ŀ̳_lu$=kƒ >+6'> ; ^
+۷$1=QWEetoaN=/twv`|^~@Ǯ2;ɵގ )վ0o;DG#)c?S?W|Qk -k
+^mqq)i
+'YZ R_S
+ ޟ{~Ѳ~p/?>8gHc~׼ǹj_{{%kf(wzO& _O|g?mjr"+)o|o(϶}O[!@SWןǂ
endstream
endobj
860 0 obj
@@ -3903,34 +3876,32 @@ endobj
<< /D [ 860 0 R /XYZ 78.37 808.885 null ] >>
endobj
333 0 obj
-<< /D [ 860 0 R /XYZ 79.37 230.916 null ] >>
+<< /D [ 860 0 R /XYZ 79.37 290.692 null ] >>
endobj
859 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F17 380 0 R /F20 376 0 R /F15 381 0 R /F16 382 0 R /F18 377 0 R /F23 646 0 R /F21 378 0 R /F69 402 0 R /F54 374 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F17 380 0 R /F20 376 0 R /F15 381 0 R /F16 382 0 R /F18 377 0 R /F23 646 0 R /F21 378 0 R /F68 402 0 R /F54 374 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
865 0 obj
-<< /Filter /FlateDecode /Length 5472 >>
-stream
-x=ˎ$Ƈ~
-Ru[ZW<Sg뷒`O6~H<}866vG|GspYgᘔfNgbv^,rˤ<yPfM`[򒷗M )(d:}}w]GE^F oHۼ!g/YM
-??RiEm Ŕ
-{1e.`*30 L]9bڈ= X!aWn~Ä0cƛ] ,ߕfPLlD$ͤfY~ru@]{q/ՃׄA~9*'(Oӗ%J U_V Ƒ. 4ss%tŽjhghojiT~Ex;m<:;sXGyͤgΪPjUm{ ¬ا*M+!ƆjNL?[C WdNMNa5? F3̷1y'MCi%ӌ0 ,5w=Lc4Rn&w;uasݮFA^A+.yyi!ku8W
-(s1ft¾`+y88Gqyȼ| eۛ׌Nub^<PaH`kL=QY3 w᳉%jțe=b-7;Lnoys۞w)8UIPY 8|3:a*c <p)w92`
->Y2+cOS3r{t?
-'`?.3= 9&w&Eyi
- Z-1w!1CM촂21ؗ<`+8%X%Ei.9 hlP AqV (,
-'c½UU ֞2LY)%!.AOyp_5g!WAq[RdBV!t FjQ!9h]n! !{fm,Z`}XC9&/(-
-cz+(r-z> k)K%lPMdQWLԒmlWE)JSp
-#(W*"F:"U 2,P np%vE[zJf*b;Q5%ZlA5%_SƝJ`v1_&r" 6慈^Ci!ApTCxb;DՐs҃ eM$9I٢V%V$ &PmYd1y>d<< ;tEqzM@`<` Q, EODM<ĬDTs2UK gP Y`:@Ug]9w4f
-b@5!6$+,3ϣ+I6#V&cN$;YQ[-dn1 ,;rkr܀m"jT6DQ& Հն<Y:F iUM$m]˜@9bV-+Qlncm>+!x;6R xb %P`QRHH^o 3X-f QyIѐJZd_.[q
-2oMXvMΗ?@<t&ɆO0ݕM{g2}7>ދfa Eۑ>Y^r!@*;PF;Hw E-l+T=Ұ g8ue$;{dޓю OIa+?[VI,+DJѲAw`*Ob,vJ>Ћ(A;Q@"]$;҃2wz)y}P"فCIvdH'DX慙ԣMaWjv
-VM%}﹀῱\R6lF,O[|j\k)Rs P62tͻkP70KK:`NF
-Tɜa۶l ;4/#Mvmش?S'zO }j9PYy<6~4!᪇܊mViD/- 3
-_}GohJ(Pnm@3nCntaEy:(yy~XlԬž:Ly}sOqH?+kǧ)O)aryU<le:kiSV>~F?kId ' 0`_a
-Sȷiԧ9}\u|ёVbW!%"-!OEچFI3MGIdI طis7i'Դ)ҺEڌ<i+sSH;g
-.ݝ^KŚ~XGLy2#"ʂ=ysw\ݦ{~A(-K/97l@#J('HW2Ptp;V3*?Q^ ~BK(%gN?+n\ґ vEKϽ(?uBop{ $ndXPo)B7|a=HlgM@`aF7@:0 ;p(b-"~աqt)O0Smtc0^zlBE>
-- ~|GTX܋
-6AYkoy4}+N֭~Ss4UnjjιE[Ջe$Zikb$?V-
+<< /Filter /FlateDecode /Length 6089 >>
+stream
+x]K丑dD
+δRL
+c%!a֧UqPI1[x\[pj8żڔb&l"~ScXz IP,M=cM`!l]8Ŧ"0Mh. Q}m
+L7}×,gϔÍ$w o;W06ȃ_۔~T["i\g N(Ƕ.DU ώi.Sx76??[TtQ֐5!(wU3;WC_^Uq* CEHζlшWtvjϿgѺ4[cs{pB7WvyVhYq0$A*t {[HXj<z˹b#k\uM/\WSCj+4ٵ]vmpqWfV!^+(`3; Cߐ`dҺ1pr8#\0BY@^ 'u7\Wpgc07gF}6p kykҟ_r<3n7Vl>nz1<0ȯJ`l؋ 'v~7W!V2KiW%i6ee<^ '΅v<^$4tAz#'/:rj|f2K,8&Xfm~oxF<Uʽ`AM#s۪fqJO 1ҋfAKlP7o ~'& !- f!ko>Mof}:\Ү|Z > ͊:ds R| E+vYi}A+v
+]i~@şkf
+]i~ )~gLzvtx'cF\5 Z3n=k;Ӄt0ogݪ{n;=wIrfCsmsAt#t.m;ސ&䭗47--;2[c1M;ސ.h4;M;ڂP Lmkӎqyր<;M ͟ga*͟
+2iTnTeFj3 9.W;eL~"5#N3mȋf@'э6+z]R>UrR9 C%`eBmνB"ܻNf`ղ=,N^K2_!jʑIaD3>_Dt3d3QU-rF8T5Bj/!T;3‘$}r>8R1JAۊlprzi tqzq$f%))
+LAG+)G X^LCH@p7Н+EiPղ(1$t;N+F:>e$4 &d_UR$1vL mE˱lj]fj9Zl*B8Ѩyֳ6CUO3}fKp9#oU%7hp!=ZRW3%qj~%ԼE k-KłLNǬ|V6gK2${)dǙM2n 1mChTîԶRɣuukF h1aY]0na2C8hzC%nS.~EmlP%s0eXIQ25%,"|ֈ%c:k@Kd1di2eB1pr6 (a/A`
+d\!k' 4~hoaLƠS/vaEVI^bęL!D2!KKJP5&q#OTfh pόlU^>!Ә!x!F(!
+iQY-b#VB"sBWfתn1.bwajvL˴
+g(8ie[zEmSjAM JsJ.gψ[D{LZI,/,'O|K+>#&OH* f H5:x"!EPjHxlޒaXsK^AY
+'RNjje[=m\c[%9 (^/p/
+]ISu+B7u]hݪ{/F"#v&mGPBفT4 ;2~H ZP葆)~f;z`@U%O,r/zHh=vdf|65*}sK0{l627Y¼<RTۺ F}ߪ̗ĖqTF0*(j;fiBّe|
+& 8{*%45WZO[')=׏Чt@@Q~>}L68pHp1;/Q3|}1Ymo=dZo*9i3x-δcSC;ӎ9r:3<δcSCgڔibVi3x,V'δcSC;ӎ9r:3<δcSCiݍ96!N f ˴3;δc9}L;d?%!;3;sڔiu`X0i3x,V'δcSC;ӎ9r:3<δcSCZ=yA{Ji<dxnWDVk1+yXtҬ^4+W5H{yn,;1ɂ}ܵIhR5~gn:׶!{@rz' ǛsmD {r.MM82o=45--;Rx
+
+^AkW Z5H{2Q`:饉n4?4ѿ&&x-siX Oka,&~Yµzf9ZHJ `U{RHؓu{e׊ai㲻bAޚ[KXo%^ \TB[*L"ebOֳz+zTF.(dc`R/ T}hZK&鍃<z&J*USo>&
+:IorFk{KM5 1C3ZCƻ5j>^Q f'wTYK6A<g:SɠqŃH1vG_V*:;1 E9>1V @'| X}Vz`|Ql8JϹ>Sj
++@&gOybdE: *mZXC,!UA;z"65$n+] **gKZە3.RA..zIZ*RDGVR'|V&Oaqb[,[<奔Ho*w wIʷMUkˊ]+ye)/%9nb`tBSktWSm=o~eYzY+LN+UNʤn}b
endstream
endobj
864 0 obj
@@ -3943,19 +3914,13 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 374 0 R /F25 375 0 R /F16 382 0 R /F22 404 0 R /F19 379 0 R /F23 646 0 R /F15 381 0 R /F58 386 0 R /F56 384 0 R /F17 380 0 R /F48 391 0 R /F50 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
870 0 obj
-<< /Filter /FlateDecode /Length 4188 >>
+<< /Filter /FlateDecode /Length 3124 >>
stream
-x]Kcrh jº9>9q$
-\S|tWH|,ֻrfL~vlx'iVOy$`ʊϴOӏYP6C!J`&Dz؆(ƹބˬt,g܅9ϟ~@MI%37=gzx8*a@4QoɣtR$!~C ʫ)S~҆Zø@<H">N6&Hxa( <
-/@eZ'_ M)T'*`@PaJP@i3_Iä"?‰hf7iU`B+b-@[ϝiic?ϝii
-IS>u%ɏɓ$
-IS>u%ɏɓ$
-}h;'*9ԅy-Q>uOUV`ZpX0>F;]p\ :/=s`ORe*3weؐ*1
-VI5̕&>ԕ&?֎^~[inJC֎^~[i^44vD{Ih&5>m&RƦ{/4y.rdBrUp{ `,ml]N1lh<^~[^!f.O4fD<N|sGK&D>my&>M~<?O}"D#ԕ&?֎^~[i+Tv
-л~ӕFiE>*hbiO[ihc?O]ihc?O]iHAD/v+qJCS
-IWAA-ve?-PMwKM.4%3l y/E~ ;= >fkD H6έ:#$e
-bQZ<-DmQ@͏OŢo  `}jmݢi+k/O%"`<(HɀKz'ʨkvZS[&L,ī>![\(*i~ԡNݪe!;6zN/!bvYO EtTOOG&ꩡzZvYR dPϮGӦ-Ftja|m6qS7mwԈW)R Yf-tVak%c=~ozK޺+Vl~jq6g\Qg¼-٣/,
-vD7 @5l*!}r"Iϗ9c9'/<+ {5{R1RoPS*x[lA| trQe/fu'W{.RzR{,FJA ;]|1eivT)㱺R ə׭%SJ^*Kx[ݙ%JM pzJ kZ\)?lV![-0>C洁`9qET?{ëQn/Oo`(-Od)ZSCv˔nB&zeuN9EƗS&2uo8}eS-"t.[~C1B׹%<+^[lcKWx|K_OXD/X{, yW
+x\K# c`DA#x4HvArH&C=WrLmW>]"_ޏ-B0?~XϤ]<[~ȹΥwǹя>vBhfl,B#?x<H?+u+㓬Y(:pz0j`řϜO(q\MҎ R؃V;&I?%{,\N$E‘۞*5bV;'@}pZE7l
+)]3~9}3͜;0Hihr14YT3H3'?H5'h۫Ls1-~qi _4s;os
+*=y5='™4}Ӝp0HAOb8Sni>A7Bsik3SGf9-~yin;0͜;ZLs^ϝ;~
+>6JX4ލAjQ Q%R[`8X?]@iͬ-͐ 1ĩA3ת*D+n35 a3UhK8@W `@%-s’+TJ񛐦$$Ԧp:ibICIjljk^|IEE&_v
+7u`j
endstream
endobj
869 0 obj
@@ -3965,33 +3930,33 @@ endobj
<< /D [ 869 0 R /XYZ 78.37 808.885 null ] >>
endobj
337 0 obj
-<< /D [ 869 0 R /XYZ 79.37 679.821 null ] >>
+<< /D [ 869 0 R /XYZ 79.37 771.024 null ] >>
endobj
341 0 obj
-<< /D [ 869 0 R /XYZ 79.37 407.279 null ] >>
+<< /D [ 869 0 R /XYZ 79.37 499.028 null ] >>
endobj
868 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F25 375 0 R /F16 382 0 R /F17 380 0 R /F69 402 0 R /F15 381 0 R /F56 384 0 R /F22 404 0 R /F54 374 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F25 375 0 R /F16 382 0 R /F22 404 0 R /F54 374 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
874 0 obj
-<< /Filter /FlateDecode /Length 3190 >>
-stream
-xM+bz "\^nmOC
-iKN9xII3pwvE1o ?E,35q#Opn=V/9kZo߫o$<L:|Ke 褵?V͙r+++
-SՁ<ohmTL(SM~eGLkOh
-<1T'E%/.
-?<~gU\ xon4^PHG
-LU5M6A<~'!KSYiz|8@Gldb,00pŴd
-vz~?ť7D:]k_lLkV8͖[ffK 3*6\k9ͬp_8o|Ӗ 5GL 3 aia);)794)hvU/C( ѝ]
-- J3)T:I'ֺgM{=%* Hz\|"h0^a
-gPSdWH$KcKG(A3227t;Tcna
-3NN$L>n!5Bkۦ9 Hs|CIHuiHwmmO,pQ
-s1d!{50of}X$ӊqCCXROyKSܱdӜ'SFPI`2G9af ];O$ `~
-"p c@[|<%ލLs}5ʄ/yAS}@9;֕L;qa<3! e2uZvkX&;j|n&35A3\4X5tzDYMscINuuifE%RB(bQSsb(C1iC̉ FLf^n2X.bzĪq}BBLc6-n.7u,$-bB:X:BGhT\r#=嶛`r&icj,~.0T-k ɅRU`i{T|O=~7[<VQ`-|͛8*_v_' g{Z;p_̔}p1 x}c7An4XFU1Z8o%ƜwnBw51y[ՍC1;o^ 38B]+΍3Sw_pE
-Q1g'܂M(A jxB^q*ZO gmFyt1ʤwdLo(aRD~* lx`n<C噜a 䙎S-xh%s Gu3\];f
-iF̤D؀6_%nLqhLKۆ?\f6Jŏed/P2@7h՗I}N}ؗ~n> wvuG;6~rmc8-WC4zZ-4ѮǑP-&DOfx 4@&M a*ɬWh0B|(T.iƈGJJrssC❋I7pZæY 9яW^jZej(O Ǘ,XCഖ=rXB|(ۗ/K;”]:O^O
-߃Ղ9 [-/`=
-,0\rgT_6J\ZTWNkHֈJ67+]+ZLiQ<~E+ut. #ǰzv˖ N\9:_ӅuWISwXn9sߝnxO㚧`{< o]0UJ}9v~EJd:U7N N b;:<lٹfжjU{>I,rl&q5&u=407zE7ߝL<n, /oP[~ =
+<< /Filter /FlateDecode /Length 3332 >>
+stream
+xM+bz "Xt6ڽ=hH/ff,M$ER$EjEq'N{/(,sZ Ob2k1O?>qnڤw{&xxk3e^>ϟN~̗3<O6ωgAǴB?e~ϗȓg^\&>h3ǠykaˁHm|g:Sآ5Zt5<CMB\25N1&\1eg/˼Kcc"t XO`ENhY3%C{\ts a)aQ ٨`"5_
+eĔWX 4~\ѦX,wA
+Ƀi]>I2r1 QW Qw1 3#D:oPg̏]d{os ,QNOw-h(ӿ53Z0Lyf4%‚TrBQ5mp6g /&prAM: =R T8B5Z (CլKN4!*י$d19ѸK`ƽKCdW#HىRYkD 2\VdȜذ( Zd+CMZjXĐ+qNڬ 1ĚEfA׼}ެebl&Պ7Y
+rDږK_(i R{%}LqQn PSb Gnl\UXU ʺ
+K>_RyJ}ֲϗ}>_mBpݗsKk;Y [ʹqGސ)4EE 8m$vh0H'X-Q>[I7컒8 Ue;_mϔ]
+Ǣ\`7Rrmg{R%~/GwHYi=-WɩOG`DhrqO :3R'uMۇb1M%uJj1 }5pP^<L2m&JONP Ӹހ)"
+C%wGr#ɧ٨ľG ݗ`rFӑ`Z,V9SG3̡H}Vno <a505Ck 3i3Bv;$aLU4ut"
+T7' ضLٖ)I[~6eƦN%EB#tfAh|HB:? փD.Oa4 h;!'L2<~"tj= 3TnY~arIE<RB)t"^\\t9+1Lj8Zx57 RA;NK#%/OK/i˥ǔ^s/7uƽnA$*TZ4;rWz
+.\0Iy$tg_7w=2<o
+*z Hf%h
+߲e#!B4o 4nTufc67Z:L42%
+ ϵ FK,:ʆsFr@:BmɬL{iyi t5s=Kaf0\5.zs~ym+If D |VNr5m<y^LύLqcIɏ޾]02"~[M^~^H0["yYSzJ +^rW;\j+J+rs-X+t5O`-
+(\WZ@ŭH#crprAeq ]&_tgSb'o
+Ÿ􌗿e:Sa,b6<^Љ.|(ֺ0"m*M)NnxOV㒧`<Yd۳Z(R
+;~NeZE՝N) 3(Bpc3?6g<عzi6h=/^.א-zi2u+[!g6G=;5VUH8M},yk~r̃DtvIx=fyY W13ʳ <-Sr`wj,5|K.QLZ5|Ȅ hv(.$׽ecۅĈ/g^\1K9RtpFn3Gw8#tW(݇+iE(u9%;o@C7 TH'al|aptڼh}Sfpt{zSF9sw̩ҏ*h̩-"
+0ҝZ 6f pƘ
endstream
endobj
873 0 obj
@@ -4004,20 +3969,36 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 374 0 R /F25 375 0 R /F16 382 0 R /F22 404 0 R /F20 376 0 R /F18 377 0 R /F23 646 0 R /F17 380 0 R /F15 381 0 R /F56 384 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
878 0 obj
-<< /Filter /FlateDecode /Length 2877 >>
-stream
-x\KϯPnkM7`,ҽ&{Kr2 \SŗH5%Qʤsú[R}zU׉O^x}y7`o/IL3)d-g)|/?=Phɸ֥P !7)RoQḦ́v[u)~(>~)D4A_6>M/IC">Bz\b5V0Z3u"
-w A)_8 j@ 8aYֽt;f@m5l
--X0bv mKnOjS B Ah?W4HTkDi9n Tp"cbJs X$gA$נA['F)l~sIأKb0%p2]HIB< dLDT93v@XŴ-v? 00E鐂S/]!}YJ"OŇM{ +`jI;NAN`I!m>>Ic?VHd@m.7l[1$)=G_Y {q7){{^f;' a \I\89!3pUS2wP-Cz9Sa_aizIH9uxczS'Act^82'݁Ouq=[I6)lQ^sx L}=h0A: LxZb^%xQ۶4 vbm1 nBOFrD SQ7'cJӆYfmX"!Mi䢎E0<hJ!bYqH4Ml=i^Ȧ8IzN`X|1s4_q7vrBDCQc3-\Pkwl5(9\(v J۳9_sy< sUp4sMlgoz 8"/=m/:;yMC2 dx.ӠJc{hɒ5J%ﱅr6 >k.cɫ9vrqVm'o9s(UT+8&Եھ FmoD# @;No
-m~?2r;ȩii?T=
-IԮT]
-I>L
-S⑻yF3ֻ0EF y)<oG:LP^
-v YSB͚paSL&qSЧϛͼݙ7ؼT?o2J`M=%`k y QP>4
-1㣠ux ڒgQPըQPNJXJD+r<jD\H?]8)Nڹ^dvMҹ^ctQer\i;5pEk*K`)uU+`<Ts
- tSFPK2O=6)e5gѺ{^%FYN 
-O_pu oM& :9}L:v {vRXEzqtųtk%Ɂ3~-ѓ[ãɁ5{r>c󽀿A'vΘ5߬52|O!F˽xSl2Vzk\f/V6N؞nչފ| {mg tma~9E ^;VB~F1̞~Kel=v SiK˟Au6 p"w/Q]{\};qa<3vAOBORQr΋5@-tݕS)F&G֥!M(_Qk]i#˅
-_IkS\$уmՆ)&x]J3x[bʫPZv׶ $`|!oBYZVgpx y[N__Q
+<< /Filter /FlateDecode /Length 5140 >>
+stream
+x]Kc_Ѱ[d65SY,&g3?#u*6
+Yt߲MR'(^z_h{w.8͵| XGc(@??˟( Ա֥0&)aBQEGcF@K&rv` /Kᬺϗ,_N\@w2fu
+
+[:pLϘ=,PIJjI]>II;v#&'\EBTR a'E
+EDE3ȅ>eGkbm%s
+aAآȚ8<EBa3*=`O
+#'u7bkf2oD=]&
+9e]& +-|Dkv#O`#@JAw*8L8iU.P5juP4(j[E1glmF?'jT"ֲo5zp5z:xQ~DmK:XkXeW|::"Te_WɾWbgEN5TBQaa{*WӍ3է&ZO7J5Av]y3k+ۧcco*<2m*
+tJxd?N 3oej|34R^ 7=GCM%f-dD5lLt*3R/U%,L)qm>ħ̒_e\ U&A |I|em$CYu-G,Un];\WKQF WUU3:eY]+Oue"+C}\W&2ڧ%qFp: 5t_غh~7XJW-u@ ҷ( _Rrx7J~TS>zZxO<S<nt?čriL}5I]|?ydhڎَO<V!VF V' 41{#Fe &* R 6B0P&Ղyi*SE~f-Qf^%.}D/ DŽW"TBg:Ů~-U[l`j@9cx<}֋)c'`?e-}Zlgb}!sd~S| D-=P
+
+V{$B 롢*Gͺ d2f
+驪rlҎ󘨶¤r<<c
+&-Kmxۄo^D)$41/,v'f{p8Vyl6Bi6JS,Cw(ߟ<8&ID? r;[6F+
+/?aM{@q#Ie6찬EL^81頺cBHi<??nwyHx: g)<@t{=f/~mSi>"E:<Zl{d{K˿mm-(gZ ۡy-=v|r^=Ce3~̞A^կ vY+<J>
+1p]eU,ENPCi}7fvh1,=gmq{-O!w<yM>^{lph~d_#?kワ^)ba/%,ף+s@>o97L*uI._'̇:Lj{?Qϋsտ m QЃ|uAT/j4gmRTt}~ "To"mt3՘6dY}7MRT]5Ǽ?+wan
+:Oy!y[-ǭ
+t⚶=Y8)Q
+ KAJ' C5fOL&cԒ9VuͳKm洉:~M> (%CY_첑G++
+*X澀\6yiJJ.1)dTxߊ9W5$aJuGcGq79꧿ ګ~,yRʐy<_
+|5=dHlj
+\),j
+;WGHwfB(,
+ם")VɎם`1zy읷/^uȚ9;%zgiïNYudVd+9;/ˋaɡT?|k6"ӎ{~ŀ(J*~D4qrd$
+ m Ĥ[o]p1'CߵW_}ݵYPzvq|i]J:ȨBȐ'&
+
+LRBKR@;"(оN;YpbztH`:8!f 8 "Rp'6`n5Qlp߃Я!7[I ŦoHJ̢cap,C
+[%بu 툤v@RB.):J׃TP]6K_.*
+5D0wN3jPyT$V);uvBٔgwh_k
endstream
endobj
877 0 obj
@@ -4030,19 +4011,25 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F25 375 0 R /F16 382 0 R /F22 404 0 R /F20 376 0 R /F18 377 0 R /F23 646 0 R /F17 380 0 R /F15 381 0 R /F56 384 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
882 0 obj
-<< /Filter /FlateDecode /Length 3850 >>
-stream
-x]K ϯ,ZF=$I|KrZ {H`sU$Tڳ9O$EQc [8
-M j P}^VJjyf0F8h.ION|ɨ{$V]8DS\je\<Ӌ#Ns-/PoewM/]r6@
-UP39(bF~X̔-f&tKL%GaTP/9% ,i/t&酠HKv٧}d~c%Aԏ &u>r:+A:N,fJr.6J*A s@ htŢ`l^*<JrPU T_p\&mT\bP( US_a֌2XH]3" 38׈T?9sVca7v!kX#{< ?|x>G
-Lp:vت+FA
-.\nƜЪ+#Ъ+u8W8qluw6{nlEbdm}ކ[eq-7n˙ݶ&d'k<&
-V[*!~g;T(SY?lM[{lJs~B5#n6pGq{ik͵xto-g֚r-fjh9Q[ g}.6զeJ r6; MKt#(p$5pYg}qX' ) LcnXLK`dϕ|<Qp J?y/;s-fG\I<,D¤zy+~PI-kzy+
-Y/;o[6O){mˆġqv$]7ΞΰVާrdȅwqv$k|}Svd[nDs܈B[!\AOF52d_WE{UKᖰ+\$7@D8XvH ^
-泣о٠̑__jIZߏH#AtlֵbcӰn5㢀C$C!aEE 9Aq((ep˅8Ti4S64<pа٢Чw9]WwTvFEJdz3T:.w&J;4jt~Ѱ$#VU |D 7nX^LpH-*(wy6ٔ ~Q¾j/~NPSK,
-jA()e(OPa{TW 4\
-g$] dNPqv$[Ĕxn@M:S
-­Z?u.$ly-eS6K/vւ79]ҵ^܋r-$?d$uxM4"0h뎖J^l1ykdļRGۄ?D2mos-z+`jz?^I =es1u=a4NJ{K9^_Kފ!HiSk45X>|z
+<< /Filter /FlateDecode /Length 4349 >>
+stream
+x]K$ ϯl
+ W6@vlԏ9Q[ʳ%-8j3 8VuHf"~cԏ[,ŭ)ew~3z0v
+jBm
+©/?q.p__W ⼕YGk׎Zgkvl}ZvnѬ\wbOnMiD`2[FK%k֘<mDz16i=os=z%N?2 ":@}[db<".Ӳ~&lI`HSX:xzzV|p=xh>~l3=!JWxr}վH3:R%Vw(ýޘ^C3y5=TmsFurg{Êw+kN<^˻obP1=5|<6>9or}#F}Ez4em؛:`b}q#/7u|Bͳٳğr(EϹt8ri|^+UЖPVur_w4VJBٺ׈"??S~I:kuycf#N]B\Nup!KE޹s X4,o/0?=vo/6RYuߗG6+~+AOwׂxʿtY$-.UXI8w^#y#r7C
+jP 6X ՁgDH Z"?-mpӎ6X
+[}W/[ +HvJ?ƭ׃k1UcOq_&?׎u>'iK[-W3[ꯔ\fD3ƁԦu }^ 0pNT_K~3-&\k"9AmGjl< ?qӼA`4/7KyӼ ٚ8Ii`4p9xK
+##k+
+|5=vyD
+|#HL d
+y 
+$ $E9Q
+2v}l|JB;b@86Wز敤]vDQ`; )}A [#5C\
+շJhQB;Im]StH+q. Ww
+rwcxEص :M΍eusW ܲ}"Jw`N EwNigr
+Ni?z񷃖S)=9,*;G,Eأ۔=
+e:MBB|e `廴Jo̩pb{,Ӓ(G_)ww!1$⊷
+n5n|j+My Oֻgʞu'X\]nڽ8B|o7C d{(qoV$+I<#J)6֯O{wƖ/G*?-5]VMOK=څ*@30Z] ` ]&^מ% kuh\$..w$^^&4/Kf븙1h_Ev7gm%nU.(\p繽*;Lu}铇)]ʷ-߸~ӍDlc*Nn$;b;ʩ ME/,@'xVuX='[vC/||ZK|#Ů0^Mgɸ7ٟ>Mmd $) FE~Vr/rw뚑ROr^f2«5Ђ@s=ƜZcgxBU֊)|KvHb2UD5]Vk^-r̜'[HwlbE8h$*fwchr#afFͭ0ഽ
endstream
endobj
881 0 obj
@@ -4051,38 +4038,37 @@ endobj
883 0 obj
<< /D [ 881 0 R /XYZ 78.37 808.885 null ] >>
endobj
+345 0 obj
+<< /D [ 881 0 R /XYZ 79.37 175.338 null ] >>
+endobj
880 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F16 382 0 R /F22 404 0 R /F20 376 0 R /F18 377 0 R /F23 646 0 R /F17 380 0 R /F25 375 0 R /F15 381 0 R /F56 384 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F56 384 0 R /F16 382 0 R /F22 404 0 R /F20 376 0 R /F18 377 0 R /F23 646 0 R /F17 380 0 R /F25 375 0 R /F68 402 0 R /F58 386 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
887 0 obj
-<< /Filter /FlateDecode /Length 6092 >>
-stream
-x]K$mϯ(PTGĄ6Be:8dk:bo$LUZzz Hxa?ÿ/+w-˟l]>ʷXc/WK- ߘZQ>K?%Ju-*8ñ/.?e&g~7\~]i_{
-x/gF~9?_T0E;C6vf4r¸|S׋XHPa"&Z?0щ`Ac,oFwU¾F.uV7E`w}hz_#MC S#=\9OdI[˯Nh%[6mWS^~Pj_;5Q4&*klػ>^Y( IJ`Fwlk.eN-.nf;N,{}CwYp/ܒ'ROM jݠ邾`7W6"&Ppct> Dg7O)h'
-ד4IPISד&=j3ד' szy%=WBx Se͟z%Ӌ g g^IWRBJU3vI#{%5<v 8[qN2V,Z,Z{aiLݱ8N,V)q[؝!Wb̼PA<bf>QS3kO835yf~g'k
-Q]ͩ IJۼQP/.B%i|m(?dxM+S1VZ~MD] YەkqZxrXf:"dA5d+[R牨OčgZypr0
-a0Ԡ^C=$/RQ[Ҙ
-u]4~THjX$5us^5*0-dm\Aᄔt>-/ p ԥ!baܡNstz؎VTV&RFe*Q.J  ֽJzt-Jx\8 O2N|
-_Xk$נN't
-f^;VyBdLDՅ}.lAl۱'65hC5\ F^ѮdL ƤǾf30q-HhH|*~<.v/ðLO'""mtOMl9TZ<>)b;@"3Ȇ_2@/J|\ XH݁2DH>i/I%e4rH VqhJ)HeW!kz@X-h 'a?"qz25.PT-'[~mӯ<ti#8{>x4-e=2GV/%ŽRrpd7\,jےց;(Z"YJ<jʬȉ[tK5L(Xe^oQ-< ZdH]8>ARLtA d¿ߟȵwMF0eۇgK-eQM,@/ij TDw~3W֍emcc*%N*x:%۟ɤᇭk!|j(o={(z ̀wi&D fWEkQ/wתIspHF&H>~kB QnǑ%\ (>jp|R&GQ 44t]t?j X׍f xI7#iQg"R 4_1=V2RK}7ch1)n}~+9GOa:XpXQRE)2rq~7:WH4?&9=d}(t* *^KK
-"LI@B>_<wA<xs F^xmx4эd]7buEF Va~1~4:SVXJ*9i
-'SvC™n /YT;M!A9q
-9R.0^Zo{wSff<X; fSa"Ae6lzYnRo482]2Usum4AOWuH{ WBө
-y]YKVg
-gqQU ^JO3 +e{saZXw'31RX-PݫH-D:$:5~#N/.QEٯEIРXLTE¹o>Y+]t(pQ l&hU ׎Ҩ#
-_d
-,^աȺrjśO
-ˉ|Zdh`&Gjt~[Փf"*ʿ
-u]\wGuTrH$MT>IUTQϽ/)5Y^]pJR a@7]9/
-R}? i^I_bHbR'6 š YPO)0!ːt&|7n*^I(wSEňKVZ~&B羖dRCՒ
-iv n | RmPc27j_ڒ@Lr$<LUǕJtDÿLPy* |VAN^%ۀe| 1=b?0}[5TG^Q@GT
-Ւ`'#η>,(ZT"źίSם+3F17RHZQXs
-gy1G-E4ʖ:L:LuƽJه^bV:<\U+:Cicbo' \%#7[%ʔp:\sJ7\׍H(J[cu,<|7WyO._lW/[{V
-*Zxssrq).HXhe]pl5eOm w=<Ti*$BLu*RisS}l: ,E n.wN+\6n9akL<eV^]a t`|Qs
-/SQ;.\ <(NmSw#ehx+]qii%x!i{:CzXR{{V0Xc|!/u2$o|ٰ"\$9~~:upR|1S7ﱗ*"7tuх+{q43'\ɬ`b^yv<~jdo硺N!jȼ+0.w\*J@ oF=FBO4÷دuQp0a
-j+]~lWi>KIW&ɺtCz7EWn2M֕`ƨwaCEQW?+Ltu醨+n4ue+M7c]by
-MuԪHkҠꇜz%&R%ZK<*C-ƇwO~:]0-J~r7r",3S_&X&.#ttea)QF؜\(
-֊tLIJm%U`mQZsz܇"ԚR=$>jzclE,*,lW,_3][a{8|RcIs
+<< /Filter /FlateDecode /Length 4281 >>
+stream
+x\I[7xA hӲ
+q4h
+G8fRX`kBډ,JQ\2 cޛA(z<_*N3^u!>B [CXebX! 1%t*KJxCτwEmR\c<.FACTytf3Ԟ9V )%q1uwbjev=(X/,2o* L5?C|,:&'^K#8/cNIx& E R(Oa " ,!MQnTAY+dYu{P
+X~aMc[Tżx煃1܋VQ(֏W:r
+s&IMP֊.~Ɵ
+#
+؃lڸr^2/[
+BJ>h'_'DR֫/B
+WiCg2]LD˖oU]VEt!ު_!!*+$Vi%2+hnMdSNc֏A9/&K6p<\Zp*SaVΙr~<TGh?I,lisXwXB/sɸOkzK6[ NF+fo*-V< kMδdRke;w.Z}/\[0]Iy:"_=rsqXr<qKwő˧Xm ESY&Ǿo?_ig1nq >-j ݀! i9F>GB6dKە>2zFc \dt5 }'^2 j(1x:;DzW7g[|<uaz eU$m ڊuT%TUɐTw%.^Z߅&wzg-!s"U)VR.'#;<luNTZ
+Wf#ݶk,բ;X޸YVĸ_[@br9UuD_fI -JCpo-SbWMTK"5%8Pbt?Jfv 도$1aϝ$9+.';,0Y/ {53l q=JW!V
+0.|#DHɄ*|$t[6u>MKĎ,~\UWuIVwӟ* BY"¦3& 0@/I𝰴9 @S#$>qTV<J݇n uQ1ɢ0t
+#ƓnN.3TS8/XMOsN,֗O= Mf/*Gn{qtcR5}5j+Wwܻ0}fx+`^iV'w7jBOt(j>,^R <JNhѣNn(~`l](gij42dXΛ>,y?N6bj=,I7 e!hCNpum#r·H׈<v6^|
+zѐ0/(qjӫ3 x y9֫ؼyh N
+
+A̪}ˏyfNlpI ;S]~8Z<]u-j^kI$|YhIanCKCXdWpq| &ʝ>37qt śwvVMk[EߟO0xHx{e*.lY@8lx8f@;U ě(2aA)J|7z:V wgZ>hKK6h F2
+(x^ift9T0tlQ@T%BM*ak U]Sb2,s yBh/f;ZWSE劂
+ -C/2ts4,N#(vX8/u8H7UDٳhzip8oGeU4 px<KxDՙY[`IۋMP*B-ƹLT-1PJuQ9z|J1ڂ]2ْ֣BZnmd;Cub,8 IKNĭu)!)-.衐u ڞ7Yͷ|0GOuq=O(K?Rz?
+Z[7p8%T.jUB5BRVR 7*B9]NC[
+J 8C9PtGS%&6HӣD諶H\BB߿[n6AtB[Bl ZP yW928ecY]ۢ9fz]IU^U𢡊 s@J#co_ 뇜nJ3li<iI
+_C)Ǩ:t% vC6]gRh@DzeUBUN
+37}y ?0o3Ox|? HyNC|?ӏ6d:6Vy39:`eR<MwtcÒ"NfFUnU!MG@#-pɖoi*\`bi^ɲ2W l9FmYf6
endstream
endobj
886 0 obj
@@ -4092,46 +4078,33 @@ endobj
[ 884 0 R ]
endobj
884 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 276.144 69.91 286.601 81.367 ]/A << /S /GoTo /D (subsubsection.5.1.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 276.144 71.991 286.601 83.449 ]/A << /S /GoTo /D (subsubsection.5.1.2) >> >>
endobj
888 0 obj
<< /D [ 886 0 R /XYZ 78.37 808.885 null ] >>
endobj
-345 0 obj
-<< /D [ 886 0 R /XYZ 79.37 539.971 null ] >>
-endobj
885 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F16 382 0 R /F22 404 0 R /F20 376 0 R /F18 377 0 R /F23 646 0 R /F17 380 0 R /F25 375 0 R /F69 402 0 R /F15 381 0 R /F56 384 0 R /F58 386 0 R /F19 379 0 R /F57 385 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F17 380 0 R /F15 381 0 R /F57 385 0 R /F58 386 0 R /F55 383 0 R /F65 388 0 R /F48 391 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
892 0 obj
-<< /Filter /FlateDecode /Length 5221 >>
-stream
-x]͏n_-gI.| rH
-e.7r]\s5!% V+-V&[t!D}IUU d%.G]C&OymE臽⚭M,V9ЧR Y
- 6~nh RMk?QjlM~ѩi&X喕=lrHA%uS&惌zb\fF6EȌ-qǙj,CNEf9U_;3䌍DeJƪH/;"$%
-o8<Joi@z!Oz L-62hQ5BH^Yy>JpUfø1↡C.f4ib]_畃(JђyJFǁ5}grG[G~2YRɩW)4#'&PUbTX H&Ѵ+*hA.WҌnZ>ZbAKB#B'`Bz~d2 4" > ,+;śX247 ՛4߅ĠJ¼1Q.pvr> г%0 4hcմ/.B a򉃄#>g#eܖ7ŎMy>H$cZFThL7mZ=¢KXN+,KJNjOֽww哢ZpL-8p.HUSgNlV[
-fƆpd~i{EyLk)gBCr%>=keUr_a~&DֵGiRDwYB~h}AC:1=C~型):oy/067[Ĉˍ^U?Wq|\&gUGfq\5qg95Nu.-6n.8t/ֽoQ`E]<k$ 5 |ΫxAAΟݿ*}ECs(t+p0 kzP馵-n!d߆<9qMe:Vҧ(8[Ʀ~Pto6m x0ҩ>~8lP&-=?Yq{>ݢ dPkv)Rd]Mx6%`ҴGi7֢Ik
-E9h<˷FQVkc.! *y{kmzm?mȇPX1
-C0E_& G 3A u).)
-#Z MXWA9*~L%
-ːhKjh9S3
-7lMҹ_KMš0T8
-IlMs+w1<rWo`4;* 13qWե[?XM>:w~uu?X;G!3c->2O<lǣq5!k137kƔ; %op5voaW)V4v\a,rE5Dnօb`g̹~kzm-=1.C8h-ta.I'Y)|":-0T@YCԔ1+}
-)hB'`[pM0r1e'H֖vI`FH/U禠dd$nn%ESةdo j
-j*l뷜>XP&8el)}Tq𰸎
-JFAVx<B(wa`:ݘqpyzZDV%ʐ;.SjC&!pDQYGEDҸd#IԌq;bCrʓ|+jR " bܣ4+ٺ$j8g{d4RbIyneFiKaN$$äk4$WӜM<-as!6&5i Ω&^)(@(=Jkb+OfsfS!
-z)% E;.SA:Pz BI6RD\,s~!6)/iʝW)5:! 1 ;`:[כ$;dC$:JJV-(Sv6J]Tst" Q)8l<1V`5Ç,D]t2^yh/+)
-qT.Pa,.7FҮdc $kvN8+RNq2g62ƚWqL궑Ԇ#н[a $kvZ#^ca({
-FJB *aq! I39\KmH8up"k1FR. naz&093VK%0dJmm(
-FJB *aq ac Y+silpN9 ;,<#J7 6,,Yf&'Q+s @lJH(3
-FP8AT4w+m 6@V`-e=XиWbVTeprTUOJGld c]aNG[=z!7(}8UVG뛅衔WV?V<hZP;`Z6+#nܫꅧE&sa-ASI`UiFyR>,ys+3{CӹYΕc;5]ĿvrJ1EVRы!d="S&
-*!Ÿt
-sN>%]E)Ofd\c'R.5(}PߛD S$&D$o!0x a>)`+S_ {n]﷑ߎ~;P~atVѦ?n`-}^[aCJ&+9]/8eaN1|6I\|E*O\ށ=,*ɣ:Z4OԤ,Qæyj-h<^;N\kkoU
-p2Z˰"ZY:Lk' C:Û1L0R$ wLhLC /BO&,)&`L/)U DHlH>U81&Rc, .z]++.LjR]'kNzxU$M4i9hw]5R龾jM}̈́%AVJ
-oNJ`%*RV")eU@,,5zi|}Y?T[Ga~&3^qB׈'In >E\ 1lIkk7! gE/u AP>4($=T$ECs-gVN*
-ic ,CEŊ%.*t),;tx߁ܢu}NgSt}4[۟Mk6v.{OaW.y4<j
-3MM^ ̻YmLVq)LI =h/θ7`㠇r=8eqڎY|z Rv??s0O @C`|G&ɚ{ifSJ,
-vV%;Rа [8F|v~+$"|. J<V6
+<< /Filter /FlateDecode /Length 5487 >>
+stream
+x]KInϯF
+OY|Rkf!U1Pς\
+4e_|wF΍6,!%3=(ƌt*8[n[J`,ʥDo.͘qevE7J GH y܁P*2 rKL/ttoFaww\-񖧅u/$yW]uIqxM (*먵$Cj<cpKچHIBJZ+tB`WGp`]OU{*ٺ0aRؠ
+ը wO]"B@:Lq`%Zho^%l.[k &*jᕮH]1NQu<cW; !בR!*ըvW]"BBA:Rq j<cbӆbH~IBvJR^&ltYC@n$&Z<ͫ
+\1>{_0m&U:yYpdECTL;!UaY]%I+ZށJK\̕kKXE)mx;݇XM` _ <ЪԖr'R)
+oB$R1+ Osr<jSڐpx p!kܱ# NwG kv^GlmJ @J THW"vǠyX 'Z.ckb̥nJW$!lX#
+Zzd&'W z=@lSJH2
+TFZ
+E* f;Jn8<tK~|C_B,3J /+cM]^D^3Iik5j+݆M|W Th}.ڡH'޿{#D#+zJyq8%TdzOIVS?UKO",aZE4jkpZ8jӨFR# $m*o <y?Zx%zF)-._^F\L7f5lj 5yӬ~Rc I& oMv5ƁYWOScZMr6`P"M0Y?Э8HFӰK˩8ca2/x><;Z>Z.Ly6:q6o"6_忲K}Ѡ:1T}XÇ*7ަ\c(-f'J~}ÚMM
+|FvYYkMåI\"r 2&w^OBdo;M2> ^D,D_HX-g{)A7R_GaDz1QkGYMK;)]?ҼܻbGNqACŃ2$&c4.{kX5R\5࢏k(YRBĘlR :* NL v2m'̫^6:d=B4ZD2$cxR!=bclm5L餵̵M I$$/2V~-ҬcB.wy !X0,J!aC4 9Hv^Tf\;֮Ba]V:#Wqr^Vsx؁wĿi`Ϝj`ӧ:\ʏlEIdJfnʅ<1*Ϗ4pȋEqaïoKۧ` F$1X,-IHeyl&w9Ƨ\bX>αU>'86Iq9lLgư`4gi/%(G<JOOCY$m ߈x PmDaMy{ټȘ@. FQg~*51ito,! WG.(cp9۾|?}>if`4`g4oyLgj"xgZ$AdUpee(*ؔ-]ǰm|t\=x>~|_o5vzgQZ%\4`L>qj' \+t;lp>u)bOpQL`[z<N*LJw_pٞEd}ƎWN7
+N7_J`^ yJ9ӷMRԼZxjH-6[ˊ⟚co*&@avUԧ(
+U<VI֓^m-ifٕ.H{FR.ю#,>1u=KJ[$ˎ cyFy1ks;Ԟ1K݅~< {-Gs8[Xl=sMwt?Wu1{:;4y\e<Ձyz ^i7CƮ
+Ǹ}w;<Mq'N7ƵqG7~Hצ qWTצ
+}6->(7׶i ^7ѷiHK2?oӤ5Wۄַ)6MLrqSoun:0ӗ?Z޹{os3s3޹tntnaݶ̶I%CsZ۬@Xʊ{ifhd8
+Y?yWGi㼤49/?˥Q(/Fy2
+(KP^1Fy-i9du)/x?/Fi֏F\By6J^؞1(N4fc2-"
endstream
endobj
891 0 obj
@@ -4140,60 +4113,62 @@ endobj
893 0 obj
<< /D [ 891 0 R /XYZ 78.37 808.885 null ] >>
endobj
+349 0 obj
+<< /D [ 891 0 R /XYZ 79.37 252.469 null ] >>
+endobj
890 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F55 383 0 R /F66 388 0 R /F56 384 0 R /F25 375 0 R /F16 382 0 R /F19 379 0 R /F17 380 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F16 382 0 R /F15 381 0 R /F19 379 0 R /F17 380 0 R /F68 402 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
896 0 obj
-<< /Filter /FlateDecode /Length 11745 >>
-stream
-x}M%^-%7'Mtuu 0q /HZg8dfw*MC3Z^`0! 2} o~AçV?ΐfR\zKl{4o?ϟ.3wciηCoH/ģ<䶗s%/uۗÅ?K |;vω| n?t_ITtV )A:UnR<+cf1?6o=\f}j
- ֟_u/~3ԭ;Ù+)?Sk=͇֋?'\!Z~UZ[ flz)jS ruv&ݢ-[=[D!? \iϋ}پ7Ob9DMxμ׿Z"on>긵7-}
-ŕ7chiBVA+}"3UByVl}%u7K{c2e}^vTA)eCzx^~ o{yV}Ȗ:}"O:`ќ'@nk}^ZL6Z?VK/.c]e_l-NT;hRhjR-.16%RڝijvymWj^-]^EeoSuPrho>EwOfi2$OL!ͭB> q3p|Ď uMD )RYLrm ^v[y!%%m֚*HZlhɿp %JwےSP{**z3LᩍEM,"7bIwZo 60gXŌ |3["^hF E]2Iԍ ,>b3nN5_ܶb䥖25B@綜ˮ淘(Mͥ(5)hO*:l!yH{T"q{8ФÕ;~q# W6>nQ7Ym8d$?nXꐥcU 7|5T|2;93s.>^nѹRKHҢR z ӔS2vWDvf'
-r9 RFӣQ)?n ||jatY
-ZSWr5;5POs%V=-RwZZ$>o^}yIٗEB/T piK,Ƞ6
-q Sl5$9L&p+{]n? "4~H*U};R+`BāXF<aՖJњ[өv,m*gt@'g~bNBOJōw쩟)1?v6^ϙ_ħ L}ĿsC%ұ4r_6FYQN5<W8uIi{Ul/w)󣢟)+z^gV5 ݾkOOzLGd[Wc
-]hDkpьw|k{ fJ`E0vѻM'HEAҖ}S2>!u04So<|z6 ?V4>}dŻg|Px曷qGKCվ.d)zr jjSڑg率jVxPxO1c͔={fkH]6ʕ= Czߴ0](XSsTPvmURHG
-C٫I
-.|筑7[϶F+{PRw]W@p(|.o_˾fqzXZ^_1'_Eߴ5kxOŸZ1W+heËk0czY|^Z -Cc4ܟ~ֲ]tzᵆzĩN[pr3>[=_t %nh0NbzpU(tAhy
-F$JJ=ߝϓC&gZaX4@J,XȺC[.ewZqf;;!m^-䍟}qfF<s^p7IF:O&R%Z,2;1)z H2T_LB2@k ֪6y{MgpXdl+A+_qs+؄ݿLkԠW`͗Ӧg4)_onv^9%Vs&<}hsb7zߒO=ro?M%4HX}б?So]b~Іw)Ȟ`2=?{T4?
-NS-%?Fhgg?."-E"M]&,C)a֥
-riK(c ]{:`*7 jA_lJTO
-[M}b(kibaܖE#Y tOŪps6'LS71_0]o$m(/Ϭ￾:=9kPFC#Cewc}fl<Χa3{y__f_L'>[cYSտǓ r+sxc6(CԫNjf\n.=[=/F(2%=LrWB5װr6OHWzнٗ땹$?S ;>y1Ӝb%bW_{gp
-"obTVVI|n%K$dhҔ'dVc-B<Gy4PD*ڂx`AnFZ3)jL%҉e糁{Uhf;@=0sO݅/X%[Z!3!1J=')MXUhbfRue|ҰP;HE41zYU:1÷{zo~ ;i̬R, ߌZJlU=c":V0&^'2bxlSSBML06\I97s4Q$]D \5VĊ\2B]Κa~fZP#@k 1CH Mcn9{K&V;QR'SbIMLZ[0w3JERH1ءi=T*a&MT p'ߩP4w''~|AdӞ?Ro [kgUĞ+%=ϊ4|AsC$CJqș70)xb^}n>wU=#.&ك4]KS>aE4ӃQwЊyةǚ%37Cm@P̜r@x"fm'`!`07DR μj+PpbwE(%)Vd4 h\wx(eZ̐@‹%i=НZv7b0֎1VJMԴAcKC+
-oLV%ԜwQaDKC)
-%ISKSZy7[8$3Uj._, "\LI.A}0[I84oA-I}w8%ԫbHsuoWCK4; 3ĘƪLr^biyPҐ@/BͻŔ&Rwx> V&N`O體W82riJ0~vJ@6kj)nhŵppwJU&uRp15?u`iH OfbJoqJӻ_CK<Vx+WM#nβS/0K)ɚ[ֆW:X$ ):E!VM)(01b]3SL'!{>H#YEjL}D 5` D҉:QW2!*P b
-'h'qnyflV͇:̷YNfnvCPm=p)!nqT$XmĨ˭2!/Ytsa5:d߆аKkZ= MΨ$0~h
-je@sD y":En(QC(bH$uϣ8˜M\B
-v5VLזT&4~!L:g?MW(tBx[鱔f&U!@MVPEqQG B"fUQLϛM2ĨPUI
-?0Iq]d QsVxS<V
-=HB*vjNER?7Hu Rf:V-'PEbWHjR!e)y-K!\Br_fU|XB"!UkU.K!TVh`q)tIQ}<S5 ɲW&eac2J4S{ϫ!\e6y8@9CGy|= ,-Bݬ٘ͪPGbD_闝:-āG]6GA!D~-#eW&eb2[?RG氳 "\eD&V,-0tKsYzfCaNԤ-~
-r+(+*z@dg\xq ,OAN!NACD"5! 
-ʈjX=Rp;Yjyoۨ7kR#^ASUUH`H%5ShV`y
-mo<LF {
-RJ$F}b
-BeQRDjZ9<*P)?\|#Oj СBA!8":/Vs2)iAN@؁`<r2 TZeDe&+T
- DS 1m_; cZG6FNjx)( (4=H
-"85Y
- [dG? <,4i9/Ϻy T<E%jWAYA#؄ ƌ>?w;3;9$ >̢iSBT0NʂLY!< _L{rAoڛXyW_v{P.U!*D ʊLY&xHt+u$xToL4wO~d(DT*p.ĩ SGqrN/Ă_>"Iŭ}P_jU>D k.Xj@P6aCn ݓxSŇBIʸc:~K0BdMP̚;) 2zda >O^!:#tZ`Ĵ6j}0Qm 
-QLʀlX=aaf{W.X vW$,?ie|G$@*p.Lā SG Jݖ"oxNIq=)[ݾKdI :[l=e pgUjYcV*lgX}]j\=XoAYq# c}PhCrHB("{7'&v!2$mܰ,@e, N@dH -K|P.RF=܆x$\̫Mk jPf[PV\`H !?Ԩ[pw㾅PY27QϽЄ.#|D!r
-`M=0xCx?$WP, NM8;pw m$cqQǃEm W|`U
-6Q\Ue<ho'ef$ Mq-t[CiH"j?$[zIi)qȶyCs(S@<
-3:)p>I#H`n@%pQU<3piW=raF@J MbMf-yMx{(TԢ׺'KT4hr.L!($dާK#a
-Ӳ"y"IlL|/UUѨ#p9v::ܓ
-.pⵖc3MVxObe@ZTZDp5;5x,!"eS֖{dIDS}얔fVPL!iO2IŊJ-*xi/*&O Sj^FWZ#~$eHRE68+v&Q-o}WQ6Ă'4*}o~"BBJ
-|o? g'm_xEeisYW jWSQS@j~7 */&ޕ`|'p}xF"WA(DT
-%m3\PІ6*~r'1K`OeJEHH6(Q
-[aG݈s%_/\#S|M=
-07HPd(@ժ_ꩨ) 5v?BT $\#b[8r%/HzP6aۓRBTB|&
-~;wO,HF5
-.`+[h)u>vCB h]w}E|;xdnŻoک,-
-_?^?\׏W=_2T'߇A~\Q{Sn~[>(]^">z>ofx_ W*@DgO>֨1ceۖ#qm3 gSSpPp#oѤQ3Tx!cNG-SuO7SBb(*,v5jhP0}&F͍[<Ewy  BR/Tw>k_6׼lcyF6Czب*FU.P;li35n
-VƇelD=%cD{ ?CˆuBkU0Z<ijO|HV%}V8e~v-ܧwY/^eq١퇦c~$͎ڏOB YxR8GҖ5k)\:ͧjZly]5m?G+O46\ObitQsm S;. f&iTAϣ/ =˖gu'|Pl#wn>tN;U߽
-nC[K CC7zr7jY,13?b_|PWswqk g~] 5N>n:Cw $0o'mOm/k>
- 1!+Þ:y}67f+}@BU~i |<T{:HB}z\ŏ.=X &A1)XP?i/SA{l/9`^kdulMmq
-gdڹneptߊSx85|U |]{5
-ᾮWs-?luƧlbY]:|kcӝ{
- {T>ԞczO/ӫnUͽ~i\b-=Յ>:-܅Kw(q?1
+<< /Filter /FlateDecode /Length 10373 >>
+stream
+x}M-7^.=N~ KO^mO;"``ޒng0Uu*sdf?~s7ʖ\JoFV[h5,Yp]|mQǛ KC5nٗQ
+Sb?Q
+cےg}\/-öW-HKj4^ܺ-miu{Y(eS:b=(Qp/>
+C;u=PP^lQʮJ CY_o72~s6ʾijp<X\ʫ5oZB#be𛖾f}4F'x$>Q.[ne7zko=:!efH[cFٯpY+1E/ejqևjװS&?4|i;PɅץZ6
+z)r!}Qq J^ֳA/*4 k;]t5k s YqFϿrNuz^CRQ|jj1KP&FxHbav{_D7ánZAT7 fB_Lf;9VC
+Dl /\mƍ.oKI.n)qd ۟4*~ȝOoyk%P?qڋX Ъ )%eldjzSW1^\}<~>r|崝hжl'nmkhDb}?G;QsմB4a89TDK 驉Bآ)<-wO6_nyMÝ!Deȿܕyiyjs%si+%)%%+yҪbitm[Lm/.JrQ>.όR6k} 9Ҁ*G /||<GL
+>#~4
+-Z-(n3b񕊙Gl#tژGG] S41EoUI.s|c|sbh.,=\|d9Jmg 4I#5wrˬ--#b.ևpDF|-C^k8Bl|Bf5I͆+նQW="wGiMΏm9[mi˷[Cr_Fg6iҪTod^magG
+-_G筲ݛ(ia)vy^\ȃtHmV_w7RkzZả7"ph)ʾGׇfhuh|PHp4 j|7K[5g%sٗ$|eu,V`5owRoʍ#ه-'QOMnxwic͖xBDOgV/guI@k=~Aw¢T
+6i\n [+_|%PUZMoɘd|8fEӝG'gύMo>w;ɏoZt8i<W
+dQ;e(1:Pob'UEFg!y䒽[,ضKU^OO% 2DE<htU4P #13Ks~|l4h"E!7Ep(E턮:SWjT <9
+P.4?!+ mzRk("Тp|&Fq Fi%l}ֆYC5<6!#1q<?WME9BYN(3EzFv,ф6Ą2h8IS۩ii.lB3Bf[[0B)^!݄Qv4ww&+ЗP ;
++!B (?&zʃkqtͼukfM
+ՉIK h/-hvrANNZNbQvnBRQSra<EW #9qwʃBТ~TÒ+&< Z5]Zoj(F.@q3 PPRxygFPJVn2ͨ3gL}T2W
+dR,0bnfXBzB3yEiT*#:aP(Cu%Be8U;*~zD[Q*`&$Zy?6#h5`Yyȉߓ< +Wqr& c.+NX ҕ|rx;)ոf[
+!w7ʧs΄0A0E ݞTYzW6q?rXm.Yc¸Uǰ
+K&n#T1
+Hm=pVDuk{ɿUui6Ȁu59Zag[d`dw94Jc/{YBq3<Op5[{ t%jg .ҡ1Rn:C)n燸xVC2yqRfh|Nqg~b[kNӉ6QGv;ih<Iד
+7
+jz=Kp:f|LDW&6evC6!G459 ce^/Ժ .FӔzsڤhm`BCX&u3To3z:Z\I6e8UXb&=_EMjr.Qh3-*!uy&wUI$hl ﹿzIcr WE,4%bEDkDNՈEں;%fHEYeG.I ho1 UE&4^2[i(a!}YtggU韖xFwr]P+kܖRjeLE
+K[A~"*r˥+5p{|)tW/ ek@"r\3Ƣq`aؖbHUWMg.#Q3<Hwm0<Op5[{ t|yoq٩lL<p>e ;H W;R&fE
+Vê[ߎ5^#Ssxp`Y @ec˔0yEՌW=`SX#uTo&9x=Kp@"y <IN)!q:1H]՛ bcd5%P:v\&",lIv)Ӊ䦰CrWP;Nm*%py4fj3AVLmӉԣNTP T0FR,fˬipŗ˵6
+
+q|g(6 v*
+N_Rw*Ρi h kh7AT
+.{43{qqCHAtQw֋hh8iyd̬3zϧ挹|shv<L9D `
+0=҂E8cY==J
+QִЇC,jU>E2d9j)H#MihbB`QRBbB3[=Yz6b,(z~e_բ՘qRCAa!hLW+GQaAd&\Qdّ" SM+@MUF.Vk}f0ie՘9I⡮Q=
+JhV5 3zVa
+@ >6NDž!:#NX|:x[Ս`vicrSA6'AuBhF4l<+ !5&pc|ҋ4l*>؂']jbw!MXKA뷢iXh׳S4vks?x^v`܂ rp ꦸRT`xM*L
+?ą!)j# ӘRv\)WBC0AX׳
+"7Wa+7HxM)<|)[ }?^#K`a\揃 Ty ךR:T y#wLF xhXy۳
+>ѥ~ GDo/8ddCiͪ6a 7=
+P 5BI^ Kv>%Kx%SNd튯iM!է@PMcn"LݐC"?
++'gF#-[)F@Gȅ/\zV0HId7e" IPn%T#E'%p7CŨJE]Ydz޴k,j KkyX3%_2^b JK=*}(QA+qQ
+I$>]?'3'~C.˅VDT;*'}(T٨3q9v@~utz
+/~Z[Zm?ށ|-VNQkF$Z*Y4BFF۽oA0I鸻/ͼtiXR f dRXYG%uL46qQ
+Iً̯+x炁cۏuOAI0[߬q+Y)=
+%P
+1PAg+y"tJ녏8
+(oƩ0n
+ $/O?.[Jρx+1oUƹHn
+z,~0>|Y;u,_ ʍ{Dtc{w(>~v8zP}o);[WVsxQ[zݾƟluFre׎qwŘц~0xG?Ec.f e=k
+n{p/LC^oc:U,%_Kk,k ӣX-jDZ<맆ua6f.s-WuƴCX~
+R<^nm/q?a%p! cFsLBv49w,ˮIoХz}:c:tL:?IaѿJ:hJ<T"/ڋHHt]H-?/+~O?dpX?ۧԭs"?umK{w]yG+exZeYs%~͎K_ack\9m-= qAU<|ʠҥ/ҫ%?~!vHu=l:G>aɽԇ>}Moa?AT=_|? q|X y_vi?:;|ZvH<_KNLuG?&nVݙ=v栮`7vdxR*6ӻq-}yֽkf%Idbλp>|qb%e\ YP췻oTKp}oՄ=ϹSDCv)G#~[wCyㅬ÷c5=~;}5 c}˷N-i_!;x/E+j;g.<l׵mRQ}.E({dFԋ׍%]}6l>Ԑ1Ozd"Sork廤XRVU$mAvZlPf=rU^cрh*^]xgGodqnV©UߵG݇ÄJXʍc7ܠ vW3iuy.$yz{0g^rB?uN' [h˽Oޟ*9'H8q=6^zrIᆫmЫ\ξ숹$
+|3g7|Nlq1KJt/\ǻG]RUZS29_OZoC#mqxwp(YϾ&.7殸ힷl mh$hrPzc!r8"GC^=/zu<J'[UylYTP* -^@Gu{^Ȍ'm2z ue2N̐0uEk9m2?4='l~/O&[li22L|N􇟾
+!
endstream
endobj
895 0 obj
@@ -4202,25 +4177,23 @@ endobj
897 0 obj
<< /D [ 895 0 R /XYZ 78.37 808.885 null ] >>
endobj
-349 0 obj
-<< /D [ 895 0 R /XYZ 79.37 615.945 null ] >>
+353 0 obj
+<< /D [ 895 0 R /XYZ 79.37 251.543 null ] >>
endobj
894 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F25 375 0 R /F19 379 0 R /F16 382 0 R /F17 380 0 R /F69 402 0 R /F15 381 0 R /F20 376 0 R /F21 378 0 R /F59 393 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F20 376 0 R /F21 378 0 R /F19 379 0 R /F17 380 0 R /F25 375 0 R /F56 384 0 R /F59 393 0 R /F68 402 0 R /F15 381 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
900 0 obj
-<< /Filter /FlateDecode /Length 2924 >>
+<< /Filter /FlateDecode /Length 2111 >>
stream
-x\͎S%xi9-{H&%*-EU},~*-ħ//;>^~8? N'1YϤ1}|#8.~o?+
-=y 2ř.+ի8h*^vfI䯚lx@i>=^']B }/
-[^ ȡ|^1I
-[f) sZܨ4.8T4sBPoEƥ4b8n΍ͤ;^@#x&Cړ4V> 82spLYPLfd>ǩT!FJ-,h
-6J)$;2$ˢʹCCY4zTl[ae4| շm߅o|)D)V %Vpw2dO#EgD,G(4ͪ bcrm)WRu_BQx(nH )hgSK2 ӷ x=N1M')xh(ҕcw 65ECLo:h ¿_N`t1AGU%f3ge=fM*fe'l5Z?韪opCsKabW~4&
-sf)Hm'~ILs*w^l2XQaI+q3%=
-0ܩ=s grvQ0qr5kL1s/e&3)\̃|
-3;
-uDD,7=Ջ[&cp\$2t.z.AvxN|qk]Eߺ8NyYϳ#/3𬓿e;lb-0x/O{` ђwN󝲾f$=VvJϘ |F^3;Ǹ3i瑴Z6LTKf+Auz$[rLnf(e }bQ9i)G7In߹nEafx7.gty~?V]wq"; h"Fü]ޜޣcyz>|KDIynCzG},)ύv <>~+VYyn{|O[w'=};>Ks- Zc|)/UVűS:(;UF6:9va'ٖ>gJ:+L?M/1*Ŕs0}i_n
-ءBo~'ڋotK{%]´fL͂ $p1xb~=,@`ns%zoE]@
+x\Ɏ6+b3 0I4%`OqD-8JnYtc6Rs/ǿ/< b;m:ϼBLk;@s-s xt6U nnQ?cŏ ?˜rӼQ 6d5~C9̛lL29knf뵵QY?3uעn/$by&OfIc]MՖ\0pMt9)M_ 6kߤ8<6'L}54lxh.&Us4]-}Z2eڼxӌLsyK<Z-%ԛ0a)L|
+rr 6 C" IL"91e4KhǜNY.Yn}CCkow v+}`S^T,AXҫ|5~fB#W?k{f ƒeZF\t @j`;lÙa6\tiz+B6\RZ#:VL 'Bw.
+MN  cL
+J1o{0Ʌ -WBR(썰\KGED "䢤j)쵤%mdh$UaA`1(8%9-m[qe!]5sBJUpvgb
+8i
+bܨ^MCЄ9,,y`U %!ָ: vC(fBqi!u5-<!4 sC??%v b8+F"`W}[A|-xnoD!Ӹq%)3:>d53Yp3
+'bx,^ Q83^1,^ Q8O1]MLȟab\j^x=1D^8<MGwG7IWMYoO713Asfft/3ҪM#ef<MB33#q}dqŒ}S3R?o%
+SVjt :E5+YƑ^Jvfy`$3 NQ=7 oUNp6 K7IJ`(ޠL53Y0\‰T13zŒl f$
endstream
endobj
899 0 obj
@@ -4229,42 +4202,33 @@ endobj
901 0 obj
<< /D [ 899 0 R /XYZ 78.37 808.885 null ] >>
endobj
-353 0 obj
-<< /D [ 899 0 R /XYZ 79.37 771.024 null ] >>
-endobj
898 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F56 384 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 384 0 R /F15 381 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1019 0 obj
-<< /Filter /FlateDecode /Length 3308 >>
-stream
-x\͎# SF+Q0h=܂\SRU(UpHHQo?i|폇O7ʢۯ|3􁾙[Hʆ[Z9ۿ~hZCk Z|nԈT%<xIxɫPD-xx@}8f 0nDvGT!BԐx7؅3o!2[~FLqsey BUH(<3r:7?y$2>I,Op+C<&ܶ}E/ۅ>]A
-StT1@o
-%B0
-?UOLJ;*s9&BV;V X81}#WR|J.I$&R|'5mthº\r"n+%؀CRƤwl?CN%v6LO`T,{,%P%+C%wj![U?1LG,"UQkR+U aGX;آSMp{.{=AcMVzD #H.=[IB9\+c"׊mkp4?(M٠s6nZ;wnʼn sghY%mQm0BǒRgT@r0&[]3ɡїw{cRmﭐMrhY;T"R5Ƽ IXHh#m wVB? :p,B&uUdsmTz Iox aoI}W &p
->SvR
-'' zfQ% '[3
-h'fr냵\e^hVho91>.vr}e
-trGy!-rϤ%2z+ {ķX]ӥ^9ڭ]vp?֨'h
-=\[bsp@ne:
-чK6V+A_`(JJQU"l ZLDkVȧv1y.1IH`#gKB/hܯVm2eb.%Juqu3ͫ*yZq[1:i Q<SJC0Y,[ J[/~J eIK#ER:,P7IPw ~4K!(,me[n"]:۱+NrVRw<e c`(|܁Vf.uuk$</jw Mw퇻vBa.g/e^=@c?ZNg5cLkGo\5m>v&i<RewH;De' ⍛*4RÑmBpTIpD5VJ?nP:yyc:Jt[6UZ|XͲld'
-y|- gbmQ4AG"g
-N9k:m6C(:m$T$4-NU@^&A&NOUW]FM
-EU7q߳kU8KLD^fV>no~sFяe< #FXFY#l;Mx r;H6v&1̎0J%o-Nm^(I7)! cdІ"1EO3 6%Ʉv$ 4F<!AEqv
-р'%R`?On4=r x6.W@-(MpԠ@ .VuЩ'i\QlWhã
-tAygAf0!O@m*m|=%@)6tĎCpnw_+nDV:EO~V%+TVX^{b¡
-I?jCыg } WƻmVu~}qf}pufNvC2.C;B GiC+!%c)Cm4ZTj=rHm9r;byw"%׉\FEne_-RtUPZ e[|qy論pb nبtzHSA_
-1I]bи8TSy)ƫ&.hbSq٥J3U\5T0
-x$^?=m?ľ<-g4.ps suЯϧE
-q.5RfTȁA?W틉<)P.7*NXwXP QPr~z`欍>(Vx98wi
-^CLOdh_*uL4XΫX0O֌^1܃6a Im陫/-7͜`G0Z8UndITW>#Q(v QScǚm㱰(`=Hc ET1z^R) e_] }u!-ÝؤAKI98sJ
+1018 0 obj
+<< /Filter /FlateDecode /Length 3289 >>
+stream
+x\͎# SF+Q0hk{ &5T%QrpHHQo?iǛAe@-$e-X_?FC᮵?wjDߒJ<֤aUpXy<Q\,koDd܍]%UH5$jz** vwiy ;?7VA9Z
+}y.3r:7I&db}8YW,lRk\gQ7 . j
+n#y|*LX[exd-|R"r7
+KfvV{VcYV%*s]8Be8w`ʒ#UZɞζ0^Y' ri\jfĔKInj-(0ݜ
+qO-0i Ӟ8ZlW^?/&c> Y ljbu-]P7u)CZTΦ&1&Y86
+;VՃ[TDۓ{X_e>*ddg
+jnsnZBQʔ.(qdh~4"i&FL)d n1(m+-3j$/Q `VJrbQfIrg:SY lGYƟ˶D<Nَ]YOuq.gCB쨈4sc4[#:g{d*Z 99칭$YP~؛V %{fMdWM!UNITMIxfJ!>m d[ܼ}Qܶ:qU÷ @mRG1%yݭBe}*->2f6Dz<j>▄3(R#g
+N9k:mNC(Fm$T$L-U@^,UB,NOX]QSUI&ªu_!e
+g̊/l<m]/aa0:48¶*ۊ
+LV9ɍfՒQWnPY hoJ}2z
+Th!ߕ6˪:/?+"* Wԟm
+txT.(0 mmGT_6ˆqhڮ햭dSTNgU_5Be*൧-:>)6x}Q9rUl߮nXYg6(8
+zWg|7O!2S.*pY`1r}k2X{,eFאQNb3yQ.mu"2ֳ}ˀ̇N2>abQPSH_+VbZ;1A K r9a謍J)l= 5@{BL~Sr=^'P&& KCӖo*&ѼM$jp[vlU,K5lec=O`[O%>M.nY>ܴ<a\k-ȣHt>ΥF
+ߌG>r *aUb%!O@J.#L -ʲS97=_59kpBh%7'Rƒpoh!_h_* L4LkV0O֌^1Ѓ6 Imwk/-7ʜ E0Z8UйnLITE>Q'vQ A5'G5l}eQ2aA5!瑖G#\r2|./)ц`>G_"9r_]ʯg'e)KN8|M:z߹Ľd0@sJ
endstream
endobj
-1018 0 obj
-<< /Type /Page /Contents 1019 0 R /Resources 1017 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 867 0 R /Annots 1021 0 R >>
+1017 0 obj
+<< /Type /Page /Contents 1018 0 R /Resources 1016 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 867 0 R /Annots 1020 0 R >>
endobj
-1021 0 obj
-[ 902 0 R 903 0 R 904 0 R 905 0 R 906 0 R 907 0 R 908 0 R 909 0 R 910 0 R 911 0 R 912 0 R 913 0 R 914 0 R 915 0 R 916 0 R 917 0 R 918 0 R 919 0 R 920 0 R 921 0 R 922 0 R 923 0 R 924 0 R 925 0 R 926 0 R 927 0 R 928 0 R 929 0 R 930 0 R 931 0 R 932 0 R 933 0 R 934 0 R 935 0 R 936 0 R 937 0 R 938 0 R 939 0 R 940 0 R 941 0 R 942 0 R 943 0 R 944 0 R 945 0 R 946 0 R 947 0 R 948 0 R 949 0 R 950 0 R 951 0 R 952 0 R 953 0 R 954 0 R 955 0 R 956 0 R 957 0 R 958 0 R 959 0 R 960 0 R 961 0 R 962 0 R 963 0 R 964 0 R 965 0 R 966 0 R 967 0 R 968 0 R 969 0 R 970 0 R 971 0 R 972 0 R 973 0 R 974 0 R 975 0 R 976 0 R 977 0 R 978 0 R 979 0 R 980 0 R 981 0 R 982 0 R 983 0 R 984 0 R 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R 990 0 R 991 0 R 992 0 R 993 0 R 994 0 R 995 0 R 996 0 R 997 0 R 998 0 R 999 0 R 1000 0 R 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R 1006 0 R 1007 0 R 1008 0 R 1009 0 R 1010 0 R 1011 0 R 1012 0 R 1013 0 R 1014 0 R ]
+1020 0 obj
+[ 902 0 R 903 0 R 904 0 R 905 0 R 906 0 R 907 0 R 908 0 R 909 0 R 910 0 R 911 0 R 912 0 R 913 0 R 914 0 R 915 0 R 916 0 R 917 0 R 918 0 R 919 0 R 920 0 R 921 0 R 922 0 R 923 0 R 924 0 R 925 0 R 926 0 R 927 0 R 928 0 R 929 0 R 930 0 R 931 0 R 932 0 R 933 0 R 934 0 R 935 0 R 936 0 R 937 0 R 938 0 R 939 0 R 940 0 R 941 0 R 942 0 R 943 0 R 944 0 R 945 0 R 946 0 R 947 0 R 948 0 R 949 0 R 950 0 R 951 0 R 952 0 R 953 0 R 954 0 R 955 0 R 956 0 R 957 0 R 958 0 R 959 0 R 960 0 R 961 0 R 962 0 R 963 0 R 964 0 R 965 0 R 966 0 R 967 0 R 968 0 R 969 0 R 970 0 R 971 0 R 972 0 R 973 0 R 974 0 R 975 0 R 976 0 R 977 0 R 978 0 R 979 0 R 980 0 R 981 0 R 982 0 R 983 0 R 984 0 R 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R 990 0 R 991 0 R 992 0 R 993 0 R 994 0 R 995 0 R 996 0 R 997 0 R 998 0 R 999 0 R 1000 0 R 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R 1006 0 R 1007 0 R 1008 0 R 1009 0 R 1010 0 R 1011 0 R 1012 0 R 1013 0 R ]
endobj
902 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 134.055 681.88 141.029 692.928 ]/A << /S /GoTo /D (page.9) >> >>
@@ -4336,10 +4300,10 @@ endobj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.032 375.635 244.987 387.59 ]/A << /S /GoTo /D (page.42) >> >>
endobj
925 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 223.848 342.348 235.804 354.303 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 223.848 342.348 235.804 354.303 ]/A << /S /GoTo /D (page.40) >> >>
endobj
926 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 144.795 330.951 156.75 341.79 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 144.795 330.951 156.75 341.79 ]/A << /S /GoTo /D (page.40) >> >>
endobj
927 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 236.479 318.438 248.434 330.393 ]/A << /S /GoTo /D (page.14) >> >>
@@ -4381,7 +4345,7 @@ endobj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.871 186.931 245.826 198.886 ]/A << /S /GoTo /D (page.18) >> >>
endobj
940 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.921 186.931 262.095 198.886 ]/A << /S /GoTo /D (page.69) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.921 186.931 262.095 198.886 ]/A << /S /GoTo /D (page.68) >> >>
endobj
941 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.465 174.976 231.42 186.931 ]/A << /S /GoTo /D (page.10) >> >>
@@ -4435,7 +4399,7 @@ endobj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 374.958 693.835 386.913 704.664 ]/A << /S /GoTo /D (page.39) >> >>
endobj
958 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.008 693.835 403.182 704.664 ]/A << /S /GoTo /D (page.68) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.008 693.835 403.182 704.664 ]/A << /S /GoTo /D (page.67) >> >>
endobj
959 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.705 681.531 411.66 692.709 ]/A << /S /GoTo /D (page.17) >> >>
@@ -4444,13 +4408,13 @@ endobj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.755 681.531 427.929 692.709 ]/A << /S /GoTo /D (page.67) >> >>
endobj
961 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 431.028 681.531 443.202 692.709 ]/A << /S /GoTo /D (page.69) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 432.562 681.531 444.736 692.709 ]/A << /S /GoTo /D (page.68) >> >>
endobj
962 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 392.821 669.357 404.776 681.312 ]/A << /S /GoTo /D (page.13) >> >>
endobj
963 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.871 669.357 421.045 681.312 ]/A << /S /GoTo /D (page.69) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.871 669.357 421.045 681.312 ]/A << /S /GoTo /D (page.68) >> >>
endobj
964 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.585 646.004 390.559 656.844 ]/A << /S /GoTo /D (page.5) >> >>
@@ -4522,1083 +4486,1082 @@ endobj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 365.374 371.045 377.329 381.984 ]/A << /S /GoTo /D (page.11) >> >>
endobj
987 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 473.372 358.522 485.327 370.478 ]/A << /S /GoTo /D (page.52) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 476.268 358.522 488.223 370.478 ]/A << /S /GoTo /D (page.52) >> >>
endobj
988 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 488.698 358.522 500.873 370.478 ]/A << /S /GoTo /D (page.67) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 492.318 358.522 504.492 370.478 ]/A << /S /GoTo /D (page.67) >> >>
endobj
989 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 504.727 358.522 516.902 370.478 ]/A << /S /GoTo /D (page.68) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.511 347.135 399.466 357.965 ]/A << /S /GoTo /D (page.50) >> >>
endobj
990 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.511 347.135 399.466 357.965 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 386.126 335.05 398.081 346.009 ]/A << /S /GoTo /D (page.50) >> >>
endobj
991 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 386.126 335.05 398.081 346.009 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.934 323.225 411.889 334.054 ]/A << /S /GoTo /D (page.50) >> >>
endobj
992 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.934 323.225 411.889 334.054 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.984 323.225 428.158 334.054 ]/A << /S /GoTo /D (page.67) >> >>
endobj
993 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.984 323.225 428.158 334.054 ]/A << /S /GoTo /D (page.67) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 470.241 310.702 482.415 322.657 ]/A << /S /GoTo /D (page.54) >> >>
endobj
994 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 470.241 310.702 482.415 322.657 ]/A << /S /GoTo /D (page.54) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 357.573 299.314 369.528 310.144 ]/A << /S /GoTo /D (page.14) >> >>
endobj
995 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 357.573 299.314 369.528 310.144 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.517 299.314 384.472 310.144 ]/A << /S /GoTo /D (page.17) >> >>
endobj
996 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.517 299.314 384.472 310.144 ]/A << /S /GoTo /D (page.17) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 267.317 352.542 278.146 ]/A << /S /GoTo /D (page.28) >> >>
endobj
997 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 267.317 352.542 278.146 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.637 267.317 368.592 278.146 ]/A << /S /GoTo /D (page.55) >> >>
endobj
998 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.637 267.317 368.592 278.146 ]/A << /S /GoTo /D (page.55) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.686 267.317 384.861 278.146 ]/A << /S /GoTo /D (page.60) >> >>
endobj
999 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.686 267.317 384.861 278.146 ]/A << /S /GoTo /D (page.60) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 500.497 254.794 512.452 266.749 ]/A << /S /GoTo /D (page.20) >> >>
endobj
1000 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 500.497 254.794 512.452 266.749 ]/A << /S /GoTo /D (page.20) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 442.823 230.884 454.779 242.839 ]/A << /S /GoTo /D (page.36) >> >>
endobj
1001 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 442.823 230.884 454.779 242.839 ]/A << /S /GoTo /D (page.36) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 468.876 218.928 480.831 230.884 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1002 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 468.876 218.928 480.831 230.884 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 389.354 206.973 401.309 218.928 ]/A << /S /GoTo /D (page.63) >> >>
endobj
1003 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 389.354 206.973 401.309 218.928 ]/A << /S /GoTo /D (page.63) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 446.071 195.576 458.026 206.455 ]/A << /S /GoTo /D (page.34) >> >>
endobj
1004 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 446.071 195.576 458.026 206.455 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 481.476 183.063 493.432 195.018 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1005 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 481.476 183.063 493.432 195.018 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 349.553 171.317 361.508 182.505 ]/A << /S /GoTo /D (page.14) >> >>
endobj
1006 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 349.553 171.317 361.508 182.505 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.476 159.153 453.432 171.108 ]/A << /S /GoTo /D (page.16) >> >>
endobj
1007 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.476 159.153 453.432 171.108 ]/A << /S /GoTo /D (page.16) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.715 147.197 406.689 159.153 ]/A << /S /GoTo /D (page.4) >> >>
endobj
1008 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.715 147.197 406.689 159.153 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.784 147.197 422.958 159.153 ]/A << /S /GoTo /D (page.65) >> >>
endobj
1009 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.784 147.197 422.958 159.153 ]/A << /S /GoTo /D (page.66) >> >>
-endobj
-1010 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 471.825 135.242 483.78 147.197 ]/A << /S /GoTo /D (page.55) >> >>
endobj
-1011 0 obj
+1010 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 447.336 103.245 459.292 115.2 ]/A << /S /GoTo /D (page.39) >> >>
endobj
-1012 0 obj
+1011 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 479.725 91.29 491.68 103.245 ]/A << /S /GoTo /D (page.48) >> >>
endobj
-1013 0 obj
+1012 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.201 67.379 426.156 79.334 ]/A << /S /GoTo /D (page.40) >> >>
endobj
-1014 0 obj
+1013 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 430.25 67.379 442.425 79.334 ]/A << /S /GoTo /D (page.58) >> >>
endobj
-1020 0 obj
-<< /D [ 1018 0 R /XYZ 78.37 808.885 null ] >>
+1019 0 obj
+<< /D [ 1017 0 R /XYZ 78.37 808.885 null ] >>
endobj
357 0 obj
-<< /D [ 1018 0 R /XYZ 79.37 706.717 null ] >>
+<< /D [ 1017 0 R /XYZ 79.37 706.717 null ] >>
endobj
-1017 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F67 389 0 R /F15 381 0 R /F56 384 0 R /F57 385 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
+1016 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F66 389 0 R /F15 381 0 R /F56 384 0 R /F57 385 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1128 0 obj
-<< /Filter /FlateDecode /Length 3265 >>
+1127 0 obj
+<< /Filter /FlateDecode /Length 3263 >>
stream
x\Ɏ$7W
I "rtЮX(%,&&ˏoݔ}":)!ԛ7Nۿ~h)5=[?<C׼1XKOP Mo)o/enߵs&Nwѱqt?DYɊ [icS-AJ絴\K35dg/,CCS.ua%˓d&ysz'i}
- W-k_+͸+煉ML ~dcUIi)>pK.uLX~7-*p7x`nnxt~eQ7Eg5ftB$ŵ>^蹴nz*
-U巤UFRY+b\%ׅ;c[l2xFg9vsINt
-)x+piCgq95zIzRS^<] B&(]`VwJFt(p,d=JH+f N6T;D#_7W(j>GPnVBAP7n>]Yu (YuSd;޷`AV; jUZ5Z([eLOl 45vG˻g'z{7Bd
-`6S
-+ЈPmT8ui9\u
-&5"RY,w8B]s2
-Rz ӈ\[[B
-_UKV)f3&ybL
-[FjT3//X6#Nuv{_ }Ri]'N]
-Bi=*߷o[qb@/w^5N"'4t8abJbAh5е&fu ZhpHU{'%Lp:)LHadWd:+!);Ğnȏr{{+aa=[8NK3 83d{*L=N? I󳜲ؙ_N-K&; M?|R'A4 -֠L4
-'>}b$H2-} 9ǦQC_`ipZՀpn}w"p5[>aNl b|fqPƒg .n-[/ۭoMҘu?d&G1Chv3r&5\yYwA^EDɿa-۩*nG</f]V]:8LMf;aTQQuN
-ulìj#΃nBaBjKYԆk)% EȅkS>G["_̐@$)CLvW?F&X4GNU}e^T]ul{}ĝQG=ZQ̵Oч3)_]
- PyǷ
+ W-k_+͸+煉ML ~dcUIi)>pK.uLX~7-*p7x`nn'uVF݀gY̚I
+zޢIᶫ*WߒVQ*G;Ieq_> <ohouD%^h8%FܩVWt֧4岧/ jF*{-z]z_+yX[ޜDdF(]-'~';]\ Y2 ̡*0[%P:Yo4-(.Y.mM܋i ב<kzzx:^:,"΍w_($m ]-]@O
+$IMa{LXtI.xF>;RwY)ёlñ(%_g4#pwZ$,:O#tP퐒?cp^w|_٢Z
+Xy\BY C4A ߸[ *v d,dMx߂ <$[m40W!jhUn1?ղe'_`R>@j#lְm 0 7wN*Vo(u;9
+
+|huɻWZw4 YAT f< >ZFZpƁ_T,Ntk0֘#
+S˽9a*sN7O30J;7FuڗHHηq'|AgM0p@riŒM" ձt|Zc6=DƛA:4Y)P9)7ũ]|kD:(+DVrmVJۨ(3KqsH'JW+:M-kDVY,?qJze8/*hBDžlaMS̰#gL06&!i0&C2Lz/2Qn;Ҵ4ϾBϻk(yֹDZ3$r⒚0X5F@3rka[KOpdA .g՝P:IMC@8m9=J7Cz@6vrہYe2ȄyKTZ~Spo@3xdzwn)cNAx㸮<gC^ dBSZ@
+?k:j\rS}ԝ&l6ĭaK=oKpzXs뀛A`9ǔlneNE>8~?`3t_Gm ^8˙ G)+uDh~[}%lqRMeKJwS16Ov+t/1T_T`XSz9r)^lv&JƮ|>]AdVIr`S;هrT1c]
+MP{ y_N9%70pZ*RԅD̕l18~
+fy(YML^yУR@)<&_IӑX
+`ݺ-uqq\Gċt=|&o8Om0+2{[bOYyG`=½0F0bឭ
endstream
endobj
-1127 0 obj
-<< /Type /Page /Contents 1128 0 R /Resources 1126 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1130 0 R /Annots 1131 0 R >>
+1126 0 obj
+<< /Type /Page /Contents 1127 0 R /Resources 1125 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1129 0 R /Annots 1130 0 R >>
endobj
-1131 0 obj
-[ 1015 0 R 1016 0 R 1022 0 R 1023 0 R 1024 0 R 1025 0 R 1026 0 R 1027 0 R 1028 0 R 1029 0 R 1030 0 R 1031 0 R 1032 0 R 1033 0 R 1034 0 R 1035 0 R 1036 0 R 1037 0 R 1038 0 R 1039 0 R 1040 0 R 1041 0 R 1042 0 R 1043 0 R 1044 0 R 1045 0 R 1046 0 R 1047 0 R 1048 0 R 1049 0 R 1050 0 R 1051 0 R 1052 0 R 1053 0 R 1054 0 R 1055 0 R 1056 0 R 1057 0 R 1058 0 R 1059 0 R 1060 0 R 1061 0 R 1062 0 R 1063 0 R 1064 0 R 1065 0 R 1066 0 R 1067 0 R 1068 0 R 1069 0 R 1070 0 R 1071 0 R 1072 0 R 1073 0 R 1074 0 R 1075 0 R 1076 0 R 1077 0 R 1078 0 R 1079 0 R 1080 0 R 1081 0 R 1082 0 R 1083 0 R 1084 0 R 1085 0 R 1086 0 R 1087 0 R 1088 0 R 1089 0 R 1090 0 R 1091 0 R 1092 0 R 1093 0 R 1094 0 R 1095 0 R 1096 0 R 1097 0 R 1098 0 R 1099 0 R 1100 0 R 1101 0 R 1102 0 R 1103 0 R 1104 0 R 1105 0 R 1106 0 R 1107 0 R 1108 0 R 1109 0 R 1110 0 R 1111 0 R 1112 0 R 1113 0 R 1114 0 R 1115 0 R 1116 0 R 1117 0 R 1118 0 R 1119 0 R 1120 0 R 1121 0 R ]
+1130 0 obj
+[ 1014 0 R 1015 0 R 1021 0 R 1022 0 R 1023 0 R 1024 0 R 1025 0 R 1026 0 R 1027 0 R 1028 0 R 1029 0 R 1030 0 R 1031 0 R 1032 0 R 1033 0 R 1034 0 R 1035 0 R 1036 0 R 1037 0 R 1038 0 R 1039 0 R 1040 0 R 1041 0 R 1042 0 R 1043 0 R 1044 0 R 1045 0 R 1046 0 R 1047 0 R 1048 0 R 1049 0 R 1050 0 R 1051 0 R 1052 0 R 1053 0 R 1054 0 R 1055 0 R 1056 0 R 1057 0 R 1058 0 R 1059 0 R 1060 0 R 1061 0 R 1062 0 R 1063 0 R 1064 0 R 1065 0 R 1066 0 R 1067 0 R 1068 0 R 1069 0 R 1070 0 R 1071 0 R 1072 0 R 1073 0 R 1074 0 R 1075 0 R 1076 0 R 1077 0 R 1078 0 R 1079 0 R 1080 0 R 1081 0 R 1082 0 R 1083 0 R 1084 0 R 1085 0 R 1086 0 R 1087 0 R 1088 0 R 1089 0 R 1090 0 R 1091 0 R 1092 0 R 1093 0 R 1094 0 R 1095 0 R 1096 0 R 1097 0 R 1098 0 R 1099 0 R 1100 0 R 1101 0 R 1102 0 R 1103 0 R 1104 0 R 1105 0 R 1106 0 R 1107 0 R 1108 0 R 1109 0 R 1110 0 R 1111 0 R 1112 0 R 1113 0 R 1114 0 R 1115 0 R 1116 0 R 1117 0 R 1118 0 R 1119 0 R 1120 0 R ]
endobj
-1015 0 obj
+1014 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.361 757.574 261.316 769.529 ]/A << /S /GoTo /D (page.42) >> >>
endobj
-1016 0 obj
+1015 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 265.411 757.574 277.585 769.529 ]/A << /S /GoTo /D (page.58) >> >>
endobj
-1022 0 obj
+1021 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 272.085 745.619 284.041 757.574 ]/A << /S /GoTo /D (page.42) >> >>
endobj
-1023 0 obj
+1022 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 170.14 734.112 182.095 745.061 ]/A << /S /GoTo /D (page.56) >> >>
endobj
-1024 0 obj
+1023 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 228.66 721.708 240.615 733.664 ]/A << /S /GoTo /D (page.36) >> >>
endobj
-1025 0 obj
+1024 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 158.135 710.192 170.09 721.26 ]/A << /S /GoTo /D (page.51) >> >>
endobj
-1026 0 obj
+1025 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.81 698.236 176.765 709.195 ]/A << /S /GoTo /D (page.51) >> >>
endobj
-1027 0 obj
+1026 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 202.279 665.027 214.234 675.857 ]/A << /S /GoTo /D (page.10) >> >>
endobj
-1028 0 obj
+1027 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 217.223 665.027 229.178 675.857 ]/A << /S /GoTo /D (page.17) >> >>
endobj
-1029 0 obj
+1028 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.205 652.504 173.178 664.459 ]/A << /S /GoTo /D (page.4) >> >>
endobj
-1030 0 obj
+1029 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 117.198 641.117 129.153 652.056 ]/A << /S /GoTo /D (page.27) >> >>
endobj
-1031 0 obj
+1030 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 120.825 629.152 132.78 640.101 ]/A << /S /GoTo /D (page.27) >> >>
endobj
-1032 0 obj
+1031 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.875 629.152 149.049 640.101 ]/A << /S /GoTo /D (page.46) >> >>
endobj
-1033 0 obj
+1032 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 171.305 616.639 183.261 628.594 ]/A << /S /GoTo /D (page.40) >> >>
endobj
-1034 0 obj
+1033 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 143.131 604.683 155.086 616.639 ]/A << /S /GoTo /D (page.40) >> >>
endobj
-1035 0 obj
+1034 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 194.309 592.728 206.264 604.683 ]/A << /S /GoTo /D (page.40) >> >>
endobj
-1036 0 obj
+1035 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.799 580.773 179.754 592.728 ]/A << /S /GoTo /D (page.40) >> >>
endobj
-1037 0 obj
+1036 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 225.681 547.644 237.637 558.832 ]/A << /S /GoTo /D (page.54) >> >>
endobj
-1038 0 obj
+1037 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.912 535.688 242.867 546.876 ]/A << /S /GoTo /D (page.54) >> >>
endobj
-1039 0 obj
+1038 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 502.708 143.49 513.538 ]/A << /S /GoTo /D (page.30) >> >>
endobj
-1040 0 obj
+1039 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 490.753 159.181 501.582 ]/A << /S /GoTo /D (page.16) >> >>
endobj
+1040 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 177.721 466.275 189.896 478.23 ]/A << /S /GoTo /D (page.66) >> >>
+endobj
1041 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 177.721 466.275 189.896 478.23 ]/A << /S /GoTo /D (page.67) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 454.888 127.799 465.717 ]/A << /S /GoTo /D (page.11) >> >>
endobj
1042 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 454.888 127.799 465.717 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.983 430.977 170.957 441.846 ]/A << /S /GoTo /D (page.4) >> >>
endobj
1043 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.983 430.977 170.957 441.846 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.904 419.022 196.86 429.891 ]/A << /S /GoTo /D (page.37) >> >>
endobj
1044 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.904 419.022 196.86 429.891 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 221.238 407.057 233.193 417.936 ]/A << /S /GoTo /D (page.12) >> >>
endobj
1045 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 221.238 407.057 233.193 417.936 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 384.86 130.18 393.707 ]/A << /S /GoTo /D (page.32) >> >>
endobj
1046 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 384.86 130.18 393.707 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 370.912 133.029 382.031 ]/A << /S /GoTo /D (page.29) >> >>
endobj
1047 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 370.912 133.029 382.031 ]/A << /S /GoTo /D (page.29) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.983 347.291 170.957 358.16 ]/A << /S /GoTo /D (page.4) >> >>
endobj
1048 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.983 347.291 170.957 358.16 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.904 335.336 196.86 346.205 ]/A << /S /GoTo /D (page.37) >> >>
endobj
1049 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.904 335.336 196.86 346.205 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 221.238 323.371 233.193 334.25 ]/A << /S /GoTo /D (page.12) >> >>
endobj
1050 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 221.238 323.371 233.193 334.25 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 181.487 311.416 193.442 322.255 ]/A << /S /GoTo /D (page.12) >> >>
endobj
1051 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 181.487 311.416 193.442 322.255 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 197.537 311.416 209.711 322.255 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1052 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 197.537 311.416 209.711 322.255 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 278.087 134.523 288.916 ]/A << /S /GoTo /D (page.28) >> >>
endobj
1053 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 278.087 134.523 288.916 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 138.618 278.087 150.573 288.916 ]/A << /S /GoTo /D (page.55) >> >>
endobj
1054 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 138.618 278.087 150.573 288.916 ]/A << /S /GoTo /D (page.55) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 154.538 266.122 166.493 277.001 ]/A << /S /GoTo /D (page.56) >> >>
endobj
1055 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 154.538 266.122 166.493 277.001 ]/A << /S /GoTo /D (page.56) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 240.207 253.609 252.162 265.564 ]/A << /S /GoTo /D (page.32) >> >>
endobj
1056 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 240.207 253.609 252.162 265.564 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.3 241.653 203.256 253.609 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1057 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.3 241.653 203.256 253.609 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.295 208.315 199.251 220.27 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1058 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.295 208.315 199.251 220.27 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 212.501 174.976 224.456 186.931 ]/A << /S /GoTo /D (page.40) >> >>
endobj
1059 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 212.501 174.976 224.456 186.931 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.61 163.021 245.565 174.976 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1060 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.61 163.021 245.565 174.976 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 251.861 151.065 263.816 163.021 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1061 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 251.861 151.065 263.816 163.021 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 189.716 139.598 201.672 150.507 ]/A << /S /GoTo /D (page.24) >> >>
endobj
1062 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 189.716 139.598 201.672 150.507 ]/A << /S /GoTo /D (page.24) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.66 139.598 216.616 150.507 ]/A << /S /GoTo /D (page.26) >> >>
endobj
1063 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.66 139.598 216.616 150.507 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.505 127.713 127.46 138.552 ]/A << /S /GoTo /D (page.27) >> >>
endobj
1064 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.505 127.713 127.46 138.552 ]/A << /S /GoTo /D (page.27) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.554 127.713 143.729 138.552 ]/A << /S /GoTo /D (page.46) >> >>
endobj
1065 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.554 127.713 143.729 138.552 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.823 127.713 159.998 138.552 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1066 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.823 127.713 159.998 138.552 ]/A << /S /GoTo /D (page.60) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 119.131 115.758 131.086 126.597 ]/A << /S /GoTo /D (page.27) >> >>
endobj
1067 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 119.131 115.758 131.086 126.597 ]/A << /S /GoTo /D (page.27) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 135.181 115.758 147.355 126.597 ]/A << /S /GoTo /D (page.46) >> >>
endobj
1068 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 135.181 115.758 147.355 126.597 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 103.813 127.799 114.642 ]/A << /S /GoTo /D (page.28) >> >>
endobj
1069 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 103.813 127.799 114.642 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.116 67.937 223.071 78.816 ]/A << /S /GoTo /D (page.34) >> >>
endobj
1070 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.116 67.937 223.071 78.816 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 355.62 758.012 367.576 769.081 ]/A << /S /GoTo /D (page.51) >> >>
endobj
1071 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 355.62 758.012 367.576 769.081 ]/A << /S /GoTo /D (page.51) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.97 733.664 420.925 745.619 ]/A << /S /GoTo /D (page.38) >> >>
endobj
1072 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.97 733.664 420.925 745.619 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.15 721.708 453.105 733.664 ]/A << /S /GoTo /D (page.36) >> >>
endobj
1073 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.15 721.708 453.105 733.664 ]/A << /S /GoTo /D (page.36) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.386 710.241 427.341 721.25 ]/A << /S /GoTo /D (page.40) >> >>
endobj
1074 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.386 710.241 427.341 721.25 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 436.515 697.798 448.47 709.753 ]/A << /S /GoTo /D (page.14) >> >>
endobj
1075 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 436.515 697.798 448.47 709.753 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 359.247 686.281 371.202 697.24 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1076 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 359.247 686.281 371.202 697.24 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 403.81 674.326 415.765 685.285 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1077 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 403.81 674.326 415.765 685.285 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.434 649.977 473.389 661.933 ]/A << /S /GoTo /D (page.35) >> >>
endobj
1078 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.434 649.977 473.389 661.933 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 482.016 638.022 493.972 649.977 ]/A << /S /GoTo /D (page.32) >> >>
endobj
1079 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 482.016 638.022 493.972 649.977 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 498.066 638.022 510.241 649.977 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1080 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 498.066 638.022 510.241 649.977 ]/A << /S /GoTo /D (page.60) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 422.111 626.067 429.085 638.022 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1081 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 422.111 626.067 429.085 638.022 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 398.51 592.194 410.465 604.149 ]/A << /S /GoTo /D (page.28) >> >>
endobj
1082 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 398.51 592.194 410.465 604.149 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 474.542 580.239 486.498 592.194 ]/A << /S /GoTo /D (page.63) >> >>
endobj
1083 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 474.542 580.239 486.498 592.194 ]/A << /S /GoTo /D (page.63) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 463.344 568.284 475.3 580.239 ]/A << /S /GoTo /D (page.14) >> >>
endobj
1084 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 463.344 568.284 475.3 580.239 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.232 523.024 394.206 533.893 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1085 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.232 523.024 394.206 533.893 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.153 511.068 420.109 521.938 ]/A << /S /GoTo /D (page.53) >> >>
endobj
1086 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.153 511.068 420.109 521.938 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 444.487 499.103 456.442 509.982 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1087 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 444.487 499.103 456.442 509.982 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 427.909 486.59 439.864 498.545 ]/A << /S /GoTo /D (page.23) >> >>
endobj
1088 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 427.909 486.59 439.864 498.545 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 365.244 474.854 372.218 486.032 ]/A << /S /GoTo /D (page.2) >> >>
endobj
1089 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 365.244 474.854 372.218 486.032 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.548 462.899 429.503 474.077 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1090 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.548 462.899 429.503 474.077 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 370.475 451.293 377.449 462.122 ]/A << /S /GoTo /D (page.2) >> >>
endobj
1091 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 370.475 451.293 377.449 462.122 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 396.627 439.337 408.582 450.167 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1092 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 396.627 439.337 408.582 450.167 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 412.676 439.337 424.851 450.167 ]/A << /S /GoTo /D (page.62) >> >>
endobj
1093 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 412.676 439.337 424.851 450.167 ]/A << /S /GoTo /D (page.62) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.857 427.382 413.812 438.212 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1094 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.857 427.382 413.812 438.212 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.857 415.138 408.831 426.256 ]/A << /S /GoTo /D (page.1) >> >>
endobj
1095 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.857 415.138 408.831 426.256 ]/A << /S /GoTo /D (page.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 403.472 382.679 414.301 ]/A << /S /GoTo /D (page.2) >> >>
endobj
1096 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 403.472 382.679 414.301 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.935 391.517 387.909 402.346 ]/A << /S /GoTo /D (page.2) >> >>
endobj
1097 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.935 391.517 387.909 402.346 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.935 379.562 392.891 390.391 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1098 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.935 379.562 392.891 390.391 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 363.939 367.606 375.894 378.436 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1099 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 363.939 367.606 375.894 378.436 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.571 355.651 351.526 366.481 ]/A << /S /GoTo /D (page.23) >> >>
endobj
1100 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.571 355.651 351.526 366.481 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 398.719 343.128 410.674 355.083 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1101 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 398.719 343.128 410.674 355.083 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 413.663 343.128 425.618 355.083 ]/A << /S /GoTo /D (page.53) >> >>
endobj
1102 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 413.663 343.128 425.618 355.083 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 466.714 331.173 478.669 343.128 ]/A << /S /GoTo /D (page.39) >> >>
endobj
1103 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 466.714 331.173 478.669 343.128 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 426.654 319.786 438.609 330.615 ]/A << /S /GoTo /D (page.40) >> >>
endobj
1104 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 426.654 319.786 438.609 330.615 ]/A << /S /GoTo /D (page.40) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.598 319.786 453.553 330.615 ]/A << /S /GoTo /D (page.44) >> >>
endobj
1105 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.598 319.786 453.553 330.615 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.648 319.786 469.822 330.615 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1106 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.648 319.786 469.822 330.615 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 307.482 366.739 318.66 ]/A << /S /GoTo /D (page.13) >> >>
endobj
1107 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 307.482 366.739 318.66 ]/A << /S /GoTo /D (page.13) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.546 283.352 395.501 295.307 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1108 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.546 283.352 395.501 295.307 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.595 283.352 411.77 295.307 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1109 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.595 283.352 411.77 295.307 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.766 271.845 368.721 282.904 ]/A << /S /GoTo /D (page.29) >> >>
endobj
1110 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.766 271.845 368.721 282.904 ]/A << /S /GoTo /D (page.29) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 407.087 237.743 419.043 248.921 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1111 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 407.087 237.743 419.043 248.921 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 455.854 213.614 462.828 225.569 ]/A << /S /GoTo /D (page.4) >> >>
endobj
1112 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 455.854 213.614 462.828 225.569 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 420.089 189.703 432.044 201.659 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1113 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 420.089 189.703 432.044 201.659 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.983 165.793 446.938 177.748 ]/A << /S /GoTo /D (page.38) >> >>
endobj
1114 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.983 165.793 446.938 177.748 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 427.22 131.92 439.175 143.875 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1115 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 427.22 131.92 439.175 143.875 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 376.98 120.403 388.935 131.362 ]/A << /S /GoTo /D (page.55) >> >>
endobj
1116 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 376.98 120.403 388.935 131.362 ]/A << /S /GoTo /D (page.55) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 108.289 403.351 119.407 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1117 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 108.289 403.351 119.407 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 368.323 96.493 380.278 107.562 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1118 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 368.323 96.493 380.278 107.562 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.373 96.493 396.547 107.562 ]/A << /S /GoTo /D (page.68) >> >>
endobj
1119 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.373 96.493 396.547 107.562 ]/A << /S /GoTo /D (page.69) >> >>
-endobj
-1120 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 370.475 84.319 377.449 95.497 ]/A << /S /GoTo /D (page.2) >> >>
endobj
-1121 0 obj
+1120 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 72.423 382.679 83.542 ]/A << /S /GoTo /D (page.2) >> >>
endobj
-1129 0 obj
-<< /D [ 1127 0 R /XYZ 78.37 808.885 null ] >>
+1128 0 obj
+<< /D [ 1126 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1126 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F57 385 0 R /F56 384 0 R /F67 389 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
+1125 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F57 385 0 R /F56 384 0 R /F66 389 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1221 0 obj
-<< /Filter /FlateDecode /Length 3250 >>
-stream
-x\ˎ W\E40=}+@ֳ MVmHY*K*OrE]2_㐒[yӷ|۟>ܒJz7C7BRnoX٧9.?O "]C߀O~,OwϿtͤ3)(Qg0EO4
-T#}Ф]מ6zEn<h$e-}SSAe|2%k"{5-ݯ3|P9\)np&Bcg͙="A ]
-Fy)zOECT΃iQ"t?E$2g4[Oa=sה.4͛_ ~y.,}狀l`&Bv]L{XNRMqf.}\|q 8a
-1IjM
-;rqެiWBKPscb I6l keʦI/ $9^0&}G'
-!tEA䙗0_/V1"ɠ#%OUr/GψErZ4X%GZt]EU*]}n`A['p.TRِ9OHT
-`JGwY Eǒv:S 
-OC^T(#sg)teHJ :3 J_^0~3&[n[AadtD gR.jTfŀd"\! @n' 2~^XpHK+0z~
-?FwD?&_Wx(ؖ98<o4V*'Ƴ~ĮWu gSԚpشhqEœͦ@VeDOVA,ڲ Xf5jgLRl^q-VT]8iMU;,}əvWJ ]L[EHgv?mQ|) & 2=!J$k'<MPp,c:85ު6eDsXӔ, b?p[5*|bDKjP6ۘ\jޔ]
-`j6"XH. FM$OE')oF6P5~rj3z<HHzlTo|%'T|MWٓJ5zJ"9ԦZ>K9ݸΉړMu~#p2(v EM>ƥ9}&l.kNjrbxW,@k<mz= b쾎/(_U^>Rr}4Ilʐw.{[v
-
-/C5A &_l6t.6zv4=9չּ~̑])m<rO$G%;33|VRS=;p3=';8 NhsUӹ:`zOLdr'ʣNL\o6ng_v2$̇tQdNW
-HP-n',}#ux8aHg R=F $ DƳ]չPV'l',;Ӗ "z޴Y(=c[>B4isƥ"۾ CA[4jFM{2sD9#XFWM mPoazη&dN G)+.K0[IH
-ax7@]ɫjH63 l0z MKQaE%Z>9O$
-
-'7;sMЇLy4Ӱ^w9R
-Mb;'t9pJ(8<+!(phy`TK.OKIߕRp>t_1?`Ts&Sf(i]1(l?hixh~f 鱃:򰬮Zuil 2H@"Û5Cy   $dEqRܮUA="ydyPk֊= = >.$(h Gt`c $ͩQ3~l='Z(:GۿWt
+1220 0 obj
+<< /Filter /FlateDecode /Length 3263 >>
+stream
+x\͒+ ޟ . !*5U3׷*KeAd1-$!O?o|D"Y|3
+͓Qn>W5ZS߇qُ }͟7W[&Z;c;>̝q#LbDEb
+]m[:j#+pNT%RN/yôD0SMԮP!{_vƹ3dlNlrw:g)$7
+֧<:[3*%gCݙ=Kή
+? IV|>3|[ HGIyYPэ^1K1$k#nI,@:b `58ȸ<ٸ\(Z(cc1'#z S#plUZ+NH
+7/3Ayl\JB[y
+L:8xA!ڗ0>_+-@VR~(tiP:w4 I@I<a6]p:.DT̒ Q8x;ڮ`Qmw3 ZWEzbOwy˽ G <9FïQnRBoΞ<(kV[%æjN8w@UTU*OX[+EjCi8k7y!Zu6S
+k^5TO
+87{ZdSEOFIpK4ox5]jg&}2p٣z pumZQdI4WkJX1VQ͉"gJ"6g+e#K;ns@ Jl9m=P|
+ L@jJX蹆s*+]=SC@
+da3ۗ3L-qBK/7 }12
+L=tBGݦ)hdl~?\h_ =`mхa"
+؎c<T1unqC4"4а }\bscE(]j4.a㳽w4ǩ8>7vBo荤~mzh$5[\x9x :Goyck~|'*_9"4"pz\2zxb#^̲wʅPڧ)܏ NUX
+r.J!p|0ddLU]C=˥XrSdO)gĜAQM
endstream
endobj
-1220 0 obj
-<< /Type /Page /Contents 1221 0 R /Resources 1219 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1130 0 R /Annots 1223 0 R >>
+1219 0 obj
+<< /Type /Page /Contents 1220 0 R /Resources 1218 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1129 0 R /Annots 1222 0 R >>
endobj
-1223 0 obj
-[ 1122 0 R 1123 0 R 1124 0 R 1125 0 R 1132 0 R 1133 0 R 1134 0 R 1135 0 R 1136 0 R 1137 0 R 1138 0 R 1139 0 R 1140 0 R 1141 0 R 1142 0 R 1143 0 R 1144 0 R 1145 0 R 1146 0 R 1147 0 R 1148 0 R 1149 0 R 1150 0 R 1151 0 R 1152 0 R 1153 0 R 1154 0 R 1155 0 R 1156 0 R 1157 0 R 1158 0 R 1159 0 R 1160 0 R 1161 0 R 1162 0 R 1163 0 R 1164 0 R 1165 0 R 1166 0 R 1167 0 R 1168 0 R 1169 0 R 1170 0 R 1171 0 R 1172 0 R 1173 0 R 1174 0 R 1175 0 R 1176 0 R 1177 0 R 1178 0 R 1179 0 R 1180 0 R 1181 0 R 1182 0 R 1183 0 R 1184 0 R 1185 0 R 1186 0 R 1187 0 R 1188 0 R 1189 0 R 1190 0 R 1191 0 R 1192 0 R 1193 0 R 1194 0 R 1195 0 R 1196 0 R 1197 0 R 1198 0 R 1199 0 R 1200 0 R 1201 0 R 1202 0 R 1203 0 R 1204 0 R 1205 0 R 1206 0 R 1207 0 R 1208 0 R 1209 0 R 1210 0 R 1211 0 R 1212 0 R 1213 0 R 1214 0 R 1215 0 R 1216 0 R 1217 0 R 1218 0 R ]
+1222 0 obj
+[ 1121 0 R 1122 0 R 1123 0 R 1124 0 R 1131 0 R 1132 0 R 1133 0 R 1134 0 R 1135 0 R 1136 0 R 1137 0 R 1138 0 R 1139 0 R 1140 0 R 1141 0 R 1142 0 R 1143 0 R 1144 0 R 1145 0 R 1146 0 R 1147 0 R 1148 0 R 1149 0 R 1150 0 R 1151 0 R 1152 0 R 1153 0 R 1154 0 R 1155 0 R 1156 0 R 1157 0 R 1158 0 R 1159 0 R 1160 0 R 1161 0 R 1162 0 R 1163 0 R 1164 0 R 1165 0 R 1166 0 R 1167 0 R 1168 0 R 1169 0 R 1170 0 R 1171 0 R 1172 0 R 1173 0 R 1174 0 R 1175 0 R 1176 0 R 1177 0 R 1178 0 R 1179 0 R 1180 0 R 1181 0 R 1182 0 R 1183 0 R 1184 0 R 1185 0 R 1186 0 R 1187 0 R 1188 0 R 1189 0 R 1190 0 R 1191 0 R 1192 0 R 1193 0 R 1194 0 R 1195 0 R 1196 0 R 1197 0 R 1198 0 R 1199 0 R 1200 0 R 1201 0 R 1202 0 R 1203 0 R 1204 0 R 1205 0 R 1206 0 R 1207 0 R 1208 0 R 1209 0 R 1210 0 R 1211 0 R 1212 0 R 1213 0 R 1214 0 R 1215 0 R 1216 0 R 1217 0 R ]
endobj
-1122 0 obj
+1121 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 202.339 757.584 214.294 769.529 ]/A << /S /GoTo /D (page.28) >> >>
endobj
-1123 0 obj
+1122 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 217.283 757.584 229.238 769.529 ]/A << /S /GoTo /D (page.33) >> >>
endobj
-1124 0 obj
+1123 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.333 757.584 245.507 769.529 ]/A << /S /GoTo /D (page.59) >> >>
endobj
-1125 0 obj
+1124 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 246.633 723.701 258.588 735.656 ]/A << /S /GoTo /D (page.32) >> >>
endobj
-1132 0 obj
+1131 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 702.062 130.18 710.909 ]/A << /S /GoTo /D (page.18) >> >>
endobj
-1133 0 obj
+1132 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.584 688.403 143.54 699.233 ]/A << /S /GoTo /D (page.31) >> >>
endobj
-1134 0 obj
+1133 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.354 676.448 154.309 686.999 ]/A << /S /GoTo /D (page.31) >> >>
endobj
-1135 0 obj
+1134 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 272.018 663.925 283.973 675.88 ]/A << /S /GoTo /D (page.20) >> >>
endobj
-1136 0 obj
+1135 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 241.682 651.97 248.655 663.925 ]/A << /S /GoTo /D (page.5) >> >>
endobj
-1137 0 obj
+1136 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 185.721 628.06 197.677 640.015 ]/A << /S /GoTo /D (page.19) >> >>
endobj
-1138 0 obj
+1137 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 280.187 616.104 292.142 628.06 ]/A << /S /GoTo /D (page.19) >> >>
endobj
-1139 0 obj
+1138 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.116 580.797 223.071 591.676 ]/A << /S /GoTo /D (page.34) >> >>
endobj
-1140 0 obj
+1139 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 139.046 568.722 151.002 579.681 ]/A << /S /GoTo /D (page.51) >> >>
endobj
-1141 0 obj
+1140 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 185.721 544.373 197.677 556.329 ]/A << /S /GoTo /D (page.38) >> >>
endobj
-1142 0 obj
+1141 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 224.576 532.418 236.531 544.373 ]/A << /S /GoTo /D (page.36) >> >>
endobj
+1142 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 521.021 133.248 531.86 ]/A << /S /GoTo /D (page.21) >> >>
+endobj
1143 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 521.021 133.248 531.86 ]/A << /S /GoTo /D (page.22) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 137.343 521.021 149.517 531.86 ]/A << /S /GoTo /D (page.24) >> >>
endobj
1144 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 137.343 521.021 149.517 531.86 ]/A << /S /GoTo /D (page.24) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.612 521.021 165.567 531.86 ]/A << /S /GoTo /D (page.46) >> >>
endobj
1145 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.612 521.021 165.567 531.86 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.983 497.121 170.957 507.99 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1146 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.983 497.121 170.957 507.99 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 200.596 485.166 212.551 496.035 ]/A << /S /GoTo /D (page.44) >> >>
endobj
1147 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 200.596 485.166 212.551 496.035 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 226.12 461.255 238.075 472.085 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1148 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 226.12 461.255 238.075 472.085 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.17 461.255 254.344 472.085 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1149 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.17 461.255 254.344 472.085 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 199.579 449.3 211.535 460.129 ]/A << /S /GoTo /D (page.22) >> >>
endobj
1150 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 199.579 449.3 211.535 460.129 ]/A << /S /GoTo /D (page.22) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 215.629 449.3 227.804 460.129 ]/A << /S /GoTo /D (page.66) >> >>
endobj
1151 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 215.629 449.3 227.804 460.129 ]/A << /S /GoTo /D (page.66) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 207.4 436.777 219.355 448.732 ]/A << /S /GoTo /D (page.24) >> >>
endobj
1152 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 207.4 436.777 219.355 448.732 ]/A << /S /GoTo /D (page.24) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 269.567 424.822 281.522 436.777 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1153 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 269.567 424.822 281.522 436.777 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 403.183 130.18 412.03 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1154 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 403.183 130.18 412.03 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 389.175 143.49 400.354 ]/A << /S /GoTo /D (page.23) >> >>
endobj
1155 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 389.175 143.49 400.354 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 232.944 377.001 244.899 388.956 ]/A << /S /GoTo /D (page.11) >> >>
endobj
1156 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 232.944 377.001 244.899 388.956 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 248.994 377.001 261.168 388.956 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1157 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 248.994 377.001 261.168 388.956 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.611 343.128 216.785 355.083 ]/A << /S /GoTo /D (page.22) >> >>
endobj
1158 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.611 343.128 216.785 355.083 ]/A << /S /GoTo /D (page.22) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.88 343.128 232.835 355.083 ]/A << /S /GoTo /D (page.45) >> >>
endobj
1159 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.88 343.128 232.835 355.083 ]/A << /S /GoTo /D (page.45) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 228.26 331.173 240.215 343.128 ]/A << /S /GoTo /D (page.14) >> >>
endobj
1160 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 228.26 331.173 240.215 343.128 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.115 319.776 154.07 330.615 ]/A << /S /GoTo /D (page.40) >> >>
endobj
1161 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.115 319.776 154.07 330.615 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 252.162 307.263 264.117 319.218 ]/A << /S /GoTo /D (page.32) >> >>
endobj
1162 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 252.162 307.263 264.117 319.218 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 270.982 295.307 282.937 307.263 ]/A << /S /GoTo /D (page.32) >> >>
endobj
1163 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 270.982 295.307 282.937 307.263 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 276.043 283.352 287.998 295.307 ]/A << /S /GoTo /D (page.32) >> >>
endobj
1164 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 276.043 283.352 287.998 295.307 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.734 259.442 223.689 271.397 ]/A << /S /GoTo /D (page.45) >> >>
endobj
1165 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.734 259.442 223.689 271.397 ]/A << /S /GoTo /D (page.45) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.335 247.487 175.29 259.442 ]/A << /S /GoTo /D (page.45) >> >>
endobj
1166 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.335 247.487 175.29 259.442 ]/A << /S /GoTo /D (page.45) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 193.811 235.532 205.766 247.487 ]/A << /S /GoTo /D (page.36) >> >>
endobj
1167 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 193.811 235.532 205.766 247.487 ]/A << /S /GoTo /D (page.36) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 235.126 223.576 247.081 235.532 ]/A << /S /GoTo /D (page.46) >> >>
endobj
1168 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 235.126 223.576 247.081 235.532 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 281.698 211.621 293.653 223.576 ]/A << /S /GoTo /D (page.46) >> >>
endobj
1169 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 281.698 211.621 293.653 223.576 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 145.99 200.234 157.946 211.063 ]/A << /S /GoTo /D (page.11) >> >>
endobj
1170 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 145.99 200.234 157.946 211.063 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.539 187.711 216.494 199.666 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1171 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.539 187.711 216.494 199.666 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.589 187.711 232.763 199.666 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1172 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.589 187.711 232.763 199.666 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 166.072 130.18 174.919 ]/A << /S /GoTo /D (page.35) >> >>
endobj
1173 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 118.224 166.072 130.18 174.919 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.734 139.89 225.183 151.845 ]/A << /S /GoTo /D (page.35) >> >>
endobj
1174 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.734 139.89 225.183 151.845 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.278 139.89 241.233 151.845 ]/A << /S /GoTo /D (page.53) >> >>
endobj
1175 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.278 139.89 241.233 151.845 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 245.328 139.89 257.502 151.845 ]/A << /S /GoTo /D (page.64) >> >>
endobj
1176 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 245.328 139.89 257.502 151.845 ]/A << /S /GoTo /D (page.64) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 261.597 139.89 273.771 151.845 ]/A << /S /GoTo /D (page.67) >> >>
endobj
1177 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 261.597 139.89 273.771 151.845 ]/A << /S /GoTo /D (page.68) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 106.585 159.181 117.415 ]/A << /S /GoTo /D (page.40) >> >>
endobj
1178 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 211.734 115.98 225.183 127.935 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.276 106.585 175.45 117.415 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1179 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 82.675 159.181 93.504 ]/A << /S /GoTo /D (page.40) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.15 94.062 254.105 106.017 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1180 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.276 82.675 175.45 93.504 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 152.456 82.675 164.411 93.504 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1181 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.15 70.152 254.105 82.107 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 169.851 70.152 181.806 82.107 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1182 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 758.142 387.66 768.971 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 397.732 757.574 409.907 769.529 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1183 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 393.1 745.619 405.055 757.574 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.528 745.619 429.483 757.574 ]/A << /S /GoTo /D (page.44) >> >>
endobj
1184 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 397.732 733.664 409.907 745.619 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 452.109 733.664 464.064 745.619 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1185 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.528 721.708 429.483 733.664 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.983 709.753 448.432 721.708 ]/A << /S /GoTo /D (page.39) >> >>
endobj
1186 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 452.109 709.753 464.064 721.708 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.232 686.411 394.206 697.28 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1187 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.232 686.411 394.206 697.28 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 398.3 686.411 410.475 697.28 ]/A << /S /GoTo /D (page.57) >> >>
endobj
1188 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 398.3 686.411 410.475 697.28 ]/A << /S /GoTo /D (page.57) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 452.714 674.456 459.688 685.325 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1189 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 452.714 674.456 459.688 685.325 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 463.783 674.456 475.957 685.325 ]/A << /S /GoTo /D (page.62) >> >>
endobj
1190 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 463.783 674.456 475.957 685.325 ]/A << /S /GoTo /D (page.62) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 421.272 662.501 433.227 673.37 ]/A << /S /GoTo /D (page.15) >> >>
endobj
1191 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 421.272 662.501 433.227 673.37 ]/A << /S /GoTo /D (page.15) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.96 649.977 473.915 661.933 ]/A << /S /GoTo /D (page.15) >> >>
endobj
1192 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.96 649.977 473.915 661.933 ]/A << /S /GoTo /D (page.15) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.587 638.022 435.561 649.977 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1193 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.587 638.022 435.561 649.977 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 439.655 638.022 451.83 649.977 ]/A << /S /GoTo /D (page.57) >> >>
endobj
1194 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 439.655 638.022 451.83 649.977 ]/A << /S /GoTo /D (page.57) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.983 592.194 446.938 604.149 ]/A << /S /GoTo /D (page.38) >> >>
endobj
1195 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.983 592.194 446.938 604.149 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 440.253 558.321 452.208 570.276 ]/A << /S /GoTo /D (page.26) >> >>
endobj
1196 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 440.253 558.321 452.208 570.276 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 456.303 558.321 468.258 570.276 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1197 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 456.303 558.321 468.258 570.276 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 418.495 546.366 425.468 558.321 ]/A << /S /GoTo /D (page.8) >> >>
endobj
1198 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 418.495 546.366 425.468 558.321 ]/A << /S /GoTo /D (page.8) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 395.112 534.411 407.067 546.366 ]/A << /S /GoTo /D (page.26) >> >>
endobj
1199 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 395.112 534.411 407.067 546.366 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 411.162 534.411 423.117 546.366 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1200 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 411.162 534.411 423.117 546.366 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 523.024 403.351 533.853 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1201 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 523.024 403.351 533.853 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 511.068 403.351 521.898 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1202 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 511.068 403.351 521.898 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 499.113 351.048 509.943 ]/A << /S /GoTo /D (page.28) >> >>
endobj
1203 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 499.113 351.048 509.943 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 487.158 366.739 497.987 ]/A << /S /GoTo /D (page.30) >> >>
endobj
1204 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 487.158 366.739 497.987 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.232 463.248 394.206 474.117 ]/A << /S /GoTo /D (page.4) >> >>
endobj
1205 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.232 463.248 394.206 474.117 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.153 451.293 420.109 462.162 ]/A << /S /GoTo /D (page.36) >> >>
endobj
1206 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.153 451.293 420.109 462.162 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 444.487 439.327 456.442 450.207 ]/A << /S /GoTo /D (page.12) >> >>
endobj
1207 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 444.487 439.327 456.442 450.207 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 394.754 427.382 406.709 438.212 ]/A << /S /GoTo /D (page.64) >> >>
endobj
1208 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 394.754 427.382 406.709 438.212 ]/A << /S /GoTo /D (page.65) >> >>
-endobj
-1209 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 370.475 415.078 377.449 426.256 ]/A << /S /GoTo /D (page.2) >> >>
endobj
-1210 0 obj
+1209 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 370.475 403.123 377.449 414.301 ]/A << /S /GoTo /D (page.2) >> >>
endobj
-1211 0 obj
+1210 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 391.517 382.679 402.346 ]/A << /S /GoTo /D (page.2) >> >>
endobj
-1212 0 obj
+1211 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 375.705 379.562 382.679 390.391 ]/A << /S /GoTo /D (page.2) >> >>
endobj
-1213 0 obj
+1212 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 423.845 333.733 435.8 344.603 ]/A << /S /GoTo /D (page.25) >> >>
endobj
-1214 0 obj
+1213 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 413.661 321.778 425.616 332.647 ]/A << /S /GoTo /D (page.11) >> >>
endobj
-1215 0 obj
+1214 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.059 287.337 400.014 299.293 ]/A << /S /GoTo /D (page.25) >> >>
endobj
-1216 0 obj
+1215 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 406.798 275.382 418.754 287.337 ]/A << /S /GoTo /D (page.28) >> >>
endobj
-1217 0 obj
+1216 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 423.715 263.427 435.67 275.382 ]/A << /S /GoTo /D (page.36) >> >>
endobj
-1218 0 obj
+1217 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 496.183 229.554 508.138 241.509 ]/A << /S /GoTo /D (page.38) >> >>
endobj
-1222 0 obj
-<< /D [ 1220 0 R /XYZ 78.37 808.885 null ] >>
+1221 0 obj
+<< /D [ 1219 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1219 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F67 389 0 R /F15 381 0 R /F57 385 0 R /F56 384 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
+1218 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F66 389 0 R /F15 381 0 R /F57 385 0 R /F56 384 0 R /F55 383 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1264 0 obj
-<< /Filter /FlateDecode /Length 2414 >>
-stream
-x\n6W! 0 [kr_íe3F[jnz$~/{y]@&QO/bbeh˟I
-os.As%UhKjKho&>o!~)B]s4N h)hV7SO &NQz6@ΤDPіJ@?fOoR%a8RgڒÜf'2DOR~ NwÊ
-lNd(mK:i[6.eci\M\FZZºBle7s%]W~@
-#ʼFrTߗ"oWJpW4oeJy4Qyen+ܜ+zqmeg6t\ ԢT gTBˈP{t#^h][.5\y@JȺLsE2e WIPɗUbN@w¡9QzndƉو
-)zݻoi*X?vjT + Ovy&)puKYv{?]It:PLj1F\Uj@G|U.5mi遲0;XmTx]_*o*`S~djЕ@.Y𘙞Tr"b۸GegKN\W
-`\C%q+we.Zwg`ki): ͆Z`:hff_Q<5 ^b5>I])Y,£T=si-
-xApGVG+sZJ[̈́[ umy㠊)g)`sH4ug
-pk_V(棬W0eF(VK:Ью)9VPC]RΎ_/0ztn}Tۣ.bfne۱Rlq{0Ǹ8'%鴓ZϘB  &79=F ƌBXT(f!9.4CxPxCp*^` r#Po
-t< H yەڎK&MP,d!/X`߆f!fp]JDE
-}7<z튁Jhx2#C0ZϪ*c?ooÚ)Ô2!A~nS1PiiF
-T`e-I v: zRKs C'7ڪ_GH
-
- zSyY gd?:|y?
+1263 0 obj
+<< /Filter /FlateDecode /Length 2417 >>
+stream
+x\K6 WXUX`yoEZew٤,&%QGh?~ϟ^2.~4,C#.^|\,ORO}q%<=Hp\ [&>OpC?T84hL4T䡭n;L:lIni@-U ͠?LSfW !HJ;Ӓ4:)>'I 8kX\u6(0VI mvZG6rRfK6Z\¼EdCO%]V @A'cKH=Ջۺ@2DW$dH
+}#%%- "U[a6Ռ雖ᾞrZٲr`vQwjWIbFQ2q]eeR Mq<4 2 N`޲k1!VEːhp2o(- ʼFtVߗom58ʫ:>h2*oG@7J${{: kLjѫ~2*hm5*edT{OBjwt=hѺf+\jf\I
+ρw V# ɸ|M 7rJF]^h Y(NઓJ;!]R$JnϹ5@ !qb֣/BJf݀^̗4kg"^MKz5*h/}y[R޳õ֭d= 7JMrPnsIdDR;b s[T" }upPbfSi )G9?
+ٔفl, a<f3HEo+'"kTz)tIεp%
+pk_6( QL
+S9Vs7;
+~s3?Zb.f\PغJFG=:YmP:o)֩oF{8.+hǒKiCqOJKi'i'1e)[E>&79=hOcF!TSQ,Ti*3
+Nįsąf
+vhNa<ïWnXMg p hۮv^njkۤ̒O;1jmHolGۥDTз9Z~3{خH6'3<1ÙZ2sk6̙2L)cYmz*2-HZotuU?s* r8k//j-)ŏ9SqcZw*[*P!%2+Z^
+ =5k u>@@Nn&bMU'_EGH
+@%zgNI㰲ÇHs`bPlgYw^[:g1:YV-QB([D$ζc!1HgR@һ (݃S%ء:oM㤲Ȇzq=S0rJ~A)׬`JG?Xsk /e_FA^oc^u@n$L=nP~B</XW=nI|(Y歡bȤy5,5WXл
+09s&Dt×O
endstream
endobj
-1263 0 obj
-<< /Type /Page /Contents 1264 0 R /Resources 1262 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1130 0 R /Annots 1266 0 R >>
+1262 0 obj
+<< /Type /Page /Contents 1263 0 R /Resources 1261 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1129 0 R /Annots 1265 0 R >>
endobj
-1266 0 obj
-[ 1224 0 R 1225 0 R 1226 0 R 1227 0 R 1228 0 R 1229 0 R 1230 0 R 1231 0 R 1232 0 R 1233 0 R 1234 0 R 1235 0 R 1236 0 R 1237 0 R 1238 0 R 1239 0 R 1240 0 R 1241 0 R 1242 0 R 1243 0 R 1244 0 R 1245 0 R 1246 0 R 1247 0 R 1248 0 R 1249 0 R 1250 0 R 1251 0 R 1252 0 R 1253 0 R 1254 0 R 1255 0 R 1256 0 R 1257 0 R 1258 0 R 1259 0 R 1260 0 R ]
+1265 0 obj
+[ 1223 0 R 1224 0 R 1225 0 R 1226 0 R 1227 0 R 1228 0 R 1229 0 R 1230 0 R 1231 0 R 1232 0 R 1233 0 R 1234 0 R 1235 0 R 1236 0 R 1237 0 R 1238 0 R 1239 0 R 1240 0 R 1241 0 R 1242 0 R 1243 0 R 1244 0 R 1245 0 R 1246 0 R 1247 0 R 1248 0 R 1249 0 R 1250 0 R 1251 0 R 1252 0 R 1253 0 R 1254 0 R 1255 0 R 1256 0 R 1257 0 R 1258 0 R 1259 0 R ]
endobj
-1224 0 obj
+1223 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 594.319 289.293 603.285 ]/A << /S /GoTo /D (section.1) >> >>
endobj
-1225 0 obj
+1224 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 570.458 265.951 581.467 ]/A << /S /GoTo /D (section.2) >> >>
endobj
-1226 0 obj
+1225 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 550.433 168.606 559.549 ]/A << /S /GoTo /D (section.3) >> >>
endobj
-1227 0 obj
+1226 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 528.565 140.999 537.532 ]/A << /S /GoTo /D (section.4) >> >>
endobj
-1228 0 obj
+1227 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 514.617 175.639 525.686 ]/A << /S /GoTo /D (subsection.4.1) >> >>
endobj
-1229 0 obj
+1228 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 504.495 228.102 513.621 ]/A << /S /GoTo /D (subsection.4.2) >> >>
endobj
-1230 0 obj
+1229 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 490.707 223.699 501.706 ]/A << /S /GoTo /D (subsection.4.3) >> >>
endobj
-1231 0 obj
+1230 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 480.585 213.198 489.711 ]/A << /S /GoTo /D (subsection.4.4) >> >>
endobj
-1232 0 obj
+1231 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 468.63 333.089 477.756 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
-1233 0 obj
+1232 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 456.675 321.731 465.801 ]/A << /S /GoTo /D (subsection.4.6) >> >>
endobj
-1234 0 obj
+1233 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 442.448 220.82 454.403 ]/A << /S /GoTo /D (subsection.4.7) >> >>
endobj
-1235 0 obj
+1234 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 422.911 266.419 431.987 ]/A << /S /GoTo /D (section.5) >> >>
endobj
-1236 0 obj
+1235 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 409.133 366.075 420.082 ]/A << /S /GoTo /D (subsection.5.1) >> >>
endobj
-1237 0 obj
+1236 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 398.891 232.008 408.127 ]/A << /S /GoTo /D (subsubsection.5.1.1) >> >>
endobj
-1238 0 obj
+1237 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 384.665 239.34 396.62 ]/A << /S /GoTo /D (subsubsection.5.1.2) >> >>
endobj
-1239 0 obj
+1238 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 373.268 272.267 384.216 ]/A << /S /GoTo /D (subsection.5.2) >> >>
endobj
-1240 0 obj
+1239 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 361.312 323.246 372.261 ]/A << /S /GoTo /D (subsection.5.3) >> >>
endobj
-1241 0 obj
+1240 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 351.071 251.445 360.236 ]/A << /S /GoTo /D (subsubsection.5.3.1) >> >>
endobj
-1242 0 obj
+1241 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 337.402 328.765 348.281 ]/A << /S /GoTo /D (subsubsection.5.3.2) >> >>
endobj
-1243 0 obj
+1242 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 324.889 222.623 336.844 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-1244 0 obj
+1243 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 312.934 253.467 324.889 ]/A << /S /GoTo /D (subsubsection.5.3.4) >> >>
endobj
-1245 0 obj
+1244 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 301.537 310.942 312.485 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
-1246 0 obj
+1245 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 279.549 338.927 290.558 ]/A << /S /GoTo /D (section.6) >> >>
endobj
-1247 0 obj
+1246 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 269.377 220.77 278.503 ]/A << /S /GoTo /D (subsection.6.1) >> >>
endobj
-1248 0 obj
+1247 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 255.15 322.16 267.106 ]/A << /S /GoTo /D (subsection.6.2) >> >>
endobj
-1249 0 obj
+1248 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 243.634 255.35 254.702 ]/A << /S /GoTo /D (subsection.6.3) >> >>
endobj
-1250 0 obj
+1249 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 231.798 255.298 242.677 ]/A << /S /GoTo /D (subsection.6.4) >> >>
endobj
-1251 0 obj
+1250 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 209.322 221.856 221.278 ]/A << /S /GoTo /D (section.7) >> >>
endobj
-1252 0 obj
+1251 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 187.893 213.129 198.802 ]/A << /S /GoTo /D (section.8) >> >>
endobj
-1253 0 obj
+1252 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 176.007 208.596 186.847 ]/A << /S /GoTo /D (subsection.8.1) >> >>
endobj
-1254 0 obj
+1253 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 165.766 190.464 174.891 ]/A << /S /GoTo /D (subsection.8.2) >> >>
endobj
-1255 0 obj
+1254 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 153.811 245.567 162.936 ]/A << /S /GoTo /D (subsection.8.3) >> >>
endobj
-1256 0 obj
+1255 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 130.109 271.599 141.118 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-1257 0 obj
+1256 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 108.192 259.166 119.2 ]/A << /S /GoTo /D (section.10) >> >>
endobj
-1258 0 obj
+1257 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 96.197 214.254 107.255 ]/A << /S /GoTo /D (subsection.10.1) >> >>
endobj
-1259 0 obj
+1258 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 83.793 296.347 95.748 ]/A << /S /GoTo /D (subsection.10.2) >> >>
endobj
-1260 0 obj
+1259 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 72.276 398.942 83.345 ]/A << /S /GoTo /D (subsection.10.3) >> >>
endobj
-1265 0 obj
-<< /D [ 1263 0 R /XYZ 78.37 808.885 null ] >>
+1264 0 obj
+<< /D [ 1262 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1262 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 402 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F66 388 0 R /F54 374 0 R /F67 389 0 R >> /ProcSet [ /PDF /Text ] >>
+1261 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 402 0 R /F15 381 0 R /F56 384 0 R /F55 383 0 R /F65 388 0 R /F54 374 0 R /F66 389 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1320 0 obj
-<< /Filter /FlateDecode /Length 2284 >>
-stream
-x\r6 ߯%
-dUtRqa݁w$k1Zc˼K>5֯WM "R_@8 yѽ3"%σP\;{~軫SLP')9T5~*9ْqnc[hx;
-ߊv8~*Ngw1UM䪌 +p::P?bJpW
-zB@@όm]"?ErŘ96;_H t3x3mey$k׺#ߕ)t(p}gP@MƂk<&FNywh {{!&x; Ymx.z\D#Ȫha;vf uu0*?Ka4"[c)sR*;jW~Z`B^w|cpT*WF[agmtt^up>cn=;
-?l
-Sbfyg6CMԫ|XTNx!xsđ/Um3;qo1٨s *E6l0]Ol3 &e-jJ<Tl%Ƃ nϽ}Ec$ нFBפj6Z ˄ԧ- <GW *Jk&)iGf;mkw[V'ZSV 3/BE y>η7]X@ڮo@ش!+б^2@K;t Dȁ?H8}VoAE~X*rZo&}싺!PȆ5d[CI >[~
- <Sŝ|Ii~vΐ4rQFD2sh٠;NZnzǽ݌YTZ;ſc^0]QQ8ѩ<DŽ޾sC̠jQmJ
-oKzA}z
+1319 0 obj
+<< /Filter /FlateDecode /Length 2288 >>
+stream
+x\n8 +I=
+h~*[Nמ)_I\2}xsd6hT0^x
+Σ1 U$л[` >6C%[p:Lߑ{a2
+WƑjT/ݙ)!H_~W+G,O6^(9iٳ8u9Ve|$b{k!/
+ yvKj64l]տWT::iCI<L$߂|V@VE'xG25+Sc;i:30hn@|\'EĖ;?jCq~&Qf}]%9t}g7[&R?sjTr\%ƶ0wj
+A[XcF\  c %lgʮ˔uG~_ɿ+dS
+Q/$%v*[yLx';5CL
+vl;lA
+f (W|]F
+eUѶ-Ž19'`vU0~4ivE0 R*6Ugv$Ԯҡ&dUn,qͳKܕ5P2J x&K'Ԑ.^0gSͺ c
+e5
+i Qa_X9i
+[B KII[,OS /o%!aVqјHMqDWmjܸ<Ӯ?ɇSJ}Mp! Eӵju99nvrAK_L^սb#,Y٦-{./Aj1ܲ N"X0%lBQj8Ԯ"yT)Bk%_nB.DA;Z_'9Ƒy1wY~\ڧM{H'YY`ͭP2jm`)r|2g2qʗDƶ87_
+lT9ӆ "qxU_6e]Ol3 &e-jJ<Tl%Ƃ nϽ}Ec$ нFBפj6ZMH ϩOS[
+x{%f *m&5#ȶ- j9
+ʄ/melu"熀<]X@ڮo@ش!+б^2@K;t Dȁ?p5PZbV(ZX.\3>SU}QľԿv4iF/)@ apr-j?ʰAfqZ[O``1>~i)?$4?;geF#J"3Z6]I֬7ށqo7_Ek!7avH׎mzpEEDzΡ栤vXGٹW Owbz
endstream
endobj
-1319 0 obj
-<< /Type /Page /Contents 1320 0 R /Resources 1318 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1130 0 R /Annots 1322 0 R >>
+1318 0 obj
+<< /Type /Page /Contents 1319 0 R /Resources 1317 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1129 0 R /Annots 1321 0 R >>
endobj
-1322 0 obj
-[ 1261 0 R 1267 0 R 1268 0 R 1269 0 R 1270 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R 1275 0 R 1276 0 R 1277 0 R 1278 0 R 1279 0 R 1280 0 R 1281 0 R 1282 0 R 1283 0 R 1284 0 R 1285 0 R 1286 0 R 1287 0 R 1288 0 R 1289 0 R 1290 0 R 1291 0 R 1292 0 R 1293 0 R 1294 0 R 1295 0 R 1296 0 R 1297 0 R 1298 0 R 1299 0 R 1300 0 R 1301 0 R 1302 0 R 1303 0 R 1304 0 R 1305 0 R 1306 0 R 1307 0 R 1308 0 R 1309 0 R 1310 0 R 1311 0 R 1312 0 R 1313 0 R 1314 0 R 1315 0 R 1316 0 R ]
+1321 0 obj
+[ 1260 0 R 1266 0 R 1267 0 R 1268 0 R 1269 0 R 1270 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R 1275 0 R 1276 0 R 1277 0 R 1278 0 R 1279 0 R 1280 0 R 1281 0 R 1282 0 R 1283 0 R 1284 0 R 1285 0 R 1286 0 R 1287 0 R 1288 0 R 1289 0 R 1290 0 R 1291 0 R 1292 0 R 1293 0 R 1294 0 R 1295 0 R 1296 0 R 1297 0 R 1298 0 R 1299 0 R 1300 0 R 1301 0 R 1302 0 R 1303 0 R 1304 0 R 1305 0 R 1306 0 R 1307 0 R 1308 0 R 1309 0 R 1310 0 R 1311 0 R 1312 0 R 1313 0 R 1314 0 R 1315 0 R ]
endobj
-1261 0 obj
+1260 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 758.012 268.67 769.011 ]/A << /S /GoTo /D (subsection.10.4) >> >>
endobj
-1267 0 obj
+1266 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 746.057 297.502 757.056 ]/A << /S /GoTo /D (subsection.10.5) >> >>
endobj
-1268 0 obj
+1267 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 734.102 264.506 745.17 ]/A << /S /GoTo /D (subsection.10.6) >> >>
endobj
-1269 0 obj
+1268 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 712.304 348.591 723.243 ]/A << /S /GoTo /D (section.11) >> >>
endobj
-1270 0 obj
+1269 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 689.828 169.522 701.783 ]/A << /S /GoTo /D (section.12) >> >>
endobj
-1271 0 obj
+1270 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 677.873 297.263 689.828 ]/A << /S /GoTo /D (subsection.12.1) >> >>
endobj
-1272 0 obj
+1271 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 665.918 416.735 677.873 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-1273 0 obj
+1272 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 653.963 406.484 665.918 ]/A << /S /GoTo /D (subsection.12.3) >> >>
endobj
-1274 0 obj
+1273 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 642.007 343.918 653.963 ]/A << /S /GoTo /D (subsection.12.4) >> >>
endobj
-1275 0 obj
+1274 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 620.578 308.152 631.586 ]/A << /S /GoTo /D (section.13) >> >>
endobj
-1276 0 obj
+1275 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 608.573 233.642 619.571 ]/A << /S /GoTo /D (subsection.13.1) >> >>
endobj
-1277 0 obj
+1276 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 596.618 237.228 607.576 ]/A << /S /GoTo /D (subsection.13.2) >> >>
endobj
-1278 0 obj
+1277 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 586.496 219.804 595.621 ]/A << /S /GoTo /D (subsection.13.3) >> >>
endobj
-1279 0 obj
+1278 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 574.54 288.586 583.666 ]/A << /S /GoTo /D (subsection.13.4) >> >>
endobj
-1280 0 obj
+1279 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 560.314 337.881 572.269 ]/A << /S /GoTo /D (subsection.13.5) >> >>
endobj
-1281 0 obj
+1280 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 540.827 205.706 549.893 ]/A << /S /GoTo /D (section.14) >> >>
endobj
-1282 0 obj
+1281 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 528.822 224.546 537.878 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
-1283 0 obj
+1282 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 514.486 251.983 526.441 ]/A << /S /GoTo /D (subsection.14.2) >> >>
endobj
-1284 0 obj
+1283 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 502.979 312.127 514.037 ]/A << /S /GoTo /D (subsection.14.3) >> >>
endobj
-1285 0 obj
+1284 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 490.575 330.937 502.53 ]/A << /S /GoTo /D (subsection.14.4) >> >>
endobj
-1286 0 obj
+1285 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 478.62 220.551 490.575 ]/A << /S /GoTo /D (subsection.14.5) >> >>
endobj
-1287 0 obj
+1286 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 467.223 187.943 478.062 ]/A << /S /GoTo /D (subsection.14.6) >> >>
endobj
-1288 0 obj
+1287 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 455.158 246.244 466.217 ]/A << /S /GoTo /D (subsection.14.7) >> >>
endobj
-1289 0 obj
+1288 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 443.193 216.735 454.152 ]/A << /S /GoTo /D (subsection.14.8) >> >>
endobj
-1290 0 obj
+1289 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 433.071 228.312 442.306 ]/A << /S /GoTo /D (subsection.14.9) >> >>
endobj
-1291 0 obj
+1290 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 418.844 307.993 430.799 ]/A << /S /GoTo /D (subsection.14.10) >> >>
endobj
-1292 0 obj
+1291 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 406.889 287.271 418.844 ]/A << /S /GoTo /D (subsection.14.11) >> >>
endobj
-1293 0 obj
+1292 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 387.352 273.731 396.368 ]/A << /S /GoTo /D (section.15) >> >>
endobj
-1294 0 obj
+1293 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 373.574 338.568 384.413 ]/A << /S /GoTo /D (subsection.15.1) >> >>
endobj
-1295 0 obj
+1294 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 361.499 240.177 372.568 ]/A << /S /GoTo /D (subsubsection.15.1.1) >> >>
endobj
-1296 0 obj
+1295 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 351.377 270.474 360.503 ]/A << /S /GoTo /D (subsubsection.15.1.2) >> >>
endobj
-1297 0 obj
+1296 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 337.589 325.314 348.548 ]/A << /S /GoTo /D (subsection.15.2) >> >>
endobj
-1298 0 obj
+1297 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 325.753 306.339 336.702 ]/A << /S /GoTo /D (subsection.15.3) >> >>
endobj
-1299 0 obj
+1298 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 313.24 363.933 325.195 ]/A << /S /GoTo /D (subsection.15.4) >> >>
endobj
-1300 0 obj
+1299 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 291.88 229.457 302.819 ]/A << /S /GoTo /D (section.16) >> >>
endobj
-1301 0 obj
+1300 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 269.963 207.569 280.802 ]/A << /S /GoTo /D (section.17) >> >>
endobj
-1302 0 obj
+1301 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 257.888 201.273 268.847 ]/A << /S /GoTo /D (subsection.17.1) >> >>
endobj
-1303 0 obj
+1302 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 247.766 206.392 256.892 ]/A << /S /GoTo /D (subsection.17.2) >> >>
endobj
-1304 0 obj
+1303 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 233.987 250.877 244.936 ]/A << /S /GoTo /D (subsection.17.3) >> >>
endobj
-1305 0 obj
+1304 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 222.142 195.276 233.021 ]/A << /S /GoTo /D (subsection.17.4) >> >>
endobj
-1306 0 obj
+1305 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 200.224 143.002 211.063 ]/A << /S /GoTo /D (section.18) >> >>
endobj
-1307 0 obj
+1306 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 187.711 353.181 199.666 ]/A << /S /GoTo /D (subsection.18.1) >> >>
endobj
-1308 0 obj
+1307 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 178.027 236.81 187.153 ]/A << /S /GoTo /D (subsection.18.2) >> >>
endobj
-1309 0 obj
+1308 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 166.072 228.302 175.198 ]/A << /S /GoTo /D (subsection.18.3) >> >>
endobj
-1310 0 obj
+1309 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 152.284 209.024 163.283 ]/A << /S /GoTo /D (subsection.18.4) >> >>
endobj
-1311 0 obj
+1310 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 140.329 335.709 151.327 ]/A << /S /GoTo /D (subsection.18.5) >> >>
endobj
-1312 0 obj
+1311 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 128.373 196.86 139.372 ]/A << /S /GoTo /D (subsection.18.6) >> >>
endobj
-1313 0 obj
+1312 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 116.538 234.767 127.377 ]/A << /S /GoTo /D (subsection.18.7) >> >>
endobj
-1314 0 obj
+1313 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 104.463 311.161 115.532 ]/A << /S /GoTo /D (subsection.18.8) >> >>
endobj
-1315 0 obj
+1314 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 92.07 331.415 104.025 ]/A << /S /GoTo /D (subsection.18.9) >> >>
endobj
-1316 0 obj
+1315 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 80.553 227.395 91.512 ]/A << /S /GoTo /D (subsection.18.10) >> >>
endobj
-1321 0 obj
-<< /D [ 1319 0 R /XYZ 78.37 808.885 null ] >>
+1320 0 obj
+<< /D [ 1318 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1318 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F67 389 0 R >> /ProcSet [ /PDF /Text ] >>
+1317 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 381 0 R /F66 389 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1325 0 obj
+1324 0 obj
<< /Filter /FlateDecode /Length 122 >>
stream
xm̱
-1>_1?`n6fB"X[*0 <cSSGפd<fD?pY"#ie=d2~S<Eѭ~$A
+1>_1?ldB"X[*0 <cS3[~ :BQ\RA1?pYȬ#"YzH^gyl_姦?;z ~$@
endstream
endobj
-1324 0 obj
-<< /Type /Page /Contents 1325 0 R /Resources 1323 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1130 0 R /Annots 1327 0 R >>
+1323 0 obj
+<< /Type /Page /Contents 1324 0 R /Resources 1322 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1129 0 R /Annots 1326 0 R >>
endobj
-1327 0 obj
-[ 1317 0 R ]
+1326 0 obj
+[ 1316 0 R ]
endobj
-1317 0 obj
+1316 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 759.955 108.74 768.971 ]/A << /S /GoTo /D (section*.2) >> >>
endobj
-1326 0 obj
-<< /D [ 1324 0 R /XYZ 78.37 808.885 null ] >>
+1325 0 obj
+<< /D [ 1323 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1323 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F67 389 0 R /F15 381 0 R >> /ProcSet [ /PDF /Text ] >>
+1322 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F66 389 0 R /F15 381 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1 0 obj
<< /pgf@ca0.75 << /ca 0.75 >> /pgf@CA0.4 << /CA 0.4 >> /pgf@ca0.4 << /ca 0.4 >> /pgf@bmMultiply<< /BM /Multiply>> /pgf@ca1.0 << /ca 1.0 >>>>
@@ -5609,16 +5572,16 @@ endobj
3 0 obj
<< /pgfprgb [/Pattern /DeviceRGB] >>
endobj
-1328 0 obj
+1327 0 obj
[ 28 [ 510 ] 96 [ 363 ] 118 [ 490 ] ]
endobj
-1330 0 obj
+1329 0 obj
<< /Filter /FlateDecode /Length 17 >>
stream
xc```&
endstream
endobj
-1331 0 obj
+1330 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 692 >>
stream
xcd`aa`ddr N+O,,MIyP#C,9?Xy~s0aS  K,t~L;74G$0GAA5/<"-6300q/,L(Q0200
@@ -5631,10 +5594,10 @@ Nz
>XOoOOo_O߄=<<;WLrxxJ
endstream
endobj
-1329 0 obj
-<< /Type /FontDescriptor /FontName /TZAQYL+LMSans8-Oblique /Flags 4 /FontBBox [ -486 -314 1548 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle -12 /StemV 98 /XHeight 444 /FontFile3 1331 0 R /CIDSet 1330 0 R >>
+1328 0 obj
+<< /Type /FontDescriptor /FontName /TZAQYL+LMSans8-Oblique /Flags 4 /FontBBox [ -486 -314 1548 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle -12 /StemV 98 /XHeight 444 /FontFile3 1330 0 R /CIDSet 1329 0 R >>
endobj
-1332 0 obj
+1331 0 obj
<< /Filter /FlateDecode /Length 374 >>
stream
x}RMo@x=Y45!b7}Md.pwwM[< t7ްOa5C/Zt9jȑl9V,
@@ -5645,22 +5608,22 @@ y@ws$壷9wNF IpCPB }Jy"yr^IKDЙ\_r&
endstream
endobj
828 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TZAQYL+LMSans8-Oblique /DescendantFonts [ 1333 0 R ] /ToUnicode 1332 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TZAQYL+LMSans8-Oblique /DescendantFonts [ 1332 0 R ] /ToUnicode 1331 0 R >>
endobj
-1333 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TZAQYL+LMSans8-Oblique /FontDescriptor 1329 0 R /W 1328 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1332 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TZAQYL+LMSans8-Oblique /FontDescriptor 1328 0 R /W 1327 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1334 0 obj
+1333 0 obj
[ 56 [ 681 681 ] 82 [ 681 ] 88 [ 403 ] 106 [ 681 681 ] ]
endobj
-1336 0 obj
+1335 0 obj
<< /Filter /FlateDecode /Length 18 >>
stream
xc`

endstream
endobj
-1337 0 obj
+1336 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1129 >>
stream
xuT{LSW[W@N½G2A ^DŽU{io[z(Pp
@@ -5675,10 +5638,10 @@ xuT{LSW[W@N½G2A ^DŽU{io[z(Pp
sn> <TQZPt@ UQ=R]E&ni,lAC#bdČjnpu,;T7>6<4N=$Z#yB<R eD E*yHa)ݤ1^MZN?|@˰veFb&u!}^w@x Q3%Ib4^A_>>:Xk kPT%J@i~ Ρ{(;> Qd"\4-*ۤQ2{[ F:Ј폾u1B}O jkq \5|[P6?}uxzK2iC惾ELm 9cBO"{lz2|Bh4zGo塞.OgW;Ge_
endstream
endobj
-1335 0 obj
-<< /Type /FontDescriptor /FontName /GOIBMZ+LMRoman5-Regular /Flags 4 /FontBBox [ -566 -303 1772 1126 ] /Ascent 1126 /CapHeight 683 /Descent -303 /ItalicAngle 0 /StemV 134 /XHeight 431 /FontFile3 1337 0 R /CIDSet 1336 0 R >>
+1334 0 obj
+<< /Type /FontDescriptor /FontName /GOIBMZ+LMRoman5-Regular /Flags 4 /FontBBox [ -566 -303 1772 1126 ] /Ascent 1126 /CapHeight 683 /Descent -303 /ItalicAngle 0 /StemV 134 /XHeight 431 /FontFile3 1336 0 R /CIDSet 1335 0 R >>
endobj
-1338 0 obj
+1337 0 obj
<< /Filter /FlateDecode /Length 387 >>
stream
x}Rj0+^xI` YYHB)9s*%#ۇ} /4ovM<7J67[e%t6zȐl5t5tg<iq*aتM]bց?M:]}y﫝,21vxjΙSuYf K1l& 3aEK[9L]'a:*ST5%cʼź*.N}QkMY$ 0uk:+|3~4ˣ5KY:T2ʌ ICJ
@@ -5687,27 +5650,27 @@ x}Rj0+^xI` YYHB)9s*%#ۇ} /4ovM<7J67[e%t
endstream
endobj
804 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /GOIBMZ+LMRoman5-Regular /DescendantFonts [ 1339 0 R ] /ToUnicode 1338 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /GOIBMZ+LMRoman5-Regular /DescendantFonts [ 1338 0 R ] /ToUnicode 1337 0 R >>
endobj
-1339 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /GOIBMZ+LMRoman5-Regular /FontDescriptor 1335 0 R /W 1334 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1338 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /GOIBMZ+LMRoman5-Regular /FontDescriptor 1334 0 R /W 1333 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1340 0 obj
+1339 0 obj
[575 575 575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 559 638.9 511.1 638.9 ]
endobj
-1341 0 obj
+1340 0 obj
[1083.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1361.1 ]
endobj
-1342 0 obj
+1341 0 obj
[ 28 [ 603 ] 35 [ 544 ] 43 [ 544 ] 47 [ 603 ] ]
endobj
-1344 0 obj
+1343 0 obj
<< /Filter /FlateDecode /Length 14 >>
stream
xc``
endstream
endobj
-1345 0 obj
+1344 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 900 >>
stream
xڵSoL[U]<t}dmbhAf P(d+}mx{v –@2q5,C~G>D_Yh9sﹹ990AkO4_7 N:
@@ -5722,10 +5685,10 @@ WZVRV
1mb7aKuO[&,ڗ:E["aS4c &8dxgxV6-:'T(Ed|<>a)Z9?'Uؚ
endstream
endobj
-1343 0 obj
-<< /Type /FontDescriptor /FontName /BWIYUD+LMRoman7-Italic /Flags 4 /FontBBox [ -528 -292 1571 1123 ] /Ascent 1123 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 123 /XHeight 431 /FontFile3 1345 0 R /CIDSet 1344 0 R >>
+1342 0 obj
+<< /Type /FontDescriptor /FontName /BWIYUD+LMRoman7-Italic /Flags 4 /FontBBox [ -528 -292 1571 1123 ] /Ascent 1123 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 123 /XHeight 431 /FontFile3 1344 0 R /CIDSet 1343 0 R >>
endobj
-1346 0 obj
+1345 0 obj
<< /Filter /FlateDecode /Length 375 >>
stream
x}R]k0}ϯ{6U@0uBa~`cM.`* BJOι7瞴ɣg XF3fˢ"\DiVychr4НeL
@@ -5733,25 +5696,25 @@ x}R]k0}ϯ{6U@0uBa~`cM.`* BJOι7瞴ɣg XF3fˢ"\
endstream
endobj
703 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BWIYUD+LMRoman7-Italic /DescendantFonts [ 1347 0 R ] /ToUnicode 1346 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BWIYUD+LMRoman7-Italic /DescendantFonts [ 1346 0 R ] /ToUnicode 1345 0 R >>
endobj
-1347 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BWIYUD+LMRoman7-Italic /FontDescriptor 1343 0 R /W 1342 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1346 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BWIYUD+LMRoman7-Italic /FontDescriptor 1342 0 R /W 1341 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1348 0 obj
+1347 0 obj
[892.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1138.9 0 585.3 ]
endobj
-1349 0 obj
+1348 0 obj
[ 47 [ 525 ] 50 [ 525 ] 64 [ 525 ] 66 [ 525 ] 72 [ 525 ] 77 [ 525 ] 81 [ 525 ] 98 [ 525 ] 102 [ 525 ] 105 [ 525 ] 116 [ 525 ] 118 [ 525 ] ]
endobj
-1351 0 obj
+1350 0 obj
<< /Filter /FlateDecode /Length 21 >>
stream
xc`

endstream
endobj
-1352 0 obj
+1351 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1486 >>
stream
xmU{LG%ʉr9ݚj!A⣩Qx==#Z-w CSV5$֤Uk5ZlS5SuV&Mdv3oeǢ1Ǔ
@@ -5770,10 +5733,10 @@ sƭw¸Om-åu^
T;,;T(w ;h 4
endstream
endobj
-1350 0 obj
-<< /Type /FontDescriptor /FontName /MSSSGB+LMMonoLt10-Bold /Flags 4 /FontBBox [ -454 -308 734 1039 ] /Ascent 1039 /CapHeight 611 /Descent -308 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1352 0 R /CIDSet 1351 0 R >>
+1349 0 obj
+<< /Type /FontDescriptor /FontName /MSSSGB+LMMonoLt10-Bold /Flags 4 /FontBBox [ -454 -308 734 1039 ] /Ascent 1039 /CapHeight 611 /Descent -308 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1351 0 R /CIDSet 1350 0 R >>
endobj
-1353 0 obj
+1352 0 obj
<< /Filter /FlateDecode /Length 420 >>
stream
x}Ok0@zp-;mڔ`$bhRe4
@@ -5783,21 +5746,21 @@ b!~%’]ތGO|{0rV`-L6F j(Qjֈ
endstream
endobj
634 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /MSSSGB+LMMonoLt10-Bold /DescendantFonts [ 1354 0 R ] /ToUnicode 1353 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /MSSSGB+LMMonoLt10-Bold /DescendantFonts [ 1353 0 R ] /ToUnicode 1352 0 R >>
endobj
-1354 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /MSSSGB+LMMonoLt10-Bold /FontDescriptor 1350 0 R /W 1349 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1353 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /MSSSGB+LMMonoLt10-Bold /FontDescriptor 1349 0 R /W 1348 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1355 0 obj
+1354 0 obj
[ 47 [ 590 ] 81 [ 531 ] 98 [ 419 ] 105 [ 413 ] 116 [ 561 ] ]
endobj
-1357 0 obj
+1356 0 obj
<< /Filter /FlateDecode /Length 19 >>
stream
xc`
endstream
endobj
-1358 0 obj
+1357 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1167 >>
stream
x}TmLe^-+]lqShq ls RPG6Zz#"/\{/0a8`
@@ -5812,10 +5775,10 @@ _eR}&:q5d ub cly}xϱ3L7_kNGWg?v
#h}^
endstream
endobj
-1356 0 obj
-<< /Type /FontDescriptor /FontName /JIXNST+LMRomanSlant8-Regular /Flags 4 /FontBBox [ -483 -292 1526 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle -10 /StemV 98 /XHeight 431 /FontFile3 1358 0 R /CIDSet 1357 0 R >>
+1355 0 obj
+<< /Type /FontDescriptor /FontName /JIXNST+LMRomanSlant8-Regular /Flags 4 /FontBBox [ -483 -292 1526 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle -10 /StemV 98 /XHeight 431 /FontFile3 1357 0 R /CIDSet 1356 0 R >>
endobj
-1359 0 obj
+1358 0 obj
<< /Filter /FlateDecode /Length 388 >>
stream
xڍR]k0}ϯ{6tN鄎ĖkM.&%MKR0Џ{9'<l>V :+IT.P "GVlb .e,Yr,Y^slY^$ցn=o4XT$Ϥ;<yZSar6X
@@ -5825,24 +5788,24 @@ s˭1=Ct8VePgdnWJNñ~
endstream
endobj
602 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JIXNST+LMRomanSlant8-Regular /DescendantFonts [ 1360 0 R ] /ToUnicode 1359 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JIXNST+LMRomanSlant8-Regular /DescendantFonts [ 1359 0 R ] /ToUnicode 1358 0 R >>
endobj
-1360 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JIXNST+LMRomanSlant8-Regular /FontDescriptor 1356 0 R /W 1355 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1359 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JIXNST+LMRomanSlant8-Regular /FontDescriptor 1355 0 R /W 1354 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1361 0 obj
+1360 0 obj
[361.7 429.7 0 0 0 644.7 ]
endobj
-1362 0 obj
+1361 0 obj
[ 28 [ 525 ] 35 [ 525 ] 43 [ 525 ] 47 [ 525 ] 50 [ 525 ] 55 [ 525 ] 64 [ 525 ] 66 [ 525 ] 72 [ 525 ] 74 [ 525 525 525 525 ] 81 [ 525 ] 84 [ 525 ] 96 [ 525 ] 98 [ 525 ] 103 [ 525 ] 105 [ 525 ] 109 [ 525 ] 112 [ 525 ] 494 [ 525 ] ]
endobj
-1364 0 obj
+1363 0 obj
<< /Filter /FlateDecode /Length 27 >>
stream
xc``TdXǃaKI
endstream
endobj
-1365 0 obj
+1364 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2421 >>
stream
xڍW Tgf50h}mU]bEe}VI$07Q <APTX6XOϮu;;S=;ə7
@@ -5859,10 +5822,10 @@ W
CH wu[uE,>>X*uŃibR2z@yRsa)d.($Ge1Հf4ca$Sg~lW/BU٫J]|+ ;rZhwgʪ+Q(_YE
endstream
endobj
-1363 0 obj
-<< /Type /FontDescriptor /FontName /SFCWXS+LMMonoSlant10-Regular /Flags 4 /FontBBox [ -477 -316 786 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle -10 /StemV 175 /XHeight 431 /FontFile3 1365 0 R /CIDSet 1364 0 R >>
+1362 0 obj
+<< /Type /FontDescriptor /FontName /SFCWXS+LMMonoSlant10-Regular /Flags 4 /FontBBox [ -477 -316 786 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle -10 /StemV 175 /XHeight 431 /FontFile3 1364 0 R /CIDSet 1363 0 R >>
endobj
-1366 0 obj
+1365 0 obj
<< /Filter /FlateDecode /Length 471 >>
stream
xڍMo0
@@ -5870,21 +5833,21 @@ xڍMo0
endstream
endobj
478 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SFCWXS+LMMonoSlant10-Regular /DescendantFonts [ 1367 0 R ] /ToUnicode 1366 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SFCWXS+LMMonoSlant10-Regular /DescendantFonts [ 1366 0 R ] /ToUnicode 1365 0 R >>
endobj
-1367 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SFCWXS+LMMonoSlant10-Regular /FontDescriptor 1363 0 R /W 1362 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1366 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SFCWXS+LMMonoSlant10-Regular /FontDescriptor 1362 0 R /W 1361 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1368 0 obj
+1367 0 obj
[ 28 [ 549 ] 35 [ 494 ] 40 [ 329 329 ] 43 [ 494 ] 45 [ 329 ] 47 [ 549 ] 50 [ 494 ] 55 [ 329 ] 59 [ 494 ] 63 [ 549 ] 66 [ 329 ] 70 [ 494 ] 72 [ 274 ] 75 [ 878 ] 77 [ 603 ] 81 [ 549 ] 84 [ 549 439 439 ] 88 [ 329 ] 96 [ 453 ] 98 [ 439 ] 104 [ 768 357 ] 109 [ 576 ] 112 [ 494 ] 114 [ 713 ] 116 [ 495 ] 118 [ 521 ] 251 [ 494 ] 502 [ 329 ] ]
endobj
-1370 0 obj
+1369 0 obj
<< /Filter /FlateDecode /Length 31 >>
stream
xc``(4ůaU h@/`
endstream
endobj
-1371 0 obj
+1370 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3600 >>
stream
xڵX tW-!`$TA:!C`:$$a3` "o-[%Kd[TmKf[b$ 0d2I:C:t: 3t~bzdC9JJ*}}wPL `0ڴg]¶u]PVҒDqZ~nFm\r!r&8`=;슍fçbG_>AwqcD:v!Ğ
@@ -5900,10 +5863,10 @@ N Nu|U5ÏCM{E7.UgG'igWW_1GK lO ?Mt= =Kl
nn. ^:{:0IrFٜNU[f _-4UWѻLMvꕉlh!*@Ksvt?kbA/3qr] T5)Kc'S“L [-Vawܱ,V63v
endstream
endobj
-1369 0 obj
-<< /Type /FontDescriptor /FontName /HXCEOC+LMRoman8-Italic /Flags 4 /FontBBox [ -489 -292 1472 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 110 /XHeight 431 /FontFile3 1371 0 R /CIDSet 1370 0 R >>
+1368 0 obj
+<< /Type /FontDescriptor /FontName /HXCEOC+LMRoman8-Italic /Flags 4 /FontBBox [ -489 -292 1472 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 110 /XHeight 431 /FontFile3 1370 0 R /CIDSet 1369 0 R >>
endobj
-1372 0 obj
+1371 0 obj
<< /Filter /FlateDecode /Length 512 >>
stream
x}M@ރs`l%K3NltHC
@@ -5911,31 +5874,31 @@ x}M@ރs`l%K3NltHC
endstream
endobj
438 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /HXCEOC+LMRoman8-Italic /DescendantFonts [ 1373 0 R ] /ToUnicode 1372 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /HXCEOC+LMRoman8-Italic /DescendantFonts [ 1372 0 R ] /ToUnicode 1371 0 R >>
endobj
-1373 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /HXCEOC+LMRoman8-Italic /FontDescriptor 1369 0 R /W 1368 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1372 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /HXCEOC+LMRoman8-Italic /FontDescriptor 1368 0 R /W 1367 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1374 0 obj
+1373 0 obj
[734 ]
endobj
-1375 0 obj
+1374 0 obj
[1123 ]
endobj
-1376 0 obj
+1375 0 obj
[777.8 0 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 388.9 388.9 ]
endobj
-1377 0 obj
+1376 0 obj
[ 28 [ 525 ] 43 [ 489 ] 50 [ 511 ] 64 [ 367 ] 66 [ 256 ] 75 [ 867 ] 77 [ 561 ] 82 [ 550 ] 96 [ 372 ] 105 [ 404 550 550 ] 116 [ 500 ] ]
endobj
-1379 0 obj
+1378 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc```P`X P

endstream
endobj
-1380 0 obj
+1379 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1716 >>
stream
xڍU pEUM,@+v70 X6e -ǀqL!`VK>eKeZ?K1`[4@
@@ -5947,10 +5910,10 @@ NIcO>ܷuecM·:tZ"K 4Hp'L4)v(*(8G:z<9
3##g< AjSS
endstream
endobj
-1378 0 obj
-<< /Type /FontDescriptor /FontName /QJUVUX+LMSans10-Bold /Flags 4 /FontBBox [ -460 -297 1761 1134 ] /Ascent 1134 /CapHeight 694 /Descent -297 /ItalicAngle 0 /StemV 102 /XHeight 458 /FontFile3 1380 0 R /CIDSet 1379 0 R >>
+1377 0 obj
+<< /Type /FontDescriptor /FontName /QJUVUX+LMSans10-Bold /Flags 4 /FontBBox [ -460 -297 1761 1134 ] /Ascent 1134 /CapHeight 694 /Descent -297 /ItalicAngle 0 /StemV 102 /XHeight 458 /FontFile3 1379 0 R /CIDSet 1378 0 R >>
endobj
-1381 0 obj
+1380 0 obj
<< /Filter /FlateDecode /Length 422 >>
stream
x}Kk0stZA04I .O[GX2ȿ[(9gFgƚ{.i6e^5-M&+#u(Qj{ ֈ;.UUw̅^:nZN?k^>eۄG %k8 ImאrZ.MkY<xUZ!!l|^ 
@@ -5959,22 +5922,22 @@ x}Kk0stZA04I .O[GX2ȿ[(9gFgƚ{.i6e^5-M
endstream
endobj
403 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QJUVUX+LMSans10-Bold /DescendantFonts [ 1382 0 R ] /ToUnicode 1381 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QJUVUX+LMSans10-Bold /DescendantFonts [ 1381 0 R ] /ToUnicode 1380 0 R >>
endobj
-1382 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QJUVUX+LMSans10-Bold /FontDescriptor 1378 0 R /W 1377 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1381 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QJUVUX+LMSans10-Bold /FontDescriptor 1377 0 R /W 1376 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1383 0 obj
+1382 0 obj
[ 27 [ 850 547 875 ] 34 [ 800 625 575 ] 38 [ 575 575 ] 42 [ 813 500 ] 46 [ 862 625 ] 49 [ 738 513 563 ] 55 [ 344 563 563 ] 59 [ 563 ] 62 [ 880 625 375 419 313 ] 68 [ 344 ] 70 [ 594 676 313 ] 74 [ 1067 938 880 625 563 ] 80 [ 845 563 563 769 625 438 438 ] 88 [ 313 ] 90 [ 845 594 ] 95 [ 839 460 625 444 ] 100 [ 563 563 ] 104 [ 782 438 563 563 865 625 ] 111 [ 850 594 1162 813 850 594 ] 118 [ 594 688 500 563 656 ] 125 [ 625 ] 251 [ 513 ] 277 [ 513 ] 319 [ 625 625 ] 446 [ 875 ] 502 [ 313 ] ]
endobj
-1385 0 obj
+1384 0 obj
<< /Filter /FlateDecode /Length 40 >>
stream
xc``6.z߿o~€
X@4c8
endstream
endobj
-1386 0 obj
+1385 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7547 >>
stream
xzy|6PJ%3)K7EDARJI&'It_hK)- -)mDvYTVE\r}ޓ{|vI3{ND=%\6/XiŠk"¼ç4͈P_۝łBpC0 CG=ed0HpA䵟 rA8vsM(BԷ@rɗ&O:}AĮĨKS<:Kd2!!A
@@ -6012,10 +5975,10 @@ yn #"5~6^f硬\yR!͝=e;rTRÁ-XE~,هcy{Oy[_?!T<
X#OxI$Z1hܒo|.r IVNN_yE"̕fqFIA@ϷyT?ÉNk$#}r+=cwxZyh|7čU+[/d˿
endstream
endobj
-1384 0 obj
-<< /Type /FontDescriptor /FontName /ZCFLPY+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 1386 0 R /CIDSet 1385 0 R >>
+1383 0 obj
+<< /Type /FontDescriptor /FontName /ZCFLPY+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 1385 0 R /CIDSet 1384 0 R >>
endobj
-1387 0 obj
+1386 0 obj
<< /Filter /FlateDecode /Length 682 >>
stream
x}[k0+e[Ҧ@n@/!)5$t&),a -2tm4qs[xk`Q瓱1k{f.gbe%ly<ksͺ43~>ϋuSv>8g>r\ݍPiό?%I>XZ=On]4$}lxUnI$#2]=QYI洲:p]^hjV*tsWÒh2a]ad_|]/:qi Ks-kmfWvg&; k'8*?3W(Ir> 4$R(M2d$H)d tDKrP( H"hɾOB0(s];U<CNZF B''$ȡ,K9I":2"JU$Tg.3/@)3
@@ -6026,22 +5989,22 @@ Lt"DZ$""/
endstream
endobj
402 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZCFLPY+LMRoman12-Bold /DescendantFonts [ 1388 0 R ] /ToUnicode 1387 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZCFLPY+LMRoman12-Bold /DescendantFonts [ 1387 0 R ] /ToUnicode 1386 0 R >>
endobj
-1388 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZCFLPY+LMRoman12-Bold /FontDescriptor 1384 0 R /W 1383 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1387 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZCFLPY+LMRoman12-Bold /FontDescriptor 1383 0 R /W 1382 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1389 0 obj
+1388 0 obj
[ 27 [ 531 531 531 ] 32 [ 531 531 531 531 531 531 531 531 531 531 531 531 531 531 531 531 ] 49 [ 531 531 531 531 531 ] 55 [ 531 531 531 ] 59 [ 531 ] 61 [ 531 531 531 531 ] 66 [ 531 ] 68 [ 531 ] 70 [ 531 531 531 531 531 531 531 531 531 ] 80 [ 531 531 531 ] 84 [ 531 531 531 ] 88 [ 531 ] 91 [ 531 ] 95 [ 531 531 531 531 531 531 531 531 531 531 531 531 531 ] 109 [ 531 531 531 531 531 531 531 531 ] 118 [ 531 ] 120 [ 531 ] ]
endobj
-1391 0 obj
+1390 0 obj
<< /Filter /FlateDecode /Length 25 >>
stream
xc``&

endstream
endobj
-1392 0 obj
+1391 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6684 >>
stream
xڍz \ĐITc1wuV[m"]p)Rwְ@a_nl{EUgݢM۾c/oB~ ޙw=lڙ<<rٛd1~JۭUv*t$c0R#Ot_rt݁o>K5_0 x1y(ǩ/.p| #x $1+ׯ7e"*^sqy}smt_@"V*J̑z̑z*bWr,/"HzɶHcT2JTD^#
@@ -6064,10 +6027,10 @@ svO֛-5rRtnS8(U[ftF\cs
Ut\PYKJwvB1H( H+WqAR2H5~-۟yei xg4n@K*:8:hq_Z}cGyNoL:;q
endstream
endobj
-1390 0 obj
-<< /Type /FontDescriptor /FontName /BAKNBK+LMMono8-Regular /Flags 4 /FontBBox [ -456 -320 743 1014 ] /Ascent 1014 /CapHeight 611 /Descent -320 /ItalicAngle 0 /StemV 177 /XHeight 431 /FontFile3 1392 0 R /CIDSet 1391 0 R >>
+1389 0 obj
+<< /Type /FontDescriptor /FontName /BAKNBK+LMMono8-Regular /Flags 4 /FontBBox [ -456 -320 743 1014 ] /Ascent 1014 /CapHeight 611 /Descent -320 /ItalicAngle 0 /StemV 177 /XHeight 431 /FontFile3 1391 0 R /CIDSet 1390 0 R >>
endobj
-1393 0 obj
+1392 0 obj
<< /Filter /FlateDecode /Length 673 >>
stream
x}Kk0E!]q,YjK@A٦1$EH:'-ZU)W?^m,of6?mjQ秣gk [\V{b0_-VU_ͫ*?
@@ -6078,21 +6041,21 @@ I(($*#1]vNUЩZZBKj BePm2 <<Sˠit7$tB4)i-n
endstream
endobj
393 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BAKNBK+LMMono8-Regular /DescendantFonts [ 1394 0 R ] /ToUnicode 1393 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BAKNBK+LMMono8-Regular /DescendantFonts [ 1393 0 R ] /ToUnicode 1392 0 R >>
endobj
-1394 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BAKNBK+LMMono8-Regular /FontDescriptor 1390 0 R /W 1389 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1393 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BAKNBK+LMMono8-Regular /FontDescriptor 1389 0 R /W 1388 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1395 0 obj
+1394 0 obj
[ 28 [ 510 ] 35 [ 549 ] 43 [ 472 ] 47 [ 549 ] 50 [ 472 ] 63 [ 549 354 ] 66 [ 253 ] 70 [ 519 ] 72 [ 253 ] 75 [ 844 ] 77 [ 549 ] 81 [ 531 ] 84 [ 549 ] 88 [ 295 ] 96 [ 363 ] 98 [ 407 ] 105 [ 384 ] 109 [ 549 ] 112 [ 490 ] 114 [ 726 ] 116 [ 490 ] 118 [ 490 ] ]
endobj
-1397 0 obj
+1396 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc``T`\4ţa*
endstream
endobj
-1398 0 obj
+1397 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1825 >>
stream
xmU}TWC23,--% ~`AFH &"H5`˩,JY+ǮG .Zp`Y{T{a nOߙy3{w$" fY|u.!huD3,Fg+Nf%%'ů$M2Z|ӏt9! &Ltmo
@@ -6104,10 +6067,10 @@ C(ŢhJ@kmDP*2(ّKDY|=K׉D yx^^$Zɇ=f0C
`=d(#p
endstream
endobj
-1396 0 obj
-<< /Type /FontDescriptor /FontName /QQGJDO+LMSans8-Regular /Flags 4 /FontBBox [ -446 -314 1510 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle 0 /StemV 98 /XHeight 444 /FontFile3 1398 0 R /CIDSet 1397 0 R >>
+1395 0 obj
+<< /Type /FontDescriptor /FontName /QQGJDO+LMSans8-Regular /Flags 4 /FontBBox [ -446 -314 1510 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle 0 /StemV 98 /XHeight 444 /FontFile3 1397 0 R /CIDSet 1396 0 R >>
endobj
-1399 0 obj
+1398 0 obj
<< /Filter /FlateDecode /Length 466 >>
stream
x}Mo0
@@ -6117,21 +6080,21 @@ x}Mo0
endstream
endobj
392 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QQGJDO+LMSans8-Regular /DescendantFonts [ 1400 0 R ] /ToUnicode 1399 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QQGJDO+LMSans8-Regular /DescendantFonts [ 1399 0 R ] /ToUnicode 1398 0 R >>
endobj
-1400 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QQGJDO+LMSans8-Regular /FontDescriptor 1396 0 R /W 1395 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1399 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QQGJDO+LMSans8-Regular /FontDescriptor 1395 0 R /W 1394 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1401 0 obj
+1400 0 obj
[ 27 [ 796 531 ] 34 [ 752 590 ] 42 [ 767 472 295 295 811 590 ] 49 [ 723 472 531 ] 54 [ 693 325 531 531 834 531 ] 63 [ 590 354 383 295 ] 68 [ 325 ] 70 [ 561 664 295 ] 75 [ 885 796 590 531 ] 80 [ 826 531 531 723 590 413 413 ] 88 [ 295 ] 90 [ 826 561 ] 95 [ 782 414 590 419 ] 100 [ 531 531 531 ] 104 [ 767 413 531 531 ] 109 [ 590 ] 111 [ 796 561 ] 115 [ 796 561 ] 118 [ 561 649 472 531 620 885 ] 125 [ 590 590 ] 168 [ 531 ] 251 [ 472 ] 257 [ 472 ] 277 [ 472 ] 319 [ 590 590 ] 343 [ 295 ] 428 [ 531 ] 446 [ 826 ] 502 [ 295 ] 575 [ 590 ] 589 [ 590 ] ]
endobj
-1403 0 obj
+1402 0 obj
<< /Filter /FlateDecode /Length 54 >>
stream
xc``0/z޿
endstream
endobj
-1404 0 obj
+1403 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7732 >>
stream
xڽz xUvuBwEh*갃 Kd
@@ -6170,10 +6133,10 @@ S&p*|o5:|;G|#apXN:6csJUFBe2`hEASE٨Μ}+Lmyf
<Qv* U%<@t _t2_T'̭?(H]A7qbǟ C<EQ3 ԊKAYTP+__<d=41t9g&}^>`ȳ~k)"
endstream
endobj
-1402 0 obj
-<< /Type /FontDescriptor /FontName /OPWHQU+LMRoman8-Regular /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 98 /XHeight 431 /FontFile3 1404 0 R /CIDSet 1403 0 R >>
+1401 0 obj
+<< /Type /FontDescriptor /FontName /OPWHQU+LMRoman8-Regular /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 98 /XHeight 431 /FontFile3 1403 0 R /CIDSet 1402 0 R >>
endobj
-1405 0 obj
+1404 0 obj
<< /Filter /FlateDecode /Length 712 >>
stream
x}[o0+ڇ;RDl^^İ_gjHEh}a|٫C_pXvղ{m'k]vҷZzZL3vZ4\B\v/?>~y|m _+So͸dv}|<0q9 p&MN7{ޝ@DnW{k;>ޯ̦ S6a^M0yk7fˮ?hcևi`6c֣r]Uf<~۱,, jk=telu0&3 8ڀӿJ_eMy"f$(be؋A"%@KOvSs 9P,P]z| H;Dҹ{U
@@ -6183,22 +6146,22 @@ DH *$ Rv"eD MLAP I"NY$g1P (DPRxfxNE~m
endstream
endobj
391 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OPWHQU+LMRoman8-Regular /DescendantFonts [ 1406 0 R ] /ToUnicode 1405 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OPWHQU+LMRoman8-Regular /DescendantFonts [ 1405 0 R ] /ToUnicode 1404 0 R >>
endobj
-1406 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OPWHQU+LMRoman8-Regular /FontDescriptor 1402 0 R /W 1401 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1405 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OPWHQU+LMRoman8-Regular /FontDescriptor 1401 0 R /W 1400 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1407 0 obj
+1406 0 obj
[ 187 [ 611 ] ]
endobj
-1409 0 obj
+1408 0 obj
<< /Filter /FlateDecode /Length 12 >>
stream
xc`

endstream
endobj
-1410 0 obj
+1409 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 620 >>
stream
xuR]O`n$8*86DF-&z'
@@ -6207,10 +6170,10 @@ xuR]O`n$8*86DF-&z'
Ezsw`#[mrϪ'[Hmr~3S)~ȻxY-toX} vN^%-5{KZ?,sT[-Z𕢶{6:D u
endstream
endobj
-1408 0 obj
-<< /Type /FontDescriptor /FontName /TMHZDF+LMRoman6-Regular /Flags 4 /FontBBox [ -515 -298 1647 1125 ] /Ascent 1125 /CapHeight 683 /Descent -298 /ItalicAngle 0 /StemV 117 /XHeight 431 /FontFile3 1410 0 R /CIDSet 1409 0 R >>
+1407 0 obj
+<< /Type /FontDescriptor /FontName /TMHZDF+LMRoman6-Regular /Flags 4 /FontBBox [ -515 -298 1647 1125 ] /Ascent 1125 /CapHeight 683 /Descent -298 /ItalicAngle 0 /StemV 117 /XHeight 431 /FontFile3 1409 0 R /CIDSet 1408 0 R >>
endobj
-1411 0 obj
+1410 0 obj
<< /Filter /FlateDecode /Length 362 >>
stream
x}_k0)
@@ -6218,22 +6181,22 @@ x}_k0)
endstream
endobj
390 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TMHZDF+LMRoman6-Regular /DescendantFonts [ 1412 0 R ] /ToUnicode 1411 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TMHZDF+LMRoman6-Regular /DescendantFonts [ 1411 0 R ] /ToUnicode 1410 0 R >>
endobj
-1412 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TMHZDF+LMRoman6-Regular /FontDescriptor 1408 0 R /W 1407 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1411 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TMHZDF+LMRoman6-Regular /FontDescriptor 1407 0 R /W 1406 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1413 0 obj
+1412 0 obj
[ 27 [ 869 559 ] 34 [ 818 639 575 ] 42 [ 831 511 ] 45 [ 319 882 639 ] 49 [ 756 527 575 ] 54 [ 724 351 575 575 904 575 ] 62 [ 900 639 383 436 319 594 ] 70 [ 607 692 319 ] 74 [ 1092 958 900 639 575 ] 80 [ 864 575 575 786 639 447 447 ] 88 [ 319 ] 91 [ 607 ] 95 [ 863 474 639 454 ] 100 [ 575 575 575 ] 104 [ 800 447 575 575 885 639 ] 111 [ 869 607 1189 831 869 607 869 607 703 511 575 671 ] 125 [ 639 ] 251 [ 527 ] 283 [ 1150 ] 446 [ 894 ] 502 [ 319 ] ]
endobj
-1415 0 obj
+1414 0 obj
<< /Filter /FlateDecode /Length 34 >>
stream
xc``0/y߿€
0A)
endstream
endobj
-1416 0 obj
+1415 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7229 >>
stream
xڵzw\W0;hq-;8`/(bA5vQQ@AA
@@ -6280,31 +6243,31 @@ rxCʼ[/\oOOnyXo@ۚ#b'qnj(U><Յ|ZUP(痭=_
yY?r
endstream
endobj
-1414 0 obj
-<< /Type /FontDescriptor /FontName /CWYYJT+LMRoman10-Bold /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /Ascent 1133 /CapHeight 686 /Descent -295 /ItalicAngle 0 /StemV 106 /XHeight 444 /FontFile3 1416 0 R /CIDSet 1415 0 R >>
+1413 0 obj
+<< /Type /FontDescriptor /FontName /CWYYJT+LMRoman10-Bold /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /Ascent 1133 /CapHeight 686 /Descent -295 /ItalicAngle 0 /StemV 106 /XHeight 444 /FontFile3 1415 0 R /CIDSet 1414 0 R >>
endobj
-1417 0 obj
+1416 0 obj
<< /Filter /FlateDecode /Length 672 >>
stream
x}[o1WHvW(y+w<k Ucƞ3ǓI*jk쉳OV0uSGެ*NGc7cїh>X=L-G%~K{KuqcO?._s1v7?MӖ}a}0zZ}om'}Q+nH$zQ2]QYIv渴*Yۮ9ŏQѦ)qOX`ƣшis;o6GvѲ;wvb} K'[Tڴ0M4t.(2V8]W^BşM/J&"dhH!FSwJY2A d1BuI3H"S2I @:t2@@9G3H'tct :s8C$"eTU9~J"P]@g
endstream
endobj
389 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /CWYYJT+LMRoman10-Bold /DescendantFonts [ 1418 0 R ] /ToUnicode 1417 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /CWYYJT+LMRoman10-Bold /DescendantFonts [ 1417 0 R ] /ToUnicode 1416 0 R >>
endobj
-1418 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /CWYYJT+LMRoman10-Bold /FontDescriptor 1414 0 R /W 1413 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1417 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /CWYYJT+LMRoman10-Bold /FontDescriptor 1413 0 R /W 1412 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1419 0 obj
+1418 0 obj
[ 28 [ 613 ] 35 [ 580 ] 47 [ 624 ] 50 [ 558 ] 55 [ 536 ] 59 [ 641 ] 72 [ 513 ] 77 [ 613 ] 82 [ 553 ] 84 [ 558 ] 98 [ 458 ] 104 [ 786 ] 112 [ 613 ] ]
endobj
-1421 0 obj
+1420 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc```T`h`Phh
endstream
endobj
-1422 0 obj
+1421 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1852 >>
stream
x}UP]43Y ?1D@b
@@ -6317,10 +6280,10 @@ Cأ-ܙo  fn @b B> ߇6'Q0N-ͺ*jq
C?Uks> n=Sߗ]{Uduk4ZAa 0ǰ nwpWB>_`:׍k78L <A¯‘:t@9[v?ӍN4?tn@g@Q[Lh$<xL{״0Q/o^L=S+= #L<B 묯j-nOb)׉x|? CT3: ~;EՕ.%+XʧZ> pJv3^ !N^[;.Di>Ȝ^ԏ+>n7PeЙ^/n
endstream
endobj
-1420 0 obj
-<< /Type /FontDescriptor /FontName /EYRPLG+LMRomanCaps10-Regular /Flags 4 /FontBBox [ -496 -290 1501 1100 ] /Ascent 1100 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 106 /XHeight 514 /FontFile3 1422 0 R /CIDSet 1421 0 R >>
+1419 0 obj
+<< /Type /FontDescriptor /FontName /EYRPLG+LMRomanCaps10-Regular /Flags 4 /FontBBox [ -496 -290 1501 1100 ] /Ascent 1100 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 106 /XHeight 514 /FontFile3 1421 0 R /CIDSet 1420 0 R >>
endobj
-1423 0 obj
+1422 0 obj
<< /Filter /FlateDecode /Length 430 >>
stream
xڍM0C {Z,ub؏i
@@ -6330,21 +6293,21 @@ RF)O_J [.!vUkVU {:~h
endstream
endobj
388 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /EYRPLG+LMRomanCaps10-Regular /DescendantFonts [ 1424 0 R ] /ToUnicode 1423 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /EYRPLG+LMRomanCaps10-Regular /DescendantFonts [ 1423 0 R ] /ToUnicode 1422 0 R >>
endobj
-1424 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /EYRPLG+LMRomanCaps10-Regular /FontDescriptor 1420 0 R /W 1419 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1423 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /EYRPLG+LMRomanCaps10-Regular /FontDescriptor 1419 0 R /W 1418 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1425 0 obj
+1424 0 obj
[ 28 [ 500 ] 35 [ 556 ] 43 [ 444 ] 45 [ 278 ] 47 [ 556 ] 50 [ 444 ] 52 [ 778 ] 55 [ 306 ] 59 [ 500 ] 63 [ 556 333 ] 66 [ 278 ] 71 [ 625 278 ] 75 [ 833 750 556 ] 81 [ 500 ] 84 [ 556 ] 88 [ 278 ] 91 [ 528 ] 96 [ 392 ] 98 [ 394 ] 104 [ 722 389 ] 109 [ 556 ] 112 [ 528 ] 115 [ 750 528 ] 125 [ 556 ] 251 [ 444 ] 257 [ 444 ] 277 [ 444 ] 502 [ 278 ] ]
endobj
-1427 0 obj
+1426 0 obj
<< /Filter /FlateDecode /Length 35 >>
stream
xc``\8c‚#3XP2`
endstream
endobj
-1428 0 obj
+1427 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3950 >>
stream
xX TSW>NT9M[vQ[Z:Q(jWx(
@@ -6367,31 +6330,31 @@ Qm!5;~DM1S=RH$K#aF@ l~ P4dFf,u@{gȮY
ijYZA+|}l7MҮ%A٠n>u5f˛AANb֠5
endstream
endobj
-1426 0 obj
-<< /Type /FontDescriptor /FontName /ZSUCQN+LMRomanSlant10-Regular /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle -10 /StemV 93 /XHeight 431 /FontFile3 1428 0 R /CIDSet 1427 0 R >>
+1425 0 obj
+<< /Type /FontDescriptor /FontName /ZSUCQN+LMRomanSlant10-Regular /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle -10 /StemV 93 /XHeight 431 /FontFile3 1427 0 R /CIDSet 1426 0 R >>
endobj
-1429 0 obj
+1428 0 obj
<< /Filter /FlateDecode /Length 531 >>
stream
xڍKo@Y8I,%KH I1B-ǂߙ9c"UUT$1a=wEs$7lO}3v%k:ٺ)ǚ#$h޻i`tjS[Y^FASֿ^\ɏ}+~۹__M]R\kpQ5T4?F>1s~H6wV7[L*):+(3Q%Y<]_<5jYuJS*3BZN0A'unWڐPj~G {_6(+䙜2'lW9'J*n䥪瑗hz!?e5(F,ٞ1vy0r|K,ٞTG@sz6=cAY _"(K%PrMNKl^/1{lXl ysl yKHϽO<i$zoY]\uz*I;62osMoE
endstream
endobj
387 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZSUCQN+LMRomanSlant10-Regular /DescendantFonts [ 1430 0 R ] /ToUnicode 1429 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ZSUCQN+LMRomanSlant10-Regular /DescendantFonts [ 1429 0 R ] /ToUnicode 1428 0 R >>
endobj
-1430 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZSUCQN+LMRomanSlant10-Regular /FontDescriptor 1426 0 R /W 1425 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1429 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ZSUCQN+LMRomanSlant10-Regular /FontDescriptor 1425 0 R /W 1424 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1431 0 obj
+1430 0 obj
[ 28 [ 569 ] 45 [ 323 ] 47 [ 631 ] 50 [ 508 569 ] 55 [ 354 569 569 ] 59 [ 569 ] 66 [ 323 ] 75 [ 939 ] 78 [ 569 ] 81 [ 569 569 ] 98 [ 453 ] 100 [ 569 569 ] 106 [ 569 569 ] 121 [ 569 ] ]
endobj
-1433 0 obj
+1432 0 obj
<< /Filter /FlateDecode /Length 24 >>
stream
xc````5 c
endstream
endobj
-1434 0 obj
+1433 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2882 >>
stream
x}V TGa`zTDm5ݦ=DkQcQ a8fd@e9f@DD9JtM< M\]1զ|/{ަ_uwU}UٙH${ǚ뵱
@@ -6406,10 +6369,10 @@ x}V TGa`zTDm5ݦ=DkQcQ a8fd@e9f@DD9JtM< M\
'ѸXfݯ6f,r,G4r ݅,ȦI.x"^[ǤӰ(>f!BS˼x3< #'"vЈzxAیf
endstream
endobj
-1432 0 obj
-<< /Type /FontDescriptor /FontName /PTDKAL+LMRoman7-Regular /Flags 4 /FontBBox [ -483 -292 1562 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 108 /XHeight 431 /FontFile3 1434 0 R /CIDSet 1433 0 R >>
+1431 0 obj
+<< /Type /FontDescriptor /FontName /PTDKAL+LMRoman7-Regular /Flags 4 /FontBBox [ -483 -292 1562 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 108 /XHeight 431 /FontFile3 1433 0 R /CIDSet 1432 0 R >>
endobj
-1435 0 obj
+1434 0 obj
<< /Filter /FlateDecode /Length 455 >>
stream
x}n0y
@@ -6418,78 +6381,78 @@ wDiBhRPm%bGNqT].R_ΙLnp tj nɤTlh@
endstream
endobj
386 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /PTDKAL+LMRoman7-Regular /DescendantFonts [ 1436 0 R ] /ToUnicode 1435 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /PTDKAL+LMRoman7-Regular /DescendantFonts [ 1435 0 R ] /ToUnicode 1434 0 R >>
endobj
-1436 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /PTDKAL+LMRoman7-Regular /FontDescriptor 1432 0 R /W 1431 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1435 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /PTDKAL+LMRoman7-Regular /FontDescriptor 1431 0 R /W 1430 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1437 0 obj
-[ 27 [ 743 511 ] 35 [ 460 ] 42 [ 716 460 ] 45 [ 307 755 511 ] 49 [ 678 460 511 ] 55 [ 307 511 511 ] 59 [ 460 ] 63 [ 511 358 ] 66 [ 307 ] 72 [ 256 ] 74 [ 897 818 743 562 511 ] 81 [ 511 511 678 511 ] 91 [ 460 ] 95 [ 729 422 562 409 ] 100 [ 511 511 ] 104 [ 716 332 511 511 ] 109 [ 537 ] 112 [ 460 ] 114 [ 664 ] 116 [ 464 ] 118 [ 486 ] 121 [ 511 ] 168 [ 511 ] 251 [ 460 ] 257 [ 460 ] 277 [ 460 ] 284 [ 511 ] ]
+1436 0 obj
+[ 27 [ 743 511 ] 35 [ 460 ] 42 [ 716 460 ] 45 [ 307 755 511 ] 49 [ 678 460 511 ] 55 [ 307 511 511 ] 59 [ 460 ] 63 [ 511 358 ] 66 [ 307 ] 72 [ 256 ] 74 [ 897 818 743 562 511 ] 81 [ 511 511 678 511 ] 91 [ 460 ] 95 [ 729 422 562 409 ] 100 [ 511 511 ] 104 [ 716 332 511 511 ] 109 [ 537 ] 112 [ 460 ] 114 [ 664 ] 116 [ 464 ] 118 [ 486 ] 121 [ 511 ] 168 [ 511 ] 251 [ 460 ] 257 [ 460 ] 277 [ 460 ] ]
endobj
-1439 0 obj
-<< /Filter /FlateDecode /Length 35 >>
+1438 0 obj
+<< /Filter /FlateDecode /Length 34 >>
stream
-xc``0/`_/@X8
+xc``0/`_/@X
endstream
endobj
-1440 0 obj
-<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6123 >>
-stream
-xyxg1<fB$tBqބlYUԻ>*[{ kJ K I6޻Od?{>W~,#y{ 8a03eӖ/ܵ/+3tm N{炳A(| b AH<e&vgjn(;tH,,z߇YO'MW9X/ !2|0PSxe,yeS??.\dϫ#7.ܞr9 "w-ܝ%r"e"S2R#R#Fd EHFrߜܔH!/9%'Rod;9I)ܔȅ ##sSR"ŋ´EY9iS.P6EH'LʉLN$p2r̄ Y)ےSx 8,<2Y,F"ːJdYG^G6"[d' ٍE!Q$GD$IAr"AGN/,NX,MDw 11G&AЛIؤ!igN3B=a}SNS5ӤF><Bv;Lf~Qg:gHDMGcbƅ'[+*Pwa7-xN-א r1`zC6Z&V |PH)\60֠\Y\d^`!:-mV$jT
- w0?3ϳ*B _g(s4`-j-fVU`SpqqI=A-菺~t7y!j;jdE"-yljך1Յ
-_<}. '_~r lJEv30>3ۦtFBE,ܰLW:Wj`[3$5 `SM͝wagp',/"xGD! -:nRN:[,XmDkwK
-xazQ'" 3᭟0˂5J *PNC |zPnҨco@ /^r\ãWH;9a->,mm.;3dAh6"fK5$|>x1񲗒"~}yڽYm̪ ݅n^7 "E
-jcGJ+;pc^I^!6 kXmq NcA6s3 FQIXKL
-3Q :4VKr
-]XpkǝUb2S+c
-EYmmeA <3`}'+o%R~x& p P }RИzѠ%űd<.]#-Y-ד_jT
-DZSm':\hw;pl_;٣<M;ِ>HصeOG4J 85Dͣ[qj˭3=^/)Z);eq"%%"\<|*NJ IrRG?~ﶏ(1tݽ
->x
-r<u*u*IXrMٯ[KV"<>ή*gr\a9L,'__d–kj.4 /!בi#zԨӊ7S:+k+, wU]ZGx/p
-jfaIg ~^g0f$缻dٴ-b pCG:l~1ԅnCшJ_^M*dBT.x_Fc4ɈDy-1mmUp`0dod$-&9];໴30/̾
- s!G+ݣJ4p1Vczh~J~8/z
-瓏xɽN v'y
-E[7>
-]7[
-M쟮0Lv
-Tf<-=heSQW@יUyQ"=Vmv} p)~:l`z02Z/N=VyRQ+ 2xRc#-նU<ڧbwֿOM#_Gxãqa8[IWJc:I޳{M?:TFAyXˢq49s |B:-_)Q3Toɾ-vjr4:UXZL}
-O]g9A!s3~4Z"1z055)K[dNה%iah-Q/S6t14epUϦ*'yeer(!RkBP"uw[D
-,l6u!S UN6( љ@+T*- ls3g֟]^PQ"UaYt1 Vavփrj.x{H|tѢ3[*,)#<"'ڲM8g{hʦFeuy*s"rtGwYnZ]
-%ᖤrf\5e@ãMiF~1@8O6⇶/oc^GM;{E6dV7,8%Ek|wێM
-j‡%,'X!Ú|弘hVN,~pM٫+(eC-ѣC*;]tn~LZĭiV#%[YNk!LKverh |>2dcpҺQVS;'`hgM:
-
-_rY gtiuN .)򕤪kHM6*.|d=atSBLR)mf
-01K鰘iK_q?:(gvF9zhuj\xpsKO:
+1439 0 obj
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6083 >>
+stream
+xY xSe>!PD9rNDDPVY*;elvB4mt˾ϾvoӽPZe"880
+:{zSswIIN~0離߱mwgf-YM}/*Tp&%O" 1.H2ZfBf2CǏPOGs dy\I"F} 0 +d2&1/p3y4!g…K^}^Y7%>)q9$Ζ9;2%Q.gN&LM$gpR3E9{Ӹ9If6CNNOINIaZ2g={9fmd~N2g<''9&
+V.X N]B&gA؇r7ը{mۼ>rǞ\!'%3,GfvF|ڤ̄I|!WyyyyG dYB Md+ َ@v!=^!H$#i9 Dd#BD!EͤA?#G3)f<`m̑7H+}6ZHwNȎIdӏ
+6lCXMXٔo d=]'&>1Ga/cx“']3D]x0<,a~9]Wf~Z5
+-I nM>0
+<\`Ds,09W te UEJB-l@?b]v4B5F{kۈ7|rXKlWC ‚HmQf!M:/mFuV-#|%ȓ9AP
+ii9JI~3QJ_ ?\EcuMnQs֓]_Y+N7%'֟ҵu&l*rщ_3OQ+B̂{h.&j\j7gKALb7%֙* װR㞝ljqGF8fS_bKsceW^8N JԔZI(5~tב]ڑiUKV-{sUVTVQV07
+V 0`6Vp8Ao2HIL: MIVo4G+ 4
+e:OEAt٨RQh3GyG!#"m-zQ*héj|xVɍ8
+qY:
+J +RUdK;n7*M7'Īsej E`;gȏ2`,`.\l*)Թj=p^Mii{!3j2
+~#KM&2A%bRO|
+FtFa܅& -߆TY#IVd.PN
+;YVn*vӧ?UZ.\-5uhqU`o&צRsul)-χpW'Q5d94Y`I5 hوpN}0]UyRqcssY28DŽ-נ]Vhd~n|?ב)#ԤI
+SNtVemXoK[
+wU<AyKpT0M
+FY{Nbkg|Vٷ7^u!hwX{ ]*{<(\8\RϖM%FTeX˺2E;2
+L AFeée*O&3bO~/07Yku~
+;vt?ݚg_=w)UsO)<]`)
+St8b=k޺x!G37Y9&i8A~k0?7Kh̥48}jȫDiERő. q Vsd @ZI) <Zs]DG^.X:mPnd5\{[g 7`ɝ/62i"$E
+ɤP1{_%m0Kp wB!0%
+]+J~v+[mz Vnh*5jLN"fOQȾ4B&اұ,Ry ο<@cy8 7Hub5Uow(O(1#۟е|˗ Z☲O Vvp `"03?fPNO~+ 8+(bóFۏV=Q(A$&"CIpA]d
+7]l5F[t j;
+GOk?8}<oѧzCԕWZ9bg֓KP$
+5U|EPcִ߶ }vjjK*m\i fUK
+i !<՜(zv ~@5#٫/(Jƨ'FSCU^q\Cw[(@O$H6m3\ҕN*H}'Po欠bHq}7rUlt'
+)\n) 98lrkK:C->tT]yRQqb4p^o
endstream
endobj
-1438 0 obj
-<< /Type /FontDescriptor /FontName /XVGCGS+LMRoman10-Italic /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /Ascent 1125 /CapHeight 683 /Descent -290 /ItalicAngle -15 /StemV 102 /XHeight 431 /FontFile3 1440 0 R /CIDSet 1439 0 R >>
+1437 0 obj
+<< /Type /FontDescriptor /FontName /HOLXNQ+LMRoman10-Italic /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /Ascent 1125 /CapHeight 683 /Descent -290 /ItalicAngle -15 /StemV 102 /XHeight 431 /FontFile3 1439 0 R /CIDSet 1438 0 R >>
endobj
-1441 0 obj
-<< /Filter /FlateDecode /Length 583 >>
+1440 0 obj
+<< /Filter /FlateDecode /Length 579 >>
stream
-x}k@W>!u9HXTJ_c2vf3sʺ?{9:zߺ˪K7l#ԗM_ΙLVmyj_duo˭4W;-Uy<UI~[bN~iByX.7vx Uf|~[ȼ{ι SU6hK6}UӪlow<Uu9e2aMXF?ۭ[_ɾV_lzcGٞ(>;I*yЭuFE#+]Νde m%(e_/,t<aKuSP .okSqzR ZBp.&ZYSPeZC
-<"s@-Q#z.D%ly uHHI=K6&
-"x v h
-$/h49BZb v]228eKK<ds| ~Wl.V^_6{2wVLΜ/0< >c
+x}Oo0=8B(-R ]@^ClHĉpۯ7ijZ<{x; Q<r]}k ._VuqR
+)jں8ȞFoTq 9-zR}J6>w}}yU<nZ.7e o̶-ۮ9Le]3-d\*Ҫdw<ߢQÇ{jε3^ۭɮ-ՅQkJN2!ϺhWMղ㽑̷akBHgC)OH%9N@- gCqz 2
endstream
endobj
385 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /XVGCGS+LMRoman10-Italic /DescendantFonts [ 1442 0 R ] /ToUnicode 1441 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /HOLXNQ+LMRoman10-Italic /DescendantFonts [ 1441 0 R ] /ToUnicode 1440 0 R >>
endobj
-1442 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /XVGCGS+LMRoman10-Italic /FontDescriptor 1438 0 R /W 1437 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1441 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /HOLXNQ+LMRoman10-Italic /FontDescriptor 1437 0 R /W 1436 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1443 0 obj
+1442 0 obj
[ 27 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 61 [ 525 525 525 525 525 525 525 525 ] 70 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 91 [ 525 ] 95 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 120 [ 525 525 ] 245 [ 525 525 ] 252 [ 525 ] 272 [ 525 ] ]
endobj
-1445 0 obj
+1444 0 obj
<< /Filter /FlateDecode /Length 33 >>
stream
xc``_
endstream
endobj
-1446 0 obj
+1445 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 8030 >>
stream
xڽz\WאּD *(3Ěcb((,3{cWlAq$kMLbMs} y .s̜<gV@bˎrptJߘ?gWLn*75E${EcY
@@ -6534,10 +6497,10 @@ MU|\hk!y\&bVf QN^)T6+HLYׅǃ"ƒ|v,
Ct?LCDpƦjYMD<7ťr=?;)ZVM41Yl^W1Yq,+VT̨&n&ggHsZZE1t+AX鿘yLV,, <ӗXQڑQK?Y٦U9iiM_/2t
endstream
endobj
-1444 0 obj
-<< /Type /FontDescriptor /FontName /RXYETB+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1446 0 R /CIDSet 1445 0 R >>
+1443 0 obj
+<< /Type /FontDescriptor /FontName /RXYETB+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1445 0 R /CIDSet 1444 0 R >>
endobj
-1447 0 obj
+1446 0 obj
<< /Filter /FlateDecode /Length 738 >>
stream
x}[k@+f/
@@ -6549,21 +6512,21 @@ F#d0JF@02$IT^H|jYUK_]KL/E%4,CN3oӒS %,aNó6
endstream
endobj
384 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RXYETB+LMMono10-Regular /DescendantFonts [ 1448 0 R ] /ToUnicode 1447 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RXYETB+LMMono10-Regular /DescendantFonts [ 1447 0 R ] /ToUnicode 1446 0 R >>
endobj
-1448 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RXYETB+LMMono10-Regular /FontDescriptor 1444 0 R /W 1443 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1447 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RXYETB+LMMono10-Regular /FontDescriptor 1443 0 R /W 1442 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1449 0 obj
+1448 0 obj
[ 28 [ 481 ] 35 [ 517 ] 43 [ 444 ] 47 [ 517 ] 50 [ 444 ] 55 [ 306 ] 57 [ 500 ] 59 [ 500 ] 63 [ 517 333 278 239 ] 68 [ 267 ] 70 [ 489 ] 72 [ 239 ] 75 [ 794 ] 77 [ 517 ] 81 [ 500 500 ] 84 [ 517 ] 96 [ 342 ] 98 [ 383 ] 101 [ 500 ] 105 [ 361 500 500 ] 109 [ 517 ] 111 [ 667 461 ] 114 [ 683 ] 116 [ 461 ] 118 [ 461 ] 120 [ 435 ] 125 [ 536 536 ] ]
endobj
-1451 0 obj
+1450 0 obj
<< /Filter /FlateDecode /Length 24 >>
stream
xc``T |5%aI6
endstream
endobj
-1452 0 obj
+1451 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2827 >>
stream
xuV TW1 h@%&RFgjk
@@ -6581,10 +6544,10 @@ m׫&IcT щqRm4T!MKUR:mZr껎u4CHNNUJӒbU:>A% iҥ5
ʊKJm)
endstream
endobj
-1450 0 obj
-<< /Type /FontDescriptor /FontName /JZYRJQ+LMSans10-Regular /Flags 4 /FontBBox [ -420 -309 1431 1154 ] /Ascent 1154 /CapHeight 694 /Descent -309 /ItalicAngle 0 /StemV 93 /XHeight 444 /FontFile3 1452 0 R /CIDSet 1451 0 R >>
+1449 0 obj
+<< /Type /FontDescriptor /FontName /JZYRJQ+LMSans10-Regular /Flags 4 /FontBBox [ -420 -309 1431 1154 ] /Ascent 1154 /CapHeight 694 /Descent -309 /ItalicAngle 0 /StemV 93 /XHeight 444 /FontFile3 1451 0 R /CIDSet 1450 0 R >>
endobj
-1453 0 obj
+1452 0 obj
<< /Filter /FlateDecode /Length 527 >>
stream
x}O0=dqwW(@bS@U[ }m?[$xc&|䞳5YE <HuoDdm؇ ul+Uuw&yYR*uK}pK?—_?/¯Bt8 r{j[uGDf(senZ=sn,득 F^%Ke;+<b&>˓\ڎN+锍Lũ FZԁ ?hr69xeLޔ6'b#;Jh]>vf{iŎ#.kImS u`jL.+ Hɿv{I&>T.-iYP 4vĠ HRУg*<8sG9?|Oc3(@s%>AP&DL'M1FLhI|h,T' .?mzM,nO ~{6\<kmV]v+Eכԍ=
@@ -6592,18 +6555,18 @@ x}O0=dqwW(@bS@U[ }m?[$xc&|䞳5Y
endstream
endobj
383 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JZYRJQ+LMSans10-Regular /DescendantFonts [ 1454 0 R ] /ToUnicode 1453 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JZYRJQ+LMSans10-Regular /DescendantFonts [ 1453 0 R ] /ToUnicode 1452 0 R >>
endobj
-1454 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JZYRJQ+LMSans10-Regular /FontDescriptor 1450 0 R /W 1449 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1453 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JZYRJQ+LMSans10-Regular /FontDescriptor 1449 0 R /W 1448 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1455 0 obj
+1454 0 obj
[388.9 388.9 0 777.8 0 0 0 0 500 500 500 500 500 500 500 500 500 500 0 0 0 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 277.8 0 277.8 0 0 0 0 0 444.4 0 0 0 0 0 277.8 0 0 0 0 555.6 500 0 0 0 394.4 ]
endobj
-1456 0 obj
+1455 0 obj
[ 27 [ 750 500 778 ] 34 [ 708 556 500 ] 38 [ 500 500 ] 42 [ 722 444 278 278 764 556 ] 49 [ 681 444 500 ] 53 [ 278 653 306 500 500 785 500 ] 62 [ 750 556 333 361 278 514 306 778 528 625 278 ] 74 [ 917 833 750 556 500 ] 80 [ 778 500 500 681 556 389 389 ] 88 [ 278 778 778 528 ] 95 [ 736 392 556 394 278 500 500 500 ] 104 [ 722 389 500 500 750 556 ] 111 [ 750 528 1028 722 750 528 750 528 611 444 500 583 833 ] 125 [ 556 556 ] 144 [ 500 ] 167 [ 750 500 ] 207 [ 444 ] 234 [ 375 ] 250 [ 681 444 ] 257 [ 444 ] 277 [ 444 ] 283 [ 1000 500 ] 319 [ 556 556 ] 343 [ 278 ] 428 [ 500 ] 446 [ 778 ] 502 [ 278 ] 575 [ 556 ] 589 [ 556 ] ]
endobj
-1458 0 obj
+1457 0 obj
<< /Filter /FlateDecode /Length 60 >>
stream
xc``/߿
@@ -6611,7 +6574,7 @@ xc``/߿
8 &#
endstream
endobj
-1459 0 obj
+1458 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 9343 >>
stream
x{XW쬍(13hl{{oK,[" FbI%XsvQk3O>fc KVnXhk]Ǝ[fys!ן
@@ -6653,10 +6616,10 @@ E%P< Kc5-`vofUzy|9s.nVxTp03E^`?1ACR,Nd?~ƃT
a!(b:tjrQX8C]ԨKצtt}U#I
endstream
endobj
-1457 0 obj
-<< /Type /FontDescriptor /FontName /TINWNG+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 1459 0 R /CIDSet 1458 0 R >>
+1456 0 obj
+<< /Type /FontDescriptor /FontName /TINWNG+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 1458 0 R /CIDSet 1457 0 R >>
endobj
-1460 0 obj
+1459 0 obj
<< /Filter /FlateDecode /Length 798 >>
stream
xڅMo@C@!cWH j{%B-95R<ޏwfr͇Dx7fݬ)N{Sw cJS^Fm}:{u;2ߓf[շ)}q2?{_ׁ?x7n~٪vvf
@@ -6666,91 +6629,110 @@ xڅMo@C@!cWH j{%B-95R<ޏwfr͇Dx7f
endstream
endobj
381 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TINWNG+LMRoman10-Regular /DescendantFonts [ 1461 0 R ] /ToUnicode 1460 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TINWNG+LMRoman10-Regular /DescendantFonts [ 1460 0 R ] /ToUnicode 1459 0 R >>
endobj
-1461 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TINWNG+LMRoman10-Regular /FontDescriptor 1457 0 R /W 1456 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1460 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TINWNG+LMRoman10-Regular /FontDescriptor 1456 0 R /W 1455 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1462 0 obj
+1461 0 obj
[446.4 446.4 0 877 0 0 0 0 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 ]
endobj
-1463 0 obj
+1462 0 obj
[500 0 0 0 0 0 0 0 0 0 0 0 277.8 277.8 0 0 0 0 0 750 758.5 714.7 827.9 0 0 0 0 439.6 0 0 680.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 528.6 429.2 432.8 520.5 465.6 489.6 0 576.2 344.5 411.8 520.6 298.4 878 600.2 0 503.1 0 451.2 0 0 572.5 0 0 571.5 490.3 465 ]
endobj
-1464 0 obj
+1463 0 obj
[955.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 533.6 588.2 0 0 0 880.8 ]
endobj
-1465 0 obj
+1464 0 obj
[1027.8 0 0 0 0 0 680.6 680.6 680.6 680.6 ]
endobj
-1466 0 obj
+1465 0 obj
[339.3 0 0 0 585.3 0 0 0 819.4 0 0 0 0 0 0 0 0 783.7 0 0 0 0 0 0 0 674.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 542 0 0 0 404.2 472.7 607.3 0 0 706.2 0 588.9 523.6 0 0 0 0 0 0 647.8 ]
endobj
-1467 0 obj
+1466 0 obj
[333.3 0 0 0 0 0 736.1 736.1 527.8 527.8 0 0 0 0 750 750 0 0 0 0 791.7 791.7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 888.9 0 0 888.9 666.7 875 875 875 875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 555.6 0 0 0 0 0 0 0 0 0 0 0 0 0 472.2 472.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 666.7 666.7 450 450 450 450 ]
endobj
-1468 0 obj
-[ 28 [ 525 525 525 ] 32 [ 525 525 525 525 525 ] 38 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 59 [ 525 ] 62 [ 525 525 525 ] 66 [ 525 525 525 ] 70 [ 525 525 525 ] 74 [ 525 525 525 525 525 ] 80 [ 525 525 525 525 525 525 525 525 525 525 ] 91 [ 525 ] 96 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 116 [ 525 ] 118 [ 525 ] 120 [ 525 525 ] 163 [ 525 ] 246 [ 525 ] 272 [ 525 ] 314 [ 525 525 ] 439 [ 525 ] 494 [ 525 ] ]
+1467 0 obj
+[ 28 [ 525 525 525 ] 32 [ 525 525 525 525 525 ] 38 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 59 [ 525 ] 62 [ 525 525 525 ] 66 [ 525 525 525 ] 70 [ 525 525 525 ] 74 [ 525 525 525 525 525 ] 80 [ 525 525 525 525 525 525 525 525 525 525 ] 91 [ 525 ] 96 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 116 [ 525 ] 118 [ 525 ] 120 [ 525 525 ] 163 [ 525 ] 246 [ 525 ] 272 [ 525 ] 439 [ 525 ] 494 [ 525 ] ]
endobj
-1470 0 obj
-<< /Filter /FlateDecode /Length 43 >>
+1469 0 obj
+<< /Filter /FlateDecode /Length 40 >>
stream
-xc``_ `& n
+xc``_ `& n`Pi
endstream
endobj
-1471 0 obj
-<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7450 >>
-stream
-xڽzXSJ\=7u{Q'.=Xa$$M {q *ZqPhۨ:kھyO:<B=~9~?&x<ސWl[n5k2I^j?@ӥ{Hp n8ƊXmxhƛ?{-lFumbB؋CoXgN<u%rEHJ2}M%'K\}U!q,Y3YVHe7D)("Q+JW\P?YG)}%@U)e@[*Yad\qʔRɤIR*xT9S^^S<=)~SLMZv+,]adUJ)xHU>~bp<oMC*SB3A
-*pI
-N԰يRp(V/_@;f+{|u\?v3횠79n繋ܛ՛b%ҥ eܘ" 1 Ӌcr7VA$NfԈLA ۶mdOUl3 rkƦ
-n4,D+|k(N`]MWw~.'V8^23<@NaTN<ZM"Y/Id0?n7JѐDcyO5[\u%$sm3mÒAvʰ5Rr6oh8,aLc9{bt>+{2c`p<FYi1i4؁lg 5ص'wEϹ`1OF
-Ga4 Lb3i
-% dl/RE1%]5N4cc8ZV^h
-ya+ #{,udᱡK]TïpSJ&1BBvZ3pT- Ep)v(8+_׳AxϬ-s9ϣ;<x(fd ^"*IS BJ:M˩ /0[,Spp<{wu{/t'G=8 C60S?%!ycIHMip.ђvsz/1&%jM40 dD8v#Nτ(Q9 9]ʭMaz>f՟ ?]]=- p9%4Me~ NUO"W-/0ZR~Z[,* ӹ,9>EXES#[S*~1uԆN4p^
->1:)4lⴴLpX~}u˜fo.<fl}rr0V*֔ˣsC>heOn8Nn tpf>]7qIA R#&e
-+V +dN3K_A ^0޵.4G2v%#MEc28+w9\n6Кn-@8N[_&)iʐr<X#_ye׫O
-Dw߂Ӿ.W#=fj֚H4,k\ٍ@':{n<~{ {W5Ugiwdb~1H#3`ԟue4fw@ګ{tiv|[O5cs׎WX/XZP_i.Ùuw?qB+"#%qu &}h]tL΢JT ]>i p^zA2K%<FfչЙVJN/OvT$MAEm(T6E Yh==z; &wU{t2FU^ B친ϠvsXe0^ j{9bi^B1喷j|bl '$ۡQ7GjM<$iA_V5 (ICZmRA(QQZ|23؝4’xfDA-"nE1p< Z;w QH@äE2&g$!nQo?wk޼o"NRE-wtGj&H#e
-.G,j9,jT@*?eN_v?gor6D919;Y{Gq]oK1q~@|ğ4 @^K8
-9e;ug{5g,Rͧ?G}qO2JǙ f@ݖOc`k1q8YiL^L1 Q!V\`6Q1
-լu37MNȟxy"XvϱI/fL`#&`b ps<^ ˎ͊ÚyQA]}6~B]\|t8&=oς3_=!2_ !}R3-/<t7
-SjQRaWexc"cASJ x }\]{;T}-,]Ҕlovٰ=Pv=T",LJ*1[0 {ܠ=ECGOL\2fphvT_
-'GZh<_}wE{-k(Ng\]pg+-/*+Jȉ
-ӹ$EmGg
- )u.m^e֊KFN1RIr':O"ք τ- c;
-ȭdJ9돦dw1_KB="/Z:D |7ZR7wIN@<҃T};MbJ4#LnBb<E=1}-rT5sw3M1t
-IbEGeӰ mhO[0Ns:ສ#@yIXP&3yi9baX1Y :pOLdŬjn eČChyH½>_T&1bڌPk5ȏPR%cq{Pj
-]@ʼn:{W")
-/*lMB6mƎ bO‚9ܒq~fm6fɩL)iɅvhǕ/$#
+1470 0 obj
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7293 >>
+stream
+xڽz TSWJznj:Ou#N(HBB0<hŁZEkZ[kc_kϵNk#!zr=g=&x<ް+XxGGYl R/kJ=n4k7ǁ>cI6<4ꊍutMz(e ğ} t6:،1}1f,!CaHw<gΘ2mڬ2yhR2cڴLs$KH\}ej5C0E8EVH$nRoW?OSIURH J`dBJAR?B!QxH$JodM
+9 fC
+( (O;kLk4/ X˜; ZS65l#ARj j ׹5jm {y"TՀ٤F*b
+*d"=;՟
+oݩ;uA|9֊6Oޔ&D{zE {=O>zHV8ϲy,}F2J:OQȼA* z{<S|
+c.#Z/u_Q46ذ8qH~xIfjrr*%~BP\c`dT'*M|ME6`I~A1^[5ĖS~CѡldP*OG= z
+6EX(4 G28
+mI%kRL0APiRd}~i17B`_!띮a
+:4Dԥ m!]T_؆`19[gU/
+v
+]Ok>tuIINx-g"?3,ePă;
+㬨fj_Ogϭ- sOU9ϣ;=zV˛$
+n jCcUbM~hqg)|9fa
+N@#
+Zb[܄q:]د24) oѰlbv<x
+Ytx{ ^@*WK0-53H\\sYz|ۇog lu>U;ߊQ\OmtB|f.QigvyZ Vb pØŸ(K<B=Q*C2 eN eCLU ^t_ dPLXܵNWvzFCXb{3u 0| Xqir l~v 5%e?
+NACؓ
+f!C,~>޵(\7-6$N R,XS^9vM|=dlfϟʮs@t!d̈́v`&l69,2Νۘ<V86]s;{ti-c 7ݾ{m¹T ^ @>63huGFyCl_y V
+^.Rg\RtZA:KtIϤ|锎leLTdʚs0y?Pldˑ\Pp9׷CCʷgy8#X zP|)0@8WqsX͂.S{:Ƒ+̋,6v3.'o]yrix)]\`4`ꌢ9?z=%-N%虤 >WRS2cye,_7}KQקg铒rFq$0DO:=?=V-lFbt5d$;-0&t M d
+q|m$,HhP?ƩWYٳQHcH!_({aKvEG U{b<A'ۛxL\"  ʒ
+xxN~|Gk
+$@1^=0BpT<l=dKvHڊ<?_XjK]
+\y gf!ο-a!e&~l]a{
+ \Iw=zQtQܒ^5 g^'0U^Ä'%3"Ľh UP/#J\
+Ƕ~Wh[P # C`ڗJ~$ КLZ#&GzDjG/<փG;nwoau*jM8mΟLU̯F9B=XQHNYW&M3hN>vzFMw1i VoзuS'yv
+%O`U` G3HHXdlmt}T16ZE(cTEwFO7gd8/ Upy ߗXGeT0_@g>[~+軼xǝ v:!iz)j7GŴ)ZPB;mn %!3ܫ `D_W^˞ x=x D0G,ɍp(L 莐VO;a~SmAFDr
+r`VE#6ѓ'R8-HJ
+Hwe֐0{]I,ts1_JT?`TNyNar
+^ fIi=~z/IՕ
+SRJabAwex1y]rx \뙵9.v0>Zx2-.#q{f8XXXMcf%аܺt{u›Ud JM2vzE>p J/tM[,jy4Gj6ÎM*ăbv6FK5d[9:)&pa{~׺W2h̒d
+8KW|ߜ
+ͱ4fN4;FKRԁ@6*\v$|lGC^Dx@[fq%47o<i(W?g~F^s ٝ /:pe%Uq頺׏y"<ĝB5N\D#m˶ٰ)'L6))B+ե
+g`8/)9
+]󦻜,7e3ǡraW~DHΛ#~^RUXWKKe
+۪N_w}}/N.&&Fc
+#!?PkB[o5|}ӑN@$IH6 |؂1Ӂו1KJ6)MMcBMc͆h3õ8( _ɊY<M
+uD}?cث?ܼyuzNoac+rl/)WT''ʈРb]n2SgUQٟRmGEĪ|UiZNK
+#sÔqjmuj5zNLn#X!P:3{]+`1+Si=Vl@UYkuy9FZ{}6d9S,wusϵ_?Bc0<|PF{TI LJdccr+ j
+*~
+
endstream
endobj
-1469 0 obj
-<< /Type /FontDescriptor /FontName /YTHZRQ+LMMono9-Regular /Flags 4 /FontBBox [ -451 -318 734 1016 ] /Ascent 1016 /CapHeight 611 /Descent -318 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1471 0 R /CIDSet 1470 0 R >>
+1468 0 obj
+<< /Type /FontDescriptor /FontName /XGWGCA+LMMono9-Regular /Flags 4 /FontBBox [ -451 -318 734 1016 ] /Ascent 1016 /CapHeight 611 /Descent -318 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1470 0 R /CIDSet 1469 0 R >>
endobj
-1472 0 obj
-<< /Filter /FlateDecode /Length 727 >>
+1471 0 obj
+<< /Filter /FlateDecode /Length 718 >>
stream
-x}Ko@Rp=!$FEj j#@-ز͂ߙ9Dh#13s<\_^Lj&?nh0XhldLij^ںXW[yeé4]7̾[|v1?__k[W?mC?"B>.IAny}hH"zWٲ%ͫҌU]o+ ]s| ҴݳݖiaI4\eh{_nN!K5´[7ELx&v@^\?JPth(S<e ֦4H@(q$2@zҠ;im):p 2@A@# #EGGʸD$O A8Մ?NɑjGAT #t
-$!SABRP(k@ʈZA5 b B92P-q$Tk"J%<d2)!t3OATP&qi"z)(x"e^I+(DȚS? YKSZwHh䏈A&D5D5n
-GS䒃8siyr@7BJ)Os(K+L(?~ũm <LK?'+kާ}S7TxeX[
+x}Ko0EvįR!$B>TnibHDIXtQg*QasN&U͇M-goN]iMMy:Z7<Y[߳)7v`׋ro^peכv_?[BvfYq8}aۥ<z}/Y,v}ݸ{r1Id]t:rV@GS89=ݮI&6~QM2z*nϮlNm{At*}>Oۣe}]z8#?Gέey r˦}-mu{L||&+7MZ8 weBl qie\Hs@Y$A9( $
+@##MGGʄB$(O"AՄ?AɑjGAT$ctJ$!SAF$RP(k@ʈĝZArB2SPpT"J<r!tsU`OCPp4"zi(x&e^Ik(3DZP? Y+w(h1䏈A!D55D n
+G3RV8WsYEc͊:xP`au~Vq'bmp*O7)* J
endstream
endobj
374 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YTHZRQ+LMMono9-Regular /DescendantFonts [ 1473 0 R ] /ToUnicode 1472 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /XGWGCA+LMMono9-Regular /DescendantFonts [ 1472 0 R ] /ToUnicode 1471 0 R >>
endobj
-1473 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YTHZRQ+LMMono9-Regular /FontDescriptor 1469 0 R /W 1468 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1472 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /XGWGCA+LMMono9-Regular /FontDescriptor 1468 0 R /W 1467 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1474 0 obj
+1473 0 obj
[ 28 [ 494 ] 43 [ 457 ] 50 [ 457 ] 63 [ 531 ] 66 [ 245 ] 75 [ 816 ] 77 [ 531 ] 96 [ 351 ] 98 [ 394 ] 105 [ 371 ] 116 [ 474 ] 118 [ 474 ] ]
endobj
-1476 0 obj
+1475 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc```P`Ta`X
endstream
endobj
-1477 0 obj
+1476 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1234 >>
stream
xmLWQ`j-:OFKЉ ?c2[{A'eTY@nSadςc1Iej=b//{#@h( br,Cn|Vv)OXY+&>j4MЬĆHCdZqc1ɩ
@@ -6760,10 +6742,10 @@ xmLWQ`j-:OFKЉ ?c2[{A'eTY@nSadςc
7bdxo;ts:<0n${z;[ZhoG6z|t?J
endstream
endobj
-1475 0 obj
-<< /Type /FontDescriptor /FontName /VPHLPO+LMSans9-Regular /Flags 4 /FontBBox [ -433 -313 1466 1155 ] /Ascent 1155 /CapHeight 694 /Descent -313 /ItalicAngle 0 /StemV 95 /XHeight 444 /FontFile3 1477 0 R /CIDSet 1476 0 R >>
+1474 0 obj
+<< /Type /FontDescriptor /FontName /VPHLPO+LMSans9-Regular /Flags 4 /FontBBox [ -433 -313 1466 1155 ] /Ascent 1155 /CapHeight 694 /Descent -313 /ItalicAngle 0 /StemV 95 /XHeight 444 /FontFile3 1476 0 R /CIDSet 1475 0 R >>
endobj
-1478 0 obj
+1477 0 obj
<< /Filter /FlateDecode /Length 419 >>
stream
x}N0~âRY8)UH@+R!}ڱؑ, H3rrn{t-?1pxtV`|-k6*D9DZ#
@@ -6774,21 +6756,21 @@ u0=z0a6 4
endstream
endobj
373 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /VPHLPO+LMSans9-Regular /DescendantFonts [ 1479 0 R ] /ToUnicode 1478 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /VPHLPO+LMSans9-Regular /DescendantFonts [ 1478 0 R ] /ToUnicode 1477 0 R >>
endobj
-1479 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /VPHLPO+LMSans9-Regular /FontDescriptor 1475 0 R /W 1474 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1478 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /VPHLPO+LMSans9-Regular /FontDescriptor 1474 0 R /W 1473 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1480 0 obj
+1479 0 obj
[ 28 [ 514 ] 43 [ 457 ] 45 [ 286 ] 47 [ 571 ] 50 [ 457 ] 55 [ 314 ] 64 [ 343 ] 66 [ 286 ] 71 [ 642 286 ] 75 [ 856 ] 77 [ 571 ] 81 [ 514 ] 84 [ 571 ] 88 [ 286 ] 91 [ 542 ] 96 [ 402 ] 98 [ 405 ] 104 [ 742 400 ] 109 [ 571 ] 112 [ 542 ] 115 [ 771 542 ] 251 [ 457 ] 502 [ 286 ] ]
endobj
-1482 0 obj
+1481 0 obj
<< /Filter /FlateDecode /Length 31 >>
stream
xc```UdX8c‚#3Ѐ
endstream
endobj
-1483 0 obj
+1482 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2880 >>
stream
xڵW{TWA7cgV)bU*T(j C$Hx#o ZCA)j-]ڭ[מc'97̝/+1@0uÛWlX9{Ee,#<x<%[!S-oq
@@ -6808,10 +6790,10 @@ y›lz<A/TmζN>rwaD)E~h)xMsvŊ
+/M<LAwD:C~twZڂViuUu Ae'jT/xlX=@$Ahh5hGp]]FCX}}5Pml{jl`(]6S ΀z}˵Fy!?b j-:+ݘgCOQMeyyL.iC7uɹ,ǎ2&
endstream
endobj
-1481 0 obj
-<< /Type /FontDescriptor /FontName /WDPLWN+LMRoman9-Regular /Flags 4 /FontBBox [ -443 -292 1454 1128 ] /Ascent 1128 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 95 /XHeight 431 /FontFile3 1483 0 R /CIDSet 1482 0 R >>
+1480 0 obj
+<< /Type /FontDescriptor /FontName /WDPLWN+LMRoman9-Regular /Flags 4 /FontBBox [ -443 -292 1454 1128 ] /Ascent 1128 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 95 /XHeight 431 /FontFile3 1482 0 R /CIDSet 1481 0 R >>
endobj
-1484 0 obj
+1483 0 obj
<< /Filter /FlateDecode /Length 488 >>
stream
x}n0~
@@ -6821,21 +6803,21 @@ x}n0~
endstream
endobj
372 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /WDPLWN+LMRoman9-Regular /DescendantFonts [ 1485 0 R ] /ToUnicode 1484 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /WDPLWN+LMRoman9-Regular /DescendantFonts [ 1484 0 R ] /ToUnicode 1483 0 R >>
endobj
-1485 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /WDPLWN+LMRoman9-Regular /FontDescriptor 1481 0 R /W 1480 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1484 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /WDPLWN+LMRoman9-Regular /FontDescriptor 1480 0 R /W 1479 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1486 0 obj
+1485 0 obj
[ 75 [ 986 ] 95 [ 887 ] 98 [ 467 ] 109 [ 657 ] 251 [ 543 ] ]
endobj
-1488 0 obj
+1487 0 obj
<< /Filter /FlateDecode /Length 20 >>
stream
xc`Ft
endstream
endobj
-1489 0 obj
+1488 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1088 >>
stream
xڅTmLSWJ/wQ*ҋhA]@Eatc&vFRt{k%JAriP HcKh4MLlfes&\9ĬY%K&=<oL82yE_R5m{8)I@JIZJäDGIL,C)dMRAdZg_=dF$;H
@@ -6846,10 +6828,10 @@ W-`glZzPV':x`vpN;Y,<pqF5 8m&]Y
y{{`,$(׍u^FfHJU}lķZ9z__njM OH(rCm?'`UYdH&r$}._W_w.Izt#_aT
endstream
endobj
-1487 0 obj
-<< /Type /FontDescriptor /FontName /TZPLIV+LMRoman9-Bold /Flags 4 /FontBBox [ -501 -299 1649 1136 ] /Ascent 1136 /CapHeight 686 /Descent -299 /ItalicAngle 0 /StemV 110 /XHeight 444 /FontFile3 1489 0 R /CIDSet 1488 0 R >>
+1486 0 obj
+<< /Type /FontDescriptor /FontName /TZPLIV+LMRoman9-Bold /Flags 4 /FontBBox [ -501 -299 1649 1136 ] /Ascent 1136 /CapHeight 686 /Descent -299 /ItalicAngle 0 /StemV 110 /XHeight 444 /FontFile3 1488 0 R /CIDSet 1487 0 R >>
endobj
-1490 0 obj
+1489 0 obj
<< /Filter /FlateDecode /Length 381 >>
stream
x}R]@}_q!sa/*b7:#>wf̂EVP<s\N'WW}
@@ -6858,22 +6840,22 @@ G,TzmNgX,wyS8hNXBw-#)ʞGF.Mȗľg߇Mt6ۣb9*(S
endstream
endobj
371 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TZPLIV+LMRoman9-Bold /DescendantFonts [ 1491 0 R ] /ToUnicode 1490 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TZPLIV+LMRoman9-Bold /DescendantFonts [ 1490 0 R ] /ToUnicode 1489 0 R >>
endobj
-1491 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TZPLIV+LMRoman9-Bold /FontDescriptor 1487 0 R /W 1486 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1490 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TZPLIV+LMRoman9-Bold /FontDescriptor 1486 0 R /W 1485 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1492 0 obj
+1491 0 obj
[ 28 [ 515 ] 33 [ 515 ] 47 [ 515 ] 55 [ 515 ] 59 [ 515 ] 66 [ 515 ] 77 [ 515 ] 81 [ 515 ] 84 [ 515 ] 88 [ 515 ] 96 [ 515 ] 105 [ 515 ] 114 [ 515 ] 118 [ 515 ] ]
endobj
-1494 0 obj
+1493 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc``p`dP`hhpP
D)
endstream
endobj
-1495 0 obj
+1494 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1845 >>
stream
xuV}TW!@5ʚiZ3K- _EAE%1LBD<u
@@ -6888,80 +6870,77 @@ oRWɧ<| ƠP"{nPq%e}Gܮ(WȗN)QuoYUO&Pn^
g48ԂE>*`zK@E%1άxh@,+&p_(N(/?=u0ݕLDB0O>`R Fon0km(V׮Җ ֐F"3DgϷ^?@%xSEV!6¶M:GӞ`x#qNf4e'_%#l|ZQuJeq?HR@8(fu\o!du8iw6s;YpoۚiPH&Ng y[j;rgRsJcOt~w@[fk9RM
endstream
endobj
-1493 0 obj
-<< /Type /FontDescriptor /FontName /CKBVSC+LMMono12-Regular /Flags 4 /FontBBox [ -444 -311 715 1019 ] /Ascent 1019 /CapHeight 611 /Descent -311 /ItalicAngle 0 /StemV 172 /XHeight 431 /FontFile3 1495 0 R /CIDSet 1494 0 R >>
+1492 0 obj
+<< /Type /FontDescriptor /FontName /CKBVSC+LMMono12-Regular /Flags 4 /FontBBox [ -444 -311 715 1019 ] /Ascent 1019 /CapHeight 611 /Descent -311 /ItalicAngle 0 /StemV 172 /XHeight 431 /FontFile3 1494 0 R /CIDSet 1493 0 R >>
endobj
-1496 0 obj
+1495 0 obj
<< /Filter /FlateDecode /Length 428 >>
stream
x}]O0+`Dpf!q%Df,[֞&%.m{&F%pk z:=A[2,5P3
endstream
endobj
370 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /CKBVSC+LMMono12-Regular /DescendantFonts [ 1497 0 R ] /ToUnicode 1496 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /CKBVSC+LMMono12-Regular /DescendantFonts [ 1496 0 R ] /ToUnicode 1495 0 R >>
endobj
-1497 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /CKBVSC+LMMono12-Regular /FontDescriptor 1493 0 R /W 1492 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1496 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /CKBVSC+LMMono12-Regular /FontDescriptor 1492 0 R /W 1491 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1498 0 obj
-[ 28 [ 490 ] 35 [ 544 ] 43 [ 435 ] 47 [ 544 ] 50 [ 435 ] 54 [ 639 299 ] 57 [ 490 ] 59 [ 490 ] 63 [ 544 ] 66 [ 272 ] 68 [ 299 ] 75 [ 816 ] 77 [ 544 490 ] 81 [ 490 ] 83 [ 666 544 ] 88 [ 272 ] 96 [ 381 ] 98 [ 386 ] 105 [ 381 ] 107 [ 490 ] 109 [ 544 ] 116 [ 517 ] 118 [ 517 ] 121 [ 490 ] 187 [ 489 ] 257 [ 435 ] ]
+1497 0 obj
+[ 28 [ 490 ] 35 [ 544 ] 43 [ 435 ] 47 [ 544 ] 50 [ 435 ] 54 [ 639 299 ] 57 [ 490 ] 59 [ 490 ] 63 [ 544 ] 66 [ 272 ] 75 [ 816 ] 77 [ 544 ] 81 [ 490 ] 83 [ 666 544 ] 88 [ 272 ] 96 [ 381 ] 98 [ 386 ] 105 [ 381 ] 107 [ 490 ] 109 [ 544 ] 116 [ 517 ] 118 [ 517 ] 121 [ 490 ] 187 [ 489 ] 257 [ 435 ] 575 [ 544 ] ]
endobj
-1500 0 obj
-<< /Filter /FlateDecode /Length 31 >>
+1499 0 obj
+<< /Filter /FlateDecode /Length 35 >>
stream
-xc``ThX
+xc``TThX
endstream
endobj
-1501 0 obj
-<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3502 >>
-stream
-xڭX \wؙ͘ZGj[-`=QrHBŸ}k
-^BW ewg{.~M@x D CySxb.[ eR*V.^pq4O)PRF([!Jw5VR!D$DKP.V-SrR' UKuJU;d ,JUDTRML>lGtR)2Tɤ1M
-VT5jg|m 6dZ?MFTId !JUbD(elcLդ!6y#eH
-Xc }ms 8/wpOdg?WVwZH׌=X20%0A1,?t*"X7K
-=ԓo\h }RчPB*l0FdPn",9:u8Duv` QJQFG]>gɒP]XU@ц%!+.pŗg.fFhKop;+؉~bvڿͅ8zWPţq \``dv~Fכ(aQ:`G~3b̅FNuXu(ļ@^Kb1Hn"E*=T[}OYZGxF%Ui;@5}f>Xi^qɜg&7h"9-p5倭(6
-'wO-5Vlel҇5gw|&)0{Q(ћ
-@d
-h[FOr-D6TPyHK|!g|' /Nhq2?A|
-Ɛ·u'{fcխmdӮ`)i2J*d™PEܽfSW|;}%\LaK1 2Vn/qJv$ D'Dc
-<tAo]3E;Z+6dh(<$}.[H|LAx>W(i}d>ew@k!{ENv+KmJSBl M\~A`nhts`K׮Ywl/-yr^8 :.3jkK) .3=>گ9nMT]c6}PҪv)ڤdag7aZ;v,rs|&vIޛ fH4V5;p˝nW5Uzz`W}Maǯ5Qzy6㒱ZJ߈A҇y7t&{!M?{^-(<uW{^(3pT]%ytvE}5xCY{wP2sgqܕHNHOr6+gD2$@6Ip9G6Kl7Ӄeze>FN㸸uq(=+b(wN
-I ؒܫܟ*#m
-* Gl9e OE5SmAp4|sL`=><;,Awb▟1(Q`n`|c?~HX!@l|p`;i_%aFd_p~yK;\szQυEvW&(j:RάoqMkpt7[z=mqW|< i8U
-Fؘnv9[N2sCocLҚrp?5,|!F/b9:!限,B{UnŤ)?#7 W ffeU
-\lv>LJ &kϮ mIE6黐W`!MEeQJM1!4`7@LW ծ<s:Q'ghA%v}%Aa
-5fsD"lvASCt-D_[8lmoIu(͠1xze{VoLl@PnfD=gJ+OG+Ƞ\. _3H3
-S<t Ƒ Y爺v@h PVag }i@+9YؙfiWSjĠ9tvF Xd^cjlCܼŹexiVv$bg%vÜDW`1o5&0,q 첀]FGkqoT*s.n2e$>m89ua(h& nbb&#L+ X1}\IóyFUDfQke
-fV
-7)r> q;G<d, 9Cl[x#R>,s #y⫳TM˃+jq"~R){`c||fJ^;v躢Yjs&P'ʳrUoŒz]qFISgXІr]%jZ׌Wj3z@$*jvpz"^_דP0\$*7z"ÔϷeS4ÌMZ JmzUiZUdGӱNam8i/r#ԋ+x#Ydꭄ/C=5/o}=cލ].=F>H`*Cx#ozċSLP-TV;{2=ixqOiqlXK0=?3\L
+1500 0 obj
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3310 >>
+stream
+xڭW Xg ͐LܵzVmm+T
+zA@B@ \HBBBu
+"Ok?=3=}s! y2?0eZ*I. \}}I/ ݟԩxit4B&IW*qؔ2A))ժe*TRj IjNJr*Y,V-j2T(FmnP*42Z&J24QI[*y@Fd:߆#"7ؾ_&(Ux&6)E@~#BJMYm)4I,; ?G#2d%
+y y Bd+Dv"1H$#@3<G 3wExq C|-X# o k/_8kӖM?pGfθO}0rD'>wa͌ⷒmj^70Ȟh>0C:$Ա3A%Rj?- Z^{wwyr:wˏQ'da]q}g,B<olfaҠs\ X"SS$GQ& A@߯.EMw}c>*L))oQA'(oamKk=A]Hʇ7 }k|f.)
+ggqR[, /Ko;+yIeO1YɃs>.8sC`C,1jGJ!N!tTs}-{VQ.h
+Wa "<+I@3^4l 77bQ9{+Qϑ׫g?E T uht
+h^Sͅdq*_kl9-6[+a"iF8K>_ ݨTM% D#Sr11;S!%GM-bfu¨ vBS1
+M*`8ztjzŞ$b=U
+(&HplK
+F>xe>S(煈sۓAW6XV\1@1(v6^M!GusD(0Yۙ.CЦ]VFZJWN[ _}=>rd/LTC!(@ ?/9O}ct1t<N>x@% "{<a1i_@1T#I[{3eDBmXA,t v$wDz; <i
+=Q{B.43mpql['?,GM{ FUmYvz kR imt3({kO\'|\LaCT)tUj[fKI\dݩJ͞/I:cV*2 Rb4X(VbaOdu):9j (-'M9i`knnleevh> N#IFאM`;xȫO*pv+*Lm~ٖRL3" ?Q)8PҦsJ<F{ВR Š0,fڊ2gYQ,6ўD<:7z/\Y4 ׉i]p {uH4D
+60G8`Za|q`Hb>c,WW_#oqF<|+`+$ilE{"[nƐ}K782B_8lot(͠|1rjܺnLl@Pn`D'?A2(;i>Cѕ^{ywOA2]ndzP[DSPtKQVJр2Xs#ң؟µtsU=c Xj`j|CܼՇš*UFr+U;AؽÜ椠' KWbJE\[qY@CōVVU]@~|TФBdI+}LaXqf븂;:&fδBnG5,<\Tl$c+|VPp,4}M" E) \8o0ffɢL;@oy/ޚِEbFhSp-FptxC㰚SHxM2Q| q"S@)Í[X_Tܷ @}s4w(T/ zdg&avˤ [WKզax%/f0:1T8z.4sj:U]=ۂV-uKMx1Gכ dbzRa1# x]qSFV^Ob3#[pykRgbڠSnؖOOo1fTm5Qj/\j#{ۏtqpFFlj>{A?:({E:Jت6B~\A5Ӄ.{$]®lCn
endstream
endobj
-1499 0 obj
-<< /Type /FontDescriptor /FontName /DKYOVH+LMRoman12-Regular /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /Ascent 1127 /CapHeight 683 /Descent -280 /ItalicAngle 0 /StemV 91 /XHeight 431 /FontFile3 1501 0 R /CIDSet 1500 0 R >>
+1498 0 obj
+<< /Type /FontDescriptor /FontName /LUWVAH+LMRoman12-Regular /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /Ascent 1127 /CapHeight 683 /Descent -280 /ItalicAngle 0 /StemV 91 /XHeight 431 /FontFile3 1500 0 R /CIDSet 1499 0 R >>
endobj
-1502 0 obj
-<< /Filter /FlateDecode /Length 502 >>
+1501 0 obj
+<< /Filter /FlateDecode /Length 498 >>
stream
-xڅOo0=8 $BEۖ
-P{ F"N$~N+-(?fx2~:=rTN5`U]I}#$hUevE2v'-Rȯs駿kyWe&ӥfXWL^YRMQg<rk)Uil3Fs!rnx"o߼2Ň[RʛH\4YhB^ItJ^2AgFf[E{;&Z`95u䅼Ol?GR:: }()#,q
-#PZ"4 (4A b"W4|4vS4hZ8u
+xڅMo0=qHh"-Rlk#'98ZH<;3ؓя}arOZ
+sZU} {hH޴БjJVVàh g!%3|>=T]ʘ;8RԦDw1( [a
+n$?6Tml%`$$-9ZAUV9-[yR|N"Y:wA9h!d|ˤ5Dh6R@"{[n<õhRڦ@ ɼ0<
+!MRG)ØG53$_shk> yiq4
+$t=HG#y)Ηb Kg>Sx%vpw@ΞOݗ
+c6z2r7b/nTfs{!$|mxTKEa*0
endstream
endobj
369 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /DKYOVH+LMRoman12-Regular /DescendantFonts [ 1503 0 R ] /ToUnicode 1502 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /LUWVAH+LMRoman12-Regular /DescendantFonts [ 1502 0 R ] /ToUnicode 1501 0 R >>
endobj
-1503 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /DKYOVH+LMRoman12-Regular /FontDescriptor 1499 0 R /W 1498 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1502 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /LUWVAH+LMRoman12-Regular /FontDescriptor 1498 0 R /W 1497 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1504 0 obj
+1503 0 obj
[ 28 [ 451 ] 43 [ 418 ] 50 [ 418 ] 66 [ 223 ] 75 [ 745 ] 77 [ 484 ] 96 [ 320 ] 105 [ 340 ] 116 [ 432 ] ]
endobj
-1506 0 obj
+1505 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc```P`Pa`hp
endstream
endobj
-1507 0 obj
+1506 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1024 >>
stream
xuS}LEnY>G[tao(EQ&r irq[]zZ"[%+56m ^(H$!%1?gw1&{&Kz@DVCU弪zOHVhAʕJnfl
@@ -6971,10 +6950,10 @@ xuS}LEnY>G[tao(EQ&r irq[]zZ"[%+56m ^(
CoV< }>q%N鉴4=Z^d
endstream
endobj
-1505 0 obj
-<< /Type /FontDescriptor /FontName /YLODNZ+LMSans17-Regular /Flags 4 /FontBBox [ -395 -305 1355 1159 ] /Ascent 1159 /CapHeight 694 /Descent -305 /ItalicAngle 0 /StemV 87 /XHeight 431 /FontFile3 1507 0 R /CIDSet 1506 0 R >>
+1504 0 obj
+<< /Type /FontDescriptor /FontName /YLODNZ+LMSans17-Regular /Flags 4 /FontBBox [ -395 -305 1355 1159 ] /Ascent 1159 /CapHeight 694 /Descent -305 /ItalicAngle 0 /StemV 87 /XHeight 431 /FontFile3 1506 0 R /CIDSet 1505 0 R >>
endobj
-1508 0 obj
+1507 0 obj
<< /Filter /FlateDecode /Length 404 >>
stream
x}]K0+6s2
@@ -6983,21 +6962,21 @@ nU(MKf`MJ^ߛv8 xzޓyK<p`|Mkj`*֖(5"GW{xъp
endstream
endobj
368 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YLODNZ+LMSans17-Regular /DescendantFonts [ 1509 0 R ] /ToUnicode 1508 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YLODNZ+LMSans17-Regular /DescendantFonts [ 1508 0 R ] /ToUnicode 1507 0 R >>
endobj
-1509 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YLODNZ+LMSans17-Regular /FontDescriptor 1505 0 R /W 1504 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1508 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YLODNZ+LMSans17-Regular /FontDescriptor 1504 0 R /W 1503 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1510 0 obj
+1509 0 obj
[ 28 [ 459 ] 46 [ 707 ] 50 [ 406 ] 66 [ 250 ] 68 [ 276 ] 71 [ 576 250 ] 77 [ 511 ] 81 [ 459 ] 91 [ 485 ] 96 [ 354 ] 98 [ 359 ] 105 [ 354 ] 108 [ 693 511 ] 116 [ 485 ] 126 [ 499 ] 277 [ 406 ] 502 [ 250 ] ]
endobj
-1512 0 obj
+1511 0 obj
<< /Filter /FlateDecode /Length 31 >>
stream
xc````R`lqXĀXp&
endstream
endobj
-1513 0 obj
+1512 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2260 >>
stream
xڭ{TWgcDwFV h TD"Ay Q$$@ (b0(⫂RhmS[k]V[{=w V;ܹ}8&c8KHIX>wj\
@@ -7015,22 +6994,22 @@ M.Y9b+8xZ3b䕋>Ec%2 ypKzCWˣB} , ñ1~0<W
?lV!C/Kt1!<vnN.<5^+_
endstream
endobj
-1511 0 obj
-<< /Type /FontDescriptor /FontName /LNWNPA+LMRoman17-Regular /Flags 4 /FontBBox [ -400 -286 1338 1125 ] /Ascent 1125 /CapHeight 683 /Descent -286 /ItalicAngle 0 /StemV 83 /XHeight 431 /FontFile3 1513 0 R /CIDSet 1512 0 R >>
+1510 0 obj
+<< /Type /FontDescriptor /FontName /LNWNPA+LMRoman17-Regular /Flags 4 /FontBBox [ -400 -286 1338 1125 ] /Ascent 1125 /CapHeight 683 /Descent -286 /ItalicAngle 0 /StemV 83 /XHeight 431 /FontFile3 1512 0 R /CIDSet 1511 0 R >>
endobj
-1514 0 obj
+1513 0 obj
<< /Filter /FlateDecode /Length 460 >>
stream
xڅn0<)=Pl@SEH)I$6+'YKFy=JF_C䑒=43hyWj
endstream
endobj
367 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /LNWNPA+LMRoman17-Regular /DescendantFonts [ 1515 0 R ] /ToUnicode 1514 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /LNWNPA+LMRoman17-Regular /DescendantFonts [ 1514 0 R ] /ToUnicode 1513 0 R >>
endobj
-1515 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /LNWNPA+LMRoman17-Regular /FontDescriptor 1511 0 R /W 1510 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1514 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /LNWNPA+LMRoman17-Regular /FontDescriptor 1510 0 R /W 1509 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1517 0 obj
+1516 0 obj
<< /Length1 1484 /Length2 8131 /Length3 0 /Filter /FlateDecode /Length 9124 >>
stream
xڍTm6NHt,) ] .²tJH#]J4" HwwS9w3sM\LtZ2`Di
@@ -7072,10 +7051,10 @@ Mt%ŕTMHtwX:n҅O| ҙi,l59k#E~L.pz/'w/
*2;nYK/G-^䙗;%{F!zd[
endstream
endobj
-1516 0 obj
-<< /Type /FontDescriptor /FontName /XEMCLW+CMBX10 /Flags 4 /FontBBox [ -56 -250 1164 750 ] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet( /a /b /c /d /one /three /two) /FontFile 1517 0 R >>
+1515 0 obj
+<< /Type /FontDescriptor /FontName /XEMCLW+CMBX10 /Flags 4 /FontBBox [ -56 -250 1164 750 ] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet( /a /b /c /d /one /three /two) /FontFile 1516 0 R >>
endobj
-1519 0 obj
+1518 0 obj
<< /Length1 2319 /Length2 9802 /Length3 0 /Filter /FlateDecode /Length 11051 >>
stream
xڍTZ6Lt# 1t*]Jw
@@ -7127,10 +7106,10 @@ l1(fP@weKg}PYۈE[n(#3%[$Bf~΍Nd\zmM0 Y],9Ca0- ub
3H vrH
endstream
endobj
-1518 0 obj
-<< /Type /FontDescriptor /FontName /CFYTDH+CMEX10 /Flags 4 /FontBBox [ -24 -2960 1454 772 ] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 47 /XHeight 431 /CharSet( /arrowbt /arrowtp /arrowvertex /braceex /bracehtipdownleft /bracehtipdownright /bracehtipupleft /bracehtipupright /braceleftbigg /braceleftbt /bracelefttp /bracerightbigg /bracerightbt /bracerighttp /bracketleftBig /bracketleftbigg /bracketleftbt /bracketleftex /bracketlefttp /bracketrightBig /bracketrightbigg /bracketrightbt /bracketrightex /bracketrighttp /integraldisplay /parenleftBigg /parenleftbigg /parenleftbt /parenleftex /parenlefttp /parenrightBigg /parenrightbigg /parenrightbt /parenrightex /parenrighttp /vextendsingle) /FontFile 1519 0 R >>
+1517 0 obj
+<< /Type /FontDescriptor /FontName /CFYTDH+CMEX10 /Flags 4 /FontBBox [ -24 -2960 1454 772 ] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 47 /XHeight 431 /CharSet( /arrowbt /arrowtp /arrowvertex /braceex /bracehtipdownleft /bracehtipdownright /bracehtipupleft /bracehtipupright /braceleftbigg /braceleftbt /bracelefttp /bracerightbigg /bracerightbt /bracerighttp /bracketleftBig /bracketleftbigg /bracketleftbt /bracketleftex /bracketlefttp /bracketrightBig /bracketrightbigg /bracketrightbt /bracketrightex /bracketrighttp /integraldisplay /parenleftBigg /parenleftbigg /parenleftbt /parenleftex /parenlefttp /parenrightBigg /parenrightbigg /parenrightbt /parenrightex /parenrighttp /vextendsingle) /FontFile 1518 0 R >>
endobj
-1521 0 obj
+1520 0 obj
<< /Length1 1396 /Length2 5867 /Length3 0 /Filter /FlateDecode /Length 6812 >>
stream
xڍTTTk&FPAf@II)!f`:% @B$$DSCR@R@i$;9޵]֞=<]@P"T( X$ TV1
@@ -7163,10 +7142,10 @@ mNվ˘jB5̞cvqc~O\Y)O
ݟ~wb@ ݤmπnsA6&wSlYD]+"@?|9mo]fjǾ{sŸܦ}}rIRBR+譜yScC>gamʁt!eU p/k UQSb3Z Wзo.uY&h) @X`0rEC:s,17v TN
endstream
endobj
-1520 0 obj
-<< /Type /FontDescriptor /FontName /VMQSYC+CMEX7 /Flags 4 /FontBBox [ -12 -2951 1627 770 ] /Ascent 49 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 80 /XHeight 431 /CharSet( /radicalbig) /FontFile 1521 0 R >>
+1519 0 obj
+<< /Type /FontDescriptor /FontName /VMQSYC+CMEX7 /Flags 4 /FontBBox [ -12 -2951 1627 770 ] /Ascent 49 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 80 /XHeight 431 /CharSet( /radicalbig) /FontFile 1520 0 R >>
endobj
-1523 0 obj
+1522 0 obj
<< /Length1 1830 /Length2 11276 /Length3 0 /Filter /FlateDecode /Length 12424 >>
stream
xڍT[-kqS'-- @ )V-VSHhq>zsɞ׷;&9,q
@@ -7209,10 +7188,10 @@ t둭Jc_WP5jbep/wUd22>3}֟Bn9MmGvX-i1@?BDVlt[~_
|UƶO3n0&hWA:fBh;2bVF:u(o7Ȕ?xs4ŹNgX%%F}J34G_1˵-{
endstream
endobj
-1522 0 obj
-<< /Type /FontDescriptor /FontName /CEORQM+CMMI10 /Flags 4 /FontBBox [ -32 -250 1048 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet( /A /B /C /D /I /L /a /b /c /comma /d /e /f /h /i /j /k /l /m /n /p /period /r /triangleright /u /x /y /z) /FontFile 1523 0 R >>
+1521 0 obj
+<< /Type /FontDescriptor /FontName /CEORQM+CMMI10 /Flags 4 /FontBBox [ -32 -250 1048 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet( /A /B /C /D /I /L /a /b /c /comma /d /e /f /h /i /j /k /l /m /n /p /period /r /triangleright /u /x /y /z) /FontFile 1522 0 R >>
endobj
-1525 0 obj
+1524 0 obj
<< /Length1 1415 /Length2 6063 /Length3 0 /Filter /FlateDecode /Length 7021 >>
stream
xڍuTk-Xh
@@ -7242,10 +7221,10 @@ OB+F|72{ .2xcZrL_7-_5Km-܁CEMXo]Y1nfɫt/
bUyLq@jƚm#<՗aVY G<^P4~0-)gV2+ \]"X,p aqה-TW'qY'D#_Ē_w"9FuKK
endstream
endobj
-1524 0 obj
-<< /Type /FontDescriptor /FontName /JZMBET+CMMI12 /Flags 4 /FontBBox [ -31 -250 1026 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 65 /XHeight 431 /CharSet( /A) /FontFile 1525 0 R >>
+1523 0 obj
+<< /Type /FontDescriptor /FontName /JZMBET+CMMI12 /Flags 4 /FontBBox [ -31 -250 1026 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 65 /XHeight 431 /CharSet( /A) /FontFile 1524 0 R >>
endobj
-1527 0 obj
+1526 0 obj
<< /Length1 1451 /Length2 6812 /Length3 0 /Filter /FlateDecode /Length 7785 >>
stream
xڍtTk.)]D`A!ASIiICFwZY羞^Fzm=N[5XspEr*
@@ -7279,10 +7258,10 @@ y[f!i;7W%mIJ ﭓ71v(oT(}6u4/^%O8Ϩu(6g
a e|L1iR]ez[
endstream
endobj
-1526 0 obj
-<< /Type /FontDescriptor /FontName /IUHNPC+CMMI5 /Flags 4 /FontBBox [ 37 -250 1349 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 90 /XHeight 431 /CharSet( /L /i /j /n) /FontFile 1527 0 R >>
+1525 0 obj
+<< /Type /FontDescriptor /FontName /IUHNPC+CMMI5 /Flags 4 /FontBBox [ 37 -250 1349 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 90 /XHeight 431 /CharSet( /L /i /j /n) /FontFile 1526 0 R >>
endobj
-1529 0 obj
+1528 0 obj
<< /Length1 1589 /Length2 8523 /Length3 0 /Filter /FlateDecode /Length 9572 >>
stream
xڍTT.LCH "! 0PC!%)-!!%%ֺwZgγ}}jb&6FiPPx`c`accGաp+ȟft&jW= Iq
@@ -7326,10 +7305,10 @@ Sziq`Rky5zX-
_G)JxУ<g|eBy"7t*<
endstream
endobj
-1528 0 obj
-<< /Type /FontDescriptor /FontName /WUDPRN+CMMI7 /Flags 4 /FontBBox [ -1 -250 1171 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet( /C /L /T /comma /e /i /j /k /n /p /q /star /x) /FontFile 1529 0 R >>
+1527 0 obj
+<< /Type /FontDescriptor /FontName /WUDPRN+CMMI7 /Flags 4 /FontBBox [ -1 -250 1171 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet( /C /L /T /comma /e /i /j /k /n /p /q /star /x) /FontFile 1528 0 R >>
endobj
-1531 0 obj
+1530 0 obj
<< /Length1 1438 /Length2 6548 /Length3 0 /Filter /FlateDecode /Length 7523 >>
stream
xڍt4kׯ"ZD0zF5`0!z[H$DDoD#Ir{޻ֽkϳ=6f]>y{-LA
@@ -7366,10 +7345,10 @@ wt/ְj@884}?em\9P?{6jx)*NaqIuoŀ31&
*INS+$3z t$x g6./)~s_2oϒlAS"F!XzP%i3UsLWsOLۈklm܏f(]zj Y2
endstream
endobj
-1530 0 obj
-<< /Type /FontDescriptor /FontName /TEYYDJ+CMMI8 /Flags 4 /FontBBox [ -24 -250 1110 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 78 /XHeight 431 /CharSet( /i /j /n) /FontFile 1531 0 R >>
+1529 0 obj
+<< /Type /FontDescriptor /FontName /TEYYDJ+CMMI8 /Flags 4 /FontBBox [ -24 -250 1110 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 78 /XHeight 431 /CharSet( /i /j /n) /FontFile 1530 0 R >>
endobj
-1533 0 obj
+1532 0 obj
<< /Length1 1744 /Length2 11235 /Length3 0 /Filter /FlateDecode /Length 12356 >>
stream
xڍP.k;wwwwwg!0 w@pBpw
@@ -7416,10 +7395,10 @@ ttoΎфtč!e웩I]8NG'
o獧{{m1` 8>`9X;;FVqvt$3CY(n3@}"ZWkgcQ͞*EkFY<lc ?v0.+Q2SbMXw`Pi.zN o| Ի)n9`VOi{40ơ
endstream
endobj
-1532 0 obj
-<< /Type /FontDescriptor /FontName /IHIWXH+CMR10 /Flags 4 /FontBBox [ -40 -250 1009 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /bracketleft /bracketright /c /eight /equal /five /four /i /n /nine /o /one /parenleft /parenright /plus /s /seven /six /three /two /zero) /FontFile 1533 0 R >>
+1531 0 obj
+<< /Type /FontDescriptor /FontName /IHIWXH+CMR10 /Flags 4 /FontBBox [ -40 -250 1009 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /bracketleft /bracketright /c /eight /equal /five /four /i /n /nine /o /one /parenleft /parenright /plus /s /seven /six /three /two /zero) /FontFile 1532 0 R >>
endobj
-1535 0 obj
+1534 0 obj
<< /Length1 1447 /Length2 6556 /Length3 0 /Filter /FlateDecode /Length 7538 >>
stream
xڍVT\%Kph%CbfI%iP@@$nQJ.7zoZ3{kؙu a '<
@@ -7454,10 +7433,10 @@ eO:[1bo_9ͣh[puK}ks 7\GU0Ǟ6Г?ﱿWy$4kw}zK
2h&ji/,
endstream
endobj
-1534 0 obj
-<< /Type /FontDescriptor /FontName /CPMJUS+CMR5 /Flags 4 /FontBBox [ -10 -250 1304 750 ] /Ascent 694 /CapHeight 680 /Descent -194 /ItalicAngle 0 /StemV 89 /XHeight 431 /CharSet( /four /one /plus /three /two) /FontFile 1535 0 R >>
+1533 0 obj
+<< /Type /FontDescriptor /FontName /CPMJUS+CMR5 /Flags 4 /FontBBox [ -10 -250 1304 750 ] /Ascent 694 /CapHeight 680 /Descent -194 /ItalicAngle 0 /StemV 89 /XHeight 431 /CharSet( /four /one /plus /three /two) /FontFile 1534 0 R >>
endobj
-1537 0 obj
+1536 0 obj
<< /Length1 1595 /Length2 7817 /Length3 0 /Filter /FlateDecode /Length 8871 >>
stream
xڍT6t
@@ -7495,10 +7474,10 @@ Y<Qj8e^z 7r-\
.+g!~ŜI #PAiМ'WXϟf'_}xbK$yv[IoRʢTYiGU$ݡsZ,U+hQ
endstream
endobj
-1536 0 obj
-<< /Type /FontDescriptor /FontName /IZMGNT+CMR7 /Flags 4 /FontBBox [ -27 -250 1122 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet( /eight /five /four /nine /one /parenleft /parenright /plus /seven /six /three /two /zero) /FontFile 1537 0 R >>
+1535 0 obj
+<< /Type /FontDescriptor /FontName /IZMGNT+CMR7 /Flags 4 /FontBBox [ -27 -250 1122 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet( /eight /five /four /nine /one /parenleft /parenright /plus /seven /six /three /two /zero) /FontFile 1536 0 R >>
endobj
-1539 0 obj
+1538 0 obj
<< /Length1 1500 /Length2 6516 /Length3 0 /Filter /FlateDecode /Length 7522 >>
stream
xڍxTڲ6"J5 &*IMj $ґ ޕ*IU@tAs=zoe${f+@PU$
@@ -7541,10 +7520,10 @@ BH'渆m|{m/{.xoH2nE -.w}y'*7.^WeNߚFsU%ϏS
;J!ujE%msCzzFeq0x~ǠAJ/]j z8{FqKeI*1HoA(N{&dY __޴T'EQz
endstream
endobj
-1538 0 obj
-<< /Type /FontDescriptor /FontName /VGMPAA+CMSY10 /Flags 4 /FontBBox [ -29 -960 1116 775 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet( /angbracketleft /angbracketright /arrowleft /minus /multiply) /FontFile 1539 0 R >>
+1537 0 obj
+<< /Type /FontDescriptor /FontName /VGMPAA+CMSY10 /Flags 4 /FontBBox [ -29 -960 1116 775 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet( /angbracketleft /angbracketright /arrowleft /minus /multiply) /FontFile 1538 0 R >>
endobj
-1541 0 obj
+1540 0 obj
<< /Length1 1414 /Length2 6167 /Length3 0 /Filter /FlateDecode /Length 7134 >>
stream
xڍvTTk6(HK7FBADjc`bP:A@:SBRZ@:T@ios5kus=uy8!Jp-BeCS
@@ -7575,10 +7554,10 @@ n<Ȧ
.7z ^XEi[S<p15*;Aջ<d*+w]`ӷ3I4e:dz펢4)AwTiw||/KKj-Tf bS(Tq#z%I`uk9K^e[ZwʣzI|U|˄&eVJ6Sgߪa^4ǵ+ wN\EVةzew`wؓ/:71ἠP@᣸Ft7^HXfM[vU:x'?ibi ZM}&Od@9fcHMFKlpUe]:AE)(xȘkmD@~ F0ANǞEiXQRm9l%i;mFo1j 1^{WG 7HO ]ȉ")UjzlL?o
endstream
endobj
-1540 0 obj
-<< /Type /FontDescriptor /FontName /UZBPXA+CMSY5 /Flags 4 /FontBBox [ 21 -944 1448 791 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 56 /XHeight 431 /CharSet( /arrowleft /minus) /FontFile 1541 0 R >>
+1539 0 obj
+<< /Type /FontDescriptor /FontName /UZBPXA+CMSY5 /Flags 4 /FontBBox [ 21 -944 1448 791 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 56 /XHeight 431 /CharSet( /arrowleft /minus) /FontFile 1540 0 R >>
endobj
-1543 0 obj
+1542 0 obj
<< /Length1 1435 /Length2 6179 /Length3 0 /Filter /FlateDecode /Length 7153 >>
stream
xڍtT[.(0 ! ҂030 ݍ%* R-Hw7"|ugYxeP%
@@ -7607,83 +7586,83 @@ d"`tUe>!%_lkhCgKOnW~yң@᪘+>1#1VGp.ArrfSb
;jjIZxٱ1INzfݪy1M3"}~]\耆n>s5RQܶ nzp~Fqkqܲ='8~*}
endstream
endobj
-1542 0 obj
-<< /Type /FontDescriptor /FontName /QYJPQA+CMSY7 /Flags 4 /FontBBox [ -15 -951 1251 782 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 49 /XHeight 431 /CharSet( /arrowleft /arrowup /minus) /FontFile 1543 0 R >>
+1541 0 obj
+<< /Type /FontDescriptor /FontName /QYJPQA+CMSY7 /Flags 4 /FontBBox [ -15 -951 1251 782 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 49 /XHeight 431 /CharSet( /arrowleft /arrowup /minus) /FontFile 1542 0 R >>
endobj
758 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /XEMCLW+CMBX10 /FontDescriptor 1516 0 R /FirstChar 49 /LastChar 100 /Widths 1340 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /XEMCLW+CMBX10 /FontDescriptor 1515 0 R /FirstChar 49 /LastChar 100 /Widths 1339 0 R >>
endobj
375 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CFYTDH+CMEX10 /FontDescriptor 1518 0 R /FirstChar 12 /LastChar 125 /Widths 1467 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CFYTDH+CMEX10 /FontDescriptor 1517 0 R /FirstChar 12 /LastChar 125 /Widths 1466 0 R >>
endobj
410 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /VMQSYC+CMEX7 /FontDescriptor 1520 0 R /FirstChar 112 /LastChar 112 /Widths 1375 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /VMQSYC+CMEX7 /FontDescriptor 1519 0 R /FirstChar 112 /LastChar 112 /Widths 1374 0 R >>
endobj
379 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CEORQM+CMMI10 /FontDescriptor 1522 0 R /FirstChar 46 /LastChar 122 /Widths 1463 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CEORQM+CMMI10 /FontDescriptor 1521 0 R /FirstChar 46 /LastChar 122 /Widths 1462 0 R >>
endobj
423 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /JZMBET+CMMI12 /FontDescriptor 1524 0 R /FirstChar 65 /LastChar 65 /Widths 1374 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /JZMBET+CMMI12 /FontDescriptor 1523 0 R /FirstChar 65 /LastChar 65 /Widths 1373 0 R >>
endobj
378 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /IUHNPC+CMMI5 /FontDescriptor 1526 0 R /FirstChar 76 /LastChar 110 /Widths 1464 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /IUHNPC+CMMI5 /FontDescriptor 1525 0 R /FirstChar 76 /LastChar 110 /Widths 1463 0 R >>
endobj
376 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /WUDPRN+CMMI7 /FontDescriptor 1528 0 R /FirstChar 59 /LastChar 120 /Widths 1466 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /WUDPRN+CMMI7 /FontDescriptor 1527 0 R /FirstChar 59 /LastChar 120 /Widths 1465 0 R >>
endobj
488 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /TEYYDJ+CMMI8 /FontDescriptor 1530 0 R /FirstChar 105 /LastChar 110 /Widths 1361 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /TEYYDJ+CMMI8 /FontDescriptor 1529 0 R /FirstChar 105 /LastChar 110 /Widths 1360 0 R >>
endobj
382 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /IHIWXH+CMR10 /FontDescriptor 1532 0 R /FirstChar 40 /LastChar 115 /Widths 1455 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /IHIWXH+CMR10 /FontDescriptor 1531 0 R /FirstChar 40 /LastChar 115 /Widths 1454 0 R >>
endobj
377 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CPMJUS+CMR5 /FontDescriptor 1534 0 R /FirstChar 43 /LastChar 52 /Widths 1465 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CPMJUS+CMR5 /FontDescriptor 1533 0 R /FirstChar 43 /LastChar 52 /Widths 1464 0 R >>
endobj
380 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /IZMGNT+CMR7 /FontDescriptor 1536 0 R /FirstChar 40 /LastChar 57 /Widths 1462 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /IZMGNT+CMR7 /FontDescriptor 1535 0 R /FirstChar 40 /LastChar 57 /Widths 1461 0 R >>
endobj
404 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /VGMPAA+CMSY10 /FontDescriptor 1538 0 R /FirstChar 0 /LastChar 105 /Widths 1376 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /VGMPAA+CMSY10 /FontDescriptor 1537 0 R /FirstChar 0 /LastChar 105 /Widths 1375 0 R >>
endobj
747 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /UZBPXA+CMSY5 /FontDescriptor 1540 0 R /FirstChar 0 /LastChar 32 /Widths 1341 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /UZBPXA+CMSY5 /FontDescriptor 1539 0 R /FirstChar 0 /LastChar 32 /Widths 1340 0 R >>
endobj
646 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /QYJPQA+CMSY7 /FontDescriptor 1542 0 R /FirstChar 0 /LastChar 34 /Widths 1348 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /QYJPQA+CMSY7 /FontDescriptor 1541 0 R /FirstChar 0 /LastChar 34 /Widths 1347 0 R >>
endobj
394 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 10 /Kids [ 361 0 R 399 0 R 407 0 R 420 0 R 435 0 R 448 0 R 453 0 R 457 0 R 461 0 R 468 0 R ] >>
+<< /Type /Pages /Parent 1543 0 R /Count 10 /Kids [ 361 0 R 399 0 R 407 0 R 420 0 R 435 0 R 448 0 R 453 0 R 457 0 R 461 0 R 468 0 R ] >>
endobj
479 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 10 /Kids [ 475 0 R 485 0 R 497 0 R 504 0 R 509 0 R 514 0 R 520 0 R 529 0 R 535 0 R 541 0 R ] >>
+<< /Type /Pages /Parent 1543 0 R /Count 10 /Kids [ 475 0 R 485 0 R 497 0 R 504 0 R 509 0 R 514 0 R 520 0 R 529 0 R 535 0 R 541 0 R ] >>
endobj
550 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 10 /Kids [ 547 0 R 554 0 R 560 0 R 567 0 R 573 0 R 581 0 R 589 0 R 599 0 R 606 0 R 611 0 R ] >>
+<< /Type /Pages /Parent 1543 0 R /Count 10 /Kids [ 547 0 R 554 0 R 560 0 R 567 0 R 573 0 R 581 0 R 589 0 R 599 0 R 606 0 R 611 0 R ] >>
endobj
619 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 10 /Kids [ 616 0 R 624 0 R 631 0 R 643 0 R 652 0 R 659 0 R 667 0 R 673 0 R 682 0 R 691 0 R ] >>
+<< /Type /Pages /Parent 1543 0 R /Count 10 /Kids [ 616 0 R 624 0 R 631 0 R 643 0 R 652 0 R 659 0 R 667 0 R 673 0 R 680 0 R 691 0 R ] >>
endobj
707 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 10 /Kids [ 699 0 R 710 0 R 724 0 R 734 0 R 739 0 R 744 0 R 755 0 R 764 0 R 773 0 R 781 0 R ] >>
+<< /Type /Pages /Parent 1543 0 R /Count 10 /Kids [ 699 0 R 710 0 R 724 0 R 734 0 R 739 0 R 744 0 R 755 0 R 764 0 R 773 0 R 781 0 R ] >>
endobj
791 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 10 /Kids [ 788 0 R 795 0 R 801 0 R 808 0 R 816 0 R 825 0 R 840 0 R 847 0 R 852 0 R 860 0 R ] >>
+<< /Type /Pages /Parent 1543 0 R /Count 10 /Kids [ 788 0 R 795 0 R 801 0 R 808 0 R 816 0 R 825 0 R 840 0 R 847 0 R 852 0 R 860 0 R ] >>
endobj
867 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 10 /Kids [ 864 0 R 869 0 R 873 0 R 877 0 R 881 0 R 886 0 R 891 0 R 895 0 R 899 0 R 1018 0 R ] >>
+<< /Type /Pages /Parent 1543 0 R /Count 10 /Kids [ 864 0 R 869 0 R 873 0 R 877 0 R 881 0 R 886 0 R 891 0 R 895 0 R 899 0 R 1017 0 R ] >>
endobj
-1130 0 obj
-<< /Type /Pages /Parent 1544 0 R /Count 5 /Kids [ 1127 0 R 1220 0 R 1263 0 R 1319 0 R 1324 0 R ] >>
+1129 0 obj
+<< /Type /Pages /Parent 1543 0 R /Count 5 /Kids [ 1126 0 R 1219 0 R 1262 0 R 1318 0 R 1323 0 R ] >>
endobj
-1544 0 obj
-<< /Type /Pages /Count 75 /Kids [ 394 0 R 479 0 R 550 0 R 619 0 R 707 0 R 791 0 R 867 0 R 1130 0 R ] >>
+1543 0 obj
+<< /Type /Pages /Count 75 /Kids [ 394 0 R 479 0 R 550 0 R 619 0 R 707 0 R 791 0 R 867 0 R 1129 0 R ] >>
endobj
-1545 0 obj
+1544 0 obj
<< /Type /Outlines /First 6 0 R /Last 358 0 R /Count 19 >>
endobj
358 0 obj
-<< /Title 359 0 R /A 356 0 R /Parent 1545 0 R /Prev 314 0 R >>
+<< /Title 359 0 R /A 356 0 R /Parent 1544 0 R /Prev 314 0 R >>
endobj
354 0 obj
<< /Title 355 0 R /A 352 0 R /Parent 314 0 R /Prev 350 0 R >>
@@ -7716,7 +7695,7 @@ endobj
<< /Title 319 0 R /A 316 0 R /Parent 314 0 R /Next 322 0 R >>
endobj
314 0 obj
-<< /Title 315 0 R /A 312 0 R /Parent 1545 0 R /Prev 294 0 R /Next 358 0 R /First 318 0 R /Last 354 0 R /Count -10 >>
+<< /Title 315 0 R /A 312 0 R /Parent 1544 0 R /Prev 294 0 R /Next 358 0 R /First 318 0 R /Last 354 0 R /Count -10 >>
endobj
310 0 obj
<< /Title 311 0 R /A 308 0 R /Parent 294 0 R /Prev 306 0 R >>
@@ -7731,10 +7710,10 @@ endobj
<< /Title 299 0 R /A 296 0 R /Parent 294 0 R /Next 302 0 R >>
endobj
294 0 obj
-<< /Title 295 0 R /A 292 0 R /Parent 1545 0 R /Prev 290 0 R /Next 314 0 R /First 298 0 R /Last 310 0 R /Count -4 >>
+<< /Title 295 0 R /A 292 0 R /Parent 1544 0 R /Prev 290 0 R /Next 314 0 R /First 298 0 R /Last 310 0 R /Count -4 >>
endobj
290 0 obj
-<< /Title 291 0 R /A 288 0 R /Parent 1545 0 R /Prev 262 0 R /Next 294 0 R >>
+<< /Title 291 0 R /A 288 0 R /Parent 1544 0 R /Prev 262 0 R /Next 294 0 R >>
endobj
286 0 obj
<< /Title 287 0 R /A 284 0 R /Parent 262 0 R /Prev 282 0 R >>
@@ -7755,7 +7734,7 @@ endobj
<< /Title 267 0 R /A 264 0 R /Parent 262 0 R /Next 278 0 R /First 270 0 R /Last 274 0 R /Count -2 >>
endobj
262 0 obj
-<< /Title 263 0 R /A 260 0 R /Parent 1545 0 R /Prev 214 0 R /Next 290 0 R /First 266 0 R /Last 286 0 R /Count -4 >>
+<< /Title 263 0 R /A 260 0 R /Parent 1544 0 R /Prev 214 0 R /Next 290 0 R /First 266 0 R /Last 286 0 R /Count -4 >>
endobj
258 0 obj
<< /Title 259 0 R /A 256 0 R /Parent 214 0 R /Prev 254 0 R >>
@@ -7791,7 +7770,7 @@ endobj
<< /Title 219 0 R /A 216 0 R /Parent 214 0 R /Next 222 0 R >>
endobj
214 0 obj
-<< /Title 215 0 R /A 212 0 R /Parent 1545 0 R /Prev 190 0 R /Next 262 0 R /First 218 0 R /Last 258 0 R /Count -11 >>
+<< /Title 215 0 R /A 212 0 R /Parent 1544 0 R /Prev 190 0 R /Next 262 0 R /First 218 0 R /Last 258 0 R /Count -11 >>
endobj
210 0 obj
<< /Title 211 0 R /A 208 0 R /Parent 190 0 R /Prev 206 0 R >>
@@ -7809,7 +7788,7 @@ endobj
<< /Title 195 0 R /A 192 0 R /Parent 190 0 R /Next 198 0 R >>
endobj
190 0 obj
-<< /Title 191 0 R /A 188 0 R /Parent 1545 0 R /Prev 170 0 R /Next 214 0 R /First 194 0 R /Last 210 0 R /Count -5 >>
+<< /Title 191 0 R /A 188 0 R /Parent 1544 0 R /Prev 170 0 R /Next 214 0 R /First 194 0 R /Last 210 0 R /Count -5 >>
endobj
186 0 obj
<< /Title 187 0 R /A 184 0 R /Parent 170 0 R /Prev 182 0 R >>
@@ -7824,10 +7803,10 @@ endobj
<< /Title 175 0 R /A 172 0 R /Parent 170 0 R /Next 178 0 R >>
endobj
170 0 obj
-<< /Title 171 0 R /A 168 0 R /Parent 1545 0 R /Prev 166 0 R /Next 190 0 R /First 174 0 R /Last 186 0 R /Count -4 >>
+<< /Title 171 0 R /A 168 0 R /Parent 1544 0 R /Prev 166 0 R /Next 190 0 R /First 174 0 R /Last 186 0 R /Count -4 >>
endobj
166 0 obj
-<< /Title 167 0 R /A 164 0 R /Parent 1545 0 R /Prev 138 0 R /Next 170 0 R >>
+<< /Title 167 0 R /A 164 0 R /Parent 1544 0 R /Prev 138 0 R /Next 170 0 R >>
endobj
162 0 obj
<< /Title 163 0 R /A 160 0 R /Parent 138 0 R /Prev 158 0 R >>
@@ -7848,10 +7827,10 @@ endobj
<< /Title 143 0 R /A 140 0 R /Parent 138 0 R /Next 146 0 R >>
endobj
138 0 obj
-<< /Title 139 0 R /A 136 0 R /Parent 1545 0 R /Prev 134 0 R /Next 166 0 R /First 142 0 R /Last 162 0 R /Count -6 >>
+<< /Title 139 0 R /A 136 0 R /Parent 1544 0 R /Prev 134 0 R /Next 166 0 R /First 142 0 R /Last 162 0 R /Count -6 >>
endobj
134 0 obj
-<< /Title 135 0 R /A 132 0 R /Parent 1545 0 R /Prev 118 0 R /Next 138 0 R >>
+<< /Title 135 0 R /A 132 0 R /Parent 1544 0 R /Prev 118 0 R /Next 138 0 R >>
endobj
130 0 obj
<< /Title 131 0 R /A 128 0 R /Parent 118 0 R /Prev 126 0 R >>
@@ -7863,10 +7842,10 @@ endobj
<< /Title 123 0 R /A 120 0 R /Parent 118 0 R /Next 126 0 R >>
endobj
118 0 obj
-<< /Title 119 0 R /A 116 0 R /Parent 1545 0 R /Prev 114 0 R /Next 134 0 R /First 122 0 R /Last 130 0 R /Count -3 >>
+<< /Title 119 0 R /A 116 0 R /Parent 1544 0 R /Prev 114 0 R /Next 134 0 R /First 122 0 R /Last 130 0 R /Count -3 >>
endobj
114 0 obj
-<< /Title 115 0 R /A 112 0 R /Parent 1545 0 R /Prev 94 0 R /Next 118 0 R >>
+<< /Title 115 0 R /A 112 0 R /Parent 1544 0 R /Prev 94 0 R /Next 118 0 R >>
endobj
110 0 obj
<< /Title 111 0 R /A 108 0 R /Parent 94 0 R /Prev 106 0 R >>
@@ -7881,7 +7860,7 @@ endobj
<< /Title 99 0 R /A 96 0 R /Parent 94 0 R /Next 102 0 R >>
endobj
94 0 obj
-<< /Title 95 0 R /A 92 0 R /Parent 1545 0 R /Prev 50 0 R /Next 114 0 R /First 98 0 R /Last 110 0 R /Count -4 >>
+<< /Title 95 0 R /A 92 0 R /Parent 1544 0 R /Prev 50 0 R /Next 114 0 R /First 98 0 R /Last 110 0 R /Count -4 >>
endobj
90 0 obj
<< /Title 91 0 R /A 88 0 R /Parent 70 0 R /Prev 86 0 R >>
@@ -7914,7 +7893,7 @@ endobj
<< /Title 55 0 R /A 52 0 R /Parent 50 0 R /Next 66 0 R /First 58 0 R /Last 62 0 R /Count -2 >>
endobj
50 0 obj
-<< /Title 51 0 R /A 48 0 R /Parent 1545 0 R /Prev 18 0 R /Next 94 0 R /First 54 0 R /Last 70 0 R /Count -3 >>
+<< /Title 51 0 R /A 48 0 R /Parent 1544 0 R /Prev 18 0 R /Next 94 0 R /First 54 0 R /Last 70 0 R /Count -3 >>
endobj
46 0 obj
<< /Title 47 0 R /A 44 0 R /Parent 18 0 R /Prev 42 0 R >>
@@ -7938,1607 +7917,1606 @@ endobj
<< /Title 23 0 R /A 20 0 R /Parent 18 0 R /Next 26 0 R >>
endobj
18 0 obj
-<< /Title 19 0 R /A 16 0 R /Parent 1545 0 R /Prev 14 0 R /Next 50 0 R /First 22 0 R /Last 46 0 R /Count -7 >>
+<< /Title 19 0 R /A 16 0 R /Parent 1544 0 R /Prev 14 0 R /Next 50 0 R /First 22 0 R /Last 46 0 R /Count -7 >>
endobj
14 0 obj
-<< /Title 15 0 R /A 12 0 R /Parent 1545 0 R /Prev 10 0 R /Next 18 0 R >>
+<< /Title 15 0 R /A 12 0 R /Parent 1544 0 R /Prev 10 0 R /Next 18 0 R >>
endobj
10 0 obj
-<< /Title 11 0 R /A 8 0 R /Parent 1545 0 R /Prev 6 0 R /Next 14 0 R >>
+<< /Title 11 0 R /A 8 0 R /Parent 1544 0 R /Prev 6 0 R /Next 14 0 R >>
endobj
6 0 obj
-<< /Title 7 0 R /A 4 0 R /Parent 1545 0 R /Next 10 0 R >>
+<< /Title 7 0 R /A 4 0 R /Parent 1544 0 R /Next 10 0 R >>
endobj
-1546 0 obj
+1545 0 obj
<< /Names [ (Doc-Start) 366 0 R (Item.1) 411 0 R (Item.10) 720 0 R (Item.11) 857 0 R (Item.12) 858 0 R (Item.2) 412 0 R (Item.3) 413 0 R (Item.4) 414 0 R (Item.5) 705 0 R (Item.6) 706 0 R (Item.7) 717 0 R (Item.8) 718 0 R (Item.9) 719 0 R (page.1) 365 0 R (page.10) 470 0 R (page.11) 477 0 R (page.12) 487 0 R (page.13) 499 0 R (page.14) 506 0 R (page.15) 511 0 R (page.16) 516 0 R (page.17) 522 0 R (page.18) 531 0 R (page.19) 537 0 R (page.2) 401 0 R (page.20) 543 0 R (page.21) 549 0 R (page.22) 556 0 R (page.23) 562 0 R (page.24) 569 0 R (page.25) 575 0 R (page.26) 583 0 R ] /Limits [ (Doc-Start) (page.26) ] >>
endobj
+1546 0 obj
+<< /Names [ (page.27) 591 0 R (page.28) 601 0 R (page.29) 608 0 R (page.3) 409 0 R (page.30) 613 0 R (page.31) 618 0 R (page.32) 626 0 R (page.33) 633 0 R (page.34) 645 0 R (page.35) 654 0 R (page.36) 661 0 R (page.37) 669 0 R (page.38) 675 0 R (page.39) 682 0 R (page.4) 422 0 R (page.40) 693 0 R (page.41) 701 0 R (page.42) 712 0 R (page.43) 726 0 R (page.44) 736 0 R (page.45) 741 0 R (page.46) 746 0 R (page.47) 757 0 R (page.48) 766 0 R (page.49) 775 0 R (page.5) 437 0 R (page.50) 783 0 R (page.51) 790 0 R (page.52) 797 0 R (page.53) 803 0 R (page.54) 810 0 R (page.55) 818 0 R ] /Limits [ (page.27) (page.55) ] >>
+endobj
1547 0 obj
-<< /Names [ (page.27) 591 0 R (page.28) 601 0 R (page.29) 608 0 R (page.3) 409 0 R (page.30) 613 0 R (page.31) 618 0 R (page.32) 626 0 R (page.33) 633 0 R (page.34) 645 0 R (page.35) 654 0 R (page.36) 661 0 R (page.37) 669 0 R (page.38) 675 0 R (page.39) 684 0 R (page.4) 422 0 R (page.40) 693 0 R (page.41) 701 0 R (page.42) 712 0 R (page.43) 726 0 R (page.44) 736 0 R (page.45) 741 0 R (page.46) 746 0 R (page.47) 757 0 R (page.48) 766 0 R (page.49) 775 0 R (page.5) 437 0 R (page.50) 783 0 R (page.51) 790 0 R (page.52) 797 0 R (page.53) 803 0 R (page.54) 810 0 R (page.55) 818 0 R ] /Limits [ (page.27) (page.55) ] >>
+<< /Names [ (page.56) 827 0 R (page.57) 842 0 R (page.58) 849 0 R (page.59) 854 0 R (page.6) 450 0 R (page.60) 862 0 R (page.61) 866 0 R (page.62) 871 0 R (page.63) 875 0 R (page.64) 879 0 R (page.65) 883 0 R (page.66) 888 0 R (page.67) 893 0 R (page.68) 897 0 R (page.69) 901 0 R (page.7) 455 0 R (page.70) 1019 0 R (page.71) 1128 0 R (page.72) 1221 0 R (page.73) 1264 0 R (page.74) 1320 0 R (page.75) 1325 0 R (page.8) 459 0 R (page.9) 463 0 R (section*.2) 357 0 R (section.1) 5 0 R (section.10) 137 0 R (section.11) 165 0 R (section.12) 169 0 R (section.13) 189 0 R (section.14) 213 0 R (section.15) 261 0 R ] /Limits [ (page.56) (section.15) ] >>
endobj
1548 0 obj
-<< /Names [ (page.56) 827 0 R (page.57) 842 0 R (page.58) 849 0 R (page.59) 854 0 R (page.6) 450 0 R (page.60) 862 0 R (page.61) 866 0 R (page.62) 871 0 R (page.63) 875 0 R (page.64) 879 0 R (page.65) 883 0 R (page.66) 888 0 R (page.67) 893 0 R (page.68) 897 0 R (page.69) 901 0 R (page.7) 455 0 R (page.70) 1020 0 R (page.71) 1129 0 R (page.72) 1222 0 R (page.73) 1265 0 R (page.74) 1321 0 R (page.75) 1326 0 R (page.8) 459 0 R (page.9) 463 0 R (section*.2) 357 0 R (section.1) 5 0 R (section.10) 137 0 R (section.11) 165 0 R (section.12) 169 0 R (section.13) 189 0 R (section.14) 213 0 R (section.15) 261 0 R ] /Limits [ (page.56) (section.15) ] >>
+<< /Names [ (section.16) 289 0 R (section.17) 293 0 R (section.18) 313 0 R (section.2) 9 0 R (section.3) 13 0 R (section.4) 17 0 R (section.5) 49 0 R (section.6) 93 0 R (section.7) 113 0 R (section.8) 117 0 R (section.9) 133 0 R (subsection.10.1) 141 0 R (subsection.10.2) 145 0 R (subsection.10.3) 149 0 R (subsection.10.4) 153 0 R (subsection.10.5) 157 0 R (subsection.10.6) 161 0 R (subsection.12.1) 173 0 R (subsection.12.2) 177 0 R (subsection.12.3) 181 0 R (subsection.12.4) 185 0 R (subsection.13.1) 193 0 R (subsection.13.2) 197 0 R (subsection.13.3) 201 0 R (subsection.13.4) 205 0 R (subsection.13.5) 209 0 R (subsection.14.1) 217 0 R (subsection.14.10) 253 0 R (subsection.14.11) 257 0 R (subsection.14.2) 221 0 R (subsection.14.3) 225 0 R (subsection.14.4) 229 0 R ] /Limits [ (section.16) (subsection.14.4) ] >>
endobj
1549 0 obj
-<< /Names [ (section.16) 289 0 R (section.17) 293 0 R (section.18) 313 0 R (section.2) 9 0 R (section.3) 13 0 R (section.4) 17 0 R (section.5) 49 0 R (section.6) 93 0 R (section.7) 113 0 R (section.8) 117 0 R (section.9) 133 0 R (subsection.10.1) 141 0 R (subsection.10.2) 145 0 R (subsection.10.3) 149 0 R (subsection.10.4) 153 0 R (subsection.10.5) 157 0 R (subsection.10.6) 161 0 R (subsection.12.1) 173 0 R (subsection.12.2) 177 0 R (subsection.12.3) 181 0 R (subsection.12.4) 185 0 R (subsection.13.1) 193 0 R (subsection.13.2) 197 0 R (subsection.13.3) 201 0 R (subsection.13.4) 205 0 R (subsection.13.5) 209 0 R (subsection.14.1) 217 0 R (subsection.14.10) 253 0 R (subsection.14.11) 257 0 R (subsection.14.2) 221 0 R (subsection.14.3) 225 0 R (subsection.14.4) 229 0 R ] /Limits [ (section.16) (subsection.14.4) ] >>
+<< /Names [ (subsection.14.5) 233 0 R (subsection.14.6) 237 0 R (subsection.14.7) 241 0 R (subsection.14.8) 245 0 R (subsection.14.9) 249 0 R (subsection.15.1) 265 0 R (subsection.15.2) 277 0 R (subsection.15.3) 281 0 R (subsection.15.4) 285 0 R (subsection.17.1) 297 0 R (subsection.17.2) 301 0 R (subsection.17.3) 305 0 R (subsection.17.4) 309 0 R (subsection.18.1) 317 0 R (subsection.18.10) 353 0 R (subsection.18.2) 321 0 R (subsection.18.3) 325 0 R (subsection.18.4) 329 0 R (subsection.18.5) 333 0 R (subsection.18.6) 337 0 R (subsection.18.7) 341 0 R (subsection.18.8) 345 0 R (subsection.18.9) 349 0 R (subsection.4.1) 21 0 R (subsection.4.2) 25 0 R (subsection.4.3) 29 0 R (subsection.4.4) 33 0 R (subsection.4.5) 37 0 R (subsection.4.6) 41 0 R (subsection.4.7) 45 0 R (subsection.5.1) 53 0 R (subsection.5.2) 65 0 R ] /Limits [ (subsection.14.5) (subsection.5.2) ] >>
endobj
1550 0 obj
-<< /Names [ (subsection.14.5) 233 0 R (subsection.14.6) 237 0 R (subsection.14.7) 241 0 R (subsection.14.8) 245 0 R (subsection.14.9) 249 0 R (subsection.15.1) 265 0 R (subsection.15.2) 277 0 R (subsection.15.3) 281 0 R (subsection.15.4) 285 0 R (subsection.17.1) 297 0 R (subsection.17.2) 301 0 R (subsection.17.3) 305 0 R (subsection.17.4) 309 0 R (subsection.18.1) 317 0 R (subsection.18.10) 353 0 R (subsection.18.2) 321 0 R (subsection.18.3) 325 0 R (subsection.18.4) 329 0 R (subsection.18.5) 333 0 R (subsection.18.6) 337 0 R (subsection.18.7) 341 0 R (subsection.18.8) 345 0 R (subsection.18.9) 349 0 R (subsection.4.1) 21 0 R (subsection.4.2) 25 0 R (subsection.4.3) 29 0 R (subsection.4.4) 33 0 R (subsection.4.5) 37 0 R (subsection.4.6) 41 0 R (subsection.4.7) 45 0 R (subsection.5.1) 53 0 R (subsection.5.2) 65 0 R ] /Limits [ (subsection.14.5) (subsection.5.2) ] >>
+<< /Names [ (subsection.5.3) 69 0 R (subsection.6.1) 97 0 R (subsection.6.2) 101 0 R (subsection.6.3) 105 0 R (subsection.6.4) 109 0 R (subsection.8.1) 121 0 R (subsection.8.2) 125 0 R (subsection.8.3) 129 0 R (subsubsection.15.1.1) 269 0 R (subsubsection.15.1.2) 273 0 R (subsubsection.5.1.1) 57 0 R (subsubsection.5.1.2) 61 0 R (subsubsection.5.3.1) 73 0 R (subsubsection.5.3.2) 77 0 R (subsubsection.5.3.3) 81 0 R (subsubsection.5.3.4) 85 0 R (subsubsection.5.3.5) 89 0 R (table.caption.1) 695 0 R (tabularnote.1) 702 0 R (tabularnote.2) 704 0 R (tabularnote.3) 713 0 R (tabularnote.4) 714 0 R (tabularnote.5) 715 0 R (tabularnote.6) 716 0 R (tabularnote.7) 855 0 R (tabularnote.8) 856 0 R ] /Limits [ (subsection.5.3) (tabularnote.8) ] >>
endobj
1551 0 obj
-<< /Names [ (subsection.5.3) 69 0 R (subsection.6.1) 97 0 R (subsection.6.2) 101 0 R (subsection.6.3) 105 0 R (subsection.6.4) 109 0 R (subsection.8.1) 121 0 R (subsection.8.2) 125 0 R (subsection.8.3) 129 0 R (subsubsection.15.1.1) 269 0 R (subsubsection.15.1.2) 273 0 R (subsubsection.5.1.1) 57 0 R (subsubsection.5.1.2) 61 0 R (subsubsection.5.3.1) 73 0 R (subsubsection.5.3.2) 77 0 R (subsubsection.5.3.3) 81 0 R (subsubsection.5.3.4) 85 0 R (subsubsection.5.3.5) 89 0 R (table.caption.1) 695 0 R (tabularnote.1) 702 0 R (tabularnote.2) 704 0 R (tabularnote.3) 713 0 R (tabularnote.4) 714 0 R (tabularnote.5) 715 0 R (tabularnote.6) 716 0 R (tabularnote.7) 855 0 R (tabularnote.8) 856 0 R ] /Limits [ (subsection.5.3) (tabularnote.8) ] >>
+<< /Kids [ 1545 0 R 1546 0 R 1547 0 R 1548 0 R 1549 0 R 1550 0 R ] /Limits [ (Doc-Start) (tabularnote.8) ] >>
endobj
1552 0 obj
-<< /Kids [ 1546 0 R 1547 0 R 1548 0 R 1549 0 R 1550 0 R 1551 0 R ] /Limits [ (Doc-Start) (tabularnote.8) ] >>
+<< /Dests 1551 0 R >>
endobj
1553 0 obj
-<< /Dests 1552 0 R >>
+<< /Type /Catalog /Pages 1543 0 R /Outlines 1544 0 R /Names 1552 0 R /PageMode/UseOutlines /OpenAction 360 0 R >>
endobj
1554 0 obj
-<< /Type /Catalog /Pages 1544 0 R /Outlines 1545 0 R /Names 1553 0 R /PageMode/UseOutlines /OpenAction 360 0 R >>
-endobj
-1555 0 obj
-<< /Author(\376\377\000F\000.\000\040\000P\000a\000n\000t\000i\000g\000n\000y)/Title(\376\377\000L\040\031\000e\000x\000t\000e\000n\000s\000i\000o\000n\000\040\000n\000i\000c\000e\000m\000a\000t\000r\000i\000x)/Subject(\376\377\000U\000n\000e\000\040\000e\000x\000t\000e\000n\000s\000i\000o\000n\000\040\000L\000a\000T\000e\000X)/Creator(LaTeX with hyperref)/Keywords() /Producer (LuaTeX-1.18.1) /CreationDate (D:20240629213409+02'00') /ModDate (D:20240629213409+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.1 (MiKTeX 24.4)) >>
+<< /Author(\376\377\000F\000.\000\040\000P\000a\000n\000t\000i\000g\000n\000y)/Title(\376\377\000L\040\031\000e\000x\000t\000e\000n\000s\000i\000o\000n\000\040\000n\000i\000c\000e\000m\000a\000t\000r\000i\000x)/Subject(\376\377\000U\000n\000e\000\040\000e\000x\000t\000e\000n\000s\000i\000o\000n\000\040\000L\000a\000T\000e\000X)/Creator(LaTeX with hyperref)/Keywords() /Producer (LuaTeX-1.18.1) /CreationDate (D:20240822114151+02'00') /ModDate (D:20240822114151+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.1 (MiKTeX 24.4)) >>
endobj
xref
-0 1556
+0 1555
0000000000 65535 f
-0000588706 00000 n
-0000588862 00000 n
-0000588934 00000 n
+0000588871 00000 n
+0000589027 00000 n
+0000589099 00000 n
0000000020 00000 n
-0000037853 00000 n
-0000880560 00000 n
+0000037899 00000 n
+0000880288 00000 n
0000000065 00000 n
0000000289 00000 n
-0000037913 00000 n
-0000880473 00000 n
+0000037959 00000 n
+0000880201 00000 n
0000000334 00000 n
0000000552 00000 n
-0000043661 00000 n
-0000880384 00000 n
+0000043708 00000 n
+0000880112 00000 n
0000000598 00000 n
0000000710 00000 n
-0000051017 00000 n
-0000880258 00000 n
+0000051064 00000 n
+0000879986 00000 n
0000000756 00000 n
0000000832 00000 n
-0000051078 00000 n
-0000880184 00000 n
+0000051125 00000 n
+0000879912 00000 n
0000000883 00000 n
0000000975 00000 n
-0000064894 00000 n
-0000880097 00000 n
+0000064887 00000 n
+0000879825 00000 n
0000001026 00000 n
0000001170 00000 n
-0000064954 00000 n
-0000880010 00000 n
+0000064947 00000 n
+0000879738 00000 n
0000001221 00000 n
0000001363 00000 n
-0000065015 00000 n
-0000879923 00000 n
+0000065008 00000 n
+0000879651 00000 n
0000001414 00000 n
0000001543 00000 n
-0000071391 00000 n
-0000879836 00000 n
+0000071383 00000 n
+0000879564 00000 n
0000001594 00000 n
0000001867 00000 n
-0000076984 00000 n
-0000879749 00000 n
+0000076976 00000 n
+0000879477 00000 n
0000001918 00000 n
0000002181 00000 n
-0000082489 00000 n
-0000879675 00000 n
+0000082482 00000 n
+0000879403 00000 n
0000002232 00000 n
0000002394 00000 n
-0000088672 00000 n
-0000879549 00000 n
+0000088664 00000 n
+0000879277 00000 n
0000002440 00000 n
0000002655 00000 n
-0000088733 00000 n
-0000879438 00000 n
+0000088725 00000 n
+0000879166 00000 n
0000002706 00000 n
0000003027 00000 n
-0000088793 00000 n
-0000879364 00000 n
+0000088785 00000 n
+0000879092 00000 n
0000003083 00000 n
0000003217 00000 n
-0000088854 00000 n
-0000879290 00000 n
+0000088846 00000 n
+0000879018 00000 n
0000003273 00000 n
0000003400 00000 n
-0000093951 00000 n
-0000879203 00000 n
+0000093944 00000 n
+0000878931 00000 n
0000003451 00000 n
0000003677 00000 n
-0000094012 00000 n
-0000879092 00000 n
+0000094005 00000 n
+0000878820 00000 n
0000003728 00000 n
0000004012 00000 n
-0000100609 00000 n
-0000879018 00000 n
+0000100606 00000 n
+0000878746 00000 n
0000004068 00000 n
0000004236 00000 n
-0000100670 00000 n
-0000878931 00000 n
+0000100667 00000 n
+0000878659 00000 n
0000004292 00000 n
0000004545 00000 n
-0000108411 00000 n
-0000878844 00000 n
+0000108408 00000 n
+0000878572 00000 n
0000004601 00000 n
0000004726 00000 n
-0000114681 00000 n
-0000878757 00000 n
+0000114679 00000 n
+0000878485 00000 n
0000004782 00000 n
0000004919 00000 n
-0000114742 00000 n
-0000878683 00000 n
+0000114740 00000 n
+0000878411 00000 n
0000004975 00000 n
0000005190 00000 n
-0000131444 00000 n
-0000878555 00000 n
+0000131392 00000 n
+0000878283 00000 n
0000005236 00000 n
0000005531 00000 n
-0000131505 00000 n
-0000878480 00000 n
+0000131453 00000 n
+0000878208 00000 n
0000005582 00000 n
0000005731 00000 n
-0000131566 00000 n
-0000878389 00000 n
+0000131514 00000 n
+0000878117 00000 n
0000005783 00000 n
0000006053 00000 n
-0000160999 00000 n
-0000878297 00000 n
+0000161186 00000 n
+0000878025 00000 n
0000006105 00000 n
0000006296 00000 n
-0000166281 00000 n
-0000878219 00000 n
+0000166492 00000 n
+0000877947 00000 n
0000006348 00000 n
0000006535 00000 n
-0000166343 00000 n
-0000878126 00000 n
+0000166554 00000 n
+0000877854 00000 n
0000006582 00000 n
0000006725 00000 n
-0000172779 00000 n
-0000877993 00000 n
+0000172992 00000 n
+0000877721 00000 n
0000006772 00000 n
0000006925 00000 n
-0000172841 00000 n
-0000877914 00000 n
+0000173054 00000 n
+0000877642 00000 n
0000006977 00000 n
0000007102 00000 n
-0000178205 00000 n
-0000877821 00000 n
+0000178420 00000 n
+0000877549 00000 n
0000007154 00000 n
0000007259 00000 n
-0000182908 00000 n
-0000877742 00000 n
+0000183122 00000 n
+0000877470 00000 n
0000007311 00000 n
0000007482 00000 n
-0000190902 00000 n
-0000877648 00000 n
+0000191119 00000 n
+0000877376 00000 n
0000007529 00000 n
0000007751 00000 n
-0000203740 00000 n
-0000877515 00000 n
+0000203958 00000 n
+0000877243 00000 n
0000007799 00000 n
0000008013 00000 n
-0000214660 00000 n
-0000877436 00000 n
+0000214879 00000 n
+0000877164 00000 n
0000008066 00000 n
0000008203 00000 n
-0000223915 00000 n
-0000877343 00000 n
+0000224156 00000 n
+0000877071 00000 n
0000008256 00000 n
0000008483 00000 n
-0000246989 00000 n
-0000877250 00000 n
+0000247244 00000 n
+0000876978 00000 n
0000008536 00000 n
0000008908 00000 n
-0000253781 00000 n
-0000877157 00000 n
+0000254036 00000 n
+0000876885 00000 n
0000008961 00000 n
0000009183 00000 n
-0000253843 00000 n
-0000877064 00000 n
+0000254098 00000 n
+0000876792 00000 n
0000009236 00000 n
0000009485 00000 n
-0000262127 00000 n
-0000876985 00000 n
+0000262381 00000 n
+0000876713 00000 n
0000009538 00000 n
0000009765 00000 n
-0000268603 00000 n
-0000876891 00000 n
+0000268855 00000 n
+0000876619 00000 n
0000009813 00000 n
0000010103 00000 n
-0000286777 00000 n
-0000876758 00000 n
+0000287034 00000 n
+0000876486 00000 n
0000010151 00000 n
0000010251 00000 n
-0000286839 00000 n
-0000876679 00000 n
+0000287096 00000 n
+0000876407 00000 n
0000010304 00000 n
0000010534 00000 n
-0000286901 00000 n
-0000876586 00000 n
+0000287158 00000 n
+0000876314 00000 n
0000010587 00000 n
0000010960 00000 n
-0000304896 00000 n
-0000876493 00000 n
+0000305614 00000 n
+0000876221 00000 n
0000011013 00000 n
0000011362 00000 n
-0000310527 00000 n
-0000876414 00000 n
+0000311919 00000 n
+0000876142 00000 n
0000011415 00000 n
0000011690 00000 n
-0000310589 00000 n
-0000876281 00000 n
+0000317142 00000 n
+0000876009 00000 n
0000011738 00000 n
0000012006 00000 n
-0000310651 00000 n
-0000876202 00000 n
+0000317204 00000 n
+0000875930 00000 n
0000012059 00000 n
0000012220 00000 n
-0000315620 00000 n
-0000876109 00000 n
+0000317266 00000 n
+0000875837 00000 n
0000012273 00000 n
0000012442 00000 n
-0000315682 00000 n
-0000876016 00000 n
+0000317328 00000 n
+0000875744 00000 n
0000012495 00000 n
0000012638 00000 n
-0000325528 00000 n
-0000875923 00000 n
+0000327156 00000 n
+0000875651 00000 n
0000012691 00000 n
0000012917 00000 n
-0000334791 00000 n
-0000875844 00000 n
+0000336406 00000 n
+0000875572 00000 n
0000012970 00000 n
0000013257 00000 n
-0000334853 00000 n
-0000875710 00000 n
+0000336468 00000 n
+0000875438 00000 n
0000013305 00000 n
0000013450 00000 n
-0000334915 00000 n
-0000875631 00000 n
+0000336530 00000 n
+0000875359 00000 n
0000013503 00000 n
0000013651 00000 n
-0000343938 00000 n
-0000875538 00000 n
+0000345549 00000 n
+0000875266 00000 n
0000013704 00000 n
0000013854 00000 n
-0000344000 00000 n
-0000875445 00000 n
+0000345611 00000 n
+0000875173 00000 n
0000013907 00000 n
0000014172 00000 n
-0000344062 00000 n
-0000875352 00000 n
+0000345673 00000 n
+0000875080 00000 n
0000014225 00000 n
0000014501 00000 n
-0000349979 00000 n
-0000875259 00000 n
+0000351589 00000 n
+0000874987 00000 n
0000014554 00000 n
0000014687 00000 n
-0000350041 00000 n
-0000875166 00000 n
+0000351651 00000 n
+0000874894 00000 n
0000014740 00000 n
0000014842 00000 n
-0000356567 00000 n
-0000875073 00000 n
+0000358176 00000 n
+0000874801 00000 n
0000014895 00000 n
0000015066 00000 n
-0000356629 00000 n
-0000874980 00000 n
+0000358238 00000 n
+0000874708 00000 n
0000015119 00000 n
0000015256 00000 n
-0000362122 00000 n
-0000874887 00000 n
+0000363732 00000 n
+0000874615 00000 n
0000015309 00000 n
0000015462 00000 n
-0000362183 00000 n
-0000874794 00000 n
+0000363793 00000 n
+0000874522 00000 n
0000015516 00000 n
0000015739 00000 n
-0000362245 00000 n
-0000874715 00000 n
+0000363855 00000 n
+0000874443 00000 n
0000015793 00000 n
0000015986 00000 n
-0000368459 00000 n
-0000874582 00000 n
+0000370071 00000 n
+0000874310 00000 n
0000016034 00000 n
0000016250 00000 n
-0000368521 00000 n
-0000874464 00000 n
+0000370133 00000 n
+0000874192 00000 n
0000016303 00000 n
0000016583 00000 n
-0000373892 00000 n
-0000874385 00000 n
+0000375500 00000 n
+0000874113 00000 n
0000016641 00000 n
0000016779 00000 n
-0000373954 00000 n
-0000874306 00000 n
+0000375562 00000 n
+0000874034 00000 n
0000016837 00000 n
0000017008 00000 n
-0000374016 00000 n
-0000874213 00000 n
+0000375624 00000 n
+0000873941 00000 n
0000017061 00000 n
0000017326 00000 n
-0000388309 00000 n
-0000874120 00000 n
+0000389914 00000 n
+0000873848 00000 n
0000017379 00000 n
0000017639 00000 n
-0000395386 00000 n
-0000874041 00000 n
+0000396991 00000 n
+0000873769 00000 n
0000017692 00000 n
0000017982 00000 n
-0000399720 00000 n
-0000873947 00000 n
+0000401325 00000 n
+0000873675 00000 n
0000018030 00000 n
0000018196 00000 n
-0000413017 00000 n
-0000873814 00000 n
+0000414620 00000 n
+0000873542 00000 n
0000018244 00000 n
0000018376 00000 n
-0000413079 00000 n
-0000873735 00000 n
+0000414682 00000 n
+0000873463 00000 n
0000018429 00000 n
0000018546 00000 n
-0000413141 00000 n
-0000873642 00000 n
+0000414744 00000 n
+0000873370 00000 n
0000018599 00000 n
0000018725 00000 n
-0000418826 00000 n
-0000873549 00000 n
+0000420428 00000 n
+0000873277 00000 n
0000018778 00000 n
0000018955 00000 n
-0000418888 00000 n
-0000873470 00000 n
+0000420490 00000 n
+0000873198 00000 n
0000019008 00000 n
0000019120 00000 n
-0000427095 00000 n
-0000873336 00000 n
+0000428694 00000 n
+0000873064 00000 n
0000019168 00000 n
0000019237 00000 n
-0000427157 00000 n
-0000873257 00000 n
+0000428756 00000 n
+0000872985 00000 n
0000019290 00000 n
0000019605 00000 n
-0000431681 00000 n
-0000873164 00000 n
+0000433282 00000 n
+0000872892 00000 n
0000019658 00000 n
0000019823 00000 n
-0000431743 00000 n
-0000873071 00000 n
+0000433344 00000 n
+0000872799 00000 n
0000019876 00000 n
0000020029 00000 n
-0000435997 00000 n
-0000872978 00000 n
+0000437722 00000 n
+0000872706 00000 n
0000020082 00000 n
0000020220 00000 n
-0000456123 00000 n
-0000872885 00000 n
+0000457770 00000 n
+0000872613 00000 n
0000020273 00000 n
0000020584 00000 n
-0000466909 00000 n
-0000872792 00000 n
+0000468109 00000 n
+0000872520 00000 n
0000020637 00000 n
0000020760 00000 n
-0000466971 00000 n
-0000872699 00000 n
+0000468171 00000 n
+0000872427 00000 n
0000020813 00000 n
0000020963 00000 n
-0000485220 00000 n
-0000872606 00000 n
+0000482520 00000 n
+0000872334 00000 n
0000021016 00000 n
0000021265 00000 n
-0000503299 00000 n
-0000872513 00000 n
+0000493621 00000 n
+0000872241 00000 n
0000021318 00000 n
0000021593 00000 n
-0000506791 00000 n
-0000872434 00000 n
+0000504523 00000 n
+0000872162 00000 n
0000021647 00000 n
0000021797 00000 n
-0000528644 00000 n
-0000872354 00000 n
+0000528786 00000 n
+0000872082 00000 n
0000021845 00000 n
0000021899 00000 n
-0000032205 00000 n
-0000032371 00000 n
-0000032733 00000 n
+0000032294 00000 n
+0000032460 00000 n
+0000032781 00000 n
0000021951 00000 n
-0000032609 00000 n
-0000032671 00000 n
-0000740770 00000 n
-0000736918 00000 n
-0000734465 00000 n
-0000729224 00000 n
-0000725878 00000 n
-0000723435 00000 n
-0000718868 00000 n
-0000716161 00000 n
-0000869083 00000 n
-0000869811 00000 n
-0000870247 00000 n
-0000869666 00000 n
-0000869375 00000 n
-0000870390 00000 n
-0000705437 00000 n
-0000870102 00000 n
-0000693482 00000 n
-0000688867 00000 n
-0000678732 00000 n
-0000670687 00000 n
-0000666233 00000 n
-0000660459 00000 n
-0000657108 00000 n
-0000647829 00000 n
-0000645923 00000 n
-0000635985 00000 n
-0000632523 00000 n
-0000870964 00000 n
-0000032342 00000 n
-0000037635 00000 n
-0000037481 00000 n
-0000037973 00000 n
-0000037307 00000 n
-0000033195 00000 n
-0000037791 00000 n
-0000623829 00000 n
-0000614182 00000 n
-0000870533 00000 n
-0000037444 00000 n
-0000043977 00000 n
-0000043478 00000 n
-0000038279 00000 n
-0000043599 00000 n
-0000869229 00000 n
-0000043722 00000 n
-0000043786 00000 n
-0000043850 00000 n
-0000043914 00000 n
-0000050340 00000 n
-0000050497 00000 n
-0000050653 00000 n
-0000050804 00000 n
-0000051139 00000 n
-0000050150 00000 n
-0000044270 00000 n
-0000050955 00000 n
-0000869521 00000 n
-0000050287 00000 n
-0000056452 00000 n
-0000056612 00000 n
-0000056772 00000 n
-0000056926 00000 n
-0000057078 00000 n
-0000057231 00000 n
-0000057390 00000 n
-0000057550 00000 n
-0000057708 00000 n
-0000057929 00000 n
-0000056222 00000 n
-0000051432 00000 n
-0000057867 00000 n
-0000610692 00000 n
-0000056359 00000 n
-0000063728 00000 n
-0000063886 00000 n
-0000064044 00000 n
-0000064203 00000 n
-0000064358 00000 n
-0000064516 00000 n
-0000064675 00000 n
-0000065076 00000 n
-0000063514 00000 n
-0000058196 00000 n
-0000064832 00000 n
-0000063651 00000 n
-0000071452 00000 n
-0000071208 00000 n
-0000065291 00000 n
-0000071329 00000 n
-0000077045 00000 n
-0000076801 00000 n
-0000071693 00000 n
-0000076922 00000 n
-0000082550 00000 n
-0000082306 00000 n
-0000077260 00000 n
-0000082427 00000 n
-0000088139 00000 n
-0000088293 00000 n
-0000088456 00000 n
-0000088915 00000 n
-0000087957 00000 n
-0000082791 00000 n
-0000088610 00000 n
-0000088094 00000 n
-0000093736 00000 n
-0000099912 00000 n
-0000094073 00000 n
-0000093570 00000 n
-0000089117 00000 n
-0000093889 00000 n
-0000605306 00000 n
-0000871117 00000 n
-0000093707 00000 n
-0000100066 00000 n
-0000100230 00000 n
-0000100384 00000 n
-0000100731 00000 n
-0000099722 00000 n
-0000094314 00000 n
-0000100547 00000 n
-0000869956 00000 n
-0000099859 00000 n
-0000107399 00000 n
-0000107559 00000 n
-0000107719 00000 n
-0000107879 00000 n
-0000108037 00000 n
-0000108194 00000 n
-0000108472 00000 n
-0000107193 00000 n
-0000101011 00000 n
-0000108349 00000 n
-0000107330 00000 n
-0000114301 00000 n
-0000114459 00000 n
-0000114801 00000 n
-0000114127 00000 n
-0000108726 00000 n
-0000114619 00000 n
-0000114264 00000 n
-0000119456 00000 n
-0000119273 00000 n
-0000115042 00000 n
-0000119394 00000 n
-0000125895 00000 n
-0000126112 00000 n
-0000125729 00000 n
-0000119658 00000 n
-0000126050 00000 n
-0000125866 00000 n
-0000137791 00000 n
-0000131628 00000 n
-0000131261 00000 n
-0000126340 00000 n
-0000131382 00000 n
-0000137161 00000 n
-0000137323 00000 n
-0000137483 00000 n
-0000137638 00000 n
-0000143296 00000 n
-0000138010 00000 n
-0000136963 00000 n
-0000131895 00000 n
-0000137948 00000 n
-0000137100 00000 n
-0000143456 00000 n
-0000143671 00000 n
-0000143122 00000 n
-0000138277 00000 n
-0000143609 00000 n
-0000143259 00000 n
-0000149175 00000 n
-0000149396 00000 n
-0000149009 00000 n
-0000143899 00000 n
-0000149334 00000 n
-0000149146 00000 n
-0000155076 00000 n
-0000155292 00000 n
-0000154910 00000 n
-0000149585 00000 n
-0000155230 00000 n
-0000871270 00000 n
-0000155047 00000 n
-0000160785 00000 n
-0000161061 00000 n
-0000160619 00000 n
-0000155468 00000 n
-0000160937 00000 n
-0000160756 00000 n
-0000166065 00000 n
-0000166405 00000 n
-0000165899 00000 n
-0000161341 00000 n
-0000166219 00000 n
-0000166036 00000 n
-0000172403 00000 n
-0000172563 00000 n
-0000172903 00000 n
-0000172229 00000 n
-0000166620 00000 n
-0000172717 00000 n
-0000172366 00000 n
-0000177989 00000 n
-0000178267 00000 n
-0000177823 00000 n
-0000173157 00000 n
-0000178143 00000 n
-0000177960 00000 n
-0000182365 00000 n
-0000182529 00000 n
-0000182687 00000 n
-0000182970 00000 n
-0000182183 00000 n
-0000178547 00000 n
-0000182846 00000 n
-0000182320 00000 n
-0000190368 00000 n
-0000190683 00000 n
-0000190523 00000 n
-0000190964 00000 n
-0000190186 00000 n
-0000183172 00000 n
-0000190840 00000 n
-0000190323 00000 n
-0000202885 00000 n
-0000203048 00000 n
-0000203202 00000 n
-0000203362 00000 n
-0000203521 00000 n
-0000203802 00000 n
-0000202687 00000 n
-0000191231 00000 n
-0000203678 00000 n
-0000601200 00000 n
-0000202824 00000 n
-0000214445 00000 n
-0000214722 00000 n
-0000214279 00000 n
-0000204095 00000 n
-0000214598 00000 n
-0000214416 00000 n
-0000223977 00000 n
-0000223732 00000 n
-0000214976 00000 n
-0000223853 00000 n
-0000253087 00000 n
-0000247049 00000 n
-0000246806 00000 n
-0000224244 00000 n
-0000246927 00000 n
-0000871423 00000 n
-0000253247 00000 n
-0000253407 00000 n
-0000253567 00000 n
-0000253905 00000 n
-0000252897 00000 n
-0000247329 00000 n
-0000253719 00000 n
-0000253034 00000 n
-0000261687 00000 n
-0000261907 00000 n
-0000262189 00000 n
-0000261513 00000 n
-0000254159 00000 n
-0000262065 00000 n
-0000598665 00000 n
-0000261650 00000 n
-0000267746 00000 n
-0000267906 00000 n
-0000268067 00000 n
-0000268221 00000 n
-0000268381 00000 n
-0000286082 00000 n
-0000268665 00000 n
-0000267548 00000 n
-0000262508 00000 n
-0000268541 00000 n
-0000870821 00000 n
-0000267685 00000 n
-0000286240 00000 n
-0000286395 00000 n
-0000286555 00000 n
-0000286963 00000 n
-0000285892 00000 n
-0000268971 00000 n
-0000286715 00000 n
-0000286029 00000 n
-0000293158 00000 n
-0000293313 00000 n
-0000293530 00000 n
-0000292984 00000 n
-0000287217 00000 n
-0000293468 00000 n
-0000293121 00000 n
-0000298690 00000 n
-0000298850 00000 n
-0000299008 00000 n
-0000299230 00000 n
-0000298508 00000 n
-0000293784 00000 n
-0000299168 00000 n
-0000298645 00000 n
-0000304638 00000 n
-0000304958 00000 n
-0000304472 00000 n
-0000299432 00000 n
-0000304834 00000 n
-0000304609 00000 n
-0000310147 00000 n
-0000310301 00000 n
-0000314625 00000 n
-0000314778 00000 n
-0000310713 00000 n
-0000309973 00000 n
-0000305264 00000 n
-0000310465 00000 n
-0000310110 00000 n
-0000314932 00000 n
-0000315092 00000 n
-0000315252 00000 n
-0000315406 00000 n
-0000315744 00000 n
-0000314419 00000 n
-0000310928 00000 n
-0000315558 00000 n
-0000314556 00000 n
-0000324954 00000 n
-0000320728 00000 n
-0000320888 00000 n
-0000321365 00000 n
-0000320554 00000 n
-0000315907 00000 n
-0000321048 00000 n
-0000321110 00000 n
-0000595602 00000 n
-0000321174 00000 n
-0000321238 00000 n
-0000321302 00000 n
-0000871576 00000 n
-0000320691 00000 n
-0000325589 00000 n
-0000324771 00000 n
-0000321606 00000 n
-0000324892 00000 n
-0000325016 00000 n
-0000325080 00000 n
-0000325144 00000 n
-0000325208 00000 n
-0000325272 00000 n
-0000325336 00000 n
-0000325400 00000 n
-0000325464 00000 n
-0000329560 00000 n
-0000329720 00000 n
-0000329941 00000 n
-0000329386 00000 n
-0000325817 00000 n
-0000329879 00000 n
-0000329523 00000 n
-0000333922 00000 n
-0000334081 00000 n
-0000334241 00000 n
-0000334401 00000 n
-0000334565 00000 n
-0000334977 00000 n
-0000333724 00000 n
-0000330117 00000 n
-0000334729 00000 n
-0000333861 00000 n
-0000344124 00000 n
-0000343755 00000 n
-0000335192 00000 n
-0000343876 00000 n
-0000349766 00000 n
-0000350103 00000 n
-0000349600 00000 n
-0000344404 00000 n
-0000349917 00000 n
-0000870678 00000 n
-0000349737 00000 n
-0000355732 00000 n
-0000355885 00000 n
-0000356039 00000 n
-0000356197 00000 n
-0000356351 00000 n
-0000356691 00000 n
-0000355534 00000 n
-0000350422 00000 n
-0000356505 00000 n
-0000868937 00000 n
-0000355671 00000 n
-0000361557 00000 n
-0000361716 00000 n
-0000361870 00000 n
-0000362307 00000 n
-0000361375 00000 n
-0000356971 00000 n
-0000362060 00000 n
-0000361512 00000 n
-0000367783 00000 n
-0000367935 00000 n
-0000368095 00000 n
-0000368246 00000 n
-0000368583 00000 n
-0000367593 00000 n
-0000362548 00000 n
-0000368397 00000 n
-0000367730 00000 n
-0000373354 00000 n
-0000373512 00000 n
-0000373671 00000 n
-0000374076 00000 n
-0000373172 00000 n
-0000368889 00000 n
-0000373830 00000 n
-0000373309 00000 n
-0000381480 00000 n
-0000387938 00000 n
-0000381694 00000 n
-0000381314 00000 n
-0000374304 00000 n
-0000381632 00000 n
-0000871729 00000 n
-0000381451 00000 n
-0000388095 00000 n
-0000388371 00000 n
-0000387764 00000 n
-0000381948 00000 n
-0000388247 00000 n
-0000387901 00000 n
-0000395164 00000 n
-0000395448 00000 n
-0000394998 00000 n
-0000388638 00000 n
-0000395324 00000 n
-0000593126 00000 n
-0000395135 00000 n
-0000399498 00000 n
-0000399782 00000 n
-0000399332 00000 n
-0000395689 00000 n
-0000399658 00000 n
-0000399469 00000 n
-0000412792 00000 n
-0000418211 00000 n
-0000418369 00000 n
-0000413203 00000 n
-0000412626 00000 n
-0000400010 00000 n
-0000412955 00000 n
-0000412763 00000 n
-0000418528 00000 n
-0000426237 00000 n
-0000426401 00000 n
-0000426565 00000 n
-0000418950 00000 n
-0000418029 00000 n
-0000413444 00000 n
-0000418764 00000 n
-0000590641 00000 n
-0000418166 00000 n
-0000419204 00000 n
-0000419522 00000 n
-0000419848 00000 n
-0000420052 00000 n
-0000420530 00000 n
-0000420874 00000 n
-0000421078 00000 n
-0000426729 00000 n
-0000426881 00000 n
-0000427219 00000 n
-0000426039 00000 n
-0000421720 00000 n
-0000427033 00000 n
-0000426176 00000 n
-0000431309 00000 n
-0000431464 00000 n
-0000431805 00000 n
-0000431135 00000 n
-0000427501 00000 n
-0000431619 00000 n
-0000431272 00000 n
-0000436059 00000 n
-0000435558 00000 n
-0000432007 00000 n
-0000435679 00000 n
-0000435741 00000 n
-0000435805 00000 n
-0000435869 00000 n
-0000435933 00000 n
-0000456185 00000 n
-0000455940 00000 n
-0000436274 00000 n
-0000456061 00000 n
-0000462189 00000 n
-0000462006 00000 n
-0000456452 00000 n
-0000462127 00000 n
-0000871882 00000 n
-0000467033 00000 n
-0000466726 00000 n
-0000462456 00000 n
-0000466847 00000 n
-0000470703 00000 n
-0000470520 00000 n
-0000467248 00000 n
-0000470641 00000 n
-0000474086 00000 n
-0000473903 00000 n
-0000470944 00000 n
-0000474024 00000 n
-0000478429 00000 n
-0000478246 00000 n
-0000474314 00000 n
-0000478367 00000 n
-0000484997 00000 n
-0000485282 00000 n
-0000484831 00000 n
-0000478657 00000 n
-0000485158 00000 n
-0000484968 00000 n
-0000491074 00000 n
-0000490891 00000 n
-0000485588 00000 n
-0000491012 00000 n
-0000503361 00000 n
-0000503116 00000 n
-0000491289 00000 n
-0000503237 00000 n
-0000506853 00000 n
-0000506608 00000 n
-0000503602 00000 n
-0000506729 00000 n
-0000511476 00000 n
-0000511626 00000 n
-0000511776 00000 n
-0000511927 00000 n
-0000512079 00000 n
-0000512231 00000 n
-0000512383 00000 n
-0000512535 00000 n
-0000512687 00000 n
-0000512838 00000 n
-0000512989 00000 n
-0000513141 00000 n
-0000513293 00000 n
-0000513444 00000 n
-0000513595 00000 n
-0000513746 00000 n
-0000513895 00000 n
-0000514043 00000 n
-0000514193 00000 n
-0000514343 00000 n
-0000514493 00000 n
-0000514642 00000 n
-0000514792 00000 n
-0000514943 00000 n
-0000515095 00000 n
-0000515245 00000 n
-0000515397 00000 n
-0000515547 00000 n
-0000515699 00000 n
-0000515848 00000 n
-0000515998 00000 n
-0000516149 00000 n
-0000516301 00000 n
-0000516451 00000 n
-0000516601 00000 n
-0000516752 00000 n
-0000516904 00000 n
-0000517055 00000 n
-0000517207 00000 n
-0000517359 00000 n
-0000517510 00000 n
-0000517662 00000 n
-0000517814 00000 n
-0000517966 00000 n
-0000518118 00000 n
-0000518269 00000 n
-0000518420 00000 n
-0000518571 00000 n
-0000518721 00000 n
-0000518871 00000 n
-0000519021 00000 n
-0000519170 00000 n
-0000519320 00000 n
-0000519470 00000 n
-0000519620 00000 n
-0000519772 00000 n
-0000519924 00000 n
-0000520076 00000 n
-0000520227 00000 n
-0000520379 00000 n
-0000520531 00000 n
-0000520683 00000 n
-0000520835 00000 n
-0000520986 00000 n
-0000521138 00000 n
-0000521289 00000 n
-0000521441 00000 n
-0000521592 00000 n
-0000521744 00000 n
-0000521896 00000 n
-0000522048 00000 n
-0000522199 00000 n
-0000522351 00000 n
-0000522502 00000 n
-0000522653 00000 n
-0000522805 00000 n
-0000522957 00000 n
-0000523109 00000 n
-0000523261 00000 n
-0000523413 00000 n
-0000523564 00000 n
-0000523716 00000 n
-0000523868 00000 n
-0000524020 00000 n
-0000524170 00000 n
-0000524322 00000 n
-0000524474 00000 n
-0000524626 00000 n
-0000524778 00000 n
-0000524930 00000 n
-0000525081 00000 n
-0000525233 00000 n
-0000525385 00000 n
-0000525537 00000 n
-0000525689 00000 n
-0000525841 00000 n
-0000525993 00000 n
-0000526145 00000 n
-0000526297 00000 n
-0000526450 00000 n
-0000526603 00000 n
-0000526756 00000 n
-0000526909 00000 n
-0000527062 00000 n
-0000527215 00000 n
-0000527368 00000 n
-0000527521 00000 n
-0000527673 00000 n
-0000527826 00000 n
-0000527978 00000 n
-0000528129 00000 n
-0000528279 00000 n
-0000528430 00000 n
-0000533327 00000 n
-0000533480 00000 n
-0000528707 00000 n
-0000510394 00000 n
-0000507003 00000 n
-0000528580 00000 n
-0000510535 00000 n
-0000533633 00000 n
-0000533786 00000 n
-0000533938 00000 n
-0000534090 00000 n
-0000534241 00000 n
-0000534393 00000 n
-0000534546 00000 n
-0000534699 00000 n
-0000534851 00000 n
-0000535004 00000 n
-0000535156 00000 n
-0000535309 00000 n
-0000535462 00000 n
-0000535615 00000 n
-0000535768 00000 n
-0000535921 00000 n
-0000536074 00000 n
-0000536227 00000 n
-0000536379 00000 n
-0000536532 00000 n
-0000536684 00000 n
-0000536837 00000 n
-0000536989 00000 n
-0000537141 00000 n
-0000537294 00000 n
-0000537445 00000 n
-0000537598 00000 n
-0000537749 00000 n
-0000537901 00000 n
-0000538053 00000 n
-0000538206 00000 n
-0000538359 00000 n
-0000538512 00000 n
-0000538665 00000 n
-0000538818 00000 n
-0000538971 00000 n
-0000539122 00000 n
-0000539274 00000 n
-0000539427 00000 n
-0000539579 00000 n
-0000539732 00000 n
-0000539885 00000 n
-0000540037 00000 n
-0000540189 00000 n
-0000540342 00000 n
-0000540495 00000 n
-0000540648 00000 n
-0000540801 00000 n
-0000540954 00000 n
-0000541105 00000 n
-0000541257 00000 n
-0000541409 00000 n
-0000541561 00000 n
-0000541713 00000 n
-0000541865 00000 n
-0000542017 00000 n
-0000542169 00000 n
-0000542322 00000 n
-0000542475 00000 n
-0000542628 00000 n
-0000542780 00000 n
-0000542932 00000 n
-0000543085 00000 n
-0000543236 00000 n
-0000543388 00000 n
-0000543541 00000 n
-0000543694 00000 n
-0000543846 00000 n
-0000543998 00000 n
-0000544151 00000 n
-0000544303 00000 n
-0000544456 00000 n
-0000544609 00000 n
-0000544762 00000 n
-0000544914 00000 n
-0000545066 00000 n
-0000545218 00000 n
-0000545371 00000 n
-0000545524 00000 n
-0000545677 00000 n
-0000545830 00000 n
-0000545983 00000 n
-0000546136 00000 n
-0000546289 00000 n
-0000546442 00000 n
-0000546595 00000 n
-0000546747 00000 n
-0000546900 00000 n
-0000547052 00000 n
-0000547205 00000 n
-0000547358 00000 n
-0000547510 00000 n
-0000547663 00000 n
-0000547816 00000 n
-0000547967 00000 n
-0000548119 00000 n
-0000548272 00000 n
-0000548424 00000 n
-0000548576 00000 n
-0000548726 00000 n
-0000553433 00000 n
+0000032657 00000 n
+0000032719 00000 n
+0000740498 00000 n
+0000736646 00000 n
+0000734193 00000 n
+0000729147 00000 n
+0000725801 00000 n
+0000723358 00000 n
+0000718791 00000 n
+0000716084 00000 n
+0000868811 00000 n
+0000869539 00000 n
+0000869975 00000 n
+0000869394 00000 n
+0000869103 00000 n
+0000870118 00000 n
+0000705545 00000 n
+0000869830 00000 n
+0000693590 00000 n
+0000688975 00000 n
+0000678840 00000 n
+0000670852 00000 n
+0000666398 00000 n
+0000660624 00000 n
+0000657273 00000 n
+0000647994 00000 n
+0000646088 00000 n
+0000636150 00000 n
+0000632688 00000 n
+0000870692 00000 n
+0000032431 00000 n
+0000037681 00000 n
+0000037527 00000 n
+0000038019 00000 n
+0000037353 00000 n
+0000033243 00000 n
+0000037837 00000 n
+0000623994 00000 n
+0000614347 00000 n
+0000870261 00000 n
+0000037490 00000 n
+0000044024 00000 n
+0000043525 00000 n
+0000038325 00000 n
+0000043646 00000 n
+0000868957 00000 n
+0000043769 00000 n
+0000043833 00000 n
+0000043897 00000 n
+0000043961 00000 n
+0000050387 00000 n
+0000050544 00000 n
+0000050700 00000 n
+0000050851 00000 n
+0000051186 00000 n
+0000050197 00000 n
+0000044317 00000 n
+0000051002 00000 n
+0000869249 00000 n
+0000050334 00000 n
+0000056443 00000 n
+0000056603 00000 n
+0000056763 00000 n
+0000056918 00000 n
+0000057071 00000 n
+0000057225 00000 n
+0000057383 00000 n
+0000057542 00000 n
+0000057700 00000 n
+0000057921 00000 n
+0000056213 00000 n
+0000051479 00000 n
+0000057859 00000 n
+0000610857 00000 n
+0000056350 00000 n
+0000063721 00000 n
+0000063879 00000 n
+0000064037 00000 n
+0000064196 00000 n
+0000064351 00000 n
+0000064509 00000 n
+0000064668 00000 n
+0000065069 00000 n
+0000063507 00000 n
+0000058188 00000 n
+0000064825 00000 n
+0000063644 00000 n
+0000071444 00000 n
+0000071200 00000 n
+0000065284 00000 n
+0000071321 00000 n
+0000077037 00000 n
+0000076793 00000 n
+0000071685 00000 n
+0000076914 00000 n
+0000082543 00000 n
+0000082299 00000 n
+0000077252 00000 n
+0000082420 00000 n
+0000088131 00000 n
+0000088285 00000 n
+0000088448 00000 n
+0000088907 00000 n
+0000087949 00000 n
+0000082784 00000 n
+0000088602 00000 n
+0000088086 00000 n
+0000093729 00000 n
+0000099909 00000 n
+0000094066 00000 n
+0000093563 00000 n
+0000089109 00000 n
+0000093882 00000 n
+0000605471 00000 n
+0000870845 00000 n
+0000093700 00000 n
+0000100063 00000 n
+0000100227 00000 n
+0000100381 00000 n
+0000100728 00000 n
+0000099719 00000 n
+0000094307 00000 n
+0000100544 00000 n
+0000869684 00000 n
+0000099856 00000 n
+0000107396 00000 n
+0000107556 00000 n
+0000107716 00000 n
+0000107876 00000 n
+0000108034 00000 n
+0000108191 00000 n
+0000108469 00000 n
+0000107190 00000 n
+0000101008 00000 n
+0000108346 00000 n
+0000107327 00000 n
+0000114299 00000 n
+0000114457 00000 n
+0000114799 00000 n
+0000114125 00000 n
+0000108723 00000 n
+0000114617 00000 n
+0000114262 00000 n
+0000119454 00000 n
+0000119271 00000 n
+0000115040 00000 n
+0000119392 00000 n
+0000125878 00000 n
+0000126095 00000 n
+0000125712 00000 n
+0000119656 00000 n
+0000126033 00000 n
+0000125849 00000 n
+0000137741 00000 n
+0000131576 00000 n
+0000131209 00000 n
+0000126323 00000 n
+0000131330 00000 n
+0000137113 00000 n
+0000137276 00000 n
+0000137435 00000 n
+0000137589 00000 n
+0000143245 00000 n
+0000137959 00000 n
+0000136915 00000 n
+0000131830 00000 n
+0000137897 00000 n
+0000137052 00000 n
+0000143405 00000 n
+0000143620 00000 n
+0000143071 00000 n
+0000138226 00000 n
+0000143558 00000 n
+0000143208 00000 n
+0000149124 00000 n
+0000149345 00000 n
+0000148958 00000 n
+0000143848 00000 n
+0000149283 00000 n
+0000149095 00000 n
+0000155059 00000 n
+0000155275 00000 n
+0000154893 00000 n
+0000149534 00000 n
+0000155213 00000 n
+0000870998 00000 n
+0000155030 00000 n
+0000160971 00000 n
+0000161248 00000 n
+0000160805 00000 n
+0000155451 00000 n
+0000161124 00000 n
+0000160942 00000 n
+0000166276 00000 n
+0000166616 00000 n
+0000166110 00000 n
+0000161528 00000 n
+0000166430 00000 n
+0000166247 00000 n
+0000172616 00000 n
+0000172776 00000 n
+0000173116 00000 n
+0000172442 00000 n
+0000166831 00000 n
+0000172930 00000 n
+0000172579 00000 n
+0000178204 00000 n
+0000178482 00000 n
+0000178038 00000 n
+0000173370 00000 n
+0000178358 00000 n
+0000178175 00000 n
+0000182579 00000 n
+0000182743 00000 n
+0000182901 00000 n
+0000183184 00000 n
+0000182397 00000 n
+0000178762 00000 n
+0000183060 00000 n
+0000182534 00000 n
+0000190585 00000 n
+0000190900 00000 n
+0000190740 00000 n
+0000191181 00000 n
+0000190403 00000 n
+0000183386 00000 n
+0000191057 00000 n
+0000190540 00000 n
+0000203103 00000 n
+0000203266 00000 n
+0000203420 00000 n
+0000203580 00000 n
+0000203739 00000 n
+0000204020 00000 n
+0000202905 00000 n
+0000191448 00000 n
+0000203896 00000 n
+0000601365 00000 n
+0000203042 00000 n
+0000214664 00000 n
+0000214941 00000 n
+0000214498 00000 n
+0000204313 00000 n
+0000214817 00000 n
+0000214635 00000 n
+0000224218 00000 n
+0000223973 00000 n
+0000215195 00000 n
+0000224094 00000 n
+0000253342 00000 n
+0000247304 00000 n
+0000247061 00000 n
+0000224498 00000 n
+0000247182 00000 n
+0000871151 00000 n
+0000253502 00000 n
+0000253662 00000 n
+0000253822 00000 n
+0000254160 00000 n
+0000253152 00000 n
+0000247584 00000 n
+0000253974 00000 n
+0000253289 00000 n
+0000261941 00000 n
+0000262161 00000 n
+0000262443 00000 n
+0000261767 00000 n
+0000254414 00000 n
+0000262319 00000 n
+0000598830 00000 n
+0000261904 00000 n
+0000267998 00000 n
+0000268158 00000 n
+0000268319 00000 n
+0000268473 00000 n
+0000268633 00000 n
+0000286339 00000 n
+0000268917 00000 n
+0000267800 00000 n
+0000262762 00000 n
+0000268793 00000 n
+0000870549 00000 n
+0000267937 00000 n
+0000286497 00000 n
+0000286652 00000 n
+0000286812 00000 n
+0000287220 00000 n
+0000286149 00000 n
+0000269223 00000 n
+0000286972 00000 n
+0000286286 00000 n
+0000293552 00000 n
+0000293707 00000 n
+0000293924 00000 n
+0000293378 00000 n
+0000287474 00000 n
+0000293862 00000 n
+0000293515 00000 n
+0000299268 00000 n
+0000299427 00000 n
+0000299585 00000 n
+0000299807 00000 n
+0000299086 00000 n
+0000294178 00000 n
+0000299745 00000 n
+0000299223 00000 n
+0000305357 00000 n
+0000305676 00000 n
+0000305191 00000 n
+0000300022 00000 n
+0000305552 00000 n
+0000305328 00000 n
+0000311539 00000 n
+0000311693 00000 n
+0000311981 00000 n
+0000311365 00000 n
+0000305982 00000 n
+0000311857 00000 n
+0000311502 00000 n
+0000316149 00000 n
+0000316302 00000 n
+0000316456 00000 n
+0000316615 00000 n
+0000316774 00000 n
+0000316928 00000 n
+0000317390 00000 n
+0000315943 00000 n
+0000312196 00000 n
+0000317080 00000 n
+0000316080 00000 n
+0000326584 00000 n
+0000322373 00000 n
+0000322533 00000 n
+0000323010 00000 n
+0000322199 00000 n
+0000317553 00000 n
+0000322693 00000 n
+0000322755 00000 n
+0000595767 00000 n
+0000322819 00000 n
+0000322883 00000 n
+0000322947 00000 n
+0000871304 00000 n
+0000322336 00000 n
+0000327218 00000 n
+0000326401 00000 n
+0000323251 00000 n
+0000326522 00000 n
+0000326646 00000 n
+0000326709 00000 n
+0000326772 00000 n
+0000326836 00000 n
+0000326900 00000 n
+0000326964 00000 n
+0000327028 00000 n
+0000327092 00000 n
+0000331173 00000 n
+0000331333 00000 n
+0000331555 00000 n
+0000330999 00000 n
+0000327446 00000 n
+0000331493 00000 n
+0000331136 00000 n
+0000335537 00000 n
+0000335696 00000 n
+0000335856 00000 n
+0000336016 00000 n
+0000336180 00000 n
+0000336592 00000 n
+0000335339 00000 n
+0000331731 00000 n
+0000336344 00000 n
+0000335476 00000 n
+0000345735 00000 n
+0000345366 00000 n
+0000336807 00000 n
+0000345487 00000 n
+0000351376 00000 n
+0000351713 00000 n
+0000351210 00000 n
+0000346015 00000 n
+0000351527 00000 n
+0000870406 00000 n
+0000351347 00000 n
+0000357341 00000 n
+0000357494 00000 n
+0000357648 00000 n
+0000357806 00000 n
+0000357960 00000 n
+0000358300 00000 n
+0000357143 00000 n
+0000352032 00000 n
+0000358114 00000 n
+0000868665 00000 n
+0000357280 00000 n
+0000363167 00000 n
+0000363326 00000 n
+0000363480 00000 n
+0000363917 00000 n
+0000362985 00000 n
+0000358580 00000 n
+0000363670 00000 n
+0000363122 00000 n
+0000369395 00000 n
+0000369547 00000 n
+0000369707 00000 n
+0000369858 00000 n
+0000370195 00000 n
+0000369205 00000 n
+0000364158 00000 n
+0000370009 00000 n
+0000369342 00000 n
+0000374962 00000 n
+0000375120 00000 n
+0000375279 00000 n
+0000375684 00000 n
+0000374780 00000 n
+0000370501 00000 n
+0000375438 00000 n
+0000374917 00000 n
+0000383086 00000 n
+0000389543 00000 n
+0000383300 00000 n
+0000382920 00000 n
+0000375912 00000 n
+0000383238 00000 n
+0000871457 00000 n
+0000383057 00000 n
+0000389700 00000 n
+0000389976 00000 n
+0000389369 00000 n
+0000383554 00000 n
+0000389852 00000 n
+0000389506 00000 n
+0000396769 00000 n
+0000397053 00000 n
+0000396603 00000 n
+0000390243 00000 n
+0000396929 00000 n
+0000593291 00000 n
+0000396740 00000 n
+0000401103 00000 n
+0000401387 00000 n
+0000400937 00000 n
+0000397294 00000 n
+0000401263 00000 n
+0000401074 00000 n
+0000414395 00000 n
+0000419813 00000 n
+0000419971 00000 n
+0000414806 00000 n
+0000414229 00000 n
+0000401615 00000 n
+0000414558 00000 n
+0000414366 00000 n
+0000420130 00000 n
+0000427836 00000 n
+0000428000 00000 n
+0000428164 00000 n
+0000420552 00000 n
+0000419631 00000 n
+0000415047 00000 n
+0000420366 00000 n
+0000590806 00000 n
+0000419768 00000 n
+0000420806 00000 n
+0000421124 00000 n
+0000421450 00000 n
+0000421654 00000 n
+0000422132 00000 n
+0000422476 00000 n
+0000422680 00000 n
+0000428328 00000 n
+0000428480 00000 n
+0000428818 00000 n
+0000427638 00000 n
+0000423322 00000 n
+0000428632 00000 n
+0000427775 00000 n
+0000432910 00000 n
+0000433065 00000 n
+0000433406 00000 n
+0000432736 00000 n
+0000429100 00000 n
+0000433220 00000 n
+0000432873 00000 n
+0000437784 00000 n
+0000437284 00000 n
+0000433608 00000 n
+0000437405 00000 n
+0000437467 00000 n
+0000437531 00000 n
+0000437594 00000 n
+0000437658 00000 n
+0000457832 00000 n
+0000457587 00000 n
+0000437999 00000 n
+0000457708 00000 n
+0000464453 00000 n
+0000464270 00000 n
+0000458099 00000 n
+0000464391 00000 n
+0000871610 00000 n
+0000468233 00000 n
+0000467926 00000 n
+0000464720 00000 n
+0000468047 00000 n
+0000472032 00000 n
+0000471849 00000 n
+0000468435 00000 n
+0000471970 00000 n
+0000477678 00000 n
+0000477495 00000 n
+0000472273 00000 n
+0000477616 00000 n
+0000482582 00000 n
+0000482337 00000 n
+0000477906 00000 n
+0000482458 00000 n
+0000487391 00000 n
+0000487615 00000 n
+0000487225 00000 n
+0000482862 00000 n
+0000487553 00000 n
+0000487362 00000 n
+0000493683 00000 n
+0000493438 00000 n
+0000487869 00000 n
+0000493559 00000 n
+0000504585 00000 n
+0000504340 00000 n
+0000493885 00000 n
+0000504461 00000 n
+0000507189 00000 n
+0000507006 00000 n
+0000504813 00000 n
+0000507127 00000 n
+0000511771 00000 n
+0000511921 00000 n
+0000512071 00000 n
+0000512222 00000 n
+0000512374 00000 n
+0000512526 00000 n
+0000512678 00000 n
+0000512830 00000 n
+0000512982 00000 n
+0000513133 00000 n
+0000513284 00000 n
+0000513436 00000 n
+0000513588 00000 n
+0000513739 00000 n
+0000513890 00000 n
+0000514041 00000 n
+0000514190 00000 n
+0000514338 00000 n
+0000514488 00000 n
+0000514638 00000 n
+0000514788 00000 n
+0000514937 00000 n
+0000515087 00000 n
+0000515238 00000 n
+0000515390 00000 n
+0000515540 00000 n
+0000515692 00000 n
+0000515842 00000 n
+0000515994 00000 n
+0000516143 00000 n
+0000516293 00000 n
+0000516444 00000 n
+0000516596 00000 n
+0000516746 00000 n
+0000516896 00000 n
+0000517047 00000 n
+0000517199 00000 n
+0000517350 00000 n
+0000517502 00000 n
+0000517654 00000 n
+0000517805 00000 n
+0000517957 00000 n
+0000518109 00000 n
+0000518261 00000 n
+0000518413 00000 n
+0000518564 00000 n
+0000518715 00000 n
+0000518866 00000 n
+0000519016 00000 n
+0000519166 00000 n
+0000519316 00000 n
+0000519465 00000 n
+0000519615 00000 n
+0000519765 00000 n
+0000519915 00000 n
+0000520067 00000 n
+0000520219 00000 n
+0000520371 00000 n
+0000520522 00000 n
+0000520674 00000 n
+0000520826 00000 n
+0000520978 00000 n
+0000521130 00000 n
+0000521281 00000 n
+0000521433 00000 n
+0000521584 00000 n
+0000521736 00000 n
+0000521887 00000 n
+0000522039 00000 n
+0000522191 00000 n
+0000522343 00000 n
+0000522494 00000 n
+0000522646 00000 n
+0000522797 00000 n
+0000522948 00000 n
+0000523100 00000 n
+0000523252 00000 n
+0000523404 00000 n
+0000523556 00000 n
+0000523708 00000 n
+0000523859 00000 n
+0000524011 00000 n
+0000524163 00000 n
+0000524315 00000 n
+0000524465 00000 n
+0000524617 00000 n
+0000524769 00000 n
+0000524921 00000 n
+0000525073 00000 n
+0000525224 00000 n
+0000525376 00000 n
+0000525528 00000 n
+0000525680 00000 n
+0000525832 00000 n
+0000525984 00000 n
+0000526136 00000 n
+0000526288 00000 n
+0000526440 00000 n
+0000526592 00000 n
+0000526745 00000 n
+0000526898 00000 n
+0000527051 00000 n
+0000527204 00000 n
+0000527357 00000 n
+0000527510 00000 n
+0000527663 00000 n
+0000527815 00000 n
+0000527968 00000 n
+0000528120 00000 n
+0000528271 00000 n
+0000528421 00000 n
+0000528572 00000 n
+0000533467 00000 n
+0000533620 00000 n
+0000528849 00000 n
+0000510698 00000 n
+0000507326 00000 n
+0000528722 00000 n
+0000510839 00000 n
+0000533773 00000 n
+0000533926 00000 n
+0000534078 00000 n
+0000534230 00000 n
+0000534381 00000 n
+0000534533 00000 n
+0000534686 00000 n
+0000534839 00000 n
+0000534991 00000 n
+0000535144 00000 n
+0000535296 00000 n
+0000535449 00000 n
+0000535602 00000 n
+0000535755 00000 n
+0000535908 00000 n
+0000536061 00000 n
+0000536214 00000 n
+0000536367 00000 n
+0000536519 00000 n
+0000536672 00000 n
+0000536824 00000 n
+0000536977 00000 n
+0000537129 00000 n
+0000537281 00000 n
+0000537434 00000 n
+0000537585 00000 n
+0000537738 00000 n
+0000537889 00000 n
+0000538041 00000 n
+0000538193 00000 n
+0000538346 00000 n
+0000538499 00000 n
+0000538652 00000 n
+0000538805 00000 n
+0000538958 00000 n
+0000539111 00000 n
+0000539262 00000 n
+0000539414 00000 n
+0000539567 00000 n
+0000539719 00000 n
+0000539872 00000 n
+0000540025 00000 n
+0000540177 00000 n
+0000540329 00000 n
+0000540482 00000 n
+0000540635 00000 n
+0000540788 00000 n
+0000540941 00000 n
+0000541094 00000 n
+0000541245 00000 n
+0000541397 00000 n
+0000541549 00000 n
+0000541701 00000 n
+0000541853 00000 n
+0000542005 00000 n
+0000542157 00000 n
+0000542309 00000 n
+0000542462 00000 n
+0000542615 00000 n
+0000542768 00000 n
+0000542920 00000 n
+0000543072 00000 n
+0000543225 00000 n
+0000543376 00000 n
+0000543528 00000 n
+0000543681 00000 n
+0000543834 00000 n
+0000543986 00000 n
+0000544138 00000 n
+0000544291 00000 n
+0000544443 00000 n
+0000544596 00000 n
+0000544749 00000 n
+0000544902 00000 n
+0000545054 00000 n
+0000545206 00000 n
+0000545358 00000 n
+0000545511 00000 n
+0000545664 00000 n
+0000545817 00000 n
+0000545970 00000 n
+0000546123 00000 n
+0000546276 00000 n
+0000546429 00000 n
+0000546582 00000 n
+0000546735 00000 n
+0000546887 00000 n
+0000547040 00000 n
+0000547192 00000 n
+0000547345 00000 n
+0000547498 00000 n
+0000547650 00000 n
+0000547803 00000 n
+0000547956 00000 n
+0000548107 00000 n
+0000548259 00000 n
+0000548412 00000 n
+0000548564 00000 n
+0000548716 00000 n
+0000548866 00000 n
0000553586 00000 n
0000553739 00000 n
0000553892 00000 n
-0000548940 00000 n
-0000532245 00000 n
-0000528897 00000 n
-0000548876 00000 n
-0000872036 00000 n
-0000532387 00000 n
0000554045 00000 n
-0000554197 00000 n
-0000554349 00000 n
+0000549080 00000 n
+0000532385 00000 n
+0000529039 00000 n
+0000549016 00000 n
+0000871764 00000 n
+0000532527 00000 n
+0000554198 00000 n
+0000554350 00000 n
0000554502 00000 n
-0000554654 00000 n
-0000554805 00000 n
-0000554957 00000 n
-0000555109 00000 n
+0000554655 00000 n
+0000554807 00000 n
+0000554958 00000 n
+0000555110 00000 n
0000555262 00000 n
0000555415 00000 n
0000555568 00000 n
0000555721 00000 n
-0000555873 00000 n
-0000556025 00000 n
-0000556177 00000 n
-0000556328 00000 n
+0000555874 00000 n
+0000556026 00000 n
+0000556178 00000 n
+0000556330 00000 n
0000556481 00000 n
-0000556633 00000 n
-0000556785 00000 n
-0000556936 00000 n
-0000557087 00000 n
-0000557238 00000 n
+0000556634 00000 n
+0000556786 00000 n
+0000556938 00000 n
+0000557089 00000 n
+0000557240 00000 n
0000557391 00000 n
-0000557542 00000 n
-0000557694 00000 n
+0000557544 00000 n
+0000557695 00000 n
0000557847 00000 n
0000558000 00000 n
0000558153 00000 n
-0000558305 00000 n
-0000558457 00000 n
-0000558609 00000 n
+0000558306 00000 n
+0000558458 00000 n
+0000558610 00000 n
0000558762 00000 n
0000558915 00000 n
0000559068 00000 n
0000559221 00000 n
-0000559373 00000 n
+0000559374 00000 n
0000559526 00000 n
0000559679 00000 n
0000559832 00000 n
-0000559984 00000 n
+0000559985 00000 n
0000560137 00000 n
0000560290 00000 n
-0000560442 00000 n
-0000560594 00000 n
-0000560746 00000 n
-0000560898 00000 n
-0000561050 00000 n
-0000561202 00000 n
-0000561353 00000 n
-0000561503 00000 n
-0000561653 00000 n
-0000561805 00000 n
-0000561956 00000 n
-0000562109 00000 n
-0000562262 00000 n
-0000562415 00000 n
-0000562566 00000 n
-0000562716 00000 n
-0000562868 00000 n
-0000563021 00000 n
-0000563173 00000 n
-0000563325 00000 n
-0000563477 00000 n
-0000563629 00000 n
-0000563782 00000 n
-0000563935 00000 n
-0000564088 00000 n
-0000564240 00000 n
-0000564393 00000 n
-0000564546 00000 n
-0000564699 00000 n
-0000564852 00000 n
-0000565005 00000 n
-0000565158 00000 n
-0000565310 00000 n
-0000565463 00000 n
-0000565616 00000 n
-0000565769 00000 n
-0000565921 00000 n
-0000566073 00000 n
-0000566225 00000 n
-0000566377 00000 n
-0000566528 00000 n
-0000566681 00000 n
-0000566834 00000 n
-0000566987 00000 n
-0000567139 00000 n
-0000567356 00000 n
-0000552450 00000 n
-0000549117 00000 n
-0000567292 00000 n
-0000552592 00000 n
-0000570527 00000 n
-0000570681 00000 n
-0000570835 00000 n
-0000570989 00000 n
-0000571143 00000 n
-0000571302 00000 n
-0000571461 00000 n
-0000571620 00000 n
-0000571779 00000 n
-0000571937 00000 n
-0000572096 00000 n
-0000572254 00000 n
-0000572408 00000 n
-0000572567 00000 n
-0000572732 00000 n
-0000572895 00000 n
-0000573054 00000 n
-0000573213 00000 n
-0000573378 00000 n
-0000573543 00000 n
-0000573708 00000 n
-0000573873 00000 n
-0000574038 00000 n
-0000574192 00000 n
-0000574350 00000 n
-0000574507 00000 n
-0000574665 00000 n
-0000574824 00000 n
-0000574978 00000 n
-0000575132 00000 n
-0000575291 00000 n
-0000575450 00000 n
-0000575609 00000 n
-0000575763 00000 n
-0000575916 00000 n
-0000576075 00000 n
-0000576233 00000 n
-0000579648 00000 n
-0000576455 00000 n
-0000570030 00000 n
-0000567533 00000 n
-0000576391 00000 n
-0000570172 00000 n
-0000579807 00000 n
-0000579967 00000 n
-0000580126 00000 n
-0000580281 00000 n
-0000580436 00000 n
-0000580596 00000 n
-0000580756 00000 n
-0000580916 00000 n
-0000581076 00000 n
-0000581231 00000 n
-0000581391 00000 n
-0000581551 00000 n
-0000581711 00000 n
-0000581870 00000 n
-0000582030 00000 n
-0000582185 00000 n
-0000582345 00000 n
-0000582505 00000 n
-0000582665 00000 n
-0000582824 00000 n
-0000582983 00000 n
-0000583143 00000 n
-0000583303 00000 n
-0000583463 00000 n
-0000583623 00000 n
-0000583784 00000 n
-0000583945 00000 n
-0000584100 00000 n
-0000584260 00000 n
-0000584426 00000 n
-0000584592 00000 n
-0000584752 00000 n
-0000584912 00000 n
-0000585071 00000 n
-0000585225 00000 n
-0000585380 00000 n
-0000585540 00000 n
-0000585700 00000 n
-0000585860 00000 n
-0000586020 00000 n
-0000586175 00000 n
-0000586335 00000 n
-0000586494 00000 n
-0000586654 00000 n
-0000586814 00000 n
-0000586974 00000 n
-0000587133 00000 n
-0000587293 00000 n
-0000587453 00000 n
-0000587611 00000 n
-0000588350 00000 n
-0000587834 00000 n
-0000579025 00000 n
-0000576658 00000 n
-0000587770 00000 n
-0000579167 00000 n
-0000588568 00000 n
-0000588177 00000 n
-0000587972 00000 n
-0000588504 00000 n
-0000588319 00000 n
-0000588987 00000 n
-0000589942 00000 n
-0000589043 00000 n
-0000589143 00000 n
-0000590184 00000 n
-0000590798 00000 n
-0000591002 00000 n
-0000592414 00000 n
-0000591077 00000 n
-0000591178 00000 n
-0000592656 00000 n
-0000593284 00000 n
-0000593489 00000 n
-0000593634 00000 n
-0000593731 00000 n
-0000594901 00000 n
-0000593797 00000 n
-0000593894 00000 n
-0000595144 00000 n
-0000595759 00000 n
-0000595963 00000 n
-0000596067 00000 n
-0000597922 00000 n
-0000596225 00000 n
-0000596329 00000 n
-0000598162 00000 n
-0000598822 00000 n
-0000599026 00000 n
-0000600481 00000 n
-0000599105 00000 n
-0000599207 00000 n
-0000600729 00000 n
-0000601363 00000 n
-0000601573 00000 n
-0000601618 00000 n
-0000604504 00000 n
-0000601866 00000 n
-0000601976 00000 n
-0000604752 00000 n
-0000605469 00000 n
-0000605679 00000 n
-0000609854 00000 n
-0000606033 00000 n
-0000606147 00000 n
-0000610097 00000 n
-0000610849 00000 n
-0000611053 00000 n
-0000611078 00000 n
-0000611104 00000 n
-0000611356 00000 n
-0000613438 00000 n
-0000611509 00000 n
-0000611615 00000 n
-0000613677 00000 n
-0000614337 00000 n
-0000614539 00000 n
-0000622824 00000 n
-0000615047 00000 n
-0000615170 00000 n
-0000623064 00000 n
-0000623985 00000 n
-0000624188 00000 n
-0000631527 00000 n
-0000624628 00000 n
-0000624736 00000 n
-0000631767 00000 n
-0000632680 00000 n
-0000632884 00000 n
-0000635196 00000 n
-0000633158 00000 n
-0000633264 00000 n
-0000635436 00000 n
-0000636142 00000 n
-0000636346 00000 n
-0000644887 00000 n
-0000636911 00000 n
-0000637048 00000 n
-0000645128 00000 n
-0000646081 00000 n
-0000646286 00000 n
-0000647142 00000 n
-0000646320 00000 n
-0000646415 00000 n
-0000647384 00000 n
-0000647987 00000 n
-0000648192 00000 n
-0000656113 00000 n
-0000648660 00000 n
-0000648777 00000 n
-0000656353 00000 n
-0000657264 00000 n
-0000657467 00000 n
-0000659699 00000 n
-0000657634 00000 n
-0000657740 00000 n
-0000659946 00000 n
-0000660622 00000 n
-0000660832 00000 n
-0000665370 00000 n
-0000661195 00000 n
-0000661313 00000 n
-0000665619 00000 n
-0000666397 00000 n
-0000666608 00000 n
-0000669907 00000 n
-0000666811 00000 n
-0000666918 00000 n
-0000670149 00000 n
-0000670845 00000 n
-0000671050 00000 n
-0000677822 00000 n
-0000671474 00000 n
-0000671592 00000 n
-0000678066 00000 n
-0000678890 00000 n
-0000679095 00000 n
-0000687805 00000 n
-0000679552 00000 n
-0000679668 00000 n
-0000688046 00000 n
-0000689025 00000 n
-0000689230 00000 n
-0000692631 00000 n
-0000689590 00000 n
-0000689697 00000 n
-0000692872 00000 n
-0000693640 00000 n
-0000693845 00000 n
-0000694080 00000 n
-0000704314 00000 n
-0000694721 00000 n
-0000694864 00000 n
-0000704556 00000 n
-0000705596 00000 n
-0000705802 00000 n
-0000705909 00000 n
-0000706188 00000 n
-0000706295 00000 n
-0000706357 00000 n
-0000706552 00000 n
-0000706921 00000 n
-0000715111 00000 n
-0000707428 00000 n
-0000707554 00000 n
-0000715351 00000 n
-0000716318 00000 n
-0000716522 00000 n
-0000718126 00000 n
-0000716679 00000 n
-0000716785 00000 n
-0000718366 00000 n
-0000719025 00000 n
-0000719229 00000 n
-0000722623 00000 n
-0000719522 00000 n
-0000719636 00000 n
-0000722864 00000 n
-0000723593 00000 n
-0000723798 00000 n
-0000725175 00000 n
-0000723877 00000 n
-0000723980 00000 n
-0000725414 00000 n
-0000726033 00000 n
-0000726235 00000 n
-0000728472 00000 n
-0000726414 00000 n
-0000726520 00000 n
-0000728713 00000 n
-0000729382 00000 n
-0000729587 00000 n
-0000733638 00000 n
-0000729915 00000 n
-0000730029 00000 n
-0000733880 00000 n
-0000734624 00000 n
-0000734830 00000 n
-0000736190 00000 n
-0000734953 00000 n
-0000735059 00000 n
-0000736431 00000 n
-0000737076 00000 n
-0000737281 00000 n
-0000739985 00000 n
-0000737504 00000 n
-0000737618 00000 n
-0000740227 00000 n
-0000740929 00000 n
-0000750381 00000 n
-0000741135 00000 n
-0000761805 00000 n
-0000750632 00000 n
-0000769493 00000 n
-0000762559 00000 n
-0000782270 00000 n
-0000769723 00000 n
-0000789741 00000 n
-0000782598 00000 n
-0000797874 00000 n
-0000789967 00000 n
-0000807801 00000 n
-0000798107 00000 n
-0000815713 00000 n
-0000808068 00000 n
-0000828423 00000 n
-0000815944 00000 n
-0000836441 00000 n
-0000828781 00000 n
-0000845682 00000 n
-0000836689 00000 n
-0000853634 00000 n
-0000845990 00000 n
-0000861174 00000 n
-0000853918 00000 n
-0000868688 00000 n
-0000861413 00000 n
-0000872154 00000 n
-0000872277 00000 n
-0000880633 00000 n
-0000881269 00000 n
-0000881909 00000 n
-0000882578 00000 n
-0000883421 00000 n
-0000884318 00000 n
-0000885079 00000 n
-0000885207 00000 n
-0000885247 00000 n
-0000885379 00000 n
+0000560443 00000 n
+0000560595 00000 n
+0000560747 00000 n
+0000560899 00000 n
+0000561051 00000 n
+0000561203 00000 n
+0000561356 00000 n
+0000561508 00000 n
+0000561659 00000 n
+0000561810 00000 n
+0000561961 00000 n
+0000562114 00000 n
+0000562267 00000 n
+0000562420 00000 n
+0000562573 00000 n
+0000562724 00000 n
+0000562874 00000 n
+0000563026 00000 n
+0000563179 00000 n
+0000563331 00000 n
+0000563483 00000 n
+0000563635 00000 n
+0000563787 00000 n
+0000563940 00000 n
+0000564093 00000 n
+0000564246 00000 n
+0000564398 00000 n
+0000564551 00000 n
+0000564704 00000 n
+0000564857 00000 n
+0000565010 00000 n
+0000565163 00000 n
+0000565316 00000 n
+0000565468 00000 n
+0000565621 00000 n
+0000565774 00000 n
+0000565927 00000 n
+0000566079 00000 n
+0000566231 00000 n
+0000566383 00000 n
+0000566535 00000 n
+0000566686 00000 n
+0000566839 00000 n
+0000566992 00000 n
+0000567145 00000 n
+0000567297 00000 n
+0000567514 00000 n
+0000552603 00000 n
+0000549257 00000 n
+0000567450 00000 n
+0000552745 00000 n
+0000570688 00000 n
+0000570842 00000 n
+0000570996 00000 n
+0000571150 00000 n
+0000571304 00000 n
+0000571463 00000 n
+0000571622 00000 n
+0000571781 00000 n
+0000571940 00000 n
+0000572098 00000 n
+0000572257 00000 n
+0000572415 00000 n
+0000572569 00000 n
+0000572728 00000 n
+0000572893 00000 n
+0000573056 00000 n
+0000573215 00000 n
+0000573374 00000 n
+0000573539 00000 n
+0000573704 00000 n
+0000573869 00000 n
+0000574034 00000 n
+0000574199 00000 n
+0000574353 00000 n
+0000574511 00000 n
+0000574668 00000 n
+0000574826 00000 n
+0000574985 00000 n
+0000575139 00000 n
+0000575293 00000 n
+0000575452 00000 n
+0000575611 00000 n
+0000575770 00000 n
+0000575924 00000 n
+0000576077 00000 n
+0000576236 00000 n
+0000576394 00000 n
+0000579813 00000 n
+0000576616 00000 n
+0000570191 00000 n
+0000567691 00000 n
+0000576552 00000 n
+0000570333 00000 n
+0000579972 00000 n
+0000580132 00000 n
+0000580291 00000 n
+0000580446 00000 n
+0000580601 00000 n
+0000580761 00000 n
+0000580921 00000 n
+0000581081 00000 n
+0000581241 00000 n
+0000581396 00000 n
+0000581556 00000 n
+0000581716 00000 n
+0000581876 00000 n
+0000582035 00000 n
+0000582195 00000 n
+0000582350 00000 n
+0000582510 00000 n
+0000582670 00000 n
+0000582830 00000 n
+0000582989 00000 n
+0000583148 00000 n
+0000583308 00000 n
+0000583468 00000 n
+0000583628 00000 n
+0000583788 00000 n
+0000583949 00000 n
+0000584110 00000 n
+0000584265 00000 n
+0000584425 00000 n
+0000584591 00000 n
+0000584757 00000 n
+0000584917 00000 n
+0000585077 00000 n
+0000585236 00000 n
+0000585390 00000 n
+0000585545 00000 n
+0000585705 00000 n
+0000585865 00000 n
+0000586025 00000 n
+0000586185 00000 n
+0000586340 00000 n
+0000586500 00000 n
+0000586659 00000 n
+0000586819 00000 n
+0000586979 00000 n
+0000587139 00000 n
+0000587298 00000 n
+0000587458 00000 n
+0000587618 00000 n
+0000587776 00000 n
+0000588515 00000 n
+0000587999 00000 n
+0000579190 00000 n
+0000576819 00000 n
+0000587935 00000 n
+0000579332 00000 n
+0000588733 00000 n
+0000588342 00000 n
+0000588137 00000 n
+0000588669 00000 n
+0000588484 00000 n
+0000589152 00000 n
+0000590107 00000 n
+0000589208 00000 n
+0000589308 00000 n
+0000590349 00000 n
+0000590963 00000 n
+0000591167 00000 n
+0000592579 00000 n
+0000591242 00000 n
+0000591343 00000 n
+0000592821 00000 n
+0000593449 00000 n
+0000593654 00000 n
+0000593799 00000 n
+0000593896 00000 n
+0000595066 00000 n
+0000593962 00000 n
+0000594059 00000 n
+0000595309 00000 n
+0000595924 00000 n
+0000596128 00000 n
+0000596232 00000 n
+0000598087 00000 n
+0000596390 00000 n
+0000596494 00000 n
+0000598327 00000 n
+0000598987 00000 n
+0000599191 00000 n
+0000600646 00000 n
+0000599270 00000 n
+0000599372 00000 n
+0000600894 00000 n
+0000601528 00000 n
+0000601738 00000 n
+0000601783 00000 n
+0000604669 00000 n
+0000602031 00000 n
+0000602141 00000 n
+0000604917 00000 n
+0000605634 00000 n
+0000605844 00000 n
+0000610019 00000 n
+0000606198 00000 n
+0000606312 00000 n
+0000610262 00000 n
+0000611014 00000 n
+0000611218 00000 n
+0000611243 00000 n
+0000611269 00000 n
+0000611521 00000 n
+0000613603 00000 n
+0000611674 00000 n
+0000611780 00000 n
+0000613842 00000 n
+0000614502 00000 n
+0000614704 00000 n
+0000622989 00000 n
+0000615212 00000 n
+0000615335 00000 n
+0000623229 00000 n
+0000624150 00000 n
+0000624353 00000 n
+0000631692 00000 n
+0000624793 00000 n
+0000624901 00000 n
+0000631932 00000 n
+0000632845 00000 n
+0000633049 00000 n
+0000635361 00000 n
+0000633323 00000 n
+0000633429 00000 n
+0000635601 00000 n
+0000636307 00000 n
+0000636511 00000 n
+0000645052 00000 n
+0000637076 00000 n
+0000637213 00000 n
+0000645293 00000 n
+0000646246 00000 n
+0000646451 00000 n
+0000647307 00000 n
+0000646485 00000 n
+0000646580 00000 n
+0000647549 00000 n
+0000648152 00000 n
+0000648357 00000 n
+0000656278 00000 n
+0000648825 00000 n
+0000648942 00000 n
+0000656518 00000 n
+0000657429 00000 n
+0000657632 00000 n
+0000659864 00000 n
+0000657799 00000 n
+0000657905 00000 n
+0000660111 00000 n
+0000660787 00000 n
+0000660997 00000 n
+0000665535 00000 n
+0000661360 00000 n
+0000661478 00000 n
+0000665784 00000 n
+0000666562 00000 n
+0000666773 00000 n
+0000670072 00000 n
+0000666976 00000 n
+0000667083 00000 n
+0000670314 00000 n
+0000671010 00000 n
+0000671215 00000 n
+0000677934 00000 n
+0000671627 00000 n
+0000671744 00000 n
+0000678178 00000 n
+0000678998 00000 n
+0000679203 00000 n
+0000687913 00000 n
+0000679660 00000 n
+0000679776 00000 n
+0000688154 00000 n
+0000689133 00000 n
+0000689338 00000 n
+0000692739 00000 n
+0000689698 00000 n
+0000689805 00000 n
+0000692980 00000 n
+0000693748 00000 n
+0000693953 00000 n
+0000694188 00000 n
+0000704422 00000 n
+0000694829 00000 n
+0000694972 00000 n
+0000704664 00000 n
+0000705704 00000 n
+0000705910 00000 n
+0000706017 00000 n
+0000706296 00000 n
+0000706403 00000 n
+0000706465 00000 n
+0000706660 00000 n
+0000707029 00000 n
+0000715043 00000 n
+0000707520 00000 n
+0000707643 00000 n
+0000715283 00000 n
+0000716241 00000 n
+0000716445 00000 n
+0000718049 00000 n
+0000716602 00000 n
+0000716708 00000 n
+0000718289 00000 n
+0000718948 00000 n
+0000719152 00000 n
+0000722546 00000 n
+0000719445 00000 n
+0000719559 00000 n
+0000722787 00000 n
+0000723516 00000 n
+0000723721 00000 n
+0000725098 00000 n
+0000723800 00000 n
+0000723903 00000 n
+0000725337 00000 n
+0000725956 00000 n
+0000726158 00000 n
+0000728395 00000 n
+0000726337 00000 n
+0000726443 00000 n
+0000728636 00000 n
+0000729305 00000 n
+0000729510 00000 n
+0000733370 00000 n
+0000729835 00000 n
+0000729953 00000 n
+0000733612 00000 n
+0000734352 00000 n
+0000734558 00000 n
+0000735918 00000 n
+0000734681 00000 n
+0000734787 00000 n
+0000736159 00000 n
+0000736804 00000 n
+0000737009 00000 n
+0000739713 00000 n
+0000737232 00000 n
+0000737346 00000 n
+0000739955 00000 n
+0000740657 00000 n
+0000750109 00000 n
+0000740863 00000 n
+0000761533 00000 n
+0000750360 00000 n
+0000769221 00000 n
+0000762287 00000 n
+0000781998 00000 n
+0000769451 00000 n
+0000789469 00000 n
+0000782326 00000 n
+0000797602 00000 n
+0000789695 00000 n
+0000807529 00000 n
+0000797835 00000 n
+0000815441 00000 n
+0000807796 00000 n
+0000828151 00000 n
+0000815672 00000 n
+0000836169 00000 n
+0000828509 00000 n
+0000845410 00000 n
+0000836417 00000 n
+0000853362 00000 n
+0000845718 00000 n
+0000860902 00000 n
+0000853646 00000 n
+0000868416 00000 n
+0000861141 00000 n
+0000871882 00000 n
+0000872005 00000 n
+0000880361 00000 n
+0000880997 00000 n
+0000881637 00000 n
+0000882306 00000 n
+0000883149 00000 n
+0000884046 00000 n
+0000884807 00000 n
+0000884935 00000 n
+0000884975 00000 n
+0000885107 00000 n
trailer
-<< /Size 1556 /Root 1554 0 R /Info 1555 0 R /ID [ <3FE6C4DD311C0CD314A321F3F7326EAE> <3FE6C4DD311C0CD314A321F3F7326EAE> ] >>
+<< /Size 1555 /Root 1553 0 R /Info 1554 0 R /ID [ <CFF0FB724450D6A313418D5C4093D31A> <CFF0FB724450D6A313418D5C4093D31A> ] >>
startxref
-885953
+885681
%%EOF
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index a1b34bc217..0d1488da6d 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -129,8 +129,9 @@
\begin{abstract}
-L'extension LaTeX \pkg{nicematrix} fournit de nouveaux environnements similaires aux environnements classiques
-|{tabular}|, |{array}| et |{matrix}| de \pkg{array} et \pkg{amsmath} mais avec des fonctionnalités plus étendues.
+L'extension LaTeX \pkg{nicematrix} fournit de nouveaux environnements similaires
+aux environnements classiques |{tabular}|, |{array}| et |{matrix}| de
+\pkg{array} et \pkg{amsmath} mais avec des fonctionnalités plus étendues.
\end{abstract}
@@ -167,8 +168,9 @@ spécial & 12 & 12 & 0.5 & 70 \\
\vspace{1cm}
-L'extension \pkg{nicematrix} est entièrement contenue dans le fichier |nicematrix.sty|. Ce fichier peut être placé
-dans le répertoire courant ou dans une arborescence |texmf|. Le mieux reste néanmoins d'installer \pkg{nicematrix}
+L'extension \pkg{nicematrix} est entièrement contenue dans le fichier
+|nicematrix.sty|. Ce fichier peut être placé dans le répertoire courant ou dans
+une arborescence |texmf|. Le mieux reste néanmoins d'installer \pkg{nicematrix}
avec une distribution TeX comme MiKTeX, TeX~Live ou MacTeX.
\medskip
@@ -176,8 +178,8 @@ avec une distribution TeX comme MiKTeX, TeX~Live ou MacTeX.
Overleaf) vous pouvez télécharger le fichier |nicematrix.sty| dans le dossier de
votre projet pour bénéficier de la dernière version de
\pkg{nicematrix}.\footnote{La dernière version de |nicematrix.sty| peut
- être téléchargée sur le serveur \textsc{svn} de TeXLive : \newline \small
- \url{https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty}}
+ être téléchargée sur le dépôt Github de \pkg{nicematrix} : \newline \small
+ \url{https://github.com/fpantigny/nicematrix/releases}}
\medskip
Cette extension peut être utilisée avec |xelatex|, |lualatex| et |pdflatex| mais
@@ -200,8 +202,9 @@ utiliser pour développer de nouvelles fonctionnalités. Comme toujours avec
\textsc{pgf}, les coordonnées de ces nœuds sont écrites dans le fichier |aux|
pour être utilisées à la compilation suivante. C'est pourquoi l'utilisation de
\pkg{nicematrix} nécessite \textbf{plusieurs compilations
- successives}.\footnote{Si vous utilisez Overleaf, Overleaf effectue
- automatiquement un nombre de compilations suffisant.}
+ successives}\footnote{Si vous utilisez Overleaf, Overleaf effectue
+ automatiquement un nombre de compilations suffisant.}. L'utilisateur ne doit
+pas utiliser la commande |\nofiles| (qui bloque l'écriture du fichier |aux|).
\medskip
La plupart des fonctionnalités de \pkg{nicematrix} sont accessibles sans avoir à
@@ -1407,7 +1410,7 @@ p.~\pageref{custom-line}.\footnote{Remarque technique. Si l'utilisateur définit
une commande par-dessus la commande |\Hline|, il doit veiller à ce qu'elle
soit \emph{développable} au sens de TeX (en utilisant
|\NewExpandableDocumentCommand| de LaTeX3, |\newcommand| de LaTeX ou même
- |\def| de TeX). Exemple : |\newcommand{\RedLine}{\Hline[color=red]}|}
+ |\def| de TeX). Exemple : |\NewDocumentCommand{\RedLine}{}{\Hline[color=red]}|}
De même que la commande |\Hline|, le specificateur «\verb+|+» admet entre crochets
des options qui caractérisent le filet à tracer.
@@ -2045,9 +2048,9 @@ peut placer le contenu de ce |code-before| entre les mots-clés |\CodeBefore| et
\smallskip
L'argument optionnel entre crochets est une liste de couples \textsl{clé=valeur}
-qui seront présentées au fur et à mesure. \footnote{Les clés disponibles sont
+qui seront présentées au fur et à mesure (les clés disponibles sont
\texttt{create-cell-nodes}, \texttt{sub-matrix} (et ses sous-clés) et
- \texttt{delimiters/color}.}
+ \texttt{delimiters/color}).
\smallskip
De nouvelles commandes sont disponibles dans ce |\CodeBefore|: |\cellcolor|,
@@ -2056,6 +2059,9 @@ De nouvelles commandes sont disponibles dans ce |\CodeBefore|: |\cellcolor|,
|\CodeBefore|, des nœuds PGF-TikZ de la forme \verb+(i-|j)+ correspondant à la
position des filets éventuels sont également accessibles : cf.
p.~\pageref{nodes-i}.}
+
+Les noms de certaines de ces commandes sont inspirés des noms des commandes de \pkg{colortbl}.
+
\label{code-before}
\index{cellcolor@\texttt{\textbackslash cellcolor}!commande du
\texttt{\textbackslash CodeBefore}}
@@ -2072,7 +2078,7 @@ De nouvelles commandes sont disponibles dans ce |\CodeBefore|: |\cellcolor|,
\index{arraycolor@\texttt{\textbackslash arraycolor} (commande du \texttt{\textbackslash
CodeBefore)}}
-Les noms de certaines de ces commandes sont inspirés des noms des commandes de \pkg{colortbl}.
+
\medskip
Ces commandes ne colorient pas les cases qui se trouvent dans les «coins» si la
@@ -2610,14 +2616,17 @@ celle proposée par \pkg{colortbl} (même si \pkg{colortbl} n'est pas chargé).
doit pour cela utiliser la clé |color-inside|\footnote{Il existe un alias pour
cette clé : \texttt{colortbl-like}.} dans l'environnement
concerné.\footnote{Pour le moment, cette clé n'est \emph{pas} disponible dans
- |\NiceMatrixOptions|.}
+ |\NiceMatrixOptions|.}o
On a alors accès aux commandes suivantes (les trois premières sont inspirées par
\pkg{colortbl} mais sont indépendantes de \pkg{colortbl}) :
\begin{itemize}
-\item \DefinitionCommande{cellcolor} qui colorie la case courante\footnote{Néanmoins, cette
+\item \DefinitionCommande{cellcolor} qui colorie la case courante\footnote{Cette
commande |\cellcolor| supprimera les espaces qui la suivent, ce que ne fait
- pas la commande |\cellcolor| de \pkg{colortbl}.} ;
+ pas la commande |\cellcolor| de \pkg{colortbl}. De plus, si on définit une
+ fonction au-dessus de |\cellcolor|, il faudra une fonction protégée au sens de
+TeX (alors que si c'était la commande |\cellcolor| de \pkg{colortbl}, il
+faudrait une fonction \emph{fully expandable}).} ;
\item \DefinitionCommande{rowcolor} à utiliser dans une case et qui colorie le
reste de la rangée;\footnote{Si vous souhaitez une commande pour colorier les
$n$~rangées suivantes, considérez la commande |\RowStyle| et sa clé
@@ -3131,8 +3140,9 @@ première colonne et une colonne |l| pour la dernière.\footnote{Si on souhaite
considérer la commande |\SubMatrix| disponible dans le |\CodeAfter| et le
|\CodeBefore| (cf. p.~\pageref{sub-matrix}).}
-\item On peut se demander comment \pkg{nicematrix} détermine le nombre de rangées et de colonnes nécessaires à la
-composition de la «dernière rangée» et de la «dernière colonne».
+\item On peut se demander comment \pkg{nicematrix} détermine le nombre de
+rangées et de colonnes nécessaires à la composition de la «dernière rangée» et
+de la «dernière colonne».
\begin{itemize}
\item Dans le cas d'un environnement avec préambule, comme |{NiceTabular}| ou
@@ -3450,8 +3460,8 @@ L'option |nullify-dots| «smashe» les instructions |\Ldots| (et ses variantes)
horizontalement mais aussi verticalement.
\medskip
-Attention : la clé |nullify-dots| a un nom qui peut prêter à confusion ; elle
-n'implique pas que la ligne en pointillés ne sera pas tracée !
+\textbf{Attention} : la clé |nullify-dots| a un nom qui peut prêter à confusion ;
+elle n'implique pas que la ligne en pointillés ne sera pas tracée !
\subsection{Les commandes \textbackslash Hdotsfor et \textbackslash Vdotsfor}
@@ -3590,8 +3600,8 @@ Avec cette option, l'environnement |{matrix}| est redéfini et se comporte comme
\end{itemize}
\medskip
-Par conséquent, avec les options |renew-dots| et |renew-matrix|, un code classique donne directement
-le résultat fourni par \pkg{nicematrix}.\par\nobreak
+Par conséquent, avec les options |renew-dots| et |renew-matrix|, un code
+classique donne directement le résultat fourni par \pkg{nicematrix}.\par\nobreak
\medskip
\begin{scope}
@@ -4392,11 +4402,11 @@ Les commandes |\OverBrace| et |\UnderBrace| acceptent en fait un premier
argument optionnel (entre crochets) pour une liste de couples
\textsl{clé=valeur}. Les clés disponibles sont les suivantes :
\begin{itemize}
-\item \Definition{left-shorten} et \Definition{right-shorten} qui ne prennent pas de valeur ; quand
-|left-shorten| est utilisée, l'abscisse de l'extrémité de gauche de l'accolade
-est calculée à partir du contenu du sous-tableau concerné alors que, sinon,
-c'est la position du filet vertical éventuel qui est utilisée (de même pour
-|right-shorten|) ;
+\item \Definition{left-shorten} et \Definition{right-shorten} qui ne prennent
+pas de valeur ; quand |left-shorten| est utilisée, l'abscisse de l'extrémité de
+gauche de l'accolade est calculée à partir du contenu du sous-tableau concerné
+alors que, sinon, c'est la position du filet vertical éventuel qui est utilisée
+(de même pour |right-shorten|) ;
\item \Definition{shorten}, qui est la conjonction des clés |left-shorten| et |right-shorten| ;
@@ -4426,7 +4436,7 @@ $\begin{pNiceMatrix}
\subsection{La commande \textbackslash TikzEveryCell dans le \textbackslash CodeAfter}
-\index{SubMatrix@\texttt{\textbackslash TikzEveryCell} (commande du
+\index{tikzeverycell@\texttt{\textbackslash TikzEveryCell} (commande du
\texttt{\textbackslash CodeAfter}\newline et du
\texttt{\textbackslash CodeBefore})|textbf}
\label{TikzEveryCell}
@@ -4481,7 +4491,8 @@ l'argument de |\TikzEveryCell|.
\bigskip
-La commande |\TikzEveryCell| possède deux clés :
+La commande |\TikzEveryCell| possède deux clés, utilisables en argument
+optionnel, entre crochets.
\begin{itemize}
\item avec la clé \Definition{empty}, la commande ne s'applique qu'aux cases
vides ;
@@ -4489,6 +4500,35 @@ vides ;
cases non vides.
\end{itemize}
+\medskip
+\begin{Code}[width=9cm]
+\renewcommand{\arraystretch}{1.4}
+\begin{NiceTabular}{cccccc}[hvlines]
+ P & O & U & R & V & U \\
+ O & & & E & I & \\
+ M & O & R & F & A & L \\
+ E & T & A & L & & E \\
+ L & A & S & E & R & S \\
+ O & & E & X & I & T
+\CodeAfter
+ \emph{\TikzEveryCell[empty]{fill=gray,draw}}
+\end{NiceTabular}
+\end{Code}
+\begin{scope}
+\renewcommand{\arraystretch}{1.4}
+\begin{NiceTabular}{cccccc}[hvlines]
+ P & O & U & R & V & U \\
+ O & & & E & I & \\
+ M & O & R & F & A & L \\
+ E & T & A & L & & E \\
+ L & A & S & E & R & S \\
+ O & & E & X & I & T
+\CodeAfter
+ \TikzEveryCell[empty]{fill=gray,draw}
+\end{NiceTabular}
+\end{scope}
+
+
\medskip
La commande |\TikzEveryCell| est en fait aussi disponible dans le |\CodeBefore|.
@@ -5030,8 +5070,9 @@ semi-transparent pour estomper le tableau (attention : certains lecteurs de
\index{S (les colonnes S de \pkg{siunitx})}
\index{siunitx@\pkg{siunitx} (extension)}
-Si l'extension \pkg{siunitx} est chargée (avant ou après \pkg{nicematrix}), il est possible d'utiliser les colonnes
-de type |S| de \pkg{siunitx} dans les environnements de \pkg{nicematrix}. L'implémentation n'utilise explicitement
+Si l'extension \pkg{siunitx} est chargée (avant ou après \pkg{nicematrix}), il
+est possible d'utiliser les colonnes de type |S| de \pkg{siunitx} dans les
+environnements de \pkg{nicematrix}. L'implémentation n'utilise explicitement
aucune macro privée de \pkg{siunitx}.
\medskip
@@ -5093,8 +5134,9 @@ de la préfixer par |matrix|, ce qui fait que son nom devient |matrix/columns-ty
\label{rotate}
\index{rotate@\texttt{\textbackslash rotate}}
-Utilisée au début d'une case, la commande |\rotate| (fournie par \pkg{nicematrix}) compose le contenu après une
-rotation de 90° dans le sens direct.
+Utilisée au début d'une case, la commande |\rotate| (fournie par
+\pkg{nicematrix}) compose le contenu après une rotation de 90° dans le sens
+direct.
Dans l'exemple suivant, on l'utilise dans le |code-for-first-row|.\footnote{On
peut aussi l'utiliser dans |\RowStyle| (cf. p.~\pageref{RowStyle}).}
@@ -5196,7 +5238,8 @@ $\begin{bNiceArray}{cccc|c}[\emph{small},
\end{bNiceArray}$
\end{Code}
%
-\[\begin{bNiceArray}{cccc|c}[small, last-col, code-for-last-col = \scriptscriptstyle, columns-width=3mm]
+\[\begin{bNiceArray}{cccc|c}%
+ [small, last-col, code-for-last-col = \scriptscriptstyle, columns-width=3mm]
1 & -2 & 3 & 4 & 5 \\
0 & 3 & 2 & 1 & 2 & L_2 \gets 2 L_1 - L_2 \\
0 & 1 & 1 & 2 & 3 & L_3 \gets L_1 + L_3
diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf
index 383ac48aa3..ae48ae0133 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix.pdf
@@ -634,45 +634,48 @@ endobj
<< /S /GoTo /D [ 365 0 R /Fit ] >>
endobj
368 0 obj
-<< /Filter /FlateDecode /Length 10004 >>
-stream
-x}K%7~YcP(jb6]\Ԍ{ to)"8'NVٮ,dR||HJPn_Ϯlޜ!~9l-
-,_~Ƥb ܧoPb0h{Rݿ6PI=TMrNDk*3o9 [f%:-&-H__[eʛ7qy x< %r&|hiMeADϵh HXc8tC_rKn Lp{h~m^'Ty\}mVS 8,(4[Pc ?`4X_z0BO+1ʧ?=e4&l6Ղo.Y$(!O<]Sb߆,y>R.kX<u&z j/'CM1[9:\Ԩm`b 3cpDy9@{RoF ͜?ݾC\;omng-N m8A0ZQpq⼇q~d~l@RjX%b|ʕ
-Mc):^~LHH#}[]R:o-=f#!7ȌwYJR-Y<$`~_
-ǘd/y3bF=DQjy 7I,+pւQ.K:{
-Y5x35%!H_-5)X/I#RKmjr&ą|)vQAvB=3G@a@ @n-4HؽV:jxPFVʒRhp&das&|4$ͤTѬo-rҺv KIJ^ 8WA(1u ,r1e%-쬐[De,p_4Ҿ hYI*D[bV搸| &=٥THzi;vxMʝ-<0bLXr:Zw". fݣM+ײ/T~-
-ֽeQB**@C+*c/IŒ/su<rmQȵ]P,Xi&48qx )G OL6JD0ps F/X>`;\{B'MCXB$HF WL:BǥJ;4PUI"ﰒ@@~IXtb $ o- d\*:"2WڬǣS (̴9I S&Fΰ$
-<8ä]^\1Tb&fV3jN!WGf4eН1{DViY|G{j)NY"NSR!]Ar
-:;l:I[=\8\RdSByֽE_IͨJeeQEv` CgXe2?qx-MG`IAze fQAv9B`A!sde*OuDMaEQSUhXʬO}#!j4Nb0r)Y-b=$ @:4DL>EALw(a7#8Pw# -x9 g:%E3(_z mfs`l QL[C&h1>MQn6$/4ehI62Ei v}2 ć5n%1*o)\hܤy`[BGC"O@0q
-=QRFT%GM#1-ʤf" c$_8\XSѐ%E S#H$җn$m*#` |QLe+Z)Hl4$,|U$
-*|zFR/ad q{ !T
-$eBGPɝ)&
-i䛮\3LFJ()uzdDIHѕRQ2L$WH;UJ`ض(r8
- "l GU
- I3FQ&Ip$W3 9"!T
-l<6=#Y;g)  c"6JX݂8&"1z<,YdBFPɛ)n<Jdy"Qx|;zF
-hd
-Tq͔.O
-idMikU`:< "+BQ$2]Q¦1pk95'Tv/C#U+B$)hu3Sg'oSZHD]S8(Yt9YhAUlJuRI!nR;DVvD}׵NYQ?#gH
-^$^T
-$
-JP-j[ɬw\>@G~"HGFRkj)i"τȉ.JVvD}ׅ:~Fyɳ^m8@"
-V`u֊&dE2]ņ2tD}:z͐P_
-zL~D^ep8^qBHiE@I2"\4 \V:FA[@QguAj<naHMhEcy8&DN
-tLEşQA蕒*$I %γb(Y ez_ԔNGw[=wǕ.\6<=3hbӎgb~C ?Zƫ|cNGdYZ4^۔-F/'o֢*ױg֢*d_^SxfZ4> NxW2#&k.R(]X7tl/dz")F %|KįЄ
--ķZN47_"w^0mnZ}0$`ϓqaVoC7#(PT^3/S޽D~,*>M[rĭ;p$\-OVIՓ`f
-_*T(MyпNJ7Vx_,#^x&
-/
-k
-0I{.lhZwhMw.U㑢p[153 EgGE}!*!nbe:R~pR۠]4>xlzXM?n .낟x:MQ}vBM[`]|tdl#sa.aԞޝ!V +  փ
-,mxVJxBF m[u>Y`7μ7n3nǁeNinH?38WƟSI j[.hgtr >0*
-Њb5{N J7$s@b}0z<x&:dwOAu]FSS76v˖%[[ؼw{I!_VZ9aw^M6s;~ȁ<}Hdix`|lyu7ik/qѝUTPd/68OWLs4Toy#so&ђMr22?-ع_f<p?_ug,rh?.x=CT?xK& $#I71!ϛ֥/COӄy N=YxiC]]4I\-qf68:i0!}3P\LC\uҷCc0'sR;Ntʈj%%,hcȖt2hSCcN#es i7ZץubǧDEx@0db8}]QkG Soɐ?`Y~k]ӯ mZ$s/ՌNVaû }92.q#
-pWe۩")D"\ŝqd r\ ρ \9
->]`u_<S
-F
-;<ҹAc RlO8[-(aÏ3٬H^bdq޸jT‘hMfG2璺1y%AW< TgZ og\^[#
-$m("=C:Q0e:NoXP
-ɳ۶Vɴ47Ynn+ U΃97>ˢ\1m)#U7~Iw@-ЂxeBc0u?J;-:a^P~fL+Hĺ-e`(G۪[sZc*bimCgugIUhUqDk8:LDŽ?qFxR’s72S@t7~17.l9/@%v^}Ȩqm5Y>rX=_zwV񩦕 ]gO;w+{Cz'%;[\%zwHYoָt뙵?۞݁wMgX TY'4%~NnBJƷ[6asq!$Do*=T\މ-Y]xr$wz>Z/JCeE"Т^|jh虘LLa|tV!= Rp`
+<< /Filter /FlateDecode /Length 10089 >>
+stream
+x}I%=;Jpq_**} }hLi#etEfU*hGHo7s?gWn6on?_ޜM[6m?1???^?~7TRxSӪ$?"QE
+L[CVcyR$ѯ{櫽ͻD\6nBx?)hzII!|ڠ-崁y, ,Wdb\ͷݖj%꭫'sokM:9[jJ`"
+B{gniZrݏ=ڜnn"MFFM?HBA%O^E3?$Ls3!8#*͂LV:+
+iz 9>['|u TФ\ 1un04wMX`J;[lgo.t(EBt3vSR̘)G6. f1l1˘ g0u+5fEu̞l~'d`BFO@pj΀Q(>6@-k8CxgFX`bp,Zc0q?C-[rEwW k1C:v1hY`gFA5̈ z&1Wpz6۸.g+8F@D܀Ģqܧ&NSr:^Yp'\..V5뺎8JM ӯ00Ds
+`32M|figb^O:𠌔%Aa69L25Y;7HILv2mgf~"ֵBsuR>H3J¨!y{w@A~ 9od )(1q2h Rp9h}A ((MvRN*an{P`q/Alݓ]i
+I/miL\КX!6\nBp-ջ".)3Gae_-
+,K]vA1u/"HU+YT7E^6K1$mp)h*+(5(:jꈗ"(WF۹s=:"h*u4ZcD`MASqh:¨ q;w1`E)%)Op}I4'J$GW]bej?IVk |{kєĴ0r)Y-b= @Ӣ:4DL>MDALwyHѰ&lZ}(wOQbe<̳IM/a 9H0(tmX۪ +DaQ qtC3n%1*o)\hSмPO+QD!!AO' Q84K7#8
+VC.ZP0
+Kx'|5+T'FFގ }:h|N; Z -r
+mfkRDu壵Kmc@$BH!Mi%#QBn& ֳrn.+كVg≐a,m,
+^ ʅl 7A3BZ-I6Jΰ8qNؐ}#a(@%->3@JTr0
+r* u URk<TXY`nj$bz
+iBGQ'N 6Ok$mԌ$SP
+*(wJeoւ# i9WJu+O(2B$WH*50b3jR-PA׃M8
+2
+1yFo
+*cB#4$ ?,Nf<lfdH_*PwFP$o:<xuĈY M(*k;
+r%xPµ+ JHb
+38K1#1ڤ'48:q\#iT(
+|g%zFoE=] nAKsR ҄7,N\f6d)H[Gdᤈ[j9ƛûsb[aLrd</Iњ_-9Z偛i>XJ:G #
+) L.…٬qPh?[)SYl5XPP ?
+U _*f\QT(qLQKY'ʷ!mZL0p?7\2\Lp PQ☤HcEGӌېv-ifF?&/T3(D1R1iFQ3,M<f4l0gCZLp?/T7T Lp2RE cFS/"e6Nؔ_Cӥ<BWjPS)0#CUbZEc҄oXj'h>Ⱦ۵`lBeov RdkF"vWX+5.b0*kY3#@*Pݠb`ƅHՊǤ E4N}}cik]aPu >O82sei&(j;N"5kWN'N(uډꜼC$r\=2yˉ4!ЋK:B&LIAEX)w|.|3jp<E!.HzL)HM&Ldv 2TC$r\g<ՆUDX4G3M뉦dLD
+}K V>G5CC~dAp T +V>ӤhD~)ҮR
+$u#_ P2 8J?qBhM䖈Y[=UNEGne? Rq +FӄhD) ҮR
+vD}u##g`(C ؋T,hBJQ+'΋ 'Q/"qu{.mQS;mWR3FgUv<3EkUU[i#?ZƋ|fܒ0OL4Zƫ|Jˊ}Zƫ|aJ.j|*NҘ+zthbϿvӿ5`)PۿdzbuȄۥdgiB5?D1ӾqB[).J>nQ{iDy/¿ n(p?𓺀2\~cͰ~5f|S%ejxKe QhڎI&' GM,߳;S+9xEP~ɕA>W'o>nQ'+{%_V,s{b\|IStv_iWp F= >ihLv/ӑ4XF|ϩ_d@]yν"PNg
+'*@&W'HOŞމ
+¾4!]
+g#?S
+ׯ3P=}:ɟ0voW~У}w?7yb{Tt^z9;K/P\_=%9kApܔgYpP]xq6}Δ/&}@C
+bԻX~O+$1_3Iߟ2^ty2{ ׇ LԞ
+ZUSfwTۊq,p[;;rG)'hGI qˊT?=⹖:l8JtJ?Ma̦w
+l"p^?XPb o_t1r6OCLmof*ٍ3~*[_) p[r:2շ%gT҂3btYvXx8`n99 9X>A^U)7!Ry8c=zjz:}cOj<*A A轊44sv
+FvƶYaW 7[nw8eRz׺ǡUϭ갻OI܎c%.crN7Č=>gv] &~pZ%Kw\u'yU>G!Af_9/Y7 hIy/[ٲމk '|~g l^G=Fjϟu? YPGh6I קIn5Q yx޴.}9ڱd~;&[pm3{&z =(EՒg&ns#&y[~&D(Qh'Vv 똨svA ."[Y=?HQCЙds m7Zץubǧ7*<L21}n硫C7|-,М$.a"~+}4vÛp5kSS+ZCx,Gwe\vCk%L1􉭪Ἧ,S,K&7o^AjxR!
+ o/m1=DùNBO>S64SdT aˣ,,WĊ'&nѹsd6VkF m~U KZVWV]{ v.
+(f}ڸ\sG@qL*Ё).me$?Kܮj뺯Q)Vomi©Ӈs)BQeHi?ʻc4CU5wMg)BUφ2hۀ@jAnMUU{XKY@vg˵Q\\eNw
+r% 97W'sf:JqvcokAp%px VY.p|і^
+ G( -g}K++Yaj7Z;Up4#a|ّX&/{{3[ b';k[' .̞E=S% -֌:bCO04q&SOKI7ycN*V&!mUMy0۷Y&-W5@r9~J%~6MެV,$^ i2O jwFuTj7tq@ٷ<jvi͋T^2/UՂwV\^;fFk8:Lǜ?ʨq^xf)XdihY 7y{EO; /ξP$ոƤqhC{H:2zۗ͛`굮']靻ו!=\LN"e eɿٽw9m1a[vm͉a{Ÿ8jpҔu6sp\u^
+)c(A]P4V)<q]U. Ԯ=ܶah_5}5[*g3u46IFUѪjF<xм+_7HΞ-ֺZ#`vX%mx4WF<?:JMYwxYaٶR]ZgUʨ#
+v)ZLJs^=#TEG6^$/3TBx*k%
+;kzxm3tzdݷD*j3#mlkICV3'dY/1YXw-ݪ-To}::OxCYP28y`F:K:'S
endstream
endobj
365 0 obj
@@ -682,8 +685,8 @@ endobj
[ 366 0 R ]
endobj
366 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 78.374 76.659 499.819 88.116 ]
- /Subtype/Link/A<</Type/Action/S/URI/URI(https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty)>>
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 78.374 76.658 306.319 88.115 ]
+ /Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/fpantigny/nicematrix/releases)>>
>>
endobj
369 0 obj
@@ -693,29 +696,24 @@ endobj
<< /D [ 365 0 R /XYZ 79.37 771.024 null ] >>
endobj
367 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F28 371 0 R /F29 372 0 R /F38 373 0 R /F47 374 0 R /F52 375 0 R /F51 376 0 R /F53 377 0 R /F54 378 0 R /F25 379 0 R /F20 380 0 R /F18 381 0 R /F21 382 0 R /F19 383 0 R /F17 384 0 R /F15 385 0 R /F16 386 0 R /F55 387 0 R /F56 388 0 R /F57 389 0 R /F58 390 0 R /F65 391 0 R /F66 392 0 R /F67 393 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F28 371 0 R /F29 372 0 R /F38 373 0 R /F47 374 0 R /F52 375 0 R /F51 376 0 R /F53 377 0 R /F54 378 0 R /F25 379 0 R /F20 380 0 R /F18 381 0 R /F21 382 0 R /F19 383 0 R /F17 384 0 R /F15 385 0 R /F16 386 0 R /F55 387 0 R /F56 388 0 R /F57 389 0 R /F58 390 0 R /F64 391 0 R /F65 392 0 R /F66 393 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
404 0 obj
-<< /Filter /FlateDecode /Length 3882 >>
+<< /Filter /FlateDecode /Length 3883 >>
stream
-xɎ\>_ѹɇ nInOC
+xɎ\>_ѹɇ nInOC
ۈ}-mF? ,i;Q2v$i&Òr-{ٶbD׉1dydf"<S㌹?l2VHAfVZo,=e60'l]<LK~
-("HH38< zŴ}^nt >oxάpp 3qD5ru̢pyL+dV?o_ \p])4zAx烸pR4I!'c>3slHxR{P$9|C=s$?[A]QCimL̂eJ`[*c|[wnFm5tS"FbnFꟕӶG,qg^KѠf ED`LJU7]SP"ްY[TtOAn o"PU9+t8My%*Z
-kEEQAXQ$Aʄ,-l)LZi#ŔjnVcFYWvMFja56EjVŜ9$>!ٖz&KSU5Lcs;6E5b0$F)]
-mtxr<ɬ٬ɇ`lx
-T+3Z J?vvVA ́$cUC14ItyߟW^"\clVSL h[ï, %u
-c vNcKPApPkېo: '0L 
-OK>hQ>Mw`a^9n.RQ*~HrxZ-<飧 –|C#o^~(1=vx /_S3!0#¯ZC*9ߦ~ʲTfK*3Ծ0J$+d[%>~yS+@T֒]\_[ 0$mܥj^\5p}Ip IĵRaVfְHޫӌg'cF}I$un]Mk) >O6IOW{n,ʣsxt$`-5=Sa4>
-L&%97f_*kC3YG x|f9˴"d/hbjcO3y;
-X(
-xǷ#iѡRF!_
-nFw2BRG046/&mO>
-/yUM<R1 MsU)g0 bVhgyĈən0Hw)ϚrW0-}mƨiF뷚e(hHj4PLOKACl`U16(iaw,DϔXҒ&~gú<eǡ3*k!bBĐŸ',ƺR*{zD{=k3hK#@FgM1G8VKhXi(6/w3@z.P=̛
-Oي 5}~%*=v)=\u^1)rUS:Cȅy(rG̊T)ױ3 Yg{Jb;4E;oVKyuthS[]I]*`,(;1Zb;~Q:93tB5Meϴ('k'.K/tpÑtҽdwD(ImJKWw:Q1]q3r
-ֈSJY΍2/QM%#vj)W\ոU8Kɴ)-R:kM))+~i2}/K8%T./_.5/.$pukZ0.!P $˫5*Vy *zm3L'F LLKLU+DW%k/#灺0-B8fк_ki^
-#ð?0ͻ[I*+Za "n<ʻȄf׼Ѿ+\ :}QTVI\ӝWFITbU˵ ZZDS|BMxtOxBn/^\iw`+t\42UCf P'rJ%I 45.|O)OyqvA"Z87*6ϷlG/O"'JX4[z۷k=:i`y{[/otvįL)&
-`ʟn^1Y\{S^m}?vTS{a1rcm_%wT°װg7ꅲk"~V\
-Ud
+("HH38< zŴ}^nt >oxάpp 3qD5ru̢pyL+dV?o_ \p])4zAx烸pR4I!'c>3slHxR{P$9|C=s$?[A]QCimL̂eJ`[*c|[wnFm5tS"FbnFꟕӶG,qgZ0K(J$$eR⭺욂R5?ݢB+H|栘^U r,|CXp1_^y
+BK>.n;"eE9262E/Cj"~~qQ˜# O( OU#K9kRr4"ڵ9ߺaQtMj{o5\I,zћ-9B͐x5qF]&k26刬 nVX+*
+-" OW&deo5?jC,gԪO)T˼vs0Ϻ5k22L~5ڰR"rh5bXluLSBYuZ۱ Ys^awZVʮJ֛1<~5
+g/viSNM h'>:X Đ7izنE_91^EαBPWgDsdU:QE}Tՠ}o7X%OffL>dH0fMƈ!}{(ίp>V['5ZRH^= *M1Fsw8IP#{T I}t9"rUfcM_+uȦZ&)<ZެgH53oSZbxWjJ(Wn$j*T%\IˋjcbRIE~`d
+Kڔ<_߆}?7Сf8aZS8}ZtdGAi}k"qsA/R7C2vj)uI=dQt}{W|w3*LE1ߗ|{;KLdڇ/FŒ`
+ju|J}*˺gR.\2PRH+_,|=~oTuOů
+=.p?OԒIe~=v*Tc}or*TNFJU3|w*eIpȳڈ?6*QW5J.7/FSVh4Te^["#&gn??h #]+uܦT<k8N^
+BAT"cjΖYI"uфCm2=-E y҂Uڠ݉=SbagHK^, *RЖR\2yЊa{CFh2Ke4NEZUj,u"-
+r|j˄ρN;_/DNoٟ{# ! G`DHk R//\OJ<Ƅ}LAs&'K!~6ITzݷGT1nq<L[9YjjO)=v6$ac;͞JCo6P/ \"DhZ!];;*!JHn8q)`87^nR'hG'970`*J#]Glwr_ESwZqt&};vsrNw^Q%RuIV.מ<j5jyME e*7љb:`?
+^{Ur ¦7߁ѮAsfx TetB}-*$UH7Ԉ?ݛ:<I$?phEj bJOcC8>߲ < $+akb|lOo-Fln J|nDm6
+4r
endstream
endobj
403 0 obj
@@ -737,31 +735,32 @@ endobj
<< /D [ 403 0 R /XYZ 79.37 428.769 null ] >>
endobj
402 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F66 392 0 R /F70 407 0 R /F65 391 0 R /F25 379 0 R /F17 384 0 R /F22 408 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F65 392 0 R /F69 407 0 R /F64 391 0 R /F25 379 0 R /F17 384 0 R /F22 408 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
412 0 obj
<< /Filter /FlateDecode /Length 4403 >>
stream
x]ͯ أ`\8/@{2[S:HERߟ3g?/;KR$E8zDž^~|EW=1y*P@/-#TOP*R/r)*1
J
-Gx HQddt4OQ{-ыH~Qj$EA-R֊s~Z? {5ҁǫ*Ӿ/^VO<㟰ۤuP}E>^Б[ u7%$:Y]7 jzGO*v|@WM-vgi`R]|Sw_uݓ&
+Gx HQddt4OQ{-ыH~Qj$EA-R֊s~Z? {5ҁǫ*Ӿ/^VO<㟰ۤuP}E>^Б[ u7%$:Y]7 jzGO*v|@WM-vgi`R]|Sw_uݓ2&
Fo):5Y3ʈ|6U<h7U0
-v7A8YDXk}7|A”[wS]DS ^b=m`ȅx'0B8ŅܤQ 8
-f`GBSh"͡iA*tn0Go7tTu
-|O-Qo!#Xe֛~O@8^Y<7D55W1i_Qf߹&,M6UH7~Cy0 0Mi7[)r,pT.ӋeO7S*ěvͦJiY?/?Qxlվ nB 
-SXQ/#̑W`Ʃ@F8}+EYFub+rgl̾oʓ5|SD`LfƏ) $Nkbpcxノ)c:.0
-ٲPaLT|zu.~p|x8F ,iET\E?
-c܃ ^PLXee!fIM#6|D++WO@2O>"Vslv  k{.Xid^O?/ϟ. ~e Lu˫7մ,aIZzXy:A:v`jah[߲=JeYb8Ny z[@Ƈ
-C 3gA Qbpq̅{"yS
-)Xz9kCI |/2Z9.&cJP?h (mo^#)0@c^%cفvcU <&8[IA PZޭ6l‚'b%@-@%Z'uxQN-l#] %¢U+!Ma4":wDoԐ8c0=,ǘ)^h-8~ LIqI Q :q<M.3 ‹A4w86iu?Õxz+Z"u*R7gм0%drMԭ +ՍqŀCjv&%ow[ڧPY/uKwZj-5Z(64whEL
-
- zXy*Vi8Dag0fߧEh5>9h;9'^s\`}N҂BGkfz,.:g.zfUP"=hK(dKһ)\JԳm(c\Ŭ&vV;JZr4Yj0I +J׆D%XM7 JO`'CXҦWU)-5J7ݠTӲC^r 9ژJ51Zh;DZVo__anC}Di1>&c7반JK}m3S eX]?t&mkԭ(+SEU]x;~96%>f=nS쫓/$1jOyvl.^ =[WueuYekd)o(Mmh+MGU?(;w*+~J* g
-Z=^!H347/`r9pI Wap8
- ug)@ O5du<cept ZTuFY  p)/"r L
-*B+.ܨ{s%QQ΍uyq!*tyq!*|^^t@$op
-ဗGPB)Tӎ9{Ęb#JFk 
-"}φ?X6p\X6ѝXvfXŲ<y.X=#e#;nNX=#e#;6=vl&9.7|lLkȴ'4οgd_)Gԯ?@O79~(Fdb>P^~Va/|A2>>^|؂dƌm/?@RK`.B#|Љ+ʫ$r!ENq%ZwHG#<}ˇcN 3bu'TM8fN1f0 ƔW&qgkSM(Swosk1i9b.; !vY74ct^}P ST{aT 04o᎒
-F-X|߁OߪلE{*x|D:xN6;.bZU kϦbVe^$cT P$E#u}ܟV1
+v7A8YDXk}7|A0ݔh&XO}Aۺ%ra" @9+Nq!7i_B.Π1`*Drûcshh
+:4
+&劣wiw~Zz֫Ke:`0ޫ?DoPDp1H1V7s3;q*z+F6?ytp2{J}wrwJF9b ߔ737Yc
+n1t\8zobʘ . B,,?|,T$0/^~Au~x05˫_/>\251^+NyK
+ʕ&- ӭB
+VOkԣ8
+֠^}pZxzrPR"ߋ VKɘTå2ZJ<H%L<PW $rXvyկ.n7`
+W
+:4 ]Y /jK͚a
+JV$eIíjlv7 kx01l7/
+lJE$X;=W1 E >Vp'M֪)LRŠҵ!9{I.V͂$)UUzJ 5MťҬ: "w@7&մаW\*fC*u|N6&RMjL4[{WذP_+bcz:,nR3pƒl_[5L@%nBoDV*]>IZ*u뾿ks;㔪cCqU_N8pɪϻYjf. IbޢC"E1|CUr]|]qmnf)Je#wJ|ӑi4ʎᝊJz)ƨy3
+iPʽ 7<\~TTx0sc!*eCx^t@$op
+?5$C; ~^t@$op
+ဗGw8QEDy|u
+ƴc޶1vXňQhp;嚯D} AQqgKgP$Xs@JGv@Y,9 'C; / |CL<(HK/z 78F=(G߳Dz2 ,<xt'7ly7-wl
+#ǭ*#Ӂ NخVՂ(ڳťnW9X" 6) sCD_x,Uiw ,YŔ=dIt
+צkƍNߤtvT57E7cNg|@V'gë^,YRT/ص
endstream
endobj
411 0 obj
@@ -792,7 +791,7 @@ endobj
<< /D [ 411 0 R /XYZ 337.806 259.776 null ] >>
endobj
410 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F69 406 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F17 384 0 R /F26 414 0 R /F20 380 0 R /F18 381 0 R /F22 408 0 R /F58 390 0 R /F65 391 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F71 419 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F68 406 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F17 384 0 R /F26 414 0 R /F20 380 0 R /F18 381 0 R /F22 408 0 R /F58 390 0 R /F64 391 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F70 419 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
425 0 obj
<< /Filter /FlateDecode /Length 5973 >>
@@ -805,22 +804,27 @@ a7szS%z}vOW6D}*RfJ*DJboFa_$`
fZ|ߞ*AzAg{N'I_^?UiQWe `DUԽLouUQQWEۥlLU^J}i=F;4Jl
aZg&_^6eFΆ;_Μ Z۝Qg7oͲ2l֜
Lޝu@gTXopp8pM'ި'
-9IJ;q-|㜂);S9?0 g G|y۝ݬ ӈHzmu?a/;ewzmu pO4sk9Uu8窵槥9zG , лlR+/⬶2([wyĠpj@׽{l,9trsy ֧G}Z=aTbާH,TKO{'\$Ec4z'L cu ҇H/Wy?z7o^HD.=
-#Th|`UGTeT*&z:B37*6~oH[gg]LxFUHx2+EQh!aho/9IhRzZ4I-ηQHOӀM
-×Vz?2yѐ<m~Juk;Zyu uByFJHƩ#(u` aݬV1NrhLTuXʮ^=e8T>.^0iţq r3\c,\GwBH ݊/\1- Q]qN~4*)JVGpPCNXE:0:M۩i!t t:pA7dq5y:aYD2ϬN"ֆ'{;5,c |כ/gECIVZ<nt[c'lp2T܄:q5y3wjVV0{ٲZ+.teg2NXT X{9.y } uhQ!w˗
-3#+4헬a(9dL黬{t.͇;k ^5 ;f6wVΪjQYIMAYX^TM_U(^50 _Qwl5qؤ6zyFZgmGFeo4v[cD-;HЧLl^eT\}# ' B.uBVFX=0T-zħ TW-
-N1H8.©cUF#xD۲(wZfd a`ǖVQe t9OZ"hLXpNfЛXџ*mܦvl晷݉-ƉkڤKZ|8Z,dwH~=?8 g0HN+m#Aɚ~XiXbs;::
-VSº0[钌^L~o-H|}M3x1{+I[ٶ<.#4)(*aq"٬ ŸP3w9T9H^o椄V9={&
-;PyF>GEy!zh!vVb;AL#VcU{\5ցp+@^cK22"W{-XSw,=Qڱzcӱwq"؁)D
-Rpcr _+oWGܤ !d
-4Y7K#lJn;LL{\oppwfY5S@j-|7 '6vڙ%`Bƌ0NRJ:4T4h9Zd=lc15#JV6 ف
-8~b͕]8 vL h?NM2
-A HVJnNeYT+ae$&=N@qHG+BK^ϵKiDZ_8GZ95^ʾ$ًX4Ϧj&.8
-N8;HL .#S(g;6Ǧ{k3SfuQb$RF\jʮ?,:QB[ 5#/VbU'ƱVjb6ʦM;өDm NJR|n&a~L3((1\Q@Ƒ53ҦTؔmwVjRrʢMӻTa܆q'Y'C"d(2" fb+7Ze+fbU)Ʊ*vbr6ҦOc<۩S;Opq0BusPE逃p@1JB7yQR-lUnMng&"'-4;>4؄uH@Av[gʪXiՊqڳƹX4φj&.hF}
-zjʨ<:tqƥc־<<z.U2kP]rǠF&BAl-
-Ā9`G؀CFv;!n?zޠ]~+1;憶 yw{9`/[*ޱGonL~\V"^ t?[uGomCC] sm&4TL@x8 [ȯ8$k
-F;n6'|Q{ߟ x7V%}fmF_jy"+pN*,Ik}`?Rڹ aЎLZ7' hHX@b ? %ح|
-/sl70}DCP5[A+1?ȷ*
+9IJ;q-|㜂);S9?0 g G|y۝ݬ ӈHzmu?a/;ewzmu pO4sk9Uu8窵槥9zG , лlR+/⬶2([wyr#TݣdK'lFgɡ{U缐k>= >=إFb?Xz;<"p(C;g`Ȕ$>GryD?hѻ~•@'rqdߗ֟DzHRF3
+?.KeRIo7 v'K!O98W){gE:>|Ef5B“Y/F3 C%{~ID=7byHOjq@zl(V|DE~;|(t<s6
+Z*6 %Z37nT&ȝ(@K$J@JDm~}8ӟ=$l=i쓏u}#wM$ζ5+N惛Eq+1pR ҫ-<SLXYth3U*#_qZ4Ϋ["Uσ7UB2NuD[Cn(̌>fMw G+gʍUv)6Z't"8~M3.ukdc>FbV|H՗<ri)nsUMT <o:Z=zp*ґ
+[T^ hmd Cȉ'cJecs)N/n>Yd9_h1{wqwVU㰌͒Hj͒IJWj8$ʮ2ؽ@􊭁tA&cA_^V&9#O%C$ 0*: o;7Z-.|
+#*h1Fԇ>Eebz-jw g
+CY7OS裔yku1lΒS@]YWtwzy_% މe<̥dw%-1ތ]$T֥pJdrgv~lA:Ckŋ[ LͶEq)-MqG T{fmh,ꞡˡ:Az6'%綪ػ5Q9P3
+EE<*ʻ%Cs )t b>ΐn?\{P
+ՎԋxLi%-@׫ &.[8zޔ?
+C>=G$<5;#-ȈN!fkA;@l;c]sk;g(
+j'4mUxz@FFb允5\+%JLʿ9/T6ƘЂ E\ڧ3nqr9j.UV4=YM
+A"3ѝ%PfCI\=-QҰiTevktvhdUimLgAqlJ`}7nsI?,YU)) vUN39=ၵXJ:c4O4(8)T*0^@RWjopku*SĠZ +#1qC:R\Xx]J&9|R%^lMry6UT3 v)YwPXt5e0q5t@fXp)B9۱eL86[㝙48j#q=0rVSvai։bWݺMi`%,6(H tyY+:1Uu8RQ6mǝLN jS^(wRZ3v3 ˼`@IuG᲎26Ǧ|mRSmǝLLj6˄=)::M$Ca0[iHR ,[Y5+J1Uy86}˝NR$yR਴hKb.J FQRi̋jaӨrkv;59iQq)]l
+¼آ~
+:-)^2r+Rc
+B<bP%C<zaMrbej :$"!"&OIif!d)5֡YY%N#U# x[@pSFmapRTSF9֑x_ 4.]A t'7t9ԭ"_s<;=02 Gfhhe.4 G#c^;!htjƀ 2
+y=.hHԪz!GOV۵գ2\:mӷxpv=VkPUSQtĺSA<'Z
+,䓰[n>4.c[vt
+LWx%,Yޏg>J.2, Uv#!dvҍuP[517Ȼ1W{޲p7Ui-}?|p`Z
+q,oe9wJ%=?}k
+Oo3:Ef$ nB~=! ]
+,RǢrxQd
+ёn]Ǟ*v_bgt .հ{A)}/M(ziU0r2HCCo>EJI%G[)V[)mZ
endstream
endobj
424 0 obj
@@ -845,7 +849,7 @@ endobj
<< /D [ 424 0 R /XYZ 79.37 620.11 null ] >>
endobj
423 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F69 406 0 R /F15 385 0 R /F55 387 0 R /F58 390 0 R /F74 427 0 R /F65 391 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F68 406 0 R /F15 385 0 R /F55 387 0 R /F58 390 0 R /F73 427 0 R /F64 391 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
442 0 obj
<< /Filter /FlateDecode /Length 4756 >>
@@ -855,14 +859,15 @@ x\9+&q ,ae Go`'.ūHY,"7~>߾}!3o
ql>Zfq`ycEIb|tE
"
o-Y5kb%FS֒%VbK
-i^uY.2Wmqn_:GgvM幆<ifO_CB$_XJ0BK.Mw&f]nȤDDO2iIuUxX(784FZ%oޘꆸqV1wYަ~B)&L
-up
-j^fJ| t[)H97uɉ &rtX<7#9_5, X
+i^uY.2Wmqn_:GgvM幆<ifO_CB$_XJ0BK.Mw&fRB&$r'x”10M0M82BXyY0-yCdW7čk6t+J1aBؑ[
+y-YV;P={O슧 *..K,$N>4Gvaoce@JE{f!B2V684
+zƻu28"}b+f<!* <l(zk0=RЬ>,V«z/zƓ!t/Ln=s'A%-zce8YItYJYeRiɆ 
G\[.ms=<iSz^HyklEW #cU-M WBTο]lo( ]m+4SüA*a$ӈzx}ީ V1n:2Ym`7JC+C-˻4:ƑL]U]g+Ąs
nw٢SuMJGX[#0Լs9R(MFfd-L2?!|ZCLtk,ETD $YvuH :ٟ:&^hula|"Q2-$bdt4M?S%;c b3:~ZDuyk3H9K/Yͤi1sp}{2FWh L=r&/C&1dH[ayZe~nN,]kC9]{*A%9㮤 V{lsdӔlQDyYVifb4f2 $G貂c:c<[s՜7kyØHЊ+uz$YV\zQӡKKP;G*fs>TǨDƕg3f+ךgimVݜMvzLkuF/ ɦ Dz(Icx F#*XdWvɉޮTgg 8xlY"<Sh! s jppSZ2>
Yu7jJ{_oA%ThwIej F!䖛S:- xf9cg}8/AfCd.a58h2\8~vWF7I/浤4AN+У'.H2A涺\myfV4UhP7+ϫvOЦC4ҍ^F/J'Ÿ^ԡ\
-6
-Rkz <88ʨg?v[
+6
+ߡ1ך-
+mYOToGjwy)HZ--f"(fMf
endstream
endobj
441 0 obj
@@ -908,28 +913,28 @@ endobj
<< /D [ 441 0 R /XYZ 78.37 808.885 null ] >>
endobj
440 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F67 393 0 R /F65 391 0 R /F16 386 0 R /F66 392 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R /F71 419 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F66 393 0 R /F64 391 0 R /F16 386 0 R /F65 392 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R /F70 419 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
451 0 obj
-<< /Filter /FlateDecode /Length 4573 >>
-stream
-xɎ%>_Q?ځFii9ML}u
- P3ѳȓ7<&y v vM)V*&  $lO6!
-rxN*.߇<c Ҵf>r`>՚=BVgdMM/?VF>A-8F{H"
-{ p5㏑6jcKsGܵOscQ*k !͞//|8h%pXu0AҤH0"9Su<C=HNKp0ɨJÔ8w+ޝI<U[y5E-زC%c`]azmZ2)t u"[Hd#C:Ф+iG]ʓy ?!(H >F"˱?ېO_jY%z.awzײs9-KMüsD >i=~^:IA<З9 H:敼H?a7}C3D!yϙ)qȃsZ]} .RaݛtY-[,`-3^ϛg(#RQ僴 a\jC"+\LYaX&/S&"EĪ7:ګzpuFDP$9\V^W4-R&i1na}-7aŝFq U8Pܲ>p<:'8qt?f gv1qr?+CTI%NO!٢HУ:4zK%~vJ d TMN2yﰥf$VdZ S+EgNk%oh1mjf 2hͤ`ԲȞDy뮆/\B,|Cg% _ <Cn97@d0BdX&-Dĝ"wR3|dMbQℐRF? R6G}}8{&8\f#x^m/=rfO,>}UB2wWF3O4W|J뫎Hkռ_.0dF =򴒗Q6`
-|g5`wK-96rvMq#ܝ+ x{quZ] |PӝM 5#}uV؟w >j< VzR϶6fc_OE5_qoW8hIq2utl?Æp`c[P?gmwb{;p8:jFPBQ=:"h=Qf 8\T ൧a7!> y8zۤ}De
-9GhX
-o2\\N64tkފf:kLMF"I헆S[ʵU"05fV4l,PuW8 Ye5K GшSpB%0m,&&\1Z ;W`,/ uϝ.G,z֔Dp2 z |^%csTs"<oOS</ҸډZ( %UF+THbPJ`F 5B.I#HW6 =z dxj)O(zQtaVt4tՠ!j.L
-eWB4WAp*&'E~--Vb xG'>eer5Xt
-
-I9-5-d[YW}h\ 0)T-׍Tۨ+K6tc՞<?Zc-ZJ(|d4P}׽5SX51Bi$@54lILJU1&R$L#qk ԉeZPu V"S_`I`1P:ťo2/0QFVtˆm>OUFBYvۨ1Ĥ0a5zIi{I/yt{s"T;*зxuתLjOP/|䘯΁0 ) gK
-8-LNyi,+%908Z`{L ]'~\e?[IVL> 91h^jS=p~*wjܸ ̣K&!ElQBhP7<4H'e 뮿{R9* AzFW'v ! "1~[wti,N<n2B;  yTQݵ25>0B;U-|Zi=-]
-2={`;e\{)#S HOƹ8,MWxl)ZʘEO)fшf7J޷x'fH\HG{:q!H>M}$lL{.>%s_wY2GlTT2Q#ޕ9g!km[&u,؞tR^նF
-Җbn&&j'?Nw~m:rad'
- C*L_ŶzfˁP'[5T׭F: 7e{?]}7ᰂg"nN(frtsϦOVǀmaч=+/û(wZN;rjNynZZT.~{cG[i>^%.H#*$]8A,^y{rPY]퓮ĜUk" m*fo"Xy4CSty\;z^?vXS]o׽. <C(,Fa/b&H8gBJnm=j7=ߠWrUȈ]j(C_r'[˺N'[M:<•87lc-S[;džxez0;A6Hq P 
-zs"܌qDwzВкƬX fK#i[hAj˙ j:j71aE{UxRZU^W|zsCwРѧ'^'ʩ
-wt wwF T;Ϗ-6;909(\Nyn>&)N!W
-EVz<'7
+<< /Filter /FlateDecode /Length 4546 >>
+stream
+x=َH''~ 4A$//}; p8sTqIQ,ׅ/?ۇ߽x |7"뙴5q#o??\ <zSx ~ _sM0.~[yFW\wZE,ūiD.c)~J'p+w ]INJr'3ddiMI4 /ҝ0sᘢ!SF r~:\N |"=Mt"̧|=\+7$H l[h
+󹇉1ɸ/3Mȃ+w$k$߇<; [~6cIwjM>֗ y)FgוaVdf>`}~ < 䂴c[4YQF*9G5> jџ#mږfk`Ɗ9TXAp!CG_5sڙ[}gor*MlƠ=702
+[mВIkqDoi IVf@޺#%8?rg(H֠1a] kp0ې/Y%~LJ.awzer& Zי6yf=ˏu$!@_j, }W"  =gkrS"iu#"7xKqvoef=oeG V2|x2rA) uY.~_>H˜@zQƥh8$8ƺzE3eDGD5`2yB0 YrUtգuW*Bʡ^Ir rUhO;,
+joKŸ )ޏ}g<w1T@q\v:B qg3jż6 q yR\i}ÀR0gGuLJ^#0&8ApA%@ThqV'|PʜTo)e$0hɤ+vV$V<ќJJ@dL3I3e ?R=4] _ù:o
+}9|Y
+r Jx>ދj=u0 ;ܜ]75#)Ef2-Ȧ 5z37 !~Oc4>m2+-(mqLpF ^f{^ ^퟊Y=}UB2wWF3O4W|J뫎Hkռ_.0dF =򴒗Q6`
+R>HFF0{slpܫkA*wse{/N+~fN_y'^ʳݟklkcm>֎T] 7]@yd g.SGv8l6\<@˸kvǁ+&P8$܁1V3:bV<u~7ix@2[@h=K~`DJWP!>}I:,d"ťwK|kҳ[}ΰDe
+Nք؄;]LiΏ1˗bb#=k8=KoU19U*eyH->oOS<ۯѸډZ- %UF+THbPJ`P 2.I#HW6 =z dchj)OUzQt'aVt4tՠc\X| ˮh*ƒTQqS%JkkZ_+Đ?Z9O|V-h *?z#\%Q)*l+$b䴷<n!3TbBCbPIOldFqU򴉇3.KהFAV UEs,g#VpvjI ªq /Ϻ\%q@_<& aLMdR5&a W\{_+UNN%/Brk\дjL\-.}y祩JXM.Oy}V1',*QcIajq^D<wU
+Ayo겯U= ՞ߡe_1_a =S&=tFe16Uf 5հڍ&a,9tsNPrQʱ\劀\\Y 0&1wFȵHNa~p.T@$(39-
+z h1;X$4Cws\l%[Mf26ĠNzMgar.3|lIh"Rt%uC#t]ưYQ'od;4(M>ɷ q`q` ܺMcwZv3)Z1܉^Pb߮׮>Wͣ> A1-'lJiR鹖
+Җb&jly@?okyKD;O6mi.Bj `k3N[+VY
+۶^s~^ȋ9<\
+wI^o(
+˩QX틘 P!lvsZM}ry;2beW{ɖ;ŲV.pb4N qa(^.} MbҸVB@czP:&
+ѫ2T7jw(pY
+ܲ;)C6NQg9ݼSʶV;ш[%TH -ԛI%f|C&Ӄ5fUb035\IķuB -P[dUQK K+rk
+EՒurӛ=>=:VNP轓k(^3b5Zy~oѶ ܫ(p9!n;\"(uXg
endstream
endobj
450 0 obj
@@ -960,12 +965,12 @@ endobj
<< /D [ 450 0 R /XYZ 79.37 169.071 null ] >>
endobj
449 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F28 371 0 R /F69 406 0 R /F66 392 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F28 371 0 R /F68 406 0 R /F65 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
456 0 obj
<< /Filter /FlateDecode /Length 5199 >>
stream
-xˎЊ00dķ ''
+xˎЊ00dķ ''
2jijLJ8.|Wy~ ;n
ROVe05Wil/[G#
(4g^|<1~pŋeŋ0Ixc΁{AAAs 7ĿE5Iv 2VA7A:+}/}Rؗ׊;.jSYGx'@H,51w8 goe~6 u)Hic12=$Fp3샯8S7PGG#~oj4+kY,wF;6^ʤYU89,IBᬉH#ev6'6uhFQ 9暄.^HD7s2hJD=x~Awot<
@@ -975,16 +980,17 @@ xˎЊ00dķ ''
};JhtIWAl'#NwVq3EΊx-BYeg\-|s֤'"ǧ'r[>6sl5ŃxaMgI֔39=)'ͭ~ڽ4jIIxk;mᦱK\8~:W>Mi?SDU7S_SSBiΤ n-ǿǟ߰v}e F ,eBR[^~lS$,Pֳ6ݹy^EA"]0"f<"f"Xe2ωP~qqIXm'XHkdۙ ubGqؼep:k#pq}{:Ƿ%5Ngs7%xoM*1Hqmwɛ̏szwڽhw,sK/5cHiSEm 4qU5o
|ttt[OLأpZ6H3{){2uxLzbz.~Ye!/7$ #L(3TA[v?q %U b@mp,&a-2Niaqs1#5-lROy`7!0vo;;ag]흠Mq* \Ue vzյ6þ3bE]:3g6<zҩzdPA', |D燗 }$+B4՘;@
.yHOūpV~N{G|p!ƚD='z䟰D=y{}>w'Y*Dc_SDDr|ͥ-5ݼ
-A}ZZ UVN>#^}
- w@ IGQ &CXk6lvE;(,ushk  ="6ʰ*+4R%8a-צWjq1VFV?wm[N4;ږ~E ފ*1:LBYcY(J\R936J܈Jmmۡ˒Qx[h$V4 ^6`s恤JsV gFp*+c {W
-o1 u@Zh&Ql
-le:&87
-VXnjU|z8T٬uf"b.Қ
-+֊Д}6HԖ3{ho 4蹗3Ael'²Po 5i]~-2ܨlđM}2e
-UaW&IMWn[\ĕ}mk۝F &}Ijpnԛu8΢}lHʴUX)LJb-}ӨVϱʆ}Gs8TCmYQA6-KO^3df~MӪrזw+s"&s`:0M#5սemT:1N=8ߪ:(-yJ(Vbvf2$[1GqN|W02~neی 2KhSJBD;-Ryz/5BF
-!z()QNU.wzLBQb뇗>QPހ0,2E6^SɨNjwzUyz9}۾촷s) ˑ0Bo~+?M_o9'o }J71oȓml݁ݓRf;>G%5#y &Aߤ.פ>eX&ש㔄30J\|VcS Lcx%iXTE]h'EPm7"(\pmJO$7`i]Y%V8e|QZ:NJx|Sy9N1I7ܛϱ۩](.bͫY96O
-q̳uԴ5jrfR-l2.):"Y2&\;PK@q<+k#YWm{;m^*p`pƂRh,f} l@c!veQ/wy+ŇWTIVh7YuEu =G?ܳcYqy1ݡ`)1@44prdg3ƳH/jO ߕ[nVX3R{x
-ڹ,I
+A}ZZac|@GtS?
+lwPXhq.@'F{ElaU.W[iz JpQA[MbJ&~ڴ(k)hw4-5֋s%Tbt
+B/Ɣ˳Q"ͥ r gljι['AڶC%3Rs+^+srHJim(p3IÕ^JUV"@Q'>&b 북F" ѨM.zPq4Z`
+(c篁Fp*.k렖;%| 9|9:mA'օj&)glIDj&OKx7%6*`C*v2(} zp@RZ
+-ZN"7G Z!
+f2Ƅ9z0!Z6AFHM%" D\r& Q\njb"u}|@LOE&4 ^&Iu51hQ³ιJEA(R 2y5؃6`qpRs oaVaFL09ԁ$QFSED!MG\
+b55 ;F"(IEIz|PQ<Dr) Ub`&l| +&-AMtjR"HK%"NZlvL\n*6l%h `^.J5i@x9ֵĠ$Q$٩s%'GmEA_ODc x|ltU[Lp˻?n3+;$
+j͇QmM$+CY99 ejMfIz+1IgdyNimGJFpX%ۓH.o5c6 U*z,mu)xAQM| o^-1jc6u 'Z9Q*4-I"kcѫZqFYSE\`ɥ5)8UV) l-g"be@-igs/i7zglNeW7g0Aͳ&jҺZdQoو#@/^ gez)ċ!MFKܶ^&+$׶;/1|!>M4%7pEBPziR
++V[T-3Q3c :p^~.ѳ okջnm[5/LfZqNUk;_- 57VDfMt`<oFk{ˠۨuX9$D bzp~3)Uu:QV[|Q|eeHn$b::&?t[Fadg؇˶#dtOL*JuoK;ϕJAv[*&5^kTgc:,bCQRzEk_ r ]n$j\/}6ʡh{aXenmY%̧HOQ ^*s|:}io볝XS
+dGNfXHwXaUhgw;dm7XW^9.A&?h9BXANT_mCW1i];,H⇓g`oAh)
+z~ gw #.28cC)$S"chi fgg^8&B՞}+2 }>Yf.v7W˥:sY3I
endstream
endobj
455 0 obj
@@ -1000,10 +1006,10 @@ endobj
<< /D [ 455 0 R /XYZ 79.37 451.007 null ] >>
endobj
454 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F25 379 0 R /F16 386 0 R /F74 427 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F25 379 0 R /F16 386 0 R /F73 427 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
460 0 obj
-<< /Filter /FlateDecode /Length 4497 >>
+<< /Filter /FlateDecode /Length 4498 >>
stream
x]ˎ+ 5JvWNE
YA_̡/AXR
@@ -1021,12 +1027,13 @@ yُgeK#
kG7.D6Ŕ8Gōw_j|9
^%Z3ŮV>4#Ť|9S0/7o\+u=߲sx 77N/+˟x!iҮs07_lു ccYbd3bN}G|j-{Y^̯//}ȏ %B+H#M|ӆg=sw 4׆иOqmTM}\B F>µQ5\H
frwoFmT?^Y8G݋%O@snv"! 3-AnlH{qd &x|ݽHPLQgA^*Y|CUp'ɟCXodOh( Jn18N1<Ǡ 8ʍqI -AplPqH sLp'PqJApqJ s'#8Oqp%z=UQ0bpcy(9LAq<ǀ`86x8B8N-<'9΂r8B *hRO!4%ܢIQUqA -Y9Ƙ<\ǁ<+}@1 zc(DJ`f8ʷ8Prg8 ʽ<
-c8Or|g+刼;Ùa[DVX6,co™QU=؄F6 p7pfoʙS,)[sf3MwΌ=gߟ ׿ֆ4bY9})v
+c8Or|g+刼;Ùa[DVX6,co™QU=؄F6 p7pfoʙS,)[sf3MwΌ=gߟ ׿ֆ4bY9})v
Layחn@Rhhٚ
-tKqcNnV6t%*[:pD*/b,4Jf±$A[8BDDl@` A_ P업܈ʊ_*)cmGBj<sR))?U<hn'史׈%,3DUȼ.yXCu-m$w*BOx&>UWdieA^!t9SQ ו7\kSvdaQRϋBne(ߌJomRђUJƙ)M]S҈HIJL.D-)ɡJN1KҴK*r=uQh_ߦd݆GB&[28źxoc+ʺmYHRb-R5ۂY!?ƵOI #9G8Fe[Ϥt:X%SJ;1IIKppZ,4ˈ Ig=V× Z8&z'zgU=%(wVQ=ֲB`hdػ躳=/B'7ؽr@rr+d+$m k͔SZl5IqYT!^1UMyRKz8͇.LTOrETv6dhv(:V:/!A xxT_n|ɶ+*kbaRap
-ip O (Ǭ3
-UM`23S(Uq
-]jfu3Id/ɬ{pdM[[B#4@X\BPP~hj~h&uMom_1j,=Mˬǧy MR*h̨|*ox`J/WHjW`.df[;^T||hI*s!åim(󱽒='yd9OLv%$ hWDŚX$|tI~ט*k1Lɥ ZnlD`ydO~4 MS+QWR c6&7|m ǢCLX[_7?{;XI\y?^خ
+tKqcNnV6t%*[:pD*/b,4Jf±$A[8BDDl@` A_ P업܈ʊ_*)cmGBj<sR))?U<hn'史׈%,3DUȼ.yXCu-m$w*BOx&>UWdieA^!ٴ9SQ ו7\kSvdaQRϋBne(ߌJomRђUJƙ)M]S҈HIJL.D-)ɡJN1KҴK*r=uQh_ߦd݆GB&[28źxoc+ʺmYHRb-R5ۂY!?ƵOI #9G8Fe[Ϥt:X%SJ;1IIKppZCg5woHǴ?nAG4q&H%88Ш:?,)L}@qCK7g%}?Fםy):a
+b%Ozʾb QjZTC15m>t UEezڕ+Z!FӷCѱ։}\ _HD:vK]Q] kt\=@ mSw | qUzFA Rb5{*NAK-լn&l%uiPcKZy$HKmV-Q0¤"wmX+<F ݗeGiq?/:#"tYJVW wLCI
+̅lkի"o r\}=Ca@: b`{4 u>W$o8gvi׮ějXS|+ )7ׯX%r-)P_ˍm #Hտ,oLoi
+r?
+XJF]b퓡uXts "kg/q2i` /V;-o
endstream
endobj
459 0 obj
@@ -1039,7 +1046,7 @@ endobj
<< /D [ 459 0 R /XYZ 79.37 249.044 null ] >>
endobj
458 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F66 392 0 R /F69 406 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F65 392 0 R /F68 406 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
464 0 obj
<< /Filter /FlateDecode /Length 3604 >>
@@ -1052,11 +1059,11 @@ t=f`;huN,贾Z^Ss+l4iBk5A*RW<Ӑq[M.M8̾ :a?T-Y
BW,īHS~UQ5`n
"dΊ KWA~wWA199oiN9" K&jxUxUE,0澿Z3-X"Nf;3ہ `i~+o!^APL_j@RCA
*oM"A ^$7 i8.$dVn=4]A"Bkؽ[ MwE_4}A#ɭ@ Gn>r\yELv_ef6Ah~UqE
-k K@k 59@9@G zZ
+k K@k 59@9@G zZ
X zUwQ)R,WlJuʓ+M]<ON
<C6%9#]7@9
%!v5
-TJ"Ezl3CժkA42%D4Zҩ~REWe~Ϋ n@@}p7|%
+TJ"Ezl3CժkA42%D4Zҩ~REWe~Ϋ n@@}p7|%
endstream
endobj
463 0 obj
@@ -1069,7 +1076,7 @@ endobj
<< /D [ 463 0 R /XYZ 79.37 195.497 null ] >>
endobj
462 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F28 371 0 R /F69 406 0 R /F66 392 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F28 371 0 R /F68 406 0 R /F65 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
471 0 obj
<< /Filter /FlateDecode /Length 5444 >>
@@ -1088,12 +1095,11 @@ p 7oGV^[ܨ5#{+%^@z+9-g, AiMJ7i)6.X
NUYE Hy•xFZ
ETdS%U %pm@<Cgp*
͒W$z,E({)!ta&͈q/'DAV5LN~y>qr21P<qP<q2s ^ J3#ř Mh 4,[.ىޘ7NAH:Op]<1^\bGD*uxlȑOJZJ=~fhLwá|imPɉųYjqUnvH Nc!(u[_'ܵt #RDPi#+P'CHj߫4 YCw&*ĬsHFFE$7S`i2º䱷0.&":D;,pPYw/,~CP\ԡ6&f<p
- [YuZ3pB=NAsD2n}eǻ,POPI6o!0`fy<iferbq8yY- K>m/; '`[aJ"#mĺE%LdG*[6Z͔qb21̟Nv%ˬC26 e+5{)g>eDgƺ:k3 'cb2A(\J/r>X}b/c,:}6,U?^< 鄮V$c@k;ŧ(`]S pvJ%<*Kx{=‡  i0X_BiXzr8"z|RC1Ub}>7aaiD,mݛ{ь+C)0l;*ЩVR'TL]
-& tⓥ#GaY/mQ,U.mͽ*בp9 8\Xr3&A7M.Bϯ#R?;Q /|1^0WیCt;-0zfOn$!e\VƠ4@gbYFxs#My;Zs:}
- P!zxo=+FK_:^qE2:jL12"VRrf'1|H4UT=6cIn펮_f$>vp_j 򋶖mC:i.\iUizYn3E,¢ssjacjp\d\n'$<kB[ `U[5iRKjtkKZIӯ{"yU˩nL2Opƌ%|&p}F4&roJ5Yg<魾i;Bz-z
-koup2bu _gxr.Dž~޷ ⨍L7OOɄjwښ `9+F=I P2a$te4?F}}q_q//o HvsnC|\,4#?tU:ܖ.^ptMzsm#]Gf^1Lʫ(Fwx:%SGm 3ee4I? '}Zkg{{ 0'ǝ:WcB2W,Ipxt u ]BZ,՚0+bY0a<ӆJ",D"y^ڮg^]GĴ#@͜G
-9Ŀz!˰ݫ.MէYE:<䕙pDEQ}f7ޯƟSpJ7hp<{AKe頂+;Dj] |ژk䫌k黄SRzɪ0~b!SRal[_׋_vcw.跎RIΞT"_ D0-(ʮ/nUWGE1&/qݶ%n
-PW%y|~s qHq}GFC5n[ h՝'yP>UB5%e9Jj3o( I_|>[7x5Pٲr"*Ԫ{}]{饮J~A˾b<ljlKբ_0IP6 elXP/$U#puRHLDbTzѩЩҎ& [:n%1W!jfM)Ll[RC9` ߮bjO%^p={o2 t7[aM6hI}ٺ |0ՑW8sC*۝:ֵNAZz]R9a7Qއ94,`VF}d];Sc2/w9EayϿ/{UL=ENUk6#ņhӽR-5٘Qdz"f}xV_;<u^zA,D?x^{!o|
+ [YuZ3pB=NAsD2n}eǻ,POPI6o!0`fy<iferbq8yY- K>m/; '`[aJ"#mĺE%LdG*[6Z͔qb21̟Nv%ˬC26 e+5{)g>eDgƺ:k3 'cb2A(\J/r>X}b/c,:}6,U?^< 鄮V$c@k;ŧ(`]S pvJ%<*Kx{=‡  i0X_BiXzr8"z|RC1Ub}>7aaiD,mݛ{ь+C)0l;*ЩVR'TL]
+\OaQYǹr5tre~2. HXIɵwr *4wf%Ej5:Rc%׽ Gph<vT7fF'8IcF|^>`>#MC97%隃3V崏!= ]=uz
+z8B&B9Ҷ
+ffgz̰ZiJ~  `b PN{m3/ڮZ#b^F f#xd}ߋjeX k"tG^kWyF}a8""p>WzO)]K%sU Z4E2tPAL]".>m5`AULTٵ]))dU`ktmG\)06/lnrwNk;d[GgO*^_Beחi񫣢n7}bkw^(+<Jwx狎Ѿ#fsVV-[֓ @ *ޚt2ќyK%~mi`A녤/v>M|-xBF(lY9j=HRW%ʉce_Zl{k6hjlFLHE(2@6,^kő{8:$]H"1v*TjTiG[F-Nv75S3u&ҔP&`@rH-0rؿoW1 Lr/=7JXhKí Z4Ѥl]{>vCP
+Jݹ!NZK DP.(]_{he0RZ>LˮпFIŰ<_=* "*]fb\h^l(2nowy<{QAxTܿ:/SwȠaL"L7ԉwp
endstream
endobj
470 0 obj
@@ -1124,7 +1130,7 @@ endobj
<< /D [ 470 0 R /XYZ 79.37 303.071 null ] >>
endobj
469 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F57 389 0 R /F69 406 0 R /F55 387 0 R /F66 392 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F57 389 0 R /F68 406 0 R /F55 387 0 R /F65 392 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
476 0 obj
<< /Filter /FlateDecode /Length 4679 >>
@@ -1137,17 +1143,16 @@ xO{%6 ?NFJSQ}5*
QKTy֩4Ep7?M kSq;/Sܙ(݄-IGS7qL`6ia<}W?o/YIyN-5i1hS^'=p5(VA>#
P9@ZDeNExVҁHp259Td .|^D$diOv%۟d!f04ۧ0L
e=LT>ʽ|Z
-Lژ 2(5`0=L^O)|2WÛMrKFiJ|g8t} 2lJ2oς=)Z@,NwZIYG
-&S$e$ȚjgN$s:pmnJ'fiy8.c>uiv1ˀZzQ-fԫNlL9@^ıtfQ'p+"t}eFFx ia*!WY`K HXoº}-ZR_QP;ϷkasKI;Vw%ʭVj)aq$FN- [m%w;*H W
-![,~[?YQ-ei}e|)Uc &T?9Txx/"DF"rw 7iﰻc˗|
-FQ"})A? #̦9xZ,mF l%
-kJzHg[kZeZ(1kjD4l.Ei
-MR␦cgFhz8k8O\RQڶ5G/IVz] µ<LN laO0 s]~}xH+00*OWzy}$%G¡-@Jݺ@ؿN F QI.veױdO Q~̣ܗ,2派*M^f61°k;{aAE3},v9|ˁ*`G./~}P<sSE= ̝b~G[ls={jz  8{!”󺓭!
-ϴ`
- Y[ O2t6 (1hmK R
-RgT[rځcȍ n‰;wf_aIB|*Ɯcp}L׫wf v>aT?Yr|A /=e"|1u;16'TߤS[v q&R6Mne+Tj/@QQ9&59gtUJ2XYԠ6V>RĂ.eKUB29QvŰQOg=(+!̈́q2:ba1AO'%}oK\(env)J^E$eH\y+jšCߪ-qkLSrدR\jyg[{띨`&-`c=$!<etj$,Z1=,6#LmʏjC"܊_羱@m6E~GlQIn7IΒgf6|pg
-7)NfFq'%l"6Jl09fXD+Ӧy=ൎՕP'@<*nkXA7ZK]dW}Rŭȫ(BM<>SD/<
-4+;#p`gs!LpќC{C1{+͝ؿ흚*&0P_ʇ:8}oֱ+nvqpjsW4;e&󩥇[vip()jAN Z~4|Jم1aY=1i޷碜J!r+=nŚ/UFo]˄JL<1 jwnoItUC-M6rOnddAtcw!.--ȻZ|(/Ct$kf. 3uSbXp*/g+jqC=OV [@m r㎰Pa:+@}3rz#I(, <NZ ܿ۳oܗ64J 9Z Rx0+߽Ir-gDNm}zhZ}ɗY%aRl,6S.aFP^*f{ɠMZeC>MY8%lFk-6Zvjw"$#@Uzn{@%^;7뤂 ǡ.@F7 HC /H⵳HsBڎ8oW{ &SlǴ`iTyIJ{'G%Qa۵G4jXgցo0
+Lژ 2(5`0=L^O)|2WÛMrKFiJ|g8t}2WaSW}xO6bq+J:R4m')$DdT7 $<s
+&Y)ksV:4Lc1uKӥ.!_4:d-^n1^uf{Td!R"0䠍:qh[E.+T72:dz$ooHS d[
+oF:}ֽnђRy] [s^Jʧyҥ%-Qn-RK k_#1bwzoXHLoPN,H-3Qޠ@*MlȗwU`ɊjP&/ӭ7<p0H+{HIkȥ6ɡ›ĻE?%:4oוCѼM{+_S0zK a6k.8eo[6B]Ue+ VXP֫HG:N?@^2([*G1^CGU#"qfCw /J\Uhҕ<?74;+0GիƩXyz}^?:J׶W%9(xI:(E:$1eŨapb`S-/~{jUMǣDSK\@P/3oշdDH8t#%s9B[H3 !V;!J#%xۮ:!ЏyXƜ[ɫB~3;Fvm^tsQ89>ho.o9S,/^xwʹ>g:ᗹ3VOoh
+@!I"gb7scAxe0P9v|D0|
+ĿuInڣl+-+-ۮwUe 9 1pW;|[j
+}jo]a]`0z`gv(BҀ@thZߤe V´/jY+IM-Znslx--q#,9Ŷ)} wj~*rF*|2N >mNpkGubcNs9.EX>*|Ɛۚ3e|uw+B$8?@FTDR1ՎhL&JP,}&OYEQq/b_qHrhj!>3 WH
+$j-'.ut6#p YM[AU
+jvZ\;pmW8qg_LB+,[BO%טs{}zzVLT1
+:Ic֭L{R(j#*bҤ:c*ViVk4c9_jcXE7lJ(W&>6ʟe!dSX9NfQG,,&ㄗ`mv E.EI۫D <opEM]Xs[%{^~i*\΂Uo`_m5l+|soߤlחC4GND5E1ŦaM1TmPv\[7mÆHsM2*f"iY,fl
+X%[_,
endstream
endobj
475 0 obj
@@ -1163,29 +1168,25 @@ endobj
<< /D [ 475 0 R /XYZ 79.37 306.505 null ] >>
endobj
474 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F19 383 0 R /F16 386 0 R /F66 392 0 R /F78 478 0 R /F69 406 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F19 383 0 R /F16 386 0 R /F65 392 0 R /F78 478 0 R /F68 406 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
487 0 obj
-<< /Filter /FlateDecode /Length 4591 >>
-stream
-xˎ$>_eb H \ԻT=A]EQ$EEi |x÷7.8͵|.a.F3B5|t-UX?Q|7y8^waOo 0FƧ0(.m|cv<bWSgpaH<aKJ鵉£$s)R.ߢL" _&a^F! 4E`x3OηQ,J"'%%;%8i!Ȃïi1 $qqK*q ;B48q=ElQ'Fd]&pZcFz)CHGTXPCE3#Ses$0,3%Df\uZB 9*G!i[^*E0U\s*x[S_&b қ9G M c,%<BGV?jkm%OӘt!FL_"A{֝ub NM(m t5OvP̐hl8SD+3 לPC%aƒ%-d;yo64PnL= uBFW:0CLG;CebFE nFA5u'sfAn=4(60S]R!ʚuR;-j{e. ^\A1b#iͪГiXkϕ&5LKm#Wʬ!c]+vyc0h0OqV!!C5tFsLS ]nmJчCQzـ#~ѥ^?Lk$G@͜S28zۙ*gO¹zWہ-a伎x>cC~cn:_ECa(!7=H",BwR#/br%4CmEc{?zT}q@8ns_(TA: ; <͚2Nːyz-JDlbIZii]6SY q|%k4EkAZ^}Kշs} ~ p{5:,1k^48zi/N<O1pCyx}-t8jOيC֢u<ㇻui |KL L6'8
-Ͻ&p+IQ)#F#lKk?W\rtu; ɫ޶4y?5#FCPw}G9M@aLi1jڿ_1AjL#;+%y۰0i'Z]tSk_ th;&ҘY<]uI分G7ƚ9܀ =<N`ip7:s4
-[r=VђEJ-م2^dwH%sy!BmwZ,I涨nlfqɩ"QTܕPm)OʏB)N+%IG^Qm<`lL0#uDل^[ &;d{zgFrN`S#4AHnh9љH^wV^]<Nvo
-iK0ە/+,Xܩք)f˧/
-x|DLm* '["iPG謻R
-0 Y- iSjz-mhq3O'Sw
-ujyM`ߣHaa`+|yHr,JGɟנgvyw`鿿&a-+l[~
-}% 5,`_fxe/d<$33Iw bl C]JqsT|C6nv٬Je꺐ͪ;j,iFq,EY2XXNi5Yb41|zX
-1R޴ #dUoj(2Ҭ:53v, șbz- O|N9P۶kV9nL'g
-}U͓N
-GsU^nhÓC]Q0 9C\ó=
-()c.u=H
-iمK_̠t+4e*Lځ[rO2j)]4o35IMpPSM5ۭC$ NH~]J7~$RGO},B`Л$hHӨ ty{#i?B ,:fe[SsK'yPá@qV8;ς֛ѵӪ+Vӹ 4$2螛J>mx"!`=ʩHQi9!su^Ap&KS٠HNVe{^4uk;TeֿmR &^~K_Ag}JK.{VS*[F|{Jm7@0T/IhbR,+a>b&A*$c ::}OdUWpn[w{_@'Ep'"//7Gt?m}nW̷x_E]ް7u}[{6S_݌an$E7Sp^7?zC7nf}t5nknft5nfWfָOfWv3kܣ?v3uq3ׂ`L^t3u3K?t3fGQf
-|XK Ϙ w8ǧwĀt
-PfpnK+xljv p?u^9L~-U[o)&.kž[Y${gW_xX
-id˗(7? N9N#UTVMm[8]h 9@ǝNCg7fRdPߥ'WBk筜BmNӻU[5F^LKw*NutB&{ihVvtaDrf#L_ayҟBԗַ6N7&SWf:}mp5 CQEep7 UN`c\=on\ S]۶
-'y[Oo8
-?w w*
+<< /Filter /FlateDecode /Length 4600 >>
+stream
+xˎ$>_eb H \ԻT=A]EQ$EEi |x÷7.8͵|.a.F3B5|t-UX?Q|7y8^waOo 0FƧ0(.m|cv<bWSgpaH<aKJ鵉£$s)R.ߢL" _&a^F! 4E`x3OηQ,J"'%%;%8i!Ȃïi1 $qqK*q ;B48q=ElQ'Fd]&pZcFz)CHGTXPCE3#Ses$0,3%Df\uZB 9*G!i[^*E0U\s*x[S_&b қ9G M c,%<BGV?jkm%OӘt!FL_"A{֝ub NM(m t5OvP̐hl8SD+3 לPC%aƒ%-d;yo64PnL= uBFW:0CLG;CebFE nFA5u'sfAn=4(60S]R!ʚuR;-j{e. ^\A1b#iͪГiXkϕ&5LK둫}e𐱮<бn4vT˧8+DӐ!՚aqCk:9M&海 .@N%á(lZQ?v/5X#f΂)JVŠg > S>^%o:v -5~7~!n qiPpScޠFd^D"0
+IhxkGG˕XЈ!x6R5ƥ*\c*}MRM0P7 'WV4kʤ:-CZIN Ċ*APM%kA,Yvfڤ_Oe3i cI]"j&z6.:T>zb>7Od׌`l3
+s$$zԜE? Au40/JeĨivaBo?3!{+4<V mZS0kwM}%ZѢKcfVvսo$#ukNr68Mݘls~hKJ<@xMWWЏӁGGTNbדሣ?=1eQJZ>l ! \F8,s J%Sڥh킧jRc:|3Ϩ)!ڼsIw"&0e/I$ʀUng(X?0wnIaZ-GK)!*⦷g\{ݱNC&D_ ʾϑU)sSx{T1k$ۢy6r֫.g%DSqWrC=<*? 8 ïgK8'yG([ z*czHƲU"3!n<dVLqc]Hfzo-"`
+sPlf$=U>I Ki䆎CXl|on0Cd& :i&HtIGɶ1_LL|+ W}x zBAY?lo=ݜd hkt%yY_`uO |O4m
+a,+Bѱ`A_Gf7ٞٵʱaFe0VCP<Vg(~a_*K|a%Q~~Ԝ$¢N&$٧28t$߷N}]FO>=giU#=J\ ߗ_&#'<$4.) a<mԛ)iѵ @)PÞS"}zN a%P/f.f6pӵ]:bŝjM0lXpz|z.D6T]<%@\-1,7D:}|g˧K&1p/L ة Epκ)C/ff SŲx'.6E5EtrLS.;
+w3օQ8K |`6[P8ټ)\ݠv&5(ܚP:nC[^-7
+BߧXP8 e&܏WLsO29Iq!lʐ8ڥح7O[. l;ļmf͊T (ݬ2FNiTjȭWrp]x)_tV%FeS],M =iNVv!#ͪS39#oǒ)Vגԛc
+m;-m6omtr hm']<pD1W&1<8%
+Nоs:';<é2F]׃t] N
+b+ NSZ2.$E8S+8%8T[ݪ=$MO t[mq-+aqOyK,u)}!.&?MŠ[4@=*Խ3yhV5>G|5 W'`%C>ZS@,h];be9@K"Sӆ' ֣ڎfh^c<Z oRl> Dh%QuJSw)NֿCUfv %`kud֧蒹g5UЮo$Ywd{C D#No ԋ&y<
+m:#_ :s}ίE)!Vj=ݟT>Zk5BϪ)m\W%d
+hVr?1ffxܠW3?Qx4)wQ~!0J?m⢹]Q[e} Nb~vuq~^u ~V԰%܃V)B`RUߞ_,RYچB=Ԋ'0r5em} Ys ΰIhy RuZk]XQ4)j4N<D'[R_-t{9;P E5`pBDbjC@Q|j}sdSd0RuKeܤ߶х&
+bt-mP4D~vJ1hv.KoQA ]y ۉ+ _R[9ޜMOVը1-uX;QW:q]2޺X!.4˙0}{edJ
+JT_bݤO]9^w55PWc!6YіUǸ6TG;5q7/m>ڎnjp QB}<DÑT?
endstream
endobj
486 0 obj
@@ -1219,7 +1220,7 @@ endobj
<< /D [ 486 0 R /XYZ 79.37 279.235 null ] >>
endobj
485 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F69 406 0 R /F66 392 0 R /F58 390 0 R /F65 391 0 R /F25 379 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R /F41 489 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F68 406 0 R /F65 392 0 R /F58 390 0 R /F64 391 0 R /F25 379 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R /F41 489 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
499 0 obj
<< /Filter /FlateDecode /Length 6106 >>
@@ -1232,7 +1233,7 @@ gl$a}fdzH~LDdo2#
~fQaUg)IJzUVтA!d22<yF~0ٽ_,bv@(
F6Yԅ8M1s׻ Hۭ4ԃZ鈩úCȴ|R{BG}Fq<(pY3zxT9<\wL>?4 ?OOp^C{RO2΢}zfz; yki^x<Cտgzo ))_2ǜ̜%sO:_2ǜ̜%sODQvϦYyZ!wy u^3=b߬<k3l(LyfN9'Og/cNByfN9'Og/cNB}0?3)A>
ؽs)f';6V";8&;K]mߺN^iU~>$Ag/^|G*ޮ~zaɏd(R}RLU>q`Ulq~Z;"=wj^'<MHz>i}e ޽K0|{`RQAJ^9X=+
-J#t\pd-E\ogR;C y>C򔬐 Qo/L`3,M\3$Qr
+JUt\pd-E\ogR;C y>C򔬐 Qo/L`3,M\3$Qr
$-^e"UDy8BSQB#ż>!2 f!~qDVnG\Ffr(9f2vZM!(-Ƶs0r= ;PLpL>o3ui#:C 䌢v *9 nI30}߿Y*5Se6t 6QvƔ\\J#XUuiݴ-@) eb[S8(~"X΃X
4Gym#<,8M}t6ř6QlvDjisd8̐^Rưιv i0|AT"c]׷22.p沃gnud'4Zu<} U'cmҽPAGvW{s!N^.:=d'ǽrzA}k~Q}(a"ql&z5$mA)lSblQhg!x VRN$S,bn>Cu:Dh^y|blJN'̥MKuRF2#)PB3RC3Dqὀz[bpKun`w,||BWa ǚ[ 2eO02V˷Iڳ秴̋ÞXvs&*D϶Y:MnK& ^۶0=~/L 4SBD^뢱&r]ێIxԼm Q8[9rbN֑qFb*L !vT;2[Gͨɒ[KH]W7+ƁDN{W9`L)3mLN1n׈#hN{
9Xm ۫Hv½D#Z6`C6or%%ۈNY0>%4D <",Vgrkʧyi:zISNXP& %"Zω\Mmz5"c*n&s}ךLњ8 }w WtժG@UxC6j3 О
@@ -1247,7 +1248,7 @@ sCBOzL^쿙WB׾$/'6e9jvv[-"'O;?Kc:8B
RLc~s)y2sǻ%]&:&nI)Iov-[ͬ {r6Iw>kIcVx ,(pj4~y& [O6
%2W_N2 $KJ9}|́3hRAM-C!/Q 0B`/a0[wď<y1 kLF)3ymp0o4~ xmm@u٠̣ixE 5~qTN睮5EODѓPOGNFIdyt66 ;m` IU |aGK?17ҋesGq{\d&/7 Nr p4iB>m6Ih%Lۀ0<wA)6 ϝlPrʴ s'92mp4 CIH<s~6 e$?qA)6 ϝlPrʴ s'92mIh%Lۀ0<wA)6 =gD`on4*J05Hܱw
ycxi uHipR}@*zݘyiY=CNoWG,D< e*uq DhymΕ~8ZNPf=7^"kXg쒝YύǰlPa7l/r++-+q `z/*VQr7/~*Bli2-ak\]Ld ),R^s8x^V~h+ibUUCHL՚W\FCH֨Z\?8kIP0xl;qr]mn<jqzD@db4[ckiN*.b\rVX#ڪ2Նm|ǖ:_u$T*f{l Mu L6[lkHl3.^~!k7)C'4~~/_8;:
-;݂=6 '?a4\OU,pR:'',QrYJO CrFZ|I.g#ڗbS,D IR:VWxz<AWzEN!.!\дäCW1.衢QQ0|2вCj(cPJvry |Uʡn@t_+Qz/Ђ`6,օzH_X92:߶a8r!}bc!RzOUy<lGvL9N1]_jf4i(`0l1PtZ-*>%+gW<O}|)R,˚Vg:V$I4msGxa p(֗,)H׋
+;݂=6 '?a4\OU,pR:'',QrYJO CrFZ|I.g#ڗbS,D IR:VWxz<AWzEN!.!\дäCW1.衢QQ0|2вCj(cPJvry |Uʡn@t_+Qz/Ђ`6,օzH_X92:߶a8r!}bc!RzOUy<lGvL9N1]_jf4i(`0l1PtZ-*>%+gW<O}|)R,˚Vg:V$I4msGxa p(֗,)Hw׉
endstream
endobj
498 0 obj
@@ -1278,10 +1279,10 @@ endobj
<< /D [ 498 0 R /XYZ 79.37 351.178 null ] >>
endobj
497 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F19 383 0 R /F16 386 0 R /F66 392 0 R /F28 371 0 R /F57 389 0 R /F58 390 0 R /F55 387 0 R /F22 408 0 R /F49 394 0 R /F48 395 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F19 383 0 R /F16 386 0 R /F65 392 0 R /F28 371 0 R /F57 389 0 R /F58 390 0 R /F55 387 0 R /F22 408 0 R /F49 394 0 R /F48 395 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
506 0 obj
-<< /Filter /FlateDecode /Length 5224 >>
+<< /Filter /FlateDecode /Length 5225 >>
stream
x]K$ ϯ}hY0X`g'c9-7{zKRUO;F3ݭ&)EH9_>=|\?|A'6Gfj6}2}Haw!(jZSy tFwЏK0)t?Q7M kIgU4K
IN4H3.r.#V^}g`1N,2\# CۋMmDkJT2"z|}*x>π:J'1h~_5}%ƥD.]!V:p2.*ikqp)K *|)[N-- d#~-LB! } 8QxB1zF5m="zm){ѝ-{W_wt>~)Q$
@@ -1295,10 +1296,10 @@ o'[lEPR/ BH8&9fV2afc2/1 NG@µ7c?%RX!-
~vJЄ+R\TMWFٞg.wYLfRw)Ɖ;ߪX;#eP<Xk4fzH-CF.PmYæ,b[ѡ(pE&L|<C_ק $awi`HΰR_4r!7Snkj}) ֑z"~ kf`mTo
-Ꮌͳ7ᡕޛ[@ Nt$lA"gnJv$Bf'Juz+ɐV\
Xa9Ŕ#IC\>ۏiBk}Wg *E(hvg G=KKlSg O3ljaW8Z
-lk˹Js6|f
+lk˹Js6|f
_V</srRBiGf{w#%3ZI2CF93xaZsj\Ma)\U/d;VV̓<j/Rtz =:<H4O'h}! O5JUPxƢzEzCN{ipRgK=%ܯ]+֡4ѱ` z939h_vAtWiNǗ{Qw9ୄ4Fzװ%?-wޝDTcޟbX\]@nR^}%ծ$AWj5^߀EZb:p2 F8tX́DSGFsZvC"O_aQ
-Qg?6Mc>s0zȹ )bNբNToRogk%JfNS%n;%G){tSקM^JMG ^zSG;&XܶR.du@dJ9?$DINdWW;<5QApsp7Wgfb3Owk`1UgI#%gjm{3_p}ib>cfeUQ[?5ַӉ()ݕFAS*^eUO&z9xU݃Aڨ VyQTMeq.|{*U}2vNi1^.0֤pZrDZpR m/=zȶ"}7j'ږA۞R)JE׌d|bj+[9ga10p*)bX- Y+|#ժm~ŽT`*TU-QELbiQ&Mr )%2cGJ7#Pu5B3YXNU
-|͗x7[uܒHANdp~z=ZO1OeEk:C*'&Ǫ.U t_OMmSJ]lz1* %R=L.s brH$8g2
+Qg?6Mc>s0zȹ )bNբNToRogk%JfNS%n;%G){tSקM^JMG ^zSG;&XܶR.du@dJ9?$DINdWW;<5QApsp7Wgfb3Owk`1UgI#%gjm{3_p}ib>cfeUQ[?5ַӉ()ݕFAS*^eUO&z9xU݃Aڨ VyQTMeq.|{*U}2vNi1d`%IcƏc^>^z*m Eo O-+=ѥR\!?-Vs*)=Zc`N.URSJo[WXG:UHTtZ<]Қ`[5/M|4=pSK2deǰn‡Gk<g:.:F
+19g/e?n%20ݧ',+31:b{bʊ+c]u*aUNMleU'=]@zjڦj1.bVU!Jzh]XHp\e
endstream
endobj
505 0 obj
@@ -1329,7 +1330,7 @@ endobj
<< /D [ 505 0 R /XYZ 79.37 204.438 null ] >>
endobj
504 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F19 383 0 R /F66 392 0 R /F65 391 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F19 383 0 R /F65 392 0 R /F64 391 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
511 0 obj
<< /Filter /FlateDecode /Length 3972 >>
@@ -1344,7 +1345,7 @@ x\Ɏ$WQ>MFpXst-.}5+3Gˡ+3$ |ćO}
;` 텬`ahzjſr7.^B`[X!%EVQF iv
6Ș+ĻcZm}Ц2emxYN.fI3 2gx1em.>6Y~xO
s41jynĜs?>TV\l5gewg)(̻ȼoM6E
-{5jyZECd3U(k@OMURIǡ![,~Mub`Ķ+djtȡa0ʣ< *^&ƶZ "\,73„BzƎ塯NU( *)_uc Q7͜}p(ʗH ^)+"5-18qzsSIW,D|hN*(}.gD\)5TW֤/9-J])2%6*CȀ@Z~F8(|YwצC(5*]eXv%&νWw*i%N9R$$=3[Q&>iKcTfX6(S`UK5Ӷ/uM69Tԡ-˻+Z2)Ȭ7һ,,<Y0/*b3ihzaUos(&NS A?R
+{5jyZECd3U(k@OMURIǡ![,~Mub`Ķ+djtȡa0ʣ< *^&ƶZ "\,73„BzƎ塯NU( *)_uc Q7͜}p(ʗH ^)+"5-18qzsSIW,D|hN*(}.gD\)5TW֤/9-J])2%6*CȀ@Z~F8(|YwצC(5*]eXv%&νWw*i%N9R$$=3[Q&>iKcTfX6(S`UK5Ӷ/uM69Tԡ-˻+Z2)Ȭ7һ,,<Y0/*b3ihzaUyRv&NS A?R
?JZ_*AMJ z<mv'<]y.=iR'nQhܑ$Ŵ4:ҟQvC۬3CM;I6mJnR:PzP/05@!|G%f4.0:E""Gu$(N l0' FP?-͒$l-l#-Z''Ar= u?Ih@% m 1zvr.q=, D
k8舖ml*Z[DZZ2'>)SKm(VӔpm{·
S(vz\y*/u/99 &id>dfn%z+B<H?7F[FmF8ڸikxrq%-+vu$QI~jSz.x>8b밗)sj]o11ˬ/:z]ҹ.9~4o+9PD8c5ZˤrTݯr6/RN ԋ!ͧ!8] VGZr)݂hf?iʐnPfBK4r) KEaF3ű8lU9X,{B_(R\Ur^F呞,E]cZ(h(T#Id,Vz@Yװһ,>4D;x
@@ -1353,7 +1354,7 @@ S(vz\y*/u/99 &id>dfn%z+B<H?7F[FmF8ڸikxrq%-+
wZĨ/w1JaHӨC*
.H'c6Ș3y us! uHHG7:i4 3ɝJ'T7C#D]kHzz1ED:q9MJ0=f_
m wW -"vvnzO';Nzi>vAޚywdj?}?;?xC}Hܰxs
-ǑVf~Y2~ = wd{lb|6ǭ *!rdaz6VotK`/ͺTJNc<*'T
+ǑVf~Y2~ = wd{lb|6ǭ *!rdaz6VotK`/ͺTJNc<*'
endstream
endobj
510 0 obj
@@ -1363,25 +1364,20 @@ endobj
<< /D [ 510 0 R /XYZ 78.37 808.885 null ] >>
endobj
509 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F19 383 0 R /F58 390 0 R /F57 389 0 R /F66 392 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F19 383 0 R /F58 390 0 R /F57 389 0 R /F65 392 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
516 0 obj
-<< /Filter /FlateDecode /Length 3659 >>
-stream
-x\͎ S V
-SMg|݇_J~}.3VeJY ŬRx?KY"(|fNxOoqcq':) 7 Y5xC ;'LWp_q']; cP`2.2$YNFNDV:=ԏDbS}T)|qTWJ;V.\$G}M3;)I=a y˰;x롑<SOm/;o&^p": {N;=N'{;Q6k# ֶW{]4wJs׽^w;Ї]DIYWR6J#粥R{jxnLTqƩt<
-cxF.LX|xF0]/H,څ^(xJ/Z3Q.>^ݻz 5tUDF'R*e:N:elCśQj3qtإCgsX1L*#t3?u1UC
- ^y|H6
-ǥk~U?zCHȔ:/)Pn\OmWu>Q,
-7J%M,u3[5x,7rxӴmZxԖ[uIʈ2ydq<䊖+l)#!El]PMx*LBJDi>J=&D_GcU+(d(*wM sz\# U>J \BP]N
-Ug3rM<8D>\AC5(¾W&y?
-fr<ͣ[Ii_F1a-IQ=[LVgTBL&4ӧK34{]#Q#+&Sw;
-i&oa:
-DZ܅tZ%yT[P  DhŽ,{CB
-Q&ȀY5 FKko%}Stߜ
-:hbg^ٽfG?nv£:ͫ.Ba4ft_!JHST77R|>d{"~db CI/rGVêR9?@m(:DUF]TIk-A<>lwOX
-f.nS4ϵOo-H2S'5wDڼfG= 5!a$' L8x#d$-jϽEV6M<[0|7օNʬξWu=)>>" _ cX\""u_714G5 ܣQodo :J{k5yj2W?ȓȨݜBȭP
-.E .W߭حy0Ւʨ+z, 4gp]5LK3 J?nK}@(#LF7FWf5abÎh7*~Jʁ>?63[38ArrGC
+<< /Filter /FlateDecode /Length 3639 >>
+stream
+x\K7ϯ?ЊD@1-)a d/U5Uqӭ(IQ"ƷOO<yE3oOMl+nƍؾ|~yǹq|[ypn_<YT<!
+qw뎤zj—$q6~ ƿC<G
+O2jmIg J&AXZFRfq6ݬ\ V
+/J?؞~ʚ1D#4s`{znӍIYZh_>ϪQ=œr88qfL=}{;e^LwU1,9E&O`221)0=b"p%g%O.(v&*7]QUni4䳶ǝ@:f/heC}B-2!Zh$}|J=$JXd5V#Qh}`M.yGe4|XVwh&plU:e{a?w Q'WB6
+#עV{jxnL<VAFi
+Ssm<&Y -nOR.{_e_Q!=ZYԮt"IP$\bU>y@:r|iޡs8N w*`qF]ƞGt%y4"k0Lr@)@3ȡǒ1K.W~*Jjhc(i]W\pŒҗ._^^i6'NC5X\7[+=sœRH x@ק[\=vGæD:)gF{ePNZW
+ŪYBݓCo;L#Reԙ7*
+~d
+~c3廚 mea}OL[k߼y-T
endstream
endobj
515 0 obj
@@ -1391,39 +1387,45 @@ endobj
[ 513 0 R ]
endobj
513 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 300.561 92.359 312.516 104.314 ]/A << /S /GoTo /D (section.10) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 300.561 104.314 312.516 116.269 ]/A << /S /GoTo /D (section.10) >> >>
endobj
517 0 obj
<< /D [ 515 0 R /XYZ 78.37 808.885 null ] >>
endobj
514 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F65 391 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F64 391 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
521 0 obj
-<< /Filter /FlateDecode /Length 6721 >>
-stream
-x]K9rWqй|?`4Z`}XŞe`|ٿ *A3ё>`&s;3ݟ?x[M.˗Y؋5as9_rIo >o>c?^I߿l6l;V<?th1oKތ)e[̟z)sr]ĒO>WԨ'ߴH^G۽&ϱ,efH8/?y;C>n91o˯_bݢP\2u5vO`ڮ o\׎eyQB׺k=y^-[{,KK(nseDΰ] u&q*m+o[?SʂS]m{<c?QfA?5=:~/hBT.iٗ}s!nQè,:2Kp-bs ]'>u )O bB2-Ű3\p6lp}2tOQ?tCOg0ѝs\[sz0is)Ko5GhRR ;>&>{Oӿ뽘%}tl`o]#mbBHxw1!mkuv>lǻ2_ase͝񋍘
-]Fs%zܹxsWF+4 f<uTԁA*))kIQ8rimN+D &LQ@v$.a2򖬿߃a Adzd;.'q$\[<Phha-Wg~+#Glc*"γA9qD$;Fۖ?̿^F#1܁Λ V>o*V\X;vq5V\ L)("-~هlm
-MvЫB S%;l2\.t0ws3'vU<г?KSi k`
-N@4t_a˻-dwy*0I<1~8V]tDftPׯnsOR`.O1BMhPn4ٟt%LtM`*_Vm>n_>Ҧh/{CлpI[gCJ>+k=n$Cj*uKPYA~4-@yr:nho7Rw!^@!SPA7FsG[jq ݛ?'Y}&@};Ц1MGmkC-*@ [nɾ{L"HN2@37rY|s{0|CN30gn䳳m0 (z>3p#d/{n}<tO@%<S(fs9h 9n.͏~a}Pdkf z>ÿ]g=|GoⰺR3=' ɦʣmךNOp
-m& n._ga(X3Ѐ{mebA
-WS9 >Avnl͔2%E bTRJo2#&w]&B
-H8I.vKr )Y7i%SD"Dp@`CJS<KC^A<W&wBraJ$VF1UumbJ$28M9beGD: W#p$Ŧ )͚b='k 
-qCMGB!n]yjkx
-R19 {!+D)BcJozI-{@0d0B*K@9MVVdD8.q_ {R$C;"LGjD`$`Rwoȥr
-/TCȥ w/|T=C 11%F.iD@B@"i X&++8bB|jrt$$kTI+WaTw&BIdRYvHt
-l ~+Z..%$-KěV'li CFHei#V"ʊX0Y+ RW R<Z8HO7dcNăH$$ d_EQqM9FkG/w:/㎄DeUp f2ߛA3i2EZ 1H*N3ANMVVpĄ@Cex[dR_i Lp iho$EDh ! Cnr7>)4qkIv\[g=|
-qv-v0^{zR|kۋ+O
-W,WqM3$Lz ah-{)dvs)zH 0c!c)q=/8 badmm)#RA3:iŁA[ҫ]E
-Żc"_G O܀n&x?H)k YJ܈wZq`XAa#
-bNK^TAN̫r3hEœHXcBPMՆ&}C@fq%KU[6ԉQDe_nZ$Ĉ5F,jf;Qd bnV E`)K ۠+cpm`elUm'^1fmI$
-$hvL+'ѢPɦ Bsk5-8c'뤖!ѣ 3"e0b!KNہ"CQ,x<;c)[H5 gdɺyy\ɖ)nX*`ؚ@R'n;80XFAl7C $*ǃY.fpN׾hbKT2Rٚd\fE@le* s9
-
-1vf&ܥDwX4"X:Rq>x0bIv,yъ6r
-=c+E /3lߗ
-Yg6&/͸m!m+ 8wj5l"^/t[K 5k^gd+Qq+tO7r[7:R׵=.zBR[vw`ͯFq%4-E{JbYz]yyZ7: #Ѕp$F5o70ϲ~_o@K]nң-,˓R>˺6JqFVNguOVm|>
-DN,˦0bѹz,+MM):X;j6+IU;Qrqu+&l-=btiVcQo~[gpf eL7gޚdȷ6}iY9-)q>febv/ڊV>V]߭}7OiF|tc7{:UK_GOlYܽ_Oiu|AѻO1,HRf-TI)U!miS`p?a$Y[Z^Z3h&Yz|}!)&Rrڅ!jwzLKQn̞c&R6/CE3XA TwE-mz%cD"6Bb ~z(:xlw˻w!5Eo/GwSG#'q-]r*#6}]㋎8<z(PMjzpb_}d<˨^\-\,\?;gE~D.z/m}jbzؼ$}Iqo8rOg<]|-Hnxh^OƸyQxOe_!_m4ů0* 7ۻ__ kt0R@A.1ǎa \2<gN{y .o" px?]mb큛;1)}y
-CRL%eI' Cv>EJ d}|#bm?8ZM} }l^˜S5SNފ,wh8yT韾wBNu/rTsNʰ
+<< /Filter /FlateDecode /Length 6720 >>
+stream
+x]ˎ9r+rfQi@AJj 0^5ܻ@{3 3޼BUQ8d0ɇΌ>x[M./{gfoք|n&/jL 11͘T?xl3渳 n[aX>͘Zv?'G;eN,+s=A}M$ukB[Pzm4/~g-W '-wX2To~ 꺌+;D׵GF;k{гnZps`V Bkۜwx-Q3,c+CݬI܃hd~+YbM~\g0l=G^0&us釽v!D営}7f, nˎYN>:b^kQ+3/|DG cr8cHyx_Do)՗?}aP듡{JѦ,m|)>c dԧyK=ͥjSoՐ?ڇ6oY)|L}Lǽ%}t\b6[0jw.Uwl!g}ÐP/D`׺I[;IF!:A\{@`b#&n%z-{Ff޽vFդƊ
+ljJʚBRvtZ
+ ir ЅKrt̥%{2q9MR !HL̵`Gd?$ky
+ |]4}R˃>89xfoƉK?o›K}:ɟ(GDcmYe`,0<Ἁ_bU\?Ϳ#Y~-`7_
+Z땁)V{dX_uկ~;}֦d'-0U-[ wrJIs7;0Vzn*0 db67\I7(O+~{?w?n/&r0F꿋(Ì?ۭ\#K`cʍ&G] ]2X>͇S헁)53>~.o5\z)YB!o%_ޕ5p
+}=n"Sj)uKPYA~6-@a+9uh7*z ?K??z
+0~2^?¦F_oV ٽ^C}oygm3Ѥ}6!~iWva>? ];wY}O773 \vVܞ 6_an! ;d> 
+^f` Ikgpн
+m& nnPfAk.V>.
+DtCBevH C;' 9uD6 fM z,Nj1%,$d!Rqudc5HP+Pr&$ ~|vL
+8r)1eJ$28M9beGL@Mҙp\\Q'"@SnJE,D`#x`X&#+xCM$NЕTIbm\J FĔH$$d1RqrJ)u tg>HMAK.5Ť z-Oj %$
+! +deE6hP+~3ЇܙS-$ 2cI-@Z" 1H*N3AN)X⻀N p
+Ki&
+ZJ5i;"X8gCS$tXc8LLr[a*3!y0deAb {#$ْ2JH !A C $SJ-VfpĄ.#C*Y}5S[aRV6ީ $2Givtadx`3΄DC I:
+4ԅ ޞ }K/2<aI-CWFI$$ dARq ro#&wo/2p!e?2`B6 {[$lUQ
+\*( 1D*N@NMVVpĄ.lL8I4֨;V4œ10LVㅒ,! >`AVx]]JH [:753,&pNj('+ ,GDN b[aV?+
+1 &=0.ypoɘޝ("HH(rJ)u
+^D
+t_Ɲ a˪,%>d(7EQgd$ bTfb%򛬬 ]"24@7i9H|,D@B@(nz5}R:i~9גz"
+5νnմ ZG^Z$̈5,jn;Qd bnV EΥo!դF/% qZF?$[JaakKa v`EXeg" -fgy9]ՊIF,-R K%dk rN;
+!4w2s%OZgS,sYSQ & p)M!qT8D z:W<^c$9^L=;vDa!C`K tWJmxΦv
+ŅQi|hu(qT+-xwE_#E]Lű_ݢRL'}En-wqww+EU\hLW6鲇ǝ
+ >]) <_)r`exLeH_\KEq1([ c٨ж, +o+{PVOgc u!*-5En>2vKkKJ\k-˚G
+&{WGS+K{Λ5kxHHUk&/쒕+^vGLi=8Y߿vj2\ȫ%$0,%?j]qKV^vRv-gy3
+?ނ_Z=7;ix'Hrv%zr=Rz{KBz}< x7^@1Dj)dj_C8$_26Pgg_:*37{O۰ʎ
+Yg6&/͸m!mЃ;@rrZѭ%5uƕt8:ۧ9ayӭc gSMmv=n)ݝ& XQ\ MKi{>W^hOIl5K+:wX^>@fURĨU/_|MBz5^%wwy]zYGC gotjE|VI4nw@~ϲl8܄cY9oX n}/љ-:Q+q$U2G\q [xKcX<f}XTY3Yhm-*DjӍټ&Y"= _>OƜe2M1;7uY}6~պUǻ57HpoR
+| q¯}"?xbڏUu
+g}0Og8Jux6aEBb 6n77OeNjlSMZ&
endstream
endobj
520 0 obj
@@ -1439,35 +1441,33 @@ endobj
<< /D [ 520 0 R /XYZ 79.37 309.865 null ] >>
endobj
519 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F78 478 0 R /F25 379 0 R /F16 386 0 R /F69 406 0 R /F67 393 0 R /F66 392 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F78 478 0 R /F25 379 0 R /F16 386 0 R /F68 406 0 R /F66 393 0 R /F65 392 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
529 0 obj
<< /Filter /FlateDecode /Length 4319 >>
stream
-xڵnx ܒ
+xڵnx ܒ
+Wa[󏭰on6lJoi\/Όkߖo칍s<Oqkg[:|t`[<WB0[!m9J),B; O+üt#tn@WA!tscy,a{BOwcWLd^hʕ2yXh`fʨ$
3 u/P}%M]0!s$w
RxEu~[{H})<>;\@8ZZȘ>
{=4Y7xI2tI=kDEQU(U경BPof]mZU;ֹ745
-wg-L:wA0H[H5U 􌰒)="$R56c9tXTͰZ=n7.˽Uc@ٓ(+цtY6̂1Q]
+wg-L:wA0H[H5U 􌰒)="$R56c9tXTͰZ=n7.˽Uc@ٓ(+цtYփ̂1Q]
V`vr{
-F] k#t4?Z54'RQ#ȴ4@jw)ךgcZhg'*sH|B+u0QWz0z+rgMlF{% ֤ XMtYF0T\+rIa=WN:>Źy"GNDDpB&LQE$wP+dyHpAI%JAXQPkЏON\W?uk%RrdȖ<0@Xs <  6Lf ̻@u!Ό0i3\semp(uf\ӚWQ< eO*'%AK z pO2Fr֓ulO1Q3bF.PI)( P5F OfCt;ӜHQKE TF*-ga
-~0fG{[,QTdi{:dVq}(tE8-?NZծ;ΎL% "띭i 43i (yto4υĬ.
-wHx%TG(5c mq^{)WF(B`NOQEK΢q ±`;"׎)k]rey "JF2V-'+1N^ +cr}ٔÉx)c={4
-bK;H8Lmۆk$
-gBuDǔ~Y@>jLt֊.c+wf[tM$n<:>f_*@EzXdv%dY§].ήuH+<Bcv
-xtD4Ejm
-RO?#BW|4n
-_⋜+9*%I 0T.$fcWYX9o_LƳ|H`8A|y`D@8tNکv81oqAަyc_7DH5LC
-3&*ƕOI!XSS[쇶0Xy]Q[܃i#, ,E:dڨC^L;hϤ+)DŽ*0>oς3}OoΑ>ZqJWQ'ExP%qX.bb|cfzVE=*q'O6b8&cC5W &~٠zjۘ zŠ>q͈.3G~08~/^B{VC=K:y?L`Gct'DyAvMN1f; /v*ͮ`xSfgTuR1JE<7Օ>tOT87VDE׳8p5tKM;YAh$)5v׊) :e^Σhufd/ զ]wqFYnrj)ﯳ u &BYr:G^t7
-DYQY6+FTdroYe!fquY8綗wIe4
-ЕJ@.-߱Ҋ+m1`ľED~+.vڜ r~)(kі<r[o%Dd1$ KUt$ӸzC)c/gLXϗxKq9Vitߥۮwf2f
-J>L0Ί9Qxb/>xb/aNdNO9ǷD!"btp I"jeJMDP\!UyG7A>VuEK\;Y:fAW0҇ ʏ:X@[0AwSP:0iEr
-BNAxf0x񪻣q㣡{ :_&˟_8v
-ǡ3].5-'
-x* ~ r!6^^Lyi_% zQ^Ra九͓fQȫU4g78|ZCI=5}}
-mvTEJ
-1 ǑFLtY2X~C}&^9Haǣ5A11 `pK|Jy,3"Z&]&*J~4WVB(BӉ`]@vo= ̋+< TP4"O '$ _ߌE P<rg'rc_dz~çM) AjK9hW=ot4gJKT+*!U`RefŨ\s[ ѡ
-'Y'$Uv7ݝ
+F] k#t4?Z54'RQ#ȴ4@jw)ךgcZhg'*sH|B+u0QWz0z+rgMlF{% ֤ XMtٵGhHŵ.!tI&sDSKjZQK]Gj.!rD@'dUt
+*HrBWQq~|SfX"e0*GlyΣ
+a|5L5I!Y;NJfWnA߇=JGO`ONΎ^lU(ɔX9j-ٚ@3ƠIF\-L?풪pWBuR377x`D./v~/-;EYDM,ZW8 i?oݟ " L #q혲f%[Vױ h9LL0-arnprŰ2!חMI0R=>cA3x Id<DvmF2 N\Aq&TG.zL \*}.4AwJm2zky%AWDɣcTTU@aWB%|t+g]cy1qJ'X=Cx3M`Q?G.`}yψP_`% [/"JN,JE̺ IUh}V+` e@.j-5Ӽ~5
+c
+Gq
+>#۳L[sσV\`RxU}IfɥyV6YyQ
+a܉q#9β#c#co66B~fO\3byl?c勗eP rޏ.X39] Q^xSNËJh~&;ԡ)U%aeTR0Mu%u38U'MU7al'N|A l }R`Ns%a/Z/4IJݵ"f/{ld
+xY:}(tKh#Cn)v׾]`qewC@<P;W5Ev|kVT$͊)DܛeVvk}kgbEm]7"p|Y
+[ _6ߊ 6g/|ã)w
+C~wZ%"ϯܖ[**F ɂgj</8/=4FʡvtǘEY#2V%ޒi\Nvw)l mn2kinK3wChB
+LKZ~?zγS!3CKӿIe>
+??4iw8ͬu8(@(b'&gB7cxj&xY*Ii#|bxns
+BRAߛ9#~J&Jz18GTDY1*Wւat&w|I:IMw'܈:>v֨έczy'![I V!mG*%
++b۶5zMn}vEپi>@B$&z_X1X(цZC3`͸rT3z#'(D%KL7HD;{I'7J7Ek
+ؐ'.(ػ&&cytKX{<Yq7&_({ A[w[潛V0~|%-'CK9k<z͐{F˓juz*^j~ 2W>ˮXE=R8Hp7_pO%]LEδb6~75wՠ1P~(XkW!>VUG8^KzF\O7^LXVh{ C9[5B(1t=8|)I{zS]s`rW?|ghZc[} [+K9.דr#z1i0c!<5<'EȬڿ\HzV䭤UtN&Ado [Hh(Դ$
endstream
endobj
528 0 obj
@@ -1495,10 +1495,10 @@ endobj
<< /D [ 528 0 R /XYZ 79.37 669.948 null ] >>
endobj
527 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F66 392 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R /F69 406 0 R /F67 393 0 R /F58 390 0 R /F78 478 0 R /F65 391 0 R /F19 383 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F65 392 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R /F68 406 0 R /F66 393 0 R /F58 390 0 R /F78 478 0 R /F64 391 0 R /F19 383 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
536 0 obj
-<< /Filter /FlateDecode /Length 4863 >>
+<< /Filter /FlateDecode /Length 4860 >>
stream
x]I9rWQ}(<Vk`|n{ \-BVV5'*3#䗌,J/
7[ܻ}oJ_qkyB.J͈d.B)
@@ -1512,12 +1512,9 @@ e~9WlTၛx΍
'M'-%.%H$Ý$1- J䧫.S>t7Iw+$SJdL9E,Q#oDf˃fQ%d#ļԙ vLA|}+F NKU2pK/p~^I9-r7^ SĪgi9 rWe&":TX'Lm!UCEIw5$e@T0"]DFB>.b=xʼn5&E]ԝ8ʑ1-"&o4XKb nDn*El z;Jc
0Q PcRW\E|
UXn3I5IF(k~/wX"J
-5mt4e1К44;
-B:oLZ%sZa.n(W\4;s \ǧQ<I׃1GV"]-+,%s 6kb(g
-R8d"IܳɃ
-?4BVoʅ\Ë:5L0W
-]ra
-&ͤc3G/PĖQ3zNDumJxEI_
+5mt4e1К44;
+Qf5usA@<4'z0f
+[%wd~MAOJL$yB{6y ]}&RAj-^kxQfrIJ`&Xp
endstream
endobj
535 0 obj
@@ -1539,31 +1536,32 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F25 379 0 R /F16 386 0 R /F22 408 0 R /F55 387 0 R /F19 383 0 R /F17 384 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
542 0 obj
-<< /Filter /FlateDecode /Length 5217 >>
+<< /Filter /FlateDecode /Length 5218 >>
stream
x=Ɏw};Cw@ uu5sX7'`Ɩſdn̪><^>F=0iƍx|G X;6s$¹/#~K<aۇd3jˬ?@?C&{}#l7ڦ}jV{2iuN[i~A=c>HTk
xE| dUiiM*AŤL(
ۢҚ -6m&咛D! HoԋkIIO|3g#
)M2LZIU)3!t%P.h<R1a_ͷaƞ|-2z =KӼnĪݪ&
-P͓͐&ݚ(LCd2U6QMO+5E O&L.u$ '~Rcץ!=L}0q)0yRR_[K ZwuR*asqɢ" 5ݳZH&r=nr<T=I/)%$0P2S&ZU$9Ct3>_ՀXQb>Ⱥ*4@K\hZ@Ózw`r5w"Y35ݚ%%¦595ܷd=D.#oS^["m"YX8'$遗+eNHXRjxЏ 2Fp2V" 
-B"&]SL][HryVS6_
-&,42iR:S [7Xc_#1g_BJ
-G)F; ZeRE,q7
-Sd~l'@
-Z*fTV_1B,eKdrp_v܊1Euh JGc!qC!٣d8CL!#R"K[ 5oU)+.1\(? ImQ /qG;?RP@2]h^TE 3L1֝(0ǥ:4ʲᕧVyFO^TzJgyeP *Iif M0В;hjj1H9"+aOĻDC_)T-L=kԝUB+[m P+n]V{.^}ġH4o9v;W9eavԠơF ?1ĸT&U qn-U}t"gCwSYBaJLnz@{?BR=S¶&5R \SizN)Bω!)Gl࣮1TR:XˣP;K_ T H.rFt6sjșHb=`Cš੐Є$8WWH.ĭhHޠYb@C
-8t'둑LK=(O0ba_γv&wke+b'aݲo15a;W|I񒋳`&*aF%EY9_b
-q.8G%=Ɗx\θHΜ1,J2Ď?@>"t0ʫt<m`(I <<⃉'ßMYWM5x?I0"
-Q?eqU@BuY u+ZLj:f(u&b^qC?83ʉ=nm7S?Pl)
-{? }h@YF,%
-5F6k3$qJ\`j}S:-連j0Gh-666AmS \Z&%]_@FpRB؜^P@Sv1?{N5$zR4=5p;u76Z}tWfH gx-8Q64A3h@avL|]P)qOv8ن mN%ȧ:@0Tw'G*ޑOp~
-)~
-!y,
-@iS,
-@%2כ'bGIǯIb]Y4}|U$pɞpWPFv.J)E i~gIL(X˅{r {xx˅{xI-nh:敼̮u6久;Jط[;ݥZ=Cˁ^C^uv4ݱ{<=,;5b~کz@a&?efrOb-/7mz
-v)}^rmAvh4"~}ӛsMMBV$ Hr4*4Tsj4Xzq4E=RYW!4s KFOdK ة3 +is2 _`x ()8n8?A7-00"
-)f@^_7{*+~WM.b^_7+'.'C8.7/KHbJ#0YJP% 0PG/B{oH0%iC$=H(WP*= 9Mg4î~6;=tNl8:kEaGutjBNKo6=/k|D:7V8J}1?Kr|tgyf͍y'KG1<D `&y@`)q>JM?lnUj Or3Ci\kk/5ripk? /sNcz:S7.^V8uI%Է="9۷ *StRՓkAEt/ivCq0+i5SaA3[mڵעi"t0 SްNh$VO< nv^'x[HWSܜj0>KO7v?rZ\MuK3$ ^ ud(R9Lńh G)WhSv83w @
-:?uÄtL 3x}zp+/ۻw`5W]_!3}T *k>Na#K:m!RbA5_a ᘨTر]e»+؈SlilB ^_Z_0ƼC=DZ/P t=
-l7eBg ԻGY;]/oGg|
+P͓͐&ݚ(LCd2U6QMO+5E O&L.u$ '~Rcץ!=L}0q)0yRR_[K ZwuR*asqɢ" 5ݳZH&r=nr<T=I/)%$0P2S&ZU$9Ct3>_ՀXQb>Ⱥ*4@K\hZ@Ózw`r5w"Y35ݚ%%¦595ܷd=D.#oS^["m"YX8'$遗+eNHXRjxЏ 2Fp2V" 
+WdplmekTDp*h tM1um]n#Y O~)xȤOKL%nca&C}9dj~
++=+$^\p3rjٖw,K}a(Lɲ
+hɇHNNi45q}xkz'ςf]ȯ*] S ~UIpX*VRv[6crec7A.+\=rIFV]>PHGIF㷜
+ʂJhBTo+$ z_V4$oHn,Q !Vj}v:Hh%thى`Q0/YFT;oˎ0[nٷ0j _+$xTm0HԎ0W/N`UG=e,K$ZQ)Z ~b;J  ĸ
+Jq#Fݒc<v.g\O$gq%bG͌?_JpunT:I H60S$
+$y_n2s8* E:fŬ: y&|3: 18TE綛(Wm}:?B=e0ɴ3LZCss)y}KV>)ø ?EV[<z5#px##y r(Ɍgbމ0T"3HzkPOf :<F wJ%pBRޖBZчDi[5;ZB*
+f4q8C%
+b}X;:mKfGKè+sӦ)yI*@")4oCEfރ
++3$q3t(]fEI Mizg 0;izz~vx
+
+;`l6'S~ Nƻ#F~'L8M??j<{yaZ Ĵ){aZ ԒYt#x$[LJ$.w>>*R8dO8+( ;̄|$V½FӅ=QЍe=$\_ k4jJrVfWEFtl%U[-ܝx[뉞@/phVm:o؀=鞿Vd{k~t^kS=~0updH2 3M~'ؖ6=
+t2ݥNvTU9ex/0<`@UßM3 /=Ex ?p+&v ؍SWMR1j/AWw!%$JF1l,x%R7$W㒴!q$+C(ゞ\v PX{ܦ3MaWZQϝS:c'sq~ϵ0ˣS::5H!'ߥ7ߗ
+sO[>"x
++>ܘx9>wI<z3܎zƼޣlًRYQ0K<|N_
+V&T:mb
+2snbBi4 q|#HҔ+{;~;
+ך+.̐`>~ 5LrF '0ۑf%6)ѠѯkxV pLT*.}ʼnt2ilD)S4
+X!UO/-/c᡿XBԞfpZ62 {죂tډnҳ]_o)|$&-Qd@~Qti//oa%㦐5ԏk/BpoBn
endstream
endobj
541 0 obj
@@ -1579,40 +1577,43 @@ endobj
<< /D [ 541 0 R /XYZ 78.37 808.885 null ] >>
endobj
540 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F57 389 0 R /F19 383 0 R /F65 391 0 R /F66 392 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F57 389 0 R /F19 383 0 R /F64 391 0 R /F65 392 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
549 0 obj
-<< /Filter /FlateDecode /Length 5128 >>
-stream
-x=ˎ丑
-@r~
-Bl1co/x(™]#]~{R,ŭDqێㇱ0B(lDX͈bzN# E2^hxӤooYϼhTG#F#U]gaT{f-eKwz  z8rDV{<F}
-- ~i5O0vO=2Yٞ }IrNB F!V8IsvXC$O [9 Ki կ}$*(o9y-MhuiKӔNjK_GzGF*}Ehu ;L#HJG
-=1i0
-nYJ'4Z _)&-{T
-XL ؃$C*Zr@@FAZ
-
-q~F0}K_Jg.} 5g%R?o¿m)7.B"q/0nˍN)L^[w@ BvammY;x î?c@q
-"vfQ8
-Pf"RrG;F`LKD1,F rJ>Ћ6w:%FBk"zBK$opAy5 U`6c a5.|^ ?P <Awðj@3cbl\a
-D:~(
-P\bA Tw+BJnUڹL\sE^zcctlʈlZiȽ" Bk1q&3mt`Hɛ~zA-))Wn:06.`ŵ;)?7.RS])h2&5C?ۜ<Ǿa۰LCp[R*,Y~iJL)+̉:O9DFٖc,9IIÊ iA܌O4ҵIdg^nod?B6'3_Y @ۑq阭]7{ǯ!T˫ߛ&} %%"/?uӉlH\2sGZEո9O2wf
-V|@l/{Bhrl5E8b&am>!q
-'a]03r
-' <.x7 zXc~z7&!6%yXcc }Kp:A/?A/N$ z7t޸<IN)z+ .B&aG {"GRJÙAiKNƺsT}z34|>'U؉z1VpNаl,n[ ඥt)w4'}.έ3U2xhyV9)ciX6E7B[8G&)0WVDZǥ"z?clÝlȰ0MZڈټjg@"YꢺE\Q74•AbN;i(!KT4D\C<{DZ𗶥#0uk}X]?u.,"sߖ?&B!uCqBn]mr?(mjO^-ŐP;7>DZ7lòG}C8q>8:m =mWVpߟߢWj8Lm?]|U~sL*h i? LR1}ܞX*n'/a2x[iNw/P޸İqF߶3-̟fN=(/gi:rfTh´#j|Dθ ud 2f'n<taS[΄] #" 0F:bNrKjJ_L>HrKq_ `|C.?bitχ dX<LXcR,+ SKsQVp 7$@^GZ5|6n7q˽pS`ҩ#<! 3Ñ桬Gc9
-1NRc6TN
-PXIVWbT_<sQW8}D܌zsX(trBQ1QVcoB;/./Q/W/db8W5:j^D['̬\XI%&_WW+Z^z'*p;UawRl^z"k-I^j+Vt`J#Vt[{.r)\o
-8?n_Ih_򥬿A]9LХ T -\eP&XbeU_"a/,FQTZ)ol=B%B&!EQVm(Q*Ն
-mhU_*rޗR?hU=*ߵVTܖ$ƚ E]Q
-olmQS, mDY|m 1̓RHSq}h9Nłu !r ЋU]X1l[M\S:ɖ)kU-\5L]7^o0klwQWŴ7/B)*cRtzaWpG嫵cL<Hkc+oP_'-ه/(">dQ-_IYb@E ]0<4_)7,#DKY1%\c퍟_,^ngt-p_+ߍQpqsd鵓ƖW+:~>/
-AER+"ۇy*S
+<< /Filter /FlateDecode /Length 5204 >>
+stream
+x=ˎ丑
+@|?F]SfOwLJu_(Qʜ܁URFx1 CtB?ۧ?384r'?Ѕ-%b4#Tϟ)O?3* 7֖Rƅ(5~q| ᵧw)5n+k
+Њ7##rƉ`d pm"5Zyd؞a4
+lۧ_r'ebOQ30F?wז`-n/8'~<%DQՈbFN#݊&4I6<iҷעg^^H*#g:+,<LXᦴ+ʠ#Gdeu
+3aВ0J<|n{
+o4/l 60M ĔY:k&eCp pLmXC$O ͥ4j
+?FNm`j`l:ԏ%EiJ'JgQ7ՈhHգOnd')^iW`sƮFCV'
+eb n+A/U6 W|{oQU+Q趕wʻJ<඙*xr5C;ECnGDCE) 8ޱMN\0CQ܈&5ˉy_( aKs_ӹ6y+^Go¢#J;'Ƭ⎡”R^Se!Ty*z6]) S!5+':w@ By`4&Sp7lo'{=L̬xžl QOؗɱ4(bLJM3Iy,; (.#9BH?.[8-;-[rSrĀ:EGT=׎:h%*N>N 򐾀</%= +M<-^_,@:O
+o\ ]|q[nKs9,5= X[@ Jva}7y{{°keh0nUAΜke~ԗQ0Ʌ2E͵Fw\Y P%By,F YkAnMdF;OxDQh^sJ
+选swF (Nz
+\^\P7)[.gM6:Yqnq..۔aaB`~s6C) ,z0Bs;_~*aػiWR1񏲫<`zD-2Wo)uwtA+ys1
+^#=J^khGPhyy@.y y+w};*BV.+KDrv3ڔص3{E@Zc\-&~?А\CJ2/JIIz߁Ev-ljNՖ^jj(;e Q
+Ħ>Iq2) '6 H;RjHlJ!/&6%cz_LlBD2Ll
+?zbX0hPPRKl"1L!?Jr\иAbΦ"v</q__j Rʫ/C H @j3I<e2dPgLF7RĹUF.3oN7C?"V$}ݠ Ȁi7# iX 3o&ҭ1kxHg07s.kΥsŧ°56ݤ<bOҹt}")/s3sf
+}&L#x>NLsܫ`Y]١%D}=HNJsݹt<ΕW!aa*'Ǥs{\9#\w.뮊\_Pp/ېHD8W
+W7#Bť|>7ҹt}t.ĦB c  @G໓ӹ\\rϗs].⇋g;ĀIE0)^1T'ٲpLZuTl~YaF/<hj~&Mk9ZH &r<[{> Gr6u xgϧEQ\jS.g?30&\<Fmc>9,E}6 SJN&^3t=3i85VO~jَ;;9[ g:+մ*NV"f>sS&}t˃L1u~QBKj Q%
+Uc&; # a ,xf<e*d0ɭPHU0hǍKms}x]ګrbH̐GZ(u u~|GQx8m1YGw ؤq5hעWìj쟀IVQw\zOEQU s (r@a{"fG+7}yr}K#;DFanud}_s%YYx08M-±<{6`W}R:BϞ>o+>N'.=f+䞾,sXI#vWhٍ
+l#BqL(s|eCB92E
+ԙԸ}5nIY!<w;ǃNC8au\Nf܎^Pb5}hwOmvs,HVԲ`,x&Ai5z9ǂVanR6č@Ї iY0x,x&3ǃGՠCxj3ǂGY!<)GW# ~-|ŬЇzvs,He/Vᩝ /mY0~#<bAZ#<wa)o0 zêLק gc|yn< D3"ڴ/
+ЦkǷqv lo);dNH=^jlaڒxb, 6;_olnB!w/B)ڮ޳Wj0蹳ND/؏1 骟_8l>
+}NzS*wR(
+X៻.ДV"S(jz}UyI _zeVlzg@vfG,^ v9Jcnl^jl}M3mEs/M)
endstream
endobj
548 0 obj
<< /Type /Page /Contents 549 0 R /Resources 547 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 552 0 R >>
endobj
552 0 obj
-[ 545 0 R ]
+[ 546 0 R 545 0 R ]
+endobj
+546 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 303.589 119.497 315.545 131.452 ]/A << /S /GoTo /D (section.9) >> >>
endobj
545 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.619 67.03 177.076 78.488 ]/A << /S /GoTo /D (subsection.14.7) >> >>
@@ -1623,148 +1624,141 @@ endobj
547 0 obj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-555 0 obj
-<< /Filter /FlateDecode /Length 5972 >>
-stream
-x]ˎ+j9(Dž @5`G;+ڋko7o2d*̢`0Af2O?/;}~W.8͵|;v1s1_S-~( W)^W b_A%mm'ɢ]ߞI_Jz%#JOslۑ4|FM:Ɔ;N$۠{ே> v'~ >I{Ђ0AoŖ^q8McZqLp w0 .654&PpFur?w%."@9 nК}x|*L-I
-L3
-!&5mrS iWʇK'H 6u7v\8V͘{[)#U#{]
-<&"]p8]_'Gk"THyë պ>Q qES9P Z&9nCT%p¨1Az_HKOx)?aJ!
-hM61@y@{hSzPm)AW8#b-^:M
-<#9"c\0/A&xZxj cMb2m?0})y'NDrIX t2⡌j['D:$f>vbJb'xU0o uYa_P >^`D*X&f,rn^qRgaRX/Gp`K2*ٖ[]x+R.$Īc-$9wj.p[*X7(|?v,,,eH׾[rl˟J*YgQ>-PZ?( (q޵4T@eMZ~o6dVKYPʗ[%lyճLd} :i yYF&Ĩnh!ڄ.[S_ţ?F"@lQ |[f=`_ 9тzgCSF].ᡭݏ]4.wad;iːL(gȰ6[F~S~>vW%g5Q:'=$e#ݻyߜD
-0sI(:xLēt^E:K7C 0Lc; ŠSX
-w
- 1g&D'3Gr\%s;gI<S}'1t
- k)`=u%NiڝSO9,j!v<Ӵ ͢0y9 ANaz&\E0sɼ<vOurHP4R
-Ov Hy`Vbԙw
-JgWx' Dl+, G >f.'J>AI DمLAă3 N(+RCM{$RYDhTXfDϸ'1ӹWXyoFX& Tfq>_w
-O] H嵅`BLxT^àSxz<A*}K:S8m qK+s8;z>w6A½@PMM@
-k(tH Ɛgi
-fע۽LŸ _Kע[krAZT;ʐ0_Q4;<oYY-V_z EuQU{V_EӃﺝnL[P+ryAN a* ^ᥙ,uyC`Rl@Ѹ1)&:'d&_{̲sa7rA!\7LYU>h<ī
-*luA됟 WBǬQ>h.NoK;0,zt?aI|igCƷEN0/+j ҐJc 5jD{(<3X%OԪIsκ7}W)xPX<_=%[: ["^Ƅ~l2+'K{R_2w1ju tC6,W2QJ"`҉u/Ǥ\f~[[~@:+ےO\hW.E0Q0򯫔r (;*:'zۑAUh9~z͗q0x [RV.yV
-^Km@[{MlusQsX3$S*Df8qBdv/~$n0LLqDM%9™=a#Q!\σ&"nKhxTѸk:9%
->G6 3AT|<h$[pJ%ZG>K-cnq[bf͝і2r06zvsZXRK{bґ@Qu3lzv9Қz%TeXpHoa_Xv
-GcUn"=_cvPpFYk#ki;:6wo;rP;|\؇i7팑XV
-b)s o %-OH[ șa]))%_gCJ/,xDp(|~Ԯ{dK]|+nCSJd'J/%KGPQR޵oi([1z8,<BCƅccBeIϿ&U1C%Bkq
-,YHdp``RΝ>Q=ce?))WwS0녾G]~}9ܨ+Z||Cި #‰iBW<]苷yYЀ'5:O4ğJBgo͎3kq&<fΒϒ0)ZOf~c,AW(cVyK⤛ Z *ǷGpٿruqnU'e4Q ~9DWПf:r0ň0.uy8jLs 9~6#nf>ycɯUzJa>w_uc3UO!ԧ`;d-7Qnk[*{
-k
-ӨUFŒq~
-3so0ۖ;BO S/eW6n88w A
-V}(zs0BsTYS:ضu_^?qriYp?׬#$Lo?y;_H8Xaͯ5DnSYQهVH$4XkM*Mм&qp']1;A@2巾wt|(mʫs/R>lSSѱ&퇞_Kcҏ枩5OR+DͻSѺ .H[ Aٷ%i6Gy5d
-M6l5QU? '035[:-1(n^VjLXeX('ݨSΐ?"f(2Y?i2 CپhEDDue!0$ւ-N<&cU씨BkMpX:#}{zR8WNXf0T{XS 1ȤЏ$f# /v_U8)k%? QӫFo?!ӆEUv+q_<Lx!GcG%A8>`wVkMWbCoí7$HĭoP'%#w09t2-]mm&ɂ8f|Z;t "ߤA-Xo5pMU§H[Q$ھ. !rrRޢZm3~L>JCU`}#Iw[l^4qP l*d!6-?f*Jva~:ɱ[^+Gȗz?R^Þ"}q驚,^ i::p%eF":7=Wl-Y/Nd\]Y=\c5/qF42e~$o԰u b&}EXUQIjI8V֞^ybWD ntyu%t [o]^Л{y o|/կr `nopɋqŘUk9CE
+556 0 obj
+<< /Filter /FlateDecode /Length 6070 >>
+stream
+x]KW8shF"D{"fOZޙZ_7oPU
+!bnP2{^I`>[22JJ
+"ҦB:FzZt}p]F3k7]ty2rDǸa,^L.6@0RP`7I!6/~M erI0BЮB|Ɣ̇x(Z#kA<&b| <]K~\3|3e UJzj!k~?%}!w0+ )" y<w%ZHGݢL^5y 2m4dT R,n:W2N{8"Xb1S&gIZsX9w0Zvc5qE8\w4Ag %
+?/ xk &dH׾krlˏ%,d(V(y}L(pyҼu kvy3$-߂mpV B՗F% /JLi !׆q$W23EJxY
+\cHϮr(?ι99?ܾlz47??oNsU'Fo̬ܺ=i}(;;JXbddu2
+7q~7}9/x>֐c⽍?0..Bq/// i .-\#ŠP]ZxtVARه*,H1zh?jWʝ}(fP(B5IRA' 8C])yo>j])a)$֨kvgFƀ}-ڏڕ2|Kw'o/:a~TrՌۋ9;"
+<HvJ =.%X>Ik*
+[vԼEH57 A!A0 PRD zř6(GeDAQ\i x?.<P D, Uh;Q'aW($(oOeSx[V"sE Abg: وpw
+qs
+3IjBQWkֹ~'9?JI?Pʙ JO@+fQz#ߚ
+ .Τ(}z#Wx;Aʠ-)wGʹs$:C9Rm!ؿ+<t杂 (I t6
+1o3(#ebD/1z?srB0Qv!x3A*'a)|#[ 'LA+RCM[$RY@hTXfDqObŧsc."tfq>_w
+] H嵅`BHxT^àSxz<A*}K:ǮS8u qK+s8;z~l(>]#zoٓ7=B' k5Cu: cd3 exQ٢SS1.)<-OEN5񇕨\<&4jgB&4;}OxGYY?y_qCAnIπzOwu;ӇݘSP'zyAN a* ^ᥙ,yyۭ05:|>>PE4cLrNIo:Zo:5CoG\xWPIU!?nYo|M淳Dw̗vg}3aYt~ԓ>΢oK;2.a^V԰6DO!8ATaZOB|(<5X%OԪIsκ9}WFYl/r3^)։HfX"֎ϧxH٧v:PjɬPD/qI|*t?ٰ,^DW+8vqH'm,r F!o#`
+/a
+ 8yJ~4z3>u9MlxVCh$Q=~1Hވ6=r깖Pڲc= |aq ثI[zQՇāH-e#Vvy)J7WcuWwtlT@|"a*>$Ng3Fboќĸi 6m׾w޺% c/b}=p)+z0v?pYl@B͕-IϙU2\t\{ F*E%ֹPR KD^pj?jWʽ}8o66vPAEvۗZ`"}PQR޵Wh(W1z8R$*mD2;fp;HXX6;^kR3y͔t1,$8ΓVR !ZV~ x/Q<ܨ2+_ khZ|
+Q- ']
+^w/Bpbeex<2X*@s4А'(,qFw<`px_gI(4ţܢxN v>R94$¦ʪ] ?)TolEsz SMC;Oc jg.|'aY>s|9 ODX#X$_7]W 82yH`խOG&ט$~{t@y
+~MvVJ;/3_~ׯ
+YOW2Wj5+֯
+V,IAѹ<y4tB^rTji [RHբ
+ŭ |nXA%
+>pVTJc; 7E=$Ed*sE8/*CLw
+zT47Mz$0my(ޞ$ Wa a)Moݮs6x?hLR>PX>mМ}<dro&O:]֝nƠc\INf9j>eOI7ѤڥwؙX^ƠU{Y髑cAV|\Oֆ!}cox%q4"r$#Ƞ:x9c rwGS
+eX5Ayׁ!xKa9!NٛP?Bv d`/ITVaP ZӠA19wؿC /(@)ѩ(_#`a6@HsUǎYхhK>wޭkufĆ**ktHkNa1 OtJH8`
+es,ek3[m'jfcLq
+ wDsjV -<p@E&"13̯PRl]mm3~b>JCU`}#Iw[l^ mU''|gH]5YJva~:=ΓcJWVⓐ/ΤD=E<d8詚a|lY+\I+(uؕ`K_KiVטkK|AܣQ.LC5k%9mr_E1p@&ﱿ7w@jg7Vc)hT;bZն'S"|Is{>L²g&rhx'| Vs T>#%|ۃsg;h6s
+S^\uOͿ6+\KGF†ͿSa.5 æ9։9}+ Y]zd.frGlPܣh-,>#"]Hט8٣+uCzQ?V _ % [|nΖS\KW2V{W=\1on0r%KZEr0A'\Eycb2ÊW7ϥ^$K܎Бg Aچo-Nv0PI.1X6My⧎E~:U% hu+I5<'R U,r'$.ifA9\/'y$]JLQ'KpR{X\q
+)m-Ӷ#k7.V❟/Zuk.E,"nd{KqH7CMX }_P+$[[mIUx}
endstream
endobj
-554 0 obj
-<< /Type /Page /Contents 555 0 R /Resources 553 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 557 0 R >>
+555 0 obj
+<< /Type /Page /Contents 556 0 R /Resources 554 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R >>
endobj
557 0 obj
-[ 546 0 R ]
-endobj
-546 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 303.589 745.619 315.545 757.574 ]/A << /S /GoTo /D (section.9) >> >>
-endobj
-556 0 obj
-<< /D [ 554 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 555 0 R /XYZ 78.37 808.885 null ] >>
endobj
105 0 obj
-<< /D [ 554 0 R /XYZ 79.37 191.651 null ] >>
+<< /D [ 555 0 R /XYZ 79.37 215.562 null ] >>
endobj
-553 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F16 386 0 R /F55 387 0 R /F19 383 0 R /F69 406 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F71 419 0 R >> /ProcSet [ /PDF /Text ] >>
+554 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F57 389 0 R /F16 386 0 R /F56 388 0 R /F55 387 0 R /F19 383 0 R /F68 406 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F70 419 0 R /F50 396 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-561 0 obj
-<< /Filter /FlateDecode /Length 4775 >>
-stream
-xˎ$>_QGЊ`Y97''6x ؗ~Hսrj)QZ_?=˧_@8FTьP͖Oӧ
-/OOdLJY2X P1¬]aM#"UZTr WJTgiɠKb{3Ћx{yk|~ !Z<d05ZxZ vaUMW.Iщ.F^{–MC-,Y%H5ykc4j,"Ϸ8K:5B% wl]?J x
-/ "H$Ѐthg9Vߵ`ΈS!,XI* A*RU|,:Ft}3uG}6>_}z}1VT:~Wrks쒋0ВU֘~Fmz|̬۔ |kSiŷF&a+#"[z^ۏԕ(7%#{b44zEpSk4·,F9.9L+&L15M
-ku@a`c<9aǹ(-'rQ1A Ʒig W3=|2m*>.pNz4:lɣxAqj@OTV~Τ<y<O{1zYsjxɡ&Ժlf;uV@LswfWkMЏq+%1 m>j(>,XgLL'*bgiKQhaDW$?9kڶgki
-Ӯk&trOPuɠC]cTqj)8W"?$Y"4ހ2 o>͟:rQv
-W[2@o Kdeuucۛt)RQ+؏vn
-MX?>BW~;+<G
-`RMB
-sow w_ʿoQR?~IK@s!1Є n.OHsn`&,Y3Wrgs#+5$MW0#|GFOO|A3}woO5d}2toq&ݶ uv!q )(^w7J$8:!Oh=r8k["`Š!dRA'y[|ŧu4xW xeQ8 UJ@lAfYwZ9kzX[4IՇ<#}:.E:\pS1]DêP7?m534 Ue40ԒZ#ȺiTBUU(a+]*0~?FAf<횻7x"]u"?ȚԼcȵCmlsJ: I8vc!sxt a\b xz=5}w[7'V\nM<##YϤͅ'tk9E!>ȟԼOX)5iy7@37*ͣ|&sSn~'?ySPyֵ:ܾCU&m 4n7"94] qS.U#ʅ$RVA!&>ȤԼg_֬n<eW7{SzlX}\q#bW[>4Ef)-Q֫~3NM?t^=v.XHaa}+ϭ>=fP={{ʇU(56q}agfqu]聱QqVm_>`)):3SpF
-]cžrP.iRa0r%Wu0e!s."(+X'(TqŮä*K_ dQ$]Xӛ&ӼȁJڟX
-o-)uuͻ
-3zM(!ѧ9/TWX/y`bBQKj#ZA^.p1v2aMcRA̵t<g0Ivǒ'//SiKi//S*\_Py׊~E#M Mڣ/G}} ,j7C])9SKCaŪfuZ`SU0`P\ `NuR9wsbj};3u<I{$RUp;~K\
-lQP~x!Uy+C̐P.a.C}rqU 8P̀cXK.!.4S` ɗ5Q
-Aއ6˻P7z
-uR&?*9N,XE4_y3hVe^ jaG ҅Qt\n298
- a2M,^,FA\=7v8]3+ 4}B SET6b"o$ "'(/Es`7 0[:\e17۪o<r)$(
-kS0QnEM㐺zvi6ٌyauxGRGX;>Tx*_Mm0+qwm#^Q ЕMV_WGr(:^db3XI_QU
-مi@D8Oald#l.oM}{|i|u/5}MW' -6vHnq"nfsjtovoQ.ꚣߢy{sw^
-b'*O ;aKTJT_nD]1IDa}ÂW]Z?0!(5/7 gZd.C,
-2X粭6?>PU·}]g4+мSb{(k:,<#v*bX)Эmv JeZUAjJпZkceTQ7-u˝M: )N93R[6Kn)v
+560 0 obj
+<< /Filter /FlateDecode /Length 4876 >>
+stream
+x=ɮ$qR־
+0~,8 6Yc -"i
+kP1e_1f@_=txP={ t[t299=H9IM\Ċڜ*u7A
+m oM)gֶ',L
+:BСt~BHŧ&.!ӅsC/@SҖ,v 4:˿N~)wDwӧ"K5H-j,R/G<Qc
+a LA_k֓Y\ҩno& q$$iy7^7͛Pa:']jSlĥ1 qԔc#+*tY)/}DanR>8?$~ʓv?N,pLt?6k<;[t i7#+tˑԫ%ɛQ}r-EpDl`ϼc.l2R[*5b97̅wpH,tI
+;άFU% 9=ܹ=㙭Ive&αK<|ʶ8R<79jqzK2': 0cZD:5fm'0gx(ҨhpHr~M)M4Me%67S8@T+8&KsUNrd?U*VzJ,
+pЦ2ծj+Xt-2x>s'߲QczhiIq}4ƵA2J1V/
+z@G\0KGxJI<U8F* yZ>@Z<뚻lh"ɻNDyf'ESѨZFԧu}K6d >ȫueD`C`7)· ! [2% aRz+mɫSN͓'rxں%u[imqgVB][xlz"ҧg-2 n8)|L+O,3WAhlT]6-\*uW̻[x8.q}򴌳_wj4=k}|i 9pZ0䣄{G!ni"%ҳ'\ii-ʟRW5ɦChiysjCi_gIp2m_+6n@xPz 0qWY+S'moqW<\%ȕ>-ϭ>- ګg
+A@i_cv6~> FOz~`ꀻ:pw1"#YqB\9%:)3%Y0tF`eh$mi.mdGC{u hgGE)XT9W5gw.&!^#Gm~2R((TՄXN 9MXMʼn<<Ϸ
+w
+0#X7J%]RRI qPEU8,c%zy"a7auaR` |=vcZi4Zqgғ.x+Y
+K(xNnL[L0ˮfDn dS)G;;r9'"BM
+RH'ɒS,4-7U
+QTW|twUZS0B>d[KFaauC-huws\ WpK
+^WHX\d浤xT9SUHW<0[aP+#TbR=2rMKO.i)σ] 򔾰hy~CҗX4kooSZQru~Cҏno/(|jI⸤&$UqmG2e$0FZ,B<L|6̈Eb</cpa9{~" wr@_^avU}} ^WoJ1B16ı]A]ː*";!v5>タDjG~ū \X}~g_b<R0qX[ 4>˿'0Ƒ${_V+ uC(n|=}˞t⅞LJC)ǝKA ze@_gk 9s(^WY\=b/wҁW ӊvW~.x, LC'JK)y1޼JF4ſ'vO69 ڞ-0սڌhCfAqAbV0 u2!\[&eEbnUWe)mxPߡ[b=YPw7̗mO@8DX _tBfr
+"~ԧ,r9AX]^bJq58?5ūtM;q̲B 2~]e0Mj1
+.(^pJQwFeA"_uQ*
endstream
endobj
-560 0 obj
-<< /Type /Page /Contents 561 0 R /Resources 559 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 563 0 R >>
+559 0 obj
+<< /Type /Page /Contents 560 0 R /Resources 558 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 562 0 R >>
endobj
-563 0 obj
-[ 558 0 R ]
+562 0 obj
+[ 553 0 R ]
endobj
-558 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 88.249 105.274 98.706 116.731 ]/A << /S /GoTo /D (section.7) >> >>
+553 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 88.249 110.128 98.706 121.585 ]/A << /S /GoTo /D (section.7) >> >>
endobj
-562 0 obj
-<< /D [ 560 0 R /XYZ 78.37 808.885 null ] >>
+561 0 obj
+<< /D [ 559 0 R /XYZ 78.37 808.885 null ] >>
endobj
-559 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F41 489 0 R /F59 397 0 R /F71 419 0 R >> /ProcSet [ /PDF /Text ] >>
+558 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R /F70 419 0 R /F49 394 0 R /F41 489 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-569 0 obj
-<< /Filter /FlateDecode /Length 4561 >>
+568 0 obj
+<< /Filter /FlateDecode /Length 4562 >>
stream
-x<ˎ$7~
+x<ˎ$7~
޾Ld ]-`ՋjΌK^!E[n,[0Rѹ=u[7w̿HDD#=<LMlYQW,bTqǼ+ .uL鉚3I8N"BZ|+tH n|EO
dB3z(v{ Q#ԉ=a+'(yoG4U(tJZɌV@ k+BNP;:&SLܒRӠ7Q&<P<i"%j(5X+Y9 M_g&!NiRZ:D!yBi4[;JMcͤe څ@ozFmauIw'|.<q1"5FK4?l~A8h$iY1IIv¤bխToGiԤXH:H#)$L:?Q˪8LTP>(_iE=~&0zԻ=DA;F\khB#E38Z;@-&-QLlTYm7h sAMSW@x2Sd6l'BB
aZqϡvC(D}g,vb:dҁ2ƧOJQJF{
-u]Gr"Id:D޺, V7Y JK ʐ_t㖀M:W;V %PQA_[*]7Lp5> ZkIEmQJMZF)&6{jT7qg$WOTaȒg¥ T҄^%Щ'\RA$<q8 Z.:cdy; SLnuii $FDf3F1)Kۙ 4n|ү g?uo/4W2gf4t<Dg`ۿKO͕u{SpuUw|(1L-J")IQf&rDZ]i\{-Ow\v4iL`R/CZ0|~p4L;ecg@8fAF~i[(~eWvD1-gi1_ݞ[=tLwZ{}X
-XtSbKh2VWOiXܻ0D;KQ&٩1ȌBӮv7GlMy VJ:$>3̈́QzXXeBN CcRñ[D3ܶ9z7 Oj= R byH>@
-m.s) fBfʠ@Bw`e%`0X0Xaŗ(1-z||{zoWuh-㦷dY\k"Tf?6
-p
-f=4J=,<%sZB=^@MfEr;s yZF|RIyK̳>K8 > 9,ɑ|nŃBXX}10ou 85C 9 s4Vȫ[Q l DhE3nE}65k )'7O9~VNJ)bl&j6g佞2vZX#Ń& JYÃ&|Єz
-RStS}:L[չ7ǭ% v'kqK6g܆rbp{fՊJޏ|xґT9='
-D}Qf9IUZp YweJt<LڽX45qfQDBV>6ގsgjW긷p&k:D{iVtJKFsUwjPIt
-sNoXb
-q,cNË@)!qs/OtUL_"#;{-2P
-qjؼF7Hv1P㎜WENmj`Ts
-'&OM'&<Fv9 i?j"F}V,>e=lOdKӛmV2%qZa|L/Jd@$^\5Woϸ c'7jϲ=b/O(غTDŴ<+
-Da}RST%gQf)DB}JMp2'sHӉFj/n#I& Bs5[R <Tdb bApoy( 3TS;O;c
-XiL uZ0?Դ™V^i~^Űw<s{dQh$hY8-Oe'-/#JvGGG=)nJb5N}ifv~p*RxgN oi&o9LٮNx!8L9̗˺tn4Fx7aER#| # p#c͍0&ӛe%X‚Ȼ̿4x=(U˪bV {HhL%+PG<.?jbi%G^s "L9;M}XRw!4:>x<R05g-,MaWu%\ՕpXjb-HrD*=O;zy4}__ƻeZɓb 1"HDv6dJU&c&c +Eu0rCRsz@=ăP:nc\\lxxG*u7 /| {$w'qj[:3࡛ش-*΄٤kMY4-*'kZHk;V7/Qy ->|WU/»}AM4ڮ 2,
+u]Gr"Id:D޺, V7Y JK ʐ_t㖀M:W;V %PQA_[*]7Lp5> ZkIEmQJMZF)&6{jT7qg$WOTaȒg¥ T҄^%Щ'\RA$<+avщ(' IghbBwH#O3M 1 B71IY"\av#t{~u'/f8 H |{q97_!6<_zmdϯ+ GޣE`e.gˬ=DajVIHB2#6#jNGjL2ka}
+<~tX(IcrzI~>'ԂA#u88>a"ءM,;#1 j7bKE.# 1h9Nk]~跤e .p$<X\}sypv~\-jr&au2W4i
+2
+'yW)8܏ȷ*M "{b[ՅIZ2,W`Mid?Gh6y0]_g<V⤧{Om0 ^BAFozOޅ&ɍ]2ANAfRv9b%Pw0ոnKܽR'!Dal&42H?7*rO:-"%jAl YgM~R3/^j(Cq-svaWJA)X"I'*R;8Y[@d՝lJ@`(9V'UIGR.am˺שtٸ똮W)fRm@q!+41āZhӦ+}יZbǾk$zW_GF-҅Z@|Zb7cD5DlD)ӜϏ1PQ, LGKfGJ u͞ŦxK{yu0mߋP$㷨'(A^$X6jۣP&RmsKA0=6;U\c#-+#_
+ ,Di޻{C+m7%˪|םH7¼X#<x-\4+O[)
+ Jv9X5v̘s.8ØUb~nWǽG7\s!ڃOW_SE]fV6PJSMĘkvz F-BUGݙGv32VDͦ~ġZh @ H4v"'0qw-۴̈ecj[qq[K#YBh9 EߏT({g<SwJ$ǍxΗ^
+#Xhˢy rgJBƻfU1h t|>cd~|7<ZkK5'bɝ6+́Ȑlz3---,'(a3T9 Jdxz B!Um;fy1,@ 19Sri teKX bbyAjY^6b 6\/0`XV
+3YLsQ 1b!A,tf{"X<m>(.
+CdxaW" g⪹h}},@wn;)%θ Pk{7xDֽ",YQ
+딚/9'4{/o?L!:VjPgG=C襕Ƚ@N<0R{sO7O2/0X+,!җJXѥ
+'KX( B{CI(̦yVPBN(,e
++᪮K,R[5KlEJe%Ry:IŤp2e.J\AJ%41 3W2;5sX ])z1Hr|!qK+bKs=R{Yxc#>iSIĦ}?nQq&&]+hlRϢmQ9YFZݱxm//^ x0ݍmI烶-@-zyxW jy,vmX/O2'
endstream
endobj
-568 0 obj
-<< /Type /Page /Contents 569 0 R /Resources 567 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 571 0 R >>
+567 0 obj
+<< /Type /Page /Contents 568 0 R /Resources 566 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 570 0 R >>
endobj
-571 0 obj
-[ 564 0 R 565 0 R ]
+570 0 obj
+[ 563 0 R 564 0 R ]
endobj
-564 0 obj
+563 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 433.094 505.9 440.068 517.855 ]/A << /S /GoTo /D (section.2) >> >>
endobj
-565 0 obj
+564 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.881 324.41 261.836 335.25 ]/A << /S /GoTo /D (subsection.14.5) >> >>
endobj
-570 0 obj
-<< /D [ 568 0 R /XYZ 78.37 808.885 null ] >>
+569 0 obj
+<< /D [ 567 0 R /XYZ 78.37 808.885 null ] >>
endobj
109 0 obj
-<< /D [ 568 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 567 0 R /XYZ 79.37 771.024 null ] >>
endobj
113 0 obj
-<< /D [ 568 0 R /XYZ 79.37 662.735 null ] >>
+<< /D [ 567 0 R /XYZ 79.37 662.735 null ] >>
endobj
117 0 obj
-<< /D [ 568 0 R /XYZ 79.37 297.496 null ] >>
+<< /D [ 567 0 R /XYZ 79.37 297.496 null ] >>
endobj
121 0 obj
-<< /D [ 568 0 R /XYZ 79.37 257.653 null ] >>
+<< /D [ 567 0 R /XYZ 79.37 257.653 null ] >>
endobj
-567 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F65 391 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+566 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F64 391 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-575 0 obj
+574 0 obj
<< /Filter /FlateDecode /Length 4400 >>
stream
x]K W1> $RTzrNؕʧ
@@ -1789,33 +1783,35 @@ Zb4ɓ0b` :[־.m}(.: *[Ke *@k\g
[Z{7,rxS& ѩ(#,6<e
|7m(?8ѝ_ 3 d7@"y0Z u#T, p+^(ʘ>"_U:}EH|]ߣy3 [c!{S'Wbk76s!ș:ۂ͹BG:z#ƭ?̇(Qbʣ|y :eyrhHG=g!~rT@G>U~@DO_4t4Rcy2ۂ0ħ;8f9 P߾ؔh{&! SZ2@ȯ->
-N^g9*Cql29rX[rj{ f@2b2!]G3xe,z-eH(rL|$4|$^u G+|)&\E7.H;#ĎQ.ǑukƆ)+
-pevwԊq), X7<'# ?۝@rġ?vvA3Y^-置zU_oњ lӍI}`Jp B97˔p}:B &C԰
-QC "@)c_J:G[/=w>燋pB"_q2@Tߗ&.y5DK${u3hwu ehNmn8!o%vk<
+pevwԊq), X7<'# ?۝@rġ?vvA3Y^-置zU_oњ m)1)E>0 NX%@eJTs
+ W!j،~
+&k kyM:*%lүKyݙGq^'ɻgd.;e-aA&p5ZM?n˯jBܛfd+ZzU2U/.a%ʙ?St$w
+Vr:I|)c
endstream
endobj
-574 0 obj
-<< /Type /Page /Contents 575 0 R /Resources 573 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 577 0 R >>
+573 0 obj
+<< /Type /Page /Contents 574 0 R /Resources 572 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 576 0 R >>
endobj
-577 0 obj
-[ 566 0 R 572 0 R ]
+576 0 obj
+[ 565 0 R 571 0 R ]
endobj
-566 0 obj
+565 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 243.425 745.619 255.38 757.574 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-572 0 obj
+571 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 396.68 333.295 403.654 345.25 ]/A << /S /GoTo /D (section.4) >> >>
endobj
-576 0 obj
-<< /D [ 574 0 R /XYZ 78.37 808.885 null ] >>
+575 0 obj
+<< /D [ 573 0 R /XYZ 78.37 808.885 null ] >>
endobj
125 0 obj
-<< /D [ 574 0 R /XYZ 79.37 185.953 null ] >>
+<< /D [ 573 0 R /XYZ 79.37 185.953 null ] >>
endobj
-573 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F57 389 0 R /F56 388 0 R /F25 379 0 R /F16 386 0 R /F22 408 0 R /F58 390 0 R /F19 383 0 R /F69 406 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+572 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F57 389 0 R /F56 388 0 R /F25 379 0 R /F16 386 0 R /F22 408 0 R /F58 390 0 R /F19 383 0 R /F68 406 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-580 0 obj
-<< /Filter /FlateDecode /Length 4098 >>
+579 0 obj
+<< /Filter /FlateDecode /Length 4096 >>
stream
xɎ%_QGϡeځFyii>9Hb$~H[-I=^=HoO߾},7`wجgnƍؾ~~y83OO8}\
3xQ( <_ f[pL]nxn,ch{C
@@ -1827,145 +1823,139 @@ xɎ%_QGϡeځFyii>9Hb$~H[-I=^=HoO߾},7`
(j6$'4SP}|k"28!Hp!4{DMy$PwD+ @Yj
ze΍P($U'FH8B_ 5ΆcGU9ÜR+Ѩnm[.Zg)뫥?qCR3nJ1=[ZΔ91[ \ou"7ґ%ԫ3%'xsU^8)٤k8sh@fe4 G g>L}I}I:gD֤Kv@^O9?1|N&D~H<ϰ VA m:)RiطF7biluqIJfO%;diPgJ|Bs[dήHja+ jW=Ǯ]LN/ QoE{Og9|h$9oS~vdžh<;{ve+ bm{Ǭ'Y -}ٟG}G`ƿo߶wfW,-ϣF~> mNX~ahPt)آʶu9ԌuA/,e'
p_FN 7_f5rH:VKE=mW9F[dO>Jr)W {@^ZMp3QGPC͢ ],i,pcG֊iD,MaWɹdڙ˷{qI 1/7
-}?X(*k!Z>E֡36II;5i|Y]"ee?<S.i^Svav5yhK*x3Jb41ܱt]a`ʥ$}0$.O0!}^ꀉGfM$+S[CWIʚ i: ,@>1VJ:Lv)~Wu4@YT5֩ ubf7>C)ze91*ڽk t:r\c!+(vEf$:ٔJye]h,qM֪I?ojnjvzuw 3lura)vURv, ZJ65IoUW6:oc%1F3+^PD:^O]6NwzC9vkV2?0B=rW{kjy*Ҍ*"7SÕZ^| P226K^J^?g ECd5V]FNX[2Ta+ :OkK *VўWwr},ܻ bڸ+KjC(uzֺξ`';i|=E 7
-bP+}/&aVe' n򥘫iGqbuZa.-N8
-L= V_m_"cZq 2h
-7(ɺc|Mcz]~:x;ּ/.bjɳl 5A=d EQknCͼ|?#MiaD1tm2zpy^ˣ {0쾻(/s]f
-ۣƗ2;ަӟ?IK"Qtz4dC j|o1!6 iCp)@`lN\FS=\19zZ5
+}?X(*θM5Ou̯MwRRNMZ;)_4qV}G٥0<O% aڦT]aX]MR{J#ƌ }L0w,9]sx:rim>Ʌ`h7
+J]㴽u=N6wr^`KG\rS6pҏ
+m4#pz~lcLpWﺭҴB7uY UǶQV U†R騊U'՝a n->9X#6|RZ#6J]5w:=l2؉
+rK F&e C[9#|)*vڅQg<XmX6KS.ΥŇk9@׻?\0K%Fׂ+ zm8~|e
+|$o
+q?/hLejW뷥ᄤV94%fڦf ,H=EZ\Ek3DdA\DBLveC>]8d8F}lWLhg~t]ʨXm$'w:n}o<y 3*6%xCDS3$ǔzm?3'wxOH'`\5SL;WÅHP{3=OD0Fd{oҝi6}GNǕ>n㭼@Χ6y8ҙ(#FJ()Q3ծݿI7HЋpv ?/+X27XjX}A>|Pi-eV/X) jrx$5Uuv,[8\ժi&-_s5 VGzjXI05.Ўw7M0{!_.6pHJzRHPRf uoj
+Ϫ~~7&et$%Ah̸뎷OtRH415?D=:4[̯mH >HG'.\-/9(TG"WuL΁
endstream
endobj
-579 0 obj
-<< /Type /Page /Contents 580 0 R /Resources 578 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R >>
+578 0 obj
+<< /Type /Page /Contents 579 0 R /Resources 577 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R >>
endobj
-581 0 obj
-<< /D [ 579 0 R /XYZ 78.37 808.885 null ] >>
+580 0 obj
+<< /D [ 578 0 R /XYZ 78.37 808.885 null ] >>
endobj
129 0 obj
-<< /D [ 579 0 R /XYZ 79.37 432.884 null ] >>
+<< /D [ 578 0 R /XYZ 79.37 432.884 null ] >>
endobj
-578 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F58 390 0 R /F16 386 0 R /F69 406 0 R /F57 389 0 R /F22 408 0 R /F65 391 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F71 419 0 R >> /ProcSet [ /PDF /Text ] >>
+577 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F58 390 0 R /F16 386 0 R /F68 406 0 R /F57 389 0 R /F22 408 0 R /F64 391 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F70 419 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-589 0 obj
-<< /Filter /FlateDecode /Length 6105 >>
+588 0 obj
+<< /Filter /FlateDecode /Length 6107 >>
stream
x]I%7rxGp_F]j/f`e`N.W4e hUU`|_ &S=?~P#/9?탆C?b^l|Ġ_Q(|zZkA2JQR{'ojvf:jY Sx
!`< TG;$}J"$fH7B¥% \`4"7E|sY>s\b>u7.l7.P w dʍ8ٴ]kmkHćvKpqOց?Y~)]It>gÈfv<Йɝv(zdP5L@WY4۔*uV]rʐY|3Z{{F\BIUeTR,R aPVJzS)G}*/lpgYkf`GG(岘GJ/ž?"\.TNђcd[ۺ02ﶉƮ1oM"o zm!e+P=>MWKr'^̸'.+.L/YjlpRSbnDhk5)6@-x6 apW`<9 UvQ26=_DeCy}EJzjƚ54s-6v7!pT[z? 8XP7)`t.@wI]I'M[f߆'T0;Ϩh?ɭt@WW]x}^Y] ߨ@\!9{jV \Fc2M
-OfB>v<%U0iu ·Ͷ9Y\ߴ]~eFzؔ KPnS0k0R̰q[0C9m˹ŇM>[Wb}f|!l3u )rϽq ä.Oq$bF^RFk~YhWG,8C9R<z֫M ֖LgcF)լQ\h+1]xw?=iw| Ԫ<-+UO>§9 pRP"G#d򢃞e44'xs/3/Υbn7n'vݫ!`('z\jI2q#P"tv '&b4ӄ~lTI,ƃ6S0*vCa8I]
+OfB>v<%U0iu ·Ͷ9Y\ߴ]~eFzؔ KPnS0k0R̰q[0C9m˹ŇM>[Wb}f|!l3u )rϽq ä.Oq$bF^RFk~YhWG,8C9R<z֫M ֖LgcF)լQ\h+1]xw?=iw| Ԫ<-+UO>§9 pRP"G#d򢃞e44'xs/3/Υbn7n'vݫ!`('z\jI2q#P"tv '&b4ӄ~lTI,ƃ6S0*vCa8I]
5^mU
a1J<cȐ1(RkZ:gڬPTO}$E~&}Vp!*mDͺVxW0c'lL|J5-)$#gżS^3EyR,%dVw@DO RG h㮴(-3-wX0~T_ʪj8w
-gн~~ E"46~q܁ڄّnY$tj07묁beNW+!?SYܰ͟N-& }qyFKa>b(X{FD܌p;Y m[vZ:Az5&;>56霤>=/|֔`vN/<vMY_9D~٭q`KC[qMoaإz-urW1;cw3':s9y7T-бeU3'KOp3U#wqEd ?_۸0/9Ώ᮶^.|>9-q׶q}n&jZ1;uDX<nMٸeTty*v}qO*T-c9Wsyg䒓.)m<߸5<#r|;Ȉ=y:v{FqpP^|&fnmT77
-}
-Am=Y
-wk AAd9;ܿ|X;4 wNysJU +E&KM+i?'uMMcGEn<oӰZ ;VyI*p<'^:Ǔd8~Gr֓}%߳/|╓]<n/+!eFߞ
-4#/VQ6/)\*ea/$^&'UI!k$VCK.u}
-UCgp %|5fI-캁'8c<EӠ (öGg*S?. b5†&+n6Y('B&a
-<h H(vE& jAe=\ѓ!ESH0lEՑ t7Ch$F(06B]EAWB(MĀL9$Hͨ0KBVi
-[IFp[H6$UY`8#-[m&i\"H좉"q9aCP8P9WKlbH2@8c^S$cu1LUiYS/Rje`Afg9L- 0!LQNeBzNFx
-rJ."e $SOj,D&)Ăv0`c"=uXc@ R9e4#zLJz@3Y-?BKFH bI;"]G%h"Ѱ'B)#t:
- d>!9&'@Јl&$;TJ5[YaFlMay+ tAu Qk_KR lΔqvEAybuڗ"A7n8;.~P! kB$RDC26;0CI=Vh,rk.OI;XIB,aV1.Q/rF7BhCV%7)J-r#
-ʗC9>`Oz(tj ]#9fXa($̍"ŐсN*4۹F pv_h rd~FXW*&# `GHc@9Ȋ[EzQ&"[ʚ}i"K@Tߤ! D9!bzasەR`N4*(E+D4Фɲ\Ή3zTLG=# GH c@9Ȋ`aYlHy_р{%HyƗUWeKbjV2CI5VXq&U!KLAIwR}
-37j]eRw6G""2Ǡ݁r 4‹L+mW2-3ݔʡ !Jv@┕}JH!X&%3T$hm3#
-JQNݕ"oJ<" 3Jrh2y4G"A"2Ǩ݁r 4‹LPjeN% ʲJntJezʁQn*E!E<dPsvP*nn#
-"YLz_xf Gz@M?*f͑RC5;CVxa8D&ђZe)Z{f_CC^E˒p,QU"˰ -bolV?jQ&kR)0,JmW̰{=7ŤĚSZd@#.6'vSj2JF>#%T ?VwU5[*b#.mɔpTd82nWTa](bojM+RiD))EXlsSTehr |.`'J3.,%|&U[u*MlJd,vU%N4>#+T GXJ,d L$D,Tehr}.n'Vz'e\X>JXNTaI:u4*)F\lsU(
-hq|.uGJ.'|,G@XJ,D K$ܸ䉽 qODVbjjG(b&
-bBFզ`Jȑ,,`frAIbs^4,y>JUװx"]1²SZr KQUI TI1"c
-pCZF;~f'^RW>]'bxBSx5)+n5\
-)OKo+ۧTtRz3ptp
+gн~~ E"46~q܁ڄّnY$tj07묁beNW+!?SYܰ͟N-f  ʍЗŒ}P"nݍ0"vڦ6.%;uԻ>6ykL7v|j(m ܁٧9I}z<_;TO)T_xśnWr[ \MwgᇶtðKF[6i5cv<T=jMgNt:s>nZc
+g>OҗZ.:gs-G>⮋܉pܟq)a_s'K;]m\|s[>9m) p7Ljմ&bvꈰxݚqf9[TeGE-
+TƷSU[=re%']SpgK{ywu;%ٿqkzyF>Mv{#uPGJ8)7࠼$r L$0ڨ>50nn@.̸~ά-q78.đ3uΞ0K
+SFf<ټ(ds4L7Hd3vlnPK$+7bm7Ԟ71և90v:n2KѨv27we<n^# G9v>n7jJ_\BKBo<YxKB)kcײYf}e5;l32vm{?c~26#e=Geu;l3vmhEҺKB[AA+pA$jxo.>8Cȁ9{r*w~7w h甪V *-MVnOJ*r;*bƎܦyަa}.vBUyOt:'pMgK 'Kg_+'6Q y,_JW~B8<y.GW= A=hFH/_hm*ߝ_RVT0:/ʔ^HK:MO[BI 4id]6C(, J .cjȓZ4uOjq*0xA&Qm4T l~ze]2j -M`WlPN 0L
+#S  ?:,GCI%!&=ݐ)IԢL^B#_c5^N[ Dd"I %$ŲXflLkt h`4@*Gcқ,fd2BI !pbYOh2 %PGt
+j- !>Y@ $n -t &0́2=dG rZ!LBv2D?5'$$d6JBfK6+a2^Ӓ)_4,opEn/H.q5!jkIj\=͙r3]<nc@c3N(8(@NR`4~-#5pE#<ԯ*daM5BhCff=G
+-6XNt=iG"I_%j1>4S0TsFH ZcԪ#E [[EnQACrt(I@N͠Aq$!,둓2 BC25:pCIE€V`;7Ҩ`UK 0O#lOhkJŤ{ģ9!)!s!YQ@s+H0D|KY/x@bc JԂ!=c`4'DLv<lPsvP* 4F@w0Y9~Cy[`gs$)!s!YQ,R#L2 >m)K;yDIr:],{15R9BLJf;F
++yؤ
+/#GD0ZR,Es{h+}YreC5:*SZd=EmJPG:dM*5F4=!X~~&XsJ,b&>5>nJMFȧ"u]1BPnזf@%S,bE>-nꀲ[@>'X튙* TTQ)U{E*-H2%1|nz` MD Vtbƅ%ujNI \I1"c
+V$eYR$1 Zd G*&7
+Vb& KRI֙#YT措ML5d,vU%N4>+~^qǭO7@B}g֩M =$N^ЎRG{2_0C#nb+Y`6*m.AF~Kyy¤:k4/f<kmE_pz[JoR!mh0gW5[oWI ز׏8_i>Un_ۡbٹ3SNO |R8~eCyh
+cî|P98<%=r9VT߀Mn^hǏxċ]>rG6BD Oh
+=]3Eō&5KAW5iM2tttjNJonbn 0Fy_9-
endstream
endobj
-588 0 obj
-<< /Type /Page /Contents 589 0 R /Resources 587 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 591 0 R >>
+587 0 obj
+<< /Type /Page /Contents 588 0 R /Resources 586 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 590 0 R >>
endobj
-591 0 obj
-[ 582 0 R 583 0 R 584 0 R 585 0 R ]
+590 0 obj
+[ 581 0 R 582 0 R 583 0 R 584 0 R ]
endobj
-582 0 obj
+581 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 222.812 543.437 234.767 554.386 ]/A << /S /GoTo /D (subsubsection.15.1.2) >> >>
endobj
-583 0 obj
+582 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.658 507.571 257.383 518.411 ]/A << /S /GoTo /D (subsection.8.2) >> >>
endobj
-584 0 obj
+583 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 273.104 507.571 285.059 518.411 ]/A << /S /GoTo /D (subsection.8.2) >> >>
endobj
-585 0 obj
+584 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 350.065 151.966 362.02 162.806 ]/A << /S /GoTo /D (section.10) >> >>
endobj
-590 0 obj
-<< /D [ 588 0 R /XYZ 78.37 808.885 null ] >>
+589 0 obj
+<< /D [ 587 0 R /XYZ 78.37 808.885 null ] >>
endobj
133 0 obj
-<< /D [ 588 0 R /XYZ 79.37 432.717 null ] >>
+<< /D [ 587 0 R /XYZ 79.37 432.717 null ] >>
endobj
-587 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F69 406 0 R /F16 386 0 R /F25 379 0 R /F19 383 0 R /F17 384 0 R >> /ProcSet [ /PDF /Text ] >>
+586 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F68 406 0 R /F16 386 0 R /F25 379 0 R /F19 383 0 R /F17 384 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-598 0 obj
-<< /Filter /FlateDecode /Length 6721 >>
-stream
-x]K$Gnϯtt; <V "n=kH2+QY{z`_`dvq|[o}X?˫ hXofVؔn)e/?}\?=\a5uuv]˧F=|6 R}h+G.6*|ziϐ"JKQ9&iRmhdQ a'7՟qdA!Mn,e\B0ߦcXE2u?=,D{ mXj慈|޹ŭsi܊
-2ʨdz6zj:l/Y#)=XѰgvgy97)fXs|KI.9]b`di_|%[`-
-&x5wXQa0a7?4&)h j`8ڔWY* nnZ,-؂+661yvUs.;D}=xb+V%T:H]{|Ѵ^יx
-fꖶďx@_9/-z FCv|u"Jqc<m.2@$Oa,y!N-&xX^\Ҍ'][$jcN'׶g;6+@`yESv3ƸR~q⼙gGطTC΂z(,n[[!yv8Ny hw}Ww,朼Wؾq ;|cUWGBwQa'XW ǻdpYw(o!#ӱViEm
-#^
-U 8Y55/pBzGnAJv~b`{!|QeRgw!-S#j@++t䏜V aY㋎\u~xc-٘7檸bR6mt$~{rR.R7,|.Kcw{zSG
-FiSM}y8".M|Yء ݻ'Tk dSZR͞ ב(N KvB<]G=󾡊 n_8o6xE^WQ7hA&Y 2zս,Hk{ f#SZe!+S]>TŤ wZ/7t]/;p$s}($ XWyE \u&\e;HJޟߗ#yMv][?ϩV]nk\;>$m9 <Tg3v/fU^_KuKݕݍ}=t>;"n|oo\ZS#l||x=\
-ԕ?PH=׷z>ϙ|lPypo`[ ?ܙ7>=x7.HnK)= |~-CcyLc8@տ6oh!ܜ K_>z5;J}ۇn|lnO&(%:Tash?r|4}!B=5?n܀qv_nF^Wa*4
-ԝiK-nsמ AoXh[>o? q\h=R{3ؑÿ8hw#6KgM{sMrtlFs;aiNA&,݂斘̿z.CֹA,{(Yg!bz-`0|7@#W!C0sknAUc0gx
-Ya|`z ӟ
-aB..WI]Y=y!n_CY~ "ևe{P3ܭ}ǖpOgGgˏp>A$uN wOP<շZk;hzY[4ȷhX[4hdMg._tPcV85>-T"<>
-qcj"I#
-6fN
-9Rr4TZk/X)#|F9
-ILG!QhFP/ mJ1[mNglDd"L$IH i=ɠB8HUC!6
-%PqPسYfa0/>Hud"P
-dIeN Ip!$H[6)?urvI\ňPăFqMi RU=B1BEI1IDpzjIcPa(nu&e2~jO$S /ůo0a3$c̨!E#h c{iV '07ۊAuŚ"RoQB^H!Y?. TJwA"ZB^UC4l؊ӌ K @W1I>,(ID#HJJLH;7LBYǶ/"YQ#F//1rC%f8ߐF $mY&3
-Pl+#d1.>h
-P 0bZ+j\hp= .DLH04c>aJ- .[#Ġ_`z7%X
-RO2a,NۊZڧ!~32^uu=W*X|}v=jGX$qZU1#&C(R"P9_dO! KA?|}kxF $Y*#Xa" WVh P SS}~]t#"aD48D#>i֐aa @-JмֱͮNYȵOժЉL(- $d$X6s@"e?S5Փ]SxUAV k*9K/*RPdZ]\&E&8ީّI* B[rB2ZD
-
-XQq9{ *%Jc0!
-#`;obwM쐎Z,2~
-7~Eu[S_l-~n_iHjtLSkm`~cy/i$N ҩ ~Qu8ELE5q\}-U+5-jlntyt-MɋU;l23o.&lx% Xo[LmC0"'\usH|Hcl"L9y/`s!moXh -kkk{ ?o|-um}V֡=kke⫑h‘IԙkO˭Gֽ2`mjzѼseiuj[%Y;Jr.N3u{<o^4?a(Xi5n=c.e^ݦ?EHek_ۿ?5NC;nۃtvz ߊfeNC
-g$_/M27ձoa2 ܰ}^u}nlm<KK[
-PfW2q䴎6.){!ʕǻ.f`
-ncQuADSYR:x;޻6hI<qMvjGImJ[ n7x_)#xY~tk?[~ܻi}+_h9
+597 0 obj
+<< /Filter /FlateDecode /Length 6652 >>
+stream
+x]I%7rxGPi hKE `Ȑ xd@swp̽9H]/*Hz>wݿjK&ǧ_izVn11>bЋ
+ǟ+݇'ZF)gwoP.5J0P3PsQ~^"}xrtiJQƵ9*R;kdQ'ǕCTA>Mc elD0}XA26?‡p/Ny!ꣶYXZ>)TQF%K+Wae\^
+8@NmG٩Y2(ivQ}٨ƾmrn}Dohۚ9>;O88];0{q!5FAL?XQ񺏣-v1`T)b83 ♉p5iLfԹo?Kn4ڶmv+k$$8tgXPk5UJ,YGӪzO1'}g,ζc
+="6 g]OzIpxf=>CEWS}2SW\7檔qvu(՞n6OKpnk~{,Jׇ$
+N6"႓7%8[)8/·QN}zXW[_-hqpF}֐; rWq]EVOrON$Ymh
+̘QM㔽蝒ޭnzͫy#7j_ \O`;=nmE7J>kT}4 7q=` $V9NO\F(l쒽$~&].+W^#tYԶGqe%YVi
+|
+dx8
+~ z~Vݷ쌛/ !Fjovi@'0HiKQ/N[υ5I]
+?
+iO{l4X`-]_
+̪v3bf0g첐Ѵ&T*hhE?5 4ÍYYF? ]Z67扮LJ/ʃ[b{:,(aǺp5Ju;QJ<J>_mY"7(5 vv%(\njԀy? J] c 0J GGs(Ν4P=Z.?u
+{ꒅ>_KY㾃Xw#bg.y%_ o`.y%//]کK4L5v7LKOί牾;a] Evh+]Ga(; E}Md(cFh<hCua]߈xu/>}ewX_n[c]ߊkuc]-
+sKP/Fg+wsyXN_v<v7l_{`oXjZ<YwbEY6|fEYq~BbC%픾xBu >D}?SX|F$ Cx$;)Ի|dj=}(#|N2V,͙ 6@ P6/k*YAq_ils=Y9N"&DSJvIe3̎4lI ǓQ%ENpZ@pR0h ?l4{)OZ!(;e64f-x=ȴ#^ꇤ;CRvD/G‰`7䆍HV4((Hi\ÞY+|rtҴc$c0R\#YG`:D xͰa4#06e p3~%0@SNr6DYͣHչGtV^#<, F$+C'WmQB5RA
+ ": *_jJ94&+Hg 4~9.bP3!8vk8ui
+jtfBɛ$Ap&=(O4 dBIh^J2[mNghDd"L$IHi-ȠB8U]!6 Kg&R'}*8(F&Ԙ$IL!Pd0/ L߰T_\x ShEUG&ZttԃJ8Sp<
+aDH"ATUbBInmpHql*W}1Ɋ )k0x*E~4HL al+:`B10 Ͷ"0B&abq
+Fa<#JTV"%2!K* BkvBk2ZED
+n~*GXY[M+EJC5]B$/fP EU؃WU VdW|!'XJ&dE<)98[>W#&T1aTJ
+FÊ${t
+Zӗղȕ?n1$v4A=:ϵ_Ajey.
+dҴ/]2frv;R;TeB;{gJ
endstream
endobj
-597 0 obj
-<< /Type /Page /Contents 598 0 R /Resources 596 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 600 0 R >>
+596 0 obj
+<< /Type /Page /Contents 597 0 R /Resources 595 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 599 0 R >>
endobj
-600 0 obj
-[ 592 0 R 593 0 R 594 0 R 586 0 R ]
+599 0 obj
+[ 591 0 R 592 0 R 593 0 R 585 0 R ]
+endobj
+591 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 297.669 665.918 309.624 677.873 ]/A << /S /GoTo /D (subsection.14.8) >> >>
endobj
592 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 297.669 666.582 309.624 678.537 ]/A << /S /GoTo /D (subsection.14.8) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 156.581 210.286 168.536 222.241 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
593 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 156.581 182.984 168.536 194.94 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
-endobj
-594 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 378.058 119.666 390.013 131.622 ]/A << /S /GoTo /D (section.8) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 378.058 146.525 390.013 158.481 ]/A << /S /GoTo /D (section.8) >> >>
endobj
-586 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 297.743 67.03 308.2 78.488 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+585 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 297.743 93.889 308.2 105.346 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-599 0 obj
-<< /D [ 597 0 R /XYZ 78.37 808.885 null ] >>
+598 0 obj
+<< /D [ 596 0 R /XYZ 78.37 808.885 null ] >>
endobj
-596 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F66 392 0 R /F65 391 0 R /F25 379 0 R /F19 383 0 R /F17 384 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+595 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F65 392 0 R /F64 391 0 R /F25 379 0 R /F19 383 0 R /F17 384 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-605 0 obj
-<< /Filter /FlateDecode /Length 11691 >>
+604 0 obj
+<< /Filter /FlateDecode /Length 11692 >>
stream
x}M$EC8@Sܴ`Za{
j*_=ѝ?|/w؎sbӭd߾ߗO׋KYC;}odB?~c;iؾӿ+[g޻5w_ldU}dvC
?rQfrQ{bMPzKdRG_>ROѕJ#W^#WrmZn>HoRSSfk7x챜*L<6g)*
-+øY-H/=z $Qe>I]ܵ)q(Q~ά*8kH{ F_EAꋩc^u!-)jp6sqTB[3~1[bf>u쇷q%ޕmZ'ۘ/~+!,c?~7b?<n-z^xeH*J[4r_NmaO–c\=4)Z1-hE Kr#iRx$rF)|bg9PnJ^zsh
-e? I5lW}x V;w-bb=b_6ZrXlG->`]tYwuc%H`d8<FW=l5/{ӿ4aj`ݼn[aʲԢu$Ա>,pU>w/cs!X!m)i0xtQ+^==.ݹU?V~^\>ufGWhx*8?R'ځvБ8%sң
++øY-H/=z $Qe>I]ܵ)q(Q~ά*8kH{ F_EAꋩc^u!-)jp6sqTB[3~1[bf>u쇷q%ޕmZ'ۘ/~+!,c?~7b?<n-z^xeH*J[4r_NmaO–c\=4)Z1-hE Kr#iRx$rF)|zsq 1{[(%ar9 m2Uކ$ݚW>dQC~ֻ jlZ/-P9, #͖qîXܬWKw|;ߺޱ _^yqA#Cū]Nq_[C5on^[GM7-S°FCeYj:KvX\_VR*OԱ_,쐶4|TsT\ުwW_+?S/y.:3ã+4<tQ QyRşmyL Sog)yXI;H9Q`
+3iͭQd,zn?piK]0_#5x
+bC3)w/*-+hw fS2`KE~Y=A0w9y<U LOhZ޴[4APu;(bq ~P9aȡe- ]^~#U#t7ޭzu1u;0a<7 b~wjyW
+/[uîDw2]bC >'OD1~Uk܊>ip݋S9g]UG.s#L^z-'N^e6Lm<ٕGZ| ';l=Js' ffq|"#>}td*\lP0\|yB~Q YfdirUt`7*׌Ы=[ kR`pbxxq?;>)$ү=.<~*H콮^VUy uJx%~D7rDS\)Q/~<|J/Wu'dJ#36c
gGF~P6QYq=p;_~gݏyUoivg_՟hO(oOM/|vV+}=s>S.SH7z#>Ar25Bά(rw$PMT؄FHYyh3xlB}KN;^1~ɏUG/ڏzw5QS u}nfvTw{:_fn#l=(%Yhb( }1qY;0nBoV.RAJJҺbMDg˵$\*a 4W^1R]qO5W+R
YfgjETun/ri^(WGbtoh V]bLe>VvH@(ڼ|uNԱV$
bZRlVr~},OUFXLX??P2V+<7@4OR\(?5{'%H6zIolkbFY
@@ -2012,35 +2002,35 @@ sğ$?/i(TgA팶4sFw
1
_'$U?-MӁ޳RϦ}.3
TCcc"BJr~$/#T1`e.:Y`8Șur2xKN$Sٴ<P'@'TV8a!Qy"$`QjLdN:@KCL'TZ6ʤ101og˔eRz3X4fƿ'ub:}]ewݽc'2/wي϶WsOwZ6c{S<^w{]TY{!2%O9ǻ+?ޝ<@LQg7nfM
-4R~n핦k V8[;h<`{>Ij_ﳇ5;kÛp; CjRf\goQwyvr/cf߽MuaD9=|[J8&_CS#=Uz ;s1=.;L*R#DuRw|t#oѾI-*+yje@Od[\_?x|Ƹ:zFޝdRn܋S͌__K-J]թte]{'HӰQ:Ow6&n4lRX4J
+4R~n핦k V8[;h<`{>Ij_ﳇ5;kÛp; CjRf\goQwyvr/cf߽MuaD9=|[J8&_CS#=Uz ;s1=.;L*R#DuRw|t#oѾI-*+yje@Od[\_?x|Ƹ:zFޝdRn܋S͌__K-J]թte]{'HӰQ:Ow6&n4lRXXjJ
endstream
endobj
-604 0 obj
-<< /Type /Page /Contents 605 0 R /Resources 603 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 608 0 R >>
+603 0 obj
+<< /Type /Page /Contents 604 0 R /Resources 602 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 607 0 R >>
endobj
-608 0 obj
-[ 595 0 R 601 0 R 602 0 R ]
+607 0 obj
+[ 594 0 R 600 0 R 601 0 R ]
endobj
-595 0 obj
+594 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 158.992 722.266 170.947 733.106 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-601 0 obj
+600 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 337.833 111.814 348.29 123.493 ]/A << /S /GoTo /D (subsection.17.2) >> >>
endobj
-602 0 obj
+601 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 252.903 92.662 263.36 104.119 ]/A << /S /GoTo /D (subsection.10.5) >> >>
endobj
-606 0 obj
-<< /D [ 604 0 R /XYZ 78.37 808.885 null ] >>
+605 0 obj
+<< /D [ 603 0 R /XYZ 78.37 808.885 null ] >>
endobj
137 0 obj
-<< /D [ 604 0 R /XYZ 79.37 695.352 null ] >>
+<< /D [ 603 0 R /XYZ 79.37 695.352 null ] >>
endobj
-603 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F69 406 0 R /F55 387 0 R /F58 390 0 R /F25 379 0 R /F19 383 0 R /F17 384 0 R /F20 380 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R /F79 607 0 R >> /ProcSet [ /PDF /Text ] >>
+602 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F68 406 0 R /F55 387 0 R /F58 390 0 R /F25 379 0 R /F19 383 0 R /F17 384 0 R /F20 380 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R /F79 606 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-612 0 obj
-<< /Filter /FlateDecode /Length 11908 >>
+611 0 obj
+<< /Filter /FlateDecode /Length 11914 >>
stream
x}ϓ%7n]ECɍ^ELOO;>)<7Oژ=_ I
_SsOԎɍ{m[>֐/:><RgT۳}kn->τ<٧[eysӃow螪Ĵ\J6h[sᮊ/[ 龊R CUjT^~雿rA#Vh57^^^r{"O,|WS~ml?Ko^J/%-6oE]O e6پs }k{{
@@ -2066,7 +2056,7 @@ C(VkI1Pq8R>0
MG
ܚFI0`pAolȊZ*d˶BJ̪}MH2b2ڞX27Muc"D
[h$ʐYR&
-"0id|DE̅\K!}@dKaHv4fվ&QT1AnmO$jp K`1qiy{.ι@'9-e\4K:JL%K)W
+"0id|DE̅\K!}@dKaHv4fվ&QT1AnmO$jp K`1qi{.ι@'9-e\4K:JL%K)W
%%UzQ\W^Du7N/o$k.ViIJrAA!>wխclխHO G.Pu}BFU ri/YXkťfRy.|vWL^xF{/7 4~F}odr^MHnt&9.Tv{'!4t۷7^ٿ|g7o۟2Ll}kh=)$xv]}=0ftvQ
hAN
vb{ 'f(>[ҠXRP^ :)@Q ~q YI$MlܟT.ܘ4n$;@qSxQ~㨴k *s5s}\kں;2L~9ԣbIw>927N6KUi-'Ff|vcd#sI\r8F㍑roK'ҌR~o(ydmY2 s~t<N҇r}VhרL
@@ -2089,35 +2079,34 @@ B]P63)@dT9Em"= *hn+ 8[]
 7N5~ZG·s^uLX%xwS~G6wBZ?eSʦ?Sʟ__Oyv]PBWBK|7$f㺈iڮzhF6 ,MWfI7[GG>Ivz ̝C溺h=k?yҦ{yTPzOdiڏgi;e}<β?JP^vi/E}P_'i/'iWZEA{~מ_hʏghY>Tvx'x~C}hUlu[gg_"=#QGVofE2s;<]>>JvH7~₸\I\p?gJv7
Mufa^#SJv`v6WB:JC«llN|n9_Ls6[~_tr}y؅J!T2Hu^|W;*rڬ”ݧH_270+m8%!k
9ҰҖK Z*TGł8D`I@"ilmJ'@Y*|*5gYW0s'`x(<FE?9$*>5y[Hs"HbY7eɉ v*
-Qf V~y|`w8;O+׿otK_{gڂԠ&8\a0TkZFnޫ?v ?w,|<FX eyU$ZjҚ}S5\2Rk= SFzzJU Ԇ`k.0HzuP_>Ь`+۴UQ֏,F^Gu;كZ8>j
-,fu\+/>SC;*͆/r}`)egDJV~8Fd+_zi
- Nc_w])0{Կ˕8fc%#]D馉:3|ROd:'gd4p%7W)w,D)}/ q~SwzZ{sbΞN/}p%sLUߥ#]Żц;f\C \ynҴ |JIrGCSfVpwנ 7Roy7>ԁGӽ5y}h^bOy;&PWf栴J,J[DcOW7UO~@5o _Z?E w["āWx5^C}":߹)4q*G$L܊w5
+Qf V>{h,H֛=DMT`2%U5:.M&x߶HQ҂ah]>M`gτQ5M5j"2sNu2A4&|:-|7&k깰efE{d8IlJ+8:q 9&^7l]04~<l뿑KLסӋ+4://} +Xi}o]#Y\X_
+]=#e@iRo]e5r3Eo;Dl"=ۧ6}$V+n5w_#%oT]Q˻8|s68M>]=]"1͑ĮJukT>'K 2Ry}z27 [rq1mzbx̱|;xW\=;}agqؽ-Ǝ}2ط\޾PP\9܏n ]:5ϼK9ϼgnf>&MW$ 49NJt;<evnu {W ʙp#7;|iqCx>+}]^iч?|f.9fcuen8lgxVqx/˾՜/OX$=aqtu3_Lꁊ<k9C?Nzuwk%. VHw5.k2$Er#I<tsjS0ҷT"(H &CokT\
endstream
endobj
-611 0 obj
-<< /Type /Page /Contents 612 0 R /Resources 610 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 614 0 R >>
+610 0 obj
+<< /Type /Page /Contents 611 0 R /Resources 609 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 551 0 R /Annots 613 0 R >>
endobj
-614 0 obj
-[ 609 0 R ]
+613 0 obj
+[ 608 0 R ]
endobj
-609 0 obj
+608 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 213.396 67.03 223.852 78.488 ]/A << /S /GoTo /D (section.8) >> >>
endobj
-613 0 obj
-<< /D [ 611 0 R /XYZ 78.37 808.885 null ] >>
+612 0 obj
+<< /D [ 610 0 R /XYZ 78.37 808.885 null ] >>
endobj
141 0 obj
-<< /D [ 611 0 R /XYZ 79.37 520.772 null ] >>
+<< /D [ 610 0 R /XYZ 79.37 520.772 null ] >>
endobj
-610 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F25 379 0 R /F16 386 0 R /F15 385 0 R /F58 390 0 R /F55 387 0 R /F69 406 0 R /F19 383 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+609 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F25 379 0 R /F16 386 0 R /F15 385 0 R /F58 390 0 R /F55 387 0 R /F68 406 0 R /F19 383 0 R /F65 392 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-617 0 obj
+616 0 obj
<< /Filter /FlateDecode /Length 19743 >>
stream
xM%9r%_]91TTV
Ь
-;P0BkH1ȬTRd0?s.NI_߶a[K=B_֎[joVۯVⶵܷ~~B(X +]~şS+/D- ?&Ee/z7OG,~ 5|DŽJUK̻ٚ{dhs!?V%<S8i5/M9ޓCVA_ڤ-I>Vӕ]͗<Σʖg^eą?uÏ)aa/9"+ؑK}=FZ*Zo&|gr2߯?5'53hJd`&_,fQrO\wuV?U'#돦a#N H]D}Krw9[='yHn-dw7Jn8ˍuz7[Q#RjBUߔYtqkh}SUˈu=f8n%-s 35w~-jl7Dхeƿ|?k@~K[^)qe.jNi>?hzve;>i?y[pJK=ZznʯVn-+=ma>.~Wx~^_}@owP=n;d3 [rY JY]Y~?ZOmn'A[o\+]<z謏}Emo#|s̟[9tyXeu4B^槦cJ?tyY,{:ϞsWUMZ!~@z}^yo#o56Ğ54"ho,uZW=wl_\݀~{055#|ܶ#?6s
+;P0BkH1ȬTRd0?s.NI_߶a[KB_֎[joVۯVⶵܷ~~B(X +]~şS+/D- ?&Ee/z7OG,~ 5|DŽJUK̻ٚ{dhs!?V%<S8i5/M9ޓCVA_ڤ-I>Vӕ]͗<Σʖg^eą?uÏ)aa/9"+ؑK}=FZ*Zo&|gr2߯?5'53hJd`&_,fQrO\wuV?U'#돦a#N H]D}Krw9[='yHn-dw7Jn8ˍuz7[Q#RjBUߔYtqkh}SUˈu=f8n%-s 35w~-jl7Dхeƿ|?k@~K[^)qe.jNi>?hzve;>i?y[pJK=ZznʯVn-+=ma>.~Wx~^_}@owP=n;d3 [rY JY]Y~?ZOmn'A[o\+]<z謏}Emo#|s̟[9tyXeu4B^槦cJ?tyY,{:ϞsWUMZ!~@z}^yo#o56Ğ54"ho,uZW=wl_\݀~{055#|ܶ#?6s
Q4Sm閷F"+:퇿YvPmzD=( ?-Í?DvVr0e5ᢻѣ%Lg &aB=uʗp?^_Kѫpg@4`. H,if3 _DPȭpg@4`~ހn1SL4.omF;llgs1?it{տmM{JyM{ـk}j1ǏX sȃ = 5c{6@  }ـ6P}[cۧk?olg}
~w#P+KqayeRvhtJIfƴ3L /W@H>*A@[΍x&%k
S&C URL-ݐ0jnLi(
@@ -2189,26 +2178,26 @@ PE2 ЉKt
Yi+XP$w4G0ęR2m:,? EuxV|yp^
U6W6JGlu* B<E'HCMPef_~C?~NCЗ4>~_{ooG /j$oi<_~~je5ʖSo?R_: w^w7="u-|}<3m9fR9/ŁuEeHdF0
,xdJ/B,d/ܪt#8s`=ZU+P^r(U)THx0YJ~i|:@aԏu
-kawQPXAO26従?PȱHs;>J8'"/i
+kawQPXAO26従?PȱHs;>J8'"/(
endstream
endobj
-616 0 obj
-<< /Type /Page /Contents 617 0 R /Resources 615 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R >>
+615 0 obj
+<< /Type /Page /Contents 616 0 R /Resources 614 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 618 0 R >>
endobj
-618 0 obj
-<< /D [ 616 0 R /XYZ 78.37 808.885 null ] >>
+617 0 obj
+<< /D [ 615 0 R /XYZ 78.37 808.885 null ] >>
endobj
145 0 obj
-<< /D [ 616 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 615 0 R /XYZ 79.37 771.024 null ] >>
endobj
-615 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R /F25 379 0 R /F16 386 0 R /F58 390 0 R /F54 378 0 R /F19 383 0 R /F17 384 0 R /F20 380 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+614 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R /F25 379 0 R /F16 386 0 R /F58 390 0 R /F54 378 0 R /F19 383 0 R /F17 384 0 R /F20 380 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-625 0 obj
-<< /Filter /FlateDecode /Length 9836 >>
+624 0 obj
+<< /Filter /FlateDecode /Length 9837 >>
stream
x]K%qW`]ƀ
-ϝ|Esϛ79՛[ۏ?}c7fon>rIϷ?}0&:cr1ۏ6n. ~~~J/
+ϝ|Esϛ79[ۏ?}c7fon>rIϷ?}0&:cr1ۏ6n. ~~~J/
@@N]SY#`)S'i߆<HI>kGHS(MSNU[jr):- hk狞m@>4.`Eono'?Ѕ0Ag
;TvGW?b
@@ -2224,78 +2213,77 @@ V]x86te*%avPݡ Jᦠ&t<&(fBjkHehrЉk1sacUm (
't3^@~Pt0[\]rl~L# N0dhv&${ۀX예4eu?XfSw9A27iq1Ps) 4=hv&${ԥ@s tel4B9z0\y;2`(B-ʽdlDʖ GX
M>jPW~_!a/5U1a{M* Xj:Pv×N %K)aڙQv(@LAd0jbW\{dqh\VP aF sqhSPKm
-)n+Z*!o]an)T(>Y-u1hё Nb ٷiĜA#J]p P޺fP9
-j
-Hu0' UR@pTJh޺]5j"C1Sg
-@ؙ:dNaDt(0Qxv0j`
-gUԥR[B-3S9PRzv4]YfSbHLɶ:tϣ"n|D3 A
-+ADj tN~amQyvLt'Ned:Hd۶t$
-i2"J.2O Nq!gJf5}ܴ7!ӑP1n@d+v2f2t3z׉'H"((\RUyZvsZcG;S38.g5
-!NsSPKm u赛b7A$kK ?3ڙ.|W!
-j*¼S3a`I)-&4;ͬZ.Co]実)#Z9'kx
-X?&̓zikvNDdkNZNb ΎҌ%armm:c մGyab9o!.F˦۫$a14n[WRm#\Jv ;J%
-Qƹc}߿Kƚ
-GX")p޺&e{r6]B FAI0pA<mgsL$\mR +ADjX&`Wp"C b<6l|_<1پeF$WSCRw܌y
-iDߓ{~?m{oC V :0CRہ!L)vj!7Ȕ kg,o% 'aT^A<zL[ۑW`QY,B1LǵF)mm
-3P)nxkPNl% ~Z6hJ;
-qy١)
-6 dщfTH~m9*˦ƄbdhI" :s`X2mfis7 )vs|ok&UdqBNvqb.U(EV'TVPjI1 gMw0Ly)m~ɱe O!zmQAt" !j˦ 3kak8!lo2S C[x7TfIoKX&u,L>T\@'JŰ/ǁ ᭹aTPV&-'J1r0\sv8'Qq\|_5M !V`M8 Ev 8X*YSP=;?2DrIAMHfhv *c4e,u=
-jB2C\ay;Gbs䗥v•fBq<r@ŞNr' p!v{1<ўd #6Ip.32ZL%TCA5n,rsDAMحnjb
-m=G؅c@@uqÌ˸ЕDCR Hfb`'3 Vyp[[|1X6z&x*mklxdv
-:vh#
-jB2Cuepm 0;7V)^?0<"Zk4C
-}
-Q':9evo?Ӵq!ą`Oar/µDM&T ~DlR.*•{0USqO-ԩ4.Pc']r?d+7-n{e+2 &rPUW&]}뽫SqT2I[u25nB:۫?\#C+g ʀvU7g]9=(0\z$: '廖4?Y(aZAǢ1\x^gMT[xuE⃁my .q]7jh\h5 j0z}Yq{X6;Vna9a7u_jF8D+Ůk;On C2Nʉ;+'wڶN\|/մh28~-Tf}#)6:2ý@6-p!RRM1xHr
-Jaq*P0Eb~ Gj^ 6Z? #?bXZMw*^QFaOK{>{G,͞T~ ܮJ}>3F_j'+<v9)a^:-M
->~J~(~
-3e;`!~3K8,,Sð׵B4oe_WB!qݢ׸ ua4c3s*=b쐬GS
-`]@ze^%n8{ͤ>ٓg ;G)VMajmcN  f`iH _~Te}Q Ƹ83E80t=\슈^jkm  .6]čf' 0cavL
-xE}mdf}Ίx"7mv2s.rII<?W[c:O5_*s^ý3\=rĒ<JlhvǛb%dې*w]p,ض^pZHoT)\8-bڌWW#ZK7~a{W3Tx5v=7
-ۥ[<OcRDayxu]bOJI׫SgkثzKFY 2٦&_fLL}2ڭ9'Gy V
-DM*hAb7.ڪW v9'TuPv/4r$[$]ݡٵ(V
-1.0nDD zESPKmj}Rص+!QL)( fݣQ01od+th2= CA^BVen5]+n榠.XBvЗF0A/"^/hZ[p+J~
->PL_E.,~X< âSy& ݀\jK( =;#K$ٰAxe(K,b5`-`IVQ1` ߀~0NK !2Z.2bn߻0gZd>m 0M+[m+a9(}
-m5@u*8З40daD<vX5c0`ܶ Z8F޺])M0<Nl.kX
-7; Bq#9P_Ė<4ȰRUK;*qgիy%V)Xyfڨ>!vA`2k5\X$Qٲ $#l^X %7 :9 DZ Vy0 c/'1aFߊ@4Cn+wi pG{U5zM.YMXzm@]*hqBhdJC.CԶ'tb3[Mjr QNdnl+2!/
-Ymg_i+?;,Gov\YX Ujlk,o=[U, ;vq}KLΪ{)GM`enкɇ7Zܔ\">F۝.9:Gw1*q)xS
-ל.+"){Hד5I(S<s\h>ݱnaoX9ٓ/Nڤ+0ɯ9 ta 9:_-c8rf8ljy#=J<0z/{V /K*%)X.%:ddr)w̭_r(OH{lHs<HF>|6l-S_Ps<o6F<1'z?΢3ΟuDg$j?v'=Q~AJGґ<#ttttttttttttttttttE$$t
-dNJ2Tg@KisLay᜝t3th < ;RQZqWH'_i F@~ Rk/CX1nqxAD3sNZރUXC#1пmWq 1
+)n+Z*!o]an)T(>Y D +Z`tdXǂ@;|mڄ&1gAP-Bq,b@C妸F&%.馨Yig(E1T-O`!w3]c6f{n0$a8R0z4Tj;q#`
+#L^&Y-lo7uԖP 3<`oT޺];M-`VejSή`=  0F@P;
+
+~T0F޺]AlVNlT ΁}A x
+ k"C+P &țZb&f`qA@Y"1 Vr6D|W
+b@ ͼc3묖[W't涳}3xNnpZ!t?%,]NjCasjz®Ϩ a`#^d~뢩0򚝃/5{뚓X,4cq ~}\~tG0襮c:l5v^XX`[H -,벩*Izd3Ug5T,WRNRtzBGãqcXƒ)&P&ҴygKXj ֌ba֥G
+,;IabBcd l>\`ϡCۙS
+S[CAv&{@V+k/f9Bڡx0䰹ǞO/|PB&̄)4;uvxSo];Z,!t@ 2eDeBvWO'Ӗv!zT!: !F qv
+b[[ To[;Z*!$Sdl4)g r
+격1Z`6&XA( v{G u?Eʥa䩝
+j)nI,A$TbZ,gbcYm0t S^m_rlSh^rT5'„uH'벩s? 0Z0!tX:m1ۛsT=%ƀY[R:IK%2DЉz1Kq`Cxka8UDIˉR WcⰄoT\<Fp}
+}E4'`Hjƙ0)H#G Ev(( aWarp
+5ފ6]o`z&Ċf 囁1<Na4]Ac%⃀)^%c
+1Sq0m樝!b`'V{v;{y5W(GvQ⼘\1A9e)pv>3Pg=CA!fe8Ok Yjejoˌ :/bqIk0Ր8Ga6\QPv+j(/n[Q6vk]\02.t%ѐfR3؉,v k'daU^F%V.d VhMI,ʥiZ&,/47s0Zj爂v;{l]3Aͳa+ OêֆMǐh
+ WNk9HI%ͥ#OwVPh?W*Y{S|/a?C~A``q[y^|DxK\W( Z8iZM+*n^_V ㎕[X'>b`XM n$6xt|NJk,r⎮]ir Gt5m7GL7N=lF>_K&h{A_xHw 'ιpo?s9;M \;h3T?脹`0\Boaw
+Խ4LCb1ÑWFqDǏVS1~흊2GtXOmp/)|g<Uh(vwL5BɅ
+s{iJNKt|B5n߃҆-
+Bx<'EX {0u?>A*s.zvPHbvh54AB]; hJ;$&T;1Żr6@k^WΞt3)x$z?hx}w?bUw{gFzby?Ezo
+\W?p/ W􇿪1$߻Al1k"2gFyw~n6du
+{lkk!+|?w 뻘6cgHy־M<;wX =^M'$]s%@8w?wIoH¾?c
+!ZЬ ˥uU,d%2 U]A!Tf0 f8V,I`ckwhvJՅB}y, =Ǹ}~?&^QRہZ߾vJtehk
+
+2e(c#,L 8[<Y
++mOn1P*%ƻi٫[Mʠ[)5`+v],#%0mg|˦ Zʮh(@0uV?ۜ:|5_`m.EW7&^"95,js? |gR"y&$5N
+C7aB-IA6l^;c7 ~Xͭ:!X:rp&<@UT X)7'jBpc .̪n{"O}fB5aF}
+V{|h
+qX
+}? okF~ >'~
+% Y&`F}9%킖!eWJ1j52KaZ/VN¢PH5;% 2CU9ǎ@hYjq^Idii2VY6uaiX +zM2~!V4IT," ffd8"qVtM1vN:뢺FU f I vXѷ"!Ї
+]Z1^Uͻ^ *flaA^oEsPJmZC/Ґ VSڰD
+픤9
+L5}+z1@X<l-WKX8aŀ4Z!`H8 ,˞xhwI
+KwI2.khwJs+c&k{2o/=[??(#5a˟ű9n>50䀇;[>+.sLI>^珳(uD'$z?!Z2:0xIOt_Qt/OH))))))))))))))))))js% 7ZK0&Ѫ( Qf LMė@ɪ@Ix
+rW[X/\NeأNnH>ڣN#\j:T~!G,w
+oy9]{N(>*CϣzRe2roٱ" =R\2bX{G8g)b Z;4OΨTl҉t_KV Ÿv/<^Q̜9hЈ%2D` o[aUǓ
endstream
endobj
-624 0 obj
-<< /Type /Page /Contents 625 0 R /Resources 623 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 627 0 R >>
+623 0 obj
+<< /Type /Page /Contents 624 0 R /Resources 622 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 618 0 R /Annots 626 0 R >>
endobj
-627 0 obj
-[ 620 0 R 621 0 R ]
+626 0 obj
+[ 619 0 R 620 0 R ]
endobj
-620 0 obj
+619 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 326.699 386.919 338.654 398.874 ]/A << /S /GoTo /D (subsection.12.1) >> >>
endobj
-621 0 obj
+620 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.817 327.143 174.772 339.098 ]/A << /S /GoTo /D (subsection.18.5) >> >>
endobj
-626 0 obj
-<< /D [ 624 0 R /XYZ 78.37 808.885 null ] >>
+625 0 obj
+<< /D [ 623 0 R /XYZ 78.37 808.885 null ] >>
endobj
149 0 obj
-<< /D [ 624 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 623 0 R /XYZ 79.37 771.024 null ] >>
endobj
153 0 obj
-<< /D [ 624 0 R /XYZ 79.37 433.664 null ] >>
+<< /D [ 623 0 R /XYZ 79.37 433.664 null ] >>
endobj
-623 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F25 379 0 R /F16 386 0 R /F20 380 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+622 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F25 379 0 R /F16 386 0 R /F20 380 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-632 0 obj
-<< /Filter /FlateDecode /Length 3996 >>
+631 0 obj
+<< /Filter /FlateDecode /Length 3995 >>
stream
-x\Io%W}~ )sp.).E^ޓ| 0u7Yb-_'>}{݆MnǓ;| LY۷o/ɹ s~s8! v(ܾL`s}/z>+g^'S|FÏ+=?碌2^û9[cebwaV/93# ;48j_NqRhGSB\J sJ% j혾
+x\Io%W}~ )sp.).E^ޓ| 0u7Yb-_'>}{MnǓ;| LY۷o/ɹ s~s8! v(ܾL`s}/z>+g^'S|FÏ+=?碌2^û9[cebwaV/93# ;48j_NqRhGSB\J sJ% j혾
w};+ar_FKhY!(/vjAg^N=C$#J^ӊ< =hNt\=+z+vU|k3e'>Ҟwڸcq>(qHx> mWE`&F'nY'O$.`6V?sȭJ?#l;,q8JqFxVlII-ۍ݋qΏd%JhA;WFM߅AI3+Ubh\fa&m42FOwik
*=f.I0*O9O Tw-n00F(/{xXf
o
Q!f; CASG.b3Rp2gܣ GWYKU(δ ,'  Miì LL >t?^
EA߃Vy ' n*|;~1VJq뼝D#HfɆ^<htg5~c 92<'HEy`~E\4 %\y4'0ר1dlڇ_rtD UWKH츤 )B5Dwy(4Dr <!؋-i?~Bjc0\VpS
-tlgqx0 J&*B,
+tlgqx0 J&*B,
VO ӗ8 
vAʗܽcîYw3u܋/%Uy &1j/;t]V-@}/WtI$p(QЏ
~_@Iqv8 uw}oZeuBC~pu<mY@%ZN3"<~b>7 \AZGgup/fg $ٙ2GqyTN [A?zoAfsŚOڇ-O򼃋j43k5XW^a,QVG3d_Ϣ0m6 s
@@ -2304,96 +2292,98 @@ Dr+Enn[iQ`v!^x^,ZW.DtwZ09g!jSoOԜI#,$ln
)?xU㑪#3N(ҏμBҦZJ#*&$SV<G
SF$ˌYn/Â
Bz̀ޢ(n
--^#
-Ĩ1K?nv(EN;q`q&\u1};oKmp'Ž{S9 8➝Y+۰uԼ& R2=ԕ`wz٣[D@l!!0%k17!zŔLQ)9Flyo-OEd%YG8}.Hp0
-ħxnKsOD-^m`!
-WτS{ZDCX_
-20y춎
-RFm{LӶ)}oP^P{EVsGz~Lj5RO7IvڈanF-B2k98w?6?Z
+-^#
+'$b  (,_dn(+TfJA1`{Sxm9|*J%(Qt>sx0?7GSlQ >-s]<Ӗ~< n2m+W ;\<}{t_ӯ/߿G) `jo?gD|&N=bq_UIp1d5gC*d`ZJA~:5:ЖA1+ D@lr7 ݠ[Ҵ2E.3aEk&=+#7z"lbtcp{(iɹYpԓKj9FVEhUi!Wrz L=44qꋺxZ/%=ټ i8UE|j[g}h0-J[.nt'F8
+v"wdmh) 2XBb`^]^N-vyDyA*yF 
+ݩ'_vwE~
+q+w$^vDЁ!UNADhZ<<.T.xDNj?8{m7jee_n}NN53+OMHtEl搋 1 
+ji9ymEw.%}%5`
+T'"G7L*gՔ[qم˃W2 ui.ׅ Yr
+F,uw^_xí Ӣ0ў|L8E4u  sn|
+kV/taFn"MoK.$nhzcj
+Z
endstream
endobj
-631 0 obj
-<< /Type /Page /Contents 632 0 R /Resources 630 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 635 0 R >>
+630 0 obj
+<< /Type /Page /Contents 631 0 R /Resources 629 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 618 0 R /Annots 634 0 R >>
endobj
-635 0 obj
-[ 622 0 R 628 0 R 629 0 R ]
+634 0 obj
+[ 621 0 R 627 0 R 628 0 R ]
endobj
-622 0 obj
+621 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.21 725.076 396.165 737.031 ]/A << /S /GoTo /D (subsection.12.1) >> >>
endobj
-628 0 obj
+627 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 449.821 351.038 461.776 361.987 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-629 0 obj
+628 0 obj
<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 78.374 71.415 416.581 82.872 ]
/Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/52848/tikz-line-with-large-dots)>>
>>
endobj
-633 0 obj
-<< /D [ 631 0 R /XYZ 78.37 808.885 null ] >>
+632 0 obj
+<< /D [ 630 0 R /XYZ 78.37 808.885 null ] >>
endobj
157 0 obj
-<< /D [ 631 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 630 0 R /XYZ 79.37 771.024 null ] >>
endobj
-630 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F65 391 0 R /F58 390 0 R /F66 392 0 R /F81 634 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F67 393 0 R /F54 378 0 R >> /ProcSet [ /PDF /Text ] >>
+629 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F64 391 0 R /F58 390 0 R /F65 392 0 R /F81 633 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F66 393 0 R /F54 378 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-639 0 obj
-<< /Filter /FlateDecode /Length 6161 >>
-stream
-x=ˎ7w}E=4U'at3|xY`F4$ 2Y%Z
-GF$q(뫴D|/E^|\x'OB ?/ dBW!¿ ߸'k2(=m#l&VR)UWKCTW- "rly NpiBtoc4"<Qi/_~}X7ӇQrՠe2\ƺh=bV14VEL4 vc"#LʅG?,E0vV2k湈 ,&gd@b{+A&U C1A
-GvZunO*;8;[Ϸ
-_[UW)AfwWf={jE"h
-v\Q]|ұ4A Q+ڷR%<aBy2
-[k„˨P4znevxnLl&6bɪ{?ӠhPzݺ
-h޹MְJ`s1ss:!6q
-i7?lUȚ2aXjX%|8ƱK,7-vN5 k789"(e+8lf> $J|iLm"IUgEiRZi6|[(ęOK'^3/e }0{?u,w++735X #<=J6O<{[žEV}d ~nqݠQ0G-Z/"?۲G0{wU5@yԌ//`u>yN*U\&,u"gu$Va bNhXg "EQGE}JI (̡µ΀巯<$ŠFGX?w/|A^xwR]6 ʠmKƔߺZz\e
-(Ú8_'hN/ܮ:uyyiaOp/u{a x7GT.
- & W׮jGt w؎2B@J@?h`{`;0'os'M*s̹~%JbVX/}#'Gui}NaN
-x'_" >14"ʁ#:3oߔ6BadQRewXAQ vR7@QH;J݀G (x]5earkHkf+]K<t~IKk;6t0F<tR֋d⢜=t=2.* wsZ{~>-+R/i\]1K
- fWj`A!kl"T
-2<EW9?D#8c64n0X~/Ayd5p[/LXD2_yƹ^UH*7J-!acڰbq
-#`bߩ'-35%6rFy8c
-
-؄3kCzJ`( xKGrWsO}`{J?X} +P
-jFJX{d4mq * s:@pQXpVS:4IՏ9#m8CÌj)((ЁaO2Jy Sꬾ((8+ʩ 1>+i97:QgDNғN%`d#'hO>x#{q*lX<5{tcgEyR{"h HjԦL|&[w'txioX`*."k-c5,{ciXNi`F?`nY1ڦڼ;%(u/ KC2MX{X XJ/^Up 0\ّM:r)dGA{oZtb*gMZ,e]6bEՑwW۱%eS-@W{c`~F1lv(3[43W䂃ƱKSeA7mH*̉B'RQQR_.Ңx)Ձ([AW*o4prIyV-_XbҀA/iI3L&Fk%.I)یUw3'%
-d_r+Czѫ,fFVp3~a?:V-U<w)pd:I5+`]a70O]Qq!RþMX<pUe#ύUުӍ%@^=4X"GlߨqRr9fȮ~M6Ttaf `y8
-m+dWn%뙔g31Stebօ]ooa/
- #LfDDծ -K[9䢀@#bzK&Ud>=9XA?[AfK[ 5&u>/}`q<6`F²/-\TL˒qJ̹HXǃ3|
-ߖ f%1;.KJ/tA?
-OϤ+k0>EU[<d17hGq+hݭm+_B 
-qpxFoS
-|6} -stM}YŤc SZZʠ
-+VB˝+ƙ ]5:`ҲjN"5i߆5a{\\0z +ٰԋ2.J63)!UagZKN#5i冎hN4q< ؟ tri`-B52:Je*~ltoB\"G".+֐dK|)ch#RK'&T#{,lc+灹,DΆKKoZGEE-4b'L}0`HkQ ߡv3؜ɭa+,$ 69oenS4<kCB=1Р8T.}k#C Rndj+Y$+:MRYI;A?(%bwz<q9Valܷ;A5:9hP8'AqU$.iJڸńVv܃a\V
-[z;PRo%}Tv\kIPo &ѥ9nXy<[k;srrV;䳄1)uRXos)529dLuH4@q=%/:]4a$gghQRo%{Rr. s[Eb1W Ckbl]ȁ`7|vމ,AK[SZxj+md.$F#lEHmw&lgu]6
-B5mPKk$yR#r m[a;7[+Ozm#ns:#uCK([SZb+lp.(F'm\EP&^jm\anPT]6AFAa(yln@Im\PjmNPʹ$+IPoNNVc 8hӃr
-3<h3\6&p0V\HJX#|#E@& \:n6]6p?,hXԣ6.$JL56x'Fg\$(Dc]E JGuy) -!uQ5C|(d_yoOG>>.ǗWv~YS V:uNTo)"bA}jo978ݮVpOQ|/T)9rYA3tux [\5cVݙ Goޫ=vgl$<aF͘M#K~!];HUZIF&&=Ș4{kti؈'tsC-;>uf$ƙ̗r?MBNl,uv֑Drɜ Өv^,hW!:͍L|i3:|d#E"
-"zAxF->W+èT0 `7fugI%[-z߁H)'ĔadVJ=
+638 0 obj
+<< /Filter /FlateDecode /Length 6163 >>
+stream
+x=ˎ9wE{(r=[==Y`i~II("2"+m4rU2)z^w~^rwyq\/_/?? a$j/ON^
+o$|"~Kx
+7%I\9~1&x1e<â=k)ST呴RxG ۹Ӱӈ LV6{K[HGiHM21A?
+5k=Kkث7
+v\Q]|ұ4A d3yw*_mhePbF^>p~֚0Q:* =Cٸb2x&6[X[1NdսyPehPzۺ
+83 6a+!>:b4ubϽەClL($o~Fhn ðʹJޏfq>}X, ?nr[i j@"oFqrD.P4;)W,q|I ֙=UK6Ji,
+?foYg>a,"xG>moԾL}v0|]pQI<}ڗnζ,ɽ-psއ ~sƹXEu[cQ6x4ۖ;*ƚS@yL./`u=yN*U\&,u"gu,Va(bNhXg"EGQGE}JI((̡µ΀巯>$ŠFGX?w/|A^x7R]6 ʰ%SoM;_ւ1AaM/6!'E>:u@y.QxiaOH/uSza z'7GT߮
+Z37y_l#WWXK=]ZЏ?bWf5|Vta+x"Hoθ7
+ & W׮jGt+w
+؎2B@JV@A?8a|͝6yo3iA"[a>`ڟhZߟֹ 8k
+P;jxiWf .~UW*}k>F F6k'&{lu IDq+D$hD]`kaw'cPبɰ(!'wo;ڀ}b5>'# P;i89\9Q,L i`xW 2\Ä#눘j 1N(Uv'~@aG((un ~R?G5YSV/G na/hf~ia.-NsKkk;Nw8@9wizmmc(Wj9z1L\(@YEW%Q.Mkχ~^y%˻+fYaaXE
+|0u1\?"Iykkؒj 9V1^`lBxTϙ=eA( xK
+ sbiЉUDpT{GEԖ@1%f:d+J卂:;ޣU2M<Ϫ k\,@^0Xe=-YvFɄ"h%)7%0s4,#wSV +_n{xC+zŌ
+u5vx_;G^gܪ7R\6|y+Jހݜ+3#Vj {GUcYscգjtw DZJȑqoT8+kBUdWX*ŋ#U3VU`zKT%{q6 s2z+?Joq3 Stbօ]ooa/
+ #LfDDծ/K[9䢀A#bzKC
+J|z$s2«jLl}_6&\롽Fyl4e_ZBV]5>Yrˋg,Me^KYqIbTV:!Z;qW2 <MWc ׭z~<qEI=Q
+b"]^"Tȼ`_9ZByH".F\g z."ʅ tsXT* ƙT ;H[T.B'TD&,2#Ax kږfޜR7(W*d`)JxtcѾg)r蚱]dlr<gtVfA'qU[]҇'cwc
+ 9uB3 txi/y*E)' 8_q&kܚ(14d^iۚSjL2vV6Dj:s[
+Zwkۊ—~7P"z c<qOfʔa[|!nM kL9:8[Z^k1OFa2djiZ[1 ܥZ|H[3E1` J|U%ɭB"N`"vmY*7lk0mX8hU2ŤcF SZ ]EcR+QƕLj췚H^1 1P υ`2uK^5 IAFiWi
+jO%W 8Zr ԫ!V9Qjb!y+>d饡5(訕Vb[ Wp@DRV2 ;tK|)ch#ECk|QQS1r\M# ̉ .~xT::*)PB0+aPz$H$"RBv3؜ɭaAc~xa[a
+g0dca@ *S,ui[NJ&hK VZ H$Wb=ut> w&YI;?%PqIxdq=q(I(6[睢II$W8ݪ4܄6`10u.+[z;H+CIFI:ZrRTItiLgkm7-9,Ql0J"5M9RccV (tQQGi ۃ m"I|с ;%8K>PCVO`\KJB5MygCRɕ(Nb^Hhbl]Xb N9; % AL`̕xMB"(mڐ m"vFXEU8lCzX@\G H5rMsdC"ɕؤ$NvBoBLz0 7h`uݠ#uCK$驃*=+QDr%yQTGM* 8
+X;]2؈riLvIj5D 漧dм-&5B |z5)e.*7)\ۑ^gDaԲKokbEvUz8V+iZLJbM})aRrNYž3]zIspiRic3.# CY˫%
+zc|[湿޺ ~Ehh3^ /.Z"
+tz"cL=Q 2xenZnZ4a jL9G)˜p7;X=28-tfw
+ǯ& x-eKdW'ռ3EUõ;TnJ{)
+b[]~fO ?ty;)C>XؕKy԰Veru្S|okYTՋi8CPx0JA#R OLLBXO K\p-Xu[ݱj\Pߋ[s==ސiiS\w ڄUz%{ rlb> @mʅaRtfs- h´YJ
+}{+Cx
endstream
endobj
-638 0 obj
-<< /Type /Page /Contents 639 0 R /Resources 637 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 641 0 R >>
+637 0 obj
+<< /Type /Page /Contents 638 0 R /Resources 636 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 618 0 R /Annots 640 0 R >>
endobj
-641 0 obj
-[ 636 0 R ]
+640 0 obj
+[ 635 0 R ]
endobj
-636 0 obj
+635 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 334.246 76.658 344.703 88.278 ]/A << /S /GoTo /D (subsection.12.1) >> >>
endobj
-640 0 obj
-<< /D [ 638 0 R /XYZ 78.37 808.885 null ] >>
+639 0 obj
+<< /D [ 637 0 R /XYZ 78.37 808.885 null ] >>
endobj
161 0 obj
-<< /D [ 638 0 R /XYZ 79.37 473.14 null ] >>
+<< /D [ 637 0 R /XYZ 79.37 473.14 null ] >>
endobj
165 0 obj
-<< /D [ 638 0 R /XYZ 79.37 295.105 null ] >>
+<< /D [ 637 0 R /XYZ 79.37 295.105 null ] >>
endobj
-637 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F55 387 0 R /F67 393 0 R /F25 379 0 R /F19 383 0 R /F16 386 0 R /F69 406 0 R /F58 390 0 R /F74 427 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F71 419 0 R /F50 396 0 R >> /ProcSet [ /PDF /Text ] >>
+636 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F55 387 0 R /F66 393 0 R /F25 379 0 R /F19 383 0 R /F16 386 0 R /F68 406 0 R /F58 390 0 R /F73 427 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F70 419 0 R /F50 396 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-651 0 obj
+650 0 obj
<< /Filter /FlateDecode /Length 5466 >>
stream
x]K$mϯl(|woOo˄$^GJd2K]>
@@ -2411,191 +2401,184 @@ u?(xΫ>CO)=Cn ͶGܲ[^H8s&q}ӳ\T]7Cޘ`F~k2
oӐeAlu$ɳMۋx.'%U/BZF\-Fw6(}N(UEpMۍN
W$Vى<Smϸw_~,z нs3e~ G_%Q`D~2oWC6y &k2ff^üu. t,ꑋ]I KGV\kV@|vQ<|*z@ҕ|4F9=A;89 x9hH4z2AFVI<5>!ZTߞ|Ҽz
)o? o|BI?B:
-=Dg
-Q@P^P)Cg
-*QQ%+OT4oyDӌk3tWQ4*S7Y=`ohx}4sz&;bIvjj(E'Gx^MA/uR*~v0[Ϩ
- Şz}[܍Ҋw,|M_oM\0d
-a\ fFA XmerFI(sq>IȅAg$P#/$)TU?[}LbROQ26kE<7:T8CzjFYUfm\"hִ!=_cǺ3))?f!k?M1+CݒzzW;3|Қvf+dL#<+Dt@Olka
-Z05M>x+5qͫ6͓Lo94|+x(|k+5<_2ɤm`K`Sm8-~mh{)e=?6>(?Vs0(RV3(53V2PyxLCɊ~L?|+kEֱC|&U"3]%boZHieXXu5 ſHӎVaUDD!> d7~:pFdނ7V)xg=R
-n.ǿhjuWq5Q1Ss'O}H@*:SK"JFy Be y@SWR~tK7=G6!>He, 뤹&/gmЯiޞޚp[A,t`PmTmVE;
-于i[Z`wd 6@fN^RD;)+i D>Bi$97<+a*gxvr_
+=Dg
+tY~9ًߚ`H
+#¸h͌pWΟ`6P|` MNH>G{_ HRBF~4"I-r!
+wTeR#m׊x0o*tu4q6Ԍ<EКi{ B0{*, ;wW Tug$RR0 ~X]bC~bV һ%ekTvf5#GWv(vFxfWzbѳ" tSa2w-k|x W
+>_-vR6UW R2#}90Hr n'ݓyVTqM
+})Cf
endstream
endobj
-650 0 obj
-<< /Type /Page /Contents 651 0 R /Resources 649 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 654 0 R >>
+649 0 obj
+<< /Type /Page /Contents 650 0 R /Resources 648 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 618 0 R /Annots 653 0 R >>
endobj
-654 0 obj
-[ 642 0 R 643 0 R 644 0 R 645 0 R 646 0 R 648 0 R 647 0 R ]
+653 0 obj
+[ 641 0 R 642 0 R 643 0 R 644 0 R 645 0 R 647 0 R 646 0 R ]
endobj
-642 0 obj
+641 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.325 693.214 172.013 705.17 ]/A << /S /GoTo /D (subsection.14.10) >> >>
endobj
-643 0 obj
+642 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.734 693.214 199.689 705.17 ]/A << /S /GoTo /D (subsection.14.10) >> >>
endobj
-644 0 obj
+643 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 334.733 693.214 346.688 705.17 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-645 0 obj
+644 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 215.091 333.568 234.797 345.523 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-646 0 obj
+645 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 250.518 333.568 262.474 345.523 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-648 0 obj
+647 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 360.107 176.817 372.063 187.885 ]/A << /S /GoTo /D (section.15) >> >>
endobj
-647 0 obj
+646 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 261.702 86.122 272.159 97.802 ]/A << /S /GoTo /D (subsection.6.2) >> >>
endobj
-652 0 obj
-<< /D [ 650 0 R /XYZ 78.37 808.885 null ] >>
+651 0 obj
+<< /D [ 649 0 R /XYZ 78.37 808.885 null ] >>
endobj
169 0 obj
-<< /D [ 650 0 R /XYZ 79.37 307.399 null ] >>
+<< /D [ 649 0 R /XYZ 79.37 307.399 null ] >>
endobj
-649 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F25 379 0 R /F16 386 0 R /F20 380 0 R /F18 381 0 R /F23 653 0 R /F17 384 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F19 383 0 R /F22 408 0 R /F57 389 0 R /F69 406 0 R /F55 387 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+648 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F25 379 0 R /F16 386 0 R /F20 380 0 R /F18 381 0 R /F23 652 0 R /F17 384 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F19 383 0 R /F22 408 0 R /F57 389 0 R /F68 406 0 R /F55 387 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-659 0 obj
-<< /Filter /FlateDecode /Length 16490 >>
-stream
-x}M$9r~E5q~@]]&J-`NkFӳtuV27{N';y\r\~~vqRr/qqҮ\Jv#Ͽ^H8YV_rs~a 7?G2W¿E$~];-o q BP%ͥKsA<ջT;Tyw1]3A;Jtq,} l:0ք-(oO5{ pKbA_Ss;jw 1E\+?%Bߓ<-ڈiڮ*C׋:$ү*{_)3\X{]IWޕ$X@'v,[Nx?#^B_e n5t)GflJSK٭pGR {֟ܯr)އM^w,<c0ó'u%񼜔rrr ߤDQq NsҫШ$j#y*0LYTBwRPPh &O7W؜H-_sKSdrx咯%m 7 Jk6$/[ziNHږߘ~GL2S﹅gӒv!k9{GW#m1]󼪧knHqܓu&|31|M%7ǨV%8>,CwlAX^ʢzGs2ۅh]GU_UѣaX{$_v%k^{rM͟<}}^~×{o+xIκ/K2EW daY+u_8njkGߦǟ-h,f||F0d(bukR{u=x:},SefP֘9,=̅;h>]B^=Z\6?sY+k&8~6&rٗ;4[ڨ0b7JxRѫf}Yq_{6~moXTgq`,x-xM2?^q~}G}6We.ȗDO|i{pDS~x//qb?ꃄ 1 V)ӣ<r!1jRm|of_kOM(GiG~nB
-#KRV_/_?BBՠ;ZM|˧?_k^@^}?6o^uxF۵&Kɥa~0vbݕ?`X[}S ~@ؾW
-FF[QHa
-5Shx]p9rc
-cJܝ+D)F^3s\G ZA 2
-]iTc sx-SE3Ns.D)_&x9*VkAEl0EWA9BDXP#w52`ָc"k
-Ff7ՀЦ 3DbA9k5# )a!4]$!42x1,u"*hFugi Ą+\=(Ъau(wU{yGWbᤁ6'y (vу<8*bTlLz\^((/q)[UؘˍI&m)acǿnhu@SvXJPҔBkL v֗ՙ!yl1Wǵ5W)m;cCCe NT8tŔ$=ɻ5ynQ#
-Չ(MP4F:vBk TL;R4 }Lr1LMw
-BPKi)uq\8 6g\
-ܑRkbP~dk[9a|g@~-xwbh;DCa6"8!(ߡuI ;)~縄ֱ
-_VBkDQvQ(sd˖ɇk 9Dʛ
-CM]ZZ~aH؈CHtZvugи2id:BIu8f瘜y@H*)PsZG\h&|P0rxnzͣ4Q=ji}Ҋ"=<ǫ«U6u.\=jj2$m823c"vn"94Ύsq}"?+JrP:JP;ZN٨nRXV)$k v2
-t1
-RG3E+dDH*ғMhLOH:s]<5x'(OtefG< %5<5^ꠤyT/,HV9S%^*5fjEOh:2ꉠD&(QۈuD*sNA
-l,1q1g2lBF 5tG2Y\IXPj`sלg ,5t+fk* ="ԋ ׭iG㩸-Kfjl剷脜D_Q
-:ѭw̯+H#> D7&!9f%oЬАw
-gRQ;c< uw+
- sw&lq1)(- (u;l>)Dphfh([7L
- 蛯cd8y3'ȼpftu'ZCi'xfSE ď/B
-o [zAs"Ր^o#@y98<z,W9o23; v6tU>X >H< 36^JmI)?ؾzcc|oalSisErlb&ݑ۹d"V=E#+-RlCc(׽H"y4Րxy<>anx}uۜe;[N9sMR SLwyWw==^P#2-w~U3rbRфݙMLa~3OUm?;]~ˎ8Ի_y ;݈~+~yߺ{^)n1T]+<ٮ9`앺IE/SWEvizZrͿo{m>T+xgP>(o>Ӭgl4~F~lԟeRhsˤ–Ig{&}GޞIgb痮~UMr6?09LO(&+#~|~vn}ĕIОI{6>.Ak{ay1k·LpP&>Шdx4fm"7හ
-OܹƇo󲏕Zh E˯VibE3߯U4ewm:o}4fw٩i
-?}+[MTL'g
-R6O;VQ|:-^U#3T sJQ~稵
-Q̼^
-
-$}!8?e2z5&K*)GVM5ŕzﺎDVMCa$N$Og =Q( +)**ms(x荏yC[ϴbFb.ϴO2=$QX~Xpۤ2SS\&obXF/IMTy&v6gm0?K{MnuW2SS\"6Jk%B+j[a^c],Yw^ޞC<gIs70
-$5c7/)7`qlϥ.|aIͥ%VoZR'":ʚb!,ɡ
-mp[rh-|ӂ\L'py} Kfe%%u7R%D8Y>]Zi/*d,U
-aI-K"o30U%`oBͲP|*b, ܞ8+@5CRHz7!%\pI ÒoBQVg&ϭ^K^L +"h<*t1˔@4) a8Au)ftu8egKL\KےK
- 4L E*ɡ4 4fpp2$IO4Pa䧮
-gugf`DiBebe!|wuNs|RӔKPH_74_jBO*:Q[p c[+bW+FrGՉ7[cx]M,tqS-u=o=2 =Q2oZRZEY-ĤUA@aHFM\<!aatMzY,'ŝbM>p9eB Fv`=f5j\QMr_I]%U踆T" T#Q]+}E KdqAm}ZCЦb)ѝa]*+,JEuMV|٨3V Jo3}H.ޱ oGMqUSۊ  \MBl.++IjZgfl߉P7UexiLbc}0ji؈_;)U}^\6JM\u8GR'*U<bo g}LjFyw30_Z߁sq(TUH}sr\Y" xf"SK?1ήZ1ePOPW\X0p(X.VCsx#h͸g`
-\剶ȄP§U9ATZ_eO>TDX<ݣ؈3Rʃ!4EBPohWpn3bo!
-1>8 ιPƫwk[j0;>f,23CFJAy{CJ.CX-U0)vƷNǍ*t@/ hf/ŏ&}y'wKp=+\L8=*ԋ''Zװ-\>Se.wޢrAxr|1%;IX pGǎz'b#Ȼ1(1
-@jcLsQ65\`JƢ$%Sڮnb93ر,or?'Dmqh(Z(1'' V`q1\㉶@χ'Rwy8.FςYA xsO.,-g4ni4݋[G A]pKp?
-BU=?e.qP:|8d 
-0S_K_@T w h*yX>/H|$fێ㵋C@*z4Z"XN2.lM=<$.1p](>粤75O@Iu-wUICS.OU% z.=G~] Fiqَ(y4|t%` \V"NBdVfԶ>|G9M,^5Lkyեb(L]Z*
-J\CΠ@@71'K\
-A@[\\0P`e.(q.awښ%
- PIQޔYxh8I T@ȯ7qH>=C]1r|w
->FscOw%~ s@ Gk-wGDIm|E cB4OzN>5îu9#U:~i*\#><*s\4CaN|<H QoʎD_1JhQwFY]np@g+U<ddJ_ؘl#.) |J2m U:N9[hJܝNy 'RSؖ⎭M.| 2o
-CP(-5m}U⽨J1T;em<* sw+g"Wl=FO1㈔Ram}Y}0]Ñ9@E3Z";y 栖qՆ;es^3~>M!FQ#h#rPg'" 0 yI&Uw-0T24c1+kmCȴ1;6 NWά2 t>e@PuK ̮ՌS:SQ؈7,.hpfىHcDL@ʕ#=F'>#(0TcڳoR*k(42
-*󥌭PƢCܝʉT;u[ETxpY,$(dWa',a4w
-:ugE ;y J?F'[-!oN^E_id=V~+wIC1T;em< Nwʃd@~Oć 0b{qkq<P jGҼ)(jdԝQrm$>l*
-0s.!L"t#{ip}?
-/axW*4=Vcd=+Jɹ "3T4N,
-F *\% .OzC.Z5W~)6- ܪᢩZ|"WoUj86^ͻq_[Q7Á51,E7 L<{WOP!Gխ]2+7 Wd=p:@(Ep%
-e}xI֦T#b F\*{+e(nRAo}{UCW.)w]'^eetfKL&P8a1g&,?/#h %+h) 1`#f.:Y`'\ݙ ꡋOIJW.!:jW!@&J u(4Ј3}E|SCI֜,$o":6r7D t2ؘK
-G,L06L|__%'@_הWtI{5+1S
-`e.E
-G,L06L|_2_%Ǩ]7d{5G@&TV8ʤQQQog,'?'']ʤkh*K1 `#f.2A`(lߙI"O`%HAoBp  6^QkɨvļIoktj.\2G
-`Rw&xҵl ԫR>.3
-7Rʲ6 ,h*14ئkͥNZ8la1gR>9>ק:=I𾊽/2p ùra5@]ڪ,zY]m\$*Ort\w.fUX~췎hs1NjG93<q/6c3CFj{ꊿXF364 ۉLqЀvq/s;#D#o;za(cyN4[ιMZCw
-t1
-*\SD}q#04Fj(Ctgx8P0_Dޅ@4z[G^fB| %ͫ9w<) r!̘asܢɡm"x+%_;hǛ ': bb " =\ (mar?9T5g@sUjtU-x8ӺrH.0GƇ]/*O>hRO}<n#YYOPwFc?7Q~^czFg2oEU*G~kK+Mo|(GH`C @=rͳNgcn96{|V<N$Qއ QL Z7[
-t8YbWmYpcJuǒsޚOgy$wH4L/~7@FREX3o=
-#+mD<3C !Nlmf}:Ex**Q? qʻmiK7$h g^!eI);zR˼(c'<+МR!w;[%V{Ȏ
-;JC~g[1KOc }ظ> 4*Z3'Z~iNdΠ
-LO'" 0<d<}!2[`׎z2Hi
+658 0 obj
+<< /Filter /FlateDecode /Length 16492 >>
+stream
+x}M$9r~E5q~@]]&J-`NkFӳtuV27{N';y\r\~~zqRr/qqҮ\Jv#Ͽ^H8YV_rs~a 7?G2W¿E$~];-o q BP%ͥKsA<ջT;Tyw1]3A;Jtq,} l:0ք-(oO5{ pKbA_Ss;jw 1E\+?%Bߓ<-ڈiڮ*C׋:$ү*{_)3\X{]IWޕ$X@'v,[Nx?#^B_e n5t)GflJSK٭pGR {֟ܯr)އM^w,<c0ó'u%񼜔rrr ߤDQq NsҫШ$j#y*0LYTBwRPPh &O7W؜H-_sKSdrx咯%m 7 Jk6$/[ziNHږߘ~GL2S﹅gӒv!k9{GW#m1]󼪧knHqܓu&|31|M%7ǨV%8>,CwlAX^ʢzGs2ۅh]GU_UѣaX{$_v%k^{rM͟<}}^~×{o+xIκ/K2EW daY+u_8njkGߦǟ-h,f||F0d(bukR{u=x:},SefP֘9,=̅;h>]B^=Z\6?sY+k&8~6&rٗ;4[ڨ0b7JxRѫf}Yq_{6~moXTgq`,x-xM2?^q~}G}6We.ȗDO|i{pDS~x//qb?ꃄ 1 V)ӣ<r!1jRm|of_kOM(GiG~nB
+#KRV_/_?BBՠ;ZM|˧?_k^@^}?6o^uxF۵&Kɥa~0vbݕ?`X[}S ~@ؾW
+:E5NpW.qZA.VjKX?&V0O,p ?5'Ȣhc+a!8S]IS.7t .eFrN-v$GEnjMfV(ΐ|1WBky8<;OiyōhnVzS m0CL$P:BfLBEB3.7nCR'fJA]mTwahPxv;JL˵cʨVwrWeW=Gix|D}%+*Nn{Rj=1Ccr+KVԈE
+b[EZLxdAЖr9vVG$1%j<1/M)ıD?=`Gm}Y2
+
+)su\[saF364TDucN ^L9zHғ;Z5RPKQ[5b4|RIp9Fk(.k^[oNd^8S30]24J;:hto'2AыT>KQ#E8T+*p(w^(lqOEN\n# qw;A %RGeshqƅ)(G=۸&w4J-Pp)&]\f3@4Tn+SzZtذЪkzKHn J}a=\
+8M1IW%aWW~ZN
+r ~o2,Wy ;y A
+wxuVF^~B 5/\G_Ѡ$xbg1W=u(v^;|
+V.߁RDn# U )9w:lw4S̃<J"C;8\6.D$&0L48NmLob;;E'}P CrG|h7I Ifo ʶB>!VuIt(y^-0u)`=Rގh
+!sy.Z!-SƔUn񹻧\X++c:
+X4lhI~t(6<&ZnTKov`fx-&dPJ7x$%̕6aqyf80P>RIm#By{.4Kقqi\xNIeN@z4@|SncVX]ͪ_Jp hiq(v>unOw]r
+*uHTb3Ce`NTe<@1*dNXSܔ<] @ Gk-wGDIm|aRGȘV(1<F'Y <40j|&E@E3Z.cPwg"Q!~\}\28F$ -8*K͋KFr=O3UBsɃ_'4$L0d݉p #Ӄ x<
+4H53&Lpfǰ=L߄DyHNRRad3_F,H.L[tFG8KI*j*H0-k:n3m4vKL'P8a1g/"'Э->]ZjcKR4l+(?C@$RV(*dၡ0wg–QRɈ[ƚCIBnusi2"
+Y.@KR|.x~}ǟy27o֤oqL[/K^olB?}]˝7pi|6/XYЩߊPjE/V4ZEY6~oЦ!Oo 4
+~, 4
+~a?/~%֫M#;4}kX[|>^e*Tze&8-L`ǻLpƻiZd [Wj?6>Ҽ.7mǾp>/}kwkN߱Ӕ\p)~W̏-] bv\{К>\ln[oG#~go܆>W]c_w?/+TVrXW)XS"pp\%gg8+cwB\_g' WU,0U%bQ"lXEw` &t|~ltBD8$2Sm.ݥ <+?=dZLx} un󴣱j׾RZ52C%n
+K 4زDs9SI+M ь&t|^!*ɡoI9]M\f&3;4DZKia.JG<:dI
+ uk7r-RIbYM-18,|in \Z
+ 1,&eu{ܞo:U
+Y:OQR3}xZܡ a3"5OJ`4,L7q yFymܣ`=g$'If2h x$NJ\O"Q#}lq\
+zԱ]xE=:B7;ERW)ܣ# >%6%e OUr]MLJ^uyo~P艀4`Չ#[mv1KOWޤwQMrr^)6Jǘ\fޞ9,\ T̀;q>i@ n ݓjlQFe4Z,'ŝԕY^kȮ/:@%❠ K5lH`2W۰Dwp&~٧5 mJ-B6ޥbTTGdl
+ <S?k:K]9 r.+FpǾQ5eQXՔ*tkKFrd.ɮ> }iFX %x!^e^GT]!,;': ኍh9R%`t\a4>\e_C)] ~*!uyb-P%#)aVpAǤvhtw' Ih?Ū8W
+BZ78Z}?(H%g*A)25
+6q./ª%ishWy>sfj7:k,2,SwrǵYV`ڰXb8XcT@޽%
+%˕.IIe뢫a)<wrځiIrƇT-u"̄ک25WzR:!d-R|@#FϕGl7Fr@~Vc&S6C-vx٪8e8뇣OҡS샳Pezסۼi"83d:=":Rbg|餱xB@"z~@9vXPnFyG_8mw
+}Azg߳ŴQУBhx|R﭅9{ Kق3L0U6r-:!' 9~.#J]r |d{{)6bi# p X/\(-:A݇7V`LܙP@
+$84eS|o,JR2A&V|3&cQJ-Bځ̡Sq⎠{` vq<hL|M?|/,'ugG q|h,qo
+72rFFӽ5p u<
+ƙZʻ SbSB2>OtkjHOΠQ\;G x"-N6љP0W;UԀ~?ڢJNhȡ=t;V&(a
+h!? _3wru$Qj9j[Hq1f`ԉf#:4NU1 ̾GvyxǦfjv\sL&v<^nSSvDl{>撓R`R t1w
+&TYaUI5ÇPJk>7D3l0kLS?O<
+4aksaArr!,% v (˝6L_#H>z'0"hWfyf#
+y&v$\3E,L)k'2q~x u 2e48i3Q(#|*Ř-pjFsG~n
+DX
+&jtYgUGO
+1u U( L<qW8w.?aAGb;^8ڱJP|1: 2xGE/BY$O!J(FXiyCrcW݅s.KjiqsX PrW4D0U*ZUBrZcXX|ו;a2QxGch[GW]Rl̥)`/bY$.OaAi*O&OM\`eMmKG{DcEYX]*b) %(bi`; J T tC}
+/>ĥD9[؛)haiK n 6Z[RbopYpBAӁ "Ƈ'k>B),alιyT RxK/:i`t9̲ )q,'",'V._wTTT
+1uiXVb: 3wZJz>na+Q9?Ňg<uelVkN#*x:hM)D'/KCEPv~+pKvPuI
+Ei,:4݉ L@SUDO BBvuv)̲:HsQwZ]
+ #Ǿk e&|$͛BFFe-wF3;`v" 0JY<Fe^?U@JRGX'Ly/
+.|kP6+_nټ1Eu38[BXtpxϳKz+r|tQݪa|~%#Rq\p HYh98-W 1ԅd?[6
+x~n"Ky+@ܚ"k
+\%PՀxI2z-L"DުZ~/í!nj!l.
+.^jTezUn'C])twMQ4YF VvQDA. i؛ duM'Yz^M
+5Dؘ̄K
+G,L546L|_$'Вc/R
+X. 6fRQ)  ۉK۫$t.Hc]"fJ
+*eyIWӱz4 d2hKeoLv漯ojrxri஋ΫL捦4.3
+`e.E
+w&/s} ss{"\@_ :0+WVԥ̢ fɕ LH//OO~k !oV{~ƾ?CNM?vޙS>n>93d:/`o{޾!)m;cC'
+<N]\ I{d|Poe&)̇
+1+Jۈrx;1 Rp
+#7\n<; Qx6Ʃcgt[H9k}
+*ܖuX<Q׏|,i)8itv hNrAzd:/Ue<FӨ0bF3>3f֧S;Hf4}Cb  yqR2;/Ű2O|c) qYb*[4Dw*8 \A=7!@y5srnިEVD Nt"*
+hNKft㙹L )$rS#=3X` Huq
+<h}c]zHG?LMi5g7tL_%P3EB]BZ
+H٧y|^c`~h98bP D9ր
+j<=xr~A4q% C@M3u1eqX/|^-(dD@ႍ4N35>\R" Nq'G?.V> yQ~O0*0 E/(݅t6]~?P#~T㛟 3]Ɗxv#~O+ԂN~A<3Jðʍ%R0%5oaG\L.pJ%KRkOv\9j=.Q:ǧBxzhҗS0㹂;%wFcj?}=8<<ez2r?ߊ@5%)u_UUWl:eۋ%vO\vrv^"acP) Lo̪.D'|[E<t"w'^O_N~?",`rQx%<ZuETvaVr;A6/#>&uݲ7㧻M^s|"`aT2Zvk;PGe{B-?e2Vl4Nv+'9c폥^{2e|Yk}LKѲPF ìR! >\iP%&|R2N\YFrp˔>}_DwiI%yB}$>AX/yGC僥U")k4]z79>xA`١|=sF0#p/Y|z/?!kf?;7|>;?Td=On?xY^H=0@/0S j#|<]p"!uֺՔh_
/%%rmp=We$?Z6W ~abqxZRzO_g 7/8zg^Gr<6 KrdɺF!#[,Z#i>GjOiOb6$_gņd>G/HY/?irN<\=ɛI
-܏[^U쨴 ui޽
+܏[^U쨴 ui޽
+&^rG~v~+Cm"wVvK)=T^?'F8,QPeSL\h;M@N:gSv)eRMw ݋Ż7.O׿u?)wVT}Ks`^[.<;۹{dwʌװԴ4Ż1d\bĖk//W0S!OOo'my6O3ժO_jrHڕJ(? ԏ^
endstream
endobj
-658 0 obj
-<< /Type /Page /Contents 659 0 R /Resources 657 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 661 0 R >>
+657 0 obj
+<< /Type /Page /Contents 658 0 R /Resources 656 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 618 0 R /Annots 660 0 R >>
endobj
-661 0 obj
-[ 655 0 R 656 0 R ]
+660 0 obj
+[ 654 0 R 655 0 R ]
endobj
-655 0 obj
+654 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.532 641.39 261.487 653.345 ]/A << /S /GoTo /D (subsection.10.5) >> >>
endobj
-656 0 obj
+655 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 319.111 477.953 331.066 489.908 ]/A << /S /GoTo /D (subsection.17.1) >> >>
endobj
-660 0 obj
-<< /D [ 658 0 R /XYZ 78.37 808.885 null ] >>
+659 0 obj
+<< /D [ 657 0 R /XYZ 78.37 808.885 null ] >>
endobj
173 0 obj
-<< /D [ 658 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 657 0 R /XYZ 79.37 771.024 null ] >>
endobj
177 0 obj
-<< /D [ 658 0 R /XYZ 79.37 304.388 null ] >>
+<< /D [ 657 0 R /XYZ 79.37 304.388 null ] >>
endobj
-657 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F19 383 0 R /F25 379 0 R /F16 386 0 R /F65 391 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+656 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F19 383 0 R /F25 379 0 R /F16 386 0 R /F64 391 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-666 0 obj
-<< /Filter /FlateDecode /Length 5408 >>
-stream
-x=˒$m:&wDdž7B:Mhnqm}33U53U   I/Ohÿ1y*P/~A/-#T˗_.xTRJ+~ a;~# 𖿥?Q>cOKp Qof
-p%(Eh)<J<dAGYhߣ=U55%FB3TZ%9 %ɩԓ7U+<x,mE=ƏX i,-\FYˆzz9 Yo5%7(Ž `o|  e 'PFnzLE& ^kiVPV~U տj6 3k! Iqd1H8k )HM3m? 2[V"MW:[abAxs,h8g_e
-QL_.S+7;_ހ!h <A;ǾY <~
-D
-
-N
-Nic?o/ drԹB'?Z
-cs?:>Pœ>-J?#'J?!V6p5j]<~{5ݏi5Nl" س?}$owC nÖM|^t' wN Z
-=JG)AE
-]x&`]VߍR||Y. о 6Q86L0E~\*_ O5 }9-6!4bKXpiRm rn5cQ#;g[Rĺ#fm- ZZ@@eHtK 3V-K-)iQ䔒V3)MtHCSarX$.nFlvLֵ+\:/.X__
-+c m\UC)(q\*B<&x*0}) )bB/UL'&I釮*"PhpJ2slSӲ0+5ϖ*i
-$n1cd)9*"I)]b.pE\ǐj\ehcD+@+Cj+Lq3uڠ%h[|Zq/a 7~oã%dLZPJ{$v+$$B~F&M)fmRQ8s5E)fDl'(eDJ@rQ;ghSR;hm
-?!]y?(M Q>O6\'=rGE~
-`8F
-6]QwP&x:WC|M](zs!$:ʞ
-PNb Ax>
-Ocpb+8# 5g"E#":J|)_D*(z]
-]vi'@t_-]k*p% x&aJ͑to{&fU|{1(eO3
-sĭt̋:~j$7ˈD'h'
-pwM'/>7){*өHs1)ʹ]GnFNN7b R
-Yb%ʭDRQ~Rݨ`9kĖl V !ɴ̟HW 
-}oT8RT:itLz9="9-򬩁Jۼ{b橜sY1-}f=ԗXƵ)k8rC | sǪ2f~&o1@8]a4&o!jr+[ W7+o9[;rJ˪>gzJs]4$v
-Wз#8Dtssa9a ]; 3W:1CN5^ʧ tD FqNxa4grÈ+gd~ O fyp֎XO|6}=GU5QhU٫2 lд\HJL]Us}ݘ ڍ|˴]j m{c I;9HoRܖ:_E|l
-:tu
-b1k:*=jXJ3^~x)Ҟ2af Y~ذI2pdK&X [!8ʘㄣO&&eY+mm2;{'/sw^bnĎ6lOPߔ<:tso3g,cgF1DCXs= ԭ?DUyp|y2L]<fU?\Ҿe v,> Re`oMN +.\<- ԴLA'5ÙdP  DI8c
+665 0 obj
+<< /Filter /FlateDecode /Length 5375 >>
+stream
+x˲d7m?_KhV鹹 Ua߲}OߞeIeYmzB/߾O~O~za0]>pR*)+w>/ __ooWۆ_\m"~%cT@?K@\byHrg
+}@ X6
+؇φ{cc? yfHDώ0.;ueg gQg@ɭ'ab4u&aTc>~,T?|}c(QS)e(xy(N܄7졪i(>B5&԰sV̱W9!ʂ$Y<){XyME6Fy=Ē0be<:"pdy#ρC*zkx\=eU#M"츈߀J- ƗI0lŭmo89aDŽ,1^c<Lj*6U Կ
+j4 k! rIl #ӬlE.o/#0,Um K-$YmB'?:vV\wzo"
+ Ѷ5E# /qQ v6ɞ0v`o<(J/ bmHs6KM~$ SF%\ /:({̘b(r;[g*Ϗ~dg$" T-;nĥTێK7Ip^k=QmXxXרKrhԬPYVmGi"@N<d=~a#%XˬHChsbNZG`=5Uuh4}21wJO'ubE(V4,~9ie1
+y ͧjC('d!~x
+P઼qA[reu[#FmMW:3-VmX@?8ё~#%pLx.VO_Թ03P 5@קEgu$HgX|ne#goZu?#GJ?#]y6߻i ?:5e{!yn-NN*N&>A/v' 
+hpDI$/sE8x?'E&%4SvUdk- Xd& Hd,-x$$!$;fE(r] |G; \;+T; ȮvVD#&̵SYiEK{ʙAv̕3S΂x$(nVYF*7NbK3J戼`: !+)?8,Yۃׁ6,V42!)JWĊH)Qh(l_zhDF΂OyĤ:)Ϙ&'Z+JdsT 8*̱uUJX&J
+tmXOV30'vÁ5;R3EKzu
+*axәJO=U5N\%ujjOGUM0%$od"vZ1?PF}o׶;,9PO
+NLbTBS-601 ̀f 0MOw'"S
+T~'HY@_@.0Vi105`ʭN8*4մO5jՀ7j{S Co2O5SH
+̢k)Yf'쨯00
+]fF'KinR_C$Dz3M RZo77cN"zF{o ޵R=kI^n]Kg\BC ɽ9FX-SD>ǖ֊DDAӉt-B|$8La22Rˁ4
+g)x=Km)N7hlkb=DÕ!V-f ]Aߖ_%clVIIΟDW
+Jy_|Tĸg>y񅎲^$$?fHzQSCv3Oz&'ŌD;!T{/ 9k:Pb״mk4UM`6sXWUKeMs8kr;Ϗ0v_:Go_ٛۤ;|7a߬.ve+㮫7=s7PN{~HK5_w/`еV#8KsnDǤ=EO}0a>.BuaV*B3rMCnoOy3FTln}4 0hWM%Fz<Uʝ />_inPPfULv
+X>n˜ٮ̍ȼAлGPou7 \rtYmE҈2;
+1%}Y̓a ^ `zu.'# shm?y *⣦Nx ucOn%wn14/tB uzxٶ=QC>lP?d  ak8=y>A[ aFq/Ɠ>$`ʔ!$o̞x`:~UVÞIS~K/S&yYGlN | G⭚lvrM}n ݼqubt}h?GľmDF'0a~a6ro *]~ m-<W-g#c--)Sx[hwpv`D!ر3|x:I[Ky*Q5/.xH5e8$C8r_FZϥ|~.͠"b8RBܿ {ƾ@FPd߱:]v[f88M7jڃgRFu{85bz-{5tZC(.:3SO4T~l]e8noRxne18]g]ݷcb[g#PGxI['Vy5ΫM3A5"Ո:pF?l+hpL0`ܩsx V;({i6{^Vw;:xNɇw[Yؚ
endstream
endobj
-665 0 obj
-<< /Type /Page /Contents 666 0 R /Resources 664 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 668 0 R >>
+664 0 obj
+<< /Type /Page /Contents 665 0 R /Resources 663 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 618 0 R /Annots 667 0 R >>
endobj
-668 0 obj
-[ 662 0 R 663 0 R ]
+667 0 obj
+[ 661 0 R 662 0 R ]
endobj
-662 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 246.713 590.495 258.668 602.451 ]/A << /S /GoTo /D (section.11) >> >>
+661 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 246.713 601.312 258.668 613.267 ]/A << /S /GoTo /D (section.11) >> >>
endobj
-663 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 274.389 590.495 286.344 602.451 ]/A << /S /GoTo /D (section.11) >> >>
+662 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 274.389 601.312 286.344 613.267 ]/A << /S /GoTo /D (section.11) >> >>
endobj
-667 0 obj
-<< /D [ 665 0 R /XYZ 78.37 808.885 null ] >>
+666 0 obj
+<< /D [ 664 0 R /XYZ 78.37 808.885 null ] >>
endobj
-664 0 obj
+663 0 obj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F16 386 0 R /F19 383 0 R /F25 379 0 R /F20 380 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-674 0 obj
-<< /Filter /FlateDecode /Length 4406 >>
+673 0 obj
+<< /Filter /FlateDecode /Length 4405 >>
stream
x]M Wlo U%Qa7odԷ46A{hSfFI&;CQ$ERg/7ox4}ysO\<Fu7E\g`/Ors_@ƹ¿U-ox9|޳EHK4#o HoxGUZ>|̋2ÿGZ5}$3U#^wV& )/hK-[m 5Ӫ؀/m@?'ovvvk!ҽ3P#/
<3v3 /mާ1Q~ 4ZWB<_^fԿJxmo4=VЎ#|z.gBߜſXoI2a凟| 7@ ӗ^åbp
@@ -2612,1007 +2595,1019 @@ pɠ[ eARtRaD?3GrCHL\3o<@ˤrq[!,l,GQ)}
WdK>9@Fk:S;E Oxeh}Ie*١TZ z;
M쾃N|V6ӳNԫ>4bUv#LF̞XÉH8 >A
U\AUm"[ U쬈UU9@4TSf kֶN -S@\WuU>b6AqZ[Z; wd*YwAzZj_K=VTiFvdZԇ8 B}m]{V+;AJʉa5=JhҩII=dzZfw9ȝrRǧfw+؈WZ E~X52p%]W*}>\oh&&Ý; |GiuRV6\3WcqP5Qd9],Q}[.(j Bk}c`4VpYw
-cJ9+ W=fI4af$p_A[ 1h( tװzm
-,w %o\ |l2Kf0+*%zjVu
+cJ9+ W=fI4af$p_A[ m6
+R X1Ct
endstream
endobj
-673 0 obj
-<< /Type /Page /Contents 674 0 R /Resources 672 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 676 0 R >>
+672 0 obj
+<< /Type /Page /Contents 673 0 R /Resources 671 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 618 0 R /Annots 675 0 R >>
endobj
-676 0 obj
-[ 669 0 R 670 0 R 671 0 R ]
+675 0 obj
+[ 668 0 R 669 0 R 670 0 R ]
endobj
-669 0 obj
+668 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 247.659 468.618 259.614 480.573 ]/A << /S /GoTo /D (subsection.15.4) >> >>
endobj
-670 0 obj
+669 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.923 257.918 207.629 268.757 ]/A << /S /GoTo /D (subsection.18.9) >> >>
endobj
-671 0 obj
+670 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.581 257.918 232.536 268.757 ]/A << /S /GoTo /D (subsection.18.9) >> >>
endobj
-675 0 obj
-<< /D [ 673 0 R /XYZ 78.37 808.885 null ] >>
+674 0 obj
+<< /D [ 672 0 R /XYZ 78.37 808.885 null ] >>
endobj
-672 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F17 384 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F15 385 0 R /F55 387 0 R /F57 389 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F71 419 0 R >> /ProcSet [ /PDF /Text ] >>
+671 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F17 384 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F15 385 0 R /F55 387 0 R /F57 389 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F70 419 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-680 0 obj
-<< /Filter /FlateDecode /Length 4657 >>
-stream
-x]KW: Xz $'ź9>9`_ S7n4HpEz]D~<Q77_>+}rio;G9ӷj~ S-϶|NmOM8,yv?%aTܼͫFmGs01sZ30Q >k:aN2y:Js2gӑð~Wqj;&/;އP#?B^x&ҘB<%V=@kp^<.RAU+*ԖKO!,c
-޸HL.{pyeZ @ItPFU8P@=
-Ԑ
-@G=iQ\c`s爑pvNڃMͭs
-+(#Z ̑ŽtWLa}2ʈzntrwX N1x;wL!@\xz.};
-ݠ/%ON EmK;K|!07XZ7 x=㹦+ c寸TSW>:X[iݶx @;k
-A긡:Paa{5ҶԐq1ڜ1!
-6ke˨r85ENz;j3~
-.Vt$bdAd5T a1(f ftcJdžQ 9lQۂ_7u/NB)(;WyO=*x>`cSօc-aՎNBe>T[^gM8)dh|-Y7|4ɥڜ d ,AzH mp?Q9nt6RaYe}
-x蒳GyE/a4m+3đH-MHUviYӄxxF0UJhh
-eQ{,#2!P<a/XAv ތ$Mܘ
-x+Y:6s&ܾy#ť}#8y@Gg ^ 'ށ/]°ʱa>d꓀H%N7`8N%;,2aqg+H ~nArbܽKZ⻼ RjZHȿ^Q*
-(:kyf#ڴwyO.F lě|"`
-VxP_
-TR9y Fi$ldDӒߣ H)zH"sZWs; m#הR9b}Șߩ?
-֘ŖU[V#; C}`}z{.w p9u8[ٖ/Zc},'2Wq]8Kzݜc56*αkU@=V }*_u
-ߕtuc| VH@?R T Nh9/k/|,2lNI==a{pNyh ,@!Y#KM劕ǛX>+p ]30b-`MN`w^
-Ο]h8;1w>C0Z!+_|]F*rn[aS0ͥZa틞tUKt>OKU@rW*J|KDʷR4UPF<"Ξ4qF۸k[P\Om(䐳hS4,=zڗhZꭴ-
-y9>
-O5R¦ڲ'Au7Zc .dsRꪍO
-ŝeʣWrb .aYxXsjR]L1UU։kRRAXjQ:IJe Ur^\U)IS* vtyT-\CƱF(s&MIIdahY5iH-L@(<U}~o&XN7/Q(.
-5|D+4m\_Y+P,h8q+~ߟcogՒhNߤkN
-5ژDsH9d\9_!b]sUxgۼ-eo\ (Nrb_LKG9~u| g}_"VTb_;#bW/6l
+679 0 obj
+<< /Filter /FlateDecode /Length 4600 >>
+stream
+x]Kﯘuz 8'ź9>9`_ S7n4@pŪ ^J~?]]>>|?>0 'v2s2/)&~[mRNq}Y.咎0?k5'רM,2F^fU ~?> p᳦#>\T(1qj>1sXz6(|5ÿ!젚S/އP#?B^x&ҘB<%V=@kl(ST0J
+&t.ewUۥ/要 eoY^" zhdUGp8GKІbq{`9NBּ"xVAV
+z)bf9QOπDg6\%*}^ QM֌a Ssl0mH>@OPI
+@S
+5s1~K|߹fN=jn9 5s
+xk PBwŎ=ϹkYqb,
+k1Q5kX7 O_?ZE (?׭>nh,\V m*CҜ4x+9b"j;bρZ zhΑiXDǬDT0f Bt5p$o4fGZ]{.FDsHɘ0Qk9c. hni V5 "7Ю'7 N$&ͺI
+AzCˇ9%IS1HRAǩhSc -Cl9uQz7pJsBvgV%\0ҋ1.dAd5 k3FqjʻQIjm |'RHsr^+ W<t}G1{i'x0_!TCLeݏQ`݄cKvNar !f䚜M,^ \`ڸ} KFJhC*pc1
+*tSpCĐߦ8bs,z oc8^G֣#00 HXҲ Xa,UJXhJeS{#2)Pbq}/pg0FX@ZfxoϘ
+]tOn{qFCz4)ǤmR&Gpt#.z?02d/f+H9t{ Avي5R”~5I 5(] [vr-3V}%K}_6-ff,'d/2]Q]8,6ctS5CZigI+ɰW6v(f$8q_ +>ɀz)D&DNpL4ĵpɪEsf&sWOB˱6'y⒀;UZ咡 ;ݣM7z&d ['\oࢅWSWRfw(c[`WRmDF+7huumJ,}[A+&33Dp ]*>v
+l/ Z 3YrSu-a+7ؗH{e[^]~'`25q x)D- ry?|j=DHٜҷ;E{RF(|Д`%Wm*ݲojO.<C^pPDwtl漸}GFKF
+lCuyb5Wj9Z9XX`\Ty֘@KL5_w+_ԉxK|!m+ՏpxfٴbyGK})_Rk&O<z{t
+pJUz%e 
+zf&?>F<6s/)py
+#/wd꣫\1xf^rDSٞ8
+3 @pS/ O^4Rw;S N}/.fsvKgO.qNOh3W?<uH#UI@
+i;/UMV~*J")=״[ٯ?|VES=Kϩ'Q%ٓ&|_sm&RAfl>i8h$k7y%Uz/dK`'zγU/V@<] ž]h=j;)>!J>Xyg)"W~8D]/]
+>N~~3basXZ©HS )'С{dT/Ua.Z9y
+w4^n5d c)YJ`P[>pb.Uí>[paB[ĚT|*P1TR^j T%Z[FmTUh~ZKYUx>%>Eɹ`ՒKEv.)EtyTW\eCƱ'9LIIeahY4.0{[ 3ۣ
+v)Bھ_,Y_ 7 9!:nܰT1֏0k =HFڥm3|ύ57q XTkdILl߇_dx}-n3y󕼗bpmːC/ X|&IyJY_1b{Gb1A{񕭢K̈́9/?8)\-oTm:E([nI:;<M>kDx/ͥ8Vp}nĀ1N@CLK᷎?lM9eB?\ razɏ|)g}⟽"֫U;k`S?Qv`
endstream
endobj
-679 0 obj
-<< /Type /Page /Contents 680 0 R /Resources 678 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 682 0 R >>
+678 0 obj
+<< /Type /Page /Contents 679 0 R /Resources 677 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 618 0 R /Annots 681 0 R >>
endobj
-682 0 obj
-[ 677 0 R ]
+681 0 obj
+[ 676 0 R ]
endobj
-677 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 111.059 85.34 307.73 96.959 ]
+676 0 obj
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 111.059 109.25 307.73 120.87 ]
/Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/685755)>>
>>
endobj
-681 0 obj
-<< /D [ 679 0 R /XYZ 78.37 808.885 null ] >>
+680 0 obj
+<< /D [ 678 0 R /XYZ 78.37 808.885 null ] >>
endobj
181 0 obj
-<< /D [ 679 0 R /XYZ 79.37 533.569 null ] >>
+<< /D [ 678 0 R /XYZ 79.37 545.524 null ] >>
endobj
-678 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F22 408 0 R /F16 386 0 R /F25 379 0 R /F15 385 0 R /F57 389 0 R /F69 406 0 R /F19 383 0 R /F55 387 0 R /F67 393 0 R /F58 390 0 R /F65 391 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+677 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F22 408 0 R /F16 386 0 R /F25 379 0 R /F15 385 0 R /F57 389 0 R /F68 406 0 R /F19 383 0 R /F55 387 0 R /F66 393 0 R /F58 390 0 R /F64 391 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-691 0 obj
-<< /Filter /FlateDecode /Length 4711 >>
-stream
-xKbaTz<٬dԷIK>{IOkv|xGKQ|$r/?_2M??>UgހQ?= qI{F0%.?]xH%ϝs3k>=¨w 3x%7.<SZ4K>{~2&su ]2}KW- w˱L[7&s]V /H6ʟ>>#$ӮIkc_i13Ѩ|@KeE,F/$F 7XSaȆ
-O*ʘlDG*(qUri%H4FIsn\0#וW`(AuXq[[.Կ>_+虋7xOHw4Pq&C  kȤw?.O.9,\5v| -:/@ cO)JLhJF^V
-#4$$%k܉Es> \55X7i[ar ҉'y|d~w548R{e^1?
-.zz/~-J{fæ0xu$TQT9P0ڶ
-w"-Q4*o6vpldZO <P2.YDnI#{KX,Bxz{ˈ[Q:v8
-gs?/L vBSBzRjIE@ŨBIO[_TyR10˘%HfYz8mA4Fr[T*v/ !&3#<#
-&Tj9"y\)WŠs nr܍a^U?/[ۂ|*&>Eag2; Q]*ԛC}Wicy)ąg\S*.ҳTkǸRSή>ZVfqÎK g;( R
-(2L(t\vgS"a’<݀]0Қ[1 Sd\L򛫝&"n۞e^uhۓz,ɢۋP]>LGIń3w|q #ۑ[4T:ϥE_-p!7A.<V"c l\XǑBi2 ΋zy^Lr!ʥBl(N ?0|0u4n5 VNlJ0ZU50ng3a`Z.`^W;.slV 3|R,gV@ Y0CI"䁔N9ޏ}Y3ݢD|{_):(mRh[p\VM5dk<4l\?Q90G\t6.:r1uȥ9+0hV"~8{fDah
-Hlj.nĮnϫ dXGqxH8 .aؠZFyT>X*/(\*9ǪW aJP9{$alj@8T`4-
-_y1@/B\Sƪ6(E$!M=փQ^C 12 jC2yc^ 'Œ];A+ [RZ3Kb_9掫>{{kxażF.ޔ+n|;dI6dĸ'mUz4I˼[ŵ_0Oك_Hmi'EPqn,/}Y& [O9…gxd
-5sAESx)SLwMާNQ(˖US-wK+IIxɒD囤/5j|`L}qxI,'Ks{WtuX8- x7a t=gΣ`GI%!;+HhOY?VI
-Qt
+686 0 obj
+<< /Filter /FlateDecode /Length 5116 >>
+stream
+x]I$;nȣ PhS}4L6|1忛C)PݙJ>Q$ROﯟV߾
+2?k7=K9Ch*>˺֕A]s$4hݍ g8.-_"pBYǴ'g΀R_o-
+혲f&bdGEި[B:Tƨ{6d9.J-*C\lKe8XK9\.U}$m}Af)rA.\l_4#`f{na 2wRkPs&řO݀@7}ۧosL;y{Jd-Z0(?%N ZU*Yu;%8Dw gڈ] rWK |ǽF{.]u3Lv^nv'~_b|O^{ !z#꽖=f={ fI7Lvnv'!.I2>BcJrc1L(ñʑkI:9ғ`7b?i 0XL#{v\LOF@Py^u/Q})9T
+P{
+p؍F~.(B,#:dX1CE /Zt֭r)~NxnΗ+NbTBJ<-gxxpH-2 ˃@ َY )Zw9qGlP6<31GkL흓I3'"+P$: 6*/<0
+*sEJ"N"UVbf;R>Yp
+*tqd!_񳟳 < .46wCA= r ^½n,If;uү%ɜ-diDQYٚ\jv3YdIDC_H+@=H{Njbkݰ9^z523ew3]zj|m9vEMȵ,T/-M:Lz<Ԣ8(}2uQԉ~4ιTbRҷ5ʕQclۺ聖I4_ӛ/,SL)jKjm@MaWt$ׂj+}:vƴclcS
+qXcf^FC-qEhF+VL~ZH-$8pI~ ;3f ּNUk;
+*TE2[!%S$W٨D4֡?!)_*:[4었.,*|g[
+v2xF+x*GMSN.21XmȮO{Lbҵ K.,8S%/qd ex+QFk{5T$qKSH"&KSɬ"xmo=`G&(EX6m pA(+lvX؃/0N8j2wr-i)-f@,iUoVKKǒɕyW\ţF$Qݾ>iǂۀVڝrXR+󩛋޵GQMF)\ 'm,Sy?mv>IeKǪҁ$(E{zٕF>qL8_4b{W:u&NB!l9.en|>ڼqU,$)Yb6̜#yp,v0+ȪWD-{e%w6eMX,ެ]匲 uam{q7dHK@{Yd*E|^iwY';ȉj\Rڋ*ǐѯ,I†/@j M@~砣$?7X6T?(+HY&i|hv/h-rtaKrbQ[3nf^-s%=ryg39
+9ŦQ2}TL҇WO|`^ ɪ9t42:uV\Ο7R`?1Y1=dR,O㽗zYÔCr d\*uM9¬k3%&6- Q> '7/O[*# MVm* DSP(ahD`gX ~Ve3:4v
+ePP(z+_'kW f+lХ,`bˉtTVZL\Wܧs,g{a/ل,]^لLԘ?N-[0Ͷ[_Qyh<9$Ru8B4+VךHi'rc3h,ąTwWlBJSL11/ۮu+Qm
+ (1&8'7!cݣRPAn Q,\(+ ^IEs*nВ~a'SiXH\^
+WA
+zPaUgKIJӆ>wyFN"%0AFb4wE(kLXMb܉KJjEbFq_/1f|Nb|ԯ⣫vw\QߵoˁQ/x+PUܔvږro׊qYˡC~v:ЏQ,b)[/G㷄噀cL74&R\W8p\G\aq͡O<M|L 3a#`g'-$4H0 6a#FF6.xg$萝 S v,@1Oc Aqu;A&'_c
+o1
+>ԔԔxM3cU3/0^YAPlO} ]C0(W]Yj/&4a)/zj^^ .>}LMPv6*X!PVn=p+.D+P ௸?r L}Сw8A&'X
+*8oàlZM r!Goݬ
+
+.{IT} riGyށKLwoMzd]a[?6/\ǘF 0-_ct:&]
+dFPׂkϜWRƵ1ƭ ۻ>,ǘ'Dϼ><,J.{qXֵ1N҇wv)Q6daak~m}#ǥYETdByQ:htĂS7񣧸(dUvQqq.~/Jزgf5ŭ1ygԻċn"0"f~"˸6OR62.^XtHKŵy7Os/W˶}Ʒz;w+|X ]15*UF-
endstream
endobj
-690 0 obj
-<< /Type /Page /Contents 691 0 R /Resources 689 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 619 0 R /Annots 693 0 R >>
-endobj
-693 0 obj
-[ 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R ]
-endobj
-683 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 363.496 595.346 375.451 607.301 ]/A << /S /GoTo /D (section.9) >> >>
+685 0 obj
+<< /Type /Page /Contents 686 0 R /Resources 684 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 618 0 R /Annots 688 0 R >>
endobj
-684 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 247.126 583.391 259.081 595.346 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+688 0 obj
+[ 682 0 R 683 0 R ]
endobj
-685 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 402.649 160.807 409.623 172.762 ]/A << /S /GoTo /D (section.9) >> >>
+682 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 363.496 594.869 375.451 606.824 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-686 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 425.96 160.807 437.915 172.762 ]/A << /S /GoTo /D (section.9) >> >>
+683 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 247.126 582.914 259.081 594.869 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
687 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 120.984 82.049 127.958 93.277 ]/A << /S /GoTo /D (table.caption.1) >> >>
+<< /D [ 685 0 R /XYZ 78.37 808.885 null ] >>
endobj
-688 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 143.679 82.049 155.634 93.277 ]/A << /S /GoTo /D (table.caption.1) >> >>
+185 0 obj
+<< /D [ 685 0 R /XYZ 79.37 665.524 null ] >>
endobj
-692 0 obj
-<< /D [ 690 0 R /XYZ 78.37 808.885 null ] >>
+684 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F25 379 0 R /F16 386 0 R /F19 383 0 R /F68 406 0 R /F15 385 0 R /F64 391 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-185 0 obj
-<< /D [ 690 0 R /XYZ 79.37 666.001 null ] >>
+697 0 obj
+<< /Filter /FlateDecode /Length 3558 >>
+stream
+xڽI$ޯFvP@eg
+h7|V ˓+ {$е_=O<o\mxBQO vA;Hiǿ]B30m/i7iq7`}Ι`a؏W!Gk["6TmV
+mWb<Chݥ 1z<%6p-ODkl)at^7oy$v-<11$ڢ7\<BuE%=Ώ(\n0l&3Tpybm"^1sLf"JDԻ[%dce@0Y 8ڼBU4բh#V]|&ez;U*eV&)z?漣yQQnD=`oM4:-40Hu+ɱ)Y Oˑ&oDg.ןaaʈ Z#햸nDM)O~Ayu6GAY$k0S}]MtJ<ZbJd`Vw@)7l){hUq +00
+,$ɷmGI|
+A.%UBh
+6JPGȴ"r@ɾ'ƉTNw?3^wz0f#+< >Sah%?qu"ץ7[Zב~V>Q-$&Yjc# >nVo>qBZ7f<W]/@wܕveкMhĀ\4z" c ynjGYM9YsʫZeb4-[Dχ-l|LXPE^
+E-Yz(.!)H=ݵ2Fgd7 !Y6k/=WLqD15_?c!C٣5D^33r ͹\vMy8JO}_Zm+ʮeR1'f 1Clܮr(.sCd.AԢ"ͻ̉OhqK|Fl_z9 `Х2Nio)_ڪʁ:a[e]JÁ,R%KƻyE*xĿ
+`gS\HǙn={@ rEEKOH ֶ.R$7JUrQ
+Q]gJӋB]gښ^BgMO6PdF林koH†m
+~k>)ˍcV^d8J$鿺x[&K<mL xKs}|4@.}d(en|aV__6cˍxڟya<
+>,H2I!!Pr6W[#0[#,f̲y itet$7JO{?9?sQv=#t|unٻg16>{iz]C-o/Ge~@wХ<=@ǘ)|4t>#ԳJ / +}܋bb@Ru?j@Qzꉌõ N/+I.2U\ -j粖5&f%Sn#*O4\?惑onR ٴN/z* ˸{e3tRŲübi!"~NZV@+歡(XDP%UH~CJ*#;&\xU!Ar
+f4ov%[6~mӬ3=d
+r?B._'Ho%w4vhs LD>3ry,$ӓ6ޱIJQяaC1?P"D
+! Rd~{d﷤b_ gj&!!ydmϳ%9L{@m$  ë̓ɪ/BڐNk֊5uڰ4s|)$aOΔZaBqY6.[ZSQ2\=˛(n>;)0X>VHwF%sۜ-q*JP8t[Sb6 hɗe7pT_Mgf)tue#ù};O}'DC [\3
+9枻1 m{_&jaݴn\d,^%K=3"5 Kh[d[.d|#i2UtBmCz,CͽE#Ns
+^e-wPS^6n#B0-ڰˊܽWoi{n<s;趋Vq<42khIڞY4fĶI{?~/ȑf
+endstream
endobj
-189 0 obj
-<< /D [ 690 0 R /XYZ 79.37 275.838 null ] >>
+696 0 obj
+<< /Type /Page /Contents 697 0 R /Resources 695 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 699 0 R /Annots 700 0 R >>
endobj
-193 0 obj
-<< /D [ 690 0 R /XYZ 79.37 236.333 null ] >>
+700 0 obj
+[ 689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R ]
endobj
689 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F25 379 0 R /F16 386 0 R /F19 383 0 R /F69 406 0 R /F15 385 0 R /F65 391 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 402.649 657.994 409.623 669.95 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-699 0 obj
-<< /Filter /FlateDecode /Length 4292 >>
-stream
-xڽɎc_hY܁FiˀsdnOC2|笠HV=X,"_~o/n_`^ka/" Lڋ5q#.߾_~}\3~; xVi_"s>2qO7/yF-pi
-&mYpHsGrl$rL&ڄv;-<:Iv&ϙjw&rn"*5>TfR8H5k* %[bhi m-`X4
-nqVfڪ2͊^2-YZThJ1-'f(ڸ ޺RzەA6RiQ?rMћ0zHnj:WvHYr4vٕe֎mБK6H Qp WF~JjKpkq_[lcǜM0rRՓQȪVT]P~,=&S5(AvOh
-Ɂjd-$CJPbѠi`svݝqqJ\ @ F5e<{X"LG}f*H-1$c+F9 aMz?ೞI5.gBzK<tjYjY-_G{I!K/9f 0QW~䦷aԭ^|T>Ҷ
-?E&]pt;T̪P&T#dU{<cQ>ͬ~Tc<vG:jq9Ei.9QC9 QR5~f;-ړ4+˜\Z\=[$@Rӯ"h$MK@Vs׏وW$pFvifF\A1*@HlXDiӄ}SlT21Ljz`vɣPre3t81(G1偎pRbedxćniWlT`
--HLS߂,S:*P qi-mB"NEC/URxn\gR:tKBg$rɘ\T{#^s ]~[zd-0jE.hE]P*y**7~x,qlcw8RwlTIGbƠb=R0Bk%Ͻ'h:VEd;]<8Xvmv9 ^36qad֙ a̒YjzK.vO9҉..(cgRq1?> fJRn RzO9V0e 29;cf;F@}y P0`Lt́f*R7)0knjoϨ]'e KTdPZA+E>eob`=)"!ѮA01 =%vio ;ʸ#t@s(>=˶i8h}6Hq'VgD3X|/KB Cx3Im\LN|SZ֓[L )=Zvɪ߻Wz1CCE`S2g:AɸwQ]q/F[qmrO9$ɅLnQO#bȪ%8Q8chm1929Fޢ6J T*7>f4eɻ>
-] N6޸mw}ňZO?HiN=sʌ#Ăk
-[(<<v>Ca}!Q8۲t –= c9dko[Z爒k"6u\J8,^¥3b$BOI-q\pLG㟛1!9L! !1iƥ[Q22ǚEm5n}X2PQyل3#3RX,ȪYz?(=Gg+ot6I*p㱎qnq38ӷ%01(V߿q?_bk
-&_^K~~ [l}
-љ¥L;sZh3?9Z5Ib;p1;mՊL"l⁍ؓt@n]b|ɋanmaJ!D<B Z<Y s8ГZYɺ5uMy{)B{F$u:5*{
-M4 0i2ӅiPBgFi?t3guBnP2> P0z #P J188ipEFaIvVS0ZP)$--DO2x')DG
-ɡ ZߒM1 SBaZX<0;FqJ80r?H¡ס70}uTJ)A8[IHf'j=R?.ƸDQ_)O_Gў䷣N_p/|=_?.2lvr)l`6DAY3 \l"QՁDgyC_S,H>S*'9_KI??x"EP[\}53!K ,șRD8fA`cH Al
-,1>DW)ND6zaٞW,^Ts
-/ͭ͵zBU1^/"%Ů
-!w
-QB
-endstream
+690 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 425.96 657.994 437.915 669.95 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-698 0 obj
-<< /Type /Page /Contents 699 0 R /Resources 697 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 707 0 R >>
+691 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 120.984 577.576 127.958 588.804 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
-707 0 obj
-[ 695 0 R 696 0 R ]
+692 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 143.679 577.576 155.634 588.804 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
-695 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.871 515.845 441.844 527.801 ]/A << /S /GoTo /D (section.9) >> >>
+693 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 434.871 287.354 441.844 299.31 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-696 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.583 515.845 469.538 527.801 ]/A << /S /GoTo /D (section.9) >> >>
+694 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.583 287.354 469.538 299.31 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-700 0 obj
-<< /D [ 698 0 R /XYZ 78.37 808.885 null ] >>
+698 0 obj
+<< /D [ 696 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+189 0 obj
+<< /D [ 696 0 R /XYZ 79.37 771.024 null ] >>
+endobj
+193 0 obj
+<< /D [ 696 0 R /XYZ 79.37 734.627 null ] >>
endobj
197 0 obj
-<< /D [ 698 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 696 0 R /XYZ 79.37 544.585 null ] >>
endobj
201 0 obj
-<< /D [ 698 0 R /XYZ 79.37 575.691 null ] >>
+<< /D [ 696 0 R /XYZ 79.37 347.2 null ] >>
endobj
-701 0 obj
-<< /D [ 698 0 R /XYZ 226.44 271.385 null ] >>
-endobj
-703 0 obj
-<< /D [ 698 0 R /XYZ 232.109 259.336 null ] >>
+695 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-704 0 obj
-<< /D [ 698 0 R /XYZ 195.137 226.534 null ] >>
+706 0 obj
+<< /Filter /FlateDecode /Length 4566 >>
+stream
+xڽ\Ɏ$W4} |xnN2e@'K%3Y-j+  ?_&n"&9'o_~AR//}~巗c |'|vcnyl߿|``iX
+<{kBòaZC؞_/Ȱg6_ޭ_3Ks`8>Eyι[$a>&a|rL d6,p#?ǫ+W>0c>4N?+e(.JSRN;rJGN* ;{ĩ(Q/s%lb+mTsuVaE +
+D"'%P1U9EU^`G1H[wn`TeZAÜ]Pf:U< AjEZe.J!'%쬹CV4q'X{};
+ZrlNN\Qt~7 \s!?a J3J?A}O3CfBBiM<(/U3,y *@k+0
+Nha`m灷?x j>[ d!'Lr`4H
+or*Щ߲ٷf!`a"'0A{N/
+gOG4.?CVh~ms˄vJk4?g6UܸR\U_3U_@?[,:YߣR"dŠj{{}Щ4KF>`,9A.EjAδ&M u 0ױ A*,@|h}`B͌H>/J@ƶ'-bjJh"cSDW6 k`l (5Ԙ0X"t}@- W7䪱HŞJ~ܗ4wZWrʕqeǧU+;A9F\moU3e&7`sח`us\t|6v}} YVpҙH/kO2cDvȁ dx^}u7̉I \%s26zuZ]wCO1ES9If D-(_^;ŁV}|yDF){*
+j[|%Pį+*usP# GkFnpTprd :p;Yp_qmQg[Hy| КH2!x!
+!.3>^RJN]VB0h*=WGBaW-bˏb'svY{ ~Mrə?1OFs`3c:}-[#QFp[]Td!)$'ET̃<@
+18Ptdx~*"O[f|>-Ėif.'s/su'Q6U<u]wW+f2
+)$i4[[~]ݷĕ[xʌhۢR9F1!vљ<70QFe6mz[ŇiQTGDּ mq:IUwqJґP:sg]F?ƿs)
+!|z2Y0Jߓ( |n5O29E:3`¢R !|4/c4ʞ[B@]U7.:˱8(oG"H=j q\ǹn͔wւJBbeÐeD'J]zvf[=mfkx+8`Є{3-ڼoRX$mP]D~HssiyLsեzآ9(-%h,*O[QSO(MN~L~jz3E6DK3=K'I*|p8ɔQ
+D`E
++_Gr+)N!PS!0>Ӱ"dсZGA-8$4X24Oղ$ISq[&^\X.WfְʤNA/9b"lَĶ`nHyÃ'Vn0U$+Mdjʺk+fŽ#VngC.j]!HzW s^.f8 NV81YIosC4yPzړ^k=@֩V{B#(L1.,wPQ+ɤbŸpî=swzo/v8Wg-[M)3~.F;P
+0r oP!X9/?+9V kQ*tgEH!C>
+3?4P^wO5/$/@|NuS' 
+
+)L"g &"rN~*sR)"'Hf\T7J.e`
+'cI<,8dV `d8:$*%[C33Ma[wfX6zXx:VOSͰN* <SAD JLlw遛qSg!zn;9QрNAO@X񓁹c!IDz&.o<3ۏtόwWS.kaFn>v4QȌL-J/]%.u تOrʹŔsI<5[vL$%N*rd$icYjILuJ5e ]}AOFۙB$3c>G9=' ,ۖ[팇b}]:?Xr3u5JV:?bIzOI˼5?r}!Ȁ;9J\ WAJbz"Lnx\_]Bō/ QSUxKud$/eMI Gg{q>yo?lʞ9ȩL\^Y!Ǝ%)K!JO4\Z{f´e˓5jnq!& o
+ԝxu%nfx6wEd+=Ļܿڕ.S0 d`9Don`n^7B(){m @lH́*DTSGOOyȡi͈ wk1n^ޒzhp|mL
+ІzC]CS.)Iؚs8r3
+SƜR ,dY͍nW@ 9
+%%πaVYS~NUc%)煁@1ߝzk"ʘkbͷYZ_*NoOe
+jNR²._5q'ƶ J9!m[7y'/uŲ;]{hjѽnJ<w>0p?{D7
+#N7jL ?%Z@tl
+endstream
endobj
705 0 obj
-<< /D [ 698 0 R /XYZ 195.137 216.362 null ] >>
+<< /Type /Page /Contents 706 0 R /Resources 704 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 699 0 R /Annots 713 0 R >>
endobj
-697 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F66 392 0 R /F83 702 0 R /F57 389 0 R >> /ProcSet [ /PDF /Text ] >>
+713 0 obj
+[ 702 0 R 703 0 R ]
endobj
-712 0 obj
-<< /Filter /FlateDecode /Length 3400 >>
-stream
-xc1 GִudxF6ţxCݽM#u/z_ޅx4p/E\`?/]9ZbIk 8W owHz&5<ܚwmVεȠ πsoSr|9B+?pD8?8¨2@ZMqs9׼CpL@)[
-6^DH >IJxJ<Z;;Ӊ >%'k햮@XG*6%/l H7 Dv#;V
-t ,&`=;Hi3 vm'[Nv4kV8T%iM:UV3AaAt:ё4ߵQjd45l[/ iwmaj8&$*3`gJ=DD?]}ᑜR
-zJ5ғ6ʧ'd;L{f1]7v} XLy5VK
-+]}.Bb|8m?9 賞4YAM!.a,Œ' Q1A-FDQrLNA5;q3/KJEάDͼI&޴ϠfOk19(S(Ki?Q!L
-}U"r% O$Ek{\)5ņ9`B &| ƒKE(h=g:kg-50m{Su7Hq#Um39յP%嘾Vb虰Vr< XLD
-:Uji39lV
-\\-XCi,܍'g&`_!fetnpy `1nNvfT=T
-Zqb|b\Ki l$s'hL6Z減urm: m zׂ"li8%Zn\zZRv[eN[9ڮe_ Ǒcwzj[J1 :7׮<xZW(jj4+7)L#
-c Bl0 kn`SMIEfk7G\yC>Gߥ U.Wָ:7cHi(Ҕl8!RV l)DU5 !gf#0oUO U{\81VL /g>=}^'p6N>S}kNAAp ?AGST),[cHcnRcWd+_
-mm7ϐpqHQna\2q$^E|0aƜcw N#M0x] Ȑ7|0}}=Z-g3{SS俶`_pҞ«MVk1Pڧe{o1d~p ]s5|vM;f [۩<
-Pũ1ϑeirf5}sS*cG%0zO3!XQbJbsZstn"4NmJ3
-M_]kֆn.>WL=Z ܌z[ó(~Lem)'j[7°V^AŠn:h;8uqkއ
-JAY?59ޤCaSőCǓ#Q=tpM G=LJA G6IeEc~ԒU·4q`i1{`~&pdIˌacЀXgrheڶdUSft Jpm:Oh%3
-0hC[D<\M6c !
-*izIpM>k{~;bzj&O~`z)fmĬh=Eh9C{g8:JV ^/34g3v#xx@.Cʟ4_}_o_VwL$F@36ƍ&<
-endstream
+702 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 318.818 197.79 325.792 208.738 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
-711 0 obj
-<< /Type /Page /Contents 712 0 R /Resources 710 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 714 0 R >>
+703 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 342 197.79 353.955 208.738 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
-714 0 obj
-[ 708 0 R 709 0 R ]
+707 0 obj
+<< /D [ 705 0 R /XYZ 78.37 808.885 null ] >>
endobj
708 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 318.818 433.35 325.792 444.299 ]/A << /S /GoTo /D (table.caption.1) >> >>
+<< /D [ 705 0 R /XYZ 226.44 742.105 null ] >>
endobj
-709 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 342 433.35 353.955 444.299 ]/A << /S /GoTo /D (table.caption.1) >> >>
+710 0 obj
+<< /D [ 705 0 R /XYZ 232.109 730.056 null ] >>
endobj
-713 0 obj
-<< /D [ 711 0 R /XYZ 78.37 808.885 null ] >>
+711 0 obj
+<< /D [ 705 0 R /XYZ 195.137 697.254 null ] >>
endobj
-710 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F57 389 0 R /F58 390 0 R /F54 378 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+712 0 obj
+<< /D [ 705 0 R /XYZ 195.137 687.082 null ] >>
endobj
-717 0 obj
-<< /Filter /FlateDecode /Length 2641 >>
+704 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F65 392 0 R /F15 385 0 R /F83 709 0 R /F56 388 0 R /F57 389 0 R /F55 387 0 R /F58 390 0 R /F54 378 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+716 0 obj
+<< /Filter /FlateDecode /Length 2992 >>
stream
-xڽ[Ko8W{(D T
-Ra(rU x")u2t]٢nA}W4Ihw*6dv)qKN[:tu=9ISsE잦os{)727?nEl ?ݥbmb܎)"Vs#kS і ө}ׄIۂ,^n.Ool.w:{_ğ_(.RF,~z#VY
-A^S,JXuFL~\2pFt\kfޅ bd5AFI3=BC%Q29 SWA.:/kI
-j0 cjђD)X3V
-
--ZXT(f€cbb ;ZqY`xhfZ HaP0S?* t$!Z9pd)grtG  >" 5Q3RygLjKk[t"3%ʲwŻwꩌ -;6IƸXqՈi$޻
-'m~\pBnġ%NF )J",B`v+=y2 d#<!?KЋ-.z
-ִ2jޏqa
--U\xC ~Xf?_,~.(mJ&\~ x׵c7
-+vCw{㲽#Ҷ{"v/i`ٵ aD
-QJ(NЙS
-Ā[m'@FQ0ilSIA=c/t!Fd)2okDV:9)#jL*𖩭>[FcBj>Aʚ]\t:H$#AQv֑5@/hsx-mHjcVRV,,,Z+ WG 1(',Zad$ӵok$,zڝR.:n5y0I@j.[%z-@u\ߚlk;)'%'zsč,B[iSGj(`x\qt>a AUTC 1:Z6>qrDM<b\GjR@}BI"qwO4p|PX(e['OiMH&{x:.W~@aYM uI.Y9[lb!UqJ,# [^[?;l^QmVuWo(hxX}d*E4::V#)f+fΠUޚ@*D<*)ANC-Y#@WSpvAuo
-UNތ?p=u<ܐ2hoj]\]!SK#^
-w"*cA4_OgHu]3+\Ԍ$>obР%(10x1S]@Y|b>NHNq\t
+x\K ϯcrY؜|~ԥ P*R"?EL~(uӇ!V)0ߞэmЛVPŶ__(Uz|q-)wB){Tw$ÿW|_%Je}ښۿgJ>8olWp~\IF,h(<Q[[I,5#suhJJ34N'wAD'9M粀%LtdOedqd/2ttlvrY71yОRA]I'[
+mNBq[{VqR|?<ox2>*T+faak\ߎVp@"] 8^D7JT,4^D@v}!`0$:T) 8٬.xfFi D_I{GU5-4|az#dDh8;;j> Cx .E|dڽf|)XE=>e97!aOėvB<2]4Su&
+wop{Z egaWMQ HY&+Vҳ$qnkj?8yΌo;3y'N%;M >7#+
+~ǂ)P_<}ݐS׃=g{ٿt \ (FoxT33Fԇd-8Ѹ̤w皜|_C+S/8R4ѐ&P|q¥d'p1$&0E"$T]TERJ#:R> / $B6k3~:;rdt5tUvN.. <kAF2 Ce2hP-Db,T1qVjj2Gcށe$ꝱfHޡ5DE 26 Q&{0HrU`yL(MEQ )HaP|RX&q>]x~(*!R{K s)sA_'TR >'X)Q7i .fˆz9 NC\k,jU}k3apNqjN
+f58E.Zɪ%s(tE 2{;uN9~mX>!26x0[`z4
+ovÙ4ug1Q#GǼr|#"81NiJ|lu1YyApf-0O]wDd둹v О]~#oam Z4sҭpDg,\Z OkgcFY42JOH'C@1aRÉ>hK5R$z^uE/ecoYZ֑5!? /S!- 5ף-(7);rZr+ڄ&AMAu?. 6KFa+Y6 Re=oO4ūej5cRsI PH.q" UɬO۳}MFNl.NpuflmzyO:
+'f ,#Rȍ K4o.&sCJZ__-.x£{U%FGngb#"2+y&AK~߉gEQmZgT4_gUhg*GRML<Ӱ\,:BTA>*-4]Tp"]ȑg[PΞK)]/Vϒ. 汽TxZnۘnxocCyڃ b.@@Uf+@pv 2"Q~30A=#Qذ'c=j%  yҗugVz-oTVepr^Y5慞gמiΰÝ(s( F5QQ%*ڧ;&1/BM$tb)*
+oTF|7>GWUt%@#ޓ߆4ȈBQ%%s
endstream
endobj
-716 0 obj
-<< /Type /Page /Contents 717 0 R /Resources 715 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R >>
+715 0 obj
+<< /Type /Page /Contents 716 0 R /Resources 714 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 699 0 R >>
endobj
-718 0 obj
-<< /D [ 716 0 R /XYZ 78.37 808.885 null ] >>
+717 0 obj
+<< /D [ 715 0 R /XYZ 78.37 808.885 null ] >>
endobj
-694 0 obj
-<< /D [ 716 0 R /XYZ 79.37 777.001 null ] >>
+701 0 obj
+<< /D [ 715 0 R /XYZ 79.37 556.015 null ] >>
+endobj
+718 0 obj
+<< /D [ 715 0 R /XYZ 252.318 475.197 null ] >>
endobj
719 0 obj
-<< /D [ 716 0 R /XYZ 252.318 696.183 null ] >>
+<< /D [ 715 0 R /XYZ 311.994 475.197 null ] >>
endobj
720 0 obj
-<< /D [ 716 0 R /XYZ 311.994 696.183 null ] >>
+<< /D [ 715 0 R /XYZ 368.632 463.148 null ] >>
endobj
721 0 obj
-<< /D [ 716 0 R /XYZ 368.632 684.135 null ] >>
+<< /D [ 715 0 R /XYZ 300.238 451.193 null ] >>
endobj
722 0 obj
-<< /D [ 716 0 R /XYZ 300.238 672.179 null ] >>
+<< /D [ 715 0 R /XYZ 202.495 394.49 null ] >>
endobj
723 0 obj
-<< /D [ 716 0 R /XYZ 202.495 615.476 null ] >>
+<< /D [ 715 0 R /XYZ 202.495 382.425 null ] >>
endobj
724 0 obj
-<< /D [ 716 0 R /XYZ 202.495 603.412 null ] >>
+<< /D [ 715 0 R /XYZ 202.495 370.47 null ] >>
endobj
725 0 obj
-<< /D [ 716 0 R /XYZ 202.495 591.457 null ] >>
-endobj
-726 0 obj
-<< /D [ 716 0 R /XYZ 202.495 579.501 null ] >>
+<< /D [ 715 0 R /XYZ 202.495 358.515 null ] >>
endobj
205 0 obj
-<< /D [ 716 0 R /XYZ 79.37 543.562 null ] >>
+<< /D [ 715 0 R /XYZ 79.37 311.93 null ] >>
endobj
-715 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F20 380 0 R /F83 702 0 R /F58 390 0 R /F69 406 0 R /F65 391 0 R /F54 378 0 R >> /ProcSet [ /PDF /Text ] >>
+714 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 378 0 R /F15 385 0 R /F56 388 0 R /F20 380 0 R /F83 709 0 R /F58 390 0 R /F68 406 0 R /F64 391 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-731 0 obj
-<< /Filter /FlateDecode /Length 3558 >>
+730 0 obj
+<< /Filter /FlateDecode /Length 2655 >>
stream
-x\r\ + RjMUޥMVm&>ZVYd!ž@8
-p?m=`}A kLwcw (T8M|ҨH;*68RLW{TUXyq1fyI&x0q4 f [{-]-lɮ7M5
-UH#**
-5E2DE}i>ۑvZH0%mSp9}4~OIklOuUkp򛱯mș4MjaiG(A
- 긏g}$BTﶥgm?ȯ EhkzW~Aսпr
-ύ6: *PކNl4n-ҥ԰^^75'8(Y'eHays;;}wQ r;אW+?ۧ|9_oީtxQSry"<*
-<MtK!fOU
-s=ku|GOwA '
-}"ES?WjNwkn2ܒܽzR+-`|Q[g>ኙAv56-.'Ql9=n61E^tl9ZQ֎qK{έCTC}A)¸|&֋
+x[ˎc WF# (4̺wA*^^ߪtzDQuxH_7yM ?ݿtso*47u a,ݬ!᤺}RII_ 绔oR7YS~i;|ǷHHB:##o@8*ʋrQ 7 :4wYT0od0_i&<[4 G᱗Y,˚м|Ҏ_/d$[D
+TV&Z,~csCZE=z8ֲe$JߣN&v8^=oZh6#UgƈƏ5}f<18&L~[
+ͩ UنF)L=~*}ao.n:}=vP3J{mZ/9_kp wj ֌5Jh7<R[Ǫ|J3[;6WU$+ ٙBpl"Uxy"yod meq{iО:f\~,nd"ڀoh7Ss+;Ȁ:~@Csohvm~gT'!@aroZNJ/LJ`mф/t-_]ĠvXk`$Z?jOsa07bO&U^%U֮|+ctcD
+&tNs+!mD_R[xMc}$ft/l}yABE֭+GZ+>#۲zI]Pڳ[#2L1]}i2=Y6ψ
+H{b̽cCLXe1"yF>I)KJH(eRu$Xe (Ѧ,sJ6dYhvzJxs[Lj9p[Ag+֩ ޤ4-a¤EftTE$+“h꬐ᱬuw^f@#!pջRz CgV-Y oKe!`t]42>]b=>w xWFܪrf
+pdzo۲dGӪ
+\)؜Fm2v=i*8"E25ջX:SVLNSsC[Ż錌vdʙ0;,&#]fx<NAl߽򴆁<ٽz@zm~O;>pOoWj!ڱ4pmđkǕ$Pyj?O?db+i{itKor+u^{É-?9*Mܑm;J˳Wf _$\~[mnP
+\FmfڶZ9)JJw61J=GٙF7kBһ"aKg9&>sFԆV@G^!9Yd~>s
endstream
endobj
-730 0 obj
-<< /Type /Page /Contents 731 0 R /Resources 729 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 733 0 R >>
-endobj
-733 0 obj
-[ 727 0 R 728 0 R ]
+729 0 obj
+<< /Type /Page /Contents 730 0 R /Resources 728 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 699 0 R >>
endobj
-727 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 476.105 201.659 483.078 213.614 ]/A << /S /GoTo /D (table.caption.1) >> >>
+731 0 obj
+<< /D [ 729 0 R /XYZ 78.37 808.885 null ] >>
endobj
728 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 498.301 201.659 510.257 213.614 ]/A << /S /GoTo /D (table.caption.1) >> >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 378 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R /F57 389 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-732 0 obj
-<< /D [ 730 0 R /XYZ 78.37 808.885 null ] >>
+739 0 obj
+<< /Filter /FlateDecode /Length 3182 >>
+stream
+x[Ɏ+CR n5 KfV/Zf&X^,dʗȗ׷?ʼ,X|o*>/%(aм8_*_he%QsKKiT|hݞ­7:dx ˦}F43=ogӈ}-%ްomy߶.[j~:-8Vyi}d:{MaFB0+%p+xcJۙyb8v6&f$SDkDݫMY]1VMU(SF
+psH杭F2n-kdεFC̒FQL)/v7iYGm&CDrzȤ#I75OoNAA7p"wwz.LLMb
+Sng"(FwvNGۘ߄EΦkoB}JHS:qpN`wsFA^(ud?JP=HSB Fմ1df;{<Y(`Dˆ"Zsӌesgô!Ig B3]jg2hȅ9)ӑߍeQfN 2=SOyjΛw5X^Rc`2A BcڋU ҙy'Ne^bγ @<+}?eQ׍hR"*C2:UaY+Fa"3Gc,S@gӚO:ՐWXM
+'Cortg]R9R*ʧ<*^a?3_ViUS.bc|Ւ7j@>!4Ew.Q7Ii^&#h؛ =D!
+K%q!>+fZ̤T|H/d?~޺ O: 5œźI%Y0_-s"'tM~U eiS)DS;d͢D?uԼH{?Lm-#y>mNJaRuyF
+ &RíV/7ېNͰ=M-*G~
+M&CPG=9>?ΩhY6O\J()U3}I
+qhZ)o1;NQ6Ǟ7xoYA?lˬ)W\ϞoQrYnGCXS +T>{ %%zvhc뎂D5Sn"kl[p2fXw~,t%>a2a#7넴3p:rthf?!qCyہa4yIHIԒW⦮2^:)oc\/0Q?DWg3V_\VxyUJ.R_GmLFzM*xec@b,G3o@yn51?%ֿԸ7mD
+.Vz hJ@h G9z5!{c6{ǣ-uj4l_}'LZ2DP*
+ D}YDrL4S-Y?;ץ\s.}qZ#7éNCq=/r~R#8Iή^ f<Nꠅ
+:}! ,,.dJNJC[O$]) ^U, 6D*YqO5#v-$Ű<$ imkr 5D|I> L,;'
+~U!UxƶZN%T׉u]xd;xKԭ8l3,I >Y{!:۱=0,Y$Z'9!;8ޕ`vxģ#蜳 |Bۤ&dNuKc -NO>
+r5XƂgO}qH!g"l<^-jTRh _HKN@հJ =" ^8mHT~ǭM)PҎlĞorEӝ"O S_'ȍC9ϑ.ϓu 5#$:{84].kŻ˥661!:II<IK[.=X:g}JvF't\hmLrM0wAUtk]v-YZ&N&uJ!$}؄35_mgg`K}C_.2^?
+~zA/B~n- A
+endstream
endobj
-729 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F57 389 0 R /F65 391 0 R >> /ProcSet [ /PDF /Text ] >>
+738 0 obj
+<< /Type /Page /Contents 739 0 R /Resources 737 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 699 0 R /Annots 741 0 R >>
endobj
741 0 obj
-<< /Filter /FlateDecode /Length 3041 >>
-stream
-xڽ[n7)ZBm@ 4!P ]n$R/˯O|=7?OqikF\~\~rjxɂ֎\=G>S`p̳0¹5q_ڬn1 wε/|ńùqHw~W6ᑗDu}l4Sv))k-#pvnrZG+2*)h<YcҒ_9X ) B,ӉL + SZN;\}<2MRڍ. ią2ͧ8/PI2waH@dI^ #GH5(aXPHŢ4J1ai@ԛ$Y ˟h5߭Yޭ0iGz),}[kI\X&.;gG222N:rFlQq2r"p$QGsq~2H߮-I|QerqRu\ O+FAT
-=CE*ZѴݡ-sxzv9BVfk?KPȢ-.8PWC`t5ہ"1]7t ַ'J/ :ߴ|@}BE]8hOl@NCRGfsA&;NvA!gcQa9_(Kcp@b9C/8ӏ5ga)6x9zL{3Qgһ[G2PZyZ%Z?|dV ӭs}TvqM:ZP )(`y>I==DRqM'HA0-;3t19IwmX ˸UB.F }ƑM+3 کUN횳mX'AKG (re/om[T(pŌEml sRT g=fm<m"".]VRz ~2Ό2,:d9>y4?Ev!R1@%l6\{;QЌ kn܀{pݶ1YVOvbX]PGjѭulHdBK2uFDsk&${G&m7,4Ls}<83ƍY-,C>1 $xRy̽,V׌Nq+*˺QT'!B 4>fǚ #Ubͫ/h+nR"$ C K*oi&h 2>}
-BxmqV+=p{Ĭo;xw<+x0K Mt9̹%k=V@Pv"B/jCv,U(Zʞ8&
-ѭ^Ղ2KkƴyA0$;X1 0۶>
-%9:ܼ/ *fAq[OwyRy'zI&{y+*\[V-ܘ7{k((x= 7qL~cܒ' 4_`jU{""@ UQM[$3 Tj=0ϣ8!@ŀjke J&\M(9W0@z-I;gV9SsBuЦEޫDM-a4P.]Y W7WgkK| w^HXN+SֽMW?mmݸWБ6z~Tu*}ZU@@+Z#<ct'x
-,?t5bfMn~^xsgV=8aVG&psCY WNQ bPB5apspGw;H6ão:/C!Vӡ&B.e2SJ7TBZ?ܰ򥇈6qwg2#k9{J9~%;0;T#H e,ӺI[>ۣd-Qe@Z>JD#%d6 4U
-)p幕W)_ۼ||R
-=قj $p
-ިSP{K]@{:]Vj| 05CmP 'D58Jz#cyTA]n@izzrM(ǃIO̬g]}} 8?_\opߝy<yj|,JMIrߞ 7\g ̈>#Fbї4<9( ̭ [Z
-s ;"
-nr#ݹ wRZ-;}+ixRo<_fq*<E
-BMAQפ1_L,1XLZn=Z~"W8 3MdPE4>+I_~Uwb}ʠP}Rkάfxg10[C_ r"f^䎅i59Ng U`@ϑ=,)t[!Hk"4`Ĥ;jX݈] 68f.
-endstream
+[ 726 0 R 727 0 R 732 0 R 733 0 R 734 0 R 735 0 R 736 0 R ]
endobj
-740 0 obj
-<< /Type /Page /Contents 741 0 R /Resources 739 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 743 0 R >>
+726 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 476.105 689.828 483.078 701.783 ]/A << /S /GoTo /D (table.caption.1) >> >>
endobj
-743 0 obj
-[ 734 0 R 735 0 R 736 0 R 737 0 R 738 0 R ]
+727 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 498.301 689.828 510.257 701.783 ]/A << /S /GoTo /D (table.caption.1) >> >>
+endobj
+732 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 343.619 357.634 355.574 368.583 ]/A << /S /GoTo /D (subsection.18.3) >> >>
+endobj
+733 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.706 206.725 449.413 218.68 ]/A << /S /GoTo /D (subsection.13.1) >> >>
endobj
734 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 343.619 566.849 355.574 577.798 ]/A << /S /GoTo /D (subsection.18.3) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 465.134 206.725 477.089 218.68 ]/A << /S /GoTo /D (subsection.13.1) >> >>
endobj
735 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.706 415.94 449.413 427.895 ]/A << /S /GoTo /D (subsection.13.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 328.914 93.78 351.39 105.735 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
736 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 465.134 415.94 477.089 427.895 ]/A << /S /GoTo /D (subsection.13.1) >> >>
-endobj
-737 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 328.914 302.996 351.39 314.951 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
-endobj
-738 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 367.111 302.996 379.066 314.951 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 367.111 93.78 379.066 105.735 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-742 0 obj
-<< /D [ 740 0 R /XYZ 78.37 808.885 null ] >>
+740 0 obj
+<< /D [ 738 0 R /XYZ 78.37 808.885 null ] >>
endobj
209 0 obj
-<< /D [ 740 0 R /XYZ 79.37 548.523 null ] >>
+<< /D [ 738 0 R /XYZ 79.37 339.307 null ] >>
endobj
213 0 obj
-<< /D [ 740 0 R /XYZ 79.37 389.026 null ] >>
+<< /D [ 738 0 R /XYZ 79.37 179.811 null ] >>
endobj
217 0 obj
-<< /D [ 740 0 R /XYZ 79.37 349.74 null ] >>
+<< /D [ 738 0 R /XYZ 79.37 140.525 null ] >>
endobj
-739 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F55 387 0 R /F65 391 0 R /F69 406 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F71 419 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+737 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F64 391 0 R /F68 406 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-746 0 obj
-<< /Filter /FlateDecode /Length 8392 >>
-stream
-x}K%Grޞ,ũCh4˞ (BhأY?Y̪:%= 7ndd|_ixfJ7ӭ.5n?%s\o9%O1.ow͘
-u 1P^)󟍁6gl%G
-B7|\;%;O~۷&V ~[+'9H_\o۱O).9KK(?i: o{Du}Nz?qv^1HM^u/~(íiC=;K&$h~6UGI%Z5Z%ۺdhlbkhV(|K rgi Z<d[t".xDh"HbbJ^IRb:[6//xXVK7g,e):RRÒbvUe "Y$QL$a`?? Vk/7?`2Snn`[苻}
-ݓf7HXV~B(8.i+nڤ|4:nC
-M?bwOrjv~P(?@tk
-uDaEeB"d ]1$Umޞ$X9h;iGz
-&`tHsB:
-19dMh?zo7]Kô1G#
-#Vb~{-CVGS6dsc~.03m6
-k>?\`!}X> IY%m#n|򵃡6f^u{:{HEwwur:Sqsig@zfSƸV(ͱzx#n5AA=&<ɨ,E㌂_d!_7U4Ur\ŲZ:S:WLuK(.ж^g0Qߪx-N$he)be
-twSӠ}M?-4'5:M
-=tWn8:~[Cv2h6|wg?HȯgkWA`0u<uE0q& <Լ͏KvNM< fbБ}ѭG[vXcr협2?U+3|U{${W%9ƛTրpeW<"&;W+#uϛ˜XÀg"Lqϯyg,ʟ8}:S*]"
-5.^&{7?j>4 #XE$Cc6NYeNo-XP[`]>uƷ 1(ۇ r$3oV[uW#P 
-72{S鰫#.bSMxwxVUɋcH'TmJ81={ӗa=L g:ƻwm8)NG&ޕivK&MѾw[(5q<l{'d{7p Ϧ5p@b>L.5p6o';ϯk%r22m8V-<ԼNpҞ{U6-1M6~~D6~D-}`j"$r܍
-Tl{cG7:Z|"IP~o@t~+GIA6tO9f\Y6[vJuz'1_K ~9v=zKG]{*$SwdϬC?)ާŸMi \ BԷft4"GTM yxY,eo߾H0λM5"H.1
-/;YYud4kvJjLIlJ$Cg¨S>* ;Pc] ki{x 2;tAr/6'nayr㭜NBtf9uexwɗ*F/L鷮v%WnMLf'
-}X'V
-2/<g0 y9<oz䬫r.g qχM);@biVKRP<J̠եtTQG_ےdHwd?hChen6%寑Ug{>7'—xK&O⟴ϴRڞM+!X?,-zU'u9٤uMZ' =ę`vvvm~kyBINNR/Kco[{}
-t$EmnQ$@MHyλfH( &)Ss,cCXDrUxX7J=T}y4z(xŜ}`k<pzaC [3 1{><bp<5=0 Q#b$zQ>h)X8G=cZL.v+a9EؕG)qɳ}`K<p~zbyNf|EC Ӄ5ªlHCZx\H$iEFSG"-탇#X#EF-H#-㇘QFÑ83GqoԄ B%:0(7_z[A1Y+sJfӲz$&%ї(
-
-6,i5
-zC)\ێd̮UH>z1>ZeM7JJh؜@lj= ڄBҎ
-. ֑1]b9%rs Z숃` ^)mVZJx<G~0KЖJ/, Xa!;haǴ'Ѣ
-xƯp,P@T LTSCN#- f՝)pcԒGEmvzQEDXLK O^[մj+qFFHѣ jwԊ CMxeTP^?v<ܧ4jD̶8*=ѣD%%<lNPsq5nnQFP^6C!' $)DkGn@Z}`nZ$h)as!ac#N8c)1Kq<gP18 .^*“5%R()asaDO kD:`Ҏ_&uOK*#9'8 P-hC\57VdbmB۹F x4C<bэ*V i8KlꨘDq#Bö2g:pމ@6`eTXsX`@(Uݏx\02bmT-x|5=Vddnӣ*"5XJx9cj
-#iT1s@-R()asaEQ sD2*D8|D,CaG
-K6yOaMۮQm~\"
-iEw9%ZiY
-KxSb"nJ]'; T*T8c)A?!Qaq!<2!֍z_{D",1ZPŽ[ڠ$RECiǁ1SXߌ`AT, %D%`H̵9%^t#䪘C6Pi,*Ƴ; +5m?2
-GdU1#)5MmOYT8h2
- ^]_"e;@m5V^!̺ejEI;x9WM 9Z74$N9sP1ᡴ
-=s Օ9%^ak s̰wJ! *M}E#!hlRpb*.nG^ 한)EI;ƀ9W {j[q+,QZAm ËiȆՀVY6)2}X\^ I6, FUI&
-Młf\Odi٦.RRBd<$>HHO
-=OGxUi-MLS5;2ePkZUp-y1BC iffY4ת<&E6ńLL
-@8*'b#+<>32+xB>kJ+mRdAܑ)̀]ժLn댉>?
->i>1EJmQdSZLĤOT )a _HFu]-L5;.eK'hjdq|ZLP,hʯL~ZڤI!@rG3y2sC1#㥀ffY}m1jGX40 xX|db{^LLP,<@/5*-HIi1!€>%jU)&g2fb
-?-&h1kmRdUZLĤQQU((e)}xW!>xZhj/QL79HנoSg#2{OGĜPmRautcG1E_Bu[$q)Z"Oy(zzk;Oa1 {0unS' a^1WG{^mV%P/\M_V|Ҭa2hUo5U#\0ԧm*%=:|j+Ƈ"ψޑ1o`4eçoLc4qϯ0wYzVbb}dzx"j;LR ڛIY_L˯e" ^lcχW``Z!\[(O,SZ9G +=
-1I=G
-#+r]c_~v;G EsAڱe y-~^lrG3?T^FJe5xPn Ev¼Li<o#4oث`GM'y]kBY Ta8R:=_ϓp(T#_2&z|**psoG)9݅mX'<BеC*yg,zs#&l#4u{2?@s?՛sypT瓲f}crlX(/ ע`O`w}iϝCo]ϬΝԺm
-"#CO{ DyZ9sjko<D E~A|%`:q
+744 0 obj
+<< /Filter /FlateDecode /Length 8371 >>
+stream
+x]K7rW8=7Z#g d1EēE~Hփs]9Ff KnXWY^/?^˷oo~фKYJ_ፁ_sIeq钢Yh.|uy]Gc]m MoQ)!Y4&.Ʌu]?5c?6kٗ׶) ڠt}NyΓiKkR7衎uDeV(R,03£FcZu&=TA]#نN^A`>v4 /MZ>W⧎b4խ3gn- go^~K;C9u. a29s[mЬ~t|;}ĥ$K ]n~rR5
+ 6h`avynonR"зih+sީ畧IzwZ瘾֐E5uIV\j޿_yں@,.<LZ"z՝&^T҇NnwM$d?wJaz npngӝndf?{-t5֕Bvezs{K\3-KOԸļ<lQG[L09ֽL_)T ?ym>o?0Ĺ"[ҚR
+)Ne4dE.跧?uHvQeK[Y Ի.;ű>
+ik*Æ*Ÿ@w)ybJ=@%<cuMhpɌ0Wde.x!5ȅ|`'.K1 y3V:\ UȏjOI5` Sm'x?7LѰV'9
+ T4<:>v .UFy(?5 !OchRB'cy4Yhoc,c+t~,ӣr\Wthgowک@Yq?K$X+g{IR уk*{V{ *z岓=hؚ^K~fuO{U66y?_[??o1b-域2[qˬQb!Yq BWce!:>kcAh5u)Ow\w\w|֨/zR=[S7̵'
+n*nZX!c]A`,CPB0i{1Dx#,`
+?]9ϖ1O`{އ8Xln̏P^f`6
+R~3s[͗@Y=@f,.}I[a22=UhoJa5 GC&efQ0)
+]IY^჌`oT9v`k1 5:`b9E,ó,u;:iO`m*81^QEMM>0x[ܲrN3}og:ƫW_cԗ|rweڈRg=į X,]{bj8C|8uwxמɻ?ϲ0eW_'xW&ߟR
+4R\ѻmmmO^V5y)눏|p;ŏ;{˚G]^s*GOo{ub.ɷn"}!N񋇍.lsZM mM@,-ϱ{響'XjЕG^xa֑r x:G WbUBOh]2 %0boׇ1}Ad/X<a_|6 X v#kf]p3H 폄);i1<ihgƋYmtfSÄ`TX<ͨNڕj-0?PZ` |uwkhen6-g3`{v
+s^Er>i7hHZKX
+K  (yg;
+T uU; ~lFV\I2DM.l;ƔfaEMn.zg+,hu ⽀g$&NۦSa%~&}[w pơLM֪@%P:`%|{Jxpά9ԳA=\ VI 1JfҒ6Ũ$Ȍ(*dmuÌ|C2vZpDkN%AAYHH.x^pH^^q_ mkHj6P-eq5ja_(j^MĠ^u(2^1Dha_.)\^z; uCzf!\1/*lM/= C"^}/lQ?V#Ddj8]JW'}mve>BJlG$)a_9.\^+F{`5"8D*[,됖:v5^`VwZ9'35,HK!
+#J$xDQ9%HK!xzr$jEA6x7=X!8&%ŵݮ(Uߌ<CP2D^0#$-`]]^}j.wEQPlgIT,XQ0J Tl*yJN9wzD%%4lN S5cbmBKMa!%œCiG`<cNeHH]ٌ:HG1hW#A6x)SFͰR`y0 #=/
+| \@ ;i@mq-ʨ9~cieY ~@ṭb9%nsZ􈃢` N6˚]pRqV,z"č ӌNۊbX+AQ-R()asa"s^G"׊?<v<x jDDfcQ"E6'^M8ȊF7K(h/̡ =' $cFn@Z\; 7ZJ`؜@zn?G-*XJ`%'̼Ty
+x ^̽Ó5%R()asaDO kD<T/~J;
+
+͇bAFQf뉬֏5 v*6''QT5D=oFB8>3,zG8ת&E2 5YQ*8XP,(L P=EV6),-&dbRQQ8YPP8rW p@>{J;mRdAܑ)̀]ժLnIW5|
+'h{Ui-l`J R)
+##!G
+>#Qc5۾B[&jw\$×5OM((P,()MV6)*-&`bRQ*8}ޠp~(fd P?faESJJ؜5OGV v;=DEb6
+=#OЪ!&EĄLL
+R@8UۘI4~LTcTm{mRdUZLĤQQU((V)xU/ hP)._6q"mW[LV=+7?q
+ʳGI胛M[ecUj -'o_ E>IoVu˛>n:by{C_A/珗>ϗv~wmd&CJ@r#C+ Az3(/ Ob=w]%<num7:fږuY%t!'i9g ^ZY3~7eXd
+Ss[}54u&b;> OVo[dǟLϻgճ
+?խ/uukzs3{Q}$t:q&G35s?~o5ü\io ߋ{ջOGx/un/-dus! ڭw\]t}7X`,* J/FUcݭޘu5hV. $ް~gJa j
endstream
endobj
-745 0 obj
-<< /Type /Page /Contents 746 0 R /Resources 744 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R >>
+743 0 obj
+<< /Type /Page /Contents 744 0 R /Resources 742 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 699 0 R >>
endobj
-747 0 obj
-<< /D [ 745 0 R /XYZ 78.37 808.885 null ] >>
+745 0 obj
+<< /D [ 743 0 R /XYZ 78.37 808.885 null ] >>
endobj
221 0 obj
-<< /D [ 745 0 R /XYZ 79.37 629.659 null ] >>
+<< /D [ 743 0 R /XYZ 79.37 496.936 null ] >>
endobj
225 0 obj
-<< /D [ 745 0 R /XYZ 79.37 459.482 null ] >>
-endobj
-229 0 obj
-<< /D [ 745 0 R /XYZ 79.37 275.636 null ] >>
+<< /D [ 743 0 R /XYZ 79.37 326.76 null ] >>
endobj
-744 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F69 406 0 R /F19 383 0 R /F67 393 0 R /F70 407 0 R /F55 387 0 R /F25 379 0 R /F17 384 0 R /F20 380 0 R /F16 386 0 R /F22 408 0 R >> /ProcSet [ /PDF /Text ] >>
+742 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F68 406 0 R /F19 383 0 R /F66 393 0 R /F69 407 0 R /F25 379 0 R /F17 384 0 R /F20 380 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F70 419 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-751 0 obj
-<< /Filter /FlateDecode /Length 4821 >>
-stream
-x]Ko$WF04`Ʋ 8,7'x*fwGZI1|HW,_9tBoh~xգv c)w [#,F3B5[>~Z~xG
->~JS>/(x¯ T^Ë} 1KHHGvA!,GGZ(fGK 9{n᳸V%a LX@%/Pgā;PU{n᳉PΨٷoĦGpˈƺ'
-}ذT/]]? !<k#/< 1$(
-^!]vuaq.ߏb8hIcTn|=Els9'dW9BIהӾMh7lΫ?hC4s?u=J2DGkɪWפ}-1mPAy.O
-~(_헟.:hƯF~b{e*g *h3^ƍ{NT`uA@ _Ǝi9Hpj$I/0 < em,?yo>VR}waϟ~]
-qT8KIFeE8r:~^0L WϟQ;!X,YܡA@wn@e~v1
-I:V,XtWe%OƂ7I`
-bp@N
-LvjkP*o
-X0?kB=UOmPS"P9ʚ *bap"|{O: bN{-p5*FopSM(l[;W*?5aV7Yst oo'L<U~2=J&Vx^
-y#x],DQW# R`
-)QCiRFHJ 3wo- q aH*yݘ4?ř:JNXBM __!2uBS26qϸ~+ah94>
-=K[NXžL_!&BR~2"1)ƀt<}<>5'Z(juQJ/:F?YD~!Z:ǚBb™+!$,%,: {.v9sCɬcҜÔ{nq*b5\zmqTmv?Wzxr#=IG :vNajey]D;*JxG;EIe#"{Dև< O D<#5xit"pvDB53% Hb$S⢘E iFP^mZ!cP|(Qbfj*F hx?ѰzG$)S iԋP ׄ[}Wb(z $A
-l`G@1 #('\$EESiQWۦ&½60ʳm$b@~1OB0)
-&Ɲa)J0bcA(P f8
-9
-RFC8' vЏg0Q<IX(bVBIn3=
-G[Gjw[ap}[!_0ӷZUV?nW/5荴''vIW%Ԛ<
-\R7Եf
-滜Y}jDs\$ju2\k Aژ (JZћ5an\_.ѵ{n3,K4K `eM"}ש'Wګ 76ݑp14%pmAؗ+
-[kDgrzUR>CG|k+r&IBUG[UF0ȇZʹyOerLMuҡy)gN!pE,gb0<{كz:s7z^A>1{^cl++jlf
-m@ZVEL|(I B&̓
- lqAC#sg4CC*]Oz16[0z;g]1XӏSlpƙ:7{?2em~G2bK}caH7"
-~(:?7CM'P;??? B3@
-a
-0{~(g97<Ÿ;
-?;
-]e(0?wS;7>2@+ xԻWP` P;bىgKNJ0h*LrX* l oktkV8%SaR##CϪaЋsbzkB9/3 y6 $'N3~pƴ/QsphӮ_?70wt2*<I[ᘔvox1'ĄjP"ed]$MIecʔWih|c*9z!fx!/˗OSG_Txx 9R MpdGbB |,ibZ?ڹ ).-Ld6}9 H[\؊zYO%D|m2<&ӓZ^݌|{3V:{o5 C+@0LtWL =#Tƽka Z1Ĺ3J%q6Z~97V)~GVg3=.} <B s'xWx}Q?- &eCA ^a "j|!]B~!SCպvP!|< ?Ȳbn30 걺I]BHM*<)1ܖOHIx!s•ٻ
+749 0 obj
+<< /Filter /FlateDecode /Length 4722 >>
+stream
+x=˒$:J
+*P2Y7W[B 1o{ T|"3o3-\&/c  1NXAME!>
+xz(UauG=z1 ʭ0<K
+r=~8ّ9͌qgdbQ]Iè0MP<\AIP[K֖GeFLCvOooqF`O{(38a.$Ǩuk>.3*̳p2W[,IwZ̳"h p>6`_,gƚM4&1 6͐" R8+1DѸf$*HVۚW/]II9k03E:eQǕ[]6PzU_Qj%+B5]j\VU*
+SJi-<ᒅ1aLׁd鞙Ȕ]XAi3ZDy(B7GB0E/Q ř.N8ִ}1)a3.Ed`@ggJKAHC*iw#_DQw,K1%ŒͱFm6-q -a$Olqi8ϥEb޺~<>_aq Z[D9~ȅ̺mF
+eSE`g
+'x P77f4)5o8WT̶!AVkM2XC+n_5ǃFaڙi6;wv6xfl\EX+:<N<P 5lh1(]_ł
+=SV>(< +,|53gb6[-z_[ HI]2̇=Pys۷ \$cx͐$MW׊Yq ax:Ur?IAExc#Y8{㤬ݵGJnW'19ud׈U D^mHϕkL8H|2К 9#): ȟcP$1q4a/%g|BqCȾH,x}Ewh\!v)Wcr i瘕r$r{Aq1Aw%BtgН[X?<`
+ 6~Y Gp,|=W`iEKDZx6m=­' >SQ䯍-Tq7G^
+
+Hv bo CwG dو+ WoAAp%%3YJ
+\ԛE [Y_zQvQ#xѲI~MΈ Q78sg2Чc#@6F b [ůg0:&v ;ѫBp70M|jPj[q|g\0V eFr G. > ^.Ad~+E5L\9򓭩GicϦ俁a?0L5 wQƭoKRO5z.lUnԻ#IKsgKSSi.uإI8ØU6LU=#ǯT(afǥJb0>[3}s2}\41>^>j2gn33H'Wd҇ AIfO0yn=vDo&} +tռ]Zu,㨄|Os4_ S|̬Qy_ p>oJ>:48kcM* 7(ϹPy\<^>7E#vd ?mF $#R#*M_*cͱ|eApJ./R%XPdPځiĘI!6 3zue](*I!u+QP5/A-uH?մ2|f@ ʓH*0?Jm5\M$瓤"M>I:y_$r*a?8Z+"SU]4ɅlUxy 1I +
+ O;Aco R:+Zdы)eQ$1Ґ{<IUrl
++=Zhj{)!<H#}Y:LSeS%<Qy0u9?Rxk@,EX9|p+aضkf
+`~[ä+yW0):Og+VtT.Y\WzvF $E%R=)&<:"<=<{adpΨ4Q
+_2ZM&(ӝ7 ȡ󦇀뺉JWyk.zCJ;qm$2R}f"Jl^ޥ$. ./q)><T&Fe^xiU]&8,Y6g+
+#in{ ;u%Í[UniK+hZ#UOWnx?+'G-,H#?k|Z78q{uGw>MM] CEIrMf\yS[7L-FsT =IGw;Ҍs;҆n|H+Kz`=+s\)z9flpA?Y[48v7E\L]bVѾK:;'U$wT
+Sy}*a<gr!n@U:DYd㭮SUN3$|^;<_CßpYf>G$35zk.hcMUw
+prZa.0cJ˦FL#blG]ٌfhXMn\{/c `V),:%51mEyM#*#zz
+Ӻ&ezU@!
endstream
endobj
-750 0 obj
-<< /Type /Page /Contents 751 0 R /Resources 749 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 754 0 R >>
+748 0 obj
+<< /Type /Page /Contents 749 0 R /Resources 747 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 699 0 R /Annots 751 0 R >>
endobj
-754 0 obj
-[ 748 0 R ]
+751 0 obj
+[ 746 0 R ]
endobj
-748 0 obj
+746 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 240.709 67.03 251.166 78.65 ]/A << /S /GoTo /D (section.7) >> >>
endobj
-752 0 obj
-<< /D [ 750 0 R /XYZ 78.37 808.885 null ] >>
+750 0 obj
+<< /D [ 748 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+229 0 obj
+<< /D [ 748 0 R /XYZ 79.37 771.024 null ] >>
endobj
233 0 obj
-<< /D [ 750 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 748 0 R /XYZ 79.37 600.398 null ] >>
endobj
237 0 obj
-<< /D [ 750 0 R /XYZ 79.37 326.887 null ] >>
+<< /D [ 748 0 R /XYZ 79.37 160.523 null ] >>
endobj
-749 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F20 380 0 R /F18 381 0 R /F17 384 0 R /F23 653 0 R /F21 382 0 R /F24 753 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+747 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F25 379 0 R /F16 386 0 R /F19 383 0 R /F22 408 0 R /F55 387 0 R /F58 390 0 R /F20 380 0 R /F18 381 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-762 0 obj
-<< /Filter /FlateDecode /Length 4622 >>
-stream
-x]KWQ: $/lGI9|arNx^Uj 3ݕH 2J~1A zoff`\o~4#+ _>x 5%en`Υy7ѧWOsOC1 @UT;9;*>\?}(pt<*y|jW
-} CvY$hf6M?N<t¾0vڀ&;_Ⳡ ^.u?<IT~dD嵌u+:&ތw5'ٶoU
-G zn˥ތRv&LY9HgET'o|~eB6ˡJ&0:ѱ.`V۞Kv<„Br `JUZ&&8x^fYyJ}~ "ex,>"Bu3B0@%hĂ#czqȐwnlVв_Ӷ{g2d X`Ogp• |"T % GV[XiպրWL{ %g7d'scɤ 7m{CaaĈ)exЈm=#ia786 gR0 %ܶcNP5P(fn:6 P0cC*5g.l:Ƞ(f0ZWz<.U Os>Fcys "p|Kh'%@AN1b8}j
-}yFLr{! h&9a.dk83
-e 9l݁D(63|\=D~Q?ťw%d덀f_6⧊Z0.-rjߟ}w
-0E9zS'⠨~_QXCL /e.K/~hbML]K{wĭՐG= W^ (}iW}\z^QP{QD]K][u?b_r)kI܊ f CQ[x@DL\Y@% yt4$m]fF.ºU^2/WQxU2e-([Ö(h%*"oG[S_5(
-fy
-ٽpX[2=gJF~1쀤'ls<\0Ӆz>̵uY*P;,ɲ ~|>@% G
-w E8\o,6)x|9&&HM`zZ3!fυscvAkʝEwpْrNE}vwL3uk23%Mh<H5 qۡM8">&z!WN2}k.4.a,Y$'wV")p,RrmW].zlL~.k+vw__In'ZHho2W\D}2I}< K2&KY78Mo2̒f,2R s,2N s.d.٥dȼ`  nqLe)^2TxDSȬ,Af27]\3Ku\7KudȬ[C]!\K vɐy.2/%Ad^K ǧu
-'eznvIvU~wu]偶uWɥ~mf0p/WRjva"{zfΨ^LS87%
-Dm|= z3p,c"/Vb
-@SjDAۿ]Q
+759 0 obj
+<< /Filter /FlateDecode /Length 4933 >>
+stream
+xn$裍@4ߏ@1bxo 'A|流櫻#i-0;b^*E.];¿߯>}uUzqi;@taqDhFfO
+J)?\Sa ;p&?5}7@Q@dg~5S˹"^=~OĹ cP8#Z [4R0s/~~ 5»1Es_U „gh/#d'օdh1Xs,Gr3<kG\kwSF<2AL,*@%ا- juI6ո1YCCKg^sEDGMh^!O—b)=B+Lʻ}ZVkۏ7J<ϯ}PՕQlR8N/减!J!CӧуloLr/tr~mVbđ)0Ae˽ֆpa*(!xb_2.%@1vs+B({+
+ WhO @;#
+{H;l1;dJeaTu,]FB®5aeJ,DCZ"yǂNHO*02C')^p gT%y s扲Q. 53B5ᨯF܀X]3wsR۴E,B\Poޘp dBԡ}"
+}߀ n` ^1a20䆰4ε4 ̋X]G S,L%cm
+RމRjI(Baf;Ҧ'խGң:0
+8%A<l?b+`lM,&? gj"͗J:o*"W@}0U%YH"Hw
+aMU%\!,Q8ʮ:[J]p"$vN2 4a
+ #ۿwK6HI
+4fY=4VztLvJbK0_xX#I
+uĴu5gDH)T4O7 ưz]mYk |D kQƧeXK1a'N[3 -  g$*ܰfj5f6VC 1ƴ; ͖l/oًKܫ=JHM&Pq ~! 8g!kӅu
+}ؗ3DS`LMշz7'5!Vji$8vqN
+b,(X|A Ĩ|LXg FtyN%kZDVGpKstI,*k.@){{~1agEez(8I%.hkrsZe~Z^aKBGE"z'$58X\_
+רq5Y56lO^q81 )QҹRZB!-/Ґ=-Fnx`u7H$0/ZV
+G?,*dOk#Ӏ*eOkq@⎕ gS?BcLeb+%c 2x#-J橑Ty~uT
+u蔜sNqtD&OI2RAd]#d.Cz<lBWdf5qPz99 S[_$g|{0c_ It"eK2,<cr1&y
+Y?lHPwhnh,z{B(t},b$z
endstream
endobj
-761 0 obj
-<< /Type /Page /Contents 762 0 R /Resources 760 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 765 0 R >>
+758 0 obj
+<< /Type /Page /Contents 759 0 R /Resources 757 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 699 0 R /Annots 763 0 R >>
endobj
-765 0 obj
-[ 755 0 R 756 0 R 757 0 R 758 0 R 759 0 R ]
+763 0 obj
+[ 752 0 R 753 0 R 754 0 R 755 0 R 756 0 R ]
endobj
-755 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.089 598.172 185.044 610.127 ]/A << /S /GoTo /D (section.11) >> >>
+752 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.089 443.154 185.044 455.109 ]/A << /S /GoTo /D (section.11) >> >>
endobj
-756 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 200.765 598.172 212.72 610.127 ]/A << /S /GoTo /D (section.11) >> >>
+753 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 200.765 443.154 212.72 455.109 ]/A << /S /GoTo /D (section.11) >> >>
endobj
-757 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 199.48 483.111 211.435 495.066 ]/A << /S /GoTo /D (subsection.6.2) >> >>
+754 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 199.48 328.201 211.435 340.156 ]/A << /S /GoTo /D (subsection.6.2) >> >>
endobj
-758 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 350.719 483.111 362.675 495.066 ]/A << /S /GoTo /D (section.12) >> >>
+755 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 350.719 328.201 362.675 340.156 ]/A << /S /GoTo /D (section.12) >> >>
endobj
-759 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 312.828 471.156 324.783 483.111 ]/A << /S /GoTo /D (section.9) >> >>
+756 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 312.828 316.245 324.783 328.201 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-763 0 obj
-<< /D [ 761 0 R /XYZ 78.37 808.885 null ] >>
+760 0 obj
+<< /D [ 758 0 R /XYZ 78.37 808.885 null ] >>
endobj
241 0 obj
-<< /D [ 761 0 R /XYZ 79.37 579.845 null ] >>
+<< /D [ 758 0 R /XYZ 79.37 424.935 null ] >>
endobj
-760 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F55 387 0 R /F16 386 0 R /F19 383 0 R /F69 406 0 R /F58 390 0 R /F25 379 0 R /F86 764 0 R /F17 384 0 R /F20 380 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+757 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F25 379 0 R /F17 384 0 R /F23 652 0 R /F21 382 0 R /F18 381 0 R /F24 761 0 R /F15 385 0 R /F57 389 0 R /F55 387 0 R /F16 386 0 R /F19 383 0 R /F68 406 0 R /F58 390 0 R /F86 762 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-771 0 obj
-<< /Filter /FlateDecode /Length 4591 >>
-stream
-xɎd>_QG%jcL 8I8$prHvJOoY2𡺻^SI~~޽k-_^Lڋ5q#._~x\o}_qqBhfh€g(JskSSa[O'TGHޞo񙊄|,3o #3-܌*&lL 63B3F{f]x N>̠u!`
-4q%<@@f \D2{
-S$L{,4TUsNt BJ+>&su=#|SC-u^]eeH+@Pzo#AA1mda+-bE2b, fiE B$B*(26g\d2]PZ
-ihqD"ĽrIَ tO‡[n&xaU(sD!KtqUf^=,4xN_JS`|ՎF t6-kǍTJulM=YPʺoA XNm/<2dF4NkfG'[HP hnZPiFncW%dtφ(Dqmތ1N->ϾN_
-VuVO0S#v8.^V4{ ooոz[V&,e,<]k~FB^VCu!n0;4űd[sSa+YS3lM͖Lϼ%0&n$?[=䥰y_NuQ&o6G%b ]
-=V#9>NK<tM(;h<[9b{2r2@f$G pt$%gُ3zQVUu4޲qg L6镞 h|ay(-o; ,^9?fMwa~)<vu>F
-R2~4^IXfqz @3˿//~yRǡ!1ͣ@3>}B>_zx 4ƣ doOŕ t_RIS Ј2٨~;
-
-}}.V](L
-d;O*
-~ ˄{1bZlz0.0HUG$LmʒI2Y)x G}YՕj7E&CUaM3hvV}8kKzf<zttץTZmbI?}<nJ
-_ƭXdhHTaFwq-,v*IQwo%@~~R};˽5d%I&aTAc$^+GRR3̭"ߛJgc@G -8r:+W^CZX Iu2?օZXj9J#yn[QkA3aQ9۪JV vٮ喅G#&sli? @8P&>f'H6W4w]"eG,ɭ5(+JV'GQqd|a6j̃p (;5$]>~,:wbӴ +ШҴcZZTXH4
-SOQ ?Bwh=@{1< Nֽ}J$޷On䓃*;
-I$_A~]Q>)GQ35
- P9ױ
-",itrD0_w %"Sï%xM\@n'C/${1 'C
-a6 JAao5}ZW9_f3lVM/NkzT,xĔk|f|>'%Y"+%*1ٵsfOm]i^> t7ZC%`ȷw<$E#3%&/O+3@S^F$L멵tRU-hhM }Zm&+dUK>qBMoe|UҬyDu3i d}Iq]r"%SuHStwhriIZ-!4)aZqx0'Fɷq$:o[xѴ`$\
+768 0 obj
+<< /Filter /FlateDecode /Length 4718 >>
+stream
+x]K9WqD 0gdz۲X=.,dRUm13]OI_z~"%`՗y% ~rgV\ps9W/#oJ[F>qn)/3<!}GؾK;(ߘm7c['
+(sTiY<x^wܕ>sS-Gz*||}H(O(r0-J(<H;_zԁ nOd^`afBpξu0s
+˂xəHϔ@(jfw`cקyoGh]&HxN-MO8Cv:HsCL:<i+!\᛫"/=3IC~+}?{
+,r{3kO Rr - F[,r65D]66/ihS:)J;vp0TN_4U4@L"Jf+s" :{ibc0{2#-3<O`K7_^xyR4 ^^dV<0?Wvp`<SI%.W<Q,7/{ l
+^[/
+FrY/(ͤ>aEeb]/ & ^BL2s3! ͐IIB&%2˟o\SK 6j!s]-5d G!sW/Q\K 6'RB yB/9dR!^><d9d:P!3>2dNw+͐IIB&%2˟o\SK 6j!s]-5dLJq;d3
+Kz^J<2O% G!^ioFx[ן=+dqسWg=6I%=r.fy2g]ͷ,ZcyJ`T͉h}P0`6 ֻΔJ:ɈdZw׻ΤݒKo#CVȕh$$ ƀ'n2P@,ylcfs5(0iG.)"aȩƥ9ōxZ`S{4
+Vt,$l7h=E6कl]B"zc/pSh$:Mu!!WIO[
+&h3ͬYn^ZGqq7;5Sd֛apB
+z bz
+ O`mVæ20-kK6^6 jisoVmDmGiI@
+kz}TȪ`]0R/=;+ nUimQ|y'r-.Fc9j 뫔peh0r"3ו@sOooD(R1o_yi},6|Zi7rM$0(y'[6퉎]~aU ܔiiK\BpwkIMy'$-oiQ3@iT?ޝu@(P>A!uVxf<g`
+gx2U\mqڈvʱ^TיZ(?שu%ygO{ ZDT 5?@I*>7Wf44?%!}rBԠM?2MgwJ%wZkf`G>(4/3O`}c10oҰi;Ot4GJ/9FM=aKְSKOKh,H?zކKv#m,3GewB{PJގP c
+e+UuJ?Ka#-SGC+_1<P8I)enp􉱠:9ا7wMC T.ǕJ^_Ͼ]ܣv G0j30kτFkQaCKi
+yҡ0a s+V$;ЉY~u|P_oB )d-t%
+Mq'Q
+'xr~*^ukLu>ꏭ٧AfvI@'Ez\iR%TgR%mj= 'ϣwDka0Vܶްɂxk>JrwKfԆ!r/Uʹ4Q=*M])HňUn,IO<-B|)8J@veq, +
+%9t6'"OcHɌN9 c8[ݲA71fݶ@;;H/R1ڷA$/ȣ*Q8)v@6JAvi^j``e[(99:]uHlqm^c׶HZ#.AUh|089@J[gi䎅ϓ
+=A3-ulxei~InBKɼ)r -Uآ`ZBr 8V֧A
+jAwЊqEw EqS ċh5dd
+}F~GfSF\=[55fsX&.3q2ݔpxz@+I+ʺ~Dsƍwb lt0Uާ$+y@`$,7=$9OErt\:Ѭ©FeW AJR84Y^ va[a^T˗\kʘ^mB*ۭaƫ3n!;%%8Bt=\0ỊFwsŒa~17#taZ"RM.ZG O*I+ű. {Y4YN%gΔ嫅u`.O Q/w =5~$@\H
endstream
endobj
-770 0 obj
-<< /Type /Page /Contents 771 0 R /Resources 769 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 773 0 R >>
+767 0 obj
+<< /Type /Page /Contents 768 0 R /Resources 766 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 699 0 R /Annots 770 0 R >>
endobj
-773 0 obj
-[ 766 0 R 767 0 R ]
+770 0 obj
+[ 764 0 R 765 0 R ]
endobj
-766 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 448.589 386.54 460.544 398.496 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+764 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 448.589 259.701 460.544 271.656 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-767 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 456.974 374.585 468.929 386.54 ]/A << /S /GoTo /D (section.11) >> >>
+765 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 456.974 247.746 468.929 259.701 ]/A << /S /GoTo /D (section.11) >> >>
endobj
-772 0 obj
-<< /D [ 770 0 R /XYZ 78.37 808.885 null ] >>
+769 0 obj
+<< /D [ 767 0 R /XYZ 78.37 808.885 null ] >>
endobj
245 0 obj
-<< /D [ 770 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 767 0 R /XYZ 79.37 650.929 null ] >>
endobj
249 0 obj
-<< /D [ 770 0 R /XYZ 79.37 505.906 null ] >>
+<< /D [ 767 0 R /XYZ 79.37 380.916 null ] >>
endobj
253 0 obj
-<< /D [ 770 0 R /XYZ 79.37 356.658 null ] >>
+<< /D [ 767 0 R /XYZ 79.37 229.419 null ] >>
endobj
-257 0 obj
-<< /D [ 770 0 R /XYZ 79.37 187.326 null ] >>
-endobj
-769 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R /F25 379 0 R /F19 383 0 R /F16 386 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+766 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F19 383 0 R /F56 388 0 R /F16 386 0 R /F25 379 0 R /F17 384 0 R /F20 380 0 R /F68 406 0 R /F55 387 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-780 0 obj
-<< /Filter /FlateDecode /Length 4862 >>
-stream
-xnGίxGv
-[<)ɹV<+h#S;me_c d[뇟
-cWPH阖f-4>pN kֶ}g\7ළ>)d?ñq~p~?Bm͔rAa֮c_ :طPg(Q̈́@DL\sy[(ă  7C3u]¸k(<iǎAk5<B?F.3~"CT<z}gr}6v"TYϼ + I&1x!q
-pH\A2eɼ!hC"Cdئ-=QfKo&- MyyHzj`KmAK-2Sn{mm㔥h*um$Ph-+*/:u.+gq_S +MYrZK~πV*";FI&&:/%Ohk/(ӵ"FUSO C8##fQݢ⮅D8f]\Hqwg۱΀GDhb+H
-x,{YAӖ$qPÂqg w=N45OԚ6+t710k8A[yqՆ`Rw'۔ԝ%t>mkbn,U(Vlm|-NlPJ,c(՞3֦
-,Z<bG ms==w0k/.oϷGg/YIG&j5
-#daIBFE{m젳_@Dʉ]Ux~`c- cP\zEɯ#lhP[;ɼόcvG"R˲WyɽUK춥AW;)["[It\bѢ;GܛwcF%2t}{L0B^Viky ]5كEiŔQ=,؅E_a5g3| rL uWjyN }1ݚc6& Yz&
-В[s=O11o!2ѶQ1qd#^D
-m
-:x[.`ӣ!0cԜ:eVgFˆ- xK0P[cwT
-<Vn4-%s }%
-+r:+)Bךq'ҬbÐ9,=Kځԅ'r`Z~ԃljJQ]oǙ-h#^aN%?-wѺ17RU>, GB)8;F /`T
-9 }s١CI߶Y,8PدW$5C_%Ev(PnF
-׵Sy7QsqΓZjُ>cMkYةb9,oa+F&S.
-c:`ՃFJ*y.oZ(D %iR%F)KZ;JKŴԈ2f/~6`>)X砦x3QMӠ8QJґd,: n gK=~XA$=gji"^ˤi[ʥ8)(_s;$]a d诓7Yq7noH19 p'zP/8X,*e2@8o ?#%cE<&BlO]HR ?F u`\o-L2i<)ϥد6LsԺ(/ap[f!i5KV6uFrs2땴sg^5U΁_dz߶M=->z c^I;
-QUC_%Ev(z0CgSyz@(|xAA~FAS"g |Tgˠ/kXI(%PXldʋ.P^@dʌ}4,o@T#\C{ԇ$ $OLKu|FʤZ˝eL3\*kLxf݁EHOۇ]%B%v Ĭ7A.p^Qڎf\?S]))Aa9l
-V4~.,qi^\hxm7A@^#[jk@~#kc, cvuY1a)G
-DVv<mwt#(/[C+ (7dIߪKl%()cEg&`R>G__KLa/Ŗ4pi7;R@Y8,h *N 3I
-HWfom\VRm0o]BuE:"< pzџ#F: Uыz.,0+)먜yM[ěʜ&Y
-6@ eG3]br n9Knj
-M*nI~[ȓLE洄{p)E9aH?Oz)03+0VAW/hy pz^|<x;+y ĤwW$ahk*T}+{<s`ɸ h.s8(hc5_옾'}m5&TF{G{*lu+x 8f`i '_8G
+776 0 obj
+<< /Filter /FlateDecode /Length 4740 >>
+stream
+xɎd>_QGP$j
+]s rr} CjO z=)")JÙ-|g}3oQy'_zb`J\>~9pΥ?9W<jD#^ȅL
+Ы: 4< |g xyA V<F4BKRo/ ҕgJcl&q@6 < Vp/<sҦ_,Sޗqk,yo3M'5Ӫ|܀O3jo~ f)'/"Gq~ a9ZeEꕒWq)1|)* ل
+C-f$z~qZ/C[^k32"-(=:7-?mN9r%3eIa&sFɘ@;Nv黖]KE8mKQ7'4bO qwə@P(^}!sa?)Oo'όx7a_1BIDz2}!"2@2%[ҞмVhO9Ui+OC,q5ڍAM:\vkYPȷ*4({rQ.B 4GᩢT-/[,a+/Y'm -*/Cg*Yb/`I9<nD I1>kDžHɤ1dQc^L܋dmtI
+TQܤ
+Ksr,9v2#v؊fkF궊u2ŊC: E! fQ84܌sLhBWPo K*8Jx*BIv`@t=E5IvI۬kR!.LHRIĒߓ5/ qE/6Ħ–~QaKOo{qxquFy Bq"+W7Atan얗ɝh!d<)+QznqǑIȃnt<z=Zn(\i+ݍ ߵ|`#4M]KTuW}G_H7a.x7ԧ/B4P-Z;N[w4CR D]+ ب)$=nb:Q(֒7[64
+5cʝ
+s9u/z,Zmҕlb$[#_Ģo1.6)8\͖z<eYqN<*krF]~onr(a6jQ83zz5Y -O%p)4i!P}
+Hek.\3٪,XEs#9qE#4•"57m+ם
+vgrh ꮕz犢kl}@Xv a<Om X$[+%i² `_޽!Y`xCi9 LbHy ʯ:< =ǖa@8O߾z~`lN;wn3 ]6gO./4ͽeMeHV2=ִsg#M{WM;G~J9Դ4=e裫8z7iCwGv;~i31M{#k6!P{qC(ݻ碿P
+ eM
+4
+ Q}PC[AY @q$"peD"ۚ?.x{UM&"xk;eH%P׼nKnit3IM~\_2q\eka[9(ا<Y%Cv
+8=AzdUņ<o =J).aBV<9_iNٖ֭$O[e m
+4,&rSΪ Cp}0'5xͩzAoKz&mYzlk;"vjm?`sxm(ߝ-[9d:\BTA\NnexGb܉ؾM9Iµ
+r]-r]wW];w^t`pKQ8zcwj<ºqÓbx۰VlX+!:{VڈI[NOVJYڀm!4}9s CI_i޺*"q"R{o|]0^C)gJ3FOH]{Ts_*.*9huCt+
endstream
endobj
-779 0 obj
-<< /Type /Page /Contents 780 0 R /Resources 778 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 706 0 R /Annots 782 0 R >>
+775 0 obj
+<< /Type /Page /Contents 776 0 R /Resources 774 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 699 0 R /Annots 778 0 R >>
endobj
-782 0 obj
-[ 768 0 R 774 0 R 775 0 R 776 0 R 777 0 R ]
+778 0 obj
+[ 771 0 R 772 0 R 773 0 R ]
endobj
-768 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 226.429 757.783 427.176 769.081 ]
+771 0 obj
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 226.429 607.034 427.176 618.331 ]
/Subtype/Link/A<</Type/Action/S/URI/URI(tex.stackexchange.com/questions/488566)>>
>>
endobj
-774 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.498 86.285 202.955 97.742 ]/A << /S /GoTo /D (section.10) >> >>
-endobj
-775 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 373.619 86.285 384.076 97.742 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+772 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.498 87.644 202.955 99.101 ]/A << /S /GoTo /D (section.10) >> >>
endobj
-776 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.883 67.03 226.108 78.65 ]/A << /S /GoTo /D (section.9) >> >>
+773 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 373.619 87.644 384.076 99.101 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
777 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 239.163 67.03 249.62 78.65 ]/A << /S /GoTo /D (section.9) >> >>
+<< /D [ 775 0 R /XYZ 78.37 808.885 null ] >>
endobj
-781 0 obj
-<< /D [ 779 0 R /XYZ 78.37 808.885 null ] >>
+257 0 obj
+<< /D [ 775 0 R /XYZ 79.37 677.479 null ] >>
endobj
261 0 obj
-<< /D [ 779 0 R /XYZ 79.37 731.098 null ] >>
+<< /D [ 775 0 R /XYZ 79.37 580.12 null ] >>
endobj
265 0 obj
-<< /D [ 779 0 R /XYZ 79.37 691.603 null ] >>
+<< /D [ 775 0 R /XYZ 79.37 540.625 null ] >>
endobj
-778 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F69 406 0 R /F55 387 0 R /F58 390 0 R /F66 392 0 R /F19 383 0 R /F65 391 0 R /F67 393 0 R /F25 379 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R /F71 419 0 R >> /ProcSet [ /PDF /Text ] >>
+774 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F25 379 0 R /F16 386 0 R /F68 406 0 R /F15 385 0 R /F55 387 0 R /F58 390 0 R /F65 392 0 R /F19 383 0 R /F64 391 0 R /F66 393 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F59 397 0 R /F70 419 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-788 0 obj
-<< /Filter /FlateDecode /Length 3982 >>
-stream
-xˮd9m,AB⼥]s`բw y9wzf1,oUb;8\Y?EtrQB;%S?Ji~>ܴE)?P[L>@v>oso⍔#XmA8{[:>QT4vvV3M
-x5ąR᪊P
-8aKAEYåQ!˞L󞬀e74
-Z](P\h>B;Ѕ\j{Z^&{G7ȠYU zEqՄۀλewәy ƿ݄_QN
-9w)9yUrN`On~&iqgVk>/KW(D*t  7mPޓQaM1[tc6ll kd5*ʙїrbNpOiAuO#1 9t5ԉ i)AHԆKӆdEܘ&֣N@l(z]+PqA՜ԝ*5#X>=!VFRզDu,{_ЅbqCZ;)ED&KJ $\.աPB&ݶ\(Pע@nuP+?[T5ͺ %7ΒY9^WL n%0a ^T#Ipæ;Z84i$z12WvZDy 㭘Sk[sL֚p4 &&aUFNɶ,8::\<PMc'M_
-K1YZ) el0{:܍%Umn ΰSXńeG`aw}69sl #I
-~mn[6G2H{W?G
-c굦756bq;c(ːŕm}XEs(Fq`!_2{թURaA hYy z弯&*J)>p˽'QoYǝqږLܺcWO䬀؏'[S0S/+a'㨈3z b
-21ZircQ_t6`׾=^^5&cpOי RrCˢ~#>b3
-95TNapV4 0i֍V7ҶدR=ܱso⭧T_̨=6Ρ}`S6FirD0܁6tP/߁^Ӄ°DaQq{Mz6S2cCWׁi::i TmSޘ*4%Tr_`b_KNT&&RJfs)1? kLkZ'c0 \,J>tZ
-ekزSUVs$gU%$|yUIZAGGdubzqg jNG]vOd\^ S|%P#Aٙg, 4F{#?3%|̗g}]7n07nX'Tb>%XUꎈ?eUFnFU{k^FN{ʯhk
-լ^Q Y[FiQC^LzR
-r/"HETL<*i<!LLov)#}[GT둟ȮäG0c,+6YA^u4WQDak^!ܣ_`abn\fȩ[x$?n_Ǻf -ƣp[(t DzVw8 ;utpz-/^MR޲I$j:d z5cͧsC#+-2Tem_f6s?NVnx>HŒrBЯr:}VI [g v:e@2J&OX23^eScZTVND`3U,]q}mmAetVYO֖1Fx‚Y4]X<K~['Y*\ É*=r/3lZZtmckӝ`'ruf75doۮ$k[I{6X_jmpmd+ 䶦1kٷ%o-)Ș7 ;!moQT+i^xRmQbޱ;Zߣ!ŒDp1X~<t8xOoy3ְ|J_˺v.!Ǜ~~zkZ/y.8$
->UC_~U0L"#X*"3|_{/&ӳ>\}kE1pA =dKB)Du ,\7[Х=a!hnM"N%_c;Dl#\pWO`jiJΥ5yٹi(Df3\pC ΤTSzViX36$Yk[nzxg%8-گt&0UUWiI:Bar1i~>/aAJ/bWx%mRn<Δn^
-f-9Ǐi`vDe
-&/3i<uy
-' &1 .ҿ@;EמU[ÝI\#Lx՞(NIِ5~Oތ1NyX IīHDb/ h#/ll&
-ʗh[vvtcLw(0জ:S٭Ur
-Rgbdz%~ʖIբ9RquI
-S!<fԄJ[/?3 /O*6K!JIRHG_-/a1t|(v}:H+FFW۱
+785 0 obj
+<< /Filter /FlateDecode /Length 4357 >>
+stream
+xɎ%>_QGAAspN!6?NT[ςׯJ(I|ew/x}͓ЋgހQ۟_|XϤ]}ȹ|/9O?!i3$g(\#LP8726<C(r9`hm!a&?hHcRU~ _>h,"S^B=6ҍ'8a=>.D3H`Ig$V3_=(hXh| W*&0ցr6+H<ȍ
+D$ D))"Oe nYnا">_#7yRM30[2vOSG Ф-n4}Cږos}&h9J ~I2$glϺDUu#zݸqxոc263!|y=}U8<n n0?xpg t]{) FfyGZj; : EJ*US֤8-!$Uc $⺔O37O0ՑeCyTB1_SKQ,JM|)H9w_-$-oˋ,/,MI3<;"nkk@ZFMKU*.<5yl)KH*5e!af?+YSn99{)qWwZ'
+`_14ޚSQ˞]zh8Zec|ηYfV.tG. =P CJh!{Ͽ*0f7؏t+LC@t(J\FC<XBɭ1ˑ0*)GT2qK<4Q7F̢9(|JsLZ9`jvBCeBKD֍0FFfpazZfĊJU HFd8ky?ɒوHoI{}\.] Vg~70oKI
+ik(X5h]^䡸,r B1e0HtpS1hsHk41uy%ü) _;:(@ULs8Bss*A*s:>M$),7A+'6QCm.YwtF.l:W7AG[n|N4ȿ'us^E#ӪD1)S,rs'WG ]ȑH:sW0Ri& ėH$T l9}6* #S/dT芟LxnjJI'I䞛I ),L06`^Q5:y/AR1n0'JU_HA+Xa;0}\5g|eBޘ(e@bX愝#<-Oiƙ9#-Ax(Mq([!~eؓHF%er(9dIprFF|S%Cu8BۖTR VvŇakiF&x"eiPJ3bq7K~KmqJS TuƑ#|wxF% xڵVKldet+o G bg)E2rPeQfXt6}xstz<N˹M^*ONPQg2rV?s͉GTK^)Zd( `
+~:G3dS8%WRq̬N6N3\bC;Ƶ] LuNxlʭ&]mW T>7֚4t
+oF(}lٸn}; Dz4s~'&P^Y 2/5ZzlɁ%
+)7BKa3[kB ^E6jE,RH *ke!E titD@`#i4:gQq GGxR-|t@C%l
+{K ,^u212%2]cXN(K1jp2{`4(:`*/\Ma )6 Bx黃W 3A:$R7[ ;/š(xkl{14N{C9hpOU
+W&64712 V 1:C~\B4M
+VG!`=uf(ϱ|2Z fp*V͙NyՓyƩ+^ېUd;<L@<:^NOkqZ.K`\jX佄;wNo<[z.omn(:uk͐gpohE;n|x םfBtIgҍxU'UXZ=zhVX9Qn:QmqBmm-5Z+VD.(𜡨@͠`5ʸl|@v%xءF #[rM$DWτȢ5 S?>qŠ 8^3@AЭEw<ɐkJ?wrA&RT帀oio%rVQӸGE!*{o~\Xᚆ[OH/s,I\pDנJ)]ˠ'h?#bzb=Oybۮ>@X[yr1OՎ/*(kQn=<Ca~zUP$ ,=s[,7G+~,iDŋZ6fkx$uEõPJ[A3W1Oۯcڊטk
+\L+.ҝ[`Mݢr&jwϕvӺnHkwr9kKIϴ#֖RY4X9 Gnʚ%B
+;n3b$Q4s^G x7jWvn6#+ Ouc\(k,ȱW|#H_6]U;v<ȵ1 vnI5 NCLD}%PIIVDIO$<E89O5Nӂ'ӂQ
+R<
+!FZ UI8Z e?X_E*B/?xꏕ_4JT"L^ 8].VD5V䅼}mرUT&1filj4axKi҉$`LEqP#ɏ`1œ
endstream
endobj
-787 0 obj
-<< /Type /Page /Contents 788 0 R /Resources 786 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 791 0 R >>
+784 0 obj
+<< /Type /Page /Contents 785 0 R /Resources 783 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 787 0 R /Annots 788 0 R >>
endobj
-791 0 obj
-[ 783 0 R 784 0 R 785 0 R ]
+788 0 obj
+[ 781 0 R 782 0 R 779 0 R 780 0 R ]
endobj
-783 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 248.048 509.115 272.735 520.064 ]/A << /S /GoTo /D (subsection.18.10) >> >>
+781 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 248.048 350.433 272.735 361.382 ]/A << /S /GoTo /D (subsection.18.10) >> >>
endobj
-784 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 288.456 509.115 300.411 520.064 ]/A << /S /GoTo /D (subsection.18.10) >> >>
+782 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 288.456 350.433 300.411 361.382 ]/A << /S /GoTo /D (subsection.18.10) >> >>
endobj
-785 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.765 107.237 148.72 119.193 ]/A << /S /GoTo /D (subsection.15.3) >> >>
+779 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.883 75.964 226.108 87.584 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-789 0 obj
-<< /D [ 787 0 R /XYZ 78.37 808.885 null ] >>
+780 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 239.163 75.964 249.62 87.584 ]/A << /S /GoTo /D (section.9) >> >>
+endobj
+786 0 obj
+<< /D [ 784 0 R /XYZ 78.37 808.885 null ] >>
endobj
269 0 obj
-<< /D [ 787 0 R /XYZ 79.37 496.156 null ] >>
+<< /D [ 784 0 R /XYZ 79.37 337.475 null ] >>
endobj
273 0 obj
-<< /D [ 787 0 R /XYZ 79.37 403.681 null ] >>
+<< /D [ 784 0 R /XYZ 79.37 244.999 null ] >>
endobj
-786 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F25 379 0 R /F19 383 0 R /F16 386 0 R /F56 388 0 R /F66 392 0 R /F55 387 0 R /F69 406 0 R >> /ProcSet [ /PDF /Text ] >>
+783 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F19 383 0 R /F25 379 0 R /F16 386 0 R /F58 390 0 R /F65 392 0 R /F55 387 0 R /F49 394 0 R /F48 395 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-795 0 obj
-<< /Filter /FlateDecode /Length 6970 >>
-stream
-x]KWea~
- L.8a/GsZko$ 7\;ޅR% @s VM@⎄!+!8{1|uE32'U)H=%Nڒd
-cKRRVdl
-1V[<6R<"%{c3=S%Y'}\¾V{E8$yY SaG<hMɳp\ !q(R#]Ցˢ0sx~Qܹۑˢ)^`6Bxᒙ,EKVRS<˒9Vb)T4ϑQn%@Zndkαrx{#%KdsȥQ}nqvQ(ʦx;]}Q>߿k7
-_މ'ֆ1<,-xӄz/O|ʼnٗOCclՏ7Xyg9tRӦ3nv<5[4c[K}(Pס
-m]\ec_#.Ɨ7u160O ;X-> |( ŏG5>|B;?yt)lTM#l<
-篓Xo`cMy\72
-vSTkSB5P]E|SUOǨ:yU':s:wU~C?F)fn T W`U
-R"aIJڒ=& ٪
-cKRRVdl)DpL<؊s)5R~aTK:˘`@*ȭg:^м\.!Hzڬ q#deQ
-%Kb)-a^#&WQu՞{UI4FNIC|/<o?N{W0n~lqZ!mH຾n_w `awE
-B6$#AWN̷`Ţ %r&76ny#݆dd!~ٙo d<)[11ܐ.3? 9oj7g?3iӿZ Uvr~g>#Q+ɔ'Ya)Ϲ'#9 Nc?+"Њ
- l M2KSᛶdh6lUV5I*f.t%*HUUY Vt[X3ě_Fbinܙ*<"XvLs:{4*jQ]h. [R Ca5ѪAeV K֬ +_;/_Kش5ܫ;R2^6ԩtfOVv6~Q#p,آ6-]( BKZfr{fWظ|cx5Gg5o +tցRvә9MDuޥ3srS@Ijc#fƊY+jh"ն0֓)C#h[[Xp#XZ/G&U?!U,2"`)97/!]FDꊸůJ5wu"nV`91_J~?%vn,$ҎBºEkK5,[ hJʐf0*CFAeH L1=i3)Qh5PƃVQxʉ(I-^U"# !H޻&GR|1J.JIC[ IB<ؒ䱁)c#[`Jvrcx)cR*-H)kߡXebu"wi!ʠIncb &6,1ҿq nðb !."`<B`9b7U%P`N)T:A`Mie`u_
-緋u4Oߴ~99d_+W6҅sA:g-Ws7+ W!BRK(D:Z/@%[Fl4ўA ?>RsYA&4yhE$VDU_JU # kĽn4Z +648VP2^TTE
-aQ=7*փo@jzT;؝)M*^MmxS`$\ep;E;mJaum$X*~1FD؋ ,ggK{f16r#^*OJi[ݍ3YvHUY[=^2s98a7ĹCD/#GRuNyo3c<9WUpl-
-%] e(!3r@ERʶERUA?K~"Wij&>.>0 %kߝfpWQ1`o_0pN۾a^8+/cL"!;a]U( _:qGשalqvmcuCv E(Ҏp%\':w_b?7Xj"im KN Se2sIK4_P`+8Vpkl&Q_T">E H<E)zhKkUǖ$ Hْ=&(Eǖ$ HkbN0SPc5`gD.NX 1Edg\V_˺
- tw3GElg#-7F.KIs\Dw~hYCwp~YCn "3vM|'F3
- т)vڱZlQjg "AR}2CSe$vs@%NE2K39BirxWN Fz-M hNNE>K#@UБ!j$ϡ#r
-2"x"$U^>5?<2iN +svKH_Z+o\~8l Y{Lyſ"'W`Cآ[';9ȎGi5ީL;ӛ?k^ytn<za75?a#w`^qН
-69Ub'.gsAGO;C.7w{%`7z :.ڣB"1s/3tӣ`[dXs-ڜkn9v΂s0v)&퇮ϔX|НOt[ VgڤD+{u%7_G;"HqBB
-A)B\BVO>çZ۶wuZž{c)#!we$dS!)B7ܭh|p\bsv`4W'hݪ,_Pz*tZ |11~B/ z6lKe^8r
-{Y%#\Ɇz@#VWd0+ 1
+793 0 obj
+<< /Filter /FlateDecode /Length 6829 >>
+stream
+x]K$ϯE~
+[\j>T5t E_oIRr,
+'n_AF8_` **U[o/mLMX+p(⭻&.@E ܍P:lnj 56 ..d쨛H.xBHhSm2To P脁Ob'X+QCź 9vi-UI|*.VF?߰
+dg'_RPq-L^UѰ&C8MHIK.-VL^L%w,TGi0A ғ214yI;*:G "T#H*w/ b
+lg@.cqH4. ic[)*L6N ‰KhKfm6r!٣a ٜ t:CG2 _XcPI LI)_d(:]Il·J j٘#JwR44T26I%VMvh
+Jkz%'gd=QN@6+< bȨhA
+wܲaŤGÎR&m|aJ &M,d*[ٗ1)Y,Ϲ-+YN2eyr)gia͕,c.U9WN f~r2ezɕlzNSө34b^w#Kks :ޅ(wݿ.5=ҋԀW0rXQ_FK_cv&}s5]!Ld8џ!d2??
+Pa=Ќs 9&4P6$^iWWS] 3fWC!x>](muxnƈwf^x^7 3h"=6XP煻xY3=S%@jͶR1O]9ΙtlZƞac؜K9Z؜1g}793
+s'bSZ(b-%b3Zrzr8s"V;Bh)ђ#jva1-k-<EB ?۩
+>\Bd|ۚ#K5dU7^XyZ+*_$,6٢BVewx|,Vb.-`[X鰬חC:x^`" +j-by{UhsB4 oGz:* V h5v@֕rxOA9f Uts;U< [3]>W!qWB9aV5{ZBZMj!/9bn+̝Miuh#f>#V;Bh)ђ#jj0>jjOV[\:N-VHMlVIӅ\
+O=\&Qq(@,]̪̪ĬRTUJs*6$e
+Jr `S|dJ?
+8zXN*6f[ *ZԨ,^:Qo
+E3Lp'Cv&OSexM)z.?Cv"92a
+ى)x$74 X/&Teڍd'zw|KMjAPx5ZKԷ\
+s'bSZ(b-%b3Zrz䈅3XaDlJ EDlFKXCvYA;#I2 t
+;%alg2gt$dܙ"Z9|'fex'$eIrߙQ|'f%''bA<)[."<S3?ČCxr 3Iy+{>xB=̱vڳw(ixX+xrkCA.xrQI~bHs2\t!q~6XBy!܉ryE B<W,=ASfO%أ)ю,y`c#kwO[{Κc Yst!:]G;2"=o9?Ru6 vv)3`Su)T*rva3v`Tg:Tgb:1>3zsPЌڑO1Q3I#¦)]TgfѢ:Au#r P5:9w()J9wN%ECT6;w*)~<)]t:t&/ ŀ@#,bx`O_J-SVk3*f"r9f#F80Ve|k N*EVW9AQ:z7
+N|,!'=7񕫣C9$A0ƶ
+i ITт
+X4 z)1kARrIᪧNgHњ1&@k?6F35.E}ZPtZM-B;u :Z7CEī+ù]}?ܵ
endstream
endobj
-794 0 obj
-<< /Type /Page /Contents 795 0 R /Resources 793 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 797 0 R >>
+792 0 obj
+<< /Type /Page /Contents 793 0 R /Resources 791 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 787 0 R /Annots 795 0 R >>
endobj
-797 0 obj
-[ 792 0 R ]
+795 0 obj
+[ 789 0 R 790 0 R ]
endobj
-792 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 475.907 101.046 486.364 112.731 ]/A << /S /GoTo /D (section.9) >> >>
+789 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.765 617.317 148.72 629.272 ]/A << /S /GoTo /D (subsection.15.3) >> >>
endobj
-796 0 obj
-<< /D [ 794 0 R /XYZ 78.37 808.885 null ] >>
+790 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 475.907 95.653 486.364 107.338 ]/A << /S /GoTo /D (section.9) >> >>
+endobj
+794 0 obj
+<< /D [ 792 0 R /XYZ 78.37 808.885 null ] >>
endobj
277 0 obj
-<< /D [ 794 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 792 0 R /XYZ 79.37 599.397 null ] >>
endobj
-793 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F56 388 0 R /F58 390 0 R /F25 379 0 R /F19 383 0 R /F16 386 0 R /F66 392 0 R /F38 373 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+791 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F68 406 0 R /F15 385 0 R /F55 387 0 R /F58 390 0 R /F25 379 0 R /F19 383 0 R /F16 386 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-801 0 obj
-<< /Filter /FlateDecode /Length 5607 >>
-stream
-x]K$7r ~
-@:]ܦ t)ӛ? Eze9g/Dó7436*AͼvF]s58'1@|!~{ӹۇ'i;u<[A|⤫u
-axGHla=ԅm+S6M_ij$[5ѡi^Y2Rv\t;u٦KESg(R:v/Cq=mPҡN@-'<P
-R:h|hH?rAh!N]1&8 "J$|aPX]Oj(v}{ÃCt(x3g.k#c2e"X. ؄KFL (/NZHh`5<^wKvo`%& 腃WnV"~GX;&NL`3Sle-d P'Go>Y_?%}D_jX;n T<&*&c-U0if AR&YJ`4Cᳶo?v
-k
-$%I~Bf VaJw;J1ҔQ[I:Ԕ8tByz/hmt5յNPoh,OKB]Č?E`5cu[{L&'Ա,;^m엍) N}Or7Z^DB%+1rtyvy# k1~[6]yĈK5
-)[SJD&k(vԔ*0Dϕsk{ՅRZ<S`
-(%5*ֶ$mbk^x-Oqvk56=rW3R5?>(~&WO.+3^*wZfȧ<ɣ 6Pt*<cS_f&-y`M.>ux1jr ~Y{rO2Vc鹹F 8U7a<p8|U'zzx_bu.“G]_F-SX{Q'1#oOv|= YXj:pĵab%ks`_i5+}gl&,@;VhqIVH=gw<gkOel[E:mƇhIVɰ9־}~0KkhBjMF_W~k'?HJ1?{5k8RC#W3*~A)RuDFsy/-
-m}hs8 U*qhb
-whZ7i[Ym֖ȧ-s~]
-yЯg(k{Cn=KsnlK.֏M'&lԫ7/[^ll&W!G("&O6uY;v f^bvȭw17~n=a7ѭvC~|b6%fs~h_?d4S
-6DZ\B_tPY 5Ҫ]\?d1+!tq* !tq
-Zk
-}G^U<4!*y!jCTC
- .a̚SבG5U-ЏJZU<Դ@?*xL?MGK]G^C sHqCci:.p^`̡XY%_[sסW8}ġX]OskCWb=!#)X6u1FsH9`yCR! U
-AB絑 خKe.+}GCqwV/;Գ; ?B|ɽ6F %k?Zim$/Q?]ÿ}#~ǏVĤaڕ I&,0pmԔYUn=djJ=^ KoAimqŌjڂ _sE
-:Q](u?TjHo>bҢ}q$fzsYz1/p%JPY5*#DS.K`|xrT_aE5_9z
-^nW.EvrB)x.lx\Ycm[3 ,;gvbg!dcwʁZTăѶR$˘KJljM\tsrXc,E݇>u֧\ݯ&ncXi^UòE[o7W^7ȇ~K%#g]mZa:f+1_/[`Ex^N*^NQi gk"xBJtĮ.%?|,LDU?~Ga/{)ľ n`>}Cr"ov>@.l2~/.J\ :\)v}KCR[wNv5#Iia-$:d3ҁ'q$Q[kLJ ;!"XfXo[9rhh* T˿37.Њ"Lw;볆nmh6 1Xo::.5dd_쏐۹?ٕR5us[1:XƙUzit#Y0ΐTElNO
-*$^\^>SvoX+qKK/Z5{"^p>&{YVD!B 7qIwؽ&HA "
+799 0 obj
+<< /Filter /FlateDecode /Length 5255 >>
+stream
+x]K7ȣ}(WX-mv Z1`?7d2YQAVwU1"dFF゗8~g)/~~ ^Ȣ bjQ ,G)Ř7n}1y]QcÏ49&4dݛx={2Jd>]7-Ab?YHU
+XϬ3ڍ{n28P=E ns)!s~Ccd_:khG2Zh?-9)'"e;[7YZoAh,.x0VݧjT3s$oV;6q:FW<?̳2rʙe VV&}b?ߥS̛ODlV[tOO-k Qq먜˹ZΌf;n'Mz4""ah0s"b,ҳ<nUy'9&8{vӄ}r<+sl-LVc vi@ Y$06!
+ى#ehB{2O;֑Z# :B$~R`O
+k@v|(*OŠ'OkGxϼ i$:9[.7vMk{Iļ= y
+4y NtMQC82 s 80RJx"ӧ_~qa1$: ZpFDa*
+iC&a
+)q =p*F:Ŕ6\CxhW/GRacW
+=z-hfy;3Aj> ƥ;J\v5(VAEgH8iB,ىL![ :qݵsƦOk
+p~=6ϼz1{o1|~Jj7 og`G+7ڙvՐdsՍ w hdk Ov2pN9%U[ >qѭ:H{N9HŠ?b?2 E(p{
+a?V鏧d:PId %W…se$LEx#z8ӰŸtqy98hɎߗLs&gX^.dH_ĵĵ!kGi<}wXwoyalXHMI瞉9GԘp/~gןN4~,;#e{^4㶔;ۃ!j ۂ5w<>vgk(Iڿ#e02`Jj8nD ͐8eʜܑ vjQXBA~IOi csj` {ܴ
+Ig+Vwi5Z7Nw1Ϥmw yk'R-wWOs%vYk)65qɌ <Z0M`cxgs\8{Յas3wfs&._qW@B3N >7%"S+H Q䌀PWBtdz)2i9#DD)XE9\40C0'Gꂸ5AH9dbRJ>֜@}$%!&0l,D!VH?%%F)1=0
+FEP[ZΆo7բ2exCkT-,wV2KfeZ5֢@עdy\2J\v5(ӵ({Y- :qݵ9[]X8|u(<Nsg)@5)mt>gQR։flM
+v;f l
+{
+ćuP(L
+ "~xYVSo„|zh;I&%Xj!Ze-K Rf̬.&@vHmiV ?,ݭ Ȋ; k+L !҃ZgF%E'TFirPyg倫>X; N!HJ]cJgp1p/CZc=@3iqf)Mm6kxdowU5 ɲӖ2V7産Tę<+J+.[(h47g`?pMd3@aGkOR*MXkH|vވR_lt0F
+rwڕn0wp:F*9k:aE-ݭZ]XcyG(u@B]k,@-D񧭿0[߬6°?d>ϗ?v6Vҹo]_^Xo ^g> cMsGré&5K½\wOHaT)Pq)6qg[ғ~Z1}/>{CS.Οx m盻N/h%馪TՏu|i_o+?g7xNl8d1HLOmP$>GS{>́>o_Ij4fKg^̚kr}>Gߧy̫ZE~o\
+E>N~:bULTzX6f,pu¹~knnZ5o񑴌s݋)Zϯ+Zщ42D0Iks`Թ/BV+Uā_'bY<,>B_/ 10~NJ948~{)#d_S ٱڌOђ8asw
+3&~y[.U{5߾!\[{5!.Qޫ_SEx(Gby5,ѧ3P׈X,~I19NkZXWPe䱹K1?: XZl#Ifo/þk.YnJ.E1j'kd. X]?n
+M -M '&ma8?6_ אz qD?3_ L
+%
+^lZ+v*m;CiLh49NT0xPp#!{pY6$Tx$ +(hKIB,11a rlx P6BʐEBy/bv0Y;zN {Ȅjt.yyϧAC^G?LɁ$8u(oϏo6PIߗ<w%4";M|b5i.Txw ] 9Lrp0;sW5^ p8-6
endstream
endobj
-800 0 obj
-<< /Type /Page /Contents 801 0 R /Resources 799 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 803 0 R >>
-endobj
-803 0 obj
-[ 798 0 R ]
-endobj
798 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 480.406 604.2 492.361 616.155 ]/A << /S /GoTo /D (subsection.6.2) >> >>
+<< /Type /Page /Contents 799 0 R /Resources 797 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 787 0 R /Annots 801 0 R >>
endobj
-802 0 obj
-<< /D [ 800 0 R /XYZ 78.37 808.885 null ] >>
-endobj
-281 0 obj
-<< /D [ 800 0 R /XYZ 79.37 199.572 null ] >>
+801 0 obj
+[ 796 0 R ]
endobj
-799 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F38 373 0 R /F19 383 0 R /F17 384 0 R /F22 408 0 R /F16 386 0 R /F20 380 0 R /F23 653 0 R /F69 406 0 R /F55 387 0 R /F66 392 0 R >> /ProcSet [ /PDF /Text ] >>
+796 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 480.406 444.023 492.361 455.978 ]/A << /S /GoTo /D (subsection.6.2) >> >>
endobj
-807 0 obj
-<< /Filter /FlateDecode /Length 6309 >>
-stream
-x]KqWe8@AJK;'A*}X;[Ud},.~ ?WE\L:uqN0./o~
-Nd)˵gv*jsiEr|*\Y 6Cvw %
-gj
-VL!:nIkU9A`=te TAnŖ9>920PC1V,ڎ6!EK
-e0ōZkXҊH%ʩ35Y %nwz9U.0/`Z@HkqgfK䙺-"O bע 4o<(@*QHh>y/02KYh&CLa=ՊeĝKa {Ҋ@J>$Xɲ"Ql{
-Hh)GNp!5
-F֙"kn[+6b
-̀po1
-.ɲSXK!p lV[>RҬC#qԕLt3Qe}LTK&/*왉y.&:LGñDRh;a
-gqyn̿}]d+g?]HU
-hZ\1B3<I-MQ(<SQ0akoפgUrA0n
-R7O_ >A@3N_mjb0r%.4'aYR>sLIa| E3>R(YQOI;mļ6ʁ6Pׄ6RVc7N 6K`+M{b_W;K}&=PGLvD[g*A7X.>%'A=|JMnfVB/*Tϫ`}^l?ca?" G^4!B^9p9i7ǩ:\4hNˬ1hcxk2(m$D̍6sйYX+Bg+O*sxk,cyPjɃV0p=<F(I;)FmXN 'nSQ0!K-NԆu(Xf$K?)>0 S}!5'ڨr= 4]I!:Fi2M*tJ5tNYOc-:n<Mu]sZ ,´g$JCoB`҄^'Oc#~^~ 6*{Wv^ULöSٖѝm`uT~.ε7q?mݛz۸מ=(3Qo۳g;eûSyU:gw,m3[]GwQvsŬf Uɏv/BhK]s&?pSy)-0;R3[xĢ|ns-BnG(gaA^Ym~bnx77<KlLwü9=q
-&jaξ1&Aam[xֲˢy̛Rҥ=ce7gk)/7c<~)އ1,:얖ھK4~t{W+$a{CM@r`C0TdI&&9Uۭ0`ƥE9O\$Ob,4 0L^C{ҁƜD=}O`a¥e
-41&RLd4*ll9-
-bD̈́ҫz%keK\\m'keȃ[jۉZ ^vy-dyƯ]}fX Ys0VLF#߈nzV{2Vg{{I%2tA=MlJW81?H!ERr~[i3HГFG:``vI'AWLA2hѤ;^`WGΔo"%eM7y>d?ƥ{YaR2+ Su (CIv{Rdkh,IҧH`‹'J;fyɛ'ksA `% +w/5
->F&(D%).?-yc}`Nߑ)Ch>" ;xWUYu\87ֹEℌMt9KL@O^b68I0z 0ۖ2ӑCiPΙaޙ[V]‡>LVA% }<6$BŰ+6 }e1V1׋bBM|l3G{\;kقSp<ߥJAx'NOF
-t]ce_0+§C gC %Cgʇy1B%?h!?}in~=o< niw˯`'fh̓(-mFP56'u[3֝"6'S77V^O}BZ&F9l*O?}kR;-ZS_!xG ކ/7l#b- ZZO$&vQMJGyt|?h۷;bmWHSp#K#Jkڶ}߼|sitӬzwmHN'oC8B|y#W4jE*KܓM<txBbCoGise:dd} 
- $^1HC|!`ws\366,%?{`f_p
-B|-vv!o-LLH
-Tܿ%8-\g8.UST//z:uKWWOߵE2wZ~ Q;|_b* ;?rԢ+Uyޅ1%R~G/frKͫM3yΗ
-L ^̩Oԭ2:]_4a0fcf">1b&^?T[S>Sw3?_̩OԝpgvN?3wiܦ2Vn>]eX`J+uX6Cmݚဤٚ'i6w̚p .a,~o#y|bdR}Xwms_pOiM21^3g^K}b-x=*/*Hs `Jz
-A
-endstream
+800 0 obj
+<< /D [ 798 0 R /XYZ 78.37 808.885 null ] >>
endobj
-806 0 obj
-<< /Type /Page /Contents 807 0 R /Resources 805 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 810 0 R >>
+797 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F65 392 0 R /F15 385 0 R /F56 388 0 R /F38 373 0 R /F19 383 0 R /F17 384 0 R /F22 408 0 R /F16 386 0 R /F20 380 0 R /F23 652 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-810 0 obj
-[ 804 0 R ]
+805 0 obj
+<< /Filter /FlateDecode /Length 6072 >>
+stream
+x]IoW1q/!DHNN| r22e`rOw!KX,w;~t c);Ѕ-a-,@
+ G?s^1E50ga'Ȇ'
+׆ 㽧ϙ x
+U2 c|ʤI4A,:3S#Ns-pJJCTE@enPQ>GOJPD9ݗ0%PNYA:wFά"J>gs\ 6쇬J hefH(~*a7:}SS礔)%"Qwna((5Y7R/Tc3YLϣŋhIU5i'ڪ8VEp=hDDI CTRoUɦl[2r$%4.'s#c L 2h[K=r^vr10 Y.#V3KFCY;86TEbt^d@2m* iiqug}fkj=-7O7OuUz+R }UR[SAAjK/~.}㳤MvO &5_,C>WŜ('U{uV!޸-J;lπaTTxӶl& -dKm
+:=AG}"x>0E(KO?~H[hl39AiTǝBn(D(e8bJۓ~VuC^5!}!v@ &#X/X1X5 iP kع5{ױ FuC~{N/ p)fG"}%k5/C͘MUq$
+uJldWQlRq߆E@/vՆ'X鍮2 7aJ/klpJԃ3r3
+ȫ&"RѕnY~݅s;0JdMjI4qHІsk,ϱ/+YJM|xCu q%l4iT
+J|v(S箯/͉Fh]@1%6KzR#yù(u,76-.}$)a<B&i9X|^7S
+He_89]9i' *B|
+@WtDY3mb F0D>i%<5iÄ& 5Guq;+-V/"ZiHٯ4Fj}7H"1
+4&C/S
+%!RW/'T3K[ªRTNxzZ%z^s9k%[O;FeZd
+0j,sZ*=dTK%nɺ0kSRi?
+0qw  .a>SFUib,
+!&P\RnU;d˫RB*22DJV'0ں̔Yl._r[)t˛*Q WTK؎0fv,5'dڳZnNI?=48" \[Ƞᣣ\CJ$],%>WB\(7*U"cIH*3aۺ؜9HUDȼ
+M,:;ى70Q 0dLh$ODiE,Nj;
+3UvXn2>}Ydϰ,k$*q1B=<Ib5M&(#yF)܄1v1^E׋8@\{_C XqYlv ۴3,iviV|j8<F9+
+E>lBies4i z2tX+8KAL
+Pkj
+;rΊ+FKuV]1d)=+~䮘%@ 8/(ɝrJ
+MMGtzіo\g :t8hk-޻mOےTbӾݐDY:C ϹFQig{%
+^ S~MQ#RxD򹎰>GpB鷸FGɈ}
+!j
+!j>8C#9RQ#`aı-ESbz[l䓢fH>z|cFLu=-_< @$ z3Q
+s;>3geN%gR_@`Y5^'~5粎Y*B}ai[XCiNy & b15y =Pݵ 4][xRnH[qGWJ A"GE#U!
+" r鴘x[L`~7z0kT\?UX4)1iվ *o"^aevHekPo\:V]#yS`M"K{XAzp2mO\ _NZ-o0>ݓT=,Oi+0Ni(҉
+
+{l7| \jfoV\m~Ϥ/glV6V6W68V.|@F.1)-=ey81ʪg&N ĉrzgG7&.W(>pfe^4}aͪJz1b6>bGZ Vq>XlʏE"?ZpvV v0Lw&.#qg_b( B^Ppgl3!  ! *x)H!w;-6/N;ʲc#B⃯}U%5bl="IcԭU'"`|iخxY i>hӐ6]y<0Vbz*p\ћ#{TXﶝ>Øb ok߅qt}Ff] WAC6젒Pg_!2W/5ppLοt| ޅCik0ZnjXO0?1}/
+endstream
endobj
804 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 422.205 217.586 434.16 228.426 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+<< /Type /Page /Contents 805 0 R /Resources 803 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 787 0 R /Annots 808 0 R >>
endobj
808 0 obj
-<< /D [ 806 0 R /XYZ 78.37 808.885 null ] >>
+[ 802 0 R ]
+endobj
+802 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 422.205 95.352 434.16 106.192 ]/A << /S /GoTo /D (subsection.12.2) >> >>
+endobj
+806 0 obj
+<< /D [ 804 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+281 0 obj
+<< /D [ 804 0 R /XYZ 79.37 771.024 null ] >>
endobj
285 0 obj
-<< /D [ 806 0 R /XYZ 79.37 251.818 null ] >>
+<< /D [ 804 0 R /XYZ 79.37 129.584 null ] >>
endobj
-805 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F80 809 0 R /F55 387 0 R /F67 393 0 R /F56 388 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F69 406 0 R /F78 478 0 R >> /ProcSet [ /PDF /Text ] >>
+803 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F55 387 0 R /F19 383 0 R /F56 388 0 R /F65 392 0 R /F16 386 0 R /F80 807 0 R /F66 393 0 R /F25 379 0 R /F78 478 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-814 0 obj
-<< /Filter /FlateDecode /Length 3540 >>
-stream
-xˎ7>_Q?ЊDm {Ʒ &H.KJ^#ɡ*&\~]IN/O\\8X\~6㳔tO_(^(j$-Q.[G<"<闔^9mBg BDw7e(g6VhYr[RkڙAb?wq&\Ai[y  e׌Kt3oiWA`Œh% VeZ}lsuW.Vduυ2?_gVx<d~d\OG& [dE<!hs/N4”5D:؞OFIMAD媐 CSff0|T5v}]F)Kix?u}<1`?f3\?bX#zN1+Ud4[2#,# RW<kt,FCX;2b=bp*y#2"_(N65xδJ,GNJN6ӕ Gq 2=MS7vDpjf,^;*n®nwcmEyWw9Vd6 ۱cC6BݲW|3 3YMCS%9}vt=zwkBή_c30cm+MP.(ͬG}x\
-/l2vnFn˧ڲхVlmZ?ɭm}f CTbMu4hnv:Ze3fw* \cjj55^MR 6UoګpTý!vzo,*ĕC^& U4*aV7W.Ǡ;Դ/*<p/6M-^:
-zƚ U&(9fY OA6OS2${ش=oQ:+(;;\(;g<,5?06P1tf߽Vpe
-~[L}z誵Lu^|xm֣OO[u7й)Ooqݿˉ_paw'>Oo; u᝕8AG֝%{$y][\dr4J!nş-2Gk 21nsw^mpQ?=ik/zaCCA4;=sJ_BkwbZp`BkpNs?&wT@sʞr
-=`#j&tGnl{}*Xs-d v] ]JA|sJ&;>J '<CkB5޶{M 0ɴH*pެ9Xv큸4"8s?tݎ9c Ft@X?KN;<Vfuڽ?~i
-+ק$h䯎.[ׅ9闋VeM |X>?Ms?/)4yOMHtϳ3~kTS^n2>aC1+y$-ɵj .֡_{闥
-*u} V}λkhcQZ{￵U'`? UweK7S\ȃsI
- )rԚa;LlWA'+3;=n`
-xQn] e7UsDoA&J09͕ =1eLw1y6BپH1At,7|bxMb,\6-u2)IoJrGӁ<=CQ=0bӎ= ɘ8KP*<&O&SV2RN-̓Qu[ {0:hCTxV dw.u^PzZSIZtl*:&=WV{ ޸y}Ԏ7!c=X~  ?/iQ\b>Zߖ>wÃ0N4R0q{ކ3S&-[g~xގljW&
-R~}v.\Ƿ ᾿+=΄OHC9[nG7;
-dgޘ:o1g*4XKYI<|u9[75hhGr7&_V9!}IBآE|r+s<+[?Gf~Ӛ= IOHC= ɐѕHd F
-@,b(wub"JSo +_Ǘwq %YF"9v6I[ 
+812 0 obj
+<< /Filter /FlateDecode /Length 3887 >>
+stream
+xˎ$>_Qв`09,7Ǘ8N#R*Uuk ۳]EQ|w _xgWaV/}/bq)8+byas9WWȧ F</20/3B:gΝo88Qd,8-=!c*gRK\r#9pGF*ƈ79BnI78N1IQY ~
+ė_~^r7l)TZzS }KrWu`C:ܰ%atj%_D#T" D(I+ԀAJ0TA ta"=xDֿGm9ZDhRE06!q؄#]qL̟_ml<˕FU^H2VL˯ :2:p:^Xm*h@MX '_&/ ayZ6}9-+]~=ġ0RdlϮr>RYf, 0o߷N b?xI9oHq<
+9@
+ ;2-Ž-u^ap&0a dNJs A #U7"a(t~Ͱs^vйa'rzX َ4z򷳝Ntr;nmi^(r{!xmZ_|^)R cO~G b1 P,i% 3sc'C0Ky
+t6o0nD5B՜8ʽHK=ܛ,c1Y,άRwjֺy67XXZz&'u0@/'3A;O,'%)Ó0w.&>s̫0og&Vs:u6}W];Ǽ@qOT3S3Ҋ Ǔ<SsMB>z56X5UO+<]w* J3u$Ce{<A|x>&)/sf @΂Sవ[1蓒󮀵Io&Y@V:'޸xk&!|m̾=j1 M&Q 5;ġ9<$|͟U
+t-VnC&v,7e%F!^6mEMjnڜF]SƦ-aZD7T(WFzI-ICHz>9eZUQ&+e`o8 =c%yfi}{&\u}7N85 z:;5vETG<T*ure񽒍ek}?ž&Ig6Bo^Q j+|'y~OlY&e!n
+V<Jʴ(]J]L7Aڶo*okE;O{zZd5df=6.k\ BqL|dI+S6yUn +Q>.~2sCnO4nu,
+K3'_WsU3 7+M3JS6y4krB[ocMKˣ'p4l?d۽96+
+:(ԗ>^%Ǧl=3gIU0h\A ҸR9
+M]@JXY瑼ހǽU!O5}߆DaDfŽs7
+2(Bۈ>$uieY5K 4Mnt+MXж\Qb&č% Fl“QĈƓ\$Hi&* _{Vi+u](o1 q`WLb@Vi=qg4 mŏ"/R.C1K#%={R3#5RNd[*^>ѝחIQ&+oCdu%dYluao,C\28&}EB^ nȀ-UVu*(TGJz,0INkXu'7vyUՠʄͬx43y$7zˌ6emfٸGq&ӭy*HKF&`\
+Se
+nhk3$e\4ur-^Ĵ)4KQPoh_ MD7)`%2~Nyr$D2 Tx!n-c5:FC_ЖŃ{}Mw20K<ݘvKSdLHL圦zj6!%hn[WNz^3/ͳ5o_GL2prr5":Kk1.ZaTh"0JnOT]/ ވ-*A+ƃ>J$^Wf(Y_(׿GQi'/[cBKuS4@@'XnK$U꫐&gwƢb/o2i
+/U?@쀭a/zx:2A暽D=:U:.`A.PIQ"y*殭+RR2CCS_sG?x>߾X^ rlgqf>eX.w{p0S]^#AZ: K*㥤5u(~7ijtk^y豿-o<-Hyħ+O 4D^:y|$%(-r|׀ , ^L($XF,4mCᥖ\U!LJ/$mK
+dL
endstream
endobj
-813 0 obj
-<< /Type /Page /Contents 814 0 R /Resources 812 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 816 0 R >>
+811 0 obj
+<< /Type /Page /Contents 812 0 R /Resources 810 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 787 0 R /Annots 814 0 R >>
endobj
-816 0 obj
-[ 811 0 R ]
+814 0 obj
+[ 809 0 R ]
endobj
-811 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 436.381 260.195 448.337 272.15 ]/A << /S /GoTo /D (subsection.14.7) >> >>
+809 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 436.381 112.733 448.337 124.688 ]/A << /S /GoTo /D (subsection.14.7) >> >>
endobj
-815 0 obj
-<< /D [ 813 0 R /XYZ 78.37 808.885 null ] >>
+813 0 obj
+<< /D [ 811 0 R /XYZ 78.37 808.885 null ] >>
endobj
289 0 obj
-<< /D [ 813 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 811 0 R /XYZ 79.37 624.557 null ] >>
endobj
-812 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F58 390 0 R /F56 388 0 R /F57 389 0 R /F65 391 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+810 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F78 478 0 R /F56 388 0 R /F25 379 0 R /F16 386 0 R /F68 406 0 R /F55 387 0 R /F58 390 0 R /F57 389 0 R /F64 391 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-822 0 obj
-<< /Filter /FlateDecode /Length 12544 >>
-stream
-x}K$7]"Xd4@[XJIsɁv]-Чkf4ճn?^F?/_/>]c*˯yKX/5ko޹+ӿS{ׯРO=#4 ǟ8>?œ?K[!/{@fKJn(XeXAJh?POc6OC!W^ݿyd"|ވ?OR5|ޣ &9@v'|ųqĢp {d]snɣ3-H6N=\y<p>t!ap?]1z TJ&lq=kR Ϸ/l O
-8/K=5f4Qɬ(ӬC.ˤ% эz4f_I\-az~_ dNnCj/k
-X\ <l|lB)3vX|Ex K7
-V#?oi=\x? C$!̲%;lY{;!V!*d"Tѿtk/p;#ܟN0הq
-,Lg `\[iqFo_š?m^
-}Ғhz(=n""]D>*'km?ɓ6yiGl*,O&Z?蔠p#]}iO&z,.={=6/>734ǥ {@[I/ 6v*ޫk뗒shm[1[{-o5A #1޿RKu}?!u>G0}L7|M7>HM%ѪA+~Qk$ZJ/p81xHk+-am뽦UfaN4&.Fzmx<S9AB5N
-)4 Hie,#^@_!U]h6%"!==C]S۱:I\om鰂j3]ev
-r@6b܀չ.C+Fs3PvUYz*]F)ؚET"W-I}qmI R_ &I%M!K6!_Z3{3 ☰@jO4ElZو5olT)2,r ǪvXm:byUY1!܈,ÊBGI NX TᄖA ר](lb4Z+ВEp'ٹ@N׭b3 䚙ru)&(+s=Y;zDF
-w<'Kw\bQ1"P1c"Te<mNJjq
-
-8r&` iOn6R1g(d:;U<)O
-]n;c\:̔iW3;hgp/g*5ScjJ H.Z,W_"@KgFI,ub/XNtX 4rӉsmpܳ*pSA;+1JMy:k9
->n1| xvu{^J
-IUdm*!Qކ
-D!TɌDs`\"ZBôm|6͕6"(Ncȫ 譪0mtW(^N+eUPPm{Bv7wx/%$,g; 1{D{m|\T*1*arՇź`ܜTI(<-YZMB`6/-A~*=@Qܟ;<eɧFc71--FEkxd4BtfVr
-נ%GVbϳ`NA \iXm@5 F5EҢb87&LWT# zp4rv Zn؀f:~ *24 >I22"Ԉ|!RAǖx} s|BtHI=F3aJ65<bkճG- "øf'1DR
-a`&G&6qHy(lU b
-XB4C>Vedd$ֲg,Lc'(TF2@Z
-HZvmVA[qڰ6|݉aЈ8D!`=h&ZH¯ƅXpEh6G|y`г̤"堆a<20*aŇź`l]UǮ'7ʯ|
-fMؠA O7>a n3qx´Uga2Z
->A{]%;jۃ&¸[}(b! gEKn!֬FMj inѨڵY9jۢջ3GзQ '^=kƽK\bWҪVLr&Lu]r3Sj;DY@T[r4
-rVT=&CRIQI1x[ꖞq¶ɜUfҀ%37C|pZlKİ#q=-3 rxtcq݅٪3ID5NvL JzL0,z >`FԘu.x/>5=f3`>Qg M3U7V6=
-0T!^)}L0&_>$|%ouk;^{9;YdfTOKf?+G!-NgJ.ʡ 3IiLt,-Tx <L zs43hT݌X̨*8PuxDڛh_gj-ۄ"6{~f j8S-fLJr4Br4Xn_ښ@sN~U6!M3Q6V63
-T!Vc1IgS|J4XK @;-
-)
-q LT4iwɍ74ޗ4d|97(̋^-HR Dt[C"m(LuQ( efF|ߝa Ɠ{v+N{ٌ(]!|STZlXS #X*^ X8Cr4շnV͘4%)]*4@| <vWU<YIaKUոɓqS5҈L>|'iÒ'v D/I* ewҢb$kTr.mFJu.T@ça|["
-3E[LָT _4SPQ}%O6&M lWe.` 0zVjmTPY+2
- iRtF$vc$xh%nY7ɆǷc~KLк6Hw},{p_$cZEr /ɓ P6ShT1pɔIS9a|˔{p|2ED6.#/5zmL3eQ) 0MFPus1͔zQҗ[D/bzpOjtE|F? 0R%C Kl"ޔkx+o
-M$k3囡NJ o|4x6b0<b,G4 oՉ;"?'|e't Gk۷K:B^oEwߕ8}Ӵ <~U?@4yui.૘ \}C(y{n cZ?|2)S9s,XзcٹwHlO6R&]J;"'aJ;"K<*\2`|cG˓$> OB$> OB$> OB$> y !Q\h򂥀oқ L<~^#)šL=n{.) KmƠ ^ˊjPI4ұr 6c]A$b#sH1^DF7|VaH5+Ye.0`⣵&|w}b&VuN&h8ACfs<9" } 0dlD3~ RyFÞпqRKU/gbe{A
-VR LLFIJOH7 $A,M k!J)GLFʕA(S*
-Z
-D!TC*J5H`"+^^ hY~e:>YkdHY1XVr :.h5t:M=mv
-D!^%JM"26"y3ՎVP@Fx4vK yu s Ti^ |emY,ggSPLcA\&/st_\VZW6Fo0~4&4pS47bH1*-6sss+TM :jc\0e?USWsυP<3 E4?R
-*Ubd[
-$4%A+8ux}$!Rs$ă^ e33饐BLW"Va[1$vDeu UFox7L`dh`
-/5@d˃.[@U7'%oZA|Ϩ3t%QU6dBԬ@73
-UF+E E
-( V#b2SH(3ӘDDjXvZw0!G1D7+)xE=WUxm1j^0ӆ hx2ŦS!&WMPzBl_Zڑ ԝG>cHmH9!a37b›75UUM4y8fyQǨd KpI{,D=  xԉt9ځ@ >զ+ת*A"70w|EUy|QcQc*=FI*رK @S$0 XK"Tdvdte-BOh06(wUGތYA,r3vV[ d!CqB4%BuP
-5pxxgf$h496a ؊{ ?m<;wA!y>;* 6h嶌,0`X[o*4kpnJS4v|zsmX4@ 2Ћ$5F2 9L%V5<#Ruv9okW ZUjI^gef60GQw(:Y'3]I/5<_DvEbb+qq報.SԈVT%WV
->3AUEo3FdnkhʔH/7\]ģNaX>0r$?>
-K.⤊j,Ƥ
-'"Z42ȇv36_?f,螤-^<I\3sql1
-
-cEPk"9W;Ŏ쾆ű9b~hv _ğ]7M;֟.Mc]K=k"*2a.J o=;X#C6yr&![/~."D - %z0>d3t3O/A1>DGKB6R^
-{"#b ;"c,&'2>yO1>yO1>yO1>yOoǘh>efR1
-Ҭ ^iRL"/R 4
-@+{~+u#
-YAor3v֒fVdGw^|ˠh#J7KK R\1$f۰2sט[LƬ o\tOLh*:MHs/5
-CCcR6ʎYjeEk0˹܉]aJ6AW }&ϹnD<ƖQca&<:XDNY鹪B'c% ٤=r2㼰Z4BY ʉx_]!aXեȰhYSDAAZ
-b(L̄őr&`
-X1^y(5ltl]R?AtA\Pu,BL!'ԉqD@(7hԦ6cZ;41CdwD Z4B壌yoRӮ>"VVH $hkD;ʐhGը@p7SA;*1hNJԸi5 x+mDPpǐWAQ\U7a2xǘu/]-;jۃLM(& {P1H|g9iHPNh/
-{D{m|\TsJ\a.7g?U(
-aʪ$^0'0 2 Ӏ`s߳|ݸ'5D9E4h-Fn|lVr
-נ}eU:A\l)N`N #bv}PM!zM"
-uGiha\XI,3h +I#'LmǠ  hc;?<v~xoc'I{Ꞵ'I{Ꞵ'I{Ꞵ'I{Ꞵ'I{Ꞵ'I{Ꞵ'yX7FvWyu«[0u6F.:"k-!(ܦYSSHp&|oy 2$͞ < >p)B^ӈD%U" qcB_S9ߘ.əb1)_8n;T>+e*7²>^N# _vaaVjva7_9ۑiW%K(ݴëwcd\ 9StM=T:
-+dyߞ4˻~hBV< 48|?5ܲ~؂qoINXi$ҸZV:"fFL΅~ _TC䱝^lfCa=YPj5{Z;-ѱ\8tNI} ayqm1k~.~S˃|`ʃHx7KU޹<]ײ®M&yw[>+6߂!?"`Rm|_{X&w5= 1BU9f>9CMBtuDƬj^{.̼fOtI2kgZq'\qGlWSGFw?D9U{yONeOM]#m>޾^PvG8]xndQ|ύ\~sxt>DVw;6X57&>sxEu(%xJHNV8(n0W R#Ydѯhp-,W^LbR\yz¥3Y
+818 0 obj
+<< /Filter /FlateDecode /Length 13146 >>
+stream
+x}K$Gޝ3*jf:#`_ffnY#w6MV}en^Ž;?|^~;p/#֗Z/s'+5hBd51\SߪV>ÿ>t= %ȅ?;2#DˍhR<RM
+6,h!?_J»ku=K›D裖wh<RJP m=輠5//ac3O/Z8уp#:J+!b*5 Z_>I8o/ty{ &fP $2}R:RŠյ7yS2ߥOO{[wg&~efZ9zwgŷ\ ffSeDsL>jhguI{3#[f>\Үp˒씥Woq&8CC$Fk^c@Gk"0֫lmDtz zG d_Wa#9ݛ߲s]k<#_t
+
+ǫg>P# bzq>e?gWU!H0ɴ}e0+ -)
+!ǷKЈHtzϺ-~Oӛ跊;iOo}ukpM:)pqZ{Tge:? 33߃%UݯnNO%]\:gzHv>CYvqsV7%jrZ2tBx!)9Ccs~Cb=| J/6-^04<@֗sK MKvL`J5VBY@+xRשuy Vr{)P"U 14K拎kK cɞlo3[Ӻ5)͝u/QYYkI|lBU;,R XGDK}]rp0쓪#HMM2-f8m ?_DFZ
+\/Vpt~JfMDZ-rY-}&8?瘟m~ Nά&I@//}CS8ܣa>\Q|?
+zXu%Cwe8hh%|@[ pX}=WZT:VUΗrİa.tT㋑s^> ?́UL= {jsCK ,pNxV,q~֜_Uy0bZJ=+wԠCU*ߥۥ%.g%۫_hEC=+ A~d?#z6@d[\9Dog&WN$e堧 @Zv~疭gL ;̝s\ɛPn;vdh0?ش<Z\犕ucy?}Ӽ謹WOw|DQXn(z7z~qǴ=td7<bE3  `lR#5 s"k<߽] s)aNm8oz` T#;0/}mG,BHlo,GT# Mu6\SﯞX}'i ~SG
+UEwᯡ>햎1\~=rˈ?^2ֶיm4n&q+e+^WT h?T=ocMw{r:XkרB0Y?R,wV!~
+-EBK*jUj&ZHtJ0pDC_ڝ}z :m.]В  #6- yM F'6٦C/SGlue9E@+"f |E;a/LmmX|𶀔}9'd,iwet_CѨ[P(( v9zJ!
+B_
+%ݗ2@5
+y;3XIAlhX ^]އ?D*x΁PA ;@i
+,Ȓ+6TM {K6*^dl_UAl.T=WE[x{*.Z KЂ[-X`FpC&FxDO7%_fhiRP=&\dJ3 UA%x{dP |9q_Q)~>4#k%I:^ϰ
+
+rmBbuML>ljY]>*4ȶLhIi`yk\^, v-$@f[ j3аn@\*p[+JZ
+xOٹ_(Pk^J.n
+fhUbb{K y}qmITR_ &I%M)K6!_Z-<4Zbf `%'Ԟو:*EE.8@跃QTeZ}:byUY1!\,ʃul) -I1Q7!P
+hPFkW%5 Nԝݳs%+b'4^ޖu57SlF<Ud\3G^\Se&b'kT53V#PuPOl]_ ?_R5;*8VuZGVu`*]ԺuFe<mNJj]NerS*>$(Ƶ ʈjTņ-Yx$ *gqy'%ˊJ@9Y&+Bcρ׮B3Su]D07.T]#9R 4rYFZs&8YAއ T)ZIY0Ѩnp
+m32eПQ-CjIpHiQi0k8æj'5c7@ Vjp8Z ׂs5»oŚwh$cz#-쥦9Aއ+U$C7C Qϱ q5!p$6Gl
+ Hglnxef saF~70Ë!!aB""<rfhƌRRdX GS.];9mu{C.5 P^Wǁv3LsEBbN4B+/F<̔ϴ+38VwcDH˶N(tCD WX帛CgFI^h^uhͽbKs֪@aNM (5YGDr'4""m.e@ܠY#ceݞp 2LrɉqDAJL֨@]vNMdD90y@sVXBôV?2 F0f yZ<᪺ \NBŨ/],;jۃPL/ڽP1^kHY^i (e'; 1{D{m\\T-1*X*ib%KVITz>0G8?wʌɧGa'1--FEkd4F<b\06nZ*\Y3HfqY0o I$ױ}PM!zѾ(biqGiha XՈAzFNBA˖ h㗱=N` 'IRF1"5/D
+)AzlH!)_h[$0%YYCӥ܄yCsa\A:
+F")00k%8o< LU b
+XB4CT+A2|22 kك5V1J* AcE
+iW ޱdUPPm{hB,ݺЯ @2n&\+ZrC;8f56ql-QtFfjfg8mVwg,& A_F%x4:kƹK<*qz\J>Zm2ə3ibvtOf%Yu,
+raWo_G9[F Ňq}f/u(:Qu3jkӣ C՝╡ $0zZnqlw/ Lf&LudFrC)Edr(
+0T)^`L"uT 4o
+@I}
+q LT4iwɍ74KXL2^ :
+UP;ܰ aNw7^Em yɓLָT _<7EPQNFd<Is<Q]U!7$'|kK>i Q))*CٺcR-tKD,і=}O6)lRrZ$IaKUոM95w\dcҔtJwk`0ՆX)-SCeIT*4I؍]$@=fk8&ݡ-Xb؄֥Acٓ"*;`;`&O
+kdr&@LSPQ}%S6&M ns4-,&e
+cۥFږwy4S
+B 6x$fo ?s+G<%؝8zXDIqV_6*xSjM3^_C~0>pG.z`hd[+]WNmnW[ەvEvE>vko
+9*ҏT![*d|\44=]T'zߟI|Ww~{owA6wA3N~e$|x xEČؑ53"bGWyB[ I$~? O'A I$~? O'Ay
+!R\hrRtS^#")[Õ~kR`ؓ[ z=EQ4u0Zz+/:` >ENdxó  HY!.ZbK :S_|w9ѧ)fBaU(4ACK2 Y^Y#C6"TI^+/(R`:4<wEܬlO 6~YAvjۢTʑ ʈ@OtBdq-i VI !v-D6h,ӭ2EQve~]IrdTIufg!wIuPW/'Zs4d|5J@@(V!e'dZFծ@\TA;ū#SIDF$sRhl\n/븰I4\e}x3`fӢA
+(-Ze4 F"t!Q^`h c\TB_WFFo0>eSZ)1ֹ¹qUU4BLhOszJUjNwpkwlv'!!qHlE"*Q12ͥH@!*Kr>,
+J`TOI6W2{
+ 7n" } zEGR%lBbU>z h$l-ѰMG;3SC¨(|yPB ;̀8HJxO 81dhXB=4z:h{[(EaHL<J;w wyէNkJⶠGYU].;Qnh8avڒaSzi*5pǖ4<i\f
+U2c4jp
+% ra^{#ȞZUl!oQGx Ϩ3t%1fmDфDԬ@73
+UF+BfP"G
+B- V#b 2 &\iQdTLcU{U60l`Bb0npg7hXR{Uկ2
+c;G1*^1ӆ \hx2ŦS)&[M0L_ZڑԝG~cHmHA!߸U \P@T*&y8fyQǨw%vx=D=ތf ù+ -u"ff 0H)'QpiJZU%Xfh‹xqcQ'TL#U{U㐲FJ@ "Q>Bk $)B̎ . E)mf"rlUG^ތYA,r3vVBqO^
+)qa!.@Z "F_p!ZAC 4rىX]SuzЭYFއ;#5#UP%1F
+1Ka쨪 &tqj30eV`ð6<כv87g QYff;d<0qc
+¸:a ɓ(]ry5-'UTcQ%O6&MH/;:/.Ag0DxcGq\(L)G@6b5Э\)+aL ƦK+Ѩ=pa]MJ`liiU{nHG߰POƔ8.]ޅӢk4NHl 3[Ѝu5-\TQ<=XS|6
+K +}
+qmӈ_/$֛G Oo7 \\ញgڨ )K4BgdRRh6[hWL C21yFCTcM+dɧѨOLL8WOKUzqݴh<Gn3!zgJO'AI$h~4? O'AI$h~4? O'AI$h~4? ~ Ϥʊ4xuN'^c4XfB<0Ȕ>\{& yCbXEZo3~@K/VŬG
+Mihwԩ*7t߰䇵M Le K~wb1Ek&-R@[)-"H#vUCmT%a.Cq폡p"қE#3 _xlc٦Ҍ#cݝ4Kxaxt_o{n pvs[iM⾭5ݦ154Kc.Gc,wͿ]ߥC { qЊK8h"rКƸ4kho
+9<l]B,HEBUH#-ߗh Bc@D>iOy |]_ HcAc //@_1kf |X_Ac8@c ,O'Ib$1~?I$O'Ib$1~?I$^0̬0qP?Fa|+ȨWZ%T+3﹤$ .r6 B7PʞuU1+ TnNZ?,Ԋȸӎ'{Y(kMnqR| &JK R\1$fUXFOJչ#1+ M묢d'F{9@YI2ޚ,rX iz@ ht CCcR6ʎYjԳq5r'4wuRT`qpUóLCwؒ7j 21SDGv1J9kȑᔕ-D=+hH%푐煊բ"/JPND
+<Z븈U<.EM.7@i͚"l
+ħh3+Sʆ=0o&`
+6c)FTبYlhA $L1+8ce{[t34gEܦHQ 3 |J#(q
+
+
+].;uu0}ZB
+Ĵwsr(5Tl]BW?rAD0(G>5
+U2c"mNJ 8i5 q-4Lkp+iDPpƐWA0e+4.NB˲*(Q=XbjB1YGCqƈ{x}gYiȇPNv4 [56^/,F6W8UbZ,W}X O41SzKY
+ZЏ*3n0'K]Q#Tڢx\Z2!c\06nZ*\ʪtfRN`N bvr &]iqGiha\(F,3h }ᤑPsІ}n4cϯ=:cϯ=:ձ'Sɩ}r>9uON'Sɩ}r>9uON'Sɩ}r>9uON'T
+
+-Ԭ1R'?hi<*Yo\[ݕO҆zޞ |>"}km'MKj+CK_GHuoj\ӛmlY{9uI}6ޚ~۞NuKt~vڈOd armZկrJ
+6ӃJkuV5Ee0lΎx^/H[$h?w7a
endstream
endobj
-821 0 obj
-<< /Type /Page /Contents 822 0 R /Resources 820 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 824 0 R >>
+817 0 obj
+<< /Type /Page /Contents 818 0 R /Resources 816 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 787 0 R /Annots 820 0 R >>
endobj
-824 0 obj
-[ 817 0 R ]
+820 0 obj
+[ 815 0 R ]
endobj
-817 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 253.045 239.124 265.001 251.079 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+815 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 253.045 100.634 265.001 112.589 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-823 0 obj
-<< /D [ 821 0 R /XYZ 78.37 808.885 null ] >>
+819 0 obj
+<< /D [ 817 0 R /XYZ 78.37 808.885 null ] >>
endobj
293 0 obj
-<< /D [ 821 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 817 0 R /XYZ 79.37 627.392 null ] >>
endobj
297 0 obj
-<< /D [ 821 0 R /XYZ 79.37 695.22 null ] >>
+<< /D [ 817 0 R /XYZ 79.37 550.977 null ] >>
endobj
301 0 obj
-<< /D [ 821 0 R /XYZ 79.37 288.23 null ] >>
+<< /D [ 817 0 R /XYZ 79.37 149.74 null ] >>
endobj
-820 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F55 387 0 R /F58 390 0 R /F56 388 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+816 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F68 406 0 R /F55 387 0 R /F58 390 0 R /F19 383 0 R /F16 386 0 R /F25 379 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-831 0 obj
-<< /Filter /FlateDecode /Length 4340 >>
-stream
-x\Ic ׯ(j
-
-$Lu?L}IZ)ŔS/J9fX
-͌#Zs]9?;@ /><p&PۡP `(ϴtâ˨POճ 9BI(&){>9 e6blA}ϊdpO'-} NCپf$NpxKL0a)N(K(b\% TZ\pPW>Sd]ȟ*~ߞ%=j7@a,Au+jދjV9%ɡ<OT?;,91N:@Z=6tVzn,b'[tSe
-sj*16nN' ڗs99:Q*2-TwsGA0k95~g=uWg&C3; PuL YRmǓh,?kM6199;[1Yń2|ZRk&IQ+^"}34EiSo$I!<I+vMr+`RA▆Dڑ63UuGs x˱L%u5_bԊ:eUшA|};#YH6U˘g3a !Rwtm GBIYt*$'v 1’nZ`7Mғ1D&rWPi$56-T|ɁǏ|*-S\Q.({?CZ!͚90O|t[ih۷#䖔3h Z ֮][rN;>39K\+5/=ńO8\Ns^Op O#2J#V
-2gib׉0d<>> CGYHp/--qݐRLޭ<V$sRH4H:T:h.v\a8,|c MQELAic#8(mm`p
-y/[O{: bܝ2!ﳼ8C܁z_YIOdݟLm ÀD´jOD(+99~q[sv7X);;:h޷&JE&L澕${Tُ_,'J30Y8}9]gtefa7tzl"]I0#)-'Vʸ'<I30:eٖ%ۜ,t02VYwo
-+˖b<?ֱf{+Hxt@$CӕJZ韄>WjdѪ69?[ u!jj٨TY֛ցp u5Fd ֪"q4jE#moa Lc>DS#iGo|
-rV^ .mH>`UT_нMK_,*|ېiHXj6 KU)
-QY^! FN\"lC^$oS83/N+5-'7ʅ'E(Y"Gu-Җ/f+)ULWOꝵ?HZ(r0h~lG>|>:R#Y"&,ZfSg4H@wꢋr+oǢnoGof>)W޴ʺo_
-u[Mkzyy p!}Z428dᖁv˚ٽ_ 5Ng g T# WǺ.(ˑ)rn=6~SwEs2(U"5Ԩ%1QΗtB_qrbqS:Z;9'BXBǥu}Zziẍ́$דjj\\{:LF^.@E[z TȈVy浾mz
-jm@<^ݛ80:R 9pN>cY4Q{>J7Av^d@(Ŏߊ"E
+826 0 obj
+<< /Filter /FlateDecode /Length 4312 >>
+stream
+xڵ\Iod hj ]o9%H.CNJ^=5Ui!)HQ/~/|o7e_N;x/
+_0;%S/?xUJCJt^Fg?;)}5 z7_.8`}R_j uvMؓԓFp'Qh:jK:kķqf[$:^9t^9Ҹ7af"qy?P
+k]V֤qU9lt2)R0|
+W7qoYZo7vM|kν,`Q
+䉿9T&ai/ XA4>v{ip0Դ|hE맴k4 JHH3o"<ښm6j\ߴe lu߸Ō'eN[(ifRM.9N
+c6u8ѣDV96 sgoΉ Vdi.:{NkDHTm<fjD2=i = VrmCf/Y7hcwkeNwb&: 6Gq&3cqEZ
+z|4,jb5@5ѡ_zUzl0k_Z~dDS3~
+gLgnu/xB{CF^}x*<J<^Az"p~э3h GݳsUM9|n6 Ɩd)˷vVcl,<r$^Z-͵@9!_ I9i<Q{)ceX=D+Pݣ!Zm3,25X/g;q#hfS[y׭(
+oaLOQ;\$DdS=dJ6"K?{?:;j / R8uh2s,S[kJ84N:JlқXiX6ɼ3M$+w0KR)%HQJ1Ț0SHbf+}-|`y'e=zQ,N*ڲ" WÔCnphseYp/tJdw{%N8Dd۞ڦrFnyݏ{pk EuH>*ରvR$&~Q
+0vk֡%Ag.gh;oe,n2>,TEHyl\ѯ3-31`i{2/sg5ˏ}Z{Yɽa"нŏQjWDZti|+%f:?i4hEz2*)OY5 `z(OJH7'ֳLA\ mNaPi0:g掂"n9鈗sEkaJAZ;-94E`H1PW.(mGkGH٩yfXIUe;[U".\=XpU
+< S:%+h1ȡ[<$:ӎ%Gb:VqO
+5®Enz{Z):o2LncVf5 }7E:X&x XxZ0|QwB$Pz0PLg zYr"d<bq7K AhtƜ&_9\)(Mi,+Ώ;B˕¥
+GRQLH4Xelֲ:=oK kgF] Ҷ{cry>{TӉtq I6葿펏gHK{hZ yl y;ư'"x sF`^\&Y9k6r>yZdQX3>pu3{nnu;D/m&fzLdU~ʷ~Tf5P i{N=r݈Y*pfөU憟lTKI፽m';
+`fqv'B)5,؆[8pv},EcO=B׀ᇆe՞e2xu{ﺲMsN1='2hmʐH&C9 ϡe:ޏz{Σ,PƊh<Y%J=B9_gm Ĺ۸{ >pN<U*n:>QpҡO͌Q!s͓tK!:wfxj>rgur(
+No]C,:u1]j+s`!y6+}i M-53Q[G^vtr-N{w*z#JGͣRe}JO(˛U|}nM!YYҊZvXm~s
+}X8H8y#a1WZx|=LMg\lc.Y}*?~~,d/?71/ :|߿_/0 |>S
+ /q@~iW; ZUmEpzc(Cq1w(1 1S
+4腅!°f8<hntʅ^_dKn^]6wz) %yl>qWvRei jm`
+t*ATm]ݶMNudu蹎(鴎`1U1]=9E
+ 0K̈y`D"^[7qV+r1➈{}
+F?V`9H
+e`.-`VU`9̔sr%f9\K:Hsk ]\Lmm)a- _YVj@ܪ"eP6S;J{I(Y&jZt[K '^̨~RI!{3lLg7wX°"^6ձ
+iL4>TtJeFYй;05& ~<gh
+ao4Gk}M9\~_FaAe mkjzm|zChsZ0h՞m 7`RȔA`;^'!N'՟)?
+^ 3D⧃cO7qDVE5eލ!!pz\ae%&*sT0ZFk,YT^OKAm.dÊ9 s[~Ila!21 ;]U`rݶNrxTrpKm$+4mXA޶[f,sL޵ipM;^K,94Vރ c'{kRcȧ]-J 7z |oCgSv> 󽦑ݘ$*{*C?C` 4.yނ΄R$kbNw{Ћ
endstream
endobj
-830 0 obj
-<< /Type /Page /Contents 831 0 R /Resources 829 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 834 0 R >>
+825 0 obj
+<< /Type /Page /Contents 826 0 R /Resources 824 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 787 0 R /Annots 829 0 R >>
endobj
-834 0 obj
-[ 818 0 R 819 0 R 825 0 R ]
+829 0 obj
+[ 821 0 R 822 0 R 823 0 R ]
endobj
-818 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.119 148.817 393.576 160.503 ]/A << /S /GoTo /D (subsection.8.3) >> >>
+821 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.119 135.089 393.576 146.775 ]/A << /S /GoTo /D (subsection.8.3) >> >>
endobj
-819 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 117.643 139.124 128.099 150.81 ]/A << /S /GoTo /D (subsection.8.2) >> >>
+822 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 117.643 125.396 128.099 137.081 ]/A << /S /GoTo /D (subsection.8.2) >> >>
endobj
-825 0 obj
-<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 107.768 81.652 471.982 93.337 ]
+823 0 obj
+<< /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [ 107.768 67.923 471.982 79.609 ]
/Subtype/Link/A<</Type/Action/S/URI/URI(https://tex.stackexchange.com/questions/528975/error-loading-tikz-in-ieeeaccess-class)>>
>>
endobj
-832 0 obj
-<< /D [ 830 0 R /XYZ 78.37 808.885 null ] >>
+827 0 obj
+<< /D [ 825 0 R /XYZ 78.37 808.885 null ] >>
endobj
305 0 obj
-<< /D [ 830 0 R /XYZ 79.37 590.246 null ] >>
+<< /D [ 825 0 R /XYZ 79.37 450.769 null ] >>
endobj
309 0 obj
-<< /D [ 830 0 R /XYZ 79.37 428.398 null ] >>
+<< /D [ 825 0 R /XYZ 79.37 288.921 null ] >>
endobj
-829 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F69 406 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R /F71 419 0 R /F92 833 0 R >> /ProcSet [ /PDF /Text ] >>
+824 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F58 390 0 R /F55 387 0 R /F68 406 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R /F50 396 0 R /F70 419 0 R /F92 828 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-835 0 obj
+833 0 obj
<< /Type /Pattern /PatternType 1 /PaintType 2 /TilingType 1 /BBox [-0.99628 -0.99628 3.9851 3.9851] /XStep 2.98883 /YStep 2.98883 /Matrix [1.0 0.0 0.0 1.0 0.0 0.0] /Resources <</Pattern<<>>>> /Filter /FlateDecode /Length 45 >>
stream
x+T030U(2 8LXX) @`@
endstream
endobj
-836 0 obj
+834 0 obj
<< /Type /Pattern /PatternType 1 /PaintType 2 /TilingType 1 /BBox [-0.99628 -0.99628 3.9851 3.9851] /XStep 2.98883 /YStep 2.98883 /Matrix [1.0 0.0 0.0 1.0 0.0 0.0] /Resources <</Pattern<<>>>> /Filter /FlateDecode /Length 53 >>
stream
x+T030U(2 ,-,,r ,,Lt–fF
@@ -3622,170 +3617,168 @@ x+T030U(2 ,-,,r ,,Lt–fF
endstream
endobj
-837 0 obj
-<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 100 100 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 838 0 R /Filter /FlateDecode /Length 15 >>
+835 0 obj
+<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 100 100 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 836 0 R /Filter /FlateDecode /Length 15 >>
stream
xP(
endstream
endobj
-838 0 obj
+836 0 obj
<< /Shading << /Sh << /ShadingType 3 /ColorSpace /DeviceRGB /Domain [0.0 50.00064] /Coords [50.00064 50.00064 0.0 50.00064 50.00064 50.00064] /Function << /FunctionType 3 /Domain [0.0 50.00064] /Functions [ << /FunctionType 2 /Domain [0.0 50.00064] /C0 [1 1 1] /C1 [1 0.5 0.5] /N 1 >> << /FunctionType 2 /Domain [0.0 50.00064] /C0 [1 0.5 0.5] /C1 [1 0.5 0.5] /N 1 >> ] /Bounds [ 25.00032] /Encode [0 1 0 1] >> /Extend [true false] >> >> /ProcSet [ /PDF ] >>
endobj
-839 0 obj
+837 0 obj
<< /Type /Pattern /PatternType 1 /PaintType 2 /TilingType 1 /BBox [0.0 0.0 8.50403 8.50403] /XStep 8.50403 /YStep 8.50403 /Matrix [1.0 0.0 0.0 1.0 0.0 0.0] /Resources <</Pattern<<>>>> /Filter /FlateDecode /Length 79 >>
stream
x=0W Y".RRҿ^( U b1H<ܪY`2rir:"B,Yr߻qB
endstream
endobj
-840 0 obj
-<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 100 100 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 841 0 R /Filter /FlateDecode /Length 15 >>
+838 0 obj
+<< /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 100 100 ] /Matrix [ 1 0 0 1 0 0 ] /Resources 839 0 R /Filter /FlateDecode /Length 15 >>
stream
xP(
endstream
endobj
-841 0 obj
+839 0 obj
<< /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 100.00128] /Coords [0 0.0 0 100.00128] /Function << /FunctionType 3 /Domain [0.0 100.00128] /Functions [ << /FunctionType 2 /Domain [0.0 100.00128] /C0 [1 1 1] /C1 [1 1 1] /N 1 >> << /FunctionType 2 /Domain [0.0 100.00128] /C0 [1 1 1] /C1 [0.75 0.75 1] /N 1 >> << /FunctionType 2 /Domain [0.0 100.00128] /C0 [0.75 0.75 1] /C1 [0.5 0.5 1] /N 1 >> << /FunctionType 2 /Domain [0.0 100.00128] /C0 [0.5 0.5 1] /C1 [0.5 0.5 1] /N 1 >> ] /Bounds [ 25.00032 50.00064 75.00096] /Encode [0 1 0 1 0 1 0 1] >> /Extend [false false] >> >> /ProcSet [ /PDF ] >>
endobj
-846 0 obj
-<< /Filter /FlateDecode /Length 4886 >>
-stream
-x]KWh ,x 8'r0|H6DXvTM6gAF;&dbU1闉߿ ?z\W ^ЉMa&MP*T;nR/wR$yȃyJٻ&LTxC<]|ғŧ*SP并Pmtixj;o(뒗҇7:RN,=a~hq4R6RPzJ*P )NlԾ2q|9fnu|/\wFnYC ==a8N.IAL?jNr
-k]ւܺEXo /Ȃ7YW ;DX+wE${;
-Upd LP7Y40x\jU񀞥`WaQֺ+,zL~̒@`E<kRI qf,.F.xZF(}P(BH(=F(oeѡ=L
-L/Wmu,aZT= B;< .IlY-ӄ 4E7J&96nGW"׾t|$s(ѵ=~*)9gkCU㐂l@[LCKK2JV3֒ oPgK"F)5Mˈu}!'3VSy?Os]4gq3(279 ''X @OIzH9Ƣi j)'aœ# aҶJ8%mX_jP8h61әQs{f{$
-ekN>Ǚki$86 }!˱}ĹE^dDF KGs~.˚r nmoVM%M,F]~ Jv֭@uZ;iF-B X*yB:K '"^Iּx>{ \E76y[Ί' T+YT= K=}xB#IJlf \O-RtQ>va.P sb?׆c({ r(jzz~]sF\2RHK]hpb91& 4%L|8`~{
-Ёe UC*el#N)`%ʀlے()|5o})0VUO9J2GT zBK(ۀa!|wJˆ 툓72pS,2{I33\юmS`V{9`I25I8h
-%%͌(S:͔͖:.EdR~iFb<-#_CqU*V."L,5(y
-mJĒJ޴0H5/MJĘgэԍ.vX.^TOvu!69~ߝo-Fj}#%?~R :=>2A'X&7m$'JEFi1Kf`R}CnN4 1sKW[1`kiOūש¼͗RC+9|qTLP$JKghqVHV(aq,s=L%k
-i\jvH*)­J }vJǪ)3}kdIBiVhWI \J͍ܤNJrϗ<~
-D[?$zNWenqnJ'ƺ.8>JE\}re5\r0˔,
-faERR;Mqa Bo&p\ `^V}}[QA˨zX)HW@˭$zX4h
-f?/ՖkN:yT{+)y쎁.Ef}/Qߍh,-);5cO%|)Lh!4ZS\n .w3{3FI;P`Qn#p]nBĴgݨq92GS6:6Zf35D$b9g $W`aٰoB{54,<
-S5%'بZڨ[DZĊ<tQR1,3:ܞcXcX&+-9p
-Vߒ ]}(aKΐJG}mgΐZPKJM^)ؑ/Ԡay "t-*wz\?vjA)
-D&ұi:
-8Wj751*?b
-]U"
-F ZkvUm擐=^LɍʨUDWUXp
-h0#x?1{Nj|qp{DUtz䎌xB~|0轕"eJʾ`Jo1'-)U=Y'8t|P>!_>.XuS>C{hh[e}Չe1G YG\cϊ&H;~v],ۂ-/<TMǤ1_Zُ%O8čN]ː=^x%orgKdsonPg8e?k
-]9QkT}@YAËQw_Xo7LOSJVb.LX{:>lf ^\S_6*}@D
-Hǫv*ӯln#+@N\Wt9L\ua]7"j.aM,X V;`Oa)^ )eȥ0Eִtc,]/ LWƫnH H(Y,3/{q;o-PQ(Jߴ?Qf>yF'cq=jckμ_ic
+844 0 obj
+<< /Filter /FlateDecode /Length 4231 >>
+stream
+x\Yo7~ׯ?04D(@Ɉ}"1V6,UiI?X3lX,~Mׅ.(ws݃ҋ#Ns-0DGYfj||Z~KpJ~ Qi)W 7ϵAp`?XدЗ~ /C*~Os*20_R>H
+CzQ o"f\hόKǜ׻6D<Ӽ; co$<| rahϵVG8W繓L|,)QG(-$jޅQ* %Rq$,w7{JJ 0ւrhe>Ev?e%շYgDj #5l1~ޔ 2C>=ofWE0
+~ w'1/kg\56qfJ;NhUC`ӳe+{ )3hjg( xE%*=kʀCo|Fw6(cG#7Rak0^ď+b]2 -߽
+G.mBGW$=(TnCeP|}rfJJTsP ?Lw%zH9qYF*jhy9` XOI*$ReT 5ەf)xfb(Gz|I-oL9~.g|r=AȮ _,Jciu
+WpǏN@+ w㬝$87hcèdrLvEV O>63[ 򲾜cF_ Nkrqtf` jQA4u=uo0%K&0~3wfGR٬ >tO[/ R;;$p6H{u[7G|SJH;,-/9by;zha{|[0{}K
+eck#!k t%@.'Q6|*(ڼ eDCdEHp\صn&9B)i2s`% dw%Ey.Ƿ%M|DL4=mN[&RUFˏrM
+fo-w-g Un`+6*Qb74Ȳq-df/p%`ֵ#_{e@ˢGY
+)wPq/P#j>;4XZkWi
+*' l;
+XMԊAk66o.*hY5I.ME)q_
+?2 Q\R U[yq&^p]mĩI3*`{QIki~*蠊܃fyƦu8,2) K4/jňP<@ʶPzAgx@ GRӿB8J{dί#`jzPnxYОY_GA mY"0mQA x Ľ^+k#L.>VR] 쬨2"Fo .ڢfyޏ4!OãVg0WNkTӟIRƫ RAxL #cFdRvcq~Us v;bR[%q"NR^WO}!6E~oAh=pnDˏ`O0A 5_q_ۏ]`B/O7_eQ˟FqtBa/Db?>l\PךpjhvSl]5nsƈ[J+ɧUkxR_C)8'@ዣb1} .e⬐QRf0@A,S(PkCR+VXX6=%~?V|X&RFBhDfvUXRifsSU:#e?U܀$ſ9_&2 w
+?*"IG*eEj&u/(U"2N~axijW ueB$SmZ܂bV=r-V3DT޻<8GitfLDQ[a̯Ye^ >k鳯53e%73{e}B+9.d^%%5vuYWHev>S}R<cڶD77D1v\ǡN|+ƽ[^ɁG@"J^tJOIH\$\P pͱ_/Yk
+۰d| <:&pV%nVqRNeV.zZ'H; WHa"1{,xOI UhǗғi  eN8HE8Ho[P9uN6RuKK)pD7_jl.);deS;8yi$j h 
+Wp>j[]_::/uOPO|dR3lyCPxeT7ͤp
+"ʭXi(Ы9^,n%JVڥiF~3 U#/s1ɰpRߟ7ΧU:4^v%IBS<2]AjnI{]\㒈|պS͝&}s>&
endstream
endobj
-845 0 obj
-<< /Type /Page /Contents 846 0 R /Resources 844 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 848 0 R >>
+843 0 obj
+<< /Type /Page /Contents 844 0 R /Resources 842 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 787 0 R /Annots 846 0 R >>
endobj
-848 0 obj
-[ 826 0 R 827 0 R 828 0 R 842 0 R 843 0 R ]
+846 0 obj
+[ 830 0 R 831 0 R 832 0 R 840 0 R 841 0 R ]
endobj
-826 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 245.069 725.053 257.024 737.008 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
+830 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 245.069 599.012 257.024 610.967 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-827 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.772 668.622 165.248 680.577 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
+831 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.772 539.729 165.248 551.684 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
-828 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 180.969 668.622 192.924 680.577 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
+832 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 180.969 539.729 192.924 551.684 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
-842 0 obj
+840 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 442.409 67.03 448.634 78.65 ]/A << /S /GoTo /D (section.5) >> >>
endobj
-843 0 obj
+841 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 459.337 67.03 469.794 78.65 ]/A << /S /GoTo /D (section.5) >> >>
endobj
-847 0 obj
-<< /D [ 845 0 R /XYZ 78.37 808.885 null ] >>
+845 0 obj
+<< /D [ 843 0 R /XYZ 78.37 808.885 null ] >>
endobj
313 0 obj
-<< /D [ 845 0 R /XYZ 79.37 621.864 null ] >>
+<< /D [ 843 0 R /XYZ 79.37 489.504 null ] >>
endobj
317 0 obj
-<< /D [ 845 0 R /XYZ 79.37 582.578 null ] >>
+<< /D [ 843 0 R /XYZ 79.37 450.218 null ] >>
endobj
-844 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F56 388 0 R /F69 406 0 R /F58 390 0 R /F54 378 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F67 393 0 R /F59 397 0 R >> /XObject << /Fm1 837 0 R /Fm2 840 0 R >> /ProcSet [ /PDF /Text ] >>
+842 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F55 387 0 R /F57 389 0 R /F68 406 0 R /F58 390 0 R /F54 378 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R /F66 393 0 R /F59 397 0 R >> /XObject << /Fm1 835 0 R /Fm2 838 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-853 0 obj
-<< /Filter /FlateDecode /Length 3012 >>
+851 0 obj
+<< /Filter /FlateDecode /Length 3259 >>
stream
-xڵ[͎ S ,=-pb:}(T]*"?%qy˻;9|_>ܽzvqQJDk_>|SF.jQ_SB:| Rw]StJYH=x- ~\gn'} IlHIzVv":Dz#U$@f) Q
-jz#Jb,V&{gYɪ`VM I,<) "AmQӐ7U'?'l> gF7Ӧt!Wfbv+)QR厔[S{ᡙ[z+FxobWA?aȇ 6«=yRx0mp8!Ce\LNRF5$v^flU߲ۦ-sjdӄs:C-(WmLȗ$$ilaIR</Gm2lv3UrjRf"`f> 0lRfpd
-M>M#dCwRZ kGrRxg!l ]nפČð,oas v>uF8eǾC|F4<)}!s0Hgo~fB+twN ΈElG,RoѐgNBAgOʼR(|Gp,[M72Ţ}Y +
-@$ƾGpacǻCi'|4GPnjc7'}m"xb0A~ .a7ؒ]<=jl/ÀP]Lj+k^PvW<6m8L6p
-+.MqMD7Ce
-+l26bRORxaҴǩGޢhr^ْ1ULKɼmGI#M#a[uK([)s
-H5E 7Pu AOȄI =3wE/w ClS(69\70fa`1iFY!饔SfݔNAnB^ӕ}GAA9=@€)+'SŌdkENՌ3{ x܃ 0G^|~qf½* cO=)K zoھ? Ns#6w:֠Bt:3uG~_E: pNm#Qǽ/1}iw <|CodPRh22%g\<UBj
-FYg4|Wj(]ҚsUn 行_m 23gɚ:=re$BH%WBu7֮Mx6kfE۩P2.xR ?\ rl$·%Jr]zv\wY_`@ĭ-]j-{jrDHRj."mlgpؒS/fAkJhh@pO=L_IlЮ>)ޕ@€+b&Lیz>p;y$0{y5`PLW
-qt'Ėg I
-}c.nO20 ɐJ
-z)5|$mԮRs6v߲C5xʤ Ww<gt`NYU/([)d* PW\`2#'F-h_gp0C?
+xڵ]oݿb$0qk}M
+49\sKJFulvGCR$EJHKa/?IE㧻>}S$5(SB:5|6z/%h)5QJ ~߻ z˜|!1R=Gn;) PxyxаDK{lI43.y,7L4<7,%9,~guYG`v"7r{
+oIA+TĿ!9Gd|0͗4,qڠ`k˯~xc
+OcsStK C6
+
+
+TsG0XGBE=96j@ |){x}`eb<d>\xHځy\V`Poâ\md2|}S] V#ɼHI<tq4BEemW'Fk-bc.0"pmN77<p: HW7z9@0[- 0WzgF=:S,se4b,y$T:uҵ{#F6-i{4鸥xe(iȹr)6Mt2?-raX!õf+tL/z;u҈tZgEwR CwjMXLGgf1UԢÞҾ7עDs3ͻubpd%_`Pƽ]N0Ms 楢tyciyC8[P+/ogȤ{1~m&o;e֣s緟4ӐM;bO7uʃN]G^-Rt_2/?B2޳nib#QCH
endstream
endobj
+850 0 obj
+<< /Type /Page /Contents 851 0 R /Resources 849 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 787 0 R >>
+endobj
852 0 obj
-<< /Type /Page /Contents 853 0 R /Resources 851 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R /Annots 855 0 R >>
+<< /D [ 850 0 R /XYZ 78.37 808.885 null ] >>
endobj
-855 0 obj
-[ 849 0 R 850 0 R ]
+321 0 obj
+<< /D [ 850 0 R /XYZ 79.37 592.847 null ] >>
endobj
849 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 111.629 188.779 123.584 199.449 ]/A << /S /GoTo /D (section.13) >> >>
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F68 406 0 R /F55 387 0 R /F65 392 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-850 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.536 188.779 148.491 199.449 ]/A << /S /GoTo /D (section.13) >> >>
+855 0 obj
+<< /Filter /FlateDecode /Length 3683 >>
+stream
+xڽ\;$WthC
+@
+NgGMsߚae:vߩ +HOV^IF) <(ؗr՘*+էVMw}"҃(IόUU
+
+W*pg2 ]Ln FH][[)̄qjw$;ewԏ|j^n-öAAJWƦ
+*&GAfx -^vyJ3C  ur{tl똑ӡ UuòeNKdy"wj1&9f@xBVg hfy6c@* 5 6I*&x͔qQz])v, 1l7,N\H^*뢵_z4'"`,JR1>DqdEwl
+y:784qm#G^W8O!uAoCl
+Q4La<ʦEIučh} 9A)7#"?gs&X&L.Vn٪T$v'/0Ҏ$ն7$xOp"Od*YLH 1Fh]a?Ky.m+ gB
+ S7X8N:DJUCaLYnA A
+leSInD8-5o$&%g=\4B2Xvggvde0﷦kImҩni%~6V3k^y* O#USb,Zboe֦r۟}6%]Ҭ\x]b3Z@Czd{\oT*Lѡ۵XKX&`zN%Xa;FGQ8cbv{n6[ZҘ8GGJXlƓ
+i%}/'EKr\lS
+Q)Ibb)˙%P΃pDMqZ֔6n$+q6>VsҀ>JBG {kgr yFDs R4*$ oS?T r\̌GP'(hU𽶠:*f-
+}$<h]MQ
+ 62(}$_mΠZGu7;4
+3tq<<}M1<j8dsk.bb2)|RDZ~F:YJF |PW?o$6tPZBW[ł, Z(|{@UI6+$Y=D&zŬhİ 'AHqϮ/_g+:ўQW_?|g퓚|#_?\2_Zl=ocoV}ldT
+@]!mTdaؽ]H6-Nw07~\mJҵYSY惟&b89$9G[-T+7RHקؿ`!p)!):/+[Stems_!N 'Lr 澗c:9cUQǾycP&]z^jמ27˜zP: Ϭk>emhQ
+<>EXשS X;fE%#Op*p0AE(
+
+endstream
endobj
854 0 obj
-<< /D [ 852 0 R /XYZ 78.37 808.885 null ] >>
+<< /Type /Page /Contents 855 0 R /Resources 853 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 787 0 R /Annots 861 0 R >>
endobj
-321 0 obj
-<< /D [ 852 0 R /XYZ 79.37 771.024 null ] >>
+861 0 obj
+[ 847 0 R 848 0 R ]
endobj
-325 0 obj
-<< /D [ 852 0 R /XYZ 79.37 238.154 null ] >>
+847 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 111.629 725.634 123.584 736.304 ]/A << /S /GoTo /D (section.13) >> >>
endobj
-851 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R /F66 392 0 R /F58 390 0 R /F49 394 0 R /F48 395 0 R >> /ProcSet [ /PDF /Text ] >>
+848 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.536 725.634 148.491 736.304 ]/A << /S /GoTo /D (section.13) >> >>
endobj
-858 0 obj
-<< /Filter /FlateDecode /Length 3034 >>
-stream
-xڽ[K$ ϯcrhY0`Ƴm9 7'!
-ƭ|rs9Ws.9<1?x?2u`V>JB?' 2-=#5=xxLใOq\Μ8./ZVauN ~gB"a^^Jȵ%:1aDۿ+3B9wY-eB/j3Q(v#~/ kd7^~63
-H(YUbÊE9g2HPi2k>Pt0u4E RIqS[BemuֿѫDSh
-Pdܢ\7Jۓ;iAl|&~o cw>56*bq lTpFՐid>ş2Sg=|e.X*[K4(G=(, \ږcW([QH
-
-jma>QLL9'e{&'$p;1&qw%)Q`֖?F2cKhҤhaPܯI40M"x(#QSsqI{~:=6 EYODbM,Q0gC/}k''<'>u]&۔fzh
-ܺd&?Y{.2J~+h /Tew`G–s|}%,aZxb~p43 rw5k :J2*:|}G!`ϱ/Ll1YK]xt@S:1<S64'Ǚjrd>-cRP(8ͤiH CQYa SfjE4lx {|!j#wZYH lQj'-AH*@lqG
-R31G[w YԼd_HKHcBQ䷣_?|{F{"4<5b9Oȭ:[RlVYױwPC_3={+ſ: *A:{Yjf5>PY{
-_QL W4Ѷ4ݩKu.ș~R83Rǔť P
-"]e
-endstream
+856 0 obj
+<< /D [ 854 0 R /XYZ 78.37 808.885 null ] >>
+endobj
+325 0 obj
+<< /D [ 854 0 R /XYZ 79.37 771.024 null ] >>
endobj
857 0 obj
-<< /Type /Page /Contents 858 0 R /Resources 856 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 790 0 R >>
+<< /D [ 854 0 R /XYZ 226.44 238.125 null ] >>
+endobj
+858 0 obj
+<< /D [ 854 0 R /XYZ 232.109 226.17 null ] >>
endobj
859 0 obj
-<< /D [ 857 0 R /XYZ 78.37 808.885 null ] >>
+<< /D [ 854 0 R /XYZ 195.137 193.367 null ] >>
endobj
860 0 obj
-<< /D [ 857 0 R /XYZ 226.44 282.578 null ] >>
-endobj
-861 0 obj
-<< /D [ 857 0 R /XYZ 232.109 270.623 null ] >>
-endobj
-862 0 obj
-<< /D [ 857 0 R /XYZ 195.137 237.821 null ] >>
-endobj
-863 0 obj
-<< /D [ 857 0 R /XYZ 195.137 227.649 null ] >>
+<< /D [ 854 0 R /XYZ 195.137 183.195 null ] >>
endobj
-856 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F15 385 0 R /F55 387 0 R /F66 392 0 R /F20 380 0 R >> /ProcSet [ /PDF /Text ] >>
+853 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F55 387 0 R /F58 390 0 R /F56 388 0 R /F65 392 0 R /F20 380 0 R /F49 394 0 R /F48 395 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-866 0 obj
-<< /Filter /FlateDecode /Length 19631 >>
+864 0 obj
+<< /Filter /FlateDecode /Length 19632 >>
stream
xM,9%_q]v~@!z
-hhSPff@j5_f$x7nt*%u#+g~vN߮pm=7-%W~zsoCy+ݯ~u%]!п+~7Kw "w]?BI"!7w[s|дxݓ}1?2Oߤ8/5B|I蟟 [u_%c(m}ɩ]6AYp
+hhSPff@j5_f$x7nt*%u#+g~vN߮pm=7-%W~zsoCy+ݯ~u%]!п+~7Kw "w]?BI"!7w[s|дxݓ}1?2Oߤ8/5B|I蟟 [u_%c(m}ɩ]6AYp
kL$$q~9fC)VD?5BsX!̐?/{}kUW*>_f^
IWi`۰៚%md lcis>-md9=wMۃsKwwo5_{^s1ϿB_@hIԋZPŲ yh#@3MbmG /k>+Qr?ojwq|+۾?m~t>)ƹ^˱}U=? UQB:;~g=o~'t4ٓ_='4F.#~'I{[܈_꺷>*?JSof %1}f#3@gԈ9~`݅ fQJʧhH>pvFI̟Z9J>kW~qS+uޮ?^F_ CTh5퇿u)J /_? RB7~`95 ^S{Dp 9z{u̩iT3P%_i$[\{iP5,%s Z(׉Fi_M̍hCт^mw4PLT˗{5}^M#=e\i^HO;jS9Nf;~v٩eD4BPIO4{L6ΐ>v6D4R(aIW̥-/<jkFB=Z{:l.f׳Q9w_Fy(e5~iRFDddOjJ84yu}&=/I7)J
Mb[nW\|Lџ3i6-;U117}r@ %GZnRwxpW趸(\.Wr׍C5|n>Z7V׍ue׍GjằZ}n>Z7V׍GjằZ}n>Z7׍GjằZ}n>Y7;9'X^pr3y<8Z_e;;u@zۺxg=z^_ۺxc<v/Ǖzƛ<MuF<.]Wn>ѓ@&{_׮KҤMC盞~P2M(ko Ǝ+:[tД; %``9
@@ -3889,26 +3882,25 @@ T<ukTNtH n'vx
z{BvVCF莰92' G΃FQQPG<P^A@01(sέ
#!X;d5K͠qm2=E% !V$2ႡL@ G4dhLCTGm4Щ):CљqQFZc8fdh)gI+(Zf¤:BgmԠ!0P^' 8A[1X\_%>T| 甬qd .P0'EKR1A6H
hwd7(i/KoJweV%jy)ZZ
-0 p.)F7h1^.VrԇU8D1׸zީԒ[s2 rkXmҭ1*DWY
-ez?Y?lܟC6>ismZٶUG 0_b(pwKyu1j˯Ŀ̳_5s;Ƶ<oOh:ȼ 1"moIc{tͣC -^r˗*CB })`x^~i+CG}Zvlxί[Wx$w{ ww@tGջc;,\iNR5sK1rori
+0 p.)F7h1^.VrԇU8D1׸zީԒ[s2 rkXmҭ1*DWY
endstream
endobj
-865 0 obj
-<< /Type /Page /Contents 866 0 R /Resources 864 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+863 0 obj
+<< /Type /Page /Contents 864 0 R /Resources 862 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 866 0 R >>
endobj
-867 0 obj
-<< /D [ 865 0 R /XYZ 78.37 808.885 null ] >>
+865 0 obj
+<< /D [ 863 0 R /XYZ 78.37 808.885 null ] >>
endobj
329 0 obj
-<< /D [ 865 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 863 0 R /XYZ 79.37 771.024 null ] >>
endobj
333 0 obj
-<< /D [ 865 0 R /XYZ 79.37 178.379 null ] >>
+<< /D [ 863 0 R /XYZ 79.37 178.379 null ] >>
endobj
-864 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F25 379 0 R /F19 383 0 R /F17 384 0 R /F20 380 0 R /F16 386 0 R /F18 381 0 R /F23 653 0 R /F21 382 0 R /F54 378 0 R >> /ProcSet [ /PDF /Text ] >>
+862 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F25 379 0 R /F19 383 0 R /F17 384 0 R /F20 380 0 R /F16 386 0 R /F18 381 0 R /F23 652 0 R /F21 382 0 R /F54 378 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-871 0 obj
+869 0 obj
<< /Filter /FlateDecode /Length 5530 >>
stream
xˎ>_!
@@ -3933,59 +3925,63 @@ Jj&94WYL y+%Y%`j9\`s
K%V"<ZS'`>9#a"aXDϐ4>a ֋& 6y@?k:\ 80wX!:M.t>BS_<ߣg-7M1s1($֔q09u)xAB_"޿*.'0宿 p AR(Q51֟:瘆`DY7|L2^&1EUG˪$Y5zlhAN-t`,M.7ɍiIk/ML9=3L@۸?
endstream
endobj
-870 0 obj
-<< /Type /Page /Contents 871 0 R /Resources 869 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+868 0 obj
+<< /Type /Page /Contents 869 0 R /Resources 867 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 866 0 R >>
endobj
-872 0 obj
-<< /D [ 870 0 R /XYZ 78.37 808.885 null ] >>
+870 0 obj
+<< /D [ 868 0 R /XYZ 78.37 808.885 null ] >>
endobj
-869 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 378 0 R /F25 379 0 R /F16 386 0 R /F22 408 0 R /F19 383 0 R /F23 653 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F17 384 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R >> /ProcSet [ /PDF /Text ] >>
+867 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 378 0 R /F25 379 0 R /F16 386 0 R /F22 408 0 R /F19 383 0 R /F23 652 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F17 384 0 R /F57 389 0 R /F49 394 0 R /F48 395 0 R /F50 396 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-875 0 obj
-<< /Filter /FlateDecode /Length 4190 >>
+873 0 obj
+<< /Filter /FlateDecode /Length 4188 >>
stream
x]Kϯ1> pNɉ$
F
2TdGr"
Ꞷ"m|HK>w)
B;xo=➳L2)RGSo%Ѫ6x,4l
-otcCo8S{׵+J0ѻ|nEw¤p=6\AΞ|w.@筶gN8Y_~SYeؐ21`u2ƃ5+*48W
+otcCo8S{׵+J0ѻ|nEw¤p=6\AΞ|w.@筶gN8Y_~SYeX21`u2ƃ5+*48W
^=,Bؓv(JT6( K-S.~gl.|6%<p n3h6r0< ?Hǝ
nq|,~,U E:g ><,yާQnKH$/͑*N
jq$~bFܩE"]۫e)J
Z)r\߂zϬeFw\f-^탗X64(q uHk``
&vnÔre:IPLTĦLeI!TlC1^]@`JUl24c߫RxB8
. %ypW8wj@ jiz*K%D7*pg.4忦ǿ+:,aR+뗌4J&dOMҴ|:>C
-.8ͻ8iĀWT}.ֺȫB9rlfl 5W d1p Nծ) C^L`_4$mZ
-9R<4P_>yz#/ Wꪗt@/<瘅 C_zKlE7X!Mŏ4#4W?$/D)S)/
-(D 0iaqLMii:iZeY3 ~!_7{84D|7l?OGr̙ԧ4Dro&eb:5 R̙s @}LCÏv3&e;zb7Ӽߜih1w>w)
-CS@-=[/
-51=5ާMO4phS_ @} !;HGSg~=~i44`w3aܞiN[uP&&i 9 f
-مE^+R =~b9ଡ଼ԑ2ޝ<;sz .=_3Im\)C6v/^_9AyuK3C0RآH )8WWkW[dVsEe+K8Vl֑}6$E⟇Z֞9nF%NseuP
-.5906t?IqK0!Nr4]x5V/+ *غ(a:Z>=4 +$ǵ  "  "׾;fmMQ!$!`ıs<KioAe#vK6ږ<rnC_.cuS3[)楊QSڃ"u9]LmV֑2#>{U_]^c{ fZ,'BYJ+ ?)ʪ`Z!p.PkXTLE|=U=zBە[iam%|gpf\J0 +ynC\~%r㦵Za-A\f%!eo' ԡ ?năW+:[~{A:O4}Kz$=!Tdq&tD.3sӄLݷ
-YU Qε6 N1uz.RnZFSo-Zx6l~Xdh|EIF *<ЙK+>8\zdj^E+YS^L-,#hM;ݘbvǯHfug xh/~}5
-( mЎ(Vĝm~na+/Zی_yll7Pޣ* /RiZV*y5omjtgY΋@b4e ocаF5k׎4lZ={YFJMJ|8c㠰6*c5Wljvyw@'V-&#mEsE[ߩpigf%u2l Xm/
-yk*L+4oO?WZfްݵ9
-yb+ 좙ъ.\ ]8~װr)7vdYoU~[~\xUgϔLŦLF16EzZ-%}Z.;Ô5M sKH&66ZS YB%`B,B6|J[B5Ty[ew]2񆑭غ|<|1cWI_}Z<~sطk^3hcY"x:VI :mdpQlQE+G֦t)Q};L7ebcZh~sc#G>qZ+48V
+.8ͻ8iĀWT}.ֺȫB9rlfl 5W d1p Nծ) C^L`_4$mZ
+=3Ys6vyB;+ ԗ|v^^? %5>Ћ69f!P~ޒ[Q _qrAS#9 H9ϫ- 9@}e 
+9Q<LkZX>Ө`SeN{}LC_^93 !_4ϓih>s!/D3 Q[IƃzM;f>sA?P:cLD4o`7g~$ϝih
+AS@L^iy3SK5M&fs @2 s|fu&|byVv`,])]N1)4gHO$ /w鉆iFs'00PKO)= BMLOi >&B4xiC?PBԙsG_f2 M;zLsXgƀ|yr>m!aǼA¾$>u!ǤA$>u~ >uv!tсBBCX?x+$-uwsx
+aak
+q6Hǵ7HǵHǵ7Hǵ7HǵHǵ/h[Sԣ!nao`95qR@s[vu8ȁݒe98Зc31e#VfybԔeh9p{`G[u䭭AO^WzpטBYcD.Ga_vEkuFPFV
+G+O
+'"*(VH2KE,~6,k"_nOUvVڮzXj[x+Y2҇A=(Šv^ =(߃@ܸiփ`hK!f.~P>Y}bٛr k*,"u({[:
+Ve^*MERd?I+c*{jz |̬4!SBV*:en7s- ŦAAi az"eۯn[9s9_?ZE0hj
+x&t?
+O=2^;WJjVW?Sdi5ˈ8lm7X8v&{@lY^x->be,˨h_Mf|B3
+#z{9
+56qgz7iXJ6WM5J苫he~1V*~J[Z6Y"'Mh284lQ@Z ۱V޵8"wkR6;8(fJX}ۿuD9g^8r .cU~E20IHn[\Qi+w%\8YjYIݰ p[B3VKB+eڭ>`
+[OmY7,pwm:{R]0'F=^J_wsoc.
+-kkk9hf aC_5\ʍY[ߖ+^<3A/S@)QMndKAiIˎ0e|Ml,<M-"D(B1}ֺP %P !P 5p-GVf]ׄ㢁Liad7.#B'yرUmrm.o ZC)c-λerzTJ)eJTN>MֵؘFop*ߜul EJ+M"ApV
endstream
endobj
-874 0 obj
-<< /Type /Page /Contents 875 0 R /Resources 873 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+872 0 obj
+<< /Type /Page /Contents 873 0 R /Resources 871 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 866 0 R >>
endobj
-876 0 obj
-<< /D [ 874 0 R /XYZ 78.37 808.885 null ] >>
+874 0 obj
+<< /D [ 872 0 R /XYZ 78.37 808.885 null ] >>
endobj
337 0 obj
-<< /D [ 874 0 R /XYZ 79.37 598.595 null ] >>
+<< /D [ 872 0 R /XYZ 79.37 598.595 null ] >>
endobj
341 0 obj
-<< /D [ 874 0 R /XYZ 79.37 325.802 null ] >>
+<< /D [ 872 0 R /XYZ 79.37 325.802 null ] >>
endobj
-873 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F25 379 0 R /F16 386 0 R /F17 384 0 R /F69 406 0 R /F15 385 0 R /F22 408 0 R /F54 378 0 R >> /ProcSet [ /PDF /Text ] >>
+871 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F25 379 0 R /F16 386 0 R /F17 384 0 R /F68 406 0 R /F15 385 0 R /F22 408 0 R /F54 378 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-879 0 obj
+877 0 obj
<< /Filter /FlateDecode /Length 3162 >>
stream
x\͎$ STnc-K~ /-ɀ}p6s뇔*ZUCOTIGu/Ŀ=Hk sןIM>
@@ -4002,42 +3998,41 @@ DmMShomF>T<Au8z+Є_34qfߖwTmKblB
6zJߒY㢋je39HC^T>@<d$b]f$9keJx%!+-b)Kы+M;t4y`uf[;zϤ렿ӰSRI; ksE׭P'Yϲ%sj'p!TBc/7c!V+ 8ȚHY_nu~ZO!x)2;kx-uJ/,bl:wG巒GN[UĂXP.K}68!Ú44 j/=*=nӃ᪯l D'6,wlڟ!>tzos]Zو D+u/#lܲw,U7{dpNۂ^VqY@-wol܏%r[]\˔wS&6M.m$^u/M83c*HEn(AtΧA\Wߜ_"@\r y-,Q@ɞ9bPsǽ-I!_9N1gr:?7475EKzO=pJ߿>I
endstream
endobj
-878 0 obj
-<< /Type /Page /Contents 879 0 R /Resources 877 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+876 0 obj
+<< /Type /Page /Contents 877 0 R /Resources 875 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 866 0 R >>
endobj
-880 0 obj
-<< /D [ 878 0 R /XYZ 78.37 808.885 null ] >>
+878 0 obj
+<< /D [ 876 0 R /XYZ 78.37 808.885 null ] >>
endobj
-877 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 378 0 R /F25 379 0 R /F16 386 0 R /F22 408 0 R /F20 380 0 R /F18 381 0 R /F23 653 0 R /F17 384 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
+875 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 378 0 R /F25 379 0 R /F16 386 0 R /F22 408 0 R /F20 380 0 R /F18 381 0 R /F23 652 0 R /F17 384 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-883 0 obj
-<< /Filter /FlateDecode /Length 3003 >>
-stream
-xM~{ E ,&o7@˶{k{
--^KJ-ydN.{o5vuO~wu黏LAD LyR$'5(O)!>^J󒿍j)5vW)~@l5O+$>5D2>3g,[ Q(nJA`
-}D
-2⢴P(3fA\Eb䭸3ih{x@
-dܑ6Ww0v%W'Lu
-G TV;g|ogށ`o u2`{IDtbgv`i"Ў9ԳR!v.joMІN U?4XQk0eF]4>5f^f5mngLgRZbM4
-F)TQNS
-~\3ϛk6%ow2`Λk.ߎew2`Lzk|:Ɣá XGe 9g9psnI{bmZXsSiE\of 䧔@GԌ{YPUFxy:ΨkڴǸ(qF^py*zjP3nCje1QDoNy*{rӝ
-c>gʻg:y(rF$L*d8 S*^uqXpտσ`sHc/aJD<e S֯@&宯(g&ap!αv]u}\}WvPj‡i{OzF
-LXb(\+l4Vz 1o\4{<Ͷ
-B,3ξ-mo}w!:}>x]L[8~k}4Ms=xYK?̆~/ٸeD?[Ἷ֯b}~ӏt[vp.nSq>Y\oڽ{O]=}uw0ϡnn1WQe%ǑUu`WF_/\u)(#my%pDlrjO_ġֶʓy?+3e{o*'} aIamMo"-Zt7XE-y+_HeGo +H}PRb/v- i#
-ϫ f
+881 0 obj
+<< /Filter /FlateDecode /Length 2924 >>
+stream
+xˎ>_0&Y|A=;\6[l
+&;%Sot?/H) _ow-0|:}?yZ)̓<[<cla'D z2]JA`F"4+~ÏCx|9#2?Q^hm IRx+?OkJ ܞ3BeXH"ѭ~
+DHL\4K~6`D>C\R =DfB Bc>EȊI/ONhd `NO>O3BGRE)% c!gaWgkg褂I\1Jg[ N&
+Lއm
+$urزF/ڡk&|މ釶l}ܟA *
+eA[ eA^SIÒ (J,!.J urd]T)Hފk}pA1?m"p
+DX;@Ed:(Їg:WDZ$`\5''Ea!maѨ7UNZ3~)Ie0p=:|{d̒t*HQeL<zI\_PD xkeSQ ㎴iD+̾:1`ꯏ35[:񂛛D WvMGz@r?L(wDžiT2ZTOPUw)Wu  Uud7Tb'Jݘ_)8GD+1Ȧ|>"/Ցm Nx b1x(|sKAn4XΔը=rK1F vCe,xKS=U99xk,؏
+x98i*_) .tw:M왗5wM۝^5AH(2J8ޭ6xXZL0@ } m kh5qe-уyq>jp@ VcE@"bHC&?Oټf27ky`?o5`|@Λku 5oq2;0z&5>cJP,c~2@ܜ9h7rMRE-Sù"`e.Gӌ{YoSJ`RH أ jƽ,kx*E#<JΨkڴǸ(TԠ/ gI}Dr贙/Tn@Qb>hۧaqi&V8L3 4O3ki& %H*Ϥ p`#koCU9W(l/T_ne2s/#p/SP72So7g̊+B_+|7iD[eTnήH
+Q?#-W=k18CFQ.H*d8 :8Jd\;s,?ь4v)S %Ao4(~L/i]_Q" 3Ã/tMLB0$+a+6#wMqs]u^C__O",_i^:"k<?MV8I>sC6|' D_kJUe3d”UUfZ[xqo?x%Ji*h@ho(kѧ˞IH_ʸRf?MS\Ji%=nMa hdkW
+b)Y-۷{ wZ#X6;vyCU\f3=l`^*{37+t3<C[rP مl-G3G[fj^=Wl՝YQҽzv2h/ k}s+t`
+8nvxMކ|ZMu3n^q4c?2Z ^qˈ~Ja^yYb}~ӏt[vp.nSq>fqSfoڽ{A߮מ>;~u+L@ɪ:VH F_/\u)(#mJJV&߁-VxCHJ7 As.[ZA
endstream
endobj
-882 0 obj
-<< /Type /Page /Contents 883 0 R /Resources 881 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+880 0 obj
+<< /Type /Page /Contents 881 0 R /Resources 879 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 866 0 R >>
endobj
-884 0 obj
-<< /D [ 882 0 R /XYZ 78.37 808.885 null ] >>
+882 0 obj
+<< /D [ 880 0 R /XYZ 78.37 808.885 null ] >>
endobj
-881 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 378 0 R /F25 379 0 R /F16 386 0 R /F22 408 0 R /F20 380 0 R /F18 381 0 R /F23 653 0 R /F17 384 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
+879 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F54 378 0 R /F25 379 0 R /F16 386 0 R /F22 408 0 R /F20 380 0 R /F18 381 0 R /F23 652 0 R /F17 384 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-887 0 obj
+885 0 obj
<< /Filter /FlateDecode /Length 3866 >>
stream
x]K Wtn 
@@ -4066,155 +4061,165 @@ wc,yR0=kuMt^s"z[5AцCD"ȋq_ED˔o:ʐ<?cvW&
UTl*oZwrDj׭P;ĸ9ϻrr` 3ǹA`tg]Ö9Fc:l9EJe3L;Uae'3t{0ld#7gv%Qi?r1/
endstream
endobj
-886 0 obj
-<< /Type /Page /Contents 887 0 R /Resources 885 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+884 0 obj
+<< /Type /Page /Contents 885 0 R /Resources 883 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 866 0 R >>
endobj
-888 0 obj
-<< /D [ 886 0 R /XYZ 78.37 808.885 null ] >>
+886 0 obj
+<< /D [ 884 0 R /XYZ 78.37 808.885 null ] >>
endobj
-885 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F16 386 0 R /F22 408 0 R /F20 380 0 R /F18 381 0 R /F23 653 0 R /F17 384 0 R /F25 379 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
+883 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F16 386 0 R /F22 408 0 R /F20 380 0 R /F18 381 0 R /F23 652 0 R /F17 384 0 R /F25 379 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-892 0 obj
-<< /Filter /FlateDecode /Length 6086 >>
+890 0 obj
+<< /Filter /FlateDecode /Length 6087 >>
stream
x]I%ׯxsa PH\j\7g t_%BRHCU.DbPJv.?~`+م_s Wb [ї?~l]>e[+`̥|7y#|ߥvjs}Zg8xߟa_6my_q?~*CrWKk
ӳyqVR
u8Xqn:@.<fog^3Mw tK ;%ygk{'Kw<
XL\hEuRRGb7fRcgBm൴fYnLj["&6[kk?.+m%ik;<&'
UTYBim^((ʯ)Bi}mdyMxr[%mm|.?uZq]T\V+Ϋj]YQ09ꟖԆ~*j$qY=mW^F6?MW+3<^ )z 1^S_"0YKjY"7|Q]L*ф{ݘ[7cVzṋt.-JO׍n0{z5]xbnl k5OIىeCٍ7޾l&9-{H|$y, Ό -:$m7/8ʝEI6mGx`rxt}+BnˇUpnws7NRCxYԽgx&.h[# #|ny}L[G"بV8 w,s*Xio0<@zN5n&+WҸ$q$qG$q?8Wk[^< `@pA/ܲ? G`SPm߰5،hHaNvǪ]ooFni;bL\/*~fff%(<)B6+h"x[\Χa5Z ?|p8n1wӜ3&MW`ͯIVY \
-%VJtSu:%U< )ӹS)5x CMlPq|5P42yӿQ}`|_}=lv,/*Bk PLB-|p3Gƴ`LJC9m|ke?
-
-Qu ԰~hG㴎ղb Q>sP!%XPwK 0[98(c-X>
-V;fCb ƀ8\mtRFU1.c|L}N2?F'^6ć2"BX ;WDiBm
-v[Lj[$QxikLE> [
- yY.+\h Ghbɰa0xxF PZ,_Bµ8[H)Kh੨ 6:9i 'KXC[™a 6潖yK\D<g K~+0Q^G`5x]4G Sxf!E4p:[Q
-VТ0V4uFB@'%*x!,uz}*\9չ׍u6 w H22Q6˅"5K61{p<_@iVM{*Y8_.*EWO 21m*R# WO6d$vHN/}.J*muOz6FN}"WO
-
-l? 0ו,Erb7^s9%:oݽ/^")Yȩ
- "޾_7
-.5$xH(Zm4J )l*0.@x􅤾C Oǃ;.˦ǗR-exz4;[7
-8rwYD,:AS9ܙVeZ$)M+.av3|Kd`L|ҤN\M/`Pm\f HCz;FiT+k[ʱRjL;N-n)ͱJHjDfx6MjĤNli֖OD8FXMIomN#&Y3FUB"j /u8}$;{XFO׿)nOլC*
-^ V>&U*\wv`^;4/
-;~7_g'D=+T'+d_!
-}Wa21LjH0nO HTWI3e`*dW!
-}Ua21Lvj<mWz@gĻb>\w;߇I>^.Zf /Y>IH,t3,I:&":ٳTf$'-ϨI\bnl"LB5s>.e4/˧K0‹*?>KRy'dFٝ߼8=~޽nB>㋢^3(Grr=鄉^nA
-nbʴ&ƹ޵8DEH-1EtZcUѷN8w UQz]Dʝ?F7 \ǫT[
+%VJtSu:%U< )ӹS)5x CMlPq|5P42yӿQ}`|_}=lv,/*Bp?Z7ӵDE  '1-:P}{ši$xJ;oO1<]s5>S HTϬR5OlߩG)jXmCv,~/W]WOWe 8Uh:Nؤ]zfiYSVCA
+W
+>&,ieuDBơşeTi5߫,Q8cX'F)FyE ֤%Ҧ2"nsyخ%lK 9@Pc?Fn\` t Nn2$
+E*!AR;AZoZ5 %0o†%o?ɝ+l86F)o7w-Vw9U-F8-'Y~A1 ?29|qvQU h(>SӦLщWGo2L#'Q5xdĠd©<Ez1^S'|:h-lN
+W8Eb>F2"fy< |A,nQ%dp
+~*KރC_
+mNu#uc]+o*~݂/̼LԢ rHĒMEaq1PUiuӞ`
+dWKJv G}49H,S ]3KҬJEݯ^<3=M@Ⱥrv哽B#'@`!K{JPsDܓ4w4Ǯi{p@iV#*>f$d2n]xud "eLhCآe"`ٓYȊҼ
+LF3S%x$J8^7% fAc,J8^7޶)*p44r^WFaxĺr9tx d!+6>_{~
+>Qd2Y=Q>rG
+gHu&GV5  vcNj [ yzDԉd>UX Q45ϹeVDЯ ]p
+H0j1Ӕ+%DrpQB|7Z2<?^,_Jp3;<*olI
+ANH[Eoma`!z
+I\ > , xфmXCIU4O+G
+e4 S MBaW=^zd@O=Ua|6Cg
+Tvq:Κɋp`9,,{h#Ҋ䙺h8xر}423LZаH V姴_EjQC_ C*WI]%Qϸ
+|1 0UaBfujL ]f*0|V`PןHL }+aV_!0Waƾ"= 4S]%Qϸ
+V%L ]*aVW!0UaƮ"_2 !sd#|&xh6LRf$e: )=ϰp'XgGgRY >&Qr6 ^z3 K"LkpȾȺr/~.ap /jpG.A HAopŻoRewR>vy .'
+>/,B{JϠyʑbʑ&z]~>D/;vϗk}:ytcT4<1pxFֱ7^fx`Dh3GTpt$ KwM )>69sOz({+?n)H^zגv! kUTGF:&WaGumr)wNOW,seRm p
endstream
endobj
-891 0 obj
-<< /Type /Page /Contents 892 0 R /Resources 890 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R /Annots 894 0 R >>
+889 0 obj
+<< /Type /Page /Contents 890 0 R /Resources 888 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 866 0 R /Annots 892 0 R >>
endobj
-894 0 obj
-[ 889 0 R ]
+892 0 obj
+[ 887 0 R ]
endobj
-889 0 obj
+887 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 258.666 67.03 269.123 78.65 ]/A << /S /GoTo /D (subsubsection.5.1.2) >> >>
endobj
-893 0 obj
-<< /D [ 891 0 R /XYZ 78.37 808.885 null ] >>
+891 0 obj
+<< /D [ 889 0 R /XYZ 78.37 808.885 null ] >>
endobj
345 0 obj
-<< /D [ 891 0 R /XYZ 79.37 540.346 null ] >>
+<< /D [ 889 0 R /XYZ 79.37 540.346 null ] >>
endobj
-890 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F16 386 0 R /F22 408 0 R /F20 380 0 R /F18 381 0 R /F23 653 0 R /F17 384 0 R /F25 379 0 R /F69 406 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F19 383 0 R /F57 389 0 R /F55 387 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+888 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F16 386 0 R /F22 408 0 R /F20 380 0 R /F18 381 0 R /F23 652 0 R /F17 384 0 R /F25 379 0 R /F68 406 0 R /F15 385 0 R /F56 388 0 R /F58 390 0 R /F19 383 0 R /F57 389 0 R /F55 387 0 R /F49 394 0 R /F48 395 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-897 0 obj
-<< /Filter /FlateDecode /Length 5086 >>
-stream
-x]͏$m_F˥o X,yc e9$<>%~HI(GWxafzX"*Q\|Y.zOEKV9.~rїZ|,^0 >GSZ9,b?\7@qHɋ~r0@uQ^AJwED! EScJkDϵ]hT\>AFl) ^`"~JЉن<UT$ DDD5٭QDԾWj}y]Vz 4䨽򫵶g:*ެ+jBQ
-5+f;Fh?[zȿMsho~hjd_GPX@4`*;M_fYvKf!(WK1.% {uFruVQ[FSǤġv </ V
-;Mzev; SB@BrBRՖYRhmc
-S<hIbh@p2IY<[c>7]Mfpy#2h!8tVDFvcY/s6/j<ml=Ch6<Q Rͳa0~-|3IBXfO-Fĸ4ی=5יj,b-_!*]يqQaZ1s5kH^-)ϖ؎u3OK\GkcTعכW_OA;Wڭ:BZc~ތ~Z
-mSua[{%\W#6_8ȠV->bYUoC F+e4!bxĘtOQ쾇5}/:e񰈉067:ljl^]Ɗ8go*y2}O+ RT}Mܙ_{liǶ{8?n?oi-&ВK{Y<2>UT ;fl ͩ)5iXJ7mW!6U~td-Kc{-[
-Є6hC<Ԧ w#D'pi呻)OE>8ϯt)06'd]MHꖨ(M+~_JO9?M=,l
-f>x:_?m<kZ.S{N៹k:欯5qq}~Sgk|J':wh u|{Zca%+10$j A ;LRENR<IƫrVì72鵷8Pky妓dp8t%\ +$x3
-o3* M%[y<$;8'!(Մ4AT:dw ' anSOm`LTz9 @9Bm P1#c68&uHj1ޯMW3
-$nG
-0!Tc :( v6M恐WNޥ$#u`VP22 KB!4bߧ6<Z^D`$9uhL>߅Fŀ{2](f)T
-/GeC,S78ڍ'=L([SOȪDygEuJqHuZH!K6RD.sJ!6)<iη&e)( P(F=Jb+OfsLM# -%vkPlND@:LqFKr5Io6b9arZ*j╢ҭ! bܣ+ٺ$j8g;%"בR" BYQ:E H d#IԌq;bCɎr)Jz[ 3i ֩uI oξlJF;D@d5؂2egtEu0G'
-ՑRAH1Fʓo!^3|XbLE'//EcҐr#%S!NjC*,1 d6ʐv%c Y+sYip9s 90ּ:cR6<]
-tM` Y+sвt'R CS0RIFP cܭ4 i'
-Y^S.CQs/u!8#0XKad]O`u Nym.fOۂͅTnm.zIlZ{~ rak[e<D O|n M@ a֓_{7ۛ CRQ`RTQuw
-Ĥ/]^,Ӳ9Ѱ<vqbʃR$ ,qLhLC BO&,)&`L/)U DHlH>U1&Rc.z]I%5).h$xܠa%GHrF
-gr0ƧV$~ÉgU:e saυu! ⮈+I#y7$5X<0Oد25ġɍ(h̼fIj> sc,p2 +*qphq0Fe-q]o7 'sg; 9P8sGidSN%H?
-;Wqw#P{ 3 Mݠs
+895 0 obj
+<< /Filter /FlateDecode /Length 5044 >>
+stream
+x]K$F~
+?l,P4 qhDh^~D\ՌBN.k@=/(eh&Щ(hmSuHE MAϟ\ C EKՅ$WEM~y]^
+4h򫵶̳͒9޼+he,D(\tD\\曆TU(6Vۋ_t Y8i6Y9cdi@BhA
+jz/~/ߦ\4Szn53#~: xaS6ėQkٮEi<,pLJ|a[܎ h꜔<*ZWu0yym4'CV^I]hh]UiyÒ fCǛho<F\wpy4$ (kzz1Mo<)4C뜮gΣѣbBKN{yUhѨ7U_Hq?s i9eLĀ1maB \eb1؏Ϊ;^.fd[5ɼU?rZ_O
+O=VkytUj+T9Ė~L)|xSDf]r
+!,ǧx!b^agm_|=5וj[(/q)}㐣^E9;brkՐR=sWT T\Gk#5cg7;Lw9hDWf iD3V|f͇5FaS }ak\W3^8v->^%7(X.لcڳ=%=l߷{SJ,Uذ1׹E7%2Wq=|{-v.Kĝ7deۮKEӴ}SKZrQ?dk~
+ctثY'PqXJӒ /Kr@&YW<3i1>4O~ԇh1$*),jF|k@3fP_/MP
+jq9?x2P>9Q})ɛ4pm]mK&%[ ٴhqaIrML$Tf_ _"=8*;@9A$'HU(9%Jz*c"HPҹ g
+Yˆ"He֕@h _.Sn d.0UgbO|(BjhZ¿_W4;[}L?ɪ,ϱߟ\a
+ ,
+`=(4nXQ4tzdYwI9/
+oB&b!țz{s؉Jn6u70~۰x-[mN'sg!XS5LUlUi}3Xhgs?1(?rY(Ɲ }2u?ns
+`as*4DsNPܭj=0,ҍpe;.O<a<(1l-2 23~zcͨ0.Cs#F^y$YEIwOP֭Vgp
+.灚2?A>
+)9ˤWm'5ƔR Um,SJ]8
+$nG
+0!Tc ;( vPF@JT%p;W$ *aq5JFAVx=BhwRV}jUEFZ=@Ƥ/]QoaaQ uF6H~S L%@xgi[-2$A%<,f{@0H
+/GeG"K7ڍ=,ZNDygEuJ8Tr|Sr:j-4e(㒍'Q3ƹK\v GF%O:dEY"Jw 6,F6uIԌqVɶi p)HHTIo4$WM:-as!6\&5 ^)(@(7ذ֍'Q3ƹ2ةP U
+Jm)!H(HTGJa'Q3ƹK\v ;FK:j*U
+jNkH delSgv\}Tv*[GIjUF崋N$$#%C0FƓ\o^3P_'˂{KF{Q4\HTw@%fQvl2Rm eW1; \v +.c8&uHjVlZkV;J&H1J`X#f1d"
+{vȓIl0Ůocٓi*ft#ύ+e:DIm[\<{ g1h
+vsߩ^1+KBXJ7tE\coqEݭ",(z1&r)!'ί{O'ޛd˱v'-"lC}]Vv}ܲgށtgrݺ7 Fu=#dM<X;ih1x>K`{ʝE;Ojh1xi@ס73ی>rmc}[W:|X@On>,`wAzlxtCcÆPУ
+5&Mx!Hd 8S/Hغ~yɒI/7<k6
+׾S8j5m04wnq>?ZuW~ |VB,7;qWnc=7&իE <
endstream
endobj
-896 0 obj
-<< /Type /Page /Contents 897 0 R /Resources 895 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+894 0 obj
+<< /Type /Page /Contents 895 0 R /Resources 893 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 866 0 R >>
endobj
-898 0 obj
-<< /D [ 896 0 R /XYZ 78.37 808.885 null ] >>
+896 0 obj
+<< /D [ 894 0 R /XYZ 78.37 808.885 null ] >>
endobj
-895 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F67 393 0 R /F56 388 0 R /F25 379 0 R /F16 386 0 R /F19 383 0 R /F17 384 0 R >> /ProcSet [ /PDF /Text ] >>
+893 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F55 387 0 R /F66 393 0 R /F56 388 0 R /F25 379 0 R /F16 386 0 R /F19 383 0 R /F17 384 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-901 0 obj
-<< /Filter /FlateDecode /Length 11648 >>
-stream
-x}M%7ݾ[vø9oQT hŸn{Հg8dfwﭪf
-(FB)H0y
-Ӱx@S3[zأ
-$l4RnKP˗zw))ڢ V=ꊟ g+~c5ݽ?ʍ.LbO:=ì[tm/tS24TnݍPթٸ ]-({x~>8]oҥk._yJ4_.UmИ_b4p֏kv|xBcGk4R [3u8*/q4#HlưynưEig[yVkD/S^%g2ԝS-b[ϊ˃`uiŻ
-5Moy'm]<n8_Wa{QK줵a>=4%J:[t[0NQTi?C ns#hώ^\KKo-˛5|b]k} ubk{Bavжߓp95a녉skU\㰙d%v0+WsxԒl smU/NQr]î lqe)q m Vj3i^ sBZv2Ov݌ݿ1=tFh*=n(ߴ.+*򻶷{CP>u== ]xv,?ƈK8N]Dot\-=ىQ ;Y }]WU 2?uL3b("݆2;ߑÃսF2ɗi<fuލWi?͂_4Y2Z )h u/&ΜG6c'^
-6R
-f
-k{( >%;?9XJCտ/[O率t S2aܳPxOxO]w/KC?zxﳷ \SA4nP?v9eb%S:xy^ʮ-J<M6h+ e^ ! ߸g7-|g3_zheoZ`ģMyMKQGFyF/
-kٳrlR v7-u!M^%1/HÅ{^n3VϛKk0݊4lKkAZپXC/7"O98iᲣw~zKEw!(i㽭;|yv"T쟩@7زͶ
-ՁAS ȵYмւ2,8Iɰwz'e8Hʫ.jM!w<(-G-IbӀ K醀`L7 ~r3!PPRxy7dQoGΘ+&y{RS{q5H`9+M5$hJqB{yDU |w5=~4k@ WPtq8e=awG+ESژ*&yRwq5?ui ]-$b%pBS[4oA=I}9Ly8\]rհR*BmQ1I\<MYfxdj-49$5$h*qB{J_dܽ‘L%v5+(vxm[Hj4ע)YWL^&j%~0@ OP3kq8=a%G+Uڍ.#nβF0KДdM-wRoN)٘ Ų#3AFM)1qr]3S Lg!{>4ԇ2 f0U:)Cۻu%BMʀ!pw4*8~u?DQ2AZ HqҐ(B[zQC '|<Lg uˬO7]8̏ i-3O;zv~Ys4V80OZ^yL! P<xx0Cp33}AM7>F8t9s.ƢV*)yQ{ *#QKV<a)$BmVPd@W
-\.Y2~<OzWX)#.JcOI3Lu{l՘*bX#<fû,-y"#Q:Nq;e=gyOE{?v~5ny#<3m1N@aaMCEA
-&fgCwe8t‚M N]`jCX usT?Ml+#(QKu;}"@d0);>O)y H0V6HD U9meH`R6(ζM`BCX&u3T?Mg+#(Qu:9^N'!+v.9+6嵳iW%b)双\|C(ԏGBM-*!uy&ԗt]Fw9n
-WE,4%bE@׈$;ݐE(1C*(Ӆ$u#1gvP[dBS.k2G{mIe%h.VY*0QsUh˕?;N/7=Rlj2%bE*J1O=j`PjlJrdgA2ĩ`Jh*%bEBWzNx8."*!uy~\^)iF'(kpSY)4՝BR?7HuRf5FZY'0EH
-WHjíO5V[n
-fv`ad[!;EpBcn:o.%|Z'8U/K >< J7[[ t|^[,EZ?Epp{D 唆7`y;>FUd1{"l՘*bX{yOJ`p`Qn|1($HHd,RLnl1vej; *#3zTD8hY˔70yM<ӍٶNӜ:KiXXYףKu<2A$:oiSmbr:0H]O
-jx=Jpڅ:p4< mbv:0yH]
-jǩ "US.]J3Mm.sx67v&y >GiVPIӣ
-~Ss+JjyjzAo
-
-q|G(6 Av*
-O6!EÇ8&T wz;3TC!|E 3iَ
-!)9>qRJ g jSw[MG} Z)ʣѩ!pw]d*y}hgq['$ڼ/ǦP8Bqp! ZEy4@44݁oɀ\+PݤKW4wnz T wJy;i#rg+U_ҹB;Bw;2o&Yiwy(kīB ^FDAC8%3:>9FuL~孾۫zz`8pHm}貕FA )fsc&΢ ִ`ѣe$fŀ
-
- qD{(kXAӁ,j|E2Dٳ<R
-
- #{@5$V#rq[s=.`0t#oP3I.ԕ" SPC0q>DM:-'zu͐3# zƀ5Zƒsus2Ninv`A<7?/o&3 NBce^*p=w%C{kE^UYe)1oāɱSQ6ŕz%$Y4u2VM4|L=\qCBC:Srl.p
-( U}R Bc%Nb3Ԇ3pwQHNv:kFkf:+#|EeS\)WBCx'ca^* /g]\&y*͇/y~I=g\Z*>(WBxXף
-"D◎1w_GZGk/pTJs䧋Ap
-RT0 NLU!=;I܃d[UO9`LS|WA5?B@j.Z H6qCm=~)śBI栚ʸc:~Kp 2T0NLU!=w]׸0MgN̺Lf5-fu  NU b[e>
-hH |zc繊>gA@>y1 ƚ! XKAE`'c^ ѐûZ]|i.~(in 
-n+E
-ZhpD!C{]\l<]XlE= W$]ӝ]y+h!LA0SGDݕ-E^ 5%lYn#KbFԎ aȼ;RT m/&0G xhXyۣ
->Э^7^‘@>(zE7'&vhBP 0m@nxTI2t2JO@f( z|H.JF=܆x$\̫OA5z)4Y7=0tCz5|pܷ9+ {zf6JW>Df4XxۣC77SORqUa!vji3[d#4
-C]@EA!yhfĮ0f^\O~A3z!4I3v2^(@CMIwltU~Abl|W{-3]RAMq^A
-
-%9 Gyw CpO(Ʋ5Y`Q D0N EYқ5[(ES$!薞F(Jzjd;T018Q- -;tp:MTN-{p -%~1.thl?T&+8C(DF]YNH
-$|k=XY^L8u}\rdWm&y? VNOj'4>o,"& 3Yj0\3<E(NOb1S_BH5RtPw:T*AjT呵lAFEm.gA15jdWRJ_랔(Tؠ˕(Ty.{pgƟ4>!FPt$(zCLx>ԍJAjl呸lAR ‹08^Y&WxjO1Ia=4DNE8FHviF3idOݒ𭙕.= Sn2)ԣ׺Q&r(GV4Ȯ0qai/ZѾ=~ fX>m6ɂNl'ti3scoq࢞2ABJ;
-|o=?ZnVm_
-دtv@P Av~U "G}Q䄢/{ZQmAx" xD:0ezER\WA4R5Bl%?BV啈]\j_MUI^5ᯅ.1`^
-RvDUVqxkS{-oV-SKt}vc.Vۿa?(jC9b_finJ֍ѐzܳ6?huĽ0t}?zW-{9ƳX/X>h,k ^,O_-?5gNjs<s1S3h:a>tm~>&I/<4Xɝqt/3rCW8<z9*>SU}i4|g|<bl=~$S}ŏ.}:{["u~pl/֒5`]kdulMm~Ϗ_Gs>2{f/~'q"?׺_Jk,?5
-} _aoenKi훵5Ys
-k<]Nׯ5]ʾݰo38,>8Ѧg>+XzYwyjK~}};z
-*`O>t
+899 0 obj
+<< /Filter /FlateDecode /Length 11610 >>
+stream
+x}K%7޾Yv89|?0*Uk
+o2m!dً>T_nO.|TC*E?b>!S5O.i+-^#̢G}loE佻Y(;^
+_אf#;F³0"+FZMxTZ>o#{b$Y j?dlKD*7ۅ .oBA-.2ZfU GQdӦEnj?e[PkvyQzW*:
+u{)n%_EfQLF)ĉ _A ˷9
+1k?^Zy9$;gSV׍N$6CݱCN
+ʍ6mߩ7jt%מ V QNNTr}rg9Cx^#Е|~(A |~$r5E c~ݥI}tWOA9ȟE/AP\@-}jFa,MHoO[L^Z;UxrfeFG`KQ'^N+GR u|΢8(:K~#Y~"tl#
+C>i]GiQxd ]]GiQxCn7]{Q.f]#b얣(X8 1`̺e|"MVFaQvmQP_h(m_^¢ٻ"
+#Bov:;8KF2,?][m^9 p,c{F0Զqc0- s٣GzQ]؛;TNI# j0=|o
+zk>syQ nx<RI(ͅ@X~?\ެa^kC
+u=ήxxћҿ6cBjk~HwJTH*K7j[!t8K^e`LI|as
+?<]rCLL;bȿpjr{{?I1]Wf8T'W:Ky]?,"bUO۳b;hwhq5na%m"y.3ߞ,_HPCs˩K֠IH/.|ɡ?ud=nǣjmDP'mVa,p
+v`Ɨ <%Ifހ,W*a0?0MA9Y%3Jq"`k ԕP<J# H9,H1zW9C";hVXi., ww ]J_A)OOD IF*xQ6$=UVH"ER1 s%~\JF$d )GpKzA t9g Si@sȁ9kf`R2+C>bejZ3~IJ
+Vv)=X+U̠  1E8Hk 3?/giaxAB?6n3 W
+`dnźfXXkΚ&*]> I1RWxHEuZdBQ+3BQ` s;+5',x|cE
+D[$7a%#OfG*ln^M\@/txY/4=(=V6㳅vb
+EB ީͶX(Z_|]Kb6b 9V**, D&XixG6@n}{(_tX$\xą2J#y4  WℲ6y3wJ~" O}bJ8Rƭl EAcY{RДz*'JPfHe'@+r ?YpM+6Yv@#,[)pN*Kh잇=u d=JLȤʹ/ʨeMւt3Vn))F۔84-ŵƮJ JZ@)dG衫*1@;PFL6)&9VU`
+ejZS'5z|"+aV6F'b>lÔY4Pf4['蘦|زiThS&SaD* _D5)س㵯dO8.l>-gV|U^Jm6yҤ3vV2 6Ǿ&D 4Լԯ[b`FUWl!KlRz Y" ouwBI(dlzO $tϽ8 e$[hMJY]ӄu5WIO$'W,T Hcߓu
+^jt\X4WJ`R*_zETW
+6Rh
+Vm݇e)p+-KWVWS,2Cf<B$09TO[ AWIR e݇:-ýH*r
+Wꄲ6y89C{ytx_zUh3aX…:<fY}XãȦ !òSG8ʸ= {Nɛ7x^nH
+e݇E|BGp eY8 Nl[ax!/"tW=蔉0bGl㖨^9PfTꞂ5㖰CT
+etDbDlC^7P=ǯS bODb:MZSNn,8&g&<eU$L);F6%$h%,A2פx ȁJԮpU(KPdtOgKTK0MvrZ!MF|Rp"5Xj>z|E b/Қj[Y!50xCeNTKQpOMlmA;PMᱝS@S  =<^*FQ
+bJI 6%am8PJ6) G|ͽi2 sBH)W3[z$AVS>Rc^%jS\xwKZ11 ɜ zLsz֫AvxfaM~ht@xR DZzL5DX|]mM\cEz$f% ƝKO x+f=.oܔqD>&#1;R:𰹉Rq s; Fͅߺ=W8"BY+ON*vi6+kS$R31Yc=@VD@X@D:(&|!!d߫y k17R:హܰRq s;s`Tid\'.G.Q<^5;%"B/^bIQ9(ti+E$INUj<uc13@1r,`g$Viab,|@):*tLp}X!TyF㙐)Cb# (DҔ* Ms200FLQA>I5-ix:ѣbLLHz~>gE7RäD:!tP)FJ5*B1VcԊQg-jTEr"L
+&9KNf!Z""- 3²Bi SƞHs> 30.٘9QX|@ !DBɉP#ԊqL1[Ø& "ZO5%6XHfB2aAAԚޚHsj>s0-٘yQrXl
+Ibx M^3Č}l
+̅pA'ʌY <ItTO:RNs/O,S9O#iV
+%q,glUp.h_LꞅI'NRWb‡/Gw\+kE:O}_(CaBO|*!\PBwb;2MrߡJ>L者bvZz1=E|B![L 5W)2ga' d8ux.'x :`v[ İj5!( mB>Q&W _.b{4 Mr&\w-ct£ջ#-<`}M$gSؤפJ`=4MZ3R>%X/Xcv(ȳn/A.̲PrV&eelZ=`a'I"{XܥlW Vĵ/Qןʰ葯8!glUp.(ℿJ= D7 ROS2FܟvrȖiAgLF>sյCF Xp WBZdaw &i >jHH[̸= s}% ~bijx?QdG o0N6V  $miY+ʄJ s Ij`_ۥ'IY܌ \IpS\( l]YTK6Y(Xr
+*{+0'a&I~Qm.bl2.7Aet06Pr
+*{ 0'a&M~<\KZb 4w @TӢZbH;, 9V ၢmʪ mdWB@їK9ahQ% +pƮG3ngWB |lU(΄Jp {f"I~IR>1 ffVv.,0$ %m,ت`b:Yc_.VL8AAx)'6 Ғ
+_KuM=Gkw7FM) 9V ၢMx 0'afmk\'"MdI@
+K gƙ7iNʘ0!ɀ[NJE\0"f#'\r%2~4~GLK)ӊ웴'eLOT/4 /YѰ=pI8\t%&dw ] J!-EvBo6Ɵ X̘#*?I82q$0)"+@BDz]HaeOjU_"戥07%KEVe(lrHDv_ |)^f Jִ+llk2CI -2|[1^JUB#M) )鲻d/UxCB5E(vӝ'e̔OX/L /YѰ=p:v#A Jx%%\x Zk`fxObNM,fLls݊P3q$18W &ES{엔
+%[,g(0+\`J ϜrBBAe
+?[1 䪩b$753QGV#(
+{>x$#tf)Lyd
+iGaB9VӬ
+!U"|ƀKM P˕B;"#SBE=PrV_ŞV/Ja d_UYcn:ê [ [B>
+Q?%<%mQIb7_LOX.m^Eq:Tmvُ4+-3BJ4p-4|IT;K93ա=Yn8컒k_ ]tS<JK'Bau3[Ob8lk}
+Lh@SOXwTEx;ڴgm5xݷJ\2I3i(S$ik=%/7/
+c[s੽yHV%*iV
+[B>!
+Q?%<%5熱D5yOI-x_fK}-W>
+_^7yk">+9h>c;"MN%EutॊO\MR(p[Tg]u쓩|O}-[{"C]qo5`Rw!?SܟHTߪπ|>jggZś#B NJi7gR3@K׳ۍԣS1cTB2kg]ȹ뵕\p|<fɀFn疩ݍ'6tOŗEuE6"DC"?Q?6\Qs Uk|<F͉VA|АaA3UT94r5hV^& |>bH|İ鈙*#fV3b#XcMV$r+"~Hh˧qZ2thL=&D( lUan6xLG x#Gc\%,$??ÿr2}4]Ϩ@/sN]g@sC7*N:\V$}Q2 \-Ue#e=j6os0gi@ʵs I§̗lϲC-w"8ZvoJa4`9\?ߨ%z*|5f<UoʕC?#{iPjz.|¿BQ>sq66 ǟaun1ytq;Kj {O|6mSWk?pXZ9}T?&|'j<Ď5am
+bLG<Uڗ0|ľ> _W6_µ//sJas 5"#?Q-q{Sֽn۾4{s-/yr7ʺ'!=@};4Gm]?O!TrO>x-g{o:ǑM`?Pߦe37sQꀐpQg8j/oc{!$cKŷ)N?l}Ń}k~+v+G{m\$9?hψ -dg{jңՙ-?Q0\t׾0>?WMeܸ˼N4䑂#B(}zd/7ײWMe4~αzC[qqݚ!\ *`2Gvz
endstream
endobj
-900 0 obj
-<< /Type /Page /Contents 901 0 R /Resources 899 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+898 0 obj
+<< /Type /Page /Contents 899 0 R /Resources 897 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 866 0 R >>
endobj
-902 0 obj
-<< /D [ 900 0 R /XYZ 78.37 808.885 null ] >>
+900 0 obj
+<< /D [ 898 0 R /XYZ 78.37 808.885 null ] >>
endobj
349 0 obj
-<< /D [ 900 0 R /XYZ 79.37 639.272 null ] >>
+<< /D [ 898 0 R /XYZ 79.37 663.183 null ] >>
endobj
-899 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F25 379 0 R /F19 383 0 R /F16 386 0 R /F17 384 0 R /F69 406 0 R /F15 385 0 R /F20 380 0 R /F21 382 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
+897 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F56 388 0 R /F25 379 0 R /F19 383 0 R /F16 386 0 R /F17 384 0 R /F68 406 0 R /F15 385 0 R /F20 380 0 R /F21 382 0 R /F59 397 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-905 0 obj
+903 0 obj
<< /Filter /FlateDecode /Length 2908 >>
stream
-x\͒S*Tv=[6[*'WC/ytE֊"/>xݻk-W$&뙴5q#/_ϹΥģ߭Ǘ ^WYZߌ\!Ǐ{6<* ouݻГgހQ+Pi JPo, !w
+x\͒S*Tv=[6[*'WC/ytE֊"/>xݻqk-W$&뙴5q#/_ϹΥģ߭Ǘ ^WYZߌ\!Ǐ{6<* ouݻГgހQ+Pi JPo, !w
τ?wls;}Neq*=Y[=kgWI&%/}
<CҞ)ر}MOYSu+(~ԢB; LX=3 b/XY9C_?M非=m4g`~a
k? OA󴰛]* pps >i7=><* GFCwIapzRnt;tCr;
@@ -4228,100 +4233,95 @@ O naf83)$a^:qb$>NLpY8<ŌprV7)pݔ
}FMüY3=ak1JHoULqfy`$3LQ56jwկ*Bq
Ksv6;܃|fwxN|>rT:;q/϶cF~pQËbj0qbxGOM7?MaMrS(e2V&,=;K{u.;v3{ \.AvxȺx,³Nг~p㉿?e34FK^r9;o7?XE)=cc''%;;yS:sϬQ,nGZk39S-[FpFlAp1٢pۋ.Tg#ËGh $='I3
Hх QLYʼnL|HUn&;9G90^3+|h/) 9YR_y|Wh{ķOs{,}Ta[,=R^Rn0ctPvRnmtps:N:sս=}ΔtRW~^bD aU)`:bïn
-ءBo~'ڋotK{%]´fL͂ $嚰Wwy<o1?[j07`Eqm/8
+ءBo~'ڋotK{%]´fL͂ $嚰Wwy<o1?[j07`Eqm/8
endstream
endobj
-904 0 obj
-<< /Type /Page /Contents 905 0 R /Resources 903 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 868 0 R >>
+902 0 obj
+<< /Type /Page /Contents 903 0 R /Resources 901 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 866 0 R >>
endobj
-906 0 obj
-<< /D [ 904 0 R /XYZ 78.37 808.885 null ] >>
+904 0 obj
+<< /D [ 902 0 R /XYZ 78.37 808.885 null ] >>
endobj
353 0 obj
-<< /D [ 904 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 902 0 R /XYZ 79.37 771.024 null ] >>
endobj
-903 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
+901 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-909 0 obj
-<< /Filter /FlateDecode /Length 2210 >>
+907 0 obj
+<< /Filter /FlateDecode /Length 2209 >>
stream
-x[n$W @,tލj;L\rk(م '寋~^?~qPhpuq^hwq:u竔_oo%QW 6_7L@O)we.^x w+t%wRMJ.'A:7pBIٞ |-|/O7xMov4R\I' h^QpV8pSL"\P݉δxDШ${tRSKoYYN>JU5.
-ĕLM{2d'
-hrȒV܌غۋֺs-hIjY/|XM3eqjܳ;lHBD)5}/!["WL(m.hF7i߳шύ4KyMc!8̳1@P or;VdY z'IUqwV"8J{zB5`X,sZ/E#ț
-BVi1u}u-<`e'& [Y1<BmR3 '#!\ l16xQ<i5EJD  JaS'jiGOND) aSSёg琽6Y -p >ey@/97" fw
-
-";YCa (l, *gQK '9GU.gа\lG\<#؝$[F1ifڡ2\F—V1^;(y'c@K}@0:(qfN$%$}Jɥ0hzJBY4\^?e[t-<@yD
-m6C.e=[s߂ul/I+k h8h1SF~_ jڣped~OqeȎm=CkxDu͹LY Fic N
-Z$IKopQjړ
-ͺsg|}(͸OM; 괃hbfT7TFx,XM1o7|m?==<b<& omP&Σ/-3W8&w8R^uL|}c7~u<q[@[nq__KU7u~亖Xs^H2\4S iQ V
--a0|6|O$G!tGV[aN7#"YڼC86eHo6Ã"BԛpJymMױ`6yp _6r˅ ;^ SFC[dߏ&]+]TMV]եbrͮAZA Ԛp6c"v(]a[cklca-]h2X }]jrg7~Ifn<Ccw8v
+x[n$W @,tލj;L\rk(م '寋~^?~qtQ(4Z|?ȋ8/8C|}UJR⯷}(+M/lx&H䏻2/;VBӻ^PL&%\G ~GXlO'Êv&޷g;~)$Iݓ4(K8+[F~s_{d.DgZIv<`"hTepOý:))7,ykjVYeJ&ߌOAewU}F2“vWP@@f@]^֝koAKPK,$x!j,TCg+F:L'OA{ ^ϼb
+d `PŦ6:?<QsH;=|r"Ja@ <;쵁HhM)za9<gt@5[?1yvVU"*VP 
+[\@acIV9XϠR\J?>*%u9 MLeX=Jq=$٢52odmM6+->2؉Gф0;?'pXjѡ@#5s")!;P/P`N.AӋW͢1z,ت[o#`MRaԪ\^z`
+e6,m0;^W<<HIVhvL.1hޚ޷cM.O% ]׿_HNxEAQ2bPsn/#|+sGvmZ+#keҐ]0ڞN{]pRp&IZ-}3z V#О K%`j
+cIgK 'իqꃇ-Q^7YSœaȖӑerfvtftY-)/-P2\m͔ GR
+[%׵ĚBrXrG܇~f8@HGjy=Vh #qy} y< 1;v
+v\1=±.Cڇx#YބSk+oȿӆɃn6OuL[.%`⠧/
endstream
endobj
-908 0 obj
-<< /Type /Page /Contents 909 0 R /Resources 907 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R >>
+906 0 obj
+<< /Type /Page /Contents 907 0 R /Resources 905 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 909 0 R >>
endobj
-910 0 obj
-<< /D [ 908 0 R /XYZ 78.37 808.885 null ] >>
+908 0 obj
+<< /D [ 906 0 R /XYZ 78.37 808.885 null ] >>
endobj
357 0 obj
-<< /D [ 908 0 R /XYZ 79.37 771.024 null ] >>
+<< /D [ 906 0 R /XYZ 79.37 771.024 null ] >>
endobj
-907 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F67 393 0 R /F54 378 0 R /F55 387 0 R /F57 389 0 R >> /ProcSet [ /PDF /Text ] >>
+905 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F66 393 0 R /F54 378 0 R /F55 387 0 R /F57 389 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-914 0 obj
-<< /Filter /FlateDecode /Length 2148 >>
+912 0 obj
+<< /Filter /FlateDecode /Length 2147 >>
stream
-xZˎ+'SB3lUR@_²ݗUs?^d~ᢔ*wEyQvJHT/ޤRw)͍~_R"Oh~5vZŏN;(#!KOx'_e&c|-^ɧ%f!*̉h+ŸB⊢RA8F8a"f5k2K<KK5#w'b־ե`Y]c8:zNZ}O8
+xZˎ+'SB3lUR@_²ݗUs?^d~*wEyQvJHT/ޤRw)͍~_R"Oh~5vZŏN;(#!KOx'_e&c|-^ɧ%f!*̉h+ŸB⊢RA8F8a"f5k2K<KK5#w'b־ե`Y]c8:zNZ}O8
HLQ--fd[}`U"+d
S]"yZc⇮r㣾*gla]3Hj|'R#nkxp]G+ILT3^H*;S' uuМ%L!ʟ&y~,Ӯ4EEI?y4J(ќy 'b6+tښ?e@?Q3;V{w<'W\]ڭ͖_zLkpZH5y`iZfK3_):w3gX a\-FVEqKݫ":+z&\SGV(j6(4fz"\cI
^K:rpk(LՇQɼeqӼ:2,P4ЌY.[It+ ukOAj\p\FAc<D>KXRp^^
R@.s˜oȩ|J%̀}UWp׏'mk`<$oO` K=SbU&n)bY
ڋ+0HsYn9 @/ig'QZx5шd\zal\S&8#AuEo,hw =i0?RW`"Q%G{[A}/'Y'9UPad,=PWvZ6vza)FS,g|u83$G|94Drܦ^kOz6>l/  z\1y$>9uxн
-p)w[KXlfi4HVbY&n8eʺ+ibeliLM;-X<݌gq#wq{M}twL6mk43r Ӎ!OF*``ה8Z-bs 0†gjzz};0]08`'rCRvU(/yH Zfr7t򂻱!1Ax31W Xtmxo :>Z[_DFA}l_Uk7(zJ^
-j2<Jc?c!FLi8#첼_m."nzi_lվ`/x6=AkX8gB
-;EC~7б j'O<z7zR8e)PquU&n~P>&!zUn.Oyt7ݍ6O"GO xoDmV-olu/޴Gg3f t5fɶi;r"cс~`w+3}߈GebGɜlhM~|2jR ߷G%𷦠A8G
-|\Pk3}~׹.soNqŌjh0
-m~U]mb3vp'Ls4RU}ԑy{xsM$ of\}Y*צj֙T-tVN
- aEx-4m"l#(h('x႑\x_jI#g|bj;SX: 2ioI&=P75^_Ύ
+p)w[KXlfi4HVbY&n8eʺ+ibeliLM;-X<݌gq#wq{M}twL6mk43r Ӎ!OF*``ה8Z-bs 0†gjzz};0]08`'rC êPfAw_޷@5An wcCQc"fXc@X۲j?j<u|RlY4HC <h-&2ؾTyMn7QbWJՆ/qe,y<v3qBvcqGey7T]DӾ/ئ}}Aw_lzTמ7p2=_τ
+홋ć6ocq}xOy(o  p6c˚1R*lL*ݨ2%|L~,BO]R'o8omޟD. AI #ڬ5ZZf
+^4i1f.(Ajkޑ`mv@${EūǢf')=;$;IWf"7(ď69pK!>њJ@d&~wo|7J0B3R@woMAp֏'fvs]@22*HaAP:aJ}VOg:NNmDiؓ#̓
+NI @f͸ճؑUM3}N[b{'ŠX[nir+DCF5Q<1P.O\#[$ԒF'ĖvZ"L+u8deޒLz\x oP+k ?
endstream
endobj
-913 0 obj
-<< /Type /Page /Contents 914 0 R /Resources 912 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R >>
+911 0 obj
+<< /Type /Page /Contents 912 0 R /Resources 910 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 909 0 R >>
endobj
-915 0 obj
-<< /D [ 913 0 R /XYZ 78.37 808.885 null ] >>
+913 0 obj
+<< /D [ 911 0 R /XYZ 78.37 808.885 null ] >>
endobj
-912 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+910 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-918 0 obj
+916 0 obj
<< /Filter /FlateDecode /Length 2276 >>
stream
-x[n$)S 4AdYruGڳo& T&Uvk|(L/
+x[n$)S 4AdYruGڳo& T&Uvk|(L/
=]\&' _]eztß0$Me 7z:ˏ:YkduqqVg-pJw-fg4Yd 6w]`X6eNLLZX=3:f+k؝H%0*A'Нqb5ޓATUCY+Fd1St'M$a$>kz&5]м~.9sEd}CN"y#o>O:S"Y4qOnR,Țb8[`5I/rWb{5z鈇K9uÒ|RJeY_^Ih(fJ]BֆN,jv$f@X=rwME)B~Hwd!d}~%+'jZ^%:PhK\"p,CNo mP6gxG ѯ`IB zʋ)0$elN )[:jqQ\M>+H+ҵ$b?
 McK3M8b;wqK.'X ` ڭ }*3i _=^VfkA /I☉By(-{rE{h #n/40E
;F!6L˸!P̮]I(NtbHnku絰N5 ֪uM4:hi7"8L
JOn]6F-jm-7WwpSȦ殷<*.;$d
מb`SPqK)@?W!T|Q84!,s%4/5ǩCn7:ʫ5LyK&>˛WBp;#v'\-քYϮ} +˺BI Ѵ=*B",ؼYY3QOm"RLOtz ԑV2":&lhdh3x9&(X=<Axxk&f(Q]C<X@7yw}焥~ݭn* [kśA4IjK_h ݊d$"[)[x[p! e|a)mWۆcoiW/vy&}N‚zRFes0[S`ꞁZsBBhP^gv1k ҩ~B^ZW>=e
g\~jrB*SGz(*=o\u
-0`@ M4a͚{{iK6mL)SmFcw"5{KwA\TmmCWKEr t#Cn%gG'"Sύ-%R8U0{ > ߽ie{x$7fgZ)@uam
+0`@ M4a͚{{iK6mL)SmFcw"5{KwA\TmmCWKEr t#Cn%gG'"Sύ-%R8U0{ > ߽ie{x$7fgZ)@uam
endstream
endobj
-917 0 obj
-<< /Type /Page /Contents 918 0 R /Resources 916 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R >>
+915 0 obj
+<< /Type /Page /Contents 916 0 R /Resources 914 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 909 0 R >>
endobj
-919 0 obj
-<< /D [ 917 0 R /XYZ 78.37 808.885 null ] >>
+917 0 obj
+<< /D [ 915 0 R /XYZ 78.37 808.885 null ] >>
endobj
-916 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+914 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-922 0 obj
+920 0 obj
<< /Filter /FlateDecode /Length 2279 >>
stream
-xn:_h>+;̹oΜ*Rb$@,־2C=l)%17n.t7gV)MJ|H~I> ןL\K5vڞŏ~˝X[
+xn:_h>+;̹oΜ*Rb$@,־2C=)%17n.t7gV)MJ|H~I> ןL\K5vڞŏ~˝X[
@;Կ2tbw<3pK
<p09ZN]2IA3U;0*~U![E "o*Z]!օkuK52YP FiCTps)+lժ+3ctt&k#eO0\=D_&= G{F͉wqJF7p;;uM_?Y#RESZ9*zmHs-HX4pf6EHήM9rUx\zc"=@Nv.E 0(RaI ,718HASx ͐xN-p&pIDb$9͉-T
ߟ4Gn40ށR6S%z^ĤWºP2p.JdZ3z;H+Hخt)gh/ UAXL) u8͉H
@@ -4331,44 +4331,44 @@ xn:_h>+;̹oΜ*Rb$@,־2C=l)%17
Cg%uv#&Gj}:=<w!?u1jH! 5 z-Hƌ>$hisf[r8
,Q^ b0*Cо <yj\
H1L2z;@$ΤNM2*?vZ~
-oI{wzG]Q &" k6h(1)A^X!t?G6֒NTR{aqw[F|’NP&-ݪ
+oI{wzG]Q &" k6h(1)A^X!t?G6֒NTR{aqw[F|’NP&-ݪ
endstream
endobj
-921 0 obj
-<< /Type /Page /Contents 922 0 R /Resources 920 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R >>
+919 0 obj
+<< /Type /Page /Contents 920 0 R /Resources 918 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 909 0 R >>
endobj
-923 0 obj
-<< /D [ 921 0 R /XYZ 78.37 808.885 null ] >>
+921 0 obj
+<< /D [ 919 0 R /XYZ 78.37 808.885 null ] >>
endobj
-920 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+918 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-926 0 obj
+924 0 obj
<< /Filter /FlateDecode /Length 2265 >>
stream
-x[Ko#9q0Z^@@n/s0U8i NU"/&?_^ke/o%Q/H R]JCJ+@JGȿKkC펑ViF_ p^-}9sۿYF/^x6D$)rED҉k"^7;GMmh*%JJ6жv9V@?SﴰH-A͚]
+x[Ko#9q0Z^@@n/s0U8i NU"/&?]^ke/o%Q/H R]JCJ+@JGȿKkC펑ViF_ p^-}9sۿYF/^x6D$)rED҉k"^7;GMmh*%JJ6жv9V@?SﴰH-A͚]
0&KO9G{@cf%WFJ~"PG3'U[MV1ٿ#%ωRiWYnt6ƕ /`j5"do#;-% |' ge" z4˱%)+pVWפoxa1$#͠[k=kˍէ_I/+*[6,/E45*m׍VL)
VFʘAU] [;3jftuʊDja>\S=
Y-^]o&f0oǮ7{qg mCaol*pp-0ƒB,*t[*tTc3׮
70j\Ӟ_s+qR1z(B'@_ ]8W?/>)h(nez3`,p3)G7MCY3,I
`08zU!|kZtom=~CŒ6Ԩ~odhCUsYO)y.5a
ZDf'
-Qmό=_7clэR%M-/#d\67[5 ē_u0~\rP!;
+Qmό=_7clэR%M-/#d\67[5 ē_u0~\rP!;
endstream
endobj
-925 0 obj
-<< /Type /Page /Contents 926 0 R /Resources 924 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R >>
+923 0 obj
+<< /Type /Page /Contents 924 0 R /Resources 922 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 909 0 R >>
endobj
-927 0 obj
-<< /D [ 925 0 R /XYZ 78.37 808.885 null ] >>
+925 0 obj
+<< /D [ 923 0 R /XYZ 78.37 808.885 null ] >>
endobj
-924 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F19 383 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+922 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F19 383 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-930 0 obj
-<< /Filter /FlateDecode /Length 1440 >>
+928 0 obj
+<< /Filter /FlateDecode /Length 1441 >>
stream
-xYˎ6 WF(]Ϯ]%,9g0nFۢ×/p˻UV_/E_|T_
+xYˎ6 WF(]Ϯ]%,9g0nFۢ×/p˻ UV_/E_|T_
|s
?
6z??~gݴD:Q@Yjd3
@@ -4377,1316 +4377,1312 @@ xYˎ6 WF(]Ϯ]%,9g0nFۢ×/p˻UV_/
~Vp|g,4{1v'&bv;Yl)OY%9b(򺔣H%2h)k$jc-=5Ok^Wn KXe[*´QC +)y*9mҺ+l'?)Cڗ^j
Fy
~9QCN~Ԃ0dl-Xzyrj[=0 L'9[C=Ǩ7n\UJ~{~$JNS6X'yvfvFNGaj/AHK0qt4z
-(OvZC
-_GQdX}cApP{B˪)cEpRg dݼ|NL%!݃cM 4ga=(N
+(OvZC
+ĩGTydȒci)XVhUFӜP9 >Q7gIPDZ=N])"۱f[ZN0~l9вL dD2'Hҗ^$ό"EO4|xb"ȰƂᘡUSƊ yk@0KBlC&h'=]hr)JzWOK3Qz
endstream
endobj
+927 0 obj
+<< /Type /Page /Contents 928 0 R /Resources 926 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 909 0 R >>
+endobj
929 0 obj
-<< /Type /Page /Contents 930 0 R /Resources 928 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R >>
+<< /D [ 927 0 R /XYZ 78.37 808.885 null ] >>
endobj
-931 0 obj
-<< /D [ 929 0 R /XYZ 78.37 808.885 null ] >>
+926 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F15 385 0 R /F56 388 0 R /F57 389 0 R /F64 391 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-928 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F15 385 0 R /F56 388 0 R /F57 389 0 R /F65 391 0 R >> /ProcSet [ /PDF /Text ] >>
+1047 0 obj
+<< /Filter /FlateDecode /Length 3256 >>
+stream
+x\K# ϯXDR/`@{z &RRIWUݞnHȏeyMMv~wS$ ~7Mݬho!%)R"Hi?Y1)}0TRh&w3)S3LxCot`PSIBHX3Q?H=~8#0gʏJ
+ 1("VB+(2&S'onz~b؂rZ
+fsmNW
+ck~=`|nghQDz_GFjpGCibkqO/svpn\xcq4u,^3(wo1uΫARC50HrϤ",Bnb[-V9KAʵ"i=Zemi>rV8.p:cl !wl&rhLj)e^/`tViYΖ4$1]W"8Ja.5^+9D}Ǿ8N:3֜./a F=2 BE]m(C n\xw
+gUfX^I#,>o8.\ В80rD+(Ngk*= kK47ʐQYfu 3R|n#T #ERZD`bt&}:jk.:;Z0$IDg*FDfsi%O1YBiTՑl0(AT{[8tlfu줃\ jTZmCjsaݕY1_؈)SNŋ|-| >QGK{JG*u+iŃ \A-Թ$ ozULphesw7Po|Cuo} =(LcvT:keec?fee_hwE
+.Oh;;i/u0T7#:J\js;!5 JQa
+اRˬav.ac3Ӄ|ۤRlI ΜEȨ-`D{}oSMCRaOyA&b-R3^
+d
+*!A qA}/VeJwY;C! gZ`BUGVq`WZ)s'Aouv87wt
+GwgE]7 W~Oo{%Q/-vWL;:0T$Kߕ@!# < cFJ!\>{]_d(8g~& f:{._y{0W=rnǎ5ext^aM%U^N-(j~)}OyXm&#n\QsLlNztmZ
+endstream
+endobj
+1046 0 obj
+<< /Type /Page /Contents 1047 0 R /Resources 1045 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 909 0 R /Annots 1049 0 R >>
endobj
1049 0 obj
-<< /Filter /FlateDecode /Length 3268 >>
-stream
-x\͎$)S I*:WsV{=_@@!"Ȫ=6?ߛd~pS(4Z7Eoț 9-)Q߇R -)0o6X j9Ko9?&H(3#% U$J,jtgo#[zDudW6A' -jUYFAxb\Q$R)U 2D61u=Y$Gc}O|t
-
-mGH2-|6)yMI?ľiiڟ,#C9Zš}'v T/WܰzG,(c;μvi-K;sD$0 ZlXF0f䘬
--PmJD+m2X{~+?]_c?8$qnSB'232x/{(f6gpEF`Ǚ-)> z?iߙUJ{.datnr8Vwqo;FzGysg9-n[_yP> X&*ҊI-/Uw2 TRUͨ?
->AHg81Lړ*ZX2rGՙ`EK^hԜ'XLl~ز|١Zw^{*1Ǚ:3-.I@ t =I{Ӂ*}jOZxv˽ч;Ct!,4AnzL[29J^XWC͸1!q,6Dg#ug>Y#P#;1:d?;1-!(C^G` @1B[i
-~%%%%N5xN]N{4 o1̋@КQDBj
->Y%3?Ys㥎ǹXճx
-Za$_Q.`VYϖ-Cz**\ەyU!8-ƵR㭒I~vzg޹/Q޽u6f_el?/68s/P袭ϾϪj{[N?o8*\ В(KGKj˿WϨ2pξD/pCJz:eeVƒ:,6*A0,xJ0<,շn8QOw1 L':N m 'BXҀ xO&nrd#4,:q "xllfu줃 ZT[m}W'V]󵍍y6: CY-NmnZ
-5,%*-<=mF4-˔SNqi*JR \f!s;FYNs琬*2=Tqs)ī2kKXX %h 6DF͜ED[ " ӜLHZf2
-M/r7^ځ}g4>f0:1Hӎ
-ƪi0[PK:!1 3
-> kw RT(s>>5
-n&](i>kiLf^5pyR Ppѭg6^DI7"t6;[|0"mvfE(д&&᫐ H[~[\έw:DL +[*+cà"B#ͦѝ =% `Iq ֞˕` kB0Sc18hT Jʼnrc^G=csD+ʅ bq|]k.RRYzBk b
-V4S /Qe<J+ [ؿ
-yT됸_qO[(·T3|ehun<vP-'٥slюھ )(싺nn8JxzQP;+Nw<w
-endstream
+[ 930 0 R 931 0 R 932 0 R 933 0 R 934 0 R 935 0 R 936 0 R 937 0 R 938 0 R 939 0 R 940 0 R 941 0 R 942 0 R 943 0 R 944 0 R 945 0 R 946 0 R 947 0 R 948 0 R 949 0 R 950 0 R 951 0 R 952 0 R 953 0 R 954 0 R 955 0 R 956 0 R 957 0 R 958 0 R 959 0 R 960 0 R 961 0 R 962 0 R 963 0 R 964 0 R 965 0 R 966 0 R 967 0 R 968 0 R 969 0 R 970 0 R 971 0 R 972 0 R 973 0 R 974 0 R 975 0 R 976 0 R 977 0 R 978 0 R 979 0 R 980 0 R 981 0 R 982 0 R 983 0 R 984 0 R 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R 990 0 R 991 0 R 992 0 R 993 0 R 994 0 R 995 0 R 996 0 R 997 0 R 998 0 R 999 0 R 1000 0 R 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R 1006 0 R 1007 0 R 1008 0 R 1009 0 R 1010 0 R 1011 0 R 1012 0 R 1013 0 R 1014 0 R 1015 0 R 1016 0 R 1017 0 R 1018 0 R 1019 0 R 1020 0 R 1021 0 R 1022 0 R 1023 0 R 1024 0 R 1025 0 R 1026 0 R 1027 0 R 1028 0 R 1029 0 R 1030 0 R 1031 0 R 1032 0 R 1033 0 R 1034 0 R 1035 0 R 1036 0 R 1037 0 R 1038 0 R 1039 0 R 1040 0 R 1041 0 R ]
endobj
-1048 0 obj
-<< /Type /Page /Contents 1049 0 R /Resources 1047 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R /Annots 1051 0 R >>
+930 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 134.055 681.88 141.029 692.928 ]/A << /S /GoTo /D (page.9) >> >>
endobj
-1051 0 obj
-[ 932 0 R 933 0 R 934 0 R 935 0 R 936 0 R 937 0 R 938 0 R 939 0 R 940 0 R 941 0 R 942 0 R 943 0 R 944 0 R 945 0 R 946 0 R 947 0 R 948 0 R 949 0 R 950 0 R 951 0 R 952 0 R 953 0 R 954 0 R 955 0 R 956 0 R 957 0 R 958 0 R 959 0 R 960 0 R 961 0 R 962 0 R 963 0 R 964 0 R 965 0 R 966 0 R 967 0 R 968 0 R 969 0 R 970 0 R 971 0 R 972 0 R 973 0 R 974 0 R 975 0 R 976 0 R 977 0 R 978 0 R 979 0 R 980 0 R 981 0 R 982 0 R 983 0 R 984 0 R 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R 990 0 R 991 0 R 992 0 R 993 0 R 994 0 R 995 0 R 996 0 R 997 0 R 998 0 R 999 0 R 1000 0 R 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R 1006 0 R 1007 0 R 1008 0 R 1009 0 R 1010 0 R 1011 0 R 1012 0 R 1013 0 R 1014 0 R 1015 0 R 1016 0 R 1017 0 R 1018 0 R 1019 0 R 1020 0 R 1021 0 R 1022 0 R 1023 0 R 1024 0 R 1025 0 R 1026 0 R 1027 0 R 1028 0 R 1029 0 R 1030 0 R 1031 0 R 1032 0 R 1033 0 R 1034 0 R 1035 0 R 1036 0 R 1037 0 R 1038 0 R 1039 0 R 1040 0 R 1041 0 R 1042 0 R 1043 0 R ]
+931 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.716 648.583 180.69 659.422 ]/A << /S /GoTo /D (page.9) >> >>
endobj
932 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 134.055 681.88 146.01 692.928 ]/A << /S /GoTo /D (page.10) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 268.68 636.07 280.635 648.025 ]/A << /S /GoTo /D (page.18) >> >>
endobj
933 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.716 648.583 185.672 659.422 ]/A << /S /GoTo /D (page.10) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 624.334 174.872 635.512 ]/A << /S /GoTo /D (page.11) >> >>
endobj
934 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 268.68 636.07 280.635 648.025 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 612.379 174.872 623.557 ]/A << /S /GoTo /D (page.11) >> >>
endobj
935 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 624.334 174.872 635.512 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.268 588.249 241.442 600.204 ]/A << /S /GoTo /D (page.64) >> >>
endobj
936 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 612.379 174.872 623.557 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.384 576.294 242.339 588.249 ]/A << /S /GoTo /D (page.25) >> >>
endobj
937 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.268 588.249 241.442 600.204 ]/A << /S /GoTo /D (page.65) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 564.907 174.872 575.736 ]/A << /S /GoTo /D (page.48) >> >>
endobj
938 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.384 576.294 242.339 588.249 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.972 531.052 237.946 543.007 ]/A << /S /GoTo /D (page.3) >> >>
endobj
939 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.917 564.907 174.872 575.736 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.147 519.665 180.102 530.494 ]/A << /S /GoTo /D (page.48) >> >>
endobj
940 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.972 531.052 237.946 543.007 ]/A << /S /GoTo /D (page.3) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.147 507.71 180.102 518.539 ]/A << /S /GoTo /D (page.48) >> >>
endobj
941 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.147 519.665 180.102 530.494 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.678 495.187 174.633 507.142 ]/A << /S /GoTo /D (page.34) >> >>
endobj
942 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.147 507.71 180.102 518.539 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 483.799 122.817 494.629 ]/A << /S /GoTo /D (page.4) >> >>
endobj
943 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 162.678 495.187 174.633 507.142 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 194.987 471.844 201.96 482.674 ]/A << /S /GoTo /D (page.4) >> >>
endobj
944 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 483.799 122.817 494.629 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.949 471.844 216.904 482.674 ]/A << /S /GoTo /D (page.10) >> >>
endobj
945 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 194.987 471.844 201.96 482.674 ]/A << /S /GoTo /D (page.4) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.041 447.366 202.997 459.321 ]/A << /S /GoTo /D (page.24) >> >>
endobj
946 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.949 471.844 216.904 482.674 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.739 435.411 179.694 447.366 ]/A << /S /GoTo /D (page.11) >> >>
endobj
947 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.041 447.366 202.997 459.321 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 188.74 423.456 195.714 435.411 ]/A << /S /GoTo /D (page.5) >> >>
endobj
948 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.739 435.411 179.694 447.366 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.481 411.5 232.436 423.456 ]/A << /S /GoTo /D (page.43) >> >>
endobj
949 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 188.74 423.456 195.714 435.411 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 206.414 378.771 218.369 389.671 ]/A << /S /GoTo /D (page.41) >> >>
endobj
950 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.481 411.5 232.436 423.456 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 224.964 366.258 236.919 378.214 ]/A << /S /GoTo /D (page.41) >> >>
endobj
951 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 206.414 378.771 218.369 389.671 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 144.795 354.861 156.75 365.701 ]/A << /S /GoTo /D (page.41) >> >>
endobj
952 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 224.964 366.258 236.919 378.214 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.613 342.348 242.568 354.303 ]/A << /S /GoTo /D (page.14) >> >>
endobj
953 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 144.795 354.861 156.75 365.701 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 330.961 127.799 341.79 ]/A << /S /GoTo /D (page.29) >> >>
endobj
954 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.613 342.348 242.568 354.303 ]/A << /S /GoTo /D (page.15) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 319.006 159.181 329.835 ]/A << /S /GoTo /D (page.16) >> >>
endobj
955 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 330.961 127.799 341.79 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.406 307.04 191.38 317.88 ]/A << /S /GoTo /D (page.2) >> >>
endobj
956 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 319.006 159.181 329.835 ]/A << /S /GoTo /D (page.17) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 195.475 307.04 207.43 317.88 ]/A << /S /GoTo /D (page.24) >> >>
endobj
957 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 184.406 307.04 191.38 317.88 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.183 295.085 160.157 305.925 ]/A << /S /GoTo /D (page.2) >> >>
endobj
958 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 195.475 307.04 207.43 317.88 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.252 295.085 176.207 305.925 ]/A << /S /GoTo /D (page.24) >> >>
endobj
959 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.183 295.085 160.157 305.925 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.972 283.13 173.946 293.969 ]/A << /S /GoTo /D (page.2) >> >>
endobj
960 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.252 295.085 176.207 305.925 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.04 283.13 189.995 293.969 ]/A << /S /GoTo /D (page.24) >> >>
endobj
961 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.972 283.13 173.946 293.969 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.984 259.23 204.939 270.059 ]/A << /S /GoTo /D (page.22) >> >>
endobj
962 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.04 283.13 189.995 293.969 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 218.648 247.275 230.603 258.214 ]/A << /S /GoTo /D (page.18) >> >>
endobj
963 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.984 259.23 204.939 270.059 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.055 234.752 173.029 246.707 ]/A << /S /GoTo /D (page.2) >> >>
endobj
964 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 218.648 247.275 230.603 258.214 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.871 210.841 245.826 222.796 ]/A << /S /GoTo /D (page.18) >> >>
endobj
965 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 166.055 234.752 173.029 246.707 ]/A << /S /GoTo /D (page.2) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.921 210.841 262.095 222.796 ]/A << /S /GoTo /D (page.70) >> >>
endobj
966 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.871 210.841 245.826 222.796 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 201.761 198.886 213.716 210.841 ]/A << /S /GoTo /D (page.11) >> >>
endobj
967 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.921 210.841 262.095 222.796 ]/A << /S /GoTo /D (page.71) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 196.81 186.931 208.765 198.886 ]/A << /S /GoTo /D (page.37) >> >>
endobj
968 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 201.761 198.886 213.716 210.841 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 127.659 175.544 139.614 186.483 ]/A << /S /GoTo /D (page.35) >> >>
endobj
969 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 196.81 186.931 208.765 198.886 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.457 151.514 217.413 162.572 ]/A << /S /GoTo /D (page.18) >> >>
endobj
970 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 127.659 175.544 139.614 186.483 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 180.87 139.559 192.825 150.617 ]/A << /S /GoTo /D (page.43) >> >>
endobj
971 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.457 151.514 217.413 162.572 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 155.415 127.723 167.37 138.662 ]/A << /S /GoTo /D (page.28) >> >>
endobj
972 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 180.87 139.559 192.825 150.617 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 159.041 115.758 170.997 126.707 ]/A << /S /GoTo /D (page.28) >> >>
endobj
973 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 155.415 127.723 167.37 138.662 ]/A << /S /GoTo /D (page.29) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 175.091 115.758 187.266 126.707 ]/A << /S /GoTo /D (page.47) >> >>
endobj
974 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 159.041 115.758 170.997 126.707 ]/A << /S /GoTo /D (page.29) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.36 115.758 203.535 126.707 ]/A << /S /GoTo /D (page.62) >> >>
endobj
975 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 175.091 115.758 187.266 126.707 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.721 103.803 165.677 114.752 ]/A << /S /GoTo /D (page.28) >> >>
endobj
976 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.36 115.758 203.535 126.707 ]/A << /S /GoTo /D (page.63) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 169.771 103.803 181.946 114.752 ]/A << /S /GoTo /D (page.47) >> >>
endobj
977 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.721 103.803 165.677 114.752 ]/A << /S /GoTo /D (page.29) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 186.04 103.803 198.215 114.752 ]/A << /S /GoTo /D (page.61) >> >>
endobj
978 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 169.771 103.803 181.946 114.752 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 202.847 103.803 215.021 114.752 ]/A << /S /GoTo /D (page.62) >> >>
endobj
979 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 186.04 103.803 198.215 114.752 ]/A << /S /GoTo /D (page.62) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 157.348 91.847 169.303 102.796 ]/A << /S /GoTo /D (page.28) >> >>
endobj
980 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 202.847 103.803 215.021 114.752 ]/A << /S /GoTo /D (page.63) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.398 91.847 185.572 102.796 ]/A << /S /GoTo /D (page.47) >> >>
endobj
981 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 157.348 91.847 169.303 102.796 ]/A << /S /GoTo /D (page.29) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.765 79.902 148.72 90.732 ]/A << /S /GoTo /D (page.35) >> >>
endobj
982 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 173.398 91.847 185.572 102.796 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 151.709 79.902 163.664 90.732 ]/A << /S /GoTo /D (page.40) >> >>
endobj
983 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.765 79.902 148.72 90.732 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.759 79.902 179.933 90.732 ]/A << /S /GoTo /D (page.69) >> >>
endobj
984 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 151.709 79.902 163.664 90.732 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 176.456 67.598 188.411 78.776 ]/A << /S /GoTo /D (page.18) >> >>
endobj
985 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.759 79.902 179.933 90.732 ]/A << /S /GoTo /D (page.70) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.506 67.598 204.68 78.776 ]/A << /S /GoTo /D (page.68) >> >>
endobj
986 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 176.456 67.598 188.411 78.776 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 207.779 67.598 219.953 78.776 ]/A << /S /GoTo /D (page.70) >> >>
endobj
987 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.506 67.598 204.68 78.776 ]/A << /S /GoTo /D (page.69) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 471.167 681.88 483.122 692.819 ]/A << /S /GoTo /D (page.49) >> >>
endobj
988 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 207.779 67.598 219.953 78.776 ]/A << /S /GoTo /D (page.71) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 430.141 669.805 442.096 680.864 ]/A << /S /GoTo /D (page.33) >> >>
endobj
989 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 471.167 681.88 483.122 692.819 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.348 657.85 395.321 668.908 ]/A << /S /GoTo /D (page.5) >> >>
endobj
990 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 430.141 669.805 442.096 680.864 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 489.498 645.895 501.453 656.953 ]/A << /S /GoTo /D (page.39) >> >>
endobj
991 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.348 657.85 395.321 668.908 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 404.039 633.71 415.994 644.998 ]/A << /S /GoTo /D (page.24) >> >>
endobj
992 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 489.498 645.895 501.453 656.953 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 416.233 621.984 428.188 633.043 ]/A << /S /GoTo /D (page.15) >> >>
endobj
993 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 404.039 633.71 415.994 644.998 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 357.055 610.149 369.01 620.978 ]/A << /S /GoTo /D (page.22) >> >>
endobj
994 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 416.233 621.984 428.188 633.043 ]/A << /S /GoTo /D (page.16) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 373.105 610.149 385.279 620.978 ]/A << /S /GoTo /D (page.67) >> >>
endobj
995 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 357.055 610.149 369.01 620.978 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.114 597.626 396.069 609.581 ]/A << /S /GoTo /D (page.17) >> >>
endobj
996 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 373.105 610.149 385.279 620.978 ]/A << /S /GoTo /D (page.68) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 374.45 574.283 386.405 585.222 ]/A << /S /GoTo /D (page.17) >> >>
endobj
997 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.114 597.626 396.069 609.581 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 467.262 562.328 479.217 573.267 ]/A << /S /GoTo /D (page.49) >> >>
endobj
998 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 374.45 574.283 386.405 585.222 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 376.701 550.373 388.656 561.312 ]/A << /S /GoTo /D (page.11) >> >>
endobj
999 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 467.262 562.328 479.217 573.267 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 488.711 537.85 500.666 549.805 ]/A << /S /GoTo /D (page.20) >> >>
endobj
1000 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 376.701 550.373 388.656 561.312 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 341.473 504.475 353.429 513.103 ]/A << /S /GoTo /D (page.22) >> >>
endobj
1001 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 488.711 537.85 500.666 549.805 ]/A << /S /GoTo /D (page.21) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.897 490.597 453.852 501.536 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1002 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 341.473 504.256 353.429 513.103 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.947 490.597 470.121 501.536 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1003 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 441.897 490.597 453.852 501.536 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 490.345 478.074 502.3 490.029 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1004 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.947 490.597 470.121 501.536 ]/A << /S /GoTo /D (page.59) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 371.421 466.687 383.376 477.516 ]/A << /S /GoTo /D (page.24) >> >>
endobj
1005 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 490.345 478.074 502.3 490.029 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 449.439 454.164 461.394 466.119 ]/A << /S /GoTo /D (page.14) >> >>
endobj
1006 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 371.421 466.687 383.376 477.516 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 447.048 442.209 459.003 454.164 ]/A << /S /GoTo /D (page.13) >> >>
endobj
1007 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 449.439 454.164 461.394 466.119 ]/A << /S /GoTo /D (page.15) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 463.097 442.209 475.272 454.164 ]/A << /S /GoTo /D (page.21) >> >>
endobj
1008 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 447.048 442.209 459.003 454.164 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 374.161 418.866 381.135 429.805 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1009 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 463.097 442.209 475.272 454.164 ]/A << /S /GoTo /D (page.22) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 382.779 406.911 394.734 417.85 ]/A << /S /GoTo /D (page.45) >> >>
endobj
1010 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 374.161 418.866 381.135 429.805 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.206 394.388 422.161 406.343 ]/A << /S /GoTo /D (page.13) >> >>
endobj
1011 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 382.779 406.911 394.734 417.85 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 426.255 394.388 438.43 406.343 ]/A << /S /GoTo /D (page.70) >> >>
endobj
1012 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 410.206 394.388 422.161 406.343 ]/A << /S /GoTo /D (page.14) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 483.747 382.433 495.703 394.388 ]/A << /S /GoTo /D (page.53) >> >>
endobj
1013 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 426.255 394.388 438.43 406.343 ]/A << /S /GoTo /D (page.71) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 501.669 382.433 513.843 394.388 ]/A << /S /GoTo /D (page.68) >> >>
endobj
1014 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 483.747 382.433 495.703 394.388 ]/A << /S /GoTo /D (page.54) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 341.473 372.749 353.648 381.596 ]/A << /S /GoTo /D (page.69) >> >>
endobj
1015 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 501.669 382.433 513.843 394.388 ]/A << /S /GoTo /D (page.69) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.511 359.09 399.466 369.92 ]/A << /S /GoTo /D (page.52) >> >>
endobj
1016 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 341.473 372.749 353.648 381.596 ]/A << /S /GoTo /D (page.70) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 386.126 347.006 398.081 357.965 ]/A << /S /GoTo /D (page.52) >> >>
endobj
1017 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 387.511 359.09 399.466 369.92 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.934 335.18 411.889 346.009 ]/A << /S /GoTo /D (page.52) >> >>
endobj
1018 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 386.126 347.006 398.081 357.965 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.984 335.18 428.158 346.009 ]/A << /S /GoTo /D (page.68) >> >>
endobj
1019 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 399.934 335.18 411.889 346.009 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.334 322.657 473.508 334.612 ]/A << /S /GoTo /D (page.55) >> >>
endobj
1020 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 415.984 335.18 428.158 346.009 ]/A << /S /GoTo /D (page.69) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 357.573 311.27 369.528 322.099 ]/A << /S /GoTo /D (page.14) >> >>
endobj
1021 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.334 322.657 473.508 334.612 ]/A << /S /GoTo /D (page.56) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.517 311.27 384.472 322.099 ]/A << /S /GoTo /D (page.17) >> >>
endobj
1022 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 357.573 311.27 369.528 322.099 ]/A << /S /GoTo /D (page.15) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 277.397 352.542 288.226 ]/A << /S /GoTo /D (page.29) >> >>
endobj
1023 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.517 311.27 384.472 322.099 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.637 277.397 368.592 288.226 ]/A << /S /GoTo /D (page.56) >> >>
endobj
1024 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 277.397 352.542 288.226 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.686 277.397 384.861 288.226 ]/A << /S /GoTo /D (page.61) >> >>
endobj
1025 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.637 277.397 368.592 288.226 ]/A << /S /GoTo /D (page.57) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 494.141 264.874 506.096 276.829 ]/A << /S /GoTo /D (page.21) >> >>
endobj
1026 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 372.686 277.397 384.861 288.226 ]/A << /S /GoTo /D (page.62) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 450.046 240.963 462.001 252.918 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1027 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 494.141 264.874 506.096 276.829 ]/A << /S /GoTo /D (page.22) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 442.823 229.008 454.779 240.963 ]/A << /S /GoTo /D (page.37) >> >>
endobj
1028 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 450.046 240.963 462.001 252.918 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 389.354 217.053 401.309 229.008 ]/A << /S /GoTo /D (page.64) >> >>
endobj
1029 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 442.823 229.008 454.779 240.963 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 426.036 205.656 437.991 216.495 ]/A << /S /GoTo /D (page.34) >> >>
endobj
1030 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 389.354 217.053 401.309 229.008 ]/A << /S /GoTo /D (page.65) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 468.925 193.143 480.881 205.098 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1031 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 426.036 205.656 437.991 216.495 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 349.553 181.397 361.508 192.585 ]/A << /S /GoTo /D (page.14) >> >>
endobj
1032 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 468.925 193.143 480.881 205.098 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 369.06 169.8 381.015 180.63 ]/A << /S /GoTo /D (page.29) >> >>
endobj
1033 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 349.553 181.397 361.508 192.585 ]/A << /S /GoTo /D (page.15) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.004 169.8 395.959 180.63 ]/A << /S /GoTo /D (page.34) >> >>
endobj
1034 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 369.06 169.8 381.015 180.63 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 400.054 169.8 412.228 180.63 ]/A << /S /GoTo /D (page.61) >> >>
endobj
1035 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.004 169.8 395.959 180.63 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 435.61 157.277 447.566 169.232 ]/A << /S /GoTo /D (page.16) >> >>
endobj
1036 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 400.054 169.8 412.228 180.63 ]/A << /S /GoTo /D (page.62) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 400.831 145.322 407.805 157.277 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1037 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 435.61 157.277 447.566 169.232 ]/A << /S /GoTo /D (page.17) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 411.899 145.322 424.074 157.277 ]/A << /S /GoTo /D (page.67) >> >>
endobj
1038 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 400.831 145.322 407.805 157.277 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 448.452 111.449 460.407 123.404 ]/A << /S /GoTo /D (page.40) >> >>
endobj
1039 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 411.899 145.322 424.074 157.277 ]/A << /S /GoTo /D (page.68) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 487.456 99.494 499.411 111.449 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1040 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 448.452 111.449 460.407 123.404 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.201 75.583 426.156 87.539 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1041 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 487.456 99.494 499.411 111.449 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 430.25 75.583 442.425 87.539 ]/A << /S /GoTo /D (page.60) >> >>
endobj
-1042 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.201 75.583 426.156 87.539 ]/A << /S /GoTo /D (page.42) >> >>
+1048 0 obj
+<< /D [ 1046 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1043 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 430.25 75.583 442.425 87.539 ]/A << /S /GoTo /D (page.61) >> >>
+361 0 obj
+<< /D [ 1046 0 R /XYZ 79.37 706.717 null ] >>
endobj
-1050 0 obj
-<< /D [ 1048 0 R /XYZ 78.37 808.885 null ] >>
+1045 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F65 392 0 R /F15 385 0 R /F56 388 0 R /F57 389 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-361 0 obj
-<< /D [ 1048 0 R /XYZ 79.37 706.717 null ] >>
+1151 0 obj
+<< /Filter /FlateDecode /Length 3225 >>
+stream
+x\I W Ue*gR&\Av758{,i K}㷿}׷?B<F7YϔY#7?ɹM:y3>}^sc Y˷J)|GjT7o |ǦW~ﱽOBGi.{
+?5;ʦL6sP f}V3絲/_(+MY&twj|-73eO޷Idm zƅI'3i8P|C%;11L{ҁphGRr%_Q0rbt>Sv,w{!7rFm|?f9. l[1 ~ke d}lZwHü`-Rn'*+[S(%nrKFkڶFϔZlcl<^k^TO㬠gHݫLCʡYi(`9T&.u4w9 ZΔ*<^z5nQ&8V'pf=BmjqEAj|L{
+]"V1kTa(Ir!<qܵDğ*Yk
+GVEtᝥV-
+tx-J-@Ի[nLx> @"6şD z
+ـ|xsf8wFCuMj˵:NjZ%㘑
+zbKR{- ,Nvr\ۓAn 3ˆpo:~hZI~ gA%_s>1g%8"̂le϶oݛ+*<&mGN=
+RDjBM"|sƗݦ/Iw|m] y_W]@2ԝ?i
+skU%9:pbEb@O?F) @R=#we!2qRV Yɴ?б7Cu~)t0\pY-Vゖ5tv8oY`4K_ [䀕.I 1
+"?޾@*GNtR;S -s M0,s/D%LZm'`?P!DZ^I7plD@TÈA
+s&lFjJ}} 5?8ȕM^7B\\1B
+Eq9nUn͛ xe8W^;Xu~KV3z8<jlc{s,ދ<K%~s'tz0岠p
+B/<FbųmkGEnBۣ,$Me u\if<j"p/`|05cm0Tq0c.|årCE+ @X`. wUg{)GL#D\XM
+'8;7 i2/NoU' `&vlfaX9`x1j9״m`|vnH!
+ӮA)_֙;ԌOvUqsDʎ3s CO{wQU00j/U-Yos掬,aLn,5%"t220F99Y'.^yiK%w-6ד^
+`EY~X{.Y0Y+a-o(R[qG
+sƙE;jؼU釔y}łؽH߹`! TL- @yd_:k=5e!gSFfB|t0>ZBݒ\ӹЋ
+xjS~ޣA{ʡydóP@Svu% ^SǸqO7#U讘Ҩ;5sŽxn#?
+VȇPf-kyZ05 {;kj\.zۊGw(C'@;IV
+-eY 5pnS__FR|
+endstream
endobj
-1047 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F66 392 0 R /F15 385 0 R /F56 388 0 R /F57 389 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+1150 0 obj
+<< /Type /Page /Contents 1151 0 R /Resources 1149 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 909 0 R /Annots 1153 0 R >>
endobj
1153 0 obj
-<< /Filter /FlateDecode /Length 3223 >>
-stream
-x\I W Ue*gR&\Av758{,i K}㷿}׷?B<F7YϔY#7?ɹM:y3>}^sc Y˷J)|GjT7o |ǦW~ﱽOBGi.{o;ʦL6sP eV3絲/_(+MY&twj|-73eO޷IdmOq!5^ϸ0pz& :݂oxd'fv8 72p"yO:U?HJΜ+2{I8MzL޽ޖJV쥿>; &d<NE5-c ?fo ߱MKறiE@%xs+cJD<Mnh@V虲B땍ẁBGk-ˑi<sTѽ*4T[
-x~a ƑCo^Gs k3
-ϴ0kh[fy-#! YEPkfxQ0S^BȣUUxyJ\Owm Q?糊bd0<@7pBz{1ĦPy Pz8 BEOMC}`2x0WMeKSGL$,qtUK)n"_LժRj7/<a0Y’!R{:%C-vn7r< j}s W=l@trx`t9C3_cq;!&\Mp'>e-DHyqȁG
-i֗!&& !%R_ 4p` ;
-V/a 6oW1㢡fZ>"XdKYG =ݭ荦{S6c-
-s&lFjJ}L
-k tcq+n-B]CbkJxq.q0Tc&יc^+!kIԥgvw7d7iREvXˌVl 3f8YP3+Cft''AB\@%w[`+\z12EY#^]ra
-I^o0Ѯ PY4@kƠI]
-MU>5A \]f7 іB٬Q L5*
-Uf6GcHg3- nr,:Kѧ
-|sA&EgxZ)mS+814kOۣR?M$N9W^vrbjXE(*\Tֈx2GKsk+t:%=Dni5u1Ͻboh@KE|Xk:e`=us~,:d1:xBePH̰x v^^]q{6߳I #͌rZM
-Uj//B
-endstream
+[ 1042 0 R 1043 0 R 1044 0 R 1050 0 R 1051 0 R 1052 0 R 1053 0 R 1054 0 R 1055 0 R 1056 0 R 1057 0 R 1058 0 R 1059 0 R 1060 0 R 1061 0 R 1062 0 R 1063 0 R 1064 0 R 1065 0 R 1066 0 R 1067 0 R 1068 0 R 1069 0 R 1070 0 R 1071 0 R 1072 0 R 1073 0 R 1074 0 R 1075 0 R 1076 0 R 1077 0 R 1078 0 R 1079 0 R 1080 0 R 1081 0 R 1082 0 R 1083 0 R 1084 0 R 1085 0 R 1086 0 R 1087 0 R 1088 0 R 1089 0 R 1090 0 R 1091 0 R 1092 0 R 1093 0 R 1094 0 R 1095 0 R 1096 0 R 1097 0 R 1098 0 R 1099 0 R 1100 0 R 1101 0 R 1102 0 R 1103 0 R 1104 0 R 1105 0 R 1106 0 R 1107 0 R 1108 0 R 1109 0 R 1110 0 R 1111 0 R 1112 0 R 1113 0 R 1114 0 R 1115 0 R 1116 0 R 1117 0 R 1118 0 R 1119 0 R 1120 0 R 1121 0 R 1122 0 R 1123 0 R 1124 0 R 1125 0 R 1126 0 R 1127 0 R 1128 0 R 1129 0 R 1130 0 R 1131 0 R 1132 0 R 1133 0 R 1134 0 R 1135 0 R 1136 0 R 1137 0 R 1138 0 R 1139 0 R 1140 0 R 1141 0 R 1142 0 R 1143 0 R 1144 0 R ]
endobj
-1152 0 obj
-<< /Type /Page /Contents 1153 0 R /Resources 1151 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R /Annots 1155 0 R >>
+1042 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 236.81 757.574 248.765 769.529 ]/A << /S /GoTo /D (page.43) >> >>
endobj
-1155 0 obj
-[ 1044 0 R 1045 0 R 1046 0 R 1052 0 R 1053 0 R 1054 0 R 1055 0 R 1056 0 R 1057 0 R 1058 0 R 1059 0 R 1060 0 R 1061 0 R 1062 0 R 1063 0 R 1064 0 R 1065 0 R 1066 0 R 1067 0 R 1068 0 R 1069 0 R 1070 0 R 1071 0 R 1072 0 R 1073 0 R 1074 0 R 1075 0 R 1076 0 R 1077 0 R 1078 0 R 1079 0 R 1080 0 R 1081 0 R 1082 0 R 1083 0 R 1084 0 R 1085 0 R 1086 0 R 1087 0 R 1088 0 R 1089 0 R 1090 0 R 1091 0 R 1092 0 R 1093 0 R 1094 0 R 1095 0 R 1096 0 R 1097 0 R 1098 0 R 1099 0 R 1100 0 R 1101 0 R 1102 0 R 1103 0 R 1104 0 R 1105 0 R 1106 0 R 1107 0 R 1108 0 R 1109 0 R 1110 0 R 1111 0 R 1112 0 R 1113 0 R 1114 0 R 1115 0 R 1116 0 R 1117 0 R 1118 0 R 1119 0 R 1120 0 R 1121 0 R 1122 0 R 1123 0 R 1124 0 R 1125 0 R 1126 0 R 1127 0 R 1128 0 R 1129 0 R 1130 0 R 1131 0 R 1132 0 R 1133 0 R 1134 0 R 1135 0 R 1136 0 R 1137 0 R 1138 0 R 1139 0 R 1140 0 R 1141 0 R 1142 0 R 1143 0 R 1144 0 R 1145 0 R 1146 0 R ]
+1043 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 252.86 757.574 265.034 769.529 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1044 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 236.81 757.574 248.765 769.529 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 259.535 745.619 271.49 757.574 ]/A << /S /GoTo /D (page.43) >> >>
endobj
-1045 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 252.86 757.574 265.034 769.529 ]/A << /S /GoTo /D (page.61) >> >>
+1050 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 170.14 734.112 182.095 745.061 ]/A << /S /GoTo /D (page.57) >> >>
endobj
-1046 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 259.535 745.619 271.49 757.574 ]/A << /S /GoTo /D (page.44) >> >>
+1051 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.776 721.708 241.731 733.664 ]/A << /S /GoTo /D (page.37) >> >>
endobj
1052 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 170.14 734.112 182.095 745.061 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 158.135 710.192 170.09 721.26 ]/A << /S /GoTo /D (page.52) >> >>
endobj
1053 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.776 721.708 241.731 733.664 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.81 698.236 176.765 709.195 ]/A << /S /GoTo /D (page.52) >> >>
endobj
1054 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 158.135 710.192 170.09 721.26 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.32 663.925 174.294 675.88 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1055 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.81 698.236 176.765 709.195 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 117.198 652.538 129.153 663.477 ]/A << /S /GoTo /D (page.27) >> >>
endobj
1056 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 167.32 663.925 174.294 675.88 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 120.825 640.573 132.78 651.522 ]/A << /S /GoTo /D (page.27) >> >>
endobj
1057 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 117.198 652.538 129.153 663.477 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.875 640.573 149.049 651.522 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1058 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 120.825 640.573 132.78 651.522 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.88 628.06 176.835 640.015 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1059 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 136.875 640.573 149.049 651.522 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 146.18 616.104 158.135 628.06 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1060 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 164.88 628.06 176.835 640.015 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.883 604.149 199.838 616.104 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1061 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 146.18 616.104 158.135 628.06 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 170.847 592.194 182.802 604.149 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1062 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.883 604.149 199.838 616.104 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 558.889 143.49 569.718 ]/A << /S /GoTo /D (page.31) >> >>
endobj
1063 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 170.847 592.194 182.802 604.149 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 546.934 159.181 557.763 ]/A << /S /GoTo /D (page.16) >> >>
endobj
1064 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 558.889 143.49 569.718 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 177.721 522.456 189.896 534.411 ]/A << /S /GoTo /D (page.68) >> >>
endobj
1065 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 546.934 159.181 557.763 ]/A << /S /GoTo /D (page.17) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 511.068 127.799 521.898 ]/A << /S /GoTo /D (page.12) >> >>
endobj
1066 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 177.721 522.456 189.896 534.411 ]/A << /S /GoTo /D (page.69) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.457 487.038 217.413 498.097 ]/A << /S /GoTo /D (page.12) >> >>
endobj
1067 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 511.068 127.799 521.898 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 475.083 172.073 486.142 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1068 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.457 487.038 217.413 498.097 ]/A << /S /GoTo /D (page.13) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 186.02 463.128 197.975 474.187 ]/A << /S /GoTo /D (page.37) >> >>
endobj
1069 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 475.083 172.073 486.142 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 269.527 450.725 281.482 462.68 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1070 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 186.02 463.128 197.975 474.187 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 439.048 133.029 450.167 ]/A << /S /GoTo /D (page.30) >> >>
endobj
1071 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 269.527 450.725 281.482 462.68 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.457 415.307 217.413 426.366 ]/A << /S /GoTo /D (page.13) >> >>
endobj
1072 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 439.048 133.029 450.167 ]/A << /S /GoTo /D (page.31) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 403.352 172.073 414.411 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1073 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.457 415.307 217.413 426.366 ]/A << /S /GoTo /D (page.13) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 186.02 391.397 197.975 402.456 ]/A << /S /GoTo /D (page.37) >> >>
endobj
1074 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 403.352 172.073 414.411 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 181.487 379.552 193.442 390.391 ]/A << /S /GoTo /D (page.13) >> >>
endobj
1075 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 186.02 391.397 197.975 402.456 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 197.537 379.552 209.711 390.391 ]/A << /S /GoTo /D (page.59) >> >>
endobj
1076 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 181.487 379.552 193.442 390.391 ]/A << /S /GoTo /D (page.13) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 345.689 134.523 356.518 ]/A << /S /GoTo /D (page.29) >> >>
endobj
1077 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 197.537 379.552 209.711 390.391 ]/A << /S /GoTo /D (page.60) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 138.618 345.689 150.573 356.518 ]/A << /S /GoTo /D (page.56) >> >>
endobj
1078 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 345.689 134.523 356.518 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 157.308 333.723 169.263 344.563 ]/A << /S /GoTo /D (page.57) >> >>
endobj
1079 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 138.618 345.689 150.573 356.518 ]/A << /S /GoTo /D (page.57) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 218.269 321.21 230.224 333.166 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1080 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 157.308 333.723 169.263 344.563 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 182.723 309.255 194.678 321.21 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1081 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 218.269 321.21 230.224 333.166 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.718 275.382 190.673 287.337 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1082 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 182.723 309.255 194.678 321.21 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 213.617 241.509 225.572 253.464 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1083 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 178.718 275.382 190.673 287.337 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 221.059 229.554 233.014 241.509 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1084 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 213.617 241.509 225.572 253.464 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 239.31 217.599 251.266 229.554 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1085 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 221.059 229.554 233.014 241.509 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.505 206.202 127.46 217.041 ]/A << /S /GoTo /D (page.27) >> >>
endobj
1086 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 239.31 217.599 251.266 229.554 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.554 206.202 143.729 217.041 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1087 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.505 206.202 127.46 217.041 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.823 206.202 159.998 217.041 ]/A << /S /GoTo /D (page.61) >> >>
endobj
1088 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.554 206.202 143.729 217.041 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 119.131 194.246 131.086 205.086 ]/A << /S /GoTo /D (page.27) >> >>
endobj
1089 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.823 206.202 159.998 217.041 ]/A << /S /GoTo /D (page.62) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 135.181 194.246 147.355 205.086 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1090 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 119.131 194.246 131.086 205.086 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 182.301 127.799 193.131 ]/A << /S /GoTo /D (page.29) >> >>
endobj
1091 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 135.181 194.246 147.355 205.086 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.638 158.381 254.593 169.22 ]/A << /S /GoTo /D (page.34) >> >>
endobj
1092 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 115.843 182.301 127.799 193.131 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 132.371 146.306 144.327 157.375 ]/A << /S /GoTo /D (page.52) >> >>
endobj
1093 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 242.638 158.381 254.593 169.22 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 185.721 121.958 197.677 133.913 ]/A << /S /GoTo /D (page.39) >> >>
endobj
1094 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 132.371 146.306 144.327 157.375 ]/A << /S /GoTo /D (page.53) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.016 110.002 230.972 121.958 ]/A << /S /GoTo /D (page.37) >> >>
endobj
1095 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 185.721 121.958 197.677 133.913 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 207.4 98.047 219.355 110.002 ]/A << /S /GoTo /D (page.14) >> >>
endobj
1096 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.016 110.002 230.972 121.958 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 135.998 86.53 147.953 97.489 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1097 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 207.4 98.047 219.355 110.002 ]/A << /S /GoTo /D (page.15) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 180.561 74.575 192.516 85.534 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1098 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 135.998 86.53 147.953 97.489 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 453.962 757.574 465.917 769.529 ]/A << /S /GoTo /D (page.36) >> >>
endobj
1099 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 180.561 74.575 192.516 85.534 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 460.079 745.619 472.034 757.574 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1100 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 453.962 757.574 465.917 769.529 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 476.128 745.619 488.303 757.574 ]/A << /S /GoTo /D (page.61) >> >>
endobj
1101 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 460.079 745.619 472.034 757.574 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 423.227 733.664 430.201 745.619 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1102 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 476.128 745.619 488.303 757.574 ]/A << /S /GoTo /D (page.62) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 392.084 687.835 404.039 699.791 ]/A << /S /GoTo /D (page.29) >> >>
endobj
1103 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 423.227 733.664 430.201 745.619 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.991 675.88 473.947 687.835 ]/A << /S /GoTo /D (page.64) >> >>
endobj
1104 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 392.084 687.835 404.039 699.791 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.478 663.925 469.434 675.88 ]/A << /S /GoTo /D (page.15) >> >>
endobj
1105 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 461.991 675.88 473.947 687.835 ]/A << /S /GoTo /D (page.65) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.706 618.545 440.661 629.604 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1106 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 457.478 663.925 469.434 675.88 ]/A << /S /GoTo /D (page.16) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.348 606.59 395.321 617.649 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1107 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.706 618.545 440.661 629.604 ]/A << /S /GoTo /D (page.51) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.269 594.635 421.224 605.694 ]/A << /S /GoTo /D (page.54) >> >>
endobj
1108 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.348 606.59 395.321 617.649 ]/A << /S /GoTo /D (page.6) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.025 582.232 440.98 594.187 ]/A << /S /GoTo /D (page.24) >> >>
endobj
1109 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.269 594.635 421.224 605.694 ]/A << /S /GoTo /D (page.55) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.548 570.496 429.503 581.674 ]/A << /S /GoTo /D (page.49) >> >>
endobj
1110 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.025 582.232 440.98 594.187 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 396.627 558.889 408.582 569.718 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1111 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.548 570.496 429.503 581.674 ]/A << /S /GoTo /D (page.50) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 412.676 558.889 424.851 569.718 ]/A << /S /GoTo /D (page.63) >> >>
endobj
1112 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 396.627 558.879 408.582 569.718 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.857 546.645 408.831 557.763 ]/A << /S /GoTo /D (page.1) >> >>
endobj
1113 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 412.676 558.879 424.851 569.718 ]/A << /S /GoTo /D (page.64) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.935 534.979 392.891 545.808 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1114 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.857 546.645 408.831 557.763 ]/A << /S /GoTo /D (page.1) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 363.939 523.024 375.894 533.853 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1115 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 380.935 534.979 392.891 545.808 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.571 511.068 351.526 521.898 ]/A << /S /GoTo /D (page.24) >> >>
endobj
1116 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 363.939 523.024 375.894 533.853 ]/A << /S /GoTo /D (page.51) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.698 498.545 421.653 510.5 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1117 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.571 511.068 351.526 521.898 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 424.642 498.545 436.597 510.5 ]/A << /S /GoTo /D (page.55) >> >>
endobj
1118 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.698 498.545 421.653 510.5 ]/A << /S /GoTo /D (page.51) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 467.83 486.59 479.785 498.545 ]/A << /S /GoTo /D (page.40) >> >>
endobj
1119 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 424.642 498.545 436.597 510.5 ]/A << /S /GoTo /D (page.56) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.44 475.203 426.395 486.032 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1120 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 467.83 486.59 479.785 498.545 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.384 475.203 441.339 486.032 ]/A << /S /GoTo /D (page.45) >> >>
endobj
1121 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.44 475.203 426.395 486.032 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 445.434 475.203 457.608 486.032 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1122 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 429.384 475.203 441.339 486.032 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 462.899 366.739 474.077 ]/A << /S /GoTo /D (page.57) >> >>
endobj
1123 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 445.434 475.203 457.608 486.032 ]/A << /S /GoTo /D (page.61) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.028 438.769 395.202 450.725 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1124 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 462.899 366.739 474.077 ]/A << /S /GoTo /D (page.58) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.766 427.263 368.721 438.321 ]/A << /S /GoTo /D (page.30) >> >>
endobj
1125 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 383.028 438.769 395.202 450.725 ]/A << /S /GoTo /D (page.61) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 407.087 393.161 419.043 404.339 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1126 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 356.766 427.263 368.721 438.321 ]/A << /S /GoTo /D (page.31) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 411.043 380.986 418.016 392.941 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1127 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 407.087 393.161 419.043 404.339 ]/A << /S /GoTo /D (page.51) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 420.089 357.076 432.044 369.031 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1128 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 411.043 380.986 418.016 392.941 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.348 333.166 440.303 345.121 ]/A << /S /GoTo /D (page.39) >> >>
endobj
1129 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 420.089 357.076 432.044 369.031 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.669 299.293 426.624 311.248 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1130 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.348 333.166 440.303 345.121 ]/A << /S /GoTo /D (page.40) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 376.98 287.776 388.935 298.735 ]/A << /S /GoTo /D (page.56) >> >>
endobj
1131 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 414.669 299.293 426.624 311.248 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 275.661 403.351 286.779 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1132 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 376.98 287.776 388.935 298.735 ]/A << /S /GoTo /D (page.57) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 368.323 263.865 380.278 274.934 ]/A << /S /GoTo /D (page.51) >> >>
endobj
1133 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 275.661 403.351 286.779 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.373 263.865 396.547 274.934 ]/A << /S /GoTo /D (page.70) >> >>
endobj
1134 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 368.323 263.865 380.278 274.934 ]/A << /S /GoTo /D (page.52) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 447.944 229.554 459.899 241.509 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1135 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 384.373 263.865 396.547 274.934 ]/A << /S /GoTo /D (page.71) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 466.395 217.599 478.35 229.554 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1136 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 447.944 229.554 459.899 241.509 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.833 206.212 366.788 217.041 ]/A << /S /GoTo /D (page.32) >> >>
endobj
1137 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 466.395 217.599 478.35 229.554 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 365.603 194.256 377.558 204.807 ]/A << /S /GoTo /D (page.32) >> >>
endobj
1138 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.833 206.212 366.788 217.041 ]/A << /S /GoTo /D (page.33) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 488.911 181.733 500.866 193.689 ]/A << /S /GoTo /D (page.21) >> >>
endobj
1139 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 365.603 194.256 377.558 204.807 ]/A << /S /GoTo /D (page.33) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 466.046 169.778 473.02 181.733 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1140 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 488.911 181.733 500.866 193.689 ]/A << /S /GoTo /D (page.22) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.97 145.868 420.925 157.823 ]/A << /S /GoTo /D (page.20) >> >>
endobj
1141 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 466.046 169.778 473.02 181.733 ]/A << /S /GoTo /D (page.6) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 501.503 133.913 513.458 145.868 ]/A << /S /GoTo /D (page.20) >> >>
endobj
1142 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.97 145.868 420.925 157.823 ]/A << /S /GoTo /D (page.21) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 465.887 110.56 477.842 121.4 ]/A << /S /GoTo /D (page.34) >> >>
endobj
1143 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 501.503 133.913 513.458 145.868 ]/A << /S /GoTo /D (page.21) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 362.295 98.486 374.25 109.444 ]/A << /S /GoTo /D (page.52) >> >>
endobj
1144 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 465.887 110.56 477.842 121.4 ]/A << /S /GoTo /D (page.35) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.97 74.137 420.925 86.092 ]/A << /S /GoTo /D (page.39) >> >>
endobj
-1145 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 362.295 98.486 374.25 109.444 ]/A << /S /GoTo /D (page.53) >> >>
+1152 0 obj
+<< /D [ 1150 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1146 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 408.97 74.137 420.925 86.092 ]/A << /S /GoTo /D (page.41) >> >>
+1149 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F57 389 0 R /F56 388 0 R /F65 392 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1154 0 obj
-<< /D [ 1152 0 R /XYZ 78.37 808.885 null ] >>
+1229 0 obj
+<< /Filter /FlateDecode /Length 2624 >>
+stream
+x[r,)߯h$G:bMvf5m$ *g܅]vf!$Ǒ
+@Ȏ{?xv:10O{abvưP1F.&H?A}}/.m@
+I| <r +[xYbekzYwoYTI"3(N*hYA,g\|`ُRUg
+eX
+b)E\~9R>V)=B@ʧvI%-MtRm)C񦗃C'uϝ8-QEHyK{/d)+&
+뀔S_Qҁ, EdS<! zӚ
+jc.3# ZY9|hY~RF#G14m;GIqnr]v_N]lJNF)ǟ`Ah7jTʇH"l{HElFI.k@%hpEF_ 'TTM(2:xٱFNj8}b-ƂWɔ#?zdR]{Λԓ`93/{)N#+XN|ҩD >'Fʰj+,BU* )*? %e[j.UF'|pTu2Y8Ne7k,uٞ\"J
+@HK}w%±k ,#\-Ϻ(/4MwxMeqFgr^PȺn=Cglˑ6JcMDrFo#ĀBIsla
+endstream
endobj
-1151 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F57 389 0 R /F56 388 0 R /F66 392 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+1228 0 obj
+<< /Type /Page /Contents 1229 0 R /Resources 1227 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 909 0 R /Annots 1231 0 R >>
endobj
1231 0 obj
-<< /Filter /FlateDecode /Length 2629 >>
-stream
-x[n8S V" Rb;y뒶eY,*EJERHIMC/xwK*y^蛹0܂7J{s7ڂx;D~=@Ds#1|xqNjVY0ihm~eN](U
-ۄ$!yQ؇kh,6O!b E8҅*α+J:̆彣SG١̟ۺ$9P6x
-%RýovQN=V90bxEێ὜Hې9mK.ב
-m{J@Un^Yk}#L -=J>/X埘N>HG
-5?]ӏazwyMm4m$9B6
-?~:.P ,݊>
- A#;X?-V`+>s_SJ"*.螚H^%g .
-L@_&98jꓵk%ɜV>5O@>t8z(~ QŸZ +{9*wڦ,SSf3-.zƍN='%uPݤt'6UqaaUH}+qGYqa#֎V6 @GR&RQ`\9kYL[IG xe]eݲ1BA^WM6,5(9=aO"QH nÁ6f%4A>i%I߁6sV{w5t?L$W>RGjH=3Ć푢/݋3u8h}։`Hp #Ǜ!S롄FͦriEGX4Ij?: R[y_sFʂ7oJrNqFU41 `V%>_NTw`UՊ׭; A.H@*rS<! /zվ
-A%K~T7] |ff[0PU6m U}Y۝njXK8z#M;5YɆ ,w@STK\I @Peoo cO14V`;ó'bt<fH/'Vvq6M$)Kf^)BVSA23R葠1ItQO K&e6TvxrlR
-x(DBlf"hۨ7L-:@&ځV|d-o%.<c"AbWY$ SZQvn0PEs
-@BM
-kokԠ<KVc7O/ZnnK.pn庽+1-Y+YqP6Lڧ+7jt'ܿo0mvԡf:Z@61r
-bawgK@'pR}ְb~t$BƈӁ@Ah~*F}r7[&C {`uy:q ~y+ o4>j
-ke;Y\B.wq;S3KHJpͣ,h;'z}z>ںʝ;V|`.Ay}>#>cV$W@5<e J, MA3yn 6o۷s!9#KoD18Z+).XtvU;g`#tohiviP$o1tIEOF8m%-QY낶0"z8WKk5h&7 K~}J5
-endstream
+[ 1145 0 R 1146 0 R 1147 0 R 1148 0 R 1154 0 R 1155 0 R 1156 0 R 1157 0 R 1158 0 R 1159 0 R 1160 0 R 1161 0 R 1162 0 R 1163 0 R 1164 0 R 1165 0 R 1166 0 R 1167 0 R 1168 0 R 1169 0 R 1170 0 R 1171 0 R 1172 0 R 1173 0 R 1174 0 R 1175 0 R 1176 0 R 1177 0 R 1178 0 R 1179 0 R 1180 0 R 1181 0 R 1182 0 R 1183 0 R 1184 0 R 1185 0 R 1186 0 R 1187 0 R 1188 0 R 1189 0 R 1190 0 R 1191 0 R 1192 0 R 1193 0 R 1194 0 R 1195 0 R 1196 0 R 1197 0 R 1198 0 R 1199 0 R 1200 0 R 1201 0 R 1202 0 R 1203 0 R 1204 0 R 1205 0 R 1206 0 R 1207 0 R 1208 0 R 1209 0 R 1210 0 R 1211 0 R 1212 0 R 1213 0 R 1214 0 R 1215 0 R 1216 0 R 1217 0 R 1218 0 R 1219 0 R 1220 0 R 1221 0 R 1222 0 R 1223 0 R 1224 0 R 1225 0 R 1226 0 R ]
endobj
-1230 0 obj
-<< /Type /Page /Contents 1231 0 R /Resources 1229 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R /Annots 1233 0 R >>
+1145 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 225.691 757.574 237.647 769.529 ]/A << /S /GoTo /D (page.37) >> >>
endobj
-1233 0 obj
-[ 1147 0 R 1148 0 R 1149 0 R 1150 0 R 1156 0 R 1157 0 R 1158 0 R 1159 0 R 1160 0 R 1161 0 R 1162 0 R 1163 0 R 1164 0 R 1165 0 R 1166 0 R 1167 0 R 1168 0 R 1169 0 R 1170 0 R 1171 0 R 1172 0 R 1173 0 R 1174 0 R 1175 0 R 1176 0 R 1177 0 R 1178 0 R 1179 0 R 1180 0 R 1181 0 R 1182 0 R 1183 0 R 1184 0 R 1185 0 R 1186 0 R 1187 0 R 1188 0 R 1189 0 R 1190 0 R 1191 0 R 1192 0 R 1193 0 R 1194 0 R 1195 0 R 1196 0 R 1197 0 R 1198 0 R 1199 0 R 1200 0 R 1201 0 R 1202 0 R 1203 0 R 1204 0 R 1205 0 R 1206 0 R 1207 0 R 1208 0 R 1209 0 R 1210 0 R 1211 0 R 1212 0 R 1213 0 R 1214 0 R 1215 0 R 1216 0 R 1217 0 R 1218 0 R 1219 0 R 1220 0 R 1221 0 R 1222 0 R 1223 0 R 1224 0 R 1225 0 R 1226 0 R 1227 0 R 1228 0 R ]
+1146 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 746.177 133.248 757.016 ]/A << /S /GoTo /D (page.22) >> >>
endobj
1147 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 225.691 757.574 237.647 769.529 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 137.343 746.177 149.517 757.016 ]/A << /S /GoTo /D (page.24) >> >>
endobj
1148 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 121.074 746.187 133.248 757.016 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.612 746.177 165.567 757.016 ]/A << /S /GoTo /D (page.47) >> >>
endobj
-1149 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 137.343 746.187 149.517 757.016 ]/A << /S /GoTo /D (page.25) >> >>
+1154 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 722.157 172.073 733.215 ]/A << /S /GoTo /D (page.5) >> >>
endobj
-1150 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 153.612 746.187 165.567 757.016 ]/A << /S /GoTo /D (page.48) >> >>
+1155 0 obj
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 201.711 710.202 213.667 721.26 ]/A << /S /GoTo /D (page.45) >> >>
endobj
1156 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 722.157 172.073 733.215 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.984 686.411 204.939 697.24 ]/A << /S /GoTo /D (page.22) >> >>
endobj
1157 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 201.711 710.202 213.667 721.26 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 209.034 686.411 221.208 697.24 ]/A << /S /GoTo /D (page.67) >> >>
endobj
1158 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.984 686.411 204.939 697.24 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 218.648 674.456 230.603 685.395 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1159 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 209.034 686.411 221.208 697.24 ]/A << /S /GoTo /D (page.68) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 234.698 674.456 246.872 685.395 ]/A << /S /GoTo /D (page.59) >> >>
endobj
1160 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 218.648 674.456 230.603 685.395 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 208.516 661.933 220.471 673.888 ]/A << /S /GoTo /D (page.24) >> >>
endobj
1161 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 234.698 674.456 246.872 685.395 ]/A << /S /GoTo /D (page.60) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 262.095 649.977 274.05 661.933 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1162 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 208.516 661.933 220.471 673.888 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 281.698 638.022 293.653 649.977 ]/A << /S /GoTo /D (page.18) >> >>
endobj
1163 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 262.095 649.977 274.05 661.933 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 626.286 143.49 637.464 ]/A << /S /GoTo /D (page.24) >> >>
endobj
1164 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 281.698 638.022 293.653 649.977 ]/A << /S /GoTo /D (page.19) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 189.866 614.68 201.821 625.509 ]/A << /S /GoTo /D (page.10) >> >>
endobj
1165 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 131.535 626.286 143.49 637.464 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.81 614.68 216.765 625.509 ]/A << /S /GoTo /D (page.17) >> >>
endobj
1166 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 189.866 614.68 201.821 625.509 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 217.163 602.157 229.119 614.112 ]/A << /S /GoTo /D (page.11) >> >>
endobj
1167 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.81 614.68 216.765 625.509 ]/A << /S /GoTo /D (page.18) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.213 602.157 245.388 614.112 ]/A << /S /GoTo /D (page.59) >> >>
endobj
1168 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 217.163 602.157 229.119 614.112 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.292 568.284 216.466 580.239 ]/A << /S /GoTo /D (page.22) >> >>
endobj
1169 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 233.213 602.157 245.388 614.112 ]/A << /S /GoTo /D (page.60) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.561 568.284 232.516 580.239 ]/A << /S /GoTo /D (page.46) >> >>
endobj
1170 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 204.292 568.284 216.466 580.239 ]/A << /S /GoTo /D (page.23) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 222.394 556.329 234.349 568.284 ]/A << /S /GoTo /D (page.15) >> >>
endobj
1171 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 220.561 568.284 232.516 580.239 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.115 544.931 154.07 555.771 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1172 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 222.394 556.329 234.349 568.284 ]/A << /S /GoTo /D (page.16) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.224 532.418 242.18 544.373 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1173 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 142.115 544.931 154.07 555.771 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.044 520.463 260.999 532.418 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1174 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 230.224 532.418 242.18 544.373 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 254.105 508.508 266.06 520.463 ]/A << /S /GoTo /D (page.33) >> >>
endobj
1175 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 249.044 520.463 260.999 532.418 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 484.598 217.054 496.553 ]/A << /S /GoTo /D (page.46) >> >>
endobj
1176 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 254.105 508.508 266.06 520.463 ]/A << /S /GoTo /D (page.34) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 156.909 472.642 168.865 484.598 ]/A << /S /GoTo /D (page.46) >> >>
endobj
1177 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 484.598 217.054 496.553 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 194.927 460.687 206.882 472.642 ]/A << /S /GoTo /D (page.37) >> >>
endobj
1178 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 156.909 472.642 168.865 484.598 ]/A << /S /GoTo /D (page.47) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.345 448.732 231.3 460.687 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1179 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 194.927 460.687 206.882 472.642 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 270.155 436.777 282.11 448.732 ]/A << /S /GoTo /D (page.47) >> >>
endobj
1180 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 219.345 448.732 231.3 460.687 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 145.99 425.39 157.946 436.219 ]/A << /S /GoTo /D (page.11) >> >>
endobj
1181 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 270.155 436.777 282.11 448.732 ]/A << /S /GoTo /D (page.48) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.988 412.867 203.943 424.822 ]/A << /S /GoTo /D (page.43) >> >>
endobj
1182 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 145.99 425.39 157.946 436.219 ]/A << /S /GoTo /D (page.11) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 208.038 412.867 220.212 424.822 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1183 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.988 412.867 203.943 424.822 ]/A << /S /GoTo /D (page.44) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 281.698 400.911 293.653 412.867 ]/A << /S /GoTo /D (page.35) >> >>
endobj
1184 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 208.038 412.867 220.212 424.822 ]/A << /S /GoTo /D (page.61) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 377.001 218.548 388.956 ]/A << /S /GoTo /D (page.36) >> >>
endobj
1185 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 281.698 400.911 293.653 412.867 ]/A << /S /GoTo /D (page.37) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 222.643 377.001 234.598 388.956 ]/A << /S /GoTo /D (page.54) >> >>
endobj
1186 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 377.001 218.548 388.956 ]/A << /S /GoTo /D (page.38) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 238.693 377.001 250.867 388.956 ]/A << /S /GoTo /D (page.65) >> >>
endobj
1187 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 222.643 377.001 234.598 388.956 ]/A << /S /GoTo /D (page.55) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 254.962 377.001 267.136 388.956 ]/A << /S /GoTo /D (page.69) >> >>
endobj
1188 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 238.693 377.001 250.867 388.956 ]/A << /S /GoTo /D (page.66) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 343.696 159.181 354.525 ]/A << /S /GoTo /D (page.41) >> >>
endobj
1189 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 254.962 377.001 267.136 388.956 ]/A << /S /GoTo /D (page.70) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.276 343.696 175.45 354.525 ]/A << /S /GoTo /D (page.60) >> >>
endobj
1190 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 353.091 218.548 365.046 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 152.456 331.741 164.411 342.57 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1191 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 147.226 319.786 159.181 330.615 ]/A << /S /GoTo /D (page.42) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 243.266 319.218 255.221 331.173 ]/A << /S /GoTo /D (page.42) >> >>
endobj
1192 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.276 319.786 175.45 330.615 ]/A << /S /GoTo /D (page.61) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.425 307.263 175.38 319.218 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1193 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 152.456 307.831 164.411 318.66 ]/A << /S /GoTo /D (page.43) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.058 295.307 180.232 307.263 ]/A << /S /GoTo /D (page.59) >> >>
endobj
1194 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 243.266 295.307 255.221 307.263 ]/A << /S /GoTo /D (page.43) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.853 283.352 199.809 295.307 ]/A << /S /GoTo /D (page.45) >> >>
endobj
1195 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 163.425 283.352 175.38 295.307 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.706 271.397 241.662 283.352 ]/A << /S /GoTo /D (page.50) >> >>
endobj
1196 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 168.058 271.397 180.232 283.352 ]/A << /S /GoTo /D (page.60) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 247.487 218.548 259.442 ]/A << /S /GoTo /D (page.40) >> >>
endobj
1197 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 187.853 259.442 199.809 271.397 ]/A << /S /GoTo /D (page.46) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 224.025 172.073 235.083 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1198 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 229.706 247.487 241.662 259.442 ]/A << /S /GoTo /D (page.51) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 176.167 224.025 188.342 235.083 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1199 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.099 224.025 172.073 235.083 ]/A << /S /GoTo /D (page.6) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 223.599 212.07 230.573 223.128 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1200 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 176.167 224.025 188.342 235.083 ]/A << /S /GoTo /D (page.59) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 234.668 212.07 246.842 223.128 ]/A << /S /GoTo /D (page.63) >> >>
endobj
1201 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 223.599 212.07 230.573 223.128 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.984 200.114 204.939 211.173 ]/A << /S /GoTo /D (page.16) >> >>
endobj
1202 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 234.668 212.07 246.842 223.128 ]/A << /S /GoTo /D (page.64) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 232.845 187.711 244.8 199.666 ]/A << /S /GoTo /D (page.16) >> >>
endobj
1203 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 192.984 200.114 204.939 211.173 ]/A << /S /GoTo /D (page.16) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 206.454 175.756 213.427 187.711 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1204 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 232.845 187.711 244.8 199.666 ]/A << /S /GoTo /D (page.16) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 217.522 175.756 229.696 187.711 ]/A << /S /GoTo /D (page.58) >> >>
endobj
1205 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 206.454 175.756 213.427 187.711 ]/A << /S /GoTo /D (page.6) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 129.928 217.054 141.883 ]/A << /S /GoTo /D (page.39) >> >>
endobj
1206 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 217.522 175.756 229.696 187.711 ]/A << /S /GoTo /D (page.59) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 216.685 96.055 228.64 108.01 ]/A << /S /GoTo /D (page.26) >> >>
endobj
1207 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 205.099 129.928 217.054 141.883 ]/A << /S /GoTo /D (page.40) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 232.735 96.055 244.69 108.01 ]/A << /S /GoTo /D (page.51) >> >>
endobj
1208 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 216.685 96.055 228.64 108.01 ]/A << /S /GoTo /D (page.27) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.131 84.099 198.105 96.055 ]/A << /S /GoTo /D (page.8) >> >>
endobj
1209 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 232.735 96.055 244.69 108.01 ]/A << /S /GoTo /D (page.52) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.437 72.144 177.393 84.099 ]/A << /S /GoTo /D (page.26) >> >>
endobj
1210 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 191.131 84.099 198.105 96.055 ]/A << /S /GoTo /D (page.9) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 181.487 72.144 193.442 84.099 ]/A << /S /GoTo /D (page.51) >> >>
endobj
1211 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 165.437 72.144 177.393 84.099 ]/A << /S /GoTo /D (page.27) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 758.142 403.351 768.971 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1212 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 181.487 72.144 193.442 84.099 ]/A << /S /GoTo /D (page.52) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 746.187 403.351 757.016 ]/A << /S /GoTo /D (page.48) >> >>
endobj
1213 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 758.142 403.351 768.971 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 734.232 351.048 745.061 ]/A << /S /GoTo /D (page.29) >> >>
endobj
1214 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 391.396 746.187 403.351 757.016 ]/A << /S /GoTo /D (page.49) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 722.276 366.739 733.106 ]/A << /S /GoTo /D (page.31) >> >>
endobj
1215 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 339.092 734.232 351.048 745.061 ]/A << /S /GoTo /D (page.30) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.706 698.246 440.661 709.305 ]/A << /S /GoTo /D (page.12) >> >>
endobj
1216 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 354.783 722.276 366.739 733.106 ]/A << /S /GoTo /D (page.32) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.348 686.291 395.321 697.35 ]/A << /S /GoTo /D (page.5) >> >>
endobj
1217 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 428.706 698.246 440.661 709.305 ]/A << /S /GoTo /D (page.13) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.269 674.336 421.224 685.395 ]/A << /S /GoTo /D (page.37) >> >>
endobj
1218 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 388.348 686.291 395.321 697.35 ]/A << /S /GoTo /D (page.5) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 394.754 662.501 406.709 673.33 ]/A << /S /GoTo /D (page.66) >> >>
endobj
1219 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.269 674.336 421.224 685.395 ]/A << /S /GoTo /D (page.39) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 424.96 616.553 436.916 627.611 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1220 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 394.754 662.501 406.709 673.33 ]/A << /S /GoTo /D (page.67) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.937 604.598 413.892 615.656 ]/A << /S /GoTo /D (page.11) >> >>
endobj
1221 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 424.96 616.553 436.916 627.611 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.458 592.762 429.414 603.651 ]/A << /S /GoTo /D (page.24) >> >>
endobj
1222 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 401.937 604.598 413.892 615.656 ]/A << /S /GoTo /D (page.12) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 432.402 592.762 444.358 603.651 ]/A << /S /GoTo /D (page.27) >> >>
endobj
1223 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 417.458 592.762 429.414 603.651 ]/A << /S /GoTo /D (page.25) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 389.673 558.321 401.628 570.276 ]/A << /S /GoTo /D (page.25) >> >>
endobj
1224 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 432.402 592.762 444.358 603.651 ]/A << /S /GoTo /D (page.28) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.219 546.366 421.175 558.321 ]/A << /S /GoTo /D (page.29) >> >>
endobj
1225 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 389.673 558.321 401.628 570.276 ]/A << /S /GoTo /D (page.26) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 424.831 534.411 436.786 546.366 ]/A << /S /GoTo /D (page.37) >> >>
endobj
1226 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 409.219 546.366 421.175 558.321 ]/A << /S /GoTo /D (page.30) >> >>
-endobj
-1227 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 424.831 534.411 436.786 546.366 ]/A << /S /GoTo /D (page.38) >> >>
-endobj
-1228 0 obj
-<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 504.947 500.538 516.902 512.493 ]/A << /S /GoTo /D (page.41) >> >>
+<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 504.947 500.538 516.902 512.493 ]/A << /S /GoTo /D (page.39) >> >>
endobj
-1232 0 obj
-<< /D [ 1230 0 R /XYZ 78.37 808.885 null ] >>
+1230 0 obj
+<< /D [ 1228 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1229 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F66 392 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
+1227 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F15 385 0 R /F56 388 0 R /F57 389 0 R /F65 392 0 R /F55 387 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1283 0 obj
-<< /Filter /FlateDecode /Length 2021 >>
+1281 0 obj
+<< /Filter /FlateDecode /Length 2020 >>
stream
-x\n#7W!00 V} rMNkdS<`HdZO'^/~*{Đ^$$N2'/Ùs)8'#,?+xO?:Yf( q y\ O-H?q#^O:>yﲼ&!B?^\Vw#uVZLh+qlD8>%>L'j
-vU2Kf{mu|P`_Vp}*efN®IG
- eJB
-R2C@,٦QlP %=G[a \_wB\JJre>Jˇ#,a<EgS_ƅa$&*{ÑӰ`7Y3B/^!aP
-cMYRQk!lpCW/ٍUI}G
-ɇ*FWhbzTrM&$#JhԪ% I.jOv=Wn鿶ZP J74> ib4lW0KSsݎW3d<|:cBișz!$-<}۽8@/+@X p'n^`)<`}~9X<uZ9~Tw_
-;PKޮ~cqnqdٔEoy%AS6x(|'K
-/+Z*ge7R/G?IP*qӟMSq+X;Nęmhbwwv
+x\n#7W!00 V} rMNkdS<`HdZO'^/~*sĐ^$$N2'/Ùs)8'#,?+xO?<Yf( q y\ O-H?q#^O:>yﲼ&!B?^\Vw#uVZLh+qlD8>%>L'j
+dYw#I/{ʣ: ZD E1=w%f;]'w԰odRtݶY[:@RhT@SS%W!8}FL |r&WHKJ~X0#mwGSS)6svM8R
+-wa#xzHFYlצ)<Gd1 JR)%"U"BC5%\׹mvfk r82?/T<(UtVUbA465b|Z(0<
+fB>p [ȗ R2T*T++QZ>a A8.:ӞG-4.<v$Y4Pٛ{7Ξz
+AcBĄPmϒ^aC~nbN=;J
+rH7&dXs@1P{\f_ȨյuϑL^HqS;dc5FBavq;$=&zS#aC7" \kM>
+ԛ!tI)>mZΨ%A0;҅<gG҆\m!OXCg"tbPc[ti]FY]%6c fơƈ+^g
+quOÿ+KB]vdIdO,E4 *'^ TLW3CbW' ˍ(IF(4B
endstream
endobj
-1282 0 obj
-<< /Type /Page /Contents 1283 0 R /Resources 1281 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 911 0 R /Annots 1285 0 R >>
+1280 0 obj
+<< /Type /Page /Contents 1281 0 R /Resources 1279 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 909 0 R /Annots 1283 0 R >>
endobj
-1285 0 obj
-[ 1234 0 R 1235 0 R 1236 0 R 1237 0 R 1238 0 R 1239 0 R 1240 0 R 1241 0 R 1242 0 R 1243 0 R 1244 0 R 1245 0 R 1246 0 R 1247 0 R 1248 0 R 1249 0 R 1250 0 R 1251 0 R 1252 0 R 1253 0 R 1254 0 R 1255 0 R 1256 0 R 1257 0 R 1258 0 R 1259 0 R 1260 0 R 1261 0 R 1262 0 R 1263 0 R 1264 0 R 1265 0 R 1266 0 R 1267 0 R 1268 0 R 1269 0 R 1270 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R 1275 0 R 1276 0 R 1277 0 R 1278 0 R 1279 0 R ]
+1283 0 obj
+[ 1232 0 R 1233 0 R 1234 0 R 1235 0 R 1236 0 R 1237 0 R 1238 0 R 1239 0 R 1240 0 R 1241 0 R 1242 0 R 1243 0 R 1244 0 R 1245 0 R 1246 0 R 1247 0 R 1248 0 R 1249 0 R 1250 0 R 1251 0 R 1252 0 R 1253 0 R 1254 0 R 1255 0 R 1256 0 R 1257 0 R 1258 0 R 1259 0 R 1260 0 R 1261 0 R 1262 0 R 1263 0 R 1264 0 R 1265 0 R 1266 0 R 1267 0 R 1268 0 R 1269 0 R 1270 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R 1275 0 R 1276 0 R 1277 0 R ]
endobj
-1234 0 obj
+1232 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 736.093 264.366 747.062 ]/A << /S /GoTo /D (section.1) >> >>
endobj
-1235 0 obj
+1233 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 714.245 277.846 725.085 ]/A << /S /GoTo /D (section.2) >> >>
endobj
-1236 0 obj
+1234 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 692.268 267.116 703.227 ]/A << /S /GoTo /D (section.3) >> >>
endobj
-1237 0 obj
+1235 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 672.283 149.647 681.249 ]/A << /S /GoTo /D (section.4) >> >>
endobj
-1238 0 obj
+1236 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 660.168 180.132 669.403 ]/A << /S /GoTo /D (subsection.4.1) >> >>
endobj
-1239 0 obj
+1237 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 648.213 234.558 657.339 ]/A << /S /GoTo /D (subsection.4.2) >> >>
endobj
-1240 0 obj
+1238 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 636.258 218.807 645.383 ]/A << /S /GoTo /D (subsection.4.3) >> >>
endobj
-1241 0 obj
+1239 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 624.303 217.393 633.428 ]/A << /S /GoTo /D (subsection.4.4) >> >>
endobj
-1242 0 obj
+1240 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 610.634 327.31 621.583 ]/A << /S /GoTo /D (subsection.4.5) >> >>
endobj
-1243 0 obj
+1241 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 598.679 315.684 609.628 ]/A << /S /GoTo /D (subsection.4.6) >> >>
endobj
-1244 0 obj
+1242 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 586.166 224.606 598.121 ]/A << /S /GoTo /D (subsection.4.7) >> >>
endobj
-1245 0 obj
+1243 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 566.629 142.752 575.645 ]/A << /S /GoTo /D (section.5) >> >>
endobj
-1246 0 obj
+1244 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 554.564 336.317 563.799 ]/A << /S /GoTo /D (subsection.5.1) >> >>
endobj
-1247 0 obj
+1245 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 542.609 226.588 551.735 ]/A << /S /GoTo /D (subsubsection.5.1.1) >> >>
endobj
-1248 0 obj
+1246 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 528.382 240.865 540.337 ]/A << /S /GoTo /D (subsubsection.5.1.2) >> >>
endobj
-1249 0 obj
+1247 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 518.699 298.369 527.934 ]/A << /S /GoTo /D (subsection.5.2) >> >>
endobj
-1250 0 obj
+1248 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 506.743 283.684 515.979 ]/A << /S /GoTo /D (subsection.5.3) >> >>
endobj
-1251 0 obj
+1249 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 492.965 264.835 503.914 ]/A << /S /GoTo /D (subsubsection.5.3.1) >> >>
endobj
-1252 0 obj
+1250 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 481.01 342.155 491.959 ]/A << /S /GoTo /D (subsubsection.5.3.2) >> >>
endobj
-1253 0 obj
+1251 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 468.606 239.868 480.562 ]/A << /S /GoTo /D (subsubsection.5.3.3) >> >>
endobj
-1254 0 obj
+1252 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 456.651 254.992 468.606 ]/A << /S /GoTo /D (subsubsection.5.3.4) >> >>
endobj
-1255 0 obj
+1253 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 446.968 289.512 456.203 ]/A << /S /GoTo /D (subsubsection.5.3.5) >> >>
endobj
-1256 0 obj
+1254 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 423.266 364.342 434.235 ]/A << /S /GoTo /D (section.6) >> >>
endobj
-1257 0 obj
+1255 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 413.095 188.929 422.33 ]/A << /S /GoTo /D (subsection.6.1) >> >>
endobj
-1258 0 obj
+1256 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 398.868 314.728 410.823 ]/A << /S /GoTo /D (subsection.6.2) >> >>
endobj
-1259 0 obj
+1257 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 389.184 301.985 398.42 ]/A << /S /GoTo /D (subsection.6.3) >> >>
endobj
-1260 0 obj
+1258 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 375.515 243.744 386.355 ]/A << /S /GoTo /D (subsection.6.4) >> >>
endobj
-1261 0 obj
+1259 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 353.04 223.729 364.995 ]/A << /S /GoTo /D (section.7) >> >>
endobj
-1262 0 obj
+1260 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 333.503 224.894 342.579 ]/A << /S /GoTo /D (section.8) >> >>
endobj
-1263 0 obj
+1261 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 321.438 172.481 330.564 ]/A << /S /GoTo /D (subsection.8.1) >> >>
endobj
-1264 0 obj
+1262 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 309.483 191.938 318.609 ]/A << /S /GoTo /D (subsection.8.2) >> >>
endobj
-1265 0 obj
+1263 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 297.528 245.109 306.763 ]/A << /S /GoTo /D (subsection.8.3) >> >>
endobj
-1266 0 obj
+1264 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 275.72 251.545 284.736 ]/A << /S /GoTo /D (section.9) >> >>
endobj
-1267 0 obj
+1265 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 253.802 234.987 262.818 ]/A << /S /GoTo /D (section.10) >> >>
endobj
-1268 0 obj
+1266 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 239.914 225.731 250.973 ]/A << /S /GoTo /D (subsection.10.1) >> >>
endobj
-1269 0 obj
+1267 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 227.511 302.264 239.466 ]/A << /S /GoTo /D (subsection.10.2) >> >>
endobj
-1270 0 obj
+1268 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 215.994 379.495 226.953 ]/A << /S /GoTo /D (subsection.10.3) >> >>
endobj
-1271 0 obj
+1269 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 205.872 253.158 215.107 ]/A << /S /GoTo /D (subsection.10.4) >> >>
endobj
-1272 0 obj
+1270 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 193.916 270.653 203.152 ]/A << /S /GoTo /D (subsection.10.5) >> >>
endobj
-1273 0 obj
+1271 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 181.961 257.064 191.087 ]/A << /S /GoTo /D (subsection.10.6) >> >>
endobj
-1274 0 obj
+1272 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 158.33 329.741 169.229 ]/A << /S /GoTo /D (section.11) >> >>
endobj
-1275 0 obj
+1273 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 135.854 176.964 147.809 ]/A << /S /GoTo /D (section.12) >> >>
endobj
-1276 0 obj
+1274 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 123.899 293.756 135.854 ]/A << /S /GoTo /D (subsection.12.1) >> >>
endobj
-1277 0 obj
+1275 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 111.944 427.634 123.899 ]/A << /S /GoTo /D (subsection.12.2) >> >>
endobj
-1278 0 obj
+1276 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 99.989 407.37 111.944 ]/A << /S /GoTo /D (subsection.12.3) >> >>
endobj
-1279 0 obj
+1277 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 88.034 340.411 99.989 ]/A << /S /GoTo /D (subsection.12.4) >> >>
endobj
-1284 0 obj
-<< /D [ 1282 0 R /XYZ 78.37 808.885 null ] >>
+1282 0 obj
+<< /D [ 1280 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1281 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F69 406 0 R /F66 392 0 R /F15 385 0 R >> /ProcSet [ /PDF /Text ] >>
+1279 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F68 406 0 R /F65 392 0 R /F15 385 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
-1331 0 obj
-<< /Filter /FlateDecode /Length 1926 >>
+1329 0 obj
+<< /Filter /FlateDecode /Length 1922 >>
stream
-x\n8+MI8snKRLf3C`Kd*U]ῃ<y'3!ȃ: ;8TB:AJ R^[QJ7HiV (umqtXy[3끎U(U@ 8s_/988`|x
-e#X8}
- BFT:6ơBjLr\Z kX3K D"0|
-²Vcd̙R= lP,~'7]\,ɾ|' t5NPnGTHq<zf}4
-޶z/o+J$[kaL' Ff4MYX/OxoJ,.qJuF
-#g`ߓ@Z- yap ,ܥxU Wm@ BГSd7zM+*@$T8!Se N%yEDw@87J*oKHdj96+"Uc V}?x<Pl(1'D$v*-+zs!/ ]T.է>YuEkm|Wݬ/ҙ J9VʣƼCRԨ*m>8P}u)z [5޾[Ǵڜ q6>
-pqy4Rgptү ގJę`pF
-Y;biIJ}8$XH¼5~KcቲFbmkݬ,{/MxbኜhQ2[s-[T?a?o5<,Z6QugEseJƗqڴ+F~ܛhKE'5)^D8.rN%Of 6Bϡ[uloU{18r؟.̭Z
-@geĮPo2Q0W!jcT巏ζY5rwTi6A[Oʤ+u5Bxo'07C}ǬIW)U:ID yI}KG/ɾ 4}ՙ={<ᮜ6kQȸ5
-CW}tJHgoiiswZssa@{ˤMXDdƴtj8%nK )qM /ʄukyDg<&{l"$VU`sUo2u `Q&(
+x\n6+a!9$@ή]%RNn--Y33g<sdy=vF{" 9}.|҂xV-xR=Ž& RU9nC<|sC[t?`VL{zx6|hB<NZ?)Z3A( W.p
+qԠc5?R"M,tmZ8"ߞEzA#NŭM5β{kNB.D(m}FYsz522}.ڍ6g|wZV8;I*ʾIeiy:@&٧^ ˂l^Q^ /*Z3,k H!d*P_SPq!5&9C.O
+BO4@&k]U%_W -cp/@.H+r8 X& .U7 ~[
+vF%S9ݭ]q.aW-X`j<o
+`+?X "*:EJjR.PKaxo@M1Ztft-l{3oiNjs67lx/ŅE#KU&V_ʒK7=3(v| &d\EqINcy !c'j1"e u`Fbmk}ZYv/MxbP F0ٚ3P.nߢ V8xaѲ;l4.zC(T2Ц%6\1:|D[\-2= ~ޒET._jiav[PMm/Hk"G3ۅV+_{Yq3Y
+pFXA
+.}n sUKr6I5Y~{lU#k-{LU8ViLRw_#vih5*e6]G }19iߚ x~ڑ웞`KsPӾ7yhj%KZ"i
+ǡ+I>Reg%P}749;A9q -OeREXDdƴtj}JEzRxd}C7vJRm52rZѧ6Oĭ7
+A(=)KUe;"i~*wNUi%>˕ЊF'#^rꏀm7)E#EpmՉ0\?
endstream
endobj
-1330 0 obj
-<< /Type /Page /Contents 1331 0 R /Resources 1329 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1333 0 R /Annots 1334 0 R >>
+1328 0 obj
+<< /Type /Page /Contents 1329 0 R /Resources 1327 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1331 0 R /Annots 1332 0 R >>
endobj
-1334 0 obj
-[ 1280 0 R 1286 0 R 1287 0 R 1288 0 R 1289 0 R 1290 0 R 1291 0 R 1292 0 R 1293 0 R 1294 0 R 1295 0 R 1296 0 R 1297 0 R 1298 0 R 1299 0 R 1300 0 R 1301 0 R 1302 0 R 1303 0 R 1304 0 R 1305 0 R 1306 0 R 1307 0 R 1308 0 R 1309 0 R 1310 0 R 1311 0 R 1312 0 R 1313 0 R 1314 0 R 1315 0 R 1316 0 R 1317 0 R 1318 0 R 1319 0 R 1320 0 R 1321 0 R 1322 0 R 1323 0 R 1324 0 R 1325 0 R 1326 0 R 1327 0 R 1328 0 R ]
+1332 0 obj
+[ 1278 0 R 1284 0 R 1285 0 R 1286 0 R 1287 0 R 1288 0 R 1289 0 R 1290 0 R 1291 0 R 1292 0 R 1293 0 R 1294 0 R 1295 0 R 1296 0 R 1297 0 R 1298 0 R 1299 0 R 1300 0 R 1301 0 R 1302 0 R 1303 0 R 1304 0 R 1305 0 R 1306 0 R 1307 0 R 1308 0 R 1309 0 R 1310 0 R 1311 0 R 1312 0 R 1313 0 R 1314 0 R 1315 0 R 1316 0 R 1317 0 R 1318 0 R 1319 0 R 1320 0 R 1321 0 R 1322 0 R 1323 0 R 1324 0 R 1325 0 R 1326 0 R ]
endobj
-1280 0 obj
+1278 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 758.132 269.836 769.001 ]/A << /S /GoTo /D (section.13) >> >>
endobj
-1286 0 obj
+1284 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 746.177 214.633 757.126 ]/A << /S /GoTo /D (subsection.13.1) >> >>
endobj
-1287 0 obj
+1285 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 735.935 185.582 745.17 ]/A << /S /GoTo /D (subsection.13.2) >> >>
endobj
-1288 0 obj
+1286 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 723.98 214.673 733.215 ]/A << /S /GoTo /D (subsection.13.3) >> >>
endobj
-1289 0 obj
+1287 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 712.025 277.328 721.26 ]/A << /S /GoTo /D (subsection.13.4) >> >>
endobj
-1290 0 obj
+1288 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 697.798 306.887 709.753 ]/A << /S /GoTo /D (subsection.13.5) >> >>
endobj
-1291 0 obj
+1289 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 678.261 168.157 687.337 ]/A << /S /GoTo /D (section.14) >> >>
endobj
-1292 0 obj
+1290 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 664.373 233.542 675.322 ]/A << /S /GoTo /D (subsection.14.1) >> >>
endobj
-1293 0 obj
+1291 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 651.97 247.559 663.925 ]/A << /S /GoTo /D (subsection.14.2) >> >>
endobj
-1294 0 obj
+1292 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 640.463 280.008 651.522 ]/A << /S /GoTo /D (subsection.14.3) >> >>
endobj
-1295 0 obj
+1293 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 628.06 288.655 640.015 ]/A << /S /GoTo /D (subsection.14.4) >> >>
endobj
-1296 0 obj
+1294 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 616.104 222.075 628.06 ]/A << /S /GoTo /D (subsection.14.5) >> >>
endobj
-1297 0 obj
+1295 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 604.707 199.42 615.547 ]/A << /S /GoTo /D (subsection.14.6) >> >>
endobj
-1298 0 obj
+1296 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 592.642 248.008 603.701 ]/A << /S /GoTo /D (subsection.14.7) >> >>
endobj
-1299 0 obj
+1297 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 580.677 215.191 591.636 ]/A << /S /GoTo /D (subsection.14.8) >> >>
endobj
-1300 0 obj
+1298 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 570.555 223.549 579.791 ]/A << /S /GoTo /D (subsection.14.9) >> >>
endobj
-1301 0 obj
+1299 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 556.329 309.507 568.284 ]/A << /S /GoTo /D (subsection.14.10) >> >>
endobj
-1302 0 obj
+1300 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 544.373 288.795 556.329 ]/A << /S /GoTo /D (subsection.14.11) >> >>
endobj
-1303 0 obj
+1301 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 524.837 238.264 533.913 ]/A << /S /GoTo /D (section.15) >> >>
endobj
-1304 0 obj
+1302 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 510.939 353.213 522.007 ]/A << /S /GoTo /D (subsection.15.1) >> >>
endobj
-1305 0 obj
+1303 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 498.984 249.173 510.052 ]/A << /S /GoTo /D (subsubsection.15.1.1) >> >>
endobj
-1306 0 obj
+1304 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 116.232 488.862 270.015 498.097 ]/A << /S /GoTo /D (subsubsection.15.1.2) >> >>
endobj
-1307 0 obj
+1305 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 475.073 297.462 486.032 ]/A << /S /GoTo /D (subsection.15.2) >> >>
endobj
-1308 0 obj
+1306 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 463.238 344.018 474.187 ]/A << /S /GoTo /D (subsection.15.3) >> >>
endobj
-1309 0 obj
+1307 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 450.725 363.963 462.68 ]/A << /S /GoTo /D (subsection.15.4) >> >>
endobj
-1310 0 obj
+1308 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 429.365 210.289 440.264 ]/A << /S /GoTo /D (section.16) >> >>
endobj
-1311 0 obj
+1309 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 409.27 186.289 418.286 ]/A << /S /GoTo /D (section.17) >> >>
endobj
-1312 0 obj
+1310 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 395.372 186.558 406.331 ]/A << /S /GoTo /D (subsection.17.1) >> >>
endobj
-1313 0 obj
+1311 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 383.427 194.419 394.376 ]/A << /S /GoTo /D (subsection.17.2) >> >>
endobj
-1314 0 obj
+1312 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 371.472 262.354 382.421 ]/A << /S /GoTo /D (subsection.17.3) >> >>
endobj
-1315 0 obj
+1313 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 359.626 198.045 370.466 ]/A << /S /GoTo /D (subsection.17.4) >> >>
endobj
-1316 0 obj
+1314 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 337.708 143.32 348.548 ]/A << /S /GoTo /D (section.18) >> >>
endobj
-1317 0 obj
+1315 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 325.195 349.268 337.151 ]/A << /S /GoTo /D (subsection.18.1) >> >>
endobj
-1318 0 obj
+1316 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 315.512 207.749 324.637 ]/A << /S /GoTo /D (subsection.18.2) >> >>
endobj
-1319 0 obj
+1317 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 303.557 217.492 312.682 ]/A << /S /GoTo /D (subsection.18.3) >> >>
endobj
-1320 0 obj
+1318 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 291.601 178.249 300.727 ]/A << /S /GoTo /D (subsection.18.4) >> >>
endobj
-1321 0 obj
+1319 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 277.813 298.688 288.772 ]/A << /S /GoTo /D (subsection.18.5) >> >>
endobj
-1322 0 obj
+1320 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 267.691 181.099 276.817 ]/A << /S /GoTo /D (subsection.18.6) >> >>
endobj
-1323 0 obj
+1321 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 255.736 204.192 264.971 ]/A << /S /GoTo /D (subsection.18.7) >> >>
endobj
-1324 0 obj
+1322 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 241.948 272.227 253.016 ]/A << /S /GoTo /D (subsection.18.8) >> >>
endobj
-1325 0 obj
+1323 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 229.554 324.451 241.509 ]/A << /S /GoTo /D (subsection.18.9) >> >>
endobj
-1326 0 obj
+1324 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 93.318 218.037 214.145 229.215 ]/A << /S /GoTo /D (subsection.18.10) >> >>
endobj
-1327 0 obj
+1325 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 196.179 132.929 206.999 ]/A << /S /GoTo /D (section.19) >> >>
endobj
-1328 0 obj
+1326 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [ 78.374 176.144 108.74 185.161 ]/A << /S /GoTo /D (section*.2) >> >>
endobj
-1332 0 obj
-<< /D [ 1330 0 R /XYZ 78.37 808.885 null ] >>
+1330 0 obj
+<< /D [ 1328 0 R /XYZ 78.37 808.885 null ] >>
endobj
-1329 0 obj
-<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F66 392 0 R /F15 385 0 R >> /ProcSet [ /PDF /Text ] >>
+1327 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F65 392 0 R /F15 385 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
1 0 obj
<< /pgf@ca0.75 << /ca 0.75 >> /pgf@CA0.4 << /CA 0.4 >> /pgf@ca0.4 << /ca 0.4 >> /pgf@bmMultiply<< /BM /Multiply>> /pgf@ca1.0 << /ca 1.0 >>>>
endobj
2 0 obj
-<< /pgfpat5 835 0 R /pgfpat4 836 0 R /pgfpat10 839 0 R>>
+<< /pgfpat5 833 0 R /pgfpat4 834 0 R /pgfpat10 837 0 R>>
endobj
3 0 obj
<< /pgfprgb [/Pattern /DeviceRGB] >>
endobj
-1335 0 obj
+1333 0 obj
[ 28 [ 510 ] 96 [ 363 ] 118 [ 490 ] ]
endobj
-1337 0 obj
+1335 0 obj
<< /Filter /FlateDecode /Length 17 >>
stream
xc```&
endstream
endobj
-1338 0 obj
+1336 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 692 >>
stream
xcd`aa`ddr N+O,,MIyP#C,9?Xy~s0aS  K,t~L;74G$0GAA5/<"-6300q/,L(Q0200
@@ -5699,10 +5695,10 @@ Nz
>XOoOOo_O߄=<<;WLrxxJ
endstream
endobj
-1336 0 obj
-<< /Type /FontDescriptor /FontName /TZAQYL+LMSans8-Oblique /Flags 4 /FontBBox [ -486 -314 1548 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle -12 /StemV 98 /XHeight 444 /FontFile3 1338 0 R /CIDSet 1337 0 R >>
+1334 0 obj
+<< /Type /FontDescriptor /FontName /TZAQYL+LMSans8-Oblique /Flags 4 /FontBBox [ -486 -314 1548 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle -12 /StemV 98 /XHeight 444 /FontFile3 1336 0 R /CIDSet 1335 0 R >>
endobj
-1339 0 obj
+1337 0 obj
<< /Filter /FlateDecode /Length 374 >>
stream
x}RMo@x=Y45!b7}Md.pwwM[< t7ްOa5C/Zt9jȑl9V,
@@ -5712,23 +5708,23 @@ y@ws$壷9wNF IpCPB }Jy"yr^IKDЙ\_r&
rndfA~
endstream
endobj
-833 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TZAQYL+LMSans8-Oblique /DescendantFonts [ 1340 0 R ] /ToUnicode 1339 0 R >>
+828 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TZAQYL+LMSans8-Oblique /DescendantFonts [ 1338 0 R ] /ToUnicode 1337 0 R >>
endobj
-1340 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TZAQYL+LMSans8-Oblique /FontDescriptor 1336 0 R /W 1335 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1338 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TZAQYL+LMSans8-Oblique /FontDescriptor 1334 0 R /W 1333 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1341 0 obj
+1339 0 obj
[ 56 [ 681 681 ] 82 [ 681 ] 88 [ 403 ] 106 [ 681 681 ] ]
endobj
-1343 0 obj
+1341 0 obj
<< /Filter /FlateDecode /Length 18 >>
stream
xc`

endstream
endobj
-1344 0 obj
+1342 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1129 >>
stream
xuT{LSW[W@N½G2A ^DŽU{io[z(Pp
@@ -5743,10 +5739,10 @@ xuT{LSW[W@N½G2A ^DŽU{io[z(Pp
sn> <TQZPt@ UQ=R]E&ni,lAC#bdČjnpu,;T7>6<4N=$Z#yB<R eD E*yHa)ݤ1^MZN?|@˰veFb&u!}^w@x Q3%Ib4^A_>>:Xk kPT%J@i~ Ρ{(;> Qd"\4-*ۤQ2{[ F:Ј폾u1B}O jkq \5|[P6?}uxzK2iC惾ELm 9cBO"{lz2|Bh4zGo塞.OgW;Ge_
endstream
endobj
-1342 0 obj
-<< /Type /FontDescriptor /FontName /GOIBMZ+LMRoman5-Regular /Flags 4 /FontBBox [ -566 -303 1772 1126 ] /Ascent 1126 /CapHeight 683 /Descent -303 /ItalicAngle 0 /StemV 134 /XHeight 431 /FontFile3 1344 0 R /CIDSet 1343 0 R >>
+1340 0 obj
+<< /Type /FontDescriptor /FontName /GOIBMZ+LMRoman5-Regular /Flags 4 /FontBBox [ -566 -303 1772 1126 ] /Ascent 1126 /CapHeight 683 /Descent -303 /ItalicAngle 0 /StemV 134 /XHeight 431 /FontFile3 1342 0 R /CIDSet 1341 0 R >>
endobj
-1345 0 obj
+1343 0 obj
<< /Filter /FlateDecode /Length 387 >>
stream
x}Rj0+^xI` YYHB)9s*%#ۇ} /4ovM<7J67[e%t6zȐl5t5tg<iq*aتM]bց?M:]}y﫝,21vxjΙSuYf K1l& 3aEK[9L]'a:*ST5%cʼź*.N}QkMY$ 0uk:+|3~4ˣ5KY:T2ʌ ICJ
@@ -5754,28 +5750,28 @@ x}Rj0+^xI` YYHB)9s*%#ۇ} /4ovM<7J67[e%t
rhah⸁CS-f_&[ QJg`jFo[UTq{ ,r}
endstream
endobj
-809 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /GOIBMZ+LMRoman5-Regular /DescendantFonts [ 1346 0 R ] /ToUnicode 1345 0 R >>
+807 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /GOIBMZ+LMRoman5-Regular /DescendantFonts [ 1344 0 R ] /ToUnicode 1343 0 R >>
endobj
-1346 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /GOIBMZ+LMRoman5-Regular /FontDescriptor 1342 0 R /W 1341 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1344 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /GOIBMZ+LMRoman5-Regular /FontDescriptor 1340 0 R /W 1339 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1347 0 obj
+1345 0 obj
[575 575 575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 559 638.9 511.1 638.9 ]
endobj
-1348 0 obj
+1346 0 obj
[1083.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1361.1 ]
endobj
-1349 0 obj
+1347 0 obj
[ 28 [ 603 ] 35 [ 544 ] 43 [ 544 ] 47 [ 603 ] ]
endobj
-1351 0 obj
+1349 0 obj
<< /Filter /FlateDecode /Length 14 >>
stream
xc``
endstream
endobj
-1352 0 obj
+1350 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 900 >>
stream
xڵSoL[U]<t}dmbhAf P(d+}mx{v –@2q5,C~G>D_Yh9sﹹ990AkO4_7 N:
@@ -5790,36 +5786,36 @@ WZVRV
1mb7aKuO[&,ڗ:E["aS4c &8dxgxV6-:'T(Ed|<>a)Z9?'Uؚ
endstream
endobj
-1350 0 obj
-<< /Type /FontDescriptor /FontName /BWIYUD+LMRoman7-Italic /Flags 4 /FontBBox [ -528 -292 1571 1123 ] /Ascent 1123 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 123 /XHeight 431 /FontFile3 1352 0 R /CIDSet 1351 0 R >>
+1348 0 obj
+<< /Type /FontDescriptor /FontName /BWIYUD+LMRoman7-Italic /Flags 4 /FontBBox [ -528 -292 1571 1123 ] /Ascent 1123 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 123 /XHeight 431 /FontFile3 1350 0 R /CIDSet 1349 0 R >>
endobj
-1353 0 obj
+1351 0 obj
<< /Filter /FlateDecode /Length 375 >>
stream
x}R]k0}ϯ{6U@0uBa~`cM.`* BJOι7瞴ɣg XF3fˢ"\DiVychr4НeL
ӳLSñUM(M΁?G6^[U)Lq,h'ɊՁ%> ;Z(9O)/TƫI|qk $wI2
endstream
endobj
-702 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BWIYUD+LMRoman7-Italic /DescendantFonts [ 1354 0 R ] /ToUnicode 1353 0 R >>
+709 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BWIYUD+LMRoman7-Italic /DescendantFonts [ 1352 0 R ] /ToUnicode 1351 0 R >>
endobj
-1354 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BWIYUD+LMRoman7-Italic /FontDescriptor 1350 0 R /W 1349 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1352 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BWIYUD+LMRoman7-Italic /FontDescriptor 1348 0 R /W 1347 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1355 0 obj
+1353 0 obj
[892.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1138.9 0 585.3 ]
endobj
-1356 0 obj
+1354 0 obj
[ 47 [ 525 ] 50 [ 525 ] 64 [ 525 ] 66 [ 525 ] 72 [ 525 ] 77 [ 525 ] 81 [ 525 ] 98 [ 525 ] 102 [ 525 ] 105 [ 525 ] 116 [ 525 ] 118 [ 525 ] ]
endobj
-1358 0 obj
+1356 0 obj
<< /Filter /FlateDecode /Length 21 >>
stream
xc`

endstream
endobj
-1359 0 obj
+1357 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1486 >>
stream
xmU{LG%ʉr9ݚj!A⣩Qx==#Z-w CSV5$֤Uk5ZlS5SuV&Mdv3oeǢ1Ǔ
@@ -5838,10 +5834,10 @@ sƭw¸Om-åu^
T;,;T(w ;h 4
endstream
endobj
-1357 0 obj
-<< /Type /FontDescriptor /FontName /MSSSGB+LMMonoLt10-Bold /Flags 4 /FontBBox [ -454 -308 734 1039 ] /Ascent 1039 /CapHeight 611 /Descent -308 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1359 0 R /CIDSet 1358 0 R >>
+1355 0 obj
+<< /Type /FontDescriptor /FontName /MSSSGB+LMMonoLt10-Bold /Flags 4 /FontBBox [ -454 -308 734 1039 ] /Ascent 1039 /CapHeight 611 /Descent -308 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1357 0 R /CIDSet 1356 0 R >>
endobj
-1360 0 obj
+1358 0 obj
<< /Filter /FlateDecode /Length 420 >>
stream
x}Ok0@zp-;mڔ`$bhRe4
@@ -5850,22 +5846,22 @@ b!~%’]ތGO|{0rV`-L6F j(Qjֈ
aa>>׸1iCU<o3޶g
endstream
endobj
-634 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /MSSSGB+LMMonoLt10-Bold /DescendantFonts [ 1361 0 R ] /ToUnicode 1360 0 R >>
+633 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /MSSSGB+LMMonoLt10-Bold /DescendantFonts [ 1359 0 R ] /ToUnicode 1358 0 R >>
endobj
-1361 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /MSSSGB+LMMonoLt10-Bold /FontDescriptor 1357 0 R /W 1356 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1359 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /MSSSGB+LMMonoLt10-Bold /FontDescriptor 1355 0 R /W 1354 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1362 0 obj
+1360 0 obj
[ 47 [ 590 ] 81 [ 531 ] 98 [ 419 ] 105 [ 413 ] 116 [ 561 ] ]
endobj
-1364 0 obj
+1362 0 obj
<< /Filter /FlateDecode /Length 19 >>
stream
xc`
endstream
endobj
-1365 0 obj
+1363 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1167 >>
stream
x}TmLe^-+]lqShq ls RPG6Zz#"/\{/0a8`
@@ -5880,10 +5876,10 @@ _eR}&:q5d ub cly}xϱ3L7_kNGWg?v
#h}^
endstream
endobj
-1363 0 obj
-<< /Type /FontDescriptor /FontName /JIXNST+LMRomanSlant8-Regular /Flags 4 /FontBBox [ -483 -292 1526 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle -10 /StemV 98 /XHeight 431 /FontFile3 1365 0 R /CIDSet 1364 0 R >>
+1361 0 obj
+<< /Type /FontDescriptor /FontName /JIXNST+LMRomanSlant8-Regular /Flags 4 /FontBBox [ -483 -292 1526 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle -10 /StemV 98 /XHeight 431 /FontFile3 1363 0 R /CIDSet 1362 0 R >>
endobj
-1366 0 obj
+1364 0 obj
<< /Filter /FlateDecode /Length 388 >>
stream
xڍR]k0}ϯ{6tN鄎ĖkM.&%MKR0Џ{9'<l>V :+IT.P "GVlb .e,Yr,Y^slY^$ցn=o4XT$Ϥ;<yZSar6X
@@ -5892,25 +5888,25 @@ s˭1=Ct8VePgdnWJNñ~
δ3\9N#ƃ< =z5A Ӿ<Fx?)q^ݳZkkL m*U=z}+j
endstream
endobj
-607 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JIXNST+LMRomanSlant8-Regular /DescendantFonts [ 1367 0 R ] /ToUnicode 1366 0 R >>
+606 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JIXNST+LMRomanSlant8-Regular /DescendantFonts [ 1365 0 R ] /ToUnicode 1364 0 R >>
endobj
-1367 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JIXNST+LMRomanSlant8-Regular /FontDescriptor 1363 0 R /W 1362 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1365 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JIXNST+LMRomanSlant8-Regular /FontDescriptor 1361 0 R /W 1360 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1368 0 obj
+1366 0 obj
[361.7 429.7 0 0 0 644.7 ]
endobj
-1369 0 obj
+1367 0 obj
[ 28 [ 525 ] 35 [ 525 ] 43 [ 525 ] 47 [ 525 ] 50 [ 525 ] 55 [ 525 ] 63 [ 525 525 ] 66 [ 525 ] 72 [ 525 ] 74 [ 525 525 525 525 ] 81 [ 525 ] 84 [ 525 ] 88 [ 525 ] 96 [ 525 ] 98 [ 525 ] 103 [ 525 ] 105 [ 525 ] 109 [ 525 ] 112 [ 525 ] 116 [ 525 ] 118 [ 525 ] ]
endobj
-1371 0 obj
+1369 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc``Td\ǣaK
endstream
endobj
-1372 0 obj
+1370 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2668 >>
stream
xڍWyX
@@ -5926,10 +5922,10 @@ pDc;
|~b~_Pr6'=:?gбƲ՜ٚ3ܖRj&v>zfC3x22#n"U )wM9=ěm<BA1FB7x[\ݞ@{a7L 
endstream
endobj
-1370 0 obj
-<< /Type /FontDescriptor /FontName /RBEIGJ+LMMonoSlant10-Regular /Flags 4 /FontBBox [ -477 -316 786 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle -10 /StemV 175 /XHeight 431 /FontFile3 1372 0 R /CIDSet 1371 0 R >>
+1368 0 obj
+<< /Type /FontDescriptor /FontName /RBEIGJ+LMMonoSlant10-Regular /Flags 4 /FontBBox [ -477 -316 786 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle -10 /StemV 175 /XHeight 431 /FontFile3 1370 0 R /CIDSet 1369 0 R >>
endobj
-1373 0 obj
+1371 0 obj
<< /Filter /FlateDecode /Length 484 >>
stream
xڍn0<)=P !VRCBIj ld_cZi6R|?{?3yqOz9|_ul؂^)?w%2ϋM!pŅh .%?_~/,J !pJԤP-!$Tϥx"=T?
@@ -5938,24 +5934,24 @@ s}IHiC--"%R 9僥Z6H.)Gz;}[ Ɛ!)R$2A/)
endstream
endobj
478 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RBEIGJ+LMMonoSlant10-Regular /DescendantFonts [ 1374 0 R ] /ToUnicode 1373 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RBEIGJ+LMMonoSlant10-Regular /DescendantFonts [ 1372 0 R ] /ToUnicode 1371 0 R >>
endobj
-1374 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RBEIGJ+LMMonoSlant10-Regular /FontDescriptor 1370 0 R /W 1369 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1372 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RBEIGJ+LMMonoSlant10-Regular /FontDescriptor 1368 0 R /W 1367 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1375 0 obj
+1373 0 obj
[734 ]
endobj
-1376 0 obj
+1374 0 obj
[ 28 [ 549 ] 35 [ 494 ] 40 [ 329 329 ] 43 [ 494 ] 45 [ 329 ] 47 [ 549 ] 50 [ 494 ] 55 [ 329 ] 59 [ 494 ] 63 [ 549 ] 66 [ 329 ] 70 [ 494 ] 72 [ 274 ] 75 [ 878 ] 77 [ 603 ] 81 [ 549 ] 84 [ 549 439 439 ] 88 [ 329 ] 96 [ 453 ] 98 [ 439 ] 104 [ 768 357 ] 109 [ 576 ] 112 [ 494 ] 114 [ 713 ] 116 [ 495 ] 118 [ 521 ] 502 [ 329 ] ]
endobj
-1378 0 obj
+1376 0 obj
<< /Filter /FlateDecode /Length 27 >>
stream
xc``(4ůaU &
endstream
endobj
-1379 0 obj
+1377 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3534 >>
stream
xڭX tW-Y.!,!GISU
@@ -5975,38 +5971,38 @@ Mn >
.H^ڊ)jz!-,J28 w`9 `di>h8ߐ`ju<߉t]!_
endstream
endobj
-1377 0 obj
-<< /Type /FontDescriptor /FontName /ITTKMT+LMRoman8-Italic /Flags 4 /FontBBox [ -489 -292 1472 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 110 /XHeight 431 /FontFile3 1379 0 R /CIDSet 1378 0 R >>
+1375 0 obj
+<< /Type /FontDescriptor /FontName /ITTKMT+LMRoman8-Italic /Flags 4 /FontBBox [ -489 -292 1472 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle -15 /StemV 110 /XHeight 431 /FontFile3 1377 0 R /CIDSet 1376 0 R >>
endobj
-1380 0 obj
+1378 0 obj
<< /Filter /FlateDecode /Length 508 >>
stream
x}Mo0=8!PH )ڥJk6q$kuZb)(Ox͑#g7Nٗ7lqI /Dh[׈ lɷ+qJ;\OSM Ec_?M]>7AE5\6FfĂGι䦩M{7sl}Nv4 d#/j='|չ:5jfj~fRg6/Qm{!#q/˘άRfwp>C[K,@h$m)+ՙjGJ~sDO@0΃$Ilt"Γ 3A!ha)^-h 9hk)܀vE!(䲤 %(AKe E. EВ<[YJ9(jԋQ!DBdI80R)SJAKS. zO2hI%Z giߏ%׮f٠J=hD^&zy/-
endstream
endobj
419 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ITTKMT+LMRoman8-Italic /DescendantFonts [ 1381 0 R ] /ToUnicode 1380 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ITTKMT+LMRoman8-Italic /DescendantFonts [ 1379 0 R ] /ToUnicode 1378 0 R >>
endobj
-1381 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ITTKMT+LMRoman8-Italic /FontDescriptor 1377 0 R /W 1376 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1379 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ITTKMT+LMRoman8-Italic /FontDescriptor 1375 0 R /W 1374 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1382 0 obj
+1380 0 obj
[1123 ]
endobj
-1383 0 obj
+1381 0 obj
[777.8 0 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 388.9 388.9 ]
endobj
-1384 0 obj
+1382 0 obj
[ 28 [ 525 ] 43 [ 489 ] 50 [ 511 ] 64 [ 367 ] 66 [ 256 ] 75 [ 867 ] 77 [ 561 ] 82 [ 550 ] 96 [ 372 ] 105 [ 404 550 550 ] 116 [ 500 ] ]
endobj
-1386 0 obj
+1384 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc```P`X P

endstream
endobj
-1387 0 obj
+1385 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1716 >>
stream
xڍU pEUM,@+v70 X6e -ǀqL!`VK>eKeZ?K1`[4@
@@ -6018,10 +6014,10 @@ NIcO>ܷuecM·:tZ"K 4Hp'L4)v(*(8G:z<9
3##g< AjSS
endstream
endobj
-1385 0 obj
-<< /Type /FontDescriptor /FontName /QJUVUX+LMSans10-Bold /Flags 4 /FontBBox [ -460 -297 1761 1134 ] /Ascent 1134 /CapHeight 694 /Descent -297 /ItalicAngle 0 /StemV 102 /XHeight 458 /FontFile3 1387 0 R /CIDSet 1386 0 R >>
+1383 0 obj
+<< /Type /FontDescriptor /FontName /QJUVUX+LMSans10-Bold /Flags 4 /FontBBox [ -460 -297 1761 1134 ] /Ascent 1134 /CapHeight 694 /Descent -297 /ItalicAngle 0 /StemV 102 /XHeight 458 /FontFile3 1385 0 R /CIDSet 1384 0 R >>
endobj
-1388 0 obj
+1386 0 obj
<< /Filter /FlateDecode /Length 422 >>
stream
x}Kk0stZA04I .O[GX2ȿ[(9gFgƚ{.i6e^5-M&+#u(Qj{ ֈ;.UUw̅^:nZN?k^>eۄG %k8 ImאrZ.MkY<xUZ!!l|^ 
@@ -6030,21 +6026,21 @@ x}Kk0stZA04I .O[GX2ȿ[(9gFgƚ{.i6e^5-M
endstream
endobj
407 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QJUVUX+LMSans10-Bold /DescendantFonts [ 1389 0 R ] /ToUnicode 1388 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QJUVUX+LMSans10-Bold /DescendantFonts [ 1387 0 R ] /ToUnicode 1386 0 R >>
endobj
-1389 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QJUVUX+LMSans10-Bold /FontDescriptor 1385 0 R /W 1384 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1387 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QJUVUX+LMSans10-Bold /FontDescriptor 1383 0 R /W 1382 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1390 0 obj
+1388 0 obj
[ 27 [ 850 547 875 ] 34 [ 800 625 575 ] 38 [ 575 575 ] 42 [ 813 500 ] 46 [ 862 625 ] 49 [ 738 513 563 ] 55 [ 344 563 563 884 563 ] 62 [ 880 625 375 419 313 ] 68 [ 344 ] 70 [ 594 ] 72 [ 313 ] 74 [ 1067 938 880 625 563 ] 80 [ 845 563 563 769 625 438 438 ] 88 [ 313 ] 95 [ 839 460 625 444 ] 100 [ 563 563 ] 104 [ 782 438 563 563 865 625 ] 111 [ 850 594 1162 813 850 594 ] 118 [ 594 688 500 563 656 ] 499 [ 551 551 ] ]
endobj
-1392 0 obj
+1390 0 obj
<< /Filter /FlateDecode /Length 29 >>
stream
xc``6.j߿7?` H
endstream
endobj
-1393 0 obj
+1391 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6916 >>
stream
xڝZ @SW%1W W:uVŽ{vI@YY%j{N:tZT'Ny}{BrϹI-%-]y +V VL}cһA^֑żwF,?GxCl{0l.76\8hyI^)rGY/ M(H1wO $L 4,./JƔ)&Zg)ޝXPx)MVx/4\W(<TA>P:oEtwD7"4:,rd:?HELhDVEz{)C#Q~ފ׮SD)VVLPDz{+fFENu!s"]&EZuV,]轵&GF)|B#^Q*{+{wHTE 5A^FQcxj5rRoPӨLj5CMͣSPR )7j ZNVRQjj ZG6PJI(Oʋ(*
@@ -6078,32 +6074,32 @@ P׈$ g,;0SD̋$j TUU˯kXhaZ
! iJe8%1)8 Kd#jc= _G OOo1gsEh{r Ijw7x:K Zݿs5g1_筸,%+&>XPb?ԁBB'`C*LϗEm KLOg _/=&.*"MqfxR㺳,9s^@5l lW{ig { Xv8-JSz
endstream
endobj
-1391 0 obj
-<< /Type /FontDescriptor /FontName /TIEZGJ+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 1393 0 R /CIDSet 1392 0 R >>
+1389 0 obj
+<< /Type /FontDescriptor /FontName /TIEZGJ+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 1391 0 R /CIDSet 1390 0 R >>
endobj
-1394 0 obj
+1392 0 obj
<< /Filter /FlateDecode /Length 644 >>
stream
x}[0+ԇ7I.kI^HB)}s,ekec;tƻPB <#y&_\5G龹tEL& /Z+h޺-{5u;i+߾?wM]8 Y[s_1v3|<!"`mԲ`JtT|H$;:A0U-kk[lW|L_;ʼ[f/m{N <gJlaKQk6u*m>WfbF-J]3k@~@O<ª hƿBOѹB,=-= DxJd&D' Orh*) A ƈq"hIO@}cEH iE;H#1_2(,#-TT5"3E?eeR-gv'Dn9T'ttDq%Z_qF'&RJURJI $H':HID:EN"r NHrn9|u'-ID9%q/ 7սnV}Luv槆3mZGM#2
endstream
endobj
406 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TIEZGJ+LMRoman12-Bold /DescendantFonts [ 1395 0 R ] /ToUnicode 1394 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TIEZGJ+LMRoman12-Bold /DescendantFonts [ 1393 0 R ] /ToUnicode 1392 0 R >>
endobj
-1395 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TIEZGJ+LMRoman12-Bold /FontDescriptor 1391 0 R /W 1390 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1393 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TIEZGJ+LMRoman12-Bold /FontDescriptor 1389 0 R /W 1388 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1396 0 obj
+1394 0 obj
[ 27 [ 531 531 531 ] 32 [ 531 531 531 531 531 531 531 531 531 531 531 531 531 531 531 531 ] 49 [ 531 531 531 531 531 ] 55 [ 531 531 531 ] 59 [ 531 ] 61 [ 531 531 531 531 ] 66 [ 531 ] 68 [ 531 ] 70 [ 531 531 531 531 531 531 531 531 531 ] 80 [ 531 531 531 ] 84 [ 531 531 531 ] 88 [ 531 ] 91 [ 531 ] 95 [ 531 531 531 531 531 531 531 531 531 531 531 531 531 ] 109 [ 531 531 531 531 531 531 531 531 ] 118 [ 531 ] 120 [ 531 ] ]
endobj
-1398 0 obj
+1396 0 obj
<< /Filter /FlateDecode /Length 25 >>
stream
xc``&

endstream
endobj
-1399 0 obj
+1397 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6684 >>
stream
xڍz \ĐITc1wuV[m"]p)Rwְ@a_nl{EUgݢM۾c/oB~ ޙw=lڙ<<rٛd1~JۭUv*t$c0R#Ot_rt݁o>K5_0 x1y(ǩ/.p| #x $1+ׯ7e"*^sqy}smt_@"V*J̑z̑z*bWr,/"HzɶHcT2JTD^#
@@ -6126,10 +6122,10 @@ svO֛-5rRtnS8(U[ftF\cs
Ut\PYKJwvB1H( H+WqAR2H5~-۟yei xg4n@K*:8:hq_Z}cGyNoL:;q
endstream
endobj
-1397 0 obj
-<< /Type /FontDescriptor /FontName /BAKNBK+LMMono8-Regular /Flags 4 /FontBBox [ -456 -320 743 1014 ] /Ascent 1014 /CapHeight 611 /Descent -320 /ItalicAngle 0 /StemV 177 /XHeight 431 /FontFile3 1399 0 R /CIDSet 1398 0 R >>
+1395 0 obj
+<< /Type /FontDescriptor /FontName /BAKNBK+LMMono8-Regular /Flags 4 /FontBBox [ -456 -320 743 1014 ] /Ascent 1014 /CapHeight 611 /Descent -320 /ItalicAngle 0 /StemV 177 /XHeight 431 /FontFile3 1397 0 R /CIDSet 1396 0 R >>
endobj
-1400 0 obj
+1398 0 obj
<< /Filter /FlateDecode /Length 673 >>
stream
x}Kk0E!]q,YjK@A٦1$EH:'-ZU)W?^m,of6?mjQ秣gk [\V{b0_-VU_ͫ*?
@@ -6140,21 +6136,21 @@ I(($*#1]vNUЩZZBKj BePm2 <<Sˠit7$tB4)i-n
endstream
endobj
397 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BAKNBK+LMMono8-Regular /DescendantFonts [ 1401 0 R ] /ToUnicode 1400 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BAKNBK+LMMono8-Regular /DescendantFonts [ 1399 0 R ] /ToUnicode 1398 0 R >>
endobj
-1401 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BAKNBK+LMMono8-Regular /FontDescriptor 1397 0 R /W 1396 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1399 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BAKNBK+LMMono8-Regular /FontDescriptor 1395 0 R /W 1394 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1402 0 obj
+1400 0 obj
[ 28 [ 510 ] 35 [ 549 ] 43 [ 472 ] 47 [ 549 ] 50 [ 472 ] 63 [ 549 354 ] 66 [ 253 ] 70 [ 519 ] 72 [ 253 ] 75 [ 844 ] 77 [ 549 ] 81 [ 531 ] 84 [ 549 ] 88 [ 295 ] 96 [ 363 ] 98 [ 407 ] 105 [ 384 ] 109 [ 549 ] 112 [ 490 ] 114 [ 726 ] 116 [ 490 ] 118 [ 490 ] ]
endobj
-1404 0 obj
+1402 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc``T`\4ţa*
endstream
endobj
-1405 0 obj
+1403 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1825 >>
stream
xmU}TWC23,--% ~`AFH &"H5`˩,JY+ǮG .Zp`Y{T{a nOߙy3{w$" fY|u.!huD3,Fg+Nf%%'ů$M2Z|ӏt9! &Ltmo
@@ -6166,10 +6162,10 @@ C(ŢhJ@kmDP*2(ّKDY|=K׉D yx^^$Zɇ=f0C
`=d(#p
endstream
endobj
-1403 0 obj
-<< /Type /FontDescriptor /FontName /QQGJDO+LMSans8-Regular /Flags 4 /FontBBox [ -446 -314 1510 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle 0 /StemV 98 /XHeight 444 /FontFile3 1405 0 R /CIDSet 1404 0 R >>
+1401 0 obj
+<< /Type /FontDescriptor /FontName /QQGJDO+LMSans8-Regular /Flags 4 /FontBBox [ -446 -314 1510 1154 ] /Ascent 1154 /CapHeight 694 /Descent -314 /ItalicAngle 0 /StemV 98 /XHeight 444 /FontFile3 1403 0 R /CIDSet 1402 0 R >>
endobj
-1406 0 obj
+1404 0 obj
<< /Filter /FlateDecode /Length 466 >>
stream
x}Mo0
@@ -6179,21 +6175,21 @@ x}Mo0
endstream
endobj
396 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QQGJDO+LMSans8-Regular /DescendantFonts [ 1407 0 R ] /ToUnicode 1406 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QQGJDO+LMSans8-Regular /DescendantFonts [ 1405 0 R ] /ToUnicode 1404 0 R >>
endobj
-1407 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QQGJDO+LMSans8-Regular /FontDescriptor 1403 0 R /W 1402 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1405 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QQGJDO+LMSans8-Regular /FontDescriptor 1401 0 R /W 1400 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1408 0 obj
+1406 0 obj
[ 27 [ 796 531 ] 34 [ 752 590 ] 42 [ 767 472 295 295 ] 47 [ 590 ] 49 [ 723 472 531 ] 54 [ 693 325 531 531 834 531 ] 62 [ 796 590 354 383 295 ] 68 [ 325 ] 70 [ 561 664 295 ] 74 [ 973 885 796 590 531 ] 80 [ 826 531 531 723 590 413 413 ] 88 [ 295 ] 91 [ 561 ] 95 [ 782 414 590 419 ] 100 [ 531 531 531 ] 104 [ 767 413 531 531 796 590 ] 112 [ 561 1091 767 796 561 ] 118 [ 561 649 472 531 620 885 ] 125 [ 590 590 ] 499 [ 502 502 ] 502 [ 295 ] ]
endobj
-1410 0 obj
+1408 0 obj
<< /Filter /FlateDecode /Length 29 >>
stream
xc``0-z߿@
endstream
endobj
-1411 0 obj
+1409 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7359 >>
stream
xڝz\,;d-3:*DcƊ"-,
@@ -6228,10 +6224,10 @@ sL4y_a0
nt``6Doz}Nexi4ff:uQ:+[d Cgr
endstream
endobj
-1409 0 obj
-<< /Type /FontDescriptor /FontName /AUGDZH+LMRoman8-Regular /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 98 /XHeight 431 /FontFile3 1411 0 R /CIDSet 1410 0 R >>
+1407 0 obj
+<< /Type /FontDescriptor /FontName /AUGDZH+LMRoman8-Regular /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 98 /XHeight 431 /FontFile3 1409 0 R /CIDSet 1408 0 R >>
endobj
-1412 0 obj
+1410 0 obj
<< /Filter /FlateDecode /Length 667 >>
stream
x}M0=dɧ + HBbh$DI8kJW>xl;+tgmdW\׬qϕT, h|+{6\ӵ*'V\kԿX{Æ;Ý}~}UFϧu=jW'@gكYf.ۮ =KU,ʜsFdFWCTވ;~2߼ҥ2Zjg:e#b{[ȶTG6|c9I<'IX!zk]ld.l_fwi$ ,BvM6SGLuMW'q*j
@@ -6240,22 +6236,22 @@ TIckAD/3z+ޕH47䯌_`>"P
endstream
endobj
395 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /AUGDZH+LMRoman8-Regular /DescendantFonts [ 1413 0 R ] /ToUnicode 1412 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /AUGDZH+LMRoman8-Regular /DescendantFonts [ 1411 0 R ] /ToUnicode 1410 0 R >>
endobj
-1413 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /AUGDZH+LMRoman8-Regular /FontDescriptor 1409 0 R /W 1408 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1411 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /AUGDZH+LMRoman8-Regular /FontDescriptor 1407 0 R /W 1406 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1414 0 obj
+1412 0 obj
[ 51 [ 611 ] 56 [ 611 611 ] 78 [ 611 ] 82 [ 611 ] 100 [ 611 611 ] 106 [ 611 611 ] 121 [ 611 ] 187 [ 611 ] ]
endobj
-1416 0 obj
+1414 0 obj
<< /Filter /FlateDecode /Length 25 >>
stream
xc`
<  
endstream
endobj
-1417 0 obj
+1415 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1865 >>
stream
xuU{PSW!fe!{[ԶXV >@;ZWK0H^i7፼b@"mEeTݺjwhٵ:ǙDwٙ;~X` &BR$ǿqS
@@ -6272,31 +6268,31 @@ n@ 6]xɊLRLZy`%g!PᇓG HtHm_V6s98wW~
;;=?z=s+Z]]l-%OJ"< #* N6;,a;펆 X^hu
endstream
endobj
-1415 0 obj
-<< /Type /FontDescriptor /FontName /TESQOF+LMRoman6-Regular /Flags 4 /FontBBox [ -515 -298 1647 1125 ] /Ascent 1125 /CapHeight 683 /Descent -298 /ItalicAngle 0 /StemV 117 /XHeight 431 /FontFile3 1417 0 R /CIDSet 1416 0 R >>
+1413 0 obj
+<< /Type /FontDescriptor /FontName /TESQOF+LMRoman6-Regular /Flags 4 /FontBBox [ -515 -298 1647 1125 ] /Ascent 1125 /CapHeight 683 /Descent -298 /ItalicAngle 0 /StemV 117 /XHeight 431 /FontFile3 1415 0 R /CIDSet 1414 0 R >>
endobj
-1418 0 obj
+1416 0 obj
<< /Filter /FlateDecode /Length 413 >>
stream
x}]K0+M/Qps:]x%g3&%m/=IVQ xzޓyKKhxahTl0x0Pψe_mQ` !ת"qűث~[|u6*$;6k#U*a6;H9cTn .!}lv8KRJgOQQT85-V6AL3'k+*} #i
endstream
endobj
394 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TESQOF+LMRoman6-Regular /DescendantFonts [ 1419 0 R ] /ToUnicode 1418 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TESQOF+LMRoman6-Regular /DescendantFonts [ 1417 0 R ] /ToUnicode 1416 0 R >>
endobj
-1419 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TESQOF+LMRoman6-Regular /FontDescriptor 1415 0 R /W 1414 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1417 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TESQOF+LMRoman6-Regular /FontDescriptor 1413 0 R /W 1412 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1420 0 obj
+1418 0 obj
[ 47 [ 624 ] 55 [ 536 ] 59 [ 641 ] 77 [ 613 ] 84 [ 558 ] 96 [ 602 ] 98 [ 458 ] 112 [ 613 ] ]
endobj
-1422 0 obj
+1420 0 obj
<< /Filter /FlateDecode /Length 21 >>
stream
xc`
endstream
endobj
-1423 0 obj
+1421 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1466 >>
stream
x}UkLWa2. ̌-P>P">veg}"ݧX)JUҊ! Zՠ4mmtVl>қ7/9;("#(&|e֔ur1Sk2)\d K%$)$"B*Q%h8G%SbIC*YRU͎4U#Q$!ȯљ(?2YS/) Ώ%* -*c֨s5: zz.k Rff+m53.X<OC+7VhK)Cݴb:O_ JfK-ӻiikJҊsabȜٗA~Aj^Nk4J ]rh?f>˕k +ul!c
@@ -6308,10 +6304,10 @@ x}UkLWa2. ̌-P>P">veg}"ݧX)JUҊ! Zՠ4m
:vS0<OQ:ڈvo=(I/,:̌ jt#"8kXhmdk0$s iOirxPH]GZ}>
endstream
endobj
-1421 0 obj
-<< /Type /FontDescriptor /FontName /IPHWGX+LMRomanCaps10-Regular /Flags 4 /FontBBox [ -496 -290 1501 1100 ] /Ascent 1100 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 106 /XHeight 514 /FontFile3 1423 0 R /CIDSet 1422 0 R >>
+1419 0 obj
+<< /Type /FontDescriptor /FontName /IPHWGX+LMRomanCaps10-Regular /Flags 4 /FontBBox [ -496 -290 1501 1100 ] /Ascent 1100 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 106 /XHeight 514 /FontFile3 1421 0 R /CIDSet 1420 0 R >>
endobj
-1424 0 obj
+1422 0 obj
<< /Filter /FlateDecode /Length 403 >>
stream
xڍ]k0+.)̯0?PټlR|X1d>=9y󦍧6xAMa4`HshL2#Z-М$Deĉdc[4Ɠw];m|,6*K$͋ 6xΩm݉lZ#Gp?QB!tڔRa&Dev !qs8}N\J2m^D 4+E•樅<AQ#Vy~Fk
@@ -6319,21 +6315,21 @@ xڍ]k0+.)̯0?PټlR|X1d>=9y󦍧6xAMa4`HshL
endstream
endobj
393 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /IPHWGX+LMRomanCaps10-Regular /DescendantFonts [ 1425 0 R ] /ToUnicode 1424 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /IPHWGX+LMRomanCaps10-Regular /DescendantFonts [ 1423 0 R ] /ToUnicode 1422 0 R >>
endobj
-1425 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /IPHWGX+LMRomanCaps10-Regular /FontDescriptor 1421 0 R /W 1420 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1423 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /IPHWGX+LMRomanCaps10-Regular /FontDescriptor 1419 0 R /W 1418 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1426 0 obj
+1424 0 obj
[ 27 [ 869 559 ] 34 [ 818 639 575 ] 42 [ 831 511 ] 45 [ 319 882 639 ] 49 [ 756 527 575 ] 54 [ 724 351 575 575 904 575 ] 62 [ 900 639 383 436 319 594 ] 70 [ 607 692 319 ] 74 [ 1092 958 900 639 575 ] 80 [ 864 575 575 786 639 447 447 ] 88 [ 319 ] 95 [ 863 474 639 454 ] 100 [ 575 575 575 ] 104 [ 800 447 575 575 885 639 ] 111 [ 869 607 1189 831 869 607 869 607 703 511 575 ] 125 [ 639 ] 284 [ 575 ] 502 [ 319 ] ]
endobj
-1428 0 obj
+1426 0 obj
<< /Filter /FlateDecode /Length 32 >>
stream
xc``0/y߿wa 8
endstream
endobj
-1429 0 obj
+1427 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6804 >>
stream
xڅY XW&hPZEU.*((D 䄰oo :VRkkVhmm]Zkk{Զr/sN&~QVVL&s\9wׂe.Z?tG
@@ -6372,10 +6368,10 @@ LU]{u3*Zdeoү!f@Qi{r)w19_!x='
iT*l<.Y$yȥ <vLx(7Mt^aff*%r9䙏r[q(pS/Ej>US*xNay-RZ-DyśW=\Q7@b:3LH("B[W&o6/CH=~;>;Wt;[!mB#^U GVg@a̕&0Ma>PNCUƎ>QQr
endstream
endobj
-1427 0 obj
-<< /Type /FontDescriptor /FontName /UFTXJR+LMRoman10-Bold /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /Ascent 1133 /CapHeight 686 /Descent -295 /ItalicAngle 0 /StemV 106 /XHeight 444 /FontFile3 1429 0 R /CIDSet 1428 0 R >>
+1425 0 obj
+<< /Type /FontDescriptor /FontName /UFTXJR+LMRoman10-Bold /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /Ascent 1133 /CapHeight 686 /Descent -295 /ItalicAngle 0 /StemV 106 /XHeight 444 /FontFile3 1427 0 R /CIDSet 1426 0 R >>
endobj
-1430 0 obj
+1428 0 obj
<< /Filter /FlateDecode /Length 649 >>
stream
x}[o0+ڇbVKXm/v46l$p$<R ;smta잳s[x\4Ͳ.'ccC{dom]nMnVK^xfȺ47~xv3&OMx<:~ͮ.i [1mW%sǓՋkc񾲺%[oyrM򋷗7dFEVv{ա؞hƣiw޼'FvѪ\׊ݥ1, lYk5EiL4q S6Y42Vs](C[~d6<O$(MKAbDy
@@ -6384,21 +6380,21 @@ x}[o0+ڇbVKXm/v46l$p$<R ;smta잳s[x
endstream
endobj
392 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /UFTXJR+LMRoman10-Bold /DescendantFonts [ 1431 0 R ] /ToUnicode 1430 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /UFTXJR+LMRoman10-Bold /DescendantFonts [ 1429 0 R ] /ToUnicode 1428 0 R >>
endobj
-1431 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /UFTXJR+LMRoman10-Bold /FontDescriptor 1427 0 R /W 1426 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1429 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /UFTXJR+LMRoman10-Bold /FontDescriptor 1425 0 R /W 1424 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1432 0 obj
+1430 0 obj
[ 28 [ 500 ] 35 [ 556 ] 43 [ 444 ] 45 [ 278 ] 47 [ 556 ] 50 [ 444 ] 52 [ 778 ] 55 [ 306 ] 59 [ 500 ] 62 [ 750 556 333 ] 66 [ 278 ] 70 [ 528 625 278 ] 75 [ 833 ] 77 [ 556 ] 81 [ 500 ] 84 [ 556 ] 88 [ 278 ] 96 [ 392 ] 98 [ 394 ] 104 [ 722 389 ] 109 [ 556 ] 112 [ 528 ] 114 [ 722 750 528 ] 118 [ 528 ] 125 [ 556 ] 502 [ 278 ] ]
endobj
-1434 0 obj
+1432 0 obj
<< /Filter /FlateDecode /Length 28 >>
stream
xc``^<ţa], $&
endstream
endobj
-1435 0 obj
+1433 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 4091 >>
stream
xڝX tSպ>i9!@)c\ [CE
@@ -6424,10 +6420,10 @@ O
QYp*Wcxc] ZV ;eS@UDEZL3v<W}!Grs9A,Q[]2M &S<-Mw+7Zklrp7-^
endstream
endobj
-1433 0 obj
-<< /Type /FontDescriptor /FontName /GRCBCJ+LMRomanSlant10-Regular /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle -10 /StemV 93 /XHeight 431 /FontFile3 1435 0 R /CIDSet 1434 0 R >>
+1431 0 obj
+<< /Type /FontDescriptor /FontName /GRCBCJ+LMRomanSlant10-Regular /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle -10 /StemV 93 /XHeight 431 /FontFile3 1433 0 R /CIDSet 1432 0 R >>
endobj
-1436 0 obj
+1434 0 obj
<< /Filter /FlateDecode /Length 523 >>
stream
xڍK0Ydp;#
@@ -6435,21 +6431,21 @@ ZPaL2,!}r@,1)z%E/P.i</gg/0x´ ?C:ml
endstream
endobj
391 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /GRCBCJ+LMRomanSlant10-Regular /DescendantFonts [ 1437 0 R ] /ToUnicode 1436 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /GRCBCJ+LMRomanSlant10-Regular /DescendantFonts [ 1435 0 R ] /ToUnicode 1434 0 R >>
endobj
-1437 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /GRCBCJ+LMRomanSlant10-Regular /FontDescriptor 1433 0 R /W 1432 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1435 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /GRCBCJ+LMRomanSlant10-Regular /FontDescriptor 1431 0 R /W 1430 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1438 0 obj
+1436 0 obj
[ 28 [ 569 ] 45 [ 323 ] 50 [ 508 569 ] 55 [ 354 569 569 ] 59 [ 569 ] 66 [ 323 ] 75 [ 939 ] 78 [ 569 ] 81 [ 569 569 ] 98 [ 453 ] 100 [ 569 569 ] 105 [ 446 569 569 ] 121 [ 569 ] ]
endobj
-1440 0 obj
+1438 0 obj
<< /Filter /FlateDecode /Length 24 >>
stream
xc````1 S
endstream
endobj
-1441 0 obj
+1439 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2828 >>
stream
x}V TWUD,u̯rI4D-pEmiYT~#ڀ 4Ђ Qh"hqьFLΜ3Lk{^IggB"Xor_+u
@@ -6464,10 +6460,10 @@ B]/NnG"ZΜ[,T[=h pԣj]]
6/T&{TgeeYwgٲlYl[vNuVE
endstream
endobj
-1439 0 obj
-<< /Type /FontDescriptor /FontName /SDPEKN+LMRoman7-Regular /Flags 4 /FontBBox [ -483 -292 1562 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 108 /XHeight 431 /FontFile3 1441 0 R /CIDSet 1440 0 R >>
+1437 0 obj
+<< /Type /FontDescriptor /FontName /SDPEKN+LMRoman7-Regular /Flags 4 /FontBBox [ -483 -292 1562 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 108 /XHeight 431 /FontFile3 1439 0 R /CIDSet 1438 0 R >>
endobj
-1442 0 obj
+1440 0 obj
<< /Filter /FlateDecode /Length 457 >>
stream
x}Ao0
@@ -6476,21 +6472,21 @@ x}Ao0
endstream
endobj
390 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SDPEKN+LMRoman7-Regular /DescendantFonts [ 1443 0 R ] /ToUnicode 1442 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SDPEKN+LMRoman7-Regular /DescendantFonts [ 1441 0 R ] /ToUnicode 1440 0 R >>
endobj
-1443 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SDPEKN+LMRoman7-Regular /FontDescriptor 1439 0 R /W 1438 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1441 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SDPEKN+LMRoman7-Regular /FontDescriptor 1437 0 R /W 1436 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1444 0 obj
+1442 0 obj
[ 27 [ 743 511 ] 35 [ 460 ] 42 [ 716 460 ] 45 [ 307 ] 47 [ 511 ] 49 [ 678 460 511 ] 54 [ 653 307 511 511 ] 59 [ 460 ] 63 [ 511 ] 66 [ 307 ] 70 [ 460 ] 72 [ 256 ] 74 [ 897 818 743 562 511 ] 81 [ 511 511 ] 84 [ 511 ] 95 [ 729 422 562 409 ] 100 [ 511 511 ] 104 [ 716 332 511 511 ] 109 [ 537 ] 112 [ 460 ] 114 [ 664 ] 116 [ 464 ] 118 [ 486 ] 120 [ 409 511 ] 284 [ 511 ] ]
endobj
-1446 0 obj
+1444 0 obj
<< /Filter /FlateDecode /Length 28 >>
stream
xc``0-/͗U0
endstream
endobj
-1447 0 obj
+1445 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6055 >>
stream
xڭy |SenB8Hߩ
@@ -6522,31 +6518,31 @@ gk*?mGD8xO>J>a
σw@]/+N:HR~-4}s>E ߵ9:v
endstream
endobj
-1445 0 obj
-<< /Type /FontDescriptor /FontName /TDKKTE+LMRoman10-Italic /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /Ascent 1125 /CapHeight 683 /Descent -290 /ItalicAngle -15 /StemV 102 /XHeight 431 /FontFile3 1447 0 R /CIDSet 1446 0 R >>
+1443 0 obj
+<< /Type /FontDescriptor /FontName /TDKKTE+LMRoman10-Italic /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /Ascent 1125 /CapHeight 683 /Descent -290 /ItalicAngle -15 /StemV 102 /XHeight 431 /FontFile3 1445 0 R /CIDSet 1444 0 R >>
endobj
-1448 0 obj
+1446 0 obj
<< /Filter /FlateDecode /Length 560 >>
stream
x}Kk0E]jK0 I(:1IJEH:- >ωɯ?Ag[7ThdՔZE)[ה;5eu5ܚ\TcI uWn߯k p?sUVlLeͻя,㜛Z.*)mɦJˎVeLV@>Xew~Pu7ok'UWw49K۞݇q/˘TGxRԊM\h5\fm XlۢT]Oʛxf<?qhƯq2?Eg ӈ8-092#Rp ;%1"LA)2S@&=2DhӼ& z:&}+$/)`BLbGgwS$p7EA.# aѮ"}̓"w킞c pWODS pGϛR^\wU]6Mk=G׍Uw
endstream
endobj
389 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TDKKTE+LMRoman10-Italic /DescendantFonts [ 1449 0 R ] /ToUnicode 1448 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TDKKTE+LMRoman10-Italic /DescendantFonts [ 1447 0 R ] /ToUnicode 1446 0 R >>
endobj
-1449 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TDKKTE+LMRoman10-Italic /FontDescriptor 1445 0 R /W 1444 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1447 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TDKKTE+LMRoman10-Italic /FontDescriptor 1443 0 R /W 1442 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1450 0 obj
+1448 0 obj
[ 27 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 61 [ 525 525 525 525 525 525 525 525 ] 70 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 91 [ 525 ] 95 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 252 [ 525 ] 494 [ 525 ] ]
endobj
-1452 0 obj
+1450 0 obj
<< /Filter /FlateDecode /Length 31 >>
stream
xc``_P>
endstream
endobj
-1453 0 obj
+1451 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7988 >>
stream
xڵzw\D *(;{l+vQ+
@@ -6576,10 +6572,10 @@ Sa{Sr 'Yl:+W'CWy7nsv!g*ǚ 9EЪ5o?ȭ+4 пBٔ
U+qz
endstream
endobj
-1451 0 obj
-<< /Type /FontDescriptor /FontName /MMJPSC+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1453 0 R /CIDSet 1452 0 R >>
+1449 0 obj
+<< /Type /FontDescriptor /FontName /MMJPSC+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1451 0 R /CIDSet 1450 0 R >>
endobj
-1454 0 obj
+1452 0 obj
<< /Filter /FlateDecode /Length 736 >>
stream
x}]k0+B{F,)!24e6̐v.'뜴0ZDtUo/]nxu]}js&ɹ^uq櫪oUNG/)>/Yc:۟6Soe?QQŨtmWսHnEU`E#K]Y-!x(G_͹qUh2#s9Fmڲڋ/29SܐGh:}G'Feϼ' ufv[]4ES1Yiqw@?8 忷P2Kf i(5E
@@ -6587,21 +6583,21 @@ x}]k0+B{F,)!24e6̐v.'뜴0ZDtUo/]nxu]}js
endstream
endobj
388 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /MMJPSC+LMMono10-Regular /DescendantFonts [ 1455 0 R ] /ToUnicode 1454 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /MMJPSC+LMMono10-Regular /DescendantFonts [ 1453 0 R ] /ToUnicode 1452 0 R >>
endobj
-1455 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /MMJPSC+LMMono10-Regular /FontDescriptor 1451 0 R /W 1450 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1453 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /MMJPSC+LMMono10-Regular /FontDescriptor 1449 0 R /W 1448 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1456 0 obj
+1454 0 obj
[ 28 [ 481 ] 35 [ 517 ] 43 [ 444 ] 47 [ 517 ] 50 [ 444 ] 55 [ 306 ] 57 [ 500 ] 59 [ 500 ] 63 [ 517 333 278 239 ] 68 [ 267 ] 70 [ 489 ] 72 [ 239 ] 75 [ 794 ] 77 [ 517 ] 81 [ 500 500 ] 84 [ 517 ] 96 [ 342 ] 98 [ 383 ] 101 [ 500 ] 105 [ 361 500 500 ] 109 [ 517 ] 111 [ 667 461 ] 114 [ 683 ] 116 [ 461 ] 118 [ 461 ] 120 [ 435 ] 125 [ 536 536 ] ]
endobj
-1458 0 obj
+1456 0 obj
<< /Filter /FlateDecode /Length 24 >>
stream
xc``T |5%aI6
endstream
endobj
-1459 0 obj
+1457 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2827 >>
stream
xuV TW1 h@%&RFgjk
@@ -6619,10 +6615,10 @@ m׫&IcT щqRm4T!MKUR:mZr껎u4CHNNUJӒbU:>A% iҥ5
ʊKJm)
endstream
endobj
-1457 0 obj
-<< /Type /FontDescriptor /FontName /JZYRJQ+LMSans10-Regular /Flags 4 /FontBBox [ -420 -309 1431 1154 ] /Ascent 1154 /CapHeight 694 /Descent -309 /ItalicAngle 0 /StemV 93 /XHeight 444 /FontFile3 1459 0 R /CIDSet 1458 0 R >>
+1455 0 obj
+<< /Type /FontDescriptor /FontName /JZYRJQ+LMSans10-Regular /Flags 4 /FontBBox [ -420 -309 1431 1154 ] /Ascent 1154 /CapHeight 694 /Descent -309 /ItalicAngle 0 /StemV 93 /XHeight 444 /FontFile3 1457 0 R /CIDSet 1456 0 R >>
endobj
-1460 0 obj
+1458 0 obj
<< /Filter /FlateDecode /Length 527 >>
stream
x}O0=dqwW(@bS@U[ }m?[$xc&|䞳5YE <HuoDdm؇ ul+Uuw&yYR*uK}pK?—_?/¯Bt8 r{j[uGDf(senZ=sn,득 F^%Ke;+<b&>˓\ڎN+锍Lũ FZԁ ?hr69xeLޔ6'b#;Jh]>vf{iŎ#.kImS u`jL.+ Hɿv{I&>T.-iYP 4vĠ HRУg*<8sG9?|Oc3(@s%>AP&DL'M1FLhI|h,T' .?mzM,nO ~{6\<kmV]v+Eכԍ=
@@ -6630,24 +6626,24 @@ x}O0=dqwW(@bS@U[ }m?[$xc&|䞳5Y
endstream
endobj
387 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JZYRJQ+LMSans10-Regular /DescendantFonts [ 1461 0 R ] /ToUnicode 1460 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JZYRJQ+LMSans10-Regular /DescendantFonts [ 1459 0 R ] /ToUnicode 1458 0 R >>
endobj
-1461 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JZYRJQ+LMSans10-Regular /FontDescriptor 1457 0 R /W 1456 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1459 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JZYRJQ+LMSans10-Regular /FontDescriptor 1455 0 R /W 1454 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1462 0 obj
+1460 0 obj
[388.9 388.9 0 777.8 0 0 0 0 500 500 500 500 500 500 500 500 500 500 0 0 0 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 277.8 0 277.8 0 0 0 0 0 444.4 0 0 0 0 0 277.8 0 0 0 0 555.6 500 0 0 0 394.4 ]
endobj
-1463 0 obj
+1461 0 obj
[ 27 [ 750 500 778 ] 34 [ 708 556 500 ] 38 [ 500 500 ] 42 [ 722 444 278 278 764 556 ] 49 [ 681 444 500 ] 53 [ 278 653 306 500 500 785 500 ] 62 [ 750 556 333 361 278 514 306 778 528 625 278 ] 74 [ 917 833 750 556 500 ] 80 [ 778 500 500 681 556 389 389 ] 88 [ 278 778 ] 91 [ 528 ] 95 [ 736 392 556 394 278 500 500 500 ] 104 [ 722 389 500 500 750 556 ] 111 [ 750 528 1028 722 750 528 750 528 611 444 500 583 833 ] 125 [ 556 556 ] 199 [ 778 ] 234 [ 375 ] 251 [ 444 ] 280 [ 670 ] 283 [ 1000 500 ] 319 [ 556 556 ] 400 [ 778 ] 499 [ 472 472 ] 502 [ 278 ] ]
endobj
-1465 0 obj
+1463 0 obj
<< /Filter /FlateDecode /Length 46 >>
stream
xc``/߿
endstream
endobj
-1466 0 obj
+1464 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 8831 >>
stream
xڵz\W q {-{vMz/"eB]zYXڂ1%&}Kbb~o~X~9
@@ -6686,10 +6682,10 @@ _[^:USӝ~\UEIfGw\)Rsܢ2əgKW6kX؎h'UZUמZ
Bb<:zX)tFӥ~
endstream
endobj
-1464 0 obj
-<< /Type /FontDescriptor /FontName /HRDLGI+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 1466 0 R /CIDSet 1465 0 R >>
+1462 0 obj
+<< /Type /FontDescriptor /FontName /HRDLGI+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 1464 0 R /CIDSet 1463 0 R >>
endobj
-1467 0 obj
+1465 0 obj
<< /Filter /FlateDecode /Length 760 >>
stream
xڅ]o0+J%NT lHTnibX$HP>:MVUsNl7.wKb?ʹ)N{[w֖k+ۉ|1]U/bw*EGܾٟEi׵{K=m/ުnS)ܰlX~X5wq̛7y*雪.[^{$QVEG
@@ -6702,39 +6698,39 @@ BwMBt bw9<c(@ЩIЙރ2 )t*KS1 @GD$d?ݑIPB
endstream
endobj
385 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /HRDLGI+LMRoman10-Regular /DescendantFonts [ 1468 0 R ] /ToUnicode 1467 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /HRDLGI+LMRoman10-Regular /DescendantFonts [ 1466 0 R ] /ToUnicode 1465 0 R >>
endobj
-1468 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /HRDLGI+LMRoman10-Regular /FontDescriptor 1464 0 R /W 1463 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1466 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /HRDLGI+LMRoman10-Regular /FontDescriptor 1462 0 R /W 1461 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1469 0 obj
+1467 0 obj
[446.4 446.4 0 877 0 0 0 0 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 ]
endobj
-1470 0 obj
+1468 0 obj
[500 0 0 0 0 0 0 0 0 0 0 0 277.8 277.8 0 0 0 0 0 750 758.5 714.7 827.9 0 0 0 0 439.6 0 0 680.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 528.6 429.2 432.8 520.5 465.6 489.6 0 576.2 344.5 411.8 520.6 298.4 878 600.2 0 503.1 0 451.2 0 0 572.5 0 0 571.5 490.3 465 ]
endobj
-1471 0 obj
+1469 0 obj
[955.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 533.6 588.2 0 0 0 880.8 ]
endobj
-1472 0 obj
+1470 0 obj
[1027.8 0 0 0 0 0 680.6 680.6 680.6 680.6 ]
endobj
-1473 0 obj
+1471 0 obj
[339.3 0 0 0 585.3 0 0 0 819.4 0 0 0 0 0 0 0 0 783.7 0 0 0 0 0 0 0 674.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 542 0 0 0 404.2 472.7 607.3 0 0 706.2 0 588.9 523.6 0 0 0 0 0 0 647.8 ]
endobj
-1474 0 obj
+1472 0 obj
[333.3 0 0 0 0 0 736.1 736.1 527.8 527.8 0 0 0 0 750 750 0 0 0 0 791.7 791.7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 888.9 0 0 888.9 666.7 875 875 875 875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 555.6 0 0 0 0 0 0 0 0 0 0 0 0 0 472.2 472.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 666.7 666.7 450 450 450 450 ]
endobj
-1475 0 obj
+1473 0 obj
[ 27 [ 525 525 525 525 ] 32 [ 525 525 525 525 525 ] 38 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 59 [ 525 525 ] 62 [ 525 525 525 525 525 525 525 ] 70 [ 525 525 525 ] 74 [ 525 525 525 525 525 ] 80 [ 525 525 525 ] 84 [ 525 525 525 525 525 525 ] 91 [ 525 ] 96 [ 525 525 525 525 525 525 525 525 525 525 525 525 ] 109 [ 525 525 525 525 525 525 ] 116 [ 525 ] 118 [ 525 ] 120 [ 525 525 ] ]
endobj
-1477 0 obj
+1475 0 obj
<< /Filter /FlateDecode /Length 25 >>
stream
xc``_
endstream
endobj
-1478 0 obj
+1476 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 7001 >>
stream
xڅz@SWJ\juWm".\8CFI#8a7(V*V6jZk='
@@ -6777,10 +6773,10 @@ pKTaW5~ByDۖ~d|o~}m<Y>ALM}-vVgI-Bj
.V]zAK^ NP 1¬3֍G- "b@IXx8Ah[M〽U[S5'_9Ki8mf7 62 >Tk0JRڪR2S 9]h7;
endstream
endobj
-1476 0 obj
-<< /Type /FontDescriptor /FontName /BMSACQ+LMMono9-Regular /Flags 4 /FontBBox [ -451 -318 734 1016 ] /Ascent 1016 /CapHeight 611 /Descent -318 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1478 0 R /CIDSet 1477 0 R >>
+1474 0 obj
+<< /Type /FontDescriptor /FontName /BMSACQ+LMMono9-Regular /Flags 4 /FontBBox [ -451 -318 734 1016 ] /Ascent 1016 /CapHeight 611 /Descent -318 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1476 0 R /CIDSet 1475 0 R >>
endobj
-1479 0 obj
+1477 0 obj
<< /Filter /FlateDecode /Length 692 >>
stream
x}OO0BرUJRkH%~Uw@}|{[ǓX'ݶթm<[mf^姣u݋-.xk|m;q;[Η^v]4}m+ُ֓jU1~aI~ (/PmڲrObx$ó+fձFJ]銆:ŶW SQyG
@@ -6790,21 +6786,21 @@ x}OO0BرUJRkH%~Uw@}|{[ǓX'ݶթm<
endstream
endobj
378 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BMSACQ+LMMono9-Regular /DescendantFonts [ 1480 0 R ] /ToUnicode 1479 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BMSACQ+LMMono9-Regular /DescendantFonts [ 1478 0 R ] /ToUnicode 1477 0 R >>
endobj
-1480 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BMSACQ+LMMono9-Regular /FontDescriptor 1476 0 R /W 1475 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1478 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BMSACQ+LMMono9-Regular /FontDescriptor 1474 0 R /W 1473 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1481 0 obj
+1479 0 obj
[ 28 [ 494 ] 43 [ 457 ] 50 [ 457 ] 63 [ 531 ] 66 [ 245 ] 75 [ 816 ] 77 [ 531 ] 96 [ 351 ] 98 [ 394 ] 105 [ 371 ] 116 [ 474 ] 118 [ 474 ] ]
endobj
-1483 0 obj
+1481 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc```P`Ta`X
endstream
endobj
-1484 0 obj
+1482 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1234 >>
stream
xmLWQ`j-:OFKЉ ?c2[{A'eTY@nSadςc1Iej=b//{#@h( br,Cn|Vv)OXY+&>j4MЬĆHCdZqc1ɩ
@@ -6814,10 +6810,10 @@ xmLWQ`j-:OFKЉ ?c2[{A'eTY@nSadςc
7bdxo;ts:<0n${z;[ZhoG6z|t?J
endstream
endobj
-1482 0 obj
-<< /Type /FontDescriptor /FontName /VPHLPO+LMSans9-Regular /Flags 4 /FontBBox [ -433 -313 1466 1155 ] /Ascent 1155 /CapHeight 694 /Descent -313 /ItalicAngle 0 /StemV 95 /XHeight 444 /FontFile3 1484 0 R /CIDSet 1483 0 R >>
+1480 0 obj
+<< /Type /FontDescriptor /FontName /VPHLPO+LMSans9-Regular /Flags 4 /FontBBox [ -433 -313 1466 1155 ] /Ascent 1155 /CapHeight 694 /Descent -313 /ItalicAngle 0 /StemV 95 /XHeight 444 /FontFile3 1482 0 R /CIDSet 1481 0 R >>
endobj
-1485 0 obj
+1483 0 obj
<< /Filter /FlateDecode /Length 419 >>
stream
x}N0~âRY8)UH@+R!}ڱؑ, H3rrn{t-?1pxtV`|-k6*D9DZ#
@@ -6828,21 +6824,21 @@ u0=z0a6 4
endstream
endobj
377 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /VPHLPO+LMSans9-Regular /DescendantFonts [ 1486 0 R ] /ToUnicode 1485 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /VPHLPO+LMSans9-Regular /DescendantFonts [ 1484 0 R ] /ToUnicode 1483 0 R >>
endobj
-1486 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /VPHLPO+LMSans9-Regular /FontDescriptor 1482 0 R /W 1481 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1484 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /VPHLPO+LMSans9-Regular /FontDescriptor 1480 0 R /W 1479 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1487 0 obj
+1485 0 obj
[ 28 [ 514 ] 35 [ 571 ] 43 [ 457 ] 45 [ 286 ] 47 [ 571 ] 50 [ 457 ] 55 [ 314 ] 59 [ 514 ] 63 [ 571 343 ] 66 [ 286 ] 70 [ 542 642 286 ] 75 [ 856 ] 77 [ 571 ] 81 [ 514 ] 84 [ 571 ] 88 [ 286 ] 96 [ 402 ] 98 [ 405 ] 104 [ 742 400 ] 109 [ 571 ] 112 [ 542 ] 114 [ 742 771 542 ] ]
endobj
-1489 0 obj
+1487 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc``U\<ţa
endstream
endobj
-1490 0 obj
+1488 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3281 >>
stream
xڕW XgA QwFgVRWk齲J*V "$p *HѺڧ9Y>L}ϙ'{{`>>@ X{s=Oo޲C%ˎ
@@ -6860,31 +6856,31 @@ BD/נּA[D?S/Ioh |Gf?cr=1r\g[QF2ӻ^%^MÛn
d)&#Y/L1󲵝cLۅ~>v$)YgBX >{]@s@6%?0VS|PYAozů{L:׋$5'R`;HYMǘ$ m۳Ôv750`6 Nc376A~{':TAJi>('txG/3ޗܘ`}k{tl*2`.gnY{\6:[S69{
endstream
endobj
-1488 0 obj
-<< /Type /FontDescriptor /FontName /WLTFCY+LMRoman9-Regular /Flags 4 /FontBBox [ -443 -292 1454 1128 ] /Ascent 1128 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 95 /XHeight 431 /FontFile3 1490 0 R /CIDSet 1489 0 R >>
+1486 0 obj
+<< /Type /FontDescriptor /FontName /WLTFCY+LMRoman9-Regular /Flags 4 /FontBBox [ -443 -292 1454 1128 ] /Ascent 1128 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 95 /XHeight 431 /FontFile3 1488 0 R /CIDSet 1487 0 R >>
endobj
-1491 0 obj
+1489 0 obj
<< /Filter /FlateDecode /Length 492 >>
stream
x}[@&cĐ8&$s<"]$ҐݧI&hSɷ]4GkU7lrIDٻj=l\VNeyYNZӹ)~/.䃿p)Mա/:LGٍ(2?HuU#Yp9<I5f%OYeGc B&wdZ)_\ob3ݹzuٛ*yfu~h ?{i>ע&63BGz>kזXh9ԵEIgVxV[I=Kx1\OPi! 5A!h 6 E,4A PAN%Csr*A3Bh#gdiRAP KcxI0{m%=q*=q*=.0{,Sܐsf/?vҋcnًJ~Mk׾Kjmʾ)T
endstream
endobj
376 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /WLTFCY+LMRoman9-Regular /DescendantFonts [ 1492 0 R ] /ToUnicode 1491 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /WLTFCY+LMRoman9-Regular /DescendantFonts [ 1490 0 R ] /ToUnicode 1489 0 R >>
endobj
-1492 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /WLTFCY+LMRoman9-Regular /FontDescriptor 1488 0 R /W 1487 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1490 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /WLTFCY+LMRoman9-Regular /FontDescriptor 1486 0 R /W 1485 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1493 0 obj
+1491 0 obj
[ 27 [ 893 575 ] 35 [ 657 ] 43 [ 526 ] 96 [ 488 ] 98 [ 467 ] 105 [ 460 ] ]
endobj
-1495 0 obj
+1493 0 obj
<< /Filter /FlateDecode /Length 18 >>
stream
xc```
endstream
endobj
-1496 0 obj
+1494 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1258 >>
stream
xmTmLSW~"]^Gd-DeNNM)R*]mXAQc`lR>TmM [21 ?̖,f{em̖,9=9xiJ*hen(Hγdmo[M ˰)q)-rQ"/J"dZ)}qLKeK)nSO 21w+(&) POh  kګ=҅Vy-4W* 2L(Ӏ (ZJ FkW8jTPiq"Q«C
@@ -6892,32 +6888,32 @@ F`B56@Jm{7
jг{qU 9L*6bӈ<|Hn;`}]{Xn_M3&b-|,#c|)̺nЬ!0d*veX?`=D~M_Ͻ}Z[b# eɶ
endstream
endobj
-1494 0 obj
-<< /Type /FontDescriptor /FontName /RMWBFT+LMRoman9-Bold /Flags 4 /FontBBox [ -501 -299 1649 1136 ] /Ascent 1136 /CapHeight 686 /Descent -299 /ItalicAngle 0 /StemV 110 /XHeight 444 /FontFile3 1496 0 R /CIDSet 1495 0 R >>
+1492 0 obj
+<< /Type /FontDescriptor /FontName /RMWBFT+LMRoman9-Bold /Flags 4 /FontBBox [ -501 -299 1649 1136 ] /Ascent 1136 /CapHeight 686 /Descent -299 /ItalicAngle 0 /StemV 110 /XHeight 444 /FontFile3 1494 0 R /CIDSet 1493 0 R >>
endobj
-1497 0 obj
+1495 0 obj
<< /Filter /FlateDecode /Length 388 >>
stream
x}RMk@ﯘ=lTEVT+^.ݰIQ(@B^ޛf{WNXV3 Vۼ"ZD9׊*]R4#N%;sQg!;~WɂAڒL4#Ggk!|x|J&BHodh\ܓfCx,SY(\Bx0d; 樅<CA#8UuAk(cXf/DmV4קٵB9yLqħ1,7 JTxhcOm(1}(DC+<ء)uh9#q=~e]U7Z:y6x?JU͢ 
endstream
endobj
375 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RMWBFT+LMRoman9-Bold /DescendantFonts [ 1498 0 R ] /ToUnicode 1497 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RMWBFT+LMRoman9-Bold /DescendantFonts [ 1496 0 R ] /ToUnicode 1495 0 R >>
endobj
-1498 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RMWBFT+LMRoman9-Bold /FontDescriptor 1494 0 R /W 1493 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1496 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /RMWBFT+LMRoman9-Bold /FontDescriptor 1492 0 R /W 1491 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1499 0 obj
+1497 0 obj
[ 28 [ 515 ] 33 [ 515 ] 47 [ 515 ] 55 [ 515 ] 59 [ 515 ] 66 [ 515 ] 77 [ 515 ] 81 [ 515 ] 84 [ 515 ] 88 [ 515 ] 96 [ 515 ] 105 [ 515 ] 114 [ 515 ] 118 [ 515 ] ]
endobj
-1501 0 obj
+1499 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc``p`dP`hhpP
D)
endstream
endobj
-1502 0 obj
+1500 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1845 >>
stream
xuV}TW!@5ʚiZ3K- _EAE%1LBD<u
@@ -6932,74 +6928,74 @@ oRWɧ<| ƠP"{nPq%e}Gܮ(WȗN)QuoYUO&Pn^
g48ԂE>*`zK@E%1άxh@,+&p_(N(/?=u0ݕLDB0O>`R Fon0km(V׮Җ ֐F"3DgϷ^?@%xSEV!6¶M:GӞ`x#qNf4e'_%#l|ZQuJeq?HR@8(fu\o!du8iw6s;YpoۚiPH&Ng y[j;rgRsJcOt~w@[fk9RM
endstream
endobj
-1500 0 obj
-<< /Type /FontDescriptor /FontName /CKBVSC+LMMono12-Regular /Flags 4 /FontBBox [ -444 -311 715 1019 ] /Ascent 1019 /CapHeight 611 /Descent -311 /ItalicAngle 0 /StemV 172 /XHeight 431 /FontFile3 1502 0 R /CIDSet 1501 0 R >>
+1498 0 obj
+<< /Type /FontDescriptor /FontName /CKBVSC+LMMono12-Regular /Flags 4 /FontBBox [ -444 -311 715 1019 ] /Ascent 1019 /CapHeight 611 /Descent -311 /ItalicAngle 0 /StemV 172 /XHeight 431 /FontFile3 1500 0 R /CIDSet 1499 0 R >>
endobj
-1503 0 obj
+1501 0 obj
<< /Filter /FlateDecode /Length 428 >>
stream
x}]O0+`Dpf!q%Df,[֞&%.m{&F%pk z:=A[2,5P3
endstream
endobj
374 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /CKBVSC+LMMono12-Regular /DescendantFonts [ 1504 0 R ] /ToUnicode 1503 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /CKBVSC+LMMono12-Regular /DescendantFonts [ 1502 0 R ] /ToUnicode 1501 0 R >>
endobj
-1504 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /CKBVSC+LMMono12-Regular /FontDescriptor 1500 0 R /W 1499 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1502 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /CKBVSC+LMMono12-Regular /FontDescriptor 1498 0 R /W 1497 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1505 0 obj
-[ 28 [ 490 ] 35 [ 544 ] 43 [ 435 ] 45 [ 272 ] 47 [ 544 ] 50 [ 435 ] 54 [ 639 299 ] 57 [ 490 ] 59 [ 490 ] 63 [ 544 ] 66 [ 272 503 ] 75 [ 816 ] 77 [ 544 490 ] 81 [ 490 ] 83 [ 666 544 ] 88 [ 272 ] 96 [ 381 ] 98 [ 386 ] 105 [ 381 ] 107 [ 490 ] 109 [ 544 ] 116 [ 517 ] 118 [ 517 ] 121 [ 490 ] 187 [ 489 ] 257 [ 435 ] ]
+1503 0 obj
+[ 27 [ 734 490 ] 35 [ 544 ] 43 [ 435 ] 45 [ 272 ] 47 [ 544 ] 50 [ 435 ] 54 [ 639 299 ] 57 [ 490 ] 59 [ 490 ] 63 [ 544 ] 66 [ 272 ] 75 [ 816 ] 77 [ 544 ] 81 [ 490 ] 83 [ 666 544 ] 88 [ 272 ] 96 [ 381 ] 98 [ 386 ] 105 [ 381 ] 107 [ 490 ] 109 [ 544 ] 116 [ 517 ] 118 [ 517 ] 121 [ 490 ] 187 [ 489 ] 257 [ 435 ] ]
endobj
-1507 0 obj
+1505 0 obj
<< /Filter /FlateDecode /Length 31 >>
stream
-xc``U4hX
+xc``UThX
endstream
endobj
-1508 0 obj
-<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3569 >>
+1506 0 obj
+<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3456 >>
stream
-xڭX X皞˘VgLX7;mEjU]$ȅp 'o!$$\Pwbػx\]cٝ9{gwyf}xݰu뼐͊(E2MB}s 3Hf¼cH3O6؋sl9{x@3+xAx߸w^U^3I^37^CDwȟy(o"χ=,XHJSԒE ,>! 򓬏PUDc$$~0V%ҸX"V..ѨJDThTs$q*V<(Ji4J%h1RD'.Y%!rT+RIZ_)2Xn?$95}C?uZPJbY/a
-ebTªEt]TW!6 -2EE2$
-\Qe!gg30קu\ %XSVFœsa)@~Tօv bK?$ hBQ*ݟlI9AqQlXldW h{ņSlL #.^0g \SOD$Fa/p3cXKolpXYΎ-N9P
-{ eWQ m&Քy&9ɡi*+)%,
-!\X~J_Hy
-CӓHyjbv
-<jvU:  26^^nyA-=ͤU>!nCXBy|Z>2a3v.w(A[CUAwKOQBl$%
-
-2UoEzmqFY]ʧZrJV{6ft:KWT"l߀u"^eKIHlRuS.kokuVa֛l9ԅKhjFUN%fggڬVky|gnS8/NwˬVuxꈢ3Ydꬄ;/w]|Ǽ`e5:uwbG$*ׁ'BEeSHO&&8
--Zzk\-VKiIR\Z594+
+xڭX Xg˘ؙصoն*URBn@.D(wbֵxlt׵G]umw?Ϟ3ss<g{}o"F丸-̎ްY7?t\KKPnr/ q 8z9h$<4zd):8E0'š_^ p=EL2
+`1
+}{鮔]ԒuJ_#M<}ԉ yE,^F_w<wK;:G)y Z|F:3roç$ajaj_H=CD
+iRH~1; 41GEۘ~eQrQC)Q*}ݔQi=ioQ)m~(k a"N
+Kl6z.6=ڸ,~\~RS 5 M^{eթhLQۙP'u*&xG˳`
+VŬ$e.3ë먯p8
+Ty`?pFZ;||d/=yv~|orIy C?%YofJoTO<u`[1$výR(IPМ-l(c!tD4lAoW̖SɻJ&xɅ#d8}=tdpfxץorHgAK?ҥ[|;n{ {. 1ZL#<Ub Q<'Fbo/C1Y ,mW'EH\OzCּ,MYڦ@KR!w x{EB= mJVޒGJ'o/Yov$&?p#=~2<.B1"NJEz1ÇQ
+薴}Xc)=)LPщs:[^ɯөxkNG[=%@٭F%AS`vhgpԻ%;zAݙ7Rϗ%h}ȣ:?';{<JkA8ESy):qIb\D׾Db$L{W>)>nB߸ MqUNl5ǘ$EA:6ۚ>YB|)w|CB| 53|]^U菼'.S_Yhۊ e4
+(8A$g8bi{mi?;v1DaE,9`w:[2Q؋I9/ xb~Y=Cܦ!%ÊDgKyJG- ~^! ~9E4$-b
+nJR/ GCWxMzbFmZ|9QE6 Uyx% gγ뎯ϓAQ)Ծu(fO[3J;Gڅ^n3xu ?ECk+pQ_WEom\jt_hh#kylS2SU
+t?GXr K*SSZ%F@ Vw!s674'qYg% *.n=~/ְ)4<.sa!Uw\2(we}-_F\(̂+2Gnz%Z`́
endstream
endobj
-1506 0 obj
-<< /Type /FontDescriptor /FontName /QXGKVV+LMRoman12-Regular /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /Ascent 1127 /CapHeight 683 /Descent -280 /ItalicAngle 0 /StemV 91 /XHeight 431 /FontFile3 1508 0 R /CIDSet 1507 0 R >>
+1504 0 obj
+<< /Type /FontDescriptor /FontName /XXSMKT+LMRoman12-Regular /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /Ascent 1127 /CapHeight 683 /Descent -280 /ItalicAngle 0 /StemV 91 /XHeight 431 /FontFile3 1506 0 R /CIDSet 1505 0 R >>
endobj
-1509 0 obj
-<< /Filter /FlateDecode /Length 505 >>
+1507 0 obj
+<< /Filter /FlateDecode /Length 501 >>
stream
-xڅK0YdpHfF(
-( 4_h$DNq**(u||3g:=rTN5`Y]I}#$h>TefE72t'\ȯ3 pn2Ao]2sS/ڋNO&av/l 94lFS!rjh"o߼nݵiSMl'MV7zWT!lxONuu}!#q/M}zJb#Fh^ZUB$畠rR<76Mz$_q g4
-q
-#P"R
-P7 [eAcK']b%1ΐ 1D.Z8 8Q_(K>7]0NWgo\bRzj1;SHm]զ~kӿņ9c/
+xڅn0y
+8$BJ
++]YZ,H,BbH#%!m1619Rbc":$H擥@r5z7! gS΀y1Ncg>c9%vOpu@ ΞMW
+c6z}1WkkA)Gv-mZeE[Co[/-G
endstream
endobj
373 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QXGKVV+LMRoman12-Regular /DescendantFonts [ 1510 0 R ] /ToUnicode 1509 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /XXSMKT+LMRoman12-Regular /DescendantFonts [ 1508 0 R ] /ToUnicode 1507 0 R >>
endobj
-1510 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QXGKVV+LMRoman12-Regular /FontDescriptor 1506 0 R /W 1505 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1508 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /XXSMKT+LMRoman12-Regular /FontDescriptor 1504 0 R /W 1503 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1511 0 obj
+1509 0 obj
[ 28 [ 451 ] 43 [ 418 ] 50 [ 418 ] 66 [ 223 ] 75 [ 745 ] 77 [ 484 ] 96 [ 320 ] 105 [ 340 ] 116 [ 432 ] ]
endobj
-1513 0 obj
+1511 0 obj
<< /Filter /FlateDecode /Length 23 >>
stream
xc```P`Pa`hp
endstream
endobj
-1514 0 obj
+1512 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1024 >>
stream
xuS}LEnY>G[tao(EQ&r irq[]zZ"[%+56m ^(H$!%1?gw1&{&Kz@DVCU弪zOHVhAʕJnfl
@@ -7009,10 +7005,10 @@ xuS}LEnY>G[tao(EQ&r irq[]zZ"[%+56m ^(
CoV< }>q%N鉴4=Z^d
endstream
endobj
-1512 0 obj
-<< /Type /FontDescriptor /FontName /YLODNZ+LMSans17-Regular /Flags 4 /FontBBox [ -395 -305 1355 1159 ] /Ascent 1159 /CapHeight 694 /Descent -305 /ItalicAngle 0 /StemV 87 /XHeight 431 /FontFile3 1514 0 R /CIDSet 1513 0 R >>
+1510 0 obj
+<< /Type /FontDescriptor /FontName /YLODNZ+LMSans17-Regular /Flags 4 /FontBBox [ -395 -305 1355 1159 ] /Ascent 1159 /CapHeight 694 /Descent -305 /ItalicAngle 0 /StemV 87 /XHeight 431 /FontFile3 1512 0 R /CIDSet 1511 0 R >>
endobj
-1515 0 obj
+1513 0 obj
<< /Filter /FlateDecode /Length 404 >>
stream
x}]K0+6s2
@@ -7021,21 +7017,21 @@ nU(MKf`MJ^ߛv8 xzޓyK<p`|Mkj`*֖(5"GW{xъp
endstream
endobj
372 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YLODNZ+LMSans17-Regular /DescendantFonts [ 1516 0 R ] /ToUnicode 1515 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YLODNZ+LMSans17-Regular /DescendantFonts [ 1514 0 R ] /ToUnicode 1513 0 R >>
endobj
-1516 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YLODNZ+LMSans17-Regular /FontDescriptor 1512 0 R /W 1511 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1514 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YLODNZ+LMSans17-Regular /FontDescriptor 1510 0 R /W 1509 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1517 0 obj
+1515 0 obj
[ 28 [ 459 ] 35 [ 511 ] 43 [ 406 ] 50 [ 406 ] 55 [ 276 ] 59 [ 459 ] 63 [ 511 ] 66 [ 250 ] 70 [ 485 ] 72 [ 250 ] 75 [ 772 ] 77 [ 511 ] 81 [ 459 ] 84 [ 511 ] 91 [ 485 ] 96 [ 354 511 359 ] 104 [ 668 354 ] 108 [ 693 511 ] 114 [ 668 ] 126 [ 499 ] ]
endobj
-1519 0 obj
+1517 0 obj
<< /Filter /FlateDecode /Length 24 >>
stream
xc``PT!
endstream
endobj
-1520 0 obj
+1518 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2974 >>
stream
xڕW TW cKCk룮mu"QD!@$@ !hA DCZPRQrd}j_֭n;=;ֶsrn;?xz"i􊈈US#"d鳂)R}s1=~~CQ4AL)_χLq_B9xy pO|; p ?"⠜1>G[3CCg.ei)9#4iq \*JJ驤(3\LFdjv6 ebHm$cklX$S,+d$UIetVbRLfg&J"&!2UdDj8S)&HR)*knH*;%XH (C#F˗E-\,zQ*WEn)dJ*U*_&";ɲDqX8S 52BDB wp$Y D$"$"`e/M'b D!mg n5jWчQM}
@@ -7049,10 +7045,10 @@ Yfi^="s[o\*+3
(<4F;qy;}L&Sl.tVX̥%fZ;g)}
endstream
endobj
-1518 0 obj
-<< /Type /FontDescriptor /FontName /JSPLLU+LMRoman17-Regular /Flags 4 /FontBBox [ -400 -286 1338 1125 ] /Ascent 1125 /CapHeight 683 /Descent -286 /ItalicAngle 0 /StemV 83 /XHeight 431 /FontFile3 1520 0 R /CIDSet 1519 0 R >>
+1516 0 obj
+<< /Type /FontDescriptor /FontName /JSPLLU+LMRoman17-Regular /Flags 4 /FontBBox [ -400 -286 1338 1125 ] /Ascent 1125 /CapHeight 683 /Descent -286 /ItalicAngle 0 /StemV 83 /XHeight 431 /FontFile3 1518 0 R /CIDSet 1517 0 R >>
endobj
-1521 0 obj
+1519 0 obj
<< /Filter /FlateDecode /Length 474 >>
stream
xڅn0y
@@ -7061,12 +7057,12 @@ xڅn0y
endstream
endobj
371 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JSPLLU+LMRoman17-Regular /DescendantFonts [ 1522 0 R ] /ToUnicode 1521 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JSPLLU+LMRoman17-Regular /DescendantFonts [ 1520 0 R ] /ToUnicode 1519 0 R >>
endobj
-1522 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JSPLLU+LMRoman17-Regular /FontDescriptor 1518 0 R /W 1517 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+1520 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JSPLLU+LMRoman17-Regular /FontDescriptor 1516 0 R /W 1515 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
-1524 0 obj
+1522 0 obj
<< /Length1 1484 /Length2 8131 /Length3 0 /Filter /FlateDecode /Length 9124 >>
stream
xڍTm6NHt,) ] .²tJH#]J4" HwwS9w3sM\LtZ2`Di
@@ -7108,10 +7104,10 @@ Mt%ŕTMHtwX:n҅O| ҙi,l59k#E~L.pz/'w/
*2;nYK/G-^䙗;%{F!zd[
endstream
endobj
-1523 0 obj
-<< /Type /FontDescriptor /FontName /XEMCLW+CMBX10 /Flags 4 /FontBBox [ -56 -250 1164 750 ] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet( /a /b /c /d /one /three /two) /FontFile 1524 0 R >>
+1521 0 obj
+<< /Type /FontDescriptor /FontName /XEMCLW+CMBX10 /Flags 4 /FontBBox [ -56 -250 1164 750 ] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet( /a /b /c /d /one /three /two) /FontFile 1522 0 R >>
endobj
-1526 0 obj
+1524 0 obj
<< /Length1 2319 /Length2 9802 /Length3 0 /Filter /FlateDecode /Length 11051 >>
stream
xڍTZ6Lt# 1t*]Jw
@@ -7163,10 +7159,10 @@ l1(fP@weKg}PYۈE[n(#3%[$Bf~΍Nd\zmM0 Y],9Ca0- ub
3H vrH
endstream
endobj
-1525 0 obj
-<< /Type /FontDescriptor /FontName /CFYTDH+CMEX10 /Flags 4 /FontBBox [ -24 -2960 1454 772 ] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 47 /XHeight 431 /CharSet( /arrowbt /arrowtp /arrowvertex /braceex /bracehtipdownleft /bracehtipdownright /bracehtipupleft /bracehtipupright /braceleftbigg /braceleftbt /bracelefttp /bracerightbigg /bracerightbt /bracerighttp /bracketleftBig /bracketleftbigg /bracketleftbt /bracketleftex /bracketlefttp /bracketrightBig /bracketrightbigg /bracketrightbt /bracketrightex /bracketrighttp /integraldisplay /parenleftBigg /parenleftbigg /parenleftbt /parenleftex /parenlefttp /parenrightBigg /parenrightbigg /parenrightbt /parenrightex /parenrighttp /vextendsingle) /FontFile 1526 0 R >>
+1523 0 obj
+<< /Type /FontDescriptor /FontName /CFYTDH+CMEX10 /Flags 4 /FontBBox [ -24 -2960 1454 772 ] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 47 /XHeight 431 /CharSet( /arrowbt /arrowtp /arrowvertex /braceex /bracehtipdownleft /bracehtipdownright /bracehtipupleft /bracehtipupright /braceleftbigg /braceleftbt /bracelefttp /bracerightbigg /bracerightbt /bracerighttp /bracketleftBig /bracketleftbigg /bracketleftbt /bracketleftex /bracketlefttp /bracketrightBig /bracketrightbigg /bracketrightbt /bracketrightex /bracketrighttp /integraldisplay /parenleftBigg /parenleftbigg /parenleftbt /parenleftex /parenlefttp /parenrightBigg /parenrightbigg /parenrightbt /parenrightex /parenrighttp /vextendsingle) /FontFile 1524 0 R >>
endobj
-1528 0 obj
+1526 0 obj
<< /Length1 1396 /Length2 5867 /Length3 0 /Filter /FlateDecode /Length 6812 >>
stream
xڍTTTk&FPAf@II)!f`:% @B$$DSCR@R@i$;9޵]֞=<]@P"T( X$ TV1
@@ -7199,10 +7195,10 @@ mNվ˘jB5̞cvqc~O\Y)O
ݟ~wb@ ݤmπnsA6&wSlYD]+"@?|9mo]fjǾ{sŸܦ}}rIRBR+譜yScC>gamʁt!eU p/k UQSb3Z Wзo.uY&h) @X`0rEC:s,17v TN
endstream
endobj
-1527 0 obj
-<< /Type /FontDescriptor /FontName /VMQSYC+CMEX7 /Flags 4 /FontBBox [ -12 -2951 1627 770 ] /Ascent 49 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 80 /XHeight 431 /CharSet( /radicalbig) /FontFile 1528 0 R >>
+1525 0 obj
+<< /Type /FontDescriptor /FontName /VMQSYC+CMEX7 /Flags 4 /FontBBox [ -12 -2951 1627 770 ] /Ascent 49 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 80 /XHeight 431 /CharSet( /radicalbig) /FontFile 1526 0 R >>
endobj
-1530 0 obj
+1528 0 obj
<< /Length1 1830 /Length2 11276 /Length3 0 /Filter /FlateDecode /Length 12424 >>
stream
xڍT[-kqS'-- @ )V-VSHhq>zsɞ׷;&9,q
@@ -7245,10 +7241,10 @@ t둭Jc_WP5jbep/wUd22>3}֟Bn9MmGvX-i1@?BDVlt[~_
|UƶO3n0&hWA:fBh;2bVF:u(o7Ȕ?xs4ŹNgX%%F}J34G_1˵-{
endstream
endobj
-1529 0 obj
-<< /Type /FontDescriptor /FontName /CEORQM+CMMI10 /Flags 4 /FontBBox [ -32 -250 1048 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet( /A /B /C /D /I /L /a /b /c /comma /d /e /f /h /i /j /k /l /m /n /p /period /r /triangleright /u /x /y /z) /FontFile 1530 0 R >>
+1527 0 obj
+<< /Type /FontDescriptor /FontName /CEORQM+CMMI10 /Flags 4 /FontBBox [ -32 -250 1048 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet( /A /B /C /D /I /L /a /b /c /comma /d /e /f /h /i /j /k /l /m /n /p /period /r /triangleright /u /x /y /z) /FontFile 1528 0 R >>
endobj
-1532 0 obj
+1530 0 obj
<< /Length1 1415 /Length2 6063 /Length3 0 /Filter /FlateDecode /Length 7021 >>
stream
xڍuTk-Xh
@@ -7278,10 +7274,10 @@ OB+F|72{ .2xcZrL_7-_5Km-܁CEMXo]Y1nfɫt/
bUyLq@jƚm#<՗aVY G<^P4~0-)gV2+ \]"X,p aqה-TW'qY'D#_Ē_w"9FuKK
endstream
endobj
-1531 0 obj
-<< /Type /FontDescriptor /FontName /JZMBET+CMMI12 /Flags 4 /FontBBox [ -31 -250 1026 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 65 /XHeight 431 /CharSet( /A) /FontFile 1532 0 R >>
+1529 0 obj
+<< /Type /FontDescriptor /FontName /JZMBET+CMMI12 /Flags 4 /FontBBox [ -31 -250 1026 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 65 /XHeight 431 /CharSet( /A) /FontFile 1530 0 R >>
endobj
-1534 0 obj
+1532 0 obj
<< /Length1 1451 /Length2 6812 /Length3 0 /Filter /FlateDecode /Length 7785 >>
stream
xڍtTk.)]D`A!ASIiICFwZY羞^Fzm=N[5XspEr*
@@ -7315,10 +7311,10 @@ y[f!i;7W%mIJ ﭓ71v(oT(}6u4/^%O8Ϩu(6g
a e|L1iR]ez[
endstream
endobj
-1533 0 obj
-<< /Type /FontDescriptor /FontName /IUHNPC+CMMI5 /Flags 4 /FontBBox [ 37 -250 1349 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 90 /XHeight 431 /CharSet( /L /i /j /n) /FontFile 1534 0 R >>
+1531 0 obj
+<< /Type /FontDescriptor /FontName /IUHNPC+CMMI5 /Flags 4 /FontBBox [ 37 -250 1349 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 90 /XHeight 431 /CharSet( /L /i /j /n) /FontFile 1532 0 R >>
endobj
-1536 0 obj
+1534 0 obj
<< /Length1 1589 /Length2 8523 /Length3 0 /Filter /FlateDecode /Length 9572 >>
stream
xڍTT.LCH "! 0PC!%)-!!%%ֺwZgγ}}jb&6FiPPx`c`accGաp+ȟft&jW= Iq
@@ -7362,10 +7358,10 @@ Sziq`Rky5zX-
_G)JxУ<g|eBy"7t*<
endstream
endobj
-1535 0 obj
-<< /Type /FontDescriptor /FontName /WUDPRN+CMMI7 /Flags 4 /FontBBox [ -1 -250 1171 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet( /C /L /T /comma /e /i /j /k /n /p /q /star /x) /FontFile 1536 0 R >>
+1533 0 obj
+<< /Type /FontDescriptor /FontName /WUDPRN+CMMI7 /Flags 4 /FontBBox [ -1 -250 1171 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet( /C /L /T /comma /e /i /j /k /n /p /q /star /x) /FontFile 1534 0 R >>
endobj
-1538 0 obj
+1536 0 obj
<< /Length1 1438 /Length2 6548 /Length3 0 /Filter /FlateDecode /Length 7523 >>
stream
xڍt4kׯ"ZD0zF5`0!z[H$DDoD#Ir{޻ֽkϳ=6f]>y{-LA
@@ -7402,10 +7398,10 @@ wt/ְj@884}?em\9P?{6jx)*NaqIuoŀ31&
*INS+$3z t$x g6./)~s_2oϒlAS"F!XzP%i3UsLWsOLۈklm܏f(]zj Y2
endstream
endobj
-1537 0 obj
-<< /Type /FontDescriptor /FontName /TEYYDJ+CMMI8 /Flags 4 /FontBBox [ -24 -250 1110 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 78 /XHeight 431 /CharSet( /i /j /n) /FontFile 1538 0 R >>
+1535 0 obj
+<< /Type /FontDescriptor /FontName /TEYYDJ+CMMI8 /Flags 4 /FontBBox [ -24 -250 1110 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 78 /XHeight 431 /CharSet( /i /j /n) /FontFile 1536 0 R >>
endobj
-1540 0 obj
+1538 0 obj
<< /Length1 1744 /Length2 11235 /Length3 0 /Filter /FlateDecode /Length 12356 >>
stream
xڍP.k;wwwwwg!0 w@pBpw
@@ -7452,10 +7448,10 @@ ttoΎфtč!e웩I]8NG'
o獧{{m1` 8>`9X;;FVqvt$3CY(n3@}"ZWkgcQ͞*EkFY<lc ?v0.+Q2SbMXw`Pi.zN o| Ի)n9`VOi{40ơ
endstream
endobj
-1539 0 obj
-<< /Type /FontDescriptor /FontName /IHIWXH+CMR10 /Flags 4 /FontBBox [ -40 -250 1009 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /bracketleft /bracketright /c /eight /equal /five /four /i /n /nine /o /one /parenleft /parenright /plus /s /seven /six /three /two /zero) /FontFile 1540 0 R >>
+1537 0 obj
+<< /Type /FontDescriptor /FontName /IHIWXH+CMR10 /Flags 4 /FontBBox [ -40 -250 1009 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /bracketleft /bracketright /c /eight /equal /five /four /i /n /nine /o /one /parenleft /parenright /plus /s /seven /six /three /two /zero) /FontFile 1538 0 R >>
endobj
-1542 0 obj
+1540 0 obj
<< /Length1 1447 /Length2 6556 /Length3 0 /Filter /FlateDecode /Length 7538 >>
stream
xڍVT\%Kph%CbfI%iP@@$nQJ.7zoZ3{kؙu a '<
@@ -7490,10 +7486,10 @@ eO:[1bo_9ͣh[puK}ks 7\GU0Ǟ6Г?ﱿWy$4kw}zK
2h&ji/,
endstream
endobj
-1541 0 obj
-<< /Type /FontDescriptor /FontName /CPMJUS+CMR5 /Flags 4 /FontBBox [ -10 -250 1304 750 ] /Ascent 694 /CapHeight 680 /Descent -194 /ItalicAngle 0 /StemV 89 /XHeight 431 /CharSet( /four /one /plus /three /two) /FontFile 1542 0 R >>
+1539 0 obj
+<< /Type /FontDescriptor /FontName /CPMJUS+CMR5 /Flags 4 /FontBBox [ -10 -250 1304 750 ] /Ascent 694 /CapHeight 680 /Descent -194 /ItalicAngle 0 /StemV 89 /XHeight 431 /CharSet( /four /one /plus /three /two) /FontFile 1540 0 R >>
endobj
-1544 0 obj
+1542 0 obj
<< /Length1 1595 /Length2 7817 /Length3 0 /Filter /FlateDecode /Length 8871 >>
stream
xڍT6t
@@ -7531,10 +7527,10 @@ Y<Qj8e^z 7r-\
.+g!~ŜI #PAiМ'WXϟf'_}xbK$yv[IoRʢTYiGU$ݡsZ,U+hQ
endstream
endobj
-1543 0 obj
-<< /Type /FontDescriptor /FontName /IZMGNT+CMR7 /Flags 4 /FontBBox [ -27 -250 1122 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet( /eight /five /four /nine /one /parenleft /parenright /plus /seven /six /three /two /zero) /FontFile 1544 0 R >>
+1541 0 obj
+<< /Type /FontDescriptor /FontName /IZMGNT+CMR7 /Flags 4 /FontBBox [ -27 -250 1122 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet( /eight /five /four /nine /one /parenleft /parenright /plus /seven /six /three /two /zero) /FontFile 1542 0 R >>
endobj
-1546 0 obj
+1544 0 obj
<< /Length1 1500 /Length2 6516 /Length3 0 /Filter /FlateDecode /Length 7522 >>
stream
xڍxTڲ6"J5 &*IMj $ґ ޕ*IU@tAs=zoe${f+@PU$
@@ -7577,10 +7573,10 @@ BH'渆m|{m/{.xoH2nE -.w}y'*7.^WeNߚFsU%ϏS
;J!ujE%msCzzFeq0x~ǠAJ/]j z8{FqKeI*1HoA(N{&dY __޴T'EQz
endstream
endobj
-1545 0 obj
-<< /Type /FontDescriptor /FontName /VGMPAA+CMSY10 /Flags 4 /FontBBox [ -29 -960 1116 775 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet( /angbracketleft /angbracketright /arrowleft /minus /multiply) /FontFile 1546 0 R >>
+1543 0 obj
+<< /Type /FontDescriptor /FontName /VGMPAA+CMSY10 /Flags 4 /FontBBox [ -29 -960 1116 775 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet( /angbracketleft /angbracketright /arrowleft /minus /multiply) /FontFile 1544 0 R >>
endobj
-1548 0 obj
+1546 0 obj
<< /Length1 1414 /Length2 6167 /Length3 0 /Filter /FlateDecode /Length 7134 >>
stream
xڍvTTk6(HK7FBADjc`bP:A@:SBRZ@:T@ios5kus=uy8!Jp-BeCS
@@ -7611,10 +7607,10 @@ n<Ȧ
.7z ^XEi[S<p15*;Aջ<d*+w]`ӷ3I4e:dz펢4)AwTiw||/KKj-Tf bS(Tq#z%I`uk9K^e[ZwʣzI|U|˄&eVJ6Sgߪa^4ǵ+ wN\EVةzew`wؓ/:71ἠP@᣸Ft7^HXfM[vU:x'?ibi ZM}&Od@9fcHMFKlpUe]:AE)(xȘkmD@~ F0ANǞEiXQRm9l%i;mFo1j 1^{WG 7HO ]ȉ")UjzlL?o
endstream
endobj
-1547 0 obj
-<< /Type /FontDescriptor /FontName /UZBPXA+CMSY5 /Flags 4 /FontBBox [ 21 -944 1448 791 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 56 /XHeight 431 /CharSet( /arrowleft /minus) /FontFile 1548 0 R >>
+1545 0 obj
+<< /Type /FontDescriptor /FontName /UZBPXA+CMSY5 /Flags 4 /FontBBox [ 21 -944 1448 791 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 56 /XHeight 431 /CharSet( /arrowleft /minus) /FontFile 1546 0 R >>
endobj
-1550 0 obj
+1548 0 obj
<< /Length1 1435 /Length2 6179 /Length3 0 /Filter /FlateDecode /Length 7153 >>
stream
xڍtT[.(0 ! ҂030 ݍ%* R-Hw7"|ugYxeP%
@@ -7643,89 +7639,89 @@ d"`tUe>!%_lkhCgKOnW~yң@᪘+>1#1VGp.ArrfSb
;jjIZxٱ1INzfݪy1M3"}~]\耆n>s5RQܶ nzp~Fqkqܲ='8~*}
endstream
endobj
-1549 0 obj
-<< /Type /FontDescriptor /FontName /QYJPQA+CMSY7 /Flags 4 /FontBBox [ -15 -951 1251 782 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 49 /XHeight 431 /CharSet( /arrowleft /arrowup /minus) /FontFile 1550 0 R >>
+1547 0 obj
+<< /Type /FontDescriptor /FontName /QYJPQA+CMSY7 /Flags 4 /FontBBox [ -15 -951 1251 782 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 49 /XHeight 431 /CharSet( /arrowleft /arrowup /minus) /FontFile 1548 0 R >>
endobj
-764 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /XEMCLW+CMBX10 /FontDescriptor 1523 0 R /FirstChar 49 /LastChar 100 /Widths 1347 0 R >>
+762 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /XEMCLW+CMBX10 /FontDescriptor 1521 0 R /FirstChar 49 /LastChar 100 /Widths 1345 0 R >>
endobj
379 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CFYTDH+CMEX10 /FontDescriptor 1525 0 R /FirstChar 12 /LastChar 125 /Widths 1474 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CFYTDH+CMEX10 /FontDescriptor 1523 0 R /FirstChar 12 /LastChar 125 /Widths 1472 0 R >>
endobj
414 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /VMQSYC+CMEX7 /FontDescriptor 1527 0 R /FirstChar 112 /LastChar 112 /Widths 1382 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /VMQSYC+CMEX7 /FontDescriptor 1525 0 R /FirstChar 112 /LastChar 112 /Widths 1380 0 R >>
endobj
383 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CEORQM+CMMI10 /FontDescriptor 1529 0 R /FirstChar 46 /LastChar 122 /Widths 1470 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CEORQM+CMMI10 /FontDescriptor 1527 0 R /FirstChar 46 /LastChar 122 /Widths 1468 0 R >>
endobj
427 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /JZMBET+CMMI12 /FontDescriptor 1531 0 R /FirstChar 65 /LastChar 65 /Widths 1375 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /JZMBET+CMMI12 /FontDescriptor 1529 0 R /FirstChar 65 /LastChar 65 /Widths 1373 0 R >>
endobj
382 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /IUHNPC+CMMI5 /FontDescriptor 1533 0 R /FirstChar 76 /LastChar 110 /Widths 1471 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /IUHNPC+CMMI5 /FontDescriptor 1531 0 R /FirstChar 76 /LastChar 110 /Widths 1469 0 R >>
endobj
380 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /WUDPRN+CMMI7 /FontDescriptor 1535 0 R /FirstChar 59 /LastChar 120 /Widths 1473 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /WUDPRN+CMMI7 /FontDescriptor 1533 0 R /FirstChar 59 /LastChar 120 /Widths 1471 0 R >>
endobj
489 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /TEYYDJ+CMMI8 /FontDescriptor 1537 0 R /FirstChar 105 /LastChar 110 /Widths 1368 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /TEYYDJ+CMMI8 /FontDescriptor 1535 0 R /FirstChar 105 /LastChar 110 /Widths 1366 0 R >>
endobj
386 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /IHIWXH+CMR10 /FontDescriptor 1539 0 R /FirstChar 40 /LastChar 115 /Widths 1462 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /IHIWXH+CMR10 /FontDescriptor 1537 0 R /FirstChar 40 /LastChar 115 /Widths 1460 0 R >>
endobj
381 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /CPMJUS+CMR5 /FontDescriptor 1541 0 R /FirstChar 43 /LastChar 52 /Widths 1472 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /CPMJUS+CMR5 /FontDescriptor 1539 0 R /FirstChar 43 /LastChar 52 /Widths 1470 0 R >>
endobj
384 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /IZMGNT+CMR7 /FontDescriptor 1543 0 R /FirstChar 40 /LastChar 57 /Widths 1469 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /IZMGNT+CMR7 /FontDescriptor 1541 0 R /FirstChar 40 /LastChar 57 /Widths 1467 0 R >>
endobj
408 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /VGMPAA+CMSY10 /FontDescriptor 1545 0 R /FirstChar 0 /LastChar 105 /Widths 1383 0 R >>
+<< /Type /Font /Subtype /Type1 /BaseFont /VGMPAA+CMSY10 /FontDescriptor 1543 0 R /FirstChar 0 /LastChar 105 /Widths 1381 0 R >>
endobj
-753 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /UZBPXA+CMSY5 /FontDescriptor 1547 0 R /FirstChar 0 /LastChar 32 /Widths 1348 0 R >>
+761 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /UZBPXA+CMSY5 /FontDescriptor 1545 0 R /FirstChar 0 /LastChar 32 /Widths 1346 0 R >>
endobj
-653 0 obj
-<< /Type /Font /Subtype /Type1 /BaseFont /QYJPQA+CMSY7 /FontDescriptor 1549 0 R /FirstChar 0 /LastChar 34 /Widths 1355 0 R >>
+652 0 obj
+<< /Type /Font /Subtype /Type1 /BaseFont /QYJPQA+CMSY7 /FontDescriptor 1547 0 R /FirstChar 0 /LastChar 34 /Widths 1353 0 R >>
endobj
398 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 365 0 R 403 0 R 411 0 R 424 0 R 441 0 R 450 0 R 455 0 R 459 0 R 463 0 R 470 0 R ] >>
+<< /Type /Pages /Parent 1549 0 R /Count 10 /Kids [ 365 0 R 403 0 R 411 0 R 424 0 R 441 0 R 450 0 R 455 0 R 459 0 R 463 0 R 470 0 R ] >>
endobj
479 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 475 0 R 486 0 R 498 0 R 505 0 R 510 0 R 515 0 R 520 0 R 528 0 R 535 0 R 541 0 R ] >>
+<< /Type /Pages /Parent 1549 0 R /Count 10 /Kids [ 475 0 R 486 0 R 498 0 R 505 0 R 510 0 R 515 0 R 520 0 R 528 0 R 535 0 R 541 0 R ] >>
endobj
551 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 548 0 R 554 0 R 560 0 R 568 0 R 574 0 R 579 0 R 588 0 R 597 0 R 604 0 R 611 0 R ] >>
+<< /Type /Pages /Parent 1549 0 R /Count 10 /Kids [ 548 0 R 555 0 R 559 0 R 567 0 R 573 0 R 578 0 R 587 0 R 596 0 R 603 0 R 610 0 R ] >>
endobj
-619 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 616 0 R 624 0 R 631 0 R 638 0 R 650 0 R 658 0 R 665 0 R 673 0 R 679 0 R 690 0 R ] >>
+618 0 obj
+<< /Type /Pages /Parent 1549 0 R /Count 10 /Kids [ 615 0 R 623 0 R 630 0 R 637 0 R 649 0 R 657 0 R 664 0 R 672 0 R 678 0 R 685 0 R ] >>
endobj
-706 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 698 0 R 711 0 R 716 0 R 730 0 R 740 0 R 745 0 R 750 0 R 761 0 R 770 0 R 779 0 R ] >>
+699 0 obj
+<< /Type /Pages /Parent 1549 0 R /Count 10 /Kids [ 696 0 R 705 0 R 715 0 R 729 0 R 738 0 R 743 0 R 748 0 R 758 0 R 767 0 R 775 0 R ] >>
endobj
-790 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 787 0 R 794 0 R 800 0 R 806 0 R 813 0 R 821 0 R 830 0 R 845 0 R 852 0 R 857 0 R ] >>
+787 0 obj
+<< /Type /Pages /Parent 1549 0 R /Count 10 /Kids [ 784 0 R 792 0 R 798 0 R 804 0 R 811 0 R 817 0 R 825 0 R 843 0 R 850 0 R 854 0 R ] >>
endobj
-868 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 865 0 R 870 0 R 874 0 R 878 0 R 882 0 R 886 0 R 891 0 R 896 0 R 900 0 R 904 0 R ] >>
+866 0 obj
+<< /Type /Pages /Parent 1549 0 R /Count 10 /Kids [ 863 0 R 868 0 R 872 0 R 876 0 R 880 0 R 884 0 R 889 0 R 894 0 R 898 0 R 902 0 R ] >>
endobj
-911 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 10 /Kids [ 908 0 R 913 0 R 917 0 R 921 0 R 925 0 R 929 0 R 1048 0 R 1152 0 R 1230 0 R 1282 0 R ] >>
+909 0 obj
+<< /Type /Pages /Parent 1549 0 R /Count 10 /Kids [ 906 0 R 911 0 R 915 0 R 919 0 R 923 0 R 927 0 R 1046 0 R 1150 0 R 1228 0 R 1280 0 R ] >>
endobj
-1333 0 obj
-<< /Type /Pages /Parent 1551 0 R /Count 1 /Kids [ 1330 0 R ] >>
+1331 0 obj
+<< /Type /Pages /Parent 1549 0 R /Count 1 /Kids [ 1328 0 R ] >>
endobj
-1551 0 obj
-<< /Type /Pages /Count 81 /Kids [ 398 0 R 479 0 R 551 0 R 619 0 R 706 0 R 790 0 R 868 0 R 911 0 R 1333 0 R ] >>
+1549 0 obj
+<< /Type /Pages /Count 81 /Kids [ 398 0 R 479 0 R 551 0 R 618 0 R 699 0 R 787 0 R 866 0 R 909 0 R 1331 0 R ] >>
endobj
-1552 0 obj
+1550 0 obj
<< /Type /Outlines /First 6 0 R /Last 362 0 R /Count 20 >>
endobj
362 0 obj
-<< /Title 363 0 R /A 360 0 R /Parent 1552 0 R /Prev 358 0 R >>
+<< /Title 363 0 R /A 360 0 R /Parent 1550 0 R /Prev 358 0 R >>
endobj
358 0 obj
-<< /Title 359 0 R /A 356 0 R /Parent 1552 0 R /Prev 314 0 R /Next 362 0 R >>
+<< /Title 359 0 R /A 356 0 R /Parent 1550 0 R /Prev 314 0 R /Next 362 0 R >>
endobj
354 0 obj
<< /Title 355 0 R /A 352 0 R /Parent 314 0 R /Prev 350 0 R >>
@@ -7758,7 +7754,7 @@ endobj
<< /Title 319 0 R /A 316 0 R /Parent 314 0 R /Next 322 0 R >>
endobj
314 0 obj
-<< /Title 315 0 R /A 312 0 R /Parent 1552 0 R /Prev 294 0 R /Next 358 0 R /First 318 0 R /Last 354 0 R /Count -10 >>
+<< /Title 315 0 R /A 312 0 R /Parent 1550 0 R /Prev 294 0 R /Next 358 0 R /First 318 0 R /Last 354 0 R /Count -10 >>
endobj
310 0 obj
<< /Title 311 0 R /A 308 0 R /Parent 294 0 R /Prev 306 0 R >>
@@ -7773,10 +7769,10 @@ endobj
<< /Title 299 0 R /A 296 0 R /Parent 294 0 R /Next 302 0 R >>
endobj
294 0 obj
-<< /Title 295 0 R /A 292 0 R /Parent 1552 0 R /Prev 290 0 R /Next 314 0 R /First 298 0 R /Last 310 0 R /Count -4 >>
+<< /Title 295 0 R /A 292 0 R /Parent 1550 0 R /Prev 290 0 R /Next 314 0 R /First 298 0 R /Last 310 0 R /Count -4 >>
endobj
290 0 obj
-<< /Title 291 0 R /A 288 0 R /Parent 1552 0 R /Prev 262 0 R /Next 294 0 R >>
+<< /Title 291 0 R /A 288 0 R /Parent 1550 0 R /Prev 262 0 R /Next 294 0 R >>
endobj
286 0 obj
<< /Title 287 0 R /A 284 0 R /Parent 262 0 R /Prev 282 0 R >>
@@ -7797,7 +7793,7 @@ endobj
<< /Title 267 0 R /A 264 0 R /Parent 262 0 R /Next 278 0 R /First 270 0 R /Last 274 0 R /Count -2 >>
endobj
262 0 obj
-<< /Title 263 0 R /A 260 0 R /Parent 1552 0 R /Prev 214 0 R /Next 290 0 R /First 266 0 R /Last 286 0 R /Count -4 >>
+<< /Title 263 0 R /A 260 0 R /Parent 1550 0 R /Prev 214 0 R /Next 290 0 R /First 266 0 R /Last 286 0 R /Count -4 >>
endobj
258 0 obj
<< /Title 259 0 R /A 256 0 R /Parent 214 0 R /Prev 254 0 R >>
@@ -7833,7 +7829,7 @@ endobj
<< /Title 219 0 R /A 216 0 R /Parent 214 0 R /Next 222 0 R >>
endobj
214 0 obj
-<< /Title 215 0 R /A 212 0 R /Parent 1552 0 R /Prev 190 0 R /Next 262 0 R /First 218 0 R /Last 258 0 R /Count -11 >>
+<< /Title 215 0 R /A 212 0 R /Parent 1550 0 R /Prev 190 0 R /Next 262 0 R /First 218 0 R /Last 258 0 R /Count -11 >>
endobj
210 0 obj
<< /Title 211 0 R /A 208 0 R /Parent 190 0 R /Prev 206 0 R >>
@@ -7851,7 +7847,7 @@ endobj
<< /Title 195 0 R /A 192 0 R /Parent 190 0 R /Next 198 0 R >>
endobj
190 0 obj
-<< /Title 191 0 R /A 188 0 R /Parent 1552 0 R /Prev 170 0 R /Next 214 0 R /First 194 0 R /Last 210 0 R /Count -5 >>
+<< /Title 191 0 R /A 188 0 R /Parent 1550 0 R /Prev 170 0 R /Next 214 0 R /First 194 0 R /Last 210 0 R /Count -5 >>
endobj
186 0 obj
<< /Title 187 0 R /A 184 0 R /Parent 170 0 R /Prev 182 0 R >>
@@ -7866,10 +7862,10 @@ endobj
<< /Title 175 0 R /A 172 0 R /Parent 170 0 R /Next 178 0 R >>
endobj
170 0 obj
-<< /Title 171 0 R /A 168 0 R /Parent 1552 0 R /Prev 166 0 R /Next 190 0 R /First 174 0 R /Last 186 0 R /Count -4 >>
+<< /Title 171 0 R /A 168 0 R /Parent 1550 0 R /Prev 166 0 R /Next 190 0 R /First 174 0 R /Last 186 0 R /Count -4 >>
endobj
166 0 obj
-<< /Title 167 0 R /A 164 0 R /Parent 1552 0 R /Prev 138 0 R /Next 170 0 R >>
+<< /Title 167 0 R /A 164 0 R /Parent 1550 0 R /Prev 138 0 R /Next 170 0 R >>
endobj
162 0 obj
<< /Title 163 0 R /A 160 0 R /Parent 138 0 R /Prev 158 0 R >>
@@ -7890,10 +7886,10 @@ endobj
<< /Title 143 0 R /A 140 0 R /Parent 138 0 R /Next 146 0 R >>
endobj
138 0 obj
-<< /Title 139 0 R /A 136 0 R /Parent 1552 0 R /Prev 134 0 R /Next 166 0 R /First 142 0 R /Last 162 0 R /Count -6 >>
+<< /Title 139 0 R /A 136 0 R /Parent 1550 0 R /Prev 134 0 R /Next 166 0 R /First 142 0 R /Last 162 0 R /Count -6 >>
endobj
134 0 obj
-<< /Title 135 0 R /A 132 0 R /Parent 1552 0 R /Prev 118 0 R /Next 138 0 R >>
+<< /Title 135 0 R /A 132 0 R /Parent 1550 0 R /Prev 118 0 R /Next 138 0 R >>
endobj
130 0 obj
<< /Title 131 0 R /A 128 0 R /Parent 118 0 R /Prev 126 0 R >>
@@ -7905,10 +7901,10 @@ endobj
<< /Title 123 0 R /A 120 0 R /Parent 118 0 R /Next 126 0 R >>
endobj
118 0 obj
-<< /Title 119 0 R /A 116 0 R /Parent 1552 0 R /Prev 114 0 R /Next 134 0 R /First 122 0 R /Last 130 0 R /Count -3 >>
+<< /Title 119 0 R /A 116 0 R /Parent 1550 0 R /Prev 114 0 R /Next 134 0 R /First 122 0 R /Last 130 0 R /Count -3 >>
endobj
114 0 obj
-<< /Title 115 0 R /A 112 0 R /Parent 1552 0 R /Prev 94 0 R /Next 118 0 R >>
+<< /Title 115 0 R /A 112 0 R /Parent 1550 0 R /Prev 94 0 R /Next 118 0 R >>
endobj
110 0 obj
<< /Title 111 0 R /A 108 0 R /Parent 94 0 R /Prev 106 0 R >>
@@ -7923,7 +7919,7 @@ endobj
<< /Title 99 0 R /A 96 0 R /Parent 94 0 R /Next 102 0 R >>
endobj
94 0 obj
-<< /Title 95 0 R /A 92 0 R /Parent 1552 0 R /Prev 50 0 R /Next 114 0 R /First 98 0 R /Last 110 0 R /Count -4 >>
+<< /Title 95 0 R /A 92 0 R /Parent 1550 0 R /Prev 50 0 R /Next 114 0 R /First 98 0 R /Last 110 0 R /Count -4 >>
endobj
90 0 obj
<< /Title 91 0 R /A 88 0 R /Parent 70 0 R /Prev 86 0 R >>
@@ -7956,7 +7952,7 @@ endobj
<< /Title 55 0 R /A 52 0 R /Parent 50 0 R /Next 66 0 R /First 58 0 R /Last 62 0 R /Count -2 >>
endobj
50 0 obj
-<< /Title 51 0 R /A 48 0 R /Parent 1552 0 R /Prev 18 0 R /Next 94 0 R /First 54 0 R /Last 70 0 R /Count -3 >>
+<< /Title 51 0 R /A 48 0 R /Parent 1550 0 R /Prev 18 0 R /Next 94 0 R /First 54 0 R /Last 70 0 R /Count -3 >>
endobj
46 0 obj
<< /Title 47 0 R /A 44 0 R /Parent 18 0 R /Prev 42 0 R >>
@@ -7980,1618 +7976,1616 @@ endobj
<< /Title 23 0 R /A 20 0 R /Parent 18 0 R /Next 26 0 R >>
endobj
18 0 obj
-<< /Title 19 0 R /A 16 0 R /Parent 1552 0 R /Prev 14 0 R /Next 50 0 R /First 22 0 R /Last 46 0 R /Count -7 >>
+<< /Title 19 0 R /A 16 0 R /Parent 1550 0 R /Prev 14 0 R /Next 50 0 R /First 22 0 R /Last 46 0 R /Count -7 >>
endobj
14 0 obj
-<< /Title 15 0 R /A 12 0 R /Parent 1552 0 R /Prev 10 0 R /Next 18 0 R >>
+<< /Title 15 0 R /A 12 0 R /Parent 1550 0 R /Prev 10 0 R /Next 18 0 R >>
endobj
10 0 obj
-<< /Title 11 0 R /A 8 0 R /Parent 1552 0 R /Prev 6 0 R /Next 14 0 R >>
+<< /Title 11 0 R /A 8 0 R /Parent 1550 0 R /Prev 6 0 R /Next 14 0 R >>
endobj
6 0 obj
-<< /Title 7 0 R /A 4 0 R /Parent 1552 0 R /Next 10 0 R >>
+<< /Title 7 0 R /A 4 0 R /Parent 1550 0 R /Next 10 0 R >>
+endobj
+1551 0 obj
+<< /Names [ (Doc-Start) 370 0 R (Item.1) 415 0 R (Item.10) 725 0 R (Item.11) 859 0 R (Item.12) 860 0 R (Item.2) 416 0 R (Item.3) 417 0 R (Item.4) 418 0 R (Item.5) 711 0 R (Item.6) 712 0 R (Item.7) 722 0 R (Item.8) 723 0 R (Item.9) 724 0 R (page.1) 369 0 R (page.10) 472 0 R (page.11) 477 0 R (page.12) 488 0 R (page.13) 500 0 R (page.14) 507 0 R (page.15) 512 0 R (page.16) 517 0 R (page.17) 522 0 R (page.18) 530 0 R (page.19) 537 0 R (page.2) 405 0 R (page.20) 543 0 R (page.21) 550 0 R (page.22) 557 0 R (page.23) 561 0 R (page.24) 569 0 R (page.25) 575 0 R (page.26) 580 0 R ] /Limits [ (Doc-Start) (page.26) ] >>
+endobj
+1552 0 obj
+<< /Names [ (page.27) 589 0 R (page.28) 598 0 R (page.29) 605 0 R (page.3) 413 0 R (page.30) 612 0 R (page.31) 617 0 R (page.32) 625 0 R (page.33) 632 0 R (page.34) 639 0 R (page.35) 651 0 R (page.36) 659 0 R (page.37) 666 0 R (page.38) 674 0 R (page.39) 680 0 R (page.4) 426 0 R (page.40) 687 0 R (page.41) 698 0 R (page.42) 707 0 R (page.43) 717 0 R (page.44) 731 0 R (page.45) 740 0 R (page.46) 745 0 R (page.47) 750 0 R (page.48) 760 0 R (page.49) 769 0 R (page.5) 443 0 R (page.50) 777 0 R (page.51) 786 0 R (page.52) 794 0 R (page.53) 800 0 R (page.54) 806 0 R (page.55) 813 0 R ] /Limits [ (page.27) (page.55) ] >>
endobj
1553 0 obj
-<< /Names [ (Doc-Start) 370 0 R (Item.1) 415 0 R (Item.10) 726 0 R (Item.11) 862 0 R (Item.12) 863 0 R (Item.2) 416 0 R (Item.3) 417 0 R (Item.4) 418 0 R (Item.5) 704 0 R (Item.6) 705 0 R (Item.7) 723 0 R (Item.8) 724 0 R (Item.9) 725 0 R (page.1) 369 0 R (page.10) 472 0 R (page.11) 477 0 R (page.12) 488 0 R (page.13) 500 0 R (page.14) 507 0 R (page.15) 512 0 R (page.16) 517 0 R (page.17) 522 0 R (page.18) 530 0 R (page.19) 537 0 R (page.2) 405 0 R (page.20) 543 0 R (page.21) 550 0 R (page.22) 556 0 R (page.23) 562 0 R (page.24) 570 0 R (page.25) 576 0 R (page.26) 581 0 R ] /Limits [ (Doc-Start) (page.26) ] >>
+<< /Names [ (page.56) 819 0 R (page.57) 827 0 R (page.58) 845 0 R (page.59) 852 0 R (page.6) 452 0 R (page.60) 856 0 R (page.61) 865 0 R (page.62) 870 0 R (page.63) 874 0 R (page.64) 878 0 R (page.65) 882 0 R (page.66) 886 0 R (page.67) 891 0 R (page.68) 896 0 R (page.69) 900 0 R (page.7) 457 0 R (page.70) 904 0 R (page.71) 908 0 R (page.72) 913 0 R (page.73) 917 0 R (page.74) 921 0 R (page.75) 925 0 R (page.76) 929 0 R (page.77) 1048 0 R (page.78) 1152 0 R (page.79) 1230 0 R (page.8) 461 0 R (page.80) 1282 0 R (page.81) 1330 0 R (page.9) 465 0 R (section*.2) 361 0 R (section.1) 5 0 R ] /Limits [ (page.56) (section.1) ] >>
endobj
1554 0 obj
-<< /Names [ (page.27) 590 0 R (page.28) 599 0 R (page.29) 606 0 R (page.3) 413 0 R (page.30) 613 0 R (page.31) 618 0 R (page.32) 626 0 R (page.33) 633 0 R (page.34) 640 0 R (page.35) 652 0 R (page.36) 660 0 R (page.37) 667 0 R (page.38) 675 0 R (page.39) 681 0 R (page.4) 426 0 R (page.40) 692 0 R (page.41) 700 0 R (page.42) 713 0 R (page.43) 718 0 R (page.44) 732 0 R (page.45) 742 0 R (page.46) 747 0 R (page.47) 752 0 R (page.48) 763 0 R (page.49) 772 0 R (page.5) 443 0 R (page.50) 781 0 R (page.51) 789 0 R (page.52) 796 0 R (page.53) 802 0 R (page.54) 808 0 R (page.55) 815 0 R ] /Limits [ (page.27) (page.55) ] >>
+<< /Names [ (section.10) 137 0 R (section.11) 165 0 R (section.12) 169 0 R (section.13) 189 0 R (section.14) 213 0 R (section.15) 261 0 R (section.16) 289 0 R (section.17) 293 0 R (section.18) 313 0 R (section.19) 357 0 R (section.2) 9 0 R (section.3) 13 0 R (section.4) 17 0 R (section.5) 49 0 R (section.6) 93 0 R (section.7) 113 0 R (section.8) 117 0 R (section.9) 133 0 R (subsection.10.1) 141 0 R (subsection.10.2) 145 0 R (subsection.10.3) 149 0 R (subsection.10.4) 153 0 R (subsection.10.5) 157 0 R (subsection.10.6) 161 0 R (subsection.12.1) 173 0 R (subsection.12.2) 177 0 R (subsection.12.3) 181 0 R (subsection.12.4) 185 0 R (subsection.13.1) 193 0 R (subsection.13.2) 197 0 R (subsection.13.3) 201 0 R (subsection.13.4) 205 0 R ] /Limits [ (section.10) (subsection.13.4) ] >>
endobj
1555 0 obj
-<< /Names [ (page.56) 823 0 R (page.57) 832 0 R (page.58) 847 0 R (page.59) 854 0 R (page.6) 452 0 R (page.60) 859 0 R (page.61) 867 0 R (page.62) 872 0 R (page.63) 876 0 R (page.64) 880 0 R (page.65) 884 0 R (page.66) 888 0 R (page.67) 893 0 R (page.68) 898 0 R (page.69) 902 0 R (page.7) 457 0 R (page.70) 906 0 R (page.71) 910 0 R (page.72) 915 0 R (page.73) 919 0 R (page.74) 923 0 R (page.75) 927 0 R (page.76) 931 0 R (page.77) 1050 0 R (page.78) 1154 0 R (page.79) 1232 0 R (page.8) 461 0 R (page.80) 1284 0 R (page.81) 1332 0 R (page.9) 465 0 R (section*.2) 361 0 R (section.1) 5 0 R ] /Limits [ (page.56) (section.1) ] >>
+<< /Names [ (subsection.13.5) 209 0 R (subsection.14.1) 217 0 R (subsection.14.10) 253 0 R (subsection.14.11) 257 0 R (subsection.14.2) 221 0 R (subsection.14.3) 225 0 R (subsection.14.4) 229 0 R (subsection.14.5) 233 0 R (subsection.14.6) 237 0 R (subsection.14.7) 241 0 R (subsection.14.8) 245 0 R (subsection.14.9) 249 0 R (subsection.15.1) 265 0 R (subsection.15.2) 277 0 R (subsection.15.3) 281 0 R (subsection.15.4) 285 0 R (subsection.17.1) 297 0 R (subsection.17.2) 301 0 R (subsection.17.3) 305 0 R (subsection.17.4) 309 0 R (subsection.18.1) 317 0 R (subsection.18.10) 353 0 R (subsection.18.2) 321 0 R (subsection.18.3) 325 0 R (subsection.18.4) 329 0 R (subsection.18.5) 333 0 R (subsection.18.6) 337 0 R (subsection.18.7) 341 0 R (subsection.18.8) 345 0 R (subsection.18.9) 349 0 R (subsection.4.1) 21 0 R (subsection.4.2) 25 0 R ] /Limits [ (subsection.13.5) (subsection.4.2) ] >>
endobj
1556 0 obj
-<< /Names [ (section.10) 137 0 R (section.11) 165 0 R (section.12) 169 0 R (section.13) 189 0 R (section.14) 213 0 R (section.15) 261 0 R (section.16) 289 0 R (section.17) 293 0 R (section.18) 313 0 R (section.19) 357 0 R (section.2) 9 0 R (section.3) 13 0 R (section.4) 17 0 R (section.5) 49 0 R (section.6) 93 0 R (section.7) 113 0 R (section.8) 117 0 R (section.9) 133 0 R (subsection.10.1) 141 0 R (subsection.10.2) 145 0 R (subsection.10.3) 149 0 R (subsection.10.4) 153 0 R (subsection.10.5) 157 0 R (subsection.10.6) 161 0 R (subsection.12.1) 173 0 R (subsection.12.2) 177 0 R (subsection.12.3) 181 0 R (subsection.12.4) 185 0 R (subsection.13.1) 193 0 R (subsection.13.2) 197 0 R (subsection.13.3) 201 0 R (subsection.13.4) 205 0 R ] /Limits [ (section.10) (subsection.13.4) ] >>
+<< /Names [ (subsection.4.3) 29 0 R (subsection.4.4) 33 0 R (subsection.4.5) 37 0 R (subsection.4.6) 41 0 R (subsection.4.7) 45 0 R (subsection.5.1) 53 0 R (subsection.5.2) 65 0 R (subsection.5.3) 69 0 R (subsection.6.1) 97 0 R (subsection.6.2) 101 0 R (subsection.6.3) 105 0 R (subsection.6.4) 109 0 R (subsection.8.1) 121 0 R (subsection.8.2) 125 0 R (subsection.8.3) 129 0 R (subsubsection.15.1.1) 269 0 R (subsubsection.15.1.2) 273 0 R (subsubsection.5.1.1) 57 0 R (subsubsection.5.1.2) 61 0 R (subsubsection.5.3.1) 73 0 R (subsubsection.5.3.2) 77 0 R (subsubsection.5.3.3) 81 0 R (subsubsection.5.3.4) 85 0 R (subsubsection.5.3.5) 89 0 R (table.caption.1) 701 0 R (tabularnote.1) 708 0 R (tabularnote.2) 710 0 R (tabularnote.3) 718 0 R (tabularnote.4) 719 0 R (tabularnote.5) 720 0 R (tabularnote.6) 721 0 R (tabularnote.7) 857 0 R ] /Limits [ (subsection.4.3) (tabularnote.7) ] >>
endobj
1557 0 obj
-<< /Names [ (subsection.13.5) 209 0 R (subsection.14.1) 217 0 R (subsection.14.10) 253 0 R (subsection.14.11) 257 0 R (subsection.14.2) 221 0 R (subsection.14.3) 225 0 R (subsection.14.4) 229 0 R (subsection.14.5) 233 0 R (subsection.14.6) 237 0 R (subsection.14.7) 241 0 R (subsection.14.8) 245 0 R (subsection.14.9) 249 0 R (subsection.15.1) 265 0 R (subsection.15.2) 277 0 R (subsection.15.3) 281 0 R (subsection.15.4) 285 0 R (subsection.17.1) 297 0 R (subsection.17.2) 301 0 R (subsection.17.3) 305 0 R (subsection.17.4) 309 0 R (subsection.18.1) 317 0 R (subsection.18.10) 353 0 R (subsection.18.2) 321 0 R (subsection.18.3) 325 0 R (subsection.18.4) 329 0 R (subsection.18.5) 333 0 R (subsection.18.6) 337 0 R (subsection.18.7) 341 0 R (subsection.18.8) 345 0 R (subsection.18.9) 349 0 R (subsection.4.1) 21 0 R (subsection.4.2) 25 0 R ] /Limits [ (subsection.13.5) (subsection.4.2) ] >>
+<< /Names [ (tabularnote.8) 858 0 R ] /Limits [ (tabularnote.8) (tabularnote.8) ] >>
endobj
1558 0 obj
-<< /Names [ (subsection.4.3) 29 0 R (subsection.4.4) 33 0 R (subsection.4.5) 37 0 R (subsection.4.6) 41 0 R (subsection.4.7) 45 0 R (subsection.5.1) 53 0 R (subsection.5.2) 65 0 R (subsection.5.3) 69 0 R (subsection.6.1) 97 0 R (subsection.6.2) 101 0 R (subsection.6.3) 105 0 R (subsection.6.4) 109 0 R (subsection.8.1) 121 0 R (subsection.8.2) 125 0 R (subsection.8.3) 129 0 R (subsubsection.15.1.1) 269 0 R (subsubsection.15.1.2) 273 0 R (subsubsection.5.1.1) 57 0 R (subsubsection.5.1.2) 61 0 R (subsubsection.5.3.1) 73 0 R (subsubsection.5.3.2) 77 0 R (subsubsection.5.3.3) 81 0 R (subsubsection.5.3.4) 85 0 R (subsubsection.5.3.5) 89 0 R (table.caption.1) 694 0 R (tabularnote.1) 701 0 R (tabularnote.2) 703 0 R (tabularnote.3) 719 0 R (tabularnote.4) 720 0 R (tabularnote.5) 721 0 R (tabularnote.6) 722 0 R (tabularnote.7) 860 0 R ] /Limits [ (subsection.4.3) (tabularnote.7) ] >>
+<< /Kids [ 1551 0 R 1552 0 R 1553 0 R 1554 0 R 1555 0 R 1556 0 R 1557 0 R ] /Limits [ (Doc-Start) (tabularnote.8) ] >>
endobj
1559 0 obj
-<< /Names [ (tabularnote.8) 861 0 R ] /Limits [ (tabularnote.8) (tabularnote.8) ] >>
+<< /Dests 1558 0 R >>
endobj
1560 0 obj
-<< /Kids [ 1553 0 R 1554 0 R 1555 0 R 1556 0 R 1557 0 R 1558 0 R 1559 0 R ] /Limits [ (Doc-Start) (tabularnote.8) ] >>
+<< /Type /Catalog /Pages 1549 0 R /Outlines 1550 0 R /Names 1559 0 R /PageMode/UseOutlines /OpenAction 364 0 R >>
endobj
1561 0 obj
-<< /Dests 1560 0 R >>
-endobj
-1562 0 obj
-<< /Type /Catalog /Pages 1551 0 R /Outlines 1552 0 R /Names 1561 0 R /PageMode/UseOutlines /OpenAction 364 0 R >>
-endobj
-1563 0 obj
-<< /Author(\376\377\000F\000.\000\040\000P\000a\000n\000t\000i\000g\000n\000y)/Title(\376\377\000T\000h\000e\000\040\000p\000a\000c\000k\000a\000g\000e\000\040\000'\000n\000i\000c\000e\000m\000a\000t\000r\000i\000x\000')/Subject(\376\377\000A\000\040\000L\000a\000T\000e\000X\000\040\000p\000a\000c\000k\000a\000g\000e)/Creator(LaTeX with hyperref)/Keywords() /Producer (LuaTeX-1.18.1) /CreationDate (D:20240629150051+02'00') /ModDate (D:20240629150051+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.1 (MiKTeX 24.4)) >>
+<< /Author(\376\377\000F\000.\000\040\000P\000a\000n\000t\000i\000g\000n\000y)/Title(\376\377\000T\000h\000e\000\040\000p\000a\000c\000k\000a\000g\000e\000\040\000'\000n\000i\000c\000e\000m\000a\000t\000r\000i\000x\000')/Subject(\376\377\000A\000\040\000L\000a\000T\000e\000X\000\040\000p\000a\000c\000k\000a\000g\000e)/Creator(LaTeX with hyperref)/Keywords() /Producer (LuaTeX-1.18.1) /CreationDate (D:20240822114126+02'00') /ModDate (D:20240822114126+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.1 (MiKTeX 24.4)) >>
endobj
xref
-0 1564
+0 1562
0000000000 65535 f
-0000594625 00000 n
-0000594781 00000 n
-0000594853 00000 n
+0000596008 00000 n
+0000596164 00000 n
+0000596236 00000 n
0000000020 00000 n
-0000036449 00000 n
-0000886093 00000 n
+0000036494 00000 n
+0000887355 00000 n
0000000065 00000 n
0000000264 00000 n
-0000036509 00000 n
-0000886006 00000 n
+0000036554 00000 n
+0000887268 00000 n
0000000309 00000 n
0000000527 00000 n
-0000041755 00000 n
-0000885917 00000 n
+0000041800 00000 n
+0000887179 00000 n
0000000573 00000 n
0000000791 00000 n
-0000049032 00000 n
-0000885791 00000 n
+0000049077 00000 n
+0000887053 00000 n
0000000837 00000 n
0000000918 00000 n
-0000049093 00000 n
-0000885717 00000 n
+0000049138 00000 n
+0000886979 00000 n
0000000969 00000 n
0000001060 00000 n
-0000062132 00000 n
-0000885630 00000 n
+0000062150 00000 n
+0000886892 00000 n
0000001111 00000 n
0000001255 00000 n
-0000062193 00000 n
-0000885543 00000 n
+0000062211 00000 n
+0000886805 00000 n
0000001306 00000 n
0000001435 00000 n
-0000067907 00000 n
-0000885456 00000 n
+0000067925 00000 n
+0000886718 00000 n
0000001486 00000 n
0000001620 00000 n
-0000067968 00000 n
-0000885369 00000 n
+0000067986 00000 n
+0000886631 00000 n
0000001671 00000 n
0000001955 00000 n
-0000073045 00000 n
-0000885282 00000 n
+0000073064 00000 n
+0000886544 00000 n
0000002006 00000 n
0000002280 00000 n
-0000077190 00000 n
-0000885208 00000 n
+0000077209 00000 n
+0000886470 00000 n
0000002331 00000 n
0000002493 00000 n
-0000083680 00000 n
-0000885082 00000 n
+0000083699 00000 n
+0000886344 00000 n
0000002539 00000 n
0000002615 00000 n
-0000083741 00000 n
-0000884971 00000 n
+0000083760 00000 n
+0000886233 00000 n
0000002666 00000 n
0000002949 00000 n
-0000083802 00000 n
-0000884897 00000 n
+0000083821 00000 n
+0000886159 00000 n
0000003005 00000 n
0000003129 00000 n
-0000089048 00000 n
-0000884823 00000 n
+0000089067 00000 n
+0000886085 00000 n
0000003185 00000 n
0000003312 00000 n
-0000089108 00000 n
-0000884736 00000 n
+0000089127 00000 n
+0000885998 00000 n
0000003363 00000 n
0000003612 00000 n
-0000095107 00000 n
-0000884625 00000 n
+0000095135 00000 n
+0000885887 00000 n
0000003663 00000 n
0000003894 00000 n
-0000095168 00000 n
-0000884551 00000 n
+0000095196 00000 n
+0000885813 00000 n
0000003950 00000 n
0000004120 00000 n
-0000102599 00000 n
-0000884464 00000 n
+0000102627 00000 n
+0000885726 00000 n
0000004176 00000 n
0000004431 00000 n
-0000102660 00000 n
-0000884377 00000 n
+0000102688 00000 n
+0000885639 00000 n
0000004487 00000 n
0000004622 00000 n
-0000109180 00000 n
-0000884290 00000 n
+0000109209 00000 n
+0000885552 00000 n
0000004678 00000 n
0000004815 00000 n
-0000109240 00000 n
-0000884216 00000 n
+0000109269 00000 n
+0000885478 00000 n
0000004871 00000 n
0000005053 00000 n
-0000125318 00000 n
-0000884088 00000 n
+0000125327 00000 n
+0000885350 00000 n
0000005099 00000 n
0000005409 00000 n
-0000125379 00000 n
-0000884013 00000 n
+0000125388 00000 n
+0000885275 00000 n
0000005460 00000 n
0000005569 00000 n
-0000131012 00000 n
-0000883922 00000 n
+0000131021 00000 n
+0000885184 00000 n
0000005621 00000 n
0000005881 00000 n
-0000155229 00000 n
-0000883830 00000 n
+0000155373 00000 n
+0000885092 00000 n
0000005933 00000 n
0000006188 00000 n
-0000166225 00000 n
-0000883752 00000 n
+0000166484 00000 n
+0000885014 00000 n
0000006240 00000 n
0000006423 00000 n
-0000166287 00000 n
-0000883659 00000 n
+0000166546 00000 n
+0000884921 00000 n
0000006470 00000 n
0000006613 00000 n
-0000166349 00000 n
-0000883526 00000 n
+0000166608 00000 n
+0000884788 00000 n
0000006660 00000 n
0000006821 00000 n
-0000166411 00000 n
-0000883447 00000 n
+0000166670 00000 n
+0000884709 00000 n
0000006873 00000 n
0000006960 00000 n
-0000171724 00000 n
-0000883354 00000 n
+0000171983 00000 n
+0000884616 00000 n
0000007012 00000 n
0000007112 00000 n
-0000176429 00000 n
-0000883275 00000 n
+0000176686 00000 n
+0000884537 00000 n
0000007164 00000 n
0000007330 00000 n
-0000183847 00000 n
-0000883181 00000 n
+0000184106 00000 n
+0000884443 00000 n
0000007377 00000 n
0000007563 00000 n
-0000204585 00000 n
-0000883048 00000 n
+0000204779 00000 n
+0000884310 00000 n
0000007611 00000 n
0000007784 00000 n
-0000217322 00000 n
-0000882969 00000 n
+0000217522 00000 n
+0000884231 00000 n
0000007837 00000 n
0000007987 00000 n
-0000237659 00000 n
-0000882876 00000 n
+0000237872 00000 n
+0000884138 00000 n
0000008040 00000 n
0000008267 00000 n
-0000248501 00000 n
-0000882783 00000 n
+0000248715 00000 n
+0000884045 00000 n
0000008320 00000 n
0000008655 00000 n
-0000248563 00000 n
-0000882690 00000 n
+0000248777 00000 n
+0000883952 00000 n
0000008708 00000 n
0000008902 00000 n
-0000253734 00000 n
-0000882597 00000 n
+0000253947 00000 n
+0000883859 00000 n
0000008955 00000 n
0000009161 00000 n
-0000260692 00000 n
-0000882518 00000 n
+0000260907 00000 n
+0000883780 00000 n
0000009214 00000 n
0000009408 00000 n
-0000260753 00000 n
-0000882424 00000 n
+0000260968 00000 n
+0000883686 00000 n
0000009456 00000 n
0000009728 00000 n
-0000268063 00000 n
-0000882291 00000 n
+0000268278 00000 n
+0000883553 00000 n
0000009776 00000 n
0000009881 00000 n
-0000285584 00000 n
-0000882212 00000 n
+0000285801 00000 n
+0000883474 00000 n
0000009934 00000 n
0000010159 00000 n
-0000285646 00000 n
-0000882119 00000 n
+0000285863 00000 n
+0000883381 00000 n
0000010212 00000 n
0000010590 00000 n
-0000302866 00000 n
-0000882026 00000 n
+0000302993 00000 n
+0000883288 00000 n
0000010643 00000 n
0000010987 00000 n
-0000309236 00000 n
-0000881947 00000 n
+0000309113 00000 n
+0000883209 00000 n
0000011040 00000 n
0000011310 00000 n
-0000309298 00000 n
-0000881814 00000 n
+0000314229 00000 n
+0000883076 00000 n
0000011358 00000 n
0000011572 00000 n
-0000309360 00000 n
-0000881735 00000 n
+0000314291 00000 n
+0000882997 00000 n
0000011625 00000 n
0000011763 00000 n
-0000314555 00000 n
-0000881642 00000 n
+0000314353 00000 n
+0000882904 00000 n
0000011816 00000 n
0000011913 00000 n
-0000314617 00000 n
-0000881549 00000 n
+0000314415 00000 n
+0000882811 00000 n
0000011966 00000 n
0000012104 00000 n
-0000322876 00000 n
-0000881456 00000 n
+0000324174 00000 n
+0000882718 00000 n
0000012157 00000 n
0000012368 00000 n
-0000331713 00000 n
-0000881377 00000 n
+0000332207 00000 n
+0000882639 00000 n
0000012421 00000 n
0000012668 00000 n
-0000331775 00000 n
-0000881243 00000 n
+0000332269 00000 n
+0000882505 00000 n
0000012716 00000 n
0000012818 00000 n
-0000331837 00000 n
-0000881164 00000 n
+0000332331 00000 n
+0000882426 00000 n
0000012871 00000 n
0000013021 00000 n
-0000340796 00000 n
-0000881071 00000 n
+0000341205 00000 n
+0000882333 00000 n
0000013074 00000 n
0000013219 00000 n
-0000340858 00000 n
-0000880978 00000 n
+0000341267 00000 n
+0000882240 00000 n
0000013272 00000 n
0000013497 00000 n
-0000340920 00000 n
-0000880885 00000 n
+0000346829 00000 n
+0000882147 00000 n
0000013550 00000 n
0000013772 00000 n
-0000346530 00000 n
-0000880792 00000 n
+0000346891 00000 n
+0000882054 00000 n
0000013825 00000 n
0000013958 00000 n
-0000346592 00000 n
-0000880699 00000 n
+0000346953 00000 n
+0000881961 00000 n
0000014011 00000 n
0000014126 00000 n
-0000352739 00000 n
-0000880606 00000 n
+0000353359 00000 n
+0000881868 00000 n
0000014179 00000 n
0000014350 00000 n
-0000358316 00000 n
-0000880513 00000 n
+0000359117 00000 n
+0000881775 00000 n
0000014403 00000 n
0000014538 00000 n
-0000358378 00000 n
-0000880420 00000 n
+0000359179 00000 n
+0000881682 00000 n
0000014591 00000 n
0000014744 00000 n
-0000358440 00000 n
-0000880327 00000 n
+0000359241 00000 n
+0000881589 00000 n
0000014798 00000 n
0000015024 00000 n
-0000358502 00000 n
-0000880248 00000 n
+0000365154 00000 n
+0000881510 00000 n
0000015078 00000 n
0000015271 00000 n
-0000364826 00000 n
-0000880115 00000 n
+0000365216 00000 n
+0000881377 00000 n
0000015319 00000 n
0000015495 00000 n
-0000364888 00000 n
-0000879997 00000 n
+0000365277 00000 n
+0000881259 00000 n
0000015548 00000 n
0000015861 00000 n
-0000370058 00000 n
-0000879918 00000 n
+0000370974 00000 n
+0000881180 00000 n
0000015919 00000 n
0000016059 00000 n
-0000370120 00000 n
-0000879839 00000 n
+0000371036 00000 n
+0000881101 00000 n
0000016117 00000 n
0000016283 00000 n
-0000377831 00000 n
-0000879746 00000 n
+0000378798 00000 n
+0000881008 00000 n
0000016336 00000 n
0000016563 00000 n
-0000384247 00000 n
-0000879653 00000 n
+0000391619 00000 n
+0000880915 00000 n
0000016616 00000 n
0000016919 00000 n
-0000391354 00000 n
-0000879574 00000 n
+0000391681 00000 n
+0000880836 00000 n
0000016972 00000 n
0000017267 00000 n
-0000395666 00000 n
-0000879480 00000 n
+0000396354 00000 n
+0000880742 00000 n
0000017315 00000 n
0000017463 00000 n
-0000408987 00000 n
-0000879347 00000 n
+0000410316 00000 n
+0000880609 00000 n
0000017511 00000 n
0000017628 00000 n
-0000409049 00000 n
-0000879268 00000 n
+0000410378 00000 n
+0000880530 00000 n
0000017681 00000 n
0000017783 00000 n
-0000409110 00000 n
-0000879175 00000 n
+0000410440 00000 n
+0000880437 00000 n
0000017836 00000 n
0000017946 00000 n
-0000414643 00000 n
-0000879082 00000 n
+0000415946 00000 n
+0000880344 00000 n
0000017999 00000 n
0000018189 00000 n
-0000414705 00000 n
-0000879003 00000 n
+0000416008 00000 n
+0000880265 00000 n
0000018242 00000 n
0000018356 00000 n
-0000423570 00000 n
-0000878869 00000 n
+0000424218 00000 n
+0000880131 00000 n
0000018404 00000 n
0000018473 00000 n
-0000423632 00000 n
-0000878790 00000 n
+0000424280 00000 n
+0000880052 00000 n
0000018526 00000 n
0000018837 00000 n
-0000427629 00000 n
-0000878697 00000 n
+0000428174 00000 n
+0000879959 00000 n
0000018890 00000 n
0000019015 00000 n
-0000427691 00000 n
-0000878604 00000 n
+0000432723 00000 n
+0000879866 00000 n
0000019068 00000 n
0000019211 00000 n
-0000451594 00000 n
-0000878511 00000 n
+0000453164 00000 n
+0000879773 00000 n
0000019264 00000 n
0000019356 00000 n
-0000451656 00000 n
-0000878418 00000 n
+0000453226 00000 n
+0000879680 00000 n
0000019409 00000 n
0000019651 00000 n
-0000462528 00000 n
-0000878325 00000 n
+0000464096 00000 n
+0000879587 00000 n
0000019704 00000 n
0000019796 00000 n
-0000462590 00000 n
-0000878232 00000 n
+0000464158 00000 n
+0000879494 00000 n
0000019849 00000 n
0000019974 00000 n
-0000480959 00000 n
-0000878139 00000 n
+0000482449 00000 n
+0000879401 00000 n
0000020027 00000 n
0000020244 00000 n
-0000498832 00000 n
-0000878046 00000 n
+0000500242 00000 n
+0000879308 00000 n
0000020297 00000 n
0000020567 00000 n
-0000502308 00000 n
-0000877967 00000 n
+0000503718 00000 n
+0000879229 00000 n
0000020621 00000 n
0000020756 00000 n
-0000504995 00000 n
-0000877873 00000 n
+0000506404 00000 n
+0000879135 00000 n
0000020804 00000 n
0000020868 00000 n
-0000539333 00000 n
-0000877793 00000 n
+0000540724 00000 n
+0000879055 00000 n
0000020916 00000 n
0000020970 00000 n
-0000031108 00000 n
-0000031274 00000 n
-0000031636 00000 n
+0000031193 00000 n
+0000031359 00000 n
+0000031680 00000 n
0000021022 00000 n
-0000031512 00000 n
-0000031574 00000 n
-0000746081 00000 n
-0000741469 00000 n
-0000739016 00000 n
-0000733701 00000 n
-0000730355 00000 n
-0000727723 00000 n
-0000722760 00000 n
-0000720053 00000 n
-0000874394 00000 n
-0000875122 00000 n
-0000875558 00000 n
-0000874977 00000 n
-0000874686 00000 n
-0000875701 00000 n
-0000709895 00000 n
-0000875413 00000 n
-0000698577 00000 n
-0000693962 00000 n
-0000683893 00000 n
-0000675984 00000 n
-0000671589 00000 n
-0000665723 00000 n
-0000656924 00000 n
-0000654040 00000 n
-0000650733 00000 n
-0000641346 00000 n
-0000637884 00000 n
-0000876275 00000 n
-0000031245 00000 n
-0000036228 00000 n
-0000041539 00000 n
-0000036569 00000 n
-0000036062 00000 n
-0000032098 00000 n
-0000036387 00000 n
-0000629190 00000 n
-0000620298 00000 n
-0000875844 00000 n
-0000036199 00000 n
-0000042071 00000 n
-0000041373 00000 n
-0000036888 00000 n
-0000041693 00000 n
-0000874540 00000 n
-0000041815 00000 n
-0000041879 00000 n
-0000041943 00000 n
-0000042007 00000 n
-0000616833 00000 n
-0000041510 00000 n
-0000048658 00000 n
-0000048813 00000 n
-0000049153 00000 n
-0000048484 00000 n
-0000042429 00000 n
-0000048970 00000 n
-0000874832 00000 n
-0000048621 00000 n
-0000055948 00000 n
-0000056100 00000 n
-0000054530 00000 n
-0000054690 00000 n
-0000054850 00000 n
-0000055004 00000 n
-0000055158 00000 n
-0000055312 00000 n
-0000055472 00000 n
-0000055632 00000 n
-0000055790 00000 n
-0000056314 00000 n
-0000054284 00000 n
-0000049446 00000 n
-0000056252 00000 n
-0000054421 00000 n
-0000061439 00000 n
-0000061598 00000 n
-0000061757 00000 n
-0000061913 00000 n
-0000062254 00000 n
-0000061249 00000 n
-0000056594 00000 n
-0000062070 00000 n
-0000061386 00000 n
-0000068029 00000 n
-0000067724 00000 n
-0000062443 00000 n
-0000067845 00000 n
-0000073106 00000 n
-0000072862 00000 n
-0000068283 00000 n
-0000072983 00000 n
-0000077251 00000 n
-0000077007 00000 n
-0000073321 00000 n
-0000077128 00000 n
-0000083148 00000 n
-0000083300 00000 n
-0000083464 00000 n
-0000083863 00000 n
-0000082966 00000 n
-0000077440 00000 n
-0000083618 00000 n
-0000083103 00000 n
-0000089169 00000 n
-0000088865 00000 n
-0000084104 00000 n
-0000088986 00000 n
-0000611508 00000 n
-0000876428 00000 n
-0000094255 00000 n
-0000094409 00000 n
-0000094563 00000 n
-0000094727 00000 n
-0000094881 00000 n
-0000095229 00000 n
-0000094057 00000 n
-0000089384 00000 n
-0000095045 00000 n
-0000875267 00000 n
-0000094194 00000 n
-0000101900 00000 n
-0000102060 00000 n
-0000102219 00000 n
-0000102379 00000 n
-0000108803 00000 n
-0000108961 00000 n
-0000102721 00000 n
-0000101710 00000 n
-0000095522 00000 n
-0000102537 00000 n
-0000101847 00000 n
-0000108484 00000 n
-0000108643 00000 n
-0000109301 00000 n
-0000108294 00000 n
-0000102988 00000 n
-0000109118 00000 n
-0000108431 00000 n
-0000113779 00000 n
-0000113596 00000 n
-0000109542 00000 n
-0000113717 00000 n
-0000117940 00000 n
-0000118156 00000 n
-0000117774 00000 n
-0000114033 00000 n
-0000118094 00000 n
-0000117911 00000 n
-0000125440 00000 n
-0000125135 00000 n
-0000118332 00000 n
-0000125256 00000 n
-0000130792 00000 n
-0000130311 00000 n
-0000130474 00000 n
-0000130633 00000 n
-0000131074 00000 n
-0000130121 00000 n
-0000125720 00000 n
-0000130950 00000 n
-0000130258 00000 n
-0000136473 00000 n
-0000136627 00000 n
-0000136849 00000 n
-0000136299 00000 n
-0000131354 00000 n
-0000136787 00000 n
-0000136436 00000 n
-0000142529 00000 n
-0000142742 00000 n
-0000142363 00000 n
-0000137064 00000 n
-0000142680 00000 n
-0000142500 00000 n
-0000148359 00000 n
-0000155013 00000 n
-0000148578 00000 n
-0000148193 00000 n
-0000142983 00000 n
-0000148516 00000 n
-0000876581 00000 n
-0000148330 00000 n
-0000155291 00000 n
-0000154847 00000 n
-0000148793 00000 n
-0000155167 00000 n
-0000154984 00000 n
-0000160581 00000 n
-0000160795 00000 n
-0000160415 00000 n
-0000155558 00000 n
-0000160733 00000 n
-0000160552 00000 n
-0000165853 00000 n
-0000166005 00000 n
-0000171357 00000 n
-0000166473 00000 n
-0000165679 00000 n
-0000161036 00000 n
-0000166163 00000 n
-0000165816 00000 n
-0000171510 00000 n
-0000171786 00000 n
-0000171183 00000 n
-0000166701 00000 n
-0000171662 00000 n
-0000171320 00000 n
-0000176491 00000 n
-0000176246 00000 n
-0000172066 00000 n
-0000176367 00000 n
-0000183148 00000 n
-0000183313 00000 n
-0000183472 00000 n
-0000183631 00000 n
-0000191594 00000 n
-0000183909 00000 n
-0000182958 00000 n
-0000176771 00000 n
-0000183785 00000 n
-0000183095 00000 n
+0000031556 00000 n
+0000031618 00000 n
+0000747343 00000 n
+0000742731 00000 n
+0000740278 00000 n
+0000735084 00000 n
+0000731738 00000 n
+0000729106 00000 n
+0000724143 00000 n
+0000721436 00000 n
+0000875656 00000 n
+0000876384 00000 n
+0000876820 00000 n
+0000876239 00000 n
+0000875948 00000 n
+0000876963 00000 n
+0000711278 00000 n
+0000876675 00000 n
+0000699960 00000 n
+0000695345 00000 n
+0000685276 00000 n
+0000677367 00000 n
+0000672972 00000 n
+0000667106 00000 n
+0000658307 00000 n
+0000655423 00000 n
+0000652116 00000 n
+0000642729 00000 n
+0000639267 00000 n
+0000877537 00000 n
+0000031330 00000 n
+0000036273 00000 n
+0000041584 00000 n
+0000036614 00000 n
+0000036107 00000 n
+0000032142 00000 n
+0000036432 00000 n
+0000630573 00000 n
+0000621681 00000 n
+0000877106 00000 n
+0000036244 00000 n
+0000042116 00000 n
+0000041418 00000 n
+0000036933 00000 n
+0000041738 00000 n
+0000875802 00000 n
+0000041860 00000 n
+0000041924 00000 n
+0000041988 00000 n
+0000042052 00000 n
+0000618216 00000 n
+0000041555 00000 n
+0000048703 00000 n
+0000048858 00000 n
+0000049198 00000 n
+0000048529 00000 n
+0000042474 00000 n
+0000049015 00000 n
+0000876094 00000 n
+0000048666 00000 n
+0000055993 00000 n
+0000056145 00000 n
+0000054575 00000 n
+0000054735 00000 n
+0000054895 00000 n
+0000055049 00000 n
+0000055203 00000 n
+0000055357 00000 n
+0000055517 00000 n
+0000055677 00000 n
+0000055835 00000 n
+0000056359 00000 n
+0000054329 00000 n
+0000049491 00000 n
+0000056297 00000 n
+0000054466 00000 n
+0000061457 00000 n
+0000061616 00000 n
+0000061775 00000 n
+0000061931 00000 n
+0000062272 00000 n
+0000061267 00000 n
+0000056639 00000 n
+0000062088 00000 n
+0000061404 00000 n
+0000068047 00000 n
+0000067742 00000 n
+0000062461 00000 n
+0000067863 00000 n
+0000073125 00000 n
+0000072881 00000 n
+0000068301 00000 n
+0000073002 00000 n
+0000077270 00000 n
+0000077026 00000 n
+0000073340 00000 n
+0000077147 00000 n
+0000083167 00000 n
+0000083319 00000 n
+0000083483 00000 n
+0000083882 00000 n
+0000082985 00000 n
+0000077459 00000 n
+0000083637 00000 n
+0000083122 00000 n
+0000089188 00000 n
+0000088884 00000 n
+0000084123 00000 n
+0000089005 00000 n
+0000612891 00000 n
+0000877690 00000 n
+0000094283 00000 n
+0000094437 00000 n
+0000094591 00000 n
+0000094755 00000 n
+0000094909 00000 n
+0000095257 00000 n
+0000094085 00000 n
+0000089403 00000 n
+0000095073 00000 n
+0000876529 00000 n
+0000094222 00000 n
+0000101928 00000 n
+0000102088 00000 n
+0000102247 00000 n
+0000102407 00000 n
+0000108832 00000 n
+0000108990 00000 n
+0000102749 00000 n
+0000101738 00000 n
+0000095550 00000 n
+0000102565 00000 n
+0000101875 00000 n
+0000108513 00000 n
+0000108672 00000 n
+0000109330 00000 n
+0000108323 00000 n
+0000103016 00000 n
+0000109147 00000 n
+0000108460 00000 n
+0000113808 00000 n
+0000113625 00000 n
+0000109571 00000 n
+0000113746 00000 n
+0000117949 00000 n
+0000118166 00000 n
+0000117783 00000 n
+0000114062 00000 n
+0000118104 00000 n
+0000117920 00000 n
+0000125449 00000 n
+0000125144 00000 n
+0000118342 00000 n
+0000125265 00000 n
+0000130801 00000 n
+0000130320 00000 n
+0000130483 00000 n
+0000130642 00000 n
+0000131083 00000 n
+0000130130 00000 n
+0000125729 00000 n
+0000130959 00000 n
+0000130267 00000 n
+0000136479 00000 n
+0000136633 00000 n
+0000136855 00000 n
+0000136305 00000 n
+0000131363 00000 n
+0000136793 00000 n
+0000136442 00000 n
+0000142536 00000 n
+0000142749 00000 n
+0000142370 00000 n
+0000137070 00000 n
+0000142687 00000 n
+0000142507 00000 n
+0000148604 00000 n
+0000148450 00000 n
+0000148823 00000 n
+0000148276 00000 n
+0000142990 00000 n
+0000148761 00000 n
+0000877843 00000 n
+0000148413 00000 n
+0000160839 00000 n
+0000155435 00000 n
+0000155190 00000 n
+0000149038 00000 n
+0000155311 00000 n
+0000161053 00000 n
+0000160673 00000 n
+0000155715 00000 n
+0000160991 00000 n
+0000160810 00000 n
+0000166112 00000 n
+0000166264 00000 n
+0000171616 00000 n
+0000166732 00000 n
+0000165938 00000 n
+0000161294 00000 n
+0000166422 00000 n
+0000166075 00000 n
+0000171769 00000 n
+0000172045 00000 n
+0000171442 00000 n
+0000166960 00000 n
+0000171921 00000 n
+0000171579 00000 n
+0000176748 00000 n
+0000176503 00000 n
+0000172325 00000 n
+0000176624 00000 n
+0000183407 00000 n
+0000183572 00000 n
+0000183731 00000 n
+0000183890 00000 n
+0000191785 00000 n
+0000184168 00000 n
+0000183217 00000 n
+0000177028 00000 n
+0000184044 00000 n
+0000183354 00000 n
+0000191307 00000 n
+0000191467 00000 n
+0000191631 00000 n
+0000204240 00000 n
+0000192004 00000 n
0000191117 00000 n
-0000191277 00000 n
-0000191440 00000 n
-0000204046 00000 n
-0000191811 00000 n
-0000190927 00000 n
-0000184124 00000 n
-0000191749 00000 n
-0000191064 00000 n
-0000204206 00000 n
-0000204365 00000 n
-0000204647 00000 n
-0000203864 00000 n
-0000192091 00000 n
-0000204523 00000 n
-0000607119 00000 n
-0000204001 00000 n
-0000217109 00000 n
-0000217384 00000 n
-0000216943 00000 n
-0000204953 00000 n
-0000217260 00000 n
-0000217080 00000 n
-0000237721 00000 n
-0000237476 00000 n
-0000217651 00000 n
-0000237597 00000 n
-0000876734 00000 n
-0000248119 00000 n
-0000248279 00000 n
-0000253139 00000 n
-0000248625 00000 n
-0000247945 00000 n
-0000238027 00000 n
-0000248439 00000 n
-0000248082 00000 n
-0000253298 00000 n
-0000253452 00000 n
-0000253796 00000 n
-0000252957 00000 n
-0000248879 00000 n
-0000253672 00000 n
-0000604584 00000 n
-0000253094 00000 n
-0000260472 00000 n
-0000260815 00000 n
-0000260306 00000 n
-0000254063 00000 n
-0000260630 00000 n
-0000260443 00000 n
-0000266896 00000 n
-0000267056 00000 n
-0000267216 00000 n
-0000267369 00000 n
-0000267529 00000 n
-0000267844 00000 n
-0000267689 00000 n
-0000268125 00000 n
-0000266682 00000 n
-0000261134 00000 n
-0000268001 00000 n
-0000876132 00000 n
-0000266819 00000 n
-0000285203 00000 n
-0000285362 00000 n
-0000285708 00000 n
-0000285029 00000 n
-0000268457 00000 n
-0000285522 00000 n
-0000285166 00000 n
-0000291626 00000 n
-0000291781 00000 n
-0000291998 00000 n
-0000291452 00000 n
-0000285962 00000 n
-0000291936 00000 n
-0000291589 00000 n
-0000296883 00000 n
-0000297043 00000 n
-0000297203 00000 n
-0000297425 00000 n
-0000296701 00000 n
-0000292213 00000 n
-0000297363 00000 n
-0000296838 00000 n
-0000302610 00000 n
-0000302928 00000 n
-0000302444 00000 n
-0000297705 00000 n
-0000302804 00000 n
-0000302581 00000 n
-0000308233 00000 n
-0000308387 00000 n
-0000308551 00000 n
-0000308705 00000 n
-0000308858 00000 n
-0000309016 00000 n
-0000309422 00000 n
-0000308027 00000 n
-0000303234 00000 n
-0000309174 00000 n
-0000308164 00000 n
-0000322302 00000 n
-0000314185 00000 n
-0000314339 00000 n
-0000314934 00000 n
-0000314011 00000 n
-0000309637 00000 n
-0000314493 00000 n
-0000314679 00000 n
-0000601521 00000 n
-0000314742 00000 n
-0000314806 00000 n
-0000314870 00000 n
-0000876887 00000 n
-0000314148 00000 n
-0000318792 00000 n
-0000318951 00000 n
-0000319168 00000 n
-0000318618 00000 n
-0000315136 00000 n
-0000319106 00000 n
-0000318755 00000 n
-0000322938 00000 n
-0000322119 00000 n
-0000319396 00000 n
-0000322240 00000 n
-0000322364 00000 n
-0000322428 00000 n
-0000322492 00000 n
-0000322556 00000 n
-0000322620 00000 n
-0000322684 00000 n
-0000322748 00000 n
-0000322812 00000 n
-0000326967 00000 n
-0000327127 00000 n
-0000327349 00000 n
-0000326793 00000 n
-0000323153 00000 n
-0000327287 00000 n
-0000326930 00000 n
-0000330846 00000 n
-0000331006 00000 n
-0000331165 00000 n
-0000331324 00000 n
-0000331487 00000 n
-0000331898 00000 n
-0000330648 00000 n
-0000327525 00000 n
-0000331651 00000 n
-0000330785 00000 n
-0000340982 00000 n
-0000340613 00000 n
-0000332139 00000 n
-0000340734 00000 n
-0000346318 00000 n
-0000346654 00000 n
-0000346152 00000 n
-0000341249 00000 n
-0000346468 00000 n
-0000875989 00000 n
-0000346289 00000 n
-0000351901 00000 n
-0000352056 00000 n
-0000352210 00000 n
-0000352368 00000 n
-0000352523 00000 n
-0000352801 00000 n
-0000351703 00000 n
-0000346999 00000 n
-0000352677 00000 n
-0000874248 00000 n
-0000351840 00000 n
-0000357941 00000 n
-0000358100 00000 n
-0000363960 00000 n
-0000358564 00000 n
-0000357767 00000 n
-0000353094 00000 n
-0000358254 00000 n
-0000357904 00000 n
-0000364150 00000 n
-0000364303 00000 n
-0000364465 00000 n
-0000364615 00000 n
-0000364950 00000 n
-0000363762 00000 n
-0000358818 00000 n
-0000364764 00000 n
-0000363899 00000 n
-0000369515 00000 n
-0000369676 00000 n
-0000369837 00000 n
-0000370182 00000 n
-0000369333 00000 n
-0000365269 00000 n
-0000369996 00000 n
-0000877040 00000 n
-0000369470 00000 n
-0000377615 00000 n
-0000377893 00000 n
-0000377449 00000 n
-0000370397 00000 n
-0000377769 00000 n
-0000377586 00000 n
-0000384028 00000 n
-0000384309 00000 n
-0000383862 00000 n
-0000378173 00000 n
-0000384185 00000 n
-0000383999 00000 n
-0000391133 00000 n
-0000391416 00000 n
-0000390967 00000 n
-0000384576 00000 n
-0000391292 00000 n
-0000599045 00000 n
-0000391104 00000 n
-0000395445 00000 n
-0000395728 00000 n
-0000395279 00000 n
-0000391657 00000 n
-0000395604 00000 n
-0000395416 00000 n
-0000408761 00000 n
-0000414029 00000 n
-0000414188 00000 n
-0000409171 00000 n
-0000408595 00000 n
-0000395969 00000 n
-0000408925 00000 n
-0000408732 00000 n
-0000414346 00000 n
-0000422716 00000 n
-0000422880 00000 n
-0000423044 00000 n
-0000414767 00000 n
-0000413847 00000 n
-0000409425 00000 n
-0000414581 00000 n
-0000596560 00000 n
-0000413984 00000 n
-0000415034 00000 n
-0000415352 00000 n
-0000415678 00000 n
-0000415882 00000 n
-0000416360 00000 n
-0000416704 00000 n
-0000416908 00000 n
-0000423208 00000 n
-0000423358 00000 n
-0000423694 00000 n
-0000422518 00000 n
-0000417550 00000 n
-0000423508 00000 n
-0000422655 00000 n
-0000427257 00000 n
-0000427412 00000 n
-0000427753 00000 n
-0000427083 00000 n
-0000423989 00000 n
-0000427567 00000 n
-0000427220 00000 n
-0000431522 00000 n
-0000431084 00000 n
-0000427968 00000 n
-0000431205 00000 n
-0000431267 00000 n
-0000431330 00000 n
-0000431394 00000 n
-0000431458 00000 n
-0000451718 00000 n
-0000451411 00000 n
-0000431698 00000 n
-0000451532 00000 n
-0000877193 00000 n
-0000457780 00000 n
-0000457597 00000 n
-0000451985 00000 n
-0000457718 00000 n
-0000462652 00000 n
-0000462345 00000 n
-0000458073 00000 n
-0000462466 00000 n
-0000466294 00000 n
-0000466111 00000 n
-0000462867 00000 n
-0000466232 00000 n
-0000469803 00000 n
-0000469620 00000 n
-0000466535 00000 n
-0000469741 00000 n
-0000474175 00000 n
-0000473992 00000 n
-0000470044 00000 n
-0000474113 00000 n
-0000480737 00000 n
-0000481021 00000 n
-0000480571 00000 n
-0000474403 00000 n
-0000480897 00000 n
-0000480708 00000 n
-0000486704 00000 n
-0000486521 00000 n
-0000481353 00000 n
-0000486642 00000 n
-0000498894 00000 n
-0000498649 00000 n
-0000486919 00000 n
-0000498770 00000 n
-0000502370 00000 n
-0000502125 00000 n
-0000499135 00000 n
-0000502246 00000 n
-0000505057 00000 n
-0000504812 00000 n
-0000502520 00000 n
-0000504933 00000 n
-0000877346 00000 n
-0000507672 00000 n
-0000507489 00000 n
-0000505259 00000 n
-0000507610 00000 n
-0000510376 00000 n
-0000510193 00000 n
-0000507835 00000 n
-0000510314 00000 n
-0000513083 00000 n
-0000512900 00000 n
-0000510539 00000 n
-0000513021 00000 n
-0000515776 00000 n
-0000515593 00000 n
-0000513246 00000 n
-0000515714 00000 n
-0000517657 00000 n
-0000517474 00000 n
-0000515952 00000 n
-0000517595 00000 n
-0000522287 00000 n
-0000522437 00000 n
-0000522589 00000 n
-0000522739 00000 n
-0000522891 00000 n
-0000523043 00000 n
-0000523195 00000 n
-0000523347 00000 n
-0000523499 00000 n
-0000523650 00000 n
-0000523802 00000 n
-0000523953 00000 n
-0000524105 00000 n
-0000524256 00000 n
-0000524406 00000 n
-0000524558 00000 n
-0000524710 00000 n
-0000524862 00000 n
-0000525012 00000 n
-0000525162 00000 n
-0000525314 00000 n
-0000525466 00000 n
-0000525617 00000 n
-0000525769 00000 n
-0000525920 00000 n
-0000526072 00000 n
-0000526220 00000 n
-0000526369 00000 n
-0000526520 00000 n
-0000526672 00000 n
-0000526822 00000 n
-0000526972 00000 n
-0000527123 00000 n
-0000527275 00000 n
-0000527426 00000 n
-0000527578 00000 n
-0000527730 00000 n
-0000527882 00000 n
-0000528033 00000 n
-0000528185 00000 n
-0000528337 00000 n
-0000528488 00000 n
-0000528639 00000 n
-0000528791 00000 n
-0000528943 00000 n
-0000529094 00000 n
-0000529246 00000 n
-0000529398 00000 n
-0000529549 00000 n
-0000529701 00000 n
-0000529852 00000 n
-0000530003 00000 n
-0000530152 00000 n
-0000530302 00000 n
-0000530452 00000 n
-0000530602 00000 n
-0000530751 00000 n
-0000530901 00000 n
-0000531052 00000 n
-0000531204 00000 n
-0000531354 00000 n
-0000531506 00000 n
-0000531657 00000 n
-0000531809 00000 n
-0000531960 00000 n
-0000532112 00000 n
-0000532264 00000 n
-0000532415 00000 n
-0000532567 00000 n
-0000532720 00000 n
-0000532872 00000 n
-0000533025 00000 n
-0000533178 00000 n
-0000533331 00000 n
-0000533482 00000 n
-0000533635 00000 n
-0000533788 00000 n
-0000533941 00000 n
-0000534094 00000 n
-0000534246 00000 n
-0000534398 00000 n
-0000534551 00000 n
-0000534703 00000 n
-0000534856 00000 n
-0000535009 00000 n
-0000535162 00000 n
-0000535313 00000 n
-0000535466 00000 n
-0000535618 00000 n
-0000535770 00000 n
-0000535923 00000 n
-0000536075 00000 n
-0000536227 00000 n
-0000536380 00000 n
-0000536533 00000 n
-0000536686 00000 n
-0000536839 00000 n
-0000536992 00000 n
-0000537145 00000 n
-0000537298 00000 n
-0000537451 00000 n
-0000537604 00000 n
-0000537757 00000 n
-0000537906 00000 n
-0000538056 00000 n
-0000538206 00000 n
-0000538358 00000 n
-0000538510 00000 n
-0000538663 00000 n
-0000538816 00000 n
-0000538968 00000 n
-0000539119 00000 n
-0000543937 00000 n
-0000544089 00000 n
-0000544241 00000 n
-0000539396 00000 n
-0000521184 00000 n
-0000517833 00000 n
-0000539269 00000 n
-0000521325 00000 n
-0000544393 00000 n
-0000544545 00000 n
-0000544698 00000 n
-0000544849 00000 n
-0000545001 00000 n
-0000545151 00000 n
-0000545304 00000 n
-0000545456 00000 n
-0000545609 00000 n
-0000545760 00000 n
-0000545911 00000 n
-0000546064 00000 n
-0000546217 00000 n
-0000546369 00000 n
-0000546522 00000 n
-0000546675 00000 n
-0000546828 00000 n
-0000546981 00000 n
-0000547133 00000 n
-0000547285 00000 n
-0000547437 00000 n
-0000547590 00000 n
-0000547743 00000 n
-0000547895 00000 n
-0000548047 00000 n
-0000548200 00000 n
-0000548353 00000 n
-0000548506 00000 n
-0000548659 00000 n
-0000548812 00000 n
-0000548964 00000 n
-0000549116 00000 n
-0000549269 00000 n
-0000549422 00000 n
-0000549575 00000 n
-0000549727 00000 n
-0000549879 00000 n
-0000550032 00000 n
-0000550185 00000 n
-0000550338 00000 n
-0000550491 00000 n
-0000550644 00000 n
-0000550796 00000 n
-0000550949 00000 n
-0000551102 00000 n
-0000551255 00000 n
-0000551405 00000 n
-0000551555 00000 n
-0000551706 00000 n
-0000551859 00000 n
-0000552012 00000 n
-0000552165 00000 n
-0000552317 00000 n
-0000552470 00000 n
-0000552622 00000 n
-0000552774 00000 n
-0000552927 00000 n
-0000553078 00000 n
-0000553231 00000 n
-0000553383 00000 n
-0000553536 00000 n
-0000553689 00000 n
-0000553842 00000 n
-0000553994 00000 n
-0000554147 00000 n
-0000554300 00000 n
-0000554453 00000 n
-0000554604 00000 n
-0000554755 00000 n
-0000554906 00000 n
-0000555058 00000 n
-0000555211 00000 n
-0000555364 00000 n
-0000555517 00000 n
-0000555670 00000 n
-0000555823 00000 n
-0000555976 00000 n
-0000556128 00000 n
-0000556281 00000 n
-0000556434 00000 n
-0000556587 00000 n
-0000556739 00000 n
-0000556892 00000 n
-0000557045 00000 n
-0000557198 00000 n
-0000557351 00000 n
-0000557503 00000 n
-0000557656 00000 n
-0000557809 00000 n
-0000557962 00000 n
-0000558113 00000 n
-0000558265 00000 n
-0000558418 00000 n
-0000558568 00000 n
-0000558719 00000 n
-0000562678 00000 n
-0000562831 00000 n
-0000562984 00000 n
-0000563137 00000 n
-0000558933 00000 n
-0000542892 00000 n
-0000539586 00000 n
-0000558869 00000 n
-0000543033 00000 n
-0000563290 00000 n
-0000563442 00000 n
-0000563594 00000 n
-0000563746 00000 n
-0000563898 00000 n
-0000564051 00000 n
-0000564204 00000 n
-0000564357 00000 n
-0000564509 00000 n
-0000564662 00000 n
-0000564814 00000 n
-0000564966 00000 n
-0000565117 00000 n
-0000565270 00000 n
-0000565423 00000 n
-0000565576 00000 n
-0000565729 00000 n
-0000565882 00000 n
-0000566034 00000 n
-0000566186 00000 n
-0000566339 00000 n
-0000566491 00000 n
-0000566644 00000 n
-0000566797 00000 n
-0000566950 00000 n
-0000567101 00000 n
-0000567253 00000 n
-0000567404 00000 n
-0000567557 00000 n
-0000567710 00000 n
-0000567863 00000 n
-0000568016 00000 n
-0000568169 00000 n
-0000568322 00000 n
-0000568475 00000 n
-0000568628 00000 n
-0000568781 00000 n
-0000568933 00000 n
-0000569085 00000 n
-0000569238 00000 n
-0000569390 00000 n
-0000569543 00000 n
-0000569696 00000 n
-0000569849 00000 n
-0000570001 00000 n
-0000570154 00000 n
-0000570305 00000 n
-0000570457 00000 n
-0000570610 00000 n
-0000570761 00000 n
-0000570913 00000 n
-0000571066 00000 n
-0000571219 00000 n
-0000571369 00000 n
-0000571519 00000 n
-0000571669 00000 n
-0000571820 00000 n
-0000571971 00000 n
-0000572124 00000 n
-0000572277 00000 n
-0000572430 00000 n
-0000572583 00000 n
-0000572736 00000 n
-0000572887 00000 n
-0000573040 00000 n
-0000573192 00000 n
-0000573344 00000 n
-0000573497 00000 n
-0000573650 00000 n
-0000573803 00000 n
-0000573956 00000 n
-0000574109 00000 n
-0000574262 00000 n
-0000574479 00000 n
-0000561822 00000 n
-0000559110 00000 n
-0000574415 00000 n
-0000561963 00000 n
-0000577337 00000 n
-0000577491 00000 n
-0000577645 00000 n
-0000577799 00000 n
-0000577953 00000 n
-0000578112 00000 n
-0000578271 00000 n
-0000578430 00000 n
-0000578589 00000 n
-0000578747 00000 n
-0000578906 00000 n
-0000579065 00000 n
-0000579219 00000 n
-0000579378 00000 n
-0000579543 00000 n
-0000579708 00000 n
-0000579867 00000 n
-0000580026 00000 n
-0000580191 00000 n
-0000580355 00000 n
-0000580520 00000 n
-0000580685 00000 n
-0000580850 00000 n
-0000581004 00000 n
-0000581162 00000 n
-0000581321 00000 n
-0000581479 00000 n
-0000581638 00000 n
-0000581791 00000 n
-0000581945 00000 n
-0000582104 00000 n
-0000582263 00000 n
-0000582422 00000 n
-0000582575 00000 n
-0000582730 00000 n
-0000582890 00000 n
-0000583050 00000 n
-0000583210 00000 n
-0000583370 00000 n
-0000583530 00000 n
-0000583690 00000 n
-0000583844 00000 n
-0000583999 00000 n
-0000584159 00000 n
-0000584319 00000 n
-0000584477 00000 n
-0000587419 00000 n
-0000584699 00000 n
-0000576760 00000 n
-0000574656 00000 n
-0000584635 00000 n
-0000576901 00000 n
-0000587574 00000 n
-0000587734 00000 n
-0000587893 00000 n
-0000588052 00000 n
-0000588211 00000 n
-0000588371 00000 n
-0000588526 00000 n
-0000588686 00000 n
-0000588845 00000 n
-0000589005 00000 n
-0000589164 00000 n
-0000589323 00000 n
-0000589482 00000 n
-0000589642 00000 n
-0000589802 00000 n
-0000589962 00000 n
-0000590123 00000 n
-0000590284 00000 n
-0000590439 00000 n
-0000590599 00000 n
-0000590765 00000 n
-0000590931 00000 n
-0000591091 00000 n
-0000591251 00000 n
-0000591410 00000 n
-0000591565 00000 n
-0000591719 00000 n
-0000591879 00000 n
-0000592039 00000 n
-0000592199 00000 n
-0000592359 00000 n
-0000592513 00000 n
-0000592673 00000 n
-0000592833 00000 n
-0000592993 00000 n
-0000593153 00000 n
-0000593313 00000 n
-0000593473 00000 n
-0000593633 00000 n
-0000593793 00000 n
-0000593953 00000 n
-0000594114 00000 n
-0000594269 00000 n
-0000594487 00000 n
-0000586859 00000 n
-0000584850 00000 n
-0000594423 00000 n
-0000877503 00000 n
-0000587001 00000 n
-0000594906 00000 n
-0000595861 00000 n
-0000594962 00000 n
-0000595062 00000 n
-0000596103 00000 n
-0000596717 00000 n
-0000596921 00000 n
-0000598333 00000 n
-0000596996 00000 n
-0000597097 00000 n
-0000598575 00000 n
-0000599203 00000 n
-0000599408 00000 n
-0000599553 00000 n
-0000599650 00000 n
-0000600820 00000 n
+0000184383 00000 n
+0000191942 00000 n
+0000191254 00000 n
+0000204400 00000 n
+0000204559 00000 n
+0000204841 00000 n
+0000204058 00000 n
+0000192284 00000 n
+0000204717 00000 n
+0000608502 00000 n
+0000204195 00000 n
+0000217309 00000 n
+0000217584 00000 n
+0000217143 00000 n
+0000205147 00000 n
+0000217460 00000 n
+0000217280 00000 n
+0000237934 00000 n
+0000237689 00000 n
+0000217864 00000 n
+0000237810 00000 n
+0000877996 00000 n
+0000248333 00000 n
+0000248493 00000 n
+0000253352 00000 n
+0000248839 00000 n
+0000248159 00000 n
+0000238240 00000 n
+0000248653 00000 n
+0000248296 00000 n
+0000253511 00000 n
+0000253665 00000 n
+0000254009 00000 n
+0000253170 00000 n
+0000249093 00000 n
+0000253885 00000 n
+0000605967 00000 n
+0000253307 00000 n
+0000260687 00000 n
+0000261030 00000 n
+0000260521 00000 n
+0000254276 00000 n
+0000260845 00000 n
+0000260658 00000 n
+0000267111 00000 n
+0000267271 00000 n
+0000267431 00000 n
+0000267584 00000 n
+0000267744 00000 n
+0000268059 00000 n
+0000267904 00000 n
+0000268340 00000 n
+0000266897 00000 n
+0000261349 00000 n
+0000268216 00000 n
+0000877394 00000 n
+0000267034 00000 n
+0000285420 00000 n
+0000285579 00000 n
+0000285925 00000 n
+0000285246 00000 n
+0000268672 00000 n
+0000285739 00000 n
+0000285383 00000 n
+0000291810 00000 n
+0000291965 00000 n
+0000292182 00000 n
+0000291636 00000 n
+0000286179 00000 n
+0000292120 00000 n
+0000291773 00000 n
+0000297066 00000 n
+0000297226 00000 n
+0000297386 00000 n
+0000297608 00000 n
+0000296884 00000 n
+0000292397 00000 n
+0000297546 00000 n
+0000297021 00000 n
+0000302736 00000 n
+0000303055 00000 n
+0000302570 00000 n
+0000297888 00000 n
+0000302931 00000 n
+0000302707 00000 n
+0000308733 00000 n
+0000308887 00000 n
+0000309175 00000 n
+0000308559 00000 n
+0000303361 00000 n
+0000309051 00000 n
+0000308696 00000 n
+0000313236 00000 n
+0000313389 00000 n
+0000313541 00000 n
+0000313701 00000 n
+0000313861 00000 n
+0000314014 00000 n
+0000314475 00000 n
+0000313030 00000 n
+0000309390 00000 n
+0000314167 00000 n
+0000878149 00000 n
+0000313167 00000 n
+0000323602 00000 n
+0000319460 00000 n
+0000319619 00000 n
+0000320091 00000 n
+0000319286 00000 n
+0000314638 00000 n
+0000319774 00000 n
+0000319836 00000 n
+0000602904 00000 n
+0000319899 00000 n
+0000319963 00000 n
+0000320027 00000 n
+0000319423 00000 n
+0000324235 00000 n
+0000323419 00000 n
+0000320345 00000 n
+0000323540 00000 n
+0000323664 00000 n
+0000323728 00000 n
+0000323792 00000 n
+0000323856 00000 n
+0000323920 00000 n
+0000323983 00000 n
+0000324047 00000 n
+0000324110 00000 n
+0000331024 00000 n
+0000331184 00000 n
+0000327370 00000 n
+0000327187 00000 n
+0000324450 00000 n
+0000327308 00000 n
+0000331344 00000 n
+0000331504 00000 n
+0000331663 00000 n
+0000331822 00000 n
+0000331983 00000 n
+0000332393 00000 n
+0000330810 00000 n
+0000327546 00000 n
+0000332145 00000 n
+0000330947 00000 n
+0000341328 00000 n
+0000341022 00000 n
+0000332569 00000 n
+0000341143 00000 n
+0000346617 00000 n
+0000347015 00000 n
+0000346451 00000 n
+0000341647 00000 n
+0000346767 00000 n
+0000346588 00000 n
+0000352521 00000 n
+0000352676 00000 n
+0000352830 00000 n
+0000352988 00000 n
+0000353143 00000 n
+0000353421 00000 n
+0000352323 00000 n
+0000347308 00000 n
+0000353297 00000 n
+0000877251 00000 n
+0000875510 00000 n
+0000352460 00000 n
+0000358740 00000 n
+0000358900 00000 n
+0000359303 00000 n
+0000358566 00000 n
+0000353766 00000 n
+0000359055 00000 n
+0000358703 00000 n
+0000364587 00000 n
+0000364777 00000 n
+0000364930 00000 n
+0000365339 00000 n
+0000364405 00000 n
+0000359583 00000 n
+0000365092 00000 n
+0000364542 00000 n
+0000370609 00000 n
+0000370761 00000 n
+0000370287 00000 n
+0000370448 00000 n
+0000371098 00000 n
+0000370097 00000 n
+0000365658 00000 n
+0000370912 00000 n
+0000878302 00000 n
+0000370234 00000 n
+0000378424 00000 n
+0000378583 00000 n
+0000378860 00000 n
+0000378250 00000 n
+0000371339 00000 n
+0000378736 00000 n
+0000378387 00000 n
+0000384617 00000 n
+0000384838 00000 n
+0000384451 00000 n
+0000379114 00000 n
+0000384776 00000 n
+0000384588 00000 n
+0000391399 00000 n
+0000391743 00000 n
+0000391233 00000 n
+0000385079 00000 n
+0000391557 00000 n
+0000600428 00000 n
+0000391370 00000 n
+0000396132 00000 n
+0000396416 00000 n
+0000395966 00000 n
+0000391997 00000 n
+0000396292 00000 n
+0000396103 00000 n
+0000410090 00000 n
+0000410501 00000 n
+0000409924 00000 n
+0000396696 00000 n
+0000410254 00000 n
+0000410061 00000 n
+0000415331 00000 n
+0000415490 00000 n
+0000415649 00000 n
+0000416070 00000 n
+0000415149 00000 n
+0000410755 00000 n
+0000415884 00000 n
+0000597943 00000 n
+0000415286 00000 n
+0000423364 00000 n
+0000423528 00000 n
+0000423692 00000 n
+0000416337 00000 n
+0000416655 00000 n
+0000416981 00000 n
+0000417185 00000 n
+0000417663 00000 n
+0000418007 00000 n
+0000418211 00000 n
+0000423856 00000 n
+0000424006 00000 n
+0000424342 00000 n
+0000423166 00000 n
+0000418853 00000 n
+0000424156 00000 n
+0000423303 00000 n
+0000432351 00000 n
+0000432506 00000 n
+0000428236 00000 n
+0000427991 00000 n
+0000424650 00000 n
+0000428112 00000 n
+0000433039 00000 n
+0000432177 00000 n
+0000428412 00000 n
+0000432661 00000 n
+0000432785 00000 n
+0000432848 00000 n
+0000432911 00000 n
+0000432975 00000 n
+0000432314 00000 n
+0000453288 00000 n
+0000452981 00000 n
+0000433267 00000 n
+0000453102 00000 n
+0000878455 00000 n
+0000459350 00000 n
+0000459167 00000 n
+0000453555 00000 n
+0000459288 00000 n
+0000464220 00000 n
+0000463913 00000 n
+0000459643 00000 n
+0000464034 00000 n
+0000467862 00000 n
+0000467679 00000 n
+0000464435 00000 n
+0000467800 00000 n
+0000471292 00000 n
+0000471109 00000 n
+0000468103 00000 n
+0000471230 00000 n
+0000475664 00000 n
+0000475481 00000 n
+0000471533 00000 n
+0000475602 00000 n
+0000482227 00000 n
+0000482511 00000 n
+0000482061 00000 n
+0000475892 00000 n
+0000482387 00000 n
+0000482198 00000 n
+0000488152 00000 n
+0000487969 00000 n
+0000482843 00000 n
+0000488090 00000 n
+0000500304 00000 n
+0000500059 00000 n
+0000488367 00000 n
+0000500180 00000 n
+0000503780 00000 n
+0000503535 00000 n
+0000500545 00000 n
+0000503656 00000 n
+0000506466 00000 n
+0000506221 00000 n
+0000503930 00000 n
+0000506342 00000 n
+0000878608 00000 n
+0000509080 00000 n
+0000508897 00000 n
+0000506668 00000 n
+0000509018 00000 n
+0000511784 00000 n
+0000511601 00000 n
+0000509243 00000 n
+0000511722 00000 n
+0000514491 00000 n
+0000514308 00000 n
+0000511947 00000 n
+0000514429 00000 n
+0000517184 00000 n
+0000517001 00000 n
+0000514654 00000 n
+0000517122 00000 n
+0000519066 00000 n
+0000518883 00000 n
+0000517360 00000 n
+0000519004 00000 n
+0000523682 00000 n
+0000523832 00000 n
+0000523982 00000 n
+0000524132 00000 n
+0000524284 00000 n
+0000524436 00000 n
+0000524588 00000 n
+0000524740 00000 n
+0000524892 00000 n
+0000525043 00000 n
+0000525195 00000 n
+0000525346 00000 n
+0000525498 00000 n
+0000525649 00000 n
+0000525799 00000 n
+0000525951 00000 n
+0000526103 00000 n
+0000526255 00000 n
+0000526405 00000 n
+0000526555 00000 n
+0000526707 00000 n
+0000526859 00000 n
+0000527010 00000 n
+0000527162 00000 n
+0000527313 00000 n
+0000527465 00000 n
+0000527613 00000 n
+0000527762 00000 n
+0000527913 00000 n
+0000528065 00000 n
+0000528215 00000 n
+0000528365 00000 n
+0000528516 00000 n
+0000528668 00000 n
+0000528819 00000 n
+0000528971 00000 n
+0000529123 00000 n
+0000529275 00000 n
+0000529426 00000 n
+0000529578 00000 n
+0000529730 00000 n
+0000529881 00000 n
+0000530032 00000 n
+0000530184 00000 n
+0000530336 00000 n
+0000530487 00000 n
+0000530639 00000 n
+0000530791 00000 n
+0000530942 00000 n
+0000531094 00000 n
+0000531245 00000 n
+0000531396 00000 n
+0000531545 00000 n
+0000531695 00000 n
+0000531845 00000 n
+0000531995 00000 n
+0000532144 00000 n
+0000532294 00000 n
+0000532445 00000 n
+0000532597 00000 n
+0000532747 00000 n
+0000532899 00000 n
+0000533050 00000 n
+0000533202 00000 n
+0000533353 00000 n
+0000533505 00000 n
+0000533657 00000 n
+0000533808 00000 n
+0000533960 00000 n
+0000534112 00000 n
+0000534263 00000 n
+0000534416 00000 n
+0000534569 00000 n
+0000534722 00000 n
+0000534873 00000 n
+0000535026 00000 n
+0000535179 00000 n
+0000535332 00000 n
+0000535485 00000 n
+0000535637 00000 n
+0000535789 00000 n
+0000535942 00000 n
+0000536094 00000 n
+0000536247 00000 n
+0000536400 00000 n
+0000536553 00000 n
+0000536704 00000 n
+0000536857 00000 n
+0000537009 00000 n
+0000537161 00000 n
+0000537314 00000 n
+0000537466 00000 n
+0000537618 00000 n
+0000537771 00000 n
+0000537924 00000 n
+0000538077 00000 n
+0000538230 00000 n
+0000538383 00000 n
+0000538536 00000 n
+0000538689 00000 n
+0000538842 00000 n
+0000538995 00000 n
+0000539148 00000 n
+0000539297 00000 n
+0000539447 00000 n
+0000539597 00000 n
+0000539749 00000 n
+0000539901 00000 n
+0000540054 00000 n
+0000540207 00000 n
+0000540359 00000 n
+0000540510 00000 n
+0000545330 00000 n
+0000545482 00000 n
+0000545634 00000 n
+0000540787 00000 n
+0000522581 00000 n
+0000519242 00000 n
+0000540660 00000 n
+0000522722 00000 n
+0000545786 00000 n
+0000545938 00000 n
+0000546091 00000 n
+0000546242 00000 n
+0000546394 00000 n
+0000546544 00000 n
+0000546697 00000 n
+0000546849 00000 n
+0000547002 00000 n
+0000547153 00000 n
+0000547304 00000 n
+0000547457 00000 n
+0000547610 00000 n
+0000547762 00000 n
+0000547915 00000 n
+0000548068 00000 n
+0000548221 00000 n
+0000548374 00000 n
+0000548526 00000 n
+0000548678 00000 n
+0000548830 00000 n
+0000548983 00000 n
+0000549136 00000 n
+0000549288 00000 n
+0000549440 00000 n
+0000549593 00000 n
+0000549746 00000 n
+0000549899 00000 n
+0000550052 00000 n
+0000550205 00000 n
+0000550357 00000 n
+0000550509 00000 n
+0000550662 00000 n
+0000550815 00000 n
+0000550968 00000 n
+0000551120 00000 n
+0000551272 00000 n
+0000551425 00000 n
+0000551578 00000 n
+0000551731 00000 n
+0000551884 00000 n
+0000552037 00000 n
+0000552189 00000 n
+0000552342 00000 n
+0000552495 00000 n
+0000552648 00000 n
+0000552798 00000 n
+0000552948 00000 n
+0000553099 00000 n
+0000553252 00000 n
+0000553405 00000 n
+0000553558 00000 n
+0000553710 00000 n
+0000553863 00000 n
+0000554015 00000 n
+0000554167 00000 n
+0000554320 00000 n
+0000554471 00000 n
+0000554624 00000 n
+0000554776 00000 n
+0000554929 00000 n
+0000555082 00000 n
+0000555235 00000 n
+0000555387 00000 n
+0000555540 00000 n
+0000555693 00000 n
+0000555846 00000 n
+0000555997 00000 n
+0000556148 00000 n
+0000556299 00000 n
+0000556451 00000 n
+0000556604 00000 n
+0000556757 00000 n
+0000556910 00000 n
+0000557063 00000 n
+0000557216 00000 n
+0000557369 00000 n
+0000557521 00000 n
+0000557674 00000 n
+0000557827 00000 n
+0000557980 00000 n
+0000558132 00000 n
+0000558285 00000 n
+0000558438 00000 n
+0000558591 00000 n
+0000558744 00000 n
+0000558896 00000 n
+0000559049 00000 n
+0000559202 00000 n
+0000559355 00000 n
+0000559506 00000 n
+0000559658 00000 n
+0000559811 00000 n
+0000559961 00000 n
+0000560112 00000 n
+0000564066 00000 n
+0000564219 00000 n
+0000564372 00000 n
+0000564525 00000 n
+0000560326 00000 n
+0000544285 00000 n
+0000540977 00000 n
+0000560262 00000 n
+0000544426 00000 n
+0000564678 00000 n
+0000564830 00000 n
+0000564982 00000 n
+0000565134 00000 n
+0000565286 00000 n
+0000565439 00000 n
+0000565592 00000 n
+0000565745 00000 n
+0000565897 00000 n
+0000566050 00000 n
+0000566202 00000 n
+0000566354 00000 n
+0000566505 00000 n
+0000566658 00000 n
+0000566811 00000 n
+0000566964 00000 n
+0000567117 00000 n
+0000567270 00000 n
+0000567422 00000 n
+0000567574 00000 n
+0000567727 00000 n
+0000567879 00000 n
+0000568032 00000 n
+0000568185 00000 n
+0000568338 00000 n
+0000568489 00000 n
+0000568641 00000 n
+0000568792 00000 n
+0000568945 00000 n
+0000569098 00000 n
+0000569251 00000 n
+0000569404 00000 n
+0000569557 00000 n
+0000569710 00000 n
+0000569863 00000 n
+0000570016 00000 n
+0000570168 00000 n
+0000570320 00000 n
+0000570473 00000 n
+0000570625 00000 n
+0000570778 00000 n
+0000570931 00000 n
+0000571084 00000 n
+0000571237 00000 n
+0000571389 00000 n
+0000571542 00000 n
+0000571693 00000 n
+0000571845 00000 n
+0000571998 00000 n
+0000572149 00000 n
+0000572301 00000 n
+0000572454 00000 n
+0000572607 00000 n
+0000572757 00000 n
+0000572907 00000 n
+0000573057 00000 n
+0000573208 00000 n
+0000573359 00000 n
+0000573512 00000 n
+0000573665 00000 n
+0000573818 00000 n
+0000573971 00000 n
+0000574124 00000 n
+0000574275 00000 n
+0000574428 00000 n
+0000574580 00000 n
+0000574732 00000 n
+0000574885 00000 n
+0000575038 00000 n
+0000575191 00000 n
+0000575344 00000 n
+0000575497 00000 n
+0000575650 00000 n
+0000575867 00000 n
+0000563210 00000 n
+0000560503 00000 n
+0000575803 00000 n
+0000563351 00000 n
+0000578724 00000 n
+0000578878 00000 n
+0000579032 00000 n
+0000579186 00000 n
+0000579340 00000 n
+0000579499 00000 n
+0000579658 00000 n
+0000579817 00000 n
+0000579976 00000 n
+0000580134 00000 n
+0000580293 00000 n
+0000580452 00000 n
+0000580606 00000 n
+0000580765 00000 n
+0000580930 00000 n
+0000581095 00000 n
+0000581254 00000 n
+0000581413 00000 n
+0000581578 00000 n
+0000581742 00000 n
+0000581907 00000 n
+0000582072 00000 n
+0000582237 00000 n
+0000582391 00000 n
+0000582549 00000 n
+0000582708 00000 n
+0000582866 00000 n
+0000583025 00000 n
+0000583178 00000 n
+0000583332 00000 n
+0000583491 00000 n
+0000583650 00000 n
+0000583809 00000 n
+0000583962 00000 n
+0000584117 00000 n
+0000584277 00000 n
+0000584437 00000 n
+0000584597 00000 n
+0000584757 00000 n
+0000584917 00000 n
+0000585077 00000 n
+0000585231 00000 n
+0000585386 00000 n
+0000585546 00000 n
+0000585706 00000 n
+0000585864 00000 n
+0000588802 00000 n
+0000586086 00000 n
+0000578147 00000 n
+0000576044 00000 n
+0000586022 00000 n
+0000578288 00000 n
+0000588957 00000 n
+0000589117 00000 n
+0000589276 00000 n
+0000589435 00000 n
+0000589594 00000 n
+0000589754 00000 n
+0000589909 00000 n
+0000590069 00000 n
+0000590228 00000 n
+0000590388 00000 n
+0000590547 00000 n
+0000590706 00000 n
+0000590865 00000 n
+0000591025 00000 n
+0000591185 00000 n
+0000591345 00000 n
+0000591506 00000 n
+0000591667 00000 n
+0000591822 00000 n
+0000591982 00000 n
+0000592148 00000 n
+0000592314 00000 n
+0000592474 00000 n
+0000592634 00000 n
+0000592793 00000 n
+0000592948 00000 n
+0000593102 00000 n
+0000593262 00000 n
+0000593422 00000 n
+0000593582 00000 n
+0000593742 00000 n
+0000593896 00000 n
+0000594056 00000 n
+0000594216 00000 n
+0000594376 00000 n
+0000594536 00000 n
+0000594696 00000 n
+0000594856 00000 n
+0000595016 00000 n
+0000595176 00000 n
+0000595336 00000 n
+0000595497 00000 n
+0000595652 00000 n
+0000595870 00000 n
+0000588242 00000 n
+0000586237 00000 n
+0000595806 00000 n
+0000878765 00000 n
+0000588384 00000 n
+0000596289 00000 n
+0000597244 00000 n
+0000596345 00000 n
+0000596445 00000 n
+0000597486 00000 n
+0000598100 00000 n
+0000598304 00000 n
0000599716 00000 n
-0000599813 00000 n
-0000601063 00000 n
-0000601678 00000 n
-0000601882 00000 n
-0000601986 00000 n
-0000603841 00000 n
-0000602144 00000 n
-0000602248 00000 n
-0000604081 00000 n
-0000604741 00000 n
-0000604945 00000 n
-0000606400 00000 n
-0000605024 00000 n
-0000605126 00000 n
-0000606648 00000 n
-0000607282 00000 n
-0000607492 00000 n
-0000607537 00000 n
-0000610693 00000 n
-0000607812 00000 n
-0000607918 00000 n
-0000610941 00000 n
-0000611671 00000 n
-0000611881 00000 n
-0000611906 00000 n
-0000615999 00000 n
-0000612248 00000 n
-0000612358 00000 n
-0000616242 00000 n
-0000616990 00000 n
-0000617194 00000 n
-0000617220 00000 n
-0000617472 00000 n
-0000619554 00000 n
+0000598379 00000 n
+0000598480 00000 n
+0000599958 00000 n
+0000600586 00000 n
+0000600791 00000 n
+0000600936 00000 n
+0000601033 00000 n
+0000602203 00000 n
+0000601099 00000 n
+0000601196 00000 n
+0000602446 00000 n
+0000603061 00000 n
+0000603265 00000 n
+0000603369 00000 n
+0000605224 00000 n
+0000603527 00000 n
+0000603631 00000 n
+0000605464 00000 n
+0000606124 00000 n
+0000606328 00000 n
+0000607783 00000 n
+0000606407 00000 n
+0000606509 00000 n
+0000608031 00000 n
+0000608665 00000 n
+0000608875 00000 n
+0000608920 00000 n
+0000612076 00000 n
+0000609195 00000 n
+0000609301 00000 n
+0000612324 00000 n
+0000613054 00000 n
+0000613264 00000 n
+0000613289 00000 n
+0000617382 00000 n
+0000613631 00000 n
+0000613741 00000 n
0000617625 00000 n
-0000617731 00000 n
-0000619793 00000 n
-0000620453 00000 n
-0000620655 00000 n
-0000628223 00000 n
-0000621088 00000 n
-0000621200 00000 n
-0000628463 00000 n
-0000629346 00000 n
-0000629549 00000 n
-0000636888 00000 n
-0000629989 00000 n
-0000630097 00000 n
-0000637128 00000 n
-0000638041 00000 n
-0000638245 00000 n
-0000640557 00000 n
-0000638519 00000 n
-0000638625 00000 n
-0000640797 00000 n
-0000641503 00000 n
-0000641707 00000 n
-0000649742 00000 n
-0000642164 00000 n
-0000642276 00000 n
-0000649983 00000 n
-0000650891 00000 n
-0000651096 00000 n
-0000653302 00000 n
-0000651222 00000 n
-0000651330 00000 n
-0000653544 00000 n
-0000654198 00000 n
-0000654403 00000 n
-0000656191 00000 n
-0000654514 00000 n
-0000654618 00000 n
-0000656438 00000 n
-0000657087 00000 n
-0000657297 00000 n
-0000664751 00000 n
-0000657725 00000 n
-0000657840 00000 n
-0000664991 00000 n
-0000665879 00000 n
-0000666082 00000 n
-0000670734 00000 n
-0000666425 00000 n
-0000666536 00000 n
-0000670983 00000 n
-0000671753 00000 n
-0000671964 00000 n
-0000675202 00000 n
-0000672160 00000 n
-0000672267 00000 n
-0000675444 00000 n
-0000676142 00000 n
-0000676347 00000 n
-0000683006 00000 n
-0000676733 00000 n
-0000676844 00000 n
-0000683250 00000 n
-0000684051 00000 n
-0000684256 00000 n
-0000692902 00000 n
-0000684693 00000 n
-0000684807 00000 n
-0000693143 00000 n
-0000694120 00000 n
-0000694325 00000 n
-0000697726 00000 n
-0000694685 00000 n
-0000694792 00000 n
-0000697967 00000 n
-0000698735 00000 n
-0000698940 00000 n
-0000699175 00000 n
-0000708810 00000 n
-0000699743 00000 n
-0000699872 00000 n
-0000709052 00000 n
-0000710054 00000 n
-0000710260 00000 n
-0000710367 00000 n
-0000710646 00000 n
-0000710753 00000 n
-0000710815 00000 n
-0000711010 00000 n
-0000711379 00000 n
-0000719038 00000 n
-0000711822 00000 n
-0000711930 00000 n
-0000719278 00000 n
-0000720210 00000 n
-0000720414 00000 n
-0000722018 00000 n
-0000720571 00000 n
-0000720677 00000 n
-0000722258 00000 n
-0000722917 00000 n
-0000723121 00000 n
-0000726907 00000 n
-0000723413 00000 n
-0000723519 00000 n
-0000727148 00000 n
-0000727881 00000 n
-0000728086 00000 n
-0000729645 00000 n
-0000728179 00000 n
-0000728280 00000 n
-0000729884 00000 n
-0000730510 00000 n
-0000730712 00000 n
-0000732949 00000 n
-0000730891 00000 n
-0000730997 00000 n
-0000733190 00000 n
-0000733859 00000 n
-0000734064 00000 n
-0000738186 00000 n
-0000734396 00000 n
-0000734510 00000 n
-0000738428 00000 n
-0000739175 00000 n
-0000739381 00000 n
-0000740741 00000 n
-0000739504 00000 n
-0000739610 00000 n
-0000740982 00000 n
-0000741627 00000 n
-0000741832 00000 n
-0000745282 00000 n
-0000742094 00000 n
-0000742201 00000 n
-0000745524 00000 n
-0000746240 00000 n
-0000755692 00000 n
-0000746446 00000 n
-0000767116 00000 n
-0000755943 00000 n
-0000774804 00000 n
-0000767870 00000 n
-0000787581 00000 n
-0000775034 00000 n
-0000795052 00000 n
-0000787909 00000 n
-0000803185 00000 n
-0000795278 00000 n
-0000813112 00000 n
-0000803418 00000 n
-0000821024 00000 n
-0000813379 00000 n
-0000833734 00000 n
-0000821255 00000 n
-0000841752 00000 n
-0000834092 00000 n
-0000850993 00000 n
-0000842000 00000 n
-0000858945 00000 n
-0000851301 00000 n
-0000866485 00000 n
-0000859229 00000 n
-0000873999 00000 n
-0000866724 00000 n
-0000877585 00000 n
-0000877716 00000 n
-0000886166 00000 n
-0000886802 00000 n
-0000887442 00000 n
-0000888091 00000 n
-0000888897 00000 n
-0000889810 00000 n
-0000890715 00000 n
-0000890818 00000 n
-0000890955 00000 n
-0000890995 00000 n
-0000891127 00000 n
+0000618373 00000 n
+0000618577 00000 n
+0000618603 00000 n
+0000618855 00000 n
+0000620937 00000 n
+0000619008 00000 n
+0000619114 00000 n
+0000621176 00000 n
+0000621836 00000 n
+0000622038 00000 n
+0000629606 00000 n
+0000622471 00000 n
+0000622583 00000 n
+0000629846 00000 n
+0000630729 00000 n
+0000630932 00000 n
+0000638271 00000 n
+0000631372 00000 n
+0000631480 00000 n
+0000638511 00000 n
+0000639424 00000 n
+0000639628 00000 n
+0000641940 00000 n
+0000639902 00000 n
+0000640008 00000 n
+0000642180 00000 n
+0000642886 00000 n
+0000643090 00000 n
+0000651125 00000 n
+0000643547 00000 n
+0000643659 00000 n
+0000651366 00000 n
+0000652274 00000 n
+0000652479 00000 n
+0000654685 00000 n
+0000652605 00000 n
+0000652713 00000 n
+0000654927 00000 n
+0000655581 00000 n
+0000655786 00000 n
+0000657574 00000 n
+0000655897 00000 n
+0000656001 00000 n
+0000657821 00000 n
+0000658470 00000 n
+0000658680 00000 n
+0000666134 00000 n
+0000659108 00000 n
+0000659223 00000 n
+0000666374 00000 n
+0000667262 00000 n
+0000667465 00000 n
+0000672117 00000 n
+0000667808 00000 n
+0000667919 00000 n
+0000672366 00000 n
+0000673136 00000 n
+0000673347 00000 n
+0000676585 00000 n
+0000673543 00000 n
+0000673650 00000 n
+0000676827 00000 n
+0000677525 00000 n
+0000677730 00000 n
+0000684389 00000 n
+0000678116 00000 n
+0000678227 00000 n
+0000684633 00000 n
+0000685434 00000 n
+0000685639 00000 n
+0000694285 00000 n
+0000686076 00000 n
+0000686190 00000 n
+0000694526 00000 n
+0000695503 00000 n
+0000695708 00000 n
+0000699109 00000 n
+0000696068 00000 n
+0000696175 00000 n
+0000699350 00000 n
+0000700118 00000 n
+0000700323 00000 n
+0000700558 00000 n
+0000710193 00000 n
+0000701126 00000 n
+0000701255 00000 n
+0000710435 00000 n
+0000711437 00000 n
+0000711643 00000 n
+0000711750 00000 n
+0000712029 00000 n
+0000712136 00000 n
+0000712198 00000 n
+0000712393 00000 n
+0000712762 00000 n
+0000720421 00000 n
+0000713205 00000 n
+0000713313 00000 n
+0000720661 00000 n
+0000721593 00000 n
+0000721797 00000 n
+0000723401 00000 n
+0000721954 00000 n
+0000722060 00000 n
+0000723641 00000 n
+0000724300 00000 n
+0000724504 00000 n
+0000728290 00000 n
+0000724796 00000 n
+0000724902 00000 n
+0000728531 00000 n
+0000729264 00000 n
+0000729469 00000 n
+0000731028 00000 n
+0000729562 00000 n
+0000729663 00000 n
+0000731267 00000 n
+0000731893 00000 n
+0000732095 00000 n
+0000734332 00000 n
+0000732274 00000 n
+0000732380 00000 n
+0000734573 00000 n
+0000735242 00000 n
+0000735447 00000 n
+0000739452 00000 n
+0000735775 00000 n
+0000735889 00000 n
+0000739694 00000 n
+0000740437 00000 n
+0000740643 00000 n
+0000742003 00000 n
+0000740766 00000 n
+0000740872 00000 n
+0000742244 00000 n
+0000742889 00000 n
+0000743094 00000 n
+0000746544 00000 n
+0000743356 00000 n
+0000743463 00000 n
+0000746786 00000 n
+0000747502 00000 n
+0000756954 00000 n
+0000747708 00000 n
+0000768378 00000 n
+0000757205 00000 n
+0000776066 00000 n
+0000769132 00000 n
+0000788843 00000 n
+0000776296 00000 n
+0000796314 00000 n
+0000789171 00000 n
+0000804447 00000 n
+0000796540 00000 n
+0000814374 00000 n
+0000804680 00000 n
+0000822286 00000 n
+0000814641 00000 n
+0000834996 00000 n
+0000822517 00000 n
+0000843014 00000 n
+0000835354 00000 n
+0000852255 00000 n
+0000843262 00000 n
+0000860207 00000 n
+0000852563 00000 n
+0000867747 00000 n
+0000860491 00000 n
+0000875261 00000 n
+0000867986 00000 n
+0000878847 00000 n
+0000878978 00000 n
+0000887428 00000 n
+0000888064 00000 n
+0000888704 00000 n
+0000889353 00000 n
+0000890159 00000 n
+0000891072 00000 n
+0000891977 00000 n
+0000892080 00000 n
+0000892217 00000 n
+0000892257 00000 n
+0000892389 00000 n
trailer
-<< /Size 1564 /Root 1562 0 R /Info 1563 0 R /ID [ <BE65CC6E78F9273580FD530CA1CBF8CB> <BE65CC6E78F9273580FD530CA1CBF8CB> ] >>
+<< /Size 1562 /Root 1560 0 R /Info 1561 0 R /ID [ <93D3827395C8311F167E06495428C36C> <93D3827395C8311F167E06495428C36C> ] >>
startxref
-891691
+892953
%%EOF
diff --git a/macros/latex/contrib/nicematrix/nicematrix.tex b/macros/latex/contrib/nicematrix/nicematrix.tex
index 7bafda9008..5e838cabae 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix.tex
@@ -143,9 +143,11 @@ L_2 & a_{21} & a_{22} & \Cdots & a_{2n} \\
\Vdots & \Vdots & \Vdots & \Ddots & \Vdots\\
L_n & a_{n1} & a_{n2} & \Cdots & a_{nn}
\end{bNiceArray}$\hspace{2cm}
-\begin{NiceTabular}{lSSSS}[code-before = \rowcolor{red!15}{1-2} \rowcolors{3}{blue!15}{}]
+\begin{NiceTabular}{lSSSS}%
+ [code-before = \rowcolor{red!15}{1-2} \rowcolors{3}{blue!15}{}]
\toprule
-\Block{2-1}{Product} & \multicolumn{3}{c}{dimensions (cm)} & \Block{2-1}{\rotate Price} \\
+\Block{2-1}{Product} & \multicolumn{3}{c}{dimensions (cm)}
+ & \Block{2-1}{\rotate Price} \\
\cmidrule(rl){2-4}
& L & l & h \\
\midrule
@@ -170,10 +172,9 @@ If you use LaTeX via Internet with, for example, Overleaf, you
can upload the file |nicematrix.sty| in the repertory of your
project in order to take full advantage of the latest version de
\pkg{nicematrix}.\footnote{The latest version of the file
-|nicematrix.sty| may be downloaded from the \textsc{svn} server of
-TeXLive:\newline
+|nicematrix.sty| may be downloaded on the Github depot of \pkg{nicematrix}:\newline
\small
-\url{https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty}}
+\url{https://github.com/fpantigny/nicematrix/releases}}
\medskip
This package can be used with |xelatex|, |lualatex|, |pdflatex| but also by
@@ -195,8 +196,9 @@ and the positions of the rules of the tabular created by \pkg{array} and to
use these nodes to develop new features. As usual with \textsc{pgf}, the
coordinates of these nodes are written in the |aux| to be used on the next
compilation and that's why \pkg{nicematrix} may need \textbf{several
-compilations}.\footnote{If you use Overleaf, Overleaf will do automatically
-a sufficient number of compilations.}
+compilations}\footnote{If you use Overleaf, Overleaf will do automatically
+a sufficient number of compilations.}. One must not use the command |\nofiles|
+(which prevents the creation of the |aux| file).
\medskip
Most features of \pkg{nicematrix} may be used without explicit use of
@@ -660,9 +662,10 @@ In the following example, we have had to enlarge by hand the columns 2 and 3
\bigskip
\begin{Code}
\begin{NiceTabular}{cw{c}{2cm}w{c}{3cm}c}
-rose & tulip & daisy & dahlia \\
-violet & \emph{\Block[draw=red,fill=[RGB]{204,204,255},rounded-corners]{2-2}
- {\LARGE Some beautiful flowers}} & & marigold \\
+rose & tulip & daisy & dahlia \\
+violet
+ & \emph{\Block[draw=red,fill=[RGB]{204,204,255},rounded-corners]{2-2}
+ {\LARGE Some beautiful flowers}} & & marigold \\
& & marigold \\
iris & & & lis \\
arum & periwinkle & forget-me-not & hyacinth
@@ -1350,7 +1353,7 @@ those keys, see |custom-line| on p.~\pageref{custom-line}.\footnote{Technical
shall be ensured that this new command is expandable in the TeX sens (by
using, for instance, |\NewExpandableDocumentCommand| of LaTeX3, |\newcommand|
of LaTeX or |\def| of TeX). Example:
- |\newcommand{\RedLine}{\Hline[color=red]}|}
+ |\NewDocumentCommand{\RedLine}{}{\Hline[color=red]}|}
\bigskip
@@ -2538,9 +2541,12 @@ current environment.\footnote{Up to now, this key is \emph{not} available in |\N
There are several commands available (the first three ones are inspired by
\pkg{colortbl} but are \emph{independent} of \pkg{colortbl}):
\begin{itemize}
-\item \DefinitionCommand{cellcolor} which colorizes a cell;\footnote{However,
- this command cellcolor will delete the following spaces, which does not the
- command cellcolor of \pkg{colortbl}.}
+\item \DefinitionCommand{cellcolor} which colorizes a cell;\footnote{That
+ command cellcolor will delete the following spaces, which does not the
+ command cellcolor of \pkg{colortbl}. Moreover, if one wishes to define a
+ command above that command |rowcolor|, it must be protected in the TeX sens
+ (whereas, if it were the command |\rowcolor| of \pkg{colortbl}, one should
+ write a \emph{fully expandable} command).}
\item \DefinitionCommand{rowcolor} which must be used in a cell and which
colorizes the end of the row;\footnote{If you want a commande to color the
following $n$~rows, consider the command |\RowStyle| and its key |rowcolor|,
@@ -3363,8 +3369,8 @@ The option |nullify-dots| smashes the instructions |\Ldots| (and the variants)
horizontally but also vertically.
\medskip
-Caution : the key |nullify-dots| has a name that may be confusing; that key does
-not imply that the dotted rules won't be drawn!
+\textbf{Caution}: the key |nullify-dots| has a name that may be confusing; that
+key does not imply that the dotted rules won't be drawn!
@@ -4330,7 +4336,7 @@ $\begin{pNiceMatrix}
CodeAfter}
-\index{SubMatrix@\texttt{\textbackslash TikzEveryCell} (command of
+\index{tikzeverycell@\texttt{\textbackslash TikzEveryCell} (command of
\texttt{\textbackslash CodeAfter}\newline and
\texttt{\textbackslash CodeBefore})|textbf}
\label{TikzEveryCell}
@@ -4381,7 +4387,7 @@ which are the other keys in the argument of |\TikzEveryCell|.
\endgroup
\bigskip
-The command |\TikzEveryCell| has two keys:
+The command |\TikzEveryCell| has two optional keys, available between square brackets.
\begin{itemize}
\item with the key \Definition{empty}, the command only acts on the empty cells;
@@ -4389,6 +4395,35 @@ The command |\TikzEveryCell| has two keys:
\end{itemize}
\medskip
+\begin{Code}[width=9cm]
+\renewcommand{\arraystretch}{1.4}
+\begin{NiceTabular}{cccccc}[hvlines]
+ P & O & U & R & V & U \\
+ O & & & E & I & \\
+ M & O & R & F & A & L \\
+ E & T & A & L & & E \\
+ L & A & S & E & R & S \\
+ O & & E & X & I & T
+\CodeAfter
+ \emph{\TikzEveryCell[empty]{fill=gray,draw}}
+\end{NiceTabular}
+\end{Code}
+\begin{scope}
+\renewcommand{\arraystretch}{1.4}
+\begin{NiceTabular}{cccccc}[hvlines]
+ P & O & U & R & V & U \\
+ O & & & E & I & \\
+ M & O & R & F & A & L \\
+ E & T & A & L & & E \\
+ L & A & S & E & R & S \\
+ O & & E & X & I & T
+\CodeAfter
+ \TikzEveryCell[empty]{fill=gray,draw}
+\end{NiceTabular}
+\end{scope}
+
+
+\medskip
The commmand |\TikzEveryCell| is, in fact, also available in the |\CodeBefore|.
diff --git a/macros/latex/contrib/oberdiek/README.md b/macros/latex/contrib/oberdiek/README.md
index 4a2250cf37..b455eff334 100644
--- a/macros/latex/contrib/oberdiek/README.md
+++ b/macros/latex/contrib/oberdiek/README.md
@@ -1,6 +1,6 @@
# Oberdiek bundle
-Version: 2023-12-04
+Version: 2024-07-26
This file describes the directory
CTAN:macros/latex/contrib/oberdiek/
@@ -11,7 +11,7 @@ It contains several packages:
## Copyright (C)
* 2007, 2009-2011 Heiko Oberdiek
-* 2016-2023 Oberdiek Package Support Group
+* 2016-2024 Oberdiek Package Support Group
## License
LATEX Project Public License, version 1.3c or later.
@@ -48,7 +48,6 @@ Other files in the CTAN directory:
* flags: setting and clearing flags in bit fields and converting the bit field into a decimal number;
* holtxdoc: extra documentation macros;
* hypbmsec: bookmarks in sectioning commands;
-* hypcap: anjusting anchors of captions;
* hypgotoe: experimental package for links to embedded files;
* hyphsubst: substitute hyphenation patterns;
* ifdraft: switch for option draft;
@@ -66,6 +65,5 @@ Other files in the CTAN directory:
* stampinclude: selects the files for \include by inspecting the timestamp of the .aux file(s);
* tabularht: tabulars with height specification;
* tabularkv: key value interface for tabular parameters;
-* telprint: print German telephone numbers;
* thepdfnumber: canonical numbers for use in PDF files and elsewhere;
* twoopt: commands with two optional arguments;
diff --git a/macros/latex/contrib/oberdiek/aliascnt.dtx b/macros/latex/contrib/oberdiek/aliascnt.dtx
index 47bfec1ee2..7010eb64e1 100644
--- a/macros/latex/contrib/oberdiek/aliascnt.dtx
+++ b/macros/latex/contrib/oberdiek/aliascnt.dtx
@@ -52,7 +52,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex aliascnt.dtx
% makeindex -s gind.ist aliascnt.idx
% pdflatex aliascnt.dtx
@@ -308,7 +308,7 @@ and the derived files
% Therefore we must ensure that manipulations to the clear list
% are done with the clear list macro of a real counter.
% \begin{macro}{\AC@findrootcnt}
-% \cs{AC@findrootcnt} walks throught the aliasing relations
+% \cs{AC@findrootcnt} walks through the aliasing relations
% to find the base counter.
% \begin{macrocode}
\newcommand*{\AC@findrootcnt}[1]{%
diff --git a/macros/latex/contrib/oberdiek/aliascnt.pdf b/macros/latex/contrib/oberdiek/aliascnt.pdf
index 5978332f27..cac6636ab9 100644
--- a/macros/latex/contrib/oberdiek/aliascnt.pdf
+++ b/macros/latex/contrib/oberdiek/aliascnt.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/bmpsize.dtx b/macros/latex/contrib/oberdiek/bmpsize.dtx
index 0eec647c99..bdcf6004d0 100644
--- a/macros/latex/contrib/oberdiek/bmpsize.dtx
+++ b/macros/latex/contrib/oberdiek/bmpsize.dtx
@@ -54,7 +54,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex bmpsize.dtx
% makeindex -s gind.ist bmpsize.idx
% pdflatex bmpsize.dtx
@@ -339,7 +339,7 @@ and the derived files
%
% A parser sets the switch \cs{ifbmpsize@ok} to true, if it
% could successfully parse the image file.
-% The width and height are returnd in \cs{bmpsize@width} and
+% The width and height are returned in \cs{bmpsize@width} and
% \cs{bmpsize@height}. If information about density is available,
% it is used to calculate width and height of the image, otherwise
% the values given by option \xoption{defaultresolution} is used.
diff --git a/macros/latex/contrib/oberdiek/bmpsize.pdf b/macros/latex/contrib/oberdiek/bmpsize.pdf
index ecd47adb93..b376afc96a 100644
--- a/macros/latex/contrib/oberdiek/bmpsize.pdf
+++ b/macros/latex/contrib/oberdiek/bmpsize.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/centernot.dtx b/macros/latex/contrib/oberdiek/centernot.dtx
index dd990a3319..aa2cff5f0d 100644
--- a/macros/latex/contrib/oberdiek/centernot.dtx
+++ b/macros/latex/contrib/oberdiek/centernot.dtx
@@ -52,7 +52,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex centernot.dtx
% makeindex -s gind.ist centernot.idx
% pdflatex centernot.dtx
diff --git a/macros/latex/contrib/oberdiek/centernot.pdf b/macros/latex/contrib/oberdiek/centernot.pdf
index 344a245433..a0984732ea 100644
--- a/macros/latex/contrib/oberdiek/centernot.pdf
+++ b/macros/latex/contrib/oberdiek/centernot.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/chemarr.dtx b/macros/latex/contrib/oberdiek/chemarr.dtx
index 78e1a3cbeb..24989ed9db 100644
--- a/macros/latex/contrib/oberdiek/chemarr.dtx
+++ b/macros/latex/contrib/oberdiek/chemarr.dtx
@@ -53,7 +53,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex chemarr.dtx
% makeindex -s gind.ist chemarr.idx
% pdflatex chemarr.dtx
diff --git a/macros/latex/contrib/oberdiek/chemarr.pdf b/macros/latex/contrib/oberdiek/chemarr.pdf
index c745f15582..7a39e48a3e 100644
--- a/macros/latex/contrib/oberdiek/chemarr.pdf
+++ b/macros/latex/contrib/oberdiek/chemarr.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/classlist.dtx b/macros/latex/contrib/oberdiek/classlist.dtx
index 8b45464521..370fc269d0 100644
--- a/macros/latex/contrib/oberdiek/classlist.dtx
+++ b/macros/latex/contrib/oberdiek/classlist.dtx
@@ -52,7 +52,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex classlist.dtx
% makeindex -s gind.ist classlist.idx
% pdflatex classlist.dtx
@@ -233,7 +233,7 @@ and the derived files
% configured by
% \item[\cs{PrintClassListTitle}] for the title and
% \item[\cs{PrintClassListEntry}] for formatting the entries.
-% See the implemenation how to use these.
+% See the implementation for how to use these.
% \end{description}
%
% \StopEventually{
diff --git a/macros/latex/contrib/oberdiek/classlist.pdf b/macros/latex/contrib/oberdiek/classlist.pdf
index 40ef460d94..365627fee6 100644
--- a/macros/latex/contrib/oberdiek/classlist.pdf
+++ b/macros/latex/contrib/oberdiek/classlist.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/colonequals.dtx b/macros/latex/contrib/oberdiek/colonequals.dtx
index aeae542c39..007a42cbe5 100644
--- a/macros/latex/contrib/oberdiek/colonequals.dtx
+++ b/macros/latex/contrib/oberdiek/colonequals.dtx
@@ -52,7 +52,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex colonequals.dtx
% makeindex -s gind.ist colonequals.idx
% pdflatex colonequals.dtx
diff --git a/macros/latex/contrib/oberdiek/colonequals.pdf b/macros/latex/contrib/oberdiek/colonequals.pdf
index 1b4e949c6b..3446b59539 100644
--- a/macros/latex/contrib/oberdiek/colonequals.pdf
+++ b/macros/latex/contrib/oberdiek/colonequals.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/dvipscol.dtx b/macros/latex/contrib/oberdiek/dvipscol.dtx
index 0141ae2a94..335196bf91 100644
--- a/macros/latex/contrib/oberdiek/dvipscol.dtx
+++ b/macros/latex/contrib/oberdiek/dvipscol.dtx
@@ -52,7 +52,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex dvipscol.dtx
% makeindex -s gind.ist dvipscol.idx
% pdflatex dvipscol.dtx
diff --git a/macros/latex/contrib/oberdiek/dvipscol.pdf b/macros/latex/contrib/oberdiek/dvipscol.pdf
index 21243da3b1..3ff66c8e89 100644
--- a/macros/latex/contrib/oberdiek/dvipscol.pdf
+++ b/macros/latex/contrib/oberdiek/dvipscol.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/engord.dtx b/macros/latex/contrib/oberdiek/engord.dtx
index 6c75953200..a0ba888a1a 100644
--- a/macros/latex/contrib/oberdiek/engord.dtx
+++ b/macros/latex/contrib/oberdiek/engord.dtx
@@ -55,7 +55,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex engord.dtx
% makeindex -s gind.ist engord.idx
% pdflatex engord.dtx
diff --git a/macros/latex/contrib/oberdiek/engord.pdf b/macros/latex/contrib/oberdiek/engord.pdf
index 0bd217efba..49c876e5b6 100644
--- a/macros/latex/contrib/oberdiek/engord.pdf
+++ b/macros/latex/contrib/oberdiek/engord.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/enparen.dtx b/macros/latex/contrib/oberdiek/enparen.dtx
index 773ebc861c..af503d79dc 100644
--- a/macros/latex/contrib/oberdiek/enparen.dtx
+++ b/macros/latex/contrib/oberdiek/enparen.dtx
@@ -52,7 +52,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex enparen.dtx
% makeindex -s gind.ist enparen.idx
% pdflatex enparen.dtx
@@ -335,12 +335,12 @@ and the derived files
% \subsection{Notes}
%
% \begin{description}
-% \item[Implicite kerning:]
-% Unexpandable stuff might affect the implicite kerning.
+% \item[Implicit kerning:]
+% Unexpandable stuff might affect the implicit kerning.
% The package cannot avoid this, because it need to define
-% and redefine macros at the occurence of each symbol.
+% and redefine macros at the occurrence of each symbol.
% This is done before the opening and after the closing
-% symbol, thus that the implicite kerning inside
+% symbol, thus that the implicit kerning inside
% is not affected.
% \end{description}
%
diff --git a/macros/latex/contrib/oberdiek/enparen.pdf b/macros/latex/contrib/oberdiek/enparen.pdf
index d4de5125ba..284b88c5c1 100644
--- a/macros/latex/contrib/oberdiek/enparen.pdf
+++ b/macros/latex/contrib/oberdiek/enparen.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/eolgrab.dtx b/macros/latex/contrib/oberdiek/eolgrab.dtx
index d27e99d34e..87f0aceaa4 100644
--- a/macros/latex/contrib/oberdiek/eolgrab.dtx
+++ b/macros/latex/contrib/oberdiek/eolgrab.dtx
@@ -58,7 +58,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex eolgrab.dtx
% makeindex -s gind.ist eolgrab.idx
% pdflatex eolgrab.dtx
diff --git a/macros/latex/contrib/oberdiek/eolgrab.pdf b/macros/latex/contrib/oberdiek/eolgrab.pdf
index 23c097b571..24a22d462c 100644
--- a/macros/latex/contrib/oberdiek/eolgrab.pdf
+++ b/macros/latex/contrib/oberdiek/eolgrab.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/fibnum.dtx b/macros/latex/contrib/oberdiek/fibnum.dtx
index 9c3f8f7986..de66a37710 100644
--- a/macros/latex/contrib/oberdiek/fibnum.dtx
+++ b/macros/latex/contrib/oberdiek/fibnum.dtx
@@ -56,7 +56,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex fibnum.dtx
% bibtex fibnum.aux
% makeindex -s gind.ist fibnum.idx
diff --git a/macros/latex/contrib/oberdiek/fibnum.pdf b/macros/latex/contrib/oberdiek/fibnum.pdf
index 2d2510854e..7a143ac3b6 100644
--- a/macros/latex/contrib/oberdiek/fibnum.pdf
+++ b/macros/latex/contrib/oberdiek/fibnum.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/flags.dtx b/macros/latex/contrib/oberdiek/flags.dtx
index 6a2d05c7b4..8834113617 100644
--- a/macros/latex/contrib/oberdiek/flags.dtx
+++ b/macros/latex/contrib/oberdiek/flags.dtx
@@ -52,7 +52,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex flags.dtx
% makeindex -s gind.ist flags.idx
% pdflatex flags.dtx
diff --git a/macros/latex/contrib/oberdiek/flags.pdf b/macros/latex/contrib/oberdiek/flags.pdf
index f0c8b76d54..17c5868612 100644
--- a/macros/latex/contrib/oberdiek/flags.pdf
+++ b/macros/latex/contrib/oberdiek/flags.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/holtxdoc.dtx b/macros/latex/contrib/oberdiek/holtxdoc.dtx
index 9ac40aa5ae..b9ba295cfa 100644
--- a/macros/latex/contrib/oberdiek/holtxdoc.dtx
+++ b/macros/latex/contrib/oberdiek/holtxdoc.dtx
@@ -52,7 +52,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex holtxdoc.dtx
% makeindex -s gind.ist holtxdoc.idx
% pdflatex holtxdoc.dtx
diff --git a/macros/latex/contrib/oberdiek/holtxdoc.pdf b/macros/latex/contrib/oberdiek/holtxdoc.pdf
index 67d630bd54..f2825ebf65 100644
--- a/macros/latex/contrib/oberdiek/holtxdoc.pdf
+++ b/macros/latex/contrib/oberdiek/holtxdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/hypbmsec.dtx b/macros/latex/contrib/oberdiek/hypbmsec.dtx
index dd26b08d2b..2b5781775c 100644
--- a/macros/latex/contrib/oberdiek/hypbmsec.dtx
+++ b/macros/latex/contrib/oberdiek/hypbmsec.dtx
@@ -52,7 +52,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex hypbmsec.dtx
% makeindex -s gind.ist hypbmsec.idx
% pdflatex hypbmsec.dtx
@@ -260,7 +260,7 @@ and the derived files
% \begin{itemize}
% \item An additional second optional argument in square brackets.
% \item An additional optional argument in parentheses (in
-% assoziation with a pdf string that is internally surrounded
+% association with a pdf string that is internally surrounded
% by parentheses, too).
% \end{itemize}
% Because \Package{\filename} stores the original meaning of the
@@ -375,7 +375,7 @@ and the derived files
[2016/05/16 v2.5 Bookmarks in sectioning commands (HO)]
% \end{macrocode}
%
-% Because of redifining the sectioning commands, it is dangerous
+% Because of redefining the sectioning commands, it is dangerous
% to reload the package several times.
% \begin{macrocode}
\@ifundefined{hbs@do}{}{%
@@ -554,7 +554,7 @@ and the derived files
% \end{macrocode}
%
% Other packages are allowed to redefine the sectioning commands,
-% if they does not change the syntax. Therefore the redefinitons
+% if they does not change the syntax. Therefore the redefinitions
% of this package should be done after the other packages.
% \begin{macrocode}
\let\hbs@part \part
diff --git a/macros/latex/contrib/oberdiek/hypbmsec.pdf b/macros/latex/contrib/oberdiek/hypbmsec.pdf
index 45e3ce42c2..9e75d5e8fe 100644
--- a/macros/latex/contrib/oberdiek/hypbmsec.pdf
+++ b/macros/latex/contrib/oberdiek/hypbmsec.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/hypgotoe.dtx b/macros/latex/contrib/oberdiek/hypgotoe.dtx
index 3f6af63a3e..7a4c55e451 100644
--- a/macros/latex/contrib/oberdiek/hypgotoe.dtx
+++ b/macros/latex/contrib/oberdiek/hypgotoe.dtx
@@ -53,7 +53,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex hypgotoe.dtx
% makeindex -s gind.ist hypgotoe.idx
% pdflatex hypgotoe.dtx
@@ -195,7 +195,7 @@ and the derived files
% \item
% Currently only embedded files and named destinations are supported.
% \item
-% Missing are support for destination arrays and attachted files.
+% Missing are support for destination arrays and attached files.
% \item
% Special characters aren't supported either.
% \end{itemize}
diff --git a/macros/latex/contrib/oberdiek/hypgotoe.pdf b/macros/latex/contrib/oberdiek/hypgotoe.pdf
index 98d7d1dd4b..a6203e57a1 100644
--- a/macros/latex/contrib/oberdiek/hypgotoe.pdf
+++ b/macros/latex/contrib/oberdiek/hypgotoe.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/hyphsubst.dtx b/macros/latex/contrib/oberdiek/hyphsubst.dtx
index e0fd44bf12..996257b0d4 100644
--- a/macros/latex/contrib/oberdiek/hyphsubst.dtx
+++ b/macros/latex/contrib/oberdiek/hyphsubst.dtx
@@ -56,7 +56,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex hyphsubst.dtx
% makeindex -s gind.ist hyphsubst.idx
% pdflatex hyphsubst.dtx
diff --git a/macros/latex/contrib/oberdiek/hyphsubst.pdf b/macros/latex/contrib/oberdiek/hyphsubst.pdf
index 4c390bfdd9..0d559684d1 100644
--- a/macros/latex/contrib/oberdiek/hyphsubst.pdf
+++ b/macros/latex/contrib/oberdiek/hyphsubst.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/ifdraft.dtx b/macros/latex/contrib/oberdiek/ifdraft.dtx
index 0b4918a6d0..7b69505449 100644
--- a/macros/latex/contrib/oberdiek/ifdraft.dtx
+++ b/macros/latex/contrib/oberdiek/ifdraft.dtx
@@ -52,7 +52,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex ifdraft.dtx
% makeindex -s gind.ist ifdraft.idx
% pdflatex ifdraft.dtx
diff --git a/macros/latex/contrib/oberdiek/ifdraft.pdf b/macros/latex/contrib/oberdiek/ifdraft.pdf
index 35e257d875..7e6a251092 100644
--- a/macros/latex/contrib/oberdiek/ifdraft.pdf
+++ b/macros/latex/contrib/oberdiek/ifdraft.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/iflang.dtx b/macros/latex/contrib/oberdiek/iflang.dtx
index fa784b7d45..9eebbd0a8c 100644
--- a/macros/latex/contrib/oberdiek/iflang.dtx
+++ b/macros/latex/contrib/oberdiek/iflang.dtx
@@ -57,7 +57,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex iflang.dtx
% makeindex -s gind.ist iflang.idx
% pdflatex iflang.dtx
@@ -200,7 +200,7 @@ and the derived files
% Package \xpackage{babel} defines \cs{iflanguagename}. As first
% argument it takes a language name and executes the second or
% third argument depending on the current language. This
-% language test is based on hypenation patterns. However, it
+% language test is based on hyphenation patterns. However, it
% is possible that different languages or dialects share the
% same patterns. In such cases \cs{iflanguagename} fails.
%
@@ -211,7 +211,7 @@ and the derived files
%
% \begin{declcs}{IfLanguageName} \M{lang} \M{then} \M{else}
% \end{declcs}
-% Makro \cs{IfLanguageName} compares language \meta{lang} with
+% Macro \cs{IfLanguageName} compares language \meta{lang} with
% the current setting of macro \cs{languagename}. If both
% contains the same name then the \meta{then} part is called,
% otherwise the \meta{else} part.
@@ -562,7 +562,7 @@ and the derived files
% at the conference Bacho\TeX~2005:
% \url{http://www.gust.org.pl/projects/pearls/2005p/david-kastrup/bachotex2005-david-kastrup-pearl1.pdf}
%
-% The orignal code allows macros inside the second string.
+% The original code allows macros inside the second string.
% Because also \cs{languagename} might consists of further
% macros, we need a variant that allows macros in the first
% string, too.
diff --git a/macros/latex/contrib/oberdiek/iflang.pdf b/macros/latex/contrib/oberdiek/iflang.pdf
index 98cb0644a3..c1941fa6ee 100644
--- a/macros/latex/contrib/oberdiek/iflang.pdf
+++ b/macros/latex/contrib/oberdiek/iflang.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/oberdiek-bundle.bib b/macros/latex/contrib/oberdiek/oberdiek-bundle.bib
index 44fce8aeca..364db304ef 100644
--- a/macros/latex/contrib/oberdiek/oberdiek-bundle.bib
+++ b/macros/latex/contrib/oberdiek/oberdiek-bundle.bib
@@ -96,13 +96,6 @@
version={2.5},
url={https://ctan.org/pkg/hypbmsec},
}
-@manual{oberdiek:hypcap,
- title={The hypcap package},
- author={Heiko Oberdiek},
- date={2016-05-16},
- version={1.12},
- url={https://ctan.org/pkg/hypcap},
-}
@manual{oberdiek:hypgotoe,
title={The hypgotoe package},
author={Heiko Oberdiek},
@@ -243,13 +236,6 @@
version={1.2},
url={https://ctan.org/pkg/tabularkv},
}
-@manual{oberdiek:telprint,
- title={The telprint package},
- author={Heiko Oberdiek},
- date={2016-05-16},
- version={1.11},
- url={https://ctan.org/pkg/telprint},
-}
@manual{oberdiek:thepdfnumber,
title={The thepdfnumber package},
author={Heiko Oberdiek},
diff --git a/macros/latex/contrib/oberdiek/oberdiek.ins b/macros/latex/contrib/oberdiek/oberdiek.ins
index dc59a6e024..099d1f538d 100644
--- a/macros/latex/contrib/oberdiek/oberdiek.ins
+++ b/macros/latex/contrib/oberdiek/oberdiek.ins
@@ -3,7 +3,7 @@
%
% Copyright (C)
% 1999, 2001, 2006 Heiko Oberdiek
-% 2016-2020 Oberdiek Package Support Group
+% 2016-2024 Oberdiek Package Support Group
% https://github.com/ho-tex/oberdiek/issues
%
% This work may be distributed and/or modified under the
@@ -40,7 +40,6 @@
\batchinput{flags.dtx}
\batchinput{holtxdoc.dtx}
\batchinput{hypbmsec.dtx}
-\batchinput{hypcap.dtx}
\batchinput{hypgotoe.dtx}
\batchinput{hyphsubst.dtx}
\batchinput{ifdraft.dtx}
@@ -58,7 +57,6 @@
\batchinput{stampinclude.dtx}
\batchinput{tabularht.dtx}
\batchinput{tabularkv.dtx}
-\batchinput{telprint.dtx}
\batchinput{thepdfnumber.dtx}
\batchinput{twoopt.dtx}
diff --git a/macros/latex/contrib/oberdiek/oberdiek.pdf b/macros/latex/contrib/oberdiek/oberdiek.pdf
index 16e08d826a..31c3efdda7 100644
--- a/macros/latex/contrib/oberdiek/oberdiek.pdf
+++ b/macros/latex/contrib/oberdiek/oberdiek.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/oberdiek.tex b/macros/latex/contrib/oberdiek/oberdiek.tex
index 3849551d71..0759250c24 100644
--- a/macros/latex/contrib/oberdiek/oberdiek.tex
+++ b/macros/latex/contrib/oberdiek/oberdiek.tex
@@ -11,11 +11,11 @@
\newcommand*{\Author}{Heiko Oberdiek}
\newcommand*{\Email}{ho-tex at tug.org}
-\newcommand*{\Date}{2023/01/10}
+\newcommand*{\Date}{2024/07/26}
% Copyright (C) 2006-2016 by
% Heiko Oberdiek
-% Copyright (C) 2016-2023 by
+% Copyright (C) 2016-2024 by
% Oberdiek Package Support Group
%
% This work may be distributed and/or modified under the
@@ -203,8 +203,6 @@
[\entrysep]
\entry{hypbmsec}{Bookmarks in sectioning commands}%
[\entrysep]
-\entry{hypcap}{Adjusting the anchors of captions}%
-[\entrysep]
\entry{hypgotoe}{Links to embedded files}%
[\entrysep]
\entry{hyphsubst}{Substitute hyphenation patterns}%
@@ -239,8 +237,6 @@
[\entrysep]
\entry{tabularkv}{Tabular with key value interface}%
[\entrysep]
-\entry{telprint}{Format German phone numbers}%
-[\entrysep]
\entry{thepdfnumber}{Print PDF numbers with minimal digits}%
[\entrysep]
\entry{twoopt}{Definitions with two optional arguments}%
@@ -391,20 +387,6 @@ a replacement for the bookmarks can be given.
\tocinclude{hypbmsec}
\newpage
-\subsection{\pkgsectformat{hypcap}}
-\label{hypcap}
-\begin{abstract}
-This package tries a solution of the problem with
-hyperref, that links to floats points below the
-caption and not at the beginning of the float.
-Therefore this package divides the task into two
-part, the link setting with \cs{capstart} or
-automatically at the beginning of a float and
-the rest in the \cs{caption} command.
-\end{abstract}
-\tocinclude{hypcap}
-
-\newpage
\subsection{\pkgsectformat{hypgotoe}}
\label{hypgotoe}
\begin{abstract}
@@ -520,7 +502,7 @@ is supported. Index preambles can be given either by means of package
\label{setouterhbox}
\begin{abstract}
If math stuff is set in an \cs{hbox}, then TeX
-performs some optimization and omits the implicite
+performs some optimization and omits the implicit
penalties \cs{binoppenalty} and \cs{relpenalty}.
This packages tries to put stuff into an \cs{hbox}
without getting lost of those penalties.
@@ -578,15 +560,6 @@ especially if package \xpackage{tabularht} is used.
\tocinclude{tabularkv}
\newpage
-\subsection{\pkgsectformat{telprint}}
-\label{telprint}
-\begin{abstract}
-Package \xpackage{telprint} provides \cs{telprint} for formatting
-German phone numbers.
-\end{abstract}
-\tocinclude{telprint}
-
-\newpage
\subsection{\pkgsectformat{thepdfnumber}}
\label{thepdfnumber}
\begin{abstract}
diff --git a/macros/latex/contrib/oberdiek/pdfcolparallel.dtx b/macros/latex/contrib/oberdiek/pdfcolparallel.dtx
index 17893f98a9..02df672d4e 100644
--- a/macros/latex/contrib/oberdiek/pdfcolparallel.dtx
+++ b/macros/latex/contrib/oberdiek/pdfcolparallel.dtx
@@ -53,7 +53,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex pdfcolparallel.dtx
% makeindex -s gind.ist pdfcolparallel.idx
% pdflatex pdfcolparallel.dtx
diff --git a/macros/latex/contrib/oberdiek/pdfcolparallel.pdf b/macros/latex/contrib/oberdiek/pdfcolparallel.pdf
index 90a3b348a0..d97c8441f4 100644
--- a/macros/latex/contrib/oberdiek/pdfcolparallel.pdf
+++ b/macros/latex/contrib/oberdiek/pdfcolparallel.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/pdfcolparcolumns.dtx b/macros/latex/contrib/oberdiek/pdfcolparcolumns.dtx
index 77d8aab071..a382037b42 100644
--- a/macros/latex/contrib/oberdiek/pdfcolparcolumns.dtx
+++ b/macros/latex/contrib/oberdiek/pdfcolparcolumns.dtx
@@ -53,7 +53,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex pdfcolparcolumns.dtx
% makeindex -s gind.ist pdfcolparcolumns.idx
% pdflatex pdfcolparcolumns.dtx
diff --git a/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf b/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf
index a49189ba4a..8afe31978a 100644
--- a/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf
+++ b/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/pdfcrypt.dtx b/macros/latex/contrib/oberdiek/pdfcrypt.dtx
index e4681efa8c..3c5070829c 100644
--- a/macros/latex/contrib/oberdiek/pdfcrypt.dtx
+++ b/macros/latex/contrib/oberdiek/pdfcrypt.dtx
@@ -55,7 +55,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex pdfcrypt.dtx
% makeindex -s gind.ist pdfcrypt.idx
% pdflatex pdfcrypt.dtx
diff --git a/macros/latex/contrib/oberdiek/pdfcrypt.pdf b/macros/latex/contrib/oberdiek/pdfcrypt.pdf
index 1de22245d4..eabda461d7 100644
--- a/macros/latex/contrib/oberdiek/pdfcrypt.pdf
+++ b/macros/latex/contrib/oberdiek/pdfcrypt.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/protecteddef.dtx b/macros/latex/contrib/oberdiek/protecteddef.dtx
index cff42cccf7..21aab0c9fc 100644
--- a/macros/latex/contrib/oberdiek/protecteddef.dtx
+++ b/macros/latex/contrib/oberdiek/protecteddef.dtx
@@ -56,7 +56,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex protecteddef.dtx
% makeindex -s gind.ist protecteddef.idx
% pdflatex protecteddef.dtx
@@ -246,7 +246,7 @@ and the derived files
% is not supported. Macro \meta{cmd} is to be defined as
% \cs{long} macro without star with \meta{num} arguments.
%
-% The number of arguments \meta{num} must be given as explicite digit
+% The number of arguments \meta{num} must be given as explicit digit
% |0| upto |9|. Otherwise the part between the argument \meta{cmd} and
% the \meta{definition text} is taken as parameter text in the syntax
% of vanilla \hologo{TeX}. Examples (with \cs{protected}):
diff --git a/macros/latex/contrib/oberdiek/protecteddef.pdf b/macros/latex/contrib/oberdiek/protecteddef.pdf
index cabaa32c49..c5d984bf5e 100644
--- a/macros/latex/contrib/oberdiek/protecteddef.pdf
+++ b/macros/latex/contrib/oberdiek/protecteddef.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/resizegather.dtx b/macros/latex/contrib/oberdiek/resizegather.dtx
index 4a07864917..8ec4cc8a13 100644
--- a/macros/latex/contrib/oberdiek/resizegather.dtx
+++ b/macros/latex/contrib/oberdiek/resizegather.dtx
@@ -53,7 +53,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex resizegather.dtx
% makeindex -s gind.ist resizegather.idx
% pdflatex resizegather.dtx
diff --git a/macros/latex/contrib/oberdiek/resizegather.pdf b/macros/latex/contrib/oberdiek/resizegather.pdf
index 11d07da19c..5bf853391c 100644
--- a/macros/latex/contrib/oberdiek/resizegather.pdf
+++ b/macros/latex/contrib/oberdiek/resizegather.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/rotchiffre.dtx b/macros/latex/contrib/oberdiek/rotchiffre.dtx
index 3023347fe1..aa80754011 100644
--- a/macros/latex/contrib/oberdiek/rotchiffre.dtx
+++ b/macros/latex/contrib/oberdiek/rotchiffre.dtx
@@ -56,7 +56,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex rotchiffre.dtx
% makeindex -s gind.ist rotchiffre.idx
% pdflatex rotchiffre.dtx
@@ -214,7 +214,7 @@ and the derived files
% \begin{declcs}{EdefRot} \M{type} \M{cmd} \M{text}
% \end{declcs}
% The \meta{text} is expanded and sanitized. All tokens
-% are letters with catcode 12 (other) with the exeption of
+% are letters with catcode 12 (other) with the exception of
% the space token that has character code 32 (0x20) and
% catcode 10 (space). This follows \hologo{TeX}'s convention of
% \cs{string} and \cs{meaning}.
diff --git a/macros/latex/contrib/oberdiek/rotchiffre.pdf b/macros/latex/contrib/oberdiek/rotchiffre.pdf
index 7deae8d756..5504f90b56 100644
--- a/macros/latex/contrib/oberdiek/rotchiffre.pdf
+++ b/macros/latex/contrib/oberdiek/rotchiffre.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/scrindex.dtx b/macros/latex/contrib/oberdiek/scrindex.dtx
index fea57fd1a9..63deeaab2f 100644
--- a/macros/latex/contrib/oberdiek/scrindex.dtx
+++ b/macros/latex/contrib/oberdiek/scrindex.dtx
@@ -53,7 +53,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex scrindex.dtx
% makeindex -s gind.ist scrindex.idx
% pdflatex scrindex.dtx
@@ -195,7 +195,7 @@ and the derived files
% the standard classes |article|, |report|, and |book|. It
% redefines environment `theindex' for its needs.
% However, it does not know other classes such as KOMA-Script.
-% This package closes the compatibiliy gap between KOMA-Script's
+% This package closes the compatibility gap between KOMA-Script's
% classes and package \xpackage{index}.
%
% Environment |theindex| is redefined to support both package
diff --git a/macros/latex/contrib/oberdiek/scrindex.pdf b/macros/latex/contrib/oberdiek/scrindex.pdf
index 0ca63d3e6d..a2e2cba825 100644
--- a/macros/latex/contrib/oberdiek/scrindex.pdf
+++ b/macros/latex/contrib/oberdiek/scrindex.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/setouterhbox.dtx b/macros/latex/contrib/oberdiek/setouterhbox.dtx
index 001cd278d3..cc937c16a4 100644
--- a/macros/latex/contrib/oberdiek/setouterhbox.dtx
+++ b/macros/latex/contrib/oberdiek/setouterhbox.dtx
@@ -57,7 +57,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex setouterhbox.dtx
% makeindex -s gind.ist setouterhbox.idx
% pdflatex setouterhbox.dtx
@@ -190,7 +190,7 @@ and the derived files
%
% \begin{abstract}
% If math stuff is set in an \cs{hbox}, then TeX
-% performs some optimization and omits the implicite
+% performs some optimization and omits the implicit
% penalties \cs{binoppenalty} and \cs{relpenalty}.
% This packages tries to put stuff into an \cs{hbox}
% without getting lost of those penalties.
@@ -234,7 +234,7 @@ and the derived files
% method we discuss here. Nowadays we have \eTeX\ that extends
% the tool set of a \TeX\ macro programmer. Especially useful
% \eTeX\ was in this package for detecting and dealing with
-% errorneous situations.
+% erroneous situations.
%
% However also nowadays a perfect solution for the problem
% is still missing at macro level. Probably someone has
diff --git a/macros/latex/contrib/oberdiek/setouterhbox.pdf b/macros/latex/contrib/oberdiek/setouterhbox.pdf
index dbdb939c6e..03757dc214 100644
--- a/macros/latex/contrib/oberdiek/setouterhbox.pdf
+++ b/macros/latex/contrib/oberdiek/setouterhbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/settobox.dtx b/macros/latex/contrib/oberdiek/settobox.dtx
index c38d502a53..c1d7af6ae9 100644
--- a/macros/latex/contrib/oberdiek/settobox.dtx
+++ b/macros/latex/contrib/oberdiek/settobox.dtx
@@ -53,7 +53,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex settobox.dtx
% makeindex -s gind.ist settobox.idx
% pdflatex settobox.dtx
@@ -282,7 +282,7 @@ and the derived files
% c) Print #1 commands.
% d) Print box with frame
%
-% The implemenation looks more weird:
+% The implementation looks more weird:
\makeatletter
\newcommand*{\test}[1]{%
\par
diff --git a/macros/latex/contrib/oberdiek/settobox.pdf b/macros/latex/contrib/oberdiek/settobox.pdf
index a2f1c8d179..ef92916de2 100644
--- a/macros/latex/contrib/oberdiek/settobox.pdf
+++ b/macros/latex/contrib/oberdiek/settobox.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/stackrel.dtx b/macros/latex/contrib/oberdiek/stackrel.dtx
index 6b3444c33c..09110de947 100644
--- a/macros/latex/contrib/oberdiek/stackrel.dtx
+++ b/macros/latex/contrib/oberdiek/stackrel.dtx
@@ -52,7 +52,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex stackrel.dtx
% makeindex -s gind.ist stackrel.idx
% pdflatex stackrel.dtx
diff --git a/macros/latex/contrib/oberdiek/stackrel.pdf b/macros/latex/contrib/oberdiek/stackrel.pdf
index df11fd28dd..4edbb64c31 100644
--- a/macros/latex/contrib/oberdiek/stackrel.pdf
+++ b/macros/latex/contrib/oberdiek/stackrel.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/stampinclude.dtx b/macros/latex/contrib/oberdiek/stampinclude.dtx
index 9acd8a61f8..ba468e8591 100644
--- a/macros/latex/contrib/oberdiek/stampinclude.dtx
+++ b/macros/latex/contrib/oberdiek/stampinclude.dtx
@@ -52,7 +52,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex stampinclude.dtx
% makeindex -s gind.ist stampinclude.idx
% pdflatex stampinclude.dtx
@@ -225,7 +225,7 @@ and the derived files
% This package \xpackage{stampinclude} goes another way.
% \LaTeX\ reads and writes a separate \xext{aux} file for each
% file that is included by \cs{include}. There \LaTeX\ remembers
-% counter valuses. Changed \xext{tex}
+% counter values. Changed \xext{tex}
% files can therefore be detected by comparing the file date stamp of
% the \xext{tex} file with the date stamp of its \xext{aux} file.
% Since version 1.30.0 \pdfTeX\ provides \cs{pdffilemoddate}
@@ -254,7 +254,7 @@ and the derived files
%
% \subsubsection{Other file dependencies}
%
-% A file that is included by \cs{include} may input ore reference
+% A file that is included by \cs{include} may input or reference
% other files:
% \begin{itemize}
% \item other \TeX\ files using \cs{input},
diff --git a/macros/latex/contrib/oberdiek/stampinclude.pdf b/macros/latex/contrib/oberdiek/stampinclude.pdf
index 55b57219a3..b98bf15bb1 100644
--- a/macros/latex/contrib/oberdiek/stampinclude.pdf
+++ b/macros/latex/contrib/oberdiek/stampinclude.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/tabularht.dtx b/macros/latex/contrib/oberdiek/tabularht.dtx
index 20688068b0..e6c26f1040 100644
--- a/macros/latex/contrib/oberdiek/tabularht.dtx
+++ b/macros/latex/contrib/oberdiek/tabularht.dtx
@@ -53,7 +53,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex tabularht.dtx
% makeindex -s gind.ist tabularht.idx
% pdflatex tabularht.dtx
@@ -250,7 +250,7 @@ and the derived files
% and add the vertical lines. The lines in a tabular
% with \xpackage{tabularht} support (environments of this package)
% are numbered from left to right. The gap that is
-% controlled by \cs{interrowspace} or inbetween \cs{interrowstart}
+% controlled by \cs{interrowspace} or in between \cs{interrowstart}
% and \cs{interrowstop} is then filled with the detected
% vertical lines.
%
@@ -472,7 +472,7 @@ and the derived files
\def\tabH@spread{spread}
% \end{macrocode}
% First argument is the height of the table,
-% then the orignal arguments for tabular follow.
+% then the original arguments for tabular follow.
% \begin{macrocode}
\newenvironment{tabularht}[1]{%
\tabH@setheight{#1}%
diff --git a/macros/latex/contrib/oberdiek/tabularht.pdf b/macros/latex/contrib/oberdiek/tabularht.pdf
index 893fe33acf..3a70cec6a2 100644
--- a/macros/latex/contrib/oberdiek/tabularht.pdf
+++ b/macros/latex/contrib/oberdiek/tabularht.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/tabularkv.dtx b/macros/latex/contrib/oberdiek/tabularkv.dtx
index 57ef5e8745..b324e6e8ab 100644
--- a/macros/latex/contrib/oberdiek/tabularkv.dtx
+++ b/macros/latex/contrib/oberdiek/tabularkv.dtx
@@ -53,7 +53,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex tabularkv.dtx
% makeindex -s gind.ist tabularkv.idx
% pdflatex tabularkv.dtx
diff --git a/macros/latex/contrib/oberdiek/tabularkv.pdf b/macros/latex/contrib/oberdiek/tabularkv.pdf
index e6ea130064..dedc3251c0 100644
--- a/macros/latex/contrib/oberdiek/tabularkv.pdf
+++ b/macros/latex/contrib/oberdiek/tabularkv.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/thepdfnumber.dtx b/macros/latex/contrib/oberdiek/thepdfnumber.dtx
index 61eb42684c..c1aa4bf9fa 100644
--- a/macros/latex/contrib/oberdiek/thepdfnumber.dtx
+++ b/macros/latex/contrib/oberdiek/thepdfnumber.dtx
@@ -57,7 +57,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex thepdfnumber.dtx
% makeindex -s gind.ist thepdfnumber.idx
% pdflatex thepdfnumber.dtx
@@ -256,7 +256,7 @@ and the derived files
% \item The decimal part is omitted, if the number is an integer (5, 7).
% \item Trailing zeros from the decimal part are stripped (5, 6, 7, 9).
% \end{itemize}
-% The resulting number representation can be catched with one of the
+% The resulting number representation can be caught with one of the
% following Perl regular expressions:
% \begin{itemize}
% \item |^0$| (zero)
@@ -295,11 +295,11 @@ and the derived files
% \subsection{Input number}
%
% The user macros expect a number as argument. The number can either
-% be given explicitely or as macro that expands in one step
-% to an explicite number, because the first token of the argument
+% be given explicitly or as macro that expands in one step
+% to an explicit number, because the first token of the argument
% is expanded once.
%
-% The explicite number consists of
+% The explicit number consists of
% \begin{itemize}
% \item optional signs `\texttt{+}' and `\texttt{-}',
% \item digits `\texttt{0}' upto `\texttt{9}' and
@@ -320,7 +320,7 @@ and the derived files
% The package is not intended for validating numbers or to
% decide if an argument is a number. Therefore it is an usage
% error to use the user macros with arguments that are not
-% explicite numbers as specified in the previous sections.
+% explicit numbers as specified in the previous sections.
% Nevertheless some error conditions are sometimes recognized.
% Errors are given in form of an undefined command sequence.
% It is the only way to notify \hologo{TeX} in expandable context.
diff --git a/macros/latex/contrib/oberdiek/thepdfnumber.pdf b/macros/latex/contrib/oberdiek/thepdfnumber.pdf
index 8d4b73d65f..61d98f6985 100644
--- a/macros/latex/contrib/oberdiek/thepdfnumber.pdf
+++ b/macros/latex/contrib/oberdiek/thepdfnumber.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/twoopt.dtx b/macros/latex/contrib/oberdiek/twoopt.dtx
index 10334f0d3a..806799fd41 100644
--- a/macros/latex/contrib/oberdiek/twoopt.dtx
+++ b/macros/latex/contrib/oberdiek/twoopt.dtx
@@ -52,7 +52,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex twoopt.dtx
% makeindex -s gind.ist twoopt.idx
% pdflatex twoopt.dtx
diff --git a/macros/latex/contrib/oberdiek/twoopt.pdf b/macros/latex/contrib/oberdiek/twoopt.pdf
index 6a144a8368..071dd4d2b2 100644
--- a/macros/latex/contrib/oberdiek/twoopt.pdf
+++ b/macros/latex/contrib/oberdiek/twoopt.pdf
Binary files differ
diff --git a/macros/latex/contrib/ocgx2/ChangeLog b/macros/latex/contrib/ocgx2/ChangeLog
index 65ca63a13d..2fb1d2c57f 100644
--- a/macros/latex/contrib/ocgx2/ChangeLog
+++ b/macros/latex/contrib/ocgx2/ChangeLog
@@ -1,3 +1,17 @@
+2024-09-16
+ * v0.60: ocgx2.sty
+ * fix: typos in pkg decription (log output)
+
+2024-09-15
+ * v0.59: ocgx2.sty
+ * v0.24: ocgbase.sty
+ * fix: pdf/a compliance (issue #22); log output (issue #20)
+
+2024-08-28
+ * v0.58: ocgx2.sty
+ * v0.23: ocgbase.sty
+ * fix: OCG hierarchy shown in the viewer's Layer tab
+
2024-03-18
* v0.57: ocgx2.sty
* fix: fixed link border in pdfmanagement-testphase version
diff --git a/macros/latex/contrib/ocgx2/ocgbase.sty b/macros/latex/contrib/ocgx2/ocgbase.sty
index bf4edf432b..e182f8670d 100644
--- a/macros/latex/contrib/ocgx2/ocgbase.sty
+++ b/macros/latex/contrib/ocgx2/ocgbase.sty
@@ -100,8 +100,8 @@
%
% The Current Maintainer of this work is A. Grahn.
-\def\g@ocgbase@date@tl{2022/08/04}
-\def\g@ocgbase@version@tl{0.22}
+\def\g@ocgbase@date@tl{2024/09/15}
+\def\g@ocgbase@version@tl{0.24}
\ProvidesExplPackage{ocgbase}{\g@ocgbase@date@tl}{\g@ocgbase@version@tl}
{support package for ocgx2.sty}
@@ -167,10 +167,8 @@
%global Order list
\tl_new:N\l_ocgbase_ocgorderentry_tl
\tl_new:N\l_ocgbase_ocgorder_tl
- \tl_if_exist:cT{g_ocgbase_nd_0_chld_tl}{
- \ocgbase_build_order:Nn\l_ocgbase_ocgorder_tl{
- \tl_use:c{g_ocgbase_nd_0_chld_tl}
- }
+ \seq_if_empty:NF\g_ocgbase_order_root_seq{
+ \ocgbase_build_order:Nn\l_ocgbase_ocgorder_tl{root}
}
\tl_if_empty:NF\l_ocgbase_ocgorder_tl{
\pbs_pdfobj:nnn{}{array}{\l_ocgbase_ocgorder_tl}
@@ -228,98 +226,45 @@
\cs_new_nopar:Nn\ocgbase_last_ocg:{\g_ocgbase_last_ocg_tl}
-\int_new:N\g_ocgbase_nd_int %node id
-\seq_new:N\g_ocgbase_tree_nd_stack_seq %stack with open ocg node id
-\seq_new:N\g_ocgbase_tree_ocg_stack_seq %stack with open ocg obj number
-\seq_gpush:Nn\g_ocgbase_tree_nd_stack_seq{0} %push root node
-\seq_gpush:Nn\g_ocgbase_tree_ocg_stack_seq{null} %push root node
+\seq_new:N\g_ocgbase_open_ocg_seq %stack with open ocg ref
+\seq_new:N\g_ocgbase_order_root_seq %seq taking ocg ref /Order root
-%macro for starting OCG object (and nested children) insertion into Order
+%macro for starting OCG object (and nested children) insertion into order
%hierarchy (shown as tree structure in the viewers `Layers' tab
\cs_new_protected_nopar:Nn\ocgbase_tree_node_begin:n{ % #1: OCG obj
- %get the parent node from stack
- \seq_get:NN\g_ocgbase_tree_nd_stack_seq\l__ocgbase_prnt_tl
- \tl_if_exist:cTF{g_ocgbase_nd_\l__ocgbase_prnt_tl _chld_tl}{
- %parent has >=1 children (i. e. my older siblings), traverse them
- \tl_set:Nv\l__ocgbase_prev_sbl_tl{g_ocgbase_nd_\l__ocgbase_prnt_tl _chld_tl}
- \tl_set:Nx\l__ocgbase_cur_ocg_tl{#1}
- \ocgbase_traverse_siblings:NN\l__ocgbase_prev_sbl_tl\l__ocgbase_cur_ocg_tl
- \str_if_empty:NTF\l__ocgbase_cur_ocg_tl{
- %I am the first child of my parent to refer to OCG #1
- \int_gincr:N\g_ocgbase_nd_int
- \tl_set:Nx\l__ocgbase_cur_nd_tl{\int_use:N\g_ocgbase_nd_int}
- %set myself as my next-older sibling's `next sibling'
- \tl_gset:cV{
- g_ocgbase_nd_\l__ocgbase_prev_sbl_tl _sbl_tl}\l__ocgbase_cur_nd_tl
- }{
- %there is already a sibling referring to OCG #1; no new node needs be
- %created
- \tl_set:NV\l__ocgbase_cur_nd_tl\l__ocgbase_prev_sbl_tl
- }
- }{
- %I am the very first child of my parent
- \int_gincr:N\g_ocgbase_nd_int
- \tl_set:Nx\l__ocgbase_cur_nd_tl{\int_use:N\g_ocgbase_nd_int}
- %set myself as my parent's first child
- \tl_gset:cV{g_ocgbase_nd_\l__ocgbase_prnt_tl _chld_tl}\l__ocgbase_cur_nd_tl
+ % get parent (either currently open ocg or root)
+ \seq_get:NNF\g_ocgbase_open_ocg_seq\l__ocgbase_prnt_tl{
+ \tl_set:Nn\l__ocgbase_prnt_tl{root}
}
- %set the OCG I am referring to
- \tl_gset:cx{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _ocg_tl}{#1}
- %push current node and its associated OCG obj on the stacks
- \seq_gpush:NV\g_ocgbase_tree_nd_stack_seq\l__ocgbase_cur_nd_tl
- \seq_gpush:Nx\g_ocgbase_tree_ocg_stack_seq{#1}
-}
-
-%macro that ends insertion of OCG and sub-OCGs into Order tree
-\cs_new_protected:Nn\ocgbase_tree_node_end:{
- \seq_get:NN\g_ocgbase_tree_nd_stack_seq\l_tempa_tl
- \seq_get:NN\g_ocgbase_tree_ocg_stack_seq\l_tempb_tl
- \str_if_eq:eeT{
- \cs_if_exist_use:c{g_ocgbase_nd_\l_tempa_tl _ocg_tl}
- }{
- \l_tempb_tl
- }{
- \seq_gpop:NN\g_ocgbase_tree_nd_stack_seq\g_trash_tl
- \seq_gpop:NN\g_ocgbase_tree_ocg_stack_seq\g_trash_tl
+ %push current ocg ref on stack with open ocgs
+ \seq_gpush:Nx\g_ocgbase_open_ocg_seq{#1}
+ %create seq for current ocg if not yet existing and
+ %append ocg ref to its parent seq
+ \seq_if_exist:cF{g_ocgbase_order_#1_seq}{
+ \seq_new:c{g_ocgbase_order_#1_seq}
+ \seq_gput_right:cx{g_ocgbase_order_ \l__ocgbase_prnt_tl _seq}{#1}
}
}
-% helper macro (recursive); traverses siblings to find either
-% the node which refers to the same OCG (arg #2 remains un-modified), or
-% the last sibling inserted (arg #2 is cleared);
-% the node id of the sibling found is returned in arg #1
-\cs_new_protected:Nn\ocgbase_traverse_siblings:NN{
- % #1: current node (in/out), #2: OCG obj (in/out)
- \str_if_eq:eeF{#2}{\tl_use:c{g_ocgbase_nd_#1_ocg_tl}}{
- \tl_if_exist:cTF{g_ocgbase_nd_#1_sbl_tl}{
- \tl_set:Nv#1{g_ocgbase_nd_#1_sbl_tl}
- \ocgbase_traverse_siblings:NN#1#2
- }{
- \tl_clear:N#2
- }
- }
+%macro that ends insertion of current OCG into order tree
+\cs_new_protected:Nn\ocgbase_tree_node_end:{
+ %pop top ocg ref from stack with open ocgs
+ \seq_gpop:NN\g_ocgbase_open_ocg_seq\g_trash_tl
}
+%macro that builds global ocg order from hierarchy and saves it into tl var
\cs_new_protected_nopar:Nn\ocgbase_build_order:Nn{
% (recursive macro)
% #1: tl var to which the OCG order is written (output)
- % #2: starting node id (input; usually `1')
- \tl_set:Nx\l__ocgbase_cur_nd_tl{#2}
- % first, append the OCG obj the current node is referring to
- \tl_put_right:Nx#1{~\tl_use:c{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _ocg_tl}}
- % second, traverse the tree starting with the first child node
- \tl_if_exist:cT{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _chld_tl}{
- \seq_gpush:NV\g_ocgbase_tree_nd_stack_seq\l__ocgbase_cur_nd_tl
- \tl_put_right:Nn#1{~[}
- \ocgbase_build_order:Nn#1{
- \tl_use:c{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _chld_tl}}
- \tl_put_right:Nn#1{~]}
- \seq_gpop:NN\g_ocgbase_tree_nd_stack_seq\l__ocgbase_cur_nd_tl
- }
- % third, traverse the tree starting with the next sibling node
- \tl_if_exist:cT{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _sbl_tl}{
- \ocgbase_build_order:Nn#1{
- \tl_use:c{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _sbl_tl}}
+ % #2: starting node (input; usually `root')
+ \seq_map_inline:cn{g_ocgbase_order_#2_seq}{
+ % first, append ocg ref to result tl var
+ \tl_put_right:Nx#1{~##1}
+ \seq_if_empty:cF{g_ocgbase_order_##1_seq}{
+ \tl_put_right:Nn#1{~[}
+ \ocgbase_build_order:Nn#1{##1}
+ \tl_put_right:Nn#1{~]}
+ }
}
}
@@ -433,7 +378,7 @@
% \ocgbase@tree@node@end
% #1: OCG PDF object
% macro pair (begin and end) for inserting OCG object and its children
-% into Order hierarchy (shown as tree structure in the viewers `Layers' tab
+% into order hierarchy (shown as tree structure in the viewers `Layers' tab
%
% --------
%
@@ -479,8 +424,8 @@
%
% The Current Maintainer of this work is A. Grahn.
-\def\g@ocgbase@date@tl{2022/08/04}
-\def\g@ocgbase@version@tl{0.22}
+\def\g@ocgbase@date@tl{2024/09/15}
+\def\g@ocgbase@version@tl{0.24}
\ProvidesExplPackage{ocgbase}{\g@ocgbase@date@tl}{\g@ocgbase@version@tl}
{support package for ocgx2.sty}
@@ -535,25 +480,23 @@
\AddToHook{shipout/lastpage}{
\tl_if_empty:NF\g_ocgbase_ocgs_tl{
%global OCG array
- \pbs_pdfobj:nnn{}{array}{\g_ocgbase_ocgs_tl}
- \tl_set:Nx\l_ocgbase_ocgarray_tl{\pbs_pdflastobj:}
- \tl_new:N\l_ocgbase_offocgentry_tl
+ \pdf_object_unnamed_write:ne{array}{\g_ocgbase_ocgs_tl}
+ \tl_set:Nx\l_ocgbase_ocgarray_tl{\pdf_object_ref_last:}
%global OFF list
+ \tl_new:N\l_ocgbase_offocgentry_tl
\seq_if_empty:NF\g_ocgbase_offocgs_seq{
- \pbs_pdfobj:nnn{}{array}{\seq_use:Nn\g_ocgbase_offocgs_seq{~}}
- \tl_set:Nx\l_ocgbase_offocgentry_tl{/OFF~\pbs_pdflastobj:}
+ \pdf_object_unnamed_write:ne{array}{\seq_use:Nn\g_ocgbase_offocgs_seq{~}}
+ \tl_set:Nx\l_ocgbase_offocgentry_tl{/OFF~\pdf_object_ref_last:}
}
%global Order list
\tl_new:N\l_ocgbase_ocgorderentry_tl
\tl_new:N\l_ocgbase_ocgorder_tl
- \tl_if_exist:cT{g_ocgbase_nd_0_chld_tl}{
- \ocgbase_build_order:Nn\l_ocgbase_ocgorder_tl{
- \tl_use:c{g_ocgbase_nd_0_chld_tl}
- }
+ \seq_if_empty:NF\g_ocgbase_order_root_seq{
+ \ocgbase_build_order:Nn\l_ocgbase_ocgorder_tl{root}
}
\tl_if_empty:NF\l_ocgbase_ocgorder_tl{
- \pbs_pdfobj:nnn{}{array}{\l_ocgbase_ocgorder_tl}
- \tl_set:Nx\l_ocgbase_ocgorderentry_tl{/Order~\pbs_pdflastobj:}
+ \pdf_object_unnamed_write:ne{array}{\l_ocgbase_ocgorder_tl}
+ \tl_set:Nx\l_ocgbase_ocgorderentry_tl{/Order~\pdf_object_ref_last:}
}
%generate RBGroups entry (radio button groups)
\tl_new:N\l_ocgbase_rbtn_groups_tl
@@ -566,16 +509,19 @@
}
\tl_new:N\l_ocgbase_rbgroupsentry_tl
\tl_if_empty:NF\l_ocgbase_rbtn_groups_tl{
- \pbs_pdfobj:nnn{}{array}{\l_ocgbase_rbtn_groups_tl}
- \tl_set:Nx\l_ocgbase_rbgroupsentry_tl{/RBGroups~\pbs_pdflastobj:}
+ \pdf_object_unnamed_write:ne{array}{\l_ocgbase_rbtn_groups_tl}
+ \tl_set:Nx\l_ocgbase_rbgroupsentry_tl{/RBGroups~\pdf_object_ref_last:}
}
\pdfmanagement_add:nnx{Catalog/OCProperties}{OCGs}{\g_ocgbase_ocgs_tl}
\pdfmanagement_add:nnx{Catalog/OCProperties}{D}{<<
- /AS~[
- <</Event/View /Category[/View] /OCGs~\l_ocgbase_ocgarray_tl>>
- <</Event/Print /Category[/Print] /OCGs~\l_ocgbase_ocgarray_tl>>
- <</Event/Export/Category[/Export]/OCGs~\l_ocgbase_ocgarray_tl>>
- ]
+ /Name~(OC~default~configuration)
+ \pdfmeta_standard_verify:nT{Catalog_OCProperties_no_AS}{ %for pdf/a compliance
+ /AS~[
+ <</Event/View /Category[/View] /OCGs~\l_ocgbase_ocgarray_tl>>
+ <</Event/Print /Category[/Print] /OCGs~\l_ocgbase_ocgarray_tl>>
+ <</Event/Export/Category[/Export]/OCGs~\l_ocgbase_ocgarray_tl>>
+ ]
+ }
/BaseState/ON~\l_ocgbase_offocgentry_tl
\l_ocgbase_ocgorderentry_tl
\l_ocgbase_rbgroupsentry_tl
@@ -586,12 +532,10 @@
}
%macro for inserting new OCG object
-\cs_generate_variant:Nn\pdf_object_new:nn{xn}
-\cs_generate_variant:Nn\pdf_object_write:nn{xx}
\int_new:N\g_ocgbase_int
\cs_new_protected_nopar:Nn\ocgbase_new_ocg:nnn{
- \pdf_object_new:xn{g_object_\int_use:N\g_ocgbase_int _pdf}{dict}
- \pdf_object_write:xx{g_object_\int_use:N\g_ocgbase_int _pdf}{
+ \exp_args:Ne\pdf_object_new:n{g_object_\int_use:N\g_ocgbase_int _pdf}
+ \exp_args:Neee\pdf_object_write:nnn{g_object_ \int_use:N\g_ocgbase_int _pdf}{dict}{
/Type/OCG/Name~(#1)~\str_if_eq:eeF{#2}{}{/Usage<<#2>>}
}
\tl_gput_right:Nx\g_ocgbase_ocgs_tl{~\pdf_object_ref_last:}
@@ -612,98 +556,45 @@
\cs_new_nopar:Nn\ocgbase_last_ocg:{\g_ocgbase_last_ocg_tl}
-\int_new:N\g_ocgbase_nd_int %node id
-\seq_new:N\g_ocgbase_tree_nd_stack_seq %stack with open ocg node id
-\seq_new:N\g_ocgbase_tree_ocg_stack_seq %stack with open ocg obj number
-\seq_gpush:Nn\g_ocgbase_tree_nd_stack_seq{0} %push root node
-\seq_gpush:Nn\g_ocgbase_tree_ocg_stack_seq{null} %push root node
+\seq_new:N\g_ocgbase_open_ocg_seq %stack with open ocg ref
+\seq_new:N\g_ocgbase_order_root_seq %seq taking ocg ref /Order root
-%macro for starting OCG object (and nested children) insertion into Order
+%macro for starting OCG object (and nested children) insertion into order
%hierarchy (shown as tree structure in the viewers `Layers' tab
\cs_new_protected_nopar:Nn\ocgbase_tree_node_begin:n{ % #1: OCG obj
- %get the parent node from stack
- \seq_get:NN\g_ocgbase_tree_nd_stack_seq\l__ocgbase_prnt_tl
- \tl_if_exist:cTF{g_ocgbase_nd_\l__ocgbase_prnt_tl _chld_tl}{
- %parent has >=1 children (i. e. my older siblings), traverse them
- \tl_set:Nv\l__ocgbase_prev_sbl_tl{g_ocgbase_nd_\l__ocgbase_prnt_tl _chld_tl}
- \tl_set:Nx\l__ocgbase_cur_ocg_tl{#1}
- \ocgbase_traverse_siblings:NN\l__ocgbase_prev_sbl_tl\l__ocgbase_cur_ocg_tl
- \str_if_empty:NTF\l__ocgbase_cur_ocg_tl{
- %I am the first child of my parent to refer to OCG #1
- \int_gincr:N\g_ocgbase_nd_int
- \tl_set:Nx\l__ocgbase_cur_nd_tl{\int_use:N\g_ocgbase_nd_int}
- %set myself as my next-older sibling's `next sibling'
- \tl_gset:cV{
- g_ocgbase_nd_\l__ocgbase_prev_sbl_tl _sbl_tl}\l__ocgbase_cur_nd_tl
- }{
- %there is already a sibling referring to OCG #1; no new node needs be
- %created
- \tl_set:NV\l__ocgbase_cur_nd_tl\l__ocgbase_prev_sbl_tl
- }
- }{
- %I am the very first child of my parent
- \int_gincr:N\g_ocgbase_nd_int
- \tl_set:Nx\l__ocgbase_cur_nd_tl{\int_use:N\g_ocgbase_nd_int}
- %set myself as my parent's first child
- \tl_gset:cV{g_ocgbase_nd_\l__ocgbase_prnt_tl _chld_tl}\l__ocgbase_cur_nd_tl
+ % get parent (either currently open ocg or root)
+ \seq_get:NNF\g_ocgbase_open_ocg_seq\l__ocgbase_prnt_tl{
+ \tl_set:Nn\l__ocgbase_prnt_tl{root}
}
- %set the OCG I am referring to
- \tl_gset:cx{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _ocg_tl}{#1}
- %push current node and its associated OCG obj on the stacks
- \seq_gpush:NV\g_ocgbase_tree_nd_stack_seq\l__ocgbase_cur_nd_tl
- \seq_gpush:Nx\g_ocgbase_tree_ocg_stack_seq{#1}
-}
-
-%macro that ends insertion of OCG and sub-OCGs into Order tree
-\cs_new_protected:Nn\ocgbase_tree_node_end:{
- \seq_get:NN\g_ocgbase_tree_nd_stack_seq\l_tempa_tl
- \seq_get:NN\g_ocgbase_tree_ocg_stack_seq\l_tempb_tl
- \str_if_eq:eeT{
- \cs_if_exist_use:c{g_ocgbase_nd_\l_tempa_tl _ocg_tl}
- }{
- \l_tempb_tl
- }{
- \seq_gpop:NN\g_ocgbase_tree_nd_stack_seq\g_trash_tl
- \seq_gpop:NN\g_ocgbase_tree_ocg_stack_seq\g_trash_tl
+ %push current ocg ref on stack with open ocgs
+ \seq_gpush:Nx\g_ocgbase_open_ocg_seq{#1}
+ %create seq for current ocg if not yet existing and
+ %append ocg ref to its parent seq
+ \seq_if_exist:cF{g_ocgbase_order_#1_seq}{
+ \seq_new:c{g_ocgbase_order_#1_seq}
+ \seq_gput_right:cx{g_ocgbase_order_ \l__ocgbase_prnt_tl _seq}{#1}
}
}
-% helper macro (recursive); traverses siblings to find either
-% the node which refers to the same OCG (arg #2 remains un-modified), or
-% the last sibling inserted (arg #2 is cleared);
-% the node id of the sibling found is returned in arg #1
-\cs_new_protected:Nn\ocgbase_traverse_siblings:NN{
- % #1: current node (in/out), #2: OCG obj (in/out)
- \str_if_eq:eeF{#2}{\tl_use:c{g_ocgbase_nd_#1_ocg_tl}}{
- \tl_if_exist:cTF{g_ocgbase_nd_#1_sbl_tl}{
- \tl_set:Nv#1{g_ocgbase_nd_#1_sbl_tl}
- \ocgbase_traverse_siblings:NN#1#2
- }{
- \tl_clear:N#2
- }
- }
+%macro that ends insertion of current OCG into order tree
+\cs_new_protected:Nn\ocgbase_tree_node_end:{
+ %pop top ocg ref from stack with open ocgs
+ \seq_gpop:NN\g_ocgbase_open_ocg_seq\g_trash_tl
}
+%macro that builds global ocg order from hierarchy and saves it into tl var
\cs_new_protected_nopar:Nn\ocgbase_build_order:Nn{
% (recursive macro)
% #1: tl var to which the OCG order is written (output)
- % #2: starting node id (input; usually `1')
- \tl_set:Nx\l__ocgbase_cur_nd_tl{#2}
- % first, append the OCG obj the current node is referring to
- \tl_put_right:Nx#1{~\tl_use:c{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _ocg_tl}}
- % second, traverse the tree starting with the first child node
- \tl_if_exist:cT{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _chld_tl}{
- \seq_gpush:NV\g_ocgbase_tree_nd_stack_seq\l__ocgbase_cur_nd_tl
- \tl_put_right:Nn#1{~[}
- \ocgbase_build_order:Nn#1{
- \tl_use:c{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _chld_tl}}
- \tl_put_right:Nn#1{~]}
- \seq_gpop:NN\g_ocgbase_tree_nd_stack_seq\l__ocgbase_cur_nd_tl
- }
- % third, traverse the tree starting with the next sibling node
- \tl_if_exist:cT{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _sbl_tl}{
- \ocgbase_build_order:Nn#1{
- \tl_use:c{g_ocgbase_nd_\l__ocgbase_cur_nd_tl _sbl_tl}}
+ % #2: starting node (input; usually `root')
+ \seq_map_inline:cn{g_ocgbase_order_#2_seq}{
+ % first, append ocg ref to result tl var
+ \tl_put_right:Nx#1{~##1}
+ \seq_if_empty:cF{g_ocgbase_order_##1_seq}{
+ \tl_put_right:Nn#1{~[}
+ \ocgbase_build_order:Nn#1{##1}
+ \tl_put_right:Nn#1{~]}
+ }
}
}
@@ -740,7 +631,7 @@
% OC-marked content
\cs_new_protected_nopar:Nn\ocgbase_oc_bdc:n{\pbs_pdfbdc:nn{OC}{#1}}
-\cs_new_protected_nopar:Nn\ocgbase_oc_emc:{\pbs_pdfemc:}
+\cs_new_eq:NN\ocgbase_oc_emc:\pbs_pdfemc:
%stack of PDF obj references of currently open OCGs
\seq_new:N\g_ocgbase_open_stack_seq
diff --git a/macros/latex/contrib/ocgx2/ocgx2.sty b/macros/latex/contrib/ocgx2/ocgx2.sty
index a1081f88ac..84d1432395 100644
--- a/macros/latex/contrib/ocgx2/ocgx2.sty
+++ b/macros/latex/contrib/ocgx2/ocgx2.sty
@@ -43,11 +43,11 @@
%
% The Current Maintainer of this work is A. Grahn.
- \def\g@ocgxii@date@tl{2024/03/18}
- \def\g@ocgxii@version@tl{0.57}
+ \def\g@ocgxii@date@tl{2024/09/16}
+ \def\g@ocgxii@version@tl{0.60}
\ProvidesExplPackage{ocgx2}{\g@ocgxii@date@tl}{\g@ocgxii@version@tl}
- {ports `ocgx' functionality to dvips+ps2pdf, xelatex and dvipdfmx}
+ {ports~`ocgx'~functionality~to~dvips+ps2pdf,~xelatex~and~dvipdfmx}
%creating global definitions
\cs_new_protected:Npn\ocgxii@newkey#1#2{\tl_gset:cx{#1}{#2}}
@@ -1579,8 +1579,8 @@
%
% The Current Maintainer of this work is A. Grahn.
-\def\g@ocgxii@date@tl{2024/03/18}
-\def\g@ocgxii@version@tl{0.57}
+\def\g@ocgxii@date@tl{2024/09/16}
+\def\g@ocgxii@version@tl{0.60}
\ProvidesExplPackage{ocgx2}{\g@ocgxii@date@tl}{\g@ocgxii@version@tl}
{ports `ocgx' functionality to dvips+ps2pdf, xelatex and dvipdfmx}
@@ -1810,8 +1810,8 @@
\cs_set_eq:NN\And \ocgxii_protected_dummy_cs:n
\cs_set_eq:NN\Or \ocgxii_protected_dummy_cs:n
\ocgxii_ocmd_read_visbility:xN{#2}\l_ocgxii_ocmd_visibility_tl
- \pdf_object_new:xn{g_object_\int_use:N\g_ocgbase_int _pdf}{dict}
- \pdf_object_write:xx{g_object_\int_use:N\g_ocgbase_int _pdf}{
+ \exp_args:Ne\pdf_object_new:n{g_object_\int_use:N\g_ocgbase_int _pdf}
+ \exp_args:Neee\pdf_object_write:nnn{g_object_\int_use:N\g_ocgbase_int _pdf}{dict}{
/Type/OCMD\l_ocgxii_ocmd_visibility_tl
}
\tl_gset:cx{g_pbs_objname_\pdf_object_ref_last: _tl}{
@@ -2385,104 +2385,132 @@
%
\bool_if:nTF{\l_ocgxii_nobreak_bool || \l_ocgxii_mouse_triggers_bool}{
\hbox_set:Nn\l_tmpa_box{#6}
- \bool_if:NTF\l_ocgxii_mouse_triggers_bool{
- % e,d,x mouse triggers require (non-breakable) /Widget annot
- \pdfannot_dict_put:nnn{link/GoTo}{Subtype}{/Widget}
- \pdfannot_dict_remove:nn{link/GoTo}{Border}
- }{
- \pdfannot_dict_put:nnn{link/GoTo}{Border}{[0~0~0]}
- }
- \pdfannot_dict_remove:nn{link/GoTo}{C}
- \pbs_pdfannot:nnnn{
- \dim_use:N\box_wd:N\l_tmpa_box}{
- \dim_use:N\box_ht:N\l_tmpa_box}{
- \dim_use:N\box_dp:N\l_tmpa_box
- }{
- \pdfannot_dict_use:n{link/GoTo}
+ % suppress annots with SetOCGState Action Subtype for pdf/a compliance
+ \pdfmeta_standard_verify:nT{annot_action_A}{
\bool_if:NTF\l_ocgxii_mouse_triggers_bool{
- /Ff~65536/FT/Btn/BS<</W~0>>
- /T~(ocgx2@\int_use:N\g_ocgxii_widcount_int)
- %treat mouse-up as mouse-click --> handle through /A dictionary
- \str_if_eq:eeF{}{
- \l_ocgxii_toswitch_u_tl\l_ocgxii_toshow_u_tl\l_ocgxii_tohide_u_tl
- }{
- /A <</S/SetOCGState/State [
- \str_if_eq:VnF\l_ocgxii_toswitch_u_tl{}{
- /Toggle~\l_ocgxii_toswitch_u_tl
- }
- \str_if_eq:VnF\l_ocgxii_toshow_u_tl{}{
- /ON~\l_ocgxii_toshow_u_tl
- }
- \str_if_eq:VnF\l_ocgxii_tohide_u_tl{}{
- /OFF~\l_ocgxii_tohide_u_tl
- }
- ]>>
- }
- % other mouse triggers need add. actions dict
- /AA <<
- %\str_if_eq:eeF{}{ % mouse-up
- % \l_ocgxii_toswitch_u_tl\l_ocgxii_toshow_u_tl\l_ocgxii_tohide_u_tl
- %}{
- % /U <</S/SetOCGState/State [
- % \str_if_eq:VnF\l_ocgxii_toswitch_u_tl{}{
- % /Toggle~\l_ocgxii_toswitch_u_tl
- % }
- % \str_if_eq:VnF\l_ocgxii_toshow_u_tl{}{
- % /ON~\l_ocgxii_toshow_u_tl
- % }
- % \str_if_eq:VnF\l_ocgxii_tohide_u_tl{}{
- % /OFF~\l_ocgxii_tohide_u_tl
- % }
- % ]>>
- %}
- \str_if_eq:eeF{}{ % mouse-down
- \l_ocgxii_toswitch_d_tl\l_ocgxii_toshow_d_tl\l_ocgxii_tohide_d_tl
- }{
- /D <</S/SetOCGState/State [
- \str_if_eq:VnF\l_ocgxii_toswitch_d_tl{}{
- /Toggle~\l_ocgxii_toswitch_d_tl
- }
- \str_if_eq:VnF\l_ocgxii_toshow_d_tl{}{
- /ON~\l_ocgxii_toshow_d_tl
- }
- \str_if_eq:VnF\l_ocgxii_tohide_d_tl{}{
- /OFF~\l_ocgxii_tohide_d_tl
- }
- ]>>
- }
- \str_if_eq:eeF{}{ % mouse-enter
- \l_ocgxii_toswitch_e_tl\l_ocgxii_toshow_e_tl\l_ocgxii_tohide_e_tl
- }{
- /E <</S/SetOCGState/State [
- \str_if_eq:VnF\l_ocgxii_toswitch_e_tl{}{
- /Toggle~\l_ocgxii_toswitch_e_tl
- }
- \str_if_eq:VnF\l_ocgxii_toshow_e_tl{}{
- /ON~\l_ocgxii_toshow_e_tl
- }
- \str_if_eq:VnF\l_ocgxii_tohide_e_tl{}{
- /OFF~\l_ocgxii_tohide_e_tl
- }
- ]>>
- }
- \str_if_eq:eeF{}{ % mouse-exit
- \l_ocgxii_toswitch_x_tl\l_ocgxii_toshow_x_tl\l_ocgxii_tohide_x_tl
+ % e,d,x mouse triggers require (non-breakable) /Widget annot
+ \pdfannot_dict_put:nnn{link/GoTo}{Subtype}{/Widget}
+ \pdfannot_dict_remove:nn{link/GoTo}{Border}
+ }{
+ \pdfannot_dict_put:nnn{link/GoTo}{Border}{[0~0~0]}
+ }
+ \pdfannot_dict_remove:nn{link/GoTo}{C}
+ \pbs_pdfannot:nnnn{
+ \dim_use:N\box_wd:N\l_tmpa_box}{
+ \dim_use:N\box_ht:N\l_tmpa_box}{
+ \dim_use:N\box_dp:N\l_tmpa_box
+ }{
+ \pdfannot_dict_use:n{link/GoTo}
+ \bool_if:NTF\l_ocgxii_mouse_triggers_bool{
+ /Ff~65536/FT/Btn/BS<</W~0>>
+ /T~(ocgx2@\int_use:N\g_ocgxii_widcount_int)
+ %treat mouse-up as mouse-click --> handle through /A dictionary
+ \str_if_eq:eeF{}{
+ \l_ocgxii_toswitch_u_tl\l_ocgxii_toshow_u_tl\l_ocgxii_tohide_u_tl
}{
- /X <</S/SetOCGState/State [
- \str_if_eq:VnF\l_ocgxii_toswitch_x_tl{}{
- /Toggle~\l_ocgxii_toswitch_x_tl
+ /A <</S/SetOCGState/State [
+ \str_if_eq:VnF\l_ocgxii_toswitch_u_tl{}{
+ /Toggle~\l_ocgxii_toswitch_u_tl
}
- \str_if_eq:VnF\l_ocgxii_toshow_x_tl{}{
- /ON~\l_ocgxii_toshow_x_tl
+ \str_if_eq:VnF\l_ocgxii_toshow_u_tl{}{
+ /ON~\l_ocgxii_toshow_u_tl
}
- \str_if_eq:VnF\l_ocgxii_tohide_x_tl{}{
- /OFF~\l_ocgxii_tohide_x_tl
+ \str_if_eq:VnF\l_ocgxii_tohide_u_tl{}{
+ /OFF~\l_ocgxii_tohide_u_tl
}
]>>
}
- >>
- }{
- %mouse-up alone
+ % other mouse triggers need add. actions dict
+ /AA <<
+ %\str_if_eq:eeF{}{ % mouse-up
+ % \l_ocgxii_toswitch_u_tl\l_ocgxii_toshow_u_tl\l_ocgxii_tohide_u_tl
+ %}{
+ % /U <</S/SetOCGState/State [
+ % \str_if_eq:VnF\l_ocgxii_toswitch_u_tl{}{
+ % /Toggle~\l_ocgxii_toswitch_u_tl
+ % }
+ % \str_if_eq:VnF\l_ocgxii_toshow_u_tl{}{
+ % /ON~\l_ocgxii_toshow_u_tl
+ % }
+ % \str_if_eq:VnF\l_ocgxii_tohide_u_tl{}{
+ % /OFF~\l_ocgxii_tohide_u_tl
+ % }
+ % ]>>
+ %}
+ \str_if_eq:eeF{}{ % mouse-down
+ \l_ocgxii_toswitch_d_tl\l_ocgxii_toshow_d_tl\l_ocgxii_tohide_d_tl
+ }{
+ /D <</S/SetOCGState/State [
+ \str_if_eq:VnF\l_ocgxii_toswitch_d_tl{}{
+ /Toggle~\l_ocgxii_toswitch_d_tl
+ }
+ \str_if_eq:VnF\l_ocgxii_toshow_d_tl{}{
+ /ON~\l_ocgxii_toshow_d_tl
+ }
+ \str_if_eq:VnF\l_ocgxii_tohide_d_tl{}{
+ /OFF~\l_ocgxii_tohide_d_tl
+ }
+ ]>>
+ }
+ \str_if_eq:eeF{}{ % mouse-enter
+ \l_ocgxii_toswitch_e_tl\l_ocgxii_toshow_e_tl\l_ocgxii_tohide_e_tl
+ }{
+ /E <</S/SetOCGState/State [
+ \str_if_eq:VnF\l_ocgxii_toswitch_e_tl{}{
+ /Toggle~\l_ocgxii_toswitch_e_tl
+ }
+ \str_if_eq:VnF\l_ocgxii_toshow_e_tl{}{
+ /ON~\l_ocgxii_toshow_e_tl
+ }
+ \str_if_eq:VnF\l_ocgxii_tohide_e_tl{}{
+ /OFF~\l_ocgxii_tohide_e_tl
+ }
+ ]>>
+ }
+ \str_if_eq:eeF{}{ % mouse-exit
+ \l_ocgxii_toswitch_x_tl\l_ocgxii_toshow_x_tl\l_ocgxii_tohide_x_tl
+ }{
+ /X <</S/SetOCGState/State [
+ \str_if_eq:VnF\l_ocgxii_toswitch_x_tl{}{
+ /Toggle~\l_ocgxii_toswitch_x_tl
+ }
+ \str_if_eq:VnF\l_ocgxii_toshow_x_tl{}{
+ /ON~\l_ocgxii_toshow_x_tl
+ }
+ \str_if_eq:VnF\l_ocgxii_tohide_x_tl{}{
+ /OFF~\l_ocgxii_tohide_x_tl
+ }
+ ]>>
+ }
+ >>
+ }{
+ %mouse-up alone
+ /A <</S/SetOCGState
+ /State [
+ \str_if_eq:VnF{\l_ocgxii_toswitch_u_tl}{}{
+ /Toggle~\l_ocgxii_toswitch_u_tl}~
+ \str_if_eq:VnF{\l_ocgxii_toshow_u_tl}{}{/ON~\l_ocgxii_toshow_u_tl}~
+ \str_if_eq:VnF{\l_ocgxii_tohide_u_tl}{}{/OFF~\l_ocgxii_tohide_u_tl}
+ ]
+ >>
+ }
+ }
+ \bool_if:NT\l_ocgxii_mouse_triggers_bool{
+ \pbs_appendtofields:n{\pbs_pdflastann:}
+ \int_gincr:N\g_ocgxii_widcount_int
+ }
+ }
+ \box_use_drop:N\l_tmpa_box
+ }{
+ % suppress annots with SetOCGState Action Subtype for pdf/a compliance
+ \pdfmeta_standard_verify:nTF{annot_action_A}{
+ \bool_if:NF\g_ocgxii_hyperref_loaded_bool{
+ \pdfannot_dict_put:nnn{link/GoTo}{Border}{[0~0~0]}
+ }
+ %line-breakable annotation
+ \pbs_pdflink:nn{
+ %look and feel of hyperref internal links
+ \pdfannot_dict_use:n{link/GoTo}
/A <</S/SetOCGState
/State [
\str_if_eq:VnF{\l_ocgxii_toswitch_u_tl}{}{
@@ -2491,33 +2519,12 @@
\str_if_eq:VnF{\l_ocgxii_tohide_u_tl}{}{/OFF~\l_ocgxii_tohide_u_tl}
]
>>
+ }{
+ \hook_use:n{pdfannot/link/GoTo/begin}
+ #6
+ \hook_use:n{pdfannot/link/GoTo/end}
}
- }\box_use_drop:N\l_tmpa_box
- \bool_if:NT\l_ocgxii_mouse_triggers_bool{
- \pbs_appendtofields:n{\pbs_pdflastann:}
- \int_gincr:N\g_ocgxii_widcount_int
- }
- }{
- \bool_if:NF\g_ocgxii_hyperref_loaded_bool{
- \pdfannot_dict_put:nnn{link/GoTo}{Border}{[0~0~0]}
- }
- %line-breakable annotation
- \pbs_pdflink:nn{
- %look and feel of hyperref internal links
- \pdfannot_dict_use:n{link/GoTo}
- /A <</S/SetOCGState
- /State [
- \str_if_eq:VnF{\l_ocgxii_toswitch_u_tl}{}{
- /Toggle~\l_ocgxii_toswitch_u_tl}~
- \str_if_eq:VnF{\l_ocgxii_toshow_u_tl}{}{/ON~\l_ocgxii_toshow_u_tl}~
- \str_if_eq:VnF{\l_ocgxii_tohide_u_tl}{}{/OFF~\l_ocgxii_tohide_u_tl}
- ]
- >>
- }{
- \hook_use:n{pdfannot/link/GoTo/begin}
- #6
- \hook_use:n{pdfannot/link/GoTo/end}
- }
+ }{#6}
}
\group_end:
}
diff --git a/macros/latex/contrib/pagelayout/README.md b/macros/latex/contrib/pagelayout/README.md
index 4d62838bf4..8d08f566f7 100644
--- a/macros/latex/contrib/pagelayout/README.md
+++ b/macros/latex/contrib/pagelayout/README.md
@@ -1,4 +1,4 @@
-![The pagelayout LaTeX class](doc/banner.svg)
+![The pagelayout LaTeX class](https://raw.githubusercontent.com/friedemannbartels/latex-pagelayout/1.1.1/doc/banner.svg)
The pagelayout class enables you to design pages declaratively using simple macros for pages, covers, grids, templates, text, and graphics to create graphic rich, perfectly typeset, and print ready PDFs.
@@ -26,7 +26,7 @@ Create a page with the `\page` command. A grid with rows and cells helps you to
}
```
-![A page with a two column layout](doc/quickstart-1.svg)
+![A page with a two column layout](https://raw.githubusercontent.com/friedemannbartels/latex-pagelayout/1.1.1/doc/quickstart-1.svg)
### Templates
@@ -44,7 +44,7 @@ You can set width relations between grid cells and height relations between grid
\template{my template}{}
```
-![A template with two placeholders](doc/quickstart-2.svg)
+![A template with two placeholders](https://raw.githubusercontent.com/friedemannbartels/latex-pagelayout/1.1.1/doc/quickstart-2.svg)
You can set margin and gutter at grid, page, or document level.
@@ -72,17 +72,17 @@ You can scale and position a graphic. And you can add borders and box shadows to
}
```
-![Photo with border and shadow](doc/quickstart-3.svg)
+![Photo with border and shadow](https://raw.githubusercontent.com/friedemannbartels/latex-pagelayout/1.1.1/doc/quickstart-3.svg)
-Have a look at the [examples](doc) to learn how to create double pages, covers, and more.
+Have a look at the [examples](https://github.com/friedemannbartels/latex-pagelayout/tree/1.1.1/doc) to learn how to create double pages, covers, and more.
-For a complete reference, read the [manual](doc/pagelayout-manual.pdf).
+For a complete reference, read the [manual](https://raw.githubusercontent.com/friedemannbartels/latex-pagelayout/1.1.1/doc/pagelayout-manual.pdf).
## Installation
In general, you should use the package manager shipped with your TeX distribution to install the pagelayout package.
-To install manually, copy the contents of [pagelayout.tds.zip](https://github.com/friedemannbartels/latex-pagelayout/releases/download/1.1.0/pagelayout-1.1.0.tds.zip) to your local TeX directory tree and run the command `texhash`.
+To install manually, copy the contents of [pagelayout.tds.zip](https://github.com/friedemannbartels/latex-pagelayout/releases/download/1.1.1/pagelayout.tds.zip) to your local TeX directory tree and run the command `texhash`.
To enable image optimization, shadow creation, and preflight, perform these installation steps:
diff --git a/macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf b/macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf
index 6913eb17ce..a8ec76cc08 100644
--- a/macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf
+++ b/macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex b/macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex
index 460f1170d0..df37ebaa6f 100644
--- a/macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex
+++ b/macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex
@@ -18,7 +18,7 @@
\usepackage{tikz}
\OnlyDescription
\hypersetup{pdfborder={0 0 0}}
-\def\pagelayoutversion{1.1.0}
+\def\pagelayoutversion{1.1.1}
\begin{document}
diff --git a/macros/latex/contrib/pagelayout/scripts/pagelayoutapi b/macros/latex/contrib/pagelayout/scripts/pagelayoutapi
index be034baaa7..1232ae3ab7 100755
--- a/macros/latex/contrib/pagelayout/scripts/pagelayoutapi
+++ b/macros/latex/contrib/pagelayout/scripts/pagelayoutapi
@@ -13,7 +13,7 @@
# LaTeX version 2008/05/04 or later.
#
-version=1.1.0
+version=1.1.1
_convert() {
turbo=$1
diff --git a/macros/latex/contrib/pagelayout/scripts/textestvis b/macros/latex/contrib/pagelayout/scripts/textestvis
index 8ddcde77e1..8120a7ba1f 100755
--- a/macros/latex/contrib/pagelayout/scripts/textestvis
+++ b/macros/latex/contrib/pagelayout/scripts/textestvis
@@ -13,7 +13,7 @@
# LaTeX version 2008/05/04 or later.
#
-version=1.1.0
+version=1.1.1
OK="$( tput setaf 2 )•$( tput sgr0 )"
FAILED="$( tput setaf 1 )$( tput bold )x$( tput sgr0 )"
@@ -122,13 +122,13 @@ test() {
fi
fi
- magick convert -density $2 -quiet $tmpdir/$name.pdf $tmpdir/$name.png
+ magick -density $2 -quiet $tmpdir/$name.pdf $tmpdir/$name.png
if [ -f "$tmpdir/$name.png" ]; then
mv $tmpdir/$name.png $tmpdir/$name-0.png
fi
if [ -f "$name.approved.pdf" ]; then
- magick convert -density $2 -quiet $name.approved.pdf $tmpdir/$name.approved.png
+ magick -density $2 -quiet $name.approved.pdf $tmpdir/$name.approved.png
if [ -f "$tmpdir/$name.approved.png" ]; then
mv $tmpdir/$name.approved.png $tmpdir/$name.approved-0.png
fi
@@ -311,11 +311,11 @@ compare() {
spacer=""
if [ -f "$filea" ]; then
if [ -f "$fileb" ]; then
- magick convert -density $1 -quiet $filea $tmpdir/$basenamea.png
+ magick -density $1 -quiet $filea $tmpdir/$basenamea.png
if [ -f "$tmpdir/$basenamea.png" ]; then
mv $tmpdir/$basenamea.png $tmpdir/$basenamea-0.png
fi
- magick convert -density $1 -quiet $fileb $tmpdir/$basenameb.png
+ magick -density $1 -quiet $fileb $tmpdir/$basenameb.png
if [ -f "$tmpdir/$basenameb.png" ]; then
mv $tmpdir/$basenameb.png $tmpdir/$basenameb-0.png
fi
diff --git a/macros/latex/contrib/pagelayout/tex/pagelayout.cls b/macros/latex/contrib/pagelayout/tex/pagelayout.cls
index 8e7d3616ae..655ed59bd2 100644
--- a/macros/latex/contrib/pagelayout/tex/pagelayout.cls
+++ b/macros/latex/contrib/pagelayout/tex/pagelayout.cls
@@ -13,8 +13,8 @@
%%
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesClass{pagelayout}[2024/01/17 Layout graphic rich documents]
-\def\pagelayoutversion{1.1.0}
+\ProvidesClass{pagelayout}[2024/07/31 Layout graphic rich documents]
+\def\pagelayoutversion{1.1.1}
% packages
\RequirePackage{pgfopts}
@@ -372,7 +372,11 @@
\pal@outermargin=\ifdim\pal@gridoutermargin=\pal@undefdim\pal@gridmargin\else\pal@gridoutermargin\fi
\height=\dimexpr\pal@pageheight - \pal@topmargin - \pal@bottommargin\relax
- \width=\dimexpr\pal@pagewidth - \pal@innermargin - \pal@outermargin\relax
+ \ifpal@isdoublepage
+ \width=\dimexpr2\pal@pagewidth - 2\pal@outermargin\relax
+ \else
+ \width=\dimexpr\pal@pagewidth - \pal@innermargin - \pal@outermargin\relax
+ \fi
\ifdim\dimexpr\pal@gridoptionheight\relax=\pal@undefdim
\else
\pal@gridheightdiff=\dimexpr0.5\height - 0.5\dimexpr\pal@gridoptionheight\relax\relax
diff --git a/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.pdf b/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.pdf
index 9234ec3596..6f09abae4e 100644
--- a/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.pdf
+++ b/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.tex b/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.tex
index ae8de67450..413d7368cc 100644
--- a/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.tex
+++ b/macros/latex/contrib/panneauxroute/doc/PanneauxRoute-doc.tex
@@ -36,8 +36,8 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.0}
-\def\TPdate{14 août 2023}
+\def\TPversion{0.1.2}
+\def\TPdate{14 septembre 2024}
\usepackage{tcolorbox}
@@ -135,6 +135,10 @@ Les panneaux sont au format \MontreCode{pdf}, obtenu à l'aide de fichiers \Mont
\subsection{Historique}
+\verb|v0.1.2|~:~~~~Nouveaux panneaux
+
+\verb|v0.1.1|~:~~~~Ajout du panneau B14 (80) pour la limitation de vitesse 80
+
\verb|v0.1.0|~:~~~~Version initiale
\subsection{Chargement}
@@ -178,12 +182,12 @@ Par défaut (dû à \MontreCode{\textbackslash includegraphics}) les \textit{ima
Pour les panneaux de (début/fin de) limitation de vitesse, la commande associée nécessite un argument obligatoire, et entre \MontreCode{\{...\}}, avec comme possibilités \MontreCode{15/30/50/70/90/110/130} :
\begin{demohigh}[language=latex/latex3,style/main=cyan!5,style/code=cyan!5,style/demo=cyan!5]
-\prLimVites{15}\prLimVites{30}\prLimVites{50}\prLimVites{70}
-\prLimVites{90}\prLimVites{110}\prLimVites{130}
+\prLimVites{15}\prLimVites{30}\prLimVites{50}\prLimVites{70}%
+\prLimVites{80}\prLimVites{90}\prLimVites{110}\prLimVites{130}
\end{demohigh}
\begin{demohigh}[language=latex/latex3,style/main=cyan!5,style/code=cyan!5,style/demo=cyan!5]
-\prFinLimVit{15}\prFinLimVit{30}\prFinLimVit{50}\prFinLimVit{70}
+\prFinLimVit{15}\prFinLimVit{30}\prFinLimVit{50}\prFinLimVit{70}%
\prFinLimVit{90}\prFinLimVit{110}\prFinLimVit{130}
\end{demohigh}
@@ -228,6 +232,24 @@ Pour les panneaux de (début/fin de) limitation de vitesse, la commande associé
\pagebreak
+\subsection{Panneaux de Danger temporaires}
+
+\begin{longtblr}[label=none,entry=none]{width=0.95\linewidth,hlines,vlines,colspec={Q[12.5mm,m,c]Q[m,c]X[l,m]Q[m,c,35mm]},row{1}={cyan!5,font=\Large\sffamily},row{2-Z}={font=\sffamily},cell{2-Z}{Z}={font=\footnotesize}}
+ Type & Panneau & Signification & Alias \\
+ AK2 & \PanneauTableau{AK2} & Dos d'âne ou cassis & \fakeverb{\prDosAneTemp} \\
+ AK3 & \PanneauTableau{AK3} & Rétrécissement de chaussée & \fakeverb{\prChausRetTemp}\\
+ AK4 & \PanneauTableau{AK4} & Chaussée glissante & \fakeverb{\prChaussGlissTemp} \\
+ AK5 & \PanneauTableau{AK5} & Travaux & \fakeverb{\prTravauxTemp} \\
+ AK14 & \PanneauTableau{AK14} & Danger & \fakeverb{\prDangerTemp} \\
+ AK17 & \PanneauTableau{AK17} & Feux temporaires & \fakeverb{\prFeuxTemp} \\
+ AK22 & \PanneauTableau{AK22} & Projection de gravillons & \fakeverb{\prGraviersTemp} \\
+ AK30 & \PanneauTableau{AK30} & Embouteillage & \fakeverb{\prBouchonTemp} \\
+ AK31 & \PanneauTableau{AK31} & Accident & \fakeverb{\prAccidentTemp} \\
+ AK32 & \PanneauTableau{AK32} & Brouillard ou fumées épaisses & \fakeverb{\prBrouillardTemp} \\
+\end{longtblr}
+
+\pagebreak
+
\subsection{Panneaux d'Interdiction et de Priorité}
\begin{longtblr}[label=none,entry=none]{width=0.95\linewidth,hlines,vlines,colspec={Q[12.5mm,m,c]Q[m,c]X[l,m]Q[m,c,35mm]},row{1}={cyan!5,font=\Large\sffamily},row{2-Z}={font=\sffamily},cell{2-Z}{Z}={font=\footnotesize}}
@@ -251,11 +273,11 @@ Pour les panneaux de (début/fin de) limitation de vitesse, la commande associé
Type & Panneau & Signification & Alias \\
B0 & \PanneauTableau{B0} & Circulation interdite à tout véhicule dans les deux sens & \fakeverb{\prCircInterd} \\
B1 & \PanneauTableau{B1} & Sens interdit à tout véhicule & \fakeverb{\prSensInterdit} \\
- %B1j & \PanneauTableau{B1j} & Répétition d'interdiction d'accès à contresens de bretelles [\ldots] \\
+ B1j & \PanneauTableau{B1j} & Répétition d'interdiction d'accès à contresens de bretelles [\ldots] & \fakeverb{\prSensInterditJ} \\
B2a & \PanneauTableau{B2a} & Interdiction de tourner à gauche à la prochaine intersection & \fakeverb{\prInterdTournG} \\
B2b & \PanneauTableau{B2b} & Interdiction de tourner à droite à la prochaine intersection & \fakeverb{\prInterdTournD} \\
B2c & \PanneauTableau{B2c} & Interdiction de faire demi-tour sur la route suivie jusqu'à la prochaine intersection & \fakeverb{\prInterdDemiTour} \\
- B3 & \PanneauTableau{B31} & Interdiction de dépasser tous les véhicules à moteur autres que ceux à deux roues sans side-car & \fakeverb{\prInterdDepass} \\
+ B3 & \PanneauTableau{B3} & Interdiction de dépasser tous les véhicules à moteur autres que ceux à deux roues sans side-car & \fakeverb{\prInterdDepass} \\
B3a & \PanneauTableau{B3a} & Interdiction aux véhicules automobiles, véhicules articulés, trains doubles ou [\ldots] & \fakeverb{\prInterdVehic} \\
B4 & \PanneauTableau{B4} & Arrêt au poste de douane & \fakeverb{\prHalteDouane} \\
B5a & \PanneauTableau{B5a} & Arrêt au poste de gendarmerie & \fakeverb{\prHalteGendarm} \\
@@ -282,7 +304,7 @@ Pour les panneaux de (début/fin de) limitation de vitesse, la commande associé
B12 & \PanneauTableau{B12} & Accès interdit aux véhicules dont la hauteur, chargement compris, est supérieure [\ldots] & \fakeverb{\prInterdHaut} \\
B13 & \PanneauTableau{B13} & Accès interdit aux véhicules, véhicules articulés, trains doubles ou ensemble de véhicules [\ldots] & \fakeverb{\prInterdPoids} \\
B13a & \PanneauTableau{B13a} & Accès interdit aux véhicules pesant sur un essieu plus que le nombre indiqué & \fakeverb{\prInterdPoidsEssieu} \\
- B14\_x & Limite de vitesse & \PanneauTableau{B14_15}\PanneauTableau{B14_30}\PanneauTableau{B14_50}\PanneauTableau{B14_70}\PanneauTableau{B14_90}\PanneauTableau{B14_110}\PanneauTableau{B14_130} & \fakeverb{\prLimVites{x}}\\
+ B14\_x & Limite de vitesse & \PanneauTableau{B14_15}\PanneauTableau{B14_30}\PanneauTableau{B14_50}\PanneauTableau{B14_70}\PanneauTableau{B14_80}\PanneauTableau{B14_90}\PanneauTableau{B14_110}\PanneauTableau{B14_130} & \fakeverb{\prLimVites{x}}\\
B15 & \PanneauTableau{B15} & Cédez le passage à la circulation venant en sens inverse & \fakeverb{\prCedezInv} \\
B16 & \PanneauTableau{B16} & Signaux sonores interdits & \fakeverb{\prInterdSons} \\
B17 & \PanneauTableau{B17} & Interdiction aux véhicules de circuler sans maintenir entre eux un intervalle [\ldots] & \fakeverb{\prDistance} \\
@@ -461,6 +483,28 @@ Pour les panneaux de (début/fin de) limitation de vitesse, la commande associé
%CE100 & \PanneauTableau{CE100} & Indication de l’enseigne de la ou des sociétés commerciales offrant un [\ldots] \\
\end{longtblr}
+\subsection{Panneaux divers}
+
+\NewDocumentCommand\AffPanneauGenerique{ m }{%
+ \raisebox{-0.2\height}{\AffPanneau[height=1.5cm]{#1}} : \texttt{#1}
+}
+\begin{multicols}{3}
+ \AffPanneauGenerique{B50a} \\
+ \AffPanneauGenerique{B50b} \\
+ \AffPanneauGenerique{B50c} \\
+ \AffPanneauGenerique{B50d} \\
+ \AffPanneauGenerique{B50e} \\
+ \raisebox{-0.2\height}{\AffPanneau[height=1.5cm]{B51_30}} : \texttt{B51\_30} \\
+ \AffPanneauGenerique{B53} \\
+ \AffPanneauGenerique{B55} \\
+ \AffPanneauGenerique{B57} \\
+ \AffPanneauGenerique{B59} \\
+ \AffPanneauGenerique{B49VL} \\
+ \AffPanneauGenerique{C24a}
+\end{multicols}
+
+\pagebreak
+
\section{Aliases, de hauteur 2.5ex}
\begin{multicols}{3}
@@ -494,6 +538,19 @@ Pour les panneaux de (début/fin de) limitation de vitesse, la commande associé
\raisebox{-0.2\height}{\prVent[height=2.5ex]} : \verb+\prVent+
\end{multicols}
+\begin{multicols}{3}%temporaire
+ \raisebox{-0.2\height}{\prDosAneTemp[height=2.5ex]} : \verb+\prDosAneTemp+ \\
+ \raisebox{-0.2\height}{\prChausRetTemp[height=2.5ex]} : \verb+\prIntersectPrio+ \\
+ \raisebox{-0.2\height}{\prChaussGlissTemp[height=2.5ex]} : \verb+\prChaussGlissTemp+ \\
+ \raisebox{-0.2\height}{\prTravauxTemp[height=2.5ex]} : \verb+\prTravauxTemp+ \\
+ \raisebox{-0.2\height}{\prDangerTemp[height=2.5ex]} : \verb+\prDangerTemp+ \\
+ \raisebox{-0.2\height}{\prFeuxTemp[height=2.5ex]} : \verb+\prFeuxTemp+ \\
+ \raisebox{-0.2\height}{\prGraviersTemp[height=2.5ex]} : \verb+\prGraviersTemp+ \\
+ \raisebox{-0.2\height}{\prBouchonTemp[height=2.5ex]} : \verb+\prBouchonTemp+ \\
+ \raisebox{-0.2\height}{\prAccidentTemp[height=2.5ex]} : \verb+\prAccidentTemp+ \\
+ \raisebox{-0.2\height}{\prBrouillardTemp[height=2.5ex]} : \verb+\prBrouillardTemp+
+\end{multicols}
+
\begin{multicols}{3}
\raisebox{-0.2\height}{\prIntersect[height=2.5ex]} : \verb+\prIntersect+ \\
\raisebox{-0.2\height}{\prIntersectPrio[height=2.5ex]} : \verb+\prIntersectPrio+ \\
@@ -509,6 +566,7 @@ Pour les panneaux de (début/fin de) limitation de vitesse, la commande associé
\begin{multicols}{3}
\raisebox{-0.2\height}{\prCircInterd[height=2.5ex]} : \verb+\prCircInterd+ \\
\raisebox{-0.2\height}{\prSensInterdit[height=2.5ex]} : \verb+\prSensInterdit+ \\
+ \raisebox{-0.2\height}{\prSensInterditJ[height=2.5ex]} : \verb+\prSensInterditJ+ \\
\raisebox{-0.2\height}{\prInterdTournG[height=2.5ex]} : \verb+\prInterdTournG+ \\
\raisebox{-0.2\height}{\prInterdTournD[height=2.5ex]} : \verb+\prInterdTournD+ \\
\raisebox{-0.2\height}{\prInterdDemiTour[height=2.5ex]} : \verb+\prInterdDemiTour+ \\
@@ -543,6 +601,7 @@ Pour les panneaux de (début/fin de) limitation de vitesse, la commande associé
\raisebox{-0.2\height}{\prLimVites[height=2.5ex]{30}} : \verb+\prLimVites{30}+ \\
\raisebox{-0.2\height}{\prLimVites[height=2.5ex]{50}} : \verb+\prLimVites{50}+ \\
\raisebox{-0.2\height}{\prLimVites[height=2.5ex]{70}} : \verb+\prLimVites{70}+ \\
+ \raisebox{-0.2\height}{\prLimVites[height=2.5ex]{80}} : \verb+\prLimVites{80}+ \\
\raisebox{-0.2\height}{\prLimVites[height=2.5ex]{90}} : \verb+\prLimVites{90}+ \\
\raisebox{-0.2\height}{\prLimVites[height=2.5ex]{110}} : \verb+\prLimVites{110}+ \\
\raisebox{-0.2\height}{\prLimVites[height=2.5ex]{130}} : \verb+\prLimVites{130}+ \\
diff --git a/macros/latex/contrib/panneauxroute/tex/Indication/PanneauRouteC24a.pdf b/macros/latex/contrib/panneauxroute/tex/Indication/PanneauRouteC24a.pdf
new file mode 100644
index 0000000000..3b5ec7e8a4
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Indication/PanneauRouteC24a.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB14_80.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB14_80.pdf
new file mode 100644
index 0000000000..890d68ee51
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB14_80.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB1j.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB1j.pdf
new file mode 100644
index 0000000000..5a98b38672
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB1j.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB30_30.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB30_30.pdf
new file mode 100644
index 0000000000..2e15811016
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB30_30.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b1.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b1.pdf
new file mode 100644
index 0000000000..91952f39a8
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b1.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b2.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b2.pdf
new file mode 100644
index 0000000000..ec8a30e437
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b2.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b3.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b3.pdf
new file mode 100644
index 0000000000..92fd45c47f
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b3.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b4.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b4.pdf
new file mode 100644
index 0000000000..02b47faac0
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b4.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b5.pdf b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b5.pdf
new file mode 100644
index 0000000000..6d3a6716b7
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Interdiction/PanneauRouteB6b5.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB49VL.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB49VL.pdf
new file mode 100644
index 0000000000..d737b9b203
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB49VL.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50a.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50a.pdf
new file mode 100644
index 0000000000..a3ef5fd0ce
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50a.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50b.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50b.pdf
new file mode 100644
index 0000000000..f5bb08180f
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50b.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50c.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50c.pdf
new file mode 100644
index 0000000000..3fecb25982
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50c.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50d.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50d.pdf
new file mode 100644
index 0000000000..250253b066
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50d.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50e.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50e.pdf
new file mode 100644
index 0000000000..853cc07c53
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB50e.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB51_30.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB51_30.pdf
new file mode 100644
index 0000000000..08e96de617
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB51_30.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB52.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB52.pdf
new file mode 100644
index 0000000000..a14e1a111d
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB52.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB53.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB53.pdf
new file mode 100644
index 0000000000..13e4ce3ac3
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB53.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB54.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB54.pdf
new file mode 100644
index 0000000000..ce71fbd4b1
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB54.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB55.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB55.pdf
new file mode 100644
index 0000000000..099108818f
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB55.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB56.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB56.pdf
new file mode 100644
index 0000000000..a721b753c2
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB56.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB57.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB57.pdf
new file mode 100644
index 0000000000..f1b433d19b
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB57.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB58.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB58.pdf
new file mode 100644
index 0000000000..2f96cdbec4
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB58.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB59.pdf b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB59.pdf
new file mode 100644
index 0000000000..02bc961ed8
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Obligation/PanneauRouteB59.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/PanneauxRoute.sty b/macros/latex/contrib/panneauxroute/tex/PanneauxRoute.sty
index d94943962b..68021ef148 100644
--- a/macros/latex/contrib/panneauxroute/tex/PanneauxRoute.sty
+++ b/macros/latex/contrib/panneauxroute/tex/PanneauxRoute.sty
@@ -5,7 +5,11 @@
% : Licence CC BY-SA 3.0 for svg source (http://sig974.free.fr/?p=1520)
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{PanneauxRoute}[2023/08/14 v0.1.0 Panneaux de signalisation fr]
+\ProvidesPackage{PanneauxRoute}[2024/09/14 v0.1.2 Panneaux de signalisation fr]
+
+%------Historique
+% 0.1.2 Ajout des panneaux divers
+% 0.1.1 Ajout du panneau B14 (80)
% 0.1.0 Version initiale
%------Packages utiles
@@ -56,8 +60,20 @@
\NewDocumentCommand\prFinRoutePrio{ O{height=1.15cm} }{\AffPanneau[#1]{AB7}}
\NewDocumentCommand\prRondPoint{ O{height=1.15cm} }{\AffPanneau[#1]{AB25}}
+\NewDocumentCommand\prDosAneTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK2}}
+\NewDocumentCommand\prChaussGlissTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK4}}
+\NewDocumentCommand\prChausRetTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK3}}
+\NewDocumentCommand\prTravauxTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK5}}
+\NewDocumentCommand\prDangerTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK14}}
+\NewDocumentCommand\prFeuxTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK17}}
+\NewDocumentCommand\prGraviersTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK22}}
+\NewDocumentCommand\prBouchonTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK30}}
+\NewDocumentCommand\prAccidentTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK31}}
+\NewDocumentCommand\prBrouillardTemp{ O{height=1.15cm} }{\AffPanneau[#1]{AK32}}
+
\NewDocumentCommand\prCircInterd{ O{height=1.15cm} }{\AffPanneau[#1]{B0}}
\NewDocumentCommand\prSensInterdit{ O{height=1.15cm} }{\AffPanneau[#1]{B1}}
+\NewDocumentCommand\prSensInterditJ{ O{height=1.15cm} }{\AffPanneau[#1]{B1j}}
\NewDocumentCommand\prInterdTournG{ O{height=1.15cm} }{\AffPanneau[#1]{B2a}}
\NewDocumentCommand\prInterdTournD{ O{height=1.15cm} }{\AffPanneau[#1]{B2b}}
\NewDocumentCommand\prInterdDemiTour{ O{height=1.15cm} }{\AffPanneau[#1]{B2c}}
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK14.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK14.pdf
new file mode 100644
index 0000000000..8b388c78e4
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK14.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK17.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK17.pdf
new file mode 100644
index 0000000000..2784549080
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK17.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK2.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK2.pdf
new file mode 100644
index 0000000000..521f95a618
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK2.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK22.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK22.pdf
new file mode 100644
index 0000000000..7596e846eb
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK22.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK3.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK3.pdf
new file mode 100644
index 0000000000..3871b514b2
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK3.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK30.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK30.pdf
new file mode 100644
index 0000000000..2c0aac367a
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK30.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK31.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK31.pdf
new file mode 100644
index 0000000000..18e5e37d90
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK31.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK32.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK32.pdf
new file mode 100644
index 0000000000..7f59c16d00
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK32.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK4.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK4.pdf
new file mode 100644
index 0000000000..bcee3bff90
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK4.pdf
Binary files differ
diff --git a/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK5.pdf b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK5.pdf
new file mode 100644
index 0000000000..236c455af6
--- /dev/null
+++ b/macros/latex/contrib/panneauxroute/tex/Temporaire/PanneauRouteAK5.pdf
Binary files differ
diff --git a/macros/latex/contrib/pas-tableur/README b/macros/latex/contrib/pas-tableur/README
deleted file mode 100644
index 001719afbb..0000000000
--- a/macros/latex/contrib/pas-tableur/README
+++ /dev/null
@@ -1,37 +0,0 @@
-********* README file for pas-tableur ******************
-********************* ENGLISH *****************************
-
-This package uses TikZ to imitate spreadsheet.
-
-Licence
--------
-
-This program can be redistributed and/or modified under the terms
-of the LaTeX Project Public License Distributed from CTAN
-archives in directory macros/latex/base/lppl.txt.
-
-Documentation
--------------
-
-The documentation of the package is under the
-directory /doc/ in french language.
-
-Thanks to use pas-tableur.sty.
-
-********* Fichier README pour pas-tableur ******************
-********************** FRANCAIS *******************************
-
-Cette extension utilise TikZ pour imiter les feuilles de calculs sous tableur.
-
-Licence
--------
-
-L'extension peut être redistribuée et/ou modifiée sous les termes
-de la licence LaTeX Project Public (voir macros/latex/base/lppl.txt).
-
-Documentation
--------------
-
-La documentation de l'extension se trouve dans le répertoire /doc/.
-
-Merci d'utiliser pas-tableur.sty.
diff --git a/macros/latex/contrib/pas-tableur/README.txt b/macros/latex/contrib/pas-tableur/README.txt
new file mode 100644
index 0000000000..a5e7692b4e
--- /dev/null
+++ b/macros/latex/contrib/pas-tableur/README.txt
@@ -0,0 +1,40 @@
+************* README file for pas-tableur **********************
+********************* ENGLISH *****************************
+
+This package uses TikZ to imitate spreadsheets.
+
+Licence
+-------
+
+This program can be redistributed and/or modified under the terms
+of the LaTeX Project Public License Distributed from CTAN
+archives in directory macros/latex/base/lppl.txt.
+
+Documentation
+-------------
+
+The documentation of the package is in the ZIP file or under the
+directory /doc/ in french language.
+If you don't find it, go to the URL http://get-software.net/macros/latex/contrib/pas-tableur/doc/pas-tableur.pdf
+
+Thanks to use pas-tableur.sty.
+
+************* Fichier README pour pas-tableur **********************
+********************** FRANCAIS *******************************
+
+Cette extension utilise TikZ pour imiter des tableurs.
+
+Licence
+-------
+
+L'extension peut être redistribuée et/ou modifiée sous les termes
+de la licence LaTeX Project Public (voir macros/latex/base/lppl.txt).
+
+Documentation
+-------------
+
+La documentation de l'extension se trouve dans le fichier ZIP ou
+dans dans le répertoire /doc/.
+Si vous ne trouvez pas cette documentation, allez sur la page http://get-software.net/macros/latex/contrib/pas-tableur/doc/pas-tableur.pdf
+
+Merci d'utiliser pas-tableur.sty.
diff --git a/macros/latex/contrib/pas-tableur/doc/pas-tableur.pdf b/macros/latex/contrib/pas-tableur/doc/pas-tableur.pdf
index 4482df5893..796f888472 100644
--- a/macros/latex/contrib/pas-tableur/doc/pas-tableur.pdf
+++ b/macros/latex/contrib/pas-tableur/doc/pas-tableur.pdf
Binary files differ
diff --git a/macros/latex/contrib/pas-tableur/doc/pas-tableur.tex b/macros/latex/contrib/pas-tableur/doc/pas-tableur.tex
index 89a961a1d7..ede47ac5a8 100644
--- a/macros/latex/contrib/pas-tableur/doc/pas-tableur.tex
+++ b/macros/latex/contrib/pas-tableur/doc/pas-tableur.tex
@@ -31,13 +31,15 @@
\begin{center}
\begin{tcolorbox}[head]
{\bfseries\LARGE Documentation \texttt{pas-tableur} }\\[3mm]
-{\large Version 2.05 -- \today}
+{\large Version 2.06 -- \today}
\end{tcolorbox}
{\large
\href{http://www.mathweb.fr/contact.html}{St\'ephane Pasquet}}
-{\small\emph{Thanks to Susumu Tanimura for his contribution th the improvement of this package}}
+{\small\emph{Thanks to \textbf{Susumu Tanimura} for his contribution to the improvement of this package}}
+
+{\small\emph{Thanks to \textbf{Emiel van Miltenburg} for his contribution to the improvement of this package with the \textbackslash multimultiSelect macro.}}
\end{center}
\begin{tcolorbox}[toc]
@@ -372,6 +374,33 @@ Voyons un exemple pour comprendre la syntaxe :
\end{tikzpicture}
\end{tcblisting}
+\subsection{\textbackslash multimultiSelec : pour visualiser l'\'etirement}
+
+\begin{tcblisting}{listing}
+\sffamily
+\begin{tikzpicture}
+\begin{scope}[shift={(0,0)}]
+\tableur*[7]{A/1cm, B/1cm}
+\celtxt[width=1cm,align=right]{A}{1}{1}
+\celtxt[width=1cm,align=right]{A}{2}{2}
+\celtxt[width=1cm,align=right]{A}{3}{3}
+\multimultiSelec{A-1}{A-3}{A-6}
+\end{scope}
+
+\node at (2,-2) {\Large $\Rightarrow$};
+
+\begin{scope}[shift={(4,0)}]
+\tableur*[7]{A/1cm, B/1cm}
+\celtxt[width=1cm,align=right]{A}{1}{1}
+\celtxt[width=1cm,align=right]{A}{2}{2}
+\celtxt[width=1cm,align=right]{A}{3}{3}
+\celtxt[width=1cm,align=right]{A}{4}{4}
+\celtxt[width=1cm,align=right]{A}{5}{5}
+\celtxt[width=1cm,align=right]{A}{6}{6}
+\end{scope}
+\end{tikzpicture}
+\end{tcblisting}
+
\subsection{Les couleurs par d\'efaut}
@@ -411,6 +440,8 @@ Voyons un exemple pour comprendre la syntaxe :
\hline
\texttt{\textbackslash multiSelec\{A-1\}\{C-2\}} & Simule la s\'election des cellules allant de A1 \`a C2.\\
\hline
+\texttt{\textbackslash multimultiSelec\{A-1\}\{A-3\}\{A-6\}} & Simule l'étirement des cellules allant de A1 \`a A3 jusqu'à A6.\\
+\hline
\texttt{\{\textbackslash helvbx A1\}} & Affiche : \helvbx{A1}.\\
\hline
\end{tabularx}
diff --git a/macros/latex/contrib/pas-tableur/latex/pas-tableur.sty b/macros/latex/contrib/pas-tableur/latex/pas-tableur.sty
index a2de8687f2..84928cd92d 100644
--- a/macros/latex/contrib/pas-tableur/latex/pas-tableur.sty
+++ b/macros/latex/contrib/pas-tableur/latex/pas-tableur.sty
@@ -1,6 +1,6 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
-% pas-tableur.sty v2.05 encodage : UTF8 %
+% pas-tableur.sty v2.06 encodage : UTF8 %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -8,8 +8,8 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-\def\fileversion{2.04}
-\def\filedate{2023/04/16}
+\def\fileversion{2.06}
+\def\filedate{2024/09/14}
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesClass{pas-tableur}[%
\filedate\space v\fileversion\space
@@ -102,7 +102,14 @@
%
%==> Macro etoilee : \tableur*{A/<l1>,B/<l2>,...}. Tableur avec colonnes de largeurs differentes
%
-\newcommand{\tableur@star}[2][1]
+% Modifiée dans la version 2.06 sur la suggestion de Emiel van Miltenburg
+
+\newcommand{\tableur@star}[2][1]
+ {
+ \IfSubStr{#2}{,}{\tableur@star@columns[#1]{#2}}{\tableur@star@onecolumn[#1]{#2}}
+ }
+
+\newcommand{\tableur@star@columns}[2][1]
{%
\xdef\list@of@col{#2}%
% Placement de la premiere cellule en-tête
@@ -139,7 +146,39 @@
}%
}%
\fi%
- } % --> Fin de \tableur*
+ }
+
+\newcommand{\tableur@star@onecolumn}[2][1]
+ {%
+ % Placement de la premiere cellule en-tête
+ \StrBefore{#2}{/}[\first@name] % Récupère la partie avant "/"
+ \StrBehind{#2}{/}[\first@width] % Récupère la partie après "/"
+ \pastab@draw@cell{\first@width}{\first@name}{0}{}{\first@name}
+ % Placement des en-têtes de lignes
+ \pastab@draw@cell{\numline@width}{numline1}{2}{\first@name.south west}{1}
+ \ifnum#1>1%
+ \foreach \num@line [remember=\num@line as \lastnum (initially 1)] in {2,...,#1}
+ {%
+ \pastab@draw@cell{\numline@width}{numline\num@line}{3}{numline\lastnum.south east}{\num@line}%
+ }%
+ \fi%
+ % Trace de la grille
+ \foreach \name/\w in {#2}
+ {%
+ \pastableur@grid{\w}{\name}{1}{\name.south}%
+ }%
+ \ifnum#1>1%
+ \foreach\numline [remember=\numline as \lastnumline (initially 1)] in {2,...,#1}
+ {%
+ \foreach \name/\w in {#2}
+ {%
+ \pastableur@grid{\w}{\name}{\numline}{cell\name-\lastnumline.south}%
+ }%
+ }%
+ \fi%
+ }
+
+% --> Fin de \tableur*
%
%==> Macro non etoilee : \tableur{A,B,C,...} ou \tableur{A-C}
%
@@ -302,7 +341,6 @@
\newcommand*\multiSelec[2]
{%
\fill[blueSelec,opacity=0.5] ($(cell#1.north west)+(0.25pt,-0.25pt)$) rectangle ($(cell#2.south east)+(-0.25pt,0.25pt)$);%
- \draw[very thick] (cell#1.south west) rectangle (cell#1.north east);%
\fill[black] ($(cell#2.south east)+(-0.5pt,0.5pt)$) rectangle +(3pt,-3pt);%
%
%==> On colorie les en-têtes "colonnes"
@@ -328,10 +366,51 @@
\pastableur@colorcell{numline\i}{0}
\node[celhead,minimum width=\numline@width,minimum height=\line@height] at (numline\i) {\helvbx\i};%
}%
+ \draw[very thick] (cell#1.south west) rectangle (cell#1.north east);%
}% fin de \multiSelec
%
%
%
+
+%
+% Selection de plusieurs cellules : \multimultiSelec{A-1}{A-2}{A-3}
+% Proposition de Emiel van Miltenburg pour la version 2.06 le 2024/09/14
+%
+\newcommand*\multimultiSelec[3]
+{%
+ \fill[blueSelec,opacity=0.5] ($(cell#1.north west)+(0.25pt,-0.25pt)$) rectangle ($(cell#3.south east)+(-0.25pt,0.25pt)$);%
+
+ \fill[black] ($(cell#3.south east)+(-0.5pt,0.5pt)$) rectangle +(3pt,-3pt);%
+ %
+ %==> On colorie les en-têtes "colonnes"
+ %
+ \StrChar{#1}{1}[\str@start] % par exemple, "G"
+ \StrChar{#2}{1}[\str@end] % par exemple, "L"
+ \StrBetween{\col@names}{\str@start}{\str@end}[\str@col] % retourne par exemple "HIJK"
+ \edef\str@col{\str@start\str@col\str@end} % retourne alors "GHIJKL"
+ \StrLen{\str@col}[\nb@columns] % nombre d'en-têtes "colonnes" \`a colorier
+ \foreach \i in {1,...,\nb@columns}
+ {%
+ \StrChar{\str@col}{\i}[\name]%
+ \pastableur@colorcell{\name}{1}
+ \node at (\name) {\helvbx\name};%
+ }%
+ %
+ %==> On colorie les en-têtes "lignes"
+ %
+ \StrGobbleLeft{#1}{2}[\first@num]%
+ \StrGobbleLeft{#2}{2}[\second@num]%
+ \foreach \i in {\first@num,...,\second@num}
+ {%
+ \pastableur@colorcell{numline\i}{0}
+ \node[celhead,minimum width=\numline@width,minimum height=\line@height] at (numline\i) {\helvbx\i};%
+ }%
+ \draw[very thick] (cell#2.south west) rectangle (cell#1.north east);%
+}% fin de \multimultiSelec
+%
+%
+%
+
\newlength\pastableur@decal
\newcommand{\pastableur@colorcell}[2] % #1 : name, #2 : 0=en-tetes "lignes" / 1=en-tetes "colonnes"
{%
diff --git a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
index 9536e081a4..a3369c7b74 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
+++ b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
@@ -4,7 +4,52 @@ first release 0.95a, 2021-02-23 will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
this project uses date-based 'snapshot' version identifiers.
+
+## [2024-09-29]
+
+### Changed
+
+ - generic driver:
+ expand values of pdfauthor and similar to allow the use of commands
+
+### Fixed
+ - color-ltx.sty: adapted \color@endgroup to change in LaTeX format.
+
+## [2024-09-13]
+Version: 2024-09-02 v0.96l
+
+### Added
+ - ltdocinit.dtx: add \LogDocumentProperties
+ - l3pdfmeta: Support additions of external schemas like ZUGferd with
+ \pdfmeta_xmp_schema_new:nnn \pdfmeta_xmp_property_new:nnnnn
+
+### Fixed
+ - colorspace-patches-tmp-ltx.sty: fixes hook use, issue #78
+
+## [2024-09-02]
+Version: 2024-09-02 v0.96k
+
+### Added
+ - l3pdfmeta.dtx: add standard test `Catalog_no_OCProperties_AS`, (issue#77)
+
+### Fixed
+ - l3pdfmeta.dtx: remove Catalog_no_OCProperties from pdf/a-2b onwards (issue#77)
+
+## [2024-08-17]
+Version: 2024-08-17 v0.96j
+
+### Added
+
+ - added a verification 'omit_CID' used by PDF/a-2 and newer with luatex.
+ - warnings if pdfversion does not fit ua-1 and ua-2
+
+### Fixed
+ - add xmp-resource for pdfaid:rev (tagging-project issue#375)
+ - empty color in \bookmarksetup https://github.com/ho-tex/bookmark/issues/11
+ - unneeded warning with bookmarks=false, https://github.com/latex3/hyperref/issues/352
+
## [2024-05-23]
+Version: 2024-05-23, 0.96i
### Fixed
- l3pdfmeta: adapted wtpdf declaration uri to corrected version.
@@ -30,7 +75,7 @@ Version: 2024-03-26, 0.96g
### Added
- l3pdfmeta.dtx: interface for xmpRights:Marked.
- - l3pdfmeta.dtx: add wtpdf declations if ua-2 is used.
+ - l3pdfmeta.dtx: add wtpdf declarations if ua-2 is used.
### Changed
- removed unneeded firstaids for fontspec, transparent and pdflscape
@@ -39,7 +84,7 @@ Version: 2024-03-26, 0.96g
Version: 2024-03-01, 0.96f
### Changed
- - format of /F in filespec: use utf8/string for better compability with ZUGFeRD processor.
+ - format of /F in filespec: use utf8/string for better compatibility with ZUGFeRD processor.
- added /Contents entry to URI and GoTo links for better UA support.
## [2024-02-22]
@@ -48,7 +93,7 @@ Version: 2024-02-22, 0.96e
### Changed
- date of UA-2 is now 2024
- tagpdf-base is now required
- - xmp metadata use x-default for the main language for better compability with some viewers
+ - xmp metadata use x-default for the main language for better compatibility with some viewers
- suppress info dictionary with pdf/ua-2
## [2023-12-09]
@@ -70,7 +115,7 @@ Version: 2023-12-09, 0.96d
Version: 2023-11-17, 0.96c
- remove dependency to ltxcmds in the hyperref driver
- - correct a local/global assigment
+ - correct a local/global assignment
- remove l3ref-tmp.sty
- l3pdffile.dtx: change mimetype of xml to application/xml
diff --git a/macros/latex/contrib/pdfmanagement-testphase/README.md b/macros/latex/contrib/pdfmanagement-testphase/README.md
index e3c9c1be02..7862282bf1 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/README.md
+++ b/macros/latex/contrib/pdfmanagement-testphase/README.md
@@ -1,6 +1,6 @@
# LaTeX PDF management testphase bundle
-Version: 0.96i, 2024-05-23
+Version: 0.96m, 2024-09-29
This package is used during a test phase to load the new PDF management code
of LaTeX.
diff --git a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
index 08170653e8..a8ced5210e 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
@@ -24,7 +24,7 @@
%% This file has the LPPL maintenance status "maintained".
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{color-ltx}[2024-05-23 v0.96i
+\ProvidesPackage{color-ltx}[2024-09-29 v0.96m
Standard LaTeX Color (patched for l3color, part of pdfmanagement-testphase, original version 2022/01/06 v1.3d) (DPC)]
\edef\Gin@codes{%
\catcode`\noexpand\^^A\the\catcode`\^^A\relax
@@ -186,7 +186,7 @@
\InputIfFileExists{mathcolor.ltx}{}{}
\def\color@setgroup{\begingroup\set@color}
\let\color@begingroup\begingroup
-\def\color@endgroup{\endgraf\endgroup}
+\def\color@endgroup{\endgraf\@endpefalse\endgroup}
\def\color@hbox{\hbox\bgroup\color@begingroup}
\def\color@vbox{\vbox\bgroup\color@begingroup}
\def\color@endbox{\color@endgroup\egroup}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty
index 95a0b0a612..8a7c2a1b32 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty
@@ -19,8 +19,9 @@
%
% for those people who are interested.
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesExplPackage{colorspace-patches-tmp-ltx}{2024-05-23}{0.96i}
- {temporay patches to for the colorspace package to test pdfresource management ... UF}
+\ProvidesExplPackage{colorspace-patches-tmp-ltx}{2024-09-29}{0.96m}
+ {temporary patches for the colorspace package to test pdfresource management ... UF}
+
% colorspace can define more models, that l3color can't yet handle.
\cs_set_protected:Npn \expl@color@set@@nnn #1#2#3
@@ -71,7 +72,7 @@
\RemoveFromHook{begindocument}[colorspace]
-\hook_gput_code:nnn {enddocument} {pdf}
+\hook_gput_code:nnn {begindocument/end} {pdf}
{
\def\spc@elt#1#2
{
diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
index 9a8ee06546..d4335140f5 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
@@ -82,7 +82,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -150,7 +150,7 @@
%
% \section{\enquote{Metadata}}
%
-% \enquote{Metadata}, informations about the document, are stored in a PDF in two
+% \enquote{Metadata}, information about the document, are stored in a PDF in two
% places: The |/Info| dictionary and the XMP-metadata. \pkg{hyperref} only handles the
% |/Info| dictionary. The XMP-metadata are added by code from \pkg{l3pdfmeta}.
% (without the pdfmanagement the XMP-metadata can be added with packages like \pkg{pdfx} and
@@ -170,7 +170,7 @@
% this had to patch an number of internal \pkg{hyperref} commands---which is a problem
% if the internal commands change (as happens with this new driver)
% \item \pkg {hyperref} (and also \pkg{hyperxmp})
-% tries to deduce some datas from document commands like
+% tries to deduce some data from document commands like
% \cs{title} or \cs{author}---something that worked reasonably well when only
% some standard classes with well-known definitions of these command existed,
% but gets problematic with classes and packages which define
@@ -190,7 +190,7 @@
%
% \item It is possible to store titles in more than one language. If the value begins with
% an \enquote{optional argument} which represents a language tag, the value is taken
-% as a comma list and splitted. The first value is used for the Info dictionary,
+% as a comma list and split. The first value is used for the Info dictionary,
% the others are used in the XMP-metadata. Commas in a title must then be
% protected with braces:
%
@@ -211,7 +211,7 @@
%
% \item |pdflang| is deprecated. Instead \cs{DocumentMetadata} should be used:
% \begin{verbatim}
-% \cs{DocumentMetadata}{lang=de-DE}
+% \DocumentMetadata{lang=de-DE}
% \end{verbatim}
%
% The value can be retrieved as |document/lang|.
@@ -506,7 +506,7 @@
% and |citebordercolor| has been reduced. A package like \pkg{hyperref}
% can't keep track of such semantic
% contexts like cite, acronym, glossaries and special references and maintain keys for
-% them. The keys are not completly dropped as this would affect packages like
+% them. The keys are not completely dropped as this would affect packages like
% \pkg{natbib}, but they have been separated and are no longer affected by
% group keys like |allcolors| but must be set individually instead.
%
@@ -768,7 +768,7 @@
% location. So |0 -100 200 400| will give a \enquote{box} of width 200bp,
% height 400bp and depth 100dp that the destination should encompass.
% Missing numbers will be set to 0. But one should be aware that is it is quite
-% unpredicable how viewers which support |FitR| handles zero sizes.
+% unpredictable how viewers which support |FitR| handles zero sizes.
%
% \item |pdfstartview| and |pdfremotestartview| will pass
% the values as absolute coordinates.
@@ -818,7 +818,7 @@
% key of the annotation array and in similar keys is set. It does not affect
% the text and graphics colors in the page stream.
% Possible choices are |rgb| (three numbers in the array) and |cmyk| (four numbers).
-% While the PDF reference allows four numbers, PDF readers don't necessarly handle
+% While the PDF reference allows four numbers, PDF readers don't necessarily handle
% this correctly, so the value can be wrong.
%
% \DescribeHypkey{destlabel} This is a boolean key. Currently it must be set
@@ -849,7 +849,7 @@
% /Subtype/Link/A<</S/GoToR /F (mwe2.dvi)>>
% /Subtype/Link/A<</S/GoToR /F (mwe3.dvi)>>
% \end{verbatim}
-% Typically PDF viewer can handle only GoToR annotions pointing to a PDF.
+% Typically PDF viewer can handle only GoToR annotations pointing to a PDF.
% So normally the default value |pdf| of this key should not be changed.
% \DescribeHypkey{nesting}\label{key:nesting}%
% This key is useless in PDF context. The boolean is only used in
@@ -965,7 +965,7 @@
%<@@=hyp>
% \end{macrocode}
% \begin{macrocode}
-\ProvidesFile{hgeneric-testphase.def}[2024-05-23 v0.96i %
+\ProvidesFile{hgeneric-testphase.def}[2024-09-29 v0.96m %
generic Hyperref driver for the LaTeX PDF management testphase bundle]
\RequirePackage{etoolbox} %why?
@@ -1456,7 +1456,7 @@
\pdfstringdefDisableCommands{\let\hrefpdf\@@_secondoftwowithopt:wnn}
\pdfstringdefDisableCommands{\let\hrefrun\@@_secondoftwowithopt:wnn}
% \end{macrocode}
-% \section{Compability commands}
+% \section{Compatibility commands}
% \subsection{Metadata}
% A number of values should be accessible from other packages. Until now
% packages like \pkg{hyperxmp} used variables like \cs{@pdfauthor}. As they are
@@ -1467,7 +1467,7 @@
%\tl_set:cn {@#1}{#2}
\AddToDocumentProperties[hyperref]{#1}{#2}
}
-\cs_generate_variant:Nn \@@_store_metadata:nn {en,ne,ee}
+\cs_generate_variant:Nn \@@_store_metadata:nn {en,ne,ee,no,eo}
% \end{macrocode}
% \subsection{citecolor}
% cite is a link context. So we define a hook, and the keys in terms of this hook.
@@ -1527,19 +1527,29 @@
{
\define@key{BKM}{color}
{
- \__hyp_color_set:ne {__hyp/tmpa}{#1}
- \color_export:nVN
- {__hyp/tmpa}
- \g__hyp_bordercolormodel_str
- \BKM@color
+ \tl_if_blank:nTF {#1}
+ { \cs_set_eq:NN\BKM@color\@empty }
+ {
+ \__hyp_color_set:ne {__hyp/tmpa}{#1}
+ \color_export:nVN
+ {__hyp/tmpa}
+ \g__hyp_bordercolormodel_str
+ \BKM@color
+ }
}
}
-\legacy_if:nT { Hy@bookmarks }
+\legacy_if:nTF { Hy@bookmarks }
{
\AddToHook{begindocument/before}[hyperref/bookmark]
{
\RequirePackage{bookmark}
- }
+ }
+ }
+% \end{macrocode}
+% empty hook chunk to ensure that the chunk exists.
+% \begin{macrocode}
+ {
+ \AddToHook{begindocument/before}[hyperref/bookmark]{}
}
\legacy_if:nT {Hy@draft}
{
@@ -1578,6 +1588,7 @@
% \begin{variable}
% {
% \l_@@_tmpa_tl,
+% \l_@@_tmpb_tl,
% \l_@@_tmpa_seq,
% \l_@@_tmpa_int,
% \l_@@_tmpa_box,
@@ -1586,6 +1597,7 @@
% \begin{macrocode}
\box_new:N \l_@@_tmpa_box
\tl_new:N \l_@@_tmpa_tl
+\tl_new:N \l_@@_tmpb_tl
\seq_new:N \l_@@_tmpa_seq
\int_new:N \l_@@_tmpa_int
\str_new:N \l_@@_tmpa_str
@@ -1939,6 +1951,7 @@
{
\@@_text_pdfstring:noN { #1 }{ \l_@@_text_enc_info_print_tl } #2
}
+\cs_generate_variant:Nn \@@_text_pdfstring_info:nN {eN,oN}
% \end{macrocode}
% \end{macro}
%
@@ -2188,7 +2201,7 @@
% \end{macrocode}
%
% Now the three \pkg{hyperref} commands.
-% The splitted commands \cs{hyper@linkstart} and \cs{hyper@linkend} are used for
+% The split commands \cs{hyper@linkstart} and \cs{hyper@linkend} are used for
% footnotemarks, toc and natbib-cites.
% \begin{function}{\hyper@link}
% \begin{syntax}
@@ -3945,16 +3958,20 @@
% but we allow to set an empty value.
% If the value begin with an optional argument, we assume a multilanguage clist and
% use only the first value.
+% The values are expanded with \cs{text_expand:n}
% \begin{macrocode}
\regex_new:N\l_@@_optlang_regex
\regex_set:Nn\l_@@_optlang_regex {\A\[([A-Za-z\-]+)\](.*)}
+\cs_generate_variant:Nn\clist_item:nn{on}
\cs_new_protected:Npn \@@_setup_info_key:nn #1 #2
{
\keys_define:nn { hyp }
{
pdf#1 .code:n =
{
- \tl_if_blank:nTF {##1}
+ \tl_set:Ne\l_@@_tmpa_tl {\text_expand:n{##1}}
+ \@@_store_metadata:no {pdf#1}{\l_@@_tmpa_tl}
+ \tl_if_empty:NTF \l_@@_tmpa_tl
{
\str_case:nnF { #1 }
{
@@ -3974,45 +3991,44 @@
}
}
{
- \tl_set:Ne\l_@@_tmpa_tl {\clist_item:nn{##1}{1}}
+ \tl_set:Ne\l_@@_tmpb_tl {\clist_item:on{\l_@@_tmpa_tl}{1}}
\exp_args:NNV
- \regex_extract_once:NnN \l_@@_optlang_regex \l_@@_tmpa_tl\l_@@_tmpa_seq
+ \regex_extract_once:NnN \l_@@_optlang_regex \l_@@_tmpb_tl\l_@@_tmpa_seq
\seq_if_empty:NTF\l_@@_tmpa_seq
{
- \@@_text_pdfstring_info:nN {##1}\l_@@_tmpa_str
+ \@@_text_pdfstring_info:oN {\l_@@_tmpa_tl}\l_@@_tmpa_str
}
- {
- \exp_args:Ne
- \@@_text_pdfstring_info:nN {\seq_item:Nn \l_@@_tmpa_seq{3}}\l_@@_tmpa_str
+ {
+ \@@_text_pdfstring_info:eN {\seq_item:Nn \l_@@_tmpa_seq{3}}\l_@@_tmpa_str
}
\str_if_eq:VnF\l_@@_tmpa_str{<FEFF>}
{
\pdfmanagement_add:nne {Info}{#2}{\l_@@_tmpa_str}
}
- }
- \@@_store_metadata:nn {pdf#1}{##1}
+ }
}
}
\keys_define:nn { hyp / info }
{
#2 .code:n =
{
+ \tl_set:Ne\l_@@_tmpa_tl {\text_expand:n{##1}}
+ \@@_store_metadata:eo {pdf\str_lowercase:n{#1}}{\l_@@_tmpa_tl}
\tl_if_blank:nTF {##1}
{
\pdfmanagement_remove:nn {Info}{#2}
}
{
- \@@_text_pdfstring_info:nN {##1}\l_@@_tmpa_str
+ \@@_text_pdfstring_info:oN {\l_@@_tmpa_tl}\l_@@_tmpa_str
\str_if_eq:VnF\l_@@_tmpa_str{<FEFF>}
{
\pdfmanagement_add:nne {Info}{#2}{\l_@@_tmpa_str}
}
- }
- \exp_args:Ne \@@_store_metadata:nn {pdf\str_lowercase:n{#1}}{##1}
+ }
}
,unknown .code:n =
- {
- \@@_text_pdfstring_info:nN {##1}\l_@@_tmpa_str
+ {
+ \@@_text_pdfstring_info:eN {##1}\l_@@_tmpa_str
\str_if_eq:VnF\l_@@_tmpa_str{<FEFF>}
{
\exp_args:Nno
@@ -5204,7 +5220,7 @@
}
\ExplSyntaxOff
\ExplSyntaxOn
-% Does an appeareance dict make sense here?
+% Does an appearance dict make sense here?
\def\PDFForm@Text
{
/Subtype/Widget
diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
index 3ff91e5445..4a558b98fb 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
index f655a84c26..cf42a6e22c 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
@@ -45,7 +45,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
%
@@ -56,32 +56,32 @@
% \begin{macrocode}
%<drivers>\ProvidesExplFile
%<*dvipdfmx>
- {l3backend-testphase-dvipdfmx.def}{2024-05-23}{}
+ {l3backend-testphase-dvipdfmx.def}{2024-09-29}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3backend-testphase-dvips.def}{2024-05-23}{}
+ {l3backend-testphase-dvips.def}{2024-09-29}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-testphase-dvisvgm.def}{2024-05-23}{}
+ {l3backend-testphase-dvisvgm.def}{2024-09-29}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvisvgm}
%</dvisvgm>
%<*luatex>
- {l3backend-testphase-luatex.def}{2024-05-23}{}
+ {l3backend-testphase-luatex.def}{2024-09-29}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (LuaTeX)}
%</luatex>
%<*pdftex>
- {l3backend-testphase-pdftex.def}{2024-05-23}{}
+ {l3backend-testphase-pdftex.def}{2024-09-29}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (pdfTeX)}
%</pdftex>
%<*xdvipdfmx>
- {l3backend-testphase-xetex.def}{2024-05-23}{}
+ {l3backend-testphase-xetex.def}{2024-09-29}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: XeTeX}
%</xdvipdfmx>
% \end{macrocode}
% \subsection{Variants}
-% We need to generate temporarly a few e-types variants of kernel backend commands.
+% We need to generate temporarily a few e-types variants of kernel backend commands.
% These can be removed once the kernel provides them.
% \begin{macrocode}
%<@@=pdf>
@@ -1818,7 +1818,7 @@
%</drivers>
% \end{macrocode}
% \end{macro}
-% Now the driver dependant parts.
+% Now the driver dependent parts.
% By default the new commands are simply copies of the original commands.
% We adapt them then for the engines and engine version which provide support
% for structure destinations.
@@ -2355,7 +2355,7 @@
% \end{macro}
% \subsection{Settings for regression tests}
% When doing pdf based regression tests some meta data in the pdf should have
-% fixed values to get identical pdf's. We define here the backend dependant
+% fixed values to get identical pdf's. We define here the backend dependent
% part. The main command is then in l3pdfmeta
% \begin{macrocode}
%<*drivers>
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
index 09b998ff81..4be7d7fac3 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
index ef02e9cf5a..83c96ff5f8 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -340,7 +340,7 @@
% lead to the unpleasant result that header and footer are part of the link too.
% Since texlive 2021 pdflatex and lualatex has commands similar to a special already
% included in dvipdfmx which allows to interrupt a link. The commands must be used
-% with care: typically they must be outside a box that would be catched by link to
+% with care: typically they must be outside a box that would be caught by link to
% have the wanted effect.
%
% \end{function}
@@ -432,7 +432,7 @@
% \begin{macrocode}
%<@@=pdfannot>
%<*header>
-\ProvidesExplPackage{l3pdfannot}{2024-05-23}{0.96i}
+\ProvidesExplPackage{l3pdfannot}{2024-09-29}{0.96m}
{PDF-annotations}
\RequirePackage{l3pdfdict}
%</header>
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
index 1000505030..986283a9d5 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
index 514595e41c..78a7b74bbb 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -208,7 +208,7 @@
% \begin{macrocode}
%<@@=pdfdict>
%<*header>
-\ProvidesExplPackage{l3pdfdict}{2024-05-23}{0.96i}
+\ProvidesExplPackage{l3pdfdict}{2024-09-29}{0.96m}
{Tools for PDF dictionaries (LaTeX PDF management testphase bundle)}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
index 555a105c9a..fe89538394 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
index f4d71c50e8..07c598c9a5 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -251,10 +251,10 @@
%
% \meta{URL} can be a mail address and should then start with |mailto:|.
% A subject can be attached with |?subject=...|.
-% This normally works quite fine as it only needs a correctly working mail programm.
+% This normally works quite fine as it only needs a correctly working mail program.
% (But for some unknown reason my mail program don't like mail addresses with hyphens in them).
%
-% Alternativly it should be an URL of a script, which should return the correct
+% Alternatively it should be an URL of a script, which should return the correct
% answer (which one this is, is rather unclear).
%
% \end{function}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
index 34fe45aec2..b9c29679d4 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
index 7f702d2934..bc66577913 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
@@ -64,7 +64,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -380,7 +380,7 @@
% checked.
% User appearances should have two versions and follow the naming
% module/\meta{name}/Yes and module/\meta{name}/Off.
-% \begin{macro}
+% \begin{macro}[int]
% {
% \@@_checkbox_default_appearances:,
% pdffield/checkbox/default/Yes,
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
index 3ce7e4651f..81718e2d11 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
index e645449393..609438b81a 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -77,11 +77,11 @@
% This means that various data will have to be set, and the sorting matters.
% The module here will assume that the various values are stored in sequences:
%
-% \ExplSyntaxOn
+% \begin{verbatim}
% \seq_const_from_clist:Nn \c_my_values_seq {hippo,duck,bear}
% \seq_const_from_clist:Nn \c_my_displayvalues_seq {Sieglinde,,Bär}
-% \seq_const_from_clist:Nn \c_my_defaultvalues_seq {duck,Bär} %check if export or altname ...
-% \ExplSyntaxOff
+% \seq_const_from_clist:Nn \c_my_defaultvalues_seq {duck,Bär}
+% \end{verbatim}
%
% Only the first sequence is required.
% Empty values in the display sequence are possible, then the normal value is used.
@@ -103,9 +103,12 @@
%
%
% \subsection{Appearance}
-% hm ....
+% By default the fields use a grey background as appearance, another appearance
+% can be defined with |\pdffield_appearance:nn| (described in the documentation of
+% l3pdffield) or directly with |\pdfxform_new:nnn| (in l3pdfxfom)
+% and then used with the |appearance| as in other form fields.
%
-% \bigskip
+%
% \subsection{Commands}
% \begin{function}{\pdffield_choice:n}
% \begin{syntax}
@@ -114,9 +117,9 @@
% This creates a choice field.
% The list of allowed keys is described below.
% The \meta{key val list} should at least set the name,
-% without it the default |choice| is used. Choice fields with the same
+% without it the default |choice| is used. Choice fields with the same name
% belong to the same field and if changed, the others are changed accordingly.
-% The default appearance ...
+% As default appearance we reuse the text appearance: a simple gray background.
%
% The first choice field setups the field and so should setup values and field flags.
% \end{function}
@@ -149,6 +152,14 @@
% \end{syntax}
% This allows to set default keys for a choice field.
% \end{function}
+
+% \begin{function}{type}
+% \begin{syntax}
+% |type| = \texttt{combo}\verb+|+\texttt{combo-edit}\verb+|+\texttt{list}
+% \end{syntax}
+% This key is a choice key that allows to set the three types.
+% \end{function}
+
%
% \begin{function}{name,T}
% \begin{syntax}
@@ -443,7 +454,7 @@
% ,\l_@@_choice_opt_seq
% }
% variables to hold the value, the default value, and display variants. The opt
-% set will be used to build the content of opt
+% seq will be used to build the content of opt
% \begin{macrocode}
\seq_new:N \l_@@_choice_values_seq
\seq_new:N \l_@@_choice_defaultvalues_seq
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
index f2fe192ac0..ba209d6036 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
index b030de3323..ac3f39bc1d 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
@@ -55,7 +55,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -100,9 +100,9 @@
%^^A \group_end:%
% \bigskip
% \subsection{Commands}
-% \begin{function}{\pdffield_push:n}
+% \begin{function}{\pdffield_pushbutton:n}
% \begin{syntax}
-% \cs{pdffield_push:n}\Arg{key val list}
+% \cs{pdffield_pushbutton:n}\Arg{key val list}
% \end{syntax}
% This creates a pushbutton. Unlike radio buttons and checkboxes pushbuttons
% don't change their state and they don't store or represent a value.
@@ -422,7 +422,7 @@
% \subsection{Appearances}
% The default appearances are a rectangular frame with some text.
%
-% \begin{macro}
+% \begin{macro}[int]
% {
% \@@_pushbutton_default_appearances:,
% pdffield/pushbutton/default-n,
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
index fc5114da30..856c4cd135 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
index 8e16ebb596..d8a3e52f96 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
@@ -83,7 +83,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -610,7 +610,7 @@
% Every appearance should have two versions and follow the naming
% module/\meta{name}/Yes and module/\meta{name}/Off.
%
-% \begin{macro}
+% \begin{macro}[int]
% {
% \@@_radio_default_appearances:,
% pdffield/radio/default/Yes,
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
index d182341cca..ad0c890ad0 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
index 0e3fe0c92d..3100f6efc4 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
index c1968b575e..94600e8487 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
index c888fab7c4..f26b603c8f 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
@@ -69,7 +69,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -87,7 +87,7 @@
% \usepackage{l3pdffield-testphase}
% \end{verbatim}
%
-% The source code is splitted into various submodules. All code is combined in the
+% The source code is split into various submodules. All code is combined in the
% sty, but the documentation is in individual PDF.
% \begin{description}
% \item[\texttt{l3pdffield}] This contains the basic commands and keys
@@ -199,7 +199,7 @@
% \subsection{The look of a field: Appearances and other settings}
%
% The look of widget annotation of a field can be set with various keys. The keys developed over
-% time and some of them superseed older ones. There is for example the simple
+% time and some of them supersede older ones. There is for example the simple
% |/Border|, the more sophisticated |/BS| (\enquote{border style dictionary}),
% the \enquote{dynamic appearance dictionary} |MK|, with lots of keys,
% and the appearance dictionary |/AP| which
@@ -631,7 +631,7 @@
% fields without sortkey will get an empty sortkey and so be at the begin,
% the order of fields with the same sortkey is not defined.
% The module only sorts fields created with the commands of this module, the
-% sorting of fields created by \pkg{hyperref} is independant.
+% sorting of fields created by \pkg{hyperref} is independent.
% \end{function}
%
% \begin{function}{DA}
@@ -972,7 +972,7 @@
%<*package>
%<@@=pdffield>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesExplPackage{l3pdffield-testphase}{2024-05-23}{0.96i}%
+\ProvidesExplPackage{l3pdffield-testphase}{2024-09-29}{0.96m}%
{form fields}
% \end{macrocode}
% \subsection{hyperref specific command}
@@ -2014,7 +2014,7 @@
% PV = pagevisible, PI = pageinvisible
% \begin{macro}
% {
-% AA/Fo,onfocus, AA/Bl,onblur, AA/D,onmousedown, AA/U,onmouseup,
+% AA/*,AA/Fo,onfocus, AA/Bl,onblur, AA/D,onmousedown, AA/U,onmouseup,
% AA/E,onenter, AA/X,onexit, AA/PO,pageopen, AA/PC,pageclose,
% AA/PV,pagevisible, AA/PI,pageinvisible
% }
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
index 914e4d07b3..440c2a3007 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
index 205dcfd7ba..431b72ff24 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -398,9 +398,9 @@
%
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage{l3pdffile}{2024-05-23}{0.96i}
+\ProvidesExplPackage{l3pdffile}{2024-09-29}{0.96m}
{embedding and referencing files in PDF---LaTeX PDF management testphase bundle}
-\RequirePackage{l3pdftools} %temporarly!!
+\RequirePackage{l3pdftools} %temporarily!!
%</header>
% \end{macrocode}
%
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
index 3cd861c557..4d701b7694 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
index 9213e670f7..146c33cacd 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
@@ -57,7 +57,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -70,7 +70,7 @@
% They unify a number of primitives like the pdftex
% registers and commands \cs{pdfcatalog}, \cs{pdfpageattr},
% \cs{pdfpagesattr}, \cs{pdfinfo}, \cs{pdfpageresources}
-% and similar commands of the other backends in a backend independant way.
+% and similar commands of the other backends in a backend independent way.
%
% The supported backends are pdflatex, lualatex, (x)dvipdfmx (latex, xelatex
% and---starting in texlive 2021--lualatex)
@@ -180,12 +180,12 @@
% \begin{syntax}
% \cs{pdfmanagement_show:n} \Arg{resource path}
% \end{syntax}
-% This shows the content of the dictionary targetted by
+% This shows the content of the dictionary targeted by
% \Arg{resource path} in the log and on the terminal if possible.
%
% It is not reliable for page resources as these are filled at shipout.
%
-% It also doesn't show necessarly all the content.
+% It also doesn't show necessarily all the content.
% For example most backends add automatically
% entries to the Info dictionary.
% \end{function}
@@ -207,7 +207,7 @@
% can't be removed (but should ever a use case appear it could be added).
% \end{function}
%
-% \subsection{Description of the resource pathes}
+% \subsection{Description of the resource paths}
% \subsubsection{Info: The Info dictionary}
% \begin{NOTE}{UF}
% path: Info
@@ -367,7 +367,7 @@
% pages of different sizes. But you must be careful with the values.
% If you set e.g. with pdflatex \cs{pdfpageheight} to 300bp you get a mediabox of
% |0 0 595 300|, but pdflatex measure from the top and will also move
-% the reference point up, so effectivly
+% the reference point up, so effectively
% you get the \emph{upper} third of the page. If you set the \texttt{/MediaBox}
% to |0 0 595 300| with \cs{pdfmanagement_add:nnn} you get the \emph{lower} third.
% In general it is better to use only the primitive commands to avoid confusing
@@ -398,7 +398,7 @@
% \cs{pdfmanagement_add:nnn} \{Page/Resources/\meta{resource}\} \Arg{name} \Arg{value}
% \end{syntax}
% Adds |/|\meta{name} \meta{value} to the page resource \meta{resource}.
-% \meta{resource} can be |ExtGState|, |ColorSpace|, |Pattern| oder |Shading|.
+% \meta{resource} can be |ExtGState|, |ColorSpace|, |Pattern| or |Shading|.
% The values are always stored globally. The content is written to the pdf
% at the end of the compilation, so values can be added until then.
% \meta{name} should be a valid pdf name without the leading slash,
@@ -434,7 +434,7 @@
% Entries to the top level of the catalog can be added with\\
% |\pdfmanagement_add:nnn {Catalog}|\Arg{Name}\Arg{Value}.
% Entries to subdictionaries by using in the first
-% argument one of the pathes described later.
+% argument one of the paths described later.
% The entries in the catalog have varying requirements regarding the
% PDF management. Some entries (like \texttt{/Lang}) are simple values
% where new values should
@@ -495,7 +495,7 @@
% \par\medskip
%
% \paragraph{Simple entries in subdictionaries of the catalog}
-% The following resource pathes have been predeclared and allow to
+% The following resource paths have been predeclared and allow to
% add values to the respective subdictionaries of the catalog. The
% names of the dictionaries follow the naming and location of the dictionaries
% in the PDF reference.
@@ -632,7 +632,7 @@
%<@@=pdfmanagement>
%<*header>
%
-\ProvidesExplPackage{l3pdfmanagement}{2024-05-23}{0.96i}
+\ProvidesExplPackage{l3pdfmanagement}{2024-09-29}{0.96m}
{Management of core PDF dictionaries (LaTeX PDF management testphase bundle)}
%</header>
% \end{macrocode}
@@ -824,7 +824,7 @@
\pdfdict_if_exist:nTF { g__pdf_Core/#1 }
{
\cs_if_exist:cTF
- { @@_handler/#1/?_gput:nn } %general, name independant handler
+ { @@_handler/#1/?_gput:nn } %general, name independent handler
{ \use:c {@@_handler/#1/?_gput:nn} {#2} {#3} }
{
\cs_if_exist:cTF
@@ -862,7 +862,7 @@
\pdfdict_if_exist:nTF { g__pdf_Core/#1 }
{
\cs_if_exist:cTF
- { @@_handler/#1/?_gremove:n } %general, name independant handler
+ { @@_handler/#1/?_gremove:n } %general, name independent handler
{ \use:c {@@_handler/#1/?_gremove:n} {#2} }
{
\cs_if_exist:cTF
@@ -899,7 +899,7 @@
\cs_new_protected:Npn \@@_show:Nn #1#2
{
\cs_if_exist:cTF
- { @@_handler/#2/?_show: } %general, name independant handler
+ { @@_handler/#2/?_show: } %general, name independent handler
{ \use:c {@@_handler/#2/?_show:} }
{
\prop_if_exist:cTF { \__kernel_pdfdict_name:n { g__pdf_Core/#2 } }
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
index 59b1627594..99f5ef9490 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
index ff5483ca69..2fa800134c 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -190,6 +190,8 @@
% a test for at least the PDF-format will be added in future.
% \item[|Catalog_no_OCProperties|] don't add |/OCProperties| to the catalog
% {\em l3pdfmeta removes this entry at the end of the document}
+% \item[|Catalog_OCProperties_no_AS|]
+% do not use |/AS| optional content configuration dictionary.
% \item[|Catalog_EmbeddedFiles|] ensure that an |EmbeddedFiles| name tree is
% in the catalog. This is required for PDF/A-4f.
% \item[|annot_widget_no_AA|] (rule 6.6.2-1)
@@ -205,6 +207,10 @@
% \item[|no_CharSet|] CharSet is deprecated is pdf 2.0 and should not
% be used in A-4. l3pdfmeta will therefore suppress it for the
% engines pdftex and luatex (the other engines have no suitable option)
+% \item[|omit_CID|] This avoids with PDF/A-2 and newer a failure
+% because of with missing CID identifications
+% (e.g. from rule ISO 19005-2:2011, Clause: 6.2.11.4.2)
+% It has only with luatex an effect.
% \item[|Trailer_no_Info|] The \texttt{Info} dictionary
% has been deprecated since quite some time. Metadata should be set with
% XMP-data instead. In PDF A-4 now the \texttt{Info} dictionary
@@ -432,7 +438,7 @@
% User data should normally be declared in the preamble (or even in the
% |\DocumentMetadata| command), and consist of rather simple text; |&| can be entered
% as |\&| (but directly |&| will normally work too),
-% babel shorthands should not be used. Some datas are interpreted as comma lists,
+% babel shorthands should not be used. Some data are interpreted as comma lists,
% in this cases commas which are part of the text should be protected by braces.
% In some cases a text in brackets like |[en]| is interpreted as language tag,
% if they are part of a text they should be protected by braces too.
@@ -588,7 +594,8 @@
% \begin{syntax}
% \cs{pdfmeta_xmp_xmlns_new:nn}\Arg{prefix}\Arg{uri}
% \end{syntax}
-% With this command a xmlns name space can be added.
+% With this command a xmlns name space can be added. The \meta{uri}
+% argument is expanded, a hash can be input with |\c_hash_str|.
% \end{function}
%
% With the two following commands PDF declarations can be added to the XMP metadata
@@ -600,7 +607,7 @@
% This add a PDF declaration with the required |conformsTo| property to the XMP metadata.
% \meta{uri} should not be empty and is a URI specifying
% the standard or profile referred to by the PDF
-% Declaration. If the uri contains a hash, use \cs{c_hash_str} to excape it
+% Declaration. If the uri contains a hash, use \cs{c_hash_str} to escape it
% and use the \texttt{e} variant to expand it.
% \end{function}
%
@@ -618,6 +625,38 @@
% If \cs{pdfmeta_xmp_add_declaration:nnnnn} is used twice with the same \meta{uri}
% argument the |claimData| are concatenated. There is no check if the |claimData| are identical.
% \end{function}
+%
+% The following two commands can be used to extend the schema declarations in
+% the XMP metadata. This is for example needed to implement a standard like ZUGferd/Factur X
+% for invoices. A schema declaration should be added only once but as this task
+% is probably not needed frequently only light guards are there to avoid duplicated entries.
+%
+% \begin{function}{\pdfmeta_xmp_schema_new:nnn}
+% \begin{syntax}
+% \cs{pdfmeta_xmp_schema_new:nnn}\Arg{text}\Arg{prefix}\Arg{uri}
+% \end{syntax}
+% \meta{text} is some string describing the schema, e.g. |PDF/A~Identification~Schema|,
+% \meta{prefix} is the unique prefix used by the schema. This prefix
+% must be declared first with |\pdfmeta_xmp_xmlns_new:nn|. If a schema with this prefix
+% has already been declared, it will currently be ignored with a warning.
+% The \meta{uri} is expanded, so a
+% hash can for example be given as |\c_hash_str|.
+% \end{function}
+
+% \begin{function}{\pdfmeta_xmp_property_new:nnnnn}
+% \begin{syntax}
+% \cs{pdfmeta_xmp_property_new:nnnnn}\Arg{schema prefix}\Arg{name}\Arg{type}\Arg{category}\Arg{description}
+% \end{syntax}
+% If the new property already exists in the schema
+% (as identified by the combination of \meta{schema prefix}
+% and \meta{name} the property is silently ignore.
+% \meta{schema prefix} is the prefix declared with the previous command.
+% schema, e.g. |PDF/A~Identification~Schema|,
+% \meta{name} is a short string that identifies the property, e.g. |xmpMM| or |year|. It must be
+% unique in the properties of a schema. \meta{type} is e.g. |URI| or |Integer| or |Text|,
+% \meta{category} is e.g. |internal| or |external|, \meta{description} is a free description string.
+% \end{function}
+%
% \end{documentation}
%
% \begin{implementation}
@@ -627,7 +666,7 @@
% \begin{macrocode}
%<@@=pdfmeta>
%<*header>
-\ProvidesExplPackage{l3pdfmeta}{2024-05-23}{0.96i}
+\ProvidesExplPackage{l3pdfmeta}{2024-09-29}{0.96m}
{PDF-Standards---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
@@ -814,7 +853,9 @@
\pdfmeta_standard_verify:nF { Trailer_no_Info }
{ \__pdf_backend_omit_info:n {1} }
\pdfmeta_standard_verify:nF { no_CharSet }
- { \__pdf_backend_omit_charset:n {1} }
+ { \__pdf_backend_omit_charset:n {1} }
+ \pdfmeta_standard_verify:nF { omit_CID }
+ { \__pdf_backend_omit_cidset:n {1} }
\pdfmeta_standard_verify:nnF { min_pdf_version }
{ \pdf_version: }
{ \msg_warning:nneee {pdf}{wrong-pdfversion}
@@ -881,7 +922,10 @@
%
%===============
% Rule 6.1.13-1 CosDocument, isOptionalContentPresent == false
- ,Catalog_no_OCProperties =
+ ,Catalog_no_OCProperties =
+ % Rule 6.9-4 The AS key shall not appear in any optional content configuration dictionary.
+ % actually only starting with A-2 but doesn't harm here either
+ ,Catalog_OCProperties_no_AS=
%===============
% Rule 6.6.1-1: PDAction, S == "GoTo" || S == "GoToR" || S == "Thread"
% || S == "URI" || S == "Named" || S == "SubmitForm"
@@ -930,7 +974,14 @@
{ embed_content}
\prop_gput:cnn
{ g_@@_standard_pdf/A-2B_prop }{max_pdf_version}{1.7}
-%A-2u ==============
+\prop_gput:cnn
+ { g_@@_standard_pdf/A-2B_prop }{omit_CID}{}
+% OCG layers are allowed (with restrictions)
+\prop_gremove:cn
+ { g_@@_standard_pdf/A-2B_prop }
+ { Catalog_no_OCProperties }
+
+ %A-2u ==============
\prop_new:c { g_@@_standard_pdf/A-2U_prop }
\prop_gset_eq:cc
{ g_@@_standard_pdf/A-2U_prop }
@@ -1015,7 +1066,8 @@
{ g_@@_standard_pdf/A-4_prop }{conformance}
\prop_gremove:cn
{ g_@@_standard_pdf/A-4_prop }{max_pdf_version}
-
+\prop_gremove:cn
+ { g_@@_standard_pdf/A-4_prop }{Catalog_OCProperties_no_AS}
%A-4f ==============
\prop_new:c { g_@@_standard_pdf/A-4F_prop }
\prop_gset_eq:cc
@@ -1177,7 +1229,7 @@
% The commands embed the profile, and write the dictionary and add it to
% the catalog. The first command should perhaps be moved to l3color
% as it needs such profiles too. We used named objects so that we can
-% check if the profile is already there. This is not full proof if pathes are
+% check if the profile is already there. This is not foolproof if paths are
% used.
% \begin{macrocode}
\cs_new_protected:Npn \@@_embed_colorprofile:n #1%#1 file name
@@ -1330,6 +1382,15 @@
_pdfstandard / UA-1 .code:n =
{
\AddToDocumentProperties [document]{pdfstandard-UA}{{1}{}}
+ \AddToHook{begindocument/before}
+ {
+ \pdf_version_compare:NnF < {2.0}
+ {
+ \msg_warning:nneee
+ {pdf}{wrong-pdfversion}
+ {\pdf_version:}{high}{UA-1}
+ }
+ }
},
% \end{macrocode}
% currently it is not possible to merge requirements - these need some thoughts as
@@ -1345,6 +1406,12 @@
{
\@@_xmp_wtpdf_accessibility_declaration:
\@@_xmp_wtpdf_reuse_declaration:
+ \pdf_version_compare:NnT < {2.0}
+ {
+ \msg_warning:nneee
+ {pdf}{wrong-pdfversion}
+ {\pdf_version:}{low}{UA-2}
+ }
}
},
xmp .choice:,
@@ -1404,7 +1471,8 @@
% \end{macrocode}
% \subsection{Messages}
% \begin{macrocode}
-\msg_new:nnn{pdfmeta}{namespace-defined}{The~xmlns~namespace~`#1`~is~already~declared}
+\msg_new:nnn{pdfmeta}{xmp-defined}{The~XMP~#1~`#2`~is~already~declared}
+\msg_new:nnn{pdfmeta}{xmp-undefined}{The~XMP~#1~`#2`~is~undefined}
\msg_new:nnn{pdfmeta}{colorprofile-undefined}{The~colorprofile~`#1`~is~unknown}
% \end{macrocode}
% \subsection{Some helper commands}
@@ -1531,7 +1599,7 @@
%
% \begin{variable}{\l_@@_xmp_currentdate_tl,\l_@@_xmp_currentdate_seq}
% The tl var contains the date of the log-file in PDF format,
-% the seq the result splitted with the regex.
+% the seq the result split with the regex.
% \begin{macrocode}
\tl_new:N \l_@@_xmp_currentdate_tl
\seq_new:N \l_@@_xmp_currentdate_seq
@@ -1542,7 +1610,7 @@
% This checks a document property and if empty uses the current date.
% \begin{macrocode}
\cs_new_protected:Npn \@@_xmp_date_get:nNN #1 #2 #3
- %#1 property, #2 tl var with PDF date, #3 seq for splitted date
+ %#1 property, #2 tl var with PDF date, #3 seq for split date
{
\tl_set:Ne #2 { \GetDocumentProperties{#1} }
\tl_if_blank:VTF #2
@@ -1936,7 +2004,7 @@
\prop_new:N \g_@@_xmp_xmlns_prop
% \end{macrocode}
% \end{variable}
-% \begin{macro}{\@@_xmp_xmlns_new:nn,\@@_xmp_xmlns_new:ne}
+% \begin{macro}{\@@_xmp_xmlns_new:nn}
% \begin{macrocode}
\cs_new_protected:Npn \@@_xmp_xmlns_new:nn #1 #2
{
@@ -1946,7 +2014,6 @@
\@@_xmp_indent:n{4} xmlns:\exp_not:n{#1="#2"}
}
}
-\cs_generate_variant:Nn \@@_xmp_xmlns_new:nn {ne}
% \end{macrocode}
% \end{macro}
% Now we fill the data. The list is more or less the same as in hyperxmp
@@ -1957,7 +2024,7 @@
\@@_xmp_xmlns_new:nn {photoshop}{http://ns.adobe.com/photoshop/1.0/}
\@@_xmp_xmlns_new:nn {xmp} {http://ns.adobe.com/xap/1.0/}
\@@_xmp_xmlns_new:nn {xmpMM} {http://ns.adobe.com/xap/1.0/mm/}
-\@@_xmp_xmlns_new:ne {stEvt}
+\@@_xmp_xmlns_new:nn {stEvt}
{http://ns.adobe.com/xap/1.0/sType/ResourceEvent\c_hash_str}
\@@_xmp_xmlns_new:nn {pdfaid} {http://www.aiim.org/pdfa/ns/id/}
\@@_xmp_xmlns_new:nn {pdfuaid} {http://www.aiim.org/pdfua/ns/id/}
@@ -1966,13 +2033,13 @@
\@@_xmp_xmlns_new:nn {prism} {http://prismstandard.org/namespaces/basic/3.0/}
%\@@_xmp_xmlns_new:nn {jav} {http://www.niso.org/schemas/jav/1.0/}
%\@@_xmp_xmlns_new:nn {xmpTPg} {http://ns.adobe.com/xap/1.0/t/pg/}
-\@@_xmp_xmlns_new:ne {stFnt} {http://ns.adobe.com/xap/1.0/sType/Font\c_hash_str}
+\@@_xmp_xmlns_new:nn {stFnt} {http://ns.adobe.com/xap/1.0/sType/Font\c_hash_str}
\@@_xmp_xmlns_new:nn {Iptc4xmpCore}{http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/}
\@@_xmp_xmlns_new:nn {pdfaExtension}{http://www.aiim.org/pdfa/ns/extension/}
-\@@_xmp_xmlns_new:ne {pdfaSchema}{http://www.aiim.org/pdfa/ns/schema\c_hash_str}
-\@@_xmp_xmlns_new:ne {pdfaProperty}{http://www.aiim.org/pdfa/ns/property\c_hash_str}
-\@@_xmp_xmlns_new:ne {pdfaType} {http://www.aiim.org/pdfa/ns/type\c_hash_str}
-\@@_xmp_xmlns_new:ne {pdfaField}{http://www.aiim.org/pdfa/ns/field\c_hash_str}
+\@@_xmp_xmlns_new:nn {pdfaSchema}{http://www.aiim.org/pdfa/ns/schema\c_hash_str}
+\@@_xmp_xmlns_new:nn {pdfaProperty}{http://www.aiim.org/pdfa/ns/property\c_hash_str}
+\@@_xmp_xmlns_new:nn {pdfaType} {http://www.aiim.org/pdfa/ns/type\c_hash_str}
+\@@_xmp_xmlns_new:nn {pdfaField}{http://www.aiim.org/pdfa/ns/field\c_hash_str}
% \end{macrocode}
% \subsection{Building the chunks: Extensions}
@@ -1999,42 +2066,61 @@
\cs_new_protected:Npn \@@_xmp_schema_new:nnn #1 #2 #3
%#1 name #2 prefix, #3 text
{
- \seq_put_right:Nn \l_@@_xmp_schema_seq { #2 }
- \tl_new:c { g_@@_xmp_schema_#2_tl }
- \tl_new:c { g_@@_xmp_schema_#2_properties_tl }
- \tl_gput_right:cn { g_@@_xmp_schema_#2_tl }
+ \tl_if_exist:cTF { g_@@_xmp_schema_#2_tl }
{
- \@@_xmp_add_packet_open_attr:nnn{rdf}{li}{rdf:parseType="Resource"}
- \@@_xmp_add_packet_line:nnn {pdfaSchema}{schema}{#1}
- \@@_xmp_add_packet_line:nnn {pdfaSchema}{prefix}{#2}
- \@@_xmp_add_packet_line:nnn {pdfaSchema}{namespaceURI}{#3}
- \@@_xmp_add_packet_open:nn {pdfaSchema}{property}
- \@@_xmp_add_packet_open:nn{rdf}{Seq}
- \tl_use:c { g_@@_xmp_schema_#2_properties_tl }
- \@@_xmp_add_packet_close:nn{rdf}{Seq}
- \@@_xmp_add_packet_close:nn {pdfaSchema}{property}
- \cs_if_exist_use:c {@@_xmp_schema_#2_additions:}
- \@@_xmp_add_packet_close:nn{rdf}{li}
+ \msg_warning:nnnn{pdfmeta}{xmp-defined}{schema}{#2}
}
+ {
+ \seq_put_right:Nn \l_@@_xmp_schema_seq { #2 }
+ \tl_new:c { g_@@_xmp_schema_#2_tl }
+ \tl_new:c { g_@@_xmp_schema_#2_properties_tl }
+ \tl_gput_right:cn { g_@@_xmp_schema_#2_tl }
+ {
+ \@@_xmp_add_packet_open_attr:nnn{rdf}{li}{rdf:parseType="Resource"}
+ \@@_xmp_add_packet_line:nnn {pdfaSchema}{schema}{#1}
+ \@@_xmp_add_packet_line:nnn {pdfaSchema}{prefix}{#2}
+ \@@_xmp_add_packet_line:nnn {pdfaSchema}{namespaceURI}{#3}
+ \@@_xmp_add_packet_open:nn {pdfaSchema}{property}
+ \@@_xmp_add_packet_open:nn{rdf}{Seq}
+ \tl_use:c { g_@@_xmp_schema_#2_properties_tl }
+ \@@_xmp_add_packet_close:nn{rdf}{Seq}
+ \@@_xmp_add_packet_close:nn {pdfaSchema}{property}
+ \cs_if_exist_use:c {@@_xmp_schema_#2_additions:}
+ \@@_xmp_add_packet_close:nn{rdf}{li}
+ }
+ }
}
% \end{macrocode}
% \end{macro}
-
-% \begin{macro}{\@@_xmp_property_new:nnn}
+%
+%
+%
+% \begin{macro}{\@@_xmp_property_new:nnnnn}
% This adds a property to a schema.
% \begin{macrocode}
+\prop_new:N\g_@@_xmp_schema_property_prop
\cs_new_protected:Npn \@@_xmp_property_new:nnnnn #1 #2 #3 #4 #5 %
%#1 schema #2 name, #3 type, #4 category #5 description
{
- \tl_gput_right:cn { g_@@_xmp_schema_#1_properties_tl }
+ \tl_if_exist:cTF { g_@@_xmp_schema_#1_properties_tl }
+ {
+ \prop_get:NeNF \g_@@_xmp_schema_property_prop {#1:#2}\l_@@_tmpa_tl
+ {
+ \prop_gput:Nee \g_@@_xmp_schema_property_prop {#1:#2}{#3}
+ \tl_gput_right:cn { g_@@_xmp_schema_#1_properties_tl }
+ {
+ \@@_xmp_add_packet_open:nn {rdf}{li~rdf:parseType="Resource"}
+ \@@_xmp_add_packet_line:nnn {pdfaProperty}{name}{#2}
+ \@@_xmp_add_packet_line:nnn {pdfaProperty}{valueType}{#3}
+ \@@_xmp_add_packet_line:nnn {pdfaProperty}{category}{#4}
+ \@@_xmp_add_packet_line:nnn {pdfaProperty}{description}{#5}
+ \@@_xmp_add_packet_close:nn{rdf}{li}
+ }
+ }
+ }
{
- \@@_xmp_add_packet_open:nn {rdf}{li~rdf:parseType="Resource"}
- \@@_xmp_add_packet_line:nnn {pdfaProperty}{name}{#2}
- \@@_xmp_add_packet_line:nnn {pdfaProperty}{valueType}{#3}
- \@@_xmp_add_packet_line:nnn {pdfaProperty}{category}{#4}
- \@@_xmp_add_packet_line:nnn {pdfaProperty}{description}{#5}
- \@@_xmp_add_packet_close:nn{rdf}{li}
- }
+ \msg_warning:nnnn{pdfmeta}{xmp-undefined}{schema}{#1}
+ }
}
% \end{macrocode}
% \end{macro}
@@ -2091,7 +2177,7 @@
% \item[pdfaid] properties part and conformance are declared by hyperxmp, but
% no here as already in http://www.aiim.org/pdfa/ns/id/. But we declare
% year so that it can be used also with older A-standards.
-% \begin{macro}{pdfaid~(schema)}
+% \begin{macro}[no-user-doc]{pdfaid~(schema)}
% \begin{macrocode}
\@@_xmp_schema_new:nnn
{PDF/A~Identification~Schema}
@@ -2103,11 +2189,17 @@
{Integer}
{internal}
{Year~of~standard}
+\@@_xmp_property_new:nnnnn
+ {pdfaid}
+ {rev}
+ {Integer}
+ {internal}
+ {Revision~year~of~standard}
% \end{macrocode}
% \end{macro}
% \item[pdfuaid] here we need (?) to declare the property
% \enquote{part} and \enquote{rev}.
-% \begin{macro}{pdfuaid~(schema)}
+% \begin{macro}[no-user-doc]{pdfuaid~(schema)}
% \begin{macrocode}
\@@_xmp_schema_new:nnn
{PDF/UA~Universal~Accessibility~Schema}
@@ -2134,7 +2226,7 @@
%
% \item[pdfxid] we set this so that we
% can add the pdf/X version for pdf/X-4 and higher
-% \begin{macro}{pdfxid~(schema)}
+% \begin{macro}[no-user-doc]{pdfxid~(schema)}
% \begin{macrocode}
\@@_xmp_schema_new:nnn
{PDF/X~ID~Schema}
@@ -2150,7 +2242,7 @@
% \end{macro}
%\item[Prism]
-% \begin{macro}{prism~(schema)}
+% \begin{macro}[no-user-doc]{prism~(schema)}
% \begin{macrocode}
\@@_xmp_schema_new:nnn
{PRISM~Basic~Metadata}
@@ -2249,6 +2341,7 @@
% \end{macrocode}
% \end{macro}
% \item[iptc]
+% \begin{macro}[no-user-doc]{iptc (schema)}
% \begin{macrocode}
\@@_xmp_schema_new:nnn
{IPTC~Core~Schema}
@@ -2296,6 +2389,7 @@
\@@_xmp_add_packet_close:nn{pdfaSchema}{valueType}
}
% \end{macrocode}
+% \end{macro}
% \item[jav]: currently ignored
%
% \item[declarations] The PDF Declarations mechanism allows creation and
@@ -2304,7 +2398,7 @@
% that may not be related to PDF technology. Their specification is for example
% described in \url{https://pdfa.org/wp-content/uploads/2019/09/PDF-Declarations.pdf}.
%
-% If declarations are added to the XMP-metadata they need (for pdf/A compliancy) a
+% If declarations are added to the XMP-metadata they need (for pdf/A compliance) a
% schema declaration. We do not add it by default but define here a command to enable
% it. (This can be done in the document preamble as xmp is built only at the end.)
%
@@ -2312,7 +2406,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_xmp_schema_enable_pdfd:
{
- \@@_xmp_xmlns_new:ne {pdfd}{http://pdfa.org/declarations/}
+ \@@_xmp_xmlns_new:nn {pdfd}{http://pdfa.org/declarations/}
\@@_xmp_schema_new:nnn
{PDF~Declarations~Schema}
{pdfd}
@@ -2382,8 +2476,8 @@
% \subsubsection{pdf}
% This builds pdf related the data with the (prefix \enquote{pdf}).
%
-% \begin{macro}{\@@_xmp_build_pdf:}
-% \begin{macro}{
+% \begin{macro}[int]{\@@_xmp_build_pdf:}
+% \begin{macro}[int]{
% Producer/pdfproducer,
% PDFversion}
% \begin{macrocode}
@@ -2411,8 +2505,8 @@
% \subsubsection{xmp}
% This builds the data with the (prefix \enquote{xmp}).
%
-% \begin{macro}{\@@_xmp_build_xmp:}
-% \begin{macro}{
+% \begin{macro}[int]{\@@_xmp_build_xmp:}
+% \begin{macro}[int]{
% CreatorTool/pdfcreator,
% BaseUrl/baseurl}
% \begin{macrocode}
@@ -2606,8 +2700,8 @@
%
% \subsection{Rest of dublin Core data}
%
-% \begin{macro}{\@@_xmp_build_dc:}
-% \begin{macro}{
+% \begin{macro}[int]{\@@_xmp_build_dc:}
+% \begin{macro}[int]{
% dc:creator/pdfauthor,
% dc:subject/pdfkeywords,
% dc:type/pdftype,
@@ -2786,8 +2880,8 @@
% \end{macro}
%
% \subsection{Prism}
-% \begin{macro}{\@@_xmp_build_prism:}
-% \begin{macro}
+% \begin{macro}[int]{\@@_xmp_build_prism:}
+% \begin{macro}[int]
% {
% complianceProfile,
% prism:subtitle/pdfsubtitle,
@@ -2932,11 +3026,22 @@
\cs_new_protected:Npn \pdfmeta_xmp_xmlns_new:nn #1 #2
{
\prop_if_in:NnTF \g_@@_xmp_xmlns_prop {#1}
- {\msg_warning:nnn{pdfmeta}{namespace-defined}{#1}}
+ {\msg_warning:nnnn{pdfmeta}{xmp-defined}{xmlns~namespace}{#1}}
{\@@_xmp_xmlns_new:nn {#1}{#2}}
}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\pdfmeta_xmp_schema_new:nnn}
+% \begin{macrocode}
+\cs_set_eq:NN \pdfmeta_xmp_schema_new:nnn \@@_xmp_schema_new:nnn
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pdfmeta_xmp_property_new:nnnnn}
+% \begin{macrocode}
+\cs_set_eq:NN \pdfmeta_xmp_property_new:nnnnn \@@_xmp_property_new:nnnnn
+% \end{macrocode}
+% \end{macro}
%
% \begin{macro}{\pdfmeta_xmp_add_declaration:n,\pdfmeta_xmp_add_declaration:e}
% \begin{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
index e9aedc14cf..d9ad3802f7 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfoutline.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfoutline.pdf
new file mode 100644
index 0000000000..5d40c31cf9
--- /dev/null
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfoutline.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
index cc0f14d81b..4d9e6d8c3f 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -235,7 +235,7 @@
%
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage{l3pdftools}{2024-05-23}{0.96i}
+\ProvidesExplPackage{l3pdftools}{2024-09-29}{0.96m}
{candidate commands for l3pdf---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
@@ -329,7 +329,7 @@
% ==========
% uri: utf16BE/string seems not to work, hex neither
% utf8/string works but not on macos,
-% so a specfic utf8/url variant is needed
+% so a specific utf8/url variant is needed
% ==========
% "input" is utf8 for pdftex, empty (native) for unicode engine
% commands to output literal strings (...)
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
index 8710b7d376..ddcb4d6afe 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
index d567f42cb2..c7be91e4b2 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -132,7 +132,7 @@
% \begin{macrocode}
%<@@=pdf>
%<*header>
-\ProvidesExplPackage{l3pdfxform}{2024-05-23}{0.96i}
+\ProvidesExplPackage{l3pdfxform}{2024-09-29}{0.96m}
{command to create xforms (beta)---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
index 3e4df1cbe1..d5996aa000 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
index b6d1b2f45b..9b5758abd4 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -197,11 +197,12 @@
% stream. The \meta{token list variable} is assigned locally.
% \end{function}
%
-% \begin{function}{\ShowDocumentProperties}
+% \begin{function}{\ShowDocumentProperties,\LogDocumentProperties}
% \begin{syntax}
-% \cs{ShowDocumentProperties}
+% \cs{ShowDocumentProperties}\\
+% \cs{LogDocumentProperties}
% \end{syntax}
-% This show the current content of the container.
+% This shows/logs the current content of the container.
% \end{function}
%
% \begin{thebibliography}{9}
@@ -220,7 +221,7 @@
% \begin{macrocode}
%<@@=pdfmanagement>
%<*header>
-\ProvidesExplPackage{ltdocinit}{2024-05-23}{0.96i}
+\ProvidesExplPackage{ltdocinit}{2024-09-29}{0.96m}
{Initialize document metadata}
%</header>
% \end{macrocode}
@@ -324,6 +325,13 @@
\prop_map_function:NN \g_@@_documentproperties_prop \msg_show_item:nn
}
}
+\NewDocumentCommand\LogDocumentProperties {}
+ {
+ \msg_log:nne {pdfmanagement}{show-properties}
+ {
+ \prop_map_function:NN \g_@@_documentproperties_prop \msg_show_item:nn
+ }
+ }
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
index e4c849da16..0b2c81696d 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
index 6bd57345df..8e0b8eff42 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -63,7 +63,7 @@
% |debug={firstaidoff={name1,name2,...},...}|.
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{pdfmanagement-firstaid}{2024-05-23}{0.96i}
+\ProvidesExplPackage{pdfmanagement-firstaid}{2024-09-29}{0.96m}
{LaTeX PDF management testphase bundle / firstaid-patches}
%<@@=pdfmanagement>
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
index 39a84280bc..7a05279fa0 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
index 6dc445b7ff..327acd613e 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Version 0.96i, released 2024-05-23}
+% \date{Version 0.96m, released 2024-09-29}
%
% \maketitle
% \begin{documentation}
@@ -394,7 +394,7 @@
% \begin{macrocode}
%<@@=pdf>
%<*package>
-\ProvidesExplPackage{pdfmanagement-testphase}{2024-05-23}{0.96i}
+\ProvidesExplPackage{pdfmanagement-testphase}{2024-09-29}{0.96m}
{LaTeX PDF management testphase bundle}
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
\IfFormatAtLeastTF{2020-10-01}{}{
@@ -422,7 +422,7 @@
% to allow to set it in the document.
% \begin{macrocode}
%<*header>
-\ProvidesExplFile{pdfmanagement-testphase.ltx}{2024-05-23}{0.96i}
+\ProvidesExplFile{pdfmanagement-testphase.ltx}{2024-09-29}{0.96m}
{PDF~management~code~(testphase)}
% \end{macrocode}
% We define a boolean for the new delayed shipout. This is temporary. At some
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
index 3c816a8e5c..29e450f72a 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
index cc220aa313..a429ca9754 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
@@ -1,6 +1,6 @@
%% LaTeX2e file `xcolor-patches-tmp-ltx.sty'
%%
-\ProvidesPackage{xcolor-patches-tmp-ltx}[2024-05-23 v0.96i patch xcolor for l3color]
+\ProvidesPackage{xcolor-patches-tmp-ltx}[2024-09-29 v0.96m patch xcolor for l3color]
\@ifundefined{color_set:nn}{\RequirePackage{l3color}}{}
\ExplSyntaxOn
diff --git a/macros/latex/contrib/pdfpages/pdfpages.dtx b/macros/latex/contrib/pdfpages/pdfpages.dtx
index 5b41ae68c4..ca9ccd8b46 100644
--- a/macros/latex/contrib/pdfpages/pdfpages.dtx
+++ b/macros/latex/contrib/pdfpages/pdfpages.dtx
@@ -27,12 +27,12 @@
%<*dtx>
\makeatletter
%</dtx>
-\def\AM@fileversion{v0.6a}
+\def\AM@fileversion{v0.6b}
\def\AM@Git@Date@process$#1: #2 #3${\AM@Git@Date@process@i#2\END}
\def\AM@Git@Date@process@i#1-#2-#3\END{\def\AM@Git@Date{#1/#2/#3}}
\def\AM@Git@SHA@process$#1: #2${\def\AM@Git@SHA{#2}}
-\AM@Git@Date@process$Date: 2024-05-29 13:40:24 +0200 $
-\AM@Git@SHA@process$SHA-1: 8248eea896cba74c6d712bddc3e4ae8d4c403081 $
+\AM@Git@Date@process$Date: 2024-08-20 15:16:01 +0200 $
+\AM@Git@SHA@process$SHA-1: 8cc873330fc0863d9d32e017e64c98d9f04f579d $
%</!(example1,example2,example3,installer)>
%
%
@@ -3838,10 +3838,10 @@
% \begin{macrocode}
\def\AM@getpagecount{%
\expandafter\filename@parse\expandafter{\AM@currentdocname}%
- \edef\type@ext{%
- \noexpand\lowercase{%
- \noexpand\def\noexpand\type@ext{.\filename@ext}}}%
- \type@ext
+ \begingroup\edef\x{%
+ \lowercase{\endgroup
+ \def\noexpand\type@ext{\expandafter\scantokens\expandafter{\filename@ext\noexpand}}}}%
+ \x
\ifx\type@ext\AM@pdf@ext
\ifdefined\subfix
\let\AM@import@path\@empty
@@ -3859,7 +3859,7 @@
\def\AM@pagecount{1}%
\fi
}
-\def\AM@pdf@ext{.pdf}
+\def\AM@pdf@ext{pdf}
% \end{macrocode}
% |\XeTeXversion| has changed from time to time: 0.997, 0.997-dev,
% 0.998.1
@@ -4902,6 +4902,11 @@
% with |subfiles.sty|.
% \end{itemize}
%
+% \subsection*{2024/08/20 v0.6b}
+% \begin{itemize}
+% \item Make |\includepdf[pages=-]{\detokenize{file.pdf}}| work in xelatex.
+% \end{itemize}
+%
% \Finale
%
% \iffalse
diff --git a/macros/latex/contrib/pdfpages/pdfpages.pdf b/macros/latex/contrib/pdfpages/pdfpages.pdf
index a5ea1485bc..b4182f36df 100644
--- a/macros/latex/contrib/pdfpages/pdfpages.pdf
+++ b/macros/latex/contrib/pdfpages/pdfpages.pdf
Binary files differ
diff --git a/macros/latex/contrib/profcollege/doc/profcollege-doc.pdf b/macros/latex/contrib/profcollege/doc/profcollege-doc.pdf
index c684b9fff8..2cc561202d 100644
--- a/macros/latex/contrib/profcollege/doc/profcollege-doc.pdf
+++ b/macros/latex/contrib/profcollege/doc/profcollege-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/profcollege/latex/PfCAllumettes.tex b/macros/latex/contrib/profcollege/latex/PfCAllumettes.tex
index f603c71f96..dea7c68cb9 100644
--- a/macros/latex/contrib/profcollege/latex/PfCAllumettes.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCAllumettes.tex
@@ -1,6 +1,10 @@
%%%
% Allumettes
%%%
+\def\filedateAllu{2024/08/04}%
+\def\fileversionAllu{0.1}%
+\message{-- \filedateAllu\space v\fileversionAllu}
+%
\setKVdefault[Allumettes]{Impression=false,Echelles=false}%
\defKV[Allumettes]{Echelle=\setKV[Allumettes]{Echelles}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCArbreCalcul.tex b/macros/latex/contrib/profcollege/latex/PfCArbreCalcul.tex
index 4113ae9a27..347c56f640 100644
--- a/macros/latex/contrib/profcollege/latex/PfCArbreCalcul.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCArbreCalcul.tex
@@ -1,6 +1,9 @@
%%%
% Arbre de calculs
%%%
+\def\filedateArbreC{2024/08/04}%
+\def\fileversionArbreC{0.1}%
+\message{-- \filedateArbreC\space v\fileversionArbreC}%
\newtoks\toklistearbre%
\newtoks\toklistearbrefractions%
\newtoks\toklistearbreexpressions%
diff --git a/macros/latex/contrib/profcollege/latex/PfCArbreChiffre.tex b/macros/latex/contrib/profcollege/latex/PfCArbreChiffre.tex
index f724c16fda..26d5cb021a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCArbreChiffre.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCArbreChiffre.tex
@@ -2,6 +2,9 @@
% ArbreChiffre
%%%
% https://tex.stackexchange.com/questions/112975/how-to-print-the-permutation-of-s-u-v-a-t-with-latex
+\def\filedateArbreCh{2024/08/04}%
+\def\fileversionArbreCh{0.1}%
+\message{-- \filedateArbreCh\space v\fileversionArbreCh}%
\def\recurse#1#2#3#4\endmarker{%
\dopermute{#1#3}#2#4\endmarker
diff --git a/macros/latex/contrib/profcollege/latex/PfCAssemblagesSolides.tex b/macros/latex/contrib/profcollege/latex/PfCAssemblagesSolides.tex
index 5521dbb419..7f04a08323 100644
--- a/macros/latex/contrib/profcollege/latex/PfCAssemblagesSolides.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCAssemblagesSolides.tex
@@ -1,6 +1,10 @@
%%%
% Assemblages solides
%%%
+\def\filedateAssemblageS{2024/08/04}%
+\def\fileversionAssemblageS{0.1}%
+\message{-- \filedateAssemblageS\space v\fileversionAssemblageS}%
+%
\setKVdefault[Assemblage]{Phi=30,Theta=20,Distance=50,Anglez=0,Anglex=0,Largeur=1.5,Profondeur=0.75,Hauteur=1,RayonBoule=1,RayonCone=1,RayonCylindre=1,HauteurPrisme=1,HauteurPyramideA=1,HauteurPyramideB=1,HauteurConeA=1,HauteurConeB=1,HauteurCylindre=1,Cotes=3,Trace=false,Type=Pyramides}%
\defKV[Assemblage]{Traces=\setKV[Assemblage]{Trace}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCAutomatismes.tex b/macros/latex/contrib/profcollege/latex/PfCAutomatismes.tex
index fbf80943d4..bb000dee6a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCAutomatismes.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCAutomatismes.tex
@@ -1,6 +1,10 @@
%%%
% Automatismes
%%%
+\def\filedateAutomatismes{2024/08/04}%
+\def\fileversionAutomatismes{0.1}%
+\message{-- \filedateAutomatismes\space v\fileversionAutomatismes}%
+%
\NewDocumentCommand\ChoixAleaMixold{mmmm}{%
\ChoixAlea{1}{2}{\Autograine}%
\ifnum\Autograine=1\relax%
diff --git a/macros/latex/contrib/profcollege/latex/PfCAutonomie.tex b/macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
index b75161ffcc..3e72a72575 100644
--- a/macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
@@ -1,4 +1,10 @@
-%%% Autonomie %%%
+%%%
+%Autonomie
+%%%
+\def\filedateAutonomie{2024/08/04}%
+\def\fileversionAutonomie{0.1}%
+\message{-- \filedateAutonomie\space v\fileversionAutonomie}%
+%
\setKVdefault[Autonomie]{AfficheMarge=false,TitreEnigme=Enigme,TitreAtoi=\`A toi,Enigme=false,TexteCorrection=\bfseries Correction,ARemplir=false,Deux=false,Landscape=false}%
\newcommand\Autonomie[3][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex b/macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex
index 8ee730bbfb..d56f096d7e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex
@@ -1,6 +1,10 @@
%%%
% Barres de niveaux
%%%
+\def\filedateBarreNiveaux{2024/08/04}%
+\def\fileversionBarreNiveaux{0.1}%
+\message{-- \filedateBarreNiveaux\space v\fileversionBarreNiveaux}%
+%
\setKVdefault[ClesBarre]{Niveau=false,LimiteI=25,LimiteF=50,LimiteS=75,TexteOrigine=0,TexteReference=100,CouleurGraduation=white,CouleurFond=gray!50,CouleurBarre=black,Graduation=false,Nom=D\'efaut,Pas=10,CouleurI=red,CouleurF=orange,CouleurS=yellow,CouleurM=green}
\newlength{\barrewidth}
diff --git a/macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex b/macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex
index 12b5077025..47537abe92 100644
--- a/macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex
@@ -1,6 +1,9 @@
%%%
% Barres de calculs
%%%
+\def\filedateBarresCalculs{2024/08/04}%
+\def\fileversionBarresCalculs{0.1}%
+\message{-- \filedateBarresCalculs\space v\fileversionBarresCalculs}%
\setKVdefault[SuiteBarre]{Litteral=false,Perso=false,Decimaux=false}
\NewDocumentCommand\BarresCalculs{o m m}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCBillard.tex b/macros/latex/contrib/profcollege/latex/PfCBillard.tex
index 6faf803803..dc0082cef8 100644
--- a/macros/latex/contrib/profcollege/latex/PfCBillard.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCBillard.tex
@@ -1,6 +1,10 @@
%%%
% Billard
%%%
+\def\filedateBillard{2024/08/28}%
+\def\fileversionBillard{0.1a}%
+\message{-- \filedateBillard\space v\fileversionBillard}%
+%
\newtoks\tokPfCMotBillard{}%
\def\UpdateTokBillard#1\nil{\addtotok\tokPfCMotBillard{"#1"}}%
@@ -227,11 +231,9 @@
}%
\def\MPBillardSolution#1#2#3{%
- % \mplibcodeinherit{enable}%
\mplibforcehmode
\xdef\PfCNomBillard{\useKV[ClesBillard]{Nom}}
\begin{mplibcode}[\PfCNomBillard]
-% Figure(0,0,\useKV[ClesBillard]{Longueur}+2cm,\useKV[ClesBillard]{Largeur}+3cm);
trace rec;
% Tracés
drawarrow Pt[1]--(Pt[1]+1.5cm*unitvector(Pt[2]-Pt[1])) withpen pencircle scaled 1.25;
@@ -253,14 +255,16 @@
else:
dotlabel.bot(TEX(substring(0,1) of #1),Pt[1]);
fi;
+ path segmenttest;
for k=2 upto BLong:
- if (demidroite(1/1000[Pt[k-1],Pt[k]],Pt[k]) intersectiontimes cote[1])<>(-1,-1):
+ segmenttest:=(9/10)[Pt[k-1],Pt[k]]--(11/10)[Pt[k-1],Pt[k]];
+ if segmenttest intersectiontimes cote[1]<>(-1,-1):
dotlabel.bot(TEX(substring(k-1,k) of #1),Pt[k]);
- elseif (demidroite(1/1000[Pt[k-1],Pt[k]],Pt[k]) intersectiontimes cote[2])<>(-1,-1):
+ elseif segmenttest intersectiontimes cote[2]<>(-1,-1):
dotlabel.rt(TEX(substring(k-1,k) of #1),Pt[k]);
- elseif (demidroite(1/1000[Pt[k-1],Pt[k]],Pt[k]) intersectiontimes cote[3])<>(-1,-1):
+ elseif segmenttest intersectiontimes cote[3]<>(-1,-1):
dotlabel.top(TEX(substring(k-1,k) of #1),Pt[k]);
- elseif (demidroite(1/1000[Pt[k-1],Pt[k]],Pt[k]) intersectiontimes cote[4])<>(-1,-1):
+ elseif segmenttest intersectiontimes cote[4]<>(-1,-1):
dotlabel.lft(TEX(substring(k-1,k) of #1),Pt[k]);
fi;
endfor;
@@ -270,5 +274,4 @@
label.top(TEX(substring(k-1,k) of #1),((xpart(Co),5mm)-center Reponse)+(k-1)*(7mm,0)+(2.5mm,0));
endfor;
\end{mplibcode}%
-% \mplibcodeinherit{disable}%
}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCBonSortie.tex b/macros/latex/contrib/profcollege/latex/PfCBonSortie.tex
index 25408ad5fe..c783f90d8e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCBonSortie.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCBonSortie.tex
@@ -1,6 +1,10 @@
%%%
% Bon de sortie
%%%
+\def\filedateBonSortie{2024/08/04}%
+\def\fileversionBonSortie{0.1}%
+\message{-- \filedateBonSortie\space v\fileversionBonSortie}%
+%
\newcommand\BonSortieBandeau{%
Nom : \hfill Date : \hspace*{3cm}
}
diff --git a/macros/latex/contrib/profcollege/latex/PfCBonbon.tex b/macros/latex/contrib/profcollege/latex/PfCBonbon.tex
index 08be71cd4f..8c897fa4de 100644
--- a/macros/latex/contrib/profcollege/latex/PfCBonbon.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCBonbon.tex
@@ -1,9 +1,13 @@
%%%
% Bonbon
%%%
+\def\filedateBonbon{2024/08/04}%
+\def\fileversionBonbon{0.1}%
+\message{-- \filedateBonbon\space v\fileversionBonbon}%
+%
\setKVdefault[Bonbon]{CouleurUn=red,Bicolore=false,Echelle=1}%
\defKV[Bonbon]{CouleurDeux=\setKV[Bonbon]{Bicolore}}%
-
+%
\NewDocumentCommand\Bonbon{o}{%
\useKVdefault[Bonbon]%
\setKV[Bonbon]{#1}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCAN.tex b/macros/latex/contrib/profcollege/latex/PfCCAN.tex
index f77aea497a..cb8dd56fd2 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCAN.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCAN.tex
@@ -1,3 +1,10 @@
+%%%
+% CAN
+%
+\def\filedateCAN{2024/08/04}%
+\def\fileversionCAN{0.1}%
+\message{-- \filedateCAN\space v\fileversionCAN}%
+%
% Gestion de l'aléatoire (pour la CAN)
\newcommand\ChoixAlea[4][]{%
\ifx\bla#1\bla%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex b/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
index d2a189e29b..c97b32472f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
@@ -1,6 +1,9 @@
%%%
% Calculatrice
%%%
+\def\filedateCalculatrice{2024/08/04}%
+\def\fileversionCalculatrice{0.1}%
+\message{-- \filedateCalculatrice\space v\fileversionCalculatrice}%
%https://tex.stackexchange.com/questions/290321/mimicking-a-calculator-inputs-and-screen
\definecolor{lightorange}{rgb}{0.9,0.4,0}%
\definecolor{lightestorange}{rgb}{1,0.8,0.5}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex b/macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
index d17a6c9f55..eb9b8b739d 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
@@ -1,6 +1,10 @@
%%%
% Calculs Croises
%%%
+\def\filedateCalculsCroises{2024/08/04}%
+\def\fileversionCalculsCroises{0.1}%
+\message{-- \filedateCalculsCroises\space v\fileversionCalculsCroises}%
+%
\setKVdefault[CalculsCroises]{Largeur=20pt,Solution=false,Inverse=false,Creation=false,Graines=false,Vide=false,Couleur=LightGray,Negatifs=false,Aide=false,CouleurS=blue}
\defKV[CalculsCroises]{Graine=\setKV[CalculsCroises]{Graines}}%
\defKV[CalculsCroises]{ListeNombres=\setKV[CalculsCroises]{Aide}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalculsDetailles.tex b/macros/latex/contrib/profcollege/latex/PfCCalculsDetailles.tex
new file mode 100644
index 0000000000..df321d523a
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCCalculsDetailles.tex
@@ -0,0 +1,147 @@
+%%%
+% Calculs détaillés
+%%%
+\def\filedateCDetailles{2024/08/24}%
+\def\fileversionCDetailles{0.1}%
+\message{-- \filedateCDetailles\space v\fileversionCDetailles}
+%
+\setKVdefault[CalculAuto]{Under=false,OverB=false,OverC=false,UnderB=false,UnderC=false,Cadre=false,Fluo=false,Evidence=false,Lettres={A,B,C,D,E},Couleur=Purple}
+
+\newcounter{PfCNbCalculs}
+\newcounter{PfCNbSousCalculs}
+\newcounter{PfCNbMarque}
+
+\NewDocumentCommand\PfCMarquePriorite{m}{%
+ \ifboolKV[CalculAuto]{OverB}{%
+ \Overbrace{#1}%
+ }{%
+ \ifboolKV[CalculAuto]{OverC}{%
+ \Overcrochet{#1}%
+ }{%
+ \ifboolKV[CalculAuto]{UnderC}{%
+ \Undercrochet{#1}%
+ }{%
+ \ifboolKV[CalculAuto]{UnderB}{%
+ \Underbrace{#1}%
+ }{%
+ \ifboolKV[CalculAuto]{Cadre}{%
+ \PfCFbox{CCalculAuto}{#1}
+ }{%
+ \ifboolKV[CalculAuto]{Fluo}{%
+ \Surligner[CCalculAuto]{#1}
+ }{%
+ \ifboolKV[CalculAuto]{Under}{%
+ \mathunderline{CCalculAuto}{#1}%
+ }{%
+ \ifboolKV[CalculAuto]{Evidence}{%
+ \mathcolor{CCalculAuto}{#1}%
+ }{%
+ #1%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}%
+
+\NewDocumentCommand\CalculDetaille{om}{%
+ \useKVdefault[CalculAuto]%
+ \setKV[CalculAuto]{#1}%
+ \colorlet{CCalculAuto}{\useKV[CalculAuto]{Couleur}}%
+ \setcounter{PfCNbCalculs}{0}%
+ \setsepchar{§}\ignoreemptyitems%
+ \readlist*\ListeNombresCalculs{#2}%
+ \reademptyitems%
+ \xdef\PfCFooListeLettres{\useKV[CalculAuto]{Lettres}}%
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\ListeLettres{\PfCFooListeLettres}%
+ \reademptyitems%
+ \xdef\PfCNbMaxLignesCalculs{0}%
+ \foreachitem\compteur\in\ListeNombresCalculs{%
+ \stepcounter{PfCNbCalculs}%
+ \itemtomacro\ListeNombresCalculs[\compteurcnt]\Titi%
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\ListeNombresCalculsDetails{\Titi}%
+ \reademptyitems%
+ \expandafter\xdef\csname NbLignesCalculs\Alph{PfCNbCalculs}\endcsname{\ListeNombresCalculsDetailslen}%
+ \xdef\PfCNbMaxLignesCalculs{\fpeval{max(\PfCNbMaxLignesCalculs,\ListeNombresCalculsDetailslen)}}%
+ \setcounter{PfCNbSousCalculs}{0}%
+ \foreachitem\compteura\in\ListeNombresCalculsDetails{%
+ \stepcounter{PfCNbSousCalculs}%
+ \StrSubstitute{\compteura}{*}{\times}[\PfCCalculAutoUn]%
+ \StrSubstitute{\PfCCalculAutoUn}{:}{\div}[\PfCCalculAutoDeux]%
+ \StrCount{\PfCCalculAutoDeux}{<}[\NbInf]%
+ \ifnum\fpeval{\NbInf}=0\relax%
+ \expandafter\xdef\csname NbMarqueLigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\endcsname{1}%
+ \expandafter\xdef\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}A\endcsname{\PfCCalculAutoDeux}%
+ \else%
+ \xdef\PfCExpressionDepart{\PfCCalculAutoDeux}%
+ \setcounter{PfCNbMarque}{0}%
+ \foreach\xx in{1,...,\NbInf}{%
+ \StrBefore{\PfCExpressionDepart}{<}[\PfCDevant]%
+ \StrBetween{\PfCExpressionDepart}{<}{>}[\PfCAEncadrer]%
+ \stepcounter{PfCNbMarque}%
+ \expandafter\xdef\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\Alph{PfCNbMarque}\endcsname{\PfCDevant}%
+ \stepcounter{PfCNbMarque}%
+ \expandafter\xdef\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\Alph{PfCNbMarque}\endcsname{<\PfCAEncadrer}%
+ \StrBehind{\PfCExpressionDepart}{>}[\PfCExpressionDepartA]%
+ \xdef\PfCExpressionDepart{\PfCExpressionDepartA}%
+ }%
+ \stepcounter{PfCNbMarque}%
+ \expandafter\xdef\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\Alph{PfCNbMarque}\endcsname{\PfCExpressionDepart}%
+ \expandafter\xdef\csname NbMarqueLigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\endcsname{\thePfCNbMarque}%
+ \fi
+ }%
+ }%
+ %%%%%%%%%
+ \setcounter{PfCNbSousCalculs}{0}%
+ \[%
+ \begin{aligned}
+ \xintFor* ##2 in{\xintSeq{1}{\PfCNbMaxLignesCalculs}}\do{%
+ \stepcounter{PfCNbSousCalculs}%
+ \setcounter{PfCNbCalculs}{0}%
+ \xintFor* ##1 in{\xintSeq{1}{\ListeNombresCalculslen}}\do{%
+ \stepcounter{PfCNbCalculs}%
+ \ifnum##2>\fpeval{\csname NbLignesCalculs\Alph{PfCNbCalculs}\endcsname}\relax%
+ \uppercase{&}
+ \else
+ \ListeLettres[\thePfCNbCalculs]\uppercase{&}=\xdef\Tata{\csname NbMarqueLigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\endcsname}\setcounter{PfCNbMarque}{0}\xintFor*##3 in{\xintSeq{1}{\Tata}}\do{%
+ \stepcounter{PfCNbMarque}
+ \xdef\Toto{\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\Alph{PfCNbMarque}\endcsname}\StrChar{\Toto}{1}[\PfCATester]
+ \IfStrEq{\PfCATester}{<}{\StrBehind{\Toto}{<}[\PfCAEncadrer]\PfCMarquePriorite{\PfCAEncadrer}}{\Toto}
+ }
+ \fi\xintifForLast{&}{}
+ }\\
+ }
+ \end{aligned}
+ \]
+}%
+
+\def\Underbrace#1{%
+ \ifx#1\bla\bla\else\color{CCalculAuto}\underbrace{{\color{black}#1}}\color{black}\fi%
+}%
+\def\Undercrochet#1{%
+ \ifx#1\bla\bla\else\color{CCalculAuto}\underbracket{{\color{black}#1}}\color{black}\fi%
+}%
+\def\Overbrace#1{%
+ \ifx#1\bla\bla\else\color{CCalculAuto}\overbrace{{\color{black}#1}}\color{black}\fi%
+}%
+\def\Overcrochet#1{%
+ \ifx#1\bla\bla\else\color{CCalculAuto}\overbracket{{\color{black}#1}}\color{black}\fi%
+}%
+\def\PfCFbox#1#2{%
+ \ifx#2\bla\bla\else\setlength{\fboxrule}{1pt}\fcolorbox{#1}{white}{$\displaystyle#2$}\fi%
+}%
+
+\NewDocumentCommand{\Surligner}{O{yellow}m}{%
+ \ifx#2\bla\bla\else
+ \ifmmode%
+ \colorbox{#1}{$\displaystyle#2$}%
+ \else%
+ \colorbox{#1}{#2}%
+ \fi%
+ \fi
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex b/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
index e3660cff1e..cc19c93e54 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
@@ -1,3 +1,10 @@
+%%%
+% Calculs fractions
+%
+\def\filedateCalculsFractions{2024/08/04}%
+\def\fileversionCalculsFractions{0.1}%
+\message{-- \filedateCalculsFractions\space v\fileversionCalculsFractions}%
+%
\setKVdefault[CalculsFractions]{Couleurs=false,Negatif=false,Seul=false}%
\defKV[CalculsFractions]{Couleur=\setKV[CalculsFractions]{Couleurs}\setKV[ClesSimplification]{Couleur=#1}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalisson.tex b/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
index 929b1fb28e..dd2fe56db3 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
@@ -1,6 +1,10 @@
%%%
% Calisson
%%%
+\def\filedateCalisson{2024/08/04}%
+\def\fileversionCalisson{0.1}%
+\message{-- \filedateCalisson\space v\fileversionCalisson}%
+%
\setKVdefault[Calisson]{Taille=3,Solution=false,Rayon=5cm,Couleur=red,CouleurTrace=black}%
\def\UpdatetoksCalissong#1\nil{\addtotok\tokcalissonlistetracesg{,"#1"}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex b/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
index 1e2075d91a..98bb4b8b3c 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
@@ -1,6 +1,10 @@
%%%
% Cards
%%%
+\def\filedateCartesJeux{2024/08/04}%
+\def\fileversionCartesJeux{0.1}%
+\message{-- \filedateCartesJeux\space v\fileversionCartesJeux}%
+%
\setKVdefault[Cards]{Formats=false,Largeur=165,Hauteur=250,HauteurTheme=40,Marge=12,Landscape=false,Couleur=Cornsilk,CouleurAr=Cornsilk,Theme=Th\'eor\`eme\\de
Pythagore,ThemeSol=Solution,AfficheTheme=false,Trame=false,Jointes=false,TrameVisible=false,RayonArc=5pt,Titre=false,NomTitre=Jeu 1,Loop,JaiQuia=false,Eleve=false,BackgroundAv=false,BackgroundAr=false,%ImageAv=4813762.jpg,ImageAr=4813762.jpg,
AffichageSolution=true,SolutionSeule=false,%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex b/macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex
index ea9b30af03..90812c7e9e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex
@@ -1,6 +1,10 @@
%%%
% Cartes Mentales
%%%
+\def\filedateCarteMentale{2024/08/04}%
+\def\fileversionCarteMentale{0.1}%
+\message{-- \filedateCarteMentale\space v\fileversionCarteMentale}%
+%
\setKVdefault[ClesMentales]{Nom={Bulle}, Largeur=5cm, Ancre={0,0},Pointilles=false,CTrace=black,CFond=white,Epaisseur=1pt,Rayon=1}%
\newenvironment{Mind}{\begin{tikzpicture}}{\end{tikzpicture}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCartographie.tex b/macros/latex/contrib/profcollege/latex/PfCCartographie.tex
index e23001bbcc..4396dc6f87 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCartographie.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCartographie.tex
@@ -1,7 +1,11 @@
%%%
% Cartographie
%%%
-\setKVdefault[Cartographie]{Echelle=1,Carte=false,All=false,Europe=false,Asie=false,Amsud=false,Amnord=false,Amcentre=false,Caraibes=false,Afrique=false,AfficheEchelle=false,PaysSeul=false,VillesSup=false,VillesSupI=false,Capitales=false,Impression=false,Fleuves=false,CouleurFond=ciel,Largeur=12,Hauteur=12,Arborescence="/usr/local/texlive/2023/texmf-dist/metapost/profcollege/",Projection=false,TypeProjection="mercator",CouleurPays=Cornsilk,Pasl=2,PasL=2,Codes=false,Epaisseur=2,ModeleCouleur=5,Boussole=false,Allegee=1,Maillage=false}
+\def\filedateCartographie{2024/08/04}%
+\def\fileversionCartographie{0.1}%
+\message{-- \filedateCartographie\space v\fileversionCartographie}%
+%
+\setKVdefault[Cartographie]{Echelle=1,Carte=false,All=false,Europe=false,Asie=false,Amsud=false,Amnord=false,Amcentre=false,Caraibes=false,Afrique=false,AfficheEchelle=false,PaysSeul=false,VillesSup=false,VillesSupI=false,Capitales=false,Impression=false,Fleuves=false,CouleurFond=ciel,Largeur=12,Hauteur=12,Arborescence="/usr/local/texlive/2024/texmf-dist/metapost/profcollege/",Projection=false,TypeProjection="mercator",CouleurPays=Cornsilk,Pasl=2,PasL=2,Codes=false,Epaisseur=2,ModeleCouleur=5,Boussole=false,Allegee=1,Maillage=false}
\defKV[Cartographie]{EchelleCarte=\setKV[Cartographie]{Carte}}
\defKV[Cartographie]{Pays=\setKV[Cartographie]{PaysSeul}}
\defKV[Cartographie]{Villes=\setKV[Cartographie]{VillesSup}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCCheque.tex b/macros/latex/contrib/profcollege/latex/PfCCheque.tex
new file mode 100644
index 0000000000..531af4efc1
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCCheque.tex
@@ -0,0 +1,125 @@
+%%%
+% PfCCheque
+%%%
+\def\filedateCheque{2024/09/03}%
+\def\fileversionCheque{0.1}%
+\message{-- \filedateCheque\space v\fileversionCheque}%
+\newlength{\oldbaseline}
+\newlength{\PfCTailleCursive}
+
+\setKVdefault[Cheque]{Sigle=CMF,Banque=Crédit Mathématique de France,Date=\today,Lieu={},Lire=false,Destinataire=Institut Curie,Solution=false,Longueur=15,Taille=\normalsize,Ajust=0pt}
+
+%https://tex.stackexchange.com/questions/406015/defining-macro-gsetlength-as-global-setlength-reliable
+\makeatletter
+\gdef\gsetlength#1#2{%
+ \begingroup
+ \setlength\skip@{#2}% Local assignment to a scratch register.
+ \global#1=\skip@ % Global assignement to #1;
+ % \relax is not necessary because of the following \endgroup.
+ \endgroup % \skip@ is restored by end of group.
+}
+\makeatother
+
+\NewDocumentCommand{\Cheque}{om}{%
+ \useKVdefault[Cheque]%
+ \setKV[Cheque]{#1}%
+ \setbox1=\hbox{\useKV[Cheque]{Taille}\myfontCursive abcdefghijklmnopqrstuvwxyz}%
+ {\useKV[Cheque]{Taille}\myfontCursive\gsetlength{\oldbaseline}{\baselineskip}\normalsize}%
+ \setlength{\PfCTailleCursive}{0.5\ht1+\useKV[Cheque]{Ajust}}%
+ \BuildCheque{#2}%
+}%
+
+\NewDocumentCommand{\BuildCheque}{m}{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ boolean Solution,Lire;
+ Solution=\useKV[Cheque]{Solution};
+ Lire=\useKV[Cheque]{Lire};
+ Longueur=\useKV[Cheque]{Longueur};
+ baselinecp=\fpeval{\oldbaseline};
+ %
+ pair A,B,C,D,M[],N[];
+ A=(0,0);
+ B-A=u*(Longueur,0);
+ C-B=u*(0,5);
+ D-C=A-B;
+ %
+ M1=1/3[D,A];
+ %
+ picture Payez;
+ Payez=image(
+ label.rt(TEX("Payez contre ce chèque"),M1);
+ );
+ %
+ M20=(xpart(M1),ypart(llcorner Payez));
+ M2-M20=(0,-baselinecp);
+ M3-M2=u*(0,-0.5);
+ M4-M3=M2-M1;
+ M5-M4=u*(0.4*Longueur,-0.25);
+ M6-M4=u*(0,-0.25)+u*(0.5,0);
+ M7-M6=u*(2,0);
+ %
+ A:=(xpart(M4),ypart(M6)-1u);
+ B:=A+C-D;
+ %
+ N1=1/2[M1,M2]+0.8*(B-A);
+ N2-N1=M2-M1;
+ N3-N2=0.18*(B-A);
+ N4-N3=N1-N2;
+ drawoptions(withcolor NavyBlue);
+ picture BaseLettre;
+ %%%%%%%%%%%%%%%%
+ fill polygone(A,B,C,D) withcolor 0.8[LightSteelBlue,white];
+ trace polygone(A,B,C,D);
+ draw Payez;
+ label.rt(TEX("{\sffamily \Huge \useKV[Cheque]{Sigle}}"),D+u*(0,-0.5));
+ label.rt(TEX("{\sffamily \useKV[Cheque]{Banque}}"),D+u*(0,-1));
+ trace (lrcorner Payez)--(0.75[(xpart(M1),ypart(lrcorner Payez)),(xpart(M1+B-A),ypart(lrcorner Payez))]);
+ label.rt(TEX("\tiny non endossable sauf au profit d'une banque ou d'un établissement assimilé."),M1+u*(0,-0.300));
+ trace 1/90[M2,M2+B-A]--(0.75[M2,M2+B-A]);
+ label.rt(TEX("À \useKV[Cheque]{Destinataire}"),M3);
+ trace 1/45[M3+u*(0,-0.2),M3+u*(0,-0.2)+B-A]--(0.75[M3+u*(0,-0.2),M3+u*(0,-0.2)+B-A]);
+ fill polygone(N1,N2,N3,N4) withcolor white;
+ trace polygone(N1,N2,N3,N4) withpen pencircle scaled 1.2 withcolor NavyBlue;
+ if Lire=false:
+ label.rt(TEX("\si{\EuRo}~#1"),iso(N1,N2));
+ else:
+ if Solution:
+ label.rt(TEX("\si{\EuRo}~\num{#1}"),iso(N1,N2));
+ fi;
+ fi;
+ label.rt(TEX("À~\hbox to"&decimal(Longueur/5)&"cm{\hrulefill}\quad Le~\hbox to"&decimal(Longueur/5)&"cm{\hrulefill}"),M5);
+ label.top(TEX("\Huge \si{\EuRo}uro"),iso(N4,N1)+u*(0,1));
+ label(TEX("\tiny « à régler exclusivement en euros »"),iso(N4,N1)+u*(-0.5,1));
+ label(TEX("\ChoixAlea{100000}{999999}{\numcheque}\numcheque"),iso(M6,M7));
+ trace cotationmil(M6,M7,2.5mm,25,TEX("\scriptsize chèque \no"));
+ %%
+% drawoptions(withcolor red);
+% draw (llcorner Payez)--(llcorner Payez+B-A);
+% draw M2--(M2+B-A);
+% drawoptions();
+ picture Sous;
+ Sous=image(%
+ label(TEX("\begin{minipage}{\fpeval{0.75*"&decimal(Longueur)&"}cm}
+ \hspace{"&decimal(abs(lrcorner Payez-llcorner Payez))&"pt}\myfontCursive\useKV[Cheque]{Taille}\Ecriture{#1}~euros
+ \end{minipage}"),(0,0));
+ );
+ pair PointBase,PointTest,Decalage;
+ PointBase=1/2[M20,M2+(u*0.75Longueur,0)];
+ PointTest=(0,0);%
+ if abs(llcorner Sous-ulcorner Sous)>baselinecp:
+ Decalage=(8pt,\fpeval{\PfCTailleCursive});
+ else:
+ Decalage=(8pt,2*\fpeval{\PfCTailleCursive});
+ fi;
+ if Lire:
+ draw Sous shifted (PointBase-PointTest+Decalage);
+ else:
+ if Solution:
+ draw Sous shifted (PointBase-PointTest+Decalage);
+ fi;
+ fi;
+ \end{mplibcode}
+ \fi%
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCCible.tex b/macros/latex/contrib/profcollege/latex/PfCCible.tex
index d29fdccf9d..91e8f28e04 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCible.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCible.tex
@@ -1,6 +1,10 @@
%%%
% Cibles
%%%
+\def\filedateCible{2024/08/04}%
+\def\fileversionCible{0.1}%
+\message{-- \filedateCible\space v\fileversionCible}%
+%
\newtoks\toklisteciblea%
\def\UpdatetoksCibleA#1\nil{\addtotok\toklisteciblea{"#1",}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex b/macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex
index 336b10651d..c33f5242b3 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex
@@ -1,3 +1,10 @@
+%%%
+% Cible 4 opérations
+%%%
+\def\filedateCibleQOp{2024/08/04}%
+\def\fileversionCibleQOp{0.1}%
+\message{-- \filedateCibleQOp\space v\fileversionCibleQOp}%
+
\newcount\anpcqo\newcount\bnpcqo\newcount\cnpcqo%
\NewDocumentCommand\PfCCQODiviseurs{m}{%#1 : le nombre entier \`a tester
diff --git a/macros/latex/contrib/profcollege/latex/PfCColorilude.tex b/macros/latex/contrib/profcollege/latex/PfCColorilude.tex
index 33a1ef2446..9c446f6b43 100644
--- a/macros/latex/contrib/profcollege/latex/PfCColorilude.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCColorilude.tex
@@ -1,4 +1,10 @@
-%%% Colorilude %%%
+%%%
+% Colorilude
+%%%
+\def\filedateColorilude{2024/08/04}%
+\def\fileversionColorilude{0.1}%
+\message{-- \filedateColorilude\space v\fileversionColorilude}%
+%
\setKVdefault[Colorilude]{Largeur=10,Lignes=10,Legende=false,Coef=0.6,Solution=false,CartonReponse=false,Resultats=false}
\newcommand\dispogpfc[3][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCompteBon.tex b/macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
index 1d5339b114..bbf219e431 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
@@ -1,6 +1,10 @@
%%%
% Le compte est bon
%%%
+\def\filedateCompteBon{2024/08/04}%
+\def\fileversionCompteBon{0.1}%
+\message{-- \filedateCompteBon\space v\fileversionCompteBon}%
+%
\setKVdefault[CompteBon]{NombreCalculs=5,NombrePlaques=4,Solution=false,Relatifs=false,Original=false,Graines=false,Plaques=6,CDot=false}
\defKV[CompteBon]{Graine=\setKV[CompteBon]{Graines}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCConversion.tex b/macros/latex/contrib/profcollege/latex/PfCConversion.tex
index e6ed80f012..86da03a078 100644
--- a/macros/latex/contrib/profcollege/latex/PfCConversion.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCConversion.tex
@@ -1,3 +1,10 @@
+%%%
+% Conversion
+%%%
+\def\filedateConversion{2024/08/04}%
+\def\fileversionConversion{0.1}%
+\message{-- \filedateConversion\space v\fileversionConversion}%
+
\setKVdefault[ClesConversion]{Longueur,Aire=false,Vol=false,Masses=false,Capas=false,Sans=false,Completes=false}%
\defKV[ClesConversion]{Complete=\setKV[ClesConversion]{Completes}}%
\defKV[ClesConversion]{Masse=\setKV[ClesConversion]{Longueur=false}\setKV[ClesConversion]{Masses}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCritere.tex b/macros/latex/contrib/profcollege/latex/PfCCritere.tex
index 34c96a9b06..4818b941c7 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCritere.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCritere.tex
@@ -1,6 +1,10 @@
%%%
% Criteres de divisibilite
%%%
+\def\filedateCritere{2024/08/04}%
+\def\fileversionCritere{0.1}%
+\message{-- \filedateCritere\space v\fileversionCritere}%
+%
\setKVdefault[Critere]{Div=2,Remarque=false,All=false,RemarqueAll=false}
\NewDocumentCommand\Critere{om}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCryptarithme.tex b/macros/latex/contrib/profcollege/latex/PfCCryptarithme.tex
index bfa2e8c76a..1494c2adc6 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCryptarithme.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCryptarithme.tex
@@ -1,6 +1,10 @@
%%%
% Cryptarithmes
%%%
+\def\filedateCrypta{2024/08/04}%
+\def\fileversionCrypta{0.1}%
+\message{-- \filedateCrypta\space v\fileversionCrypta}%
+%
\setKVdefault[Crypta]{Solution=false,ListeLettres={A,B,C,D,E,F,G,H,I,J},Tableau=false}%
\defKV[Crypta]{Indices=\setKV[Crypta]{Tableau}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDecDeci.tex b/macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
index b2db7fd38b..861821ce82 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
@@ -1,6 +1,10 @@
%%%
% Décomposition décimale
%%
+\def\filedateDecDeci{2024/08/04}%
+\def\fileversionDecDeci{0.1}%
+\message{-- \filedateDecDeci\space v\fileversionDecDeci}%
+%
\setKVdefault[DecompDeci]{Parentheses,Colore=false,CouleurU=Blue,CouleurD=Red,CouleurC=Green,Fleches=false,Details=false,ResultatSeul=false,SansMul=false}
\newcounter{PfCNbDecDeci}
diff --git a/macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex b/macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex
index b045c64f63..1e627c2e3f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex
@@ -1,7 +1,12 @@
%%%
% D\'ecomposition de fractions d\'ecimales
%%%
-\setKVdefault[ClesFracDeci]{Complete=false,SansZero=false,Remediation=false,Longueur=1cm}
+\def\filedateDecompFracDeci{2024/08/13}%
+\def\fileversionDecompFracDeci{0.1a}%
+\message{-- \filedateDecompFracDeci\space v\fileversionDecompFracDeci}%
+%
+\setKVdefault[ClesFracDeci]{Complete=false,SansZero=false,Remediation=false,Longueur=1cm,Vides=false}%
+\defKV[ClesFracDeci]{Vide=\setKV[ClesFracDeci]{Remediation}\setKV[ClesFracDeci]{Vides}}%
\newlength{\PfCLongueurP}%
\newcommand\FractionDecimale[2][]{%
@@ -26,7 +31,7 @@
\xintifboolexpr{\PartieEntiereFractionDeci == 0}{}{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieEntiereFractionDeci}}+}%
\xintFor* ##1 in {\xintSeq{1}{\LongueurPartieDecimale}}\do{%
\StrMid{\PartieDecimaleFractionDeci}{##1}{##1}[\ChiffrePartieDecimale]%
- \xintifForFirst{}{\xintifboolexpr{\ChiffrePartieDecimale == 0}{}{+}}\xintifboolexpr{\ChiffrePartieDecimale == 0}{}{\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\num{\fpeval{10**(\LongueurFracDeciDeno-1-\LongueurPartieDecimale+##1)}}}}%
+ \xintifForFirst{}{\xintifboolexpr{\ChiffrePartieDecimale == 0}{}{+}}\xintifboolexpr{\ChiffrePartieDecimale == 0}{}{\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\ifboolKV[ClesFracDeci]{Vides}{\pointilles[\PfCLongueurP]}{\num{\fpeval{10**(\LongueurFracDeciDeno-1-\LongueurPartieDecimale+##1)}}}}}%
}%
}%
}{%
@@ -38,20 +43,20 @@
\StrGobbleLeft{\FractionDeciNum}{\fpeval{\LongueurPartieEntiere}}[\DecompositionFracDeciComplete]%
% on affiche la partie décimale.
\xintFor* ##1 in {\xintSeq{1}{\fpeval{\LongueurFracDeciNum-\LongueurPartieEntiere}}}\do{%
- \xintifForFirst{}{+}\StrMid{\DecompositionFracDeciComplete}{##1}{##1}[\ChiffrePartieDecimale]\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\num{\fpeval{10**##1}}}%
+ \xintifForFirst{}{+}\StrMid{\DecompositionFracDeciComplete}{##1}{##1}[\ChiffrePartieDecimale]\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\ifboolKV[ClesFracDeci]{Vides}{\pointilles[\PfCLongueurP]}{\num{\fpeval{10**##1}}}}%
}%
}%
}{%
\ensuremath{%
\xintFor* ##1 in {\xintSeq{1}{\LongueurPartieDecimale}}\do{%
\StrMid{\PartieDecimaleFractionDeci}{##1}{##1}[\ChiffrePartieDecimale]%
- \xintifForFirst{}{+}\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\num{\fpeval{10**(\LongueurFracDeciDeno-1-\LongueurPartieDecimale+##1)}}}%
+ \xintifForFirst{}{+}\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\ifboolKV[ClesFracDeci]{Vides}{\pointilles[\PfCLongueurP]}{\num{\fpeval{10**(\LongueurFracDeciDeno-1-\LongueurPartieDecimale+##1)}}}}%
}%
}%
}%
}{%
\ensuremath{%
- \xintifboolexpr{\PartieEntiereFractionDeci == 0}{}{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieEntiereFractionDeci}}+}\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieDecimaleFractionDeci}}}{\num{\FractionDeciDeno}}%
+ \xintifboolexpr{\PartieEntiereFractionDeci == 0}{}{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieEntiereFractionDeci}}+}\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieDecimaleFractionDeci}}}{\ifboolKV[ClesFracDeci]{Vides}{\pointilles[\PfCLongueurP]}{\num{\FractionDeciDeno}}}%
}%
}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex b/macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
index bf1a28e333..a741919482 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
@@ -1,10 +1,19 @@
%%%
% Nombre Premier
%%%
-\setKVdefault[ClesNombrePremier]{Tableau=false,TableauVide=false,TableauVertical=false,TableauVerticalVide=false,Exposant=false,Longue=false,All=false,Arbre=false,ArbreVide=false,ArbreComplet=false,ArbreDessine=false,ArbreDessineVide=false,Entoure=false,Entourefin=false,Diviseurs=false,DiviseursT=false,Dot=\dotfill,Impose=false,ImposeAll=false,Potence=false,Decalage=10,Vide=false,CouleurFeuillage=ForestGreen,CouleurTronc=BurlyWood,CouleurFruits=Red,CouleurTexte=white}%
+\def\filedateDecompNbPremier{2024/09/01}%
+\def\fileversionDecompNbPremier{0.1a}%
+\message{-- \filedateDecompNbPremier\space v\fileversionDecompNbPremier}%
+%
+\setKVdefault[ClesNombrePremier]{Tableau=false,TableauVide=false,TableauVertical=false,TableauVerticalVide=false,Exposant=false,Longue=false,All=false,Arbre=false,ArbreVide=false,ArbreComplet=false,ArbreDessine=false,ArbreDessineVide=false,Entoure=false,Entourefin=false,Diviseurs=false,DiviseursT=false,Dot=\dotfill,Impose=false,ImposeAll=false,Potence=false,Decalage=10,Vide=false,CouleurFeuillage=ForestGreen,CouleurTronc=BurlyWood,CouleurFruits=Red,CouleurTexte=white,Poisson=false,Echelle=1cm,AngleArete=45,CouleurPoisson=white,Visible=false,Solution=false}%
\defKV[ClesNombrePremier]{Nombre=\ifboolKV[ClesNombrePremier]{ArbreDessine}{}{\ifboolKV[ClesNombrePremier]{ArbreDessineVide}{}{\setKV[ClesNombrePremier]{Impose}}}}%
\defKV[ClesNombrePremier]{AllNombre=\setKV[ClesNombrePremier]{ImposeAll}}%
-\defKV[ClesNombrePremier]{Impression=\setKV[ClesNombrePremier]{CouleurFeuillage=white,CouleurTronc=white,CouleurFruits=gris,CouleurTexte=black}}
+\defKV[ClesNombrePremier]{Impression=\setKV[ClesNombrePremier]{CouleurFeuillage=white,CouleurTronc=white,CouleurFruits=gris,CouleurTexte=black}}%
+\defKV[ClesNombrePremier]{ElementsVisibles=\setKV[ClesNombrePremier]{Visible}\setKV[ClesNombrePremier]{Vide}}%
+\defKV[ClesNombrePremier]{CouleurSolution=\setKV[ClesNombrePremier]{Solution}}%
+
+\newtoks\tokNPElementsVisibles%
+\def\UpdatetoksElementAfficher#1\nil{\addtotok\tokNPElementsVisibles{#1,}}%
\newcommand\Decomposition[2][]{%
\useKVdefault[ClesNombrePremier]%
@@ -26,6 +35,136 @@
\ifboolKV[ClesNombrePremier]{ArbreDessineVide}{\setKV[ClesNombrePremier]{Vide=true}\MPArbreDessine{#2}{\useKV[ClesNombrePremier]{Nombre}}}{}%
\ifboolKV[ClesNombrePremier]{Diviseurs}{\ListeDiviseur{#2}}{}%
\ifboolKV[ClesNombrePremier]{DiviseursT}{\ListeDiviseurT{#2}}{}%
+ \ifboolKV[ClesNombrePremier]{Poisson}{%
+ \tokNPElementsVisibles{}%
+ \PfCTousLesDiviseurs{#2}%
+ \ifboolKV[ClesNombrePremier]{Visible}{%
+ \xdef\foo{\useKV[ClesNombrePremier]{ElementsVisibles}}%
+ \readlist*\ListeElementsAAfficher{\foo}%
+ }{%
+ \xdef\foo{-1}\readlist*\ListeElementsAAfficher{\foo}%
+ }%
+ \foreachitem\compteur\in\ListeElementsAAfficher{\expandafter\UpdatetoksElementAfficher\compteur\nil}%
+ \MPFish{\PfCPileDiviseurs}{#2}{\the\tokNPElementsVisibles}%
+ }{}%
+}%
+
+\newcommand\PfCTousLesDiviseurs[1]{%
+ %#1 : le nombre entier \`a tester
+ \xdef\anpl{#1}%\relax%
+ \xdef\bnpl{2}%\relax%
+ \xdef\pilebl{2}%\relax%
+ \xdef\PfCPileDiviseurs{1}%
+ \loop
+ \ifnum\fpeval{\bnpl}<\fpeval{\anpl}\relax
+ \modulo{\fpeval{\anpl}}{\fpeval{\bnpl}}
+ \ifnum\remainder=0\relax
+ \xdef\PfCPileDiviseurs{\PfCPileDiviseurs,\fpeval{\bnpl}}%
+ \fi
+ \xdef\bnpl{\fpeval{\bnpl+1}}%
+ \repeat
+ \xdef\PfCPileDiviseurs{\PfCPileDiviseurs,#1}%
+}%%
+
+\def\MPFish#1#2#3{
+ \ifluatex
+ \mplibforcehmode%
+ \mplibnumbersystem{double}%
+ \begin{mplibcode}
+ Echelle=\useKV[ClesNombrePremier]{Echelle};
+ AngleArete=\useKV[ClesNombrePremier]{AngleArete};
+
+ boolean Vide,Visible,Solution;
+ Vide=\useKV[ClesNombrePremier]{Vide};
+ Visible=\useKV[ClesNombrePremier]{Visible};
+ Solution=\useKV[ClesNombrePremier]{Solution};
+
+ color CoulTete,CoulSol;
+ CoulTete=\useKV[ClesNombrePremier]{CouleurPoisson};
+ if Solution:
+ CoulSol=\useKV[ClesNombrePremier]{CouleurSolution};
+ fi;
+
+ numeric Diviseurs[];
+ vardef LectureDiviseurs(text t)=
+ n:=0;
+ for p_=t:
+ n:=n+1;
+ Diviseurs[n]=p_;
+ endfor;
+ enddef;
+
+ LectureDiviseurs(#1);
+ TotalDiviseurs:=n;
+
+ boolean RETOUR;
+ RETOUR=false;
+
+ vardef TestVisible(expr nrt)=
+ RETOUR:=false;
+ for p_=#3:
+ if p_=nrt:
+ RETOUR:=true;
+ fi;
+ endfor;
+ enddef;
+
+
+ pair Ah[],Ab[],O[],Ac;
+ O0=(0,0);
+ O[-1]=O0+Echelle*(0,1);
+ O[-2]=O0+Echelle*(0,-1);
+ fill (arccercle(O[-1],O[-2],O0)--cycle) withcolor CoulTete;
+ trace arccercle(O[-1],O[-2],O0)--cycle;
+ label.lft(TEX("\num{"&decimal(#2)&"}"),O0);
+ %
+ for k=1 upto (TotalDiviseurs div 2):
+ if k=1:Echelle:=Echelle/2;fi;
+ O[k]-O[k-1]=Echelle*(1,0);
+ if k=1:Echelle:=Echelle*2;fi;
+ Ah[k]-O[k]=Echelle*(cosd(AngleArete),sind(AngleArete));
+ Ab[k]-O[k]=Echelle*(cosd(AngleArete),-sind(AngleArete));
+ draw O[k-1]--O[k];
+ draw Ah[k]--O[k]--Ab[k];
+ if Vide=false:
+ label.top(TEX("\num{"&decimal(Diviseurs[k])&"}"),Ah[k]);
+ label.bot(TEX("\num{"&decimal(Diviseurs[TotalDiviseurs+1-k])&"}"),Ab[k]);
+ else:
+ if Visible:
+ TestVisible(Diviseurs[k]);
+ if RETOUR:
+ label.top(TEX("\num{"&decimal(Diviseurs[k])&"}"),Ah[k]);
+ else:
+ if Solution:
+ drawoptions(withcolor CoulSol);
+ label.top(TEX("\num{"&decimal(Diviseurs[k])&"}"),Ah[k]);
+ drawoptions();
+ fi;
+ fi;
+ TestVisible(Diviseurs[TotalDiviseurs+1-k]);
+ if RETOUR:
+ label.bot(TEX("\num{"&decimal(Diviseurs[TotalDiviseurs+1-k])&"}"),Ab[k]);
+ else:
+ if Solution:
+ drawoptions(withcolor CoulSol);
+ label.bot(TEX("\num{"&decimal(Diviseurs[TotalDiviseurs+1-k])&"}"),Ab[k]);
+ drawoptions();
+ fi;
+ fi;
+ fi;
+ fi;
+ endfor;
+ if (TotalDiviseurs mod 2)<>0:
+ Ac-O[TotalDiviseurs div 2]=Echelle*(1,0);
+ draw Ac--O[TotalDiviseurs div 2];
+ if Vide=false:
+ label.rt(TEX("\num{"&decimal(Diviseurs[(TotalDiviseurs+1) div 2])&"}"),Ac);
+ fi;
+ fi;
+ \end{mplibcode}
+ \else
+ %
+ \fi
}%
\def\MPArbre#1{%
@@ -824,13 +963,13 @@
\begin{tabular}{c|c}%
1&\num{#1}\\
\xintFor* ##1 in {\xintSeq {1}{\fpeval{(\cnpT+1)/2}}}\do{%
- \DiviseurNumero{#1}{##1}\num{\fpeval{\dnpT}}\uppercase{&}\DiviseurNumero{#1}{##1}\xintifboolexpr{\dnpT=\fpeval{#1/\dnpT}}{}{\num{\fpeval{#1/\dnpT}}}\\
+ \DiviseurNumero{#1}{##1}\num{\fpeval{\dnpT}}\uppercase{&}\DiviseurNumero{#1}{##1}\xintifboolexpr{\dnpT==\fpeval{#1/\dnpT}}{\num{\fpeval{\dnpT}}}{\num{\fpeval{#1/\dnpT}}}\\
}
\end{tabular}%
\else%
\begin{tabular}{c|c}
1&\num{#1}
- \ifnum\cnpT>2\relax\\
+ \ifnum\cnpT>1\relax\\
\xintFor* ##1 in {\xintSeq {1}{\fpeval{\cnpT/2}}}\do{%
\DiviseurNumero{#1}{##1}\num{\fpeval{\dnpT}}\uppercase{&}\DiviseurNumero{#1}{##1}\num{\fpeval{#1/\dnpT}}\\
}
diff --git a/macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex b/macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex
index 6d850f8012..089b51658a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex
@@ -1,6 +1,10 @@
%%%
% Defi Calculatrice
%%%
+\def\filedateDefiCalc{2024/08/04}%
+\def\fileversionDefiCalc{0.1}%
+\message{-- \filedateDefiCalc\space v\fileversionDefiCalc}%
+%
\setKVdefault[DefiCalculatrice]{NbCasesNoires=6,ListeTouches={!},Impression=false}%
\newtoks\toktexteecran{}
diff --git a/macros/latex/contrib/profcollege/latex/PfCDefiTables.tex b/macros/latex/contrib/profcollege/latex/PfCDefiTables.tex
index 340d598e2f..79ad1064eb 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDefiTables.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDefiTables.tex
@@ -1,7 +1,10 @@
%%%
% Defi Table
%%%
-
+\def\filedateDefiTables{2024/08/04}%
+\def\fileversionDefiTables{0.1}%
+\message{-- \filedateDefiTables\space v\fileversionDefiTables}%
+%
\setKVdefault[DefiTable]{Solution=false,Math=false,LargeurT=5mm,Graines=false,Creation=false,ValeurMin=1,ValeurMax=10,Restreint=false}
\defKV[DefiTable]{Graine=\setKV[DefiTable]{Graines}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex b/macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex
index 85274cac81..092aa5e825 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex
@@ -1,6 +1,10 @@
%%%
% Dessin Algo
%%%
+\def\filedateDessinAlgo{2024/08/04}%
+\def\fileversionDessinAlgo{0.1}%
+\message{-- \filedateDessinAlgo\space v\fileversionDessinAlgo}%
+%
\newtoks\tokDessinAlgo%
\def\UpdatetoksDA#1\nil{\addtotok\tokDessinAlgo{#1,}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex b/macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
index 3bfacac68c..bd83bb6240 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
@@ -1,6 +1,10 @@
%%%
% Dessin Gradue
%%%
+\def\filedateDessinGradue{2024/08/04}%
+\def\fileversionDessinGradue{0.1}%
+\message{-- \filedateDessinGradue\space v\fileversionDessinGradue}%
+%
\setKVdefault[DessinGradue]{Lignes=10,Debut=-5,Fin=5,Pas=10,Solution=false,EcartVertical=1.5,LignesIdentiques,Longueur=10,Echelle=1,Droites=false,DemiDroites=false,OrigineVariable=false,Code=false}
\defKV[DessinGradue]{Traces=\setKV[DessinGradue]{Code}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex b/macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
index 27922bdd03..bbb24cb99c 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
@@ -1,6 +1,10 @@
%%%
% Lien : ratio
%%%
+\def\filedateDessinRatio{2024/08/04}%
+\def\fileversionDessinRatio{0.1}%
+\message{-- \filedateDessinRatio\space v\fileversionDessinRatio}%
+%
\setKVdefault[ClesRatio]{FigureCours=false,Figure=false,Longueur=5cm,TexteTotal=quantit\'e,TextePart=part,Tableau=false,GrandeurA=Grandeur A,GrandeurB=Part(s),Largeur=1cm,Stretch=1,Nom=false,CouleurUn=gris,CouleurDeux=0.5gris+0.5blanc,CouleurTrois=white,CouleurTab=gray!15,ModeleCouleur=5}
\newcommand\MPTest[9][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex b/macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex
index cbed30414d..70180f2a31 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex
@@ -1,6 +1,10 @@
%%%
% Radar
%%%
+\def\filedateRadar{2024/08/04}%
+\def\fileversionRadar{0.1}%
+\message{-- \filedateRadar\space v\fileversionRadar}%
+%
\setKVdefault[ClesRadar]{Rayon=3cm,Reference=20,MoyenneClasse=false,Disciplines=false,Pas=5}
\newtoks\toklisteradara%pour la moyenne de l'\'el\`eve
diff --git a/macros/latex/contrib/profcollege/latex/PfCDistributivite.tex b/macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
index ad0dd8885d..b8a9dc57fc 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
@@ -1,6 +1,9 @@
%%%
% Distributivit\'e
%%%
+\def\filedateDistributivite{2024/08/04}%
+\def\fileversionDistributivite{0.1}%
+\message{-- \filedateDistributivite\space v\fileversionDistributivite}%
% https://tex.stackexchange.com/questions/168972/draw-arrows-to-show-multiplication-pattern-distributive-property/169278?noredirect=1
\newcommand\Tikzmark[1]{%
\tikz[remember picture,baseline,inner sep=0pt]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDobble.tex b/macros/latex/contrib/profcollege/latex/PfCDobble.tex
index 2767a20c50..c00592b393 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDobble.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDobble.tex
@@ -1,8 +1,10 @@
%%%
% dobble
%%%
+\def\filedateDobble{2024/08/04}%
+\def\fileversionDobble{0.1}%
+\message{-- \filedateDobble\space v\fileversionDobble}%
% by Maxime Chupin
-
\NewDocumentCommand\dobble{m}{%
\directlua{
require('PfCdobble.lua')
diff --git a/macros/latex/contrib/profcollege/latex/PfCDomino.tex b/macros/latex/contrib/profcollege/latex/PfCDomino.tex
index 49cf667c16..338dc07bb7 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDomino.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDomino.tex
@@ -1,6 +1,10 @@
%%%
% Domino
%%%
+\def\filedateDomino{2024/08/04}%
+\def\fileversionDomino{0.1}%
+\message{-- \filedateDomino\space v\fileversionDomino}%
+%
\newtcolorbox{MyDominoMini}[1][]{%
enhanced,
nobeforeafter,
diff --git a/macros/latex/contrib/profcollege/latex/PfCDontCountDots.tex b/macros/latex/contrib/profcollege/latex/PfCDontCountDots.tex
index e395500a3c..ea6761035e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDontCountDots.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDontCountDots.tex
@@ -1,3 +1,9 @@
+%%%
+% Ne compte pas
+%%%
+\def\filedateDontCount{2024/08/04}%
+\def\fileversionDontCount{0.1}%
+\message{-- \filedateDontCount\space v\fileversionDontCount}%
% D'après twitter : https://twitter.com/DavidKButlerUoA/status/1700612346258002030/photo/1
\setKVdefault[NCPP]{Largeur=5,Longueur=7,Unite=5mm,Rayon=1mm,Multiple=3,Couleur=black,Solution=false,Graines=false}%
\defKV[NCPP]{Graine=\setKV[NCPP]{Graines}\PfCGraineAlea{#1}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex b/macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex
index f39b93ea46..372efa9784 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex
@@ -1,7 +1,11 @@
%%%
% QCM
%%%
-\setKVdefault[ClesQCM]{Reponses=3,Solution=false,Stretch=1,Largeur=60pt,Couleur=gray!15,Titre=false,Nom=R\'eponse,NomV=Vrai,NomF=Faux,Alph=false,AlphT=false,VF=false,Depart=1,Alterne=false,Noms={A/B/C},Multiple=false,Parties={Yeux,Nez,Bouche},CouleurAlt=gray!15,Seul=false,ACompleter=false}%
+\def\filedateQCM{2024/08/04}%
+\def\fileversionQCM{0.1}%
+\message{-- \filedateQCM\space v\fileversionQCM}%
+%
+\setKVdefault[ClesQCM]{Reponses=3,Solution=false,Stretch=1,Largeur=60pt,Couleur=gray!15,Titre=false,Nom=R\'eponse,NomV=Vrai,NomF=Faux,Alph=false,AlphT=false,VF=false,Depart=1,Alterne=false,Noms={A/B/C},Multiple=false,Parties={Yeux,Nez,Bouche},CouleurAlt=gray!15,Seul=false,ACompleter=false,AllSeul=false}%
\newlength{\LargeurQCM}%
\newlength{\PfCLargeurQCM}%
\newcounter{QuestionQCM}%
@@ -34,6 +38,23 @@
\fi%
}%
+\NewDocumentCommand\PfCQCMSMultiChoixLabelSol{mm}{%
+ \xdef\PfCFooChoixLabel{\ListeQCM[#1,\fpeval{\NumeroReponse}]}%
+ \setsepchar{-}%
+ \readlist*\PfCSolListeReponses{\PfCFooChoixLabel}%
+ \xdef\RetiensSiSol{0}%
+ \xintFor* ##3 in{\xintSeq{1}{\PfCSolListeReponseslen}}\do{%
+ \ifnum#2=\PfCSolListeReponses[##3]\relax%
+ \xdef\RetiensSiSol{\fpeval{\RetiensSiSol+1}}%
+ \fi%
+ }%
+ \ifnum\RetiensSiSol>0\relax%
+ $\blacksquare$%
+ \else%
+ $\square$%
+ \fi%
+}%
+
\NewDocumentCommand\QCMSeul{om}{%
\useKVdefault[QCMSeul]%
\setKV[QCMSeul]{#1}%
@@ -173,6 +194,36 @@
\newcommand\QCM[2][]{%
\useKVdefault[ClesQCM]%
\setKV[ClesQCM]{#1}%
+ \ifboolKV[ClesQCM]{AllSeul}{%
+ \setKV[QCMSeul]{#1}
+ \setsepchar[*]{,*&}\ignoreemptyitems%
+ \readlist*\ListeQCM{#2}%
+ \reademptyitems%
+ \setcounter{QuestionQCM}{\fpeval{\useKV[ClesQCM]{Depart}-1}}%
+ \xdef\NumeroReponse{\fpeval{\useKV[ClesQCM]{Reponses}+2}}%
+ \begin{enumerate}
+ \xintFor* ##1 in {\xintSeq {1}{\ListeQCMlen}}\do{%
+ \item\ListeQCM[##1,1]%
+ \ifboolKV[QCMSeul]{EnColonne}{\begin{multicols}{\useKV[QCMSeul]{Colonnes}}}{}%
+ \ifboolKV[QCMSeul]{LabelLettre}{
+ \begin{enumerate}[label=\Alph{*}/]
+ }{%
+ \begin{enumerate}[label=$\square$]
+ }%
+ \xintFor* ##2 in{\xintSeq{1}{\fpeval{\NumeroReponse-2}}}\do{%
+ \xdef\Titi{##2}
+ \ifboolKV[QCMSeul]{Solution}{%
+ \item[\PfCQCMSMultiChoixLabelSol{##1}{##2}]%
+ }{%
+ \item%
+ }%
+ \ListeQCM[##1,\fpeval{##2+1}]
+ }%
+ \end{enumerate}
+ \ifboolKV[QCMSeul]{EnColonne}{\end{multicols}}{}%
+ }%
+ \end{enumerate}
+ }{%
\ifboolKV[ClesQCM]{Seul}{%
\QCMSeul[#1]{#2}%
}{%
@@ -248,6 +299,7 @@
}%
}%
}%
+}%
\NewDocumentCommand\PfCSolCellColor{mm}{%
\xdef\PfCFooSolColor{\ListeQCM[#1,\NumeroReponse]}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex b/macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex
index 11ae58b5b7..f80bc93866 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex
@@ -1,6 +1,10 @@
%%%
% Ecriture des nombres en lettres
%%%
+\def\filedateEcrireLettres{2024/08/04}%
+\def\fileversionEcrireLettres{0.1}%
+\message{-- \filedateEcrireLettres\space v\fileversionEcrireLettres}%
+%
\setKVdefault[ClesEcriture]{Math=false,Majuscule=false,E=false,Tradition=false,Zero=false}%
\newcommand\EcriturePluriel[1]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex b/macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
index c4503954b3..05e593623c 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
@@ -1,6 +1,10 @@
%%%
% Ecritures d'unit\'es
%%%
+\def\filedateEcrireUnites{2024/08/04}%
+\def\fileversionEcrireUnites{0.1}%
+\message{-- \filedateEcrireUnites\space v\fileversionEcrireUnites}%
+%
\setKVdefault[Unites]{m=false,km=false,hm=false,ha=false,dam=false,a=false,dm=false,cm=true,mm=false,um=false,nm=false,g=true,t=false,q=false,kg=false,hg=false,dag=false,dg=false,cg=false,mg=false,ug=false,ng=false,mmin=false,kmh=true,kms=false,ms=false,mh=false,kgm=false,gcm=true,L=true,kL=false,hL=false,daL=false,dL=false,cL=false,mL=false,l=true,kl=false,hl=false,dal=false,dl=false,cl=false,ml=false,Go=true,Mo=false,ko=false,To=false,o=false,kWh=true,C=true,K=false,F=false,Nombre,US=false,UK=false,CFA=false,CFP=false,CHF=false,Euro=false,Precision=2}%
\defKV[Unites]{Dots=\setKV[Unites]{Nombre=false}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex b/macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
index fc1674d37f..58553f57f8 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
@@ -1,11 +1,14 @@
%%%
% Engrenages
%%%
+\def\filedateEngrenages{2024/08/04}%
+\def\fileversionEngrenages{0.1}%
+\message{-- \filedateEngrenages\space v\fileversionEngrenages}%
+%
\newtoks\tokPfCEngrenages%
\def\UpdatetoksEngrenages#1/#2\nil{\addtotok\tokPfCEngrenages{#1,#2,}}%
\setKVdefault[Engrenages]{Couleur=LightSteelBlue,Unite=3mm,ListeCouleurs={?}}%
-%\defKV[Engrenages]{Couleur=\setKV[Engrenages]{ListeCouleurs=#1}}%
\NewDocumentCommand\Engrenages{o m}{%
\newtoks\toklistecouleur%
@@ -24,7 +27,6 @@
\xdef\ListeAvantCouleurs{\useKV[Engrenages]{ListeCouleurs}}%
\readlist*\ListeCouleur{\ListeAvantCouleurs}%
\foreachitem\couleur\in\ListeCouleur{\expandafter\UpdateCoul\couleur\nil}%
- %\setKV[Engrenages]{Couleurs=\ListeCouleur[1]}%
\BuildEngrenages{\PfCFooEngrenages}{\the\toklistecouleur}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex b/macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex
index 345f741656..1840d8b0e3 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex
@@ -1,6 +1,10 @@
%%%
% Enigme Aire
%%%
+\def\filedateEnigmeAire{2024/08/04}%
+\def\fileversionEnigmeAire{0.1}%
+\message{-- \filedateEnigmeAire\space v\fileversionEnigmeAire}%
+%
\setKVdefault[EnigmeAire]{Modele=A,Couleur=LightSteelBlue,Echelle=7mm,Etape=1,Solution=false,Graines=false}
\defKV[EnigmeAire]{Graine=\setKV[EnigmeAire]{Graines}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCEnquete.tex b/macros/latex/contrib/profcollege/latex/PfCEnquete.tex
index 678b268c57..5dfc36587c 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEnquete.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEnquete.tex
@@ -1,6 +1,10 @@
%%%
% Enquête
%%%
+\def\filedateEnquete{2024/08/04}%
+\def\fileversionEnquete{0.1}%
+\message{-- \filedateEnquete\space v\fileversionEnquete}%
+%
\setKVdefault[ClesEnquete]{Perso=Qui ?,Objet=Quoi ?,Lieu=Où ?,Largeur=4.5cm}
\newcommand\Enquete[1][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCEratosthene.tex b/macros/latex/contrib/profcollege/latex/PfCEratosthene.tex
index 192e470e66..5374c485d2 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEratosthene.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEratosthene.tex
@@ -1,3 +1,10 @@
+%%%
+% Crible Eratostene
+%%%
+\def\filedateEratos{2024/08/04}%
+\def\fileversionEratos{0.1}%
+\message{-- \filedateEratos\space v\fileversionEratos}%
+%
\setKVdefault[ClesEra]{Premier=false,Nombre=1,CouleurP=Cornsilk!50,CouleurNP=Crimson!15,Colonnes=10,Lignes=10,Hauteur=24pt}%
\NewDocumentCommand\TestPremier{m}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex b/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
index 823f203623..bdcea30d9d 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
@@ -1,3 +1,10 @@
+%%%
+% Factorisation
+%%%
+\def\filedateFactorisation{2024/08/04}%
+\def\fileversionFactorisation{0.1}%
+\message{-- \filedateFactorisation\space v\fileversionFactorisation}%
+%
\setKVdefault[Facto]{Aide=false,AideMul=false,Couleur=Crimson,NomExpression=A,Lettre=x,Details,Formel=false,VariableSup=false,ParenthesesFin=false,Finale=false,Type=0}
\defKV[Facto]{Litteral=\setKV[Facto]{Details=false}}
\defKV[Facto]{AutreVariable=\setKV[Facto]{VariableSup}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex b/macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex
index 511e47da2f..e2dfc25f13 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex
@@ -1,6 +1,10 @@
%%%
% Fiche m\'emorisation active
%%%
+\def\filedateFicheMemo{2024/08/04}%
+\def\fileversionFicheMemo{0.1}%
+\message{-- \filedateFicheMemo\space v\fileversionFicheMemo}%
+%
\setKVdefault[ClesFicheMemo]{TexteReponses=Réponses,TexteQuestions=Questions,Solution=false,Largeur=\linewidth}
\newcommand\FicheMemo[3][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex b/macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
index 5b95ddb02e..26777eaac0 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
@@ -1,6 +1,10 @@
%%%
% Fonction Affine
%%%
+\def\filedateAffine{2024/08/04}%
+\def\fileversionAffine{0.1}%
+\message{-- \filedateAffine\space v\fileversionAffine}%
+%
\setKVdefault[ClesAffine]{Nom=f,Variable=x,CoefDir=a,OrdoOrig=b,Ligne=false,Image=false,Antecedent=false,Graphique=false,Retrouve=false,ProgCalcul=false,Unitex=1,Unitey=1,VoirCoef=false,ACoef=0,Redaction=false,Ecriture=false,Definition=false,Centre=false}%ACoefficient=false%: inutile ?
\newcommand\FonctionAffine[5][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFractionAireCarre.tex b/macros/latex/contrib/profcollege/latex/PfCFractionAireCarre.tex
index dbfe8109d2..8fe1993016 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFractionAireCarre.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFractionAireCarre.tex
@@ -1,6 +1,10 @@
%%%
% Fraction d'aire d'un carré
%%%
+\def\filedateFractionCarre{2024/08/04}%
+\def\fileversionFractionCarre{0.1}%
+\message{-- \filedateFractionCarre\space v\fileversionFractionCarre}%
+%
\setKVdefault[JeuAireCarre]{Couleur=LightSteelBlue,CouleurFond=Cornsilk,Perso=false,Graines=false,Parts=3,Longueur=4,NbPoints=2,Angle=0}%
\defKV[JeuAireCarre]{Graine=\setKV[JeuAireCarre]{Graines}\PfCGraineAlea{#1}}%
\defKV[JeuAireCarre]{ListeParts=\setKV[JeuAireCarre]{Perso}\xdef\PfCFooJeuAireCarre{#1}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex b/macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex
index 52512fb83e..20d1d1e93a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex
@@ -1,6 +1,10 @@
%%%
% Fraction Nombre
%%%
+\def\filedateFractionNombre{2024/08/04}%
+\def\fileversionFractionNombre{0.1}%
+\message{-- \filedateFractionNombre\space v\fileversionFractionNombre}%
+%
\newtoks\tokFractionNombrePerso%
\def\UpdatetoksFN#1\nil{\addtotok\tokFractionNombrePerso{"#1",}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFrise.tex b/macros/latex/contrib/profcollege/latex/PfCFrise.tex
index a07d2a931b..c56b2c6f4f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFrise.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFrise.tex
@@ -1,6 +1,10 @@
%%%
% Frise temporelle
%%%
+\def\filedateFrise{2024/08/04}%
+\def\fileversionFrise{0.1}%
+\message{-- \filedateFrise\space v\fileversionFrise}%
+%
\setKVdefault[ClesFrise]{Longueur=8cm,Fleches=false,Ecart=5mm,Sup=false}%
\newtoks\toklistefrise%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFubuki.tex b/macros/latex/contrib/profcollege/latex/PfCFubuki.tex
index 0ce7af2ffa..fd1f973bfd 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFubuki.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFubuki.tex
@@ -1,3 +1,10 @@
+%%%
+% Fubuki
+%%%
+\def\filedateFubuki{2024/08/04}%
+\def\fileversionFubuki{0.1}%
+\message{-- \filedateFubuki\space v\fileversionFubuki}%
+%
\setKVdefault[Fubuki]{Largeur=20pt,Solution=false,Indice=false,Sommes=false,Couleur=LightSteelBlue,Perso=false,Vierge=false}%
\defKV[Fubuki]{Graine=\PfCGraineAlea{#1}}%
\defKV[Fubuki]{Indices=\setKV[Fubuki]{Indice}\xdef\PfCFooListeIndices{#1}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex b/macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex
index 4603265e0e..300bdd43d0 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex
@@ -1,6 +1,10 @@
%%%
% Futoshiki
%%%
+\def\filedateFutoshiki{2024/08/04}%
+\def\fileversionFutoshiki{0.1}%
+\message{-- \filedateFutoshiki\space v\fileversionFutoshiki}%
+%
\setKVdefault[Futo]{Largeur=15pt,Solution=false,CouleurSolution=Black,CouleurCase=Cornsilk,StyleTexte={}}
\newlength\PfCFutoHeight
diff --git a/macros/latex/contrib/profcollege/latex/PfCGaram.tex b/macros/latex/contrib/profcollege/latex/PfCGaram.tex
index 7e04378a93..fd5a97439c 100644
--- a/macros/latex/contrib/profcollege/latex/PfCGaram.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCGaram.tex
@@ -1,17 +1,21 @@
%%%
% Garam
%%%
-\setKVdefault[Garam]{Taille=7,Largeur=15pt,Solution=false,CouleurSolution=Black}
+\def\filedateGaram{2024/08/04}%
+\def\fileversionGaram{0.1}%
+\message{-- \filedateGaram\space v\fileversionGaram}%
+%
+\setKVdefault[Garam]{Taille=7,Largeur=15pt,Solution=false}%
+\defKV[Garam]{CouleurSolution=\setKV[Garam]{Solution}\colorlet{PfCGaramCoulSol}{#1}}%
\newlength\PfCGaramHeight
\NewDocumentCommand\Garam{o m}{%
- \useKVdefault[Garam]
+ \useKVdefault[Garam]%
\setKV[Garam]{#1}%
\setlength{\PfCGaramHeight}{\useKV[Garam]{Largeur}+\tabcolsep}%
\reademptyitems%
\setsepchar[*]{§*,*/}%
\readlist*\PfCListeGaram{#2}%
- \colorlet{PfCGaramCoulSol}{\useKV[Garam]{CouleurSolution}}%
\begin{NiceTabular}{*{\useKV[Garam]{Taille}}{m{\useKV[Garam]{Largeur}}}}
\CodeBefore
\xintFor* ##1 in{\xintSeq{2}{\fpeval{\useKV[Garam]{Taille}}}}\do{%
@@ -26,7 +30,7 @@
\rule{0pt}{\PfCGaramHeight}\xintFor* ##2 in {\xintSeq{1}{\useKV[Garam]{Taille}}}\do{%
\xintifForFirst{}{&}\StrChar{\PfCListeGaram[##1,##2,1]}{1}[\PfCCaracGaram]%
\IfStrEq{\PfCCaracGaram}{*}{\Block[draw,fill=black]{1-1}{}}{%
- \IfStrEq{\PfCCaracGaram}{!}{\Block{}{\ifboolKV[Garam]{Solution}{\StrGobbleLeft{\PfCListeGaram[##1,##2,1]}{1}}{}}}{\Block{}{\color{PfCGaramCoulSol}\PfCListeGaram[##1,##2,1]}}%
+ \IfStrEq{\PfCCaracGaram}{!}{\Block{}{\ifboolKV[Garam]{Solution}{\color{PfCGaramCoulSol}\StrGobbleLeft{\PfCListeGaram[##1,##2,1]}{1}}{}}}{\Block{}{\PfCListeGaram[##1,##2,1]}}%
}%
}\\
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCGeometrie.tex b/macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
index ad7e495f04..9bb83ad50d 100644
--- a/macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
@@ -1,6 +1,10 @@
%%%
% Geometrie
%%%
+\def\filedateGeometrie{2024/08/04}%
+\def\fileversionGeometrie{0.1}%
+\message{-- \filedateGeometrie\space v\fileversionGeometrie}%
+%
\setKVdefault[Geometrie]{CoinBG={(0,0)},CoinHD={(10u,10u)},TypeTrace="Instruments",Clip,Cadres=false,Epaisseur=1,Pointilles=false,Ombre=false,Couleur=black,Ecart=2,ModeleCouleur=5}%
\defKV[Geometrie]{Cadre=\setKV[Geometrie]{Cadres}\setKV[Geometrie]{Clip=false}}%
@@ -42,6 +46,9 @@
elseif \useKV[Geometrie]{TypeTrace}="Espace":
typetrace:="3D";
typerepre:="persp";
+ elseif \useKV[Geometrie]{TypeTrace}="Schema":
+ input PfCSketch;
+ sketchypaths;
fi;
xa:=xpart(Coinbg);
xb:=xpart(Coinhd);
@@ -120,6 +127,9 @@
elseif \useKV[Geometrie]{TypeTrace}="Espace":
typetrace:="3D";
typerepre:="persp";
+ elseif \useKV[Geometrie]{TypeTrace}="Schema":
+ input PfCSketch;
+ sketchypaths;
fi;}
]%
xa:=xpart(Coinbg);
diff --git a/macros/latex/contrib/profcollege/latex/PfCGrades.tex b/macros/latex/contrib/profcollege/latex/PfCGrades.tex
index 6155c43ca1..d86c6e4e42 100644
--- a/macros/latex/contrib/profcollege/latex/PfCGrades.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCGrades.tex
@@ -1,8 +1,12 @@
%%%
% Grades
%%%
-\setKVdefault[Grades]{Solution=false,Longueur=9,Largeur=9,Echelle=8mm,Graines=false}
-\defKV[Grades]{Graine=\setKV[Grades]{Graines}}
+\def\filedateGrades{2024/08/04}%
+\def\fileversionGrades{0.1}%
+\message{-- \filedateGrades\space v\fileversionGrades}%
+%
+\setKVdefault[Grades]{Solution=false,Longueur=9,Largeur=9,Echelle=8mm,Graines=false}%
+\defKV[Grades]{Graine=\setKV[Grades]{Graines}}%
\NewDocumentCommand\Grades{o}{%
\useKVdefault[Grades]%
diff --git a/macros/latex/contrib/profcollege/latex/PfCGrimuku.tex b/macros/latex/contrib/profcollege/latex/PfCGrimuku.tex
index 81e667533a..9185b76892 100644
--- a/macros/latex/contrib/profcollege/latex/PfCGrimuku.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCGrimuku.tex
@@ -1,6 +1,10 @@
%%%
% Grimuku
%%%
+\def\filedateGrimuku{2024/08/04}%
+\def\fileversionGrimuku{0.1}%
+\message{-- \filedateGrimuku\space v\fileversionGrimuku}%
+%
\setKVdefault[Grimuku]{TLargeur=7,Solution=false,Largeur=30pt,CouleurCase=0.7white}%
\defKV[Grimuku]{CouleurSolution=\setKV[Grimuku]{Solution}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex b/macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex
index f472e07844..65948f5949 100644
--- a/macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex
@@ -1,6 +1,10 @@
%%%
% Message caché
%%%
+\def\filedateHidden{2024/08/04}%
+\def\fileversionHidden{0.1}%
+\message{-- \filedateHidden\space v\fileversionHidden}%
+%
\setKVdefault[Hidden]{TLargeur=5,THauteur=3,Solution=false,Hauteur=70pt,Largeur=120pt,Jeu=false,Solution}
\defKV[Hidden]{Plateau=\setKV[Hidden]{Jeu}\setKV[Hidden]{Solution=false}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCHorloge.tex b/macros/latex/contrib/profcollege/latex/PfCHorloge.tex
index 1133714ecd..01af381977 100644
--- a/macros/latex/contrib/profcollege/latex/PfCHorloge.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCHorloge.tex
@@ -1,7 +1,11 @@
%%%
% Horloges
%%%
-\setKVdefault[ClesHorloge]{Aiguilles,Numerique=false,Secondes,Cadre,Rayon=1,Impression=false}
+\def\filedateHorloge{2024/08/12}%
+\def\fileversionHorloge{0.1a}%
+\message{-- \filedateHorloge\space v\fileversionHorloge}%
+%
+\setKVdefault[ClesHorloge]{Aiguilles,Numerique=false,Secondes,Cadre,Rayon=1,Impression=false,Sombre=false}
\NewDocumentCommand\Horloge{ }{%On désactive les :
\begingroup
@@ -62,13 +66,19 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
- boolean Secondes,Impression;
+ boolean Secondes,Impression,Sombre;
Secondes=\useKV[ClesHorloge]{Secondes};
Impression=\useKV[ClesHorloge]{Impression};
+ Sombre=\useKV[ClesHorloge]{Sombre};
if Impression:
+ if Sombre:
+ LightSteelBlue:=0.8*white;
+ Crimson:=black;
+ else:
LightSteelBlue:=0.9*white;
Crimson:=0.5*white;
fi;
+ fi;
u:=0.5u;
draw Afficheur(#1 div10,0);
draw Afficheur(#1 mod10,0) shifted(u*(1,0));
@@ -80,9 +90,21 @@
draw Afficheur(#3 div10,0) shifted(u*(6,0));
draw Afficheur(#3 mod10,0) shifted(u*(7,0));
fi;
+ if Sombre:
+ draw bbox currentpicture;
+ fi;
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={boolean Secondes;Secondes=\useKV[ClesHorloge]{Secondes};}]
+ \begin{mpost}[mpsettings={boolean Secondes,Impression,Sombre;Secondes=\useKV[ClesHorloge]{Secondes};Impression=\useKV[ClesHorloge]{Impression};Sombre=\useKV[ClesHorloge]{Sombre};}]
+ if Impression:
+ if Sombre:
+ LightSteelBlue:=0.8*white;
+ Crimson:=black;
+ else:
+ LightSteelBlue:=0.9*white;
+ Crimson:=0.5*white;
+ fi;
+ fi;
u:=0.5u;
draw Afficheur(#1 div10,0);
draw Afficheur(#1 mod10,0) shifted(u*(1,0));
@@ -94,6 +116,9 @@
draw Afficheur(#3 div10,0) shifted(u*(6,0));
draw Afficheur(#3 mod10,0) shifted(u*(7,0));
fi;
+ if Sombre:
+ draw bbox currentpicture;
+ fi;
\end{mpost}
\fi
}
diff --git a/macros/latex/contrib/profcollege/latex/PfCJeton.tex b/macros/latex/contrib/profcollege/latex/PfCJeton.tex
index e3012070f2..68523efce5 100644
--- a/macros/latex/contrib/profcollege/latex/PfCJeton.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCJeton.tex
@@ -1,6 +1,10 @@
%%%
% Jeton
%%%
+\def\filedateJeton{2024/08/04}%
+\def\fileversionJeton{0.1}%
+\message{-- \filedateJeton\space v\fileversionJeton}%
+%
\setKVdefault[Jeton]{Diametre=5mm,Impression=false}%
\NewDocumentCommand\Jeton{om}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex b/macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex
index 6508e6cd1a..df2f709271 100644
--- a/macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex
@@ -1,3 +1,10 @@
+%%%
+% Jeu Rangement
+%%%
+\def\filedateJeuRangement{2024/08/04}%
+\def\fileversionJeuRangement{0.1}%
+\message{-- \filedateJeuRangement\space v\fileversionJeuRangement}%
+%
\setKVdefault[JeuRgt]{Creation=false,Deno=12,Graines=false,Largeur=15pt,Hauteur=20pt,Negatif=false,Decimaux=false,Solution=false,ValeurMin=2,ValeurMax=50,Exposants=false}
\defKV[JeuRgt]{Graine=\setKV[JeuRgt]{Graines}}%
\defKV[JeuRgt]{Exposant=\setKV[JeuRgt]{Exposants}\setKV[JeuRgt]{Deno=1}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCKakurasu.tex b/macros/latex/contrib/profcollege/latex/PfCKakurasu.tex
index 944d295e8f..d608320b3e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCKakurasu.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCKakurasu.tex
@@ -1,6 +1,10 @@
%%%
% Kakurasu
%%%
+\def\filedateKakurasu{2024/08/04}%
+\def\fileversionKakurasu{0.1}%
+\message{-- \filedateKakurasu\space v\fileversionKakurasu}%
+%
\setKVdefault[Kakurasu]{Solution=false,Longueur=6,Largeur=6,Echelle=8mm,Graines=false,Trace=false}
\defKV[Kakurasu]{Graine=\setKV[Kakurasu]{Graines}}
\defKV[Kakurasu]{Traces=\setKV[Kakurasu]{Trace}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCKakuro.tex b/macros/latex/contrib/profcollege/latex/PfCKakuro.tex
index adf0aba7d2..b480f44275 100644
--- a/macros/latex/contrib/profcollege/latex/PfCKakuro.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCKakuro.tex
@@ -1,6 +1,10 @@
%%%
% Kakuro
%%%
+\def\filedateKakuro{2024/08/04}%
+\def\fileversionKakuro{0.1}%
+\message{-- \filedateKakuro\space v\fileversionKakuro}%
+%
\setKVdefault[Kakuro]{CouleurCase=LightGray,TLargeur=5,THauteur=5,Solution=false,Largeur=2em,Aide=false,CouleurSolution=Black,Tailles=false}%,Taille=5
\defKV[Kakuro]{ListeNombres=\setKV[Kakuro]{Aide}}%
\defKV[Kakuro]{Taille=\setKV[Kakuro]{Tailles}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCKenKen.tex b/macros/latex/contrib/profcollege/latex/PfCKenKen.tex
index e28efc379f..21a16dbc78 100644
--- a/macros/latex/contrib/profcollege/latex/PfCKenKen.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCKenKen.tex
@@ -1,6 +1,10 @@
%%%
% KenKen
%%%
+\def\filedateKenken{2024/08/04}%
+\def\fileversionKenken{0.1}%
+\message{-- \filedateKenken\space v\fileversionKenken}%
+%
\setKVdefault[ClesKK]{Solution=false,Taille=3,Largeur=2em,Aide=false}%
\defKV[ClesKK]{Nombre=\setKV[ClesKK]{Aide}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex b/macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex
index 5922748104..f60cbce35e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex
@@ -1,8 +1,12 @@
%%%
% Labyrinthe
%%%
-\setKVdefault[Labyrinthe]{Lignes=6,Colonnes=3,Longueur=4,Hauteur=2,Passages=false,EcartH=1,EcartV=1,CouleurF=gray!50,Texte=\color{black},SensImpose=false,Slop}
-
+\def\filedateLabyJeu{2024/08/04}%
+\def\fileversionLabyJeu{0.1}%
+\message{-- \filedateLabyJeu\space v\fileversionLabyJeu}%
+%
+\setKVdefault[Labyrinthe]{Lignes=6,Colonnes=3,Longueur=4,Hauteur=2,Passages=false,EcartH=1,EcartV=1,CouleurF=gray!50,Texte=\color{black},SensImpose=false,Slop}%
+%
\tikzset{FDirect/.style={-stealth}}
\tikzset{FIndirect/.style={stealth-}}
\tikzset{FBidirect/.style={stealth-stealth}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex b/macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex
index b610849ea5..769617eb90 100644
--- a/macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex
@@ -1,6 +1,10 @@
%%%
% Labyrinthe Nombre
%%%
+\def\filedateLabyNombre{2024/08/04}%
+\def\fileversionLabyNombre{0.1}%
+\message{-- \filedateLabyNombre\space v\fileversionLabyNombre}%
+%
\setKVdefault[ClesLabyNb]{Multiple=5,XDepart=0,YDepart=0,Longueur=7,Largeur=4,Solution=false,Echelle=1,Angle=0,Couleur=red,Murs=false,Nom=Ex1,CouleurChemin=LightSteelBlue,DoubleOperation=false,Multiplication=false,Chemin=false,EntreeSortie=false,Entree="Nord",Sortie="Sud",SortieUnique=true,Graines=false,XArrivees=false,YArrivees=false,ArriveeX=5,ArriveeY=5}
\defKV[ClesLabyNb]{Graine=\setKV[ClesLabyNb]{Graines}}
\defKV[ClesLabyNb]{XArrivee=\setKV[ClesLabyNb]{XArrivees}\setKV[ClesLabyNb]{ArriveeX=#1}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCLego.tex b/macros/latex/contrib/profcollege/latex/PfCLego.tex
index 901eb0a54b..80bc5ddc1a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCLego.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCLego.tex
@@ -1,6 +1,10 @@
%%%
% Lego
%%%
+\def\filedateLego{2024/09/01}%
+\def\fileversionLego{0.1a}%
+\message{-- \filedateLego\space v\fileversionLego}%
+%
\setKVdefault[Lego]{Echelle=1,Couleur=LightSteelBlue,Unite=8,Diviseur=2,Perso=false,Plaque=false,Largeura=2,Largeurb=2,Unique=false}%
\defKV[Lego]{ListePerso=\setKV[Lego]{Perso}\xdef\PfCFooLegoListePerso{#1}}%
@@ -27,10 +31,14 @@
}{%
\xdef\PfCNbCouleurs{\fpeval{floor(\useKV[Lego]{Unite}/\useKV[Lego]{Diviseur})}}%
}%
- \ChoixCouleur{\PfCNbCouleurs}%
\ifboolKV[Lego]{Perso}{%
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\ListeAvantChoixCouleurs{\PfCFooLegoListePerso}%
+ \ChoixCouleur{\ListeAvantChoixCouleurslen}%
+ \reademptyitems%
\BuildBarreLego{\FooCouleur}{\PfCFooLegoListePerso}%
}{%
+ \ChoixCouleur{\PfCNbCouleurs}%
\BuildBarreLego{\FooCouleur}{}%
}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCMentalo.tex b/macros/latex/contrib/profcollege/latex/PfCMentalo.tex
index 84176c0d1f..0c024facd2 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMentalo.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMentalo.tex
@@ -1,6 +1,10 @@
%%%
% Mentalo
%%%
+\def\filedateMentalo{2024/08/04}%
+\def\fileversionMentalo{0.1}%
+\message{-- \filedateMentalo\space v\fileversionMentalo}%
+%
\NewDocumentCommand\PfCNumold{m}{%
\xintifboolexpr{#1<0}{(\num{#1})}{\num{#1}}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCMidpoint.tex b/macros/latex/contrib/profcollege/latex/PfCMidpoint.tex
index 0813f66c44..4fea05dcbb 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMidpoint.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMidpoint.tex
@@ -1,6 +1,10 @@
%%%
% Midpoint
%%%
+\def\filedateMidpoint{2024/08/04}%
+\def\fileversionMidpoint{0.1}%
+\message{-- \filedateMidpoint\space v\fileversionMidpoint}%
+%
\setKVdefault[MidPoint]{Solution=false,Graines=false,Hard=false}
\defKV[MidPoint]{Graine=\setKV[MidPoint]{Graines}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex b/macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
index a05ae0075b..e894a9ebc6 100644
--- a/macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
@@ -1,6 +1,10 @@
%%%
% Modele en barre
%%%
+\def\filedateModeleBarre{2024/08/04}%
+\def\fileversionModeleBarre{0.1}%
+\message{-- \filedateModeleBarre\space v\fileversionModeleBarre}%
+%
\setKVdefault[ClesModeleBarre]{Hauteur=0.5cm,Largeur=1cm,Separation={0},Homogene=false,Multiplicatif=false,MultiplicatifH=false,MultiplicatifB=false}%Separation pour conserver le lien avec les équations.
\defKV[ClesModeleBarre]{Longueur=\setKV[ClesModeleBarre]{Homogene}}%
\defKV[ClesModeleBarre]{AccoladesH=\setKV[ClesModeleBarre]{MultiplicatifH}\setKV[ClesModeleBarre]{Multiplicatif}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCMosaique.tex b/macros/latex/contrib/profcollege/latex/PfCMosaique.tex
index 91936d597b..af964995ef 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMosaique.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMosaique.tex
@@ -1,6 +1,10 @@
%%%
% Mosaique
%%%
+\def\filedateMosaique{2024/08/04}%
+\def\fileversionMosaique{0.1}%
+\message{-- \filedateMosaique\space v\fileversionMosaique}%
+%
\setKVdefault[ClesMosaique]{Largeur=2,Hauteur=2,Solution=false,Type=1,Label,Echelle=1cm}
\newcommand\DessineMosaique[2][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex b/macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
index 0929b76197..088f417c35 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
@@ -1,6 +1,10 @@
%%%
% Mots Cod\'es
%%%
+\def\filedateMotsCodes{2024/08/04}%
+\def\fileversionMotsCodes{0.1}%
+\message{-- \filedateMotsCodes\space v\fileversionMotsCodes}%
+%
\setKVdefault[MotsCodes]{LargeurT=1cm,Colonnes=5,Largeur=3cm,Solution=false,Math=false}%
\newcommand\MotsCodes[2][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex b/macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
index 4e6734dd7b..5310516799 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
@@ -1,6 +1,10 @@
%%%
% Mots croisés
%%%
+\def\filedateMotsCroises{2024/08/04}%
+\def\fileversionMotsCroises{0.1}%
+\message{-- \filedateMotsCroises\space v\fileversionMotsCroises}%
+%
\setKVdefault[ClesCroises]{Lignes=6,Colonnes=8,Solution=false,Croises=false,Couleur=gray,Largeur=1em}
\newcounter{PfCLettreHorizontal}
diff --git a/macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex b/macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex
index 1c42d433a6..c8ec37bc5d 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex
@@ -1,6 +1,10 @@
%%%
% Mots empilés
%%%
+\def\filedateMotsEmpiles{2024/08/04}%
+\def\fileversionMotsEmpiles{0.1}%
+\message{-- \filedateMotsEmpiles\space v\fileversionMotsEmpiles}%
+%
\setKVdefault[ClesMotEmpile]{Colonne=4,Solution=false,Couleur=black}
\newcounter{CompteurMotEmpile}
diff --git a/macros/latex/contrib/profcollege/latex/PfCMulArt.tex b/macros/latex/contrib/profcollege/latex/PfCMulArt.tex
index 27156c00b7..9942541873 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMulArt.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMulArt.tex
@@ -1,6 +1,10 @@
%%%
% Mulart
%%%
+\def\filedateMulArt{2024/08/04}%
+\def\fileversionMulArt{0.1}%
+\message{-- \filedateMulArt\space v\fileversionMulArt}%
+%
\setKVdefault[TabMul]{Multiple=2,Cibles=false,Largeur=20pt,Couleurs=false,Graines=false,Operations=false,Enonce=false,SchemaEnonce=false}
\defKV[TabMul]{Couleur=\setKV[TabMul]{Couleurs}}
\defKV[TabMul]{Graine=\setKV[TabMul]{Graines}\PfCGraineAlea{#1}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCMulJal.tex b/macros/latex/contrib/profcollege/latex/PfCMulJal.tex
index befce7a110..3f9ba37758 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMulJal.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMulJal.tex
@@ -1,6 +1,10 @@
%%%
% Multiplication par jalousie
%%%
+\def\filedateMulJal{2024/08/04}%
+\def\fileversionMulJal{0.1}%
+\message{-- \filedateMulJal\space v\fileversionMulJal}%
+%
\setKVdefault[MulJal]{Solution=false,CouleurTab=gray!15}%
\defKV[MulJal]{CouleurSolution=\setKV[MulJal]{Solution}}%
%
diff --git a/macros/latex/contrib/profcollege/latex/PfCMulJap.tex b/macros/latex/contrib/profcollege/latex/PfCMulJap.tex
index bdb59526f0..8fdf37c5b3 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMulJap.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMulJap.tex
@@ -1,6 +1,10 @@
%%%
% Multiplication Japonaise
%%%
+\def\filedateMulJap{2024/08/04}%
+\def\fileversionMulJap{0.1}%
+\message{-- \filedateMulJap\space v\fileversionMulJap}%
+%
\setKVdefault[MulJap]{Couleur=Orange,Bloc=false,DessinSeul=false}
\defKV[MulJap]{CouleurBloc=\setKV[MulJap]{Bloc}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCMulPiecesPuzzle.tex b/macros/latex/contrib/profcollege/latex/PfCMulPiecesPuzzle.tex
index 7851f36ba7..aaf98ffe6a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMulPiecesPuzzle.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMulPiecesPuzzle.tex
@@ -1,6 +1,10 @@
%%%
% Pièces de puzzle pour multiplication
%%%
+\def\filedateMulPiecesPuzzle{2024/08/04}%
+\def\fileversionMulPiecesPuzzle{0.1}%
+\message{-- \filedateMulPiecesPuzzle\space v\fileversionMulPiecesPuzzle}%
+%
%https://mirror.gutenberg-asso.fr/tex.loria.fr/prod-graph/metafun.pdf
\newtoks\toklistepuzzlea%
diff --git a/macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex b/macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
index 428cd8d37c..df1903bc0e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
@@ -1,6 +1,10 @@
%%%
% Nombre Astral
%%%
+\def\filedateNombreAstral{2024/08/04}%
+\def\fileversionNombreAstral{0.1}%
+\message{-- \filedateNombreAstral\space v\fileversionNombreAstral}%
+%
\setKVdefault[NombreAstral]{Solution=false,Graines=false,Echelle=1,Couleur=LightSteelBlue,Horizontal=false}
\defKV[NombreAstral]{Graine=\setKV[NombreAstral]{Graines}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCNonogramme.tex b/macros/latex/contrib/profcollege/latex/PfCNonogramme.tex
index 8adfbd5654..d63fd9c70f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNonogramme.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNonogramme.tex
@@ -1,3 +1,10 @@
+%%%
+% Nonogramme
+%%%
+\def\filedateNonogramme{2024/08/04}%
+\def\fileversionNonogramme{0.1}%
+\message{-- \filedateNonogramme\space v\fileversionNonogramme}%
+%
\setKVdefault[Nono]{Largeur=10pt,Taille=5,Unite=1cm,Solution=false,Enonce=true}
\newtoks\toklistenonoa%
diff --git a/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex b/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
index 4fe05bc4d0..265beb92f9 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
@@ -1,6 +1,10 @@
%%%
% Fonction
%%%
+\def\filedateFonction{2024/08/04}%
+\def\fileversionFonction{0.1}%
+\message{-- \filedateFonction\space v\fileversionFonction}%
+%
\setKVdefault[ClesFonction]{Nom=f,Variable=x,Calcul=x,Tableau=false,Largeur=5mm,Ecriture=false,Definition=false,Points=false,Tangentes=false,PasX=1,PasY=1,UniteX=1,UniteY=1,Prolonge=false,Trace=false,Catmull=false,Splines=false,Lagrange=false,Epaisseur=1,Couleur=black,CouleurTrace=black,PointsCourbe=true,Codes=false,Origine={(0,0)},Vide=false}
\defKV[ClesFonction]{Traces=\setKV[ClesFonction]{Codes}}%
@@ -1249,6 +1253,17 @@ vardef Lagrange(expr valeur)(text t)=
%
RetiensCouleur(\useKV[TraceG]{CouleurTrace});
%
+ numeric styletrace[];
+ vardef RetiensStyle(text t)=
+ n:=0;
+ for p_=t:
+ n:=n+1;
+ styletrace[n]=p_;
+ endfor;
+ enddef;
+ %
+ RetiensStyle(\useKV[TraceG]{StyleTrace});
+ %
pair Origine,DecalageOrigine;
Origine=(xmin,ymin)+\useKV[TraceG]{Origine};
DecalageOrigine=\useKV[TraceG]{Origine};
@@ -1305,6 +1320,19 @@ vardef Lagrange(expr valeur)(text t)=
n:=0;
for p_=texto:
n:=n+1;
+ if unknown styletrace[n]:
+ drawoptions();
+ else:
+ if styletrace[n]=1:
+ drawoptions(dashed evenly);
+ elseif styletrace[n]=2:
+ drawoptions(dashed withdots);
+ elseif styletrace[n]=3:
+ drawoptions(dashed dashpattern(on6 off3 on1.5 off3));
+ else:
+ drawoptions();
+ fi;
+ fi;
draw courbe[n](borneinf[n],bornesup[n],100)(scantokens p_) withpen (pencircle scaled Epaisseur) withcolor if unknown colortrace[n]:black else: colortrace[n] fi;
endfor;
enddef;
@@ -1419,6 +1447,9 @@ vardef Lagrange(expr valeur)(text t)=
trace u*(xmin-grillex,k)--u*(xmax+grillex,k);
endfor;
drawoptions();
+ else:
+ grillex:=0;
+ grilley:=0;
fi;
if Graduations:
for k=gradx step gradx until (((xmax-xmin)-xpart(DecalageOrigine))*pasx):
@@ -1470,11 +1501,12 @@ vardef Lagrange(expr valeur)(text t)=
else:
DessineCourbes(#1);
NommeCourbes(#2);
- if Grille:
clip currentpicture to polygone(u*(xmin-grillex,ymin-grilley),u*(xmax+grillex,ymin-grilley),u*(xmax+grillex,ymax+grilley),u*(xmin-grillex,ymax+grilley));
+ if Grille:
+ %clip currentpicture to polygone(u*(xmin-grillex,ymin-grilley),u*(xmax+grillex,ymin-grilley),u*(xmax+grillex,ymax+grilley),u*(xmin-grillex,ymax+grilley));
draw polygone(u*(xmin-grillex,ymin-grilley),u*(xmax+grillex,ymin-grilley),u*(xmax+grillex,ymax+grilley),u*(xmin-grillex,ymax+grilley)) withcolor 0.75white;
else:
- clip currentpicture to polygone(u*(xmin,ymin),u*(xmax,ymin),u*(xmax,ymax),u*(xmin,ymax));
+ %clip currentpicture to polygone(u*(xmin,ymin),u*(xmax,ymin),u*(xmax,ymax),u*(xmin,ymax));
fi;
%
if Code:
diff --git a/macros/latex/contrib/profcollege/latex/PfCNumberHive.tex b/macros/latex/contrib/profcollege/latex/PfCNumberHive.tex
index ee37a5b2f1..96019b3d83 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNumberHive.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNumberHive.tex
@@ -1,6 +1,10 @@
%%%
% Number Hive
%%%
+\def\filedateNumberHive{2024/08/04}%
+\def\fileversionNumberHive{0.1}%
+\message{-- \filedateNumberHive\space v\fileversionNumberHive}%
+%
\setKVdefault[NumberHive]{Negatif=false,Produit=false,Niveau=8,Double=false,ListeCouleurs={Cornsilk,LightSteelBlue},CouleurCase=false,Jeton=false,Graines=false,Aide=false,UniteHexa=6mm}%
\defKV[NumberHive]{Cases=\setKV[NumberHive]{CouleurCase}}%
\defKV[NumberHive]{Jetons=\setKV[NumberHive]{Jeton}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex b/macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex
index a864165fba..b9560bb504 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex
@@ -1,3 +1,10 @@
+%%%
+% Numerations anciennes
+%%%
+\def\filedateNumAnciennes{2024/08/04}%
+\def\fileversionNumAnciennes{0.1}%
+\message{-- \filedateNumAnciennes\space v\fileversionNumAnciennes}%
+%
\setKVdefault[NumerationAncienne]{Couleur=black}%
\NewDocumentCommand\Chinoise{om}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex b/macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex
index 347ca499bc..ca9f72976e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex
@@ -1,11 +1,11 @@
%%%
% Op\'erations pos\'es à trou
%%%
-%% D'après https://tex.stackexchange.com/questions/277246/drawing-a-circle-around-the-numbers-in-xlop-package
-
-%\begin{document}%
+\def\filedateOpTrou{2024/08/04}%
+\def\fileversionOpTrou{0.1}%
+\message{-- \filedateOpTrou\space v\fileversionOpTrou}%
%
-%\end{document}
+%% D'après https://tex.stackexchange.com/questions/277246/drawing-a-circle-around-the-numbers-in-xlop-package
\newcommand\PfCchiffre[2]{\tikz[remember picture] \node[inner sep=0pt](#1){#2};}
diff --git a/macros/latex/contrib/profcollege/latex/PfCPapiers.tex b/macros/latex/contrib/profcollege/latex/PfCPapiers.tex
index 0bb41363ec..3929600a6e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPapiers.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPapiers.tex
@@ -1,6 +1,10 @@
%%%
% Papiers
%%%
+\def\filedatePapiers{2024/08/04}%
+\def\fileversionPapiers{0.1}%
+\message{-- \filedatePapiers\space v\fileversionPapiers}%
+%
\setKVdefault[Papiers]{Cinq=true,Seyes=false,Echelle=8,Isometrique=false,IsometriquePointe=false,Millimetre=false,Triangle=false,Largeur=5,Hauteur=4,Couleur=black,Grille=-1,GrillePointe=-1,PageEntiere=false,ZoneTexte=false,Baseline=false,CodeAfter=false}%
\defKV[Papiers]{Traces=\setKV[Papiers]{CodeAfter}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCPatronPaves.tex b/macros/latex/contrib/profcollege/latex/PfCPatronPaves.tex
index 6628d3d505..904f272411 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPatronPaves.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPatronPaves.tex
@@ -1,6 +1,10 @@
%%%
% Patrons de pavés droits et cubes
%%%
+\def\filedatePatronspaves{2024/08/04}%
+\def\fileversionPatronspaves{0.1}%
+\message{-- \filedatePatronspaves\space v\fileversionPatronspaves}%
+%
\setKVdefault[ClesPatron]{Cube,Arete=1cm,ListeCouleurs={white},Pave=false,Largeur=2cm,Hauteur=1.5cm,Profondeur=1cm,Codes=false,AColorier=false}%
%EcartColorier est en nombre de parts pour le cube, en mm pour le pavé.
\defKV[ClesPatron]{EcartColorier=\setKV[ClesPatron]{AColorier}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPattern.tex b/macros/latex/contrib/profcollege/latex/PfCPattern.tex
index 29fa45c08f..fb6f0bf9f3 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPattern.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPattern.tex
@@ -1,6 +1,10 @@
%%%
% Visual Pattern
%%%
+\def\filedatePattern{2024/08/04}%
+\def\fileversionPattern{0.1}%
+\message{-- \filedatePattern\space v\fileversionPattern}%
+%
\setKVdefault[Pattern]{Type=1,Etape=3}
\NewDocumentCommand\VisualPattern{o}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPavage.tex b/macros/latex/contrib/profcollege/latex/PfCPavage.tex
index 2d25df1b99..4dabb04411 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPavage.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPavage.tex
@@ -1,6 +1,10 @@
%%%
% Pavage
%%%
+\def\filedatePavage{2024/08/04}%
+\def\fileversionPavage{0.1}%
+\message{-- \filedatePavage\space v\fileversionPavage}%
+%
\setKVdefault[Pavage]{%
Before=false,
Niveau=3,
diff --git a/macros/latex/contrib/profcollege/latex/PfCPixelArt.tex b/macros/latex/contrib/profcollege/latex/PfCPixelArt.tex
index df380d48ee..503e2e1182 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPixelArt.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPixelArt.tex
@@ -1,11 +1,16 @@
%%%
% PixelArt
%%%
+\def\filedatePixelArt{2024/08/04}%
+\def\fileversionPixelArt{0.1}%
+\message{-- \filedatePixelArt\space v\fileversionPixelArt}%
+%
\newtoks\toklistePANombre%
\def\UpdatetoksPANombre#1\nil{\addtotok\toklistePANombre{"#1",}}%
-\setKVdefault[ClesPixelArt]{Largeur=29,Hauteur=29,Solution=false,Lettres=ABCDEFGHIJK,Nombres=false,ListeCouleurs={Orange,Red,LightGray,Maroon,Purple,black,black,Plum,Orange,White,White},Unite=5mm,Geant=false,HauteurD=1,LargeurD=1,Complet=false,Numero=1,Separations=false}%
+\setKVdefault[ClesPixelArt]{Largeur=29,Hauteur=29,Solution=false,Lettres=ABCDEFGHIJK,Nombres=false,ListeCouleurs={Orange,Red,LightGray,Maroon,Purple,black,black,Plum,Orange,White,White},Unite=5mm,Geant=false,HauteurD=1,LargeurD=1,Complet=false,Numero=1,Separations=false,Deforme=false,Coefx=0.25,Coefy=0.25,Borne=false,Graines=false}%
\defKV[ClesPixelArt]{ListeNombres=\setKV[ClesPixelArt]{Nombres}}%
+\defKV[ClesPixelArt]{Graine=\setKV[ClesPixelArt]{Graines}}%
\NewDocumentCommand\PixelArt{o m}{%
\toklistePANombre{}%
@@ -34,11 +39,15 @@
\BuildPixelArtGeant{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}{\the\intquotient}{\the\remainder}%
}%
}{%
- \BuildPixelArt{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}%
+ \ifboolKV[ClesPixelArt]{Deforme}{%
+ \BuildPixelArtDeforme{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}%
+ }{%
+ \BuildPixelArt{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}%
+ }%
}%
}%
-\NewDocumentCommand\BuildPixelArt{m m m m}{%
+\NewDocumentCommand\BuildPixelArtDeforme{m m m m}{%
\ifluatex
\mplibforcehmode
\begin{mplibcode}
@@ -48,6 +57,39 @@
hauteurd:=\useKV[ClesPixelArt]{HauteurD};
Unite:=\useKV[ClesPixelArt]{Unite};
+ %Deformation
+ Coefx=\useKV[ClesPixelArt]{Coefx};
+ Coefy=\useKV[ClesPixelArt]{Coefy};
+ boolean Borne,Graines;
+ Borne=\useKV[ClesPixelArt]{Borne};
+ Graines=\useKV[ClesPixelArt]{Graines};
+ if Graines:
+ randomseed:=\useKV[ClesPixelArt]{Graine};
+ fi;
+ %
+ pair M[][];
+ for l=1 upto hauteur+1:
+ for c=1 upto largeur+1:
+ if Borne:
+ if (l=1) or (l=hauteur+1):
+ M[l][c]=Unite*(c,l)+Unite*(-Coefx+uniformdeviate(2*Coefx),0);
+ if (c=1) or (c=largeur+1):
+ M[l][c]:=Unite*(c,l);
+ fi;
+ else:
+ if (c=1) or (c=largeur+1):
+ M[l][c]=Unite*(c,l-1)+Unite*(0,uniformdeviate(Coefy));
+ else:
+ M[l][c]=Unite*(c,l)+Unite*(-Coefx+uniformdeviate(2*Coefx),-Coefy+uniformdeviate(2*Coefy));
+ fi;
+ fi;
+ else:
+ M[l][c]=Unite*(c,l)+Unite*(-Coefx+uniformdeviate(2*Coefx),-Coefy+uniformdeviate(2*Coefy));
+ fi;
+ %dotlabel("",M[l][c]);
+ endfor;
+ endfor;
+
boolean Solution,Nombres,Separations;
Solution:=\useKV[ClesPixelArt]{Solution};
Nombres:=\useKV[ClesPixelArt]{Nombres};
@@ -56,7 +98,7 @@
string BaseLettres;
BaseLettres=str #2;
numeric EchelleScale;
- EchelleScale=Unite/5mm;
+ EchelleScale=Unite/10mm;
color ColorEntier[],ColFond;
n:=0;
@@ -86,11 +128,107 @@
if Nombres:
for m=0 upto (length BaseLettres-1):
if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
- label(TEX(RetiensNombres[m+1]) scaled EchelleScale,((l-1)*Unite,(h-1)*Unite));
+ label(TEX(RetiensNombres[m+1]) scaled EchelleScale,iso(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]));
fi;
endfor;
else:
- label(TEX(substring(p,p+1) of p_) scaled EchelleScale,((l-1)*Unite,(h-1)*Unite));
+ label(TEX(substring(p,p+1) of p_) scaled EchelleScale,iso(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]));
+ fi;
+ if Solution:
+ for m=0 upto (length BaseLettres-1):
+ if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
+ ColFond:=ColorEntier[m+1];
+ fi;
+ endfor;
+ if unknown ColFond: else: fill polygone(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]) withcolor ColFond fi;
+ fi;
+ trace polygone(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]);
+ fi;
+ endfor;
+ endfor;
+ closefrom nomfichier;
+ enddef;
+
+ Lecturecsv("#1");
+% if Separations:
+% drawoptions(withcolor Purple);
+% for k=hauteur step -hauteurd until 0:
+% draw (Unite*(-1,k-0.5)--Unite*(largeur,k-0.5)) withpen pencircle scaled 1.25;
+% endfor;
+% for k=0 step largeurd until largeur:
+% draw (Unite*(k-0.5,hauteur+0.125)--Unite*(k-0.5,-0.875)) withpen pencircle scaled 1.25;
+% endfor;
+% drawoptions();
+% fi;
+ \end{mplibcode}
+\fi
+}%
+
+\NewDocumentCommand\BuildPixelArt{m m m m}{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ largeur:=\useKV[ClesPixelArt]{Largeur};
+ hauteur:=\useKV[ClesPixelArt]{Hauteur};
+ largeurd:=\useKV[ClesPixelArt]{LargeurD};
+ hauteurd:=\useKV[ClesPixelArt]{HauteurD};
+ Unite:=\useKV[ClesPixelArt]{Unite};
+
+ boolean Solution,Nombres,Separations;
+ Solution:=\useKV[ClesPixelArt]{Solution};
+ Nombres:=\useKV[ClesPixelArt]{Nombres};
+ Separations:=\useKV[ClesPixelArt]{Separations};
+
+ string BaseLettres;
+ BaseLettres=str #2;
+ numeric EchelleScale;
+ EchelleScale=Unite/5mm;
+
+ color ColorEntier[],ColFond;
+ n:=0;
+ for p_=#3:
+ n:=n+1;
+ ColorEntier[n]:=p_;
+ endfor;
+
+ string RetiensNombres[];
+ if Nombres:
+ k:=0;
+ for p_=#4:
+ k:=k+1;
+ RetiensNombres[k]=p_;
+ endfor;
+ else:
+ m:=0;
+ for p_=0 upto n-1:
+ m:=m+1;
+ RetiensNombres[m]=substring(p_,p_+1) of BaseLettres;
+ endfor;
+ fi;
+
+ picture Etiquette[];
+ for k=1 upto n:
+ Etiquette[k]=image(
+ label(TEX(RetiensNombres[k]) scaled EchelleScale,(0,0));
+ );
+ endfor;
+
+ vardef Lecturecsv(expr nomfichier)=
+ for h=hauteur downto 1:
+ string p_;
+ p_=readfrom nomfichier;
+ l:=0;
+ for p=0 step 2 until 2*largeur-2:
+ l:=l+1;
+ if Solution=false:
+ if (substring(p,p+1) of p_)="-":
+ else:
+ for m=0 upto (length BaseLettres-1):
+ if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
+ draw Etiquette[m+1] shifted((l-1)*Unite,(h-1)*Unite);
+ fi;
+ endfor;
+ fi;
fi;
if Solution:
for m=0 upto (length BaseLettres-1):
@@ -101,7 +239,6 @@
if unknown ColFond: else: fill (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite) withcolor ColFond fi;
fi;
trace (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite);
- fi;
endfor;
endfor;
closefrom nomfichier;
@@ -120,10 +257,12 @@
fi;
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={largeur:=\useKV[ClesPixelArt]{Largeur}; hauteur:=\useKV[ClesPixelArt]{Hauteur}; Unite:=\useKV[ClesPixelArt]{Unite}; boolean Solution,Nombres; Solution:=\useKV[ClesPixelArt]{Solution}; Nombres:=\useKV[ClesPixelArt]{Nombres};}]
+ \begin{mpost}[mpsettings={largeur:=\useKV[ClesPixelArt]{Largeur}; hauteur:=\useKV[ClesPixelArt]{Hauteur}; Unite:=\useKV[ClesPixelArt]{Unite}; boolean Solution,Nombres,Separations; Solution:=\useKV[ClesPixelArt]{Solution}; Nombres:=\useKV[ClesPixelArt]{Nombres}; Separations:=\useKV[ClesPixelArt]{Separations};}]
string BaseLettres;
BaseLettres=str #2;
-
+ numeric EchelleScale;
+ EchelleScale=Unite/5mm;
+
color ColorEntier[],ColFond;
n:=0;
for p_=#3:
@@ -133,13 +272,26 @@
string RetiensNombres[];
if Nombres:
- n:=0;
+ k:=0;
for p_=#4:
- n:=n+1;
- RetiensNombres[n]=p_;
+ k:=k+1;
+ RetiensNombres[k]=p_;
+ endfor;
+ else:
+ m:=0;
+ for p_=0 upto n-1:
+ m:=m+1;
+ RetiensNombres[m]=substring(p_,p_+1) of BaseLettres;
endfor;
fi;
-
+
+ picture Etiquette[];
+ for k=1 upto n:
+ Etiquette[k]=image(
+ label(LATEX(RetiensNombres[k]) scaled EchelleScale,(0,0));
+ );
+ endfor;
+
vardef Lecturecsv(expr nomfichier)=
for h=hauteur downto 1:
string p_;
@@ -147,16 +299,15 @@
l:=0;
for p=0 step 2 until 2*largeur-2:
l:=l+1;
+ if Solution=false:
if (substring(p,p+1) of p_)="-":
else:
- if Nombres:
for m=0 upto (length BaseLettres-1):
if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
- label(LATEX(RetiensNombres[m+1]),((l-1)*Unite,(h-1)*Unite));
+ draw Etiquette[m+1] shifted((l-1)*Unite,(h-1)*Unite);
fi;
endfor;
- else:
- label(LATEX(substring(p,p+1) of p_),((l-1)*Unite,(h-1)*Unite));
+ fi;
fi;
if Solution:
for m=0 upto (length BaseLettres-1):
@@ -167,21 +318,30 @@
if unknown ColFond: else: fill (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite) withcolor ColFond fi;
fi;
trace (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite);
- fi;
endfor;
endfor;
closefrom nomfichier;
enddef;
Lecturecsv("#1");
+ if Separations:
+ drawoptions(withcolor Purple);
+ for k=hauteur step -hauteurd until 0:
+ draw (Unite*(-1,k-0.5)--Unite*(largeur,k-0.5)) withpen pencircle scaled 1.25;
+ endfor;
+ for k=0 step largeurd until largeur:
+ draw (Unite*(k-0.5,hauteur+0.125)--Unite*(k-0.5,-0.875)) withpen pencircle scaled 1.25;
+ endfor;
+ drawoptions();
+ fi;
\end{mpost}
\fi
-}
+}%
\NewDocumentCommand\BuildPixelArtGeant{m m m m m m}{%
- \ifluatex
- \mplibforcehmode
- \begin{mplibcode}
+ \ifluatex%
+ \mplibforcehmode%
+ \begin{mplibcode}%
largeur:=\useKV[ClesPixelArt]{Largeur};
hauteur:=\useKV[ClesPixelArt]{Hauteur};
largeurd:=\useKV[ClesPixelArt]{LargeurD};
@@ -253,5 +413,5 @@
Lecturecsv("#1");
\end{mplibcode}
- \fi
-} \ No newline at end of file
+ \fi%
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCPourcentage.tex b/macros/latex/contrib/profcollege/latex/PfCPourcentage.tex
index 1f6f18b19b..03177d14dc 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPourcentage.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPourcentage.tex
@@ -1,6 +1,10 @@
%%%
% Application : pourcentage
%%%
+\def\filedatePourcentage{2024/08/04}%
+\def\fileversionPourcentage{0.1}%
+\message{-- \filedatePourcentage\space v\fileversionPourcentage}%
+%
\setKVdefault[ClesPourcentage]{Appliquer,Calculer=false,Augmenter=false,Reduire=false,Fractionnaire=false,Decimal,Formule=false,Concret=false,GrandeurA=Grandeur A,GrandeurB=Total,Largeur=1cm,MotReduction=diminution,AideTableau=false,ColorFill=white,CouleurTab=gray!15}
\defKV[ClesPourcentage]{Unite=\setKV[ClesPourcentage]{Concret}}
\newcommand\Pourcentage[3][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCProbaFrequence.tex b/macros/latex/contrib/profcollege/latex/PfCProbaFrequence.tex
index dc6a39b7a5..e3a5f04b62 100644
--- a/macros/latex/contrib/profcollege/latex/PfCProbaFrequence.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCProbaFrequence.tex
@@ -1,6 +1,10 @@
%%%
% Probabilité et fréquence
%%%
+\def\filedateProbaFrequence{2024/08/04}%
+\def\fileversionProbaFrequence{0.1}%
+\message{-- \filedateProbaFrequence\space v\fileversionProbaFrequence}%
+%
\setKVdefault[PfCFrequence]{Couleur=false,Lancers=1,Legende=false}%
\defKV[PfCFrequence]{ListeCouleurs=\setKV[PfCFrequence]{Couleur}}%
\defKV[PfCFrequence]{Legendes=\setKV[PfCFrequence]{Legende}\setsepchar{,}\reademptyitems\readlist*\PfMListeLegendes{#1}\reademptyitems}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCProbabilites.tex b/macros/latex/contrib/profcollege/latex/PfCProbabilites.tex
index 7ed834a61e..73bafa9ba2 100644
--- a/macros/latex/contrib/profcollege/latex/PfCProbabilites.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCProbabilites.tex
@@ -1,7 +1,11 @@
%%%
% Proba
%%%
-\setKVdefault[ClesProba]{Echelle=false,Arbre=false,Branche=2,Angle=60,Rayon=0.25,LongueurEchelle=5,Affichage=0,Grille=1,Incline}
+\def\filedateProba{2024/08/15}%
+\def\fileversionProba{0.1a}%
+\message{-- \filedateProba\space v\fileversionProba}%
+%
+\setKVdefault[ClesProba]{Echelle=false,Arbre=false,Branche=2,Angle=60,Rayon=0.25,LongueurEchelle=5,Affichage=0,Grille=1,Incline,SansProba=false}
\def\Updatetoksproba#1/#2\nil{\addtotok\toklistepointproba{"#1","\footnotesize #2",}}
\def\Updatetoksprobapdf#1/#2\nil{\addtotok\toklistepointproba{"#1","\noexpand\footnotesize #2",}}
@@ -35,6 +39,8 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ boolean SansProba;
+ SansProba=\useKV[ClesProba]{SansProba};
pair A,B,C[],D[];%les noeuds de l'arbre
%Figure(-10u,-10u,10u,10u);
A=u*(1,1);
@@ -58,8 +64,10 @@
fi;
marque_s:=marque_s*2;
labeloffset:=labeloffset*3;
+ if SansProba=false:
label.bot(btex 0 etex,A);
label.bot(btex 1 etex,B);
+ fi;
labeloffset:=labeloffset/3;
n:=1;%compter les informations
k:=1;% compter les informations noeud pour les placer
@@ -93,7 +101,7 @@
toto(#2);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfCGeometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;boolean SansProba;SansProba=\useKV[ClesProba]{SansProba};}]
pair A,B,C[],D[];%les noeuds de l'arbre
Figure(-10u,-10u,10u,10u);
A=u*(1,1);
@@ -117,8 +125,10 @@
fi;
marque_s:=marque_s*2;
labeloffset:=labeloffset*3;
+ if SansProba=false:
label.bot(btex 0 etex,A);
label.bot(btex 1 etex,B);
+ fi;
labeloffset:=labeloffset/3;
n:=1;%compter les informations
k:=1;% compter les informations noeud pour les placer
diff --git a/macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex b/macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex
index f1bdc0307f..871f80d650 100644
--- a/macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex
@@ -1,6 +1,10 @@
%%%%
% Prog de calculs "simples"
%%%%
+\def\filedateProgCalcul{2024/08/04}%
+\def\fileversionProgCalcul{0.1}%
+\message{-- \filedateProgCalcul\space v\fileversionProgCalcul}%
+%
\setKVdefault[ClesProg]{%
Ecart=2em,%
Direct,%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPropor.tex b/macros/latex/contrib/profcollege/latex/PfCPropor.tex
index 1e6526f41b..1c8aba3324 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPropor.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPropor.tex
@@ -1,6 +1,10 @@
%%%
% Proportionnalit\'e
%%%
+\def\filedatePropor{2024/09/04}%
+\def\fileversionPropor{0.1a}%
+\message{-- \filedatePropor\space v\fileversionPropor}%
+%
\setKVdefault[ClesPropor]{GrandeurA=Grandeur A,GrandeurB=Grandeur B,Largeur=1cm,Math=false,Stretch=1,ColorFill=white,CouleurTab=gray!15,Vertical=false,Simple=false,Condense=false}%
\tikzstyle{FlechePropor}=[-stealth]
@@ -201,49 +205,51 @@
\NewDocumentCommand\FlechePCG{mm}{%
\begin{tikzpicture}[remember picture,overlay,node distance=\getstrut\ht]%
- \node[inner sep=0pt] (MilieuH-#1) at ($(ProporG-#1)!0.25!(ProporD-#1)$) {};%
- \node[inner sep=0pt] (MilieuH-#2) at ($(ProporG-#2)!0.25!(ProporD-#2)$) {};%
- \node[inner sep=0pt] (MilieuB-#1) at ($(ProporG-#1)!0.75!(ProporD-#1)$) {};%
- \node[inner sep=0pt] (MilieuB-#2) at ($(ProporG-#2)!0.75!(ProporD-#2)$) {};%
+ \node[inner sep=0pt] (MilieuH-#1) at ($(ProporH-#1)!\PfCCoeffH!(ProporB-#1)$) {};%
+ \node[inner sep=0pt] (MilieuH-#2) at ($(ProporH-#2)!\PfCCoeffH!(ProporB-#2)$) {};%
+ \node[inner sep=0pt] (MilieuB-#1) at ($(ProporH-#1)!\PfCCoeffB!(ProporB-#1)$) {};%
+ \node[inner sep=0pt] (MilieuB-#2) at ($(ProporH-#2)!\PfCCoeffB!(ProporB-#2)$) {};%
\xintifboolexpr{#1<#2}{%
\coordinate[right of=MilieuH-#1] (aux1);%
- \coordinate[right of=MilieuH-#2] (aux2);%
- \coordinate[left of=MilieuB-#1] (aux3);%
+ \coordinate[left of=MilieuH-#2] (aux2);%
+ \coordinate[right of=MilieuB-#1] (aux3);%
\coordinate[left of=MilieuB-#2] (aux4);%
- \draw[out=30,in=-30,gray] (aux3) to (aux4);
+ \draw[FlechePropor,gray] (aux4) -- (aux1);
+ \draw[out=-30,in=30,gray] (aux2) to (aux4);
}{%
- \coordinate[right of=MilieuH-#1] (aux1);%
+ \coordinate[left of=MilieuH-#1] (aux1);%
\coordinate[right of=MilieuH-#2] (aux2);%
\coordinate[left of=MilieuB-#1] (aux3);%
- \coordinate[left of=MilieuB-#2] (aux4);%
- \draw[out=-30,in=30,gray] (aux3) to (aux4);
+ \coordinate[right of=MilieuB-#2] (aux4);%
+ \draw[FlechePropor,gray] (aux1) -- (aux4);
+ \draw[out=30,in=-30,gray] (aux3) to (aux1);
}%
\draw[gray] (aux2) -- (aux3);
- \draw[FlechePropor,gray] (aux4) -- (aux1);
\end{tikzpicture}%
}%
\NewDocumentCommand\FlechePCD{mm}{%
\begin{tikzpicture}[remember picture,overlay,node distance=\getstrut\ht]%
- \node[inner sep=0pt] (MilieuH-#1) at ($(ProporG-#1)!0.25!(ProporD-#1)$) {};%
- \node[inner sep=0pt] (MilieuH-#2) at ($(ProporG-#2)!0.25!(ProporD-#2)$) {};%
- \node[inner sep=0pt] (MilieuB-#1) at ($(ProporG-#1)!0.75!(ProporD-#1)$) {};%
- \node[inner sep=0pt] (MilieuB-#2) at ($(ProporG-#2)!0.75!(ProporD-#2)$) {};%
+ \node[inner sep=0pt] (MilieuH-#1) at ($(ProporH-#1)!\PfCCoeffH!(ProporB-#1)$) {};%
+ \node[inner sep=0pt] (MilieuH-#2) at ($(ProporH-#2)!\PfCCoeffH!(ProporB-#2)$) {};%
+ \node[inner sep=0pt] (MilieuB-#1) at ($(ProporH-#1)!\PfCCoeffB!(ProporB-#1)$) {};%
+ \node[inner sep=0pt] (MilieuB-#2) at ($(ProporH-#2)!\PfCCoeffB!(ProporB-#2)$) {};%
\xintifboolexpr{#1<#2}{%
\coordinate[right of=MilieuH-#1] (aux1);%
- \coordinate[right of=MilieuH-#2] (aux2);%
- \coordinate[left of=MilieuB-#1] (aux3);%
+ \coordinate[left of=MilieuH-#2] (aux2);%
+ \coordinate[right of=MilieuB-#1] (aux3);%
\coordinate[left of=MilieuB-#2] (aux4);%
- \draw[out=150,in=-150,gray] (aux1) to (aux2);
+ \draw[FlechePropor,gray] (aux3) -- (aux2);
+ \draw[out=-150,in=150,gray] (aux1) to (aux3);
}{%
- \coordinate[right of=MilieuH-#1] (aux1);%
+ \coordinate[left of=MilieuH-#1] (aux1);%
\coordinate[right of=MilieuH-#2] (aux2);%
\coordinate[left of=MilieuB-#1] (aux3);%
- \coordinate[left of=MilieuB-#2] (aux4);%
- \draw[out=-150,in=150,gray] (aux1) to (aux2);
+ \coordinate[right of=MilieuB-#2] (aux4);%
+ \draw[FlechePropor,gray] (aux2) -- (aux3);
+ \draw[out=-150,in=150,gray] (aux2) to (aux4);
}%
\draw[gray] (aux4) -- (aux1);
- \draw[FlechePropor,gray] (aux2) -- (aux3);
\end{tikzpicture}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex b/macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex
index ad9f1b0edb..fc74fea9c5 100644
--- a/macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex
@@ -1,6 +1,10 @@
%%%
% Ppt\'es des droites (6eme)
%%%
+\def\filedatePptesDroites{2024/08/04}%
+\def\fileversionPptesDroites{0.1}%
+\message{-- \filedatePptesDroites\space v\fileversionPptesDroites}%
+%
\setKVdefault[ClesDroites]{Brouillon=false,CitePropriete=false,Num=1,Figure=false,Remediation=false,FigureSeule=false}
\newcommand\Redaction[4][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex b/macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex
index 1d8a929939..d51387cd78 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex
@@ -1,30 +1,40 @@
%%%
% Puissances 4
%%%
-\setKVdefault[ClesPQuatre]{Couleur=Gray,Largeur=2cm,LargeurUn=2cm,Multiplication,Entier,Nombre,Exposant=false,Libre=false,Texte=false,Echelle=2}%
+\def\filedatePquatre{2024/08/04}%
+\def\fileversionPquatre{0.1}%
+\message{-- \filedatePquatre\space v\fileversionPquatre}%
+%
+\setKVdefault[ClesPQuatre]{Couleur=Gray,Largeur=2cm,LargeurUn=2cm,Multiplication,Entier,Nombre,Exposant=false,Libre=false,Texte=false,Echelle=2,Correction=false}%
\defKV[ClesPQuatre]{Addition=\setKV[ClesPQuatre]{Multiplication=false}}%
\defKV[ClesPQuatre]{Relatif=\setKV[ClesPQuatre]{Entier=false}}%
\defKV[ClesPQuatre]{Puissance=\setKV[ClesPQuatre]{Exposant}}%
\defKV[ClesPQuatre]{Autre=\setKV[ClesPQuatre]{Nombre=false}\setKV[ClesPQuatre]{Libre}}%
\defKV[ClesPQuatre]{Consignes=\setKV[ClesPQuatre]{Texte}}%
+\defKV[ClesPQuatre]{Solution=\setKV[ClesPQuatre]{Correction}\setsepchar{,}\ignoreemptyitems\readlist*\PQuatreListeS{#1}\reademptyitems}%
+\defKV[ClesPQuatre]{Graine=\PfCGraineAlea{#1}}%
\newtoks\toklistePQuatreh%
\newtoks\toklistePQuatrev%
+\newtoks\toklistePQuatres%
\def\UpdatetoksPQuatreh#1\nil{\addtotok\toklistePQuatreh{"#1",}}%
\def\UpdatetoksPQuatrev#1\nil{\addtotok\toklistePQuatrev{"#1",}}%
+\def\UpdatetoksPQuatres#1\nil{\addtotok\toklistePQuatres{"#1",}}%
\NewDocumentCommand\PQuatre{o +m}{%
\useKVdefault[ClesPQuatre]%
\toklistePQuatreh{}%
\toklistePQuatrev{}%
+ \toklistePQuatres{}%
\setKV[ClesPQuatre]{#1}%
\ifboolKV[ClesPQuatre]{Nombre}{%
\ifboolKV[ClesPQuatre]{Exposant}{%
- \def\PQuatreListe{$10^{-10}$,$10^{-9}$,$10^{-8}$,$10^{-7}$,$10^{-6}$,$10^{-5}$,$10^{-4}$,$10^{-3}$,$10^{-2}$,$10^{2}$,$10^{3}$,$10^{4}$,$10^{5}$,$10^{6}$,$10^{7}$,$10^{8}$,$10^{9}$,$10^{10}$}%
+ \def\PQuatreListe{-10,-9,-8,-7,-6,-5,-4,-3,-2,2,3,4,5,6,7,8,9,10}%
\MelangeListe{\PQuatreListe}{7}%
- \readlist*\PQuatreListeH{\faa}%
+ \ignoreemptyitems\readlist*\PQuatreListeH{\faa}%
\MelangeListe{\PQuatreListe}{7}%
- \readlist*\PQuatreListeV{\faa}%
+ \ignoreemptyitems\readlist*\PQuatreListeV{\faa}%
+ \reademptyitems
\foreachitem\compteur\in\PQuatreListeH{\expandafter\UpdatetoksPQuatreh\compteur\nil}%
\foreachitem\compteur\in\PQuatreListeV{\expandafter\UpdatetoksPQuatrev\compteur\nil}%
}{%
@@ -39,7 +49,7 @@
\foreachitem\compteur\in\PQuatreListeV{\expandafter\UpdatetoksPQuatrev\compteur\nil}%
}{%
% On choisit aléatoirement les listes de nombres de -10 à -2 union 2 à 10 en faisant deux listes : horizontale et verticale
- \def\PQuatreListe{$-10$,$-9$,$-8$,$-7$,$-6$,$-5$,$-4$,$-3$,$-2$,2,3,4,5,6,7,8,9,10}%
+ \def\PQuatreListe{-10,-9,-8,-7,-6,-5,-4,-3,-2,2,3,4,5,6,7,8,9,10}%
\MelangeListe{\PQuatreListe}{7}%
\readlist*\PQuatreListeH{\faa}%
\MelangeListe{\PQuatreListe}{7}%
@@ -55,6 +65,10 @@
\setsepchar{,}%
\foreachitem\compteur\in\PQuatreListes[1]{\expandafter\UpdatetoksPQuatrev\compteur\nil}%
\foreachitem\compteur\in\PQuatreListes[2]{\expandafter\UpdatetoksPQuatreh\compteur\nil}%
+ % On crée éventuellement la liste des solutions
+ \ifboolKV[ClesPQuatre]{Correction}{%
+ \foreachitem\compteur\in\PQuatreListeS{\expandafter\UpdatetoksPQuatres\compteur\nil}%
+ }{}%
}%
% Une fois les listes construites, on dessine et on place les listes.
\PQuatreGrille{\the\toklistePQuatrev}{\the\toklistePQuatreh}%
@@ -69,10 +83,12 @@
PQEchelle=\useKV[ClesPQuatre]{Echelle};
color PQfond;
PQfond=\useKV[ClesPQuatre]{Couleur};
- boolean PQLibre,PQMultiplication,PQTexte;
+ boolean PQLibre,PQMultiplication,PQTexte,Correction,Exposant;
PQLibre:=\useKV[ClesPQuatre]{Libre};
PQMultiplication=\useKV[ClesPQuatre]{Multiplication};
PQTexte:=\useKV[ClesPQuatre]{Texte};
+ Correction=\useKV[ClesPQuatre]{Correction};
+ Exposant=\useKV[ClesPQuatre]{Exposant};
if PQTexte:
string PQConsignes;
@@ -111,6 +127,12 @@
if PQLibre:
if PQTexte:
label.llft(TEX("\begin{minipage}{"&decimal(PQLargeurUn)&"pt}"&PQConsignes&"\end{minipage}") scaled PQEchelle,A);
+ else:
+ if PQMultiplication:
+ label.llft(TEX("$\times$") scaled PQEchelle,A);
+ else:
+ label.llft(TEX("$+$") scaled PQEchelle,A);
+ fi;
fi;
else:
if PQMultiplication:
@@ -119,24 +141,72 @@
label.llft(TEX("$+$") scaled PQEchelle,A);
fi;
fi;
+ %
+ string Textev[];
+ string Texteh[];
labeloffset:=labeloffset/2;
vardef Vertical(text t)=
n:=0;
for p_=t:
+ if PQLibre:
label.lft(TEX(p_) scaled PQEchelle,A+(0,n*PQLargeur+PQLargeur/2));
+ else:
+ if Exposant:
+ label.lft(TEX("$10^{"&p_&"}$") scaled PQEchelle,A+(0,n*PQLargeur+PQLargeur/2));
+ else:
+ label.lft(TEX("\num{"&p_&"}") scaled PQEchelle,A+(0,n*PQLargeur+PQLargeur/2));
+ fi;
+ Textev[n]=p_;
+ fi;
n:=n+1;
endfor;
enddef;
vardef Horizontal(text t)=
n:=0;
for p_=t:
+ if PQLibre:
label.bot(TEX(p_) scaled PQEchelle,A+(n*PQLargeur+PQLargeur/2,0));
+ else:
+ if Exposant:
+ label.bot(TEX("$10^{"&p_&"}$") scaled PQEchelle,A+(n*PQLargeur+PQLargeur/2,0));
+ else:
+ label.bot(TEX("\num{"&p_&"}") scaled PQEchelle,A+(n*PQLargeur+PQLargeur/2,0));
+ fi;
+ Texteh[n]=p_;
+ fi;
n:=n+1;
endfor;
enddef;
labeloffset:=labeloffset*4;
Vertical(#1);
Horizontal(#2);
+ % on affiche la solution
+ vardef AfficheSolution(text t)=
+ n:=0;
+ for p_=t:
+ label(TEX(p_),M[n mod nclargeur][n div nchauteur]);
+ n:=n+1;
+ endfor;
+ enddef;
+ if Correction:
+ if PQLibre=false:
+ for k=0 upto (nclargeur-1):
+ for l=0 upto (nchauteur-1):
+ if Exposant:
+ label(TEX("\Large$10^{\fpeval{"&Texteh[k]&"+"&Textev[l]&"}}$"),M[k][l]);
+ else:
+ if PQMultiplication:
+ label(TEX("\Huge\num{\fpeval{"&Texteh[k]&"*"&Textev[l]&"}}"),M[k][l]);
+ else:
+ label(TEX("\Huge\num{\fpeval{"&Texteh[k]&"+"&Textev[l]&"}}"),M[k][l]);
+ fi;
+ fi;
+ endfor;
+ endfor;
+ else:
+ AfficheSolution(\the\toklistePQuatres);
+ fi;
+ fi;
\end{mplibcode}
\else%
\begin{mpost}[mpsettings={Largeur=\useKV[ClesPQuatre]{Largeur};Largeur=\useKV[ClesPQuatre]{Largeur};LargeurUn=\useKV[ClesPQuatre]{LargeurUn};Echelle=\useKV[ClesPQuatre]{Echelle};color fond;fond=\useKV[ClesPQuatre]{Couleur};boolean Libre,Multiplication,Texte;Libre:=\useKV[ClesPQuatre]{Libre};Multiplication=\useKV[ClesPQuatre]{Multiplication};Texte:=\useKV[ClesPQuatre]{Texte};if Texte:string Consignes;Consignes=\useKV[ClesPQuatre]{Consignes};fi;}]
diff --git a/macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex b/macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex
index 7f00ac287e..865982ee35 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex
@@ -1,6 +1,10 @@
%%%
% Puzzle Somme Pyramide
%%%
+\def\filedatePuzzleSommePyramide{2024/08/04}%
+\def\fileversionPuzzleSommePyramide{0.1}%
+\message{-- \filedatePuzzleSommePyramide\space v\fileversionPuzzleSommePyramide}%
+%
\setKVdefault[ClesPuzzleP]{Largeur=40pt,Etages=4,Graines=false,Solutions=false,Jeu,EnonceQuestion=false,NbLignes=7}
\defKV[ClesPuzzleP]{Graine=\setKV[ClesPuzzleP]{Graines}}%
\defKV[ClesPuzzleP]{Solution=\setKV[ClesPuzzleP]{Solutions}\setKV[ClesPuzzleP]{Jeu=false}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPyraVoca.tex b/macros/latex/contrib/profcollege/latex/PfCPyraVoca.tex
index bfda696300..983a8b1eb9 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPyraVoca.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPyraVoca.tex
@@ -1,6 +1,10 @@
%%%
% PyraVoca
%%%
+\def\filedatePyraVoca{2024/08/04}%
+\def\fileversionPyraVoca{0.1}%
+\message{-- \filedatePyraVoca\space v\fileversionPyraVoca}%
+%
\newlength{\PfCPyraVocaHauteur}
\setKVdefault[PyraVoca]{Solution=false,Largeur=15pt}
diff --git a/macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex b/macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex
index fdd5c7b685..0b00e0e4ac 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex
@@ -1,6 +1,10 @@
%%%
% Pyramide de calculs
%%%
+\def\filedatePyraCalc{2024/08/04}%
+\def\fileversionPyraCalc{0.1}%
+\message{-- \filedatePyraCalc\space v\fileversionPyraCalc}%
+%
\newcommand\DessinePyramideNombreMul[1]{%
\ifluatex
\mplibforcehmode
@@ -241,7 +245,7 @@
\fi
}%
-\setKVdefault[ClesPyramide]{Etages=5,Largeur=2cm,Hauteur=1cm,Vide=false,Inverse=false,Double=false,Couleur=Crimson,Multiplication=false,CouleurNombre=blue,Produit=false,Solution=false,Aide=false,Cote=4cm}%
+\setKVdefault[ClesPyramide]{ToutesOperations=false,Etages=5,Largeur=2cm,Hauteur=1cm,Vide=false,Inverse=false,Double=false,Couleur=Crimson,Multiplication=false,CouleurNombre=blue,Produit=false,Solution=false,Aide=false,Cote=4cm}%
\newtoks\toklistecaseP%
\def\UpdatetoksPyramide#1\nil{\addtotok\toklistecaseP{"#1",}}%
@@ -250,6 +254,9 @@
\NewDocumentCommand\PyramideNombre{o m}{%
\useKVdefault[ClesPyramide]%
\setKV[ClesPyramide]{#1}%
+ \ifboolKV[ClesPyramide]{ToutesOperations}{%
+ \PyramideOp[#1]{#2}%
+ }{%
\ifboolKV[ClesPyramide]{Multiplication}{%
\ifx\bla#2\bla%
\setKV[ClesPyramide]{Vide=true}%
@@ -278,4 +285,302 @@
}{Le nombre d'éléments dans la liste des propositions n'est pas compatible avec le nombre d'étages choisi.}%
\fi%
}%
+}%
+}%
+
+\setKVdefault[PyramideOp]{Rayon=5mm,Graines=false,Etages=5,Solution=false,Relatifs=false,Case=-1}
+\defKV[PyramideOp]{Graine=\setKV[PyramideOp]{Graines}}
+\defKV[PyramideOp]{CouleurSolution=\setKV[PyramideOp]{Solution}}
+
+\NewDocumentCommand\PyramideOp{om}{%
+ \useKVdefault[PyramideOp]%
+ \setKV[PyramideOp]{#1}%
+ \ifboolKV[PyramideOp]{Relatifs}{%
+ \BuildPyramideOpRelatifs{#2}%
+ }{%
+ \BuildPyramideOp{#2}%
+ }%
+}%
+
+\NewDocumentCommand\BuildPyramideOp{m}{%
+ \ifluatex
+ \mplibforcehmode
+ \mplibnumbersystem{double}
+ \begin{mplibcode}
+ Etages=\useKV[PyramideOp]{Etages};
+ Rayon=\useKV[PyramideOp]{Rayon};
+ Case=\useKV[PyramideOp]{Case};
+
+ boolean Graines,Solution,Allume[][];
+
+ Graines=\useKV[PyramideOp]{Graines};
+ if Graines:
+ randomseed:=\useKV[PyramideOp]{Graine};
+ fi;
+
+ Solution=\useKV[PyramideOp]{Solution};
+ if Solution:
+ color CouleurSolution;
+ CouleurSolution=\useKV[PyramideOp]{CouleurSolution};
+ fi;
+
+ vardef ChoixOperation(expr Nba,Nbb)=
+ if (Nba<Nbb) or (Nba=Nbb):
+ if Nba*Nbb>200:
+ ChoixOp:=ceiling(uniformdeviate(1));
+ else:
+ ChoixOp:=ceiling(uniformdeviate(2));
+ fi;
+ else:
+ if (Nba mod Nbb)<>0:
+ if Nba*Nbb>200:
+ ChoixAlea:=uniformdeviate(1);
+ if ChoixAlea<0.5:
+ ChoixOp:=1;
+ else:
+ ChoixOp:=3;
+ fi;
+ else:
+ ChoixOp:=ceiling(uniformdeviate(3));
+ fi;
+ else:
+ if Nba*Nbb>200:
+ ChoixAlea:=uniformdeviate(1);
+ if ChoixAlea<0.5:
+ ChoixOp:=1;
+ else:
+ ChoixOp:=ceiling(2+uniformdeviate(2));
+ fi;
+ else:
+ ChoixOp:=ceiling(uniformdeviate(4));
+ fi;
+ fi;
+ fi;
+ enddef;
+
+ numeric Nb[][],ChoixOp[][];
+
+ pair M[][],N[][];
+
+ for k=0 upto Etages-1:
+ for l=0 upto Etages-1-k:
+ M[k][l]=Rayon*(1,1)+2*Rayon*(l,k)+k*2*Rayon*(0.5,-1+cosd(30));
+ Allume[k][l]=false;
+ endfor;
+ endfor;
+ for k=0 upto Etages-2:
+ for l=0 upto Etages-2-k:
+ N[k][l]=Rayon*(1,1)+(Rayon,0)+2*Rayon*(l,k)+k*2*Rayon*(0.5,-1+cosd(30));
+ endfor;
+ endfor;
+
+ n:=0;
+
+ for p_=#1:
+ Nb[0][n]=p_;
+ if n=Case:
+ if n<Etages-1:
+ Allume[1][n]:=true;
+ else:
+ Allume[1][n-1]:=true;
+ fi;
+ else:
+ Allume[0][n]:=true;
+ fi;
+ n:=n+1;
+ endfor;
+
+ string Op[][];
+
+ % Détermination des opérations et des valeurs à indiquer.
+ for k=0 upto Etages-1:
+ for l=0 upto Etages-2-k:
+ ChoixOperation(Nb[k][l],Nb[k][l+1]);
+ if ChoixOp=1:
+ Op[k][l]="$+$";
+ Nb[k+1][l]=Nb[k][l]+Nb[k][l+1];
+ elseif ChoixOp=2:
+ Op[k][l]="$\times$";
+ Nb[k+1][l]=Nb[k][l]*Nb[k][l+1];
+ elseif ChoixOp=3:
+ Op[k][l]="$\_$";
+ Nb[k+1][l]=Nb[k][l]-Nb[k][l+1];
+ elseif ChoixOp=4:
+ Op[k][l]="$\div$";
+ Nb[k+1][l]=Nb[k][l]/Nb[k][l+1];
+ fi;
+ endfor;
+ endfor;
+ %Affichage
+ for k=0 upto Etages-1:
+ for l=0 upto Etages-1-k:
+ if Allume[k][l]=false:
+ if Solution:
+ fill cercles(M[k][l],Rayon) withcolor CouleurSolution;
+ label(decimal(Nb[k][l]),M[k][l]);
+ fi;
+ else:
+ label(decimal(Nb[k][l]),M[k][l]);
+ fi;
+ trace cercles(M[k][l],Rayon);
+ endfor;
+ endfor;
+ for k=0 upto Etages-2:
+ for l=0 upto Etages-2-k:
+ fill cercles(N[k][l],2mm) withcolor 0.8white;
+ trace cercles(N[k][l],2mm);
+ label(TEX(Op[k][l]),N[k][l]);
+ endfor;
+ endfor;
+ \end{mplibcode}
+ \mplibnumbersystem{scaled}
+ \fi
+}
+
+\NewDocumentCommand\BuildPyramideOpRelatifs{m}{%
+ \ifluatex
+ \mplibforcehmode
+ \mplibnumbersystem{double}
+ \begin{mplibcode}
+ Etages=\useKV[PyramideOp]{Etages};
+ Rayon=\useKV[PyramideOp]{Rayon};
+ Case=\useKV[PyramideOp]{Case};
+
+ boolean Graines,Solution,Allume[][];
+
+ Graines=\useKV[PyramideOp]{Graines};
+ if Graines:
+ randomseed:=\useKV[PyramideOp]{Graine};
+ fi;
+
+ Solution=\useKV[PyramideOp]{Solution};
+ if Solution:
+ color CouleurSolution;
+ CouleurSolution=\useKV[PyramideOp]{CouleurSolution};
+ fi;
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ vardef ChoixOperation(expr Nba,Nbb)=
+ if (Nba=Nbb):
+ if Nba*Nbb>200:
+ ChoixOp:=ceiling(uniformdeviate(1));
+ else:
+ ChoixOp:=ceiling(uniformdeviate(2));
+ fi;
+ elseif (Nba+Nbb=0):
+ if abs(Nba*Nbb)>200:
+ ChoixOp:=3;
+ else:
+ ChoixAlea:=uniformdeviate(1);
+ if ChoixAlea<0.5:
+ ChoixOp:=2;
+ else:
+ ChoixOp:=3;
+ fi;
+ fi;
+ else:
+ if (abs(Nba) mod abs(Nbb))<>0:
+ if abs(Nba*Nbb)>200:
+ ChoixAlea:=uniformdeviate(1);
+ if ChoixAlea<0.5:
+ ChoixOp:=1;
+ else:
+ ChoixOp:=3;
+ fi;
+ else:
+ ChoixOp:=ceiling(uniformdeviate(3));
+ fi;
+ else:
+ if abs(Nba*Nbb)>200:
+ ChoixAlea:=uniformdeviate(1);
+ if ChoixAlea<0.5:
+ ChoixOp:=1;
+ else:
+ ChoixOp:=ceiling(2+uniformdeviate(2));
+ fi;
+ else:
+ ChoixOp:=ceiling(uniformdeviate(4));
+ fi;
+ fi;
+ fi;
+ enddef;
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ numeric Nb[][],ChoixOp[][];
+
+ pair M[][],N[][];
+
+ for k=0 upto Etages-1:
+ for l=0 upto Etages-1-k:
+ M[k][l]=Rayon*(1,1)+2*Rayon*(l,k)+k*2*Rayon*(0.5,-1+cosd(30));
+ Allume[k][l]=false;
+ endfor;
+ endfor;
+ for k=0 upto Etages-2:
+ for l=0 upto Etages-2-k:
+ N[k][l]=Rayon*(1,1)+(Rayon,0)+2*Rayon*(l,k)+k*2*Rayon*(0.5,-1+cosd(30));
+ endfor;
+ endfor;
+
+ n:=0;
+
+ for p_=#1:
+ Nb[0][n]=p_;
+ if n=Case:
+ if n<Etages-1:
+ Allume[1][n]:=true;
+ else:
+ Allume[1][n-1]:=true;
+ fi;
+ else:
+ Allume[0][n]:=true;
+ fi;
+ n:=n+1;
+ endfor;
+
+ string Op[][];
+
+ % Détermination des opérations et des valeurs à indiquer.
+ for k=0 upto Etages-1:
+ for l=0 upto Etages-2-k:
+ ChoixOperation(Nb[k][l],Nb[k][l+1]);
+ if ChoixOp=1:
+ Op[k][l]="$+$";
+ Nb[k+1][l]=Nb[k][l]+Nb[k][l+1];
+ elseif ChoixOp=2:
+ Op[k][l]="$\times$";
+ Nb[k+1][l]=Nb[k][l]*Nb[k][l+1];
+ elseif ChoixOp=3:
+ Op[k][l]="$\_$";
+ Nb[k+1][l]=Nb[k][l]-Nb[k][l+1];
+ elseif ChoixOp=4:
+ Op[k][l]="$\div$";
+ Nb[k+1][l]=Nb[k][l]/Nb[k][l+1];
+ fi;
+ endfor;
+ endfor;
+ %Affichage
+ for k=0 upto Etages-1:
+ for l=0 upto Etages-1-k:
+ if Allume[k][l]=false:
+ if Solution:
+ fill cercles(M[k][l],Rayon) withcolor CouleurSolution;
+ label(TEX("\num{"&decimal(Nb[k][l])&"}"),M[k][l]);
+ fi;
+ else:
+ label(TEX("\num{"&decimal(Nb[k][l])&"}"),M[k][l]);
+ fi;
+ trace cercles(M[k][l],Rayon);
+ endfor;
+ endfor;
+ for k=0 upto Etages-2:
+ for l=0 upto Etages-2-k:
+ fill cercles(N[k][l],2mm) withcolor 0.8white;
+ trace cercles(N[k][l],2mm);
+ label(TEX(Op[k][l]),N[k][l]);
+ endfor;
+ endfor;
+ \end{mplibcode}
+ \mplibnumbersystem{scaled}
+ \fi
}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCPythagore.tex b/macros/latex/contrib/profcollege/latex/PfCPythagore.tex
index 5c922d98b0..f5c95d91e4 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPythagore.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPythagore.tex
@@ -1,6 +1,10 @@
%%%
% Le th\'eor\`eme de Pythagore
%%%
+\def\filedatePythagore{2024/08/04}%
+\def\fileversionPythagore{0.1}%
+\message{-- \filedatePythagore\space v\fileversionPythagore}%
+%
\setKVdefault[ClesPythagore]{Exact=false,AvantRacine=false,Racine=false,Entier=false,Egalite=false,Precision=2,Soustraction=false,Figure=false,FigureSeule=false,Angle=0,Echelle=1cm,Reciproque=false,ReciColonnes=false,Faible=false,Unite=cm,EnchaineA=false,EnchaineB=false,EnchaineC=false,Perso=false,AllPerso=false,SansMots=false,Decalage=5mm,ModeleCouleur=5}%
\defKV[ClesPythagore]{ValeurA=\setKV[ClesPythagore]{EnchaineA}}%
\defKV[ClesPythagore]{ValeurB=\setKV[ClesPythagore]{EnchaineB}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex b/macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex
index 8edee39f16..5bcf626ddc 100644
--- a/macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex
@@ -1,6 +1,10 @@
%%%
% Questions Flash
%%%
+\def\filedateQFlash{2024/08/04}%
+\def\fileversionQFlash{0.1}%
+\message{-- \filedateQFlash\space v\fileversionQFlash}%
+%
\tcbset{Expression/.style={colback=white,valign=center,left=0mm,right=0mm,top=1mm,bottom=1mm,colframe=white}}%
\tcbset{ExpressionSerie1/.style={colback=\useKV[ClesFlash]{Couleur1},left=0mm,right=0mm,top=1mm,bottom=1mm}}%
\tcbset{ExpressionSerie2/.style={colback=\useKV[ClesFlash]{Couleur2},left=0mm,right=0mm,top=1mm,bottom=1mm}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex b/macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
index aaf9a67f20..8aee438e62 100644
--- a/macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
@@ -1,6 +1,10 @@
%%%
% R\'eponses \`a relier
%%%
+\def\filedateQRelier{2024/08/04}%
+\def\fileversionQRelier{0.1}%
+\message{-- \filedateQRelier\space v\fileversionQRelier}%
+%
\setKVdefault[ClesRelie]{Solution=false,LargeurG=5cm,LargeurD=2cm,Stretch=1.5,Ecart=2cm,Couleur=black}%
\defKV[ClesRelie]{Graine=\PfCGraineAlea{#1}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex b/macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex
index aa896d1185..119b5d0944 100644
--- a/macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex
@@ -1,6 +1,10 @@
%%%
% Qui suis-je
%%%
+\def\filedateQsuisuisje{2024/08/04}%
+\def\fileversionQsuisuisje{0.1}%
+\message{-- \filedateQsuisuisje\space v\fileversionQsuisuisje}%
+%
\setKVdefault[Quisuisje]{Solution=false,Largeur=5mm,Colonnes=5,CodePerso=false,TexteA=Lettre,TexteB=R\'esultat du calcul}%
\newcommand\QuisuisjeEnonce{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCRLE.tex b/macros/latex/contrib/profcollege/latex/PfCRLE.tex
index a8f035a577..8fabde9116 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRLE.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRLE.tex
@@ -1,6 +1,10 @@
%%%
% Codage RLE
%%%
+\def\filedateRLE{2024/08/04}%
+\def\fileversionRLE{0.1}%
+\message{-- \filedateRLE\space v\fileversionRLE}%
+%
\setKVdefault[RLE]{Largeur=10pt,Taille=5,Unite=1cm,Solution=false,Enonce=true}
\newtoks\toklisterle
diff --git a/macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex b/macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
index 1c48ab8efc..ca58c321fd 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
@@ -1,6 +1,10 @@
%%%
% Rangement des nombres
%%%
+\def\filedateRgtNb{2024/08/04}%
+\def\fileversionRgtNb{0.1}%
+\message{-- \filedateRgtNb\space v\fileversionRgtNb}%
+%
\setKVdefault[ClesRgt]{Croissant,Decroissant=false,Strict,Fraction=false,Details=false,Seul=false}%
\dtlexpandnewvalue%
diff --git a/macros/latex/contrib/profcollege/latex/PfCRapido.tex b/macros/latex/contrib/profcollege/latex/PfCRapido.tex
index fa3a16bf7e..cb24c2b404 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRapido.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRapido.tex
@@ -1,6 +1,10 @@
%%%
% Rapido
%%%
+\def\filedateRapido{2024/08/04}%
+\def\fileversionRapido{0.1}%
+\message{-- \filedateRapido\space v\fileversionRapido}%
+%
%% D'après https://www.facebook.com/groups/994675223903586/user/100017057226847
%% et une programmation de Laurent Lassale-Carrere
\newcounter{PfCnexo}
diff --git a/macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex b/macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
index c2a4d95954..1d204baf90 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
@@ -1,6 +1,10 @@
%%%
% Formules
%%%
+\def\filedateRapFormules{2024/08/04}%
+\def\fileversionRapFormules{0.1}%
+\message{-- \filedateRapFormules\space v\fileversionRapFormules}%
+%
\setKVdefault[ClesFormule]{Perimetre=false,Aire=false,Volume=false,Surface=carr\'e,Solide=pav\'e,Angle=0,Ancre={(0,0)},Largeur=5cm,Couleur=white,EchelleEspace=70,Echelle=1cm}
\def\MPFigureCarreCode{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCRecyclage.tex b/macros/latex/contrib/profcollege/latex/PfCRecyclage.tex
index 371688f120..f99ced507f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRecyclage.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRecyclage.tex
@@ -1,6 +1,10 @@
%%%
% Logos Recyclage
%%%
+\def\filedateRecyclage{2024/08/04}%
+\def\fileversionRecyclage{0.1}%
+\message{-- \filedateRecyclage\space v\fileversionRecyclage}%
+%
\setKVdefault[Recyclage]{Ticket,Papier=false,Verre=false,Bouteille=false,Carton=false,Couleurs}%
\defKV[Recyclage]{Couleur=\setKV[Recyclage]{Couleurs=false}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCReperage.tex b/macros/latex/contrib/profcollege/latex/PfCReperage.tex
index 23e7bd2775..d2dec50817 100644
--- a/macros/latex/contrib/profcollege/latex/PfCReperage.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCReperage.tex
@@ -1,6 +1,10 @@
%%%
% Reperage
%%%
+\def\filedateReperage{2024/08/04}%
+\def\fileversionReperage{0.1}%
+\message{-- \filedateReperage\space v\fileversionReperage}%
+%
\setKVdefault[ClesReperage]{Unitex=1,Pasx=1,Unitey=1,Pasy=1,Unitez=1,Pasz=1,DemiDroite=false,Droite=false,Plan=false,Trace=false,ListeSegment={},Espace=false,Sphere=false,AnglePhi=30,CouleurLa=white,CouleurLon=Tomato,AffichageUnites=true,MarquePrimaire=true,AffichageNom=false,AffichageGrad=false,AffichageAbs=0,AffichageCoord=false,LectureCoord=false,ValeurUnitex=1,ValeurUnitey=1,ValeurOrigine=0,NomOrigine=O,EchelleEspace=50,CouleurCoord=black,Thermometre=false,Mercure=false,CouleurMercure=black,Celsius,Kelvin=false,Farenheit=false,ValeurMin=-4000,ValeurMax=4000,ValeurMiny=-4000,ValeurMaxy=4000,Etages=4,Code=false,Globe=false,Rho=1500,Phi=22,Theta=10,CouleurE=orange,CouleurG=green,Axes=false,TypeProj="persp",Niveaux=false,Decale=false,Tiret=false,Cadre=false,ModeleCouleur=5,EchelleCroix=1,CouleurCroix=black}
\defKV[ClesReperage]{Traces=\setKV[ClesReperage]{Code}}%
\defKV[ClesReperage]{Niveau=\setKV[ClesReperage]{Etages=#1}\setKV[ClesReperage]{Niveaux}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex b/macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
index 390c1a9caa..47ed10c376 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
@@ -1,7 +1,11 @@
%%%
% Diff\'erentes représentations graphiques
%%%
-\setKVdefault[TraceG]{Millimetre=false,Grille=false,Graduations=false,PasGradX=1,PasGradY=1,PasGrilleX=1,PasGrilleY=1,Xmin=-5.5,Xmax=5.5,Xstep=1,Ymin=-5.5,Ymax=5.5,Ystep=1,Bornea=-5.5,Borneb=5.5,LabelX={},LabelY={},LegendeX=false,LegendeY=false,LabelC=0.5,NomCourbe={},Origine={(5.5,5.5)},Fonction=false,Points=false,Invisible=false,CouleurPoint=red,CouleurTrace=black,Epaisseur=1,Relie=false,RelieSegment=false,Marque=dot,Code=false,Vide=false,NbPointsCourbe=100,Tiret=false}%
+\def\filedateRepGraph{2024/08/20}%
+\def\fileversionRepGraph{0.1a}%
+\message{-- \filedateRepGraph\space v\fileversionRepGraph}%
+%
+\setKVdefault[TraceG]{Millimetre=false,Grille=false,Graduations=false,PasGradX=1,PasGradY=1,PasGrilleX=1,PasGrilleY=1,Xmin=-5.5,Xmax=5.5,Xstep=1,Ymin=-5.5,Ymax=5.5,Ystep=1,Bornea=-5.5,Borneb=5.5,LabelX={},LabelY={},LegendeX=false,LegendeY=false,LabelC=0.5,NomCourbe={},Origine={(5.5,5.5)},Fonction=false,Points=false,Invisible=false,CouleurPoint=red,CouleurTrace=black,Epaisseur=1,Relie=false,RelieSegment=false,Marque=dot,Code=false,Vide=false,NbPointsCourbe=100,Tiret=false,StyleTrace=0,Date=false}%
\defKV[TraceG]{Traces=\setKV[TraceG]{Code}}%
\defKV[TraceG]{LabelX=\setKV[TraceG]{LegendeX}}%
\defKV[TraceG]{LabelY=\setKV[TraceG]{LegendeY}}%
@@ -35,6 +39,8 @@
y.u=1cm/\useKV[TraceG]{Ystep};
grillex=\useKV[TraceG]{PasGrilleX};
grilley=\useKV[TraceG]{PasGrilleY};
+ pasgradx=\useKV[TraceG]{PasGradX};
+ pasgrady=\useKV[TraceG]{PasGradY};
pos=\useKV[TraceG]{LabelC};
marque_p:=str \useKV[TraceG]{Marque};
@@ -49,6 +55,9 @@
LegendeX:=\useKV[TraceG]{LegendeX};
LegendeY:=\useKV[TraceG]{LegendeY};
+ boolean Date;
+ Date=\useKV[TraceG]{Date};
+
boolean Relie;
Relie=\useKV[TraceG]{Relie};
@@ -73,12 +82,16 @@
fi;
if Graduations:
- for k=0 step grillex until (xmax-xmin):
+ for k=0 step pasgradx until (xmax-xmin):
trace ((0,-0.5mm)--(0,0.5mm)) shifted ((k*x.u,0) shifted Origine) withpen pencircle scaled1.25;
+ if Date:
+ label.bot(TEX(decimal(xmin+k)),(k*x.u,0) shifted Origine);
+ else:
label.bot(TEX("\num{"&decimal(xmin+k)&"}"),(k*x.u,0) shifted Origine);
+ fi;
endfor;
label.ulft(TEX("\num{"&decimal(ymin)&"}"),(0,0) shifted Origine);
- for k=grilley step grilley until (ymax-ymin):
+ for k=pasgrady step pasgrady until (ymax-ymin):
trace ((-0.5mm,0)--(0.5mm,0)) shifted ((0,k*y.u) shifted Origine) withpen pencircle scaled1.25;
label.lft(TEX("\num{"&decimal(ymin+k)&"}"),(0,k*y.u) shifted Origine);
endfor;
diff --git a/macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex b/macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex
index 9ab7b24341..15f6919131 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex
@@ -1,6 +1,10 @@
%%%
% Représenter un entier dans une base
%%%
+\def\filedateRepEntier{2024/08/04}%
+\def\fileversionRepEntier{0.1}%
+\message{-- \filedateRepEntier\space v\fileversionRepEntier}%
+%
\setKVdefault[ClesRBase]{Base=10,Echelle=1,Unite=false,Compact=false,Impression=false,ListeCouleurs={Tomato,LightSteelBlue,LightGreen,Cornsilk}}%
\newcommand\RepresenterEntier[2][]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex b/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
index 6660693348..2beb3ee5ed 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
@@ -1,7 +1,11 @@
%%%
% Fractions
%%%
-\setKVdefault[ClesFraction]{Rayon=2cm,Disque,Regulier=false,Segment=false,Rectangle=false,Longueur=5cm,Largeur=2cm,Cotes=5,Triangle=false,Parts=3,Eprouvette=false,Couleur=green,Reponse=false,Multiple=1,Hachures=false,Epaisseur=1}
+\def\filedateRepFrac{2024/08/30}%
+\def\fileversionRepFrac{0.1a}%
+\message{-- \filedateRepFrac\space v\fileversionRepFrac}%
+%
+\setKVdefault[ClesFraction]{Rayon=2cm,Disque,Regulier=false,Segment=false,Rectangle=false,Longueur=5cm,Largeur=2cm,Cotes=5,Triangle=false,Parts=3,Eprouvette=false,Couleur=green,Reponse=false,Multiple=1,Hachures=false,Epaisseur=1,Aleatoire=false}
\def\MPFractionEprouvetteCode{%
Hauteur=\useKV[ClesFraction]{Longueur};
@@ -80,6 +84,7 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ % Pas d'aléa ici : l'eau ne peut pas être en lévitation :)
\MPFractionEprouvetteCode
trace eprouvette(#2,#1);
\end{mplibcode}
@@ -90,6 +95,107 @@
\fi
}
+\def\MPFractionRegulierCodeAlea{%
+ Rayon=\useKV[ClesFraction]{Rayon};
+ Cotes=\useKV[ClesFraction]{Cotes};
+ color ColPolyReg;
+ ColPolyReg=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Reponse=\useKV[ClesFraction]{Reponse};
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ pair O,A[],B[];
+ O=u*(0,0);
+ path cc,cd;
+ cc=cercles(O,Rayon);
+ for k=0 upto Cotes:
+ A[k]=pointarc(cc,k*(360/Cotes));
+ endfor;
+ cd=polygone(A0 for k=1 upto Cotes-1:,A[k] endfor);
+ path part[];
+ vardef FractionPolyReg(expr nume,deno)=
+ for k=0 upto deno:
+ B[k]=point(k*(Cotes/deno)) of cd;
+ dotlabel("",B[k]);
+ endfor;
+ for k=0 upto deno-1:
+ part[k]=O--B[k] for l=1 upto Cotes-1:if (B[k]--B[k+1]) intersectiontimes (O--A[l])<>(-1,-1):--A[l] fi endfor --B[k+1]--cycle;%O--arccercle(B[k],B[k+1],O)--cycle;
+ endfor;
+ m=(nume div deno);
+ if (nume mod deno)=0:m:=m-1; fi;
+ picture RetourFraction;
+ RetourFraction=image(%
+ Reste=((nume div deno)+1)*deno;
+ RetiensPart=0;
+ if Reponse:
+ if m>0:
+ for l=0 upto (m-1):
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(l*(2*Rayon+0.5cm,0)),1.5*360/deno,0.25,0) withcolor ColPolyReg;
+ else:
+ fill part[k] shifted(l*(2*Rayon+0.5cm,0)) withcolor ColPolyReg;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(l*(2*Rayon+0.5cm,0)),1.5*360/deno,0.25,0) withcolor ColPolyReg;
+ else:
+ fill part[k] shifted(l*(2*Rayon+0.5cm,0)) withcolor ColPolyReg;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ endfor;
+ fi;
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(m*(2*Rayon+0.5cm,0)),1.5*360/deno,0.25,0) withcolor ColPolyReg;
+ else:
+ fill part[k] shifted(m*(2*Rayon+0.5cm,0)) withcolor ColPolyReg;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(m*(2*Rayon+0.5cm,0)),1.5*360/deno,0.25,0) withcolor ColPolyReg;
+ else:
+ fill part[k] shifted(m*(2*Rayon+0.5cm,0)) withcolor ColPolyReg;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ fi;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ for l=0 upto m:
+ draw cd shifted(l*(2*Rayon+0.5cm,0));
+ for k=0 upto (deno-1):
+ draw segment(O,B[k]) shifted(l*(2*Rayon+0.5cm,0));
+ endfor;
+ endfor;
+ drawoptions();
+ );
+ RetourFraction
+ enddef;
+}%
+
\def\MPFractionRegulierCode{%
Rayon=\useKV[ClesFraction]{Rayon};
Cotes=\useKV[ClesFraction]{Cotes};
@@ -168,7 +274,13 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ boolean Alea;
+ Alea=\useKV[ClesFraction]{Aleatoire};
+ if Alea:
+ \MPFractionRegulierCodeAlea;
+ else:
\MPFractionRegulierCode
+ fi;
trace FractionPolyReg(#1,#2);
\end{mplibcode}
\else
@@ -178,6 +290,122 @@
\fi
}%
+\def\MPFractionTriangleCodeAlea{%
+ Longueur:=\useKV[ClesFraction]{Longueur};
+ nbparts:=\useKV[ClesFraction]{Parts};
+ color ColTriangle;
+ ColTriangle=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Reponse=\useKV[ClesFraction]{Reponse};
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ nbtriangle=0;
+ %
+ vardef Ligne(expr longueur)=
+ for k=0 upto 2*(longueur-1):
+ nbtriangle:=nbtriangle+1;
+ if (k mod 2)=0:
+ M[nbtriangle]=(Tria shifted(0.5*k*(1/nbparts)*(B-A))) shifted((nbparts-longueur)*(1/nbparts)*(C-A));
+ else:
+ M[nbtriangle]=(Trir shifted(0.5*(k-1)*(1/nbparts)*(B-A))) shifted((nbparts-longueur)*(1/nbparts)*(C-A));
+ fi;
+ endfor;
+ enddef;
+ %
+ pair A,B,C;
+ A=u*(0.5,0.5);
+ B-A=(Longueur,0);
+ C=rotation(B,A,60);
+ %
+ path Tria,Trir,M[];
+ Tria=polygone(A,(1/nbparts)[A,B],(1/nbparts)[A,C]);
+ Trir=symetrie(Tria,(1/nbparts)[A,B],(1/nbparts)[A,C]);
+ %
+ for k=nbparts downto 1:
+ Ligne(k);
+ endfor;
+ %
+ picture FondTriangle;
+ FondTriangle=image(
+ for k=1 upto nbtriangle:
+ trace M[k];
+ endfor;
+ );
+ %
+ vardef FractionTriangle(expr nume,deno)=
+ m:=nume div deno;
+ if (nume mod deno)=0:
+ m:=m-1;
+ fi;
+ picture RetourFraction;
+ RetourFraction=image(
+ Reste=((nume div deno)+1)*deno;
+ RetiensPart=0;
+ if Reponse:
+ if m>0:
+ for l=0 upto (m-1):
+ for k=1 upto nbtriangle:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(M[k] shifted(l*(Longueur+1cm,0)),90,0.2,0) withcolor ColTriangle;
+ else:
+ fill M[k] shifted(l*(Longueur+1cm,0)) withcolor ColTriangle;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(M[k] shifted(l*(Longueur+1cm,0)),90,0.2,0) withcolor ColTriangle;
+ else:
+ fill M[k] shifted(l*(Longueur+1cm,0)) withcolor ColTriangle;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ endfor;
+ fi;
+ for k=1 upto nbtriangle:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(M[k] shifted(m*(Longueur+1cm,0)),90,0.2,0) withcolor ColTriangle;
+ else:
+ fill M[k] shifted(m*(Longueur+1cm,0)) withcolor ColTriangle;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(M[k] shifted(m*(Longueur+1cm,0)),90,0.2,0) withcolor ColTriangle;
+ else:
+ fill M[k] shifted(m*(Longueur+1cm,0)) withcolor ColTriangle;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ fi;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ for l=0 upto m:
+ trace FondTriangle shifted(l*(Longueur+1cm,0));
+ endfor;
+ );
+ RetourFraction
+enddef;
+}%
+
\def\MPFractionTriangleCode{%
Longueur:=\useKV[ClesFraction]{Longueur};
nbparts:=\useKV[ClesFraction]{Parts};
@@ -241,7 +469,7 @@
trace hachurage(polygone(A,B,C) shifted(l*(Longueur+1cm,0)),90,0.2,0) withcolor ColTriangle;
drawoptions(withpen pencircle scaled Epaisseur);
else:
- remplis polygone(A,B,C) withcolor ColRectangle;
+ remplis polygone(A,B,C) withcolor ColTriangle;
fi;
fi;
for k=1 upto nbparts:
@@ -260,7 +488,13 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
- \MPFractionTriangleCode
+ boolean Alea;
+ Alea=\useKV[ClesFraction]{Aleatoire};
+ if Alea:
+ \MPFractionTriangleCodeAlea;
+ else:
+ \MPFractionTriangleCode;
+ fi;
draw FractionTriangle(#1,#2);
\end{mplibcode}
\else
@@ -270,6 +504,117 @@
\fi
}%
+\def\MPFractionRectangleCodeAlea{%
+ Longueur=\useKV[ClesFraction]{Longueur};
+ Largeur=\useKV[ClesFraction]{Largeur};
+ color ColRectangle;
+ ColRectangle=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Reponse=\useKV[ClesFraction]{Reponse};
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ Multiple=\useKV[ClesFraction]{Multiple};
+ %
+ pair A,B,C,D,M[],N[],R[],S[];
+ A=(0,0);
+ B-A=(Longueur,0);
+ C-B=(0,Largeur);
+ D-C=A-B;
+ vardef FractionRectangle(expr nume,deno)=
+ m=nume div deno;
+ if (nume mod deno)=0:
+ m:=m-1;
+ fi;
+ numeric parts;
+ parts=(deno div Multiple);
+ for k=0 upto parts:
+ M[k]=(k/parts)[A,B];
+ N[k]=(k/parts)[D,C];
+ endfor;
+ if Multiple>1:
+ for k=0 upto Multiple:
+ R[k]=(k/Multiple)[A,D];
+ S[k]=(k/Multiple)[B,C];
+ endfor;
+ fi;
+ picture FondRectangle;
+ FondRectangle=image(%
+ path case[];
+ for k=0 upto Multiple-1:
+ for l=0 step Multiple until (deno-1):
+ case[k*(deno div Multiple)+(l div Multiple)]=(unitsquare xscaled (Multiple*abs(A-B)/deno) yscaled (abs(D-A)/Multiple)) shifted (((l/deno)[A,B]-A)+((k/Multiple)[A,D]-A));
+ trace case[k*(deno div Multiple)+(l div Multiple)];
+ endfor;
+ endfor;
+ );
+ picture RetourRectangle;
+ RetourRectangle=image(
+ Reste=((nume div deno)+1)*deno;
+ RetiensPart=0;
+ if Reponse:
+ if m>0:
+ for l=0 upto (m-1):
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(case[k] shifted(l*(Longueur+1cm,0)),45,0.25,0) withcolor ColRectangle;
+ else:
+ fill case[k] shifted(l*(Longueur+1cm,0)) withcolor ColRectangle;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(case[k] shifted(l*(Longueur+1cm,0)),45,0.25,0) withcolor ColRectangle;
+ else:
+ fill case[k] shifted(l*(Longueur+1cm,0)) withcolor ColRectangle;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ endfor;
+ fi;
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(case[k] shifted(m*(Longueur+1cm,0)),45,0.25,0) withcolor ColRectangle;
+ else:
+ fill case[k] shifted(m*(Longueur+1cm,0)) withcolor ColRectangle;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(case[k] shifted(m*(Longueur+1cm,0)),45,0.25,0) withcolor ColRectangle;
+ else:
+ fill case[k] shifted(m*(Longueur+1cm,0)) withcolor ColRectangle;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ fi;
+ for l=0 upto m:
+ trace FondRectangle shifted(l*(Longueur+1cm,0));
+ endfor;
+ );
+ RetourRectangle
+ enddef;
+}%
+
\def\MPFractionRectangleCode{%
Longueur=\useKV[ClesFraction]{Longueur};
Largeur=\useKV[ClesFraction]{Largeur};
@@ -378,7 +723,13 @@
\ifluatex%
\mplibforcehmode%
\begin{mplibcode}
- \MPFractionRectangleCode
+ boolean Alea;
+ Alea=\useKV[ClesFraction]{Aleatoire};
+ if Alea:
+ \MPFractionRectangleCodeAlea;
+ else:
+ \MPFractionRectangleCode;
+ fi;
trace FractionRectangle(#1,#2);
\end{mplibcode}
\else%
@@ -388,6 +739,101 @@
\fi%
}%
+\def\MPFractionDisqueCodeAlea{%
+ Rayon=\useKV[ClesFraction]{Rayon};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ color ColDisque;
+ ColDisque=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Reponse:=\useKV[ClesFraction]{Reponse};
+ %
+ pair A,B[];
+ A=(0,0);
+ path cc,part[];
+ cc=cercles(A,Rayon);
+ vardef FractionDisque(expr nume,deno)=
+ for k=0 upto deno+1:
+ B[k]=pointarc(cc,(360/deno)*k);
+ endfor;
+ for k=0 upto deno-1:
+ part[k]=A--arccercle(B[k],B[k+1],A)--cycle;
+ endfor;
+ m=(nume div deno);
+ if (nume mod deno)=0:m:=m-1; fi;
+ picture RetourFraction;
+ RetourFraction=image(%
+ Reste=((nume div deno)+1)*deno;
+ RetiensPart=0;
+ if Reponse:
+ if m>0:
+ for l=0 upto (m-1):
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(l*(2*Rayon+1cm,0)),1.5*360/deno,0.25,0) withcolor ColDisque;
+ else:
+ fill part[k] shifted(l*(2*Rayon+1cm,0)) withcolor ColDisque;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(l*(2*Rayon+1cm,0)),1.5*360/deno,0.25,0) withcolor ColDisque;
+ else:
+ fill part[k] shifted(l*(2*Rayon+1cm,0)) withcolor ColDisque;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ endfor;
+ fi;
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(m*(2*Rayon+1cm,0)),1.5*360/deno,0.25,0) withcolor ColDisque;
+ else:
+ fill part[k] shifted(m*(2*Rayon+1cm,0)) withcolor ColDisque;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(m*(2*Rayon+1cm,0)),1.5*360/deno,0.25,0) withcolor ColDisque;
+ else:
+ fill part[k] shifted(m*(2*Rayon+1cm,0)) withcolor ColDisque;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ fi;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ for l=0 upto m:
+ draw cc shifted(l*(2*Rayon+1cm,0));
+ for k=0 upto (deno-1):
+ draw segment(A,B[k]) shifted(l*(2*Rayon+1cm,0));
+ endfor;
+ endfor;
+ drawoptions();
+ );
+ RetourFraction
+ enddef;
+}%
+
\def\MPFractionDisqueCode{%
Rayon=\useKV[ClesFraction]{Rayon};
Epaisseur=\useKV[ClesFraction]{Epaisseur};
@@ -444,7 +890,13 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ boolean Alea;
+ Alea=\useKV[ClesFraction]{Aleatoire};
+ if Alea:
+ \MPFractionDisqueCodeAlea;
+ else:
\MPFractionDisqueCode
+ fi;
trace FractionDisque(#1,#2);
\end{mplibcode}
\else
@@ -454,6 +906,115 @@
\fi
}
+\def\MPFractionSegmentCodeAlea{%
+ Longueur=\useKV[ClesFraction]{Longueur};
+ color ColSegment;
+ ColSegment=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Reponse=\useKV[ClesFraction]{Reponse};
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ %
+ pair A,C,B[];
+ A=(0,0);
+ C-A=(Longueur,0);
+ %
+ path part[];
+ %
+ vardef FractionSegment(expr nume,deno)=
+ for k=0 upto deno:
+ B[k]=(k/deno)[A,C];
+ endfor;
+ for k=0 upto deno-1:
+ part[k]=polygone(B[k]+u*(0,-0.15),B[k+1]+u*(0,-0.15),B[k+1]+u*(0,0.15),B[k]+u*(0,0.15));
+ endfor;
+ m=nume div deno;
+ picture RetourFraction;
+ RetourFraction=image(
+ Reste=((nume div deno)+1)*deno;
+ RetiensPart=0;
+ % Reponse
+ if Reponse:
+ if m>0:
+ for l=0 upto (m-1):
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(l*(Longueur+1cm,0)),120,0.2,0) withcolor ColSegment;
+ drawoptions();
+ else:
+ draw (segment(B[k],B[k+1]) shifted(l*(Longueur+1cm,0))) withpen pencircle scaled 2 withcolor ColSegment;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(l*(Longueur+1cm,0)),120,0.2,0) withcolor ColSegment;
+ drawoptions();
+ else:
+ draw (segment(B[k],B[k+1]) shifted(l*(Longueur+1cm,0))) withpen pencircle scaled 2 withcolor ColSegment;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ endfor;
+ fi;
+ for k=0 upto deno-1:
+ if RetiensPart<nume:
+ if Reste>(nume-RetiensPart):
+ test:=uniformdeviate(1);
+ if test>0.5:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(m*(Longueur+1cm,0)),120,0.2,0) withcolor ColSegment;
+ drawoptions();
+ else:
+ draw (segment(B[k],B[k+1]) shifted(m*(Longueur+1cm,0))) withpen pencircle scaled 2 withcolor ColSegment;
+ fi;
+ fi;
+ else:
+ RetiensPart:=RetiensPart+1;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(part[k] shifted(m*(Longueur+1cm,0)),120,0.2,0) withcolor ColSegment;
+ else:
+ draw (segment(B[k],B[k+1]) shifted(m*(Longueur+1cm,0))) withpen pencircle scaled 2 withcolor ColSegment;
+ fi;
+ fi;
+ fi;
+ Reste:=Reste-1;
+ endfor;
+ fi;
+ %fin Reponse
+ if Hachures:drawoptions(withpen pencircle scaled Epaisseur);fi;
+ % draw (segment(B[0],B[nume mod deno]) shifted(m*(Longueur+1cm,0)));
+ for l=0 upto m:
+ draw segment(A,C) shifted(l*(Longueur+1cm,0));
+ endfor;
+ marque_p:="tiretv";
+ for l=0 upto m-1:
+ for k=0 upto deno:
+ pointe(B[k] shifted(l*(Longueur+1cm,0)));
+ endfor;
+ endfor;
+ if (nume mod deno)<>0:
+ for k=0 upto deno:
+ pointe(B[k] shifted(m*(Longueur+1cm,0)));
+ endfor;
+ fi;
+ );
+ RetourFraction
+ enddef;
+}
+
\def\MPFractionSegmentCode{%
Longueur=\useKV[ClesFraction]{Longueur};
color ColSegment;
@@ -525,7 +1086,13 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ boolean Alea;
+ Alea=\useKV[ClesFraction]{Aleatoire};
+ if Alea:
+ \MPFractionSegmentCodeAlea;
+ else:
\MPFractionSegmentCode
+ fi;
trace FractionSegment(#1,#2);
\end{mplibcode}
\else
diff --git a/macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex b/macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
index 0e6162aa76..9b1bcaa8b1 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
@@ -1,9 +1,15 @@
%%%
% Tableur
%%%
-\setKVdefault[Tableur]{Colonnes=4,Largeur=30pt,LargeurUn=30pt,Bandeau=true,Formule={},Cellule=A1,Ligne=0,Colonne=0,PasL=1,PasC=1,Selection=false,DebutColonnes=0,DebutLignes=0,LargeurNombre=10pt}%
+\def\filedateRepTab{2024/08/21}%
+\def\fileversionRepTab{0.1a}%
+\message{-- \filedateRepTab\space v\fileversionRepTab}%
+%
+\setKVdefault[Tableur]{Colonnes=4,Largeur=30pt,LargeurUn=30pt,Bandeau=true,Formule={},Cellule=A1,Ligne=0,Colonne=0,PasL=1,PasC=1,Selection=false,DebutColonnes=0,DebutLignes=0,LargeurNombre=10pt,Apres=false,ApresBandeau=false}%
%Idee de P. Nuns
\defKV[Tableur]{Couleur=\setKV[Tableur]{Selection}}%
+\defKV[Tableur]{CodeAfter=\setKV[Tableur]{Apres}}%
+\defKV[Tableur]{CodeAfterBandeau=\setKV[Tableur]{ApresBandeau}}%
%
%Bas\'e sur un code de Christian T\'ell\'ech\'ea.
@@ -20,6 +26,9 @@
\ifremain@lines#2\\\@nil{\addtot@b&\subst@eol#2\@nil}{\addtot@b{#2\CodeAfter\xintifboolexpr{\useKV[Tableur]{Ligne}==0 || \useKV[Tableur]{Colonne}==0}{}{%
\tikz\node at (row-\fpeval{\useKV[Tableur]{Ligne}+1+\useKV[Tableur]{PasL}}-|col-\fpeval{\useKV[Tableur]{Colonne}+1+\useKV[Tableur]{PasC}}) {\tiny$\blacksquare$};%
}%
+ \ifboolKV[Tableur]{Apres}{%
+ \useKV[Tableur]{CodeAfter}%
+ }{}%
\end{NiceTabular}}}}%
\long\def\collectcp@body#1\end{\subst@eol#1\@nil\end}%
@@ -103,6 +112,10 @@
\ifboolKV[Tableur]{Bandeau}{%
\begin{NiceTabular}{p{\PfCTableurLargeur}p{10pt}p{50pt}p{\PfCLongInter}}%
\Block[draw,l]{}{\useKV[Tableur]{Cellule}}&\Block[draw]{}{\scriptsize$\blacktriangledown$}&\Block{}{$f_x$\hfill$\sum$~\scriptsize$\blacktriangledown$\hfill$=$}&\Block[draw]{}{\useKV[Tableur]{Formule}\hfill\scriptsize$\blacktriangledown$}\\
+ \CodeAfter
+ \ifboolKV[Tableur]{ApresBandeau}{%
+ \useKV[Tableur]{CodeAfterBandeau}%
+ }{}%
\end{NiceTabular}%
\nopagebreak%
\\%
diff --git a/macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex b/macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex
index 996e33c026..2ccc0748f6 100644
--- a/macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex
@@ -1,6 +1,10 @@
%%%
% Twitter
%%%
+\def\filedateReseaux{2024/08/04}%
+\def\fileversionReseaux{0.1}%
+\message{-- \filedateReseaux\space v\fileversionReseaux}%
+%
\setKVdefault[Twitter]{Largeur=0.95\linewidth,Auteur=Christophe,Date=\today,Url=ViveLaTeX,EchelleLogo=0.035,Logo=DrStrange,Publie=false}%
\NewDocumentEnvironment{Twitter}{o+b}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex b/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
index a5ce8ebf63..795a79e833 100644
--- a/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
@@ -1,6 +1,10 @@
%%%
% Equations
%%%
+\def\filedateEquation{2024/08/04}%
+\def\fileversionEquation{0.1}%
+\message{-- \filedateEquation\space v\fileversionEquation}%
+%
\setKVdefault[ClesEquation]{Ecart=0.5,Fleches=false,FlecheDiv=false,Laurent=false,Decomposition=false,Terme=false,Composition=false,Symbole=false,ModeleBarre=false,Decimal=false,Entier=false,Lettre=x,Solution=false,LettreSol=true,Bloc=false,Simplification=false,CouleurTerme=black,CouleurCompo=black,CouleurSous=red,CouleurSymbole=orange,Verification=false,Nombre=0,Egalite=false,Produit=false,Facteurs=false,Carre=false,Exact=false,Pose=false,Equivalence=false}
\newcommand\rightcomment[4]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex b/macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
index 9fc7f3446d..26a78fcc2f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
@@ -1,6 +1,10 @@
%%%
% Ronde infernale
%%%
+\def\filedateRondeI{2024/08/04}%
+\def\fileversionRondeI{0.1}%
+\message{-- \filedateRondeI\space v\fileversionRondeI}%
+%
\newcommand\TestNombrePremier[1]{%
% #1 le nombre \`a tester
\newcount\anp\newcount\bnp\newcount\cnp%
diff --git a/macros/latex/contrib/profcollege/latex/PfCRose.tex b/macros/latex/contrib/profcollege/latex/PfCRose.tex
index d6059cdd7e..3798a26f74 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRose.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRose.tex
@@ -1,6 +1,10 @@
%%%
% Rose
%%%
+\def\filedateRose{2024/08/04}%
+\def\fileversionRose{0.1}%
+\message{-- \filedateRose\space v\fileversionRose}%
+%
\setKVdefault[ClesRose]{Vide=false,Couleur=white,Produits=false,Solution=false,Rayon=2cm,Petales=7,Aide=false,FacteurMin=2,FacteurMax=10,ProduitVide=false,CaseVide=false,Polygone=false,Nom=Rose1,Creation=false,Addition=false,Melange=false,CDot=false}%
\defKV[ClesRose]{LesNombres=\setKV[ClesRose]{Creation}}%
\defKV[ClesRose]{LesProduits=\setKV[ClesRose]{Creation}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCScratch.tex b/macros/latex/contrib/profcollege/latex/PfCScratch.tex
index 0315d8d3a8..778ee15174 100644
--- a/macros/latex/contrib/profcollege/latex/PfCScratch.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCScratch.tex
@@ -1,6 +1,10 @@
%%%%
% Scratch
%%%%
+\def\filedateScratch{2024/08/04}%
+\def\fileversionScratch{0.1}%
+\message{-- \filedateScratch\space v\fileversionScratch}%
+%
\newlength{\longbarreheight}
\setlength{\longbarreheight}{2.1ex+3pt}
diff --git a/macros/latex/contrib/profcollege/latex/PfCSerpent.tex b/macros/latex/contrib/profcollege/latex/PfCSerpent.tex
index cd38bd90a2..e4352613d7 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSerpent.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSerpent.tex
@@ -1,10 +1,14 @@
%%%
% Serpent
%%%
+\def\filedateSerpent{2024/08/04}%
+\def\fileversionSerpent{0.1}%
+\message{-- \filedateSerpent\space v\fileversionSerpent}%
+%
\newtoks\tokListeSerpentPerso{}%
\def\UpdatetoksSerpent#1\nil{\addtotok\tokListeSerpentPerso{"#1"}}%
-\setKVdefault[Serpent]{Cases=9,Case=1,Solution=false,PasQuad=7mm,ValeurMin=2,ValeurMax=10,Creation=false,Graines=false}
+\setKVdefault[Serpent]{Cases=9,Case=1,Solution=false,PasQuad=7mm,ValeurMin=2,ValeurMax=10,Creation=false,Graines=false,Direct=false,Disque=false,Spirale=false}
\defKV[Serpent]{CouleurSolution=\setKV[Serpent]{Solution}}%
\defKV[Serpent]{Perso=\setKV[Serpent]{Creation}\xdef\PfCFooCheminSerpent{#1}}%+Liste des déplacements
\defKV[Serpent]{Graine=\setKV[Serpent]{Graines}}%
@@ -19,7 +23,14 @@
\BuildSerpent{\the\tokListeSerpentPerso}%
\reademptyitems%
}{%
- \BuildSerpent{}%
+ \ifboolKV[Serpent]{Direct}{%
+ \BuildSerpentDirect{}%
+ }{\ifboolKV[Serpent]{Spirale}{%
+ %\BuildSerpentSpirale{}%
+ }{%
+ \BuildSerpent{}%
+ }%
+ }%
}%
}%
@@ -29,10 +40,11 @@
\mplibnumbersystem{double}%
\begin{mplibcode}
%
- boolean Solution,Perso,Graines;
+ boolean Solution,Perso,Graines,Disque;
Solution=\useKV[Serpent]{Solution};
Perso=\useKV[Serpent]{Creation};
Graines=\useKV[Serpent]{Graines};
+ Disque=\useKV[Serpent]{Disque};
%
if Graines:
randomseed:=\useKV[Serpent]{Graine};
@@ -210,7 +222,11 @@
fi;
fi;
for k=1 upto LongueurChemin:
+ if Disque:
+ trace (fullcircle scaled (2*PasQuad)) shifted (N[k]+PasQuad*(1,1));
+ else:
trace (unitsquare scaled (2*PasQuad)) shifted N[k];
+ fi;
endfor;
for k=1 upto LongueurChemin-1:
drawarrow (center (unitsquare scaled (2*PasQuad)) shifted N[k])--(center (unitsquare scaled (2*PasQuad)) shifted N[k+1]) cutbefore ((unitsquare scaled (2*PasQuad)) shifted N[k]) cutafter ((unitsquare scaled (2*PasQuad)) shifted N[k+1]);
@@ -363,4 +379,193 @@
\end{mplibcode}
\mplibnumbersystem{scaled}%
\fi
+}%
+
+\NewDocumentCommand\BuildSerpentDirect{m}{%
+ \ifluatex%
+ \mplibforcehmode%
+ \mplibnumbersystem{double}%
+ \begin{mplibcode}
+ %
+ boolean Solution,Graines,Disque;
+ Solution=\useKV[Serpent]{Solution};
+ Graines=\useKV[Serpent]{Graines};
+ Disque=\useKV[Serpent]{Disque};
+ %
+ if Graines:
+ randomseed:=\useKV[Serpent]{Graine};
+ fi;
+ %
+ color CoulSolution;
+ if Solution:
+ CoulSolution=\useKV[Serpent]{CouleurSolution};
+ fi;
+ %
+ numeric LongueurChemin,Depart;
+ LongueurChemin=\useKV[Serpent]{Cases};
+ ValeurMin=\useKV[Serpent]{ValeurMin};
+ ValeurMax=\useKV[Serpent]{ValeurMax};
+ CaseDepart=\useKV[Serpent]{Case};
+ Depart=ValeurMin+floor(uniformdeviate(ValeurMax-ValeurMin+1));
+ %
+ PasQuad=5mm;%\useKV[Serpent]{PasQuad};
+ %
+ pair N[];
+ N[1]:=4*PasQuad*(0,0);
+ for k=2 upto LongueurChemin:
+ N[k]=N[k-1]+4*PasQuad*(1,0);
+ endfor;
+ % Tracage
+ if CaseDepart=1:
+ label(TEX("\Large"&decimal(Depart)),N[1] shifted(PasQuad*(1,1)));
+ else:
+ if Solution:
+ label(TEX("\Large"&decimal(Depart)),N[1] shifted(PasQuad*(1,1))) withcolor CoulSolution;
+ fi;
+ fi;
+ for k=1 upto LongueurChemin:
+ if Disque:
+ trace (fullcircle scaled (2*PasQuad)) shifted (N[k]+PasQuad*(1,1));
+ else:
+ trace (unitsquare scaled (2*PasQuad)) shifted N[k];
+ fi;
+ endfor;
+ %
+ path cheminfleche[];
+ path CheminFlecheBase;
+ CheminFlecheBase=(0,2*PasQuad){dir45}..(4*PasQuad,2*PasQuad);
+ for k=1 upto LongueurChemin-1:
+ cheminfleche[k]=CheminFlecheBase shifted (N[k]+(PasQuad,0));
+ %cheminfleche[k]=(center (unitsquare scaled (2*PasQuad)) shifted N[k]){dir45}..(center (unitsquare scaled (2*PasQuad)) shifted N[k+1]) cutbefore ((unitsquare scaled (2*PasQuad)) shifted N[k]) cutafter ((unitsquare scaled (2*PasQuad)) shifted N[k+1]);
+ drawarrow cheminfleche[k];
+ endfor;
+ %%drawoptions();
+ boolean PremierChiffre;
+ PremierChiffre=true;
+ %% Test Premier
+ vardef TestPremier(expr nombre)=
+ nbdiviseur:=0;
+ nbdiv:=0;
+ for k=2 upto nombre:
+ if (nombre mod k)=0:
+ nbdiviseur:=nbdiviseur+1;
+ if k<11:
+ nbdiv:=nbdiv+1;
+ Diviseur[nbdiv]:=k;
+ fi;
+ fi;
+ endfor;
+ if nbdiviseur>1:
+ PremierChiffre:=false;
+ else:
+ PremierChiffre:=true;
+ fi;
+ enddef;
+ % Les opérations
+ numeric Chiffre[];
+ pair St[];
+ Chiffre[1]=Depart;
+ %
+ vardef EcrireSomme(expr tt)=
+ Somme:=5+ceiling(uniformdeviate(10));
+ Chiffre[tt]=Chiffre[tt-1]+Somme;
+ St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+ label.top(TEX("$+"&decimal(Somme)&"$"),St[tt]);
+ enddef;
+ %
+ vardef EcrireProduit(expr tt)=
+ Multiple:=1+ceiling(uniformdeviate(8));
+ Chiffre[tt]=Chiffre[tt-1]*Multiple;
+ St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+ label.top(TEX("$\PfCSymbolTimes"&decimal(Multiple)&"$"),St[tt]);
+ enddef;
+ %
+ vardef EcrireDifferenceCent(expr tt)=
+ Difference:=ceiling(Chiffre[tt-1]-15+uniformdeviate(10));
+ Chiffre[tt]=Chiffre[tt-1]-Difference;
+ St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+ label.top(TEX("$-"&decimal(Difference)&"$"),St[tt]);
+ enddef;
+ %
+ vardef EcrireDifference(expr tt)=
+ Difference:=if Chiffre[tt-1]<20:1+floor(uniformdeviate(Chiffre[tt-1]-1)) else: 5+ceiling(uniformdeviate(10)) fi;
+ Chiffre[tt]=Chiffre[tt-1]-Difference;
+ St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+ label.top(TEX("$-"&decimal(Difference)&"$"),St[tt]);
+ enddef;
+ %
+ vardef EcrireQuotient(expr tt)=
+ choixdiv:=ceiling(nbdiv);
+ Quotient:=Diviseur[choixdiv];
+ Chiffre[tt]=Chiffre[tt-1] div Quotient;
+ St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+ label.top(TEX("$\PfCSymbolDiv"&decimal(Quotient)&"$"),St[tt]);
+ enddef;
+ %
+ for k=2 upto LongueurChemin:
+ if (Chiffre[k-1]=1) or (Chiffre[k-1]=0):
+ % On additionne ou on multiplie si c'est un
+ if Chiffre[k-1]=1:
+ alea:=ceiling(uniformdeviate(2));
+ if alea=1:
+ EcrireSomme(k);
+ else:
+ EcrireProduit(k);
+ fi;
+ else:
+ EcrireSomme(k);
+ fi;
+ else:
+ TestPremier(Chiffre[k-1]);
+ if PremierChiffre:
+ if Chiffre[k-1]>100:
+ EcrireDifferenceCent(k);
+ else:
+ alea:=ceiling(uniformdeviate(3));
+ if alea=1:
+ EcrireSomme(k);
+ elseif alea=2:
+ EcrireDifference(k);
+ elseif alea=3:
+ EcrireProduit(k);
+ fi;
+ fi;
+ if k=CaseDepart:
+ label(TEX("\Large"&decimal(Chiffre[k])),N[k] shifted(PasQuad*(1,1)));
+ elseif Solution:
+ label(TEX("\Large"&decimal(Chiffre[k])),N[k] shifted(PasQuad*(1,1))) withcolor CoulSolution;
+ fi;
+ else:
+ if Chiffre[k-1]>100:
+ alea:=ceiling(uniformdeviate(2));
+ if alea=1:
+ EcrireDifferenceCent(k);
+ else:
+ EcrireQuotient(k);
+ fi;
+ else:
+ alea:=ceiling(uniformdeviate(4));
+ if alea=1:
+ EcrireSomme(k);
+ elseif alea=2:
+ EcrireDifference(k);
+ elseif alea=3:
+ EcrireProduit(k);
+ elseif alea=4:
+ EcrireQuotient(k);
+ fi;
+ fi;
+ fi;
+ fi;
+ if k=CaseDepart:
+ label(TEX("\Large"&decimal(Chiffre[k])),N[k] shifted(PasQuad*(1,1)));
+ else:
+ if Solution:
+ label(TEX("\Large"&decimal(Chiffre[k])),N[k] shifted(PasQuad*(1,1))) withcolor CoulSolution;
+ fi;
+ fi;
+ endfor;
+ \end{mplibcode}
+ \mplibnumbersystem{scaled}%
+ \fi
}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCShikaku.tex b/macros/latex/contrib/profcollege/latex/PfCShikaku.tex
index 04084cadca..8f6616ff3e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCShikaku.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCShikaku.tex
@@ -1,6 +1,10 @@
%%%
% Shikaku
%%%
+\def\filedateShikaku{2024/08/04}%
+\def\fileversionShikaku{0.1}%
+\message{-- \filedateShikaku\space v\fileversionShikaku}%
+%
\newcounter{PfCShikakuNom}
\setcounter{PfCShikakuNom}{0}
diff --git a/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex b/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
index 94429def36..9fb16f325d 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
@@ -1,6 +1,10 @@
%%%
% Simplification
%%%
+\def\filedateSimpFraction{2024/08/13}%
+\def\fileversionSimpFraction{0.1a}%
+\message{-- \filedateSimpFraction\space v\fileversionSimpFraction}%
+%
\makeatletter%by christian Tellechea
% Calcul du PGCD de #1 et #2
\newcount\cnt@a\newcount\cnt@b\newcount\pgcd
@@ -160,7 +164,7 @@
\ifboolKV[ClesSimplification]{Debut}{%
\ensuremath{%
\whiledo{\PfCDivCom>1}{%
- \frac{\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}\times\num{\fpeval{\PfCNumerateurDiv/\the\PfCDivCom}}}{\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}\times\num{\fpeval{\PfCDenominateurDiv/\the\PfCDivCom}}}=\frac{\num{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}}{\num{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}}%
+ \frac{\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}\times\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCNumerateurDiv/\the\PfCDivCom}}}}{\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}\times\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCDenominateurDiv/\the\PfCDivCom}}}}=\frac{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}}}{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}}}%
\xdef\PfCNumerateurDiv{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}%
\xdef\PfCDenominateurDiv{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}%
\DiviseurCommun{\PfCNumerateurDiv}{\PfCDenominateurDiv}%
@@ -170,7 +174,7 @@
}{%
\ensuremath{%
\whiledo{\PfCDivCom>1}{%
- \frac{\num{\fpeval{\PfCNumerateurDiv/\the\PfCDivCom}}\times\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}}{\num{\fpeval{\PfCDenominateurDiv/\the\PfCDivCom}}\times\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}}=\frac{\num{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}}{\num{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}}%
+ \frac{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCNumerateurDiv/\the\PfCDivCom}}}\times\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}}{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCDenominateurDiv/\the\PfCDivCom}}}\times\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}}=\frac{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}}}{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}}}%
\xdef\PfCNumerateurDiv{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}%
\xdef\PfCDenominateurDiv{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}%
\DiviseurCommun{\PfCNumerateurDiv}{\PfCDenominateurDiv}%
@@ -180,7 +184,7 @@
}%
}%
-\setKVdefault[ClesSimplification]{Details=false,All=false,Longue=false,Fleches=false,Contraire=0,Couleur=black,Debut=false,Impose=false,Decomposition=false,DecompositionSeule=false}%
+\setKVdefault[ClesSimplification]{Details=false,All=false,Longue=false,Fleches=false,Contraire=0,Couleur=black,Debut=false,Impose=false,Decomposition=false,DecompositionSeule=false,ACompleter=false}%
\defKV[ClesSimplification]{Nombre=\setKV[ClesSimplification]{Impose}}%
\newcounter{NbFrac}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCSolides.tex b/macros/latex/contrib/profcollege/latex/PfCSolides.tex
index 037b80e50f..8ed8899a37 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSolides.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSolides.tex
@@ -1,6 +1,10 @@
%%%
% Solide et sections
%%%
+\def\filedateSolides{2024/08/20}%
+\def\fileversionSolides{0.1a}%
+\message{-- \filedateSolides\space v\fileversionSolides}%
+%
\setKVdefault[ClesSolides]{Nom=cube,Aretes,Sommets,Pointilles,Largeur=1.5,Hauteur=1,Profondeur=0.75,ListeSommets={A,B,C,D,E,F,G,H},Rho=1500,Phi=30,Theta=20,Distance=50,Code=false,Couleur=white,Anglex=0,Arete=1,RayonCone=1,HauteurCone=2,HauteurPrisme=2,SommetsPrisme=6,HauteurPyramide=2,SommetsPyramide=5,Reguliere=false,DecalageSommet={(0,0,0)},RayonCylindre=1,HauteurCylindre=2,RayonSphere=1,AutoLabel=true,Sections=false,CoefSection=0.3,Axes=false,PointsSection={M,N,O,P},RemplisSection=false,ObjetSection={0.5,E,H,0.25,F,G,G,B}}%
\defKV[ClesSolides]{Traces=\setKV[ClesSolides]{Code}}%
\defKV[ClesSolides]{Section=\setKV[ClesSolides]{Sections}}%
@@ -101,6 +105,7 @@
%Fc[101]:=1;Fc[102]:=2;Fc[103]:=6;Fc[104]:=5;
%endfor;
endfor;
+ DefinirSommets(#1);
DessineObjet;
% picture Depart;
% Depart=currentpicture;
@@ -108,6 +113,10 @@
% for k=1 upto 8:
% dotlabel.top(decimal(k),Projette(TS[k]));
% endfor;
+ u:=1cm;
+ if Code:
+ \useKV[ClesSolides]{Traces};
+ fi;
\end{mplibcode}
\mplibnumbersystem{scaled}
\fi
@@ -487,7 +496,6 @@
if Code:
\useKV[ClesSolides]{Traces};
fi;
-
\end{mplibcode}
\mplibnumbersystem{scaled}
\fi
@@ -729,7 +737,7 @@
% trace polygone(MSection1,MSection2,MSection3,MSection4);
color dcer,ccer;
% 1er cote -> ok
- DotLabel("",RetiensDefSection[4]);
+ %DotLabel("",RetiensDefSection[4]);
dcer:=Oeil-RetiensDefSection[4];
ccer:=Normal(RetiensDefSection[4],RetiensDefSection[2],RetiensDefSection[1]);
draw chemin(MSection1,MSection2) if (ProduitScalaire(dcer,ccer)<0):dashed evenly fi;
diff --git a/macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex b/macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex
index df62edfbce..f0a1e12cc9 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex
@@ -1,6 +1,10 @@
%%%
% Somme des angles
%%%
+\def\filedateSommeAngles{2024/08/04}%
+\def\fileversionSommeAngles{0.1}%
+\message{-- \filedateSommeAngles\space v\fileversionSommeAngles}%
+%
\setKVdefault[ClesSommeAngle]{Detail=true,Isocele=false,Rectangle=false,Figure=false,FigureSeule=false,Angle=0,Perso=false,Echelle=1cm}%
\def\MPFigureSommeAngle#1#2#3#4#5{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCSquaro.tex b/macros/latex/contrib/profcollege/latex/PfCSquaro.tex
index 9de4a7afdf..7afe0e55fb 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSquaro.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSquaro.tex
@@ -1,10 +1,21 @@
%%%
% Squaro
%%%
-\setKVdefault[Squaro]{Solution=false,Longueur=8,Largeur=8,Echelle=8mm,Nom=Jeu1,Graines=false}
+\def\filedateSquarO{2024/08/04}%
+\def\fileversionSquarO{0.1}%
+\message{-- \filedateSquarO\space v\fileversionSquarO}%
+%
+\newtoks\tokPfCSquaro%
+\def\UpdatetoksSquaro#1\nil{\addtotok\tokPfCSquaro{#1,}}%
+
+\setKVdefault[Squaro]{Solution=false,Longueur=8,Largeur=8,Echelle=8mm,Nom=Jeu1,Graines=false,Persos=false}
\defKV[Squaro]{Graine=\setKV[Squaro]{Graines}}%
+\defKV[Squaro]{Perso=\setKV[Squaro]{Persos}\setsepchar{,}\ignoreemptyitems\readlist*\ListeSquaroPerso{#1}\reademptyitems%
+ \foreachitem\compteur\in\ListeSquaroPerso{\expandafter\UpdatetoksSquaro\compteur\nil}%
+}%
\NewDocumentCommand\SquarO{o}{%
+ \tokPfCSquaro{}%
\useKVdefault[Squaro]%
\setKV[Squaro]{#1}%
\BuildSquaro%
@@ -14,9 +25,10 @@
numeric Longueur,Largeur;
Longueur=\useKV[Squaro]{Longueur};
Largeur=\useKV[Squaro]{Largeur};
- boolean Solution,Graines;
+ boolean Solution,Graines,Persos;
Solution=\useKV[Squaro]{Solution};
Graines=\useKV[Squaro]{Graines};
+ Persos=\useKV[Squaro]{Persos};
if Graines:
randomseed:=\useKV[Squaro]{Graine};
fi;
@@ -26,13 +38,35 @@
p:=0;
pair A[];%centre des carrés.
boolean Allume[][];
-}
+ %
+ if Persos:
+ n:=0;
+ for p_=\the\tokPfCSquaro:
+ n:=n+1;
+ ligne:=(n-1) div (Largeur+2);
+ colonne:=(n-1) mod (Longueur+1);
+ Allume[ligne][colonne]=if p_=1:true else:false fi;
+ endfor;
+ else:
+ for k=0 upto Largeur:
+ for l=0 upto Longueur:
+ m:=uniformdeviate(1);
+ if m<0.5:
+ Allume[k][l]=true;
+ else:
+ Allume[k][l]=false;
+ fi;
+ endfor;
+ endfor;
+ fi;
+}%
\NewDocumentCommand\BuildSquaro{}{%
\ifluatex
\mplibforcehmode
\begin{mplibcode}
\BuildSquarobase
+ %
for k=0 upto Longueur-1:
for l=0 upto Largeur-1:
p:=p+1;
@@ -40,21 +74,18 @@
trace (unitsquare scaled u) shifted A[p];
endfor;
endfor;
-
+ %
for k=0 upto Largeur:
for l=0 upto Longueur:
- m:=uniformdeviate(1);
- if m<0.5:
- Allume[k][l]=true;
+ if Allume[k][l]:
fill cercles(u*(l,-k+1),1mm) if Solution=false:withcolor white fi;
else:
- Allume[k][l]=false;
fill cercles(u*(l,-k+1),1mm) withcolor white;
fi;
trace cercles(u*(l,-k+1),1mm);
endfor;
endfor;
-
+ %
for k=0 upto Largeur-1:
for l=0 upto Longueur-1:
Retiens:=0;
@@ -67,29 +98,28 @@
endfor;
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={\BuildSquarobase}]
- for k=0 upto Longueur-1:
+ \begin{mpost}[mpsettings={\BuildSquarobase}]
+ %
+ %
+ for k=0 upto Longueur-1:
for l=0 upto Largeur-1:
p:=p+1;
A[p]=u*(k,-l);
trace (unitsquare scaled u) shifted A[p];
- endfor;
- endfor;
-
- for k=0 upto Largeur:
- for l=0 upto Longueur:
- m:=uniformdeviate(1);
- if m<0.5:
- Allume[k][l]=true;
+ endfor;
+ endfor;
+ %
+ for k=0 upto Largeur:
+ for l=0 upto Longueur:
+ if Allume[k][l]:
fill cercles(u*(l,-k+1),1mm) if Solution=false:withcolor white fi;
else:
- Allume[k][l]=false;
fill cercles(u*(l,-k+1),1mm) withcolor white;
fi;
trace cercles(u*(l,-k+1),1mm);
- endfor;
- endfor;
-
+ endfor;
+ endfor;
+ %
for k=0 upto Largeur-1:
for l=0 upto Longueur-1:
Retiens:=0;
diff --git a/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex b/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
index 98566be426..5d7b786d8e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
@@ -1,6 +1,10 @@
%%%
% Statistiques
%%%
+\def\filedateStat{2024/08/04}%
+\def\fileversionStat{0.1}%
+\message{-- \filedateStat\space v\fileversionStat}%
+%
\newcommand\NbDonnees{}%
\newcommand\SommeDonnees{}%
\newcommand\EffectifTotal{}%
@@ -18,7 +22,7 @@ Tableau=false,Stretch=1,Frequence=false,EffectifTotal=false,%
Etendue=false,Moyenne=false,SET=false,ValeurExacte=false,MoyenneA,Somme,Mediane=false,DetailsMediane=false,UneMediane=false,QuartileUn=false,QuartileTrois=false,Total=false,Concret=false,%
Largeur=1cm,Precision=2,PrecisionF=0,Donnee=Valeurs,Effectif=Effectif,Grille=false,Origine=0,Angle=false,SemiAngle=false,Qualitatif=false,Classes=false,TableauVide=false,ECC=false,Coupure=10,CouleurTab=gray!15,Graphique=false,Batons=true,Centre=false,CentreVide=false,Crochets=false,%
% Pour les diags batons
-EpaisseurBatons=1,ListeCouleursB={a},Lecture=false,LectureFine=false,AideLecture=false,Reponses=false,DonneesSup=false,AbscisseRotation=false,Tiret=false,AngleRotationAbscisse=0,Pasx=1,Pasy=1,Unitex=0.5,Unitey=0.5,Depart=0,CouleurDefaut=black,Date=false,GrandNombrey=false,GrandNombrex=false,PasGrillex=1,PasGrilley=1,%
+EpaisseurBatons=1,ListeCouleursB={a},Lecture=false,LectureFine=false,AideLecture=false,Reponses=false,DonneesSup=false,AbscisseRotation=false,Tiret=false,Pasx=1,Pasy=1,Unitex=0.5,Unitey=0.5,Depart=0,CouleurDefaut=black,Date=false,GrandNombrey=false,GrandNombrex=false,PasGrillex=1,PasGrilley=1,%
% Pour les diags circulaires
Rayon=3cm,AffichageAngle=false,AffichageDonnee=false,ListeCouleurs={white},Hachures=false,ListeHachures={60},LectureInverse=false,EcartHachures=0.25,EpaisseurHachures=1,Legende,LegendeVide=false,ACompleter=false,DebutAngle=0,%on utilisera également la clé CouleurDefaut
%Pour les représentations
@@ -466,7 +470,6 @@ ModeleCouleur=5%
unitex:=\useKV[ClesStat]{Unitex}*cm;
unitey:=\useKV[ClesStat]{Unitey}*cm;
xpartorigine:=\useKV[ClesStat]{Origine};
- AngleRotation=\useKV[ClesStat]{AngleRotationAbscisse};
boolean Rotation,Lecture,LectureFine,AideLecture,DonneesSup,Reponses,Qualitatif,Tiret,LegendeVide,Retour,GrandNombrex,GrandNombrey,Date,Grille;
GrandNombrex=\useKV[ClesStat]{GrandNombrex};
GrandNombrey=\useKV[ClesStat]{GrandNombrey};
@@ -478,6 +481,11 @@ ModeleCouleur=5%
fi;
Date:=\useKV[ClesStat]{Date};
Rotation=\useKV[ClesStat]{AbscisseRotation};
+ if Rotation:
+ AngleRotation=\useKV[ClesStat]{AngleRotationAbscisse};
+ else:
+ AngleRotation=0;
+ fi;
Lecture:=\useKV[ClesStat]{Lecture};
LectureFine:=\useKV[ClesStat]{LectureFine};
AideLecture:=\useKV[ClesStat]{AideLecture};
diff --git a/macros/latex/contrib/profcollege/latex/PfCTableauDoubleEntree.tex b/macros/latex/contrib/profcollege/latex/PfCTableauDoubleEntree.tex
new file mode 100644
index 0000000000..f13fe2fad5
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCTableauDoubleEntree.tex
@@ -0,0 +1,62 @@
+%%%
+% Tableau Double Entree
+%%%
+\def\filedateTDE{2024/08/15}%
+\def\fileversionTDE{0.1a}%
+\message{-- \filedateTDE\space v\fileversionTDE}%
+
+\setKVdefault[TDE]{Colonnes=5,Lignes=4,Legende={},LegendesH={B,C,D,Total},LegendesV={1,2,Total},Couleur=Cornsilk,Vide=false,Totaux,Questions=false,Stretch=1}%
+
+\NewDocumentCommand\TableauDoubleEntree{om}{%
+ \useKVdefault[TDE]%
+ \setKV[TDE]{#1}%
+ \xdef\PfCFooH{\useKV[TDE]{LegendesH}}%
+ \xdef\PfCFooV{\useKV[TDE]{LegendesV}}%
+ \setsepchar{,}\reademptyitems%
+ \readlist*\ListeH{\PfCFooH}%
+ \readlist*\ListeV{\PfCFooV}%
+ \readlist*\ListeDonnees{#2}%
+ \ifboolKV[TDE]{Totaux}{}{%
+ % Vider les lignes du total
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{\ListeVlen-1}}}\do{%
+ \xintFor* ##2 in{\xintSeq{1}{\fpeval{\ListeHlen-0}}}\do{%
+ \modulo{\fpeval{##2+(##1-1)*(\ListeHlen-0)}}{\fpeval{\ListeHlen-0}}%
+ \ifnum\remainder=0\relax%
+ \xdef\ListeDonneesSansTotauxAv{\ListeDonneesSansTotauxAv,}%
+ \else%
+ \ifnum\fpeval{##2+(##1-1)*(\ListeHlen-0)}=1\relax%
+ \xdef\ListeDonneesSansTotauxAv{\ListeDonnees[\fpeval{##2+(##1-1)*(\ListeHlen-0)}]}%
+ \else%
+ \xdef\ListeDonneesSansTotauxAv{\ListeDonneesSansTotauxAv,\ListeDonnees[\fpeval{##2+(##1-1)*(\ListeHlen-0)}]}%
+ \fi%
+ \fi%
+ }%
+ }%
+ % On ajoute la dernière ligne qui est vide
+ \xintFor* ##2 in{\xintSeq{1}{\fpeval{\ListeHlen-0}}}\do{%
+ \xdef\ListeDonneesSansTotauxAv{\ListeDonneesSansTotauxAv,}%
+ }%
+ % On relit la liste des données.
+ \setsepchar{,}\reademptyitems%
+ \readlist*\ListeDonnees{\ListeDonneesSansTotauxAv}%
+ \reademptyitems%
+ }%
+ %
+ % Pour vider le tableau, on utilise la clé <Vide>.
+ % On choisit quelques éléments ^^ à écrire
+ \ifboolKV[TDE]{Questions}{%
+ %en réflexion (voir v5)
+ }{}%
+ %
+ \colorlet{PfCColorTDE}{\useKV[TDE]{Couleur}}%
+ \renewcommand{\arraystretch}{\useKV[TDE]{Stretch}}%
+ \begin{tabular}{|*{\fpeval{\ListeHlen+1}}{c|}}
+ \hline
+ \cellcolor{PfCColorTDE}\useKV[TDE]{Legende}\xintFor*##1 in{\xintSeq{1}{\ListeHlen}}\do{\uppercase{&}\cellcolor{PfCColorTDE}\ListeH[##1]}\\
+ \hline
+ \xintFor* ##1 in{\xintSeq{1}{\ListeVlen}}\do{
+ \cellcolor{PfCColorTDE}\ListeV[##1]\xintFor*##2 in{\xintSeq{1}{\ListeHlen}}\do{\uppercase{&}\ifboolKV[TDE]{Vide}{}{\ListeDonnees[\fpeval{(##2-0)+(##1-1)*(\ListeHlen-0)}]}}\\
+ \hline
+ }
+ \end{tabular}
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex b/macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
index 75270180d3..933fcb80a2 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
@@ -1,7 +1,11 @@
%%%
% Tableaux d'unit\'es
%%%
-\setKVdefault[ClesTableaux]{Virgule=true,Incline=false,Entiers=false,Decimaux=false,Milliards=false,Millions=false,Micro=false,Nano=false,Partie=false,CouleurG=gray!15,CouleurM=gray!15,Couleurm=gray!15,Couleuru=gray!15,Couleurd=gray!15,Classes=false,Nombres=false,Puissances=false,NbLignes=2,Metre=false,Are=false,Capacite=false,Carre=false,CarreA=false,Cube=false,Litre=false,Gramme=false,Fleches=false,FlechesB=false,FlechesH=false,Colonnes=false,Prefixes=false,Escalier=false,CubeA=false,Taille=5,Largeur=4.75em,Nom=PfCTableau,CodeAfter={},PuissancesSeules=false,Colonne=-1,Octet=false,CouleurGN=white,CadreGN=black,Tabcolsep=0.275\tabcolsep,Exterieur=false,Condense=false}%
+\def\filedateTableaux{2024/08/15}%
+\def\fileversionTableaux{0.1a}%
+\message{-- \filedateTableaux\space v\fileversionTableaux}%
+\message{`PfCTableauxUnites.tex' v\fileversionTableaux\space (\filedateTableaux)}
+\setKVdefault[ClesTableaux]{Virgule=true,Incline=false,Entiers=false,Decimaux=false,Milliards=false,Millions=false,Micro=false,Nano=false,Partie=false,CouleurG=gray!15,CouleurM=gray!15,Couleurm=gray!15,Couleuru=gray!15,Couleurd=gray!15,Classes=false,Nombres=false,Puissances=false,NbLignes=2,Metre=false,Are=false,Capacite=false,Carre=false,CarreA=false,Cube=false,Litre=false,Gramme=false,Fleches=false,FlechesB=false,FlechesH=false,Colonnes=false,Prefixes=false,Escalier=false,CubeA=false,Taille=5,Largeur=4.75em,Nom=PfCTableau,CodeAfter={},PuissancesSeules=false,Colonne=-1,Octet=false,CouleurGN=white,CadreGN=black,Tabcolsep=0.275\tabcolsep,Exterieur=false,Condense=false,DoubleEntree=false}%
\defKV[ClesTableaux]{ColonnesSup=\setKV[ClesTableaux]{Exterieur}}%
%
\newcommand\PfCTBstrut{\rule[-1.2ex]{0pt}{3.8ex}}% Top and Bottom strut
@@ -52,7 +56,10 @@
\xdef\PfCCoefConversion{10}%
}{}%
\PfCTableauIncline%
- }{%
+ }{%Fin Escalier
+ \ifboolKV[ClesTableaux]{DoubleEntree}{%
+ \TableauDoubleEntree[#1]{#2}%
+ }{}%
%
%%% Clé Octet
%
diff --git a/macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex b/macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex
index 3399cbecff..df109d964a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex
@@ -1,6 +1,10 @@
%%%
% Tables Addition-Multiplication
%%%
+\def\filedateTableOp{2024/08/04}%
+\def\fileversionTableOp{0.1}%
+\message{-- \filedateTableOp\space v\fileversionTableOp}%
+%
\setKVdefault[Tables]{Addition=false,Soustraction=false,Multiplication,Seul=false,Debut=0,Fin=10,Couleur=white,Inverse=false}
% pour m\'emoire
diff --git a/macros/latex/contrib/profcollege/latex/PfCTectonic.tex b/macros/latex/contrib/profcollege/latex/PfCTectonic.tex
index df859b0453..3026bf9be0 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTectonic.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTectonic.tex
@@ -1,6 +1,10 @@
%%%
% Tectonic
%%%
+\def\filedateTectonic{2024/08/04}%
+\def\fileversionTectonic{0.1}%
+\message{-- \filedateTectonic\space v\fileversionTectonic}%
+%
\setKVdefault[ClesTectonic]{CouleurCase=LightGray,TLargeur=5,THauteur=5,Solution=false,Largeur=25pt,CouleurSolution=black,Tailles=false,Aide=false}%
\defKV[ClesTectonic]{Taille=\setKV[ClesTectonic]{Tailles}}%
\defKV[ClesTectonic]{ListeNombres=\setKV[ClesTectonic]{Aide}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCThales.tex b/macros/latex/contrib/profcollege/latex/PfCThales.tex
index d4adb5be01..140bde3f23 100644
--- a/macros/latex/contrib/profcollege/latex/PfCThales.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCThales.tex
@@ -1,6 +1,10 @@
%%%
% Thales
%%%
+\def\filedateThales{2024/08/04}%
+\def\fileversionThales{0.1}%
+\message{-- \filedateThales\space v\fileversionThales}%
+%
\newcount\ppcm%
\newcommand\PPCM[2]{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCTicketCaisse.tex b/macros/latex/contrib/profcollege/latex/PfCTicketCaisse.tex
index 1c460e3693..2286b08332 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTicketCaisse.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTicketCaisse.tex
@@ -1,8 +1,16 @@
%%%
% Ticket de caisse
%%%
+\def\filedateTicketCaisse{2024/08/04}%
+\def\fileversionTicketCaisse{0.1}%
+\message{-- \filedateTicketCaisse\space v\fileversionTicketCaisse}%
+%
\newcounter{PfCNbInsulte}%
+\newcounter{PfCChoixService}%
\setcounter{PfCNbInsulte}{0}%
+\setcounter{PfCChoixService}{0}%
+%
+\newlength\PfCTicketLarg
\NewDocumentCommand\PfCPrixInsulte{sm}{%
\setsepchar{,}\ignoreemptyitems%
@@ -67,15 +75,17 @@
}%
\makeatother
-\setKVdefault[TicketCaisse]{Largeur=222,Especes=50,Enseigne=Au comptoir des maths,DateAchat=\today,HeureAchat=15:13:34,Taches=false,Rendu,Total,UK=false,US=false,CFA=false,CFP=false,CHF=false,Euro=false,Solution=false}
+\setKVdefault[TicketCaisse]{Largeur=222pt,Especes=50,Simple=false,Taxes=false,SansRendu=false,Enseigne=Au comptoir des maths,DateAchat=\today,HeureAchat=15:13:34,Taches=false,Rendu,Total,SousTotal=false,UK=false,US=false,CFA=false,CFP=false,CHF=false,Euro=false,Solution=false}
\defKV[TicketCaisse]{Couleur=\colorlet{PfCTicketCouleurSolution}{#1}\setKV[TicketCaisse]{Solution}}
+\defKV[TicketCaisse]{Service=\setKV[TicketCaisse]{Taxes}}
-\NewDocumentCommand\TicketCaisse{om}{%
+\NewDocumentCommand\TicketCaisse{som}{%
\setcounter{PfCNbInsulte}{0}%
\useKVdefault[TicketCaisse]%
- \setKV[TicketCaisse]{#1}%
+ \setKV[TicketCaisse]{#2}%
+ \setlength{\PfCTicketLarg}{\useKV[TicketCaisse]{Largeur}}%
\setsepchar[*]{,*/}%
- \readlist*\ListeAchats{#2}%
+ \readlist*\ListeAchats{#3}%
% On fait trois listes pour les retenir
% Liste Quantités
\xdef\PfCFooQuantites{}%
@@ -122,9 +132,123 @@
\xintFor* ##1 in{\xintSeq{1}{\ListeAchatslen}}\do{%
\xdef\PfCTCTotal{\fpeval{\PfCTCTotal+\ListeQuantites[##1]*\ListePUnitaires[##1]}}%
}%
-% Le coût total est \PfCTCTotal\\
+ \ifboolKV[TicketCaisse]{Taxes}{%
+ % On décompose la clé
+ \StrChar{\useKV[TicketCaisse]{Service}}{1}[\MyLetter]%
+ % Si le premier caractère est !, il faut regarder si le deuxième caractère est une étoile
+ \IfStrEq{\MyLetter}{!}{%
+ \StrChar{\useKV[TicketCaisse]{Service}}{2}[\MyLettera]%
+ \IfStrEq{\MyLettera}{*}{%
+ \StrGobbleLeft{\useKV[TicketCaisse]{Service}}{2}[\PfCTCValeurService]
+ \setcounter{PfCChoixService}{3}%
+ }{%
+ \StrGobbleLeft{\useKV[TicketCaisse]{Service}}{1}[\PfCTCValeurService]
+ \setcounter{PfCChoixService}{1}%
+ }%
+ }{%il faut regarder si c'est une étoile
+ \StrChar{\useKV[TicketCaisse]{Service}}{1}[\MyLettera]%
+ \IfStrEq{\MyLettera}{*}{%
+ \StrGobbleLeft{\useKV[TicketCaisse]{Service}}{1}[\PfCTCValeurService]
+ \setcounter{PfCChoixService}{2}
+ }{%
+ \xdef\PfCTCValeurService{\useKV[TicketCaisse]{Service}}%
+ \setcounter{PfCChoixService}{0}
+ }%
+ }%
+ % On fait les calculs associés à la clé.
+ \xdef\PfCTCSousTotal{\PfCTCTotal}%
+ \xdef\PfCTCService{\fpeval{\PfCTCValeurService*\PfCTCSousTotal/100}}%
+ \xdef\PfCTCTotal{\fpeval{\PfCTCSousTotal+\PfCTCService}}%
+ }{}%
+ % Le coût total est \PfCTCTotal\\
+ \IfBooleanTF{#1}{%
+ \ttfamily
+ \begin{tabular}{|m{0.48\PfCTicketLarg}m{0.13\PfCTicketLarg}m{0.165\PfCTicketLarg}m{0.225\PfCTicketLarg}|}%
+ \hline
+ &&&\\%
+ \multicolumn{4}{|c|}{\Large\bfseries\useKV[TicketCaisse]{Enseigne}}\\%
+ &&&\\%
+ \hline%
+ &&&\\%
+ \footnotesize\sc Description&\centering \footnotesize\sc Qte.&\centering\footnotesize\sc P.u.&\hfill\footnotesize\sc Prix \ifboolKV[TicketCaisse]{Taxes}{H.T.}{Net}\\%
+ &&&\\%
+ \xintFor* ##1 in{\xintSeq{1}{\ListeAchatslen}}\do{%
+ \ListeElements[##1]&%
+ \centering
+ \footnotesize%
+ \StrChar{\ListeAchats[##1,1]}{1}[\MyLetter]%
+ \IfStrEq{\MyLetter}{!}{\PfCPrixInsulte*{\ListeQuantites[##1]}}{\xintifboolexpr{\fpeval{\ListeQuantites[##1]}==1}{}{\num{\ListeQuantites[##1]}}}%
+ &
+ \hfill
+ \footnotesize
+ %Savoir si le nombre d'articles est affiché
+ \StrChar{\ListeAchats[##1,1]}{1}[\MyLetter]%
+ % Si le nombre d'articles n'est pas affiché, il faut impérativement afficher le prix unitaire
+ \IfStrEq{\MyLetter}{!}{%
+ \PrixTicket{\ListePUnitaires[##1]}%
+ }{%
+ % On regarde si on affiche le prix unitaire
+ \StrChar{\ListeAchats[##1,3]}{1}[\MyLettera]%
+ % Si c'est un !, on affiche pas
+ % Sinon, on affiche
+ \IfStrEq{\MyLettera}{!}{%
+ \PfCPrixInsulte*{\PrixTicket{\ListePUnitaires[##1]}}%
+ }{%
+ \xintifboolexpr{\fpeval{\ListeQuantites[##1]}==1}{}{%
+ \PrixTicket{\ListePUnitaires[##1]}%
+ }%
+ }%
+ }%
+ &\hfill
+ \StrChar{\ListeAchats[##1,3]}{1}[\MyLetter]%
+ % Si le premier caractère est !, il faut regarder si le deuxième caractère est une étoile
+ \IfStrEq{\MyLetter}{!}{%
+ \StrChar{\ListeAchats[##1,3]}{2}[\MyLettera]%
+ \IfStrEq{\MyLettera}{*}{%
+ \PfCPrixInsulte*{\PrixTicket{\fpeval{\ListeQuantites[##1]*\ListePUnitaires[##1]}}}%
+ }{%
+ \PrixTicket{\fpeval{\ListeQuantites[##1]*\ListePUnitaires[##1]}}%
+ }%
+ }{%il faut regarder si c'est une étoile
+ \StrChar{\ListeAchats[##1,3]}{1}[\MyLettera]%
+ \IfStrEq{\MyLettera}{*}{%
+ \PfCPrixInsulte{\PrixTicket{\fpeval{\ListeQuantites[##1]*\ListePUnitaires[##1]}}}%
+ }{%
+ \PrixTicket{\fpeval{\ListeQuantites[##1]*\ListePUnitaires[##1]}}%
+ }%
+ }%
+ \\
+ }%
+ &&&\\%
+ \hline%
+ &&&\\
+ % Partie Service
+ \ifboolKV[TicketCaisse]{Taxes}{%
+ Total H.T.\uppercase{&}\uppercase{&}\uppercase{&}\hfill\ifboolKV[TicketCaisse]{SousTotal}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCSousTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCSousTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCSousTotal}}}
+ \\%
+ Service %
+ \ifodd\thePfCChoixService\relax \PfCPrixInsulte{\num{\PfCTCValeurService}}\else\num{\PfCTCValeurService}\fi~\si{\percent}%
+ &&&\hfill
+ \ifnum\thePfCChoixService>1\relax \PfCPrixInsulte{\PrixTicket{\PfCTCService}}\else\PrixTicket{\PfCTCService}\fi%
+ \\
+ &&&\\
+ \hline
+ &&&\\
+ }{}%
+ \ifboolKV[TicketCaisse]{Simple}{}{%
+ Total\ifboolKV[TicketCaisse]{Taxes}{ T.T.C.}{}&&&\hfill\ifboolKV[TicketCaisse]{Total}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}}\\%
+ \ifboolKV[TicketCaisse]{SansRendu}{}{%
+ Espèces&&&\hfill\PrixTicket{\useKV[TicketCaisse]{Especes}}\\%
+ Rendu&&&\hfill\ifboolKV[TicketCaisse]{Rendu}{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}{\PfCPrixInsulte*{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}}\\%
+ }
+ &&&\\%
+ }%
+ \multicolumn{4}{|c|}{\footnotesize\useKV[TicketCaisse]{DateAchat}\qquad\useKV[TicketCaisse]{HeureAchat}}\\%
+ \hline
+ \end{tabular}
+ }{%
{\ttfamily%
- \begin{NiceTabular}{m{107pt}m{29pt}m{36pt}m{50pt}}%
+ \begin{NiceTabular}{m{0.48\PfCTicketLarg}m{0.13\PfCTicketLarg}m{0.165\PfCTicketLarg}m{0.225\PfCTicketLarg}}%
\CodeBefore
\tikz\node[opacity=0.2,yshift=-1.5cm] at ($(1-|1)!0.5!(1-|last)$) {\Large\bfseries\reflectbox{
\begin{tabular}{c}
@@ -148,7 +272,7 @@
\\%
\Cdots\\%
\\%
- \Block[l]{}{\footnotesize\sc Description}&\Block{}{\footnotesize\sc Qte.}&\Block{}{\footnotesize\sc P.u.}&\Block[r]{}{\footnotesize\sc Prix Net}\\%
+ \Block[l]{}{\footnotesize\sc Description}&\Block{}{\footnotesize\sc Qte.}&\Block{}{\footnotesize\sc P.u.}&\Block[r]{}{\footnotesize\sc Prix \ifboolKV[TicketCaisse]{Taxes}{H.T.}{Net}}\\%
\\%
\xintFor* ##1 in{\xintSeq{1}{\ListeAchatslen}}\do{%
\ListeElements[##1]&%
@@ -200,11 +324,28 @@
}%
\\%
\Cdots\\%
- Total&&&\Block[r]{}{\ifboolKV[TicketCaisse]{Total}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}}}\\%
- Espèces&&&\Block[r]{}{\PrixTicket{\useKV[TicketCaisse]{Especes}}}\\%
- Rendu&&&\Block[r]{}{\ifboolKV[TicketCaisse]{Rendu}{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}{\PfCPrixInsulte*{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}}}\\%
+ % Partie Service
+ \ifboolKV[TicketCaisse]{Taxes}{%
+ Total H.T.&&&\Block[r]{}{\ifboolKV[TicketCaisse]{SousTotal}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCSousTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCSousTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCSousTotal}}}
+ }\\%
+ Service %
+ \ifodd\thePfCChoixService\relax \PfCPrixInsulte{\num{\PfCTCValeurService}}\else\num{\PfCTCValeurService}\fi~\si{\percent}%
+ &&&\Block[r]{}{%
+ \ifnum\thePfCChoixService>1\relax \PfCPrixInsulte{\PrixTicket{\PfCTCService}}\else\PrixTicket{\PfCTCService}\fi%
+ }\\
+ \Cdots\\
+ \\
+ }{}%
+ \ifboolKV[TicketCaisse]{Simple}{}{%
+ Total\ifboolKV[TicketCaisse]{Taxes}{ T.T.C.}{}&&&\Block[r]{}{\ifboolKV[TicketCaisse]{Total}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}}}\\%
+ \ifboolKV[TicketCaisse]{SansRendu}{}{%
+ Espèces&&&\Block[r]{}{\PrixTicket{\useKV[TicketCaisse]{Especes}}}\\%
+ Rendu&&&\Block[r]{}{\ifboolKV[TicketCaisse]{Rendu}{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}{\PfCPrixInsulte*{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}}}\\%
+ }
\\%
- \Block{1-4}{\footnotesize\useKV[TicketCaisse]{DateAchat}\qquad\useKV[TicketCaisse]{HeureAchat}}&&&\\%
+ }%
+ \Block{1-4}{\footnotesize\useKV[TicketCaisse]{DateAchat}\qquad\useKV[TicketCaisse]{HeureAchat}}&&&\\%
\end{NiceTabular}
}%
+ }
}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCTortueBase.tex b/macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
index 461a42fb71..05a6524e98 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
@@ -1,6 +1,10 @@
%%%
% Tortue
%%%
+\def\filedateTortue{2024/08/04}%
+\def\fileversionTortue{0.1}%
+\message{-- \filedateTortue\space v\fileversionTortue}%
+%
\setKVdefault[Tortue]{%
Pas=0.2mm,%Déplacement,
Etapes=false,%Pour arrêter la construction à une étape particulière
diff --git a/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex b/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
index 38fe05ce60..0bd7a90da6 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
@@ -1,6 +1,10 @@
%%%
% Trigonom\'etrie
%%%
+\def\filedateTrigo{2024/08/04}%
+\def\fileversionTrigo{0.1}%
+\message{-- \filedateTrigo\space v\fileversionTrigo}%
+%
\def\MPFigTrigo#1#2#3#4#5#6#7#8{%
\ifluatex
% \mplibcodeinherit{enable}
diff --git a/macros/latex/contrib/profcollege/latex/PfCTrio.tex b/macros/latex/contrib/profcollege/latex/PfCTrio.tex
index 560258ff59..06c0a77e3b 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTrio.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTrio.tex
@@ -1,3 +1,10 @@
+%%%
+%Trio
+%%%
+\def\filedateTrio{2024/08/04}%
+\def\fileversionTrio{0.1}%
+\message{-- \filedateTrio\space v\fileversionTrio}%
+%
\newlength\PfCTrioHauteur%
\newcounter{PfCTrioLettre}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCTriominos.tex b/macros/latex/contrib/profcollege/latex/PfCTriominos.tex
index efc6cd24b3..b2ece6c0d4 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTriominos.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTriominos.tex
@@ -1,6 +1,10 @@
%%%
% Triominos
%%%
+\def\filedateTriominos{2024/08/04}%
+\def\fileversionTriominos{0.1}%
+\message{-- \filedateTriominos\space v\fileversionTriominos}%
+%
\setKVdefault[ClesTriomino]{Longueur=5cm,Etages=3,Ecart=0.6,AffichagePiece=false,Hexagone=false,Recapitulatif=false,Colonnes=2}%
\defKV[ClesTriomino]{Piece=\setKV[ClesTriomino]{AffichagePiece=true}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCUrneProba.tex b/macros/latex/contrib/profcollege/latex/PfCUrneProba.tex
index 895f96136c..0d00e039c4 100644
--- a/macros/latex/contrib/profcollege/latex/PfCUrneProba.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCUrneProba.tex
@@ -1,6 +1,10 @@
%%%
% Urne et probabilités
%%%
+\def\filedateUrneProba{2024/08/04}%
+\def\fileversionUrneProba{0.1}%
+\message{-- \filedateUrneProba\space v\fileversionUrneProba}%
+%
\newtoks\tokUrneListeCouleurs%
\newtoks\tokUrneListeColonnes%
\newtoks\tokUrneListeNombres%
diff --git a/macros/latex/contrib/profcollege/latex/PfCVisualisationMulDeci.tex b/macros/latex/contrib/profcollege/latex/PfCVisualisationMulDeci.tex
index 54a1a079cc..99024a4358 100644
--- a/macros/latex/contrib/profcollege/latex/PfCVisualisationMulDeci.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCVisualisationMulDeci.tex
@@ -1,6 +1,10 @@
%%%
% Visualisation Multiplication Décimaux
%%%
+\def\filedateVisuMulDeci{2024/08/04}%
+\def\fileversionVisuMulDeci{0.1}%
+\message{-- \filedateVisuMulDeci\space v\fileversionVisuMulDeci}%
+%
\setKVdefault[VisMulDec]{Couleur=Orange,CouleurUnite=DarkGreen,Dixiemes=false,Unite=2}%
\newtoks\toksvismuldec%
diff --git a/macros/latex/contrib/profcollege/latex/PfCVueCubes.tex b/macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
index 9365b7e621..196358d9bf 100644
--- a/macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
@@ -1,6 +1,10 @@
%%%
% Vue Cubes
%%%
+\def\filedateVueCubes{2024/08/26}%
+\def\fileversionVueCubes{0.1a}%
+\message{-- \filedateVueCubes\space v\fileversionVueCubes}%
+%
\setKVdefault[VueCubes]{Solution=false,Hauteur=5,Profondeur=4,Largeur=3,Angle=60,Nom=Ex1,Trou=false,Echelle=0.25,CouleurCube=LightSteelBlue,CouleurFleche=LightGray,Face=false,Creation=false,Grilles=false,Seul=false,Perso=false,EclateX=0,EclateZ=0,EclateY=0}
\newtoks\toklisteVueCube%
@@ -30,9 +34,9 @@
\readlist*\PfCListeHauteursCubes{#2}%
\reademptyitems%
\foreachitem\compteur\in\PfCListeHauteursCubes{\expandafter\UpdatetoksVueCube\compteur\nil}%
- \BuildVueCubes{\useKV[VueCubes]{Angle}}{\the\toklisteVueCube}%
+ \BuildVueCubes{\useKV[VueCubes]{Angle}}{\the\toklisteVueCube}{\useKV[VueCubes]{Nom}}%
}{%
- \BuildVueCubes{\useKV[VueCubes]{Angle}}{}%
+ \BuildVueCubes{\useKV[VueCubes]{Angle}}{}{\useKV[VueCubes]{Nom}}%
}%
}%
}%
@@ -100,11 +104,13 @@
\fi
}
-\NewDocumentCommand\BuildVueCubes{m m}{%
+\NewDocumentCommand\BuildVueCubes{m m m}{%
\ifluatex
\mplibforcehmode
\xdef\PfCVueCubeNom{\useKV[VueCubes]{Nom}}%
\begin{mplibcode}[\PfCVueCubeNom]
+ string NomRetenu;
+ NomRetenu=str #3;
input PfCSolid;
intensite:=1.5;
@@ -176,6 +182,9 @@
endfor;
fi;
+ write decimal(TotalObj) to "PfCNombreCubes"&NomRetenu&".tex";%
+ write EOF to "PfCNombreCubes"&NomRetenu&".tex";%
+
% Pour la fleche
path Fleche;
color A[];
diff --git a/macros/latex/contrib/profcollege/latex/PfCYohaku.tex b/macros/latex/contrib/profcollege/latex/PfCYohaku.tex
index c710834b93..942e66c111 100644
--- a/macros/latex/contrib/profcollege/latex/PfCYohaku.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCYohaku.tex
@@ -1,6 +1,10 @@
%%%
% Yohaku
%%%
+\def\filedateYohaku{2024/08/04}%
+\def\fileversionYohaku{0.1}%
+\message{-- \filedateYohaku\space v\fileversionYohaku}%
+%
\setKVdefault[Yohaku]{Taille=2,Largeur=1cm,Hauteur=1cm,Addition,Multiplication=false,Perso=false,Limite=50,Relatif=false,Negatif=false,Pair=false,Impair=false,Premier=false,Solution=false,Visible=false,Bordure=false,CouleurResultat=gray!15,Ligne=0,Colonne=0,PasL=0,PasC=0,CouleurZone=gray!25}%
\defKV[Yohaku]{Case=\setKV[Yohaku]{Visible}}%
diff --git a/macros/latex/contrib/profcollege/latex/ProfCollege.sty b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
index a6b767a3bf..df794a8d86 100644
--- a/macros/latex/contrib/profcollege/latex/ProfCollege.sty
+++ b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
@@ -2,9 +2,9 @@
% licence : Released under the LaTeX Project Public License v1.3c
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}%
-\def\filedate{2024/07/03}%
+\def\filedate{2024/09/04}%
\let\PfCfiledate\filedate%
-\def\fileversion{0.99-A-g}%
+\def\fileversion{0.99-A-j}%
\let\PfCfileversion\fileversion%
\ProvidesPackage{ProfCollege}[\filedate\space v\fileversion\space Aide pour utiliser LaTeX au college]%
@@ -340,6 +340,37 @@
\fi
}%
+\newlength{\PfCLongueurBarreHor}
+\setKVdefault[PfCLigneCompleter]{Ecart=20pt,Couleurs=false}%
+\defKV[PfCLigneCompleter]{Couleur=\setKV[PfCLigneCompleter]{Couleurs}}%
+
+\NewDocumentCommand\ListeACompleter{som}{%
+ \useKVdefault[PfCLigneCompleter]%
+ \setKV[PfCLigneCompleter]{#2}%
+ \ifboolKV[PfCLigneCompleter]{Couleurs}{\colorlet{PfCLC}{\useKV[PfCLigneCompleter]{Couleur}}}{}%
+ \setlength{\PfCLongueurBarreHor}{\useKV[PfCLigneCompleter]{Ecart}}%
+ \setsepchar{,}\reademptyitems%
+ \readlist*\ListeTiti{#3}%
+ \foreachitem\compteur\in\ListeTiti{%
+ \itemtomacro\ListeTiti[\compteurcnt]\PfCCaractere%
+ \StrChar{\PfCCaractere}{1}[\RetiensElmt]%
+ \IfStrEq{\RetiensElmt}{!}{%
+ \IfBooleanTF{#1}{%
+ \ifboolKV[PfCLigneCompleter]{Couleurs}{\colorlet{saved}{.}\color{PfCLC}}{}\StrGobbleLeft{\PfCCaractere}{1}\ifboolKV[PfCLigneCompleter]{Couleurs}{\color{saved}}{}%
+ }{%
+ \hbox to \PfCLongueurBarreHor{\hrulefill}%
+ }
+ }{%
+ \ListeTiti[\compteurcnt]%
+ }%
+ \ifnum\compteurcnt=\ListeTitilen\relax%
+ .%
+ \else%
+ ,
+ \fi%
+ }%
+}%
+
%https://tex.stackexchange.com/questions/128991/frac-or-inference-rule-with-dotted-line
\newcommand\PfCfrac[2]{%
\ooalign{$\genfrac{}{}{0pt}{0}{#1}{#2}$\cr\PfCdotover\cr}%
@@ -825,6 +856,9 @@
\def\PfCSymbolTimes{\times}%
\def\PfCSymbolDiv{\div}%
+\input{PfCCheque}
+\input{PfCCalculsDetailles}
+\input{PfCTableauDoubleEntree}
\input{PfCUrneProba}
\input{PfCProbaFrequence}
\input{PfCVisualisationMulDeci}
@@ -975,8 +1009,5 @@
\input{PfCScratch}
\RequirePackage{PfCInfixRPN}
-%\makeatletter
-%\let\@nil\@empty
-%\makeatother
\input{PfCArbreCalcul} \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
index 7ec73e648c..dc007c3643 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
@@ -526,6 +526,8 @@ enddef;
vardef marque_para(expr dd,ee,pa)=
save im;
picture im;
+ string totem;
+ totem="//";
pair kk,ll,mn,mo;
kk=point(pa*length dd) of dd;
ll=projection(kk,point(0.25*length ee) of ee,point(0.5*length ee) of ee);
@@ -534,7 +536,8 @@ vardef marque_para(expr dd,ee,pa)=
im=image(
drawarrow mo--kk;
drawarrow symetrie(mo,mn)--ll;
- label(btex // etex,mn);
+% label(btex $//$ etex,mn);
+ label(totem,mn);
);
im
enddef;
@@ -551,13 +554,14 @@ vardef marque_Para(text totem)(expr dd,ee,pa)=
drawarrow (mn{dir(210+angle(mn-mo))}..{dir(150+angle(mn-mo))}kk) cutbefore cercles(mn,3mm);
drawarrow symetrie((mn{dir(210+angle(mn-mo))}..{dir(150+angle(mn-mo))}kk) cutbefore cercles(mn,3mm),mn);
trace cercles(mn,3mm);
- for p_=totem:
- if p_="":
- label(btex // etex ,mn);
- else:
- label(btex ? etex,mn);
- fi;
- endfor;
+% for p_=totem:
+% if p_="":
+% label(btex $//$ etex ,mn);
+% else:
+% label(btex ? etex,mn);
+ label(totem,mn);
+% fi;
+% endfor;
);
im
enddef;
diff --git a/macros/latex/contrib/profcollege/metapost/PfCScratch.mp b/macros/latex/contrib/profcollege/metapost/PfCScratch.mp
index 6e2e7beb59..a2343b5312 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCScratch.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCScratch.mp
@@ -2596,12 +2596,11 @@ vardef Demander(expr nbpas)=
picture Dem,texto;
if string nbpas:
texto=ColleBoxNew("demander",OvalNb(nbpas),"et attendre");
- ColBloc:=CapteurTrois;
- Dem=Affichage(texto);
else:
- message("La commande -- Demander -- admet un argument de type string.");
- Dem=nullpicture;
+ texto=ColleBoxNew("demander",nbpas,"et attendre");
fi;
+ ColBloc:=CapteurTrois;
+ Dem=Affichage(texto);
Dem
enddef;
diff --git a/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp b/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
index 9a3a650c38..c2311b1d33 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
@@ -2595,12 +2595,11 @@ vardef Demander(expr nbpas)=
picture Dem,texto;
if string nbpas:
texto=ColleBoxNew("demander",OvalNb(nbpas),"et attendre");
- ColBloc:=CapteurTrois;
- Dem=Affichage(texto);
else:
- message("La commande -- Demander -- admet un argument de type string.");
- Dem=nullpicture;
+ texto=ColleBoxNew("demander",nbpas,"et attendre");
fi;
+ ColBloc:=CapteurTrois;
+ Dem=Affichage(texto);
Dem
enddef;
diff --git a/macros/latex/contrib/profcollege/metapost/PfCSketch.mp b/macros/latex/contrib/profcollege/metapost/PfCSketch.mp
new file mode 100644
index 0000000000..6a634cfc4d
--- /dev/null
+++ b/macros/latex/contrib/profcollege/metapost/PfCSketch.mp
@@ -0,0 +1,195 @@
+%D'après https://tex.stackexchange.com/questions/39296/simulating-hand-drawn-lines
+
+let normaldraw = draw ;
+let normalfill = fill ;
+let normaldrawarrow = drawarrow ;
+let normaldbldrawarrow = drawdblarrow ;
+let normalarrowhead = normalarrowhead;
+
+path fullsquare;
+fullsquare := unitsquare shifted - center unitsquare ;
+
+%D The variable \type{sketch_amount} determines the amount of randomness in the
+%D drawing
+numeric sketch_amount; sketch_amount := 3;
+numeric old_sketch_amount;
+%D The macro \type{sketchdraw} randomized the path before drawing it. The
+%D \type{expr} ... \type{text} trick is copied from the definition of
+%D \type{drawarrow}
+
+def sketchdraw expr p =
+ do_sketchdraw(p if (path p): randomized sketch_amount fi)
+enddef;
+
+def do_sketchdraw(expr p) text t =
+ normaldraw p t ;
+enddef;
+
+%cp
+%%%%%%%%%%%%%%%%%%
+vardef sketcharrowhead expr p =
+ save q,e; path q; pair e;
+ e = point length p of p;
+ q = gobble(p shifted -e cutafter makepath(pencircle scaled 2ahlength))
+ cuttings;
+ ((q rotated .5ahangle & reverse q rotated -.5ahangle -- cycle) shifted e) randomized (sketch_amount/3)
+enddef;
+
+path _apth;
+def sketchdrawarrow expr p = _apth:=p randomized sketch_amount; _sketchfinarr enddef;
+def sketchdrawdblarrow expr p = _apth:=p; _sketchfindarr enddef;
+
+def _sketchfinarr text t =
+ old_sketch_amount:=sketch_amount;
+ sketch_amount:=0;
+ draw _apth t;
+ sketch_amount:=old_sketch_amount;
+ filldraw sketcharrowhead _apth t
+enddef;
+
+def _sketchfindarr text t =
+ old_sketch_amount:=sketch_amount;
+ sketch_amount:=0;
+ draw _apth t;
+ sketch_amount:=old_sketch_amount;
+ filldraw sketcharrowhead _apth withpen currentpen t;
+ filldraw sketcharrowhead reverse _apth withpen currentpen t
+enddef;
+%%%%%%%%%%%%%%%%%%
+
+%D The macro \type{sketchfill} randomizes the path before filling it.
+path _sketch_path_;
+
+def sketchfill expr p =
+ _sketch_path_ := p randomized sketch_amount;
+ do_sketchfill
+enddef ;
+
+def do_sketchfill text t =
+ normalfill _sketch_path_ t ;
+enddef ;
+
+%D The macro \type{sketchypaths} is modeled after \type{visualizepaths} from
+%D \filename{mp-tool}.
+
+def sketchypaths =
+ let draw = sketchdraw ;
+ let fill = sketchfill ;
+ %cp
+ let drawarrow = sketchdrawarrow ;
+ let drawdblarrow = sketchdrawdblarrow ;
+ let arrowhead = sketcharrowhead ;
+ %fin cp
+enddef ;
+
+%cp
+def normalpaths =
+ let draw = normaldraw ;
+ let fill = normalfill ;
+ let drawarrow = normaldrawarrow ;
+ let drawdblarrow = normaldrawdblarrow ;
+ let arrowhead = normalarrowhead;
+enddef ;
+ %fincp
+
+%By metafun
+vardef mfun_randomized_picture(expr p,s)(text rnd) =
+ save currentpicture ;
+ picture currentpicture ;
+ currentpicture := nullpicture ;
+ for i within p :
+ addto currentpicture
+ if stroked i :
+ doublepath pathpart i rnd s
+ dashed dashpart i
+ withpen penpart i
+ withcolor colorpart i
+ withprescript prescriptpart i
+ withpostscript postscriptpart i
+ elseif filled i :
+ contour pathpart i rnd s
+ withpen penpart i
+ withcolor colorpart i
+ withprescript prescriptpart i
+ withpostscript postscriptpart i
+ else :
+ also i
+ fi
+ ;
+ endfor ;
+ currentpicture
+enddef ;
+
+primarydef p randomized s = (
+ if path p :
+ for i=0 upto length(p)-1 :
+ ((point i of p) randomshifted s) .. controls
+ ((postcontrol i of p) randomshifted s) and
+ ((precontrol (i+1) of p) randomshifted s) ..
+ endfor
+ if cycle p :
+ cycle
+ else :
+ ((point length(p) of p) randomshifted s)
+ fi
+ elseif pair p :
+ p randomshifted s
+ elseif cmykcolor p :
+ if cmykcolor s :
+ ((uniformdeviate cyanpart s) * cyanpart p,
+ (uniformdeviate magentapart s) * magentapart p,
+ (uniformdeviate yellowpart s) * yellowpart p,
+ (uniformdeviate blackpart s) * blackpart p)
+ elseif pair s :
+ ((xpart s + (uniformdeviate (ypart s - xpart s))) * p)
+ else :
+ ((uniformdeviate s) * p)
+ fi
+ elseif rgbcolor p :
+ if rgbcolor s :
+ ((uniformdeviate redpart s) * redpart p,
+ (uniformdeviate greenpart s) * greenpart p,
+ (uniformdeviate bluepart s) * bluepart p)
+ elseif pair s :
+ ((xpart s + (uniformdeviate (ypart s - xpart s))) * p)
+ else :
+ ((uniformdeviate s) * p)
+ fi
+ elseif color p :
+ if color s :
+ ((uniformdeviate greypart s) * greypart p)
+ elseif pair s :
+ ((xpart s + (uniformdeviate (ypart s - xpart s))) * p)
+ else :
+ ((uniformdeviate s) * p)
+ fi
+ elseif string p :
+ (resolvedcolor(p)) randomized s
+ elseif picture p :
+ mfun_randomized_picture(p,s)(randomized)
+ else :
+ % p - s/2 + uniformdeviate s % would have been better but we want to be positive
+ p + uniformdeviate s
+ fi
+ )
+enddef ;
+
+primarydef p randomshifted s =
+ begingroup ;
+ save ss ; pair ss ;
+ ss := paired(s) ;
+ p shifted (-.5xpart ss + uniformdeviate xpart ss,-.5ypart ss + uniformdeviate ypart ss)
+ endgroup
+enddef ;
+
+def resolvedcolor(expr s) =
+ .5white
+enddef ;
+
+vardef paired primary d =
+ if pair d : d else : (d,d) fi
+enddef ;
+
+ extra_endfig := "picture retiens; retiens=currentpicture; draw (retiens randomized 1) withpen pencircle scaled 0.5 withcolor 0.25white;" & extra_endfig;
+
+endinput
diff --git a/macros/latex/contrib/proflycee/README.md b/macros/latex/contrib/proflycee/README.md
index 11502d6f77..63ddb98197 100644
--- a/macros/latex/contrib/proflycee/README.md
+++ b/macros/latex/contrib/proflycee/README.md
@@ -8,6 +8,7 @@ proflycee est un package qui pourra vous aider à utiliser LaTeX au quotidien.
----------------
-Author : Cédric Pierquet
-email : cpierquet@outlook.fr
-Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+Author : Cédric Pierquet
+email : cpierquet@outlook.fr
+Licences : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+ CC0 for cliparts (from openclipart)
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
index b4802be53e..d39eb8a06f 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
index c3e58a2813..e9dc581cd8 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
index e37ce44eeb..238b07908d 100644
--- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty
+++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
@@ -1,9 +1,14 @@
-% Author : C. Pierquet
-% licence : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
+% Author.............: C. Pierquet
+% licence............: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
+% licence cliparts...: CC0 from openclipart
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2024/07/13 3.04d Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2024/09/27 3.05b Aide pour l'utilisation de LaTeX en lycee]
+% 3.05b Mise en standby des commandes liées à minted (attente de compatibilité complète avec tcblisting) + Clé [ValeursTan] pour les cercles trigo
+% 3.05a Conversions entre bases + vectorial clipart (de openclipart)
+% 3.04g Ajout de clés pour les arbres de probas
+% 3.04f Ajout de clés pour la coloration des nombres et Piton
+% 3.04e Commandes prix/angle/pourcent en lien avec siunitx
% 3.04d PitonInputFile et styles
% 3.04c Max et min pour des fonctions
% 3.04b Travail sur la loi binomiale + Ajout de clés pour les environnements graphiques
@@ -168,15 +173,15 @@
\input{proflycee-tools-espace.tex}
}%
{}%
- \IfSubStr{#1}{minted}%
- {%
- \if@build
- \RequirePackage[outputdir=build]{minted} %on charge minted avec le répertoire build
- \fi
- \tcbuselibrary{minted} %on charge minted via la librairie tcbox
- \input{proflycee-tools-minted.tex}
- }%
- {}%
+ % \IfSubStr{#1}{minted}%
+ % {%
+ % \if@build
+ % \RequirePackage[outputdir=build]{minted} %on charge minted avec le répertoire build
+ % \fi
+ % \tcbuselibrary{minted} %on charge minted via la librairie tcbox
+ % \input{proflycee-tools-minted.tex}
+ % }%
+ % {}%
\IfSubStr{#1}{pythontex}%
{%
\RequirePackage[gobble=auto]{pythontex}
@@ -233,5 +238,7 @@
\input{proflycee-tools-competences.tex}
%%------Examens
\input{proflycee-tools-exams.tex}
+%%------Cliparts
+\input{proflycee-tools-cliparts.tex}
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-cup.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-cup.pdf
new file mode 100644
index 0000000000..3ca7af1aac
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-cup.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal-flat.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal-flat.pdf
new file mode 100644
index 0000000000..83f7d91489
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal-flat.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal.pdf
new file mode 100644
index 0000000000..0e4712cece
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-checked.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-checked.pdf
new file mode 100644
index 0000000000..238d76df4e
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-checked.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-crossed.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-crossed.pdf
new file mode 100644
index 0000000000..94f04537b2
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-crossed.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-cup.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-cup.pdf
new file mode 100644
index 0000000000..e1b1a5fb46
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-cup.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal-flat.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal-flat.pdf
new file mode 100644
index 0000000000..424fc345ab
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal-flat.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal.pdf
new file mode 100644
index 0000000000..3246c38693
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-center.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-center.pdf
new file mode 100644
index 0000000000..bc03661421
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-center.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-left.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-left.pdf
new file mode 100644
index 0000000000..40f843b864
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-left.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-right.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-right.pdf
new file mode 100644
index 0000000000..323710e097
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-right.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse.pdf
new file mode 100644
index 0000000000..b8e69cd524
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-notok.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-notok.pdf
new file mode 100644
index 0000000000..0fed35ca1e
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-notok.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-ok.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-ok.pdf
new file mode 100644
index 0000000000..43cac49c38
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-ok.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-cup.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-cup.pdf
new file mode 100644
index 0000000000..9ba7602d26
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-cup.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal-flat.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal-flat.pdf
new file mode 100644
index 0000000000..70d0ca8d8b
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal-flat.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal.pdf
new file mode 100644
index 0000000000..ced83f9d17
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex
index a021fea937..a2008c15df 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex
@@ -1902,4 +1902,65 @@
}%
}
+%====CONVERSIONS ENTRE BASES
+\ExplSyntaxOn
+%commande interne (stockage ou non)
+\NewDocumentCommand\pflbasetobase{ m m m }{%
+ %1=init
+ %2=fin
+ %3=nb
+ \ifnum#2=10%
+ \int_from_base:nn {#3}{#1}%
+ \else%
+ \int_to_Base:nn {\int_from_base:nn {#3}{#1}}{#2}%
+ \fi%
+}
+
+\NewDocumentCommand\tmpresconvbases{ m m m O{\tmpconvres} }{%
+ %1=init
+ %2=fin
+ %3=nb
+ \ifnum#2=10%
+ \xdef#4{\int_from_base:nn {#3}{#1}}%
+ \else%
+ \xdef#4{\int_to_Base:nn {\int_from_base:nn {#3}{#1}}{#2}}%
+ \fi%
+}
+\ExplSyntaxOff
+
+%commande interne split adaptée de https://tex.stackexchange.com/questions/171007/split-a-character-string-n-by-n // unbonpetit // CC BY-SA 3.0
+\NewDocumentCommand\tmpStrSplit{ O{\,} m m O{\tmpsplitres} }{%
+ %1=espace / %2=nb caract / %3=chaîne / %4=macro de stockage
+ \xdef\splitstring{#3}\let\splitresult\empty%
+ \loop%
+ \StrLen\splitstring[\tempa]%
+ \StrSplit\splitstring{\number\numexpr\tempa-#2}\splitstring\tempb%
+ \xdef\splitresult{\unless\ifx\splitstring\empty#1\fi\tempb\splitresult}%
+ \unless\ifx\splitstring\empty%
+ \repeat%
+ \xdef#4{\splitresult}%
+}
+
+\NewDocumentCommand\ConversionEntreBases{ s O{\,} m m }{%
+ %calculs internes
+ \StrCut{#3}{->}{\tmpbaseinit}{\tmpbasefin}%
+ \tmpresconvbases{\tmpbaseinit}{\tmpbasefin}{#4}%\tmpconvres
+ %affichage
+ \ensuremath{%
+ \ifnum\tmpbaseinit=2%
+ \tmpStrSplit{4}{#4}%
+ {\tmpsplitres}\IfBooleanT{#1}{_{\tmpbaseinit}}%
+ \else%
+ {#4}\IfBooleanT{#1}{_{\tmpbaseinit}}%
+ \fi%
+ =%
+ \ifnum\tmpbasefin=2%
+ \tmpStrSplit[#2]{4}{\tmpconvres}%
+ {\tmpsplitres}\IfBooleanT{#1}{_{\tmpbasefin}}%
+ \else%
+ {\tmpconvres}\IfBooleanT{#1}{_{\tmpbasefin}}%
+ \fi%
+ }%
+}
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-cliparts.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-cliparts.tex
new file mode 100644
index 0000000000..13645695a7
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-cliparts.tex
@@ -0,0 +1,126 @@
+% proflycee-tools-cliparts.tex
+% Copyright 2024 Cédric Pierquet
+% Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+% logos from CC0 opencliparts (users Firkin & Juhele & qubodup & TzeenieWheenie & jetxee)
+
+%====DIMENSIONS
+\newlength{\tmpcharacterheightinline}
+\newlength{\tmpcharacterdepthinline}
+
+%====MACRO PRINCIPALE
+\NewDocumentCommand\InsererClipart{ s O{} m }{%
+ \IfBooleanTF{#1}%
+ {%
+ \IfFileExists{pfl-#3.pdf}{\includegraphics[#2]{pfl-#3.pdf}}{}%
+ }%
+ {%
+ \settototalheight{\tmpcharacterheightinline}{\hbox{AZERTYUIOPQSDFGHJKLMWXCVBNazertyuiopqsdfghjklmwxcvbn}}%
+ \settodepth{\tmpcharacterdepthinline}{\hbox{AZERTYUIOPQSDFGHJKLMWXCVBNazertyuiopqsdfghjklmwxcvbn}}%
+ \IfFileExists{pfl-#3.pdf}{\raisebox{-\tmpcharacterdepthinline}{\includegraphics[height=\tmpcharacterheightinline]{pfl-#3.pdf}}}{}%
+ }%
+}
+
+%====ALIASES
+\NewDocumentCommand\pflimgcoupeb{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{bronze-cup}}%
+ {\InsererClipart{bronze-cup}}%
+}
+
+\NewDocumentCommand\pflimgmedb{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{bronze-medal}}%
+ {\InsererClipart{bronze-medal}}%
+}
+
+\NewDocumentCommand\pflimgmedbp{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{bronze-medal-flat}}%
+ {\InsererClipart{bronze-medal-flat}}%
+}
+
+\NewDocumentCommand\pflimgverif{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{checked}}%
+ {\InsererClipart{checked}}%
+}
+
+\NewDocumentCommand\pflimgnonverif{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{crossed}}%
+ {\InsererClipart{crossed}}%
+}
+
+\NewDocumentCommand\pflimgcoupeo{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{gold-cup}}%
+ {\InsererClipart{gold-cup}}%
+}
+
+\NewDocumentCommand\pflimgmedo{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{gold-medal}}%
+ {\InsererClipart{gold-medal}}%
+}
+
+\NewDocumentCommand\pflimgmedop{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{gold-medal-flat}}%
+ {\InsererClipart{gold-medal-flat}}%
+}
+
+\NewDocumentCommand\pflimgsouris{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{mouse}}%
+ {\InsererClipart{mouse}}%
+}
+
+\NewDocumentCommand\pflimgsourisg{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{mouse-left}}%
+ {\InsererClipart{mouse-left}}%
+}
+
+\NewDocumentCommand\pflimgsourisc{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{mouse-center}}%
+ {\InsererClipart{mouse-center}}%
+}
+
+\NewDocumentCommand\pflimgsourisd{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{mouse-right}}%
+ {\InsererClipart{mouse-right}}%
+}
+
+\NewDocumentCommand\pflimgko{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{notok}}%
+ {\InsererClipart{notok}}%
+}
+
+\NewDocumentCommand\pflimgok{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{ok}}%
+ {\InsererClipart{ok}}%
+}
+
+\NewDocumentCommand\pflimgcoupea{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{silver-cup}}%
+ {\InsererClipart{silver-cup}}%
+}
+
+\NewDocumentCommand\pflimgmeda{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{silver-medal}}%
+ {\InsererClipart{silver-medal}}%
+}
+
+\NewDocumentCommand\pflimgmedap{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {\InsererClipart*[#2]{silver-medal-flat}}%
+ {\InsererClipart{silver-medal-flat}}%
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex
index 0a1555c4e9..f524c41cf3 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex
@@ -10,6 +10,39 @@
\RequirePackage{mleftright} %pour une meilleure gestion des espacements avec \left \right :-)
%\RequirePackage{mathrsfs}%pour \mathscr (à voir...)
+%===UNITÉS
+
+\NewDocumentCommand\pflprix{ o m }{%
+ \IfValueTF{#1}%
+ {%
+ \num[round-mode=places,round-precision=#1]{#2}\,\text{€}%
+ }%
+ {%
+ \num{#2}\,\text{€}%
+ }%
+}
+
+\NewDocumentCommand\pflangle{ o m }{%
+ \IfValueTF{#1}%
+ {%
+ \num[round-mode=places,round-precision=#1]{#2}\text{\textdegree}%
+ }%
+ {%
+ \num{#2}\text{\textdegree}%
+ }%
+}
+
+\NewDocumentCommand\pflpcent{ o m }{%
+ \IfValueTF{#1}%
+ {%
+ \num[round-mode=places,round-precision=#1]{#2}\,\%%
+ }%
+ {%
+ \num{#2}\,\%%
+ }%
+}
+
+
%===ENSEMBLES CLASSIQUES
\ifthenelse{\isundefined{\N}}%
{%
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex
index af4aebf384..42b23be551 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex
@@ -2,6 +2,7 @@
% Copyright 2023-2024 Cédric Pierquet
% Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+%3.05b En standy pour le moment...
%3.00g Modif mineure pour la marge gauche
%2.7.5 Argument optionnel pour les numéros de lignes + changement déclaration environnements
%2.7.3 Correction de la couleur des bordures
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
index 0cb6600617..52ef738955 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
@@ -2,6 +2,7 @@
% Copyright 2023-2024 Cédric Pierquet
% Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+%3.04f Ajout de clés pour la coloration des nombres et Piton
%3.04d PitonInputFile et styles, pour compatibilité pfm
%3.03c Thonny via piton + modification clé gobble ?
%3.01f PseudoCode via piton (?)
@@ -42,7 +43,7 @@
BarreTitre=true,%
Titre={{\scriptsize\faCode}~~Code Python},%
EspacementV=0.5\baselineskip,%
- CouleurNombres=orange
+ CouleurNombres={orange!75!black}
}
%==Style Moderne
@@ -160,7 +161,7 @@
\useKVdefault[envpiton]%
\setKV[envpiton]{#1}% on paramètres les nouvelles clés et on les simplifie
%------les styles piton
- \SetPitonStyle{ Number = \color{\CODPITcolnb} }
+ \SetPitonStyle[Python]{ Number = \color{\CODPITcolnb} }
\ifboolKV[envpiton]{Lignes}%si lignes=true
{\PitonOptions{left-margin=0.75em,line-numbers={skip-empty-lines=false,label-empty-lines=true,#3}}}%left-margin=auto,
{}%
@@ -227,7 +228,7 @@
\useKVdefault[envpiton]%
\setKV[envpiton]{#1}% on paramètres les nouvelles clés et on les simplifie
%------les styles piton
- \SetPitonStyle{ Number = \color{\CODPITcolnb} }
+ \SetPitonStyle[Python]{ Number = \color{\CODPITcolnb} }
\ifboolKV[envpiton]{Lignes}%si lignes=true
{\PitonOptions{left-margin=0.75em,line-numbers,line-numbers={skip-empty-lines=false,label-empty-lines=true,#3}}}%left-margin=auto,
{}%
@@ -477,12 +478,14 @@
\defKV[consolepyluatex]{%
Largeur=\def\ConsPyluaLarg{#1},
- Alignement=\def\ConsPyluaAlign{#1}
+ Alignement=\def\ConsPyluaAlign{#1},%
+ CouleurNombres=\def\CODPITcolnb{#1}
}
\setKVdefault[consolepyluatex]{%
Logo=true,%
Largeur=\linewidth,%
- Alignement=flush left
+ Alignement=flush left,%
+ CouleurNombres={orange!75!black}
}
\NewDocumentEnvironment{ConsolePiton}{ O{} D<>{} m }%
@@ -492,6 +495,7 @@
{
\restoreKV[consolepyluatex]% revenir au valeurs par défaut
\setKV[consolepyluatex]{#2}% lit les arguments optionnels
+ \SetPitonStyle[Python]{ Number = \color{\CODPITcolnb} }
\PitonOptions{width={\ConsPyluaLarg-5mm},break-lines,end-of-broken-line={\,},continuation-symbol={\;},#1}
%\PitonOptions{width={\ConsPyluaLarg-5mm},#1}
\PyLTVerbatimEnv
@@ -524,14 +528,16 @@
NomFichier=\def\thonnypitonfilename{#1},%
NomConsole=\def\thonnypitonshellname{#1},%
IntroConsole=\def\thonnypitonintroconsole{#1},%
- Gobble=\def\thonnypitongobble{#1}
+ Gobble=\def\thonnypitongobble{#1},%
+ CouleurNombres=\def\CODPITcolnb{#1}
}
\setKVdefault[pitonthonny]{%
NomFichier=script.py,%
NomConsole=console,%
IntroConsole={Python 3.11.6 /usr/bin/python},%
- Gobble={}
+ Gobble={},%
+ CouleurNombres={orange!75!black}
}
\NewPitonEnvironment{PitonThonnyEditor}{ D<>{} O{} m }%
@@ -539,6 +545,7 @@
\restoreKV[pitonthonny]%
\setKV[pitonthonny]{#1}%
\settowidth{\LargeurNumbersThonny}{\footnotesize\texttt{00}}%
+ \SetPitonStyle[Python]{Number=\color{\CODPITcolnb}}
\PitonOptions{left-margin=\LargeurNumbersThonny+1mm,line-numbers={skip-empty-lines=false,label-empty-lines=true},break-lines,indent-broken-lines,continuation-symbol={}}%
%--gestion du gobble
\IfStrEqCase{\thonnypitongobble}{%
@@ -564,6 +571,7 @@
{\restoreKV[pitonthonny]%
\setKV[pitonthonny]{#1}%
\settowidth{\LargeurNumbersThonny}{\footnotesize\texttt{00}}%
+ \SetPitonStyle[Python]{Number=\color{\CODPITcolnb}}
\PitonOptions{left-margin=\LargeurNumbersThonny+1mm,line-numbers,line-numbers={skip-empty-lines=false,label-empty-lines=true},break-lines,indent-broken-lines,continuation-symbol={}}%
\tcbset{tcbthonnypiton/.style={title=\vphantom{pf}\thonnypitonfilename\:\textcolor{gray}{×}},before skip=0.33\baselineskip,after skip=0.33\baselineskip}%
\tcolorbox[sharp corners=all,enhanced,size=small,width=#2,colframe=gray,colback=lightgray!5,tcbthonnypiton,fonttitle=\scriptsize\sffamily,coltitle=black,
@@ -579,6 +587,7 @@
\PyLTVerbatimEnv%
\tcbset{tcbthonnypitonconsole/.style={title=\vphantom{pf}\thonnypitonshellname\:\textcolor{gray}{×}},before skip=0.33\baselineskip,after skip=0.33\baselineskip}%
\noindent%
+ \SetPitonStyle[Python]{Number=\color{\CODPITcolnb}}
%--gestion du gobble
\IfStrEqCase{\thonnypitongobble}{%
{auto}{\PitonOptions{auto-gobble}}%
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex
index 92cff33772..e80cbb4d4c 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex
@@ -245,7 +245,10 @@
StyleTrait=\def\PLAPtypetrait{#1},%
EpaisseurTrait=\def\PLAPeptrait{#1},%
PositionProbas=\def\PLAPposprob{#1},%
- CouleurFond=\def\PLAPcolback{#1}
+ CouleurFond=\def\PLAPcolback{#1},%
+ CouleurTraits=\def\PLAPcolarc{#1},%
+ CouleurProbas=\def\PLAPcolprobas{#1},%
+ CouleurNoeuds=\def\PLAPcolnoeuds{#1}
}
\setKVdefault[PLTIKZARBRE]{%
@@ -260,7 +263,10 @@
StyleTrait={},%
EpaisseurTrait=semithick,%
PositionProbas={},%
- CouleurFond=white
+ CouleurFond=white,%
+ CouleurTraits=black,%
+ CouleurProbas=black,%
+ CouleurNoeuds=black
}
\NewDocumentCommand\IntPlaceProbasArbre{ m m m m m }{%
@@ -285,14 +291,14 @@
\readlist*\PLARBREDONNES{#2}%
\begin{tikzpicture}[x=\PLAPunite,y=\PLAPunite]
%styles
- \tikzstyle{noeud} = [font=\PLAPfont]
- \tikzstyle{probas}= [font=\PLAPfontproba]
+ \tikzstyle{noeud} = [font=\PLAPfont,text=\PLAPcolnoeuds]
+ \tikzstyle{probas}= [font=\PLAPfontproba,text=\PLAPcolprobas]
\ifboolKV[PLTIKZARBRE]{InclineProbas}
{\tikzstyle{PLetiquette}=[pos=0.525,sloped,inner sep=2pt,outer sep=2pt,rectangle]}
{\tikzstyle{PLetiquette}=[pos=0.525,inner sep=2pt,outer sep=2pt,rectangle]}
\ifboolKV[PLTIKZARBRE]{Fleche}
- {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait]}
- {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait]}
+ {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait,\PLAPcolarc]}
+ {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait,\PLAPcolarc]}
%arbre2x2
\IfEq{\PLAPtype}{2x2}
{%
@@ -576,14 +582,14 @@
\readlist*\PLARBREDONNES{#2}
\begin{tikzpicture}[x=\PLAPunite,y=\PLAPunite]
%styles
- \tikzstyle{noeud} = [font=\PLAPfont]
- \tikzstyle{probas}= [font=\PLAPfontproba]
+ \tikzstyle{noeud} = [font=\PLAPfont,text=\PLAPcolnoeuds]
+ \tikzstyle{probas}= [font=\PLAPfontproba,text=\PLAPcolprobas]
\ifboolKV[PLTIKZARBRE]{InclineProbas}
{\tikzstyle{PLetiquette}=[pos=0.525,sloped,inner sep=2pt,outer sep=2pt,rectangle]}
{\tikzstyle{PLetiquette}=[pos=0.525,inner sep=2pt,outer sep=2pt,rectangle]}
\ifboolKV[PLTIKZARBRE]{Fleche}
- {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait]}
- {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait]}
+ {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait,\PLAPcolarc]}
+ {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait,\PLAPcolarc]}
%arbre2x2
\IfEq{\PLAPtype}{2x2}
{%
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex
index 6efa608f73..f47c9a33bf 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex
@@ -35,7 +35,8 @@
Equationsin=false,%
cos=45,%
sin=30,%
- CouleurSol=blue
+ CouleurSol=blue,%
+ ValeursTan=false
}
\newcommand\CercleTrigo[1][]{%
@@ -43,6 +44,28 @@
\setKV[cercletrigo]{#1}
\tikzset{PLval/.style={inner sep=1pt,font=\PLcerclevaleurs,fill=\PLcerclefond}}
\tikzset{PLagl/.style={inner sep=1pt,font=\PLcercleangles,fill=\PLcerclefond}}
+ %tangente ?
+ \ifboolKV[cercletrigo]{ValeursTan}%
+ {%
+ \draw[\PLcerclethick,dotted,gray] (30:\PLcerclerayon)--({\PLcerclerayon},{sqrt(3)/3*\PLcerclerayon}) ;
+ \draw[\PLcerclethick,dotted,gray] (45:\PLcerclerayon)--({\PLcerclerayon},{\PLcerclerayon}) ;
+ \draw[\PLcerclethick,dotted,gray] (60:\PLcerclerayon)--({\PLcerclerayon},{sqrt(3)*\PLcerclerayon}) ;
+ \draw[\PLcerclethick,dotted,gray] (-30:\PLcerclerayon)--({\PLcerclerayon},{-sqrt(3)/3*\PLcerclerayon}) ;
+ \draw[\PLcerclethick,dotted,gray] (-45:\PLcerclerayon)--({\PLcerclerayon},{-\PLcerclerayon}) ;
+ \draw[\PLcerclethick,dotted,gray] (-60:\PLcerclerayon)--({\PLcerclerayon},{-sqrt(3)*\PLcerclerayon}) ;
+ \draw[\PLcerclethick] ({\PLcerclerayon},{-1.8*\PLcerclerayon}) -- ({\PLcerclerayon},{1.8*\PLcerclerayon}) ;
+ \ifboolKV[cercletrigo]{AffValeurs}
+ {%
+ \draw[] ([xshift=-2pt]{\PLcerclerayon},{\PLcerclerayon})--++(4pt,0) node[right=2pt,PLval] {$1$} ;
+ \draw[] ([xshift=-2pt]{\PLcerclerayon},{-\PLcerclerayon})--++(4pt,0) node[right=2pt,PLval] {$-1$} ;
+ \draw[] ([xshift=-2pt]{\PLcerclerayon},{sqrt(3)*\PLcerclerayon})--++(4pt,0) node[right=2pt,PLval] {$\sqrt{3}$} ;
+ \draw[] ([xshift=-2pt]{\PLcerclerayon},{-sqrt(3)*\PLcerclerayon})--++(4pt,0) node[right=2pt,PLval] {$-\sqrt{3}$} ;
+ \draw[] ([xshift=-2pt]{\PLcerclerayon},{sqrt(3)/3*\PLcerclerayon})--++(4pt,0) node[right=2pt,PLval] {$\tfrac{\sqrt{3}}{3}$} ;
+ \draw[] ([xshift=-2pt]{\PLcerclerayon},{-sqrt(3)/3*\PLcerclerayon})--++(4pt,0) node[right=2pt,PLval] {$-\tfrac{\sqrt{3}}{3}$} ;
+ }%
+ {}%
+ }%
+ {}%
%valeurs remarquables
\ifboolKV[cercletrigo]{AffAngles}
{%valeursdudessus
diff --git a/macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdf b/macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdf
deleted file mode 100644
index 655d73fe6e..0000000000
--- a/macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdf b/macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdf
new file mode 100644
index 0000000000..dfa1dab825
--- /dev/null
+++ b/macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty b/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
index 9aa462bb76..06a082376d 100644
--- a/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
+++ b/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
@@ -2,20 +2,33 @@
% licence : Released under the LaTeX Project Public License v1.3c
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}%
-\def\filedate{2024/05/02}%
+\def\filedate{2024/09/17}%
\let\PfMfiledate\filedate%
-\def\fileversion{0.94}%
+\def\fileversion{0.99}%
\let\PfMfileversion\fileversion%
\ProvidesPackage{ProfMaquette}[\filedate\space v\fileversion\space Maquettage de documents]%
\newif\if@Dyslexie \@Dyslexiefalse
+\newif\if@CAN \@CANfalse
+\newif\if@Revision \@Revisionfalse
+\newif\if@AssembleCorrections \@AssembleCorrectionsfalse
+\newif\if@Personnel \@Personnelfalse
\DeclareOption{Dyslexie}{\@Dyslexietrue}
+\DeclareOption{CAN}{\@CANtrue}
+\DeclareOption{Revision}{\@Revisiontrue}
+\DeclareOption{AssembleCorrections}{\@AssembleCorrectionstrue}
+\DeclareOption{Personnel}{\@Personneltrue}
\ProcessOptions\relax
+
+\if@AssembleCorrections
+ \AddToHook{env/document/end}[AC]{\PfMAffichageTousCorriges}%
+\fi
+
% packages nécessaires
\RequirePackage{verbatim}%
-
+\RequirePackage{xintexpr}
\RequirePackage{calc}%
\RequirePackage{xlop}%
@@ -34,31 +47,33 @@
\RequirePackage{modulus}%
\RequirePackage{ragged2e}%
-
+\RequirePackage{fontawesome5}
\makeatletter
\gdef\PfMFontSize{\@ptsize}
%\gdef\PfMFontSize{\f@size}
\makeatother
%définition des clés
\RequirePackage{simplekv}%
-\setKVdefault[Boulot]{Dys=false,Taille=14,Cours=false,Base=false,BaseHTML=false,CAN=false,Fiche=false,DM=false,DS=false,IE=false,Kholle=false,RecapBrevet=false,PdT=false,Parcours=false,Contrat=false,FdR=false,ParcoursPerso=false,OlympiadesAPMEP=false,CorrigeInverse=false,CorrigeSeul=false,CorrigeApres=false,CorrigeFin=false,CorrigeAll=false,Brevet=false,BaremeComplet=false,BaremeGlobal=false,CorrectionColonnes=false,Epaisseur=0pt,VersSolution=false,AvecEntrainement=false,Small=false,Footnotesize=false,Scriptsize=false,AllDirect=false,AllPouce=false}%Les deux derniers pour essayer de mettre tous les exercices d'un même fichier en mode Reponse, en mode Indice. Pas implanté, pas testé
+\setKVdefault[Boulot]{Graine=1,Dys=false,Taille=14,Cours=false,Base=false,BaseHTML=false,CAN=false,Fiche=false,DM=false,DS=false,IE=false,Kholle=false,RecapBrevet=false,PdT=false,Parcours=false,Contrat=false,FdR=false,ParcoursPerso=false,OlympiadesAPMEP=false,LivreHeros=false,CorrigeInverse=false,CorrigeSeul=false,CorrigeApres=false,CorrigeFin=false,CorrigeAll=false,Brevet=false,BaremeComplet=false,BaremeGlobal=false,CorrectionColonnes=false,EntrainementColonnes=false,Epaisseur=0pt,EEpaisseur=0pt,ESansSaut=false,VersSolution=false,AvecEntrainement=false,Small=false,Footnotesize=false,Scriptsize=false,AllDirect=false,AllPouce=false,Input=false}%Les deux derniers pour essayer de mettre tous les exercices d'un même fichier en mode Reponse, en mode Indice. Pas implanté, pas testé
\defKV[Boulot]{Colonnes=\setKV[Boulot]{CorrectionColonnes}}%
-\setKVdefault[Cours]{Couleur=Crimson,Theme=Trace écrite,NomExercice=Exercice}%
+\defKV[Boulot]{EColonnes=\setKV[Boulot]{EntrainementColonnes}}%
+\setKVdefault[Cours]{Couleur=Crimson,Theme=Trace \'ecrite,NomExercice=Exercice}%
\setKVdefault[DM]{Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname}%
\setKVdefault[DS]{Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname,Calculatrice=false,Sujet=A}%
-\setKVdefault[Fiche]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice,}%
-\setKVdefault[PdT]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
-\setKVdefault[FdR]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
-\setKVdefault[Parcours]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice,Vertical=false}%
-\setKVdefault[Contrat]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
+\setKVdefault[Fiche]{Theme=Les nombres d\'ecimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice,}%
+\setKVdefault[PdT]{Theme=Les nombres d\'ecimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
+\setKVdefault[FdR]{Theme=Les nombres d\'ecimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
+\setKVdefault[Parcours]{Theme=Les nombres d\'ecimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice,Vertical=false,Plan=false,Court=false}%
+\setKVdefault[Contrat]{Theme=Les nombres d\'ecimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
+\setKVdefault[OlympiadesAPMEP]{Theme=Les nombres d\'ecimaux}%
\setKVdefault[ParcoursPerso]{Fichier={}}%
\setKVdefault[IE]{Nom=\'Evaluation,Sujets=false,Theme={},Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname,Calculatrice=false}%
\defKV[IE]{Sujet=\setKV[IE]{Sujets}}%
-\setKVdefault[RecapBrevet]{Theme=Les nombres décimaux,Date=\today,Code={},NomExercice=Exercice}%
-\setKVdefault[Kholle]{Sujet=1,Numero=1,Date=15,Niveau=TSI-1,Code=\jobname,Lieu=Lycée
+\setKVdefault[RecapBrevet]{Theme=Les nombres d\'ecimaux,Date=\today,Code={},NomExercice=Exercice}%
+\setKVdefault[Kholle]{Sujet=1,Numero=1,Date=15,Niveau=TSI-1,Code=\jobname,Lieu=Lyc\'ee
du Hainaut (Valenciennes),NomEleve=Albert Einstein,CR=false}%
\setKVdefault[CAN]{Date=\today,Niveau=6,Duree=9,CoefQ=0.4,CoefR=0.35,CoefJ=0.1}%
-\setKVdefault[ClesExercices]{NbQuestions=1,PasTitre=false,AffichageSource=false,BaremeTotal,BaremeDetaille=false,MotPoint=point,AffichageTitre=false,Calculatrice=true,Oral=false,Difficulte=0,AffichageCompetence=false,PasCorrige=false,Direct=false,Pouce=false,Parcours=false,Contrat=false,FdR=false,Routes=false,Stops=false,Background=white,Cadre=gray!50,Numerote,Ligne=false,Doublespacing=false,Onehalfspacing=false,Cadres=false,TitreSol=false,NonUtilise=false,Profile=false,PasEntrainement=false}%
+\setKVdefault[ClesExercices]{NbQuestions=1,PasTitre=false,AffichageSource=false,BaremeTotal,BaremeDetaille=false,MotPoint=point,AffichageTitre=false,Calculatrice=true,Oral=false,Difficulte=0,AffichageCompetence=false,PasCorrige=false,Direct=false,Pouce=false,Parcours=false,Contrat=false,FdR=false,Routes=false,Stops=false,Background=white,Cadre=gray!50,Numerote,Ligne=false,Doublespacing=false,Onehalfspacing=false,Cadres=false,Grilles=false,Cinq=false,Huit=false,TitreSol=false,NonUtilise=false,Profile=false,AEntretenir=false,Fragile=false,AvecIndications=false,ACompleter=false,Aide=0,Score=0,EchelleSeyes=8,Ajout={},TitreCorrige=Corrigé de l'exercice}%
\defKV[ClesExercices]{TitreSolution=\setKV[ClesExercices]{TitreSol}}%
\defKV[ClesExercices]{Source=\setKV[ClesExercices]{AffichageSource}}%
\defKV[ClesExercices]{Titre=\setKV[ClesExercices]{AffichageTitre}}%
@@ -69,18 +84,28 @@
\defKV[ClesExercices]{Stop=\setKV[ClesExercices]{Stops}}%
\defKV[ClesExercices]{Lignes=\setKV[ClesExercices]{Ligne}}%
\defKV[ClesExercices]{Encart=\setKV[ClesExercices]{Cadres}}%
+\defKV[ClesExercices]{CinqCinq=\setKV[ClesExercices]{Grilles}\setKV[ClesExercices]{Cinq}}%
+\defKV[ClesExercices]{Seyes=\setKV[ClesExercices]{Grilles}\setKV[ClesExercices]{Huit}}%
\def\PfMTexteEncart{Indique ton travail ci-dessous.}%
-\setKVdefault[SchemaParcours]{Colonnes=100,Rayon=2.5mm,Largeur=7.5mm,Couleur=LightSteelBlue,Csv=false}%
+\setKVdefault[SchemaParcours]{Colonnes=100,Rayon=2.5mm,Largeur=7.5mm,Couleur=gray!70}%,Csv=false}%
\setKVdefault[SchemaContrat]{Ecart=7mm,Rayon=2.5mm}%
-\setKVdefault[SchemaFdR]{Ecart=7mm,Colonnes=100,Rayon=2.5mm,Largeur=7.5mm,Couleur=LightSteelBlue,Csv=false}%
+\setKVdefault[SchemaFdR]{Ecart=7mm,Colonnes=100,Rayon=2.5mm,Largeur=7.5mm,Couleur=gray!70}%,Csv=false}%
+% Commande pour retenir le nombre d'exercices par maquette.Utile seulement pour la clé AssembleCorrection
+\xdef\PfMRetiensLienExoMa{}%
+\xdef\PfMRetiensLienDefMa{}%
+% Commande pour passer des options à travers la clé Input. Elle remplace \input :)
+\NewDocumentCommand\Input{om}{%
+ \def\Relecture{\setKV[ClesExercices]{#1}}%
+ \input{#2}%
+ \def\Relecture{}%
+}%
% Sucres
\makeatletter%
\NewDocumentCommand\PfMDotfill{}{%
\leavevmode%
\cleaders\hb@xt@.44em{\hss\xleaders\hrule width0.33em\hss}\hfill%
\kern\z@}%
-
-%\makeatother%
+\makeatother%
%
\NewDocumentCommand\PfMpointilles{o}{%
\IfNoValueTF{#1}{\PfMDotfill}{\makebox[#1]{\PfMDotfill}}%
@@ -88,7 +113,15 @@
%
\NewDocumentCommand\PfMNbLignesRestantes{}{%
\edef\measurepage{\dimexpr\pagegoal-\pagetotal\relax}%
+ \edef\measurepagemax{\dimexpr\textheight\relax}%
+ % \edef\measurepage{\dimeval{\pagegoal-\pagetotal-\baselineskip}}%
\xdef\PfMResteLignes{\fpeval{trunc((\the\measurepage)/(\baselineskip),0)}}%
+ \xdef\PfMResteLignesMax{\fpeval{trunc((\the\measurepagemax)/(\baselineskip),0)}}%
+ \ifnum\PfMResteLignesMax<\PfMResteLignes\relax
+ \xdef\PfMResteLignes{\PfMResteLignesMax}
+ \fi
+ %\xdef\PfMResteLignes{\dimeval{trunc((\the\measurepage)/(\baselineskip),0)}}%
+ %Il reste \PfMResteLignes{} lignes alors que le nombre maximal de lignes sur une page est \PfMResteLignesMax{}.
}%
\NewDocumentCommand\PfMLignesFinales{}{%
@@ -123,28 +156,37 @@
\newlength\PfMLargeurJury%
\newlength\PfMEspaceAvantLignes%
\newlength\PfMEspaceApresLignes%
-\newlength\PfMLargeurComp
+\newlength\PfMLargeurComp%
\newlength\CRRHauteur%
\newlength\PfMEcartSupInterMots%
-\setlength{\CRRHauteur}{10cm}
+\newlength\PfMCoefcompetences%
+\def\PfMCoefCompetences{0.85}%
+\setlength{\CRRHauteur}{10cm}%
\setlength{\PfMHauteurAppreciation}{5cm}%
\setlength{\PfMHauteurRemarque}{5cm}%
-\setlength{\PfMEspaceAvantLignes}{1em}
-\setlength{\PfMEspaceApresLignes}{1em}
+\setlength{\PfMEspaceAvantLignes}{1em}%
+\setlength{\PfMEspaceApresLignes}{1em}%
\setlength{\PfMEcartSupInterMots}{1pt}%
+\setlength{\PfMCoefcompetences}{0.7\linewidth}%
% définition des compteurs
\newcounter{PfMMaquette}%Pour compter le nombres de "travaux"
\setcounter{PfMMaquette}{0}%
+\newcounter{PfMMaquetteSol}[PfMMaquette]%Pour compter le nombres de "travaux" dans les corrections
+\setcounter{PfMMaquetteSol}{0}%
\newcounter{PfMSection}%Pour le barème et ne pas faire obstruction à section
\setcounter{PfMSection}{0}%
\newcounter{PfMExo}[PfMMaquette]%Numéro des exercices
\setcounter{PfMExo}{0}%
-\newcounter{PfMExoSol}%Pour repérer les valeurs aléatoires construites automatiquement dans la solution
+%\newcounter{PfMExoSolAlea}%Pour repérer les valeurs aléatoires construites automatiquement dans la solution
+%\setcounter{PfMExoSolAlea}{0}%
+\newcounter{PfMExoSol}[PfMMaquette]%
\setcounter{PfMExoSol}{0}%
\newcounter{PfMExoEntrai}%Pour repérer les entrainements
\setcounter{PfMExoEntrai}{0}%
\newcounter{PfMCorrigeParcoursPerso}%affichage des solutions ou pas dans le cadre d'un parcours perso
\setcounter{PfMCorrigeParcoursPerso}{0}%
+\newcounter{PfMRetiensMapourPP}%Pour retenir le numéro de la maquette de référence pour les parcours perso
+\setcounter{PfMRetiensMapourPP}{0}%
\newcounter{PfMSOS}%Numéro des SOS dans les parcours fléchés
\setcounter{PfMSOS}{0}%
\newcounter{PfMAlea}%Pour repérer les valeurs aléatoires construites automatiquement
@@ -152,12 +194,17 @@
\newcounter{RetiensSol}%Pour l'affichage des solutions
\newcounter{RetiensRep}%Pour l'affichage des reponses.
\newcounter{RetiensInd}%Pour l'affichage des indices.
+\newcounter{RetiensIndic}%Pour l'affichage des indications.
+\newcounter{PfMRetiensQr}%Pour l'affichage des entrainements
\setcounter{RetiensSol}{0}%
\setcounter{RetiensRep}{0}%
\setcounter{RetiensInd}{0}%
+\setcounter{RetiensIndic}{0}%
+\setcounter{PfMRetiensQr}{0}%
\newcounter{PfMNbLogo}%Pour décaler les logos sur la ligne haute de tcolorbox
\setcounter{PfMNbLogo}{0}%
\newcount\Orientation%Pour le schéma des parcours
+\newcount\TotalParcoursTikz%Pour le total des exos à utiliser dans l'affichage des parcours tikz
\newcounter{PfMCNNumQ}%
\newcounter{Nbcolonnes}
@@ -166,6 +213,8 @@
\newif\ifPfMDeuxColonnes
\newif\ifPfMRectoVerso
+\newif\ifPfMRevision
+
\makeatletter
\if@twocolumn
\PfMDeuxColonnestrue
@@ -179,6 +228,11 @@
\else
\PfMRectoVersofalse
\fi
+\if@Revision
+ \PfMRevisiontrue
+\else
+ \PfMRevisionfalse
+\fi
\makeatother
% couleurs
@@ -228,6 +282,22 @@
\ifboolKV[Boulot]{CAN}{}{\end{tcolorbox}}%
}%
+\tcbset{%
+ indications/.style={
+ empty,
+ right=0pt,
+ left=0mm,
+ top=0pt,
+ bottom=0pt,
+ frame engine=path,
+ % colframe=Crimson!10,
+ frame hidden,
+ notitle,
+ sharp corners=west,
+ borderline west={3pt}{0pt}{black!50}
+ }
+}
+
%% Option french pour les mathématiques
% By CT
\NewDocumentCommand\TypoMathFrance{}{%
@@ -291,7 +361,7 @@
\NewDocumentCommand\RepartirEffectifTotal{mmm}{%
% #1 valeur de l'effectif total
% #2 nombre de valeurs à obtenir
- % #3 écart acceptable :) autour de la moyenen
+ % #3 écart acceptable :) autour de la moyenne
\xdef\PfCSLEffectifs{}%
\xdef\PfCValeurMoyenneTemp{\fpeval{floor(#1/#2)}}%
\xdef\PfCRetiensRETSomme{}%
@@ -405,7 +475,6 @@
\RenewDocumentCommand\ChoixAlea{s o m m m}{%
\IfBooleanTF{#1}{%
\stepcounter{PfMAlea}%
-% je sauvegarde la valeur \thePfMExo-\thePfMAlea
\IfNoValueTF{#2}{%
\expandafter\xdef\csname valeur\Roman{PfMExo}\roman{PfMAlea}\endcsname{\fpeval{randint(#3,#4)}}%
\expandafter\xdef\csname #5\endcsname{\csname valeur\Roman{PfMExo}\roman{PfMAlea}\endcsname}%
@@ -791,7 +860,8 @@
\setcounter{Melquestions}{0}%
\setsepchar{\item}\ignoreemptyitems%
\readlist*\ListeTest{#2}%
-% La liste des éléments retenus est \showitems*\ListeTest[]
+ \reademptyitems
+ % La liste des éléments retenus est \showitems*\ListeTest[]\par
\IfNoValueTF{#1}{%
\ChoixAleaMultiMix{\ListeTestlen}{1}{\ListeTestlen}{0}{\ListeShuffleA}%
\xdef\MelangeValeurTotale{\ListeTestlen}%
@@ -802,6 +872,8 @@
\ExporteListe{ListeShuffle}{\ListeShuffleA}%
\setsepchar{,}\ignoreemptyitems%
\readlist*\ListeNumQ{\ListeShuffleA}%
+ \reademptyitems
+ % L'ordre des questions est \ListeNumQ[]
\setcounter{Comptequestions}{1}%
\begin{enumerate}
\loop%
@@ -815,11 +887,15 @@
\NewDocumentEnvironment{Enumelangesol}{b}{%
\setcounter{Melquestions}{0}%
- \setsepchar{\item}%
+ \setsepchar{\item}\ignoreemptyitems%
\readlist*\ListeTest{#1}%
+ \reademptyitems
\RestoreListe{ListeShuffle}%
\setsepchar{,}\ignoreemptyitems%
\readlist*\ListeNumQ{\ListeShuffle}%
+ \reademptyitems
+% la liste des éléments retenus est \showitems*\ListeTest[]\par
+% L'ordre des questions est \ListeNumQ[]\par
\setcounter{Comptequestions}{1}%
\begin{enumerate}
\loop%
@@ -882,7 +958,7 @@
}
\def\buildtabcompetences{%
- \[\begin{tabular}{|p{0.70\linewidth}|*{3}{>{\centering\arraybackslash}p{0.05\linewidth}|}}
+ \[\begin{tabular}{|p{\PfMCoefcompetences}|*{3}{>{\centering\arraybackslash}p{0.05\linewidth}|}}
\cline{2-4}
\multicolumn{1}{c|}{}&\PfMCompNA&\PfMCompECA&\PfMCompA\\
\hline
@@ -892,7 +968,7 @@
}%
\def\Buildtabcompetences#1#2{%
- \setlength{\PfMLargeurComp}{\fpeval{0.85-0.05*#1}\linewidth-\fpeval{2*(#1-3)}\tabcolsep}%
+ \setlength{\PfMLargeurComp}{\fpeval{\PfMCoefCompetences-0.05*#1}\linewidth-\fpeval{2*(#1-3)}\tabcolsep}%
\[\begin{tabular}{|p{\PfMLargeurComp}|*{#1}{>{\centering\arraybackslash}p{0.05\linewidth}|}}%
\cline{2-\fpeval{1+#1}}%
\multicolumn{1}{c|}{}\xintFor* ##1 in{\xintSeq{1}{#1}}\do{%
@@ -914,7 +990,7 @@
\def\SolutionWrite{%
\setcounter{PfMAlea}{0}%
\@bsphack%
- \immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.sol"%
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-Ex\thePfMExo.sol"%
\let\do\@makeother\dospecials%
\catcode`\^^M\active%
\def\verbatim@processline{%
@@ -924,7 +1000,7 @@
\def\SolutionWritePP{%
\@bsphack
- \immediate\openout \verbatim@out "\jobname-PPEx\thePfMExo.sol" %
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-PPEx\thePfMExo.sol" %
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
@@ -934,7 +1010,7 @@
\def\ReponseWrite{%
\@bsphack
- \immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.rep" %
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-Ex\thePfMExo.rep" %
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
@@ -944,7 +1020,7 @@
\def\IndiceWrite{%
\@bsphack
- \immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.cdp" %coup de pouce
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-Ex\thePfMExo.cdp" %coup de pouce
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
@@ -953,7 +1029,7 @@
\def\endIndiceWrite{\immediate\closeout\verbatim@out\@esphack}
\makeatother
-\def\SolutionNow{\textbf{Correction de l'exercice --}\par\nopagebreak\setcounter{PfMExoSol}{\thePfMExo}\setcounter{PfMAlea}{0}\PfMAffichageHideItemSolution}
+\def\SolutionNow{\textbf{\csname PfMTNomSol\Roman{PfMExo}\endcsname~--}\par\nopagebreak\setcounter{PfMExoSol}{\thePfMExo}\setcounter{PfMAlea}{0}\PfMAffichageHideItemSolution}%\setcounter{PfMExoSolAlea}{\thePfMExo}
\def\endSolutionNow{\par\goodbreak\PfMshowitems}
\def\ReponseNow{\textbf{Réponse(s) de l'exercice --}\par\nopagebreak\PfMAffichageHideItemSolution}
@@ -965,6 +1041,48 @@
\NewDocumentEnvironment{Solution}{}{}{}%
\NewDocumentEnvironment{Reponse}{}{}{}%
\NewDocumentEnvironment{Indice}{}{}{}%
+\NewDocumentEnvironment{PfMHide}{+b}{}{}%
+\NewDocumentEnvironment{PfMSeek}{+b}{#1}{}%
+
+\NewDocumentEnvironment{AideA}{+b}{%
+ \ifnum\fpeval{\useKV[ClesExercices]{Aide}}>0\relax%
+ \begin{PfMSeek}%
+ #1
+ \end{PfMSeek}%
+ \else%
+ \begin{PfMHide}%
+ #1
+ \end{PfMHide}
+ \fi%
+}{%
+}%
+
+\NewDocumentEnvironment{AideB}{+b}{%
+ \ifnum\fpeval{\useKV[ClesExercices]{Aide}}>1\relax%
+ \begin{PfMSeek}%
+ #1
+ \end{PfMSeek}
+ \else%
+ \begin{PfMHide}%
+ #1
+ \end{PfMHide}
+ \fi%
+}{%
+}%
+
+\NewDocumentEnvironment{Indications}{+b}{%
+ \ifnum\theRetiensIndic=1\relax%
+ \textbf{\PfMTexteDesIndications :}\par%
+ \else%
+ \begin{PfMHide}%
+ \fi%
+ #1
+}{%
+ \ifnum\theRetiensIndic=1\relax%
+ \else
+ \end{PfMHide}%
+ \fi%
+}%
\NewDocumentCommand\PfMChoixAffichageCorrection{}{%
\ifboolKV[Boulot]{CorrigeAll}{%
@@ -1050,28 +1168,76 @@
}%
}%
-\def\PfMTexteDuCorrige{Corrigé de l'exercice}
-\def\PfMTexteDeLEntrainement{Automatisme(s) lié(s) à l'exercice}
+\NewDocumentCommand\PfMChoixEntrainement{}{%
+ \setcounter{PfMRetiensQr}{0}%
+ \ifboolKV[ClesExercices]{AEntretenir}{\setcounter{PfMRetiensQr}{1}}{}%
+}%
+
+\NewDocumentCommand\PfMChoixAffichageEntrainement{}{%
+ \ifnum\thePfMRetiensQr=1\relax%
+ \let\Entrainement\EntrainementWrite\let\endEntrainement\endEntrainementWrite%
+ \else%
+ \let\Entrainement\comment\let\endEntrainement\endcomment
+ \fi%
+}%
+
+\def\PfMTexteDuCorrige{Corrigé de l'exercice}%
+\def\PfMTexteDeLEntrainement{Automatisme(s) lié(s) à l'exercice}%
+\def\PfMTexteDesIndications{Indications}%
\NewDocumentCommand\PfMAffichageCorrige{}{%
\ifboolKV[Boulot]{CAN}{%
\xintFor* ##1 in{\xintSeq{1}{\PfMCANTotalExo}}\do{%
\setcounter{PfMExoSol}{##1}%
\setcounter{PfMAlea}{0}%
- \IfFileExists{\jobname-Ex##1.sol}{\textbf{Question\ifnum\PfMCANTotalExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{TestCAN-##1}}:\fi}~\input{\jobname-Ex##1.sol}\par\goodbreak}{}%page-\thePfMMaquette-##1
+ \IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.sol}{\textbf{Question\ifnum\PfMCANTotalExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{TestCAN-##1}}:\fi}~\input{\jobname-Ma\thePfMMaquette-Ex##1.sol}\par\goodbreak}{}%
}%
}{%
\setcounter{PfMExoSol}{0}%
+ %\setcounter{PfMExoSolAlea}{0}%
\xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
- \refstepcounter{PfMExoSol}%{##1}%
- \label{pagesol-\thePfMMaquette-\thePfMExoSol}
+ \refstepcounter{PfMExoSol}%
+ %\stepcounter{PfMExoSolAlea}%
+ \label{pagesol-\thePfMMaquette-\thePfMExoSol}%
+ \setcounter{PfMAlea}{0}%
+ \def\PfMTexteDuCorrige{\csname PfMTNomSol\Roman{PfMExoSol}\endcsname}
+ \IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.sol}{\PfMAffichageHideItemSolution\textbf{\PfMTexteDuCorrige\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi\PfMAffichageTitreSolution}\par\nopagebreak\input{\jobname-Ma\thePfMMaquette-Ex##1.sol}\par\goodbreak}{\IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.rep}{\PfMAffichageHideItemSolution\textbf{Réponse(s) seule(s) de l'exercice\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi}\par\nopagebreak\input{\jobname-Ma\thePfMMaquette-Ex##1.rep}\par\goodbreak}{%
+ \IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.cdp}{\PfMAffichageHideItemSolution\textbf{Indice(s) pour l'exercice\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi}\par\nopagebreak\input{\jobname-Ma\thePfMMaquette-Ex##1.cdp}\par\goodbreak}{}%
+ }%
+ }%
+ \PfMshowitems%
+ }%
+ }%
+}%
+
+% Tous les corrigés
+\NewDocumentCommand\PfMAffichageTousCorriges{}{%
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\ListeNombreExoMq{\PfMRetiensLienExoMa}%
+ \reademptyitems%
+ \xintFor* ##2 in{\xintSeq{1}{\thePfMMaquette}}\do{%
+ \refstepcounter{PfMMaquetteSol}%
+ \setcounter{PfMExoSol}{0}%
+ %\setcounter{PfMExoSolAlea}{0}%
+ \ifPfMRectoVerso%
+ \cleardoublepage%
+ \else%
+ \clearpage%
+ \fi%
+ \input{\jobname-DefiMq-##2}
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\ListeNombreExoMq[##2]}}\do{%
+ \stepcounter{PfMExoSol}%
+ %\stepcounter{PfMExoSolAlea}%
+ \label{pagesol-\thePfMMaquetteSol-\thePfMExoSol}%
\setcounter{PfMAlea}{0}%
- \IfFileExists{\jobname-Ex##1.sol}{\PfMAffichageHideItemSolution\textbf{\PfMTexteDuCorrige\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi\PfMAffichageTitreSolution}\par\nopagebreak\input{\jobname-Ex##1.sol}\par\goodbreak}{\IfFileExists{\jobname-Ex##1.rep}{\PfMAffichageHideItemSolution\textbf{Réponse(s) seule(s) de l'exercice\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi}\par\nopagebreak\input{\jobname-Ex##1.rep}\par\goodbreak}{%
- \IfFileExists{\jobname-Ex##1.cdp}{\PfMAffichageHideItemSolution\textbf{Indice(s) pour l'exercice\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi}\par\nopagebreak\input{\jobname-Ex##1.cdp}\par\goodbreak}{}%
+ \IfFileExists{\jobname-Ma##2-Ex##1.sol}{\PfMAffichageHideItemSolution\textbf{\PfMTexteDuCorrige\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-##2-##1}}\fi\PfMAffichageTitreSolution}\par\nopagebreak\input{\jobname-Ma##2-Ex##1.sol}\par\goodbreak}{\IfFileExists{\jobname-Ma##2-Ex##1.rep}{\PfMAffichageHideItemSolution\textbf{Réponse(s) seule(s) de l'exercice\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-##2-##1}}\fi}\par\nopagebreak\input{\jobname-Ma##2-Ex##1.rep}\par\goodbreak}{%
+ \IfFileExists{\jobname-Ma##2-Ex##1.cdp}{\PfMAffichageHideItemSolution\textbf{Indice(s) pour l'exercice\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-##2-##1}}\fi}\par\nopagebreak\input{\jobname-Ma##2-Ex##1.cdp}\par\goodbreak}{}%
}%
}%
\PfMshowitems%
}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
}%
}%
@@ -1080,28 +1246,40 @@
\makeatletter
\def\EntrainementWrite{%
\@bsphack%
- \immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.qrc"%
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-Ex\thePfMExo.qrc"%
\let\do\@makeother\dospecials%
\catcode`\^^M\active%
\def\verbatim@processline{%
\immediate\write\verbatim@out{\the\verbatim@line}}%
\verbatim@start}%
\def\endEntrainementWrite{\immediate\closeout\verbatim@out\@esphack}%
-
-\let\Entrainement\EntrainementWrite\let\endEntrainement\endEntrainementWrite%
\makeatother
\NewDocumentCommand\PfMAffichageEntrainement{}{%
- \clearpage
+ \ifboolKV[Boulot]{ESansSaut}{\vfill}{%
+ \ifPfMDeuxColonnes
+ \newpage
+ \else
+ \ifPfMRectoVerso
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \fi
+ }%
\TikzAutomatismes
+ \setlength{\columnseprule}{\useKV[Boulot]{EEpaisseur}}%
+ \ifboolKV[Boulot]{EntrainementColonnes}{\begin{multicols}{\useKV[Boulot]{EColonnes}}}{}%
\setcounter{PfMExoEntrai}{0}%
\xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
\refstepcounter{PfMExoEntrai}%
- \IfFileExists{\jobname-Ex##1.qrc}{%
+ \IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.qrc}{%
\begin{center}
- \label{pageentrai-\thePfMMaquette-\thePfMExoEntrai}%
- \textbf{\PfMTexteDeLEntrainement\ifnum\thePfMExo=1\relax\else~\ref{page-\thePfMMaquette-##1}\fi}\par\nopagebreak\input{\jobname-Ex##1.qrc}\end{center}}{}%
+ \label{pageentrai-\thePfMMaquette-\thePfMExoEntrai}%
+ \textbf{\PfMTexteDeLEntrainement\ifnum\thePfMExo=1\relax\else~\ref{page-\thePfMMaquette-##1}\fi}\par\nopagebreak\input{\jobname-Ma\thePfMMaquette-Ex##1.qrc}\end{center}%
+ }{}%
}%
+ \ifboolKV[Boulot]{EntrainementColonnes}{\end{multicols}}{}%
}%
\NewDocumentCommand\TikzAutomatismes{}{%
@@ -1111,6 +1289,7 @@
\end{center}
\end{tcolorbox}%
}%
+
%%%%%%%% BAREME %%%%%%%%%%%
%% Bareme
\newlength{\brouillon}
@@ -1128,17 +1307,23 @@
\newcommand*\brm[1]{%
\ifboolKV[Boulot]{Fiche}{}{%
- \immediate\write\@auxout{%
- \string\opadd*{#1}%
- {total\the\c@PfMSection-\the\c@PfMExo}%
- {total\the\c@PfMSection-\the\c@PfMExo}%
- \string\opcopy{\thePfMExo}{TotalExo}%
+ \ifboolKV[Boulot]{FdR}{}{%
+ \ifboolKV[Boulot]{Contrat}{}{%
+ \ifboolKV[Boulot]{Parcours}{}{%
+ \immediate\write\@auxout{%
+ \string\opadd*{#1}%
+ {total\the\c@PfMSection-\the\c@PfMExo}%
+ {total\the\c@PfMSection-\the\c@PfMExo}%
+ \string\opcopy{\thePfMExo}{TotalExo}%
+ }%
+ \ifboolKV[ClesExercices]{BaremeDetaille}{%
+ \setlength{\brouillon}{\BaremeEspace@Marge-\linewidth+\textwidth}%
+ \makebox[0pt][r]{\footnotesize\FranPt{#1}\hspace*{\brouillon}}%
+ \ignorespaces%
+ }{}%
+ }%
+ }%
}%
- \ifboolKV[ClesExercices]{BaremeDetaille}{%
- \setlength{\brouillon}{\BaremeEspace@Marge-\linewidth+\textwidth}%
- \makebox[0pt][r]{\footnotesize\FranPt{#1}\hspace*{\brouillon}}%
- \ignorespaces%
- }{}%
}%
}%
@@ -1178,11 +1363,25 @@
\@ifundefined{Op@total#1}{recompilez}%
{%
\opunzero{total#1}% on ne sait jamais
- \opset{decimalsepsymbol={,}}
+ \opset{decimalsepsymbol={,}}%
\opprint{total#1}~%
- \opset{decimalsepsymbol={.}}
+ \opset{decimalsepsymbol={.}}%
+ \useKV[ClesExercices]{MotPoint}%
\opcmp{total#1}{2}%
- \ifopge \useKV[ClesExercices]{MotPoint}s\else \useKV[ClesExercices]{MotPoint}\fi
+ \ifopge s\fi%
+ }%
+}
+
+\newcommand\ScoreMaximal{%
+ \@ifundefined{Op@ScoreTotal\thePfMMaquette}{recompilez}%
+ {%
+ \opunzero{ScoreTotal\thePfMMaquette}% on ne sait jamais
+ \opset{decimalsepsymbol={,}}%
+ \opprint{ScoreTotal\thePfMMaquette}~%
+ \opset{decimalsepsymbol={.}}%
+ \useKV[ClesExercices]{MotPoint}%
+ \opcmp{ScoreTotal\thePfMMaquette}{2}%
+ \ifopge s\fi%
}%
}
@@ -1251,12 +1450,12 @@
\NewDocumentCommand{\PfMLienVersEntrainement}{}{%
\ifboolKV[Boulot]{AvecEntrainement}{%
- \ifboolKV[ClesExercices]{PasEntrainement}{}{%
+ \ifboolKV[ClesExercices]{AEntretenir}{%
\node[%
fill=tcbcolback,%
anchor=center,rotate=45%
] at ($(frame.north east)!0.75!(frame.south east)$){\hyperref[pageentrai-\thePfMMaquette-\thePfMExo]{\faDumbbell}};%
- }%
+ }{}%
}{}%
}%
@@ -1288,6 +1487,7 @@
colback=LightSteelBlue,
colbacklower=white,
frame hidden,
+ overlay=\useKV[ClesExercices]{Ajout}%
}%
}%
@@ -1300,6 +1500,7 @@
title=\ifboolKV[ClesExercices]{AffichageTitre}{\useKV[ClesExercices]{Titre}}{},%
coltitle=black,
frame hidden,
+ overlay=\useKV[ClesExercices]{Ajout}%
}
}
@@ -1307,7 +1508,6 @@
%%% Base des exercices DM
\tcbset{%
tikzdm/.style={%
- %lowerbox=ignored,
enhanced,
breakable,
colback=white,
@@ -1328,6 +1528,8 @@
},%
overlay unbroken and first={%
%
+ \useKV[ClesExercices]{Ajout}%
+ %
\PfMAffichageSource%
%
\ifboolKV[ClesExercices]{BaremeTotal}{%
@@ -1346,21 +1548,23 @@
}%
}%
-\NewDocumentEnvironment{exerciceDM}{so+b}{%
+\NewDocumentEnvironment{exerciceDM}{so}{%
\setcounter{PfMAlea}{0}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\ifboolKV[ClesExercices]{NonUtilise}{%
% Mettre la correction hors-jeu
\setKV[ClesExercices]{PasCorrige}%
\PfMChoixCorrection%
+ \begin{PfMHide}
}{%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
- \refstepcounter{PfMSection}%
- \PfMChoixCorrection%
- \refstepcounter{PfMExo}%
+ \PfMAvantLesExercices%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\PfMChoixTitreSolution%
\immediate\write\@auxout{%
@@ -1376,12 +1580,11 @@
label=page-\thePfMMaquette-\thePfMExo,%
]%
\ifboolKV[Boulot]{Dys}{\raggedright}{}%
- #3
}%
}%
}{%
- \ifboolKV[ClesExercices]{NonUtilise}{}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{
\end{tcolorbox}%
\PfMApresLesExercices%
}%
@@ -1508,24 +1711,25 @@
\immediate\write\@auxout{\noexpand\expandafter\gdef\noexpand\csname \Roman{PfMMaquette}Contrat#1\endcsname{\csname \Roman{PfMMaquette}confiance#1\endcsname}}%
}%
-
-\NewDocumentEnvironment{exerciceContrat}{so+b}{%
+\NewDocumentEnvironment{exerciceContrat}{so}{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\ifboolKV[ClesExercices]{NonUtilise}{%
% Mettre la correction hors-jeu
\setKV[ClesExercices]{PasCorrige}%
\PfMChoixCorrection%
+ \begin{PfMHide}
}{%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
- \refstepcounter{PfMSection}%
- \PfMChoixCorrection%
- \refstepcounter{PfMExo}%
+ \PfMAvantLesExercices%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\PfMChoixTitreSolution%
\immediate\write\@auxout{\string\opcopy{\thePfMExo}{\Roman{PfMMaquette}-ContratTotalExo}}%
@@ -1546,18 +1750,16 @@
label=page-\thePfMMaquette-\thePfMExo
]
\ifboolKV[Boulot]{Dys}{\raggedright}{}%
- #3
}%
}%
}{%
- \ifboolKV[ClesExercices]{NonUtilise}{}{%
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\end{tcolorbox}
\PfMApresLesExercices%
}%
}%
}%
-
%%% Contrat %%%
\tcbset{%
usercontrat/.style={%
@@ -1606,7 +1808,9 @@
anchor=west,
xshift=10pt,
] at (frame.north west){\bfseries\sffamily \useKV[Contrat]{NomExercice} \thePfMExo\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{}};
- %%
+ %%
+ \useKV[ClesExercices]{Ajout}%
+ %%
\PfMAffichageLogos%
%%
\PfMAffichageCompetencesTravaillees%
@@ -1799,7 +2003,7 @@
\xdef\RetiensLeDepart{0}%
\xdef\RetiensLesReponses{0}%
\xdef\RetiensNonAffichees{0}%
- \xdef\RetiensEtage{0}
+ \xdef\RetiensEtage{0}%
\xintFor* ##1 in{\xintSeq{1}{\ListeRouteHautelen}}\do{%
\xintifboolexpr{\ListeRouteHaute[##1]==0}{%
\xdef\RetiensEtage{\fpeval{\RetiensEtage+1}}%
@@ -1814,7 +2018,7 @@
\xintifboolexpr{\fpeval{\RetiensLesReponses-1}==\RetiensNonAffichees}{%
% %
}{%
- \xintFor* ##2 in{\xintSeq{\fpeval{\RetiensLeDepart+1}}{\fpeval{\RetiensLeDepart+\RetiensLesReponses}}}\do{
+ \xintFor* ##2 in{\xintSeq{\fpeval{\RetiensLeDepart+1}}{\fpeval{\RetiensLeDepart+\RetiensLesReponses}}}\do{%
\xintifboolexpr{\ListeRouteHaute[##2]<0}{%
\draw (B-##2) to (B-\fpeval{##2+1});%
}{%
@@ -1863,24 +2067,28 @@
\fi
\immediate\write\@auxout{\noexpand\expandafter\gdef\noexpand\csname \Roman{PfMMaquette}FdR#1\endcsname{\csname \Roman{PfMMaquette}route#1\endcsname}}%
}%
-
-\NewDocumentEnvironment{exerciceFdR}{so+b}{%
+
+\def\Relecture{}%
+
+\NewDocumentEnvironment{exerciceFdR}{so}{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\ifboolKV[ClesExercices]{NonUtilise}{%
% Mettre la correction hors-jeu
\setKV[ClesExercices]{PasCorrige}%
\PfMChoixCorrection%
+ \begin{PfMHide}
}{%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
- \stepcounter{PfMSection}%
- \PfMChoixCorrection%
- \refstepcounter{PfMExo}%
+ \PfMAvantLesExercices%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\PfMChoixTitreSolution%
\immediate\write\@auxout{\string\opcopy{\thePfMExo}{\Roman{PfMMaquette}-FdRTotalExo}}%
@@ -1914,11 +2122,10 @@
label=page-\thePfMMaquette-\thePfMExo
]
\ifboolKV[Boulot]{Dys}{\raggedright}{}%
- #3
}%
}%
}{%
- \ifboolKV[ClesExercices]{NonUtilise}{}{%
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\end{tcolorbox}
\PfMApresLesExercices%
@@ -1945,7 +2152,7 @@
\string\opcopy{\thePfMExo}{TotalExo}%
}%
\@bsphack%
- \immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.can"%
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-Ex\thePfMExo.can"%
\let\do\@makeother\dospecials%
\catcode`\^^M\active%
\def\verbatim@processline{\immediate\write\verbatim@out{\the\verbatim@line}}%
@@ -1970,7 +2177,6 @@
\tcbset{%
usercan/.style={%
enhanced,
- % spread upwards=-1cm,colback=gray!5%
frame hidden,
colback=white,
middle=24pt,
@@ -2030,7 +2236,6 @@
\Large\sffamily Course aux nombres (Correction)
\end{center}
\hfill\useKV[CAN]{Niveau}%
- %\par{\tiny\useKV[CAN]{Code}}\hfill{\scriptsize\useKV[CAN]{Date}}%
\end{tcolorbox}%
}
%%% FdR %%%
@@ -2080,7 +2285,9 @@
anchor=west,
xshift=10pt,
] at (frame.north west){\bfseries\sffamily \useKV[FdR]{NomExercice} \thePfMExo\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{}};
- %%
+ %%
+ \useKV[ClesExercices]{Ajout}%
+ %%
\PfMAffichageLogos
%%
\PfMAffichageCompetencesTravaillees%
@@ -2112,19 +2319,33 @@
\reademptyitems%
\xdef\PfMFooTestA{\ListeExercicesPA[1]}%
\ifnum\ListeExercicesPAlen>1\relax%
- \xintFor* ##1 in{\xintSeq{2}{\ListeExercicesPAlen}}\do{%
- \xdef\PfMFooTestA{\PfMFooTestA,\ListeExercicesPA[##1]}%
- }%
+ \xintFor* ##1 in{\xintSeq{2}{\ListeExercicesPAlen}}\do{%
+ \xdef\PfMFooTestA{\PfMFooTestA,\ListeExercicesPA[##1]}%
+ }%
\fi%
- \ifboolKV[Parcours]{Vertical}{%
- \BuildParcoursTikzV{\ParcoursTotalExo}{\PfMFooTestA}%
+ \ifboolKV[Parcours]{Plan}{%
+ \BuildParcoursPlan{\ParcoursTotalExo}{\PfMFooTestA}%
}{%
- \BuildParcoursTikz{\ParcoursTotalExo}{\PfMFooTestA}%
+ \ifboolKV[Parcours]{Vertical}{%
+ \BuildParcoursTikzV{\ParcoursTotalExo}{\PfMFooTestA}%
+ }{%
+ \BuildParcoursTikz{\ParcoursTotalExo}{\PfMFooTestA}%
+ }%
}%
}%
}%
%\makeatother
+\NewDocumentCommand\BuildParcoursPlan{mm}{%
+ \setsepchar{,}%
+ \readlist*\ListeRetiens{#2}%
+ \begin{enumerate}
+ \foreachitem\compteur\in\ListeRetiens{%
+ \item[$\square$] Exercice \ref{page-\thePfMMaquette-\ListeRetiens[\compteurcnt]}%
+ }%
+ \end{enumerate}
+}%
+
\NewDocumentCommand\BuildParcoursTikzV{mm}{%
\setsepchar{,}%
\readlist*\ListeRetiens{#2}%
@@ -2155,8 +2376,13 @@
\begin{tikzpicture}[anchor=center,baseline=-1.25mm]
% On place les points
\Orientation=1\relax
+ \ifboolKV[Parcours]{Court}{%
+ \TotalParcoursTikz=\ListeRetienslen%
+ }{%
+ \TotalParcoursTikz=#1%
+ }%
\coordinate[anchor=base,baseline=-1.25mm] (A-1) at (0,0);%
- \xintFor* ##1 in{\xintSeq{2}{\fpeval{#1+1}}}\do{%
+ \xintFor* ##1 in{\xintSeq{2}{\fpeval{\the\TotalParcoursTikz+1}}}\do{%
\modulo{##1}{\useKV[SchemaParcours]{Colonnes}}%
\ifnum\remainder=0\relax%
\Orientation=\numexpr\Orientation*(-1)\relax%
@@ -2165,17 +2391,23 @@
\coordinate[xshift=\the\Orientation*\PfMLargeurSchemaParcours] (A-##1) at (A-\fpeval{##1-1});%
\fi%
}%
- \foreach\i in{2,...,#1}{%
- \draw[line width=1pt] (A-\fpeval{\i-1}) -- (A-\i);%
- }%
- %
- \draw[line width=1pt,>=latex,->] (A-#1)--(A-\fpeval{#1+1});
- %
- \xintFor* ##1 in{\xintSeq{1}{#1}}\do{%
- \draw[fill=white,dashed](A-##1) circle (2.5mm) node{##1};%
+ \foreach\i in{1,...,\the\TotalParcoursTikz}{%
+ \draw[line width=1pt] (A-\i) -- (A-\fpeval{\i+1});%
}%
- \foreachitem\compteur\in\ListeRetiens{%
- \draw[fill=PfMCouleurSP](A-\ListeRetiens[\compteurcnt]) circle (2.5mm) node{\ref{page-\thePfMMaquette-\ListeRetiens[\compteurcnt]}};%
+% %
+ \draw[line width=1pt,>=latex,->] (A-\the\TotalParcoursTikz)--(A-\fpeval{\the\TotalParcoursTikz+1});
+% %
+ \ifboolKV[Parcours]{Court}{%
+ \foreachitem\compteur\in\ListeRetiens{%
+ \draw[fill=PfMCouleurSP](A-\compteurcnt) circle (2.5mm) node{\ref{page-\thePfMMaquette-\ListeRetiens[\compteurcnt]}};%
+ }%
+ }{%
+ \xintFor* ##1 in{\xintSeq{1}{\the\TotalParcoursTikz}}\do{%
+ \draw[fill=white,dashed](A-##1) circle (2.5mm) node{##1};%
+ }%
+ \foreachitem\compteur\in\ListeRetiens{%
+ \draw[fill=PfMCouleurSP](A-\ListeRetiens[\compteurcnt]) circle (2.5mm) node{\ref{page-\thePfMMaquette-\ListeRetiens[\compteurcnt]}};%
+ }%
}%
\end{tikzpicture}%
}%
@@ -2195,7 +2427,7 @@
\stepcounter{PfMExo}%
\PfMChoixCorrection%
\@bsphack%
- \immediate\openout \verbatim@out "\jobname-PPEx\thePfMExo.tex" %
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-PPEx\thePfMExo.tex" %
\immediate\write\verbatim@out{\string\begin{exercice}}
\let\do\@makeother\dospecials%
\catcode`\^^M\active%
@@ -2205,23 +2437,25 @@
\def\endexerciceParcoursPerso{\immediate\write\verbatim@out{\string\end{exercice}}\immediate\closeout\verbatim@out\@esphack}%
-\NewDocumentEnvironment{exerciceParcours}{so+b}{%
+\NewDocumentEnvironment{exerciceParcours}{so}{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\ifboolKV[ClesExercices]{NonUtilise}{%
% Mettre la correction hors-jeu
\setKV[ClesExercices]{PasCorrige}%
\PfMChoixCorrection%
+ \begin{PfMHide}
}{%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
- \refstepcounter{PfMSection}%
- \PfMChoixCorrection%
- \refstepcounter{PfMExo}%
+ \PfMAvantLesExercices%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\PfMChoixTitreSolution%
\immediate\write\@auxout{\string\opcopy{\thePfMExo}{\Roman{PfMMaquette}-ParcoursTotalExo}}%
@@ -2242,11 +2476,10 @@
label=page-\thePfMMaquette-\thePfMExo
]
\ifboolKV[Boulot]{Dys}{\raggedright}{}%
- #3
}%
}%
}{%
- \ifboolKV[ClesExercices]{NonUtilise}{}{%
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\end{tcolorbox}
\PfMApresLesExercices%
@@ -2310,17 +2543,158 @@
}%
}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NewDocumentCommand\PfMScore{m}{%
+ \immediate\write\@auxout{%
+ \string\opadd*{#1}{ScoreTotal\thePfMMaquette}{ScoreTotal\thePfMMaquette}%
+ }%
+ \num{#1} pt\xintifboolexpr{#1>2 || #1==2}{s}{}%
+}%
+
+\def\PfMMPGrilleCode{%
+ PapierLargeur=floor(\mpdim{\linewidth}/(5mm));
+ color PapierCouleur;
+ PapierCouleur=0.8white;
+ %
+ vardef Papier(expr nb,score)=
+ path horizon,verticon;
+ horizon=(0,0)--(PapierLargeur*5mm,0);
+ verticon=(0,0)--(0,abs(nb)*5mm);
+ picture Papiers;
+ Papiers=image(
+ drawoptions(withcolor PapierCouleur);
+ for k=0 upto PapierLargeur:
+ draw verticon shifted((k*5mm,0));
+ endfor;
+ for k=0 upto abs(nb):
+ draw horizon shifted((0,k*5mm));
+ endfor;
+ drawoptions();
+ if nb<0:
+ path cc,cd,ce;
+ cd=(unitsquare xscaled (3*5mm) yscaled (abs(nb)*5mm)) shifted(5mm*(PapierLargeur-3,0));
+ ce=(unitsquare scaled (2*5mm)) shifted(5mm*(PapierLargeur-2.5,1));
+ cc=(unitsquare xscaled (6*5mm) yscaled (2*5mm)) shifted(5mm*(PapierLargeur-10,1));
+ fill cd withcolor PapierCouleur;
+ fill ce withcolor white;
+ fill cc withcolor white;
+ %drawoptions(withpen pencircle scaled 1);
+ draw ce;
+ draw cc;
+ draw cd;
+ draw polygone((0,0),(PapierLargeur*5mm,0),5mm*(PapierLargeur,abs(nb)),5mm*(0,abs(nb)));
+ if score>0:
+ label.bot(TEX("\PfMScore{"&decimal(score)&"}"),5mm*(PapierLargeur-1.5,1));
+ fi;
+ fi;
+ );
+ Papiers
+ enddef;
+}%
+
+\def\PfMPapierCinqCinq#1#2{%
+ \begin{center}
+ \ifluatex%
+ \mplibforcehmode%
+ \begin{mplibcode}%
+ \PfMMPGrilleCode
+ trace Papier(#1,#2);
+ \end{mplibcode}%
+ \else%
+ \begin{mpost}[mpsettings={\PfMMPGrilleCode}]
+ trace Papier(#1,#2);
+ \end{mpost}%
+ \fi%
+ \end{center}
+}%
+
+\def\PfMMPSeyesCode{%
+ u:=\useKV[ClesExercices]{EchelleSeyes}*1mm;
+ PapierLargeur=floor(\mpdim{\linewidth}/(u));
+ color PapierCouleur;
+ PapierCouleur=0.8white;%\useKV[Papiers]{Couleur};
+ vardef Seyes(expr nb,score)=
+ path horizon,verticon;
+ horizon=(0,0)--u*(PapierLargeur,0);
+ verticon=(0,0)--u*(0,abs(nb));
+ picture PapierSeyes;
+ PapierSeyes=image(
+ drawoptions(withcolor PapierCouleur);
+ for k=0 upto (PapierLargeur):
+ draw verticon shifted((k*u,0));
+ endfor;
+ for k=0 step 0.25 until abs(nb):
+ draw horizon shifted((0,k*u)) withpen pencircle scaled 0.5;
+ endfor;
+ for k=0 upto abs(nb):
+ draw horizon shifted((0,k*u)) withpen pencircle scaled 1.25;
+ endfor;
+ drawoptions();
+ if nb<0:
+ path cc,cd,ce;
+ cd=(unitsquare xscaled (2*u) yscaled (abs(nb)*u)) shifted(u*(PapierLargeur-2,0));
+ ce=(unitsquare scaled (1*u)) shifted(u*(PapierLargeur-1.5,1));
+ cc=(unitsquare xscaled (4*u) yscaled (1*u)) shifted(u*(PapierLargeur-7,1));
+ fill cd withcolor PapierCouleur;
+ fill ce withcolor white;
+ fill cc withcolor white;
+ draw cc;
+ draw cd;
+ draw ce;
+ draw polygone((0,0),(PapierLargeur*u,0),u*(PapierLargeur,abs(nb)),u*(0,abs(nb)));
+ if score>0:
+ label.bot(TEX("\PfMScore{"&decimal(score)&"}"),u*(PapierLargeur-1,1));
+ fi;
+ fi;
+ );
+ PapierSeyes
+ enddef;
+}%
+
+\def\PfMPapierSeyes#1#2{%
+ \begin{center}
+ \ifluatex%
+ \mplibforcehmode%
+ \begin{mplibcode}%
+ \PfMMPSeyesCode
+ trace Seyes(#1,#2);
+ \end{mplibcode}%
+ \else%
+ \begin{mpost}[mpsettings={\PfMMPSeyesCode}]%
+ trace Seyes(#1,#2);
+ \end{mpost}
+ \fi%
+ \end{center}
+}%
+
\NewDocumentCommand\PfMApresLesExercices{}{%
\ifboolKV[ClesExercices]{Ligne}{%
- % \vspace{\PfMEspaceAvantLignes}
- \PfMSetStretch\PfMLignespointilles{\useKV[ClesExercices]{Lignes}}%
+ \vspace*{\PfMEspaceAvantLignes}%
+ \PfMSetStretch\PfMLignespointilles{\useKV[ClesExercices]{Lignes}}%
\par\vspace*{\PfMEspaceApresLignes}\par%
}{}%
\par%
\ifboolKV[ClesExercices]{Cadres}{%
- \begin{PfMtcbEncart}%
- %
- \end{PfMtcbEncart}%
+ \begin{PfMtcbEncart}%
+ %
+ \end{PfMtcbEncart}%
+ }{}%
+ \ifboolKV[ClesExercices]{Grilles}{%
+ \ifboolKV[ClesExercices]{Cinq}{%
+ \PfMPapierCinqCinq{\useKV[ClesExercices]{CinqCinq}}{\useKV[ClesExercices]{Score}}%
+ }{}%
+ \ifboolKV[ClesExercices]{Huit}{%
+ \PfMPapierSeyes{\useKV[ClesExercices]{Seyes}}{\useKV[ClesExercices]{Score}}%
+ }{}%
+ }{}%
+ \ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}%
+ \ifboolKV[ClesExercices]{ACompleter}{%
+ \IfHookExistsTF{env/center/begin}{\RemoveFromHook{env/center/begin}[*]}{}%
+ \IfHookExistsTF{env/center/end}{\RemoveFromHook{env/center/end}[*]}{}%
+ \IfHookExistsTF{env/itemize/begin}{\RemoveFromHook{env/itemize/begin}[*]}{}%
+ \IfHookExistsTF{env/itemize/end}{\RemoveFromHook{env/itemize/end}[*]}{}%
+ \IfHookExistsTF{env/description/begin}{\RemoveFromHook{env/description/begin}[*]}{}%
+ \IfHookExistsTF{env/description/end}{\RemoveFromHook{env/description/end}[*]}{}%
}{}%
}%
@@ -2329,7 +2703,7 @@
\expandafter\xdef\csname PfMEcrireTitreSol\endcsname{\csname PfMTSol\Roman{PfMExoSol}\endcsname}%
\ifx\bla\PfMEcrireTitreSol\bla%
\else
- \PfMEcrireTitreSol%
+ ~:~\PfMEcrireTitreSol%
\fi%
}%
@@ -2342,6 +2716,10 @@
}%
}%
+\NewDocumentCommand\PfMChoixNomCorrection{}{%
+ \expandafter\xdef\csname PfMTNomSol\Roman{PfMExo}\endcsname{\useKV[ClesExercices]{TitreCorrige}}
+}%
+
\NewDocumentCommand\PfMChoixHideItemSolution{}{%
\ifboolKV[ClesExercices]{Profile}{%
% J'ai un élève à profil : Je dois me souvenir que la correction doit être profilée. Le compteur PfMExo vaut \thePfMExo
@@ -2361,68 +2739,106 @@
\fi%
}%
-\newbox\PfMBoxSauvegarde%
+\NewDocumentCommand\PfMAvantLesExercices{}{%
+ \ifboolKV[ClesExercices]{AvecIndications}{\setcounter{RetiensIndic}{1}}{}%
+ \ifboolKV[ClesExercices]{Profile}{\PfMhideitems}{}%
+ \refstepcounter{PfMSection}%
+ \PfMChoixCorrection%
+ \PfMChoixEntrainement%
+ \refstepcounter{PfMExo}%
+ \PfMChoixNomCorrection%
+ \ifboolKV[ClesExercices]{ACompleter}{%
+ \let\oldenumerate\enumerate%
+ \let\oldendenumerate\endenumerate%
+ \let\enumerate\autoenumerate%
+ \let\endenumerate\endautoenumerate%
+ \AddToHook{env/center/begin}[Bcenter]{\let\item\olditem}%
+ \AddToHook{env/center/end}[Ecenter]{\let\item\litem}%
+ \AddToHook{env/description/begin}[Bdescription]{\let\item\olditem}%
+ \AddToHook{env/description/end}[Edescription]{\let\item\litem}%
+ \AddToHook{env/itemize/begin}[Bitemize]{\let\item\olditem}%
+ \AddToHook{env/itemize/end}[Eitemize]{\let\item\litem}%
+ }{}%
+}%
-\NewDocumentEnvironment{exerciceFiche}{so+b}{%
+\NewDocumentEnvironment{exerciceFiche}{so}{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\ifboolKV[ClesExercices]{NonUtilise}{%
% Mettre la correction hors-jeu
\setKV[ClesExercices]{PasCorrige}%
\PfMChoixCorrection%
+ \begin{PfMHide}
}{%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
- \ifboolKV[ClesExercices]{Profile}{\PfMhideitems}{}%
\colorlet{ColExoFiche}{\useKV[ClesExercices]{Background}}%
\colorlet{PfMCadreFiche}{\useKV[ClesExercices]{Cadre}}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
- \refstepcounter{PfMSection}%
- \PfMChoixCorrection%
- \refstepcounter{PfMExo}%
+ \PfMAvantLesExercices%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
- \PfMChoixTitreSolution%
- \PfMChoixHideItemSolution%
- \begin{tcolorbox}[%
- tikzfiche,
- label is label,
- label=page-\thePfMMaquette-\thePfMExo
- ]
- \ifboolKV[Boulot]{Dys}{\raggedright}{}%
- %
- #3
+ \PfMChoixTitreSolution%
+ \PfMChoixHideItemSolution%
+ \begin{tcolorbox}[%
+ tikzfiche,
+ label is label,
+ label=page-\thePfMMaquette-\thePfMExo
+ ]
+ \ifboolKV[Boulot]{Dys}{\raggedright}{}%
}%
}%
}{%
- \ifboolKV[ClesExercices]{NonUtilise}{}{%
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
\ifboolKV[Boulot]{CorrigeSeul}{}{
\end{tcolorbox}%
- \ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}%
+ % \ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}%
\PfMApresLesExercices%
}%
}%
}%
+%\makeatletter
+\NewDocumentCommand\TikzOlympiadesAPMEPCor{m}{%
+ \ifPfMRectoVerso%
+ \cleardoublepage%
+ \else%
+ \clearpage%
+ \fi%
+ \setKV[OlympiadesAPMEP]{#1}%
+ \begin{tcolorbox}[colback=colLogo]
+ \begin{Dispo}*{\normalsize\logoapmep{\scale@logo}}
+ \Large\sffamily \useKV[OlympiadesAPMEP]{Theme}
+
+ (Correction)%
+ \end{Dispo}
+ \end{tcolorbox}%
+}%
+%\makeatother
+
\NewDocumentEnvironment{exerciceOlympiadesAPMEP}{so}{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\ifboolKV[ClesExercices]{NonUtilise}{%
% Mettre la correction hors-jeu
\setKV[ClesExercices]{PasCorrige}%
\PfMChoixCorrection%
+ \begin{PfMHide}
}{%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
- \ifboolKV[ClesExercices]{Profile}{\PfMhideitems}{}%
- \colorlet{ColExoFiche}{\useKV[ClesExercices]{Background}}%
- \colorlet{PfMCadreFiche}{\useKV[ClesExercices]{Cadre}}%
- \setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
+ \PfMAvantLesExercices%
\refstepcounter{PfMSection}%
\PfMChoixCorrection%
\refstepcounter{PfMExo}%
@@ -2438,29 +2854,30 @@
}%
}%
}{%
- \ifboolKV[ClesExercices]{NonUtilise}{}{%
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
\end{tcolorbox}%
- \ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}%
+ %\ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}%
\PfMApresLesExercices%
- }
+ }%
}%
-\NewDocumentEnvironment{exerciceDS}{so+b}{%
+\NewDocumentEnvironment{exerciceDS}{so}{%
\setcounter{PfMAlea}{0}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\ifboolKV[ClesExercices]{NonUtilise}{%
% Mettre la correction hors-jeu
\setKV[ClesExercices]{PasCorrige}%
\PfMChoixCorrection%
+ \begin{PfMHide}
}{%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
- \ifboolKV[ClesExercices]{Profile}{\PfMhideitems}{}%
- \refstepcounter{PfMSection}%
- \PfMChoixCorrection%
- \refstepcounter{PfMExo}%
+ \PfMAvantLesExercices
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\PfMChoixTitreSolution%
\immediate\write\@auxout{%
@@ -2476,11 +2893,10 @@
label=page-\thePfMMaquette-\thePfMExo
]
\ifboolKV[Boulot]{Dys}{\raggedright}{}%
- #3
}%
}%
}{%
- \ifboolKV[ClesExercices]{NonUtilise}{}{%
+ \ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\end{tcolorbox}%
\PfMApresLesExercices%
@@ -2490,8 +2906,11 @@
\NewDocumentEnvironment{ExerciceRecapBrevet}{so}{%
\setcounter{PfMAlea}{0}%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\IfBooleanTF{#1}{%
\setKV[ClesExercices]{Numerote=false}%
}{}%
@@ -2518,6 +2937,7 @@
}%
\makeatother
+
%%% Recap Brevet
%%% Style Brevet
\tcbset{%
@@ -2575,6 +2995,7 @@
at (frame.north east)%
{\footnotesize\sffamily \total{\the\c@PfMSection-\the\c@PfMExo}};%
}{}%
+ \useKV[ClesExercices]{Ajout}%
}%
}%
}%
@@ -2608,6 +3029,8 @@
xshift=10pt,
] at (frame.north west){\bfseries\sffamily \useKV[PdT]{NomExercice} \thePfMExo\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{}};
}
+ %%
+ \useKV[ClesExercices]{Ajout}%
%%
\PfMAffichageLogos%
%
@@ -2655,8 +3078,11 @@
\newenvironment{exercicePdT}[1][]{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#1}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
\refstepcounter{PfMSection}%
\PfMChoixCorrection%
@@ -2704,6 +3130,17 @@
\end{tikzpicture}%
}%
+\NewDocumentCommand\CheminNeutre{m}{%
+ \setsepchar[*]{,*/}%
+ \readlist*\ListeCheminVrai{#1}%
+ \setsepchar{,}%
+ \begin{tikzpicture}[remember picture,overlay]%
+ \foreachitem\compteur\in\ListeCheminVrai{%
+ \draw[cheminPdT] (\ListeCheminVrai[\compteurcnt,1]) to (\ListeCheminVrai[\compteurcnt,2]);%
+ }%
+ \end{tikzpicture}%
+}%
+
\NewDocumentCommand\CheminFaux{m}{%
\setsepchar[*]{,*/}%
\readlist*\ListeCheminVrai{#1}%
@@ -2785,8 +3222,11 @@
}%
\NewDocumentEnvironment{exerciceKholle}{o}{%
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#1}%
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
\PfMChoixCorrection%
\refstepcounter{PfMExo}%
@@ -2803,8 +3243,11 @@
\newenvironment{exerciceBase}[1][]{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]
\setKV[ClesExercices]{#1}
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}
\refstepcounter{PfMExo}
\tcolorbox[%
@@ -2816,8 +3259,11 @@
\newenvironment{exerciceBaseHTML}[1][]{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}
+ % Mettre les indications hors-jeu
+ \setcounter{RetiensIndic}{0}
\useKVdefault[ClesExercices]
\setKV[ClesExercices]{#1}
+ \ifboolKV[Boulot]{Input}{\Relecture}{}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}
\refstepcounter{PfMExo}
\tcolorbox[%
@@ -3056,6 +3502,8 @@
anchor=west,
xshift=\kvtcb@leftlower,
] at (frame.north west){\bfseries\sffamily\useKV[Fiche]{NomExercice}\ifboolKV[ClesExercices]{Numerote}{ \thePfMExo}{}\ifboolKV[ClesExercices]{AffichageTitre}{\ifboolKV[ClesExercices]{Numerote}{~:~}{\xdef\PfMTitiLgNE{\useKV[Fiche]{NomExercice}}\IfStrEq{\PfMTitiLgNE}{}{}{~:~}}\useKV[ClesExercices]{Titre}}{}};
+ %%
+ \useKV[ClesExercices]{Ajout}%
%%
\PfMAffichageLogos%
%
@@ -3083,14 +3531,16 @@
% colframe=PfMCadreFiche,
frame hidden,
overlay unbroken and first={%
- \draw[colLogo,line width=1pt] ([yshift=-10pt]frame.north west)--([yshift=-10pt]frame.north east);
+ \draw[colLogo,line width=1pt] ([yshift=-12pt]frame.north west)--([yshift=-12pt]frame.north east);
\node[%
name=A,
fill=ColExoFiche,
anchor=west,
xshift=\kvtcb@leftlower,
] at (frame.north west){\color{colLogo}\resizebox{1em}{!}{\carreEntoure{}}~\Large\bfseries\sffamily\useKV[Fiche]{NomExercice}\ifboolKV[ClesExercices]{Numerote}{ \thePfMExo}{}\ifboolKV[ClesExercices]{AffichageTitre}{\ifboolKV[ClesExercices]{Numerote}{.~}{\xdef\PfMTitiLgNE{\useKV[Fiche]{NomExercice}}\IfStrEq{\PfMTitiLgNE}{}{}{.~}}\useKV[ClesExercices]{Titre}}{}};
- %%
+ %%
+ \useKV[ClesExercices]{Ajout}%
+ %%
\PfMAffichageLogos%
%
\PfMAffichageCompetencesTravaillees%
@@ -3149,7 +3599,9 @@
anchor=west,
xshift=10pt,
] at (frame.north west){\bfseries\sffamily \useKV[Parcours]{NomExercice} \thePfMExo\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{}};
- %%
+ %%
+ \useKV[ClesExercices]{Ajout}%
+ %%
\PfMAffichageLogos%
%%
\PfMAffichageCompetencesTravaillees%
@@ -3230,6 +3682,8 @@
title=Exercice\ifboolKV[ClesExercices]{Numerote}{ \thePfMExo}{}\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{},
overlay unbroken and first={%
%
+ \useKV[ClesExercices]{Ajout}%
+ %
\PfMAffichageSource%
%
\ifboolKV[ClesExercices]{BaremeTotal}{%
@@ -3274,7 +3728,7 @@
\clearpage
\begin{minipage}{0.6\linewidth}
\begin{tcolorbox}[userie]%
- \sffamily \useKV[IE]{Nom} \useKV[IE]{Numero} : \useKV[IE]{Theme} \ifboolKV[IE]{Sujets}{\scriptsize(Sujet \useKV[IE]{Sujet})}{}
+ \sffamily \useKV[IE]{Nom} \useKV[IE]{Numero} : \useKV[IE]{Theme} \ifboolKV[IE]{Sujets}{{\scriptsize(Sujet \useKV[IE]{Sujet})}}{}
\vspace{1em}
\par{\tiny\useKV[IE]{Code}}\hfill{\scriptsize\useKV[IE]{Date}}
\end{tcolorbox}%
@@ -3299,42 +3753,39 @@
\end{tcolorbox}%
}%
-\NewDocumentCommand\Recapitulatif{mm}{%
- \setKV[Boulot]{#1}%
- \DTLforeach*{dataperso}{\Prenom=PrenomEleve,\Nom=NomEleve,\RecapListeExo=ListeExo}{%
- \ifboolKV[Boulot]{Dys}{%
- \begin{Maquette}[Fiche,Dys]{#2,Code=\normalsize\Prenom~\Nom}%
- }{%
- \begin{Maquette}[Fiche]{#2,Code=\normalsize\Prenom~\Nom}%
- }%
+\NewDocumentCommand\PfMRecapitulatif{mm}{%
+ \setKV[Boulot]{#1}%
+ \setcounter{PfMRetiensMapourPP}{\thePfMMaquette}%
+ \DTLforeach*{dataperso}{\Prenom=PrenomEleve,\Nom=NomEleve,\RecapListeExo=ListeExo}{%
+ \ifboolKV[Boulot]{Dys}{%
+ \begin{Maquette}[Fiche,Dys]{#2,Code=\normalsize\Prenom~\Nom}%
+ }{%
+ \begin{Maquette}[Fiche]{#2,Code=\normalsize\Prenom~\Nom}%
+ }%
+ \readlist*\ListeExercices{\RecapListeExo}%
+ \ifnum\fpeval{\ListeExerciceslen}=1\relax{}
+ \setKVdefault[ClesExercices]{Numerote=false}
+ \input{\jobname-Ma\thePfMRetiensMapourPP-PPEx\ListeExercices[1].tex}%
+ \setKVdefault[ClesExercices]{Numerote}
+ \else
+ \foreach\i in{1,...,\ListeExerciceslen}{%
+ \input{\jobname-Ma\thePfMRetiensMapourPP-PPEx\ListeExercices[\i].tex}%
+ }
+ \fi
+ \ifnum\thePfMCorrigeParcoursPerso=1\relax%
+ % \RecapitulatifCorrection{#2}%
+ \clearpage
+ \TikzFicheCor{#1,Code=\normalsize\Prenom~\Nom}%
\readlist*\ListeExercices{\RecapListeExo}%
\ifnum\fpeval{\ListeExerciceslen}=1\relax{}
- \setKVdefault[ClesExercices]{Numerote=false}
-% \begin{exercice}*
- \input{\jobname-PPEx\ListeExercices[1].tex}%
- % \end{exercice}%
- \setKVdefault[ClesExercices]{Numerote}
+ \textbf{Corrigé de l'exercice} : \input{\jobname-Ma\thePfMMaquette-PPEx\ListeExercices[1].sol}\par\goodbreak%
\else
\foreach\i in{1,...,\ListeExerciceslen}{%
- % \begin{exercice}
- \input{\jobname-PPEx\ListeExercices[\i].tex}%
- % \end{exercice}%
- }
- \fi
- \ifnum\thePfMCorrigeParcoursPerso=1\relax%
- % \RecapitulatifCorrection{#2}%
- \clearpage
- \TikzFicheCor{#1,Code=\normalsize\Prenom~\Nom}%
- \readlist*\ListeExercices{\RecapListeExo}%
- \ifnum\fpeval{\ListeExerciceslen}=1\relax{}
- \textbf{Corrigé de l'exercice} : \input{\jobname-PPEx\ListeExercices[1].sol}\par\goodbreak%
- \else
- \foreach\i in{1,...,\ListeExerciceslen}{%
- \textbf{Corrigé de l'exercice \i} : \input{\jobname-PPEx\ListeExercices[\i].sol}\par\goodbreak%
- }%
- \fi%
+ \textbf{Corrigé de l'exercice \i} : \input{\jobname-Ma\thePfMMaquette-PPEx\ListeExercices[\i].sol}\par\goodbreak%
+ }%
\fi%
- \end{Maquette}%
+ \fi%
+ \end{Maquette}%
}%
}%
@@ -3344,7 +3795,7 @@
\TikzFicheCor{#1,Code=\normalsize\Prenom~\Nom}%
\readlist*\ListeExercices{\RecapListeExo}%
\foreach\i in{1,...,\ListeExerciceslen}{%
- \IfFileExists{\jobname-PPEx\ListeExercices[\i].sol}{\textbf{Corrigé de l'exercice \i} : \input{\jobname-PPEx\ListeExercices[\i].sol}\par\goodbreak}{}%
+ \IfFileExists{\jobname-PPEx\ListeExercices[\i].sol}{\textbf{Corrigé de l'exercice \i} : \input{\jobname-Ma\thePfMMaquette-PPEx\ListeExercices[\i].sol}\par\goodbreak}{}%
}%
}%
}%
@@ -3363,14 +3814,6 @@
}{%
\ifnum\thePfMMaquette=1\relax%
\else%
- %\ifnum\PfMFontSize=0\relax%
- % \fontsize{10}{\fpeval{1.2*10}}%
- %\else\ifnum\PfMFontSize=1\relax%
- % \fontsize{11}{\fpeval{1.2*11}}%
- % \else%
- % \fontsize{12}{\fpeval{1.2*12}}%
- % \fi%
- %\fi%
\fontsize{\fpeval{10+\PfMFontSize}}{\fpeval{1.2*(10+\PfMFontSize)}}%
\selectfont%
\renewcommand{\JustifyingParindent}{\parindent}
@@ -3395,9 +3838,17 @@
}%
%% Pour factoriser l'appel aux corrections dans l'environnement Maquette
+\makeatletter
\NewDocumentCommand\PfMPrepareCorrection{m}{%
\useKVdefault[Boulot]%
\setKV[Boulot]{#1}%
+ \if@CAN
+ \ifnum\thepage<5\relax
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{5-\thepage}}}\do{%
+ ~\clearpage%
+ }%
+ \fi%
+ \fi%
\if@Dyslexie%
\setKV[Boulot]{Dys}%
\fi%
@@ -3405,6 +3856,7 @@
\setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
\PfMChangerTailleCorrection%
}%
+\makeatother
\NewDocumentCommand\PfMAffichageCorrectionColonnes{}{%
\ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
@@ -3418,9 +3870,95 @@
\ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
}%
+% GameBook
+\tcbset{%
+ userlivreheros/.style={%
+ spread upwards=-1cm,colback=Ivory,colframe=black!25!Ivory%
+ }%
+}%
+
+\setKVdefault[LivreHeros]{Theme=Les nombres d\'ecimaux}
+
+\NewDocumentCommand\vaen{m}{\ref{#1}}%
+
+\NewDocumentCommand\TikzLivreHeros{}{%
+ \begin{tcolorbox}[userlivreheros]%
+ \begin{center}
+ \Large\sffamily \useKV[LivreHeros]{Theme}
+ \end{center}
+ \end{tcolorbox}%
+}%
+
+\tcbset{%
+ tikzLH/.style={%
+ before skip=1em,
+ enhanced,
+ coltitle=black,
+ colbacktitle=black!10!Ivory,
+ colframe=white,
+ colback=white,
+ attach boxed title to top center={yshift=-2mm},
+ label is label
+ }%
+}%
+
+\newcounter{PfMGameBook}[PfMMaquette]
+\setcounter{PfMGameBook}{0}
+
+\makeatletter
+\def\ExoGBWrite{%
+ \setcounter{PfMAlea}{0}%
+ \PfMChoixCorrection%
+ \stepcounter{PfMExo}%
+ \immediate\write\@auxout{%
+ \string\opcopy{\thePfMExo}{TotalExo}%
+ }%
+ \@bsphack%
+ \immediate\openout \verbatim@out "\jobname-Ma\thePfMMaquette-Ex\thePfMExo.gb"%
+ \let\do\@makeother\dospecials%
+ \catcode`\^^M\active%
+ \def\verbatim@processline{\immediate\write\verbatim@out{\the\verbatim@line}}%
+ \verbatim@start}%
+\def\endExoGBWrite{\immediate\closeout\verbatim@out\@esphack}%
+\makeatother
+%%%%
+
%%%%%%%%%%%%%%% Debut Maquette %%%%%%%
% Environnement englobant le tout.
\makeatletter
+\newwrite\PfMfile@out%
+
+\IfClassLoadedTF{beamer}{%
+ %-> tex.stackexchange.com/questions/605282/beamer-custom-frame-environment-with-options
+ \NewDocumentEnvironment{Maquette}{om}{%
+ \setcounter{RetiensSol}{0}%
+ \setcounter{RetiensRep}{0}%
+ \setcounter{RetiensInd}{0}%
+ % on remet à zéro le compteur des exercices
+ %\setcounter{PfMExo}{0}%
+ \setcounter{PfMSOS}{0}%
+ % nouvelles valeurs.
+ \stepcounter{PfMMaquette}%
+ \IfHookExistsTF{env/exercice/after}{\RemoveFromHook{env/exercice/after}[*]\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection\PfMChoixAffichageEntrainement}}{\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection\PfMChoixAffichageEntrainement}}%
+ \useKVdefault[FdR]%
+ \setKV[FdR]{#1}%
+ \let\exercice\exerciceBeamer\let\endexercice\endexerciceBeamer%
+ \begin{frame}[environment=Maquette,fragile]
+ \setcounter{PfMExo}{10}%
+ \PfCGraineAlea{\useKV[Boulot]{Graine}}%
+ \frametitle{\useKV[FdR]{Theme}\hfill\raisebox{-0.25\height}{\mplibforcehmode\begin{mplibcode}
+ labeloffset:=1pt;
+ fill cercle((0,0),4mm) withcolor white;
+ trace cercle((0,0),4mm) withcolor \mpcolor{Evidence!50};
+ drawoptions(withcolor 0.5white);
+ label.top(TEX("\tiny alea\TeX"),(0,0));
+ drawoptions(withcolor \mpcolor{Evidence});
+ label.bot(TEX("\tiny SL \& CP$^2$"),(0,0));
+ \end{mplibcode}}~\phantom{t}}
+ }{%
+ \end{frame}
+ }
+}{
\NewDocumentEnvironment{Maquette}{om}{%
% on remet à zéro les compteurs de solutions : inutile ?
\setcounter{RetiensSol}{0}%
@@ -3431,43 +3969,58 @@
\setcounter{PfMSOS}{0}%
% nouvelles valeurs.
\stepcounter{PfMMaquette}%
+ \immediate\write\@auxout{%
+ \string\opcopy{0}{ScoreTotal\thePfMMaquette}
+ }%
+ %%\opadd*{#1}{ScoreTotal\thePfMMaquette}{ScoreTotal\thePfMMaquette}%
+ \if@AssembleCorrections
+ \immediate\openout\PfMfile@out \jobname-DefiMq-\thePfMMaquette.tex%
+ \immediate\write\PfMfile@out{\unexpanded{\useKVdefault[Boulot]}}%
+ \immediate\write\PfMfile@out{\unexpanded{\setKV[Boulot]{#1}}}%
+ \immediate\write\PfMfile@out{\TikzFicheCor{\unexpanded{#2}}}%
+ \immediate\closeout\PfMfile@out%
+ \fi
% options de boulot
\IfHookExistsTF{env/Maquette/after}{\RemoveFromHook{env/Maquette/after}[*]}{}%
- %\IfHookExistsTF{env/exercice/after}{\RemoveFromHook{env/exercice/after}[*]}{}%
- % \AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection}%
+ \AddToHook{env/Maquette/after}[RetiensExo]{\xdef\PfMRetiensLienExoMa{\PfMRetiensLienExoMa,\thePfMExo}}
+ %--------------
\useKVdefault[Boulot]%
\setKV[Boulot]{#1}%
\ifboolKV[Boulot]{CorrigeSeul}{\setKV[Boulot]{CorrigeFin}}{}%
- \if@Dyslexie
- \setKV[Boulot]{Dys}
- \fi
+ \if@Dyslexie%
+ \setKV[Boulot]{Dys}%
+ \fi%
\PfMBasculeDys%
- \IfHookExistsTF{env/exercice/after}{\RemoveFromHook{env/exercice/after}[*]\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection}}{\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection}}%
+ \IfHookExistsTF{env/exercice/after}{\RemoveFromHook{env/exercice/after}[*]\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection\PfMChoixAffichageEntrainement}}{\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection\PfMChoixAffichageEntrainement}}%
% Test
\IfHookExistsTF{env/exercice/begin}{\RemoveFromHook{env/exercice/begin}[*]}{}%
\IfHookExistsTF{env/Maquette/end}{\RemoveFromHook{env/Maquette/end}[*]}{}%
+% \ifboolKV[Boulot]{Diaporama}{%
+% }{%
\ifboolKV[Boulot]{OlympiadesAPMEP}{%
- \setKV[OlympiadesAPMEP]{#2}%\TikzOlympiadesAPMEP%
- \let\exercice\exerciceOlympiadesAPMEP\let\endexercice\endexerciceOlympiadesAPMEP%
- \ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \PfMAffichageCorrectionColonnes%
- }%
- }{}%
- }{%
- \ifboolKV[Boulot]{CAN}{%
+ % \input{PfMMaquetteOlympAPMEP}%
+ \setKV[OlympiadesAPMEP]{#2}%\TikzOlympiadesAPMEP%
+ \let\exercice\exerciceOlympiadesAPMEP\let\endexercice\endexerciceOlympiadesAPMEP%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzOlympiadesAPMEPCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ }%
+ }{}%
+ }{%
+ \ifboolKV[Boulot]{CAN}{%
+ % \input{PfMMaquetteCAN.tex}
\setKV[CAN]{#2}%
- %\ifboolKV[Boulot]{CorrigeSeul}{}{\TikzCAN}%
\setcounter{PfMCNNumQ}{0}%
\setlength{\PfMLargeurQuestion}{\useKV[CAN]{CoefQ}\linewidth}\setlength{\PfMLargeurReponse}{\useKV[CAN]{CoefR}\linewidth}\setlength{\PfMLargeurJury}{\useKV[CAN]{CoefJ}\linewidth}%
\let\exercice\ExoCANWrite\let\endexercice\endExoCANWrite%
\AddToHook{env/exercice/begin}{\setcounter{PfMAlea}{0}}%
\AddToHook{env/Maquette/end}{%
- \xdef\PfMAncienneGraine{\PfMChoisisGraineAlea{123456789}}
+ \xdef\PfMAncienneGraine{\PfMChoisisGraineAlea{123456789}}%
\xdef\PfMCANTotalExo{\thePfMExo}%
\setbox\PfMSauvegardeBox\vbox{%
- \PfMGraineAlea{\thePfMMaquette}
+ \PfMGraineAlea{\thePfMMaquette}%
\setcounter{PfMExo}{0}%
\renewcommand{\arraystretch}{2}%
\begin{longtable}{|c|m{\PfMLargeurQuestion}|>{\centering\arraybackslash}m{\PfMLargeurReponse}|m{\PfMLargeurJury}|}%
@@ -3476,21 +4029,21 @@
\hline%
\endhead%
\xintFor* ##1 in {\xintSeq{1}{\PfMCANTotalExo}}\do{%
- \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ex##1.can}&\CNReponse&\\
+ \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ma\thePfMMaquette-Ex##1.can}&\CNReponse&\\
\hline%
}%
\end{longtable}%
\renewcommand{\arraystretch}{1}%
- }
+ }%
\ifboolKV[Boulot]{CorrigeInverse}{%
- \PfMPrepareCorrection{#1}%
- \TikzCANCor{#2}%
- \PfMAffichageCorrectionColonnes%
- \clearpage
- \normalsize%
- \TikzCAN%
- \PfMGraineAlea{\thePfMMaquette}%
- \setcounter{PfMCNNumQ}{0}%
+ \PfMPrepareCorrection{#1}%
+ \TikzCANCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ \clearpage
+ \normalsize%
+ \TikzCAN%
+ \PfMGraineAlea{\thePfMMaquette}%
+ \setcounter{PfMCNNumQ}{0}%
\setcounter{PfMExo}{0}%
\renewcommand{\arraystretch}{2}%
\begin{longtable}{|c|m{\PfMLargeurQuestion}|>{\centering\arraybackslash}m{\PfMLargeurReponse}|m{\PfMLargeurJury}|}%
@@ -3499,7 +4052,7 @@
\hline%
\endhead%
\xintFor* ##1 in {\xintSeq{1}{\PfMCANTotalExo}}\do{%
- \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ex##1.can}&\CNReponse&\\
+ \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ma\thePfMMaquette-Ex##1.can}&\CNReponse&\\
\hline%
}%
\end{longtable}%
@@ -3508,7 +4061,7 @@
\PfMGraineAlea{\PfMAncienneGraine}%
\TikzCAN%
\setcounter{PfMCNNumQ}{0}%
- \setcounter{PfMExo}{0}%
+ \setcounter{PfMExo}{0}%
\renewcommand{\arraystretch}{2}%
\begin{longtable}{|c|m{\PfMLargeurQuestion}|>{\centering\arraybackslash}m{\PfMLargeurReponse}|m{\PfMLargeurJury}|}%
\hhline{~---}%
@@ -3516,233 +4069,279 @@
\hline%
\endhead%
\xintFor* ##1 in {\xintSeq{1}{\PfMCANTotalExo}}\do{%
- \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ex##1.can}&\CNReponse&\\
+ \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ma\thePfMMaquette-Ex##1.can}&\CNReponse&\\
\hline%
}%
\end{longtable}%
\renewcommand{\arraystretch}{1}%
- \ifboolKV[Boulot]{CorrigeFin}{\ifboolKV[Boulot]{CorrigeInverse}{}{\clearpage
- \PfMPrepareCorrection{#1}%
- \TikzCANCor{#2}%
- \PfMAffichageCorrectionColonnes%
- }
- }{}
- }
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \ifboolKV[Boulot]{CorrigeInverse}{}{%
+ \clearpage
+ \PfMPrepareCorrection{#1}%
+ \TikzCANCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ }%
+ }{}%
+ }%
}%
}{%
\ifboolKV[Boulot]{FdR}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[FdR]{#2}\TikzFdR%
- }
- \let\exercice\exerciceFdR\let\endexercice\endexerciceFdR%
- \ifboolKV[Boulot]{AvecEntrainement}{%
- \AddToHook{env/Maquette/end}[Haltere]{%
- \PfMAffichageEntrainementColonnes%
- }%
- }{}%
- \ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \TikzFdRCor{#2}%
- \PfMAffichageCorrectionColonnes
+ % \input{PfMMaquetteFdR.tex}%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[FdR]{#2}\TikzFdR%
}%
- }{}%
- }{%
- \ifboolKV[Boulot]{Contrat}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[Contrat]{#2}\TikzContrat%
- }
- \let\exercice\exerciceContrat\let\endexercice\endexerciceContrat%
- \ifboolKV[Boulot]{AvecEntrainement}{%
- \AddToHook{env/Maquette/end}[Haltere]{%
- \PfMAffichageEntrainementColonnes%
- }%
- }{}%
- \ifboolKV[Boulot]{CorrigeFin}{%
+ \let\exercice\exerciceFdR\let\endexercice\endexerciceFdR%
+ \ifboolKV[Boulot]{AvecEntrainement}{%
+ \AddToHook{env/Maquette/end}[Haltere]{%
+ \PfMAffichageEntrainementColonnes%
+ }%
+ }{}%
+ \ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
\PfMPrepareCorrection{#1}%
- \TikzContratCor{#2}%
- \PfMAffichageCorrectionColonnes%
- }%
- }{}%
- }{%
- \ifboolKV[Boulot]{Cours}{%
- \setKV[Cours]{#2}%
- \TikzCours%
- \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche%
- \ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \TikzFicheCor{#2}%
- \PfMAffichageCorrectionColonnes
- }%
- }{}%
- }{%
- \ifboolKV[Boulot]{RecapBrevet}{%
- \setKV[RecapBrevet]{#2}%
- \TikzRecapBrevet%
- \let\exercice\ExerciceRecapBrevet\let\endexercice\endExerciceRecapBrevet%
- \ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \TikzRecapBrevetCor{#2}%
- \PfMAffichageCorrectionColonnes%
- }%
- }{}%
- }{%
- \ifboolKV[Boulot]{ParcoursPerso}{%
- \setKV[ParcoursPerso]{#2}%
- \DTLloaddb[noheader,keys={PrenomEleve,NomEleve,ListeExo}]{dataperso}{\useKV[ParcoursPerso]{Fichier}.csv}%
- \let\exercice\exerciceParcoursPerso\let\endexercice\endexerciceParcoursPerso%
- \ifboolKV[Boulot]{CorrigeFin}{\setcounter{PfMCorrigeParcoursPerso}{1}}{}%
- \setcounter{PfMExo}{0}%
- \AtEndDocument{%
- \Recapitulatif{#1}{#2}%
- }%
- }{%
- \ifboolKV[Boulot]{Parcours}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[Parcours]{#2}\TikzParcours%
- }
- \let\exercice\exerciceParcours\let\endexercice\endexerciceParcours%
- \ifboolKV[Boulot]{AvecEntrainement}{%
- \AddToHook{env/Maquette/end}[Haltere]{%
- \PfMAffichageEntrainementColonnes%
- }%
- }{}%
- \ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \TikzParcoursCor{#2}
- \PfMAffichageCorrectionColonnes
- }%
+ \TikzFdRCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ }%
}{}%
}{%
- \ifboolKV[Boulot]{PdT}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[PdT]{#2}\TikzPdT%
- }
- \let\exercice\exercicePdT\let\endexercice\endexercicePdT%
+ \ifboolKV[Boulot]{Contrat}{%
+ % \input{PfMMaquetteContrat.tex}%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[Contrat]{#2}\TikzContrat%
+ }%
+ \let\exercice\exerciceContrat\let\endexercice\endexerciceContrat%
+ \ifboolKV[Boulot]{AvecEntrainement}{%
+ \AddToHook{env/Maquette/end}[Haltere]{%
+ \PfMAffichageEntrainementColonnes%
+ }%
+ }{}%
\ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \TikzPdTCor{#2}%
- \PfMAffichageCorrectionColonnes%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzContratCor{#2}%
+ \PfMAffichageCorrectionColonnes%
}%
}{}%
}{%
- \ifboolKV[Boulot]{DM}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[DM]{#2}\TikzDM%
- }
- \let\exercice\exerciceDM\let\endexercice\endexerciceDM%
+ \ifboolKV[Boulot]{Cours}{%
+ % \input{PfMMaquetteCours.tex}%
+ \setKV[Cours]{#2}%
+ \TikzCours%
+ \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche%
\ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \TikzDMCor{#2}%
- \PfMAffichageCorrectionColonnes%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzFicheCor{#2}%
+ \PfMAffichageCorrectionColonnes%
}%
}{}%
}{%
- \ifboolKV[Boulot]{Fiche}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[Fiche]{#2}%
- \TikzFiche%
+ \ifboolKV[Boulot]{RecapBrevet}{%
+ % \input{PfMMaquetteRecapBrevet.tex}%
+ \setKV[RecapBrevet]{#2}%
+ \TikzRecapBrevet%
+ \let\exercice\ExerciceRecapBrevet\let\endexercice\endExerciceRecapBrevet%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzRecapBrevetCor{#2}%
+ \PfMAffichageCorrectionColonnes%
}%
- \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche%
- \ifboolKV[Boulot]{AvecEntrainement}{%
+ }{}%
+ }{%
+ \ifboolKV[Boulot]{ParcoursPerso}{%
+ % \input{PfMMaquetteParcoursPerso.tex}%
+ \setKV[ParcoursPerso]{#2}%
+ \DTLloaddb[noheader,keys={PrenomEleve,NomEleve,ListeExo}]{dataperso}{\useKV[ParcoursPerso]{Fichier}.csv}%
+ \let\exercice\exerciceParcoursPerso\let\endexercice\endexerciceParcoursPerso%
+ \ifboolKV[Boulot]{CorrigeFin}{\setcounter{PfMCorrigeParcoursPerso}{1}}{}%
+ \setcounter{PfMExo}{0}%
+ \AtEndDocument{%
+ \PfMRecapitulatif{#1}{#2}%
+ }%
+ }{%
+ \ifboolKV[Boulot]{Parcours}{%
+ % \input{PfMMaquetteParcours.tex}%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[Parcours]{#2}\TikzParcours%
+ }%
+ \let\exercice\exerciceParcours\let\endexercice\endexerciceParcours%
+ \ifboolKV[Boulot]{AvecEntrainement}{%
\AddToHook{env/Maquette/end}[Haltere]{%
\PfMAffichageEntrainementColonnes%
}%
}{}%
- \ifboolKV[Boulot]{CorrigeFin}{%
- \ifboolKV[Boulot]{CorrigeAll}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}%
- \TikzFicheCor{#2}%
- \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
- \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
- \IfFileExists{\jobname-Ex##1.sol}{\textbf{Corrigé de l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.sol}\par\goodbreak}{}%
- }%
- \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
- \TikzFicheCorRep{#2}%
- \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
- \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
- \IfFileExists{\jobname-Ex##1.rep}{\textbf{Réponse(s) de l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.rep}\par\goodbreak}{}%
- }%
- \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
- \TikzFicheCorInd{#2}%
- \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
- \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
- \IfFileExists{\jobname-Ex##1.cdp}{\textbf{Indice(s) pour l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.cdp}\par\goodbreak}{}%
- }%
- \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
- }%
- }{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \useKVdefault[Boulot]%
- \setKV[Boulot]{#1}%
- %%
- \if@Dyslexie
- \setKV[Boulot]{Dys}
- \fi
- \PfMBasculeDys%
- \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
- \TikzFicheCor{#2}%
- \PfMChangerTailleCorrection%
- \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
- \PfMAffichageCorrige%
- \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
- }%
- }%
- }{}%
- }{%
- \ifboolKV[Boulot]{DS}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[DS]{#2}\TikzDS%
- }%
- \let\exercice\exerciceDS\let\endexercice\endexerciceDS%
- \ifboolKV[Boulot]{BaremeComplet}{%
- \begin{center}
- \TableauRecapitulatif
- \end{center}
- }{}%
- \ifboolKV[Boulot]{CorrigeFin}{%
+ \ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}
- \TikzDSCor{#2}%
+ \PfMPrepareCorrection{#1}%
+ \TikzParcoursCor{#2}%
\PfMAffichageCorrectionColonnes%
- }%
- }{}%
- }{%
- \ifboolKV[Boulot]{IE}{%
- \ifboolKV[Boulot]{CorrigeSeul}{}{%
- \setKV[IE]{#2}\TikzIE%
- }
- \let\exercice\exerciceDS\let\endexercice\endexerciceDS%On garde exerciceDS
- \ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \PfMPrepareCorrection{#1}
- \TikzIECor{#2}%
- \PfMAffichageCorrectionColonnes
}%
}{}%
}{%
- \ifboolKV[Boulot]{Kholle}{%
- \setKV[Kholle]{#2}%
- \TikzKholle%
- \let\exercice\exerciceKholle\let\endexercice\endexerciceKholle%
- \ifboolKV[Kholle]{CR}{}{%
+ \ifboolKV[Boulot]{PdT}{%
+ % \input{PfMMaquettePdT.tex}%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[PdT]{#2}\TikzPdT%
+ }%
+ \let\exercice\exercicePdT\let\endexercice\endexercicePdT%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzPdTCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ }%
+ }{}%
+ }{%
+ \ifboolKV[Boulot]{DM}{%
+ % \input{PfMMaquetteDM.tex}%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[DM]{#2}\TikzDM%
+ }%
+ \let\exercice\exerciceDM\let\endexercice\endexerciceDM%
\ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
- \TikzKholleCor{#2}%
- \TikzKholleCor{#2}%
- \TikzKholleCor{#2}%
- \PfMAffichageCorrige%
+ \PfMPrepareCorrection{#1}%
+ \TikzDMCor{#2}%
+ \PfMAffichageCorrectionColonnes%
}%
}{}%
+ }{%
+ \ifboolKV[Boulot]{Fiche}{%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[Fiche]{#2}%
+ \TikzFiche%
+ }%
+ \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche%
+ \ifboolKV[Boulot]{AvecEntrainement}{%
+ \AddToHook{env/Maquette/end}[Haltere]{%
+ \PfMAffichageEntrainementColonnes%
+ }%
+ }{}%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \ifboolKV[Boulot]{CorrigeAll}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzFicheCor{#2}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.sol}{\textbf{Corrigé de l'exercice ##1}\par\nopagebreak\input{\jobname-Ma\thePfMMaquette-Ex##1.sol}\par\goodbreak}{}%
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ \TikzFicheCorRep{#2}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.rep}{\textbf{Réponse(s) de l'exercice ##1}\par\nopagebreak\input{\jobname-Ma\thePfMMaquette-Ex##1.rep}\par\goodbreak}{}%
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ \TikzFicheCorInd{#2}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \IfFileExists{\jobname-Ma\thePfMMaquette-Ex##1.cdp}{\textbf{Indice(s) pour l'exercice ##1}\par\nopagebreak\input{\jobname-Ma\thePfMMaquette-Ex##1.cdp}\par\goodbreak}{}%
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ }%
+ }{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+% \useKVdefault[Boulot]%
+% \setKV[Boulot]{#1}%
+% %%
+% \if@Dyslexie
+% \setKV[Boulot]{Dys}%
+% \fi
+% \PfMBasculeDys%
+% \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+ \if@AssembleCorrections
+ \else
+ \PfMPrepareCorrection{#1}%
+ \TikzFicheCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ \fi%
+ }%
+ }%
+ }{}%
+ }{%
+ \ifboolKV[Boulot]{DS}{%
+ % \input{PfMMaquetteDS.tex}%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[DS]{#2}\TikzDS%
+ }%
+ \let\exercice\exerciceDS\let\endexercice\endexerciceDS%
+ \ifboolKV[Boulot]{BaremeComplet}{%
+ \begin{center}
+ \TableauRecapitulatif
+ \end{center}
+ }{}%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzDSCor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ }%
+ }{}%
+ }{%
+ \ifboolKV[Boulot]{IE}{%
+ % \input{PfMMaquetteIE.tex}%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \setKV[IE]{#2}\TikzIE%
+ }%
+ \let\exercice\exerciceDS\let\endexercice\endexerciceDS%On garde exerciceDS
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \PfMPrepareCorrection{#1}%
+ \TikzIECor{#2}%
+ \PfMAffichageCorrectionColonnes%
+ }%
+ }{}%
+ }{%
+ \ifboolKV[Boulot]{Kholle}{%
+ % \input{PfMMaquetteKholle.tex}%
+ \setKV[Kholle]{#2}%
+ \TikzKholle%
+ \let\exercice\exerciceKholle\let\endexercice\endexerciceKholle%
+ \ifboolKV[Kholle]{CR}{}{%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \TikzKholleCor{#2}%
+ \TikzKholleCor{#2}%
+ \TikzKholleCor{#2}%
+ \PfMAffichageCorrige%
+ }%
+ }{}%
+ }%
+ }{%
+ \ifboolKV[Boulot]{LivreHeros}{%
+ \setKV[LivreHeros]{#2}%
+ \TikzLivreHeros%
+ \let\exercice\ExoGBWrite\let\endexercice\endExoGBWrite%
+ \AddToHook{env/Maquette/end}{%
+ \xdef\PfMListeExoGB{}%
+ \xintFor* ##1 in{\xintSeq{2}{\thePfMExo}}\do{%
+ \xdef\PfMListeExoGB{\PfMListeExoGB,##1}%
+ }%
+ \MelangeListe{\PfMListeExoGB}{\fpeval{\thePfMExo-1}}%
+ \xdef\PfMFooMelange{1,\faa}%
+ \setsepchar{,}\ignoreemptyitems\readlist*\ListePerm{\PfMFooMelange}\reademptyitems%
+ \phantomsection{}
+ \addcontentsline{toc}{section}{\useKV[LivreHeros]{Theme}}%
+ \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \itemtomacro\ListePerm[##1]\PfMPermute%
+ \begin{tcolorbox}[tikzLH,title=##1]%
+ \refstepcounter{PfMGameBook}%
+ \input{\jobname-Ma\thePfMMaquette-Ex\PfMPermute.gb}%
+ \end{tcolorbox}%
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ }%
+ }{}%
+ }%
+ }%
+ }%
+ }%
}%
- }{}%
+ }%
}%
}%
}%
@@ -3751,11 +4350,7 @@
}%
}%
}%
-}%
-}%
-}%
-}%
-}%
+}
}{}%
\makeatother
%D'après JCC
@@ -4391,8 +4986,9 @@
\BaremeEspaceMarge{-82pt}
}
-\AddToHook{env/multicols/begin}{\setcounter{Nbcolonnes}{2}}%
-\AddToHook{env/multicols/after}{\setcounter{Nbcolonnes}{4}}%
+%\AddToHook{env/multicols/begin}{\setcounter{Nbcolonnes}{2}}%
+%\AddToHook{env/multicols/after}{\setcounter{Nbcolonnes}{4}}%
+
\NewDocumentEnvironment{Dispo}{sm+b}{%
\ifPfMDeuxColonnes
\IfBooleanTF{#1}{%
@@ -4468,4 +5064,117 @@
}%
\fi%
\end{align*}
-}{}% \ No newline at end of file
+}{}%
+
+\def\RetiensEchelle{1cm}
+\def\ChoixNbQuestions{3}
+\makeatletter
+\if@CAN
+ \AddToHook{env/document/before}{%
+ \ProvidesPackage{ProfMaquette}[Mode CAN (CP)]%
+ \RequirePackage{pgfmorepages}
+ \pgfmorepagesloadextralayouts
+ \pgfpagesuselayout{4 on 2, book format}[a4paper,landscape]
+ }
+\fi
+
+\if@Revision
+ \AddToHook{env/document/before}{%
+ \ProvidesPackage{ProfMaquette}[Mode Revision (CP)]%
+ \setcounter{Nbcolonnes}{2}%
+ \def\RetiensEchelle{0.5cm}
+ \RequirePackage{pgfmorepages}
+ \pgfmorepagesloadextralayouts
+ \pgfpagesuselayout{4 on 2, book format}[a4paper]
+ }
+\fi
+
+\if@Personnel
+ \input{PfMPerso.cfg}
+\fi
+\makeatother
+
+\IfClassLoadedTF{beamer}{}{%
+ % enumitem obligatoire ^^
+% mais pas compatible beamer
+\RequirePackage{enumitem}
+% d'après https://tex.stackexchange.com/questions/164613/adding-code-at-the-end-of-each-list-item
+\newif\iffirstlegal\firstlegalfalse% We need a toggle to track whether the item is first in the list or not
+
+\newlist{Test}{enumerate}{3}
+
+\def\PfMPar{\par}
+
+\NewDocumentCommand\litem{}{}
+
+\let\olditem\item% save the standard definition of \item in a macro, \olditem
+
+\setlist[Test,1]{%
+ leftmargin=*,
+ label=\arabic*.,
+ before={%
+ \setcounter{PfMProfondeur}{1}%
+ \setcounter{PfMNbLignesFinitem}{0}
+ \firstlegaltrue% set the toggle for first item in the list to true
+ \def\Primeitem{\iffirstlegal\olditem\stepcounter{PfMNbLignesFinitem}%
+ \firstlegalfalse
+ \else
+ \ifnum\PfMListeDesAjoutsdeLignes[\thePfMNbLignesFinitem]>1\relax\PfMPar\Lignespointilles{\PfMListeDesAjoutsdeLignes[\thePfMNbLignesFinitem]}\else\ifnum\PfMListeDesAjoutsdeLignes[\thePfMNbLignesFinitem]=1\relax\PfMPar\pointilles\fi\fi%
+ \olditem\stepcounter{PfMNbLignesFinitem}%
+ \fi
+ }% new, temporary defition of \item
+ \let\litem\Primeitem
+ \let\item\litem
+ },
+ after={%
+ \ifnum\PfMListeDesAjoutsdeLignes[\thePfMNbLignesFinitem]>0\relax\PfMPar\Lignespointilles{\PfMListeDesAjoutsdeLignes[\thePfMNbLignesFinitem]}\else\ifnum\PfMListeDesAjoutsdeLignes[\thePfMNbLignesFinitem]=1\relax\PfMPar\pointilles\fi\fi%
+ % fill for final item in list
+ \let\litem\olditem% restore standard definition of \item
+ \let\item\olditem
+ \setcounter{PfMProfondeur}{0}%
+ }%
+}%
+
+\setlist[Test,2]{%
+ leftmargin=*,
+ label=(\alph*),
+ before={%
+ \setcounter{PfMProfondeur}{2}%
+ \setcounter{PfMNbLignesFinitemi}{0}
+ \firstlegaltrue%
+ \def\Seconditem{\iffirstlegal\olditem\stepcounter{PfMNbLignesFinitemi}\firstlegalfalse\else%
+ \ifnum\PfMListeDesAjoutsdeLignesi[\thePfMNbLignesFinitemi]>1\relax\PfMPar\Lignespointilles{\PfMListeDesAjoutsdeLignesi[\thePfMNbLignesFinitemi]}\else\ifnum\PfMListeDesAjoutsdeLignesi[\thePfMNbLignesFinitemi]=1\relax\PfMPar\pointilles\fi
+ \fi%
+ \olditem\stepcounter{PfMNbLignesFinitemi}
+ \fi
+ }% new, temporary defition of \item
+ \let\litem\Seconditem
+ \let\item\litem
+ },
+ after={%
+ \ifnum\PfMListeDesAjoutsdeLignesi[\thePfMNbLignesFinitemi]>1\relax\PfMPar\Lignespointilles{\PfMListeDesAjoutsdeLignesi[\thePfMNbLignesFinitemi]}\else\ifnum\PfMListeDesAjoutsdeLignesi[\thePfMNbLignesFinitemi]=1\relax\PfMPar\pointilles\fi
+ \fi%
+% % fill for final item in list
+ \let\litem\Primeitem%
+ \let\item\litem
+ \setcounter{PfMProfondeur}{1}%
+ }%
+}
+
+\newcounter{PfMNbLignesFinitem}
+\newcounter{PfMNbLignesFinitemi}
+\newcounter{PfMProfondeur}
+\setcounter{PfMProfondeur}{0}%
+
+\NewDocumentEnvironment{autoenumerate}{O{}m +b}{%
+ \setsepchar{,}\ignoreemptyitems%
+ \ifnum\thePfMProfondeur=0\relax%
+ \readlist*\PfMListeDesAjoutsdeLignes{#2}%
+ \else%
+ \readlist*\PfMListeDesAjoutsdeLignesi{#2}%
+ \fi%
+ \begin{Test}[#1]%
+ #3
+ \end{Test}%
+}{}%
+} \ No newline at end of file
diff --git a/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.pdf b/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.pdf
index 3e23a4d227..3769f87f68 100644
--- a/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.pdf
+++ b/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.tex b/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.tex
index 431958ee1f..d75019352d 100644
--- a/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.tex
+++ b/macros/latex/contrib/quizztex/doc/quizztex-doc-fr.tex
@@ -4,8 +4,8 @@
\documentclass[french,a4paper,11pt]{article}
\usepackage[margin=2cm,includefoot]{geometry}
-\def\TPversion{0.1.2}
-\def\TPdate{5 novembre 2023}
+\def\TPversion{0.1.4}
+\def\TPdate{10 septembre 2024}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}
@@ -85,7 +85,7 @@
keywordstyle={\color{violet}},%
classoffset=2,%
alsoletter={-},%
- morekeywords={\QuizzMillions,\QuizzPrendrePlace},%
+ morekeywords={\QuizzMillions,\QuizzPrendrePlace,\SetDefautPrendrePlace,\SetDefautMillions},%
keywordstyle={\color{green!50!black}},%
classoffset=3,%
morekeywords={Largeur,Marge,Hauteurs,Couleur,CouleurFond,CouleurLettre,CouleurTexte,Bonne,Mauvaise,Choix,CoulBonne,CoulChoix,CoulMauvaise,Affichage,EspacementV,OffsetV,Decorations,AffChoix,Jokers,AffJokers,CodeAvant,Offset,Theme,Type,Effet,PositionJokers,Points},%
@@ -205,6 +205,10 @@
\section{Historique}
+\verb|v0.1.4|~:~~~~Ajout d'une commande pour forcer, de manière globale, des paramètres par défaut.
+
+\verb|v0.1.3|~:~~~~Annulation du chargement de \textsf{tikz.babel}.
+
\verb|v0.1.2|~:~~~~Migration de \textsf{\textbackslash tikzstyle} à \textsf{\textbackslash tikzset}.
\verb|v0.1.1|~:~~~~Amélioration de la gestion des hauteurs + modification de la clé \Cle{CodeAvant}.
@@ -255,7 +259,7 @@ Il n'existe pas d'option pour le package, et \packagetex!xcolor! n'est pas charg
\item \packagetex!tikz.calc!
\item \packagetex!tikz.positioning! ;
\item \packagetex!tikz.shapes.geometric! ;
- \item \packagetex!tikz.babel! ;
+ %\item \packagetex!tikz.babel! ;
\item \packagetex!tikz.fadings!.
\end{itemize}
\end{itemize}
@@ -629,4 +633,26 @@ Les cinq arguments obligatoires correspondent à la question et aux réponses, s
{$\mathtt{f'(x)=\dfrac{1}{x}}$}
\end{DemoCode}
+\pagebreak
+
+\section{Modification globale des valeurs par défaut}
+
+\subsection{À la manière de \og Qui veut gagner des Millions ? \fg}
+
+La commande \motcletex!\SetDefautMillions! permet de modifier, de manière globale l'un ou plusieurs des paramètres par défaut.
+
+\begin{DemoCode}[listing only]
+%permet d'enlever les Jokers pour tous les environnements \QuizzMillions
+\SetDefautMillions{Jokers=false}
+\end{DemoCode}
+
+\subsection{À la manière de \og Tout le monde veut prendre sa place \fg}
+
+La commande \motcletex!\SetDefautPrendrePlace! permet de modifier, de manière globale l'un ou plusieurs des paramètres par défaut.
+
+\begin{DemoCode}[listing only]
+%permet d'enlever les effets pour tous les environnements \QuizzPrendrePlace
+\SetDefautPrendrePlace{Effet=false}
+\end{DemoCode}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/quizztex/tex/quizztex.sty b/macros/latex/contrib/quizztex/tex/quizztex.sty
index ee18c46d0d..fc199309ae 100644
--- a/macros/latex/contrib/quizztex/tex/quizztex.sty
+++ b/macros/latex/contrib/quizztex/tex/quizztex.sty
@@ -4,7 +4,9 @@
% : 'Tout le monde veut prendre sa place' is a Tradematk from Air Productions.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{quizztex}[2023/11/05 0.1.2 Construire des quizz 'comme dans les jeux' ]
+\ProvidesPackage{quizztex}[2024/09/10 0.1.4 Construire des quizz 'comme dans les jeux' ]
+%0.1.4 Macro pour modifier les paramètres par défaut des clés
+%0.1.3 Annulation du chargement de tikz.babel
%0.1.2 Passage \tikzstyle vers \tikzset (merci à Sam C.)
%0.1.1 Amélioration de la gestion des réponses dans WWTBAM + Position des Jokers (cc P. Bideault ;-))
%0.1.0 Version initiale
@@ -18,7 +20,8 @@
\RequirePackage{calc}
\RequirePackage{varwidth}
%------Librairies
-\usetikzlibrary{calc,positioning,shapes.geometric,babel,fadings}
+\usetikzlibrary{calc,positioning,shapes.geometric,fadings}
+%\usetikzlibrary{babel}
%------Longueurs globales
\newlength{\HauteurQuest}
@@ -120,6 +123,8 @@
PositionJokers=centre
}
+\newcommand\SetDefautMillions[1]{\setKVdefault[wwtbam]{#1}}
+
\NewDocumentCommand\LettreChoixMillions{ m }{%
\textcolor{\CouleurLettreWWTBAM}{\large\sffamily\bfseries{\vphantom{Q}#1}\,:}%
}
@@ -565,6 +570,8 @@
EchellePoints=1
}
+\newcommand\SetDefautPlace[1]{\setKVdefault[TLMVPSP]{#1}}
+
\NewDocumentCommand\QuizzPrendrePlace{ O{} m m m m m }{%clés + questions + 4 réponses
\useKVdefault[TLMVPSP]%
\setKV[TLMVPSP]{#1}%
diff --git a/macros/latex/contrib/randintlist/README.md b/macros/latex/contrib/randintlist/README.md
new file mode 100644
index 0000000000..4cd0c34356
--- /dev/null
+++ b/macros/latex/contrib/randintlist/README.md
@@ -0,0 +1,6 @@
+This package (like luarandom, but without the obligation to use lualatex) provides some macros for creating random integer number lists between a and b.
+This list can have multiple numbers or not, and this list can be sorted or not.
+--------------------------------------------------------------------------------------------------------------------------------------------------------
+Author..: Cédric Pierquet
+email...: cpierquet@outlook.fr
+Licence.: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt \ No newline at end of file
diff --git a/macros/latex/contrib/randintlist/doc/randintlist-doc.pdf b/macros/latex/contrib/randintlist/doc/randintlist-doc.pdf
new file mode 100644
index 0000000000..373177badb
--- /dev/null
+++ b/macros/latex/contrib/randintlist/doc/randintlist-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/randintlist/doc/randintlist-doc.tex b/macros/latex/contrib/randintlist/doc/randintlist-doc.tex
new file mode 100644
index 0000000000..d08d3edbb6
--- /dev/null
+++ b/macros/latex/contrib/randintlist/doc/randintlist-doc.tex
@@ -0,0 +1,351 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode}
+% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode}
+
+\documentclass[11pt,a4paper]{ltxdoc}
+\usepackage{bera}
+\usepackage{inconsolata}
+\usepackage[T1]{fontenc}
+\usepackage[scale=0.875]{cabin}
+\usepackage{randintlist}
+\usepackage{fancyvrb}
+\usepackage{fancyhdr}
+\usepackage{tabularray}
+\usepackage{fontawesome5}
+\fancyhf{}
+\renewcommand{\headrulewidth}{0pt}
+\lfoot{\sffamily\small [randintlist]}
+\cfoot{\sffamily\small - \thepage{} -}
+\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}
+\usepackage{hologo}
+\providecommand\tikzlogo{Ti\textit{k}Z}
+\providecommand\TeXLive{\TeX{}Live\xspace}
+\let\TikZ\tikzlogo
+
+\usepackage{hyperref}
+\urlstyle{same}
+\hypersetup{pdfborder=0 0 0}
+\usepackage[margin=2cm]{geometry}
+\setlength{\parindent}{0pt}
+\def\TPversion{0.1.1}
+\def\TPdate{24/09/2024}
+\usepackage{tcolorbox}
+\usepackage{pgffor}
+\tcbuselibrary{breakable,skins,hooks,listingsutf8}
+%\usepackage{soul}
+%\sethlcolor{lightgray!25}
+
+\lstset{
+ language=[LaTeX]TeX,%
+ basicstyle=\ttfamily,%
+ keywordstyle={\color{blue}},%
+ classoffset=0,%
+ keywords={},%
+ alsoletter={-},%
+ keywordstyle={\color{blue}},%
+ classoffset=1,%
+ alsoletter={-},%
+ morekeywords={euromoney},%
+ keywordstyle={\color{violet}},%
+ classoffset=2,%
+ alsoletter={-},%
+ morekeywords={\randintlist,\getitemfromrandintlist},%
+ keywordstyle={\color{green!50!black}},%
+ classoffset=3,%
+ morekeywords={min,max,nb,seed,sort,sep,repeat,exclude},%
+ keywordstyle={\color{orange}}
+}
+
+\newtcblisting{DemoCode}[1]{%
+ enhanced,width=\linewidth,%
+ bicolor,size=title,%
+ colback=cyan!10!white,%
+ colbacklower=cyan!5!white,%
+ colframe=cyan!75!black,%
+ listing options={%
+ breaklines=true,%
+ breakatwhitespace=true,%
+ style=tcblatex,basicstyle=\small\ttfamily,%
+ tabsize=4,%
+ commentstyle={\itshape\color{gray}},
+ keywordstyle={\color{blue}},%
+ classoffset=0,%
+ keywords={\usepackage,\includegraphics,xstring,listofitems,tikz,calc,simplekv,graphicx,\readlist,\showitems,\xintFor,\xintSeq},%
+ alsoletter={-},%
+ keywordstyle={\color{blue}},%
+ classoffset=1,%
+ alsoletter={-},%
+ morekeywords={euromoney},%
+ keywordstyle={\color{violet}},%
+ classoffset=2,%
+ alsoletter={-},%
+ morekeywords={\randintlist,\getitemfromrandintlist,\ListeRandint,\ExtraireEltListeRandint},%
+ keywordstyle={\color{green!50!black}},%
+ classoffset=3,%
+ morekeywords={min,max,nb,seed,sort,sep,repeat,Min,Max,Nb,Graine,Sep,Tri,Repet,exclude,Exclure},%
+ keywordstyle={\color{orange}}
+ },%
+ #1
+}
+
+\newtcbinputlisting\DemoCodeFile[1]{%
+ enhanced,width=\linewidth,%
+ bicolor,size=title,%
+ colback=lightgray!10!white,%
+ colbacklower=lightgray!5!white,%
+ colframe=lightgray!75!black,%
+ listing options={%
+ breaklines=true,%
+ breakatwhitespace=true,%
+ style=tcblatex,
+ basicstyle=\scriptsize\ttfamily,%
+ tabsize=4,%
+ commentstyle={\itshape\color{gray}},%
+ lastline=148
+ },%
+ breakable,
+ listing only,%
+ listing file={#1}
+}
+
+\NewDocumentCommand\ShowCode{ m }{%
+ \lstinline{#1}%
+}
+
+\begin{document}
+
+\thispagestyle{empty}
+
+\begin{center}
+ \begin{minipage}{0.88\linewidth}
+ \begin{tcolorbox}[colframe=yellow,colback=yellow!15]
+ \begin{center}
+ \renewcommand{\arraystretch}{1.25}%
+ \begin{tabular}{c}
+ {\Huge \texttt{randintlist}}\\
+ \\
+ {\LARGE Creating random integer number lists,} \\
+ {\LARGE with multiple numbers or not,} \\
+ {\LARGE sorted or not.} \\
+ \\
+ {\small \texttt{Version \TPversion{} -- \TPdate}}
+ \end{tabular}
+ \end{center}
+ \end{tcolorbox}
+ \end{minipage}
+\end{center}
+
+\begin{center}
+ \begin{tabular}{c}
+ \texttt{Cédric Pierquet}\\
+ {\ttfamily c pierquet -- at -- outlook . fr}\\
+ \texttt{\url{https://github.com/cpierquet/randintlist}} \\
+ \end{tabular}
+\end{center}
+
+\hrule
+
+\vfill
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+10 numbers, between 1 and 100, without repetition :
+
+\hfill\randintlist[min=1,max=100,nb=10]{\mylist}\textcolor{red}{\mylist}\hfill~
+
+The 5th value is :
+
+\hfill\textcolor{blue}{\getitemfromrandintlist{\mylist}{5}}\hfill~
+\end{tcolorbox}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+10 numbers, between 1 and 100, without multiples of 5 :
+
+\hfill\randintlist[min=1,max=100,nb=10,exclude={5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100}]{\mylist}\textcolor{olive}{\mylist}\hfill~
+
+The 9th value is :
+
+\hfill\textcolor{purple}{\getitemfromrandintlist{\mylist}{9}}\hfill~
+\end{tcolorbox}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+15 numbers, between 1 and 20, with repetition :
+
+\hfill\randintlist[min=1,max=20,nb=15,repeat]{\mylist}\textcolor{red}{\mylist}\hfill~
+
+The last value is :
+
+\hfill\textcolor{blue}{\getitemfromrandintlist{\mylist}{-1}}\hfill~
+\end{tcolorbox}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+6 sorted numbers, between 1 and 51, without repetition :
+
+\hfill\randintlist[min=1,max=51,nb=6,sort=asc]{\mylist}ascending : \textcolor{red}{\mylist}\hfill~
+
+\hfill\randintlist[min=1,max=51,nb=6,sort=des,sep=>]{\mylist}descending : \textcolor{red}{\mylist}\hfill~
+\end{tcolorbox}
+
+\vfill~
+
+\hrule
+
+\medskip
+
+\emph{%
+ The \textsf{luarandom} package do the same things, but with the obligation to compile with \hologo{LuaLaTeX}.
+}
+
+\medskip
+
+\hrule
+
+\vspace*{5mm}
+
+\pagebreak
+
+\phantomsection
+
+\hypertarget{matoc}{}
+
+\tableofcontents
+
+\vspace*{5mm}
+
+%\hrule
+
+\pagebreak
+
+\section{Loading, useful packages}
+
+In order to load \texttt{randintlist}, simply use :
+
+\begin{DemoCode}{listing only}
+\usepackage{randintlist}
+\end{DemoCode}
+
+Loaded packages are \texttt{ifthen}, \texttt{simplekv}, \texttt{listofitems}, \texttt{randomlist}, \texttt{xintexpr} and \texttt{xstring}
+
+\section{The Macros}
+
+\subsection{Global usage}
+
+Package \texttt{randintlist} supports the creation of random integer number lists where a number will appear only once or multiple times. Generated lists can te used with \texttt{listofitems}.
+
+\hfill\textbf{All engines \TeX\ are compatible with this package.}\hfill~
+
+\subsection{Generate the list}
+
+\begin{DemoCode}{listing only}
+%generate list
+\randintlist[keys]{\macro}
+\end{DemoCode}
+
+Available keys are :
+
+\begin{itemize}
+ \item \ShowCode{min} : minimum value (default \ShowCode{1}) ;
+ \item \ShowCode{max} : maximum value (default \ShowCode{50}) ;
+ \item \ShowCode{nb} : number of values (default \ShowCode{6}) ;
+ \item \ShowCode{sep} : separator for the list (default \ShowCode{,}) ;
+ \item \ShowCode{sort} : sorting options, within \ShowCode{no/asc/dec} (default \ShowCode{no}) ;
+ \item \ShowCode{repeat} : boolean to authorize repeating values (default \ShowCode{false}) ;
+ \item \ShowCode{exclude} : list of excluded values (default \ShowCode{empty}) ;
+ \item \ShowCode{seed} : random seed value according to used packages (default \ShowCode{-}).
+\end{itemize}
+
+\begin{DemoCode}{}
+%default values
+\randintlist{\mylistA}\mylistA
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%10 between 1 and 50, with ascending
+\randintlist[sort=asc,min=1,max=50,nb=10]{\mylistB}\mylistB
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%15 between 1 and 50, with ascending and repetitions allowed
+\randintlist[sort=asc,min=1,max=50,nb=15,repeat]{\mylistC}\mylistC
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%15 between 1 and 50, without multiples of 5
+\randintlist[%
+ sort=asc,min=1,max=50,nb=15,repeat,%
+ exclude={5,10,15,20,25,30,35,40,45,50}]%
+ {\mylistC}\mylistC
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%list used with listofitems
+\randintlist{\mylistD}\mylistD\par
+\readlist*\mylistused{\mylistD}\showitems{\mylistused}\par
+\mylistused[1] ; \mylistused[-1]
+\end{DemoCode}
+
+\subsection{Accessing elements}
+
+\begin{DemoCode}{listing only}
+%accessing item
+\getitemfromrandintlist[separator]{\macro}{index}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%with default keys
+\randintlist{\mylistE}raw list : \mylistE\par
+items list :\par
+\xintFor* #1 in {\xintSeq{1}{6}}\do{\getitemfromrandintlist{\mylistE}{#1}\par}
+first element : \getitemfromrandintlist{\mylistE}{1}
+\end{DemoCode}
+
+\subsection{Version française}
+
+Voilà les commandes en version française, la syntaxe et les clés ne seront pas explicitées.
+
+\begin{DemoCode}{listing only}
+%obtenir la liste
+\ListeRandint[Min=..,Max=..,Nb=..,Repet=..,Graine=..,Tri=..,Sep=..,Exclure=..]{\macro}
+
+%extraire un élément
+\ExtraireEltListeRandint[sep]{\macro}{position}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%liste
+\ListeRandint[Min=5,Max=15,Nb=7,Repet,Tri=croiss,Sep={/}]{\maliste}\maliste\\
+%élément
+\ExtraireEltListeRandint[/]{\maliste}{4}
+\end{DemoCode}
+
+\pagebreak
+
+\section{Example}
+
+The following example uses \TikZ, and comes from \texttt{luarandom}'s documentation.
+
+\begin{DemoCode}{}
+\begin{tikzpicture}[scale=0.75]
+ \randintlist[min=1,max=100,nb=100]{\mylistsquare}
+ \draw[thin,gray] (0,0) grid (10,10) ;
+ \foreach \i in {1,...,100}{%
+ \xdef\tmpnumber{\getitemfromrandintlist{\mylistsquare}{\i}}%
+ \xdef\tmpnumberrow{\xinteval{\xintiiRem{\i-1}{10}}}%
+ \xdef\tmpnumbercol{\xinteval{\xintiiQuo{\i-1}{10}}}%
+ \draw ({0.5+\tmpnumbercol},{0.5+\tmpnumberrow}) node {\tmpnumber} ;
+ }%
+\end{tikzpicture}
+\end{DemoCode}
+
+\pagebreak
+
+\section{History}
+
+\texttt{0.1.1 : Possibility to exclude values}
+
+\texttt{0.1.0 : Initial version}
+
+\section{The code}
+
+\DemoCodeFile{randintlist.sty}
+
+\end{document}
diff --git a/macros/latex/contrib/randintlist/tex/randintlist.sty b/macros/latex/contrib/randintlist/tex/randintlist.sty
new file mode 100644
index 0000000000..4c15af336e
--- /dev/null
+++ b/macros/latex/contrib/randintlist/tex/randintlist.sty
@@ -0,0 +1,246 @@
+% Author : C. Pierquet
+% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{randintlist}[2024/09/24 0.1.1 Create a list of random numbers with or without multiple values]
+
+%------History
+% 0.1.1 Possibility to exclude values
+% 0.1.0 Initial version
+
+%------Packages
+\RequirePackage{simplekv}
+\RequirePackage{listofitems}
+\RequirePackage{randomlist}
+\RequirePackage{xintexpr}
+\RequirePackage{xstring}
+\RequirePackage{ifthen}
+
+%-----Macros (latex3) for sorting and seed
+\ExplSyntaxOn
+\cs_new_eq:NN \randintseed \sys_gset_rand_seed:n
+\NewDocumentCommand\intascsortlist{m}
+{
+ \clist_sort:Nn #1
+ {
+ \fp_compare:nNnTF {##1} > {##2}
+ { \sort_return_swapped: }
+ { \sort_return_same: }
+ }
+}
+\NewDocumentCommand\intdessortlist{m}
+{
+ \clist_sort:Nn #1
+ {
+ \fp_compare:nNnTF {##1} < {##2}
+ { \sort_return_swapped: }
+ { \sort_return_same: }
+ }
+}
+\ExplSyntaxOff
+
+%----Internal macro (latex2) for testing if element is in list
+\newcommand\ifintvalueinlist[2]{\IfSubStr{,#2,}{,#1,}}
+
+\newcommand\boolvalueinlist[2]{\IfSubStr{,#2,}{,#1,}{\def\resisinlist{1}}{\def\resisinlist{0}}}
+
+\newcommand\xintifintvalueinlist[4]{%
+ \IfSubStr{,#2,}{,#1,}{\xdef\RESTMPVALUE{1}}{\xdef\RESTMPVALUE{0}}%
+ \xintifboolexpr{ \RESTMPVALUE == 1}{#3}{#4}%
+}
+
+%----Macro for generating
+\defKV[randomlistintegers]{%
+ min=\def\TAEEmin{#1},%
+ max=\def\TAEEmax{#1},%
+ nb=\def\TAEEnb{#1},%
+ sep=\def\TAEEsep{#1},%
+ sort=\def\TAEEtri{#1},%
+ seed=\def\TAEEseed{#1},%
+ exclude=\def\TAEEexcluded{#1}
+}
+
+\setKVdefault[randomlistintegers]{%
+ min=1,%
+ max=50,%
+ nb=6,%
+ sep={,},%
+ sort=no,%
+ repeat=false,%
+ seed={-},%
+ exclude={}
+}
+
+\NewList{tmprandintlist}
+
+\NewDocumentCommand\randintlist{ O{} m }{%1=keys,2=listname
+ \useKVdefault[randomlistintegers]%
+ \setKV[randomlistintegers]{#1}%
+ \ifboolKV[randomlistintegers]{repeat}%repeat or not
+ {%repeat allowed
+ \IfStrEq{\TAEEseed}{-}%
+ {}%
+ {%
+ \randintseed{\TAEEseed}%
+ }%
+ %list creation of first element
+ \def\resisinlist{1}%
+ \whiledo{\resisinlist=1}{%
+ \xdef\tmpresrandint{\fpeval{randint(\TAEEmin,\TAEEmax)}}%
+ \boolvalueinlist{\tmpresrandint}{\TAEEexcluded}%
+ }%
+ \xdef#2{\tmpresrandint}%
+ %list creation of other elements
+ \xintFor* ##1 in {\xintSeq{2}{\TAEEnb}}%
+ \do{%
+ \def\resisinlist{1}%
+ \whiledo{\resisinlist=1}{%
+ \xdef\tmpresrandint{\fpeval{randint(\TAEEmin,\TAEEmax)}}%
+ \boolvalueinlist{\tmpresrandint}{\TAEEexcluded}%
+ }%
+ \xdef#2{#2,\tmpresrandint}%
+ }%
+ }%
+ {%no repeating
+ %randomize numbers
+ \IfStrEq{\TAEEseed}{-}%
+ {}%
+ {%
+ \RLsetrandomseed{\TAEEseed}%
+ }%
+ \ClearList{tmprandintlist}%clearing the list
+ \xintFor* ##1 in {\xintSeq{\TAEEmin}{\TAEEmax}}%
+ \do{%
+ \ifintvalueinlist{##1}{\TAEEexcluded}%
+ {}%
+ {%
+ \InsertRandomItem{tmprandintlist}{##1}%
+ }%
+ }%
+ %list creation (first then other)
+ \xdef#2{\tmprandintlist[0]}%
+ \xintFor* ##1 in {\xintSeq{1}{\TAEEnb-1}}%
+ \do{%
+ \xdef#2{#2,\tmprandintlist[##1]}%
+ }%
+ }%
+ %sorting
+ \IfStrEq{\TAEEtri}{asc}%if ascending
+ {\intascsortlist{#2}}%
+ {}%
+ \IfStrEq{\TAEEtri}{des}%if descending
+ {\intdessortlist{#2}}%
+ {}%
+ \StrSubstitute{#2}{,}{\TAEEsep}[#2]%swipping separator if necessary
+}
+
+%-----Macro for extracting
+\NewDocumentCommand\getitemfromrandintlist{ O{,} m m }{%
+ \IfEq{#1}{/}%
+ {%
+ \setsepchar[.]{#1}%
+ }%
+ {%
+ \setsepchar{#1}%
+ }%
+ \readlist*\TMPLISTRANDINT{#2}%
+ \TMPLISTRANDINT[#3]%
+}
+
+%-----french version
+\defKV[randomlisteentiers]{%
+ Min=\def\TAEEmin{#1},%
+ Max=\def\TAEEmax{#1},%
+ Nb=\def\TAEEnb{#1},%
+ Sep=\def\TAEEsep{#1},%
+ Tri=\def\TAEEtri{#1},%
+ Graine=\def\TAEEseed{#1},%
+ Exclure=\def\TAEEexcluded{#1}
+}
+
+\setKVdefault[randomlisteentiers]{%
+ Min=1,%
+ Max=50,%
+ Nb=6,%
+ Sep={,},%
+ Tri=non,%
+ Repet=false,%
+ Graine={-},%
+ Exclure={}
+}
+
+\NewDocumentCommand\ListeRandint{ O{} m }{%1=keys,2=listname
+ \useKVdefault[randomlisteentiers]%
+ \setKV[randomlisteentiers]{#1}%
+ \ifboolKV[randomlisteentiers]{Repet}%repeat or not
+ {%repeat allowed
+ \IfStrEq{\TAEEseed}{-}%
+ {}%
+ {%
+ \randintseed{\TAEEseed}%
+ }%
+ %list creation of first element
+ \def\resisinlist{1}%
+ \whiledo{\resisinlist=1}{%
+ \xdef\tmpresrandint{\fpeval{randint(\TAEEmin,\TAEEmax)}}%
+ \boolvalueinlist{\tmpresrandint}{\TAEEexcluded}%
+ }%
+ \xdef#2{\tmpresrandint}%
+ %list creation of other elements
+ \xintFor* ##1 in {\xintSeq{2}{\TAEEnb}}%
+ \do{%
+ \def\resisinlist{1}%
+ \whiledo{\resisinlist=1}{%
+ \xdef\tmpresrandint{\fpeval{randint(\TAEEmin,\TAEEmax)}}%
+ \boolvalueinlist{\tmpresrandint}{\TAEEexcluded}%
+ }%
+ \xdef#2{#2,\tmpresrandint}%
+ }%
+ }%
+ {%no repeating
+ %randomize numbers
+ \IfStrEq{\TAEEseed}{-}%
+ {}%
+ {%
+ \RLsetrandomseed{\TAEEseed}%
+ }%
+ \ClearList{tmprandintlist}%clearing the list
+ \xintFor* ##1 in {\xintSeq{\TAEEmin}{\TAEEmax}}%
+ \do{%
+ \ifintvalueinlist{##1}{\TAEEexcluded}%
+ {}%
+ {%
+ \InsertRandomItem{tmprandintlist}{##1}%
+ }%
+ }%
+ %list creation (first then other)
+ \xdef#2{\tmprandintlist[0]}%
+ \xintFor* ##1 in {\xintSeq{1}{\TAEEnb-1}}%
+ \do{%
+ \xdef#2{#2,\tmprandintlist[##1]}%
+ }%
+ }%
+ %sorting
+ \IfStrEq{\TAEEtri}{croiss}%if ascending
+ {\intascsortlist{#2}}%
+ {}%
+ \IfStrEq{\TAEEtri}{decroiss}%if descending
+ {\intdessortlist{#2}}%
+ {}%
+ \StrSubstitute{#2}{,}{\TAEEsep}[#2]%swipping separator if necessary
+}
+
+%-----Macro for extracting
+\NewDocumentCommand\ExtraireEltListeRandint{ O{,} m m }{%
+ \IfEq{#1}{/}%
+ {%
+ \setsepchar[.]{#1}%
+ }%
+ {%
+ \setsepchar{#1}%
+ }%
+ \readlist*\TMPLISTRANDINT{#2}%
+ \TMPLISTRANDINT[#3]%
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/regulatory/README.md b/macros/latex/contrib/regulatory/README.md
index ec9a283dc9..55a5e0f4bf 100644
--- a/macros/latex/contrib/regulatory/README.md
+++ b/macros/latex/contrib/regulatory/README.md
@@ -1,4 +1,5 @@
# Regulatory
+![CTAN Version](https://img.shields.io/ctan/v/regulatory)
A LaTeX package which provides macro's for crafting regulatory documents.
diff --git a/macros/latex/contrib/regulatory/doc/example1-en.pdf b/macros/latex/contrib/regulatory/doc/example1-en.pdf
index 7bac5e0c9b..2c679dbcb1 100644
--- a/macros/latex/contrib/regulatory/doc/example1-en.pdf
+++ b/macros/latex/contrib/regulatory/doc/example1-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/regulatory/doc/example1-en.tex b/macros/latex/contrib/regulatory/doc/example1-en.tex
index eeb17acc99..ae903d7ef0 100644
--- a/macros/latex/contrib/regulatory/doc/example1-en.tex
+++ b/macros/latex/contrib/regulatory/doc/example1-en.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\documentclass[12pt,english]{article}
\usepackage{babel}
\usepackage[alldefs]{regulatory}
diff --git a/macros/latex/contrib/regulatory/doc/example1-nl.pdf b/macros/latex/contrib/regulatory/doc/example1-nl.pdf
index bc3f8b1d53..5bcb030bd8 100644
--- a/macros/latex/contrib/regulatory/doc/example1-nl.pdf
+++ b/macros/latex/contrib/regulatory/doc/example1-nl.pdf
Binary files differ
diff --git a/macros/latex/contrib/regulatory/doc/example1-nl.tex b/macros/latex/contrib/regulatory/doc/example1-nl.tex
index df01669786..513c9bce6e 100644
--- a/macros/latex/contrib/regulatory/doc/example1-nl.tex
+++ b/macros/latex/contrib/regulatory/doc/example1-nl.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\documentclass[12pt,dutch]{article}
\usepackage{babel}
\usepackage[alldefs]{regulatory}
diff --git a/macros/latex/contrib/regulatory/doc/example2-en.pdf b/macros/latex/contrib/regulatory/doc/example2-en.pdf
index e7fdc77178..3362320b7f 100644
--- a/macros/latex/contrib/regulatory/doc/example2-en.pdf
+++ b/macros/latex/contrib/regulatory/doc/example2-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/regulatory/doc/example2-en.tex b/macros/latex/contrib/regulatory/doc/example2-en.tex
index f47f7d0d9e..c800c7672f 100644
--- a/macros/latex/contrib/regulatory/doc/example2-en.tex
+++ b/macros/latex/contrib/regulatory/doc/example2-en.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\documentclass[12pt,english]{article}
\usepackage{babel}
\usepackage{regulatory}
diff --git a/macros/latex/contrib/regulatory/doc/example2-nl.pdf b/macros/latex/contrib/regulatory/doc/example2-nl.pdf
index 6342318259..e2606186ca 100644
--- a/macros/latex/contrib/regulatory/doc/example2-nl.pdf
+++ b/macros/latex/contrib/regulatory/doc/example2-nl.pdf
Binary files differ
diff --git a/macros/latex/contrib/regulatory/doc/example2-nl.tex b/macros/latex/contrib/regulatory/doc/example2-nl.tex
index 071cce4a00..6713495658 100644
--- a/macros/latex/contrib/regulatory/doc/example2-nl.tex
+++ b/macros/latex/contrib/regulatory/doc/example2-nl.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\documentclass[12pt,dutch]{article}
\usepackage{babel}
\usepackage{regulatory}
diff --git a/macros/latex/contrib/regulatory/doc/regulatory-en.pdf b/macros/latex/contrib/regulatory/doc/regulatory-en.pdf
index ac592a4989..c65752a189 100644
--- a/macros/latex/contrib/regulatory/doc/regulatory-en.pdf
+++ b/macros/latex/contrib/regulatory/doc/regulatory-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/regulatory/doc/regulatory-en.tex b/macros/latex/contrib/regulatory/doc/regulatory-en.tex
index 55d4290753..e497d27fd8 100644
--- a/macros/latex/contrib/regulatory/doc/regulatory-en.tex
+++ b/macros/latex/contrib/regulatory/doc/regulatory-en.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\documentclass[10pt,english]{ltxdoc}
%! suppress = InclusionLoop
diff --git a/macros/latex/contrib/regulatory/doc/regulatory-nl.pdf b/macros/latex/contrib/regulatory/doc/regulatory-nl.pdf
index 9d4832ce44..d8ff64100b 100644
--- a/macros/latex/contrib/regulatory/doc/regulatory-nl.pdf
+++ b/macros/latex/contrib/regulatory/doc/regulatory-nl.pdf
Binary files differ
diff --git a/macros/latex/contrib/regulatory/doc/regulatory-nl.tex b/macros/latex/contrib/regulatory/doc/regulatory-nl.tex
index f5c9f47259..c8048c9025 100644
--- a/macros/latex/contrib/regulatory/doc/regulatory-nl.tex
+++ b/macros/latex/contrib/regulatory/doc/regulatory-nl.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\documentclass[10pt,dutch]{ltxdoc}
%! suppress = InclusionLoop
diff --git a/macros/latex/contrib/regulatory/doc/regulatory-preamble.tex b/macros/latex/contrib/regulatory/doc/regulatory-preamble.tex
index 50c6db1bee..0325d5aacf 100644
--- a/macros/latex/contrib/regulatory/doc/regulatory-preamble.tex
+++ b/macros/latex/contrib/regulatory/doc/regulatory-preamble.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\usepackage{gitinfo-lua}
\usepackage{listings}
diff --git a/macros/latex/contrib/regulatory/doc/regulatory.tex b/macros/latex/contrib/regulatory/doc/regulatory.tex
index fbd5d35c3d..55bcbe8c6a 100644
--- a/macros/latex/contrib/regulatory/doc/regulatory.tex
+++ b/macros/latex/contrib/regulatory/doc/regulatory.tex
@@ -19,7 +19,7 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\translation{%
\title{Package \package{regulatory}\thanks{This document corresponds to \textsf{regulatory}~\packageversion, written on \packagedate.}}
}{%
@@ -176,16 +176,14 @@ lualatex main
}{, voor onderdelen.}
\translation{%
For ``subparagraphs'', \cmd{\abalpnum} from the \package{fmtcount}\footnote{%
- The Dutch language definition is currently in progress within the \href{https://github.com/vincentb1/fmtcount/pull/51}{\package{fmtcount}} package.
- In the meantime, this package includes the correct configuration for it.%
- } package is used to enumerate multiple subparagraphs.
+ The Dutch language definition is now included into package \href{https://github.com/Xerdi/fmtcount}{\package{fmtcount}} itself.
+ Be sure to update the package if \texttt{fc-dutch.def} is missing} package is used to enumerate multiple subparagraphs.
Suppose \cmd{\alph} were used; in that case, \option{paras} (second level) would be limited to 26 subparagraphs.
With \cmd{\abalphnum}, for example, with a value of 125, the result is `\texttt{du}'.
}{%
Voor onderdelen wordt er gebruik gemaakt van \cmd{\abalpnum} uit pakket \package{fmtcount}\footnote{%
- De Nederlandse taal definitie is momenteel nog in behandeling bij pakket \href{https://github.com/vincentb1/fmtcount/pull/51}{\package{fmtcount}}.
- In de tussentijd levert dit pakket daarvoor de juist configuratie mee.%
- } om meerdere onderdelen te kunnen opsommen.
+ De Nederlandse taal definitie is nu inbegrepen in pakket \href{https://github.com/Xerdi/fmtcount}{\package{fmtcount}} zelf.
+ Zorg ervoor dat het pakket up to date is als \texttt{fc-dutch.def} mist.} om meerdere onderdelen te kunnen opsommen.
Stel er zou gebruik gemaakt worden van \cmd{\alph}, dan is \option{paras} beperkt tot 26 onderdelen.
Bij \cmd{\abalphnum} met b\ij{}voorbeeld een waarde van 125 is `\texttt{du}' de uitkomst.
}
diff --git a/macros/latex/contrib/regulatory/tex/fc-dutch.def b/macros/latex/contrib/regulatory/tex/fc-dutch.def
deleted file mode 100644
index ee86d49a48..0000000000
--- a/macros/latex/contrib/regulatory/tex/fc-dutch.def
+++ /dev/null
@@ -1,327 +0,0 @@
-%% fc-dutch.def
-%% Copyright 2024 E. Nijenhuis
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3c
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status ‘maintained’.
-%
-% The Current Maintainer of this work is E. Nijenhuis.
-%
-% This work consists of the files regulatory.tex,
-% regulatory-preamble.tex, regulatory-nl.tex, regulatory-en.tex,
-% example1.bib, example2.bib,
-% example1-nl.tex, example2-nl.tex,
-% example1-en.tex, example2-en.tex,
-% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
-\ProvidesFCLanguage{dutch}[2024/01/27]%
-\newcommand{\@ordinalMdutch}[2]{\edef#2{\number#1\relax.}}%
-\global\let\@ordinalMdutch\@ordinalMdutch
-\global\let\@ordinalFdutch\@ordinalMdutch
-\global\let\@ordinalNdutch\@ordinalMdutch
-\newcommand*\@@unitstringdutch[1]{%
- \ifcase#1%
- nul%
- \or een%
- \or twee%
- \or drie%
- \or vier%
- \or vijf%
- \or zes%
- \or zeven%
- \or acht%
- \or negen%
- \fi
-}%
-\global\let\@@unitstringdutch\@@unitstringdutch
-\global\let\@@unitstringdutch\@@unitstringdutch
-\newcommand*\@@tenstringdutch[1]{%
- \ifcase#1%
- \or tien%
- \or twintig%
- \or dertig%
- \or veertig%
- \or vijftig%
- \or zestig%
- \or zeventig%
- \or tachtig%
- \or negentig%
- \or honderd%
- \fi
-}%
-\global\let\@@tenstringdutch\@@tenstringdutch
-\newcommand*\@@teenstringdutch[1]{%
- \ifcase#1%
- tien%
- \or elf%
- \or twaalf%
- \or dertien%
- \or veertien%
- \or vijftien%
- \or zestien%
- \or zeventien%
- \or achttien%
- \or negentien%
- \fi
-}%
-\global\let\@@teenstringdutch\@@teenstringdutch
-\providecommand*{\honderd}{honderd}%
-\providecommand*{\duizend}{duizend}%
-\global\let\honderd\honderd
-\global\let\duizend\duizend
-\newcommand*\@@numberstringdutch[2]{%
- \ifnum#1>99999\relax
- \PackageError{fmtcount}{Out of range}%
- {This macro only works for values less than 100000}%
- \else
- \ifnum#1<0\relax
- \PackageError{fmtcount}{Negative numbers not permitted}%
- {This macro does not work for negative numbers, however
- you can try typing "minus" first, and then pass the modulus of
- this number}%
- \fi
- \fi
- \def#2{}%
- \@strctr=#1\relax \divide\@strctr by 1000\relax
- \ifnum\@strctr>1\relax
- \@@numberunderhundreddutch{\@strctr}{#2}%
- \appto#2{duizend}%
- \else
- \ifnum\@strctr=1\relax
- \eappto#2{\duizend}%
- \fi
- \fi
- \@strctr=#1\relax
- \@FCmodulo{\@strctr}{1000}%
- \divide\@strctr by 100\relax
- \ifnum\@strctr>1\relax
- \eappto#2{\@unitstring{\@strctr}honderd}%
- \else
- \ifnum\@strctr=1\relax
- \ifnum#1>1000\relax
- \appto#2{honderd}%
- \else
- \eappto#2{\honderd}%
- \fi
- \fi
- \fi
- \@strctr=#1\relax
- \@FCmodulo{\@strctr}{100}%
- \ifnum#1=0\relax
- \def#2{null}%
- \else
- \ifnum\@strctr=1\relax
- \appto#2{een}%
- \else
- \@@numberunderhundreddutch{\@strctr}{#2}%
- \fi
- \fi
-}%
-\global\let\@@numberstringdutch\@@numberstringdutch
-\newcommand*{\@numberstringMdutch}[2]{%
- \let\@unitstring=\@@unitstringdutch%
- \let\@teenstring=\@@teenstringdutch%
- \let\@tenstring=\@@tenstringdutch%
- \def\@hundred{honderd}\def\@thousand{duizend}%
- \def\@andname{en}%
- \@@numberstringdutch{#1}{#2}%
-}%
-\global\let\@numberstringMdutch\@numberstringMdutch
-\global\let\@numberstringFdutch=\@numberstringMdutch
-\global\let\@numberstringNdutch=\@numberstringMdutch
-\newcommand*{\@NumberstringMdutch}[2]{%
- \@numberstringMdutch{#1}{\@@num@str}%
- \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}%
-}%
-\global\let\@NumberstringMdutch\@NumberstringMdutch
-\global\let\@NumberstringFdutch=\@NumberstringMdutch
-\global\let\@NumberstringNdutch=\@NumberstringMdutch
-\newcommand*\@@unitthstringdutch[1]{%
- \ifcase#1%
- nulde%
- \or eerste%
- \or tweede%
- \or derde%
- \or vierde%
- \or vijfde%
- \or zesde%
- \or zevende%
- \or achtste%
- \or negende%
- \fi
-}%
-\global\let\@@unitthstringdutch\@@unitthstringdutch
-\newcommand*\@@tenthstringdutch[1]{%
- \ifcase#1%
- \or tiende%
- \or twintigste%
- \or dertigste%
- \or veertigste%
- \or vijftigste%
- \or zestigste%
- \or zeventigste%
- \or tachtigste%
- \or negentigste%
- \fi
-}%
-\global\let\@@tenthstringdutch\@@tenthstringdutch
-\newcommand*\@@teenthstringdutch[1]{%
- \ifcase#1%
- tiende%
- \or elfde%
- \or twaalfde%
- \or dertiende%
- \or veertiende%
- \or vijftiende%
- \or zestiende%
- \or zeventiende%
- \or achttiende%
- \or negentiende%
- \fi
-}%
-\global\let\@@teenthstringdutch\@@teenthstringdutch
-\newcommand*\@@ordinalstringdutch[2]{%
- \@orgargctr=#1\relax
- \ifnum\@orgargctr>99999\relax
- \PackageError{fmtcount}{Out of range}%
- {This macro only works for values less than 100000}%
- \else
- \ifnum\@orgargctr<0\relax
- \PackageError{fmtcount}{Negative numbers not permitted}%
- {This macro does not work for negative numbers, however
- you can try typing "minus" first, and then pass the modulus of
- this number}%
- \fi
- \fi
- \def#2{}%
- \@strctr=\@orgargctr\divide\@strctr by 1000\relax
- \ifnum\@strctr>1\relax
- \@@numberunderhundreddutch{\@strctr}{#2}%
- \@tmpstrctr=\@orgargctr\@FCmodulo{\@tmpstrctr}{1000}%
- \ifnum\@tmpstrctr=0\relax
- \eappto#2{\@thousandth}%
- \else
- \appto#2{duizend}%
- \fi
- \else
- \ifnum\@strctr=1\relax
- \ifnum\@orgargctr=1000\relax
- \eappto#2{\@thousandth}%
- \else
- \eappto#2{\duizend}%
- \fi
- \fi
- \fi
- \@strctr=\@orgargctr%
- \@FCmodulo{\@strctr}{1000}%
- \divide\@strctr by 100\relax
- \ifnum\@strctr>1\relax
- \@tmpstrctr=\@orgargctr \@FCmodulo{\@tmpstrctr}{100}%
- \ifnum\@tmpstrctr=0\relax
- \ifnum\@strctr=1\relax
- \eappto#2{\@hundredth}%
- \else
- \eappto#2{\@unitstring{\@strctr}\@hundredth}%
- \fi
- \else
- \eappto#2{\@unitstring{\@strctr}honderd}%
- \fi
- \else
- \ifnum\@strctr=1\relax
- \@tmpstrctr=\@orgargctr \@FCmodulo{\@tmpstrctr}{100}%
- \ifnum\@tmpstrctr=0\relax
- \eappto#2{\@hundredth}%
- \else
- \ifnum\@orgargctr>1000\relax
- \appto#2{honderd}%
- \else
- \eappto#2{\honderd}%
- \fi
- \fi
- \fi
- \fi
- \@strctr=\@orgargctr%
- \@FCmodulo{\@strctr}{100}%
- \ifthenelse{\@strctr=0 \and \@orgargctr>0 }{}{%
- \@@numberunderhundredthdutch{\@strctr}{#2}%
- }%
-}%
-\global\let\@@ordinalstringdutch\@@ordinalstringdutch
-\newcommand*{\@ordinalstringMdutch}[2]{%
- \let\@unitthstring=\@@unitthstringdutch%
- \let\@teenthstring=\@@teenthstringdutch%
- \let\@tenthstring=\@@tenthstringdutch%
- \let\@unitstring=\@@unitstringdutch%
- \let\@teenstring=\@@teenstringdutch%
- \let\@tenstring=\@@tenstringdutch%
- \def\@thousandth{duizendste}%
- \def\@hundredth{honderdste}%
- \@@ordinalstringdutch{#1}{#2}%
-}%
-\global\let\@ordinalstringMdutch\@ordinalstringMdutch
-\global\let\@ordinalstringFdutch=\@ordinalstringMdutch
-\global\let\@ordinalstringNdutch=\@ordinalstringMdutch
-\newcommand*{\@OrdinalstringMdutch}[2]{%
- \@ordinalstringMdutch{#1}{\@@num@str}%
- \def\@andname{en}%
- \def\@hundred{Honderd}\def\@thousand{Duizend}%
- \def\@hundredth{Honderdste}\def\@thousandth{Duizendste}%
- \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}%
-}%
-\global\let\@OrdinalstringMdutch\@OrdinalstringMdutch
-\global\let\@OrdinalstringFdutch=\@OrdinalstringMdutch
-\global\let\@OrdinalstringNdutch=\@OrdinalstringMdutch
-\newcommand*{\@@numberunderhundreddutch}[2]{%
- \ifnum#1<10\relax
- \ifnum#1>0\relax
- \eappto#2{\@unitstring{#1}}%
- \fi
- \else
- \@tmpstrctr=#1\relax
- \@FCmodulo{\@tmpstrctr}{10}%
- \ifnum#1<20\relax
- \eappto#2{\@teenstring{\@tmpstrctr}}%
- \else
- \ifnum\@tmpstrctr=0\relax
- \else
- \eappto#2{\@unitstring{\@tmpstrctr}en}%
- \fi
- \@tmpstrctr=#1\relax
- \divide\@tmpstrctr by 10\relax
- \eappto#2{\@tenstring{\@tmpstrctr}}%
- \fi
- \fi
-}%
-\global\let\@@numberunderhundreddutch\@@numberunderhundreddutch
-\newcommand*{\@@numberunderhundredthdutch}[2]{%
- \ifnum#1<10\relax
- \eappto#2{\@unitthstring{#1}}%
- \else
- \@tmpstrctr=#1\relax
- \@FCmodulo{\@tmpstrctr}{10}%
- \ifnum#1<20\relax
- \eappto#2{\@teenthstring{\@tmpstrctr}}%
- \else
- \ifnum\@tmpstrctr=0\relax
- \else
- \eappto#2{\@unitstring{\@tmpstrctr}-en-}%
- \fi
- \@tmpstrctr=#1\relax
- \divide\@tmpstrctr by 10\relax
- \eappto#2{\@tenthstring{\@tmpstrctr}}%
- \fi
- \fi
-}%
-\global\let\@@numberunderhundredthdutch\@@numberunderhundredthdutch
-\iffalse Local variables: \fi
-\iffalse mode: docTeX \fi
-\iffalse End: \fi
-\endinput
-%%
-%% End of file `fc-dutch.def'.
diff --git a/macros/latex/contrib/regulatory/tex/regulatory.sty b/macros/latex/contrib/regulatory/tex/regulatory.sty
index 2e89a19a37..2755a8ac9b 100644
--- a/macros/latex/contrib/regulatory/tex/regulatory.sty
+++ b/macros/latex/contrib/regulatory/tex/regulatory.sty
@@ -19,9 +19,9 @@
% example1-nl.tex, example2-nl.tex,
% example1-en.tex, example2-en.tex,
% md-example.tex, example.md,
-% fc-dutch.def and regulatory.sty
+% regulatory.sty
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{regulatory}[2024/01/27 0.0.3 Xerdi's Regulatory Package]
+\ProvidesPackage{regulatory}[2024/09/04 0.0.4 Xerdi's Regulatory Package]
\RequirePackage{pgfopts}
\RequirePackage{xifthen}
diff --git a/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf b/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
index 1ae91515fb..fc1cf0d3af 100644
--- a/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
+++ b/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf b/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
index 58f1d6981d..7454d1cce0 100644
--- a/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf b/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
index ea2f749d32..51238cf571 100644
--- a/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf b/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
index 2d7130fcb9..fa4b8cdbb5 100644
--- a/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-tabular.pdf b/macros/latex/contrib/reledmac/examples/1-tabular.pdf
index d7a945978b..80a889d85b 100644
--- a/macros/latex/contrib/reledmac/examples/1-tabular.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-tabular.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf b/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
index 75b679b50d..4881557ce0 100644
--- a/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-verses.pdf b/macros/latex/contrib/reledmac/examples/1-verses.pdf
index e1d1b6af19..3caf07a14a 100644
--- a/macros/latex/contrib/reledmac/examples/1-verses.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-verses.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-antilabe.pdf b/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
index f7b843c631..7c94d43d13 100644
--- a/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf b/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
index 1c53f875a0..0278d89b9f 100644
--- a/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf b/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
index c9e6daca45..542174e6f0 100644
--- a/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-glossaries.pdf b/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
index f702632cf3..3ecab9d63b 100644
--- a/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-indexing.pdf b/macros/latex/contrib/reledmac/examples/2-indexing.pdf
index ca3b90abcc..607860d6e6 100644
--- a/macros/latex/contrib/reledmac/examples/2-indexing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-indexing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf b/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
index 95a09523d9..26e21be7b9 100644
--- a/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf b/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
index 0021b1cbd3..b1dca2b117 100644
--- a/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-linespacing.pdf b/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
index 67424c3e0c..499104658b 100644
--- a/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf b/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
index 362ff7012a..f5f58e81d6 100644
--- a/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-notes-width.pdf b/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
index 0fe795532a..abaf67b4f6 100644
--- a/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf b/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
index ad48933ba2..3cda9762d0 100644
--- a/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-performances.pdf b/macros/latex/contrib/reledmac/examples/2-performances.pdf
index e68f4f3b49..c543daa168 100644
--- a/macros/latex/contrib/reledmac/examples/2-performances.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-performances.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf b/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
index ed0755c95b..9030d23e94 100644
--- a/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf b/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
index a0e92d1b90..53b0429efc 100644
--- a/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
index 22f3ac9ed3..7872a6a918 100644
--- a/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf b/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
index 6edc466546..d751ef78ff 100644
--- a/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
index ae6daea2f3..d05683ac0a 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
index 65e77b6045..71adb5d7bb 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
index 7864905fc5..3d12b5b07b 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
index 147ece9039..36e5904216 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
index bc2e485aa7..df79382ca8 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
index a53aafd365..d68d98ff29 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
index b873ef2634..448dea3da8 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
index 4437bcd188..37ac4daee6 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
index 0c36cb9564..d69077e19b 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
index 073be3c769..692832cc52 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
index 7a13994ca4..bf85737443 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
index 5dbce10161..e9fb82d345 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
index 4c574e496b..6136c9957b 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
index 012bb74b4e..0fea810dc6 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
index fc67986e5a..b492f69121 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
index 58d08bf3bd..d4643edcb3 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
index 36f6321386..09f3b72602 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
index db1ccbc5a7..4ccf4308cd 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
index d71f06d80e..000ffd301c 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
index c6186efd4d..3baa1de986 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
index a36ab701dd..7a63bced17 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
index 33338d8f63..e68462600d 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
index c8200f5ff5..120bdeb43a 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/migration.pdf b/macros/latex/contrib/reledmac/migration.pdf
index 50d46b721e..1512a20fea 100644
--- a/macros/latex/contrib/reledmac/migration.pdf
+++ b/macros/latex/contrib/reledmac/migration.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/reledmac.dtx b/macros/latex/contrib/reledmac/reledmac.dtx
index 2109ca38b5..8b43d5b6be 100644
--- a/macros/latex/contrib/reledmac/reledmac.dtx
+++ b/macros/latex/contrib/reledmac/reledmac.dtx
@@ -786,7 +786,7 @@
% Briefe}, series {\sc I, III, VII,} being edited by Dr.\ H.\
% Breger\index{Breger, Herbert}, Dr.~N. G\"adeke\index{G\"adeke, Nora} and
% others at the Leibniz-Archiv, Nieders\"achsische Landesbibliothek, Hannover.
-% (see \url{http://www.nlb-hannover.de/Leibniz})}
+% (see \url{https://www.gwlb.de/leibniz/digitale-ressourcen/repositorium-des-leibniz-archivs})}
% Theodosius's\index{Theodosius} {\em Spherics}, the German {\em
% Algorismus} of Sacrobosco,\index{Sacrobosco} the Sanskrit text of the
% {\em K\={a}\'{s}ik\={a}\-v\d{r}tti\/} of V\={a}mana\index{Vamana} and
@@ -3962,7 +3962,7 @@
% & It makes the peas taste funny \\
% & And get my tummy gummy.\edindex{gummy} &
% & But it keeps them on the knife.
-% \end{edtabularr}
+% \end{edtabularl}
% \pend
% \endnumbering
% \end{verbatim}
diff --git a/macros/latex/contrib/reledmac/reledmac.pdf b/macros/latex/contrib/reledmac/reledmac.pdf
index bc1f8b20f9..bf4c1a04d6 100644
--- a/macros/latex/contrib/reledmac/reledmac.pdf
+++ b/macros/latex/contrib/reledmac/reledmac.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/reledpar.dtx b/macros/latex/contrib/reledmac/reledpar.dtx
index aff1d03da1..1d09e9c4ef 100644
--- a/macros/latex/contrib/reledmac/reledpar.dtx
+++ b/macros/latex/contrib/reledmac/reledpar.dtx
@@ -354,6 +354,7 @@
% \changes{v2.25.4}{2023/07/04}{Fix bug with \protect\cs{linenumOnlyPagesForColumnsR} and multiple numbered sections}
% \changes{v2.25.5}{2023/07/20}{Fix bug with hyperlink when using \protect\cs{footnoteXnomk}}
% \changes{v2.25.6}{2024/02/26}{Make \protect\cs{doinsidethislinehook} working on right side}
+% \changes{v2.25.7}{2024/07/23}{Fix compatibility with \protect\package{polyglossia} 2.2}
% ^^A PW added following as the definitions are at some unknown elsewhere
%
% \newcommand{\egstart}{%
@@ -1410,7 +1411,7 @@
% \begin{macrocode}
%<*code>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{reledpar}[2024/05/11 v2.25.6a reledmac extension for parallel texts]%
+\ProvidesPackage{reledpar}[2024/07/23 v2.25.7 reledmac extension for parallel texts]%
% \end{macrocode}
% \subsection{Package's requirement}
@@ -5543,17 +5544,6 @@
% To counter this, we have to make sure that the correct language is
% used at the proper times.
%
-% \begin{macro}{\ifl@dusedbabel}
-% \begin{macro}{\l@dusedbabelfalse}
-% \begin{macro}{\l@dusedbabeltrue}
-% A flag for checking if \verb?babel? has been used as a package.
-% \begin{macrocode}
-\newif\ifl@dusedbabel
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
% \changes{v1.8.0}{2014/08/05}{Suppress \protect\cs{ifl@dsamelang} which did not work and was not logical, because both columns could have the same language but not the main language of the document.}
%
% \begin{macro}{\l@dchecklang}
@@ -5598,20 +5588,18 @@
% Now do the \protect\package{babel} or \protect\package{polyglossia} fix or, if necessary.
% \begin{macrocode}
\AtBeginDocument{%
- \@ifundefined{xpg@main@language}{%
+ \@ifpackageloaded{babel}{%
\@ifundefined{bbl@main@language}{%
% \end{macrocode}
% Either \protect\package{babel} has not been used or it has been used with no
% specified language.
% \begin{macrocode}
- \l@dusedbabelfalse
}{%
% \end{macrocode}
% Here we deal with the case where babel has been used. \protect\cs{selectlanguage}
% has to be redefined to use our version of \protect\cs{bbl@set@language} and to
% store the left or right language.
% \begin{macrocode}
- \l@dusedbabeltrue
\let\l@doldselectlanguage\selectlanguage
\let\l@doldbbl@set@language\bbl@set@language
\renewcommand{\selectlanguage}[1]{%
@@ -5635,7 +5623,7 @@
\gdef\theledlanguageL{\bbl@main@language}%
\gdef\theledlanguageR{\bbl@main@language}%
}%
- }
+ }{}%
% \end{macrocode}
% If use \protect\package{polyglossia}
% \changes{v1.8.0}{2014/08/05}{Correct left/right language setting with polyglossia.}
@@ -5643,25 +5631,28 @@
% \changes{v2.22.4}{2019/11/04}{Provide compatibility with the latest version of polyglossia (v1.45).}
% \changes{v2.23.0}{2020/03/08}{Restore compatibility with versions of polyglossia prior to v1.45.}
% \begin{macrocode}
- {%
- \@ifpackagelater{polyglossia}{2022/04/10}{}{\led@err@polyglossiaTooOld}%
- \let\old@otherlanguage\otherlanguage%
- \renewcommand{\otherlanguage}[2][]{%
- \selectlanguage[#1]{#2}%
- \xpg@set@language@only@aux[#1]{#2}%
- \ifledRcol \gdef\theledlanguageR{#2}%
- \else \gdef\theledlanguageL{#2}%
- \fi}%
+ \@ifpackageloaded{polyglossia}{%
+ \@ifpackagelater{polyglossia}{2024/07/15}{}{\led@err@polyglossiaTooOld}%
\renewcommand{\l@duselanguage}[1]{%
\csuse{no\languagename @numbers}%
- \expandafter\@select@language\expandafter{#1}%
+ \selectlanguage*{#1}%
+ }%
+ \AddToHook{env/Leftside/begin}{%
+ \AddToHookNext{cmd/polyglossia@language@switched/after}{%
+ \xdef\theledlanguageL{\languagename}%
+ }%
}%
- \xdef\theledlanguageL{\xpg@main@language}%
- \xdef\theledlanguageR{\xpg@main@language}%
+ \AddToHook{env/Rightside/begin}{%
+ \AddToHookNext{cmd/polyglossia@language@switched/after}{%
+ \xdef\theledlanguageR{\languagename}%
+ }%
+ }%
+ \xdef\theledlanguageL{\mainlanguagename}%
+ \xdef\theledlanguageR{\mainlanguagename}%
% \end{macrocode}
% That is it.
% \begin{macrocode}
- }%
+ }{}%
}%
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex/contrib/reledmac/reledpar.pdf b/macros/latex/contrib/reledmac/reledpar.pdf
index 84a3fd4ec0..09730ec178 100644
--- a/macros/latex/contrib/reledmac/reledpar.pdf
+++ b/macros/latex/contrib/reledmac/reledpar.pdf
Binary files differ
diff --git a/macros/latex/contrib/reptheorem/reptheorem.dtx b/macros/latex/contrib/reptheorem/reptheorem.dtx
index d96f740fec..e26daf2f5a 100644
--- a/macros/latex/contrib/reptheorem/reptheorem.dtx
+++ b/macros/latex/contrib/reptheorem/reptheorem.dtx
@@ -12,7 +12,7 @@
%
% This work has the LPPL maintenance status `maintained'.
%
-% The Current Maintainer of this work is Jesse Sraat.
+% The Current Maintainer of this work is Jesse Straat.
%
% This work consists of the main file reptheorem.dtx
% and the derived files
@@ -89,7 +89,7 @@ License: [LPPL1.3c](https://www.latex-project.org/lppl.txt)
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: reptheorem 2024-03-27 v1.0}
+\Msg{* Package: reptheorem 2024-09-22 v1.2}
\Msg{************************************************************************}
\keepsilent
@@ -109,7 +109,7 @@ version 2008 or later.
This work has the LPPL maintenance status `maintained'.
-The Current Maintainer of this work is Jesse Sraat.
+The Current Maintainer of this work is Jesse Straat.
This work consists of the main file reptheorem.dtx
and the derived files
@@ -199,7 +199,7 @@ colorlinks,
% \date{\filedate}
%
% \maketitle
-%
+%^^A
% \begin{abstract}
% \noindent When writing a large manuscript, it is sometimes
% beneficial to repeat a theorem (or lemma or \dots) at
@@ -211,21 +211,21 @@ colorlinks,
% of the |.aux| file, and also introduces its own file
% extension, |.thm|, to replicate theorems in other files.
% \end{abstract}
-%
+%^^A
% \tableofcontents
-%
+%^^A
%\changes{v1.0}{2024-03-27}{First public release}
-%
-%
-%
+%^^A
+%^^A
+%^^A
%\StopEventually{^^A
% \PrintChanges
% \PrintIndex
%}
-%
-%
-%
-%
+%^^A
+%^^A
+%^^A
+%^^A
% \section{Repeating theorems}
% Let's say we define a theorem as follows:
% \begin{verbatim}
@@ -246,9 +246,9 @@ colorlinks,
% environment \DescribeEnv{makethm} |makethm| is
% used for.
% \begin{verbatim}
-% \begin{makethm}{theorem}{thm:Yoneda}[Yoneda Lemma]{
+% \begin{makethm}{theorem}{thm:Yoneda}[Yoneda Lemma]
% For \(F\colon \mathcal{C}\to \mathbf{Set}\) a functor,
-% \([\mathcal{C}^\mathrm{op},\mathbf{Set}](YA, F) \cong F(A)\)%
+% \([\mathcal{C}^\mathrm{op},\mathbf{Set}](YA, F) \cong F(A)\)
% for all objects \(A\) in \(\mathcal{C}\).
% \end{makethm}
% \end{verbatim}
@@ -257,55 +257,55 @@ colorlinks,
% difference is that we have saved the theorem for later use.\par
% The |makethm| environment takes two mandatory arguments
% and one optional one. The first mandatory argument is the
-% type of theorem environment, like |theorem|, |lemma|,
+% type of theorem environment as defined in \textsf{amsthm}, like |theorem|, |lemma|,
% |definition|, etc. The second is the theorem's label.
-% The label is mandatory because to replicate the theorem,
+% The label is mandatory since, to replicate the theorem,
% we need to have a ``name'' attached to it. |makethm|
% automatically attaches a |\label|, as well, so |\ref{thm:Yoneda}|
% becomes \ref{thm:Yoneda}. The optional argument is passed
% right to the optional argument of the theorem environment,
-% giving the name of a theorem\par
-%
+% giving the theorem a name.\par
+%^^A
% Now let's say we want to replicate the theorem later
% or earlier in the text. This may be done if, for example,
% the theorem is proven at a later point, or we want to
% ``tease'' the reader with a powerful theorem that will be
% proven later in the chapter. To do this, we use the
-% \DescribeMacro{repthm} command, as follows.
-% \begin{verbatim}
-% \repthm{theorem}{thm:Yoneda}
-% \end{verbatim}
+% \DescribeMacro{\repthm} |\repthm| command: |\repthm{thm:Yoneda}|.
% This outputs the theorem again.
-% \repthm{theorem}{thm:Yoneda}
+% \repthm{thm:Yoneda}
% The label of this theorem is a |\ref|, and automatically
% links to the original theorem statement.\par
% If the original theorem statement exists in a different
% file, or has not been created yet, we can add a placeholder
% alt text to the |\repthm| as an optional argument, which
% only displays if the theorem is undefined. For example,
-% |\repthm{theorem}{thm:foo}[bar]| returns
-% \repthm{theorem}{thm:foo}[bar]
-% If we do the same without providing an alt text, we get
-% \repthm{theorem}{thm:foo}
-% together with a warning.\par
+% |\repthm{thm:foo}[bar]| returns
+% \repthm{thm:foo}[bar]
+% \noindent If we do the same without providing an alt text, we get
+% \repthm{thm:foo}
+% \noindent together with a warning: ``Package \textsf{reptheorem}: Theorem |thm:foo|
+% not defined; rebuild your project. If the issue persists, create the theorem
+% using |\begin{makethm}| or consider adding alt text to |\repthm| using the optional
+% parameter.''\par
% Since we're using the |.aux| file, it is possible
% to replicate a theorem before it is stated. For example,
% \begin{verbatim}
-% \repthm{theorem}{thm:later}
-% \begin{makethm}{theorem}{thm:later}[Later]
+% \repthm{thm:later}
+% \begin{makethm}{theorem}{thm:later}
% Alligator!
% \end{makethm}
% \end{verbatim}
% returns
-% \repthm{theorem}{thm:later}
-% \begin{makethm}{theorem}{thm:later}[Later]
+% \repthm{thm:later}
+% \begin{makethm}{theorem}{thm:later}
% Alligator
% \end{makethm}
% Note that it is necessary to run a |.tex| file twice
% to replicate theorems ahead of time, similarly to
% how one has to run a file twice to make sure the
% references are correct.\par
-%
+%^^A
% \section{Replicating theorems between files}
% Let's say we have the following files for our project:
% \begin{verbatim}
@@ -328,7 +328,7 @@ colorlinks,
% In our example, if we also defined a |thm:baz| in |foo.tex|,
% loading |bar.thm| into |foo.tex| will not overwrite the local
% |thm:baz|.
-%
+%^^A
% \subsection{Replicating theorems to subfiles}
% Replicating theorems to different files is particularly
% useful when working in big documents with multiple subfiles.
@@ -346,15 +346,14 @@ colorlinks,
% |foo.tex| and |bar.tex|. This will allow us to
% use all theorems in the final |main.tex| in each of
% the subfiles.
-%
-%
-%
+%^^A
+%^^A
+%^^A
% \section{Source code}
% \begin{macrocode}
%<*package>
-\ProvidesPackage{reptheorem}[2024-03-27 v1.0 Reptheorem package]
+\ProvidesPackage{reptheorem}[2024-09-22 v1.2 Reptheorem package]
% \end{macrocode}
-%
% \begin{macro}{\theoremfile}
% Using |\theoremfile| will output all saved theorems into an output file.
% By default, if your \LaTeX file is |foo.tex|, the output file is |foo.thm|.
@@ -369,7 +368,6 @@ colorlinks,
}
% \end{macrocode}
% \end{macro}
-%
% \begin{macro}{\loadtheorems}
% If you have exported saved theorems to a file, you can load them
% into another file using the macro |\loadtheorems|.
@@ -385,8 +383,11 @@ colorlinks,
}
% \end{macrocode}
% \end{macro}
-%
% \begin{environment}{makethm}
+% \changes{v1.1}{2024/05/03}{Now saves theorem environment type, breaking backwards compatibility}
+% \changes{v1.2}{2024/09/21}{Environment end moved to fix vertical spacing.}
+% \changes{v1.2}{2024/09/22}{Theorem name is only saved if it exists.}
+% \changes{v1.2}{2024/09/22}{Renamed theorem output variable to be unique for each theorem.}
% On to defining the actual theorems to be saved.
% \begin{macrocode}
\NewDocumentEnvironment{makethm}{ m m o +b }
@@ -401,86 +402,97 @@ colorlinks,
}{
\begin{#1}\label{#2}
}
- #4
+ % \begin{theorem}
+ #4
+ \expandafter\gdef\csname thmtype@#2\endcsname{#1}%
+ \expandafter\long\expandafter\gdef\csname thm@#2\endcsname{#4}%
+ \IfValueT{#3}{% Only save theorem name if it exists
+ \expandafter\gdef\csname thmdesc@#2\endcsname{#3}%
+ }
+ % Saving parameters to aux file
+ \expandafter\long\expandafter\gdef\csname thmoutput@#2\endcsname{%
+ \string\expandafter\string\gdef\noexpand%
+ \csname thmtype@#2\string\endcsname{#1}%
+ ^^J%
+ \string\expandafter\string\long\string\expandafter%
+ \string\gdef\noexpand\csname thm@#2\string\endcsname{#4}%
+ \IfValueT{#3}{
+ ^^J%
+ \string\expandafter\string\gdef\noexpand%
+ \csname thmdesc@#2\string\endcsname{#3}%
+ }
+ }
+ \write\@auxout{\csname thmoutput@#2\endcsname}
+ \if\reptheorem@theoremfile\relax
+ % No file has been set
+ \else
+ % We have a theorem file
+ % Saving parameters to theorem file
+ \write\@thmlist{\csname thmoutput@#2\endcsname}
+ \fi
\end{#1}
- \expandafter\long\expandafter\gdef\csname thm@#2\endcsname{#4}%
- \expandafter\gdef\csname thmdesc@#2\endcsname{#3}%
- % Saving parameters to aux file
- \long\gdef\@thmoutput{%
- \string\expandafter\string\long\string\expandafter%
- \string\gdef\noexpand\csname thm@#2\string\endcsname{#4}%
- ^^J%
- \string\expandafter\string\expandafter%
- \string\gdef\noexpand\csname thmdesc@#2\string\endcsname{#3}%
- }
- \write\@auxout{\@thmoutput}
- \if\reptheorem@theoremfile\relax
- % No file has been set
- \else
- % We have a theorem file
- % Saving parameters to theorem file
- \write\@thmlist{\@thmoutput}
- \fi
}{}
% \end{macrocode}
% \end{environment}
-%
% \begin{macro}{\repthm}
+% \changes{v1.1}{2024/05/03}{Now saves theorem environment type, breaking backwards compatibility}
+% \changes{v1.2}{2024/09/22}{Fixed bug where theorems got a name even if undefined.}
% To repeat a theorem, use the |\repthm| command.
-% The type of theorem is not saved, so it is necessary to
-% respecify it each time a theorem is repeated.
% \begin{macrocode}
\newcounter{old@counter}
-\NewDocumentCommand{\repthm}{ m m +o }{
- % m: the type of theorem environment
+\NewDocumentCommand{\repthm}{ m +o }{
% m: the name of the theorem
% o: alt text
\begingroup
- \setcounter{old@counter}{\value{#1}}
+ % Check if thmtype is given
+ \ifcsname thmtype@#1\endcsname%
+ \expandafter\let\expandafter\@@thmtype\csname thmtype@#1\endcsname%
+ \else%
+ \def\@@thmtype{theorem}%
+ \fi%
+ %
% Save theorem counter so we don't increase it
- \def\thetheorem{\ref{#2}}
+ \setcounter{old@counter}{\value{\@@thmtype}}
+ \def\thetheorem{\ref{#1}}
\let\@@theoremnotdefined\relax
%
- \ifcsname thm@#2\endcsname% Check if theorem is even defined
+ \ifcsname thm@#1\endcsname% Check if theorem is even defined
% Theorem is defined
- \expandafter\edef\expandafter\@@thmdesc{\csname thmdesc@#2\endcsname}%
- \expandafter\let\expandafter\@@thm\csname thm@#2\endcsname
+ \expandafter\let\expandafter\@@thm\csname thm@#1\endcsname
% Output theorem
- \IfValueTF{\@@thmdesc}{% Check if theorem has name
- \begin{#1}[\@@thmdesc]
+ \ifcsname thmdesc@#1\endcsname % Check if theorem has name
+ \begin{\@@thmtype}[\csname thmdesc@#1\endcsname]
\@@thm
- \end{#1}
- }{% No optionals
- \begin{#1}
+ \end{\@@thmtype}
+ \else % No optionals
+ \begin{\@@thmtype}
\@@thm
- \end{#1}
- }
+ \end{\@@thmtype}
+ \fi
\else
% Theorem undefined
- \IfValueTF{#3}{
- \begin{#1}
- #3
- \end{#1}
+ \IfValueTF{#2}{
+ \begin{\@@thmtype}
+ #2
+ \end{\@@thmtype}
}{% No theorem or alt text provided: throw warning
- \begin{#1}
- \end{#1}
+ \begin{\@@thmtype}
+ \end{\@@thmtype}
\PackageWarning{reptheorem}{%
- Theorem #2 not defined; rebuild your project.
+ Theorem #1 not defined; rebuild your project.
If the issue persists, create the theorem using
\begin{makethm} or consider adding alt text to \repthm
using the optional parameter%
}
}
\fi
- \setcounter{#1}{\value{old@counter}}
+ \setcounter{\@@thmtype}{\value{old@counter}}
% Reset theorem counter back to original
\endgroup
}
% \end{macrocode}
% \end{macro}
-
-
% \begin{macrocode}
%</package>
% \end{macrocode}
-%\Finale
+%\Finale \ No newline at end of file
diff --git a/macros/latex/contrib/reptheorem/reptheorem.ins b/macros/latex/contrib/reptheorem/reptheorem.ins
index c85a0d2ff3..cf6d514b27 100644
--- a/macros/latex/contrib/reptheorem/reptheorem.ins
+++ b/macros/latex/contrib/reptheorem/reptheorem.ins
@@ -18,7 +18,7 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainer of this work is Jesse Sraat.
+%% The Current Maintainer of this work is Jesse Straat.
%%
%% This work consists of the main file reptheorem.dtx
%% and the derived files
@@ -27,7 +27,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: reptheorem 2024-03-27 v1.0}
+\Msg{* Package: reptheorem 2024-09-22 v1.2}
\Msg{************************************************************************}
\keepsilent
@@ -47,7 +47,7 @@ version 2008 or later.
This work has the LPPL maintenance status `maintained'.
-The Current Maintainer of this work is Jesse Sraat.
+The Current Maintainer of this work is Jesse Straat.
This work consists of the main file reptheorem.dtx
and the derived files
diff --git a/macros/latex/contrib/reptheorem/reptheorem.pdf b/macros/latex/contrib/reptheorem/reptheorem.pdf
index 31caef6e5d..55b369d620 100644
--- a/macros/latex/contrib/reptheorem/reptheorem.pdf
+++ b/macros/latex/contrib/reptheorem/reptheorem.pdf
Binary files differ
diff --git a/macros/latex/contrib/rpgicons/README.md b/macros/latex/contrib/rpgicons/README.md
index e889b70b03..6de01a2586 100644
--- a/macros/latex/contrib/rpgicons/README.md
+++ b/macros/latex/contrib/rpgicons/README.md
@@ -1,4 +1,4 @@
-![Version 1.8.3](https://img.shields.io/badge/version-1.8.3-blue)
+![Version 1.8.4](https://img.shields.io/badge/version-1.8.4-blue)
<img width="200" alt="rpgicons-example" src="https://github.com/jasperhabicht/rpgicons/assets/6378801/81a1d0aa-7a4f-4f83-bbdc-3bc3332023b2" />
diff --git a/macros/latex/contrib/rpgicons/rpgicons-doc.pdf b/macros/latex/contrib/rpgicons/rpgicons-doc.pdf
index 7fa0c036d7..dc0bce82b9 100644
--- a/macros/latex/contrib/rpgicons/rpgicons-doc.pdf
+++ b/macros/latex/contrib/rpgicons/rpgicons-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/rpgicons/rpgicons-doc.tex b/macros/latex/contrib/rpgicons/rpgicons-doc.tex
index 7eef59a1a4..9aebfdcd52 100644
--- a/macros/latex/contrib/rpgicons/rpgicons-doc.tex
+++ b/macros/latex/contrib/rpgicons/rpgicons-doc.tex
@@ -11,8 +11,8 @@
% This work has the LPPL maintenance status `maintained'.
%
\documentclass[a4paper]{article}
-\def\rpgiconsfileversion{1.8.3}
-\def\rpgiconsfiledate{15 May 2024}
+\def\rpgiconsfileversion{1.8.4}
+\def\rpgiconsfiledate{8 August 2024}
\usepackage[T1]{fontenc}
\usepackage{Alegreya}
@@ -262,6 +262,7 @@
\changes{v1.8.0}{2024/03/24}{Unified wrapper to load either package variant.}
\changes{v1.8.2}{2024/04/28}{Roll dice syntax for PGF variant.}
\changes{v1.8.3}{2024/05/15}{Minor compatibility fix. Example of how to use pics added to ducumentation.}
+\changes{v1.8.3}{2024/05/15}{Bug fix in evocation spellschool shape. Unification of frames in PGF and L3 variants.}
\begin{document}
diff --git a/macros/latex/contrib/rpgicons/rpgicons-l3.sty b/macros/latex/contrib/rpgicons/rpgicons-l3.sty
index 3103502bf3..cc33d61bf2 100644
--- a/macros/latex/contrib/rpgicons/rpgicons-l3.sty
+++ b/macros/latex/contrib/rpgicons/rpgicons-l3.sty
@@ -10,8 +10,8 @@
%
% This work has the LPPL maintenance status `maintained'.
%
-\ProvidesExplPackage {rpgicons-l3} {2024-05-15} {1.8.3}
- {rpg Icons Package (l3 Variant)}
+\ProvidesExplPackage {rpgicons-l3} {2024-08-08} {1.8.4}
+ {RPG Icons Package (l3 Variant)}
\bool_new:N \l__rpgicons_unicode_mode_bool
\sys_if_engine_luatex:T {
@@ -792,22 +792,22 @@
\draw_path_lineto:n { 0cm , -.425cm }
\draw_path_moveto:n { -.425cm , 0cm }
\draw_path_lineto:n { .425cm , 0cm }
- \draw_path_moveto:n { \draw_point_polar:nnn { 30 } { .325cm } { .225cm } }
- \draw_path_lineto:n { \draw_point_polar:nn { 30 } { .4cm} }
- \draw_path_moveto:n { \draw_point_polar:nnn { 60 } { .325cm } { .225cm } }
- \draw_path_lineto:n { \draw_point_polar:nn { 60 } { .4cm} }
- \draw_path_moveto:n { \draw_point_polar:nnn { 120 } { .325cm } { .225cm } }
- \draw_path_lineto:n { \draw_point_polar:nn { 120 } { .4cm} }
- \draw_path_moveto:n { \draw_point_polar:nnn { 150 } { .325cm } { .225cm } }
- \draw_path_lineto:n { \draw_point_polar:nn { 150 } { .4cm} }
- \draw_path_moveto:n { \draw_point_polar:nnn { 210 } { .325cm } { .225cm } }
- \draw_path_lineto:n { \draw_point_polar:nn { 210 } { .4cm} }
- \draw_path_moveto:n { \draw_point_polar:nnn { 240 } { .325cm } { .225cm } }
- \draw_path_lineto:n { \draw_point_polar:nn { 240 } { .4cm} }
- \draw_path_moveto:n { \draw_point_polar:nnn { 300 } { .325cm } { .225cm } }
- \draw_path_lineto:n { \draw_point_polar:nn { 300 } { .4cm} }
- \draw_path_moveto:n { \draw_point_polar:nnn { 330 } { .325cm } { .225cm } }
- \draw_path_lineto:n { \draw_point_polar:nn { 330 } { .4cm} }
+ \draw_path_moveto:n { \draw_point_polar:nnn { .325cm } { .225cm } { 30 } }
+ \draw_path_lineto:n { \draw_point_polar:nn { .4cm } { 30 } }
+ \draw_path_moveto:n { \draw_point_polar:nnn { .325cm } { .225cm } { 60 } }
+ \draw_path_lineto:n { \draw_point_polar:nn { .4cm } { 60 } }
+ \draw_path_moveto:n { \draw_point_polar:nnn { .325cm } { .225cm } { 120 } }
+ \draw_path_lineto:n { \draw_point_polar:nn { .4cm } { 120 } }
+ \draw_path_moveto:n { \draw_point_polar:nnn { .325cm } { .225cm } { 150 } }
+ \draw_path_lineto:n { \draw_point_polar:nn { .4cm } { 150 } }
+ \draw_path_moveto:n { \draw_point_polar:nnn { .325cm } { .225cm } { 210 } }
+ \draw_path_lineto:n { \draw_point_polar:nn { .4cm } { 210 } }
+ \draw_path_moveto:n { \draw_point_polar:nnn { .325cm } { .225cm } { 240 } }
+ \draw_path_lineto:n { \draw_point_polar:nn { .4cm } { 240 } }
+ \draw_path_moveto:n { \draw_point_polar:nnn { .325cm } { .225cm } { 300 } }
+ \draw_path_lineto:n { \draw_point_polar:nn { .4cm } { 300 } }
+ \draw_path_moveto:n { \draw_point_polar:nnn { .325cm } { .225cm } { 330 } }
+ \draw_path_lineto:n { \draw_point_polar:nn { .4cm } { 330 } }
}
\cs_new:Npn \rpgicons_draw_shape_illusion: {
@@ -1546,7 +1546,7 @@
}
\cs_new:Npn \rpgicons_draw_frame_damage: {
- \draw_path_circle:nn { 0cm , 0cm } { .45cm }
+ \draw_path_circle:nn { 0cm , 0cm } { .5cm }
}
% USER COMMANDS
@@ -1910,7 +1910,7 @@
}
\cs_if_exist:NF \spell { \cs_new_eq:NN \spell \RPGIconsSpell }
-\NewDocumentCommand { \RPGIconsSpellschool } { O{positive} m O{} } {
+\NewDocumentCommand { \RPGIconsSpellschool } { O{negative} m O{} } {
\group_begin:
\keys_set_groups:nne { rpgicons / local ~ options } { extra } {#3}
\keys_set:ne { rpgicons / local ~ options } { \clist_use:Nn \l_rpgicons_types_every_spellschool_style_clist { , } }
diff --git a/macros/latex/contrib/rpgicons/rpgicons-pgf.sty b/macros/latex/contrib/rpgicons/rpgicons-pgf.sty
index 0e0c037187..dd75a7b4c0 100644
--- a/macros/latex/contrib/rpgicons/rpgicons-pgf.sty
+++ b/macros/latex/contrib/rpgicons/rpgicons-pgf.sty
@@ -11,7 +11,7 @@
% This work has the LPPL maintenance status `maintained'.
%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{rpgicons-pgf}[2024-05-15 rpg Icons Package (PGF Variant) (1.8.3)]
+\ProvidesPackage{rpgicons-pgf}[2024-08-08 RPG Icons Package (PGF Variant) (1.8.4)]
% provide pics option
\newif\ifrpgicons@pics\rpgicons@picsfalse
diff --git a/macros/latex/contrib/rpgicons/rpgicons.sty b/macros/latex/contrib/rpgicons/rpgicons.sty
index 8079232a4f..63a5fa2fc0 100644
--- a/macros/latex/contrib/rpgicons/rpgicons.sty
+++ b/macros/latex/contrib/rpgicons/rpgicons.sty
@@ -10,8 +10,8 @@
%
% This work has the LPPL maintenance status `maintained'.
%
-\ProvidesExplPackage {rpgicons} {2024-05-15} {1.8.3}
- {rpg Icons Package}
+\ProvidesExplPackage {rpgicons} {2024-08-08} {1.8.4}
+ {RPG Icons Package}
\bool_new:N \l__rpgicons_use_legacy_variant_bool
\clist_new:N \l__rpgicons_forwarded_options_clist
diff --git a/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte-example.pdf b/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte-example.pdf
index 891c9e8e97..0cbc015c8a 100644
--- a/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte-example.pdf
+++ b/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.dtx b/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.dtx
index 5423d5babe..d41d99379d 100644
--- a/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.dtx
+++ b/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.dtx
@@ -29,10 +29,15 @@
%<class>\NeedsTeXFormat{LaTeX2e}[2022-06-01]
%<class>\ProvidesClass{rub-kunstgeschichte}
%<*class>
- [2024-05-26 v0.1.0 RUB KGI class]
+ [2024-09-06 v0.2.0 RUB Kunstgeschichte class]
%</class>
%<*driver>
\documentclass{ltxdoc}
+
+%^^A Load packages needed for the documentation
+\usepackage{dtxdescribe}
+\fvset{commandchars={|()}}
+
\EnableCrossrefs
\CodelineIndex
\RecordChanges
@@ -51,16 +56,15 @@
%
% \DoNotIndex{\newcommand,\newenvironment}
% \DoNotIndex{\begin,\end}
+% \DoNotIndex{\fi}
+% \DoNotIndex{\section,\subsection,\subsubsection}
+% \DoNotIndex{\title,\author,\tableofcontents}
+% \DoNotIndex{\LaTeX,\verb}
%
%^^A define helper commands for consistent typesetting in the documentation
-% \def\env{\texttt}
-% \def\opt{\texttt}
-% \def\cls{\textsf}
-% \def\pkg{\textsf}
-% \def\prg{\textsf}
% \DeclareDocumentCommand\email{m}{\href{mailto:#1}{\nolinkurl{#1}}}
%
-% \title{The \cls{\jobname} class^^A
+% \title{The \pkg{\jobname} class^^A
% \thanks{This document corresponds to \pkg{\jobname}~\fileversion,
% dated \filedate.}}
% \author{\copyright{} Joran Schneyer^^A
@@ -70,6 +74,7 @@
% \date{\filedate}
%
% \maketitle
+% \tableofcontents
%
% \section{Introduction}\label{sec:introduction}
%
@@ -84,9 +89,64 @@
%
% To use this class, simply specify it as the document class.^^A
% \footnote{You can also find a complete example usage of this class in \autoref{sec:example}.}
-% \begin{verbatim}
+% \begin{sourceverb}
% \documentclass{rub-kunstgeschichte}
-% \end{verbatim}
+% \end{sourceverb}
+%
+% \subsection{Caveats}
+% When using this class, some packages are loaded automatically with options (see also \autoref{sec:implementation:package-loading}).
+% That means that you can't reload the same package with different options without risking an option clash error.
+% The relevant packages offer other ways to change their options in the preamble:
+%
+% \DescribePackage{biblatex}
+% Customize citations and bibliography.
+%
+% \verb|\ExecuteBibliographyOptions|\oarg{entrytype}\marg{options} can be used to set most options,
+% but some can only be set at the time of loading the \pkg{biblatex} package.
+% Those can be set in the class options using the \optn{biblatex} key (see also \autoref{sec:usage:class-options}).
+%
+% \DescribePackage{hyperref}
+% Customize behavior of clickable elements and pdf meta-data.
+%
+% \verb|\hypersetup|\marg{options} should be used for nearly all options.
+% The few options that can only be given at load time of the package have to be passed along using the \optn{hyperref} class option (see also \autoref{sec:usage:class-options}).
+%
+% \DescribePackage{setspace}
+% Overwrite the 1.5 line-spacing setting.
+%
+% Either \verb|\singlespacing|,
+% \verb|\doublespacing|
+% or for custom spacing factors also
+% \verb|\setstretch|\marg{baselinestretch}.
+%
+% \DescribePackage{geometry}
+% Overwrite geometry options such as the page margin settings.
+%
+% \verb|\geometry|\marg{options}
+%
+% \subsection{Class options}\label{sec:usage:class-options}
+% You can pass several \meta{options} to the class by using
+% \begin{sourceverb}
+% \documentclass|oarg(options){rub-kunstgeschichte}
+% \end{sourceverb}
+% The \meta{options} are key/value pairs that sometimes defer to a default value when only the key is given.
+%
+% \DescribeOption{biblatex}
+% Pass along options to the \pkg{biblatex} package. They overwrite default options set by this class.
+%
+% \DescribeOption{hyperref}
+% Pass along options to the \pkg{biblatex} package. They do \textbf{not} overwrite default options set by this class as they are set after loading the package using the \verb|\hypersetup| command.
+% To overwrite them, use \verb|\hypersetup|\marg{options} in the preamble.
+%
+% \DescribeOption{parskip}
+% \DescribeDefault{\optn{true}}
+% Specify wether to load the \pkg{parskip} package to remove indentation at the start of paragraphs.
+%
+% \DescribeOption{noparskip}
+% \DescribeDefault{\optn{true}}
+% The complementary option to the \optn{parskip} option.
+%
+% If neither \optn{parksip} nor \optn{noparskip} are given, the \pkg{parskip} package is automatically loaded by default.
%
% \StopEventually{}
%
@@ -99,8 +159,73 @@
%<*class>
% \fi
%
+% \subsection{Class options}\label{sec:implementation:class-options}
+% \iffalse
+%% Class options
+% \fi
+% The class options are defined as keyval options for great flexibility.
+% They toggle some of the class features or customize their behavior.
+%
+% \begin{option}{biblatex}
+% The \optn{biblatex} option stores its content in a macro until it is later passed along to the \pkg{biblatex} package after specifying the default options (see \autoref{sec:implementation:package-loading:bibliography}).
+% Therefore, options provided with this key overwrite the ones set per default by this class.
+% \begin{macrocode}
+\DeclareKeys[rubkgi]{
+ biblatex.store = \@rubkgi@biblatexOptions,
+ biblatex.usage = load
+}
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{hyperref}
+% The \optn{hyperref} option passes its content along immediately, to be used as options when the \pkg{hyperref} package is loaded.
+% This will \textbf{not} overwrite default options set by this class as they are set after loading the package using \verb|\hypersetup|\marg{options} (see also \autoref{sec:implementation:package-loading:others}).
+% \begin{macrocode}
+\DeclareKeys[rubkgi]{
+ hyperref.code = \PassOptionsToPackage{#1}{hyperref},
+ hyperref.usage = load
+}
+% \end{macrocode}
+% \end{option}
+%
+% \paragraph{Paragraph indentation}
+% First we define a TeX switch which is later used (see \autoref{sec:implementation:package-loading}) to check wether to load the \pkg{parskip} package to remove the indentation at the start of paragraphs.
+% \iffalse
+%% TeX switch to decide wether to load the parskip package
+% \fi
+% \begin{macrocode}
+\newif\if@rubkgi@parskip
+% \end{macrocode}
+% By default we set the switch to true, so the parskip package is normally loaded when using this class.
+% \begin{macrocode}
+\@rubkgi@parskiptrue
+% \end{macrocode}
+% \begin{option}{parskip}
+% Then we declare the key so the switch can be turned on and off by the user in the class options.
+% \begin{macrocode}
+\DeclareKeys[rubkgi]{
+ parskip.if = @rubkgi@parskip,
+ parskip.usage = load,
+% \end{macrocode}
+% \end{option}
+% \begin{option}{noparskip}
+% Finally we define the complementary key for easier disabling of the parskip feature.
+% \begin{macrocode}
+ noparskip.ifnot = @rubkgi@parskip,
+ noparskip.usage = load
+}
+% \end{macrocode}
+% \end{option}
+%
+% \paragraph{Process options}
+% After defining the class options it is necessary to process them too in order to actually make use of them.
+% \begin{macrocode}
+\ProcessKeyOptions[rubkgi]
+% \end{macrocode}
+%
% \subsection{Base class}\label{sec:implementation:base-class}
-% The \cls{\jobname} class is based on the \cls{article} class.
+% \DescribeClass{article}
+% The \pkg{\jobname} class is based on the \pkg{article} class.
% When loading the class we specify \texttt{12pt} as the base font size, as required by the guidelines.
% \iffalse
%% Load base class with 12pt base font size
@@ -111,9 +236,95 @@
%
% \subsection{Loading packages}\label{sec:implementation:package-loading}
%
-% \paragraph{Line spacing}
+% \subsubsection{Bibliography}\label{sec:implementation:package-loading:bibliography}
+%
+% \DescribePackage{biblatex}
+% \changes{v0.2.0}{2024-09-06}{Use biblatex with authortitle-dw style from biblatex-dw package.}^^A
+% To support bibliography facilities out of the box, the \pkg{biblatex} package is loaded. To customize the behavior, a few options are passed to the package.
+% \iffalse
+%% biblatex options
+% \fi
+% \begin{macrocode}
+\PassOptionsToPackage{
+% \end{macrocode}
+%
+% \DescribeOption[biblatex]{backend}
+% Defines the backend program. To use all features of \pkg{biblatex}, the \prog{biber} backend must be used.
+% \begin{macrocode}
+ backend=biber,
+% \end{macrocode}
+%
+% \DescribeOption[biblatex]{singletitle}
+% Prints the title of a cited work in short citations only if there is more than one work of the same author.
+% \begin{macrocode}
+ singletitle=true,
+% \end{macrocode}
+%
+% \DescribeOption[biblatex]{autocite}
+% Defines the behavior of the \cs{autocite} command, which in this case will behave like the \cs{footcite} command and will print citations in the footnotes instead of directly in the text.
+% \begin{macrocode}
+ autocite=footnote,
+% \end{macrocode}
+%
+% \DescribeOption[biblatex]{autopunct}
+% Controls whether the citation commands scan ahead for punctuation marks.
+% \begin{macrocode}
+ autopunct=false
+}{biblatex}
+% \end{macrocode}
+%
+% \DescribePackage{biblatex-dw}
+% \iffalse
+%% biblatex-dw package
+% \fi
+% Further approximation of the suggested bibliography and citation styles in the guidelines is achieved by using the \pkg{biblatex-dw} package.
+% To use it, a few more options are passed to \pkg{biblatex}:
+% \begin{macrocode}
+\PassOptionsToPackage{
+% \end{macrocode}
+%
+% \DescribeOption[biblatex]{style}
+% The \optn{authortitle-dw} provided by the \pkg{biblatex-dw} package is probably the closest style to the one suggested in the guidelines.
+% \begin{macrocode}
+ style=authortitle-dw,
+% \end{macrocode}
+%
+% The following options are provided by the \pkg{biblatex-dw} package:
+%
+% \DescribeOption[biblatex]{firstfull}
+% Delivers a full citation for the first occurence of an entry.
+% \begin{macrocode}
+ firstfull=true,
+% \end{macrocode}
+%
+% \DescribeOption[biblatex]{addyear}
+% Adds the year of the publication after the title.
+% \begin{macrocode}
+ addyear=true
+}{biblatex}
+% \end{macrocode}
+%
+% After specifying the default options, we pass along the ones that might have been set in the class options.
+% \iffalse
+%% pass biblatex class options along
+% \fi
+% \begin{macrocode}
+\PassOptionsToPackage{\@rubkgi@biblatexOptions}{biblatex}
+% \end{macrocode}
+%
+% And finally the \pkg{biblatex} package is loaded.
+% \iffalse
+%% load biblatex
+% \fi
+% \begin{macrocode}
+\RequirePackage{biblatex}
+% \end{macrocode}
+%
+% \subsubsection{Document format}
+%
+% \DescribePackage{setspace}
% To achieve 1.5 times line spacing as required by the guidelines,
-% we simply load the package \pkg{setspace} with the \opt{onehalfspacing} option.
+% we simply load the package \pkg{setspace} with the \optn{onehalfspacing} option.
% \iffalse
%% Set 1.5 times line spacing
% \fi
@@ -121,7 +332,8 @@
\RequirePackage[onehalfspacing]{setspace}
% \end{macrocode}
%
-% \paragraph{Margins}
+% \DescribePackage{geometry}
+% Used to set page size and margins.
% The guidelines require 2cm top, left and bottom margins as well as a 4cm correction margin on the right side.
% Furthermore A4 paper is the standard page size here.
% \iffalse
@@ -134,22 +346,48 @@
]{geometry}
% \end{macrocode}
%
+% \DescribePackage{parskip}
+% \changes{v0.2.0}{2024-09-06}{Use parskip to avoid paragraph indentation}^^A
+% To avoid indentation at the start of paragraphs, the \pkg{parskip} package is loaded if the corresponding switch is set to true. See also \autoref{sec:implementation:class-options}.
+% \iffalse
+%% Avoid paragraph indentation
+% \fi
+% \begin{macrocode}
+\if@rubkgi@parskip
+ \RequirePackage{parskip}
+\fi
+% \end{macrocode}
+%
+% \subsubsection{Other useful packages}\label{sec:implementation:package-loading:others}
+%
+% \DescribePackage{hyperref}
+% \changes{v0.2.0}{2024-09-06}{Use hyperref for clickable links and references.}^^A
+% Makes links and references clickable.
% \iffalse
+%% Hyperref
+% \fi
+% \begin{macrocode}
+\RequirePackage{hyperref}
+% \end{macrocode}
+% By default, we configure it to not highlight clickable elements.
+% \begin{macrocode}
+\hypersetup{hidelinks=true}
+% \end{macrocode}
+% \iffalse
+
%</class>
%<*example>
% \fi
+% \clearpage
%
% \section{Example}\label{sec:example}
%
% To further exemplify the use of this class,
-% we create an example .tex file.
-% The full \texttt{rub-kunstgeschichte-example.tex} and the corresponding \texttt{rub-kunstgeschichte-example.pdf} are available on GitHub.^^A
+% we create an example \filenm{.tex} file.
+% The full \filenm{rub-kunstgeschichte-example.tex} and the corresponding \PDF{} are available on GitHub.^^A
% \footnote{\url{https://github.com/rub-kgi/rub-kunstgeschichte-latex/releases}}
%
-% Let's examine the contents of this example .tex file step by step
-% to highlight features of this class that were used.
-%
-% First, the \cls{rub-kunstgeschichte} class is loaded
+% First, the \pkg{rub-kunstgeschichte} class is loaded
% \iffalse
%% Load the rub-kunstgeschichte class
% \fi
@@ -160,33 +398,142 @@
% \fi
%
-% and then the information needed to typeset a title is given:
+% followed by the information that is needed to typeset a title:
% \begin{macrocode}
\title{Example usage of the \textsf{rub-kunstgeschichte} class}
\author{Joran Schneyer}
% \end{macrocode}
%
-% Naturally, we begin the document environment and typeset the title
+% For citations, the bibtex entries are usually written to a seperate \filenm{.bib} file.
+% For the sake of this example we keep everything in one \filenm{.tex} file and use the \env{filecontents} environment instead.
+% \iffalse
+
+%% bibliography file (usually you would put this in a seperate .bib file)
+% \fi
+% \begin{macrocode}
+\begin{filecontents}{rub-kunstgeschichte-example.bib}
+@article{exampleArticle,
+ author = {Maxi Mustermann},
+ title = {A very interesting article},
+ year = {2001},
+ journal = {Important example journal}
+}
+@book{exampleBook,
+ author = {John Smith},
+ title = {A long example book},
+ year = {2024}
+}
+@online{exampleWebsite,
+ author = {{Example consortium}},
+ title = {The truth about example documents},
+ year = {2020},
+ note = {Internet forum article},
+ url = {https://example.com},
+ urldate = {2100-04-01}
+}
+@manual{biblatexDocs,
+ author = {Philip Kime and Moritz Wemheuer and Philipp Lehman},
+ title = {The biblatex Package},
+ subtitle = {Programmable Bibliographies and Citations},
+ year = {2024},
+ url = {https://ctan.org/pkg/biblatex},
+ urldate = {2024-06-25}
+}
+@online{biblatexCheatsheet,
+ title = {Biblatex Cheat Sheet},
+ author = {Clea F. Rees},
+ year = {2017},
+ url = {https://ctan.org/pkg/biblatex-cheatsheet},
+ urldate = {2024-06-25}
+}
+\end{filecontents}
+% \end{macrocode}
+% \iffalse
+
+% \fi
+% After that, we need to load the bibliography to use it with biblatex.
+% \begin{macrocode}
+\addbibresource{rub-kunstgeschichte-example.bib}
+% \end{macrocode}
+%
+% Having finished the preamble, we begin the document, typeset the title and include a table of contents.
% \begin{macrocode}
\begin{document}
\maketitle
+ \tableofcontents
% \end{macrocode}
+% \iffalse
+
+% \fi
%
-% Next we need some text to show some features.
-% The text in the example itself will explain the features used.
+% Next we add different sections that explain common usage and some features of this class.
% \begin{macrocode}
- Here is some text.
- Note, how the typeset text has 12pt font size as specified
- and there is a 1.5 times line-spacing present.
+ \section{Introduction}
+ The \textsf{rub-kunstgeschichte} class aims to implement
+ the guidelines on scientific writing of the art history institute
+ ``KGI'' (\textit{Kunstgeschichtliches Institut})
+ at Ruhr University Bochum.
+
+ This example document showcases a typical use
+ of the \textsf{rub-kunstgeschichte} class.
+ Just by using the class, the page is already formatted
+ so that the typeset text has 12pt font size,
+ there is a 1.5 times line-spacing present
+ and the page size is A4 with 2cm margins at top, left and bottom,
+ as well as a 4cm margin on the right.
+
+ Also, paragraphs don't have an indentation
+ in the first line by default,
+ contrary to typical \LaTeX{} documents.
+ Furthermore the \texttt{hyperref} package
+ is automatically loaded to enable clickable
+ links and references.
+
+ \section{How to cite sources}
+ This class automatically loads the \texttt{biblatex} package
+ for sophisticated bibliography and citations.
+ The class also sets some options by default
+ that make \texttt{biblatex} behave closer to the
+ suggested citation style in the guidelines of the institute.
+
+ You can cite sources using the \verb|\autocite| command,
+ which is configured by this class to use footnotes
+ \autocite{exampleArticle}.
+ Page numbers can be added in the optional argument
+ \autocite[394]{exampleBook}
+ and citation signals in a second one
+ that comes before the one for page numbers
+ \autocite[see][]{exampleWebsite}.
+ You can even cite multiple sources at once
+ using the \verb|\autocites| command
+ \autocites[111]{exampleBook}[see also][13]{exampleArticle}.
+
+ For more information refer to the documentation
+ of the \texttt{biblatex} package
+ \autocite{biblatexDocs}
+ or the biblatex cheatsheet
+ \autocite{biblatexCheatsheet}.
+
+ At the end of the document we can include a bibliography
+ containing all cited sources with \verb|\printbibliography|.
+% \end{macrocode}
+% \iffalse
+
+% \fi
+%
+% As suggested in the example document itself, we include the bibliography.
+% \begin{macrocode}
+ \printbibliography
% \end{macrocode}
%
% Finally we end the document environment
% \begin{macrocode}
\end{document}
% \end{macrocode}
+% \clearpage
% \iffalse
%</example>
% \fi
%
-% \Finale \ No newline at end of file
+% \Finale
diff --git a/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.pdf b/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.pdf
index 98614bb733..e62e392a4b 100644
--- a/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.pdf
+++ b/macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.pdf
Binary files differ
diff --git a/macros/latex/contrib/scrhack/LICENSE.md b/macros/latex/contrib/scrhack/LICENSE.md
new file mode 100644
index 0000000000..1863f2f61a
--- /dev/null
+++ b/macros/latex/contrib/scrhack/LICENSE.md
@@ -0,0 +1,19 @@
+----------------------------------------------------------------------------
+
+This work may be distributed and/or modified under the conditions of the
+LaTeX Project Public License, version 1.3c of the license. The latest
+version of this license is in http://www.latex-project.org/lppl.txt and
+version 1.3c or later is part of all distributions of LaTeX 2005/12/01
+or later. This work has the LPPL maintenance status “maintained”.
+The current maintainer and author of this work is Markus Kohm.
+
+----------------------------------------------------------------------------
+
+Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+in der Version 1.3c, verteilt und/oder verändert werden. Die aktuelle
+Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01
+oder später. Dieses Werk hat den LPPL-Verwaltungs-Status „maintained”.
+Der aktuelle Verwalter und Autor dieses Werks ist Markus Kohm.
+
+----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/scrhack/README.md b/macros/latex/contrib/scrhack/README.md
new file mode 100644
index 0000000000..b85195ab54
--- /dev/null
+++ b/macros/latex/contrib/scrhack/README.md
@@ -0,0 +1,207 @@
+# Package `scrhack`
+
+Copyright © 2008–2024 Markus Kohm
+
+Release: 2024-09-04 v3.42
+
+License: LPPL 1.3c
+
+KOMA presents the compatibility package to emulate the former
+[KOMA-Script](https://www.ctan.org/pkg/koma-script) package `scrhack` as part
+of the *third-party enhancements* project.
+
+------------------------------------------------------------------------------
+
+This work may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, version 1.3c of the license.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+The Current Maintainer and author of this work is Markus Kohm.
+
+------------------------------------------------------------------------------
+
+# Abstract
+
+For several years
+[KOMA-Script](https://www.sourceforge.net/project/koma-script) provided a
+package `scrhack`, that has been made not only to improve the compatibility of
+third-party packages with [KOMA-Script](https://www.ctan.org/pkg/koma-script)
+classes, but also to generally improve third-party packages. The package
+consisted not only in the package file `scrhack.sty` but also in several so
+called hacks as separate files with extension `.hak`. In the course of
+splitting off former [KOMA-Script](https://www.ctan.org/pkg/koma-script)
+packages from the [KOMA-Script](https://www.ctan.org/pkg/koma-script)
+collection, it was decided to create independent packages from the individual
+hacks. These new independent packages then serve as replacements for the
+original packages they were intended to improve. In addition, to preserve the
+functionality of loading the enhancements only when the corresponding original
+package is loaded, a new `scrhack` was created to do just that.
+
+# Installation for Users
+
+If you are a user, you should wait until all the packages of the third-party
+enhancement project have been added to your preferred TeX distribution. Then
+you can use the package manager of your TeX distribution to install all the
+packages at once.
+
+Note: If you have installed a
+ [KOMA-Script](https://www.ctan.org/pkg/koma-script) before version 3.42,
+ you should also update
+ [KOMA-Script](https://www.ctan.org/pkg/koma-script) using the package
+ manager of your TeX distribution as soon as such an update is
+ availiabe. Otherwise it could happen, that the old integrated `scrhack`
+ of [KOMA-Script](https://www.ctan.org/pkg/koma-script) is used instead
+ of the new installed version. On the one hand, KOMA-Script 3.41 works
+ with both the integrated `scrhack` and the new standalone `scrhack`. On
+ the other hand, KOMA-Script from version 3.42 does not provide an
+ integrated `scrhack`. So installing the new standalone `scrhack` before
+ or at least with KOMA-Script version 3.42 is the best option.
+
+# Unpacking for Distributors
+
+Distributors should download [the distribution from
+CTAN](https://www.ctan.org/pkg/scrhack). This consists in:
+
+* `scrhack.dtx`
+* `scrhack-2023-07-07.dtx`
+* `README.md`
+* `LICENSE.md`
+* `scrhack.pdf`
+* `scrhack-2023-07-07.pdf`
+
+If distributors also want to distribute `scrhack.sty`,
+`scrhack-2023-07-07.sty`, `float.hak`, `floatrow.hak`, `hyperref.hak`,
+`listings.hak`, `lscape.hak`, `nomencl.hak`, `setspace.hak`, and
+`standardsectioning.hak` they can unpack these using:
+
+ tex scrhack.dtx
+ tex scrhack-2023-07-07.dtx
+
+Note, that you have to use `tex` not `latex`, `pdflatex`, `xelatex` or
+`lualatex`!
+
+Note also, that a legal distribution consists at least in:
+
+* `scrhack.dtx`
+* `scrhack-2023-07-07.dtx`
+* `README.md`
+
+The following files are optionally, but must not be distributed without the
+previous ones:
+
+* `LICENSE.md`
+* `scrhack.sty`
+* `scrhack.pdf`
+* `scrhack-2023-07-07.sty`
+* `scrhack-2023-07-07.pdf`
+* `float.hak`
+* `floatrow.hak`
+* `hyperref.hak`
+* `listings.hak`
+* `lscape.hak`
+* `nomencl.hak`
+* `setspace.hak`
+* `standardsectioning.hak`
+
+
+# Unpacking and Installation for Developers
+
+Developers who want the current developer version of the code to be installed
+for testing, should clone [the `third-party-enhancements`
+repository](https://github.com/komascript/third-party-enhancements), e.g.,
+using
+
+ git clone https://github.com/komascript/third-party-enhancements.git
+
+You can than either unpack and install all the third-party enhancements using:
+
+ l3build install --full
+
+from within the main directory of the cloned respository. For installation of
+`scrhack` only you could run the same command from within the
+`scrhack` subdirectory. For installation without the manual omit
+option `--full`, but this is not recommended for developers.
+
+Note: Installation of `scrhack` does make sense only if all other packages of
+ the third-party enhancement project are also installed. The new
+ `scrhack` does not work without these packages.
+
+Note: If you have already an installation of
+ [KOMA-Script](https://www.ctan.org/pkg/koma-script) before version 3.42
+ in the user's texmf tree (`TEXMFHOME`), kpathsearch will usually find
+ the old integrated version of `scrhack`. Therefore LaTeX also will use
+ that old integrated version of `scrhack`. To prioritize the new
+ standalone version of `scrhack`, you would either have to remove
+ [KOMA-Script](https://www.ctan.org/pkg/koma-script) from the user's
+ texmf tree or copy `scrhack.sty` to the working directory from within
+ you are running LaTeX. Instead of the
+ [KOMA-Script](https://www.ctan.org/pkg/koma-script) version before 3.42
+ you can, after removing that installation, also install a
+ [KOMA-Script](https://www.ctan.org/pkg/koma-script) version from 3.42,
+ e.g., [the current pre-release](https://komascript.de/current) or [the
+ developer version from
+ SourceForge](https://sourceforge.net/p/koma-script/code/HEAD/tree/trunk/).
+
+# How to get the Manual
+
+After installation you should get the user manual using:
+
+ texdoc scrhack
+
+See the manual of your TeX distribution for more information.
+
+Developers or distributors can also build the manual from the source using:
+
+ l3build doc
+
+# How to Contribute
+
+To become a contributor, e.g., do heavy testing. If you find an issue, please
+report it using [the issue
+tracker](https://github.com/komascript/third-party-enhancements/issues).
+
+You can also become a developer and, e.g., make new test files to the
+packages. See the [`l3build`](https://ctan.org/pkg/l3build) manual for more
+information about tests. If you've created a new test and think that it would
+be useful. Please either do a pull request or [add a new
+issue](https://github.com/komascript/third-party-enhancements/issues/new/choose)
+and include your test file.
+
+Another kind of contribution would be to contact an author of one of the
+third-party packages and convince her or him to integrate the code of the
+corresponding enhancement package from this project into her or his package.
+
+# How to Report Issues
+
+If you think you have found a bug (or another kind of issue) using
+`scrhack` you should use [the issue
+tracker](https://github.com/komascript/third-party-enhancements/issues). Please
+first search for similar issues already reported and maybe also already fixed
+and closed. Maybe the replies to such a similar report would help you too.
+
+If your issue is new, you should report it also using [the issue
+tracker](https://github.com/komascript/third-party-enhancements/issues). Please
+be kind, not only when writing the report but also when reading replies and
+commenting or answering. And please always add a minimal working example and
+usually the relevant parts of the `log`-file to your report. Please use the
+[markdown for
+code](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks)
+to add such files into the text of your report. The correct language
+identifier for LaTeX code would be `latex`. For `log`-files you won't need any
+language identifier. Usually you should not use attachments for code or
+`log`-files unless you've been asked to do so. And please note, reports should
+always be self-containing. External links often break and so the report become
+useles.
+
+# How to Say Thank You for my Work
+
+Hey, I'm doing this as a hobby. So no need to say thank you. But I'm a vain
+fop, so I'm certainly up for a quick thank you by email. On komascript.de you
+can find an [explanation of my wishes](https://komascript.de/wunschliste) if
+you want to give more. If you don't understand German, just click to links at
+that page.
diff --git a/macros/latex/contrib/scrhack/scrhack-2023-07-07.dtx b/macros/latex/contrib/scrhack/scrhack-2023-07-07.dtx
new file mode 100644
index 0000000000..332c388e62
--- /dev/null
+++ b/macros/latex/contrib/scrhack/scrhack-2023-07-07.dtx
@@ -0,0 +1,2057 @@
+% \iffalse meta-comment
+% ======================================================================
+% scrhack-2023-07-07.dtx
+% Copyright © 2008–2023 Markus Kohm
+%
+% This work is a KOMA-Script spin-off. For the original sources of
+% KOMA-Script's `scrhack.sty' see file `scrhack.dtx' in the KOMA-Script
+% sources at <https://sourceforge.net/p/koma-script/code/>.
+%
+% Development is taking place as part of `scrhack' at
+% <https://github.com/komascript/third-party-enhancements>. New issues
+% should be reported there as well as known issues can be found.
+%
+% This work may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, version 1.3c of the license.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.<3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later and of this work.
+%
+% This work has the LPPL maintenance status "author-maintained".
+%
+% The Current Maintainer and author of this work is Markus Kohm.
+%
+% This work consists of the file `scrhack.dtx',
+% `scrhack-2023-07-07,dtx', and `README.md'.
+%
+% The recommended way to install `scrhack' is to use
+% the package manager of your TeX distribution.
+% ======================================================================
+%
+%<package&identify>%%% using: package,identify
+%<package&option>%%% using: package,option
+%<package&body>%%% using: package,body
+%<package&identity>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2023-06-28 10:28:26 +0200 (Mi, 28 Jun 2023) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 4063 $
+\endgroup
+\ProvidesFile{scrhack-2023-07-07.dtx}[\filedate\space\filerevision\space
+%</dtx>
+%<package&identify>\ProvidesPackage{scrhack}[%
+%<hyperref&identify>\ProvidesFile{hyperref.hak}[%
+%<float&identify>\ProvidesFile{float.hak}[%
+%<floatrow&identify>\ProvidesFile{floatrow.hak}[%
+%<listings&identify>\ProvidesFile{listings.hak}[%
+%<setspace&identify>\ProvidesFile{setspace.hak}[%
+%<lscape&identify>\ProvidesFile{lscape.hak}[%
+%<nomencl&identify>\ProvidesFile{nomencl.hak}[%
+%<standardsections&identify>\ProvidesFile{standardsections.hak}[%
+%<*dtx|identify>
+ 2024-04-17 v3.42
+%<*dtx>
+ source of
+%</dtx>
+%<*dtx|package>
+ legacy version of package scrhack%
+%</dtx|package>
+%<*hack>
+%<hack> scrhack part
+%<!standardsections> (hacking package
+%<hyperref&identify> hyperref)%
+%<float&identify> float)%
+%<floatrow&identify> floatrow)%
+%<listings&identify> listings)%
+%<setspace&identify> setspace)%
+%<lscape&identify> lscape)%
+%<nomencl&identify> nomencl)%
+%<standardsections&identify> (defining standard LaTeX class section headings)%
+%</hack>
+]
+%</dtx|identify>
+%<*dtx>
+\ifx\documentclass\undefined
+ \input docstrip.tex
+ \generate{%
+ \file{scrhack-2023-07-07.sty}{%
+ \from{scrhack-2023-07-07.dtx}{package,identify}%
+ \from{scrhack-2023-07-07.dtx}{package,option}%
+ \from{scrhack-2023-07-07.dtx}{package,body}%
+ }%
+ \file{hyperref.hak}{%
+ \from{scrhack-2023-07-07.dtx}{hack,hyperref,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,hyperref,body}%
+ }%
+ \file{float.hak}{%
+ \from{scrhack-2023-07-07.dtx}{hack,float,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,float,body}%
+ }%
+ \file{floatrow.hak}{%
+ \from{scrhack-2023-07-07.dtx}{hack,floatrow,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,floatrow,body}%
+ }%
+ \file{listings.hak}{%
+ \from{scrhack-2023-07-07.dtx}{hack,listings,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,listings,body}%
+ }%
+ \file{setspace.hak}{%
+ \from{scrhack-2023-07-07.dtx}{hack,setspace,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,setspace,body}%
+ }%
+ \file{lscape.hak}{%
+ \from{scrhack-2023-07-07.dtx}{hack,lscape,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,lscape,body}%
+ }%
+ \file{nomencl.hak}{%
+ \from{scrhack-2023-07-07.dtx}{hack,nomencl,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,nomencl,body}%
+ }%
+ \file{standardsections.hak}{%
+ \from{scrhack-2023-07-07.dtx}{hack,standardsections,identify}%
+ \from{scrhack-2023-07-07.dtx}{hack,standardsections,body}%
+ }%
+ }
+\else
+ \let\endbatchfile\relax
+\fi
+\endbatchfile
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\setcounter{StandardModuleDepth}{2}
+\begin{document}
+ \DocInput{scrhack-2023-07-07.dtx}
+\end{document}
+%</dtx>
+%\fi
+%
+% \changes{v3.03}{2009/03/12}{first version ever}
+% \changes{v3.36}{2022/02/08}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/08}{require package \pkg*{scrlogo} instead of
+% defining \cs{KOMAScript}}
+% \changes{v3.36}{2022/02/08}{whole implementation documentation in English}
+% \changes{v3.40}{2023/04/17}{guide names changed}
+%
+% \GetFileInfo{scrhack.dtx}
+% \title{Legacy Version of Package \pkg*{scrhack}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{2023-07-15}
+% \maketitle
+% \tableofcontents
+%
+% \section{User Manual}
+%
+% You can find the user manual of the legacy version in
+% \href{file:scrhack.pdf}{the manual of \pkg*{scrhack}}.
+%
+% \MaybeStop{\PrintIndex}
+%
+% \section{Implementation of the Legacy Version of
+% \texorpdfstring{\pkg*{scrhack}}{scrhack}}
+%
+% \changes{v3.04b}{2009/08/05}{order of commands/macros and options changed}
+%
+% \subsection{Options}
+%
+% The package uses \cs{KOMAoptions} of \pkg*{scrkbase} and needs at least the
+% one of \KOMAScript{} v3.39:
+% \begin{macrocode}
+%<*package&option>
+\RequirePackage{scrkbase}[2022-11-11]
+\@ifpackagelater{scrkbase}{2023-07-14}{%
+ \PackageInfo{scrhack}{KOMA-Script >= 3.42 detected.\MessageBreak
+ In this case you should not use this legacy version of\MessageBreak
+ scrhack, but should be able to use the current version\MessageBreak
+ or even replace loading scrhack by loading really\MessageBreak
+ needed third-party patches, e.g., floatbytocbasic.\MessageBreak
+ But you are the boss ..}%
+}{%
+ \@ifpackagelater{scrkbase}{2022-11-11}{%
+ \PackageWarningNoLine{scrhack}{KOMA-Script < 3.42 detected.\MessageBreak
+ In this case the original scrhack of that version\MessageBreak
+ should also be installed and used instead of this\MessageBreak
+ legacy package}%
+ }{%
+ \PackageError{scrhack}{incompatible KOMA-Script < v3.39 detected}{%
+ This error is fatal!\MessageBreak
+ Loading of scrhack will be aborted!}%
+ \expandafter\let\csname ver@scrhack.sty\endcsname\undefined
+ \endinput
+ }%
+}
+%</package&option>
+% \end{macrocode}
+% The options allow the selection of the used manipulations of other
+% packages. But all these options are valid only until both \pkg*{scrhack} and
+% the other package has been loaded. Later settings are invalid.
+%
+%
+% \subsection{Used Macros and Commands}
+% \label{sec:macros}
+% \begin{macrocode}
+%<*package&body>
+% \end{macrocode}
+%
+% \begin{macro}{\scr@ifexpected}
+% Mentioned to do (re)definitions only, if local execution of code does not
+% change a command. Concrete, if (local) execution of \marg{test code} of
+% \begin{quote}
+% \cs{scr@ifexpected}\marg{command}\marg{test code}\marg{then
+% code}\marg{else code}
+% \end{quote}
+% would not result in a change of \cs{\meta{command}}, the \marg{then code}
+% will be executed, otherwise the \marg{else code}.
+% \begin{description}\item[Note:] \meta{test code} must not have any global
+% side effect!\end{description}
+% \begin{macrocode}
+\newcommand{\scr@ifexpected}[2]{%
+ \begingroup
+ \let\@tempa#1
+ #2
+ \ifx\@tempa#1
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scr@hack@load}
+% Conditionally loading of a hack file.
+% \begin{quote}
+% \cs{scr@hack@load}\marg{extension}\marg{basename}\marg{hack}%
+% \marg{true code}\marg{false code}
+% \end{quote}
+% The first two arguments \marg{} and \marg{extension} and \marg{basename} are
+% same to the internal\LaTeX{} kernel command \cs{@ifl@aded}. With \LaTeX{}
+% from 2021/11/15 we even could use \cs{@ifl@aded} for the test, because it is
+% not restricted to the preamble any more. But because it is restricted with
+% older \LaTeX{} kernels, we test the definition of
+% \cs{ver@}\meta{basename}\texttt{.}\meta{extension}. If it is defined, we
+% also test the definition of \cs{ver@}\meta{basename}\texttt{.hak}. If this
+% is not defined, \file{\meta{hack}.hak} is loaded and \meta{true code} is
+% executed. Otherwise \meta{false code} is executed. This means: A hack file
+% is only loaded, if a class or package (or other file with version) has
+% already been loaded, but the hack file has not already been loaded.
+% \begin{macrocode}
+\newcommand*{\scr@hack@load}[2]{%
+ \expandafter\ifx\csname ver@#2.#1\endcsname\relax
+ \expandafter\@secondoftwo
+ \else
+% \end{macrocode}
+% Load a hack only once.
+% \begin{macrocode}
+ \expandafter\ifx\csname ver@#2.hak\endcsname\relax
+ \expandafter\expandafter\expandafter\@firstoftwo
+ \else
+ \expandafter\expandafter\expandafter\@secondoftwo
+ \fi
+ \fi
+ {%
+ \PackageInfo{scrhack}{loading #2 hack}%
+ \edef\reserved@a{%
+ \noexpand\makeatletter\noexpand\input{#2.hak}%
+ \noexpand\catcode`\noexpand\@\the\catcode`\@\relax
+ }\reserved@a
+ }{%
+ \PackageInfo{scrhack}{ignorring #2 hack}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</package&body>
+% \end{macrocode}
+%
+% \subsection{The \texorpdfstring{\pkg*{hyperref}}{hyperref} hack}
+%
+% Package \pkg{hyperref} places the anchor of the star variant of a heading
+% after the heading, but the anchor of the normal variant before the heading
+% even if the heading is not numbered because of the value of
+% \cnt{secnumdepth}. The hack changes this to more consistent placing always
+% before the heading.
+%
+% \begin{option}{hyperref}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyStateProcessed}}
+% \changes{v3.17}{2015/03/09}{defaults by \cs{KOMAExecuteOptions}}
+% \begin{macrocode}
+%<*package&option>
+\KOMA@ifkey{hyperref}{@scrhack@hyperref}%
+\KOMAExecuteOptions{hyperref=true}%
+%</package&option>
+% \end{macrocode}
+% \changes{v3.04b}{2009/11/09}{loading \pkg{hyperref} hack earlier}
+% \changes{v3.17}{2015/03/09}{auto deactivation for newer versions of
+% \pkg{hyperref}}
+% \changes{v3.18}{2015/05/22}{newer versions of \KOMAScript{} classes also
+% deactivate the the hack}
+% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
+% and \cs{KOMAExecuteOptions} removed}
+% This is a little bit tricky, because \pkg{hyperref} loads the driver file
+% via \cs{AtEndOfPackage} and the hack cannot be loaded before loading the
+% driver file. Using \cs{AfterPackage*} would not be good enough therefore,
+% because it would load the hack before the driver file. But using
+% \cs{AtEndOfPackage} inside \cs{AfterPackage*} should delay the loading
+% enough. This also works, if \pkg{hyperref} has already been loaded. In this
+% case the code will be executed at the end of \pkg*{scrhack} instead of
+% \pkg{hyperref}. This is no problem.
+% \begin{macrocode}
+%<*package&body>
+\BeforePackage{hyperref}{%
+ \scr@ifundefinedorrelax{hy@insteadofrefstepcounter}{}{%
+ \PackageInfo{scrhack}{hyperref hack deactivated because of\MessageBreak
+ detection of KOMA-Script class, that doesn't\MessageBreak
+ need that hack,}%
+ \KOMAExecuteOptions[scrhack.sty]{hyperref=false}%
+ }%
+}
+\AfterPackage*{hyperref}{%
+ \if@scrhack@hyperref
+ \@ifpackagelater{hyperref}{2009/11/24}{%
+ \PackageInfo{scrhack}{hyperref hack deactivated because of\MessageBreak
+ detection of hyperref version, that doesn't\MessageBreak
+ need that hack,}%
+ \KOMAExecuteOptions[scrhack.sty]{hyperref=false}%
+ }{%
+ \AtEndOfPackage{%
+ \KOMA@key[scrhack.sty]{hyperref}[true]{%
+ \PackageWarning{scrhack}{option `hyperref=#1' ignored}%
+ \FamilyKeyStateProcessed
+ }%
+ \if@scrhack@hyperref\scr@hack@load\@pkgextension{hyperref}\fi
+ }%
+ }%
+ \fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}
+%
+%
+% \begin{macro}{\@schapter,\@spart,\@ssect}
+% We do not hack \pkg{hyperref} itself, but the driver files. After loading
+% \pkg{hyperref} the driver file is also loaded. Moreover, all driver files
+% that re-define these commands have to be patched also. So the patch is
+% related to the loading of \pkg{hyperref} instead of every single driver
+% file. This have already been tested by \cs{scr@hack@load}. So we just have
+% to test, whether the definition of these commands are the expected one.
+% derzeit den erwarteten Inhalt haben.
+% \begin{macrocode}
+%<*hyperref&body>
+\scr@ifexpected\@schapter{%
+ \def\@schapter#1{%
+ \H@old@schapter{#1}%
+ \begingroup
+ \let\@mkboth\@gobbletwo
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}%
+ \Hy@raisedlink{%
+ \hyper@anchorstart{\@currentHref}\hyper@anchorend
+ }%
+ \endgroup
+ }%
+}{%
+ \PackageInfo{scrhack}{redefining \string\@schapter}%
+ \def\@schapter#1{%
+ \begingroup
+ \let\@mkboth\@gobbletwo
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}%
+ \Hy@raisedlink{%
+ \hyper@anchorstart{\@currentHref}\hyper@anchorend
+ }%
+ \endgroup
+ \H@old@schapter{#1}%
+ }%
+}{%
+ \scr@ifexpected\@schapter{%
+ \def\@schapter#1{%
+ \begingroup
+ \let\@mkboth\@gobbletwo
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}%
+ \Hy@raisedlink{%
+ \hyper@anchorstart{\@currentHref}\hyper@anchorend
+ }%
+ \endgroup
+ \H@old@schapter{#1}%
+ }%
+ }{}{%
+ \PackageWarningNoLine{scrhack}{unknown \string\@schapter\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported hyperref version}%
+ }%
+}
+\scr@ifexpected\@spart{%
+ \def\@spart#1{%
+ \H@old@spart{#1}%
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \xdef\@currentHref{part*.\the\Hy@linkcounter}%
+ \Hy@raisedlink{%
+ \hyper@anchorstart{\@currentHref}\hyper@anchorend
+ }%
+ }%
+}{%
+ \PackageInfo{scrhack}{redefining \string\@spart}%
+ \def\@spart#1{%
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \xdef\@currentHref{part*.\the\Hy@linkcounter}%
+ \Hy@raisedlink{%
+ \hyper@anchorstart{\@currentHref}\hyper@anchorend
+ }%
+ \H@old@spart{#1}%
+ }%
+}{%
+ \scr@ifexpected\@spart{%
+ \def\@spart#1{%
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \xdef\@currentHref{part*.\the\Hy@linkcounter}%
+ \Hy@raisedlink{%
+ \hyper@anchorstart{\@currentHref}\hyper@anchorend
+ }%
+ \H@old@spart{#1}%
+ }%
+ }{}{%
+ \PackageWarningNoLine{scrhack}{unknown \string\@spart\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported hyperref version}%
+ }%
+}
+\scr@ifexpected\@ssect{%
+ \def\@ssect#1#2#3#4#5{%
+ \H@old@ssect{#1}{#2}{#3}{#4}{#5}%
+ \phantomsection
+ }%
+}{%
+ \PackageInfo{scrhack}{redefining \string\@ssect}%
+ \def\@ssect#1#2#3#4#5{%
+ \H@old@ssect{#1}{#2}{#3}{#4}{\phantomsection\ignorespaces#5}%
+ }%
+}{%
+ \scr@ifexpected\@ssect{%
+ \def\@ssect#1#2#3#4#5{%
+ \H@old@ssect{#1}{#2}{#3}{#4}{\phantomsection\ignorespaces#5}%
+ }%
+ }{}{%
+ \PackageWarningNoLine{scrhack}{unknown \string\@ssect\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported hyperref version}%
+ }%
+}
+%</hyperref&body>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{The \texorpdfstring{\pkg*{floatrow}}{floatrow} hack}
+%
+% Package \pkg{floatrow} insists in using \cs{float@listhead} for the setting
+% of the headings. This is not recommended any longer since \KOMAScript~2.95
+% from July 2006! The \KOMAScript{} classes will remove the support for
+% this very limited approach. Recommended is the usage of \pkg*{tocbasic}. The
+% effort to do so, it very small and I do not understand, why package authors
+% are not willing to use it. Because the benefit would be a lot.
+%
+% This hack adds \pkg*{tocbasic} usage to \pkg{floatrow}. Nevertheless it is
+% more complicated than adding \pkg*{tocbasic} support into \pkg{floatrow}.
+%
+% \begin{option}{floatrow}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyStateProcessed}}
+% \changes{v3.17}{2015/03/09}{using \cs{KOMAExecuteOptions}}
+% \changes{v3.34}{2021/06/03}{deactivation of the \pkg{float} hack}
+% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
+% removed}
+% \begin{macrocode}
+%<*package&option>
+\KOMA@ifkey{floatrow}{@scrhack@floatrow}
+\KOMAExecuteOptions{floatrow=true}
+%</package&option>
+%<*package&body>
+\AfterPackage*{floatrow}{%
+ \KOMAoptions{float=false}%
+ \PackageInfo{scrhack}{option `float' deactivated}%
+ \KOMA@key[scrhack.sty]{floatrow}{%
+ \PackageWarning{scrhack}{option `floatrow' ignored}%
+ \FamilyKeyStateProcessed
+ }%
+ \if@scrhack@floatrow\scr@hack@load\@pkgextension{floatrow}\fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}
+%
+%
+% \begin{command}{\DeclareNewFloatType,\listof}
+% \changes{v3.25}{2018/03/16}{using \cs{DeclareTOCStyleEntry}}
+% Command \cs{DeclareNewFloatType} is used to define a new float
+% environment. We have to add registration of the file extension (third
+% argument) with \pkg*{tocbasic}.
+% Command \cs{listof} outputs the list of the float environments. Here we
+% just use the corresponding macro of \pkg*{tocbasic}.
+% \begin{macro}{\float@addtolists}
+% The deprecated macro \cs{float@addtolists} is not needed any longer an will
+% be reset to the original definition.
+% \begin{macrocode}
+%<*floatrow&body>
+\scr@ifexpected{\DeclareNewFloatType}{%
+ \long\def\DeclareNewFloatType#1#2{\def\FB@captype{#1}%
+ \expandafter\edef\csname ftype@#1\endcsname{\the\c@float@type}%
+ \addtocounter{float@type}{\value{float@type}}%
+ \@namedef{#1name}{#1}\newcounter{#1}%
+ \expandafter\edef\csname fnum@#1\endcsname
+ {\expandafter\noexpand\csname #1name\endcsname\nobreakspace
+ \expandafter\noexpand\csname the#1\endcsname}%
+ \@namedef{the#1}{\arabic{#1}}\flnew@ext{lo#1}\@namedef{fps@#1}{tbp}%
+ \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
+ \caption@setkeys[floatrow]{newfloat}{#2}\let\FR@tmp=\relax
+ \xdef\@tempa{\noexpand\flrow@types{\the\flrow@types \FR@tmp{#1}}}%
+ \@tempa}%
+}{%
+ \scr@ifexpected{\listof}{%
+ \def\listof#1#2{%
+ \@ifundefined{ext@#1}{\flrow@error{Unknown float style `#1'}}{%
+ \expandafter\providecommand\csname l@#1\endcsname
+ {\@dottedtocline{1}{1.5em}{2.3em}}%
+ \float@listhead{#2}%
+ \begingroup\setlength{\parskip}{\z@}%
+ \@starttoc{\@nameuse{ext@#1}}%
+ \endgroup}}%
+ }{%
+ \RequirePackage{tocbasic}%
+ \PackageInfo{scrhack}{redefining \string\DeclareNewFloatType}%
+% \end{macrocode}
+% \begin{description}
+% \item[Note:] It would be better to first test, if the new extension is
+% already in use like done at the \pkg{float} hack. But I don't know the
+% \pkg{floatrow} code good enough to make such a change!
+% \end{description}
+% \begin{macrocode}
+ \renewcommand\DeclareNewFloatType[2]{\def\FB@captype{#1}%
+ \expandafter\edef\csname ftype@#1\endcsname{\the\c@float@type}%
+ \addtocounter{float@type}{\value{float@type}}%
+ \@namedef{#1name}{#1}\newcounter{#1}%
+ \expandafter\edef\csname fnum@#1\endcsname
+ {\expandafter\noexpand\csname #1name\endcsname\nobreakspace
+ \expandafter\noexpand\csname the#1\endcsname}%
+ \@namedef{the#1}{\arabic{#1}}\flnew@ext{lo#1}\@namedef{fps@#1}{tbp}%
+ \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]{default}{#1}%
+ \caption@setkeys[floatrow]{newfloat}{#2}\let\FR@tmp=\relax
+ \xdef\@tempa{\noexpand\flrow@types{\the\flrow@types \FR@tmp{#1}}}%
+ \@tempa
+ \xdef\@tempa{\noexpand\addtotoclist[float]{\@nameuse{ext@\FB@captype}}%
+ \noexpand\setuptoc{\@nameuse{ext@\FB@captype}}{chapteratlist}%
+ }%
+ \@tempa
+ }%
+ \PackageInfo{scrhack}{redefining \string\listof}%
+ \renewcommand*\listof[2]{%
+ \@ifundefined{ext@#1}{\flrow@error{Unknown float style `#1'}}{%
+ \@ifundefined{l@#1}{\expandafter\let\csname l@#1\endcsname\l@figure
+ \@ifundefined{l@#1}{%
+ \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]
+ {default}{#1}%
+ }{}%
+ }{}%
+ \listoftoc[{#2}]{\csname ext@#1\endcsname}%
+ }%
+ }%
+ \scr@ifexpected{\float@addtolists}{%
+ \long\def\float@addtolists#1{%
+ \def\float@do##1{\addtocontents{##1}{#1}} \the\float@exts}%
+ }{%
+ \PackageInfo{scrhack}{undefining \string\float@addtolists}%
+ \let\float@addtolists\relax
+ }{%
+ \PackageWarningNoLine{scrhack}{unkown \string\float@addtolists\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported floatrow version}%
+ }%
+ }{%
+ \PackageWarningNoLine{scrhack}{unknown \string\listof\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported floatrow version}%
+ }%
+}{%
+ \PackageWarningNoLine{scrhack}{unknown \string\DeclareNewFloatType\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported floatrow version}%
+}
+%</floatrow&body>
+% \end{macrocode}
+% \end{macro}
+% \end{command}
+%
+%
+% \subsection{The \texorpdfstring{\pkg*{float}}{float} hack}
+%
+% Package \pkg{float} insists in using \cs{float@listhead} for the setting
+% of the headings. This is not recommended any longer since \KOMAScript~2.95
+% from July 2006! The \KOMAScript{} classes will remove the support for
+% this very limited approach. Recommended is the usage of \pkg*{tocbasic}. The
+% effort to do so, it very small and I do not understand, why package authors
+% are not willing to use it. Because the benefit would be a lot.
+%
+% This hack adds \pkg*{tocbasic} usage to \pkg{float}. Nevertheless it is
+% more complicated than adding \pkg*{tocbasic} support into \pkg{float}.
+%
+% \begin{option}{float}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyStateProcessed}}
+% \changes{v3.17}{2015/03/09}{using \cs{KOMAExecuteOptions}}
+% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
+% removed}
+% \begin{macrocode}
+%<*package&option>
+\KOMA@ifkey{float}{@scrhack@float}%
+\KOMAExecuteOptions{float=true}%
+%</package&option>
+%<*package&body>
+\AfterPackage*{float}{%
+ \KOMA@key[scrhack.sty]{float}{%
+ \PackageWarning{scrhack}{option `float' ignored}%
+ \FamilyKeyStateProcessed
+ }%
+ \if@scrhack@float\scr@hack@load\@pkgextension{float}\fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}
+%
+%
+% \begin{command}{\newfloat}
+% \changes{v3.28}{2019/11/19}{\cs{ifattoclist} replaced by
+% \cs{Ifattoclist}}
+% \changes{v3.25}{2018/03/16}{using \cs{DeclareTOCStyleEntry}}
+% We have to add registration of the file extension (third argument of
+% \cs{newfloat}) with \pkg*{tocbasic}.
+% \begin{command}{\listof}
+% Command \cs{listof} outputs the list of the float environments. Here we
+% just use the corresponding macro of \pkg*{tocbasic}.
+% \begin{macro}{\float@addtolists}
+% The deprecated macro \cs{float@addtolists} is not needed any longer an will
+% be reset to the original definition.
+% \begin{macrocode}
+%<*float&body>
+\scr@ifexpected{\newfloat}{%
+ \long\def\newfloat#1#2#3{\@namedef{ext@#1}{#3}
+ \let\float@do=\relax
+ \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#3}}}%
+ \@tempa
+ \floatplacement{#1}{#2}%
+ \@ifundefined{fname@#1}{\floatname{#1}{#1}}{}
+ \expandafter\edef\csname ftype@#1\endcsname{\value{float@type}}%
+ \addtocounter{float@type}{\value{float@type}}
+ \restylefloat{#1}%
+ \expandafter\edef\csname fnum@#1\endcsname%
+ {\expandafter\noexpand\csname fname@#1\endcsname{}
+ \expandafter\noexpand\csname the#1\endcsname}
+ \@ifnextchar[%]
+ {\float@newx{#1}}%
+ {\@ifundefined{c@#1}{\newcounter{#1}\@namedef{the#1}{\arabic{#1}}}%
+ {}}}%
+}{%
+ \scr@ifexpected{\listof}{%
+ \def\listof#1#2{%
+ \@ifundefined{ext@#1}{\float@error{#1}}{%
+ \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
+ \float@listhead{#2}%
+ \begingroup\setlength{\parskip}{\z@}%
+ \@starttoc{\@nameuse{ext@#1}}%
+ \endgroup}}%
+ }{%
+ \RequirePackage{tocbasic}%
+ \PackageInfo{scrhack}{redefining \string\newfloat}%
+ \renewcommand\newfloat[3]{%
+ \Ifattoclist{#3}{%
+ \PackageError{scrhack}{extension `#3' already in use}{%
+ Each extension may be used only once.\MessageBreak
+ You, the class, or another package already uses extension
+ `#3'.\MessageBreak
+ \string\newfloat\space command will be ignored!}%
+ }{%
+ \addtotoclist[float]{#3}%
+ \setuptoc{#3}{chapteratlist}%
+ \@namedef{ext@#1}{#3}%
+ \let\float@do=\relax
+ \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#3}}}%
+ \@tempa
+ \floatplacement{#1}{#2}%
+ \@ifundefined{fname@#1}{\floatname{#1}{#1}}{}%
+ \expandafter\edef\csname ftype@#1\endcsname{\value{float@type}}%
+ \addtocounter{float@type}{\value{float@type}}
+ \restylefloat{#1}%
+ \expandafter\edef\csname fnum@#1\endcsname%
+ {\expandafter\noexpand\csname fname@#1\endcsname{}
+ \expandafter\noexpand\csname the#1\endcsname}%
+ \@ifnextchar[%]
+ {\float@newx{#1}}%
+ {\@ifundefined{c@#1}{\newcounter{#1}\@namedef{the#1}{\arabic{#1}}}%
+ {}}}%
+ }%
+ \PackageInfo{scrhack}{redefining \string\listof}%
+ \renewcommand*\listof[2]{%
+ \@ifundefined{ext@#1}{\float@error{#1}}{%
+ \@ifundefined{l@#1}{\expandafter\let\csname l@#1\endcsname\l@figure
+ \@ifundefined{l@#1}{%
+ \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]
+ {default}{#1}%
+ }{}%
+ }{}%
+ \listoftoc[{#2}]{\csname ext@#1\endcsname}%
+ }%
+ }%
+ \scr@ifexpected{\float@addtolists}{%
+ \long\def\float@addtolists#1{%
+ \def\float@do##1{\addtocontents{##1}{#1}} \the\float@exts}%
+ }{%
+ \PackageInfo{scrhack}{undefining \string\float@addtolists}%
+ \let\float@addtolists\relax
+ }{%
+ \PackageWarningNoLine{scrhack}{unkown \string\float@addtolists\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported float version}%
+ }%
+ }{%
+ \PackageWarningNoLine{scrhack}{unknown \string\listof\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported float version}%
+ }%
+}{%
+ \PackageWarningNoLine{scrhack}{unknown \string\newfloat\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported float version}%
+}
+%</float&body>
+% \end{macrocode}
+% \end{macro}
+% \end{command}
+% \end{command}
+%
+%
+% \subsection{The \texorpdfstring{\pkg*{listings}}{listings} hack}
+%
+% Package \pkg{listing} insists in using \cs{float@listhead} for the setting
+% of the headings. This is not recommended any longer since \KOMAScript~2.95
+% from July 2006! The \KOMAScript{} classes will remove the support for
+% this very limited approach. Recommended is the usage of \pkg*{tocbasic}. The
+% effort to do so, it very small and I do not understand, why package authors
+% are not willing to use it. Because the benefit would be a lot.
+%
+% This hack adds \pkg*{tocbasic} usage to old versions of
+% \pkg{listings}. Nevertheless it is more complicated than adding
+% \pkg*{tocbasic} support into \pkg{listings}.
+%
+% \begin{option}{listings}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyStateProcessed}}
+% \changes{v3.17}{2015/03/09}{using \cs{KOMAExecuteOptions}}
+% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
+% removed}
+% \changes{v3.42}{2024/04/17}{automatic deactivation for new \pkg{listings}}
+% Note: The deactivation of the hack for new version of \pkg{listings} cannot
+% be done comparing the \pkg{listings} version, because \pkg{listings} version
+% 1.10 uses \cs{AtEndOfPackage} for \cs{ProvidesPackage} and therefore the
+% version is not defined when the after package hook is executed. So we test
+% instead the \pkg{lstmisc} version.
+% \begin{macrocode}
+%<*package&option>
+\KOMA@ifkey{listings}{@scrhack@listings}
+\KOMAExecuteOptions{listings=true}
+%</package&option>
+%<*package&body>
+\AfterPackage*{listings}{%
+ \@ifpackagelater{lstmisc}{2024/02/15}{%
+ \PackageInfo{scrhack}{listings hack deactivated because of\MessageBreak
+ detection of listings version, that doesn't\MessageBreak
+ need that hack,}%
+ \KOMAExecuteOptions[scrhack.sty]{listings=false}%
+ }{%
+ \if@scrhack@listings\scr@hack@load\@pkgextension{listings}\fi
+ }%
+ \KOMA@key[scrhack.sty]{listings}[true]{%
+ \PackageWarning{scrhack}{option `listings=#1' ignored}%
+ \FamilyKeyStateProcessed
+ }%
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}
+%
+%
+% \begin{macro}{\scr@do@hack@listings}
+% \changes{v3.41}{2023/06/28}{patching \cs{lst@MakeCaption} to use
+% \cs{ext@lstlisting}}
+% \begin{command}{\lstlistoflistings}
+% \cs{scr@do@hack@listings} patches \pkg{listings} to use \pkg*{tocbasic} for
+% the whole output of the list of listings. This adds several new features to
+% \pkg{listings}.
+% \begin{macro}{\ext@lstlisting,\lst@MakeCaption,\float@addtolists}
+% Macro \cs{ext@lstlisting} is defined, to make \cs{captionof} work with
+% argument \texttt{lstlisting}. Additionally \cs{lst@MakeCaption} is patched
+% to use the new macro. The deprecated macro \cs{float@addtolists} is not
+% needed any longer an will be reset to the original definition. But, because
+% \pkg{listings} delays the redefinition with \cs{AtBeginDocument} we have to
+% do the same here.
+% \begin{macrocode}
+%<*listings&body>
+\newcommand*{\scr@do@hack@listings}{%
+ \RequirePackage{tocbasic}%
+ \addtotoclist[float]{lol}%
+ \setuptoc{lol}{chapteratlist}%
+ \PackageInfo{scrhack}{redefining \string\lstlistoflistings}%
+ \renewcommand*{\lstlistoflistings}{\listoftoc[{\lstlistlistingname}]{lol}}%
+ \providecommand*{\ext@lstlisting}{lol}%
+ \@tempswafalse
+ \xpatchcmd\lst@MakeCaption
+ {\addcontentsline{lol}}%
+ {\addcontentsline{\ext@lstlisting}}%
+ {\PackageInfo{scrhack}{patching \string\lst@MakeCaption}\@tempswatrue}%
+ {\PackageWarning{scrhack}{cannot patch \string\lst@MakeCaption}}%
+ \@whilesw\if@tempswa\fi{%
+ \xpatchcmd\lst@MakeCaption
+ {\addcontentsline{lol}}%
+ {\addcontentsline{\ext@lstlisting}}%
+ {}%
+ {\@tempswafalse}%
+ }%
+ \AtBeginDocument{%
+ \scr@ifexpected{\float@addtolists}{%
+ \def\float@addtolists##1{\addtocontents{lol}{##1}}%
+ }{%
+ \PackageInfo{scrhack}{undefining \string\float@addtolists}%
+ \let\float@addtolists\relax
+ }{%
+ \scr@ifexpected{\float@addtolists}{%
+ \def\float@addtolists##1{\addtocontents{lol}{##1}%
+ \orig@float@addtolists{##1}}%
+ }{%
+ \PackageInfo{scrhack}{setting \string\float@addtolists\MessageBreak
+ to \string\orig@float@addtolists}%
+ \let\float@addtolists\orig@float@addtolists
+ }{%
+ \PackageWarningNoLine{scrhack}{unkown \string\float@addtolists\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported listings version}%
+ }%
+ }%
+ }%
+% \end{macrocode}
+% \begin{macro}{\lst@makecaption}
+% \changes{v3.30}{2020/04/01}{setting of \cs{@captype} added}
+% From version~3.30 setting of \cs{@captype} to \texttt{lstlisting} is added
+% to \cs{lst@makecaption}. This adds support for usage of
+% \cs{raggedlstlistingcaption} (if the user or a package author defines
+% it). The change is a little bit dangerous, because it will break, if
+% \pkg{listings} would add an argument to \cs{lst@makecaption}.
+% \begin{macrocode}
+ \expandafter\def\expandafter\lst@makecaption\expandafter{%
+ \expandafter\def\expandafter\@captype\expandafter{%
+ \expandafter l\expandafter s\expandafter t\expandafter l%
+ \expandafter i\expandafter s\expandafter t\expandafter i%
+ \expandafter n\expandafter g\expandafter}\lst@makecaption
+ }%
+ \let\scr@do@hack@listings\relax
+}
+\scr@ifexpected{\lstlistoflistings}{%
+ \def\lstlistoflistings{\bgroup
+ \let\contentsname\lstlistlistingname
+ \let\lst@temp\@starttoc \def\@starttoc##1{\lst@temp{lol}}%
+ \tableofcontents \egroup}%
+}{%
+ \scr@do@hack@listings
+}{%
+ \scr@ifexpected{\lstlistoflistings}{%
+ \def\lstlistoflistings{%
+ \begingroup
+ \@ifundefined{@restonecoltrue}{}{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ }%
+ \float@listhead{\lstlistlistingname}%
+ \parskip\z@\parindent\z@\parfillskip \z@ \@plus 1fil%
+ \@starttoc{lol}%
+ \@ifundefined{@restonecoltrue}{}{%
+ \if@restonecol\twocolumn\fi
+ }%
+ \endgroup
+ }%
+ }{%
+ \scr@do@hack@listings
+ }{%
+ \PackageWarningNoLine{scrhack}{unknown \string\lstlistoflistings\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported listings version}%
+ }%
+}
+%</listings&body>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{command}
+% \end{macro}
+%
+%
+%
+% \subsection{The \texorpdfstring{\pkg*{nomencl}}{nomencl} hack}
+%
+% With package \pkg{nomencl} and the \KOMAScript{} classes there is only a
+% small disharmony between relating the ToC entry. Nevertheless the package
+% can benefit from using \pkg*{tocbasic}.
+%
+% This hack adds \pkg*{tocbasic} usage to \pkg{nomencl}. This is done using
+% \pkg{xpatch} Nevertheless it is much more complicated than adding real
+% \pkg*{tocbasic} support into \pkg{nomencl}. The mess is, that every new
+% release of \pkg{nomencl} changes the kind of ``support'' of
+% \pkg*{tocbasic}. For some versions there isn't any such support. Other
+% versions use \pkg*{tocbasic} if it has been loaded. Other versions need an
+% option to activate usage of \pkg*{tocbasic}. So don't expect that the
+% following hack does the correct thing for every version of \pkg{nomencl}!
+%
+% \begin{option}{nomencl}
+% \changes{v3.23}{2017/03/31}{added}
+% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
+% removed}
+% \begin{macrocode}
+%<*package&option>
+\RequirePackage{xpatch}%
+\KOMA@ifkey{nomencl}{@scrhack@nomencl}
+\KOMAExecuteOptions{nomencl=true}
+%</package&option>
+%<*package&body>
+\AfterPackage*{nomencl}{%
+ \KOMA@key[scrhack.sty]{nomencl}{%
+ \PackageWarning{scrhack}{option `nomencl' ignored}%
+ \FamilyKeyStateProcessed
+ }%
+ \if@scrhack@nomencl\scr@hack@load\@pkgextension{nomencl}\fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}^^A nomencl
+%
+% \begin{command}{\thenomenclature}
+% \changes{v3.23}{2017/03/31}{added}
+% Instead of using the several definitions by cases of the several versions of
+% \pkg{nomencl} we use a patch, that should remove all such cases and use
+% \pkg*{tocbasic} always.
+% \begin{macrocode}
+%<*nomencl&body>
+\RequirePackage{tocbasic}
+% \end{macrocode}
+% With \pkg{nomencl} > 5.0 this should be all.
+% Unfortunately is isn't, because newer versions of \pkg{nomencl} need option
+% \opt{tocbasic} to be set. Good luck: It is the default. So the chances
+% are good, that with new versions of \pkg{nomencl} usage of \pkg*{tocbasic} is
+% the default.
+% \begin{macrocode}
+\@ifpackagelater{nomencl}{2019/01/01}{%
+ \PackageInfo{scrhack}{only `tocbasic' loaded for `nomencl'}%
+ \expandafter\endinput
+}{}
+% \end{macrocode}
+% Otherwise we have to patch it.
+% \begin{macrocode}
+\addtotoclist[nomencl]{nlo}
+\addtotoclist[nomencl]{nls}
+\xpatchcmd{\thenomenclature}{%
+ \@ifundefined{chapter}%
+ {
+ \section*{\nomname}
+ \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
+ }%
+ {
+ \chapter*{\nomname}
+ \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
+ }%
+}{%
+ \scr@hack@nomencl@head
+}{%
+ \PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
+}{%
+% \end{macrocode}
+% \changes{v3.26b}{2019/01/23}{new \pkg{nomencl} 5.0}
+% From \pkg{nomencl} 5.0 another code is used if the nomenclature is a
+% chapter. So we need another patch:
+% \begin{macrocode}
+ \xpatchcmd{\thenomenclature}{%
+ \@ifundefined{chapter}%
+ {
+ \section*{\nomname}
+ \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
+ }%
+ {
+ \chapter*{\nomname}
+ \markboth{\nomname}{\nomname}%
+ \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
+ }%
+ }{%
+ \scr@hack@nomencl@head
+ }{%
+ \PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
+ }{%
+% \end{macrocode}
+% \changes{v3.26b}{2019/01/23}{prepared for hoply comming \pkg{nomencl}}
+% But this code is also wrong, because it breaks manual running heads, e.g.,
+% of page style \texttt{myheadings}. So I hope, there will be another code,
+% that needs a somehow different patch:
+% \begin{macrocode}
+ \xpatchcmd{\thenomenclature}{%
+ \@ifundefined{chapter}%
+ {
+ \section*{\nomname}
+ \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
+ }%
+ {
+ \chapter*{\nomname}
+ \@mkboth{\nomname}{\nomname}%
+ \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
+ }%
+ }{%
+ \scr@hack@nomencl@head
+ }{%
+ \PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
+ }{%
+% \end{macrocode}
+% \changes{v3.25}{2019/01/23}{emergency patch added}
+% \changes{v3.30}{2020/02/25}{spurious space in warning message removed}
+% If this also does not work, we try an emergency patch, that could break
+% things.
+% \begin{macrocode}
+ \xpatchcmd{\thenomenclature}{%
+ \@ifundefined{chapter}%
+ }{%
+ \scr@hack@nomencl@head
+ \@gobbletwo
+ }{%
+ \PackageWarning{scrhack}{%
+ using emergency patch of \string\thenomenclature.\MessageBreak
+ This could happen if you are using an unknown\MessageBreak
+ release of package `nomencl'.\MessageBreak
+ Mostly this patch does work too, but it also could\MessageBreak
+ break `nomencl`. If this happens, please deactivate\MessageBreak
+ the `nomencl` hack of `scrhack`%
+ }%
+ }{%
+ \PackageWarning{scrhack}{%
+ cannot patch \string\thenomenclature.\MessageBreak
+ This could happen if you are using an unknown\MessageBreak
+ release of package `nomencl'%
+ }%
+ }%
+ }%
+ }%
+}
+%</nomencl&body>
+% \end{macrocode}
+% \end{command}^^A \thenomenclature
+%
+% \begin{macro}{\scr@hack@nomencl@head}
+% \changes{v3.23}{2017/03/31}{heading of \env{thenomenclature} by
+% \pkg*{tocbasic}}
+% \changes{v3.31}{2020/07/08}{internal \cs{list@fname} eliminated}
+% We don't need an extra group, because \env{thenomenclature} already adds the
+% group.
+% \begin{macrocode}
+%<*nomencl&body>
+\newcommand*{\scr@hack@nomencl@head}{%
+ \providecommand*{\listofnlsname}{\nomname}%
+ \def\@currext{nls}%
+ \tocbasic@listhead{\nomname}%
+}
+%</nomencl&body>
+% \end{macrocode}
+% \begin{description}
+% \item[Note:] Only the heading hooks of \pkg*{tocbasic} are used. The other
+% hooks can be set, but would never be used!
+% \end{description}
+% \end{macro}^^A \scr@hack@nomencl@head
+%
+% \begin{macro}{\if@intoc}
+% \changes{3.23}{2017/03/31}{support of \cs{if@intoc}}
+% Generally we have to support \pkg{nomencl}'s option \opt{intoc} and the
+% switch \cs{if@intoc}. This is done by (un-)setting \pkg*{tocbasic} feature
+% \texttt{totoc}. So additional changes of the feature can be done at first
+% after loading both, \pkg{nomencl} and \pkg*{scrhack}. Moreover, later changes
+% of \cs{if@intoc} are not recognized.
+% \begin{macrocode}
+%<*nomencl&body>
+\if@intoc
+ \setuptoc{nls}{totoc}
+\fi
+%</nomencl&body>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{The \texorpdfstring{\pkg*{setspace}}{setspace} hack}
+%
+% Package \pkg{setspace} internally uses \cs{@ptsize} in a way, that only
+% works as long as \cs{@ptsize} is an integer. But because \KOMAScript{}
+% supports non integer font sizes, \cs{@ptsize} can also contain non-integer
+% values. Moreover for \opt{11pt}, \LaTeX{} does not use a 11\,pt font but
+% a 10.95\,pt font with a \len{baselineskip} of 13.6\,pt, the correct factor
+% for, e.g., \cs{onehalfspacing} would be:
+% \[ 10{,}95\,\mathrm{pt} \dot 1{,5} / 13{,}6\,\mathrm{pt} \equiv 1{,}208 \]
+% But \pkg{setspace} uses 1.213, which would be correct for 11\,pt. Moreover
+% the factor is always relative to the base font size and not the current font
+% size. Because of this
+% \begin{verbatim}
+% \documentclass[10pt]{article}
+% \usepackage{setspace}
+% \begin{document}
+% \large\onehalfspacing\raggedright
+% Fontsize: \csname f@size\endcsname pt\\
+% Normal baselineskip: \csname f@baselineskip\endcsname\\
+% baselineskip: \the\baselineskip
+% \end{document}
+% \end{verbatim}
+% results in another \len{baselineskip} than:
+% \begin{verbatim}
+% \documentclass[11pt]{article}
+% \usepackage{setspace}
+% \begin{document}
+% \large\onehalfspacing\raggedright
+% Fontsize: \csname f@size\endcsname pt\\
+% Normal baselineskip: \csname f@baselineskip\endcsname\\
+% baselineskip: \the\baselineskip
+% \end{document}
+% \end{verbatim}
+% despite both examples use the same font size. So, to make it absolutely
+% correct, the factor would have to change with every change of the font
+% size. But the hack also does not do so. It just calculates the factor
+% depending on the base font size an the current font size. This is enough to
+% have the same \len{baselineskip} with both of the examples above.
+%
+% \begin{option}{setspace}
+% \changes{v3.17}{2015/04/16}{added}
+% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
+% removed}
+% \begin{macrocode}
+%<*package&option>
+\KOMA@ifkey{setspace}{@scrhack@setspace}
+\KOMAExecuteOptions{setspace=true}
+%</package&option>
+%<*package&body>
+\AfterPackage*{setspace}{%
+ \KOMA@key[scrhack.sty]{setspace}{%
+ \PackageWarning{scrhack}{option `setspace' ignored}%
+ \FamilyKeyStateProcessed
+ }%
+ \if@scrhack@setspace\scr@hack@load\@pkgextension{setspace}\fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}
+%
+%
+% \begin{command}{\onehalfspacing}
+% \changes{v3.17}{2015/04/16}{added}
+% This selects the one half line spacing. I think, a factor with three digits
+% for the decimals should be enough.
+% \begin{macrocode}
+%<*setspace&body>
+\scr@ifexpected{\onehalfspacing}{%
+ \long\def\onehalfspacing{%
+ \setstretch{1.25}% default
+ \ifcase \@ptsize \relax % 10pt
+ \setstretch {1.25}%
+ \or % 11pt
+ \setstretch {1.213}%
+ \or % 12pt
+ \setstretch {1.241}%
+ \fi
+ }%
+}{%
+ \renewcommand*{\onehalfspacing}{%
+ \@tempdima=\dimexpr (\f@size pt)*1500/
+ (\dimexpr \f@baselineskip\relax)*\p@/1000\relax
+ \expandafter\setstretch\expandafter{\strip@pt\@tempdima}%
+ }%
+}{%
+% \end{macrocode}
+% \changes{v3.39}{2023/03/15}{support for \pkg{setspace} 6.7b added}
+% \begin{macrocode}
+ \scr@ifexpected{\onehalfspacing}{%
+ \long\def\onehalfspacing{%
+ \setstretch{1.25}% default
+% DPC 6.7b guard \@ptsize
+ \ifx\@ptsize\@undefined\else
+ \ifcase \@ptsize \relax % 10pt
+ \setstretch {1.25}%
+ \or % 11pt
+ \setstretch {1.213}%
+ \or % 12pt
+ \setstretch {1.241}%
+ \fi
+ \fi
+ }%
+ }{%
+ \renewcommand*{\onehalfspacing}{%
+ \@tempdima=\dimexpr (\f@size pt)*1500/
+ (\dimexpr \f@baselineskip\relax)*\p@/1000\relax
+ \expandafter\setstretch\expandafter{\strip@pt\@tempdima}%
+ }%
+ }{%
+ \PackageWarning{scrhack}{unknown \string\onehalfspacing\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported setpace version}%
+ }%
+}
+% \end{macrocode}
+% \end{command}
+% \begin{command}{\doublespacing}
+% \changes{v3.17}{2015/04/16}{new}
+% This selects the double line spacing. I think, a factor with three digits
+% for the decimals should be enough.
+% \begin{macrocode}
+\scr@ifexpected{\doublespacing}{%
+ \long\def\doublespacing{%
+ \setstretch{1.667}% default
+ \ifcase \@ptsize \relax % 10pt
+ \setstretch {1.667}%
+ \or % 11pt
+ \setstretch {1.618}%
+ \or % 12pt
+ \setstretch {1.655}%
+ \fi
+ }%
+}{%
+ \renewcommand*{\doublespacing}{%
+ \@tempdima=\dimexpr (\f@size pt)*2000/
+ (\dimexpr \f@baselineskip\relax)*\p@/1000\relax
+ \expandafter\setstretch\expandafter{\strip@pt\@tempdima}%
+ }%
+}{%
+% \end{macrocode}
+% \changes{v3.39}{2023/03/15}{support for \pkg{setspace} 6.7b added}
+% \begin{macrocode}
+ \scr@ifexpected{\doublespacing}{%
+ \long\def\doublespacing{%
+ \setstretch {1.667}% default
+% DPC 6.7b guard \@ptsize
+ \ifx\@ptsize\@undefined\else
+ \ifcase \@ptsize \relax % 10pt
+ \setstretch {1.667}%
+ \or % 11pt
+ \setstretch {1.618}%
+ \or % 12pt
+ \setstretch {1.655}%
+ \fi
+ \fi
+ }%
+ }{%
+ \renewcommand*{\doublespacing}{%
+ \@tempdima=\dimexpr (\f@size pt)*2000/
+ (\dimexpr \f@baselineskip\relax)*\p@/1000\relax
+ \expandafter\setstretch\expandafter{\strip@pt\@tempdima}%
+ }%
+ }{%
+ \PackageWarning{scrhack}{unknown \string\doublespacing\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported setpace version}%
+ }%
+}
+%</setspace&body>
+% \end{macrocode}
+% \end{command}
+%
+%
+% \subsection{The \texorpdfstring{\pkg*{lscape}}{lscape} hack}
+% \changes{v3.18a}{2015/07/07}{\pkg{lscape} hack added}
+%
+% The package does change \len{textheight} inside \env{landscape} to the prior
+% value of \len{textwidth}, nevertheless is does not change \len{textwidth} to
+% the prior value of \len{textheight}. This is at least inconsistent. After
+% asking him, David~Carlisle answered, that he does not change
+% \len{textwidth}, because this could result in problems. Therefore it is very
+% strange, that he does change \cs{textheight}, despite this also to problems,
+% e.g., with packages \pkg{showframe} or \pkg*{scrlayer}. So the patch here
+% also keeps \len{textheight} unchanged. This also has to take care for
+% \pkg{pdflscape}. The patches are done using \pkg{xpatch}.
+%
+%
+% \begin{option}{lscape}
+% \changes{v3.18a}{2015/07/07}{added}
+% \changes{v3.20}{2016/05/07}{loading \pkg{xpatch} in option part already}
+% \changes{v3.39}{2022/11/11}{initial dot in member argument of \cs{KOMA@key}
+% removed}
+% \begin{macrocode}
+%<*package&option>
+\RequirePackage{xpatch}%
+\KOMA@ifkey{lscape}{@scrhack@lscape}%
+\KOMAExecuteOptions{lscape=true}%
+%</package&option>
+%<*package&body>
+\AfterPackage*{lscape}{%
+ \if@scrhack@lscape\scr@hack@load\@pkgextension{lscape}\else
+ \KOMA@key[scrhack.sty]{lscape}{%
+ \PackageWarning{scrhack}{option `lscape' ignored}%
+ \FamilyKeyStateProcessed
+ }%
+ \fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}
+%
+% \begin{command}{\landscape}
+% \changes{v3.18a}{2015/07/07}{added}
+% \changes{v3.20}{2016/05/07}{loading \pkg{xpatch} in option part already}
+% This command is the beginning of environment \env{landscape}. This has to be
+% patched using \pkg{xpatch}.
+% \begin{description}
+% \item[Note:] This is a load time option and cannot be changed after loading
+% the package!
+% \end{description}
+% \begin{macrocode}
+%<*lscape&body>
+\xpatchcmd{\landscape}{\textheight=\vsize}{%
+ \if@scrhack@lscape
+% \end{macrocode}
+% \begin{macro}{\@outputpage}
+% \changes{v3.18a}{2015/08/11}{added}
+% Here the changed value of \len{textheight} is needed for initialization of
+% \cs{@colht}. So we patch it to use the new internal \len{scr@LT@textheight}
+% instead of \len{textheight}.
+% \begin{macrocode}
+ \scrh@LT@textheight=\vsize
+ \let\scrh@LT@outputpage\@outputpage
+ \def\@outputpage{\scrh@LT@outputpage\global\@colht\scrh@LT@textheight}%
+ \else
+ \textheight=\vsize
+ \fi
+}{%
+ \PackageInfo{scrhack}{\string\landscape\space patched to make
+ \string\textheight\space change optional}%
+}{%
+ \PackageWarning{scrhack}{Cannot patch \string\landscape!\MessageBreak
+ Maybe you are using a unsupported lscape version}%
+ \@scrhack@lscapefalse
+}
+% \end{macrocode}
+% \begin{ilength}{\scrh@LT@textheight}
+% \changes{v3.18a}{2015/08/11}{new}
+% \begin{macrocode}
+\newlength{\scrh@LT@textheight}
+%</lscape&body>
+% \end{macrocode}
+% \end{ilength}^^A \scrh@LT@textheight
+% \end{macro}^^A \@outputpage
+% \end{command}^^A \landscape
+%
+%
+% \subsection{The standard classes sections hack}
+% \label{sec:standardsections}
+% The \emph{standard classes sections hack} differs from each other
+% hack. First of all it does not patch a specific package but the class
+% definitions of section commands from \cs{part} till
+% \cs{subparagraph}. Additionally it resets several internal \LaTeX{} macros
+% which are changed by \KOMAScript{} classes to their original
+% definition. Last but not least it is not activated by default, but the user
+% has to activate it, if he needs it. The hack has more potential to break
+% things than to make things better. Because of this, there is not any support
+% for using this hack and the hack shows several warning messages.
+%
+% \begin{option}{standardsections}
+% \begin{macrocode}
+%<*package&option>
+\KOMA@ifkey{standardsections}{@scrhack@standardsections}
+\KOMAExecuteOptions{standardsections=false}
+%</package&option>
+%<*package&body>
+\AtEndOfPackage{%
+ \if@scrhack@standardsections
+ \PackageInfo{scrhack}{loading standard classes sections hack}%
+ \input{standardsections.hak}%
+ \fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}^^A standardsections
+%
+% \begin{command}{\part,\chapter,
+% \section,\subsection,\subsubsection,
+% \paragraph,\subparagraph}
+% The hack redefines all these commands to a definition copied from the
+% standard \LaTeX{} classes version v1.4i. Copyright of this code is by the
+% \LaTeX3{} Project. The complete, unmodified code can be found on
+% \url{https://ctan.org/tex-archive/macros/latex/base/classes.dtx}.
+% \begin{macrocode}
+%<*standardsections&body>
+\PackageWarningNoLine{scrhack}{%
+ You are loosing every kind of support because of\MessageBreak
+ using the dangerous standard classes sections hack!\MessageBreak
+ This hack can break several classes and packages.\MessageBreak
+ However, sometimes it is needed to make a\MessageBreak
+ package work%
+}%
+\PackageInfo{scrhack}{%
+ Using code from the standard LaTeX classes.\MessageBreak
+ For more information about this code and the\MessageBreak
+ license of this code, please see:\MessageBreak
+ https://ctan.org/tex-archive/macros/latex/base/classes.dtx
+}%
+\@ifpackageloaded{hyperref}{%
+ \PackageWarning{scrhack}{this hack should not be loaded after `hyperref'}%
+}{}
+\@ifpackageloaded{titlesec}{%
+ \PackageWarning{scrhack}{this hack should not be loaded after `titlesec'}%
+}{}
+\@ifpackageloaded{sectsty}{%
+ \PackageWarning{scrhack}{this hack should not be loaded after `sectsty'}%
+}{}
+\scr@ifundefinedorrelax{chapter}{%
+% \end{macrocode}
+% It seems to be an article class, so we use the code from
+% \href{http://mirrors.ctan.org/macros/latex/base/classes.dtx}{\cls*{article}}.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{c@part}{\newcounter{part}}{}%
+ \scr@ifundefinedorrelax{c@section}{\newcounter{section}}{}%
+ \scr@ifundefinedorrelax{c@subsection}{\newcounter{subsection}[section]}{}%
+ \scr@ifundefinedorrelax{c@subsubsection}{%
+ \newcounter{subsubsection}[subsection]}{}%
+ \scr@ifundefinedorrelax{c@paragraph}{%
+ \newcounter{paragraph}[subsubsection]}{}%
+ \scr@ifundefinedorrelax{c@subparagraph}{%
+ \newcounter{subparagraph}[paragraph]}{}%
+ \renewcommand\thepart {\@Roman\c@part}%
+ \renewcommand\thesection {\@arabic\c@section}%
+ \renewcommand\thesubsection {\thesection.\@arabic\c@subsection}%
+ \renewcommand\thesubsubsection{\thesubsection.\@arabic\c@subsubsection}%
+ \renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph}%
+ \renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}%
+ \def\part{%
+ \if@noskipsec \leavevmode \fi
+ \par
+ \addvspace{4ex}%
+ \@afterindentfalse
+ \secdef\@part\@spart}%
+ \def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ {\parindent \z@ \raggedright
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \Large\bfseries \partname\nobreakspace\thepart
+ \par\nobreak
+ \fi
+ \huge \bfseries #2%
+ \markboth{}{}\par}%
+ \nobreak
+ \vskip 3ex
+ \@afterheading}%
+ \def\@spart#1{%
+ {\parindent \z@ \raggedright
+ \interlinepenalty \@M
+ \normalfont
+ \huge \bfseries #1\par}%
+ \nobreak
+ \vskip 3ex
+ \@afterheading}%
+ \def\section{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\normalfont\Large\bfseries}}%
+ \def\subsection{\@startsection{subsection}{2}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\large\bfseries}}%
+ \def\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\normalsize\bfseries}}%
+ \def\paragraph{\@startsection{paragraph}{4}{\z@}%
+ {3.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}%
+ \def\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
+ {3.25ex \@plus1ex \@minus .2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}%
+}{%
+% \end{macrocode}
+% It seems to be either a book or report class.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{c@part}{\newcounter{part}}{}%
+ \scr@ifundefinedorrelax{c@chapter}{\newcounter{chapter}}{}%
+ \scr@ifundefinedorrelax{c@section}{\newcounter{section}[chapter]}{}%
+ \scr@ifundefinedorrelax{c@subsection}{\newcounter{subsection}[section]}{}%
+ \scr@ifundefinedorrelax{c@subsubsection}{%
+ \newcounter{subsubsection}[subsection]}{}%
+ \scr@ifundefinedorrelax{c@paragraph}{%
+ \newcounter{paragraph}[subsubsection]}{}%
+ \scr@ifundefinedorrelax{c@subparagraph}{%
+ \newcounter{subparagraph}[paragraph]}{}%
+ \def\@chapapp{\chaptername}%
+ \scr@ifundefinedorrelax{frontmatter}{%
+% \end{macrocode}
+% It seems not to be a book class.
+% \begin{macrocode}
+ \def\part{%
+ \if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \thispagestyle{plain}%
+ \if@twocolumn
+ \onecolumn
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+ \null\vfil
+ \secdef\@part\@spart}
+
+ \def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ \markboth{}{}%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >-2\relax
+ \huge\bfseries \partname\nobreakspace\thepart
+ \par
+ \vskip 20\p@
+ \fi
+ \Huge \bfseries #2\par}%
+ \@endpart}
+ \def\@spart#1{%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \Huge \bfseries #1\par}%
+ \@endpart}
+ \def\@endpart{\vfil\newpage
+ \if@twoside
+ \if@openright
+ \null
+ \thispagestyle{empty}%
+ \newpage
+ \fi
+ \fi
+ \if@tempswa
+ \twocolumn
+ \fi}
+ \def\chapter{\if@openright\cleardoublepage\else\clearpage\fi
+ \thispagestyle{plain}%
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@chapter\@schapter}
+ \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}%
+ {\protect\numberline{\thechapter}#1}%
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}
+ \def\@makechapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \huge\bfseries \@chapapp\space \thechapter
+ \par\nobreak
+ \vskip 20\p@
+ \fi
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}
+ \def\@schapter#1{\if@twocolumn
+ \@topnewpage[\@makeschapterhead{#1}]%
+ \else
+ \@makeschapterhead{#1}%
+ \@afterheading
+ \fi}
+ \def\@makeschapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright
+ \normalfont
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}
+ \def\section{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\normalfont\Large\bfseries}}%
+ \def\subsection{\@startsection{subsection}{2}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\large\bfseries}}%
+ \def\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\normalsize\bfseries}}%
+ \def\paragraph{\@startsection{paragraph}{4}{\z@}%
+ {3.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}%
+ \def\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
+ {3.25ex \@plus1ex \@minus .2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}%
+ }{%
+% \end{macrocode}
+% It seems to be a book class.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{if@mainmatter}{%
+ \expandafter\newif\csname if@mainmatter\endcsname
+ }{}%
+ \def\frontmatter{%
+ \cleardoublepage
+ \@mainmatterfalse
+ \pagenumbering{roman}}%
+ \def\mainmatter{%
+ \cleardoublepage
+ \@mainmattertrue
+ \pagenumbering{arabic}}%
+ \def\backmatter{%
+ \if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \@mainmatterfalse}%
+ \def\part{%
+ \if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \thispagestyle{plain}%
+ \if@twocolumn
+ \onecolumn
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+ \null\vfil
+ \secdef\@part\@spart}%
+
+ \def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ \markboth{}{}%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >-2\relax
+ \huge\bfseries \partname\nobreakspace\thepart
+ \par
+ \vskip 20\p@
+ \fi
+ \Huge \bfseries #2\par}%
+ \@endpart}%
+ \def\@spart#1{%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \Huge \bfseries #1\par}%
+ \@endpart}%
+ \def\@endpart{\vfil\newpage
+ \if@twoside
+ \if@openright
+ \null
+ \thispagestyle{empty}%
+ \newpage
+ \fi
+ \fi
+ \if@tempswa
+ \twocolumn
+ \fi}%
+ \def\chapter{\if@openright\cleardoublepage\else\clearpage\fi
+ \thispagestyle{plain}%
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@chapter\@schapter}%
+ \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}%
+ {\protect\numberline{\thechapter}#1}%
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}%
+ \def\@makechapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \huge\bfseries \@chapapp\space \thechapter
+ \par\nobreak
+ \vskip 20\p@
+ \fi
+ \fi
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}%
+ \def\@schapter#1{\if@twocolumn
+ \@topnewpage[\@makeschapterhead{#1}]%
+ \else
+ \@makeschapterhead{#1}%
+ \@afterheading
+ \fi}%
+ \def\@makeschapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright
+ \normalfont
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}%
+ \def\section{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\normalfont\Large\bfseries}}%
+ \def\subsection{\@startsection{subsection}{2}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\large\bfseries}}%
+ \def\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\normalsize\bfseries}}%
+ \def\paragraph{\@startsection{paragraph}{4}{\z@}%
+ {3.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}%
+ \def\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
+ {3.25ex \@plus1ex \@minus .2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}%
+ }%
+}% End of the derived code.
+% \end{macrocode}
+% \end{command}
+%
+% \begin{macro}{\@startsection}
+% \KOMAScript{} classes redefine this internal \LaTeX{} kernel macro. In this
+% case \cs{scr@saved@startsection} is defined, differs from
+% \cs{@startsection} and has the definition found before redefining the
+% original macro. We do nothing else but resetting \cs{@startsection} to this
+% saved definition.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{scr@saved@startsection}{}{%
+ \ifx\@startsection\scr@saved@startsection\else
+ \PackageWarningNoLine{scrhack}{%
+ Resetting \string\@startsection,\MessageBreak
+ because of loading standard classes sections hack%
+ }%
+ \let\@startsection\scr@saved@startsection
+ \fi
+}
+% \end{macrocode}
+% \end{macro}^^A \@startsection
+%
+% \begin{macro}{\@sect,\@ssect,\@xsect}
+% All these should be resetted to their original definitions stored in
+% \cs{scr@latex@\dots}.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{scr@latex@sect}{}{%
+ \ifx\@sect\scr@latex@sect\else
+ \PackageWarningNoLine{scrhack}{%
+ Resetting \string\@sect,\MessageBreak
+ because of loading standard classes sections hack%
+ }%
+ \let\@sect\scr@latex@sect
+ \fi
+}
+\scr@ifundefinedorrelax{scr@latex@ssect}{}{%
+ \ifx\@ssect\scr@latex@ssect\else
+ \PackageWarningNoLine{scrhack}{%
+ Resetting \string\@ssect,\MessageBreak
+ because of loading standard classes sections hack%
+ }%
+ \let\@ssect\scr@latex@ssect
+ \fi
+}
+\scr@ifundefinedorrelax{scr@latex@xsect}{}{%
+ \ifx\@xsect\scr@latex@xsect\else
+ \PackageWarningNoLine{scrhack}{%
+ Resetting \string\@xsect,\MessageBreak
+ because of loading standard classes sections hack%
+ }%
+ \let\@xsect\scr@latex@xsect
+ \fi
+}
+% \end{macrocode}
+% \end{macro}^^A \@xsect,\@ssect,\@sect
+%
+% \begin{command}{\DeclareSectionCommand,\RedeclareSectionCommand,
+% \DeclareNewSectionCommand,\ProvideSectionCommand,
+% \DeclareSectionCommands,\RedeclareSectionCommands,
+% \DeclareNewSectionCommands,\ProvideSectionCommands}
+% These \KOMAScript{} commands do not make sense any longer after forced
+% redefinition of \cs{part} \dots{} \cs{subparagraph}. They even would not
+% work correctly after resetting, e.g., \cs{@startsection}. So best reaction
+% is to \emph{undefine} them.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{DeclareSectionCommand}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ \string\DeclareSectionCommand\space
+ and all derivates deactivated,\MessageBreak
+ because of loading standard classes sections hack%
+ }%
+ \let\DeclareSectionCommand\undefined
+ \let\DeclareSectionCommands\undefined
+ \let\RedeclareSectionCommand\undefined
+ \let\RedeclareSectionCommands\undefined
+ \let\DeclareNewSectionCommand\undefined
+ \let\DeclareNewSectionCommands\undefined
+ \let\ProvideSectionCommand\undefined
+ \let\ProvideSectionCommands\undefined
+}
+% \end{macrocode}
+% \begin{macro}{\scr@chapter@before@hyperref@patch,
+% \scr@chapter@after@hyperref@patch}
+% Now, definitions without respecting \pkg{hyperref} are used, so
+% \pkg{hyperref} should again be able to patch them. So the hack should
+% deactivate the patch deactivation of the \KOMAScript{} classes.
+% \begin{macrocode}
+\let\scr@chapter@before@hyperref@patch\relax
+\let\scr@chapter@after@hyperref@patch\relax
+% \end{macrocode}
+% \end{macro}
+% \end{command}
+%
+% \begin{macro}{\scr@osectarg}
+% The \KOMAScript{} classes use this macro to store how to use the optional
+% argument of section commands. But with the standard class definition the
+% only possibility is to use it as running head and write it into the table of
+% contents without any extended handling. So the only value, that makes sense
+% is 0.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{scr@osectarg}{}{%
+ \def\reserved@a{0}%
+ \ifx\scr@osectarg\reserved@a\else
+ \let\scr@osectarg\reserved@a
+ \PackageWarningNoLine{scrhack}{%
+ Extended option handling for section commands deactivated,\MessageBreak
+ because of loading standard classes sections hack%
+ }%
+ \fi
+}%
+% \end{macrocode}
+% \begin{macro}{\scr@activate@xsection}
+% Further changing of the value has to be deactivated.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{scr@activate@xsection}{}{%
+ \renewcommand*{\scr@activate@xsection}[1]{%
+ \edef\scr@osectarg{#1}\def\reserved@a{0}%
+ \ifx\scr@osectarg\reserved@a
+ \else
+ \let\scr@osectarg\reserved@a
+ \PackageWarning{scrhack}{%
+ Because of loading the standard classes\MessageBreak
+ sections hack, the extended option handling\MessageBreak
+ of section commands failed%
+ }%
+ \fi
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@activate@xsection
+% \end{macro}^^A \scr@osectarg
+%
+% \begin{command}{\partformat,\chapterformat}
+% Most \cs{\dots format} macros of \KOMAScript{} are still used, because of
+% the redefinition of \cs{@seccntformat}. But \cs{part} and \cs{chapter} are
+% defined without using them.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{partformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ Usage of \string\partformat\space
+ deactivated,\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+}
+\scr@ifundefinedorrelax{chapterformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ Usage of \string\chapterformat\space
+ deactivated,\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+}
+% \end{macrocode}
+% \end{command}^^A \chapterformat,\partformat
+%
+% \begin{command}{\sectionformat,\subsectionformat,\subsubsectionformat,
+% \paragraphformat,\subparagraphformat}
+% All these commands have to be resetted to not use the automatic dot and to
+% add a \cs{quad} instead of an \cs{enskip}.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{sectionformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ \string\sectionformat\space set to
+ `\string\thesection\string\quad',\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+ \renewcommand*{\sectionformat}{\thesection\quad}%
+}
+\scr@ifundefinedorrelax{subsectionformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ \string\subsectionformat\space set to
+ `\string\thesubsection\string\quad'\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+ \renewcommand*{\subsectionformat}{\thesubsection\quad}%
+}
+\scr@ifundefinedorrelax{subsubsectionformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ \string\subsubsectionformat\space set to
+ `\string\thesubsubsection\string\quad'\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+ \renewcommand*{\subsubsectionformat}{\thesubsubsection\quad}%
+}
+\scr@ifundefinedorrelax{paragraphformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ \string\paragraphformat\space set to
+ `\string\theparagraph\string\quad'\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+ \renewcommand*{\paragraphformat}{\theparagraph\quad}%
+}
+\scr@ifundefinedorrelax{subparagraphformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ \string\subparagraphformat\space set to
+ `\string\thesubparagraph\string\quad'\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+ \renewcommand*{\subparagraphformat}{\thesubparagraph\quad}%
+}
+% \end{macrocode}
+% \end{command}
+%
+% \begin{command}{\partlineswithprefixformat,
+% \chapterlineswithprefixformat,\chapterlinesformat,
+% \sectionlinesformat,\sectioncatchphraseformat}
+% These \KOMAScript{} commands are not used any longer.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{partlineswithprefixformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ Usage of \string\partlineswithprefixformat\space deactivated,\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+}
+\scr@ifundefinedorrelax{chapterlineswithprefixformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ Usage of \string\chapterlineswithprefixformat\space and\MessageBreak
+ \string\chapterlinesformat\space deactivated,\MessageBreak
+ because of using standard classes sections hack%
+ }%
+}
+\scr@ifundefinedorrelax{sectionlinesformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ Usage of \string\sectionlinesformat\space and\MessageBreak
+ \string\sectioncatchphraseformat\space deactivated,\MessageBreak
+ because of using standard classes sections hack%
+ }%
+}
+% \end{macrocode}
+% \end{command}^^A \partlineswithprefixformat …
+%
+% \begin{option}{headings}
+% \changes{v3.39}{2022/11/11}{initial dot in member argument of option storage
+% commands removed}
+% The \KOMAScript{} option does not make sense any longer. So it is
+% deactivated and usage will throw an error.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{KOMAClassName}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ KOMA-Script option `headings' removed,\MessageBreak
+ because of loading standard classes sections hack%
+ }%
+ \RelaxFamilyKey[.\KOMAClassFileName]{KOMA}{headings}%
+ \KOMA@kav@removekey{\KOMAClassFileName}{headings}%
+}
+% \end{macrocode}
+% \end{option}^^A headings
+%
+% \begin{macro}{\scr@class@titlesec@warning}
+% The warning about loading \pkg{titlesec} has to be changes, because we do
+% not expect errors any longer.
+% \begin{macrocode}
+\def\scr@class@titlesec@warning{%
+ \PackageWarning{scrhack}{%
+ Usage of `titlesec' should work, because of\MessageBreak
+ loading the standard classes sections hack.\MessageBreak
+ However, you should know, there is not any\MessageBreak
+ support for this combination by the\MessageBreak
+ KOMA-Script author%
+ }%
+}
+%</standardsections&body>
+% \end{macrocode}
+% \end{macro}^^A \scr@class@titlesec@warning
+%
+% \subsection{Executing options}
+%
+% Last but not least the options have to be processed. In the generated
+% package this will be done before the commands of \autoref{sec:macros}.
+% \begin{macrocode}
+%<*package&option>
+\KOMAProcessOptions\relax
+%</package&option>
+% \end{macrocode}
+%
+% \Finale
+% \PrintChanges
+%
+\endinput
+% Local Variables:
+% mode: doctex
+% ispell-local-dictionary: "en_US"
+% eval: (flyspell-mode 1)
+% TeX-master: t
+% TeX-engine: luatex-dev
+% eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx"))
+% End:
diff --git a/macros/latex/contrib/scrhack/scrhack-2023-07-07.pdf b/macros/latex/contrib/scrhack/scrhack-2023-07-07.pdf
new file mode 100644
index 0000000000..59ae934110
--- /dev/null
+++ b/macros/latex/contrib/scrhack/scrhack-2023-07-07.pdf
Binary files differ
diff --git a/macros/latex/contrib/scrhack/scrhack.dtx b/macros/latex/contrib/scrhack/scrhack.dtx
new file mode 100644
index 0000000000..a14d7e2e94
--- /dev/null
+++ b/macros/latex/contrib/scrhack/scrhack.dtx
@@ -0,0 +1,991 @@
+% \iffalse meta-comment
+% ======================================================================
+% scrhack.dtx
+% Copyright © 2008–2024 Markus Kohm
+%
+% This work is a KOMA-Script spin-off. For the original sources of
+% KOMA-Script's `scrhack.sty' see file `scrhack.dtx' in the KOMA-Script
+% sources at <https://sourceforge.net/p/koma-script/code/>.
+%
+% Development is taking place as part of `scrhack' at
+% <https://github.com/komascript/third-party-enhancements>. New issues
+% should be reported there as well as known issues can be found.
+%
+% This work may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, version 1.3c of the license.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.<3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later and of this work.
+%
+% This work has the LPPL maintenance status "author-maintained".
+%
+% The Current Maintainer and author of this work is Markus Kohm.
+%
+% This work consists of the file `scrhack.dtx',
+% `scrhack-2023-07-07,dtx', and `README.md'.
+%
+% The recommended way to install `scrhack' is to use
+% the package manager of your TeX distribution.
+% ======================================================================
+%
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{scrhack.dtx}
+%</dtx>
+%<package>\providecommand\DeclareRelease[3]{}
+%<package>\providecommand\DeclareCurrentRelease[2]{}
+%<package>\DeclareRelease{v3.41}{2023-07-07}{scrhack-2023-07-07.sty}
+%<package>\DeclareCurrentRelease{}{2023-07-15}
+%<*dtx|package>
+%<package>\ProvidesPackage{scrhack}
+ [2024-09-04 v3.42
+%<dtx> sources and unpack driver of
+ scrhack emulation package]
+%</dtx|package>
+%<*dtx>
+\ifx\documentclass\undefined
+ \input docstrip.tex
+ \generate{%
+ \file{scrhack.sty}{%
+ \from{scrhack.dtx}{package}%
+ }%
+ }%
+\else
+ \let\endbatchfile\relax
+\fi
+\endbatchfile
+\documentclass[ngerman,USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\usepackage{csquotes}
+\usepackage[style=alphabetic]{biblatex}
+\begin{filecontents}[force]{\jobname.bib}
+@online{pkg:koma-script,
+ author={Markus Kohm},
+ version={3.41},
+ date={2023-07-07},
+ title={{\KOMAScript} --- A bundle of versatile classes and packages},
+ url={https://ctan.org/pkg/koma-script},
+ urldate={2023-07-14},
+ note={The \KOMAScript{} bundle provides replacements for the \pkg*{article},
+ \pkg*{report}, and \pkg*{book} classes with emphasis on typography and
+ versatility. There is also a letter class.},
+}
+@manual{pkg:koma-script:manual:de,
+ author={Markus Kohm},
+ date={2023-06-16},
+ title={{\KOMAScript}},
+ subtitle={Die Anleitung},
+ url={http://mirrors.ctan.org/macros/latex/contrib/koma-script/scrguide-de.pdf},
+ urldate={2023-07-04},
+}
+@manual{pkg:koma-script:manual:en,
+ author={Markus Kohm},
+ date={2023-06-16},
+ title={{\KOMAScript}},
+ subtitle={The Guide},
+ url={http://mirrors.ctan.org/macros/latex/contrib/koma-script/scrguide-en.pdf},
+ urldate={2023-07-14},
+}
+@article{latexnews35,
+ author={{The {\LaTeX} Project Team}},
+ shortauthor={TLT},
+ year={2022},
+ month={6},
+ title={Issue 35},
+ journal={{\LaTeX} News},
+ url={http://mirrors.ctan.org/macros/latex/base/ltnews35.pdf},
+ urldate={2023-07-14},
+}
+\end{filecontents}
+\addbibresource{\jobname.bib}
+\setcounter{StandardModuleDepth}{2}
+\providecommand*{\seclabel}[1]{\label{sec:#1}}
+\begin{document}
+ \nocite{pkg:koma-script}
+ \DocInput{scrhack.dtx}
+\end{document}
+%</dtx>
+%\fi
+%
+% \changes{v0.1}{2023/07/14}{start of \KOMAScript{} spin-off}
+%
+% \GetFileInfo{scrhack.dtx}
+% \title{Emulating Former \href{https://komascript.de/}{\KOMAScript} Package
+% \pkg*{scrhack}}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Version \filedate{} \fileversion}
+% \maketitle
+% \begin{abstract}
+% For several years \href{https://komascript.de/}{\KOMAScript} provided a
+% package \pkg*{scrhack}, that has been made not only to improve the
+% compatibility of third-party packages with
+% \href{https://komascript.de/}{\KOMAScript} classes, but also to generally
+% improve third-party packages. The package consisted not only in the
+% package file \file{scrhack.sty} but also in several so called \emph{hacks}
+% as separate files with extension \file{.hak}. In the course of splitting
+% off former \href{https://komascript.de/}{\KOMAScript} packages from the
+% \href{https://komascript.de/}{\KOMAScript} collection, it was decided to
+% create independent packages from the individual hacks. These new
+% independent packages then serve as replacements for the original packages
+% they were intended to improve. In addition, to preserve the functionality
+% of loading the enhancements only when the corresponding original package
+% is loaded, a new \pkg*{scrhack} was created to do just that.
+% \end{abstract}
+%
+% \tableofcontents
+%
+%\iffalse
+%<*doc>
+%\fi
+% \section{History}
+% \label{sec:history}
+Some packages from other authors do not work well with
+\href{https://komascript.de/}{\KOMAScript}. It is often very tedious for the
+author of \href{https://komascript.de/}{\KOMAScript} to convince the authors
+of these packages to make specific improvements. This also applies to packages
+whose development has been discontinued. That's why the \pkg*{scrhack} was
+created. This package alters the commands and definitions of other to work
+better with \href{https://komascript.de/}{\KOMAScript}. Some changes are also
+useful when using other classes.
+
+In the early days of \href{https://komascript.de/}{\KOMAScript}, users wanted
+to handle lists of floating environments created with the \pkg{float} package
+in the same way as the list of figures and list of tables created by
+\href{https://komascript.de/}{\KOMAScript} itself. At that time the author of
+\href{https://komascript.de/}{\KOMAScript} contacted the author of
+\pkg{float} to propose an interface to support such an enhancement. A
+somewhat modified form of that interface was implemented with the
+\cs{float@listhead} and \cs{float@addtolists} commands.
+
+Later it became apparent that these two commands were not flexible enough to
+fully support all of \href{https://komascript.de/}{\KOMAScript}'s
+capabilities. Unfortunately, the author of \pkg{float} had already ceased
+development by that point, so further changes to this package cannot be
+expected.
+
+Other package authors have also adopted these two commands, and it became
+apparent that the implementation in some packages, including \pkg{float},
+means that all these packages can only be loaded in a specific order, even
+though they are otherwise unrelated to each other.
+
+To overcome all these disadvantages and problems,
+\href{https://komascript.de/}{\KOMAScript} no longer officially supports this
+old interface. Instead, \href{https://komascript.de/}{\KOMAScript} warns if
+the old interface is used. At the same time, the \pkg{tocbasic} package has
+been designed and implemented as a central interface for managing of table of
+contents and similar content lists. This package provides many more
+advantages and features than the two old commands.
+
+Although the effort to use this package is very small, so far the authors of
+most of the packages that use the old interface have not made any adjustments.
+Therefore the \KOMAScript author designed a new
+package \pkg*{scrhack} as part of
+\href{https://komascript.de/}{\KOMAScript}. That package contained appropriate
+modifications of the packages
+\pkg{float}, \pkg{floatrow}, \pkg{listings}, and later on also for
+\pkg{nomencl} and some others not related to that interface. Merely loading
+\pkg*{scrhack} was sufficient to make these packages recognize not only the
+setting of the \href{https://komascript.de/}{\KOMAScript} option \opt{listof},
+but, e.g., also to react to the language switching features of the
+\pkg{babel} package. You can find more information
+about the features available by switching packages to \pkg{tocbasic} in
+\autocite{pkg:koma-script:manual:en} or \autocite{pkg:koma-script:manual:de}.
+
+With release of version 3.42 package \pkg*{scrhack} has been removed from
+\href{https://komascript.de/}{\KOMAScript}. The code of the former package has
+been split into several standalone packages, that can be loaded individually
+if needed. However, for compatibility and maybe for convenience there is also
+a new standalone package \pkg*{scrhack} almost compatible with the old
+one.
+
+\section{Using \texorpdfstring{\pkg*{scrhack}}{scrhack}}
+\seclabel{usage}
+
+It is recommended to load the \pkg*{scrhack} package using:
+\begin{verbatim}
+ \usepackage{scrhack}
+\end{verbatim}
+as early as possible. In particular, loading should be done before the
+affected packages. The package also provides several options, one for each
+hack. Usually the options are named identically to the package, that is
+patched by the hack. All these options are boolean options. You can switch
+such an option on assigning value \optvalue{true} or using it without
+value. You can switch off such an option assigning value
+\optvalue{false}. Switching off an option means to not automatically load the
+corresponding enhancement package after the package, that has to be
+patched. Therefore switching off an option results in not patching the
+corresponding package.
+
+\paragraph{Notes:}
+\begin{itemize}
+\item From version 3.42, you cannot use \cs{KOMAoptions} or \cs{KOMAoption}
+ any longer to change the options. Instead loading \pkg*{scrhack} again with
+ other options does not result in an option clash, but in a change of the
+ option settings.
+\item Switching off an option of an already loaded enhancement package is
+ ignored (with warning). It does not unload the enhancement package or switch
+ back to a not patched functionality.
+\item Switching on an option of a not yet loaded enhancement package would
+ result in loading the enhancement package.
+\item From version 3.42, you should no longer load package
+ \pkg*{scrhack}. Instead you can and should simply load the individual
+ enhancement package when you need it.
+\item If you need the old legacy version of \pkg*{scrhack} from
+ \href{https://komascript.de/}{\KOMAScript} 3.41 you can use:
+\begin{verbatim}
+ \usepackage{scrhack}[=2023-07-07]
+\end{verbatim}
+ or
+\begin{verbatim}
+ \usepackage{scrhack}[=v3.41]
+\end{verbatim}
+ However, this depends on internal packages of
+ \href{https://komascript.de/}{\KOMAScript}.
+\item The hacks of the legacy version have been frozen. So the
+ hacks may break with packages or \LaTeX{} versions released after
+ 2023-07-07. There is no support for such combinations!
+\item Loading the legacy version more than once with different option setting
+ still results in option clash errors.
+\end{itemize}
+
+\paragraph{Available options with \pkg*{scrhack}:}
+\begin{description}
+\item[\opt{float=\meta{boolean}}:]
+ \DescribeOption[noprint]{float=\meta{boolean}}%
+ \hfill initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{float} is loaded, load also package \pkg{floatbytocbasic}
+ to fix the issue explained in \autoref{sec:history}. This also provides the
+ full functionality of \pkg{tocbasic} to \pkg{float}.
+\item[\opt{floatrow=\meta{boolean}}:]
+ \DescribeOption[noprint]{floatrow=\meta{boolean}}%
+ \hfill initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{floatrow} is loaded, load also package
+ \pkg{floatbytocbasic} to fix the issue explained in
+ \autoref{sec:history}. This also provides the full functionality of
+ \pkg{tocbasic} to \pkg{floatrow}.
+\item[\opt{hyperref=\meta{boolean}}:]
+ \DescribeOption[noprint]{hyperref=\meta{boolean}}%
+ \hfill
+ \marginline{\raisebox{\dimexpr\ht\strutbox-\height\relax}{\Huge\textcolor{red}{!}}}%
+ initial: \optvalue{false}, default: \optvalue{true}\\
+ Option \opt{hyperref} is deprecated. It is implemented for compatibility
+ reasons only. Using \opt{hyperref} without value or \opt{hyperref=true}
+ results in a warning. Using \opt{hyperref=false} results in an info only.
+\item[\opt{listings=\meta{boolean}}:]
+ \DescribeOption[noprint]{listings=\meta{boolean}}%
+ \hfill
+ \marginline{\raisebox{\dimexpr\ht\strutbox-\height\relax}{\Huge\textcolor{red}{!}}}%
+ initial: \optvalue{false}, default: \optvalue{true}\\
+ Option \opt{listings} is deprecated. It is implemented for compatibility
+ reasons only. Using \opt{listings} without value or \opt{listings=true}
+ results in a warning. Using \opt{listings=false} results in an info only.
+\item[\opt{lscape=\meta{boolean}}:]
+ \DescribeOption[noprint]{lscape=\meta{boolean}}%
+ \hfill initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{lscape} is loaded, load also package
+ \pkg{lscapeenhanced} to fix an issue with detection of text height for
+ some packages like \pkg{scrlayer} and \pkg{showframe}.
+\item[\opt{nomencl=\meta{boolean}}:]
+ \DescribeOption[noprint]{nomencl=\meta{boolean}}%
+ \hfill
+ \marginline{\raisebox{\dimexpr\ht\strutbox-\height\relax}{\Huge\textcolor{red}{!}}}%
+ initial: \optvalue{false}, default: \optvalue{true}\\
+ Option \opt{nomencl} is deprecated. It is implemented for compatibility
+ reasons only. Using \opt{nomencl} without value or \opt{nomencl=true}
+ results in a warning. Using \opt{nomencl=false} results in an info only.
+\item[\opt{setspace=\meta{boolean}}:]
+ \DescribeOption[noprint]{setspace=\meta{boolean}}%
+ \hfill initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{setspace} is loaded, load also package
+ \pkg{setspaceenhanced} with the same options plus options \opt{byselectfont}
+ and \opt{keepfontsize}.
+\item[\opt{standardsectioning=\meta{boolean}}:]
+ \DescribeOption[noprint]{standardsectioning=\meta{boolean}}%
+ \hfill initial: \optvalue{false}, default: \optvalue{true}\\
+ Load package \pkg{standardsectioning} to (re-)define the sectioning commands
+ using the code from the standard classes. If \pkg*{scrhack} is loaded
+ \emph{before} any class\footnote{This is detected heuristic by definition of
+ \cs{normalsize}. If \cs{normalsize} contains \cs{@latex@error} no class
+ has been loaded.} the definition is delayed until a class has been loaded.
+\end{description}
+
+\paragraph{Available options with the legacy version:}
+\begin{description}
+\item[\opt{float=\meta{boolean}}:] \hfill
+ initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{float} is loaded, load \file{float.hak} to fix the issue
+ explained in \autoref{sec:history}. This also provides the full
+ functionality of \pkg{tocbasic} to \pkg{float}.
+\item[\opt{floatrow=\meta{boolean}}:] \hfill
+ initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{floatrow} is loaded, load \file{floatrow.hak} to fix the
+ issue explained in \autoref{sec:history}. This also provides the full
+ functionality of \pkg{tocbasic} to \pkg{floatrow}.
+\item[\opt{hyperref=\meta{boolean}}:] \hfill
+ initial: \optvalue{true}, default: \optvalue{true}\\
+ Versions of \pkg{hyperref} before 6.79h set the link anchors after the
+ heading of the starred versions of commands like \cs{part*}, \cs{chapter*},
+ etc. instead of before them. Since then, this problem has been resolved at
+ the suggestion of \KOMAScript's author. But because the change took more
+ than a year, a patch was added to \pkg*{scrhack}. Although this can also be
+ deactivated with \opt{hyperref=false}, you should instead use an up-to-date
+ \pkg{hyperref} release. In this case the legacy version of \pkg*{scrhack}
+ automatically deactivates this unnecessary patch.
+\item[\opt{listings=\meta{boolean}}:] \hfill
+ initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{listings} is loaded, load \file{listings.hak} to fix the
+ issue explained in \autoref{sec:history}. This also provides the full
+ functionality of \pkg{tocbasic} to old versions of \pkg{listings}. With
+ newer versions, also the legacy version of \pkg*{scrhack} automatically
+ deactivates this unnecessary patch.
+\item[\opt{lscape=\meta{boolean}}:] \hfill
+ initial: \optvalue{true}, default: \optvalue{true}\\
+ The \pkg{lscape} package defines a \env{landscape} environment to set the
+ page contents, but not the header or footer in landscape mode. Inside this
+ environment, \len{textheight}is set to the value of \len{textwidth}, but
+ \len{textwidth} is not set to the former value of \len{textheight}. This is
+ inconsistent. As far as I know, \len{textwidth} is left unchanged because
+ setting it to \len{textheight} could interfere with other packages or user
+ commands. But changing \len{textheight} also has this potential, and indeed
+ it breaks, for example, \pkg{showframe} and \pkg{scrlayer}. Thus it would be
+ best if \len{textheight} too remained unchanged. After package \pkg{lscape}
+ is loaded, the legacy version of \pkg*{scrhack} loads \file{lscape.hak},
+ that uses the \pkg{xpatch} package to modify the \env{landscape}
+ environment's start macro \cs{landscape} appropriately.
+
+ Incidentally, the \pkg{pdflscape} package also uses \pkg{lscape}, so this
+ option affects the functioning of this package too.
+\item[\opt{nomencl=\meta{boolean}}:] \hfill
+ initial: \optvalue{true}, default: \optvalue{true}\\
+ After package \pkg{nomencl} is loaded, load \file{nomencl.hak} to fix the
+ issue explained in \autoref{sec:history}. This is a little bit more
+ complicated, because the \pkg*{nomencl} author has also adapted his
+ package to support \pkg{tocbasic}. So additional versions checks are done.
+\item[\opt{setspace=\meta{boolean}}:] \hfill
+ initial: \optvalue{true}, default: \optvalue{true}\\
+ Some packages assume that the class-internal macro \cs{@ptsize} both is
+ defined and expands to an integer. For compatibility,
+ \href{https://komascript.de/}{\KOMAScript} defines \cs{@ptsize} even if the
+ basic font size is something other than 10\,pt, 11\,pt, or 12\,pt.
+ \href{https://komascript.de/}{\KOMAScript} also allows non-integer font
+ sizes. So \cs{@ptsize} can, of course, also expand to a non-integer number.
+
+ One of the packages that cannot cope with a non-integer \cs{@ptsize} is
+ \pkg{setspace}. Additionally, the values set by this package are always
+ dependent on the basic font size, even if the setting is made in the context
+ of another font size. The legacy version of \pkg{scrhack} loads the hack
+ \file{setspace.hak} after package \pkg{setspace} to solves both problems by
+ redefining \cs{onehalfspacing} and \cs{doublespacing} to set the spacing
+ relative to the actual font size.
+
+ \textbf{Note:} if you use \pkg{setspace} with either the
+ \opt{onehalfspacing} or \opt{doublespacing} option, you must load
+ \pkg*{scrhack} first.
+\item[\opt{standardsections=\meta{boolean}}] \hfill
+ initial: \optvalue{false}, default: \optvalue{true}\\
+ Various packages assume that the sectioning commands are defined in a
+ specific way, corresponding to the definitions in the standard classes. But
+ for some classes this is not the case. For example, the
+ \href{https://komascript.de/}{\KOMAScript} classes use a completely
+ different implementation to provide many additional features. But this can
+ cause problems for packages that depend on the definition of the standard
+ classes. The legacy version of \pkg*{scrhack} offers the option to force
+ the sectioning commands \cs{part}, \cs{chapter}, \cs{section},
+ \cs{subsection}, \cs{subsubsection}, \cs{paragraph}, and \cs{subparagraph}
+ to be compatible with those in the standard classes. When \cs{chapter} is
+ defined, the definitions are based on those in \cls{book}. When \cs{chapter}
+ is undefined, the definitions of \cls{article} are used.
+
+ If you are using a \href{https://komascript.de/}{\KOMAScript} class, several
+ features of these classes are also deactivated as side effect. For example,
+ the commands to define or modify sectioning commands or option
+ \opt{headings} are no longer available, and commands like \cs{partformat}
+ have different defaults.
+
+ Because this hack has the potential to do more harm than good, it issues
+ several warnings. Also it is not activated simply by loading the legacy
+ version of \pkg*{scrhack} package. If you want to use it, you must explicitly
+ activate this option when you load the package. Late activation or
+ deactivation is not supported.
+
+ Since there are often less invasive solutions to fix the problem of package
+ incompatibilities, using this hack is not recommended. It is provided only
+ as a last resort for emergencies.
+\end{description}
+%
+% \iffalse
+%</doc>
+% \fi
+%
+% \MaybeStop{\printbibliography[heading=bibintoc]\PrintIndex}
+%
+% \iffalse
+%<*package>
+%<@@=scrhack>
+% \fi
+% \section{Implementation}
+%
+% Because \pkg*{scrhack} is not longer a
+% \href{https://komascript.de/}{\KOMAScript} package, it does not use the
+% \texttt{KOMA} family for options any longer. Instead it uses the new
+% \LaTeX{} kernel feature of key-value-options introduced in
+% \autocite{latexnews35}. So we need at least \LaTeX{} 2022-06-01:
+% \begin{macrocode}
+\ifnum 0=\ifcsname IfFormatAtLeastTF\endcsname
+ \IfFormatAtLeastTF{2022-06-01}{1}{0}%
+ \else
+ 0%
+ \fi\relax
+ \PackageError{scrhack}{LaTeX kernel too old}{%
+ The package needs at least LaTeX 2022-06-01.\MessageBreak
+ This error is fatal. Loading will be aborted.%
+ }%
+ \endinput
+\fi
+\ExplSyntaxOn
+% \end{macrocode}
+%
+% \subsection{Messages}
+%
+% We need some messages, that are not specific for only one use-case.
+% \begin{itemize}
+% \item If an option is ignored, because it cannot be handled after already
+% loading the enhancement package. \#1 is the name option, \#2 is the
+% enhancement package.
+% \end{itemize}
+% \begin{macrocode}
+\msg_new:nnn { scrhack } { option-too-late }
+ {
+ option~`#1'~after~loading~package~`#2'~ignored.
+ }
+% \end{macrocode}
+% \begin{itemize}
+% \item If an option is ignored, because it is deprecated.
+% \end{itemize}
+% \begin{macrocode}
+\msg_new:nnn { scrhack } { deprecated-option }
+ {
+ deprecated~option~`#1'~ignored.
+ }
+% \end{macrocode}
+%
+% \subsection{Emulating \file{float.hak}}
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ float .code = \@@_switch_float:n { #1 },
+ float .default:n = true,
+ float .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_float:n}
+% \ExplSyntaxOff
+% This is used to switch the state and add or remove the hook if needed. A new
+% boolean is used to know, whether the hook has been put. Using
+% \opt{float=true}, if package \pkg{floatbytocbasic} already has been loaded
+% isn't a foul. So we just write an information to the \file{log}. But using
+% \opt{float=false}, if package \pkg{floatbytocbasic} already has been loaded
+% may be wrong. So we use a warning message. We also warn if a not allowed
+% value is used.
+% \begin{macrocode}
+\bool_new:N \@@_float_bool
+
+\cs_new:Nn \@@_switch_float:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \@ifpackageloaded { floatbytocbasic }
+ {
+ \msg_info:nnnn { scrhack } { option-too-late }
+ { float = true } { floatbytocbasic }
+ }
+ {
+ \bool_if:NF \@@_float_bool
+ {
+ \hook_gput_code:nnn { package/float/after } { scrhack }
+ {
+ \RequirePackage { floatbytocbasic }
+ }
+ \bool_gset_true:N \@@_float_bool
+ }
+ }
+ }
+ {false} {
+ \@ifpackageloaded { floatbytocbasic }
+ {
+ \msg_warning:nnnn { scrhack } { option-too-late }
+ { float=false } { floatbytocbasic }
+ }
+ {
+ \bool_if:NT \@@_float_bool
+ {
+ \hook_gremove_code:nn { package/float/after } { scrhack }
+ }
+ \bool_gset_false:N \@s@_float_bool
+ }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { float }
+ }
+ }
+\SetKeys{float=true}
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+% \subsection{Emulating \file{floatrow.hak}}
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ floatrow .code = \@@_switch_floatrow:n { #1 },
+ floatrow .default:n = true,
+ floatrow .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_floatrow:n}
+% \ExplSyntaxOff
+% This is used to switch the state and add or remove the hook if needed. A new
+% boolean is used to know, whether the hook has been put. Using
+% \opt{floatrow=true}, if package \pkg{floatrowbytocbasic} already has been
+% loaded isn't a foul. So we just write an information to the \file{log}. But
+% using \opt{floatrow=false}, if package \pkg{floatrowbytocbasic} already has
+% been loaded may be wrong. So we use a warning message. We also warn if a not
+% allowed value is used.
+% \begin{macrocode}
+\bool_new:N \@@_floatrow_bool
+
+\cs_new:Nn \@@_switch_floatrow:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \@ifpackageloaded { floatrowbytocbasic }
+ {
+ \msg_info:nnnn { scrhack } { option-too-late }
+ { floatrow = true } { floatrowbytocbasic }
+ }
+ {
+ \bool_if:NF \@@_floatrow_bool
+ {
+ \hook_gput_code:nnn { package/floatrow/after }
+ { scrhack }
+ {
+ \RequirePackage { floatrowbytocbasic }
+ }
+ \bool_gset_true:N \@@_floatrow_bool
+ }
+ }
+ }
+ {false} {
+ \@ifpackageloaded { floatrowbytocbasic }
+ {
+ \msg_warning:nnnn { scrhack } { option-too-late }
+ { floatrow=false } { floatrowbytocbasic }
+ }
+ {
+ \bool_if:NT \@@_floatrow_bool
+ {
+ \hook_gremove_code:nn { package/floatrow/after }
+ { scrhack }
+ }
+ \bool_gset_false:N \@s@_floatrow_bool
+ }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { floatrow }
+ }
+ }
+\SetKeys{floatrow=true}
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+% \subsection{Emulating \file{hyperref.hak}}
+%
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ hyperref .code = \@@_switch_hyperref:n { #1 },
+ hyperref .default:n = true,
+ hyperref .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_hyperref:n}
+% \ExplSyntaxOff
+% This is somehow special, because the hack is deprecated. It only has been
+% needed for \pkg{hyperref} versions released before 2009-11-24, which would
+% not work with the \LaTeX{} kernel version needed by this version of
+% \pkg*{scrhack}. So emulating the hack does not make sense. Instead the
+% initial value of the option is changed to implicit \optvalue{false} and
+% switching it on explicitly does result in a warning.
+% \begin{macrocode}
+\cs_new:Nn \@@_switch_hyperref:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \msg_warning:nnn { scrhack } { deprecated-option }
+ { hyperref=#1 }
+ }
+ {false} {
+ \msg_info:nnn { scrhack } { deprecated-option }
+ { hyperref=#1 }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { hyperref }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+% \subsection{Emulating \file{listings.hak}}
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ listings .code = \@@_switch_listings:n { #1 },
+ listings .default:n = true,
+ listings .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_listings:n}
+% \ExplSyntaxOff
+% This is somehow special, because the hack is deprecated. It only has
+% been needed for \pkg{listings} version released before 2024-02-15. So
+% instead of using any patch hacks, users should update \pkg{listings}. So
+% emulating the hack does not make sense. Instead the initial value of the
+% option is changed to implicit \optvalue{false} and switching it on
+% explicitly does result in a warning.
+% \begin{macrocode}
+\cs_new:Nn \@@_switch_listings:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \msg_warning:nnn { scrhack } { deprecated-option }
+ { listings=#1 }
+ }
+ {false} {
+ \msg_info:nnn { scrhack } { deprecated-option }
+ { listings=#1 }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { listings }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+% \subsection{Emulating \file{lscape.hak}}
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ lscape .code = \@@_switch_lscape:n { #1 },
+ lscape .default:n = true,
+ lscape .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_lscape:n}
+% \ExplSyntaxOff
+% This is used to switch the state and add or remove the hook if needed. A new
+% boolean is used to know, whether the hook has been put. Using
+% \opt{lscape=true}, if package \pkg{lscapeenhanced} already has been
+% loaded isn't a foul. So we just write an information to the \file{log}. But
+% using \opt{lscape=false}, if package \pkg{lscapeenhanced} already has
+% been loaded may be wrong. So we use a warning message. We also warn if a not
+% allowed value is used.
+% \begin{macrocode}
+\bool_new:N \@@_lscape_bool
+
+\cs_new:Nn \@@_switch_lscape:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \@ifpackageloaded { lscapeenhanced }
+ {
+ \msg_info:nnnn { scrhack } { option-too-late }
+ { lscape = true } { lscapeenhanced }
+ }
+ {
+ \bool_if:NF \@@_lscape_bool
+ {
+ \hook_gput_code:nnn { package/lscape/after }
+ { scrhack }
+ {
+ \RequirePackage { lscapeenhanced }
+ }
+ \bool_gset_true:N \@@_lscape_bool
+ }
+ }
+ }
+ {false} {
+ \@ifpackageloaded { lscapeenhanced }
+ {
+ \msg_warning:nnnn { scrhack } { option-too-late }
+ { lscape=false } { lscapeenhanced }
+ }
+ {
+ \bool_if:NT \@@_lscape_bool
+ {
+ \hook_gremove_code:nn { package/lscape/after }
+ { scrhack }
+ }
+ \bool_gset_false:N \@s@_lscape_bool
+ }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { lscape }
+ }
+ }
+\SetKeys{lscape=true}
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+% \subsection{Emulating \file{nomencl.hak}}
+%
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ nomencl .code = \@@_switch_nomencl:n { #1 },
+ nomencl .default:n = true,
+ nomencl .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_nomencl:n}
+% \ExplSyntaxOff
+% This is somehow special, because the hack is deprecated. It only has been
+% needed for \pkg{nomencl} versions released before 2019-01-23. So updating
+% the package would be the better \emph{hack}. So emulating the hack does not
+% make sense. Instead the initial value of the option is changed to implicit
+% \optvalue{false} and switching it on explicitly does result in a warning.
+% \begin{macrocode}
+\cs_new:Nn \@@_switch_nomencl:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \msg_warning:nnn { scrhack } { deprecated-option }
+ { nomencl=#1 }
+ }
+ {false} {
+ \msg_info:nnn { scrhack } { deprecated-option }
+ { nomencl=#1 }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { nomencl }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+%
+% \subsection{Emulating \file{setspace.hak}}
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ setspace .code = \@@_switch_setspace:n { #1 },
+ setspace .default:n = true,
+ setspace .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_setspace:n}
+% \ExplSyntaxOff
+% This is used to switch the state and add or remove the hook if needed. A new
+% boolean is used to know, whether the hook has been put. Using
+% \opt{setspace=true}, if package \pkg{setspaceenhanced} already has been loaded
+% isn't a foul. So we just write an information to the \file{log}. But using
+% \opt{setspace=false}, if package \pkg{setspaceenhanced} already has been loaded
+% may be wrong. So we use a warning message. We also warn if a not allowed
+% value is used.
+% \begin{macrocode}
+\bool_new:N \@@_setspace_bool
+
+\cs_new:Nn \@@_switch_setspace:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \@ifpackageloaded { setspaceenhanced }
+ {
+ \msg_info:nnnn { scrhack } { option-too-late }
+ { setspace = true } { setspaceenhanced }
+ }
+ {
+ \bool_if:NF \@@_setspace_bool
+ {
+ \hook_gput_code:nnn { package/setspace/after } { scrhack }
+ {
+ \exp_last_unbraced:Ne \RequirePackage
+ {
+ [ \use:c { @raw@opt@setspace.sty },
+ byselectfont,
+ keepfontsize ]
+ }
+ { setspaceenhanced }
+ }
+ \bool_gset_true:N \@@_setspace_bool
+ }
+ }
+ }
+ {false} {
+ \@ifpackageloaded { setspaceenhanced }
+ {
+ \msg_warning:nnnn { scrhack } { option-too-late }
+ { setspace=false } { setspaceenhanced }
+ }
+ {
+ \bool_if:NT \@@_setspace_bool
+ {
+ \hook_gremove_code:nn { package/setspace/after } { scrhack }
+ }
+ \bool_gset_false:N \@s@_setspace_bool
+ }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { setspace }
+ }
+ }
+\SetKeys{setspace=true}
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+% \subsection{Emulating \file{standardsectioning.hak}}
+% First we declare the options using the new key-value interface:
+% \begin{macrocode}
+\DeclareKeys{%
+ standardsections .code = \@@_switch_standardsectioning:n { #1 },
+ standardsections .default:n = true,
+ standardsections .usage = preamble,
+}
+% \end{macrocode}
+%
+% \ExplSyntaxOn
+% \begin{macro}{\__scrhack_switch_standardsectioning:n}
+% \ExplSyntaxOff
+% This is used to switch the state and add or remove the hook if needed. A new
+% boolean is used to know, whether the hook has been put. Using
+% \opt{standardsectioning=true}, if package \pkg{standardsectioning}
+% already has been loaded isn't a foul. So we just write an information to the
+% \file{log}. But using \opt{standardsectioning=false}, if package
+% \pkg{standardsectioning} already has been loaded may be wrong. So
+% we use a warning message. We also warn if a not allowed value is used.
+% \begin{macrocode}
+\bool_new:N \@@_standardsectioning_bool
+
+\cs_new:Nn \@@_switch_standardsectioning:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ {true} {
+ \@ifpackageloaded { standardsectioning }
+ {
+ \msg_info:nnnn { scrhack } { option-too-late }
+ { standardsectioning = true } { standardsectioning }
+ }
+ {
+ \bool_if:NF \@@_standardsectioning_bool
+ {
+ \str_set:Nx \l_tmpa_str { \cs_meaning:N \normalsize }
+ \str_if_in:NnTF
+ \l_tmpa_str
+ { \@latex@error }
+ {
+ \hook_gput_code:nnn { class/after } { scrhack }
+ {
+ \RequirePackage { standardsectioning }
+ \exp_args:Nnnx \hook_gput_code:nnn
+ { begindocument/before } { scrhack }
+ {
+ \exp_not:N \cs_gset:Npn
+ \exp_after:wN \exp_not:N
+ \cs:w ver@standardsectioning.sty \cs_end:
+ {
+ \cs:w ver@standardsectioning.sty \cs_end:
+ }
+ }
+ \cs_undefine:c { var@standardsectioning.sty }
+ }
+ \bool_gset_true:N \@@_standardsectioning_bool
+ }
+ {
+ \RequirePackage{ standardsectioning }
+ \bool_gset_false:N \@@_standardsectioning_bool
+ }
+ }
+ }
+ }
+ {false} {
+ \@ifpackageloaded { standardsectioning }
+ {
+ \msg_warning:nnnn { scrhack } { option-too-late }
+ { standardsectioning=false } { standardsectioning }
+ }
+ {
+ \bool_if:NT \@@_standardsectioning_bool
+ {
+ \hook_gremove_code:nn { class/after } { scrhack }
+ }
+ \bool_gset_false:N \@s@_standardsectioning_bool
+ }
+ }
+ }
+ {
+ \msg_warning:nnn { keys } { boolean-values-only } { standardsectioning }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \ExplSyntaxOff
+%
+%
+%
+% \subsection{Processing the options}
+% Last but not least, we set the defaults and process the options.
+% \begin{macrocode}
+\ExplSyntaxOff
+\ProcessKeyOptions\relax
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+% \PrintChanges
+%
+% \endinput
+% Local Variables:
+% mode: doctex
+% ispell-local-dictionary: "en_US"
+% eval: (flyspell-mode 1)
+% TeX-master: t
+% eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx"))
+% End:
diff --git a/macros/latex/contrib/scrhack/scrhack.pdf b/macros/latex/contrib/scrhack/scrhack.pdf
new file mode 100644
index 0000000000..7766207b57
--- /dev/null
+++ b/macros/latex/contrib/scrhack/scrhack.pdf
Binary files differ
diff --git a/macros/latex/contrib/se2thesis/CHANGELOG.md b/macros/latex/contrib/se2thesis/CHANGELOG.md
index fa60e6d1b0..bc9d84afe9 100644
--- a/macros/latex/contrib/se2thesis/CHANGELOG.md
+++ b/macros/latex/contrib/se2thesis/CHANGELOG.md
@@ -7,6 +7,50 @@ and this project adheres to
## [Unreleased]
+## [v4.3.4] – 2024–09–19
+
+### Fixed
+
+- Align logo on the right side regardless of the logo size (#22), thanks to
+ @wolfoo2931
+
+## [v4.3.3] – 2024–09–18
+
+### Added
+
+- Load the `mismath` package before the `unicode-math` package, which is
+ recommended according to `mismath`'s documentation.
+
+## [v4.3.2] – 2024–08–12
+
+### Fixed
+
+- Prevent line break in the lower back title if one added a manual line break
+ using `\\` to the title in order to layout it properly for the front title
+ page.
+
+## [v4.3.1] – 2024–07–31
+
+### Added
+
+- Add a hint on the usage of `scrreprt` as the base class if one wants to have
+ numbered bibliography or appendices.
+- Add section in the documentation on the usage of babel, its shorthands for
+ German and English to re-enable hyphenation of compound words, and the
+ conflicting package `hyphenat`.
+
+### Fixed
+
+- Fix list of implicitly loaded packages.
+
+## [v4.3.0] – 2024–07–23
+
+### Fixed
+
+- The spelling bachelor thesis and master thesis are widely used but seem to be
+ wrong. According to the Oxford English Dictionary, the spelling shall be
+ bachelor's thesis and master's thesis.
+
## [v4.2.0] – 2024–06–25
### Fixed
@@ -237,7 +281,12 @@ These changes might be breaking changes!
### Added
- First official release
-[Unreleased]: https://github.com/se2p/se2thesis/compare/v4.2.0...HEAD
+[Unreleased]: https://github.com/se2p/se2thesis/compare/v4.3.4...HEAD
+[v4.3.4]: https://github.com/se2p/se2thesis/compare/v4.3.4...v4.3.3
+[v4.3.3]: https://github.com/se2p/se2thesis/compare/v4.3.3...v4.3.2
+[v4.3.2]: https://github.com/se2p/se2thesis/compare/v4.3.2...v4.3.1
+[v4.3.1]: https://github.com/se2p/se2thesis/compare/v4.3.1...v4.3.0
+[v4.3.0]: https://github.com/se2p/se2thesis/compare/v4.3.0...v4.2.0
[v4.2.0]: https://github.com/se2p/se2thesis/compare/v4.2.0...v4.1.0
[v4.1.0]: https://github.com/se2p/se2thesis/compare/v4.1.0...v4.0.3
[v4.0.3]: https://github.com/se2p/se2thesis/compare/v4.0.3...v4.0.2
diff --git a/macros/latex/contrib/se2thesis/se2colors.dtx b/macros/latex/contrib/se2thesis/se2colors.dtx
index 09e6523a9e..20985382c8 100644
--- a/macros/latex/contrib/se2thesis/se2colors.dtx
+++ b/macros/latex/contrib/se2thesis/se2colors.dtx
@@ -231,7 +231,7 @@
%
% Identify the package and give the overall version information.
% \begin{macrocode}
-\ProvidesExplPackage {se2colors} {2024-06-25} {4.2.0}
+\ProvidesExplPackage {se2colors} {2024-09-19} {4.3.4}
{A colour support package for the se2thesis bundle}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/se2thesis/se2fonts.dtx b/macros/latex/contrib/se2thesis/se2fonts.dtx
index bfc3210cc0..728998f60b 100644
--- a/macros/latex/contrib/se2thesis/se2fonts.dtx
+++ b/macros/latex/contrib/se2thesis/se2fonts.dtx
@@ -151,7 +151,7 @@
%
% Identify the package and give the overall version information.
% \begin{macrocode}
-\ProvidesExplPackage {se2fonts} {2024-06-25} {4.2.0}
+\ProvidesExplPackage {se2fonts} {2024-09-19} {4.3.4}
{A font-selection support package for the se2thesis bundle}
% \end{macrocode}
%
@@ -214,6 +214,12 @@
%
% \subsection{Font loading}
%
+% Load the \pkg{mismath} package, which itself loads \pkg{mathtools} and
+% transitively \pkg{amsmath} \emph{before} \pkg{unicode-math}.
+% \begin{macrocode}
+\RequirePackage{mismath}
+% \end{macrocode}
+%
% Depending on the engine used by the user,
% we can use \pkg{fontspec} for loading fonts.
% \begin{macrocode}
diff --git a/macros/latex/contrib/se2thesis/se2packages.dtx b/macros/latex/contrib/se2thesis/se2packages.dtx
index 4c915c3eb5..f71e589180 100644
--- a/macros/latex/contrib/se2thesis/se2packages.dtx
+++ b/macros/latex/contrib/se2thesis/se2packages.dtx
@@ -446,6 +446,8 @@
% \bibitem{DBLP:journals/sttt/BeyerLW19} Dirk Beyer, Stefan Löwe, and Philipp
% Wendler: \emph{Reliable benchmarking: requirements and solutions}. STTT
% 21(1): 1--29 (2019)
+% \bibitem{Knu86} Donald E. Knuth: \emph{The \TeX{}book}. Addison-Wesley
+% (1986)
% \end{thebibliography}
%
%
@@ -470,7 +472,7 @@
%
% Identify the package and give the overall version information.
% \begin{macrocode}
-\ProvidesExplPackage {se2packages} {2024-06-25} {4.2.0}
+\ProvidesExplPackage {se2packages} {2024-09-19} {4.3.4}
{Supporting packages for the se2thesis bundle}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf
index 703086bd37..822b87ed30 100644
--- a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf
+++ b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/se2thesis/se2thesis.dtx b/macros/latex/contrib/se2thesis/se2thesis.dtx
index 0a6705aaa5..6129c3e6d6 100644
--- a/macros/latex/contrib/se2thesis/se2thesis.dtx
+++ b/macros/latex/contrib/se2thesis/se2thesis.dtx
@@ -62,7 +62,7 @@
% internet, causing each thesis looking differently.
%
% The author of this package provided a template,
-% which he initially created for his bachelor and master thesis,
+% which he initially created for his bachelor's and master's thesis,
% that was recommended and used by many students.
% The implementation of that template, however, was very hacky and required
% some changes over time.
@@ -74,7 +74,7 @@
% The bundle itself consists of several \LaTeX{} classes and packages
% that also allow reuse of various parts of it.
% Its main class is the \pkg{se2thesis} document class,
-% an extension of the \KOMAScript{} |scrreprt| document class.
+% an extension of the \KOMAScript{} |scrbook| document class.
% The packages \pkg{se2colors} and \pkg{se2fonts} provide necessary
% colour and font settings for the \pkg{se2thesis} class;
% the \pkg{se2packages} allows to load several recommended packages~(see
@@ -186,9 +186,9 @@
% \pkg{expl3}, \pkg{l3keys2e} in case one uses a \LaTeX{} kernel from before
% 2022--06--01, \pkg{graphicx}, \pkg{translations}, \KOMAScript, \pkg{xcolor},
% \pkg{ifthen}, as well as \pkg{fontspec}, \pkg{unicode-math},
-% and \pkg{libertinus-otf} if one uses \LuaTeX{};
+% \pkg{inconsolata-nerd-font} and \pkg{libertinus-otf} if one uses \LuaTeX{};
% for \pdfLaTeX{} we load \pkg{fontenc}, \pkg{libertinus-type1}, and
-% \pkg{AnonymousPro} instead of the latter three.
+% \pkg{inconsolata} instead of the latter three.
% Furthermore, we load \pkg{microtype};
% when using \LuaTeX{}, we also load \pkg{lua-widow-control} and \pkg{selnolig}.
%
@@ -220,6 +220,11 @@
% \emph{Note:} you cannot use \cls{scrartcl} because it does not provide
% the required |chapter| sectioning.
% Default is |scrbook|.
+%
+% Please note that if you want to have the bibliography numbered or use an
+% appendix with alpha-numbering (A, B, \dots), you want to explicitly use
+% |scrreprt| as the base class; for some (currently unknown) reason this does
+% not work with the default |scrbook|.
% \end{function}
% \begin{function}{paper}
% \begin{syntax}
@@ -243,9 +248,9 @@
% \end{syntax}
% Defines the type of the thesis.
% Possible values are:
-% |bachelor| for a bachelor thesis, |bachelorproposal| for a proposal to
-% a bachelor thesis, |master| for a master thesis, |masterproposal| for
-% a proposal to a master thesis, |phdproposal| for a proposal to a PhD thesis,
+% |bachelor| for a bachelor's thesis, |bachelorproposal| for a proposal to
+% a bachelor's thesis, |master| for a master's thesis, |masterproposal| for
+% a proposal to a master's thesis, |phdproposal| for a proposal to a PhD thesis,
% |phd| for a PhD thesis in the natural sciences, |phdeng| for a PhD thesis
% in engineering, and |phdphil| for a PhD thesis in natural philosophy.
% \end{function}
@@ -307,7 +312,7 @@
% \cmd{\matrnumber} \marg{matriculation-number}
% \end{syntax}
% Specify the matriculation number of the student writing the thesis.
-% This is required for Bachelor and Master theses.
+% This is required for bachelor's and master's theses.
% \end{function}
%
% \begin{function}{\supervisor, \cosupervisor}
@@ -437,7 +442,7 @@
% We provide the \env{acknowledgements} environment to typeset acknowledgements
% for your thesis.
% Using this environment is optional.
-% Usually, bachelor and master thesis do not contain such an acknowledgements
+% Usually, bachelor's and master's thesis do not contain such an acknowledgements
% section, however, there is no general rule to this.
% \begin{verbatim}
% \begin{acknowledgements}[language]
@@ -540,6 +545,48 @@
% question;
% however, this can also be arbitrary text.
%
+% \subsection{Language Support and Hyphenation}\label{sec:doct-se2thesis-lang}
+%
+% The study regulations of the University of Passau require students to write
+% their thesis in either German or English. For both cases it is recommended
+% to load a package for the correct hyphenation patters. Usually, one can
+% either choose between the \pkg{babel} and \pkg{polyglossia} package. For a
+% detailed discussion in the differences and which to choose, please use the
+% search engine of your choice.
+%
+% For this documentation we stick with the \pkg{babel} package, which is often
+% considered to be the standard package.
+%
+% If you write your thesis in German, load \pkg{babel} in your preamble like
+% follows
+% \begin{verbatim}
+% \usepackage[ngerman]{babel}
+% \end{verbatim}
+% For a thesis in English, you have to also load the German variant plus the
+% English one as the default (see \cref{sec:doc-se2thesis-authorship} for an
+% explanation)
+% \begin{verbatim}
+% \usepackage[ngerman,main=UKenglish]{babel}
+% \end{verbatim}
+%
+% Note that by default, \LaTeX{} does not provide hyphenation for compound
+% words, which is explained in the \TeX{} Book~\cite[p.~454]{Knu86} and a
+% StackExchange post\footnote{\href{https://tex.stackexchange.com/a/63234/14622}{https://tex.stackexchange.com/a/63234/14622}}. The \pkg{babel} package
+% provides a way (called shorthands) for German, which allows to reenable
+% hyphenation for compound words (as they are common on German). These
+% shorthands are by default not available for English, but they can easily be
+% added by adding
+% \begin{verbatim}
+% \useshorthands{"}
+% \addto\extrasUKenglish{\languageshorthands{ngerman}}
+% \end{verbatim}
+% after loading \pkg{babel} with the aforementioned \cmd{\usepackage}
+% macro\footnote{see https://tex.stackexchange.com/a/298844/14622}.
+%
+% \emph{Please note:} loading the \pkg{hyphenat} package is strongly discouraged
+% by the \pkg{se2thesis} maintainer because it conflicts with the \env{hyp}
+% environment provided by \pkg{se2thesis} (see \cref{sec:doc-se2thesis-summaries}).
+%
% \end{documentation}
%
% \clearpage
@@ -607,7 +654,7 @@
%
% Identify the class and give the overall version number.
% \begin{macrocode}
-\ProvidesExplClass {se2thesis} {2024-06-25} {4.2.0}
+\ProvidesExplClass {se2thesis} {2024-09-19} {4.3.4}
{A thesis class for the Chair of Software Engineering II}
% \end{macrocode}
%
@@ -1124,10 +1171,9 @@
\DeclareNewLayer[
mode=picture,
foreground,
- align=tr,
- hoffset=\oddsidemargin+1.5in+\textwidth,
+ hoffset=\paperwidth-\coverpagerightmargin-\box_wd:N \l_@@_logo_box,
voffset=\coverpagetopmargin+1.5in+\ht\strutbox,
- width=\textwidth - \box_wd:N \l_@@_logo_box,
+ width=\box_wd:N \l_@@_logo_box,
height=\box_ht:N \l_@@_logo_box,
contents={\putUL{\box_use:N \l_@@_logo_box}},
]{title.seii.logo}
@@ -1246,7 +1292,7 @@
% \end{macrocode}
% The next block generates the text that describes the thesis.
% In case of a PhD thesis, this text is predefined to match the requirements.
-% In case of a bachelor or master thesis, or a proposal thereof, we generate
+% In case of a bachelor's or master's thesis, or a proposal thereof, we generate
% a text based on the values of the |thesistype| load-time option and the
% values of the \cmd{\degreeprogramme}, \cmd{\department}, and
% \cmd{\institute} variables.
@@ -1362,12 +1408,18 @@
% \end{macrocode}
%
% \begin{macro}{\@lowertitleback}
-% Afterwards, override the definition of \cs{@lowertitleback}.
+% Afterwards, override the definition of \cs{@lowertitleback}. To prevent
+% line breaks in the title (that might be necessary to layout it properly on
+% the front title page), we place a group around \cs{@title} and temporarily
+% redefine \cmd{\\} to do nothing.
% \begin{macrocode}
\renewcommand*{\@lowertitleback}{%
\group_begin:
\noindent\textbf{\@author}:\\
- \emph{\@title}\\
+ \group_begin:
+ \let\\\relax
+ \emph{\@title}
+ \group_end:\\
\tl_if_eq:NnT \l_@@_thesis_type_tl { bachelor }
{ \GetTranslation{Bachelor-thesis},~ }
\tl_if_eq:NnT \l_@@_thesis_type_tl { master }
@@ -1678,7 +1730,7 @@
% We provide the following English translations.
%
% \begin{macrocode}
-\ProvideDictionaryFor{English}{se2translations}[2024/06/25]
+\ProvideDictionaryFor{English}{se2translations}[2024/09/19]
\ProvideDictTranslation{abstract}{abstract}
\ProvideDictTranslation{Abstract}{Abstract}
\ProvideDictTranslation{acknowledgement}{acknowledgement}
@@ -1703,10 +1755,10 @@
\ProvideDictTranslation{External}{External Examiner}
\ProvideDictTranslation{degreeprogramme}{programme}
\ProvideDictTranslation{Degreeprogramme}{Programme}
-\ProvideDictTranslation{Bachelor-thesis}{Bachelor Thesis}
-\ProvideDictTranslation{Bachelor-thesis-proposal}{Bachelor Thesis Proposal}
-\ProvideDictTranslation{Master-thesis}{Master Thesis}
-\ProvideDictTranslation{Master-thesis-proposal}{Master Thesis Proposal}
+\ProvideDictTranslation{Bachelor-thesis}{Bachelor's Thesis}
+\ProvideDictTranslation{Bachelor-thesis-proposal}{Bachelor's Thesis Proposal}
+\ProvideDictTranslation{Master-thesis}{Master's Thesis}
+\ProvideDictTranslation{Master-thesis-proposal}{Master's Thesis Proposal}
\ProvideDictTranslation{PhD-thesis}{PhD Thesis}
\ProvideDictTranslation{PhD-thesis-proposal}{PhD Thesis Proposal}
\ProvideDictTranslation{date}{date}
@@ -1729,7 +1781,7 @@
% We provide the following German translations.
%
% \begin{macrocode}
-\ProvideDictionaryFor{German}{se2translations}[2024/06/25]
+\ProvideDictionaryFor{German}{se2translations}[2024/09/19]
\ProvideDictTranslation{abstract}{Zusammenfassung}
\ProvideDictTranslation{Abstract}{Zusammenfassung}
\ProvideDictTranslation{acknowledgement}{Danksagung}
diff --git a/macros/latex/contrib/se2thesis/se2thesis.pdf b/macros/latex/contrib/se2thesis/se2thesis.pdf
index 84789f2fc3..f11604c70b 100644
--- a/macros/latex/contrib/se2thesis/se2thesis.pdf
+++ b/macros/latex/contrib/se2thesis/se2thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/sidenotes/caesar_book.cls b/macros/latex/contrib/sidenotes/caesar_book.cls
index 685f736aef..c1f24a16ad 100644
--- a/macros/latex/contrib/sidenotes/caesar_book.cls
+++ b/macros/latex/contrib/sidenotes/caesar_book.cls
@@ -1,20 +1,13 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesFile{caesar_book.cls}[2020/03/24 v1.00a Caesar book]
-% Load the amsmath and the mhchem package before loading microtype
-\RequirePackage{amsmath}% better math handling
-\RequirePackage[version=3]{mhchem}% chemical formulas
+\ProvidesFile{caesar_book.cls}[2024/09/12 v1.20 Caesar book]
\LoadClassWithOptions{book}% this is derived from the book class
\RequirePackage{sidenotes}% put annotations, tables and figures in the margin
-\captionsetup{font=footnotesize, skip=4pt}
-\RequirePackage[maxfloats=45]{morefloats}% a lot of marginals need more float 'memory'
+\captionsetup{font=footnotesize, skip=4pt} % use values matching the style
+\extrafloats{45}% a lot of marginals need more float 'memory'
\RequirePackage{marginfix}% automatically adjust the side-floats nicely
-\newcommand{\caesar@letterspace}[1]{#1}% allow LuaLaTeX, LaTeX letterspacing
\RequirePackage{microtype}% microtypography
-\@ifpackagelater{microtype}{2011/08/18}% xxx allow LaTeX and earlier microtype
-{\renewcommand{\caesar@letterspace}[1]{\textls{#1}}}%
-{\AtEndDocument{\ClassWarningNoLine{caesar_book}{Need newest microtype for letterspacing.}}}
%
-% Set page layout geometry -- default is science-book format
+% Set page layout geometry - default is science-book format
% this means a (portrait) paper size of 170mm x 240mm
%
\RequirePackage{geometry}
@@ -24,7 +17,9 @@
%
\renewcommand{\normalsize}{\fontsize{10pt}{13pt}\selectfont}%
\renewcommand{\footnotesize}{\fontsize{8pt}{10pt}\selectfont}%
-% fullwidth environment, text across textwidth+marginparsep+marginparwidth
+%
+% fullwidth environment, text across textwidth + marginparsep + marginparwidth
+%
\newlength{\overhang}
\setlength{\overhang}{\marginparwidth}
\addtolength{\overhang}{\marginparsep}
@@ -38,7 +33,9 @@
{\end{adjustwidth*}}%
{\end{adjustwidth}}%
}
+%
% set up the fonts
+%
\RequirePackage{ifluatex}
\ifluatex% in LuaLateX we use fontspec
\RequirePackage{fontspec}%
@@ -47,14 +44,15 @@
\setmainfont[Ligatures=TeX, Numbers=OldStyle]{Tex Gyre Pagella}% free Palatino clone
\setmonofont{Tex Gyre Cursor}% works okay with palatino
\setsansfont{Tex Gyre Heros}% work okay with palatino
- \mhchemoptions{textfontcommand=\addfontfeature{Numbers=Lining}} % use lining numbers for chemical formulas
\else% in LaTeX we load fonts differently
\IfFileExists{mathpazo.sty}{\RequirePackage[osf,sc]{mathpazo}}{}% palatino clone for math
\IfFileExists{helvet.sty}{\RequirePackage[scaled=0.90]{helvet}}{}% helvetica is sans serif font
\IfFileExists{beramono.sty}{\RequirePackage[scaled=0.85]{beramono}}{}% beramono is tt font
\RequirePackage[T1]{fontenc}% finally load fontenc
\fi
-% nice headings and TOC
+%
+% nice headings, TOC, page numbering ...
+%
\RequirePackage{titlesec,titletoc}% load the helper package
\setcounter{secnumdepth}{-1}% no numbering at all
\titleformat{\chapter}[display]{\relax\itshape\huge}{}{0pt}{\huge\rmfamily\itshape}[]% chapter format
@@ -75,7 +73,7 @@
\renewcommand{\headrulewidth}{0pt}% The running heads and feet do not have rules
\renewcommand{\footrulewidth}{0pt}
\fancyhf{}% set up the page numbering
-{\fancyfoot[LE,RO]{\thepage}}
+\fancyfoot[LE,RO]{\thepage}
\fancypagestyle{plain}{%
\fancyhf{}
}
@@ -87,14 +85,13 @@
\@savemarbox\@marbox{\marginparstyle#1}% marginparstyle is a prefix to the marginpar text now
\global\setbox\@currbox\copy\@marbox % the rest of the definition is taken from original LaTeX
\@xympar}
-\renewcommand*{\marginfont}{\marginparstyle}
+\@ifpackageloaded{marginnote}{\renewcommand*{\marginfont}{\marginparstyle}}{} % adjust marginnote font in the same way
% setup itemize and enumerate
\RequirePackage{enumitem}
\setlist[itemize]{leftmargin=*}
-%\renewcommand{\labelitemi}{}
-% compatibility with T-L
%
% titlepage
+%
\RequirePackage{ifthen}
\newcommand{\publisher}[1]{\gdef\caesar@publisher{#1}}
\gdef\caesar@thesis{}
@@ -106,7 +103,7 @@
% first count the number of lines in the title
\begin{fullwidth}
\raggedright%
- \setbox0\vbox{\noindent\fontsize{30}{38}\selectfont\caesar@letterspace{\MakeTextUppercase{\@title}}\par
+ \setbox0\vbox{\noindent\fontsize{30}{38}\selectfont\textls{\MakeTextUppercase{\@title}}\par
\count@\z@
\loop
\unskip\unpenalty\unskip\unpenalty\unskip
@@ -124,12 +121,12 @@
\sffamily%
%\begin{fullwidth}%
\vspace*{0em}% one line extra space
- \noindent\LARGE\caesar@letterspace{\MakeTextUppercase{\@author}}\par
+ \noindent\LARGE\textls{\MakeTextUppercase{\@author}}\par
\vfill%
- \noindent\fontsize{30}{38}\selectfont\textcolor{darkgray}{\caesar@letterspace{\MakeTextUppercase{\@title}}}\par
+ \noindent\fontsize{30}{38}\selectfont\textcolor{darkgray}{\textls{\MakeTextUppercase{\@title}}}\par
\vfill%
\vspace{\caesar@titlespace}%
- \noindent\Large\caesar@letterspace{\MakeTextUppercase{\caesar@publisher}}\par
+ \noindent\Large\textls{\MakeTextUppercase{\caesar@publisher}}\par
%\end{fullwidth}%
}%
\thispagestyle{empty}%
@@ -146,6 +143,9 @@
\section*{\caesar@thesis\@author}
%
}
+%
+% higher level macros go here
+%
\newcommand\newthought[1]{%
\addvspace{1.0\baselineskip plus 0.5ex minus 0.2ex}%
\noindent\textsc{#1}%
diff --git a/macros/latex/contrib/sidenotes/caesar_example.pdf b/macros/latex/contrib/sidenotes/caesar_example.pdf
index ddf07bf4e2..c49cb0a63d 100644
--- a/macros/latex/contrib/sidenotes/caesar_example.pdf
+++ b/macros/latex/contrib/sidenotes/caesar_example.pdf
Binary files differ
diff --git a/macros/latex/contrib/sidenotes/caesar_example.tex b/macros/latex/contrib/sidenotes/caesar_example.tex
index c0f11de77c..fd6fb8e484 100644
--- a/macros/latex/contrib/sidenotes/caesar_example.tex
+++ b/macros/latex/contrib/sidenotes/caesar_example.tex
@@ -10,24 +10,25 @@
%
\begin{filecontents}{\jobname.bib}
@book{Tufte2006,
- author = {Edward R. Tufte},
- title = {Beautiful Evidence},
- year = {2006},
- publisher = {Graphics Press, {LLC}},
- isbn = {0-9613921-7-7}
+ author = {Edward R. Tufte},
+ title = {Beautiful Evidence},
+ year = {2006},
+ publisher = {Graphics Press, {LLC}},
+ isbn = {0-9613921-7-7}
}
@book{Tufte1990,
- author = {Edward R. Tufte},
- title = {Envisioning Information},
- publisher = {Graphics Press},
- year = {1990},
- isbn = {0-9613921-1-8}
+ author = {Edward R. Tufte},
+ title = {Envisioning Information},
+ publisher = {Graphics Press},
+ year = {1990},
+ isbn = {0-9613921-1-8}
}
\end{filecontents}
% -- language: English --
%
+\usepackage{csquotes}
\usepackage[english]{babel}
% -- biblatex --
\usepackage[backend=biber,style=philosophy-classic]{biblatex} % xxx
diff --git a/macros/latex/contrib/sidenotes/sidenotes.dtx b/macros/latex/contrib/sidenotes/sidenotes.dtx
index 7c67ad4fd1..709a8a5e32 100644
--- a/macros/latex/contrib/sidenotes/sidenotes.dtx
+++ b/macros/latex/contrib/sidenotes/sidenotes.dtx
@@ -2,7 +2,7 @@
%
% sidenotes.dtx
%
-% Copyright (C) 2011-2020 by Andy Thomas <andythomas(at)web.de>
+% Copyright (C) 2011-2024 by Andy Thomas <andythomas(at)web.de>
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -11,17 +11,17 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% The author of this work is Andy Thomas
%
%<*driver>
-\ProvidesFile{sidenotes.dtx}[2016/04/21 v1.00 rich text in the margin for LaTeX]%
+\ProvidesFile{sidenotes.dtx}[2024/09/12 v1.20 Rich text in the margin for LaTeX]%
%</driver>
%<package>\RequirePackage{l3keys2e}%
-%<package>\ProvidesExplPackage{sidenotes}{2016/04/21}{1.00}{rich text in the margin for LaTeX}
-%<package>\RequirePackage{marginnote} % provides an offset option for the marginals instead of a float
-%<package>\RequirePackage{caption} % handles the captions (in the margin)
-%<package>\RequirePackage{xparse} % new LaTeX3 syntax to define macros and environments
+%<package>\ProvidesExplPackage{sidenotes}{2024/09/12}{1.20}{Rich text in the margin for LaTeX}
+%<package>\RequirePackage{marginnote} % Provides an offset option for the marginals instead of a float
+%<package>\RequirePackage{caption} % Handles the captions (in the margin)
+%<package>\RequirePackage{xparse} % New LaTeX3 syntax to define macros and environments
%<package>\RequirePackage[strict]{changepage} % Changepage package for symmetric twoside handling
%<*driver>
\documentclass{ltxdoc}
@@ -54,10 +54,10 @@
%
%
% \GetFileInfo{sidenotes.dtx}
-%
+%
%
% \title{The \textsf{sidenotes} package\thanks{This document
-% corresponds to \textsf{sidenotes}~\fileversion, dated \filedate.
+% corresponds to \textsf{sidenotes}~\fileversion, dated \filedate.
% Earlier versions by Oliver Schebaum.}}
% \author{Andy Thomas\\ \texttt{andythomas(at)web.de}}
%
@@ -74,9 +74,9 @@
% \changes{v1.00}{2016/04/21}{no changes, tag v1.0}
%
% \begin{abstract}
-% \noindent This package allows the typesetting of rich content in the margin.
+% \noindent This package allows the typesetting of rich content in the margin.
% It includes text, but also figures, captions, tables and citations,
-% which is common in science textbooks such as Feynman's
+% which is common in science textbooks such as Feynman's
% \textit{Lectures on Physics}.
% \end{abstract}
%
@@ -91,99 +91,99 @@
% \DescribeMacro{\sidenote}
% The macro is very similar to the footnote macro and tries to emulate
% its behavior. It just puts the notes in the margin instead of the bottom
-% of the page, therefore the name \emph{sidenote}. It has the same parameters
+% of the page, therefore the name \emph{sidenote}. It has the same parameters
% as footnote as well as an additional offset:
-% \verb+\sidenote[number][offset]{text}+. All the sidenotes are subsequently
-% numbered and float in the margin to avoid overlap.
+% \verb+\sidenote[number][offset]{text}+. All the sidenotes are subsequently
+% numbered and float in the margin to avoid overlap.
% The first, optional parameter will manually change the numbering to the given
-% value. The second offset parameter will fix the text at a certain position
-% in the margin. In particular, there is a difference between not providing an
+% value. The second offset parameter will fix the text at a certain position
+% in the margin. In particular, there is a difference between not providing an
% offset (floating text) and an offset of 0 (fix text at actual position).
%
-% \DescribeMacro{\sidenotemark}
-% Sidenote tries to mimic the footnote behavior and, consequently, provides the
-% same solutions. Sometimes, it is not possible to directly call a sidenote
-% macro, e.g.\ inside of a figure caption. Then, you can use
-% \verb+\sidenotemark[number]+ and \verb+\sidenotetext[number][offset]{text}+
-% macros. \verb+\sidenotemark+ puts a mark at the current position. Afterwards,
-% outside of the environment that causes the trouble,
+% \DescribeMacro{\sidenotemark}
+% Sidenote tries to mimic the footnote behavior and, consequently, provides the
+% same solutions. Sometimes, it is not possible to directly call a sidenote
+% macro, e.g.\ inside of a figure caption. Then, you can use
+% \verb+\sidenotemark[number]+ and \verb+\sidenotetext[number][offset]{text}+
+% macros. \verb+\sidenotemark+ puts a mark at the current position. Afterwards,
+% outside of the environment that causes the trouble,
% \DescribeMacro{\sidenotetext}
-% it is possible the call \verb+\sidenotetext[number][offset]{text}+ to provide
-% the text and typeset the sidenote. The optional parameters are similar to the
-% sidenote macro. The first, optional parameter will change the numbering and
+% it is possible the call \verb+\sidenotetext[number][offset]{text}+ to provide
+% the text and typeset the sidenote. The optional parameters are similar to the
+% sidenote macro. The first, optional parameter will change the numbering and
% the offset will change the position.
%
% \changes{v0.61}{2011/10/17}{documentation of sidetext}
%
%\DescribeMacro{\sidecaption}
-% The \verb+\sidecaption[entry][offset]{text}+ macro can be used if the caption
-% of a figure or table should be in the margin. The caption has to be adjacent
-% to the figure, so a float is not an option here. Therefore, the caption might
+% The \verb+\sidecaption[entry][offset]{text}+ macro can be used if the caption
+% of a figure or table should be in the margin. The caption has to be adjacent
+% to the figure, so a float is not an option here. Therefore, the caption might
% overlap with other marginals. Then, these marginals have to be adjusted with
% offset parameters. The formatting of the caption is done by the \emph{caption}
-% package by defining a \emph{sidecaption} style. Please refer to the
+% package by defining a \emph{sidecaption} style. Please refer to the
% documentation of the caption package for information on styles. The macro can
-% be starred, which is analog to the regular starred caption (no numbering, no
+% be starred, which is analog to the regular starred caption (no numbering, no
% tof entry): \verb+\sidecaption*[offset]{text}+.
%
% \DescribeEnv{marginfigure}
-% The marginfigure environment puts a figure and its caption in the margin.
-% Instead of \verb+\begin{figure}[htbp]+ use \verb+\begin{marginfigure}[offset]+.
-% Again, using an offset value switches the behavior from float to fixed
-% position. The marginfigure has its own caption style named \emph{marginfigure}.
+% The marginfigure environment puts a figure and its caption in the margin.
+% Instead of \verb+\begin{figure}[htbp]+ use \verb+\begin{marginfigure}[offset]+.
+% Again, using an offset value switches the behavior from float to fixed
+% position. The marginfigure has its own caption style named \emph{marginfigure}.
%
% \DescribeEnv{margintable}
-% The margintable environment works similar to marginfigure, but with table
-% environments. Use \verb+\begin{margintable}[offset]+ instead of
+% The margintable environment works similar to marginfigure, but with table
+% environments. Use \verb+\begin{margintable}[offset]+ instead of
% \verb+\begin{table}[htbp]+, its caption style is named \emph{margintable}.
%
% \DescribeEnv{figure*}
-% The \verb+figure*+ environment is used to position figures across the full
+% The \verb+figure*+ environment is used to position figures across the full
% page, i.e. the text width plus the margin. The algorithm has to distinguish
% between recto and verso (left and right) pages and might need up to three
% \LaTeX{} runs to provide the desired result. The corresponding caption style
-% is called \emph{widefigure}.
+% is called \emph{widefigure}.
% \DescribeEnv{table*}
-% The sister environment for tables is \verb+table*+. Use \emph{widetable} to
-% change its caption style.
+% The sister environment for tables is \verb+table*+. Use \emph{widetable} to
+% change its caption style.
%
% \section{Technical note}
%
-% When writing the package, we tried to provide a \emph{minimum} extension to
+% When writing the package, we tried to provide a \emph{minimum} extension to
% standard \LaTeX{} for typesetting rich content in the margin. This means,
% that there are no sensible default values for most things such as page
-% geometry, fonts and font sizes. However, the \emph{caesar\textunderscore
-% book}-class accompanies this package as an example implementation as well
-% as a template we use for our theses.
-%
-% In addition, we tried to keep compatibility with
-% packages the user might want to use later. However, the following packages
-% are needed by \emph{sidenotes} and might introduce side effects with other
+% geometry, fonts and font sizes. However, the \emph{caesar\textunderscore
+% book}-class accompanies this package as an example implementation as well
+% as a template we use for our theses.
+%
+% In addition, we tried to keep compatibility with
+% packages the user might want to use later. However, the following packages
+% are needed by \emph{sidenotes} and might introduce side effects with other
% packages.
%
% \section{Required packages}
-%
+%
% \changes{v0.52}{2011/10/06}{added a section that the package needs marginnote, caption and xifthen.}
% \changes{v0.90}{2012/06/02}{added a section that the package needs twoopt and changepage.}
-% \changes{v0.94}{2014/01/22}{start using xparse}
-% \changes{v0.97}{2014/06/05}{start using l3keys2e}
+% \changes{v0.94}{2014/01/22}{start using xparse}
+% \changes{v0.97}{2014/06/05}{start using l3keys2e}
%
% \begin{description}
% \item[marginnote]
-% supports an alternative to \verb+\marginpar+ and creates notes in the
-% margin. The notes are not floats and can be shifted up or down.
-% Technically, every time an offset is provided the package uses
+% supports an alternative to \verb+\marginpar+ and creates notes in the
+% margin. The notes are not floats and can be shifted up or down.
+% Technically, every time an offset is provided the package uses
% \verb+\marginnote+ and \verb+\marginpar+ otherwise.
% \item[caption]
-% allows to set figure and table captions in the margin and allows
-% easier formatting of these captions. Please refer to the
-% \emph{caption} manual for details on styles.
+% allows to set figure and table captions in the margin and allows
+% easier formatting of these captions. Please refer to the
+% \emph{caption} manual for details on styles.
% \item[xparse] is used to take advantage of the improved \LaTeX3 syntax.
% All macros and environments are defined using this package.
-% \item[l3keys2e] provides a key/value mechanism
-% \item[changepage] is used to correctly shift figure* and table*. It has
-% to use the option [strict] to work properly. This might lead to an
-% option clash, if the same package is loaded without this option.
+% \item[l3keys2e] provides a key/value mechanism
+% \item[changepage] is used to correctly shift figure* and table*. It has
+% to use the option [strict] to work properly. This might lead to an
+% option clash, if the same package is loaded without this option.
% \end{description}%
%
% \section{Implementation}
@@ -192,39 +192,41 @@
%<*package>
% \fi
%
-% Process the package options: onside
+% Process the package options: onside
%
% \begin{macrocode}
-\ExplSyntaxOn
+\ExplSyntaxOn
%
\keys_define:nn { sidenotes }
{
- oneside .bool_set:N = \sidenotes_oneside
+ oneside .bool_set:N = \sidenotes_oneside
}
\ProcessKeysOptions { sidenotes }
% \end{macrocode}
%
% \changes{v0.91}{2012/06/03}{sidenotetextstyle is not needed any more}
-% \changes{v0.94}{2014/01/22}{change sidenote counter behavior}
+% \changes{v0.94}{2014/01/22}{change sidenote counter behavior}
%
% We need a counter similar to the footnote counter.
%
% \begin{macrocode}
-\newcounter{sidenote} % make a counter
-\setcounter{sidenote}{1} % init the counter
+\newcounter{sidenote} % make a counter
+\setcounter{sidenote}{1} % init the counter
% \end{macrocode}
-%
-% \noindent The \LaTeX3 parts concerning the optional arguments should not
-% distinguish between an empty bracket pair and no optional
-% argument. This is required to keep macros with two leading
+%
+% \noindent The \LaTeX3 parts concerning the optional arguments should not
+% distinguish between an empty bracket pair and no optional
+% argument. This is required to keep macros with two leading
% optional arguments.
%
+% \changes{v1.20}{2024/09/12}{Allow long arguments.}
+%
% \begin{macrocode}
-\DeclareExpandableDocumentCommand{\IfNoValueOrEmptyTF}{ m m m }
+\DeclareExpandableDocumentCommand{\IfNoValueOrEmptyTF}{ m +m +m }
{
\IfNoValueTF{#1}
- {#2}
- {\tl_if_empty:nTF {#1} {#2} {#3}}
+ {#2}
+ {\tl_if_empty:nTF {#1} {#2} {#3}}
}
% \end{macrocode}
%
@@ -237,28 +239,28 @@
% \begin{macrocode}
\NewDocumentCommand \@sidenotes@thesidenotemark { m }
{
- \leavevmode
- \ifhmode
+ \leavevmode
+ \ifhmode
\edef \@x@sf {\the \spacefactor }
- \nobreak
- \fi
- \hbox {\@textsuperscript {\normalfont #1 }}
- \ifhmode
- \spacefactor \@x@sf
- \fi
+ \nobreak
+ \fi
+ \hbox {\@textsuperscript {\normalfont #1 }}
+ \ifhmode
+ \spacefactor \@x@sf
+ \fi
\relax
}
%
\NewDocumentCommand \@sidenotes@multisign { } {3sp}
%
-\NewDocumentCommand \@sidenotes@multimarker { }
+\NewDocumentCommand \@sidenotes@multimarker { }
{
\kern-\@sidenotes@multisign
- \kern\@sidenotes@multisign\relax
+ \kern\@sidenotes@multisign\relax
}
%
-\NewDocumentCommand \@sidenotes@multichecker { }
-{
+\NewDocumentCommand \@sidenotes@multichecker { }
+{
\dim_compare:nNnTF \lastkern = \@sidenotes@multisign
{\@sidenotes@thesidenotemark{,}}
{}
@@ -269,33 +271,35 @@
% \changes{v0.97}{2014/05/27}{introduce an internal macro to place the marginal text}
%
% \noindent Introduce an internal macro to place the marginal text. Use
-% margin note in case an offset is given and marginpar otherwise.
+% margin note in case an offset is given and marginpar otherwise.
+%
+% \changes{v1.20}{2024/09/12}{Allow long arguments.}
%
% \begin{macrocode}
-\NewDocumentCommand \@sidenotes@placemarginal { m m }
-{
+\NewDocumentCommand \@sidenotes@placemarginal { +m +m }
+{
\IfNoValueOrEmptyTF{#1}
- {\marginpar{#2}}
- {\marginnote{#2}[#1]}
+ {\marginpar{#2}}
+ {\marginnote{#2}[#1]}
}
%
% \end{macrocode}
%
% \begin{macro}{\sidenote}
-%
-% Introduce the \verb+\sidenote+ macro with two optional
+%
+% Introduce the \verb+\sidenote+ macro with two optional
% arguments to set the number and the offset.
%
% \changes{v0.53}{2011/10/07}{bugfix, now optional number and offset possible}
% \changes{v0.80}{2011/11/10}{unstar the newcommand.}
-% \changes{v0.81}{2011/11/29}{added a comma between subsequent sidenotes}
-% \changes{v0.90}{2012/06/02}{add optional offset for sidenote}
+% \changes{v0.81}{2011/11/29}{added a comma between subsequent sidenotes}
+% \changes{v0.90}{2012/06/02}{add optional offset for sidenote}
% \changes{v0.93}{2012/04/17}{removed mandatory whitespace, new ifnextchar takes care of that}
% \changes{v0.94}{2014/01/11}{use xparse syntax}
%
% \begin{macrocode}
-\NewDocumentCommand \sidenote { o o +m }
-{
+\NewDocumentCommand \sidenote { o o +m }
+{
\sidenotemark[#1]
\sidenotetext[#1][#2]{#3}
\@sidenotes@multimarker
@@ -311,8 +315,8 @@
% \changes{v0.96}{2014/02/14}{increase the sidenote counter in sidenotetext now}
%
% \begin{macrocode}
-\NewDocumentCommand \sidenotemark { o }
-{
+\NewDocumentCommand \sidenotemark { o }
+{
\@sidenotes@multichecker
\IfNoValueOrEmptyTF{#1}
{\@sidenotes@thesidenotemark{\thesidenote}}
@@ -324,7 +328,7 @@
%
% \begin{macro}{\sidenotetext}
%
-% Sidenotetext is supposed to work similarly to footnotetext. The additional,
+% Sidenotetext is supposed to work similarly to footnotetext. The additional,
% optional argument sets the offset.
%
% \changes{v0.80}{2011/11/10}{unstar the newcommand.}
@@ -333,10 +337,10 @@
% \changes{v0.94}{2014/01/11}{use xparse syntax, change counter behavior}
%
% \begin{macrocode}
-\NewDocumentCommand \sidenotetext { o o +m }
-{
+\NewDocumentCommand \sidenotetext { o o +m }
+{
\IfNoValueOrEmptyTF{#1}
- {
+ {
\@sidenotes@placemarginal{#2}{\textsuperscript{\thesidenote}{}~#3}
\refstepcounter{sidenote}
}
@@ -348,18 +352,18 @@
% \begin{macro}{\sidecaption}
%
% \changes{v0.91}{2012/06/03}{sidecaption* accompanies sidecaption}
-% \changes{v0.94}{2014/01/22}{use xparse syntax}
+% \changes{v0.94}{2014/01/22}{use xparse syntax}
%
-% Sidecaption puts the caption in the margin. It never floats with the other
+% Sidecaption puts the caption in the margin. It never floats with the other
% text in the margin, since it has to be next to the figure.
% Sidecaption* works similarly to sidecaption, but without an entry.
%
% \begin{macrocode}
\DeclareCaptionStyle{sidecaption}{font=footnotesize}
-\NewDocumentCommand \sidecaption {s o o m}
-{
+\NewDocumentCommand \sidecaption {s o o m}
+{
\captionsetup{style=sidecaption}
- \IfBooleanTF{#1}
+ \IfBooleanTF{#1}
{ % starred
\IfNoValueOrEmptyTF{#2}
{\marginnote{\caption*{#4}}}
@@ -381,15 +385,15 @@
%
% \changes{v0.3}{2011/09/29}{define the sidefigure enviroment without the environ package}
% \changes{v0.90}{2012/06/02}{the optional offset parameter is back, renamed environment from sidefigure to marginfigure}
-% \changes{v0.94}{2014/01/22}{use xparse syntax}
+% \changes{v0.94}{2014/01/22}{use xparse syntax}
%
-% The marginfigure environment is similar to the figure environment. But the
+% The marginfigure environment is similar to the figure environment. But the
% figure is put in the margin.
%
% \begin{macrocode}
\newsavebox{\@sidenotes@marginfigurebox}
\DeclareCaptionStyle{marginfigure}{font=footnotesize}
-\NewDocumentEnvironment{marginfigure} { o }
+\NewDocumentEnvironment{marginfigure} { o }
{
\begin{lrbox}{\@sidenotes@marginfigurebox}
\begin{minipage}{\marginparwidth}
@@ -407,9 +411,9 @@
%
% \changes{v0.4}{2011/09/30}{define the sidetable enviroment without the environ package}
% \changes{v0.90}{2012/06/02}{the optional offset parameter is back, renamed environment from sidetable to margintable}
-% \changes{v0.94}{2014/01/22}{use xparse syntax}
+% \changes{v0.94}{2014/01/22}{use xparse syntax}
%
-% The margintable is similar to the table environment. But the table
+% The margintable is similar to the table environment. But the table
% is put in the margin.
%
% \begin{macrocode}
@@ -433,11 +437,12 @@
%
% \changes{v0.85}{2011/06/01}{added the figure* environment}
% \changes{v0.97}{2014/05/27}{use adjustwidth in figure* environment}
+% \changes{v1.10}{2020/04/05}{address issue with figures across the full width}
%
-% The figure* environment provides a figure environment for figures that
+% The figure* environment provides a figure environment for figures that
% span across the full page (text plus margin width).
%
-% \begin{macrocode}
+% \begin{macrocode}
\AtBeginDocument{%
\newlength{\@sidenotes@extrawidth}
\setlength{\@sidenotes@extrawidth}{\marginparwidth}
@@ -468,9 +473,11 @@
{
\begin{figure}[#1]
\begin{autoadjustwidth}{}{-\@sidenotes@extrawidth}
+ \begin{minipage}{\linewidth}
\captionsetup{style=widefigure}
}
{
+ \end{minipage}
\end{autoadjustwidth}
\end{figure}
}
@@ -481,19 +488,22 @@
%
% \changes{v0.85}{2011/06/01}{added the table* environment}
% \changes{v0.97}{2014/05/27}{use adjustwidth in table* environment}
+% \changes{v1.10}{2020/04/05}{address issue with tables across the full width}
%
-% The table* environment provides a table environment for figures across
+% The table* environment provides a table environment for figures across
% text and margin width.
%
-% \begin{macrocode}
+% \begin{macrocode}
\DeclareCaptionStyle{widetable}{font=footnotesize}
\RenewDocumentEnvironment{table*}{ O{htbp} }
{
\begin{table}[#1]
\begin{autoadjustwidth}{}{-\@sidenotes@extrawidth}
+ \begin{minipage}{\linewidth}
\captionsetup{style=widetable}
}
{
+ \end{minipage}
\end{autoadjustwidth}
\end{table}
}
diff --git a/macros/latex/contrib/sidenotes/sidenotes.ins b/macros/latex/contrib/sidenotes/sidenotes.ins
index d6b5ebd8a8..7a21aa0515 100644
--- a/macros/latex/contrib/sidenotes/sidenotes.ins
+++ b/macros/latex/contrib/sidenotes/sidenotes.ins
@@ -8,7 +8,7 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2003/12/01 or later.
-%%
+%%
%% The author of this work is Andy Thomas
%%
@@ -21,7 +21,7 @@
IMPORTANT NOTE:
-This is a generated file and you are not allowed to distribute it
+This is a generated file and you are not allowed to distribute it
without the source of the work. See below about more informations
about the files the work consists of.
diff --git a/macros/latex/contrib/sidenotes/sidenotes.pdf b/macros/latex/contrib/sidenotes/sidenotes.pdf
index 31e4fb443e..e0363aa442 100644
--- a/macros/latex/contrib/sidenotes/sidenotes.pdf
+++ b/macros/latex/contrib/sidenotes/sidenotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/sillypage/sillypage-example.pdf b/macros/latex/contrib/sillypage/sillypage-example.pdf
index 3d8180932b..5fa9dd3048 100644
--- a/macros/latex/contrib/sillypage/sillypage-example.pdf
+++ b/macros/latex/contrib/sillypage/sillypage-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/sillypage/sillypage.dtx b/macros/latex/contrib/sillypage/sillypage.dtx
index 86982db30d..922d8b6a66 100644
--- a/macros/latex/contrib/sillypage/sillypage.dtx
+++ b/macros/latex/contrib/sillypage/sillypage.dtx
@@ -19,8 +19,8 @@
% by Phelype Oleinik, Paulo Cereda, samcarter and Ulrike Fischer.
%
%<*package>
-\def\sillypageDate{2023-03-04}
-\def\sillypageVersion{1.6}
+\def\sillypageDate{2024-07-23}
+\def\sillypageVersion{1.7}
%</package>
%<*driver>
\documentclass[a4paper,full]{l3doc}
@@ -261,9 +261,13 @@
\newcommand*\@silly { \@@_step:n }
\cs_new:Npn \@@_step:n #1
{
+ \UseTaggingSocket{@@/begin}{#1}
+ \SuspendTagging{@@}
\@@_step_aux:eN
{ \int_eval:n { \int_mod:nn { #1-1 } { \silly@steps } +1 } }
\c_false_bool
+ \ResumeTagging{@@}
+ \UseTaggingSocket{@@/end}
}
% \end{macrocode}
% \end{macro}
@@ -280,8 +284,12 @@
\newcommand*\@sillynumeral { \@@_numeral:n }
\cs_new:Npn \@@_numeral:n #1
{
+ \UseTaggingSocket{@@/begin}{#1}
+ \SuspendTagging{@@}
\exp_args:Ne \str_map_function:nN
{ \int_to_base:nn {#1} { 12 } } \@@_numeral_aux:n
+ \ResumeTagging{@@}
+ \UseTaggingSocket{@@/end}
}
\cs_new:Npn \@@_numeral_aux:n #1
{ \@@_step_aux:eN { "\char_uppercase:N #1+1 } \c_true_bool }
@@ -289,6 +297,28 @@
% \end{macro}
% \end{macro}
% \end{macro}
+%
+% \subsection{Tagging Support}
+
+% \begin{macrocode}
+\NewSocket{tagsupport/@@/begin}{1}
+\NewSocket{tagsupport/@@/end}{0}
+\NewSocketPlug{tagsupport/@@/begin}{tagged}
+ {
+ \mode_leave_vertical:
+ \tag_mc_end_push:
+ \tag_struct_begin:n {tag=Span}
+ \tag_mc_begin:n {actualtext=#1}
+ }
+\NewSocketPlug{tagsupport/@@/end}{tagged}
+ {
+ \tag_mc_end:
+ \tag_struct_end:
+ \tag_mc_begin_pop:n{}
+ }
+\AssignSocketPlug{tagsupport/@@/begin}{tagged}
+\AssignSocketPlug{tagsupport/@@/end}{tagged}
+% \end{macrocode}
%
% \subsection{Internals}
%
diff --git a/macros/latex/contrib/sillypage/sillypage.pdf b/macros/latex/contrib/sillypage/sillypage.pdf
index 3efa13e7d7..60305403ac 100644
--- a/macros/latex/contrib/sillypage/sillypage.pdf
+++ b/macros/latex/contrib/sillypage/sillypage.pdf
Binary files differ
diff --git a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.pdf b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.pdf
index 530ec3542d..916164bc45 100644
--- a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.pdf
+++ b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex
index 9793f8c7e1..e6abbcb3a7 100644
--- a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex
+++ b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex
@@ -23,8 +23,8 @@
\hypersetup{pdfborder=0 0 0}
\usepackage[margin=2cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.1}
-\def\TPdate{14/11/2023}
+\def\TPversion{0.1.3}
+\def\TPdate{28/09/2024}
\usepackage{soul}
\sethlcolor{lightgray!25}
\NewDocumentCommand\MontreCode{ m }{%
@@ -135,7 +135,7 @@ Les packages utiles, et chargés sont :
\begin{itemize}
\item \MontreCode{tikz} (avec \MontreCode{calc,positioning}), \MontreCode{pgf}, \MontreCode{pgffor} ;
- \item \MontreCode{calc}, \MontreCode{fontawesome5} ;
+ \item \MontreCode{calc}, \MontreCode{fontawesome5}, \MontreCode{forest} (avec \MontreCode{edges}) ;
\item \MontreCode{simplekv}, \MontreCode{xintexpr}, \MontreCode{listofitems}, \MontreCode{xstring} ;
\item \MontreCode{settobox}, \MontreCode{tabularray} ;
\item \MontreCode{tcolorbox} (avec \MontreCode{breakable,fitting,skins,listings,listingsutf8,hooks}).
@@ -147,6 +147,8 @@ Les packages utiles, et chargés sont :
\begin{quote}
\begin{verbatim}
+0.1.2 : Arborescence type explorateur
+0.1.2 : Visionneuse 'like' de scripts
0.1.1 : Ajout des commandes en [fr]
0.1.0 : Version initiale
\end{verbatim}
@@ -320,13 +322,18 @@ Pour créer une \og fausse\fg{} visionneuse, les environnements sont :
\begin{VisionnIMG}[clés]{options tcbox}
....
\end{VisionnIMG}
+
+%----Visionneuse de script python
+\begin{VisionnPY}[clés]{options tcbox}
+ ....
+\end{VisionnPY}
\end{verbatim}
\end{quote}
Les \textsf{clés}, optionnelles et entre \MontreCode{[...]}, sont :
\begin{itemize}
- \item \MontreCode{Titre} := titre du terminal (\MontreCode{Terminal Win/UNiX/Mac} par défaut) ;
+ \item \MontreCode{Titre} := titre de la visionneuse par défaut ;
\item \MontreCode{Align} := alignement horizontal (paragraphe) de la visionneuse (\MontreCode{center} par défaut) ;
\item \MontreCode{AlignH} := alignement horizontal (du contenu) de la visionneuse (\MontreCode{center} par défaut) ;
\item \MontreCode{Largeur} := largeur de la visionneuse (\MontreCode{\textbackslash linewidth} par défaut) ;
@@ -362,4 +369,125 @@ L'argument obligatoire, entre \MontreCode{\{...\}}, correspond à des options sp
\end{VisionnIMG}
\end{tcblisting}
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+%avec un environnement de présentation de codes si nécessaire
+\begin{VisionnPY}[Largeur=12cm]{}
+\begin{lstlisting}%
+ [
+ language=python,basicstyle=\ttfamily\small,
+ keywordstyle=\color{green!50!black},tabsize=4,
+ keywordstyle={[2]\color{magenta}},
+ numbers=left,numbersep=3mm,xleftmargin=5mm,
+ aboveskip=0pt,belowskip=0pt,
+ numberstyle=\footnotesize\ttfamily\color{gray}
+ ]
+nterms = int(input("Entrez un nombre: "))
+
+n1 = 0
+n2 = 1
+
+print("\n la suite Fibonacci est : ")
+print(n1, ",", n2, end=", ")
+
+for i in range(2, nterms):
+ suivant = n1 + n2
+ print(suivant, end=", ")
+
+n1 = n2
+n2 = suivant
+\end{lstlisting}
+\end{VisionnPY}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Arborescence de dossiers/fichiers}
+
+Le package \MontreCode{forest}, et sa librairie \MontreCode{edges}, permet de présenter des arbres, à la manière d'une arborescence de fichiers.
+
+\begin{quote}
+\begin{verbatim}
+\begin{ArborDossiers}[clés]{options forest}
+ [dossier,ADdos
+ [sous-dossier,ADdos]
+ [sous-dossier,ADdos
+ [fichier1,ADfic]
+ [fichier2,ADfic]
+ ...
+ ]
+ ...
+ ]
+\end{ArborDossiers}
+\end{verbatim}
+\end{quote}
+
+Les \textsf{clés}, optionnelles et entre \MontreCode{[...]}, sont :
+
+\begin{itemize}
+ \item \MontreCode{Police} := police des labels ;
+ \item \MontreCode{CoulIcoD} := couleur des icones \textsf{dossier} (\MontreCode{gray} par défaut) ;
+ \item \MontreCode{CoulIcoF} := couleur des icones \textsf{fichier} (\MontreCode{gray} par défaut) ;
+ \item \MontreCode{AffIcoD} := booléen pour afficher les icones \textsf{dossier} ;
+ \item \MontreCode{AffIcoF} := booléen pour afficher les icones \textsf{fichier} ;
+ \item \MontreCode{EspaceV} := espace vertical entre les items (\MontreCode{0.15em} par défaut) ;
+ \item \MontreCode{IcoD} := icone par défaut \textsf{dossier} ;
+ \item \MontreCode{IcoF} := icone par défaut \textsf{fichier}.
+\end{itemize}
+
+\medskip
+
+Les \textsf{dossiers} sont à déclarer sous la forme \MontreCode{<nom\_dossier>,ADdos}.
+
+Les \textsf{fichiers} sont à déclarer sous la forme \MontreCode{<nom\_fichier>,ADfic}.
+
+\medskip
+
+L'argument obligatoire, entre \MontreCode{\{...\}}, correspond à des options spécifiques, à passer en langage \textsf{forest}.
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{ArborDossiers}{}
+ [dossier,ADdos
+ [sous-dossier,ADdos]
+ [sous-dossier,ADdos
+ [fichier1,ADfic]
+ [fichier2,ADfic]
+ ]
+ [fichier3,ADfic]
+ ]
+\end{ArborDossiers}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{ArborDossiers}%
+ [Police=\sffamily,CoulIcoD=yellow!50!pink,AffIcoF,CoulIcoF=teal,EspaceV=0.5em]%
+ {}
+ [dossier,ADdos
+ [sous-dossier,ADdos]
+ [sous-dossier,ADdos
+ [fichier1,ADfic]
+ [fichier2,ADfic]
+ ]
+ [fichier3,ADfic]
+ ]
+\end{ArborDossiers}
+\end{tcblisting}
+
+Les styles sont définis de manière globale, et ils peuvent être redéfinis si besoin.
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\tikzset{ADtrait/.style={thick,->,densely dashed,red,>=latex}}
+\begin{ArborDossiers}%
+ [Police=\sffamily,CoulIcoD=yellow!50!pink,AffIcoF,CoulIcoF=teal,EspaceV=0.5em]%
+ {l sep=2em}
+ [dossier,ADdos
+ [sous-dossier,ADdos]
+ [sous-dossier,ADdos
+ [fichier1,ADfic]
+ [fichier2,ADfic]
+ ]
+ [fichier3,ADfic]
+ ]
+\end{ArborDossiers}
+\end{tcblisting}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdf b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdf
index 6550a4c0d5..e350684ab6 100644
--- a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdf
+++ b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex
index 229d363700..ab3e44596f 100644
--- a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex
+++ b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex
@@ -23,8 +23,8 @@
\hypersetup{pdfborder=0 0 0}
\usepackage[margin=2cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.1}
-\def\TPdate{14/11/2023}
+\def\TPversion{0.1.3}
+\def\TPdate{28/09/2024}
\usepackage{soul}
\sethlcolor{lightgray!25}
\NewDocumentCommand\MontreCode{ m }{%
@@ -122,7 +122,7 @@ Global styles are mostly fixed, but some customizations are possible.
\subsection{Loading}
-To load the package, simply use :
+To load the package, simply use:
\begin{quote}
\begin{verbatim}
@@ -130,13 +130,13 @@ To load the package, simply use :
\end{verbatim}
\end{quote}
-The package loads the packages :
+The package loads the packages:
\begin{itemize}
- \item \MontreCode{tikz} (with \MontreCode{calc,positioning}), \MontreCode{pgf}, \MontreCode{pgffor} ;
- \item \MontreCode{calc}, \MontreCode{fontawesome5} ;
- \item \MontreCode{simplekv}, \MontreCode{xintexpr}, \MontreCode{listofitems}, \MontreCode{xstring} ;
- \item \MontreCode{settobox}, \MontreCode{tabularray} ;
+ \item \MontreCode{tikz} (with \MontreCode{calc,positioning}), \MontreCode{pgf}, \MontreCode{pgffor};
+ \item \MontreCode{calc}, \MontreCode{fontawesome5};
+ \item \MontreCode{simplekv}, \MontreCode{xintexpr}, \MontreCode{listofitems}, \MontreCode{xstring};
+ \item \MontreCode{settobox}, \MontreCode{tabularray};
\item \MontreCode{tcolorbox} (with \MontreCode{breakable,fitting,skins,listings,listingsutf8,hooks}).
\end{itemize}
@@ -146,8 +146,10 @@ The package loads the packages :
\begin{quote}
\begin{verbatim}
-0.1.1 : French version of the commands
-0.1.0 : Initial version
+0.1.3: Fofders/Files like in explorer
+0.1.2: Script editor viewer 'like'
+0.1.1: French version of the commands
+0.1.0: Initial version
\end{verbatim}
\end{quote}
@@ -157,7 +159,7 @@ The package loads the packages :
\subsection{Context menu}
-I order to create a context menu, the command is :
+I order to create a context menu, the command is:
\begin{quote}
\begin{verbatim}
@@ -166,35 +168,35 @@ I order to create a context menu, the command is :
\end{verbatim}
\end{quote}
-Optional keys, between \MontreCode{[...]} are :
+Optional keys, between \MontreCode{[...]} are:
\begin{itemize}
- \item \MontreCode{ColBack} := background color ;
- \item \MontreCode{ColHL} : = highlight color ;
- \item \MontreCode{Rounded} := boolean for rounded corners (\MontreCode{true} by default) ;
- \item \MontreCode{Font} := font for the items (\MontreCode{\textbackslash normalsize\textbackslash normalfont} by default) ;
- \item \MontreCode{ColItems} := color(s) for the items (\MontreCode{black} by default) ;
- \item \MontreCode{MarginV} := vertical margin of the lines (\MontreCode{6pt} by default) ;
- \item \MontreCode{MarginH} := horizontal margin of the lines (\MontreCode{12pt} by default) ;
- \item \MontreCode{Arrow} := character for the arrow (\MontreCode{\textbackslash faCaretRight} by default) ;
- \item \MontreCode{ListSeps} := list for the possible sep lines (empty or for all the levels !) ;
- \item \MontreCode{ListIcons} := list for the possible icons (empty or for all the levels/items !) ;
- \item \MontreCode{ListOffsets} := list for the possible vertical offset of levels (from 2, \ldots !) (empty or for all the sub-levels !) ;
- \item \MontreCode{Icons} := boolean for icons (\MontreCode{false} by default) ;
- \item \MontreCode{Bar} := boolean for small vertical bar with icons (\MontreCode{true} by default) ;
- \item \MontreCode{Space} := horizontal space between levels (\MontreCode{-0.125} by default).
+ \item \MontreCode{ColBack}: background color;
+ \item \MontreCode{ColHL}: = highlight color;
+ \item \MontreCode{Rounded}: boolean for rounded corners (\MontreCode{true} by default);
+ \item \MontreCode{Font}: font for the items (\MontreCode{\textbackslash normalsize\textbackslash normalfont} by default);
+ \item \MontreCode{ColItems}: color(s) for the items (\MontreCode{black} by default);
+ \item \MontreCode{MarginV}: vertical margin of the lines (\MontreCode{6pt} by default);
+ \item \MontreCode{MarginH}: horizontal margin of the lines (\MontreCode{12pt} by default);
+ \item \MontreCode{Arrow}: character for the arrow (\MontreCode{\textbackslash faCaretRight} by default);
+ \item \MontreCode{ListSeps}: list for the possible sep lines (empty or for all the levels !);
+ \item \MontreCode{ListIcons}: list for the possible icons (empty or for all the levels/items !);
+ \item \MontreCode{ListOffsets}: list for the possible vertical offset of levels (from 2, \ldots !) (empty or for all the sub-levels !);
+ \item \MontreCode{Icons}: boolean for icons (\MontreCode{false} by default);
+ \item \MontreCode{Bar}: boolean for small vertical bar with icons (\MontreCode{true} by default);
+ \item \MontreCode{Space}: horizontal space between levels (\MontreCode{-0.125} by default).
\end{itemize}
\medskip
-The mandatory argument, between \MontreCode{\{...\}}, is given as :
+The mandatory argument, between \MontreCode{\{...\}}, is given as:
\smallskip
\hfill\MontreCode{item1A,item1B,... § item2A,itemp2B,... § ...}\hfill~
\begin{itemize}
- \item if an item ends with \MontreCode{(*)}, this is the beginning of the next level (\underline{only one} by level !) ;
+ \item if an item ends with \MontreCode{(*)}, this is the beginning of the next level (\underline{only one} by level !);
\item if an item ends with \MontreCode{(>)} (\underline{before} optional \MontreCode{(*)}), an arrow is written at the end of the line.
\end{itemize}
@@ -202,11 +204,11 @@ A correct usage of the syntax is necessary for the code !
\vspace{5mm}
-A few tips, due to \MontreCode{ListIcons}, \MontreCode{ListOffsets} and \MontreCode{ListSeps} keys, which are \textit{sensitive} :
+A few tips, due to \MontreCode{ListIcons}, \MontreCode{ListOffsets} and \MontreCode{ListSeps} keys, which are \textit{sensitive}:
\begin{itemize}
- \item \MontreCode{ListIcons} must have the same number of elements than the number of levels/items (with possible empty items) ;
- \item \MontreCode{ListSeps} must have the same number of elements than the number of levels (with possible empty items) ;
+ \item \MontreCode{ListIcons} must have the same number of elements than the number of levels/items (with possible empty items);
+ \item \MontreCode{ListSeps} must have the same number of elements than the number of levels (with possible empty items);
\item \MontreCode{ListOffsets} must have the same number of elements than the numbers of sub-levels (with 0 si no offset !).
\end{itemize}
@@ -237,7 +239,7 @@ A few tips, due to \MontreCode{ListIcons}, \MontreCode{ListOffsets} and \MontreC
\subsection{Terminal}
-In order to create a terminal (Win/UNiX/Mac), environments are :
+In order to create a terminal (Win/UNiX/Mac), environments are:
\begin{quote}
\begin{verbatim}
@@ -258,12 +260,12 @@ In order to create a terminal (Win/UNiX/Mac), environments are :
\end{verbatim}
\end{quote}
-Optional keys, between \MontreCode{[...]} are :
+Optional keys, between \MontreCode{[...]} are:
\begin{itemize}
- \item \MontreCode{Title} := title of the terminal (\MontreCode{Terminal Win/UNiX/Mac} by default) ;
- \item \MontreCode{Align} := horizontal alignment of the box (\MontreCode{center} by default) ;
- \item \MontreCode{Width} := width of the box (\MontreCode{\textbackslash linewidth} by default).
+ \item \MontreCode{Title}: title of the terminal (\MontreCode{Terminal Win/UNiX/Mac} by default);
+ \item \MontreCode{Align}: horizontal alignment of the box (\MontreCode{center} by default);
+ \item \MontreCode{Width}: width of the box (\MontreCode{\textbackslash linewidth} by default).
\end{itemize}
\medskip
@@ -275,14 +277,14 @@ The mandatory argument, between \MontreCode{\{...\}}, are options to give to the
Microsoft Windows [version 10.0.22000.493]
(c) Microsoft Corporation. Tous droits réservés.
C:\Users\test>ping ctan.org
-Envoi d'une requête 'ping' sur ctan.org [5.35.249.60] avec 32 octets de données :
-Réponse de 5.35.249.60 : octets=32 temps=35 ms TTL=51
-Réponse de 5.35.249.60 : octets=32 temps=37 ms TTL=51
-Réponse de 5.35.249.60 : octets=32 temps=35 ms TTL=51
-Réponse de 5.35.249.60 : octets=32 temps=39 ms TTL=51
+Envoi d'une requête 'ping' sur ctan.org [5.35.249.60] avec 32 octets de données:
+Réponse de 5.35.249.60: octets=32 temps=35 ms TTL=51
+Réponse de 5.35.249.60: octets=32 temps=37 ms TTL=51
+Réponse de 5.35.249.60: octets=32 temps=35 ms TTL=51
+Réponse de 5.35.249.60: octets=32 temps=39 ms TTL=51
Statistiques Ping pour 5.35.249.60:
-Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
-Durée approximative des boucles en millisecondes :
+Paquets: envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
+Durée approximative des boucles en millisecondes:
Minimum = 35ms, Maximum = 39ms, Moyenne = 36ms
\end{TermWin}
\end{tcblisting}
@@ -305,7 +307,7 @@ PING ctan.org (5.35.249.60) 56(84) bytes of data.
\subsection{Viewers}
-In order to create a 'fake' viewer (for \textsf{pdf} or \textsf{img}), environments are :
+In order to create a 'fake' viewer (for \textsf{pdf} or \textsf{img}), environments are:
\begin{quote}
\begin{verbatim}
@@ -318,17 +320,22 @@ In order to create a 'fake' viewer (for \textsf{pdf} or \textsf{img}), environme
\begin{IMGViewer}[keys]{tcbox options}
....
\end{IMGViewer}
+
+%----Script editor like
+\begin{PYViewer}[keys]{tcbox options}
+ ....
+\end{PYViewer}
\end{verbatim}
\end{quote}
-Optional keys, between \MontreCode{[...]} are :
+Optional keys, between \MontreCode{[...]} are:
\begin{itemize}
- \item \MontreCode{Title} := title of the terminal (\MontreCode{Terminal Windows} by default) ;
- \item \MontreCode{Align} := horizontal alignment of the box (\MontreCode{center} by default) ;
- \item \MontreCode{Width} := width of the box (\MontreCode{\textbackslash linewidth} by default) ;
- \item \MontreCode{Halign} := horizontal alignment fot the content (\MontreCode{left} by default) ;
- \item \MontreCode{Icons} := boolean for the icons (\MontreCode{true} by default).
+ \item \MontreCode{Title}: title of the viewer;
+ \item \MontreCode{Align}: horizontal alignment of the box (\MontreCode{center} by default);
+ \item \MontreCode{Width}: width of the box (\MontreCode{\textbackslash linewidth} by default);
+ \item \MontreCode{Halign}: horizontal alignment fot the content (\MontreCode{left} by default);
+ \item \MontreCode{Icons}: boolean for the icons (\MontreCode{true} by default).
\end{itemize}
\medskip
@@ -360,4 +367,125 @@ The mandatory argument, between \MontreCode{\{...\}}, are options to give to the
\end{IMGViewer}
\end{tcblisting}
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+%with listings, or piton, for example
+\begin{PYViewer}[width=12cm]{}
+\begin{lstlisting}%
+ [
+ language=python,basicstyle=\ttfamily\small,
+ keywordstyle=\color{green!50!black},tabsize=4,
+ keywordstyle={[2]\color{magenta}},
+ numbers=left,numbersep=3mm,xleftmargin=5mm,
+ aboveskip=0pt,belowskip=0pt,
+ numberstyle=\footnotesize\ttfamily\color{gray}
+ ]
+nterms = int(input("Entrez un nombre: "))
+
+n1 = 0
+n2 = 1
+
+print("\n la suite Fibonacci est: ")
+print(n1, ",", n2, end=", ")
+
+for i in range(2, nterms):
+ suivant = n1 + n2
+ print(suivant, end=", ")
+
+n1 = n2
+n2 = suivant
+\end{lstlisting}
+\end{PYViewer}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Folders/files as in explrer}
+
+The \MontreCode{forest} package, with his library \MontreCode{edges}, can present foldertrees.
+
+\begin{quote}
+\begin{verbatim}
+\begin{ForestDirTree}[keys]{forest options}
+ [folder,FTdir
+ [subfolder1,FTdir]
+ [subfolder2,FTdir
+ [file1,FTfile]
+ [file2,FTfile]
+ ...
+ ]
+ ...
+ ]
+\end{ForestDirTree}
+\end{verbatim}
+\end{quote}
+
+Available \textsf{keys}, betweeen \MontreCode{[...]}, are:
+
+\begin{itemize}
+ \item \MontreCode{font}: font of texts;
+ \item \MontreCode{coliconfolder}: \MontreCode{gray} by default;
+ \item \MontreCode{coliconfile}: \MontreCode{gray} by default;
+ \item \MontreCode{iconfolders}: boolean for folder icons;
+ \item \MontreCode{iconfiles}: boolean for file icons;
+ \item \MontreCode{vsep}: vertical space between items (\MontreCode{0.15em} by default);
+ \item \MontreCode{iconfolder}: icon for folder;
+ \item \MontreCode{iconfile}: icone for file.
+\end{itemize}
+
+\medskip
+
+\textsf{Folders} need to be given within \MontreCode{<folder\_name>,FTdir}.
+
+\textsf{Files} need to be given within \MontreCode{<file\_name>,FTfile}.
+
+\medskip
+
+Mandatory argument, between \MontreCode{\{...\}}, corresponds to \textsf{forest} specific commands.
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{ForestDirTree}{}
+ [folder,FTdir
+ [subfolder1,FTdir]
+ [subfolder2,FTdir
+ [file1,FTfile]
+ [file2,FTfile]
+ ]
+ [file3,FTfile]
+ ]
+\end{ForestDirTree}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{ForestDirTree}%
+ [font=\sffamily,coliconfolder=yellow!50!pink,iconfiles,coliconfile=teal,vsep=0.5em]%
+ {}
+ [folder,FTdir
+ [subfolder1,FTdir]
+ [subfolder2,FTdir
+ [file1,FTfile]
+ [file2,FTfile]
+ ]
+ [file3,FTfile]
+ ]
+\end{ForestDirTree}
+\end{tcblisting}
+
+Styles are global, but can be locally defined.
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\tikzset{FTedge/.style={thick,->,densely dashed,red,>=latex}}
+\begin{ForestDirTree}%
+ [font=\sffamily,coliconfolder=yellow!50!pink,iconfiles,coliconfile=teal,vsep=0.5em]%
+ {l sep=2em}
+ [folder,FTdir
+ [subfolder1,FTdir]
+ [subfolder2,FTdir
+ [file1,FTfile]
+ [file2,FTfile]
+ ]
+ [file3,FTfile]
+ ]
+\end{ForestDirTree}
+\end{tcblisting}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty b/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty
index 01da065abb..ee8a15a8eb 100644
--- a/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty
+++ b/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty
@@ -2,7 +2,9 @@
% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{sim-os-menus}[2023/11/14 0.1.1 Present 'context menu'/'terminal'/'windows', with TikZ or tcolorbox (en of fr commands)]
+\ProvidesPackage{sim-os-menus}[2024/09/28 0.1.3 Present 'context menu'/'terminal'/'windows', with TikZ or tcolorbox (en or fr commands)]
+% 0.1.3 DirTree avec forest
+% 0.1.2 Ajout d'une visionneuse type python
% 0.1.1 French version of the commands
% 0.1.0 Initial version
@@ -794,4 +796,180 @@
\endtcolorbox%
}
+%====PYVIEWER (OK) 0.1.2
+\tcbset{StylePYViewer/.style={%
+ enhanced,boxrule=1pt,arc=3pt,before skip=\baselineskip,after skip=\baselineskip,%
+ colframe=gray,colback=lightgray!5,colbacktitle=lightgray!15,colupper=black,coltitle=black,titlerule=0.4pt,left=3pt,top=2pt,bottom=2pt,right=2pt,middle=0pt,fonttitle=\bfseries\small\sffamily
+ }
+}
+
+\setKVdefault[PYVisionn]{Titre={Éditeur Python},Align={center},Largeur={\linewidth},AlignH={flush left},Icones=true}
+
+\NewDocumentCommand\PYVIewerTitre{ s }{%
+ \IfBooleanTF{#1}%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[PYVisionn]{Titre} && \faPython \\
+ \end{tblr}
+ }%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]l|[1pt]l|[1pt]l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[PYVisionn]{Titre} & \faFile*[regular]~~\faIcon[regular]
+ {file-code}~~\faSave&\faPlay~~\faStop&\faBug&& \faPython \\
+ \end{tblr}
+ }%
+}
+
+\NewDocumentEnvironment{VisionnPY}{ O{} m }
+{%
+ \restoreKV[PYVisionn]%
+ \setKV[PYVisionn]{#1}%
+ \tcolorbox[StylePYViewer,{\useKV[PYVisionn]{Align}},title={\ifboolKV[PYVisionn]{Icones}{\PYVIewerTitre}{\PYVIewerTitre*}},width={\useKV[PYVisionn]{Largeur}},halign={\useKV[PYVisionn]{AlignH}},#2]
+}%
+{%
+ \endtcolorbox%
+}
+
+\setKVdefault[PYViewer]{title={Python editor},align={center},width={\linewidth},halign={flush left},icons=true}
+
+\NewDocumentCommand\PYVIewerTitle{ s }{%
+ \IfBooleanTF{#1}%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[PYViewer]{title} && \faPython \\
+ \end{tblr}
+ }%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]l|[1pt]l|[1pt]l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[PYViewer]{title} & \faFile*[regular]~~\faIcon[regular]
+ {file-code}~~\faSave&\faPlay~~\faStop&\faBug&& \faPython \\
+ \end{tblr}
+ }%
+}
+
+\NewDocumentEnvironment{PYViewer}{ O{} m }
+{%
+ \restoreKV[PYViewer]%
+ \setKV[PYViewer]{#1}%
+ \tcolorbox[StylePYViewer,{\useKV[PYViewer]{align}},title={\ifboolKV[PYViewer]{icons}{\PYVIewerTitle}{\PYVIewerTitle*}},width={\useKV[PYViewer]{width}},halign={\useKV[PYViewer]{halign}},#2]
+}%
+{%
+ \endtcolorbox%
+}
+
+%====FOLDERTREEE (forest)
+\RequirePackage{forest}
+\useforestlibrary{edges}
+
+%\def\foldertreecolor{yellow!50!pink}
+%\def\filefoldertreecolor{gray}
+
+\NewDocumentCommand\dirforest{ s O{\foldertreecolor} }{%
+ \IfBooleanTF{#1}{}{\scalebox{0.85}[0.85]{\color{#2}\foldertreeiconfolder}\hspace{0.25em}}%
+}
+
+\NewDocumentCommand\fileforest{ s O{\filefoldertreecolor} }{%
+ \IfBooleanTF{#1}{}{\scalebox{0.85}[0.85]{\color{#2}\foldertreeiconfile}\hspace{0.25em}}%
+}
+
+\tikzset{FTdir/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\dirforest}}
+\tikzset{FTfile/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\fileforest}}
+\tikzset{FTedge/.style={semithick,darkgray}}
+
+\defKV[forestdirtree]{%
+ font=\def\forestditreefont{#1},%
+ coliconfolder=\def\foldertreecolor{#1},%
+ iconfolder=\def\foldertreeiconfolder{#1},%
+ coliconfile=\def\filefoldertreecolor{#1},%
+ vsep=\def\filefoldertreevsep{#1},%
+ iconfile=\def\foldertreeiconfile{#1}
+}
+
+\setKVdefault[forestdirtree]{%
+ font=\footnotesize\ttfamily,%
+ coliconfolder=gray,%
+ coliconfile=gray,%
+ iconfolders=true,%
+ iconfiles=false,%
+ vsep=0.15em,%
+ iconfolder={\faFolderOpen},%
+ iconfile={\faIcon*[regular]{file}}
+}
+
+\NewDocumentEnvironment{ForestDirTree}{ O{} m +b }
+{
+ \restoreKV[forestdirtree]%
+ \setKV[forestdirtree]{#1}%
+ \ifboolKV[forestdirtree]{iconfolders}%
+ {%
+ \tikzset{FTdir/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\dirforest}}%
+ }%
+ {%
+ \tikzset{FTdir/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\dirforest*}}%
+ }%
+ \ifboolKV[forestdirtree]{iconfiles}%
+ {%
+ \tikzset{FTfile/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\fileforest}}%
+ }%
+ {%
+ \tikzset{FTfile/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\fileforest*}}%
+ }%
+ \forest
+ for tree={s sep=\filefoldertreevsep,folder,grow'=0,folder indent=0.5em,fit=band,font=\forestditreefont,edge={FTedge},#2}
+ #3
+}%
+{%
+ \endforest%
+}
+
+\tikzset{ADdos/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\dirforest}}
+\tikzset{ADfic/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\fileforest}}
+\tikzset{ADtrait/.style={semithick,darkgray}}
+
+\defKV[forestarbor]{%
+ Police=\def\forestditreefont{#1},%
+ CoulIcoD=\def\foldertreecolor{#1},%
+ CoulIcoF=\def\filefoldertreecolor{#1},%
+ EspaceV=\def\filefoldertreevsep{#1},%
+ IcoD=\def\foldertreeiconfolder{#1},%
+ IcoF=\def\foldertreeiconfile{#1}
+}
+
+\setKVdefault[forestarbor]{%
+ Police=\footnotesize\ttfamily,%
+ CoulIcoD=gray,%
+ CoulIcoF=gray,%
+ AffIcoD=true,%
+ AffIcoF=false,%
+ EspaceV=0.15em,%
+ IcoD={\faFolderOpen},%
+ IcoF={\faIcon*[regular]{file}}
+}
+
+\NewDocumentEnvironment{ArborDossiers}{ O{} m +b }
+{
+ \restoreKV[forestarbor]%
+ \setKV[forestarbor]{#1}%
+ \ifboolKV[forestarbor]{AffIcoD}%
+ {%
+ \tikzset{ADdos/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\dirforest}}%
+ }%
+ {%
+ \tikzset{ADdos/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\dirforest*}}%
+ }%
+ \ifboolKV[forestarbor]{AffIcoF}%
+ {%
+ \tikzset{ADfic/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\fileforest}}%
+ }%
+ {%
+ \tikzset{ADfic/.style={inner sep=1pt,execute at begin node=\vphantom{(pL)}\fileforest*}}%
+ }%
+ \forest
+ for tree={s sep=\filefoldertreevsep,folder,grow'=0,folder indent=0.5em,fit=band,font=\forestditreefont,edge={ADtrait},#2}
+ #3
+}%
+{%
+ \endforest%
+}
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/siunitx/CHANGELOG.md b/macros/latex/contrib/siunitx/CHANGELOG.md
index 1c81cd5e7a..bfc2c8dbd0 100644
--- a/macros/latex/contrib/siunitx/CHANGELOG.md
+++ b/macros/latex/contrib/siunitx/CHANGELOG.md
@@ -7,6 +7,29 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
## [Unreleased]
+## [v3.3.22] - 2024-09-30
+
+### Fixed
+- Automatically set `unit-font-command` with `beamer` only when the user has
+ not manually adjusted (see issue
+ [\#748](https://github.com/josephwright/siunitx/issues/748))
+
+## [v3.3.21] - 2024-08-20
+
+### Fixed
+- Conversion of negative angles to arc notation (see issue
+ [\#743](https://github.com/josephwright/siunitx/issues/743))
+- Rounding of angles in arc mode (see issue
+ [\#744](https://github.com/josephwright/siunitx/issues/744))
+- Polar form of negative real values (see issue
+ [\#745](https://github.com/josephwright/siunitx/issues/745))
+
+## [v3.3.20] - 2024-08-01
+
+### Fixed
+- Avoid rounding up when residual is exactly zero (see issue
+ [\#742](https://github.com/josephwright/siunitx/issues/742))
+
## [v3.3.19] - 2024-06-24
### Fixed
@@ -2120,7 +2143,10 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
### Added
- First public testing release (as `si`)
-[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.3.19...HEAD
+[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.3.22...HEAD
+[v3.3.22]: https://github.com/josephwright/siunitx/compare/v3.3.21...v3.3.22
+[v3.3.21]: https://github.com/josephwright/siunitx/compare/v3.3.20...v3.3.21
+[v3.3.20]: https://github.com/josephwright/siunitx/compare/v3.3.19...v3.3.20
[v3.3.19]: https://github.com/josephwright/siunitx/compare/v3.3.18...v3.3.19
[v3.3.18]: https://github.com/josephwright/siunitx/compare/v3.3.17...v3.3.18
[v3.3.17]: https://github.com/josephwright/siunitx/compare/v3.3.16...v3.3.17
diff --git a/macros/latex/contrib/siunitx/siunitx-angle.dtx b/macros/latex/contrib/siunitx/siunitx-angle.dtx
index ac933f4636..91d67690f0 100644
--- a/macros/latex/contrib/siunitx/siunitx-angle.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-angle.dtx
@@ -303,18 +303,23 @@
}
}
\cs_generate_variant:Nn \siunitx_angle:nnn { eee , xxx }
+% \end{macrocode}
+% Here, the need for absolute values is to handle conversion of negative
+% values: the result should be exactly one sign in the integer part.
+% \begin{macrocode}
\cs_new_protected:Npn \@@_arc_convert:n #1
{
\siunitx_angle:eee
{ \fp_eval:n { trunc(#1,0) } }
- { \fp_eval:n { trunc((#1 - trunc(#1,0)) * 60,0) } }
+ { \fp_eval:n { abs(trunc((#1 - trunc(#1,0)) * 60,0)) } }
{
\fp_eval:n
{
- (
- (#1 - trunc(#1,0)) * 60
- - trunc((#1 - trunc(#1,0)) * 60,0)
- )
+ abs
+ (
+ (#1 - trunc(#1,0)) * 60
+ - trunc((#1 - trunc(#1,0)) * 60,0)
+ )
* 60
}
}
@@ -325,6 +330,13 @@
% \end{macro}
% \end{macro}
%
+% \begin{variable}{\c_@@_parts_tl}
+% For mappings.
+% \begin{macrocode}
+\clist_const:Nn \c_@@_parts_tl { degrees , minutes , seconds }
+% \end{macrocode}
+% \end{variable}
+%
% \begin{variable}{\l_@@_degrees_tl, \l_@@_minutes_tl, \l_@@_seconds_tl}
% Space for formatting parsed numbers.
% \begin{macrocode}
@@ -341,7 +353,14 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}{\@@_suppress_exp_uncert:, \@@_suppress_comp_sign:}
+% \begin{variable}{\l_@@_signed_bool}
+% To check that only one sign is seen in arc mode.
+% \begin{macrocode}
+\tl_new:N \l_@@_signed_bool
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}{\@@_suppress_exp_uncert:, \@@_suppress_comp:}
% Pre-compilation of keys to suppress uncertainties and exponents,
% and
% \begin{macrocode}
@@ -358,60 +377,45 @@
{ \exp_not:V \l_@@_tmp_tl }
\keys_precompile:nnN
{ siunitx }
- { input-comparators = , input-signs = }
+ { input-comparators = }
\l_@@_tmp_tl
-\cs_set_protected:Npx \@@_suppress_comp_sign:
+\cs_set_protected:Npx \@@_suppress_comp:
{ \exp_not:V \l_@@_tmp_tl }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_arc_sign:nnn}
% \begin{macro}{\@@_arc_sign:nn}
+% \begin{macro}{\@@_arc_sign_auxi:, \@@_arc_sign_auxii:}
% \begin{macro}{\@@_extract_sign:nnnnnnnn}
% \begin{macro}[EXP]{\@@_sign:nnnnnnn}
% To get the sign in the right place whilst dealing with zero filling
% means doing some shuffling. That means doing processing of each number
-% manually.
+% manually. For degrees, auto-conversion can give |-0|, which needs to be
+% picked up early to set the sign.
% \begin{macrocode}
\cs_new_protected:Npn \@@_arc_sign:nnn #1#2#3
{
\group_begin:
\@@_suppress_exp_uncert:
\tl_clear:N \l_@@_sign_tl
- \@@_arc_sign:nn {#1} { degrees }
+ \bool_set_false:N \l_@@_signed_bool
+ \str_if_eq:nnTF {#1} { -0 }
+ {
+ \@@_arc_sign:nn { } { degrees }
+ \@@_suppress_comp:
+ \tl_set:Nn \l_@@_sign_tl { - }
+ \bool_set_true:N \l_@@_signed_bool
+ }
+ { \@@_arc_sign:nn {#1} { degrees } }
\@@_arc_sign:nn {#2} { minutes }
\@@_arc_sign:nn {#3} { seconds }
\tl_if_empty:NF \l_@@_sign_tl
{
- \clist_map_inline:nn { degrees , minutes , seconds }
- {
- \tl_if_empty:cF { l_@@_ ##1 _tl }
- {
- \tl_set:cx { l_@@_ ##1 _tl }
- {
- { }
- { \exp_not:V \l_@@_sign_tl }
- \exp_after:wN \exp_after:wN \exp_after:wN
- \@@_sign:nnnnnnn
- \cs:w l_@@_ ##1 _tl \cs_end:
- }
- \clist_map_break:
- }
- }
- }
- \clist_map_inline:nn { degrees , minutes , seconds }
- {
- \tl_if_empty:cF { l_@@_ ##1 _tl }
- {
- \siunitx_number_process:cc
- { l_@@_ ##1 _tl } { l_@@_ ##1 _tl }
- \tl_set:cx { l_@@_ ##1 _tl }
- {
- \siunitx_number_output:cN
- { l_@@_ ##1 _tl } \q_nil
- }
- }
+ \clist_map_function:NN \c_@@_parts_tl
+ \@@_arc_sign_auxi:n
}
+ \clist_map_function:NN \c_@@_parts_tl \@@_arc_sign_auxii:n
\@@_arc_print:VVV
\l_@@_degrees_tl
\l_@@_minutes_tl
@@ -432,6 +436,40 @@
{
\siunitx_number_parse:nN {#1} \l_@@_tmp_tl
\exp_after:wN \@@_extract_sign:nnnnnnnn \l_@@_tmp_tl {#2}
+ \bool_set_true:N \l_@@_signed_bool
+ }
+ }
+\cs_new_protected:Npn \@@_arc_sign_auxi:n #1
+ {
+ \tl_if_empty:cF { l_@@_ #1 _tl }
+ {
+ \tl_set:cx { l_@@_ #1 _tl }
+ {
+ { }
+ { \exp_not:V \l_@@_sign_tl }
+ \exp_after:wN \exp_after:wN \exp_after:wN
+ \@@_sign:nnnnnnn
+ \cs:w l_@@_ #1 _tl \cs_end:
+ }
+ \clist_map_break:
+ }
+ }
+\cs_new_protected:Npn \@@_arc_sign_auxii:n #1
+ {
+ \tl_if_empty:cF { l_@@_ #1 _tl }
+ {
+ \bool_lazy_and:nnF
+ { \l_@@_force_arc_bool }
+ { ! \str_if_eq_p:nn {#1} { seconds } }
+ {
+ \siunitx_number_process:cc
+ { l_@@_ #1 _tl } { l_@@_ #1 _tl }
+ }
+ \tl_set:cx { l_@@_ #1 _tl }
+ {
+ \siunitx_number_output:cN
+ { l_@@_ #1 _tl } \q_nil
+ }
}
}
\cs_new_protected:Npn \@@_extract_sign:nnnnnnnn #1#2#3#4#5#6#7#8
@@ -439,10 +477,12 @@
\tl_if_blank:nTF {#2}
{ \tl_set_eq:cN { l_@@_ #8 _tl } \l_@@_tmp_tl }
{
+ \bool_if:NTF \l_@@_signed_bool
+ { \msg_error:nnn { siunitx } { arc-multi-sign } }
+ { \tl_set:Nn \l_@@_sign_tl {#2} }
\tl_set:cn { l_@@_ #8 _tl }
{ {#1} { } {#3} {#4} {#5} {#6} {#7} }
- \tl_set:Nn \l_@@_sign_tl {#2}
- \@@_suppress_comp_sign:
+ \@@_suppress_comp:
}
}
\cs_new:Npn \@@_sign:nnnnnnn #1#2#3#4#5#6#7
@@ -452,6 +492,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{variable}{\l_@@_marker_box, \l_@@_unit_box}
% For \enquote{astronomy style} angles.
@@ -602,6 +643,15 @@
% \end{macro}
%
% \begin{macrocode}
+\msg_new:nnnn { siunitx } { arc-multi-sign }
+ { Multiple~signs~given~for~arc~angle! }
+ {
+ An~angle~given~as~an~arc~should~have~at~most~one~sign:~
+ only~the~first~sign~will~be~used.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\keys_set:nn { siunitx }
{
angle-mode = input ,
diff --git a/macros/latex/contrib/siunitx/siunitx-code.pdf b/macros/latex/contrib/siunitx/siunitx-code.pdf
index 5f4841816e..cc2cd36afd 100644
--- a/macros/latex/contrib/siunitx/siunitx-code.pdf
+++ b/macros/latex/contrib/siunitx/siunitx-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/siunitx-complex.dtx b/macros/latex/contrib/siunitx/siunitx-complex.dtx
index 2ff86391c2..200fd15f15 100644
--- a/macros/latex/contrib/siunitx/siunitx-complex.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-complex.dtx
@@ -1143,11 +1143,12 @@
% \begin{macro}[EXP]{\@@_convert_polar_auxiii:nnw}
% \begin{macro}[EXP]{\@@_convert_polar_auxiv:nnw}
% \begin{macro}[EXP]{\@@_convert_polar_auxv:nnw}
-% \begin{macro}[EXP]{\@@_convert_polar_auxvi:nnn}
+% \begin{macro}[EXP]{\@@_convert_polar_auxvi:nnn, \@@_convert_polar_auxvi:enn}
+% \begin{macro}[EXP]{\@@_convert_polar_auxvii:nnn}
% \begin{macro}[EXP]
-% {\@@_convert_polar_auxvii:nnn, \@@_convert_polar_auxvii:eee}
+% {\@@_convert_polar_auxviii:nnn, \@@_convert_polar_auxviii:eee}
% \begin{macro}[EXP]
-% {\@@_convert_polar_auxviii:nn, \@@_convert_polar_auxviii:ee}
+% {\@@_convert_polar_auxix:nn, \@@_convert_polar_auxix:ee}
% A simplified parser for complex numbers which works by expansion,
% then converts to polar form.
% \begin{macrocode}
@@ -1160,10 +1161,10 @@
\bool_lazy_or:nnTF
{ \str_if_eq_p:nn {#2} { i } }
{ \str_if_eq_p:nn {#2#3} { +i } }
- { \@@_convert_polar_auxvi:nnn { } { 1 } {#1} }
+ { \@@_convert_polar_auxvii:nnn { } { 1 } {#1} }
{
\str_if_eq:nnTF {#2#3} { -i }
- { \@@_convert_polar_auxvi:nnn { } { -1 } {#1} }
+ { \@@_convert_polar_auxvii:nnn { } { -1 } {#1} }
{ \@@_convert_polar_auxiii:nnw {#1} {#2} #3 + + \q_stop }
}
}
@@ -1173,7 +1174,7 @@
{ \@@_convert_polar_auxiv:nnw {#1} {#2} #3 - - \q_stop }
{
\str_if_eq:nnTF {#4} { i }
- { \@@_convert_polar_auxvi:nnn {#2#3} { 1 } {#1} }
+ { \@@_convert_polar_auxvii:nnn {#2#3} { 1 } {#1} }
{ \@@_convert_polar_auxv:nnw {#2#3} {#1} #4 i \q_nil i \q_stop }
}
}
@@ -1183,35 +1184,48 @@
{ \@@_convert_polar_auxv:nnw { } {#1} #2#3 i \q_nil i \q_stop }
{
\str_if_eq:nnTF {#4} { i }
- { \@@_convert_polar_auxvi:nnn { } { -1 } {#1} }
+ { \@@_convert_polar_auxvii:nnn { } { -1 } {#1} }
{ \@@_convert_polar_auxv:nnw {#2#3} {#1} -#4 i \q_nil i \q_stop }
}
}
+% \end{macrocode}
+% Negative real values are special-cased here for efficiency.
+% \begin{macrocode}
\cs_new:Npn \@@_convert_polar_auxv:nnw #1#2#3 i #4 i #5 \q_stop
{
\quark_if_nil:nTF {#4}
- { { #3 \tl_if_blank:nF {#2} { e#2 } } { 0 } }
- { \@@_convert_polar_auxvi:nnn {#1} {#3} {#2} }
+ {
+ \tl_if_head_eq_meaning:nNTF {#3} -
+ { \@@_convert_polar_auxvi:enn { \use_none:n #3 } { 180 } }
+ { \@@_convert_polar_auxvi:nnn {#3} { 0 } }
+ {#2}
+ }
+ { \@@_convert_polar_auxvii:nnn {#1} {#3} {#2} }
}
\cs_new:Npn \@@_convert_polar_auxvi:nnn #1#2#3
{
- \@@_convert_polar_auxvii:eee
+ { #1 \tl_if_blank:nF {#3} { e#3 } } {#2}
+ }
+\cs_generate_variant:Nn \@@_convert_polar_auxvi:nnn { e }
+\cs_new:Npn \@@_convert_polar_auxvii:nnn #1#2#3
+ {
+ \@@_convert_polar_auxviii:eee
{ \tl_if_blank:nTF {#1} { 0 } {#1} }
{ \tl_if_blank:nTF {#2} { 0 } {#2} }
{ \tl_if_blank:nF {#3} { e#3 } }
}
-\cs_new:Npn \@@_convert_polar_auxvii:nnn #1#2#3
+\cs_new:Npn \@@_convert_polar_auxviii:nnn #1#2#3
{
- \@@_format_polar_auxviii:ee
+ \@@_format_polar_auxix:ee
{ \fp_eval:n { sqrt ( (#1#3)^2 + (#2#3)^2 ) } }
{
\fp_eval:n
{ atan \bool_if:NT \l_@@_polar_degree_bool { d } (#2 , #1) }
}
}
-\cs_generate_variant:Nn \@@_convert_polar_auxvii:nnn { eee }
-\cs_new:Npn \@@_format_polar_auxviii:nn #1#2 { {#1} {#2} }
-\cs_generate_variant:Nn \@@_format_polar_auxviii:nn { ee }
+\cs_generate_variant:Nn \@@_convert_polar_auxviii:nnn { eee }
+\cs_new:Npn \@@_format_polar_auxix:nn #1#2 { {#1} {#2} }
+\cs_generate_variant:Nn \@@_format_polar_auxix:nn { ee }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1222,6 +1236,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \subsection{Messages}
%
diff --git a/macros/latex/contrib/siunitx/siunitx-compound.dtx b/macros/latex/contrib/siunitx/siunitx-compound.dtx
index ec5a680516..6bca9a8417 100644
--- a/macros/latex/contrib/siunitx/siunitx-compound.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-compound.dtx
@@ -871,7 +871,6 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
% \begin{macro}{\@@_print:N}
% \begin{macro}{\@@_print:nnN, \@@_print:nVN, \@@_print:enN, \@@_print:eeN}
diff --git a/macros/latex/contrib/siunitx/siunitx-number.dtx b/macros/latex/contrib/siunitx/siunitx-number.dtx
index 2b87514375..0cc2245559 100644
--- a/macros/latex/contrib/siunitx/siunitx-number.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-number.dtx
@@ -2980,7 +2980,13 @@
\str_case:nnF {#1}
{
{ down } { \use_i:nn }
- { up } { \use_ii:nn }
+ { up }
+ {
+ \str_if_eq:eeTF
+ {#2} { \prg_replicate:nn { \tl_count:n {#2} } { 0 } }
+ { \use_i:nn }
+ { \use_ii:nn }
+ }
}
{
\bool_lazy_or:nnTF
@@ -4751,6 +4757,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \subsection{Miscellaneous tools}
%
diff --git a/macros/latex/contrib/siunitx/siunitx-table.dtx b/macros/latex/contrib/siunitx/siunitx-table.dtx
index 03fe45441e..4dd14ff826 100644
--- a/macros/latex/contrib/siunitx/siunitx-table.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-table.dtx
@@ -297,13 +297,10 @@
% Collecting a tabular cell means doing a token-by-token collection.
% In previous versions of \pkg{siunitx} that was done along with picking
% out the numerical part, but the code flow ends up very tricky. Here,
-% therefore, we just collect up the unchanged tokens first. The definition of
-% \cs{cr} is used to allow collection of any tokens
-% inserted after the main content when dealing with the last cell of a row:
-% the \enquote{group} around it is needed to avoid issues with the underlying
-% |\halign|. (The approach is based on that in \pkg{collcell}.) Whilst the
-% group formed by a cell will normally tidy up |\cr|, we add an extra one as
-% the collected material could be a tabular in itself. We use an auxiliary to
+% therefore, we just collect up the unchanged tokens first. Whilst each
+% cell forms a group, as we require definitions to say local
+% to the collections code, an additional group is required.
+% We use an auxiliary to
% fish out the |\ignorespaces| from the template: that has to go to avoid
% issues with the peek-ahead code (everything before the |#| needs to be
% read \emph{before} the Appendix~D trick gets applied). Some packages
@@ -314,13 +311,6 @@
{
\group_begin:
\tl_clear:N \l_@@_collect_tl
- \if_false: { \fi:
- \cs_set_protected:Npn \cr
- {
- \@@_collect_loop:
- \tex_cr:D
- }
- \if_false: } \fi:
\@@_collect_begin:w
}
\cs_new_protected:Npn \@@_collect_begin:w #1 \ignorespaces
@@ -365,9 +355,9 @@
{
\unskip { \@@_collect_loop: }
\textonly@unskip { \@@_collect_loop: }
- \end { \tabularnewline \end }
+ \end { \@@_collect_pre_cr: \tabularnewline \end }
\relax { \@@_collect_relax:N #1 }
- \tabularnewline { \tabularnewline }
+ \tabularnewline { \@@_collect_pre_cr: \tabularnewline }
\siunitx_cell_end: { \siunitx_cell_end: }
}
{ \@@_collect_token_aux:N #1 }
@@ -394,9 +384,9 @@
\@maybe@unskip { \@@_collect_loop: }
\tab@setcr { \@@_collect_loop: }
\unskip { \@@_collect_loop: }
- \end { \tabularnewline \end }
+ \end { \@@_collect_pre_cr: \tabularnewline \end }
\relax { \@@_collect_relax:N #1 }
- \tabularnewline { \tabularnewline }
+ \tabularnewline { \@@_collect_pre_cr: \tabularnewline }
\siunitx_cell_end: { \siunitx_cell_end: }
}
{ \@@_collect_token_aux:N #1 }
@@ -425,6 +415,30 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\@@_collect_pre_cr:}
+% The definition of \cs{cr} is used to allow collection of any tokens
+% from the \tn{halign} template after |#| when we are in the last cell of
+% the row. (The approach is based on that in \pkg{collcell}.) Note that
+% \TeX{} inserts these tokens when it sees the \tn{cr} primitive, so
+% there is no expansion to consider. Whilst in most cases the group formed
+% by each cell will tidy up, nested tabulars (for example in a header row)
+% will break if \tn{cr} is redefined too widely. Thus we use a targetted
+% approach: only apply when needed, and use the additional group inside the
+% cell to keep control.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_collect_pre_cr:
+ {
+ \if_false: { \fi:
+ \cs_set_protected:Npn \cr
+ {
+ \@@_collect_loop:
+ \tex_cr:D
+ }
+ \if_false: } \fi:
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Separating collected material}
%
% The input needs to be divided into numerical tokens and those which appear
diff --git a/macros/latex/contrib/siunitx/siunitx-unit.dtx b/macros/latex/contrib/siunitx/siunitx-unit.dtx
index 7faf5740da..6c440b8fd6 100644
--- a/macros/latex/contrib/siunitx/siunitx-unit.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-unit.dtx
@@ -2997,7 +2997,10 @@
\str_if_eq:eeT
{ \exp_not:o { \familydefault } }
{ \exp_not:n { \sfdefault } }
- { \keys_set:nn { siunitx } { unit-font-command = \mathsf } }
+ {
+ \tl_if_eq:VnT \l_siunitx_unit_font_tl { \mathrm }
+ { \keys_set:nn { siunitx } { unit-font-command = \mathsf } }
+ }
}
{ }
}
diff --git a/macros/latex/contrib/siunitx/siunitx.dtx b/macros/latex/contrib/siunitx/siunitx.dtx
index bd97dc5750..11bce0caf9 100644
--- a/macros/latex/contrib/siunitx/siunitx.dtx
+++ b/macros/latex/contrib/siunitx/siunitx.dtx
@@ -59,6 +59,9 @@
%
% \begin{documentation}
%
+% ^^A API documentation is given on a per-module basis:
+% ^^A see the siunitx-<module>.dtx files
+%
% \end{documentation}
%
% \begin{implementation}
@@ -121,7 +124,7 @@
%
% Identify the package and give the over all version information.
% \begin{macrocode}
-\ProvidesExplPackage {siunitx} {2024-06-24} {3.3.19}
+\ProvidesExplPackage {siunitx} {2024-09-30} {3.3.22}
{A comprehensive (SI) units package}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/siunitx/siunitx.pdf b/macros/latex/contrib/siunitx/siunitx.pdf
index 9d1c9d36db..4dd0e88018 100644
--- a/macros/latex/contrib/siunitx/siunitx.pdf
+++ b/macros/latex/contrib/siunitx/siunitx.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/siunitx.tex b/macros/latex/contrib/siunitx/siunitx.tex
index 7c6e147f00..90189978b1 100644
--- a/macros/latex/contrib/siunitx/siunitx.tex
+++ b/macros/latex/contrib/siunitx/siunitx.tex
@@ -414,7 +414,7 @@ mode.
\end{LaTeXdemo}
The second operation mode for the \cs{unit} macro is an \enquote{interpreted}
-system, Here, each unit, \acro{SI} multiple prefix and power is given a macro
+system. Here each unit, \acro{SI} multiple prefix and power is given a macro
name. These are entered in a method very similar to the reading of the unit
name in English.
\begin{LaTeXdemo}
@@ -1252,7 +1252,7 @@ font variant which does not feature them.
\DescribeOption{text-subscript-command}
\DescribeOption{text-superscript-command}
In most cases, the commands \cs{textsubscript} and \cs{textsuperscript} are
-appropriagte for creating sub- and superscript material in text mode. However,
+appropriate for creating sub- and superscript material in text mode. However,
when the \pkg{realscripts} package is loaded, it is possible that the output is
not as desired. These two commands are therefore available to allow tuning of
the results. They can also be used for non-standard effects, for example as
@@ -1911,7 +1911,7 @@ by the \opt{bracket-ambiguous-numbers} switch. This option only applies to pure
numbers: when formatting quantities, the need for brackets also depends on the
placement of units, so is controlled by \opt{separate-uncertainty-units}.
\begin{LaTeXdemo}
- \sisetup{separate-uncertainty}
+ \sisetup{uncertainty-mode = separate}
\num{1.2(3)e4} \\
\num[bracket-ambiguous-numbers = false]{1.2(3)e4}
\end{LaTeXdemo}
@@ -2760,7 +2760,7 @@ a single unit symbol. Alternative options are \opt{repeat} (print the unit for
each part of the number) and \opt{single} (print only one unit symbol:
mathematically incorrect).
\begin{LaTeXdemo}
- \sisetup{separate-uncertainty}
+ \sisetup{uncertainty-mode = separate}
\qty{12.3(4)}{\kilo\gram} \\
\qty[separate-uncertainty-units = bracket]{12.3(4)}{\kilo\gram} \\
\qty[separate-uncertainty-units = repeat]{12.3(4)}{\kilo\gram} \\
@@ -2887,7 +2887,7 @@ given in Table~\ref{tab:S:format}.
S[table-format = 2.2]
S[table-format = 2.2, table-number-alignment = right]
S[table-format = 2.2(1)]
- S[table-format = 2.2(1), separate-uncertainty]
+ S[table-format = 2.2(1), uncertainty-mode = separate]
S[table-format = +2.2]
S[table-format = 2.2e1]
@{}}
@@ -2970,7 +2970,7 @@ comparator with the \opt{table-align-comparator} option
\caption{The \opt{table-align-uncertainty} option.%
\label{tab:align:uncert}}
\sisetup{
- separate-uncertainty,
+ uncertainty-mode = separate,
table-format = 1.3(1),
}
\begin{tabular}{@{}SS[table-align-uncertainty = false]@{}}
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.m3u
index cc969b31f7..91ac08fda4 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.m3u
@@ -1,6 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-1.0.0.0.0.ogg
-1.0.0.0.0-1.ogg
-1.0.0.0.0-2.ogg
-1.0.0.0.0-3.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-2.ogg
index f8f68b313b..02dde27b80 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.m3u
index 38ff0aca21..713b1fbef2 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.m3u
@@ -1,6 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.0.0.0.0.ogg
-2.0.0.0.0-1.ogg
-2.0.0.0.0-2.ogg
-2.0.0.0.0-3.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-1.ogg
index d500956316..4eaba9ff01 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-2.ogg
deleted file mode 100644
index affd24989c..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-2.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.m3u
index 7126037f5d..3671d80c2f 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.m3u
@@ -1,5 +1,4 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.0.0.0.0.ogg
-3.0.0.0.0-1.ogg
-3.0.0.0.0-2.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.ogg
index d7147b5cd6..6d927f70ee 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-1.ogg
index c5307858c7..0997141f89 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-2.ogg
index ef40bd9734..6149c8be5e 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.m3u
index 3eebda66de..db5793d338 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.m3u
@@ -1,5 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.0.0.0.0.ogg
-4.0.0.0.0-1.ogg
-4.0.0.0.0-2.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.ogg
index 95da73a4f1..0a32402724 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..be2515b1e1
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0-2.ogg
new file mode 100644
index 0000000000..ab833a6d74
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.m3u
index ed93b0f718..7fa2b45726 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.m3u
@@ -1,8 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-5.0.0.0.0.ogg
-5.1.0.0.0.ogg
-5.1.0.0.0-1.ogg
-5.2.0.0.0.ogg
-5.2.0.0.0-1.ogg
-5.2.0.0.0-star-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.ogg
index ba529eb4c3..46f1a90aee 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0-1.ogg
deleted file mode 100644
index e987134adf..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.m3u
deleted file mode 100644
index 69e1f4059e..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.m3u
+++ /dev/null
@@ -1,4 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-5.1.0.0.0.ogg
-5.1.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.ogg
deleted file mode 100644
index 8eab7ae3fb..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-1.ogg
deleted file mode 100644
index dfa846e2fc..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-star-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-star-1.ogg
deleted file mode 100644
index 1404701800..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-star-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.m3u
deleted file mode 100644
index e5106355e4..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.m3u
+++ /dev/null
@@ -1,5 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-5.2.0.0.0.ogg
-5.2.0.0.0-1.ogg
-5.2.0.0.0-star-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.ogg
deleted file mode 100644
index 7e2bb4d502..0000000000
--- a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/6.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/6.0.0.0.0.m3u
new file mode 100644
index 0000000000..db6a522d98
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/6.0.0.0.0.m3u
@@ -0,0 +1,8 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/6.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0-star-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/6.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/6.0.0.0.0.ogg
new file mode 100644
index 0000000000..bed8f1bb03
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/6.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0-1.ogg
new file mode 100644
index 0000000000..6dfbf8a509
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0.m3u
new file mode 100644
index 0000000000..b43f6329ad
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0.m3u
@@ -0,0 +1,4 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0.ogg
new file mode 100644
index 0000000000..f9c2e18dcf
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/6.1.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0-1.ogg
new file mode 100644
index 0000000000..922879ce56
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0-star-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0-star-1.ogg
new file mode 100644
index 0000000000..bdb2af86f5
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0-star-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0.m3u
new file mode 100644
index 0000000000..29538b4e74
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0.m3u
@@ -0,0 +1,5 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0-star-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0.ogg
new file mode 100644
index 0000000000..4e28b44c68
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/6.2.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/date.ogg b/macros/latex/contrib/spelatex/Example/example-spel/date.ogg
index 2c8670eb1a..d69821531c 100644
--- a/macros/latex/contrib/spelatex/Example/example-spel/date.ogg
+++ b/macros/latex/contrib/spelatex/Example/example-spel/date.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example.pdf b/macros/latex/contrib/spelatex/Example/example.pdf
index 81ace4e4e3..5de7e5035b 100644
--- a/macros/latex/contrib/spelatex/Example/example.pdf
+++ b/macros/latex/contrib/spelatex/Example/example.pdf
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example.tex b/macros/latex/contrib/spelatex/Example/example.tex
index e7a5e8dc69..9bd4f3ca90 100644
--- a/macros/latex/contrib/spelatex/Example/example.tex
+++ b/macros/latex/contrib/spelatex/Example/example.tex
@@ -1,9 +1,12 @@
\documentclass{article}
-\usepackage[dutch,english]{babel} % load babel before spel to avoid
+\usepackage[dutch,english]{babel} % load babel before spelatex to avoid
% option clash!
\selectlanguage{english}
-\usepackage[format=ogg]{spelatex}
+\usepackage[format=ogg,
+ server=https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example
+ ]
+ {spelatex}
\newrobustcmd\CTAN{CTAN}
\spelmacad{CTAN}{see-tan}
@@ -12,7 +15,7 @@
\title{\spelatex{} Example}
\author{Walter Daems and Paul Levrie}
-\date{2011/04/12}
+\date{2024/09/09}
\setlength\parindent{0em}
\setlength\parskip{1ex}
@@ -22,10 +25,10 @@
\section{Introduction}
-\begin{spelchunk}
- This file is just a simple showcase of the features of \spelatex.
+\<<<{
+ This file is just a simple showcase of the features of \spelatex{}.
Below, you'll find examples of:
-\end{spelchunk}
+}
\begin{itemize}
\spelitem{a simple equation}
@@ -34,20 +37,25 @@
\section{A simple equation}
\label{eqn:simple}
-\begin{spelchunk}
+\<<<{
Consider the following simple definition of a polynomial function and
check its spoken version by clicking on it.
-\end{spelchunk}
-\begin{spelchunk}[arealink]
+}
+\<<<[arealink]{
\begin{equation}
- f(x) = x^{5}- x^4 + 7 x^3 + 3 x^2 - 8 x + 23
+ f(x) = x^{5}- x^4 + 7 x^3 + 3 x^2 - 8 x + 25
\end{equation}
-\end{spelchunk}
-\begin{spelchunk}
+}
+\<<<{
This seems a simple equation, however, it is not so straightforward
for an automated reader, to read it correctly.
-\end{spelchunk}
+}
+\section{Remark}
+\<<<{
+Instead of the \texttt{\textbackslash{}<<<} macro, one can also use the
+spelchunk environment. We did this in the next sections.
+}
\section{A more complex equation}
\newcommand\xx[2]{\ensuremath{#1_{#2}}}
\spelmacad{xx}[2]{#1 #2}
@@ -80,6 +88,7 @@ voorleesstem de geselecteerde taal zal volgen.
\end{spelchunk}
\selectlanguage{english}
+
\section{And some extras}
\subsection{Citations}
\begin{spelchunk}
@@ -93,6 +102,8 @@ equation. For a more complex equation, we refer the user to
section~\ref{eqn:complex}.
\end{spelchunk}
+\selectlanguage{dutch}
+
\bibliographystyle{alpha}
\begin{thebibliography}{99}
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..df4aa6bb16
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-star-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-star-1.ogg
new file mode 100644
index 0000000000..880f14b74c
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/0.0.0.0.0-star-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.m3u
index a6c2dc392a..336bff8202 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.m3u
@@ -1,31 +1,30 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-1.0.0.0.0.ogg
-1.1.0.0.0.ogg
-1.1.0.0.0-1.ogg
-1.1.0.0.0-2.ogg
-1.1.0.0.0-3.ogg
-1.2.0.0.0.ogg
-1.2.1.0.0.ogg
-1.2.1.0.0-1.ogg
-1.2.1.0.0-2.ogg
-1.2.1.0.0-3.ogg
-1.2.2.0.0.ogg
-1.2.2.0.0-1.ogg
-1.2.2.0.0-2.ogg
-1.2.2.0.0-3.ogg
-1.2.2.0.0-4.ogg
-1.2.2.0.0-5.ogg
-1.3.0.0.0.ogg
-1.3.0.0.0-1.ogg
-1.3.0.0.0-2.ogg
-1.3.0.0.0-3.ogg
-1.3.0.0.0-4.ogg
-1.3.0.0.0-5.ogg
-1.3.0.0.0-6.ogg
-1.3.0.0.0-7.ogg
-1.3.0.0.0-8.ogg
-1.3.0.0.0-9.ogg
-1.3.0.0.0-10.ogg
-1.3.0.0.0-11.ogg
-1.3.0.0.0-12.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-8.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-9.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-10.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-11.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-1.ogg
index ea54ff261a..a366bca8ad 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-3.ogg
index 28092584ed..068f5fad07 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.m3u
index 4ebe5bab70..17ed4772e7 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.m3u
@@ -1,6 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-1.1.0.0.0.ogg
-1.1.0.0.0-1.ogg
-1.1.0.0.0-2.ogg
-1.1.0.0.0-3.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.1.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.m3u
index db1dae06a9..66182bc053 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.m3u
@@ -1,13 +1,13 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-1.2.0.0.0.ogg
-1.2.1.0.0.ogg
-1.2.1.0.0-1.ogg
-1.2.1.0.0-2.ogg
-1.2.1.0.0-3.ogg
-1.2.2.0.0.ogg
-1.2.2.0.0-1.ogg
-1.2.2.0.0-2.ogg
-1.2.2.0.0-3.ogg
-1.2.2.0.0-4.ogg
-1.2.2.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.m3u
index b0e1e17f30..422edaa872 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.m3u
@@ -1,6 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-1.2.1.0.0.ogg
-1.2.1.0.0-1.ogg
-1.2.1.0.0-2.ogg
-1.2.1.0.0-3.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.1.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.ogg
index a622038409..92cd2374e6 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.m3u
index ad74166429..fdae5dffb4 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.m3u
@@ -1,8 +1,8 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-1.2.2.0.0.ogg
-1.2.2.0.0-1.ogg
-1.2.2.0.0-2.ogg
-1.2.2.0.0-3.ogg
-1.2.2.0.0-4.ogg
-1.2.2.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.2.2.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-10.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-10.ogg
index fd861c6630..c3ff365f2d 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-10.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-10.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-11.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-11.ogg
index c19ca3750d..00c03765f7 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-11.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-11.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-12.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-12.ogg
deleted file mode 100644
index 896cfe1e9f..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-12.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-2.ogg
index b2ceb636ed..ccd92eec94 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-6.ogg
index 6432746abe..8138640c62 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-6.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-7.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-7.ogg
index fd282fc22e..c415458583 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-7.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-7.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-8.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-8.ogg
index 11e45178a3..5df4676bff 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-8.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-8.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-9.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-9.ogg
index 5df4676bff..fd861c6630 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-9.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-9.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.m3u
index d673720186..e7cfe5aa3b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.m3u
@@ -1,15 +1,14 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-1.3.0.0.0.ogg
-1.3.0.0.0-1.ogg
-1.3.0.0.0-2.ogg
-1.3.0.0.0-3.ogg
-1.3.0.0.0-4.ogg
-1.3.0.0.0-5.ogg
-1.3.0.0.0-6.ogg
-1.3.0.0.0-7.ogg
-1.3.0.0.0-8.ogg
-1.3.0.0.0-9.ogg
-1.3.0.0.0-10.ogg
-1.3.0.0.0-11.ogg
-1.3.0.0.0-12.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-8.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-9.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-10.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/1.3.0.0.0-11.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.m3u
index 9c053963b6..09f08f782b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.m3u
@@ -1,59 +1,49 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.0.0.0.0.ogg
-2.1.0.0.0.ogg
-2.1.0.0.0-1.ogg
-2.1.0.0.0-2.ogg
-2.1.0.0.0-3.ogg
-2.1.0.0.0-4.ogg
-2.1.0.0.0-5.ogg
-2.1.0.0.0-6.ogg
-footnote-1.ogg
-2.2.0.0.0.ogg
-2.2.1.0.0.ogg
-2.2.1.0.0-1.ogg
-2.2.1.0.0-2.ogg
-2.2.1.0.0-3.ogg
-2.2.1.0.0-4.ogg
-2.2.2.0.0.ogg
-2.2.2.0.0-1.ogg
-2.2.2.0.0-2.ogg
-2.2.2.0.0-3.ogg
-2.2.2.0.0-4.ogg
-footnote-2.ogg
-2.2.2.0.0-5.ogg
-2.2.2.0.0-6.ogg
-2.2.2.0.0-7.ogg
-2.2.2.0.0-8.ogg
-2.2.2.0.0-9.ogg
-2.2.2.0.0-10.ogg
-2.2.2.0.0-11.ogg
-2.2.2.0.0-12.ogg
-2.2.3.0.0.ogg
-2.2.3.0.0-1.ogg
-2.2.3.0.0-2.ogg
-2.2.4.0.0.ogg
-2.2.4.0.0-1.ogg
-2.2.4.0.0-2.ogg
-2.2.4.0.0-3.ogg
-2.2.4.0.0-4.ogg
-2.2.4.0.0-5.ogg
-2.2.4.0.0-6.ogg
-2.2.5.0.0.ogg
-2.2.5.0.0-1.ogg
-2.2.5.0.0-2.ogg
-2.2.6.0.0.ogg
-2.2.6.0.0-1.ogg
-2.2.6.0.0-2.ogg
-2.2.6.0.0-3.ogg
-2.3.0.0.0.ogg
-2.3.0.0.0-1.ogg
-2.3.0.0.0-2.ogg
-2.3.0.0.0-3.ogg
-2.3.0.0.0-4.ogg
-2.4.0.0.0.ogg
-2.4.0.0.0-1.ogg
-2.4.0.0.0-2.ogg
-2.4.0.0.0-3.ogg
-2.4.0.0.0-4.ogg
-2.4.0.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/footnote-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/footnote-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-8.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-9.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-10.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-11.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg
index 8f73c2c7ca..821b83161e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.m3u
index 639be865ec..a090328aba 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.m3u
@@ -1,10 +1,10 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.1.0.0.0.ogg
-2.1.0.0.0-1.ogg
-2.1.0.0.0-2.ogg
-2.1.0.0.0-3.ogg
-2.1.0.0.0-4.ogg
-2.1.0.0.0-5.ogg
-2.1.0.0.0-6.ogg
-footnote-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/footnote-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.m3u
index 6fba59dcf3..6c5d7a2f5c 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.m3u
@@ -1,39 +1,30 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.2.0.0.0.ogg
-2.2.1.0.0.ogg
-2.2.1.0.0-1.ogg
-2.2.1.0.0-2.ogg
-2.2.1.0.0-3.ogg
-2.2.1.0.0-4.ogg
-2.2.2.0.0.ogg
-2.2.2.0.0-1.ogg
-2.2.2.0.0-2.ogg
-2.2.2.0.0-3.ogg
-2.2.2.0.0-4.ogg
-footnote-2.ogg
-2.2.2.0.0-5.ogg
-2.2.2.0.0-6.ogg
-2.2.2.0.0-7.ogg
-2.2.2.0.0-8.ogg
-2.2.2.0.0-9.ogg
-2.2.2.0.0-10.ogg
-2.2.2.0.0-11.ogg
-2.2.2.0.0-12.ogg
-2.2.3.0.0.ogg
-2.2.3.0.0-1.ogg
-2.2.3.0.0-2.ogg
-2.2.4.0.0.ogg
-2.2.4.0.0-1.ogg
-2.2.4.0.0-2.ogg
-2.2.4.0.0-3.ogg
-2.2.4.0.0-4.ogg
-2.2.4.0.0-5.ogg
-2.2.4.0.0-6.ogg
-2.2.5.0.0.ogg
-2.2.5.0.0-1.ogg
-2.2.5.0.0-2.ogg
-2.2.6.0.0.ogg
-2.2.6.0.0-1.ogg
-2.2.6.0.0-2.ogg
-2.2.6.0.0-3.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/footnote-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-8.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-9.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-10.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-11.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg
index 6bf77572b9..a8a29d2801 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-10.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-10.ogg
new file mode 100644
index 0000000000..c7bb7a1b33
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-10.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-11.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-11.ogg
new file mode 100644
index 0000000000..162c3226cf
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-11.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg
index fde009a238..a4eb2eb9cc 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg
index 0c47ef1f1c..3d2bc129e6 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg
index ede30fbdfe..0fb3364544 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-5.ogg
new file mode 100644
index 0000000000..6abfabbd7f
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-6.ogg
new file mode 100644
index 0000000000..782ef82610
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-7.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-7.ogg
new file mode 100644
index 0000000000..af192260ab
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-7.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-9.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-8.ogg
index 69f1ac6701..69f1ac6701 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-9.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-8.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-10.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-9.ogg
index 437bbfb2fa..437bbfb2fa 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-10.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-9.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.m3u
index 98183521d8..d13d4ba944 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.m3u
@@ -1,7 +1,15 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.2.1.0.0.ogg
-2.2.1.0.0-1.ogg
-2.2.1.0.0-2.ogg
-2.2.1.0.0-3.ogg
-2.2.1.0.0-4.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/footnote-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-8.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-9.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-10.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-11.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg
index d62c585ba2..61e1c17229 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg
index a8a29d2801..95cc730494 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-11.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-11.ogg
deleted file mode 100644
index 9770b89c6e..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-11.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-12.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-12.ogg
deleted file mode 100644
index 3f7983f7c5..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-12.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg
index 472d803099..16a86de311 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.ogg
deleted file mode 100644
index 375c547c08..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-4.ogg
deleted file mode 100644
index cc8c361025..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-4.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-5.ogg
deleted file mode 100644
index 72e05ea116..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-5.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-6.ogg
deleted file mode 100644
index 9a79083394..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-6.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-7.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-7.ogg
deleted file mode 100644
index f154852d0e..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-7.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-8.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-8.ogg
deleted file mode 100644
index 511d94185c..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-8.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.m3u
index 319b497479..93e8f7c599 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.m3u
@@ -1,16 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.2.2.0.0.ogg
-2.2.2.0.0-1.ogg
-2.2.2.0.0-2.ogg
-2.2.2.0.0-3.ogg
-2.2.2.0.0-4.ogg
-footnote-2.ogg
-2.2.2.0.0-5.ogg
-2.2.2.0.0-6.ogg
-2.2.2.0.0-7.ogg
-2.2.2.0.0-8.ogg
-2.2.2.0.0-9.ogg
-2.2.2.0.0-10.ogg
-2.2.2.0.0-11.ogg
-2.2.2.0.0-12.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg
index 74ae517fa6..54e0e30302 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg
index 95cc730494..6bba254cb3 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg
index 85b092fa09..1d2baebe89 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-3.ogg
new file mode 100644
index 0000000000..c57aca5312
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-4.ogg
new file mode 100644
index 0000000000..23fdf04612
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-5.ogg
new file mode 100644
index 0000000000..757700d843
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-6.ogg
new file mode 100644
index 0000000000..ebe78112d3
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.m3u
index db806b06e6..cc10b81b71 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.m3u
@@ -1,5 +1,9 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.2.3.0.0.ogg
-2.2.3.0.0-1.ogg
-2.2.3.0.0-2.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-6.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg
index a1832ce2db..6704b231fd 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg
index 6bba254cb3..f557268e9a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg
index be39c9b098..949ad1f84f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg
index 19449c3761..123857bab7 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-4.ogg
deleted file mode 100644
index c83f2d5cae..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-4.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-5.ogg
deleted file mode 100644
index 550e0e4712..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-5.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-6.ogg
deleted file mode 100644
index a725418127..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-6.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.m3u
index 5d6b37fe95..c27985f67b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.m3u
@@ -1,9 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.2.4.0.0.ogg
-2.2.4.0.0-1.ogg
-2.2.4.0.0-2.ogg
-2.2.4.0.0-3.ogg
-2.2.4.0.0-4.ogg
-2.2.4.0.0-5.ogg
-2.2.4.0.0-6.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg
index ee37616991..9157c8ce9e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-1.ogg
deleted file mode 100644
index f557268e9a..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-2.ogg
deleted file mode 100644
index 949ad1f84f..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-2.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.m3u
deleted file mode 100644
index 1a186d15de..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.m3u
+++ /dev/null
@@ -1,5 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-2.2.5.0.0.ogg
-2.2.5.0.0-1.ogg
-2.2.5.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.ogg
deleted file mode 100644
index d2195a26cc..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-1.ogg
deleted file mode 100644
index cb6ebd1183..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-2.ogg
deleted file mode 100644
index 8ae2cccab1..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-2.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-3.ogg
deleted file mode 100644
index c93a3c6d6c..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-3.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.m3u
deleted file mode 100644
index ae39555217..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.m3u
+++ /dev/null
@@ -1,6 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-2.2.6.0.0.ogg
-2.2.6.0.0-1.ogg
-2.2.6.0.0-2.ogg
-2.2.6.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.ogg
deleted file mode 100644
index 8c82713973..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.m3u
index 8652268b66..e86420bb63 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.m3u
@@ -1,7 +1,7 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.3.0.0.0.ogg
-2.3.0.0.0-1.ogg
-2.3.0.0.0-2.ogg
-2.3.0.0.0-3.ogg
-2.3.0.0.0-4.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg
index d137101e04..d343820cf4 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg
index b5feb6b9ce..76bf1a7659 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg
index a585c2e035..130726016c 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-5.ogg
deleted file mode 100644
index 59f9b5a3c6..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-5.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.m3u
index ee754a4627..ab915e0fa1 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.m3u
@@ -1,8 +1,7 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-2.4.0.0.0.ogg
-2.4.0.0.0-1.ogg
-2.4.0.0.0-2.ogg
-2.4.0.0.0-3.ogg
-2.4.0.0.0-4.ogg
-2.4.0.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.m3u
index 8f2c49d9e4..5af0ee212b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.m3u
@@ -1,26 +1,27 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.0.0.0.0.ogg
-3.1.0.0.0.ogg
-3.1.0.0.0-1.ogg
-3.1.0.0.0-2.ogg
-3.1.0.0.0-3.ogg
-3.2.0.0.0.ogg
-3.2.1.0.0.ogg
-3.2.1.0.0-1.ogg
-3.2.1.0.0-2.ogg
-3.2.1.0.0-3.ogg
-3.2.1.0.0-4.ogg
-3.2.1.0.0-5.ogg
-3.2.2.0.0.ogg
-3.2.2.0.0-1.ogg
-3.2.2.0.0-2.ogg
-3.2.2.0.0-3.ogg
-3.2.2.0.0-4.ogg
-3.2.2.0.0-5.ogg
-3.2.2.0.0-6.ogg
-3.3.0.0.0.ogg
-3.3.0.0.0-1.ogg
-3.4.0.0.0.ogg
-3.4.0.0.0-1.ogg
-3.4.0.0.0-2.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg
index 181c6ce4df..ba55e226a0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-3.ogg
index 374e4a19ed..a6cfbe479f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.m3u
index 841095e90f..82dc86d9fb 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.m3u
@@ -1,6 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.1.0.0.0.ogg
-3.1.0.0.0-1.ogg
-3.1.0.0.0-2.ogg
-3.1.0.0.0-3.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.m3u
index 925bdb7d03..d4e62a851b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.m3u
@@ -1,16 +1,16 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.2.0.0.0.ogg
-3.2.1.0.0.ogg
-3.2.1.0.0-1.ogg
-3.2.1.0.0-2.ogg
-3.2.1.0.0-3.ogg
-3.2.1.0.0-4.ogg
-3.2.1.0.0-5.ogg
-3.2.2.0.0.ogg
-3.2.2.0.0-1.ogg
-3.2.2.0.0-2.ogg
-3.2.2.0.0-3.ogg
-3.2.2.0.0-4.ogg
-3.2.2.0.0-5.ogg
-3.2.2.0.0-6.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-6.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg
index 9765dbb2c6..caeeff5108 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.m3u
index 4dca129e2c..df234b6cf6 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.m3u
@@ -1,8 +1,8 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.2.1.0.0.ogg
-3.2.1.0.0-1.ogg
-3.2.1.0.0-2.ogg
-3.2.1.0.0-3.ogg
-3.2.1.0.0-4.ogg
-3.2.1.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg
index 02fd558b14..85cb0c8561 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg
index 83c9a9a5f4..75df933995 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.ogg
index 0c554f69ba..e3c179b56a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.m3u
index f748017144..b72666c7b5 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.m3u
@@ -1,9 +1,9 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.2.2.0.0.ogg
-3.2.2.0.0-1.ogg
-3.2.2.0.0-2.ogg
-3.2.2.0.0-3.ogg
-3.2.2.0.0-4.ogg
-3.2.2.0.0-5.ogg
-3.2.2.0.0-6.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-6.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg
index bcee2491e1..58de83b9fb 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.m3u
index 6fc1783bde..7245ad8b24 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.m3u
@@ -1,4 +1,4 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.3.0.0.0.ogg
-3.3.0.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-3.ogg
new file mode 100644
index 0000000000..4ed46f984a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.m3u
index 6839de2f60..0d0461c9a9 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.m3u
@@ -1,5 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-3.4.0.0.0.ogg
-3.4.0.0.0-1.ogg
-3.4.0.0.0-2.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.m3u
index 9d5aff05d5..06c90ea851 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.m3u
@@ -1,53 +1,55 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.0.0.0.0.ogg
-4.1.0.0.0.ogg
-4.1.0.0.0-1.ogg
-4.1.0.0.0-2.ogg
-4.1.0.0.0-3.ogg
-4.1.0.0.0-4.ogg
-4.1.0.0.0-5.ogg
-4.1.0.0.0-6.ogg
-4.1.0.0.0-7.ogg
-4.1.0.0.0-8.ogg
-4.1.1.0.0.ogg
-4.1.1.0.0-1.ogg
-4.1.1.0.0-2.ogg
-4.1.1.0.0-3.ogg
-4.1.1.0.0-4.ogg
-4.1.2.0.0.ogg
-4.1.2.0.0-1.ogg
-4.1.2.0.0-2.ogg
-4.1.3.0.0.ogg
-4.1.3.0.0-1.ogg
-4.1.3.0.0-2.ogg
-4.1.3.0.0-3.ogg
-4.1.3.0.0-4.ogg
-4.1.3.0.0-5.ogg
-4.1.4.0.0.ogg
-4.1.4.0.0-1.ogg
-4.1.4.0.0-2.ogg
-4.1.4.0.0-3.ogg
-4.1.4.0.0-4.ogg
-4.1.5.0.0.ogg
-4.1.5.0.0-1.ogg
-4.1.5.0.0-2.ogg
-4.1.5.0.0-3.ogg
-4.1.5.0.0-4.ogg
-4.1.6.0.0.ogg
-4.1.6.0.0-1.ogg
-4.1.6.0.0-2.ogg
-4.1.6.0.0-3.ogg
-4.1.6.0.0-4.ogg
-4.1.6.0.0-5.ogg
-4.1.7.0.0.ogg
-4.1.7.0.0-1.ogg
-4.1.7.0.0-2.ogg
-4.1.7.0.0-3.ogg
-4.1.7.0.0-4.ogg
-4.2.0.0.0.ogg
-4.2.0.0.0-1.ogg
-4.2.0.0.0-2.ogg
-4.2.0.0.0-3.ogg
-4.2.0.0.0-4.ogg
-4.2.0.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg
index 58dc04068d..027bdbfb28 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg
index a1483cea12..8096fce85c 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg
index 44ca72ba64..6390a5734f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg
index 39a304fb03..2a775460b4 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg
index 67fa7fce21..bb3d00426a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg
index 8fd82f60d0..bc3c565f52 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg
index 159cc44e6a..a9a40c62a0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-8.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-8.ogg
deleted file mode 100644
index d70d6468e8..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-8.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.m3u
index 3a01c842f0..199a809943 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.m3u
@@ -1,46 +1,48 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.0.0.0.ogg
-4.1.0.0.0-1.ogg
-4.1.0.0.0-2.ogg
-4.1.0.0.0-3.ogg
-4.1.0.0.0-4.ogg
-4.1.0.0.0-5.ogg
-4.1.0.0.0-6.ogg
-4.1.0.0.0-7.ogg
-4.1.0.0.0-8.ogg
-4.1.1.0.0.ogg
-4.1.1.0.0-1.ogg
-4.1.1.0.0-2.ogg
-4.1.1.0.0-3.ogg
-4.1.1.0.0-4.ogg
-4.1.2.0.0.ogg
-4.1.2.0.0-1.ogg
-4.1.2.0.0-2.ogg
-4.1.3.0.0.ogg
-4.1.3.0.0-1.ogg
-4.1.3.0.0-2.ogg
-4.1.3.0.0-3.ogg
-4.1.3.0.0-4.ogg
-4.1.3.0.0-5.ogg
-4.1.4.0.0.ogg
-4.1.4.0.0-1.ogg
-4.1.4.0.0-2.ogg
-4.1.4.0.0-3.ogg
-4.1.4.0.0-4.ogg
-4.1.5.0.0.ogg
-4.1.5.0.0-1.ogg
-4.1.5.0.0-2.ogg
-4.1.5.0.0-3.ogg
-4.1.5.0.0-4.ogg
-4.1.6.0.0.ogg
-4.1.6.0.0-1.ogg
-4.1.6.0.0-2.ogg
-4.1.6.0.0-3.ogg
-4.1.6.0.0-4.ogg
-4.1.6.0.0-5.ogg
-4.1.7.0.0.ogg
-4.1.7.0.0-1.ogg
-4.1.7.0.0-2.ogg
-4.1.7.0.0-3.ogg
-4.1.7.0.0-4.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg
index f05f6410f6..e0e77fd44c 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.m3u
index c456177811..8b980c2b5f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.m3u
@@ -1,7 +1,7 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.1.0.0.ogg
-4.1.1.0.0-1.ogg
-4.1.1.0.0-2.ogg
-4.1.1.0.0-3.ogg
-4.1.1.0.0-4.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg
index 34c7209ae5..793d67f67e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg
index d20e2c57c3..3421acb64e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.m3u
index a00d94f72f..b9158f1120 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.m3u
@@ -1,5 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.2.0.0.ogg
-4.1.2.0.0-1.ogg
-4.1.2.0.0-2.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg
index d20e2c57c3..a867f6c0a9 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg
index d20e2c57c3..11a6de0fdc 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.m3u
index 6a3684a7b3..1e3af2b0b3 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.m3u
@@ -1,8 +1,8 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.3.0.0.ogg
-4.1.3.0.0-1.ogg
-4.1.3.0.0-2.ogg
-4.1.3.0.0-3.ogg
-4.1.3.0.0-4.ogg
-4.1.3.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg
index 6052ee961a..bd0f1cedf2 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg
index 362145b403..ea8b480d22 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-3.ogg
deleted file mode 100644
index 9d0007377d..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-3.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-4.ogg
deleted file mode 100644
index e6633a1efc..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-4.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.m3u
index e9a7ce2db1..f0c36d4b42 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.m3u
@@ -1,7 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.4.0.0.ogg
-4.1.4.0.0-1.ogg
-4.1.4.0.0-2.ogg
-4.1.4.0.0-3.ogg
-4.1.4.0.0-4.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg
index e7b7866591..50e602af5e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg
index 1949056128..f5279d44f1 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg
index 247c35c3a4..75a529af86 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg
index 7f3d1fb857..5bb4d35977 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg
index 3f1990e971..e6633a1efc 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.m3u
index 46999ff035..13d65b54fa 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.m3u
@@ -1,7 +1,7 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.5.0.0.ogg
-4.1.5.0.0-1.ogg
-4.1.5.0.0-2.ogg
-4.1.5.0.0-3.ogg
-4.1.5.0.0-4.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg
index 2e17823934..c170b1b3b6 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg
index a3f5673c63..43bdb9bdd1 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg
index e4469c62f8..3790ef30ca 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg
index 2a89c9e2af..6c8c396609 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg
index da6ed1a16f..e471ee012c 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-5.ogg
deleted file mode 100644
index 575d63530a..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-5.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.m3u
index 1b21289bb0..de9a5bcd55 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.m3u
@@ -1,8 +1,7 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.6.0.0.ogg
-4.1.6.0.0-1.ogg
-4.1.6.0.0-2.ogg
-4.1.6.0.0-3.ogg
-4.1.6.0.0-4.ogg
-4.1.6.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg
index e417d4427f..339b70bca8 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg
index cc6324a68b..1fbd011b3f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg
index d913b6722b..57e5ebb711 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg
index 8049b4c6f2..5ae829e7fc 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.ogg
index 4b2aa15351..64e02ba828 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-5.ogg
new file mode 100644
index 0000000000..13c1a3a17d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.m3u
index 59d35f8864..34a94046e0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.m3u
@@ -1,7 +1,8 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.1.7.0.0.ogg
-4.1.7.0.0-1.ogg
-4.1.7.0.0-2.ogg
-4.1.7.0.0-3.ogg
-4.1.7.0.0-4.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg
index 5023aa141e..bee00142be 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-1.ogg
new file mode 100644
index 0000000000..8049b4c6f2
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-2.ogg
new file mode 100644
index 0000000000..d913b6722b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-3.ogg
new file mode 100644
index 0000000000..4c6963eb49
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-4.ogg
new file mode 100644
index 0000000000..4b2aa15351
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.m3u
new file mode 100644
index 0000000000..7f7325a046
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.m3u
@@ -0,0 +1,7 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.ogg
new file mode 100644
index 0000000000..407a19cbf3
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.8.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.m3u
index dc99929f4a..a8548a72e8 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.m3u
@@ -1,8 +1,8 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-4.2.0.0.0.ogg
-4.2.0.0.0-1.ogg
-4.2.0.0.0-2.ogg
-4.2.0.0.0-3.ogg
-4.2.0.0.0-4.ogg
-4.2.0.0.0-5.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.m3u
index 270a6f6c2b..0019e5b083 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.m3u
@@ -1,4 +1,4 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-5.0.0.0.0.ogg
-5.0.0.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.m3u
index 1e0e8f0664..f9a6c25aed 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.m3u
@@ -1,48 +1,49 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.0.0.0.0.ogg
-6.0.0.0.0-1.ogg
-6.1.0.0.0.ogg
-6.1.0.0.0-1.ogg
-6.2.0.0.0.ogg
-6.2.1.0.0.ogg
-6.2.1.0.0-1.ogg
-6.2.2.0.0.ogg
-6.2.2.0.0-1.ogg
-6.3.0.0.0.ogg
-6.3.1.0.0.ogg
-6.3.1.0.0-1.ogg
-6.3.2.0.0.ogg
-6.3.2.0.0-1.ogg
-6.3.2.0.0-2.ogg
-6.3.2.0.0-3.ogg
-6.3.2.0.0-4.ogg
-6.3.2.0.0-5.ogg
-6.3.2.0.0-6.ogg
-6.3.3.0.0.ogg
-6.3.3.0.0-1.ogg
-6.4.0.0.0.ogg
-6.4.0.0.0-1.ogg
-6.4.0.0.0-2.ogg
-6.5.0.0.0.ogg
-6.5.0.0.0-1.ogg
-6.5.0.0.0-2.ogg
-6.6.0.0.0.ogg
-6.6.1.0.0.ogg
-6.6.1.0.0-1.ogg
-6.6.1.0.0-2.ogg
-6.6.1.0.0-3.ogg
-6.6.2.0.0.ogg
-6.6.2.0.0-1.ogg
-6.7.0.0.0.ogg
-6.7.0.0.0-1.ogg
-6.7.0.0.0-2.ogg
-6.7.0.0.0-3.ogg
-6.7.0.0.0-4.ogg
-6.7.0.0.0-5.ogg
-6.7.0.0.0-6.ogg
-6.7.0.0.0-7.ogg
-6.7.0.0.0-8.ogg
-6.7.0.0.0-9.ogg
-6.7.0.0.0-10.ogg
-6.7.0.0.0-11.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-8.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-9.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-10.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-11.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.m3u
index 523f40cae3..079a63c2ab 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.m3u
@@ -1,4 +1,4 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.1.0.0.0.ogg
-6.1.0.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.m3u
index e204a3185c..d579c3b2d3 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.m3u
@@ -1,7 +1,7 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.2.0.0.0.ogg
-6.2.1.0.0.ogg
-6.2.1.0.0-1.ogg
-6.2.2.0.0.ogg
-6.2.2.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.m3u
index a5741a63f1..bf4f91e94d 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.m3u
@@ -1,4 +1,4 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.2.1.0.0.ogg
-6.2.1.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.m3u
index 47a9259f45..2f98a47e39 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.m3u
@@ -1,4 +1,4 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.2.2.0.0.ogg
-6.2.2.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.m3u
index 5f1ab83f22..f8150e99d5 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.m3u
@@ -1,14 +1,14 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.3.0.0.0.ogg
-6.3.1.0.0.ogg
-6.3.1.0.0-1.ogg
-6.3.2.0.0.ogg
-6.3.2.0.0-1.ogg
-6.3.2.0.0-2.ogg
-6.3.2.0.0-3.ogg
-6.3.2.0.0-4.ogg
-6.3.2.0.0-5.ogg
-6.3.2.0.0-6.ogg
-6.3.3.0.0.ogg
-6.3.3.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.m3u
index 03c58738cd..dbf894e332 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.m3u
@@ -1,4 +1,4 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.3.1.0.0.ogg
-6.3.1.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.m3u
index 9932c5cbfc..e940e2e5c1 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.m3u
@@ -1,9 +1,9 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.3.2.0.0.ogg
-6.3.2.0.0-1.ogg
-6.3.2.0.0-2.ogg
-6.3.2.0.0-3.ogg
-6.3.2.0.0-4.ogg
-6.3.2.0.0-5.ogg
-6.3.2.0.0-6.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.m3u
index c4fd845f5b..0a57cf270b 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.m3u
@@ -1,4 +1,4 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.3.3.0.0.ogg
-6.3.3.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg
index 201f087a7e..0fd28ae22a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.m3u
index ef2790eb3c..b93568e7ca 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.m3u
@@ -1,5 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.4.0.0.0.ogg
-6.4.0.0.0-1.ogg
-6.4.0.0.0-2.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.m3u
index 92cb21e03c..e3cdf57ec0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.m3u
@@ -1,5 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.5.0.0.0.ogg
-6.5.0.0.0-1.ogg
-6.5.0.0.0-2.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.m3u
index a3e705a5a5..089d4134ec 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.m3u
@@ -1,9 +1,10 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.6.0.0.0.ogg
-6.6.1.0.0.ogg
-6.6.1.0.0-1.ogg
-6.6.1.0.0-2.ogg
-6.6.1.0.0-3.ogg
-6.6.2.0.0.ogg
-6.6.2.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg
index 5200b6e405..6194ef0906 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.m3u
index e45e6c3453..1c7be9ab2e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.m3u
@@ -1,6 +1,6 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.6.1.0.0.ogg
-6.6.1.0.0-1.ogg
-6.6.1.0.0-2.ogg
-6.6.1.0.0-3.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg
index 5eae47cfde..b4e28cff5c 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-2.ogg
new file mode 100644
index 0000000000..8e706e6e98
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.m3u
index fbb664ca1e..2a760f5e51 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.m3u
@@ -1,4 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.6.2.0.0.ogg
-6.6.2.0.0-1.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.m3u
index 81788dd3a9..7f9d1ac9c2 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.m3u
@@ -1,14 +1,14 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-6.7.0.0.0.ogg
-6.7.0.0.0-1.ogg
-6.7.0.0.0-2.ogg
-6.7.0.0.0-3.ogg
-6.7.0.0.0-4.ogg
-6.7.0.0.0-5.ogg
-6.7.0.0.0-6.ogg
-6.7.0.0.0-7.ogg
-6.7.0.0.0-8.ogg
-6.7.0.0.0-9.ogg
-6.7.0.0.0-10.ogg
-6.7.0.0.0-11.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-4.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-5.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-6.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-7.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-8.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-9.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-10.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-11.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.m3u
index 59c209eb26..0075539685 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.m3u
@@ -1,27 +1,28 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.0.0.0.0.ogg
-7.0.0.0.0-1.ogg
-7.1.0.0.0.ogg
-7.2.0.0.0.ogg
-7.3.0.0.0.ogg
-7.4.0.0.0.ogg
-7.5.0.0.0.ogg
-7.6.0.0.0.ogg
-7.7.0.0.0.ogg
-7.8.0.0.0.ogg
-7.8.1.0.0.ogg
-7.8.2.0.0.ogg
-7.8.3.0.0.ogg
-7.8.4.0.0.ogg
-7.8.5.0.0.ogg
-7.8.6.0.0.ogg
-7.9.0.0.0.ogg
-7.9.1.0.0.ogg
-7.9.2.0.0.ogg
-7.10.0.0.0.ogg
-7.10.1.0.0.ogg
-7.10.2.0.0.ogg
-7.10.3.0.0.ogg
-7.10.4.0.0.ogg
-7.11.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.m3u
index aad8452193..1a17426618 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.1.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.m3u
index 4e2e99f016..0aa3114809 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.m3u
@@ -1,7 +1,5 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.10.0.0.0.ogg
-7.10.1.0.0.ogg
-7.10.2.0.0.ogg
-7.10.3.0.0.ogg
-7.10.4.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg
index 07be005182..66dc25c269 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.m3u
index 9118733d86..8cc8424aa3 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.10.1.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg
index 68f3689b55..2df5d0bbdb 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.m3u
index 6eecefd465..a30eafa4af 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.10.2.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg
index f368c080f1..5ed4db253a 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.m3u
deleted file mode 100644
index 3adc9502ac..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.10.3.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.ogg
deleted file mode 100644
index ffd90a79f0..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.m3u
deleted file mode 100644
index 552f4fbbec..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.10.4.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.ogg
deleted file mode 100644
index c7c7756494..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.m3u
index d1c41b06d6..341d6b5afa 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.m3u
@@ -1,3 +1,7 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.11.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg
index 8a4aa575b6..765b284d18 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.m3u
new file mode 100644
index 0000000000..981c8da8b3
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.ogg
new file mode 100644
index 0000000000..da1feae18e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.m3u
new file mode 100644
index 0000000000..7a77c23c1b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.ogg
new file mode 100644
index 0000000000..6f738b9552
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.m3u
new file mode 100644
index 0000000000..a8b4b0f8f4
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.ogg
new file mode 100644
index 0000000000..210080edf3
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.3.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.m3u
new file mode 100644
index 0000000000..1b26925fec
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.ogg
new file mode 100644
index 0000000000..c67d161bc7
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.4.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.m3u
new file mode 100644
index 0000000000..f94fed909c
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.ogg
new file mode 100644
index 0000000000..5c5a0cbad3
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.12.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.m3u
index 65dc14045a..7e1163118f 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.2.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.m3u
index 88d216c122..1958cfe612 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.3.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.m3u
index 5ab8d891ca..83042a92e3 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.4.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.m3u
index db3199ecb2..22ebb4cdf2 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.5.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.m3u
index 2b73a9329d..eb6918c140 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.6.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.m3u
index ad44439ec3..0f6cb103a6 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.7.0.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.m3u
index 7c9bda47ee..c7288f1045 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.m3u
@@ -1,9 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.8.0.0.0.ogg
-7.8.1.0.0.ogg
-7.8.2.0.0.ogg
-7.8.3.0.0.ogg
-7.8.4.0.0.ogg
-7.8.5.0.0.ogg
-7.8.6.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg
index 804b7f66b6..af1839e85e 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.m3u
deleted file mode 100644
index 7e19147683..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.8.1.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.ogg
deleted file mode 100644
index 9dc083b378..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.m3u
deleted file mode 100644
index e3b31c66bb..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.8.2.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.ogg
deleted file mode 100644
index 706084cd9b..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.m3u
deleted file mode 100644
index a88f6b83c0..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.8.3.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.ogg
deleted file mode 100644
index 427ff5ee22..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.m3u
deleted file mode 100644
index 35f43920c7..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.8.4.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.ogg
deleted file mode 100644
index 09f9e2aa42..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.m3u
deleted file mode 100644
index a47d61bdd1..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.8.5.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.ogg
deleted file mode 100644
index 2b206fe380..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.m3u
deleted file mode 100644
index fe1f3bdb65..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.m3u
+++ /dev/null
@@ -1,3 +0,0 @@
-#EXTM3U
-#EXTINF: section playlist generated with SpeLbox
-7.8.6.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.ogg
deleted file mode 100644
index f38ca7926f..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.m3u
index 92e3c5d6e3..baaf056dd6 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.m3u
@@ -1,5 +1,9 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.9.0.0.0.ogg
-7.9.1.0.0.ogg
-7.9.2.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg
index 9650ec9582..938acd9522 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.m3u
index 5e2efd9c5f..2f6053e031 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.9.1.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg
index 527ae5ae02..50dd2a2633 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.m3u
index 9f4c5730bb..d0ce528ae0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.m3u
@@ -1,3 +1,3 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-7.9.2.0.0.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg
index ddf594575d..32e86534e8 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.m3u
new file mode 100644
index 0000000000..a10e789e16
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.ogg
new file mode 100644
index 0000000000..0d821e4d74
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.3.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.m3u
new file mode 100644
index 0000000000..3dbe7e2ef6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.ogg
new file mode 100644
index 0000000000..0e09b58a2d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.4.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.m3u
new file mode 100644
index 0000000000..47416c2485
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.ogg
new file mode 100644
index 0000000000..e75694990e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.5.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.m3u
new file mode 100644
index 0000000000..25592e95da
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.ogg
new file mode 100644
index 0000000000..9c99c73709
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.6.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-1.ogg
index a9f226ac10..f0b68066f0 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-1.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-1.ogg
deleted file mode 100644
index f270038b25..0000000000
--- a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-1.ogg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-2.ogg
index a708edd941..f270038b25 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-2.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-3.ogg
index 1c90a0e4b4..a708edd941 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-3.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-4.ogg
new file mode 100644
index 0000000000..1c90a0e4b4
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.m3u
index 83fe2049a4..ac5b71e655 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.m3u
+++ b/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.m3u
@@ -1,9 +1,9 @@
#EXTM3U
#EXTINF: section playlist generated with SpeLbox
-8.0.0.0.0.ogg
-8.0.0.0.0-1.ogg
-8.0.0.0.0-2.ogg
-8.0.0.0.0-3.ogg
-8.0.0.0.0-star-1.ogg
-8.0.0.0.0-star-2.ogg
-8.0.0.0.0-star-3.ogg \ No newline at end of file
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-1.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-2.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-3.ogg
+https://ctan.org/tex-archive/macros/latex/contrib/spelatex/spelatex-spel/8.0.0.0.0-star-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/date.ogg b/macros/latex/contrib/spelatex/spelatex-spel/date.ogg
index 4bf1df7b7c..f1073936cf 100644
--- a/macros/latex/contrib/spelatex/spelatex-spel/date.ogg
+++ b/macros/latex/contrib/spelatex/spelatex-spel/date.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex.dtx b/macros/latex/contrib/spelatex/spelatex.dtx
index bdedc84d70..564abba5a2 100644
--- a/macros/latex/contrib/spelatex/spelatex.dtx
+++ b/macros/latex/contrib/spelatex/spelatex.dtx
@@ -20,7 +20,6 @@
% This work consists of the files spelatex.dtx, spelatex.ins,
% and any derivative file, generated from the dtx file using
% the ins driver file.
-%
% \fi
%
% \iffalse
@@ -33,17 +32,20 @@
\ProvidesFile{spelatex.dtx}
%</driver>
%<*package>
- [2024/06/21 v0.91 SpeLaTeX - Speech-enabled LaTeX (DMW and LVP)]
+ [2024/09/09 v0.92 SpeLaTeX - Speech-enabled LaTeX (DMW and LVP)]
%</package>
-\def\fileversion{0.91}
-\def\filedate{2024/06/21}
+\def\fileversion{0.92}
+\def\filedate{2024/09/09}
%<*driver>
\documentclass[10pt]{ltxdoc}
\usepackage{makeidx}
\usepackage{alltt}
\usepackage[english]{babel}
-\usepackage[extramath]{spelatex}
+\usepackage[extramath,
+ server=https://ctan.org/tex-archive/macros/latex/contrib/spelatex
+ ]{spelatex}
\usepackage{amsmath}
+\usepackage{amsfonts}
\usepackage{graphicx}
\usepackage{tikz}
\IfFileExists{tocbibind.sty}{\usepackage{tocbibind}}{}
@@ -83,6 +85,11 @@
% - avoided big active link areas\\
% - sketched bigger picture, leading to
% the three project phases.}
+% \changes{v0.92}{2024/09/09}{. Second overhaul:\\
+% - dumped orgmode export idea (too small of an audience)\\
+% - introduced markers for non-area-links\\
+% - implemented audio on server\\
+% - implemented <\kern-0.5ex<\kern-0.5ex<-macro as a shorthand}
%
% \GetFileInfo{spelatex.dtx}
%
@@ -111,41 +118,49 @@
% \maketitle
% \fvset{gobble=2}
%
+% \section*{Disclaimer}
+% \<<<{
+% Note that this is an experimental package. Its interface may change
+% considerably over subsequent versions (until v1.0).
+% }
+%
% \section{Preface}
%
% \subsection{Background}
%
-% \begin{spelchunk}
+% \<<<{
% At our institute, the University of Antwerp in Belgium, the number
% of students with reading and/or writing disorders (or at least
% aware of these disorders) is increasing. Approximately 5\% of the
-% students are registered with such a disorder. Probably there's an
-% additional number of people opting not to register their disorder.
-% \end{spelchunk}
-%
-% \begin{spelchunk}
+% students are registered with such a disorder and the number is rising
+% steadily over the past 10 years. Probably this number is an
+% underestimation as a number of people opti not to register their
+% disorder.
+% }
+
+% \<<<{
% A large portion of the study materials we offer to students is
% still written material. The authors believe that this will keep on
% being so, even given the multimedia and AI options that have
% become mainstream. Let's not go into this debate for now.\\
% However, written course texts cannot be but suboptimal for
% students with reading disorders.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% For small texts, reading them out loud and recording them using a
% voice recorder to create an aid for our target group, is still
-% feasible. We have taken that route at our institute for exam
+% feasible. We have taken that in the past for exam
% assignments. However, for bigger texts (like course syllabi) this
-% is beyond the time a teacher can afford spending on this small a
+% is beyond the time a professor can afford spending on this small a
% group of students. Yes, economic laws also govern teaching!
-% \end{spelchunk}
+% }
%
% \subsection{State of the art}
%
% \subsubsection{In general}
%
-% \begin{spelchunk}
+% \<<<{
% Therefore, reverting to readily available text-to-speech software
% is an obvious choice. Nowadays, special software exists that
% provides the functionality of reading out loud the contents of
@@ -158,40 +173,40 @@
% loaded with non-trivial mathematics, the standard text-to-speech
% packages fail to meet our expectations. In addition, they cannot
% read a sensible textual description of figures or tables.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% The issue with reading mathematics will be solved in the future,
% by enforcing mathematical equations to follow a specific standard
% that can be parsed and converted, not only into a visual
% representation, but also into proper text. MathML will be one of
% the candidates for that format.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% The issue with figures and tables can be solved by using the tag
% infrastructure of PDF. The format provides a system of tags that
% allow you to provide extra information about the content of a
% document, in much the same way as you can specify an 'alt' key for
% an image in HTML. This tag could contain a proper textual
% description of the figure or the table.
-% \end{spelchunk}
+% }
%
% \subsubsection{For \LaTeX}
%
-% \begin{spelchunk}
-% Currently, the \LaTeX project is investing in enabling \LaTeX{} to
+% \<<<{
+% Currently, the \LaTeX{} project is investing in enabling \LaTeX{} to
% partially automate the tagging of PDFs with the \texttt{tagpdf}
% package~\cite{TAGPDF}, such that the user only has to do a minimal
% job (adding tags for figures and tables). The goal is to maximize
% the accessibility of \LaTeX-produced documents.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
-% So all is well? Not quite. Though I'm confident that with enough
-% time the community will solve the issue completely, there are
+% \<<<{
+% So all is well? Not quite. Though we are confident that --- with enough
+% time --- the community will solve the issue completely, there are
% still some gaps:
-% \end{spelchunk}
+% }
% \begin{itemize}
% \spelitem{The tagpdf package is still not a part of the mainstream
% \LaTeX{}-kernel.}
@@ -202,13 +217,13 @@
%
% \subsection{This package}
%
-% \begin{spelchunk}
+% \<<<{
% This package aims to overcome these problems in the meantime and
% also to contribute to the longterm goal: making perfectly tagged
% PDFs that are read by any PDF-reader.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% In the \emph{first phase} of this package (i.e. the version you are
% looking at right now), this package reads your \LaTeX{} source,
% converts the text and the formulas to audio files and equips your
@@ -217,58 +232,49 @@
% The audio files are external files that should be packaged with
% your PDF to allow a reader to use the document with the available
% audio.
-% How does it read the formulas? It parses your \LaTeX{} constructs and
+% You have the choice to use local files or files that are made available on a
+% server (as holds for this text; the audio files are on the CTAN servers).\\
+% How does \spelatex{} read the formulas? It parses your \LaTeX{} constructs and
% makes the best of it. This will probably be the part that might
% survive up until the very last phase of this package.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% In a \emph{second phase} of this package, the audio files will be embedded
% into the PDF. Currently, there are not enough PDF readers that
% support this feature. Therefore, we decided to keep using the
% external audio files for now.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% In a \emph{third phase}, the audio files \emph{may be} abandoned
% alltogether, fully switching to tags. And we do think that this
% should be the end goal. The reasons why we say
% \emph{'may be'}, are:
-% \end{spelchunk}
+% }
% \begin{itemize}
% \spelitem{The voices of the current PDF-readers are still not of the
% same quality as the ones available online. And quality does matter.}
% \spelitem{The better voices may require cloud access, and probably
-% will not be free, therefore (me) paying for them at document creation
-% time, makes more sense to me than having my students pay
+% will not be free, therefore (us) paying for them at document creation
+% time, makes more sense to us than having our students pay
% for these voices whenever they read the document.}
% \spelitem{The industry standard Adobe reader is not easily available
% on open-source operating systems (like UNIX/BSD/Linux-derived
% platforms). You might consider using emulation using
% wine~\cite{WINE}, but in that case you can forget about audio. Free
% access to software is something we consider to be a must-have,
-% rather than a nice-to-have. In addition, Walter feels miserable when
-% he's forced to use anything else than GNU/Linux, because then he
-% keeps moaning that his productivity is ruined.}
+% rather than a nice-to-have.}
% \end{itemize}
%
-% \begin{spelchunk}
-% Admittedly, in this first phase, using the \spelatex{} package
-% causes a significant overhead in writing your text. Therefore we
-% also provide you the \spelbox{} extension for the Org-mode
-% \cite{ORGMODE} of \GNU{} Emacs \cite{EMACS}. To satisfy your
-% curiosity: \spelbox{} stands for ``Speech-Enabled \LaTeX{} By
-% Org-mode eXport''.
-% \end{spelchunk}
-%
-% \begin{spelchunk}
+% \<<<{
% Will \spelatex{} become obsolete in the future?
% Undoubtedly so. But for the time being, it answers our desire to
% provide our students with good audio support when studying their
% engineering courses. That is now, not only in five years time.
-% \end{spelchunk}
+% }
-% \begin{spelchunk}
+% \<<<{
% We hope that you enjoy
% using our software, or that --- if you are not pleased with it ---
% it triggers you to give us feedback or to come up with a better
@@ -278,32 +284,34 @@
% One of her suggestions (not to use big hyperlink-areas) was almost
% instantly implemented and has been adopted as the standard way of
% linking.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% You are free to use our software but kindly ask you to provide a
% mention ``The audio materials of this text have been prepared with
-% \spelatex{}/\spelbox{}'' in the section treating copyrights,
-% bibliographic data or any other spot that is suited. We'd also
-% welcome a short mail of yours telling that you make use of the
-% package. The pleasure of receiving such an e-mail makes our day.
-% \end{spelchunk}
-%
-% \begin{spelchunk}
+% \spelatex{}'' in the section treating copyrights,
+% bibliographic data or any other spot of your text that is
+% suited. We'd also welcome a short mail of yours telling that you
+% make use of the package. The pleasure of receiving such an e-mail
+% makes our day.
+% }
+%
+% \<<<{
% You are free to modify this \LaTeX-package, keeping a reference to
% our original package intact, provided that your package is subject
% to the LPPL license, as is \spelatex{}. However, contributing to our
-% package might be a better way to go, in order to bundle the efforts
+% package or to the \LaTeX{} project in general, might be a better
+% way to go, in order to bundle the efforts
% for a better speech-enabled \LaTeX{}.
-% \end{spelchunk}
-%
+% }
+% \clearpage
% \section{Introduction}
%
% \subsection{Target audience}
-% \begin{spelchunk}
+% \<<<{
% \spelatex{} is primarily intended for persons with a reading
% disorder. This may be:
-% \end{spelchunk}
+% }
% \begin{itemize}
% \spelitem{persons suffering dyslexia}
% \spelitem{visually impaired persons}
@@ -318,177 +326,153 @@
% \end{itemize}
% \end{itemize}
%
-% \begin{spelchunk}
+% \<<<{
% But also people who want to multitask, e.g., gardening while
% listening to a technical book, can benefit from
% \spelatex{}.\footnote{Note that multitasking is not reserved for persons
% without visual impairment. Also visually impaired persons can
% benefit from listening to an audiobook while doing other
-% things.} Personally, we often use \spelatex{} to proofread texts as we
-% hear language errors more easily than we spot them while reading.
-% \end{spelchunk}
+% things.}\\ We often use \spelatex{} to proofread the texts we've
+% written ourselves as we hear language errors more easily than we
+% spot them while reading.
+% }
%
% \subsection{The magic under the hood}
%
-% \subsubsection{The \spelbox{}-ecosystem}
-%
-% \begin{spelchunk}
-% The \spelatex{}-package is one of the parts of the \spelbox{}
-% ecosystem. It consists of three components:
-% \end{spelchunk}
-% \begin{itemize}
-% \spelitem{An Org-mode exporter called \texttt{ox-spel} \cite{OXSPELATEX}}
-% \spelitem{This \LaTeX{}-package \spelatex{} \cite{SPEL}}
-% \spelitem{A script embeded in the Perl module \texttt{SpeL::Wizard} \cite{SPELWIZARD}}
-% \end{itemize}
-%
% \subsubsection{The overall picture}
%
-% \begin{spelchunk}
-% \spelatex{} equips the PDF that is generated by \LaTeX{}
-% with hyperlinks to audio files that contain the spoken
-% equivalent of the original text, equations, figures and tables
-% \end{spelchunk}
-%
-% \begin{spelchunk}
-% Let's look at this in detail in Fig.~\ref{fig:setup}.
-% For now, ignore the two top boxes, and let's assume you are
-% composing the file |text.tex| as your document. We will return
-% to the two top boxes later.
-% \end{spelchunk}
-%
-% \begin{spelchunk}
+% \<<<{
+% \spelatex{} equips the PDF that is generated by \LaTeX{}
+% with hyperlinks to audio files that contain the spoken
+% equivalent of the original text, equations, figures and tables.
+% }
+%
+% \<<<{
+% Let's start by considering the flow depicted in
+% Fig.~\ref{fig:setup} at the top of the diagram.
% By loading the |spel.sty| package in your source
-% document, \LaTeX{} will produce a PDF file that references audio
+% document (|text.tex|), \LaTeX{} will produce a PDF file that references audio
% files that will be generated later (see below). In
% addition, it generates text chunks (i.e. small portions of
% your text) in separate files (|.tex|) and a spel index file
% (|.spelidx|) referencing them in sequence.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% Together with the |.aux|-file (needed by \spelatex{} for labels and
% citations), these are the inputs to the \spelatex-engine (|spel-wizard.pl|)
% that parses the text chunks, writes a full text version of them as
% spel files (with extension |.spel|) and
-% controls the text-to-speech engine to generate audio files of
+% controls the text-to-speech engine to generate audio versions of
% them.\footnote{In the figure, Ogg Vorbis has been chosen as
% format, but this can be any audio format.}
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% To avoid excessive text to speech conversion (i.e. an expensive step)
-% the \spelatex{} engine derives a finger print of them and compares it
+% the \spelatex{} engine derives an MD5 fingerprint of them and compares it
% to previously generated fingerprints for the chunk. If the
-% finger print has changed, the audio file is overwritten (or
+% fingerprint has changed, the audio file is overwritten (or
% created the first time), otherwise it is left untouched.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
-% As a cherry on top, the \spelatex-engine also creates a playlist,
+% \<<<{
+% As a cherry on top, the \spelatex-engine also creates a top-level playlist,
% such that you may use the audio files for a \POD{}cast-like
% listening experience.\\
% Something that has not been indicated on the figure, is that for
% reading out loud entire (sub)sections, the PDF-file also references
% m3u playlists that gather all chunks belonging to the (sub)section.
-% \end{spelchunk}
+% }
%
-% \begin{figure}[p]
+% \begin{figure}
% \begin{spelchunk}
% \begin{center}
% \begin{tikzpicture}
-% [scale=0.8,>=latex,
-% doc/.style={rectangle,fill=black!10,align=center,minimum
-% width=2cm,minimum height=2cm},
-% tool/.style={rectangle,draw,align=center}]
-% \node [doc] (utext) at (0,9) {text.org\\\footnotesize(unprepped
-% source)};
-% \node [tool] (instrument) at (0,6) {Org-mode exporter\\\footnotesize(\spelbox)};
-% \node [doc] (text) at (0,3) {text.tex\\\footnotesize(prepped source)};
-% \draw[->] (utext) -- (instrument);
-% \draw[->] (instrument) -- (text);
-% \node [doc] (R) at (-3,0) {spel.sty\\\footnotesize(package)};
-% \node [tool] (latex) at (0,0) {\LaTeX\\\footnotesize(compiler)};
-% \node [doc] (pdf) at (0,-3) {text.pdf\\\footnotesize(PDF with\\\footnotesize hyperlinks)};
-% \node [doc] (spelidx) at (6,-3) {text.spelidx\\\footnotesize(index file)};
-% \node [doc] (aux) at (9,-3) {text.aux\\\footnotesize(auxiliary file)};
-% \node [doc] (files) at (3,-3) {*.tex\\\footnotesize(text chunks)};
-% \draw[->] (text) -- (latex);
-% \draw[->,dotted] (text) -- (R);
-% \draw[->,dotted] (spelidx) -- (files);
-% \draw[->] (R) -- (latex);
-% \draw[->] (latex) -- (pdf);
-% \draw[->] (latex) edge[out=0,in=90] (spelidx);
-% \draw[->] (latex) edge[out=10,in=90] (aux);
-% \draw[->] (latex) edge[out=-10,in=90] (files);
-% \node [tool] (engine) at (6,-6) {\spelpl{}\\
-% \footnotesize(\spelatex{} engine)};
-% \node [tool] (t2s) at (1.5,-6) {text-to-speech\\engine};
-% \draw[->] (files) -- (engine);
-% \draw[->] (spelidx) -- (engine);
-% \draw[->] (aux) -- (engine);
-% \node[doc] (ogg) at (0,-9) {*.ogg\\\footnotesize(audio files)};
-% \node[doc] (spel) at (3,-9) {*.spel\\\footnotesize(spel files)};
-% \node[doc] (m3u) at (6,-9) {text.m3u\\\footnotesize(playlist)};
-% \node[doc] (md5) at (9,-9) {*.md5\\\footnotesize(fingerprints)};
-% \draw[->] (engine) -- (spel);
-% \draw[->] (engine) -- (m3u);
-% \draw[<->] (engine) -- (md5);
-% \draw[->,dotted] (pdf) edge[out=-115,in=115] (ogg);
-% \draw[->,dotted] (m3u) edge[out=-125,in=-55] (ogg);
-% \draw[->,dashed] (engine) -- (t2s);
-% \draw[->] (spel) -- (t2s);
-% \draw[->] (t2s) -- (ogg);
+% [scale=0.8,>=latex,
+% doc/.style={rectangle,fill=black!10,align=center,minimum
+% width=2cm,minimum height=2cm},
+% tool/.style={rectangle,draw,align=center}]
+% \node [doc] (text) at (0,3) {text.tex\\\footnotesize(source file)};
+% \node [doc] (R) at (-3,0) {spel.sty\\\footnotesize(package)};
+% \node [tool] (latex) at (0,0) {\LaTeX\\\footnotesize(compiler)};
+% \node [doc] (pdf) at (0,-3) {text.pdf\\\footnotesize(PDF with\\\footnotesize hyperlinks)};
+% \node [doc] (spelidx) at (6,-3) {text.spelidx\\\footnotesize(index file)};
+% \node [doc] (aux) at (9,-3) {text.aux\\\footnotesize(auxiliary file)};
+% \node [doc] (files) at (3,-3) {*.tex\\\footnotesize(text chunks)};
+% \draw[->] (text) -- (latex);
+% \draw[->,dotted] (text) -- (R);
+% \draw[->,dotted] (spelidx) -- (files);
+% \draw[->] (R) -- (latex);
+% \draw[->] (latex) -- (pdf);
+% \draw[->] (latex) edge[out=0,in=90] (spelidx);
+% \draw[->] (latex) edge[out=10,in=90] (aux);
+% \draw[->] (latex) edge[out=-10,in=90] (files);
+% \node [tool] (engine) at (6,-6) {\spelpl{}\\
+% \footnotesize(\spelatex{} engine)};
+% \node [tool] (t2s) at (1.5,-6) {text-to-speech\\engine};
+% \draw[->] (files) -- (engine);
+% \draw[->] (spelidx) -- (engine);
+% \draw[->] (aux) -- (engine);
+% \node[doc] (ogg) at (0,-9) {*.ogg\\\footnotesize(audio files)};
+% \node[doc] (spel) at (3,-9) {*.spel\\\footnotesize(spel files)};
+% \node[doc] (m3u) at (6,-9) {text.m3u\\\footnotesize(playlist)};
+% \node[doc] (md5) at (9,-9) {*.md5\\\footnotesize(fingerprints)};
+% \draw[->] (engine) -- (spel);
+% \draw[->] (engine) -- (m3u);
+% \draw[<->] (engine) -- (md5);
+% \draw[->,dotted] (pdf) edge[out=-115,in=115] (ogg);
+% \draw[->,dotted] (m3u) edge[out=-125,in=-55] (ogg);
+% \draw[->,dashed] (engine) -- (t2s);
+% \draw[->] (spel) -- (t2s);
+% \draw[->] (t2s) -- (ogg);
% \end{tikzpicture}
-% \end{center}
-% \end{spelchunk}
-% \begin{spelchunkad}
-% The easiest flow is to start from the top box, which represents
-% an org file that describes your text. We call this the
-% unprepped source. Read the Orgmode
-% documentation on \LaTeX{} and \spelatex{}-exporting to get to know
-% the format. The Orgmode \spelatex{} exporter, creates a fully
-% equiped \LaTeX{} file of your text. We call this the prepped source. You can
-% also start by composing this file yourself.
-% If you prepped source file uses the \spelatex{} style file, than
-% your compiler will generate a PDF file with hyperlinks, a
-% dot aawks-file and a dot spellindex-file together with a directory full of
-% dot tex files containing the text chunks to be processed by the
-% \spelpl-engine. This is a perl script that converts the chunks into
-% plain text readable spel files. The script is called spel dash
-% wizard dot pl. It also creates a playlist and audio files using a
-% text-to-speech engine. In this case, these are
-% Ogg-Vorbis files. To avoid having to call the text-to-speech
-% engine too frequently (which may incur costs), MD5-fingerprints
-% are used such that chunks that have been generated before and
-% are unchanged, can be reused. The end result is a PDF file that
-% references the audio files.
-% \end{spelchunkad}
-% \caption{Basic tool setup of \spelbox{} of which the \spelatex{} package
-% is an integral part; filled boxes indicate files,
-% outlined boxes indicate tools; solid lines indicates use or
-% creation of files, dotted lines indicate references, dashed lines
-% indicate a control relationship.}
-% \label{fig:setup}
+% \end{center}
+% \end{spelchunk}
+% \begin{spelchunkad}
+% If you load the \spelatex{} style file in your source file (at the
+% top of the figure) and prepare your source file according to the
+% instructions in this manual, than
+% your compiler will generate a PDF file with hyperlinks, a
+% dot aawks-file and a dot spellindex-file together with a directory full of
+% dot tex files containing the text chunks to be processed by the
+% \spelpl-engine. This is a perl script that converts the chunks into
+% plain text readable spel files. The script is called spel dash
+% wizard dot pl. It also creates a playlist and audio files using a
+% text-to-speech engine. In this case, these are
+% Ogg-Vorbis files. To avoid having to call the text-to-speech
+% engine too frequently (which may incur costs), MD5 fingerprints
+% are used such that chunks that have been generated before and
+% are unchanged, can be reused. The end result is a PDF file that
+% references the audio files.
+% \end{spelchunkad}
+% \caption{Basic tool setup of the \spelatex{} package; filled boxes indicate
+% files, outlined boxes indicate tools; solid lines indicates use or
+% creation of files, dotted lines indicate references, dashed lines
+% indicate a control relationship.}
+% \label{fig:setup}
% \end{figure}
%
-% \begin{spelchunk}
+% \<<<{
% You might wonder: where are the links? Well, there are three
% variants:
-% \end{spelchunk}
+% }
% \begin{itemize}
% \spelitem{\emph{area links}, which are almost exclusively
% used for equations, tables or figures. These links make an entire
% rectangle active, linking to the corresponding audio file.}
% \spelitem{\emph{group links}, indicated by small right-pointing
-% triangles next to section headers. These cause all blocks in the
-% section to be read one by one.}
-% \spelitem{\emph{hidden links}, wich are, as the name suggests,
-% hidden to avoid visual disturbance of the text; every
-% paragraph, footnote and list is activated by a link on the
-% whitespace before the first line of the chunk. Try it! Once you
+% triangles next to section headers (on the far right). These cause all
+% blocks in the section to be read one by one.\\
+% In case you specify the
+% package option \texttt{markervisibility=none} these triangles will become
+% invisible. However, the clickable areay still exists. Try!}
+% \spelitem{\emph{chunk links}, before every
+% paragraph, footnote or list, a small triangle indicates a clickable link.\\
+% If you activate the package option \texttt{markervisibility=onlygroups}, they will
+% become invisible, but still clickable. Try it! Once you
% are aware that these regions are active, you'll find them
-% easily. In addition, not using the full paragraph as an active
+% easily. Not using the full paragraph as an active
% region, allows existing hyperlinks (like for citations, references
% or URLs) to still function.}
% \end{itemize}
@@ -504,7 +488,7 @@
% \spelmacad{thanks}{the thanks macro}
% \spelmacad{item}{the item macro}
% \spelmacad{spelitem}{the spelitem macro}
-% \begin{spelchunk}
+% \<<<{
% Generating the text chunks to be read out loud requires us to use
% special \LaTeX-macros. For all pieces of text that are within
% an existing macro (e.g. |\title|, |\author|, |\section|,
@@ -512,9 +496,9 @@
% redefined by the \spelatex{}-package to
% execute the magic without any further hassle.\\
% We call these \LaTeX-fragments \emph{implicit spelchunks}.%
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% However, not all \LaTeX-constructs can be dealt with in an
% automatic way. This is true for any |\item| you put inside a list.
% You need to replace that with a |\spelitem| that takes the text
@@ -524,10 +508,10 @@
% spelchunks}. They should have been implicit, but we could not get
% that to work without problems. Therefore you need to mark them
% explicitly as |\spelitem| constructs.
-% \end{spelchunk}
+% }
%
% \subsubsection{Explicit spelchunks}
-% \begin{spelchunk}
+% \<<<{
% One would hope that displaymath environments are also implicit
% spelchunks. However, overriding environments in \LaTeX{} is a tricky
% business. In view of this, the \spelatex{} package keeps away from
@@ -540,12 +524,12 @@
% will have to provide a text description for tables and figures
% manually, using a subsequence |spelchunkad|
% environment (the suffix ad stands for \emph{audio description}).
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% To keep the terminology clear, we label them as automatic
-% and manual spelchunks respectively:
-% \end{spelchunk}
+% and manual explicit spelchunks respectively:
+% }
% \begin{itemize}
% \spelitem{automatic: \texttt{equation}, \texttt{eqnarray},
% \texttt{gather}, \texttt{align}, \texttt{alignat}, \ldots}
@@ -553,25 +537,26 @@
% \texttt{tikzpicture}, \ldots}
% \end{itemize}
%
-% \begin{spelchunk}
+% \<<<{
% The similarity between both categories is that you both embed them
% in a |spelchunk| environment, but that you provide the manual
% textual description using a |spelchunkad| environment right after
-% the chunk: in this way, the |spelchunkad| environment provides an
+% the chunk for the manual ones: in this way, the |spelchunkad| environment provides an
% alternative text for the chunk. Note that this way of working also
-% enables you to provide an overriding text for an equation, if you
-% think that \spelpl{} is doing a bad job. You do me a favor if
-% you submit this subpar behavior as a bug report to me!
-% \end{spelchunk}
+% enables you to provide an overriding text for an automatic spelchunk,
+% e.g., an equation, if you
+% think that \spelpl{} is doing a bad job. You do us a favor if
+% you submit this subpar behavior as a bug report to us!
+% }
%
-% \begin{spelchunk}
+% \<<<{
% It is worthwile to make good descriptions for a figure or a
% table. It's here that you can create true added value to your
% manuscript, even for readers without impairment!
-% \end{spelchunk}
+% }
%
% \subsubsection{Paragraphs}
-% \begin{spelchunk}
+% \<<<{
% However, there is the elephant in the room that we did not yet
% talk about, the paragraph. Indeed, it is desirable to split plain
% text according to the paragraphs in the document. Alas, paragraphs
@@ -581,63 +566,40 @@
% explicit spelchunks and need to be embedded
% in |spelchunk| environments. This environment will cause its
% contents to be hyperlinked to a separate piece of audio.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% Encasing all your paragraphs with |spelchunk| environments
% manually is a pain. There is a reason why in \LaTeX{}
% paragraphs can be created by a double newline: convenience.
% The |spelchunk|-environment encasing ruins this totally!
-% \end{spelchunk}
-%
-% \subsubsection{Emacs Orgmode to the rescue!}
-% \begin{spelchunk}
-% However, we provide an exporter for the Org-mode \cite{ORGMODE} of
-% Emacs \cite{EMACS}, such
-% that you can prepare your manuscript in Org-mode and not worry
-% about all these exlicit tricks with |spelchunk| and |spelitem|
-% constructs.
-% \end{spelchunk}
-%
-% \begin{spelchunk}
-% This brings us to the two top boxes in the diagram of
-% Fig.~\ref{fig:setup}. If you prepare your manuscript in Org-mode,
-% and use the Org-mode exporter, you don't have to worry about explicit
-% spelchunks, or defunct implicit spelchunks. Therefore, we encourage
-% you to use Emacs as your editor. The learning
-% curve is steep, but the rewards regarding ease-of-use are huge.
-% In that way, you can focus on providing textual descriptions for
-% the non textual portions of your manuscript, e.g. giving a good
-% description of a graph.
-% \end{spelchunk}
-%
-% \begin{spelchunk}
-% Note that this very document has been prepared manually to make it
-% independent of Org-mode. It also shows that if you don't
-% want to use Emacs and Org-mode, you will suffer some considerable
-% pain in equipping your manuscript with an overload of |spelchunk|
-% environments. We have only one advice: don't use the \spelatex{}
-% outside \spelbox{}. Outside a proper boxed confinement,
-% spells easily become curses\ldots
-% \end{spelchunk}
+% }
+% \spelmacad{<<<}{the shorthand macro}
+% \<<<{
+% To ease the pain and in order to avoid the visual intrusiveness of the
+% spelchunk environments, you can also use the \texttt{\textbackslash{}<<<\{\}} command to
+% encase your paragraphs. In some cases the \texttt{\textbackslash{}<<<\{\}}
+% command will not work, e.g., if there is a |Verbatim| environment
+% inside. In that case you must use the |spelchunk| environment directly.
+% }
%
% \subsection{Extra math commands}
%
-% \begin{spelchunk}
+% \<<<{
% Some of the ways to specify mathematical expressions in \LaTeX{} is
% very liberal, what makes converting them to text quite
% difficult. Therefore, we also provide some
% extra constructs that make life easier for both parties: you as a
% user and \spelpl{} as a parser.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% An example of this are sets. We provide two commands to define a
% set. As we want these commands to blend in with general \LaTeX{},
% we did not equip them with a prefix |spel|. Therefore, we made
% activating them conditional to specifying the package option
% |extramath|.
-% \end{spelchunk}
+% }
% \begin{description}
% \spelitem[\texttt{\textbackslash{}setenum}]{a command to define a set
% that consists of comma or semicolon separated elements}
@@ -648,14 +610,11 @@
%
% \subsection{Added value}
%
-% \begin{spelchunk}
+% \<<<{
% Why would it make sense to use \spelatex? We think there are many
% selling points. We can mention a few:
-% \end{spelchunk}
+% }
% \begin{description}
-% \spelitem[Minimal overhead]{
-% Preparing a \LaTeX{} manuscript for use with \spelatex{} requires a
-% minimal amount of work, if you are using Org-mode in Emacs.}
% \spelitem[Free for the content provider]{
% If you are using a freeware text-to-speech engine (like for
% example festival \cite{FESTIVAL} or balabolka \cite{BALABOLKA})
@@ -664,8 +623,9 @@
% the effort of preparing your manuscript. There are no license
% costs involved.\\
% You could also consider to use an online paying text-to-speech
-% service. As an example, We incorporated a connection to Amazon's
-% Polly \cite{AWSPOLLY}.\\
+% service. As an example, we incorporated a connection to Amazon's
+% Polly \cite{AWSPOLLY}. We admit, it's not free, but it doesn't
+% cost an arm and a leg either.\\
% In addition, if your user has a better-quality (maybe
% commercial) text-to-speech system, he/she can reconvert the text
% files him-/herself, equiping your document with a voice they
@@ -675,72 +635,71 @@
% \spelitem[Free for your audience]{
% In addition, the user of your audio-enabled document doesn't
% need to buy a license for text-to-speech software. Only a PDF-viewer
-% and standard audio-player program are required.}
+% and a standard audio-player program are required.}
% \spelitem[Math capable]{
-% Try some of the equations in this manuscript. We are quite
-% confident you'll be convinced fairly soon.}
+% Try some of the equations in this manuscript in
+% section~\ref{sec:demo}. We are quite confident you'll be
+% convinced fairly soon.}
% \end{description}
%
% \section{Installation}
%
% \subsection{The \spelatex{} package}
-% \begin{spelchunk}
+% \<<<{
% If you are a package manager then you'll know how to
% prepare an installation package for \spelatex.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
-% If you are a normal user then you have two options. First,
-% check if there is a package that your favorite \LaTeX{}
-% distributor has prepared for you. Most of the major distributions
-% (like e.g. \TexLive{} or \MikTeX{}) do so.\\
-% Second, grab the TDS package
-% from \CTAN{} \cite{CTAN} (spel.TDS.zip) and unzip it somewhere in your
-% own TDS tree, regenerate your filename database and off you go.
-% In any case, make sure that \LaTeX{} finds the file |spel.sty|.
-% \end{spelchunk}
+% \<<<{
+% If you are a normal user, check if there is a package that your
+% favorite \LaTeX{} distributor has prepared for you. Most of the
+% major distributions (like e.g. \TexLive{} or \MikTeX{}) do so.\\
+% The fallback option is to grab the |spelatex.sty| file from CTAN
+% and put it in our \TeX{} search path.
+% }
%
-% \begin{spelchunk}
+% \<<<{
% The \spelatex{} package uses a number of auxiliary packages, fetch them
% from \CTAN{} \cite{CTAN} if your \TeX{} distributor does not provide
-% them. The ones used are: |expl3|, |hyperref|, |ifthen|,
-% |fancyvrb|, |newfile|, |rotating|, |babel|, |kvoptions|.
-% \end{spelchunk}
+% them. The ones used are: |expl3|, |hyperref|, |xcolor|, |ifthen|, |verbatim|,
+% |fancyvrb|, |newfile|, |rotating|, |babel|, |kvoptions| and |xkeyval|.
+% }
%
% \subsection{The \spelpl{} speech generator}
%
% \subsubsection{The script}
-% \begin{spelchunk}
+% \<<<{
% You can install the wizard assuming you have a working Perl
% interpreter installed. Assuming you're on \GNU/Linux or MAC, you
% should be able to find an installation package using the package
% manager for your distribution. If you are on MS-Windows, look for
% Strawberry perl or ActiveState perl.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% The only thing to do is to install the |SpeL::Wizard|
% module. You can do this with the perl pacakge manager for your
% interpreter.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% Open a terminal or command window, and then enter on the
% command line (the dollar represents your prompt):
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% On \GNU/Linux and MAC: |$ cpanm SpeL::Wizard|\\
-% On Strawberry perl: |$ cpan SpeL::Wizard|\\
-% On ActiveState perl: |$ ppm install SpeL-Wizard|
-% \end{spelchunk}
+% For Strawberry perl: |$ cpan SpeL::Wizard|\\
+% For ActiveState perl: |$ ppm install SpeL-Wizard|
+% }
%
-% \begin{spelchunk}
+% \<<<{
% The script \spelpl{} will be installed on your system. Make sure
% it is on your search path.
-% \end{spelchunk}
+% }
%
% \subsubsection{The configuration file}
+%
% \begin{spelchunk}
% Finally, you need to provide \spelpl{} with an appropriate
% config-file, named |tts.conf| that sets up the text-to-speech conversion.
@@ -773,12 +732,12 @@
% \end{Verbatim}
% \end{spelchunk}
%
-% \begin{spelchunk}
+% \<<<{
% The tts configuration parameter defines the speech engine to use.
% The languagetags section defines how the babel languages are mapped to
% internationalization codes (also known as locales).
% The voices section specifies what voice to use for a specific language.
-% \end{spelchunk}
+% }
%
% \begin{spelchunk}
% An environment variable can specify where your config file is
@@ -789,12 +748,12 @@
% \end{spelchunk}
% \begin{spelchunk}
% If that variable is not set, the script will look in a subdirectory
-% |.spel_wizard| of your home-folder (or |%userprofile%| in
+% |.spel_wizard| of your home-folder (or |%userprofile%| on
% MS-Windows), or it will take the default that came with the
% |SpeL::Wizard| module.
% \end{spelchunk}
%
-% \begin{spelchunk}
+% \<<<{
% Be aware that you need to install your text-to-speech tool yourself
% according to the documentation provided by the tool provider.
% In addition, make sure it the executable is in your search path. In
@@ -802,79 +761,78 @@
% will need to get an account on their cloud platform and setup
% credentials and whatever is needed to get going. Providing
% assistance for this is beyond the aim of this manual.
-% \end{spelchunk}
+% }
%
% \subsection{The PDF viewer}
%
-% \begin{spelchunk}
-% You need to make sure you have a PDF-viewer that supports links
-% containing 'run' tags. E.g., xpdf \cite{XPDF} does not, evince
-% \cite{EVINCE} complains about security risks, but okular
-% \cite{OKULAR} and Adobe Reader \cite{ADOBEREADER} do. So does
-% PDF-XChange Viewer \cite{PDFXCHANGE}.
-% \end{spelchunk}
+% \<<<{
+% You need to make sure you have a PDF-viewer that supports file links
+% E.g., xpdf \cite{XPDF} does not, but evince \cite{EVINCE}, okular
+% \cite{OKULAR} and Adobe Reader \cite{ADOBEREADER} do.
+% }
%
% \subsection{The media player}
-% \begin{spelchunk}
+% \<<<{
% When clicking a \spelatex-enabled item in your PDF-file, your media
% player is started to play the |.ogg| or |.m3u|-file. On GNU/Linux
% most media players work fine (SoX, totem, vlc, \ldots).
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% On windows, we recommend using vlc. It works out of the box.
% When usign the stock Windows Media Player, you will need to add
% every folder that contains a PDF you'd like to have read, to your
% Media Player library. Search the internet to find instructions on
% that and be prepared: in line with Microsoft's standard practice it
% is well hidden in the interface.
-% \end{spelchunk}
+% }
+%
+% \<<<{
+% If you gave the |server| option to the \spelatex{} package, then your
+% favorite webbrowser will be started to download and play the file.
+% If you move it out of your way, you can avoid that it jumps in front of
+% your text every time again.
+% }
%
% \section{Usage}
%
% \subsection{Preparing your document source}
% \begin{spelchunk}
% Using the \spelatex{} package is very simple. Just load the package's
-% style file using an appropriate |\usepackage{spel}|.
+% style file using an appropriate |\usepackage{spelatex}|.
% \end{spelchunk}
%
-% \begin{spelchunk}
-% In case you are not using Org-mode, there are $5$ things to do:
-% \end{spelchunk}
+% \<<<{
+% There are $5$ things to do:
+% }
% \begin{enumerate}
-% \spelitem{Treat the defunct implicit spelchunks}
-% \spelitem{Treat the explicit spelchunks}
-% \spelitem{Manually provide text to read when needed}
+% \spelitem{Treat the defunct implicit spelchunks.}
+% \spelitem{Treat the explicit spelchunks.}
+% \spelitem{Manually provide text to read when needed.}
% \spelitem{Provide audiodescriptions or preprocessing instructions
-% for your typesetting macros}
+% for your typesetting macros.}
% \spelitem{Provide audiodescriptions or preprocessing instructions
-% for your typesetting environments}
+% for your typesetting environments.}
% \end{enumerate}
%
-% \begin{spelchunk}
-% Steps 1 and 2 can be done automatically for you by using Org-mode in
-% Emacs and using the proper |spel| exporter.
-% Steps 3, 4 and 5 are up to you. In this section, we assume you are
-% executing all 5 steps manually and therefore, we will explain all
-% required macros.
-% \end{spelchunk}
+% We will now explain all required macros.
%
% \subsubsection{Treat the implicit spelchunks}
-% \begin{spelchunk}
+% \<<<{
% The texts of chapter, (sub)section titles, a.s.o. will be formatted
% automatically such that they are hyperlinked to the appropriate
% audio file. Therefore, this step was not mentioned above. It is done
% automatically for you by using the \spelatex{} package.
-% \end{spelchunk}
+% }
%
-% \begin{spelchunk}
+% \<<<{
% You only need to cover your \emph{defunct implicit spelchunks}:\\
% \DescribeMacro{\spelitem}
% Use this macro instead of the \texttt{\textbackslash{}item} macro to make
% sure your list environments are converted to speech chunks
% appropriately.
-% \end{spelchunk}
+% }
%
% \begin{spelchunk}
% Example:
@@ -897,35 +855,36 @@
% \spelitem[orange]{an orange round fruit}
% \end{description}
% \end{Verbatim}
-% Note that the spel exporter in Org-mode takes care of all this
-% boilerplate work.
% \end{spelchunk}
%
% \subsubsection{Treat the explicit spelchunks}
-%
-% \begin{spelchunk}
+% \label{sec:explicitspelchunks}
+% \<<<{
% \DescribeEnv{spelchunk}
% Use this environment to embed the chunks of text in that you want
% to generate audio for. In case the content is an equation, a
% figure or a table, we recommend specifying |arealink| as the
% optional argument to the |spelchunk| environment. It makes the
% entire equation an active hyperlink.
-% \end{spelchunk}
+% Note that you cannot specify an |arealink| when the area to be covered is
+% vertical-mode object. In common language: put your |arealink| |spelchunk|
+% environments inside a |center| environment and not the other way around.
+% }
%
-% \begin{spelchunk}
+% \<<<{
% Example:\\
-% {\footnotesize (note: the example below is not \spelatex{}-enabled because it
-% generates internal package problems)}
-% \end{spelchunk}
+% {\footnotesize (note: the example below is not \spelatex{}-enabled
+% in this manual because it generates internal package problems)}
+% }
% \begin{Verbatim}
% \begin{spelchunk}
-% An orderinary paragraph must be embedded in this environment.
+% An ordinary paragraph must be embedded in this environment.
% The same holds for equations! However, then we recommend using
% the |arealink| option, as that makes the full area of the
% equation clickable and avoids an empty white line before the
% equation.
% \end{spelchunk}
-% \begin{spelchunk}[arealink]
+% \begin{spelchunk[arealink]
% \begin{align}
% E &= m c^2\\
% e^{j\pi} &= -1
@@ -952,12 +911,12 @@
%
% \begin{spelchunk}
% Example:\\
-% {\footnotesize (note: the example below is not \spelatex{}-enabled because it
+% {\footnotesize (note: the example below is again not \spelatex{}-enabled because it
% generates internal package problems)}
% \end{spelchunk}
% \begin{Verbatim}
% \begin{spelchunk}
-% An orderinary paragraph must be embedded in this environment.
+% An ordinary paragraph must be embedded in this environment.
% \end{spelchunk}
% \begin{spelchunkad}
% Do not forget to embed ordinary paragraphs in this environment.
@@ -975,7 +934,7 @@
%
% \begin{spelchunk}
% Example:\\
-% {\footnotesize (note: the example below is not \spelatex{}-enabled because it
+% {\footnotesize (note: the example below is for a third time not \spelatex{}-enabled because it
% generates internal package problems)}
% \end{spelchunk}
% \begin{Verbatim}
@@ -989,6 +948,39 @@
% \end{spelchunkad}
% \end{Verbatim}
%
+% \subsubsection{Use the shorthand \texttt{\textbackslash <<<}-macro}
+%
+% \<<<{
+% \DescribeMacro{\<<<}
+% This macro takes the text to be read-out loud as an
+% argument. It is a shorthand for the |spelchunk|
+% environment. Options you would have given to the |spelchunk|
+% environment can be given as an optional argument to this macro.
+% }
+%
+% \<<<{
+% Retaking the example of section~\ref{sec:explicitspelchunks},
+% using the shorthand, we obtain:\\
+% {\footnotesize (note: the example below is once again not \spelatex{}-enabled
+% in this manual because it generates internal package problems)}
+% }
+% \begin{Verbatim}
+% \<<<{
+% An ordinary paragraph must be embedded in this macro.
+% The same holds for equations! However, then we recommend using
+% the |arealink| option, as that makes the full area of the
+% equation clickable and avoids an empty white line before the
+% equation.
+% }
+% \<<<[arealink]{
+% \begin{align}
+% E &= m c^2\\
+% e^{j\pi} &= -1
+% \end{align}
+% }
+% \end{Verbatim}
+%
+%
% \subsubsection{Provide descriptions for typesetting macros}
%
% \DescribeMacro{\spelmacad}
@@ -1127,13 +1119,13 @@
%
% \DescribeMacro{\setdesc}
% \begin{spelchunk}
-% This macro typesets an enumeration set and makes sure \spelpl{}
+% This macro typesets a definition set and makes sure \spelpl{}
% can read it properly.
% \end{spelchunk}
% \begin{spelchunk}
% \begin{Verbatim}
% \begin{equation}
-% P = \setdesc{ n \in N \mid n \text{~is prime} }
+% P = \setdesc{ n \in \mathbb{N} \mid n \text{~is prime} }
% \end{equation}
% \end{Verbatim}
% \end{spelchunk}
@@ -1181,10 +1173,13 @@
% \begin{VerbatimOut}[gobble=4]{Example/example.tex}
% \documentclass{article}
%
-% \usepackage[dutch,english]{babel} % load babel before spel to avoid
+% \usepackage[dutch,english]{babel} % load babel before spelatex to avoid
% % option clash!
% \selectlanguage{english}
-% \usepackage[format=ogg]{spelatex}
+% \usepackage[format=ogg,
+% server=https://ctan.org/tex-archive/macros/latex/contrib/spelatex/Example
+% ]
+% {spelatex}
%
% \newrobustcmd\CTAN{CTAN}
% \spelmacad{CTAN}{see-tan}
@@ -1193,7 +1188,7 @@
%
% \title{\spelatex{} Example}
% \author{Walter Daems and Paul Levrie}
-% \date{2011/04/12}
+% \date{2024/09/09}
% \setlength\parindent{0em}
% \setlength\parskip{1ex}
%
@@ -1203,10 +1198,10 @@
%
% \section{Introduction}
%
-% \begin{spelchunk}
-% This file is just a simple showcase of the features of \spelatex.
+% \<<<{
+% This file is just a simple showcase of the features of \spelatex{}.
% Below, you'll find examples of:
-% \end{spelchunk}
+% }
%
% \begin{itemize}
% \spelitem{a simple equation}
@@ -1215,20 +1210,25 @@
%
% \section{A simple equation}
% \label{eqn:simple}
-% \begin{spelchunk}
+% \<<<{
% Consider the following simple definition of a polynomial function and
% check its spoken version by clicking on it.
-% \end{spelchunk}
-% \begin{spelchunk}[arealink]
+% }
+% \<<<[arealink]{
% \begin{equation}
-% f(x) = x^{5}- x^4 + 7 x^3 + 3 x^2 - 8 x + 23
+% f(x) = x^{5}- x^4 + 7 x^3 + 3 x^2 - 8 x + 25
% \end{equation}
-% \end{spelchunk}
-% \begin{spelchunk}
+% }
+% \<<<{
% This seems a simple equation, however, it is not so straightforward
% for an automated reader, to read it correctly.
-% \end{spelchunk}
+% }
%
+% \section{Remark}
+% \<<<{
+% Instead of the \texttt{\textbackslash{}<<<} macro, one can also use the
+% spelchunk environment. We did this in the next sections.
+% }
% \section{A more complex equation}
% \newcommand\xx[2]{\ensuremath{#1_{#2}}}
% \spelmacad{xx}[2]{#1 #2}
@@ -1259,8 +1259,9 @@
% y-9+\frac{t^2}{4} = -\frac{4t}{4-t^2} \cdot (x-t)
% \]
% \end{spelchunk}
-
+%
% \selectlanguage{english}
+%
% \section{And some extras}
% \subsection{Citations}
% \begin{spelchunk}
@@ -1274,6 +1275,8 @@
% section~\ref{eqn:complex}.
% \end{spelchunk}
%
+% \selectlanguage{dutch}
+%
% \bibliographystyle{alpha}
%
% \begin{thebibliography}{99}
@@ -1292,10 +1295,11 @@
%
% \end{document}
% \end{VerbatimOut}
+% \footnotesize
% \VerbatimInput[frame=lines,numbers=left,gobble=0]{Example/example.tex}
-%
+% \normalsize
% \section{Demo}
-%
+% \label{sec:demo}
% \newcommand\rd[1]{\ensuremath{\mathrm{d}#1}}
% \spelmacad{rd}[1]{d of #1}
% \newcommand\xx[2]{\ensuremath{#1_{#2}}}
@@ -1369,14 +1373,14 @@
% \begin{spelchunk}
% Euler's identity:
% \end{spelchunk}
-% \begin{spelchunk}
+% \begin{spelchunk}[arealink]
% \begin{equation}
% e^{j \pi} + 1 = 0
% \end{equation}
% \end{spelchunk}
%
% \subsubsection{A rather well-known definite integral}
-% \begin{spelchunk}
+% \begin{spelchunk}[arealink]
% \begin{equation}
% \int_{-\infty}^\infty e^{-x^2}\,\rd{x} = \sqrt{\pi}
% \end{equation}
@@ -1391,7 +1395,7 @@
% \begin{spelchunk}[arealink]
% \begin{align}
% P &= \setenum{ 2, 3, 5, 7, 11, 13, \ldots }\\
-% P &= \setdesc{ n \in N \mid n \text{~is prime}}
+% P &= \setdesc{ n \in \mathbb{N} \mid n \text{~is prime}}
% \end{align}
% \end{spelchunk}
%
@@ -1429,43 +1433,44 @@
% \end{spelchunk}
% \begin{figure}[h]
% \setlength{\unitlength}{4mm}
-% \begin{spelchunk}
% \begin{center}
+% \begin{spelchunk}[arealink]
% \begin{picture}(24,2)
% \put(0,0.8){$x[n]$}
% \put(2,1){\vector(1,0){3}}
% \put(5,0){\framebox(5,2){$H(z)$}}
% \put(10,1){\vector(1,0){3}}
-% \put(13,0){\framebox(5,2){$G(z) \ast F(z)$}}
+% \put(13,0){\framebox(5,2){$G(z) \cdot F(z)$}}
% \put(18,1){\vector(1,0){3}}
% \put(22,0.8){$y[n]$}
% \end{picture}
+% \end{spelchunk}
% \end{center}
-% \end{spelchunk}
% \begin{spelchunkad}
% The discrete-time input signal x is fed through a filter H of
% z. The intermediate output signal of the filter H of z is fed into
-% another filter whose transfer function is the convolution of G of
-% z and F of z. This resuspel in the discrete-time output signal y.
+% another filter whose transfer function is the product of G of
+% z and F of z. This results in the discrete-time output signal y.
% \end{spelchunkad}
% \caption{A block diagram of the filter system}
% \label{fig:blockdiagram}
% \end{figure}
%
% \subsubsection{Tables}
-% \begin{spelchunk}
-% \begin{center}
+% \<<<{Tables can also be equiped with a sensible description:}
+% \begin{center}
+% \begin{spelchunk}[arealink]
% \begin{tabular}{lcc}
% Food & Sweet & Bitter \\
% \hline
-% apple & $\bullet$ & \\
+% apples & $\bullet$ & \\
% unsweetened coffee & & $\bullet$\\
% cake & $\bullet$ & \\
% chocolate & $\bullet$ & $\bullet$ \\
% \hline
% \end{tabular}
-% \end{center}
-% \end{spelchunk}
+% \end{spelchunk}
+% \end{center}
% \begin{spelchunkad}
% This table indicates the sweetness and bitterness for several food
% products.
@@ -1481,50 +1486,46 @@
% to $\tan \alpha = -\frac{t}{2}$, the equation of the reflected
% ray is given by
% \end{spelchunk}
-% \begin{spelchunk}
+% \begin{spelchunk}[arealink]
% \begin{equation}
% y-9+\frac{t^2}{4} = -\frac{4t}{4-t^2} \cdot (x-t)
% \end{equation}
% \end{spelchunk}
-%
% \begin{spelchunk}
% The $x$-coordinate of the point of intersection of the reflected ray
% with a fixed line $y=u$ satisfies:
% \end{spelchunk}
-% \begin{spelchunk}
+% \begin{spelchunk}[arealink]
% \begin{equation}
% u-9+\frac{t^2}{4} = -\frac{4t}{4-t^2} \cdot (x-t)
% \label{eqn:refray}
% \end{equation}
% \end{spelchunk}
-%
% \begin{spelchunk}
% We calculate the minimal value of this $x$ for varying $t$, by
% differentiating (\ref{eqn:refray}) with respect to $t$ and assuming
% that $\frac{\rd{x}}{\rd{t}}=0$:
% \end{spelchunk}
-% \begin{spelchunk}
+% \begin{spelchunk}[arealink]
% \[
% \frac{t}{2} = -\frac{4(4+t^2)}{(4-t^2)^2} (x-t) -
% \frac{4t}{4-t^2} \cdot (-1) \ \ \ \Leftrightarrow \ \ \ x=
% 3\frac{t}{2}-\frac{t^3}{8}
% \]
% \end{spelchunk}
-%
% \begin{spelchunk}
% Inserting in the equation containing $u$ gives us the relation
% between $t$ and $u$:
% \end{spelchunk}
-% \begin{spelchunk}
+% \begin{spelchunk}[arealink]
% \[
% u = 9- 3 \frac{t^2}{4}
% \]
% \end{spelchunk}
-%
-% \begin{spelchunk}
+%% \begin{spelchunk}
% This leads to a system of parametric equations for the caustic:
% \end{spelchunk}
-% \begin{spelchunk}
+% \begin{spelchunk}[arealink]
% \[
% \left\{\begin{array}{l}
% x = 3\frac{t}{2}-\frac{t^3}{8} \\[0.3cm]
@@ -1537,7 +1538,6 @@
% \end{array} \right.
% \]
% \end{spelchunk}
-%
% \begin{spelchunk}
% It is now easy to eliminate the parameter $t$. As you can see, $t
% = \frac{6 x}{y}$. Inserting into the equation for $y$ gives us the
@@ -1583,6 +1583,7 @@
\RequirePackage{hyperref}
\RequirePackage{xcolor}
\RequirePackage{ifthen}
+\RequirePackage{verbatim}
\RequirePackage{fancyvrb}
\RequirePackage{newfile}
\RequirePackage{rotating}
@@ -1602,7 +1603,6 @@
urlcolor=black}
\RequirePackage{kvoptions}
\RequirePackage{xkeyval}
-\RequirePackage{marginnote}
% \end{macrocode}
%
% \subsection{Options}
@@ -1613,9 +1613,10 @@
prefix=spel@
}
\DeclareStringOption[ogg]{format}
+\DeclareStringOption[local]{server}
+\DeclareStringOption[full]{markervisibility}
\DeclareBoolOption[false]{disabled}
\DeclareBoolOption[false]{extramath}
-\DeclareBoolOption[false]{propermath}
\ProcessKeyvalOptions*
% \end{macrocode}
%
@@ -1627,12 +1628,6 @@
\DeclareRobustCommand{\spelatex}{S\kern-0.3ex\raisebox{-0.1ex}{\rotatebox{-15}{p}}\kern-0.25ex\raisebox{0.1ex}{\rotatebox{10}{e}}\kern-0.1ex\LaTeX}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\spelbox}
-% This is the official \spelbox{} logo.
-% \begin{macrocode}
-\DeclareRobustCommand{\spelbox}{S\kern-0.3ex\raisebox{-0.1ex}{\rotatebox{-15}{p}}\kern-0.25ex\raisebox{0.1ex}{\rotatebox{10}{e}}\kern-0.1exLbo\raisebox{-0.2ex}{x}}
-% \end{macrocode}
-% \end{macro}
% \begin{macro}{\spelpl}
% This is the official \spelpl{} logo.
% \begin{macrocode}
@@ -1674,6 +1669,10 @@
\addtostream{spelidx}{format|\spel@format}
\addtostream{spelidx}{audiodir|\audiodir}
\addtostream{spelidx}{chunkdir|\chunkdir}
+\addtostream{spelidx}{server|\spel@server}
+\ExplSyntaxOn
+\newcommand\linksdir{\str_if_eq:VnTF{\spel@server}{local}{./\audiodir}{\spel@server/\audiodir}}
+\ExplSyntaxOff
% \end{macrocode}
%
% To ease writing to the speech index stream, we define a |\spelidxwrite|
@@ -1774,7 +1773,29 @@
\AddBabelHook{informspel}{write}{\spel@idxwrite{language}{\languagename}}
\EnableBabelHook{informspel}
% \end{macrocode}
-%
+%
+% \subsection{Setting up the visibility}
+%
+% \begin{macrocode}
+\ExplSyntaxOn
+\definecolor{faintgray}{rgb}{0.9,0.9,0.9}
+\str_if_eq:VnTF{\spel@markervisibility}{none}{
+ \colorlet{spel@color@right}{white}
+ \colorlet{spel@color@left}{white}
+}{}
+\str_if_eq:VnTF{\spel@markervisibility}{onlygroups}{
+ \colorlet{spel@color@right}{black!25}
+ \colorlet{spel@color@left}{white}
+}{}
+\str_if_eq:VnTF{\spel@markervisibility}{full}{
+ \colorlet{spel@color@right}{black!25}
+ \colorlet{spel@color@left}{black!25}
+}{}
+\ExplSyntaxOff
+% \end{macrocode}
+%
+%
+%
% \subsection{Generating speech chunks --- implicitly}
% \subsubsection{Auxiliary macros}
% We define a macro to generate wrappers for single-line text elements.
@@ -1789,7 +1810,7 @@
\expandafter\let\csname spel@@#1\expandafter\endcsname\csname #1\endcsname
\expandafter\gdef\csname #1\endcsname##1{%
\spel@chunkwrite{#1}{##1}
- \csname spel@@#1\endcsname{\href{run:\audiodir/#1.\spel@format}{##1}}
+ \csname spel@@#1\endcsname{\href{\linksdir/#1.\spel@format}{##1}}
}
\expandafter\AtBeginDocument{
\spel@idxwrite{#1}{#1}
@@ -1846,7 +1867,7 @@
\let\spel@@part\@part
\def\@part[#1]#2{%
\setcounter{spel@chunk}{0}% need this because counter resetting fails
- \spel@@part[#1]{\href{run:\audiodir/\spel@@optpart.\spel@format}{#2}}%
+ \spel@@part[#1]{\href{\linksdir/\spel@@optpart.\spel@format}{#2}}%
\spel@idxwrite{part \thepart}{\spel@@optpart}%
\spel@chunkwrite{\spel@@optpart}{#2}%
}
@@ -1863,7 +1884,7 @@
\stepcounter{spel@spart}%
\setcounter{spel@chunk}{0}% need this because counter resetting fails
\spel@@spart{%
- \href{run:\audiodir/\spel@@optpart star-\thespel@spart.\spel@format}{#1}}%
+ \href{\linksdir/\spel@@optpart star-\thespel@spart.\spel@format}{#1}}%
\spel@idxwrite{part}{\spel@@optpart star-\thespel@spart}%
\spel@chunkwrite{\spel@@optpart star-\thespel@spart}{#1}%
}
@@ -1881,7 +1902,7 @@
\def\@chapter[#1]#2{%
\setcounter{spel@chunk}{0}% need this because counter resetting fails
\spel@@chapter[#1]{%
- \href{run:\audiodir/\spel@@optpart\thechapter.\spel@format}{#2}}%
+ \href{\linksdir/\spel@@optpart\thechapter.\spel@format}{#2}}%
\spel@idxwrite{chapter \thechapter}{\spel@@optpart\thechapter}%
\spel@chunkwrite{\spel@@optpart\thechapter}{#2}%
}
@@ -1901,7 +1922,7 @@
\stepcounter{spel@schapter}%
\setcounter{spel@chunk}{0}% need this because counter resetting fails
\spel@@schapter{%
- \href{run:\audiodir/\spel@@optpart star-\thespel@schapter.\spel@format}{#1}}%
+ \href{\linksdir/\spel@@optpart star-\thespel@schapter.\spel@format}{#1}}%
\spel@idxwrite{chapter}{\spel@@optpart star-\thespel@schapter}%
\spel@chunkwrite{\spel@@optpart star-\thespel@schapter}{#1}%
}
@@ -1922,8 +1943,8 @@
\fi%
\setcounter{spel@chunk}{0}% need this because counter resetting fails
\spel@@sect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{%
- \href{run:\audiodir/\spel@@optpart\thesubparagraph.\spel@format}{#8}\hfill%
- \href{run:\audiodir/\spel@@optpart\thesubparagraph.m3u}{\textcolor{black!25}{$\triangleright$}}}%
+ \href{\linksdir/\spel@@optpart\thesubparagraph.\spel@format}{#8}\hfill%
+ \href{\linksdir/\spel@@optpart\thesubparagraph.m3u}{\textcolor{spel@color@right}{$\triangleright$}}}%
\def\spel@@label{\ifnum #2>\c@secnumdepth\else#1 \csname the#1\endcsname\fi}
\spel@idxwrite{\spel@@label}{\spel@@optpart\thesubparagraph}%
\spel@chunkwrite{\spel@@optpart\thesubparagraph}{#8}%
@@ -1941,7 +1962,7 @@
\stepcounter{spel@ssect}%
%\setcounter{spel@chunk}{0}% need this because counter resetting fails
\spel@@ssect{#1}{#2}{#3}{#4}{%
- \href{run:\audiodir/\spel@@optpart\thesubparagraph-star-\thespel@ssect.\spel@format}%
+ \href{\linksdir/\spel@@optpart\thesubparagraph-star-\thespel@ssect.\spel@format}%
{#5}}%
\spel@idxwrite{section}{\spel@@optpart\thesubparagraph-star-\thespel@ssect}%
\spel@chunkwrite{\spel@@optpart\thesubparagraph-star-\thespel@ssect}{#5}%
@@ -1963,7 +1984,7 @@
\stepcounter{spel@footnote}%
\settowidth\spel@mptboxwidth{\usebox\spel@mptbox}%
\spel@@fntext{%
- \hspace*{-\spel@mptboxwidth}\href{run:\audiodir/footnote-\thespel@footnote.\spel@format}{\usebox\spel@mptbox}#1}%
+ \hspace*{-\spel@mptboxwidth}\href{\linksdir/footnote-\thespel@footnote.\spel@format}{\usebox\spel@mptbox}#1}%
\spel@idxwrite{footnote}{footnote-\thespel@footnote}%
\spel@chunkwrite{footnote-\thespel@footnote}{#1}%
}
@@ -2004,7 +2025,7 @@
\settowidth\spel@mptboxwidth{\usebox\spel@mptbox}%
\spel@idxwrite{item}{\spel@@optpart\thesubparagraph-\thespel@chunk}%
\spel@chunkwrite{\spel@@optpart\thesubparagraph-\thespel@chunk}{#1}%
- \item \hspace*{-\spel@mptboxwidth}\href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\usebox\spel@mptbox}#1}
+ \item \hspace*{-\spel@mptboxwidth}\href{\linksdir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\usebox\spel@mptbox}#1}
% \end{macrocode}
% \end{macro}
%
@@ -2017,7 +2038,7 @@
\settowidth\spel@mptboxwidth{\usebox\spel@mptbox}%
\spel@idxwrite{item}{\spel@@optpart\thesubparagraph-\thespel@chunk}%
\spel@chunkwrite{\spel@@optpart\thesubparagraph-\thespel@chunk}{#1 . #2}%
-\item[#1] \hspace*{-\spel@mptboxwidth}\href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\usebox\spel@mptbox}#2}
+\item[#1] \hspace*{-\spel@mptboxwidth}\href{\linksdir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\usebox\spel@mptbox}#2}
% \end{macrocode}
% \end{macro}
%
@@ -2031,7 +2052,7 @@
\stepcounter{spel@chunk}%
\spel@idxwrite{caption}{\spel@@optpart\thesubparagraph-\thespel@chunk}%
\spel@chunkwrite{\spel@@optpart\thesubparagraph-\thespel@chunk}{#2}%
- \spel@@caption[#1]{\protect\href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{#2}}
+ \spel@@caption[#1]{\protect\href{\linksdir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{#2}}
}
\fi
% \end{macrocode}
@@ -2046,7 +2067,7 @@
% \begin{macrocode}
\newlength\spel@mptboxwidth
\newsavebox\spel@mptbox
-\savebox\spel@mptbox{\textcolor{black!25}{$\qquad$}}
+\savebox\spel@mptbox{\textcolor{spel@color@left}{\quad\strut\tiny\raisebox{0.4ex}{$\triangleright$}\,}}
\newif\ifspel@chunkarealink
\define@key{spelchunk}{arealink}[]{\spel@chunkarealinktrue}
\ifspel@disabled\def\spelchunk{}\else
@@ -2061,10 +2082,10 @@
\end{VerbatimOut}%
\catcode`\^^M=5\relax%
\ifspel@chunkarealink%
- \href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\input{./\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk}}%
+ \href{\linksdir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\input{./\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk}}%
\else%
\settowidth\spel@mptboxwidth{\usebox\spel@mptbox}%
- \hspace*{-\spel@mptboxwidth}\href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\usebox\spel@mptbox}\input{./\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk}%
+ \hspace*{-\spel@mptboxwidth}\href{\linksdir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\usebox\spel@mptbox}\input{./\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk}%
\fi%
\spel@chunkarealinkfalse%
}%
@@ -2092,6 +2113,47 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macrocode}
+\ExplSyntaxOn
+\NewDocumentCommand{\spelchunkatom}{O{}m}{
+ \stepcounter{spel@chunk}%
+ \spel@idxwrite{chunk}{\spel@@optpart\thesubparagraph-\thespel@chunk}%
+ \setkeys{spelchunk}{#1}
+ \scantokens{
+ \makeatletter
+ \begin{spelverbatimwrite}{\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk.tex}
+ #2
+ \end{spelverbatimwrite}
+ \makeatother
+ }
+ \ifspel@chunkarealink%
+ \href{\linksdir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\input{./\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk}}%
+ \else%
+ \settowidth\spel@mptboxwidth{\usebox\spel@mptbox}%
+ \hspace*{-\spel@mptboxwidth}\href{\linksdir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\usebox\spel@mptbox}\input{./\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk}%
+ \fi%
+ \spel@chunkarealinkfalse%
+}
+
+\def\spelverbatimwrite#1{%
+ \@bsphack
+ \openoutputfile{#1}{chunk}%
+ \def\verbatim@processline{\addtostream{chunk}{\the\verbatim@line}}%
+ \let\do\@makeother\dospecials
+ \catcode`\^^M\active \catcode`\^^I=12
+ \verbatim@start}%
+\def\endspelverbatimwrite{%
+ \closeoutputstream{chunk}%
+ \@esphack%
+}
+\ifspel@disabled
+ \newcommand\<<<[2][]{#2}
+\else
+ \def\<<<{\spelchunkatom}
+\fi
+\ExplSyntaxOff
+% \end{macrocode}
+%
% \subsubsection{Explicit spelchunks}
%
% \begin{environment}{spelchunkad}
@@ -2117,6 +2179,7 @@
% \subsection{Helping the wizard to read our chunks}
%
% \subsubsection{Listing macros that are to be preprocessed}
+% \begin{macro}{\spelmacpp}
% Some \LaTeX{} or \TeX commands are only for layout purposes and are
% totally not content related. They do not contribute to what must be
% read. On the contrary, they make it hard for the \spelpl{} parser to
@@ -2130,7 +2193,6 @@
% oriented, it makes sense to provide a macro that registers them as
% pure type-setting macros and use that macro to cover the examples
% mentioned above.
-% \begin{macro}{\spelmacpp}
% \begin{macrocode}
\ExplSyntaxOn
\NewDocumentCommand{\spelmacpp}{moom}
@@ -2163,6 +2225,8 @@
\spelmacpp{textit}[1]{keep}
\spelmacpp{texttt}[1]{keep}
\spelmacpp{textbf}[1]{keep}
+\spelmacpp{mathbb}[1]{keep}
+\spelmacpp{mathcal}[1]{keep}
\spelmacpp{quad}{}
\spelmacpp{qquad}{}
\spelmacpp{displaystyle}{}
@@ -2179,6 +2243,7 @@
% \end{macrocode}
%
% \subsubsection{Listing environments that are to be ignored}
+% \begin{macro}{\spelenvpp}
% Some \LaTeX{} or \TeX environments are only for layout purposes and are
% totally not content related. They do not contribute to what must be
% read. On the contrary, they make it hard for the \spelpl{} parser to
@@ -2191,7 +2256,6 @@
% oriented, it makes sense to provide a macro that registers them as
% pure type-setting macros and use that macro to cover the examples
% mentioned above.
-% \begin{macro}{\spelenvpp}
% \begin{macrocode}
\ExplSyntaxOn
\NewDocumentCommand{\spelenvpp}{moom}
@@ -2240,7 +2304,6 @@
% ignored:
% \begin{macrocode}
\spelmacad{spelatex}{spee-lay-tech}
-\spelmacad{spelbox}{spel-box}
\spelmacad{spelpl}{spel wizzard dot pl}
\spelmacad{LaTeX}{lay-tech}
\spelmacad{TeX}{tech}
@@ -2335,7 +2398,7 @@
%
% \section{TODO}
% \begin{spelchunk}[arealink]
-% As long as there are things on my todo list, We have a reason to
+% As long as there are things on our todo list, we have a reason to
% live.
% \end{spelchunk}
% \begin{itemize}
@@ -2374,22 +2437,6 @@
% \newblock \url{https://www.winehq.org}
% \newblock online, accessed in June 2024.
%
-% \bibitem{ORGMODE}
-% Org Mode --- your life in plain text.
-% \newblock \url{https://orgmode.org/}.
-% \newblock online, accessed in May 2024.
-%
-% \bibitem{EMACS}
-% The Emacs An extensible, customizable, free text editor --- and
-% more.
-% \newblock \url{https://www.gnu.org/software/emacs/}.
-% \newblock online, accessed in May 2024.
-%
-% \bibitem{OXSPELATEX}
-% Org Mode SpeLaTeX Exporter --- SpeLaTeX made easy.
-% \newblock \url{https://www.melpa.org/#/ox-spelatex}
-% \newblock (not yet online)
-%
% \bibitem{SPEL}
% SpeL --- Speech-enabled \LaTeX.
% \newblock \url{https://ctan.org/pkg/spel}
@@ -2445,11 +2492,6 @@
% \newblock \url{https://okular.kde.org}.
% \newblock online, accessed in May 2024.
%
-% \bibitem{PDFXCHANGE}
-% PDF XChange Viewer, a PDF reader from Tracker Software.
-% \newblock \url{https://www.pdf-xchange.com/}
-% \newblock online, accessed in May 2024.
-%
% \end{thebibliography}
%
% \Finale
diff --git a/macros/latex/contrib/spelatex/spelatex.pdf b/macros/latex/contrib/spelatex/spelatex.pdf
index d68cae1950..498de5901e 100644
--- a/macros/latex/contrib/spelatex/spelatex.pdf
+++ b/macros/latex/contrib/spelatex/spelatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/suanpan-l3/README.md b/macros/latex/contrib/suanpan-l3/README.md
new file mode 100644
index 0000000000..6a1df4e510
--- /dev/null
+++ b/macros/latex/contrib/suanpan-l3/README.md
@@ -0,0 +1,58 @@
+The traditional Chinese 7-bids suanpan(abacus) package based on l3draw
+=======
+
+The `suanpan-l3` package is a traditional Chinese 7-bids abacus drawing package that utilizes l3draw and TikZ and is developed with Expl3. It can effectively manage both upper and lower bids, while also considering bottom bid, top bid, and hanging bid.
+
+The `suanpan-l3` package offers a unique environment for drawing abacuses, denoted as `suanpan`. Within this environment, 8 specialized macros are available for the creation of abacuses. The `\rod` macro is used to lay out a single rod, while the `\rod*` macro draws a counting point on this rod's beam. The `\rods` macro is capable of laying out a set of rods. The `\bid` macro colors the specified bid. The `\bids` macro colors all inner bids that are near the beam, while the `\bids*` macro colors all outer bids that are far from the beam. The `\rodmark` mark the rod on beam. Lastly, the `\mkfame` macro is used to lay out the frame of an abacus.
+
+At the same time, the `suanpan-l3` package offers customization options for abacus, including line width, draw color, fill color, bid space, rod space, etc. These can be configured through package options, `suanpan` environment options, or `\suanpanset` macro.
+
+For further details and examples, please refer to the manual(in Chinese/English).
+
+Contributing
+------------
+
+1. gitee repository:
+ (1). repository: [suanpan](https://gitee.com/nwafu_nan/suan-pan)
+ (2). Issues and PR: [issue](https://gitee.com/nwafu_nan/suan-pan/issues) or [pull request](https://gitee.com/nwafu_nan/suan-pan/pulls).
+
+基于l3draw的中国传统7珠算盘LaTeX排版宏包
+=======
+
+`suanpan-l3`是一个基于l3draw和TikZ绘图宏包,用Expl3开发的中国传统7珠圆珠算盘排版宏包,它能够实现普通上珠、下珠和使用底珠、顶珠和悬珠的算盘排版。
+
+`suanpan-l3`宏包提供了唯一的一个`suanpan`排版环境用于绘制需要排版的算盘,在该环境中使用专用命令`\rod`排版一个档位,`\rod*`命令排版带计位点的档位,`\rods`命令排版一组档位,`\bid`命令为指定的算珠进行着色,`\bids`命令为指定档位的内珠进行着色,`\bids*`命令为指定的档位的外珠进行着色,`\rodmark`命令用于为档位横梁添加标记,`\mkframe`命令排版算盘边框。
+
+同时,`suanpan-l3`宏包还为算盘排版提供线宽、颜色、间距等**外观**设置选项,可以通过宏包选项、环境选项对其进行设置,也可以通过`\suanpanset`命令实现外观属性设置。
+
+可以通过阅读宏包手册以了解该宏包更多的使用细节和使用样例。
+
+## 参与贡献
+---------------------
+
+1. gitee仓库:
+ (1). 仓库地址: [suanpan](https://gitee.com/nwafu_nan/suan-pan)
+ (2). Issues and PR: [issue](https://gitee.com/nwafu_nan/suan-pan/issues) or [pull request](https://gitee.com/nwafu_nan/suan-pan/pulls).
+
+Copyright and Licence
+---------------------
+
+ Copyright (C) 2020-2024 by Nan Geng <nangeng@nwafu.edu.cn>
+ ----------------------------------------------------------------------
+
+ This work may be distributed and/or modified under the
+ conditions of the LaTeX Project Public License, either
+ version 1.3c of this license or (at your option) any later
+ version. This version of this license is in
+ http://www.latex-project.org/lppl/lppl-1-3c.txt
+ and the latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+ and version 1.3 or later is part of all distributions of
+ LaTeX version 2005/12/01 or later.
+
+ This work has the LPPL maintenance status "maintained".
+
+ The Current Maintainer of this work is Nan Geng.
+
+ This package consists of suanpan-l3.sty, suanpan-l3.tex and README.md(this file),
+ and the derived files suanpan-l3.pdf with build.sh.
diff --git a/macros/latex/contrib/suanpan-l3/build.sh b/macros/latex/contrib/suanpan-l3/build.sh
new file mode 100755
index 0000000000..6747532dcd
--- /dev/null
+++ b/macros/latex/contrib/suanpan-l3/build.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+xelatex suanpan-l3.tex &&\
+makeindex -s gind.ist -o suanpan-l3.ind suanpan-l3.idx &&\
+makeindex -s gglo.ist -o suanpan-l3.gls suanpan-l3.glo &&\
+xelatex suanpan-l3.tex &&\
+xelatex suanpan-l3.tex &&\
+xelatex suanpan-l3.tex
diff --git a/macros/latex/contrib/suanpan-l3/suanpan-l3.pdf b/macros/latex/contrib/suanpan-l3/suanpan-l3.pdf
new file mode 100644
index 0000000000..f47e8edc2f
--- /dev/null
+++ b/macros/latex/contrib/suanpan-l3/suanpan-l3.pdf
Binary files differ
diff --git a/macros/latex/contrib/suanpan-l3/suanpan-l3.sty b/macros/latex/contrib/suanpan-l3/suanpan-l3.sty
new file mode 100644
index 0000000000..ac30c79d74
--- /dev/null
+++ b/macros/latex/contrib/suanpan-l3/suanpan-l3.sty
@@ -0,0 +1,1401 @@
+%%% ----------------------------------------------------------------------------
+%%% suanpan: draw suanpan(abacus) with LaTeX3
+%%% Author : Nan Geng <nangeng@nwafu.edu.cn>
+%%% Repository: https://gitee.com/nwafu_nan/suan-span
+%%% License : The LaTeX Project Public License 1.3c
+%%% ----------------------------------------------------------------------------
+
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\RequirePackage{expl3}
+% \ProvidesExplPackage{suanpan}{2024-08-20}{v1.0.0} % 初稿
+% \ProvidesExplPackage{suanpan}{2024-08-28}{v1.1.0} % 优化(统一尺寸计算,添加空白占位)
+% \ProvidesExplPackage{suanpan-l3}{2024-08-30}{v1.1.1} % 更名为suanpan-l3
+% \ProvidesExplPackage{suanpan-l3}{2024-08-31}{v1.1.2} % 添加empty不绘制空档选项
+% \ProvidesExplPackage{suanpan-l3}{2024-09-01}{v1.1.3} % 添加bid批处理及绘制颜色选项
+% % 将算珠与档杆绘制改为TikZ
+% \ProvidesExplPackage{suanpan-l3}{2024-09-04}{v1.2.0} % 添加\lab横梁文字标记命令
+% \ProvidesExplPackage{suanpan-l3}{2024-09-05}{v1.2.1} % 将草稿模式所有算珠改为圆冒
+% % 直线并取消所有高光特效
+\ProvidesExplPackage{suanpan-l3}{2024-09-07}{v1.2.2} % 为珠高、珠宽、档杆宽度和
+ % 边框宽度添加设置选项
+ {draw suanpan(abacus) with LaTeX3}
+
+\RequirePackage{l3keys2e}
+\RequirePackage{xparse}
+\RequirePackage{l3draw}
+
+\RequirePackage {tikz}
+
+\cs_new:Npn \__suanpan_error:n { \msg_error:nn { suanpan(abacus) } }
+
+% 盒子容器总高度计算函数
+\cs_new_nopar:Npn \__suanpan_coffin_ht_plus_dp:N #1
+ {
+ \coffin_ht:N #1 + \coffin_dp:N #1
+ }
+
+% =============颜色处理函数=============
+% 填充色辅助函数
+\cs_new_nopar:Nn \__suanpan_aux_color_boxfill:
+ { }
+
+% 颜色命名函数
+% #1 颜色名称
+% #2 颜色表达式
+\cs_set_nopar:Npn \__suanpan_color_select:nn #1#2
+ {
+ \colorlet { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \__suanpan_color_select:nn {nx}
+
+% 颜色命名函数
+% #1 颜色名称
+% #2 颜色空间
+% #3 颜色分量值
+\cs_set_nopar:Npn \__suanpan_color_select:nnn #1#2#3
+ {
+ \definecolor { #1 } { #2 } { #3 }
+ }
+\cs_generate_variant:Nn \__suanpan_color_select:nnn {nnx}
+
+% 定义变量
+% 算盘基础尺寸
+\dim_new:N \l__suanpan_bid_h_dim
+\dim_new:N \l__suanpan_bid_d_dim
+\dim_new:N \l__suanpan_rod_d_dim
+\dim_new:N \l__suanpan_frame_b_dim
+\dim_new:N \l__suanpan_bid_sep_dim
+\dim_new:N \l__suanpan_rod_sep_dim
+
+% 算盘基础尺寸初值(参考 QBT1747-1993 算盘标准)
+\dim_set:Nn \l__suanpan_bid_h_dim { 12mm }
+\dim_set:Nn \l__suanpan_bid_d_dim { 23mm }
+\dim_set:Nn \l__suanpan_rod_d_dim { 7mm }
+\dim_set:Nn \l__suanpan_frame_b_dim { 13mm }
+\dim_set:Nn \l__suanpan_bid_sep_dim { 1.8pt }
+\dim_set:Nn \l__suanpan_rod_sep_dim { 3.0pt }
+
+% 半长度
+\dim_new:N \l__suanpan_bid_h_half_dim
+\dim_new:N \l__suanpan_bid_d_half_dim
+\dim_new:N \l__suanpan_rod_d_half_dim
+\dim_new:N \l__suanpan_frame_b_half_dim
+
+% 上珠偏移
+\dim_new:N \l__suanpan_bid_upper_offset_dim
+% 下珠偏移
+\dim_new:N \l__suanpan_bid_lower_offset_dim
+% 上档杆长度
+\dim_new:N \l__suanpan_rod_upper_h_dim
+% 下档杆长度
+\dim_new:N \l__suanpan_rod_lower_h_dim
+% 上档杆偏移
+\dim_new:N \l__suanpan_rod_upper_offset_dim
+% 下档杆偏移
+\dim_new:N \l__suanpan_rod_lower_offset_dim
+% 上档杆位置
+\dim_new:N \l__suanpan_rod_upper_dim
+% 下档杆位置
+\dim_new:N \l__suanpan_rod_lower_dim
+% 上边框内线偏移
+\dim_new:N \l__suanpan_frame_upper_inner_offset_dim
+% 下边框内线偏移
+\dim_new:N \l__suanpan_frame_lower_inner_offset_dim
+% 上边框外线偏移
+\dim_new:N \l__suanpan_frame_upper_outer_offset_dim
+% 下边框外线偏移
+\dim_new:N \l__suanpan_frame_lower_outer_offset_dim
+% 算珠上边缘
+\dim_new:N \l__suanpan_bid_upper_dim
+% 算珠下边缘
+\dim_new:N \l__suanpan_bid_lower_dim
+% 算珠绘制高度
+\dim_new:N \l__suanpan_bid_draw_h_dim
+% 算珠绘制半高度
+\dim_new:N \l__suanpan_bid_draw_h_half_dim
+% 算珠圆角半径
+\dim_new:N \l__suanpan_bid_arc_dim
+% 横梁计位点半径
+\dim_new:N \l__suanpan_frame_unit_r_dim
+% 边框外线半宽度
+\dim_new:N \l__suanpan_frame_outer_half_dim
+% 档杆总成宽度
+\dim_new:N \l__suanpan_support_d_dim
+% 档杆总成半宽度
+\dim_new:N \l__suanpan_support_d_half_dim
+% 档杆总成组装垂直偏移
+\dim_new:N \l__suanpan_support_y_offset_dim
+
+% 上边框内线位置
+\dim_new:N \l__suanpan_frame_inner_upper_dim
+% 下边框内线位置
+\dim_new:N \l__suanpan_frame_inner_lower_dim
+
+% 边框内线高度
+\dim_new:N \l__suanpan_frame_inner_h_dim
+% 边框外线高度
+\dim_new:N \l__suanpan_frame_outer_h_dim
+
+\dim_new:N \l__suanpan_frame_inner_linewidth_dim
+\dim_new:N \l__suanpan_frame_outer_linewidth_dim
+\dim_new:N \l__suanpan_rod_linewidth_dim
+\dim_new:N \l__suanpan_bid_linewidth_dim
+
+% 状态变量
+\bool_new:N \l__suanpan_support_frame_bool
+\bool_set_true:N \l__suanpan_support_frame_bool
+\bool_new:N \l__suanpan_support_unit_bool
+\bool_set_false:N \l__suanpan_support_unit_bool
+\bool_new:N \l__suanpan_draft_bool
+\bool_new:N \l__suanpan_empty_rod_bool
+
+% 容器(盒子)
+\coffin_new:N \l__suanpan_inner_bid_coffin
+\coffin_new:N \l__suanpan_outer_bid_coffin
+\coffin_new:N \l__suanpan_float_bid_coffin
+\coffin_new:N \l__suanpan_support_coffin
+\coffin_new:N \l_tmpc_coffin
+\coffin_new:N \l_tmpd_coffin
+
+% 凭据表(Token)
+\tl_new:N \l__suanpan_bid_draw_color_tl
+\tl_new:N \l__suanpan_bid_fill_color_tl
+\tl_new:N \l__suanpan_scale_tl
+\tl_new:N \l__suanpan_mark_font_tl
+
+% 档位最大值
+\int_new:N \l__suanpan_rod_max_int
+\int_zero:N \l__suanpan_rod_max_int
+
+% 档位算珠位置列表
+\clist_new:N \l__suanpan_bids_pos_clist
+
+% 档位数字与算珠位置对照属性表常量(内珠和外珠)
+% {x, y}==>x: 算珠位置(1-11, 1-7---下珠,8-10---上珠,11---悬珠)
+% y: 算珠类型(0---外珠,1---内珠)
+\prop_const_from_keyval:Nn \l__suanpan_rods_val_prop
+ {
+ 0 = {{1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {9, 0}, {10, 0}},
+ 1 = {{1, 0}, {2, 0}, {3, 0}, {4, 0}, {7, 1}, {9, 0}, {10, 0}},
+ 2 = {{1, 0}, {2, 0}, {3, 0}, {6, 1}, {7, 1}, {9, 0}, {10, 0}},
+ 3 = {{1, 0}, {2, 0}, {5, 1}, {6, 1}, {7, 1}, {9, 0}, {10, 0}},
+ 4 = {{1, 0}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {9, 0}, {10, 0}},
+ 5 = {{1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {8, 1}, {10, 0}},
+ 6 = {{1, 0}, {2, 0}, {3, 0}, {4, 0}, {7, 1}, {8, 1}, {10, 0}},
+ 7 = {{1, 0}, {2, 0}, {3, 0}, {6, 1}, {7, 1}, {8, 1}, {10, 0}},
+ 8 = {{1, 0}, {2, 0}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {10, 0}},
+ 9 = {{1, 0}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {10, 0}},
+ 10 = {{3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {10, 0}},
+ 11 = {{1, 0}, {2, 0}, {3, 0}, {4, 0}, {7, 1}, {8, 1}, {9 , 1}},
+ 12 = {{1, 0}, {2, 0}, {3, 0}, {6, 1}, {7, 1}, {8, 1}, {9 , 1}},
+ 13 = {{1, 0}, {2, 0}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9 , 1}},
+ 14 = {{1, 0}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9 , 1}},
+ 15 = {{3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9 , 1}},
+ 16 = {{1, 0}, {2, 0}, {3, 0}, {4, 0}, {7, 1}, {8, 1}, {11, 1}},
+ 17 = {{1, 0}, {2, 0}, {3, 0}, {6, 1}, {7, 1}, {8, 1}, {11, 1}},
+ 18 = {{1, 0}, {2, 0}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {11, 1}},
+ 19 = {{1, 0}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {11, 1}},
+ 20 = {{3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {11, 1}}
+ }
+
+% 尺寸计算函数
+\cs_new:Nn \__suanpan_dim_calc:
+ {
+ % 基础尺寸半长度
+ \dim_set:Nn \l__suanpan_bid_h_half_dim { \l__suanpan_bid_h_dim / 2 }
+ \dim_set:Nn \l__suanpan_bid_d_half_dim { \l__suanpan_bid_d_dim / 2 }
+ \dim_set:Nn \l__suanpan_rod_d_half_dim { \l__suanpan_rod_d_dim / 2 }
+ \dim_set:Nn \l__suanpan_frame_b_half_dim { \l__suanpan_frame_b_dim / 2 }
+ % 上珠偏移(8号算珠)
+ \dim_set:Nn \l__suanpan_bid_upper_offset_dim
+ { \l__suanpan_frame_b_half_dim + \l__suanpan_bid_h_half_dim }
+ % 下珠偏移(1号算珠)
+ \dim_set:Nn \l__suanpan_bid_lower_offset_dim
+ { -\l__suanpan_frame_b_half_dim - \l__suanpan_bid_h_dim * 7 +
+ \l__suanpan_bid_h_half_dim }
+ % 上档杆长度
+ \dim_set:Nn \l__suanpan_rod_upper_h_dim { \l__suanpan_bid_h_dim * 3 }
+ % 下档杆长度
+ \dim_set:Nn \l__suanpan_rod_lower_h_dim { \l__suanpan_bid_h_dim * 7 }
+ % 上档杆偏移
+ \dim_set:Nn \l__suanpan_rod_upper_offset_dim { \l__suanpan_frame_b_half_dim }
+ % 下档杆偏移
+ \dim_set:Nn \l__suanpan_rod_lower_offset_dim
+ { -\l__suanpan_frame_b_half_dim - \l__suanpan_rod_lower_h_dim }
+ % 上档杆位置
+ \dim_set:Nn \l__suanpan_rod_upper_dim
+ { \l__suanpan_rod_upper_offset_dim + \l__suanpan_rod_upper_h_dim }
+ % 下档杆位置
+ \dim_set:Nn \l__suanpan_rod_lower_dim { -\l__suanpan_frame_b_half_dim }
+
+ % 上边框内线偏移
+ \dim_set:Nn \l__suanpan_frame_upper_inner_offset_dim
+ { \l__suanpan_frame_b_half_dim + \l__suanpan_rod_upper_h_dim }
+ % 下边框内线偏移
+ \dim_set:Nn \l__suanpan_frame_lower_inner_offset_dim
+ { -\l__suanpan_frame_b_half_dim - \l__suanpan_rod_lower_h_dim }
+ % 上边框外线偏移
+ \dim_set:Nn \l__suanpan_frame_upper_outer_offset_dim
+ { \l__suanpan_frame_b_dim + \l__suanpan_frame_b_half_dim +
+ \l__suanpan_rod_upper_h_dim }
+ % 下边框外线偏移
+ \dim_set:Nn \l__suanpan_frame_lower_outer_offset_dim
+ { -\l__suanpan_frame_b_dim - \l__suanpan_frame_b_half_dim -
+ \l__suanpan_rod_lower_h_dim }
+
+ % 算珠上边缘
+ \dim_set:Nn \l__suanpan_bid_upper_dim
+ { \l__suanpan_bid_h_half_dim - \l__suanpan_bid_sep_dim / 2 }
+ % 算珠上边缘
+ \dim_set:Nn \l__suanpan_bid_lower_dim
+ { -\l__suanpan_bid_h_half_dim + \l__suanpan_bid_sep_dim / 2 }
+ % 算珠绘制高度
+ \dim_set:Nn \l__suanpan_bid_draw_h_dim
+ { \l__suanpan_bid_upper_dim - \l__suanpan_bid_lower_dim }
+ % 算珠绘制半高度
+ \dim_set:Nn \l__suanpan_bid_draw_h_half_dim
+ { \l__suanpan_bid_draw_h_dim / 2 }
+ % 算珠圆角半径
+ \dim_set:Nn \l__suanpan_bid_arc_dim
+ { \l__suanpan_bid_draw_h_half_dim - 1pt}
+
+ % 横梁计位点半径
+ \dim_set:Nn \l__suanpan_frame_unit_r_dim { \l__suanpan_frame_b_dim / 4 }
+
+ % 边框外线半宽度
+ \dim_set:Nn \l__suanpan_frame_outer_half_dim
+ { \l__suanpan_frame_outer_linewidth_dim / 2 }
+
+ % 档杆总成宽度
+ \dim_set:Nn \l__suanpan_support_d_dim
+ { \l__suanpan_bid_d_dim + \l__suanpan_rod_sep_dim }
+ % 档杆总成半宽度
+ \dim_set:Nn \l__suanpan_support_d_half_dim
+ { \l__suanpan_bid_d_half_dim + \l__suanpan_rod_sep_dim / 2 }
+
+ % 档杆总成组装垂直偏移
+ \dim_set:Nn \l__suanpan_support_y_offset_dim
+ { ( \l__suanpan_frame_upper_outer_offset_dim -
+ \l__suanpan_frame_lower_outer_offset_dim +
+ \l__suanpan_frame_outer_linewidth_dim ) / 2 -
+ \l__suanpan_frame_upper_outer_offset_dim -
+ \l__suanpan_frame_outer_half_dim
+ }
+
+ % 上边框内线位置
+ \dim_set:Nn \l__suanpan_frame_inner_upper_dim
+ { \l__suanpan_frame_upper_inner_offset_dim +
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+ % 下边框内线位置
+ \dim_set:Nn \l__suanpan_frame_inner_lower_dim
+ { \l__suanpan_frame_lower_inner_offset_dim -
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+
+ % 边框内线高度
+ \dim_set:Nn \l__suanpan_frame_inner_h_dim
+ { \l__suanpan_rod_upper_h_dim +
+ \l__suanpan_rod_lower_h_dim +
+ \l__suanpan_frame_b_dim }
+ % 边框外线高度
+ \dim_set:Nn \l__suanpan_frame_outer_h_dim
+ { \l__suanpan_rod_upper_h_dim +
+ \l__suanpan_rod_lower_h_dim +
+ \l__suanpan_frame_b_dim * 3 }
+ }
+
+% 选项处理
+% ============宏包选项=================
+\keys_define:nn { suanpan }
+ {
+ % 草稿模式
+ draft .choice:,
+ draft / true .code:n = {%
+ \bool_set_true:N \l__suanpan_draft_bool
+ \bool_set_false:N \l__suanpan_empty_rod_bool
+ },
+ draft / false .code:n = {%
+ \bool_set_false:N \l__suanpan_draft_bool
+ \bool_set_true:N \l__suanpan_empty_rod_bool
+ },
+ draft .default:n = true,
+ draft .initial:n = false,
+
+ % 是否绘制档的数值为0的空档算珠
+ empty .choice:,
+ empty / true .code:n = { \bool_set_true:N \l__suanpan_empty_rod_bool },
+ empty / false .code:n = { \bool_set_false:N \l__suanpan_empty_rod_bool },
+ empty .default:n = true,
+ empty .initial:n = true,
+
+ unknown .code:n = { \msg_error:nn { suanpan } { unknown-option } }
+ }
+
+% key_value选项设计
+\keys_define:nn { suanpan }
+ {
+ % 绘图线宽
+ linewd .code:n = { % 算盘边框内线线宽
+ \dim_set:Nn \l__suanpan_frame_inner_linewidth_dim {#1}
+ % 算盘边框外线线宽
+ \dim_set:Nn \l__suanpan_frame_outer_linewidth_dim
+ {
+ \fp_to_dim:n
+ {
+ \fp_eval:n {%
+ \l__suanpan_frame_inner_linewidth_dim * 7.0 }
+ }
+ }
+ % 档杆线宽
+ \dim_set:Nn \l__suanpan_rod_linewidth_dim
+ {
+ \fp_to_dim:n
+ {
+ \fp_eval:n {%
+ \l__suanpan_frame_inner_linewidth_dim * 0.2 }
+ }
+ }
+ % 算珠线宽
+ \dim_set:Nn \l__suanpan_bid_linewidth_dim
+ {
+ \fp_to_dim:n
+ {
+ \fp_eval:n {%
+ \l__suanpan_frame_inner_linewidth_dim * 0.2 }
+ }
+ }
+ % 计算其它尺寸
+ \__suanpan_dim_calc:
+ },
+ linewd .initial:n = 2.0pt,
+
+ % 算珠高度
+ bidh .code:n = {%
+ \dim_set:Nn \l__suanpan_bid_h_dim { #1 }
+ % 计算其它尺寸
+ \__suanpan_dim_calc:
+ },
+ bidh .initial:n = 12mm,
+
+ % 算珠直径
+ bidd .code:n = {%
+ \dim_set:Nn \l__suanpan_bid_d_dim { #1 }
+ % 计算其它尺寸
+ \__suanpan_dim_calc:
+ },
+ bidd .initial:n = 23mm,
+
+ % 档杆直径(应小于算珠直径bidd)
+ rodd .code:n = {%
+ \dim_set:Nn \l__suanpan_rod_d_dim { #1 }
+ % 计算其它尺寸
+ \__suanpan_dim_calc:
+ },
+ rodd .initial:n = 7mm,
+
+ % 边框宽度
+ framew .code:n = {%
+ \dim_set:Nn \l__suanpan_frame_b_dim { #1 }
+ % 计算其它尺寸
+ \__suanpan_dim_calc:
+ },
+ framew .initial:n = 13mm,
+
+ % 档间间距
+ rodsep .code:n = {%
+ \dim_set:Nn \l__suanpan_rod_sep_dim { #1 }
+ % 计算其它尺寸
+ \__suanpan_dim_calc:
+ },
+ rodsep .initial:n = 3.0pt,
+
+ % 算珠间距
+ bidsep .code:n = {%
+ \dim_set:Nn \l__suanpan_bid_sep_dim { #1 }
+ % 计算其它尺寸
+ \__suanpan_dim_calc:
+ },
+ bidsep .initial:n = 0.0pt,
+
+ % 缩放参数
+ scale .tl_set:N = \l__suanpan_scale_tl,
+ scale .initial:n = 1.0,
+
+ % 边框绘图颜色
+ framedraw .code:n = { \__suanpan_color_select:nn { framecolor } {#1} },
+ framedraw .initial:n = black,
+ framedraw* .code:n = { \__suanpan_color_select:nnn { framecolor } #1 },
+
+ % 档杆绘图颜色
+ roddraw .code:n = { \__suanpan_color_select:nn { roddrawcolor } {#1} },
+ roddraw .initial:n = black,
+ roddraw* .code:n = { \__suanpan_color_select:nnn { roddrawcolor } #1 },
+ % 档杆填充颜色
+ rodfill .code:n = { \__suanpan_color_select:nn { rodfillcolor } {#1} },
+ rodfill .initial:n = black!20,
+ rodfill* .code:n = { \__suanpan_color_select:nnn { rodfillcolor } #1 },
+
+ % 外珠绘图颜色
+ outerdraw .code:n = { \__suanpan_color_select:nn { outerdrawcolor } {#1} },
+ outerdraw .initial:n = black,
+ outerdraw* .code:n = { \__suanpan_color_select:nnn { outerdrawcolor } #1 },
+ % 外珠填充颜色
+ outerfill .code:n = { \__suanpan_color_select:nn { outerfillcolor } {#1} },
+ outerfill .initial:n = black!40,
+ outerfill* .code:n = { \__suanpan_color_select:nnn { outerfillcolor } #1 },
+
+ % 内珠绘图颜色
+ innerdraw .code:n = { \__suanpan_color_select:nn { innerdrawcolor } {#1} },
+ innerdraw .initial:n = black,
+ innerdraw* .code:n = { \__suanpan_color_select:nnn { innerdrawcolor } #1 },
+ % 内珠填充颜色
+ innerfill .code:n = { \__suanpan_color_select:nn { innerfillcolor } {#1} },
+ innerfill .initial:n = black,
+ innerfill* .code:n = { \__suanpan_color_select:nnn { innerfillcolor } #1 },
+ innerfill .initial:n = black,
+
+ % 横梁标记字符格式
+ font .code:n = {%
+ \tl_gset:Nn \l__suanpan_mark_font_tl {#1}
+ },
+ font .initial:n = \bfseries\Large,
+
+ unknown .code:n = { \msg_error:nn { suanpan } { unknown-option } }
+ }
+
+% 出错输出信息
+\msg_new:nnn { suanpan } { unknown-option }
+ { package~ option~ "\l_keys_key_tl"~ is~ unknown. }
+
+% 选项默认值
+\keys_set:nn { suanpan }
+ {
+ linewd = 2.0pt,
+ rodsep = 3.0pt,
+ bidsep = 1.8pt,
+ scale = 1.0,
+ empty = true,
+ }
+
+% 将文档类选项传给suanpan
+\ProcessKeysOptions { suanpan }
+
+% 构建内珠(靠近横梁,参与计数)容器(盒子)
+\cs_new:Nn \__suanpan_inner_bid_construct:
+ {
+ \dim_set:Nn \l_tmpa_dim
+ { \l__suanpan_bid_d_half_dim - \l__suanpan_bid_draw_h_half_dim }
+
+ \tikzset{bid/.style = {% 内珠高光填充样式
+ inner~color = innerfillcolor!30,
+ outer~color = innerfillcolor,
+ draw = innerdrawcolor,
+ line~width = \l__suanpan_bid_linewidth_dim,
+ rounded~corners = \l__suanpan_bid_arc_dim,
+ },
+ draftline/.style = {% 内珠草稿模式绘制样式
+ draw = innerfillcolor,
+ line~cap = round,% 圆角线冒
+ line~width = \l__suanpan_bid_draw_h_dim,
+ }
+ }
+
+ \group_begin:
+ \hcoffin_gset:Nn \l__suanpan_inner_bid_coffin
+ {
+ % 判断是否为草稿模式
+ \bool_if:NTF \l__suanpan_draft_bool
+ {
+ \begin{tikzpicture}
+ \draw[draftline]
+ ( -\l_tmpa_dim, 0) -- ( \l_tmpa_dim, 0);
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ \shadedraw[bid]
+ ( -\l__suanpan_bid_d_half_dim, \l__suanpan_bid_lower_dim)
+ rectangle
+ ( \l__suanpan_bid_d_half_dim, \l__suanpan_bid_upper_dim);
+ \end{tikzpicture}
+ }
+ }
+ \group_end:
+ }
+
+% 构建外珠(远离横梁,不参与计数)容器(盒子)
+\cs_new:Nn \__suanpan_outer_bid_construct:
+ {
+ \dim_set:Nn \l_tmpa_dim
+ { \l__suanpan_bid_d_half_dim - \l__suanpan_bid_draw_h_half_dim }
+
+ \tikzset{bid/.style ={
+ inner~color = outerfillcolor!30,
+ outer~color = outerfillcolor,
+ draw = outerdrawcolor,
+ line~width = \l__suanpan_bid_linewidth_dim,
+ rounded~corners = \l__suanpan_bid_arc_dim,
+ },
+ draftline/.style = {
+ draw = outerfillcolor,
+ line~cap = round,
+ line~width = \l__suanpan_bid_draw_h_dim,
+ }
+ }
+
+ \group_begin:
+ \hcoffin_gset:Nn \l__suanpan_outer_bid_coffin
+ {
+ % 判断是否为草稿模式
+ \bool_if:NTF \l__suanpan_draft_bool
+ {
+ \begin{tikzpicture}
+ \draw[draftline]
+ ( -\l_tmpa_dim, 0) -- ( \l_tmpa_dim, 0 );
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ \shadedraw[bid]%
+ ( -\l__suanpan_bid_d_half_dim, \l__suanpan_bid_lower_dim)
+ rectangle
+ ( \l__suanpan_bid_d_half_dim, \l__suanpan_bid_upper_dim);
+ \end{tikzpicture}
+ }
+ }
+ \group_end:
+ }
+
+% 构建浮珠容器(盒子)
+% 浮珠指可以在算盘中任意布置的算珠
+% #1 绘制颜色
+% #2 填充颜色
+\cs_new:Npn \__suanpan_float_bid_construct:nn #1#2
+ {
+ \dim_set:Nn \l_tmpa_dim
+ { \l__suanpan_bid_d_half_dim - \l__suanpan_bid_draw_h_half_dim }
+
+ \tikzset{bid/.style ={
+ line~width = \l__suanpan_bid_linewidth_dim,
+ rounded~corners = \l__suanpan_bid_arc_dim,
+ },
+ draftline/.style = {
+ line~cap = round,
+ line~width = \l__suanpan_bid_draw_h_dim,
+ }
+ }
+
+ \group_begin:
+ \hcoffin_gset:Nn \l__suanpan_float_bid_coffin
+ {
+ % 判断是否为草稿模式
+ \bool_if:NTF \l__suanpan_draft_bool
+ {
+ \begin{tikzpicture}
+ \draw[draw=#2, draftline]
+ ( -\l_tmpa_dim, 0) -- ( \l_tmpa_dim, 0 );
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ \shadedraw[draw = #1,
+ inner~color=#2!30,
+ outer~color=#2,
+ bid]%
+ ( -\l__suanpan_bid_d_half_dim, \l__suanpan_bid_lower_dim)
+ rectangle
+ ( \l__suanpan_bid_d_half_dim, \l__suanpan_bid_upper_dim);
+ \end{tikzpicture}
+ }
+ }
+ \group_end:
+ }
+
+% 构建档杆容器(盒子)
+\cs_new:Nn \__suanpan_support_construct:
+ {
+ % TikZ绘图样式
+ \tikzset{%
+ rod/.style = {% 档杆
+ inner~color = rodfillcolor!30,
+ outer~color = rodfillcolor,
+ draw = roddrawcolor,
+ line~width = \l__suanpan_rod_linewidth_dim,
+ },
+ beam/.style = {% 横梁
+ bottom~color = framecolor!60,
+ top~color = framecolor!60,
+ middle~color = framecolor!5,
+ },
+ frame/.style = {% 上下梁
+ bottom~color = framecolor!95,
+ top~color = framecolor!95,
+ middle~color = framecolor!15,
+ },
+ rodline/.style = {% 档杆边线
+ draw = roddrawcolor,
+ line~width = \l__suanpan_rod_linewidth_dim,
+ },
+ frameinner/.style = {% 内边框线
+ draw = framecolor,
+ line~width = \l__suanpan_frame_inner_linewidth_dim,
+ },
+ frameouter/.style = {% 外边框线
+ draw = framecolor,
+ line~width = \l__suanpan_frame_outer_linewidth_dim,
+ },
+ }
+
+ \group_begin:
+ \hcoffin_gset:Nn \l__suanpan_support_coffin
+ {
+ % 判断是否为草稿模式
+ \bool_if:NTF \l__suanpan_draft_bool
+ {
+ \begin{tikzpicture}
+ % 绘制下杆
+ \draw[rodline]
+ ( -\l__suanpan_rod_d_half_dim, \l__suanpan_rod_lower_offset_dim )
+ rectangle
+ ( \l__suanpan_rod_d_half_dim, \l__suanpan_rod_lower_dim );
+ % 绘制上杆
+ \draw[rodline]
+ ( -\l__suanpan_rod_d_half_dim, \l__suanpan_rod_upper_offset_dim )
+ rectangle
+ ( \l__suanpan_rod_d_half_dim, \l__suanpan_rod_upper_dim );
+
+ % 绘制横梁
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim, \l__suanpan_frame_b_half_dim )
+ --
+ ( \l__suanpan_support_d_half_dim, \l__suanpan_frame_b_half_dim );
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim, -\l__suanpan_frame_b_half_dim )
+ --
+ ( \l__suanpan_support_d_half_dim, -\l__suanpan_frame_b_half_dim );
+
+ % 绘制上梁下边线
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_inner_offset_dim )
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_inner_offset_dim );
+ % 绘制上梁上边线
+ \draw[frameouter]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_outer_offset_dim -
+ \l__suanpan_frame_outer_linewidth_dim / 2)
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_outer_offset_dim -
+ \l__suanpan_frame_outer_linewidth_dim / 2);
+
+ % 绘制下梁上边线
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_inner_offset_dim )
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_inner_offset_dim );
+ % 绘制下梁下边线
+ \draw[frameouter]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_outer_offset_dim +
+ \l__suanpan_frame_outer_linewidth_dim / 2 )
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_outer_offset_dim +
+ \l__suanpan_frame_outer_linewidth_dim / 2 );
+
+ % 绘制计位点(黑色圆点)
+ \bool_if:NT \l__suanpan_support_unit_bool
+ {
+ \fill[%
+ fill=black,
+ ] (0pt, 0pt) circle
+ [radius = \l__suanpan_frame_unit_r_dim];
+ }
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ % 绘制下杆
+ \shadedraw[rod]
+ ( -\l__suanpan_rod_d_half_dim, \l__suanpan_rod_lower_offset_dim )
+ rectangle
+ ( \l__suanpan_rod_d_half_dim, \l__suanpan_rod_lower_dim );
+ % 绘制上杆
+ \shadedraw[rod]
+ ( -\l__suanpan_rod_d_half_dim, \l__suanpan_rod_upper_offset_dim )
+ rectangle
+ ( \l__suanpan_rod_d_half_dim, \l__suanpan_rod_upper_dim );
+
+ % 绘制横梁
+ \shade[beam]
+ ( -\l__suanpan_support_d_half_dim, -\l__suanpan_frame_b_half_dim )
+ rectangle
+ ( \l__suanpan_support_d_half_dim, \l__suanpan_frame_b_half_dim );
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim, \l__suanpan_frame_b_half_dim )
+ --
+ ( \l__suanpan_support_d_half_dim, \l__suanpan_frame_b_half_dim );
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim, -\l__suanpan_frame_b_half_dim )
+ --
+ ( \l__suanpan_support_d_half_dim, -\l__suanpan_frame_b_half_dim );
+
+ % 绘制上梁下边线
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_inner_offset_dim )
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_inner_offset_dim );
+ % 绘制上梁上边线
+ \draw[frameouter]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_outer_offset_dim -
+ \l__suanpan_frame_outer_linewidth_dim / 2)
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_upper_outer_offset_dim -
+ \l__suanpan_frame_outer_linewidth_dim / 2);
+
+ % 绘制下梁上边线
+ \draw[frameinner]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_inner_offset_dim )
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_inner_offset_dim );
+ % 绘制下梁下边线
+ \draw[frameouter]
+ ( -\l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_outer_offset_dim +
+ \l__suanpan_frame_outer_linewidth_dim / 2 )
+ --
+ ( \l__suanpan_support_d_half_dim,
+ \l__suanpan_frame_lower_outer_offset_dim +
+ \l__suanpan_frame_outer_linewidth_dim / 2 );
+
+ % 绘制计位点(黑色圆点)
+ \bool_if:NT \l__suanpan_support_unit_bool
+ {
+ \shade[%
+ inner~color=black!40,
+ outer~color=black!80,
+ ] (0pt, 0pt) circle
+ [radius = \l__suanpan_frame_unit_r_dim];
+ }
+ \end{tikzpicture}
+ }
+ }
+ \group_end:
+ }
+
+% 绘制算珠
+% #1: 算珠位置编号
+% o o o o o o o | o o o
+% 1 2 3 4 5 6 7 8 9 10
+% | o
+% 11
+% 其中,11是悬珠位置
+% #2: 算珠类型
+% 0——外珠,1——内珠,2——浮珠
+\cs_new:Npn \__suanpan_bid_layout:nn #1#2
+ {
+ % 算珠垂直偏移
+ \int_compare:nNnTF { #1 } > { 7 }
+ {
+ \int_compare:nNnTF { #1 } < { 11 }
+ {
+ % 上珠
+ \dim_set:Nn \l_tmpb_dim{ \l__suanpan_bid_upper_offset_dim +
+ \l__suanpan_bid_h_dim * (#1 - 8) }
+ }{
+ % 悬珠
+ \dim_set:Nn \l_tmpb_dim{ \l__suanpan_frame_b_half_dim +
+ \l__suanpan_bid_h_dim * 2 }
+ }
+ }{
+ % 下珠
+ \dim_set:Nn \l_tmpb_dim{ \l__suanpan_bid_lower_offset_dim +
+ \l__suanpan_bid_h_dim * (#1 - 1) }
+ }
+
+ % 绘图算珠
+ \draw_scope_begin:
+ \draw_transform_yshift:n { \l_tmpb_dim }
+ \int_case:nnF { #2 }
+ {
+ { 0 } { \draw_coffin_use:Nnn \l__suanpan_outer_bid_coffin { hc } { vc } }
+ { 1 } { \draw_coffin_use:Nnn \l__suanpan_inner_bid_coffin { hc } { vc } }
+ { 2 } { \draw_coffin_use:Nnn \l__suanpan_float_bid_coffin { hc } { vc } }
+ }{ \msg_error:nnn { suanpan } { bid-type-error } {#2} }
+ \draw_scope_end:
+ }
+
+\msg_new:nnn { suanpan } { bid-type-error }
+ { #1~ bid~ type~ is~ unknown. }
+
+% 函数变体
+\cs_generate_variant:Nn \__suanpan_bid_layout:nn {xx}
+
+% 组装一个档位
+% #1: 档位编号(基于1,从左向右计数)
+% #2: 档位数字
+\cs_new:Npn \__suanpan_assemble_rod:nn #1#2
+ {
+ \tl_set:Nn \l_tmpb_tl { #2 }
+ % 绘制
+ \draw_scope_begin:
+ % 水平方向偏移
+ \draw_transform_xshift:n { \l__suanpan_support_d_dim * (#1 - 1) }
+
+ % 档杆
+ \draw_coffin_use:Nnnn \l__suanpan_support_coffin
+ { hc } { vc } { 0pt, -\l__suanpan_support_y_offset_dim }
+
+ % 算珠
+ \int_compare:nNnTF { #2 } = { 0 }
+ {
+ % 判断0值空档算珠是否需要绘制
+ \bool_if:NT \l__suanpan_empty_rod_bool
+ {
+ % 取得档位数字对应算珠位置及内珠/外珠编号
+ \prop_get:NnN \l__suanpan_rods_val_prop { #2 } \l_tmpa_tl
+ \clist_clear:N \l__suanpan_bids_pos_clist
+ \clist_set:NV \l__suanpan_bids_pos_clist \l_tmpa_tl
+
+ \clist_map_inline:Nn \l__suanpan_bids_pos_clist
+ {
+ \clist_set:Nn \l_tmpa_clist { ##1 }
+ \__suanpan_bid_layout:xx { \clist_item:Nn \l_tmpa_clist { 1 } }
+ { \clist_item:Nn \l_tmpa_clist { 2 } }
+ }
+ }
+ }{
+ % 不是0值空档算珠,需要绘制
+ % 取得档位数字对应算珠位置及内珠/外珠编号
+ \prop_get:NnN \l__suanpan_rods_val_prop { #2 } \l_tmpa_tl
+ \clist_clear:N \l__suanpan_bids_pos_clist
+ \clist_set:NV \l__suanpan_bids_pos_clist \l_tmpa_tl
+
+ \clist_map_inline:Nn \l__suanpan_bids_pos_clist
+ {
+ \clist_set:Nn \l_tmpa_clist { ##1 }
+ \__suanpan_bid_layout:xx { \clist_item:Nn \l_tmpa_clist { 1 } }
+ { \clist_item:Nn \l_tmpa_clist { 2 } }
+ }
+ }
+ \draw_scope_end:
+ }
+
+% 指定一个档位上浮珠的颜色
+% #1: 档位编号(从左向右)
+% #2: 算珠位置([1, 11])
+\cs_new:Npn \__suanpan_float_bid:nn #1#2
+ {
+ \draw_scope_begin:
+ % 水平偏移
+ \draw_transform_xshift:n { \l__suanpan_support_d_dim * ( #1 - 1 ) }
+
+ % 覆盖绘制
+ \__suanpan_bid_layout:xx { #2 }{ 2 }
+ \draw_scope_end:
+ }
+
+% 为一个档位添加计数标记
+% #1: 档位编号(基于1,从左向右)
+% #2: 标记内容
+\cs_new:Npn \__suanpan_rod_mark:nn #1#2
+ {
+ \hcoffin_set:Nn \l_tmpa_coffin
+ {
+ \begin{tikzpicture}
+ \node at ( 0, 0 ) [font=\l__suanpan_mark_font_tl] { #2 };
+ \end{tikzpicture}
+ }
+
+ \draw_scope_begin:
+ % 水平偏移
+ \draw_transform_xshift:n { \l__suanpan_support_d_dim * ( #1 - 1 ) }
+ \draw_coffin_use:Nnn \l_tmpa_coffin { hc } { vc }
+ \draw_scope_end:
+ }
+
+% 绘制边框
+% #1 第一档编号(左)
+% #2 最后一档编号(右)
+\cs_new:Npn \__suanpan_frame_layout:nn #1#2
+ {
+ % TikZ绘制样式
+ \tikzset{%
+ hframe/.style = {% 上下梁
+ bottom~color = framecolor!95,
+ top~color = framecolor!95,
+ middle~color = framecolor!15,
+ draw = framecolor,
+ line~width = \l__suanpan_frame_inner_linewidth_dim,
+ },
+ vframe/.style = {% 左右梁
+ left~color = framecolor!95,
+ right~color = framecolor!95,
+ middle~color = framecolor!15,
+ draw = framecolor,
+ line~width = \l__suanpan_frame_inner_linewidth_dim,
+ },
+ mframe/.style = {% 横梁
+ top~color = framecolor!60,
+ bottom~color = framecolor!60,
+ middle~color = framecolor!5,
+ line~width = \l__suanpan_frame_inner_linewidth_dim,
+ },
+ frameline/.style = {% 梁连线
+ draw = framecolor,
+ line~width = \l__suanpan_frame_inner_linewidth_dim,
+ },
+ framefill/.style = {% 外框填充
+ draw = framecolor,
+ fill = framecolor,
+ line~width = \l__suanpan_frame_inner_linewidth_dim,
+ },
+ arcline/.style = {% 转角线
+ draw = framecolor,
+ line~width = \l__suanpan_frame_inner_linewidth_dim,
+ rounded~corners = \l__suanpan_frame_inner_linewidth_dim / 2,
+ },
+ }
+
+ % 总宽度
+ \dim_set:Nn \l_tmpa_dim {
+ \fp_to_dim:n {
+ \fp_eval:n { \l__suanpan_support_d_dim * ( #2 - #1 + 1.0) }
+ }
+ }
+ % 减半档宽度
+ \dim_set:Nn \l_tmpb_dim {
+ \fp_to_dim:n {
+ \fp_eval:n { \l__suanpan_support_d_dim * ( #2 - #1 ) +
+ \l__suanpan_support_d_half_dim}
+ }
+ }
+
+ \group_begin:
+ % 上下边框基础容器(盒子)
+ \hcoffin_set:Nn \l_tmpa_coffin
+ {
+ % 判断是否为草稿模式
+ \bool_if:NTF \l__suanpan_draft_bool
+ {
+ \begin{tikzpicture}
+ \draw[framefill]
+ ( 0pt, 0pt ) --
+ ++( \l_tmpa_dim, 0) --
+ ++( \l__suanpan_frame_b_dim, \l__suanpan_frame_b_dim ) --
+ ++( -\l__suanpan_frame_b_dim, 0 ) --
+ ++( -\l_tmpa_dim, 0 ) --
+ ++( -\l__suanpan_frame_b_dim, 0 ) --
+ cycle;
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ \shadedraw[hframe]
+ ( 0pt, 0pt ) --
+ ++( \l_tmpa_dim, 0) --
+ ++( \l__suanpan_frame_b_dim, \l__suanpan_frame_b_dim ) --
+ ++( -\l__suanpan_frame_b_dim, 0 ) --
+ ++( -\l_tmpa_dim, 0 ) --
+ ++( -\l__suanpan_frame_b_dim, 0 ) --
+ cycle;
+ \end{tikzpicture}
+ }
+ }
+
+ % 左右边框基础容器(盒子)
+ \hcoffin_set:Nn \l_tmpb_coffin
+ {
+ % 判断是否为草稿模式
+ \bool_if:NTF \l__suanpan_draft_bool
+ {
+ \begin{tikzpicture}
+ \draw[framefill]
+ ( 0, 0 ) --
+ ++( 0, \l__suanpan_frame_inner_h_dim) --
+ ++( -\l__suanpan_frame_b_dim, \l__suanpan_frame_b_dim ) --
+ ++( 0, -\l__suanpan_frame_outer_h_dim ) --
+ cycle;
+ \draw[arcline]
+ ( 0, 0 )
+ ++( 0, \l__suanpan_frame_inner_h_dim )
+ ++( 0, \l__suanpan_frame_b_dim )
+ ++( 0, \l__suanpan_frame_inner_linewidth_dim * 0.9 )
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_inner_linewidth_dim * 0.9, 0 ) --
+ ++( 0, -\l__suanpan_frame_b_half_dim );
+ \draw[arcline]
+ ( 0, 0 )
+ ++( 0, -\l__suanpan_frame_b_dim )
+ ++( 0, -\l__suanpan_frame_inner_linewidth_dim * 0.9 )
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_inner_linewidth_dim * 0.9, 0 ) --
+ ++( 0, \l__suanpan_frame_b_half_dim );
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ \shadedraw[vframe]
+ ( 0, 0 ) --
+ ++( 0, \l__suanpan_frame_inner_h_dim) --
+ ++( -\l__suanpan_frame_b_dim, \l__suanpan_frame_b_dim ) --
+ ++( 0, -\l__suanpan_frame_outer_h_dim ) --
+ cycle;
+ \draw[arcline]
+ ( 0, 0 )
+ ++( 0, \l__suanpan_frame_inner_h_dim )
+ ++( 0, \l__suanpan_frame_b_dim )
+ ++( 0, \l__suanpan_frame_inner_linewidth_dim * 0.9 )
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_inner_linewidth_dim * 0.9, 0 ) --
+ ++( 0, -\l__suanpan_frame_b_half_dim );
+ \draw[arcline]
+ ( 0, 0 )
+ ++( 0, -\l__suanpan_frame_b_dim )
+ ++( 0, -\l__suanpan_frame_inner_linewidth_dim * 0.9 )
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_b_half_dim, 0 ) --
+ ++( -\l__suanpan_frame_inner_linewidth_dim * 0.9, 0 ) --
+ ++( 0, \l__suanpan_frame_b_half_dim );
+ \end{tikzpicture}
+ }
+ }
+
+ % 横梁接头基础容器(盒子)
+ \hcoffin_set:Nn \l_tmpc_coffin
+ {
+ % 判断是否为草稿模式
+ \bool_if:NTF \l__suanpan_draft_bool
+ {
+ \begin{tikzpicture}
+ \fill[fill=white,
+ line~width=\l__suanpan_frame_inner_linewidth_dim]
+ ( 0pt, 0pt ) --++( 0, \l__suanpan_frame_b_dim) --
+ ++(-\l__suanpan_frame_inner_linewidth_dim, 0) --
+ ++(-\l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ ++( \l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ cycle;
+ \draw[frameline]%
+ ( 0, \l__suanpan_frame_b_dim) --
+ ++(-\l__suanpan_frame_inner_linewidth_dim, 0) --
+ ++(-\l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ ++( \l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ ++( \l__suanpan_frame_inner_linewidth_dim, 0);
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ \shade[mframe]
+ ( 0pt, 0pt ) --++( 0, \l__suanpan_frame_b_dim) --
+ ++(-\l__suanpan_frame_inner_linewidth_dim, 0) --
+ ++(-\l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ ++( \l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ cycle;
+ \draw[frameline]%
+ ( 0, \l__suanpan_frame_b_dim) --
+ ++(-\l__suanpan_frame_inner_linewidth_dim, 0) --
+ ++(-\l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ ++( \l__suanpan_frame_b_dim / 3, -\l__suanpan_frame_b_dim / 2) --
+ ++( \l__suanpan_frame_inner_linewidth_dim, 0);
+ \end{tikzpicture}
+ }
+ }
+
+ % 布置上边框
+ \draw_scope_begin:
+ \draw_transform_xshift:n { -\l__suanpan_support_d_half_dim -
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+ \draw_transform_yshift:n { \l__suanpan_frame_inner_upper_dim -
+ \l__suanpan_frame_inner_linewidth_dim }
+ \draw_coffin_use:Nnnn \l_tmpa_coffin { l } { b }
+ { -\l__suanpan_frame_b_dim, 0pt }
+ \draw_scope_end:
+
+ % 布置下边框
+ \draw_scope_begin:
+ \coffin_rotate:Nn \l_tmpa_coffin { 180 }
+ \draw_transform_xshift:n { \l_tmpa_dim - \l__suanpan_support_d_half_dim +
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+
+ \draw_transform_yshift:n { \l__suanpan_frame_inner_lower_dim +
+ \l__suanpan_frame_inner_linewidth_dim }
+ \draw_coffin_use:Nnnn \l_tmpa_coffin { l } { b }
+ { \l__suanpan_frame_b_dim, 0pt }
+ \draw_scope_end:
+
+ % 布置左边框
+ \draw_scope_begin:
+ \draw_transform_xshift:n { -\l__suanpan_support_d_half_dim -
+ \l__suanpan_frame_b_dim -
+ \l__suanpan_frame_inner_linewidth_dim * 1.5 }
+ \draw_transform_yshift:n { \l__suanpan_frame_inner_lower_dim -
+ \l__suanpan_frame_inner_linewidth_dim }
+
+ \draw_coffin_use:Nnnn \l_tmpb_coffin { l } { b }
+ { 0pt, -\l__suanpan_frame_b_dim }
+ \draw_scope_end:
+
+ % 布置右边框
+ \draw_scope_begin:
+ \coffin_rotate:Nn \l_tmpb_coffin { 180 }
+ \draw_transform_xshift:n { \l_tmpb_dim +
+ \l__suanpan_frame_b_dim +
+ \l__suanpan_frame_inner_linewidth_dim * 1.5}% -
+ \draw_transform_yshift:n { \l__suanpan_frame_inner_upper_dim +
+ \l__suanpan_frame_inner_linewidth_dim }
+ \draw_coffin_use:Nnnn \l_tmpb_coffin { l } { b }
+ { 0pt, \l__suanpan_frame_b_dim }
+ \draw_scope_end:
+
+ % 布置左横梁接头
+ \draw_scope_begin:
+ \draw_transform_xshift:n { -\l__suanpan_support_d_half_dim -
+ \l__suanpan_frame_b_dim / 3 -
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+ \draw_transform_yshift:n { -\l__suanpan_frame_b_dim / 2 -
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+ \draw_coffin_use:Nnnn \l_tmpc_coffin { l } { b } { 0pt, 0pt }
+ \draw_scope_end:
+
+ % 布置右横梁接头
+ \draw_scope_begin:
+ \coffin_rotate:Nn \l_tmpc_coffin { 180 }
+ \draw_transform_xshift:n { \l_tmpb_dim +
+ \l__suanpan_frame_b_dim / 3 +
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+ \draw_transform_yshift:n { \l__suanpan_frame_b_dim / 2 +
+ \l__suanpan_frame_inner_linewidth_dim / 2 }
+ \draw_coffin_use:Nnnn \l_tmpc_coffin { l } { b } { 0pt, 0pt }
+ \draw_scope_end:
+ \group_end:
+ }
+
+% 算盘排版用户接口
+% 算盘排版环境
+% #1 suanpan环境选项
+% #2 suanpan环境内容(!b参数)
+\NewDocumentEnvironment{ suanpan }{ o !b }
+ {
+ \group_begin:
+ % 设置选项
+ \IfNoValueF{ #1 }
+ {
+ \keys_set:nn { suanpan }{ #1 }
+ }
+
+ % 构造基础容器(盒子)
+ \__suanpan_inner_bid_construct:
+ \__suanpan_outer_bid_construct:
+ \__suanpan_support_construct:
+
+ % 删除#2(!b)参数取得的环境内容中的空白
+ \str_set:Nn \l_tmpa_str { #2 }
+ \str_remove_all:Nn \l_tmpa_str {~}
+ % 将str还原为tl
+ \tl_set_rescan:Nno \l_tmpa_tl {}{ \l_tmpa_str }
+
+ % 在容器(盒子)中用#2(!b)参数取得的按环境内容实现绘制
+ \hcoffin_set:Nn \l_tmpa_coffin
+ {
+ \draw_begin:
+ \l_tmpa_tl
+ \draw_end:
+ }
+
+ \hcoffin_set:Nn \l_tmpb_coffin
+ {
+ % 将原图缩小50%
+ \coffin_scale:Nnn \l_tmpa_coffin { 0.50 } { 0.50 }
+ \coffin_typeset:Nnnnn \l_tmpa_coffin{ l }{ b }{ 0pt }{ 0pt }
+ }
+ }{
+ % 按用户指定比例缩放
+ \coffin_scale:Nnn \l_tmpb_coffin
+ { \l__suanpan_scale_tl } { \l__suanpan_scale_tl }
+
+ % 设置基字符盒子(排版深度)
+ \hbox_set:Nn \l_tmpa_box { x }
+ % 盒子深度
+ \dim_set:Nn \l_tmpa_dim { \box_dp:N \l_tmpa_box}
+
+ % 输出算盘容器(盒子)
+ \coffin_typeset:Nnnnn \l_tmpb_coffin{ l }{ b }{ 0pt }{ -\l_tmpa_dim }
+ \int_zero:N \l__suanpan_rod_max_int
+ \group_end:
+ }
+
+% 排版算盘一个档位,包括档杆和算珠
+% #1 星号命令,绘制计位点(黑色圆点)
+% #2 档位编号(基于1,从左向右计数)
+% #3 本档数字(0-20,10-15需用到顶珠和底珠,16-20需要用到悬珠)
+\NewDocumentCommand{ \rod }{ s m m }
+ {
+ % 记录原状态变量
+ \bool_set_eq:NN \l_tmpa_bool \l__suanpan_support_unit_bool
+ % 星号命令,用于在横梁绘制计位点
+ \IfBooleanTF{#1}
+ {
+ \bool_set_true:N \l__suanpan_support_unit_bool
+ }{
+ \bool_set_false:N \l__suanpan_support_unit_bool
+ }
+
+ % 如状态发生改变,则重新绘制档杆单元
+ \bool_if:NTF \l_tmpa_bool
+ {
+ \bool_if:NF \l__suanpan_support_unit_bool
+ {
+ \__suanpan_support_construct:
+ }
+ }{
+ \bool_if:NT \l__suanpan_support_unit_bool
+ {
+ \__suanpan_support_construct:
+ }
+ }
+
+ % 组装一个档位
+ \__suanpan_assemble_rod:nn { #2 }{ #3 }
+
+ % 统计档位总数
+ \int_set:Nn \l__suanpan_rod_max_int
+ { \int_max:nn { \l__suanpan_rod_max_int }{ #2 } }
+ }
+
+% 排版算盘多个档位,包括档杆和算珠
+% #1 本档数字(0-20,10-15需用到顶珠和底珠,16-20需要用到悬珠)
+% 各数字之间需要用逗号分隔。
+\NewDocumentCommand{ \rods }{ m }
+ {
+ % 构造档位数字列表
+ \clist_set:Nn \l_tmpa_clist { #1 }
+ % 初始化档位计数器
+ \int_set:Nn \l_tmpa_int { 0 }
+
+ \clist_map_inline:Nn \l_tmpa_clist
+ {
+ % 档位计数器自增1
+ \int_incr:N \l_tmpa_int
+
+ % 组装当前档位
+ \__suanpan_assemble_rod:nn {\l_tmpa_int }{ ##1 }
+ }
+
+ % 记录档位总数
+ \int_set:Nn \l__suanpan_rod_max_int
+ { \int_max:nn { \l__suanpan_rod_max_int }{ \l_tmpa_int } }
+ }
+
+% 指定某档上某个算珠的颜色
+% #1 档位(基于1,从左向右计数)
+% #2 算珠位置列表(1--11,11为悬珠位置)
+% #3 算珠填充颜色
+% #4 算珠绘制颜色(默认为内珠绘制颜色)
+\NewDocumentCommand{ \bid }{ m m m O{innerdrawcolor} }
+ {
+ % 构造浮珠
+ \__suanpan_float_bid_construct:nn { #4 }{ #3 }
+
+ % 构造算珠位置列表
+ \clist_set:Nn \l_tmpa_clist { #2 }
+
+ \clist_map_inline:Nn \l_tmpa_clist
+ {
+ % 绘制浮珠
+ \__suanpan_float_bid:nn { #1 }{ ##1 }
+ }
+ }
+
+% 指定某档上所有内珠或外珠的颜色
+% #1 星号命令,选择内珠或外珠
+% #2 档位(基于1,从左向右计数)
+% #3 该档数字
+% #4 算珠填充颜色(绘图颜色采用原内/外珠绘制颜色)
+\NewDocumentCommand{ \bids }{ s m m m }
+ {
+ % 取得档位数字对应算珠位置及内珠/外珠编号
+ \prop_get:NnN \l__suanpan_rods_val_prop { #3 } \l_tmpa_tl
+ \clist_clear:N \l__suanpan_bids_pos_clist
+ \clist_set:NV \l__suanpan_bids_pos_clist \l_tmpa_tl
+
+ % 星号命令,用于选择外珠着色
+ \IfBooleanTF{#1}
+ {
+ % 构造浮珠
+ \__suanpan_float_bid_construct:nn { outerdrawcolor }{ #4 }
+
+ \clist_map_inline:Nn \l__suanpan_bids_pos_clist
+ {
+ \clist_set:Nn \l_tmpa_clist { ##1 }
+ % 选择外珠
+ \int_compare:nNnT { \clist_item:Nn \l_tmpa_clist { 2 } } = { 0 }
+ {
+ \__suanpan_float_bid:nn { #2 }{ \clist_item:Nn \l_tmpa_clist { 1 } }
+ }
+ }
+ }{
+ % 构造浮珠
+ \__suanpan_float_bid_construct:nn { innerdrawcolor }{ #4 }
+
+ \clist_map_inline:Nn \l__suanpan_bids_pos_clist
+ {
+ \clist_set:Nn \l_tmpa_clist { ##1 }
+ % 选择内珠
+ \int_compare:nNnT { \clist_item:Nn \l_tmpa_clist { 2 } } = { 1 }
+ {
+ \__suanpan_float_bid:nn { #2 }{ \clist_item:Nn \l_tmpa_clist { 1 } }
+ }
+ }
+ }
+ }
+
+% 左右边框
+\NewDocumentCommand{ \mkframe }{ }
+ {
+ \__suanpan_frame_layout:nn { 1 }{ \l__suanpan_rod_max_int }
+ }
+
+% 为各档添加计位标记
+% #1 起始档位(基于1,从左向右计数)
+% #2 标记列表
+\NewDocumentCommand{ \rodmark }{ O{1} m }
+ {
+ % 标记列表
+ \clist_set:Nn \l_tmpa_clist { #2 }
+
+ % 计数器
+ \int_set:Nn \l_tmpa_int { #1 }
+
+ % 遍历列表
+ \clist_map_inline:Nn \l_tmpa_clist
+ {
+ % 输出标记
+ \__suanpan_rod_mark:nn { \l_tmpa_int }{ ##1 }
+
+ % 调整计数器
+ \int_incr:N \l_tmpa_int
+
+ % 超出最大档位
+ \int_compare:nNnT { \l_tmpa_int } > { \l__suanpan_rod_max_int }
+ {
+ \clist_map_break:
+ }
+ }
+ }
+
+% 选项设置用户接口
+\NewDocumentCommand{ \suanpanset } { m }
+ {
+ \IfNoValueF { #1}
+ {
+ \keys_set:nn { suanpan } { #1 }
+ }
+ }
+
+\endinput
diff --git a/macros/latex/contrib/suanpan-l3/suanpan-l3.tex b/macros/latex/contrib/suanpan-l3/suanpan-l3.tex
new file mode 100644
index 0000000000..89cb17784d
--- /dev/null
+++ b/macros/latex/contrib/suanpan-l3/suanpan-l3.tex
@@ -0,0 +1,1479 @@
+\documentclass[full]{l3doc}
+\usepackage[scheme=chinese]{ctex}
+\usepackage{geometry}
+\usepackage{fancyvrb-ex}
+\usepackage{ninecolors}
+\usepackage{suanpan-l3}
+
+\IndexPrologue
+ {
+ % \section*{索引}
+ % \markboth{索引}{索引}
+ % \addcontentsline{toc}{section}{索引}
+ % 斜体数字说明了对应索引内容出现的页码,
+ % 带有下划线的数据给出了索引内容的定义,
+ % 其它的数字给出了索引内容引用的位置。
+ \section*{Index}
+ \markboth{Index}{Index}
+ \addcontentsline{toc}{section}{Index}
+ The~italic~numbers~denote~the~pages~where~the~
+ corresponding~entry~is~described,~
+ numbers~underlined~point~to~the~definition,~
+ all~others~indicate~the~places~where~it~is~used.
+ }
+
+\newcommand\tikzmark[1]{\tikz \coordinate[overlay, remember picture] (#1);}
+
+\geometry{
+ left=4.5cm,
+ right=2cm,
+ top=2cm,
+ bottom=2cm,
+}
+\hypersetup {
+ CJKbookmarks,
+ bookmarksopen,
+ bookmarksopenlevel=3,
+ pdfstartview=FitH,
+ pdfinfo = {
+ Title = 中国传统7珠圆珠算盘排版宏包 ,
+ Subject = A LaTeX3 package ,
+ Author = 耿楠
+ }
+}
+
+\DoNotIndex{\begin, \end}
+\setlength{\parskip}{\medskipamount}
+\DeclareDocumentEnvironment { noteen } { +b } {
+ \par\textbf{\textsf{NOTE:~}}#1\par
+} {}
+\DeclareDocumentEnvironment { notezh } { +b } {
+ \par\textbf{\textsf{注意:~}}#1\par
+} {}
+
+\AtEndDocument{
+ \newgeometry{
+ left=2cm,
+ right=2cm,
+ top=2cm,
+ bottom=2cm
+ }
+ \PrintChanges
+ \PrintIndex
+}
+
+\ExplSyntaxOn
+\dim_new:N \l__my_syntax_dim
+\box_new:N \g__my_syntax_box
+\NewDocumentEnvironment { Syntax } { s }
+ {
+ \dim_set:Nn \l__my_syntax_dim
+ { \textwidth }
+ \hbox_gset:Nw \g__my_syntax_box
+ \small \ttfamily
+ \begin{minipage}[t]{\l__my_syntax_dim}
+ \raggedright\obeyspaces\obeylines
+ }
+ {
+ \end{minipage}
+ \hbox_gset_end:
+ \IfValueF { #1 } { \smallskip }
+ \box_use_drop:N \g__my_syntax_box
+ \smallskip
+ }
+
+\DeclareDocumentEnvironment { Description } { o +b } {
+ \hbox_set:Nn \l_tmpa_box { #1 }
+ \dim_set:Nn \l_tmpa_dim { \box_wd:N \l_tmpa_box }
+ \begin{itemize}[labelwidth=\l_tmpa_dim, align=left]
+ #2
+ \end{itemize}
+} { }
+
+\keys_define:nn { suanpan/doc } {
+ opt .tl_set:N = \l_opt_tl,
+ desc .tl_set:N = \l_desc_tl,
+ init .tl_set:N = \l_init_tl,
+ init .initial:n = init-none,
+}
+
+\box_new:N \l__option_box
+\NewDocumentEnvironment { option } { m +b } {
+ \keys_set:nn { suanpan/doc } { #1 }
+ \hbox_set:Nw \l__option_box
+ \small \ttfamily
+ \begin{minipage}[t]{\textwidth}
+ \obeyspaces\obeylines
+ \textcolor{red}{
+ \l_opt_tl
+ \exp_args:Nx\SpecialOptionIndex{\l_opt_tl}
+ }
+ {~}\l_desc_tl
+ \hfill(
+ \tl_if_eq:NnTF \l_init_tl { init-none } { no~value }
+ { init: ~\texttt{\l_init_tl} }
+ )
+ \end{minipage}
+ \hbox_gset_end:
+ \box_use_drop:N \l__option_box
+ #2
+ \medskip
+} { }
+
+\DeclareDocumentCommand \opt { O{} m }
+ { \__codedoc_cmd:no {#1} { #2 } }
+\ExplSyntaxOff
+
+\def\vers{\texttt{v1.2.2} }
+
+\changes{v1.0.0}{2024/08/20}{first version.}
+
+\begin{document}
+\title{
+ \pkg{suanpan-l3}---算盘(Abacus)排版宏包
+ \rlap{\makebox[4cm][r]{
+ \normalsize $\Longrightarrow$ \color{red}
+ \protect\hyperlink{en}{English Version}
+ \protect\hypertarget{zh}{}
+ }}
+}
+\author{\textit{耿楠} \texttt{<nangeng@nwafu.edu.cn>}}
+\date{\the\year 年\the\month 月\the\day 日\qquad \vers
+\thanks{\url{https://gitee.com/nwafu_nan/suan-pan}}
+}
+
+\maketitle
+
+\begin{abstract}
+ \pkg{suanpan-l3}是一个基于\pkg{l3draw}和\pkg{TikZ}绘图宏包,用\pkg{Expl3}%
+ 开发的中国传统7珠圆珠算盘排版宏包,它能够实现使用普通上珠、下珠
+ 和底珠、顶珠及悬珠的算盘排版。该宏包提供了唯一的一个
+ \env{suanpan}算盘排版环境及仅在该环境中使用的 \tn{rod}、
+ \tn{rods}、\tn{bid}、\tn{bids}、\tn{rodmark}和\tn{mkframe}档杆、算珠
+ 着色、横梁标记和边框排版命令。同时,该宏包还提供了\tn{suanpanset}%
+ 命令用于对算盘外观进行设置。
+ \begin{center}
+ \begin{suanpan}[framedraw = brown2, scale = 0.45, bidsep=1.5pt,
+ roddraw = brown3, rodfill = brown4]
+ % 各档位数字列表
+ \rods{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
+ % 定位点
+ \rod*{4}{3}
+ \rod*{18}{17}
+ % 使用顶珠
+ \bid{12}{9}{azure5}
+ \bid{13}{9}{azure5}
+ \bid{14}{9}{azure5}
+ \bid{15}{9}{azure5}
+ \bid{16}{9}{azure5}
+ % 使用悬珠
+ \bid{17}{11}{red5}
+ \bid{18}{11}{red5}
+ \bid{19}{11}{red5}
+ \bid{20}{11}{red5}
+ \bid{21}{11}{red5}
+ % 使用底珠
+ \bid{11}{3}{olive5}
+ \bid{16}{3}{olive5}
+ \bid{21}{3}{olive5}
+ \rodmark{21,20,19,{},17,16,15,14,13,12,11,10,9,8,7,6,5,{},3,2,1}
+ \mkframe
+ \end{suanpan}
+ \end{center}
+\end{abstract}
+
+{\small
+\tableofcontents
+}
+\newpage
+
+\begin{documentation}
+
+\section{引言}
+
+\pkg{suanpan-l3}宏包是一个基于\pkg{l3draw}和\pkg{TikZ}绘图宏包,
+用\pkg{Expl3}开发的中国传统7珠圆珠算盘排版宏包,它利用\pkg{l3draw}%
+宏包,通过\env{l3coffin}容器的平移变换,将使用\pkg{TikZ}宏包绘制的
+算珠、档杆、边框等基本图元组装成算盘,从而实现算盘的排版。
+
+由于圆珠是通过圆角矩形实现的,因此当算珠数量较多时,绘制耗时较长,
+其编译速度较慢。
+
+\section{用户接口}
+
+\subsection{\env{suanpan}算盘排版环境}
+
+\begin{function}{suanpan}
+ \begin{syntax}
+ \tn{begin}|{suanpan}|\oarg{外观选项}
+ .....
+ \tn{end}|{suanpan}|
+ \end{syntax}
+\end{function}
+
+ 按可选项设置的\oarg{外观选项}实现算盘排版。
+
+ 在\env{suanpan}环境中,可以通过专用命令\tn{rod}%
+ (排版算盘的一个档位),\tn{rods}(排版一组档位),
+ \tn{bid}(指定算珠颜色),\tn{bids}(指定内/外珠颜色),
+ \tn{rodmark}(为档位添加标记),\tn{mkframe}(排版边框)
+ 按需实现算盘排版。
+
+ 在\oarg{外观选项}中可以通过key-value的方式设置线宽、颜色、
+ 缩放比例等外观属性。
+
+ 通过\oarg{外观选项}设置的外观参数仅对\env{suanpan}环境局部有效。
+
+ \begin{notezh}
+ \env{suanpan}环境中\textsf{不可以出现空行}。
+ \end{notezh}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ % 为便排版,进行缩放
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rod{1}{0}
+ \rod{2}{3}
+ \rod{3}{0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{\env{suanpan}环境中的专用命令}
+
+\changes{v1.1.3}{2024/09/04}{add highlight to rod(s) and beam}
+\subsubsection{\tn{rod}单一档位排版命令}
+
+\begin{function}{\rod}
+ \begin{syntax}
+ \cs{rod} \marg{档位编号} \marg{档位数字}
+ \end{syntax}
+\end{function}
+
+ 用于排版\marg{档位编号}(基于1,从左向右进行编号)参数指定的算盘
+ 档位,本档的计数值由\marg{档位数字}参数指定。
+
+ \marg{档位数字}支持[0, 20]内的数字,其中[0, 9]内的
+ 数字采用常规4个下珠结合1个上珠的方法进行表示,[10, 15]
+ 内的数字则需要额外使用\enquote{底珠}和\enquote{顶珠}进行表示,
+ [16, 20]内的数字则需要再额外使用\enquote{悬珠}进行表示。
+
+ 宏包还为\tn{rod}命令同时提供了\tn{rod*}星号命令用于排版在
+ 横梁上带有计位点(圆点)的档位。
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rod{1}{1} % 常规档位
+ \rod{2}{6}
+ \rod*{3}{10} % 计位点,使用底珠
+ \rod{4}{12} % 使用顶珠
+ \rod{5}{18} % 使用悬珠
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsubsection{\tn{rods}一组档位排版命令}
+
+\begin{function}{\rods}
+ \begin{syntax}
+ \cs{rods} \marg{数字列表}
+ \end{syntax}
+\end{function}
+
+ 用于排版在\marg{数字列表}中用逗号分隔的一组数字指定的档位,
+ 各档位编号基于1,从左向右进行自动编号。
+
+ \marg{数字列表}中的各档位数字支持[0, 20]内的数字,其中[0, 9]内的
+ 数字采用常规4个下珠结合1个上珠的方法进行表示,[10, 15]
+ 内的数字则需要额外使用\enquote{底珠}和\enquote{顶珠}进行表示,
+ [16, 20]内的数字则需要再额外使用\enquote{悬珠}进行表示。
+
+ \begin{notezh}
+ 宏包并没有为\tn{rods}命令提供在横梁排版计位点的档位的
+ 操作。如果需要,则可以使用\tn{rod*}命令对指定档位进行覆盖绘制。
+ \end{notezh}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \rod*{3}{12}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.0.1}{2024/08/26}{rename \tn{bidclr} to \tn{bid}.}
+\changes{v1.1.3}{2024/09/01}{add draw color option to \tn{bid},
+ change \texttt{pos} to clist and
+ set default bid draw color to \texttt{innerdrawcolor}.}
+\changes{v1.1.3}{2024/09/04}{add highlight to bid(s)}
+
+\subsubsection{\tn{bid}算珠着色命令}
+
+\begin{function}{\bid}
+ \begin{syntax}
+ \cs{bid} \marg{档位编号}\marg{位置列表}\marg{填充颜色}\oarg{绘制颜色}
+ \end{syntax}
+\end{function}
+
+ 用于将\marg{档位编号}指定的档位中,用逗号分隔的\marg{位置列表}中
+ 指定的所有算珠的填充色设置为\marg{填充颜色}指定的颜色,将其绘制
+ 颜色设置为可选项\oarg{绘制颜色}(默认为内珠绘制颜色)。
+
+ 一个档位中的\marg{算珠位置}自下向上,按\enquote{$1, 2, \cdots, 11$}%
+ 的顺序进行编号。其中下珠占\enquote{$1, 2, \cdots, 7$}的位置,上珠占
+ \enquote{$8, 9, 10$}的位置,悬珠占\enquote{$11$}的位置。
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 0, 7, 11, 8, 19}
+ \bid{1}{1}{brown5}
+ \bid{2}{5}{brown5}
+ \bid{3}{6}{red5}
+ \bid{4}{7}{red5}
+ \bid{4}{8}{azure5}
+ \bid{4}{9}{yellow5}
+ \bid{5}{10}{violet5}
+ \bid{6}{4,5,6,11}{teal4}[magenta5]
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.1.0}{2024/08/28}{adde \tn{bids} macro.}
+\changes{v1.1.3}{2024/09/01}{change \tn{bids} macro inner bids draw color to
+ \texttt{innerdrawcolor} and outter bids draw
+ color to \texttt{outerdrawcolor}.}
+
+\subsubsection{\tn{bids}内珠或外珠着色命令}
+
+\begin{function}{\bids}
+ \begin{syntax}
+ \cs{bids} \marg{档位编号}\marg{档位数字}\marg{填充颜色}
+ \end{syntax}
+\end{function}
+
+ 用于将\marg{档位编号}指定的档位中,所有\marg{档位数字}的内珠
+ 设置为\marg{填充颜色}指定的颜色。同时,该命令还将
+ 算珠绘制颜色设置内珠绘制颜色(\texttt{innerdrawcolor})。
+
+ 宏包还为\tn{bids}命令同时提供了\tn{bids*}星号命令用于设置该档
+ 所有外珠的颜色。此时,算珠绘制颜色设置外珠绘制颜色
+ (\texttt{outerdrawcolor})。
+
+ \begin{notezh}
+ 该命令只能选择内珠或外珠进行着色,不能同时选择内珠和外珠。
+ \end{notezh}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 0, 7, 11, 8, 19}
+ \bids{3}{7}{teal4}
+ \bids*{5}{8}{azure5}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.2.0}{2024/09/04}{add \tn{rodmark} macro for marking rod(s) on beams.}
+
+\subsubsection{\tn{rodmark}横梁标记命令}
+
+\begin{function}{\rodmark}
+ \begin{syntax}
+ \cs{rodmark} \oarg{起始档位}\marg{标记列表}
+ \end{syntax}
+\end{function}
+
+ 用于从\oarg{起始档位}可选项指定的档位开始,用\marg{标记列表}%
+ 中逗号分隔的标记在算盘横梁上为各档位添加标记。
+
+ \begin{notezh}
+ 如果\marg{标记列表}中的标记数量超出从\oarg{起始档位}开始的
+ 档位数,多余的标记将被忽略。在\marg{标记列表}中,可以用一
+ 对``\{\}''分组符号表示空白标记。
+ \end{notezh}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 2, 6, 6, 9, 0}
+ \rodmark{4,{},2,1,0,-1,-2}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 2, 6, 6, 9, 0}
+ \rodmark[2]{千,百,十,个}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.1.3}{2024/09/04}{highlight all frame and remove arguments of \tn{lrframe},
+ at the same time change \tn{lrframe} to \tn{mkframe}.}
+
+\subsubsection{\tn{mkframe}边框排版命令}
+
+\begin{function}{\mkframe}
+ \begin{syntax}
+ \cs{mkframe}
+ \end{syntax}
+\end{function}
+
+ 用于排版算盘的边框。
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \mkframe
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{\tn{suanpanset}选项设置命令}
+
+\begin{function}{\suanpanset}
+ \begin{syntax}
+ \cs{suanpanset} \marg{外观选项}
+ \end{syntax}
+\end{function}
+
+ 通过\marg{外观选项}的key-value选项设置算盘的算珠、边框等元素的
+ 绘制颜色、填充颜色、线条宽度;各档位之间的间距、算珠之间的间距;
+ 算盘整体的缩放比例等外观属性。
+
+ 通过\cs{suanpan}\marg{外观选项}设置的外观属性对后续所有算盘排版
+ 操作有效。
+
+ % \begin{notezh}
+ % 由于\pkg{suanpan-l3}宏包涉及大量绘图操作,因此建议尽量减少在每个
+ % \env{suanpan}排版环境的可选项中使用\oarg{外观选项}设置,以
+ % 节约编译时间。如需要更改算盘外观,可以在引用宏包时,通过为宏包
+ % 添加选项实现,也可以执行\tn{suanpanset}命令进行必要的
+ % 全局设置或在一定范围内进行统一设置。
+ % \end{notezh}
+
+\section{宏包选项}
+
+在\pkg{suanpan-l3}宏包中,算盘颜色、线条宽度、档位及算珠间距等
+算盘外观属性可以在引入宏包时通过\oarg{宏包选项}进行设置,
+也可以在\env{suanpan}环境的\oarg{外观选项}中进行局部设置,
+还可以通过\cs{suanpanset}命令进行全局或局部设置。
+
+强烈建议在引用宏包时通过\oarg{宏包选项}为一个文档统一全局设置
+算盘外观属性,以节约编译时间。应避免频繁\env{suanpan}环境中使用
+\oarg{宏包选项}或使用\cs{suanpanset}命令设置算盘外观属性。
+
+\pkg{suanpan-l3}宏包选项是一个英文逗号分隔的选项列表,其
+选项是\marg{key}|=|\marg{value}形式。部分选项的\marg{value}可以省略。
+对于同一选项,后续设置会覆盖以前设置。
+
+\pkg{suanpan-l3}宏包采用\LaTeX3风格的键值设置,支持不同类型以及多种层次的
+选项设定。键值列表中,``|=|''左右的空格不影响设置。但需注意,参数列表中%
+\textsf{不可以出现空行}。
+
+布尔型的参数\marg{选项}|=true|中的``|=true|''可以省略。
+
+\changes{v1.2.1}{2024/09/05}{change bid(s) figure to a single
+ round cap line in draft and remove
+ all highlight of bid(s), rod(s) and
+ frame.}
+
+\subsection{草稿模式}
+
+\begin{option}{ opt = draft, desc = {= \meta{草稿模式}}, init=false }
+ 设置草稿模式。
+\end{option}
+
+ \oarg{draft}选项会将算珠用圆角线冒直线实现绘制,取消所有高光效果,
+ 从而加快编译速度。同时,\oarg{draft}选项还会将空档算珠绘制选项\oarg{empty}%
+ 设置为\texttt{false},也就是不绘制空档上的算珠。
+
+ \begin{notezh}
+ 在草稿模式下算盘排版会与期望的排版结果有出入。
+ \end{notezh}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.53\linewidth,gobble=2]
+ % \usepackage[draft]{suanpan}
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}[draft]
+ \rods{0, 6, 12, 18, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.1.2}{2024/08/31}{add empty option to remove bids on empty rod.}
+
+\subsection{是否绘制空档算珠}
+
+\begin{option}{ opt = empty, desc = {= \meta{空档}}, init=true }
+ 设置是否绘制空档算珠。
+\end{option}
+
+ \oarg{empty}选项用于选择是否绘制空档上的算珠,如果不绘制,
+ 在一定程度上可以加快编译速度。
+
+ \begin{notezh}
+ 如有需要,可以使用\tn{bid}或\tn{bids*}命令为空档绘制算珠。
+ \end{notezh}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.53\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}[empty = false]
+ \rods{0, 6, 12, 18, 0}
+ \bids*{5}{0}{gray6}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{线宽}
+
+\begin{option}{ opt = linewd, desc = {= \meta{线宽}}, init=2pt }
+ 设置算盘绘制中的线宽。
+\end{option}
+
+ \oarg{linewd}选项用于设置算盘边框内线线宽,同时会将
+ 边框外线设置为linewd的7.00倍,将档杆和算珠线宽
+ 设置为linewd的0.2倍。
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, linewd = 3pt}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.2.2}{2024/09/07}{add bidh, bidd, rodd and framew options
+ to set the base size of suanpan.}
+
+\subsection{算珠高度}
+
+\begin{option}{ opt = bidh, desc = {= \meta{算珠高度}}, init=12mm }
+ 设置算珠高度。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidh = 18mm}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{算珠直径}
+
+\begin{option}{ opt = bidd, desc = {= \meta{算珠直径}}, init=23mm }
+ 设置算珠直径。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidd = 36mm}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{档杆直径}
+
+\begin{option}{ opt = rodd, desc = {= \meta{档杆直径}}, init=7mm }
+ 设置档杆直径。
+\end{option}
+
+\begin{noteen}
+ 档杆直径rodd应该小于算珠直径bidd。
+\end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, rodd = 3mm}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{边框宽度}
+
+\begin{option}{ opt = framew, desc = {= \meta{边框宽度}}, init=13mm }
+ 设置边框宽度。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, framew = 7mm}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \mkframe
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{档位间距}
+
+\begin{option}{ opt = rodsep, desc = {= \meta{档位间距}}, init=3.0pt }
+ 设置算盘各档间的间距。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, rodsep = 15pt}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+ \begin{notezh}
+ 修改档位间距会改变算盘排版的宽度。
+ \end{notezh}
+
+\subsection{算珠间距}
+
+\begin{option}{ opt = bidsep, desc = {= \meta{算珠间距}}, init=1.8pt }
+ 设置算珠间的间距。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidsep = 4pt}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+ \begin{notezh}
+ 修改算珠间距不会改变算盘的尺寸,但算珠高度会发生变化。
+ 另外,过小的算珠高度会造成算珠圆角的畸变。
+ \end{notezh}
+
+\subsection{缩放比例}
+
+\begin{option}{ opt = scale, desc = {= \meta{缩放比例}}, init=1.0 }
+ 设置算盘输出结果的整体缩放比例。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 1.20}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{边框颜色}
+
+\begin{option}{ opt = framedraw, desc = {= \meta{边框颜色}}, init=black }
+ 设置算盘边框颜色。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, framedraw = brown3}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+ \begin{notezh}
+ 边框颜色包括内外边框和横梁颜色。
+ \end{notezh}
+
+\subsection{档杆绘制颜色}
+
+\begin{option}{ opt = roddraw, desc = {= \meta{档杆绘制颜色}}, init=black }
+ 设置档杆绘制颜色。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, roddraw = red8}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{档杆填充颜色}
+
+\begin{option}{ opt = rodfill, desc = {= \meta{档杆填充颜色}}, init=white }
+ 设置档杆填充颜色。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, rodfill = brown6}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{外珠绘制颜色}
+
+\begin{option}{ opt = outerdraw, desc = {= \meta{外珠绘制颜色}}, init=black }
+ 设置档杆上外珠\footnote{外珠是指离梁不记数的算珠。}绘制颜色。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, outerdraw = red8}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{外珠填充颜色}
+
+\begin{option}{ opt = outerfill, desc = {= \meta{外珠填充颜色}}, init=black!40 }
+ 设置外珠填充颜色。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, outerfill = yellow6}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{内珠绘制颜色}
+
+\begin{option}{ opt = innerdraw, desc = {= \meta{内珠绘制颜色}}, init=black }
+ 设置档杆上内珠\footnote{内珠是指靠梁记数的算珠。}绘制颜色。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, innerdraw = red8}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{内珠填充颜色}
+
+\begin{option}{ opt = innerfill, desc = {= \meta{内珠填充颜色}}, init=black}
+ 设置内珠填充颜色。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, innerfill = red5}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\changes{v1.2.2}{2024/09/07}{add font option
+ to set the font of mark.}
+\subsection{标记字体}
+
+\begin{option}{ opt = font, desc = {= \meta{标记字体}}, init=\tn{bfseries}\tn{Large} }
+ 设置标记字体。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65,
+ font=\rmfamily\Huge}
+ \begin{suanpan}
+ \rods{0, 2, 6, 6, 9, 0}
+ \rodmark{4,3,2,1,0,-1}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\bigskip
+
+\changes{v1.1.1}{2024/08/30}{add English documentation.}
+
+\title{
+ \pkg{suanpan-l3} package for traditional Chinese 7-bids suanpan(abacus)
+ \rlap{\makebox[4cm][r]{
+ \normalsize $\Longrightarrow$ \color{red}
+ \protect\hyperlink{zh}{中文版本}
+ \protect\hypertarget{en}{}
+ }}
+}
+\author{Nan Geng \texttt{<nangeng@nwafu.edu.cn>}}
+\date{\today\qquad \vers}
+
+\maketitle
+
+\section{Introduction}
+
+\pkg{suanpan-l3} is a traditional Chinese 7-bids suanpan drawing package
+utilizes \pkg{l3draw} and \pkg{TikZ} and is developed with \pkg{Expl3}.
+It can effectively manage both upper and lower bids, while also considering
+bottom bid, top bid, and hanging bid.
+
+This package offers a unique environment for drawing suanpan,
+denoted as \env{suanpan}. Within this environment, 8 specialized macros
+are available for the creation of suanpan. The \tn{rod} macro is used
+to lay out a single rod, while the \tn{rod*} macro draws a counting point
+on this rod’s beam. The \tn{rods} macro is capable of laying out a set of rods.
+The \tn{bid} macro colors the specified bid. The \tn{bids} macro colors
+all inner bids that are near the beam, while the \tn{bids*} macro colors
+all outer bids that are far from the beam. The \tn{rodmark} macro mark all rods
+on beam. Lastly, the \tn{mkframe} macro
+is used to lay out the left and right frames of an abacus.
+
+At the same time, the package offers customization options for suanpan,
+including line width, draw color, fill color, bid space, rod space, etc.
+These can be configured through package options, \env{suanpan} environment
+options, or the \tn{suanpanset} macro.
+
+\begin{center}
+ \begin{suanpan}[framedraw = brown2, scale = 0.45, bidsep=1.5pt,
+ roddraw = brown3, rodfill = brown4]
+ % rod's val list
+ \rods{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
+ % counting point
+ \rod*{4}{3}
+ \rod*{18}{17}
+ % top bid
+ \bid{12}{9}{azure5}
+ \bid{13}{9}{azure5}
+ \bid{14}{9}{azure5}
+ \bid{15}{9}{azure5}
+ \bid{16}{9}{azure5}
+ % hanging bid
+ \bid{17}{11}{red5}
+ \bid{18}{11}{red5}
+ \bid{19}{11}{red5}
+ \bid{20}{11}{red5}
+ \bid{21}{11}{red5}
+ % bottom bid
+ \bid{11}{3}{olive5}
+ \bid{16}{3}{olive5}
+ \bid{21}{3}{olive5}
+ \rodmark{21,20,19,{},17,16,15,14,13,12,11,10,9,8,7,6,5,{},3,2,1}
+ \mkframe
+ \end{suanpan}
+\end{center}
+
+\section{Interface}
+
+\subsection{\env{suanpan} environment}
+
+\begin{function}{suanpan}
+ \begin{syntax}
+ \tn{begin}|{suanpan}|\oarg{options}
+ .....
+ \tn{end}|{suanpan}|
+ \end{syntax}
+\end{function}
+
+ Typesetting 7-bids Chinese suanpan with \oarg{options}.
+
+ Within the \env{suanpan} environment, \tn{rod}, \tn{rod*}, \tn{rods}, \tn{bid},
+ \tn{bids}, \tn{bids*}, \tn{rodmark} and \tn{mkframe} 8 specialized macros
+ are available for the creation of suanpan.
+
+ \oarg{options} is a key-value list for line width, draw color, fill color,
+ bid space, rod space, etc.
+
+ \oarg{options} is environment's local setting.
+
+ \begin{noteen}
+ You should remove all blank line in \env{suanpan} environment.
+ \end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rod{1}{0}
+ \rod{2}{3}
+ \rod{3}{0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{\env{suanpan}'s specialized macros}
+
+\subsubsection{\tn{rod}---single rod}
+
+\begin{function}{\rod}
+ \begin{syntax}
+ \cs{rod} \marg{num} \marg{val}
+ \end{syntax}
+\end{function}
+
+ The \tn{rod} macro is used to lay out a single rod.
+
+ The \marg{num} argument numbers the rods from left to right.
+ The \marg{val} is the number to be represented on the rod from
+ 0 to 20. For number within [0, 9], it is represented using 4 lower deck
+ bids and 1 upper deck bid. Numbers within [10, 15] are represented additionally
+ using bottom bid and top bid. For numbers within [16, 20], hanging bid is also
+ required for representation.
+
+ The starred version \tn{rod*} will draw a counting point on this rod's beam.
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rod{1}{1} % normal rod
+ \rod{2}{6}
+ \rod*{3}{10} % counting point and
+ % bottom bid
+ \rod{4}{12} % top bid
+ \rod{5}{18} % hanging bid
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsubsection{\tn{rods}---a set of rods}
+
+\begin{function}{\rods}
+ \begin{syntax}
+ \cs{rods} \marg{val list}
+ \end{syntax}
+\end{function}
+
+ The \tn{rods} macro is used to lay out a set of rods.
+
+ The \marg{val list} is a value list of each rod seperated by commas.
+ Each rod number is automatically numbered from left to right.
+
+ Each value in \marg{val list} is the number to be represented on the rod from
+ 0 to 20. For number within [0, 9], it is represented using 4 lower deck
+ bids and 1 upper deck bid. Numbers within [10, 15] are represented additionally
+ using bottom bid and top bid. For numbers within [16, 20], hanging bid is also
+ required for representation.
+
+ \begin{noteen}
+ The starred version \tn{rods*} for counting point is not provided.
+ Use the \tn{rod*} macro to overlay the specified rod for drawing.
+ \end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \rod*{3}{12}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsubsection{\tn{bid}---color bid}
+
+\begin{function}{\bid}
+ \begin{syntax}
+ \cs{bid} \marg{num}\marg{pos list}\marg{fill color}\oarg{draw color}
+ \end{syntax}
+\end{function}
+
+ The \tn{bid} macro fills the specified bid.
+
+ The \marg{num} is the same as for \tn{rod}; the \marg{fill color} argument
+ defines the fill color and the comma-seperated \marg{pos list} argument tells
+ which bid has to be colored in \marg{num} rod. The \oarg{draw color} option
+ gives the draw color(default is inner bid draw color) .
+
+ The \marg{pos} in a rod is numbered from the bottom up in the order
+ $1, 2, \cdots, 11$. The lower deck bids occupies position
+ $1, 2, \cdots, 7$, the upper deck bids occupies position $8, 9, 10$,
+ and the hanging bead occupies position $11$ between $9$ and $10$ .
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 0, 7, 11, 8, 19}
+ \bid{1}{1}{brown5}
+ \bid{2}{5}{brown5}
+ \bid{3}{6}{red5}
+ \bid{4}{7}{red5}
+ \bid{4}{8}{azure5}
+ \bid{4}{9}{yellow5}
+ \bid{5}{10}{violet5}
+ \bid{6}{4,5,6,11}{teal4}[magenta5]
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsubsection{\tn{bids}---color inner/outer bids}
+
+\begin{function}{\bids}
+ \begin{syntax}
+ \cs{bids} \marg{num}\marg{val}\marg{color}
+ \end{syntax}
+\end{function}
+
+ The \tn{bids} macro fills all inner bids that are near the beam.
+
+ \marg{num} and \marg{color} are the same as for \tn{bid};
+ the \marg{val} argument is the same as for \tn{rod}.
+
+ The \marg{color} is fill color for inner bids. it also set
+ \texttt{innercolor} to be used for inner bids drawing color.
+
+ The starred version \tn{bids*} is used to color outer bids of \marg{num} rod.
+ it also set \texttt{outercolor} to be used for inner bids drawing color.
+
+ \begin{noteen}
+ This macro can only select the inner bids or the outer bids for coloring,
+ you can't select both the inner and outer bids at the same time.
+ \end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 0, 7, 11, 8, 19}
+ \bids{3}{7}{teal4}
+ \bids*{5}{8}{azure5}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsubsection{\tn{rodmark} rod(s) marking on beam}
+
+\begin{function}{\rodmark}
+ \begin{syntax}
+ \cs{rodmark} \oarg{st}\marg{maker list}
+ \end{syntax}
+\end{function}
+
+ The \tn{rodmark} macro marks the rod(s) on the beam.
+
+ The \oarg{st} argument is the start rod and \marg{marker list}
+ is the marker list.
+
+ \begin{noteen}
+ If the number of \marg{marker List} exceeds the number of
+ rods from \oarg{st}, the excess markers will be ignored.
+ In the \marg{marker list}, it is possible to use a pair of
+ ``\{\}'' grouping to indicate blank marker.
+ \end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 2, 6, 6, 9, 0}
+ \rodmark{4,{},2,1,0,-1,-2}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 2, 6, 6, 9, 0}
+ \rodmark[2]{Q,C,X,I}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsubsection{\tn{mkframe}---layout frame}
+
+\begin{function}{\mkframe}
+ \begin{syntax}
+ \cs{mkframe}
+ \end{syntax}
+\end{function}
+
+ The \tn{mkframe} macro is used to lay out the frames of
+ a suanpan.
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \mkframe
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{\tn{suanpanset}}
+
+\begin{function}{\suanpanset}
+ \begin{syntax}
+ \cs{suanpanset} \marg{options}
+ \end{syntax}
+\end{function}
+
+ The \tn{suanpanset} macro offers customization options for suanpan,
+ including line width, draw color, fill color, bid space, rod space, etc.
+
+ The \marg{options} is a key-value list.
+
+ The \marg{options} seted by the \cs{suanpanset} are valid for
+ all subsequent \env{suanpan} environments.
+
+\section{options}
+
+The \pkg{suanpan-l3} package offers customization options for abacus,
+including line width, draw color, fill color, bid space, rod space, etc.
+These can be configured through package \oarg{options}, \env{suanpan}
+environment \oarg{options}, or the \tn{suanpanset} macro.
+
+It is strongly recommended that suanpan options be set globally
+for a document uniformly via \oarg{options} of packages to save compilation time.
+Frequent use of \oarg{options} in \env{suanpan} environments or
+use of the \tn{suanpanset} command to set suanpan options should be avoided.
+
+The \oarg{options} is a comma-seperated list of options in the form
+\marg{key}|=|\marg{value}. The \marg{value} can be omitted for some options.
+For the same option, subsequent settings will override the previous one.
+
+The \pkg{suanpan-l3} package uses \LaTeX3 style key settings,
+supporting different types and levels of options. In the key list,
+spaces around ``='' do not affect the settings.
+However, it is important to note that blank lines are not allowed in the list.
+
+The ``|=true|'' in the \marg{option}|=true| for Boolean types can be omitted.
+
+\subsection{draft}
+
+\begin{option}{ opt = draft, desc = {= \meta{draft}}, init=false }
+ Draft mode.
+\end{option}
+
+ The \oarg{draft} option speeds up compilation by drawing
+ bids using round cap line, at same time it will remove all
+ highlight of bid(s), rod(s) and frame.
+
+ At the same time \oarg{draft} option will set the \oarg{empty} option
+ to \texttt{false} to remove all bids on empty rod.
+
+ \begin{noteen}
+ Suanpan layout in draft mode may differ from the desired layout.
+ \end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.53\linewidth,gobble=2]
+ % \usepackage[draft]{suanpan}
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}[draft]
+ \rods{0, 6, 12, 18, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{empty}
+
+\begin{option}{ opt = empty, desc = {= \meta{empty}}, init=true }
+ Remove bids on empty rod or not.
+\end{option}
+
+ The \oarg{empty} option will remove all bids on empty rod.
+
+ \begin{noteen}
+ If necessary, you can use the \tn{bid} or \tn{bids*} macro to
+ draw bid(s) for the empty rod.
+ \end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.53\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65}
+ \begin{suanpan}[empty=false]
+ \rods{0, 6, 12, 18, 0}
+ \bids*{5}{0}{gray6}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{line width}
+
+\begin{option}{ opt = linewd, desc = {= \meta{linewd}}, init=2pt }
+ Drawing line width.
+\end{option}
+
+ The \oarg{linewd} is used to set the line width of the frame inner,
+ and will also set the line width the frame outer to 7.00 times linewd,
+ and the rod and bid line widths to 1.00 times linewd.
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, linewd = 3pt}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{bid height}
+
+\begin{option}{ opt = bidh, desc = {= \meta{bidh}}, init=12mm }
+ The height of bid.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidh = 18mm}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{bid diameter}
+
+\begin{option}{ opt = bidd, desc = {= \meta{bidd}}, init=23mm }
+ The diameter of bid.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidd = 36mm}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{rod diameter}
+
+\begin{option}{ opt = rodd, desc = {= \meta{rodd}}, init=7mm }
+ The diameter of rod.
+\end{option}
+
+\begin{noteen}
+ The rodd should be smaller than the bidd.
+\end{noteen}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, rodd = 3mm}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{frame width}
+
+\begin{option}{ opt = framew, desc = {= \meta{framew}}, init=13mm }
+ The width of frame.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, framew = 7mm}
+ \begin{suanpan}
+ \rods{0, 6, 12, 18, 0}
+ \mkframe
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{rod spacing}
+
+\begin{option}{ opt = rodsep, desc = {= \meta{rodsep}}, init=3.0pt }
+ The spacing between suanpan rods.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, rodsep = 15pt}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+ \begin{noteen}
+ The \oarg{rodsep} will change the width of the suanpan.
+ \end{noteen}
+
+\subsection{bid spacing}
+
+\begin{option}{ opt = bidsep, desc = {= \meta{bidsep}}, init=1.8pt }
+ The spacing between suanpan bids.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidsep = 4pt}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+ \begin{noteen}
+ The \oarg{bidsep} does not change the size of the suanpan.
+ But the height of each bid will be changed.
+ In addition, too small an bid height will cause distortion
+ of the rounded corners of the bid.
+ \end{noteen}
+
+\subsection{scale}
+
+\begin{option}{ opt = scale, desc = {= \meta{scale}}, init=1.0 }
+ Scaling factor of whole suanpan.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 1.20}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{frame color}
+
+\begin{option}{ opt = framedraw, desc = {= \meta{framedraw}}, init=black }
+ Frame drawing color.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, framedraw = brown3}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+ \begin{noteen}
+ Frame colors include inner and outer of frame and beam colors.
+ \end{noteen}
+
+\subsection{rod drawing color}
+
+\begin{option}{ opt = roddraw, desc = {= \meta{roddraw}}, init=black }
+ Rod drawing color.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, roddraw = red8}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{rod filling color}
+
+\begin{option}{ opt = rodfill, desc = {= \meta{rodfill}}, init=white }
+ Rod filling color.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, rodfill = brown6}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{outer bids drawing color}
+
+\begin{option}{ opt = outerdraw, desc = {= \meta{outerdraw}}, init=black }
+ The outer bids\footnote{The outer bid is that is not counted away from the beam.}drawing color.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, outerdraw = red8}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{outer bids filling color}
+
+\begin{option}{ opt = outerfill, desc = {= \meta{outerfill}}, init=black!40 }
+ The outer bids filling color。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, outerfill = yellow6}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{inner bids drawing color}
+
+\begin{option}{ opt = innerdraw, desc = {= \meta{innerdraw}}, init=black }
+ The inner bids\footnote{The inner bid is that is counted near to the beam.}drawing color.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, innerdraw = red8}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{inner bids filling color}
+
+\begin{option}{ opt = innerfill, desc = {= \meta{innerfill}}, init=black}
+ The inner bids filling color.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.37\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, innerfill = red5}
+ \begin{suanpan}
+ \rods{0, 6, 0}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\subsection{mark font}
+
+\begin{option}{ opt = font, desc = {= \meta{font}}, init=\tn{bfseries}\tn{Large} }
+ The font of mark(s).
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.40\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65,
+ font=\rmfamily\Huge}
+ \begin{suanpan}
+ \rods{0, 2, 6, 6, 9, 0}
+ \rodmark{4,3,2,1,0,-1}
+ \end{suanpan}
+\end{SideBySideExample}
+
+\end{documentation}
+
+\end{document}
diff --git a/macros/latex/contrib/tableof/README.md b/macros/latex/contrib/tableof/README.md
index fa5ea8d72b..2f0b93dd0a 100644
--- a/macros/latex/contrib/tableof/README.md
+++ b/macros/latex/contrib/tableof/README.md
@@ -2,9 +2,9 @@ tableof
=======
- Package: tableof (Tables of tagged contents)
-- Version: 1.4c (2021/07/05)
+- Version: 1.4d (2024/09/17)
- License: LPPL 1.3c
-- Copyright (C) 2012, 2013, 2015, 2018, 2021 Jean-Francois Burnol <jfbu at free dot fr>
+- Copyright (C) 2012, 2013, 2015, 2018, 2021, 2024 Jean-Francois Burnol <jfbu at free dot fr>
Provides `\toftagstart{}`, `\toftagstop{}`, `\toftagthis{}`, `\tofuntagthis{}`
to tag chapters, sections or any other sectioning units destined to end up in
@@ -31,6 +31,10 @@ usable only once, contrarily to the `\tableof{}` et al. package macros.
Change History
==============
+* v1.4d (2024/09/17) reestablishes compatibility with `hyperref`,
+ which got broken at the latter `v7.01c` release. The package now
+ requires LaTeX 2020-10-01. Thanks to Ekkart Kleinod for report.
+
* v1.4c (2021/07/05) additional efforts for `biblatex` compatibility.
Allow style file extraction via `etex`, reword the abstract. Use utf8
source encoding.
diff --git a/macros/latex/contrib/tableof/tableof.dtx b/macros/latex/contrib/tableof/tableof.dtx
index bd7a435cef..bd952ec2a3 100644
--- a/macros/latex/contrib/tableof/tableof.dtx
+++ b/macros/latex/contrib/tableof/tableof.dtx
@@ -1,14 +1,14 @@
% -*- coding: utf-8; -*-
%<*none>
-{\def\doctimestamp {Time-stamp: <05-07-2021 14:42:11 CEST>}%
+{\def\doctimestamp {Time-stamp: <17-09-2024 10:15:25 CEST>}%
\def\getdtxtimestamp #1 <#2 #3 #4>{#2 at #3 #4}%
\xdef\tofdtxtimestamp {\expandafter\getdtxtimestamp\doctimestamp }}%
%</none>
%%
%% Package: tableof
-%% Version: 1.4c (2021/07/05)
+%% Version: 1.4d (2024/09/17)
%% License: LPPL 1.3c
-%% Copyright (C) 2012, 2013, 2015, 2018, 2021 Jean-Francois Burnol <jfbu at free dot fr>
+%% Copyright (C) 2012, 2013, 2015, 2018, 2021, 2024 Jean-Francois Burnol <jfbu at free dot fr>
%%
% See README.md for installation instructions
%
@@ -22,8 +22,8 @@
% The Author of this Work is: Jean-Francois Burnol <jfbu at free dot fr>
%<*none>
\def\pkgname {tableof}
-\def\pkgdate {2021/07/05}
-\def\pkgversion {v1.4c}
+\def\pkgdate {2024/09/17}
+\def\pkgversion {v1.4d}
\def\pkgdescription {Tables of tagged contents (JFB)}
\begingroup
\input docstrip.tex
@@ -237,11 +237,85 @@ A,B,C
% \PassOptionsToPackage{dvipdfmx-outline-open}{bookmark}
%
\makeatother
-\documentclass[a4paper,fontsize=11pt,abstract]{scrdoc}
+\documentclass[a4paper,fontsize=11pt,abstract]{scrartcl}
+\makeatletter
+%%% START OF CUSTOM doc.sty LOADING (May 21, 2022 in xint.dtx)
+%%% (August 26, 2022 in etoc.dtx, comments trimmed)
+%%% (September 17, 2024 here, some unneeded stuff removed,
+%%% I do not have time to do the syntax coloring as in etoc.pdf,
+%%% and in particular there is here no reason to use doc=v2)
+
+
+% At 1.4d I wanted to use doc v3, but hypdoc is causing too much trouble.
+% - a warning in the log about hyperref already loaded,
+% - an overwrite of my hidelinks option,
+% - an impact on placement of codeline numbers in implementation part.
+\usepackage{doc}[=v2]
+% As explained above I was formerly using scrdoc hence ltxdoc indirectly.
+% Let's emulate here the little I appear to need from ltxdoc.cls and
+% srcdoc.cls.
+%
+\AtBeginDocument{\MakeShortVerb{\|}}
+\DeclareFontShape{OT1}{cmtt}{bx}{n}{<-> ssub * cmtt/m/n}{}
+\DeclareFontFamily{OMS}{cmtt}{\skewchar\font 48} % '60
+\DeclareFontShape{OMS}{cmtt}{m}{n}{<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{n}{<-> ssub * cmsy/b/n}{}
+\DeclareFontShape{OT1}{cmss}{m}{it}{<->ssub*cmss/m/sl}{}
+\CodelineNumbered
+% \EnableCrossrefs % but this will be hacked
+% \setcounter{StandardModuleDepth}{1} % we don't use this mechanism currently
+\def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}}
+\def\cmd@to@cs#1#2{\char\number`#2\relax}
+% Here I am loading doc=v2 but formerly I was using ltxdoc via scrdoc
+% which I dropped at release 1.4l (2022-05-29) and without much
+% thinking I had kept this.
+\DeclareRobustCommand\cs[1]{\texttt{\bslash#1}}
+% As I may have the * active, or macro names with _ or ^, I should
+% add \detokenize. But see below for a redefinition anyhow.
+%
+% More urgent is that I am also using hyperref and this definition gives wrong
+% bookmarks if \cs is used in section titles. As I had very very few usags of
+% \cs in the whole of xint.dtx, it took me a while to realize the problem
+% here. Turns out that doc=v3 by default loads hypdoc which includes this
+% configuration for hyperref compatibility:
+\AtBeginDocument{%
+\pdfstringdefDisableCommands{\def\cs#1{\textbackslash\detokenize{#1}}}%
+}%
+% As I have not loaded hyperref yet I must delay it to AtBeginDocument.
+\providecommand\marg[1]{%
+ {\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}}
+\providecommand\oarg[1]{%
+ {\ttfamily[}\meta{#1}{\ttfamily]}}
+\providecommand\parg[1]{%
+ {\ttfamily(}\meta{#1}{\ttfamily)}}
+% \@addtoreset{CodelineNo}{part}% No need for this here
+% \def\partname{File}% \partname is "fixed" somewhere further down anyhow
+% No need for this, anyhow I don't build the indices
+% \gdef\codeline@wrindex#1{\if@filesw
+% \begingroup
+% \let\protect\noexpand
+% \immediate\write\@indexfile
+% {\string\indexentry{#1}%
+% {\filesep\number\c@CodelineNo}}%
+% \endgroup\fi}
+% \let\filesep\@empty
+
+% There is very little we seem to need from the scrdoc extras: page geometry
+% is set by geometry package and a4paper option from xint.tex file. So it
+% seems I only need the hologo loading:
+\usepackage{hologo}
+%\DeclareRobustCommand*{\eTeX}{\hologo{eTeX}}%
+%\DeclareRobustCommand*{\LuaTeX}{\hologo{LuaTeX}}%
+%
+\makeatother
+%%% end of ltxdoc+srcdoc emulation from June 2022 xint.dtx,
+%%% copied over almost verbatim to etoc.dtx on 2022/08/26,
+%%% and copied and trimmed for tableof.dtx 2024/09/17.
+
\pagestyle{headings}
\usepackage[T1]{fontenc}
\usepackage[hscale=0.66,vscale=0.76]{geometry}
-
+\usepackage{centeredline}
\usepackage{txfonts}
\DeclareFontFamily{T1}{txtt}{}
\DeclareFontShape{T1}{txtt}{m}{n}{ %medium
@@ -314,6 +388,15 @@ pdfkeywords={LaTeX, table of contents},%
pdfstartview=FitH,%
pdfpagemode=UseOutlines}
+
+% Finally 1.4d uses doc=v2
+% % Attention que hypdoc fait
+% % Package hyperref Info: Option `colorlinks' set `true' on input line 75.
+% % Package hyperref Info: Option `plainpages' set `false' on input line 75.
+% % Package hyperref Info: Option `bookmarksopen' set `true' on input line 75.
+% % Package hyperref Info: Option `bookmarksnumbered' set `true' on input line 75.
+% \AtBeginDocument{\hypersetup{hidelinks}}% fix de l'effet de hypdoc
+
\usepackage{bookmark}
\DeclareRobustCommand\csa[1]{{\ttfamily\char`\\#1}}
@@ -356,7 +439,7 @@ pdfpagemode=UseOutlines}
Package version: \pkgversion\ (\pkgdate)\\
Documentation generated from tableof.dtx
with timestamp \tofdtxtimestamp\\
- \textcopyright 2012, 2013, 2015, 2018, 2021 Jean-François Burnol
+ \textcopyright 2012, 2013, 2015, 2018, 2021, 2024 Jean-François Burnol
<jfbu (at) free (dot) fr>
\end{center}
@@ -554,10 +637,6 @@ Please consider: this command should \emph{not} be used when the
\section{Compatibility with other packages}
-\tableof checks if |hyperref| is loaded as |hyperref| modifies the format of the
-lines in the |.toc| file (and this must be taken into account). This check is
-done at the \csa{begin}|{document}| so the order of loading is not important.
-
\tableof requires the document |.toc| file to use the |\contentsline| macro
(possibly patched by other packages). It is thus incompatible with the
|beamer| class. However, if |beamer| is used in an article mode, i.e., with
@@ -585,6 +664,10 @@ tables of contents, apart from
\hangafter1 }
\makeatother
+|2024/09/17 v1.4d: |reestablish compatibility with |hyperref|,
+which got broken at the latter |v7.01c| release. The package now
+requires \LaTeX{} |2020-10-01|. Thanks to Ekkart Kleinod for report.
+
|2021/07/05 v1.4c: |ensure the added scope-limiting group for |\tableof{}|
and alike macros encompasses all contents of the |.toc| file even in presence
of packages hacking into these contents (in particular |biblatex|).
@@ -696,7 +779,7 @@ document uses standard |\tableofcontents| or like commands.
%</none>
%<*package>
% \begin{macrocode}
-\NeedsTeXFormat{LaTeX2e}
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{atveryend}
\DeclareOption*{\PackageWarning{tableof}{Option `\CurrentOption' is unknown.}}
\ProcessOptions\relax
@@ -738,7 +821,8 @@ document uses standard |\tableofcontents| or like commands.
% macro is used to typeset the TOC, it is now the one bearing the
% responsability for creating the scope-limiting group.
% \begin{macrocode}
-\AtBeginDocument{\IfFileExists{\jobname.toc}
+\AtBeginDocument{%
+ \IfFileExists{\jobname.toc}
{{\endlinechar\m@ne
\makeatletter
\newread\tof@tf
@@ -746,7 +830,9 @@ document uses standard |\tableofcontents| or like commands.
\tof@toctoks{\tof@begingroup}%
\tof@readtoc
\global\tof@toctoks=\expandafter{\the\tof@toctoks\tof@endgroup}%
- \closein\tof@tf}}{}}
+ \closein\tof@tf}}
+ {}%
+}
% \end{macrocode}
% The trick is that |\@ifundefined| chooses the undefined branch if the
% meaning is |\relax|. Thus it is possible for \tableof to define and use
@@ -771,26 +857,39 @@ document uses standard |\tableofcontents| or like commands.
% |1.4c| replaces |{}| (last argument of |\@ifundefined|) by |\relax|. No
% strong reason. We and \etoc use |\endlinechar-1| anyhow.
% \begin{macrocode}
-\AtBeginDocument{
+\AtBeginDocument{%
\addtocontents{toc}{\string\@ifundefined{tof@begin}%
{\global\let\string\tof@begin\relax
\global\let\string\tof@finish\string\@empty
\global\let\string\tof@starttags\string\@gobble
\global\let\string\tof@stoptags\string\@gobble
\global\let\string\tof@tagthis\string\@gobble
- \global\let\string\tof@untagthis\string\@gobble}\relax}
- \addtocontents{toc}{\string\tof@begin}
+ \global\let\string\tof@untagthis\string\@gobble}\relax}%
+ \addtocontents{toc}{\string\tof@begin}%
+}
% \end{macrocode}
-% \LaTeX\ of 2020 or 2021 always has |\contentsline| with four arguments.
+% \textbf{Now obsolete hyperref-related remark (see next paragraph)}:
+% {\itshape\LaTeX\ of 2020 or 2021 always has |\contentsline| with four arguments.
% So an update should be done here to always gobble four, else in absence
% of |hyperref| some |{}| are left. Does not seem to matter a lot except
% if all is executed in math mode... thanks to \etoc for example.
-% No urgency here, only mentioning for the record.
+% No urgency here, only mentioning for the record.}
+%
+% |hyperref| stopped defining its |\hyper@last| at its |7.01c| release in fall
+% of 2023, but \tableof tested for it, if |hyperref| was found to be present,
+% in case a document previously not using |hyperref| started using it on
+% second compilation, hence with a wrong |.toc| file format (in earlier
+% years). As \tableof was doing
+% \centeredline{|\ifx\hyper@last\@undefined\tof@toctoks{}\fi|} it now
+% unconditionally emptied |\tof@toctoks| in presence of |hyperref|. This is
+% the same problem which impacted \etoc and got fixed at its |1.2c| release
+% but unfortunately \tableof was not updated then. Belatedly fixed at |1.4d|
+% of |2024/09/17|.
+%
+% Formerly this was a short macro, but it doesn't look like a problem
+% to simply alias it to the long |\@gobblefour|.
% \begin{macrocode}
- \@ifpackageloaded{hyperref}
- {\def\tof@gobblethree@orfour#1#2#3#4{}%
- \ifx\hyper@last\@undefined\tof@toctoks{}\fi}
- {\def\tof@gobblethree@orfour#1#2#3{}}}
+\let\tof@gobblethree@orfour\@gobblefour
% \end{macrocode}
% |1.4b| (belatedly) fixes issue with |\tof@finish| getting lost due
% to a final |\clearpage| before |\end{document}|. Indeed, formerly
@@ -999,24 +1098,6 @@ document uses standard |\tableofcontents| or like commands.
\endinput
% \end{macrocode}
% \MakePercentComment
-\CharacterTable
- {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
- Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
- Digits \0\1\2\3\4\5\6\7\8\9
- Exclamation \! Double quote \" Hash (number) \#
- Dollar \$ Percent \% Ampersand \&
- Acute accent \' Left paren \( Right paren \)
- Asterisk \* Plus \+ Comma \,
- Minus \- Point \. Solidus \/
- Colon \: Semicolon \; Less than \<
- Equals \= Greater than \> Question mark \?
- Commercial at \@ Left bracket \[ Backslash \\
- Right bracket \] Circumflex \^ Underscore \_
- Grave accent \` Left brace \{ Vertical bar \|
- Right brace \} Tilde \~}
-
-\CheckSum{559}
-
\Finale
%%
%% End of file `tableof.dtx'.
diff --git a/macros/latex/contrib/tableof/tableof.pdf b/macros/latex/contrib/tableof/tableof.pdf
index f04fc964a0..1c2d6ae655 100644
--- a/macros/latex/contrib/tableof/tableof.pdf
+++ b/macros/latex/contrib/tableof/tableof.pdf
Binary files differ
diff --git a/macros/latex/contrib/tablvar/README.md b/macros/latex/contrib/tablvar/README.md
index 565ed9c049..0be4d44111 100644
--- a/macros/latex/contrib/tablvar/README.md
+++ b/macros/latex/contrib/tablvar/README.md
@@ -6,8 +6,8 @@
- A complete and easy to use package for typesetting pretty tables of signs and variations according to French usage.
- The syntax is similar to that of the array environment and uses intuitive position commands.
- Arrows are automatically drawn (with PSTricks or TikZ).
-- Macros are provided for drawing double bars, single bars crossing the zeros, intervals where a function is not defined or for placing special values.
-- Several features of variations tables can be customized.
+- Macros are provided for drawing double bars, single bars crossing zero values, intervals where a function is not defined or for placing special values.
+- Many features of variations tables can be customized.
## Documentation
@@ -18,7 +18,7 @@ The documentation is in French.
## Installation
- run LaTeX on tablvar.ins, you obtain the file tablvar.sty,
-- if then you run XeLaTeX or LaTeX + dvips + ps2pdf on tablvar.dtx you get the file tablvar.pdf which is also in the archive,
+- if then you run LaTeX + dvips + ps2pdf on tablvar.dtx you get the file tablvar.pdf which is also in the archive,
- put the files tablvar.sty and tablvar.pdf in your TeX Directory Structure.
diff --git a/macros/latex/contrib/tablvar/tablvar.dtx b/macros/latex/contrib/tablvar/tablvar.dtx
index afc47fc953..e39c2382f0 100644
--- a/macros/latex/contrib/tablvar/tablvar.dtx
+++ b/macros/latex/contrib/tablvar/tablvar.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2018-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr>
+% Copyright (C) 2018-2024 by Antoine Missier <antoine.missier@ac-toulouse.fr>
%
% This file may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, either version 1.3 of this license
@@ -22,11 +22,11 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesPackage{tablvar}
- [2023/12/23 v2.0 .dtx tablvar file]
+ [2024/08/09 v2.1 Tables of signs and variations]
%</package>
%<*driver>
\documentclass{ltxdoc}
-\usepackage[utf8]{inputenc}
+%\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{lmodern}
@@ -38,10 +38,12 @@
\def\bbObrecht{\vrule\kern1pt\vrule} \let\bb\relax
\let\variations\relax
\usepackage{tkz-tab}
+\usepackage{pstricks}
+\usepackage{tableau}
\usepackage[pstricks]{tablvar}
\usepackage[style=french,font=fcm]{lgrmath} % pour un joli pi droit
-\usepackage{hyperref}
+\usepackage[hyperindex=false]{hyperref}
\usepackage{sectsty}
\usepackage{makecell}
\usepackage{spacingtricks}
@@ -58,6 +60,8 @@
\definecolor{darkbrown}{rgb}{0.5,0.1,0.1}
\allsectionsfont{\color{darkbrown}}
\hypersetup{%
+ bookmarksopen=true,
+ bookmarksopenlevel=2,
colorlinks,
linkcolor=blue,
citecolor=red,
@@ -76,7 +80,7 @@
%</driver>
% \fi
%
-% \CheckSum{752}
+% \CheckSum{828}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -119,27 +123,21 @@
% \changes{v2.0}{16/12/2023}{Nouveau paramètre limsep}
% \changes{v2.0}{20/12/2023}{Macro bas et mil valables pour un nb quelconque de lignes}
% \changes{v2.0}{22/12/2023}{Macros @pos -> tv@pos, @@pos -> tv@@pos}
+% \changes{v2.1}{23/07/2024}{
+% - Calcul de hauteur automatique de la colonne de légende :
+% * nouveaux paramètres rowtopsep et rowbottomsep
+% * tv@saveheight -> tv@setheight
+% - option pstricks possible avec LuaLaTeX + luapstricks,
+% - amélioration du calcul de position de la macro mil,
+% - nouvelles macros limg*, limd* et bblim*
+% - exemple plus sophistiqué pour bblim}
%
% \GetFileInfo{tablvar.sty}
-%
-% \DoNotIndex{\@@ZI,\tv@@pos,\tv@pos,\@ZI,\@arstrutbox,\@ifstar,\\}
-% \DoNotIndex{\addtocounter,\advance,\arraybackslash}
-% \DoNotIndex{\begin,\boolean,\centering,\color,\DeclareOption,\def}
-% \DoNotIndex{\define@boolkey,\defin@key,\dp,\draw,\else,\empty,\end}
-% \DoNotIndex{\fi,\fill,\global,\hspace,\ht}
-% \DoNotIndex{\I,\if,\ifdim,\ifnum,\ifthenelse,\Ix,\Iy,\kern}
-% \DoNotIndex{\makebox,\MessageBreak,\multido,\ncline,\newboolean,}
-% \DoNotIndex{\newcommand,\newcounter,\newenvironment,\newlength,\newsavebox}
-% \DoNotIndex{\node,\PackageWarningNoLine,\ProcessOptions,\psframe}
-% \DoNotIndex{\raisebox,\relax,\renewcommand,\RequirePackage,\rnode}
-% \DoNotIndex{\sbox,\setboolean,\setcounter,\setlength,\stepcounter}
-% \DoNotIndex{\TikZ,\tvanchor,\usetikzlibrary,\value,\wd}
-% \DoNotIndex{\ZIheight,\ZIheighti,\ZIheightii,\ZIheightiii,\ZIheightiv,\ZIdepth,\ZIwidth}
%
% \title{L'extension \textsf{tablvar}\thanks{Ce document
-% correspond à \textsf{tablvar}~\fileversion, dernière modification le 23/12/2023.}}
+% correspond à \textsf{tablvar}~\fileversion, dernière modification le 09/08/2024.}}
% \author{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}}
-% \date{23 décembre 2023}
+% \date{9 août 2024}
% \maketitle
% \tableofcontents
%
@@ -175,8 +173,8 @@
% |pstricks| ou |tikz|, que l'on invoque dans le préambule à l'appel de l'extension :
% |\usepackage[tikz]{tablvar}|.
% Lorsque l'option n'est pas précisée, l'extension choisira \texttt{tikz}
-% pour un compilateur PDF (comme pdf\LaTeX\ ou \LuaLaTeX), \texttt{pstricks} sinon
-% (typiquement \LaTeX\ + dvips + ps2pdf ou \XeLaTeX).
+% pour un mode de sortie PDF direct (avec pdf\LaTeX\ ou \LuaLaTeX),
+% \texttt{pstricks} sinon (avec \LaTeX\ > dvips > ps2pdf ou \XeLaTeX).
% Pour l'option |tikz|, il faut compiler \emph{deux fois},
% la première fois les flèches ne sont pas correctement dessinées
% (un message de compilation le rappelle).
@@ -189,9 +187,9 @@
%
% \subsection{Tableaux de variations simples}
%
-% % \DescribeEnv{tablvar}
+% \DescribeEnv{tablvar}
% Un tableau de variations (ou de signes) se définit par un environnement |tablvar|
-% qui \emph{doit être en mode mathématiques} (comme |array|).
+% qui \emph{doit être en mode mathématique} (comme |array|).
%
% \medskip
% Voici un premier tableau tout simple avec les commandes
@@ -235,8 +233,8 @@
% Cette unité à l'avantage de s'ajuster lorsqu'on change de fonte
% sans avoir besoin de modifier le code. L'unité de même type utilisée pour les hauteurs
% est le \texttt{ex}, hauteur du \og x \fg.}.
-% Les flèches ne sont pas contraintes à rester à l'intérieur des colonnes intervalles
-% mais s'ajustent par rapport à la taille effective des valeurs qu'elles relient.
+% La longueur des flèches s'ajuste en fonction de la taille des valeurs
+% qu'elles relient et ne sont pas contraintes à rester à l'intérieur des colonnes intervalles.
% Lorsqu'une valeur est trop large, elle déborde automatiquement
% dans les colonnes intervalles sans altérer
% les largeurs de colonne.
@@ -314,7 +312,7 @@
% (voir section \ref{options} pour la liste détaillée des options).
%
% \DescribeMacro{\variations\oarg{nblignes}}
-% C'est la commande |\variations| qui, se charge de la construction des flèches
+% C'est la commande |\variations| qui se charge de la construction des flèches
% en fonction du positionnement des valeurs.
% Un paramètre optionnel permet de définir
% un nombre arbitraire de lignes pour les variations (3 par défaut).
@@ -418,7 +416,8 @@
% \mbox{Signe de }f'(x) & & - & \barre[0] & + & \barre[0] & - & \\
% \hline
% \variations{ \mil{\makecell{\mbox{Variations} \\ \mbox{de }f}} &
-% \haut{+\infty} && \bas{-14} && \haut{\frac{69}{4}} && \bas{-\infty} }
+% \haut{+\infty} && \bas{-14} && \haut{\frac{69}{4}} &&
+% \bas{-\infty} }
% \hline
%\end{tablvar}\]
% \end{verbatim}
@@ -435,50 +434,57 @@
%
% \medskip
% Une première solution est d'interrompre la double barre pour placer
-% les limites qui resteront alors centrées au milieu de la colonne (mais il faut aimer).
+% les limites qui resteront alors centrées au milieu de la colonne
+% (mais il faut aimer).
%\[\begin{tablvar}{2}
% \hline
-% x & -\infty && 0 && +\infty \\
+% x & -\infty && 2 && +\infty \\
% \hline
-% \variations{\mil{\e^{\frac{1}{x}}} & \haut{1} &&
-% \bas{0} \pos*{2}{\bb} \discont \haut{+\infty} && \bas{1} }
+% \variations{\mil{\dfrac{1}{x-2}} & \pos{2}{0} && \bas{-\infty}
+% \pos*{2}{\bb} \discont \haut{+\infty} && \pos{2}{0} }
% \hline
%\end{tablvar}\]
-% La macro |\e| compose le nombre d'Euler $\e$ en romain (forme droite),
-% comme c'est la règle pour les constantes mathématiques
-% (cf. \textsf{mismath}~\cite{MIS} ou \textsf{frenchmath}~\cite{FR}).
% \begin{verbatim}
%\[\begin{tablvar}{2}
% \hline
-% x & -\infty && 0 && +\infty \\
+% x & -\infty && 2 && +\infty \\
% \hline
-% \variations{\mil{\e^{\frac{1}{x}}} & \haut{1} &&
-% \bas{0} \pos*{2}{\bb} \discont \haut{+\infty} && \bas{1} }
+% \variations{\mil{\dfrac{1}{x-2}} & \pos{2}{0} && \bas{-\infty}
+% \pos*{2}{\bb} \discont \haut{+\infty} && \pos{2}{0} }
% \hline
%\end{tablvar}\]
% \end{verbatim}
%
% \hypertarget{firstcolsep}{}
% \DescribeMacro{\limg} \DescribeMacro{\limd}
-% Les macros |\limg|\oarg{pos}\marg{ligne}\marg{valeur}
-% et |\limd|\oarg{pos}\marg{ligne}\marg{valeur}
+% Les macros |\limg|\oarg{pos}\marg{ligne}\marg{valeur} et
+% |\limd|\oarg{pos}\marg{lgn}\marg{val}
% offrent une solution plus élégante pour placer des limites à gauche ou à droite.
% L'option de positionnement \meta{pos} correspond à celle de la macro |\pos|
% (\texttt{c}, \texttt{t} ou \texttt{b}).
+%
+% \DescribeMacro{\limg*}\DescribeMacro{\limd*}
+% Les variantes étoilées |\limg*| et |\limd*| sont des alias :
+% |\limg*{+}| signifie |\limg{1}{+\infty}|,
+% |\limg*{-}| correspond à |\limg{|$n$|}{-\infty}|
+% (pour une partie variations sur $n$ lignes),
+% de même pour |\limd*|.
+% Tout autre argument que \texttt{+} ou \texttt{-} génère un message d'erreur.
+%
+% \DescribeMacro{firstcolsep}
+% La colonne de légende peut être élargie en ajoutant de l'espace à ses extrémités
+% avec l'option \texttt{firstcolsep} (dont la valeur par défaut est \texttt{5pt}).
%\[\begin{tablvar}[firstcolsep=10pt,intervalwidth=4em]{2}
% \hline
% x & -\infty && 0 && +\infty \\
% \hline
% -\frac{1}{x} & & + & \bb & - & \\
% \hline
-% \variations{ \mil{\dfrac{1}{x^2}} & \bas{0} && \limg{1}{+\infty} \bb
-% \discont \limd{1}{+\infty} && \bas{0} }
+% \variations{ \mil{\e^{\frac{1}{x}}} & \haut{1} && \limg{3}{0} \bb
+% \discont \limd*{+} && \bas{1} }
% \hline
%\end{tablvar}\]
%
-% \DescribeMacro{firstcolsep}
-% Ci-dessus la colonne de légende a été élargie en ajoutant de l'espace à ses extrémités
-% avec l'option \texttt{firstcolsep} (dont la valeur par défaut est \texttt{5pt}).
% \begin{verbatim}
%\[\begin{tablvar}[firstcolsep=10pt,intervalwidth=4em]{2}
% \hline
@@ -486,13 +492,18 @@
% \hline
% -\frac{1}{x} & & + & \bb & - & \\
% \hline
-% \variations{ \mil{\dfrac{1}{x^2}} & \bas{0} && \limg{1}{+\infty} \bb
-% \discont \limd{1}{+\infty} && \bas{0} }
+% \variations{ \mil{\e^{\frac{1}{x}}} & \haut{1} && \limg{3}{0} \bb
+% \discont \limd*{+} && \bas{1} }
% \hline
%\end{tablvar}\]
% \end{verbatim}
+% \vspace{-2ex}
+% La macro |\e| compose le nombre d'Euler $\e$ en romain,
+% comme c'est la règle pour les constantes mathématiques
+% (cf. \textsf{mismath}~\cite{MIS} ou \textsf{frenchmath}~\cite{FR}).
%
-% \DescribeMacro{\bblim}
+% \bigskip
+% \DescribeMacro{\bblim}\DescribeMacro{\bblim*}
% Sauf sur les bords du tableau ou lorsqu'il y a une zone interdite,
% les doubles barres sont en général accompagnées à la fois d'une limite à gauche
% et d'une limite à droite. La commande |\bblim| permet alors d'alléger la syntaxe.
@@ -502,24 +513,28 @@
% C'est un alias de
% |\limg|\marg{ligne}\marg{valeur}|\bb\discont\limd|\marg{ligne}\marg{valeur}.
% La seule différence est que |\bblim| ne possède pas d'option de positionnement
-% des nœuds comme |\limg| et |\limd|.
-%\[\begin{tablvar}{4}
+% des nœuds comme |\limg| et |\limd|. La forme étoilée offre une syntaxe
+% encore plus légère lorsque les deux limites sont infinies :
+% |\bblim*{-}{+}| correspond à |\bblim{3}{-\infty}{1}{+\infty}|
+% (lorsqu'il y a 3 lignes de variations).
+%
+%\[\begin{tablvar}{5}
% \hline
-% x & -\infty && -1 && 0 && 1 && +\infty \\
+% x & -\infty && -2 && 0 && 1 && 2 && +\infty \\
% \hline
-% \variations{\mil{\dfrac{1}{1-x^2}} & \haut{0} &&
-% \bblim{3}{-\infty}{1}{+\infty} && \bas{1} &&
-% \bblim{1}{+\infty}{3}{-\infty} && \haut{0} }
+% \variations{ \mil{\dfrac{\e^{\frac{1}{x}}}{x-2}} & \haut{0} &&
+% \bas{-\frac{1}{4}\e^{-\frac{1}{2}}} && \bblim{1}{0}{3}{-\infty} &&
+% \haut{-\e} && \bblim*{-}{+} && \bas{0} }
% \hline
%\end{tablvar}\]
% \begin{verbatim}
-%\[\begin{tablvar}{4}
+%\[\begin{tablvar}{5}
% \hline
% x & -\infty && -1 && 0 && 1 && +\infty \\
% \hline
-% \variations{\mil{\dfrac{1}{1-x^2}} & \haut{0} &&
-% \bblim{3}{-\infty}{1}{+\infty} && \bas{1} &&
-% \bblim{1}{+\infty}{3}{-\infty} && \haut{0} }
+% \variations{ \mil{\dfrac{\e^{\frac{1}{x}}}{x-2}} & \haut{0} &&
+% \bas{-\frac{1}{4}\e^{-\frac{1}{2}}} && \bblim{1}{0}{3}{-\infty} &&
+% \haut{-\e} && \bblim*{-}{+} && \bas{0} }
% \hline
%\end{tablvar}\]
% \end{verbatim}
@@ -533,7 +548,7 @@
% sauf si on préfère plus de blanc.
% On peut y compris leur donner des valeurs négatives si l'on veut s'approcher
% davantage des filets verticaux, par exemple \texttt{limsep=-1.5pt}
-% amène au contact de la double barre).
+% amènerait au contact de la double barre).
%\[\begin{tablvar}[bordercolsep=4pt,limsep=3pt]{3}
% \hline
% x & -\infty && 0 && 1 && +\infty \\
@@ -568,7 +583,7 @@
% \hline
% x & 0 && 1 && +\infty \\
% \hline
-% \variations{ \mil{\ln x -x} & \bb\limd{3}{-\infty} && \haut{-1} &&
+% \variations{ \mil{\ln x -x} & \bb\limd*{-} && \haut{-1} &&
% \bas{-\infty} }
% \hline
%\end{tablvar*}
@@ -589,7 +604,7 @@
% \hline
% x & 0 && 1 && +\infty \\
% \hline
-% \variations{ \mil{\ln x -x} & \bb\limd{3}{-\infty} && \haut{-1} &&
+% \variations{ \mil{\ln x -x} & \bb\limd*{-} && \haut{-1} &&
% \bas{-\infty} }
% \hline
%\end{tablvar*}
@@ -603,8 +618,8 @@
% \hline
%\end{tablvar*}\]
% \end{verbatim}
-% \hypertarget{ext}{}
%
+% \hypertarget{ext}{}
% \DescribeMacro{extleft}\DescribeMacro{extright}
% Dans \texttt{tablvar*}, si, à une extrémité sans double barre,
% les valeurs ont des largeurs vraiment différentes
@@ -622,25 +637,25 @@
% pour éviter que le 1 ne soit collé au bord droit
% et qu'il garde un bon centrage par rapport à $+\infty$.
%
-% \noindent\begin{minipage}[t]{7.7cm}
+% \noindent\begin{minipage}[t]{7.4cm}
% \begin{verbatim}
-%\[\begin{tablvar}[extleft,intervalwidth=4em]{1}
+%\[\begin{tablvar}[extleft]{1}
% \hline
% x & 0 && +\infty \\
% \hline
-% \variations{ \mil{1-\dfrac{1}{x}} & \bb
-% \limd{3}{-\infty} && \haut{1} }
+% \variations[2]{ \mil{1-\dfrac{1}{x}}
+% & \bb \limd*{-} && \haut{1} }
% \hline
%\end{tablvar}\]
% \end{verbatim}
% \end{minipage}
% \begin{minipage}[t]{5cm}
-%\[\begin{tablvar}[extleft,intervalwidth=4em]{1}
+%\[\begin{tablvar}[extleft]{1}
% \hline
% x & 0 && +\infty \\
% \hline
-% \variations{ \mil{1-\dfrac{1}{x}} & \bb
-% \limd{3}{-\infty} && \haut{1} }
+% \variations[2]{ \mil{1-\dfrac{1}{x}}
+% & \bb \limd*{-} && \haut{1} }
% \hline
%\end{tablvar}\]
% \end{minipage}
@@ -661,14 +676,14 @@
%
% Voici un exemple où la valeur remarquable
% est placée dans la colonne intervalle.\\
-% \begin{minipage}[t]{7.7cm}
+% \begin{minipage}[t]{7.4cm}
% \begin{verbatim}
%\[\begin{tablvar*}[6em]{1}
% \hline
% x & 0 & \vr{1} & +\infty \\
% \hline
% \variations{ \mil{\ln x} &
-% \bb \limd{3}{-\infty} & \vr{0} &
+% \bb \limd*{-} & \vr{0} &
% \pos[t]{1}{+\infty} }
% \hline
%\end{tablvar*}\]
@@ -680,7 +695,7 @@
% x & 0 & \vr{1} & +\infty \\
% \hline
% \variations{ \mil{\ln x} &
-% \bb \limd{3}{-\infty} & \vr{0} &
+% \bb \limd*{-} & \vr{0} &
% \pos[t]{1}{+\infty} }
% \hline
%\end{tablvar*}\]
@@ -702,8 +717,8 @@
% \hline
% x & -\infty && \vr{0} && \vr{1} && +\infty \\
% \hline
-% \variations[4]{ \mil{\exp x} & \haut{0} &&
-% \vr[3]{1} && \vr{\e} && \bas{+\infty} }
+% \variations[4]{ \mil{\exp x} & \bas{0} &&
+% \vr[3]{1} && \vr{\e} && \haut{+\infty} }
% \hline
%\end{tablvar}\]
% \end{verbatim}
@@ -738,7 +753,7 @@
% \medskip
% On peut préférer que les flèches de variations ne passent pas à travers
% les valeurs remarquables (qui doivent alors être aussi des nœuds pour les flèches).
-% L'exemple suivant présente un tableau utilisant simultanément
+% L'exemple qui suit présente un tableau utilisant simultanément
% les deux manières de traiter les valeurs remarquables.
% La taille des flèches s'ajuste automatiquement.
% Le second zéro correspond à la fois à un nœud pour les flèches
@@ -767,6 +782,10 @@
% L'option |[t]| pour le max en ligne 1
% est ici combinée avec l'option |[b]| en ligne 3 et permet de conserver
% un positionnement correct du 0 sur la flèche.
+%
+% Pour placer la dernière valeur, on aurait pu utiliser |\limg[b]{3}{-\infty}|,
+% mais ici |\pos[b]{3}{-\infty}| convient aussi à cause de l'option \texttt{extright}
+% qui produit un alignement au fer à droite de la dernière colonne.
% \begin{verbatim}
%\[\begin{tablvar}[extright,intervalwidth=2em]{4}
% \hline
@@ -782,7 +801,6 @@
%\end{tablvar}\]
% \end{verbatim}
%
-% \vspace{-\baselineskip}
% \DescribeMacro{\vrconnect}
% C'est la macro graphique |\vrconnect| qui gère le tracé de ces traits pointillés.
% Elle peut être redéfinie pour changer leur aspect
@@ -802,7 +820,7 @@
% 0 &\mbox{si } x= 0
%\end{array}
%\right. .\]
-% \begin{minipage}[t]{6.5cm}
+% \begin{minipage}[t]{6.7cm}
% \begin{verbatim}
%\[\begin{tablvar}{2}
% \hline
@@ -900,7 +918,7 @@
% \vspace{-\baselineskip}
% Le |\hspace{-0.5em}| devant \texttt{+} a pour effet de décaler le $+$ affiché
% vers la gauche afin de le recentrer.
-% En effet, les macros |\limg| et |limd| placent les valeurs dans des boîtes de largeur
+% En effet, les macros |\limg| et |\limd| placent les valeurs dans des boîtes de largeur
% nulle (grâce à la commande |\zbox|, voir section \ref{cmd-pos}).
% De ce fait, le contenu d'une colonne valeur (qui a une largeur fixe)
% peut déborder en largeur
@@ -926,8 +944,8 @@
% -\frac{x}{\strut\sqrt{x^2-1}^3} && + & \bb & \ZI & \bb & - & \\
% \hline
% \variations{\pos*{2}{\dfrac{1}{\sqrt{x^2-1}}} & \bas{0} &&
-% \limg{1}{+\infty} \bb & \ZI &
-% \bb \limd{1}{+\infty} && \bas{0} }
+% \limg*{+} \bb & \ZI &
+% \bb \limd*{+} && \bas{0} }
% \hline
%\end{tablvar}\]
%
@@ -943,8 +961,8 @@
% -\frac{x}{\strut\sqrt{x^2-1}^3} && + & \bb & \ZI & \bb & - & \\
% \hline
% \variations{\pos*{2}{\dfrac{1}{\sqrt{x^2-1}}} & \bas{0} &&
-% \limg{1}{+\infty} \bb & \ZI &
-% \bb \limd{1}{+\infty} && \bas{0} }
+% \limg*{+} \bb & \ZI &
+% \bb \limd*{+} && \bas{0} }
% \hline
%\end{tablvar}\]
% \end{verbatim}
@@ -961,7 +979,8 @@
% Il arrive que la compilation \LaTeX\ + dvips + ps2pdf
% n'affiche pas cette transparence,
% ce qui semble être dû à un bug dans certaines versions de Ghostscript.
-% Dans ce cas la solution est de compiler avec \XeLaTeX.
+% Dans ce cas une solution peut être de compiler avec \XeLaTeX\ ou \LuaLaTeX\
+% (si \textsf{luapstricks} est installé sur votre distribution).
% La compilation pdf\LaTeX\ avec l'option \texttt{tikz} ne pose pas ce problème.}
%
%\[\begin{tablvar}[ZItype=c,ZIcolor=green,ZIaddwidth=1pt]{3}
@@ -1000,17 +1019,18 @@
%\end{tablvar}\]
% \end{verbatim}
%
-% Si des extrema de grande taille sont placés dans la partie variations,
+% lorsque des extrema de grande taille sont placés dans la partie \emph{variations},
% il est nécessaire de modifier la hauteur des lignes,
% pour éviter de toucher le filet horizontal (au-dessus ou en-dessous)
-% \footnote{L'extension \textsf{tabularray}~\cite{TABUL} de Jianrui Lyu permettra
-% éventuellement une gestion automatisée des hauteurs de ligne dans une version future.}.
+% \footnote{L'extension \textsf{tabularray}~\cite{TABUL} de Jianrui Lyu permettrait
+% éventuellement une gestion automatisée des hauteurs de ligne
+% dans une possible version future.}.
% Cette modification peut se faire
-% avec \texttt{stretch} ou avec |\vstrut|\oarg{depth}\marg{height}
-% \emph{qu'il faut placer dans la toute 1\iere colonne} pour
+% avec l'option \texttt{stretch} ou avec |\vstrut|\oarg{depth}\marg{height}
+% qu'il faut placer \emph{dans la colonne de légendes} pour
% que |\ZI| prenne en compte sa hauteur.
-% Dans l'exemple suivant, \texttt{stretch=2.2} aurait donné le même résultat pour
-% les variations mais une ligne des $x$ plus haute.
+% Dans l'exemple suivant, \texttt{stretch=2.2} aurait donné le même résultat
+% mais une ligne des $x$ plus haute.
%
%\[\begin{tablvar}[4em]{4}
% \hline
@@ -1080,7 +1100,7 @@
% \DescribeMacro{\hachure}
% Lorsque l'on dessine des zones interdites hachurées
% sur plusieurs colonnes contiguës,
-% les hachures seront en général discontinues.
+% les hachures ne seront en général pas jointives.
% Pour pallier cela, on peut
% utiliser la primitive graphique |\hachure|
% qui permet de définir manuellement le rectangle à hachurer.
@@ -1090,16 +1110,16 @@
%\[ \begin{tablvar}[intervalwidth=1.8em,ZIaddwidth=1pt]{8}
% \hline
% x & -\infty && -2 && -\sqrt{\frac{5}{2}} && -1
-% && 0 && 1 && \sqrt{\frac{5}{2}} && 2 && +\infty \\
+% && 0 && 1 && \sqrt{\frac{5}{2}} && 2 && +\infty \\
% \hline
% 2x & &-& \barre &-& \barre &-& \barre &-& \barre[0] &+&
-% \barre &+& \barre &+& \barre &+& \\
+% \barre &+& \barre &+& \barre &+& \\
% \hline
% 2x^2-5 & &+& \barre &+& \barre[0] &-& \barre &-& \barre &-&
-% \barre &-& \barre[0] &+& \barre &+& \\
+% \barre &-& \barre[0] &+& \barre &+& \\
% \hline
% f'(x) & &-& \bb & \ZI & \barre & \ZI & \bb &+&
-% \barre[0] &-& \bb & & & & \bb & + & \\
+% \barre[0] &-& \bb & & & & \bb & + & \\
% \hline
% \variations{\mil{f(x)} & \haut{+\infty} && \bas{0}\barre & \ZI &
% \barre & \ZI & \bas{0}\barre && \haut{2} && \bas{0}\barre \discont
@@ -1108,7 +1128,7 @@
% \hline
%\end{tablvar} \] }
%
-% Pour hachurer une zone donnée, la commande |\hachure| peut être placée où l'on veut
+% La commande |\hachure| peut être placée où l'on veut
% dans le tableau, il suffit de donner les coordonnées du rectangle visé à
% partir de la position courante (réglage manuel).
% Dans la partie variations, il faut mettre la commande |\hachure| dans un |\pos*|,
@@ -1119,16 +1139,16 @@
%\[ \begin{tablvar}[intervalwidth=1.8em,ZIaddwidth=1pt]{8}
% \hline
% x & -\infty && -2 && -\sqrt{\frac{5}{2}} && -1
-% && 0 && 1 && \sqrt{\frac{5}{2}} && 2 && +\infty \\
+% && 0 && 1 && \sqrt{\frac{5}{2}} && 2 && +\infty \\
% \hline
% 2x & &-& \barre &-& \barre &-& \barre &-& \barre[0] &+&
-% \barre &+& \barre &+& \barre &+& \\
+% \barre &+& \barre &+& \barre &+& \\
% \hline
% 2x^2-5 & &+& \barre &+& \barre[0] &-& \barre &-& \barre &-&
-% \barre &-& \barre[0] &+& \barre &+& \\
+% \barre &-& \barre[0] &+& \barre &+& \\
% \hline
% f'(x) & &-& \bb & \ZI & \barre & \ZI & \bb &+&
-% \barre[0] &-& \bb & & & & \bb & + & \\
+% \barre[0] &-& \bb & & & & \bb & + & \\
% \hline
% \variations{\mil{f(x)} & \haut{+\infty} && \bas{0}\barre & \ZI &
% \barre & \ZI & \bas{0}\barre && \haut{2} && \bas{0}\barre \discont
@@ -1219,11 +1239,11 @@
% \medskip
% \DescribeMacro{\tablvarset\marg{keyval}}
% Mais les environnements \texttt{tablvar} et \texttt{tablvar*} possèdent également
-% un jeu de paramètres qui peuvent être définis de manière globale
-% (ou locale dans un environnement ou un groupe |{...}|),
-% avec des variables spécifiques
-% ou (depuis la version 2.0) avec la commande |\tablvarset|\marg{keyval},
-% utilisant le mécanisme \emph{clé=valeur}.
+% un jeu de paramètres qui peuvent être définis de manière globale,
+% ou locale dans un environnement (ou un groupe |{...}|),
+% soit en utilisant des variables spécifiques,
+% soit (depuis la version 2.0) avec la commande |\tablvarset|\marg{keyval},
+% basée sur le mécanisme \emph{clé=valeur}.
%
% \DescribeEnv{tablvar\oarg{keyval}}\DescribeEnv{tablvar*\oarg{keyval}}
% Ces paramètres peuvent aussi être réglés localement,
@@ -1280,12 +1300,12 @@
% \begin{description}
% \item[stretch] qui est un facteur d'élasticité verticale agissant sur toutes
% les lignes du tableau
-% \footnote{Pour ajuster la hauteur d'une ligne particulière, on dispose de la
-% macro \texttt{\textbackslash vstrut}\oarg{depth}\marg{height}
+% \footnote{Pour augmenter la hauteur d'une ligne particulière, on pourra utiliser la
+% commande \texttt{\textbackslash vstrut}\oarg{depth}\marg{height}
% (du package \textsf{spacingtricks}~\cite{SPA}),
% où \meta{depth} désigne la \emph{profondeur} et \meta{height} la \emph{hauteur}
% minimales à atteindre par rapport à la ligne de \emph{base},
-% ou encore de \texttt{\bslash cstrut}\marg{height} qui garantit une hauteur minimale
+% ou encore \texttt{\bslash cstrut}\marg{height} qui garantit une hauteur minimale
% en-dessous et au-dessus de la ligne de centrage mathématique.} ;
% une valeur de 1 correspond à la valeur standard
% d'un environnement \texttt{array}.
@@ -1322,7 +1342,7 @@
%
% \medskip
% Le rendu des commandes graphiques peut également être modifié,
-% en redéfinissant ces commandes, en particulier |\fleche|, |vrconnect| et |\hachure|
+% en redéfinissant ces commandes, en particulier |\fleche|, |\vrconnect| et |\hachure|
% grâce aux nombreuses options offertes par PSTricks ou \TikZ.
% C'est le cas aussi de l'aspect des filets et barres du tableau qui sont définis
% par les commandes |\tvrulewidth| (\texttt{0.4pt} par défaut),
@@ -1349,8 +1369,8 @@
% \hline
% -\frac{x+2}{x^4} && - & \barre[0] & + & \bb & - & \\
% \hline
-% \variations{\mil{\e^{\frac{x+1}{x^2}}} & \haut{1} && \bas{\e^{-\frac{1}{4}}}
-% && \bblim{1}{+\infty}{1}{+\infty} && \bas{1} }
+% \variations{\mil{\e^{\frac{x+1}{\vstrut{1.2ex} x^2}}} & \haut{1} &&
+% \bas{\e^{-\frac{1}{4}}} && \bblim*{+}{+} && \bas{1} }
% \hline
%\end{tablvar} \]
% \begin{verbatim}
@@ -1366,24 +1386,27 @@
% \hline
% -\frac{x+2}{x^4} && - & \barre[0] & + & \bb & - & \\
% \hline
-% \variations{\mil{\e^{\frac{x+1}{x^2}}} & \haut{1} &&
-% \bas{\e^{-\frac{1}{4}}} && \bblim{1}{+\infty}{1}{+\infty} &&
-% \bas{1} }
+% \variations{\mil{\e^{\frac{x+1}{\vstrut{1.2ex} x^2}}} & \haut{1} &&
+% \bas{\e^{-\frac{1}{4}}} && \bblim*{+}{+} && \bas{1} }
% \hline
%\end{tablvar} \]
% \end{verbatim}
+%
+% Enfin deux autres paramètres de type longueur |\rowtopsep| et |\rowbottomsep|
+% garantissent un espace minimum (de \texttt{2pt} par défaut)
+% entre les filets horizontaux et le contenu des cellules, pour la colonne des légendes.
%
-% \subsection{Nouveautés de la version 2.0}
+% \subsection{Nouveautés depuis la version 2.0}
%
-% Cette version présente de nombreuses nouveautés :
+% La version 2.0 présente de nombreuses nouveautés :
% \begin{itemize}
% \item \emph{Il n'y a plus d'option par défaut} à l'appel de l'extension.
% C'était \texttt{pstricks} dans les versions précédentes.
% Dorénavant, si aucune option n'est précisée, l'extension choisira elle-même
-% en fonction du compilateur utilisé, donc \texttt{tikz} pour le moteur pdf\LaTeX\
+% en fonction du compilateur utilisé, donc \texttt{tikz} pour pdf\LaTeX\
% qui ne supporte pas le code PSTricks.
%
-% \item \emph{Les colonnes de valeurs ont des largeurs fixes (\texttt{2em} par défaut)}
+% \item \emph{Les colonnes de valeurs ont des largeurs fixes} (\texttt{2em} \emph{par défaut)}
% et non plus variables en fonction du contenu, comme c'était le cas jusqu'à la version
% 1.2. L'avantage est d'améliorer le centrage pour les signes,
% lorsque les colonnes de valeurs ont des largeurs très différentes,
@@ -1395,7 +1418,7 @@
% et a été fixé à \texttt{0pt} car, en l'absence de filets verticaux,
% il ne sert plus à rien avec les colonnes à largeur fixe.
% Mais, en contrepartie, \emph{la valeur par défaut de} |\intervalwidth|
-% \emph{a été augmentée de \texttt{2.5em} à \texttt{3em}}.
+% \emph{a été augmentée de} \texttt{2.5em} \emph{à} \texttt{3em}.
%
% \item Les réglages peuvent désormais être effectués,
% avec la syntaxe \emph{clé = valeur} et la commande |\tablvarset|,
@@ -1446,12 +1469,26 @@
% De nouveaux types de colonnes ont été définis pour les valeurs et légendes,
% mais sont également internes à l'environnement \texttt{tablvar}.
%
-% \item Les macros |\haut|, |\bas| et |\mil| peuvent à présent être utilisées
+% \item Les macros |\bas| et |\mil| peuvent à présent être utilisées
% même lorsque le nombre de lignes de variations est différent de 3.
% Dans ce cas, commande |\mil| calcule automatiquement le décalage vertical ;
% l'utilisateur n'a plus besoin d'un appel explicite à |\vdecal|.
% \end{itemize}
%
+% Dans la version 2.1 :
+% \begin{itemize}
+% \item Ont été ajoutés deux nouveaux paramètres |\rowtopsep| et |\rowbottomsep|
+% pour garantir un espace minimum (de \texttt{2pt} par défaut)
+% entre les filets horizontaux et le contenu pour la colonne des légendes.
+% \item
+% Il est désormais possible d'utiliser l'option \texttt{pstricks} avec \LuaLaTeX,
+% si \textsf{luapstricks} est installé sur votre distribution.
+% \item Le calcul du décalage vertical de la commande |\mil| a été amélioré,
+% dans le cas d'un nombre pair de lignes de variations.
+% \item Les nouvelles commandes étoilées |\limg*|, |\limd*| et |\bblim*|
+% permettent une écriture simplifiée de |\limg|, |\limd| et |\bblim|,
+% pour des limites $\infty$.
+% \end{itemize}
% \medskip
% Des problèmes de composition peuvent apparaître avec des tableaux
% réalisés antérieurement à la version 2.0, en particulier
@@ -1469,16 +1506,81 @@
% dans la rubrique \og Maths tabvar \fg.
% Nous les décrivons ici brièvement.
% \begin{description}
-% \item[tableaux] de Nicolas Kisselhoff~\cite{TABL}.
+% \item[tableaux] de Nicolas Kisselhoff~\cite{TABL}.
% Propose un pseudo-code PSTricks,
% certainement plus commode que d'écrire toutes les commandes PSTricks.
-
+% Attention l'extension doit être appelée avec |\usepackage{tableau}|, sans \texttt{x}.
+% Voici un exemple repris de la doc de \textsf{tableaux} avec le code en suivant.
+%\newpsstyle{hachured}{fillstyle=hlines,hatchwidth=0.2pt,hatchsep=2pt}
+%\setlength{\TabTitreL}{1cm}
+%
+%\begin{MonTableau}{1}{9}{1.5}
+%\psframe[style=hachured,linestyle=none](.3,1)(.45,0)
+%
+%\TabNewCol{0}
+%\rTabPut{Br}{-.15}{.25}{$x$}
+%\rTabPut{Br}{-.15}{.40}{$f(x)$}
+%
+%\TabNewCol{0}
+%\rTabPut{Bl}{.15}{.25}{$0$}
+%\rTabPut{Bl}{.15}{.60}{$\frac{3}{2}$}
+%
+%\TabNewCol{.30}
+%\rTabPut{B}{0}{.25}{$1$}
+%\rTabPut{Br}{-.15}{.80}{$+\infty$}
+%\psline[style=TabDblBarre](.3,0)(.3,1)
+%
+%\TabNewCol{.45}
+%\rTabPut{B}{0}{.25}{$\frac{3}{2}$}
+%\rTabPut[2]{B}{0}{.10}{\TabZ}
+%
+%\TabNewCol{1}
+%\rTabPut{Br}{-.15}{.25}{$+\infty$}
+%\rTabPut{Br}{-.15}{.40}{$1$}
+%
+%\TabFleche{B1}{C1}
+%\TabFleche{D1}{E1}
+%\end{MonTableau}
+%
+% \begin{verbatim}
+%\newpsstyle{hachured}{fillstyle=hlines,hatchwidth=0.2pt,hatchsep=2pt}
+%\setlength{\TabTitreL}{1cm}
+%
+%\begin{MonTableau}{1}{9}{1.5}
+%\psframe[style=hachured,linestyle=none](.3,1)(.45,0)
+%
+%\TabNewCol{0}
+%\rTabPut{Br}{-.15}{.25}{$x$}
+%\rTabPut{Br}{-.15}{.40}{$f(x)$}
+%
+%\TabNewCol{0}
+%\rTabPut{Bl}{.15}{.25}{$0$}
+%\rTabPut{Bl}{.15}{.60}{$\frac{3}{2}$}
+%
+%\TabNewCol{.30}
+%\rTabPut{B}{0}{.25}{$1$}
+%\rTabPut{Br}{-.15}{.80}{$+\infty$}
+%\psline[style=TabDblBarre](.3,0)(.3,1)
+%
+%\TabNewCol{.45}
+%\rTabPut{B}{0}{.25}{$\frac{3}{2}$}
+%\rTabPut[2]{B}{0}{.10}{\TabZ}
+%
+%\TabNewCol{1}
+%\rTabPut{Br}{-.15}{.25}{$+\infty$}
+%\rTabPut{Br}{-.15}{.40}{$1$}
+%
+%\TabFleche{B1}{C1}
+%\TabFleche{D1}{E1}
+%\end{MonTableau}
+% \end{verbatim}
+%
% \item[tabvar] de Daniel Flipo~\cite{TABV},
% l'auteur, entre-autres de \textsf{babel-french},
% extension bien connue de tous les utilisateurs francophones de \LaTeX.
% Permet de réaliser des tableaux plutôt symboliques.
% Voici un tableau simple et son code \textsf{tabvar}. \\
-% \begin{minipage}[t]{7cm}
+% \begin{minipage}[t]{7.5cm}
% \begin{verbatim}
%\[\begin{tabvar}{|C|CCCCR|}
% \hline
@@ -1492,7 +1594,7 @@
%\end{tabvar}\]
% \end{verbatim}
% \end{minipage}
-% \begin{minipage}[t]{5cm}
+% \begin{minipage}[t]{4.2cm}
%\[\begin{tabvar}{|C|CCCCR|}
% \hline
% x & 0 & & \frac{1}{2} & & 1 \\
@@ -1551,19 +1653,19 @@
% Une très belle extension qui fait a peu près tout ce que fait \textsf{tablvar}
% et même un peu plus : par exemple tangentes horizontales sur les extrema,
% cellules en couleur.
-% Un de ses principaux avantages par rapport à \textsf{tablvar} est de ne pas nécessiter
+% Un de ses principaux bénéfices par rapport à \textsf{tablvar} est de ne pas nécessiter
% de double compilation
% \footnote{La double compilation avec \textsf{tablvar} n'est cependant nécessaire
% qu'avec l'option \texttt{tikz}.}.
-% Signalons quelques différences avec \textsf{tablvar} :
+% Signalons quand même quelques avantages de \textsf{tablvar} :
% \begin{itemize}
-% \item un tableau n'est pas globalement en mode mathématique, il faut donc mettre les
-% \$ du mode math autour de chaque valeur,
-% \item les hauteurs de ligne doivent être précisées de manière explicite et
-% ne peuvent être données qu'en cm (unité fixe qui ne s'ajuste pas à la fonte),
-% \item \textsf{tablvar} offre la possibilité de mettre des 0 par dessus les flèches,
-% \item les double barres aux extrémités du tableau sont assez éloignées des filets,
-% ce qui peut donc laisser un certain blanc sur les bords.
+% \item avec \textsf{tkz-tab}, un tableau n'est pas globalement en mode mathématique,
+% il faut donc mettre les |$| du mode math autour de chaque valeur,
+% \item et les hauteurs de ligne doivent être précisées de manière explicite et
+% uniquement cm (unité fixe qui ne s'ajuste pas à la fonte),
+% \item \textsf{tablvar} offre la possibilité de mettre des valeurs par dessus les flèches,
+% \item dans \textsf{tkz-tab}, les double barres aux extrémités du tableau
+% sont assez éloignées des filets, ce qui laisse un blanc important sur les bords.
% \end{itemize}
% Voici un exemple illustrant ce dernier point, avec son code.
% Pour comparer, le tableau obtenu avec \textsf{tablvar}
@@ -1615,7 +1717,7 @@
\RequirePackage{ifthen}
\RequirePackage{multido}
\RequirePackage{xkeyval}
-\RequirePackage{ifpdf}
+\RequirePackage{iftex}
\newif\iftv@tikz % false par défaut
\DeclareOption{tikz}{\tv@tikztrue}
@@ -1625,23 +1727,31 @@
\iftv@pstricks
\ifpdf
- \PackageError{tablvar}{Don't use the pstricks option with PDF engines}{}
+ \ifluatex
+ \PackageInfo{tablvar}{Option 'pstricks' works
+ with luapstricks}
+ \else
+ \PackageError{tablvar}{Don't use the 'pstricks' option with
+ PDF output mode}{Use 'tikz' option or change the engine}
+ \fi
\else
- \PackageInfo{tablvar}{PSTricks option is used}
+ \PackageInfo{tablvar}{Option 'pstricks' is used}
\fi
\else\iftv@tikz
- \PackageInfo{tablvar}{tikz option is used.
+ \AtEndDocument{\PackageWarningNoLine{tablvar}{Option 'tikz' is used.
\MessageBreak
- Run twice to draw the arrows correctly}
+ Maybe rerun to draw the arrows correctly}
+ }
\else\ifpdf
- \PackageWarningNoLine{tablvar}{PDF engine is used,
- I'm using the tikz option.
+ \AtEndDocument{\PackageWarningNoLine{tablvar}{Output is in PDF mode,
+ I'm using the 'tikz' option.
\MessageBreak
- Run twice to draw the arrows correctly}
+ Maybe rerun to draw the arrows correctly}
+ }
\tv@tikztrue
\else
- \PackageWarningNoLine{tablvar}{PDF engines not used,
- I'm using the pstricks option}
+ \PackageWarningNoLine{tablvar}{Output is in DVI mode,
+ I'm using the 'pstricks' option}
\tv@pstrickstrue
\fi\fi\fi
@@ -1832,6 +1942,28 @@
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\rowtopsep}
+% Cette longueur définit l'espace minimal entre le filet vertical supérieur et le contenu,
+% pour les cellules de la colonne des légendes.
+% Elle ne s'applique pas pour les lignes de variations
+% puisque, dans la colonne des légendes, seule la ligne
+% \og milieu \fg est censée posséder un contenu.
+% \begin{macrocode}
+\newlength{\rowtopsep}
+\setlength{\rowtopsep}{2pt}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\rowbottomsep}
+% Cette longueur définit l'espace minimal entre le filet vertical inférieur et le contenu,
+% pour les cellules de la colonne des légendes.
+% Elle ne s'applique pas pour les lignes de variations.
+% \begin{macrocode}
+\newlength{\rowbottomsep}
+\setlength{\rowbottomsep}{2pt}
+% \end{macrocode}
+% \end{macro}
+
% \subsection{Les commandes graphiques PSTricks/\TikZ} \label{graph}
%
% Nous présentons ici les commandes graphiques permettant le dessin
@@ -1962,12 +2094,13 @@
}
% \end{macrocode}
-% La commande |\mil| positionne son contenu sur la colonne 2,
-% mais réalise un décalage vertical si le nombre de lignes de variations diffère de 3.
+% La commande |\mil| positionne son contenu sur la colonne |mil@row|,
+% et réalise un décalage vertical de |\mil@shift|
+% si le nombre de lignes de variations est pair.
% Pour cela nous avons besoin d'une variable de dimension et d'un compteur.
% \begin{macrocode}
-\newlength\mil@heightshift
-\newcounter{mil@rowshift}
+\newlength\mil@shift
+\newcounter{mil@row}
% \end{macrocode}
% Pour gérer correctement les zones interdites, avec la commande |\ZI|,
@@ -2046,7 +2179,7 @@
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\tv@saveheight}
+% \begin{macro}{\tv@setheight}
% Cette macro sert à calculer la hauteur et la profondeur d'une cellule,
% qui seront enregistrées dans des variables globales afin que la commande |\ZI|
% puisse les récupérer.
@@ -2071,21 +2204,22 @@
% et le contenu de la cellule agrandie va toucher le filet horizontal.
% La solution est alors de placer un |\vstrut| ou |\cstrut| dans la colonne
% de légendes pour augmenter sa hauteur qui, de ce fait, sera bien enregistrée
-% par |\tv@saveheight|.
+% par |\tv@setheight|.
% \begin{macrocode}
-\newcommand\tv@saveheight{%
- \tv@cellheight=0pt
- \tv@celldepth=0pt
- \ifdim \ht\tv@cellbox > \ht\@arstrutbox
- \global\advance\tv@cellheight by \ht\tv@cellbox
- \else
- \global\advance\tv@cellheight by \ht\@arstrutbox
+\newcommand\tv@setheight{%
+ \global\tv@cellheight=\ht\tv@cellbox
+ \ifthenelse{\value{var@ligne}=0}{
+ \global\advance\tv@cellheight by \rowtopsep}{}
+ \ifdim \tv@cellheight < \ht\@arstrutbox
+ \global\tv@cellheight = \ht\@arstrutbox
\fi
- \ifdim \dp\tv@cellbox > \dp\@arstrutbox
- \global\advance\tv@celldepth by \dp\tv@cellbox
- \else
- \global\advance\tv@celldepth by \dp\@arstrutbox
+ \global\tv@celldepth=\dp\tv@cellbox
+ \ifthenelse{\value{var@ligne}=0}{
+ \global\advance \tv@celldepth by \rowbottomsep}{}
+ \ifdim \tv@celldepth < \dp\@arstrutbox
+ \global\tv@celldepth = \dp\@arstrutbox
\fi
+ \vrule height \tv@cellheight depth \tv@celldepth width 0pt
}
% \end{macrocode}
% \end{macro}
@@ -2115,7 +2249,7 @@
>{\setcounter{tv@icol}{0}\stepcounter{tv@row}\begin{lrbox}%
\tv@cellbox $}%
c%
- <{$\end{lrbox}\usebox{\tv@cellbox}\tv@saveheight}}
+ <{$\end{lrbox}\usebox{\tv@cellbox}\tv@setheight}}
% type de colonne i pour les intervalles
\newcolumntype{i}{>{\stepcounter{tv@icol}
\centering\arraybackslash$}p{\intervalwidth}<{$}}
@@ -2142,7 +2276,7 @@
% On commence par prendre en compte les options grâce à |\setkeys*| fourni par l'extension
% \textsf{xkeyval}. La version étoilée de |\setkeys|
% a l'avantage de ne pas produire d'erreur lorsqu'une clé n'est pas reconnue
-% (celle-ci est passée à |XKV@rm|). On l'interprète
+% (celle-ci est passée à |\XKV@rm|). On l'interprète
% \footnote{Un message d'erreur de dimension erronée
% peut donc signifier que l'on s'est trompé dans l'orthographe d'une clé.}
% alors comme une dimension pour le paramètre |\intervalwidth|.
@@ -2156,8 +2290,8 @@
\setkeys*{tablvar}{#1} % fourni par xkeyval
\if\XKV@rm\empty \else \setlength{\intervalwidth}{#1} \fi
\tvcoltypes
- \ifextleft \newcolumntype{B}{v{l}} \else \newcolumntype{B}{v{c}} \fi
- \ifextright \newcolumntype{E}{v{r}} \else \newcolumntype{E}{v{c}} \fi
+ \ifextleft\newcolumntype{B}{v{l}}\else\newcolumntype{B}{v{c}}\fi
+ \ifextright\newcolumntype{E}{v{r}}\else\newcolumntype{E}{v{c}}\fi
\tablvarinit{#2}
\ZIinit
\begin{array}{%
@@ -2228,11 +2362,12 @@
% Les flèches et pointillés sont dessinés à la fin, quand tous les nœuds sont créés,
% mais il faut les tracer avant le |\\| final, sinon la compilation plante !
% Le compteur |var@ligne| doit être remis à 0 au cas où il y a plusieurs parties variations.
+% Cette remise à zéro s'effectue à la fin au cas où on mettrait des lignes de signes
+% après une ligne variations.
% \begin{macrocode}
\newcommand*{\variations}[2][3]{% #1=nblignes (3 par défaut)
% (ré)initialisation des compteurs
\setcounter{nbvarlignes}{#1}
- \setcounter{var@ligne}{0}
\setcounter{numdiscont}{0}
\multido{\I=1+1}{\themaxdiscont}{\setcounter{discont\I}{0}}
% boucle : on exécute le code #2 un nb de fois égal à (#1)-1
@@ -2259,6 +2394,7 @@
}
% tracé des pointillés pour les valeurs remarquables
\multido{\Ix=1+1}{\thenumvr}{\vrconnect{X\Ix}{Y\Ix}}
+ \setcounter{var@ligne}{0}
\\ % dernier retour ligne du tableau
}
% \end{macrocode}
@@ -2291,6 +2427,7 @@
% Place son contenu dans une boite de largeur nulle : affiche le contenu
% mais considère que l'espace occupé est nul pour ne pas altérer le calcul de la
% largeur de colonne.
+% Cette macro est similaire à |\mathclap| de l'extension \textsf{mathtools}~\cite{TOOLS}.
% Sa syntaxe est :
% |\zbox|\oarg{pos}\marg{contenu} où \meta{opt} = |c| (par défaut), |l| (left) ou |r| (right).
% \begin{macrocode}
@@ -2367,24 +2504,31 @@
% \end{macro}
% \begin{macro}{\mil}
-% La commande |\mil|\marg{valeur} positionne \meta{valeur} sur la ligne 2
-% de la partie variations. Lorsqu'il y a 3 lignes de variations cela correspond bien
-% au milieu, mais sinon on réalise un décalage vertical grâce à |\vdecal|.
-% La formule de ce décalage est
-% $(3- \mbox{nblignes}) \times (\mbox{hauteur de ligne})/2$.
-% Le résultat de ce calcul est stocké dans la variable de dimension |\mil@heightshift|.
-% Au cas où |\mil| ne donnerait pas un résultat parfait, on pourrait alors régler
+% Pour un nombre $n$ impair de lignes de variations,
+% la commande |\mil|\marg{valeur} positionne \meta{valeur} sur la ligne $\frac{n+1}{2}$
+% de la partie variations. Cela correspond bien à la ligne du milieu :
+% ligne 2 lorsqu'il y a 3 lignes.
+% Par contre si $n$ est pair, on place \meta{valeur} sur la ligne $\frac{n}{2}$ mais avec
+% un décalage vertical négatif (vers le bas) grâce à |\vdecal|.
+% Ce décalage correspond à une profondeur de cellule augmenté de \texttt{0.5ex}
+% (écart entre la ligne de base du texte et la ligne de centrage mathématique).
+% Le résultat de ce calcul est stocké dans la variable de dimension |\mil@shift|.
+% Au cas où l'on ne serait pas satisfait du résultat de |\mil|, on pourrait alors régler
% le décalage manuellement avec
%|\pos*|\marg{ligne}|{\vdecal|\marg{decal}\marg{contenu}|}|.
% \begin{macrocode}
\newcommand*{\mil}[1]{%
- \mil@heightshift = \ht\@arstrutbox
- \advance\mil@heightshift by \dp\@arstrutbox
- \divide\mil@heightshift by 2
- \setcounter{mil@rowshift}{3}
- \addtocounter{mil@rowshift}{-\value{nbvarlignes}}
- \multiply\mil@heightshift by \value{mil@rowshift}
- \pos*{2}{\vdecal{\mil@heightshift}{#1}}
+ \setcounter{mil@row}{\value{nbvarlignes}}
+ \ifthenelse{\isodd{\value{nbvarlignes}}}{
+ \addtocounter{mil@row}{1}
+ \divide\value{mil@row} by 2
+ \pos*{\themil@row}{\smash{#1}}
+ }{
+ \divide\value{mil@row} by 2
+ \mil@shift = \dp\@arstrutbox
+ \advance\mil@shift by 0.5ex
+ \pos*{\themil@row}{\vdecal{-\mil@shift}{#1}}
+ }
}
% \end{macrocode}
% \end{macro}
@@ -2409,7 +2553,7 @@
% \begin{macro}{\bb}
% La macro |\bb|, qui produit une double barre,
-% reprend celle de l'extension \textsf{variations} de Christian Obrecht
+% reprend celle de l'extension \mbox{\textsf{variations}} de Christian Obrecht :
% |\def\bb{\vrule\kern1pt\vrule}|.
% Nous avons ajouté \texttt{1.5pt} d'espace avant et après, afin d'aligner au mieux
% la double barre avec un 0 sur la ligne des $x$, lorsque la double barre
@@ -2423,14 +2567,38 @@
% \end{macro}
% \DescribeMacro{\limg}\DescribeMacro{\limd}
-% Les macros |\limg| et |limd| servent à positionner des limites à gauche \emph{ou} à droite,
+% Les macros |\limg| et |\limd| servent à positionner des limites à gauche ou à droite,
% en particulier aux bords des double barres.
% Le premier paramètre, optionnel, précise l'option de positionnement (\texttt{c},
% \texttt{l} ou \texttt{r}) et le second \emph{obligatoire} et le numéro de ligne,
% enfin le troisième est la valeur à placer.
+%
+% \DescribeMacro{\limg*}\DescribeMacro{\limd*}
+% Les versions étoilées n'acceptent comme argument que \texttt{+} ou \texttt{-},
+% |\limg*{+}| correspond à |\limg{1}{+\infty}|,
+% |\limg*{-}| correspond à |\limg{|$n$|}{-\infty}| (pour une partie variations
+% sur $n$ lignes et de même pour |\limd*|.
% \begin{macrocode}
-\newcommand*{\limg}[3][c]{\zbox[r]{\valpos[#1]{#2}{#3\hspace{\limsep}}}}
-\newcommand*{\limd}[3][c]{\zbox[l]{\valpos[#1]{#2}{\hspace{\limsep}#3}}}
+\newcommand*{\@limg}[3][c]{%
+ \zbox[r]{\valpos[#1]{#2}{#3\hspace{\limsep}}}}
+\newcommand*{\@limd}[3][c]{%
+ \zbox[l]{\valpos[#1]{#2}{\hspace{\limsep}#3}}}
+\newcommand*{\@@limg}[1]{%
+ \ifthenelse{\equal{#1}{+}}{\@limg{1}{+\infty}}{
+ \ifthenelse{\equal{#1}{-}}{\@limg{\value{nbvarlignes}}{-\infty}}{
+ \PackageError{tablvar}{Invalid argument for \string\limg*}
+ {Only + or - are valid arguments for \string\limg*}
+ }}
+}
+\newcommand*{\@@limd}[1]{%
+ \ifthenelse{\equal{#1}{+}}{\@limd{1}{+\infty}}{
+ \ifthenelse{\equal{#1}{-}}{\@limd{\value{nbvarlignes}}{-\infty}}{
+ \PackageError{tablvar}{Invalid argument for \string\limd*}
+ {Only + or - are valid arguments for \string\limd*}
+ }}
+}
+\newcommand{\limg}{\@ifstar{\@@limg}{\@limg}}
+\newcommand{\limd}{\@ifstar{\@@limd}{\@limd}}
% \end{macrocode}
% \begin{macro}{\discont}
@@ -2458,16 +2626,19 @@
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\bblim}
-% Sert à positionner des limites à gauche \emph{et} à droite
+% \DescribeMacro{\bblim}\DescribeMacro{\bblim*}
+% Ces macros servent à positionner des limites à gauche \emph{et} à droite
% d'une double barre.
-% Cette macro trace la double barre, place les limites et appelle |\discont|.
-% Sa syntaxe est :
-% |\bblim|\marg{ligne gauche}\marg{limite gauche}\marg{ligne droite}\marg{limite droite}.
+% Elles tracent la double barre, placent les limites et appellent |\discont|.\\
+% La syntaxe de |\bblim| est : \\
+% |\bblim|\marg{ligne gauche}\marg{limite gauche}\marg{ligne droite}\marg{limite droite}.\\
+% La syntaxe de|\bblim*| reprend celle de |\limg*| et |\limd*| :
+% |\bblim*|\marg{+$\vert$-}\marg{+$\vert$-}.
% \begin{macrocode}
-\newcommand*{\bblim}[4]{\limg{#1}{#2}\bb\discont\limd{#3}{#4}}
+\newcommand*{\@bblim}[4]{\limg{#1}{#2}\bb\discont\limd{#3}{#4}}
+\newcommand*{\@@bblim}[2]{\limg*{#1}\bb\discont\limd*{#2}}
+\newcommand*{\bblim}{\@ifstar{\@@bblim}{\@bblim}}
% \end{macrocode}
-% \end{macro}
% \begin{macro}{\vr}
% La commande |\vr| fabrique un nœud pour chaque valeur remarquable.
@@ -2595,7 +2766,7 @@
% courante dans une des 4 variables de dimension |\ZIheighti|, \ldots, |\ZIheightiv|
% correspondant à la zone interdite appelante.
% On récupère hauteur et profondeur qui ont été enregistrés dans
-% les variables globales |\tv@cellheight| et |\tv@cellheight|,
+% les variables globales |\tv@cellheight| et |\tv@celldepth|,
% par la colonne de légendes de la même ligne.
% Le numéro de la ZI (son indice) est passé en argument.
% \begin{macrocode}
@@ -2711,18 +2882,18 @@
% \end{macrocode}
%
% \bigskip
-% \begin{thebibliography}{14}
+% \begin{thebibliography}{15}
% \begin{raggedright}
-% \bibitem{TABL} \emph{Tableaux}. Nicolas Kisselhoff, CTAN.
-% \bibitem{TABV} \emph{Tableaux de variations : \textsf{‘tabvar’}}. Daniel Flipo,
+% \bibitem{TABL} \emph{Tableaux}, Nicolas Kisselhoff, CTAN.
+% \bibitem{TABV} \emph{Tableaux de variations : \textsf{‘tabvar’}}, Daniel Flipo,
% CTAN, v1.8 16/07/2022.
-% \bibitem{VARI} \emph{L'extension \textsf{variations}}. Christian Obrecht,
+% \bibitem{VARI} \emph{L'extension \textsf{variations}}, Christian Obrecht,
% CTAN, v0.3 13/09/2006.
% \bibitem{TABLOR} \emph{\textsf{tablor.sty} La machine à créer des tableaux
-% de signes et de variations}. Guillaume Connan, CTAN, v4.07 09/05/2010.
+% de signes et de variations}, Guillaume Connan, CTAN, v4.07 09/05/2010.
% \bibitem{VARMP} \emph{\textsf{tableauVariations} -- Variation tables in
-% \textlogo{METAPOST}}. Frédéric Mazoit, CTAN, 2005.
-% \bibitem{TKZ} \emph{\textsf{Tkz-Tab}}. Alain Matthes, CTAN,
+% \textlogo{METAPOST}}, Frédéric Mazoit, CTAN, 2005.
+% \bibitem{TKZ} \emph{\textsf{Tkz-Tab}}, Alain Matthes, CTAN,
% v2.12c 29/04/2020.
% \bibitem{ARRAY} \emph{A new implementation of LATEX’s \textsf{tabular} and \textsf{array}
% environment}, Frank Mittelbach, David Carlisle, CTAN, v2.5g revised 16/10/2023.
@@ -2734,12 +2905,14 @@
% v1.9.0 04/01/2022.
% \bibitem{SPA} \emph{The \textsf{spacingtricks} package}, Antoine Missier,
% CTAN, v1.7 28/07/2023.
-% \bibitem{XKEY} \emph{The \textsf{xkeyval} package}. Hendri Adriaens,
-% CTAN, v2.9, 16/06/2022.
-% \bibitem{MIS} \emph{\textsf{mismath} -- Miscellaneous mathematical macros},
-% Antoine Missier, CTAN, v2.9 19/12/2023.
-% \bibitem{FR} \emph{L'extension \textsf{frenchmath}}. Antoine Missier,
-% CTAN, v2.7, 23/12/2023.
+% \bibitem{XKEY} \emph{The \textsf{xkeyval} package}, Hendri Adriaens,
+% CTAN, v2.9 16/06/2022.
+% \bibitem{TOOLS} \emph{The \textsf{mathtools} package}, Morten Høgholm, Lars Madsen,
+% CTAN, v1.23 17/01/2020.
+% \bibitem{MIS} Miscellaneous mathematical macros -- The \emph{\textsf{mismath} package},
+% Antoine Missier, CTAN, v3.1 16/06/2024.
+% \bibitem{FR} \emph{L'extension \textsf{frenchmath}}, Antoine Missier,
+% CTAN, v3.1 07/05/2024.
% \end{raggedright}
% \end{thebibliography}
% \Finale
diff --git a/macros/latex/contrib/tablvar/tablvar.ins b/macros/latex/contrib/tablvar/tablvar.ins
index 0280b61773..192a1eb6e8 100644
--- a/macros/latex/contrib/tablvar/tablvar.ins
+++ b/macros/latex/contrib/tablvar/tablvar.ins
@@ -1,5 +1,5 @@
%%
-%% Copyright (C) 2018-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr>
+%% Copyright (C) 2018-2024 by Antoine Missier <antoine.missier@ac-toulouse.fr>
%%
%% This file may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3 of this license
@@ -21,7 +21,7 @@
This is a generated file.
-Copyright (C) 2018-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr>
+Copyright (C) 2018-2024 by Antoine Missier <antoine.missier@ac-toulouse.fr>
This file may be distributed and/or modified under the conditions of
the LaTeX Project Public License, either version 1.3 of this license
@@ -46,7 +46,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\Msg{* tablvar.sty *}
\Msg{* *}
\Msg{* To produce the documentation run the file tablvar.dtx *}
-\Msg{* through XeLaTeX or LaTeX + dvips + ps2pdf. *}
+\Msg{* through LaTeX + dvips + ps2pdf. *}
\Msg{* *}
\Msg{* Happy TeXing! *}
\Msg{* *}
diff --git a/macros/latex/contrib/tablvar/tablvar.pdf b/macros/latex/contrib/tablvar/tablvar.pdf
index 7f5962d8fc..d949a47be3 100644
--- a/macros/latex/contrib/tablvar/tablvar.pdf
+++ b/macros/latex/contrib/tablvar/tablvar.pdf
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/README.md b/macros/latex/contrib/tagpdf/README.md
index 9602302c2a..7ba67de333 100644
--- a/macros/latex/contrib/tagpdf/README.md
+++ b/macros/latex/contrib/tagpdf/README.md
@@ -1,6 +1,6 @@
#tagpdf — A package to create tagged pdf
-Packageversion: 0.99c
-Packagedate: 2024/06/20
+Packageversion: 0.99f
+Packagedate: 2024/09/16
Author: Ulrike Fischer, LaTeX Project Team
## License
diff --git a/macros/latex/contrib/tagpdf/ex-AF-file.pdf b/macros/latex/contrib/tagpdf/ex-AF-file.pdf
index 37673eac26..83a304a201 100644
--- a/macros/latex/contrib/tagpdf/ex-AF-file.pdf
+++ b/macros/latex/contrib/tagpdf/ex-AF-file.pdf
@@ -1,11 +1,11 @@
%PDF-2.0
%
22 0 obj
-<< /Subtype /application#2Fx-tex/Type /EmbeddedFile /Params<</ModDate (D:20240620175033+02'00') /Size 151 /CheckSum (4C0D15859D9BA750E65BE6F420DEA972) >> /Length 151 >>
+<< /Subtype /application#2Fx-tex/Type /EmbeddedFile /Params<</ModDate (D:20240916231350+02'00') /Size 151 /CheckSum (F1F871442F296ACB6365DC9AC224F015) >> /Length 151 >>
stream
%% LaTeX2e file `example-input-file.tex'
%% generated by the `filecontents' environment
-%% from source `ex-AF-file' on 2024/06/20.
+%% from source `ex-AF-file' on 2024/09/16.
%%
Additional info!
@@ -15,7 +15,7 @@ endobj
<< /Type /Filespec /AFRelationship /Unspecified /F (example-input-file.tex) /UF <FEFF006500780061006D0070006C0065002D0069006E007000750074002D00660069006C0065002E007400650078> /EF<</F 22 0 R/UF 22 0 R>> >>
endobj
25 0 obj
-<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20240620) >> /Length 19 >>
+<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20240916) >> /Length 19 >>
stream
Bär with teh shirt
endstream
@@ -24,7 +24,7 @@ endobj
<< /Type /Filespec /AFRelationship /Supplement /F (tag-AFfile1.txt) /UF <FEFF007400610067002D0041004600660069006C00650031002E007400780074> /EF<</F 25 0 R/UF 25 0 R>> >>
endobj
28 0 obj
-<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20240620) >> /Length 4 >>
+<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20240916) >> /Length 4 >>
stream
Duck
endstream
@@ -33,7 +33,7 @@ endobj
<< /Type /Filespec /AFRelationship /Supplement /F (tag-AFfile2.txt) /UF <FEFF007400610067002D0041004600660069006C00650032002E007400780074> /EF<</F 28 0 R/UF 28 0 R>> >>
endobj
31 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11382 >>
+<< /Type /Metadata /Subtype /XML /Length 11713 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -88,6 +88,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -242,17 +248,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-06-20T17:50:54+02:00</rdf:li>
+ <rdf:li>2024-09-16T23:14:06+02:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-AF-file.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-06-20T17:50:54+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-06-20T17:50:54+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-06-20T17:50:54+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-09-16T23:14:06+02:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-09-16T23:14:06+02:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-09-16T23:14:06+02:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:38d5a844-2217-4081-87cc-b2129dc357a6</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:9859f422-c856-46c6-8928-4dfab5f8790c</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:f3e8d74f-e578-4148-81cf-4735ea173170</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>1</prism:pageCount>
</rdf:Description>
@@ -347,7 +353,7 @@ endobj
<< /Type /Namespace /NS (https://www.latex-project.org/ns/book/2022) /RoleMapNS 18 0 R >>
endobj
19 0 obj
-<< /Type /Namespace /NS (data:,15379C35-DB3-5B3E-89A5-42149DCFB2F) >>
+<< /Type /Namespace /NS (data:,4A2CE27A-F4B-3881-D950-B43D7275F9F5) >>
endobj
8 0 obj
[ 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R ]
@@ -449,59 +455,59 @@ endobj
<< /Type /Catalog /Pages 36 0 R /MarkInfo 37 0 R/Lang (de-DE)/Metadata 31 0 R/StructTreeRoot 5 0 R >>
endobj
46 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240620175054+02'00')/ModDate (D:20240620175054+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240916231406+02'00')/ModDate (D:20240916231406+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 47
0000000002 65535 f
-0000013544 00000 n
+0000013875 00000 n
0000000003 00000 f
0000000004 00000 f
0000000010 00000 f
-0000016360 00000 n
-0000013627 00000 n
-0000013838 00000 n
-0000015790 00000 n
-0000014417 00000 n
+0000016692 00000 n
+0000013958 00000 n
+0000014169 00000 n
+0000016122 00000 n
+0000014748 00000 n
0000000012 00000 f
-0000014485 00000 n
+0000014816 00000 n
0000000014 00000 f
-0000014555 00000 n
+0000014886 00000 n
0000000020 00000 f
-0000015318 00000 n
-0000014636 00000 n
-0000015596 00000 n
-0000015425 00000 n
-0000015703 00000 n
+0000015649 00000 n
+0000014967 00000 n
+0000015927 00000 n
+0000015756 00000 n
+0000016034 00000 n
0000000000 00000 f
-0000015851 00000 n
+0000016183 00000 n
0000000020 00000 n
0000000382 00000 n
-0000015964 00000 n
+0000016296 00000 n
0000000603 00000 n
0000000758 00000 n
-0000016096 00000 n
+0000016428 00000 n
0000000943 00000 n
0000001083 00000 n
-0000016228 00000 n
+0000016560 00000 n
0000001268 00000 n
-0000013481 00000 n
-0000013346 00000 n
-0000012740 00000 n
-0000020113 00000 n
-0000020467 00000 n
-0000013591 00000 n
-0000013684 00000 n
-0000013801 00000 n
-0000016480 00000 n
-0000018929 00000 n
-0000016666 00000 n
-0000019150 00000 n
-0000020267 00000 n
-0000020529 00000 n
-0000020647 00000 n
+0000013812 00000 n
+0000013677 00000 n
+0000013071 00000 n
+0000020445 00000 n
+0000020799 00000 n
+0000013922 00000 n
+0000014015 00000 n
+0000014132 00000 n
+0000016812 00000 n
+0000019261 00000 n
+0000016998 00000 n
+0000019482 00000 n
+0000020599 00000 n
+0000020861 00000 n
+0000020979 00000 n
trailer
-<< /Size 47 /Root 45 0 R /Info 46 0 R /ID [ <CB0601DB4D9A68774E7E29190E0D5823> <CB0601DB4D9A68774E7E29190E0D5823> ] >>
+<< /Size 47 /Root 45 0 R /Info 46 0 R /ID [ <CAF46A2B1E52D3AE87EB05AABC0D2D7E> <CAF46A2B1E52D3AE87EB05AABC0D2D7E> ] >>
startxref
-20870
+21202
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf b/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf
index 8bbbbcc16c..b98f65296d 100644
--- a/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf
+++ b/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/ex-attribute.pdf b/macros/latex/contrib/tagpdf/ex-attribute.pdf
index 172ce02990..3690dceabf 100644
--- a/macros/latex/contrib/tagpdf/ex-attribute.pdf
+++ b/macros/latex/contrib/tagpdf/ex-attribute.pdf
@@ -7,7 +7,7 @@ endobj
<< <</O /Layout /Borderstyle /Dotted >> >>
endobj
21 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11384 >>
+<< /Type /Metadata /Subtype /XML /Length 11715 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -62,6 +62,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -216,17 +222,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-06-20T17:51:49+02:00</rdf:li>
+ <rdf:li>2024-09-16T23:14:51+02:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-attribute.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-06-20T17:51:49+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-06-20T17:51:49+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-06-20T17:51:49+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-09-16T23:14:51+02:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-09-16T23:14:51+02:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-09-16T23:14:51+02:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:7a9cf910-1c19-429a-8f24-339c62d8a57f</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:d4b89449-5e1d-43cf-83af-3903105d1b3f</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:cc63fc15-f109-4c23-87e0-ae054c5fc24a</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>1</prism:pageCount>
</rdf:Description>
@@ -450,51 +456,51 @@ endobj
<< /Type /Catalog /Pages 26 0 R /MarkInfo 27 0 R/Lang (de_DE)/Metadata 21 0 R/StructTreeRoot 5 0 R >>
endobj
38 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/Title (Title)/CreationDate (D:20240620175149+02'00')/ModDate (D:20240620175149+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/Title (Title)/CreationDate (D:20240916231451+02'00')/ModDate (D:20240916231451+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 39
0000000002 65535 f
-0000012845 00000 n
+0000013176 00000 n
0000000003 00000 f
0000000004 00000 f
0000000008 00000 f
-0000014965 00000 n
-0000012928 00000 n
-0000013247 00000 n
+0000015296 00000 n
+0000013259 00000 n
+0000013578 00000 n
0000000000 00000 f
-0000013953 00000 n
-0000014038 00000 n
-0000014130 00000 n
-0000014214 00000 n
-0000014304 00000 n
+0000014284 00000 n
+0000014369 00000 n
+0000014461 00000 n
+0000014545 00000 n
+0000014635 00000 n
0000000020 00000 n
0000000071 00000 n
-0000014433 00000 n
-0000014573 00000 n
-0000014657 00000 n
-0000014747 00000 n
-0000014856 00000 n
+0000014764 00000 n
+0000014904 00000 n
+0000014988 00000 n
+0000015078 00000 n
+0000015187 00000 n
0000000132 00000 n
-0000012758 00000 n
-0000012616 00000 n
-0000011606 00000 n
-0000017305 00000 n
-0000017659 00000 n
-0000012892 00000 n
-0000012992 00000 n
-0000013210 00000 n
-0000013826 00000 n
-0000015083 00000 n
-0000016261 00000 n
-0000015160 00000 n
-0000015234 00000 n
-0000016497 00000 n
-0000017459 00000 n
-0000017721 00000 n
-0000017839 00000 n
+0000013089 00000 n
+0000012947 00000 n
+0000011937 00000 n
+0000017636 00000 n
+0000017990 00000 n
+0000013223 00000 n
+0000013323 00000 n
+0000013541 00000 n
+0000014157 00000 n
+0000015414 00000 n
+0000016592 00000 n
+0000015491 00000 n
+0000015565 00000 n
+0000016828 00000 n
+0000017790 00000 n
+0000018052 00000 n
+0000018170 00000 n
trailer
-<< /Size 39 /Root 37 0 R /Info 38 0 R /ID [ <658202793A4D39DC44497E1203173F04> <658202793A4D39DC44497E1203173F04> ] >>
+<< /Size 39 /Root 37 0 R /Info 38 0 R /ID [ <D8FFE97D0CAF78CED294D3AF8DA45DD2> <D8FFE97D0CAF78CED294D3AF8DA45DD2> ] >>
startxref
-18076
+18407
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-formula-problem.pdf b/macros/latex/contrib/tagpdf/ex-formula-problem.pdf
index 9ac7a851bc..3be4493a87 100644
--- a/macros/latex/contrib/tagpdf/ex-formula-problem.pdf
+++ b/macros/latex/contrib/tagpdf/ex-formula-problem.pdf
@@ -30,7 +30,7 @@ endobj
<< /ExtGState 1 0 R /Font << /F15 15 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
19 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11390 >>
+<< /Type /Metadata /Subtype /XML /Length 11721 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -85,6 +85,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -239,17 +245,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-06-20T17:52:18+02:00</rdf:li>
+ <rdf:li>2024-09-16T23:15:14+02:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-formula-problem.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-06-20T17:52:18+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-06-20T17:52:18+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-06-20T17:52:18+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-09-16T23:15:14+02:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-09-16T23:15:14+02:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-09-16T23:15:14+02:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:8eb2ce1d-b2ec-440a-8bc2-73733eb3eeb0</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:b48ac58a-5b57-46ab-8ab8-087479364eeb</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:07852560-d6c8-4db0-8dcb-56801fad3639</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>2</prism:pageCount>
</rdf:Description>
@@ -425,46 +431,46 @@ endobj
<< /Type /Catalog /Pages 16 0 R /MarkInfo 23 0 R/Lang (de-DE)/Metadata 19 0 R/StructTreeRoot 5 0 R >>
endobj
33 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240620175218+02'00')/ModDate (D:20240620175218+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240916231514+02'00')/ModDate (D:20240916231514+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 34
0000000002 65535 f
-0000012816 00000 n
+0000013147 00000 n
0000000003 00000 f
0000000004 00000 f
0000000008 00000 f
-0000014379 00000 n
-0000012899 00000 n
-0000013137 00000 n
+0000014710 00000 n
+0000013230 00000 n
+0000013468 00000 n
0000000000 00000 f
-0000013716 00000 n
-0000013823 00000 n
-0000013929 00000 n
+0000014047 00000 n
+0000014154 00000 n
+0000014260 00000 n
0000000637 00000 n
0000000502 00000 n
0000000020 00000 n
-0000018463 00000 n
-0000018817 00000 n
-0000014041 00000 n
-0000014147 00000 n
+0000018794 00000 n
+0000019148 00000 n
+0000014372 00000 n
+0000014478 00000 n
0000000724 00000 n
-0000012729 00000 n
-0000012594 00000 n
-0000012204 00000 n
-0000012863 00000 n
-0000012969 00000 n
-0000013100 00000 n
-0000014480 00000 n
-0000017236 00000 n
-0000014681 00000 n
-0000014757 00000 n
-0000017472 00000 n
-0000018617 00000 n
-0000018886 00000 n
-0000019004 00000 n
+0000013060 00000 n
+0000012925 00000 n
+0000012535 00000 n
+0000013194 00000 n
+0000013300 00000 n
+0000013431 00000 n
+0000014811 00000 n
+0000017567 00000 n
+0000015012 00000 n
+0000015088 00000 n
+0000017803 00000 n
+0000018948 00000 n
+0000019217 00000 n
+0000019335 00000 n
trailer
-<< /Size 34 /Root 32 0 R /Info 33 0 R /ID [ <4A2EBD4B9A1971E2BAF6A530303DF07B> <4A2EBD4B9A1971E2BAF6A530303DF07B> ] >>
+<< /Size 34 /Root 32 0 R /Info 33 0 R /ID [ <BE560A5AB892B55B8DEB50F7C89AA5EB> <BE560A5AB892B55B8DEB50F7C89AA5EB> ] >>
startxref
-19227
+19558
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-list.pdf b/macros/latex/contrib/tagpdf/ex-list.pdf
index 2346b0398a..bff3e7f266 100644
--- a/macros/latex/contrib/tagpdf/ex-list.pdf
+++ b/macros/latex/contrib/tagpdf/ex-list.pdf
@@ -1,7 +1,7 @@
%PDF-1.7
%
48 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11376 >>
+<< /Type /Metadata /Subtype /XML /Length 11707 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -56,6 +56,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -210,17 +216,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-06-20T17:52:47+02:00</rdf:li>
+ <rdf:li>2024-09-16T23:15:40+02:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-list.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-06-20T17:52:47+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-06-20T17:52:47+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-06-20T17:52:47+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-09-16T23:15:40+02:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-09-16T23:15:40+02:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-09-16T23:15:40+02:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:4c749825-1de7-414c-879f-29e4d0bef66e</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:843c5ce9-108a-49d8-86ef-881382f178ee</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:663679a3-cbaa-41c1-8541-e27efe5bf460</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>1</prism:pageCount>
</rdf:Description>
@@ -654,85 +660,85 @@ endobj
<< /Type /Catalog /Pages 54 0 R /MarkInfo 55 0 R/Lang (en)/Metadata 48 0 R/StructTreeRoot 5 0 R >>
endobj
72 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240620175247+02'00')/ModDate (D:20240620175247+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240916231540+02'00')/ModDate (D:20240916231540+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 73
0000000002 65535 f
-0000013509 00000 n
+0000013840 00000 n
0000000003 00000 f
0000000004 00000 f
0000000008 00000 f
-0000019047 00000 n
-0000013592 00000 n
-0000014431 00000 n
+0000019378 00000 n
+0000013923 00000 n
+0000014762 00000 n
0000000000 00000 f
-0000015228 00000 n
-0000015329 00000 n
-0000015405 00000 n
-0000015481 00000 n
-0000015568 00000 n
-0000015675 00000 n
-0000015765 00000 n
-0000015875 00000 n
-0000015959 00000 n
-0000016047 00000 n
-0000016170 00000 n
-0000016260 00000 n
-0000016370 00000 n
-0000016454 00000 n
-0000016542 00000 n
-0000016665 00000 n
-0000016752 00000 n
-0000016863 00000 n
-0000016953 00000 n
-0000017063 00000 n
-0000017147 00000 n
-0000017235 00000 n
-0000017358 00000 n
-0000017448 00000 n
-0000017558 00000 n
-0000017642 00000 n
-0000017730 00000 n
-0000017853 00000 n
-0000017940 00000 n
-0000018055 00000 n
-0000018145 00000 n
-0000018255 00000 n
-0000018339 00000 n
-0000018427 00000 n
-0000018550 00000 n
-0000018640 00000 n
-0000018751 00000 n
-0000018835 00000 n
-0000018923 00000 n
+0000015559 00000 n
+0000015660 00000 n
+0000015736 00000 n
+0000015812 00000 n
+0000015899 00000 n
+0000016006 00000 n
+0000016096 00000 n
+0000016206 00000 n
+0000016290 00000 n
+0000016378 00000 n
+0000016501 00000 n
+0000016591 00000 n
+0000016701 00000 n
+0000016785 00000 n
+0000016873 00000 n
+0000016996 00000 n
+0000017083 00000 n
+0000017194 00000 n
+0000017284 00000 n
+0000017394 00000 n
+0000017478 00000 n
+0000017566 00000 n
+0000017689 00000 n
+0000017779 00000 n
+0000017889 00000 n
+0000017973 00000 n
+0000018061 00000 n
+0000018184 00000 n
+0000018271 00000 n
+0000018386 00000 n
+0000018476 00000 n
+0000018586 00000 n
+0000018670 00000 n
+0000018758 00000 n
+0000018881 00000 n
+0000018971 00000 n
+0000019082 00000 n
+0000019166 00000 n
+0000019254 00000 n
0000000020 00000 n
-0000013410 00000 n
-0000013268 00000 n
-0000011486 00000 n
-0000029174 00000 n
-0000022222 00000 n
-0000029528 00000 n
-0000013556 00000 n
-0000013712 00000 n
-0000014394 00000 n
-0000015023 00000 n
-0000019165 00000 n
-0000021124 00000 n
-0000019297 00000 n
-0000019371 00000 n
-0000021358 00000 n
-0000022373 00000 n
-0000022570 00000 n
-0000027709 00000 n
-0000022906 00000 n
-0000023029 00000 n
-0000027945 00000 n
-0000029328 00000 n
-0000029590 00000 n
-0000029705 00000 n
+0000013741 00000 n
+0000013599 00000 n
+0000011817 00000 n
+0000029505 00000 n
+0000022553 00000 n
+0000029859 00000 n
+0000013887 00000 n
+0000014043 00000 n
+0000014725 00000 n
+0000015354 00000 n
+0000019496 00000 n
+0000021455 00000 n
+0000019628 00000 n
+0000019702 00000 n
+0000021689 00000 n
+0000022704 00000 n
+0000022901 00000 n
+0000028040 00000 n
+0000023237 00000 n
+0000023360 00000 n
+0000028276 00000 n
+0000029659 00000 n
+0000029921 00000 n
+0000030036 00000 n
trailer
-<< /Size 73 /Root 71 0 R /Info 72 0 R /ID [ <14B40F363BE2C4EFB96EAE91DC2CE4F7> <14B40F363BE2C4EFB96EAE91DC2CE4F7> ] >>
+<< /Size 73 /Root 71 0 R /Info 72 0 R /ID [ <47141410601154CA87EA5F9B05C19636> <47141410601154CA87EA5F9B05C19636> ] >>
startxref
-29928
+30259
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf b/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf
index 70cfe5e793..c4deafa33d 100644
--- a/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf
+++ b/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf
@@ -34,7 +34,7 @@ endobj
<< /ExtGState 1 0 R /Font << /F15 13 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
15 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11401 >>
+<< /Type /Metadata /Subtype /XML /Length 11732 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -89,6 +89,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -243,17 +249,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-06-20T17:53:22+02:00</rdf:li>
+ <rdf:li>2024-09-16T23:16:06+02:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-mc-manual-para-split-obsolete.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-06-20T17:53:22+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-06-20T17:53:22+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-06-20T17:53:22+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-09-16T23:16:06+02:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-09-16T23:16:06+02:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-09-16T23:16:06+02:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:c33d64b4-96ec-4e48-8f27-0b3edc831547</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:36712ce3-22f3-4c4a-8418-0427448d178a</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:02d42fce-9fea-44e8-84cb-b67592a2a853</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>2</prism:pageCount>
</rdf:Description>
@@ -413,12 +419,12 @@ endobj
<< /Type /Catalog /Pages 14 0 R /Lang (de)/Metadata 15 0 R >>
endobj
25 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240620175322+02'00')/ModDate (D:20240620175322+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240916231606+02'00')/ModDate (D:20240916231606+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 26
0000000002 65535 f
-0000016851 00000 n
+0000017182 00000 n
0000000003 00000 f
0000000004 00000 f
0000000005 00000 f
@@ -427,24 +433,24 @@ xref
0000000008 00000 f
0000000000 00000 f
0000002976 00000 n
-0000016645 00000 n
+0000016976 00000 n
0000003094 00000 n
0000000020 00000 n
-0000023472 00000 n
-0000023826 00000 n
+0000023803 00000 n
+0000024157 00000 n
0000003181 00000 n
-0000016764 00000 n
-0000014672 00000 n
-0000016898 00000 n
-0000022021 00000 n
-0000017205 00000 n
-0000017280 00000 n
-0000022257 00000 n
-0000023626 00000 n
-0000023894 00000 n
-0000023972 00000 n
+0000017095 00000 n
+0000015003 00000 n
+0000017229 00000 n
+0000022352 00000 n
+0000017536 00000 n
+0000017611 00000 n
+0000022588 00000 n
+0000023957 00000 n
+0000024225 00000 n
+0000024303 00000 n
trailer
-<< /Size 26 /Root 24 0 R /Info 25 0 R /ID [ <2A141E41EDA78C2ADA31A952D041C439> <2A141E41EDA78C2ADA31A952D041C439> ] >>
+<< /Size 26 /Root 24 0 R /Info 25 0 R /ID [ <3C637231FF843589F1694979C9C8F1E9> <3C637231FF843589F1694979C9C8F1E9> ] >>
startxref
-24195
+24526
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-softhyphen.pdf b/macros/latex/contrib/tagpdf/ex-softhyphen.pdf
index 5f96db2bdb..5b157abef4 100644
--- a/macros/latex/contrib/tagpdf/ex-softhyphen.pdf
+++ b/macros/latex/contrib/tagpdf/ex-softhyphen.pdf
@@ -1,7 +1,7 @@
%PDF-1.7
%
14 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11382 >>
+<< /Type /Metadata /Subtype /XML /Length 11713 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -56,6 +56,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -210,17 +216,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-06-20T17:53:55+02:00</rdf:li>
+ <rdf:li>2024-09-16T23:16:29+02:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-softhyphen.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-06-20T17:53:55+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-06-20T17:53:55+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-06-20T17:53:55+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-09-16T23:16:29+02:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-09-16T23:16:29+02:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-09-16T23:16:29+02:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:aa82e685-4098-469d-861c-3c45dfc700c7</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:9c8a342f-f758-4367-8d05-7621809f3e05</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:c1f8ee28-c74d-4fe3-859d-5667f036c14d</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>1</prism:pageCount>
</rdf:Description>
@@ -393,43 +399,43 @@ endobj
<< /Type /Catalog /Pages 19 0 R /MarkInfo 20 0 R/Lang (de)/Metadata 14 0 R/StructTreeRoot 5 0 R >>
endobj
30 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240620175355+02'00')/ModDate (D:20240620175355+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240916231629+02'00')/ModDate (D:20240916231629+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 31
0000000002 65535 f
-0000012360 00000 n
+0000012691 00000 n
0000000003 00000 f
0000000004 00000 f
0000000008 00000 f
-0000013738 00000 n
-0000012443 00000 n
-0000012661 00000 n
+0000014069 00000 n
+0000012774 00000 n
+0000012992 00000 n
0000000000 00000 f
-0000013253 00000 n
-0000013346 00000 n
-0000013432 00000 n
-0000013542 00000 n
-0000013628 00000 n
+0000013584 00000 n
+0000013677 00000 n
+0000013763 00000 n
+0000013873 00000 n
+0000013959 00000 n
0000000020 00000 n
-0000012273 00000 n
-0000012138 00000 n
-0000011492 00000 n
-0000017687 00000 n
-0000018051 00000 n
-0000012407 00000 n
-0000012493 00000 n
-0000012624 00000 n
-0000013839 00000 n
-0000016487 00000 n
-0000013993 00000 n
-0000014167 00000 n
-0000016727 00000 n
-0000017846 00000 n
-0000018113 00000 n
-0000018228 00000 n
+0000012604 00000 n
+0000012469 00000 n
+0000011823 00000 n
+0000018018 00000 n
+0000018382 00000 n
+0000012738 00000 n
+0000012824 00000 n
+0000012955 00000 n
+0000014170 00000 n
+0000016818 00000 n
+0000014324 00000 n
+0000014498 00000 n
+0000017058 00000 n
+0000018177 00000 n
+0000018444 00000 n
+0000018559 00000 n
trailer
-<< /Size 31 /Root 29 0 R /Info 30 0 R /ID [ <5BCC76B86A64606D9B117AF50FFA18AE> <5BCC76B86A64606D9B117AF50FFA18AE> ] >>
+<< /Size 31 /Root 29 0 R /Info 30 0 R /ID [ <DD4C19A30779C7C53A0E2F9F517D5100> <DD4C19A30779C7C53A0E2F9F517D5100> ] >>
startxref
-18451
+18782
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf b/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf
index 21b11b9346..fa6c7457d8 100644
--- a/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf
+++ b/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf
@@ -1,7 +1,7 @@
%PDF-1.5
%
10 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11391 >>
+<< /Type /Metadata /Subtype /XML /Length 11722 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -56,6 +56,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -210,17 +216,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-06-20T17:54:22+02:00</rdf:li>
+ <rdf:li>2024-09-16T23:16:50+02:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-spaceglyph-listings.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-06-20T17:54:22+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-06-20T17:54:22+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-06-20T17:54:22+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-09-16T23:16:50+02:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-09-16T23:16:50+02:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-09-16T23:16:50+02:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:acdc2435-bf29-4e54-8d09-1c9b6dc32038</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:ad8487cb-8dcc-4cab-8542-55106010deec</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:22e6b54d-e349-4a3d-89ca-64190a29b6f8</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>1</prism:pageCount>
</rdf:Description>
@@ -354,39 +360,39 @@ endobj
<< /Type /Catalog /Pages 15 0 R /MarkInfo 16 0 R/Lang (de)/Metadata 10 0 R/StructTreeRoot 5 0 R >>
endobj
26 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240620175422+02'00')/ModDate (D:20240620175422+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240916231650+02'00')/ModDate (D:20240916231650+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 27
0000000002 65535 f
-0000012007 00000 n
+0000012338 00000 n
0000000003 00000 f
0000000004 00000 f
0000000008 00000 f
-0000012886 00000 n
-0000012090 00000 n
-0000012233 00000 n
+0000013217 00000 n
+0000012421 00000 n
+0000012564 00000 n
0000000000 00000 f
-0000012812 00000 n
+0000013143 00000 n
0000000020 00000 n
-0000011920 00000 n
-0000011785 00000 n
-0000011501 00000 n
-0000015069 00000 n
-0000015423 00000 n
-0000012054 00000 n
-0000012125 00000 n
-0000012196 00000 n
-0000012987 00000 n
-0000014053 00000 n
-0000013042 00000 n
-0000013117 00000 n
-0000014289 00000 n
-0000015223 00000 n
-0000015485 00000 n
-0000015600 00000 n
+0000012251 00000 n
+0000012116 00000 n
+0000011832 00000 n
+0000015400 00000 n
+0000015754 00000 n
+0000012385 00000 n
+0000012456 00000 n
+0000012527 00000 n
+0000013318 00000 n
+0000014384 00000 n
+0000013373 00000 n
+0000013448 00000 n
+0000014620 00000 n
+0000015554 00000 n
+0000015816 00000 n
+0000015931 00000 n
trailer
-<< /Size 27 /Root 25 0 R /Info 26 0 R /ID [ <50A5738B4CABF76A4CC27558811B7E58> <50A5738B4CABF76A4CC27558811B7E58> ] >>
+<< /Size 27 /Root 25 0 R /Info 26 0 R /ID [ <E53E29969037BD3F9F9BB1E9ADABB4FC> <E53E29969037BD3F9F9BB1E9ADABB4FC> ] >>
startxref
-15823
+16154
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf b/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf
index 7c9c135bf7..70b4e9922a 100644
--- a/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf
+++ b/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf
@@ -1,7 +1,7 @@
%PDF-1.7
%
20 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11390 >>
+<< /Type /Metadata /Subtype /XML /Length 11721 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -56,6 +56,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -210,17 +216,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-06-20T17:54:47+02:00</rdf:li>
+ <rdf:li>2024-09-16T23:17:11+02:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-structure-obsolete.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-06-20T17:54:47+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-06-20T17:54:47+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-06-20T17:54:47+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-09-16T23:17:11+02:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-09-16T23:17:11+02:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-09-16T23:17:11+02:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:bf5e4a2b-cfa9-4fc5-878c-8f9d2ee95445</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:971e1e25-37c4-4af9-8523-72714a87dea7</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:5942b5fc-8732-48de-83f5-988ceab02c03</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>1</prism:pageCount>
</rdf:Description>
@@ -526,56 +532,56 @@ endobj
<< /Type /Catalog /Pages 26 0 R /MarkInfo 27 0 R/Lang (de)/Metadata 20 0 R/StructTreeRoot 5 0 R >>
endobj
43 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240620175447+02'00')/ModDate (D:20240620175447+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240916231711+02'00')/ModDate (D:20240916231711+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 44
0000000002 65535 f
-0000012794 00000 n
+0000013125 00000 n
0000000003 00000 f
0000000004 00000 f
0000000008 00000 f
-0000014930 00000 n
-0000012877 00000 n
-0000013226 00000 n
+0000015261 00000 n
+0000013208 00000 n
+0000013557 00000 n
0000000000 00000 f
-0000013818 00000 n
-0000013903 00000 n
-0000014001 00000 n
-0000014109 00000 n
-0000014217 00000 n
-0000014306 00000 n
-0000014396 00000 n
-0000014506 00000 n
-0000014618 00000 n
-0000014708 00000 n
-0000014818 00000 n
+0000014149 00000 n
+0000014234 00000 n
+0000014332 00000 n
+0000014440 00000 n
+0000014548 00000 n
+0000014637 00000 n
+0000014727 00000 n
+0000014837 00000 n
+0000014949 00000 n
+0000015039 00000 n
+0000015149 00000 n
0000000020 00000 n
-0000012695 00000 n
-0000012560 00000 n
-0000011500 00000 n
-0000023013 00000 n
-0000019779 00000 n
-0000023361 00000 n
-0000012841 00000 n
-0000012955 00000 n
-0000013189 00000 n
-0000015031 00000 n
-0000018510 00000 n
-0000015280 00000 n
-0000015355 00000 n
-0000018746 00000 n
-0000019933 00000 n
-0000020133 00000 n
-0000021901 00000 n
-0000020270 00000 n
-0000020346 00000 n
-0000022135 00000 n
-0000023164 00000 n
-0000023423 00000 n
-0000023538 00000 n
+0000013026 00000 n
+0000012891 00000 n
+0000011831 00000 n
+0000023344 00000 n
+0000020110 00000 n
+0000023692 00000 n
+0000013172 00000 n
+0000013286 00000 n
+0000013520 00000 n
+0000015362 00000 n
+0000018841 00000 n
+0000015611 00000 n
+0000015686 00000 n
+0000019077 00000 n
+0000020264 00000 n
+0000020464 00000 n
+0000022232 00000 n
+0000020601 00000 n
+0000020677 00000 n
+0000022466 00000 n
+0000023495 00000 n
+0000023754 00000 n
+0000023869 00000 n
trailer
-<< /Size 44 /Root 42 0 R /Info 43 0 R /ID [ <ADB87D57539D5CE2A8FC3A4721B94DA0> <ADB87D57539D5CE2A8FC3A4721B94DA0> ] >>
+<< /Size 44 /Root 42 0 R /Info 43 0 R /ID [ <315E3C9C805F4176C8EEA6E28B15D63A> <315E3C9C805F4176C8EEA6E28B15D63A> ] >>
startxref
-23761
+24092
%%EOF
diff --git a/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf b/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf
index 81423fede4..dab28eb5be 100644
--- a/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf
+++ b/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf
@@ -1,7 +1,7 @@
%PDF-2.0
%
26 0 obj
-<< /Type /Metadata /Subtype /XML /Length 11387 >>
+<< /Type /Metadata /Subtype /XML /Length 11718 >>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
@@ -56,6 +56,12 @@ stream
<pdfaProperty:category>internal</pdfaProperty:category>
<pdfaProperty:description>Year of standard</pdfaProperty:description>
</rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
@@ -210,17 +216,17 @@ stream
</dc:language>
<dc:date>
<rdf:Seq>
- <rdf:li>2024-06-20T17:55:14+02:00</rdf:li>
+ <rdf:li>2024-09-16T23:17:32+02:00</rdf:li>
</rdf:Seq>
</dc:date>
<dc:format>application/pdf</dc:format>
<dc:source>ex-tagpdf-template.tex</dc:source>
<xmp:CreatorTool>LaTeX</xmp:CreatorTool>
- <xmp:CreateDate>2024-06-20T17:55:14+02:00</xmp:CreateDate>
- <xmp:ModifyDate>2024-06-20T17:55:14+02:00</xmp:ModifyDate>
- <xmp:MetadataDate>2024-06-20T17:55:14+02:00</xmp:MetadataDate>
+ <xmp:CreateDate>2024-09-16T23:17:32+02:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-09-16T23:17:32+02:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2024-09-16T23:17:32+02:00</xmp:MetadataDate>
<xmpMM:DocumentID>uuid:f320abfc-f6ab-4d12-8719-d176f4d947cf</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:898c4009-cc18-43c3-8fda-44ab8e28318c</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:00659af0-3fb7-47ae-865d-6609c8c59fe3</xmpMM:InstanceID>
<prism:complianceProfile>three</prism:complianceProfile>
<prism:pageCount>1</prism:pageCount>
</rdf:Description>
@@ -307,7 +313,7 @@ endobj
<< /Type /Namespace /NS (https://www.latex-project.org/ns/book/2022) /RoleMapNS 18 0 R >>
endobj
19 0 obj
-<< /Type /Namespace /NS (data:,69C62BB9-6D5A-6FC9-FD75-56BC71E087F4) >>
+<< /Type /Namespace /NS (data:,C5949C29-1579-8EAA-5B48-21F381CD9140) >>
endobj
8 0 obj
[ 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R ]
@@ -399,55 +405,55 @@ endobj
<< /Type /Catalog /Pages 31 0 R /MarkInfo 32 0 R/Lang (en)/Metadata 26 0 R/StructTreeRoot 5 0 R >>
endobj
42 0 obj
-<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240620175514+02'00')/ModDate (D:20240620175514+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
+<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240916231732+02'00')/ModDate (D:20240916231732+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >>
endobj
xref
0 43
0000000002 65535 f
-0000011929 00000 n
+0000012260 00000 n
0000000003 00000 f
0000000004 00000 f
0000000010 00000 f
-0000014805 00000 n
-0000012012 00000 n
-0000012222 00000 n
-0000014240 00000 n
-0000012865 00000 n
+0000015136 00000 n
+0000012343 00000 n
+0000012553 00000 n
+0000014571 00000 n
+0000013196 00000 n
0000000012 00000 f
-0000012933 00000 n
+0000013264 00000 n
0000000014 00000 f
-0000013003 00000 n
+0000013334 00000 n
0000000020 00000 f
-0000013766 00000 n
-0000013084 00000 n
-0000014044 00000 n
-0000013873 00000 n
-0000014151 00000 n
+0000014097 00000 n
+0000013415 00000 n
+0000014375 00000 n
+0000014204 00000 n
+0000014482 00000 n
0000000000 00000 f
-0000014301 00000 n
-0000014398 00000 n
-0000014485 00000 n
-0000014572 00000 n
-0000014671 00000 n
+0000014632 00000 n
+0000014729 00000 n
+0000014816 00000 n
+0000014903 00000 n
+0000015002 00000 n
0000000020 00000 n
-0000011866 00000 n
-0000011731 00000 n
-0000011497 00000 n
-0000017426 00000 n
-0000017780 00000 n
-0000011976 00000 n
-0000012053 00000 n
-0000012185 00000 n
-0000012801 00000 n
-0000014942 00000 n
-0000016383 00000 n
-0000015029 00000 n
-0000016604 00000 n
-0000017580 00000 n
-0000017842 00000 n
-0000017957 00000 n
+0000012197 00000 n
+0000012062 00000 n
+0000011828 00000 n
+0000017757 00000 n
+0000018111 00000 n
+0000012307 00000 n
+0000012384 00000 n
+0000012516 00000 n
+0000013132 00000 n
+0000015273 00000 n
+0000016714 00000 n
+0000015360 00000 n
+0000016935 00000 n
+0000017911 00000 n
+0000018173 00000 n
+0000018288 00000 n
trailer
-<< /Size 43 /Root 41 0 R /Info 42 0 R /ID [ <E36FE13F3FA0066C1F9796E38E50018C> <E36FE13F3FA0066C1F9796E38E50018C> ] >>
+<< /Size 43 /Root 41 0 R /Info 42 0 R /ID [ <0DBC95E2E8610D105A3F1B62C5D4C9B9> <0DBC95E2E8610D105A3F1B62C5D4C9B9> ] >>
startxref
-18180
+18511
%%EOF
diff --git a/macros/latex/contrib/tagpdf/link-figure-input.tex b/macros/latex/contrib/tagpdf/link-figure-input.tex
index ef07c33e95..1a1036d282 100644
--- a/macros/latex/contrib/tagpdf/link-figure-input.tex
+++ b/macros/latex/contrib/tagpdf/link-figure-input.tex
@@ -27,7 +27,7 @@
\NewDocumentCommand\balloon{m}{%
\node[fit={(pic cs:#1-first) (pic cs:#1-end)
([yshift=7pt]pic cs:#1-end)},balloon](#1){};}
-\begin{tikzpicture}[overlay,remember picture]
+\begin{tikzpicture}[overlay,remember picture,alt={Illustration of link annotation structure}]
\balloon{link}
\balloon{structparent}
\balloon{OBJR}
@@ -45,7 +45,7 @@
\draw[ref] (kid)--(OBJR);
\draw[ref] (OBJR)--(linkref);
\end{tikzpicture}
-\begin{lstlisting}[name=OBJR]
+\begin{taglstlisting}[name=OBJR]
*\tikzmark{link-first}*18 0 obj*\tikzmark{link-end}* %Link Object
<< /Type /Annot /Subtype/Link
/Rect [ 196.109 494.573 399.167 506.831 ]
@@ -67,4 +67,4 @@ endobj};
<< /Nums
[... *\tikzmark{pnum-first}*16*\tikzmark{pnum-end}* *\tikzmark{pref-first}*17 0 R*\tikzmark{pref-end}* ...] >>
endobj
-\end{lstlisting}
+\end{taglstlisting}
diff --git a/macros/latex/contrib/tagpdf/pac2024-report.png b/macros/latex/contrib/tagpdf/pac2024-report.png
new file mode 100644
index 0000000000..4474bc989f
--- /dev/null
+++ b/macros/latex/contrib/tagpdf/pac2024-report.png
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/pac2024-version.png b/macros/latex/contrib/tagpdf/pac2024-version.png
new file mode 100644
index 0000000000..1bc12bdafe
--- /dev/null
+++ b/macros/latex/contrib/tagpdf/pac2024-version.png
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/tagpdf-backend.dtx b/macros/latex/contrib/tagpdf/tagpdf-backend.dtx
index 7e19e1e90f..f21c1804ec 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-backend.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-backend.dtx
@@ -47,13 +47,13 @@
% }^^A
% }
%
-% \date{Version 0.99c, released 2024-06-20}
+% \date{Version 0.99f, released 2024-09-16}
% \maketitle
% \begin{implementation}
% \begin{macrocode}
%<@@=tag>
%<*luatex>
-\ProvidesExplFile {tagpdf-luatex.def} {2024-06-20} {0.99c}
+\ProvidesExplFile {tagpdf-luatex.def} {2024-09-16} {0.99f}
{tagpdf~driver~for~luatex}
% \end{macrocode}
% \section{Loading the lua}
@@ -85,6 +85,7 @@
% \@@_seq_new:N,
% \@@_prop_gput:Nnn,
% \@@_seq_gput_right:Nn,
+% \@@_seq_gput_left:Nn,
% \@@_seq_item:cn,
% \@@_prop_item:cn,
% \@@_seq_show:N,
@@ -114,7 +115,7 @@
\cs_set_protected:Npn \@@_prop_gput:Nnn #1 #2 #3
{
\prop_gput:Nnn #1 { #2 } { #3 }
- \lua_now:e { ltx.@@.tables.\cs_to_str:N#1 ["#2"] = "#3" }
+ \lua_now:e { ltx.@@.tables.\cs_to_str:N#1 ["#2"] = "\lua_escape:n{#3}" }
}
@@ -123,9 +124,18 @@
\seq_gput_right:Nn #1 { #2 }
\lua_now:e { table.insert(ltx.@@.tables.\cs_to_str:N#1, "#2") }
}
-
+% \end{macrocode}
+%
+% this inserts on the right of the lua table, but as the lua table is not used for kids
+% this is ignored for now.
+% \begin{macrocode}
+\cs_set_protected:Npn \@@_seq_gput_left:Nn #1 #2
+ {
+ \seq_gput_left:Nn #1 { #2 }
+ \lua_now:e { table.insert(ltx.@@.tables.\cs_to_str:N#1, "#2") }
+ }
+
%Hm not quite sure about the naming
-
\cs_set:Npn \@@_seq_item:cn #1 #2
{
\lua_now:e { tex.print(ltx.@@.tables.#1[#2]) }
@@ -164,8 +174,8 @@
local ProvidesLuaModule = {
name = "tagpdf",
- version = "0.99c", --TAGVERSION
- date = "2024-06-20", --TAGDATE
+ version = "0.99f", --TAGVERSION
+ date = "2024-09-16", --TAGDATE
description = "tagpdf lua code",
license = "The LATEX Project Public License 1.3c"
}
@@ -252,6 +262,12 @@ local iwfontattributeid = luatexbase.new_attribute ("g_@@_interwordfont_attr")
local tagunmarkedbool= token.create("g_@@_tagunmarked_bool")
local truebool = token.create("c_true_bool")
% \end{macrocode}
+% with this token we can query the state of the softhyphen boolean
+% and so detect if hyphens from hyphenation should be replaced by soft-hyphens.
+% \begin{macrocode}
+local softhyphenbool = token.create("g_@@_softhyphen_bool")
+% \end{macrocode}
+
% Now a number of local versions from global tables.
% Not all is perhaps needed, most node variants were copied from lua-debug.
% \begin{macrocode}
@@ -286,6 +302,9 @@ local KERN = node.id("kern")
local PENALTY = node.id("penalty")
local LOCAL_PAR = node.id("local_par")
local MATH = node.id("math")
+
+local explicit_disc = 1
+local regular_disc = 3
% \end{macrocode}
% Now we setup the main table structure. ltx is used by other latex code too!
% \begin{macrocode}
@@ -1267,6 +1286,80 @@ function ltx.@@.func.output_parenttree (abspage)
end
% \end{macrocode}
% \end{macro}
+%
+% \begin{macro}
+% {
+% process_softhyphen_pre
+% process_softhyphen_post
+% }
+% First some local definitions. Since these are only needed locally everything gets wrapped into a block.
+% \begin{macrocode}
+do
+ local properties = node.get_properties_table()
+ local is_soft_hyphen_prop = 'tagpdf.rewrite-softhyphen.is_soft_hyphen'
+ local hyphen_char = 0x2D
+ local soft_hyphen_char = 0xAD
+% \end{macrocode}
+%
+% A lookup table to test if the font supports the soft hyphen glyph.
+% \begin{macrocode}
+ local softhyphen_fonts = setmetatable({}, {__index = function(t, fid)
+ local fdir = identifiers[fid]
+ local format = fdir and fdir.format
+ local result = (format == 'opentype' or format == 'truetype')
+ local characters = fdir and fdir.characters
+ result = result and (characters and characters[soft_hyphen_char]) ~= nil
+ t[fid] = result
+ return result
+ end})
+% \end{macrocode}
+%
+% A pre shaping callback to mark hyphens as being hyphenation hyphens.
+% This runs before shaping to avoid affecting hyphens moved into
+% discretionaries during shaping.
+% \begin{macrocode}
+ local function process_softhyphen_pre(head, _context, _dir)
+ if softhyphenbool.mode ~= truebool.mode then return true end
+ for disc, sub in node.traverse_id(DISC, head) do
+ if sub == explicit_disc or sub == regular_disc then
+ for n, _ch, _f in node.traverse_char(disc.pre) do
+ local props = properties[n]
+ if not props then
+ props = {}
+ properties[n] = props
+ end
+ props[is_soft_hyphen_prop] = true
+ end
+ end
+ end
+ return true
+ end
+
+% \end{macrocode}
+%
+% Finally do the actual replacement after shaping. No checking for double processing here
+% since the operation is idempotent.
+% \begin{macrocode}
+ local function process_softhyphen_post(head, _context, _dir)
+ if softhyphenbool.mode ~= truebool.mode then return true end
+ for disc, sub in node.traverse_id(DISC, head) do
+ for n, ch, fid in node.traverse_glyph(disc.pre) do
+ local props = properties[n]
+ if softhyphen_fonts[fid] and ch == hyphen_char and props and props[is_soft_hyphen_prop] then
+ n.char = soft_hyphen_char
+ props.glyph_info = nil
+ end
+ end
+ end
+ return true
+ end
+
+ luatexbase.add_to_callback('pre_shaping_filter', process_softhyphen_pre, 'tagpdf.rewrite-softhyphen')
+ luatexbase.add_to_callback('post_shaping_filter', process_softhyphen_post, 'tagpdf.rewrite-softhyphen')
+end
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macrocode}
%</lua>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-checks.dtx b/macros/latex/contrib/tagpdf/tagpdf-checks.dtx
index 345b2e35ba..5ade1ff427 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-checks.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-checks.dtx
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Version 0.99c, released 2024-06-20}
+% \date{Version 0.99f, released 2024-09-16}
% \maketitle
% \begin{documentation}
% \section{Commands}
@@ -331,11 +331,12 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-checks-code} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdf-checks-code} {2024-09-16} {0.99f}
{part of tagpdf - code related to checks, conditionals, debugging and messages}
%</header>
% \end{macrocode}
% \section{Messages}
+%
% \subsection{Messages related to mc-chunks}
% \begin{macro}{mc-nested}
% This message is issue is a mc is opened before the previous has been closed.
@@ -454,6 +455,18 @@
{ closing~structure~#1~tagged~\use:e{\prop_item:cn{g_@@_struct_#1_prop}{S}} }
% \end{macrocode}
% \end{macro}
+%
+% \begin{macro}{struct-Ref-unknown}
+% This message is issued at the end, when the Ref keys are updated.
+% TODO: in debug mode it should report more info about the structure.
+% \begin{macrocode}
+\msg_new:nnn { tag } {struct-Ref-unknown}
+ {
+ #1~has~no~related~structure.\\
+ /Ref~not~updated.
+ }
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{tree-struct-still-open}
% Message issued at the end if there are beside Root other
% open structures on the stack.
@@ -752,7 +765,7 @@
\cs_new_protected:Npn \@@_check_struct_used:n #1 %#1 label
{
\prop_get:cnNT
- {g_@@_struct_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop}
+ {g_@@_struct_\property_ref:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop}
{P}
\l_@@_tmpa_tl
{
@@ -940,7 +953,7 @@
{
\int_compare:nT
{
- \@@_property_ref:enn
+ \property_ref:enn
{mcid-####1}
{tagabspage}
{-1}
@@ -951,7 +964,7 @@
\seq_gput_right:Ne \l_tmpa_seq
{
Page##1-####1-
- \@@_property_ref:enn
+ \property_ref:enn
{mcid-####1}
{tagmcid}
{-1}
@@ -1124,24 +1137,24 @@
}
}
% \end{macrocode}
-% This tracks tag stop and start.
-% The tag-stop message should go before the int is increased.
-% The tag-start message after the int is decreased.
+% This tracks tag suspend and resume.
+% The tag-suspend message should go before the int is increased.
+% The tag-resume message after the int is decreased.
% \begin{macrocode}
-\msg_new:nnn { tag / debug } {tag-stop}
+\msg_new:nnn { tag / debug } {tag-suspend}
{
\int_if_zero:nTF
{#1}
- {Tagging~stopped}
- {Tagging~(not)~stopped~(already~inactive)}\\
+ {Tagging~suspended}
+ {Tagging~(not)~suspended~(already~inactive)}\\
level:~#1~==>~\int_eval:n{#1+1}\tl_if_empty:nF{#2}{,~label:~#2}~[\msg_line_context:]
}
-\msg_new:nnn { tag / debug } {tag-start}
+\msg_new:nnn { tag / debug } {tag-resume}
{
\int_if_zero:nTF
{#1}
- {Tagging~restarted}
- {Tagging~(not)~restarted}\\
+ {Tagging~resumed}
+ {Tagging~(not)~resumed}\\
level:~\int_eval:n{#1+1}~==>~#1\tl_if_empty:nF{#2}{,~label:~#2}~[\msg_line_context:]
}
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-code.pdf b/macros/latex/contrib/tagpdf/tagpdf-code.pdf
index 4dd216d1a9..5a5d60643a 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-code.pdf
+++ b/macros/latex/contrib/tagpdf/tagpdf-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/tagpdf-code.tex b/macros/latex/contrib/tagpdf/tagpdf-code.tex
index b483b96974..df05b99a30 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-code.tex
+++ b/macros/latex/contrib/tagpdf/tagpdf-code.tex
@@ -28,9 +28,18 @@
% The next line is needed so that \GetFileInfo will be able to pick up
% version data.
+\usepackage{iftex}
+%until l3doc is corrected
+\ifluatex
+\usepackage[TU]{fontenc}
+\ttfamily
+ \DeclareFontShape{TU}{lmtt}{m}{it}
+ {<-> \UnicodeFontFile{lmmonoslant10-regular}{}}{}
+\fi
\usepackage{longtable}
\usepackage{tagpdf}
-\makeatletter
+
+\input{tagpdf-docelements}
%\def\@setupverbvisiblespace{}
%\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi
% \bgroup
@@ -38,13 +47,12 @@
% \verbatim@font\@noligs
% \language\l@nohyphenation
% \@ifstar\@verb\@verb}
-\makeatother
\begin{document}
\GetFileInfo{tagpdf.sty}
\title{%
- \pkg{tagpdf} -- A package to experiment with pdf tagging%
+ \pkg{tagpdf} -- \LaTeX{} kernel code for PDF tagging%
\thanks{This file describes \fileversion,
last revised \filedate.}%
}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-data.dtx b/macros/latex/contrib/tagpdf/tagpdf-data.dtx
index f07e5db3ed..7bff6b5d15 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-data.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-data.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Version 0.99c, released 2024-06-20}
+% \date{Version 0.99f, released 2024-09-16}
% \maketitle
% \begin{documentation}
% This files contains a various data files which are read in
@@ -61,7 +61,7 @@
% latex-lab has also a namespace module, which takes precedence!
% \begin{macrocode}
%<*ns-latex>
-%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-06-20} {0.99c}
+%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-09-16} {0.99f}
%% {latex} {https://www.latex-project.org/ns/dflt/2022}{}
title, Title, pdf2,
part, Title, pdf2,
@@ -93,7 +93,7 @@ text, P, pdf2,
% It is bound to change
% \begin{macrocode}
%<*ns-latex-book>
-%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-06-20} {0.99c}
+%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-09-16} {0.99f}
%% {latex-book} {https://www.latex-project.org/ns/book/2022}{}
chapter, H1,pdf2,
section, H2,pdf2,
@@ -107,7 +107,7 @@ subparagraph, H6,pdf2,
% \section{The pdf namespace data}
% \begin{macrocode}
%<*ns-pdf>
-%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-06-20} {0.99c}
+%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-09-16} {0.99f}
%% {pdf} {http://iso.org/pdf/ssn}{}
StructTreeRoot,StructTreeRoot,pdf,D,
Document,Document,pdf,D,
@@ -175,7 +175,7 @@ Strong,Span,pdf,I,
% \section{The pdf 2.0 namespace data}
% \begin{macrocode}
%<*ns-pdf2>
-%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-06-20} {0.99c}
+%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-09-16} {0.99f}
%% {pdf2} {http://iso.org/pdf2/ssn}{}
StructTreeRoot,StructTreeRoot,pdf2,D,
Document,Document,pdf2,D,
@@ -232,7 +232,7 @@ Strong,Strong,pdf2,I,
% \section{The mathml namespace data}
% \begin{macrocode}
%<*ns-mathml>
-%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-06-20} {0.99c}
+%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-09-16} {0.99f}
% {mathml}{http://www.w3.org/1998/Math/MathML}{}
abs,abs,mathml,
and,and,mathml,
@@ -467,7 +467,7 @@ xor,xor,mathml,
% This will perhaps change in future.
% \begin{macrocode}
%<*parent-child>
-%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-06-20} {0.99c}
+%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-09-16} {0.99f}
,,,StructTreeRoot,Document,Art,Part,Div,Sect,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,MC
Document,both,document level,1,0..n,∅,‡,‡,∅,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅
Art,1.7,grouping,∅,0..n,∅,‡,‡,0..n,0..n,‡,∅,∅,∅,0..n,∅,0..n,∅,∅,∅,0..1,0..1,∅,∅,∅,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,∅,∅
@@ -522,7 +522,7 @@ MC,both,---,∅,∅,∅,∅,∅,∅,0..n,‡,∅,∅,∅,0..n,0..n,0..n,0..n,0..
% This will perhaps change in future.
% \begin{macrocode}
%<*parent-child-2>
-%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2024-06-20} {0.99c}
+%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2024-09-16} {0.99f}
,,,StructTreeRoot,Document,DocumentFragment,Art,Part,Div,Sect,Aside,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Title,Sub,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Em,Strong,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,FENote,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,math,mathml,Artifact,MC
Document,both,document level,1,0..n,0..n,∅,‡,‡,∅,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
DocumentFragment,2.0,document level,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅,0..n,∅
diff --git a/macros/latex/contrib/tagpdf/tagpdf-docelements.tex b/macros/latex/contrib/tagpdf/tagpdf-docelements.tex
new file mode 100644
index 0000000000..c388889aa1
--- /dev/null
+++ b/macros/latex/contrib/tagpdf/tagpdf-docelements.tex
@@ -0,0 +1,2 @@
+\ProvideDocElement[printtype=\textit{struct key},idxtype=key,idxgroup=Structure keys]{Structkeydecl}{structkeydecl}
+\ProvideDocElement[printtype=\textit{setup key},idxtype=key,idxgroup=Setup keys]{Setupkeydecl}{setupkeydecl}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
index 0cef27fd3b..f10752d296 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.99c, released 2024-06-20}
+% \date{Version 0.99f, released 2024-09-16}
% \maketitle
% \begin{documentation}
% \end{documentation}
@@ -55,11 +55,11 @@
% \begin{macrocode}
%<@@=tag>
%<*generic>
-\ProvidesExplPackage {tagpdf-mc-code-generic} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdf-mc-code-generic} {2024-09-16} {0.99f}
{part of tagpdf - code related to marking chunks - generic mode}
%</generic>
%<*debug>
-\ProvidesExplPackage {tagpdf-debug-generic} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdf-debug-generic} {2024-09-16} {0.99f}
{part of tagpdf - debugging code related to marking chunks - generic mode}
%</debug>
% \end{macrocode}
@@ -573,14 +573,14 @@
% \end{macrocode}
% revert the attribute:
% \begin{macrocode}
- \@@_property_gset:nnnn {tagmcid } { now }
+ \property_gset:nnnn {tagmcid } { now }
{0} { \int_use:N \g_@@_MCID_tmp_bypage_int }
\cs_new_protected:Npn \@@_mc_bdc_mcid:nn #1 #2
{
\int_gincr:N \c@g_@@_MCID_abs_int
\tl_set:Ne \l_@@_mc_ref_abspage_tl
{
- \@@_property_ref:enn %3 args
+ \property_ref:enn %3 args
{
mcid-\int_use:N \c@g_@@_MCID_abs_int
}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
index 7dd309c5f5..5b41c883ed 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.99c, released 2024-06-20}
+% \date{Version 0.99f, released 2024-09-16}
% \maketitle
% \begin{implementation}
% The code is split into three parts: code shared by all engines,
@@ -86,11 +86,11 @@
% \begin{macrocode}
%<@@=tag>
%<*luamode>
-\ProvidesExplPackage {tagpdf-mc-code-lua} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdf-mc-code-lua} {2024-09-16} {0.99f}
{tagpdf - mc code only for the luamode }
%</luamode>
%<*debug>
-\ProvidesExplPackage {tagpdf-debug-lua} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdf-debug-lua} {2024-09-16} {0.99f}
{part of tagpdf - debugging code related to marking chunks - lua mode}
%</debug>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
index c96fd8c4c8..c8b7d1a5e8 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.99c, released 2024-06-20}
+% \date{Version 0.99f, released 2024-09-16}
% \maketitle
% \begin{documentation}
% \section{Public Commands}
@@ -181,7 +181,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-mc-code-shared} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdf-mc-code-shared} {2024-09-16} {0.99f}
{part of tagpdf - code related to marking chunks -
code shared by generic and luamode }
%</header>
@@ -328,7 +328,7 @@
{
\@@_check_if_active_struct:T
{
- \tl_set:Ne \l_@@_tmpa_tl { \@@_property_ref:nnn{tagpdf-#1}{tagmcabs}{} }
+ \tl_set:Ne \l_@@_tmpa_tl { \property_ref:nnn{tagpdf-#1}{tagmcabs}{} }
\tl_if_empty:NTF\l_@@_tmpa_tl
{
\msg_warning:nnn {tag} {mc-label-unknown} {#1}
@@ -365,12 +365,12 @@
\tag_mc_end_push:
\tag_mc_begin:n {artifact=#1}
\group_begin:
- \tag_stop:n{artifact-group}
+ \tag_suspend:n{artifact-group}
}
\cs_set_protected:Npn \tag_mc_artifact_group_end:
{
- \tag_start:n{artifact-group}
+ \tag_resume:n{artifact-group}
\group_end:
\tag_mc_end:
\tag_mc_begin_pop:n{}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-roles.dtx b/macros/latex/contrib/tagpdf/tagpdf-roles.dtx
index 80f9da0f6b..d29c328b2e 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-roles.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-roles.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.99c, released 2024-06-20}
+% \date{Version 0.99f, released 2024-09-16}
% \maketitle
% \begin{documentation}
% \begin{function}
@@ -98,7 +98,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-roles-code} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdf-roles-code} {2024-09-16} {0.99f}
{part of tagpdf - code related to roles and structure names}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-space.dtx b/macros/latex/contrib/tagpdf/tagpdf-space.dtx
index a29c8f0fb3..e0aa2e09d7 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-space.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-space.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.99c, released 2024-06-20}
+% \date{Version 0.99f, released 2024-09-16}
% \maketitle
% \begin{documentation}
% \begin{function}{activate/space (setup-key),interwordspace (deprecated)}
@@ -66,7 +66,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-space-code} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdf-space-code} {2024-09-16} {0.99f}
{part of tagpdf - code related to real space chars}
%</header>
% \end{macrocode}
@@ -78,6 +78,7 @@
% \begin{macro}{activate/spaces (setup-key),interwordspace (deprecated),show-spaces (deprecated)}
% \begin{macrocode}
%<*package>
+\bool_new:N\l_@@_showspaces_bool
\keys_define:nn { @@ / setup }
{
activate/spaces .choice:,
diff --git a/macros/latex/contrib/tagpdf/tagpdf-struct.dtx b/macros/latex/contrib/tagpdf/tagpdf-struct.dtx
index 963852b1fc..f656b91686 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-struct.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-struct.dtx
@@ -27,6 +27,7 @@
\usepackage{array,booktabs,caption}
\hypersetup{pdfauthor=Ulrike Fischer,
pdftitle=tagpdf-tree module (tagpdf)}
+\input{tagpdf-docelements}
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
@@ -46,7 +47,7 @@
% }^^A
% }
%
-% \date{Version 0.99c, released 2024-06-20}
+% \date{Version 0.99f, released 2024-09-16}
% \maketitle
% \begin{documentation}
% \section{Public Commands}
@@ -120,10 +121,22 @@
% the third the value. Currently the only keyword is \texttt{ref} which updates
% the Ref key (an array)
% \end{function}
+%
+% \begin{function}{\tag_struct_gput_ref:nnn}
+% \begin{syntax}
+% \cs{tag_struct_gput_ref:nnn}\Arg{structure number}\Arg{keyword}\Arg{value}
+% \end{syntax}
+% This is an user interface to add a Ref key to an
+% existing structure. The target structure doesn't have to exist yet
+% but can be addressed by label, destname or even num.
+% \meta{keyword} is currently either \texttt{label}, \texttt{dest}
+% or \texttt{num}. The value is then either a label name, the name of a destination
+% or a structure number.
+% \end{function}
%
% \section{Public keys}
% \subsection{Keys for the structure commands}
-% \begin{function}{tag (struct-key)}
+% \begin{structkeydecl}{tag}
% This is required. The value of the key is normally one of the
% standard types listed in the main tagpdf documentation.
% It is possible to setup new tags/types.
@@ -132,15 +145,15 @@
% Currently the names spaces |pdf|, |pdf2|, |mathml| and |user| are defined.
% This allows to use a different name space than
% the one connected by default to the tag. But normally this should not be needed.
-% \end{function}
-% \begin{function}{stash (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{stash}
% Normally a new structure inserts itself as a kid
% into the currently active structure. This key prohibits this.
% The structure is nevertheless from now on
% \enquote{the current active structure}
% and parent for following marked content and structures.
-% \end{function}
-% \begin{function}{label (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{label}
% This key sets a label by which
% one can refer to the structure. It is e.g.
% used by \cs{tag_struct_use:n} (where a real label is actually not
@@ -149,55 +162,63 @@
% Internally the label name will start with \texttt{tagpdfstruct-} and it stores
% the two attributes |tagstruct| (the structure number) and |tagstructobj| (the
% object reference).
-% \end{function}
-% \begin{function}{parent (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{parent}
% By default a structure is added as kid to the currently active structure.
% With the parent key one can choose another parent. The value is a structure number which
% must refer to an already existing, previously created structure. Such a structure
% number can for example be have been stored with \cs{tag_get:n}, but one can also use
% a label on the parent structure and then use
% \cs{property_ref:nn}|{tagpdfstruct-label}{tagstruct}| to retrieve it.
-% \end{function}
-% \begin{function}{title (struct-key),title-o (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{firstkey}
+% If this key is used the structure is added at the left of the kids of
+% the parent structure (if the structure is not stashed).
+% This means that it will be the first kid of the structure
+% (unless some later structure uses the key too).
+% \end{structkeydecl}
+% \begin{structkeydecl}{title,title-o}
% This keys allows to set the dictionary entry
% \texttt{/Title} in the structure object.
% The value is handled as verbatim string and hex encoded.
% Commands are not expanded. |title-o| will expand the value once.
-% \end{function}
+% \end{structkeydecl}
%
-% \begin{function}{alt (struct-key)}
+% \begin{structkeydecl}{alt}
% This key inserts an \texttt{/Alt} value in the dictionary of structure object.
% The value is handled as verbatim string and hex encoded.
% The value will be expanded first once. If it is empty, nothing will happen.
-% \end{function}
-% \begin{function}{actualtext (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{actualtext}
% This key inserts an \texttt{/ActualText} value in the dictionary of structure object.
% The value is handled as verbatim string and hex encoded.
% The value will be expanded first once. If it is empty, nothing will happen.
-% \end{function}
-% \begin{function}{lang (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{lang}
% This key allows to set the language for a structure element. The value should be a bcp-identifier,
% e.g. |de-De|.
-% \end{function}
-% \begin{function}{ref (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{ref}
% This key allows to add references to other structure elements,
% it adds the |/Ref| array to the structure.
% The value should be a comma separated list of structure labels
% set with the |label| key. e.g. |ref={label1,label2}|.
-% \end{function}
-% \begin{function}{E (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{E}
% This key sets the |/E| key, the expanded form of an
% abbreviation or an acronym
% (I couldn't think of a better name, so I sticked to E).
-% \end{function}
-% \begin{function}{AF (struct-key),AFref (struct-key),
-% AFinline (struct-key),AFinline-o (struct-key),texsource,mathml}
+% \end{structkeydecl}
+% \begin{structkeydecl}{AF,AFref,
+% AFinline,AFinline-o,texsource,mathml}
+% These keys handle associated files in the structure element.
+%
% \begin{syntax}
% AF = \meta{object name}\\
% AFref = \meta{object reference}\\
% AF-inline = \meta{text content}\\
% \end{syntax}
-% These keys allows to reference an associated file in the structure element.
+%
% The value \meta{object name} should be the name of an object pointing
% to the \texttt{/Filespec} dictionary as expected by
% |\pdf_object_ref:n| from a current \texttt{l3kernel}.
@@ -209,15 +230,16 @@
% Future versions will perhaps extend this to more mime types, but it is
% still a research task to find out what is really needed.
%
-% |texsource| is a special variant of |AF-inline-o| which embeds the file
-% as |.tex| source with the |/AFrelationship| key set to |/Source|. It also sets the |/Desc| key
-% to a (currently) fix text.
+% |texsource| is a special variant of |AF-inline-o| which embeds the content
+% as |.tex| source with the |/AFrelationship| key set to |/Source|.
+% It also sets the |/Desc| key to a (currently) fix text.
%
-% |mathml| is a special variant of |AF-inline-o| which embeds the file
+% |mathml| is a special variant of |AF-inline-o| which embeds the content
% as |.xml| file with the |/AFrelationship| key set to |/Supplement|.
% It also sets the |/Desc| key to a (currently) fix text.
%
-% The argument of |AF| is an object name referring an embedded file as declared for example with
+% The argument of |AF| is an object name referring an embedded file as declared
+% for example with
% \cs{pdf_object_new:n} or with the l3pdffile module. |AF| expands its argument
% (this allows e.g. to use some variable for automatic numbering)
% and can be used more than once, to associate more than one file.
@@ -231,9 +253,9 @@
% does not check if the reference is valid!}
%
% The inline keys can be used only once per structure. Additional calls are ignored.
-% \end{function}
+% \end{structkeydecl}
%
-% \begin{function}{attribute (struct-key)}
+% \begin{structkeydecl}{attribute}
% This key takes as argument a comma list of attribute names
% (use braces to protect the commas from the external key-val parser)
% and allows to add one or more attribute dictionary entries in
@@ -243,16 +265,17 @@
% \end{verbatim}
% Attribute names and their content must be declared first in \cs{tagpdfsetup}.
%
-% \end{function}
+% \end{structkeydecl}
%
-% \begin{function}{attribute-class (struct-key)}
+% \begin{structkeydecl}{attribute-class}
% This key takes as argument a comma list of attribute class names
% (use braces to protect the commas from the external key-val parser)
% and allows to add one or more attribute classes to the structure object.
%
% Attribute class names and their content
% must be declared first in \cs{tagpdfsetup}.
-% \end{function}
+% \end{structkeydecl}
+%
% \subsection{Setup keys}
% \begin{function}{role/new-attribute (setup-key), newattribute (deprecated)}
% \begin{syntax}
@@ -272,20 +295,20 @@
% \end{verbatim}
%
% \end{function}
-% \begin{function}{root-AF (setup-key)}
+% \begin{setupkeydecl}{root-AF}
% \begin{syntax}
% root-AF = \meta{object name}
% \end{syntax}
% This key can be used in the setup command \cs{tagpdfsetup} and allows
% to add associated files to the root structure. Like |AF| it can be used more than
% once to add more than one file.
-% \end{function}
+% \end{setupkeydecl}
% \end{documentation}
% \begin{implementation}
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-struct-code} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdf-struct-code} {2024-09-16} {0.99f}
{part of tagpdf - code related to storing structure}
%</header>
% \end{macrocode}
@@ -442,12 +465,16 @@
\tl_new:N \l_@@_struct_roletag_NS_tl
% \end{macrocode}
% \end{variable}
-% \begin{variable}{\l_@@_struct_key_label_tl}
-% This will hold the label value.
+% \begin{variable}{\g_@@_struct_label_num_prop}
+% This will hold for every structure label the associated
+% structure number. The prop will allow to
+% fill the /Ref key directly at the first compilation if the ref
+% key is used.
% \begin{macrocode}
-\tl_new:N \l_@@_struct_key_label_tl
+\prop_new_linked:N \g_@@_struct_label_num_prop
% \end{macrocode}
% \end{variable}
+
% \begin{variable}{\l_@@_struct_elem_stash_bool}
% This will keep track of the stash status
% \begin{macrocode}
@@ -455,6 +482,15 @@
% \end{macrocode}
% \end{variable}
%
+% \begin{variable}{\l_@@_struct_addkid_tl}
+% This decides if a structure kid is added at the left or right of the parent.
+% The default is \texttt{right}.
+% \begin{macrocode}
+\tl_new:N \l_@@_struct_addkid_tl
+\tl_set:Nn \l_@@_struct_addkid_tl {right}
+% \end{macrocode}
+% \end{variable}
+
% \subsection{Variables used by tagging code of basic elements}
%
% \begin{variable}{\g_@@_struct_dest_num_prop}
@@ -696,16 +732,17 @@
/Type \c_space_tl /MCR \c_space_tl
/Pg
\c_space_tl
- \pdf_pageobject_ref:n { \@@_property_ref:enn{mcid-#1}{tagabspage}{1} }
- /MCID \c_space_tl \@@_property_ref:enn{mcid-#1}{tagmcid}{1}
+ \pdf_pageobject_ref:n { \property_ref:enn{mcid-#1}{tagabspage}{1} }
+ /MCID \c_space_tl \property_ref:enn{mcid-#1}{tagmcid}{1}
>>
}
%</package>
% \end{macrocode}
% \begin{macrocode}
%<*package|debug>
-%<package>\cs_new_protected:Npn \@@_struct_kid_mc_gput_right:nn #1 #2 %#1 structure num, #2 MCID absnum%
-%<debug>\cs_set_protected:Npn \@@_struct_kid_mc_gput_right:nn #1 #2 %#1 structure num, #2 MCID absnum%
+%<package>\cs_new_protected:Npn \@@_struct_kid_mc_gput_right:nn #1 #2
+%<debug>\cs_set_protected:Npn \@@_struct_kid_mc_gput_right:nn #1 #2
+%#1 structure num, #2 MCID absnum%
{
\@@_seq_gput_right:ce
{ g_@@_struct_kids_#1_seq }
@@ -733,8 +770,9 @@
% This commands adds a structure as kid. We only need to record the object
% reference in the sequence.
% \begin{macrocode}
-%<package>\cs_new_protected:Npn\@@_struct_kid_struct_gput_right:nn #1 #2 %#1 num of parent struct, #2 kid struct
-%<debug>\cs_set_protected:Npn\@@_struct_kid_struct_gput_right:nn #1 #2 %#1 num of parent struct, #2 kid struct
+%<package>\cs_new_protected:Npn\@@_struct_kid_struct_gput_right:nn #1 #2
+%<debug>\cs_set_protected:Npn\@@_struct_kid_struct_gput_right:nn #1 #2
+%%#1 num of parent struct, #2 kid struct
{
\@@_seq_gput_right:ce
{ g_@@_struct_kids_#1_seq }
@@ -747,10 +785,35 @@
%<debug> Struct~#2
%<debug> }
}
-
%<package>\cs_generate_variant:Nn \@@_struct_kid_struct_gput_right:nn {ee}
% \end{macrocode}
% \end{macro}
+% \begin{macro}
+% {
+% \@@_struct_kid_struct_gput_left:nn,\@@_struct_kid_struct_gput_left:ee
+% }
+% This commands adds a structure as kid one the left, so as first
+% kid. We only need to record the object reference in the sequence.
+% \begin{macrocode}
+%<package>\cs_new_protected:Npn\@@_struct_kid_struct_gput_left:nn #1 #2
+%<debug>\cs_set_protected:Npn\@@_struct_kid_struct_gput_left:nn #1 #2
+%%#1 num of parent struct, #2 kid struct
+ {
+ \@@_seq_gput_left:ce
+ { g_@@_struct_kids_#1_seq }
+ {
+ \pdf_object_ref_indexed:nn { @@/struct }{ #2 }
+ }
+%<debug> \seq_gput_left:cn
+%<debug> { g_@@_struct_debug_kids_#1_seq }
+%<debug> {
+%<debug> Struct~#2
+%<debug> }
+ }
+%<package>\cs_generate_variant:Nn \@@_struct_kid_struct_gput_left:nn {ee}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}
% {\@@_struct_kid_OBJR_gput_right:nnn,\@@_struct_kid_OBJR_gput_right:eee}
% At last the command to add an OBJR object. This has to write an object first.
@@ -759,10 +822,11 @@
% object reference
%
% \begin{macrocode}
-%<package>\cs_new_protected:Npn\@@_struct_kid_OBJR_gput_right:nnn #1 #2 #3 %#1 num of parent struct,
-%<package> %#2 obj reference
-%<package> %#3 page object reference
+%<package>\cs_new_protected:Npn\@@_struct_kid_OBJR_gput_right:nnn #1 #2 #3
+%<package>
+%<package>
%<debug>\cs_set_protected:Npn\@@_struct_kid_OBJR_gput_right:nnn #1 #2 #3
+%%#1 num of parent struct,#2 obj reference,#3 page object reference
{
\pdf_object_unnamed_write:nn
{ dict }
@@ -907,34 +971,47 @@
\tl_clear:N #2
\prop_map_inline:cn { g_@@_struct_#1_prop }
{
- \tl_put_right:Ne #2
- {
% \end{macrocode}
% Some keys needs the option to format the value, e.g. add brackets for an
% array, we also need the option to ignore some entries in the properties.
-% \begin{macrocode}
- \cs_if_exist_use:cTF {@@_struct_format_##1:nn}
- {{##1}{##2}}
- {\c_space_tl/##1~##2}
+% \begin{macrocode}
+ \cs_if_exist_use:cTF {@@_struct_format_##1:nnN}
+ {
+ {##1}{##2}#2
}
- }
+ {
+ \tl_put_right:Ne #2 { \c_space_tl/##1~##2 }
+ }
+ }
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_struct_format_rolemap:nn,\@@_struct_format_parentrole:nn}
+% \begin{macro}{\@@_struct_format_rolemap:nnN,\@@_struct_format_parentrole:nnN}
% This two entries should not end in the PDF.
% \begin{macrocode}
-\cs_new:Nn\@@_struct_format_rolemap:nn{}
-\cs_new:Nn\@@_struct_format_parentrole:nn{}
+\cs_new:Nn\@@_struct_format_rolemap:nnN{}
+\cs_new:Nn\@@_struct_format_parentrole:nnN{}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\@@_struct_format_Ref:nn}
-% Ref is an array, we store only the content to be able to extend it
-% so the formatting command adds the brackets:
+% \begin{macro}{\@@_struct_format_Ref:nnN}
+% Ref is an array, we store values as a clist of commands that must
+% be executed here, the formatting has to add also brackets.
+%
% \begin{macrocode}
-\cs_new:Nn\__tag_struct_format_Ref:nn{\c_space_tl/#1~[#2]}
+\cs_new_protected:Nn\@@_struct_format_Ref:nnN
+ {
+ \tl_put_right:Nn #3 { ~/#1~[ } %]
+ \clist_map_inline:nn{ #2 }
+ {
+ ##1 #3
+ }
+ \tl_put_right:Nn #3
+ { %[
+ \c_space_tl]
+ }
+ }
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@@_struct_write_obj:n}
@@ -953,7 +1030,8 @@
% \begin{macrocode}
\prop_get:cnNF { g_@@_struct_#1_prop } {P}\l_@@_tmpb_tl
{
- \prop_gput:cne { g_@@_struct_#1_prop } {P}{\pdf_object_ref_indexed:nn { @@/struct }{1}}
+ \prop_gput:cne { g_@@_struct_#1_prop } {P}
+ {\pdf_object_ref_indexed:nn { @@/struct }{1}}
\prop_gput:cne { g_@@_struct_#1_prop } {S}{/Artifact}
\seq_if_empty:cF {g_@@_struct_kids_#1_seq}
{
@@ -1005,8 +1083,9 @@
% \tag_struct_end:
% \end{verbatim}
% \begin{macrocode}
-\cs_new_protected:Npn \@@_struct_insert_annot:nn #1 #2 %#1 object reference to the annotation/xform
- %#2 structparent number
+\cs_new_protected:Npn \@@_struct_insert_annot:nn #1 #2
+ %#1 object reference to the annotation/xform
+ %#2 structparent number
{
\bool_if:NT \g_@@_active_struct_bool
{
@@ -1028,7 +1107,8 @@
#1 %
}
{
- \pdf_pageobject_ref:n { \@@_property_ref:nnn {@tag@objr@page@#2 }{ tagabspage }{1} }
+ \pdf_pageobject_ref:n
+ { \property_ref:nnn {@tag@objr@page@#2 }{ tagabspage }{1} }
}
% add the parent obj number to the parent tree:
\exp_args:Nne
@@ -1037,7 +1117,8 @@
#2
}
{
- \pdf_object_ref_indexed:nn { @@/struct }{ \l_@@_struct_stack_parent_tmpa_tl }
+ \pdf_object_ref_indexed:nn
+ { @@/struct }{ \l_@@_struct_stack_parent_tmpa_tl }
}
% increase the int:
\int_gincr:N \c@g_@@_parenttree_obj_int
@@ -1112,7 +1193,8 @@
\socket_new:nn { tag/struct/tag }{1}
\socket_new_plug:nnn { tag/struct/tag }{ latex-tags }
{
- \seq_set_split:Nne \l_@@_tmpa_seq { / } {#1/\prop_item:Ne\g__tag_role_tags_NS_prop{#1}}
+ \seq_set_split:Nne \l_@@_tmpa_seq { / }
+ {#1/\prop_item:Ne\g__tag_role_tags_NS_prop{#1}}
\tl_gset:Ne \g_@@_struct_tag_tl { \seq_item:Nn\l_@@_tmpa_seq {1} }
\tl_gset:Ne \g_@@_struct_tag_NS_tl{ \seq_item:Nn\l_@@_tmpa_seq {2} }
\@@_check_structure_tag:N \g_@@_struct_tag_tl
@@ -1120,10 +1202,12 @@
\socket_new_plug:nnn { tag/struct/tag }{ pdf-tags }
{
- \seq_set_split:Nne \l_@@_tmpa_seq { / } {#1/\prop_item:Ne\g_@@_role_tags_NS_prop{#1}}
+ \seq_set_split:Nne \l_@@_tmpa_seq { / }
+ {#1/\prop_item:Ne\g_@@_role_tags_NS_prop{#1}}
\tl_gset:Ne \g_@@_struct_tag_tl { \seq_item:Nn\l_@@_tmpa_seq {1} }
\tl_gset:Ne \g_@@_struct_tag_NS_tl{ \seq_item:Nn\l_@@_tmpa_seq {2} }
- \@@_role_get:VVNN \g_@@_struct_tag_tl\g_@@_struct_tag_NS_tl\l_@@_tmpa_tl\l_@@_tmpb_tl
+ \@@_role_get:VVNN
+ \g_@@_struct_tag_tl \g_@@_struct_tag_NS_tl \l_@@_tmpa_tl \l_@@_tmpb_tl
\tl_gset:Ne \g_@@_struct_tag_tl {\l_@@_tmpa_tl}
\tl_gset:Ne \g_@@_struct_tag_NS_tl{\l_@@_tmpb_tl}
\@@_check_structure_tag:N \g_@@_struct_tag_tl
@@ -1131,24 +1215,32 @@
\socket_assign_plug:nn { tag/struct/tag } {latex-tags}
% \end{macrocode}
-% \begin{macro}
+% \begin{structkeydecl}
% {
-% label (struct-key),
-% stash (struct-key),
-% parent (struct-key),
-% tag (struct-key),
-% title (struct-key),
-% title-o (struct-key),
-% alt (struct-key),
-% actualtext (struct-key),
-% lang (struct-key),
-% ref (struct-key),
-% E (struct-key)
+% label,
+% stash,
+% parent,
+% firstkid,
+% tag,
+% title,
+% title-o,
+% alt,
+% actualtext,
+% lang,
+% ref,
+% E
% }
% \begin{macrocode}
\keys_define:nn { @@ / struct }
{
- label .tl_set:N = \l_@@_struct_key_label_tl,
+ label .code:n =
+ {
+ \prop_gput:Nee\g_@@_struct_label_num_prop
+ {#1}{\int_use:N \c@g_@@_struct_abs_int}
+ \@@_property_record:eV
+ {tagpdfstruct-#1}
+ \c_@@_property_struct_clist
+ },
stash .bool_set:N = \l_@@_struct_elem_stash_bool,
parent .code:n =
{
@@ -1166,7 +1258,8 @@
{ parent~key~ignored }
}
},
- parent .default:n = {-1},
+ parent .default:n = {-1},
+ firstkid .code:n = { \tl_set:Nn \l_@@_struct_addkid_tl {left} },
tag .code:n = % S property
{
\socket_use:nn { tag/struct/tag }{#1}
@@ -1233,19 +1326,77 @@
{ Lang }
{ (#1) }
},
+ }
% \end{macrocode}
-% Ref is an array, the brackets are added through the formatting command.
+% \end{structkeydecl}
+% Ref is rather special as it values are often
+% known only at the end of the document.
+% It therefore stores it values as
+% clist of commands which are executed at the end of the document,
+% when the structure elements are written.
+% \begin{macro}{\@@_struct_Ref_obj:nN,\@@_struct_Ref_label:nN,
+% \@@_struct_Ref_dest:nN,\@@_struct_Ref_num:nN}
+% this commands are helper commands that are stored as clist
+% in the Ref key of a structure. They are executed when the structure
+% elements are written in \cs{@@_struct_write_obj}. They are used
+% in \cs{@@_struct_format_Ref}. They allow to add a Ref by object reference,
+% label, destname and structure number
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_struct_Ref_obj:nN #1 #2 %#1 a object reference
+ {
+ \tl_put_right:Ne#2
+ {
+ \c_space_tl#1
+ }
+ }
+
+\cs_new_protected:Npn \@@_struct_Ref_label:nN #1 #2 %#1 a label
+ {
+ \prop_get:NnNTF \g_@@_struct_label_num_prop {#1} \l_@@_tmpb_tl
+ {
+ \tl_put_right:Ne#2
+ {
+ \c_space_tl\tag_struct_object_ref:e{ \l_@@_tmpb_tl }
+ }
+ }
+ {
+ \msg_warning:nnn {tag}{struct-Ref-unknown}{Label~'#1'}
+ }
+ }
+\cs_new_protected:Npn \@@_struct_Ref_dest:nN #1 #2 %#1 a dest name
+ {
+ \prop_get:NnNTF \g_@@_struct_dest_num_prop {#1} \l_@@_tmpb_tl
+ {
+ \tl_put_right:Ne#2
+ {
+ \c_space_tl\tag_struct_object_ref:e{ \l_@@_tmpb_tl }
+ }
+ }
+ {
+ \msg_warning:nnn {tag}{struct-Ref-unknown}{Destination~'#1'}
+ }
+ }
+\cs_new_protected:Npn \@@_struct_Ref_num:nN #1 #2 %#1 a structure number
+ {
+ \tl_put_right:Ne#2
+ {
+ \c_space_tl\tag_struct_object_ref:e{ #1 }
+ }
+ }
+
+% \end{macrocode}
+% \end{macro}
+% \begin{structkeydecl}{ref,E,}
% \begin{macrocode}
+\keys_define:nn { @@ / struct }
+ {
ref .code:n = % ref property
{
- \tl_clear:N\l_@@_tmpa_tl
\clist_map_inline:on {#1}
{
- \tl_put_right:Ne \l_@@_tmpa_tl
- {~\@@_property_ref:en{tagpdfstruct-##1}{tagstructobj} }
+ \tag_struct_gput:nne
+ {\int_use:N \c@g_@@_struct_abs_int}{ref_label}{ ##1 }
}
- \@@_struct_gput_data_ref:ee
- { \int_use:N \c@g_@@_struct_abs_int } {\l_@@_tmpa_tl}
},
E .code:n = % E property
{
@@ -1261,9 +1412,9 @@
},
}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{AF (struct-key), AFref (struct-key),
-% AFinline (struct-key),AFinline-o (struct-key)}
+% \end{structkeydecl}
+%
+% \begin{structkeydecl}{AF, AFref,AFinline,AFinline-o,texsource,mathml}
% keys for the AF keys (associated files). They use commands from l3pdffile!
% The stream variants use txt as extension to get the mimetype.
% TODO: check if this should be configurable. For math we will perhaps need another
@@ -1314,7 +1465,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-\cs_new_protected:Npn \@@_struct_add_AF:nn #1 #2 % #1 struct num #2 object reference
+\cs_new_protected:Npn \@@_struct_add_AF:nn #1 #2
+% #1 struct num #2 object reference
{
\tl_if_exist:cTF
{
@@ -1340,7 +1492,8 @@
{
\pdf_object_if_exist:eTF {#1}
{
- \@@_struct_add_AF:ee { \int_use:N \c@g_@@_struct_abs_int }{\pdf_object_ref:e {#1}}
+ \@@_struct_add_AF:ee
+ { \int_use:N \c@g_@@_struct_abs_int }{\pdf_object_ref:e {#1}}
\@@_struct_prop_gput:nne
{ \int_use:N \c@g_@@_struct_abs_int }
{ AF }
@@ -1397,8 +1550,8 @@
}
}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{root-AF (setup-key)}
+% \end{structkeydecl}
+% \begin{setupkeydecl}{root-AF}
% The root structure can take AF keys too, so we provide a key for it.
% This key is used with |\tagpdfsetup|, not in a structure!
% \begin{macrocode}
@@ -1425,7 +1578,7 @@
},
}
% \end{macrocode}
-% \end{macro}
+% \end{setupkeydecl}
% \section{User commands}
% We allow to set a language by default
% \begin{macro}{\l_@@_struct_lang_tl}
@@ -1481,13 +1634,6 @@
\g_@@_struct_tag_tl
\g_@@_struct_tag_NS_tl
\@@_check_structure_has_tag:n { \int_use:N \c@g_@@_struct_abs_int }
- \tl_if_empty:NF
- \l_@@_struct_key_label_tl
- {
- \@@_property_record:eV
- {tagpdfstruct-\l_@@_struct_key_label_tl}
- \c_@@_property_struct_clist
- }
% \end{macrocode}
% The structure number of the parent is either taken from the stack or
% has been set with the parent key.
@@ -1613,7 +1759,7 @@
%record this structure as kid:
%\tl_show:N \g_@@_struct_stack_current_tl
%\tl_show:N \l_@@_struct_stack_parent_tmpa_tl
- \@@_struct_kid_struct_gput_right:ee
+ \use:c { @@_struct_kid_struct_gput_ \l_@@_struct_addkid_tl :ee }
{ \l_@@_struct_stack_parent_tmpa_tl }
{ \g_@@_struct_stack_current_tl }
%\prop_show:c { g_@@_struct_\g_@@_struct_stack_current_tl _prop }
@@ -1706,16 +1852,16 @@
\@@_check_if_active_struct:T
{
\prop_if_exist:cTF
- { g_@@_struct_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop } %
+ { g_@@_struct_\property_ref:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop } %
{
\@@_check_struct_used:n {#1}
%add the label structure as kid to the current structure (can be the root)
\@@_struct_kid_struct_gput_right:ee
{ \g_@@_struct_stack_current_tl }
- { \@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{1} }
+ { \property_ref:enn{tagpdfstruct-#1}{tagstruct}{1} }
%add the current structure to the labeled one as parents
\@@_prop_gput:cne
- { g_@@_struct_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}_prop }
+ { g_@@_struct_\property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}_prop }
{ P }
{
\pdf_object_ref_indexed:nn { @@/struct } { \g_@@_struct_stack_current_tl }
@@ -1724,7 +1870,7 @@
% debug code
% \begin{macrocode}
%<debug> \prop_gput:cne
-%<debug> { g_@@_struct_debug_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}_prop }
+%<debug> { g_@@_struct_debug_\property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}_prop }
%<debug> { P }
%<debug> {
%<debug> parent~structure:~\g_@@_struct_stack_current_tl\c_space_tl=~
@@ -1736,7 +1882,7 @@
% the global tl-vars:
% \begin{macrocode}
\@@_struct_get_parentrole:eNN
- {\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}}
+ {\property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}}
\l_@@_tmpa_tl
\l_@@_tmpb_tl
\@@_check_parent_child:VVVVN
@@ -1853,6 +1999,7 @@
\pdf_object_ref_indexed:nn {@@/struct}{ #1 }
}
\cs_generate_variant:Nn \tag_struct_object_ref:n {e}
+%</package>
% \end{macrocode}
%
% \end{macro}
@@ -1864,10 +2011,18 @@
% adjusted to the key in question.
% The first argument is the number of the structure,
% the second a keyword referring to a function,
-% the third the value. Currently the only keyword is \texttt{ref} which updates
-% the Ref key (an array)
-% \begin{macrocode}
-\cs_new_protected:Npn \tag_struct_gput:nnn #1 #2 #3
+% the third the value. Currently the existing keywords are all related
+% to the \texttt{Ref} key (an array).
+% The keyword \texttt{ref} takes as value an explicit object reference to
+% a structure. The keyword \texttt{ref_label} expects as value a label name (from
+% a label set in a \cs{tagstructbegin} command). The keyword \texttt{ref_dest}
+% expects a destination name set with \cs{MakeLinkTarget}. It then will refer to
+% the structure in which this \cs{MakeLinkTarget} was used. At last
+% the keyword \texttt{ref_num} expects a structure number.
+% \begin{macrocode}
+%<base>\cs_new_protected:Npn \tag_struct_gput:nnn #1 #2 #3{}
+%<*package>
+\cs_set_protected:Npn \tag_struct_gput:nnn #1 #2 #3
{
\cs_if_exist_use:cF {@@_struct_gput_data_#2:nn}
{ %warning??
@@ -1880,22 +2035,47 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_struct_gput_data_ref:nn}
+% \begin{macro}{\@@_struct_gput_data_ref_aux:nnn}
% \begin{macrocode}
%<*package>
-\cs_new_protected:Npn \@@_struct_gput_data_ref:nn #1 #2
- % #1 receiving struct num, #2 list of object ref
+\cs_new_protected:Npn \@@_struct_gput_data_ref_aux:nnn #1 #2 #3
+ % #1 receiving struct num, #2 key word #3 value
{
- \prop_get:cnN
- { g_@@_struct_#1_prop }
- {Ref}
- \l_@@_get_tmpc_tl
- \@@_struct_prop_gput:nne
- { #1 }
- { Ref }
- { \quark_if_no_value:NF\l_@@_get_tmpc_tl { \l_@@_get_tmpc_tl\c_space_tl }#2 }
+ \prop_get:cnNTF
+ { g_@@_struct_#1_prop }
+ {Ref}
+ \l_@@_get_tmpc_tl
+ {
+ \tl_put_right:No \l_@@_get_tmpc_tl
+ {\cs:w @@_struct_Ref_#2:nN \cs_end: {#3},}
+ }
+ {
+ \tl_set:No \l_@@_get_tmpc_tl
+ {\cs:w @@_struct_Ref_#2:nN \cs_end: {#3},}
+ }
+ \@@_struct_prop_gput:nno
+ { #1 }
+ { Ref }
+ { \l_@@_get_tmpc_tl }
}
-\cs_generate_variant:Nn \@@_struct_gput_data_ref:nn {ee}
+\cs_new_protected:Npn \@@_struct_gput_data_ref:nn #1 #2
+ {
+ \@@_struct_gput_data_ref_aux:nnn {#1}{obj}{#2}
+ }
+\cs_new_protected:Npn \@@_struct_gput_data_ref_label:nn #1 #2
+ {
+ \@@_struct_gput_data_ref_aux:nnn {#1}{label}{#2}
+ }
+\cs_new_protected:Npn \@@_struct_gput_data_ref_dest:nn #1 #2
+ {
+ \@@_struct_gput_data_ref_aux:nnn {#1}{dest}{#2}
+ }
+\cs_new_protected:Npn \@@_struct_gput_data_ref_num:nn #1 #2
+ {
+ \@@_struct_gput_data_ref_aux:nnn {#1}{num}{#2}
+ }
+
+\cs_generate_variant:Nn \@@_struct_gput_data_ref:nn {ee,no}
% \end{macrocode}
% \end{macro}
% \begin{macro}
@@ -1937,7 +2117,7 @@
% \section{Attributes and attribute classes}
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage {tagpdf-attr-code} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdf-attr-code} {2024-09-16} {0.99f}
{part of tagpdf - code related to attributes and attribute classes}
%</header>
% \end{macrocode}
@@ -2012,7 +2192,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{attribute-class (struct-key)}
+% \begin{structkeydecl}{attribute-class}
% attribute-class has to store the used attribute names so that
% they can be added to the ClassMap later.
% \begin{macrocode}
@@ -2054,8 +2234,8 @@
}
}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{attribute (struct-key)}
+% \end{structkeydecl}
+% \begin{structkeydecl}{attribute}
% \begin{macrocode}
\keys_define:nn { @@ / struct }
{
@@ -2112,5 +2292,5 @@
}
%</package>
% \end{macrocode}
-% \end{macro}
+% \end{structkeydecl}
% \end{implementation}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-tree.dtx b/macros/latex/contrib/tagpdf/tagpdf-tree.dtx
index 04b9309597..879a62c41f 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-tree.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-tree.dtx
@@ -47,13 +47,13 @@
% }^^A
% }
%
-% \date{Version 0.99c, released 2024-06-20}
+% \date{Version 0.99f, released 2024-09-16}
% \maketitle
% \begin{implementation}
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-tree-code} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdf-tree-code} {2024-09-16} {0.99f}
{part of tagpdf - code related to writing trees and dictionaries to the pdf}
%</header>
% \end{macrocode}
@@ -118,7 +118,7 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}{viewer/startpage (setup-key)}
+% \begin{macro}{viewer/startstructure (setup-key)}
% We also need an option to setup the start structure. So we setup a key
% which sets the variable to the current structure. This still requires
% hyperref to do most of the job, this should perhaps be changed.
@@ -367,11 +367,11 @@
{
%mcid####1
\int_compare:nT
- {\@@_property_ref:enn{mcid-####1}{tagabspage}{-1}=##1} %mcid is on current page
+ {\property_ref:enn{mcid-####1}{tagabspage}{-1}=##1} %mcid is on current page
{% yes
\prop_put:Nee
\l_@@_tmpa_prop
- {\@@_property_ref:enn{mcid-####1}{tagmcid}{-1}}
+ {\property_ref:enn{mcid-####1}{tagmcid}{-1}}
{\prop_item:Nn \g_@@_mc_parenttree_prop {####1}}
}
}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-user.dtx b/macros/latex/contrib/tagpdf/tagpdf-user.dtx
index 916ff041d0..8dfa6893c0 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-user.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-user.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.99c, released 2024-06-20}
+% \date{Version 0.99f, released 2024-09-16}
% \maketitle
% \begin{documentation}
% \section{Setup commands}
@@ -309,7 +309,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-user} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdf-user} {2024-09-16} {0.99f}
{tagpdf - user commands}
%</header>
% \end{macrocode}
@@ -866,9 +866,9 @@
{\tagmcbegin{tag=Lbl}}
{#1}
}
- \tag_stop:n{hangfrom}
+ \tag_suspend:n{hangfrom}
\hangindent \wd\@tempboxa\noindent
- \tag_start:n{hangfrom}
+ \tag_resume:n{hangfrom}
\tagmcbegin{}\box\@tempboxa\tagmcend\tagstructend\tagmcbegin{}
}
}
@@ -1166,7 +1166,7 @@
% \tagpdfparaOff
% }
% This two command switch para mode on and off. |\tagpdfsetup| could be used
-% too but is longer. An alternative is |\tag_tool:n{para=false}|
+% too but is longer. An alternative is |\tag_tool:n{para/tagging=false}|
% \begin{macrocode}
%<base>\newcommand\tagpdfparaOn {}
%<base>\newcommand\tagpdfparaOff{}
@@ -1246,11 +1246,11 @@
\bool_gset_false:N \g_@@_in_mc_bool
}
\tag_mc_begin:n {artifact}
- \tag_stop:n{headfoot}
+ \tag_suspend:n{headfoot}
}
\cs_new_protected:Npn \@@_exclude_headfoot_end:
{
- \tag_start:n{headfoot}
+ \tag_resume:n{headfoot}
\tag_mc_end:
\bool_if:NTF \g_@@_mode_lua_bool
{
@@ -1277,12 +1277,12 @@
}
\tag_struct_begin:n{tag=Artifact,attribute-class=@@/attr/#1}
\tag_mc_begin:n {artifact=#1}
- \tag_stop:n{headfoot}
+ \tag_suspend:n{headfoot}
}
\cs_new_protected:Npn \@@_exclude_struct_headfoot_end:
{
- \tag_start:n{headfoot}
+ \tag_resume:n{headfoot}
\tag_mc_end:
\tag_struct_end:
\bool_if:NTF \g_@@_mode_lua_bool
diff --git a/macros/latex/contrib/tagpdf/tagpdf.dtx b/macros/latex/contrib/tagpdf/tagpdf.dtx
index e58570340e..d40c60bc67 100644
--- a/macros/latex/contrib/tagpdf/tagpdf.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf.dtx
@@ -21,62 +21,107 @@
% https://github.com/latex3/tagpdf
%
% for those people who are interested.
-%
+%<*driver>
+\DocumentMetadata{}
+\documentclass{l3doc}
+\usepackage{array,booktabs,caption}
+\hypersetup{pdfauthor=Ulrike Fischer,
+ pdftitle=tagpdf (main module)}
+\input{tagpdf-docelements}
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
% \fi
+% \title{^^A
+% The \pkg{tagpdf} main module
+% \\ Part of the tagpdf package
+% }
+%
+% \author{^^A
+% Ulrike Fischer\thanks
+% {^^A
+% E-mail:
+% \href{mailto:fischer@troubleshooting-tex.de}
+% {fischer@troubleshooting-tex.de}^^A
+% }^^A
+% }
+%
+% \date{Version 0.99f, released 2024-09-16}
+% \maketitle%
+%
% \begin{documentation}
-% \begin{function}{
-% \tag_stop:, \tag_start:,
-% \tagstop, \tagstart }
+% \begin{function}{\tag_suspend:n, \tag_resume:n,\tag_stop:n, \tag_start:n }%
+% \begin{syntax}
+% \cs{tag_suspend:n}\Arg{label}\\
+% \cs{tag_resume:n}\Arg{label}\\
+% \cs{tag_stop:n}\Arg{label} (\emph{deprecated})\\
+% \cs{tag_start:n}\Arg{label} (\emph{deprecated})
+% \end{syntax}
% We need commands to stop tagging in some places.
% They switches three local booleans and also stop the counting
-% of paragraphs. If they are nested an inner \cs{tag_start:} will not
-% restart tagging.
+% of paragraphs. If they are nested an inner \cs{tag_resume:n} will not
+% restart tagging.
+% \meta{label} is only used in debugging messages to allow to follow the nesting
+% and to identify which code is disabling the tagging.
+% The label is not expanded so can be a single token, e.g. |\caption|.
+% |\tag_suspend:n| and |\tag_resume:n| are the l3-layer variants of
+% |\SuspendTagging| and |\ResumeTagging| and will be provided by the kernel
+% in the next release.
% \end{function}
-%
-% \begin{function}{\tag_stop:n, \tag_start:n }%
-% \begin{syntax}
-% \cs{tag_stop:n}\Arg{label}
-% \cs{tag_start:n}\Arg{label}\\
-% \end{syntax}
-% The commands with argument allow to give a label. This is only used
-% in debugging messages to allow to follow the nesting.
+%
+% \begin{function}{
+% \tag_stop:, \tag_start:,
+% \tagstop, \tagstart }
+% \emph{deprecated} These are variants of the above commands
+% without the debuging level. They are now deprecated and it
+% is recommended to use the kernel command
+% |\SuspendTagging|, |\ResumeTagging|, |\tag_suspend:n| and |\tag_resume:n|
+% instead.
% \end{function}
%
-% \begin{function}{activate/spaces (setup-key)}
+%
+% \begin{setupkeydecl}{activate/spaces}
% |activate/spaces| activates the additional parsing needed for
% interword spaces. It replaces the deprecated key |interwordspace|.
-% \end{function}
+% \end{setupkeydecl}
%
-% \begin{function}{activate/mc (setup-key),
-% activate/tree (setup-key),
-% activate/struct (setup-key),
-% activate/all (setup-key),
+% \begin{setupkeydecl}{activate/mc,
+% activate/tree,
+% activate/struct,
+% activate/all,
% activate-mc (deprecated),
% activate-tree (deprecated),
% activate-struct (deprecated),
% activate-all (deprecated),
% }
% Keys to activate the various tagging steps.
-% \end{function}
-%\begin{function}{activate/struct-dest (setup-key),no-struct-dest (deprecated)}
+% \end{setupkeydecl}
+%\begin{setupkeydecl}{activate/struct-dest,no-struct-dest (deprecated)}
% The key allows to suppress the creation of structure destinations
-% \end{function}
+% \end{setupkeydecl}
%
-% \begin{function}{debug/log (setup-key)}
+% \begin{setupkeydecl}{debug/log}
% The |debug/log| key takes currently the values |none|, |v|, |vv|, |vvv|, |all|.
% More details are in \texttt{tagpdf-checks}.
-% \end{function}
+% \end{setupkeydecl}
%
-% \begin{function}{activate/tagunmarked (setup-key), tagunmarked (deprecated) }
+% \begin{setupkeydecl}{activate/tagunmarked, tagunmarked (deprecated) }
% This key allows to set if (in luamode) unmarked text should be
% marked up as artifact. The initial value is true.
-% \end{function}
+% \end{setupkeydecl}
%
-% \begin{function}{page/tabsorder (setup-key), tabsorder (deprecated)}
+% \begin{setupkeydecl}{activate/softhyphen}
+% This key allows to activates automatic handling of hyphens inserted
+% by hyphenation. It only is used in luamode and replaces hyphens
+% by U+00AD if the font supports this.
+% \end{setupkeydecl}
+%
+% \begin{setupkeydecl}{page/tabsorder, tabsorder (deprecated)}
% This sets the tabsorder on a page. The values are |row|, |column|, |structure| (default)
% or |none|. Currently this is set more or less globally. More finer control can be
% added if needed.
-% \end{function}
+% \end{setupkeydecl}
%
% \begin{function}{tagstruct,tagstructobj,tagabspage,tagmcabs,tagmcid}
% These are attributes used by the label/ref system.
@@ -87,8 +132,8 @@
% \begin{macrocode}
%<@@=tag>
%<*package>
-\ProvidesExplPackage {tagpdf} {2024-06-20} {0.99c}
- { A package to experiment with pdf tagging }
+\ProvidesExplPackage {tagpdf} {2024-09-16} {0.99f}
+ { LaTeX kernel code for PDF tagging }
\bool_if:nF
{
@@ -113,7 +158,7 @@
% \end{macrocode}
%<*debug>
% \begin{macrocode}
-\ProvidesExplPackage {tagpdf-debug} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdf-debug} {2024-09-16} {0.99f}
{ debug code for tagpdf }
\@ifpackageloaded{tagpdf}{}{\PackageWarning{tagpdf-debug}{tagpdf~not~loaded,~quitting}\endinput}
% \end{macrocode}
@@ -136,7 +181,7 @@
% we define a base package with dummy functions
% \begin{macrocode}
%<*base>
-\ProvidesExplPackage {tagpdf-base} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdf-base} {2024-09-16} {0.99f}
{part of tagpdf - provide base, no-op versions of the user commands }
%</base>
% \end{macrocode}
@@ -185,34 +230,31 @@
}
%</base>
% \end{macrocode}
-% \subsection{Indexed objects}
-% 2024-04-11: Temporary code! Can be removed after the next expl3 release!
+% \subsection{Patches related to Ref improvement}
+% 2024-09-09: Temporary code. Can be removed when the latex-lab-footnote
+% and latex-lab-toc code have been adapted to the better Ref handling.
% \begin{macrocode}
-\cs_if_free:NT \pdf_object_new_indexed:nn
- {
- \cs_generate_variant:Nn \pdf_object_new:n {e}
- \cs_generate_variant:Nn \pdf_object_write:nnn {enn}
- \cs_new_protected:Npn \pdf_object_new_indexed:nn #1 #2
- {
- \pdf_object_new:e {#1/\int_eval:n{#2}}
- }
- \cs_new_protected:Npn \pdf_object_write_indexed:nnnn #1 #2 #3 #4
- {
- \pdf_object_write:enn {#1/\int_eval:n{#2}}{#3}{#4}
- }
- \cs_generate_variant:Nn \pdf_object_write_indexed:nnnn {nnne}
- \cs_new:Npn\pdf_object_ref_indexed:nn #1 #2
- {
- \pdf_object_ref:e {#1/\int_eval:n{#2}}
- }
- \cs_new:Npn \__kernel_pdf_object_id_indexed:nn #1 #2
- {
- \int_use:c
- { c__pdf_object_ #1/\int_eval:n{#2} _int }
- }
- }
-
+%<*package>
+\AddToHook{package/latex-lab-testphase-new-or-2/after}
+ {
+ \cs_set_protected:Npn \__fnote_gput_ref:nn #1 #2 %#1 the structure number receiving the ref #2
+ {
+ \tag_struct_gput:nnn {#1}{ref_num}{#2}
+ }
+ }
+\AddToHook{package/latex-lab-testphase-toc/after}
+ {
+ \cs_set_protected:Npn \g_@@_struct_ref_by_dest:
+ {
+ \prop_map_inline:Nn\g_@@_struct_ref_by_dest_prop
+ {
+ \tag_struct_gput:nnn {##1}{ref_dest}{##2}
+ }
+ }
+ }
+%</package>
% \end{macrocode}
+%
% \subsection{a LastPage label}
% See also issue \#2 in Accessible-xref
% \begin{macro}{\@@_lastpagelabel:}
@@ -245,6 +287,7 @@
% {
% \l_@@_tmpa_tl,
% \l_@@_tmpb_tl,
+% \l_@@_Ref_tmpa_tl,
% \l_@@_get_tmpc_tl,
% \l_@@_get_parent_tmpa_tl
% \l_@@_get_parent_tmpb_tl
@@ -261,6 +304,7 @@
% \begin{macrocode}
\tl_new:N \l_@@_tmpa_tl
\tl_new:N \l_@@_tmpb_tl
+\tl_new:N \l_@@_Ref_tmpa_tl
\tl_new:N \l_@@_get_tmpc_tl
\tl_new:N \l_@@_get_parent_tmpa_tl
\tl_new:N \l_@@_get_parent_tmpb_tl
@@ -354,6 +398,13 @@
% \end{macrocode}
% \end{variable}
%
+% \begin{variable}{\g_@@_softhyphen_bool}
+% This boolean controls if the code should try to automatically
+% handle hyphens from hyphenation. It is currently only used in luamode.
+% \begin{macrocode}
+\bool_new:N \g_@@_softhyphen_bool
+% \end{macrocode}
+% \end{variable}
% \section{Variants of l3 commands}
% \begin{macrocode}
\prg_generate_conditional_variant:Nnn \pdf_object_if_exist:n {e}{T,F,TF}
@@ -369,24 +420,10 @@
% \end{macrocode}
%
% \section{Label and Reference commands}
-% To ease transition to properties we setup internal definition. They can be replaced
-% by the property definitions once that is released.
-% %** do it!
-% \begin{macro}{\@@_property_new:nnnn,\@@_property_gset:nnnn,\@@_property_ref:nnn}
-% At first a command to define new properties
-% \begin{macrocode}
- \cs_new_eq:NN \@@_property_new:nnnn \property_new:nnnn
-% \end{macrocode}
-% For the non-shipout code we need also the option to reset property
-% \begin{macrocode}
- \cs_new_eq:NN \@@_property_gset:nnnn \property_gset:nnnn
-% \end{macrocode}
-% The command to reference while giving a local default.
-% \begin{macrocode}
- \cs_new_eq:NN \@@_property_ref:nnn \property_ref:nnn
- \cs_new_eq:NN \@@_property_ref:nn \property_ref:nn
-% \end{macrocode}
-% The command to record
+% The code uses mostly the kernel properties but need a few local variants.
+% \begin{macro}{\@@_property_record:nn}
+% The command to record a property while preserving the spaces similar to the standard
+% \cs{label}.
% \begin{macrocode}
\cs_new_protected:Npn \@@_property_record:nn #1#2
{
@@ -398,8 +435,8 @@
% \end{macrocode}
% And a few variants
% \begin{macrocode}
-\cs_generate_variant:Nn \@@_property_ref:nnn {enn}
-\cs_generate_variant:Nn \@@_property_ref:nn {en}
+\cs_generate_variant:Nn \property_ref:nnn {enn}
+\cs_generate_variant:Nn \property_ref:nn {en}
\cs_generate_variant:Nn \@@_property_record:nn {en,eV}
% \end{macrocode}
% \end{macro}
@@ -410,7 +447,7 @@
% \begin{macrocode}
\cs_new:Npn \@@_property_ref_lastpage:nn #1 #2
{
- \@@_property_ref:nnn {@tag@LastPage}{#1}{#2}
+ \property_ref:nnn {@tag@LastPage}{#1}{#2}
}
% \end{macrocode}
%\end{macro}
@@ -427,21 +464,21 @@
% With mc-chunks we store the absolute page number |tagabspage|,
% the absolute id |tagmcabc|, and the id on the page |tagmcid|.
% \begin{macrocode}
-\@@_property_new:nnnn
+\property_new:nnnn
{ tagstruct } { now }
- {0} { \int_use:N \c@g_@@_struct_abs_int }
-\@@_property_new:nnnn { tagstructobj } { now } {}
+ {1} { \int_use:N \c@g_@@_struct_abs_int }
+\property_new:nnnn { tagstructobj } { now } {}
{
\pdf_object_ref_indexed:nn { @@/struct } { \c@g_@@_struct_abs_int }
}
-\@@_property_new:nnnn
+\property_new:nnnn
{ tagabspage } { shipout }
{0} { \int_use:N \g_shipout_readonly_int }
-\@@_property_new:nnnn { tagmcabs } { now }
+\property_new:nnnn { tagmcabs } { now }
{0} { \int_use:N \c@g_@@_MCID_abs_int }
\flag_new:n { @@/mcid }
-\@@_property_new:nnnn {tagmcid } { shipout }
+\property_new:nnnn {tagmcid } { shipout }
{0} { \flag_height:n { @@/mcid } }
% \end{macrocode}
@@ -469,6 +506,7 @@
\cs_set_eq:NN \@@_seq_new:N \seq_new:N
\cs_set_eq:NN \@@_prop_gput:Nnn \prop_gput:Nnn
\cs_set_eq:NN \@@_seq_gput_right:Nn \seq_gput_right:Nn
+\cs_set_eq:NN \@@_seq_gput_left:Nn \seq_gput_left:Nn
\cs_set_eq:NN \@@_seq_item:cn \seq_item:cn
\cs_set_eq:NN \@@_prop_item:cn \prop_item:cn
\cs_set_eq:NN \@@_seq_show:N \seq_show:N
@@ -476,6 +514,7 @@
% cnx temporary needed for latex-lab-graphic code
\cs_generate_variant:Nn \@@_prop_gput:Nnn { Nen , Nee, Nne , cnn, cen, cne, cno, cnx}
\cs_generate_variant:Nn \@@_seq_gput_right:Nn { Ne , No, cn, ce }
+\cs_generate_variant:Nn \@@_seq_gput_left:Nn { ce }
\cs_generate_variant:Nn \@@_prop_new:N { c }
\cs_generate_variant:Nn \@@_seq_new:N { c }
\cs_generate_variant:Nn \@@_seq_show:N { c }
@@ -487,6 +526,7 @@
% \section{General tagging commands}
%
% \begin{macro}{
+% \tag_suspend:n,\tag_resume:n,
% \tag_stop:,\tag_start:,
% \tag_stop:n,\tag_start:n}
% We need commands to stop tagging in some places.
@@ -495,7 +535,8 @@
% counter. Tagging only is only restarted at the outer level,
% if the current level is 1.
% The commands with argument allow to give a label. This is only used
-% in debugging messages to allow to follow the nesting.
+% in debugging messages to allow to follow the nesting. The label is
+% not expand so can e.g. be a single command token.
%
% \begin{variable}{\l_@@_tag_stop_int}
% When stop/start pairs are nested we do not want the inner
@@ -512,7 +553,7 @@
% \begin{macrocode}
\cs_set_protected:Npn \tag_stop:
{
-%<debug> \msg_note:nne {tag / debug }{tag-stop}{ \int_use:N \l_@@_tag_stop_int }
+%<debug> \msg_note:nne {tag / debug }{tag-suspend}{ \int_use:N \l_@@_tag_stop_int }
\int_incr:N \l_@@_tag_stop_int
\bool_set_false:N \l_@@_active_struct_bool
\bool_set_false:N \l_@@_active_mc_bool
@@ -529,22 +570,24 @@
\bool_set_true:N \l_@@_active_socket_bool
\@@_start_para_ints:
}
-%<debug> \msg_note:nne {tag / debug }{tag-start}{ \int_use:N \l_@@_tag_stop_int }
+%<debug> \msg_note:nne {tag / debug }{tag-resume}{ \int_use:N \l_@@_tag_stop_int }
}
\cs_set_eq:NN\tagstop\tag_stop:
\cs_set_eq:NN\tagstart\tag_start:
% \end{macrocode}
% \begin{macrocode}
-\cs_set_protected:Npn \tag_stop:n #1
+\cs_set_protected:Npn \tag_suspend:n #1
{
-%<debug> \msg_note:nnee {tag / debug }{tag-stop}{ \int_use:N \l_@@_tag_stop_int }{#1}
+%<debug> \msg_note:nnee {tag / debug }{tag-suspend}
+%<debug> { \int_use:N \l_@@_tag_stop_int }{\exp_not:n{#1}}
\int_incr:N \l_@@_tag_stop_int
\bool_set_false:N \l_@@_active_struct_bool
\bool_set_false:N \l_@@_active_mc_bool
\bool_set_false:N \l_@@_active_socket_bool
\@@_stop_para_ints:
}
-\cs_set_protected:Npn \tag_start:n #1
+\cs_set_eq:NN \tag_stop:n \tag_suspend:n
+\cs_set_protected:Npn \tag_resume:n #1
{
\int_if_zero:nF { \l_@@_tag_stop_int } { \int_decr:N \l_@@_tag_stop_int }
\int_if_zero:nT { \l_@@_tag_stop_int }
@@ -553,9 +596,11 @@
\bool_set_true:N \l_@@_active_mc_bool
\bool_set_true:N \l_@@_active_socket_bool
\@@_start_para_ints:
- }
-%<debug> \msg_note:nnee {tag / debug }{tag-start}{ \int_use:N \l_@@_tag_stop_int }{#1}
+ }
+%<debug> \msg_note:nnee {tag / debug }{tag-resume}
+%<debug> { \int_use:N \l_@@_tag_stop_int }{\exp_not:n{#1}}
}
+\cs_set_eq:NN \tag_start:n \tag_resume:n
%</package|debug>
%<*base>
\cs_new_protected:Npn \tag_stop:{}
@@ -564,6 +609,11 @@
\cs_new_protected:Npn \tagstart{}
\cs_new_protected:Npn \tag_stop:n #1 {}
\cs_new_protected:Npn \tag_start:n #1 {}
+% \end{macrocode}
+% Until the commands are provided by the kernel we provide them here too
+% \begin{macrocode}
+\cs_set_eq:NN \tag_suspend:n \tag_stop:n
+\cs_set_eq:NN \tag_resume:n \tag_start:n
%</base>
% \end{macrocode}
% \end{macro}
@@ -573,13 +623,13 @@
%
% TODO: the log-levels must be sorted
%
-% \begin{macro}
+% \begin{setupkeydecl}
% {
-% activate/mc (setup-key),
-% activate/tree (setup-key),
-% activate/struct (setup-key),
-% activate/all (setup-key),
-% activate/struct-dest (setup-key),
+% activate/mc,
+% activate/tree,
+% activate/struct,
+% activate/all,
+% activate/struct-dest,
% }
% Keys to (globally) activate tagging.
% |activate/spaces| activates the additional parsing needed for
@@ -607,14 +657,14 @@
activate-all .default:n = true,
no-struct-dest .bool_gset_inverse:N = \g_@@_active_struct_dest_bool,
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{debug/show (setup-key)}
+% \end{setupkeydecl}
+% \begin{setupkeydecl}{debug/show}
% Subkeys/values are defined in various other places.
% \begin{macrocode}
debug/show .choice:,
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{debug/log (setup-key), debug/uncompress (setup-key), log (deprecated), uncompress (deprecated)}
+% \end{setupkeydecl}
+% \begin{setupkeydecl}{debug/log, debug/uncompress, log (deprecated), uncompress (deprecated)}
% The |log| takes currently the values |none|, |v|, |vv|, |vvv|, |all|.
% The description of the log levels is in tagpdf-checks.
% \begin{macrocode}
@@ -635,8 +685,8 @@
log .meta:n = {debug/log={#1}},
uncompress .code:n = { \pdf_uncompress: },
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{activate/tagunmarked (setup-key),tagunmarked (deprecated)}
+% \end{setupkeydecl}
+% \begin{setupkeydecl}{activate/tagunmarked,tagunmarked (deprecated)}
% This key allows to set if (in luamode) unmarked text should be
% marked up as artifact. The initial value is true.
% \begin{macrocode}
@@ -647,8 +697,15 @@
% \begin{macrocode}
tagunmarked .bool_gset:N = \g_@@_tagunmarked_bool,
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{page/tabsorder (setup-key),tabsorder (deprecated)}
+% \end{setupkeydecl}
+% \begin{setupkeydecl}{activate/softhyphen}
+% This key activates (in luamode) the handling of soft hyphens.
+% \begin{macrocode}
+ activate/softhyphen .bool_gset:N = \g_@@_softhyphen_bool,
+ activate/softhyphen .initial:n = true,
+% \end{macrocode}
+% \end{setupkeydecl}
+% \begin{setupkeydecl}{page/tabsorder,tabsorder (deprecated)}
% This sets the tabsorder on a page. The values are |row|, |column|, |structure| (default)
% or |none|. Currently this is set more or less globally. More finer control can be
% added if needed.
@@ -669,7 +726,7 @@
tabsorder .meta:n = {page/tabsorder={#1}},
}
% \end{macrocode}
-% \end{macro}
+% \end{setupkeydecl}
% \section{loading of engine/more dependent code}
% \begin{macrocode}
\sys_if_engine_luatex:T
diff --git a/macros/latex/contrib/tagpdf/tagpdf.pdf b/macros/latex/contrib/tagpdf/tagpdf.pdf
index 04d46c2fbf..a6443d59a4 100644
--- a/macros/latex/contrib/tagpdf/tagpdf.pdf
+++ b/macros/latex/contrib/tagpdf/tagpdf.pdf
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/tagpdf.tex b/macros/latex/contrib/tagpdf/tagpdf.tex
index ac1c33fa4a..9b0beb8101 100644
--- a/macros/latex/contrib/tagpdf/tagpdf.tex
+++ b/macros/latex/contrib/tagpdf/tagpdf.tex
@@ -16,8 +16,8 @@
}
\DebugBlocksOff
\makeatletter
-\def\UlrikeFischer@package@version{0.99c}
-\def\UlrikeFischer@package@date{2024-06-20}
+\def\UlrikeFischer@package@version{0.99f}
+\def\UlrikeFischer@package@date{2024-09-16}
\makeatother
\documentclass[bibliography=totoc,a4paper]{article}
@@ -99,7 +99,7 @@ in the \pkg{latex-lab} bundle for the Tagged PDF project (i.e., loaded by that c
The package is developed and improved in parallel with the code in the \pkg{latex-lab}
bundle (part of the core \LaTeX{} distribution), the \pkg{pdfmanagement-testphase}
-package (the \LaTeX{} PDF management bundle) and the L3 programming layer (part of of the \LaTeX{} format).
+package (the \LaTeX{} PDF management bundle) and the L3 programming layer (part of the \LaTeX{} format).
That means you must ensure that all these components are up-to-date and in
sync which each other.
@@ -338,13 +338,15 @@ improvements and new features in the \LaTeX\ kernel, the latex-lab bundle and
the \PDF\ management code and is now much better. Only a few
structures---mostly some from currently unsupported packages--- still need
manual tagging. But sadly the output of the validators don't quite reflect
-the improvements. The documentation uses now \PDF~2.0 and PAC~2024 can't handle
-this, it claims that the file is damaged. The Adobe validator has a bug and
+the improvements. The documentation uses now \PDF~2.0 and while the newest
+PAC~2024 can at least open the file it can not validate properly the file. For example
+it complains about the tabular header cells as it doesn't follow attribute classes.
+The Adobe validator has a bug and
doesn't like the (valid) use of the \texttt{Lbl} tag for the section numbers
(see figure~\ref{fig:adobe}).
-But even if the documentation passed the tests of the validators: as
+But even if the documentation would pass all the tests of the validators: as
mentioned above passing a formal test doesn't mean that the content is really
good and usable. The user commands used for the tagging and also some of the
patches used are still rather crude. So there is lot space for improvement.
@@ -354,8 +356,9 @@ Be aware that to create the tagged version a current lualatex-dev and a
current version of the pdfmanagment-testphase package is needed.
\end{tcolorbox}
-\includegraphics[alt=PAC 3 report]{pac3}
+\includegraphics[alt=PAC 2024 complains about PDF version]{pac2024-version}
+\includegraphics[alt=PAC 2024 complains about table header cells]{pac2024-report}
\begin{figure}
@@ -504,6 +507,10 @@ The key-val list understands at least the following keys. More keys are defined
least \PrintKeyName{activate/mc} has been used.
The old name of the key |interwordspace| is still supported but deprecated.
+\item[\PrintKeyName{activate/softhyphen}] Boolean. luamode only.
+ The key activates/deactivates the replacing of hard hyphens from hyphenation
+ by soft hyphens. By default this is activated.
+
\item[\PrintKeyName{role/new-tag}] Allows to define new tag names, see
section \ref{sec:new-tag} for a description.
@@ -721,11 +728,8 @@ To tag a \PDF{} three tasks must be carried out:
\minisec{Page stream with marked content}
-\tagpdfparaOff
-
-\tagstructbegin{tag=Figure,alt={Illustration of page stream with marked content},attribute=bbox}%
-\tagmcbegin{tag=Figure}%
-\begin{tikzpicture}[baseline=(a.north),node distance=2pt,remember picture]
+\begin{tikzpicture}[baseline=(a.north),node distance=2pt,remember picture,
+alt={Illustration of page stream with marked content}]
\node(start){\ldots~\ldots~\ldots};
\node[draw,base right = of start](a) {mc-chunk 1};
\node[draw,base right = of a](b) {mc-chunk 2};
@@ -733,20 +737,13 @@ To tag a \PDF{} three tasks must be carried out:
\node[draw,base right = of c](d) {mc-chunk 3};
\node[base right = of d] {\ldots~\ldots};
\end{tikzpicture}
-\tagmcend\tagstructend
-
-\tagpdfparaOn
\minisec{Structure}
-\tagpdfparaOff
\newlength\ydistance\setlength\ydistance{-0.8cm}
-\tagstructbegin{tag=Figure,alt={Illustration of structure},attribute=bbox}%
-\tagmcbegin{tag=Figure}%
-\begin{tikzpicture}[remember picture,baseline=(root.north)]
-
+\begin{tikzpicture}[remember picture,baseline=(root.north),alt={Illustration of structure}]
\node[draw,anchor=base west] (root) at (0,0) {Sect (start section)};
\node[draw,anchor=base west] at (0.3,\ydistance) {H (header section)};
\node[draw,anchor=base west](aref) at (0.6,2\ydistance){mc-chunk 1};
@@ -758,17 +755,12 @@ To tag a \PDF{} three tasks must be carried out:
\node[draw,anchor=base west] at (0.3,8\ydistance){/P (end paragraph)};
\node[draw,anchor=base west] at (0,9\ydistance){/Sect (end section)};
\end{tikzpicture}
-
\begin{tikzpicture}[remember picture, overlay]
\draw[->,red](aref)-|(a);
\draw[->,red](bref)-|(b);
\draw[->,red](cref)-|(c);
\draw[->,red](dref)-|(d);
-
\end{tikzpicture}
-\tagmcend\tagstructend
-
-\tagpdfparaOn
\end{tcolorbox}
@@ -1039,7 +1031,7 @@ The key-val list understands the following keys:
marked but not stored in the kid-key of the current structure.
\item[\PrintKeyName{label}] This key sets a label by which you can call
- the marked content later in another structure (if it has been stashed
+ the marked content \emph{later} in another structure (if it has been stashed
with the previous key). Internally the label name will start with
\texttt{tagpdf-}.
@@ -1108,8 +1100,8 @@ the command, as the effect of the begin command ends with a new
\begin{docCommands}
{
- {doc name=tagmcuse},
- {doc name=tag_mc_use:n}
+ {doc name=tagmcuse,doc parameter=\marg{label}},
+ {doc name=tag_mc_use:n,doc parameter=\marg{label}}
}
\end{docCommands}
@@ -1183,10 +1175,10 @@ This (expandable) command returns the values of some variables. Currently, the w
\item \verb+struct_counter+: This returns a number and works also if
only \pkg{tagpdf-base} has been loaded. It gives back the state of
- the absolute structure counter and so number of the last structure
+ the absolute structure counter and so the number of the last structure
that has been created. This can be used to detect if in a piece of
code there are structure commands. Be aware that this is a \LaTeX{}
- counter and so reset in some places.
+ counter and so is reset in some places.
\item \verb+mc_counter+: This returns a number and works also if only
\pkg{tagpdf-base} has been loaded. It gives back the state of the
@@ -1283,13 +1275,8 @@ add the needed code.
\begin{figure}
-\tagpdfparaOff
-\tagstructbegin{tag=Figure,alt={Illustration of link annotation structure},attribute=bbox}\tagmcbegin{tag=Figure}
-\tagstop
\input{link-figure-input}
-\tagstart
-\tagmcend\tagstructend
\caption{Structure needed for a link annotation}\label{fig:linkannot}
@@ -1712,22 +1699,27 @@ The key-val list understands the following keys:
content and structures.
\item[\PrintKeyName{label}] This key sets a label by which one can
- refer to the structure. It is e.g. used by
- \cs{tag\_struct\_use:n} (where a real label is actually not needed
- as you can only use structures already defined), and by the |ref|
- key (which can refer to future structures). Internally the label
- name will start with \texttt{tagpdfstruct-} and it stores the two
+ refer to the structure. Currently the key writes a property whose
+ name starts with \texttt{tagpdfstruct-} to the aux-file with the two
attributes \texttt{tagstruct} (the structure number) and
- \texttt{tagstructobj} (the object reference).
+ \texttt{tagstructobj} (the object reference) but also stores the
+ name and the structure number into a prop for use in the current compilation.
+ The label is e.g. used by \cs{tag\_struct\_use:n} and by the |ref|
+ key (which can refer to future structures).
\item[\PrintKeyName{parent}] With the parent key one can choose another
parent. The value is a structure number which must refer to an
already existing, previously created structure. Such a structure
number can have been stored previously with \cs{tag\_get:n}, but one
can also use a label on the parent structure and then use
- \cs{ref\_value:nn}\verb+{tagpdfstruct-label}{tagstruct}+ to retrieve
+ \cs{property\_ref:nn}\verb+{tagpdfstruct-label}{tagstruct}+ to retrieve
it.
+ \item[\PrintKeyName{firstkid}] If this key is used the structure is
+ added at the left of the kids of the parent structure (if the structure is not stashed). This means that it will be the first kid of the structure (unless some
+ later structure uses the key too). This can be needed e.g. for a caption as
+ the PDF reference requires it to be the first or last kid of its structure.
+
\item[\PrintKeyName{alt}] This key inserts an \texttt{/Alt} value in the
dictionary of structure object, see section~\ref{sec:alt}. The value
is handled as verbatim string and hex encoded. The value will be
@@ -1865,7 +1857,9 @@ The key-val list understands the following keys:
structure. The value should be a comma separated list of
structure labels set with the |label| key.
e.g. |ref={label1,label2}|. It can be used more than once in the
- key/value argument and combines the references.
+ key/value argument and combines the references. See below
+ in section~\ref{sec:Refkey} for an extended discussion about the |/Ref|
+ array.
\item[\PrintKeyName{E}] This key sets the |/E| key, the expanded
form of an abbreviation or an acronym (I couldn't think of a
@@ -1890,6 +1884,25 @@ These commands insert a structure previously stashed away as kid into the
currently active structure. A structure should be used only once, if the
structure already has a parent you will get a warning.
+\subsubsection{Updating the \texttt{Ref} key in structures}\label{sec:Refkey}
+
+Structures that cross reference other structures, e.g. citation commands, table of
+content entries, footnote require often a \texttt{Ref} key. \texttt{Ref}
+can be added with the |ref| key of \cs{tagstructbegin} described above
+but as it is a task that often has to be done automatically in code
+there exist also a command that allows to extend the \texttt{Ref} key (and perhaps in future also other keys) later.
+This command allows to add the value, the target structure of the \texttt{Ref} key,
+with four methods: directly as object reference, through a label name set with the |label| key, through a destination name if a \cs{MakeLinkTarget} has been used in
+the target structure---this also works if hyperref has not been loaded---and through
+the structure number, which has been stored e.g. in a label.
+
+\begin{docCommands}
+ {
+ {doc name=tag_struct_gput:nnn,doc parameter=\marg{structurenumber}\marg{keyword}\marg{value}},
+ }\end{docCommands}
+
+The allowed \meta{keywords} are \texttt{ref}, \texttt{ref\_label} \texttt{ref\_dest}
+and \texttt{ref\_num}.
\subsubsection{Root structure}
@@ -2051,36 +2064,49 @@ or the output routine is called.
\begin{docCommands}
{
- {doc name=tag_stop:},
- {doc name=tag_start:},
- {doc name=tagstop},
- {doc name=tagstart},
- {doc name=tag_stop:n,doc parameter=\marg{label}},
- {doc name=tag_start:n,doc parameter=\marg{label}}
+ {doc name=tag_suspend:n,doc parameter=\marg{label}},
+ {doc name=tag_resume:n,doc parameter=\marg{label}}
}
\end{docCommands}
-This commands stop and start tagging in the current group by switching
+These commands suspend and resume tagging in the current group by switching
\emph{local} booleans. They also stop the increasing of the counters which
keep track of paragraphs if the correct wrapper commands are used.
Restarting tagging is normally only needed if groups can't be used and then
-must be done with care: |\tagstart| should normally only restart tagging if
+must be done with care: |\tag_resume:n| should normally only restart tagging if
the corresponding stop command actually stopped tagging. This is implement
through a local counter which keeps track of the level.
-The \meta{label} can be used to identify the command in debugging message.
+The \meta{label} can be used to identify the command in debugging message. The label is not expanded and so can for example be a single command token.
+
+The commands are the L3-layer versions of |\SuspendTagging| and |\ResumeTagging|
+and will be available in the kernel with the 2024 november release.
\begin{taglstlisting}
-\tag_stop:n{outer}
+\tag_suspend:n{\outercommand}
...
- \tag_stop:n{inner}
+ \tag_suspend:n{\innercommand}
...
- \tag_start:n{inner}
+ \tag_resume:n{\innercommand}
...
-\tag_start:n{outer}
+\tag_resume:n{\outercommand}
\end{taglstlisting}
+\begin{docCommands}
+ {
+ {doc name=tag_stop:},
+ {doc name=tag_start:},
+ {doc name=tagstop},
+ {doc name=tagstart},
+ {doc name=tag_stop:n,doc parameter=\marg{label}},
+ {doc name=tag_start:n,doc parameter=\marg{label}}
+ }
+\end{docCommands}
+
+These commands are now deprecated in favor or |\tag_suspend:n| and |\tag_resume:n|
+but are still provided for some time.
+
\subsection{Lazy and automatic tagging}\label{sec:lazy}
@@ -2661,7 +2687,8 @@ already mentioned there are more requirements:
is normally not a problem. With pdflatex it could need additional
\verb+\pdfglyphtounicode+ commands.
- \item Hard and soft hyphen must be distinct.
+ \item Hard and soft hyphen must be distinct. In luamode this is now handled through
+ the \texttt{activate/softhyphen} key. For pdftex no solution is known.
\item Spaces between words should be space glyphs and not only a
horizontal movement. See section~\ref{sec:spacechars}.
@@ -3041,7 +3068,11 @@ cases building the structure should now need only two or three
compilations. The new code requires a current pdfmanagement-testphase and
is then used automatically if the new engines are detected.
-\subsection{}
+\subsection{Changes in version 0.99f}
+
+Deprecated |\tag_start:|, |\tag_stop:|, |\tag_stop:n| and
+|\tag_start:n| in favor of |\tag_suspend:n| and |\tag_resume:n|.
+
\printbibliography[heading=bibintoc]
@@ -3061,10 +3092,7 @@ examples and remarks easier to understand.
\item[postfix notation] \PDF{} uses in various places postfix
notation. This means that the operator is behind its arguments:
-\tagpdfparaOff
-
-\tagstructbegin{tag=Figure,alt={Illustration of postfix notation},attribute=bbox}\tagmcbegin{tag=Figure}
-\begin{tikzpicture}[baseline=(c.base)]
+\begin{tikzpicture}[baseline=(c.base),alt={Illustration of postfix notation}]
\node[arg](a1) {18};
\node[arg,right=of a1.east](a2) {0};
\node[operator,right= of a2.east](c) {obj};
@@ -3072,7 +3100,7 @@ examples and remarks easier to understand.
\draw[->] (c.south) --++(0,-2mm) -| (a2);
\end{tikzpicture}
-\begin{tikzpicture}[baseline=(c.base)]
+\begin{tikzpicture}[baseline=(c.base),alt={Illustration of postfix notation}]
\node[arg](a1) {18};
\node[arg,right=of a1.east](a2) {0};
\node[operator,right= of a2.east](c) {R};
@@ -3081,7 +3109,7 @@ examples and remarks easier to understand.
\end{tikzpicture} (a reference (operator R) to an object
-\begin{tikzpicture}[baseline=(c.base)]
+\begin{tikzpicture}[baseline=(c.base),alt={Illustration of postfix notation}]
\node[arg](a1) {1};
\node[arg,right = of a1.east](a2) {0};
\node[arg,right = of a2.east](a3) {0};
@@ -3097,19 +3125,15 @@ examples and remarks easier to understand.
\draw[->] (c.south) --++(0,-2mm) -|(a1);
\end{tikzpicture}
-\begin{tikzpicture}[baseline=(c.base)]
+\begin{tikzpicture}[baseline=(c.base),alt={Illustration of postfix notation}]
\node[arg](a1) {/P};
\node[arg,right = of a1.east](a2) {<</MCID 0>>};
\node[operator,right = of a2.east](c) {BDC};
\draw[->] (c.south) --++(0,-2mm) -| (a1);
\draw[->] (c.south) --++(0,-2mm) -| (a2);
\end{tikzpicture}
-\tagmcend\tagstructend
-
-\tagpdfparaOn
-
\item[Names] \PDF{} knows a sort of variable called a
\enquote{name}. Names start with a slash and may include any regular
characters, but not delimiter or white-space characters. Uppercase
@@ -3152,19 +3176,13 @@ examples and remarks easier to understand.
\mbox{\texttt{[0 15 0 R (hello) <</Type /X>> [1 2 3]]}}
-\tagpdfparaOff
-
- \tagstructbegin{tag=Figure,alt={Illustration of array},attribute=bbox}\tagmcbegin{tag=Figure}
- \begin{tikzpicture}[baseline=(c.base)]
+ \begin{tikzpicture}[baseline=(c.base),alt={Illustration of array}]
\node[arg](a1) {0};
\node[arg,right = of a1.east](a2) {15 0 R};
\node[arg,right = of a2.east](a3) {(hello)};
\node[arg,right = of a3.east](a4) {<</Type /X>>};
\node[arg,right = of a4.east](a5) {[1 2 3]};
\end{tikzpicture}
-\tagmcend\tagstructend
-
-\tagpdfparaOn
\item[Dictionaries] Dictionaries are enclosed by double angle
diff --git a/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty b/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
index 936f8adacd..81ce196e8e 100644
--- a/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
+++ b/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
@@ -1,5 +1,5 @@
%\RequirePackage[enable-debug]{expl3}[2018/06/14]
-\ProvidesExplPackage {tagpdfdocu-patches} {2024-06-20} {0.99c}
+\ProvidesExplPackage {tagpdfdocu-patches} {2024-09-16} {0.99f}
{patches/commands for the tagpdf documentation}
\RequirePackage{etoolbox,xpatch}
@@ -82,10 +82,6 @@
% }
\ExplSyntaxOff
-% ======== tikzpicture ==========
-% TODO this needs some investigation: it messes up the stack if one add paraOff
-
-\AddToHook{env/tikzpicture/begin}{}
%======== tcolorbox ========
% We switch of paratagging at the begin and reenable it locally in before upper.
@@ -138,22 +134,6 @@
% ======= footnote ========
% done in testphase code
-% ======= bibliography ========
-% biblatex. Creates some empty mc-chunks.
-% no internal patches, but redefining begentry/finentry is not safe.
-% better hook is needed.
-
-
-\def\blx@endbibliography{%
- \csuse{blx@endenv@\blx@theenv}%
- \blx@noitem
- \blx@locallabelwidth@finish
- \endgroup
- \blx@bibnote\blx@thepostnote
-% \endgroup
- \expandafter\endgroup\if@endpe\@doendpe\fi
-}
-
% ====== hyperref ========
% this should probably go into tagpdf, but it is related to
% problem of pdf strings and context ....
@@ -167,16 +147,147 @@
\let\tagstructend\relax
}}{}
-%====== picture =======
+%====== tikz picture =======
+% first draft to tag. The main problem is to handle paragraphs. One
+\ExplSyntaxOn
+\cs_new_protected:Npn\__tag_tikz_savepos:n #1
+ {
+ \tex_savepos:D
+ \tikz@resetexpandcount%
+ \tikz@scan@one@point\pgfutil@firstofone(current~bounding~box.north~east)\relax
+ \pgf@pos@transform{\pgf@x}{\pgf@y}%
+ \property_record:nn{#1}{xpos,ypos,abspage}
+ \property_record:nn{#1-tr}{pgfx,pgfy}
+ \tikz@scan@one@point\pgfutil@firstofone(current~bounding~box.south~west)\relax
+ \pgf@pos@transform{\pgf@x}{\pgf@y}%
+ \property_record:nn{#1-bl}{pgfx,pgfy}
+ \tex_savepos:D
+ }
+\cs_generate_variant:Nn \__tag_tikz_savepos:n {e}
+
+\NewProperty{pgfx}{now}{0}
+ {
+ \dim_compare:nNnTF {\dim_abs:n {\pgf@x}} > {15999pt}
+ { 0 }
+ { \dim_to_decimal_in_sp:n{\pgf@x} }
+ }
+\NewProperty{pgfy}{now}{0}
+ {
+ \dim_compare:nNnTF {\dim_abs:n {\pgf@y}} > {15999pt}
+ { 0 }
+ { \dim_to_decimal_in_sp:n{\pgf@y} }
+ }
+
+\cs_new_protected:Npn \__tag_tikz_getbbox:
+ {
+ \int_gincr:N\g__tag_graphic_int
+ \tl_set:Ne\l__tag_graphic_currentlabel_tl {__tag_graphic_\int_use:N \g__tag_graphic_int}
+ \tl_gset:Ne\g__tag_graphic_lx_tl
+ {
+ \dim_to_decimal_in_bp:n
+ { \property_ref:een {\l__tag_graphic_currentlabel_tl}{xpos}{0}sp
+ + \property_ref:een {\l__tag_graphic_currentlabel_tl-bl}{pgfx}{0}sp
+ }
+ }
+ \tl_gset:Ne\g__tag_graphic_ly_tl
+ {
+ \dim_to_decimal_in_bp:n
+ { \property_ref:een {\l__tag_graphic_currentlabel_tl}{ypos}{0}sp
+ + \property_ref:een {\l__tag_graphic_currentlabel_tl-bl}{pgfy}{0}sp
+ }
+ }
+ \tl_gset:Ne\g__tag_graphic_ux_tl
+ {
+ \dim_to_decimal_in_bp:n
+ { \property_ref:een {\l__tag_graphic_currentlabel_tl}{xpos}{0}sp
+ + \property_ref:een {\l__tag_graphic_currentlabel_tl-tr}{pgfx}{0}sp
+ }
+ }
+ \tl_gset:Ne\g__tag_graphic_uy_tl
+ {
+ \dim_to_decimal_in_bp:n
+ { \property_ref:een {\l__tag_graphic_currentlabel_tl}{ypos}{0}sp
+ + \property_ref:een {\l__tag_graphic_currentlabel_tl-tr}{pgfy}{0}sp
+ }
+ }
+ }
-% PAC3 complained that the BBox is missing, so we are cheating for now
-% and add a fix size.
-\tagpdfsetup
- {
- newattribute =
- {bbox}{/O /Layout /BBox [0 0 100 100]}
+\cs_new_protected:Npn \__tag_graphic_tikz_begin_picture:
+ {
+ \tag_mc_end_push:
+ \bool_if:NTF \l__tag_graphic_artifact_bool
+ { \tagmcbegin{artifact} }
+ {
+ \__tag_tikz_getbbox:
+ \tagstructbegin{tag=Figure,alt=\l__tag_graphic_alt_tl}\tagmcbegin{}
+ \__tag_prop_gput:cne
+ { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop }
+ { A }
+ {
+ <<
+ /O /Layout /BBox~
+ [
+ \g__tag_graphic_lx_tl\c_space_tl
+ \g__tag_graphic_ly_tl\c_space_tl
+ \g__tag_graphic_ux_tl\c_space_tl
+ \g__tag_graphic_uy_tl
+ ]
+ >>
+ }
+ \bool_if:NT\l__tag_graphic_debug_bool
+ {
+ \__tag_graphic_show_bbox:VVVVne
+ \g__tag_graphic_lx_tl
+ \g__tag_graphic_ly_tl
+ \g__tag_graphic_ux_tl
+ \g__tag_graphic_uy_tl
+ {red}
+ {\int_use:N\g__tag_graphic_int}
+ }
+ }
+ \SuspendTagging{tikz}
}
+\cs_new_protected:Npn \__tag_graphic_tikz_end_picture:
+ {
+ \ResumeTagging{tikz}\tagmcend
+ \bool_if:NF \l__tag_graphic_artifact_bool
+ {
+ \tagstructend
+ \__tag_tikz_savepos:e {__tag_graphic_\int_use:N \g__tag_graphic_int}
+ }
+ \tag_mc_begin_pop:n{}
+ }
+
+\tikzset
+ {
+ every~picture/.style=
+ {
+ artifact,
+ execute~at~begin~picture=\__tag_graphic_tikz_begin_picture:,
+ execute~at~end~picture=\__tag_graphic_tikz_end_picture:
+ }
+ }
+\AddToHook{env/tikzpicture/before}{\leavevmode}
+
+\tikzset
+ {
+ alt/.code=
+ {
+ \bool_set_false:N \l__tag_graphic_artifact_bool
+ \tl_set:Nn \l__tag_graphic_alt_tl{#1}
+ }
+ }
+\tikzset
+ {
+ artifact/.code=
+ \bool_set_true:N \l__tag_graphic_artifact_bool
+ }
+
+\ExplSyntaxOff
+
+
+
\endinput
diff --git a/macros/latex/contrib/tagpdf/tagpdfsetup-keys.tex b/macros/latex/contrib/tagpdf/tagpdfsetup-keys.tex
index 04f8b88aec..a02411c31f 100644
--- a/macros/latex/contrib/tagpdf/tagpdfsetup-keys.tex
+++ b/macros/latex/contrib/tagpdf/tagpdfsetup-keys.tex
@@ -12,7 +12,8 @@ new key name & old key name & value &type & defined in \\\midrul
activate & activate & boolean &meta & tagpdf \\
activate/all & activate-all & boolean &meta & tagpdf\\
-activate/mc & activate-mc & boolean &bool & tagpdf\\
+activate/mc & activate-mc & boolean &bool & tagpdf\\
+activate/softhyphen & --- & boolean &bool & tagpdf \\
activate/spaces & interwordspace & boolean &code & tagpdf-space\\
activate/struct & activate-struct & boolean &bool & tagpdf\\
activate/struct-dest & no-struct-dest&boolean &bool & tagpdf\\
diff --git a/macros/latex/contrib/tcolorbox/CHANGES.md b/macros/latex/contrib/tcolorbox/CHANGES.md
index a0287ad4b2..994c7ac4c1 100644
--- a/macros/latex/contrib/tcolorbox/CHANGES.md
+++ b/macros/latex/contrib/tcolorbox/CHANGES.md
@@ -22,6 +22,25 @@ and this project adheres to
+## [6.4.0] - 2024-09-07
+
+### Added
+- Libary `documentation`:
+ - `\refPkg` for referring packages on CTAN (issue #290)
+
+### Changed
+- Precautions for tikz options with square brackets (issue #284)
+- Usage warnings added for deprecated options `before example`, `after example`, and `graphical environment` (issue #284)
+- Documenation for TikZ Picture Option Keys adapted (issue #285)
+- Label `tcolorbox` added to LaTeX hooks (issue #287)
+- Libary `minted`: Minted option `envname` now supported by package `minted` directly (issue #2)
+
+### Fixed
+- Libary `minted`: `minted Warning: Macro \minted@def@optcl is deprecated with minted v3` (issue #2)
+- `tcolorbox-tutorial-poster.tex`: minted v3 seems to need escaped comma `\,` instead of `,` inside `breakafter`
+
+
+
## [6.3.0] - 2024-07-10
### Added
diff --git a/macros/latex/contrib/tcolorbox/README.md b/macros/latex/contrib/tcolorbox/README.md
index e90e2bec18..261fa152a2 100644
--- a/macros/latex/contrib/tcolorbox/README.md
+++ b/macros/latex/contrib/tcolorbox/README.md
@@ -1,4 +1,4 @@
-# The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+# The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
> Copyright (c) 2006-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
diff --git a/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex b/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
index cade134ab2..82cdde4e21 100644
--- a/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbbreakable.code.tex: Code for breakable colorboxes
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\RequirePackage{pdfcol}
\pdfcolInitStack{tcb@breakable}
diff --git a/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex b/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
index a550de9fff..7de745b500 100644
--- a/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbdocumentation.code.tex: Code for LaTeX documentations
%%
%% -------------------------------------------------------------------------------------------
@@ -17,13 +17,13 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\tcbuselibrary{listings,skins,external,raster}
\ifdefined\printindex\else%
\RequirePackage{makeidx}[2000/03/29]%
- \AddToHook{begindocument/before}{%
+ \AddToHook{begindocument/before}[tcolorbox]{%
\@ifpackageloaded{imakeidx}{%
\tcb@warning{`imakeidx' package should be loaded before `documentation' library}%
}{}}%
@@ -66,7 +66,7 @@
\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
\def\meta@font@select{\rmfamily\itshape}
-\AtEndPreamble{%
+\AtEndPreamble[tcolorbox]{%
\@ifpackageloaded{doc}{%
}{% code taken from doc.sty
\ifx\l@nohyphenation\undefined
@@ -228,7 +228,7 @@
value=value,values=Values}},
}
-\AtBeginDocument{%
+\AtBeginDocument[tcolorbox]{%
\csname tcb@doc@index@\idx@format\endcsname%
\hypersetup{
citecolor=\kvtcb@colhyper,
@@ -922,7 +922,16 @@
\def\refKey{\tcb@ref@doc{key}}
\def\refPathOperation{\tcb@ref@doc{path}}
-\AtBeginDocument{%
+\NewDocumentCommand \refPkg { O{#2} m } {%
+ \href{https://ctan.org/pkg/#1}%
+ {%
+ \refAux{#2}%
+ \kvtcb@doc@format@page{{\fontfamily{pzd}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont\char213}%
+ \,CTAN}%
+ }%
+}
+
+\AtBeginDocument[tcolorbox]{%
\ifHy@colorlinks
\def\refAux#1{\textcolor{\kvtcb@colhyper}{\tcb@scantokens{#1}}}%
\def\refAuxcs#1{\textcolor{\kvtcb@colhyper}{\tcb@cs{#1}}}%
@@ -1065,8 +1074,6 @@
% deprecated
\tcbset{
- before example/.store in=\kvtcb@beforeexample,
- after example/.store in=\kvtcb@afterexample,
- before example=\par\smallskip,
- after example=,
+ before example/.code = {\tcb@warning@deprecatedkey{v3.50 (2015/03/16)}},
+ after example/.code = {\tcb@warning@deprecatedkey{v3.50 (2015/03/16)}},
}
diff --git a/macros/latex/contrib/tcolorbox/tcbexternal.code.tex b/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
index 060f1bb9a0..e9a93db619 100644
--- a/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbexternal.code.tex: Code for externalization
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\tcbuselibrary{pro@cessing}
diff --git a/macros/latex/contrib/tcolorbox/tcbfitting.code.tex b/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
index e133063705..73d73f5a99 100644
--- a/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbfitting.code.tex: Code for fit boxes
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\newdimen\tcbfitdim
\newdimen\tcb@lowerfitdim
diff --git a/macros/latex/contrib/tcolorbox/tcbhooks.code.tex b/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
index 6a60587177..6d825fc61c 100644
--- a/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbhooks.code.tex: Code for adding hooks
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\tcbset{%
before upper app/.code={\appto\kvtcb@before@upper{#1}},%
diff --git a/macros/latex/contrib/tcolorbox/tcblistings.code.tex b/macros/latex/contrib/tcolorbox/tcblistings.code.tex
index 9a869f870f..09c5723e8d 100644
--- a/macros/latex/contrib/tcolorbox/tcblistings.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcblistings.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcblistings.code.tex: Code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\RequirePackage{listings}[2007/02/22]
diff --git a/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex b/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
index f3ffb31b90..4022b58069 100644
--- a/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcblistingscode.code.tex: Auxiliary code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\tcbuselibrary{pro@cessing}
diff --git a/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex b/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
index 0fb3fd8d22..0bdbef4290 100644
--- a/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcblistingsutf8.code.tex: Code for colorboxes with listings in UTF-8
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\tcbuselibrary{listings}
diff --git a/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex b/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
index 49059a0863..0f54466b1e 100644
--- a/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbmagazine.code.tex: Code for box sets and magazine styles
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\tcbuselibrary{breakable}
diff --git a/macros/latex/contrib/tcolorbox/tcbminted.code.tex b/macros/latex/contrib/tcolorbox/tcbminted.code.tex
index d21bc11036..60de31f6bf 100644
--- a/macros/latex/contrib/tcolorbox/tcbminted.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbminted.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbminted.code.tex: Code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
@@ -18,12 +18,14 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\RequirePackage{minted}[2021/12/24]
% to be removed, if integrated into the minted package (#281)
-\minted@def@optcl{envname}{-P envname}{#1}
+\IfPackageAtLeastTF{minted}{2024/08/25}{}{%
+ \minted@def@optcl{envname}{-P envname}{#1}%
+}
\tcbuselibrary{listings@core}
diff --git a/macros/latex/contrib/tcolorbox/tcbposter.code.tex b/macros/latex/contrib/tcolorbox/tcbposter.code.tex
index 3fcec6b22c..67705b7b57 100644
--- a/macros/latex/contrib/tcolorbox/tcbposter.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbposter.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbposter.code.tex: Code for posters
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\tcbuselibrary{breakable,magazine,skins,fitting}
diff --git a/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex b/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
index a5bdabc874..086bc37458 100644
--- a/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbprocessing.code.tex: Code for conditional processing
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\ExplSyntaxOn
diff --git a/macros/latex/contrib/tcolorbox/tcbraster.code.tex b/macros/latex/contrib/tcolorbox/tcbraster.code.tex
index e3645497e9..3aead9fbb8 100644
--- a/macros/latex/contrib/tcolorbox/tcbraster.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbraster.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\newcounter{tcbrastercolumn}
\newcounter{tcbrasterrow}
diff --git a/macros/latex/contrib/tcolorbox/tcbskins.code.tex b/macros/latex/contrib/tcolorbox/tcbskins.code.tex
index 5e3faed9dd..bd5f3f9fdf 100644
--- a/macros/latex/contrib/tcolorbox/tcbskins.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbskins.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbskins.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\RequirePackage{tikzfill.image}
diff --git a/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex b/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
index 6a54fca567..a046fcd34d 100644
--- a/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\tcbuselibrary{skins}
diff --git a/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex b/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
index cfbc1ba796..7a8b2d4261 100644
--- a/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbtheorems.code.tex: Code for theorems in colorboxes
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\RequirePackage{amsmath}
diff --git a/macros/latex/contrib/tcolorbox/tcbvignette.code.tex b/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
index 51a4c9d6d0..92c23ca3f1 100644
--- a/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbvignette.code.tex: Code for ornamental frames
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\tcbuselibrary{skins}
diff --git a/macros/latex/contrib/tcolorbox/tcbxparse.code.tex b/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
index 5223be23ea..a4c4438703 100644
--- a/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcbxparse.code.tex: Code for xparse features
%%
%% -------------------------------------------------------------------------------------------
@@ -18,6 +18,6 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{6.3.0}
+\tcb@set@library@version{6.4.0}
\RequirePackage{xparse}[2013/12/31]
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
index 1e380d5559..9420a8f153 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
index cb8586e6ec..c2cbaa79d9 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcolorbox-example-poster.tex: a poster example for tcolorbox
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
index 2d332523c2..b78d77393e 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example.tex b/macros/latex/contrib/tcolorbox/tcolorbox-example.tex
index 6f878d2f1d..322c46c38d 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcolorbox-example.tex: an example for tcolorbox
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
index f81aee0783..e37dceddf9 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
index 7c6c769d1d..ebc9b4e772 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
@@ -1,5 +1,5 @@
% \LaTeX-Main\
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcolorbox-tutorial-poster.tex: a tutorial for poster creation with tcolorbox
%%
%% -------------------------------------------------------------------------------------------
@@ -1373,7 +1373,7 @@ Our poster is finished now. Just go to the next page to see the final result.
\tcbinputlisting{standard jigsaw,size=minimal,toprule=0.5mm,bottomrule=0.5mm,boxsep=2mm,
colback=white,opacityback=0.75,listing only,
enforce breakable,tcb@poster@boxheight,before skip=-\interlineskip,height fixed for=all,
- minted options={tabsize=2,fontsize=\small,breaklines,breakafter={,]-}},
+ minted options={tabsize=2,fontsize=\small,breaklines,breakafter={\,\]-}},
listing file=tcolorbox-example-poster.tex}%
}
\end{tcbposter}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex
index 00dc2198b2..288354d6b5 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex
@@ -7,7 +7,7 @@ The library is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{breakable}
\end{dispListing}
-This also loads the package |pdfcol|.
+This also loads the package \refPkg{pdfcol}.
\subsection{Technical Overview}
The library \mylib{breakable} supports the automatic breaking of a |tcolorbox|.
@@ -114,7 +114,7 @@ parameters. The differences are:
color changing commands, your color may not survive the break to the next box.
See the documentation for \refKey{/tcb/use color stack} for more information.
\item\tcbdocmarginnote{\tcbdocnew{2014-10-30}}
- The |perpage| option of the |footmisc| package is deliberately deactivated
+ The |perpage| option of the \refPkg{footmisc} package is deliberately deactivated
inside a breakable box since all footnotes are placed at the end
of the box (possibly far away from the reference point).
\item\tcbdocmarginnote{\tcbdocnew{2016-02-15}}
@@ -127,7 +127,7 @@ parameters. The differences are:
Lua\TeX\ version 0.95 changes the behavior of the basic |\vsplit| (a bug?!)
resulting in badly broken boxes. Thanks to Jeremy Engel,
the \mylib{breakable} library contains a patch for this which
- also loads the the |ifluatex| package.
+ also loads the the \refPkg{ifluatex} package.
\end{itemize}
@@ -315,7 +315,7 @@ The |break at| option can be used to insert better break points by hand.
color changing commands, your color may not survive the break to the next box.
For some engines, there is support for additional color stacks which
allow colors to survive breaks. Such an color stack can be activated
- by \refKey{/tcb/use color stack} with help of the |pdfcol| package.
+ by \refKey{/tcb/use color stack} with help of the \refPkg{pdfcol} package.
This can be done globally or per box.
\begin{marker}
Note that activating \refKey{/tcb/use color stack} inserts a color command with a \emph{whatsit}
@@ -326,9 +326,9 @@ The |break at| option can be used to insert better break points by hand.
\begin{itemize}
\item pdf\TeX: color stacks supported.
\item Lua\TeX: color stacks supported, but you should consider loading the
- |luacolor| package \emph{instead} which avoids the spacing problem.
+ \refPkg{luacolor} package \emph{instead} which avoids the spacing problem.
\item Xe\TeX: color stacks not supported (yet?). From hearsay,
- with the |fontspec| package, you may use |\addfontfeatures{Color=mycolor}|
+ with the \refPkg{fontspec} package, you may use |\addfontfeatures{Color=mycolor}|
to add a font color which survives the break.
\end{itemize}
If |pdfcol| cannot initialize an additional color stack for the used engine,
@@ -682,7 +682,7 @@ code which \emph{may} have to be adapted.
\begin{tcolorbox}[enhanced jigsaw,size=small,breakable,colback=yellow!10!white,
colframe=red!50!white,break at=3cm,height fixed for=all]
Unbreakable |tcolorbox|es can be used without special care inside a
-|multicols| environment from the |multicol| package \cite{mittelbach:multicol}.
+|multicols| environment from the \refPkg{multicol} package \cite{mittelbach:multicol}.
Since version 3.10, a breakable |tcolorbox| detects, if it is used inside
a |multicols| environment. But choosing break points for a breakable box
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
index c41134a6c8..34d6769fa4 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
@@ -465,7 +465,7 @@ done in the same way, e.\,g. \myverb{\textit}, \myverb{\itshape}\\
or \myverb[brown]{\texttt}, \myverb[brown]{\ttfamily}.
\end{dispExample}
-The next example uses |\lstinline| from the |listings| package to
+The next example uses |\lstinline| from the \refPkg{listings} package to
typeset the verbatim content.
\begin{dispExample}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
index 62f3fa3c01..1a9ea46725 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
@@ -2640,7 +2640,7 @@ Lower part.
\begin{docTcbKey}{varwidth upper}{\colOpt{=\meta{length}}}{style, default \refKey{/tcb/width}}
This style places the upper part content into a |varwidth| environment.
- This style needs the |varwidth| package \cite{arseneau:2011a} to be loaded manually.
+ This style needs the \refPkg{varwidth} package \cite{arseneau:2011a} to be loaded manually.
The resulting box has a maximal width of \meta{length}.
This option is only senseful for a \refCom{tcbox}.
\begin{exdispExample*}{varwidth_upper}{sbs,lefthand ratio=0.6}
@@ -3268,7 +3268,7 @@ text after
\refKey{/tcb/before skip balanced} and \refKey{/tcb/after skip balanced}
(see note on page~\pageref{subsec:surroundings}).\par
Sets the keys |before| and |after| to values which are
- recommended, if the package |parskip| \emph{is} used and there is no better
+ recommended, if the package \refPkg{parskip} \emph{is} used and there is no better
idea for |before| and |after|. This is similar to:
\begin{dispListing}
\tcbset{parskip/.style={before={\par\pagebreak[0]\parindent=0pt},
@@ -3281,7 +3281,7 @@ text after
\refKey{/tcb/before skip balanced} and \refKey{/tcb/after skip balanced}
(see note on page~\pageref{subsec:surroundings}).\par
Sets the keys |before| and |after| to values which are
- recommended, if the package |parskip| is \emph{not} used and there is no better
+ recommended, if the package \refPkg{parskip} is \emph{not} used and there is no better
idea for |before| and |after|. This is similar to:
\begin{dispListing}
\tcbset{noparskip/.style={before={\par\pagebreak[0]\smallskip\parindent=0pt},
@@ -3293,13 +3293,13 @@ text after
This options is considered to be superseded by
\refKey{/tcb/before skip balanced} and \refKey{/tcb/after skip balanced}
(see note on page~\pageref{subsec:surroundings}).\par
- Tries to detect the usage of the package |parskip| and sets
+ Tries to detect the usage of the package \refPkg{parskip} and sets
the keys |before| and |after| accordingly. Actually, the following is done:
\begin{itemize}
\item If the length of |\parskip| is greater than |0pt| at the beginning of the document,
- \refKey{/tcb/parskip} is executed. Here, the usage of package |parskip| is \emph{assumed}.
+ \refKey{/tcb/parskip} is executed. Here, the usage of package \refPkg{parskip} is \emph{assumed}.
\item Otherwise, if the length of |\parskip| is not greater than |0pt| at the beginning of the document,
- \refKey{/tcb/noparskip} is executed. Here, the absence of package |parskip| is \emph{assumed}.
+ \refKey{/tcb/noparskip} is executed. Here, the absence of package \refPkg{parskip} is \emph{assumed}.
\end{itemize}
\end{docTcbKey}
@@ -4315,7 +4315,7 @@ related operations which do not produce visible text.
\item Labels are ensured to reference the correct page number.
\item The \meta{code} is executed only once even during fitting operations for
title and box content.
-\item In combination with the |hyperref| package, the hyper anchor is set
+\item In combination with the \refPkg{hyperref} package, the hyper anchor is set
to the upper left corner of the |tcolorbox|, i.\,e.\ links inside the pdf document
will jump to the box pleasantly.
\item Since the \meta{code} is executed inside a \TeX\ group, only global
@@ -4343,8 +4343,8 @@ Note that this option is not getting reset by \refKey{/tcb/reset}.
\begin{docTcbKey}[][doc new=2023-02-08]{label is zlabel}{}{no value, initially unset}
Sets |\zlabel| as labelling for |tcolorbox| (global or per box).
When \refKey{/tcb/label} and friends are used, the underlying labeling macro is |\zlabel|.
-This needs the |zref| package \cite{oberdiek:zref} or packages building upon |zref| to be loaded.
-References can be made by |\zref|. If the |zref-clever| package \cite{barros:zref-clever} is loaded,
+This needs the \refPkg{zref} package \cite{oberdiek:zref} or packages building upon \refPkg{zref} to be loaded.
+References can be made by |\zref|. If the \refPkg{zref-clever} package \cite{barros:zref-clever} is loaded,
|\zcref|, |\zcpageref|, and similar macros can be applied.
Note that this option is not getting reset by \refKey{/tcb/reset}.
\end{docTcbKey}
@@ -4362,7 +4362,7 @@ from page \pageref{sec:numberedboxes}, e.\,g.\ \refKey{/tcb/new/auto counter}.
\begin{docTcbKey}[][doc new=2014-11-28]{phantomlabel}{=\meta{marker}}{no default, initially unset}
Equivalent to \refKey{/tcb/label} for an \emph{unnumbered} box.
-A |\phantomsection| from the package |hyperref| \cite{rahtz:hyperref} is used to set a correct
+A |\phantomsection| from the package \refPkg{hyperref} \cite{rahtz:hyperref} is used to set a correct
hyperlink target.
This is not needed and should typically not be used for a numbered box.
\end{docTcbKey}
@@ -4389,7 +4389,7 @@ from page \pageref{sec:numberedboxes}.
This option has a different meaning based upon the chosen labeling mechanism.
\begin{itemize}
\item If \refKey{/tcb/label is label} is active:\par
- The option key \refKey{/tcb/label type} can be used only in conjunction with the |cleveref| package
+ The option key \refKey{/tcb/label type} can be used only in conjunction with the \refPkg{cleveref} package
\cite{cubitt:2018a} which has to be loaded separately.
\meta{type} has to be a cross-reference type \emph{known} to |cleveref|
like |theorem|, |algorithm|, |result|, etc. References made with |cleveref|
@@ -4397,7 +4397,7 @@ This option has a different meaning based upon the chosen labeling mechanism.
errors, if |cleveref| is not loaded.
For an example, see \Vref{theo:meanvaluetheorem}.
\item If \refKey{/tcb/label is zlabel} is active:\par
- The option key \refKey{/tcb/label type} can be used only in conjunction with the |zref-clever| package
+ The option key \refKey{/tcb/label type} can be used only in conjunction with the \refPkg{zref-clever} package
\cite{barros:zref-clever}
which has to be loaded separately.
\meta{type} has to be a cross-reference type \emph{known} to |zref-clever|.
@@ -4419,9 +4419,9 @@ Removes a \refKey{/tcb/label type}, if set before.
\clearpage
\begin{docTcbKey}[][doc new and updated={2016-06-22}{2023-02-08}]{nameref}{=\meta{text}}{no default, initially unset}
-If the |nameref| package is loaded, the given \meta{text} is used for
+If the \refPkg{nameref} package is loaded, the given \meta{text} is used for
corresponding |\nameref| macros.
-If the |zref-titleref| package is loaded, the given \meta{text} is used to
+If the \refPkg{zref-titleref} package is loaded, the given \meta{text} is used to
set the reference text for |\ztitleref|.
Typically, the \meta{text} will be chosen
to be identical or nearly identical to the one for \refKey{/tcb/title}.
@@ -4454,7 +4454,7 @@ The most likely use case is to set a \emph{short title} for the
\clearpage
\begin{docTcbKey}[][doc new=2017-02-03]{hypertarget}{=\meta{marker}}{no default, initially unset}
-A |\hypertarget| from the package |hyperref| \cite{rahtz:hyperref} is used to
+A |\hypertarget| from the package \refPkg{hyperref} \cite{rahtz:hyperref} is used to
create an internal link of an anchor \meta{marker}.
This \meta{marker} can be referenced by |\hyperlink| or
\refKey{/tcb/hyperlink}.
@@ -4473,7 +4473,7 @@ Click me to jump to Box B.
\begin{docTcbKey}[][doc new=2017-02-10]{bookmark}{=\meta{text}}{no default, initially unset}
- Sets a PDF bookmark with the given \meta{text}, if the package |bookmark| \cite{oberdiek:bookmark}
+ Sets a PDF bookmark with the given \meta{text}, if the package \refPkg{bookmark} \cite{oberdiek:bookmark}
is loaded. This bookmark is set with an automated destination (the current box)
and is set one level below the current bookmark level.
\begin{dispExample*}{sbs,lefthand ratio=0.7}
@@ -4490,7 +4490,7 @@ to see the bookmark.
\begin{docTcbKey}[][doc new=2017-02-10]{bookmark*}{=\marg{options}\marg{text}}{no default, initially unset}
Identical to \refKey{/tcb/bookmark}, but additional \meta{options}
- from the package |bookmark| \cite{oberdiek:bookmark} can be given.
+ from the package \refPkg{bookmark} \cite{oberdiek:bookmark} can be given.
\begin{dispExample*}{sbs,lefthand ratio=0.7}
% \usepackage{bookmark}%
\begin{tcolorbox}[colback=red!10,colframe=red!50!black,
@@ -4692,7 +4692,7 @@ It is precise only, if \refKey{/tcb/check odd page} was set.
See \Fullref{sec:external} for the \mylib{external} library of |tcolorbox|.
\end{marker}
-If the \emph{externalization} library of the \texttt{tikz} package is used,
+If the \emph{externalization} library of the \refPkg{tikz} package is used,
a |tcolorbox| could trigger the externalization process which will arise
a compilation error.
@@ -4734,7 +4734,7 @@ inside the current \TeX\ group and is not affected by \refKey{/tcb/reset}.
it may be used inside the option list of a |tcolorbox| to set the
externalization \meta{file name} for the first |tikzpicture| which is discovered
\emph{inside} the box content.
- The package |tikz| \cite{tantau:tikz_and_pgf} or the library \mylib{skins} has to be loaded to use this option.
+ The package \refPkg{tikz} \cite{tantau:tikz_and_pgf} or the library \mylib{skins} has to be loaded to use this option.
Additionally, |\usetikzlibrary{external}| has to be used.
\end{docTcbKey}
@@ -4742,7 +4742,7 @@ inside the current \TeX\ group and is not affected by \refKey{/tcb/reset}.
Convenience option which calls |/tikz/external/remake next|. Typically,
it may be used inside the option list of a |tcolorbox| to force the remake
of the first |tikzpicture| which is discovered \emph{inside} the box content.
- The package |tikz| \cite{tantau:tikz_and_pgf} or the library \mylib{skins} has to be loaded to use this option.
+ The package \refPkg{tikz} \cite{tantau:tikz_and_pgf} or the library \mylib{skins} has to be loaded to use this option.
Additionally, |\usetikzlibrary{external}| has to be used.
\end{docTcbKey}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
index 45282f3c46..939c5d4dbe 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
@@ -5,9 +5,9 @@
\tcbset{external/prefix=external/documentation_}%
This library has the single purpose to support \LaTeX\ package documentations
like this one. Actually, the visual nature follows the approach from
-Till Tantau's |pgf| \cite{tantau:tikz_and_pgf} documentation.
+Till Tantau's \refPkg{pgf} \cite{tantau:tikz_and_pgf} documentation.
Typically, this library is assumed to be used in conjunction with the
-class |ltxdoc| or alike.
+class \refPkg{ltxdoc} or alike.
Denis Bitouz\'e, Muzimuzhi, and many others provided very valuable input for this library.
The library is loaded by a package option or inside the preamble by:
@@ -19,17 +19,17 @@ the library \mylib{skins}, see \Vref{sec:skins},
the library \mylib{raster}, see \Vref{sec:raster},
the library \mylib{listings}, see \Vref{sec:listings},
and a bunch of packages, namely
-|makeidx|, |marginnote|, |refcount|, and |hyperref|.
-The packages |pifont| and |marvosym| should be installed for some symbols, but
+\refPkg{makeidx}, \refPkg{marginnote}, \refPkg{refcount}, and \refPkg{hyperref}.
+The packages \refPkg{pifont} and \refPkg{marvosym} should be installed for some symbols, but
need not to be loaded.
\begin{marker}
-The package |makeidx| is loaded only, if \docAuxCommand*{printindex} is
-\emph{not} already defined. Therefore, one can include an alternative to |makeidx| like
-|imakeidx| \emph{before} the library |documentation| is used.
+The package \refPkg{makeidx} is loaded only, if \docAuxCommand*{printindex} is
+\emph{not} already defined. Therefore, one can include an alternative to \refPkg{makeidx} like
+\refPkg{imakeidx} \emph{before} the library |documentation| is used.
\end{marker}
\begin{marker}
-The package |marginnote| is loaded only, if \docAuxCommand*{marginnote} is
+The package \refPkg{marginnote} is loaded only, if \docAuxCommand*{marginnote} is
\emph{not} already defined.
\end{marker}
\begin{marker}
@@ -47,7 +47,7 @@ For UTF-8 support load (ignore this when using Xe\LaTeX):
\tcbuselibrary{listingsutf8,documentation}
\end{dispListing}
-For |minted| \cite{poore:minted} support, load:
+For \refPkg{minted} \cite{poore:minted} support, load:
\begin{dispListing}
\tcbuselibrary{documentation,minted}
\tcbset{listing engine=minted}
@@ -704,6 +704,21 @@ Some pages back, one can see \refAuxcs{fooaux} as an example.
\end{docCommand}
+\begin{docCommand}[doc new=2024-09-18]{refPkg}{\oarg{ctanname}\marg{name}}
+ References a package \meta{name} on \href{https://ctan.org}{CTAN} with
+ hyperlink \mbox{|https://ctan.org/pkg/|\meta{name}}.
+ Using the option \meta{ctanname} creates the hyperlink
+ \mbox{|https://ctan.org/pkg/|\meta{ctanname}}.
+\begin{dispExample}
+Hyperlinks are created with help of the \refPkg{hyperref} package.\par
+The package \refPkg[frankenstein]{dialogue} is part of the
+\refPkg{frankenstein} bundle of packages.
+\end{dispExample}
+\end{docCommand}
+
+
+\clearpage
+
\begin{docCommand}{colDef}{\marg{text}}
Sets \meta{text} with the command color, see \refKey{/tcb/color command}.
\begin{dispExample}
@@ -718,8 +733,6 @@ This is my \colOpt{text}.
\end{dispExample}
\end{docCommand}
-\clearpage
-
\begin{docCommand}[doc new=2019-09-18]{colFade}{\marg{text}}
Sets \meta{text} with the fade color, see \refKey{/tcb/color fade}.
\begin{dispExample}
@@ -730,7 +743,7 @@ This is my \colFade{text}.
\begin{docCommand}[doc new=2014-09-19]{tcbdocmarginnote}{\oarg{options}\marg{text}}
Creates a |tcolorbox| note with the given \meta{text} inside the margin using
- the |marginnote| package. The style of the |tcolorbox| is predefined and can be
+ the \refPkg{marginnote} package. The style of the |tcolorbox| is predefined and can be
altered by \refKey{/tcb/doc marginnote} and the given \meta{options}.
\begin{dispExample}
Some text\tcbdocmarginnote{Note A}
@@ -1313,7 +1326,7 @@ keys to insert code before (or after) the description texts.
\end{docTcbKey}
\begin{docTcbKey}{documentation listing options}{=\meta{key list}}{no default,\\\hspace*{\fill} initially |style=tcbdocumentation|}
- Sets the options from the package |listings| \cite{hoffmann:listings}.
+ Sets the options from the package \refPkg{listings} \cite{hoffmann:listings}.
They are used inside \refEnv{dispExample} and \refEnv{dispListing} to typeset
the listings. Note that this is not identical to the key
\refKey{/tcb/listing options} which is used for \enquote{normal} listings.\\
@@ -1323,14 +1336,14 @@ keys to insert code before (or after) the description texts.
\begin{docTcbKey}{documentation listing style}{=\meta{listing style}}{no default, initially |tcbdocumentation|}
Abbreviation for |documentation listing options={style=...}|.
This key sets a \meta{style}
- for the |listings| package, see \cite{hoffmann:listings}.
+ for the \refPkg{listings} package, see \cite{hoffmann:listings}.
Note that this is not identical to the key
\refKey{/tcb/listing style} which is used for \enquote{normal} listings.\\
Used for \refKey{/tcb/listing engine}|=listings| only.
\end{docTcbKey}
\begin{docTcbKey}{documentation minted options}{=\meta{key list}}{no default,\\\hspace*{\fill} initially |tabsize=2,fontsize=\textbackslash small|}
- Sets the options from the package |minted| \cite{poore:minted}
+ Sets the options from the package \refPkg{minted} \cite{poore:minted}
which are used during typesetting of the listing, if used.
Note that this is not identical to the key
\refKey{/tcb/minted options} which is used for \enquote{normal} listings.\\
@@ -1339,7 +1352,7 @@ keys to insert code before (or after) the description texts.
\begin{docTcbKey}{documentation minted style}{=\meta{key list}}{no default, initially unset}
Sets a \meta{style} known to |Pygments| \cite{pygments:web} for
- the package |minted| \cite{poore:minted}, if used.
+ the package \refPkg{minted} \cite{poore:minted}, if used.
Note that this is not identical to the key
\refKey{/tcb/minted style} which is used for \enquote{normal} listings.\\
Used for \refKey{/tcb/listing engine}|=minted| only.
@@ -1347,7 +1360,7 @@ keys to insert code before (or after) the description texts.
\begin{docTcbKey}[][doc new=2017-04-24]{documentation minted language}{=\meta{programming language}}{no default, initially |latex|}
Sets a \meta{programming language} known to |Pygments| \cite{pygments:web}
- for the package |minted| \cite{poore:minted}, if used.
+ for the package \refPkg{minted} \cite{poore:minted}, if used.
Note that this is not identical to the key
\refKey{/tcb/minted language} which is used for \enquote{normal} listings.\\
Used for \refKey{/tcb/listing engine}|=minted| only.
@@ -1383,7 +1396,7 @@ Sets \meta{macro} as formatter for page references like the
reference to \refEnv{tcolorbox}.
The default setting puts the page reference in a |\textsuperscript|.
It may be changed to |\fakesuperscript| to cope with superiors problems
-in combination with the |realscripts| package or just otherwise for user customization.
+in combination with the \refPkg{realscripts} package or just otherwise for user customization.
\end{docTcbKeys}
@@ -1420,11 +1433,11 @@ in combination with the |realscripts| package or just otherwise for user customi
\item\docValue{pgfchapter}: The index is formatted like in the |pgf| documentation (as a chapter).
\item\docValue{pgf}: Alias for |pgfsection|.
\item\docValue{doc}: The index is assumed to be formatted by |doc| or |ltxdoc|. The usage of |makeindex|
- with |-s gind.ist| is assumed. The package |hypdoc| has to be loaded
+ with |-s gind.ist| is assumed. The package \refPkg{hypdoc} has to be loaded
\emph{before} |tcolorbox|. Only a limited set of customizations will
work! This option cannot be unset when used!
\item\docValue{off}: The index is not formatted by |tcolorbox|. Use this, if
- the index is formatted by other package like |imakeidx|.
+ the index is formatted by other package like \refPkg{imakeidx}.
\end{itemize}
\end{docTcbKey}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex
index 62c982c2d3..d60af1c986 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex
@@ -16,7 +16,7 @@ The whole procedure saves compilation time, if such a snippet is costly to
compile but needs to compile just once or very seldom.
There are very good alternatives to this library. One should consider
-the |standalone| package or the \tikzname\ externalization library instead.
+the \refPkg{standalone} package or the \tikzname\ externalization library instead.
The \mylib{external} library is something in between and can be seen as
poor man variant of the \tikzname\ externalization library.
@@ -619,14 +619,14 @@ or
name points to another subdirectory than |external|, this has to be
adapted.
-\item\textbf{I use the |minted| package and I get a cache directory for
+\item\textbf{I use the \refPkg{minted} package and I get a cache directory for
every externalized snippet.}\\
To avoid this problem, there are several ways.
\begin{itemize}
\item If you do not need |minted| inside the snippet code, you may use
|\usepackage{minted}| \emph{after} \refCom{tcbEXTERNALIZE}
or use \refCom{tcbifexternal} to switch |minted| off for the external code.
- If |minted| is already included by another package, add the following to
+ If \refPkg{minted} is already included by another package, add the following to
your preamble:
\begin{dispListing}
\tcbset{external/PassOptionsToPackage={draft}{minted}}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex
index 909f7f4ac0..dfce46b546 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex
@@ -16,7 +16,7 @@ See \Vref{sec:skins} for the documentation of all other options of the \mylib{sk
\begin{marker}
Up to version 5.1.1 (2022/06/24) of |tcolorbox|, \tikzname\ image and picture fill extensions
were documented here. These extensions are now separate \tikzname\ libraries
-and part of the |tikzfill| package where they are documented now.
+and part of the \refPkg{tikzfill} package where they are documented now.
\end{marker}
@@ -107,7 +107,7 @@ The following auxiliary macro is defined by the \mylib{skins} library.
\begin{docCommand}[doc new and updated={2016-02-03}{2023-02-28}]{tcbhypernode}{\marg{macro}\marg{node}}
% Sets the east-to-west dimension of the given \meta{node}
% to the \TeX\ \meta{register}.
- Applies a hyperlink creating \meta{macro} from the package |hyperref| \cite{rahtz:hyperref}
+ Applies a hyperlink creating \meta{macro} from the package \refPkg{hyperref} \cite{rahtz:hyperref}
to an existing |tikz| \meta{node}. \refCom{tcbhypernode} can only
be used inside a |tikzpicture| environment.
The last argument of the \meta{macro} is to be omitted and should stand
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex
index fe441d4821..a85091895e 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex
@@ -132,7 +132,7 @@ specify a file system \meta{directory} where the image files are located.
\end{dispListing}
\smallskip
\begin{marker}
-The |\graphicspath| macro from the |graphics| package is superior to this option.
+The |\graphicspath| macro from the \refPkg{graphics} package is superior to this option.
\refKey{/tcb/graphics directory} may be used especially for
\refCom{tcbincludepdf}.
\end{marker}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex
index b068d58eaf..8d0c7459b2 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex
@@ -173,7 +173,7 @@ need to be set inside the preamble.
\end{marker}
\begin{newTcbKey}[][doc updated=2014-12-01]{crefname}{=\marg{singular}\marg{plural}}{no default, initially unset}
- This option key can be used only in conjunction with the |cleveref| package
+ This option key can be used only in conjunction with the \refPkg{cleveref} package
\cite{cubitt:2018a} which has to be loaded separately.
It creates a cross-reference type for the new |tcolorbox|'es, where the
lowercase \meta{singular} and \meta{plural} forms of the cross-reference are given.
@@ -183,7 +183,7 @@ need to be set inside the preamble.
\begin{newTcbKey}[][doc updated=2014-12-01]{Crefname}{=\marg{singular}\marg{plural}}{no default, initially unset}
- This option key can be used only in conjunction with the |cleveref| package
+ This option key can be used only in conjunction with the \refPkg{cleveref} package
\cite{cubitt:2018a} which has to be loaded separately.
It creates a cross-reference type for the new |tcolorbox|'es, where the
uppercase \meta{singular} and \meta{plural} forms of the cross-reference are given.
@@ -224,7 +224,7 @@ Feasible values for \meta{name} are:
\item\docValue{figures}: blend into the standard |figure| environment.
\item\docValue{tables}: blend into the standard |table| environment.
\item\docValue{listings}: blend into the standard |lstlisting| environment
- of the package |listings| \cite{hoffmann:listings}.
+ of the package \refPkg{listings} \cite{hoffmann:listings}.
\begin{marker}
Note that |blend into=listings| can only be used in the document content
or, preferably, inside a |\AtBeginDocument| clause! Using it without
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.intro.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.intro.tex
index 0d76c0afbb..5f420895f9 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.intro.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.intro.tex
@@ -81,7 +81,7 @@ The following keys are used inside |\tcbuselibrary| respectively
|\usepackage| without the key tree path |/tcb/library/|.
\begin{docTcbKey}[library]{skins}{}{\mylib{skins}}
- Loads the package |tikz| \cite{tantau:tikz_and_pgf} and provides additional
+ Loads the package \refPkg{tikz} \cite{tantau:tikz_and_pgf} and provides additional
styles (skins) for the appearance of the colored boxes; see
Section~\ref{sec:skins} from page~\pageref{sec:skins}.
\end{docTcbKey}
@@ -98,13 +98,13 @@ The following keys are used inside |\tcbuselibrary| respectively
\end{docTcbKey}
\begin{docTcbKey}[library]{listings}{}{\mylib{listings}}
- Loads the package |listings| \cite{hoffmann:listings} and provides additional
+ Loads the package \refPkg{listings} \cite{hoffmann:listings} and provides additional
macros for typesetting listings which are described in Section~\ref{sec:listings}
from page~\pageref{sec:listings}.
\end{docTcbKey}
\begin{docTcbKey}[library]{listingsutf8}{}{\mylib{listingsutf8}}
- Loads the packages |listings| \cite{hoffmann:listings} and
+ Loads the packages \refPkg{listings} \cite{hoffmann:listings} and
|listingsutf8| \cite{oberdiek:listingsutf8} for UTF-8 support.
This is a variant of the library \mylib{listings}
and is described in Section \ref{sec:listings}
@@ -112,7 +112,7 @@ The following keys are used inside |\tcbuselibrary| respectively
\end{docTcbKey}
\begin{docTcbKey}[library]{minted}{}{\mylib{minted}}
- Loads the package |minted| \cite{poore:minted} to
+ Loads the package \refPkg{minted} \cite{poore:minted} to
typeset listings with the |Pygments| \cite{pygments:web} tool,
also see \Vref{sec:listings}.
\end{docTcbKey}
@@ -151,7 +151,7 @@ The following keys are used inside |\tcbuselibrary| respectively
\clearpage
\begin{docTcbKey}[library]{xparse}{}{\mylib{xparse}}
- Loads the package |xparse| and is considered a legacy library kept for compatibility;
+ Loads the package \refPkg{xparse} and is considered a legacy library kept for compatibility;
see Section~\ref{sec:xparse} from page~\pageref{sec:xparse}.
\end{docTcbKey}
@@ -178,7 +178,7 @@ The following keys are used inside |\tcbuselibrary| respectively
\begin{docTcbKey}[library]{most}{}{style, no value}
Loads all libraries except \mylib{minted}, \mylib{documentation}, and \mylib{xparse}.
Use this shortcut, if you want to use all features of |tcolorbox|
- with exception of using the |minted| package and using
+ with exception of using the \refPkg{minted} package and using
the specialized \mylib{documentation} library.
\end{docTcbKey}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
index c6e56dcdfa..59fbe4390e 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
@@ -27,12 +27,12 @@ the settings of a previous loaded library. A library is never loaded twice.
\subsubsection{Loading \mylib{listings}}
-This library uses the package |listings| \cite{hoffmann:listings} to typeset
+This library uses the package \refPkg{listings} \cite{hoffmann:listings} to typeset
listings. It is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{listings}
\end{dispListing}
-This also loads the package |listings| \cite{hoffmann:listings}.
+This also loads the package \refPkg{listings} \cite{hoffmann:listings}.
The \refKey{/tcb/listing engine} is set to |listings| by the library.
To reactivate this setting, if overwritten by other libraries, use
@@ -47,15 +47,15 @@ Therefore, loading this library is automatically replaced by loading
\mylib{listings} only, if pdf\LaTeX\ is \emph{not} used.
\end{marker}
To extend |listings| for UTF-8 encoded sources, you can use the support from
-the package |listingsutf8| \cite{oberdiek:listingsutf8} by loading the library
+the package \refPkg{listingsutf8} \cite{oberdiek:listingsutf8} by loading the library
variant \mylib{listingsutf8}.
\begin{dispListing}
\tcbuselibrary{listingsutf8}
\tcbset{listing utf8=latin1}% optional; `latin1' is the default.
\end{dispListing}
This also loads the library \mylib{listings}
-and the packages |listings| \cite{hoffmann:listings}
-and |listingsutf8| \cite{oberdiek:listingsutf8}.
+and the packages \refPkg{listings} \cite{hoffmann:listings}
+and \refPkg{listingsutf8} \cite{oberdiek:listingsutf8}.
The \refKey{/tcb/listing engine} is set to |listings| by the library.
To reactivate this setting, if overwritten by other libraries, use
@@ -66,19 +66,27 @@ To reactivate this setting, if overwritten by other libraries, use
\clearpage
\subsubsection{Loading \mylib{minted}}
-This library uses the package |minted| \cite{poore:minted} to typeset
+This library uses the package \refPkg{minted} \cite{poore:minted} to typeset
listings. It is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{minted}
\end{dispListing}
-This also loads the package |minted| \cite{poore:minted}.
+This also loads the package \refPkg{minted} \cite{poore:minted}.
\begin{marker}
-The |minted| package uses the external tool |Pygments| \cite{pygments:web}
+To use the legacy version v2.9 of \refPkg{minted}, write
+\begin{dispListing}
+\usepackage{minted2}
+\end{dispListing}
+\emph{before} loading the library!
+\end{marker}
+
+\begin{marker}
+The \refPkg{minted} package uses the external tool |Pygments| \cite{pygments:web}
to apply syntax highlighting. It has to be installed and set up, before the
library can be used, see \cite{poore:minted} and \cite{pygments:web}.
The \refEnv{tcolorbox} library \mylib{minted} does not work, if the package
-|minted| \cite{poore:minted} does not work.
+\refPkg{minted} \cite{poore:minted} does not work.
\end{marker}
The \refKey{/tcb/listing engine} is set to |minted| by the library.
@@ -340,7 +348,7 @@ This is my
\clearpage
\begin{marker}
-With date of 2018-05-12, the |xparse| \cite{latexproject:xparse} package
+With date of 2018-05-12, the \refPkg{xparse} \cite{latexproject:xparse} package
changed the argument collection process (now part of the \LaTeX\ kernel).
Spaces are ignored which leads to a serious change for listing environments
ending with an optional argument like \verb+O{}+.
@@ -471,7 +479,7 @@ Note that the following code uses \verb+!O{}+ now.
\subsection{Option Keys of the \mylib{listings} Library}\label{sec:speclistingkeys}
\begin{docTcbKey}{listing options}{=\meta{key list}}{no default, initially |style=tcblatex|}
- Sets the options from the package |listings| \cite{hoffmann:listings}
+ Sets the options from the package \refPkg{listings} \cite{hoffmann:listings}
which are used during typesetting of the listing.
For \LaTeX\ listings, there is a predefined |listings| style named |tcblatex|
which can be used.
@@ -487,7 +495,7 @@ and in compiled form. Additionally, we use line numbers here.
\begin{docTcbKey}{no listing options}{}{no value, initially unset}
Abbreviation for |listing options={}|.
- This removes all options for the |listings| package.
+ This removes all options for the \refPkg{listings} package.
This includes the \refEnv{tcblisting} standard style |tcblatex| and the encoding presets.
Use this option, if you want to set the |listings| options outside of \refEnv{tcblisting}, e.\,g.\ globally in
the preamble.
@@ -501,7 +509,7 @@ All \textit{listings} options removed.
\begin{docTcbKey}{listing style}{=\meta{style}}{no default, initially |tcblatex|}
Abbreviation for |listing options={style=...}|. This key sets a \meta{style}
- for the |listings| package, see \cite{hoffmann:listings}.
+ for the \refPkg{listings} package, see \cite{hoffmann:listings}.
For \LaTeX, there is a predefined style named |tcblatex|.
\begin{dispExample}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black,
@@ -515,14 +523,14 @@ Here, we use the predefined style.
\begin{docTcbKey}{listing inputencoding}{=\meta{encoding}}{no default, initially \texttt{\cs inputencodingname}}
Sets the input encoding value for the predefined listing style |tcblatex|
and |tcbdocumentation| from the library \mylib{documentation}.
- The initial value is derived from the package |inputenc| if used.
+ The initial value is derived from the package \refPkg{inputenc} if used.
\end{docTcbKey}
\begin{docTcbKey}{listing remove caption}{\colOpt{=true\textbar false}}{default |true|, initially |true|}
-If set to |true|, some part of the caption building code of the |listings| package
-is silenced to prevent some unwanted interaction with the |hyperref| package resulting
+If set to |true|, some part of the caption building code of the \refPkg{listings} package
+is silenced to prevent some unwanted interaction with the \refPkg{hyperref} package resulting
in additional vertical space.
-If set to |false|, the |listings| package code is kept unchanged.
+If set to |false|, the \refPkg{listings} package code is kept unchanged.
Note that listings outside \refEnv{tcblisting} and
\refCom{tcbinputlisting} are always processed normally.
Typically, a user is not expected to use this key at all.
@@ -530,7 +538,7 @@ Typically, a user is not expected to use this key at all.
\begin{docTcbKey}{every listing line}{=\meta{text}}{no default, initially unset/empty}
Inserts some \meta{text} to the begin of every line of a listing.
-Note that this a hack of the |listings| package code. This may become unusable
+Note that this a hack of the \refPkg{listings} package code. This may become unusable
or superfluous in the future.
\begin{dispExample}
\newtcblisting{commandshell}{colback=black,colupper=white,colframe=yellow!75!black,
@@ -584,14 +592,14 @@ all options from \Vref{sec:speclistingkeys} are applicable.
\begin{docTcbKey}{listing utf8}{=\meta{one-byte-encoding}}{style, no default, initially |latin1|}
Abbreviation for using \refKey{/tcb/listing inputencoding}
- together with UTF-8 support from the package |listingsutf8| \cite{oberdiek:listingsutf8}.
+ together with UTF-8 support from the package \refPkg{listingsutf8} \cite{oberdiek:listingsutf8}.
This option is available only for the library variant \mylib{listingsutf8}.
The \meta{one-byte-encoding} is one of
the applicable encodings from \cite{oberdiek:listingsutf8}, e.\,g.\ |latin1|
which is the default.\par
Be aware that this means restriction to this specific \meta{one-byte-encoding}:
e.\,g.\ |latin1| comprises umlauts and other accented characters, but not
- the Euro sign. If you want to use the |listings| package \emph{and} \flqq real\frqq\
+ the Euro sign. If you want to use the \refPkg{listings} package \emph{and} \flqq real\frqq\
UTF-8 source code, then do \emph{not} use \mylib{listingsutf8} but \mylib{listings}
with
\refKey{/tcb/listing inputencoding}|=utf8|
@@ -623,7 +631,7 @@ Sets a \meta{programming language} known to |Pygments| \cite{pygments:web}.
\begin{docTcbKey}[][doc updated={2021-12-15}]{minted options}{=\meta{key list}}{no default, initially
\linebreak see \refKey{/tcb/default minted options}}
- Sets the options from the package |minted| \cite{poore:minted}
+ Sets the options from the package \refPkg{minted} \cite{poore:minted}
which are used during typesetting of the listing.
Also see \refKey{/tcb/minted options app} and \refKey{/tcb/minted options pre}.
\begin{dispExample}
@@ -652,7 +660,7 @@ Sets a \meta{programming language} known to |Pygments| \cite{pygments:web}.
\clearpage
\begin{docTcbKey}[][doc new={2021-12-15}]{default minted options}{=\meta{key list}}{no default, initially
|tabsize=2,fontsize=\textbackslash small,|\linebreak|breaklines,autogobble|}
- Sets the options from the package |minted| \cite{poore:minted}
+ Sets the options from the package \refPkg{minted} \cite{poore:minted}
which are used during typesetting of the listing, if
\refKey{/tcb/minted options} are \emph{not} used. The intended use is
inside the preamble to change the default behavior.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex
index 085d789a36..be79860d6b 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex
@@ -9,7 +9,7 @@ with |tcolorbox|es.
A \refEnv{tcbposter} is a |tikzpicture| where |tcolorbox|es can be
placed in a column oriented manner using \refCom{posterbox} commands.
-This base concept is more or less copied from the great |baposter| package.
+This base concept is more or less copied from the great \refPkg{baposter} package.
The \mylib{raster} library, see \Fullref{sec:raster}, can produce
similar looking results and may be more appropriate
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty b/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
index 7bc44882c8..df0d900246 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
@@ -36,6 +36,7 @@
\tcbuselibrary{most,documentation}
\tcbifexternal{}{%
+ \IfFileExists{minted2.sty}{\RequirePackage{minted2}}{}% Avoid latexmk problems (endless loop)
\tcbuselibrary{minted}%
\tcbset{listing engine=listings,initialize@reset={listing engine=listings}}%
}
@@ -204,7 +205,7 @@
docCounter,docLength,
meta,marg,
oarg,
- refCom,refEnv,refKey,
+ refCom,refEnv,refKey,refPathOperation,refAux,refAuxcs,refPkg,
sarg,
tcbmakedocSubKey,tcbdocmarginnote,tcbdocnew,tcbdocupdated,
% skins
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
index bbf946c9fc..108e0245d7 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
@@ -7,7 +7,7 @@ The library is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{skins}
\end{dispListing}
-This also loads the package |tikzfill.image|.
+This also loads the package \refPkg[tikzfill]{tikzfill.image}.
In the following, general settings and options of the library are
documented.
@@ -1012,7 +1012,7 @@ The text is centered by default
\begin{docTcbKey}{varwidth boxed title}{\colOpt{=\meta{length}}}{initially unset}
The title text content is captured with a |varwidth| environment with a width of \meta{length}.
-This style needs the |varwidth| package \cite{arseneau:2011a} to be loaded manually.
+This style needs the \refPkg{varwidth} package \cite{arseneau:2011a} to be loaded manually.
By default, the resulting boxed title is somewhat smaller than the main box.
\begin{exdispExample*}{varwidth_boxed_title}{sbs,lefthand ratio=0.66}
% \usepackage{varwidth}
@@ -1035,7 +1035,7 @@ By default, the resulting boxed title is somewhat smaller than the main box.
\begin{docTcbKey}{varwidth boxed title*}{\colOpt{=\meta{length}}}{initially unset}
The title text content is captured with a |varwidth| environment with a width of main box width plus \meta{length}.
-This style needs the |varwidth| package \cite{arseneau:2011a} to be loaded manually.
+This style needs the \refPkg{varwidth} package \cite{arseneau:2011a} to be loaded manually.
By default, the resulting boxed title is somewhat smaller than the main box.
\begin{exdispExample*}{varwidth_boxed_title_star}{sbs,lefthand ratio=0.66}
% \usepackage{varwidth}
@@ -2285,9 +2285,6 @@ Such shadows can be added directly to the frame path using \refKey{/tcb/frame st
\clearpage
\subsection{\tikzname\ Picture Option Keys}\label{subsec:tikzpicture}
-The skin \refSkin{standard} does not support these options,
-but most other skins, e.\,g.\ \refSkin{enhanced}.
-
\begin{docTcbKey}{tikz}{=\meta{tikz option list}}{no default, initially empty}
Adds the given \meta{tikz option list} to the main |tikzpicture| environment
@@ -2721,12 +2718,12 @@ Finishes are intended for special effects like highlights or glosses or text ove
\clearpage
\subsection{Hyper Option Keys}\label{subsec:hyper}
-All options of this section need the package |hyperref| \cite{rahtz:hyperref}
+All options of this section need the package \refPkg{hyperref} \cite{rahtz:hyperref}
to be loaded separately. All these options are implemented as
\refKey{/tcb/finish} and can be disabled by \refKey{/tcb/no finish}.
\begin{marker}
-If the package |hyperref| \cite{rahtz:hyperref} is not loaded or if
+If the package \refPkg{hyperref} \cite{rahtz:hyperref} is not loaded or if
the \refSkin{standard} skin is used, all hyper option are silently ignored.
\end{marker}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
index f1a7be1ff4..fdb5564454 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
@@ -7,7 +7,7 @@ The library is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{theorems}
\end{dispListing}
-This also loads the package |amsmath|.
+This also loads the package \refPkg{amsmath}.
Denis Bitouz\'e, Muzimuzhi, and many others provided very valuable input for this library.
@@ -195,7 +195,7 @@ To switch off the \texttt{nameref} feature permanently, add
\end{dispExample}
\clearpage
-\refCom{tcbhighmath} can be used in symbiosis with the |empheq| package
+\refCom{tcbhighmath} can be used in symbiosis with the \refPkg{empheq} package
which allows to specify own boxing commands to mark multiline formulas.
\begin{dispExample}
@@ -900,8 +900,8 @@ New colored mathematical environments are easily created using
\clearpage
\begin{docTcbKey}{theorem style}{=\meta{name}}{no default, initially |standard|}
Applies a predefined style \meta{name} to the theorem environment. Some of
-the feasible \meta{name} values resemble style names from the packages |theorem|
-and |ntheorem| to give convenient access to known patterns.
+the feasible \meta{name} values resemble style names from the packages \refPkg{theorem}
+and \refPkg{ntheorem} to give convenient access to known patterns.
\begin{marker}
The styles alter \refKey{/tcb/separator sign}, \refKey{/tcb/description delimiters},
\refKey{/tcb/terminator sign}, and more. Therefore, one should apply such
@@ -1018,7 +1018,7 @@ identically colored.
All following environments are numbered with a common counter, but this
can be changed easily. Here, the counter output is supplemented by
the subsection number.
-Further, the |cleveref| package \cite{cubitt:2018a} is used for clever
+Further, the \refPkg{cleveref} package \cite{cubitt:2018a} is used for clever
references.
\inputpreamblelisting{G}
@@ -1208,8 +1208,8 @@ Let's try a more conservative approach:
Instead of creating theorem environments with the methods described before,
environments from other packages can be boxed with a |tcolorbox|.
-Environments may be created e.g. by methods from the |theorem| package or
-the |amsthm| package. \refCom{tcolorboxenvironment} can be used to put a box
+Environments may be created e.g. by methods from the \refPkg{theorem} package or
+the \refPkg{amsthm} package. \refCom{tcolorboxenvironment} can be used to put a box
around these environments.
\inputpreamblelisting{K}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
index 280d91bd56..cbe8dbaba6 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
@@ -7,14 +7,14 @@ The library is loaded by a package option or inside the preamble by:
\begin{dispListing}
\tcbuselibrary{xparse}
\end{dispListing}
-This loads the package |xparse| \cite{latexproject:xparse}.
+This loads the package \refPkg{xparse} \cite{latexproject:xparse}.
Note that up to version 5.0.2 this library contained code which
-needed the |xparse| package. Since nowadays this package has become
+needed the \refPkg{xparse} package. Since nowadays this package has become
basically a part of the \LaTeX\ kernel, the code of the library was
migrated to other parts of the |tcolorbox| package. So, the remaining
library is nearly a stub which only loads |xparse|.
Instead of including the |xparse| library, it is recommended to include the
-|xparse| package directly, \textbf{if really needed} (the \LaTeX\ kernel contains
+\refPkg{xparse} package directly, \textbf{if really needed} (the \LaTeX\ kernel contains
essentially everything needed). The library is kept for compatibility.
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.pdf b/macros/latex/contrib/tcolorbox/tcolorbox.pdf
index 3054aff591..54a761e49b 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.sty b/macros/latex/contrib/tcolorbox/tcolorbox.sty
index 23f0d51569..29c209ece6 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.sty
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcolorbox.sty: Text color boxes
%%
%% -------------------------------------------------------------------------------------------
@@ -18,8 +18,8 @@
%% This work consists of all files listed in README
%%
\NeedsTeXFormat{LaTeX2e}[2023-11-01]
-\ProvidesPackage{tcolorbox}[2024/07/10 version 6.3.0 text color boxes]
-\def\tcb@version{6.3.0}
+\ProvidesPackage{tcolorbox}[2024/09/27 version 6.4.0 text color boxes]
+\def\tcb@version{6.4.0}
%\RequirePackage{pgf}[2008/01/15]
\RequirePackage{tikz}[2023/01/15]
@@ -73,7 +73,9 @@
\def\tcb@info#1{\PackageInfo{tcolorbox}{#1}}
\def\tcb@warning#1{\PackageWarning{tcolorbox}{#1}}
\def\tcb@error#1#2{\PackageError{tcolorbox}{#1}{#2}}
-
+\def\tcb@warning@deprecatedkey#1{%
+ \tcb@warning{`\pgfkeyscurrentkey' key is deprecated hence ignored since #1.}%
+}
% key management
\pgfkeys{/tcb/.is family}
@@ -563,7 +565,6 @@
toggle left and right/evenpage/.code={\let\tcb@lrtoggle=\tcb@lrtoggle@evenpage\tcbset{check odd page}},
toggle left and right/forced/.code={\let\tcb@lrtoggle=\tcb@lrtoggle@forced},
toggle left and right/.default=evenpage,
- graphical environment/.style=,% deprecated
%
frame engine/.is choice,
frame engine/standard/.style={frame code=\tcb@drawframe@standard},
@@ -1103,7 +1104,7 @@
% counter for float
-\AtBeginDocument{%
+\AtBeginDocument[tcolorbox]{%
\@ifundefined{c@float@type}%
{\edef\ftype@tcbfloat{\ifx\c@figure\@undefined 1\else 4\fi}}%
{\edef\ftype@tcbfloat{\the\c@float@type}%
@@ -1594,7 +1595,7 @@
\fi%
}{%
\csxdef{tcb@ehg@current@\tcb@ehgid}{#1}%
- \begingroup\edef\x{\endgroup\noexpand\AtEndDocument{\noexpand\tcb@saveehg{\tcb@ehgid}}}\x%
+ \begingroup\edef\x{\endgroup\noexpand\AtEndDocument[tcolorbox]{\noexpand\tcb@saveehg{\tcb@ehgid}}}\x%
}%
}
@@ -2035,6 +2036,8 @@
\ExplSyntaxOn
+\exp_args_generate:n {nNo}
+
\NewSocket{tagsupport/tcb/drawing/begin}{0}
\NewSocket{tagsupport/tcb/drawing/end}{0}
\NewSocketPlug{tagsupport/tcb/drawing/begin}{suspend}
@@ -2047,7 +2050,7 @@
\NewDocumentEnvironment{ tcb@drawing }{ }
{
\use:c{ tcb@before@\tcb@split@state }
- \exp_last_unbraced:NnNo \begin{tikzpicture}[\tcb@tikz@option@hook]
+ \exp_args:NnNo \begin{tikzpicture}[\tcb@tikz@option@hook]
\UseTaggingSocket{tcb/drawing/begin}
\SuspendTagging{tcb/drawing}
\tcb@tikz@begin@hook
@@ -2557,28 +2560,36 @@
\__tcobox_new_TotalTCBox:w \ProvideDocumentCommand
}
+\NewDocumentCommand \tcolorboxenvironment { m +m }
+ {
+ \hook_gput_code:nnn{ env/#1/before }{ tcolorbox }
+ {
+ \begin{tcolorbox}
+ [{
+ savedelimiter = {#1},
+ #2,
+ wrap@environment,
+ code = \def\tcb@end@tcolorboxenvironment{\end{tcolorbox}}
+ }]
+ }
+ \hook_gput_code:nnn{ env/#1/after }{ tcolorbox }
+ {
+ \tcb@end@tcolorboxenvironment
+ }
+ }
-\ExplSyntaxOff
-
-
-\newcommand{\tcolorboxenvironment}[2]{%
- \AddToHook{env/#1/before}{%
- \begin{tcolorbox}[{savedelimiter={#1},#2,wrap@environment,%
- code={\def\tcb@end@tcolorboxenvironment{\end{tcolorbox}}}}]%
- }%
- \AddToHook{env/#1/after}{%
- \tcb@end@tcolorboxenvironment%
- }%
-}
+\DeclareTotalTCBox{ \tcboxverb }{ O{} v }{ verbatim,#1 }{ #2 }
-\DeclareTotalTCBox{\tcboxverb}{ O{} v }{verbatim,#1}{#2}
+\DeclareTotalTColorBox{ \tcbsidebyside }{ +O{} +m +m }
+ {
+ code = \long\def\tcb@sbs@text@left{#2}\long\def\tcb@sbs@text@right{#3},
+ #1,
+ sidebyside,
+ sidebyside@switch,
+ sidebyside@adapt@process
+ }{ \tcb@sbs@content }
-\DeclareTotalTColorBox{\tcbsidebyside}{ +O{} +m +m }{%
- code={\long\def\tcb@sbs@text@left{#2}\long\def\tcb@sbs@text@right{#3}},%
- #1,%
- sidebyside,%
- sidebyside@switch,sidebyside@adapt@process%
-}{\tcb@sbs@content}
+\ExplSyntaxOff
\def\tcb@addcontentsline#1#2{%
@@ -2919,3 +2930,8 @@
\ProcessOptions*
\begingroup\edef\x{\endgroup\noexpand\tcbuselibrary{\tcb@optionlist}}\x
+
+% deprecated
+\tcbset{
+ graphical environment/.code = {\tcb@warning@deprecatedkey{v6.3.0 (2024/07/10)}},
+}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.tex b/macros/latex/contrib/tcolorbox/tcolorbox.tex
index c60eb4acfa..ae5352a384 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.tex
@@ -1,5 +1,5 @@
% \LaTeX-Main\
-%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
+%% The LaTeX package tcolorbox - version 6.4.0 (2024/09/27)
%% tcolorbox.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
@@ -63,8 +63,8 @@
\setlength{\bibitemsep}{\smallskipamount}
\addbibresource{tcolorbox.doc.bib}
-\def\version{6.3.0}%
-\def\datum{2024/07/10}%
+\def\version{6.4.0}%
+\def\datum{2024/09/27}%
\makeindex
\hypersetup{
@@ -80,7 +80,7 @@
%\geometry{showframe}
%\tcbset{draftmode}
\tcbset{/tcb/external/-}% for final run
-%\includeonly{tcolorbox.doc.coreoptions}
+%\includeonly{tcolorbox.doc.listings}
%\hypersetup{colorlinks=false}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/telprint/README.md b/macros/latex/contrib/telprint/README.md
new file mode 100644
index 0000000000..de7d729ad6
--- /dev/null
+++ b/macros/latex/contrib/telprint/README.md
@@ -0,0 +1,13 @@
+# telprint package for LaTeX
+
+Version: 2024-07-26 v1.12
+
+Format German phone numbers
+
+## Copyright (C)
+* 1996, 1997, 2004-2008 Heiko Oberdiek
+* 2016-2024 Oberdiek Package Support Group
+
+
+## License
+LATEX Project Public License, version 1.3c or later.
diff --git a/macros/latex/contrib/oberdiek/telprint.dtx b/macros/latex/contrib/telprint/telprint.dtx
index 57152c6651..74bb22ea8a 100644
--- a/macros/latex/contrib/oberdiek/telprint.dtx
+++ b/macros/latex/contrib/telprint/telprint.dtx
@@ -1,13 +1,13 @@
% \iffalse meta-comment
%
% File: telprint.dtx
-% Version: 2016/05/16 v1.11
+% Version: 2024-07-26 v1.12
% Info: Format German phone numbers
%
% Copyright (C)
% 1996, 1997, 2004-2008 Heiko Oberdiek
-% 2016-2019 Oberdiek Package Support Group
-% https://github.com/ho-tex/oberdiek/issues
+% 2016-2024 Oberdiek Package Support Group
+% https://github.com/ho-tex/telprint/issues
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -23,7 +23,7 @@
%
% The Current Maintainers of this work are
% Heiko Oberdiek and the Oberdiek Package Support Group
-% https://github.com/ho-tex/oberdiek/issues
+% https://github.com/ho-tex/telprint/issues
%
% The Base Interpreter refers to any `TeX-Format',
% because some files are installed in TDS:tex/generic//.
@@ -34,8 +34,8 @@
% telprint-test1.tex.
%
% Distribution:
-% CTAN:macros/latex/contrib/oberdiek/telprint.dtx
-% CTAN:macros/latex/contrib/oberdiek/telprint.pdf
+% CTAN:macros/latex/contrib/telprint/telprint.dtx
+% CTAN:macros/latex/contrib/telprint/telprint.pdf
%
% Unpacking:
% (a) If telprint.ins is present:
@@ -56,7 +56,7 @@
% use A4 as paper format:
% \PassOptionsToClass{a4paper}{article}
%
-% Programm calls to get the documentation (example):
+% Program calls to get the documentation (example):
% pdflatex telprint.dtx
% makeindex -s gind.ist telprint.idx
% pdflatex telprint.dtx
@@ -64,9 +64,9 @@
% pdflatex telprint.dtx
%
% Installation:
-% TDS:tex/generic/oberdiek/telprint.sty
-% TDS:doc/latex/oberdiek/telprint.pdf
-% TDS:source/latex/oberdiek/telprint.dtx
+% TDS:tex/generic/telprint/telprint.sty
+% TDS:doc/latex/telprint/telprint.pdf
+% TDS:source/latex/telprint/telprint.dtx
%
%<*ignore>
\begingroup
@@ -83,7 +83,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: telprint 2016/05/16 v1.11 Format German phone numbers (HO)}
+\Msg{* Package: telprint 2024-07-26 v1.12 Format German phone numbers (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -95,11 +95,11 @@
This is a generated file.
Project: telprint
-Version: 2016/05/16 v1.11
+Version: 2024-07-26 v1.12
Copyright (C)
1996, 1997, 2004-2008 Heiko Oberdiek
- 2016-2019 Oberdiek Package Support Group
+ 2016-2024 Oberdiek Package Support Group
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -115,7 +115,7 @@ This work has the LPPL maintenance status "maintained".
The Current Maintainers of this work are
Heiko Oberdiek and the Oberdiek Package Support Group
-https://github.com/ho-tex/oberdiek/issues
+https://github.com/ho-tex/telprint/issues
The Base Interpreter refers to any `TeX-Format',
@@ -132,9 +132,9 @@ and the derived files
\generate{%
\file{telprint.ins}{\from{telprint.dtx}{install}}%
\file{telprint.drv}{\from{telprint.dtx}{driver}}%
- \usedir{tex/generic/oberdiek}%
+ \usedir{tex/generic/telprint}%
\file{telprint.sty}{\from{telprint.dtx}{package}}%
-% \usedir{doc/latex/oberdiek/test}%
+% \usedir{doc/latex/telprint/test}%
% \file{telprint-test1.tex}{\from{telprint.dtx}{test1}}%
}
@@ -162,7 +162,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{telprint.drv}%
- [2016/05/16 v1.11 Format German phone numbers (HO)]%
+ [2024-07-26 v1.12 Format German phone numbers (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\usepackage[ngerman,english]{babel}
@@ -177,9 +177,9 @@ and the derived files
% \GetFileInfo{telprint.drv}
%
% \title{The \xpackage{telprint} package}
-% \date{2016/05/16 v1.11}
+% \date{2024-07-26 v1.12}
% \author{Heiko Oberdiek\thanks
-% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}}
+% {Please report any issues at \url{https://github.com/ho-tex/telprint/issues}}}
%
% \maketitle
%
@@ -397,7 +397,7 @@ and the derived files
\fi
\expandafter\x\csname ver@telprint.sty\endcsname
\ProvidesPackage{telprint}%
- [2016/05/16 v1.11 Format German phone numbers (HO)]%
+ [2024-07-26 v1.12 Format German phone numbers (HO)]%
% \end{macrocode}
%
% \subsection{Catcodes}
@@ -467,7 +467,11 @@ and the derived files
% \begin{macro}{\telspace}
% \begin{macrocode}
\DeclareRobustCommand*{\telspace}[1]{\def\TELspace{#1}}
-\telspace{{}$\,${}}
+\ifcsname LaTeXReleaseInfo\endcsname
+ \telspace{\,}
+\else
+ \telspace{{}$\,${}}
+\fi
% \end{macrocode}
% \end{macro}
% \begin{macro}{\telhyphen}
@@ -615,30 +619,10 @@ and the derived files
% \paragraph{Package.} This package is available on
% CTAN\footnote{\CTANpkg{telprint}}:
% \begin{description}
-% \item[\CTAN{macros/latex/contrib/oberdiek/telprint.dtx}] The source file.
-% \item[\CTAN{macros/latex/contrib/oberdiek/telprint.pdf}] Documentation.
-% \end{description}
-%
-%
-% \paragraph{Bundle.} All the packages of the bundle `oberdiek'
-% are also available in a TDS compliant ZIP archive. There
-% the packages are already unpacked and the documentation files
-% are generated. The files and directories obey the TDS standard.
-% \begin{description}
-% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}]
+% \item[\CTAN{macros/latex/contrib/telprint/telprint.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/telprint/telprint.pdf}] Documentation.
% \end{description}
-% \emph{TDS} refers to the standard ``A Directory Structure
-% for \TeX\ Files'' (\CTANpkg{tds}). Directories
-% with \xfile{texmf} in their name are usually organized this way.
%
-% \subsection{Bundle installation}
-%
-% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the
-% TDS tree (also known as \xfile{texmf} tree) of your choice.
-% Example (linux):
-% \begin{quote}
-% |unzip oberdiek.tds.zip -d ~/texmf|
-% \end{quote}
%
% \subsection{Package installation}
%
@@ -655,9 +639,9 @@ and the derived files
% \begin{quote}
% \def\t{^^A
% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
-% telprint.sty & tex/generic/oberdiek/telprint.sty\\
-% telprint.pdf & doc/latex/oberdiek/telprint.pdf\\
-% telprint.dtx & source/latex/oberdiek/telprint.dtx\\
+% telprint.sty & tex/generic/telprint/telprint.sty\\
+% telprint.pdf & doc/latex/telprint/telprint.pdf\\
+% telprint.dtx & source/latex/telprint/telprint.dtx\\
% \end{tabular}^^A
% }^^A
% \sbox0{\t}^^A
@@ -836,6 +820,9 @@ and the derived files
% \item
% Documentation updates.
% \end{Version}
+% \begin{Version}{2024-07-26 v1.12}
+% \item Avoid math in \cs{telspace} for better tagging support.
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/macros/latex/contrib/oberdiek/telprint.pdf b/macros/latex/contrib/telprint/telprint.pdf
index f8027491c8..49a2968f35 100644
--- a/macros/latex/contrib/oberdiek/telprint.pdf
+++ b/macros/latex/contrib/telprint/telprint.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/pgfornament/README.md b/macros/latex/contrib/tkz/pgfornament/README.md
index 737ee2acc2..901d6554cc 100644
--- a/macros/latex/contrib/tkz/pgfornament/README.md
+++ b/macros/latex/contrib/tkz/pgfornament/README.md
@@ -1,6 +1,6 @@
# pgfornament – Drawing of Vectorian ornaments with PGF/TikZ
-Release 1.2 2020/05/28
+Release 1.3 2024/08/14
## Description
@@ -55,6 +55,9 @@ your LaTeX document.
Documentations for `pgfornament` and `tikzrput` are available on CTAN and in your TeX distribution.
## History
+
+- v 1.3 Correction of bug (spurious space) by Tibor Tómács and correction of the documentation.
+
- v 1.2 Correction of bug (spurious space) by LianTze Lim.
- v 1.00 Add the Han ornanments and some new macros. Add some examples to the documentation. Thanks to Pablo Gonzáles L to help me with "Git".
diff --git a/macros/latex/contrib/tkz/pgfornament/doc/ornaments.pdf b/macros/latex/contrib/tkz/pgfornament/doc/ornaments.pdf
index 6486f4e253..46f3fe8fef 100644
--- a/macros/latex/contrib/tkz/pgfornament/doc/ornaments.pdf
+++ b/macros/latex/contrib/tkz/pgfornament/doc/ornaments.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/pgfornament/doc/ornaments.tex b/macros/latex/contrib/tkz/pgfornament/doc/ornaments.tex
index c52dd63e91..2a7f4b0fc1 100644
--- a/macros/latex/contrib/tkz/pgfornament/doc/ornaments.tex
+++ b/macros/latex/contrib/tkz/pgfornament/doc/ornaments.tex
@@ -8,7 +8,7 @@
% of this license or (at your option) any later version and/or
% 2. under the GNU Public License.
%---------%---------%---------%---------%---------%---------%---------%---------
-% Version 1.2 2020/0 5/26
+% Version 1.3 2024/08/14
\RequirePackage{luatex85}
\RequirePackage{silence}
\WarningsOff[latex]
@@ -137,7 +137,7 @@ urlcolor=orange}
\bigskip
-\noindent\pgfornament[width=0.75 cm]{152}\ (Version 1.2 2020/05/26)
+\noindent\pgfornament[width=0.75 cm]{152}\ (Version 1.3 2024/08/14)
\begin{abstract}
This document describes the \LaTeX\ package \emph{\docpkg{pgfornament}} and presents the syntax and parameters of the macro "pgfornament".
diff --git a/macros/latex/contrib/tkz/pgfornament/doc/usefulcommands.tex b/macros/latex/contrib/tkz/pgfornament/doc/usefulcommands.tex
index 4af2421923..4a54f9ea45 100644
--- a/macros/latex/contrib/tkz/pgfornament/doc/usefulcommands.tex
+++ b/macros/latex/contrib/tkz/pgfornament/doc/usefulcommands.tex
@@ -5,11 +5,11 @@
\setlength{\@tempdimb}{\paperwidth-\@tempdima-1cm}%
\setlength{\@tempdimc}{\paperheight-\@tempdima}%
\put(\LenToUnit{\@tempdima},\LenToUnit{\@tempdimc}){%
- \pgfornament[color=Maroon,anchor=north west,width=1cm]{39}}
-\put(\LenToUnit{\@tempdima},\LenToUnit{\@tempdima}){%
- \pgfornament[color=Maroon,anchor=south west,width=1cm,symmetry=h]{39}}
+ \pgfornament[color=Maroon,anchor=north west,width=1cm]{39}}
\put(\LenToUnit{\@tempdimb},\LenToUnit{\@tempdimc}){%
\pgfornament[color=Maroon,anchor=north east,width=1cm,symmetry=v]{39}}
+\put(\LenToUnit{\@tempdima},\LenToUnit{\@tempdima}){%
+ \pgfornament[color=Maroon,anchor=south west,width=1cm,symmetry=h]{39}}
\put(\LenToUnit{\@tempdimb},\LenToUnit{\@tempdima}){%
\pgfornament[color=Maroon,anchor=south east,width=1cm,symmetry=c]{39}}
\endgroup
diff --git a/macros/latex/contrib/tkz/pgfornament/latex/pgfornament.sty b/macros/latex/contrib/tkz/pgfornament/latex/pgfornament.sty
index 27406e8bbf..fad27cbb74 100644
--- a/macros/latex/contrib/tkz/pgfornament/latex/pgfornament.sty
+++ b/macros/latex/contrib/tkz/pgfornament/latex/pgfornament.sty
@@ -17,7 +17,7 @@
% Inspired from psvectorian P Fradin H Voss
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{tikz,pgfopts}
-\ProvidesPackage{pgfornament}[2020/05/26 v1.2 vector ornaments]
+\ProvidesPackage{pgfornament}[2024/08/14 v1.3 vector ornaments]
\gdef\pgfOrnamentsObject{pgflibraryvectorian.code.tex}
\gdef\OrnamentsFamily{vectorian}
\pgfkeys{%
@@ -138,7 +138,7 @@ baseline={([yshift=\pgfornamentydelta]current bounding box.\pgfornamentanchor)},
\pgftransformscale{\pgfornamentscale}%
\pgf@@ornament{#2}%
\end{tikzpicture}%
-\tikzset{pgfornamentstyle/.style={cm={1,0,0,1,(0,0)}}}
+\tikzset{pgfornamentstyle/.style={cm={1,0,0,1,(0,0)}}}%
}% end pgfornament
\gdef\ornamenttopos{.5}
@@ -180,8 +180,8 @@ baseline={([yshift=\pgfornamentydelta]current bounding box.\pgfornamentanchor)},
\pgfextractx{\pgf@x}{\pgfpointanchor{#2}{#3 west}}
\pgf@xb=\pgf@x
\advance\pgf@xb by -\pgf@xa
-\node[inner sep=0pt] at ($(#1.#3 east)!.5!(#2.#3 west)$) {\pgfornament[width=\pgf@xb]{#4}} ;
-}
+\node[inner sep=0pt] at ($(#1.#3 east)!.5!(#2.#3 west)$) {\pgfornament[width=\pgf@xb]{#4}};
+}%
\def\pgfornamentvline#1#2#3#4{%
\pgfextracty{\pgf@y}{\pgfpointanchor{#1}{south #3}}
\pgf@ya=\pgf@y
@@ -203,7 +203,7 @@ baseline={([yshift=\pgfornamentydelta]current bounding box.\pgfornamentanchor)},
\pgfmathsetmacro{#1}{atan2(\pgf@x,\pgf@y)}%
}%
\makeatother
-\newcommand{\resetpgfornamentstyle}{\tikzset{pgfornamentstyle/.style={}}}
+\newcommand{\resetpgfornamentstyle}{\tikzset{pgfornamentstyle/.style={}}}%
% 2020 Changing vector objects
\def\newpgfornamentfamily#1{%
@@ -219,11 +219,10 @@ baseline={([yshift=\pgfornamentydelta]current bounding box.\pgfornamentanchor)},
/ornamentline/.search also={/tikz}}
\def\pgfornamentline{\pgfutil@ifnextchar[{\pgf@ornamentline}{\pgf@ornamentline[]}}%
\def\pgf@ornamentline[#1]#2#3#4#5{%
-
\pgfqkeys{/ornamentline}{#1}%
\pgfmathsetmacro\nbo{#4}
\path (#2) -- (#3) foreach \i in {0,...,\nbo} {coordinate[pos=\i/\nbo] (p\i)}
[color=\ornamentcolor] foreach \i [count=\j] in {0,...,\number\numexpr\nbo-1} { (p\i) to [ornament=#5] (p\j)};
-}
+}%
\makeatother
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-locale-main-english.cfg.sty b/macros/latex/contrib/tutodoc/code/tutodoc-locale-main-english.cfg.sty
index 339f10240c..e72b66100a 100644
--- a/macros/latex/contrib/tutodoc/code/tutodoc-locale-main-english.cfg.sty
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-locale-main-english.cfg.sty
@@ -4,13 +4,13 @@
\NewDocumentCommand{\tutodoc@trans@latex@show@start}{}{Start ~ of ~ the ~ real ~ output}
\NewDocumentCommand{\tutodoc@trans@latex@show@end}{}{End ~ of ~ the ~ real ~ output}
\NewDocumentCommand{\tutodoc@trans@exa@title}{}{Example}
-\NewDocumentCommand{\tutodoc@trans@rmk@title}{}{Remark}
+\NewDocumentCommand{\tutodoc@trans@rem@title}{}{Remark}
\NewDocumentCommand{\tutodoc@trans@note@title}{}{Note}
\NewDocumentCommand{\tutodoc@trans@tip@title}{}{Tip}
-\NewDocumentCommand{\tutodoc@trans@important@title}{}{Important}
-\NewDocumentCommand{\tutodoc@trans@caution@title}{}{Caution}
+\NewDocumentCommand{\tutodoc@trans@imp@title}{}{Important}
+\NewDocumentCommand{\tutodoc@trans@caut@title}{}{Caution}
\NewDocumentCommand{\tutodoc@trans@warn@title}{}{Warning}
-\NewDocumentCommand{\tutodoc@trans@chges@pb}{}{Problem}
+\NewDocumentCommand{\tutodoc@trans@chges@prob}{}{Problem}
\NewDocumentCommand{\tutodoc@trans@chges@break}{}{Break}
\NewDocumentCommand{\tutodoc@trans@chges@fix}{}{Fix}
\NewDocumentCommand{\tutodoc@trans@chges@new}{}{New}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc-locale-main-french.cfg.sty b/macros/latex/contrib/tutodoc/code/tutodoc-locale-main-french.cfg.sty
index c639e1e9e0..49ad24c363 100644
--- a/macros/latex/contrib/tutodoc/code/tutodoc-locale-main-french.cfg.sty
+++ b/macros/latex/contrib/tutodoc/code/tutodoc-locale-main-french.cfg.sty
@@ -4,13 +4,13 @@
\NewDocumentCommand{\tutodoc@trans@latex@show@start}{}{Début ~ du ~ rendu ~ réel}
\NewDocumentCommand{\tutodoc@trans@latex@show@end}{}{Fin ~ du ~ rendu ~ réel}
\NewDocumentCommand{\tutodoc@trans@exa@title}{}{Exemple}
-\NewDocumentCommand{\tutodoc@trans@rmk@title}{}{Remarque}
+\NewDocumentCommand{\tutodoc@trans@rem@title}{}{Remarque}
\NewDocumentCommand{\tutodoc@trans@note@title}{}{Note}
\NewDocumentCommand{\tutodoc@trans@tip@title}{}{Astuce}
-\NewDocumentCommand{\tutodoc@trans@important@title}{}{Important}
-\NewDocumentCommand{\tutodoc@trans@caution@title}{}{Caution}
-\NewDocumentCommand{\tutodoc@trans@warn@title}{}{Danger}
-\NewDocumentCommand{\tutodoc@trans@chges@pb}{}{Problème}
+\NewDocumentCommand{\tutodoc@trans@imp@title}{}{Important}
+\NewDocumentCommand{\tutodoc@trans@caut@title}{}{Mise ~ en ~ garde}
+\NewDocumentCommand{\tutodoc@trans@warn@title}{}{Avertissement}
+\NewDocumentCommand{\tutodoc@trans@chges@prob}{}{Problème}
\NewDocumentCommand{\tutodoc@trans@chges@break}{}{Bifurcation}
\NewDocumentCommand{\tutodoc@trans@chges@fix}{}{Réparation}
\NewDocumentCommand{\tutodoc@trans@chges@new}{}{Nouveau}
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc.sty b/macros/latex/contrib/tutodoc/code/tutodoc.sty
index 5e0ea7a0fb..13040c1ff5 100644
--- a/macros/latex/contrib/tutodoc/code/tutodoc.sty
+++ b/macros/latex/contrib/tutodoc/code/tutodoc.sty
@@ -1,17 +1,22 @@
-% ------------------------------------------------------- %
-% - This is file `tutodoc.sty' generated automatically. - %
-% - - %
-% - Copyright (C) 2023-2024 by Christophe BAL - %
-% - - %
-% - This file may be distributed and/or modified under - %
-% - the conditions of the GNU 3 License. - %
-% ------------------------------------------------------- %
+% ********************************************************* %
+% ** This is file `tutodoc.sty' generated automatically. ** %
+% ** ** %
+% ** Copyright (C) 2023-2024 by Christophe BAL ** %
+% ** ** %
+% ** This file may be distributed and/or modified under ** %
+% ** the conditions of the GNU 3 License. ** %
+% ********************************************************* %
\ProvidesExplPackage
- {tutodoc}
- {2024-01-06} % Creation: 2023-11-29
- {1.1.0}
- {This package proposes tools for writing "human friendly" documentations of LaTeX packages.}
+ {tutodoc}
+ {2024-09-28} % Creation: 2023-11-29
+ {1.4.0}
+ {This package proposes tools for writing "human friendly" documentations of LaTeX packages.}
+
+
+% =================== %
+% == PACKAGES USED == %
+% =================== %
\RequirePackage[
top = 2.5cm,
@@ -21,45 +26,90 @@
marginparwidth = 2cm,
marginparsep = 2mm,
heightrounded
-]{geometry}[2020-01-02]
+]{geometry}%
+ [2020-01-02]
+
+\RequirePackage[raggedright]%
+ {titlesec}%
+ [2021/07/05]
-\RequirePackage[raggedright]{titlesec}[2021/07/05]
\RequirePackage{tocbasic}
-\RequirePackage{xcolor}[2022/06/12]
-\RequirePackage{hyperref}[2023-02-07]
+\RequirePackage{xcolor}%
+ [2022/06/12]
+
+\RequirePackage{hyperref}%
+ [2023-02-07]
% We delegate the management of quoting to the `csquotes' package,
% which takes care of the linguistic parameters.
-\RequirePackage{csquotes}[2022-09-14]
+\RequirePackage{csquotes}%
+ [2022-09-14]
+
+
+\RequirePackage{fontawesome5}%
+ [2022-05-02]
+
+\RequirePackage{keytheorems}%
+ [2024/09/19]
+
+\RequirePackage[svgnames]%
+ {xcolor}%
+ [2023/11/15]
+
+\RequirePackage{tcolorbox}%
+ [2024/07/10]
+
+\tcbuselibrary{breakable,
+ skins}
+
+\RequirePackage{clrstrip}%
+ [2021-08-28]
-\RequirePackage{amsthm}[2017/09]
+%\RequirePackage[highlightmode = immediate]% Too slow!
+% {minted}%
+% [2024/09/22]
-\RequirePackage{clrstrip}[2021-08-28]
+\RequirePackage{minted2}% Temporary patch.
+\RequirePackage{tcolorbox}%
+ [2024/07/10]
-\RequirePackage{tcolorbox}[2023/06/19]
\tcbuselibrary{minted, breakable, skins}
-\RequirePackage{marginnote}[2023-09-07]
+\RequirePackage{fontawesome5}%
+ [2022-05-02]
+\RequirePackage{marginnote}%
+ [2023-09-07]
+
+% ======================= %
+% == AVAILABLE OPTIONS == %
+% ======================= %
+
+% ----------------- %
% -- LOCALE LANG -- %
+% ----------------- %
\ExplSyntaxOn
+% ::::::::::::::::::: %
% :: SOME MESSAGES :: %
+% ::::::::::::::::::: %
\msg_set:nnnn { tdoc } { package-option-lang-unknown }
{ Unknown ~ language. }
{ See ~ the ~ documentation ~ for ~ the ~ supported ~ languages. }
+% ::::::::::::::::::::::: %
% :: SETTING SOME KEYS :: %
+% ::::::::::::::::::::::: %
\str_new:N \l_tdoc_opt_lang_str
@@ -86,7 +136,13 @@
\ExplSyntaxOff
+% =============== %
+% == MAIN CODE == %
+% =============== %
+
+% --------------------- %
% -- LOCALE SETTINGS -- %
+% --------------------- %
\NewDocumentCommand{\tutodoc@colon}{}{:}
@@ -104,12 +160,16 @@
\ExplSyntaxOff
+% ---------------------- %
% -- GENERAL SETTINGS -- %
+% ---------------------- %
\setlength{\parindent}{0cm}
+% ----------- %
% -- LINKS -- %
+% ----------- %
\hypersetup{
colorlinks,
@@ -120,7 +180,9 @@
}
+% --------------- %
% -- TOC & Co. -- %
+% --------------- %
\ifcsundef{chapter}%
{}%
@@ -162,7 +224,49 @@
\DeclareTOCStyleEntry[indentfollows = chapter]{tocline}{section}
+% --------------------------- %
+% -- COLOR TRANSFORMATIONS -- %
+% --------------------------- %
+
+%%%
+% prototype::
+% #1 : the amount of color relative to black.
+% #2 : one color following the ''xcolor'' format.
+%
+% :return: a "darker" version of the color ''#1''.
+%%%
+\NewExpandableDocumentCommand{\tdocdarkcolor}{O{50}m}{#2!#1!black}
+
+
+%%%
+% prototype::
+% #1 : the transparency rate.
+% #2 : one color following the ''xcolor'' format.
+%
+% :return: a "transparent" version of the color `#1`.
+%%%
+\NewExpandableDocumentCommand{\tdoclightcolor}{O{5}m}{#2!#1}
+
+
+% ----------- %
+% -- ICONS -- %
+% ----------- %
+
+%%%
+% prototype::
+% #1 : one material that expects to be an icon command from the
+% ''fontawsome5'' \pack.
+%
+% :return: the icon followed by a small insecable space.
+%%%
+\NewDocumentCommand{\tdocicon}{m}{%
+ #1\kern.45em%
+}
+
+
+% ------------- %
% -- QUOTING -- %
+% ------------- %
%%%
% prototype::
@@ -175,7 +279,9 @@
}
+% ------------------------------ %
% -- EXPLAINING ENGLISH NAMES -- %
+% ------------------------------ %
%%%
% prototype::
@@ -204,119 +310,134 @@
}
-% -- FOCUS ON SOME CONTENT -- %
+% ----------------------------------- %
+% -- SOBER HIGHLIGHTING OF CONTENT -- %
+% ----------------------------------- %
-% :: EXAMPLE - HIDDEN VERSIONS :: %
+% :::::::::::::::::::::: %
+% :: EXAMPLE - REMARK :: %
+% :::::::::::::::::::::: %
-%%%
-% See the \doc of the macro ''\newtheorem'' from the package ''amsthm''
-% to have \infos about the environment ''@@tdocexa@nb''.
-%%%
-\newtheorem{@@tdocexa@nb}{\tutodoc@trans@exa@title}%
- [subsubsection]
+\ExplSyntaxOn
%%%
-% We redefine the counter associated to the environment ''@@tdocexa@nb''
-% to obtain only one single arabic number.
+% We use a ''seq'' variable to factorize the code just after.
%%%
-\renewcommand{\the@@tdocexa@nb}{\arabic{@@tdocexa@nb}}
+\seq_new:N \__g_tutodoc_focus_sober_seq
+\seq_set_from_clist:Nn \__g_tutodoc_focus_sober_seq {
+ exa,
+ rem
+}
%%%
-% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm''
-% to have \infos about the environment ''@@tdocexa@no@nb''.
-%%%
-\newtheorem*{@@tdocexa@no@nb}{\tutodoc@trans@exa@title}
-
-
-% :: EXAMPLE - PUBLIC VERSION :: %
-
-\ExplSyntaxOn
-
-\msg_set:nnnn { tdoc } { env-tdocexa-unknown-option }
- { Unknown ~ rafters ~ option. }
- { See ~ the ~ documentation ~ for ~ the ~ supported ~ options. }
-
-\NewDocumentEnvironment{tdocexa}{D<>{nb} O{}}{
- \str_case:nnF { #1 } {
- { nb } {
- \begin{@@tdocexa@nb}[#2]
- }
- { nonb } {
- \begin{@@tdocexa@no@nb}[#2]
- }
- }{
- \msg_error:nn { tdoc } { env-tdocexa-unknown-option }
+% prototype::
+% :action: looping over ''\__g_tutodoc_focus_sober_seq'' to build new
+% numbered theorems sharing the same section level counter.
+% To achieve that, we use the ''\newkeytheorem'' macro from
+% the ''keytheorems'' \pack.
+%%%
+\seq_map_inline:Nn \__g_tutodoc_focus_sober_seq {
+ \str_if_eq:nnTF { #1 } { exa } {
+ \newkeytheorem{tdoc#1}[
+ name = \use:c { tutodoc@trans@#1@title },
+ within = section,
+ ]
+ } {
+ \newkeytheorem{tdoc#1}[
+ name = \use:c { tutodoc@trans@#1@title },
+ numberlike = tdocexa,
+ ]
}
-}{
- \str_case:nnF { #1 } {
- { nb } {
- \end{@@tdocexa@nb}
- }
- { nonb } {
- \end{@@tdocexa@no@nb}
- }
- }{}
+
+ \cs_set:cpn { the tdoc #1 } { \thesection\arabic{tdoc#1} }
}
\ExplSyntaxOff
-% :: REMARK :: %
-
-%%%
-% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm''
-% to have \infos about the environment ''tdocrem''.
-%%%
-\newtheorem*{tdocrem}{\tutodoc@trans@rmk@title}
-
+% -------------------------------------- %
+% -- COLORFUL HIGHLIGHTING OF CONTENT -- %
+% -------------------------------------- %
-% :: IMPORTANT :: %
+% ::::::::::::::::: %
+% :: ABSTRACTION :: %
+% ::::::::::::::::: %
%%%
-% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm''
-% to have \infos about the environment ''tdocimportant''.
+% note::
+% The settings used come from the following sources.
+% * https://tex.stackexchange.com/a/727022/6880
+% * https://tex.stackexchange.com/a/682332/6880
%%%
-\newtheorem*{tdocimportant}{\tutodoc@trans@important@title}
-
-
-% :: NOTE :: %
+\tcbset{
+ tutodoc-focus-color-style/.style = {
+ breakable,
+ enhanced,
+ left = 3pt,
+ right = 3pt,
+ fontupper = \color{\tdocdarkcolor{#1}},
+ colback = \tdoclightcolor{#1},
+ colframe = #1!75!black!45,
+ shadow = {.75mm}{-.75mm}{0mm}{black!30},
+% We want to use the same color for the footnotes in the frame.
+ before upper = {\let\default@color\current@color},
+ }
+}
-%%%
-% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm''
-% to have \infos about the environment ''tdocnote''.
-%%%
-\newtheorem*{tdocnote}{\tutodoc@trans@note@title}
+% ::::::::::::::::::::::::::::::::::::: %
+% :: LET'S GO BACK TO THE REAL WORLD :: %
+% ::::::::::::::::::::::::::::::::::::: %
-% :: TIP :: %
+\ExplSyntaxOn
%%%
-% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm''
-% to have \infos about the environment ''tdoctip''.
+% We use two ''prop'' variables to factorize the code just after.
%%%
-\newtheorem*{tdoctip}{\tutodoc@trans@tip@title}
+\prop_set_from_keyval:Nn \__g_tutodoc_focus_color_prop {
+ note = cyan,
+ tip = ForestGreen,
+ imp = orange,
+ caut = violet,
+ warn = red,
+}
+\prop_set_from_keyval:Nn \__g_tutodoc_focus_icon_prop {
+ note = \faInfoCircle,
+ tip = \faLightbulb,
+ imp = \faHighlighter,
+ caut = \faBiohazard,
+ warn = \faSkullCrossbones,
+}
-% :: CUATION :: %
%%%
-% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm''
-% to have \infos about the environment ''tdoccaution''.
-%%%
-\newtheorem*{tdoccaution}{\tutodoc@trans@caution@title}
-
-
-% :: WARNING :: %
+% prototype::
+% :action: ''key/value'' iteration over ''\__g_tutodoc_focus_color_prop''
+% to build new colorful unumbered theorems. To achieve that,
+% we use a ''tcolorbox'' style givent to the ''\newkeytheorem''
+% macro from the ''keytheorems'' \pack, and icons from the
+% ''fontawesome5'' \pack.
+%%%
+\prop_map_inline:Nn \__g_tutodoc_focus_color_prop {
+ \newkeytheorem{tdoc#1}[
+ numbered = false,
+% tcolorbox-no-titlebar can be used.
+ tcolorbox = {tutodoc-focus-color-style=#2},
+ name = {
+ \tdocicon{ \prop_item:Nn \__g_tutodoc_focus_icon_prop { #1 } }
+ \use:c { tutodoc@trans@#1@title }
+ },
+ ]
+}
-%%%
-% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm''
-% to have \infos about the environment ''tdocwarn''.
-%%%
-\newtheorem*{tdocwarn}{\tutodoc@trans@warn@title}
+\ExplSyntaxOff
+% ---------------------------------------------- %
% -- NAMES OF PACKAGES, MACROS & ENVIRONMENTS -- %
+% ---------------------------------------------- %
%%%
% prototype::
@@ -356,31 +477,53 @@
% #1 : hard typed options with the good delimiters
% #2 : the name of an environment
%
-% :action: ''\tdocenv{myenv}'' prints verb::''\begin{myenv} ... \end{myenv}''
-% or something like verb::''\begin{myenv}<opt1> ... \end{myenv}'',
-% the spaces being secable.
+% :extra: this macro has a star version.
+%
+% Here are the four kind of outputs.
+%
+% 1) ''\tdocenv{myenv}'' prints
+% verb::''\begin{myenv} ... \end{myenv}''.
+%
+% 2) ''\tdocenv[{<opt1>[mando2]}]{myenv}'' prints
+% verb::''\begin{myenv}<opt1>[mando2] ... \end{myenv}''.
+%
+% 3) ''\tdocenv*{myenv}'' prints
+% verb::''myenv''.
+%
+% 4) ''\tdocenv*[{<opt1>[mando2]}]{myenv}'' prints
+% verb::''myenv''.
%%%
%
% Cleaner code from https://tex.stackexchange.com/a/703379/6880 .
-\NewDocumentCommand{\tdocenv}{O{}m}{%
- \texttt{\string\begin\string{#2\string}#1 %
- \!\!...\@\!\!\! %
- \string\end\string{#2\string}}%
+\NewDocumentCommand{\tdocenv}{s O{} m}{%
+ \IfBooleanTF{#1}{%
+ \texttt{#3}%
+ }{%
+ \texttt{\string\begin\string{#3\string}#2 %
+ \!\!...\@\!\!\! %
+ \string\end\string{#3\string}}%
+ }%
}
+% ------------------------- %
% -- EXPLAINING PREFIXES -- %
+% ------------------------- %
\ExplSyntaxOn
+% :::::::::::::: %
% :: MESSAGES :: %
+% :::::::::::::: %
\msg_set:nnnn { bdoc } { prefixwhy-bad-format }
{ Bad ~ format, ~ something ~ like ~ ''pre.fix'' ~ expected. }
{ You ~ must ~ use ~ one ~ single ~ point. }
+% :::::::::::::::::::: %
% :: PREFIX FROM... :: %
+% :::::::::::::::::::: %
%%%
% prototype::
@@ -410,7 +553,9 @@
\ExplSyntaxOff
+% ::::::::::::::::::::: %
% :: JUST ONE PREFIX :: %
+% ::::::::::::::::::::: %
%%%
% prototype::
@@ -427,9 +572,13 @@
}
+% ------------------------ %
% -- GENERAL FORMATTING -- %
+% ------------------------ %
+% :::::::::::::::::::::::: %
% :: TEXT INSIDE A RULE :: %
+% :::::::::::::::::::::::: %
\ExplSyntaxOn
@@ -472,31 +621,9 @@
\ExplSyntaxOff
-% :: COLOR TRANSFORMATIONS :: %
-
-%%%
-% prototype::
-% #1 : one color following the ''xcolor'' format.
-%
-% :return: a "darker" version of the color ''#1''.
-%%%
-\NewExpandableDocumentCommand{\tdocdarkcolor}{m}{%
- #1!50!black%
-}
-
-
-%%%
-% prototype::
-% #1 : one color following the ''xcolor'' format.
-%
-% :return: a "transparent" version of the color `#1`.
-%%%
-\NewExpandableDocumentCommand{\tdoclightcolor}{m}{%
- #1!5%
-}
-
-
+% ::::::::::::::::::::::::::: %
% :: INTERNAL ENVIRONMENTS :: %
+% ::::::::::::::::::::::::::: %
%%%
% prototype::
@@ -545,7 +672,9 @@
\ExplSyntaxOn
+% ::::::::::::::::::::::: %
% :: SETTING SOME KEYS :: %
+% ::::::::::::::::::::::: %
\tl_new:N \l_tdoc_showcase_before_tl
\tl_new:N \l_tdoc_showcase_after_tl
@@ -574,7 +703,9 @@
}
+% :::::::::::::::::::::::::::::: %
% :: SHOWCASE FROM TYPED CODE :: %
+% :::::::::::::::::::::::::::::: %
% prototype::
% #1 : the key-value options.
@@ -614,7 +745,9 @@
}
+% :::::::::::::::::::::::: %
% :: SHOWCASE FROM FILE :: %
+% :::::::::::::::::::::::: %
%%%
% prototype::
@@ -636,9 +769,13 @@
\ExplSyntaxOff
+% -------------------- %
% -- LATEX EXAMPLES -- %
+% -------------------- %
+% ::::::::::::::::::::::::::::: %
% :: INLINE SHORT LATEX CODE :: %
+% ::::::::::::::::::::::::::::: %
%%%
% See the \doc of the macro ''\newmintinline'' from the package ''minted''
@@ -647,11 +784,18 @@
\newmintinline[tdocinlatex]{latex}{bgcolor = yellow!4}
+% ::::::::::::::::::::::::::::::::::::::::::::::: %
% :: SHORTCUTS FOR TCOLORBOX LISTING FORMATING :: %
+% ::::::::::::::::::::::::::::::::::::::::::::::: %
\ExplSyntaxOn
%%%
+% prototype::
+% #1 : a style of formatting for a \latex listing and its output.
+%
+% :see: macro.tdoclatex , macro.tdoclatexinput
+%
% In the following easy-to-understand macro, we use one fictive ''tcolorbox''
% style such as to indicate an unknown ''tdoc'' style to the user.
% For example, this can give one message similar to the following one.
@@ -673,7 +817,9 @@
\ExplSyntaxOff
+% ::::::::::::::::::::::::::::::::: %
% :: THE TCOLORBOX LISTING STYLE :: %
+% ::::::::::::::::::::::::::::::::: %
%%%
% note::
@@ -685,6 +831,7 @@
tdoclatex_tcbstyle/.style = {
minted language = latex,
breakable,
+ enhanced,
% Code and output
colback = yellow!5,
% Frame
@@ -696,7 +843,6 @@
% We can use ''sharp corners'' to obtain an "old school" style.
%
% Separating line
- enhanced,
segmentation style = {
gray,
dash pattern = {on 5pt off 2.5pt},
@@ -707,7 +853,9 @@
}
+% ::::::::::::::::::::::::::::::::::: %
% :: TCOLORBOX LISTING ENVIRONMENT :: %
+% ::::::::::::::::::::::::::::::::::: %
%%%
% prototype::
@@ -725,11 +873,13 @@
}
+% :::::::::::::::::::::::::::::::::::::: %
% :: TCOLORBOX IMPORTED LISTING MACRO :: %
+% :::::::::::::::::::::::::::::::::::::: %
%%%
% prototype::
-% #1 : :see: \newtcblisting{tdoclatex}.
+% #1 : :see: ''\newtcblisting{tdoclatex}'' just before.
% #2 : the path of the file to input and format.
%
% note::
@@ -742,11 +892,15 @@
}
+% -------------------------- %
% -- LATEX REAL USE CASES -- %
+% -------------------------- %
\ExplSyntaxOn
+% ::::::::::::::::::::::: %
% :: SETTING SOME KEYS :: %
+% ::::::::::::::::::::::: %
\tl_new:N \l_tdoc_listing_explain_tl
@@ -762,7 +916,9 @@
}
+% ::::::::::::::::::::: %
% :: LATEXSHOW MACRO :: %
+% ::::::::::::::::::::: %
%%%
% prototype::
@@ -794,22 +950,26 @@
\ExplSyntaxOn
+% :::::::::::::: %
% :: MESSAGES :: %
+% :::::::::::::: %
\msg_set:nnnn { tdoc } { date-bad-format }
{ Bad ~ format ~ for ~ a ~ date. }
{ Use ~ YYYY-MM-DD. }
+% ::::::::::::::::: %
% :: MARGIN NOTE :: %
+% ::::::::::::::::: %
\reversemarginpar{}
%%%
% prototype::
% #1 : the color of the margin note
-% #2 : the first material (a date or nothing)
-% #3 : the second material (a version number or nothing)
+% #2 : the first material (a version number or nothing)
+% #3 : the second material (a date or nothing)
% #4 : the last negative vertical spacing for the 2nd rule
%
% :action: this macro factorizes the printing of the changes
@@ -829,15 +989,19 @@
\IfBlankTF{#2}{}{
\par
- \__tdoc_translate_date:n { #2 }
+ #2\vphantom{Mp}
\par
}
- \vspace{1pt}
+ \IfBlankTF{#3}{}{
+ \IfBlankTF{#2}{}{
+ \vspace{1pt}
+ }
- \par
- #3
- \par
+ \par
+ \__tdoc_translate_date:n { #3 }\vphantom{Mp}
+ \par
+ }
\vspace{#4}
\rule{1.65cm}{.95pt}
@@ -871,12 +1035,16 @@
%%%
\cs_new:Npn \__tdoc_translate_date_process:w #1 - #2 - #3 \q_stop {
\tutodoc@trans@date{#1}
- {#2}
- {#3}
+ {#2}
+ {#3}
}
+\ExplSyntaxOff
+
+% :::::::::::::::::::::: %
% :: VERSION AND DATE :: %
+% :::::::::::::::::::::: %
%%%
% prototype::
@@ -895,13 +1063,15 @@
%%%
\NewDocumentCommand{\tdocversion}{O{blue} m O{}}{
\tutodoc@new@change@margin{#1} % Color
- {#3} % Date
- {#2} % Version
- {-4.25pt} % Last negative vertical spacing
+ {#2} % Version
+ {#3} % Date
+ {-4.25pt} % Last negative vertical spacing
}
+% :::::::::: %
% :: DATE :: %
+% :::::::::: %
%%%
% prototype::
@@ -913,36 +1083,46 @@
%%%
\NewDocumentCommand{\tdocdate}{O{blue} m}{
\tutodoc@new@change@margin{#1} % Color
- {#2} % Date
- {} % Version
- {-5.35pt} % Last negative spacing
+ {#2} % Date
+ {} % Version
+ {-5.35pt} % Last negative spacing
}
-% -- CHANGES - WHAT?
+% --------------------- %
+% -- CHANGES - WHAT? -- %
+% --------------------- %
+
+\ExplSyntaxOn
+% :::::::::::::: %
% :: MESSAGES :: %
+% :::::::::::::: %
\msg_set:nnnn { tdoc } { changes-topic-missing-title }
{ Missing ~ title. }
{ One ~ single ~ title ~ must ~ be ~ indicated. }
+% ::::::::::::::::::::: %
% :: CHANGES - TOPIC :: %
+% ::::::::::::::::::::: %
%%%
% prototype::
% #1 : a title that will be followed by a colon.
+% #2 : one material that expects to be an icon command from the
+% ''fontawsome5'' \pack.
%
% :action: this environment prints some ¨infos about specific changes
% achieved in a new version (no special formatting is applied).
%%%
-\NewDocumentEnvironment{tdoctopic}{ m }{
+\NewDocumentEnvironment{tdoctopic}{ m O{} }{
\IfBlankT{#1}{
\msg_fatal:nn { tdoc } { changes-topic-missing-title }
- }
-
- \textbf{
+ }%
+ \textbf{%
+ \IfBlankF{#2}{\tdocicon{#2}}%
\textsc{#1.}
}
@@ -952,89 +1132,56 @@
}
+% :::::::::::::::::::::::::: %
% :: CHANGES - NEW THINGS :: %
+% :::::::::::::::::::::::::: %
%%%
-% prototype::
-% :see: env.tdoctopic
-%
-% :action: similar to the \env ''tdoctopic'' with the title "New"
-% translated into the good language.
-%%%
-\NewDocumentEnvironment{tdocnew}{}{
- \begin{tdoctopic}{\tutodoc@trans@chges@new}
-}{
- \end{tdoctopic}
-}
-
-
-% :: CHANGES - UPDATE :: %
-
-%%%
-% prototype::
-% :see: env.tdoctopic
-%
-% :action: similar to the \env ''tdoctopic'' with the title "Update"
-% translated into the good language.
-%%%
-\NewDocumentEnvironment{tdocupdate}{}{
- \begin{tdoctopic}{\tutodoc@trans@chges@update}
-}{
- \end{tdoctopic}
-}
-
-
-% :: CHANGES - BREAK :: %
-
-%%%
-% prototype::
-% :see: env.tdoctopic
-%
-% :action: similar to the \env ''tdoctopic'' with the title "Break"
-% translated into the good language.
+% We use a ''prop'' variable to factorize the code just after.
%%%
-\NewDocumentEnvironment{tdocbreak}{}{
- \begin{tdoctopic}{\tutodoc@trans@chges@break}
-}{
- \end{tdoctopic}
+\prop_new:N \__g_tutodoc_topic_change_prop
+\prop_set_from_keyval:Nn \__g_tutodoc_topic_change_prop {
+ break = \faCodeBranch,
+ fix = \faWrench,
+ new = \faGem,
+ prob = \faFire*,
+ update = \faMagic,
}
-% :: CHANGES - PROBLEM :: %
-
%%%
% prototype::
% :see: env.tdoctopic
%
-% :action: similar to the \env ''tdoctopic'' with the title "Problem"
-% translated into the good language.
+% :action: ''key/value'' iteration over ''\__g_tutodoc_topic_change_prop''
+% to build topic-like \envs using the \env ''tdoctopic''
+% (the title used is translated into the good language).
%%%
-\NewDocumentEnvironment{tdocprob}{}{
- \begin{tdoctopic}{\tutodoc@trans@chges@pb}
-}{
- \end{tdoctopic}
+\prop_map_inline:Nn \__g_tutodoc_topic_change_prop {
+ \NewDocumentEnvironment{ tdoc#1 } {} {
+ \begin{tdoctopic}{ \use:c { tutodoc@trans@chges@#1 } } [ #2 ]
+ }{
+ \end{tdoctopic}
+ }
}
-% :: CHANGES - FIX :: %
-
%%%
% prototype::
-% :see: env.tdoctopic
+% #1 : a short text expected t indicate the very first version of a project.
%
-% :action: similar to the \env ''tdoctopic'' with the title "Fix"
-% translated into the good language.
+% :action: the short text printed will be preceded by a pretty anchor icon.
%%%
-\NewDocumentEnvironment{tdocfix}{}{
- \begin{tdoctopic}{\tutodoc@trans@chges@fix}
-}{
- \end{tdoctopic}
+\NewDocumentCommand{ \tdocstartproj }{ m } {
+ \tdocicon{\faAnchor}#1
}
\ExplSyntaxOff
+% ----------------- %
% -- DECORATIONS -- %
+% ----------------- %
% Source for \addvspace{\medskipamount} instead of \medskip.
% * https://tex.stackexchange.com/a/705938/6880
@@ -1052,12 +1199,3 @@
\medskip
\smallskip
}
-
-
-%%%
-% prototype::
-% :action: this macro adds a tiny vertical spacing.
-%%%
-\NewDocumentCommand{\tdocxspace}{}{
- \vspace{0.25em}
-}
diff --git a/macros/latex/contrib/tutodoc/doc/tutodoc-en.pdf b/macros/latex/contrib/tutodoc/doc/tutodoc-en.pdf
index 6124b97c99..2e6df04d3c 100644
--- a/macros/latex/contrib/tutodoc/doc/tutodoc-en.pdf
+++ b/macros/latex/contrib/tutodoc/doc/tutodoc-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/tutodoc/doc/tutodoc-en.tex b/macros/latex/contrib/tutodoc/doc/tutodoc-en.tex
index f6449b959c..5a588de369 100644
--- a/macros/latex/contrib/tutodoc/doc/tutodoc-en.tex
+++ b/macros/latex/contrib/tutodoc/doc/tutodoc-en.tex
@@ -1,34 +1,110 @@
-
-% -------------------- %
-% -- RESOURCES USED -- %
-% -------------------- %
+% ==================== %
+% == RESOURCES USED == %
+% ==================== %
-\begin{filecontents*}[overwrite]{examples-focus-exa.tex}
-Bla, bla, bla...
+\begin{filecontents*}[overwrite]{examples-version-n-change-dating.tex}
+Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-\begin{tdocexa}
- Ble, ble, ble...
-\end{tdocexa}
+\medskip % CAUTION! This prevents overlapping.
-\begin{tdocexa}[Wonderful]
- Bli, bli, bli...
-\end{tdocexa}
+\tdocdate{2023-09-24}
-\begin{tdocexa}<nonb>
- Blo, blo, blo...
-\end{tdocexa}
+Ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
-\begin{tdocexa}<nonb>[Superb]
- Blu, blu, blu...
-\end{tdocexa}
+\medskip % CAUTION! This prevents overlapping.
+
+\tdocdate[gray]{2020-05-08}
+
+Bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli...
+
+Blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo...
+
+Blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu...
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-user-choice-icon.tex}
+\begin{tdoctopic}{Don't look}[\faEyeSlash]
+% An icon from fontawesome5.
+ \item Info 1...
+ \item Info 2...
+\end{tdoctopic}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-user-choice.tex}
+\begin{tdoctopic}{End of icons}
+ \item Info 1...
+ \item Info 2...
+\end{tdoctopic}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-update.tex}
+\begin{tdocupdate}
+ \item Info 1...
+ \item Info 2...
+\end{tdocupdate}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-versioning.tex}
+\tdocversion[red]{10.2.0-beta}[2023-12-01]
+
+Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+
+\bigskip % CAUTION! This prevents overlapping.
+
+\tdocversion{10.2.0-alpha}
+
+Ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble,
+ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble,
+ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble,
+ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-first.tex}
+\tdocstartproj{1st version of the project.}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-break.tex}
+\begin{tdocbreak}
+ \item Info 1...
+ \item Info 2...
+\end{tdocbreak}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-pb.tex}
+\begin{tdocprob}
+ \item Info 1...
+ \item Info 2...
+\end{tdocprob}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-new.tex}
+\begin{tdocnew}
+ \item Info 1...
+ \item Info 2...
+\end{tdocnew}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-fix.tex}
+\begin{tdocfix}
+ \item Info 1...
+ \item Info 2...
+\end{tdocfix}
\end{filecontents*}
\begin{filecontents*}[overwrite]{examples-focus-exa-leavevmode.tex}
\begin{tdocexa}
\leavevmode
-
\begin{enumerate}
\item Point 1.
@@ -38,25 +114,14 @@ Bla, bla, bla...
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-focus-rmk.tex}
-\begin{tdocrem}
- Just one remark...
-\end{tdocrem}
-
-\begin{tdocrem}[Mini title]
- Useful?
-\end{tdocrem}
-\end{filecontents*}
-
-
-\begin{filecontents*}[overwrite]{examples-focus-tip.tex}
-\begin{tdoctip}
- A tip.
-\end{tdoctip}
+\begin{filecontents*}[overwrite]{examples-focus-important.tex}
+\begin{tdocimp}
+ Important and harmless.
+\end{tdocimp}
-\begin{tdoctip}[Mini title]
+\begin{tdocimp}[Mini title]
Useful?
-\end{tdoctip}
+\end{tdocimp}
\end{filecontents*}
@@ -71,25 +136,25 @@ Bla, bla, bla...
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-focus-important.tex}
-\begin{tdocimportant}
- Important and harmless.
-\end{tdocimportant}
+\begin{filecontents*}[overwrite]{examples-focus-caution.tex}
+\begin{tdoccaut}
+ Caution, caution...
+\end{tdoccaut}
-\begin{tdocimportant}[Mini title]
+\begin{tdoccaut}[Mini title]
Useful?
-\end{tdocimportant}
+\end{tdoccaut}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-focus-caution.tex}
-\begin{tdoccaution}
- Caution, caution...
-\end{tdoccaution}
+\begin{filecontents*}[overwrite]{examples-focus-tip.tex}
+\begin{tdoctip}
+ A tip.
+\end{tdoctip}
-\begin{tdoccaution}[Mini title]
+\begin{tdoctip}[Mini title]
Useful?
-\end{tdoccaution}
+\end{tdoctip}
\end{filecontents*}
@@ -104,52 +169,38 @@ Bla, bla, bla...
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-showcase-default.tex}
-\begin{tdocshowcase}
- \bfseries A bit of code \LaTeX.
-
- \bigskip
-
- \emph{\large End of the awful demo.}
-\end{tdocshowcase}
-\end{filecontents*}
-
-
-\begin{filecontents*}[overwrite]{examples-showcase-customized.tex}
-\begin{tdocshowcase}[before = My beginning,
- after = My end,
- color = red]
- Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-\end{tdocshowcase}
-\end{filecontents*}
-
+\begin{filecontents*}[overwrite]{examples-focus-exa.tex}
+\begin{tdocexa}
+ An example...
+\end{tdocexa}
-\begin{filecontents*}[overwrite]{examples-showcase-hook.tex}
-\begin{tdocshowcase}
- \string[This works...]
-\end{tdocshowcase}
+\begin{tdocexa}[Mini title]
+ Useful?
+\end{tdocexa}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip.tex}
-\begin{tdocshowcase}[nostripe]
- Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-\end{tdocshowcase}
-\end{filecontents*}
+\begin{filecontents*}[overwrite]{examples-focus-rmk.tex}
+\begin{tdocrem}
+ Just one remark...
+\end{tdocrem}
+\begin{tdocrem}
+ Another?
+\end{tdocrem}
-\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip-customized.tex}
-\begin{tdocshowcase}[nostripe,
- before = My beginning,
- after = My end,
- color = green]
- Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-\end{tdocshowcase}
+\begin{tdocrem}[Mini title]
+ Useful?
+\end{tdocrem}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-showcase-external.tex}
-Blablobli, blablobli, blablobli, blablobli, blablobli, blablobli...
+\begin{filecontents*}[overwrite]{examples-listing-latexshow-options.tex}
+\tdoclatexshow[explain = What comes next is colourful...,
+ before = Rendering below.,
+ after = Finished rendering.,
+ color = orange]
+ {examples-listing-xyz.tex}
\end{filecontents*}
@@ -160,6 +211,12 @@ Blablobli, blablobli, blablobli, blablobli, blablobli, blablobli...
\end{filecontents*}
+\begin{filecontents*}[overwrite]{examples-listing-xyz.tex}
+% Just one demo.
+$x y z = 1$
+\end{filecontents*}
+
+
\begin{filecontents*}[overwrite]{examples-listing-strange.tex}
\begin{tdoclatex}[std]
[Strange... Or not!]
@@ -174,129 +231,101 @@ Blablobli, blablobli, blablobli, blablobli, blablobli, blablobli...
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-listing-xyz.tex}
-% Just one demo.
-$x y z = 1$
+\begin{filecontents*}[overwrite]{examples-showcase-customized.tex}
+\begin{tdocshowcase}[before = My beginning,
+ after = My end,
+ color = red]
+ Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+\end{tdocshowcase}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-listing-latexshow-options.tex}
-\tdoclatexshow[explain = What comes next is colourful...,
- before = Rendering below.,
- after = Finished rendering.,
- color = orange]
- {examples-listing-xyz.tex}
+\begin{filecontents*}[overwrite]{examples-showcase-hook.tex}
+\begin{tdocshowcase}
+ \string[This works...]
+\end{tdocshowcase}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-dating.tex}
-Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-
-\medskip % CAUTION! This prevents overlapping.
-
-\tdocdate{2023-09-24}
-
-Ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
-
-\medskip % CAUTION! This prevents overlapping.
-
-\tdocdate[gray]{2020-05-08}
-
-Bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli...
-
-Blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo...
-
-Blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu...
+\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip-customized.tex}
+\begin{tdocshowcase}[nostripe,
+ before = My beginning,
+ after = My end,
+ color = green]
+ Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+\end{tdocshowcase}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-versioning.tex}
-\tdocversion[red]{10.2.0-beta}[2023-12-01]
-
-Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-
-\bigskip % CAUTION! This prevents overlapping.
-
-\tdocversion{10.2.0-alpha}
-
-Ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble,
-ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble,
-ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble,
-ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
+\begin{filecontents*}[overwrite]{examples-showcase-external.tex}
+Blablobli, blablobli, blablobli, blablobli, blablobli, blablobli...
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-new.tex}
-\begin{tdocnew}
- \item Info 1...
- \item Info 2...
-\end{tdocnew}
-\end{filecontents*}
+\begin{filecontents*}[overwrite]{examples-showcase-default.tex}
+\begin{tdocshowcase}
+ \bfseries A bit of code \LaTeX.
+ \bigskip
-\begin{filecontents*}[overwrite]{examples-version-n-change-update.tex}
-\begin{tdocupdate}
- \item Info 1...
- \item Info 2...
-\end{tdocupdate}
+ \emph{\large End of the awful demo.}
+\end{tdocshowcase}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-break.tex}
-\begin{tdocbreak}
- \item Info 1...
- \item Info 2...
-\end{tdocbreak}
+\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip.tex}
+\begin{tdocshowcase}[nostripe]
+ Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+\end{tdocshowcase}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-pb.tex}
-\begin{tdocprob}
- \item Info 1...
- \item Info 2...
-\end{tdocprob}
-\end{filecontents*}
+% ======================== %
+% == SOURCE FOR THE DOC == %
+% ======================== %
+\documentclass[10pt, a4paper]{article}
-\begin{filecontents*}[overwrite]{examples-version-n-change-fix.tex}
-\begin{tdocfix}
- \item Info 1...
- \item Info 2...
-\end{tdocfix}
-\end{filecontents*}
-
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
-\begin{filecontents*}[overwrite]{examples-version-n-change-unclassifiable.tex}
-\begin{tdoctopic}{Unclassifiable}
-% This is where the point needs to be put.
- \item Info 1...
- \item Info 2...
-\end{tdoctopic}
-\end{filecontents*}
+\usepackage[english]{babel, varioref}
-% ------------------------ %
-% -- SOURCE FOR THE DOC -- %
-% ------------------------ %
-\documentclass[10pt, a4paper]{article}
-\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
-\usepackage[english]{babel, varioref}
\usepackage{enumitem}
-
-\usepackage{tabularray}
\usepackage{fmtcount}
+\usepackage{multicol}
\setlength{\parindent}{0em}
+\newcommand\thispack{\tdocpack{tutodoc}}
+
% Package documented.
\usepackage[lang = english]{tutodoc}
+% --------------- %
+% -- IMPORTANT -- %
+% --------------- %
+%
+% See the French version of this file for the text to be used
+% for languages other than English.
+
+
+% --------------- %
+% -- IMPORTANT -- %
+% --------------- %
+%
+% See the French version of this file for the text to be used
+% for languages other than English.
+
+
+% == FORDOC == %
+
% Source.
% * https://tex.stackexchange.com/a/604698/6880
@@ -311,6 +340,8 @@ ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
}
+% == FORDOC == %
+
% Source.
% * https://tex.stackexchange.com/a/604698/6880
@@ -340,36 +371,42 @@ ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
}
-
\begin{document}
-\title{Le package \texttt{tutodoc} - Documentation de type tutoriel}
+
+\title{The \texttt{tutodoc} package - Tutorial-style documentation}
\author{Christophe BAL}
-\date{\ordinalnum{1} Jan. 2024 - Version 1.1.0}
+\date{Sep 28, 2024 - Version 1.4.0}
\maketitle
\begin{abstract}
-The \tdocpack{tutodoc} package
-\footnote{
- The name comes from \tdocquote{\tdocprewhy{tuto.rial-type} \tdocprewhy{doc.umentation}}.
-}
-is used by its author to semantically produce documentation of \LaTeX\ packages and classes in a tutorial style
-\footnote{
- The idea is to produce an efficient \texttt{PDF} file that can be browsed for one-off needs. This is generally what is expected of coding documentation.
-},
-and with a sober rendering for reading on screen.
+ The \thispack{} package\,%
+ \footnote{
+ The name comes from \tdocquote{\tdocprewhy{tuto.rial-type} \tdocprewhy{doc.umentation}}.
+ }
+ is used by its author to semantically produce documentation of \LaTeX\ packages and classes in a tutorial style,%
+ \footnote{
+ The idea is to produce an efficient \texttt{PDF} file that can be browsed for one-off needs. This is generally what is expected of coding documentation.
+ }
+ and with a sober rendering for reading on screen.
+ \medskip
-\begin{tdocnote}
- This package imposes a formatting style. In the not-too-distant future, \tdocpack{tutodoc} will probably be split into a class and a package.
-\end{tdocnote}
+ Two important points to note.
+ \begin{itemize}
+ \item This package imposes a formatting style. In the not-too-distant future, \thispack{} will probably be split into a class and a package.
+
+ \item This documentation is also available in French.
+ \end{itemize}
\end{abstract}
\newpage
\tableofcontents
\newpage
+
+
\section{General formatting imposed}
\subsection{Page geometry}
@@ -458,7 +495,7 @@ The \tdocpack{hyperref} package is imported behind the scenes with the settings
\section{Select language when loading package}
-By default, \tdocpack{tutodoc} is set for English, but it is possible to change the language: for example, a French documentation will use \tdocinlatex|\usepackage[lang = french]{tutodoc}| .
+By default, \thispack{} is set for English, but it is possible to change the language: for example, a French documentation will use \tdocinlatex|\usepackage[lang = french]{tutodoc}| .
For the moment, we only have the following two choices.
\begin{enumerate}
@@ -487,7 +524,7 @@ The macro \tdocmacro{tdocinEN} and its starred version are based on \tdocmacro{t
\begin{tdocnote}
- As the text \tdocquote{in English} is translated into the language indicated when \tdocpack{tutodoc} is imported, the macro \tdocmacro{tdocinEN} and its starred version become useful for non-English speakers.
+ As the text \tdocquote{in English} is translated into the language indicated when \thispack{} is imported, the macro \tdocmacro{tdocinEN} and its starred version become useful for non-English speakers.
\end{tdocnote}
@@ -496,134 +533,165 @@ The macro \tdocmacro{tdocinEN} and its starred version are based on \tdocmacro{t
\begin{tdocnote}
The environments presented in this section
\footnote{
- The formatting comes from the \tdocpack{amsthm} package.
+ The formatting comes from the \tdocpack{keytheorems} package.
}
add a short title indicating the type of information provided.
- This short text will always be translated into the language indicated when the \tdocpack{tutodoc} package is loaded.
+ This short text will always be translated into the language indicated when the \thispack{} package is loaded.
\end{tdocnote}
+\subsection{Content in the reading flow}
+
+
% ------------------ %
-\subsection{Examples}
+\begin{tdocimp}
+ All the environments presented in this section share the same counter.
+\end{tdocimp}
-Numbered or unnumbered examples can be indicated using the \tdocenv{tdocexa} environment, which offers two optional arguments.
-\begin{enumerate}
- \item The \ordinalnum{1} argument between brackets \tdocinlatex#<...># can take the values \tdocinlatex#nb# to number, which is the default setting, and \tdocinlatex#nonb# to not number.
+% ------------------ %
- \item The \ordinalnum{2} argument in square brackets \tdocinlatex#[...]# is used to add a mini-title..
-\end{enumerate}
+\subsubsection{Examples}
-Here are some possible uses.
+Numbered examples, if required, are indicated via \tdocenv{tdocexa}, which offers an optional argument for adding a mini-title.
+Here are two possible uses.
\tdoclatexinput[sbs]{examples-focus-exa.tex}
+
% ------------------ %
-\begin{tdocimportant}
- The numbering of the examples is reset to zero as soon as a section with a level at least equal to a \tdocinlatex|\subsubsection| is opened.
-\end{tdocimportant}
+\begin{tdocimp}
+ The numbering of the examples is reset to zero as soon as a section with a level at least equal to a \tdocinlatex|\section| is opened.
+\end{tdocimp}
% ------------------ %
\begin{tdoctip}
- It can sometimes be useful to return to the line at the start of the content. Here's how to do it (this trick remains valid for the environments presented in the following sub-sections). Note in passing that the numbering follows that of the previous example as desired.
-
- \tdoclatexinput[sbs]{examples-focus-exa-leavevmode.tex}
+ It can sometimes be useful to return to the line at the start of the content. The code below shows how to proceed (this trick also applies to the \verb#tdocrem# environment presented next). Note in passing that the numbering follows that of the previous example as desired.
\end{tdoctip}
+\tdoclatexinput[sbs]{examples-focus-exa-leavevmode.tex}
+
+
-\subsection{Some remarks}
+% \subsection{Content in the reading flow}
-Everything happens via the \tdocenv{tdocrem} environment, as in the following example.
+\subsubsection{Some remarks}
+
+Everything happens via \tdocenv{tdocrem}, which works identically to the \tdocenv*{tdocexa} environment, as shown in the following example.
\tdoclatexinput[sbs]{examples-focus-rmk.tex}
-\subsection{A tip}
-The \tdocenv{tdoctip} environment is used to give tips. Here's how to use it.
+\subsection{Flashy content} \label{tdoc-colorful-focus}
+
+\begin{tdocnote}
+ Icons are obtained via the \tdocpack{fontawesome5} package, and text spacing is managed by the \tdocmacro{tdocicon} macro.
+ \footnote{
+ For example,
+ \tdocinlatex|\tdocicon{\faBed}{Tired}|
+ produces\,
+ \tdocicon{\faBed}{Tired}.
+ }
+\end{tdocnote}
+
+
+\subsubsection{A tip}
+
+The \tdocenv*{tdoctip} environment is used to give tips. Here's how to use it.
\tdoclatexinput[sbs]{examples-focus-tip.tex}
-\subsection{Informative note}
-The \tdocenv{tdocnote} environment is used to highlight useful information. Here's how to use it.
+\smallskip
+
+\begin{tdocnote}
+ Colors are obtained via the expandable macros \tdocmacro{tdocbackcolor} and \tdocmacro{tdocdarkcolor}.
+ For further information, please refer to the end of the section \ref{tdoc-color-macros} page \pageref{tdoc-color-macros}.
+\end{tdocnote}
+
+
+%\subsection{Flashy content}
+
+\subsubsection{Informative note}
+
+The \tdocenv*{tdocnote} environment is used to highlight useful information. Here's how to use it.
\tdoclatexinput[sbs]{examples-focus-note.tex}
-\subsection{Something important}
-The \tdocenv{tdocimportant} environment is used to indicate something important but harmless.
+%\subsection{Flashy content}
+
+\subsubsection{Something important}
+
+The \tdocenv*{tdocimp} environment is used to indicate something important but harmless.
\tdoclatexinput[sbs]{examples-focus-important.tex}
-\subsection{Caution about a delicate point}
-The \tdocenv{tdoccaution} environment is used to indicate a delicate point to the user. Here's how to use it.
+%\subsection{Flashy content}
-\tdoclatexinput[sbs]{examples-focus-caution.tex}
+\subsubsection{Caution about a delicate point}
+The \tdocenv*{tdoccaut} environment is used to indicate a delicate point to the user. Here's how to use it.
-\subsection{Warning of danger}
+\tdoclatexinput[sbs]{examples-focus-caution.tex}
-The \tdocenv{tdocwarn} environment is used to warn the user of a trap to avoid. Here's how to use it.
-\tdoclatexinput[sbs]{examples-focus-warn.tex}
+%\subsection{Flashy content}
-\newpage
-\section{Specify packages, classes, macros or environments}
+\subsubsection{Warning of danger}
-Here's what you can type semantically.
+The \tdocenv*{tdocwarn} environment is used to warn the user of a trap to avoid. Here's how to use it.
+\tdoclatexinput[sbs]{examples-focus-warn.tex}
-\begin{tdoclatex}[sbs]
-\tdoccls{myclass} is for...
-\tdocpack{mypackage} is for...
-\tdocmacro{onemacro} is for...
+\section{Specify packages, classes, macros or environments}
-\tdocenv{env} produces...
+Here's what you can type semantically.
-We also have :
-\tdocenv[{[opt1]<opt2>}]{env}
+\begin{tdoclatex}[sbs]
+\tdoccls{myclass} is for... \\
+\tdocpack{mypackage} is for... \\
+\tdocmacro{onemacro} is for... \\
+\tdocenv{env} produces... \\
+\tdocenv[{[opt1]<opt2>}]{env} \\
+Just \tdocenv*{env}... \\
+Finally \tdocenv*[{[opt1]<opt2>}]{env}...
\end{tdoclatex}
\begin{tdocrem}
- The advantage of the previous macros over the use of \tdocmacro{tdocinlatex}, see the section \ref{tdoc-listing-inline} page \pageref{tdoc-listing-inline}, is the absence of colouring.
- Furthermore, the \tdocmacro{tdocenv} macro simply asks you to type the name of the environment
- \footnote{
- In addition, \tdocinlatex{\tdocenv{monenv}} produces \tdocenv{monenv} with spaces to allow line breaks if necessary.
- }
- with any options by typing the correct delimiters
- \footnote{
- Remember that almost anything is possible from now on.
- }
- by hand.
+ Unlike \tdocmacro{tdocinlatex}, \tdocmacro{tdocenv} and \tdocmacro{tdocenv*} macros don't color the text they produce.
+ In addition, \tdocinlatex{\tdocenv{monenv}} produces \tdocenv{monenv} with spaces to allow line breaks if required.
\end{tdocrem}
\begin{tdocwarn}
- The optional argument to the \tdocmacro{tdocenv} macro is copied and pasted during rendering. This can sometimes require the use of protective braces, as in the previous example.
+ The optional argument of the \tdocmacro{tdocenv} macro is copied and pasted
+ \footnote{
+ Remember that almost anything is possible from now on.
+ }
+ when rendering. This may sometimes require the use of protective braces, as in the example above.
\end{tdocwarn}
-% -------------------- %
-
\section{Origin of a prefix or suffix}
@@ -631,10 +699,8 @@ To explain the names chosen, there is nothing like indicating and explaining the
\begin{tdoclatex}[sbs]
-\tdocpre{sup} relates to...
-
-\tdocprewhy{sup.erbe} means...
-
+\tdocpre{sup} relates to... \\
+\tdocprewhy{sup.erbe} means... \\
\emph{\tdocprewhy{sup.er} for...}
\end{tdoclatex}
@@ -649,30 +715,30 @@ To explain the names chosen, there is nothing like indicating and explaining the
It is sometimes useful to render code directly in the documentation. This type of rendering must be dissociable from the explanatory text.
-% ------------------ %
-
-\subsection{With a coloured stripe}
+\subsection{With a coloured stripe} \label{tdoc-color-macros}
\begin{tdocexa} [With default text]
- It can be useful to show a real rendering directly in a document
+ It can be useful to show a real rendering directly in a document.
\footnote{
Typically when making a demo.
- }.
+ }
This is done via \tdocenv{tdocshowcase} as follows.
\tdoclatexinput[code]{examples-showcase-default.tex}
- The result is the following rendering
+
+ The result is the following rendering.
\footnote{
Behind the scenes, the strip is created effortlessly using the \tdocpack{clrstrip} package.
- }.
+ }
+\end{tdocexa}
+
+\input{examples-showcase-default.tex}
- \medskip
- \input{examples-showcase-default.tex}
-\end{tdocexa}
+\smallskip
\begin{tdocrem}
See the section \ref{tdoc-latexshow} on page \pageref{tdoc-latexshow} to easily obtain code followed by its actual rendering as in the previous example.
@@ -680,7 +746,7 @@ It is sometimes useful to render code directly in the documentation. This type o
\begin{tdocnote}
- The explanatory texts adapt to the language chosen when \tdocpack{tutodoc} is loaded.
+ The explanatory texts adapt to the language chosen when \thispack{} is loaded.
\end{tdocnote}
@@ -692,21 +758,43 @@ It is sometimes useful to render code directly in the documentation. This type o
\tdoclatexinput[code]{examples-showcase-customized.tex}
+
This will produce the following.
\medskip
\input{examples-showcase-customized.tex}
+
\end{tdocexa}
\begin{tdocnote}
- You will have noticed that we don't obtain a pure red: behind the scenes, the expandable macros \tdocmacro{tdocbackcolor} and \tdocmacro{tdocdarkcolor} are used to create the background and title colours respectively from the ones proposed in \tdocenv{tdocshowcase}.
- These macros have a single argument, the chosen colour, and accept the following codes.
+ You've probably noticed that red is used as a base to obtain the colors used.
+
+ \begin{itemize}
+ \item The background color is provided by \tdocmacro{tdocbackcolor}.
+
+ \item The color of titles and lines is provided by \tdocmacro{tdocdarkcolor}.
+ \end{itemize}
+
+ These expandable macros accept the following codes.
\begin{tdoclatex}[code]
-\NewExpandableDocumentCommand{\tdocbackcolor}{m}{#1!5}
-\NewExpandableDocumentCommand{\tdocdarkcolor}{m}{#1!50!black}
+% Argument 1 : optionally, the amount of color relative to black can be specified.
+% In general, there's no need to change this setting!
+% Argument 2 : a color in xcolor format.
+\NewExpandableDocumentCommand{\tdocdarkcolor}{O{50}m}{#2!#1!black}
+
+% Argument 1 : optionally, the transparency rate can be specified.
+% In general, there's no need to change this setting!
+% Argument 2 : a color in xcolor format.
+\NewExpandableDocumentCommand{\tdoclightcolor}{O{5}m}{#2!#1}
+ \end{tdoclatex}
+
+ You also have to know that behind the scene, the \tdocmacro{tdocruler} macro is used.
+
+ \begin{tdoclatex}[std]
+ \tdocruler{A decorated pseudo-title}{red}
\end{tdoclatex}
\end{tdocnote}
@@ -719,21 +807,13 @@ It is sometimes useful to render code directly in the documentation. This type o
\tdoclatexinput[code]{examples-showcase-hook.tex}
- This will produce the following.
-
- \medskip
- \input{examples-showcase-hook.tex}
+ This will produce the following.
\end{tdocwarn}
-\begin{tdocnote}
- Behind the scenes, the \tdocmacro{tdocruler} macro is used.
+\input{examples-showcase-hook.tex}
- \begin{tdoclatex}[std]
- \tdocruler{Un pseudo-titre décoré}{red}
- \end{tdoclatex}
-\end{tdocnote}
\subsection{Without a colour strip}
@@ -748,11 +828,13 @@ It is possible not to use a coloured strip, as we will see straight away.
\tdoclatexinput[code]{examples-showcase-no-clrstrip.tex}
+
This will produce the following.
\medskip
\input{examples-showcase-no-clrstrip.tex}
+
\end{tdocexa}
@@ -764,11 +846,13 @@ It is possible not to use a coloured strip, as we will see straight away.
\tdoclatexinput[code]{examples-showcase-no-clrstrip-customized.tex}
+
This will produce the following.
\medskip
\input{examples-showcase-no-clrstrip-customized.tex}
+
\end{tdocexa}
@@ -777,13 +861,14 @@ It is possible not to use a coloured strip, as we will see straight away.
To obtain renderings by importing the code from an external file, instead of typing it, simply use the \tdocmacro{tdocshowcaseinput} macro whose option uses the syntax of that of \tdocenv{tdocshowcase} and the mandatory argument corresponds to the path of the file.
-\begin{tdocexa}<nonb>
+\begin{tdocexa}
The following was obtained via \tdocinlatex+\tdocshowcaseinput{external.tex}+.
\medskip
\tdocshowcaseinput{examples-showcase-external.tex}
+
\medskip
As for \tdocinlatex+\tdocshowcaseinput[color = orange]{external.tex}+\,, this will produce the colour change shown below.
@@ -791,16 +876,22 @@ To obtain renderings by importing the code from an external file, instead of typ
\medskip
\tdocshowcaseinput[color = orange]{examples-showcase-external.tex}
+
\end{tdocexa}
-\newpage
\section{Use cases in \LaTeX}
-Documenting a package or a class is done efficiently using use cases showing both the code and the corresponding result.
+Documenting a package or class is best done through use cases showing both the code and the corresponding result.
+\footnote{
+ Code is formatted using the \tdocpack{minted} package.
+}
+
+\begin{tdoccaut}
+ Version 3 of \tdocpack{minted} cannot be used at the moment, as it contains bugs: see \url{https://github.com/gpoore/minted/issues/401}. We therefore force the use of version 2 of minted.
-% ------------------ %
+\end{tdoccaut}
\subsection{\tdocquote{Inline} codes} \label{tdoc-listing-inline}
@@ -824,7 +915,7 @@ Here are some examples.
The \tdocmacro{tdocinlatex} macro can be used in a footnote: see below.
\footnote{
\tdocinlatex+$minted = TOP$+ has been typed \tdocinlatex|\tdocinlatex+$minted = TOP$+| in this footnote...
- }.
+ }
In addition, a background color is deliberately used to subtly highlight the codes \tdocinlatex#\LaTeX#\,.
\end{tdocnote}
@@ -837,6 +928,7 @@ Here are some examples.
\begin{tdocexa}[Side by side]
Using \tdocenv[{[sbs]}]{tdoclatex}, we can display a code and its rendering side by side.
\tdocdocbasicinput{examples-listing-ABC.tex}
+
\end{tdocexa}
@@ -844,10 +936,10 @@ Here are some examples.
\begin{tdocexa}[Following]
- \tdocenv{tdoclatex} produces the following result, which corresponds to the default option \tdocinlatex#std#
+ \tdocenv{tdoclatex} produces the following result, which corresponds to the default option \tdocinlatex#std#\,.
\footnote{
\tdocinlatex{std} refers to the \tdocquote{standard} behaviour of \tdocpack{tcolorbox} in relation to the \tdocpack{minted} library.
- }.
+ }
\begin{tdoclatex}
$A = B + C$
@@ -873,11 +965,13 @@ Here are some examples.
\begin{tdocwarn}
With default formatting, if the code begins with an opening bracket, the default option must be explicitly indicated.
\tdocdocbasicinput{examples-listing-strange.tex}
-
+
+
\smallskip
-
+
Another method is to use the \tdocmacro{string} primitive.
\tdocdocbasicinput{examples-listing-strange-bis.tex}
+
\end{tdocwarn}
@@ -887,9 +981,10 @@ For the following codes, consider a file with the relative path \verb+examples-l
\tdoclatexinput[code]{examples-listing-xyz.tex}
+
\medskip
-The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file and offers the same options as the \tdocenv{tdoclatex} environment.
+The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file and offers the same options as the \tdocenv*{tdoclatex} environment.
% ------------------ %
@@ -900,11 +995,13 @@ The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file an
\begin{tdoclatex}[code]
\tdoclatexinput[sbs]{examples-listing-xyz.tex}
+
\end{tdoclatex}
This produces the following layout.
\tdoclatexinput[sbs]{examples-listing-xyz.tex}
+
\end{tdocexa}
@@ -916,11 +1013,13 @@ The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file an
\begin{tdoclatex}[code]
\tdoclatexinput{examples-listing-xyz.tex}
+
\end{tdoclatex}
This produces the following formatting where the default option is \tdocinlatex#std#.
\tdoclatexinput{examples-listing-xyz.tex}
+
\end{tdocexa}
@@ -932,18 +1031,19 @@ The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file an
\begin{tdoclatex}[code]
\tdoclatexinput[code]{examples-listing-xyz.tex}
+
\end{tdoclatex}
This produces the following layout.
\tdoclatexinput[code]{examples-listing-xyz.tex}
+
\end{tdocexa}
% ------------------ %
-\newpage
\subsection{Imported codes put into practice} \label{tdoc-latexshow}
\begin{tdocexa}[Showcase]
@@ -953,12 +1053,13 @@ The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file an
\begin{tdoc-doc-showcase}
\tdoclatexshow{examples-listing-xyz.tex}
+
\end{tdoc-doc-showcase}
\end{tdocexa}
\begin{tdocnote}
- The default texts take into account the language chosen when loading the package \tdocpack{tutodoc}.
+ The default texts take into account the language chosen when loading the package \thispack{}.
\end{tdocnote}
@@ -972,6 +1073,7 @@ The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file an
\begin{tdoc-doc-showcase}
\tdoclatexshow[explain = Here is the actual rendering.]{examples-listing-xyz.tex}
+
\end{tdoc-doc-showcase}
\end{tdocexa}
@@ -980,13 +1082,14 @@ The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file an
\begin{tdocexa}[The options available]
- In addition to the explanatory text, it is also possible to use all the options of \tdocenv{tdocshowcase}, see \ref{tdoc-showcase} page \pageref{tdoc-showcase}.
+ In addition to the explanatory text, it is also possible to use all the options of \tdocenv*{tdocshowcase} environment, see \ref{tdoc-showcase} page \pageref{tdoc-showcase}.
Here is an example to illustrate this.
\medskip
\tdoclatexinput[code]{examples-listing-latexshow-options.tex}
+
\medskip
This will produce the following.
@@ -995,6 +1098,7 @@ The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file an
\begin{tdoc-doc-showcase}
\input{examples-listing-latexshow-options.tex}
+
\end{tdoc-doc-showcase}
\end{tdocexa}
@@ -1004,8 +1108,6 @@ The \tdocmacro{tdoclatexinput} macro, shown below, expects the path of a file an
To make it easier to monitor a package, it is essential to provide a history indicating the changes made when a new version is published.
-% ------------------ %
-
\subsection{When?}
@@ -1019,6 +1121,7 @@ You can either date something, or version it, in which case the version number c
The \tdocmacro{tdocdate} macro is used to indicate a date in the margin, as in the following example.
\tdoclatexshow{examples-version-n-change-dating.tex}
+
\end{tdocexa}
@@ -1029,18 +1132,17 @@ You can either date something, or version it, in which case the version number c
Associating a version number with a new feature is done using the \tdocmacro{tdocversion} macro, with the colour and date being optional arguments.
\tdoclatexshow{examples-version-n-change-versioning.tex}
+
\end{tdocexa}
-\begin{tdocimportant}
- \leavevmode
-
+\begin{tdocimp}
\begin{enumerate}
\item The \tdocmacro{tdocdate} and \tdocmacro{tdocversion} macros require two compilations.
- \item The final rendering of the dates takes into account the language specified when loading the package \tdocpack{tutodoc}: for example, if French is selected, the dates will be displayed in the format \texttt{DD/MM/YYYY}.
+ \item The final rendering of the dates takes into account the language specified when loading the package \thispack{}: for example, if French is selected, the dates will be displayed in the format \texttt{DD/MM/YYYY}.
\end{enumerate}
-\end{tdocimportant}
+\end{tdocimp}
\begin{tdocwarn}
@@ -1054,17 +1156,36 @@ You can either date something, or version it, in which case the version number c
\subsection{What's new?}
-\tdocpack{tutodoc} offers different environments to indicate quickly and clearly what has been done
+\thispack{} offers the macro \tdocmacro{tdocstartproj} and different environments to indicate quickly and clearly what has been done during the latest changes.%
\footnote{
The user doesn't need all the technical details.
}
-during the latest changes.
+
+
+\begin{tdocnote}
+ For icons, see the note at the beginning of the section \ref{tdoc-colorful-focus} page \pageref{tdoc-colorful-focus}.
+\end{tdocnote}
+
+
+% ------------------ %
+
+
+\begin{tdocexa}[Just for the very first version]
+ \leavevmode
+
+ \tdoclatexinput[sbs]{examples-version-n-change-first.tex}
+
+\end{tdocexa}
+
+
+% ------------------ %
\begin{tdocexa}[For new features]
\leavevmode
\tdoclatexinput[sbs]{examples-version-n-change-new.tex}
+
\end{tdocexa}
@@ -1075,6 +1196,7 @@ during the latest changes.
\leavevmode
\tdoclatexinput[sbs]{examples-version-n-change-update.tex}
+
\end{tdocexa}
@@ -1085,6 +1207,7 @@ during the latest changes.
\leavevmode
\tdoclatexinput[sbs]{examples-version-n-change-break.tex}
+
\end{tdocexa}
@@ -1095,33 +1218,46 @@ during the latest changes.
\leavevmode
\tdoclatexinput[sbs]{examples-version-n-change-pb.tex}
+
\end{tdocexa}
% ------------------ %
-\newpage
\begin{tdocexa}[For fixes]
\leavevmode
\tdoclatexinput[sbs]{examples-version-n-change-fix.tex}
+
+\end{tdocexa}
+
+
+% ------------------ %
+
+
+\begin{tdocexa}[Selectable themes with an icon]
+ \leavevmode
+
+ \tdoclatexinput[sbs]{examples-version-n-change-user-choice-icon.tex}
+
\end{tdocexa}
% ------------------ %
-\begin{tdocexa}[Chosen topics]
+\begin{tdocexa}[Selectable themes without icons]
\leavevmode
- \tdoclatexinput[sbs]{examples-version-n-change-unclassifiable.tex}
+ \tdoclatexinput[sbs]{examples-version-n-change-user-choice.tex}
+
\end{tdocexa}
\section{Ornaments}
-Let's finish this documentation with a few small formatting tools that can be very useful.
+Let's finish this documentation with a small formatting tool that is very useful.
\begin{tdoclatex}[sbs]
@@ -1133,55 +1269,161 @@ This works with enumerations.
\begin{itemize}
\item Underline.
-
- \item Something else useful.
\end{itemize}
\tdocsep % Uniform behaviour.
Ble, ble, ble...
+\end{tdoclatex}
-Bli, bli, bli...
-\tdocxspace % Subtle space
- % but useful.
+\section{History}
-Blo, blo, blo...
+\small
-Blu, blu, blu...
+\tdocversion{1.4.0}[2024-09-28]
+
+\begin{tdocbreak}
+ \item The \tdocenv*{tdoccaution} environment has been renamed \tdocenv*{tdoccaut} for simplified input.
+
+ \item Content highlighting: examples and remarks, indicated via the \tdocenv*{tdocexa} and \tdocenv*{tdocrem} environments, are always numbered, and share the same counter.
+
+ \item The unused macro \tdocmacro{tdocxspace} has been deleted.
+\end{tdocbreak}
+
+
+\begin{tdocnew}
+ \item Change log: the \tdocmacro{tdocstartproj} macro is used to manage the case of the first public version.
+
+ \item Code factorization: the \tdocmacro{tdocicon} macro is responsible for adding icons in front of text.
+\end{tdocnew}
+
+
+\begin{tdocupdate}
+ \item Colors: the \tdocmacro{tdocdarkcolor} and \tdocmacro{tdoclightcolor} macros offer an optional argument.
+ \begin{enumerate}
+ \item \tdocmacro{tdocdarkcolor} : the amount of color in relation to black can be optionally defined.
+
+ \item \tdocmacro{tdoclightcolor} : the transparency rate can be optionally defined.
+ \end{enumerate}
+
+ \item Content highlighting: reduced space around content in colored frames.
+
+ \item Versioning: better vertical spacing thanks to \tdocmacro{vphantom}.
+\end{tdocupdate}
+
+\tdocsep
+
+
+% ------------------ %
+
+
+\tdocversion{1.3.1}[2024-09-26]
+
+\begin{tdocnew}
+ \item Star version of \tdocmacro{tdocenv} to display only the environment name.
+\end{tdocnew}
+
+\tdocsep
+
+
+% ------------------ %
+
+
+\tdocversion{1.3.0}[2024-09-25]
+
+\begin{tdocprob}
+ \item Version 3 of \tdocpack{minted} cannot be used for the moment as it contains bugs: see \url{https://github.com/gpoore/minted/issues/401}. We therefore force the use of version 2 of \tdocpack{minted}.
+\end{tdocprob}
+
+
+\begin{tdocbreak}
+ \item The \tdocenv*{tdocimportant} environment has been renamed \tdocenv*{tdocimp} for simplified input.
+\end{tdocbreak}
+
+
+\begin{tdocnew}
+ \item Change log: proposed environments use icons.
+
+
+ \item Content highlighting: colored frames with icons are proposed for the following environments.
+ \bgroup
+ \setlength\multicolsep{5pt}
+ \begin{multicols}{3}
+ \begin{enumerate}[topsep=0pt]
+ \item \tdocenv*{tdoccaution}
+ \item \tdocenv*{tdocimp}
+ \item \tdocenv*{tdocnote}
+ \item \tdocenv*{tdoctip}
+ \item \tdocenv*{tdocwarn}
+ \end{enumerate}
+ \end{multicols}
+ \egroup
+\end{tdocnew}
+
+\tdocsep
+
+
+% ------------------ %
+
+
+\tdocversion{1.2.0-a}[2024-08-23]
+
+\begin{tdocupdate}
+ \item \tdocmacro{tdocversion}
+ \begin{enumerate}
+ \item The version number is above the date.
+
+ \item The spacing is better managed when the date is absent.
+ \end{enumerate}
+\end{tdocupdate}
+
+
+\begin{tdocfix}
+ \item Content highlighting: the French translations of \tdocinEN*{caution} and \tdocinEN*{danger} were incorrect.
+\end{tdocfix}
+
+\tdocsep
+
+
+% ------------------ %
-\end{tdoclatex}
-\newpage
-\section{History}
\tdocversion{1.1.0}[2024-01-06]
\begin{tdocnew}
- \item Change log : two new environments.
+ \item Change log : two new environments.
\begin{enumerate}
\item \tdocenv{tdocbreak} for breaking changes which are not backward compatible.
\item \tdocenv{tdocprob} for identified problems.
\end{enumerate}
- \item \tdocmacro{tdocinlatex}: a light yellow is used as the background color.
+ \item \tdocmacro{tdocinlatex}: a light yellow is used as the background color.
\end{tdocnew}
\tdocsep
+
+% ------------------ %
+
+
\tdocversion{1.0.1}[2023-12-08]
\begin{tdocfix}
- \item \tdocmacro{tdocenv}: spacing is now correct, even if the \tdocpack{babel} package is not loaded with the French language.
+ \item \tdocmacro{tdocenv}: spacing is now correct, even if the \tdocpack{babel} package is not loaded with the French language.
- \item \tdocenv[{[nostripe]}]{tdocshowcase}: page breaks around \tdocquote{framing} lines should be rare from now on.
+ \item \tdocenv[{[nostripe]}]{tdocshowcase}: page breaks around \tdocquote{framing} lines should be rare from now on.
\end{tdocfix}
\tdocsep
+
+% ------------------ %
+
+
\tdocversion{1.0.0}[2023-11-29]
-First public version of the project.
+\tdocstartproj{First public version of the project.}
\end{document}
- \ No newline at end of file
diff --git a/macros/latex/contrib/tutodoc/doc/tutodoc-fr.pdf b/macros/latex/contrib/tutodoc/doc/tutodoc-fr.pdf
index a8691e1e8d..1ef6d23a79 100644
--- a/macros/latex/contrib/tutodoc/doc/tutodoc-fr.pdf
+++ b/macros/latex/contrib/tutodoc/doc/tutodoc-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/tutodoc/doc/tutodoc-fr.tex b/macros/latex/contrib/tutodoc/doc/tutodoc-fr.tex
index ae9f99c300..a51fa2df4b 100644
--- a/macros/latex/contrib/tutodoc/doc/tutodoc-fr.tex
+++ b/macros/latex/contrib/tutodoc/doc/tutodoc-fr.tex
@@ -1,34 +1,110 @@
+% ==================== %
+% == RESOURCES USED == %
+% ==================== %
-% -------------------- %
-% -- RESOURCES USED -- %
-% -------------------- %
+\begin{filecontents*}[overwrite]{examples-version-n-change-dating.tex}
+Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-\begin{filecontents*}[overwrite]{examples-focus-exa.tex}
-Bla, bla, bla...
+\medskip % ATTENTION ! Ceci évite le chevauchement.
-\begin{tdocexa}
- Ble, ble, ble...
-\end{tdocexa}
+\tdocdate{2023-09-24}
-\begin{tdocexa}[Magnifique]
- Bli, bli, bli...
-\end{tdocexa}
+Ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
-\begin{tdocexa}<nonb>
- Blo, blo, blo...
-\end{tdocexa}
+\medskip % ATTENTION ! Ceci évite le chevauchement.
-\begin{tdocexa}<nonb>[Superbe]
- Blu, blu, blu...
-\end{tdocexa}
+\tdocdate[gray]{2020-05-08}
+
+Bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli...
+
+Blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo...
+
+Blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu...
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-user-choice-icon.tex}
+\begin{tdoctopic}{Ne pas regarder}[\faEyeSlash]
+% Une icône venant de fontawesome5.
+ \item Info 1...
+ \item Info 2...
+\end{tdoctopic}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-user-choice.tex}
+\begin{tdoctopic}{La fin des icônes}
+ \item Info 1...
+ \item Info 2...
+\end{tdoctopic}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-update.tex}
+\begin{tdocupdate}
+ \item Info 1...
+ \item Info 2...
+\end{tdocupdate}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-versioning.tex}
+\tdocversion[red]{10.2.0-beta}[2023-12-01]
+
+Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+
+\bigskip % ATTENTION ! Ceci évite le chevauchement.
+
+\tdocversion{10.2.0-alpha}
+
+Ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble,
+ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble,
+ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble,
+ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-first.tex}
+\tdocstartproj{Première version du projet.}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-break.tex}
+\begin{tdocbreak}
+ \item Info 1...
+ \item Info 2...
+\end{tdocbreak}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-pb.tex}
+\begin{tdocprob}
+ \item Info 1...
+ \item Info 2...
+\end{tdocprob}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-new.tex}
+\begin{tdocnew}
+ \item Info 1...
+ \item Info 2...
+\end{tdocnew}
+\end{filecontents*}
+
+
+\begin{filecontents*}[overwrite]{examples-version-n-change-fix.tex}
+\begin{tdocfix}
+ \item Info 1...
+ \item Info 2...
+\end{tdocfix}
\end{filecontents*}
\begin{filecontents*}[overwrite]{examples-focus-exa-leavevmode.tex}
\begin{tdocexa}
\leavevmode
-
\begin{enumerate}
\item Point 1.
@@ -38,25 +114,14 @@ Bla, bla, bla...
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-focus-rmk.tex}
-\begin{tdocrem}
- Juste une remarque...
-\end{tdocrem}
-
-\begin{tdocrem}[Mini titre]
- Utile ?
-\end{tdocrem}
-\end{filecontents*}
-
-
-\begin{filecontents*}[overwrite]{examples-focus-tip.tex}
-\begin{tdoctip}
- Une astuce.
-\end{tdoctip}
+\begin{filecontents*}[overwrite]{examples-focus-important.tex}
+\begin{tdocimp}
+ Un truc important sans danger.
+\end{tdocimp}
-\begin{tdoctip}[Mini titre]
+\begin{tdocimp}[Mini titre]
Utile ?
-\end{tdoctip}
+\end{tdocimp}
\end{filecontents*}
@@ -71,25 +136,25 @@ Bla, bla, bla...
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-focus-important.tex}
-\begin{tdocimportant}
- Un truc important sans danger.
-\end{tdocimportant}
+\begin{filecontents*}[overwrite]{examples-focus-caution.tex}
+\begin{tdoccaut}
+ Prudence, prudence...
+\end{tdoccaut}
-\begin{tdocimportant}[Mini titre]
+\begin{tdoccaut}[Mini titre]
Utile ?
-\end{tdocimportant}
+\end{tdoccaut}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-focus-caution.tex}
-\begin{tdoccaution}
- Prudence, prudence...
-\end{tdoccaution}
+\begin{filecontents*}[overwrite]{examples-focus-tip.tex}
+\begin{tdoctip}
+ Une astuce.
+\end{tdoctip}
-\begin{tdoccaution}[Mini titre]
+\begin{tdoctip}[Mini titre]
Utile ?
-\end{tdoccaution}
+\end{tdoctip}
\end{filecontents*}
@@ -104,52 +169,34 @@ Bla, bla, bla...
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-showcase-default.tex}
-\begin{tdocshowcase}
- \bfseries Un peu de code \LaTeX.
-
- \bigskip
-
- \emph{\large Fin de l'affreuse démo.}
-\end{tdocshowcase}
-\end{filecontents*}
-
-
-\begin{filecontents*}[overwrite]{examples-showcase-customized.tex}
-\begin{tdocshowcase}[before = Mon début,
- after = Ma fin à moi,
- color = red]
- Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-\end{tdocshowcase}
-\end{filecontents*}
-
+\begin{filecontents*}[overwrite]{examples-focus-exa.tex}
+\begin{tdocexa}
+ Un exemple...
+\end{tdocexa}
-\begin{filecontents*}[overwrite]{examples-showcase-hook.tex}
-\begin{tdocshowcase}
- \string[Cela fonctionne...]
-\end{tdocshowcase}
+\begin{tdocexa}[Mini titre]
+ Utile ?
+\end{tdocexa}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip.tex}
-\begin{tdocshowcase}[nostripe]
- Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-\end{tdocshowcase}
-\end{filecontents*}
-
+\begin{filecontents*}[overwrite]{examples-focus-rmk.tex}
+\begin{tdocrem}
+ Juste une remarque...
+\end{tdocrem}
-\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip-customized.tex}
-\begin{tdocshowcase}[nostripe,
- before = Mon début,
- after = Ma fin à moi,
- color = green]
- Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-\end{tdocshowcase}
+\begin{tdocrem}[Mini titre]
+ Utile ?
+\end{tdocrem}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-showcase-external.tex}
-Blablobli, blablobli, blablobli, blablobli, blablobli, blablobli...
+\begin{filecontents*}[overwrite]{examples-listing-latexshow-options.tex}
+\tdoclatexshow[explain = Ce qui vient est coloré...,
+ before = Rendu ci-après.,
+ after = Rendu fini.,
+ color = orange]
+ {examples-listing-xyz.tex}
\end{filecontents*}
@@ -160,6 +207,12 @@ Blablobli, blablobli, blablobli, blablobli, blablobli, blablobli...
\end{filecontents*}
+\begin{filecontents*}[overwrite]{examples-listing-xyz.tex}
+% Juste une démo.
+$x y z = 1$
+\end{filecontents*}
+
+
\begin{filecontents*}[overwrite]{examples-listing-strange.tex}
\begin{tdoclatex}[std]
[Étrange... Ou pas !]
@@ -174,110 +227,58 @@ Blablobli, blablobli, blablobli, blablobli, blablobli, blablobli...
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-listing-xyz.tex}
-% Juste une démo.
-$x y z = 1$
-\end{filecontents*}
-
-
-\begin{filecontents*}[overwrite]{examples-listing-latexshow-options.tex}
-\tdoclatexshow[explain = Ce qui vient est coloré...,
- before = Rendu ci-après.,
- after = Rendu fini.,
- color = orange]
- {examples-listing-xyz.tex}
-\end{filecontents*}
-
-
-\begin{filecontents*}[overwrite]{examples-version-n-change-dating.tex}
-Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-
-\medskip % ATTENTION ! Ceci évite le chevauchement.
-
-\tdocdate{2023-09-24}
-
-Ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
-
-\medskip % ATTENTION ! Ceci évite le chevauchement.
-
-\tdocdate[gray]{2020-05-08}
-
-Bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli, bli...
-
-Blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo, blo...
-
-Blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu, blu...
-\end{filecontents*}
-
-
-\begin{filecontents*}[overwrite]{examples-version-n-change-versioning.tex}
-\tdocversion[red]{10.2.0-beta}[2023-12-01]
-
-Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
-
-\bigskip % ATTENTION ! Ceci évite le chevauchement.
-
-\tdocversion{10.2.0-alpha}
-
-Ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble,
-ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble,
-ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble,
-ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
+\begin{filecontents*}[overwrite]{examples-showcase-customized.tex}
+\begin{tdocshowcase}[before = Mon début,
+ after = Ma fin à moi,
+ color = red]
+ Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+\end{tdocshowcase}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-new.tex}
-\begin{tdocnew}
- \item Info 1...
- \item Info 2...
-\end{tdocnew}
+\begin{filecontents*}[overwrite]{examples-showcase-hook.tex}
+\begin{tdocshowcase}
+ \string[Cela fonctionne...]
+\end{tdocshowcase}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-update.tex}
-\begin{tdocupdate}
- \item Info 1...
- \item Info 2...
-\end{tdocupdate}
+\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip-customized.tex}
+\begin{tdocshowcase}[nostripe,
+ before = Mon début,
+ after = Ma fin à moi,
+ color = green]
+ Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+\end{tdocshowcase}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-break.tex}
-\begin{tdocbreak}
- \item Info 1...
- \item Info 2...
-\end{tdocbreak}
+\begin{filecontents*}[overwrite]{examples-showcase-external.tex}
+Blablobli, blablobli, blablobli, blablobli, blablobli, blablobli...
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-pb.tex}
-\begin{tdocprob}
- \item Info 1...
- \item Info 2...
-\end{tdocprob}
-\end{filecontents*}
+\begin{filecontents*}[overwrite]{examples-showcase-default.tex}
+\begin{tdocshowcase}
+ \bfseries Un peu de code \LaTeX.
+ \bigskip
-\begin{filecontents*}[overwrite]{examples-version-n-change-fix.tex}
-\begin{tdocfix}
- \item Info 1...
- \item Info 2...
-\end{tdocfix}
+ \emph{\large Fin de l'affreuse démo.}
+\end{tdocshowcase}
\end{filecontents*}
-\begin{filecontents*}[overwrite]{examples-version-n-change-unclassifiable.tex}
-\begin{tdoctopic}{Inclassable}
-% Ici le point s'impose.
- \item Info 1...
- \item Info 2...
-\end{tdoctopic}
+\begin{filecontents*}[overwrite]{examples-showcase-no-clrstrip.tex}
+\begin{tdocshowcase}[nostripe]
+ Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla...
+\end{tdocshowcase}
\end{filecontents*}
-% ------------------------ %
-% -- SOURCE FOR THE DOC -- %
-% ------------------------ %
+% ======================== %
+% == SOURCE FOR THE DOC == %
+% ======================== %
\documentclass[10pt, a4paper]{article}
@@ -289,6 +290,10 @@ ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
\usepackage{enumitem}
\frenchsetup{StandardItemLabels=true}
+\usepackage{multicol}
+
+\newcommand\thispack{\tdocpack{tutodoc}}
+
% Package documented.
\usepackage[lang = french]{tutodoc}
@@ -336,57 +341,71 @@ ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble, ble...
}
-
\begin{document}
+
\title{Le package \texttt{tutodoc} - Documentation de type tutoriel}
\author{Christophe BAL}
-\date{1\ier{} Janv. 2024 - Version 1.1.0}
+\date{28 sept. 2024 - Version 1.4.0}
\maketitle
\begin{abstract}
-Le package \tdocpack{tutodoc}
-\footnote{
- Le nom vient de \tdocquote{\tdocprewhy{tuto.rial-type} \tdocprewhy{doc.umentation}} se traduit en \tdocquote{documentation de type tutoriel}.
-}
-est utilisé par son auteur pour produire de façon sémantique des documentations de packages et de classes \LaTeX\ dans un style de type tutoriel
-\footnote{
- L'idée est de produire un fichier \texttt{PDF} efficace à parcourir pour des besoins ponctuels. C'est généralement ce que l'on attend d'une documentation liée au codage.
-},
-et avec un rendu sobre pour une lecture sur écran.
-
-
-\begin{tdocnote}
- Ce package impose un style de mise en forme.
- Dans un avenir plus ou moins proche, \tdocpack{tutodoc} sera sûrement éclaté en une classe et un package.
-\end{tdocnote}
-
-\tdocsep
-
-{\small\itshape
-\textbf{Abstract.}
-The \tdocpack{tutodoc} package
-\footnote{
- The name comes from \tdocquote{\tdocprewhy{tuto.rial-type} \tdocprewhy{doc.umentation}}.
-}
-is used by its author to semantically produce documentation of \LaTeX\ packages and classes in a tutorial style
-\footnote{
- The idea is to produce an efficient \texttt{PDF} file that can be browsed for one-off needs. This is generally what is expected of coding documentation.
-},
-and with a sober rendering for reading on screen.
+ Le package \thispack{}\,%
+ \footnote{
+ Le nom vient de \tdocquote{\tdocprewhy{tuto.rial-type} \tdocprewhy{doc.umentation}} qui se traduit en \tdocquote{documentation de type tutoriel}.
+ }
+ est utilisé par son auteur pour produire de façon sémantique des documentations de packages et de classes \LaTeX\ dans un style de type tutoriel,%
+ \footnote{
+ L'idée est de produire un fichier \texttt{PDF} efficace à parcourir pour des besoins ponctuels. C'est généralement ce que l'on attend d'une documentation liée au codage.
+ }
+ et avec un rendu sobre pour une lecture sur écran.
+ \medskip
-\begin{tdocnote}
- This package imposes a formatting style. In the not-too-distant future, \tdocpack{tutodoc} will probably be split into a class and a package.
-\end{tdocnote}
-}
+ \noindent
+ Deux points importants à noter.
+ \begin{itemize}
+ \item Ce package impose un style de mise en forme. Dans un avenir plus ou moins proche, \thispack{} sera sûrement éclaté en une classe et un package.
+
+ \item Cette documentation est aussi disponible en anglais.
+ \end{itemize}
+
+ \tdocsep
+
+ {\small\itshape
+ \vspace{-5pt}
+ \begin{center}
+ \textbf{Abstract.}
+ \end{center}
+
+ The \thispack{} package\,%
+ \footnote{
+ The name comes from \tdocquote{\tdocprewhy{tuto.rial-type} \tdocprewhy{doc.umentation}}.
+ }
+ is used by its author to semantically produce documentation of \LaTeX\ packages and classes in a tutorial style,%
+ \footnote{
+ The idea is to produce an efficient \texttt{PDF} file that can be browsed for one-off needs. This is generally what is expected of coding documentation.
+ }
+ and with a sober rendering for reading on screen.
+
+ \medskip
+
+ Two important points to note.
+ \begin{itemize}
+ \item This package imposes a formatting style. In the not-too-distant future, \thispack{} will probably be split into a class and a package.
+
+ \item This documentation is also available in French.
+ \end{itemize}
+ }
\end{abstract}
\newpage
\tableofcontents
\newpage
+
+
\section{Mises en forme générales imposées}
\subsection{Géométrie de la page}
@@ -504,7 +523,7 @@ La macro \tdocmacro{tdocinEN} et sa version étoilée s'appuient sur \tdocmacro{
\begin{tdocnote}
- Le texte \tdocquote{en anglais} est traduit dans la langue indiquée lors de l'importation de \tdocpack{tutodoc}.
+ Le texte \tdocquote{en anglais} est traduit dans la langue indiquée lors de l'importation de \thispack{}.
\end{tdocnote}
@@ -513,133 +532,166 @@ La macro \tdocmacro{tdocinEN} et sa version étoilée s'appuient sur \tdocmacro{
\begin{tdocnote}
Les environnements présentés dans cette section
\footnote{
- La mise en forme provient du package \tdocpack{amsthm}.
+ La mise en forme provient du package \tdocpack{keytheorems}.
}
ajoutent un court titre indiquant le type d'informations fournies.
- Ce court texte sera toujours traduit dans la langue indiquée lors du chargement du package \tdocpack{tutodoc}.
+ Ce court texte sera toujours traduit dans la langue indiquée lors du chargement du package \thispack{}.
\end{tdocnote}
+
+\subsection{Du contenu dans le flot de la lecture}
+
+
% ------------------ %
-\subsection{Des exemples}
+\begin{tdocimp}
+ Tous les environnements présentés dans cette section partagent le même compteur.
+\end{tdocimp}
-Des exemples numérotés, ou non, s'indiquent via l'environnement \tdocenv{tdocexa} qui propose deux arguments optionnels.
-\begin{enumerate}
- \item Le 1\ier{} argument entre chevrons \tdocinlatex#<...># peut prendre au choix les valeurs \tdocinlatex#nb# pour numéroter, réglage par défaut, et \tdocinlatex#nonb# pour ne pas numéroter.
+% ------------------ %
- \item Le 2\ieme{} argument entre crochets \tdocinlatex#[...]# sert à ajouter un mini-titre.
-\end{enumerate}
+\subsubsection{Des exemples}
-Voici différents emplois possibles.
+Des exemples numérotés, si besoin, s'indiquent via \tdocenv{tdocexa} qui propose un argument optionnel pour ajouter un mini-titre.
+Voici deux usages possibles.
\tdoclatexinput[sbs]{examples-focus-exa.tex}
+
% ------------------ %
-\begin{tdocimportant}
- La numérotation des exemples est remise à zéro dès qu'une section de niveau au moins égale à une \tdocinlatex|\subsubsection| est ouverte.
-\end{tdocimportant}
+\begin{tdocimp}
+ La numérotation des exemples est remise à zéro dès qu'une section de niveau au moins égale à une \tdocinlatex|\section| est ouverte.
+\end{tdocimp}
% ------------------ %
\begin{tdoctip}
- Il peut parfois être utile de revenir à la ligne dès le début du contenu. Voici comment faire (ce tour de passe-passe reste valable pour les environnements présentés dans les sous-sections suivantes). Noter au passage que la numérotation suit celle de l'exemple précédent comme souhaité.
-
- \tdoclatexinput[sbs]{examples-focus-exa-leavevmode.tex}
+ Il peut parfois être utile de revenir à la ligne dès le début du contenu. Le code suivant montre comment faire (ce tour de passe-passe reste valable pour l'environnement \verb#tdocrem# présenté juste après). Noter au passage que la numérotation suit celle de l'exemple précédent comme souhaité.
\end{tdoctip}
+\tdoclatexinput[sbs]{examples-focus-exa-leavevmode.tex}
+
+
-\subsection{Des remarques}
+%\subsection{Du contenu dans le flot de la lecture}
-Tout se passe via l'environnement \tdocenv{tdocrem} comme dans l'exemple suivant.
+\subsubsection{Des remarques}
+
+Tout se passe via \tdocenv{tdocrem} avec un fonctionnement identique à l'environnement \tdocenv*{tdocexa} comme le montre l'exemple suivant.
\tdoclatexinput[sbs]{examples-focus-rmk.tex}
-\subsection{Une astuce}
-L'environnement \tdocenv{tdoctip} sert à donner des astuces. Voici comment l'employer.
+\subsection{Du contenu tape-à-l'oeil} \label{tdoc-colorful-focus}
+
+\begin{tdocnote}
+ Les icônes sont obtenues via le package \tdocpack{fontawesome5}, et la gestion de l'espacement avec le texte est faite par la macro \tdocmacro{tdocicon}.
+ \footnote{
+ Par exemple,
+ \tdocinlatex|\tdocicon{\faBed}{Fatigué}|
+ produit\,
+ \tdocicon{\faBed}{Fatigué}.
+ }
+\end{tdocnote}
+
+
+\subsubsection{Une astuce}
+
+L'environnement \tdocenv*{tdoctip} sert à donner des astuces. Voici comment l'employer.
\tdoclatexinput[sbs]{examples-focus-tip.tex}
-\subsection{Note informative}
-L'environnement \tdocenv{tdocnote} sert à mettre en avant des informations utiles. Voici comment l'utiliser.
+\smallskip
+
+\begin{tdocnote}
+ Les couleurs sont obtenues via les macros développables \tdocmacro{tdocbackcolor} et \tdocmacro{tdocdarkcolor}.
+ Pour des informations complémentaires à ce sujet, se reporter à la fin de la section \ref{tdoc-color-macros} page \pageref{tdoc-color-macros}.
+\end{tdocnote}
+
+
+%\subsection{Du contenu tape-à-l'oeil}
+
+\subsubsection{Note informative}
+
+L'environnement \tdocenv*{tdocnote} sert à mettre en avant des informations utiles. Voici comment l'utiliser.
\tdoclatexinput[sbs]{examples-focus-note.tex}
-\subsection{Un truc important}
-L'environnement \tdocenv{tdocimportant} permet d'indiquer quelque chose d'important mais sans danger.
+%\subsection{Du contenu tape-à-l'oeil}
+
+\subsubsection{Un truc important}
+
+L'environnement \tdocenv*{tdocimp} permet d'indiquer quelque chose d'important mais sans danger.
\tdoclatexinput[sbs]{examples-focus-important.tex}
-\subsection{Avertir d'un point très délicat}
-L'environnement \tdocenv{tdoccaution} sert à indiquer un point délicat à l'utilisateur. Voici comment l'employer.
+%\subsection{Du contenu tape-à-l'oeil}
-\tdoclatexinput[sbs]{examples-focus-caution.tex}
+\subsubsection{Avertir d'un point très délicat}
+L'environnement \tdocenv*{tdoccaut} sert à indiquer un point délicat à l'utilisateur. Voici comment l'employer.
-\subsection{Avertir d'un danger}
+\tdoclatexinput[sbs]{examples-focus-caution.tex}
-L'environnement \tdocenv{tdocwarn} sert à avertir l'utilisateur d'un piège à éviter. Voici comment l'employer.
-\tdoclatexinput[sbs]{examples-focus-warn.tex}
+%\subsection{Du contenu tape-à-l'oeil}
-\section{Indiquer des packages, des classes, des macros ou des environnements}
+\subsubsection{Avertir d'un danger}
-Voici ce qu'il est possible de taper de façon sémantique.
+L'environnement \tdocenv*{tdocwarn} sert à avertir l'utilisateur d'un piège à éviter. Voici comment l'employer.
+\tdoclatexinput[sbs]{examples-focus-warn.tex}
-\begin{tdoclatex}[sbs]
-\tdoccls{maclasse} sert à...
-\tdocpack{monpackage} est pour...
-\tdocmacro{unemacro} permet de...
+\section{Indiquer des packages, des classes, des macros ou des environnements}
-\tdocenv{env} produit...
+Voici ce qu'il est possible de taper de façon sémantique.
-On a aussi :
-\tdocenv[{[opt1]<opt2>}]{env}
+\begin{tdoclatex}[sbs]
+\tdoccls{maclasse} sert à... \\
+\tdocpack{monpackage} est pour... \\
+\tdocmacro{unemacro} permet de... \\
+\tdocenv{env} produit... \\
+\tdocenv[{[opt1]<opt2>}]{env} \\
+Juste \tdocenv*{env}... \\
+Enfin \tdocenv*[{[opt1]<opt2>}]{env}...
\end{tdoclatex}
\begin{tdocrem}
- L'intérêt des macros précédentes vis à vis de l'usage de \tdocmacro{tdocinlatex}, voir la section \ref{tdoc-listing-inline} page \pageref{tdoc-listing-inline}, est l'absence de coloration.
- De plus, la macro \tdocmacro{tdocenv} demande juste de taper le nom de l'environnement
- \footnote{
- De plus, \tdocinlatex{\tdocenv{monenv}} produit \tdocenv{monenv} avec des espaces afin d'autoriser des retours à la ligne si besoin.
- }
- avec des éventuelles options en tapant les bons délimiteurs
- \footnote{
- Se souvenir que tout est possible ou presque dorénavant.
- }
- à la main.
+ Contrairement à \tdocmacro{tdocinlatex}, les macros \tdocmacro{tdocenv} et \tdocmacro{tdocenv*} ne colorent pas le texte produit.
+ De plus, \tdocinlatex{\tdocenv{monenv}} produit \tdocenv{monenv} avec des espaces afin d'autoriser des retours à la ligne si besoin.
\end{tdocrem}
\begin{tdocwarn}
- L'argument optionnel de la macro \tdocmacro{tdocenv} est copié-collé lors du rendu. Ceci peut donc parfois nécessiter d'utiliser des accolades protectrices comme dans l'exemple précédent.
+ L'argument optionnel de la macro \tdocmacro{tdocenv} est copié-collé
+ \footnote{
+ Se souvenir que tout est possible ou presque dorénavant.
+ }
+ lors du rendu. Ceci peut donc parfois nécessiter d'utiliser des accolades protectrices comme dans l'exemple ci-dessus.
\end{tdocwarn}
-% -------------------- %
-
\section{Origine d'un préfixe ou d'un suffixe}
@@ -647,10 +699,8 @@ Pour expliquer les noms retenus, rien de tel que d'indiquer et expliciter les co
\begin{tdoclatex}[sbs]
-\tdocpre{sup} est relatif à...
-
-\tdocprewhy{sup.erbe} signifie...
-
+\tdocpre{sup} est relatif à... \\
+\tdocprewhy{sup.erbe} signifie... \\
\emph{\tdocprewhy{sup.er} pour...}
\end{tdoclatex}
@@ -665,28 +715,28 @@ Pour expliquer les noms retenus, rien de tel que d'indiquer et expliciter les co
Il est parfois utile d'obtenir directement le rendu d'un code dans la documentation. Ceci nécessite que ce type de rendu soit dissociable du texte donnant des explications.
-% ------------------ %
-
-\subsection{Avec une bande colorée}
+\subsection{Avec une bande colorée} \label{tdoc-color-macros}
\begin{tdocexa}[Avec les textes par défaut]
- Il peut être utile de montrer un rendu réel directement dans un document
+ Il peut être utile de montrer un rendu réel directement dans un document.
\footnote{
Typiquement lorsque l'on fait une démo.
- }.
+ }
Ceci se tape via \tdocenv{tdocshowcase} comme suit.
\tdoclatexinput[code]{examples-showcase-default.tex}
- On obtient alors le rendu suivant
+
+ On obtient alors le rendu suivant.
\footnote{
En coulisse, la bande est créée sans effort grâce au package \tdocpack{clrstrip}.
- }.
+ }
\medskip
\input{examples-showcase-default.tex}
+
\end{tdocexa}
@@ -696,7 +746,7 @@ Il est parfois utile d'obtenir directement le rendu d'un code dans la documentat
\begin{tdocnote}
- Les textes explicatifs s'adaptent à la langue choisie lors du chargement de \tdocpack{tutodoc}.
+ Les textes explicatifs s'adaptent à la langue choisie lors du chargement de \thispack{}.
\end{tdocnote}
@@ -708,21 +758,44 @@ Il est parfois utile d'obtenir directement le rendu d'un code dans la documentat
\tdoclatexinput[code]{examples-showcase-customized.tex}
+
Ceci produira ce qui suit.
\medskip
\input{examples-showcase-customized.tex}
+
\end{tdocexa}
\begin{tdocnote}
- Vous avez sûrement noté que l'on n'obtient pas un rouge pur : en coulisse les macros développables \tdocmacro{tdocbackcolor} et \tdocmacro{tdocdarkcolor} sont utilisées pour créer celles du fond et des titres respectivement à partir de la couleur proposée à \tdocenv{tdocshowcase}.
- Ces macros à un seul argument, la couleur choisie, admettent les codes suivants.
+ Vous avez sûrement remarqué que le rouge sert de base pour obtenir les couleurs utilisées.
+
+ \begin{itemize}
+ \item La couleur de fond est fournie par \tdocmacro{tdocbackcolor}.
+
+ \item La couleur des titres et des lignes est fournie par \tdocmacro{tdocdarkcolor}.
+ \end{itemize}
+
+ Ces macros développables admettent les codes suivants.
\begin{tdoclatex}[code]
-\NewExpandableDocumentCommand{\tdocbackcolor}{m}{#1!5}
-\NewExpandableDocumentCommand{\tdocdarkcolor}{m}{#1!50!black}
+% Argument 1 : de façon optionnelle, on peut indiquer la quantité de couleur
+% relativement au noir.
+% Il est en général inutile de modifier ce paramètre !
+% Argument 2 : une couleur au format xcolor.
+\NewExpandableDocumentCommand{\tdocdarkcolor}{O{50}m}{#2!#1!black}
+
+% Argument 1 : de façon optionnelle, on peut indiquer le taux de transparence.
+% Il est en général inutile de modifier ce paramètre !
+% Argument 2 : une couleur au format xcolor.
+\NewExpandableDocumentCommand{\tdoclightcolor}{O{5}m}{#2!#1}
+ \end{tdoclatex}
+
+ Il faut également savoir qu'en coulisse, la macro \tdocmacro{tdocruler} est utilisée.
+
+ \begin{tdoclatex}[std]
+ \tdocruler{Un pseudo-titre décoré}{red}
\end{tdoclatex}
\end{tdocnote}
@@ -735,21 +808,12 @@ Il est parfois utile d'obtenir directement le rendu d'un code dans la documentat
\tdoclatexinput[code]{examples-showcase-hook.tex}
- Ceci produira ce qui suit.
- \medskip
-
- \input{examples-showcase-hook.tex}
+ Ceci produira ce qui suit.
\end{tdocwarn}
+\input{examples-showcase-hook.tex}
-\begin{tdocnote}
- Il faut savoir qu'en coulisse la macro \tdocmacro{tdocruler} est utilisée.
-
- \begin{tdoclatex}[std]
- \tdocruler{Un pseudo-titre décoré}{red}
- \end{tdoclatex}
-\end{tdocnote}
\subsection{Sans bande colorée}
@@ -764,11 +828,13 @@ Il est possible de ne pas utiliser une bande colorée comme nous allons le voir
\tdoclatexinput[code]{examples-showcase-no-clrstrip.tex}
+
Ceci produira ce qui suit.
\medskip
\input{examples-showcase-no-clrstrip.tex}
+
\end{tdocexa}
@@ -780,11 +846,13 @@ Il est possible de ne pas utiliser une bande colorée comme nous allons le voir
\tdoclatexinput[code]{examples-showcase-no-clrstrip-customized.tex}
+
Ceci produira ce qui suit.
\medskip
\input{examples-showcase-no-clrstrip-customized.tex}
+
\end{tdocexa}
@@ -793,13 +861,14 @@ Il est possible de ne pas utiliser une bande colorée comme nous allons le voir
Pour obtenir des rendus en important le code depuis un fichier externe, au lieu de le taper, il suffit d'employer la macro \tdocmacro{tdocshowcaseinput} dont l'option reprend la syntaxe de celle de \tdocenv{tdocshowcase} et l'argument obligatoire correspond au chemin du fichier.
-\begin{tdocexa}<nonb>
+\begin{tdocexa}
Ce qui suit a été obtenu via \tdocinlatex+\tdocshowcaseinput{external.tex}+.
\medskip
\tdocshowcaseinput{examples-showcase-external.tex}
+
\medskip
Quant à \tdocinlatex+\tdocshowcaseinput[color = orange]{external.tex}+\,, ceci produira le changement de couleur observable ci-après.
@@ -807,15 +876,21 @@ Pour obtenir des rendus en important le code depuis un fichier externe, au lieu
\medskip
\tdocshowcaseinput[color = orange]{examples-showcase-external.tex}
+
\end{tdocexa}
\section{Cas d'utilisation en \LaTeX}
-Documenter un package ou une classe se fait efficacement via des cas d'utilisation montrant à la fois du code et le résultat correspondant.
+Documenter un package ou une classe se fait efficacement via des cas d'utilisation montrant à la fois du code et le résultat correspondant.%
+\footnote{
+ La mise en forme des codes se fait via le package \tdocpack{minted}.
+}
-% ------------------ %
+\begin{tdoccaut}
+ La version 3 de \tdocpack{minted} ne peut pas être prise en compte pour le moment car elle comporte des bugs : voir \url{https://github.com/gpoore/minted/issues/401}. On force donc l'usage de la version 2 de \tdocpack{minted}.
+\end{tdoccaut}
\subsection{Codes \tdocquote{en ligne}} \label{tdoc-listing-inline}
@@ -836,16 +911,14 @@ Voici des exemples d'utilisation.
\begin{tdocnote}
- La macro \tdocmacro{tdocinlatex} est utilisable dans une note de pied de page : voir plus bas
+ La macro \tdocmacro{tdocinlatex} est utilisable dans une note de pied de page : voir ci-dessous.
\footnote{
\tdocinlatex+$minted = TOP$+ a été tapé \tdocinlatex|\tdocinlatex+$minted = TOP$+| dans cette note de bas de page..
- }.
+ }
De plus, une couleur de fond est volontairement utilisée pour subtilement faire ressortir les codes \tdocinlatex#\LaTeX#\,.
\end{tdocnote}
-% ------------------ %
-
\subsection{Codes tapés directement}
@@ -853,6 +926,7 @@ Voici des exemples d'utilisation.
Via \tdocenv[{[sbs]}]{tdoclatex}, on affichera un code et son rendu côte à côte.
Indiquons que \tdocinlatex#sbs# est pour \tdocquote{\tdocprewhy{s.ide} \tdocprewhy{b.y} \tdocprewhy{s.ide}} soit \tdocinEN{côte à côte}.
\tdocdocbasicinput{examples-listing-ABC.tex}
+
\end{tdocexa}
@@ -860,10 +934,10 @@ Voici des exemples d'utilisation.
\begin{tdocexa}[À la suite]
- \tdocenv{tdoclatex} produit le résultat suivant qui correspond à l'option par défaut \tdocinlatex#std#
+ \tdocenv{tdoclatex} produit le résultat suivant qui correspond à l'option par défaut \tdocinlatex#std#\,.
\footnote{
\tdocinlatex{std} fait référence au comportement \tdocquote{standard} de \tdocpack{tcolorbox} vis à vis de la librairie \tdocpack{minted}.
- }.
+ }
\begin{tdoclatex}
$A = B + C$
@@ -889,11 +963,13 @@ Voici des exemples d'utilisation.
\begin{tdocwarn}
Avec la mise en forme par défaut, si le code commence par un crochet ouvrant, il faudra indiquer explicitement l'option par défaut.
\tdocdocbasicinput{examples-listing-strange.tex}
-
+
+
\smallskip
-
+
Une autre méthode consiste à utiliser la primitive \tdocmacro{string}.
\tdocdocbasicinput{examples-listing-strange-bis.tex}
+
\end{tdocwarn}
@@ -903,9 +979,10 @@ Pour les codes suivants, on considère un fichier de chemin relatif \verb+exampl
\tdoclatexinput[code]{examples-listing-xyz.tex}
+
\medskip
-La macro \tdocmacro{tdoclatexinput}, présentée ci-dessous, attend le chemin d'un fichier et propose les mêmes options que l'environnement \tdocenv{tdoclatex}.
+La macro \tdocmacro{tdoclatexinput}, présentée ci-dessous, attend le chemin d'un fichier et propose les mêmes options que l'environnement \tdocenv*{tdoclatex}.
% ------------------ %
@@ -916,11 +993,13 @@ La macro \tdocmacro{tdoclatexinput}, présentée ci-dessous, attend le chemin d'
\begin{tdoclatex}[code]
\tdoclatexinput[sbs]{examples-listing-xyz.tex}
+
\end{tdoclatex}
Ceci produit la mise en forme suivante.
\tdoclatexinput[sbs]{examples-listing-xyz.tex}
+
\end{tdocexa}
@@ -932,11 +1011,13 @@ La macro \tdocmacro{tdoclatexinput}, présentée ci-dessous, attend le chemin d'
\begin{tdoclatex}[code]
\tdoclatexinput{examples-listing-xyz.tex}
+
\end{tdoclatex}
Ceci produit la mise en forme suivante où l'option employée par défaut est \tdocinlatex#std#.
\tdoclatexinput{examples-listing-xyz.tex}
+
\end{tdocexa}
@@ -948,32 +1029,33 @@ La macro \tdocmacro{tdoclatexinput}, présentée ci-dessous, attend le chemin d'
\begin{tdoclatex}[code]
\tdoclatexinput[code]{examples-listing-xyz.tex}
+
\end{tdoclatex}
Ceci produit la mise en forme suivante.
\tdoclatexinput[code]{examples-listing-xyz.tex}
-\end{tdocexa}
+\end{tdocexa}
-% ------------------ %
\subsection{Codes importés et mis en situation} \label{tdoc-latexshow}
-\begin{tdocexa}[Showcase]
+\begin{tdocexa}[Mise en situation]
Ce qui suit s'obtient via \tdocinlatex+\tdoclatexshow{examples-listing-xyz.tex}+.
\medskip
\begin{tdoc-doc-showcase}
\tdoclatexshow{examples-listing-xyz.tex}
+
\end{tdoc-doc-showcase}
\end{tdocexa}
\begin{tdocnote}
- Les textes par défaut tiennent compte de la langue choisie lors du chargement du package \tdocpack{tutodoc}.
+ Les textes par défaut tiennent compte de la langue choisie lors du chargement du package \thispack{}.
\end{tdocnote}
@@ -987,6 +1069,7 @@ La macro \tdocmacro{tdoclatexinput}, présentée ci-dessous, attend le chemin d'
\begin{tdoc-doc-showcase}
\tdoclatexshow[explain = Voici le rendu réel.]{examples-listing-xyz.tex}
+
\end{tdoc-doc-showcase}
\end{tdocexa}
@@ -995,13 +1078,14 @@ La macro \tdocmacro{tdoclatexinput}, présentée ci-dessous, attend le chemin d'
\begin{tdocexa}[Les options disponibles]
- En plus du texte explicatif, il est aussi possible d'utiliser toutes les options de \tdocenv{tdocshowcase}, voir \ref{tdoc-showcase} page \pageref{tdoc-showcase}.
+ En plus du texte explicatif, il est aussi possible d'utiliser toutes les options de l'environnement \tdocenv*{tdocshowcase}, voir \ref{tdoc-showcase} page \pageref{tdoc-showcase}.
Voici un exemple illustrant ceci.
\medskip
\tdoclatexinput[code]{examples-listing-latexshow-options.tex}
+
\medskip
Ceci va produire ce qui suit.
@@ -1010,6 +1094,7 @@ La macro \tdocmacro{tdoclatexinput}, présentée ci-dessous, attend le chemin d'
\begin{tdoc-doc-showcase}
\input{examples-listing-latexshow-options.tex}
+
\end{tdoc-doc-showcase}
\end{tdocexa}
@@ -1019,8 +1104,6 @@ La macro \tdocmacro{tdoclatexinput}, présentée ci-dessous, attend le chemin d'
Afin de faciliter le suivi d'un package, il est indispensable de fournir un historique indiquant les changements effectués lors de la publication d'une nouvelle version.
-% ------------------ %
-
\subsection{À quel moment ?}
@@ -1034,6 +1117,7 @@ On peut au choix dater quelque chose, ou bien le versionner, dans ce second cas
La macro \tdocmacro{tdocdate} permet d'indiquer une date dans la marge comme dans l'exemple suivant.
\tdoclatexshow{examples-version-n-change-dating.tex}
+
\end{tdocexa}
@@ -1044,45 +1128,63 @@ On peut au choix dater quelque chose, ou bien le versionner, dans ce second cas
Associer un numéro de version à une nouveauté se fait via la macro \tdocmacro{tdocversion}, la couleur et la date étant des arguments optionnels.
\tdoclatexshow{examples-version-n-change-versioning.tex}
+
\end{tdocexa}
-\begin{tdocimportant}
- \leavevmode
-
+\begin{tdocimp}
\begin{enumerate}
\item Les macros \tdocmacro{tdocdate} et \tdocmacro{tdocversion} nécessitent deux compilations.
\item Comme la langue indiquée pour cette documentation est le français, la date dans le rendu final est au format \texttt{JJ/MM/AAAA} alors que dans le code celle-ci devra toujours être saisie au format anglais \texttt{AAAA-MM-JJ}.
\end{enumerate}
-\end{tdocimportant}
+\end{tdocimp}
\begin{tdocwarn}
- Seul l'emploi du format numérique \tdocinlatex+YYYY-MM-DD+ est vérifié
+ Seul l'emploi du format numérique \tdocinlatex+YYYY-MM-DD+ est vérifié,
\footnote{
Techniquement, vérifier la validité d'une date, via \LaTeX3, ne présente pas de difficulté.
- },
+ }
et ceci est un choix ! Pourquoi cela ? Tout simplement car dater et versionner des explications devrait se faire de façon semi-automatisée afin d'éviter tout bug humain.
% \footnote{
-% L'auteur de \tdocpack{tutodoc} est entrain de mettre en place un ensemble d'outils permettant une telle semi-automatisation.
+% L'auteur de \thispack{} est entrain de mettre en place un ensemble d'outils permettant une telle semi-automatisation.
% }.
\end{tdocwarn}
\subsection{Quoi de neuf ?}
-\tdocpack{tutodoc} propose différents environnements pour indiquer rapidement et clairement ce qui a été fait
+\thispack{} propose la macro \tdocmacro{tdocstartproj} et différents environnements pour indiquer rapidement et clairement ce qui a été fait lors des derniers changements.%
\footnote{
L'utilisateur n'a pas besoin de tous les détails techniques.
}
-lors des derniers changements.
+
+
+\begin{tdocnote}
+ Concernant les icônes, voir la note au début de la section \ref{tdoc-colorful-focus} page \pageref{tdoc-colorful-focus}.
+\end{tdocnote}
+
+
+% ------------------ %
+
+
+\begin{tdocexa}[Juste pour la toute première version]
+ \leavevmode
+
+ \tdoclatexinput[sbs]{examples-version-n-change-first.tex}
+
+\end{tdocexa}
+
+
+% ------------------ %
\begin{tdocexa}[Pour les nouveautés]
\leavevmode
\tdoclatexinput[sbs]{examples-version-n-change-new.tex}
+
\end{tdocexa}
@@ -1093,6 +1195,7 @@ lors des derniers changements.
\leavevmode
\tdoclatexinput[sbs]{examples-version-n-change-update.tex}
+
\end{tdocexa}
@@ -1103,6 +1206,7 @@ lors des derniers changements.
\leavevmode
\tdoclatexinput[sbs]{examples-version-n-change-break.tex}
+
\end{tdocexa}
@@ -1113,6 +1217,7 @@ lors des derniers changements.
\leavevmode
\tdoclatexinput[sbs]{examples-version-n-change-pb.tex}
+
\end{tdocexa}
@@ -1123,23 +1228,35 @@ lors des derniers changements.
\leavevmode
\tdoclatexinput[sbs]{examples-version-n-change-fix.tex}
+
\end{tdocexa}
% ------------------ %
-\begin{tdocexa}[Thématiques aux choix]
+\begin{tdocexa}[Thématiques aux choix avec une icône]
\leavevmode
- \tdoclatexinput[sbs]{examples-version-n-change-unclassifiable.tex}
+ \tdoclatexinput[sbs]{examples-version-n-change-user-choice-icon.tex}
+
+\end{tdocexa}
+
+
+% ------------------ %
+
+
+\begin{tdocexa}[Thématiques aux choix sans icône]
+ \leavevmode
+
+ \tdoclatexinput[sbs]{examples-version-n-change-user-choice.tex}
+
\end{tdocexa}
-\newpage
\section{Décorations}
-Finissons cette documentation avec de petites outils de mise en forme pouvant rendre de grands services.
+Finissons cette documentation avec un petit outil de mise en forme qui rend de grands services.
\begin{tdoclatex}[sbs]
@@ -1151,54 +1268,161 @@ Ceci fonctionne avec des énumérations.
\begin{itemize}
\item Point souligné.
-
- \item Autre chose utile.
\end{itemize}
\tdocsep % Un comportement uniforme.
Ble, ble, ble...
+\end{tdoclatex}
-Bli, bli, bli...
-\tdocxspace % Espace subtile
- % mais utile.
+\section{Historique}
-Blo, blo, blo...
+\small
-Blu, blu, blu...
+\tdocversion{1.4.0}[2024-09-28]
+
+\begin{tdocbreak}
+ \item L'environnement \tdocenv*{tdoccaution} a été renommé \tdocenv*{tdoccaut} pour une saisie simplifiée.
+
+ \item Mise en avant de contenus : les exemples et remarques, indiqués via les environnements \tdocenv*{tdocexa} et \tdocenv*{tdocrem}, sont toujours numérotés, et ils partagent le même compteur.
+
+ \item La macro inutilisée \tdocmacro{tdocxspace} a été supprimée.
+\end{tdocbreak}
+
+
+\begin{tdocnew}
+ \item Journal des changements : la macro \tdocmacro{tdocstartproj} permet de gérer le cas de la première version publique.
+
+ \item Factorisation du code : la macro \tdocmacro{tdocicon} est en charge de l'ajout d'icônes devant du texte.
+\end{tdocnew}
+
+
+\begin{tdocupdate}
+ \item Couleurs : les macros \tdocmacro{tdocdarkcolor} et \tdocmacro{tdoclightcolor} proposent un argument facultatif.
+ \begin{enumerate}
+ \item \tdocmacro{tdocdarkcolor} : la quantité de couleur par rapport au noir peut être définie de manière facultative.
+
+ \item \tdocmacro{tdoclightcolor} : le taux de transparence peut être défini de manière facultative.
+ \end{enumerate}
+
+ \item Mise en avant de contenus : réduction de l'espace autour du contenu dans les cadres colorés.
+
+ \item Gestion des versions: un meilleur espacement verticalement via \tdocmacro{vphantom}.
+\end{tdocupdate}
+
+\tdocsep
+
+
+% ------------------ %
+
+
+\tdocversion{1.3.1}[2024-09-26]
+
+\begin{tdocnew}
+ \item Version étoilée de \tdocmacro{tdocenv} pour n'avoir que le nom de l'environnement.
+\end{tdocnew}
+
+\tdocsep
+
+
+% ------------------ %
+
+
+\tdocversion{1.3.0}[2024-09-25]
+
+\begin{tdocprob}
+ \item La version 3 de \tdocpack{minted} ne peut pas être prise en compte pour le moment car elle comporte des bugs : voir \url{https://github.com/gpoore/minted/issues/401}. On force donc l'usage de la version 2 de \tdocpack{minted}.
+\end{tdocprob}
+
+
+\begin{tdocbreak}
+ \item L'environnement \tdocenv*{tdocimportant} a été renommé \tdocenv*{tdocimp} pour une saisie simplifiée.
+\end{tdocbreak}
+
+
+\begin{tdocnew}
+ \item Journal des changements : les environnements proposés utilisent des icônes.
+
+
+ \item Mise en avant de contenus : des cadres colorés avec des icônes sont proposés pour les environnements suivants.
+ \bgroup
+ \setlength\multicolsep{5pt}
+ \begin{multicols}{3}
+ \begin{enumerate}
+ \item \tdocenv*{tdoccaution}
+ \item \tdocenv*{tdocimp}
+ \item \tdocenv*{tdocnote}
+ \item \tdocenv*{tdoctip}
+ \item \tdocenv*{tdocwarn}
+ \end{enumerate}
+ \end{multicols}
+ \egroup
+\end{tdocnew}
+
+\tdocsep
+
+
+% ------------------ %
+
+
+\tdocversion{1.2.0-a}[2024-08-23]
+
+\begin{tdocupdate}
+ \item \tdocmacro{tdocversion}
+ \begin{enumerate}
+ \item Le numéro de version est au-dessus de la date.
+
+ \item L'espacement est mieux géré lorsque la date est absente.
+ \end{enumerate}
+\end{tdocupdate}
+
+
+\begin{tdocfix}
+ \item Mise en avant de contenus : les traductions françaises de \tdocinEN*{caution} et \tdocinEN*{danger} étaient erronées.
+\end{tdocfix}
+
+\tdocsep
+
+
+% ------------------ %
-\end{tdoclatex}
-\newpage
-\section{Historique}
\tdocversion{1.1.0}[2024-01-06]
\begin{tdocnew}
- \item Journal des changements : deux nouveaux environnements.
+ \item Journal des changements : deux nouveaux environnements.
\begin{enumerate}
\item \tdocenv{tdocbreak} pour les \tdocquote{bifurcations}\,, soit les modifications non rétrocompatibles.
\item \tdocenv{tdocprob} pour les problèmes repérés.
\end{enumerate}
- \item \tdocmacro{tdocinlatex}: un jaune léger est utilisé comme couleur de fond.
+ \item \tdocmacro{tdocinlatex}: un jaune léger est utilisé comme couleur de fond.
\end{tdocnew}
\tdocsep
+
+% ------------------ %
+
+
\tdocversion{1.0.1}[2023-12-08]
\begin{tdocfix}
- \item \tdocmacro{tdocenv}: l'espacement est maintenant correct, même si le paquet \tdocpack{babel} n'est pas chargé avec la langue française.
+ \item \tdocmacro{tdocenv}: l'espacement est maintenant correct, même si le paquet \tdocpack{babel} n'est pas chargé avec la langue française.
- \item \tdocenv[{[nostripe]}]{tdocshowcase}: les sauts de page autour des lignes \tdocquote{cadrantes} devraient être rares dorénavant.
+ \item \tdocenv[{[nostripe]}]{tdocshowcase}: les sauts de page autour des lignes \tdocquote{cadrantes} devraient être rares dorénavant.
\end{tdocfix}
\tdocsep
+
+% ------------------ %
+
+
\tdocversion{1.0.0}[2023-11-29]
-Première version publique du projet.
+\tdocstartproj{Première version publique du projet.}
\end{document}
diff --git a/macros/latex/contrib/uantwerpendocs/beamerthemeuantwerpenuserguide.pdf b/macros/latex/contrib/uantwerpendocs/beamerthemeuantwerpenuserguide.pdf
index 16e6629f51..e837b22226 100644
--- a/macros/latex/contrib/uantwerpendocs/beamerthemeuantwerpenuserguide.pdf
+++ b/macros/latex/contrib/uantwerpendocs/beamerthemeuantwerpenuserguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpenbamathesis-example.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpenbamathesis-example.pdf
index 12a454ac52..02683a2be0 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpenbamathesis-example.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpenbamathesis-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpencoursetext-example.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpencoursetext-example.pdf
index 9f65c9a371..289fe585c8 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpencoursetext-example.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpencoursetext-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpendocs.dtx b/macros/latex/contrib/uantwerpendocs/uantwerpendocs.dtx
index acddbf252f..6ba894ce8f 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpendocs.dtx
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpendocs.dtx
@@ -35,11 +35,11 @@
%<le>\ProvidesClass{uantwerpenletter}
%<ex>\ProvidesClass{uantwerpenexam}
%<bmr>\ProvidesPackage{beamerthemeuantwerpen}
-%<cls|ct|bmt|pt|rp|le|ex|bmr> [2024/06/04 v4.7 .dtx skeleton file]
+%<cls|ct|bmt|pt|rp|le|ex|bmr> [2024/08/27 v4.8 .dtx skeleton file]
%<*driver>
\documentclass[a4paper]{ltxdoc}
-\def\fileversion{4.7}
-\def\filedate{2024/06/24}%
+\def\fileversion{4.8}
+\def\filedate{2024/08/27}%
\usepackage{makeidx}
\usepackage{alltt}
\usepackage{longtable}
@@ -127,7 +127,8 @@
% multiple degree programs for exams and course texts, corrected
% disclaimers, replaced 'basic usage' in documentation by heavily
% commented examples}
-% \changes{v4.7}{2024/06/13}{\@ Minor bugfixes}
+% \changes{v4.7}{2024/06/13}{\@ Minor bugfixes on the request of the library}
+% \changes{v4.8}{2024/08/27}{\@ Minor bugfixes on the request of the Antwerp Doctoral School}
%
% \DoNotIndex{\newcommand,\newenvironment,\begin,\bfseries,\draw,\clip,\else,\fi,\if,\fill,\filldraw,\ifthenelse,\ifx,\textwidth,\node,\\,\@empty,\@tempdima,\@tempdimb,\@tempswatrue,\{,\},\ ,\bf,\BODY,\break,\Alph,\and,\define@key,\color,\dx,\dy,\g,\gdef,\hbox,\tiny,\scriptsize,\footnotesize,\small,\normalsize,\large,\Large,\LARGE,\huge,\Huge,\l,\LaTeX,\let,\p@,\relax,\renewcommand,\Requirepackage,\textbf,\textsf,\texttt,\textbackslash,\vspace,\hspace,\hfill,\hskip,\vskip,\hline,\vrule,\typeout,\usebox,\end,\paperheight,\paperwidth,\par,\NewDocumentCommand,\seq}
% \setlength{\parindent}{0em}
@@ -1210,7 +1211,7 @@
\jurymember{prof. dr. M. Byr}{IMEC, Nederland}
%% specify your degree (manually) and where and when you obtain your degree
-\degree{doctor in de toegepaste ingenieurswetenschappen}
+\degree{doctor in de Toegepaste Ingenieurswetenschappen}
\defenselocation{Antwerpen}
\defensedate{2024}
@@ -1364,8 +1365,8 @@
\jurymember{prof. dr. M. Byr}{IMEC, The Netherlands}
%% specify your degree (manually) and where and when you obtain your degree
-\degree{doctor in applied engineering}
-\defenselocation{Antwerpen}
+\degree{doctor in Applied Engineering}
+\defenselocation{Antwerp}
\defensedate{2024}
%% specify a fancy photo for your titlepage (if you don't want a dull one)
@@ -2808,8 +2809,8 @@ juryname = Jury
jurymembersname = Members
jurychairname = Chair
bmthesisname = Thesis to obtain the degree of
-pthesisnamei = Thesis submitted in fulfilment of the requirements for the degree of
-pthesisnameii = at the University of Antwerp
+pthesisnamei = Thesis submitted for the degree of
+pthesisnameii = at the University of Antwerp to be defended by
weightname = Weight
%</endata>
% \end{macrocode}
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpendocs.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpendocs.pdf
index be9b782f96..f5982a2a2c 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpendocs.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpendocs.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example1.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example1.pdf
index 23e7289e70..a6593228c5 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example1.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example1.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example2.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example2.pdf
index 3227bee08f..3de882ad2f 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example2.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpenexam-example2.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpenletter-example.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpenletter-example.pdf
index d29ccbeab3..014dce28cb 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpenletter-example.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpenletter-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example1.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example1.pdf
index 99668c6958..b44e6b8707 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example1.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example1.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example2.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example2.pdf
index 9645cf2ee1..543028638d 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example2.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example2.pdf
Binary files differ
diff --git a/macros/latex/contrib/uantwerpendocs/uantwerpenreport-example.pdf b/macros/latex/contrib/uantwerpendocs/uantwerpenreport-example.pdf
index c3610d3734..a10239ae2c 100644
--- a/macros/latex/contrib/uantwerpendocs/uantwerpenreport-example.pdf
+++ b/macros/latex/contrib/uantwerpendocs/uantwerpenreport-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/ucph-revy/README.md b/macros/latex/contrib/ucph-revy/README.md
index 3b0e47a0a4..d2b6baed04 100644
--- a/macros/latex/contrib/ucph-revy/README.md
+++ b/macros/latex/contrib/ucph-revy/README.md
@@ -1,6 +1,6 @@
Package ucph-revy
=================
-v1.0.1
+v1.0.2
A class for typesetting scripts, containing both lyrics and prose, in
the style used by the student revues (revy) at the Faculties of
diff --git a/macros/latex/contrib/ucph-revy/ucph-revy-da-doc.pdf b/macros/latex/contrib/ucph-revy/ucph-revy-da-doc.pdf
index 5b9426a4f3..1080060964 100644
--- a/macros/latex/contrib/ucph-revy/ucph-revy-da-doc.pdf
+++ b/macros/latex/contrib/ucph-revy/ucph-revy-da-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/ucph-revy/ucph-revy-da-man.pdf b/macros/latex/contrib/ucph-revy/ucph-revy-da-man.pdf
index 8f252d20ff..d040dacefe 100644
--- a/macros/latex/contrib/ucph-revy/ucph-revy-da-man.pdf
+++ b/macros/latex/contrib/ucph-revy/ucph-revy-da-man.pdf
Binary files differ
diff --git a/macros/latex/contrib/ucph-revy/ucph-revy-en-doc.pdf b/macros/latex/contrib/ucph-revy/ucph-revy-en-doc.pdf
index 3d09e9a2be..784e1235ca 100644
--- a/macros/latex/contrib/ucph-revy/ucph-revy-en-doc.pdf
+++ b/macros/latex/contrib/ucph-revy/ucph-revy-en-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/ucph-revy/ucph-revy-en-man.pdf b/macros/latex/contrib/ucph-revy/ucph-revy-en-man.pdf
index 68c51ca12d..d2baff1111 100644
--- a/macros/latex/contrib/ucph-revy/ucph-revy-en-man.pdf
+++ b/macros/latex/contrib/ucph-revy/ucph-revy-en-man.pdf
Binary files differ
diff --git a/macros/latex/contrib/ucph-revy/ucph-revy.dtx b/macros/latex/contrib/ucph-revy/ucph-revy.dtx
index 79a9a1aa0b..9fdb39549e 100644
--- a/macros/latex/contrib/ucph-revy/ucph-revy.dtx
+++ b/macros/latex/contrib/ucph-revy/ucph-revy.dtx
@@ -20,7 +20,7 @@
%<class>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
%<class>\ProvidesClass{ucph-revy}
%<*class>
- [2024/02/07 v1.0.1 Fix occational divide by 0]
+ [2024/09/24 v1.0.2 A class for making musical manuscripts]
%</class>
%<*driver>
\documentclass[a4paper]{ltxdoc}
@@ -372,7 +372,7 @@
% betyder bliver gennemgået i sektion \ref{thumbindex}.
% \end{danish}
% \begin{english}
-% \cn\ inherits from the \texttt{article}\DescribeMacro{article}
+% \cn\ inherits from the \texttt{article}\DescribeMacro{article}\
% class, and accepts all its options. It sets \texttt{a4paper} and
% \texttt{11pt} by default, if not given any contrary options.
%
@@ -470,13 +470,14 @@
% \end{implementation}
%
% \begin{danish}
+% \changes{v1.0.2}{2024/09/24}{Skift fontenc til OT1}
% I eksemplet inkluderer vi fire pakker. De er ikke strengt
% nødvendige for at få \cn\ til at fungere, men de kommer næsten med
% sikkerhed til at gøre dit liv lettere.
%
% \medskip\noindent\begin{tabulary}{\textwidth}{lL}
% \verb|\usepackage[utf8]{inputenc}| & \\
-% \verb|\usepackage[T1]{fontenc}| &
+% \verb|\usepackage[OT1]{fontenc}| &
% Gør \LaTeX's håndtering af danske bogstaver mere moderne. \\
% \verb|\usepackage[danish]{babel}| &
% Fortæller \LaTeX\ en masse ting om dansk, bl.a. hvordan
@@ -490,13 +491,14 @@
% \end{tabulary}
% \end{danish}
% \begin{english}
+% \changes{v1.0.2}{2024/09/24}{Change fontenc to OT1}
% In the example, we've included three packages that aren't strictly
% necessary for \cn\ to function, but will probably make your life
% easier.
%
% \medskip\noindent\begin{tabulary}{\textwidth}{lL}
% \verb|\usepackage[utf8]{inputenc}| & \\
-% \verb|\usepackage[T1]{fontenc}| &
+% \verb|\usepackage[OT1]{fontenc}| &
% Modernize \LaTeX's handling of (particularly special)
% characters.\\
% \verb|\usepackage{hyperref}| &
@@ -700,23 +702,24 @@
% \begin{danish}
% For at sammenligningen kan fungere, er vi afhængige af, at
% tekstrepræsentationen ikke skifter undervejs. Det kan ske, hvis
-% \verb|.tex|--filen kalder \textsf{fontenc}, og titlerne
-% indeholder specialtegn. Den simple og effektive\footnote{Læs:
-% det er et hack, som ikke har givet mig problemer \emph{endnu}.}
-% løsning er bare at kalde \textsf{fontenc} selv, så der ikke er
-% plads til misforståelser.
+% \verb|.tex|--filen kalder
+% \DescribeMacro{fontenc}\textsf{fontenc}, og titlerne indeholder
+% specialtegn. Den simple og effektive\footnote{Læs: det er et
+% hack, som ikke har givet mig problemer \emph{endnu}.} løsning
+% er bare at kalde \textsf{fontenc} selv, så der ikke er plads til
+% misforståelser.
% \end{danish}
% \begin{english}
% For this comparing of titles to work, we depend of the text
% representation not changing between the \verb|\title|
% declaration and the time when the thumb index routine runs. It
-% might, though, if \textsf{fontenc} is called. To quickly knock
-% that problem on the head,\footnote{In a way that hasn't come
-% back to bite \emph{me} yet.} we'll just call \textsf{fontenc}
-% ourselves.
+% might, though, if \DescribeMacro{fontenc}\textsf{fontenc} is
+% called. To quickly knock that problem on the head,\footnote{In a
+% way that hasn't come back to bite \emph{me} yet.} we'll just
+% call \textsf{fontenc} ourselves.
% \end{english}
% \begin{macrocode}
- \RequirePackage[T1]{fontenc}
+ \RequirePackage[OT1]{fontenc}
% \end{macrocode}
%
% \begin{danish}
@@ -2927,22 +2930,51 @@
}{}
% \end{macrocode}
% \end{implementation}
+%
+% \begin{danish}
+% \subsection{Assorterede emner}
+% \subsubsection{\SaTyR}
+% \end{danish}
+% \begin{english}
+% \subsection{Miscellenia}
+% \subsubsection{\SaTyR}
+% \end{english}
+% \begin{macro}{\SaTyR}
+% \begin{danish}
+% \changes{v1.0.2}{2024/09/24}{SaTyR-makro}
+% Man skriver \SaTyR{}Revy ved at elske alle dyr, og derefter
+% skrive
+% \end{danish}
+% \begin{english}
+% \changes{v1.0.2}{2024/09/24}{SaTyR-macro}
+% \SaTyR{}Revy, which is produced by the students at the Faculty
+% of Science at the University of Copenhagen, is properly written
+% by saying
+% \end{english}
+% \begin{verbatim}
+%\SaTyR{}Revy
+% \end{verbatim}
+% \begin{implementation}
+% \begin{macrocode}
+\newcommand{\SaTyR}{S\hspace*{-.2ex}\raisebox{-.15em}{A}\hspace*{-.5ex}TyR}
+% \end{macrocode}
+% \end{implementation}
+% \end{macro}
% \iffalse
%<*driver>
\jump
%</driver>
% \fi
-%
% \begin{implementation}
-% \begin{danish}
-% \subsection{\texttt{.aux}--filen}
+% \begin{danish}
+% \subsubsection{\texttt{.aux}--filen}
% Til fremtidigt brug sørger vi for, at vores metadata også bliver
% skrevet ud til \texttt{.aux}--filen, når dokumentet er færdigt.
%
% Det er også her, vi sætter en \texttt{label} på den sidste side.
% \end{danish}
% \begin{english}
-% \subsection{The \texttt{.aux} file}
+% \subsubsection{The \texttt{.aux} file}
% For futue use, we will also ensure that our metadata is written
% to the \texttt{.aux} file at the end of the document.
%
@@ -2986,11 +3018,13 @@
% \end{implementation}
% \begin{danish}
% \section{Komplet eksempel}
+% \changes{v1.0.2}{2024/09/24}{Tilpasninger i eksempelfil}
% \label{fullex}
% \VerbatimInput{Eksempel.tex}
% \end{danish}
% \begin{english}
% \section{Complete example}
+% \changes{v1.0.2}{2024/09/24}{Minor adjustments in example file}
% \label{fullex}
% \VerbatimInput{Example.tex}
% \end{english}
@@ -3001,7 +3035,7 @@
\documentclass{ucph-revy}
\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
+\usepackage[OT1]{fontenc}
\usepackage[danish]{babel}
\usepackage{hyperref}
%<*driver>
@@ -3011,6 +3045,7 @@
\urlstyle{sf}
\version{1.0}
+%% følgende definitioner kan godt fjernes, hvis der ikke er brug for dem:
\revyname{FysikRevy\texttrademark}
\revyyear{2019}
\status{eksempel}
@@ -3033,6 +3068,7 @@
\role{I} Vred instruktør
\role{A9}[A--ni] Anine
\end{roles}
+%% props-miljøet kan fjernes, hvis der ikke er brug for det
\begin{props}
\prop{Hedegaard--hår}[Person, der skaffer]
\prop{Didgeridoo}[Anine]
@@ -3139,7 +3175,7 @@
\documentclass{ucph-revy}
\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
+\usepackage[OT1]{fontenc}
\usepackage{hyperref}
%<*driver>
\land
@@ -3148,6 +3184,7 @@
\urlstyle{sf}
\version{1.0}
+%% The settings below may be omitted if their inclusion is undesired
\revyname{The Meaning of Liff}
\revyyear{3001}
\title{Example}
@@ -3185,6 +3222,7 @@
\role{CC}[Eric] Crucified Criminal
\role{B}[Graham] Brian
\end{roles}
+%% The props environment may be omitted if found to be superfluous
\propname{Props:}
\begin{props}
\prop{Large sign}
diff --git a/macros/latex/contrib/univie-ling/README b/macros/latex/contrib/univie-ling/README
index b90c86e8cc..ff3aa6b5a9 100644
--- a/macros/latex/contrib/univie-ling/README
+++ b/macros/latex/contrib/univie-ling/README
@@ -97,6 +97,46 @@ also have a look at the example files.
== CHANGES ==
+V. 2.9 (2024-09-28):
+ - univie-ling-wlg:
+ * Fix pagination with \frontmatter articles.
+ * Improve parts in TOC.
+ * Clear double page before parts.
+ - univie-ling.bbx:
+ * Add option "annotations" which, if true, will print out
+ the annotation field (useful for annotated bibliographies).
+ * Add manual.
+
+V. 2.8 (2024-09-20):
+ - univie-ling-thesis:
+ * Add class option titlepage.
+ * Adapt title page to recent design. This entails a change
+ of sans serif font from Arial to Source Sans Pro.
+ * Use TeX Gyre Pagella rather than Palatino with fonts=otf.
+ - univie-ling-wlg:
+ * Fix pagination issue with titlepage=specialprint.
+ * part pages are now empty (no pagination and heading).
+ - univie-ling-handout:
+ - univie-ling-expose:
+ - univie-ling-paper:
+ - univie-ling-poster:
+ - univie-ling-thesis:
+ - univie-ling-wlg:
+ * Add basic support for thebibliography environment.
+ * Update documentation on bibliography beyond biblatex.
+
+V. 2.7 (2024-07-23):
+ - univie-ling-wlg: Use proper spacing with covington's
+ reflist environment.
+ - univie-ling-handout:
+ - univie-ling-expose:
+ - univie-ling-paper:
+ - univie-ling-poster:
+ - univie-ling-thesis:
+ - univie-ling-wlg:
+ * Fix empty argument check in \weblink.
+ * Fix spacing after \weblink.
+
V. 2.6 (2024-06-27):
- univie-ling-poster: add smallmargins option.
- univie-ling-thesis: fix running headers in twoside mode.
diff --git a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
index 43b942d15c..78f5ac4645 100644
--- a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
+++ b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
@@ -38,7 +38,7 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesFile{univie-ling.bbx}[2024/06/27 v.2.6 biblatex bibliography style]
+\ProvidesFile{univie-ling.bbx}[2024/09/28 v.2.9 biblatex bibliography style]
% Load base style (authoryear-comp)
\RequireBibliographyStyle{authoryear-comp}
@@ -75,9 +75,14 @@
% Option "issueeditor": Output journal issue editor (false by default)
\newtoggle{issueeditor}
-\DeclareBibliographyOption{issueeditor}[false]{%
+\DeclareBibliographyOption{issueeditor}[true]{%
\settoggle{issueeditor}{#1}}
+% Option "annotations": Output annotations (false by default)
+\newtoggle{annotations}
+\DeclareBibliographyOption{annotations}[true]{%
+ \settoggle{annotations}{#1}}
+
%
% NAME formatting (general)
%
@@ -518,6 +523,23 @@
\usebibmacro{date}%
\newunit}
+% Vertical separation for annotations
+\newlength\annotsep
+\setlength\annotsep{3pt}
+\newcommand*{\annotationdelim}{\adddot\par\setunit{}\nobreak}
+\AtEndOfPackage{%
+ \iftoggle{annotations}
+ {\setlength\bibparsep{\annotsep}}
+ {}%
+}
+
+\renewbibmacro*{annotation}{%
+ \iffieldundef{annotation}
+ {\printfile[annotation]{
+ \bibannotationprefix\thefield{entrykey}.tex}}%
+ {\printfield{annotation}}%
+}
+
\renewbibmacro*{labeltitle}{%
\iffieldundef{label}
{\iffieldundef{shorttitle}
@@ -620,6 +642,9 @@
% no pp. prefix
\DeclareFieldFormat{pages}{#1}
+% Add delimiter
+\DeclareFieldFormat{annotation}{\annotationdelim #1}
+
\DeclareFieldFormat{doi}{%
\ifhyperref
{\href{https://doi.org/#1}{\nolinkurl{https://doi.org/#1}}}
@@ -664,6 +689,9 @@
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
+ \iftoggle{annotations}
+ {\usebibmacro{annotation}}
+ {}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{book}{%
@@ -714,6 +742,9 @@
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
+ \iftoggle{annotations}
+ {\usebibmacro{annotation}}
+ {}%
\usebibmacro{finentry}}
\DeclareBibliographyAlias{collection}{book}
@@ -771,6 +802,9 @@
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
+ \iftoggle{annotations}
+ {\usebibmacro{annotation}}
+ {}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{inbook}{%
@@ -829,6 +863,9 @@
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
+ \iftoggle{annotations}
+ {\usebibmacro{annotation}}
+ {}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{thesis}{%
@@ -864,6 +901,9 @@
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
+ \iftoggle{annotations}
+ {\usebibmacro{annotation}}
+ {}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{unpublished}{%
@@ -895,6 +935,9 @@
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
+ \iftoggle{annotations}
+ {\usebibmacro{annotation}}
+ {}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{periodical}{%
@@ -924,6 +967,9 @@
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
+ \iftoggle{annotations}
+ {\usebibmacro{annotation}}
+ {}%
\usebibmacro{finentry}}
\endinput
diff --git a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
index 30064c8f91..9cf6707ff6 100644
--- a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
+++ b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
@@ -36,7 +36,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesFile{univie-ling.cbx}[2024/06/27 v.2.6 biblatex citation style]
+\ProvidesFile{univie-ling.cbx}[2024/09/28 v.2.9 biblatex citation style]
\RequireCitationStyle{authoryear-comp}
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf
index 1773af1838..3c59d7fd22 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf
index 2f632ebda3..509f36d7bb 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdf
index 484e4365b5..cdfb07eedf 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdf
index b61d77074d..bf1c1f9880 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf
index 37e2bc3e00..4f94bbe283 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf
index d4885d0743..c31d116e01 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-poster-deutsch.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-poster-deutsch.pdf
index 76ab0629d5..f360e7c012 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-poster-deutsch.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-poster-deutsch.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-poster-english.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-poster-english.pdf
index 0b9643c0bd..5bf3cd252d 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-poster-english.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-poster-english.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf
index 34ac74afc7..359b3b6f72 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.tex b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.tex
index 527f8d0498..7b01c0a88f 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.tex
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.tex
@@ -2,9 +2,7 @@
% Übersetzen mit pdflatex -- biber -- pdflatex
% Verwende den vom Hochschulschriftenservice verlangten Standard PDF/A1-b
% (siehe http://e-theses.univie.ac.at/elektronische_einreichung.html)
-% pdfx is currently broken
-%\documentclass[naustrian,pdfa]{univie-ling-thesis}
-\documentclass[naustrian]{univie-ling-thesis}
+\documentclass[naustrian,pdfa]{univie-ling-thesis}
\usepackage{babel}
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf
index 800946d7c8..1ce56a0d18 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.tex b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.tex
index c2f7c5f4a0..0be7edb600 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.tex
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.tex
@@ -2,9 +2,7 @@
% Run pdflatex -- biber -- pdflatex
% Use the PDF/A1-b standard as required by the Hochschulschriften-Service
% (see http://e-theses.univie.ac.at/elektronische_einreichung.html)
-% pdfx is currently broken
-%\documentclass[naustrian,english,pdfa]{univie-ling-thesis}
-\documentclass[naustrian,english]{univie-ling-thesis}
+\documentclass[naustrian,english,pdfa]{univie-ling-thesis}
\usepackage{babel}
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf
index b65b92ef1b..b1e35c6bf2 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-wlg-review.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-wlg-review.pdf
index 2e8562ef5d..182538d779 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-wlg-review.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-wlg-review.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-bbx.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-bbx.pdf
new file mode 100644
index 0000000000..e5dabdf587
--- /dev/null
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-bbx.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-bbx.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-bbx.tex
new file mode 100644
index 0000000000..42e2311377
--- /dev/null
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-bbx.tex
@@ -0,0 +1,238 @@
+% !TeX spellcheck = en_US
+\documentclass[english]{article}
+
+\usepackage[osf]{libertine}
+\usepackage[scaled=0.7]{beramono}
+\usepackage[T1]{fontenc}
+\usepackage[latin9]{inputenc}
+\usepackage[hyphens]{url}
+\usepackage{csquotes}
+\usepackage[pdfusetitle,
+ bookmarks=true,bookmarksnumbered=false,bookmarksopen=false,
+ breaklinks=false,pdfborder={0 0 0},backref=false,colorlinks=false]
+ {hyperref}
+
+% Tweak the TOC (make it more compact)
+\usepackage{tocloft}
+\setlength{\cftaftertoctitleskip}{6pt}
+\setlength{\cftbeforesecskip}{0pt}
+\setlength{\cftbeforesubsecskip}{0pt}
+\renewcommand{\cfttoctitlefont}{\normalsize\bfseries}
+\renewcommand{\cftsecfont}{\small\bfseries}
+\renewcommand{\cftsecpagefont}{\small\bfseries}
+\renewcommand{\cftsubsecfont}{\small}
+\renewcommand{\cftsubsecpagefont}{\small}
+
+% markup
+\newcommand*\jmacro[1]{\textbf{\texttt{#1}}}
+\newcommand*\jcsmacro[1]{\jmacro{\textbackslash{#1}}}
+\newcommand*\joption[1]{\textbf{\texttt{#1}}}
+\newcommand*\jfmacro[1]{\texttt{#1}}
+\newcommand*\jfcsmacro[1]{\jfmacro{\textbackslash{#1}}}
+
+% macros
+\newcommand*\uvlt{\textsf{univie-ling biblatex}}
+\providecommand{\LyX}{\texorpdfstring{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}{LyX}}
+
+% improve layout
+\tolerance 1414
+\hbadness 1414
+\emergencystretch 1.5em
+\hfuzz 0.3pt
+\widowpenalty = 10000
+\vfuzz \hfuzz
+\raggedbottom
+
+% Conditional pagebreak
+\def\condbreak#1{%
+ \vskip 0pt plus #1\pagebreak[3]\vskip 0pt plus -#1\relax}
+
+\usepackage{microtype}
+
+\usepackage{babel}
+
+\usepackage{listings}
+\lstset{language={[LaTeX]TeX},
+ basicstyle={\small\ttfamily},
+ frame=single}
+
+\setcounter{tocdepth}{2}
+
+\begin{document}
+
+\title{The \uvlt\ styles}
+
+\author{\texorpdfstring{Jrgen Spitzmller%
+\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
+
+\date{Version 2.9, 2024/09/28}
+
+\maketitle
+
+\begin{abstract}
+\noindent The \uvlt\ styles provide citation and bibliography styles that conform to the style guide of the Linguistic Department
+of Vienna University which itself follows the \emph{Unified Style Sheet for Linguistic Papers}.
+This manual documents the style.
+\end{abstract}
+
+\tableofcontents
+
+\section{Aims and scope}
+
+The \uvlt\ styles include a \textsf{biblatex} bibliography style (\texttt{univie-ling.bbx}) and a citation style
+(\texttt{univie-ling.cbx}) that implement the citation conventions common in Viennese (Applied) Linguistics.
+The styles draw on the \emph{Unified Style Sheet for Linguistic Papers}.%
+\footnote{See \url{https://www.linguisticsociety.org/sites/default/files/style-sheet_0.pdf}.}
+
+\section{Requirements of \uvlt}\label{sec:req-jslp}
+
+The following class and packages are required and loaded by \uvlt:
+\begin{itemize}
+ \setlength\itemsep{0pt}
+ \item \textsf{biblatex}: Contemporary bibliography support.
+ \item \textsf{biber}: Bibliography processor for biblatex.
+\end{itemize}
+
+\section{Use}\label{use}
+
+There is not much to say here. The styles are used as any other \textsf{biblatex} styles: You load them via the
+\joption{style} option of biblatex (\joption{style=univie-ling} in this case), pass additional options here as well
+and use the citation and bibliography commands documented in the \textsf{biblatex} manual \cite{bibltx}.
+
+\section{Style-specific Options}\label{options}
+
+On top of the options provided by the \textsf{biblatex} package itself (see \cite{bibltx}), the \uvlt\ styles provide
+a couple of specific options:
+\begin{description}
+ \setlength\itemsep{0pt}
+ \item{\joption{annotations=true|false}}: if \joption{true}, the contents of the \texttt{annotation} or \texttt{annot} field
+ of your Bib\TeX\ entry are output (in a separate indented paragraph that follows the entry). Use this to generate annotated
+ bibliographies. The options is \joption{false} by default.
+
+ Annotations might also be stored in separate files as documented in \cite[sec.~3.14.8]{bibltx}.
+ \item{\joption{issueeditor=true|false}}: if \joption{true}, editors of journal special issues are output.
+ The options is \joption{false} by default.
+\end{description}
+
+\section{Release History}
+
+\begin{description}
+ \item 2024/09/28 (v.\,2.9)
+ \begin{itemize}
+ \item Add option \joption{annotations} which, if \joption{true},
+ will print out the \texttt{annotation} field
+ (useful for annotated bibliographies).
+ \item Add this manual.
+ \end{itemize}
+ \item 2024/09/20 (v.\,2.8)
+ \item 2024/07/23 (v.\,2.7)
+ \item 2024/06/27 (v.\,2.6)
+ \item 2024/05/09 (v.\,2.5)
+ \item 2023/03/31 (v.\,2.4)
+ \item 2023/01/26 (v.\,2.3)
+ \item 2022/12/06 (v.\,2.2)
+ \item 2022/10/21 (v.\,2.1)
+ \item 2022/10/02 (v.\,2.0)
+ \item 2022/09/08 (v.\,1.20)
+ \begin{itemize}
+ \item No change to these styles.
+ \end{itemize}
+ \item 2022/06/18 (v.\,1.19)
+ \begin{itemize}
+ \item properly re-define a macro in the citations style.
+ \end{itemize}
+ \item 2022/05/11 (v.\,1.18)
+ \begin{itemize}
+ \item No change to these styles.
+ \end{itemize}
+ \item 2022/02/05 (v.\,1.17)
+ \begin{itemize}
+ \item Draw on authoryear-comp rather than uncompressed
+ version (in line with major journal's interpretation
+ of the unified style sheet)
+ \end{itemize}
+ \item 2021/11/03 (v.\,1.16)
+ \begin{itemize}
+ \item No change to these styles.
+ \end{itemize}
+ \item 2021/10/19 (v.\,1.15)
+ \begin{itemize}
+ \item Output url date only if url is given (not with DOI).
+ \item Fix emphasizing of journal title.
+ \end{itemize}
+ \item 2021/09/01 (v.\,1.14)
+ \begin{itemize}
+ \item Sentence-case journal issue title and online title.
+ \item Emphasize journal subtitle.
+ \end{itemize}
+ \item 2020/11/11 (v.\,1.13)
+ \begin{itemize}
+ \item Fix whitespace issue in thematic issue string.
+ \end{itemize}
+ \item 2020/06/25 (v.\,1.12)
+ \begin{itemize}
+ \item only output origyear if it differs from year.
+ \end{itemize}
+ \item 2020/05/05 (v.\,1.11)
+ \begin{itemize}
+ \item No change to these styles.
+ \end{itemize}
+ \item 2019/05/01 (v.\,1.10)
+ \begin{itemize}
+ \item only print origyear (not full origdate) in label.
+ \item fix title capitalization in inbook, mvbook and mvcollection types.
+ \end{itemize}
+ \item 2019/01/21 (v.\,1.9)
+ \begin{itemize}
+ \item correct fix of duplicate editorstrg parentheses.
+ \end{itemize}
+ \item 2019/01/15 (v.\,1.8)
+ \begin{itemize}
+ \item fix another whitespace issue.
+ \item fix duplicate editorstrg parentheses.
+ \end{itemize}
+ \item 2018/11/07 (v.\,1.7)
+ \begin{itemize}
+ \item fix some whitespace issues.
+ \end{itemize}
+ \item 2018/11/04 (v.\,1.6)
+ \begin{itemize}
+ \item univie-ling.bbx: fix bookauthor with inbook type.
+ \end{itemize}
+ \item 2018/09/03 (v.\,1.5)
+ \begin{itemize}
+ \item No change to these styles.
+ \end{itemize}
+ \item 2018/03/02 (v.\,1.4)
+ \begin{itemize}
+ \item Fix journal dates (if month and day is given).
+ \end{itemize}
+ \item 2018/03/02 (v.\,1.3)
+ \begin{itemize}
+ \item Fix whitespace issue in \texttt{@inproceedings} entry.
+ \item Specify date output details (era, uncertain etc.).
+ \end{itemize}
+ \item 2018/02/13 (v.\,1.2)
+ \begin{itemize}
+ \item No change to these styles.
+ \end{itemize}
+ \item 2018/02/11 (v.\,1.1)
+ \begin{itemize}
+ \item Fixed location list output wrt the Unfied Style Sheet.
+ \item Link DOIs to preferred resolver (thanks, Katrin Leinweber!)
+ \end{itemize}
+ \item 2018/02/08 (v.\,1.0)
+ \begin{itemize}
+ \item Initial release on CTAN.
+ \end{itemize}
+\end{description}
+
+\begin{thebibliography}{1}
+
+\bibitem{bibltx} Lehman, Philipp (with Audrey Boruvka, Philip Kime and Joseph Wright):
+\emph{The biblatex Package. Programmable Bibliographies and Citations}. March 3, 2016.
+\url{http://www.ctan.org/pkg/biblatex}.
+
+\end{thebibliography}
+
+\end{document}
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
index d47fcaaa0b..2ab3d7bf0d 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
index fcb89d9727..0322456eae 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
@@ -63,7 +63,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 2.6, 2024/06/27}
+\date{Version 2.9, 2024/09/28}
\maketitle
@@ -336,13 +336,31 @@ If you want to use APA/DGPs style, consider the following caveats.
for details.
\end{itemize}
-\subsection{Using a different style}\label{sec:bib-different}
+\subsection{Using a different style or not using biblatex}\label{sec:bib-different}
If you do not want or are not supposed to use neither the default Unified nor the APA/DGPs style, you can disable automatic \textsf{biblatex} loading via the class option \joption{biblatex=false} (see sec.~\ref{packageloading}). In this case, you will need to load
your own style manually, by entering the respective \textsf{biblatex} or Bib\TeX\ commands.
One case where you need to do that is if you prefer classic Bib\TeX\ over \textsf{biblatex}.
-If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{\url{http://celxj.org/downloads/unified.bst}} Note, though, that this package does not have specific support for German, so it is only really suitable if you write in English. Thus, if you want to follow the Applied Linguistics conventions, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a (seemingly unmaintained) Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{A copy is at \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified.bst}.} This style produces English output, a localized version for German,
+\textsf{unified-de.bst}, is available as well.\footnote{See \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified-de.bst}.}
+Both styles require the \textsf{natbib} package to be loaded.
+Note, though, that both styles provide only very rudimentary support for the Unified Style Sheet. Thus, if you want to follow the Applied Linguistics conventions
+really strictly, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+
+It is also possible (though not recommended) to use the \texttt{thebibliography} environment if,
+for some reason, you do not want to use \textsf{biblatex} nor Bib\TeX. Of course, in this case you are all responsible for the
+proper formatting of the entries. If you decide for this, you must load the \textsf{natbib} package and use the
+syntax documented in the natbib manual (\cite[sec.~1]{natbib}) for the proper setup of bibitems, e.\,g.,\footnote{%
+ Note the missing space before and after the parentheses that mark the year!}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,morekeywords={bibitem}]
+\bibitem[Jones et al.(1990)Jones, Baker, & Williams]{jon90}
+ Jones, Baker, & Williams. 1990. ...
+\end{lstlisting}
+%
+(Only) if \textsf{natbib} is loaded, \uvlt\ will take care that the spacing with the \texttt{thebibliography} environment
+is correct.
\section{Further instructions}
@@ -370,6 +388,20 @@ Templates are provided as well:
\section{Release History}
\begin{itemize}
+ \item 2024/09/28 (v.\,2.9)
+ \begin{itemize}
+ \item No change to this class.
+ \end{itemize}
+ \item 2024/09/20 (v.\,2.8)
+ \begin{itemize}
+ \item Add basic support for \texttt{thebibliography} environment.
+ \item Update documentation on bibliography beyond \textsf{biblatex}.
+ \end{itemize}
+ \item 2024/07/23 (v.\,2.7)
+ \begin{itemize}
+ \item Fix spacing after \jfcsmacro{weblink}.
+ \item Fix empty argument check in \jfcsmacro{weblink}.
+ \end{itemize}
\item 2024/06/27 (v.\,2.6)
\begin{itemize}
\item Provide \jcsmacro{weblink}, \jcsmacro{SetURLDate} and \jcsmacro{urldate} macros.
@@ -469,6 +501,10 @@ Templates are provided as well:
\emph{The covington Package. Macros for Linguistics}. September 7, 2018.
\url{http://www.ctan.org/pkg/covington}.
+\bibitem{natbib} Daly, Patrick W.:
+\emph{Natural Sciences Citations and References}. September 13, 2010.
+\url{http://www.ctan.org/pkg/natbib}.
+
\bibitem{apabibltx} Kime, Philip:
\emph{APA Bib\LaTeX\ style. Citation and References macros for Bib\LaTeX}. March 3, 2016.
\url{http://www.ctan.org/pkg/biblatex-apa}.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdf
index bb7dfd5c25..dfce2b438a 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex
index 8fbb627024..52bca62e0f 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex
@@ -63,7 +63,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 2.6, 2024/06/27}
+\date{Version 2.9, 2024/09/28}
\maketitle
@@ -373,13 +373,31 @@ If you want to use APA/DGPs style, consider the following caveats.
for details.
\end{itemize}
-\subsection{Using a different style}\label{sec:bib-different}
+\subsection{Using a different style or not using biblatex}\label{sec:bib-different}
If you do not want or are not supposed to use neither the default Unified nor the APA/DGPs style, you can disable automatic \textsf{biblatex} loading via the class option \joption{biblatex=false} (see sec.~\ref{packageloading}). In this case, you will need to load
your own style manually, by entering the respective \textsf{biblatex} or Bib\TeX\ commands.
One case where you need to do that is if you prefer classic Bib\TeX\ over \textsf{biblatex}.
-If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{\url{http://celxj.org/downloads/unified.bst}} Note, though, that this package does not have specific support for German, so it is only really suitable if you write in English. Thus, if you want to follow the Applied Linguistics conventions, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a (seemingly unmaintained) Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{A copy is at \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified.bst}.} This style produces English output, a localized version for German,
+\textsf{unified-de.bst}, is available as well.\footnote{See \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified-de.bst}.}
+Both styles require the \textsf{natbib} package to be loaded.
+Note, though, that both styles provide only very rudimentary support for the Unified Style Sheet. Thus, if you want to follow the Applied Linguistics conventions
+really strictly, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+
+It is also possible (though not recommended) to use the \texttt{thebibliography} environment if,
+for some reason, you do not want to use \textsf{biblatex} nor Bib\TeX. Of course, in this case you are all responsible for the
+proper formatting of the entries. If you decide for this, you must load the \textsf{natbib} package and use the
+syntax documented in the natbib manual (\cite[sec.~1]{natbib}) for the proper setup of bibitems, e.\,g.,\footnote{%
+ Note the missing space before and after the parentheses that mark the year!}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,morekeywords={bibitem}]
+\bibitem[Jones et al.(1990)Jones, Baker, & Williams]{jon90}
+ Jones, Baker, & Williams. 1990. ...
+\end{lstlisting}
+%
+(Only) if \textsf{natbib} is loaded, \uvlt\ will take care that the spacing with the \texttt{thebibliography} environment
+is correct.
\subsection{Heading}
@@ -415,6 +433,16 @@ Templates are provided as well:
\section{Release History}
\begin{description}
+ \item 2024/09/20 (v.\,2.8)
+ \begin{itemize}
+ \item Add basic support for \texttt{thebibliography} environment.
+ \item Update documentation on bibliography beyond \textsf{biblatex}.
+ \end{itemize}
+ \item 2024/07/23 (v.\,2.7)
+ \begin{itemize}
+ \item Fix spacing after \jfcsmacro{weblink}.
+ \item Fix empty argument check in \jfcsmacro{weblink}.
+ \end{itemize}
\item 2024/06/27 (v.\,2.6)
\begin{itemize}
\item Provide \jcsmacro{weblink}, \jcsmacro{SetURLDate} and \jcsmacro{urldate} macros.
@@ -462,6 +490,10 @@ Templates are provided as well:
\emph{The covington Package. Macros for Linguistics}. September 7, 2018.
\url{http://www.ctan.org/pkg/covington}.
+\bibitem{natbib} Daly, Patrick W.:
+\emph{Natural Sciences Citations and References}. September 13, 2010.
+\url{http://www.ctan.org/pkg/natbib}.
+
\bibitem{apabibltx} Kime, Philip:
\emph{APA Bib\LaTeX\ style. Citation and References macros for Bib\LaTeX}. March 3, 2016.
\url{http://www.ctan.org/pkg/biblatex-apa}.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
index 9f7f328fbb..c3db12b025 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
index 6ade5e4b72..1bb8ca3cb5 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
@@ -63,7 +63,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 2.6, 2024/06/27}
+\date{Version 2.9, 2024/09/28}
\maketitle
@@ -376,13 +376,31 @@ If you want to use APA/DGPs style, consider the following caveats.
for details.
\end{itemize}
-\subsection{Using a different style}\label{sec:bib-different}
+\subsection{Using a different style or not using biblatex}\label{sec:bib-different}
If you do not want or are not supposed to use neither the default Unified nor the APA/DGPs style, you can disable automatic \textsf{biblatex} loading via the class option \joption{biblatex=false} (see sec.~\ref{packageloading}). In this case, you will need to load
your own style manually, by entering the respective \textsf{biblatex} or Bib\TeX\ commands.
One case where you need to do that is if you prefer classic Bib\TeX\ over \textsf{biblatex}.
-If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{\url{http://celxj.org/downloads/unified.bst}} Note, though, that this package does not have specific support for German, so it is only really suitable if you write in English. Thus, if you want to follow the Applied Linguistics conventions, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a (seemingly unmaintained) Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{A copy is at \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified.bst}.} This style produces English output, a localized version for German,
+\textsf{unified-de.bst}, is available as well.\footnote{See \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified-de.bst}.}
+Both styles require the \textsf{natbib} package to be loaded.
+Note, though, that both styles provide only very rudimentary support for the Unified Style Sheet. Thus, if you want to follow the Applied Linguistics conventions
+really strictly, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+
+It is also possible (though not recommended) to use the \texttt{thebibliography} environment if,
+for some reason, you do not want to use \textsf{biblatex} nor Bib\TeX. Of course, in this case you are all responsible for the
+proper formatting of the entries. If you decide for this, you must load the \textsf{natbib} package and use the
+syntax documented in the natbib manual (\cite[sec.~1]{natbib}) for the proper setup of bibitems, e.\,g.,\footnote{%
+ Note the missing space before and after the parentheses that mark the year!}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,morekeywords={bibitem}]
+\bibitem[Jones et al.(1990)Jones, Baker, & Williams]{jon90}
+ Jones, Baker, & Williams. 1990. ...
+\end{lstlisting}
+%
+(Only) if \textsf{natbib} is loaded, \uvlt\ will take care that the spacing with the \texttt{thebibliography} environment
+is correct.
\section{Further instructions}
@@ -411,6 +429,20 @@ Templates are provided as well:
\section{Release History}
\begin{itemize}
+ \item 2024/09/28 (v.\,2.9)
+ \begin{itemize}
+ \item No change to this class.
+ \end{itemize}
+ \item 2024/09/20 (v.\,2.8)
+ \begin{itemize}
+ \item Add basic support for \texttt{thebibliography} environment.
+ \item Update documentation on bibliography beyond \textsf{biblatex}.
+ \end{itemize}
+ \item 2024/07/23 (v.\,2.7)
+ \begin{itemize}
+ \item Fix spacing after \jfcsmacro{weblink}.
+ \item Fix empty argument check in \jfcsmacro{weblink}.
+ \end{itemize}
\item 2024/06/27 (v.\,2.6)
\begin{itemize}
\item Provide \jcsmacro{weblink}, \jcsmacro{SetURLDate} and \jcsmacro{urldate} macros.
@@ -515,6 +547,10 @@ Templates are provided as well:
\emph{The covington Package. Macros for Linguistics}. September 7, 2018.
\url{http://www.ctan.org/pkg/covington}.
+\bibitem{natbib} Daly, Patrick W.:
+\emph{Natural Sciences Citations and References}. September 13, 2010.
+\url{http://www.ctan.org/pkg/natbib}.
+
\bibitem{apabibltx} Kime, Philip:
\emph{APA Bib\LaTeX\ style. Citation and References macros for Bib\LaTeX}. March 3, 2016.
\url{http://www.ctan.org/pkg/biblatex-apa}.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-poster.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-poster.pdf
index 204245e59f..a5648d9518 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-poster.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-poster.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-poster.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-poster.tex
index c8580538c3..f95f7a3e8a 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-poster.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-poster.tex
@@ -65,7 +65,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 2.6, 2024/06/27}
+\date{Version 2.9, 2024/09/28}
\maketitle
@@ -577,6 +577,11 @@ Templates are provided as well:
\section{Release History}
\begin{description}
+ \item 2024/07/23 (v.\,2.7)
+ \begin{itemize}
+ \item Fix spacing after \jfcsmacro{weblink}.
+ \item Fix empty argument check in \jfcsmacro{weblink}.
+ \end{itemize}
\item 2024/06/27 (v.\,2.6)
\begin{itemize}
\item Provide \jcsmacro{weblink}, \jcsmacro{SetURLDate} and \jcsmacro{urldate} macros.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
index 4c9fb2a37c..e5c13243f9 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
index 92d06ea952..ea85ab9bca 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
@@ -59,7 +59,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 2.6, 2024/06/27}
+\date{Version 2.9, 2024/09/28}
\maketitle
@@ -107,7 +107,7 @@ The following packages are required for specific features and loaded by default.
\begin{itemize}
\setlength\itemsep{0pt}
\item \textsf{mathptmx}: Default serif font (\emph{Palatino}).
- \item \textsf{urw-arial} or \textsf{helvet}: Default sans serif font (\emph{Arial} or \emph{Helvetica}).
+ \item \textsf{sourcesanspro}: Default sans serif font (\emph{Source Sans Pro}).
\item \textsf{sourcecodepro}: Default monospaced font (\emph{Source Code Pro}).
\item \textsf{biblatex}: Contemporary bibliography support.
\item \textsf{caption}: Caption layout adjustments.
@@ -129,24 +129,18 @@ The following packages are required for optional features (not used by default):
\section{Fonts}\label{fonts}
-The class uses, by default, PostScript (a.\,k.\,a. Type\,1) fonts and thus requires classic (PDF)LaTeX. Optionally, however, you can also use OpenType fonts via the \textsf{fontspec}
-package and the XeTeX or LuaTeX engine instead. In order to do this, use the class option \joption{fonts=otf} (see sec.~\ref{coptions} for details).
+The class uses, by default, PostScript (a.\,k.\,a. Type\,1) fonts and thus requires classic (PDF)LaTeX. Optionally, however, you can also use OpenType fonts via the \textsf{fontspec} package and the XeTeX or LuaTeX engine instead. In order to do this, use the class option \joption{fonts=otf} (see sec.~\ref{coptions} for details).
-In both cases, the class uses by default \emph{Palatino} as a serif font, \emph{Arial} (or, alternatively, \emph{Helvetica}) as a sans serif font, and \emph{Source Code Pro}
-as a monospaced (typewriter) font. Note that \emph{Arial} (PostScript) font support is not
-included in most \LaTeX\ distributions by default, due to license reasons. You can install it easily via the \textsf{getnonfreefonts} script.\footnote{\url{https://www.tug.org/fonts/getnonfreefonts}
-<25.\,01.\,2017>.}
-If \emph{Arial} is not installed, however, \emph{Helvetica} (which is part of the \LaTeX\ core packages) is used as a fallback. This is usually a suitable alternative, since \emph{Arial} and
-\emph{Helvetica} only differ in subtle details. If you use \joption{fonts=otf}, you just have to make sure that you have the fonts \emph{Arial}, \emph{Palatino}
-and \emph{Source Code Pro} installed on your operating system (with exactly these names, i.\,e., fonts named \emph{Arial Unicode MS} or \emph{Linotype Palatino} will not be recognized!).
+In both cases, the class uses by default \emph{Palatino} as a serif font (or the clone \emph{TeX Gyre Pagella} with OpenType, for that matter),
+\emph{Source Sans Pro} as a sans serif font, and \emph{Source Code Pro} as a monospaced (typewriter) font.
-As to font selection: \emph{Arial} is used in the official title page template\footnote{See \url{https://ssc-philkultur.univie.ac.at/en/degree-programmes/doctoral-programme/doctoral-thesis/}.}, so I used that (with the mentioned fallback, \emph{Helvetica}).
+As to font selection: \emph{Source Sans Pro} is used in the official title page template which is nowadays auto-generated by the theses server,
+so I used that.
A serif font recommendation is not given. The corporate design manual of the university suggests \emph{Source Serif Pro}, but this font is
-too heavy for a thesis (and we cannot use the suggested sans, \emph{Source Sans Pro}, anyway). A somewhat standard for academic papers
-and theses is \emph{Times New Roman}, but I think this runs too small for the text block size we have (as the name suggests, this font
-has been developed for the small columns of newspapers), and it is also pretty overused. The selected font, \emph{Palatino}, in contrast,
-suits well to wider text lines, it is well supported in \LaTeX, and it fits with \emph{Helvetica}. The monospaced font, \emph{Source Code Pro},
-is a good companion to this pair.
+too heavy for a thesis. A somewhat standard for academic papers and theses is \emph{Times New Roman}, but I think this runs too small for
+the text block size we have (as the name suggests, this font has been developed for the small columns of newspapers), and it is also pretty overused.
+The selected font, \emph{Palatino}, in contrast, suits well to wider text lines, it is well supported in \LaTeX, and it fits with \emph{Source Sans Pro}.
+The monospaced font, \emph{Source Code Pro}, is a good companion to this pair.
If you (or your instructor) prefer(s) \emph{Times New Roman} over \emph{Palatino} nonetheless, write to your preamble
\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single]
@@ -190,7 +184,8 @@ The class provides the following option to set the font handling:
\setlength\itemsep{0pt}
\item{\joption{fonts=ps|otf|none}}: if \joption{ps} is selected, PostScript fonts are used (this is the default and
the correct choice if you use LaTeX or PDFLaTeX); if \joption{otf} is selected, OpenType fonts are used, the class
- loads the \textsf{fontspec} package, sets \emph{Palatino} as main font and \emph{Arial} as sans serif font (this is
+ loads the \textsf{fontspec} package, sets \emph{Palatino} as main font, \emph{Source Sans Pro} as sans serif font,
+ and \emph{Source Code Pro} as monospaced font (this is
the correct choice if you use XeTeX or LuaTeX; make sure you have the respective fonts installed on your system);
if \joption{none} is selected, finally, the class will not load any font package at all, and neither
\textsf{fontenc} (this choice is useful if you want to control the font handling completely yourself).
@@ -239,6 +234,14 @@ option (e.\,g., \joption{all=false,microtype=true} will switch off all packages
The option \joption{draftmark=true|false|firstpage} allows you to mark your document as a draft, which is indicated by a watermark (including the current date). This might be useful when sharing preliminary versions with your supervisor.
With \joption{draftmark=true}, this mark is printed on top of each page. With \joption{draftmark=firstpage}, the draft mark appears on the title page only.
+
+\subsection{Title page}\label{titlepage}
+
+As of 2024, MA and PhD theses must be submitted to the \textsf{u:space} platform without a title page (the title page will then be generated by the platform from the data
+you fill in there).
+
+Use the option \joption{titlepage=false} to suppress the title page for this purpose. The pagination will remain the same as with titlepage (i.\,e., the document starts at page 2).
+
\subsection{Further options}
\begin{description}
@@ -378,13 +381,31 @@ If you want to use APA/DGPs style, consider the following caveats.
for details.
\end{itemize}
-\subsection{Using a different style}\label{sec:bib-different}
+\subsection{Using a different style or not using \textsf{biblatex}}\label{sec:bib-different}
If you do not want or are not supposed to use neither the default Unified nor the APA/DGPs style, you can disable automatic \textsf{biblatex} loading via the class option \joption{biblatex=false} (see sec.~\ref{packageloading}). In this case, you will need to load
your own style manually, by entering the respective \textsf{biblatex} or Bib\TeX\ commands.
One case where you need to do that is if you prefer classic Bib\TeX\ over \textsf{biblatex}.
-If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{\url{http://celxj.org/downloads/unified.bst}} Note, though, that this package does not have specific support for German, so it is only really suitable if you write in English. Thus, if you want to follow the Applied Linguistics conventions, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+If you want to follow the Applied Linguistics conventions, but prefer classic Bib\TeX\ over \textsf{biblatex}, a (seemingly unmaintained) Bib\TeX\ style file \textsf{unified.bst} that implements the \emph{Unified Style Sheet for Linguistics} is available on the Internet.\footnote{A copy is at \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified.bst}.} This style produces English output, a localized version for German,
+\textsf{unified-de.bst}, is available as well.\footnote{See \url{https://raw.githubusercontent.com/jspitz/univie-ling/master/3rdparty/unified-de.bst}.}
+Both styles require the \textsf{natbib} package to be loaded.
+Note, though, that both styles provide only very rudimentary support for the Unified Style Sheet. Thus, if you want to follow the Applied Linguistics conventions
+really strictly, it is strongly recommended that you use \textsf{biblatex} with the preloaded \textsf{univie-ling} style.
+
+It is also possible (though not recommended) to use the \texttt{thebibliography} environment if,
+for some reason, you do not want to use \textsf{biblatex} nor Bib\TeX. Of course, in this case you are all responsible for the
+proper formatting of the entries. If you decide for this, you must load the \textsf{natbib} package and use the
+syntax documented in the natbib manual (\cite[sec.~1]{natbib}) for the proper setup of bibitems, e.\,g.,\footnote{%
+ Note the missing space before and after the parentheses that mark the year!}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,morekeywords={bibitem}]
+\bibitem[Jones et al.(1990)Jones, Baker, & Williams]{jon90}
+ Jones, Baker, & Williams. 1990. ...
+\end{lstlisting}
+%
+(Only) if \textsf{natbib} is loaded, \uvlt\ will take care that the spacing with the \texttt{thebibliography} environment
+is correct.
\section{Further instructions}
@@ -433,6 +454,24 @@ Templates are provided as well:
\section{Release History}
\begin{itemize}
+ \item 2024/09/28 (v.\,2.9)
+ \begin{itemize}
+ \item No change to this class.
+ \end{itemize}
+ \item 2024/09/20 (v.\,2.8)
+ \begin{itemize}
+ \item Add class option \joption{titlepage=true|false} (see sec.~\ref{titlepage}).
+ \item Adapt title page to recent design. This entails a change of sans serif font
+ from Arial to Source Sans Pro.
+ \item Use \emph{TeX Gyre Pagella} rather than \emph{Palatino} with \joption{fonts=otf}.
+ \item Add basic support for \texttt{thebibliography} environment.
+ \item Update documentation on bibliography beyond \textsf{biblatex}.
+ \end{itemize}
+ \item 2024/07/23 (v.\,2.7)
+ \begin{itemize}
+ \item Fix spacing after \jfcsmacro{weblink}.
+ \item Fix empty argument check in \jfcsmacro{weblink}.
+ \end{itemize}
\item 2024/06/27 (v.\,2.6)
\begin{itemize}
\item Provide \jcsmacro{weblink}, \jcsmacro{SetURLDate} and \jcsmacro{urldate} macros.
@@ -550,6 +589,10 @@ Templates are provided as well:
\emph{The covington Package. Macros for Linguistics}. September 7, 2018.
\url{http://www.ctan.org/pkg/covington}.
+\bibitem{natbib} Daly, Patrick W.:
+\emph{Natural Sciences Citations and References}. September 13, 2010.
+\url{http://www.ctan.org/pkg/natbib}.
+
\bibitem{apabibltx} Kime, Philip:
\emph{APA Bib\LaTeX\ style. Citation and References macros for Bib\LaTeX}. March 3, 2016.
\url{http://www.ctan.org/pkg/biblatex-apa}.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
index 6276518546..794ff256b0 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
index a12fccdeac..379ff0485d 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
@@ -59,7 +59,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 2.6, 2024/06/27}
+\date{Version 2.9, 2024/09/28}
\maketitle
@@ -259,9 +259,33 @@ Please refer to the \textsf{covington} manual \cite{covington} for details.
\section{Bibliography}\label{bibliography}
-If the class option \joption{biblatex=true} is set, the \uvlt\ class loads a bibliography style which matches journal style sheet. These conventions draw on the
-\emph{Unified Style Sheet for Linguistics} of the LSA (\emph{Linguistic Society of America}).
-In order to conform to this style, the \uvlt\ class uses the \textsf{biblatex} package with the \textsf{univie-ling} style that is included in the \textsf{univie-ling} bundle.
+If the class option \joption{biblatex=true} is set, the \uvlt\ class loads a bibliography style which matches journal style sheet.
+These conventions draw on the \emph{Unified Style Sheet for Linguistics} of the LSA (\emph{Linguistic Society of America}).
+In order to conform to this style, the \uvlt\ class uses the \textsf{biblatex} package with the \textsf{univie-ling}
+style that is included in the \textsf{univie-ling} bundle.
+
+Since there is no Bib\TeX\ style file available that completely matches the journal's style guide, you cannot use
+classic Bib\TeX\ for a paper in the WLG.
+
+It is also possible, however, (though not recommended) to use the \texttt{thebibliography} environment if,
+for some reason, you do not want to use \textsf{biblatex}. Of course, in this case you are all responsible for the
+proper formatting of the entries. If you decide for this, you must load the \textsf{natbib} package and use the
+syntax documented in the natbib manual (\cite[sec.~1]{natbib}) for the proper setup of bibitems, e.\,g.,\footnote{%
+ Note the missing space before and after the parentheses that mark the year!}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,morekeywords={bibitem}]
+\bibitem[Jones et al.(1990)Jones, Baker, & Williams]{jon90}
+ Jones, Baker, & Williams. 1990. ...
+\end{lstlisting}
+%
+(Only) if \textsf{natbib} is loaded, \uvlt\ will take care that the spacing with the \texttt{thebibliography} environment
+is correct.
+
+Finally, if you prefer to have a completely manually constituted bibliography with manually inserted citations%
+\footnote{A reason might be that you transform a paper submitted in a an office file format to \LaTeX. In this case,
+\texttt{reflist} is often more convenient than \texttt{bibliography}.},
+use the \texttt{reflist} environment and separate each entry by a blank line (see \cite[sec.~9]{covington}).
+Since this environment is provided by \textsf{covington}, the \joption{covington} options must not be \joption{false}.
\section{\LyX\ layouts and templates}
@@ -274,6 +298,25 @@ A template is provided as well: \url{https://github.com/jspitz/univie-ling/raw/m
\raggedright
\begin{itemize}
+ \item 2024/09/28 (v.\,2.9)
+ \begin{itemize}
+ \item Fix pagination with \jfcsmacro{frontmatter} articles.
+ \item Improve parts in TOC.
+ \item Clear double page before parts.
+ \end{itemize}
+ \item 2024/09/20 (v.\,2.8)
+ \begin{itemize}
+ \item Add basic support for \texttt{thebibliography} environment.
+ \item Update documentation on bibliography beyond \textsf{biblatex}.
+ \item Fix pagination issue with \joption{titlepage=specialprint}.
+ \item Part pages are now empty (no pagination and heading).
+ \end{itemize}
+ \item 2024/07/23 (v.\,2.7)
+ \begin{itemize}
+ \item Use proper spacing with \textsf{covington}'s \texttt{reflist} environment.
+ \item Fix spacing after \jfcsmacro{weblink}.
+ \item Fix empty argument check in \jfcsmacro{weblink}.
+ \end{itemize}
\item 2024/06/27 (v.\,2.6)
\begin{itemize}
\item Provide \jcsmacro{weblink}, \jcsmacro{SetURLDate} and \jcsmacro{urldate} macros.
@@ -344,9 +387,12 @@ A template is provided as well: \url{https://github.com/jspitz/univie-ling/raw/m
\begin{thebibliography}{1}
- \bibitem{covington} Covington, Michael A. and Spitzmller, Jrgen:
+\bibitem{covington} Covington, Michael A. and Spitzmller, Jrgen:
\emph{The covington Package. Macros for Linguistics}. September 7, 2018.
\url{http://www.ctan.org/pkg/covington}.
+\bibitem{natbib} Daly, Patrick W.:
+ \emph{Natural Sciences Citations and References}. September 13, 2010.
+ \url{http://www.ctan.org/pkg/natbib}.
\end{thebibliography}
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling.pdf
index b0f3e13826..e9e852d10a 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling.tex b/macros/latex/contrib/univie-ling/doc/univie-ling.tex
index 34435a3876..2ba95602f5 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling.tex
@@ -42,7 +42,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 2.6, 2024/06/27}
+\date{Version 2.9, 2024/09/28}
\maketitle
@@ -100,7 +100,7 @@ The bundle also includes a \textsf{biblatex} bibliography style (\texttt{univie-
(\texttt{univie-ling.cbx}) that implement the citation conventions common in Viennese (Applied) Linguistics.
The style draws on the \emph{Unified Style Sheet for Linguistic Papers}.%
\footnote{See \url{https://www.linguisticsociety.org/sites/default/files/style-sheet_0.pdf}.}
-Documentation is included in the documentation of the classes above.
+\mlink{univie-ling-bbx.pdf}
\section{Release History}
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
index b31ae0a4f7..495172ee0d 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
@@ -33,7 +33,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesPackage{univie-ling-expose}[2024/06/27 v.2.6 Univie Linguistic Exposes (JSp)]
+\ProvidesPackage{univie-ling-expose}[2024/09/28 v.2.9 Univie Linguistic Exposes (JSp)]
%% ============================================================
@@ -274,10 +274,10 @@
\NewDocumentCommand\weblink{mo}{%
\url{#1}%
\IfNoValueTF{#2}%
- {\ifthenelse{\isempty{\wlg@urldate}}{}{%
+ {\ifx\wlg@urldate\empty\else%
\ \urldate{\wlg@urldate}%
- }}%
- {\ \urldate{#2}}
+ \fi}%
+ {\ \urldate{#2}}%
}
}
@@ -687,7 +687,22 @@
% End of @uve@apa condition
\fi
-% End of @uve@biblatex condition
+\else% @uvt@biblatex condition FALSE
+
+% Some support for legacy bibtex
+\AtBeginDocument{%
+ \@ifundefined{bibhang}{}{%
+ \setlength{\bibhang}{\parindent}%
+ }%
+ \@ifundefined{bibfont}{}{%
+ \renewcommand{\bibfont}{\small}%
+ }%
+ \@ifundefined{bibsep}{}{%
+ \setlength\bibsep{0pt}%
+ }%
+}
+
+% End of @uvt@biblatex condition
\fi
%% =============================================================
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls
index 01abf2e31c..d81cd6a27a 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls
@@ -35,7 +35,7 @@
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesClass{univie-ling-handout}[2024/06/27 v.2.6 Univie Ling handout class (JSp)]
+\ProvidesClass{univie-ling-handout}[2024/09/28 v.2.9 Univie Ling handout class (JSp)]
%% ============================================================
%% CLASS OPTIONS
@@ -867,7 +867,22 @@
\DeclarePrintbibliographyDefaults{title=\uvh@bibheading}
-% End of @uvh@biblatex condition
+\else% @uvt@biblatex condition FALSE
+
+% Some support for legacy bibtex
+\AtBeginDocument{%
+ \@ifundefined{bibhang}{}{%
+ \setlength{\bibhang}{\parindent}%
+ }%
+ \@ifundefined{bibfont}{}{%
+ \renewcommand{\bibfont}{\small}%
+ }%
+ \@ifundefined{bibsep}{}{%
+ \setlength\bibsep{0pt}%
+ }%
+}
+
+% End of @uvt@biblatex condition
\fi
% Smaller
@@ -933,10 +948,10 @@
\NewDocumentCommand\weblink{mo}{%
\url{#1}%
\IfNoValueTF{#2}%
- {\ifthenelse{\isempty{\wlg@urldate}}{}{%
+ {\ifx\wlg@urldate\empty\else%
\ \urldate{\wlg@urldate}%
- }}%
- {\ \urldate{#2}}
+ \fi}%
+ {\ \urldate{#2}}%
}
}
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
index 88ec71a6fa..5169001198 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
@@ -32,7 +32,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesPackage{univie-ling-paper}[2024/06/27 v.2.6 Univie Linguistic Papers (JSp)]
+\ProvidesPackage{univie-ling-paper}[2024/09/28 v.2.9 Univie Linguistic Papers (JSp)]
%% ============================================================
@@ -296,10 +296,10 @@ This includes all drawings, sketches, graphics and internet sources.}
\NewDocumentCommand\weblink{mo}{%
\url{#1}%
\IfNoValueTF{#2}%
- {\ifthenelse{\isempty{\wlg@urldate}}{}{%
+ {\ifx\wlg@urldate\empty\else%
\ \urldate{\wlg@urldate}%
- }}%
- {\ \urldate{#2}}
+ \fi}%
+ {\ \urldate{#2}}%
}
}
@@ -845,7 +845,22 @@ This includes all drawings, sketches, graphics and internet sources.}
% End of @uvp@apa condition
\fi
-% End of @uvp@biblatex condition
+\else% @uvt@biblatex condition FALSE
+
+% Some support for legacy bibtex
+\AtBeginDocument{%
+ \@ifundefined{bibhang}{}{%
+ \setlength{\bibhang}{\parindent}%
+ }%
+ \@ifundefined{bibfont}{}{%
+ \renewcommand{\bibfont}{\small}%
+ }%
+ \@ifundefined{bibsep}{}{%
+ \setlength\bibsep{0pt}%
+ }%
+}
+
+% End of @uvt@biblatex condition
\fi
%% =============================================================
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-poster.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-poster.cls
index 9a354e25c7..780e98bc83 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-poster.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-poster.cls
@@ -34,7 +34,7 @@
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesClass{univie-ling-poster}[2024/06/27 v.2.6 Univie Ling poster class (JSp)]
+\ProvidesClass{univie-ling-poster}[2024/09/28 v.2.9 Univie Ling poster class (JSp)]
%% ============================================================
%% CLASS OPTIONS
@@ -909,10 +909,10 @@
\NewDocumentCommand\weblink{mo}{%
\url{#1}%
\IfNoValueTF{#2}%
- {\ifthenelse{\isempty{\wlg@urldate}}{}{%
+ {\ifx\wlg@urldate\empty\else%
\ \urldate{\wlg@urldate}%
- }}%
- {\ \urldate{#2}}
+ \fi}%
+ {\ \urldate{#2}}%
}
}
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
index 4813af3abc..82dae78b03 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
@@ -33,7 +33,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesPackage{univie-ling-thesis}[2024/06/27 v.2.6 Univie Linguistic Theses (JSp)]
+\ProvidesPackage{univie-ling-thesis}[2024/09/28 v.2.9 Univie Linguistic Theses (JSp)]
%% ============================================================
@@ -55,6 +55,7 @@
\newif\if@uvt@psfonts\@uvt@psfontstrue
\newif\if@uvt@refsp\@uvt@refsptrue
\newif\if@uvt@usefontenc\@uvt@usefontenctrue
+\newif\if@uvt@titlepage\@uvt@titlepagetrue
\def\uvt@fontenc{T1}
% Define keys and values
@@ -155,6 +156,10 @@
{ \@uvt@draftmarktrue
\@uvt@draftmarkfptrue
},
+ % titlepage=<true|false>
+ % Output titlepage
+ titlepage.legacy_if_set:n = @uvt@titlepage,
+ titlepage.usage:n = preamble,
% no val equals to true
draftmark .default:n = {true},
% fonts=<ps|otf|none>
@@ -241,33 +246,36 @@ This includes all drawings, sketches, graphics and internet sources.}
%% FONTS AND EMPHASIZING:
%% ============================================================
+\def\uvt@titlesans{\sffamily}
+
\if@uvt@psfonts
\RequirePackage[T1]{fontenc}
\if@uvt@usefontenc
\RequirePackage[\uvt@fontenc]{fontenc}
\fi
-
- % Palatino
+ % Serif: Palatino
\RequirePackage[osf]{mathpazo}
-
- % Arial or Helvetica
- \IfFileExists{uarial.sty}{%
- \RequirePackage{uarial}
- }{%
- \RequirePackage{helvet}
- }
-
- % Source Code Pro (Courier)
+ % Sans: Source Sans Pro Light
+ \RequirePackage[semibold]{sourcesanspro}
+ % Mono: Source Code Pro
\RequirePackage[scale=.93]{sourcecodepro}
+ % Lighter Sans for title page
+ \def\uvt@titlesans{\def\mdseries@sf{l}\sffamily}
\fi
\if@uvt@otffonts
\RequirePackage{fontspec}
- \setmainfont{Palatino}
- \setsansfont{Arial}
- \setmonofont{SourceCodePro}
+ \setmainfont{TeX Gyre Pagella}
+ % Sans: Source Sans Pro Light
+ \RequirePackage[semibold]{sourcesanspro}
+ % Mono: Source Code Pro
+ \RequirePackage[scale=.93]{sourcecodepro}
+ % Lighter Sans for title page
+ \def\uvt@titlesans{\sourcesansprolight}
\fi
+
+
% Hyperlinks
\RequirePackage{url}
\newcommand{\urlprefix}{}
@@ -288,10 +296,10 @@ This includes all drawings, sketches, graphics and internet sources.}
\NewDocumentCommand\weblink{mo}{%
\url{#1}%
\IfNoValueTF{#2}%
- {\ifthenelse{\isempty{\wlg@urldate}}{}{%
+ {\ifx\wlg@urldate\empty\else%
\ \urldate{\wlg@urldate}%
- }}%
- {\ \urldate{#2}}
+ \fi}%
+ {\ \urldate{#2}}%
}
}
@@ -299,14 +307,14 @@ This includes all drawings, sketches, graphics and internet sources.}
\def\slash{/\penalty\exhyphenpenalty\hskip\z@skip}
% Font settings
-\newkomafont{thesistype}{\fontsize{24}{26pt}\bfseries\sffamily}
-\setkomafont{title}{\fontsize{18}{20pt}\sffamily}
-\setkomafont{author}{\fontsize{18}{20pt}\large\sffamily}
-\setkomafont{date}{\normalfont\fontsize{11}{13pt}\mdseries\sffamily}
-\newkomafont{degree}{\fontsize{12}{14pt}\sffamily}
-\newkomafont{baende}{\normalfont\fontsize{12}{14pt}\mdseries\sffamily}
-\newkomafont{tpcaption}{\fontsize{11}{13pt}\sffamily}
-\newkomafont{codes}{\fontsize{10}{12pt}\sffamily}
+\newkomafont{thesistype}{\fontsize{24}{26pt}\bfseries\uvt@titlesans}
+\setkomafont{title}{\fontsize{18}{20pt}\uvt@titlesans}
+\setkomafont{author}{\fontsize{18}{20pt}\large\uvt@titlesans}
+\setkomafont{date}{\normalfont\fontsize{11}{13pt}\mdseries\uvt@titlesans}
+\newkomafont{degree}{\fontsize{12}{14pt}\uvt@titlesans}
+\newkomafont{baende}{\normalfont\fontsize{12}{14pt}\mdseries\uvt@titlesans}
+\newkomafont{tpcaption}{\fontsize{11}{13pt}\uvt@titlesans}
+\newkomafont{codes}{\fontsize{10}{12pt}\uvt@titlesans}
%% ============================================================
@@ -384,35 +392,35 @@ This includes all drawings, sketches, graphics and internet sources.}
\def\thesistype@bachelor{Bachelorarbeit}
\def\thesistype@bachelor@en{Bachelor's Thesis}
\def\dirtype@bachelor{Studienrichtung}
-\def\dirtype@bachelor@en{degree programme}
+\def\dirtype@bachelor@en{Degree programme}
\def\degree@bachelor{Bachelor of Arts (BA)}
\def\degree@bachelor@f{\degree@bachelor}
% master
\def\thesistype@master{Masterarbeit}
\def\thesistype@master@en{Master's Thesis}
\def\dirtype@master{Studienrichtung}
-\def\dirtype@master@en{degree programme}
+\def\dirtype@master@en{Degree programme}
\def\degree@master{Master of Arts (MA)}
\def\degree@master@f{\degree@master}
% magister
\def\thesistype@magister{Magisterarbeit}
\def\thesistype@magister@en{Magister Thesis}
\def\dirtype@magister{Studienrichtung}
-\def\dirtype@magister@en{degree programme}
+\def\dirtype@magister@en{Degree programme}
\def\degree@magister{Magister der Philosophie (Mag.\,Phil.)}
\def\degree@magister@f{Magistra der Philosophie (Mag.\,Phil.)}
% diplom
\def\thesistype@diplom{Diplomarbeit}
\def\thesistype@diplom@en{Diploma Thesis}
\def\dirtype@diplom{Studienrichtung}
-\def\dirtype@diplom@en{degree programme}
+\def\dirtype@diplom@en{Degree programme}
\def\degree@diplom{Magister der Philosophie (Mag.\,Phil.)}
\def\degree@diplom@f{Magistra der Philosophie (Mag.\,Phil.)}
% diss
\def\thesistype@diss{Dissertation}
\def\thesistype@diss@en{Doctoral Thesis}
\def\dirtype@diss{Dissertationsgebiet}
-\def\dirtype@diss@en{field of study}
+\def\dirtype@diss@en{Field of study}
\def\degree@diss{Doktor der Philosophie (Dr.\,phil.)}
\def\degree@diss@f{Doktorin der Philosophie (Dr.\,phil.)}
@@ -474,7 +482,10 @@ This includes all drawings, sketches, graphics and internet sources.}
% We need graphicx for the logo
\RequirePackage{graphicx}
+\def\uvt@titlesep{\,|\,}
+
\renewcommand*\maketitle[1][1]{%
+ \if@uvt@titlepage
\newgeometry{top=2cm,bottom=2.5cm,left=2.5cm,right=2cm}
\expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax
\else
@@ -527,27 +538,27 @@ This includes all drawings, sketches, graphics and internet sources.}
\renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}%
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
\begin{flushright}
- \includegraphics[width=6cm]{univielogo-sw}
+ \includegraphics[width=6cm]{univielogo}
\end{flushright}
\vspace{2\baselineskip}
\begin{center}
- {\usekomafont{thesistype}\MakeUppercase{\@thesistype\,/\,\hskip\z@skip\mbox{\@thesistype@en}}\par}
+ {\usekomafont{thesistype}\MakeUppercase{\@thesistype\uvt@titlesep\hskip\z@skip\mbox{\@thesistype@en}}\par}
\end{center}
\vspace{2\baselineskip}
\begin{center}
- {\usekomafont{tpcaption}Titel der \@thesistype\,/\,Title of the \@thesistype@en\par}
+ {\usekomafont{tpcaption}Titel\uvt@titlesep Title\par}
{\ifx\@title\@empty\else
- \usekomafont{title}{\enquote{\@title%
- \ifx\@subtitle\@empty\else\linebreak\@subtitle\fi}\par}%
+ \usekomafont{title}{\@title%
+ \ifx\@subtitle\@empty\else\linebreak\@subtitle\fi\par}%
\fi
}%
{\ifx\@volume\@empty\else%
- \vskip 1em\usekomafont{baende}{Band \@volume\ von \@volumes\ B\"anden\,/\,volume \@volume\ of \@volumes\ volumes}%
+ \vskip 1em\usekomafont{baende}{Band \@volume\ von \@volumes\ B\"anden\uvt@titlesep volume \@volume\ of \@volumes\ volumes}%
\fi%
}%
\vskip 2em
{%
- {\usekomafont{tpcaption}verfasst von\,/\,submitted by\par}
+ {\usekomafont{tpcaption}verfasst von\,\uvt@titlesep\uvt@titlesep submitted by\par}
\usekomafont{author}{%
\lineskip 0.75em%
\begin{tabular}[t]{c}
@@ -556,21 +567,21 @@ This includes all drawings, sketches, graphics and internet sources.}
}%
}%
\vskip 2em
- {\usekomafont{tpcaption}angestrebter akademischer Grad\,/\,in partial fulfilment of the requirements for the degree of\par}
+ {\usekomafont{tpcaption}angestrebter akademischer Grad\uvt@titlesep in partial fulfilment of the requirements for the degree of\par}
\usekomafont{degree}{\@degree}
\end{center}\par
\vfill
- {\usekomafont{date}{Wien, \the\year\,/\,Vienna, \the\year\par}}%
+ {\usekomafont{date}{Wien, \the\year\uvt@titlesep Vienna, \the\year\par}}%
\vskip 2em
\usekomafont{codes}{%
\begin{tabular}[t]{@{}>{\raggedright}p{0.4\columnwidth}>{\raggedright}p{0.1\columnwidth}>{\raggedright}p{0.4\columnwidth}}
- Studienkennzahl lt. Studienblatt/\newline degree programme code as it appears on the student record sheet: & & \@studienkennzahl\tabularnewline
+ Studienkennzahl lt. Studienblatt\uvt@titlesep Degree programme code as it appears on the student record sheet: & & \@studienkennzahl\tabularnewline
\noalign{\vskip6pt}
- \@dirtype\ lt. Studienblatt\slash\newline \@dirtype@en\ as it appears on the student record sheet: & & \@studienrichtung\tabularnewline
+ \@dirtype\ lt. Studienblatt\uvt@titlesep\@dirtype@en\ as it appears on the student record sheet: & & \@studienrichtung\tabularnewline
\noalign{\vskip6pt}
- Betreut von\,/\,Supervisor: & & \@supervisor\tabularnewline%
+ Betreut von\uvt@titlesep Supervisor: & & \@supervisor\tabularnewline%
\noalign{\vskip6pt}
- \ifx\@cosupervisor\@empty\else Mitbetreut von\,/\,Co-Supervisor: & & \@cosupervisor\fi
+ \ifx\@cosupervisor\@empty\else Mitbetreut von\uvt@titlesep Co-Supervisor: & & \@cosupervisor\fi
\end{tabular}\par
}
\par
@@ -591,7 +602,10 @@ This includes all drawings, sketches, graphics and internet sources.}
\cleardoubleemptypage
\fi
\ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi
- \end{titlepage}
+ \end{titlepage}
+ \else% \if@uvt@titlepage
+ \setcounter{page}{2}%
+ \fi
\setcounter{footnote}{0}%
\expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax
\let\thanks\relax
@@ -822,6 +836,21 @@ This includes all drawings, sketches, graphics and internet sources.}
% End of @uvt@apa condition
\fi
+\else% @uvt@biblatex condition FALSE
+
+% Some support for legacy bibtex
+\AtBeginDocument{%
+ \@ifundefined{bibhang}{}{%
+ \setlength{\bibhang}{\parindent}%
+ }%
+ \@ifundefined{bibfont}{}{%
+ \renewcommand{\bibfont}{\small}%
+ }%
+ \@ifundefined{bibsep}{}{%
+ \setlength\bibsep{0pt}%
+ }%
+}
+
% End of @uvt@biblatex condition
\fi
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
index e85daaabe0..7c32f39b47 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
@@ -34,7 +34,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesPackage{univie-ling-wlg}[2024/06/27 v.2.6 Univie WLG journal layout (JSp)]
+\ProvidesPackage{univie-ling-wlg}[2024/09/28 v.2.9 Univie WLG journal layout (JSp)]
%% ============================================================
@@ -225,10 +225,10 @@
\NewDocumentCommand\weblink{mo}{%
\url{#1}%
\IfNoValueTF{#2}%
- {\ifthenelse{\isempty{\wlg@urldate}}{}{%
+ {\ifx\wlg@urldate\empty\else%
\ \urldate{\wlg@urldate}%
- }}%
- {\ \urldate{#2}}
+ \fi}%
+ {\ \urldate{#2}}%
}
}
@@ -431,10 +431,15 @@
\if@wlg@specialprint\else
\RequirePackage{etoc}
\etocstandardlines
+ \etocsetstyle{part}
+ {}
+ {\vspace{12pt}\normalsize\bfseries\rmfamily}
+ {\etocnumber. \etocname{}\par\vspace{10pt}}
+ {}
\etocsetstyle{chapter}
{}
{\normalsize\mdseries\rmfamily}
- {\etocname{}\dotfill\etocpage\par\vspace{12pt}}
+ {\etocname{}\dotfill\etocpage\par\vspace{10pt}}
{}
\setcounter{tocdepth}{0}
\fi
@@ -461,8 +466,7 @@
\newcommand*\frontmatter{%
\if@twoside\cleardoubleoddpage\else\clearpage\fi
\@wlg@mainmatterfalse\@wlg@frontmattertrue\pagenumbering{roman}%
- \edef\computelastpage{%
- \romannumeral\numexpr\getpagerefnumber{LastFrontPage}-1\relax}%
+ \def\computelastpage{\pageref{TotPages}}%
\edef\startpageref{%
\romannumeral\thestartpage\relax}%
}
@@ -595,6 +599,9 @@
\fi
\if@wlg@titlepage
\@maketitlepage[#1]%
+ \if@wlg@mainmatter
+ \pagenumbering{arabic}
+ \fi
\fi
\if@wlg@startpageset\else
\setcounter{page}{\thestartpage}
@@ -633,6 +640,7 @@
\thispagestyle{\titlepagestyle}\@thanks
\endgroup
\setcounter{footnote}{0}%
+ \setcounter{page}{\thestartpage}%
\global\let\@cauthor\@empty
\global\let\@thanks\@empty
\gdef\@ccauthor{\translate{corrauthor}}
@@ -672,7 +680,7 @@
\newcommand{\@maketitlepage}[1][1]{%
\if@wlg@titlepageneeded
\begin{titlepage}
- \pagenumbering{alph}
+ \pagenumbering{roman}
\thispagestyle{empty}%
\setcounter{page}{%
#1%
@@ -876,7 +884,9 @@
\end{flushright}%
\par
\vskip 2em
- \pagenumbering{arabic}
+ \if@wlg@mainmatter
+ \pagenumbering{arabic}
+ \fi
}%
% Rewrite \include for local LastPage counter
@@ -986,6 +996,9 @@
% (serifs)
\setkomafont{sectioning}{\normalfont\normalcolor\bfseries}
+% empty part pages
+\AddToHook{cmd/scr@startpart/before}{\cleardoublepage\thispagestyle{empty}}
+
% Abstract
\renewenvironment{abstract}{%
\addsec*{\hspace*{2.4em}Abstract}
@@ -1043,6 +1056,8 @@
\if@wlg@covington
\RequirePackage{covington}
\renewcommand{\p@equation}[1]{(#1)}
+ \setlength\reflistindent{\parindent}
+ \setlength\reflistparsep{0pt}
\fi
@@ -1083,8 +1098,13 @@
\AtBeginDocument{%
\@ifundefined{bibhang}{}{%
\setlength{\bibhang}{\parindent}%
+ }%
+ \@ifundefined{bibfont}{}{%
\renewcommand{\bibfont}{\small}%
}%
+ \@ifundefined{bibsep}{}{%
+ \setlength\bibsep{0pt}%
+ }%
}
%% =============================================================
diff --git a/macros/latex/contrib/ut-thesis/README b/macros/latex/contrib/ut-thesis/README
index 785d74c606..ed1db06b9d 100644
--- a/macros/latex/contrib/ut-thesis/README
+++ b/macros/latex/contrib/ut-thesis/README
@@ -5,8 +5,8 @@ as of Fall 2020:
[https://www.sgs.utoronto.ca/academic-progress/program-completion/formatting]
Copyright (c) 1998-2013 Francois Pitt <fpitt@cs.utoronto.ca>,
- 2020-2023 Jesse Knight <jesse.knight@mail.utoronto.ca>
-last updated at 13:00 (EST) on Wed 08 Feb 2023
+ 2020-2024 Jesse Knight <jesse.x.knight@protonmail.com>
+last updated at 09:00 (BST) on Fri 26 July 2024
This work may be distributed and/or modified under the conditions of
the LaTeX Project Public Licence, either version 1.3c of this licence
@@ -22,7 +22,7 @@ and is not covered by the licence.
This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is
-Jesse Knight <jesse.knight@mail.utoronto.ca>.
+Jesse Knight <jesse.x.knight@protonmail.com>.
This work consists of the files:
- README
@@ -31,12 +31,13 @@ This work consists of the files:
- ut-thesis.pdf (derived user manual)
- ut-thesis.cls (derived class file)
-To generate ut-thesis.cls (class file), run: pdflatex ut-thesis.ins
-To generate ut-thesis.pdf (documentation), run: pdflatex ut-thesis.dtx
-To use the class, make ut-thesis.cls visible to your LaTeX distribution,
-by placing ut-thesis.cls either in your working directory,
-or in your texmf tree, perhaps: $texmf/tex/latex/ut-thesis/ut-thesis.cls
-and the documentation: $texmf/doc/latex/ut-thesis/ut-thesis.pdf
+Install ut-thesis from your favourite LaTeX distribution.
+Alternatively, or to use the latest version:
+- generate ut-thesis.cls (class file) using: pdflatex ut-thesis.ins
+ and copy to: $texmf/tex/latex/ut-thesis/ut-thesis.cls
+- generate ut-thesis.pdf (documentation) using: pdflatex ut-thesis.dtx
+ and copy to: $texmf/doc/latex/ut-thesis/ut-thesis.pdf
+or simply copy ut-thesis.cls to your working directory.
See version history on GitHub:
-[https://github.com/jessexknight/ut-thesis] \ No newline at end of file
+[https://github.com/jessexknight/ut-thesis]
diff --git a/macros/latex/contrib/ut-thesis/ut-thesis.dtx b/macros/latex/contrib/ut-thesis/ut-thesis.dtx
index 873f0bd2c5..9d6a704148 100644
--- a/macros/latex/contrib/ut-thesis/ut-thesis.dtx
+++ b/macros/latex/contrib/ut-thesis/ut-thesis.dtx
@@ -5,7 +5,7 @@
%<class>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<class>\ProvidesClass{ut-thesis}
%<*class>
-[2023/02/08 v3.1.7 University of Toronto thesis class]
+[2024/07/26 v3.1.8 University of Toronto thesis class]
%</class>
%
%<*driver>
@@ -33,15 +33,15 @@
% \GetFileInfo{ut-thesis.dtx}
%
% \title{The \textit{ut-thesis} class
-% \thanks{\fileversion~[\filedate] CTAN repository:
-% \href{https://ctan.org/pkg/ut-thesis}
-% {\texttt{https://ctan.org/pkg/ut-thesis}}}}
+% \thanks{\fileversion~[\filedate]\hfill
+% \href{https://ctan.org/pkg/ut-thesis}{\texttt{https://ctan.org/pkg/ut-thesis}}\hfill
+% \href{https://github.com/jessexknight/ut-thesis}{\texttt{github.com/jessexknight/ut-thesis}}}}
% \author{
% Francois Pitt,
% Jesse Knight
% \thanks{maintainer, contact:
-% \href{mailto:jesse.knight@mail.utoronto.ca}
-% {\texttt{jesse.knight@mail.utoronto.ca}}}
+% \href{mailto:jesse.x.knight@protonmail.com}
+% {\texttt{jesse.x.knight@protonmail.com}}}
% }
%
% \maketitle
@@ -79,7 +79,7 @@
%
% The default options produce a final copy, ready for submission to
% the University of Toronto School of Graduate Studies (SGS).
-% Some examples are available on
+% There is some example code on
% \href{https://github.com/jessexknight/ut-thesis/tree/master/test}{GitHub}.
%
% \subsection{Options}\label{use:opt}
@@ -616,4 +616,4 @@
\setlength\belowcaptionskip{1ex}
% \end{macrocode}
%
-\endinput \ No newline at end of file
+\endinput
diff --git a/macros/latex/contrib/ut-thesis/ut-thesis.ins b/macros/latex/contrib/ut-thesis/ut-thesis.ins
index db35055115..80df67d81e 100644
--- a/macros/latex/contrib/ut-thesis/ut-thesis.ins
+++ b/macros/latex/contrib/ut-thesis/ut-thesis.ins
@@ -11,8 +11,8 @@ as of Fall 2020:
[https://www.sgs.utoronto.ca/academic-progress/program-completion/formatting]
Copyright (c) 1998-2013 Francois Pitt <fpitt@cs.utoronto.ca>,
- 2020-2021 Jesse Knight <jesse.knight@mail.utoronto.ca>
-last updated at 23:30 (EST) on Tue 20 July 2021
+ 2020-2024 Jesse Knight <jesse.x.knight@protonmail.com>
+last updated at 09:00 (BST) on Fri 26 July 2024
This work may be distributed and/or modified under the conditions of
the LaTeX Project Public Licence, either version 1.3c of this licence
@@ -28,7 +28,7 @@ and is not covered by the licence.
This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is
-Jesse Knight <jesse.knight@mail.utoronto.ca>.
+Jesse Knight <jesse.x.knight@protonmail.com>.
This work consists of the files:
- README
@@ -37,12 +37,13 @@ This work consists of the files:
- ut-thesis.pdf (derived user manual)
- ut-thesis.cls (derived class file)
-To generate ut-thesis.cls (class file), run: pdflatex ut-thesis.ins
-To generate ut-thesis.pdf (documentation), run: pdflatex ut-thesis.dtx
-To use the class, make ut-thesis.cls visible to your LaTeX distribution,
-by placing ut-thesis.cls either in your working directory,
-or in your texmf tree, perhaps: $texmf/tex/latex/ut-thesis/ut-thesis.cls
-and the documentation: $texmf/doc/latex/ut-thesis/ut-thesis.pdf
+Install ut-thesis from your favourite LaTeX distribution.
+Alternatively, or to use the latest version:
+- generate ut-thesis.cls (class file) using: pdflatex ut-thesis.ins
+ and copy to: $texmf/tex/latex/ut-thesis/ut-thesis.cls
+- generate ut-thesis.pdf (documentation) using: pdflatex ut-thesis.dtx
+ and copy to: $texmf/doc/latex/ut-thesis/ut-thesis.pdf
+or simply copy ut-thesis.cls to your working directory.
See version history on GitHub:
[https://github.com/jessexknight/ut-thesis]
@@ -51,4 +52,4 @@ See version history on GitHub:
\generate{\file{ut-thesis.cls}{\from{ut-thesis.dtx}{class}}}
-\endbatchfile \ No newline at end of file
+\endbatchfile
diff --git a/macros/latex/contrib/ut-thesis/ut-thesis.pdf b/macros/latex/contrib/ut-thesis/ut-thesis.pdf
index 8f055d54d0..fdf74d5a9a 100644
--- a/macros/latex/contrib/ut-thesis/ut-thesis.pdf
+++ b/macros/latex/contrib/ut-thesis/ut-thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/verifycommand/README.txt b/macros/latex/contrib/verifycommand/README.txt
index 4ee9666691..bd4b792268 100644
--- a/macros/latex/contrib/verifycommand/README.txt
+++ b/macros/latex/contrib/verifycommand/README.txt
@@ -1,5 +1,5 @@
-LaTeX verifycommand package v1.00 README.txt
+LaTeX verifycommand package v1.10 README.txt
Files included are:
diff --git a/macros/latex/contrib/verifycommand/verifycommand.dtx b/macros/latex/contrib/verifycommand/verifycommand.dtx
index 4e1a1ae6d6..eb01d05e33 100644
--- a/macros/latex/contrib/verifycommand/verifycommand.dtx
+++ b/macros/latex/contrib/verifycommand/verifycommand.dtx
@@ -17,7 +17,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{verifycommand}
-%<package> [2024/01/11 v1.00 Verify definitions have not changed.]
+%<package> [2024/09/03 v1.10 Verify definitions have not changed.]
%
%<*driver>
\documentclass{ltxdoc}
@@ -77,7 +77,7 @@
\usepackage{microtype}
-
+\usepackage{nowidow}
\usepackage[svgnames]{xcolor}
@@ -233,6 +233,7 @@
\usepackage{\mypackagename}
+%\usepackage[disable]{\mypackagename}
@@ -301,6 +302,7 @@ pageanchor=true,
%
% \changes{v1.00}{2024/01/11}{\ 2024/01/11 Initial version.}
+% \changes{v1.10}{2024/09/03}{\ 2024/09/03}
% \GetFileInfo{\mypackagename.sty}
@@ -353,11 +355,17 @@ pageanchor=true,
%
% To improve reliability,
% the \pkg{verifycommand} package provides a way to verify that
-% macros or environments have not changed.
-% This allows a package author to check before patching a definition.
+% macros or environments have not changed since the patches were
+% last designed.
+% This may be checked before applying the patch.
% If a definition is not as expected, a warning is issued.
% At the end of the compile, a list of all changed definitions is displayed.
%
+% Conditionals are provided, allowing multiple versions of a definition
+% to be tested and patched, warning if no known version is found.
+% Conditionals also allow the package to verify that several macros
+% are unchanged before taking a single common action.
+%
% \vfill
%
% \footnotesize
@@ -448,12 +456,51 @@ pageanchor=true,
% expected values.
%
%
-% \clearpage
+% \section{Warnings}
+%
+% \changes{v1.10}{2024/09/03}{Docs: Added Warnings section.}
+%
+% The document \textit{\LaTeX\ for authors} (\cmds{texdoc usrguide}
+% recommends the use of \LaTeX\ hooks where possible (\cmds{texdoc lthooks}).
+%
+% Commands created with \cs{NewDocumentCommand} and related may
+% \watchout[kernel changes]
+% change their definitions when the inner workings of
+% \cs{NewDocumentCommand} are optimized.
+% When this occurs, any checksums for these commands will
+% change, even though the associated patches probably will continue to work.
+% If you use \pkg{verifycommand} for these commands, expect the
+% checksums to need updates at some point in the future.
+%
+% Use \cs{NewCommandCopy} and \cs{NewEnvironmentCopy} to copy commands
+% for reuse. These work with all kinds of commmand definitions.
+% See \cmds{texdoc usrguide} for details.
+%
+% Use \cs{ShowCommand} or \cs{ShowEnvironment} to see an existing definition,
+% which again works with all forms of commands.
+%
%
% \section{How to use \pkg{verifycommand}}
%
+%
% \subsection{The user interface}
%
+% \changes{v1.10}{2024/06/25}{Docs: Added conditional tests.}
+%
+% In the following, \oarg{yourpackagename} is the package doing the
+% testing and patching,
+% and \oarg{theirpackagename} is the package which defines
+% the original macro.
+% Using these optional package names make it easier to find where
+% to make changes if needed.
+%
+% If there is only one optional argument,
+% \watchout[optional arguments]
+% it is used as \oarg{yourpackagename},
+% to identify where to find the \cs{VerifyCommand} checksum entry.
+% The second optional argument identifies what is being patched,
+% in case it has been changed.
+%
% \needspace{2\baselineskip}
% \DescribeMacro{\VerifyCommand} \oarg{yourpackagename} \oarg{theirpackagename}
% \marg{\cs{macroname}} \marg{\MDfive\ checksum}
@@ -464,13 +511,54 @@ pageanchor=true,
% \fqquad \marg{begin \MDfive\ checksum} \marg{end \MDfive\ checksum}
%
% Use one of these macros just before patching a macro or environment,
-% as seen below.
+% as seen below. A test is performed to see if the definition
+% is as expected before applying a patch.
%
% Note that there is one checksum for \cs{VerifyCommand}, but there
-% are two checksums for \cs{VerifyEnvironment}: once for the begin section
+% are two checksums for an environment: once for the begin section
% and one for the end section.
%
-% If there is only one optional argument, it is used as your package name.
+% It may be necessary to test for each of several possible versions of
+% a definition, then patch accordingly. The following test and apply a
+% true or false clause, without issuing a warning.
+%
+% \needspace{2\baselineskip}
+% \DescribeMacro{\IfVerifyCommand} \oarg{yourpackagename} \oarg{theirpackagename}
+% \marg{\cs{macroname}} \\
+% \fqquad \marg{\MDfive\ checksum} \\
+% \fqquad \marg{true} \marg{false}
+%
+% \needspace{3\baselineskip}
+% \DescribeMacro{\IfVerifyEnvironmentBegin} \oarg{yourpackagename} \oarg{theirpackagename}
+% \marg{\env{envname}} \\
+% \fqquad \marg{begin \MDfive\ checksum} \\
+% \fqquad \marg{true} \marg{false}
+%
+% \needspace{3\baselineskip}
+% \DescribeMacro{\IfVerifyEnvironmentEnd} \oarg{yourpackagename} \oarg{theirpackagename}
+% \marg{\env{envname}} \\
+% \fqquad \marg{end \MDfive\ checksum} \\
+% \fqquad \marg{true} \marg{false}
+%
+% Tests may be done as a group, either to try several versions of the same
+% definition, or to verify several definitions and act if any of them fail:
+%
+% \DescribeMacro{\TestVerifyCommands} Starts a group of tests.
+%
+% \DescribeMacro{\IfVerifyCommandPassed} \marg{true} \marg{false}
+% \quad Act if any of a group passed.
+% May be used to try to patch multiple versions of a command.
+%
+% \DescribeMacro{\IfVerifyCommandFailed} \marg{true} \marg{false}
+% \quad Act if any of a group failed.
+% May be used to verify several definitions are unchanged.
+%
+% A warning may be also issued:
+%
+% \DescribeMacro{\VERCMDWarning} \marg{yourpackage} \marg{theirpackage} \marg{defn name}
+% \quad Used to issue a warning that the macro has changed.
+%
+% See \cref{sec:conditionals} for examples of conditional tests.
%
%
% \subsection{Placing the macros}
@@ -483,70 +571,86 @@ pageanchor=true,
%
% \begin{sourceverb}
% \VerifyCommand{\LaTeX}{}
-% <patch \LaTeX here>
+% (patch \LaTeX here)
%
% \VerifyCommand[mypackage]{\textcolor}{}
-% <patch \textcolor here>
+% (patch \textcolor here)
%
% \VerifyCommand[mypackage][graphics]{\rotatebox}{}
-% <patch \rotatebox here>
+% (patch \rotatebox here)
%
% \VerifyEnvironment{tabbing}{}{}
-% <patch tabbing here>
+% (patch tabbing here)
% \end{sourceverb}
%
%
% \subsection{Finding the checksums of the current definitions}
+% \changes{v1.10}{2024/06/25}{Docs: ``Finding checksums'' reorganized.}
%
-% In the above examples, testing \cs{LaTeX} would print a warning showing
-% the correct \MDfive\ checksum.
-% Testing \cs{textcolor} would do the same, but as a \cs{PackageWarning} from \pkg{mypackage}.
-% Testing \cs{rotatebox} would also mention the package being tested, \pkg{graphics}.
-% Testing \env{tabbing} issues a separate warning for the begin and end sections.
-%
-%
+% The warnings are issued and the correct checksums are given.
+% The type of warning depends on the usage:
+% \begin{itemize}
+% \item Verifying \cs{LaTeX} would print a warning showing
+% the correct \MDfive\ checksum.
% \begin{sourceverb}
-% Warning: Something may fail. A definition has changed:
+% Warning: A definition has changed:
% \LaTeX
-% FAAAC6146C9A80F46A1F029B67923851
+% (FAAAC6146C9A80F46A1F029B67923851)
% on input line 464.
-
-% Package mypackage Warning: Something may fail. A definition has changed:
+% \end{sourceverb}
+% \item Verifying \cs{textcolor} would do the same,
+% but as a \cs{PackageWarning} from \pkg{mypackage},
+% which is the package doing the testing.
+% \begin{sourceverb}
+% Package mypackage Warning: A definition has changed:
% (mypackage) \textcolor
-% (mypackage) E1E2B5A908AA1BCDDF6BEA038596A381
+% (mypackage) (E1E2B5A908AA1BCDDF6BEA038596A381)
% (mypackage) on input line 465.
-
-% Package mypackage Warning: Something may fail. A definition has changed:
+% \end{sourceverb}
+% \item Verifying \cs{rotatebox} would also issue a warning from \pkg{mypackage},
+% but also mention the package being tested, \pkg{graphics}.
+% \begin{sourceverb}
+% Package mypackage Warning: A definition has changed:
% (mypackage) graphics: \rotatebox
-% (mypackage) 2472999B02C97AC847128AF24C55D150
+% (mypackage) (2472999B02C97AC847128AF24C55D150)
% (mypackage) on input line 466.
-%
-% Warning: Something may fail. A definition has changed:
+% \end{sourceverb}
+% \item Verifying \env{tabbing} issues a separate warning
+% for the begin and end sections.
+% \begin{sourceverb}
+% Warning: A definition has changed:
% tabbing
-% 1AD73B4527AD30969CF3219F2FB1306B
+% (1AD73B4527AD30969CF3219F2FB1306B)
% on input line 518.
%
-% Warning: Something may fail. A definition has changed:
+% Warning: A definition has changed:
% (end)tabbing
-% E8326AC43EE0A6E922A20F2A798BD177
+% (E8326AC43EE0A6E922A20F2A798BD177)
% on input line 518.
% \end{sourceverb}
+% \end{itemize}
+%
%
-% And at the end of the compile, a summary is given:
+% At the end of the compile, a summary is given:
%
% \begin{sourceverb}
% --------------------------------
-% WARNING: Something may fail.
-% Definition changed: \LaTeX
-% Definition changed: FAAAC6146C9A80F46A1F029B67923851
-% Definition changed: \textcolor
-% Definition changed: E1E2B5A908AA1BCDDF6BEA038596A381
-% Definition changed: graphics: \rotatebox
-% Definition changed: 2472999B02C97AC847128AF24C55D150
-% Definition changed: tabbing
-% Definition changed: 1AD73B4527AD30969CF3219F2FB1306B
-% Definition changed: (end)tabbing
-% Definition changed: E8326AC43EE0A6E922A20F2A798BD177
+% Package verifycommand Warning: Definitions have changed.
+% Patches for the following macros may need to be updated.
+% See the previous warnings for line numbers.
+%
+% Syntax: Patching pkg -> Defining pkg: Macro (checksum)
+% -----
+% (verifycommand) \LaTeX
+% (FAAAC6146C9A80F46A1F029B67923851)
+% (verifycommand) mypackage -> \textcolor
+% (E1E2B5A908AA1BCDDF6BEA038596A381)
+% (verifycommand) mypackage -> graphics: \rotatebox
+% (2472999B02C97AC847128AF24C55D150)
+% (verifycommand) tabbing
+% (1AD73B4527AD30969CF3219F2FB1306B)
+% (verifycommand) (end)tabbing
+% (E8326AC43EE0A6E922A20F2A798BD177)
% --------------------------------
% \end{sourceverb}
%
@@ -558,24 +662,24 @@ pageanchor=true,
%
% \begin{sourceverb}
% \VerifyCommand{\LaTeX}{FAAAC6146C9A80F46A1F029B67923851}
-% <patch \LaTeX here>
+% (patch \LaTeX here)
%
% \VerifyCommand[mypackage]{\textcolor}
% {E1E2B5A908AA1BCDDF6BEA038596A381}
-% <patch \textcolor here>
+% (patch \textcolor here)
%
% \VerifyCommand[mypackage][graphics]{\rotatebox}
% {2472999B02C97AC847128AF24C55D150}
-% <patch \rotatebox here>
+% (patch \rotatebox here)
%
% \VerifyEnvironment{tabbing}
% {1AD73B4527AD30969CF3219F2FB1306B}% beginning code
% {E8326AC43EE0A6E922A20F2A798BD177}% endind code
-% <patch tabbing here>
+% (patch tabbing here)
% \end{sourceverb}
%
%
-% \subsection{When a definition is changed}
+% \subsection{When a definition has changed}
%
% When something being verified changes at a later time, the resulting
% warning will let the user know that the patches may not work
@@ -584,14 +688,97 @@ pageanchor=true,
% this warning will be issued before the patch is even attempted.
%
% When testing many packages in bulk, a utility such as \cmds{grep}
-% can report the changed definitions.
-% Search the log file for ``Definition changed:''.
+% can report which macros have changed.
+% Search the log file for ``\texttt{(verifycommand)}''.
+%
+%
+% \subsection{Testing for changed macros}
+% \label{sec:conditionals}
+%
+% \changes{v1.10}{2024/06/25}{Docs: Added conditional tests.}
+%
+% To test to see if a macro or environment has changed, use
+% \cs{IfVerifyCommand}, \cs{IfVerifyEnvironmentBegin},
+% or \cs{IfVerifyEnvironmentEnd}.
+%
+% Example:
+% \begin{sourceverb}
+% \IfVerifyCommand[mypackage][LaTeX kernel]{\LaTeX}{123}{True}{False}
+% \end{sourceverb}
+% Result: \IfVerifyCommand[mypackage][LaTeX kernel]{\LaTeX}{}{True}{False}
+%
+% Example:
+% \begin{sourceverb}
+% \IfVerifyCommand[mypackage][LaTeX kernel]{\LaTeX}
+% {FAAAC6146C9A80F46A1F029B67923851}
+% {True}{False}
+% \end{sourceverb}
+% Result:
+% \IfVerifyCommand[mypackage][LaTeX kernel]{\LaTeX}
+% {FAAAC6146C9A80F46A1F029B67923851}
+% {True}{False}
+% (Assuming \cs{LaTeX} has not actually changed since
+% this manual was generated.)
+%
+% Example:
+% \begin{sourceverb}
+% \IfVerifyEnvironmentEnd[mypackage][LaTeX kernel]{tabbing}
+% {E8326AC43EE0A6E922A20F2A798BD177}
+% {True}{False}
+% \end{sourceverb}
+% Result:
+% \IfVerifyEnvironmentEnd[mypackage][LaTeX kernel]{tabbing}
+% {E8326AC43EE0A6E922A20F2A798BD177}
+% {True}{False}
+%
+% If the \pkg{verifycommand} package is disabled, these tests
+% will always return true.
+%
+% These tests do not issue warnings if the test fails, so they may
+% be used to test against several possible definitions, chosing the
+% appropriate patch depending on which match is found.
+%
+% To try to patch multiple versions of the same command,
+% and issue a warning if no match is found:
+%
+% \begin{sourceverb}
+% \TestVerifyCommands
+%
+% \IfVerifyCommand[mypackage][theirpackage]{\theirmacro}
+% {12312312312312312321312312312312}
+% {(Patch an older version of the macro.)}
+%
+% \IfVerifyCommand[mypackage][theirpackage]{\theirmacro}
+% {45645645645645645645645645645645}
+% {(Patch a newer version of the macro.)}
+%
+% \IfVerifyCommandPassed
+% {}% One of the patches worked.
+% {\VERCMDWarning{mypackage}{theirpackage}{\theirmacro}}
+% \end{sourceverb}
+%
+% To verify several commands have not changed:
+%
+% \begin{sourceverb}
+% \TestVerifyCommands
+%
+% \VerifyCommand[mypackage][theirpackage]{\firstmacro}
+% {78978978978978978978978978978978}
+% \VerifyCommand[mypackage][theirpackage]{\secondmacro}
+% {27272727272727272727277272727272}
+% \VerifyCommand[mypackage][theirpackage]{\thirdmacro}
+% {84838483848384838483848384838483}
+%
+% \IfVerifyCommandFailed
+% {Something is not correct. (Warnings have been issued above.)}
+% {}% All are fine.
+% \end{sourceverb}
%
%
% \subsection{Disabling the package}
%
% \pkg{verifycommand} relies on knowing the internal structure of
-% various kinds of definitions. It is possible that these may change some day,
+% various kinds of definitions. It is possible that these may change,
% causing endless warnings for that kind of definition.
% Should that happen, it will be necessary to disable the \pkg{verifycommand}
% package until it can be updated.
@@ -601,15 +788,22 @@ pageanchor=true,
% \usepackage[disable]{verifycommand}
% \end{sourceverb}
%
+% Package warnings will stop,
+% and the conditional tests will always return true.
+%
+% If the package is disabled, the boolean \bool{VERCMDenable}
+% will be |false|. This may be used to help decide which patches
+% to apply as a default.
%
%
% ^^A To trigger the checksums to be copied into the exmaples:
+% \typeout{(verifycommand): The following warnings that definitions have changed}
+% \typeout{are expected, and are for demonstration purposes:}
% \VerifyCommand{\LaTeX}{}
% \VerifyCommand[mypackage]{\textcolor}{}
% \VerifyCommand[mypackage][graphics]{\rotatebox}{}
% \VerifyEnvironment{tabbing}{}{}
%
-%
% \clearpage
%
% ^^A \StopEventually{\PrintChanges\PrintIndex}
@@ -638,7 +832,7 @@ pageanchor=true,
% \PrintChanges
% \phantomsection
% \label{sec:changesend}
-%
+% \clearpage
%
% ^^A The instructions for the Index of Objects:
% \IndexPrologue{
@@ -719,7 +913,7 @@ pageanchor=true,
%
% \typeout{--------------------------------}
% \typeout{The following warning that}
-% \typeout{something may fail is an}
+% \typeout{definitions have changed is an}
% \typeout{example of the output of this}
% \typeout{package, and is not evidence of}
% \typeout{a problem with the verifycommand}
@@ -747,16 +941,16 @@ pageanchor=true,
%
% Package option to disable all functions.
%
-% \DescribeBoolean{VERCMD@enable} Is the package enabled?
+% \DescribeBoolean{VERCMDenable} Is the package enabled?
% \begin{macrocode}
-\newbool{VERCMD@enable}
-\booltrue{VERCMD@enable}
+\newbool{VERCMDenable}
+\booltrue{VERCMDenable}
% \end{macrocode}
%
% \DescribeOption{disable} Turn off all functions.
% \begin{macrocode}
\DeclareOption{disable}{%
- \boolfalse{VERCMD@enable}%
+ \boolfalse{VERCMDenable}%
\typeout{----}%
\typeout{Package verifycommand: Turned off by option 'disable'.}%
\typeout{----}%
@@ -788,6 +982,8 @@ pageanchor=true,
%
% The \MDfive\ hash is used for \env{lateximage} filenames for \SVG\ math.
%
+% The default definition if no MD5 function is found.
+% This will be changed below if an MD5 function is available.
% \begin{macrocode}
\newcommand{\VERCMD@mdfivesum}[1]{%
\PackageError{verifycommand}
@@ -855,27 +1051,78 @@ pageanchor=true,
% \end{macrocode}
% \end{macro}
+% \DescribeBoolean{VERCMD@this@ltxcmd} True if this command is
+% defined by \cs{NewDocumentCommand} or related.
+% \begin{macrocode}
+\newbool{VERCMD@this@ltxcmd}
+\boolfalse{VERCMD@this@ltxcmd}
+% \end{macrocode}
+
+% \DescribeBoolean{VERCMD@failed@ltxcmd} True if any command that failed
+% was defined by \cs{NewDocumentCommand} or related.
+% \begin{macrocode}
+\newbool{VERCMD@failed@ltxcmd}
+\boolfalse{VERCMD@failed@ltxcmd}
+% \end{macrocode}
+
% \begin{macro}{\VERCMD@addchanged} \marg{\MDfive sum} \marg{text} \qquad Add to the list of changed definitions.
+% \changes{v1.10}{2024/08/25}{Revised summary message.}
+% \changes{v1.10}{2024/08/28}{Added `\texttt{*}' if \cs{NewDocumentCommand} or related is used.}
% \begin{macrocode}
\newcommand*{\VERCMD@addchanged}[2]{%
+% \end{macrocode}
+% Newline control for pretty print.
+% \begin{macrocode}
\ifdefempty{\VERCMD@whatchanged}%
{}%
{\apptocmd{\VERCMD@whatchanged}{^^J}{}{}}%
- \apptocmd{\VERCMD@whatchanged}{Definition changed: #2^^J}{}{}%
- \apptocmd{\VERCMD@whatchanged}{Definition changed: \space\space\space#1}{}{}%
+% \end{macrocode}
+% ID the message as from \pkg{verifycommand}, add the text,
+% add the checksum.
+% \begin{macrocode}
+ \apptocmd{\VERCMD@whatchanged}{%
+ (verifycommand)\space\space#2^^J%
+ \space\space\space\space\space\space\space\space\space\space%
+ \space\space\space\space\space\space\space\space\space(#1)%
+ }{}{}%
+% \end{macrocode}
+% Optionally add a |*| after the checksum if the command was
+% defined with \cs{NewCommand} or related.
+% \begin{macrocode}
+ \ifbool{VERCMD@this@ltxcmd}{%
+ \apptocmd{\VERCMD@whatchanged}{ *}{}{}%
+ \booltrue{VERCMD@failed@ltxcmd}%
+ }{}%
+ \boolfalse{VERCMD@this@ltxcmd}%
}
% \end{macrocode}
% \end{macro}
% When the compile is finished, print the accumulated list of changed definitions.
+% \changes{v1.10}{2024/08/25}{Revised summary message.}
+% ^^A *date
% \begin{macrocode}
-\AfterEndDocument{
+\AtEndDocument{
\ifdefempty{\VERCMD@whatchanged}{}{%
\typeout{--------------------------------}%
- \typeout{WARNING: Something may fail.}%
- \typeout{\VERCMD@whatchanged}%
- \typeout{--------------------------------}%
+ \typeout{Package verifycommand Warning: Definitions have changed.}%
+ \typeout{Patches for the following macros may need to be updated.}%
+ \typeout{See the previous warnings for line numbers.}%
+ \typeout{}%
+ \typeout{Syntax:\space\space Patching pkg -> Defining pkg: Macro (checksum)}%
+ \typeout{-----}%
+ \typeout{\VERCMD@whatchanged}
+ \typeout{-----}%
+ \typeout{Look for updates to these packages.}
+%
+ \ifbool{VERCMD@failed@ltxcmd}{
+ \typeout{Any of the above marked with a * may be due to changes in LaTeX internals,}
+ \typeout{the most recently known of which was 2023/12/01.}
+ \typeout{If so, look for updates for the LaTeX sytem as well.}
+ }{}
+%
+ \typeout{--------------------------------}
}
}
% \end{macrocode}
@@ -895,29 +1142,33 @@ pageanchor=true,
% \end{macro}
-% \begin{macro}{\VERCMD@Warning} \marg{yourpackage} \marg{theirpackage} \marg{defn name}
+% \begin{macro}{\VERCMDWarning} \marg{yourpackage} \marg{theirpackage} \marg{defn name}
%
% If no package names, print a general warning.
% If package names are given, print a \cs{PackageWarning}.
+% Either way, also add to the summary report.
+% \changes{v1.10}{2024/08/25}{Revised warning message.}
% \begin{macrocode}
-\newcommand*{\VERCMD@Warning}[3]{%
+\newcommand*{\VERCMDWarning}[3]{%
\ifblank{#1}%
{%
\VERCMD@ProgWarning{%
- Something may fail. A definition has changed:\MessageBreak
+ A definition has changed:\MessageBreak
\ifblank{#2}{}{#2: }\string#3\MessageBreak
- \VERCMD@temp\MessageBreak
- }
- \expandafter\VERCMD@addchanged\expandafter{\VERCMD@temp}{\string#3}%
+ (\VERCMD@temp)\MessageBreak
+ }%
+ \expandafter\VERCMD@addchanged%
+ \expandafter{\VERCMD@temp}{\string#3}%
}%
{%
\PackageWarning{#1}{%
- Something may fail. A definition has changed:\MessageBreak%
+ A definition has changed:\MessageBreak%
\ifblank{#2}{}{#2: }%
\string#3\MessageBreak%
- \VERCMD@temp\MessageBreak%
+ (\VERCMD@temp)\MessageBreak%
}%
- \expandafter\VERCMD@addchanged\expandafter{\VERCMD@temp}{\ifblank{#2}{}{#2: }\string#3}%
+ \expandafter\VERCMD@addchanged%
+ \expandafter{\VERCMD@temp}{#1 -> \ifblank{#2}{}{#2: }\string#3}%
}%
}
% \end{macrocode}
@@ -929,19 +1180,78 @@ pageanchor=true,
% \end{macrocode}
%
%
+%
% \subsection{User interface}
%
-% \begin{macro}{\VerifyCommand} \oarg{yourpackage} \oarg{theirpackage}
+%
+% \DescribeBoolean{VERCMD@passed} True if any test passed.
+% \changes{v1.10}{2024/08/28}{Added test groups.}
+% \begin{macrocode}
+\newbool{VERCMD@passed}
+% \end{macrocode}
+%
+% \DescribeBoolean{VERCMD@failed} True if any test failed.
+% \changes{v1.10}{2024/08/28}{Added test groups.}
+% \begin{macrocode}
+\newbool{VERCMD@failed}
+% \end{macrocode}
+%
+% \begin{macro}{\TestVerifyCommands}
+% Starts a new set of \cs{VerifyCommand} tests,
+% after which the booleans will tell if any passed and if any failed.
+% \changes{v1.10}{2024/08/28}{Added test groups.}
+% \begin{macrocode}
+\newcommand*{\TestVerifyCommands}
+{
+ \boolfalse{VERCMD@passed}
+ \boolfalse{VERCMD@failed}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\IfVerifyCommandPassed} \marg{true} \marg{false}
+% If any of the \cs{VerifyCommand} tests passed, do the |true| clause.
+% If none of them passed, do the |false| clause.
+% \changes{v1.10}{2024/08/28}{Added test groups.}
+% \begin{macrocode}
+\newcommand*{\IfVerifyCommandPassed}
+ {%
+ \ifbool{VERCMD@passed}%
+ {\let\VERCMD@tempa\@firstoftwo}%
+ {\let\VERCMD@tempa\@secondoftwo}%
+ \VERCMD@tempa%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\IfVerifyCommandFailed} \marg{true} \marg{false}
+% If any of the \cs{VerifyCommand} tests failed, do the |true| clause.
+% If none of them failed, do the |false| clause.
+% \changes{v1.10}{2024/08/28}{Added test groups.}
+% \begin{macrocode}
+\newcommand*{\IfVerifyCommandFailed}
+ {%
+ \ifbool{VERCMD@failed}%
+ {\let\VERCMD@tempa\@firstoftwo}%
+ {\let\VERCMD@tempa\@secondoftwo}%
+ \VERCMD@tempa%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\IfVerifyCommand} \oarg{yourpackage} \oarg{theirpackage}
% \marg{\cs{commandname}} \marg{\MDfive\ checksum}
+% \marg{true} \marg{false}
+% \changes{v1.10}{2024/06/25}{Added conditional tests.}
%
% Test for various kinds of definitions, and convert them to \MDfive\ checksums.
% \begin{macrocode}
-\NewDocumentCommand{\VerifyCommand}{O{} O{} m m}{%
+\NewDocumentCommand{\IfVerifyCommand}{O{} O{} m m}{%
% \end{macrocode}
%
% Only if the package is enabled:
% \begin{macrocode}
- \ifbool{VERCMD@enable}{%
+ \ifbool{VERCMDenable}{%
% \end{macrocode}
%
% Default to an un-detected definition type:
@@ -949,11 +1259,18 @@ pageanchor=true,
\edef\VERCMD@temp{Unknown~definition}%
% \end{macrocode}
%
-% For \cs{NewDocumentCommand}, the macro name is ``|\name code|'' with a space in the middle.
+% Will become true if found \cs{NewDocumentCommand} or related.
+% \begin{macrocode}
+ \boolfalse{VERCMD@this@ltxcmd}
+% \end{macrocode}
+%
+% For \cs{NewDocumentCommand}, the macro name is ``|\name code|''
+% with a space in the middle.
% \begin{macrocode}
% % NewDocumentCommand:
\ifcsdef{\cs_to_str:N #3~code}%
{%
+ \booltrue{VERCMD@this@ltxcmd}%
\expandafter\VERCMD@mdfive%
\csname \cs_to_str:N #3~code\endcsname%
}%
@@ -972,7 +1289,8 @@ pageanchor=true,
{%
% \end{macrocode}
%
-% For \cs{DeclareRobustCommand}, the macro name is ``|\name |'' with a trailing space.
+% For \cs{DeclareRobustCommand}, the macro name is ``|\name |''
+% with a trailing space.
% \begin{macrocode}
% % DeclareRobustCommand:
\ifcsdef{\cs_to_str:N #3~}%
@@ -983,19 +1301,24 @@ pageanchor=true,
{%
% \end{macrocode}
%
-% For \cs{newcommand} with an option, the macro name is ``|\\name|'', with two backslashes.
+% For \cs{newcommand} with an option, the macro name is ``|\\name|'',
+% with two backslashes.
% \begin{macrocode}
% % newcommand w/ option:
\ifcsdef{\VERCMD@backslash\cs_to_str:N #3}%
{%
\expandafter\VERCMD@mdfive%
- \csname \VERCMD@backslash\cs_to_str:N #3\endcsname%
+ \csname %
+ \VERCMD@backslash%
+ \cs_to_str:N #3%
+ \endcsname%
}%
% \end{macrocode}
%
% For \cs{newcommand}, the macro name is ``|\name|''.
%
-% If none match, the default unknown definition warning is show in place of the checksum.
+% If none match, the default unknown definition warning is shown
+% in place of the checksum.
% \begin{macrocode}
{%
% % newcommand:
@@ -1008,33 +1331,65 @@ pageanchor=true,
}%
% \end{macrocode}
%
-% If the checksum does not match the expected value, issue a warning.
+% If the checksum matches the expected value, do the following
+% |true| clause, else do the following |false| clause.
+% Also track the true and false tests for \cs{IfVerifyCommandPassed}
+% and \cs{IfVerifyCommandFailed}.
+% \changes{v1.10}{2024/08/28}{Added test groups.}
% \begin{macrocode}
\ifdefstring{\VERCMD@temp}{#4}%
- {}%
{%
- \VERCMD@Warning{#1}{#2}{#3}%
+ \booltrue{VERCMD@passed}%
+ \let\VERCMD@tempa\@firstoftwo%
+ }%
+ {%
+ \booltrue{VERCMD@failed}%
+ \let\VERCMD@tempa\@secondoftwo%
}%
}% if package enabled
- {}% if package not enabled
+ {\let\VERCMD@tempa\@firstoftwo}% if package not enabled
+ \VERCMD@tempa%
}
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\VerifyEnvironment} \oarg{yourpackage} \oarg{theirpackage}
-% \marg{\cs{commandname}}
-% \marg{begin \MDfive\ checksum}
-% \marg{end \MDfive\ checksum}
+% \begin{macro}{\VerifyCommand} \oarg{yourpackage} \oarg{theirpackage}
+% \marg{\cs{commandname}} \marg{\MDfive\ checksum}
%
-% Test both the begin and end section of the environment.
+% Test for various kinds of definitions, and convert them to \MDfive\ checksums.
% \begin{macrocode}
-\NewDocumentCommand{\VerifyEnvironment}{O{} O{} m m m}{%
+\NewDocumentCommand{\VerifyCommand}{O{} O{} m m}{%
+ \ifblank{#1}{% #1 blank
+ \IfVerifyCommand{#3}{#4}{}{\VERCMDWarning{}{}{#3}}%
+ }% #1 blank
+ {% #1 given
+ \ifblank{#2}{% #2 blank
+ \IfVerifyCommand[#1]{#3}{#4}{}{\VERCMDWarning{#1}{}{#3}}%
+ }% #2 blank
+ {% #2 given
+ \IfVerifyCommand[#1][#2]{#3}{#4}{}{\VERCMDWarning{#1}{#2}{#3}}%
+ }% #2 given
+ }% #1 given
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\IfVerifyEnvironmentBegin}
+% \oarg{yourpackage} \oarg{theirpackage}
+% \marg{\cs{commandname}}
+% \marg{begin \MDfive\ checksum}
+% \changes{v1.10}{2024/06/25}{Added conditional tests.}
+%
+% Test the begin section of the environment.
+% \begin{macrocode}
+\NewDocumentCommand{\IfVerifyEnvironmentBegin}{O{} O{} m m}{%
% \end{macrocode}
%
% Only if the package is enabled:
% \begin{macrocode}
- \ifbool{VERCMD@enable}{%
+ \ifbool{VERCMDenable}{%
% \end{macrocode}
%
% Default to an un-detected definition type:
@@ -1042,11 +1397,17 @@ pageanchor=true,
\edef\VERCMD@temp{Unknown~definition}%
% \end{macrocode}
%
+% Will become true if found \cs{NewDocumentCommand} or related.
+% \begin{macrocode}
+ \boolfalse{VERCMD@this@ltxcmd}
+% \end{macrocode}
+%
% For \cs{NewDocumentEnvironment}, the macro name is ``|\environment name code|'' with internal spaces.
% \begin{macrocode}
% % NewDocumentEnvironment:
\ifcsdef{environment~#3~code}%
{%
+ \booltrue{VERCMD@this@ltxcmd}%
\expandafter\VERCMD@mdfive%
\csname environment~#3~code\endcsname%
}%
@@ -1075,26 +1436,62 @@ pageanchor=true,
}%
% \end{macrocode}
%
-% If the checksum does not match the expected value, issue a warning.
+% Do the first or second next argument depending on a match:
+% \changes{v1.10}{2024/08/28}{Added test groups.}
% \begin{macrocode}
\ifdefstring{\VERCMD@temp}{#4}%
- {}%
{%
- \VERCMD@Warning{#1}{#2}{#3}%
+ \booltrue{VERCMD@passed}%
+ \let\VERCMD@tempa\@firstoftwo%
+ }%
+ {%
+ \booltrue{VERCMD@failed}%
+ \let\VERCMD@tempa\@secondoftwo%
}%
% \end{macrocode}
%
-% Reset the default to an un-detected definition type:
+% \begin{macrocode}
+ }% if package enabled
+ {\let\VERCMD@tempa\@firstoftwo}% if package not enabled
+ \VERCMD@tempa%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\IfVerifyEnvironmentEnd}
+% \oarg{yourpackage} \oarg{theirpackage}
+% \marg{\cs{commandname}}
+% \marg{end \MDfive\ checksum}
+% \changes{v1.10}{2024/06/25}{Added conditional tests.}
+%
+% Test the end section of the environment.
+% \begin{macrocode}
+\NewDocumentCommand{\IfVerifyEnvironmentEnd}{O{} O{} m m}{%
+% \end{macrocode}
+%
+% Only if the package is enabled:
+% \begin{macrocode}
+ \ifbool{VERCMDenable}{%
+% \end{macrocode}
+%
+% Default to an un-detected definition type:
% \begin{macrocode}
\edef\VERCMD@temp{Unknown~definition}%
% \end{macrocode}
%
+% Will become true if found \cs{NewDocumentCommand} or related.
+% \begin{macrocode}
+ \boolfalse{VERCMD@this@ltxcmd}
+% \end{macrocode}
+%
% For \cs{NewDocumentEnvironment}, the ending macro name
% is ``|\environment name end aux |'', with spaces and a trailing space.
% \begin{macrocode}
% % end DocumentEnvironment:
\ifcsdef{environment~#3~end~aux~}%
{%
+ \booltrue{VERCMD@this@ltxcmd}%
\expandafter\VERCMD@mdfive
\csname environment~#3~end~aux~\endcsname%
}%
@@ -1113,24 +1510,134 @@ pageanchor=true,
}%
% \end{macrocode}
%
-% If the checksum does not match the expected value, issue a warning.
+% Do the first or second next argument depending on a match:
+% \changes{v1.10}{2024/08/28}{Added test groups.}
% \begin{macrocode}
- \ifdefstring{\VERCMD@temp}{#5}%
- {}%
+ \ifdefstring{\VERCMD@temp}{#4}%
+ {%
+ \booltrue{VERCMD@passed}%
+ \let\VERCMD@tempa\@firstoftwo%
+ }%
{%
- \VERCMD@Warning{#1}{#2}{(end)#3}%
+ \booltrue{VERCMD@failed}%
+ \let\VERCMD@tempa\@secondoftwo%
}%
}% if package enabled
- {}% if package not enabled
+ {\let\VERCMD@tempa\@firstoftwo}% if package not enabled
+ \VERCMD@tempa%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\VerifyEnvironment} \oarg{yourpackage} \oarg{theirpackage}
+% \marg{\cs{commandname}}
+% \marg{begin \MDfive\ checksum}
+% \marg{end \MDfive\ checksum}
+%
+% Test both the begin and end section of the environment.
+% \begin{macrocode}
+\NewDocumentCommand{\VerifyEnvironment}{O{} O{} m m m}{%
+% begin:
+ \ifblank{#1}{% #1 blank
+ \IfVerifyEnvironmentBegin{#3}{#4}%
+ {}%
+ {\VERCMDWarning{}{}{#3}}%
+ }% #1 blank
+ {% #1 given
+ \ifblank{#2}{% #2 blank
+ \IfVerifyEnvironmentBegin[#1]{#3}{#4}%
+ {}%
+ {\VERCMDWarning{#1}{}{#3}}%
+ }% #2 blank
+ {% #2 given
+ \IfVerifyEnvironmentBegin[#1][#2]{#3}{#4}%
+ {}%
+ {\VERCMDWarning{#1}{#2}{#3}}%
+ }% #2 given
+ }% #1 given
+% end:
+ \ifblank{#1}{% #1 blank
+ \IfVerifyEnvironmentEnd{#3}{#5}%
+ {}%
+ {\VERCMDWarning{}{}{(end)#3}}%
+ }% #1 blank
+ {% #1 given
+ \ifblank{#2}{% #2 blank
+ \IfVerifyEnvironmentEnd[#1]{#3}{#5}%
+ {}%
+ {\VERCMDWarning{#1}{}{(end)#3}}%
+ }% #2 blank
+ {% #2 given
+ \IfVerifyEnvironmentEnd[#1][#2]{#3}{#5}%
+ {}%
+ {\VERCMDWarning{#1}{#2}{(end)#3}}%
+ }% #2 given
+ }% #1 given
}
% \end{macrocode}
% \end{macro}
%
+%
% \begin{macrocode}
\ExplSyntaxOff
% \end{macrocode}
%
%
+% \subsection{Verify infrastructure}
+%
+% \changes{v1.10}{2024/08/28}{Tests low-level \cs{NewDocumentCommand} code.}
+%
+% The low-level infrastructure for \cs{NewDocumentCommand} and related
+% may change on occasion, causing a change in the resulting code and
+% a verification error for such code.
+% The following is done while generating the documentation
+% for the \pkg{verifycommand} package,
+% and verifies the definitions of the underlying
+% infrastructure and issues a warning if any has changed.
+%
+% In the source for the following, \filenm{ltxcmd.dtx} uses |@@| which is
+% replaced by |__cmd|.
+%
+% (Testing silently occurs here, without adding text to the documentation.)
+%
+% \ExplSyntaxOn
+%
+% \TestVerifyCommands
+%
+% ^^A *checksums
+% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_cmd_code:Nnn}
+% {0911983C176452DDE1F471783F875529}
+%
+% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_cmd_optimized:Nnn}
+% {CC1FE1C2D4782317D9E9EB391AD7FFE4}
+%
+% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_cmd_code_aux:Nnn}
+% {6675F7AC09F310F6AB963DAA0860BD37}
+%
+% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_cmd_code_expandable:Nnn}
+% {8EDCF2A369B6F9CE43280D9118F01383}
+
+% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_env_internal:nnnn}
+% {7F026120EACC68911B492D09A4B0F537}
+%
+% \ExplSyntaxOff
+%
+% \IfVerifyCommandFailed
+% {
+% \AfterEndDocument{
+% \PackageWarningNoLine{verifycommand}{%
+% The internals for LaTeX \string\NewCommand\MessageBreak%
+% and related have changed.\MessageBreak%
+% Update the checksums in verifycommand.dtx\MessageBreak
+% at `*checksums', and research when the\MessageBreak
+% internals changed and update the date\MessageBreak
+% in verifycommand.dtx at `*date'%
+% }%
+% }
+% }
+% {}
+%
%
% \clearpage
%
diff --git a/macros/latex/contrib/verifycommand/verifycommand.pdf b/macros/latex/contrib/verifycommand/verifycommand.pdf
index b58e11c6c2..19accc8682 100644
--- a/macros/latex/contrib/verifycommand/verifycommand.pdf
+++ b/macros/latex/contrib/verifycommand/verifycommand.pdf
Binary files differ
diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.pdf b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.pdf
new file mode 100644
index 0000000000..0d8a71a39a
--- /dev/null
+++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.pdf
Binary files differ
diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.tex b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.tex
new file mode 100644
index 0000000000..acb246e07c
--- /dev/null
+++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-5x5-A4.tex
@@ -0,0 +1,26 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode}
+
+\documentclass[a4paper,11pt]{article}
+\usepackage{WriteOnGrid}
+\usepackage{lipsum}
+\usepackage{frcursive}
+
+\begin{document}
+
+\thispagestyle{empty}
+
+\begin{PleinePageCinqCinq}[FormatPapier=A4,NumLignes,MargeG=0.7,MargeH=2.3]
+%entête
+\LignePapierCinqCinq[Echelle=1.25,Ligne=1]{C. PIERQUET \hfill \LaTeX}
+%titre
+\LignePapierCinqCinq[Echelle=1.25,Ligne=2,Couleur=red]<center>{\underline{\cursive\bfseries Devoir 1}}
+%cadre de notes
+\CadreNoteCinqCinq{3}
+%ligne pour un petit titre
+\LignePapierCinqCinq[Echelle=1.25,Ligne=8,Couleur=green!50!black]{\sffamily\underline{Exercice 1 :}}
+%%paragraphe lipsum avec une échelle de 1.15 := calcul de l'interligne
+\ParagraphePapierCinqCinq[Ligne=10,Echelle=1.15,Espacement=\fpeval{10/1.15}]{\cursive\lipsum[1][1-7]}
+\end{PleinePageCinqCinq}
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.pdf b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.pdf
index 7bcc35aa1b..7a2a6c5b98 100644
--- a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.pdf
+++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.tex b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.tex
index 070c88b7cd..3608df559c 100644
--- a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.tex
+++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-en.tex
@@ -45,8 +45,8 @@
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
-\def\TPversion{0.1.6}
-\def\TPdate{12/04/2024}
+\def\TPversion{0.1.7}
+\def\TPdate{01/09/2024}
\usepackage[most]{tcolorbox}
\tcbuselibrary{minted}
@@ -525,6 +525,8 @@ To sum up, they create full paper grid (by preference for \texttt{\textbf{a4pape
\part*{History}
+\verb|v0.1.7|~:~~~~New feature for french paper \textsf{PleinePageCinqCinq}
+
\verb|v0.1.6|~:~~~~Possibility to automatically determine L\&C based on the remaining space.
\verb|v0.1.4|~:~~~~New \texttt{[keys]} + enhancements for paragraphs, for french version (for the moment\dots)
diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.pdf b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.pdf
index 517ce5911d..76850d725d 100644
--- a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.pdf
+++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.tex b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.tex
index 1da2b2b0bc..fb63ea4422 100644
--- a/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.tex
+++ b/macros/latex/contrib/writeongrid/doc/WriteOnGrid-doc-fr.tex
@@ -48,8 +48,8 @@
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
-\def\TPversion{0.1.6}
-\def\TPdate{12 avril 2024}
+\def\TPversion{0.1.7}
+\def\TPdate{01 septembre 2024}
\usepackage[most]{tcolorbox}
\tcbuselibrary{minted}
@@ -763,6 +763,13 @@ Les commandes et environnements sont suffixées différemment, mais le reste est
\end{PleinePageSeyes}
\end{PresentationCode}
+{\small\faBomb} Pour les pages complètes 5x5, il est possible d'utiliser les clés \Cle{MargeG} et \Cle{MargeH} qui valent \Cle{auto} par défaut (adaptées au format du papier), mais elles peuvent être définies manuellement, avec les \textbf{contraintes} suivantes (pour un affichage correct sur les lignes, pour le moment\ldots) :
+
+\begin{itemize}
+ \item \Cle{MargeG} doit valoir $0.2$ ou $0.7$ ou $1.2$ ou $1.7$ etc
+ \item \Cle{MargeH} doit valoir $0.3$ ou $0.8$ ou $1.3$ ou $1.8$ etc
+\end{itemize}
+
\subsection{Exemples}
Les exemples des pages suivantes ont été obtenus de la même manière que celui de la pleine page Seyes, il \textit{suffit} d'adapter les commandes et environnements avec le bon suffixe.
@@ -770,7 +777,7 @@ Les exemples des pages suivantes ont été obtenus de la même manière que celu
\begin{PresentationCode}{listing only}
\pagestyle{empty}
-\begin{PleinePageCinqCinq}[NumLignes]
+\begin{PleinePageCinqCinq}[NumLignes,MargeG=2.7,MargeH=2.3]
\LignePapierCinqCinq[Echelle=1.25,Ligne=1]{C. PIERQUET \hfill LaTeX}
\LignePapierCinqCinq[Echelle=1.25,Ligne=3,Couleur=red]<center>{\underline{\cursive\bfseries Devoir 2}}
\CadreNoteCinqCinq{4}
@@ -807,7 +814,11 @@ Les exemples des pages suivantes ont été obtenus de la même manière que celu
\pagestyle{empty}
-\begin{PleinePageCinqCinq}[NumLignes]
+\begin{PleinePageCinqCinq}[NumLignes,MargeG=2.7,MargeH=2.3]
+ %marges pour illustrer
+ \draw[thick,teal,<->,>=latex] ([shift={(-2.7,1.5)}]CinqCinqOrigine) --++ (2.7,0) node[midway,below,font=\small\ttfamily] {MargeG} ;
+ \draw[thick,orange,<->,>=latex] ([shift={(-0.5,0)}]CinqCinqOrigine) --++ (0,2.3) node[midway,right,font=\small\ttfamily] {MargeH} ;
+ %back to normal
\LignePapierCinqCinq[Echelle=1.25,Ligne=1]{C. PIERQUET \hfill LaTeX}
\LignePapierCinqCinq[Echelle=1.25,Ligne=3,Couleur=red]<center>{\underline{\cursive\bfseries Devoir 2}}
\CadreNoteCinqCinq{4}
@@ -842,6 +853,8 @@ Les exemples des pages suivantes ont été obtenus de la même manière que celu
\section{Historique}
+\verb|v0.1.7|~:~~~~Option pour régler la marge pour les \textsf{PleinePageCinqCinq}
+
\verb|v0.1.6|~:~~~~Possibilité de déterminer automatiquement L\&C en fonction de la place restante.
\verb|v0.1.5|~:~~~~Possibilité de spécifier la réglure pour les quadrillages de type \textsf{Seyes} + meilleure gestion des paragraphes.
diff --git a/macros/latex/contrib/writeongrid/tex/WriteOnGrid.sty b/macros/latex/contrib/writeongrid/tex/WriteOnGrid.sty
index e2673d3c58..3d462b8a33 100644
--- a/macros/latex/contrib/writeongrid/tex/WriteOnGrid.sty
+++ b/macros/latex/contrib/writeongrid/tex/WriteOnGrid.sty
@@ -2,7 +2,8 @@
% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{WriteOnGrid}[2024/04/12 v0.1.6 package to write on grid lines]
+\ProvidesPackage{WriteOnGrid}[2024/09/01 v0.1.7 package to write on grid lines]
+% 0.1.7 Option pour régler la marge pour les PleinePageCinqCinq
% 0.1.6 Commande pour calculer le nombre de lignes à insérer en fin de page / options Auto
% 0.1.5 Choix de la réglure pour le seyes (en pretest) + amélioration de la gestion des paragraphes
% 0.1.4 Suppression des options de xcolor (définition manuelle des couleurs)
@@ -564,16 +565,21 @@
}
%------page entière 5x5
+%les marges doivent valoir MargeH=0.2+k*0.5 et MargeV=0.3+k'*0.5
\defKV[CxCFull]{%
Couleur=\xdef\CCFullCoul{#1},%
CouleurMarge=\xdef\CCFullCoulM{#1},%
- FormatPapier=\xdef\CCFullFormatPap{#1}
+ FormatPapier=\xdef\CCFullFormatPap{#1},%
+ MargeG=\xdef\CCFullMargeG{#1},%
+ MargeH=\xdef\CCFullMargeH{#1}
}
\setKVdefault[CxCFull]{%
Couleur=lightgray!50,%
CouleurMarge=gray,%
NumLignes=false,%
- FormatPapier=A4
+ FormatPapier=A4,%
+ MargeG=auto,%
+ MargeH=auto
}
\NewDocumentEnvironment{PleinePageCinqCinq}{ O{} }%semble OK ^^
@@ -581,13 +587,49 @@
\useKVdefault[CxCFull]%
\setKV[CxCFull]{#1}%
\IfEq{\CCFullFormatPap}{A4}%
- {\xdef\CCFullHautPap{29.7}\xdef\CCFullLargPap{21}\xdef\CCFullMargeG{1.7}\xdef\CCFullMargeH{1.3}}%
+ {%
+ \xdef\CCFullHautPap{29.7}\xdef\CCFullLargPap{21}%
+ \IfEq{\CCFullMargeG}{auto}%
+ {%
+ \xdef\CCFullMargeG{1.7}%
+ }%
+ {}%
+ \IfEq{\CCFullMargeH}{auto}%
+ {%
+ \xdef\CCFullMargeH{1.3}%
+ }%
+ {}%
+ }%
{}%
\IfEq{\CCFullFormatPap}{A5}%
- {\xdef\CCFullHautPap{21}\xdef\CCFullLargPap{14.8}\xdef\CCFullMargeG{1.2}\xdef\CCFullMargeH{0.8}}%
+ {%
+ \xdef\CCFullHautPap{21}\xdef\CCFullLargPap{14.8}%
+ \IfEq{\CCFullMargeG}{auto}%
+ {%
+ \xdef\CCFullMargeG{1.2}%
+ }%
+ {}%
+ \IfEq{\CCFullMargeH}{auto}%
+ {%
+ \xdef\CCFullMargeH{0.8}%
+ }%
+ {}%
+ }%
{}%
\IfSubStr{\CCFullFormatPap}{x}%
- {\StrCut{\CCFullFormatPap}{x}{\CCFullLargPap}{\CCFullHautPap}\xdef\CCFullMargeG{1.7}\xdef\CCFullMargeH{1.3}}%
+ {%
+ \StrCut{\CCFullFormatPap}{x}{\CCFullLargPap}{\CCFullHautPap}%
+ \IfEq{\CCFullMargeG}{auto}%
+ {%
+ \xdef\CCFullMargeG{1.7}%
+ }%
+ {}%
+ \IfEq{\CCFullMargeH}{auto}%
+ {%
+ \xdef\CCFullMargeH{1.3}%
+ }%
+ {}%
+ }%
{}%
%calcul du nombre de lignes /colonnes ?
\xdef\CCFullNbLign{\fpeval{round(\CCFullHautPap/(0.5),0)}}%
diff --git a/macros/latex/contrib/xcolor/ChangeLog b/macros/latex/contrib/xcolor/ChangeLog
index a85977fdd0..b366cd0e4b 100644
--- a/macros/latex/contrib/xcolor/ChangeLog
+++ b/macros/latex/contrib/xcolor/ChangeLog
@@ -3,6 +3,15 @@ https://github.com/latex3/xcolor/issues
History
=======
+2024/09/29 v3.02
+* remove definitions of color groups as they are already in the kernel.
+
+2024/09/17
+* unknown model error handled (issue #1)
+
+2024/03/13
+* Add \relax after \ProcessKeyOptions to improve error context lines
+
2023/11/15 v3.01
* only warn and not error if obsolete option usenames is used, issue #31
diff --git a/macros/latex/contrib/xcolor/README.md b/macros/latex/contrib/xcolor/README.md
index 2e89dafed9..66f53b32c7 100644
--- a/macros/latex/contrib/xcolor/README.md
+++ b/macros/latex/contrib/xcolor/README.md
@@ -1,6 +1,6 @@
## Package `xcolor` by Dr. Uwe Kern
-Version 2023-11-15 v3.01
+Version 2024-09-29 v3.02
Maintained by the LaTeX Project https://github.com/latex3/xcolor/issues
@@ -14,7 +14,7 @@ separation, and color wheel calculations.
## Copyright (C)
- 2003-2021 Dr. Uwe Kern
-- 2021-2023 The LaTeX Project
+- 2021-2024 The LaTeX Project
## License
LaTeX Project Public License, version 1.3c or later.
diff --git a/macros/latex/contrib/xcolor/xcolor.dtx b/macros/latex/contrib/xcolor/xcolor.dtx
index 5af5459682..5a8dd1ee08 100644
--- a/macros/latex/contrib/xcolor/xcolor.dtx
+++ b/macros/latex/contrib/xcolor/xcolor.dtx
@@ -2,7 +2,7 @@
%%
%% ----------------------------------------------------------------
%% Copyright (C) 2003-2021 by Dr. Uwe Kern <xcolor at ukern dot de>
-%% 2021-2023 LaTeX Project https://github.com/latex3/xcolor/issues
+%% 2021-2024 LaTeX Project https://github.com/latex3/xcolor/issues
%% ----------------------------------------------------------------
%%
%<*package>
@@ -18,8 +18,8 @@
%%
%</package>
%<*extract|driver|test1|test2|test3|test4>
-\def\XCfileversion{v3.01}%
-\def\XCfiledate{2023/11/15}%
+\def\XCfileversion{v3.02}%
+\def\XCfiledate{2024/09/29}%
%</extract|driver|test1|test2|test3|test4>
%
% This file may be distributed and/or modified under the
@@ -320,7 +320,7 @@
% There are proprietary models (like \Index{Pantone} or \Index{HKS}) that provide finite sets of colors (often called \emph{\Index{spot color}s}), where the user has to choose from without caring about parametrisations; on the other hand, there are parameter-driven models like \Model{gray}, \Model{rgb}, and \Model{cmyk}, that aim to represent large finite or even (theoretically) infinite sets of colors, built on very small subsets of base colors and rules, how to construct other colors from these base colors.
% For example, a large range of colors can be constructed by linear combinations of the base colors \Color{red}, \Color{green}, and \Color{blue}.
% On the other hand, usually \Index{spot color}s can only be \emph{approximated} by parameter values in models like \Model{cmyk} or \Model{rgb}; the original colors are being physically mixed even dependent on the targeted kind of paper.
-% Finally, there are certain colors like \Color{gold} and \Color{silver} that are hardly reproducable by any parameter-driven color model on standard ink or laser printers.
+% Finally, there are certain colors like \Color{gold} and \Color{silver} that are hardly reproducible by any parameter-driven color model on standard ink or laser printers.
%
%
%
@@ -501,7 +501,7 @@
%
% Example: assuming that |a.tex| is a complete \LaTeX{} document, a command like
% `|latex \def\xcolorcmd{\colorlet{black}{red}}\input{a}|'
-% at the console generates a file |a.dvi| with all occurences of \Color{black} being replaced by \Color{red}, without the necessity to change the source file itself.
+% at the console generates a file |a.dvi| with all occurrences of \Color{black} being replaced by \Color{red}, without the necessity to change the source file itself.
% (The exact spelling of the console command might vary across operating systems and \TeX{} distributions.)
%
%
@@ -2486,7 +2486,7 @@
% \subsection{Color conversion and complements}\label{sec.cnv}
%
% We collect here the specific conversion formulas between the supported color models.
-% Table \vref{tab.cnv} gives an overwiew of how each conversion pair is handled.
+% Table \vref{tab.cnv} gives an overview of how each conversion pair is handled.
% In general, \Index{PostScript} (as described in \cite{plrm}) is used as a basis for most of the calculations, since it supports the color models \Model{rgb}, \Model{cmyk}, \Model{hsb}, and \Model{gray} natively.
% Furthermore, \People{Alvy Ray}{Smith}'s paper \cite{smith} is cited in \cite{plrm} as reference for \Model{hsb}-related formulas.
%
@@ -4119,7 +4119,7 @@
{
,usenames .code =
{\PackageWarning{xcolor}{Package option `usenames' is obsolete and ignored}}
- ,usename .usage = preamble
+ ,usenames .usage = preamble
,hyperref .code =
{\PackageWarning{xcolor}{Package option `hyperref' is obsolete and ignored}}
,hyperref .usage = preamble
@@ -4153,9 +4153,14 @@
% \end{macrocode}
%
% After the options are processed, load the appropriate driver file.
-% If a site wants a default driver (e.g., \Option{dvips}) it just needs to put |\ExecuteOptions{dvips}| in a \File{color.cfg} file.
+% If a site wants a default driver (e.g., \Option{dvips}) it just needs
+% to put |\ExecuteOptions{dvips}| in a \File{color.cfg} file.
+%
+% Note |\relax| added here to ensure that |\ProcessKeyOptions| not the following
+% |\edef| shows in error context lines for unknown options.
+% \changes{3.02}{2024-03-13}{Added \cs{relax}}
% \begin{macrocode}
-\ProcessKeyOptions
+\ProcessKeyOptions\relax
% \end{macrocode}
%
% \begin{macro}{\XC@@drv}
@@ -4269,7 +4274,7 @@
%
% \begin{macro}{\xglobal}
% \begin{macro}{\xglobal@test}
-% If |\foo| occurs in the token list |\xglobal@@|, then the command |\xglobal\foo| will set the switch |\xglobal@true| which can be used inside |\foo| to determine whether certain definitions are to be made explicitely global.
+% If |\foo| occurs in the token list |\xglobal@@|, then the command |\xglobal\foo| will set the switch |\xglobal@true| which can be used inside |\foo| to determine whether certain definitions are to be made explicitly global.
% |\foo| is responsible for resetting |\xglobal@false| in order to avoid side effects.
% To include |\foo| in the magic list, simply say |\XC@append\xglobal@list{\foo}|.
% If |\foo| is not in the list, |\xglobal\foo| will behave like |\global\foo|, thus |\xglobal\let| will be like |\global\let| etc.
@@ -4356,7 +4361,7 @@
%
% \begin{macro}{\XC@replace}
% \marg{cmd}\marg{search}\marg{replace}\\
-% Replace all occurences of \meta{search} within the first-level expansion of \meta{cmd} by \meta{replace} and save the result in \meta{cmd}.
+% Replace all occurrences of \meta{search} within the first-level expansion of \meta{cmd} by \meta{replace} and save the result in \meta{cmd}.
% The replacement is recursive, so don't put the search pattern into the replacement text!
% Note that this macro is incapable of seeing `into' braces.
% The code and its explanation is taken from \People{Donald}{Arseneau}'s \Package{url} package \cite{url}, with only minor changes and renamings applied.
@@ -4976,9 +4981,10 @@
% Retrieve model position |\XC@@pos|, model |\@@mod|, and target model |\@@Mod| from multiple definitions (up to~8), separated by `|/|'.
% \begin{macrocode}
\def\XC@getmod#1/#2/#3/#4/#5/#6/#7/#8/#9\XC@@
- {\XC@g@tm@d0#1::\XC@@ \XC@getm@d1{#2}\XC@getm@d2{#3}%
+ {\def\XC@dflt@@mod{#1}%
+ \XC@g@tm@d0#1::\XC@@ \XC@getm@d1{#2}\XC@getm@d2{#3}%
\XC@getm@d3{#4}\XC@getm@d4{#5}\XC@getm@d5{#6}\XC@getm@d6{#7}%
- \XC@getm@d7{#8}\def\XC@@pos{0}\def\@@mod{#1}\@gobble\@nnil}%
+ \XC@getm@d7{#8}\def\XC@@pos{0}\let\@@mod\XC@dflt@@mod\@gobble\@nnil}%
% \end{macrocode}
%
% \begin{macrocode}
@@ -4990,7 +4996,10 @@
% \begin{macrocode}
\def\XC@g@tm@d#1#2:#3:#4\XC@@
{\@ifxempty{#3}{\let\@@Mod\XC@mod@ignore\XC@getm@d0{#2}}%
- {\def\@@Mod{#2}\XC@getm@d0{#3}}}%
+ {\def\@@Mod{#2}%
+ \def\XC@tgt@mod##1{#2}%
+ \def\XC@dflt@@mod{#3}%
+ \XC@getm@d0{#3}}}%
% \end{macrocode}
% \end{macro}
%
@@ -6182,11 +6191,13 @@
%
%
% \subsubsection{Extra groups}
-% Turning on extra groups in the standard \LaTeX\ commands, so that color commands are scoped corectly.
%
-% Like |\normalcolor|, the following five commands are defined in the kernel, with empty definitions (|\relax|).
+% Like |\normalcolor|, the following five commands are defined in the kernel.
% This means that they can be used to make macros in packages `color safe'.
-% The commands will not have any effect unless a user also uses a color package, when the `active definitions' here will take effect and keep color commands correctly scoped.
+% The extra groups have been made permanent in the \LaTeX{} kernel 2021 so
+% they are no longer redefined here.
+% The |\color@setgroup| will not have any effect unless a user also uses
+% a color package, when the `active definition' here will take effect.
%
% \begin{macro}{\color@setgroup}
% This is to be used in contexts (e.g., `lrbox') where text is to be saved and used after some other, unknown, text that may contain color commands.
@@ -6200,38 +6211,23 @@
% This is to be used at the start of contexts that may contain color commands, but where it is not necessary to save the current color.
% Examples of this are in the box commands of \File{ltboxes.dtx} where user-supplied text is saved internally in a box between |\color@begingroup|, |\color@endgroup|, but the box is used before any other color commands could intervene.
% A matching |\color@endgroup| should be used at the end of the text.
-% \begin{macrocode}
-\let\color@begingroup\begingroup
-% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\color@endgroup}
% To be used to close the `group' started by one of the above two commands.
% The |\endgraf| in its definition is required in the case of groups of text in vertical `par' mode, but doesn't do any harm in horizontal `LR' contexts.
-% \begin{macrocode}
-\def\color@endgroup{\endgraf\endgroup}
-% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\color@hbox}
% To be used to open a `colored hbox'
-% \begin{macrocode}
-\def\color@hbox{\hbox\bgroup\color@begingroup}
-% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\color@vbox}
% To be used to open a `colored hbox'
-% \begin{macrocode}
-\def\color@vbox{\vbox\bgroup\color@begingroup}
-% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\color@endbox}
% To be used to close a `colored (h/v)box'
-% \begin{macrocode}
-\def\color@endbox{\color@endgroup\egroup}
-% \end{macrocode}
% \end{macro}
%
%
@@ -6458,7 +6454,7 @@
%
% \begin{macro}{\XC@cnv@gray}
% \Meta{gray}|,|
-% \changes{3.0}{2022-08-10}{moved the patch from hycolor to correct Gray model, issue \#23}
+% \changes{3.0}{2022-08-10}{moved the patch from hycolor to correct Gray model, issue \#23}w
% \begin{macrocode}
\def\XC@cnv@gray#1,%
{\XC@ifxcase\tm
diff --git a/macros/latex/contrib/xcolor/xcolor.pdf b/macros/latex/contrib/xcolor/xcolor.pdf
index c9ab96b507..1988dfce2e 100644
--- a/macros/latex/contrib/xcolor/xcolor.pdf
+++ b/macros/latex/contrib/xcolor/xcolor.pdf
Binary files differ
diff --git a/macros/latex/contrib/xcolor/xcolor2.pdf b/macros/latex/contrib/xcolor/xcolor2.pdf
index 07d228343c..ae9d34157a 100644
--- a/macros/latex/contrib/xcolor/xcolor2.pdf
+++ b/macros/latex/contrib/xcolor/xcolor2.pdf
Binary files differ
diff --git a/macros/latex/contrib/xreview/README b/macros/latex/contrib/xreview/README
new file mode 100644
index 0000000000..a8ead075a5
--- /dev/null
+++ b/macros/latex/contrib/xreview/README
@@ -0,0 +1,54 @@
++-----------------------------------------------------------------------+
+| |
+| _______ _______ _________ _______ |
+| |\ /|( ____ )( ____ \|\ /|\__ __/( ____ \|\ /| |
+| ( \ / )| ( )|| ( \/| ) ( | ) ( | ( \/| ) ( | |
+| \ (_) / | (____)|| (__ | | | | | | | (__ | | _ | | |
+| ) _ ( | __)| __) ( ( ) ) | | | __) | |( )| | |
+| / ( ) \ | (\ ( | ( \ \_/ / | | | ( | || || | |
+| ( / \ )| ) \ \__| (____/\ \ / ___) (___| (____/\| () () | |
+| |/ \||/ \__/(_______/ \_/ \_______/(_______/(_______) |
+| |
+| |
+| Reviewing LaTeX document made easy |
+| |
+| by Lorenzo Peri - lp586@cam.ac.uk |
+| |
++-----------------------------------------------------------------------+
+
+DESCRIPTION
+===========
+
+This package provides a simple way to review LaTeX documents. It allows to higlight and/or hide changes to a document, and to add comments to the text. This will help you to keep track of the changes you make to a document, and to easily spot the changes made by others, while always having the option of toggling a clean version of the document.
+
+This package also offers a way to include comments in the text, which can be toggled on and off. This is useful for adding notes to the text, or for leaving comments to other authors.
+
+AUTHOR
+======
+
+The package is maintained by Lorenzo Peri (https://github.com/LorenzoPeri17). The repository is available at https://github.com/LorenzoPeri17/xreview-latex.
+
+LICENSE
+=======
+
+MIT License
+
+Copyright (c) 2024 Lorenzo Peri
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/macros/latex/contrib/xreview/xreview.pdf b/macros/latex/contrib/xreview/xreview.pdf
new file mode 100644
index 0000000000..27374c984d
--- /dev/null
+++ b/macros/latex/contrib/xreview/xreview.pdf
Binary files differ
diff --git a/macros/latex/contrib/xreview/xreview.sty b/macros/latex/contrib/xreview/xreview.sty
new file mode 100644
index 0000000000..a6d2501eed
--- /dev/null
+++ b/macros/latex/contrib/xreview/xreview.sty
@@ -0,0 +1,135 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{xreview}[2024/08/29 Reviewing LaTeX documents made easy]
+
+\RequirePackage{xcolor}
+\RequirePackage[normalem]{ulem}
+\RequirePackage{etoolbox}
+\RequirePackage{environ}
+\RequirePackage{letltxmacro}
+\RequirePackage{todonotes}
+\RequirePackage{soul}
+\RequirePackage{pifont}
+\RequirePackage{xparse}
+\RequirePackage{amsmath}
+
+%%%% Equation numbering
+\newcounter{removedeqcounter}
+\setcounter{removedeqcounter}{0}
+
+%%%% Comment numbering
+\newcounter{commentcounter}
+\setcounter{commentcounter}{0}
+
+%%%% Define colours and prefixes
+\newcommand{\addedcolor}{blue}
+\newcommand{\removedcolor}{red}
+\newcommand{\removedeqprefix}{R}
+\newcommand{\commentcolor}{yellow}
+\newcommand{\resolvedcommentcolor}{green}
+\newcommand{\commentprefix}{C}
+
+%%%% Necessary for comments to work in twocolumn-type documents
+\setlength{\marginparwidth}{2cm}
+
+%%%% Reviewing commands
+\newtoggle{annotated}
+\toggletrue{annotated} % Show changes by default
+
+\newcommand{\showchanges}{\toggletrue{annotated}}
+\newcommand{\showclean}{\togglefalse{annotated}}
+
+\newtoggle{commented}
+\toggletrue{commented} % Show comments by default
+
+\newcommand{\showcomments}{\toggletrue{commented}}
+\newcommand{\hidecomments}{\togglefalse{commented}}
+
+%%%% Text coloring and hiding
+\newcommand{\colortext}[2]{{\leavevmode\color{#1}{#2}}}
+\newcommand{\safesout}[1]{\ifmmode\text{\sout{\ensuremath{#1}}}\else\sout{#1}\fi}
+\newcommand{\hidefromclean}[1]{\iftoggle{annotated}{#1}{}}
+
+\newcommand{\added}[1]{\iftoggle{annotated}{\colortext{\addedcolor}{#1}}{{#1}}}
+
+\newcommand{\removed}[1]{\hidefromclean{%
+\begingroup%
+\let\oldcite\cite%
+\renewcommand{\cite}[1]{\mbox{\oldcite{##1}}}%
+\colortext{\removedcolor}{\safesout{#1}}%
+\endgroup}}
+
+\newcommand{\changed}[2]{\removed{#1}\iftoggle{annotated}{ }{}\added{#2}}
+
+%%%% Equation coloring and hiding
+\NewEnviron{remequation}{\hidefromclean{%
+\addtocounter{equation}{-1}%
+\refstepcounter{removedeqcounter}%
+\renewcommand{\theequation}{\textcolor{\removedcolor}{\removedeqprefix\arabic{removedeqcounter}}}%
+\let\oldnonumber\nonumber%
+\renewcommand{\nonumber}{\addtocounter{equation}{1}\addtocounter{removedeqcounter}{-1}\oldnonumber}%
+\renewcommand{\notag}{\nonumber}%
+\begin{equation}%
+\color{\removedcolor}%
+\safesout{\BODY}%
+\end{equation}}}
+
+\NewEnviron{remequation*}{\hidefromclean{%
+\begin{equation*}%
+\color{\removedcolor}%
+\safesout{\BODY}%
+\end{equation*}}}
+
+\NewEnviron{addequation}{%
+\begin{equation}%
+\added{\BODY}%
+\end{equation}}
+
+\NewEnviron{addequation*}{%
+\begin{equation*}%
+\added{\BODY}%
+\end{equation*}}
+
+\newcommand{\removedeqline}[1]{\hidefromclean{%
+\let\oldnonumber\nonumber%
+\renewcommand{\nonumber}{\global\tag@false\addtocounter{removedeqcounter}{-1}}%
+\renewcommand{\notag}{\nonumber}%
+\makeatletter%
+\newcommand{\remlabel}{%
+\refstepcounter{removedeqcounter}%
+\global\tag@true%
+\oldnonumber%
+\gdef\df@tag{\maketag@@@{\textcolor{\removedcolor}{(\removedeqprefix\arabic{removedeqcounter})}}\def\@currentlabel{\textcolor{\removedcolor}{\removedeqprefix\arabic{removedeqcounter}}}}}
+\makeatother
+\remlabel%
+\color{\removedcolor}%
+\makeatletter\let\default@color\current@color\makeatother%
+\safesout{#1}%
+}}
+
+\newcommand{\addedeqline}[1]{%
+\iftoggle{annotated}{\color{\addedcolor}{#1}}%
+{{#1}}%
+}
+
+\newcommand{\remaligntab}{\hidefromclean{&}}
+\newcommand{\remnewline}{\hidefromclean{\\}}
+
+%%%% Commenting
+\DeclareRobustCommand{\resolvedhl}[1]{{\sethlcolor{green}\hl{#1}}}
+
+\newcommand{\comment}[3][]{%
+\stepcounter{commentcounter}%
+\ifboolexpr{togl{annotated} and togl{commented}}{%
+\hl{#2}\todo[prepend, color=\commentcolor ,caption=\textbf{\commentprefix\arabic{commentcounter}}, linecolor=black, #1]{#3}}%
+{#2}}
+
+\newcommand{\resolvedcomment}[3][]{%
+\stepcounter{commentcounter}%
+\ifboolexpr{togl{annotated} and togl{commented}}{%
+\resolvedhl{#2}\todo[prepend, color=\resolvedcommentcolor ,caption=\textbf{\ding{52} \commentprefix\arabic{commentcounter}}, linecolor=black, #1]{#3}}%
+{#2}}
+
+\NewDocumentCommand{\authoredcomments}{O{} O{} m}{%
+ \expandafter\newcommand\csname #3comment\endcsname{\comment[author=#3, #1]}%
+ \expandafter\newcommand\csname resolved#3comment\endcsname{\resolvedcomment[author=#3, #2]}%
+} \ No newline at end of file
diff --git a/macros/latex/contrib/xreview/xreview.tex b/macros/latex/contrib/xreview/xreview.tex
new file mode 100644
index 0000000000..31664b2869
--- /dev/null
+++ b/macros/latex/contrib/xreview/xreview.tex
@@ -0,0 +1,591 @@
+\documentclass[a4paper]{ltxdoc}
+\usepackage{amsmath}
+\usepackage{hyperref}
+\usepackage{parskip}
+\usepackage{bold-extra}
+\usepackage{cite}
+\usepackage{filecontents}
+
+
+\usepackage{xreview}
+
+\newcommand{\writecommand}[1]{\texttt{\textbf{{\textbackslash#1}}}}
+\newcommand{\writeenv}[1]{\texttt{\textbf{{#1}}}}
+\newcommand{\writearg}[1]{\{#1\}}
+
+\begin{filecontents}{bibliography.bib}
+ @book{texbook,
+ author = {Donald E. Knuth},
+ year = {1986},
+ title = {The {\TeX} Book},
+ publisher = {Addison-Wesley Professional}
+}
+@book{latex2e,
+ author = {Leslie Lamport},
+ year = {1994},
+ title = {{\LaTeX}: a Document Preparation System},
+ publisher = {Addison Wesley},
+ address = {Massachusetts},
+ edition = {2}
+}
+\end{filecontents}
+
+\title{\textbf{xreview}: \\ \Large{Reviewing
+\LaTeX~documents made easy}}
+
+\author{Lorenzo Peri\\\textcolor{blue}{\href{mailto:lp586@cam.ac.uk}{lp586@cam.ac.uk}}}
+\date{\today, v-1.0}
+
+\hypersetup{
+ pdftitle={xreview},
+ pdfauthor={Lorenzo Peri},
+ urlcolor=cyan,
+}
+
+\changes{v1.0}{2024/08/27}{First version}
+
+\showchanges
+
+\begin{document}
+
+\maketitle
+
+\begin{abstract}
+ \textit{xreview} is an attempt to make the painful process of reviewing a \LaTeX~document easy, or, at least, \textit{a little} less painful.
+\end{abstract}
+
+\tableofcontents
+
+\section{Getting Started}
+
+Have you ever had to make modifications to a manuscript while needing to keep track of the changes? Have you ever been asked by a journal to provide a revised version highlighting the changes \textit{and} a clean version? Is your brain utterly incapable of reasoning about a sentence while it's wrapped in dashes and distracting colors?
+Now you can \texttt{\textbf{{$\backslash$usepackage}}\{xreview\}} to make your life \textit{a little} less miserable.
+
+\subsection{The basics}
+
+\textit{xreview} allows you to quickly show and hide changes to a document.
+This is achieved providing two commands:
+\begin{itemize}
+ \item \writecommand{showchanges} to annotate the changes;
+ \item \writecommand{showclean} to compile a clean document.
+\end{itemize}
+
+Changes can be annotated mostly using the commands:
+\begin{itemize}
+ \item \writecommand{removed} for \removed{removed sections}
+ \item \writecommand{added} for \added{added sections}
+ \item \writecommand{changed} for sections that have been \changed{changed}{modified}
+\end{itemize}
+
+Sounds great, right? Here is a simple example of the package in use!
+
+\begin{center}
+\begin{minipage}[t]{0.3\linewidth}
+\textbf{\LaTeX Code}
+
+\writecommand{textit} \writearg{xreview} is a \writecommand{removed} \writearg{fantastic} package to help \writecommand{added} \writearg{\writecommand{LaTex}} authors review their manuscripts to respond to the \writecommand{changed}\writearg{annoying} \writearg{valuable} modifications suggested by referees.
+
+\end{minipage}
+\hfill
+\begin{minipage}[t]{0.3\linewidth}
+\writecommand{showchanges}
+\showchanges
+
+\textit{xreview} is a \removed{fantastic} package to help \added{\LaTeX} authors review their manuscripts to respond to the \changed{annoying}{valuable} modifications suggested by referees.
+
+\end{minipage}
+\hfill
+\begin{minipage}[t]{0.3\linewidth}
+\writecommand{showclean}
+\showclean
+
+\textit{xreview} is a \removed{fantastic} package to help \added{\LaTeX} authors review their manuscripts to respond to the \changed{annoying}{valuable} modifications suggested by referees.
+\end{minipage}
+\end{center}
+\showchanges
+
+If you look at the source code of this document, you will see that you can toggle \writecommand{showchanges} and \writecommand{showclean} to only show/hide changes in a certain section!
+
+\subsection{Dealing with equations}
+
+The author of this package is a \changed{nerd}{physicist}, so they know full well the pain of needing to review mathematical papers with equations.
+Therefore, \textit{xcite} has first class support for math mode and the more common math environments.
+
+\subsubsection{Inline math}
+
+Inline math (defined within \$ symbols) can be safely used within \writecommand{removed}, \writecommand{added}, and \writecommand{changed}. For example \removed{$\tau$ is superior to $\pi$} is a statement that \textit{should} be \writecommand{removed}.
+
+\subsubsection{\writeenv{remequation} and \writeenv{remequation*} environments}
+
+Dealing with annotating equations is weird and generally quite annoying.
+\textit{xcite} attempts to smooth the process as much as possible by providing the \writeenv{remequation} and \writeenv{remequation*} environments.
+Those markup an equation as if it was \writecommand{removed} while also dealing with numbering correctly, so that \textbf{equation numbering will not change between the annotated and clean versions}.
+
+To simply mark an equation that must be removed, \writeenv{remequation*} can be used as such.
+
+\begin{center}
+ \begin{minipage}[t]{0.3\linewidth}
+ \textbf{\LaTeX Code}
+
+ This equation is kept \newline
+ \writecommand{begin}\writearg{equation}
+
+ ~\quad a+b = c\newline
+ \writecommand{end}\writearg{equation}\newline
+ while this is removed.\newline
+ \writecommand{begin}\writearg{remequation*}
+
+ ~\quad a+b = d\newline
+ \writecommand{end}\writearg{remequation*}\newline
+ See?
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showchanges}
+ \showchanges
+
+ This equation is kept
+ \begin{equation}
+ a+b = c
+ \end{equation}\addtocounter{equation}{-1}
+ while this is removed.
+ \begin{remequation*}
+ a+b = d
+ \end{remequation*}
+ See?
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showclean}
+ \showclean
+
+ This equation is kept
+ \begin{equation}
+ a+b = c
+ \end{equation}\addtocounter{equation}{-1}
+ while this is removed.
+ \begin{remequation*}
+ a+b = d
+ \end{remequation*}
+ See?
+
+\end{minipage}
+\end{center}
+\showchanges
+
+Sometimes, however, it is useful to be able to reference an equation that is marked to be removed. This may happen because either some text referenced it, or to carry out a discussion around it (i.e. why it was removed).
+To facilitate this, \textit{xreview} provides the \writeenv{remequation} environment, which \textbf{introduces a separate numbering scheme for removed equations}.
+The prefix for this separate numbering is normally a capital `R'. However, this can be customized to one's preference (see Section~\ref{sec:custom}).
+Here's an example
+
+\begin{center}
+ \begin{minipage}[t]{0.3\linewidth}
+ \textbf{\LaTeX Code}
+
+ This equation is kept \newline
+ \writecommand{begin}\writearg{equation}
+
+ ~\quad a+b = c\newline
+ \writecommand{end}\writearg{equation}\newline
+ while this is removed and labelled\newline
+ \writecommand{begin}\writearg{remequation}
+
+ ~\quad a+b = d\newline
+ \writecommand{end}\writearg{remequation}\newline
+ without altering the normal equation numbering.\newline
+ \writecommand{begin}\writearg{equation}
+
+ ~\quad b+c = d\newline
+ \writecommand{end}\writearg{equation}\newline
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showchanges}
+ \showchanges
+
+ This equation is kept
+ \begin{equation}
+ a+b = c
+ \end{equation}
+ while this is removed and labelled
+ \begin{remequation}
+ a+b = d
+ \label{eq:remeq_example}
+ \end{remequation}\addtocounter{removedeqcounter}{-1}
+ without altering the normal equation numbering.
+ \begin{equation}
+ b+c = d
+ \end{equation}\addtocounter{equation}{-2}
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showclean}
+ \showclean
+
+ This equation is kept
+ \begin{equation}
+ a+b = c
+ \end{equation}
+ while this is removed and labelled
+ \begin{remequation}
+ a+b = d
+ \end{remequation}
+ without altering the normal equation numbering.
+ \begin{equation}
+ b+c = d
+ \end{equation}\addtocounter{equation}{-2}
+
+\end{minipage}
+\end{center}
+\showchanges
+
+The \writeenv{remequation} environment is compatible with the standard \writecommand{ref} or \writecommand{eqref} commands. For example, I can now reference equation \ref{eq:remeq_example} from the example.
+
+Similarly, \textit{xreview} provides \writeenv{addequation} and \writeenv{addequation*} to mark an equation as added. \textbf{Added equations follow the same numbering as regular equations, and they are indistinguishable in the clean version}. Here is an example:
+
+\begin{center}
+ \begin{minipage}[t]{0.3\linewidth}
+ \textbf{\LaTeX Code}
+
+ This equation is kept \newline
+ \writecommand{begin}\writearg{equation}
+
+ ~\quad a+b = c\newline
+ \writecommand{end}\writearg{equation}\newline
+ and this is colored.\newline
+ \writecommand{begin}\writearg{addequation}
+
+ ~\quad a+b = d\newline
+ \writecommand{end}\writearg{addequation}\newline
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showchanges}
+ \showchanges
+
+ This equation is kept
+ \begin{equation}
+ a+b = c
+ \end{equation}
+ and this is colored.
+ \begin{addequation}
+ a+b = d
+ \end{addequation}\addtocounter{equation}{-2}
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showclean}
+ \showclean
+
+ This equation is kept
+ \begin{equation}
+ a+b = c
+ \end{equation}
+ while this is colored.
+ \begin{addequation}
+ a+b = d
+ \end{addequation}\addtocounter{equation}{-2}
+
+\end{minipage}
+\end{center}
+\showchanges
+
+Should one wish to, \writeenv{remequation*} may be replicated with \writeenv{remequation} by using the \writecommand{nonumber} or \writecommand{notag} commands hiding the tag and not incrementing the removed equation counter. The same goes for \writeenv{addequation}.
+
+\subsubsection{\writecommand{removedeqline} and \texttt{align}-like environments}
+
+Sometimes, some \textit{tragical} times, one must edit one equation defined within a series of equations (i.e. in an \texttt{align} environment).
+While \writecommand{removed}, \writecommand{added}, and \writecommand{changed} work just fine to modify the text, the equation ordering may be compromised.
+
+Even within \textit{xreview} this is \textit{slightly} awkward and generally not recommended. However, we do provide functionality to do so in the most ergonomic way possible. This is achieved by providing the commands:
+\begin{itemize}
+ \item \writecommand{removedeqline} that turns an \writeenv{equation} line into a \writeenv{remequation};
+ \item \writecommand{addedeqline} that typesets the line as if it was \writecommand{added};
+ \item \writecommand{remaligntab} and \writecommand{remnewline} to help with alignment and typesetting of the clean version.
+\end{itemize}
+
+The simplest example reads:
+
+\begin{center}
+ \begin{minipage}[t]{0.34\linewidth}
+ \textbf{\LaTeX Code}
+
+
+ \writecommand{begin}\writearg{align}
+
+ \& a+b = c \textbackslash\textbackslash
+
+ \writecommand{remaligntab} \writecommand{removedeqline}\writearg{a+b=d} \writecommand{remnewline}
+
+ \& \writecommand{addedeqline}\writearg{b+c=d}\newline
+ \writecommand{end}\writearg{align}\newline
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showchanges}
+ \showchanges
+
+ \begin{align}
+ a+b =c \\
+ \removedeqline{a+c=d} \remnewline
+ \addedeqline{b+c = d}
+ \end{align}\addtocounter{equation}{-2}\addtocounter{removedeqcounter}{-1}
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showclean}
+ \showclean
+
+ \begin{align}
+ a+b =c \\
+ \removedeqline{a+c=d} \remnewline
+ \addedeqline{b+c = d}
+ \end{align}\addtocounter{equation}{-2}
+
+\end{minipage}
+\end{center}
+\showchanges
+
+The only caveat is that \textbf{\& be replaced with \writecommand{remaligntab} and \textbackslash\textbackslash be replaced with \writecommand{remnewline} on \writecommand{removedeqline} lines}.
+However, problems arise if the alignment tab \& is desired \textit{inside} \writecommand{removedeqline} or \writecommand{addedeqline}. In this case, we run into trouble because commands cannot easily cross an alignment point. Thus, we must write \textbf{two} commands:
+\begin{itemize}
+ \item \writecommand{remnewline}\writearg{\textit{before tab}} \writecommand{remaligntab} \writecommand{removed}\writearg{\textit{after tab}};
+ \item \writecommand{addedeqline}\writearg{\textit{before tab}} \& \writecommand{added}\writearg{\textit{after tab}}
+\end{itemize}
+
+
+\begin{center}
+ \begin{minipage}[t]{0.34\linewidth}
+ \textbf{\LaTeX Code}
+
+ This equation is kept \newline
+ \writecommand{begin}\writearg{align}
+
+ a+b \&= c \textbackslash\textbackslash
+
+ \writecommand{removedeqline}\writearg{a+b} \writecommand{remaligntab} \writecommand{removed}\writearg{=d} \writecommand{remnewline}
+
+ \writecommand{addedeqline}\writearg{a+b} \& \writecommand{added}\writearg{=2d}\newline
+ \writecommand{end}\writearg{align}\newline
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showchanges}
+ \showchanges
+
+ \begin{align}
+ a+b &=c \\
+ \removedeqline{c} \remaligntab \removed{=d} \remnewline
+ \addedeqline{c} & \added{= 2d}
+ \end{align}\addtocounter{equation}{-2}\addtocounter{removedeqcounter}{-1}
+
+ \end{minipage}
+ \hfill
+ \begin{minipage}[t]{0.3\linewidth}
+ \writecommand{showclean}
+ \showclean
+
+ \begin{align}
+ a+b &=c \\
+ \removedeqline{c} \remaligntab \removed{=d} \remnewline
+ \addedeqline{c} & \added{= 2d}
+ \end{align}\addtocounter{equation}{-2}
+
+\end{minipage}
+\end{center}
+\showchanges
+
+If it is desired to hide the \writecommand{removedeqline} tag, the commands \writecommand{nonumber} or \writecommand{notag} can be used \textbf{inside the \writecommand{removedeqline} command}.
+
+\subsection{Comments}
+
+Comments are a great way to communicate with various authors, to carry out a discussion directly on a shared document or to share ideas and questions together with the compiled manuscript.
+
+\textit{xreview} allows for the possibility to insert comments that out of the box work in one- or two-column documents.
+
+\subsubsection{The \writecommand{comment} command}
+
+Simple comments can be attached to a snippet of text and \textbf{are hidden on the clean version}.
+
+\textbf{\LaTeX Code}
+
+\begin{quote}
+\writecommand{textit}\writearg{xreview} is \writecommand{comment}\writearg{the greatest \writecommand{TeX} package ever written!}\writearg{Have you heard of \writecommand{textit}\writearg{amsmath}?}
+\end{quote}
+
+\writecommand{showchanges}
+\showchanges
+
+\begin{quote}
+\textit{xreview} is \comment{the greatest \TeX~package ever written!}{Have you heard of \textit{amsmath}?}
+\end{quote}
+
+\writecommand{showclean}
+\showclean
+
+\begin{quote}
+\textit{xreview} is \comment{the greatest \TeX~package ever written!}{Have you heard of \textit{amsmath}?}
+\end{quote} \addtocounter{commentcounter}{-1}
+
+\showchanges
+
+\textbf{Every comment is numbered} for ease of reference, with a customizable prefix (a capital `C' by default, see Section~\ref{sec:custom}).
+
+Sometimes, it is desirable to share only the changes and hide the comments. For this scenario, \textit{xreview} provides a separate toggle:
+\begin{itemize}
+ \item \writecommand{showcomments} to show comments on the annotated document;
+ \item \writecommand{hidecomments} to hide comments \textbf{even if \writecommand{showchanges} is set}.
+\end{itemize}
+
+\writecommand{comment} takes as optional argument everything accepted by \writecommand{todo} in the \href{https://ctan.org/pkg/todonotes?lang=en}{todonotes package}. This can be used, for example, to override the default color.
+
+\textbf{\LaTeX Code}
+
+\begin{quote}
+ This is a \writecommand{comment}[backgroundcolor=red]\writearg{red comment!}\writearg{It looks angry.}
+\end{quote}
+
+\writecommand{showchanges}
+\showchanges
+
+\begin{quote}
+This is a \comment[backgroundcolor=red]{red comment!}{It looks angry.}
+\end{quote}
+
+
+\subsubsection{\writecommand{resolvedcomment}: a useful pattern}
+
+Sometimes comments tend to stick around for \textit{a while}. However, this has the downside of hiding which have been resolved and which are still outstanding.
+To avoid this anti-pattern, \textit{xreview} offers the command \writecommand{resolvedcomment} to mark a comment as resolved!
+Changing \writecommand{comment} to \writecommand{resolvedcomment} will make outstanding matters stand out atop a sea of calming satisfying green.
+
+\textbf{\LaTeX Code}
+
+\begin{quote}
+ This is \writecommand{resolvedcomment}\writearg{easy}\writearg{Understood!} while this is \writecommand{comment}\writearg{hard}\writearg{Still unclear...}.
+\end{quote}
+
+\writecommand{showchanges}
+\showchanges
+
+\begin{quote}
+This is \resolvedcomment{easy}{Understood!} while this is \comment{hard}{Still unclear...}.
+\end{quote}
+
+\subsubsection{\writecommand{authoredcomments}: another useful pattern}
+
+It is most times helpful to know who wrote a comment. This is made easy by the \writecommand{authoredcomments} command. This is used as such
+
+\begin{quote}
+ \writecommand{authoredcomments}[Optional: mods to \writecommand{comment}][Optional: mods to \writecommand{resolvedcomment}]{Authorname}
+\end{quote}
+\noindent
+and creates two commands \writecommand{Authornamecomment} and \writecommand{resolvedAuthornamecomment} which will mark the author and can easily be distinguished.
+Here is an example:
+
+\textbf{\LaTeX Code}
+
+\begin{quote}
+ \writecommand{authoredcomments}[color=cyan]\writearg{Lorenzo}\newline
+ \writecommand{authoredcomments}[color=orange]\writearg{Alice}\newline
+
+ This is \writecommand{Alicecomment}\writearg{great}\writearg{Written by Alice.} while this \writecommand{Lorenzocomment}\writearg{less so}\writearg{Written by Lorenzo}.
+
+ This is an \writecommand{resolvedLorenzocomment}\writearg{old modification}\writearg{Found appropriate citation.} we discussed.
+\end{quote}
+
+\writecommand{showchanges}
+\showchanges
+
+\begin{quote}
+ \authoredcomments[color=cyan]{Lorenzo}
+ \authoredcomments[color=orange]{Alice}
+This is \Alicecomment{great}{Written by Alice.} while this \Lorenzocomment{less so}{Written by Lorenzo}.
+
+This is an \resolvedLorenzocomment{old modification}{Found appropriate citation.} we discussed.
+\end{quote}
+
+\section{Caveats, tips, and tricks}
+
+\textit{xreview} tries to smooth away all the rough edges of trying to dynamically(-ish) change \LaTeX. However, here are some common pitfalls and caveats that are worth pointing out.
+
+\subsection{Dealing with \writecommand{sout}}
+
+Certain commands in \LaTeX are more feisty than others. Among those, \writecommand{sout} must take the crown for the most useful command that does not like to cooperate with others. In particular, it does not like commands like \writecommand{cite}.
+\textit{xreview} tries to deal with this for you, so we can simply write \changed{\LaTeX \cite{latex2e} replaces \TeX \cite{texbook}}{\LaTeX \cite{latex2e} is a set of macros built atop \TeX \cite{texbook}}.
+
+However, if you recently added a \writecommand{removed} or \writecommand{changed} section and all of a sudden the document does not compile, try wrapping any \textit{suspicious} command in an \writecommand{mbox} (i.e. \writecommand{command}\writearg{\dots} $\rightarrow$ \writecommand{mbox}\{\writecommand{command}\writearg{\dots}\}) and see if this fixes it!
+
+\subsection{Being aware of whitespace}
+
+\textit{xreview} tries its best to ensure both the annotated and clean documents look fantastic. However, is is easy to introduce too much (or too little) whitespace to make either one look sloppy. The biggest culprit is usually having wrapped whitespace at either end of \writecommand{removed} (i.e. \writecommand{removed}\writearg{ \textit{words} }) or having whitespace at the end of \writecommand{removed} or a line.
+
+\textbf{\LaTeX Code}
+
+\begin{quote}
+ This will merge\writecommand{removed}\writearg{ separate }words.
+ \writecommand{removed} \writearg{This is removed.}\textvisiblespace This sentence is far from the previous.
+\end{quote}
+
+\writecommand{showchanges}
+\showchanges
+
+\begin{quote}
+ This will merge\removed{ separate }words.
+ \removed{This is removed.} This sentence is far from the previous.
+\end{quote}
+
+\writecommand{showclean}
+\showclean
+
+\begin{quote}
+ This will merge\removed{ separate }words.
+ \removed{This is removed.} This sentence is far from the previous.
+\end{quote}
+
+\showchanges
+
+This problem is exacerbated when dealing with equations or when a paragraph break is desired in one version but not the other. In that case the command \writecommand{hidefromclean} may be of great help.
+
+\subsection{Comments are not wide enough}
+
+Comment width is optimized to look nice in two-colum documents. If you are writing a single-column manuscript (or would just prefer them to go a little closer to the page margin), you can use
+\begin{quote}
+ \writecommand{setlength}\writearg{\writecommand{marginparwidth}}\writearg{\textit{desired width}}
+\end{quote}
+in the preamble \underline{\textbf{after}} \writecommand{usepackage}\writearg{xcite}.
+
+The default with is \texttt{2 cm}.
+
+\section{Customization}
+\label{sec:custom}
+
+Most aesthetical aspects of \textit{xreview} are customizable. To do so, simply insert this line in the document preamble
+\begin{quote}
+ \writecommand{renewcommand}\{\writecommand{thecommand}\}\writearg{new options}
+\end{quote}
+
+The commands available to be redefined are:
+\begin{itemize}
+ \item \writecommand{addedcolor} [default: \textcolor{blue}{blue}]: the color of \writecommand{added} sections;
+ \item \writecommand{removedcolor} [default: \textcolor{red}{red}]: the color of \writecommand{removed} sections;
+ \item \writecommand{commentcolor} [default: \textcolor{yellow}{yellow}]: the background color of \writecommand{comment};
+ \item \writecommand{resolvedcommentcolor} [default: \textcolor{green}{green}]: the background color of \writecommand{resolvedcomment};
+ \item \writecommand{removedeqprefix} [default: R]: the prefix for the tag of removed equations;
+ \item \writecommand{commentprefix} [default: C]: the prefix comment captions.
+\end{itemize}
+
+
+\bibliographystyle{unsrt}
+\bibliography{bibliography.bib}
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/zref-clever/CHANGELOG.md b/macros/latex/contrib/zref-clever/CHANGELOG.md
index 3cf6c73b25..9b2d8e2c2c 100644
--- a/macros/latex/contrib/zref-clever/CHANGELOG.md
+++ b/macros/latex/contrib/zref-clever/CHANGELOG.md
@@ -1,6 +1,21 @@
# Changelog
-## [Unreleased](https://github.com/gusbrs/zref-clever/compare/v0.4.5...HEAD)
+## [Unreleased](https://github.com/gusbrs/zref-clever/compare/v0.4.7...HEAD)
+
+## [v0.4.7](https://github.com/gusbrs/zref-clever/compare/v0.4.6...v0.4.7) (2024-09-30)
+
+### Changed
+- Inhibit missing name warning if `noname` option is in use.
+
+## [v0.4.6](https://github.com/gusbrs/zref-clever/compare/v0.4.5...v0.4.6) (2024-08-23)
+
+### Fixed
+- Fix sorting of appendix references.
+
+### Changed
+- The `counterresetters` option now receives a full comma separated list of
+ counters as value, instead of working by incrementally adding values to the
+ list.
## [v0.4.5](https://github.com/gusbrs/zref-clever/compare/v0.4.4...v0.4.5) (2024-05-20)
diff --git a/macros/latex/contrib/zref-clever/zref-clever-code.pdf b/macros/latex/contrib/zref-clever/zref-clever-code.pdf
index 09b441eeb1..a3885ad3d6 100644
--- a/macros/latex/contrib/zref-clever/zref-clever-code.pdf
+++ b/macros/latex/contrib/zref-clever/zref-clever-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/zref-clever/zref-clever-doc.pdf b/macros/latex/contrib/zref-clever/zref-clever-doc.pdf
index 5594a06fb3..78cc9f7d60 100644
--- a/macros/latex/contrib/zref-clever/zref-clever-doc.pdf
+++ b/macros/latex/contrib/zref-clever/zref-clever-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/zref-clever/zref-clever-doc.tex b/macros/latex/contrib/zref-clever/zref-clever-doc.tex
index e088c49915..b91cceb551 100644
--- a/macros/latex/contrib/zref-clever/zref-clever-doc.tex
+++ b/macros/latex/contrib/zref-clever/zref-clever-doc.tex
@@ -245,20 +245,23 @@ where it lies.
But the plethora of existing features, packages and document classes which, in
one way or another, extends this basic functionality is a clear indication of
-a demand for more automation. Just to name the most popular: \pkg{cleveref},
-\pkg{hyperref}, \pkg{titleref}, \pkg{nameref}, \pkg{varioref}, \pkg{fancyref},
+a demand for more automation. Just to name the some of the most popular:
+\pkg{cleveref}, \pkg{nameref}, \pkg{titleref}, \pkg{varioref}, \pkg{fancyref},
and the kernel's \cs{labelformat}.
-However, the standard cross-referencing system stores two, and only two,
-properties with the label: the printed representation of the counter last
-incremented with \cs{refstepcounter} and the page. Of course, out of the
-mentioned desire to automate more, the need arose to store more information
-about the label to support this: the title or caption of the referenced
-object; its counter or, even better, its ``type'', that is, whether it is a
-section, chapter, figure, etc.; its hyperlink anchor, and so on. Thus those
-two property ``fields'' of the standard label became quite a disputed real
-state. And the packages in this area of functionality were bound to step on
-each other's toes as a result.
+However, the standard cross-referencing system traditionally stored two, and
+only two, properties with the label: the printed representation of the counter
+last incremented with \cs{refstepcounter} and the page.\footnote{Nowadays, it
+ stores 5, so that \pkg{hyperref} and \pkg{nameref} no longer need to
+ redefine \cs{label}.} Of course, out of the mentioned desire to automate
+more, the need arose to store more information about the label to support
+this: the title or caption of the referenced object; its counter or, even
+better, its ``type'', that is, whether it is a section, chapter, figure, etc.;
+its hyperlink anchor, and so on. Thus those two property ``fields'' of the
+standard label became quite a disputed real state. And the packages in this
+area of functionality, or which somehow depended on extending the
+cross-referencing mechanism, were bound to step on each other's toes as a
+result.
Out of this conundrum, Heiko Oberdiek eventually developed \pkg{zref}, which
implements an extensible referencing system, making the labels store a
@@ -890,30 +893,31 @@ know the counter associated with a particular label but also information on
any counter whose stepping may trigger its resetting, or its ``enclosing
counters''. This information is not easily retrievable from the counter
itself but is (normally) stored with the counter that does the resetting. The
-\opt{counterresetters} option adds counter names, received as a comma
-separated list, to the list of counters \pkg{zref-clever} uses to search for
-``enclosing counters'' of the counter for which a label is being set.
-Unfortunately, not every counter gets reset through the standard machinery for
-this, including some \LaTeX{} kernel ones (e.g. the \texttt{enumerate}
-environment counters). For those, there is really no way to retrieve this
-information directly, so we have to just tell \pkg{zref-clever} about them.
-And that's what the \opt{counterresetby} option is made for. It receives a
-comma separated list of \texttt{key=value} pairs, in which \texttt{key} is the
-counter, and \texttt{value} is its ``enclosing counter'', that is, the counter
-whose stepping results in its resetting. This is not really an ``option'' in
-the sense of ``user choice'', it is more of a way to inform \pkg{zref-clever}
-of something it cannot know or automatically find in general. One cannot
-place arbitrary information there, or \pkg{zref-clever} can be thoroughly
-confused. The setting must correspond to the actual resetting behavior of the
-involved counters. \opt{counterresetby} has precedence over the search done
-in the \opt{counterresetters} list. The default value of
-\opt{counterresetters} includes the counters for sectioning commands of the
-standard classes which, in most cases, should be the relevant ones for
-cross-referencing purposes. The default value of \opt{counterresetby}
-includes the \texttt{enumerate} environment counters. So, hopefully, you
-don't need to ever bother with either of these options. But, if you do, they
-are here. Use them with caution though. Since these options only affect how
-labels are set, they are not available in \cs{zcref}.
+\opt{counterresetters} option receives a full comma separated list of counter
+names, which \pkg{zref-clever} uses to search for ``enclosing counters'' of
+the counter for which a label is being set. The order matters (see code
+documentation for details), and you should also take care to start from the
+initial value set by the package. Unfortunately, not every counter gets reset
+through the standard machinery for this, including some \LaTeX{} kernel ones
+(e.g. the \texttt{enumerate} environment counters). For those, there is
+really no way to retrieve this information directly, so we have to just tell
+\pkg{zref-clever} about them. And that's what the \opt{counterresetby} option
+is made for. It receives a comma separated list of \texttt{key=value} pairs,
+in which \texttt{key} is the counter, and \texttt{value} is its ``enclosing
+counter'', that is, the counter whose stepping results in its resetting. This
+is not really an ``option'' in the sense of ``user choice'', it is more of a
+way to inform \pkg{zref-clever} of something it cannot know or automatically
+find in general. One cannot place arbitrary information there, or
+\pkg{zref-clever} can be thoroughly confused. The setting must correspond to
+the actual resetting behavior of the involved counters. \opt{counterresetby}
+has precedence over the search done in the \opt{counterresetters} list. The
+default value of \opt{counterresetters} includes the counters for sectioning
+commands of the standard classes which, in most cases, should be the relevant
+ones for cross-referencing purposes. The default value of
+\opt{counterresetby} includes the \texttt{enumerate} environment counters.
+So, hopefully, you don't need to ever bother with either of these options.
+But, if you do, they are here. Use them with caution though. Since these
+options only affect how labels are set, they are not available in \cs{zcref}.
\DescribeOption{\raisebox{.4em}{\dbend}\ currentcounter} %
\LaTeX{}'s \cs{refstepcounter} sets two variables which potentially affect the
@@ -2242,12 +2246,12 @@ A figure.
\section{Limitations}
\zlabel{sec:limitations}
-Being based on \pkg{zref} entails one quite sizable advantage for
+Being based on \pkg{zref} entails one significant advantage for
\pkg{zref-clever}: the extensible referencing system of the former allows
\pkg{zref-clever} to store and retrieve the information it needs to work
-without having to redefine some core \LaTeX{} commands. This alone makes for
-reduced compatibility problems and less load order issues than the average
-package in this functionality area. On the other hand, being based on
+without having to redefine some core \LaTeX{} commands. Which leads to less
+compatibility problems and load order issues than some traditional
+cross-reference related packages. On the other hand, being based on
\pkg{zref} also does impair the supported scope of \pkg{zref-clever}. Not
because of any particular limitation of either, but because any class or
package which implements some special handling for reference labels
@@ -2328,6 +2332,13 @@ handling. These are just the ones for which some special treatment was
required. Of course, this effort is bound to be incomplete (see
\zcref{sec:limitations}).
+Note that settings performed by the compatibility modules require special care
+if they are to be changed by users. Since the modules depend on what has been
+loaded or not in the document, the settings are done at
+\texttt{begindocument}. Hence, to override a setting performed by a
+compatibility module, the user must ensure their change comes after that,
+e.g.\ by adding their setting to the \texttt{begindocument} hook.
+
The purpose of outlining to some extend what the compatibility modules do is
twofold. First, some of them require usage adjustments for label setting,
which must be somehow conveyed in this documentation. Second, the kind and
@@ -2347,18 +2358,21 @@ for numbering and \cs{appendixname} for chapter's names. In sum, we'd like to
refer to the appendix sectioning commands as ``appendices'' rather than
``chapters'' or ``sections''. Since the sectioning commands are the same as
before \cs{appendix}, and so are their underlying counters, we must configure
-the counter type of the sectioning counters to \texttt{appendix}. And this is
-what this compatibility module does, and it uses a \pkg{ltcmdhooks} hook on
-\cs{appendix} for the purpose. Hence, this module applies to any document
+the counter type of the sectioning counters to \texttt{appendix}. Also, the
+sorting of appendix labels relative to those in the rest of the document
+requires attention, which is done by setting the main sectioning level counter
+as being reset by an internal counter with the \opt{counterresetby} option.
+And this is what this compatibility module does, using a \pkg{ltcmdhooks} hook
+on \cs{appendix} for the purpose. Hence, this module applies to any document
class or package which provides that command.
\DescribeOption{appendices} %
This module implements support for the \env{appendices} and
\env{subappendices} environments provided by the \pkg{appendix} package, and
also by \cls{memoir}. The task is the same as for the \texttt{appendix}
-module: set proper counter types for the sectioning counters. This module
-employs environment hooks to \env{appendices} and \env{subappendices} and a
-command hook to \cs{appendix} for the purpose.
+module: set proper counter types for the sectioning counters and ensuring
+proper sorting of labels. This module employs environment hooks to
+\env{appendices} and \env{subappendices}.
\DescribeOption{memoir} %
This compatibility module provides support for some of \cls{memoir}'s
@@ -2641,6 +2655,7 @@ were generously provided by (in chronological order):
% 2023-11-09: https://github.com/gusbrs/zref-clever/issues/20
% 2024-01-20: https://github.com/gusbrs/zref-clever/pull/25
% 2024-05-04: https://github.com/gusbrs/zref-clever/pull/27
+ % 2024-07-19: https://github.com/gusbrs/zref-clever/pull/32
and Lars Madsen.
% 2023-07-24: https://chat.stackexchange.com/transcript/message/64039717#64039717
% and following discussion.
diff --git a/macros/latex/contrib/zref-clever/zref-clever.dtx b/macros/latex/contrib/zref-clever/zref-clever.dtx
index 9c1d73a5a2..2a35b27d48 100644
--- a/macros/latex/contrib/zref-clever/zref-clever.dtx
+++ b/macros/latex/contrib/zref-clever/zref-clever.dtx
@@ -171,7 +171,7 @@
%
% Identify the package.
% \begin{macrocode}
-\ProvidesExplPackage {zref-clever} {2024-05-20} {0.4.5}
+\ProvidesExplPackage {zref-clever} {2024-09-30} {0.4.7}
{Clever LaTeX cross-references based on zref}
% \end{macrocode}
%
@@ -374,19 +374,34 @@
% there is no possible verification mechanism for this.
%
%
-% \begin{macro}[EXP]{\@@_get_enclosing_counters_value:n}
-% Recursively generate a \emph{sequence} of ``enclosing counters'' values,
-% for a given \meta{counter} and leave it in the input stream. This
-% function must be expandable, since it gets called from \cs{zref@newprop}
-% and is the one responsible for generating the desired information when
-% the label is being set. Note that the order in which we are getting this
-% information is reversed, since we are navigating the counter reset chain
-% bottom-up. But it is very hard to do otherwise here where we need
-% expandable functions, and easy to handle at the reading side.
+% \begin{macro}[EXP]
+% {
+% \@@_get_enclosing_counters:n ,
+% \@@_get_enclosing_counters_value:n ,
+% }
+% Recursively generate a \emph{sequence} of ``enclosing counters'' and
+% values, for a given \meta{counter} and leave it in the input stream.
+% These functions must be expandable, since they get called from
+% \cs{zref@newprop} and are the ones responsible for generating the desired
+% information when the label is being set. Note that the order in which we
+% are getting this information is reversed, since we are navigating the
+% counter reset chain bottom-up. But it is very hard to do otherwise here
+% where we need expandable functions, and easy to handle at the reading
+% side.
% \begin{syntax}
+% \cs{@@_get_enclosing_counters:n} \Arg{counter}
% \cs{@@_get_enclosing_counters_value:n} \Arg{counter}
% \end{syntax}
% \begin{macrocode}
+\cs_new:Npn \@@_get_enclosing_counters:n #1
+ {
+ \cs_if_exist:cT { c@ \@@_counter_reset_by:n {#1} }
+ {
+ { \@@_counter_reset_by:n {#1} }
+ \@@_get_enclosing_counters:e
+ { \@@_counter_reset_by:n {#1} }
+ }
+ }
\cs_new:Npn \@@_get_enclosing_counters_value:n #1
{
\cs_if_exist:cT { c@ \@@_counter_reset_by:n {#1} }
@@ -406,16 +421,18 @@
% Gregorio}, aka `egreg' at
% \url{https://tex.stackexchange.com/q/611370/#comment1529282_611385}).
% \begin{macrocode}
+\cs_generate_variant:Nn \@@_get_enclosing_counters:n { e }
\cs_generate_variant:Nn \@@_get_enclosing_counters_value:n { e }
% \end{macrocode}
% \end{macro}
%
%
% \begin{macro}[EXP]{\@@_counter_reset_by:n}
-% Auxiliary function for \cs{@@_get_enclosing_counters_value:n}, and useful
-% on its own standing. It is broken in parts to be able to use the
-% expandable mapping functions. \cs{@@_counter_reset_by:n} leaves in the
-% stream the ``enclosing counter'' which resets \meta{counter}.
+% Auxiliary function for \cs{@@_get_enclosing_counters:n} and
+% \cs{@@_get_enclosing_counters_value:n}, and useful on its own standing.
+% It is broken in parts to be able to use the expandable mapping functions.
+% \cs{@@_counter_reset_by:n} leaves in the stream the ``enclosing counter''
+% which resets \meta{counter}.
% \begin{syntax}
% \cs{@@_counter_reset_by:n} \Arg{counter}
% \end{syntax}
@@ -461,6 +478,14 @@
\zref@addprop \ZREF@mainlist { zc@enclval }
% \end{macrocode}
%
+% The \texttt{zc@enclcnt} property is provided for the purpose of easing the
+% debugging of counter reset chains, thus it is not added \texttt{main}
+% property list by default.
+% \begin{macrocode}
+\zref@newprop { zc@enclcnt }
+ { \@@_get_enclosing_counters:e \l_@@_current_counter_tl }
+% \end{macrocode}
+%
%
% Another piece of information we need is the page numbering format being used
% by \cs{thepage}, so that we know when we can (or not) group a set of page
@@ -3883,37 +3908,70 @@
%
% \cs{l_@@_counter_resetters_seq} is used by \cs{@@_counter_reset_by:n} to
% populate the \texttt{zc@enclval} property, and stores the list of counters
-% which are potential ``enclosing counters'' for other counters. This option
-% is constructed such that users can only \emph{add} items to the variable.
-% There would be little gain and some risk in allowing removal, and the syntax
-% of the option would become unnecessarily more complicated. Besides, users
-% can already override, for any particular counter, the search done from the
-% set in \cs{l_@@_counter_resetters_seq} with the \opt{counterresetby} option.
+% which are potential ``enclosing counters'' for other counters.
+%
+% Note that, as far as \LaTeX{} is concerned, a given counter can be reset by
+% \emph{any number of counters}. \cs{counterwithin} just adds a new
+% ``within-counter'' for ``counter'' without removing any other existing ones.
+% However, the data structure of \pkg{zref-clever} can only account for
+% \emph{one} enclosing counter. In a way, this is hard to circumvent, because
+% the underlying counter reset behavior works ``top-down'', but when looking
+% to a label built from a given counter we need to infer the enclosing
+% counters ``bottom-up''. As a result, the reset chain we find is path
+% dependent or, more formally, what \cs{@@_counter_reset_by:n} returns depends
+% on the order in which it searches the list of
+% \cs{l_@@_counter_resetters_seq}, since it stops on the first match. This
+% representation mismatch should not be a problem in most cases. But one
+% should be aware of the limits it imposes.
+%
+% Consider the following case: the \cls{book} class sets, by default
+% \texttt{figure} and \texttt{table} counters to be reset every
+% \texttt{chapter}, \texttt{section} is also reset every \texttt{chapter}, of
+% course. Suppose now we say
+% \cs{counterwithin}\texttt{\{figure\}\{section\}}. Technically,
+% \texttt{figure} is being reset every \texttt{section} and every
+% \texttt{chapter}, but since \texttt{section} is also reset every
+% \texttt{chapter}, the original ``\texttt{chapter} resets \texttt{figure}''
+% behavior is now redundant. Innocuous, but is still there. Now, suppose we
+% want to find which counter is resetting \texttt{figure} using
+% \cs{@@_counter_reset_by:n}. If \texttt{chapter} comes before
+% \texttt{section} in \cs{l_@@_counter_resetters_seq}, \texttt{chapter} will
+% be returned, and that's not what we want. That's the reason
+% \opt{counterresetters} initial value goes bottom-up in the sectioning level,
+% since we'd expect the nesting of the reset chain to \emph{typically} work
+% top-down.
+%
+% If, despite all this, unexpected results still ensue, users can take care to
+% ``clean'' redundant resetting settings with \cs{counterwithout}. Besides,
+% users can already override, for any particular counter, the search done from
+% the set in \cs{l_@@_counter_resetters_seq} with the \opt{counterresetby}
+% option.
+%
+% For the above reasons, since order matters, the \opt{counterresetters}
+% option can only be set by the full list of counters. In other words, users
+% wanting to change this should take the initial value as their starting base.
+%
+% The \texttt{zc@enclcnt} \pkg{zref} property, not included by default in the
+% \texttt{main} property list, is provided for the purpose of easing the
+% debugging of counter reset chains. So, by adding
+% \cs{zref@addprop}\texttt{\{main\}\{zc@enclcnt\}} you can inspect what the
+% values in the \texttt{zc@enclval} property correspond to.
%
% \begin{macrocode}
\seq_new:N \l_@@_counter_resetters_seq
\keys_define:nn { zref-clever/label }
{
counterresetters .code:n =
- {
- \clist_map_inline:nn {#1}
- {
- \seq_if_in:NnF \l_@@_counter_resetters_seq {##1}
- {
- \seq_put_right:Nn
- \l_@@_counter_resetters_seq {##1}
- }
- }
- } ,
+ { \seq_set_from_clist:Nn \l_@@_counter_resetters_seq {#1} } ,
counterresetters .initial:n =
{
- part ,
- chapter ,
- section ,
- subsection ,
- subsubsection ,
- paragraph ,
subparagraph ,
+ paragraph ,
+ subsubsection ,
+ subsection ,
+ section ,
+ chapter ,
+ part ,
},
counterresetters .value_required:n = true ,
}
@@ -7195,251 +7253,269 @@
%
% \begin{macro}{\@@_type_name_setup:}
% Auxiliary function to \cs{@@_typeset_refs_last_of_type:}. It is
-% responsible for setting the type name variable \cs{l_@@_type_name_tl} and
-% \cs{l_@@_name_in_link_bool}. If a type name can't be found,
-% \cs{l_@@_type_name_tl} is cleared. The function takes no arguments, but
-% is expected to be called in \cs{@@_typeset_refs_last_of_type:} right
-% before \cs{@@_get_ref_first:}, which is the main consumer of the variables
-% it sets, though not the only one (and hence this cannot be moved into
-% \cs{@@_get_ref_first:} itself). It also expects a number of relevant
-% variables to have been appropriately set, and which it uses, prominently
-% \cs{l_@@_type_first_label_type_tl}, but also the queue itself in
-% \cs{l_@@_typeset_queue_curr_tl}, which should be ``ready except for the
-% first label'', and the type counter \cs{l_@@_type_count_int}.
+% responsible for setting the type name variable \cs{l_@@_type_name_tl},
+% \cs{l_@@_name_in_link_bool}, and \cs{l_@@_type_name_missing_bool}. If a
+% type name can't be found, \cs{l_@@_type_name_tl} is cleared. The function
+% takes no arguments, but is expected to be called in
+% \cs{@@_typeset_refs_last_of_type:} right before \cs{@@_get_ref_first:},
+% which is the main consumer of the variables it sets, though not the only
+% one (and hence this cannot be moved into \cs{@@_get_ref_first:} itself).
+% It also expects a number of relevant variables to have been appropriately
+% set, and which it uses, prominently \cs{l_@@_type_first_label_type_tl},
+% but also the queue itself in \cs{l_@@_typeset_queue_curr_tl}, which should
+% be ``ready except for the first label'', and the type counter
+% \cs{l_@@_type_count_int}.
% \begin{macrocode}
\cs_new_protected:Npn \@@_type_name_setup:
{
- \zref@ifrefundefined { \l_@@_type_first_label_tl }
+ \bool_if:nTF
+ { \l_@@_typeset_ref_bool && ! \l_@@_typeset_name_bool }
{
+ % `typeset=ref' / `noname' option
+ % Probably redundant, since in this case the type name is not being
+ % typeset. But, for completeness sake:
\tl_clear:N \l_@@_type_name_tl
+ \bool_set_false:N \l_@@_name_in_link_bool
\bool_set_true:N \l_@@_type_name_missing_bool
}
{
- \tl_if_eq:NnTF
- \l_@@_type_first_label_type_tl { zc@missingtype }
+ \zref@ifrefundefined { \l_@@_type_first_label_tl }
{
\tl_clear:N \l_@@_type_name_tl
\bool_set_true:N \l_@@_type_name_missing_bool
}
{
- % Determine whether we should use capitalization, abbreviation,
- % and plural.
- \bool_lazy_or:nnTF
- { \l_@@_cap_bool }
- {
- \l_@@_capfirst_bool &&
- \int_compare_p:nNn { \l_@@_type_count_int } = { 0 }
- }
- { \tl_set:Nn \l_@@_name_format_tl {Name} }
- { \tl_set:Nn \l_@@_name_format_tl {name} }
- % If the queue is empty, we have a singular, otherwise, plural.
- \tl_if_empty:NTF \l_@@_typeset_queue_curr_tl
- { \tl_put_right:Nn \l_@@_name_format_tl { -sg } }
- { \tl_put_right:Nn \l_@@_name_format_tl { -pl } }
- \bool_lazy_and:nnTF
- { \l_@@_abbrev_bool }
+ \tl_if_eq:NnTF
+ \l_@@_type_first_label_type_tl { zc@missingtype }
{
- ! \int_compare_p:nNn
- { \l_@@_type_count_int } = { 0 } ||
- ! \l_@@_noabbrev_first_bool
+ \tl_clear:N \l_@@_type_name_tl
+ \bool_set_true:N \l_@@_type_name_missing_bool
}
{
- \tl_set:NV \l_@@_name_format_fallback_tl
- \l_@@_name_format_tl
- \tl_put_right:Nn \l_@@_name_format_tl { -ab }
- }
- { \tl_clear:N \l_@@_name_format_fallback_tl }
-
- % Handle number and gender nudges.
- \bool_if:NT \l_@@_nudge_enabled_bool
- {
- \bool_if:NTF \l_@@_nudge_singular_bool
+ % Determine whether we should use capitalization,
+ % abbreviation, and plural.
+ \bool_lazy_or:nnTF
+ { \l_@@_cap_bool }
{
- \tl_if_empty:NF \l_@@_typeset_queue_curr_tl
- {
- \msg_warning:nne { zref-clever }
- { nudge-plural-when-sg }
- { \l_@@_type_first_label_type_tl }
- }
+ \l_@@_capfirst_bool &&
+ \int_compare_p:nNn { \l_@@_type_count_int } = { 0 }
}
+ { \tl_set:Nn \l_@@_name_format_tl {Name} }
+ { \tl_set:Nn \l_@@_name_format_tl {name} }
+ % If the queue is empty, we have a singular, otherwise,
+ % plural.
+ \tl_if_empty:NTF \l_@@_typeset_queue_curr_tl
+ { \tl_put_right:Nn \l_@@_name_format_tl { -sg } }
+ { \tl_put_right:Nn \l_@@_name_format_tl { -pl } }
+ \bool_lazy_and:nnTF
+ { \l_@@_abbrev_bool }
{
- \bool_lazy_all:nT
- {
- { \l_@@_nudge_comptosing_bool }
- { \tl_if_empty_p:N \l_@@_typeset_queue_curr_tl }
- {
- \int_compare_p:nNn
- { \l_@@_label_count_int } > { 0 }
- }
- }
- {
- \msg_warning:nne { zref-clever }
- { nudge-comptosing }
- { \l_@@_type_first_label_type_tl }
- }
+ ! \int_compare_p:nNn
+ { \l_@@_type_count_int } = { 0 } ||
+ ! \l_@@_noabbrev_first_bool
}
- \bool_lazy_and:nnT
- { \l_@@_nudge_gender_bool }
- { ! \tl_if_empty_p:N \l_@@_ref_gender_tl }
{
- \@@_get_rf_opt_seq:neeN { gender }
- { \l_@@_type_first_label_type_tl }
- { \l_@@_ref_language_tl }
- \l_@@_type_name_gender_seq
- \seq_if_in:NVF
- \l_@@_type_name_gender_seq
- \l_@@_ref_gender_tl
+ \tl_set:NV \l_@@_name_format_fallback_tl
+ \l_@@_name_format_tl
+ \tl_put_right:Nn \l_@@_name_format_tl { -ab }
+ }
+ { \tl_clear:N \l_@@_name_format_fallback_tl }
+
+ % Handle number and gender nudges.
+ % Note that these nudges get disabled for `typeset=ref' /
+ % `noname' option, but in this case they are not really
+ % meaningful anyway.
+ \bool_if:NT \l_@@_nudge_enabled_bool
+ {
+ \bool_if:NTF \l_@@_nudge_singular_bool
{
- \seq_if_empty:NTF \l_@@_type_name_gender_seq
+ \tl_if_empty:NF \l_@@_typeset_queue_curr_tl
{
- \msg_warning:nneee { zref-clever }
- { nudge-gender-not-declared-for-type }
- { \l_@@_ref_gender_tl }
+ \msg_warning:nne { zref-clever }
+ { nudge-plural-when-sg }
{ \l_@@_type_first_label_type_tl }
- { \l_@@_ref_language_tl }
+ }
+ }
+ {
+ \bool_lazy_all:nT
+ {
+ { \l_@@_nudge_comptosing_bool }
+ { \tl_if_empty_p:N \l_@@_typeset_queue_curr_tl }
+ {
+ \int_compare_p:nNn
+ { \l_@@_label_count_int } > { 0 }
+ }
}
{
- \msg_warning:nneeee { zref-clever }
- { nudge-gender-mismatch }
+ \msg_warning:nne { zref-clever }
+ { nudge-comptosing }
{ \l_@@_type_first_label_type_tl }
- { \l_@@_ref_gender_tl }
+ }
+ }
+ \bool_lazy_and:nnT
+ { \l_@@_nudge_gender_bool }
+ { ! \tl_if_empty_p:N \l_@@_ref_gender_tl }
+ {
+ \@@_get_rf_opt_seq:neeN { gender }
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_ref_language_tl }
+ \l_@@_type_name_gender_seq
+ \seq_if_in:NVF
+ \l_@@_type_name_gender_seq
+ \l_@@_ref_gender_tl
+ {
+ \seq_if_empty:NTF \l_@@_type_name_gender_seq
{
- \seq_use:Nn
- \l_@@_type_name_gender_seq { ,~ }
+ \msg_warning:nneee { zref-clever }
+ { nudge-gender-not-declared-for-type }
+ { \l_@@_ref_gender_tl }
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_ref_language_tl }
+ }
+ {
+ \msg_warning:nneeee { zref-clever }
+ { nudge-gender-mismatch }
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_ref_gender_tl }
+ {
+ \seq_use:Nn
+ \l_@@_type_name_gender_seq { ,~ }
+ }
+ { \l_@@_ref_language_tl }
}
- { \l_@@_ref_language_tl }
}
}
}
- }
- \tl_if_empty:NTF \l_@@_name_format_fallback_tl
- {
- \@@_opt_tl_get:cNF
- {
- \@@_opt_varname_type:een
- { \l_@@_type_first_label_type_tl }
- { \l_@@_name_format_tl }
- { tl }
- }
- \l_@@_type_name_tl
+ \tl_if_empty:NTF \l_@@_name_format_fallback_tl
{
- \tl_if_empty:NF \l_@@_ref_decl_case_tl
- {
- \tl_put_left:Nn \l_@@_name_format_tl { - }
- \tl_put_left:NV \l_@@_name_format_tl
- \l_@@_ref_decl_case_tl
- }
\@@_opt_tl_get:cNF
{
- \@@_opt_varname_lang_type:eeen
- { \l_@@_ref_language_tl }
+ \@@_opt_varname_type:een
{ \l_@@_type_first_label_type_tl }
{ \l_@@_name_format_tl }
{ tl }
}
\l_@@_type_name_tl
{
- \tl_clear:N \l_@@_type_name_tl
- \bool_set_true:N \l_@@_type_name_missing_bool
- \msg_warning:nnee { zref-clever } { missing-name }
- { \l_@@_name_format_tl }
- { \l_@@_type_first_label_type_tl }
+ \tl_if_empty:NF \l_@@_ref_decl_case_tl
+ {
+ \tl_put_left:Nn \l_@@_name_format_tl { - }
+ \tl_put_left:NV \l_@@_name_format_tl
+ \l_@@_ref_decl_case_tl
+ }
+ \@@_opt_tl_get:cNF
+ {
+ \@@_opt_varname_lang_type:eeen
+ { \l_@@_ref_language_tl }
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_name_format_tl }
+ { tl }
+ }
+ \l_@@_type_name_tl
+ {
+ \tl_clear:N \l_@@_type_name_tl
+ \bool_set_true:N \l_@@_type_name_missing_bool
+ \msg_warning:nnee { zref-clever } { missing-name }
+ { \l_@@_name_format_tl }
+ { \l_@@_type_first_label_type_tl }
+ }
}
}
- }
- {
- \@@_opt_tl_get:cNF
- {
- \@@_opt_varname_type:een
- { \l_@@_type_first_label_type_tl }
- { \l_@@_name_format_tl }
- { tl }
- }
- \l_@@_type_name_tl
{
\@@_opt_tl_get:cNF
{
\@@_opt_varname_type:een
{ \l_@@_type_first_label_type_tl }
- { \l_@@_name_format_fallback_tl }
+ { \l_@@_name_format_tl }
{ tl }
}
\l_@@_type_name_tl
{
- \tl_if_empty:NF \l_@@_ref_decl_case_tl
- {
- \tl_put_left:Nn
- \l_@@_name_format_tl { - }
- \tl_put_left:NV \l_@@_name_format_tl
- \l_@@_ref_decl_case_tl
- \tl_put_left:Nn
- \l_@@_name_format_fallback_tl { - }
- \tl_put_left:NV
- \l_@@_name_format_fallback_tl
- \l_@@_ref_decl_case_tl
- }
\@@_opt_tl_get:cNF
{
- \@@_opt_varname_lang_type:eeen
- { \l_@@_ref_language_tl }
+ \@@_opt_varname_type:een
{ \l_@@_type_first_label_type_tl }
- { \l_@@_name_format_tl }
+ { \l_@@_name_format_fallback_tl }
{ tl }
}
\l_@@_type_name_tl
{
+ \tl_if_empty:NF \l_@@_ref_decl_case_tl
+ {
+ \tl_put_left:Nn
+ \l_@@_name_format_tl { - }
+ \tl_put_left:NV \l_@@_name_format_tl
+ \l_@@_ref_decl_case_tl
+ \tl_put_left:Nn
+ \l_@@_name_format_fallback_tl { - }
+ \tl_put_left:NV
+ \l_@@_name_format_fallback_tl
+ \l_@@_ref_decl_case_tl
+ }
\@@_opt_tl_get:cNF
{
\@@_opt_varname_lang_type:eeen
{ \l_@@_ref_language_tl }
{ \l_@@_type_first_label_type_tl }
- { \l_@@_name_format_fallback_tl }
+ { \l_@@_name_format_tl }
{ tl }
}
\l_@@_type_name_tl
{
- \tl_clear:N \l_@@_type_name_tl
- \bool_set_true:N
- \l_@@_type_name_missing_bool
- \msg_warning:nnee { zref-clever }
- { missing-name }
- { \l_@@_name_format_tl }
- { \l_@@_type_first_label_type_tl }
+ \@@_opt_tl_get:cNF
+ {
+ \@@_opt_varname_lang_type:eeen
+ { \l_@@_ref_language_tl }
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_name_format_fallback_tl }
+ { tl }
+ }
+ \l_@@_type_name_tl
+ {
+ \tl_clear:N \l_@@_type_name_tl
+ \bool_set_true:N
+ \l_@@_type_name_missing_bool
+ \msg_warning:nnee { zref-clever }
+ { missing-name }
+ { \l_@@_name_format_tl }
+ { \l_@@_type_first_label_type_tl }
+ }
}
}
}
}
}
}
- }
- % Signal whether the type name is to be included in the hyperlink or not.
- \bool_lazy_any:nTF
- {
- { ! \l_@@_hyperlink_bool }
- { \l_@@_link_star_bool }
- { \tl_if_empty_p:N \l_@@_type_name_tl }
- { \str_if_eq_p:Vn \l_@@_nameinlink_str { false } }
- }
- { \bool_set_false:N \l_@@_name_in_link_bool }
- {
+ % Signal whether the type name is to be included in the hyperlink or
+ % not.
\bool_lazy_any:nTF
{
- { \str_if_eq_p:Vn \l_@@_nameinlink_str { true } }
- {
- \str_if_eq_p:Vn \l_@@_nameinlink_str { tsingle } &&
- \tl_if_empty_p:N \l_@@_typeset_queue_curr_tl
- }
- {
- \str_if_eq_p:Vn \l_@@_nameinlink_str { single } &&
- \tl_if_empty_p:N \l_@@_typeset_queue_curr_tl &&
- \l_@@_typeset_last_bool &&
- \int_compare_p:nNn { \l_@@_type_count_int } = { 0 }
- }
+ { ! \l_@@_hyperlink_bool }
+ { \l_@@_link_star_bool }
+ { \tl_if_empty_p:N \l_@@_type_name_tl }
+ { \str_if_eq_p:Vn \l_@@_nameinlink_str { false } }
}
- { \bool_set_true:N \l_@@_name_in_link_bool }
{ \bool_set_false:N \l_@@_name_in_link_bool }
+ {
+ \bool_lazy_any:nTF
+ {
+ { \str_if_eq_p:Vn \l_@@_nameinlink_str { true } }
+ {
+ \str_if_eq_p:Vn \l_@@_nameinlink_str { tsingle } &&
+ \tl_if_empty_p:N \l_@@_typeset_queue_curr_tl
+ }
+ {
+ \str_if_eq_p:Vn \l_@@_nameinlink_str { single } &&
+ \tl_if_empty_p:N \l_@@_typeset_queue_curr_tl &&
+ \l_@@_typeset_last_bool &&
+ \int_compare_p:nNn { \l_@@_type_count_int } = { 0 }
+ }
+ }
+ { \bool_set_true:N \l_@@_name_in_link_bool }
+ { \bool_set_false:N \l_@@_name_in_link_bool }
+ }
}
}
% \end{macrocode}
@@ -7754,11 +7830,45 @@
% appendix to ``end'', but in this case, of course, we can hook into the
% environment instead.
%
+% For the record, \url{https://tex.stackexchange.com/a/724742} is of
+% interest.
+%
% \begin{macrocode}
\@@_compat_module:nn { appendix }
{
+ \newcounter { zc@appendix }
+ \cs_if_exist:cTF { chapter }
+ {
+ \@@_zcsetup:e
+ {
+ counterresetby =
+ {
+% \end{macrocode}
+% In case someone did something like
+% \texttt{\textbackslash{}counterwithin\{chapter\}\{part\}}. Harmless
+% otherwise.
+% \begin{macrocode}
+ zc@appendix = \@@_counter_reset_by:n { chapter } ,
+ chapter = zc@appendix ,
+ } ,
+ }
+ }
+ {
+ \cs_if_exist:cT { section }
+ {
+ \@@_zcsetup:e
+ {
+ counterresetby =
+ {
+ zc@appendix = \@@_counter_reset_by:n { section } ,
+ section = zc@appendix ,
+ } ,
+ }
+ }
+ }
\AddToHook { cmd / appendix / before }
{
+ \setcounter { zc@appendix } { 1 }
\@@_zcsetup:n
{
countertype =
@@ -7797,26 +7907,28 @@
{
\@@_if_package_loaded:nT { appendix }
{
- \newcounter { zc@appendix }
- \newcounter { zc@save@appendix }
- \setcounter { zc@appendix } { 0 }
- \setcounter { zc@save@appendix } { 0 }
- \cs_if_exist:cTF { chapter }
- {
- \@@_zcsetup:n
- { counterresetby = { chapter = zc@appendix } }
- }
- {
- \cs_if_exist:cT { section }
- {
- \@@_zcsetup:n
- { counterresetby = { section = zc@appendix } }
- }
- }
\AddToHook { env / appendices / begin }
{
- \stepcounter { zc@save@appendix }
- \setcounter { zc@appendix } { \value { zc@save@appendix } }
+% \end{macrocode}
+% Technically, the \env{appendices} environment can be called multiple times.
+% By default, successive calls keep track of numbering and start where the
+% previous one left off. Which means just setting the \texttt{zc@appendix}
+% counter to 1 is enough for things to work, since the distinction between the
+% calls and the sorting of their respective references will depend on the
+% underlying sectioning. \pkg{appendix}'s documentation however, provides a
+% way to restart from A at each call (by redefining \cs{restoreapp} to do
+% nothing). In this case, the references inside different calls to
+% \env{appendices} get to be identical in every way, including printed form,
+% counter value, enclosing counters, etc., despite being different. We could
+% keep track of different calls to \env{appendices} by having the
+% \texttt{zc@appendix} counter be ``stepped'' at each call. Doing so would
+% mean though that \cs{zcref} would distingish things which are typeset
+% identically, granting some arguably weird results. True, the user
+% \emph{can} change the printed form for each \env{appendices} call,
+% e.g. redefining \cs{thechapter}, but in this case, they are responsible for
+% keeping track of this.
+% \begin{macrocode}
+ \setcounter { zc@appendix } { 1 }
\@@_zcsetup:n
{
countertype =
@@ -7832,13 +7944,36 @@
}
\AddToHook { env / appendices / end }
{ \setcounter { zc@appendix } { 0 } }
- \AddToHook { cmd / appendix / before }
+ \newcounter { zc@subappendix }
+ \cs_if_exist:cTF { chapter }
{
- \stepcounter { zc@save@appendix }
- \setcounter { zc@appendix } { \value { zc@save@appendix } }
+ \@@_zcsetup:e
+ {
+ counterresetby =
+ {
+ zc@subappendix = \@@_counter_reset_by:n { section } ,
+ section = zc@subappendix ,
+ } ,
+ }
+ }
+ {
+ \@@_zcsetup:e
+ {
+ counterresetby =
+ {
+ zc@subappendix = \@@_counter_reset_by:n { subsection } ,
+ subsection = zc@subappendix ,
+ } ,
+ }
}
\AddToHook { env / subappendices / begin }
{
+% \end{macrocode}
+% The \env{subappendices} environment, on the other hand, appears not to
+% support multiple calls inside the same chapter/section (the counter is reset
+% by default). Either way, the same reasoning applies.
+% \begin{macrocode}
+ \setcounter { zc@subappendix } { 1 }
\@@_zcsetup:n
{
countertype =
@@ -7851,6 +7986,8 @@
} ,
}
}
+ \AddToHook { env / subappendices / end }
+ { \setcounter { zc@subappendix } { 0 } }
\msg_info:nnn { zref-clever } { compat-package } { appendix }
}
}
@@ -7977,10 +8114,13 @@
}
% \end{macrocode}
% \pkg{amsmath} does use \cs{refstepcounter} for the \texttt{equation} counter
-% throughout and does set \cs{@currentcounter} for \cs{tag}s. But we still
-% have to manually reset \opt{currentcounter} to default because, since we had
-% to manually set \opt{currentcounter} to \texttt{parentequation} in
-% \env{subequations}, we also have to manually set it to \env{equation} in
+% throughout and supposedly sets \cs{@currentcounter} for \cs{tag}s (I'm not
+% sure if it works in all environments, though. Once I tried to remove the
+% explicit \opt{currentcounter} setting and several labels to \cs{tag}s ended
+% up with type \texttt{section}. But I didn't investigate this further). But
+% we still have to manually reset \opt{currentcounter} to default because,
+% since we had to manually set \opt{currentcounter} to \texttt{parentequation}
+% in \env{subequations}, we also have to manually set it to \env{equation} in
% environments which may be used within it. The \env{xxalignat} environment
% is not included, because it is ``starred'' by default (i.e.\ unnumbered),
% and does not display or accepts labels or tags anyway. The \env{-ed}
@@ -8041,6 +8181,18 @@
% doing special handling inside \cs{zcref}, but the feature is very cool, so
% it's worth it.
%
+% Note that this support comes at a little cost. \opt{showonlyrefs} works by
+% setting a special \cs{MT@newlabel} for each label referenced with
+% \cs{eqref}. Now, \cs{eqref} is a specialized reference command, only used
+% to refer to equations, so it sets \cs{MT@newlabel} unconditionally on the
+% first run. \cs{zcref}, on the other hand, is a general purpose reference
+% command, used to reference labels of any type. But we wouldn't want to set
+% \cs{MT@newlabel} indiscriminately for all referenced labels in the document,
+% so we need to test for its type. Alas, the label must exist before its type
+% can be tested, thus we cannot set \cs{MT@newlabel} on the first run, only on
+% the second. In sum, since \cs{eqref} requires 3 runs to work, \cs{zcref}
+% needs 4.
+%
% \begin{macrocode}
\bool_new:N \l_@@_mathtools_loaded_bool
\@@_compat_module:nn { mathtools }
diff --git a/macros/latex/contrib/zugferd/DEMO-rechnung-zugferd.tex b/macros/latex/contrib/zugferd/DEMO-rechnung-zugferd.tex
new file mode 100644
index 0000000000..1d38dcafb5
--- /dev/null
+++ b/macros/latex/contrib/zugferd/DEMO-rechnung-zugferd.tex
@@ -0,0 +1,95 @@
+% !TeX Program=lualatex
+%
+% Demo file for the LaTeX-ZUGFeRD project
+% This file corresponds to version 0.8 (2024-09-11)
+%
+% Copyright (C) 2024 Marei Peischl <marei@peitex.de>
+% ---------------------------------------------------------
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008-05-04 or later.
+%
+\DocumentMetadata{
+ pdfstandard=a-3b,
+ lang=de,
+}
+\documentclass[parskip=half-,german]{scrartcl}
+
+\usepackage[
+ format=xrechnung3.0% 3.0 is the default anyway, but you can select the format to avoid automatic changes.
+]{zugferd-invoice}
+
+\setkomavar{invoice}{2024:1337}
+\setkomavar{date}{2024-01-04}
+\setkomavar{title}{Rechnung}
+
+\newkomafont{invoicetotal}{\bfseries}
+
+\SetZUGFeRDData{
+% document-type = commercial-invoice, % commented as this setting matches the initial value
+ id=komavar,
+% date=auto, % commented as this setting matches the initial value
+% delivery-date = auto, % commented as this setting matches the initial value
+ subject=komavar,
+ fromaddress=komavar,
+% tax/category=S,
+% tax/rate=19,
+ unit=hour,
+ seller/name = {peiTeX (Marei Peischl)},
+ seller/postcode = {20253},
+ seller/city ={Hamburg},
+ seller/country = DE,
+ seller/address = {Address 1},
+ seller/vatid = {DE123456789},
+ seller/contact= {Marei\\+4900000000\\marei@peitex.de},
+ seller/email = {kontakt@peitex.de},
+ buyer/reference = {buyer-reference}, %oder Leitweg-ID
+ buyer/name = {Käufer Name},
+ buyer/postcode = {20253},
+ buyer/city ={Hamburg},
+ buyer/country = DE,
+ buyer/address = {Address 1\\Address 2},
+ buyer/vatid = {DE123456789},
+ buyer/email = {invoice@example.org},
+ currency=€,
+ payment-terms={Zahlbar innerhalb von 14 Tagen},% entweder das oder das Datum (Zeile drunter) ist notwendig
+ due-date={20240118},
+ payment-means / type = 58, % SEPA Übereisung,
+ payment-means / iban = DE68430609671013251700,
+ payment-means / account-holder = Marei Peischl,
+ payment-means / bic =GENODEM1GLS
+}
+
+
+
+\begin{document}
+
+
+\begin{letter}{Firma\\Vorname Nachname\\Rechnungsadresse\\PLZ Ort}
+
+\opening{Guten Tag,}
+
+hiermit stelle ich Ihnen meine Arbeit im Rahmen des Projektes XX in Rechnung. Die Leistung wurde im Januar 2024 erbracht.
+
+\AddInvoiceItem{3}{Weiterentwicklung/funktionale Erweiterung}{90}
+\AddInvoiceItem[7]{3}{Support}{90}
+\AddInvoiceItem{2}{Support an Feiertagen/Wochenende}{180}
+
+\PrintInvoiceTabular
+
+Ich bitte Sie oben genannte Betrag binnen 30 Tagen auf unten genanntes Konto zu überweisen.
+
+%Falls gewünscht
+\closing{Happy \TeX{}ing}
+
+
+\end{letter}
+
+\end{document}
diff --git a/macros/latex/contrib/zugferd/DEPENDS.txt b/macros/latex/contrib/zugferd/DEPENDS.txt
new file mode 100644
index 0000000000..9156e86f4c
--- /dev/null
+++ b/macros/latex/contrib/zugferd/DEPENDS.txt
@@ -0,0 +1,7 @@
+# Proudly generated by the Island of TeX's DEPendency Printer https://gitlab.com/islandoftex/texmf/depp
+soft babel# only zugferd-invoice.sty
+soft booktabs# only zugferd-invoice.sty
+soft koma-script# only zugferd-invoice.sty
+soft ragged2e# only zugferd-invoice.sty
+siunitx
+soft xltabular# only zugferd-invoice.sty
diff --git a/macros/latex/contrib/zugferd/README.md b/macros/latex/contrib/zugferd/README.md
new file mode 100644
index 0000000000..e6d85f137c
--- /dev/null
+++ b/macros/latex/contrib/zugferd/README.md
@@ -0,0 +1,27 @@
+# ZUGFeRD - Create ZUGFeRD and other kinds of E-invoices using LaTeX
+
+Copyright (C) 2023–2024 by Marei Peischl (peiTeX) <marei@peitex.de>
+
+zugferd version 0.8 (2024-09-11)
+
+***************************************************************************
+
+ This material is subject to the LaTeX Project Public License version 1.3c
+ or later. See http://www.latex-project.org/lppl.txt for details.
+
+***************************************************************************
+
+## Abstract
+
+This package provides an interface to make your LaTeX-based invoicing compatible to e-invoicing standards, such as they exist in the EU.
+
+The package includes a demo implementation, which can be used by template developers to create their own company specific variant. The included example file shows how to use it. This package is built so it also creates the XML file which will be directly attached to the PDF.
+
+There also exist interfaces to attach an XML file generated differently. Please have a look at the documentation.
+
+This package does not provide. Please be aware of you have to use valid input data for a valid ZUGFeRD output. The documentation suggests some options.
+
+
+# Version History
+
+ * 0.8 (2024-09-11) First version on CTAN
diff --git a/macros/latex/contrib/zugferd/zugferd-invoice.sty b/macros/latex/contrib/zugferd/zugferd-invoice.sty
new file mode 100644
index 0000000000..e86dbdee1b
--- /dev/null
+++ b/macros/latex/contrib/zugferd/zugferd-invoice.sty
@@ -0,0 +1,193 @@
+%
+% Copyright (C) 2024 Marei Peischl <marei@peitex.de>
+% ---------------------------------------------------------
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008-05-04 or later.
+%
+\ProvidesExplPackage{zugferd-invoice}{2024-09-11}{0.8}{Invoice wrapper example package for the factur-x to create ZUGFerD invoices}
+
+\keys_define:nn {zugferd/invoice}{
+ default-vat .tl_set:N = \defaultVAT,
+ default-vat .initial:n = 19,
+ format .code:n = \PassOptionsToPackage{format=#1}{zugferd},
+ format .initial:n = xrechnung3.0,
+}
+
+\ProcessKeyOptions[zugferd/invoice]
+
+\msg_new:nnnn {ptxcd/zugferd} {not-for-production} {
+ This~package~is~intented~to~be~an~example~for~a~possible~implementation~to~use~the~zugferd~package~for~invoicing.\\
+ As~this~integrates~a~lot~with~the~visual~structure~of~your~invoice~this~should~not~be~used~directly~but~may~be~an~example~for~your~own~package.
+}{See~zugferd~documentation~for~instructions~concerning~the~interfaces~used~in~this~file.}
+\msg_warning:nn {ptxcd/zugferd} {not-for-production}
+
+\RequirePackage{scrletter}
+\RequirePackage{ragged2e}
+\RequirePackage{zugferd}
+\RequirePackage{babel}
+
+% e.g. use comma as output decimal marker if german
+\addto\extrasgerman{\sisetup{locale=DE}}
+\addto\extrasngerman{\sisetup{locale=DE}}% for backwards compatibility
+
+\RequirePackage{xltabular}
+\RequirePackage{booktabs}
+
+\newcounter{invoiceitem}
+\seq_new:N \g__ptxcd_VAT_rates_seq
+
+\NewDocumentCommand{\InitVAT}{omO{S}}{
+ \seq_gput_right:Nn \g__ptxcd_VAT_rates_seq {#2}
+ \fp_new:c {g__ptxcd_invoice_sum_vat#2_fp}
+ \fp_new:c {g__ptxcd_invoice_base_vat#2_fp}
+ \cs_new:cn {__ptxcd_invoice_type_code#2:} {#3}
+}
+
+%%initialisierung auf 5,7,16 oder 19 % Mwst
+\InitVAT{16}
+\InitVAT{19}
+\InitVAT{5}
+\InitVAT{7}
+
+\newcommand*{\SetDefaultVAT}[1]{\def\defaultVAT{#1}}
+
+
+\seq_new:N \l__ptxcd_invoice_items_seq
+
+%\newcommand*{\AddInvoiceItem}[4][\defaultVAT]{%
+\NewDocumentCommand{\AddInvoiceItem}{D<>{}O{\defaultVAT}mmm}{
+ \seq_put_right:Nn \l__ptxcd_invoice_items_seq {
+ {#2}{#3}{#4}{#5}{#1}
+ }
+}
+
+\newcolumntype{P}{r<{\PrintTableCurrency}}
+
+\fp_new:N \g__ptxcd_invoice_sum_fp
+\fp_new:N \g__ptxcd_invoice_total_fp
+\fp_new:N \g__ptxcd_tax_total_fp
+\fp_new:N \g__ptxcd_invoice_item_fp
+\fp_new:N \g__ptxcd_invoice_item_vat_fp
+\fp_new:N \g__ptxcd_invoice_sum_vat_fp
+
+\newcommand*{\PrintInvoiceTabular}{
+\bool_gset_true:N \g_ptxcd_first_run_bool
+ \begin{ZUGFeRD}
+ \sisetup{round-precision=2,round-mode=places,round-pad=false,table-number-alignment=right,minimum-decimal-digits=2,mode=text}
+ \begin{xltabular}{\linewidth}{@{}rS[round-precision=1,table-format=2.1]>{\RaggedRight}XPP@{}}
+ \toprule[\lightrulewidth]
+ \noalign{\global\let\PrintTableCurrency\relax}%
+ \small\emph{Pos.}&\small\emph{Std.}&\small\emph{Beschreibung}&\small\emph{Einzelpreis}&\small\emph{Gesamtpreis}\\\midrule[\heavyrulewidth]
+ \noalign{\global\let\PrintTableCurrency\TableCurrency}%
+ \endhead
+ \bottomrule[\lightrulewidth]\multicolumn{5}{@{}p{\textwidth}@{}}{\strut\hspace*{\fill}\footnotesize Fortsetzung auf der nächsten Seite}\endfoot
+ \bottomrule\endlastfoot
+% Only write xml for the first run of the tabular.
+ \fp_compare:nNnF {\g__ptxcd_invoice_sum_fp} = {\c_zero_dim} {
+ \fp_gzero:N \g__ptxcd_invoice_sum_fp
+ \zugferd_disable_XML_interfaces:
+ }
+ \seq_map_inline:Nn \g__ptxcd_VAT_rates_seq {
+ \fp_gzero:c {g__ptxcd_invoice_sum_vat##1_fp}
+ \fp_gzero:c {g__ptxcd_invoice_base_vat##1_fp}
+ }
+ \fp_gzero:N \g__ptxcd_invoice_sum_fp
+ \seq_map_inline:Nn \l__ptxcd_invoice_items_seq {
+ \PrintInvoiceItem##1
+ }
+ \tabularnewline
+ \noalign{\skip_vertical:n {-\ht\strutbox-\dp\strutbox}}%offset for extra empty row of mapping
+ \midrule[\heavyrulewidth]
+ \PrintInvoiceTotal
+ \end{xltabular}
+ \end{ZUGFeRD}
+}
+
+\newcommand*{\PrintInvoiceTotal}{
+ \zugferd_startInvoiceSums:
+ \fp_gset:Nn \g__ptxcd_invoice_total_fp { \g__ptxcd_invoice_sum_fp}
+ \fp_gzero:N \g__ptxcd_tax_total_fp
+ \PrintInvoiceSum{netto}{\fp_use:N \g__ptxcd_invoice_sum_fp}
+ \seq_map_inline:Nn \g__ptxcd_VAT_rates_seq {
+ \fp_compare:nNnF {\fp_use:c {g__ptxcd_invoice_sum_vat##1_fp}} = {0} {
+ \zugferd_write_TaxEntry:nnnn {\use:c {__ptxcd_invoice_type_code##1:}} {##1} {\fp_use:c {g__ptxcd_invoice_base_vat##1_fp}} {\fp_use:c {g__ptxcd_invoice_sum_vat##1_fp}}
+ \fp_gadd:Nn \g__ptxcd_tax_total_fp {\fp_use:c {g__ptxcd_invoice_sum_vat##1_fp}}
+ \PrintVatSum[{\fp_use:c {g__ptxcd_invoice_base_vat##1_fp}}]{##1 }{\fp_use:c {g__ptxcd_invoice_sum_vat##1_fp}}
+ }
+ }
+ \PrintInvoiceSum{brutto}{\fp_eval:n {\g__ptxcd_tax_total_fp + \g__ptxcd_invoice_total_fp }}
+ % TODO add support for allowance, chargeTotal, and prepaid
+ \zugferd_write_Summation:nnnnnnnn
+ {\fp_use:N \g__ptxcd_invoice_sum_fp}% LineTotalAmount
+ {0} %ChargeTotalAmount
+ {0} %AllowanceTotalAmount
+ {\fp_use:N \g__ptxcd_invoice_sum_fp} %TaxBasisTotalAmount
+ {\fp_use:N \g__ptxcd_tax_total_fp} %TaxTotalAmount
+ {\fp_eval:n {\g__ptxcd_tax_total_fp + \g__ptxcd_invoice_total_fp }} %GrandTotalAmount
+ {0} % TotalPrepaidAmount
+ {\fp_eval:n {\g__ptxcd_tax_total_fp + \g__ptxcd_invoice_total_fp }} %DuePayableAmount = GrandTotalAmount - TotalPrepaidAmount
+ \zugferd_stopInvoiceSums:
+}
+
+%Ausgabe der einzelnen Rechnungspositionen
+\newcommand*{\PrintInvoiceItem}[5]{%
+ \stepcounter{invoiceitem}%
+ \theinvoiceitem%Positionsnummer
+ \fp_gset:Nn \g__ptxcd_invoice_item_vat_fp {#2 * (#1/100) * #4}
+ \fp_gset:Nn \g__ptxcd_invoice_item_fp {#2 * #4}
+% \fp_gadd:Nn \g__ptxcd_invoice_sum_vat_fp
+ \fp_gadd:cn {g__ptxcd_invoice_base_vat#1_fp} {\g__ptxcd_invoice_item_fp}
+ \fp_gadd:cn {g__ptxcd_invoice_sum_vat#1_fp} {\g__ptxcd_invoice_item_vat_fp}
+ \fp_gadd:Nn \g__ptxcd_invoice_sum_fp {\g__ptxcd_invoice_item_fp}
+
+ % position nummer name einzel-preis anzahl gesamtpreis
+ \keys_set:ne {zugferd}{tax/rate=#1, tax/category=\use:c {__ptxcd_invoice_type_code#1:},#5}
+ \zugferd_write_Item:nnnnnn {\theinvoiceitem} {} {#3} {#4} {#2} {\fp_use:N \g__ptxcd_invoice_item_fp}
+
+ &#2% Anzahl
+ &#3\space(\printVAT{#1}~MwSt.)% Beschreibung mit Angabe der MwSt, in Klammern
+ &\num{#4}%\num[round-mode=places,output-decimal-marker={,},round-pad = false]{#4}\tl_show:n {#4}%Einzelpreis
+ &\exp_args:Nx \num{\fp_use:N \g__ptxcd_invoice_item_fp}
+ \tabularnewline
+}
+
+
+
+\newcommand*{\PrintInvoiceSum}[2]{
+ \PrintSum{\csname invoicesum#1name\endcsname}{#2}
+}
+
+\newcommand*{\PrintVatSum}[3][]{
+ \PrintSum{\invoicesumvatname[#1]{#2}}{#3}
+}
+
+\newcommand*{\invoicesumvatname}[2][]{MwSt.~\printVAT{#2}\tl_if_empty:nF {#1} {\space(\num[round-precision=2]{#1}\TableCurrency)}}
+\renewcommand*{\theinvoiceitem}{\int_compare:nNnT {\value{invoiceitem}}<{10}{0}\arabic{invoiceitem}}
+
+\newcommand*{\PrintSum}[2]{
+ &&\multicolumn{1}{r}{#1\invoicesumseparator}&\multicolumn{1}{l}{}&\exp_args:Nx \num {#2}\tabularnewline
+}
+
+\ExplSyntaxOff
+
+\newcommand*{\invoicesumnettoname}{Summe (Netto)}
+\newcommand*{\invoicesumbruttoname}{Summe (Brutto)}
+\newcommand*{\invoicesumseparator}{:\space}
+
+\newcommand*{\TableCurrency}{\,€}
+\newcommand*{\printVAT}[1]{\num[round-mode=none]{#1}\,\%}
+
+\newcommand*{\PrintPositionenVAT}[5]{%
+ \stepcounter{invoiceitem}%
+ \theinvoiceitem&#1&#2\space(\printVAT{#3})&#4&#5\tabularnewline
+}
+
+\endinput
diff --git a/macros/latex/contrib/zugferd/zugferd.dtx b/macros/latex/contrib/zugferd/zugferd.dtx
new file mode 100644
index 0000000000..1bfdb78ac6
--- /dev/null
+++ b/macros/latex/contrib/zugferd/zugferd.dtx
@@ -0,0 +1,2285 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2021–2024 Marei Peischl <marei@peitex.de>
+% ---------------------------------------------------------
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008-05-04 or later.
+%
+% \fi
+% \iffalse
+%<*driver>
+\ProvidesFile{zugferd.dtx}[2024-09-11 v0.8 ZUGFerd Invoice and Faktur-X]
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[2023-11-01]
+%<package>\ProvidesExplPackage{zugferd}{2024-09-11}{0.8}{Create ZUGFerd invoices using LaTeX}
+%<*driver>
+\DocumentMetadata{pdfstandard=a-3b,lang=en}
+\documentclass[lm-default=false,cs-break-nohyphen]{l3doc}
+\usepackage{zugferd}[2024-09-11]
+\EnableCrossrefs
+%\CodelineIndex
+\RecordChanges
+\usepackage{biblatex}
+
+\usepackage{shellesc}
+\ifnum\ShellEscapeStatus=1\relax\else
+ \PassOptionsToPackage{draft}{minted}
+\fi
+\usepackage{minted}
+\newcounter{codelist}
+\newenvironment{examplecode}{%
+ \VerbatimEnvironment%
+ \fvset{gobble=0}%
+ \begin{VerbatimOut}[tabsize=3,gobble=1]{minted.doc.out}%
+}{%
+ \end{VerbatimOut}%
+ \inputminted[autogobble, escapeinside=||]{latex}{minted.doc.out}%
+}
+\usepackage{accsupp}
+\setminted{breaksymbol={\BeginAccSupp{method=escape,ActualText={}}\tiny\ensuremath{\hookrightarrow}\EndAccSupp{}},breaklines}
+
+\ExplSyntaxOn
+\makeatletter
+\tl_new:N \l__ptxtools_doc_values_tl
+\newcommand*{\codefamily}{\MacroFont}
+\DeclareTextFontCommand{\codefont}{\codefamily}
+\providecommand{\option}[1]{\codefont{#1}}
+
+\cs_new:Npn \__ptxctools_parse_key_option:w #1 #2 #3 #4 = #5 \q_stop {
+ \begingroup
+ \let\PrintDescribeOption\PrintDescribeKeyOption
+ \tl_set:Nn \l__ptxtools_doc_values_tl {\small\IfBooleanTF{#3}{\textsf{#5}}{\textsf{(\codefont{#5})}}}
+ \noindent\DescribeOption{#4}\hfill
+ \small
+ \tl_if_blank:nTF {#2} {\meta{\textrm{initially~unset}}} {
+ \IfBooleanTF{#1}
+ {#2}
+ {(default:~\codefont{#2})}
+ }\strut\par
+ \endgroup
+}
+
+\newcommand*{\PrintDescribeKeyOption}[1]{
+ {\MacroFont #1=}\rlap{\hskip\marginparsep\l__ptxtools_doc_values_tl}
+}
+
+\bool_new:N \l_ptxtools_last_was_describe_bool
+
+\NewDocumentCommand{\DescribeKeyOption}{smms}{
+ \bool_if:NTF \l_ptxtools_last_was_describe_bool {
+ \vskip -\lastskip
+ }{
+ \par
+ \dim_compare:nNnF {\parskip} > {\c_zero_dim} {\medskip}
+ }
+ \__ptxctools_parse_key_option:w #1 {#3} #4 #2 \q_stop
+
+ \bool_set_true:N \l_ptxtools_last_was_describe_bool
+ \AddToHookNext{para/begin}{
+ \bool_set_false:N \l_ptxtools_last_was_describe_bool
+ \OmitIndent
+ }
+ \smallskip
+}
+
+\newenvironment{valuelist}{
+ \list{}{
+ \labelwidth0pt
+ \itemindent0pt
+ \leftmargin0pt
+ \let\makelabel\valuelistlabel
+ }
+}{
+ \endlist
+}
+\newcommand*\valuelistlabel[1]{
+ \llap{
+ \normalfont\codefamily\color_select:n {black!60}
+ \begin{tabular}[t]{@{}r@{}}
+ \clist_use:nn {#1} {\\}
+ \end{tabular}
+ }
+}
+
+\newcommand*{\accessTaxExemptionReason}[1]{
+ \keys_set:nn {zugferd / tax } {category=#1}
+ Exemption~reason:~\tl_if_empty:NTF \l__zugferd_tax_exemption_reason_tl {\meta{empty}} {\l__zugferd_tax_exemption_reason_tl};~
+ Exemption~reason~code:~\tl_if_empty:NTF \l__zugferd_tax_exemption_code_tl {\meta{empty}} {\l__zugferd_tax_exemption_code_tl}
+}
+% to support small layout adjustments for the texdoc version
+\newcommand*{\IfOnlyDocumentation}[1]{
+ \bool_if_exist:NT \g__codedoc_typeset_implementation_bool {
+ \bool_if:NF \g__codedoc_typeset_implementation_bool {#1}
+ }
+}
+%add a subtitle
+\def\@maketitle{%
+ \newpage
+ \null
+ \vskip 2em%
+ \begin{center}%
+ \let \footnote \thanks
+ {\LARGE \@title \par}%
+ \vskip 1.5em%
+ {\large \@subtitle \par}%
+ \vskip 1em%
+ {\large
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1em%
+ {\large \@date}%
+ \end{center}%
+ \par
+ \vskip 1.5em}
+\newcommand{\subtitle}[1]{\def\@subtitle{#1}}
+\subtitle{}
+\makeatother
+\ExplSyntaxOff
+
+\usepackage{underscore-ltx}
+
+\begin{filecontents}{zugferd.bib}
+@online{x-rechnung,
+ url={https://xeinkauf.de/dokumente/},
+ urldate={2024-08-20}
+}
+@online{spec-xrechnung,
+ url={https://xeinkauf.de/app/uploads/2024/07/302-XRechnung-2024-06-20.pdf},
+ author={{Koodinierungsstelle für IT-Standards}},
+ title={Spezifikation Standard XRechnung},
+ subtitle={CIUS und Extension},
+ edition={Version XRechnung 3.0.2},
+ date={2024-06-20},
+ urldate={2024-08-20},
+ langid={german}
+}
+@online{mustang-project,
+ title={Mustangproject},
+ url={https://github.com/ZUGFeRD/mustangproject},
+ urldate={2024-08-20}
+}
+@online{country-codes,
+ title={ECE/TRADE/201},
+ subtitle={ISO COUNTRY CODE for Representation of Names of Countries},
+ url={https://unece.org/trade/documents/iso-country-code-representation-names-countries},
+ urldate={2024-08-20},
+}
+@online{unit-codes,
+ title={Rec 20 – Codes for Units of Measure Used in International Trade},
+ url={https://unece.org/sites/default/files/2023-10/rec20_Rev17e-2021.xlsx},
+ urldate={2024-08-20},
+ note={Link directly to xlsx. \cite[see][for all revisions]{cl-recommendations}.}
+}
+@online{cl-recommendations,
+ author={United Nations Economic Commission for Europe (UNECE)},
+ title={Code List Recommendations},
+ url={https://unece.org/trade/uncefact/cl-recommendations},
+ urldate={2024-08-20}
+}
+@online{VAT-exemption-codes,
+ title={VAT exemption reason code list},
+ url={https://www.xrepository.de/details/urn:xoev-de:kosit:codeliste:vatex_1},
+ urldate={2024-08-20}
+}
+@online{zugferd-download,
+ title={ZUGFeRD 2.2},
+ subtitle={Download page},
+ url={https://ferd-net.de/standards/zugferd-2.2/zugferd-2.2.html},
+ urldate={2024-09-02},
+}
+@manual{scrletter,
+ title = {The scrletter package},
+ subtitle = {Letter extension to KOMA-Script classes},
+ author = {Kohm, Markus},
+ url = {https://komascript.de/},
+ urldate = {2024-09-03},
+ documentation = {ctan://macros/latex/contrib/koma-script/doc/scrguide-en.pdf},
+ date = {2023-07-07},
+ version = {3.41},
+}
+@online{leitweg-id,
+ title={Xeinkauf FAQ},
+ subtitle={Leitweg ID},
+ author={{Koordinierungsstelle für IT Standards (KoSIT)}},
+ url={https://xeinkauf.de/faq/xrechnung#leitweg-id},
+ urldate={2024-09-04}
+}
+\end{filecontents}
+\addbibresource{zugferd.bib}
+\nocite{cl-recommendations}
+
+\usepackage{xspace}
+\newcommand*{\XML}{XML\xspace}
+\newcommand*{\XMLfile}{\XML file}
+
+\begin{document}
+\EnableDocumentation\DisableImplementation
+\DocInput{zugferd.dtx}
+%\DisableDocumentation\EnableImplementation
+%\DocInputAgain
+\PrintChanges
+\printbibliography
+\PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \changes{v0.8}{2024-09-11}{First CTAN version}
+%
+% \GetFileInfo{zugferd.dtx}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+% \begin{documentation}
+% \title{The \textsf{zugferd} package\thanks{This document
+% corresponds to \textsf{zugferd}~\fileversion, dated \filedate.}}
+% \subtitle{Creating electronic and hybrid invoices using \LaTeX}
+% \author{Marei Peischl \\ \texttt{marei@peitex.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Invoicing is getting more and more automated.
+% Starting with public sector, within Germany there already is a requirement to stick to the Faktur-X Standard.
+% First Invoices based on this implementation here have been created back in 2021.
+% And this is now the trial to create a more universal and public package to support the current Version of ZUGFeRD and therefore also X-Rechung and Faktur-X.
+%
+% \indent The fundamental idea of this package was to use the calculation within \LaTeX{} as well. So it also creates the \XMLfile for the attachment on the fly.
+% To match typical setups there is a wrapper package which usually would also hold the personal Invoicing layout configuration.
+% \end{abstract}
+%
+% \IfOnlyDocumentation{\vfill}
+% \section*{Sponsors \& Supporters}
+% Most of this package has been created within my free time and for my personal use. At start, it was not a paid project at all.
+% Since it is addressing business users it would be great if we could keep this actively maintained.
+% If you are able to support this either financially for the maintenance effort, a custom extension, I'd love to hear from you.
+%
+% Tthis project was financially supported by:
+% \begin{itemize}
+% \item Pengutronix e.K., \url{https://pengutronix.de}\newline
+% Special thanks to them, as they also sponsored the minimal portable \TeX{} Live setup.
+% \end{itemize}
+%
+% \IfOnlyDocumentation{\clearpage}
+%
+% \tableofcontents
+%
+% \IfOnlyDocumentation{\clearpage}
+%
+% \section{Quick start}
+% This package is still in development and does not provide any validation.
+% To ensure your invoice is created correctly you should also validate the output files.
+% There are tools like the \citeauthor{mustang-project} \cite{mustang-project} providing an easy-to-use interface for the validation.
+% In the appendix I will add some notes on my setup and how I use it within pipelines.
+%
+% The Bundle provides an example file called \file{DEMO-rechnung-zugferd.tex}.
+% This includes a basic setup for a valid X-Rechnung currently matching Version 3.0.1 of the standard.
+% Details on the requirements can be found in the documentation at \cite{x-rechnung}.
+%
+% \subsection{Disclaimer concerning the \pkg{zugferd-invoice} Package}
+% The included package \pkg{zugferd-invoice} is an example project which might match your own invoicing structure.
+% It holds all the layout information which is static across all the invoices.
+% This package is an example implementation and should not be used in production.
+% It is published as a part of the documentation.
+%
+% The idea is to create your own version of this package to use your own layout and internally load the \pkg {zugferd} package that way.
+% Of course, it's possible to use a copy of this package within your personal setup.
+% But the syntax used in the DEMO file may change, so you have to ensure yourself to be compatible with updates.
+%
+% The interfaces for \pkg{zugferd} will hopefully stay the same.
+% At least changes will be announced and build compatible during a deprecation period.
+%
+% \end{documentation}
+% \iffalse
+% \begin{macrocode}
+%<*package>
+%<@@=zugferd>
+% \end{macrocode}
+% Workaround to replace module name without having a visible <@@=zugferd> in the documentation
+% \fi
+%</package>
+% \ExplSyntaxOn
+% \tl_gset:Nn \g__codedoc_module_name_tl {zugferd}
+% \ExplSyntaxOff
+% \iffalse
+%<*!package>
+% \fi
+% \begin{documentation}
+\ExplSyntaxOn
+\tl_gset:Nn \g__codedoc_module_name_tl {zugferd}
+\ExplSyntaxOff
+% \end{documentation}
+% \iffalse
+%</!package>
+%<*package>
+% \fi
+% \begin{implementation}
+% \section{Implementation}
+% \begin{variable}{\l_@@_tmp_tl,\g_@@_format_str,\g_@@_businessProcessId_str,\g_@@_writeTradeContact_bool,\g_@@_writePaymentMeans_bool,\g_@@_conformance_level_str}
+% \begin{macrocode}
+\tl_new:N \l_@@_tmp_tl
+\str_new:N \g_@@_format_str
+\str_new:N \g_@@_businessProcessId_str
+\bool_new:N \g_@@_writeTradeContact_bool
+\bool_new:N \g_@@_writePaymentMeans_bool
+\str_new:N \g_@@_conformance_level_str
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+% \begin{documentation}
+% \section{Package Options}\label{sec:package-options}
+% The package supports a few fundamental settings.
+% These have to be set when the package is loaded as they are used internally to setup the scheme or activate the \XML mechanism.
+%
+% \DescribeKeyOption{format=xrechnung/xrechnung3.0/xrechnung2.3/basic}{xrechunng}
+% \option{format} selects the scheme to be used for the zugferd invoice.
+% Currently xrechnung3.0, xrechnung2.3 and the basic scheme are supported.
+%
+% The value \option{xrechnung} is set as an alias to |xrechnung3.0| and will always use the latest version supported by \pkg{zugferd}.
+%
+% \DescribeKeyOption{zugferd=\meta{boolean}}{true}*
+% This option can be used to deactivate the \XML embedding.
+% It would also disable the the \option{write-xml} option.
+% This can be used to create a package which can use the same structure to also create invoices without \XML attachment.
+% It can also be used with older \LaTeX{} releases than this package requires.
+% There will be a warning, but the visible part should be okay.
+%
+% \DescribeKeyOption{write-xml=\meta{boolean}}{true}*
+% Disable the \XML output.
+% This can be used if you want to create the \XML attachment with different software than this package.
+%
+% In that case you can either rename your file to \meta{\cs[no-index]{jobname}\_zugferd.xml} or also adjust the \option{xml-file} option.
+%
+% \DescribeKeyOption{xml-file=\meta{filename}}{\cs[no-index]{jobname}_zugferd.xml}*
+% Adjust the file name of the created or loaded \XMLfile.
+%
+% The option \option{xrechnung} is only used internally to set the global parameters for all |xrechnung| variants.
+%
+% \DescribeKeyOption{auto-exemption=\meta{boolean}}{true}
+% \pkg{zugferd} tries to automatically add an exemption-reason for the most common VAT categories.
+% In case a more specific reason is required this setting can be disabled and everything should be configured manually.
+% See \autoref{sec:tax-category} for more explanation of this feature and the categories this applies to.
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{format,xrechnung,write-xml,zugferd,xml-file,auto-exemption}
+% \changes{v0.7}{2024-09-10}{Added auto-exemption option}
+% \begin{macrocode}
+\char_set_catcode_other:N \#%
+\keys_define:nn {zugferd} {
+ xrechnung .code:n = {
+ \bool_gset_true:N \g_@@_writeTradeContact_bool
+ \bool_gset_true:N \g_@@_writePaymentMeans_bool
+ \str_gset:Nn \g_@@_conformance_level_str {XRECHNUNG}
+ },
+ format .choice:,
+ format / xrechnung3.0 .code:n = {
+ \str_gset:Nx \g_@@_format_str {
+ urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0
+ }
+ \str_gset:Nx \g_@@_businessProcessId_str {
+ urn:fdc:peppol.eu:2017:poacc:billing:01:1.0
+ }
+ \keys_set:nn {zugferd}{xrechnung}
+ },
+ format / xrechnung2.3 .code:n = {
+ \str_gset:Nx \g_@@_format_str {
+ urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_2.3
+ }
+ \keys_set:nn {zugferd}{xrechnung}
+ },
+ format / basic .code:n = {
+ \str_gset:Nx \g_@@_format_str {
+ urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic
+ }
+ \bool_gset_false:N \g_@@_writeTradeContact_bool
+ \bool_gset_false:N \g_@@_writePaymentMeans_bool
+ \str_gset:Nn \g_@@_conformance_level_str {BASIC}
+ },
+ format / xrechnung .meta:n = { format = xrechnung3.0 },
+ format .initial:n = xrechnung,
+ format .usage:n = load,
+ write-xml .bool_gset:N = \g_@@_write_xml_bool,
+ write-xml .initial:n = true,
+ write-xml .usage:n = load,
+ zugferd .bool_gset:N = \g_@@_active_bool,
+ zugferd .initial:n = true,
+ zugferd .default:n = true,
+ zugferd .usage:n = load,
+ ZUGFerD .meta:n = {zugferd = #1},
+ xml-file .tl_gset:N = \g_@@_xml_file_tl,
+ xml-file .initial:n = \jobname _zugferd.xml,
+ xml-file .usage:n = load,
+ auto-exemption .bool_gset:N = \g_@@_auto_exemption_bool,
+ auto-exemption .initial:n = true,
+ auto-exemption .default:n = true,
+ auto-exemption .usage:n =load,
+}
+\char_set_catcode_parameter:N \#%
+
+\ProcessKeyOptions[zugferd]
+% \end{macrocode}
+% \end{optionenv}
+% \subsection{Preparation to write the \file{.xml} file}
+% \begin{variable}{\_@@_xml_writer_iow}
+% \begin{macrocode}
+\iow_new:N \_@@_xml_writer_iow
+% \end{macrocode}
+% \end{variable}
+% To adjust the metadata it is necessary to use the \pkg{pdfmanagement-testphase} by \citeauthor{pdfmanagement-testphase}.
+% She had prepared some experiment files for the PDF attachment in the experiments of the repository.
+% We use these to embed the \XML file.
+%
+% This part prepares the XMP metadata according to the required scheme.
+% \begin{macrocode}
+\bool_if:NT \g_@@_active_bool {
+ \cs_if_exist:NF \pdfmeta_xmp_xmlns_new:nn {
+ \msg_new:nnnn {zugferd} {PDFmanagement-not-active} {
+ The~\LaTeX~PDF~management~is~not~active.\\
+ Activate~it~using~\string\DocumentMetadata.
+ } {
+ See~ZUGFeRD~or~PDFmanagement~documentation~for~more~information.
+ }
+ \msg_error:nn{zugferd} {PDFmanagement-not-active}
+ }
+ %% based on experiments for l3pdfmeta by Ulrike Fischer
+ \pdfmeta_xmp_xmlns_new:nn {fx}{
+ urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0\c_hash_str
+ }
+
+ \cs_generate_variant:Nn \__pdfmeta_xmp_schema_new:nnn {nne}
+
+ \__pdfmeta_xmp_schema_new:nne
+ {Factur-X~PDFA~Extension~Schema}
+ {fx}
+ {urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0\c_hash_str}
+
+ \__pdfmeta_xmp_property_new:nnnnn
+ {fx}
+ {DocumentFileName}
+ {Text}
+ {external}
+ {name~of~the~embedded~XML~invoice~file}
+
+ \__pdfmeta_xmp_property_new:nnnnn
+ {fx}
+ {DocumentType}
+ {Text}
+ {external}
+ {INVOICE}
+
+ \__pdfmeta_xmp_property_new:nnnnn
+ {fx}
+ {Version}
+ {Text}
+ {external}
+ {The~actual~version~of~the~factur-x~schema}
+
+ \__pdfmeta_xmp_property_new:nnnnn
+ {fx}
+ {ConformanceLevel}
+ {Text}
+ {external}
+ {The~conformance~level~of~the~factur-x~data}
+
+ \exp_args:Ne \pdfmeta_xmp_add:n {
+ % fix INVOICE
+ <fx:DocumentType>INVOICE</fx:DocumentType>\iow_newline:
+ % fix factur-x.xml
+ <fx:DocumentFileName>factur-x.xml</fx:DocumentFileName>\iow_newline:
+ % fix schema version
+ <fx:Version>1.0</fx:Version>\iow_newline:
+ % zulässige Werte MINIMUM, BASIC WL, BASIC, EN 16931, EXTENDED, XRECHNUNG
+ <fx:ConformanceLevel>\g_@@_conformance_level_str</fx:ConformanceLevel>%
+ \iow_newline:
+ %
+ }
+}
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \section{User Commands}
+% The end user is only asked to set or access the data to be used by \pkg{zugferd}.
+%
+% \begin{syntax}
+% \cs[no-index]{SetZUGFeRDData}*\marg{key value list}
+% \end{syntax}
+% \DescribeMacro{\SetZUGFeRDData}
+% \DescribeMacro[noindex]{\SetZugferdData}
+% The two modes of \cs[no-index]{SetZUGFeRDData} control if the argument is expanded before the fields are set.
+% Depending on the source of the data this might be necessary.
+% Fields which are involved in the calculation will be expanded anyway, but the text fields will not, to support special characters.
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{function}{\SetZUGFeRDData}
+% \begin{macrocode}
+\NewDocumentCommand{\SetZUGFeRDData}{sm}{
+ \IfBooleanTF{#1}
+ {\keys_set:ne}
+ {\keys_set:nn}
+ {zugferd} {#2}
+}
+\let\SetZugferdData\SetZUGFeRDData
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+% \begin{documentation}
+%
+% \DescribeMacro{\InsertZUGFeRDData}
+% \DescribeMacro[noindex]{\InsertZugferdData}
+% \begin{syntax}
+% \cs[no-index]{InsertZugferdData}\oarg{special mode option}\marg{data-selection}
+% \end{syntax}
+% ZUGFerd uses the same data as the \XMLfile inside the PDF.
+% To simplify the reuse of data this command is designed to simplify the access to data fields, for example:
+%
+% \begin{examplecode}
+% \InsertZUGFeRDData{id}
+% {\InsertZUGFeRDData[set-today]{date}\today}
+% \InsertZUGFeRDData[AddressData]{seller}
+% \end{examplecode}
+% As special modes the command currently supports the following:
+%
+% By default \pkg{zugferd} tries to find the variable holding the data itself.
+% First a token list is tried, afterwards a string.
+% Global variables are prefered over local ones.
+%
+% As the variable names may container underscores and the option usually prefers dashes, dashes are converted to underscores for the detection.
+%
+% \DescribeOption{AddressData} Allows |seller| or |buyer| for the data selection.
+% Will print the address, to be used in letters.
+%
+% \DescribeOption{set-today}
+% For dates there also exists the variant which will not print the variable but parse the variable to be used as \cs{today}.
+% Using this the date format can be controlled easier using the language setting of the document.
+% Here you should take care to use it within a group to restore the real value of \cs[no-index]{today} afterwards.
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{function}{\InsertZUGFeRDData,\InsertZugferdData}
+% To simplify the usage in letters we also add fields to be able to use the zugferd data within \LaTeX{} output.
+% Country is still missing.
+% \begin{macrocode}
+\NewDocumentCommand{\InsertZUGFeRDData}{om}{
+ \str_case:nnF {#1} {
+% \end{macrocode}
+% \begin{macrocode}
+ {AddressData} {
+ \clist_map_inline:nn {name, lineone, linetwo} {
+ \prop_if_in:cnT {g_@@_#2_AddressData_prop } {##1} {
+ \prop_item:cn {g_@@_#2_AddressData_prop } {##1}\\
+ }
+ }
+ \prop_item:cn {g_@@_#2_AddressData_prop } {postcode}
+ \space
+ \prop_item:cn {g_@@_#2_AddressData_prop } {city}
+ }
+% \end{macrocode}
+% \begin{macrocode}
+ {set-today} {
+ \_@@_set_today:v {g_@@_#2_tl}
+ }
+ } {
+% \end{macrocode}
+% Try to find the variable automatially.
+% \begin{itemize}
+% \item replace dashes by underscores
+% \item try if a tokenlist or a string
+% \item prefer global over local
+% \item take the first existing variable and break the loop
+% \end{itemize}
+% \begin{macrocode}
+ \str_set:Ne \l_tmpa_str {#2}
+ \str_replace_all:Nnn \l_tmpa_str {-} {_}
+ \str_replace_all:Nnn \l_tmpa_str {/} {_}
+ \bool_set_true:N \g_tmpa_bool
+ \clist_map_inline:nn {tl, str} {
+ \clist_map_inline:nn {g, l} {
+ \use:c {##1 _if_exist:cT} {####1_@@_ \l_tmpa_str _##1}
+ {
+ \use:c {####1_@@_ \l_tmpa_str _##1}
+ \bool_gset_false:N \g_tmpa_bool
+ }
+ \bool_if:NF \g_tmpa_bool {\clist_map_break:}
+ }
+ \bool_if:NF \g_tmpa_bool {\clist_map_break:}
+ }
+ }
+}
+\providecommand{\InsertZugferdData}{\InsertZUGFeRDData}
+\providecommand{\insertZugferdData}{\InsertZUGFeRDData}
+% \end{macrocode}
+% \end{function}
+% \begin{function}{\_@@_set_today:c}
+% Auxiliary function to use a date variable within the current group to be used as \cs[no-index]{today}.
+% \begin{macrocode}
+\cs_new:Nn \_@@_set_today:n {
+ \_@@_set_today_aux:w #1 \q_stop
+}
+\cs_generate_variant:Nn \_@@_set_today:n {v}
+\cs_new:Npn \_@@_set_today_aux:w #1 #2 #3 #4 #5 #6 #7 #8 \q_stop{
+ \int_set:Nn \year {#1#2#3#4}
+ \int_set:Nn \month {#5#6}
+ \int_set:Nn \day {#7#8}
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+% \begin{documentation}
+% \section{Commands for template authors}
+%
+% \DescribeEnv{ZUGFeRD}
+% To simplify the structure of the wrapper package, \pkg{zugferd} provides an environment for the \XML mechanism and does the attachment to the PDF file (of course only, if enabled, see \autoref{sec:package-options}).
+% This provides the public interface bundling some steps together to reduce maintenance effort for any template maintainer using this package.
+% It also avoids the use of internal commands.
+%
+% This environment opens the \XML file using \cs{startWritingZUGFeRDxml} and afterwards writes the \XML header including the File and Scheme information, the |ExchangedDocumentContext| and information of the |ExchangedDocument|.
+% Notes will also be written within this step.
+% Afterwards the environment should include all the mechanisms to write the invoice positions as well as summation.
+%
+% At the end of the environment the footer is inserted, before the output stream is closed using \cs{stopWritingZUGFeRDxml}. Which also attaches the \XMLfile to the PDF.
+%
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+\NewDocumentEnvironment{ZUGFeRD}{o}{
+ \IfNoValueF{#1}{
+ \SetZUGFeRDData{#1}
+ }
+ \zugferd_enable_XML_interfaces:
+ \startWritingZUGFeRDxml
+ \zugferd_write_Header:
+ \ignorespaces
+}{
+ \zugferd_enable_XML_interfaces:
+ \zugferd_write_Footer:
+ \stopWritingZUGFeRDxml
+ \zugferd_disable_XML_interfaces:
+}
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \DescribeMacro{\startWritingZUGFeRDxml}
+% \cs[no-index]{startWritingZUGFeRDxml} is opening the output stream for the \XMLfile.
+% It also adjusts the indentation.
+% If \option{write-xml} is false, this option only opens a group to achieve the same structure in both modes.
+%
+% \DescribeMacro{\stopWritingZUGFeRDxml}
+% Here the output stream is closed and the \XMLfile is attached.
+% In case \option{write-xml} is not active, the attachment will be made if that's not deactivated separately using \option{zugferd}.
+% It also ends the group started by \cs[no-index]{startWritingZUGFeRDxml}.
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+\newcommand*{\startWritingZUGFeRDxml}{
+ \begingroup
+ \bool_if:NTF \g_@@_write_xml_bool {
+ \char_set_active_eq:nN {13} \_@@_xml_newline_indent:
+ \iow_open:Nn \_@@_xml_writer_iow {\g_@@_xml_file_tl}
+ }{
+ \msg_info:nn {zugferd} {no-xml-write}
+ }
+}
+\msg_new:nnn {zugferd} {no-xml-write} {
+ The~option~write-xml=false~was~set.\\
+ Writing~of~XML~file~is~deactivated.
+}
+% \end{macrocode}
+% The PDF attachment is done after the writing stream is closed.
+% \begin{macrocode}
+%% The metadata elements are taken by Ulrike Fischer's faktur-x experiments
+%% https://github.com/latex3/pdfresources/tree/main/experiments/factur-x-bills
+\newcommand*{\stopWritingZUGFeRDxml}{%
+ \bool_if:NT \g_@@_write_xml_bool
+ {\iow_close:N \_@@_xml_writer_iow}%
+ \endgroup
+ \bool_if:NT \g_@@_active_bool {
+ \group_begin:
+ \pdfdict_put:nnn {l_pdffile/Filespec} {AFRelationship}{/Alternative}
+ %or /Source in some cases
+ \pdfdict_put:nnn {l_pdffile/Filespec} {Desc}{(Factur-X/ZUGFeRD-Rechnung)}
+ \pdffile_embed_file:nnn {\g_@@_xml_file_tl}{factur-x.xml}
+ {zugferd/rechnung}
+ \group_end:
+ \pdfmanagement_add:nnx
+ {Catalog/Names}
+ {EmbeddedFiles}
+ {\pdf_object_ref:n{zugferd/rechnung}}
+ % steht in der docu ist aber pdf 2.0 ....
+ \pdfmanagement_add:nnx{Catalog}{AF}{\pdf_object_ref:n{zugferd/rechnung}}
+ }
+}
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \subsection{Interfaces to write the \XML contents}
+% \changes{v0.6}{2024-09-05}{Provide public interfaces and first version of the documentation.}
+% \label{sec:xml-interfaces}
+% In case you are using |write-xml=true| (which is the default) You need to ensure to call the \XML writing functions in the correct order.
+% For example after setting the global invoice data, like it's done in the example file.
+% The minimal example below would create a valid XML.
+% The interface commands are described afterwards.
+%
+% \begin{examplecode}
+% \begin{ZUGFeRD}
+% \zugferd_write_Item:nnnnnn {1} {} {Plushie \TeX{} lion} {31.98} {2} {63.78}
+% \zugferd_startInvoiceSums:
+% \zugferd_write_TaxEntry:nnnn {S} {19} {63.78} {12.12}
+% \zugferd_write_Summation:nnnnnnnn {63.78} {0} {0} {63.78} {12.12} {75.90} {0} {75.90}
+% \zugferd_stopInvoiceSums:
+% \end{ZUGFeRD}
+% \end{examplecode}
+%
+% \DescribeMacro{\zugferd_write_Item:nnnnnn}
+% This command is the interface to write invoice items to the \XMLfile.
+% If the \XML interface is enabled this is a reference to the internal command \cs{_@@_insert_TradeLineItem:nnnnnn}.
+% \begin{syntax}
+% \cs[no-index]{zugferd_write_Item:nnnnn}
+% \marg{LineID}\marg{optional: item id (\enquote{SellerAssignedID})}\marg{item name}
+% \marg{NetPriceProductTradePrice}
+% \marg{BilledQuantity}
+% \marg{LineTotalAmount}
+% \end{syntax}
+% Within the product name macros are disabled using \cs[no-index]{zugferd_disable_macros:}, see \autoref{sec:disable_macros}.
+%
+% This command is using the local values of tax information as well as the unit code.
+% If you want to overwrite them, adjust them locally using the corresponding options, e.g.:
+% \begin{examplecode}
+% \begingroup
+% \keys_set:nn {zugferd}{tax/rate=19, tax/category=S}
+% \zugferd_write_Item:nnnnnn {1} {} {Plushie \TeX{} lion} {31.98} {2} {63.78}
+% % Code using the data for visible representation
+% \endgroup
+% \end{examplecode}
+% This will set the tax rate to 19\,\% unregarding the global setting.
+%
+% \DescribeMacro{\zugferd_startInvoiceSums:}
+% \DescribeMacro{\zugferd_stopInvoiceSums:}
+% There is some global data which is placed in the \XMLfile after the invoice items have been placed.
+% Typically, in \LaTeX{} this block is started after the items have been printed and will enclose the summation block.
+%
+% The starting includes the so called \enquote{ApplicableHeaderTradeAgreement} which contains the address data of both trade parties, see \autoref{sec:TradeParties}
+% And this will also print the \enquote{SpecifiedTradeSettlementPaymentMeans}, see \autoref{sec:PaymentMeans}.
+%
+% \DescribeMacro{\zugferd_write_TaxEntry:nnnn}
+% This command is writing the sum over a tax rate. This command has to be used once per rate applied to the items.
+% \begin{syntax}
+% \cs[no-index]{zugferd_write_TaxEntry:nnnn} \marg{tax category code} \marg{tax rate in \%} \marg{basis amount the tax applies to} \marg{tax amount}
+% \end{syntax}
+% The tax amount could of course be calculated internally.
+% In the example package this is done automatically, but the interface needs to support manual input as a lot of use cases for \LaTeX{} invoicing use it only to create the output file.
+%
+% \DescribeMacro{\zugferd_write_Summation:nnnnnnnn}\par
+% \noindent The total values are all collected with a single macro.
+% \begin{syntax}
+% \cs[no-index]{zugferd_write_Summation:nnnnnnnn}
+% \marg{LineTotalAmount}\marg{ChargeTotalAmount}\marg{AllowanceTotalAmount}
+% \marg{TaxBasisTotalAmount}\marg{TaxTotalAmount}
+% \marg{GrandTotalAmount}\marg{TotalPrepaidAmount}\marg{DuePayableAmount}
+% \end{syntax}
+% This commnd is also writing the payment terms to the \XMLfile.
+% Please be aware that it's in general not possible to calculate the tax values in here, as there might be multiple tax rates applied.
+% This is only taking the sums over all tax entries.
+%
+% In case you are using some specials like category \enquote{E} the exemption reason will also be written at that point.
+% For that it is referencing the current value of the setting.
+%
+% \subsection{Commands to temporary disable/re-enable the \XML writing interfaces}
+% \DescribeMacro{\zugferd_enable_XML_interfaces:}
+% \DescribeMacro{\zugferd_disable_XML_interfaces:}
+% \par\bigskip
+% As there are a lot of usecases where code is processed multiple times, it's necessary to provide an interface to temporary disable the \XML writing mechanism.
+% A lot of these situations appear within table structures whereas a local adjustment would not be helpful.
+% Therefore these adjustments have to be done globally.
+%
+% The example package \pkg{zugferd-invoice} provides an example for this to ensure the \XML data is not written multiple times.
+% The \env{ZUGFeRD} environment has been constructed that way, that it would automatically enable the interface when it begins and also when it ends, to write the data. So you should ensure this environment is only processed once or use the lower level interfaces directly.
+% \end{documentation}
+% \begin{implementation}
+% Provide public interfaces and the ZUGFeRD environment.
+% \begin{function}{\zugferd_enable_XML_interfaces:,\zugferd_disable_XML_interfaces:}
+% \begin{macrocode}
+\cs_new:Nn \zugferd_enable_XML_interfaces: {
+ \bool_if:NT \g_@@_write_xml_bool {
+ \cs_gset:Nn \zugferd_write_Header: {
+ \_@@_insert_Header:
+ \_@@_insert_FrontMatter:
+ }
+ \cs_gset:Nn \zugferd_write_Footer: {
+ \_@@_insert_Footer:
+ }
+ \cs_gset_eq:NN \zugferd_write_Item:nnnnnn
+ \_@@_insert_TradeLineItem:nnnnnn
+ \cs_gset:Nn \zugferd_startInvoiceSums: {
+ \_@@_ApplicableHeaderTradeAgreement:
+ \_@@_ApplicableHeaderTradeSettlement_start:
+ \_@@_SpecifiedTradeSettlementPaymentMeans:
+ }
+ \cs_gset:Nn \zugferd_stopInvoiceSums: {
+ \_@@_ApplicableHeaderTradeSettlement_stop:
+ }
+ \cs_gset_eq:NN \zugferd_write_TaxEntry:nnnn \_@@_ApplicableTradeTax:nnnn
+ \cs_gset:Nn \zugferd_write_Summation:nnnnnnnn {
+ \_@@_SpecifiedTradePaymentTerms:
+ \_@@_SpecifiedTradeSettlementHeaderMonetarySummation:nnnnnnnn
+ {##1} {##2} {##3} {##4} {##5} {##6} {##7} {##8}
+ }
+ }
+}
+\cs_new:Nn \zugferd_disable_XML_interfaces: {
+ \cs_gset_eq:NN \zugferd_write_Header: \prg_do_nothing:
+ \cs_gset_eq:NN \zugferd_write_Footer: \prg_do_nothing:
+ \cs_gset_eq:NN \zugferd_write_Item:nnnnnn \use_none:nnnnnn
+ \cs_gset_eq:NN \zugferd_startInvoiceSums: \prg_do_nothing:
+ \cs_gset_eq:NN \zugferd_stopInvoiceSums: \prg_do_nothing:
+ \cs_gset_eq:NN \zugferd_write_TaxEntry:nnnn \use_none:nnnn
+ \cs_gset_eq:NN \zugferd_write_Summation:nnnnnnnn \use_none:nnnnnnnn
+}
+\bool_if:NTF \g_@@_write_xml_bool {
+ \zugferd_enable_XML_interfaces:
+}{
+ \zugferd_disable_XML_interfaces:
+}
+% \end{macrocode}
+% \end{function}
+% \begin{function}{\_@@_write_xml:n,\_@@_define_xml_writer:Nn,\_@@_define_xml_content:Nn}
+% These commands are used to toggle the writing of the \XMLfile. This corresponds to the option \option{write-xml}.
+% \begin{macrocode}
+\bool_if:NTF \g_@@_write_xml_bool {
+ \cs_new:Nn \_@@_write_xml:n {
+ \iow_now:Ne \_@@_xml_writer_iow {\_@@_xml_auto_indent: #1}
+ }
+ \cs_new_eq:NN \_@@_define_xml_writer:Nn \cs_new:Nn
+ \cs_new_eq:NN \_@@_define_xml_content:Nn \cs_new:Nn
+} {
+ \cs_set_eq:NN \_@@_write_xml:n \use_none:n
+ \cs_set:Nn \_@@_define_xml_writer:Nn {\cs_new:Nn #1 {}}
+ \cs_set:Nn \_@@_define_xml_content:Nn {\cs_new:Nn #1 {}}
+}
+
+\cs_generate_variant:Nn \_@@_write_xml:n {e}
+% \end{macrocode}
+% \end{function}
+% \subsection{Number rounding}
+% As \pkg{siunitx} is implementing this, we use it instead of building our own mechanism.
+% \begin{macrocode}
+\RequirePackage{siunitx}
+% \end{macrocode}
+% \begin{function}{\_@@_number_format:nNn,\_@@_number_format:nNe}
+% \begin{macrocode}
+\cs_new:Nn \_@@_number_format:nNn {
+ \sisetup{
+ parse-numbers=true,
+ round-mode=places,
+ round-precision=#1,
+ round-pad = false,
+ group-digits=false,
+ minimum-decimal-digits=#1,
+ output-decimal-marker=.
+ }
+ \siunitx_number_format:nN {#3} #2
+}
+\cs_generate_variant:Nn \_@@_number_format:nNn {nNe}
+% \end{macrocode}
+% \end{function}
+% \begin{function}{\_@@_write_rounded:nnnn,\_@@_write_rounded:nnn}
+% \begin{macrocode}
+\cs_new:Nn \_@@_write_rounded:nnnn {
+ \_@@_number_format:nNe {#1} \l_@@_tmp_tl {#4}
+ \_@@_write_xml:e {<ram:#2#3>\l_@@_tmp_tl</ram:#2>}
+}
+\cs_new:Nn \_@@_write_rounded:nnn {
+ \_@@_write_rounded:nnnn {#1} {#2} {} {#3}
+}
+% \end{macrocode}
+% \end{function}
+% \subsection{XML indentation}
+% The indentation of the \XML does not really matter.
+% For debugging, it's a lot simpler to have it included and this also helped to maintain the structure of the code during development, so I decided to keep it.
+% The indentation is created using s bunch of auxiliary commands and variables which are defined here.
+% \begin{variable}{\g_@@_indent_int}
+% \begin{macrocode}
+\int_new:N \g_@@_indent_int
+% \end{macrocode}
+% \end{variable}
+% \begin{function}{\_@@_indent:,\_@@_xml_auto_indent:,\_@@_xml_newline_indent: }
+% \begin{macrocode}
+\cs_new:Nn \_@@_indent: {
+ \space\space
+}
+\cs_new:Nn \_@@_indent:n {
+ \prg_replicate:nn {#1} {\_@@_indent:}
+}
+\cs_new:Nn \_@@_xml_auto_indent: {
+ \_@@_indent:n {\g_@@_indent_int}
+}
+% \end{macrocode}
+% \end{function}
+% The idea was to redefine the \cs[no-index]{newlinechar} to automatically indent the following line.
+% \begin{macrocode}
+\cs_new:Nn \_@@_xml_newline_indent: {
+ \iow_newline: \_@@_xml_auto_indent:
+}
+% \end{macrocode}
+% \end{implementation}
+% Setting up the catcodes to simplify the \XML indentation.
+% \iffalse
+% \begin{macrocode}
+\cctab_new:N \g_@@_xml_cctab
+\begingroup%
+\endlinechar=13%
+\char_set_catcode:nn {13}{13}%
+\cctab_gsave_current:N \g_@@_xml_cctab%
+\endgroup
+% \end{macrocode}
+% \fi
+% \begin{documentation}
+% \subsection{Escaping macros inside \XML data}
+% \label{sec:disable_macros}
+% \DescribeMacro{\zugferd_disable_macros:}
+% Since we allow the use of \LaTeX{} code in some fields there has to be a mechanism to disable macros inside the \XML output.
+% The mechanism is created similar to the one by \pkg{hyperref}, and we also use some definitions from there to use those as a starting point.
+% To have a detailed list of the redefinition, please have a look at the implementation of this command.
+%
+% There exists a hook to extend or overwrite these definitions |zugferd/disable-macros|.
+% You can add own redefinitions using this. For example if you want to overwrite the setting mapping a \cs[no-index]{newline} to a new line char instead of space, you could add the following to your setup:
+% \begin{examplecode}
+% \hook_gput_code:nnn {zugferd/disable-macros}
+% {newline-to-LF}
+% {\def\newline{\iow_newline:}}
+% \end{examplecode}
+% \end{documentation}
+% \begin{implementation}
+% \begin{function}{\zugferd_disable_macros:}
+% The definition was mostly taken from \pkg{hyperref} \cite{hyperref}.
+% Most likely not all of these are required, but it's probably easier to take this as a reasonable choice instead of creating an own collection.
+% \iffalse
+% \begin{macrocode}
+%% modified list taken from hyperref.sty v7.01i
+%% Copyright
+%% 1995-2001 Sebastian Rahtz, with portions written by David Carlisle and Heiko Oberdiek
+%% 2001-2015 Heiko Oberdiek
+%% 2016-2019 Oberdiek Package Support Group
+%% 2019-2024 LaTeX Project
+%% modifications have been made to support the mechanism if hyperref is not loaded
+% \end{macrocode}
+% \fi
+% \begin{macrocode}
+\cs_new:Nn \zugferd_disable_macros: {
+ \let\{\textbraceleft
+ \let\}\textbraceright
+ \let\\\textbackslash
+ \let\#\textnumbersign
+ \let\$\textdollar
+% \end{macrocode}
+% This only is a part of the list.
+% There is no real use of printing the whole list, it's inside \file{zugferd.sty} anyway.
+% \comment
+% \begin{macrocode}
+ \let\%\textpercent
+ \let\&\textampersand
+ \let\_\textunderscore
+ \let\P\textparagraph
+ \let\ldots\textellipsis
+ \let\dots\textellipsis
+ \def\\{\space}%
+ \def\newline{\space}%
+ \def\TeX{TeX}%
+ \def\LaTeX{La\TeX}%
+ \def\LaTeXe{\LaTeX2e}%
+ \def\eTeX{e-\TeX}%
+ \def\SliTeX{Sli\TeX}%
+ \def\MF{Metafont}%
+ \def\MP{Metapost}%
+ \let\fontencoding\@gobble
+ \let\fontfamily\@gobble
+ \let\fontseries\@gobble
+ \let\fontshape\@gobble
+ \let\fontsize\@gobbletwo
+ \let\selectfont\@empty
+ \let\usefont\@gobblefour
+ \let\emph\@firstofone
+ \let\textnormal\@firstofone
+ \let\textrm\@firstofone
+ \let\textsf\@firstofone
+ \let\texttt\@firstofone
+ \let\textbf\@firstofone
+ \let\textmd\@firstofone
+ \let\textit\@firstofone
+ \let\textsc\@firstofone
+ \let\textsl\@firstofone
+ \let\textup\@firstofone
+ \let\normalfont\@empty
+ \let\rmfamily\@empty
+ \let\sffamily\@empty
+ \let\ttfamily\@empty
+ \let\bfseries\@empty
+ \let\mdseries\@empty
+ \let\itshape\@empty
+ \let\scshape\@empty
+ \let\slshape\@empty
+ \let\upshape\@empty
+ \let\em\@empty
+ \let\rm\@empty
+ \let\Huge\@empty
+ \let\LARGE\@empty
+ \let\Large\@empty
+ \let\footnotesize\@empty
+ \let\huge\@empty
+ \let\large\@empty
+ \let\normalsize\@empty
+ \let\scriptsize\@empty
+ \let\small\@empty
+ \let\tiny\@empty
+ \let\mathversion\@gobble
+ \let\phantom\@gobble
+ \let\vphantom\@gobble
+ \let\hphantom\@gobble
+ \let\ding\HyPsd@ding
+ \let\Cube\HyPsd@DieFace
+ \def\begin##1{\csname##1\endcsname}%
+ \def\end##1{\csname end##1\endcsname}%
+ \def\textcolor##1##{\@secondoftwo}%
+ \def\TextOrMath{\ifmmode\expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi}%
+ \let\foreignlanguage\@secondoftwo
+ \let\textlatin\@firstofone
+ \let\cyr\relax
+ \let\glqq\textglqq
+ \let\grqq\textgrqq
+ \let\glq\textglq
+ \let\grq\textgrq
+ \let\flqq\textflqq
+ \let\frqq\textfrqq
+ \let\flq\textflq
+ \let\frq\textfrq
+ \let\if@mid@expandable\@firstoftwo
+ \let\hspace\@gobble
+ \let\label\@gobble
+ \let\index\@gobble
+ \let\glossary\@gobble
+ \let\@mkboth\@gobbletwo
+ \let\leavevmode\@empty
+ \let\mbox\@empty
+ \def\halign{\@gobble}%
+ \let\Hy@SectionAnchorHref\@gobble
+ \let\ref\@gobble
+ \let\href\@gobble
+ \let\pageref\@gobble
+ \let\nameref\@gobble
+ \let\autoref\@gobble
+ \let\ignorespaces\relax
+ \let\ensuremath\@firstofone
+ \hook_use:n {zugferd/disable-macros}
+% \end{macrocode}
+% \endcomment
+% \begin{macrocode}
+}
+% \end{macrocode}
+% To provide a possibility to extend or overwrite the macro list a hook is added.
+% \begin{macrocode}
+\hook_new:n {zugferd/disable-macros}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+% \begin{documentation}
+% \section{Adding data to the XML}
+% All data which does not directly depend on amounts or specific items is provided using a key-value interface.
+% For some fields there is the option to define a global preset but locally overwrite it for a specific item.
+% This only applies to data fields used by the writing interfaces described in \autoref{sec:xml-interfaces}.
+%
+% This package is using the UN/CEFACT Cross Industry Invoice Syntax for the data.
+% Currently it is not planned to implement the UBL syntax as well, but generally this would be possible.
+%
+% In most cases this functionality will be used to change the tax setting or unit for a single item.
+% \autoref{sec:xml-interfaces} also provided an example for this.
+%
+% This section will now take all data which can be set using \cs{SetZUGFeRDData}.
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{variable}{\g_@@_notes_seq,\g_@@_id_tl,\g_@@_date_tl,\g_@@_subject_tl,\g_@@_fromaddress_tl,\g_@@_DocumentTypeCode_tl}
+% \begin{macrocode}
+\seq_new:N \g_@@_notes_seq
+\tl_new:N \g_@@_id_tl
+\tl_new:N \g_@@_date_tl
+\tl_new:N \g_@@_delivery_date_tl
+\tl_new:N \g_@@_subject_tl
+\tl_new:N \g_@@_fromaddress_tl
+\tl_new:N \g_@@_DocumentTypeCode_tl
+\tl_new:N \l_@@_currency_tl
+% \end{macrocode}
+% \end{variable}
+% \end{implementation}
+% \begin{documentation}
+% \subsection{General Invoicing Data}
+% Some of the general data currently supports only one value, which is alreay selected by default.
+% The interface already exists and may be extended later.
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+\keys_define:nn { zugferd } {
+%TODO define others
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \DescribeKeyOption{document-type=commercial-invoice}{commercial-invoice}
+% Select the document type. The only supported value currently is |commercial-invoice|. This will select the corresponding type code, which is 380.
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{id, document-type}
+% \begin{macrocode}
+ document-type .choice:,
+ document-type / commercial-invoice .code:n =
+ \tl_gset:Nn \g_@@_DocumentTypeCode_tl {380},
+ document-type .initial:n = commercial-invoice,
+% \end{macrocode}
+% \end{optionenv}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Invoice number/document ID}
+% \DescribeKeyOption*{id=komavar/\meta{document ID/invoice number}}{}
+% This has to be set. Leaving it empty will lead to an invalid \XMLfile.
+%
+% The value |komavar| would reference the data provided the KOMA-Script letter variabe |invoice|. In case you don't use \pkg{scrletter} you should not use this setting.
+% More information can be found in the documentation \cite{scrletter}.
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+ id .choice:,
+ id / komavar .code:n = \tl_gset:Nf \g_@@_id_tl {\scr@invoice@var},
+ id / unknown .code:n = \tl_gset:Nn \g_@@_id_tl {#1},
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Currency}
+% \DescribeKeyOption{currency=EUR/USD/CHF/€}{EUR}
+% Currently \pkg{zugferd} only supports one currency for an invoice. This might be extended later.
+% The currency is pre-configured to use Euro.
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+ currency .choices:nn = {EUR, USD, CHF} {
+ \tl_set_eq:NN \l_@@_currency_tl \l_keys_choice_tl
+ },
+ currency / € .meta:n = {currency = EUR},
+ currency / unknown .code:n = {
+ \exp_args:Nnnx \keys_if_choice_exist:nnnTF {zugferd} {unit} {
+ \str_uppercase:f {#1}
+ }
+ {\keys_set:nx { zugferd } {unit= {\str_uppercase:f {#1}}}}
+ {
+ \msg_warning:nnn { zugferd } {unknown-value} {currency} {#1}
+ \tl_set:Ne \l_@@_currency_tl {\str_uppercase:f {#1}}
+ }
+ },
+ currency .initial:n = EUR,
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Dates}
+% \DescribeKeyOption{date=auto/\meta{date formatted as YYYYMMDD}}{auto}
+% \DescribeKeyOption{delivery-date=auto/\meta{date formatted as YYYYMMDD}}{auto}
+% \DescribeKeyOption*{due-date=\meta{date formatted as YYYYMMDD}}{}*
+% Currently there are three kinds of dates implemented.
+% The XML-Standard requires them to use the structure \meta{YYYYMMDD}.
+% For the day this document was compiled this would be: \enquote{\InsertZUGFeRDData{date}} (\today).
+%
+% Instead of providing a date value directly it's also possible to use \cs[no-index]{today}.
+% This is done using the \value{auto} which is the default setting for \option{date} and \option{delivery-date}.
+% Please be aware, that this would change if you rebuild the document later. So you might want to use an actual value here.
+% \end{documentation}
+%
+% \begin{implementation}
+% \begin{optionenv}{date,delivery-date}
+% \begin{macrocode}
+ date .choice:,
+ date / auto .code:n = \tl_gset:Ne \g_@@_date_tl {
+ \the\year
+ \int_compare:nNnT {\month} < {10} {0} \the\month
+ \int_compare:nNnT {\day} < {10} {0}\the\day
+ },
+ date / unknown .code:n = \tl_gset:Nn \g_@@_date_tl {#1},
+ date .initial:n = auto,
+ delivery-date .choice:,
+ delivery-date / auto .code:n = \tl_gset:Ne \g_@@_delivery_date_tl {
+ \the\year
+ \int_compare:nNnT {\month} < {10} {0} \the\month
+ \int_compare:nNnT {\day} < {10} {0}\the\day
+ },
+ delivery-date / unknown .code:n = {
+ \tl_gset:Nn \g_@@_delivery_date_tl {#1}
+ },
+ delivery-date .initial:n = auto,
+ due-date .tl_gset:N = \_@@_due_date_tl,
+ due-date .initial:n =,
+% \end{macrocode}
+% \end{optionenv}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Payment terms}
+% \DescribeKeyOption{payment-terms=\meta{string}}{}
+% One option to set payment terms is the \option{due-date} mentioned before.
+% If this is not set or the setting is more complex one can use \option{payment-terms} to add more information.
+%
+% This setting is a string. In case there is expansion required this has to be done before.
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{payment-terms}
+% \begin{macrocode}
+ payment-terms .str_gset:N = \_@@_payment_terms_str,
+ payment-terms .initial:n =,
+% \end{macrocode}
+% \end{optionenv}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Notes: Adding additional information}
+% \DescribeKeyOption{subject=komavar/\meta{Tokenlist}}{}
+% \DescribeKeyOption{fromaddress=komavar/\meta{Tokenlist}}{}
+% \DescribeKeyOption{add-note=\meta{Tokenlist}}{}*
+% The ZUGFeRD example files\cite{zugferd-download} use all visible data to add them to the \XML as a note.
+% \option{subject} and \option{fromaddress} are used to support this.
+% The data should not be too relevant but \pkg{zugferd} want's to support adding additional data to the \XML using the note element.
+% So these fields can be left out but in case they are not empty, they will also be written to the \XML.
+%
+% The \value{komavar} corresponds to the mechanism provided by \pkg{scrletter}.
+% It accesses the variable expands it to be used directly.
+% If you don't use this package, you can ignore this setting or add content manually.
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{subject,fromaddress,add-note}
+% \begin{macrocode}
+ subject .choice:,
+ subject / komavar .code:n = {
+ \tl_gset:Nf \g_@@_subject_tl {\scr@subject@var}
+ },
+ subject / unknown .code:n = \tl_gset:Nn \g_@@_subject_tl {#1},
+ fromaddress .choice:,
+ fromaddress / komavar .code:n = \tl_gset:Nf \g_@@_fromaddress_tl
+ {\scr@fromaddress@var},
+ fromaddress / unknown .code:n = \tl_gset:Nn \g_@@_fromaddress_tl {#1},
+ add-note .code:n = \seq_gput_right:Nn \g_@@_notes_seq {#1},
+}
+\msg_new:nnnn {zugferd} {unknown-value} {
+ You~selected~a~#1~which~was~not~predefined.\\
+ I~will~directly~use~your~selection~'#1=#2'.
+ Please~ensure~the~selection~is~valid!
+} {
+ For~more~information~see~the~zugferd~documentation.
+}
+% \end{macrocode}
+% \end{optionenv}
+% Macro to write notes
+% \begin{macrocode}
+\cs_new:Nn \_@@_note_if_not_empty:N {%
+ \tl_if_empty:NF #1 {%
+ \_@@_write_note:n {#1}%
+ }%
+}%
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \subsection{Trade parties}
+% \label{sec:TradeParties}
+% The \XML scheme knows 6 different Trade Parties:
+% \begin{itemize}
+% \item Seller
+% \item Buyer
+% \item Payee
+% \item ShipTo
+% \item SellerTaxRepresentative
+% \end{itemize}
+%
+% \noindent Currently \pkg{zugferd} supports only Buyer, Seller and ShipTo, but can be easily extended to support the others as well.
+% The data for each party follows the same structure, except the \enquote{BuyerReference} which is described later in this section.
+%
+% Some of the data is optional for specific parties.
+% As this also depends on the selected scheme and version we will not list the details.
+% All fields for a trade party can be set using the \enquote{group} named by the party.
+% For example setting all the seller data is done in the following listing:
+% \begin{examplecode}
+% \SetZUGFeRDData{
+% seller/name = {peiTeX (Marei Peischl)},
+% seller/email = {invoicing@peitex.de},
+% seller/vatid = {DE123456789},
+% seller/contact= {Marei\\+4900000000\\marei@peitex.de},
+% seller/address = {Address Line 1\\Address Line 2},
+% seller/postcode = {20253},
+% seller/city ={Hamburg},
+% seller/country = {DE},
+% }
+% \end{examplecode}
+% \noindent All this data is saved within a property list, which is internally called \cs[no-index]{g_@@_\meta{seller/buyer/shipto}_prop}.
+% By default this property list is empty.
+% The users themselves have to ensure to add the required data.
+%
+% The outer braces are not required, if the data does not container an equal sign or a comma.
+% In case the final data is unknown, it's recommended to use them anyway.
+%
+% \DescribeKeyOption*{\meta{party}/name=\meta{name}}{}*
+% \DescribeKeyOption*{\meta{party}/email=\meta{email address}}{}*
+% \DescribeKeyOption*{\meta{party}/vatid=\meta{VAT ID}}{}*
+%
+% \DescribeKeyOption*{\meta{party}/address=\meta{address}}{}*
+% As shown in the example \option{address} can use two lines separted by |\\|.
+% It's possble to set all fields for all trade contacts, but e.\,g. for the |shipto|-party email and vatid will not be used in the \XML.
+%
+% Alternatively it's also possible to use \option{\meta{party}/lineone} and \option{\meta{party/linetwo}} separately.
+% This may be helpful if you use a custom input format. In any way you should ensure that all macros used within the data either are expandable or disabled using \cs[no-index]{zugferd_disable_macros:}.
+%
+% \DescribeKeyOption*{\meta{party}/postcode=\meta{postal code}}{}*
+% \DescribeKeyOption*{\meta{party}/city=\meta{city}}{}*
+% \DescribeKeyOption*{\meta{party}/country=\meta{country code}}{}*
+% The two letter country codes allowed here can be found in \cite{country-codes}.
+%
+% % \DescribeKeyOption*{\meta{party}/contact=\meta{Combined contact data}}{}*
+% The contact person can either be set using the combined structure similar to \option{\meta{party}/address}.
+% It either consists of 3 or 4 entries, depending on if a department should be used or not.
+%
+% \begin{examplecode}
+% \SetZUGFeRDData{
+% seller/contact = {
+% |\meta{contact-name}|\\
+% |\meta{contact-phone}|\\
+% |\meta{contact-email}|
+% },
+% seller/contact = {
+% |\meta{contact-name}|\\
+% |\meta{contact-department}|\\
+% |\meta{contact-phone}|\\
+% |\meta{contact-email}|
+% }
+% }
+% \end{examplecode}
+% \noindent As for \option{seller/address} it's also possible to set the keys directly:
+% \begin{examplecode}
+% \SetZUGFeRDData{
+% seller/contact-name= {|\meta{contact-name}|},
+% seller/contact-department = {|\meta{contact-department}|},
+% seller/cotact-phone ={|\meta{contact-phone}|},
+% seller/contact-email= {|\meta{contact-email}|}
+% }
+% \end{examplecode}
+% \end{documentation}
+% \begin{implementation}
+% ApplicableHeaderTradeAgreement
+%
+% Contains information on seller and buyer trade party:
+% \begin{itemize}
+% \item BuyerReference
+% \item SellerTradeParty
+% \item BuyerTradeParty
+% \end{itemize}
+%
+% \begin{optionenv}{\meta{party}/address}
+% \begin{variable}{\g_@@_seller_AddressData_prop,\g_@@_buyer_AddressData_prop,\g_@@_shipto_AddressData_prop}
+% Seller and Buyer are specified the same way.
+% \begin{macrocode}
+\clist_map_inline:nn {seller,buyer,shipto} {
+ \prop_new:c {g_@@_#1_AddressData_prop}
+ \keys_define:nn {zugferd / #1} {
+ address .code:n = {
+ \seq_set_split:Nnn \l_tmpa_seq {\\} {##1}
+ %TODO error if more than 2 lines or only 1
+ \keys_set:nx {zugferd / #1} {
+ lineone=\seq_item:Nn \l_tmpa_seq {1},
+ linetwo=\seq_item:Nn \l_tmpa_seq {2}
+ }
+ },
+ contact .code:n = {
+ \seq_set_split:Nnn \l_tmpa_seq {\\} {##1}
+ \int_compare:nNnTF {\seq_count:N \l_tmpa_seq} > {3} {
+ \keys_set:ne {zugferd/#1} {
+ contact-name = \seq_item:Nn \l_tmpa_seq {1},
+ contact-department = \seq_item:Nn \l_tmpa_seq {2},
+ contact-phone = \seq_item:Nn \l_tmpa_seq {3},
+ contact-email= \seq_item:Nn \l_tmpa_seq {4}
+ }
+ }{
+ \keys_set:ne {zugferd/#1} {
+ contact-name = \seq_item:Nn \l_tmpa_seq {1},
+ contact-phone = \seq_item:Nn \l_tmpa_seq {2},
+ contact-email= \seq_item:Nn \l_tmpa_seq {3}
+ }
+ }
+ },
+ unknown .code:n = \tl_if_blank:nF {##1} {
+ \prop_gput:cVe {g_@@_#1_AddressData_prop}
+ \l_keys_key_tl {\tl_trim_spaces:n {##1}}
+ }
+ }
+}
+% \end{macrocode}
+% \end{variable}
+% \end{optionenv}
+% \begin{function}{\_@@_PostalTradeAddress:N,\_@@_DefinedTradeContact:N}
+% Wrappers to map the property list items to the writing macro.
+% \begin{macrocode}
+\cs_new:Nn \_@@_PostalTradeAddress_short:N {
+ \exp_args:Ne \tl_if_blank:nF {\prop_item:Nn #1 {name}}
+ {<ram:Name>\prop_item:Nn #1 {name}</ram:Name>\iow_newline:\_@@_xml_auto_indent:}
+ \_@@_PostalTradeAddress:eeeee
+ {\prop_item:Nn #1 {postcode}}
+ {\prop_item:Nn #1 {lineone}}
+ {\prop_item:Nn #1 {linetwo}}
+ {\prop_item:Nn #1 {city}}
+ {\prop_item:Nn #1 {country}}
+}
+\cs_new:Nn \_@@_PostalTradeAddress:N {%
+ \_@@_PostalTradeAddress:eeeeeee
+ {\prop_item:Nn #1 {postcode}}
+ {\prop_item:Nn #1 {lineone}}
+ {\prop_item:Nn #1 {linetwo}}
+ {\prop_item:Nn #1 {city}}
+ {\prop_item:Nn #1 {country}}
+ {\prop_item:Nn #1 {email}}
+ {\prop_item:Nn #1 {vatid}}
+}%
+\cs_new:Nn \_@@_DefinedTradeContact:N {%
+ \_@@_DefinedTradeContact:eeee
+ {\prop_item:Nn #1 {contact-name}}
+ {\prop_item:Nn #1 {contact-department}}
+ {\prop_item:Nn #1 {contact-phone}}
+ {\prop_item:Nn #1 {contact-email}}
+}%
+% \end{macrocode}
+% \end{function}
+% \begin{macrocode}
+\cctab_begin:N \g_@@_xml_cctab%
+% \end{macrocode}
+% \iffalse
+% \_@@_PostalTradeAddress:nnnnnnn Name/Firma PLZ Zeile1 Zeile2 Ort Ländercode Email UID
+% \fi
+% \begin{macrocode}
+\_@@_define_xml_content:Nn \_@@_PostalTradeAddress:nnnnn {%
+ <ram:PostalTradeAddress>
+ \_@@_indent: <ram:PostcodeCode>#1</ram:PostcodeCode>
+ \tl_if_blank:nF {#2} {%
+ \_@@_indent: <ram:LineOne>#2</ram:LineOne>
+ }%
+ \tl_if_blank:nF {#3} {%
+ \_@@_indent: <ram:LineTwo>#3</ram:LineTwo>
+ }%
+ \_@@_indent: <ram:CityName>#4</ram:CityName>
+ \_@@_indent: <ram:CountryID>#5</ram:CountryID>
+ </ram:PostalTradeAddress>%
+}
+\_@@_define_xml_content:Nn \_@@_PostalTradeAddress:nnnnnnn {%
+ \_@@_PostalTradeAddress:nnnnn {#1} {#2} {#3} {#4} {#5}
+ \tl_if_empty:nF {#6} {%
+ <ram:URIUniversalCommunication>
+ \_@@_indent: <ram:URIID~schemeID="EM">#6</ram:URIID>
+ </ram:URIUniversalCommunication>%
+ }%
+ % TODO add support local tax id: schemaID="FC"
+ \tl_if_empty:nF {#7} {
+ <ram:SpecifiedTaxRegistration>
+ \_@@_indent: <ram:ID~schemeID="VA">#7</ram:ID>
+ </ram:SpecifiedTaxRegistration>%
+ }%
+}%
+%
+% Contact data phone/email to a specific contact person
+\_@@_define_xml_content:Nn \_@@_DefinedTradeContact:nnnn {%
+ % Do not print if name is empty
+ \tl_if_blank:nT {#1} {\use_none:nnn} %
+ \bool_if:NT \g_@@_writeTradeContact_bool {%
+ <ram:DefinedTradeContact>
+ \_@@_indent: <ram:PersonName>#1</ram:PersonName>
+ \tl_if_blank:nF {#2} {%
+ \_@@_indent: <ram:DepartmentName>#2</ram:DepartmentName>
+ }%
+ \tl_if_blank:nF {#3} {%
+ \_@@_indent: <ram:TelephoneUniversalCommunication>
+ \_@@_indent:n {2} <ram:CompleteNumber>#3</ram:CompleteNumber>
+ \_@@_indent: </ram:TelephoneUniversalCommunication>
+ }%
+ \tl_if_blank:nF {#4} {%
+ \_@@_indent: <ram:EmailURIUniversalCommunication>
+ \_@@_indent:n {2} <ram:URIID>#4</ram:URIID>
+ \_@@_indent: </ram:EmailURIUniversalCommunication>
+ }%
+ </ram:DefinedTradeContact>%
+ }%
+}%
+%
+\_@@_define_xml_writer:Nn \_@@_ApplicableHeaderTradeAgreement: {%
+ \_@@_write_xml:n {<ram:ApplicableHeaderTradeAgreement>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ <ram:BuyerReference>\g_@@_buyer_reference_tl</ram:BuyerReference>
+ <ram:SellerTradeParty>%
+ }%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ <ram:Name>\prop_item:Nn \g_@@_seller_AddressData_prop {name}</ram:Name>
+ \_@@_DefinedTradeContact:N \g_@@_seller_AddressData_prop%
+ \_@@_PostalTradeAddress:N \g_@@_seller_AddressData_prop%
+ }%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ </ram:SellerTradeParty>
+ <ram:BuyerTradeParty>%
+ }%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ <ram:Name>\prop_item:Nn \g_@@_buyer_AddressData_prop {name}</ram:Name>
+ \_@@_DefinedTradeContact:N \g_@@_buyer_AddressData_prop%
+ \_@@_PostalTradeAddress:N \g_@@_buyer_AddressData_prop%
+ }%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:BuyerTradeParty>}%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:ApplicableHeaderTradeAgreement>}
+ \_@@_ApplicableHeaderTradeDelivery:V \g_@@_delivery_date_tl%
+}%
+%
+%
+% delivery date
+\_@@_define_xml_content:Nn \_@@_ApplicableHeaderTradeDelivery:n {%
+ \bool_lazy_and:nnF {\prop_if_empty_p:N \g_@@_shipto_AddressData_prop}%
+ {\tl_if_blank_p:n {#1}}%
+ {%
+ \_@@_write_xml:n {<ram:ApplicableHeaderTradeDelivery>}%
+ \prop_if_empty:NF \g_@@_shipto_AddressData_prop {%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:n {<ram:ShipToTradeParty>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ \_@@_PostalTradeAddress_short:N \g_@@_shipto_AddressData_prop%
+ }%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:ShipToTradeParty>}%
+ \int_gdecr:N \g_@@_indent_int%
+ }%
+ \tl_if_blank:nF {#1} {%
+ \_@@_write_xml:n {%
+ \_@@_indent: <ram:ActualDeliverySupplyChainEvent>
+ \_@@_indent:n {2} <ram:OccurrenceDateTime>
+ \_@@_indent:n {3}<udt:DateTimeString~format="102">#1</udt:DateTimeString>
+ \_@@_indent:n {2} </ram:OccurrenceDateTime>
+ \_@@_indent: </ram:ActualDeliverySupplyChainEvent>%
+ }%
+ }%
+ \_@@_write_xml:n {</ram:ApplicableHeaderTradeDelivery>}%
+ }%
+}%
+%
+\cctab_end:
+\cs_generate_variant:Nn \_@@_DefinedTradeContact:nnnn {eeee}
+\cs_generate_variant:Nn \_@@_PostalTradeAddress:nnnnn {eeeee}%
+\cs_generate_variant:Nn \_@@_PostalTradeAddress:nnnnnnn {eeeeeee}
+\cs_generate_variant:Nn \_@@_ApplicableHeaderTradeDelivery:n {V}
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Buyer Reference}
+% \DescribeKeyOption*{buyer/reference=komavar/\meta{Reference}}{}
+% The reference field only exists for the |buyer| trade party.
+% Depending on the process it's required to use some unique identifier referring to the |buyer|.
+% Within Germany these numbers are called \enquote{Leitweg-ID}\cite{leitweg-id}.
+%
+% In any way the |buyer| may choose what is used here. Also may be some PO number or similar reference.
+%
+% As defined for other variables the \option{reference} can also use the \value{komavar} value to refer to the value of komavar |yourref|\cite{scrletter}.
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{buyer/reference}
+% \begin{macrocode}
+\tl_new:N \g_@@_buyer_reference_tl
+\keys_define:nn {zugferd/buyer} {
+ reference .choice:,
+ reference / komavar .code:n = {
+ \tl_gset:Nf \g_@@_buyer_reference_tl {\scr@yourref@var}
+ },
+ reference / unknown .code:n = {
+ \tl_gset:Nn \g_@@_buyer_reference_tl {#1}
+ }
+}
+% \end{macrocode}
+% \end{optionenv}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Payment Means}
+% \label{sec:PaymentMeans}
+% The payment means are selected by numeric codes.
+% Currently we support:
+% \begin{itemize}
+% \UseName{exp_args:Nnnc} \UseName{exp_args:co} {clist_map_inline:nn} {zugferd@paymentMeans@english} {\item #1}
+% \end{itemize}
+% Others may be added in the future but it's not planned to include a full list.
+%
+% The codes will automatically add the corresponding string inside the \enquote{Information} field.
+% The initial version only included German strings, but currently they are also included in English.
+% It's possible to overwrite them using the same structure:
+%
+% \begin{examplecode}
+% \setupZUGFeRDStrings{payment-means}{
+% 10 = Bargeld,
+% 58 = Zahlung per SEPA Überweisung.,
+% }
+% \end{examplecode}
+% The language selection is done using at hook executed at |\begin{document}| and will try to use the document's language.
+% If this is not defined English will be used.
+%
+% Internally the commands are predefined as a key-value list like the argument in the example above.
+% They macros are called \cs[no-index]{zugferd@paymentMeans@\meta{languagename}}.
+% Currently \pkg{zugferd} defines these for |english| and |german| (also |ngerman| as an compatibility alias).
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{payment-means}
+% \begin{macrocode}
+\ExplSyntaxOff
+\providecommand*{\zugferd@paymentMeans@german}{
+ 1 = Keine Zahlungsart definiert,
+ 10 = Bargeld,
+ 30 = Überweisung,
+ 42 = Zahlung an Bankkonto,
+ 48 = Kartenzahlung,
+ 49 = Lastschriftverfahren,
+ 57 = Dauerauftrag,
+ 58 = Zahlung per SEPA Überweisung.,
+ 59 = SEPA Lastschrift,
+ 97 = Ausgleich zwischen Partnern
+}
+\def\zugferd@paymentMeans@ngerman{\zugferd@paymentMeans@german}
+\providecommand*{\zugferd@paymentMeans@english}{
+ 1 = Instrument not defined,
+ 10 = In cash,
+ 30 = Credit Transfer,
+ 31 = Debit Transfer,
+ 42 = Payment to bank account,
+ 48 = Bank card,
+ 49 = Direct Debit,
+ 57 = Standing agreement,
+ 58 = SEPA credit transfer,
+ 59 = SEPA direct debit,
+ 97 = Clearing between partners
+}
+\ExplSyntaxOn
+\tl_new:N \g_@@_payment_means_tl
+\keys_define:nn {zugferd} {
+ payment-means / type .choices:nn = {1,10,30,42,48,49,57,58,59,97} {
+ \tl_gset_eq:NN \g_@@_payment_means_tl \l_keys_choice_tl
+ },
+ payment-means / unknown .code:n = {
+ \msg_warning:nnn { zugferd } {unknown-value} {payment-means} {#1}
+ \tl_gset:Nn \g_@@_payment_means_tl {\int_eval:n {#1}}
+ }
+}
+
+\clist_map_inline:nn {iban,account-holder,bic} {
+ \keys_define:nn {zugferd/payment-means} {
+ #1 .tl_gset:c = {g_@@_payment_#1_tl}
+ }
+}
+
+\prop_new:c {g_@@_payment-means_names_prop}
+\newcommand*{\setupZUGFeRDStrings}[2]{
+ \prop_gset_from_keyval:cn {g_@@_#1_names_prop} {
+ #2
+ }
+}
+
+\hook_gput_code:nnn {begindocument/end}{zugferd/payment-means}{
+ \prop_if_empty:cT {g_@@_payment-means_names_prop} {
+ \exp_args:Nne \setupZUGFeRDStrings{payment-means}{
+ \use:c {zugferd@paymentMeans@
+ \cs_if_exist:cTF {zugferd@paymentMeans@\languagename} {\languagename} {english}
+ }
+ }
+ }
+}
+% \end{macrocode}
+% \end{optionenv}
+% \end{implementation}
+% \begin{documentation}
+% \subsection{Variables which may be changed per invoice item}
+% Some settings may have the same value for all invoice items.
+% These are defined to take some preset but are set locally.
+% So it's possible to adjust them for a single invoice item if necessary.
+% An example is shown in \autoref{sec:xml-interfaces}.
+% \subsubsection{Units}
+% \DescribeKeyOption*{unit=hour/day/one/piece/\meta{unit code}}{}
+% The Faktur-X standard requires the unit to be selected.
+% These are called \enquote{/UN/CEFACT Common Codes} and can be found withtin \cite{unit-codes}.
+%
+% Currently \pkg{zugferd} supports |hour| (|HUR|), |day| (|DAY|), |one| (C62) and |piece| (H87).
+% For these the corresponding codes have been implemented within the package.
+% Other units can be selected using the codes listed in \cite{unit-codes}.
+%
+% This option is not case sensitive
+% The value is automatically converted to uppercase.
+% If the selected option is different from the predefined ones, there will be a warning, as \pkg{zugferd} does not know if the selection is valid or not.
+% \begin{NOTE}
+% additional source: http://www.unece.org/fileadmin/DAM/cefact/recommendations/rec20/rec20_Rev9e_2014.xls
+% \end{NOTE}
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{unit}
+% \begin{macrocode}
+\keys_define:nn { zugferd } {
+ unit .choices:nn = {HUR,DAY,C62,H87} {
+ \tl_set_eq:NN \l_@@_unit_code_tl \l_keys_choice_tl
+ },
+ unit / hour .meta:n = {unit=HUR},
+ unit / day .meta:n = {unit=DAY},
+ unit / one .meta:n= {unit= C62},
+ unit / piece .meta:n = {unit=H87},
+% \end{macrocode}
+% If unknown, the value is converted to uppercase and we use the selection directly.
+% There is a warning in that case
+% \begin{macrocode}
+ unit / unknown .code:n = {
+ \tl_set:Nx \l_tmpa_tl {\str_uppercase:f {#1}}
+ \exp_args:NnnV \keys_if_choice_exist:nnnTF {zugferd} {unit}
+ \l_tmpa_tl
+ {
+ \keys_set:ne { zugferd } {unit= {\l_tmpa_tl}}
+ } {
+ \msg_warning:nnn { zugferd } {unknown-unit} {#1}
+ \tl_set_eq:NN \l_@@_unit_code_tl \l_tmpa_tl
+ }
+ },
+ unit .usage:n = general,
+}
+
+\msg_new:nnnn {zugferd} {unknown-unit} {
+ You~selected~a~unit~which~was~not~predefined.\\
+ I~~will~directly~use~your~selection~'unit=#1'~as~Common~Code.
+ Please~ensure~the~selection~is~valid!
+} {
+ For~more~information~see~the~zugferd~documentation\\
+ and~the~/UN/CEFACT~Common~Code~list.
+}
+% \end{macrocode}
+% \end{optionenv}
+% \end{implementation}
+% \begin{documentation}
+% \subsubsection{Tax category and rate}
+% \label{sec:tax-category}
+% \DescribeKeyOption{tax/category=\meta{category code/alias}}{standard}*
+% The Tax data requires a category code. For details have a look at the Specification \cite[e.\,g. at][]{spec-xrechnung}.
+% \pkg{zugferd} implements all of those, but the user has to take care to select the correct one for each invoice item.
+% The example file includes 2 different VAT values using the same category.
+%
+% The labels have been chosen to simplify the usage. It's also possible to enter the codes directly.
+% This option is not case sensitive.
+% \begin{valuelist}
+% \item[standard] Standard rate and reduced rate item, |category=S|
+% \item[zero] Zero rated sale, |category=Z|
+% \item[exempt] Exempted from VAT. This requires a reason via \option{exemption-reason},|category=E|
+% \item[reverse-charge] Reverse Charge, |category=AE|
+% \item[intra-community\\\textnormal{or} EEA] Intra-Community Supply, |category=K|
+% \item[export] Free export item, tax not charged, |category=G|
+% \item[O] Services outside scope of tax
+% \item[canary-islands] Canary Islands general indirect tax, |category=L|
+% \item[ceuta\\\textnormal{or} melilla] Ceuta and Melilla, |category=M|
+% \end{valuelist}
+%
+% \end{documentation}
+% \begin{implementation}
+% \optionenv{category, exemption-reason,rate}
+% \begin{macrocode}
+\msg_new:nnnn {zugferd} {unknown-tax-category} {
+ You~selected~an~unknown~tax~category.\\
+ I~~will~directly~use~your~selection~'category=#1'~as~Code.\\
+ Please~ensure~the~selection~is~valid!
+} {
+ For~more~information~see~the~zugferd~documentation\\
+ and~the~corresponding~code~list.
+}
+\msg_new:nnnn {zugferd} {no-auto-exemption} {
+ You~selected~tax/category=#1~together~with~the~auto-exemption~option.\\
+ I~don't~have~any~pre-configured~exemption~setting~for~category=#1.\\
+ Please~make~sure~you~add~a~valid~setting~yourself.
+} {
+ For~more~information~see~the~zugferd~documentation.
+}
+\keys_define:nn { zugferd / tax } {
+ category .choices:nn = {S,Z,E,AE,K,G,O,L,M} {
+ \tl_set_eq:NN \l_@@_tax_category_code_tl \l_keys_choice_tl
+ \bool_if:NT \g_@@_auto_exemption_bool {
+ \keys_if_choice_exist:nnnTF {zugferd/tax} {exemption-reason-auto} {#1} {
+ \keys_set:nn {zugferd/tax} {exemption-reason-auto=#1}
+ } {
+ \msg_warning:nnn { zugferd } {no-auto-exemption} {#1}
+ }
+ }
+ },
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \DescribeKeyOption*{tax/exemption-reason=\meta{Text}}{}*
+% \DescribeKeyOption*{tax/exemption-reason-code=\meta{exemption reason code}}{}*
+% Add Reasons for a tax exempt, as required by |category=E,K,AE,G,O|.
+% This can either be added using a text (|exemption-reason|) or a predefined code (|exemption-reason-code|).
+% The codes are listed at \cite{VAT-exemption-codes}.
+%
+% In most common cases \pkg{zugferd} tries to automatically match them if the package option \option{auto-exemption} is enabled, which is the default.
+% In that case the following settings would apply:
+%
+% \begin{valuelist}
+% \item[S] \accessTaxExemptionReason{S}
+% \item[Z] Not configured.
+% \item[E] Not configured, as there are too many options.
+% \item[AE] \accessTaxExemptionReason{AE}
+% \item[K] \accessTaxExemptionReason{K}
+% \item[G] \accessTaxExemptionReason{G}
+% \item[O] \accessTaxExemptionReason{O}
+% \end{valuelist}
+%
+% In case there is no pre-configured selection \pkg{zugferd} will create a warning to remind the user to add a selection themselves.
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+ exemption-reason .tl_set:N = \l_@@_tax_exemption_reason_tl,
+ exemption-reason .initial:V = \c_empty_tl,
+ exemption-reason .usage:n = general,
+ exemption-reason-code .tl_set:N = \l_@@_tax_exemption_code_tl,
+ exemption-reason-code .initial:V = \c_empty_tl,
+ exemption-reason .usage:n = general,
+% \end{macrocode}
+% \changes{v0.7}{2024-09-10}{Added exemption-reason-auto key for pre-configured exemption-reasons.}
+% \begin{macrocode}
+ exemption-reason-auto .choice:,
+ exemption-reason-auto / S .code:n = {
+ \keys_set:nn {zugferd/tax} {exemption-reason=,exemption-reason-code=}
+ },
+ exemption-reason-auto / K .code:n = {
+ \keys_set:nn {zugferd/tax} {
+ exemption-reason= Intra-Community~Supply,
+ exemption-reason-code={vatex-eu-ic}
+ }
+ },
+ exemption-reason-auto / AE .code:n = {
+ \keys_set:nn {zugferd/tax}{
+ exemption-reason=Reverse~Charge,
+ exemption-reason-code={vatex-eu-ae}
+ }
+ },
+ exemption-reason-auto / G .code:n = {
+ \keys_set:nn {zugferd/tax}{
+ exemption-reason=Export~outside~the~EU,
+ exemption-reason-code={vatex-eu-g}
+ }
+ },
+ exemption-reason-auto / O .code:n = {
+ \keys_set:nn {zugferd/tax}{
+ exemption-reason=No~subject~to~VAT,
+ exemption-reason-code={vatex-eu-o}
+ }
+ },
+ standard .meta:n = {category=S},
+ zero .meta:n = {category=Z},
+ exempt .meta:n = {category=E},
+ reverse-charge .meta:n = {category=AE},
+ intra-community .meta:n = {category=K},
+ EEA .meta:n = {category=K},
+ export .meta:n = {category=G},
+ canary-islands .meta:n = {category=L},
+ ceuta .meta:n = {category=M},
+ melilla .meta:n = {category=M},
+ category / unknown .code:n = {
+ \exp_args:Nnnx \keys_if_choice_exist:nnnTF {zugferd} {category}
+ {\str_uppercase:f {#1}}
+ {
+ \keys_set:nx { zugferd } {category= {\str_uppercase:f {#1}}}
+ } {
+ \msg_warning:nnn { zugferd } {unknown-tax-category} {#1}
+ }
+ },
+ category .initial:n = S,
+ category .usage:n = general,
+% \end{macrocode}
+% \end{implementation}
+% \begin{documentation}
+% \DescribeKeyOption{tax/rate=\meta{floating point}}{19}*
+% The value given will be used for tax calculation.
+% By default it's configured to |19| to match the German standard VAT rate.
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+ rate .fp_set:N = \l_@@_tax_rate_fp,
+ rate .initial:n = 19,
+ rate .usage:n = general,
+}
+% \end{macrocode}
+% \endoptionenv
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_write_inline:nn {
+ \tl_if_blank:nF {#2} {
+ <#1>#2</#1>
+ }
+}
+\cs_generate_variant:Nn \_@@_write_inline:nn {ne}
+\_@@_define_xml_writer:Nn \_@@_write_inline_i:nn {
+ \_@@_indent: \_@@_write_inline:nn {#1} {#2}
+}
+\cctab_begin:N \g_@@_xml_cctab%
+%
+\_@@_define_xml_writer:Nn \_@@_write_note:n {%
+ \begingroup%
+ \let\\\iow_newline:%
+ \_@@_write_xml:e {%
+ <ram:IncludedNote>
+ \_@@_indent: <ram:Content>
+ #1
+ \_@@_indent: </ram:Content>
+ </ram:IncludedNote>%
+ }%
+ \endgroup%
+}%
+%
+%
+\begingroup%
+\char_set_catcode_other:N \#%
+\char_set_catcode:nn {32}{10}%
+\_@@_define_xml_writer:Nn \_@@_insert_Header: {%
+ \_@@_write_xml:e {%
+ <?xml version='1.0' encoding='UTF-8' ?>
+ <rsm:CrossIndustryInvoice %
+ xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" %
+ xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" %
+ xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" %
+ xmlns:xs="http://www.w3.org/2001/XMLSchema" %
+ xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">%
+ }%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:n {<rsm:ExchangedDocumentContext>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ \str_if_empty:NF \g_@@_businessProcessId_str {%
+ <ram:BusinessProcessSpecifiedDocumentContextParameter>
+ \_@@_indent: <ram:ID>\g_@@_businessProcessId_str</ram:ID>
+ </ram:BusinessProcessSpecifiedDocumentContextParameter>
+ }%
+ <ram:GuidelineSpecifiedDocumentContextParameter>
+ \_@@_indent: <ram:ID>\g_@@_format_str</ram:ID>
+ </ram:GuidelineSpecifiedDocumentContextParameter>%
+ }%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</rsm:ExchangedDocumentContext>}%
+}%
+\endgroup%
+\_@@_define_xml_writer:Nn \_@@_insert_FrontMatter: {%
+ \_@@_write_xml:n {<rsm:ExchangedDocument>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ <ram:ID>\g_@@_id_tl</ram:ID>
+ <ram:TypeCode>\g_@@_DocumentTypeCode_tl</ram:TypeCode>
+ <ram:IssueDateTime>
+ % space required!
+ \_@@_indent:<udt:DateTimeString~format="102">\g_@@_date_tl</udt:DateTimeString>
+ </ram:IssueDateTime>%
+ }%
+ \_@@_note_if_not_empty:N \g_@@_subject_tl%
+ \_@@_note_if_not_empty:N \g_@@_fromaddress_tl%
+ \seq_map_inline:Nn \g_@@_notes_seq {%
+ \_@@_write_note:n {##1}%
+ }%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ </rsm:ExchangedDocument>
+ <rsm:SupplyChainTradeTransaction>%
+ }%
+ \int_gincr:N \g_@@_indent_int%
+}%
+%
+% footer
+\_@@_define_xml_writer:Nn \_@@_insert_Footer: {%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</rsm:SupplyChainTradeTransaction>}%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</rsm:CrossIndustryInvoice>}%
+}%
+\cctab_end:
+% \end{macrocode}
+%
+% \subsection{Invoice Items}
+% Each item consists of 5 parts:
+% \begin{itemize}
+% \item AssociatedDocumentLineDocument
+% \item SpecifiedTradeProduct
+% \item SpecifiedLineTradeAgreement
+% \item SpecifiedLineTradeDelivery
+% \item SpecifiedLineTradeSettlement
+% \end{itemize}
+% These are implemented as separate commands to be more flexible.
+% The wrapper command is called \cs[no-index]{@@_insert_TradeLineItem:nnnnnn} and is created to be used in your own invoicing package-
+% \begin{macrocode}
+\cctab_begin:N \g_@@_xml_cctab%
+% \end{macrocode}
+% \begin{function}{\_@@_AssociatedDocumentLineDocument:n}
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_AssociatedDocumentLineDocument:n {%
+ <ram:AssociatedDocumentLineDocument>
+ \_@@_indent: <ram:LineID>#1</ram:LineID>
+ </ram:AssociatedDocumentLineDocument>%
+}%
+% \end{macrocode}
+% \end{function}
+% \begin{function}{\_@@_SpecifiedTradeProduct:nn}
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_SpecifiedTradeProduct:nn {%
+ <ram:SpecifiedTradeProduct>
+ \tl_if_empty:nF {#1} {%
+ \_@@_indent: <ram:SellerAssignedID>#1</ram:SellerAssignedID>
+ }%
+ \_@@_indent: <ram:Name>#2</ram:Name>
+ </ram:SpecifiedTradeProduct>%
+}%
+% \end{macrocode}
+% \end{function}
+% \begin{function}{\_@@_ProductTradePrice:nn}
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_ProductTradePrice:nn {%
+ <ram:\str_uppercase:n #1PriceProductTradePrice>
+ \_@@_indent: <ram:ChargeAmount>#2</ram:ChargeAmount>
+ </ram:\str_uppercase:n #1PriceProductTradePrice>%
+}%
+% \end{macrocode}
+% \end{function}
+% \begin{function}{\_@@_SpecifiedLineTradeAgreement:nn}
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_SpecifiedLineTradeAgreement:nn {%
+ <ram:SpecifiedLineTradeAgreement>
+ \_@@_indent:<ram:GrossPriceProductTradePrice>
+ \_@@_indent:n {2} <ram:ChargeAmount>#1</ram:ChargeAmount>
+ \_@@_indent:</ram:GrossPriceProductTradePrice>
+ \_@@_indent:<ram:NetPriceProductTradePrice>
+ \_@@_indent:n {2} <ram:ChargeAmount>#2</ram:ChargeAmount>
+ \_@@_indent:</ram:NetPriceProductTradePrice>
+ </ram:SpecifiedLineTradeAgreement>
+}%
+% \end{macrocode}
+% \end{function}
+%%%\subsubsection{SpecifiedLineTradeDelivery}%:nn <unit code > <number>
+% \begin{function}{\_@@_SpecifiedLineTradeDelivery:nn}
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_SpecifiedLineTradeDelivery:nn {%
+ <ram:SpecifiedLineTradeDelivery>
+ % SPACE!
+ \_@@_indent: <ram:BilledQuantity~unitCode="#1">#2</ram:BilledQuantity>
+ </ram:SpecifiedLineTradeDelivery>
+}%
+% \end{macrocode}
+% \end{function}
+% \begin{function}{\_@@_SpecifiedLineTradeSettlement:nnn,\_@@_SpecifiedLineTradeSettlement:Vnn}
+% \begin{macrocode}
+\_@@_define_xml_content:Nn \_@@_SpecifiedLineTradeSettlement:nnn {%
+ <ram:SpecifiedLineTradeSettlement>
+ \_@@_indent: <ram:ApplicableTradeTax>
+ %BT-151
+ \_@@_indent:n {2} <ram:TypeCode>VAT</ram:TypeCode>
+ %BT-151
+ \_@@_indent:n {2} <ram:CategoryCode>#1</ram:CategoryCode>
+ %BT-152
+ \_@@_indent:n {2} <ram:RateApplicablePercent>#2</ram:RateApplicablePercent>
+ \_@@_indent: </ram:ApplicableTradeTax>
+ \_@@_indent: <ram:SpecifiedTradeSettlementLineMonetarySummation>
+ % BT-131
+ \_@@_indent:n {2} <ram:LineTotalAmount>#3</ram:LineTotalAmount>
+ \_@@_indent: </ram:SpecifiedTradeSettlementLineMonetarySummation>
+ </ram:SpecifiedLineTradeSettlement>%
+}%
+% \end{macrocode}
+% \begin{macrocode}
+\cctab_end:
+\cs_generate_variant:Nn \_@@_SpecifiedLineTradeSettlement:nnn {Vnn}
+% \end{macrocode}
+% \end{function}
+% The exemption reason was placed wrong with the pre-CTAN release.
+% This was fixed in August 2024.
+% The old macro will be kept for a bit longer but will be removed soon.
+% Please update your own implementations accordingly.
+% \changes{v0.4}{2024-08-22}{Deprecate old syntax and add public interfaces.}
+% \begin{macrocode}
+\cs_new:Nn \_@@_SpecifiedLineTradeSettlement:nnnn {
+ \msg_warning:nnnn {zugferd} {macro-deprecated}
+ { \_@@_SpecifiedLineTradeSettlement:nnnn }
+ { \_@@_SpecifiedLineTradeSettlement:nnn }
+ \_@@_SpecifiedLineTradeSettlement:nnn {#2} {#3} {#4}
+}
+\cs_generate_variant:Nn \_@@_SpecifiedLineTradeSettlement:nnnn {VVnn}
+% \end{macrocode}
+% \end{implementation}
+% \begin{implementation}
+% \begin{function}{ \_@@_insert_TradeLineItem:nnnnnn,\@@_write_TradeLineItem:nnnnnn}
+% Writing an invoice item using the helper commands defined before, to the \XMLfile.
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_insert_TradeLineItem:nnnnnn {
+ \_@@_write_xml:n {<ram:IncludedSupplyChainTradeLineItem>}
+ \int_gincr:N \g_@@_indent_int
+ \_@@_write_xml:e {\_@@_AssociatedDocumentLineDocument:n {#1}}%
+
+ \begingroup
+ \zugferd_disable_macros:
+ \_@@_write_xml:e {\_@@_SpecifiedTradeProduct:nn {#2} {#3}}
+ \endgroup
+
+ \_@@_write_xml:n {<ram:SpecifiedLineTradeAgreement>}
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {\_@@_ProductTradePrice:nn {net} {#4}}
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:SpecifiedLineTradeAgreement>}
+ \_@@_write_xml:e {%
+ \_@@_SpecifiedLineTradeDelivery:nn { \l_@@_unit_code_tl } {#5}
+ \_@@_SpecifiedLineTradeSettlement:Vnn \l_@@_tax_category_code_tl %
+ { \fp_use:N \l_@@_tax_rate_fp} {#6}
+ }%
+ \int_gdecr:N \g_@@_indent_int
+ \_@@_write_xml:n {</ram:IncludedSupplyChainTradeLineItem>}
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+% \begin{implementation}
+% ApplicableHeaderTradeSettlement
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_SpecifiedTradeSettlementHeaderMonetarySummation:nnnnnnnn {%
+ \_@@_write_xml:n {<ram:SpecifiedTradeSettlementHeaderMonetarySummation>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_rounded:nnn {2} {LineTotalAmount} {#1}
+ \_@@_write_rounded:nnn {2} {ChargeTotalAmount} {#2}
+ \_@@_write_rounded:nnn {2} {AllowanceTotalAmount} {#3}
+ \_@@_write_rounded:nnn {2} {TaxBasisTotalAmount} {#4}
+ \_@@_write_rounded:nnnn {2} {TaxTotalAmount} {~currencyID="\l_@@_currency_tl "} {#5}
+ \_@@_write_rounded:nnn {2} {GrandTotalAmount} {#6}
+ \_@@_write_rounded:nnn {2} {TotalPrepaidAmount} {#7}
+ \_@@_write_rounded:nnn {2} {DuePayableAmount} {#8}
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:SpecifiedTradeSettlementHeaderMonetarySummation>}%
+}%
+% ApplicableTradeTax CategoryCode Rate BaseAmount Result
+\_@@_define_xml_writer:Nn \_@@_ApplicableTradeTax:nnnn {%
+ \_@@_write_xml:n {<ram:ApplicableTradeTax>}
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_rounded:nnn {2} {CalculatedAmount} {#4}%BT117
+ \_@@_write_xml:n {<ram:TypeCode>VAT</ram:TypeCode>}%BT118
+ \tl_if_blank:VF \l_@@_tax_exemption_reason_tl {%BT-120
+ \_@@_write_xml:e {<ram:ExemptionReason>
+ \l_@@_tax_exemption_reason_tl
+ </ram:ExemptionReason>}
+ }
+ {{\_@@_write_rounded:nnn {2} {BasisAmount} {#3}}}%BT-116
+ \_@@_write_xml:e {<ram:CategoryCode>#1</ram:CategoryCode>}%BT-118
+ \tl_if_blank:VF \l_@@_tax_exemption_code_tl {%BT121
+ \_@@_write_xml:e {<ram:ExemptionReasonCode>
+ \l_@@_tax_exemption_code_tl
+ </ram:ExemptionReasonCode>}
+ }
+ \_@@_write_xml:n {<ram:RateApplicablePercent>#2</ram:RateApplicablePercent>}%BT-119
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:ApplicableTradeTax>}
+}%
+%
+\cctab_begin:N \g_@@_xml_cctab%
+% ApplicableHeaderTradeSettlement
+\_@@_define_xml_writer:Nn \_@@_ApplicableHeaderTradeSettlement:nnnnnnnn {%
+
+}%
+% \end{macrocode}
+% ApplicableHeaderTradeSettlement needs to be splitted to be used in separate parts of the tabular.
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_ApplicableHeaderTradeSettlement_start: {%
+ \_@@_write_xml:n {<ram:ApplicableHeaderTradeSettlement>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {<ram:InvoiceCurrencyCode>\l_@@_currency_tl</ram:InvoiceCurrencyCode>}%
+}%
+\_@@_define_xml_writer:Nn \_@@_ApplicableHeaderTradeSettlement_stop: {%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:ApplicableHeaderTradeSettlement>}%
+}%
+% \end{macrocode}
+% SpecifiedTradePaymentTerms
+% \begin{macrocode}
+\_@@_define_xml_writer:Nn \_@@_SpecifiedTradePaymentTerms:nn {%
+ \_@@_write_xml:n {<ram:SpecifiedTradePaymentTerms>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ \tl_if_blank:nF {#1} {%
+ <ram:Description>#1</ram:Description>%
+ }%
+ \tl_if_blank:nF {#2} {%
+ <ram:DueDateDateTime>
+ \_@@_indent: <udt:DateTimeString~format="102">#2</udt:DateTimeString>
+ </ram:DueDateDateTime>%
+ }%
+ }%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:SpecifiedTradePaymentTerms>}%
+}%
+%
+%
+% sums
+\_@@_define_xml_writer:Nn \_@@_SpecifiedTradeSettlementPaymentMeans:nnn {%
+ \bool_if:NT \g_@@_writePaymentMeans_bool {%
+ \_@@_write_xml:n {<ram:SpecifiedTradeSettlementPaymentMeans>}%
+ \int_gincr:N \g_@@_indent_int%
+ \_@@_write_xml:e {%
+ <ram:TypeCode>\g_@@_payment_means_tl</ram:TypeCode>
+ \_@@_write_inline:ne {ram:Information} {\prop_item:cV {g_@@_payment-means_names_prop} \g_@@_payment_means_tl}%
+ \tl_if_blank:nF {#1#2} {%
+ <ram:PayeePartyCreditorFinancialAccount>
+ \_@@_write_inline_i:nn {ram:IBANID} {#2}
+ \_@@_write_inline_i:nn {ram:AccountName} {#1}
+ </ram:PayeePartyCreditorFinancialAccount>
+ }%
+ \tl_if_blank:nF {#3} {%
+ <ram:PayeeSpecifiedCreditorFinancialInstitution>
+ \_@@_write_inline_i:nn {ram:BICID} {#3}
+ </ram:PayeeSpecifiedCreditorFinancialInstitution>%
+ }%
+ }%
+ \int_gdecr:N \g_@@_indent_int%
+ \_@@_write_xml:n {</ram:SpecifiedTradeSettlementPaymentMeans>}%
+ }%
+}%
+\cctab_end:
+\cs_generate_variant:Nn \_@@_SpecifiedTradePaymentTerms:nn {VV}
+\_@@_define_xml_writer:Nn \_@@_SpecifiedTradePaymentTerms: {
+ \_@@_SpecifiedTradePaymentTerms:VV \_@@_payment_terms_str \_@@_due_date_tl
+}
+% \end{macrocode}
+% \begin{function}{\_@@_SpecifiedTradeSettlementPaymentMeans:}
+% \begin{macrocode}
+\cs_generate_variant:Nn \_@@_SpecifiedTradeSettlementPaymentMeans:nnn {vvv}
+\_@@_define_xml_writer:Nn \_@@_SpecifiedTradeSettlementPaymentMeans: {
+ \tl_if_blank:VF \g_@@_payment_means_tl {
+ \_@@_SpecifiedTradeSettlementPaymentMeans:vvv
+ {g_@@_payment_account-holder_tl} {g_@@_payment_iban_tl} {g_@@_payment_bic_tl}
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+% \begin{implementation}
+% \begin{macrocode}
+\msg_new:nnn {zugferd} {macro-deprecated} {
+ The~function~#1~is~deprecated.\\
+ It~was~replaced~by~#2.\\
+ Please~adjust~your~mechanism~to~use~the~new~version.
+}
+% \end{macrocode}
+% \end{implementation}
+% \iffalse
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \fi
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/zugferd/zugferd.ins b/macros/latex/contrib/zugferd/zugferd.ins
new file mode 100644
index 0000000000..207227702a
--- /dev/null
+++ b/macros/latex/contrib/zugferd/zugferd.ins
@@ -0,0 +1,19 @@
+\input docstrip
+
+\preamble
+
+Copyright (C) 2023--2024 by Marei Peischl (peiTeX) <marei@peitex.de>
+
+\endpreamble
+
+\askforoverwritefalse
+
+\usedir{tex/latex/zugferd}
+
+\generate{
+ \file{zugferd.sty}{
+ \from{zugferd.dtx}{package}
+ }
+}
+
+\endbatchfile
diff --git a/macros/latex/contrib/zugferd/zugferd.pdf b/macros/latex/contrib/zugferd/zugferd.pdf
new file mode 100644
index 0000000000..3d3801ab7b
--- /dev/null
+++ b/macros/latex/contrib/zugferd/zugferd.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md
index c84cd4389b..8d36def78a 100644
--- a/macros/latex/required/babel/base/README.md
+++ b/macros/latex/required/babel/base/README.md
@@ -1,6 +1,6 @@
-## Babel 24.7
+## Babel 24.10
-2024-06-26
+2024-09-18
`babel` is the multilingual framework for localizing documents in
LaTeX, LuaLaTeX, XeLaTeX. It manages culturally-determined
@@ -10,9 +10,9 @@ languages even work with Plain formats.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 24.7 are described in:
+Changes in version 24.10 are described in:
-https://latex3.github.io/babel/news/whats-new-in-babel-24.7.html
+https://latex3.github.io/babel/news/whats-new-in-babel-24.10.html
Apart from the manual, you can find information on some aspects of babel at:
@@ -43,15 +43,16 @@ You may also report them to the current maintainer more informally on:
https://latex3.github.io/babel/contact.html
-Bugs related to specific languages are best reported to their
+Bugs related to specific languages are best reported to theirs
respective authors.
### Summary of latest changes
```
-24.7 2024-06-26
- * Improvements in some locales:
- - Filipino (thanks to Leothelion, @ponte-vecchio)
- - Line breaking in Blin, Geez, Tigre, Tigrinya, Wolaytta.
+24.10 2024-09-18
+ * \localename replaces the buggy \languagename. Added
+ \mainlocalename.
+ * \babelhyphenmins for better control of those parameters and,
+ in lualatex, \hyphenationmin.
```
### Previous changes
diff --git a/macros/latex/required/babel/base/babel-code.pdf b/macros/latex/required/babel/base/babel-code.pdf
index 8be7825803..4d2c31ffb5 100644
--- a/macros/latex/required/babel/base/babel-code.pdf
+++ b/macros/latex/required/babel/base/babel-code.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx
index 19db345759..9c41d0ed27 100644
--- a/macros/latex/required/babel/base/babel.dtx
+++ b/macros/latex/required/babel/base/babel.dtx
@@ -32,7 +32,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2024/06/26 v24.7 The Babel package]
+\ProvidesFile{babel.dtx}[2024/09/18 v24.10 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -50,6 +50,8 @@
{NotoSans-Regular.ttf}
\setmonofont[Scale=.86, FakeStretch=.97]{DejaVu Sans Mono}
\raggedright
+\frenchspacing
+\addtolength{\oddsidemargin}{1em}
\addtolength{\textwidth}{25pt}
\addtolength{\textheight}{3.5cm}
\addtolength{\topmargin}{-2cm}
@@ -65,7 +67,7 @@
\newcommand*\m[1]{\mbox{$\langle$\normalfont\itshape#1\/$\rangle$}}
\newcommand*\langlist{%
\meta{language}\texttt{,}\meta{language}\texttt{,}...}
-\newcommand*\langvar{\m{lang}}
+\newcommand*\langvar{\m{language}}
\newcommand*\Lopt[1]{\textsf{#1}}
\newcommand*\Lenv[1]{\texttt{#1}}
\newcommand*\menv[1]{\char`\{#1\char`\}}
@@ -75,7 +77,6 @@
\newcommand*\file[1]{\texttt{#1}}
\newcommand*\cls[1]{\texttt{#1}}
\newcommand*\pkg[1]{\texttt{#1}}
-\addtolength{\oddsidemargin}{1em}
\setlength{\leftmargini}{1.5em}
\usepackage{framed}
\usepackage{multicol}
@@ -128,6 +129,13 @@
\let\bblexv\endverbatim
\newcommand\setengine{\def\engine}
\let\engine\relax
+\begingroup
+ \catcode`\<=13
+ \catcode`\>=13
+ \catcode`\|=13
+ \AtBeginDocument{%
+ \gdef|{\verb|\def<##1>{$\langle${\rmfamily\itshape##1}$\rangle$}}}
+\endgroup
\def\verbatim{%
\begin{shaded*}%
\ifx\engine\relax\else
@@ -160,7 +168,10 @@
\def\args#1{%
\def\bbl@tempa{#1}%
\ifx\bbl@tempa\@empty\else#1\vskip1ex\fi\ignorespaces}
-\begingroup % Changes to ltxdoc
+% Changes to doc.sty (add <<...>> syntax)
+\def\Module#1{%
+ \mod@math@codes$\langle${\color{thered}$\mathsf{#1}$}$\rangle$}
+\begingroup
\catcode`\<\active
\catcode`\>\active
\gdef\check@plus@etc{%
@@ -174,8 +185,8 @@
\fi\fi\fi
\bbl@next}
\gdef\var@module#1#2#3>>{%
- $\langle$\pm@module#2#3>$\rangle$%
- \ifx*#2\ $\equiv$\fi}
+ $\langle$\pm@module#2#3>$\rangle$%
+ \ifx*#2\ $\equiv$\fi}
\endgroup
\renewcommand*\l@section[2]{%
\ifnum \c@tocdepth >\z@
@@ -199,9 +210,7 @@
\makeatother
\begin{document}
\title{Babel, a multilingual package for use with \LaTeX's standard
- document classes\thanks{During the development ideas from Nico
- Poppelier, Piet van Oostrum and many others have been used.
- Bernd Raichle has provided many helpful suggestions.}}
+ document classes.}
\author{Johannes Braams\\
Javier Bezos}
@@ -275,6 +284,19 @@ guide focuses on internationalization and localization with \LaTeX{}
and \pdftex, \xetex{} and \luatex{} with the \babel{} package. There
are also some notes on its use with e-Plain and pdf-Plain \TeX.
+\item[\sffamily\color{messages}I only need learn the most basic
+features.] The first subsections (1.1-1.3) describe the traditional way
+of loading a language (with |ldf| files), which is usually all you need.
+The alternative way based on |ini| files, which complements the
+previous one (it does \textit{not} replace it, although it is still
+necessary in some languages), is described below; go to \ref{inifiles}.
+
+\item[\sffamily\color{messages}I don’t like manuals. I prefer sample
+ files.] This manual contains lots of examples and tips, but in GitHub
+ there are many
+ \href{https://github.com/latex3/babel/tree/master/samples}{sample
+ files}.
+
\item[\sffamily\color{messages}What if I’m interested only in the
latest changes?] Changes and new features with relation to version 3.8
are highlighted with \New{X.XX}\hspace{-.5em}
@@ -306,19 +328,6 @@ maintained separately
\item[\sffamily\color{messages}How can I contribute a new
language?] See section \ref{contribute} for contributing a language.
-\item[\sffamily\color{messages}I only need learn the most basic
-features.] The first subsections (1.1-1.3) describe the traditional way
-of loading a language (with |ldf| files), which is usually all you need.
-The alternative way based on |ini| files, which complements the
-previous one (it does \textit{not} replace it, although it is still
-necessary in some languages), is described below; go to \ref{inifiles}.
-
-\item[\sffamily\color{messages}I don’t like manuals. I prefer sample
- files.] This manual contains lots of examples and tips, but in GitHub
- there are many
- \href{https://github.com/latex3/babel/tree/master/samples}{sample
- files}.
-
\item[\sffamily\color{messages}Where is the code?]
Run |lualatex --jobname=babel-code \let\babelcode\relax\input{babel.dtx}|.
\end{description}
@@ -651,6 +660,100 @@ _\foreignlanguage{spanish}{Español}_.
for |lubakatanga|). See section \ref{bcp47} for further details.
\end{note}
+\subsection{Languages supported by \babel{} with \textsf{ldf} files}
+
+(To be updated.) In the following table most of the languages supported
+by \babel{} with and |.ldf| file are listed, together with the names of
+the option which you can load \babel\ with for each language. Note this
+list is open and the current options may be different. It does not
+include |ini| files (see below). Except in a few cases (eg, |ngerman|,
+|serbianc|, |acadian|) names are those of the Unicode CLDR (or based on
+them).
+
+\begin{description}
+\itemsep=-\parskip
+\sffamily
+\item[Afrikaans] afrikaans
+\item[Azerbaijani] azerbaijani
+\item[Basque] basque
+\item[Breton] breton
+\item[Bulgarian] bulgarian
+\item[Catalan] catalan
+\item[Croatian] croatian
+\item[Czech] czech
+\item[Danish] danish
+\item[Dutch] dutch
+\item[English] english, american (\textit{preferred to} USenglish), british (\textit{preferred to}
+ UKenglish), canadian, australian, newzealand
+\item[Esperanto] esperanto
+\item[Estonian] estonian
+\item[Finnish] finnish
+\item[French] french, acadian
+\item[Galician] galician
+\item[German] ngerman, naustrian, german, austrian
+\item[Greek] greek, polutonikogreek
+\item[Hebrew] hebrew
+\item[Icelandic] icelandic
+\item[Indonesian] indonesian
+\item[Interlingua] interlingua
+\item[Irish Gaelic] irish
+\item[Italian] italian
+\item[Latin] latin
+\item[Lower Sorbian] lowersorbian
+\item[Malay] malay (\textit{preferred to} melayu)
+\item[Northern Sami] northernsami
+\item[Norwegian] norsk, nynorsk
+\item[Polish] polish
+\item[Portuguese] portuguese, brazilian
+\item[Romanian] romanian
+\item[Russian] russian
+\item[Scottish Gaelic] scottishgaelic (\textit{preferred to} scottish)
+\item[Spanish] spanish
+\item[Slovakian] slovak
+\item[Slovenian] slovene
+\item[Swedish] swedish
+\item[Serbian] serbian
+\item[Turkish] turkish
+\item[Ukrainian] ukrainian
+\item[Upper Sorbian] uppersorbian
+\item[Welsh] welsh
+\end{description}
+
+There are more languages not listed above, including \textsf{hindi,
+thai, thaicjk, latvian, turkmen, magyar, mongolian, romansh,
+lithuanian, spanglish, vietnamese, japanese, pinyin, arabic, farsi,
+ibygreek, bgreek, serbianc, frenchle, ethiop} and \textsf{friulan}.
+
+\begin{note}
+ There are also some deprecated names (a few has been even removed):
+ \textsf{frenchb} or \textsf{francais}, as well as \textsf{canadien}
+ (\textsf{french}), \textsf{germanb} (\textsf{german}),
+ \textsf{bahasa}, \textsf{indon} or \textsf{bahasai}
+ (\textsf{indonesian}), \textsf{lsorbian} (\textsf{lowersorbian}),
+ \textsf{bahasam} (\textsf{malay}), \textsf{portuges}
+ (\textsf{portuguese}), \textsf{brazil} (\textsf{brazilian}),
+ \textsf{russianb} (\textsf{russian}), \textsf{usorbian}
+ (\textsf{uppersorbian}), \textsf{vietnam} (\textsf{vietnamese}),
+ \textsf{samin} (\textsf{northernsami}), \textsf{ukraineb}
+ (\textsf{ukrainian}). Deprecated names come in many cases from the
+ times when they had to be shortened to 8 characters.
+\end{note}
+
+Most of them work out of the box, but some may require extra fonts,
+encoding files, a preprocessor or even a complete framework (like
+\textsf{CJK} or \textsf{luatexja}). For example, if you have got the
+\textsf{velthuis/devnag} package, you can create a file with extension
+|.dn|:
+\begin{verbatim}
+\documentclass{article}
+\usepackage[hindi]{babel}
+\begin{document}
+{\dn devaanaa.m priya.h}
+\end{document}
+\end{verbatim}
+Then you preprocess it with |devnag| \m{file}, which creates
+\m{file}|.tex|; you can then typeset the latter with \LaTeX.
+
\subsection{Modifiers}
\New{3.9c} The basic behavior of some languages can be modified when
@@ -682,7 +785,7 @@ class option:
\begin{itemize}
\item Loading directly |sty| files in \LaTeX{} (ie,
- |\usepackage|\marg{language}) is deprecated and you will get the
+ |\usepackage{<language>}|) is deprecated and you will get the
error:\footnote{In old versions the error read ``You have used an
old interface to call babel'', not very helpful.}
\trouble{You are loading directly a language style}
@@ -790,7 +893,7 @@ hardcode value.
which may break the vertical spacing in some cases (for example,
between lists or at the beginning of a table cell). \New{3.64} The
behavior can be adjusted with
- |\babeladjust{select.write=|\m{mode}|}|, where \m{mode} is |shift|
+ |\babeladjust{select.write=<mode>}|, where \m{mode} is |shift|
(which shifts the skips down and adds a |\penalty|); |keep| (the
default -- with it the |\write| and the skips are kept in the order
they are written), and |omit| (which may seem a too drastic
@@ -891,10 +994,10 @@ set -- in this case, |\foreignlanguage| emits a |\leavevmode|, while
commands above can be cumbersome. With this tool shorter names can be
defined. It adds nothing really new -- it is just syntactical sugar.
-It defines |\text|\m{tag1}\marg{text} to be
-|\foreignlanguage|\marg{language1}\marg{text}, and |\begin|\marg{tag1}
-to be |\begin{otherlanguage*}|\marg{language1}, and so on. Note
-|\|\m{tag1} is also allowed, but remember to set it locally inside a
+It defines |\text<tag1>{<text>}| to be
+|\foreignlanguage{<language1>}{<text>}|, and |\begin{<tag1>}|
+to be |\begin{otherlanguage*}{<language1>}|, and so on. Note
+|\<tag1>| is also allowed, but remember to set it locally inside a
group.
\begin{warning}
@@ -1074,9 +1177,8 @@ stop working). Therefore, a starred version
|\useshorthands*|\marg{char} is provided, which makes sure shorthands
are always activated.
-Currently, if the package option |shorthands| is used, you must include any
-character to be activated with |\useshorthands|. This restriction will
-be lifted in a future release. % <- TODO
+If the package option |shorthands| is used, you must include any
+character to be activated with |\useshorthands|.
\Describe\defineshorthand{\texttt{[}\langlist\texttt{]}%
\marg{shorthand}\marg{code}}
@@ -1087,8 +1189,8 @@ code the shorthand should expand to.
\New{3.9a} An optional argument allows to (re)define language and
system shorthands (some languages do not activate shorthands, so you
-may want to add |\languageshorthands|\marg{lang} to the corresponding
-|\extras|\m{lang}, as explained below). By default, user shorthands
+may want to add |\languageshorthands|\marg{language} to the corresponding
+|\extras<language>|, as explained below). By default, user shorthands
are (re)defined.
User shorthands override language ones, which in turn override
@@ -1207,17 +1309,17 @@ preserved for backward compatibility.}
\begin{note}
\catcode`\|=12\relax Both \textsf{ltxdoc} and \textsf{babel} use
- \verb|\AtBeginDocument| to change some catcodes, and babel reloads
+ \verb|\AtBeginDocument| to change some catcodes, and \babel{} reloads
\textsf{hhline} to make sure \verb|:| has the right one, so if you
want to change the catcode of \verb/|/ it has to be done using the
same method at the proper place, with
\begin{verbatim}
\AtBeginDocument{\DeleteShortVerb{\|}}
\end{verbatim}
- \textit{before} loading babel. This way, when the document begins
+ \textit{before} loading \babel. This way, when the document begins
the sequence is (1) make \verb/|/ active (\textsf{ltxdoc}); (2) make
- it inactive (your settings); (3) make babel shorthands active
- (\textsf{babel)}; (4) reload \textsf{hhline} (\textsf{babel}, now
+ it inactive (your settings); (3) make \babel{} shorthands active
+ (\textsf{babel}); (4) reload \textsf{hhline} (\textsf{babel}, now
with the correct catcodes for \verb/|/ and
\verb|:|).\catcode`\|=\active
\end{note}
@@ -1230,7 +1332,7 @@ that they are taken into account irrespective of its order. The first
three options have been available in previous versions.
\Describe{KeepShorthandsActive}{}
-Tells babel not to deactivate shorthands after loading a language
+Tells \babel{} not to deactivate shorthands after loading a language
file, so that they are also available in the preamble.
\Describe{activeacute}{} For some languages \babel\ supports this
@@ -1463,7 +1565,7 @@ _\babelprovide[import, main]{georgian}_
\babel).
\end{more}
-\New{3.49} Alternatively, you can tell babel to load all or some
+\New{3.49} Alternatively, you can tell \babel{} to load all or some
languages passed as options with |\babelprovide| and not from the |ldf|
file in a few few typical cases. Thus, |provide=*| means ‘load the main
language with the |\babelprovide| mechanism instead of the |ldf| file’
@@ -1503,7 +1605,7 @@ Or also:
only if the former does not work for you. Fortunately, fonts can be
loaded twice with different renderers; for example:
\begin{verbatim}
-\babelfont[spanish]{rm}{FreeSerif}
+\babelfont[spanish]{rm}{FreeSerif}
\babelfont[hindi]{rm}[Renderer=Harfbuzz]{FreeSerif}
\end{verbatim}
\begin{description}
@@ -1520,7 +1622,7 @@ work, but some others do not, the main issue being the ‘ra’. You may
need to set explicitly the script to either |deva| or |dev2|, eg:
\begin{verbatim}
\newfontscript{Devanagari}{deva}
-\end{verbatim}
+\end{verbatim}
Other Indic scripts are still under development in the default
\luatex{} renderer, but should work with |Renderer=Harfbuzz|. They
also work with \xetex{}, although unlike with \luatex{} fine tuning
@@ -1587,7 +1689,7 @@ parameters.
% \begin{example}
% Let's assume you need only the basic features of `spanish`, so that
% the |ini| file is enough, and also a variant with your own
-% hyphenation with
+% hyphenation with
% \end{example}
\subsection{List of locales available in \cs{babelprovide}}
@@ -2320,6 +2422,28 @@ to select fonts in addition to the three basic families.
\end{warning}
\begin{troubleshooting}
+ \trouble{Package fontspec Info: Language '<lang>' not explicitly
+ supported within font '<font>' with script '<script>'.}
+ \textit{Package fontspec Info: Language '<lang>' not explicitly
+ supported within font '<font>' with script '<script>'.}.
+
+ \textbf{This is \textit{not} and error.} This info is shown by
+ \textsf{fontspec}, not by \babel. If everything is okay in your
+ document (and almost always it is), the best thing you can do is just
+ to ignore it altogether.
+
+ In some forums you can find the advice to set, more or less
+ mechanically, |Language=Default|. \textit{Do not follow it}, because
+ font features for the language will not be applied, which can be
+ relevant for many languages, like Urdu and Turkish. Set the
+ |Language| explicitly only if there is a reason to do it. If you
+ really want to conceal this message, use instead:
+\begin{verbatim}
+\PassOptionsToPackage{silent}{fontspec}
+\end{verbatim}
+\end{troubleshooting}
+
+\begin{troubleshooting}
\trouble{Package babel Info: The following fonts are not babel
standard families} \textit{Package babel Info: The following fonts
are not babel standard families}.
@@ -2414,15 +2538,15 @@ value restored.
\end{note}
Macros to be run when a language is selected can be add to
- |\extras|\m{lang}:
+ |\extras<language>|:
\begin{verbatim}
\addto\extrasrussian{\mymacro}
\end{verbatim}
There is a counterpart for code to be run when a language is
-unselected: |\noextras|\m{lang}.
+unselected: |\noextras<language>|.
\begin{note}
- These macros (|\captions|\m{lang}, |\extras|\m{lang}) may be
+ These macros (|\captions<language>|, |\extras<language>|) may be
redefined, but \textit{must not} be used as such -- they just pass
information to \babel{}, which executes them in the proper context.
\end{note}
@@ -2809,50 +2933,50 @@ _\telugucounter{section}_
Languages providing native digits in all or some variants are:
\begin{multicols}{5}
Arabic\\
-Assamese\\
+Assamese\\
Bangla\\
-Bhojpuri\\
-Bodo\\
+Bhojpuri\\
+Bodo\\
Burmese\\
-Cantonese\\
-Central Kurdish\\
+Cantonese\\
+Central Kurdish\\
Chinese\\
-Dogri\\
-Dzongkha\\
-Gujarati\\
-Haryanvi\\
-Hindi\\
-Hmong Njua\\
+Dogri\\
+Dzongkha\\
+Gujarati\\
+Haryanvi\\
+Hindi\\
+Hmong Njua\\
Kannada\\
-Kashmiri\\
-Khmer\\
+Kashmiri\\
+Khmer\\
Konkani\\
-Korean\\
-Lao\\
-Maithili\\
-Malayalam\\
-Manipuri\\
+Korean\\
+Lao\\
+Maithili\\
+Malayalam\\
+Manipuri\\
Marathi\\
Mazanderani\\
Nepali\\
Northern Kurdish\\
-Northern Luri\\
-Odia\\
+Northern Luri\\
+Odia\\
Pashto\\
Persian\\
Punjabi\\
-Rajasthani\\
-Sanskrit\\
-Santali\\
+Rajasthani\\
+Sanskrit\\
+Santali\\
Sindhi\\
-Tamil\\
+Tamil\\
Telugu\\
-Thai\\
+Thai\\
Tibetan\\
-Urdu\\
+Urdu\\
Uyghur\\
-Uzbek\\
-Vai
+Uzbek\\
+Vai
\end{multicols}
\New{3.30} With \luatex{} there is an alternative approach for mapping
@@ -3042,26 +3166,28 @@ page on the news for 3.76 in the \babel{} site for further details.
\subsection{Accessing language info}
-\Describe{\languagename}{}
-The control sequence |\languagename| contains the name of the
-current language.
+\Describe{\localename}{}
+\DescribeOther{\mainlocalename}
+\DescribeOther{\languagename}
+\New{29.10} The control sequence |\localename| contains the name of the current
+locale. This is now the recommended way to retrieve the current
+language. In addtion, |\mainlocalename| contains the main language.
+
+|\languagename| is still used internally, but it is now discouraged at
+the user level.
\begin{warning}
- Due to some internal inconsistencies in catcodes, it should
- \textit{not} be used to test its value. Use \textsf{iflang}, by
- Heiko Oberdiek.
+ Due to a bug, which lead to some internal inconsistencies in
+ catcodes, |\languagename| should \textit{not} be used to test which
+ is the current language. Rely on |\localename| or, if you still need
+ |\languagename| for some reason, on \textsf{iflang}, by Heiko Oberdiek.
\end{warning}
\Describe{\iflanguage}{\marg{language}\marg{true}\marg{false}}
-If more than one language is used, it might be necessary to know which
-language is active at a specific time. This can be checked by a call
-to |\iflanguage|, but note here ``language'' is used in the \TeX{}
-sense, as a set of hyphenation patterns, and \textit{not} as its
-\textsf{babel} name. This macro takes three arguments. The first
-argument is the name of a language; the second and third arguments are
-the actions to take if the result of the test is true or false
-respectively.
+Here ``language'' is used in the \TeX{} sense, as a set of hyphenation
+patterns, and \textit{not} as its \textsf{babel} name. The first
+argument is the name of a language.
\Describe{\localeinfo}{%
\colorbox{thegrey}{\ttfamily\hskip-.2em*\hskip-.2em}{\marg{field}}}
@@ -3072,8 +3198,6 @@ expandable, and the available fields are:
\begin{description}
\itemsep=-\parskip
\item[|name.english|] as provided by the Unicode CLDR.
-%%% \item[|name.locale|] is the equivalent of |\languagename|. Not yet
-%%% activated because the bug in \languagename is far from trivial.
\item[|tag.ini|] is the tag of the |ini| file (the way this
file is identified in its name).
\item[|tag.bcp47|] is the full BCP 47 tag (see the warning below). This
@@ -3256,7 +3380,7 @@ wins), but language exceptions take precedence over global ones.
It can be used only in the preamble, and exceptions are set when the
language is first selected, thus taking into account changes of
-|\lccodes|'s done in |\extras|\m{lang} as well as the language-specific
+|\lccodes|'s done in |\extras<language>| as well as the language-specific
encoding (not set in the preamble by default). Multiple
|\babelhyphenation|'s are allowed. For example:
\begin{verbatim}
@@ -3270,8 +3394,16 @@ font encodings are the same, like in Unicode based engines.
\begin{note}
Using |\babelhyphenation| with Southeast Asian scripts is mostly
pointless. But with |\babelpatterns| (below) you may fine-tune line
- breaking (only \luatex). Even if there are no patterns for the
- language, you can add at least some typical cases.
+ breaking (only \luatex). For example:
+\begingroup
+\catcode`@=13
+\def@#1@{{\fontspec{Loma}#1}}
+\begin{verbatim}
+\babelpatterns[thai]{@ศึก@2@ษา@}
+\end{verbatim}
+\endgroup
+ Even if there are no patterns for the language, you can add at least
+ some typical cases.
\end{note}
\begin{note}
@@ -3281,21 +3413,6 @@ font encodings are the same, like in Unicode based engines.
fully set up and an error can be raised.
\end{note}
-\Describe{\begin\menv{hyphenrules}}{\marg{language}\Eenv{hyphenrules}}
-
-The environment \Lenv{hyphenrules} can be used to select \emph{only} the
-hyphenation rules to be used (it can be used as command, too). This can
-for instance be used to select ‘nohyphenation’, provided that in
-\file{language.dat} the ‘language’ \textsf{nohyphenation} is defined by
-loading \file{zerohyph.tex}. It deactivates language shorthands, too
-(but not user shorthands).
-
-Except for these simple uses, |hyphenrules| is deprecated and
-|otherlanguage*| (the starred version) is preferred, because the former
-does not take into account possible changes in encodings of characters
-like, say, |'| done by some languages (eg, \textsf{italian},
-\textsf{french}, \textsf{ukrainian}).
-
\Describe{\babelpatterns}{\texttt{[}\langlist\texttt{]}%
\marg{patterns}}
@@ -3309,7 +3426,7 @@ combination already exists, it gets replaced by the new one.
It can be used only in the preamble, and patterns are added when the
language is first selected, thus taking into account changes of
-|\lccodes|'s done in |\extras|\m{lang} as well as the language-specific
+|\lccodes|'s done in |\extras<language>| as well as the language-specific
encoding (not set in the preamble by default). Multiple
|\babelpatterns|'s are allowed.
@@ -3347,6 +3464,46 @@ range |U+0300|--|U+0367| (which contains combining chars)’. An
alternative to a transform is |\babelpatterns|.
\end{note}
+\Describe{\babelhyphenmins}{%
+ \colorbox{thegrey}{\ttfamily\hskip-.2em*\hskip-.2em}%
+ \texttt{[}\langlist\texttt{]}%
+ \marg{left}\marg{right}\oarg{hyphenationmin}}
+
+\New{24.10} See the news page for the rationale for this commands. It
+sets the corresponding values for the given languages (all languages
+without the optional argument). With the star, the values are also
+applied immediately (the optional argument and the star are currently
+incompatible). The optional argument is available only in \luatex.
+\begin{example}
+You are typesetting a book with wide lines and want to limit the
+number of hyphens in all languages:
+\begin{verbatim}
+ \babelhyphenmins{3}{4}
+\end{verbatim}
+But there are also some 3-column text and you want to be more flexible:
+\begin{verbatim}
+ \begin{multicols}{3}
+ \babelhyphenmins*{2}{3}
+ ...
+ \end{multicols}
+\end{verbatim}
+\end{example}
+
+\Describe{\begin\menv{hyphenrules}}{\marg{language}\Eenv{hyphenrules}}
+
+The environment \Lenv{hyphenrules} can be used to select \emph{only} the
+hyphenation rules to be used (it can be used as command, too). This can
+for instance be used to select ‘nohyphenation’, provided that in
+\file{language.dat} the ‘language’ \textsf{nohyphenation} is defined by
+loading \file{zerohyph.tex}. It deactivates language shorthands, too
+(but not user shorthands).
+
+Except for these simple uses, |hyphenrules| is deprecated and
+|otherlanguage*| (the starred version) is preferred, because the former
+does not take into account possible changes in encodings of characters
+like, say, |'| done by some languages (eg, \textsf{italian},
+\textsf{french}, \textsf{ukrainian}).
+
\subsection{Transforms}
\label{transforms}
@@ -3392,8 +3549,14 @@ some fine-tuning. More to follow in future releases.)
\hspace{2mm}%
\parbox[t]{6.6cm}{\strut#3}\par}
\bigskip\hrule\nobreak\vspace{.5mm}
-% \strut\hfil Transforms
-% \medskip\hrule\nobreak
+
+\trans{}{digits.native}{\New{24.9} An alternative to |mapdigits|,
+available in the same locales. This transform is applied before the
+first prehyphenation, while |mapdigits| is applied after the last
+posthyphenation. Another difference is |mapdigits| cannot be disabled
+in the middle of a paragraph. (This transform is \textit{not} declared
+explicitly in |ini| files. Instead, it’s defined by |babel| if the key
+\texttt{numbers/digits.native} exists.)}
\trans{Arabic}{transliteration.dad}{Applies the transliteration system
devised by Yannis Haralambous for \textsf{dad} (simple and
@@ -3638,11 +3801,10 @@ Declares a new character class, which is assigned to the characters in
hyphen (eg,~|.,;a-zA-Z|). If you need the hyphen to be assigned a
class, write it at the very beginning of the list.
-There are several predefined ‘global’ classes, namely
-|default|, |cjkideogram|, |cjkleftpunctuation|, |cjkrightpunctuation|,
-|boundary|, and |ignore|, which are described in the \xetex{} manual
-(currently CJK classes are ‘empty’, but they will be assigned in a
-future release).
+There are several predefined ‘global’ classes, namely |default|,
+|cjkideogram|, |cjkleftpunctuation|, |cjkrightpunctuation|, |boundary|,
+and |ignore|, which are described in the \xetex{} manual. These classes
+are used by the |linebreak.basic|, described below.
\Describe{\babelinterchar}{\oarg{options}\marg{locale}
\marg{class-first}\marg{class-second}\marg{code}}
@@ -3908,10 +4070,14 @@ intrinsic direction of scripts and weak directionality.)
In \xetex, |bidi-r| and |bidi-l| resort to the package \textsf{bidi}
(by Vafa Khalighi). For RL documents use the former, and for LR ones
-use the latter. However, this package patches heavily lots of macros
-and packages even if the RL script is not the main one, which can lead
-to some surprising results, so for short and simple texts (letters and
-punctuation) the |default| method can be preferable.
+use the latter.
+
+\begin{warning}
+ This package patches heavily lots of macros and packages even if the
+ RL script is not the main one, which can lead to some surprising
+ results, so for short and simple texts (letters and punctuation) the
+ |default| method is more often than not much preferable.
+\end{warning}
There are samples on GitHub, under \texttt{/required/babel/samples}.
See particularly |lua-bidibasic.tex| and |lua-secenum.tex|.
@@ -4015,7 +4181,7 @@ Arabic as @1فصحى العصر@0 \textit{fuṣḥā l-ʻaṣr} (MSA) and
\texttt{contents} $\string|$
\texttt{footnotes} $\string|$
\texttt{captions} $\string|$
- \texttt{columns} $\string|$
+ \texttt{columns} $\string|$
\texttt{graphics} $\string|$
\texttt{extras}}
@@ -4225,14 +4391,14 @@ used.
\New{3.64} This is not the only way to inject code at those points. The
events listed below can be used as a hook name in |\AddToHook| in the
-form |babel/|\m{language-name}|/|\m{event-name} (with |*| it’s applied to
+form |babel/<language-name>/<event-name>| (with |*| it’s applied to
all languages), but there is a limitation, because the parameters
passed with the \babel{} mechanism are not allowed. The |\AddToHook|
mechanism does \textit{not} replace the current one in `babel`. Its
main advantage is you can reconfigure `babel` even before loading it.
See the example below.
-\Describe{\AddBabelHook}{\oarg{lang}\marg{name}\marg{event}\marg{code}}
+\Describe{\AddBabelHook}{\oarg{language}\marg{name}\marg{event}\marg{code}}
The same name can be applied to several events. Hooks with a certain
\marg{name} may be enabled and disabled for all defined events with
@@ -4265,10 +4431,10 @@ three \TeX{} parameters (|#1|, |#2|, |#3|), with the meaning given:
\item[stopcommands] Used to reset the above, if necessary.
\item[write] This event comes just after the switching commands are
written to the |aux| file.
-\item[beforeextras] Just before executing |\extras|\m{language}. This
+\item[beforeextras] Just before executing |\extras<language>|. This
event and the next one should not contain language-dependent code
- (for that, add it to |\extras|\m{language}).
-\item[afterextras] Just after executing |\extras|\m{language}. For
+ (for that, add it to |\extras<language>|).
+\item[afterextras] Just after executing |\extras<language>|. For
example, the following deactivates shorthands in all languages:
\begin{verbatim}
\AddBabelHook{noshort}{afterextras}{\languageshorthands{none}}
@@ -4287,19 +4453,22 @@ three \TeX{} parameters (|#1|, |#2|, |#3|), with the meaning given:
other (|\string|'ed) and the original one.
\item[afterreset] \New{3.9i} Executed when selecting a language just after
|\originalTeX| is run and reset to its base value, before executing
- |\captions|\m{language} and |\date|\m{language}.
+ |\captions<language>| and |\date<language>|.
\item[begindocument] \New{3.88} Executed before the code written by
|ldf| files with |\AtBeginDocument|. The optional argument with the
language in this particular case is the language that wrote the code.
The special value |/| means ‘return to the core \babel{} definitions’
(in other words, what follows hasn’t been written by any language).
-% STILL UNDER STUDY:
-% \item[beforestart] \New{3.34} Executed either at the beginning of the
-% |aux| file (when read at the start of the document), or else at begin
-% document. In other words, it makes sure the code is executed always
-% and executed once. But be aware it is a somewhat dangerous, because
-% the scope in the first case is local, while in the second case is
-% global, so be careful with assignments.
+\item[foreign] \New{24.8} Executed by |\foreignlanguage| after the
+ language has been set up and just before typesetting the text from the
+ second argument. Its main purpose it to wrap the text with some
+ code, with the help of |\BabelWrapText|. For example, with:
+\begin{verbatim}
+\AddBabelHook{one}{foreign}{\BabelWrapText{\textit{##1}}
+\AddBabelHook{two}{foreign}{\BabelWrapText{\parse{##1}}
+\end{verbatim}
+the text becomes |\textit{\parse{<text>}}|.
+
\end{description}
Four events are used in \file{hyphen.cfg}, which are handled in a
@@ -4330,7 +4499,7 @@ selected (and just before the non-localized hooks defined with
|\AddBabelHook|).
In addition, locale-specific hooks in the form
-|babel/|\m{language-name}|/|\m{event-name} are \textit{recognized}
+|babel/<language-name>/<event-name>| are \textit{recognized}
(executed just before the localized \babel{} hooks), but they are
\textit{not predefined}. You have to do it yourself. For example, to
set |\frenchspacing| only in |bengali|:
@@ -4346,99 +4515,6 @@ requiring a command to switch the language. Its default value is
|toc,lof,lot|, but you may redefine it with |\renewcommand| (it's up
to you to make sure no toc type is duplicated).
-\subsection{Languages supported by \babel{} with \textsf{ldf} files}
-
-In the following table most of the languages supported by \babel{} with
-and |.ldf| file are listed, together with the names of the option which
-you can load \babel\ with for each language. Note this list is open and
-the current options may be different. It does not include |ini| files
-(see below). Except in a few cases (eg, |ngerman|, |serbianc|,
-|acadian|) names are those of the Unicode CLDR (or based on them).
-
-\begin{description}
-\itemsep=-\parskip
-\sffamily
-\item[Afrikaans] afrikaans
-\item[Azerbaijani] azerbaijani
-\item[Basque] basque
-\item[Breton] breton
-\item[Bulgarian] bulgarian
-\item[Catalan] catalan
-\item[Croatian] croatian
-\item[Czech] czech
-\item[Danish] danish
-\item[Dutch] dutch
-\item[English] english, american (\textit{preferred to} USenglish), british (\textit{preferred to}
- UKenglish), canadian, australian, newzealand
-\item[Esperanto] esperanto
-\item[Estonian] estonian
-\item[Finnish] finnish
-\item[French] french, acadian
-\item[Galician] galician
-\item[German] ngerman, naustrian, german, austrian
-\item[Greek] greek, polutonikogreek
-\item[Hebrew] hebrew
-\item[Icelandic] icelandic
-\item[Indonesian] indonesian
-\item[Interlingua] interlingua
-\item[Irish Gaelic] irish
-\item[Italian] italian
-\item[Latin] latin
-\item[Lower Sorbian] lowersorbian
-\item[Malay] malay (\textit{preferred to} melayu)
-\item[Northern Sami] northernsami
-\item[Norwegian] norsk, nynorsk
-\item[Polish] polish
-\item[Portuguese] portuguese, brazilian
-\item[Romanian] romanian
-\item[Russian] russian
-\item[Scottish Gaelic] scottishgaelic (\textit{preferred to} scottish)
-\item[Spanish] spanish
-\item[Slovakian] slovak
-\item[Slovenian] slovene
-\item[Swedish] swedish
-\item[Serbian] serbian
-\item[Turkish] turkish
-\item[Ukrainian] ukrainian
-\item[Upper Sorbian] uppersorbian
-\item[Welsh] welsh
-\end{description}
-
-There are more languages not listed above, including \textsf{hindi,
-thai, thaicjk, latvian, turkmen, magyar, mongolian, romansh,
-lithuanian, spanglish, vietnamese, japanese, pinyin, arabic, farsi,
-ibygreek, bgreek, serbianc, frenchle, ethiop} and \textsf{friulan}.
-
-\begin{note}
- There are also some deprecated names (a few has been even removed):
- \textsf{frenchb} or \textsf{francais}, as well as \textsf{canadien}
- (\textsf{french}), \textsf{germanb} (\textsf{german}),
- \textsf{bahasa}, \textsf{indon} or \textsf{bahasai}
- (\textsf{indonesian}), \textsf{lsorbian} (\textsf{lowersorbian}),
- \textsf{bahasam} (\textsf{malay}), \textsf{portuges}
- (\textsf{portuguese}), \textsf{brazil} (\textsf{brazilian}),
- \textsf{russianb} (\textsf{russian}), \textsf{usorbian}
- (\textsf{uppersorbian}), \textsf{vietnam} (\textsf{vietnamese}),
- \textsf{samin} (\textsf{northernsami}), \textsf{ukraineb}
- (\textsf{ukrainian}). Deprecated names come in many cases from the
- times when they had to be shortened to 8 characters.
-\end{note}
-
-Most of them work out of the box, but some may require extra fonts,
-encoding files, a preprocessor or even a complete framework (like
-\textsf{CJK} or \textsf{luatexja}). For example, if you have got the
-\textsf{velthuis/devnag} package, you can create a file with extension
-|.dn|:
-\begin{verbatim}
-\documentclass{article}
-\usepackage[hindi]{babel}
-\begin{document}
-{\dn devaanaa.m priya.h}
-\end{document}
-\end{verbatim}
-Then you preprocess it with |devnag| \m{file}, which creates
-\m{file}|.tex|; you can then typeset the latter with \LaTeX.
-
\subsection{Unicode character properties in \luatex}
\New{3.32} Part of the \babel{} job is to apply Unicode rules to some
@@ -4460,7 +4536,7 @@ between paragraphs).
For example:
\begin{verbatim}
-\babelcharproperty{`¿}{mirror}{`?}
+\babelcharproperty{`¿}{mirror}{`?}
\babelcharproperty{`-}{direction}{l} % or al, r, en, an, on, et, cs
\babelcharproperty{`)}{linebreak}{cl} % or id, op, cl, ns, ex, in, hy
\end{verbatim}
@@ -4577,38 +4653,6 @@ some languages (kerning and spacing). Ligatures can be disabled.
\item[zhspacing] Spacing for CJK documents in \xetex.
\end{description}
-\subsection{Current and future work}
-
-The current work is focused on the so-called complex scripts in \luatex{}.
-In 8-bit engines, \babel{} provided a basic support for bidi text as
-part of the style for Hebrew, but it is somewhat unsatisfactory and
-internally replaces some hardwired commands by other hardwired commands
-(generic changes would be much better).
-
-Useful additions would be, for example, time, currency, addresses and
-personal names.\footnote{See for example POSIX, ISO 14652 and the
-Unicode Common Locale Data Repository (CLDR). Those systems, however,
-have limited application to \TeX\ because their aim is just to display
-information and not fine typesetting.}. But that is the easy
-part, because they don't require modifying the \LaTeX{} internals.
-Calendars (Arabic, Persian, Indic, etc.) are under study.
-
-Also interesting are differences in the sentence structure or related
-to it. For example, in Basque the number precedes the name (including
-chapters), in Hungarian ``from (1)'' is ``(1)-b\H{o}l'', but ``from
-(3)'' is ``(3)-b\'{o}l'', in Spanish an item labelled
-``3.$^{\textrm{\scriptsize o}}$'' may be referred to as either
-``\'{\i}tem 3.$^{\textrm{\scriptsize o}}$'' or
-``3.$^{\textrm{\scriptsize er}}$ \'{\i}tem'', and so on.
-
-An option to manage bidirectional document layout in \luatex{} (lists,
-footnotes, etc.) is almost finished, but \xetex{} required more work.
-Unfortunately, proper support for \xetex{} requires patching somehow
-lots of macros and packages (and some issues related to |\special|s
-remain, like color and hyperlinks), so \babel{} resorts to the
-\textsf{bidi} package (by Vafa Khalighi). See the \babel{} repository
-for a small example (|xe-bidi|).
-
\subsection{Tentative and experimental code}
See the code section for |\foreignlanguage*| (a new starred
@@ -4696,7 +4740,7 @@ german hyphen.ger
With the previous settings, if the encoding when the language is
selected is |T1| then the patterns in \file{hyphenT1.ger} are
used, but otherwise use those in \file{hyphen.ger} (note the encoding
-can be set in |\extras|\m{lang}).
+can be set in |\extras<language>|).
A typical error when using \babel{} is the following:
\begin{verbatim}
@@ -4746,11 +4790,13 @@ The following assumptions are made:
\item Language names must be all lowercase. If an unknown language is
selected, \babel{} will attempt setting it after lowercasing its
name.
-\item The semantics of modifiers is not defined (on purpose). In
- most cases, they will just be simple separated options (eg,
+\item The semantics of modifiers is not defined (on purpose). In most
+ cases, they will just be simple separated options (eg,
\texttt{spanish}), but a language might require, say, a set of
options organized as a tree with suboptions (in such a case, the
- recommended separator is \verb|/|).
+ recommended separator is \verb|/|). How modifiers (saved in
+ |\BabelModifiers|) are handled are left to language styles; they can
+ use |\in@|, loop them with |\@for| or load |keyval|, for example.
\end{itemize}
Some recommendations:
@@ -4758,19 +4804,19 @@ Some recommendations:
\item The preferred shorthand is |"|, which is not used in \LaTeX{}
(quotes are entered as |``| and |''|). Other good choices are
characters which are not used in a certain context (eg, |=| in an
- ancient language). Note however |=|, |<|, |>|, |:| and the like
+ ancient language). Note however |=|, \texttt{<}, |>|, |:| and the like
can be dangerous, because they may be used as part of the syntax
of some elements (numeric expressions, key/value pairs, etc.).
\item Captions should not contain shorthands or encoding-dependent
commands (the latter is not always possible, but should be clearly
documented). They should be defined using the LICR. You may
also use the new tools for encoded strings, described below.
-\item Avoid adding things to |\noextras|\m{lang} except for umlauthigh
+\item Avoid adding things to |\noextras<language>| except for umlauthigh
and friends, |\bbl@deactivate|, |\bbl@(non)frenchspacing|, and
- language-specific macros. Use always, if possible, |\babel@save| and
+ language-specific macros. Use always, wherever possible, |\babel@save| and
|\babel@savevariable| (except if you still want to have access to the
previous value). Do not reset a macro or a setting to a hardcoded
- value. Never. Instead save its value in |\extras|\m{lang}.
+ value. Never. Instead save its value in |\extras<language>|.
\item Do not switch scripts. If you want to make sure a set of glyphs
is used, switch either the font encoding (low-level) or the language
(high-level, which in turn may switch the font encoding). Usage of things
@@ -4780,19 +4826,18 @@ Some recommendations:
prefix. It is used by \babel{} and it can lead to incompatibilities.
\end{itemize}
-There are no special requirements for documenting your language
-files. Now they are not included in the base \babel{} manual, so
-provide a standalone document suited for your needs, as well as other
-files you think can be useful. A PDF and a ``readme'' are strongly
-recommended.
+There are no special requirements for documenting your language files.
+Just provide a standalone document suited to your needs, as well as
+other files you think can be useful. A PDF and a ``readme'' are
+strongly recommended.
\subsection{Guidelines for contributed languages}
\label{contribute}
Currently, the easiest way to contribute a new language is by taking
one of the 500 or so |ini| templates available on GitHub as a basis.
-Just make a pull request or download it and then, after filling the
-fields, sent it to me. Fell free to ask for help or to make feature
+Just make a pull request or download it, and then, after filling out the
+fields, sent it to me. Feel free to ask for help or to make features
requests.
As to \texttt{ldf} files, now language files are “outsourced” and are
@@ -4806,8 +4851,8 @@ but if you want to do it, here are a few guidelines.
\begin{itemize}
\item Do not hesitate stating on the file heads you are the author and the
- maintainer, if you actually are. There is no need to state the babel
- maintainer(s) as authors if they have not contributed significantly
+ maintainer, if you actually are. There is no need to state the \babel{}
+ maintainer(s) as author(s) if they have not contributed significantly
to your language files.
\item Fonts are not strictly part of a language, so they are best placed
in the corresponding TeX tree. This includes not only \texttt{tfm},
@@ -4815,19 +4860,20 @@ but if you want to do it, here are a few guidelines.
like, but also \texttt{fd} ones.
\item Font and input encodings are usually best placed in the
corresponding tree, too, but sometimes they belong more naturally to
- the babel style. Note you may also need to define a LICR.
-\item \Babel{} ldf files may just interface a framework, as it happens often
- with Oriental languages/scripts. This framework is best placed in its
- own directory.
+ the \babel{} style. Note you may also need to define a LICR
+ (\textit{TLC3}, I, 757f.).
+\item \Babel{} \texttt{ldf} files may just interface a framework, as it
+ happens often with Oriental languages/scripts. This framework is best
+ placed in its own directory.
\end{itemize}
The following page provides a starting point for \texttt{ldf} files:
\texttt{http://www.texnia.com/incubator.html}. See also
\texttt{https://latex3.github.io/babel/guides/list-of-locale-templates.html}.
-If you need further assistance and technical advice in the
-development of language styles, I am willing to help you. And of
-course, you can make any suggestion you like.
+If you need further assistance and technical advice in the development
+of language styles, I will be happy to help you. And of course, you can
+make any suggestion you like.
\subsection{Basic macros}
@@ -4860,7 +4906,7 @@ two parameters. For example:
\renewcommand\spanishhyphenmins{34}
\end{verbatim}
(Assigning |\lefthyphenmin| and |\righthyphenmin| directly in
-|\extras<lang>| has no effect.)
+|\extras<language>| has no effect.)
\DescribeMacro{\providehyphenmins}
The macro |\providehyphenmins| should be used in the language
@@ -5239,12 +5285,12 @@ A real example can be:
\EndBabelCommands
\end{verbatim}
-When used in |ldf| files, previous values of |\|\m{category}\m{language}
+When used in |ldf| files, previous values of |\<category><language>|
are overridden, which means the old way to define strings still works
and used by default (to be precise, is first set to undefined and then
strings are added). However, when used in the preamble or in a
package, new settings are added to the previous ones, if the language
-exists (in the \babel{} sense, ie, if |\date|\m{language} exists).
+exists (in the \babel{} sense, ie, if |\date<language>| exists).
\begin{note}
The package option |strings| introduced in version 3.9 (around 2013)
@@ -5340,7 +5386,7 @@ version), and it can consist of a comma-separated list. For example:
\end{verbatim}
is true with any of these two environment selectors.
-Its natural place of use is in hooks or in |\extras|\m{language}.
+Its natural place of use is in hooks or in |\extras<language>|.
\else
@@ -5350,13 +5396,14 @@ Its natural place of use is in hooks or in |\extras|\m{language}.
\section{Acknowledgements}
-I would like to thank all who volunteered as $\beta$-testers for their
-time. Michel Goossens supplied contributions for most of the other
-languages. Nico Poppelier helped polish the text of the documentation
-and supplied parts of the macros for the Dutch language. Paul Wackers
-and Werenfried Spit helped find and repair bugs. During the further
-development of the babel system I received much help from Bernd
-Raichle, for which I am grateful.
+In the initial stages of the development of \babel, Bernd Raichle
+provided many helpful suggestions and Michel Goossens supplied
+contributions for many languages. Ideas from Nico Poppelier, Piet van
+Oostrum and many others have been used. Paul Wackers and Werenfried
+Spit helped find and repair bugs.
+
+More recently, there are significant contributions by Salim Bou, Ulrike
+Fischer and Udi Fogiel.
There are also many contributors for specific languages, which are
mentioned in the respective files. Without them, \babel{} just
@@ -5401,25 +5448,11 @@ wouldn’t exist.
\end{thebibliography}
\end{document}
%</filedriver>
-%
% \fi
%
% \addtolength{\oddsidemargin}{-15pt}
% \addtolength{\textwidth}{50pt}
%
-%\begingroup
-% \catcode`<=\active%
-% \catcode`>=\active
-% \makeatletter
-% \gdef\MakePrivateLetters{%
-% \catcode`@=11\relax
-% \gdef<##1{\ifx##1@$\langle\langle$\bgroup\itshape\rmfamily
-% \expandafter\bblref
-% \else\string<##1\fi}%
-% \gdef\bblref##1@>{##1\/\egroup$\rangle\rangle$}}%
-% \global\let\check@percent\saved@check@percent
-%\endgroup
-%
% \small
%
% The \babel{} package is being developed incrementally, which means
@@ -5431,7 +5464,7 @@ wouldn’t exist.
% \section{Identification and loading of required files}
%
% \textit{Code documentation is still under revision.}
-
+%
% The \babel{} package after unpacking consists of the following files:
% \begin{description}
% \itemsep=-\parskip
@@ -5445,26 +5478,26 @@ wouldn’t exist.
% \item[hyphen.cfg] is the file to be used when generating the
% formats to load hyphenation patterns.
% \end{description}
-% There some additional |tex|, |def| and |lua| files
+% There some additional |tex|, |def| and |lua| files.
%
% The \babel{} installer extends \textsf{docstrip} with a few
% ``pseudo-guards'' to set ``variables'' used at installation time.
-% They are used with |<||@name@>| at the appropriate places in the
+% They are used with \texttt{<@name@>} at the appropriate places in the
% source code and defined with either
% $\langle\langle$\textit{name}=\textit{value}$\rangle\rangle$, or with
% a series of lines between
% $\langle\langle$|*|\textit{name}$\rangle\rangle$ and
% $\langle\langle$|/|\textit{name}$\rangle\rangle$. The latter is
% cumulative (eg, with \textit{More package options}). That brings a
-% little bit of literate programming. The guards |<-name>| and
-% |<+name>| have been redefined, too. See |babel.ins| for further
+% little bit of literate programming. The guards \texttt{<-name>} and
+% \texttt{<+name>} have been redefined, too. See |babel.ins| for further
% details.
%
% \section{\texttt{locale} directory}
%
% A required component of \babel{} is a set of |ini| files with basic
-% definitions for about 250 languages. They are distributed as a
-% separate |zip| file, not packed as |dtx|. Most of them are
+% definitions for about 300 languages. They are distributed as a
+% separate |zip| file, not packed as |dtx|. Many of them are
% essentially finished (except bugs and mistakes, of course). Some of
% them are still incomplete (but they will be usable), and there are
% some omissions (eg, there are no geographic areas in Spanish). Not
@@ -5479,15 +5512,14 @@ wouldn’t exist.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=24.7>>
-%<<date=2024/06/26>>
+%<<version=24.10>>
+%<<date=2024/09/18>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
-% may change in the future}. This applies mainly to those recently
+% may change in the future.} This applies mainly to those recently
% added for replacing, trimming and looping. The older ones, like
% |\bbl@afterfi|, will not change.
-%
% We define some basic macros which just make the code cleaner.
% |\bbl@add| is now used internally instead of |\addto| because of
% the unpredictable behavior of the latter. Used in
@@ -5521,11 +5553,11 @@ wouldn’t exist.
\def\bbl@for#1#2#3{\bbl@loopx#1{#2}{\ifx#1\@empty\else#3\fi}}
% \end{macrocode}
%
-% \begin{macro}{\bbl@add@list}
-% This internal macro adds its second argument to a comma
-% separated list in its first argument. When the list is not
-% defined yet (or empty), it will be initiated. It presumes
-% expandable character strings.
+% \begin{macro}{\bbl@add@list}
+% This internal macro adds its second argument to a comma separated
+% list in its first argument. When the list is not defined yet (or
+% empty), it will be initiated. It presumes expandable character
+% strings.
%
% \begin{macrocode}
\def\bbl@add@list#1#2{%
@@ -5536,36 +5568,35 @@ wouldn’t exist.
#2}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@afterelse}
-% \begin{macro}{\bbl@afterfi}
-% Because the code that is used in the handling of active
-% characters may need to look ahead, we take extra care to `throw'
-% it over the |\else| and |\fi| parts of an
-% |\if|-statement\footnote{This code is based on code presented in
-% TUGboat vol. 12, no2, June 1991 in ``An expansion Power Lemma''
-% by Sonja Maus.}. These macros will break if another |\if...\fi|
-% statement appears in one of the arguments and it is not enclosed
-% in braces.
+% \begin{macro}{\bbl@afterelse}
+% \begin{macro}{\bbl@afterfi}
+% Because the code that is used in the handling of active characters
+% may need to look ahead, we take extra care to `throw' it over the
+% |\else| and |\fi| parts of an |\if|-statement\footnote{This code is
+% based on code presented in TUGboat vol. 12, no2, June 1991 in ``An
+% expansion Power Lemma'' by Sonja Maus.}. These macros will break if
+% another |\if...\fi| statement appears in one of the arguments and it
+% is not enclosed in braces.
%
% \begin{macrocode}
\long\def\bbl@afterelse#1\else#2\fi{\fi#1}
\long\def\bbl@afterfi#1\fi{\fi#1}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\bbl@exp}
%
-% Now, just syntactical sugar, but it makes partial expansion of
-% some code a lot more simple and readable. Here |\\| stands for
-% |\noexpand|, |\<..>| for |\noexpand| applied to a built macro
-% name (which does not define the macro if undefined to
-% |\relax|, because it is created locally), and |\[..]| for one-level
-% expansion (where |..| is the macro name without the backslash). The
-% result may be followed by extra arguments, if necessary.
+% Now, just syntactical sugar, but it makes partial expansion of some
+% code a lot more simple and readable. Here |\\| stands for
+% |\noexpand|, |\<..>| for |\noexpand| applied to a built macro name
+% (which does not define the macro if undefined to |\relax|, because it
+% is created locally), and |\[..]| for one-level expansion (where |..|
+% is the macro name without the backslash). The result may be followed
+% by extra arguments, if necessary.
%
% \begin{macrocode}
\def\bbl@exp#1{%
@@ -5582,13 +5613,13 @@ wouldn’t exist.
% \end{macro}
%
% \begin{macro}{\bbl@trim}
-% The following piece of code is stolen (with some changes) from
-% \textsf{keyval}, by David Carlisle. It defines two macros:
-% |\bbl@trim| and |\bbl@trim@def|. The first one strips the leading
-% and trailing spaces from the second argument and then applies the
-% first argument (a macro, |\toks@| and the like). The second one,
-% as its name suggests, defines the first argument as the stripped
-% second argument.
+% The following piece of code is stolen (with some changes) from
+% \textsf{keyval}, by David Carlisle. It defines two macros:
+% |\bbl@trim| and |\bbl@trim@def|. The first one strips the leading and
+% trailing spaces from the second argument and then applies the first
+% argument (a macro, |\toks@| and the like). The second one, as its
+% name suggests, defines the first argument as the stripped second
+% argument.
%
% \begin{macrocode}
\def\bbl@tempa#1{%
@@ -5608,11 +5639,11 @@ wouldn’t exist.
% \end{macro}
%
% \begin{macro}{\bbl@ifunset}
-% To check if a macro is defined, we create a new macro, which does
-% the same as |\@ifundefined|. However, in an $\epsilon$-tex engine,
-% it is based on |\ifcsname|, which is more efficient, and does not
-% waste memory. Defined inside a group, to avoid \cs{ifcsname} being
-% implicitly set to |\relax| by the |\csname| test.
+% To check if a macro is defined, we create a new macro, which does the
+% same as |\@ifundefined|. However, in an $\epsilon$-tex engine, it is
+% based on |\ifcsname|, which is more efficient, and does not waste
+% memory. Defined inside a group, to avoid \cs{ifcsname} being
+% implicitly set to |\relax| by the |\csname| test.
%
% \begin{macrocode}
\begingroup
@@ -5639,9 +5670,9 @@ wouldn’t exist.
% \end{macro}
%
% \begin{macro}{\bbl@ifblank}
-% A tool from \textsf{url}, by Donald Arseneau, which tests if a
-% string is empty or space. The companion macros tests if a macro is
-% defined with some `real' value, ie, not |\relax| and not empty,
+% A tool from \textsf{url}, by Donald Arseneau, which tests if a string
+% is empty or space. The companion macros tests if a macro is defined
+% with some `real' value, ie, not |\relax| and not empty,
%
% \begin{macrocode}
\def\bbl@ifblank#1{%
@@ -5716,7 +5747,7 @@ wouldn’t exist.
% because they are retokenized). It may change! (or even merged with
% |\bbl@replace|; I'm not sure checking the replacement is really
% necessary or just paranoia).
-%
+%
% \begin{macrocode}
\ifx\detokenize\@undefined\else % Unused macros if old Plain TeX
\bbl@exp{\def\\\bbl@parsedef##1\detokenize{macro:}}#2->#3\relax{%
@@ -5803,9 +5834,9 @@ wouldn’t exist.
{\expandafter\OE\expandafter}\expandafter{\oe}%
\ifin@
\bbl@afterelse\expandafter\MakeUppercase
- \else
+ \else
\bbl@afterfi\expandafter\MakeLowercase
- \fi
+ \fi
\else
\expandafter\@firstofone
\fi}
@@ -5816,7 +5847,7 @@ wouldn’t exist.
% |#|'s. Used to deal with alph, Alph and frenchspacing when there are
% already changes (with |\babel@save|).
%
-% \begin{macrocode}
+% \begin{macrocode}
\def\bbl@extras@wrap#1#2#3{% 1:in-test, 2:before, 3:after
\toks@\expandafter\expandafter\expandafter{%
\csname extras\languagename\endcsname}%
@@ -5882,23 +5913,21 @@ wouldn’t exist.
%<</Define core switching macros>>
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
-%
-% Now we make sure all required files are loaded. When the command
-% |\AtBeginDocument| doesn't exist we assume that we are dealing
-% with a plain-based format. In that case the file
-% \file{plain.def} is needed (which also defines
-% |\AtBeginDocument|, and therefore it is not loaded twice). We
-% need the first part when the format is created, and |\orig@dump|
-% is used as a flag. Otherwise, we need to use the second part, so
-% |\orig@dump| is not defined (\file{plain.def} undefines it).
+% \end{macro}
+% \end{macro}
%
-% Check if the current version of \file{switch.def} has been
-% previously loaded (mainly, \file{hyphen.cfg}). If not, load it
-% now. We cannot load |babel.def| here because we first need to
-% declare and process the package options.
+% Now we make sure all required files are loaded. When the command
+% |\AtBeginDocument| doesn't exist we assume that we are dealing with a
+% plain-based format. In that case the file \file{plain.def} is needed
+% (which also defines |\AtBeginDocument|, and therefore it is not
+% loaded twice). We need the first part when the format is created, and
+% |\orig@dump| is used as a flag. Otherwise, we need to use the second
+% part, so |\orig@dump| is not defined (\file{plain.def} undefines it).
%
+% Check if the current version of \file{switch.def} has been previously
+% loaded (mainly, \file{hyphen.cfg}). If not, load it now. We cannot
+% load |babel.def| here because we first need to declare and process
+% the package options.
%
% \subsection{The Package File (\LaTeX, \texttt{babel.sty})}
%
@@ -5907,7 +5936,7 @@ wouldn’t exist.
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesPackage{babel}[<@date@> v<@version@> The Babel package]
% \end{macrocode}
-%
+%
% Start with some “private” debugging tool, and then define macros for
% errors.
%
@@ -5955,7 +5984,7 @@ wouldn’t exist.
% influence the behavior of language definition files.
%
% Many of the following options don’t do anything themselves, they are
-% just defined in order to make it possible for babel and language
+% just defined in order to make it possible for \babel{} and language
% definition files to check if one of them was specified by the user.
%
% But first, include here the \textit{Basic macros} defined above.
@@ -6007,7 +6036,7 @@ wouldn’t exist.
%
% Now the \texttt{base} option. With it we can define (and load, with
% \luatex) hyphenation patterns, even if we are not interested in the
-% rest of babel.
+% rest of \babel{}.
%
% \begin{macrocode}
\bbl@trace{Defining option 'base'}
@@ -6034,12 +6063,10 @@ wouldn’t exist.
%
% \subsection{\texttt{key=value} options and other general option}
%
-% The following macros extract language modifiers, and only real
-% package options are kept in the option list. Modifiers are saved
-% and assigned to |\BabelModifiers| at |\bbl@load@language|; when
-% no modifiers have been given, the former is |\relax|. How
-% modifiers are handled are left to language styles; they can use
-% |\in@|, loop them with |\@for| or load |keyval|, for example.
+% The following macros extract language modifiers, and only real
+% package options are kept in the option list. Modifiers are saved and
+% assigned to |\BabelModifiers| at |\bbl@load@language|; when no
+% modifiers have been given, the former is |\relax|.
%
% \begin{macrocode}
\bbl@trace{key=value and another general options}
@@ -6048,7 +6075,7 @@ wouldn’t exist.
#1\ifx\@empty#2\else,\bbl@afterfi\bbl@tempb#2\fi}%
\def\bbl@tempe#1=#2\@@{%
\bbl@csarg\edef{mod@#1}{\bbl@tempb#2}}
-\def\bbl@tempd#1.#2\@nnil{% TODO. Refactor lists?
+\def\bbl@tempd#1.#2\@nnil{%
\ifx\@empty#2%
\edef\bbl@tempc{\ifx\bbl@tempc\@empty\else\bbl@tempc,\fi#1}%
\else
@@ -6057,10 +6084,10 @@ wouldn’t exist.
\edef\bbl@tempc{%
\ifx\bbl@tempc\@empty\else\bbl@tempc,\fi#1.\bbl@tempb#2}%
\else
- \in@{$modifiers$}{$#1$}% TODO. Allow spaces.
+ \in@{$modifiers$}{$#1$}%
\ifin@
\bbl@tempe#2\@@
- \else
+ \else
\in@{=}{#1}%
\ifin@
\edef\bbl@tempc{\ifx\bbl@tempc\@empty\else\bbl@tempc,\fi#1.#2}%
@@ -6090,12 +6117,11 @@ wouldn’t exist.
\DeclareOption{noconfigs}{}
\DeclareOption{showlanguages}{}
\DeclareOption{silent}{}
-% \DeclareOption{mono}{}
\DeclareOption{shorthands=off}{\bbl@tempa shorthands=\bbl@tempa}
\chardef\bbl@iniflag\z@
\DeclareOption{provide=*}{\chardef\bbl@iniflag\@ne} % main -> +1
-\DeclareOption{provide+=*}{\chardef\bbl@iniflag\tw@} % add = 2
-\DeclareOption{provide*=*}{\chardef\bbl@iniflag\thr@@} % add + main
+\DeclareOption{provide+=*}{\chardef\bbl@iniflag\tw@} % second = 2
+\DeclareOption{provide*=*}{\chardef\bbl@iniflag\thr@@} % second + main
% A separate option
\let\bbl@autoload@options\@empty
\DeclareOption{provide@=*}{\def\bbl@autoload@options{import}}
@@ -6145,7 +6171,7 @@ wouldn’t exist.
\bbl@xin@{\string=}{\CurrentOption}%
\ifin@
\expandafter\bbl@tempa\CurrentOption\bbl@tempa
- \else
+ \else
\bbl@add@list\bbl@language@opts{\CurrentOption}%
\fi}
% \end{macrocode}
@@ -6168,7 +6194,7 @@ wouldn’t exist.
\bbl@replace\bbl@opt@provide{;}{,}%
\fi}
\fi
-%
+%
% \end{macrocode}
%
% \subsection{Conditional loading of shorthands}
@@ -6199,8 +6225,7 @@ wouldn’t exist.
\else
% \end{macrocode}
%
-% The following macro tests if a shorthand is one of the allowed
-% ones.
+% The following macro tests if a shorthand is one of the allowed ones.
%
% \begin{macrocode}
\def\bbl@ifshorthand#1{%
@@ -6296,7 +6321,7 @@ wouldn’t exist.
\endinput\fi % Same line!
<@Make sure ProvidesFile is defined@>
\ProvidesFile{babel.def}[<@date@> v<@version@> Babel common definitions]
-\ifx\AtBeginDocument\@undefined % TODO. change test.
+\ifx\AtBeginDocument\@undefined
<@Emulate LaTeX@>
\fi
<@Basic macros@>
@@ -6348,19 +6373,18 @@ wouldn’t exist.
\endgroup}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% |\bbl@iflanguage| executes code only if the language |l@|
-% exists. Otherwise raises an error.
+% |\bbl@iflanguage| executes code only if the language |l@| exists.
+% Otherwise raises an error.
%
-% The argument of |\bbl@fixname| has to be a macro name, as it may get
-% ``fixed'' if casing (lc/uc) is wrong. It's an attempt to fix a
-% long-standing bug when |\foreignlanguage| and the like appear in
-% a |\MakeXXXcase|. However, a lowercase form is not imposed to
-% improve backward compatibility (perhaps you defined a language
-% named |MYLANG|, but unfortunately mixed case names cannot be
-% trapped). Note |l@| is encapsulated, so that its case does not
-% change.
+% The argument of |\bbl@fixname| has to be a macro name, as it may get
+% ``fixed'' if casing (lc/uc) is wrong. It's an attempt to fix a
+% long-standing bug when |\foreignlanguage| and the like appear in a
+% |\MakeXXXcase|. However, a lowercase form is not imposed to improve
+% backward compatibility (perhaps you defined a language named
+% |MYLANG|, but unfortunately mixed case names cannot be trapped). Note
+% |l@| is encapsulated, so that its case does not change.
%
% \begin{macrocode}
\def\bbl@fixname#1{%
@@ -6392,7 +6416,7 @@ wouldn’t exist.
% sr-latn-ba becomes fr-Latn-BA. Note |#4| may contain some
% |\@empty|'s, but they are eventually removed. |\bbl@bcplookup| either
% returns the found |ini| or it is |\relax|.
-%
+%
% \begin{macrocode}
\def\bbl@bcpcase#1#2#3#4\@@#5{%
\ifx\@empty#3%
@@ -6411,7 +6435,7 @@ wouldn’t exist.
\IfFileExists{babel-\bbl@tempa-\bbl@tempb.ini}%
{\edef\bbl@bcp{\bbl@tempa-\bbl@tempb}}%
{}%
- \ifx\bbl@bcp\relax
+ \ifx\bbl@bcp\relax
\IfFileExists{babel-\bbl@tempa.ini}{\let\bbl@bcp\bbl@tempa}{}%
\fi
\else
@@ -6420,29 +6444,30 @@ wouldn’t exist.
\IfFileExists{babel-\bbl@tempa-\bbl@tempb-\bbl@tempc.ini}%
{\edef\bbl@bcp{\bbl@tempa-\bbl@tempb-\bbl@tempc}}%
{}%
- \ifx\bbl@bcp\relax
+ \ifx\bbl@bcp\relax
\IfFileExists{babel-\bbl@tempa-\bbl@tempc.ini}%
{\edef\bbl@bcp{\bbl@tempa-\bbl@tempc}}%
{}%
\fi
- \ifx\bbl@bcp\relax
+ \ifx\bbl@bcp\relax
\IfFileExists{babel-\bbl@tempa-\bbl@tempc.ini}%
{\edef\bbl@bcp{\bbl@tempa-\bbl@tempc}}%
{}%
\fi
- \ifx\bbl@bcp\relax
+ \ifx\bbl@bcp\relax
\IfFileExists{babel-\bbl@tempa.ini}{\let\bbl@bcp\bbl@tempa}{}%
\fi
\fi\fi}
\let\bbl@initoload\relax
-%<-core>
+%</package|core>
+%<*package>
\def\bbl@provide@locale{%
\ifx\babelprovide\@undefined
\bbl@error{base-on-the-fly}{}{}{}%
\fi
- \let\bbl@auxname\languagename % Still necessary. TODO
+ \let\bbl@auxname\languagename % Still necessary.
\bbl@ifunset{bbl@bcp@map@\languagename}{}% Move uplevel??
- {\edef\languagename{\@nameuse{bbl@bcp@map@\languagename}}}%
+ {\edef\languagename{\@nameuse{bbl@bcp@map@\languagename}}}%
\ifbbl@bcpallowed
\expandafter\ifx\csname date\languagename\endcsname\relax
\expandafter
@@ -6464,10 +6489,11 @@ wouldn’t exist.
{\bbl@exp{\\\babelprovide[\bbl@autoload@options]{\languagename}}}%
{}%
\fi}
-%<+core>
+%</package>
+%<*package|core>
% \end{macrocode}
%
-% \begin{macro}{\iflanguage}
+% \begin{macro}{\iflanguage}
% Users might want to test (in a private package for instance)
% which language is currently active. For this we provide a test
% macro, |\iflanguage|, that has three arguments. It checks
@@ -6486,11 +6512,11 @@ wouldn’t exist.
\fi}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \subsection{Selecting the language}
%
-% \begin{macro}{\selectlanguage}
+% \begin{macro}{\selectlanguage}
%
% The macro |\selectlanguage| checks whether the language is
% already defined before it performs its actual task, which is to
@@ -6522,9 +6548,9 @@ wouldn’t exist.
%
% \end{macro}
%
-% Since version 3.5 \babel\ writes entries to the auxiliary files in
-% order to typeset table of contents etc. in the correct language
-% environment.
+% Since version 3.5 \babel\ writes entries to the auxiliary files in
+% order to typeset table of contents etc. in the correct language
+% environment.
%
% \begin{macro}{\bbl@pop@language}
%
@@ -6566,7 +6592,7 @@ wouldn’t exist.
\xdef\bbl@language@stack{\languagename+}%
\else
\xdef\bbl@language@stack{\languagename+\bbl@language@stack}%
- \fi
+ \fi
\fi
\fi}
% \end{macrocode}
@@ -6575,10 +6601,10 @@ wouldn’t exist.
% we need to remove the element from the stack while storing it in the
% macro |\languagename|. For this we first define a helper function.
%
-% \begin{macro}{\bbl@pop@lang}
-% This macro stores its first element (which is delimited by the
-% `+'-sign) in |\languagename| and stores the rest of the string
-% in |\bbl@language@stack|.
+% \begin{macro}{\bbl@pop@lang}
+% This macro stores its first element (which is delimited by the
+% `+'-sign) in |\languagename| and stores the rest of the string in
+% |\bbl@language@stack|.
%
% \begin{macrocode}
\def\bbl@pop@lang#1+#2\@@{%
@@ -6586,7 +6612,7 @@ wouldn’t exist.
\xdef\bbl@language@stack{#2}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
% The reason for the somewhat weird arrangement of arguments to the
% helper function is the fact it is called in the following way.
% This means that before |\bbl@pop@lang| is executed \TeX\ first
@@ -6608,9 +6634,9 @@ wouldn’t exist.
% Once the name of the previous language is retrieved from the stack,
% it is fed to |\bbl@set@language| to do the actual work of
% switching everything that needs switching.
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% An alternative way to identify languages (in the \babel{} sense)
% with a numerical value is introduced in 3.30. This is one of the
@@ -6652,9 +6678,9 @@ wouldn’t exist.
\let\endselectlanguage\relax
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@set@language}
+% \begin{macro}{\bbl@set@language}
%
% The macro |\bbl@set@language| takes care of switching the language
% environment \emph{and} of writing entries on the auxiliary files.
@@ -6681,30 +6707,8 @@ wouldn’t exist.
% \begin{macrocode}
\def\BabelContentsFiles{toc,lof,lot}
\def\bbl@set@language#1{% from selectlanguage, pop@
- % The old buggy way. Preserved for compatibility.
- \edef\languagename{%
- \ifnum\escapechar=\expandafter`\string#1\@empty
- \else\string#1\@empty\fi}%
- \ifcat\relax\noexpand#1%
- \expandafter\ifx\csname date\languagename\endcsname\relax
- \edef\languagename{#1}%
- \let\localename\languagename
- \else
- \bbl@info{Using '\string\language' instead of 'language' is\\%
- deprecated. If what you want is to use a\\%
- macro containing the actual locale, make\\%
- sure it does not not match any language.\\%
- Reported}%
- \ifx\scantokens\@undefined
- \def\localename{??}%
- \else
- \scantokens\expandafter{\expandafter
- \def\expandafter\localename\expandafter{\languagename}}%
- \fi
- \fi
- \else
- \def\localename{#1}% This one has the correct catcodes
- \fi
+ % The old buggy way. Preserved for compatibility, but simplified
+ \edef\languagename{\expandafter\string#1\@empty}%
\select@language{\languagename}%
% write to auxs
\expandafter\ifx\csname date\languagename\endcsname\relax\else
@@ -6723,16 +6727,22 @@ wouldn’t exist.
%
\newif\ifbbl@bcpallowed
\bbl@bcpallowedfalse
-\def\select@language#1{% from set@, babel@aux
+%
+\def\select@language#1{% from set@, babel@aux, babel@toc
\ifx\bbl@selectorname\@empty
\def\bbl@selectorname{select}%
- % set hymap
\fi
+ % set hymap
\ifnum\bbl@hymapsel=\@cclv\chardef\bbl@hymapsel4\relax\fi
- % set name
+ % set name (when coming from babel@aux)
\edef\languagename{#1}%
\bbl@fixname\languagename
- % TODO. name@map must be here?
+ % define \localename when coming from set@, with a trick
+ \ifx\scantokens\@undefined
+ \def\localename{??}%
+ \else
+ \bbl@exp{\\\scantokens{\def\\\localename{\languagename}\\\noexpand}\relax}%
+ \fi
\bbl@provide@locale
\bbl@iflanguage\languagename{%
\let\bbl@select@type\z@
@@ -6740,12 +6750,12 @@ wouldn’t exist.
\def\babel@aux#1#2{%
\select@language{#1}%
\bbl@foreach\BabelContentsFiles{% \relax -> don't assume vertical mode
- \@writefile{##1}{\babel@toc{#1}{#2}\relax}}}% TODO - plain?
+ \@writefile{##1}{\babel@toc{#1}{#2}\relax}}}%
\def\babel@toc#1#2{%
\select@language{#1}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% First, check if the user asks for a known language. If so,
% update the value of |\language| and call |\originalTeX|
@@ -6772,7 +6782,7 @@ wouldn’t exist.
% current values, then we check if |\|\langvar|hyphenmins| is
% defined. If it is not, we set default values (2 and 3), otherwise
% the values in |\|\langvar|hyphenmins| will be used.
-%
+%
% No text is supposed to be added with switching captions and date, so
% we remove any spurious spaces with |\bbl@bsphack| and |\bbl@esphack|.
%
@@ -6803,7 +6813,7 @@ wouldn’t exist.
\csname captions#1\endcsname\relax
\fi
\bbl@xin@{,date,}{,\bbl@select@opts,}%
- \ifin@ % if \foreign... within \<lang>date
+ \ifin@ % if \foreign... within \<language>date
\csname date#1\endcsname\relax
\fi
\fi
@@ -6843,6 +6853,12 @@ wouldn’t exist.
\ifin@\else\bbl@xin@{/k}{/\bbl@tempa}\fi % only kashida
\ifin@\else\bbl@xin@{/p}{/\bbl@tempa}\fi % padding (eg, Tibetan)
\ifin@\else\bbl@xin@{/v}{/\bbl@tempa}\fi % variable font
+ % hyphenation - save mins
+ \babel@savevariable\lefthyphenmin
+ \babel@savevariable\righthyphenmin
+ \ifnum\bbl@engine=\@ne
+ \babel@savevariable\hyphenationmin
+ \fi
\ifin@
% unhyphenated/kashida/elongated/padding = allow stretching
\language\l@unhyphenated
@@ -6854,16 +6870,18 @@ wouldn’t exist.
% other = select patterns
\bbl@patterns{#1}%
\fi
- % hyphenation - mins
- \babel@savevariable\lefthyphenmin
- \babel@savevariable\righthyphenmin
+ % hyphenation - set mins
\expandafter\ifx\csname #1hyphenmins\endcsname\relax
\set@hyphenmins\tw@\thr@@\relax
+ \@nameuse{bbl@hyphenmins@}%
\else
\expandafter\expandafter\expandafter\set@hyphenmins
\csname #1hyphenmins\endcsname\relax
\fi
- % reset selector name
+ \@nameuse{bbl@hyphenmins@}%
+ \@nameuse{bbl@hyphenmins@\languagename}%
+ \@nameuse{bbl@hyphenatmin@}%
+ \@nameuse{bbl@hyphenatmin@\languagename}%
\let\bbl@selectorname\@empty}
% \end{macrocode}
%
@@ -6984,11 +7002,14 @@ wouldn’t exist.
\BabelText{#2}% Still in vertical mode!
{\par}%
\endgroup}
+\providecommand\BabelWrapText[1]{%
+ \def\bbl@tempa{\def\BabelText####1}%
+ \expandafter\bbl@tempa\expandafter{\BabelText{#1}}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\foreign@language}
+% \begin{macro}{\foreign@language}
%
% This macro does the work for |\foreignlanguage| and the
% \Lenv{otherlanguage*} environment. First we need to store the name
@@ -7004,6 +7025,7 @@ wouldn’t exist.
\bbl@usedategroupfalse
\fi
\bbl@fixname\languagename
+ \let\localename\languagename
% TODO. name@map here?
\bbl@provide@locale
\bbl@iflanguage\languagename{%
@@ -7073,7 +7095,7 @@ wouldn’t exist.
\endgroup}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \begin{environment}{hyphenrules}
%
@@ -7118,11 +7140,11 @@ wouldn’t exist.
\fi}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\set@hyphenmins}
-% This macro sets the values of |\lefthyphenmin| and
-% |\righthyphenmin|. It expects two values as its argument.
+% \begin{macro}{\set@hyphenmins}
+% This macro sets the values of |\lefthyphenmin| and |\righthyphenmin|.
+% It expects two values as its argument.
%
% \begin{macrocode}
\def\set@hyphenmins#1#2{%
@@ -7161,26 +7183,26 @@ wouldn’t exist.
\fi
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\originalTeX}
-% The macro|\originalTeX| should be known to \TeX\ at this moment.
-% As it has to be expandable we |\let| it to |\@empty| instead of
-% |\relax|.
+% \begin{macro}{\originalTeX}
+% The macro|\originalTeX| should be known to \TeX\ at this moment. As
+% it has to be expandable we |\let| it to |\@empty| instead of
+% |\relax|.
%
% \begin{macrocode}
\ifx\originalTeX\@undefined\let\originalTeX\@empty\fi
% \end{macrocode}
%
-% Because this part of the code can be included in a format, we
-% make sure that the macro which initializes the save mechanism,
-% |\babel@beginsave|, is not considered to be undefined.
+% Because this part of the code can be included in a format, we make
+% sure that the macro which initializes the save mechanism,
+% |\babel@beginsave|, is not considered to be undefined.
%
% \begin{macrocode}
\ifx\babel@beginsave\@undefined\let\babel@beginsave\relax\fi
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% A few macro names are reserved for future releases of \babel, which
% will use the concept of `locale':
@@ -7231,7 +7253,7 @@ wouldn’t exist.
\bbl@warning{%
\@backslashchar#1 not set for '\languagename'. Please,\\%
define it after the language has been loaded\\%
- (typically in the preamble) with:\\%
+ (typically in the preamble) with:\\%
\string\setlocalecaption{\languagename}{\bbl@tempa}{..}\\%
Feel free to contribute on github.com/latex3/babel.\\%
Reported}}
@@ -7288,7 +7310,7 @@ wouldn’t exist.
\fi
% \end{macrocode}
%
-% \begin{macro}{\addto}
+% \begin{macro}{\addto}
% It takes two arguments, a \meta{control sequence} and \TeX-code to
% be added to the \meta{control sequence}.
%
@@ -7312,7 +7334,7 @@ wouldn’t exist.
\fi}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% The macro |\initiate@active@char| below takes all the necessary
% actions to make its argument a shorthand character. The real work
@@ -7326,7 +7348,7 @@ wouldn’t exist.
\lowercase{\endgroup#1~}}
% \end{macrocode}
%
-% \begin{macro}{\bbl@redefine}
+% \begin{macro}{\bbl@redefine}
%
% To redefine a command, we save the old meaning of the macro. Then
% we redefine it to call the original macro with the `sanitized'
@@ -7343,11 +7365,11 @@ wouldn’t exist.
\@onlypreamble\bbl@redefine
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@redefine@long}
-% This version of |\babel@redefine| can be used to redefine |\long|
-% commands such as |\ifthenelse|.
+% \begin{macro}{\bbl@redefine@long}
+% This version of |\babel@redefine| can be used to redefine |\long|
+% commands such as |\ifthenelse|.
%
% \begin{macrocode}
\def\bbl@redefine@long#1{%
@@ -7357,7 +7379,7 @@ wouldn’t exist.
\@onlypreamble\bbl@redefine@long
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \begin{macro}{\bbl@redefinerobust}
% For commands that are redefined, but which \textit{might} be
@@ -7378,7 +7400,7 @@ wouldn’t exist.
\@onlypreamble\bbl@redefinerobust
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \subsection{Hooks}
%
@@ -7435,13 +7457,13 @@ wouldn’t exist.
% \begin{macro}{\babelensure}
%
% The user command just parses the optional argument and creates a
-% new macro named |\bbl@e@|\m{language}. We register a hook at the
+% new macro named |\bbl@e@<language>|. We register a hook at the
% |afterextras| event which just executes this macro in a
% ``complete'' selection (which, if undefined, is |\relax| and does
% nothing). This part is somewhat involved because we have to make
% sure things are expanded the correct number of times.
%
-% The macro |\bbl@e@|\m{language} contains
+% The macro |\bbl@e@<language>| contains
% |\bbl@ensure|\marg{include}\marg{exclude}\marg{fontenc}, which in in
% turn loops over the macros names in |\bbl@captionslist|, excluding
% (with the help of |\in@|) those in the |exclude| list. If the
@@ -7518,7 +7540,7 @@ wouldn’t exist.
\alsoname\proofname\glossaryname}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \subsection{Setting up language files}
%
@@ -7587,10 +7609,10 @@ wouldn’t exist.
\bbl@ldfinit}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\ldf@quit}
-% This macro interrupts the processing of a language definition file.
+% \begin{macro}{\ldf@quit}
+% This macro interrupts the processing of a language definition file.
%
% \begin{macrocode}
\def\ldf@quit#1{%
@@ -7600,19 +7622,19 @@ wouldn’t exist.
\endinput}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\ldf@finish}
-% This macro takes one argument. It is the name of the language
-% that was defined in the language definition file.
+% \begin{macro}{\ldf@finish}
+% This macro takes one argument. It is the name of the language that
+% was defined in the language definition file.
%
-% We load the local configuration file if one is present, we set
-% the main language (taking into account that the argument might be
-% a control sequence that needs to be expanded) and reset the
-% category code of the @-sign.
+% We load the local configuration file if one is present, we set the
+% main language (taking into account that the argument might be a
+% control sequence that needs to be expanded) and reset the category
+% code of the @-sign.
%
% \begin{macrocode}
-\def\bbl@afterldf#1{% TODO. Merge into the next macro? Unused elsewhere
+\def\bbl@afterldf#1{%
\bbl@afterlang
\let\bbl@afterlang\relax
\let\BabelModifiers\relax
@@ -7625,11 +7647,11 @@ wouldn’t exist.
\catcode`\==\eqcatcode \let\eqcatcode\relax}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% After the preamble of the document the commands |\LdfInit|,
-% |\ldf@quit| and |\ldf@finish| are no longer needed. Therefore
-% they are turned into warning messages in \LaTeX.
+% After the preamble of the document the commands |\LdfInit|,
+% |\ldf@quit| and |\ldf@finish| are no longer needed. Therefore they
+% are turned into warning messages in \LaTeX.
%
% \begin{macrocode}
\@onlypreamble\LdfInit
@@ -7637,30 +7659,35 @@ wouldn’t exist.
\@onlypreamble\ldf@finish
% \end{macrocode}
%
-% \begin{macro}{\main@language}
-% \begin{macro}{\bbl@main@language}
-% This command should be used in the various language definition
-% files. It stores its argument in |\bbl@main@language|; to be used
-% to switch to the correct language at the beginning of the
-% document.
+% \begin{macro}{\main@language}
+% \begin{macro}{\bbl@main@language}
+% This command should be used in the various language definition files.
+% It stores its argument in |\bbl@main@language|; to be used to switch
+% to the correct language at the beginning of the document.
%
% \begin{macrocode}
\def\main@language#1{%
\def\bbl@main@language{#1}%
- \let\languagename\bbl@main@language % TODO. Set localename
+ \let\languagename\bbl@main@language
+ \let\localename\bbl@main@language
+ \let\mainlocalename\bbl@main@language
\bbl@id@assign
\bbl@patterns{\languagename}}
% \end{macrocode}
%
% We also have to make sure that some code gets executed at the
-% beginning of the document, either when the |aux| file is read or,
-% if it does not exist, when the |\AtBeginDocument| is executed.
-% Languages do not set |\pagedir|, so we set here for the whole
-% document to the main |\bodydir|.
+% beginning of the document, either when the |aux| file is read or, if
+% it does not exist, when the |\AtBeginDocument| is executed. Languages
+% do not set |\pagedir|, so we set here for the whole document to the
+% main |\bodydir|.
+%
+% The code written to the |aux| file attempts to avoid errors if
+% \babel\ is removed from the document.
%
% \begin{macrocode}
\def\bbl@beforestart{%
\def\@nolanerr##1{%
+ \bbl@carg\chardef{l@##1}\z@
\bbl@warning{Undefined language '##1' in aux.\\Reported}}%
\bbl@usehooks{beforestart}{}%
\global\let\bbl@beforestart\relax}
@@ -7668,12 +7695,13 @@ wouldn’t exist.
{\@nameuse{bbl@beforestart}}% Group!
\if@filesw
\providecommand\babel@aux[2]{}%
- \immediate\write\@mainaux{%
- \string\providecommand\string\babel@aux[2]{}}%
+ \immediate\write\@mainaux{\unexpanded{%
+ \providecommand\babel@aux[2]{\global\let\babel@toc\@gobbletwo}}}%
\immediate\write\@mainaux{\string\@nameuse{bbl@beforestart}}%
\fi
\expandafter\selectlanguage\expandafter{\bbl@main@language}%
-%<-core>
+%</package|core>
+%<*package>
\ifx\bbl@normalsf\@empty
\ifnum\sfcode`\.=\@m
\let\normalsfcodes\frenchspacing
@@ -7683,24 +7711,27 @@ wouldn’t exist.
\else
\let\normalsfcodes\bbl@normalsf
\fi
-%<+core>
+%</package>
+%<*package|core>
\ifbbl@single % must go after the line above.
\renewcommand\selectlanguage[1]{}%
\renewcommand\foreignlanguage[2]{#2}%
\global\let\babel@aux\@gobbletwo % Also as flag
\fi}
-%<-core>
+%</package|core>
+%<*package>
\AddToHook{begindocument/before}{%
\let\bbl@normalsf\normalsfcodes
\let\normalsfcodes\relax} % Hack, to delay the setting
-%<+core>
+%</package>%
+%<*package|core>
\ifcase\bbl@engine\or
- \AtBeginDocument{\pagedir\bodydir} % TODO - a better place
+ \AtBeginDocument{\pagedir\bodydir}
\fi
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% A bit of optimization. Select in heads/foots the language only if
% necessary.
@@ -7716,18 +7747,17 @@ wouldn’t exist.
%
% \subsection{Shorthands}
%
-% \begin{macro}{\bbl@add@special}
-% The macro |\bbl@add@special| is used to add a new character (or
-% single character control sequence) to the macro |\dospecials|
-% (and |\@sanitize| if \LaTeX\ is used). It is used only at one
-% place, namely when |\initiate@active@char| is called (which is
-% ignored if the char has been made active before). Because
-% |\@sanitize| can be undefined, we put the definition inside a
-% conditional.
+% \begin{macro}{\bbl@add@special}
+% The macro |\bbl@add@special| is used to add a new character (or
+% single character control sequence) to the macro |\dospecials| (and
+% |\@sanitize| if \LaTeX\ is used). It is used only at one place,
+% namely when |\initiate@active@char| is called (which is ignored if
+% the char has been made active before). Because |\@sanitize| can be
+% undefined, we put the definition inside a conditional.
%
-% Items are added to the lists without checking its existence or
-% the original catcode. It does not hurt, but should be fixed. It's
-% already done with |\nfss@catcodes|, added in 3.10.
+% Items are added to the lists without checking its existence or the
+% original catcode. It does not hurt, but should be fixed. It's already
+% done with |\nfss@catcodes|, added in 3.10.
%
% \begin{macrocode}
\bbl@trace{Shorhands}
@@ -7747,13 +7777,13 @@ wouldn’t exist.
\fi}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@remove@special}
+% \begin{macro}{\bbl@remove@special}
%
-% The companion of the former macro is |\bbl@remove@special|. It
-% removes a character from the set macros |\dospecials| and
-% |\@sanitize|, but it is not used at all in the \babel{} core.
+% The companion of the former macro is |\bbl@remove@special|. It
+% removes a character from the set macros |\dospecials| and
+% |\@sanitize|, but it is not used at all in the \babel{} core.
%
% \begin{macrocode}
\def\bbl@remove@special#1{%
@@ -7770,38 +7800,36 @@ wouldn’t exist.
\x}
% \end{macrocode}
%
-% \end{macro}
-%
-% \begin{macro}{\initiate@active@char}
-% A language definition file can call this macro to make a
-% character active. This macro takes one argument, the character
-% that is to be made active. When the character was already active
-% this macro does nothing. Otherwise, this macro defines the
-% control sequence |\normal@char|\m{char} to expand to the
-% character in its `normal state' and it defines the active
-% character to expand to |\normal@char|\m{char} by default
-% (\m{char} being the character to be made active). Later its
-% definition can be changed to expand to |\active@char|\m{char}
-% by calling |\bbl@activate{|\m{char}|}|.
-%
-% For example, to make the double quote character active one could
-% have |\initiate@active@char{"}| in a language definition file.
-% This defines |"| as |\active@prefix "\active@char"| (where the
-% first |"| is the character with its original catcode, when the
-% shorthand is created, and |\active@char"| is a single token). In
-% protected contexts, it expands to |\protect "| or |\noexpand "|
-% (ie, with the original |"|); otherwise |\active@char"| is
-% executed. This macro in turn expands to |\normal@char"| in
-% ``safe'' contexts (eg, |\label|), but |\user@active"| in normal
-% ``unsafe'' ones. The latter search a definition in the user,
-% language and system levels, in this order, but if none is found,
-% |\normal@char"| is used. However, a deactivated shorthand (with
-% |\bbl@deactivate| is defined as |\active@prefix "\normal@char"|.
-%
-% The following macro is used to define shorthands in the three
-% levels. It takes 4 arguments: the (string'ed) character,
-% |\<level>@group|, |<level>@active| and |<next-level>@active|
-% (except in |system|).
+% \end{macro}
+%
+% \begin{macro}{\initiate@active@char}
+% A language definition file can call this macro to make a character
+% active. This macro takes one argument, the character that is to be
+% made active. When the character was already active this macro does
+% nothing. Otherwise, this macro defines the control sequence
+% |\normal@char<char>| to expand to the character in its `normal
+% state' and it defines the active character to expand to
+% |\normal@char<char>| by default (\m{char} being the character to be
+% made active). Later its definition can be changed to expand to
+% |\active@char<char>| by calling |\bbl@activate{<char>}|.
+%
+% For example, to make the double quote character active one could have
+% |\initiate@active@char{"}| in a language definition file. This
+% defines |"| as |\active@prefix "\active@char"| (where the first |"|
+% is the character with its original catcode, when the shorthand is
+% created, and |\active@char"| is a single token). In protected
+% contexts, it expands to |\protect "| or |\noexpand "| (ie, with the
+% original |"|); otherwise |\active@char"| is executed. This macro in
+% turn expands to |\normal@char"| in ``safe'' contexts (eg, |\label|),
+% but |\user@active"| in normal ``unsafe'' ones. The latter search a
+% definition in the user, language and system levels, in this order,
+% but if none is found, |\normal@char"| is used. However, a deactivated
+% shorthand (with |\bbl@deactivate| is defined as
+% |\active@prefix "\normal@char"|.
+%
+% The following macro is used to define shorthands in the three levels.
+% It takes 4 arguments: the (string'ed) character, |\<level>@group|,
+% |<level>@active| and |<next-level>@active| (except in |system|).
%
% \begin{macrocode}
\def\bbl@active@def#1#2#3#4{%
@@ -7813,9 +7841,9 @@ wouldn’t exist.
\fi}%
% \end{macrocode}
%
-% When there is also no current-level shorthand with an argument we
-% will check whether there is a next-level defined shorthand for
-% this active character.
+% When there is also no current-level shorthand with an argument we
+% will check whether there is a next-level defined shorthand for this
+% active character.
%
% \begin{macrocode}
\long\@namedef{#3@arg#1}##1{%
@@ -7826,10 +7854,10 @@ wouldn’t exist.
\fi}}%
% \end{macrocode}
%
-% |\initiate@active@char| calls |\@initiate@active@char| with 3
-% arguments. All of them are the same character with different
-% catcodes: active, other (|\string|'ed) and the original one.
-% This trick simplifies the code a lot.
+% |\initiate@active@char| calls |\@initiate@active@char| with 3
+% arguments. All of them are the same character with different
+% catcodes: active, other (|\string|'ed) and the original one. This
+% trick simplifies the code a lot.
%
% \begin{macrocode}
\def\initiate@active@char#1{%
@@ -7839,10 +7867,10 @@ wouldn’t exist.
{}}
% \end{macrocode}
%
-% The very first thing to do is saving the original catcode and the
-% original definition, even if not active, which is possible
-% (undefined characters require a special treatment to avoid
-% making them |\relax| and preserving some degree of protection).
+% The very first thing to do is saving the original catcode and the
+% original definition, even if not active, which is possible (undefined
+% characters require a special treatment to avoid making them |\relax|
+% and preserving some degree of protection).
%
% \begin{macrocode}
\def\@initiate@active@char#1#2#3{%
@@ -7857,14 +7885,14 @@ wouldn’t exist.
\fi
% \end{macrocode}
%
-% If the character is already active we provide the default
-% expansion under this shorthand mechanism. Otherwise we write a
-% message in the transcript file, and define |\normal@char|\m{char}
-% to expand to the character in its default state. If the character
-% is mathematically active when \babel{} is loaded (for example
-% |'|) the normal expansion is somewhat different to avoid an
-% infinite loop (but it does not prevent the loop if the mathcode
-% is set to |"8000| \textit{a posteriori}).
+% If the character is already active we provide the default expansion
+% under this shorthand mechanism. Otherwise we write a message in the
+% transcript file, and define |\normal@char<char>| to expand to the
+% character in its default state. If the character is mathematically
+% active when \babel{} is loaded (for example |'|) the normal expansion
+% is somewhat different to avoid an infinite loop (but it does not
+% prevent the loop if the mathcode is set to |"8000| \textit{a
+% posteriori}).
%
% \begin{macrocode}
\ifx#1#3\relax
@@ -7879,16 +7907,16 @@ wouldn’t exist.
\fi
% \end{macrocode}
%
-% To prevent problems with the loading of other packages after
-% \babel\ we reset the catcode of the character to the original one
-% at the end of the package and of each language file (except with
-% \textsf{KeepShorthandsActive}). It is re-activate again at
-% |\begin{document}|. We also need to make sure that the
-% shorthands are active during the processing of the \file{.aux}
-% file. Otherwise some citations may give unexpected results in
-% the printout when a shorthand was used in the optional argument
-% of |\bibitem| for example. Then we make it active (not strictly
-% necessary, but done for backward compatibility).
+% To prevent problems with the loading of other packages after \babel\
+% we reset the catcode of the character to the original one at the end
+% of the package and of each language file (except with
+% \textsf{KeepShorthandsActive}). It is re-activate again at
+% |\begin{document}|. We also need to make sure that the shorthands are
+% active during the processing of the \file{.aux} file. Otherwise some
+% citations may give unexpected results in the printout when a
+% shorthand was used in the optional argument of |\bibitem| for
+% example. Then we make it active (not strictly necessary, but done for
+% backward compatibility).
%
% \begin{macrocode}
\bbl@restoreactive{#2}%
@@ -7902,14 +7930,14 @@ wouldn’t exist.
\fi
% \end{macrocode}
%
-% Now we have set |\normal@char|\m{char}, we must define
-% |\active@char|\m{char}, to be executed when the character is
-% activated. We define the first level expansion of
-% |\active@char|\m{char} to check the status of the |@safe@actives|
-% flag. If it is set to true we expand to the `normal' version of
-% this character, otherwise we call |\user@active|\m{char} to start
-% the search of a definition in the user, language and system
-% levels (or eventually |normal@char|\m{char}).
+% Now we have set |\normal@char<char>|, we must define
+% |\active@char<char>|, to be executed when the character is
+% activated. We define the first level expansion of
+% |\active@char<char>| to check the status of the |@safe@actives|
+% flag. If it is set to true we expand to the `normal' version of this
+% character, otherwise we call |\user@active<char>| to start the
+% search of a definition in the user, language and system levels (or
+% eventually |normal@char<char>|).
%
% \begin{macrocode}
\let\bbl@tempa\@firstoftwo
@@ -7934,13 +7962,13 @@ wouldn’t exist.
\expandafter\noexpand\csname user@active#2\endcsname}%
% \end{macrocode}
%
-% We now define the default values which the shorthand is set to
-% when activated or deactivated. It is set to the deactivated form
-% (globally), so that the character expands to
-% \begin{center}
-% |\active@prefix| \m{char} |\normal@char|\m{char}
-% \end{center}
-% (where |\active@char|\m{char} is \emph{one} control sequence!).
+% We now define the default values which the shorthand is set to when
+% activated or deactivated. It is set to the deactivated form
+% (globally), so that the character expands to
+% \begin{center}
+% |\active@prefix| \m{char} |\normal@char<char>|
+% \end{center}
+% (where |\active@char<char>| is \emph{one} control sequence!).
%
% \begin{macrocode}
\bbl@csarg\edef{active@#2}{%
@@ -7952,10 +7980,10 @@ wouldn’t exist.
\bbl@ncarg\let#1{bbl@normal@#2}%
% \end{macrocode}
%
-% The next level of the code checks whether a user has defined a
-% shorthand for himself with this character. First we check for a
-% single character shorthand. If that doesn't exist we check for a
-% shorthand with an argument.
+% The next level of the code checks whether a user has defined a
+% shorthand for himself with this character. First we check for a
+% single character shorthand. If that doesn't exist we check for a
+% shorthand with an argument.
%
% \begin{macrocode}
\bbl@active@def#2\user@group{user@active}{language@active}%
@@ -7963,13 +7991,13 @@ wouldn’t exist.
\bbl@active@def#2\system@group{system@active}{normal@char}%
% \end{macrocode}
%
-% In order to do the right thing when a shorthand with an argument
-% is used by itself at the end of the line we provide a definition
-% for the case of an empty argument. For that case we let the
-% shorthand character expand to its non-active self. Also, When a
-% shorthand combination such as |''| ends up in a heading \TeX\
-% would see |\protect'\protect'|. To prevent this from happening a
-% couple of shorthand needs to be defined at user level.
+% In order to do the right thing when a shorthand with an argument
+% is used by itself at the end of the line we provide a definition
+% for the case of an empty argument. For that case we let the
+% shorthand character expand to its non-active self. Also, When a
+% shorthand combination such as |''| ends up in a heading \TeX\
+% would see |\protect'\protect'|. To prevent this from happening a
+% couple of shorthand needs to be defined at user level.
%
% \begin{macrocode}
\expandafter\edef\csname\user@group @sh@#2@@\endcsname
@@ -7978,13 +8006,13 @@ wouldn’t exist.
{\expandafter\noexpand\csname user@active#2\endcsname}%
% \end{macrocode}
%
-% Finally, a couple of special cases are taken care of. (1) If we
-% are making the right quote (|'|) active we need to change |\pr@m@s| as
-% well. Also, make sure that a single |'| in math mode `does the
-% right thing'. (2) If we are using the caret (|^|) as a shorthand
-% character special care should be taken to make sure math still
-% works. Therefore an extra level of expansion is introduced with a
-% check for math mode on the upper level.
+% Finally, a couple of special cases are taken care of. (1) If we
+% are making the right quote (|'|) active we need to change |\pr@m@s| as
+% well. Also, make sure that a single |'| in math mode `does the
+% right thing'. (2) If we are using the caret (|^|) as a shorthand
+% character special care should be taken to make sure math still
+% works. Therefore an extra level of expansion is introduced with a
+% check for math mode on the upper level.
%
% \begin{macrocode}
\if\string'#2%
@@ -7994,8 +8022,8 @@ wouldn’t exist.
\bbl@usehooks{initiateactive}{{#1}{#2}{#3}}}
% \end{macrocode}
%
-% The following package options control the behavior of shorthands
-% in math mode.
+% The following package options control the behavior of shorthands in
+% math mode.
%
% \begin{macrocode}
%<<*More package options>>
@@ -8004,10 +8032,10 @@ wouldn’t exist.
%<</More package options>>
% \end{macrocode}
%
-% Initiating a shorthand makes active the char. That is not
-% strictly necessary but it is still done for backward
-% compatibility. So we need to restore the original catcode at the
-% end of package \textit{and} and the end of the |ldf|.
+% Initiating a shorthand makes active the char. That is not strictly
+% necessary but it is still done for backward compatibility. So we need
+% to restore the original catcode at the end of package \textit{and}
+% and the end of the |ldf|.
%
% \begin{macrocode}
\@ifpackagewith{babel}{KeepShorthandsActive}%
@@ -8021,18 +8049,18 @@ wouldn’t exist.
\AtEndOfPackage{\let\bbl@restoreactive\@gobble}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@sh@select}
-% This command helps the shorthand supporting macros to select how
-% to proceed. Note that this macro needs to be expandable as do all
-% the shorthand macros in order for them to work in expansion-only
-% environments such as the argument of |\hyphenation|.
+% \begin{macro}{\bbl@sh@select}
+% This command helps the shorthand supporting macros to select how to
+% proceed. Note that this macro needs to be expandable as do all the
+% shorthand macros in order for them to work in expansion-only
+% environments such as the argument of |\hyphenation|.
%
-% This macro expects the name of a group of shorthands in its first
-% argument and a shorthand character in its second argument. It
-% will expand to either |\bbl@firstcs| or |\bbl@scndcs|. Hence two
-% more arguments need to follow it.
+% This macro expects the name of a group of shorthands in its first
+% argument and a shorthand character in its second argument. It will
+% expand to either |\bbl@firstcs| or |\bbl@scndcs|. Hence two more
+% arguments need to follow it.
%
% \begin{macrocode}
\def\bbl@sh@select#1#2{%
@@ -8043,21 +8071,20 @@ wouldn’t exist.
\fi}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\active@prefix}
-% The command |\active@prefix| which is used in the expansion of
-% active characters has a function similar to |\OT1-cmd| in that it
-% |\protect|s the active character whenever |\protect| is
-% \emph{not} |\@typeset@protect|. The |\@gobble| is needed to remove
-% a token such as |\activechar:| (when the double colon was the
-% active character to be dealt with). There are two definitions,
-% depending of |\ifincsname| is available. If there is, the
-% expansion will be more robust.
+% \begin{macro}{\active@prefix}
+% The command |\active@prefix| which is used in the expansion of active
+% characters has a function similar to |\OT1-cmd| in that it
+% |\protect|s the active character whenever |\protect| is \emph{not}
+% |\@typeset@protect|. The |\@gobble| is needed to remove a token such
+% as |\activechar:| (when the double colon was the active character to
+% be dealt with). There are two definitions, depending of |\ifincsname|
+% is available. If there is, the expansion will be more robust.
%
% \begin{macrocode}
\begingroup
-\bbl@ifunset{ifincsname}% TODO. Ugly. Correct? Only Plain?
+\bbl@ifunset{ifincsname}%
{\gdef\active@prefix#1{%
\ifx\protect\@typeset@protect
\else
@@ -8086,29 +8113,29 @@ wouldn’t exist.
\endgroup
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\if@safe@actives}
-% In some circumstances it is necessary to be able to reset the
-% shorthand to its ‘normal’ value (usually the character with catcode
-% ‘other’) on the fly. For this purpose the switch |@safe@actives| is
-% available. The setting of this switch should be checked in the first
-% level expansion of |\active@char|\m{char}. When this expansion mode
-% is active (with |\@safe@activestrue|), something like
-% |"|$\sb{13}$|"|$\sb{13}$ becomes |"|$\sb{12}$|"|$\sb{12}$ in an
-% |\edef| (in other words, shorthands are |\string|’ed). This
-% contrasts with |\protected@edef|, where catcodes are always left
-% unchanged. Once converted, they can be used safely even after this
-% expansion mode is deactivated (with |\@safe@activefalse|).
+% \begin{macro}{\if@safe@actives}
+% In some circumstances it is necessary to be able to reset the
+% shorthand to its ‘normal’ value (usually the character with catcode
+% ‘other’) on the fly. For this purpose the switch |@safe@actives| is
+% available. The setting of this switch should be checked in the first
+% level expansion of |\active@char<char>|. When this expansion mode
+% is active (with |\@safe@activestrue|), something like
+% |"|$\sb{13}$|"|$\sb{13}$ becomes |"|$\sb{12}$|"|$\sb{12}$ in an
+% |\edef| (in other words, shorthands are |\string|’ed). This contrasts
+% with |\protected@edef|, where catcodes are always left unchanged.
+% Once converted, they can be used safely even after this expansion
+% mode is deactivated (with |\@safe@activefalse|).
%
% \begin{macrocode}
\newif\if@safe@actives
\@safe@activesfalse
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@restore@actives}
+% \begin{macro}{\bbl@restore@actives}
% When the output routine kicks in while the active characters were
% made ``safe'' this must be undone in the headers to prevent
% unexpected typeset results. For this situation we define a command to
@@ -8118,15 +8145,15 @@ wouldn’t exist.
\def\bbl@restore@actives{\if@safe@actives\@safe@activesfalse\fi}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@activate}
-% \begin{macro}{\bbl@deactivate}
+% \begin{macro}{\bbl@activate}
+% \begin{macro}{\bbl@deactivate}
%
% Both macros take one argument, like |\initiate@active@char|. The
% macro is used to change the definition of an active character to
-% expand to |\active@char|\m{char} in the case of |\bbl@activate|,
-% or |\normal@char|\m{char} in the case of |\bbl@deactivate|.
+% expand to |\active@char<char>| in the case of |\bbl@activate|,
+% or |\normal@char<char>| in the case of |\bbl@deactivate|.
%
% \begin{macrocode}
\chardef\bbl@activated\z@
@@ -8140,11 +8167,11 @@ wouldn’t exist.
\csname bbl@normal@\string#1\endcsname}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@firstcs}
-% \begin{macro}{\bbl@scndcs}
+% \begin{macro}{\bbl@firstcs}
+% \begin{macro}{\bbl@scndcs}
%
% These macros are used only as a trick when declaring shorthands.
%
@@ -8153,8 +8180,8 @@ wouldn’t exist.
\def\bbl@scndcs#1#2{\csname#2\endcsname}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\declare@shorthand}
% The command |\declare@shorthand| is used to declare a shorthand
@@ -8212,12 +8239,12 @@ wouldn’t exist.
\fi}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\textormath}
-% Some of the shorthands that will be declared by the language
-% definition files have to be usable in both text and mathmode. To
-% achieve this the helper macro |\textormath| is provided.
+% \begin{macro}{\textormath}
+% Some of the shorthands that will be declared by the language
+% definition files have to be usable in both text and mathmode. To
+% achieve this the helper macro |\textormath| is provided.
%
% \begin{macrocode}
\def\textormath{%
@@ -8228,34 +8255,33 @@ wouldn’t exist.
\fi}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\user@group}
-% \begin{macro}{\language@group}
-% \begin{macro}{\system@group}
-% The current concept of `shorthands' supports three levels or
-% groups of shorthands. For each level the name of the level or
-% group is stored in a macro. The default is to have a user group;
-% use language group `english' and have a system group called
-% `system'.
+% \begin{macro}{\user@group}
+% \begin{macro}{\language@group}
+% \begin{macro}{\system@group}
+% The current concept of `shorthands' supports three levels or groups
+% of shorthands. For each level the name of the level or group is
+% stored in a macro. The default is to have a user group; use language
+% group `english' and have a system group called `system'.
%
% \begin{macrocode}
\def\user@group{user}
-\def\language@group{english} % TODO. I don't like defaults
+\def\language@group{english}
\def\system@group{system}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\useshorthands}
+% \begin{macro}{\useshorthands}
%
-% This is the user level macro. It initializes and activates the
-% character for use as a shorthand character (ie, it's active in the
-% preamble). Languages can deactivate shorthands, so a starred
-% version is also provided which activates them always after the
-% language has been switched.
+% This is the user level macro. It initializes and activates the
+% character for use as a shorthand character (ie, it's active in the
+% preamble). Languages can deactivate shorthands, so a starred version
+% is also provided which activates them always after the language has
+% been switched.
%
% \begin{macrocode}
\def\useshorthands{%
@@ -8273,12 +8299,12 @@ wouldn’t exist.
{\bbl@error{shorthand-is-off}{}{#2}{}}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\defineshorthand}
+% \begin{macro}{\defineshorthand}
%
% Currently we only support two groups of user level shorthands,
-% named internally |user| and |user@<lang>| (language-dependent
+% named internally |user| and |user@<language>| (language-dependent
% user shorthands). By default, only the first one is taken into
% account, but if the former is also used (in the optional argument
% of |\defineshorthand|) a new level is inserted for it
@@ -8308,30 +8334,29 @@ wouldn’t exist.
\declare@shorthand{\bbl@tempb}{#2}{#3}}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\languageshorthands}
%
-% \begin{macro}{\languageshorthands}
+% A user level command to change the language from which shorthands are
+% used. Unfortunately, \babel{} currently does not keep track of
+% defined groups, and therefore there is no way to catch a possible
+% change in casing to fix it in the same way languages names are fixed.
%
-% A user level command to change the language from which shorthands
-% are used. Unfortunately, \babel{} currently does not keep track
-% of defined groups, and therefore there is no way to catch a
-% possible change in casing to fix it in the same way languages names
-% are fixed. [TODO].
-% %
% \begin{macrocode}
\def\languageshorthands#1{\def\language@group{#1}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\aliasshorthand}
+% \begin{macro}{\aliasshorthand}
%
% \textit{Deprecated}. First the new shorthand needs to be
% initialized. Then, we define the new shorthand in terms of the
% original one, but note with |\aliasshorthands{"}{/}| is
% |\active@prefix /\active@char/|, so we still need to let the
% latter to |\active@char"|.
-%
+%
% \begin{macrocode}
\def\aliasshorthand#1#2{%
\bbl@ifshorthand{#2}%
@@ -8348,18 +8373,18 @@ wouldn’t exist.
{\bbl@error{shorthand-is-off}{}{#2}{}}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\@notshorthand}
+% \begin{macro}{\@notshorthand}
%
% \begin{macrocode}
\def\@notshorthand#1{\bbl@error{not-a-shorthand}{#1}{}{}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\shorthandon}
-% \begin{macro}{\shorthandoff}
+% \begin{macro}{\shorthandon}
+% \begin{macro}{\shorthandoff}
%
% The first level definition of these macros just passes the
% argument on to |\bbl@switch@sh|, adding |\@nil| at the end to
@@ -8372,7 +8397,7 @@ wouldn’t exist.
\def\bbl@shorthandoff#1#2{\bbl@switch@sh#1#2\@nnil}
% \end{macrocode}
%
-% \begin{macro}{\bbl@switch@sh}
+% \begin{macro}{\bbl@switch@sh}
%
% The macro |\bbl@switch@sh| takes the list of characters apart one
% by one and subsequently switches the category code of the
@@ -8418,9 +8443,9 @@ wouldn’t exist.
\fi}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% Note the value is that at the expansion time; eg, in the preamble
% shorthands are usually deactivated.
@@ -8461,8 +8486,8 @@ wouldn’t exist.
\newcommand\ifbabelshorthand[3]{\bbl@ifunset{bbl@active@\string#1}{#3}{#2}}
% \end{macrocode}
%
-% \begin{macro}{\bbl@prim@s}
-% \begin{macro}{\bbl@pr@m@s}
+% \begin{macro}{\bbl@prim@s}
+% \begin{macro}{\bbl@pr@m@s}
%
% One of the internal macros that are involved in substituting |\prime|
% for each right quote in mathmode is |\prim@s|. This checks if the
@@ -8492,8 +8517,8 @@ wouldn’t exist.
\endgroup
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% Usually the |~| is active and expands to \verb*=\penalty\@M\ =.
% When it is written to the \file{.aux} file it is written
@@ -8511,20 +8536,20 @@ wouldn’t exist.
\bbl@activate{~}
% \end{macrocode}
%
-% \begin{macro}{\OT1dqpos}
-% \begin{macro}{\T1dqpos}
-% The position of the double quote character is different for the
-% OT1 and T1 encodings. It will later be selected using the
-% |\f@encoding| macro. Therefore we define two macros here to store
-% the position of the character in these encodings.
+% \begin{macro}{\OT1dqpos}
+% \begin{macro}{\T1dqpos}
+% The position of the double quote character is different for the OT1
+% and T1 encodings. It will later be selected using the |\f@encoding|
+% macro. Therefore we define two macros here to store the position of
+% the character in these encodings.
%
% \begin{macrocode}
\expandafter\def\csname OT1dqpos\endcsname{127}
\expandafter\def\csname T1dqpos\endcsname{4}
% \end{macrocode}
%
-% When the macro |\f@encoding| is undefined (as it is in plain
-% \TeX) we define it here to expand to \texttt{OT1}
+% When the macro |\f@encoding| is undefined (as it is in plain \TeX) we
+% define it here to expand to \texttt{OT1}
%
% \begin{macrocode}
\ifx\f@encoding\@undefined
@@ -8532,21 +8557,20 @@ wouldn’t exist.
\fi
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \subsection{Language attributes}
%
-% Language attributes provide a means to give the user control over
-% which features of the language definition files he wants to
-% enable.
+% Language attributes provide a means to give the user control over
+% which features of the language definition files he wants to enable.
%
-% \begin{macro}{\languageattribute}
+% \begin{macro}{\languageattribute}
%
-% The macro |\languageattribute| checks whether its arguments are
-% valid and then activates the selected language attribute.
-% First check whether the language is known, and then process each
-% attribute in the list.
+% The macro |\languageattribute| checks whether its arguments are valid
+% and then activates the selected language attribute. First check
+% whether the language is known, and then process each attribute in the
+% list.
%
% \begin{macrocode}
\bbl@trace{Language attributes}
@@ -8590,25 +8614,24 @@ wouldn’t exist.
\@onlypreamble\languageattribute
% \end{macrocode}
%
-% The error text to be issued when an unknown attribute is
-% selected.
+% The error text to be issued when an unknown attribute is selected.
%
% \begin{macrocode}
\newcommand*{\@attrerr}[2]{%
\bbl@error{unknown-attribute}{#1}{#2}{}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@declare@ttribute}
-% This command adds the new language/attribute combination to the
-% list of known attributes.
+% \begin{macro}{\bbl@declare@ttribute}
+% This command adds the new language/attribute combination to the list
+% of known attributes.
%
-% Then it defines a control sequence to be executed when the
-% attribute is used in a document. The result of this should be
-% that the macro |\extras...| for the current language is extended,
-% otherwise the attribute will not work as its code is removed from
-% memory at |\begin{document}|.
+% Then it defines a control sequence to be executed when the attribute
+% is used in a document. The result of this should be that the macro
+% |\extras...| for the current language is extended, otherwise the
+% attribute will not work as its code is removed from memory at
+% |\begin{document}|.
%
% \begin{macrocode}
\def\bbl@declare@ttribute#1#2#3{%
@@ -8620,18 +8643,18 @@ wouldn’t exist.
\expandafter\def\csname#1@attr@#2\endcsname{#3}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@ifattributeset}
-% This internal macro has 4 arguments. It can be used to interpret
-% \TeX\ code based on whether a certain attribute was set. This
-% command should appear inside the argument to |\AtBeginDocument|
-% because the attributes are set in the document preamble,
-% \emph{after} \babel\ is loaded.
+% \begin{macro}{\bbl@ifattributeset}
+% This internal macro has 4 arguments. It can be used to interpret
+% \TeX\ code based on whether a certain attribute was set. This command
+% should appear inside the argument to |\AtBeginDocument| because the
+% attributes are set in the document preamble, \emph{after} \babel\ is
+% loaded.
%
-% The first argument is the language, the second argument the
-% attribute being checked, and the third and fourth arguments are
-% the true and false clauses.
+% The first argument is the language, the second argument the attribute
+% being checked, and the third and fourth arguments are the true and
+% false clauses.
%
% \begin{macrocode}
\def\bbl@ifattributeset#1#2#3#4{%
@@ -8647,16 +8670,16 @@ wouldn’t exist.
\fi}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@ifknown@ttrib}
-% An internal macro to check whether a given language/attribute is
-% known. The macro takes 4 arguments, the language/attribute, the
-% attribute list, the \TeX-code to be executed when the attribute
-% is known and the \TeX-code to be executed otherwise.
+% \begin{macro}{\bbl@ifknown@ttrib}
+% An internal macro to check whether a given language/attribute is
+% known. The macro takes 4 arguments, the language/attribute, the
+% attribute list, the \TeX-code to be executed when the attribute is
+% known and the \TeX-code to be executed otherwise.
%
-% We first assume the attribute is unknown. Then we loop over the
-% list of known attributes, trying to find a match.
+% We first assume the attribute is unknown. Then we loop over the list
+% of known attributes, trying to find a match.
%
% \begin{macrocode}
\def\bbl@ifknown@ttrib#1#2{%
@@ -8670,11 +8693,11 @@ wouldn’t exist.
\bbl@tempa}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@clear@ttribs}
-% This macro removes all the attribute code from \LaTeX's memory at
-% |\begin{document}| time (if any is present).
+% \begin{macro}{\bbl@clear@ttribs}
+% This macro removes all the attribute code from \LaTeX's memory at
+% |\begin{document}| time (if any is present).
%
% \begin{macrocode}
\def\bbl@clear@ttribs{%
@@ -8688,43 +8711,41 @@ wouldn’t exist.
\AtBeginDocument{\bbl@clear@ttribs}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \subsection{Support for saving macro definitions}
%
-% To save the meaning of control sequences using |\babel@save|, we
-% use temporary control sequences. To save hash table entries for
-% these control sequences, we don't use the name of the control
-% sequence to be saved to construct the temporary name. Instead we
-% simply use the value of a counter, which is reset to zero each time
-% we begin to save new values. This works well because we release
-% the saved meanings before we begin to save a new set of control
-% sequence meanings (see |\selectlanguage| and |\originalTeX|). Note
-% undefined macros are not undefined any more when saved -- they are
-% |\relax|'ed.
+% To save the meaning of control sequences using |\babel@save|, we use
+% temporary control sequences. To save hash table entries for these
+% control sequences, we don't use the name of the control sequence to
+% be saved to construct the temporary name. Instead we simply use the
+% value of a counter, which is reset to zero each time we begin to save
+% new values. This works well because we release the saved meanings
+% before we begin to save a new set of control sequence meanings (see
+% |\selectlanguage| and |\originalTeX|). Note undefined macros are not
+% undefined any more when saved -- they are |\relax|'ed.
%
-% \begin{macro}{\babel@savecnt}
-% \begin{macro}{\babel@beginsave}
-% The initialization of a new save cycle: reset the counter to
-% zero.
+% \begin{macro}{\babel@savecnt}
+% \begin{macro}{\babel@beginsave}
+% The initialization of a new save cycle: reset the counter to zero.
%
% \begin{macrocode}
\bbl@trace{Macros for saving definitions}
\def\babel@beginsave{\babel@savecnt\z@}
% \end{macrocode}
%
-% Before it's forgotten, allocate the counter and initialize all.
+% Before it's forgotten, allocate the counter and initialize all.
%
% \begin{macrocode}
\newcount\babel@savecnt
\babel@beginsave
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\babel@save}
-% \begin{macro}{\babel@savevariable}
+% \begin{macro}{\babel@save}
+% \begin{macro}{\babel@savevariable}
%
% The macro |\babel@save|\meta{csname} saves the current meaning of the
% control sequence \meta{csname} to
@@ -8756,11 +8777,11 @@ wouldn’t exist.
\bbl@exp{\def\\\originalTeX{\the\toks@\the#1\relax}}}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@frenchspacing}
-% \begin{macro}{\bbl@nonfrenchspacing}
+% \begin{macro}{\bbl@frenchspacing}
+% \begin{macro}{\bbl@nonfrenchspacing}
% Some languages need to have |\frenchspacing| in effect. Others
% don't want that. The command |\bbl@frenchspacing| switches it on
% when it isn't already in effect and |\bbl@nonfrenchspacing|
@@ -8808,15 +8829,15 @@ wouldn’t exist.
\fi\fi\fi}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \subsection{Short tags}
%
% \begin{macro}{\babeltags}
% This macro is straightforward. After zapping spaces, we
-% loop over the list and define the macros |\text|\m{tag} and
-% |\|\m{tag}. Definitions are first expanded so that they don't
+% loop over the list and define the macros |\text<tag>| and
+% |\<tag>|. Definitions are first expanded so that they don't
% contain |\csname| but the actual macro.
%
% \begin{macrocode}
@@ -8845,7 +8866,7 @@ wouldn’t exist.
%
% This macro saves hyphenation exceptions. Two macros are used to
% store them: |\bbl@hyphenation@| for the global ones and
-% |\bbl@hyphenation<lang>| for language ones. See |\bbl@patterns|
+% |\bbl@hyphenation<language>| for language ones. See |\bbl@patterns|
% above for further details. We make sure there is a space between
% words when multiple commands are used.
%
@@ -8878,9 +8899,35 @@ wouldn’t exist.
\fi}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@allowhyphens}
+% \begin{macro}{\babelhyphenmins}
+%
+% Only \LaTeX (basically because it’s defined with a \LaTeX{} tool).
+%
+% \begin{macrocode}
+\ifx\NewDocumentCommand\@undefined\else
+ \NewDocumentCommand\babelhyphenmins{sommo}{%
+ \IfNoValueTF{#2}%
+ {\protected@edef\bbl@hyphenmins@{\set@hyphenmins{#3}{#4}}%
+ \IfValueT{#5}{%
+ \protected@edef\bbl@hyphenatmin@{\hyphenationmin=#5\relax}}%
+ \IfBooleanT{#1}{%
+ \lefthyphenmin=#3\relax
+ \righthyphenmin=#4\relax
+ \IfValueT{#5}{\hyphenationmin=#5\relax}}}%
+ {\edef\bbl@tempb{\zap@space#2 \@empty}%
+ \bbl@for\bbl@tempa\bbl@tempb{%
+ \@namedef{bbl@hyphenmins@\bbl@tempa}{\set@hyphenmins{#3}{#4}}%
+ \IfValueT{#5}{%
+ \@namedef{bbl@hyphenatmin@\bbl@tempa}{\hyphenationmin=#5\relax}}}%
+ \IfBooleanT{#1}{\bbl@error{hyphenmins-args}{}{}{}}}}
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\bbl@allowhyphens}
%
% This macro makes hyphenation possible. Basically its definition
% is nothing more than |\nobreak| |\hskip| \texttt{0pt plus
@@ -8893,7 +8940,7 @@ wouldn’t exist.
\def\allowhyphens{\ifx\cf@encoding\bbl@t@one\else\bbl@allowhyphens\fi}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \begin{macro}{\babelhyphen}
%
@@ -8935,7 +8982,7 @@ wouldn’t exist.
\leavevmode\ifdim\lastskip>\z@\mbox{#1}\else#1\fi}
% \end{macrocode}
%
-% The following macro inserts the hyphen char.
+% The following macro inserts the hyphen char.
%
% \begin{macrocode}
\def\bbl@hyphenchar{%
@@ -8946,9 +8993,9 @@ wouldn’t exist.
\fi}
% \end{macrocode}
%
-% Finally, we define the hyphen ``types''. Their names will not
-% change, so you may use them in |ldf|'s. After a space, the
-% |\mbox| in |\bbl@hy@nobreak| is redundant.
+% Finally, we define the hyphen ``types''. Their names will not change,
+% so you may use them in |ldf|'s. After a space, the |\mbox| in
+% |\bbl@hy@nobreak| is redundant.
%
% \begin{macrocode}
\def\bbl@hy@soft{\bbl@usehyphen{\discretionary{\bbl@hyphenchar}{}{}}}
@@ -8967,18 +9014,18 @@ wouldn’t exist.
\def\bbl@hy@@empty{\discretionary{}{}{}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bbl@disc}
-% For some languages the macro |\bbl@disc| is used to ease the
-% insertion of discretionaries for letters that behave `abnormally'
-% at a breakpoint.
+% \begin{macro}{\bbl@disc}
+% For some languages the macro |\bbl@disc| is used to ease the
+% insertion of discretionaries for letters that behave `abnormally' at
+% a breakpoint.
%
% \begin{macrocode}
\def\bbl@disc#1#2{\nobreak\discretionary{#2-}{}{#1}\bbl@allowhyphens}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \subsection{Multiencoding strings}
%
@@ -9143,14 +9190,14 @@ wouldn’t exist.
% \end{macrocode}
%
% There are two versions of |\bbl@scswitch|. The first version is used
-% when |ldf|s are read, and it makes sure |\|\m{group}\m{language} is
+% when |ldf|s are read, and it makes sure |\<group><language>| is
% reset, but only once (|\bbl@screset| is used to keep track of this).
% The second version is used in the preamble and packages loaded after
% \babel{} and does nothing.
%
% The macro |\bbl@forlang| loops |\bbl@L| but its body is executed only
% if the value is in |\BabelLanguages| (inside \babel) or
-% |\date|\m{language} is defined (after \babel{} has been loaded).
+% |\date<language>| is defined (after \babel{} has been loaded).
% There are also two version of |\bbl@forlang|. The first one skips the
% current iteration if the language is not in |\BabelLanguages| (used
% in |ldf|s), and the second one skips undefined languages (after
@@ -9211,7 +9258,7 @@ wouldn’t exist.
\csname\bbl@LC\expandafter\endcsname\expandafter{\BabelString}}}
% \end{macrocode}
%
-% A little auxiliary command sets the string. TODO: Formerly used with
+% A little auxiliary command sets the string. Formerly used with
% casing. Very likely no longer necessary, although it’s used in
% |\setlocalecaption|.
%
@@ -9285,9 +9332,9 @@ wouldn’t exist.
%<</Macros local to BabelCommands>>
% \end{macrocode}
%
-% There are 3 helper macros which do most of the work for you.
+% There are 3 helper macros which do most of the work for you.
%
-% \begin{macrocode}
+% \begin{macrocode}
\newcommand\BabelLower[2]{% one to one.
\ifnum\lccode#1=#2\else
\babel@savevariable{\lccode#1}%
@@ -9328,8 +9375,8 @@ wouldn’t exist.
%<</More package options>>
% \end{macrocode}
%
-% Initial setup to provide a default behavior if |hyphenmap|
-% is not set.
+% Initial setup to provide a default behavior if |hyphenmap| is not
+% set.
%
% \begin{macrocode}
\AtEndOfPackage{%
@@ -9345,7 +9392,7 @@ wouldn’t exist.
% separates these two steps.
%
% \begin{macrocode}
-\newcommand\setlocalecaption{% TODO. Catch typos.
+\newcommand\setlocalecaption{%
\@ifstar\bbl@setcaption@s\bbl@setcaption@x}
\def\bbl@setcaption@x#1#2#3{% language caption-name string
\bbl@trim@def\bbl@tempa{#2}%
@@ -9360,7 +9407,7 @@ wouldn’t exist.
{\expandafter\string\csname #2name\endcsname}%
{\bbl@tempd}%
\ifin@ % Renew caption
- \bbl@xin@{\string\bbl@scset}{\bbl@tempd}%
+ \bbl@xin@{\string\bbl@scset}{\bbl@tempd}%
\ifin@
\bbl@exp{%
\\\bbl@ifsamestring{\bbl@tempa}{\languagename}%
@@ -9385,7 +9432,7 @@ wouldn’t exist.
{}}%
\else % Old way, but defined in the new way
\bbl@exp{%
- \\\bbl@add\<captions#1>{\def\<#2name>{\<#1#2name>}}%
+ \\\bbl@add\<captions#1>{\def\<#2name>{\<#1#2name>}}%
\\\bbl@ifsamestring{\bbl@tempa}{\languagename}%
{\def\<#2name>{\<#1#2name>}}%
{}}%
@@ -9399,12 +9446,11 @@ wouldn’t exist.
\bbl@toglobal\bbl@captionslist
\fi
\fi}
-% \def\bbl@setcaption@s#1#2#3{} % TODO. Not yet implemented (w/o 'name')
% \end{macrocode}
%
% \subsection{Macros common to a number of languages}
%
-% \begin{macro}{\set@low@box}
+% \begin{macro}{\set@low@box}
%
% The following macro is used to lower quotes to the same level as
% the comma. It prepares its argument in box register~0.
@@ -9416,11 +9462,11 @@ wouldn’t exist.
\setbox\z@\hbox{\lower\dimen\z@ \box\z@}\ht\z@\ht\tw@ \dp\z@\dp\tw@}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\save@sf@q}
-% The macro |\save@sf@q| is used to save and reset the current
-% space factor.
+% \begin{macro}{\save@sf@q}
+% The macro |\save@sf@q| is used to save and reset the current space
+% factor.
%
% \begin{macrocode}
\def\save@sf@q#1{\leavevmode
@@ -9429,7 +9475,7 @@ wouldn’t exist.
\endgroup}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \subsection{Making glyphs available}
%
@@ -9439,7 +9485,7 @@ wouldn’t exist.
%
% \subsubsection{Quotation marks}
%
-% \begin{macro}{\quotedblbase}
+% \begin{macro}{\quotedblbase}
% In the \texttt{T1} encoding the opening double quote at the
% baseline is available as a separate character, accessible via
% |\quotedblbase|. In the \texttt{OT1} encoding it is not
@@ -9460,10 +9506,10 @@ wouldn’t exist.
\UseTextSymbol{OT1}{\quotedblbase}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\quotesinglbase}
-% We also need the single quote character at the baseline.
+% \begin{macro}{\quotesinglbase}
+% We also need the single quote character at the baseline.
%
% \begin{macrocode}
\ProvideTextCommand{\quotesinglbase}{OT1}{%
@@ -9471,18 +9517,18 @@ wouldn’t exist.
\box\z@\kern-.04em\bbl@allowhyphens}}
% \end{macrocode}
%
-% Make sure that when an encoding other than \texttt{OT1} or
-% \texttt{T1} is used this glyph can still be typeset.
+% Make sure that when an encoding other than \texttt{OT1} or
+% \texttt{T1} is used this glyph can still be typeset.
%
% \begin{macrocode}
\ProvideTextCommandDefault{\quotesinglbase}{%
\UseTextSymbol{OT1}{\quotesinglbase}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\guillemetleft}
-% \begin{macro}{\guillemetright}
+% \begin{macro}{\guillemetleft}
+% \begin{macro}{\guillemetright}
% The guillemet characters are not available in \texttt{OT1}
% encoding. They are faked. (Wrong names with o preserved for
% compatibility.)
@@ -9532,13 +9578,13 @@ wouldn’t exist.
\UseTextSymbol{OT1}{\guillemotright}}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\guilsinglleft}
-% \begin{macro}{\guilsinglright}
-% The single guillemets are not available in \texttt{OT1}
-% encoding. They are faked.
+% \begin{macro}{\guilsinglleft}
+% \begin{macro}{\guilsinglright}
+% The single guillemets are not available in \texttt{OT1} encoding.
+% They are faked.
%
% \begin{macrocode}
\ProvideTextCommand{\guilsinglleft}{OT1}{%
@@ -9567,13 +9613,13 @@ wouldn’t exist.
\UseTextSymbol{OT1}{\guilsinglright}}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \subsubsection{Letters}
%
-% \begin{macro}{\ij}
-% \begin{macro}{\IJ}
+% \begin{macro}{\ij}
+% \begin{macro}{\IJ}
% The dutch language uses the letter `ij'. It is available in
% \texttt{T1} encoded fonts, but not in the \texttt{OT1} encoded
% fonts. Therefore we fake it for the \texttt{OT1} encoding.
@@ -9587,8 +9633,8 @@ wouldn’t exist.
\DeclareTextCommand{\IJ}{T1}{\char156}
% \end{macrocode}
%
-% Make sure that when an encoding other than \texttt{OT1} or
-% \texttt{T1} is used these glyphs can still be typeset.
+% Make sure that when an encoding other than \texttt{OT1} or
+% \texttt{T1} is used these glyphs can still be typeset.
%
% \begin{macrocode}
\ProvideTextCommandDefault{\ij}{%
@@ -9597,8 +9643,8 @@ wouldn’t exist.
\UseTextSymbol{OT1}{\IJ}}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\dj}
% \begin{macro}{\DJ}
@@ -9632,8 +9678,8 @@ wouldn’t exist.
\DeclareTextCommand{\DJ}{OT1}{\DDJ@ D}
% \end{macrocode}
%
-% Make sure that when an encoding other than \texttt{OT1} or
-% \texttt{T1} is used these glyphs can still be typeset.
+% Make sure that when an encoding other than \texttt{OT1} or
+% \texttt{T1} is used these glyphs can still be typeset.
%
% \begin{macrocode}
\ProvideTextCommandDefault{\dj}{%
@@ -9642,41 +9688,41 @@ wouldn’t exist.
\UseTextSymbol{OT1}{\DJ}}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\SS}
-% For the \texttt{T1} encoding |\SS| is defined and selects a
-% specific glyph from the font, but for other encodings it is not
-% available. Therefore we make it available here.
+% \begin{macro}{\SS}
+% For the \texttt{T1} encoding |\SS| is defined and selects a specific
+% glyph from the font, but for other encodings it is not available.
+% Therefore we make it available here.
%
% \begin{macrocode}
\DeclareTextCommand{\SS}{OT1}{SS}
\ProvideTextCommandDefault{\SS}{\UseTextSymbol{OT1}{\SS}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \subsubsection{Shorthands for quotation marks}
%
-% Shorthands are provided for a number of different quotation
-% marks, which make them usable both outside and inside mathmode.
-% They are defined with |\ProvideTextCommandDefault|, but this is
-% very likely not required because their definitions are based on
-% encoding-dependent macros.
+% Shorthands are provided for a number of different quotation marks,
+% which make them usable both outside and inside mathmode. They are
+% defined with |\ProvideTextCommandDefault|, but this is very likely
+% not required because their definitions are based on
+% encoding-dependent macros.
%
-% \begin{macro}{\glq}
-% \begin{macro}{\grq}
+% \begin{macro}{\glq}
+% \begin{macro}{\grq}
%
-% The `german' single quotes.
+% The `german' single quotes.
%
% \begin{macrocode}
\ProvideTextCommandDefault{\glq}{%
\textormath{\quotesinglbase}{\mbox{\quotesinglbase}}}
% \end{macrocode}
%
-% The definition of |\grq| depends on the fontencoding. With
-% \texttt{T1} encoding no extra kerning is needed.
+% The definition of |\grq| depends on the fontencoding. With
+% \texttt{T1} encoding no extra kerning is needed.
%
% \begin{macrocode}
\ProvideTextCommand{\grq}{T1}{%
@@ -9690,21 +9736,21 @@ wouldn’t exist.
\ProvideTextCommandDefault{\grq}{\UseTextSymbol{OT1}\grq}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\glqq}
-% \begin{macro}{\grqq}
+% \begin{macro}{\glqq}
+% \begin{macro}{\grqq}
%
-% The `german' double quotes.
+% The `german' double quotes.
%
% \begin{macrocode}
\ProvideTextCommandDefault{\glqq}{%
\textormath{\quotedblbase}{\mbox{\quotedblbase}}}
% \end{macrocode}
%
-% The definition of |\grqq| depends on the fontencoding. With
-% \texttt{T1} encoding no extra kerning is needed.
+% The definition of |\grqq| depends on the fontencoding. With
+% \texttt{T1} encoding no extra kerning is needed.
%
% \begin{macrocode}
\ProvideTextCommand{\grqq}{T1}{%
@@ -9718,13 +9764,13 @@ wouldn’t exist.
\ProvideTextCommandDefault{\grqq}{\UseTextSymbol{OT1}\grqq}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\flq}
-% \begin{macro}{\frq}
+% \begin{macro}{\flq}
+% \begin{macro}{\frq}
%
-% The `french' single guillemets.
+% The `french' single guillemets.
%
% \begin{macrocode}
\ProvideTextCommandDefault{\flq}{%
@@ -9733,13 +9779,13 @@ wouldn’t exist.
\textormath{\guilsinglright}{\mbox{\guilsinglright}}}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\flqq}
-% \begin{macro}{\frqq}
+% \begin{macro}{\flqq}
+% \begin{macro}{\frqq}
%
-% The `french' double guillemets.
+% The `french' double guillemets.
%
% \begin{macrocode}
\ProvideTextCommandDefault{\flqq}{%
@@ -9748,24 +9794,24 @@ wouldn’t exist.
\textormath{\guillemetright}{\mbox{\guillemetright}}}
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \subsubsection{Umlauts and tremas}
%
-% The command |\"| needs to have a different effect for different
-% languages. For German for instance, the `umlaut' should be
-% positioned lower than the default position for placing it over
-% the letters a, o, u, A, O and U. When placed over an e, i, E or I
-% it can retain its normal position. For Dutch the same glyph is
-% always placed in the lower position.
+% The command |\"| needs to have a different effect for different
+% languages. For German for instance, the `umlaut' should be positioned
+% lower than the default position for placing it over the letters a, o,
+% u, A, O and U. When placed over an e, i, E or I it can retain its
+% normal position. For Dutch the same glyph is always placed in the
+% lower position.
%
-% \begin{macro}{\umlauthigh}
+% \begin{macro}{\umlauthigh}
%
-% \begin{macro}{\umlautlow}
-% To be able to provide both positions of |\"| we provide two
-% commands to switch the positioning, the default will be
-% |\umlauthigh| (the normal positioning).
+% \begin{macro}{\umlautlow}
+% To be able to provide both positions of |\"| we provide two commands
+% to switch the positioning, the default will be |\umlauthigh| (the
+% normal positioning).
%
% \begin{macrocode}
\def\umlauthigh{%
@@ -9780,15 +9826,13 @@ wouldn’t exist.
\umlauthigh
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\lower@umlaut}
-% The command |\lower@umlaut| is used to position the |\"| closer
-% to the letter.
+% \end{macro}
+% \end{macro}
%
-% We want the umlaut character lowered, nearer to the letter. To do
-% this we need an extra \meta{dimen} register.
+% \begin{macro}{\lower@umlaut}
+% The command |\lower@umlaut| is used to position the |\"| closer to
+% the letter. We want the umlaut character lowered, nearer to the
+% letter. To do this we need an extra \meta{dimen} register.
%
% \begin{macrocode}
\expandafter\ifx\csname U@D\endcsname\relax
@@ -9796,20 +9840,19 @@ wouldn’t exist.
\fi
% \end{macrocode}
%
-% The following code fools \TeX's \texttt{make\_accent} procedure
-% about the current x-height of the font to force another placement
-% of the umlaut character.
-% First we have to save the current x-height of the font, because
-% we'll change this font dimension and this is always done
-% globally.
+% The following code fools \TeX's \texttt{make\_accent} procedure about
+% the current x-height of the font to force another placement of the
+% umlaut character. First we have to save the current x-height of the
+% font, because we'll change this font dimension and this is always
+% done globally.
%
-% Then we compute the new x-height in such a way that the umlaut
-% character is lowered to the base character. The value of
-% \texttt{.45ex} depends on the \MF\ parameters with which the
-% fonts were built. (Just try out, which value will look best.)
-% If the new x-height is too low, it is not changed.
-% Finally we call the |\accent| primitive, reset the old x-height
-% and insert the base character in the argument.
+% Then we compute the new x-height in such a way that the umlaut
+% character is lowered to the base character. The value of
+% \texttt{.45ex} depends on the \MF\ parameters with which the fonts
+% were built. (Just try out, which value will look best.) If the new
+% x-height is too low, it is not changed. Finally we call the |\accent|
+% primitive, reset the old x-height and insert the base character in
+% the argument.
%
% \begin{macrocode}
\def\lower@umlaut#1{%
@@ -9824,7 +9867,7 @@ wouldn’t exist.
\egroup}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% For all vowels we declare |\"| to be a composite command which
% uses |\bbl@umlauta| or |\bbl@umlaute| to position the umlaut
@@ -9833,9 +9876,9 @@ wouldn’t exist.
% option \Lopt{OT1} is used. Therefore these declarations are
% postponed until the beginning of the document. Note these
% definitions only apply to some languages, but
-% babel sets them for \textit{all} languages -- you may want to
+% \babel{} sets them for \textit{all} languages -- you may want to
% redefine |\bbl@umlauta| and/or |\bbl@umlaute| for a language
-% in the corresponding |ldf| (using the babel switching mechanism,
+% in the corresponding |ldf| (using the \babel{} switching mechanism,
% of course).
%
% \begin{macrocode}
@@ -9875,7 +9918,8 @@ wouldn’t exist.
% \begin{macrocode}
\bbl@trace{Bidi layout}
\providecommand\IfBabelLayout[3]{#3}%
-%<-core>
+%</package|core>
+%<*package>
\newcommand\BabelPatchSection[1]{%
\@ifundefined{#1}{}{%
\bbl@exp{\let\<bbl@ss@#1>\<#1>}%
@@ -9909,11 +9953,12 @@ wouldn’t exist.
\select@language@x{\bbl@main@language}}}{}
\IfBabelLayout{captions}%
{\BabelPatchSection{caption}}{}
-%<+core>
+%</package>
+%<*package|core>
% \end{macrocode}
%
% \subsection{Load engine specific macros}
-%
+%
% Some macros are not defined in all engines, so, after loading the
% files define them if necessary to raise an error.
%
@@ -9967,7 +10012,7 @@ wouldn’t exist.
\global\let\bbl@inidata\@empty
\global\let\bbl@extend@ini\@gobble
\global\let\bbl@included@inis\@empty
- \gdef\bbl@key@list{;}%
+ \gdef\bbl@key@list{;}%
\bbl@forkv{#1}{%
\in@{/}{##1}% With /, (re)sets a value in the ini
\ifin@
@@ -10014,7 +10059,7 @@ wouldn’t exist.
{}%
\let\bbl@KVP@date\@empty
\fi
- \let\bbl@KVP@captions@@\bbl@KVP@captions % TODO. A dirty hack
+ \let\bbl@KVP@captions@@\bbl@KVP@captions
\ifx\bbl@KVP@captions\@nnil
\let\bbl@KVP@captions\bbl@KVP@import
\fi
@@ -10109,7 +10154,6 @@ wouldn’t exist.
\fi
\bbl@exp{\\\bbl@add\\\bbl@starthyphens
{\\\bbl@patterns@lua{\languagename}}}%
- % TODO - error/warning if no script
\directlua{
if Babel.script_blocks['\bbl@cl{sbcp}'] then
Babel.loc_to_scr[\the\localeid] = Babel.script_blocks['\bbl@cl{sbcp}']
@@ -10180,7 +10224,7 @@ wouldn’t exist.
\bbl@csarg\edef{intsp@#2}{\bbl@KVP@intraspace}%
\fi
\bbl@provide@intraspace
- % == Line breaking: CJK quotes == TODO -> @extras
+ % == Line breaking: CJK quotes ==
\ifcase\bbl@engine\or
\bbl@xin@{/c}{/\bbl@cl{lnbrk}}%
\ifin@
@@ -10416,7 +10460,7 @@ wouldn’t exist.
% Load the basic parameters (ids, typography, counters, and a few
% more), while captions and dates are left out. But it may happen some
% data has been loaded before automatically, so we first discard the
-% saved values. (TODO. But preserving previous values would be useful.)
+% saved values.
%
% \begin{macrocode}
\def\bbl@load@basic#1{%
@@ -10425,7 +10469,7 @@ wouldn’t exist.
\bbl@csarg\let{lname@\languagename}\relax
\fi
\fi
- \bbl@ifunset{bbl@lname@#1}%
+ \bbl@ifunset{bbl@lname@#1}%
{\def\BabelBeforeIni##1##2{%
\begingroup
\let\bbl@ini@captions@aux\@gobbletwo
@@ -10454,7 +10498,7 @@ wouldn’t exist.
\bbl@replace\bbl@KVP@hyphenrules{ }{,}%
\bbl@foreach\bbl@KVP@hyphenrules{%
\ifnum\@tempcnta=\m@ne % if not yet found
- \bbl@ifsamestring{##1}{+}%
+ \bbl@ifsamestring{##1}{+}%
{\bbl@carg\addlanguage{l@##1}}%
{}%
\bbl@ifunset{l@##1}% After a possible +
@@ -10521,7 +10565,7 @@ wouldn’t exist.
\bbl@trim\toks@{#2}%
\bbl@xin@{;\bbl@section/\bbl@tempa;}{\bbl@key@list}%
\ifin@\else
- \bbl@xin@{,identification/include.}%
+ \bbl@xin@{,identification/include.}%
{,\bbl@section/\bbl@tempa}%
\ifin@\xdef\bbl@included@inis{\the\toks@}\fi
\bbl@exp{%
@@ -10622,7 +10666,7 @@ wouldn’t exist.
\setlocalecaption{#1}{##1}{##2}}%
\def\bbl@inikv@captions##1##2{%
\bbl@ini@captions@aux{##1}{##2}}%
- \def\bbl@stringdef##1##2{\gdef##1{##2}}%
+ \def\bbl@stringdef##1##2{\gdef##1{##2}}%
\def\bbl@exportkey##1##2##3{%
\bbl@ifunset{bbl@@kv@##2}{}%
{\expandafter\ifx\csname bbl@@kv@##2\endcsname\@empty\else
@@ -10665,7 +10709,7 @@ wouldn’t exist.
\xdef\bbl@calendars{\bbl@calendars,\bbl@tempa}%
\fi
\bbl@exp{%
- \def\<bbl@inikv@#1>####1####2{%
+ \def\<bbl@inikv@#1>####1####2{%
\\\bbl@inidate####1...\relax{####2}{\bbl@tempa}}}%
\fi}
% \end{macrocode}
@@ -10676,7 +10720,7 @@ wouldn’t exist.
% file has not yet been read), and define a dummy macro. When the |ini|
% file is read, just skip the corresponding key and reset the macro (in
% |\bbl@inistore| above).
-%
+%
%
% \begin{macrocode}
\def\bbl@renewinikey#1/#2\@@#3{%
@@ -10713,7 +10757,7 @@ wouldn’t exist.
% many other sources do (as a \textit{private use extension}). For
% consistency with other single-letter subtags or ‘singletons’, here
% is considered an extension, too.
-%
+%
% \begin{macrocode}
\def\bbl@iniwarning#1{%
\bbl@ifunset{bbl@@kv@identification.warning#1}{}%
@@ -10768,7 +10812,7 @@ wouldn’t exist.
\bbl@exportkey{lnbrk}{typography.linebreaking}{h}%
\bbl@exportkey{hyphr}{typography.hyphenrules}{}%
\bbl@exportkey{lfthm}{typography.lefthyphenmin}{2}%
- \bbl@exportkey{rgthm}{typography.righthyphenmin}{3}%
+ \bbl@exportkey{rgthm}{typography.righthyphenmin}{3}%
\bbl@exportkey{prehc}{typography.prehyphenchar}{}%
\bbl@exportkey{hyotl}{typography.hyphenate.other.locale}{}%
\bbl@exportkey{hyots}{typography.hyphenate.other.script}{}%
@@ -10881,9 +10925,9 @@ wouldn’t exist.
\def\bbl@toreplace{#1{}}%
\bbl@replace\bbl@toreplace{[ ]}{\nobreakspace{}}%
\bbl@replace\bbl@toreplace{[[}{\csname}%
- \bbl@replace\bbl@toreplace{[}{\csname the}%
+ \bbl@replace\bbl@toreplace{[}{\csname the}%
\bbl@replace\bbl@toreplace{]]}{name\endcsname{}}%
- \bbl@replace\bbl@toreplace{]}{\endcsname{}}%
+ \bbl@replace\bbl@toreplace{]}{\endcsname{}}%
\bbl@xin@{,\bbl@tempa,}{,chapter,appendix,part,}%
\ifin@
\@nameuse{bbl@patch\bbl@tempa}%
@@ -10922,7 +10966,7 @@ wouldn’t exist.
%
% \textbf{Labels.} Captions must contain just strings, no
% format at all, so there is new group in ini files.
-%
+%
% \begin{macrocode}
\def\bbl@list@the{%
part,chapter,section,subsection,subsubsection,paragraph,%
@@ -10971,8 +11015,8 @@ wouldn’t exist.
\bbl@replace\bbl@tempa{enumerate.}{}%
\def\bbl@toreplace{#2}%
\bbl@replace\bbl@toreplace{[ ]}{\nobreakspace{}}%
- \bbl@replace\bbl@toreplace{[}{\csname the}%
- \bbl@replace\bbl@toreplace{]}{\endcsname{}}%
+ \bbl@replace\bbl@toreplace{[}{\csname the}%
+ \bbl@replace\bbl@toreplace{]}{\endcsname{}}%
\toks@\expandafter{\bbl@toreplace}%
% TODO. Execute only once:
\bbl@exp{%
@@ -11162,7 +11206,7 @@ wouldn’t exist.
\bbl@csarg\let{inikv@transforms.posthyphenation}\bbl@inikv
\def\bbl@transforms@aux#1#2#3#4,#5\relax{%
#1[#2]{#3}{#4}{#5}}
-\begingroup % A hack. TODO. Don't require an specific order
+\begingroup % A hack. TODO. Don't require a specific order
\catcode`\%=12
\catcode`\&=14
\gdef\bbl@transforms#1#2#3{&%
@@ -11258,7 +11302,7 @@ wouldn’t exist.
'HyphenChar' to another value, but be aware\\%
this setting is not safe (see the manual).\\%
Reported}%
- \hyphenchar\font\defaulthyphenchar
+ \hyphenchar\font\defaulthyphenchar
\fi\fi
\fi}%
{\hyphenchar\font\defaulthyphenchar}}
@@ -11412,7 +11456,7 @@ wouldn’t exist.
%
% \LaTeX{} needs to know the BCP 47 codes for some features. For that,
% it expects |\BCPdata| to be defined. While |language|, |region|,
-% |script|, and |variant| are recognized, |extension.|\m{s} for
+% |script|, and |variant| are recognized, |extension.<s>| for
% singletons may change.
%
% \begin{macrocode}
@@ -11429,7 +11473,7 @@ wouldn’t exist.
\def\bbl@bcpdata@i#1#2#3#4#5#6\@empty{%
\@nameuse{str_if_eq:nnTF}{#1#2#3#4#5}{main.}%
{\bbl@bcpdata@ii{#6}\bbl@main@language}%
- {\bbl@bcpdata@ii{#1#2#3#4#5#6}\languagename}}%
+ {\bbl@bcpdata@ii{#1#2#3#4#5#6}\languagename}}%
\def\bbl@bcpdata@ii#1#2{%
\bbl@ifunset{bbl@info@#1.tag.bcp47}%
{\bbl@error{unknown-ini-field}{#1}{}{}}%
@@ -11444,9 +11488,9 @@ wouldn’t exist.
\newcommand\BabelLowercaseMapping[3]{%
\DeclareLowercaseMapping[\@nameuse{bbl@casing@#1}]{#2}{#3}}
% \end{macrocode}
-%
+%
% The parser for |casing| and |casing.|\meta{variant}.
-%
+%
% \begin{macrocode}
\def\bbl@casemapping#1#2#3{% 1:variant
\def\bbl@tempa##1 ##2{% Loop
@@ -11486,7 +11530,7 @@ wouldn’t exist.
%
% With version 3.75 |\BabelEnsureInfo| is executed always, but there is
% an option to disable it.
-%
+%
% \begin{macrocode}
%<<*More package options>>
\DeclareOption{ensureinfo=off}{}
@@ -11511,7 +11555,7 @@ wouldn’t exist.
% |\bbl@ini@loaded| is a comma-separated list of locales, built by
% |\bbl@read@ini|.
%
-% \begin{macrocode}
+% \begin{macrocode}
\newcommand\getlocaleproperty{%
\@ifstar\bbl@getproperty@s\bbl@getproperty@x}
\def\bbl@getproperty@s#1#2#3{%
@@ -11545,7 +11589,7 @@ wouldn’t exist.
% \begin{macrocode}
\newcommand\babeladjust[1]{% TODO. Error handling.
\bbl@forkv{#1}{%
- \bbl@ifunset{bbl@ADJ@##1@##2}%
+ \bbl@ifunset{bbl@ADJ@##1@##2}%
{\bbl@cs{ADJ@##1}{##2}}%
{\bbl@cs{ADJ@##1@##2}}}}
%
@@ -11555,7 +11599,7 @@ wouldn’t exist.
\directlua{ Babel.#2 }%
\expandafter\expandafter\expandafter\@gobble
\fi
- \fi
+ \fi
{\bbl@error{adjust-only-vertical}{#1}{}{}}}% Gobbled if everything went ok.
\@namedef{bbl@ADJ@bidi.mirroring@on}{%
\bbl@adjust@lua{bidi}{mirroring_enabled=true}}
@@ -11569,6 +11613,7 @@ wouldn’t exist.
\let\bbl@noamsmath\@empty}
\@namedef{bbl@ADJ@bidi.math@off}{%
\let\bbl@noamsmath\relax}
+%
\@namedef{bbl@ADJ@bidi.mapdigits@on}{%
\bbl@adjust@lua{bidi}{digits_mapped=true}}
\@namedef{bbl@ADJ@bidi.mapdigits@off}{%
@@ -11721,9 +11766,9 @@ wouldn’t exist.
\global\@namedef{#1@#2}{#3}}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\@testdef}
+% \begin{macro}{\@testdef}
%
% An internal \LaTeX\ macro used to test if the labels that have
% been written on the |.aux| file have changed. It is called by
@@ -11764,7 +11809,7 @@ wouldn’t exist.
\fi
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \begin{macro}{\ref}
% \begin{macro}{\pageref}
@@ -11801,8 +11846,8 @@ wouldn’t exist.
\fi
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\@citex}
%
@@ -11859,7 +11904,7 @@ wouldn’t exist.
}{}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \begin{macro}{\nocite}
%
@@ -11871,7 +11916,7 @@ wouldn’t exist.
\@safe@activestrue\org@nocite{#1}\@safe@activesfalse}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \begin{macro}{\bibcite}
%
@@ -11894,7 +11939,7 @@ wouldn’t exist.
\bibcite}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \begin{macro}{\bbl@bibcite}
%
@@ -11906,7 +11951,7 @@ wouldn’t exist.
\org@bibcite{#1}{\@safe@activesfalse#2}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \begin{macro}{\bbl@cite@choice}
%
@@ -11930,7 +11975,7 @@ wouldn’t exist.
\AtBeginDocument{\bbl@cite@choice}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \begin{macro}{\@bibitem}
%
@@ -11948,7 +11993,7 @@ wouldn’t exist.
\fi
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \subsection{Marks}
%
@@ -11988,19 +12033,19 @@ wouldn’t exist.
{\\\protect\\\bbl@restore@actives\the\toks@}}}}}%
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\markboth}
-% \begin{macro}{\@mkboth}
-% The definition of |\markboth| is equivalent to that of
-% |\markright|, except that we need two token registers. The
-% documentclasses \cls{report} and \cls{book} define and set the
-% headings for the page. While doing so they also store a copy of
-% |\markboth| in |\@mkboth|. Therefore we need to check whether
-% |\@mkboth| has already been set. If so we need to do that again
-% with the new definition of |\markboth|. (As of Oct 2019, \LaTeX{}
-% stores the definition in an intermediate macro, so it's not
-% necessary anymore, but it's preserved for older versions.)
+% \begin{macro}{\markboth}
+% \begin{macro}{\@mkboth}
+% The definition of |\markboth| is equivalent to that of |\markright|,
+% except that we need two token registers. The documentclasses
+% \cls{report} and \cls{book} define and set the headings for the page.
+% While doing so they also store a copy of |\markboth| in |\@mkboth|.
+% Therefore we need to check whether |\@mkboth| has already been set.
+% If so we need to do that again with the new definition of
+% |\markboth|. (As of Oct 2019, \LaTeX{} stores the definition in an
+% intermediate macro, so it's not necessary anymore, but it's preserved
+% for older versions.)
%
% \begin{macrocode}
\ifx\@mkboth\markboth
@@ -12024,8 +12069,8 @@ wouldn’t exist.
\fi} % end ifbbl@single, end \IfBabelLayout
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \subsection{Preventing clashes with other packages}
%
@@ -12037,9 +12082,9 @@ wouldn’t exist.
% depending on the page a certain fragment of text appears on. This
% can be achieved by the following piece of code:
%\begin{verbatim}
-% \ifthenelse{\isodd{\pageref{some:label}}}
-% {code for odd pages}
-% {code for even pages}
+% \ifthenelse{\isodd{\pageref{some-label}}}
+% {code for odd pages}
+% {code for even pages}
%\end{verbatim}
% In order for this to work the argument of |\isodd| needs to be
% fully expandable. With the above redefinition of |\pageref| it is
@@ -12084,7 +12129,7 @@ wouldn’t exist.
\fi
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \subsubsection{\pkg{varioref}}
%
@@ -12092,7 +12137,7 @@ wouldn’t exist.
% \begin{macro}{\vrefpagenum}
% \begin{macro}{\Ref}
%
-% When the package varioref is in use we need to modify its
+% When the package \pkg{varioref} is in use we need to modify its
% internal command |\@@vpageref| in order to prevent problems when
% an active character ends up in the argument of |\vref|. The same
% needs to happen for |\vrefpagenum|.
@@ -12127,9 +12172,9 @@ wouldn’t exist.
\fi
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \subsubsection{\pkg{hhline}}
%
@@ -12155,11 +12200,12 @@ wouldn’t exist.
{}}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \begin{macro}{\substitutefontfamily}
%
-% \textit{Deprecated.} Use the tools provides by \LaTeX. The command
+% \textit{Deprecated.} Use the tools provided by \LaTeX\
+% (|\DeclareFontFamilySubstitution|). The command
% |\substitutefontfamily| creates an \file{.fd} file on the fly. The
% first argument is an encoding mnemonic, the second and third
% arguments are font family names.
@@ -12186,20 +12232,20 @@ wouldn’t exist.
\@onlypreamble\substitutefontfamily
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \subsection{Encoding and fonts}
%
-% Because documents may use non-ASCII font encodings, we make sure
-% that the logos of \TeX\ and \LaTeX\ always come out in the right
-% encoding. There is a list of non-ASCII encodings. Requested
-% encodings are currently stored in |\@fontenc@load@list|. If a
-% non-ASCII has been loaded, we define versions of |\TeX| and |\LaTeX|
-% for them using |\ensureascii|. The default ASCII encoding is set,
-% too (in reverse order): the ``main'' encoding (when the document
-% begins), the last loaded, or |OT1|.
+% Because documents may use non-ASCII font encodings, we make sure
+% that the logos of \TeX\ and \LaTeX\ always come out in the right
+% encoding. There is a list of non-ASCII encodings. Requested
+% encodings are currently stored in |\@fontenc@load@list|. If a
+% non-ASCII has been loaded, we define versions of |\TeX| and |\LaTeX|
+% for them using |\ensureascii|. The default ASCII encoding is set,
+% too (in reverse order): the ``main'' encoding (when the document
+% begins), the last loaded, or |OT1|.
%
-% \begin{macro}{\ensureascii}
+% \begin{macro}{\ensureascii}
%
% \begin{macrocode}
\bbl@trace{Encoding and fonts}
@@ -12239,30 +12285,29 @@ wouldn’t exist.
\fi}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% Now comes the old deprecated stuff (with a little change in 3.9l,
-% for \textsf{fontspec}). The first thing we need to do is to
-% determine, at |\begin{document}|, which latin fontencoding to use.
+% Now comes the old deprecated stuff (with a little change in 3.9l, for
+% \textsf{fontspec}). The first thing we need to do is to determine, at
+% |\begin{document}|, which latin fontencoding to use.
%
-% \begin{macro}{\latinencoding}
-% When text is being typeset in an encoding other than `latin'
-% (\texttt{OT1} or \texttt{T1}), it would be nice to still have
-% Roman numerals come out in the Latin encoding.
-% So we first assume that the current encoding at the end
-% of processing the package is the Latin encoding.
+% \begin{macro}{\latinencoding}
+% When text is being typeset in an encoding other than `latin'
+% (\texttt{OT1} or \texttt{T1}), it would be nice to still have Roman
+% numerals come out in the Latin encoding. So we first assume that the
+% current encoding at the end of processing the package is the Latin
+% encoding.
%
% \begin{macrocode}
\AtEndOfPackage{\edef\latinencoding{\cf@encoding}}
% \end{macrocode}
%
-% But this might be overruled with a later loading of the package
-% \pkg{fontenc}. Therefore we check at the execution of
-% |\begin{document}| whether it was loaded with the \Lopt{T1}
-% option. The normal way to do this (using |\@ifpackageloaded|) is
-% disabled for this package. Now we have to revert to parsing the
-% internal macro |\@filelist| which contains all the filenames
-% loaded.
+% But this might be overruled with a later loading of the package
+% \pkg{fontenc}. Therefore we check at the execution of
+% |\begin{document}| whether it was loaded with the \Lopt{T1} option.
+% The normal way to do this (using |\@ifpackageloaded|) is disabled for
+% this package. Now we have to revert to parsing the internal macro
+% |\@filelist| which contains all the filenames loaded.
%
% \begin{macrocode}
\AtBeginDocument{%
@@ -12287,12 +12332,11 @@ wouldn’t exist.
\fi}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\latintext}
-% Then we can define the command |\latintext| which is a
-% declarative switch to a latin font-encoding. Usage of this macro
-% is deprecated.
+% \begin{macro}{\latintext}
+% Then we can define the command |\latintext| which is a declarative
+% switch to a latin font-encoding. Usage of this macro is deprecated.
%
% \begin{macrocode}
\DeclareRobustCommand{\latintext}{%
@@ -12300,12 +12344,12 @@ wouldn’t exist.
\def\encodingdefault{\latinencoding}}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\textlatin}
-% This command takes an argument which is then typeset using the
-% requested font encoding. In order to avoid many encoding switches
-% it operates in a local scope.
+% \begin{macro}{\textlatin}
+% This command takes an argument which is then typeset using the
+% requested font encoding. In order to avoid many encoding switches it
+% operates in a local scope.
%
% \begin{macrocode}
\ifx\@undefined\DeclareTextFontCommand
@@ -12363,8 +12407,8 @@ wouldn’t exist.
% \begin{macrocode}
\bbl@trace{Loading basic (internal) bidi support}
\ifodd\bbl@engine
-\else % TODO. Move to txtbabel
- \ifnum\bbl@bidimode>100 \ifnum\bbl@bidimode<200 % Any xe+lua bidi=
+\else % TODO. Move to txtbabel. Any xe+lua bidi
+ \ifnum\bbl@bidimode>100 \ifnum\bbl@bidimode<200
\bbl@error{bidi-only-lua}{}{}{}%
\let\bbl@beforeforeign\leavevmode
\AtEndOfPackage{%
@@ -12375,7 +12419,9 @@ wouldn’t exist.
\ifx\RTLfootnotetext\@undefined
\AtEndOfPackage{%
\EnableBabelHook{babel-bidi}%
- \bbl@loadfontspec % bidi needs fontspec
+ \ifx\fontspec\@undefined
+ \usepackage{fontspec}% bidi needs fontspec
+ \fi
\usepackage#1{bidi}%
\let\bbl@digitsdotdash\DigitsDotDashInterCharToks
\def\DigitsDotDashInterCharToks{% See the 'bidi' package
@@ -12411,12 +12457,14 @@ wouldn’t exist.
% \end{macrocode}
%
% Now come the macros used to set the direction when a language is
-% switched. First the (mostly) common macros.
+% switched. Testing are based on script names, because it’s the user
+% interface (including |language| and |script| in |\babelprovide|.
+% First the (mostly) common macros.
%
% \begin{macrocode}
\bbl@trace{Macros to switch the text direction}
\def\bbl@alscripts{,Arabic,Syriac,Thaana,}
-\def\bbl@rscripts{% TODO. Base on codes ??
+\def\bbl@rscripts{%
,Imperial Aramaic,Avestan,Cypriot,Hatran,Hebrew,%
Old Hungarian,Lydian,Mandaean,Manichaean,%
Meroitic Cursive,Meroitic,Old North Arabian,%
@@ -12453,9 +12501,10 @@ wouldn’t exist.
\bbl@pardir{#1}% <- Must precede \bbl@textdir
\fi
\bbl@textdir{#1}}
-% TODO. Only if \bbl@bidimode > 0?:
-\AddBabelHook{babel-bidi}{afterextras}{\bbl@switchdir}
-\DisableBabelHook{babel-bidi}
+\ifnum\bbl@bidimode>\z@
+ \AddBabelHook{babel-bidi}{afterextras}{\bbl@switchdir}
+ \DisableBabelHook{babel-bidi}
+\fi
% \end{macrocode}
%
% Now the engine-dependent macros. TODO. Must be moved to the engine
@@ -12525,19 +12574,15 @@ wouldn’t exist.
\else
{\setbox\z@\lastbox\beginR\box\z@}%
\fi}%
- \let\bbl@severypar\everypar
- \newtoks\everypar
- \everypar=\bbl@severypar
- \bbl@severypar{\bbl@xeeverypar\the\everypar}}
+ \AddToHook{para/begin}{\bbl@xeeverypar}}
\ifnum\bbl@bidimode>200 % Any xe bidi=
\let\bbl@textdir@i\@gobbletwo
\let\bbl@xebidipar\@empty
\AddBabelHook{bidi}{foreign}{%
- \def\bbl@tempa{\def\BabelText####1}%
\ifcase\bbl@thetextdir
- \expandafter\bbl@tempa\expandafter{\BabelText{\LR{##1}}}%
+ \BabelWrapText{\LR{##1}}%
\else
- \expandafter\bbl@tempa\expandafter{\BabelText{\RL{##1}}}%
+ \BabelWrapText{\RL{##1}}%
\fi}
\def\bbl@pardir#1{\ifcase#1\relax\setLR\else\setRL\fi}
\fi
@@ -12584,7 +12629,7 @@ wouldn’t exist.
\@empty}}
\fi
% \end{macrocode}%
-% \end{macro}
+% \end{macro}
%
% \subsection{Language options}
%
@@ -12676,7 +12721,7 @@ wouldn’t exist.
% above, the names of the option and the file are the same. We first
% pre-process the class and package options to determine the main
% language, which is processed in the third ‘main’ pass,
-% \textit{except} if all files are ldf \textit{and} there is no |main|
+% \textit{except} if all files are \texttt{ldf} \textit{and} there is no |main|
% key. In the latter case (|\bbl@opt@main| is still |\@nnil|), the
% traditional way to set the main language is kept — the last loaded is
% the main language.
@@ -12717,7 +12762,7 @@ wouldn’t exist.
% Now define the corresponding loaders. With package options, assume
% the language exists. With class options, check if the option is a
% language by checking if the corresponding file exists.
-%
+%
% \begin{macrocode}
\bbl@foreach\bbl@language@opts{%
\def\bbl@tempa{#1}%
@@ -12743,8 +12788,8 @@ wouldn’t exist.
{}}%
{}%
\else % + * (other = ini)
- \IfFileExists{babel-#1.tex}%
- {\DeclareOption{#1}{%
+ \IfFileExists{babel-#1.tex}%
+ {\DeclareOption{#1}{%
\bbl@ldfinit
\babelprovide[import]{#1}%
\bbl@afterldf{}}}%
@@ -12819,11 +12864,11 @@ wouldn’t exist.
\DeclareOption*{}
\ProcessOptions*
\fi
-\bbl@exp{%
+\bbl@exp{%
\\\AtBeginDocument{\\\bbl@usehooks@lang{/}{begindocument}{{}}}}%
\def\AfterBabelLanguage{\bbl@error{late-after-babel}{}{}{}}
% \end{macrocode}
-%
+%
% In order to catch the case where the user didn’t specify a
% language we check whether |\bbl@main@language|, has become
% defined. If not, the |nil| language is loaded.
@@ -12854,7 +12899,7 @@ wouldn’t exist.
%
% Plain formats based on etex (etex, xetex, luatex) don't load
% |hyphen.cfg| but |etex.src|, which follows a different naming
-% convention, so we need to define the babel names. It presumes
+% convention, so we need to define the \babel{} names. It presumes
% |language.def| exists and it is the same file used when formats were
% created.
%
@@ -12946,19 +12991,19 @@ wouldn’t exist.
{This macro is available only in LuaLaTeX and XeLaTeX.}%
{Consider switching to these engines.}
\bbl@errmessage{only-lua}
- {This macro is available only in LuaLaTeX.}%
+ {This macro is available only in LuaLaTeX}%
{Consider switching to that engine.}
\bbl@errmessage{unknown-provide-key}
{Unknown key '#1' in \string\babelprovide}%
{See the manual for valid keys}%
\bbl@errmessage{unknown-mapfont}
{Option '\bbl@KVP@mapfont' unknown for\\%
- mapfont. Use 'direction'.}%
+ mapfont. Use 'direction'}%
{See the manual for details.}
\bbl@errmessage{no-ini-file}
{There is no ini file for the requested language\\%
(#1: \languagename). Perhaps you misspelled it or your\\%
- installation is not complete.}%
+ installation is not complete}%
{Fix the name or reinstall babel.}
\bbl@errmessage{digits-is-reserved}
{The counter name 'digits' is reserved for mapping\\%
@@ -12966,7 +13011,7 @@ wouldn’t exist.
{Use another name.}
\bbl@errmessage{limit-two-digits}
{Currently two-digit years are restricted to the\\
- range 0-9999.}%
+ range 0-9999}%
{There is little you can do. Sorry.}
\bbl@errmessage{alphabetic-too-large}
{Alphabetic numeral too large (#1)}%
@@ -12978,20 +13023,20 @@ wouldn’t exist.
{See the manual for details.}
\bbl@errmessage{unknown-ini-field}
{Unknown field '#1' in \string\BCPdata.\\%
- Perhaps you misspelled it.}%
+ Perhaps you misspelled it}%
{See the manual for details.}
\bbl@errmessage{unknown-locale-key}
{Unknown key for locale '#2':\\%
#3\\%
- \string#1 will be set to \relax}%
+ \string#1 will be set to \string\relax}%
{Perhaps you misspelled it.}%
\bbl@errmessage{adjust-only-vertical}
{Currently, #1 related features can be adjusted only\\%
- in the main vertical list.}%
+ in the main vertical list}%
{Maybe things change in the future, but this is what it is.}
\bbl@errmessage{layout-only-vertical}
{Currently, layout related features can be adjusted only\\%
- in vertical mode.}%
+ in vertical mode}%
{Maybe things change in the future, but this is what it is.}
\bbl@errmessage{bidi-only-lua}
{The bidi method 'basic' is available only in\\%
@@ -13021,11 +13066,11 @@ wouldn’t exist.
{See the manual for further info}
\bbl@errmessage{unknown-interchar}
{'#1' for '\languagename' cannot be enabled.\\%
- Maybe there is a typo.}%
+ Maybe there is a typo}%
{See the manual for further details.}
\bbl@errmessage{unknown-interchar-b}
{'#1' for '\languagename' cannot be disabled.\\%
- Maybe there is a typo.}%
+ Maybe there is a typo}%
{See the manual for further details.}
\bbl@errmessage{charproperty-only-vertical}
{\string\babelcharproperty\space can be used only in\\%
@@ -13060,15 +13105,19 @@ wouldn’t exist.
{The '#1' ldf style doesn't work with #2,\\%
but you can use the ini locale instead.\\%
Try adding 'provide=*' to the option list. You may\\%
- also want to set 'bidi=' to some value.}%
+ also want to set 'bidi=' to some value}%
+ {See the manual for further details.}
+\bbl@errmessage{hyphenmins-args}
+ {\string\babelhyphenmins\ accepts either the optional\\%
+ argument or the star, but not both at the same time}%
{See the manual for further details.}
%</errors>
%<*patterns>
% \end{macrocode}
%
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \section{Loading hyphenation patterns}
%
@@ -13090,13 +13139,12 @@ wouldn’t exist.
<@Define core switching macros@>
% \end{macrocode}
%
-% \begin{macro}{\process@line}
-% Each line in the file \file{language.dat} is processed by
-% |\process@line| after it is read. The first thing this macro does
-% is to check whether the line starts with \texttt{=}.
-% When the first token of a line is an \texttt{=}, the macro
-% |\process@synonym| is called; otherwise the macro
-% |\process@language| will continue.
+% \begin{macro}{\process@line}
+% Each line in the file \file{language.dat} is processed by
+% |\process@line| after it is read. The first thing this macro does is
+% to check whether the line starts with \texttt{=}. When the first
+% token of a line is an \texttt{=}, the macro |\process@synonym| is
+% called; otherwise the macro |\process@language| will continue.
%
% \begin{macrocode}
\def\process@line#1#2 #3 #4 {%
@@ -13108,9 +13156,9 @@ wouldn’t exist.
\ignorespaces}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\process@synonym}
+% \begin{macro}{\process@synonym}
%
% This macro takes care of the lines which start with an
% \texttt{=}. It needs an empty token register to begin with.
@@ -13145,7 +13193,7 @@ wouldn’t exist.
\fi}
% \end{macrocode}
%
-% \end{macro}
+% \end{macro}
%
% \begin{macro}{\process@language}
%
@@ -13324,15 +13372,15 @@ wouldn’t exist.
\bbl@hook@loadkernel{switch.def}
% \end{macrocode}
%
-% \begin{macro}{\readconfigfile}
-% The configuration file can now be opened for reading.
+% \begin{macro}{\readconfigfile}
+% The configuration file can now be opened for reading.
%
% \begin{macrocode}
\openin1 = language.dat
% \end{macrocode}
%
-% See if the file exists, if not, use the default hyphenation file
-% \file{hyphen.tex}. The user will be informed about this.
+% See if the file exists, if not, use the default hyphenation file
+% \file{hyphen.tex}. The user will be informed about this.
%
% \begin{macrocode}
\def\languagename{english}%
@@ -13367,11 +13415,11 @@ wouldn’t exist.
\endlinechar`\^^M
% \end{macrocode}
%
-% If the file has reached its end, exit from the loop here. If not,
-% empty lines are skipped. Add 3 space characters to the end of
-% |\bbl@line|. This is needed to be able to recognize the arguments
-% of |\process@line| later on. The default language should be the
-% very first one.
+% If the file has reached its end, exit from the loop here. If not,
+% empty lines are skipped. Add 3 space characters to the end of
+% |\bbl@line|. This is needed to be able to recognize the arguments of
+% |\process@line| later on. The default language should be the very
+% first one.
%
% \begin{macrocode}
\if T\ifeof1F\fi T\relax
@@ -13398,7 +13446,7 @@ wouldn’t exist.
\closein1
% \end{macrocode}
%
-% We add a message about the fact that babel is loaded in the
+% We add a message about the fact that \babel{} is loaded in the
% format and with which language patterns to the \cs{everyjob}
% register.
%
@@ -13409,10 +13457,9 @@ wouldn’t exist.
\fi
% \end{macrocode}
%
-% Also remove some macros from memory and raise an error
-% if |\toks@| is not empty. Finally load \file{switch.def}, but the
-% latter is not required and the line inputting it may be commented
-% out.
+% Also remove some macros from memory and raise an error if |\toks@| is
+% not empty. Finally load \file{switch.def}, but the latter is not
+% required and the line inputting it may be commented out.
%
% \begin{macrocode}
\let\bbl@line\@undefined
@@ -13429,8 +13476,8 @@ wouldn’t exist.
%</patterns>
% \end{macrocode}
%
-% Here the code for ini\TeX\ ends.
-% \end{macro}
+% Here the code for ini\TeX\ ends.
+% \end{macro}
%
% \section{Font handling with fontspec}
%
@@ -13455,28 +13502,12 @@ wouldn’t exist.
% |bbl@font| replaces hardcoded font names inside |\..family| by the
% corresponding macro |\..default|.
%
-% At the time of this writing, \textsf{fontspec} shows a warning about
-% there are languages not available, which some people think refers to
-% \babel{}, even if there is nothing wrong. Here is hack to patch
-% \textsf{fontspec} to avoid the misleading (and mostly unuseful)
-% message.
-%
% \begin{macrocode}
%<<*Font selection>>
\bbl@trace{Font handling with fontspec}
-\ifx\ExplSyntaxOn\@undefined\else
- \def\bbl@fs@warn@nx#1#2{% \bbl@tempfs is the original macro
- \in@{,#1,}{,no-script,language-not-exist,}%
- \ifin@\else\bbl@tempfs@nx{#1}{#2}\fi}
- \def\bbl@fs@warn@nxx#1#2#3{%
- \in@{,#1,}{,no-script,language-not-exist,}%
- \ifin@\else\bbl@tempfs@nxx{#1}{#2}{#3}\fi}
- \def\bbl@loadfontspec{%
- \let\bbl@loadfontspec\relax
- \ifx\fontspec\@undefined
- \usepackage{fontspec}%
- \fi}%
-\fi
+\AddBabelHook{babel-fontspec}{afterextras}{\bbl@switchfont}
+\AddBabelHook{babel-fontspec}{beforestart}{\bbl@ckeckstdfonts}
+\DisableBabelHook{babel-fontspec}
\@onlypreamble\babelfont
\newcommand\babelfont[2][]{% 1=langs/scripts 2=fam
\bbl@foreach{#1}{%
@@ -13487,8 +13518,10 @@ wouldn’t exist.
\fi}%
\edef\bbl@tempa{#1}%
\def\bbl@tempb{#2}% Used by \bbl@bblfont
- \bbl@loadfontspec
- \EnableBabelHook{babel-fontspec}% Just calls \bbl@switchfont
+ \ifx\fontspec\@undefined
+ \usepackage{fontspec}%
+ \fi
+ \EnableBabelHook{babel-fontspec}%
\bbl@bblfont}
\newcommand\bbl@bblfont[2][]{% 1=features 2=fontname, @font=rm|sf|tt
\bbl@ifunset{\bbl@tempb family}%
@@ -13653,17 +13686,10 @@ wouldn’t exist.
{\\\newfontscript{\bbl@cl{sname}}{\bbl@cl{sotf}}}%
\<keys_if_exist:nnF>{fontspec-opentype}{Language/\bbl@cl{lname}}%
{\\\newfontlanguage{\bbl@cl{lname}}{\bbl@cl{lotf}}}%
- \let\\\bbl@tempfs@nx\<__fontspec_warning:nx>%
- \let\<__fontspec_warning:nx>\\\bbl@fs@warn@nx
- \let\\\bbl@tempfs@nxx\<__fontspec_warning:nxx>%
- \let\<__fontspec_warning:nxx>\\\bbl@fs@warn@nxx
\\\renewfontfamily\\#4%
[\bbl@cl{lsys},% xetex removes unknown features :-(
\ifcase\bbl@engine\or RawFeature={family=\bbl@tempb},\fi
#2]}{#3}% ie \bbl@exp{..}{#3}
- \bbl@exp{%
- \let\<__fontspec_warning:nx>\\\bbl@tempfs@nx
- \let\<__fontspec_warning:nxx>\\\bbl@tempfs@nxx}%
\begingroup
#4%
\xdef#1{\f@family}% eg, \bbl@rmdflt@lang{FreeSerif(0)}
@@ -13823,9 +13849,6 @@ wouldn’t exist.
\fi}%
\fi}
\ifx\DisableBabelHook\@undefined\endinput\fi %%%% TODO: why
-\AddBabelHook{babel-fontspec}{afterextras}{\bbl@switchfont}
-\AddBabelHook{babel-fontspec}{beforestart}{\bbl@ckeckstdfonts}
-\DisableBabelHook{babel-fontspec}
<@Font selection@>
\def\bbl@provide@extra#1{}
% \end{macrocode}
@@ -13940,7 +13963,7 @@ wouldn’t exist.
% And finally, the command with the code to be inserted. If the language
% doesn’t define a class, then use the global one, as defined above.
% For the definition there is a intermediate macro, which can be
-% ‘disabled’ with |\bbl@ic@<label>@<lang>|.
+% ‘disabled’ with |\bbl@ic@<label>@<language>|.
%
% \begin{macrocode}
\def\bbl@ignoreinterchar{%
@@ -13956,7 +13979,7 @@ wouldn’t exist.
{\bbl@ignoreinterchar{#5}}%
\bbl@csarg\let{ic@\bbl@kv@label @#2}\@firstofone
\bbl@exp{\\\bbl@for\\\bbl@tempa{\zap@space#3 \@empty}}{%
- \bbl@exp{\\\bbl@for\\\bbl@tempb{\zap@space#4 \@empty}}{%
+ \bbl@exp{\\\bbl@for\\\bbl@tempb{\zap@space#4 \@empty}}{%
\XeTeXinterchartoks
\@nameuse{bbl@xeclass@\bbl@tempa @%
\bbl@ifunset{bbl@xeclass@\bbl@tempa @#2}{}{#2}} %
@@ -13968,11 +13991,11 @@ wouldn’t exist.
@#3@#4@#2 \@empty\endcsname}}}}
\DeclareRobustCommand\enablelocaleinterchar[1]{%
\bbl@ifunset{bbl@ic@#1@\languagename}%
- {\bbl@error{unknown-interchar}{#1}{}{}}%
+ {\bbl@error{unknown-interchar}{#1}{}{}}%
{\bbl@csarg\let{ic@#1@\languagename}\@firstofone}}
\DeclareRobustCommand\disablelocaleinterchar[1]{%
\bbl@ifunset{bbl@ic@#1@\languagename}%
- {\bbl@error{unknown-interchar-b}{#1}{}{}}%
+ {\bbl@error{unknown-interchar-b}{#1}{}{}}%
{\bbl@csarg\let{ic@#1@\languagename}\@gobble}}
%</xetex>
% \end{macrocode}
@@ -14062,9 +14085,9 @@ wouldn’t exist.
{}
% \end{macrocode}
%
-% Implicitly reverses sectioning labels in |bidi=basic|, because
-% the full stop is not in contact with L numbers any more. I
-% think there must be a better way.
+% Implicitly reverses sectioning labels in |bidi=basic|, because the
+% full stop is not in contact with L numbers any more. I think there
+% must be a better way.
%
% \begin{macrocode}
\IfBabelLayout{counters*}%
@@ -14190,7 +14213,7 @@ wouldn’t exist.
% (3) in the middle of |plain.def| and |babel.sty|, by |babel.def|,
% with the commands and other definitions for |luatex| (eg,
% |\babelpatterns|).
-%
+%
% \begin{macrocode}
%<*luatex>
\ifx\AddBabelHook\@undefined % When plain.def, babel.sty starts
@@ -14338,8 +14361,12 @@ wouldn’t exist.
{\expandafter\expandafter\expandafter\bbl@luapatterns
\csname bbl@hyphendata@\the\language\endcsname}}{}}
\endinput\fi
- % Here ends \ifx\AddBabelHook\@undefined
- % A few lines are only read by hyphen.cfg
+% \end{macrocode}
+%
+% Here ends |\ifx\AddBabelHook\@undefined|. A few lines are only read
+% by \textsc{hyphen.cfg}.
+%
+% \begin{macrocode}
\ifx\DisableBabelHook\@undefined
\AddBabelHook{luatex}{everylanguage}{%
\def\process@language##1##2##3{%
@@ -14355,9 +14382,12 @@ wouldn’t exist.
{\expandafter\expandafter\expandafter\bbl@tempb
\csname bbl@hyphendata@\the\language\endcsname}}
\endinput\fi
- % Here stops reading code for hyphen.cfg
- % The following is read the 2nd time it's loaded
- % First, global declarations for lua
+% \end{macrocode}
+%
+% Here stops reading code for \textsc{hyphen.cfg}. The following is read the 2nd
+% time it's loaded. First, global declarations for lua.
+%
+% \begin{macrocode}
\begingroup % TODO - to a lua file
\catcode`\%=12
\catcode`\'=12
@@ -14516,12 +14546,12 @@ end
{\prehyphenchar=\bbl@cl{prehc}\relax}}}}
% \end{macrocode}
%
-% \begin{macro}{\babelpatterns}
+% \begin{macro}{\babelpatterns}
%
-% This macro adds patterns. Two macros are used to store them:
-% |\bbl@patterns@| for the global ones and |\bbl@patterns@<lang>|
-% for language ones. We make sure there is a space between words
-% when multiple commands are used.
+% This macro adds patterns. Two macros are used to store them:
+% |\bbl@patterns@| for the global ones and |\bbl@patterns@<language>| for
+% language ones. We make sure there is a space between words when
+% multiple commands are used.
%
% \begin{macrocode}
\@onlypreamble\babelpatterns
@@ -14550,7 +14580,7 @@ end
#2}}}%
\fi}}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
% \subsection{Southeast Asian scripts}
%
@@ -14563,7 +14593,7 @@ end
% not touched. See Unicode UAX 14.
%
% \begin{macrocode}
-% TODO - to a lua file
+% TODO - to a lua file -- or a logical place
\directlua{
Babel = Babel or {}
Babel.linebreaking = Babel.linebreaking or {}
@@ -14601,7 +14631,7 @@ end
}}
\begingroup
\catcode`\%=12
-\catcode`\&=14
+\catcode`\&=14
\catcode`\'=12
\catcode`\~=12
\gdef\bbl@seaintraspace{&
@@ -14638,7 +14668,7 @@ end
n = node.new(14, 0) &% penalty
n.penalty = intrapenalty
node.insert_before(head, item, n)
- end
+ end
n = node.new(12, 13) &% (glue, spaceskip)
node.setglue(n, intraspace.b * quad,
intraspace.p * quad,
@@ -14651,9 +14681,9 @@ end
end
end
}&
- \bbl@luahyphenate}
+ \bbl@luahyphenate}
% \end{macrocode}
-%
+%
% \subsection{CJK line breaking}
%
% Minimal line breaking for CJK scripts, mainly intended for simple
@@ -14697,8 +14727,10 @@ end
class = props.cjk_quotes[item.char]
end
- if class == 'cp' then class = 'cl' end % )] as CL
- if class == 'id' then class = 'I' end
+ if class == 'cp' then class = 'cl' % )] as CL
+ elseif class == 'id' then class = 'I'
+ elseif class == 'cj' then class = 'I' % loose
+ end
local br = 0
if class and last_class and Babel.cjk_breaks[last_class][class] then
@@ -14713,7 +14745,7 @@ end
local n = node.new(14, 0) % penalty
n.penalty = intrapenalty
node.insert_before(head, item, n)
- end
+ end
local intraspace = props.intraspace
local n = node.new(12, 13) % (glue, spaceskip)
node.setglue(n, intraspace.b * quad,
@@ -14745,10 +14777,10 @@ end
func(head)
end
end
+ lang.hyphenate(head)
if Babel.cjk_enabled then
Babel.cjk_linebreak(head)
end
- lang.hyphenate(head)
if Babel.linebreaking.after then
for k, func in ipairs(Babel.linebreaking.after) do
func(head)
@@ -14829,7 +14861,7 @@ end
Babel.arabic.justify, 'Babel.arabic.justify')
luatexbase.add_to_callback('hpack_filter',
Babel.arabic.justify_hbox, 'Babel.arabic.justify_hbox')
- }}%
+ }}%
% \end{macrocode}
%
% Save both node lists to make replacement. TODO. Save also widths to
@@ -14850,7 +14882,7 @@ end
end
end
Babel.arabic.#3['##1#4'] = last.char
- }}}
+ }}}
% \end{macrocode}
%
% Elongated forms. Brute force. No rules at all, yet. The ideal: look
@@ -15016,7 +15048,7 @@ function Babel.arabic.justify_hlist(head, line, gc, size, pack)
while width < goal do
subst_done = true
k_item = k_list[k_curr].node
- if k_list[k_curr].weight == Babel.kashida_wts[wt_pos] then
+ if k_list[k_curr].weight == Babel.kashida_wts[wt_pos] then
d = node.copy(k_item)
d.char = 0x0640
d.yoffset = 0 % TODO. From the prev char. But 0 seems safe.
@@ -15034,7 +15066,7 @@ function Babel.arabic.justify_hlist(head, line, gc, size, pack)
end
if k_curr == 1 then
k_curr = #k_list
- wt_pos = (wt_pos >= table.getn(Babel.kashida_wts)) and 1 or wt_pos+1
+ wt_pos = (wt_pos >= table.getn(Babel.kashida_wts)) and 1 or wt_pos+1
else
k_curr = k_curr - 1
end
@@ -15077,9 +15109,6 @@ end
% \subsection{Common stuff}
%
% \begin{macrocode}
-\AddBabelHook{babel-fontspec}{afterextras}{\bbl@switchfont}
-\AddBabelHook{babel-fontspec}{beforestart}{\bbl@ckeckstdfonts}
-\DisableBabelHook{babel-fontspec}
<@Font selection@>
% \end{macrocode}
%
@@ -15107,7 +15136,7 @@ Babel.script_blocks = {
{0xFE70, 0xFEFF}, {0xFB50, 0xFDFF}, {0x1EE00, 0x1EEFF}},
['Armn'] = {{0x0530, 0x058F}},
['Beng'] = {{0x0980, 0x09FF}},
- ['Cher'] = {{0x13A0, 0x13FF}, {0xAB70, 0xABBF}},
+ ['Cher'] = {{0x13A0, 0x13FF}, {0xAB70, 0xABBF}},
['Copt'] = {{0x03E2, 0x03EF}, {0x2C80, 0x2CFF}, {0x102E0, 0x102FF}},
['Cyrl'] = {{0x0400, 0x04FF}, {0x0500, 0x052F}, {0x1C80, 0x1C8F},
{0x2DE0, 0x2DFF}, {0xA640, 0xA69F}},
@@ -15219,7 +15248,7 @@ function Babel.locale_map(head)
elseif not inmath and item.id == 7 then % Apply recursively
item.replace = item.replace and Babel.locale_map(item.replace)
item.pre = item.pre and Babel.locale_map(item.pre)
- item.post = item.post and Babel.locale_map(item.post)
+ item.post = item.post and Babel.locale_map(item.post)
elseif item.id == node.id'math' then
inmath = (item.subtype == 0)
end
@@ -15279,7 +15308,7 @@ end
% Post-handling hyphenation patterns for non-standard rules, like |ff|
% to |ff-f|. There are still some issues with speed (not very slow, but
% still slow). The Lua code is below.
-%
+%
% \begin{macrocode}
\directlua{
Babel.nohyphenation = \the\l@nohyphenation
@@ -15299,7 +15328,7 @@ end
% this macro at the appropriate place. As |\directlua| does not take
% into account the current catcode of |@|, we just avoid this character
% in macro names (which explains the internal group, too).
-%
+%
% \begin{macrocode}
\begingroup
\catcode`\~=12
@@ -15325,7 +15354,7 @@ end
\bbl@ifsamestring{##1}{remove}&%
{\bbl@add@list\babeltempb{nil}}&%
{\directlua{
- local rep = [=[##1]=]
+ local rep = [=[##1]=]
rep = rep:gsub('^%s*(remove)%s*$', 'remove = true')
rep = rep:gsub('^%s*(insert)%s*,', 'insert = true, ')
rep = rep:gsub('^%s*(after)%s*,', 'after = true, ')
@@ -15342,10 +15371,10 @@ end
'(spacefactor)%s*=%s*([%-%d%.]+)%s+([%-%d%.]+)%s+([%-%d%.]+)',
'spacefactor = {' .. '%2, %3, %4' .. '}')
rep = rep:gsub('(kashida)%s*=%s*([^%s,]*)', Babel.capture_kashida)
- else
+ else
rep = rep:gsub( '(no)%s*=%s*([^%s,]*)', Babel.capture_func)
rep = rep:gsub( '(pre)%s*=%s*([^%s,]*)', Babel.capture_func)
- rep = rep:gsub( '(post)%s*=%s*([^%s,]*)', Babel.capture_func)
+ rep = rep:gsub( '(post)%s*=%s*([^%s,]*)', Babel.capture_func)
end
tex.print([[\string\babeltempa{{]] .. rep .. [[}}]])
}}}&%
@@ -15355,14 +15384,14 @@ end
post,penalty,kashida,space,spacefactor,kern,node,after,norule,}&%
\ifin@\else
\bbl@error{bad-transform-option}{####1}{}{}&%
- \fi}}&%
+ \fi}}&%
\let\bbl@kv@attribute\relax
\let\bbl@kv@label\relax
\let\bbl@kv@fonts\@empty
\bbl@forkv{#2}{\bbl@csarg\edef{kv@##1}{##2}}&%
\ifx\bbl@kv@fonts\@empty\else\bbl@settransfont\fi
\ifx\bbl@kv@attribute\relax
- \ifx\bbl@kv@label\relax\else
+ \ifx\bbl@kv@label\relax\else
\bbl@exp{\\\bbl@trim@def\\\bbl@kv@fonts{\bbl@kv@fonts}}&%
\bbl@replace\bbl@kv@fonts{ }{,}&%
\edef\bbl@kv@attribute{bbl@ATR@\bbl@kv@label @#3@\bbl@kv@fonts}&%
@@ -15422,7 +15451,7 @@ end
patt = u.gsub(patt, '{(%x%x%x%x+)}',
function (n)
return u.gsub(u.char(tonumber(n, 16)), '(%p)', '%%%1')
- end)
+ end)
lbkr[id] = lbkr[id] or {}
table.insert(lbkr[id],
{ label=label, attr=attr, pattern=patt, replace={\babeltempb} })
@@ -15464,7 +15493,7 @@ end
{\bbl@csarg\setattribute{ATR@#1@\languagename @}\@ne}}
\DeclareRobustCommand\disablelocaletransform[1]{%
\bbl@ifunset{bbl@ATR@#1@\languagename @}%
- {\bbl@error{transform-not-available-b}{#1}{}{}}%
+ {\bbl@error{transform-not-available-b}{#1}{}{}}%
{\bbl@csarg\unsetattribute{ATR@#1@\languagename @}}}
\def\bbl@activateposthyphen{%
\let\bbl@activateposthyphen\relax
@@ -15516,7 +15545,7 @@ end
return head
end
%
- function Babel.pre_otfload_h(head, gc, sz, pt, dir)
+ function Babel.pre_otfload_h(head, gc, sz, pt, dir) %%% TODO
if Babel.numbers and Babel.digits_mapped then
head = Babel.numbers(head)
end
@@ -15543,11 +15572,12 @@ end
% The basic setup. The output is modified at a very low level to set
% the |\bodydir| to the |\pagedir|. Sadly, we have to deal with boxes
% in math with basic, so the |\bbl@mathboxdir| hack is activated every
-% math with the package option bidi=.
+% math with the package option bidi=. The hack for the PUA is no longer
+% necessary with |basic| (24.8), but it’s kept in |basic-r|.
%
% \begin{macrocode}
\breakafterdirmode=1
-\ifnum\bbl@bidimode>\@ne % Any bidi= except default=1
+\ifnum\bbl@bidimode>\@ne % Any bidi= except default (=1)
\let\bbl@beforeforeign\leavevmode
\AtEndOfPackage{\EnableBabelHook{babel-bidi}}
\RequirePackage{luatexbase}
@@ -15557,7 +15587,10 @@ end
\ifcase\expandafter\@gobbletwo\the\bbl@bidimode\or
require('babel-bidi-basic.lua')
\or
- require('babel-bidi-basic-r.lua')
+ require('babel-bidi-basic-r.lua')
+ table.insert(Babel.ranges, {0xE000, 0xF8FF, 'on'})
+ table.insert(Babel.ranges, {0xF0000, 0xFFFFD, 'on'})
+ table.insert(Babel.ranges, {0x100000, 0x10FFFD, 'on'})
\fi}
\newattribute\bbl@attr@dir
\directlua{ Babel.attr_dir = luatexbase.registernumber'bbl@attr@dir' }
@@ -15633,6 +15666,12 @@ end
end
luatexbase.add_to_callback("hpack_filter", Babel.math_box_dir,
"Babel.math_box_dir", 0)
+ if Babel.unset_atdir then
+ luatexbase.add_to_callback("pre_linebreak_filter", Babel.unset_atdir,
+ "Babel.unset_atdir")
+ luatexbase.add_to_callback("hpack_filter", Babel.unset_atdir,
+ "Babel.unset_atdir")
+ end
}}%
\fi
% \end{macrocode}
@@ -15871,10 +15910,29 @@ end
\bbl@replace\bbl@tempa{transforms.}{}%
\bbl@carg\bbl@transforms{babel\bbl@tempa}{##2}{##3}%
\fi}%
+ \bbl@exp{%
+ \\\bbl@ifblank{\bbl@cl{dgnat}}%
+ {\let\\\bbl@tempa\relax}%
+ {\def\\\bbl@tempa{%
+ \\\bbl@elt{transforms.prehyphenation}%
+ {digits.native.1.0}{([0-9])}%
+ \\\bbl@elt{transforms.prehyphenation}%
+ {digits.native.1.1}{string={1\string|0123456789\string|\bbl@cl{dgnat}}}}}}%
+ \ifx\bbl@tempa\relax\else
+ \toks@\expandafter\expandafter\expandafter{%
+ \csname bbl@inidata@\languagename\endcsname}%
+ \bbl@csarg\edef{inidata@\languagename}{%
+ \unexpanded\expandafter{\bbl@tempa}%
+ \the\toks@}%
+ \fi
\csname bbl@inidata@\languagename\endcsname
\bbl@release@transforms\relax % \relax closes the last item.
\fi}
+% \end{macrocode}
+%
% Start tabular here:
+%
+% \begin{macrocode}
\def\localerestoredirs{%
\ifcase\bbl@thetextdir
\ifnum\textdirection=\z@\else\textdir TLT\fi
@@ -15892,7 +15950,9 @@ end
{\chardef\bbl@tabular@mode\z@}%
{\chardef\bbl@tabular@mode\@ne}}% Mixed, with LTR cols
\ifnum\bbl@bidimode>\@ne % Any lua bidi= except default=1
- \ifcase\bbl@tabular@mode\or % 1
+ % Redefine: vrules mess up dirs. TODO: why?
+ \def\@arstrut{\relax\copy\@arstrutbox}%
+ \ifcase\bbl@tabular@mode\or % 1 = Mixed - default
\let\bbl@parabefore\relax
\AddToHook{para/before}{\bbl@parabefore}
\AtBeginDocument{%
@@ -15917,7 +15977,7 @@ end
{\\\do@row@strut\<fi>}{\\\do@row@strut\<fi>\egroup}}}%
{}}%
\fi}%
- \or % 2
+ \or % 2 = All RTL - tabular
\let\bbl@parabefore\relax
\AddToHook{para/before}{\bbl@parabefore}%
\AtBeginDocument{%
@@ -15957,14 +16017,14 @@ end
% removed it without an alternative. Also, |\hangindent| does not
% honour direction changes by default, so we need to redefine
% |\@hangfrom|.
-%
+%
% \begin{macrocode}
\ifnum\bbl@bidimode>\z@ % Any bidi=
\def\bbl@nextfake#1{% non-local changes, use always inside a group!
\bbl@exp{%
- \def\\\bbl@insidemath{0}%
- \mathdir\the\bodydir
+ \mathdir\the\bodydir
#1% Once entered in math, set boxes to restore values
+ \def\\\bbl@insidemath{0}%
\<ifmmode>%
\everyvbox{%
\the\everyvbox
@@ -16063,7 +16123,7 @@ end
\raise\@tempdimc\hb@xt@\z@{%
\@defaultunitsset\@tempdimc{#1}\unitlength
\kern\@tempdimc
- {\ifnum\bbl@tempc>\z@\bbl@pictresetdir\fi#3}\hss}%
+ {\ifnum\bbl@tempc>\z@\bbl@pictresetdir\fi#3}\hss}%
\ignorespaces}%
\MakeRobust\put}%
\AtBeginDocument
@@ -16094,10 +16154,10 @@ end
{}
% \end{macrocode}
%
-% Implicitly reverses sectioning labels in bidi=basic-r, because
-% the full stop is not in contact with L numbers any more. I
-% think there must be a better way. Assumes |bidi=basic|, but
-% there are some additional readjustments for |bidi=default|.
+% Implicitly reverses sectioning labels in bidi=basic-r, because the
+% full stop is not in contact with L numbers any more. I think there
+% must be a better way. Assumes |bidi=basic|, but there are some
+% additional readjustments for |bidi=default|.
%
% \begin{macrocode}
\IfBabelLayout{counters*}%
@@ -16178,9 +16238,17 @@ Babel.linebreaking.replacements = {}
Babel.linebreaking.replacements[0] = {} -- pre
Babel.linebreaking.replacements[1] = {} -- post
+function Babel.tovalue(v)
+ if type(v) == 'string' then
+ return loadstring('return ' .. v)()
+ else
+ return v
+ end
+end
+
-- Discretionaries contain strings as nodes
function Babel.str_to_nodes(fn, matches, base)
- local n, head, last
+ local n, head, last
if fn == nil then return nil end
for s in string.utfvalues(fn(matches)) do
if base.id == 7 then
@@ -16227,7 +16295,7 @@ Babel.fetch_subtext[0] = function(head)
if lang == locale or lang == nil then
lang = lang or locale
- if Babel.ignore_pre_char(item) then
+ if Babel.ignore_pre_char(item) then
word_string = word_string .. Babel.us_char
else
word_string = word_string .. unicode.utf8.char(item.char)
@@ -16243,7 +16311,7 @@ Babel.fetch_subtext[0] = function(head)
-- Ignore leading unrecognized nodes, too.
elseif word_string ~= '' then
- word_string = word_string .. Babel.us_char
+ word_string = word_string .. Babel.us_char
word_nodes[#word_nodes+1] = item -- Will be ignored
end
@@ -16291,7 +16359,7 @@ Babel.fetch_subtext[1] = function(head)
word_nodes[#word_nodes+1] = item
elseif item.id == 7 and item.subtype == 3 then
- word_string = word_string .. '|'
+ word_string = word_string .. '|'
word_nodes[#word_nodes+1] = item
-- (1) Go to next word if nothing was found, and (2) implicitly
@@ -16304,7 +16372,7 @@ Babel.fetch_subtext[1] = function(head)
break
else
- word_string = word_string .. Babel.us_char
+ word_string = word_string .. Babel.us_char
word_nodes[#word_nodes+1] = item -- Will be ignored
end
@@ -16448,7 +16516,7 @@ function Babel.hyphenate_replace(head, mode)
if crep then
step = crep.step or step
end
-
+
if crep and crep.after then
crep.insert = true
if dummy_node then
@@ -16459,7 +16527,7 @@ function Babel.hyphenate_replace(head, mode)
dummy_node = item
end
end
-
+
if crep and not crep.after and dummy_node then
node.remove(head, dummy_node)
dummy_node = nil
@@ -16480,7 +16548,7 @@ function Babel.hyphenate_replace(head, mode)
sc = sc - 1 -- Nothing has been inserted.
last_match = utf8.offset(w, sc+1+step)
goto next
-
+
elseif crep and crep.kashida then -- Experimental
node.set_attribute(item,
Babel.attr_kashida,
@@ -16558,7 +16626,7 @@ function Babel.hyphenate_replace(head, mode)
placeholder = ' '
end
head, new = node.insert_before(head, item, d)
-
+
elseif crep and crep.norule then
-- 655360 = 10 pt = 10 * 65536 sp
d = node.new(2, 3) -- (rule, empty) = \no*rule
@@ -16582,16 +16650,16 @@ function Babel.hyphenate_replace(head, mode)
elseif mode == 0 and crep and crep.space then
-- ERROR
-
+
elseif crep and crep.kern then
d = node.new(13, 1) -- (kern, user)
local quad = font.getfont(item_base.font).size or 655360
d.attr = item_base.attr
d.kern = crep.kern * quad
head, new = node.insert_before(head, item, d)
-
+
elseif crep and crep.node then
- d = node.new(crep.node[1], crep.node[2])
+ d = node.new(crep.node[1], crep.node[2])
d.attr = item_base.attr
head, new = node.insert_before(head, item, d)
@@ -16621,7 +16689,7 @@ function Babel.hyphenate_replace(head, mode)
print('.....', '/')
Babel.debug_hyph(w, w_nodes, sc, first, last, last_match)
end
-
+
if dummy_node then
node.remove(head, dummy_node)
dummy_node = nil
@@ -16732,7 +16800,7 @@ function Babel.string_prehyphenation(str, locale)
last.next = n
last = n
end
- head = Babel.hyphenate_replace(head, 0)
+ head = Babel.hyphenate_replace(head, 0)
res = ''
for n in node.traverse(head) do
if n.id == 12 then
@@ -16776,16 +16844,13 @@ Babel.ranges = {
{0x07C0, 0x085F, 'r'},
{0x0860, 0x086F, 'al'},
{0x08A0, 0x08FF, 'al'},
- {0xE000, 0xF8FF, 'on'}, -- PUA
{0xFB1D, 0xFB4F, 'r'},
{0xFB50, 0xFDFF, 'al'},
{0xFE70, 0xFEFF, 'al'},
{0x10800, 0x10C4F, 'r'},
{0x1E800, 0x1E8DF, 'r'},
{0x1E900, 0x1E95F, 'r'},
- {0x1F300, 0x1F9FF, 'on'},
- {0xF0000, 0xFFFFD, 'on'}, -- PUA
- {0x100000, 0x10FFFD, 'on'} -- PUA
+ {0x1F300, 0x1F9FF, 'on'}
}
Babel.characters = {
@@ -22970,13 +23035,13 @@ function Babel.bidi(head, ispar)
if inmath then dir = ('TRT' == tex.mathdir) and 'r' or 'l' end
% \end{macrocode}
%
-% Next is based on the assumption babel sets the language AND
-% switches the script with its dir. We treat a language block as
-% a separate Unicode sequence. The following piece of code is
-% executed at the first glyph after a `dir' node. We don't know
-% the current language until then. This is not exactly true, as
-% the math mode may insert explicit dirs in the node list, so, for
-% the moment there is a hack by brute force (just above).
+% Next is based on the assumption \babel{} sets the language
+% \textit{and} switches the script with its dir. We treat a language
+% block as a separate Unicode sequence. The following piece of code is
+% executed at the first glyph after a `dir' node. We don't know the
+% current language until then. This is not exactly true, as the math
+% mode may insert explicit dirs in the node list, so, for the moment
+% there is a hack by brute force (just above).
%
% \begin{macrocode}
if new_dir then
@@ -23085,7 +23150,7 @@ function Babel.bidi(head, ispar)
elseif first_d and dir ~= strong_lr then
dir_mark(head, first_d, last_d, outer)
first_d, last_d = nil, nil
- end
+ end
end
% \end{macrocode}
%
@@ -23094,10 +23159,8 @@ function Babel.bidi(head, ispar)
% clearly <r> and <l>, resptly, but with other combinations depends on
% outer. From all these, we select only those resolving <on> $\to$
% <r>. At the beginning (when |last_lr| is nil) of an R text, they are
-% mirrored directly.
-%
-% TODO - numbers in R mode are processed. It doesn't hurt, but should
-% not be done.
+% mirrored directly. Numbers in R mode are processed. It should not be
+% done, but it doesn't hurt.
%
% \begin{macrocode}
if dir and not last_lr and dir ~= 'l' and outer == 'r' then
@@ -23232,7 +23295,7 @@ end
-- TODO - \hbox with an explicit dir can lead to wrong results
-- <R \hbox dir TLT{<R>}> and <L \hbox dir TRT{<L>}>. A small attempt
--- was s made to improve the situation, but the problem is the 3-dir
+-- was made to improve the situation, but the problem is the 3-dir
-- model in babel/Unicode and the 2-dir model in LuaTeX don't fit
-- well.
@@ -23254,6 +23317,7 @@ function Babel.bidi(head, ispar, hdir)
local has_hyperlink = false
local ATDIR = Babel.attr_dir
+ local attr_d
local save_outer
local temp = node.get_attribute(head, ATDIR)
@@ -23288,6 +23352,8 @@ function Babel.bidi(head, ispar, hdir)
if glyph_not_symbol_font(item)
or (item.id == 7 and item.subtype == 2) then
+ if node.get_attribute(item, ATDIR) == 128 then goto nextnode end
+
local d_font = nil
local item_r
if item.id == 7 and item.subtype == 2 then
@@ -23295,6 +23361,7 @@ function Babel.bidi(head, ispar, hdir)
else
item_r = item
end
+
local chardata = characters[item_r.char]
d = chardata and chardata.d or nil
if not d or d == 'nsm' then
@@ -23365,7 +23432,7 @@ function Babel.bidi(head, ispar, hdir)
d = nil
elseif item.id == node.id'math' then
- inmath = (item.subtype == 0)
+ inmath = (item.subtype == 0)
elseif item.id == 8 and item.subtype == 19 then
has_hyperlink = true
@@ -23422,6 +23489,7 @@ function Babel.bidi(head, ispar, hdir)
-- Force mathdir in math if ON (currently works as expected only
-- with 'l')
+
if inmath and d == 'on' then
d = ('TRT' == tex.mathdir) and 'r' or 'l'
end
@@ -23437,9 +23505,12 @@ function Babel.bidi(head, ispar, hdir)
table.insert(nodes, {item, d, outer_first})
end
+ node.set_attribute(item, ATDIR, 128)
outer_first = nil
- end
+ ::nextnode::
+
+ end -- for each node
-- TODO -- repeated here in case EN/ET is the last node. Find a
-- better way of doing things:
@@ -23600,6 +23671,15 @@ function Babel.bidi(head, ispar, hdir)
return head
end
+-- Make sure anything is marked as 'bidi done' (including nodes inserted
+-- after the babel algorithm).
+function Babel.unset_atdir(head)
+ local ATDIR = Babel.attr_dir
+ for item in node.traverse(head) do
+ node.set_attribute(item, ATDIR, 128)
+ end
+ return head
+end
%</basic>
% \end{macrocode}
%
@@ -23624,10 +23704,10 @@ Babel = Babel or {}
Babel.cjk_characters = {
[0x0021]={c='ex'},
- [0x0022]={c='qu'},
+ [0x0022]={c='qu'},
[0x0024]={c='pr'},
[0x0025]={c='po'},
- [0x0027]={c='qu'},
+ [0x0027]={c='qu'},
[0x0028]={c='op'},
[0x0029]={c='cp'},
[0x002B]={c='pr'},
@@ -23648,18 +23728,18 @@ Babel.cjk_characters = {
[0x00A3]={c='pr'},
[0x00A4]={c='pr'},
[0x00A5]={c='pr'},
- [0x00AB]={c='qu'},
+ [0x00AB]={c='qu'},
[0x00B0]={c='po'},
[0x00B1]={c='pr'},
- [0x00BB]={c='qu'},
- [0x2018]={c='qu'},
- [0x2019]={c='qu'},
+ [0x00BB]={c='qu'},
+ [0x2018]={c='qu'},
+ [0x2019]={c='qu'},
[0x201A]={c='op'},
- [0x201B]={c='qu'},
- [0x201C]={c='qu'},
- [0x201D]={c='qu'},
+ [0x201B]={c='qu'},
+ [0x201C]={c='qu'},
+ [0x201D]={c='qu'},
[0x201E]={c='op'},
- [0x201F]={c='qu'},
+ [0x201F]={c='qu'},
[0x2024]={c='in'},
[0x2025]={c='in'},
[0x2026]={c='in'},
@@ -23671,8 +23751,8 @@ Babel.cjk_characters = {
[0x2035]={c='po'},
[0x2036]={c='po'},
[0x2037]={c='po'},
- [0x2039]={c='qu'},
- [0x203A]={c='qu'},
+ [0x2039]={c='qu'},
+ [0x203A]={c='qu'},
[0x203C]={c='ns'},
[0x203D]={c='ns'},
[0x2044]={c='is'},
@@ -23731,22 +23811,22 @@ Babel.cjk_characters = {
[0x29FD]={c='cl'},
[0x2CF9]={c='ex'},
[0x2CFE]={c='ex'},
- [0x2E02]={c='qu'},
- [0x2E03]={c='qu'},
- [0x2E04]={c='qu'},
- [0x2E05]={c='qu'},
- [0x2E06]={c='qu'},
- [0x2E07]={c='qu'},
- [0x2E08]={c='qu'},
- [0x2E09]={c='qu'},
- [0x2E0A]={c='qu'},
- [0x2E0B]={c='qu'},
- [0x2E0C]={c='qu'},
- [0x2E0D]={c='qu'},
+ [0x2E02]={c='qu'},
+ [0x2E03]={c='qu'},
+ [0x2E04]={c='qu'},
+ [0x2E05]={c='qu'},
+ [0x2E06]={c='qu'},
+ [0x2E07]={c='qu'},
+ [0x2E08]={c='qu'},
+ [0x2E09]={c='qu'},
+ [0x2E0A]={c='qu'},
+ [0x2E0B]={c='qu'},
+ [0x2E0C]={c='qu'},
+ [0x2E0D]={c='qu'},
[0x2E18]={c='op'},
- [0x2E1C]={c='qu'},
- [0x2E1D]={c='qu'},
- [0x2E20]={c='qu'},
+ [0x2E1C]={c='qu'},
+ [0x2E1D]={c='qu'},
+ [0x2E20]={c='qu'},
[0x2E21]={c='qu'},
[0x2E22]={c='op'},
[0x2E23]={c='cl'},
@@ -23783,14 +23863,39 @@ Babel.cjk_characters = {
[0x301D]={c='op'},
[0x301E]={c='cl'},
[0x301F]={c='cl'},
+ [0x3043]={c='cj'},
+ [0x3045]={c='cj'},
+ [0x3047]={c='cj'},
+ [0x3049]={c='cj'},
+ [0x3063]={c='cj'},
+ [0x3083]={c='cj'},
+ [0x3085]={c='cj'},
+ [0x3087]={c='cj'},
+ [0x308E]={c='cj'},
+ [0x3095]={c='cj'},
+ [0x3096]={c='cj'},
[0x303B]={c='ns'},
[0x303C]={c='ns'},
+ [0x3041]={c='cj'},
[0x309B]={c='ns'},
[0x309C]={c='ns'},
[0x309D]={c='ns'},
[0x309E]={c='ns'},
[0x30A0]={c='ns'},
+ [0x30A1]={c='cj'},
+ [0x30A3]={c='cj'},
+ [0x30A5]={c='cj'},
+ [0x30A7]={c='cj'},
+ [0x30A9]={c='cj'},
+ [0x30C3]={c='cj'},
+ [0x30E3]={c='cj'},
+ [0x30E5]={c='cj'},
+ [0x30E7]={c='cj'},
+ [0x30EE]={c='cj'},
+ [0x30F5]={c='cj'},
+ [0x30F6]={c='cj'},
[0x30FB]={c='ns'},
+ [0x30FC]={c='cj'},
[0x30FD]={c='ns'},
[0x30FE]={c='ns'},
[0xA015]={c='ns'},
@@ -23860,25 +23965,33 @@ Babel.cjk_characters = {
[0xFF61]={c='cl', w='h'},
[0xFF62]={c='op', w='h'},
[0xFF63]={c='cl', w='h'},
- [0xFF64]={c='cl', w='h'}
+ [0xFF64]={c='cl', w='h'},
+ [0xFF70]={c='cj'}
}
Babel.cjk_class = setmetatable ( Babel.cjk_characters, {
__index = function(_, k)
if (k >= 0xAC00 and k <= 0xD7A3) -- H2/H3
- or (k >= 0x2E80 and k <= 0x9FFF)
+ or (k >= 0x2E80 and k <= 0x31E9) -- Skip small
+ or (k >= 0x3200 and k <= 0x9FFF)
or (k >= 0xA000 and k <= 0xA48F) -- Yi
or (k >= 0xA490 and k <= 0xA4CF) -- Yi
or (k >= 0xF900 and k <= 0xFAFF)
or (k >= 0xFE10 and k <= 0xFE1F)
or (k >= 0xFE30 and k <= 0xFE6F)
- or (k >= 0xFF00 and k <= 0xFFEF)
+ or (k >= 0xFF00 and k <= 0xFF66) -- Skip small
+ or (k >= 0xFF70 and k <= 0xFFEF)
or (k >= 0x1F000 and k <= 0x1FFFD)
or (k >= 0x20000 and k <= 0x2FFFD)
or (k >= 0x30000 and k <= 0x3FFFD) then
return {c='I'}
elseif (k >= 0x20A0 and k <= 0x20CF) then
return {c='pr'}
+ elseif (k >= 0x31F0 and k <= 0x31FF)
+ or (k >= 0xFF67 and k <= 0xFF6F)
+ or (k >= 0x1B150 and k <= 0x1B152)
+ or (k >= 0x1B164 and k <= 0x1B167) then
+ return {c='cj'}
else
return {c='O'}
end
@@ -23911,15 +24024,13 @@ Babel.cjk_breaks = {
%
% \section{The `nil' language}
%
-% This `language' does nothing, except setting the hyphenation patterns to
-% nohyphenation.
-%
-% For this language currently no special definitions are needed or
-% available.
+% This `language' does nothing, except setting the hyphenation patterns
+% to nohyphenation. For this language currently no special definitions
+% are needed or available.
%
-% The macro |\LdfInit| takes care of preventing that this file is
-% loaded more than once, checking the category code of the
-% \texttt{@} sign, etc.
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the \texttt{@}
+% sign, etc.
%
% \begin{macrocode}
%<*nil>
@@ -23927,9 +24038,9 @@ Babel.cjk_breaks = {
\LdfInit{nil}{datenil}
% \end{macrocode}
%
-% When this file is read as an option, i.e. by the |\usepackage|
-% command, \texttt{nil} could be an `unknown' language in which
-% case we have to make it known.
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{nil} could be an `unknown' language in which case we
+% have to make it known.
%
% \begin{macrocode}
\ifx\l@nil\@undefined
@@ -23941,15 +24052,15 @@ Babel.cjk_breaks = {
\fi
% \end{macrocode}
%
-% This macro is used to store the values of the hyphenation
-% parameters |\lefthyphenmin| and |\righthyphenmin|.
+% This macro is used to store the values of the hyphenation parameters
+% |\lefthyphenmin| and |\righthyphenmin|.
%
% \begin{macrocode}
\providehyphenmins{\CurrentOption}{\m@ne\m@ne}
% \end{macrocode}
%
-% The next step consists of defining commands to switch to (and
-% from) the `nil' language.
+% The next step consists of defining commands to switch to (and from)
+% the `nil' language.
% \begin{macro}{\captionnil}
% \begin{macro}{\datenil}
%
@@ -23995,10 +24106,10 @@ Babel.cjk_breaks = {
\@namedef{bbl@sotf@nil}{latn}
% \end{macrocode}
%
-% The macro |\ldf@finish| takes care of looking for a
-% configuration file, setting the main language to be switched on
-% at |\begin{document}| and resetting the category code of
-% \texttt{@} to its original value.
+% The macro |\ldf@finish| takes care of looking for a configuration
+% file, setting the main language to be switched on at
+% |\begin{document}| and resetting the category code of \texttt{@} to
+% its original value.
%
% \begin{macrocode}
\ldf@finish{nil}
@@ -24488,7 +24599,7 @@ Babel.cjk_breaks = {
%</ca-buddhist>
%
% \subsection{Chinese}
-%
+%
% Brute force, with the Julian day of first day of each month. The
% table has been computed with the help of \textsf{python-lunardate} by
% Ricky Yeung, GPLv2 (but the code itself has not been used). The range
@@ -24498,7 +24609,7 @@ Babel.cjk_breaks = {
%<*ca-chinese>
\ExplSyntaxOn
<@Compute Julian day@>
-\def\bbl@ca@chinese#1-#2-#3\@@#4#5#6{%
+\def\bbl@ca@chinese#1-#2-#3\@@#4#5#6{%
\edef\bbl@tempd{\fp_eval:n{%
\bbl@cs@jd{#1}{#2}{#3} - 2457072.5 }}%
\count@\z@
@@ -24677,7 +24788,7 @@ Babel.cjk_breaks = {
%
% \subsection{General tools}
%
-% A number of \LaTeX\ macro's that are needed later on.
+% A number of \LaTeX\ macro's that are needed later on.
%
% \begin{macrocode}
\long\def\@firstofone#1{#1}
@@ -24752,8 +24863,8 @@ Babel.cjk_breaks = {
\@onlypreamble\@onlypreamble
% \end{macrocode}
%
-% Mimic \LaTeX's |\AtBeginDocument|; for this to work the user
-% needs to add |\begindocument| to his file.
+% Mimic \LaTeX's |\AtBeginDocument|; for this to work the user needs to
+% add |\begindocument| to his file.
%
% \begin{macrocode}
\def\begindocument{%
@@ -24772,9 +24883,8 @@ Babel.cjk_breaks = {
\def\AtBeginDocument{\g@addto@macro\@begindocumenthook}
% \end{macrocode}
%
-% We also have to mimic \LaTeX's |\AtEndOfPackage|. Our
-% replacement macro is much simpler; it stores its argument in
-% |\@endofldf|.
+% We also have to mimic \LaTeX's |\AtEndOfPackage|. Our replacement
+% macro is much simpler; it stores its argument in |\@endofldf|.
%
% \begin{macrocode}
\def\AtEndOfPackage#1{\g@addto@macro\@endofldf{#1}}
@@ -24785,10 +24895,10 @@ Babel.cjk_breaks = {
\chardef\bbl@opt@hyphenmap\z@
% \end{macrocode}
%
-% \LaTeX\ needs to be able to switch off writing to its auxiliary
-% files; plain doesn't have them by default. There is a trick to
-% hide some conditional commands from the outer |\ifx|. The same
-% trick is applied below.
+% \LaTeX\ needs to be able to switch off writing to its auxiliary
+% files; plain doesn't have them by default. There is a trick to hide
+% some conditional commands from the outer |\ifx|. The same trick is
+% applied below.
%
% \begin{macrocode}
\catcode`\&=\z@
@@ -24799,7 +24909,7 @@ Babel.cjk_breaks = {
\catcode`\&=4
% \end{macrocode}
%
-% Mimic \LaTeX's commands to define control sequences.
+% Mimic \LaTeX's commands to define control sequences.
%
% \begin{macrocode}
\def\newcommand{\@star@or@long\new@command}
@@ -24867,11 +24977,11 @@ Babel.cjk_breaks = {
\def\@x@protect#1&fi#2#3{&fi\protect#1}
% \end{macrocode}
%
-% The following little macro |\in@| is taken from \file{latex.ltx};
-% it checks whether its first argument is part of its second
-% argument. It uses the boolean |\in@|; allocating a new boolean
-% inside conditionally executed code is not possible, hence the
-% construct with the temporary definition of |\bbl@tempa|.
+% The following little macro |\in@| is taken from \file{latex.ltx}; it
+% checks whether its first argument is part of its second argument. It
+% uses the boolean |\in@|; allocating a new boolean inside
+% conditionally executed code is not possible, hence the construct with
+% the temporary definition of |\bbl@tempa|.
%
% \begin{macrocode}
\def\bbl@tempa{\csname newif\endcsname&ifin@}
@@ -24887,32 +24997,31 @@ Babel.cjk_breaks = {
\bbl@tempa
% \end{macrocode}
%
-% \LaTeX\ has a macro to check whether a certain package was loaded
-% with specific options. The command has two extra arguments which
-% are code to be executed in either the true or false case.
-% This is used to detect whether the document needs one of the
-% accents to be activated (\Lopt{activegrave} and
-% \Lopt{activeacute}). For plain \TeX\ we assume that the user
-% wants them to be active by default. Therefore the only thing we
-% do is execute the third argument (the code for the true case).
+% \LaTeX\ has a macro to check whether a certain package was loaded
+% with specific options. The command has two extra arguments which are
+% code to be executed in either the true or false case. This is used to
+% detect whether the document needs one of the accents to be activated
+% (\Lopt{activegrave} and \Lopt{activeacute}). For plain \TeX\ we
+% assume that the user wants them to be active by default. Therefore
+% the only thing we do is execute the third argument (the code for the
+% true case).
%
% \begin{macrocode}
\def\@ifpackagewith#1#2#3#4{#3}
% \end{macrocode}
%
-% The \LaTeX\ macro |\@ifl@aded| checks whether a file was
-% loaded. This functionality is not needed for plain \TeX\ but we
-% need the macro to be defined as a no-op.
+% The \LaTeX\ macro |\@ifl@aded| checks whether a file was loaded. This
+% functionality is not needed for plain \TeX\ but we need the macro to
+% be defined as a no-op.
%
% \begin{macrocode}
\def\@ifl@aded#1#2#3#4{}
% \end{macrocode}
%
-% For the following code we need to make sure that the commands
-% |\newcommand| and |\providecommand| exist with some sensible
-% definition. They are not fully equivalent to their \LaTeXe\
-% versions; just enough to make things work in plain~\TeX
-% environments.
+% For the following code we need to make sure that the commands
+% |\newcommand| and |\providecommand| exist with some sensible
+% definition. They are not fully equivalent to their \LaTeXe\ versions;
+% just enough to make things work in plain~\TeX environments.
%
% \begin{macrocode}
\ifx\@tempcnta\@undefined
@@ -24923,9 +25032,9 @@ Babel.cjk_breaks = {
\fi
% \end{macrocode}
%
-% To prevent wasting two counters in \LaTeX\ (because
-% counters with the same name are allocated later by it) we reset
-% the counter that holds the next free counter (|\count10|).
+% To prevent wasting two counters in \LaTeX\ (because counters with the
+% same name are allocated later by it) we reset the counter that holds
+% the next free counter (|\count10|).
%
% \begin{macrocode}
\ifx\bye\@undefined
@@ -24966,8 +25075,8 @@ Babel.cjk_breaks = {
%
% \subsection{Encoding related macros}
%
-% Code from \file{ltoutenc.dtx}, adapted for use in the plain \TeX\
-% environment.
+% Code from \file{ltoutenc.dtx}, adapted for use in the plain \TeX\
+% environment.
%
% \begin{macrocode}
\def\DeclareTextCommand{%
@@ -25090,9 +25199,8 @@ Babel.cjk_breaks = {
\def\cf@encoding{OT1}
% \end{macrocode}
%
-% Currently we only use the \LaTeXe\ method for accents for those
-% that are known to be made active in \emph{some} language
-% definition file.
+% Currently we only use the \LaTeXe\ method for accents for those that
+% are known to be made active in \emph{some} language definition file.
%
% \begin{macrocode}
\DeclareTextAccent{\"}{OT1}{127}
@@ -25102,8 +25210,8 @@ Babel.cjk_breaks = {
\DeclareTextAccent{\~}{OT1}{126}
% \end{macrocode}
%
-% The following control sequences are used in \file{babel.def}
-% but are not defined for \textsc{plain} \TeX.
+% The following control sequences are used in \file{babel.def} but are
+% not defined for \textsc{plain} \TeX.
%
% \begin{macrocode}
\DeclareTextSymbol{\textquotedblleft}{OT1}{92}
@@ -25125,7 +25233,7 @@ Babel.cjk_breaks = {
\fi
% \end{macrocode}
%
-% And a few more “dummy” definitions.
+% And a few more “dummy” definitions.
%
% \begin{macrocode}
\def\languagename{english}%
@@ -25162,7 +25270,6 @@ Babel.cjk_breaks = {
\input babel.def
%</plain>
% \end{macrocode}
-%
% \Finale
%
\endinput
diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins
index 9c640a94cb..e9ab76ac2f 100644
--- a/macros/latex/required/babel/base/babel.ins
+++ b/macros/latex/required/babel/base/babel.ins
@@ -26,7 +26,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%
-\def\filedate{2024/06/26}
+\def\filedate{2024/09/18}
\def\batchfile{babel.ins}
\input docstrip.tex
@@ -105,32 +105,6 @@
\expandafter\gdef\csname #1Var\endcsname{#2}%
\fi}
-% The following is somewhat hackish, but it does the job for babel, and
-% must be used in the following way: <-name> starts a block to be
-% ignored if 'name' is active, and <+name> ends the block (in this
-% order). Used to exclude some parts from babel.def. With the original
-% definitions, some code goes 'visually' in comments/documentation, but
-% with this change they are in the real code. However, it must be
-% considered temporal, because the solution must be to reorganize the
-% code.
-
-\let\bblMinus\minusOption
-\def\minusOption-#1>#2\endLine{%
- \global\let\bblactivefiles\activefiles
- \def\tempa{}%
- \def\do##1##2##3{%
- \def\tempb{#1}\def\tempc{##2}%
- \ifx\tempb\tempc\else
- \expandafter\def\expandafter\tempa\expandafter{%
- \tempa\do##1{##2}##3}%
- \fi}%
- \activefiles
- \let\activefiles\tempa}
-
-\let\bblPlus\plusOption
-\def\plusOption+#1>#2\endLine{%
- \let\activefiles\bblactivefiles}
-
% Preambles
\declarepreamble\mainpreamble
@@ -179,11 +153,30 @@
\file{bplain.tex}{\from{babel.dtx}{bplain}}
\file{blplain.tex}{\from{babel.dtx}{blplain}}
}
+
+% MakeIndex style files
+
+\usedir{makeindex/babel}
+
+\generate{\file{bbind.ist}{\from{bbidxglo.dtx}{idx}}
+ \file{bbglo.ist}{\from{bbidxglo.dtx}{glo}}}
+
+% lua code
+
+\def\MetaPrefix{--}
+\usepreamble\luapreamble
+\nopostamble
+\generate{\file{babel-transforms.lua}{\from{babel.dtx}{transforms}}}
+\generate{\file{babel-data-bidi.lua}{\from{babel.dtx}{bididata}}}
+\generate{\file{babel-data-cjk.lua}{\from{babel.dtx}{cjkdata}}}
+\generate{\file{babel-bidi-basic-r.lua}{\from{babel.dtx}{basic-r}}}
+\generate{\file{babel-bidi-basic.lua}{\from{babel.dtx}{basic}}}
-% compatibility files
+% Compatibility files
\let\minusOption\bblMinus
\let\plusOption\bblPlus
+
\def\compatfile#1{\file{#1.sty}{\from{bbcompat.dtx}{styfile,#1}}}
\generate{%
@@ -246,23 +239,6 @@
\compatfile{bahasam}
}
-% MakeIndex style files
-
-\usedir{makeindex/babel}
-
-\generate{\file{bbind.ist}{\from{bbidxglo.dtx}{idx}}
- \file{bbglo.ist}{\from{bbidxglo.dtx}{glo}}}
-
-% lua code
-
-\def\MetaPrefix{--}
-\usepreamble\luapreamble
-\nopostamble
-\generate{\file{babel-transforms.lua}{\from{babel.dtx}{transforms}}}
-\generate{\file{babel-data-bidi.lua}{\from{babel.dtx}{bididata}}}
-\generate{\file{babel-data-cjk.lua}{\from{babel.dtx}{cjkdata}}}
-\generate{\file{babel-bidi-basic-r.lua}{\from{babel.dtx}{basic-r}}}
-\generate{\file{babel-bidi-basic.lua}{\from{babel.dtx}{basic}}}
\Msg{***********************************************************}
\Msg{*}
diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf
index 8d3e32fbc8..6998a9a393 100644
--- a/macros/latex/required/babel/base/babel.pdf
+++ b/macros/latex/required/babel/base/babel.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx
index d88b690b23..c7323d52c9 100644
--- a/macros/latex/required/babel/base/bbcompat.dtx
+++ b/macros/latex/required/babel/base/bbcompat.dtx
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2024/06/26 v24.7]
+\ProvidesFile{bbcompat.dtx}[2024/09/18 v24.]
%</dtx>
%
%% File 'bbcompat.dtx'
diff --git a/macros/latex/required/l3kernel/CHANGELOG.md b/macros/latex/required/l3kernel/CHANGELOG.md
index c58c1a6188..70b869d905 100644
--- a/macros/latex/required/l3kernel/CHANGELOG.md
+++ b/macros/latex/required/l3kernel/CHANGELOG.md
@@ -7,6 +7,40 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2024-09-10]
+
+### Fixed
+- `\seq_map_pairwise_function:NNN` not work with `\seq_map_break:(n)` (issue \#1587)
+
+### Changed
+- Increase outdent of long function names in `l3doc` (issue \#1585)
+
+## [2024-08-30]
+
+### Changed
+- Reduce memory usage when building Unicode data storage
+- Avoid recursive doc for `\file_if_exist:n(TF)` (issue \#1573)
+
+### Fixed
+- Handling of `ltcmd` newlines (`\obeyedline`) in `l3doc` (issue \#1577)
+
+## [2024-08-16]
+
+### Added
+- Add quark (`\q_`) and scan mark (`\s_`) prefixes to naming scheme
+ (issue \#1565)
+
+## [2024-07-20]
+
+### Fixed
+- Implementation of deprecated `\tl_mixed_case:n(n)`
+- Redo the fix for LaTeX2e key properties (issue latex3/latex2e\#1415)
+
+## [2024-06-19]
+
+### Fixed
+- Avoid a low-level error when LaTeX2e key properties are given without a value
+
## [2024-05-27]
### Added
@@ -1742,7 +1776,12 @@ this project uses date-based 'snapshot' version identifiers.
- Step functions have been added for dim variables,
e.g. `\dim_step_inline:nnnn`
-[Unreleased]: https://github.com/latex3/latex3/compare/2024-05-27...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2024-09-10...HEAD
+[2024-09-10]: https://github.com/latex3/latex3/compare/2024-08-30...2024-09-10
+[2024-08-30]: https://github.com/latex3/latex3/compare/2024-08-16...2024-08-30
+[2024-08-16]: https://github.com/latex3/latex3/compare/2024-07-20...2024-08-16
+[2024-07-20]: https://github.com/latex3/latex3/compare/2024-06-19...2024-07-20
+[2024-06-19]: https://github.com/latex3/latex3/compare/2024-05-27...2024-06-19
[2024-05-27]: https://github.com/latex3/latex3/compare/2024-05-08...2024-05-27
[2024-05-08]: https://github.com/latex3/latex3/compare/2024-04-11...2024-05-08
[2024-04-11]: https://github.com/latex3/latex3/compare/2024-03-14...2024-04-11
diff --git a/macros/latex/required/l3kernel/README.md b/macros/latex/required/l3kernel/README.md
index 8946af1293..76cf62b310 100644
--- a/macros/latex/required/l3kernel/README.md
+++ b/macros/latex/required/l3kernel/README.md
@@ -1,7 +1,7 @@
LaTeX3 Programming Conventions
==============================
-Release 2024-05-27
+Release 2024-09-10
Overview
--------
diff --git a/macros/latex/required/l3kernel/expl3.dtx b/macros/latex/required/l3kernel/expl3.dtx
index 4b4e61d3c8..2842da27d1 100644
--- a/macros/latex/required/l3kernel/expl3.dtx
+++ b/macros/latex/required/l3kernel/expl3.dtx
@@ -24,7 +24,7 @@
%
%<*driver|generic|package|2ekernel>
%</driver|generic|package|2ekernel>
-\def\ExplFileDate{2024-05-27}%
+\def\ExplFileDate{2024-09-10}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -454,6 +454,15 @@
% implementation in \LaTeX3 means that |toks| are not required, and that
% all operations for storing tokens can use the |tl| variable type.
%
+% There are two more special types of constants:
+% \begin{arg-description}
+% \item[q] constants of quark type;
+% \item[s] constants of scan mark type.
+% \end{arg-description}
+% The \meta{type} part of quark and scan mark constants is omitted, and
+% the \meta{module} part of general quarks and scan marks is often
+% omitted too.
+%
% Experienced \TeX{} programmers will notice that some of the variable
% types listed are native \TeX{} registers whilst others are not. In
% general, the underlying \TeX{} implementation for a data structure may
diff --git a/macros/latex/required/l3kernel/expl3.pdf b/macros/latex/required/l3kernel/expl3.pdf
index a6eca24ce4..bb587f0e6d 100644
--- a/macros/latex/required/l3kernel/expl3.pdf
+++ b/macros/latex/required/l3kernel/expl3.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/interface3.pdf b/macros/latex/required/l3kernel/interface3.pdf
index 5c72322e35..18107793a0 100644
--- a/macros/latex/required/l3kernel/interface3.pdf
+++ b/macros/latex/required/l3kernel/interface3.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/interface3.tex b/macros/latex/required/l3kernel/interface3.tex
index 62501cfa53..9db72db2f0 100644
--- a/macros/latex/required/l3kernel/interface3.tex
+++ b/macros/latex/required/l3kernel/interface3.tex
@@ -58,7 +58,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2024-05-27}
+\date{Released 2024-09-10}
\pagenumbering{roman}
\maketitle
diff --git a/macros/latex/required/l3kernel/l3basics.dtx b/macros/latex/required/l3kernel/l3basics.dtx
index 69e4441580..48a4371d98 100644
--- a/macros/latex/required/l3kernel/l3basics.dtx
+++ b/macros/latex/required/l3kernel/l3basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -1151,10 +1151,9 @@
% argument (a single token denoted by |N|) is still free for definition.
% It would be used in constructions like
% \begin{quote}
-% |\bool_if:nTF {| \\
-% \verb" \cs_if_free_p:N \l_tmpz_tl || \cs_if_free_p:N \g_tmpz_tl " \\
-% |}|
-% \Arg{true code} \Arg{false code}
+% "\bool_if:nTF" \\
+% " { \cs_if_free_p:N \l_tmpz_tl || \cs_if_free_p:N \g_tmpz_tl }" \\
+% " "\Arg{true code} \Arg{false code}
% \end{quote}
%
% For each predicate defined, a \enquote{branching conditional}
diff --git a/macros/latex/required/l3kernel/l3bitset.dtx b/macros/latex/required/l3kernel/l3bitset.dtx
index 4559b56fd3..6c7dddd9c0 100644
--- a/macros/latex/required/l3kernel/l3bitset.dtx
+++ b/macros/latex/required/l3kernel/l3bitset.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3bootstrap.dtx b/macros/latex/required/l3kernel/l3bootstrap.dtx
index 861f0bb5a6..3a2d2c2477 100644
--- a/macros/latex/required/l3kernel/l3bootstrap.dtx
+++ b/macros/latex/required/l3kernel/l3bootstrap.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3box.dtx b/macros/latex/required/l3kernel/l3box.dtx
index 808d22da23..7ee8f93e2e 100644
--- a/macros/latex/required/l3kernel/l3box.dtx
+++ b/macros/latex/required/l3kernel/l3box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -906,9 +906,9 @@
% \begin{syntax}
% \cs{box_set_trim:Nnnnn} \meta{box} \Arg{left} \Arg{bottom} \Arg{right} \Arg{top}
% \end{syntax}
-% Adjusts the bounding box of the \meta{box} \meta{left} is removed from
+% Adjusts the bounding box of the \meta{box}: \meta{left} is removed from
% the left-hand edge of the bounding box, \meta{right} from the right-hand
-% edge and so fourth. All adjustments are \meta{dim exprs}.
+% edge, and so forth. All adjustments are \meta{dim exprs}.
% Material outside of the bounding box is still displayed in the output
% unless \cs{box_set_clipped:N} is subsequently applied.
% The updated \meta{box} is an
diff --git a/macros/latex/required/l3kernel/l3cctab.dtx b/macros/latex/required/l3kernel/l3cctab.dtx
index 4bf8db41a6..7fbab7c75a 100644
--- a/macros/latex/required/l3kernel/l3cctab.dtx
+++ b/macros/latex/required/l3kernel/l3cctab.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3clist.dtx b/macros/latex/required/l3kernel/l3clist.dtx
index 5adb01cffb..8f2da5d029 100644
--- a/macros/latex/required/l3kernel/l3clist.dtx
+++ b/macros/latex/required/l3kernel/l3clist.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -324,8 +324,10 @@
% {
% \clist_remove_all:Nn, \clist_remove_all:cn,
% \clist_remove_all:NV, \clist_remove_all:cV,
+% \clist_remove_all:Ne, \clist_remove_all:ce,
% \clist_gremove_all:Nn, \clist_gremove_all:cn,
-% \clist_gremove_all:NV, \clist_gremove_all:cV
+% \clist_gremove_all:NV, \clist_gremove_all:cV,
+% \clist_gremove_all:Ne, \clist_gremove_all:ce
% }
% \begin{syntax}
% \cs{clist_remove_all:Nn} \meta{clist~var} \Arg{item}
@@ -350,7 +352,7 @@
% Reverses the order of items stored in the \meta{clist~var}.
% \end{function}
%
-% \begin{function}[added = 2014-07-18]{\clist_reverse:n}
+% \begin{function}[added = 2014-07-18, EXP]{\clist_reverse:n}
% \begin{syntax}
% \cs{clist_reverse:n} \Arg{comma list}
% \end{syntax}
@@ -1429,13 +1431,15 @@
% \begin{macro}
% {
% \clist_remove_all:Nn, \clist_remove_all:cn,
-% \clist_remove_all:NV, \clist_remove_all:cV
+% \clist_remove_all:NV, \clist_remove_all:cV,
+% \clist_remove_all:Ne, \clist_remove_all:ce
% }
% \UnitTested
% \begin{macro}
% {
% \clist_gremove_all:Nn, \clist_gremove_all:cn,
-% \clist_gremove_all:NV, \clist_gremove_all:cV
+% \clist_gremove_all:NV, \clist_gremove_all:cV,
+% \clist_gremove_all:Ne, \clist_gremove_all:ce
% }
% \UnitTested
% \begin{macro}{\@@_remove_all:NNNn}
@@ -1509,8 +1513,8 @@
\cs_new:Npn \@@_remove_all:
{ \exp_after:wN \@@_remove_all:w \@@_tmp:w , }
\cs_new:Npn \@@_remove_all:w #1 , \s_@@_mark , #2 , { \exp_not:n {#1} }
-\cs_generate_variant:Nn \clist_remove_all:Nn { c , NV , cV }
-\cs_generate_variant:Nn \clist_gremove_all:Nn { c , NV , cV }
+\cs_generate_variant:Nn \clist_remove_all:Nn { c , NV , cV , Ne , ce }
+\cs_generate_variant:Nn \clist_gremove_all:Nn { c , NV , cV , Ne , ce }
% \end{macrocode}
% \end{macro}
% \end{macro}
diff --git a/macros/latex/required/l3kernel/l3coffins.dtx b/macros/latex/required/l3kernel/l3coffins.dtx
index 62dc5f92ad..be982e324a 100644
--- a/macros/latex/required/l3kernel/l3coffins.dtx
+++ b/macros/latex/required/l3kernel/l3coffins.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3color.dtx b/macros/latex/required/l3kernel/l3color.dtx
index b56fb9e0ac..0fafd8ef24 100644
--- a/macros/latex/required/l3kernel/l3color.dtx
+++ b/macros/latex/required/l3kernel/l3color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -103,7 +103,7 @@
% \begin{itemize}
% \item \texttt{Gray} Grayscale color, with a single axis running from
% $0$ (fully black) to $15$ (fully white)
-% \item \texttt{hsb} Hue-saturation-brightness color, with three axes,all
+% \item \texttt{hsb} Hue-saturation-brightness color, with three axes, all
% real values in the range $[0,1]$ for hue saturation and brightness
% \item \texttt{Hsb} Hue-saturation-brightness color, with three axes, integer
% in the range $[0,360]$ for hue, real values in the range $[0,1]$ for
@@ -325,7 +325,7 @@
% \end{function}
%
% \begin{variable}[module = color]{color.sc}
-% When using \texttt{dvips}, this PostScript variables hold the stroke color.
+% When using \texttt{dvips}, this PostScript variable holds the stroke color.
% \end{variable}
%
% \subsection{Coloring math mode material}
@@ -406,20 +406,20 @@
%
% \begin{function}{\color_export:nnN}
% \begin{syntax}
-% \cs{color_export:nnN} \Arg{color expression} \Arg{format} \Arg{tl}
+% \cs{color_export:nnN} \Arg{color expression} \Arg{format} \meta{tl var}
% \end{syntax}
% Parses the \meta{color expression} as described earlier,
% then converts to the \meta{format} specified and assigns the data to the
-% \meta{tl}.
+% \meta{tl var}.
% \end{function}
%
% \begin{function}{\color_export:nnnN}
% \begin{syntax}
-% \cs{color_export:nnnN} \Arg{model} \Arg{value(s)} \Arg{format} \Arg{tl}
+% \cs{color_export:nnnN} \Arg{model} \Arg{value(s)} \Arg{format} \meta{tl var}
% \end{syntax}
% Expresses the combination of \meta{model} and \meta{value(s)} in an
% internal representation, then converts to the \meta{format} specified and
-% assigns the data to the \meta{tl}.
+% assigns the data to the \meta{tl var}.
% \end{function}
%
% \section{Creating new color models}
@@ -495,7 +495,7 @@
%
% Color profiles are used to ensure color accuracy by linking to collaboration.
% Applying a profile can be used to standardise color which is otherwise
-% device-dependence.
+% device-dependent.
%
% \begin{function}[added = 2021-02-23]{\color_profile_apply:nn}
% \begin{syntax}
@@ -697,14 +697,14 @@
% \begin{macro}{\@@_convert:nnnN, \@@_convert:nVnN, \@@_convert:nnVN}
% \begin{macro}[EXP]
% {
-% \@@_convert_gray_gray:w
-% \@@_convert_gray_rgb:w
-% \@@_convert_gray_cmyk:w
-% \@@_convert_cmyk_gray:w
-% \@@_convert_cmyk_rgb:w
-% \@@_convert_cmyk_cmyk:w
-% \@@_convert_rgb_gray:w
-% \@@_convert_rgb_rgb:w
+% \@@_convert_gray_gray:w,
+% \@@_convert_gray_rgb:w,
+% \@@_convert_gray_cmyk:w,
+% \@@_convert_cmyk_gray:w,
+% \@@_convert_cmyk_rgb:w,
+% \@@_convert_cmyk_cmyk:w,
+% \@@_convert_rgb_gray:w,
+% \@@_convert_rgb_rgb:w,
% \@@_convert_rgb_cmyk:w
% }
% \begin{macro}[EXP]{\@@_convert_rgb_cmyk:nnn}
diff --git a/macros/latex/required/l3kernel/l3debug.dtx b/macros/latex/required/l3kernel/l3debug.dtx
index 21e6747a84..496004c34b 100644
--- a/macros/latex/required/l3kernel/l3debug.dtx
+++ b/macros/latex/required/l3kernel/l3debug.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -69,7 +69,7 @@
%
% Standard file identification.
% \begin{macrocode}
-\ProvidesExplFile{l3debug.def}{2024-05-27}{}{L3 Debugging support}
+\ProvidesExplFile{l3debug.def}{2024-09-10}{}{L3 Debugging support}
% \end{macrocode}
%
% \begin{variable}{\s_@@_stop}
diff --git a/macros/latex/required/l3kernel/l3deprecation.dtx b/macros/latex/required/l3kernel/l3deprecation.dtx
index 5852205ddc..8f36b2075f 100644
--- a/macros/latex/required/l3kernel/l3deprecation.dtx
+++ b/macros/latex/required/l3kernel/l3deprecation.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -505,10 +505,10 @@
{ \text_uppercase:nn {#1} {#2} }
\__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \text_titlecase_first:n }
\cs_new:Npn \tl_mixed_case:n #1
- { \text_titlecase_first:n {#1} }
+ { \text_titlecase_first:n { \text_lowercase:n {#1} } }
\__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \text_titlecase_first:nn }
\cs_new:Npn \tl_mixed_case:nn #1#2
- { \text_titlecase_first:nn {#1} {#2} }
+ { \text_titlecase_first:nn {#1} { \text_lowercase:n {#2} } }
% \end{macrocode}
% \end{macro}
%
@@ -571,7 +571,7 @@
% \char_lower_case:N, \char_upper_case:N,
% \char_mixed_case:Nn, \char_fold_case:N,
% \char_str_lower_case:N, \char_str_upper_case:N,
-% \char_str_mixed_case:Nn, \char_str_fold_case:N,
+% \char_str_mixed_case:N, \char_str_fold_case:N,
% }
% \begin{macrocode}
\__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \text_lowercase:n }
diff --git a/macros/latex/required/l3kernel/l3doc.dtx b/macros/latex/required/l3kernel/l3doc.dtx
index 43b719ce59..9268f85744 100644
--- a/macros/latex/required/l3kernel/l3doc.dtx
+++ b/macros/latex/required/l3kernel/l3doc.dtx
@@ -71,7 +71,7 @@ and all files in that bundle must be distributed together.
% This isn't included in the typeset documentation because it's a bit
% ugly:
%<*class>
-\ProvidesExplClass{l3doc}{2024-05-27}{}
+\ProvidesExplClass{l3doc}{2024-09-10}{}
{L3 Experimental documentation class}
%</class>
% \fi
@@ -84,7 +84,7 @@ and all files in that bundle must be distributed together.
% require you to do updates, if the class changes.}}
%
% \author{\Team}
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
% \maketitle
% \tableofcontents
%
@@ -1618,7 +1618,7 @@ and all files in that bundle must be distributed together.
%
% \subsection{Design}
%
-% Increase the text width slightly so that width the standard fonts
+% Increase the text width slightly so that with the standard fonts
% 72~columns of code may appear in a \env{macrocode} environment.
% Increase the marginpar width slightly, for long command names. And
% increase the left margin by a similar amount.
@@ -2160,10 +2160,18 @@ and all files in that bundle must be distributed together.
%
% \begin{macro}{\@@_names_get_seq:nN}
% The argument~|#1| (argument of a |function| or |macro| environment)
-% has catcodes $10$ (space), $12$ (other) and $13$ (active). Sanitize
-% catcodes. If the |verb| option was used, output a one-item
-% sequence. Otherwise, remove any \enquote{\%} character at the
-% beginning of a line. Remove tabs and newlines. Finally, convert
+% has catcodes $10$ (space), $12$ (other) and $13$ (active), and
+% since \LaTeX{} 2024-06-01 also macro \cs{obeyedline} in replacement
+% of active |^^M| tokens (due to the revised behavior of |+v|
+% argument type in |ltcmd|).
+% If the |verb| option was used, sanitize catcodes and output
+% a one-item sequence.
+% Otherwise, remove any \enquote{\%} character at the beginning of
+% a line using new end-of-line marker \cs{obeyedline}. Remove any
+% remaining \cs{obeyedline}. Then sanitize catcodes so we keep those
+% verbatim \cs{obeyedline} typed in by user. Remove remaining
+% \enquote{\%} character at the beginning of a line using traditional
+% |^^M| marker. Remove tabs and newlines. Finally, convert
% |_@@| and |@@| to |__|\meta{module name} (if it is non-empty). At
% this point, \cs{l_@@_tmpa_tl} contains a comma-delimited list of
% names, where |@| and~|_| have category code letter. Turn it to a
@@ -2172,17 +2180,20 @@ and all files in that bundle must be distributed together.
% \begin{macrocode}
\cs_new_protected:Npn \@@_names_get_seq:nN #1#2
{
- \__kernel_tl_set:Nx \l_@@_tmpa_tl { \tl_to_str:n {#1} }
\bool_if:NTF \l_@@_names_verb_bool
{
\seq_clear:N #2
- \seq_put_right:NV #2 \l_@@_tmpa_tl
+ \seq_put_right:No #2 { \tl_to_str:n {#1} }
}
{
+ \tl_set:Nn \l_@@_tmpa_tl {#1}
\tl_remove_all:Ne \l_@@_tmpa_tl
- { \iow_char:N \^^M \c_percent_str }
+ { \exp_not:N \obeyedline \c_percent_str }
+ \tl_remove_all:Ne \l_@@_tmpa_tl
+ { \exp_not:N \obeyedline }
+ \__kernel_tl_set:Nx \l_@@_tmpa_tl { \tl_to_str:N \l_@@_tmpa_tl }
\tl_remove_all:Ne \l_@@_tmpa_tl
- { \token_to_str:N \obeyedline \c_space_tl \c_percent_str }
+ { \iow_char:N \^^M \c_percent_str }
\tl_remove_all:Ne \l_@@_tmpa_tl { \tl_to_str:n { ^ ^ A } }
\tl_remove_all:Ne \l_@@_tmpa_tl { \iow_char:N \^^I }
\tl_remove_all:Ne \l_@@_tmpa_tl { \iow_char:N \^^M }
@@ -2529,7 +2540,7 @@ and all files in that bundle must be distributed together.
\cs_new_protected:Npn \@@_function_typeset_stop:
{
\par
- \dim_set:Nn \prevdepth { \box_dp:N \l_@@_descr_coffin }
+ \dim_set:Nn \prevdepth { \coffin_dp:N \l_@@_descr_coffin }
\allowbreak
}
% \end{macrocode}
@@ -2594,7 +2605,7 @@ and all files in that bundle must be distributed together.
\dim_zero:N \l_@@_trial_width_dim
\hcoffin_set:Nn \l_@@_functions_coffin { \@@_typeset_functions: }
\dim_set:Nn \l_@@_trial_width_dim
- { \box_wd:N \l_@@_functions_coffin }
+ { \coffin_wd:N \l_@@_functions_coffin }
\bool_set:Nn \l_@@_long_name_bool
{ \dim_compare_p:nNn \l_@@_trial_width_dim > \marginparwidth }
}
@@ -2643,7 +2654,7 @@ and all files in that bundle must be distributed together.
\coffin_join:NnnNnnnn
\l_@@_output_coffin {l} {b}
\l_@@_descr_coffin {l} {t}
- {0.75\marginparwidth + \marginparsep} {-\medskipamount}
+ {\marginparwidth + \marginparsep} {-\medskipamount}
\coffin_typeset:Nnnnn \l_@@_output_coffin
{\l_@@_descr_coffin-l} {\l_@@_descr_coffin-t}
{0pt} {0pt}
@@ -2695,8 +2706,7 @@ and all files in that bundle must be distributed together.
% \end{macro}
%
% ^^A TODO: collect all index targets from a given function environment in a box and stick it at the top.
-% \begin{macro}
-% {\@@_typeset_function_block:nN, \@@_typeset_function_block:eN}
+% \begin{macro}{\@@_typeset_function_block:nN}
% \begin{macro}{\@@_function_index:n, \@@_function_index:e}
% |#1| is a csname, |#2| a boolean indicating whether to add |TF| or not.
% \begin{macrocode}
@@ -2712,7 +2722,6 @@ and all files in that bundle must be distributed together.
{ \@@_typeset_variant_list:nN {#1} #2 }
\\
}
-\cs_generate_variant:Nn \@@_typeset_function_block:nN { e }
\cs_new_protected:Npn \@@_function_index:n #1
{
\seq_gput_right:Nn \g_doc_functions_seq {#1}
@@ -2840,7 +2849,7 @@ and all files in that bundle must be distributed together.
{
\textwidth
\bool_if:NT \l_@@_long_name_bool
- { + 0.75 \marginparwidth - \l_@@_trial_width_dim }
+ { + \marginparwidth - \l_@@_trial_width_dim }
}
\hbox_gset:Nw \g_@@_syntax_box
\small \ttfamily
@@ -3213,7 +3222,7 @@ and all files in that bundle must be distributed together.
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_print_macroname_aux:nn}
+% \begin{macro}{\@@_print_macroname_aux:nn, \@@_print_macroname_aux:on}
% |#1| is prefix, |#2| is optional |TF| suffix.
% \begin{macrocode}
\cs_new_protected:Npn \@@_print_macroname_aux:nn #1#2
@@ -4254,7 +4263,6 @@ and all files in that bundle must be distributed together.
{#2}
\l_@@_index_internal_bool
}
-\cs_generate_variant:Nn \@@_special_index:nn { o }
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/required/l3kernel/l3doc.pdf b/macros/latex/required/l3kernel/l3doc.pdf
index 42960f5e6f..638e46c9d5 100644
--- a/macros/latex/required/l3kernel/l3doc.pdf
+++ b/macros/latex/required/l3kernel/l3doc.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3docstrip.dtx b/macros/latex/required/l3kernel/l3docstrip.dtx
index fecb228324..c7664dbcce 100644
--- a/macros/latex/required/l3kernel/l3docstrip.dtx
+++ b/macros/latex/required/l3kernel/l3docstrip.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3docstrip.pdf b/macros/latex/required/l3kernel/l3docstrip.pdf
index efc8882c36..9d8ce16a48 100644
--- a/macros/latex/required/l3kernel/l3docstrip.pdf
+++ b/macros/latex/required/l3kernel/l3docstrip.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3expan.dtx b/macros/latex/required/l3kernel/l3expan.dtx
index d13578bde1..376d19bf7e 100644
--- a/macros/latex/required/l3kernel/l3expan.dtx
+++ b/macros/latex/required/l3kernel/l3expan.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -75,8 +75,8 @@
% If \cs{seq_gpush:No} was not defined it could be coded in the following way:
% \begin{verbatim}
% \exp_args:NNo \seq_gpush:Nn
-% \g_file_name_stack
-% { \l_tmpa_tl }
+% \g_file_name_stack
+% { \l_tmpa_tl }
% \end{verbatim}
% In other words, the first argument to \cs{exp_args:NNo} is the base
% function and the other arguments are preprocessed and then passed to
diff --git a/macros/latex/required/l3kernel/l3file.dtx b/macros/latex/required/l3kernel/l3file.dtx
index 546222711e..b08d59abce 100644
--- a/macros/latex/required/l3kernel/l3file.dtx
+++ b/macros/latex/required/l3kernel/l3file.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -718,8 +718,10 @@
% \cs{file_if_exist_p:n} \Arg{file name}
% \cs{file_if_exist:nTF} \Arg{file name} \Arg{true code} \Arg{false code}
% \end{syntax}
-% Tests if \meta{file name} is found in the path as detailed for
-% \cs{file_if_exist:nTF}.
+% Expands the argument of the \meta{file name} to give a string, then
+% searches for this string using the current \TeX{} search
+% path and the additional paths controlled by
+% \cs{l_file_search_path_seq}.
% \end{function}
%
% \subsection{Information about files and file contents}
@@ -844,11 +846,11 @@
% \file_compare_timestamp:VNV
% }
% \begin{syntax}
-% \cs{file_compare_timestamp_p:nNn} \Arg{file-1} \meta{comparator} \Arg{file-2}
-% \cs{file_compare_timestamp:nNnTF} \Arg{file-1} \meta{comparator} \Arg{file-2} \Arg{true code} \Arg{false code}
+% \cs{file_compare_timestamp_p:nNn} \Arg{file-1} \meta{relation} \Arg{file-2}
+% \cs{file_compare_timestamp:nNnTF} \Arg{file-1} \meta{relation} \Arg{file-2} \Arg{true code} \Arg{false code}
% \end{syntax}
% Compares the file stamps on the two \meta{files} as indicated by
-% the \meta{comparator}, and inserts either the \meta{true code}
+% the \meta{relation}, and inserts either the \meta{true code}
% or \meta{false case} as required. A file which is not found
% is treated as older than any file which is found. This allows for
% example the construct
diff --git a/macros/latex/required/l3kernel/l3flag.dtx b/macros/latex/required/l3kernel/l3flag.dtx
index 88e726df35..5b1794b3ad 100644
--- a/macros/latex/required/l3kernel/l3flag.dtx
+++ b/macros/latex/required/l3kernel/l3flag.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3fp-assign.dtx b/macros/latex/required/l3kernel/l3fp-assign.dtx
index e6fa97423e..e7a618d598 100644
--- a/macros/latex/required/l3kernel/l3fp-assign.dtx
+++ b/macros/latex/required/l3kernel/l3fp-assign.dtx
@@ -42,7 +42,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
% \maketitle
%
% \begin{documentation}
diff --git a/macros/latex/required/l3kernel/l3fp-aux.dtx b/macros/latex/required/l3kernel/l3fp-aux.dtx
index 1ad33e235e..aeab995210 100644
--- a/macros/latex/required/l3kernel/l3fp-aux.dtx
+++ b/macros/latex/required/l3kernel/l3fp-aux.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3fp-basics.dtx b/macros/latex/required/l3kernel/l3fp-basics.dtx
index e2d93219b0..9056f9e3ff 100644
--- a/macros/latex/required/l3kernel/l3fp-basics.dtx
+++ b/macros/latex/required/l3kernel/l3fp-basics.dtx
@@ -42,7 +42,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3fp-convert.dtx b/macros/latex/required/l3kernel/l3fp-convert.dtx
index 4983a3dd1f..cc0112bf03 100644
--- a/macros/latex/required/l3kernel/l3fp-convert.dtx
+++ b/macros/latex/required/l3kernel/l3fp-convert.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3fp-expo.dtx b/macros/latex/required/l3kernel/l3fp-expo.dtx
index 7577f640d4..4ef3b85c07 100644
--- a/macros/latex/required/l3kernel/l3fp-expo.dtx
+++ b/macros/latex/required/l3kernel/l3fp-expo.dtx
@@ -42,7 +42,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3fp-extended.dtx b/macros/latex/required/l3kernel/l3fp-extended.dtx
index 596dc86ef2..4ebbbb3f09 100644
--- a/macros/latex/required/l3kernel/l3fp-extended.dtx
+++ b/macros/latex/required/l3kernel/l3fp-extended.dtx
@@ -42,7 +42,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3fp-functions.dtx b/macros/latex/required/l3kernel/l3fp-functions.dtx
index b9e269b988..13753cbde4 100644
--- a/macros/latex/required/l3kernel/l3fp-functions.dtx
+++ b/macros/latex/required/l3kernel/l3fp-functions.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3fp-logic.dtx b/macros/latex/required/l3kernel/l3fp-logic.dtx
index 486a3bc579..0ab92fb5ff 100644
--- a/macros/latex/required/l3kernel/l3fp-logic.dtx
+++ b/macros/latex/required/l3kernel/l3fp-logic.dtx
@@ -42,7 +42,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3fp-parse.dtx b/macros/latex/required/l3kernel/l3fp-parse.dtx
index 7853c40132..fb9a07fbec 100644
--- a/macros/latex/required/l3kernel/l3fp-parse.dtx
+++ b/macros/latex/required/l3kernel/l3fp-parse.dtx
@@ -42,7 +42,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3fp-random.dtx b/macros/latex/required/l3kernel/l3fp-random.dtx
index ff999926ab..7832c58792 100644
--- a/macros/latex/required/l3kernel/l3fp-random.dtx
+++ b/macros/latex/required/l3kernel/l3fp-random.dtx
@@ -42,7 +42,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3fp-round.dtx b/macros/latex/required/l3kernel/l3fp-round.dtx
index 0d39b8a26a..1ea74e51dd 100644
--- a/macros/latex/required/l3kernel/l3fp-round.dtx
+++ b/macros/latex/required/l3kernel/l3fp-round.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3fp-symbolic.dtx b/macros/latex/required/l3kernel/l3fp-symbolic.dtx
index 88e214f49e..cb3e2e2655 100644
--- a/macros/latex/required/l3kernel/l3fp-symbolic.dtx
+++ b/macros/latex/required/l3kernel/l3fp-symbolic.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3fp-traps.dtx b/macros/latex/required/l3kernel/l3fp-traps.dtx
index fec48bc163..b73d27a304 100644
--- a/macros/latex/required/l3kernel/l3fp-traps.dtx
+++ b/macros/latex/required/l3kernel/l3fp-traps.dtx
@@ -42,7 +42,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
% \maketitle
%
% \begin{documentation}
diff --git a/macros/latex/required/l3kernel/l3fp-trig.dtx b/macros/latex/required/l3kernel/l3fp-trig.dtx
index 7c40c6198f..d9c9db6071 100644
--- a/macros/latex/required/l3kernel/l3fp-trig.dtx
+++ b/macros/latex/required/l3kernel/l3fp-trig.dtx
@@ -42,7 +42,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3fp-types.dtx b/macros/latex/required/l3kernel/l3fp-types.dtx
index e9269e1f03..4e0d024d4f 100644
--- a/macros/latex/required/l3kernel/l3fp-types.dtx
+++ b/macros/latex/required/l3kernel/l3fp-types.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3fp.dtx b/macros/latex/required/l3kernel/l3fp.dtx
index d273b057ea..ef02d0f816 100644
--- a/macros/latex/required/l3kernel/l3fp.dtx
+++ b/macros/latex/required/l3kernel/l3fp.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -773,7 +773,7 @@
% The result may contain other functions, which are
% then replaced by their results if they have any. For instance,
% \begin{quote}
-% \cs{fp_new_function:n} |{ foo }| \\
+% \cs{fp_new_function:n} |{ npow }| \\
% \cs{fp_set_function:nnn} |{ npow } { a,b } { a**b }| \\
% \cs{fp_show:n} |{ npow(16,0.25) } }|
% \end{quote}
diff --git a/macros/latex/required/l3kernel/l3fparray.dtx b/macros/latex/required/l3kernel/l3fparray.dtx
index f48de27af3..8ce29ecaf8 100644
--- a/macros/latex/required/l3kernel/l3fparray.dtx
+++ b/macros/latex/required/l3kernel/l3fparray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3int.dtx b/macros/latex/required/l3kernel/l3int.dtx
index 45050964de..0d9b0137de 100644
--- a/macros/latex/required/l3kernel/l3int.dtx
+++ b/macros/latex/required/l3kernel/l3int.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -100,21 +100,6 @@
% restricted-expandable functions can both be used, and \cs{exp_not:n}
% and its variants have no effect while \cs{exp_not:N} may incorrectly
% interrupt the expression.
-% \begin{texnote}
-% Exactly two expansions are needed to evaluate \cs{int_eval:n}.
-% The result is \emph{not} an \meta{internal integer}, and therefore
-% should be terminated by a space if used in \cs{int_value:w} or in
-% a \TeX{}-style integer assignment.
-%
-% As all \TeX{} integers, integer operands can also be:
-% \tn{value}\Arg{\LaTeXe{} counter}; dimension or skip variables,
-% converted to integers in~\texttt{sp}; the character code of some
-% character given as \texttt{`}\meta{char} or
-% \texttt{`\textbackslash}\meta{char}; octal numbers given as
-% \texttt{'} followed by digits from \texttt{0} to \texttt{7}; or
-% hexadecimal numbers given as |"| followed by digits and upper case
-% letters from \texttt{A} to~\texttt{F}.
-% \end{texnote}
%
% \begin{function}[EXP]{\int_eval:n}
% \begin{syntax}
@@ -426,7 +411,8 @@
% \end{syntax}
% This function evaluates the \meta{test int expr} and
% compares this in turn to each of the
-% \meta{int expr cases}. If the two are equal then the
+% \meta{int expr case}s until a match is found.
+% If the two are equal then the
% associated \meta{code} is left in the input stream
% and other cases are discarded. If any of the
% cases are matched, the \meta{true code} is also inserted into the
@@ -445,6 +431,10 @@
% { No idea! }
% \end{verbatim}
% leaves \enquote{\texttt{Medium}} in the input stream.
+% Since evaluation of the test expressions stops at the first
+% successful case, the order of possible matches should normally
+% be that the most likely are earlier: this will reduce the average
+% steps required to complete expansion.
% \end{function}
%
% \begin{function}[EXP,pTF]{\int_if_even:n, \int_if_odd:n}
diff --git a/macros/latex/required/l3kernel/l3intarray.dtx b/macros/latex/required/l3kernel/l3intarray.dtx
index aa49275e78..0320579e94 100644
--- a/macros/latex/required/l3kernel/l3intarray.dtx
+++ b/macros/latex/required/l3kernel/l3intarray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3kernel-functions.dtx b/macros/latex/required/l3kernel/l3kernel-functions.dtx
index c3bb838acf..ab12634783 100644
--- a/macros/latex/required/l3kernel/l3kernel-functions.dtx
+++ b/macros/latex/required/l3kernel/l3kernel-functions.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3keys.dtx b/macros/latex/required/l3kernel/l3keys.dtx
index 13772d1781..4535a6e845 100644
--- a/macros/latex/required/l3kernel/l3keys.dtx
+++ b/macros/latex/required/l3kernel/l3keys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -649,15 +649,13 @@
% { key } % Name of choice key
% { choice-a , choice-b , choice-c } % Valid choices
% { \exp_not:n {#1} } % Invalid choice given
-% %
-% %
% }
% \end{verbatim}
%
% Multiple choices are created in a very similar manner to mutually-exclusive
% choices, using the properties \texttt{.multichoice:} and
% \texttt{.multichoices:nn}. As with mutually exclusive choices, multiple
-% choices are define as sub-keys. Thus both
+% choices are defined as sub-keys. Thus both
% \begin{verbatim}
% \keys_define:nn { mymodule }
% {
@@ -1926,19 +1924,21 @@
% \end{macro}
%
% \begin{macro}{\@@_define_code:n}
+% \begin{macro}[EXP]{\@@_define_code:nnn}
% \begin{macro}[EXP]{\@@_define_code:w}
% Two possible cases. If there is a value for the key, then just use
% the function. If not, then a check to make sure there is no need for
% a value with the property. If there should be one then complain,
-% otherwise execute it. There is no need to check for a |:| as if it
-% was missing the earlier tests would have failed.
+% otherwise execute it. For a \LaTeXe{} property like |.code| which
+% doesn't contain a |:|, treat it as having arity 1 and pass the
+% (empty) value to it.
% \begin{macrocode}
\cs_new_protected:Npn \@@_define_code:n #1
{
\bool_if:NTF \l_@@_no_value_bool
{
- \exp_after:wN \@@_define_code:w
- \l_@@_property_str \s_@@_stop
+ \@@_define_code:nnn
+ { \use:c { \c_@@_props_root_str \l_@@_property_str } {#1} }
{ \use:c { \c_@@_props_root_str \l_@@_property_str } }
{
\msg_error:nnee { keys } { property-requires-value }
@@ -1947,12 +1947,31 @@
}
{ \use:c { \c_@@_props_root_str \l_@@_property_str } {#1} }
}
-\exp_last_unbraced:NNNNo
- \cs_new:Npn \@@_define_code:w #1 \c_colon_str #2 \s_@@_stop
- { \tl_if_empty:nTF {#2} }
+\cs_new:Npe \@@_define_code:nnn
+ {
+ \exp_not:N \exp_after:wN \exp_not:N \@@_define_code:w
+ \exp_not:N \l_@@_property_str
+ \c_colon_str \c_colon_str
+ \exp_not:N \s_@@_stop
+ }
+\use:e
+ {
+ \cs_new:Npn \exp_not:N \@@_define_code:w
+ #1 \c_colon_str #2 \c_colon_str #3 \exp_not:N \s_@@_stop
+ }
+ {
+ \tl_if_empty:nTF {#3}
+ { \use_i:nnn }
+ {
+ \tl_if_empty:nTF {#2}
+ { \use_ii:nnn }
+ { \use_iii:nnn }
+ }
+ }
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \subsection{Turning properties into actions}
%
diff --git a/macros/latex/required/l3kernel/l3legacy.dtx b/macros/latex/required/l3kernel/l3legacy.dtx
index 4cfce5c5f1..06827eb5db 100644
--- a/macros/latex/required/l3kernel/l3legacy.dtx
+++ b/macros/latex/required/l3kernel/l3legacy.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3luatex.dtx b/macros/latex/required/l3kernel/l3luatex.dtx
index eb10d5aecc..9c1cabc9bd 100644
--- a/macros/latex/required/l3kernel/l3luatex.dtx
+++ b/macros/latex/required/l3kernel/l3luatex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3msg.dtx b/macros/latex/required/l3kernel/l3msg.dtx
index e901b07c06..5d1d0a5bec 100644
--- a/macros/latex/required/l3kernel/l3msg.dtx
+++ b/macros/latex/required/l3kernel/l3msg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3names.dtx b/macros/latex/required/l3kernel/l3names.dtx
index 5cdd1361e3..7dec3ca091 100644
--- a/macros/latex/required/l3kernel/l3names.dtx
+++ b/macros/latex/required/l3kernel/l3names.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3news.pdf b/macros/latex/required/l3kernel/l3news.pdf
index 4b57ef41c8..5c652bbb5b 100644
--- a/macros/latex/required/l3kernel/l3news.pdf
+++ b/macros/latex/required/l3kernel/l3news.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3news01.pdf b/macros/latex/required/l3kernel/l3news01.pdf
index b5f45059d3..f6c06f3332 100644
--- a/macros/latex/required/l3kernel/l3news01.pdf
+++ b/macros/latex/required/l3kernel/l3news01.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3news02.pdf b/macros/latex/required/l3kernel/l3news02.pdf
index 0ee8ffaf96..c8b5c4850e 100644
--- a/macros/latex/required/l3kernel/l3news02.pdf
+++ b/macros/latex/required/l3kernel/l3news02.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3news03.pdf b/macros/latex/required/l3kernel/l3news03.pdf
index fef9bf3a7b..f4b4cf4a2a 100644
--- a/macros/latex/required/l3kernel/l3news03.pdf
+++ b/macros/latex/required/l3kernel/l3news03.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3news04.pdf b/macros/latex/required/l3kernel/l3news04.pdf
index 0afbb9591e..338fbe4925 100644
--- a/macros/latex/required/l3kernel/l3news04.pdf
+++ b/macros/latex/required/l3kernel/l3news04.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3news05.pdf b/macros/latex/required/l3kernel/l3news05.pdf
index 0a44ce6811..9f94db53dd 100644
--- a/macros/latex/required/l3kernel/l3news05.pdf
+++ b/macros/latex/required/l3kernel/l3news05.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3news06.pdf b/macros/latex/required/l3kernel/l3news06.pdf
index 10cec7c17f..f6f6ff27bc 100644
--- a/macros/latex/required/l3kernel/l3news06.pdf
+++ b/macros/latex/required/l3kernel/l3news06.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3news07.pdf b/macros/latex/required/l3kernel/l3news07.pdf
index 6bfbab4d96..41bac946e0 100644
--- a/macros/latex/required/l3kernel/l3news07.pdf
+++ b/macros/latex/required/l3kernel/l3news07.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3news08.pdf b/macros/latex/required/l3kernel/l3news08.pdf
index a0130195cc..cc395aeebf 100644
--- a/macros/latex/required/l3kernel/l3news08.pdf
+++ b/macros/latex/required/l3kernel/l3news08.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3news09.pdf b/macros/latex/required/l3kernel/l3news09.pdf
index 3616cc20ca..f638662aae 100644
--- a/macros/latex/required/l3kernel/l3news09.pdf
+++ b/macros/latex/required/l3kernel/l3news09.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3news10.pdf b/macros/latex/required/l3kernel/l3news10.pdf
index 00ec553d1c..9f019c7f1f 100644
--- a/macros/latex/required/l3kernel/l3news10.pdf
+++ b/macros/latex/required/l3kernel/l3news10.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3news11.pdf b/macros/latex/required/l3kernel/l3news11.pdf
index 59a672d339..498b027d6f 100644
--- a/macros/latex/required/l3kernel/l3news11.pdf
+++ b/macros/latex/required/l3kernel/l3news11.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3news12.pdf b/macros/latex/required/l3kernel/l3news12.pdf
index 9c4f937b00..55c60bb5cf 100644
--- a/macros/latex/required/l3kernel/l3news12.pdf
+++ b/macros/latex/required/l3kernel/l3news12.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3pdf.dtx b/macros/latex/required/l3kernel/l3pdf.dtx
index 55f49476e3..4d90b326cf 100644
--- a/macros/latex/required/l3kernel/l3pdf.dtx
+++ b/macros/latex/required/l3kernel/l3pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -70,8 +70,8 @@
% \cs{pdf_object_write:nnn} \Arg{object} \Arg{type} \Arg{content}
% \end{syntax}
% Writes the \meta{content} as content of the \meta{object}. Depending on the
-% \meta{type} declared for the object, the format required for the
-% \meta{data} will vary
+% \meta{type} declared for the object, the format required for
+% \meta{content} will vary:
% \begin{itemize}
% \item[\texttt{array}] A space-separated list of values
% \item[\texttt{dict}] Key--value pairs in the form
@@ -159,7 +159,7 @@
% \cs{pdf_object_unnamed_write:nn} \Arg{type} \Arg{content}
% \end{syntax}
% Writes the \meta{content} as content of an anonymous object. Depending on the
-% \meta{type}, the format required for the \meta{data} will vary
+% \meta{type}, the format required for \meta{content} will vary:
% \begin{itemize}
% \item[\texttt{array}] A space-separated list of values
% \item[\texttt{dict}] Key--value pairs in the form
@@ -192,11 +192,11 @@
%
% \begin{function}[pTF, EXP, added = 2021-02-10]{\pdf_version_compare:Nn}
% \begin{syntax}
-% \cs{pdf_version_compare_p:Nn} \meta{comparator} \Arg{version}
-% \cs{pdf_version_compare:NnTF} \meta{comparator} \Arg{version} \Arg{true code} \Arg{false code}
+% \cs{pdf_version_compare_p:Nn} \meta{relation} \Arg{version}
+% \cs{pdf_version_compare:NnTF} \meta{relation} \Arg{version} \Arg{true code} \Arg{false code}
% \end{syntax}
% Compares the version of the PDF being created with the \meta{version}
-% string specified, using the \meta{comparator}. Either the \meta{true code}
+% string specified, using the \meta{relation}. Either the \meta{true code}
% or \meta{false code} will be left in the output stream.
% \end{function}
%
@@ -251,9 +251,9 @@
%
% \section{Destinations}
%
-% Destinations are the places a link jumped too.
-% Unlike the name may suggest they don't described
-% an exact location in the PDF. Instead a destination contains a reference to
+% Destinations are the places a link jumped to.
+% Unlike the name may suggest, they don't describe
+% an exact location in the PDF. Instead, a destination contains a reference to
% a page along with an instruction how to display this page.
% The normally used \enquote{XYZ \textit{top left zoom}} for example instructs
% the viewer to show the page with the given \textit{zoom} and
diff --git a/macros/latex/required/l3kernel/l3prefixes.csv b/macros/latex/required/l3kernel/l3prefixes.csv
index e85412b9d8..11cfeb08f4 100644
--- a/macros/latex/required/l3kernel/l3prefixes.csv
+++ b/macros/latex/required/l3kernel/l3prefixes.csv
@@ -26,6 +26,7 @@ block,latex2e,The LaTeX Project,https://www.latex-project.org/latex3.html,https:
bool,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
box,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
bxjh,BXjaholiday,Takuto Asakura,https://github.com/wtsnjp/BXjaholiday,https://github.com/wtsnjp/BXjaholiday.git,https://github.com/wtsnjp/BXjaholiday/issues,2018-02-02,2019-02-02,
+cal,spath3,Andrew Stacey,https://github.com/loopspace/spath3,https://github.com/loopspace/spath3.git,https://github.com/loopspace/spath3/issues,2024-07-18,2024-07-18,
cascade,cascade,F. Pantigny,,,,2020-07-21,2020-07-21,
catcode,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
cctab,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-28,2012-09-28,
@@ -78,6 +79,7 @@ etex,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https:
etl,etl,Jonathan P. Spratte,https://github.com/Skillmon/ltx_etl,git@github.com:Skillmon/ltx_etl.git,https://github.com/Skillmon/ltx_etl/issues,2021-08-16,2021-08-16,
exp,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
expl,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
+expltools,expltools,Vít Starý Novotný,https://github.com/witiko/expltools/,https://github.com/witiko/expltools.git,https://github.com/witiko/expltools/issues,2024-06-26,2024-06-26,Development tools for expl3 programmers
exsheets,exsheets,Clemens Niederberger,https://bitbucket.org/cgnieder/exsheets/,git@bitbucket.org:cgnieder/exsheets.git,https://bitbucket.org/cgnieder/exsheets/issues,2013-03-16,2013-03-16,
extblx,biblatex-ext,Moritz Wemheuer,https://github.com/moewew/biblatex-ext/,https://github.com/moewew/biblatex-ext.git,https://github.com/moewew/biblatex-ext/issues,2020-02-09,2020-02-09,
exwf,exwrapfig,Takuto Asakura,https://github.com/wtsnjp/exwrapfig,https://github.com/wtsnjp/exwrapfig.git,https://github.com/wtsnjp/exwrapfig/issues,2018-06-07,2018-06-07,
@@ -135,6 +137,7 @@ keys,"l3kernel,l3keys2e,ltkeys",The LaTeX Project,https://www.latex-project.org/
keyval,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
kgl,kantlipsum,Enrico Gregorio,,,,2013-03-16,2013-03-16,
kivitendo,"kiviletter, kivitables",Marei Peischl for Kivitendo,https://www.kivitendo.de/,https://github.com/kivitendo/kivitendo-erp,https://forum.kivitendo.de/,2021-05-28,2021-05-28,
+knot,spath3,Andrew Stacey,https://github.com/loopspace/spath3,https://github.com/loopspace/spath3.git,https://github.com/loopspace/spath3/issues,2024-07-18,2024-07-18,
langsci,langscibook,Language Science Press,https://langsci-press.org,https://github.com/langsci/langscibook,https://github.com/langsci/langscibook/issues,2021-07-20,2021-07-21,
left,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
liftarm,liftarm,Matthias Floré,,,,2024-05-25,2024-05-25,
@@ -160,6 +163,7 @@ minibox,minibox,Will Robertson,,https://github.com/wspr/will2e.git,https://githu
minus,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
mix,media9,Alexander Grahn,,https://gitlab.com/agrahn/media9,https://gitlab.com/agrahn/media9/issues,2013-01-18,2020-04-15,
mode,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
+moremath,moremath,Marcel Ilg,https://github.com/Mister00X/moremath,https://github.com/Mister00X/moremath.git,https://github.com/Mister00X/moremath/issues,2024-07-27,2024-07-27,
morewrites,morewrites,Bruno Le Floch,https://github.com/blefloch/latex-morewrites,https://github.com/blefloch/latex-morewrites.git,https://github.com/blefloch/latex-morewrites/issues,2013-03-16,2015-09-22,
msg,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
msvg,media4svg,Alexander Grahn,,https://gitlab.com/agrahn/media4svg,https://gitlab.com/agrahn/media4svg/issues,2020-04-15,2020-04-15,
@@ -201,6 +205,7 @@ piton,piton,François Pantigny,,,,29/09/2022,29/09/2022,
pkgploader,pkgploader,Michiel Helvensteijn,,,,2014-02-05,2014-02-05,
platex,platex,Japanese TeX Development Community,https://github.com/texjporg/platex,https://github.com/texjporg/platex.git,https://github.com/texjporg/platex/issues,2020-09-30,2020-09-30,
polyglossia,polyglossia,Arthur Reutenauer,https://www.polyglossia.org/,https://github.com/reutenauer/polyglossia,https://github.com/reutenauer/polyglossia/issues,2019-09-03,,
+polyomino,polyomino,Matthias Floré,,,,2024-09-05,2024-09-05
postnotes,postnotes,gusbrs,https://github.com/gusbrs/postnotes,https://github.com/gusbrs/postnotes.git,https://github.com/gusbrs/postnotes/issues,2022-04-23,2022-04-23,
prelim,prelim2e,Marei Peischl,https://github.com/TeXhackse/prelim2e,https://github.com/TeXhackse/prelim2e.git,https://github.com/TeXhackse/prelim2e/issues,2020-11-24,2020-11-24,
prg,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
@@ -210,6 +215,7 @@ property,latex2e,The LaTeX Project,https://www.latex-project.org/latex3.html,htt
pseudo,pseudo,Magnus Lie Hetland,https://github.com/mlhetland/pseudo.sty,https://github.com/mlhetland/pseudo.sty.git,https://github.com/mlhetland/pseudo.sty/issues,2019-06-24,2019-06-24,
ptex,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2015-07-28,2015-07-28,
ptxcd,ptxcd,Marei Peischl,,,,2020-07-27,2020-07-27,Used for specific corporate design templates
+ptxtools,"depp, ptxtools",Marei Peischl,https://gitlab.com/islandoftex/texmf/depp,https://gitlab.com/islandoftex/texmf/depp.git,https://gitlab.com/islandoftex/texmf/depp,2024-07-09,2024-07-09,
qrbill,qrbill,Marei Peischl,https://github.com/peiTeX/qrbill,https://github.com/peiTeX/qrbill.git,https://github.com/peiTeX/qrbill/issues,2020-06-27,2020-06-27,
quark,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
rainbow,beamertheme-rainbow,samcarter,https://github.com/samcarter/beamertheme-rainbow,https://github.com/samcarter/beamertheme-rainbow,https://github.com/samcarter/beamertheme-rainbow/issues,2023-07-04,2023-07-04,
@@ -239,6 +245,7 @@ slcd,se2thesis,Stephan Lukasczyk,https://github.com/se2p/se2thesis,https://githu
socket,latex2e,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex2e.git,https://github.com/latex3/latex2e/issues,2023-10-17,2023-10-17,
sort,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2017-02-13,
space,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
+spath,spath3,Andrew Stacey,https://github.com/loopspace/spath3,https://github.com/loopspace/spath3.git,https://github.com/loopspace/spath3/issues,2024-07-18,2024-07-18,
starray,starray,Alceu Frigeri,https://github.com/alceu-frigeri/starray,https://github.com/alceu-frigeri/starray,https://github.com/alceu-frigeri/starray/issues,2023-05-15,2023-05-15,
statistics,statistics,Julien Rivaud,https://gitlab.com/frnchfrgg-latex/statistics,https://gitlab.com/frnchfrgg-latex/statistics.git,https://gitlab.com/frnchfrgg-latex/statistics/issues,2018-06-25,2018-06-25,
stm,lt3-stm,CV Radhakrishnan,http://www.cvr.cc/,,,2014-02-26,2014-02-26,
@@ -258,6 +265,7 @@ tex,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https:/
text,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2020-01-15,2020-01-15,
tikzfill,tikzfill,Thomas F. Sturm,https://github.com/T-F-S/tikzfill,https://github.com/T-F-S/tikzfill.git,https://github.com/T-F-S/tikzfill/issues,2022-07-19,2022-07-19,
tikzlings,tikzlings,samcarter,https://github.com/samcarter/tikzlings,git@github.com:samcarter/tikzlings.git,https://github.com/samcarter/tikzlings/issues,2023-02-17,2023-02-17,
+tikzspath,spath3,Andrew Stacey,https://github.com/loopspace/spath3,https://github.com/loopspace/spath3.git,https://github.com/loopspace/spath3/issues,2024-07-18,2024-07-18,
tikzsymbols,tikzsymbols,Ben Vitecek,https://github.com/Vidabe/tikzsymbols,https://github.com/Vidabe/tikzsymbols.git,https://github.com/Vidabe/tikzsymbols/issues,2018-09-26,2018-09-26,
tilde,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
tl,"l3kernel,l3tl-build",The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
@@ -288,6 +296,7 @@ xmarks,latex2e,The LaTeX Project,https://www.latex-project.org/latex3.html,https
xparse,xparse,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
xpatch,"regexpatch,xpatch",Enrico Gregorio,,,,2013-03-16,2013-03-16,
xpeek,xpeek,Joel C. Salomon,,,,2013-03-16,2013-03-16,
+xpg,polyglossia,Jürgen Spitzmüller,https://github.com/reutenauer/polyglossia/,https://github.com/reutenauer/polyglossia/,https://github.com/reutenauer/polyglossia/issues,2024-07-02,2024-07-02,
xpinyin,xpinyin,Qing Lee,https://github.com/CTeX-org/ctex-kit,https://github.com/CTeX-org/ctex-kit.git,https://github.com/CTeX-org/ctex-kit/issues,2013-03-16,2013-05-26,
xsb,xsavebox,Alexander Grahn,,https://gitlab.com/agrahn/xsavebox,https://gitlab.com/agrahn/xsavebox/issues,2016-02-26,2020-04-15,
xsim,xsim,Clemens Niederberger,https://github.com/cgnieder/xsim/,https://github.com/cgnieder/xsim.git,https://github.com/cgnieder/xsim/issues,2020-04-14,2020-04-14,
@@ -299,4 +308,5 @@ zhnum,zhnumber,Qing Lee,https://github.com/CTeX-org/ctex-kit,https://github.com/
zrefcheck,zref-check,gusbrs,https://github.com/gusbrs/zref-check,https://github.com/gusbrs/zref-check,https://github.com/gusbrs/zref-check/issues,2021-08-05,2021-08-05,
zrefclever,zref-clever,gusbrs,https://github.com/gusbrs/zref-clever,https://github.com/gusbrs/zref-clever,https://github.com/gusbrs/zref-clever/issues,2021-11-29,2021-11-29,
zrefvario,zref-vario,gusbrs,https://github.com/gusbrs/zref-vario,https://github.com/gusbrs/zref-vario,https://github.com/gusbrs/zref-vario/issues,2022-02-02,2022-02-02,
+zugferd,zugferd,Marei Peischl,https://github.com/TeXhackse/LaTeX-ZUGFeRD,https://github.com/TeXhackse/LaTeX-ZUGFeRD.git,https://github.com/TeXhackse/LaTeX-ZUGFeRD/issues,2024-07-09,2024-07-09,
zxjt,zxjatype,Takayuki Yato,,,,2013-03-16,2013-03-16,
diff --git a/macros/latex/required/l3kernel/l3prefixes.pdf b/macros/latex/required/l3kernel/l3prefixes.pdf
index 602ccaaa59..abb2d50509 100644
--- a/macros/latex/required/l3kernel/l3prefixes.pdf
+++ b/macros/latex/required/l3kernel/l3prefixes.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3prg.dtx b/macros/latex/required/l3kernel/l3prg.dtx
index bec4e3a712..a5d6db8455 100644
--- a/macros/latex/required/l3kernel/l3prg.dtx
+++ b/macros/latex/required/l3kernel/l3prg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -664,7 +664,7 @@
% ~~\Arg{true code}
% ~~\Arg{false code}
% \end{syntax}
-% Evaluates in turn each of the \meta{boolean expression cases} until
+% Evaluates in turn each of the \meta{boolean expression case}s until
% the first one that evaluates to \texttt{true}.
% The \meta{code} associated to this first case is left in the input
% stream, followed by the \meta{true code}, and other cases are
diff --git a/macros/latex/required/l3kernel/l3prop.dtx b/macros/latex/required/l3kernel/l3prop.dtx
index 21b8d03dd6..7a0e76cc54 100644
--- a/macros/latex/required/l3kernel/l3prop.dtx
+++ b/macros/latex/required/l3kernel/l3prop.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -181,11 +181,11 @@
% \prop_gset_from_keyval:Nn, \prop_gset_from_keyval:cn,
% }
% \begin{syntax}
-% \cs{prop_set_from_keyval:Nn} \meta{property list}
-% \{
-% \meta{key1} |=| \meta{value1} |,|
-% \meta{key2} |=| \meta{value2} |,| \ldots{}
-% \}
+% \cs{prop_set_from_keyval:Nn} \meta{property list} \\
+% ~~\{ \\
+% ~~~~\meta{key1} |=| \meta{value1} |,| \\
+% ~~~~\meta{key2} |=| \meta{value2} |,| \ldots{} \\
+% ~~\}
% \end{syntax}
% Sets \meta{property list} to contain key--value pairs given in the second
% argument. If duplicate keys appear only the last of the values is kept.
@@ -205,11 +205,11 @@
% \begin{function}[added = 2017-11-28, updated = 2021-11-07]
% {\prop_const_from_keyval:Nn, \prop_const_from_keyval:cn}
% \begin{syntax}
-% \cs{prop_const_from_keyval:Nn} \meta{property list}
-% \{
-% \meta{key1} |=| \meta{value1} |,|
-% \meta{key2} |=| \meta{value2} |,| \ldots{}
-% \}
+% \cs{prop_const_from_keyval:Nn} \meta{property list} \\
+% ~~\{ \\
+% ~~~~\meta{key1} |=| \meta{value1} |,| \\
+% ~~~~\meta{key2} |=| \meta{value2} |,| \ldots{} \\
+% ~~\}
% \end{syntax}
% Creates a new constant \enquote{flat} \meta{property list} or raises
% an error if the
@@ -224,11 +224,11 @@
% \begin{function}[added = 2024-02-12]
% {\prop_const_linked_from_keyval:Nn, \prop_const_linked_from_keyval:cn}
% \begin{syntax}
-% \cs{prop_const_linked_from_keyval:Nn} \meta{prop~var}
-% \{
-% \meta{key1} |=| \meta{value1} |,|
-% \meta{key2} |=| \meta{value2} |,| \ldots{}
-% \}
+% \cs{prop_const_linked_from_keyval:Nn} \meta{prop~var} \\
+% ~~\{ \\
+% ~~~~\meta{key1} |=| \meta{value1} |,| \\
+% ~~~~\meta{key2} |=| \meta{value2} |,| \ldots{} \\
+% ~~\}
% \end{syntax}
% Creates a new constant \enquote{linked} \meta{prop~var} or raises an
% error if the
@@ -347,11 +347,11 @@
% \prop_gput_from_keyval:Nn, \prop_gput_from_keyval:cn,
% }
% \begin{syntax}
-% \cs{prop_put_from_keyval:Nn} \meta{property list}
-% \{
-% \meta{key1} |=| \meta{value1} |,|
-% \meta{key2} |=| \meta{value2} |,| \ldots{}
-% \}
+% \cs{prop_put_from_keyval:Nn} \meta{property list} \\
+% ~~\{ \\
+% ~~~~\meta{key1} |=| \meta{value1} |,| \\
+% ~~~~\meta{key2} |=| \meta{value2} |,| \ldots{} \\
+% ~~\}
% \end{syntax}
% Updates the \meta{property list} by adding entries for each key--value
% pair given in the second argument. The addition is done through
diff --git a/macros/latex/required/l3kernel/l3quark.dtx b/macros/latex/required/l3kernel/l3quark.dtx
index 136596a3fe..409efd6b7b 100644
--- a/macros/latex/required/l3kernel/l3quark.dtx
+++ b/macros/latex/required/l3kernel/l3quark.dtx
@@ -32,7 +32,7 @@
%
% \title{^^A
% The \pkg{l3quark} module\\ Quarks and scan marks^^A
-% }
+% }\ifdefined\thechapter\label{sec:l3quarks}\fi
%
% \author{^^A
% The \LaTeX{} Project\thanks
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3regex.dtx b/macros/latex/required/l3kernel/l3regex.dtx
index 6ca9c8eeed..cad8961101 100644
--- a/macros/latex/required/l3kernel/l3regex.dtx
+++ b/macros/latex/required/l3kernel/l3regex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -643,7 +643,7 @@
% \end{syntax}
% Determines which of the \meta{regular expressions} matches at the
% earliest point in the \meta{token list}, and leaves the
-% corresponding \meta{code_i} followed by the \meta{true code} in the
+% corresponding \meta{code} followed by the \meta{true code} in the
% input stream. If several \meta{regex} match starting at the same
% point, then the first one in the list is selected and the others are
% discarded. If none of the \meta{regex} match, the \meta{false code}
diff --git a/macros/latex/required/l3kernel/l3seq.dtx b/macros/latex/required/l3kernel/l3seq.dtx
index 38fc9471a9..f998531c34 100644
--- a/macros/latex/required/l3kernel/l3seq.dtx
+++ b/macros/latex/required/l3kernel/l3seq.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -747,7 +747,7 @@
% Applies \meta{inline function} to every \meta{item} stored
% within the \meta{seq~var_2}. The \meta{inline function} should
% consist of code which will receive the \meta{item} as |#1|.
-% The sequence resulting applying \meta{inline function} to each
+% The sequence resulting from applying \meta{inline function} to each
% \meta{item} is assigned to \meta{seq~var_1}.
% \begin{texnote}
% Contrarily to other mapping functions, \cs{seq_map_break:} cannot
@@ -2409,6 +2409,7 @@
\exp_after:wN \@@_map_pairwise_function:wNw #2 \s_@@_stop #3
#1 { ? \prg_break: } { }
\prg_break_point:
+ \prg_break_point:Nn \seq_map_break: { }
}
\cs_new:Npn \@@_map_pairwise_function:wNw \s_@@ #1 \s_@@_stop #2
{
diff --git a/macros/latex/required/l3kernel/l3skip.dtx b/macros/latex/required/l3kernel/l3skip.dtx
index 6e96b41326..07ccb471fc 100644
--- a/macros/latex/required/l3kernel/l3skip.dtx
+++ b/macros/latex/required/l3kernel/l3skip.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -277,7 +277,8 @@
% \end{syntax}
% This function evaluates the \meta{test dim expr} and
% compares this in turn to each of the
-% \meta{dim expr cases}. If the two are equal then the
+% \meta{dim expr case}s until a match is found.
+% If the two are equal then the
% associated \meta{code} is left in the input stream
% and other cases are discarded. If any of the
% cases are matched, the \meta{true code} is also inserted into the
@@ -297,6 +298,10 @@
% { No idea! }
% \end{verbatim}
% leaves \enquote{\texttt{Medium}} in the input stream.
+% Since evaluation of the test expressions stops at the first
+% successful case, the order of possible matches should normally
+% be that the most likely are earlier: this will reduce the average
+% steps required to complete expansion.
% \end{function}
%
% \section{Dimension expression loops}
diff --git a/macros/latex/required/l3kernel/l3sort.dtx b/macros/latex/required/l3kernel/l3sort.dtx
index 47cebcad25..1d4580f640 100644
--- a/macros/latex/required/l3kernel/l3sort.dtx
+++ b/macros/latex/required/l3kernel/l3sort.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3str-convert.dtx b/macros/latex/required/l3kernel/l3str-convert.dtx
index baf705fe0c..cde36b4e60 100644
--- a/macros/latex/required/l3kernel/l3str-convert.dtx
+++ b/macros/latex/required/l3kernel/l3str-convert.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3str.dtx b/macros/latex/required/l3kernel/l3str.dtx
index f4f7b94b88..8ac612d1b6 100644
--- a/macros/latex/required/l3kernel/l3str.dtx
+++ b/macros/latex/required/l3kernel/l3str.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -303,7 +303,8 @@
% ~~\Arg{false code}
% \end{syntax}
% Compares the \meta{test string} in turn with each
-% of the \meta{string case}s (all token lists are converted to strings).
+% of the \meta{string case}s until a match is found
+% (all token lists are converted to strings).
% If the two are equal (as described for
% \cs{str_if_eq:nnTF}) then the associated \meta{code} is left in the
% input stream and other cases are discarded. If any of the
@@ -757,7 +758,7 @@
% \item Case changing text for typesetting: see the
% \cs[index=text_lowercase:n]{text_lowercase:n(n)},
% \cs[index=text_uppercase:n]{text_uppercase:n(n)} and
-% \cs[index=text_titlecase_all:n]{text_titlecase_(all|once):n(n)} functions which
+% \cs[index=text_titlecase_all:n]{text_titlecase_(all|first):n(n)} functions which
% correctly deal with context-dependence and other factors appropriate
% to text case changing.
% \end{itemize}
diff --git a/macros/latex/required/l3kernel/l3styleguide.pdf b/macros/latex/required/l3kernel/l3styleguide.pdf
index 0113bac571..c94b0a862a 100644
--- a/macros/latex/required/l3kernel/l3styleguide.pdf
+++ b/macros/latex/required/l3kernel/l3styleguide.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3styleguide.tex b/macros/latex/required/l3kernel/l3styleguide.tex
index bcea3de06e..46c5109535 100644
--- a/macros/latex/required/l3kernel/l3styleguide.tex
+++ b/macros/latex/required/l3kernel/l3styleguide.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2024-05-27}
+\date{Released 2024-09-10}
\begin{document}
diff --git a/macros/latex/required/l3kernel/l3syntax-changes.pdf b/macros/latex/required/l3kernel/l3syntax-changes.pdf
index 99e93c2ccc..1ae90ae820 100644
--- a/macros/latex/required/l3kernel/l3syntax-changes.pdf
+++ b/macros/latex/required/l3kernel/l3syntax-changes.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3syntax-changes.tex b/macros/latex/required/l3kernel/l3syntax-changes.tex
index 30d8d47747..3e3da5f95e 100644
--- a/macros/latex/required/l3kernel/l3syntax-changes.tex
+++ b/macros/latex/required/l3kernel/l3syntax-changes.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2024-05-27}
+\date{Released 2024-09-10}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/required/l3kernel/l3sys.dtx b/macros/latex/required/l3kernel/l3sys.dtx
index b2228c7fd9..0fcfa9f915 100644
--- a/macros/latex/required/l3kernel/l3sys.dtx
+++ b/macros/latex/required/l3kernel/l3sys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3term-glossary.pdf b/macros/latex/required/l3kernel/l3term-glossary.pdf
index 01598ca79a..59f4e3b48d 100644
--- a/macros/latex/required/l3kernel/l3term-glossary.pdf
+++ b/macros/latex/required/l3kernel/l3term-glossary.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/l3term-glossary.tex b/macros/latex/required/l3kernel/l3term-glossary.tex
index 141749aa6b..6432d71c88 100644
--- a/macros/latex/required/l3kernel/l3term-glossary.tex
+++ b/macros/latex/required/l3kernel/l3term-glossary.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2024-05-27}
+\date{Released 2024-09-10}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/required/l3kernel/l3text-case.dtx b/macros/latex/required/l3kernel/l3text-case.dtx
index 89cdb9e2b1..60b92198b5 100644
--- a/macros/latex/required/l3kernel/l3text-case.dtx
+++ b/macros/latex/required/l3kernel/l3text-case.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3text-map.dtx b/macros/latex/required/l3kernel/l3text-map.dtx
index 3573002244..ed95ff2d34 100644
--- a/macros/latex/required/l3kernel/l3text-map.dtx
+++ b/macros/latex/required/l3kernel/l3text-map.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3text-purify.dtx b/macros/latex/required/l3kernel/l3text-purify.dtx
index 35390811aa..f568063a21 100644
--- a/macros/latex/required/l3kernel/l3text-purify.dtx
+++ b/macros/latex/required/l3kernel/l3text-purify.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3text.dtx b/macros/latex/required/l3kernel/l3text.dtx
index bcfd15cb62..3f771d3137 100644
--- a/macros/latex/required/l3kernel/l3text.dtx
+++ b/macros/latex/required/l3kernel/l3text.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -65,11 +65,11 @@
% \end{syntax}
% Takes user input \meta{text} and expands the content.
% Protected commands (typically
-% formatting) are left in place, and no processing takes place of
+% formatting) are left in place, and no processing of
% math mode material (as delimited by pairs given in
% \cs{l_text_math_delims_tl} or as the argument to commands listed
-% in \cs{l_text_math_arg_tl}). Commands which are neither engine-
-% nor \LaTeX{} protected are expanded exhaustively.
+% in \cs{l_text_math_arg_tl}) takes place. Commands which are neither engine-
+% nor \LaTeX{}-protected are expanded exhaustively.
% Any commands listed in \cs{l_text_expand_exclude_tl} are excluded from
% expansion, as are those in \cs{l_text_case_exclude_arg_tl} and
% \cs{l_text_math_arg_tl}.
@@ -114,8 +114,8 @@
% \end{function}
%
% Upper- and lowercase have the obvious meanings. Titlecasing may be regarded
-% informally as converting the first character of the \meta{tokens} to
-% uppercase. However, the process is more complex
+% informally as converting the first \emph{non-space} character of the
+% \meta{tokens} to uppercase. However, the process is more complex
% than this as there are some situations where a single lowercase character
% maps to a special form, for example \texttt{ij} in Dutch which becomes
% \texttt{IJ}. There are two functions available for titlecasing: one which
@@ -214,8 +214,8 @@
% \text_declare_uppercase_mapping:nnn
% }
% \begin{syntax}
-% \cs{text_declare_lowercase_mapping:nn} \Arg{codeppoint} \Arg{replacement}
-% \cs{text_declare_lowercase_mapping:nnn} \Arg{BCP-47} \Arg{codeppoint} \Arg{replacement}
+% \cs{text_declare_lowercase_mapping:nn} \Arg{codepoint} \Arg{replacement}
+% \cs{text_declare_lowercase_mapping:nnn} \Arg{BCP-47} \Arg{codepoint} \Arg{replacement}
% \end{syntax}
% Declares that the \meta{replacement} tokens should be used when case mapping
% the \meta{codepoint}, rather than the standard mapping given in the
diff --git a/macros/latex/required/l3kernel/l3tl-analysis.dtx b/macros/latex/required/l3kernel/l3tl-analysis.dtx
index 4df9ee68a3..4ae3f120d5 100644
--- a/macros/latex/required/l3kernel/l3tl-analysis.dtx
+++ b/macros/latex/required/l3kernel/l3tl-analysis.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3tl-build.dtx b/macros/latex/required/l3kernel/l3tl-build.dtx
index 6cd9822ad2..e058e2be47 100644
--- a/macros/latex/required/l3kernel/l3tl-build.dtx
+++ b/macros/latex/required/l3kernel/l3tl-build.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3tl.dtx b/macros/latex/required/l3kernel/l3tl.dtx
index 71d68d532c..f6f0e19f66 100644
--- a/macros/latex/required/l3kernel/l3tl.dtx
+++ b/macros/latex/required/l3kernel/l3tl.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
diff --git a/macros/latex/required/l3kernel/l3token.dtx b/macros/latex/required/l3kernel/l3token.dtx
index 03bf46b101..23b7e24b07 100644
--- a/macros/latex/required/l3kernel/l3token.dtx
+++ b/macros/latex/required/l3kernel/l3token.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -660,7 +660,10 @@
% \cs{token_if_long_macro_p:N} \meta{token} \\
% \cs{token_if_long_macro:NTF} \meta{token} \Arg{true code} \Arg{false code}
% \end{syntax}
-% Tests if the \meta{token} is a long macro.
+% Tests if the \meta{token} is a long macro with no other prefix; to
+% test for a macro that is both long and protected, use
+% \cs[index = token_if_protected_long_macro:NTF]^^A
+% {token_if_protected_long_macro:N(TF)}.
% \end{function}
%
% \begin{function}[EXP,pTF, updated=2012-01-20]{\token_if_protected_macro:N}
@@ -668,8 +671,10 @@
% \cs{token_if_protected_macro_p:N} \meta{token} \\
% \cs{token_if_protected_macro:NTF} \meta{token} \Arg{true code} \Arg{false code}
% \end{syntax}
-% Tests if the \meta{token} is a protected macro: for a macro which
-% is both protected and long this returns \texttt{false}.
+% Tests if the \meta{token} is a protected macro with no other prefix; to
+% test for a macro that is both protected and long, use
+% \cs[index = token_if_protected_long_macro:NTF]^^A
+% {token_if_protected_long_macro:N(TF)}.
% \end{function}
%
% \begin{function}[EXP,pTF, updated=2012-01-20]{\token_if_protected_long_macro:N}
@@ -776,7 +781,7 @@
% ~~\Arg{false code}
% \end{syntax}
% This function compares the \meta{test token} in turn with each of
-% the \meta{token cases}. If the two are equal (as described for
+% the \meta{token case}s. If the two are equal (as described for
% \cs{token_if_eq_catcode:NNTF}, \cs{token_if_eq_charcode:NNTF} and
% \cs{token_if_eq_meaning:NNTF}, respectively) then the associated
% \meta{code} is left in the input stream and other cases are
diff --git a/macros/latex/required/l3kernel/l3unicode.dtx b/macros/latex/required/l3kernel/l3unicode.dtx
index 179817d490..b824a1f0a0 100644
--- a/macros/latex/required/l3kernel/l3unicode.dtx
+++ b/macros/latex/required/l3kernel/l3unicode.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-05-27}
+% \date{Released 2024-09-10}
%
% \maketitle
%
@@ -719,15 +719,22 @@
\tl_set:ce { l_@@_ #1 _block_tl }
{ \int_eval:n { \tl_use:c { l_@@_ #1 _block_tl } + 1 } }
}
- \prg_replicate:nn {#2}
+% \end{macrocode}
+% Here, we avoid \cs{prg_replicate:nn} as the number of tokens generated would be
+% high: that shows in the format dump (although \TeX{} recovers memory during
+% the subsequent runs).
+% \begin{macrocode}
+ \int_step_inline:nnn
+ { \tl_use:c { l_@@_ #1 _pos_tl } + 1 }
+ { \tl_use:c { l_@@_ #1 _pos_tl } + #2 }
{
- \tl_set:ce { l_@@_ #1 _pos_tl }
- { \int_eval:n { \tl_use:c { l_@@_ #1 _pos_tl } + 1 } }
\exp_args:Nc \__kernel_intarray_gset:Nnn
{ g_@@_ #1 _index_intarray }
- { \tl_use:c { l_@@_ #1 _pos_tl } }
+ {##1}
\l_@@_matched_block_tl
}
+ \tl_set:ce { l_@@_ #1 _pos_tl }
+ { \int_eval:n { \tl_use:c { l_@@_ #1 _pos_tl } + #2 } }
\clist_clear:c { l_@@_ #1 _block_clist }
}
% \end{macrocode}
diff --git a/macros/latex/required/l3kernel/source3.pdf b/macros/latex/required/l3kernel/source3.pdf
index 34279f9e00..24cc4ba8d5 100644
--- a/macros/latex/required/l3kernel/source3.pdf
+++ b/macros/latex/required/l3kernel/source3.pdf
Binary files differ
diff --git a/macros/latex/required/l3kernel/source3.tex b/macros/latex/required/l3kernel/source3.tex
index 00095ad319..c8322135cc 100644
--- a/macros/latex/required/l3kernel/source3.tex
+++ b/macros/latex/required/l3kernel/source3.tex
@@ -57,7 +57,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2024-05-27}
+\date{Released 2024-09-10}
\pagenumbering{roman}
\maketitle
diff --git a/macros/latex/required/l3kernel/source3body.tex b/macros/latex/required/l3kernel/source3body.tex
index 8471296227..44b67816d6 100644
--- a/macros/latex/required/l3kernel/source3body.tex
+++ b/macros/latex/required/l3kernel/source3body.tex
@@ -285,7 +285,7 @@ pass it to |\foo:N|.
Variables are named in a similar manner to functions, but begin with
a single letter to define the type of variable:
-\begin{description}
+\begin{description}[leftmargin=2\parindent, labelindent*=-\parindent]
\item[\texttt{c}] Constant: global parameters whose value should not
be changed.
\item[\texttt{g}] Parameters whose value should only be set globally.
@@ -302,7 +302,7 @@ function, typically starting with the module\footnote{The module names are
\texttt{\string\l_int_tmpa_int} would be very unreadable.} name
and then a descriptive part.
Variables end with a short identifier to show the variable type:
-\begin{description}%
+\begin{description}[leftmargin=2\parindent, labelindent*=-\parindent]
\item[\texttt{bitset}] a set of bits (a string made up of a series of \texttt{0}
and \texttt{1} tokens that are accessed by position).
\item[\texttt{clist}] Comma separated list.
@@ -318,7 +318,7 @@ Variables end with a short identifier to show the variable type:
Applying \texttt{V}-type or \texttt{v}-type expansion to variables of
one of the above types is supported, while it is not supported for the
following variable types:
-\begin{description}
+\begin{description}[leftmargin=2\parindent, labelindent*=-\parindent]
\item[\texttt{bool}] Either true or false.
\item[\texttt{box}] Box register.
\item[\texttt{coffin}] A \enquote{box with handles} --- a higher-level
@@ -344,6 +344,19 @@ are never used by the core code. The nature of \TeX{} grouping means that as
with any other scratch variable, these should only be set and used with no
intervening third-party code.
+There are two more special types of constants:
+\begin{description}[leftmargin=2\parindent, labelindent*=-\parindent]
+ \item[\texttt{q}] Quark constants.
+ \item[\texttt{s}] Scan mark constants.
+\end{description}
+Similarly, each quark or scan mark name starts with the module name,
+but doesn't end with a variable type, because the type is already
+marked by the prefix \texttt{q} or \texttt{s}.
+Some general quarks and scan marks provided by \LaTeX3 don't start
+with a module name, for example \cs{s_stop}.
+See documentation of quarks and scan marks in Chapter~\ref{sec:l3quarks}
+for more info.
+
\subsection{Terminological inexactitude}
A word of warning. In this document, and others referring to the \pkg{expl3}